--- linux-3.2.0.orig/dropped.txt +++ linux-3.2.0/dropped.txt @@ -0,0 +1 @@ +UBUNTU: SAUCE: (no-up) Restore VT fonts on switch --- linux-3.2.0.orig/Makefile +++ linux-3.2.0/Makefile @@ -1,6 +1,6 @@ VERSION = 3 PATCHLEVEL = 2 -SUBLEVEL = 0 +SUBLEVEL = 50 EXTRAVERSION = NAME = Saber-toothed Squirrel @@ -354,14 +354,23 @@ AFLAGS_KERNEL = CFLAGS_GCOV = -fprofile-arcs -ftest-coverage +# Prefer linux-backports-modules +ifneq ($(KBUILD_SRC),) +ifneq ($(shell if test -e $(KBUILD_OUTPUT)/ubuntu-build; then echo yes; fi),yes) +UBUNTUINCLUDE := -I/usr/src/linux-headers-lbm-$(KERNELRELEASE) +endif +endif # Use LINUXINCLUDE when you must reference the include/ directory. # Needed to be compatible with the O= option -LINUXINCLUDE := -I$(srctree)/arch/$(hdr-arch)/include \ +LINUXINCLUDE := $(UBUNTUINCLUDE) -I$(srctree)/arch/$(hdr-arch)/include \ -Iarch/$(hdr-arch)/include/generated -Iinclude \ $(if $(KBUILD_SRC), -I$(srctree)/include) \ -include $(srctree)/include/linux/kconfig.h +# UBUNTU: Include our third party driver stuff too +LINUXINCLUDE += -Iubuntu/include $(if $(KBUILD_SRC),-I$(srctree)/ubuntu/include) + KBUILD_CPPFLAGS := -D__KERNEL__ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ @@ -442,7 +451,7 @@ no-dot-config-targets := clean mrproper distclean \ cscope gtags TAGS tags help %docs check% coccicheck \ - include/linux/version.h headers_% \ + include/linux/version.h headers_% archscripts \ kernelversion %src-pkg config-targets := 0 @@ -507,7 +516,7 @@ # Objects we will link into vmlinux / subdirs we need to visit init-y := init/ -drivers-y := drivers/ sound/ firmware/ +drivers-y := drivers/ sound/ firmware/ ubuntu/ net-y := net/ libs-y := lib/ core-y := usr/ @@ -979,7 +988,7 @@ include/config/auto.conf $(cmd_crmodverdir) -archprepare: prepare1 scripts_basic +archprepare: archscripts prepare1 scripts_basic prepare0: archprepare FORCE $(Q)$(MAKE) $(build)=. @@ -1046,8 +1055,11 @@ # If we do an all arch process set dst to asm-$(hdr-arch) hdr-dst = $(if $(KBUILD_HEADERS), dst=include/asm-$(hdr-arch), dst=include/asm) +PHONY += archscripts +archscripts: + PHONY += __headers -__headers: include/linux/version.h scripts_basic asm-generic FORCE +__headers: include/linux/version.h scripts_basic asm-generic archscripts FORCE $(Q)$(MAKE) $(build)=scripts build_unifdef PHONY += headers_install_all @@ -1060,6 +1072,7 @@ $(error Headers not exportable for the $(SRCARCH) architecture)) $(Q)$(MAKE) $(hdr-inst)=include $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/asm $(hdr-dst) + $(Q)$(MAKE) $(hdr-inst)=ubuntu/include dst=include oldheaders= PHONY += headers_check_all headers_check_all: headers_install_all @@ -1069,6 +1082,7 @@ headers_check: headers_install $(Q)$(MAKE) $(hdr-inst)=include HDRCHECK=1 $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/asm $(hdr-dst) HDRCHECK=1 + $(Q)$(MAKE) $(hdr-inst)=ubuntu/include dst=include oldheaders= HDRCHECK=1 # --------------------------------------------------------------------------- # Modules --- linux-3.2.0.orig/MAINTAINERS +++ linux-3.2.0/MAINTAINERS @@ -159,7 +159,7 @@ F: drivers/net/ethernet/realtek/r8169.c 8250/16?50 (AND CLONE UARTS) SERIAL DRIVER -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman L: linux-serial@vger.kernel.org W: http://serial.sourceforge.net S: Maintained @@ -1781,9 +1781,9 @@ CHAR and MISC DRIVERS M: Arnd Bergmann -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git -S: Maintained +S: Supported F: drivers/char/* F: drivers/misc/* @@ -2315,7 +2315,7 @@ F: Documentation/blockdev/drbd/ DRIVER CORE, KOBJECTS, DEBUGFS AND SYSFS -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6.git S: Supported F: Documentation/kobject.txt @@ -2584,7 +2584,7 @@ F: drivers/net/ethernet/i825xx/eexpress.* ETHERNET BRIDGE -M: Stephen Hemminger +M: Stephen Hemminger L: bridge@lists.linux-foundation.org L: netdev@vger.kernel.org W: http://www.linuxfoundation.org/en/Net:Bridge @@ -4475,7 +4475,7 @@ F: drivers/infiniband/hw/nes/ NETEM NETWORK EMULATOR -M: Stephen Hemminger +M: Stephen Hemminger L: netem@lists.linux-foundation.org S: Maintained F: net/sched/sch_netem.c @@ -4901,6 +4901,13 @@ F: include/scsi/osd_* F: fs/exofs/ +OVERLAYFS FILESYSTEM +M: Miklos Szeredi +L: linux-fsdevel@vger.kernel.org +S: Supported +F: fs/overlayfs/* +F: Documentation/filesystems/overlayfs.txt + P54 WIRELESS DRIVER M: Christian Lamparter L: linux-wireless@vger.kernel.org @@ -5452,7 +5459,7 @@ F: drivers/block/brd.c RANDOM NUMBER DRIVER -M: Matt Mackall +M: Theodore Ts'o" S: Maintained F: drivers/char/random.c @@ -5993,7 +6000,7 @@ F: drivers/usb/misc/sisusbvga/ SKGE, SKY2 10/100/1000 GIGABIT ETHERNET DRIVERS -M: Stephen Hemminger +M: Stephen Hemminger L: netdev@vger.kernel.org S: Maintained F: drivers/net/ethernet/marvell/sk* @@ -6257,15 +6264,16 @@ F: arch/alpha/kernel/srm_env.c STABLE BRANCH -M: Greg Kroah-Hartman -L: stable@kernel.org -S: Maintained +M: Greg Kroah-Hartman +L: stable@vger.kernel.org +S: Supported +F: Documentation/stable_kernel_rules.txt STAGING SUBSYSTEM -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git L: devel@driverdev.osuosl.org -S: Maintained +S: Supported F: drivers/staging/ STAGING - AGERE HERMES II and II.5 WIRELESS DRIVERS @@ -6654,8 +6662,8 @@ K: ^Subject:.*(?i)trivial TTY LAYER -M: Greg Kroah-Hartman -S: Maintained +M: Greg Kroah-Hartman +S: Supported T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git F: drivers/tty/* F: drivers/tty/serial/serial_core.c @@ -6943,7 +6951,7 @@ F: drivers/usb/serial/digi_acceleport.c USB SERIAL DRIVER -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman L: linux-usb@vger.kernel.org S: Supported F: Documentation/usb/usb-serial.txt @@ -6958,9 +6966,8 @@ F: drivers/usb/serial/empeg.c USB SERIAL KEYSPAN DRIVER -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman L: linux-usb@vger.kernel.org -W: http://www.kroah.com/linux/ S: Maintained F: drivers/usb/serial/*keyspan* @@ -6988,7 +6995,7 @@ F: drivers/media/video/sn9c102/ USB SUBSYSTEM -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman L: linux-usb@vger.kernel.org W: http://www.linux-usb.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6.git @@ -7075,7 +7082,7 @@ USERSPACE I/O (UIO) M: "Hans J. Koch" -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman S: Maintained F: Documentation/DocBook/uio-howto.tmpl F: drivers/uio/ --- linux-3.2.0.orig/debian/control +++ linux-3.2.0/debian/control @@ -0,0 +1,1610 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.8.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, dpkg (>= 1.16.0~ubuntu4), util-linux +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Build-Conflicts: findutils (= 4.4.1-1ubuntu1) +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-precise.git + +Package: linux-source-3.2.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 3.2.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.2.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-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.2.0 + This package provides the various documents in the 3.2.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-tools-common +Architecture: all +Section: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.2.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.2.0. + +Package: linux-headers-3.2.0-54 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-3 +Description: Header files related to Linux kernel version 3.2.0 + This package provides kernel header files for version 3.2.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc ppc64 armel armhf +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +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-tools-3.2.0-54 +Architecture: i386 amd64 powerpc ppc64 armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.2.0-54 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.2.0-54 on + 32 bit x86. + + +Package: linux-image-3.2.0-54-generic +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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-image-extra-3.2.0-54-generic +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-generic +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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-3.2.0-54-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 SMP + This package provides kernel header files for version 3.2.0 on + 32 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 SMP + This package provides a kernel debug image for version 3.2.0 on + 32 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-image-3.2.0-54-generic-pae +Architecture: i386 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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 32 bit desktop or server systems with more than 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-generic-pae +Architecture: i386 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-generic-pae +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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 32 bit desktop or server systems with more than 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 SMP + This package provides kernel header files for version 3.2.0 on + 32 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 SMP + This package provides a kernel debug image for version 3.2.0 on + 32 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-image-3.2.0-54-highbank +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on Calxeda highbank ARM Server + This package contains the Linux kernel image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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 Calxeda highbank processors. + . + Targeted towards Calxeda highbank ARM Server + . + You likely do not want to install this package directly. Instead, install + the linux-highbank meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-highbank +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-highbank +Description: Linux kernel image for version 3.2.0 on Calxeda highbank ARM Server + This package contains the Linux kernel image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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 Calxeda highbank processors. + . + Targeted towards Calxeda highbank ARM Server + . + You likely do not want to install this package directly. Instead, install + the linux-highbank meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-highbank +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on Calxeda highbank ARM Server + This package provides kernel header files for version 3.2.0 on + Calxeda highbank ARM Server. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-highbank-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on Calxeda highbank ARM Server + This package provides a kernel debug image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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-image-3.2.0-54-omap +Architecture: armel armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package contains the Linux kernel image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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 TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-omap +Architecture: armel armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-omap +Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package contains the Linux kernel image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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 TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-omap +Architecture: armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package provides kernel header files for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-omap-dbgsym +Architecture: armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package provides a kernel debug image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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-image-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 64-bit PowerPC 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 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-powerpc64-smp +Description: Linux kernel image for version 3.2.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 64-bit PowerPC 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 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 64-bit PowerPC SMP + This package provides kernel header files for version 3.2.0 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-powerpc64-smp-dbgsym +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 3.2.0 on + 64-bit PowerPC 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-image-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 32-bit PowerPC 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 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-powerpc-smp +Description: Linux kernel image for version 3.2.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 32-bit PowerPC 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 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32-bit PowerPC SMP + This package provides kernel header files for version 3.2.0 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 3.2.0 on + 32-bit PowerPC 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-image-3.2.0-54-virtual +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 Virtual Guests + This package contains the Linux kernel image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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 Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-virtual +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-virtual +Description: Linux kernel image for version 3.2.0 on 32 bit x86 Virtual Guests + This package contains the Linux kernel image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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 Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 Virtual Guests + This package provides kernel header files for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 Virtual Guests + This package provides a kernel debug image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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: kernel-image-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: kernel-image +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: extra +Description: Linux kernel binary image for the Debian installer + This package contains the kernel image for the Debian installer + boot images. It does _not_ provide a usable kernel for your full + Debian system. + +Package: nic-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: nic-modules +Depends: kernel-image-3.2.0-54-generic-di, nic-shared-modules-3.2.0-54-generic-di, virtio-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Network interface support + +Package: nic-shared-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: nic-shared-modules +Depends: kernel-image-3.2.0-54-generic-di, crypto-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: serial-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: serial-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Serial port support + +Package: ppp-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: ppp-modules +Depends: kernel-image-3.2.0-54-generic-di, nic-shared-modules-3.2.0-54-generic-di, serial-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: PPP (serial port) networking support + +Package: pata-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: pata-modules +Depends: kernel-image-3.2.0-54-generic-di, storage-core-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: PATA support modules + +Package: firewire-core-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: firewire-core-modules +Depends: kernel-image-3.2.0-54-generic-di, storage-core-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Firewire (IEEE-1394) Support + +Package: scsi-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: scsi-modules +Depends: kernel-image-3.2.0-54-generic-di, storage-core-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: SCSI storage support + +Package: plip-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: plip-modules +Depends: kernel-image-3.2.0-54-generic-di, nic-shared-modules-3.2.0-54-generic-di, parport-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: PLIP (parallel port) networking support + +Package: floppy-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: floppy-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Floppy driver support + +Package: fat-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: fat-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: nfs-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: nfs-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: NFS filesystem drivers + Includes the NFS client driver, and supporting modules. + +Package: md-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: md-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: multipath-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: multipath-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: extra +Description: DM-Multipath support + This package contains modules for device-mapper multipath support. + +Package: usb-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: usb-modules +Depends: kernel-image-3.2.0-54-generic-di, storage-core-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Core USB support + +Package: pcmcia-storage-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: pcmcia-storage-modules +Depends: kernel-image-3.2.0-54-generic-di, scsi-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: PCMCIA storage support + +Package: fb-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: fb-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Framebuffer modules + +Package: input-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: input-modules +Depends: kernel-image-3.2.0-54-generic-di, usb-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Support for various input methods + +Package: mouse-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: mouse-modules +Depends: kernel-image-3.2.0-54-generic-di, input-modules-3.2.0-54-generic-di, usb-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: irda-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: irda-modules +Depends: kernel-image-3.2.0-54-generic-di, nic-shared-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Support for Infrared protocols + +Package: parport-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: parport-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Parallel port support + +Package: nic-pcmcia-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: nic-pcmcia-modules +Depends: kernel-image-3.2.0-54-generic-di, nic-shared-modules-3.2.0-54-generic-di, nic-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: PCMCIA network interface support + +Package: pcmcia-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: pcmcia-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: PCMCIA Modules + +Package: nic-usb-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: nic-usb-modules +Depends: kernel-image-3.2.0-54-generic-di, nic-shared-modules-3.2.0-54-generic-di, usb-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: USB network interface support + +Package: sata-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: sata-modules +Depends: kernel-image-3.2.0-54-generic-di, storage-core-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: SATA storage support + +Package: crypto-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: crypto-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: squashfs-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: squashfs-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: speakup-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: speakup-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: extra +Description: speakup modules + This package contains speakup modules. + +Package: virtio-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: virtio-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: fs-core-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: fs-core-modules, jfs-modules, reiserfs-modules, xfs-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: fs-secondary-modules, ntfs-modules, hfs-modules +Depends: kernel-image-3.2.0-54-generic-di, fat-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Extra filesystem modules + This includes support for Windows NTFS and MacOS HFS/HFSPlus + +Package: storage-core-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: storage-core-modules, loop-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Core storage support + Includes core SCSI, LibATA, USB-Storage. Also includes related block + devices for CD, Disk and Tape medium (and IDE Floppy). + +Package: block-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: block-modules +Depends: kernel-image-3.2.0-54-generic-di, storage-core-modules-3.2.0-54-generic-di, parport-modules-3.2.0-54-generic-di, virtio-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Block storage devices + This package contains the block storage devices, including DAC960 and + paraide. + +Package: message-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: message-modules +Depends: kernel-image-3.2.0-54-generic-di, storage-core-modules-3.2.0-54-generic-di, scsi-modules-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: Fusion and i2o storage modules + This package containes the fusion and i2o storage modules. + +Package: vlan-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: vlan-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. + +Package: ipmi-modules-3.2.0-54-generic-di +XC-Package-Type: udeb +Provides: ipmi-modules +Depends: kernel-image-3.2.0-54-generic-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic +Section: debian-installer +Priority: standard +Description: ipmi modules + +Package: kernel-image-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: kernel-image +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: extra +Description: Linux kernel binary image for the Debian installer + This package contains the kernel image for the Debian installer + boot images. It does _not_ provide a usable kernel for your full + Debian system. + +Package: nic-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: nic-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, nic-shared-modules-3.2.0-54-generic-pae-di, virtio-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Network interface support + +Package: nic-shared-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: nic-shared-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, crypto-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: serial-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: serial-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Serial port support + +Package: ppp-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: ppp-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, nic-shared-modules-3.2.0-54-generic-pae-di, serial-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: PPP (serial port) networking support + +Package: pata-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: pata-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, storage-core-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: PATA support modules + +Package: firewire-core-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: firewire-core-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, storage-core-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Firewire (IEEE-1394) Support + +Package: scsi-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: scsi-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, storage-core-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: SCSI storage support + +Package: plip-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: plip-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, nic-shared-modules-3.2.0-54-generic-pae-di, parport-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: PLIP (parallel port) networking support + +Package: floppy-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: floppy-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Floppy driver support + +Package: fat-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: fat-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: nfs-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: nfs-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: NFS filesystem drivers + Includes the NFS client driver, and supporting modules. + +Package: md-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: md-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: multipath-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: multipath-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: extra +Description: DM-Multipath support + This package contains modules for device-mapper multipath support. + +Package: usb-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: usb-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, storage-core-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Core USB support + +Package: pcmcia-storage-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: pcmcia-storage-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, scsi-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: PCMCIA storage support + +Package: fb-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: fb-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Framebuffer modules + +Package: input-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: input-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, usb-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Support for various input methods + +Package: mouse-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: mouse-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, input-modules-3.2.0-54-generic-pae-di, usb-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: irda-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: irda-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, nic-shared-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Support for Infrared protocols + +Package: parport-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: parport-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Parallel port support + +Package: nic-pcmcia-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: nic-pcmcia-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, nic-shared-modules-3.2.0-54-generic-pae-di, nic-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: PCMCIA network interface support + +Package: pcmcia-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: pcmcia-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: PCMCIA Modules + +Package: nic-usb-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: nic-usb-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, nic-shared-modules-3.2.0-54-generic-pae-di, usb-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: USB network interface support + +Package: sata-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: sata-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, storage-core-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: SATA storage support + +Package: crypto-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: crypto-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: squashfs-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: squashfs-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: speakup-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: speakup-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: extra +Description: speakup modules + This package contains speakup modules. + +Package: virtio-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: virtio-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: fs-core-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: fs-core-modules, jfs-modules, reiserfs-modules, xfs-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: fs-secondary-modules, ntfs-modules, hfs-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, fat-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Extra filesystem modules + This includes support for Windows NTFS and MacOS HFS/HFSPlus + +Package: storage-core-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: storage-core-modules, loop-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Core storage support + Includes core SCSI, LibATA, USB-Storage. Also includes related block + devices for CD, Disk and Tape medium (and IDE Floppy). + +Package: block-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: block-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, storage-core-modules-3.2.0-54-generic-pae-di, parport-modules-3.2.0-54-generic-pae-di, virtio-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Block storage devices + This package contains the block storage devices, including DAC960 and + paraide. + +Package: message-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: message-modules +Depends: kernel-image-3.2.0-54-generic-pae-di, storage-core-modules-3.2.0-54-generic-pae-di, scsi-modules-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: Fusion and i2o storage modules + This package containes the fusion and i2o storage modules. + +Package: vlan-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: vlan-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. + +Package: ipmi-modules-3.2.0-54-generic-pae-di +XC-Package-Type: udeb +Provides: ipmi-modules +Depends: kernel-image-3.2.0-54-generic-pae-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-generic-pae +Section: debian-installer +Priority: standard +Description: ipmi modules + +Package: kernel-image-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: kernel-image +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: extra +Description: Linux kernel binary image for the Debian installer + This package contains the kernel image for the Debian installer + boot images. It does _not_ provide a usable kernel for your full + Debian system. + +Package: nic-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: nic-modules +Depends: kernel-image-3.2.0-54-virtual-di, nic-shared-modules-3.2.0-54-virtual-di, virtio-modules-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: Network interface support + +Package: nic-shared-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: nic-shared-modules +Depends: kernel-image-3.2.0-54-virtual-di, crypto-modules-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: scsi-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: scsi-modules +Depends: kernel-image-3.2.0-54-virtual-di, storage-core-modules-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: SCSI storage support + +Package: floppy-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: floppy-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: Floppy driver support + +Package: fat-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: fat-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: md-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: md-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: multipath-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: multipath-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: extra +Description: DM-Multipath support + This package contains modules for device-mapper multipath support. + +Package: fb-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: fb-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: Framebuffer modules + +Package: mouse-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: mouse-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: irda-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: irda-modules +Depends: kernel-image-3.2.0-54-virtual-di, nic-shared-modules-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: Support for Infrared protocols + +Package: parport-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: parport-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: Parallel port support + +Package: crypto-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: crypto-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: squashfs-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: squashfs-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: virtio-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: virtio-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: fs-core-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: fs-core-modules, jfs-modules, reiserfs-modules, xfs-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: fs-secondary-modules, ntfs-modules, hfs-modules +Depends: kernel-image-3.2.0-54-virtual-di, fat-modules-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: Extra filesystem modules + This includes support for Windows NTFS and MacOS HFS/HFSPlus + +Package: storage-core-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: storage-core-modules, loop-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: Core storage support + Includes core SCSI, LibATA, USB-Storage. Also includes related block + devices for CD, Disk and Tape medium (and IDE Floppy). + +Package: block-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: block-modules +Depends: kernel-image-3.2.0-54-virtual-di, storage-core-modules-3.2.0-54-virtual-di, parport-modules-3.2.0-54-virtual-di, virtio-modules-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: Block storage devices + This package contains the block storage devices, including DAC960 and + paraide. + +Package: message-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: message-modules +Depends: kernel-image-3.2.0-54-virtual-di, storage-core-modules-3.2.0-54-virtual-di, scsi-modules-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: standard +Description: Fusion and i2o storage modules + This package containes the fusion and i2o storage modules. + +Package: vlan-modules-3.2.0-54-virtual-di +XC-Package-Type: udeb +Provides: vlan-modules +Depends: kernel-image-3.2.0-54-virtual-di +Architecture: i386 +XB-Kernel-Version: 3.2.0-54-virtual +Section: debian-installer +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. --- linux-3.2.0.orig/debian/copyright +++ linux-3.2.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-3.2.0.orig/debian/compat +++ linux-3.2.0/debian/compat @@ -0,0 +1 @@ +5 --- linux-3.2.0.orig/debian/rules +++ linux-3.2.0/debian/rules @@ -0,0 +1,238 @@ +#!/usr/bin/make -f +# +# $(DEBIAN)/rules for Ubuntu linux +# +# Use this however you want, just give credit where credit is due. +# +# Copyright (c) 2007 Ben Collins +# + +DEBIAN=$(shell awk -F= '($$1 == "DEBIAN") { print $$2 }' $$new; \ + done + flavours="$(wildcard $(DEBIAN)/control.d/vars.* $(DEBIAN)/sub-flavours/*.vars)";\ + for i in $$flavours; do \ + $(SHELL) $(DROOT)/scripts/control-create $$i | \ + sed -e 's/PKGVER/$(release)/g' \ + -e 's/ABINUM/$(abinum)/g' \ + -e 's/SRCPKGNAME/$(src_pkg_name)/g' \ + -e 's/=HUMAN=/$(human_arch)/g' \ + >> $(DEBIAN)/control.stub; \ + done + cp $(DEBIAN)/control.stub $(DEBIAN)/control + +.PHONY: debian/control +debian/control: $(DEBIAN)/control.stub + rm -rf $(builddir)/modules $(builddir)/firmware \ + $(builddir)/kernel-versions $(builddir)/package-list \ + $(builddir)/$(DEBIAN) + mkdir -p $(builddir)/modules/$(arch)/ + cp $(DEBIAN)/d-i/modules/* $(builddir)/modules/$(arch)/ + mkdir -p $(builddir)/firmware/$(arch)/ + cp $(DEBIAN)/d-i/firmware/* $(builddir)/firmware/$(arch)/ + cp $(DEBIAN)/d-i/package-list $(DEBIAN)/d-i/kernel-versions $(builddir)/ + touch $(builddir)/modules/$(arch)/kernel-image + # kernel-wedge needs to poke around in $(DEBIAN)/ + ln -nsf $(CURDIR)/debian $(builddir)/debian + + # Some files may need to differ between architectures + if [ -d $(DEBIAN)/d-i/modules-$(arch) ]; then \ + cp $(DEBIAN)/d-i/modules-$(arch)/* \ + $(builddir)/modules/$(arch)/; \ + fi + if [ -d $(DEBIAN)/d-i/firmware-$(arch) ]; then \ + cp $(DEBIAN)/d-i/firmware-$(arch)/* \ + $(builddir)/firmware/$(arch)/; \ + fi + + # Remove unwanted stuff for this architecture + if [ -r "$(DEBIAN)/d-i/exclude-modules.$(arch)" ]; then \ + (cat $(DEBIAN)/d-i/exclude-modules.$(arch); \ + ls $(builddir)/modules/$(arch)/) | sort | uniq -d | \ + (cd $(builddir)/modules/$(arch)/; xargs rm -f); \ + fi + if [ -r "$(DEBIAN)/d-i/exclude-firmware.$(arch)" ]; then \ + (cat $(DEBIAN)/d-i/exclude-firmware.$(arch); \ + ls $(builddir)/firmware/$(arch)/) | sort | uniq -d | \ + (cd $(builddir)/firmware/$(arch)/; xargs rm -f); \ + fi + + # Per flavour module lists + flavour_modules=`ls $(DEBIAN)/d-i/modules.$(arch)-* 2>/dev/null` \ + || true; \ + if [ "$$flavour_modules" != "" ]; then \ + for flav in $$flavour_modules; do \ + name=`echo $$flav | sed 's/.*\/modules.$(arch)-//'`; \ + mkdir $(builddir)/modules/$(arch)-$$name; \ + (cd $(builddir)/modules/; tar cf - `cat ../$$flav`) | \ + (cd $(builddir)/modules/$(arch)-$$name/; tar xf -); \ + touch $(builddir)/modules/$(arch)-$$name/kernel-image; \ + done; \ + fi + flavour_firmware=`ls $(DEBIAN)/d-i/firmware.$(arch)-* 2>/dev/null` \ + || true; \ + if [ "$$flavour_firmware" != "" ]; then \ + for flav in $$flavour_firmware; do \ + name=`echo $$flav | sed 's/.*\/firmware.$(arch)-//'`; \ + mkdir $(builddir)/firmware/$(arch)-$$name; \ + (cd $(builddir)/firmware/; tar cf - `cat ../$$flav`) | \ + (cd $(builddir)/firmware/$(arch)-$$name/; tar xf -);\ + touch $(builddir)/firmware/$(arch)-$$name/kernel-image; \ + done; \ + fi + + # Some files may need to differ between flavours + flavour_module_dirs=`ls -d $(DEBIAN)/d-i/modules-$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_module_dirs" ]; then \ + for flav in $$flavour_module_dirs; do \ + name=`echo $$flav | sed 's/.*\/modules-$(arch)-//'`; \ + [ -d $(builddir)/modules/$(arch)-$$name ] || \ + cp -a $(builddir)/modules/$(arch) \ + modules/$(arch)-$$name; \ + cp $$flav/* $(builddir)/modules/$(arch)-$$name/; \ + done; \ + fi + flavour_firmware_dirs=`ls -d $(DEBIAN)/d-i/firmware-$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_firmware_dirs" ]; then \ + for flav in $$flavour_firmware_dirs; do \ + name=`echo $$flav | sed 's/.*\/firmware-$(arch)-//'`; \ + [ -d $(builddir)/firmware/$(arch)-$$name ] || \ + cp -a $(builddir)/firmware/$(arch) \ + firmware/$(arch)-$$name; \ + cp $$flav/* $(builddir)/firmware/$(arch)-$$name/; \ + done; \ + fi + + # Remove unwanted stuff for each flavour + flavour_exclude=`ls $(DEBIAN)/d-i/exclude-modules.$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_exclude" ]; then \ + for flav in $$flavour_exclude; do \ + name=`echo $$flav | sed 's/.*\/exclude-modules.$(arch)-//'`;\ + [ -d $(builddir)/modules/$(arch)-$$name ] || \ + cp -a $(builddir)/modules/$(arch) \ + $(builddir)/modules/$(arch)-$$name; \ + (cat $$flav; \ + ls $(builddir)/modules/$(arch)-$$name) | \ + sort | uniq -d | \ + (cd $(builddir)/modules/$(arch)-$$name/; \ + xargs rm -f); \ + done; \ + fi + flavour_exclude=`ls $(DEBIAN)/d-i/exclude-firmware.$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_exclude" ]; then \ + for flav in $$flavour_exclude; do \ + name=`echo $$flav | sed 's/.*\/exclude-firmware.$(arch)-//'`;\ + [ -d $(builddir)/firmware/$(arch)-$$name ] || \ + cp -a $(builddir)/firmware/$(arch) \ + $(builddir)/firmware/$(arch)-$$name; \ + (cat $$flav; \ + ls $(builddir)/firmware/$(arch)-$$name) | \ + sort | uniq -d | \ + (cd $(builddir)/firmware/$(arch)-$$name/; \ + xargs rm -f); \ + done; \ + fi + + if [ ! -d $(builddir)/modules/$(build_arch) ]; then \ + mkdir -p $(builddir)/modules/$(build_arch); \ + cp $(builddir)/modules/$(arch)/* \ + $(builddir)/modules/$(build_arch); \ + fi + if [ ! -d $(builddir)/firmware/$(build_arch) ]; then \ + mkdir -p $(builddir)/firmware/$(build_arch); \ + cp $(builddir)/firmware/$(arch)/* \ + $(builddir)/firmware/$(build_arch); \ + fi + + cp $(DEBIAN)/control.stub debian/control.stub + cd $(builddir) && kernel-wedge gen-control > $(CURDIR)/debian/control --- linux-3.2.0.orig/debian/changelog +++ linux-3.2.0/debian/changelog @@ -0,0 +1,15985 @@ +linux (3.2.0-54.82) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1223490 + + [ Upstream Kernel Changes ] + + * Revert "zram: use zram->lock to protect zram_free_page() in swap free + notify path" + - LP: #1215513 + * x86 thermal: Delete power-limit-notification console messages + - LP: #1215748 + * x86 thermal: Disable power limit notification interrupt by default + - LP: #1215748 + * ARM: 7810/1: perf: Fix array out of bounds access in + armpmu_map_hw_event() + - LP: #1216442 + - CVE-2013-4254 + * ARM: 7809/1: perf: fix event validation for software group leaders + - LP: #1216442 + - CVE-2013-4254 + * xfs: fix _xfs_buf_find oops on blocks beyond the filesystem end + - LP: #1151527 + - CVE-2013-1819 + * cifs: don't instantiate new dentries in readdir for inodes that need to + be revalidated immediately + - LP: #1222442 + + -- Steve Conklin Tue, 10 Sep 2013 12:54:53 -0500 + +linux (3.2.0-53.81) precise; urgency=low + + [ Tim Gardner ] + + * SAUCE: net: ifb: Added include file + + -- Brad Figg Thu, 22 Aug 2013 12:21:41 -0700 + +linux (3.2.0-53.80) precise; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1215173 + + [ Andy Whitcroft ] + + * [Packaging] supply perf with appropriate prefix to ensure use of local + config + - LP: #1206200 + - CVE-2013-1060 + + [ Joseph Salisbury ] + + * SAUCE: (no-up) intel_ips: blacklist ASUSTek G60JX laptops + - LP: #1210848 + + [ Tim Gardner ] + + * [Config] Include rbd and kvm in the virtual inclusion list + - LP: #1206961 + + [ Upstream Kernel Changes ] + + * qla2xxx: Properly set the tagging for commands. + - LP: #1189928 + * r8169: fix offloaded tx checksum for small packets. + - LP: #1214984 + * printk: Fix rq->lock vs logbuf_lock unlock lock inversion + - LP: #1214984 + * zfcp: fix adapter (re)open recovery while link to SAN is down + - LP: #1214984 + * zfcp: block queue limits with data router + - LP: #1214984 + * zfcp: status read buffers on first adapter open with link down + - LP: #1214984 + * ahci: Add AMD CZ SATA device ID + - LP: #1214984 + * i2c-piix4: Add AMD CZ SMBus device ID + - LP: #1214984 + * zram: avoid invalid memory access in zram_exit() + - LP: #1214984 + * zram: use zram->lock to protect zram_free_page() in swap free notify + path + - LP: #1214984 + * zram: destroy all devices on error recovery path in zram_init() + - LP: #1214984 + * zram: avoid access beyond the zram device + - LP: #1214984 + * zram: protect sysfs handler from invalid memory access + - LP: #1214984 + * ahci: remove pmp link online check in FBS EH + - LP: #1214984 + * usb: gadget: f_mass_storage: add missing memory barrier for + thread_wakeup_needed + - LP: #1214984 + * libata: skip SRST for all SIMG [34]7x port-multipliers + - LP: #1214984 + * b43: ensue that BCMA is "y" when B43 is "y" + - LP: #1214984 + * ath9k_hw: Assign default xlna config for AR9485 + - LP: #1214984 + * ath9k: fill channel mode in caldata + - LP: #1214984 + * ath9k: Fix noisefloor calibration + - LP: #1214984 + * ath9k: Do not assign noise for NULL caldata + - LP: #1214984 + * Bluetooth: Fix crash in l2cap_build_cmd() with small MTU + - LP: #1214984 + * ASoC: wm8962: Remove remaining direct register cache accesses + - LP: #1214984 + * rtlwifi: rtl8192cu: Add new USB ID for TP-Link TL-WN8200ND + - LP: #1214984 + * ALSA: hda - Cache the MUX selection for generic HDMI + - LP: #1214984 + * xhci: check for failed dma pool allocation + - LP: #1214984 + * drivers: hv: switch to use mb() instead of smp_mb() + - LP: #1214984 + * media: dmxdev: remove dvb_ringbuffer_flush() on writer side + - LP: #1214984 + * rtlwifi: rtl8192cu: Fix duplicate if test + - LP: #1214984 + * hw_breakpoint: Use cpu_possible_mask in {reserve,release}_bp_slot() + - LP: #1214984 + * ata_piix: IDE-mode SATA patch for Intel Coleto Creek DeviceIDs + - LP: #1214984 + * ahci: AHCI-mode SATA patch for Intel Coleto Creek DeviceIDs + - LP: #1214984 + * iommu/amd: Only unmap large pages from the first pte + - LP: #1214984 + * ARM: 7765/1: perf: Record the user-mode PC in the call chain. + - LP: #1214984 + * mpt2sas: Fix for issue Missing delay not getting set during system + bootup + - LP: #1214984 + * mpt2sas: Fix for device scan following host reset could get stuck in a + infinite loop + - LP: #1214984 + * mpt2sas: fix firmware failure with wrong task attribute + - LP: #1214984 + * USB: option,qcserial: move Novatel Gobi1K IDs to qcserial + - LP: #1214984 + * futex: Take hugepages into account when generating futex_key + - LP: #1214984 + * vgacon.c: add cond reschedule points in vgacon_do_font_op + - LP: #1214984 + * perf: Disable monitoring on setuid processes for regular users + - LP: #1214984 + * sd: fix array cache flushing bug causing performance problems + - LP: #1214984 + * sd: Fix parsing of 'temporary ' cache mode prefix + - LP: #1214984 + * cgroup: fix RCU accesses to task->cgroups + - LP: #1214984 + * Handle big endianness in NTLM (ntlmv2) authentication + - LP: #1214984 + * dlci: acquire rtnl_lock before calling __dev_get_by_name() + - LP: #1214984 + * dlci: validate the net device in dlci_del() + - LP: #1214984 + * genirq: Fix can_request_irq() for IRQs without an action + - LP: #1214984 + * writeback: Fix periodic writeback after fs mount + - LP: #1214984 + * timer: Fix jiffies wrap behavior of round_jiffies_common() + - LP: #1214984 + * xen/time: remove blocked time accounting from xen "clockchip" + - LP: #1214984 + * UBIFS: prepare to fix a horrid bug + - LP: #1214984 + * UBIFS: fix a horrid bug + - LP: #1214984 + * powerpc/smp: Section mismatch from smp_release_cpus to __initdata + spinning_secondaries + - LP: #1214984 + * ext3,ext4: don't mess with dir_file->f_pos in htree_dirblock_to_tree() + - LP: #1214984 + * jbd2: fix theoretical race in jbd2__journal_restart + - LP: #1214984 + * nfsd4: fix decoding of compounds across page boundaries + - LP: #1214984 + * tracing: Fix irqs-off tag display in syscall tracing + - LP: #1214984 + * libceph: Fix NULL pointer dereference in auth client code + - LP: #1214984 + - CVE-2013-1059 + * drivers/dma/pl330.c: fix locking in pl330_free_chan_resources() + - LP: #1214984 + * ocfs2: xattr: fix inlined xattr reflink + - LP: #1214984 + * block: do not pass disk names as format strings + - LP: #1214984 + - CVE-2013-2851 + * crypto: sanitize argument for format string + - LP: #1214984 + * drivers/rtc/rtc-rv3029c2.c: fix disabling AIE irq + - LP: #1214984 + * nbd: correct disconnect behavior + - LP: #1214984 + * hpfs: better test for errors + - LP: #1214984 + * megaraid_sas: fix memory leak if SGL has zero length entries + - LP: #1214984 + * iscsi-target: Fix tfc_tpg_nacl_auth_cit configfs length overflow + - LP: #1214984 + * perf: Clone child context from parent context pmu + - LP: #1214984 + * perf: Remove WARN_ON_ONCE() check in __perf_event_enable() for valid + scenario + - LP: #1214984 + * perf: Fix perf_lock_task_context() vs RCU + - LP: #1214984 + * ceph: fix statvfs fr_size + - LP: #1214984 + * perf: Fix perf mmap bugs + - LP: #1214984 + * perf: Fix mmap() accounting hole + - LP: #1214984 + * pch_uart: fix a deadlock when pch_uart as console + - LP: #1214984 + * drivers/cdrom/cdrom.c: use kzalloc() for failing hardware + - LP: #1214984 + * ext4: fix overflow when counting used blocks on 32-bit architectures + - LP: #1214984 + * ext4: fix data offset overflow in ext4_xattr_fiemap() on 32-bit archs + - LP: #1214984 + * MAINTAINERS: Greg's suse email address is dead + - LP: #1214984 + * MAINTAINERS: add stable_kernel_rules.txt to stable maintainer + information + - LP: #1214984 + * Linux 3.2.49 + - LP: #1214984 + * bridge: fix switched interval for MLD Query types + - LP: #1214984 + * ipv6: don't call addrconf_dst_alloc again when enable lo + - LP: #1214984 + * macvtap: fix recovery from gup errors + - LP: #1214984 + * ipv6: ip6_sk_dst_check() must not assume ipv6 dst + - LP: #1214984 + * af_key: fix info leaks in notify messages + - LP: #1214984 + * sh_eth: fix unhandled RFE interrupt + - LP: #1214984 + * neighbour: fix a race in neigh_destroy() + - LP: #1214984 + * x25: Fix broken locking in ioctl error paths. + - LP: #1214984 + * net: Swap ver and type in pppoe_hdr + - LP: #1214984 + * ipv6,mcast: always hold idev->lock before mca_lock + - LP: #1214984 + * l2tp: add missing .owner to struct pppox_proto + - LP: #1214984 + * ipv6: call udp_push_pending_frames when uncorking a socket with AF_INET + pending data + - LP: #1214984 + * ipv6: ip6_append_data_mtu did not care about pmtudisc and frag_size + - LP: #1214984 + * sunvnet: vnet_port_remove must call unregister_netdev + - LP: #1214984 + * ifb: fix rcu_sched self-detected stalls + - LP: #1214984 + * macvtap: correctly linearize skb when zerocopy is used + - LP: #1214984 + * 9p: fix off by one causing access violations and memory corruption + - LP: #1214984 + * dummy: fix oops when loading the dummy failed + - LP: #1214984 + * ifb: fix oops when loading the ifb failed + - LP: #1214984 + * atl1e: fix dma mapping warnings + - LP: #1214984 + * atl1e: unmap partially mapped skb on dma error and free skb + - LP: #1214984 + * vlan: fix a race in egress prio management + - LP: #1214984 + * sparc32: vm_area_struct access for old Sun SPARCs. + - LP: #1214984 + * sparc64 address-congruence property + - LP: #1214984 + * sparc: tsb must be flushed before tlb + - LP: #1214984 + * virtio: support unlocked queue poll + - LP: #1214984 + * virtio_net: fix race in RX VQ processing + - LP: #1214984 + * Fix incorrect memset in bnx2fc_parse_fcp_rsp + - LP: #1214984 + * tracing: Use current_uid() for critical time tracing + - LP: #1214984 + * xen/io/ring.h: new macro to detect whether there are too many requests + on the ring + - LP: #1214984 + * xen/blkback: Check for insane amounts of request on the ring (v6). + - LP: #1214984 + * ASoC: sglt5000: Fix the default value of CHIP_SSS_CTRL + - LP: #1214984 + * ASoC: sglt5000: Fix SGTL5000_PLL_FRAC_DIV_MASK + - LP: #1214984 + * lockd: protect nlm_blocked access in nlmsvc_retry_blocked + - LP: #1214984 + * ext4: don't allow ext4_free_blocks() to fail due to ENOMEM + - LP: #1214984 + * ACPI / memhotplug: Fix a stale pointer in error path + - LP: #1214984 + * usb: dwc3: gadget: don't prevent gadget from being probed if we fail + - LP: #1214984 + * usb: dwc3: fix wrong bit mask in dwc3_event_type + - LP: #1214984 + * ALSA: asihpi: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ALSA: atiixp: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ALSA: 6fire: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ASoC: max98088 - fix element type of the register cache. + - LP: #1214984 + * ALSA: ua101: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ALSA: usx2y: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ALSA: pxa2xx: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ASoC: s6000: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * staging: line6: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ALSA: hda - Add new GPU codec ID to snd-hda + - LP: #1214984 + * ALSA: hda - Add new GPU codec ID to snd-hda + - LP: #1214984 + * ata: Fix DVD not dectected at some platform with Wellsburg PCH + - LP: #1214984 + * Btrfs: fix lock leak when resuming snapshot deletion + - LP: #1214984 + * Btrfs: re-add root to dead root list if we stop dropping it + - LP: #1214984 + * ALSA: usb-audio: 6fire: return correct XRUN indication + - LP: #1214984 + * usb: serial: cp210x: Add USB ID for Netgear Switches embedded serial + adapter + - LP: #1214984 + * USB: storage: Add MicroVault Flash Drive to unusual_devs + - LP: #1214984 + * USB: misc: Add Manhattan Hi-Speed USB DVI Converter to sisusbvga + - LP: #1214984 + * USB: option: append Petatel NP10T device to GSM modems list + - LP: #1214984 + * usb: cp210x support SEL C662 Vendor/Device + - LP: #1214984 + * USB: cp210x: add MMB and PI ZigBee USB Device Support + - LP: #1214984 + * drm/radeon: Another card with wrong primary dac adj + - LP: #1214984 + * drm/radeon: improve dac adjust heuristics for legacy pdac + - LP: #1214984 + * drm/radeon: fix combios tables on older cards + - LP: #1214984 + * isci: Fix a race condition in the SSP task management path + - LP: #1214984 + * sd: fix crash when UA received on DIF enabled device + - LP: #1214984 + * nfsd: nfsd_open: when dentry_open returns an error do not propagate as + struct file + - LP: #1214984 + * USB: option: add D-Link DWM-152/C1 and DWM-156/C1 + - LP: #1214984 + * staging: comedi: COMEDI_CANCEL ioctl should wake up read/write + - LP: #1214984 + * staging: comedi: fix a race between do_cmd_ioctl() and read/write + - LP: #1214984 + * usb: option: add TP-LINK MA260 + - LP: #1214984 + * powerpc/modules: Module CRC relocation fix causes perf issues + - LP: #1214984 + * USB: ti_usb_3410_5052: fix dynamic-id matching + - LP: #1214984 + * usb: serial: option: Add ONYX 3G device support + - LP: #1214984 + * xhci: Avoid NULL pointer deref when host dies. + - LP: #1214984 + * usb: host: xhci: Enable XHCI_SPURIOUS_SUCCESS for all controllers with + xhci 1.0 + - LP: #1214984 + * xhci: fix null pointer dereference on ring_doorbell_for_active_rings + - LP: #1214984 + * usb: serial: option: blacklist ONDA MT689DC QMI interface + - LP: #1214984 + * usb: serial: option: add Olivetti Olicard 200 + - LP: #1214984 + * usb: serial: option.c: remove ONDA MT825UP product ID fromdriver + - LP: #1214984 + * USB: mos7840: fix memory leak in open + - LP: #1214984 + * usb: Clear both buffers when clearing a control transfer TT buffer. + - LP: #1214984 + * Linux 3.2.50 + - LP: #1214984 + + -- Brad Figg Wed, 21 Aug 2013 15:15:31 -0700 + +linux (3.2.0-52.78) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1205381 + + [ Upstream Kernel Changes ] + + * Input: elantech - fix for newer hardware versions (v7) + - LP: #1166442 + * fanotify: info leak in copy_event_to_user() + - LP: #1188356 + - CVE-2013-2148 + + -- Steve Conklin Fri, 26 Jul 2013 10:32:54 -0500 + +linux (3.2.0-51.77) precise; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1199470 + + [ Upstream Kernel Changes ] + + * Bluetooth: Fix invalid length check in l2cap_information_rsp() + - LP: #1204548 + + -- Brad Figg Wed, 24 Jul 2013 12:36:41 -0700 + +linux (3.2.0-50.76) precise; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1199470 + + [ Steve Conklin ] + + * SAUCE: update configs for new atheros option + + [ Upstream Kernel Changes ] + + * Revert "serial: 8250_pci: add support for another kind of NetMos + Technology PCI 9835 Multi-I/O Controller" + - LP: #1190967 + * ata_piix: add PCI IDs for Intel BayTail + - LP: #1193029 + * libata: make ata_exec_internal_sg honor DMADIR + - LP: #1193029 + * cfg80211: check wdev->netdev in connection work + - LP: #1193029 + * cifs: fix potential buffer overrun when composing a new options string + - LP: #1193029 + * mac80211: close AP_VLAN interfaces before unregistering all + - LP: #1193029 + * drm/radeon: fix card_posted check for newer asics + - LP: #1193029 + * xfs: kill suid/sgid through the truncate path. + - LP: #1193029 + * tg3: Add New 5719 Read DMA workaround + - LP: #1193029 + * tg3: Add read dma workaround for 5720 + - LP: #1193029 + * ALSA: usb-audio: fix possible hang and overflow in + parse_uac2_sample_rate_range() + - LP: #1193029 + * ALSA: usb-audio: avoid integer overflow in create_fixed_stream_quirk() + - LP: #1193029 + * xen-netback: remove skb in xen_netbk_alloc_page + - LP: #1193029 + * netback: remove redundant assignment + - LP: #1193029 + * xen-netback: fix sparse warning + - LP: #1193029 + * xen-netback: coalesce slots in TX path and fix regressions + - LP: #1193029 + * xen-netback: don't disconnect frontend when seeing oversize packet + - LP: #1193029 + * xen-netback: remove redundent parameter in netbk_count_requests + - LP: #1193029 + * xen-netback: avoid allocating variable size array on stack + - LP: #1193029 + * xen-netback: better names for thresholds + - LP: #1193029 + * net: Add net_ratelimited_function and net__ratelimited macros + - LP: #1193029 + * xen-netfront: reduce gso_max_size to account for max TCP header + - LP: #1193029 + * jfs: fix a couple races + - LP: #1193029 + * xen/events: Handle VIRQ_TIMER before any other hardirq in event loop. + - LP: #1193029 + * b43legacy: Fix crash on unload when firmware not available + - LP: #1193029 + * ext4: lock i_mutex when truncating orphan inodes + - LP: #1193029 + * thinkpad-acpi: recognize latest V-Series using DMI_BIOS_VENDOR + - LP: #1193029 + * ftrace: Move ftrace_filter_lseek out of CONFIG_DYNAMIC_FTRACE section + - LP: #1193029 + * USB: serial: ftdi_sio: Handle the old_termios == 0 case e.g. + uart_resume_port() + - LP: #1193029 + * USB: ftdi_sio: Quiet sparse noise about using plain integer was NULL + pointer + - LP: #1193029 + * drm/gma500: Increase max resolution for mode setting + - LP: #1193029 + * xhci-mem: init list heads at the beginning of init + - LP: #1193029 + * xhci: fix list access before init + - LP: #1193029 + * xhci - correct comp_mode_recovery_timer on return from hibernate + - LP: #1193029 + * usb: dwc3: gadget: free trb pool only from epnum 2 + - LP: #1193029 + * USB: revert periodic scheduling bugfix + - LP: #1193029 + * USB: serial: fix Treo/Kyocera interrrupt-in urb context + - LP: #1193029 + * USB: visor: fix initialisation of Treo/Kyocera devices + - LP: #1193029 + * USB: mos7720: fix DMA to stack + - LP: #1193029 + * USB: ark3116: fix control-message timeout + - LP: #1193029 + * USB: iuu_phoenix: fix bulk-message timeout + - LP: #1193029 + * USB: mos7720: fix message timeouts + - LP: #1193029 + * ACPI video: ignore BIOS backlight value for HP dm4 + - LP: #1193029 + * ACPI video: ignore BIOS initial backlight value for HP 1000 + - LP: #1193029 + * ACPI / video: ignore BIOS initial backlight value for HP m4 + - LP: #1193029 + * ACPI / video: ignore BIOS initial backlight value for HP Pavilion g6 + - LP: #1193029 + * drm: fix a use-after-free when GPU acceleration disabled + - LP: #1193029 + * drm/i915: no lvds quirk for hp t5740 + - LP: #1193029 + * radeon: Fix system hang issue when using KMS with older cards + - LP: #1193029 + * USB: Serial: cypress_M8: Enable FRWD Dongle hidcom device + - LP: #1193029 + * USB: serial: Add Option GTM681W to qcserial device table. + - LP: #1193029 + * ALSA: usb-audio - Apply Logitech QuickCam Pro 9000 quirk only to audio + iface + - LP: #1193029 + * drm/i915/sdvo: Use &intel_sdvo->ddc instead of intel_sdvo->i2c for DDC. + - LP: #1193029 + * USB: keyspan: fix bogus array index + - LP: #1193029 + * USB: mos7720: fix hardware flow control + - LP: #1193029 + * ALSA: usb-audio - Fix invalid volume resolution on Logitech HD webcam + c270 + - LP: #1193029 + * ARM: 7742/1: topology: export cpu_topology + - LP: #1193029 + * ARM: 7743/1: compressed/head.S: work around new binutils warning + - LP: #1193029 + * USB: whiteheat: fix broken port configuration + - LP: #1193029 + * USB: option: blacklist network interface on Huawei E1820 + - LP: #1193029 + * hwmon: (adm1021) Strengthen chip detection for ADM1021, LM84 and + MAX1617 + - LP: #1193029 + * drm/gma500/psb: Unpin framebuffer on crtc disable + - LP: #1193029 + * drm/gma500/cdv: Unpin framebuffer on crtc disable + - LP: #1193029 + * drm/i915: prefer VBT modes for SVDO-LVDS over EDID + - LP: #1193029 + * Bluetooth: Fix missing length checks for L2CAP signalling PDUs + - LP: #1193029 + * ath9k: Disable PowerSave by default + - LP: #1193029 + * ath9k: Use minstrel rate control by default + - LP: #1193029 + * b43: stop format string leaking into error msgs + - LP: #1193029 + - CVE-2013-2852 + * CPU hotplug: provide a generic helper to disable/enable CPU hotplug + - LP: #1193029 + * reboot: rigrate shutdown/reboot to boot cpu + - LP: #1193029 + * audit: wait_for_auditd() should use TASK_UNINTERRUPTIBLE + - LP: #1193029 + * cciss: fix broken mutex usage in ioctl + - LP: #1193029 + * drivers/rtc/rtc-twl.c: fix missing device_init_wakeup() when booted + with device tree + - LP: #1193029 + * swap: avoid read_swap_cache_async() race to deadlock while waiting on + discard I/O completion + - LP: #1193029 + * mm: migration: add migrate_entry_wait_huge() + - LP: #1193029 + * USB: spcp8x5: fix device initialisation at open + - LP: #1193029 + * USB: pl2303: fix device initialisation at open + - LP: #1193029 + * x86: Fix typo in kexec register clearing + - LP: #1193029 + * md/raid1: consider WRITE as successful only if at least one non-Faulty + and non-rebuilding drive completed it. + - LP: #1193029 + * tg3: Wait for boot code to finish after power on + - LP: #1193029 + * powerpc: Fix emulation of illegal instructions on PowerNV platform + - LP: #1193029 + * Linux 3.2.47 + - LP: #1193029 + * tilepro: work around module link error with gcc 4.7 + - LP: #119744 + * ALSA: usb-audio: work around Android accessory firmware bug + - LP: #119744 + * ALSA: usb-audio: Fix invalid volume resolution for Logitech HD Webcam + c310 + - LP: #119744 + * ARM: 7755/1: handle user space mapped pages in flush_kernel_dcache_page + - LP: #119744 + * ARM: 7772/1: Fix missing flush_kernel_dcache_page() for noMMU + - LP: #119744 + * KVM: x86: remove vcpu's CPL check in host-invoked XCR set + - LP: #119744 + * x86: fix build error and kconfig for ia32_emulation and binfmt + - LP: #119744 + * USB: serial: ti_usb_3410_5052: new device id for Abbot strip port cable + - LP: #119744 + * Modify UEFI anti-bricking code + - LP: #119744 + * x86/efi: Fix dummy variable buffer allocation + - LP: #119744 + * virtio-blk: Call revalidate_disk() upon online disk resize + - LP: #119744 + * tcp: fix tcp_md5_hash_skb_data() + - LP: #119744 + * gianfar: add missing iounmap() on error in gianfar_ptp_probe() + - LP: #119744 + * ipv6: fix possible crashes in ip6_cork_release() + - LP: #119744 + * netlabel: improve domain mapping validation + - LP: #119744 + * r8169: fix 8168evl frame padding. + - LP: #119744 + * tcp: xps: fix reordering issues + - LP: #119744 + * ip_tunnel: fix kernel panic with icmp_dest_unreach + - LP: #119744 + * net: Block MSG_CMSG_COMPAT in send(m)msg and recv(m)msg + - LP: #119744 + * net: force a reload of first item in hlist_nulls_for_each_entry_rcu + - LP: #119744 + * ipv6: assign rt6_info to inet6_ifaddr in init_loopback + - LP: #119744 + * net: sctp: fix NULL pointer dereference in socket destruction + - LP: #119744 + * packet: packet_getname_spkt: make sure string is always 0-terminated + - LP: #119744 + * l2tp: Fix PPP header erasure and memory leak + - LP: #119744 + * l2tp: Fix sendmsg() return value + - LP: #119744 + * Linux 3.2.48 + - LP: #119744 + + -- Steve Conklin Thu, 20 Jun 2013 11:39:50 -0500 + +linux (3.2.0-49.75) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1192253 + + [ Dave Chiluk ] + + * SAUCE: ncpfs: fix rmdir returns Device or resource busy + - LP: #1035226 + + [ Stefan Bader ] + + * (d-i) Add dm-snapshot to md-modules + - LP: #1191726 + + -- Steve Conklin Tue, 18 Jun 2013 12:12:44 -0500 + +linux (3.2.0-48.74) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1188206 + + [ Upstream Kernel Changes ] + + * iwlwifi: dvm: fix zero LQ CMD sending avoidance + - LP: #1186932 + + -- Steve Conklin Thu, 06 Jun 2013 09:22:00 -0500 + +linux (3.2.0-47.72) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1187066 + + [ Upstream Kernel Changes ] + + * Revert "drm/i915: Fix detection of base of stolen memory" + - LP: #1186572 + * mmc: at91/avr32/atmel-mci: fix DMA-channel leak on module unload + - LP: #1186572 + * mmc: core: Fix bit width test failing on old eMMC cards + - LP: #1186572 + * mfd: adp5520: Restore mode bits on resume + - LP: #1186572 + * mmc: atmel-mci: pio hang on block errors + - LP: #1186572 + * x86: Eliminate irq_mis_count counted in arch_irq_stat + - LP: #1186572 + * ASoC: wm8994: missing break in wm8994_aif3_hw_params() + - LP: #1186572 + * ath9k: fix key allocation error handling for powersave keys + - LP: #1186572 + * nfsd4: don't allow owner override on 4.1 CLAIM_FH opens + - LP: #1186572 + * net/eth/ibmveth: Fixup retrieval of MAC address + - LP: #1186572 + * ext4: limit group search loop for non-extent files + - LP: #1186572 + * xen/vcpu/pvhvm: Fix vcpu hotplugging hanging. + - LP: #1186572 + * autofs - remove autofs dentry mount check + - LP: #1186572 + * ALSA: HDA: Fix Oops caused by dereference NULL pointer + - LP: #1186572 + * iscsi-target: Fix processing of OOO commands + - LP: #1186572 + * ACPICA: Fix possible buffer overflow during a field unit read operation + - LP: #1186572 + * B43: Handle DMA RX descriptor underrun + - LP: #1186572 + * mwifiex: clear is_suspended flag when interrupt is received early + - LP: #1186572 + * mwifiex: fix memory leak issue when driver unload + - LP: #1186572 + * mwifiex: fix setting of multicast filter + - LP: #1186572 + * cifs: only set ops for inodes in I_NEW state + - LP: #1186572 + * hp_accel: Ignore the error from lis3lv02d_poweron() at resume + - LP: #1186572 + * KVM: VMX: fix halt emulation while emulating invalid guest sate + - LP: #1186572 + * dm snapshot: fix error return code in snapshot_ctr + - LP: #1186572 + * dm bufio: avoid a possible __vmalloc deadlock + - LP: #1186572 + * tick: Cleanup NOHZ per cpu data on cpu down + - LP: #1186572 + * ACPI / EC: Restart transaction even when the IBF flag set + - LP: #1186572 + * drm/radeon: check incoming cliprects pointer + - LP: #1186572 + * staging: vt6656: use free_netdev instead of kfree + - LP: #1186572 + * hwmon: fix error return code in abituguru_probe() + - LP: #1186572 + * Kirkwood: Enable PCIe port 1 on QNAP TS-11x/TS-21x + - LP: #1186572 + * avr32: fix relocation check for signed 18-bit offset + - LP: #1186572 + * powerpc/pseries: Fix partition migration hang in stop_topology_update + - LP: #1186572 + * powerpc: Bring all threads online prior to migration/hibernation + - LP: #1186572 + * timer: Don't reinitialize the cpu base lock during CPU_UP_PREPARE + - LP: #1186572 + * tg3: Skip powering down function 0 on certain serdes devices + - LP: #1186572 + * USB: xHCI: override bogus bulk wMaxPacketSize values + - LP: #1186572 + * USB: UHCI: fix for suspend of virtual HP controller + - LP: #1186572 + * tracing: Fix leaks of filter preds + - LP: #1186572 + * usermodehelper: check subprocess_info->path != NULL + - LP: #1186572 + * drivers/char/ipmi: memcpy, need additional 2 bytes to avoid memory + overflow + - LP: #1186572 + * ipmi: ipmi_devintf: compat_ioctl method fails to take ipmi_mutex + - LP: #1186572 + * USB: reset resume quirk needed by a hub + - LP: #1186572 + * usb: option: Add Telewell TW-LTE 4G + - LP: #1186572 + * USB: Blacklisted Cinterion's PLxx WWAN Interface + - LP: #1186572 + * USB: option: add device IDs for Dell 5804 (Novatel E371) WWAN card + - LP: #1186572 + * i2c: designware: always clear interrupts before enabling them + - LP: #1186572 + * USB: ftdi_sio: Add support for Newport CONEX motor drivers + - LP: #1186572 + * btrfs: don't stop searching after encountering the wrong item + - LP: #1186572 + * virtio_console: fix uapi header + - LP: #1186572 + * ARM: plat-orion: Fix num_resources and id for ge10 and ge11 + - LP: #1186572 + * USB: cxacru: potential underflow in cxacru_cm_get_array() + - LP: #1186572 + * TTY: Fix tty miss restart after we turn off flow-control + - LP: #1186572 + * sunrpc: clarify comments on rpc_make_runnable + - LP: #1186572 + * SUNRPC: Prevent an rpc_task wakeup race + - LP: #1186572 + * perf: net_dropmonitor: Fix trace parameter order + - LP: #1186572 + * perf: net_dropmonitor: Fix symbol-relative addresses + - LP: #1186572 + * ACPI / video: Add "Asus UL30A" to ACPI video detect blacklist + - LP: #1186572 + * fat: fix possible overflow for fat_clusters + - LP: #1186572 + * wait: fix false timeouts when using wait_event_timeout() + - LP: #1186572 + * mm: mmu_notifier: re-fix freed page still mapped in secondary MMU + - LP: #1186572 + * rapidio/tsi721: fix bug in MSI interrupt handling + - LP: #1186572 + * Fix for rapidio-tsi721-fix-bug-in-MSI-interrupt-handling + * mm compaction: fix of improper cache flush in migration code + - LP: #1186572 + * mm/THP: use pmd_populate() to update the pmd with pgtable_t pointer + - LP: #1186572 + * drivers/block/brd.c: fix brd_lookup_page() race + - LP: #1186572 + * nilfs2: fix issue of nilfs_set_page_dirty() for page at EOF boundary + - LP: #1186572 + * random: fix accounting race condition with lockless irq entropy_count + update + - LP: #1186572 + * ocfs2: goto out_unlock if ocfs2_get_clusters_nocache() failed in + ocfs2_fiemap() + - LP: #1186572 + * mm/pagewalk.c: walk_page_range should avoid VM_PFNMAP areas + - LP: #1186572 + * xhci: Don't warn on empty ring for suspended devices. + - LP: #1186572 + * sched/debug: Limit sd->*_idx range on sysctl + - LP: #1186572 + * sched/debug: Fix sd->*_idx limit range avoiding overflow + - LP: #1186572 + * ipvs: ip_vs_sip_fill_param() BUG: bad check of return value + - LP: #1186572 + * pch_dma: Use GFP_ATOMIC because called from interrupt context + - LP: #1186572 + * drbd: fix for deadlock when using automatic split-brain-recovery + - LP: #1186572 + * x86, efivars: firmware bug workarounds should be in platform code + - LP: #1186572 + * efi: Export efi_query_variable_store() for efivars.ko + - LP: #1186572 + * x86,efi: Check max_size only if it is non-zero. + - LP: #1186572 + * x86,efi: Implement efi_no_storage_paranoia parameter + - LP: #1186572 + * tcp: force a dst refcount when prequeue packet + - LP: #1186572 + * 3c509.c: call SET_NETDEV_DEV for all device types (ISA/ISAPnP/EISA) + - LP: #1186572 + * net_sched: act_ipt forward compat with xtables + - LP: #1186572 + * bridge: fix race with topology change timer + - LP: #1186572 + * packet: tpacket_v3: do not trigger bug() on wrong header status + - LP: #1186572 + * 3c59x: fix freeing nonexistent resource on driver unload + - LP: #1186572 + * 3c59x: fix PCI resource management + - LP: #1186572 + * if_cablemodem.h: Add parenthesis around ioctl macros + - LP: #1186572 + * macvlan: fix passthru mode race between dev removal and rx path + - LP: #1186572 + * ipv6: do not clear pinet6 field + - LP: #1186572 + * xfrm6: release dev before returning error + - LP: #1186572 + * drivers/rtc/rtc-pcf2123.c: fix error return code in pcf2123_probe() + - LP: #1186572 + * mantis: fix silly crash case + - LP: #1186572 + * staging: comedi: prevent auto-unconfig of manually configured devices + - LP: #1186572 + * um: Serve io_remap_pfn_range() + - LP: #1186572 + * Linux 3.2.46 + - LP: #1186572 + + -- Steve Conklin Mon, 03 Jun 2013 12:30:01 -0500 + +linux (3.2.0-46.71) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1186317 + + [ Upstream Kernel Changes ] + + * xen: implement apic ipi interface + - LP: #1168350 + * crypto: algif - suppress sending source address information in recvmsg + - LP: #1172363 + - CVE-2013-3076 + * ax25: fix info leak via msg_name in ax25_recvmsg() + - LP: #1172366 + - CVE-2013-3223 + * Bluetooth: fix possible info leak in bt_sock_recvmsg() + - LP: #1172368 + - CVE-2013-3224 + * tipc: fix info leaks via msg_name in recv_msg/recv_stream + - LP: #1172403 + - CVE-2013-3235 + * rose: fix info leak via msg_name in rose_recvmsg() + - LP: #1172394 + - CVE-2013-3234 + * Bluetooth: RFCOMM - Fix missing msg_namelen update in + rfcomm_sock_recvmsg() + - LP: #1172369 + - CVE-2013-3225 + * atm: update msg_namelen in vcc_recvmsg() + - LP: #1172365 + - CVE-2013-3222 + * aio: fix possible invalid memory access when DEBUG is enabled + - LP: #1186055 + * tracing: Use stack of calling function for stack tracer + - LP: #1186055 + * tracing: Fix stack tracer with fentry use + - LP: #1186055 + * tracing: Remove most or all of stack tracer stack size from + stack_max_size + - LP: #1186055 + * tracing: Fix ftrace_dump() + - LP: #1186055 + * Wrong asm register contraints in the futex implementation + - LP: #1186055 + * Wrong asm register contraints in the kvm implementation + - LP: #1186055 + * cgroup: fix an off-by-one bug which may trigger BUG_ON() + - LP: #1186055 + * PCI / ACPI: Don't query OSC support with all possible controls + - LP: #1186055 + * drm/radeon: don't use get_engine_clock() on APUs + - LP: #1186055 + * drm/radeon: use frac fb div on RS780/RS880 + - LP: #1186055 + * Fix initialization of CMCI/CMCP interrupts + - LP: #1186055 + * sysfs: fix use after free in case of concurrent read/write and readdir + - LP: #1186055 + * usb/misc/appledisplay: Add 24" LED Cinema display + - LP: #1186055 + * nfsd: don't run get_file if nfs4_preprocess_stateid_op return error + - LP: #1186055 + * ext4/jbd2: don't wait (forever) for stale tid caused by wraparound + - LP: #1186055 + * jbd2: fix race between jbd2_journal_remove_checkpoint and + ->j_commit_callback + - LP: #1186055 + * drm/i915: Add no-lvds quirk for Fujitsu Esprimo Q900 + - LP: #1186055 + * USB: add ftdi_sio USB ID for GDM Boost V1.x + - LP: #1186055 + * hrtimer: Add expiry time overflow check in hrtimer_interrupt + - LP: #1186055 + * hrtimer: Fix ktime_add_ns() overflow on 32bit architectures + - LP: #1186055 + * nfsd4: don't close read-write opens too soon + - LP: #1186055 + * tracing: Fix off-by-one on allocating stat->pages + - LP: #1186055 + * USB: option: add a D-Link DWM-156 variant + - LP: #1186055 + * tracing: Reset ftrace_graph_filter_enabled if count is zero + - LP: #1186055 + * tracing: Check return value of tracing_init_dentry() + - LP: #1186055 + * ALSA: usb: Add quirk for 192KHz recording on E-Mu devices + - LP: #1186055 + * ALSA: usb-audio: disable autopm for MIDI devices + - LP: #1186055 + * drm/radeon/evergreen+: don't enable HPD interrupts on eDP/LVDS + - LP: #1186055 + * drm/radeon: cleanup properly if mmio mapping fails + - LP: #1186055 + * serial_core.c: add put_device() after device_find_child() + - LP: #1186055 + * PCI/PM: Fix fallback to PCI_D0 in pci_platform_power_transition() + - LP: #1186055 + * wireless: regulatory: fix channel disabling race condition + - LP: #1186055 + * xen/smp: Fix leakage of timer interrupt line for every CPU + online/offline. + - LP: #1186055 + * xen/smp/spinlock: Fix leakage of the spinlock interrupt line for every + CPU online/offline + - LP: #1186055 + * xen/time: Fix kasprintf splat when allocating timer%d IRQ line. + - LP: #1186055 + * ASoC: max98088: Fix logging of hardware revision. + - LP: #1186055 + * usbfs: Always allow ctrl requests with USB_RECIP_ENDPOINT on the ctrl + ep + - LP: #1186055 + * drm/i915: Workaround incoherence between fences and LLC across multiple + CPUs + - LP: #1186055 + * drm/i915: ensure single initialization and cleanup of backlight device + - LP: #1186055 + * iwlwifi: dvm: don't send zeroed LQ cmd + - LP: #1186055 + * drm/i915: Fall back to bit banging mode for DVO transmitter detection + - LP: #1186055 + * LOCKD: Ensure that nlmclnt_block resets block->b_status after a server + reboot + - LP: #1186055 + * ext4: fix Kconfig documentation for CONFIG_EXT4_DEBUG + - LP: #1186055 + * drm/radeon: fix hdmi mode enable on RS600/RS690/RS740 + - LP: #1186055 + * USB: ftdi_sio: correct ST Micro Connect Lite PIDs + - LP: #1186055 + * USB: serial: option: Added support Olivetti Olicard 145 + - LP: #1186055 + * usb-storage: CY7C68300A chips do not support Cypress ATACB + - LP: #1186055 + * i2c: xiic: must always write 16-bit words to TX_FIFO + - LP: #1186055 + * nfsd: Decode and send 64bit time values + - LP: #1186055 + * fbcon: when font is freed, clear also vc_font.data + - LP: #1186055 + * powerpc/spufs: Initialise inode->i_ino in spufs_new_inode() + - LP: #1186055 + * USB: ftdi_sio: enable two UART ports on ST Microconnect Lite + - LP: #1186055 + * ALSA: snd-usb: try harder to find USB_DT_CS_ENDPOINT + - LP: #1186055 + * gianfar: do not advertise any alarm capability. + - LP: #1186055 + * ALSA: usb-audio: Fix autopm error during probing + - LP: #1186055 + * clockevents: Set dummy handler on CPU_DEAD shutdown + - LP: #1186055 + * ixgbe: fix EICR write in ixgbe_msix_other + - LP: #1186055 + * powerpc: Add isync to copy_and_flush + - LP: #1186055 + * s390/memory hotplug: prevent offline of active memory increments + - LP: #1186055 + * mwifiex: Use pci_release_region() instead of a pci_release_regions() + - LP: #1186055 + * mwifiex: Call pci_release_region after calling pci_disable_device + - LP: #1186055 + * ARM: u300: fix ages old copy/paste bug + - LP: #1186055 + * fs/fscache/stats.c: fix memory leak + - LP: #1186055 + * drivers/rtc/rtc-cmos.c: don't disable hpet emulation on suspend + - LP: #1186055 + * md: bad block list should default to disabled. + - LP: #1186055 + * inotify: invalid mask should return a error number but not set it + - LP: #1186055 + * fs/dcache.c: add cond_resched() to shrink_dcache_parent() + - LP: #1186055 + * ipc: sysv shared memory limited to 8TiB + - LP: #1186055 + * drm/radeon: fix endian bugs in atom_allocate_fb_scratch() + - LP: #1186055 + * drm/radeon: fix possible segfault when parsing pm tables + - LP: #1186055 + * drm/radeon: fix handling of v6 power tables + - LP: #1186055 + * TTY: do not update atime/mtime on read/write + - LP: #1186055 + * TTY: fix atime/mtime regression + - LP: #1186055 + * tty: fix up atime/mtime mess, take three + - LP: #1186055 + * perf: Fix error return code + - LP: #1186055 + * perf/x86: Fix offcore_rsp valid mask for SNB/IVB + - LP: #1186055 + * s390: move dummy io_remap_pfn_range() to asm/pgtable.h + - LP: #1186055 + * vm: add vm_iomap_memory() helper function + - LP: #1186055 + * vm: convert snd_pcm_lib_mmap_iomem() to vm_iomap_memory() helper + - LP: #1186055 + * vm: convert fb_mmap to vm_iomap_memory() helper + - LP: #1186055 + * vm: convert HPET mmap to vm_iomap_memory() helper + - LP: #1186055 + * cbq: incorrect processing of high limits + - LP: #1186055 + * net IPv6 : Fix broken IPv6 routing table after loopback down-up + - LP: #1186055 + * net: count hw_addr syncs so that unsync works properly. + - LP: #1186055 + * atl1e: limit gso segment size to prevent generation of wrong ip length + fields + - LP: #1186055 + * bonding: fix bonding_masters race condition in bond unloading + - LP: #1186055 + * bonding: IFF_BONDING is not stripped on enslave failure + - LP: #1186055 + * af_unix: If we don't care about credentials coallesce all messages + - LP: #1186055 + * netfilter: don't reset nf_trace in nf_reset() + - LP: #1186055 + * rtnetlink: Call nlmsg_parse() with correct header length + - LP: #1186055 + * tcp: incoming connections might use wrong route under synflood + - LP: #1186055 + * esp4: fix error return code in esp_output() + - LP: #1186055 + * net: sctp: sctp_auth_key_put: use kzfree instead of kfree + - LP: #1186055 + * tcp: call tcp_replace_ts_recent() from tcp_ack() + - LP: #1186055 + * caif: Fix missing msg_namelen update in caif_seqpkt_recvmsg() + - LP: #1186055 + * irda: Fix missing msg_namelen update in irda_recvmsg_dgram() + - LP: #1186055 + * iucv: Fix missing msg_namelen update in iucv_sock_recvmsg() + - LP: #1186055 + * llc: Fix missing msg_namelen update in llc_ui_recvmsg() + - LP: #1186055 + * netrom: fix info leak via msg_name in nr_recvmsg() + - LP: #1186055 + * netrom: fix invalid use of sizeof in nr_recvmsg() + - LP: #1186055 + * net: drop dst before queueing fragments + - LP: #1186055 + * sparc64: Fix race in TLB batch processing. + - LP: #1186055 + * r8169: fix 8168evl frame padding. + - LP: #1186055 + * drm/i915: Fix detection of base of stolen memory + - LP: #1186055 + * ixgbe: add missing rtnl_lock in PM resume path + - LP: #1186055 + * kernel/audit_tree.c: tree will leak memory when failure occurs in + audit_trim_trees() + - LP: #1186055 + * powerpc: fix numa distance for form0 device tree + - LP: #1186055 + * r8169: fix vlan tag read ordering. + - LP: #1186055 + * x86/mm: account for PGDIR_SIZE alignment + - LP: #1186055 + * Linux 3.2.45 + - LP: #1186055 + + -- Steve Conklin Fri, 31 May 2013 11:02:41 -0500 + +linux (3.2.0-45.70) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1185451 + + [ Upstream Kernel Changes ] + + * iscsi-target: fix heap buffer overflow on error + - CVE-2013-2850 + + -- Steve Conklin Wed, 29 May 2013 09:12:15 -0500 + +linux (3.2.0-44.69) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1180612 + * merged back all changes which were in 42.67 + + -- Steve Conklin Wed, 15 May 2013 18:22:19 -0500 + +linux (3.2.0-43.68) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1180167 + * Based on 3.2.0-41.66 release + - entire delta from 41.66 to 42.67 removed + - CVE release is based on updates+fix + + [ Upstream Kernel Changes ] + + * perf: Treat attr.config as u64 in perf_swevent_init() + - LP: #1179943 + - CVE-2013-2094 + + -- Steve Conklin Tue, 14 May 2013 21:40:40 -0500 + +linux (3.2.0-42.67) precise; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1177080 + + [ joseph.salisbury@canonical.com ] + + * SAUCE: (no-up) x86: reboot: Make Dell Optiplex 390 use reboot=pci + - LP: #800660 + + [ Stefan Bader ] + + * [Config] Add libceph to virtual flavour modules list + - LP: #1164739 + + [ Tim Gardner ] + + * [packaging] Bump ABI for every new release + + [ Upstream Kernel Changes ] + + * Start new release + * tg3: fix length overflow in VPD firmware parsing + - LP: #1167065 + - CVE-2013-1929 + * Bluetooth: Add support for atheros 04ca:3004 device to ath3k + - LP: #1168852 + * clockevents: Don't allow dummy broadcast timers + - LP: #1174914 + * ASoC: imx-ssi: Fix occasional AC97 reset failure + - LP: #1174914 + * UBIFS: make space fixup work in the remount case + - LP: #1174914 + * Bluetooth: Add support for IMC Networks [13d3:3393] + - LP: #1174914 + * Bluetooth: Add support for GC-WB300D PCIe [04ca:3006] to ath3k. + - LP: #1174914 + * Bluetooth: Add support for Foxconn / Hon Hai [0489:e04e] + - LP: #1174914 + * Bluetooth: Add support for Foxconn / Hon Hai [0489:e056] + - LP: #1174914 + * Bluetooth device 04ca:3008 should use ath3k + - LP: #1174914 + * Bluetooth: Device 0cf3:3008 should map AR 3012 + - LP: #1174914 + * Bluetooth: Add support for Dell[QCA 0cf3:0036] + - LP: #1174914 + * tty: atmel_serial_probe(): index of atmel_ports[] fix + - LP: #1174914 + * HID: usbhid: quirk for Realtek Multi-card reader + - LP: #1174914 + * HID: usbhid: quirk for MSI GX680R led panel + - LP: #1174914 + * HID: usbhid: fix build problem + - LP: #1174914 + * Bluetooth: Add support for Dell[QCA 0cf3:817a] + - LP: #1174914 + * ath9k_hw: revert chainmask to user configuration after calibration + - LP: #1174914 + * rtlwifi: usb: add missing freeing of skbuff + - LP: #1174914 + * xen-blkback: fix dispatch_rw_block_io() error path + - LP: #1174914 + * net/irda: add missing error path release_sock call + - LP: #1174914 + * sysfs: fix race between readdir and lseek + - LP: #1174914 + * sysfs: handle failure path correctly for readdir() + - LP: #1174914 + * pnfs-block: removing DM device maybe cause oops when call dev_remove + - LP: #1174914 + * NFSv4.1: Fix a race in pNFS layoutcommit + - LP: #1174914 + * ASoC: dma-sh7760: Fix compile error + - LP: #1174914 + * IPoIB: Fix send lockup due to missed TX completion + - LP: #1174914 + * SUNRPC: Add barriers to ensure read ordering in + rpc_wake_up_task_queue_locked + - LP: #1174914 + * usb: xhci: Fix TRB transfer length macro used for Event TRB. + - LP: #1174914 + * staging: comedi: s626: fix continuous acquisition + - LP: #1174914 + * nfsd4: reject "negative" acl lengths + - LP: #1174914 + * Nest rename_lock inside vfsmount_lock + - LP: #1174914 + * vt: synchronize_rcu() under spinlock is not nice... + - LP: #1174914 + * iommu/amd: Make sure dma_ops are set for hotplug devices + - LP: #1174914 + * can: sja1000: fix define conflict on SH + - LP: #1174914 + * b43: A fix for DMA transmission sequence errors + - LP: #1174914 + * Btrfs: limit the global reserve to 512mb + - LP: #1174914 + * usb: ftdi_sio: Add support for Mitsubishi FX-USB-AW/-BD + - LP: #1174914 + * reiserfs: Fix warning and inode leak when deleting inode with xattrs + - LP: #1174914 + * tile: expect new initramfs name from hypervisor file system + - LP: #1174914 + * virtio: console: rename cvq_lock to c_ivq_lock + - LP: #1174914 + * virtio: console: add locking around c_ovq operations + - LP: #1174914 + * spi/mpc512x-psc: optionally keep PSC SS asserted across xfer segmensts + - LP: #1174914 + * EISA/PCI: Init EISA early, before PNP + - LP: #1174914 + * mm: prevent mmap_cache race in find_vma() + - LP: #1174914 + * ixgbe: fix registration order of driver and DCA nofitication + - LP: #1174914 + * rt2x00: error in configurations with mesh support disabled + - LP: #1174914 + * key: Fix resource leak + - LP: #1174914 + * udf: Fix bitmap overflow on large filesystems with small block size + - LP: #1174914 + * NFS: nfs_getaclargs.acl_len is a size_t + - LP: #1174914 + * loop: prevent bdev freeing while device in use + - LP: #1174914 + * sky2: Receive Overflows not counted + - LP: #1174914 + * sky2: Threshold for Pause Packet is set wrong + - LP: #1174914 + * tcp: preserve ACK clocking in TSO + - LP: #1174914 + * tcp: undo spurious timeout after SACK reneging + - LP: #1174914 + * 8021q: fix a potential use-after-free + - LP: #1174914 + * thermal: shorten too long mcast group name + - LP: #1174914 + * bonding: fix miimon and arp_interval delayed work race conditions + - LP: #1174914 + * unix: fix a race condition in unix_release() + - LP: #1174914 + * bonding: remove already created master sysfs link on failure + - LP: #1174914 + * bonding: fix disabling of arp_interval and miimon + - LP: #1174914 + * drivers: net: ethernet: davinci_emac: use netif_wake_queue() while + restarting tx queue + - LP: #1174914 + * aoe: reserve enough headroom on skbs + - LP: #1174914 + * atl1e: drop pci-msi support because of packet corruption + - LP: #1174914 + * DM9000B: driver initialization upgrade + - LP: #1174914 + * ipv6: don't accept multicast traffic with scope 0 + - LP: #1174914 + * ipv6: fix bad free of addrconf_init_net + - LP: #1174914 + * ipv6: don't accept node local multicast traffic from the wire + - LP: #1174914 + * ks8851: Fix interpretation of rxlen field. + - LP: #1174914 + * net: add a synchronize_net() in netdev_rx_handler_unregister() + - LP: #1174914 + * pch_gbe: fix ip_summed checksum reporting on rx + - LP: #1174914 + * smsc75xx: fix jumbo frame support + - LP: #1174914 + * bonding: get netdev_rx_handler_unregister out of locks + - LP: #1174914 + * HID: microsoft: do not use compound literal - fix build + - LP: #1174914 + * Linux 3.2.43 + - LP: #1174914 + * USB: serial: add modem-status-change wait queue + - LP: #1174914 + * USB: serial: fix hang when opening port + - LP: #1174914 + * USB: ark3116: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: ch341: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: cypress_m8: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: ftdi_sio: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: io_edgeport: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: io_ti: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: mct_u232: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: mos7840: fix broken TIOCMIWAIT + - LP: #1174914 + * USB: mos7840: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: oti6858: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: pl2303: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: spcp8x5: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: ssu100: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: ti_usb_3410_5052: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * hrtimer: Don't reinitialize a cpu_base lock on CPU_UP + - LP: #1174914 + * crypto: gcm - fix assumption that assoc has one segment + - LP: #1174914 + * libata: Use integer return value for atapi_command_packet_set + - LP: #1174914 + * libata: Set max sector to 65535 for Slimtype DVD A DS8A8SH drive + - LP: #1174914 + * ata_piix: Fix DVD not dectected at some Haswell platforms + - LP: #1174914 + * hwspinlock: fix __hwspin_lock_request error path + - LP: #1174914 + * ALSA: usb-audio: fix endianness bug in snd_nativeinstruments_* + - LP: #1174914 + * alpha: Add irongate_io to PCI bus resources + - LP: #1174914 + * powerpc: pSeries_lpar_hpte_remove fails from Adjunct partition being + performed before the ANDCOND test + - LP: #1174914 + * sched_clock: Prevent 64bit inatomicity on 32bit systems + - LP: #1174914 + * ftrace: Consistently restore trace function on sysctl enabling + - LP: #1174914 + * PM / reboot: call syscore_shutdown() after disable_nonboot_cpus() + - LP: #1174914 + * can: gw: use kmem_cache_free() instead of kfree() + - LP: #1174914 + * ASoC: wm8903: Fix the bypass to HP/LINEOUT when no DAC or ADC is + running + - LP: #1174914 + * spinlocks and preemption points need to be at least compiler barriers + - LP: #1174914 + * tracing: Fix double free when function profile init failed + - LP: #1174914 + * x86, mm, paravirt: Fix vmalloc_fault oops during lazy MMU updates + - LP: #1174914 + * x86, mm: Patch out arch_flush_lazy_mmu_mode() when running on bare + metal + - LP: #1174914 + * target: Fix MAINTENANCE_IN service action CDB checks to use lower 5 + bits + - LP: #1174914 + * target: Fix incorrect fallthrough of ALUA Standby/Offline/Transition + CDBs + - LP: #1174914 + * tracing: Fix possible NULL pointer dereferences + - LP: #1174914 + * Btrfs: make sure nbytes are right after log replay + - LP: #1174914 + * kref: Implement kref_get_unless_zero v3 + - LP: #1174914 + * kobject: fix kset_find_obj() race with concurrent last kobject_put() + - LP: #1174914 + * vfs: Revert spurious fix to spinning prevention in prune_icache_sb + - LP: #1174914 + * ARM: Do 15e0d9e37c (ARM: pm: let platforms select cpu_suspend support) + properly + - LP: #1174914 + * ath9k_htc: accept 1.x firmware newer than 1.3 + - LP: #1174914 + * of: introduce helper to manage boolean + - LP: #1174914 + * can: sja1000: fix handling on dt properties on little endian systems + - LP: #1174914 + * ath9k_hw: change AR9580 initvals to fix a stability issue + - LP: #1174914 + * ARM: 7696/1: Fix kexec by setting outer_cache.inv_all for Feroceon + - LP: #1174914 + * ARM: 7698/1: perf: fix group validation when using enable_on_exec + - LP: #1174914 + * hugetlbfs: add swap entry check in follow_hugetlb_page() + - LP: #1174914 + * kernel/signal.c: stop info leak via the tkill and the tgkill syscalls + - LP: #1174914 + * net: fix incorrect credentials passing + - LP: #1174914 + * thermal: return an error on failure to register thermal class + - LP: #1174914 + * writeback: fix dirtied pages accounting on redirty + - LP: #1174914 + * Btrfs: fix race between mmap writes and compression + - LP: #1174914 + * drm/i915: panel: invert brightness via parameter + - LP: #1174914 + * drm/i915: panel: invert brightness via quirk + - LP: #1174914 + * drm/i915: panel: invert brightness acer aspire 5734z + - LP: #1174914 + * DRM/i915: Add QUIRK_INVERT_BRIGHTNESS for NCR machines. + - LP: #1174914 + * drm/i915: add quirk to invert brightness on eMachines G725 + - LP: #1174914 + * drm/i915: add quirk to invert brightness on eMachines e725 + - LP: #1174914 + * drm/i915: add quirk to invert brightness on Packard Bell NCL20 + - LP: #1174914 + * msi-wmi: Fix memory leak + - LP: #1174914 + * ALSA: hda - Enabling Realtek ALC 671 codec + - LP: #1174914 + * ALSA: hda - fix typo in proc output + - LP: #1174914 + * block: avoid using uninitialized value in from queue_var_store + - LP: #1174914 + * r8169: fix auto speed down issue + - LP: #1174914 + * mtd: Disable mtdchar mmap on MMU systems + - LP: #1174914 + * hfsplus: fix potential overflow in hfsplus_file_truncate() + - LP: #1174914 + * KVM: Allow cross page reads and writes from cached translations. + - LP: #1174914 + * sched: Convert BUG_ON()s in try_to_wake_up_local() to WARN_ON_ONCE()s + - LP: #1174914 + * Linux 3.2.44 + - LP: #1174914 + + -- Steve Conklin Thu, 24 Apr 2013 20:55:20 -0500 + +linux (3.2.0-41.66) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1172464 + + [ Steve Conklin ] + + * Revert "drm/i915: GFX_MODE Flush TLB Invalidate Mode must be '1' for + scanline waits" + - LP: #1140716 + + [ Upstream Kernel Changes ] + + * fbcon: fix locking harder + - LP: #1168961, #1169380 + + -- Steve Conklin Wed, 24 Apr 2013 15:36:11 -0500 + +linux (3.2.0-41.65) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1167436 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Fix quieting of audit messages for network + mediation + - LP: #1163259 + + [ Steve Conklin ] + + * SAUCE: Update configs for new efivars option + - LP: #1164646 + + [ Upstream Kernel Changes ] + + * Revert "powerpc/eeh: Fix crash when adding a device in a slot with DDW" + - LP: #1164646 + * Input: cypress_ps2 - fix trackpadi found in Dell XPS12 + - LP: #1103594 + * btrfs: Init io_lock after cloning btrfs device struct + - LP: #1164646 + * md: protect against crash upon fsync on ro array + - LP: #1164646 + * NFS: Don't allow NFS silly-renamed files to be deleted, no signal + - LP: #1164646 + * SUNRPC: Don't start the retransmission timer when out of socket space + - LP: #1164646 + * storvsc: Initialize the sglist + - LP: #1164646 + * dc395x: uninitialized variable in device_alloc() + - LP: #1164646 + * ARM: VFP: fix emulation of second VFP instruction + - LP: #1164646 + * ARM: fix scheduling while atomic warning in alignment handling code + - LP: #1164646 + * md: fix two bugs when attempting to resize RAID0 array. + - LP: #1164646 + * md: raid0: fix error return from create_stripe_zones. + - LP: #1164646 + * proc connector: reject unprivileged listener bumps + - LP: #1164646 + * ath9k: fix RSSI dummy marker value + - LP: #1164646 + * ath9k_htc: fix signal strength handling issues + - LP: #1164646 + * mwifiex: correct sleep delay counter + - LP: #1164646 + * cifs: ensure that cifs_get_root() only traverses directories + - LP: #1164646 + * xen/pci: We don't do multiple MSI's. + - LP: #1164646 + * dm: fix truncated status strings + - LP: #1164646 + * dm snapshot: add missing module aliases + - LP: #1164646 + * drm/i915: Don't clobber crtc->fb when queue_flip fails + - LP: #1164646 + * ARM: 7663/1: perf: fix ARMv7 EVTYPE_MASK to include NSH bit + - LP: #1164646 + * hwmon: (pmbus/ltc2978) Fix peak attribute handling + - LP: #1164646 + * hwmon: (pmbus/ltc2978) Use detected chip ID to select supported + functionality + - LP: #1164646 + * hwmon: (sht15) Check return value of regulator_enable() + - LP: #1164646 + * hw_random: make buffer usable in scatterlist. + - LP: #1164646 + * ALSA: vmaster: Fix slave change notification + - LP: #1164646 + * drm/radeon: add primary dac adj quirk for R200 board + - LP: #1164646 + * dmi_scan: fix missing check for _DMI_ signature in smbios_present() + - LP: #1164646 + * iwlwifi: always copy first 16 bytes of commands + - LP: #1164646 + * HID: add support for Sony RF receiver with USB product id 0x0374 + - LP: #1164646 + * HID: clean up quirk for Sony RF receivers + - LP: #1164646 + * ahci: Add Device IDs for Intel Lynx Point-LP PCH + - LP: #1164646 + * ahci: AHCI-mode SATA patch for Intel Avoton DeviceIDs + - LP: #1164646 + * ahci: Add Device IDs for Intel Wellsburg PCH + - LP: #1164646 + * iommu/amd: Initialize device table after dma_ops + - LP: #1164646 + * tty: Correct tty buffer flush. + - LP: #1164646 + * efi_pstore: Check remaining space with QueryVariableInfo() before + writing data + - LP: #1164646 + * efivars: Disable external interrupt while holding efivars->lock + - LP: #1164646 + * efi: be more paranoid about available space when creating variables + - LP: #1164646 + * ftrace: Update the kconfig for DYNAMIC_FTRACE + - LP: #1164646 + * decnet: Fix disappearing sysctl entries + - LP: #1164646 + * Fix memory leak in cpufreq stats. + - LP: #1164646 + * vfs: fix pipe counter breakage + - LP: #1164646 + * xen/pciback: Don't disable a PCI device that is already disabled. + - LP: #1164646 + * USB: option: add Huawei E5331 + - LP: #1164646 + * USB: storage: fix Huawei mode switching regression + - LP: #1164646 + * USB: added support for Cinterion's products AH6 and PLS8 + - LP: #1164646 + * e1000e: fix pci-device enable-counter balance + - LP: #1164646 + * virtio: rng: disallow multiple device registrations, fixes crashes + - LP: #1164646 + * ALSA: seq: Fix missing error handling in snd_seq_timer_open() + - LP: #1164646 + * usb: cp210x new Vendor/Device IDs + - LP: #1164646 + * staging: vt6656: Fix oops on resume from suspend. + - LP: #1164646 + * qcaux: add Franklin U600 + - LP: #1164646 + * ext3: Fix format string issues + - LP: #1164646 + * tty/serial: Add support for Altera serial port + - LP: #1164646 + * Fix 4 port and add support for 8 port 'Unknown' PCI serial port cards + - LP: #1164646 + * serial: 8250_pci: add support for another kind of NetMos Technology PCI + 9835 Multi-I/O Controller + - LP: #1164646 + * tty: serial: fix typo "ARCH_S5P6450" + - LP: #1164646 + * usb: serial: Add Rigblaster Advantage to device table + - LP: #1164646 + * w1: fix oops when w1_search is called from netlink connector + - LP: #1164646 + * USB: cdc-wdm: fix buffer overflow + - LP: #1164646 + * hwmon: (lineage-pem) Add missing terminating entry for + pem_[input|fan]_attributes + - LP: #1164646 + * hwmon: (pmbus/ltc2978) Fix temperature reporting + - LP: #1164646 + * Fix: compat_rw_copy_check_uvector() misuse in aio, readv, writev, and + security keys + - LP: #1164646 + * USB: Don't use EHCI port sempahore for USB 3.0 hubs. + - LP: #1164646 + * USB: Prepare for refactoring by adding extra udev checks. + - LP: #1164646 + * USB: Rip out recursive call on warm port reset. + - LP: #1164646 + * USB: Fix connected device switch to Inactive state. + - LP: #1164646 + * batman-adv: bat_socket_read missing checks + - LP: #1164646 + * batman-adv: Only write requested number of byte to user buffer + - LP: #1164646 + * block: use i_size_write() in bd_set_size() + - LP: #1164646 + * loopdev: fix a deadlock + - LP: #1164646 + * loopdev: remove an user triggerable oops + - LP: #1164646 + * btrfs: use rcu_barrier() to wait for bdev puts at unmount + - LP: #1164646 + * Linux 3.2.41 + - LP: #1164646 + * TTY: do not reset master's packet mode + - LP: #1164646 + * perf,x86: fix kernel crash with PEBS/BTS after suspend/resume + - LP: #1164646 + * perf,x86: fix wrmsr_on_cpu() warning on suspend/resume + - LP: #1164646 + * perf,x86: fix link failure for non-Intel configs + - LP: #1164646 + * l2tp: Restore socket refcount when sendmsg succeeds + - LP: #1164646 + * rds: limit the size allocated by rds_message_alloc() + - LP: #1164646 + * net: ipv6: Don't purge default router if accept_ra=2 + - LP: #1164646 + * tcp: fix double-counted receiver RTT when leaving receiver fast path + - LP: #1164646 + * tun: add a missing nf_reset() in tun_net_xmit() + - LP: #1164646 + * macvlan: Set IFF_UNICAST_FLT flag to prevent unnecessary promisc mode. + - LP: #1164646 + * netlabel: correctly list all the static label mappings + - LP: #1164646 + * bridging: fix rx_handlers return code + - LP: #1164646 + * ipv6: stop multicast forwarding to process interface scoped addresses + - LP: #1164646 + * rtnl: fix info leak on RTM_GETLINK request for VF devices + - LP: #1164646 + * dcbnl: fix various netlink info leaks + - LP: #1164646 + * 6lowpan: Fix endianness issue in is_addr_link_local(). + - LP: #1164646 + * drm/i915: Increase the RC6p threshold. + - LP: #1164646 + * perf: Revert duplicated commit + - LP: #1164646 + * i915: initialize CADL in opregion + - LP: #1164646 + * s390/mm: fix flush_tlb_kernel_range() + - LP: #1164646 + * mwifiex: fix potential out-of-boundary access to ibss rate table + - LP: #1164646 + * rtlwifi: rtl8192cu: Fix schedule while atomic bug splat + - LP: #1164646 + * powerpc: Fix cputable entry for 970MP rev 1.0 + - LP: #1164646 + * rtlwifi: rtl8192cu: Fix problem that prevents reassociation + - LP: #1164646 + * vhost/net: fix heads usage of ubuf_info + - LP: #1164646 + * selinux: use GFP_ATOMIC under spin_lock + - LP: #1164646 + * udf: avoid info leak on export + - LP: #1164646 + * isofs: avoid info leak on export + - LP: #1164646 + * sunsu: Fix panic in case of nonexistent port at "console=ttySY" cmdline + option + - LP: #1164646 + * net/ipv4: Ensure that location of timestamp option is stored + - LP: #1164646 + * netconsole: don't call __netpoll_cleanup() while atomic + - LP: #1164646 + * bonding: don't call update_speed_duplex() under spinlocks + - LP: #1164646 + * sctp: Use correct sideffect command in duplicate cookie handling + - LP: #1164646 + * sctp: don't break the loop while meeting the active_path so as to find + the matched transport + - LP: #1164646 + * ipv4: fix definition of FIB_TABLE_HASHSZ + - LP: #1164646 + * tcp: fix skb_availroom() + - LP: #1164646 + * rtnetlink: Mask the rta_type when range checking + - LP: #1164646 + * inet: limit length of fragment queue hash table bucket lists + - LP: #1164646 + * sfc: Do not attempt to flush queues if DMA is disabled + - LP: #1164646 + * sfc: Convert firmware subtypes to native byte order in + efx_mcdi_get_board_cfg() + - LP: #1164646 + * sfc: Fix two causes of flush failure + - LP: #1164646 + * sfc: lock TX queues when calling netif_device_detach() + - LP: #1164646 + * sfc: Fix timekeeping in efx_mcdi_poll() + - LP: #1164646 + * sfc: Properly sync RX DMA buffer when it is not the last in the page + - LP: #1164646 + * sfc: Fix efx_rx_buf_offset() in the presence of swiotlb + - LP: #1164646 + * sfc: Detach net device when stopping queues for reconfiguration + - LP: #1164646 + * sfc: Disable soft interrupt handling during efx_device_detach_sync() + - LP: #1164646 + * sfc: Only use TX push if a single descriptor is to be written + - LP: #1164646 + * ext4: fix the wrong number of the allocated blocks in + ext4_split_extent() + - LP: #1164646 + * jbd2: fix use after free in jbd2_journal_dirty_metadata() + - LP: #1164646 + * ext4: convert number of blocks to clusters properly + - LP: #1164646 + * ext4: use atomic64_t for the per-flexbg free_clusters count + - LP: #1164646 + * tracing: Fix race in snapshot swapping + - LP: #1164646 + * cifs: delay super block destruction until all cifsFileInfo objects are + gone + - LP: #1164646 + * drm/i915: restrict kernel address leak in debugfs + - LP: #1164646 + * drm/i915: bounds check execbuffer relocation count + - LP: #1164646 + - CVE-2013-0913 + * tracing: Fix free of probe entry by calling call_rcu_sched() + - LP: #1164646 + * tracing: Protect tracer flags with trace_types_lock + - LP: #1164646 + * tracing: Keep overwrite in sync between regular and snapshot buffers + - LP: #1164646 + * tracing: Prevent buffer overwrite disabled for latency tracers + - LP: #1164646 + * USB: xhci: correctly enable interrupts + - LP: #1164646 + * usb-storage: add unusual_devs entry for Samsung YP-Z3 mp3 player + - LP: #1164646 + * drm/radeon/benchmark: make sure bo blit copy exists before using it + - LP: #1164646 + * ALSA: hda/cirrus - Fix the digital beep registration + - LP: #1164646 + * USB: xhci - fix bit definitions for IMAN register + - LP: #1164646 + * x86-64: Fix the failure case in copy_user_handle_tail() + - LP: #1164646 + * ALSA: snd-usb: mixer: propagate errors up the call chain + - LP: #1164646 + * ALSA: snd-usb: mixer: ignore -EINVAL in snd_usb_mixer_controls() + - LP: #1164646 + * ext4: fix data=journal fast mount/umount hang + - LP: #1164646 + * ALSA: hda - Fix typo in checking IEC958 emphasis bit + - LP: #1164646 + * usb: gadget: udc-core: fix a regression during gadget driver unbinding + - LP: #1164646 + * dm thin: fix discard corruption + - LP: #1164646 + * efivars: Allow disabling use as a pstore backend + - LP: #1164646 + * efivars: Add module parameter to disable use as a pstore backend + - LP: #1164646 + * efivars: Fix check for CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE + - LP: #1164646 + * efi_pstore: Introducing workqueue updating sysfs + - LP: #1164646 + * efivars: explicitly calculate length of VariableName + - LP: #1164646 + * efivars: Handle duplicate names from get_next_variable() + - LP: #1164646 + * cifs: ignore everything in SPNEGO blob after mechTypes + - LP: #1164646 + * USB: garmin_gps: fix memory leak on disconnect + - LP: #1164646 + * USB: io_ti: fix get_icount for two port adapters + - LP: #1164646 + * USB: serial: fix interface refcounting + - LP: #1164646 + * i2c: tegra: check the clk_prepare_enable() return value + - LP: #1164646 + * vfs,proc: guarantee unique inodes in /proc + - LP: #1164646 + * mm/hugetlb: fix total hugetlbfs pages count when using memory + overcommit accouting + - LP: #1164646 + * KMS: fix EDID detailed timing vsync parsing + - LP: #1164646 + * KMS: fix EDID detailed timing frame rate + - LP: #1164646 + * efivars: pstore: Do not check size when erasing variable + - LP: #1164646 + * signal: Define __ARCH_HAS_SA_RESTORER so we know whether to clear + sa_restorer + - LP: #1164646 + * kernel/signal.c: use __ARCH_HAS_SA_RESTORER instead of SA_RESTORER + - LP: #1164646 + * Linux 3.2.42 + - LP: #1164646 + * KVM: x86: fix for buffer overflow in handling of MSR_KVM_SYSTEM_TIME + (CVE-2013-1796) + - LP: #1158254 + - CVE-2013-1796 + * KVM: Fix bounds checking in ioapic indirect register reads + (CVE-2013-1798) + - LP: #1158262 + - CVE-2013-1798 + * KVM: x86: Convert MSR_KVM_SYSTEM_TIME to use gfn_to_hva_cache functions + (CVE-2013-1797) + - LP: #1158258 + - CVE-2013-1797 + * drm/i915: "Flush Me Harder" required on gen6+ + - LP: #1140716 + * drm/i915: PIPE_CONTROL_TLB_INVALIDATE + - LP: #1140716 + * drm/i915: Apply post-sync write for pipe control invalidates + - LP: #1140716 + * drm/i915: TLB invalidation with MI_FLUSH_DW requires a post-sync op v3 + - LP: #1140716 + * drm/i915: PIPE_CONTROL TLB invalidate requires CS stall + - LP: #1140716 + + -- Steve Conklin Wed, 10 Apr 2013 11:32:07 -0500 + +linux (3.2.0-40.64) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1160017 + + [ Stefan Bader ] + + * SAUCE: Revert "SAUCE: xen/pv-spinlock: Never enable interrupts in + xen_spin_lock_slow()" + + [ Xiangliang Yu ] + + * SAUCE: PCI: define macro for marvell vendor ID + - LP: #1159863 + * SAUCE: PCI: fix system hang issue of Marvell SATA host controller + - LP: #1159863 + + -- Steve Conklin Mon, 25 Mar 2013 15:41:39 -0500 + +linux (3.2.0-40.63) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1157785 + + [ Andy Whitcroft ] + + * [Config] re-disable CONFIG_SOUND_OSS_PRECLAIM + - LP: #1105230 + + [ Luis Henriques ] + + * [Config] CONFIG_NFS_V4_1=y + - LP: #1111416 + + [ Upstream Kernel Changes ] + + * Revert "drm: Add EDID_QUIRK_FORCE_REDUCED_BLANKING for ASUS VW222S" + - LP: #1150557 + * tmpfs: fix use-after-free of mempolicy object + - LP: #1143815 + - CVE-2013-1767 + * sunvdc: Fix off-by-one in generic_request(). + - LP: #1150557 + * genirq: Avoid deadlock in spurious handling + - LP: #1150557 + * KVM: s390: Handle hosts not supporting s390-virtio. + - LP: #1150557 + * workqueue: consider work function when searching for busy work items + - LP: #1150557 + * v4l: Reset subdev v4l2_dev field to NULL if registration fails + - LP: #1150557 + * omap_vout: find_vma() needs ->mmap_sem held + - LP: #1150557 + * dca: check against empty dca_domains list before unregister provider + - LP: #1150557 + * powerpc/eeh: Fix crash when adding a device in a slot with DDW + - LP: #1150557 + * ext4: return ENOMEM if sb_getblk() fails + - LP: #1150557 + * pcmcia/vrc4171: Add missing spinlock init + - LP: #1150557 + * Purge existing TLB entries in set_pte_at and ptep_set_wrprotect + - LP: #1150557 + * ARM: PXA3xx: program the CSMSADRCFG register + - LP: #1150557 + * USB: option: add and update Alcatel modems + - LP: #1150557 + * quota: autoload the quota_v2 module for QFMT_VFS_V1 quota format + - LP: #1150557 + * ext4: fix possible use-after-free with AIO + - LP: #1150557 + * s390/kvm: Fix store status for ACRS/FPRS + - LP: #1150557 + * staging: comedi: disallow COMEDI_DEVCONFIG on non-board minors + - LP: #1150557 + * ALSA: usb-audio: fix Roland A-PRO support + - LP: #1150557 + * x86-32, mm: Rip out x86_32 NUMA remapping code + - LP: #1150557 + * ALSA: hda - Release assigned pin/cvt at error path of hdmi_pcm_open() + - LP: #1150557 + * ext4: fix race in ext4_mb_add_n_trim() + - LP: #1150557 + * zram: Fix deadlock bug in partial read/write + - LP: #1150557 + * Driver core: treat unregistered bus_types as having no devices + - LP: #1150557 + * ALSA: aloop: Fix Oops while PM resume + - LP: #1150557 + * UBIFS: fix double free of ubifs_orphan objects + - LP: #1150557 + * tty: set_termios/set_termiox should not return -EINTR + - LP: #1150557 + * hrtimer: Prevent hrtimer_enqueue_reprogram race + - LP: #1150557 + * nfsd: Fix memleak + - LP: #1150557 + * staging: comedi: check s->async for poll(), read() and write() + - LP: #1150557 + * ACPI: Add DMI entry for Sony VGN-FW41E_H + - LP: #1150557 + * vgacon/vt: clear buffer attributes when we load a 512 character font + (v2) + - LP: #1150557 + * fbcon: don't lose the console font across generic->chip driver switch + - LP: #1150557 + * drm/usb: bind driver to correct device + - LP: #1150557 + * x86: Do not leak kernel page mapping locations + - LP: #1150557 + * timeconst.pl: Eliminate Perl warning + - LP: #1150557 + * fb: rework locking to fix lock ordering on takeover + - LP: #1150557 + * fb: Yet another band-aid for fixing lockdep mess + - LP: #1150557 + * p54usb: corrected USB ID for T-Com Sinus 154 data II + - LP: #1150557 + * rtlwifi: rtl8192cu: Fix NULL dereference BUG when using new_id + - LP: #1150557 + * rtlwifi: rtl8192cu: Add new USB ID + - LP: #1150557 + * USB: storage: properly handle the endian issues of idProduct + - LP: #1150557 + * x86/apic: Use x2apic physical mode based on FADT setting + - LP: #1150557 + * x86/apic: Work around boot failure on HP ProLiant DL980 G7 Server + systems + - LP: #1150557 + * ALSA: rme32.c irq enabling after spin_lock_irq + - LP: #1150557 + * ALSA: ali5451: remove irq enabling in pointer callback + - LP: #1150557 + * drivers/rtc/rtc-pl031.c: restore ST variant functionality + - LP: #1150557 + * x86: Hyper-V: register clocksource only if its advertised + - LP: #1150557 + * x86/mm: Check if PUD is large when validating a kernel address + - LP: #1150557 + * USB: option: add Yota / Megafon M100-1 4g modem + - LP: #1150557 + * USB: serial: fix null-pointer dereferences on disconnect + - LP: #1150557 + * idr: idr_for_each_entry() macro + - LP: #1150557 + * pps: Add pps_lookup_dev() function + - LP: #1150557 + * pps: Use pps_lookup_dev to reduce ldisc coupling + - LP: #1150557 + * pps: Fix a use-after free bug when unregistering a source. + - LP: #1150557 + * PCI/PM: Clean up PME state when removing a device + - LP: #1150557 + * USB: option: add Huawei "ACM" devices using protocol = vendor + - LP: #1150557 + * efi: Clear EFI_RUNTIME_SERVICES rather than EFI_BOOT by "noefi" boot + parameter + - LP: #1150557 + * ARM: samsung: fix assembly syntax for new gas + - LP: #1150557 + * ARM: w90x900: fix legacy assembly syntax + - LP: #1150557 + * USB: ehci-omap: Fix autoloading of module + - LP: #1150557 + * USB: usb-storage: unusual_devs update for Super TOP SATA bridge + - LP: #1150557 + * posix-cpu-timers: Fix nanosleep task_struct leak + - LP: #1150557 + * svcrpc: make svc_age_temp_xprts enqueue under sv_lock + - LP: #1150557 + * NFSv4.1: Don't decode skipped layoutgets + - LP: #1150557 + * umount oops when remove blocklayoutdriver first + - LP: #1150557 + * cgroup: fix exit() vs rmdir() race + - LP: #1150557 + * cpuset: fix cpuset_print_task_mems_allowed() vs rename() race + - LP: #1150557 + * ext4: fix xattr block allocation/release with bigalloc + - LP: #1150557 + * mm: fix pageblock bitmap allocation + - LP: #1150557 + * rtlwifi: usb: allocate URB control message setup_packet and data buffer + separately + - LP: #1150557 + * target: Fix lookup of dynamic NodeACLs during cached demo-mode + operation + - LP: #1150557 + * target: Add missing mapped_lun bounds checking during make_mappedlun + setup + - LP: #1150557 + * ftrace: Call ftrace cleanup module notifier after all other notifiers + - LP: #1150557 + * b43: Increase number of RX DMA slots + - LP: #1150557 + * NLM: Ensure that we resend all pending blocking locks after a reclaim + - LP: #1150557 + * ALSA: hda - hdmi: ELD shouldn't be valid after unplug + - LP: #1150557 + * xen-blkback: do not leak mode property + - LP: #1150557 + * drm: don't add inferred modes for monitors that don't support them + - LP: #1150557 + * drm/i915: disable shared panel fitter for pipe + - LP: #1150557 + * drm/i915: add missing \n to UTS_RELEASE in the error_state + - LP: #1150557 + * drm/i915: Set i9xx sdvo clock limits according to specifications + - LP: #1150557 + * intel/iommu: force writebuffer-flush quirk on Gen 4 Chipsets + - LP: #1150557 + * xen: close evtchn port if binding to irq fails + - LP: #1150557 + * xen: Send spinlock IPI to all waiters + - LP: #1011792, #1150557 + * x86, efi: Make "noefi" really disable EFI runtime serivces + - LP: #1150557 + * ALSA: usb: Fix Processing Unit Descriptor parsers + - LP: #1150557 + * posix-timer: Don't call idr_find() with out-of-range ID + - LP: #1150557 + * inotify: remove broken mask checks causing unmount to be EINVAL + - LP: #1150557 + * fs/block_dev.c: page cache wrongly left invalidated after + revalidate_disk() + - LP: #1150557 + * ocfs2: unlock super lock if lockres refresh failed + - LP: #1150557 + * drivers/video/backlight/adp88?0_bl.c: fix resume + - LP: #1150557 + * ext4: fix free clusters calculation in bigalloc filesystem + - LP: #1150557 + * fs: Fix possible use-after-free with AIO + - LP: #1150557 + * powerpc/kexec: Disable hard IRQ before kexec + - LP: #1150557 + * mm: mmu_notifier: have mmu_notifiers use a global SRCU so they may + safely schedule + - LP: #1150557 + * mm: mmu_notifier: make the mmu_notifier srcu static + - LP: #1150557 + * mmu_notifier_unregister NULL Pointer deref and multiple ->release() + callouts + - LP: #1150557 + * mm/fadvise.c: drain all pagevecs if POSIX_FADV_DONTNEED fails to + discard all pages + - LP: #1150557 + * mmc: sdhci-esdhc-imx: fix host version read + - LP: #1150557 + * doc, xen: Mention 'earlyprintk=xen' in the documentation. + - LP: #1150557 + * doc, kernel-parameters: Document 'console=hvc' + - LP: #1150557 + * ocfs2: fix possible use-after-free with AIO + - LP: #1150557 + * x86: Make sure we can boot in the case the BDA contains pure garbage + - LP: #1150557 + * ocfs2: fix ocfs2_init_security_and_acl() to initialize acl correctly + - LP: #1150557 + * ocfs2: ac->ac_allow_chain_relink=0 won't disable group relink + - LP: #1150557 + * block: fix ext_devt_idr handling + - LP: #1150557 + * idr: fix a subtle bug in idr_get_next() + - LP: #1150557 + * block: fix synchronization and limit check in blk_alloc_devt() + - LP: #1150557 + * firewire: add minor number range check to fw_device_init() + - LP: #1150557 + * idr: make idr_get_next() good for rcu_read_lock() + - LP: #1150557 + * idr: fix top layer handling + - LP: #1150557 + * sysctl: fix null checking in bin_dn_node_address() + - LP: #1150557 + * nbd: fsync and kill block device on shutdown + - LP: #1150557 + * igb: Remove artificial restriction on RQDPC stat reading + - LP: #1150557 + * drm/radeon/evergreen+: wait for the MC to settle after MC blackout + - LP: #1150557 + * s390/timer: avoid overflow when programming clock comparator + - LP: #1150557 + * unbreak automounter support on 64-bit kernel with 32-bit userspace (v2) + - LP: #1150557 + * bridge: set priority of STP packets + - LP: #1150557 + * xen-netback: correctly return errors from netbk_count_requests() + - LP: #1150557 + * xen-netback: cancel the credit timer when taking the vif down + - LP: #1150557 + * ipv4: fix a bug in ping_err(). + - LP: #1150557 + * ipv6: use a stronger hash for tcp + - LP: #1150557 + * staging: comedi: ni_labpc: correct differential channel sequence for AI + commands + - LP: #1150557 + * staging: comedi: ni_labpc: set up command4 register *after* command3 + - LP: #1150557 + * pstore: Avoid deadlock in panic and emergency-restart path + - LP: #1150557 + * ata_piix: IDE-mode SATA patch for Intel DH89xxCC DeviceIDs + - LP: #1150557 + * ata_piix: Add Device IDs for Intel Lynx Point-LP PCH + - LP: #1150557 + * ata_piix: IDE-mode SATA patch for Intel Avoton DeviceIDs + - LP: #1150557 + * ata_piix: Add Device IDs for Intel Wellsburg PCH + - LP: #1150557 + * usb hid quirks for Masterkit MA901 usb radio + - LP: #1150557 + * 8250: use correct value for PORT_BRCM_TRUMANAGE + - LP: #1150557 + * usb: Add quirk detection based on interface information + - LP: #1150557 + * usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams + - LP: #1150557 + * speakup: lower default software speech rate + - LP: #1150557 + * asus-laptop: Do not call HWRS on init + - LP: #1150557 + * fs: cachefiles: add support for large files in filesystem caching + - LP: #1150557 + * ext4: rewrite punch hole to use ext4_ext_remove_space() + - LP: #1150557 + * ext4: fix hole punch failure when depth is greater than 0 + - LP: #1150557 + * ext4: fix kernel BUG on large-scale rm -rf commands + - LP: #1150557 + * Linux 3.2.40 + - LP: #1150557 + * drm/i915: Periodically sanity check power management + - LP: #1146425 + * keys: fix race with concurrent install_user_keyrings() + - LP: #1152788 + - CVE-2013-1792 + * ALSA: hda: remove unused quirk for inverted mute led + - LP: #1077084 + * xen-netfront: delay gARP until backend switches to Connected + - LP: #1154608 + * signal: always clear sa_restorer on execve + - LP: #1153813 + - CVE-2013-0914 + * crypto: user - fix info leaks in report API + - LP: #1156790, #1156795, #1156799 + - CVE-2013-2548 + + -- Steve Conklin Mon, 20 Mar 2013 10:38:15 -0800 + +linux (3.2.0-39.62) precise-proposed; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1134424 + + [ Herton Ronaldo Krzesinski ] + + * Revert "SAUCE: samsung-laptop: disable in UEFI mode" + - LP: #1117693 + * d-i: Add mellanox ethernet drivers to nic-modules + - LP: #1015339 + + [ Ian Campbell ] + + * SAUCE: xen/netback: shutdown the ring if it contains garbage. + - LP: #1117325 + - CVE-2013-0216 + * SAUCE: netback: correct netbk_tx_err to handle wrap around. + - LP: #1117325 + - CVE-2013-0216 + * SAUCE: xen/netback: don't leak pages on failure in + xen_netbk_tx_check_gop. + - LP: #1117331 + - CVE-2013-0217 + * SAUCE: xen/netback: free already allocated memory on failure in + xen_netbk_get_requests + - LP: #1117331 + - CVE-2013-0217 + + [ Jan Beulich ] + + * SAUCE: xen-pciback: rate limit error messages from + xen_pcibk_enable_msi{, x}() + - LP: #1117336 + - CVE-2013-0231 + + [ Tim Gardner ] + + * [debian] Remove dangling symlink from headers package + - LP: #1112442 + * SAUCE: rt2x00: rt2x00pci_regbusy_read() - only print register access + failure once + - LP: #1128840 + + [ Upstream Kernel Changes ] + + * Revert "ALSA: hda - Shut up pins at power-saving mode with Conexnat + codecs" + - LP: #1117693, #886975 + * Revert "drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13" + - LP: #1117693 + * Revert "ptrace: ensure arch_ptrace/ptrace_request can never race with + SIGKILL" + - LP: #1131218 + * SAUCE: xen/pv-spinlock: Never enable interrupts in xen_spin_lock_slow() + - LP: #1011792 + * usb: gadget: dummy: fix enumeration with g_multi + - LP: #1117693 + * usb: musb: core: print new line in the driver banner again + - LP: #1117693 + * virtio-blk: Don't free ida when disk is in use + - LP: #1117693 + * mac80211: use del_timer_sync for final sta cleanup timer deletion + - LP: #1117693 + * xhci: Handle HS bulk/ctrl endpoints that don't NAK. + - LP: #1117693 + * USB: Handle auto-transition from hot to warm reset. + - LP: #1117693 + * USB: Ignore xHCI Reset Device status. + - LP: #1117693 + * USB: Allow USB 3.0 ports to be disabled. + - LP: #1117693 + * USB: Increase reset timeout. + - LP: #1117693 + * USB: Ignore port state until reset completes. + - LP: #1117693 + * USB: Handle warm reset failure on empty port. + - LP: #1117693 + * xhci: Avoid "dead ports", add roothub port polling. + - LP: #1117693 + * ASoC: wm5100: Remove DSP B and left justified formats + - LP: #1117693 + * mwifiex: handle association failure case correctly + - LP: #1117693 + * mwifiex: check wait_event_interruptible return value + - LP: #1117693 + * ASoC: wm2000: Fix sense of speech clarity enable + - LP: #1117693 + * ioat: Fix DMA memory sync direction correct flag + - LP: #1117693 + * drm/i915; Only increment the user-pin-count after successfully pinning + the bo + - LP: #1117693 + * staging: r8712u: Add new device ID + - LP: #1117693 + * staging: speakup: avoid out-of-range access in synth_init() + - LP: #1117693 + * staging: speakup: avoid out-of-range access in synth_add() + - LP: #1117693 + * staging: comedi: fix minimum AO period for NI 625x and NI 628x + - LP: #1117693 + * staging: comedi: comedi_test: fix race when cancelling command + - LP: #1117693 + * regulator: max8997: Use uV in voltage_map_desc + - LP: #1117693 + * ALSA: pxa27x: fix ac97 cold reset + - LP: #1117693 + * ALSA: pxa27x: fix ac97 warm reset + - LP: #1117693 + * SUNRPC: Ensure we release the socket write lock if the rpc_task exits + early + - LP: #1117693 + * target: use correct sense code for LUN communication failure + - LP: #1117693 + * regulator: max8998: Ensure enough delay time for + max8998_set_voltage_buck_time_sel + - LP: #1117693 + * radeon/kms: force rn50 chip to always report connected on analog output + - LP: #1117693 + * tcm_fc: Do not indicate retry capability to initiators + - LP: #1117693 + * tcm_fc: Do not report target role when target is not defined + - LP: #1117693 + * sh: Fix FDPIC binary loader + - LP: #1117693 + * USB: option: Add new MEDIATEK PID support + - LP: #1117693 + * USB: option: blacklist network interface on ZTE MF880 + - LP: #1117693 + * USB: option: add Telekom Speedstick LTE II + - LP: #1117693 + * USB: option: add Nexpring NP10T terminal id + - LP: #1117693 + * USB: cdc-acm: Add support for "PSC Scanning, Magellan 800i" + - LP: #1117693 + * USB: hub: handle claim of enabled remote wakeup after reset + - LP: #1117693 + * mm: compaction: fix echo 1 > compact_memory return error issue + - LP: #1117693 + * mm: use aligned zone start for pfn_to_bitidx calculation + - LP: #1117693 + * USB: Add device quirk for Microsoft VX700 webcam + - LP: #1117693 + * PCI: pciehp: Fix wrong workqueue cleanup + - LP: #1117693 + * PCI: pciehp: Handle push button event asynchronously + - LP: #1117693 + * PCI: pciehp: Use per-slot workqueues to avoid deadlock + - LP: #1117693 + * usb: ftdi_sio: Crucible Technologies COMET Caller ID - pid added + - LP: #1117693 + * PCI/AER: pci_get_domain_bus_and_slot() call missing required + pci_dev_put() + - LP: #1117693 + * PCI: shpchp: Handle push button event asynchronously + - LP: #1117693 + * PCI: shpchp: Use per-slot workqueues to avoid deadlock + - LP: #1117693 + * serial:ifx6x60:Delete SPI timer when shut down port + - LP: #1117693 + * tty: 8250_dw: Fix inverted arguments to serial_out in IRQ handler + - LP: #1117693 + * drm/i915: Invalidate the relocation presumed_offsets along the slow + path + - LP: #1117693 + * s390/time: fix sched_clock() overflow + - LP: #1117693 + * ARM: 7627/1: Predicate preempt logic on PREEMP_COUNT not PREEMPT alone + - LP: #1117693 + * ARM: 7628/1: head.S: map one extra section for the ATAG/DTB area + - LP: #1117693 + * staging: vt6656: Fix inconsistent structure packing + - LP: #1117693 + * 8250/16?50: Add support for Broadcom TruManage redirected serial port + - LP: #1117693 + * KVM: PPC: Emulate dcbf + - LP: #1117693 + * USB: option: blacklist network interface on ONDA MT8205 4G LTE + - LP: #1117693 + * USB: option: add TP-LINK HSUPA Modem MA180 + - LP: #1117693 + * USB: io_ti: Fix NULL dereference in chase_port() + - LP: #1117693 + * usb: dwc3: gadget: fix ep->maxburst for ep0 + - LP: #1117693 + * intel_idle: Don't register CPU notifier if we are not running. + - LP: #1117693 + * ACPI / cpuidle: Fix NULL pointer issues when cpuidle is disabled + - LP: #1117693 + * ACPI / processor: Get power info before updating the C-states + - LP: #1117693 + * ARM: DMA: Fix struct page iterator in dma_cache_maint() to work with + sparsemem + - LP: #1117693 + * evm: checking if removexattr is not a NULL + - LP: #1117693 + * ALSA: hda - Add Conexant CX20751/2/3/4 codec support + - LP: #1117693 + * ALSA: hda/conexant - Correct vendor IDs for new codecs + - LP: #1117693 + * ALSA: hda - Add Conexant CX20755/20756/20757 codec IDs + - LP: #1117693 + * ftrace: Be first to run code modification on modules + - LP: #1117693 + * USB: UHCI: fix IRQ race during initialization + - LP: #1117693 + * fs/cifs/cifs_dfs_ref.c: fix potential memory leakage + - LP: #1117693 + * Bluetooth: Fix incorrect strncpy() in hidp_setup_hid() + - LP: #1117693 + * ath9k_htc: Fix memory leak + - LP: #1117693 + * ath9k: do not link receive buffers during flush + - LP: #1117693 + * ath9k: fix double-free bug on beacon generate failure + - LP: #1117693 + * brcmsmac: increase timer reference count for new timers only + - LP: #1117693 + * efi, x86: Pass a proper identity mapping in efi_call_phys_prelog + - LP: #1117693 + * ath9k_hw: fix calibration issues on chainmask that don't include chain + 0 + - LP: #1117693 + * ath9k_hw: fix chain swap setting when setting rx chainmask to 5 + - LP: #1117693 + * mwifiex: fix typo in PCIe adapter NULL check + - LP: #1117693 + * drm/i915: Remove the MI_FLUSH_ENABLE setting. + - LP: #1117693 + * drm/i915: Correct the bit number for the MI_FLUSH_ENABLE. + - LP: #1117693 + * drm/i915: Disable AsyncFlip performance optimisations + - LP: #1117693 + * drm/i915: GFX_MODE Flush TLB Invalidate Mode must be '1' for scanline + waits + - LP: #1117693 + * iommu/intel: disable DMAR for g4x integrated gfx + - LP: #1117693 + * drm/i915: dump UTS_RELEASE into the error_state + - LP: #1117693 + * drm/radeon: fix a rare case of double kfree + - LP: #1117693 + * x86/msr: Add capabilities check + - LP: #1117693 + * can: c_can: fix invalid error codes + - LP: #1117693 + * can: ti_hecc: fix invalid error codes + - LP: #1117693 + * can: pch_can: fix invalid error codes + - LP: #1117693 + * ALSA: usb-audio: fix invalid length check for RME and other UAC 2 + devices + - LP: #1117693 + * smp: Fix SMP function call empty cpu mask race + - LP: #1117693 + * IOMMU, AMD Family15h Model10-1Fh erratum 746 Workaround + - LP: #1117693 + * xfs: Fix possible use-after-free with AIO + - LP: #1117693 + * ALSA: hda - Fix non-snoop page handling + - LP: #1117693 + * EDAC: Test correct variable in ->store function + - LP: #1117693 + * efi: Make 'efi_enabled' a function to query EFI facilities + - LP: #1117693 + * samsung-laptop: Disable on EFI hardware + - LP: #1117693 + * NFS: Don't silently fail setattr() requests on mountpoints + - LP: #1117693 + * NFSv4.1: Handle NFS4ERR_DELAY when resetting the NFSv4.1 session + - LP: #1117693 + * x86/Sandy Bridge: reserve pages when integrated graphics is present + - LP: #1117693 + * x86/Sandy Bridge: mark arrays in __init functions as __initconst + - LP: #1117693 + * x86/Sandy Bridge: Sandy Bridge workaround depends on CONFIG_PCI + - LP: #1117693 + * ahci: Add identifiers for ASM106x devices + - LP: #1117693 + * sd: Reshuffle init_sd to avoid crash + - LP: #1117693 + * drivers/firmware/dmi_scan.c: check dmi version when get system uuid + - LP: #1117693 + * drivers/firmware/dmi_scan.c: fetch dmi version from SMBIOS if it exists + - LP: #1117693 + * drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled + - LP: #1117693 + * x86: Use enum instead of literals for trap values + - LP: #1117693 + * staging: comedi: Kconfig: COMEDI_NI_AT_A2150 should select COMEDI_FC + - LP: #1117693 + * staging: comedi: don't hijack hardware device private data + - LP: #1117693 + * intel-iommu: Prevent devices with RMRRs from being placed into SI + Domain + - LP: #1117693 + * ALSA: usb - fix race in creation of M-Audio Fast track pro driver + - LP: #1095315, #1117693 + * igb: release already assigned MSI-X interrupts if setup fails + - LP: #1117693 + * drbd: add missing part_round_stats to _drbd_start_io_acct + - LP: #1117693 + * staging: usbip: changed function return type to void + - LP: #1117693 + * x86, efi: Set runtime_version to the EFI spec revision + - LP: #1117693 + * printk: fix buffer overflow when calling log_prefix function from + call_console_drivers + - LP: #1117693 + * Linux 3.2.38 + - LP: #1117693 + * xen: Fix stack corruption in xen_failsafe_callback for 32bit PVOPS + guests. + - LP: #1102374 + - CVE-2013-0190 + * xhci: Fix isoc TD encoding. + - LP: #1131218 + * xhci: Fix TD size for isochronous URBs. + - LP: #1131218 + * USB: XHCI: fix memory leak of URB-private data + - LP: #1131218 + * usb: Prevent dead ports when xhci is not enabled + - LP: #1131218 + * sched/rt: Use root_domain of rt_rq not current processor + - LP: #1131218 + * rtlwifi: Fix the usage of the wrong variable in usb.c + - LP: #1131218 + * drm/radeon: add quirk for RV100 board + - LP: #1131218 + * USB: qcserial: add Telit Gobi QDL device + - LP: #1131218 + * USB: option: add support for Telit LE920 + - LP: #1131218 + * mwifiex: fix incomplete scan in case of IE parsing error + - LP: #1131218 + * USB: EHCI: fix bug in scheduling periodic split transfers + - LP: #1131218 + * x86-64: Replace left over sti/cli in ia32 audit exit code + - LP: #1131218 + * Bluetooth: Fix handling of unexpected SMP PDUs + - LP: #1131218 + * drm/radeon: Calling object_unrefer() when creating fb failure + - LP: #1131218 + * drm/radeon: prevent crash in the ring space allocation + - LP: #1131218 + * can: c_can: Set reserved bit in IFx_MASK2 to 1 on write + - LP: #1131218 + * USB: ftdi_sio: add PID/VID entries for ELV WS 300 PC II + - LP: #1131218 + * USB: option: add Changhong CH690 + - LP: #1131218 + * USB: ftdi_sio: add Zolix FTDI PID + - LP: #1131218 + * USB: storage: Define a new macro for USB storage match rules + - LP: #1131218 + * USB: storage: optimize to match the Huawei USB storage devices and + support new switch command + - LP: #1131218 + * nilfs2: fix fix very long mount time issue + - LP: #1131218 + * drivers/rtc/rtc-isl1208.c: call rtc_update_irq() from the alarm irq + handler + - LP: #1131218 + * drivers/rtc/rtc-pl031.c: fix the missing operation on enable + - LP: #1131218 + * virtio_console: Don't access uninitialized data. + - LP: #1131218 + * wireless: rt2x00: rt{2500,73}usb.c put back duplicate id + - LP: #1131218 + * Wireless: rt2x00: Add device id for Sweex LW323 to rt2800usb.c + - LP: #1131218 + * rt2800usb: Add support for 2001:3c1e (D-Link DWA-125 rev B1) USB Wi-Fi + adapter + - LP: #1131218 + * gspca_kinect: add Kinect for Windows USB id + - LP: #1131218 + * ahci: support the STA2X11 I/O Hub + - LP: #1131218 + * ahci: Add support for Enmotus Bobcat device. + - LP: #1131218 + * ptrace/x86: Introduce set_task_blockstep() helper + - LP: #1131218 + * ptrace/x86: Partly fix set_task_blockstep()->update_debugctlmsr() logic + - LP: #1131218 + * ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL + - LP: #1131218 + * Bluetooth: Fix sending HCI commands after reset + - LP: #1131218 + * HID: usbhid: quirk for Formosa IR receiver + - LP: #1131218 + * kernel/resource.c: fix stack overflow in __reserve_region_with_split() + - LP: #1131218 + * net: prevent setting ttl=0 via IP_TTL + - LP: #1131218 + * ipv6: fix the noflags test in addrconf_get_prefix_route + - LP: #1131218 + * MAINTAINERS: Stephen Hemminger email change + - LP: #1131218 + * ipv6: fix header length calculation in ip6_append_data() + - LP: #1131218 + * isdn/gigaset: fix zero size border case in debug dump + - LP: #1131218 + * netxen: fix off by one bug in netxen_release_tx_buffer() + - LP: #1131218 + * r8169: remove the obsolete and incorrect AMD workaround + - LP: #1131218 + * net: loopback: fix a dst refcounting issue + - LP: #1131218 + * pktgen: correctly handle failures when adding a device + - LP: #1131218 + * ipv6: do not create neighbor entries for local delivery + - LP: #1131218 + * packet: fix leakage of tx_ring memory + - LP: #1131218 + * atm/iphase: rename fregt_t -> ffreg_t + - LP: #1131218 + * sctp: refactor sctp_outq_teardown to insure proper re-initalization + - LP: #1131218 + * net: sctp: sctp_setsockopt_auth_key: use kzfree instead of kfree + - LP: #1131218 + * net: sctp: sctp_endpoint_free: zero out secret key data + - LP: #1131218 + * tcp: frto should not set snd_cwnd to 0 + - LP: #1131218 + * tcp: fix for zero packets_in_flight was too broad + - LP: #1131218 + * tcp: fix MSG_SENDPAGE_NOTLAST logic + - LP: #1131218 + * tg3: Avoid null pointer dereference in tg3_interrupt in netconsole mode + - LP: #1131218 + * tg3: Fix crc errors on jumbo frame receive + - LP: #1131218 + * x86/xen: don't assume %ds is usable in xen_iret for 32-bit PVOPS. + - LP: #1131218 + * Linux 3.2.39 + - LP: #1131218 + * vhost: fix length for cross region descriptor + - LP: #1130951 + - CVE-2013-0311 + + -- Brad Figg Wed, 27 Feb 2013 07:05:08 -0800 + +linux (3.2.0-38.61) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1130044 + + [ Upstream Kernel Changes ] + + * ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up() + - LP: #1129192 + - CVE-2013-0871 + * ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL + - LP: #1129192 + - CVE-2013-0871 + * wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED + task + - LP: #1129192 + - CVE-2013-0871 + + -- Luis Henriques Tue, 19 Feb 2013 10:47:19 +0000 + +linux (3.2.0-38.60) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1124013 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: fix i915 regression after commit 9594e7e + - LP: #1119809 + + -- Luis Henriques Wed, 13 Feb 2013 11:19:53 +0000 + +linux (3.2.0-38.59) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1116240 + + [ Andy Whitcroft ] + + * [Config] enable various HVC consoles + - LP: #1102206 + + [ Herton Ronaldo Krzesinski ] + + * [Config] updateconfigs for 3.2.36 stable update + + [ Stefan Bader ] + + * (config) Move 9p modules into generic package + - LP: #1107658 + + [ Upstream Kernel Changes ] + + * Revert "device_cgroup: fix RCU usage" + - LP: #1096966 + * Revert "sched, autogroup: Stop going ahead if autogroup is disabled" + - LP: #1096966 + * Revert "ath9k_hw: Update AR9003 high_power tx gain table" + - LP: #1096966 + * Revert "mm: vmscan: fix endless loop in kswapd balancing" + - LP: #1096966 + * freezer: PF_FREEZER_NOSIG should be cleared along with PF_NOFREEZE + - LP: #1096966 + * i915: Quirk no_lvds on Gigabyte GA-D525TUD ITX motherboard + - LP: #1096966 + * drm/i915: Add no-lvds quirk for Supermicro X7SPA-H + - LP: #1096966 + * ACPI: missing break + - LP: #1096966 + * workqueue: convert BUG_ON()s in __queue_delayed_work() to + WARN_ON_ONCE()s + - LP: #1096966 + * hwmon: (coretemp) Improve support of recent Atom CPU models + - LP: #1096966 + * hwmon: (coretemp) Add support for Atom D2000 and N2000 series CPU + models + - LP: #1096966 + * hwmon: (coretemp) Improve support for TjMax detection on Atom CPUs + - LP: #1096966 + * hwmon: (coretemp) Add support for Atom CE4110/4150/4170 + - LP: #1096966 + * ARM: 7566/1: vfp: fix save and restore when running on pre-VFPv3 and + CONFIG_VFPv3 set + - LP: #1096966 + * sata_svw: check DMA start bit before reset + - LP: #1096966 + * drivers/leds/leds-lp5521.c: fix typo + - LP: #1096966 + * drivers/leds/leds-lp5521.c: ret may be uninitialized + - LP: #1096966 + * drivers/leds/leds-lp5521.c: fix lp5521_read() error handling + - LP: #1096966 + * scsi: aha152x: Fix sparse warning and make printing pointer address + more portable. + - LP: #1096966 + * ALSA: hda - Fix missing beep on ASUS X43U notebook + - LP: #1096966 + * i7300_edac: Fix error flag testing + - LP: #1096966 + * Revert misapplied "mmc: sh-mmcif: avoid oops on spurious interrupts" + - LP: #1096966 + * tmpfs: fix shared mempolicy leak + - LP: #1096966 + * powerpc: fix wii_memory_fixups() compile error on 3.0.y tree + - LP: #1096966 + * s390/kvm: dont announce RRBM support + - LP: #1096966 + * cgroup: cgroup_subsys->fork() should be called after the task is added + to css_set + - LP: #1096966 + * freezer: add missing mb's to freezer_count() and freezer_should_skip() + - LP: #1096966 + * mm: add kmap_to_page() + - LP: #1096966 + * mm: highmem: export kmap_to_page for modules + - LP: #1096966 + * virtio: 9p: correctly pass physical address to userspace for high pages + - LP: #1096966 + * virtio: force vring descriptors to be allocated from lowmem + - LP: #1096966 + * ath9k_hw: Enable hw PLL power save for AR9462 + - LP: #1096966 + * KVM: PPC: 44x: fix DCR read/write + - LP: #1096966 + * usb: gadget: network: fix bind() error path + - LP: #1096966 + * usb: gadget: midi: free hs descriptors + - LP: #1096966 + * usb: gadget: phonet: free requests in pn_bind()'s error path + - LP: #1096966 + * usb: gadget: uvc: fix error path in uvc_function_bind() + - LP: #1096966 + * x86: hpet: Fix masking of MSI interrupts + - LP: #1096966 + * usb: musb: cppi_dma: export cppi_interrupt() + - LP: #1096966 + * nfs: fix wrong object type in lockowner_slab + - LP: #1096966 + * iscsi-target: Always send a response before terminating iSCSI + connection + - LP: #1096966 + * ext4: fix memory leak in ext4_xattr_set_acl()'s error path + - LP: #1096966 + * ARM: mm: use pteval_t to represent page protection values + - LP: #1096966 + * USB: fix endpoint-disabling for failed config changes + - LP: #1096966 + * USB: EHCI: bugfix: urb->hcpriv should not be NULL + - LP: #1096966 + * genirq: Always force thread affinity + - LP: #1096966 + * xhci: Fix conditional check in bandwidth calculation. + - LP: #1096966 + * xHCI: Fix TD Size calculation on 1.0 hosts. + - LP: #1096966 + * xhci: fix null-pointer dereference when destroying half-built segment + rings + - LP: #1096966 + * xhci: Extend Fresco Logic MSI quirk. + - LP: #1096966 + * usb: host: xhci: Stricter conditional for Z1 system models for + Compliance Mode Patch + - LP: #1096966 + * Staging: bcm: Create and initialize new device id in InterfaceInit + - LP: #1096966 + * Staging: bcm: Add two products and remove an existing product. + - LP: #1096966 + * rcu: Fix batch-limit size problem + - LP: #1096966 + * ext4: init pagevec in ext4_da_block_invalidatepages + - LP: #1096966 + * powerpc: Fix CONFIG_RELOCATABLE=y CONFIG_CRASH_DUMP=n build + - LP: #1096966 + * ftrace: Clear bits properly in reset_iter_read() + - LP: #1096966 + * ACPI / battery: Correct battery capacity values on Thinkpads + - LP: #1096966 + * cgroup: remove incorrect dget/dput() pair in cgroup_create_dir() + - LP: #1096966 + * Bluetooth: Add support for BCM20702A0 [04ca, 2003] + - LP: #1096966 + * Bluetooth: Add support for BCM20702A0 [0b05, 17b5] + - LP: #1096966 + * regulator: wm831x: Set the new rather than old value for DVS VSEL + - LP: #1096966 + * drm: fix documentation for drm_crtc_set_mode() + - LP: #1096966 + * mfd: Only unregister platform devices allocated by the mfd core + - LP: #1096966 + * NFS: Add sequence_priviliged_ops for nfs4_proc_sequence() + - LP: #1096966 + * drm/i915: make the panel fitter work on pipes B and C on IVB + - LP: #1096966 + * USB: add new zte 3g-dongle's pid to option.c + - LP: #1096966 + * ACPI / PM: Add Sony Vaio VPCEB1S1E to nonvs blacklist. + - LP: #1096966 + * nfsd: fix v4 reply caching + - LP: #1096966 + * USB: OHCI: workaround for hardware bug: retired TDs not added to the + Done Queue + - LP: #1096966 + * USB: option: blacklist network interface on Huawei E173 + - LP: #1096966 + * USB: cp210x: add Virtenio Preon32 device id + - LP: #1096966 + * usb: ftdi_sio: fixup BeagleBone A5+ quirk + - LP: #1096966 + * USB: ftdi_sio: Add support for Newport AGILIS motor drivers + - LP: #1096966 + * iscsit: use GFP_ATOMIC under spin lock + - LP: #1096966 + * sata_promise: fix hardreset lockdep error + - LP: #1096966 + * xhci: Add Lynx Point LP to list of Intel switchable hosts + - LP: #1096966 + * USB: mark uas driver as BROKEN + - LP: #1096966 + * can: Do not call dev_put if restart timer is running upon close + - LP: #1096966 + * prevent stack buffer overflow in host_reset + - LP: #1096966 + * mvsas: fix undefined bit shift + - LP: #1096966 + * qla2xxx: Test and clear FCPORT_UPDATE_NEEDED atomically. + - LP: #1096966 + * ACPI: do acpisleep dmi check when CONFIG_ACPI_SLEEP is set + - LP: #1096966 + * acpi/video_detect: blacklist samsung x360 + - LP: #1096966 + * ACPI / video: Add "Asus UL30VT" to ACPI video detect blacklist + - LP: #1096966 + * ACPI / PNP: Do not crash due to stale pointer use during system resume + - LP: #1096966 + * ring-buffer: Fix NULL pointer if rb_set_head_page() fails + - LP: #1096966 + * firewire: net: Fix handling of fragmented multicast/broadcast packets. + - LP: #1096966 + * HID: apple: Add Apple wireless keyboard 2011 ANSI PID + - LP: #1096966 + * HID: Add Apple wireless keyboard 2011 ANSI to special driver list + - LP: #1096966 + * libata: set dma_mode to 0xff in reset + - LP: #1096966 + * s390/cio: fix pgid reserved check + - LP: #1096966 + * Bluetooth: Add missing lock nesting notation + - LP: #1096966 + * ALSA: usb-audio: Avoid autopm calls after disconnection + - LP: #1096966 + * ALSA: usb-audio: Fix missing autopm for MIDI input + - LP: #1096966 + * ACPI / video: ignore BIOS initial backlight value for HP Folio 13-2000 + - LP: #1096966 + * x86,AMD: Power driver support for AMD's family 16h processors + - LP: #1096966 + * target/file: Fix 32-bit highmem breakage for SGL -> iovec mapping + - LP: #1096966 + * drm/i915: Close race between processing unpin task and queueing the + flip + - LP: #1096966 + * pnpacpi: fix incorrect TEST_ALPHA() test + - LP: #1096966 + * drm/radeon/kms: use frac fb div on APUs + - LP: #1096966 + * drm/radeon/dce32+: use fractional fb dividers for high clocks + - LP: #1096966 + * drm/radeon: fix eDP clk and lane setup for scaled modes + - LP: #1096966 + * regmap: debugfs: Avoid overflows for very small reads + - LP: #1096966 + * ath9k: ar9003: fix OTP register offsets for AR9340 + - LP: #1096966 + * bcma: mips: fix clearing device IRQ + - LP: #1096966 + * ath9k_hw: Fix signal strength / channel noise reporting + - LP: #1096966 + * drm/i915: drop unnecessary check from fdi_link_train code + - LP: #1096966 + * drm/i915: disable cpt phase pointer fdi rx workaround + - LP: #1096966 + * nfsd: avoid permission checks on EXCLUSIVE_CREATE replay + - LP: #1096966 + * iwlwifi: don't handle masked interrupt + - LP: #1096966 + * mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls + - LP: #1096966 + * x86, 8042: Enable A20 using KBC to fix S3 resume on some MSI laptops + - LP: #1096966 + * solos-pci: fix double-free of TX skb in DMA mode + - LP: #1096966 + * ALSA: hda - Add stereo-dmic fixup for Acer Aspire One 522 + - LP: #1096966 + * drm/radeon: fix amd afusion gpu setup aka sumo v2 + - LP: #1096966 + * NFS: avoid NULL dereference in nfs_destroy_server + - LP: #1096966 + * target/tcm_fc: fix the lockdep warning due to inconsistent lock state + - LP: #1096966 + * mtd: nand: gpmi: reset BCH earlier, too, to avoid NAND startup problems + - LP: #1096966 + * ALSA: hda - Fix pin configuration of HP Pavilion dv7 + - LP: #1096966 + * MIPS: Fix poweroff failure when HOTPLUG_CPU configured. + - LP: #1096966 + * ALSA: hda - Always turn on pins for HDMI/DP + - LP: #1096966 + * fix Null pointer dereference on disk error + - LP: #1096966 + * i2400m: add Intel 6150 device IDs + - LP: #1096966 + * Input: walkera0701 - fix crash on startup + - LP: #1096966 + * ALSA: hda - Fix the wrong pincaps set in ALC861VD dallas/hp fixup + - LP: #1096966 + * proc: pid/status: show all supplementary groups + - LP: #1096966 + * nfsd4: fix oops on unusual readlike compound + - LP: #1096966 + * CRIS: fix I/O macros + - LP: #1096966 + * ARM: missing ->mmap_sem around find_vma() in swp_emulate.c + - LP: #1096966 + * intel-iommu: Free old page tables before creating superpage + - LP: #1096966 + * vfs: d_obtain_alias() needs to use "/" as default name. + - LP: #1096966 + * SGI-XP: handle non-fatal traps + - LP: #1096966 + * dm persistent data: rename node to btree_node + - LP: #1096966 + * dm ioctl: prevent unsafe change to dm_ioctl data_size + - LP: #1096966 + * drm/i915: do not ignore eDP bpc settings from vbt + - LP: #1096966 + * drm/i915: do not default to 18 bpp for eDP if missing from VBT + - LP: #1096966 + * bonding: fix race condition in bonding_store_slaves_active + - LP: #1096966 + * sctp: fix memory leak in sctp_datamsg_from_user() when copy from user + space fails + - LP: #1096966 + * sctp: fix -ENOMEM result with invalid user space pointer in sendto() + syscall + - LP: #1096966 + * ne2000: add the right platform device + - LP: #1096966 + * irda: sir_dev: Fix copy/paste typo + - LP: #1096966 + * ipv4: ip_check_defrag must not modify skb before unsharing + - LP: #1096966 + * usb/ipheth: Add iPhone 5 support + - LP: #1096966 + * iwlwifi: handle DMA mapping failures + - LP: #1096966 + * telephony: ijx: buffer overflow in ixj_write_cid() + - LP: #1096966 + * i82975x_edac: Fix dimm label initialization + - LP: #1096966 + * hpsa: gen8plus Smart Array IDs + - LP: #1096966 + * thp, memcg: split hugepage for memcg oom on cow + - LP: #1096966 + * udf: fix memory leak while allocating blocks during write + - LP: #1096966 + * staging: vt6656: [BUG] out of bound array reference in RFbSetPower. + - LP: #1096966 + * staging: vt6656: 64 bit fixes: use u32 for QWORD definition. + - LP: #1096966 + * staging: vt6656: 64 bit fixes : correct all type sizes + - LP: #1096966 + * staging: vt6656: 64 bit fixes: fix long warning messages. + - LP: #1096966 + * staging: vt6656: 64bit fixes: key.c/h change unsigned long to u32 + - LP: #1096966 + * staging: vt6656: 64bit fixes: vCommandTimerWait change calculation of + timer. + - LP: #1096966 + * ramoops: fix use of rounddown_pow_of_two() + - LP: #1096966 + * Linux 3.2.36 + - LP: #1096966 + * ext4: fix extent tree corruption caused by hole punch + - LP: #1100376 + * i915: ensure that VGA plane is disabled + - LP: #1100376 + * ext4: check dioread_nolock on remount + - LP: #1100376 + * jbd2: fix assertion failure in jbd2_journal_flush() + - LP: #1100376 + * hwmon: (lm73} Detect and report i2c bus errors + - LP: #1100376 + * ext4: do not try to write superblock on ro remount w/o journal + - LP: #1100376 + * PCI: Reduce Ricoh 0xe822 SD card reader base clock frequency to 50MHz + - LP: #1100376 + * mm: Fix PageHead when !CONFIG_PAGEFLAGS_EXTENDED + - LP: #1100376 + * cifs: adjust sequence number downward after signing NT_CANCEL request + - LP: #1100376 + * tmpfs mempolicy: fix /proc/mounts corrupting memory + - LP: #1100376 + * p54usb: add USB ID for T-Com Sinus 154 data II + - LP: #1100376 + * ath9k_hw: Fix RX gain initvals for AR9485 + - LP: #1100376 + * p54usb: add USBIDs for two more p54usb devices + - LP: #1100376 + * powerpc/vdso: Remove redundant locking in update_vsyscall_tz() + - LP: #1100376 + * powerpc: Add missing NULL terminator to avoid boot panic on PPC40x + - LP: #1100376 + * drm/radeon: add connector table for SAM440ep embedded board + - LP: #1100376 + * drm/radeon: add connector table for Mac G4 Silver + - LP: #1100376 + * drm/radeon: Properly handle DDC probe for DP bridges + - LP: #1100376 + * drm/nouveau: fix init with agpgart-uninorth + - LP: #1100376 + * video: mxsfb: fix crash when unblanking the display + - LP: #1100376 + * nfs: fix null checking in nfs_get_option_str() + - LP: #1100376 + * SUNRPC: Ensure that we free the rpc_task after cleanups are done + - LP: #1100376 + * ACPI / scan: Do not use dummy HID for system bus ACPI nodes + - LP: #1100376 + * mm: limit mmu_gather batching to fix soft lockups on !CONFIG_PREEMPT + - LP: #1100376 + * drivers/rtc/rtc-vt8500.c: correct handling of CR_24H bitfield + - LP: #1100376 + * drivers/rtc/rtc-vt8500.c: fix handling of data passed in struct + rtc_time + - LP: #1100376 + * udf: don't increment lenExtents while writing to a hole + - LP: #1100376 + * epoll: prevent missed events on EPOLL_CTL_MOD + - LP: #1100376 + * rt2x00: Don't let mac80211 send a BAR when an AMPDU subframe fails + - LP: #1100376 + * mac80211: introduce IEEE80211_HW_TEARDOWN_AGGR_ON_BAR_FAIL + - LP: #1100376 + * Revert: "rt2x00: Don't let mac80211 send a BAR when an AMPDU subframe + fails" + - LP: #1100376 + * ftrace: Do not function trace inlined functions + - LP: #1100376 + * sparc: huge_ptep_set_* functions need to call set_huge_pte_at() + - LP: #1100376 + * inet: Fix kmemleak in tcp_v4/6_syn_recv_sock and + dccp_v4/6_request_recv_sock + - LP: #1100376 + * net: sched: integer overflow fix + - LP: #1100376 + * tcp: implement RFC 5961 3.2 + - LP: #1100376 + * tcp: implement RFC 5961 4.2 + - LP: #1100376 + * tcp: refine SYN handling in tcp_validate_incoming + - LP: #1100376 + * tcp: tcp_replace_ts_recent() should not be called from + tcp_validate_incoming() + - LP: #1100376 + * tcp: RFC 5961 5.2 Blind Data Injection Attack Mitigation + - LP: #1100376 + * mvsas: Fix oops when ata commond timeout. + - LP: #1100376 + * RDMA/nes: Fix for crash when registering zero length MR for CQ + - LP: #1100376 + * RDMA/nes: Fix for terminate timer crash + - LP: #1100376 + * ACPI : do not use Lid and Sleep button for S5 wakeup + - LP: #1100376 + * aoe: do not call bdi_init after blk_alloc_queue + - LP: #1100376 + * Linux 3.2.37 + - LP: #1100376 + * tg3: Scale back code that modifies MRRS + - LP: #1102209 + * tg3: Recode PCI MRRS adjustment as a PCI quirk + - LP: #1102209 + * HID: Add suport for the brightness control keys on HP keyboards + - LP: #1007575 + * inotify, fanotify: replace fsnotify_put_group() with + fsnotify_destroy_group() + - LP: #1110605 + * fsnotify: introduce fsnotify_get_group() + - LP: #1110605 + * fsnotify: use reference counting for groups + - LP: #1110605 + * fsnotify: take groups mark_lock before mark lock + - LP: #1110605 + * fanotify: add an extra flag to mark_remove_from_mask that indicates + wheather a mark should be destroyed + - LP: #1110605 + * fsnotify: use a mutex instead of a spinlock to protect a groups mark + list + - LP: #1110605 + * audit: clean up refcounting in audit-tree + - LP: #1110605 + * fsnotify: pass group to fsnotify_destroy_mark() + - LP: #1110605 + * fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark() + - LP: #1110605 + * fsnotify: dont put marks on temporary list when clearing marks by group + - LP: #1110605 + * fsnotify: change locking order + - LP: #1110605 + * ALSA: usb-audio: Fix regression by disconnection-race-fix patch + - LP: #1097396 + + -- Luis Henriques Tue, 05 Feb 2013 16:27:04 +0000 + +linux (3.2.0-37.58) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1104061 + + [ Upstream Kernel Changes ] + + * Revert "fsnotify: change locking order" + - LP: #1101666 + * Revert "fsnotify: dont put marks on temporary list when clearing marks + by group" + - LP: #1101666 + * Revert "fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark()" + - LP: #1101666 + * Revert "fsnotify: pass group to fsnotify_destroy_mark()" + - LP: #1101666 + * Revert "fsnotify: use a mutex instead of a spinlock to protect a groups + mark list" + - LP: #1101666 + * Revert "fanotify: add an extra flag to mark_remove_from_mask that + indicates wheather a mark should be destroyed" + - LP: #1101666 + * Revert "fsnotify: take groups mark_lock before mark lock" + - LP: #1101666 + * Revert "fsnotify: use reference counting for groups" + - LP: #1101666 + * Revert "fsnotify: introduce fsnotify_get_group()" + - LP: #1101666 + + -- Luis Henriques Thu, 24 Jan 2013 13:03:39 +0000 + +linux (3.2.0-36.57) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1097389 + + [ Chris J Arges ] + + * Revert "SAUCE: fsnotify: dont put marks on temporary list when clearing + marks by group" + - LP: #1096137 + * Revert "SAUCE: fsnotify: introduce locked versions of + fsnotify_add_mark() and fsnotify_remove_mark()" + - LP: #1096137 + * Revert "SAUCE: fsnotify: pass group to fsnotify_destroy_mark()" + - LP: #1096137 + * Revert "SAUCE: fsnotify: use a mutex instead of a spinlock to protect a + groups mark list" + - LP: #1096137 + * Revert "SAUCE: fanotify: add an extra flag to mark_remove_from_mask + that indicates wheather a mark should be destroyed" + - LP: #1096137 + * Revert "SAUCE: fsnotify: take groups mark_lock before mark lock" + - LP: #1096137 + * Revert "SAUCE: fsnotify: use reference counting for groups" + - LP: #1096137 + * Revert "SAUCE: fsnotify: introduce fsnotify_get_group()" + - LP: #1096137 + + [ Upstream Kernel Changes ] + + * fsnotify: introduce fsnotify_get_group() + - LP: #1096137 + * fsnotify: use reference counting for groups + - LP: #1096137 + * fsnotify: take groups mark_lock before mark lock + - LP: #1096137 + * fanotify: add an extra flag to mark_remove_from_mask that indicates + wheather a mark should be destroyed + - LP: #1096137 + * fsnotify: use a mutex instead of a spinlock to protect a groups mark + list + - LP: #1096137 + * fsnotify: pass group to fsnotify_destroy_mark() + - LP: #1096137 + * fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark() + - LP: #1096137 + * fsnotify: dont put marks on temporary list when clearing marks by group + - LP: #1096137 + * fsnotify: change locking order + - LP: #1096137 + + -- Luis Henriques Tue, 08 Jan 2013 18:36:32 +0000 + +linux (3.2.0-36.56) precise-proposed; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1095351 + + [ Chris J Arges ] + + * SAUCE: add eeprom_bad_csum_allow module parameter + - LP: #1070182 + + [ Colin Ian King ] + + * SAUCE: samsung-laptop: disable in UEFI mode + - LP: #1040557 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: usb: cdc-wdm: fix regression on buffer deallocation + - LP: #1074157 + + [ Kees Cook ] + + * SAUCE: exec: do not leave bprm->interp on stack + - LP: #1068888 + - CVE-2012-4530 + + [ Leann Ogasawara ] + + * Add ceph to virtual kernel flavor + - LP: #1063784 + + [ Lino Sanfilippo ] + + * SAUCE: fsnotify: introduce fsnotify_get_group() + - LP: #922906 + * SAUCE: fsnotify: use reference counting for groups + - LP: #922906 + * SAUCE: fsnotify: take groups mark_lock before mark lock + - LP: #922906 + * SAUCE: fanotify: add an extra flag to mark_remove_from_mask that + indicates wheather a mark should be destroyed + - LP: #922906 + * SAUCE: fsnotify: use a mutex instead of a spinlock to protect a groups + mark list + - LP: #922906 + * SAUCE: fsnotify: pass group to fsnotify_destroy_mark() + - LP: #922906 + * SAUCE: fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark() + - LP: #922906 + * SAUCE: fsnotify: dont put marks on temporary list when clearing marks + by group + - LP: #922906 + + [ Tomas Hozza ] + + * SAUCE: tools: hv: Netlink source address validation allows DoS + - LP: #1084777 + - CVE-2012-5532 + + [ Upstream Kernel Changes ] + + * drm/i915: add Ivy Bridge GT2 Server entries + - LP: #1087302 + * drm/i915: EBUSY status handling added to i915_gem_fault(). + - LP: #1087302 + * UBIFS: introduce categorized lprops counter + - LP: #1087865 + * UBIFS: fix mounting problems after power cuts + - LP: #1087865 + * futex: Handle futex_pi OWNER_DIED take over correctly + - LP: #1087865 + * mac80211: sync acccess to tx_filtered/ps_tx_buf queues + - LP: #1087865 + * ASoC: wm8978: pll incorrectly configured when codec is master + - LP: #1087865 + * device_cgroup: fix RCU usage + - LP: #1087865 + * ASoC: dapm: Use card_list during DAPM shutdown + - LP: #1087865 + * s390/signal: set correct address space control + - LP: #1087865 + * wireless: allow 40 MHz on world roaming channels 12/13 + - LP: #1087865 + * drm/i915/sdvo: clean up connectors on intel_sdvo_init() failures + - LP: #1087865 + * s390/gup: add missing TASK_SIZE check to get_user_pages_fast() + - LP: #1087865 + * USB: option: add Novatel E362 and Dell Wireless 5800 USB IDs + - LP: #1087865 + * USB: option: add Alcatel X220/X500D USB IDs + - LP: #1087865 + * drm/radeon: fix logic error in atombios_encoders.c + - LP: #1087865 + * ttm: Clear the ttm page allocated from high memory zone correctly + - LP: #1087865 + * memcg: oom: fix totalpages calculation for memory.swappiness==0 + - LP: #1087865 + * tmpfs: change final i_blocks BUG to WARNING + - LP: #1087865 + * x86: Exclude E820_RESERVED regions and memory holes above 4 GB from + direct mapping. + - LP: #1087865 + * x86, mm: Find_early_table_space based on ranges that are actually being + mapped + - LP: #1087865 + * x86, mm: Undo incorrect revert in arch/x86/mm/init.c + - LP: #1087865 + * netfilter: Mark SYN/ACK packets as invalid from original direction + - LP: #1087865 + * netfilter: Validate the sequence number of dataless ACK packets as well + - LP: #1087865 + * netfilter: nf_nat: don't check for port change on ICMP tuples + - LP: #1087865 + * ipv4: avoid undefined behavior in do_ip_setsockopt() + - LP: #1087865 + * ipv6: setsockopt(IPIPPROTO_IPV6, IPV6_MINHOPCOUNT) forgot to set return + value + - LP: #1087865 + * net: correct check in dev_addr_del() + - LP: #1087865 + * net-rps: Fix brokeness causing OOO packets + - LP: #1087865 + * usb: use usb_serial_put in usb_serial_probe errors + - LP: #1087865 + * PCI : Calculate right add_size + - LP: #1087865 + * Input: i8042 - also perform controller reset when suspending + - LP: #1087865 + * ixgbe: add support for new 82599 device id + - LP: #1087865 + * ixgbe: add support for X540-AT1 + - LP: #1087865 + * drm/i915: Check VBIOS value for determining LVDS dual channel mode, too + - LP: #1087865 + * get_dvb_firmware: fix download site for tda10046 firmware + - LP: #1087865 + * m68k: fix sigset_t accessor functions + - LP: #1087865 + * HID: add quirk for Freescale i.MX28 ROM recovery + - LP: #1087865 + * brcm80211: smac: only print block-ack timeout message at trace level + - LP: #1087865 + * bas_gigaset: fix pre_reset handling + - LP: #1087865 + * GFS2: Test bufdata with buffer locked and gfs2_log_lock held + - LP: #1087865 + * ptp: update adjfreq callback description + - LP: #1087865 + * watchdog: using u64 in get_sample_period() + - LP: #1087865 + * x86, amd: Disable way access filter on Piledriver CPUs + - LP: #1087865 + * mtd: ofpart: Fix incorrect NULL check in parse_ofoldpart_partitions() + - LP: #1087865 + * mtd: slram: invalid checking of absolute end address + - LP: #1087865 + * jffs2: Fix lock acquisition order bug in jffs2_write_begin + - LP: #1087865 + * isci: copy fis 0x34 response into proper buffer + - LP: #1087865 + * mac80211: deinitialize ibss-internals after emptiness check + - LP: #1087865 + * fix virtual aliasing issue in get_shared_area() + - LP: #1087865 + * rtlwifi: rtl8192cu: Add new USB ID + - LP: #1087865 + * mwifiex: fix system hang issue in cmd timeout error case + - LP: #1087865 + * mwifiex: report error to MMC core if we cannot suspend + - LP: #1087865 + * xfs: drop buffer io reference when a bad bio is built + - LP: #1087865 + * ALSA: ua101, usx2y: fix broken MIDI output + - LP: #1087865 + * sparc64: not any error from do_sigaltstack() should fail rt_sigreturn() + - LP: #1087865 + * reiserfs: Fix lock ordering during remount + - LP: #1087865 + * reiserfs: Protect reiserfs_quota_on() with write lock + - LP: #1087865 + * reiserfs: Protect reiserfs_quota_write() with write lock + - LP: #1087865 + * reiserfs: Move quota calls out of write lock + - LP: #1087865 + * md: Reassigned the parameters if read_seqretry returned true in func + md_is_badblock. + - LP: #1087865 + * md: Avoid write invalid address if read_seqretry returned true. + - LP: #1087865 + * drm/radeon: properly track the crtc not_enabled case + evergreen_mc_stop() + - LP: #1087865 + * radeon: add AGPMode 1 quirk for RV250 + - LP: #1087865 + * x86-32: Fix invalid stack address while in softirq + - LP: #1087865 + * x86-32: Export kernel_stack_pointer() for modules + - LP: #1087865 + * x86, microcode, AMD: Add support for family 16h processors + - LP: #1087865 + * ALSA: hda - Add new codec ALC283 ALC290 support + - LP: #1087865 + * ALSA: hda - Add support for Realtek ALC292 + - LP: #1081466, #1087865 + * selinux: fix sel_netnode_insert() suspicious rcu dereference + - LP: #1087865 + * Dove: Attempt to fix PMU/RTC interrupts + - LP: #1087865 + * Dove: Fix irq_to_pmu() + - LP: #1087865 + * ARM: Kirkwood: Update PCI-E fixup + - LP: #1087865 + * fix user-triggerable panic on parisc + - LP: #1087865 + * dm: fix deadlock with request based dm and queue request_fn recursion + - LP: #1087865 + * block: Don't access request after it might be freed + - LP: #1087865 + * jbd: Fix lock ordering bug in journal_unmap_buffer() + - LP: #1087865 + * can: bcm: initialize ifindex for timeouts without previous frame + reception + - LP: #1087865 + * futex: avoid wake_futex() for a PI futex_q + - LP: #1087865 + * mm/vmemmap: fix wrong use of virt_to_page + - LP: #1087865 + * mm: vmscan: fix endless loop in kswapd balancing + - LP: #1087865 + * mm: soft offline: split thp at the beginning of soft_offline_page() + - LP: #1087865 + * workqueue: exit rescuer_thread() as TASK_RUNNING + - LP: #1087865 + * intel_idle: initial IVB support + - LP: #1087865 + * intel_idle: enable IVB Xeon support + - LP: #1087865 + * Linux 3.2.35 + - LP: #1087865 + * MISC: hpilo, remove pci_disable_device + - LP: #1087860 + * asix: Adds support for Lenovo 10/100 USB dongle. + - LP: #1087480 + * KVM: x86: invalid opcode oops on SET_SREGS with OSXSAVE bit set + (CVE-2012-4461) + - LP: #1089604 + - CVE-2012-4461 + * exec: use -ELOOP for max recursion depth + - LP: #1068888 + - CVE-2012-4530 + + -- Brad Figg Wed, 02 Jan 2013 12:25:14 -0800 + +linux (3.2.0-35.55) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1086856 + + [ Andy Whitcroft ] + + * Revert "SAUCE: ata_piix: add a disable_driver option" + - LP: #1079084 + * Revert "SAUCE: ata_piix: defer disks to the Hyper-V drivers by default" + - LP: #1079084 + * SAUCE: ata_piix: add a disable_driver option + - LP: #1079084, #994870 + + [ Upstream Kernel Changes ] + + * libata: add a host flag to ignore detected ATA devices + - LP: #1079084 + * ata_piix: defer disks to the Hyper-V drivers by default + - LP: #1079084, #929545, #942316 + + -- Luis Henriques Wed, 05 Dec 2012 16:37:45 +0000 + +linux (3.2.0-35.54) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1086349 + + [ Kees Cook ] + + * Revert "SAUCE: SECCOMP: audit: always report seccomp violations" + - LP: #1079469 + + [ Luis Henriques ] + + * SAUCE: SECCOMP: audit: fix build on archs without CONFIG_AUDITSYSCALL + - LP: #1079469 + + [ Upstream Kernel Changes ] + + * seccomp: forcing auditing of kill condition + - LP: #1079469 + * Bluetooth: Avoid calling undefined smp_conn_security() + - LP: #1081676 + * x86: Remove the ancient and deprecated disable_hlt() and enable_hlt() + facility + - LP: #1081676 + * drm/nouveau: silence modesetting spam on pre-gf8 chipsets + - LP: #1081676 + * drm/nouveau: fix suspend/resume when in headless mode + - LP: #1081676 + * drm/nouveau: headless mode by default if pci class != vga display + - LP: #1081676 + * nfsd: add get_uint for u32's + - LP: #1081676 + * ALSA: PCM: Fix some races at disconnection + - LP: #1081676 + * ALSA: usb-audio: Fix races at disconnection + - LP: #1081676 + * ALSA: usb-audio: Use rwsem for disconnect protection + - LP: #1081676 + * ALSA: usb-audio: Fix races at disconnection in mixer_quirks.c + - LP: #1081676 + * ALSA: Add a reference counter to card instance + - LP: #1081676 + * ALSA: Avoid endless sleep after disconnect + - LP: #1081676 + * drm/radeon: fix typo in evergreen_mc_resume() + - LP: #1081676 + * USB: mos7840: remove unused variable + - LP: #1081676 + * rtnetlink: Fix problem with buffer allocation + - LP: #1081676 + * rtnetlink: fix rtnl_calcit() and rtnl_dump_ifinfo() + - LP: #1081676 + * gpio-timberdale: fix a potential wrapping issue + - LP: #1081676 + * cfg80211: fix antenna gain handling + - LP: #1081676 + * drm/i915: fix overlay on i830M + - LP: #1081676 + * drm/i915: fixup infoframe support for sdvo + - LP: #1081676 + * drm/i915: clear the entire sdvo infoframe buffer + - LP: #1081676 + * crypto: cryptd - disable softirqs in cryptd_queue_worker to prevent + data corruption + - LP: #1081676 + * ARM: at91: at91sam9g10: fix SOC type detection + - LP: #1081676 + * ARM: at91/i2c: change id to let i2c-gpio work + - LP: #1081676 + * mac80211: Only process mesh config header on frames that RA_MATCH + - LP: #1081676 + * mac80211: don't inspect Sequence Control field on control frames + - LP: #1081676 + * mac80211: fix SSID copy on IBSS JOIN + - LP: #1081676 + * wireless: drop invalid mesh address extension frames + - LP: #1081676 + * mac80211: check management frame header length + - LP: #1081676 + * mac80211: verify that skb data is present + - LP: #1081676 + * mac80211: make sure data is accessible in EAPOL check + - LP: #1081676 + * ath9k: fix stale pointers potentially causing access to free'd skbs + - LP: #1081676 + * floppy: do put_disk on current dr if blk_init_queue fails + - LP: #1081676 + * floppy: properly handle failure on add_disk loop + - LP: #1081676 + * xen/gntdev: don't leak memory from IOCTL_GNTDEV_MAP_GRANT_REF + - LP: #1081676 + * rt2800: validate step value for temperature compensation + - LP: #1081676 + * ath9k: Test for TID only in BlockAcks while checking tx status + - LP: #1081676 + * module: fix out-by-one error in kallsyms + - LP: #1081676 + * Input: tsc40 - remove wrong announcement of pressure support + - LP: #1081676 + * HID: microsoft: fix invalid rdesc for 3k kbd + - LP: #1081676 + * xen/mmu: Use Xen specific TLB flush instead of the generic one. + - LP: #1081676 + * NFS: Wait for session recovery to finish before returning + - LP: #1081676 + * NFSv4.1: We must release the sequence id when we fail to get a session + slot + - LP: #1081676 + * NFSv4: nfs4_locku_done must release the sequence id + - LP: #1081676 + * NFS: fix bug in legacy DNS resolver. + - LP: #1081676 + * nfsv3: Make v3 mounts fail with ETIMEDOUTs instead EIO on mountd + timeouts + - LP: #1081676 + * nfs: Show original device name verbatim in /proc/*/mount{s,info} + - LP: #1081676 + * target: Don't return success from module_init() if setup fails + - LP: #1081676 + * target: Avoid integer overflow in se_dev_align_max_sectors() + - LP: #1081676 + * iscsi-target: Fix missed wakeup race in TX thread + - LP: #1081676 + * DRM/Radeon: Fix Load Detection on legacy primary DAC. + - LP: #1081676 + * cifs: fix potential buffer overrun in cifs.idmap handling code + - LP: #1081676 + * ALSA: hda: Cirrus: Fix coefficient index for beep configuration + - LP: #1081676 + * ALSA: HDA: Fix digital microphone on CS420x + - LP: #1081676 + * ALSA: hda - Force to reset IEC958 status bits for AD codecs + - LP: #1081676, #359361 + * hwmon: (w83627ehf) Force initial bank selection + - LP: #1081676 + * drm: restore open_count if drm_setup fails + - LP: #1081676 + * ALSA: hda - Fix empty DAC filling in patch_via.c + - LP: #1081676 + * ALSA: hda - Fix invalid connections in VT1802 codec + - LP: #1081676 + * ALSA: hda - Add new codec ALC668 and ALC900 (default name ALC1150) + - LP: #1081676 + * ALSA: Fix card refcount unbalance + - LP: #1081676 + * xfs: fix reading of wrapped log data + - LP: #1081676 + * fanotify: fix missing break + - LP: #1081676 + * mm: bugfix: set current->reclaim_state to NULL while returning from + kswapd() + - LP: #1081676 + * drm/vmwgfx: Fix hibernation device reset + - LP: #1081676 + * drm/vmwgfx: Fix a case where the code would BUG when trying to pin GMR + memory + - LP: #1081676 + * sctp: fix call to SCTP_CMD_PROCESS_SACK in sctp_cmd_interpreter() + - LP: #1081676 + * netlink: use kfree_rcu() in netlink_release() + - LP: #1081676 + * tcp: fix FIONREAD/SIOCINQ + - LP: #1081676 + * ipv6: Set default hoplimit as zero. + - LP: #1081676 + * net: usb: Fix memory leak on Tx data path + - LP: #1081676 + * l2tp: fix oops in l2tp_eth_create() error path + - LP: #1081676 + * af-packet: fix oops when socket is not present + - LP: #1081676 + * ipv6: send unsolicited neighbour advertisements to all-nodes + - LP: #1081676 + * r8169: allow multicast packets on sub-8168f chipset. + - LP: #1081676 + * r8169: Fix WoL on RTL8168d/8111d. + - LP: #1081676 + * r8169: use unlimited DMA burst for TX + - LP: #1081676 + * sky2: Fix for interrupt handler + - LP: #1081676 + * ALSA: usb-audio: Fix mutex deadlock at disconnection + - LP: #1081676 + * Linux 3.2.34 + - LP: #1081676 + * bonding: Bonding driver does not consider the gso_max_size/gso_max_segs + setting of slave devices. + - LP: #1078184 + * mm/hotplug: correctly add new zone to all other nodes' zone lists + - LP: #1079860 + - CVE-2012-5517 + * thinkpad-acpi: fix issuing duplicated key events for brightness up/down + - LP: #841315 + * Bluetooth: ath3k: Add support for VAIO VPCEH [0489:e027] + - LP: #898826 + + -- Luis Henriques Tue, 04 Dec 2012 15:11:24 +0000 + +linux (3.2.0-34.53) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1078760 + + [ Kamal Mostafa ] + + * SAUCE: input: Cypress PS/2 Trackpad list additional contributors + + [ Kyle Fazzari ] + + * SAUCE: input: Cypress PS/2 Trackpad fix multi-source, double-click + - LP: #1055788 + * SAUCE: input: Cypress PS/2 Trackpad fix lost sync upon palm contact + - LP: #1048258 + * SAUCE: input: Cypress PS/2 Trackpad fix taps turning into hardware + clicks + - LP: #1064086 + + [ Tim Gardner ] + + * [Config] remove ndiswrapper from Provides: + - LP: #1076395 + * [Config] CONFIG_HP_WATCHDOG=m for x86en + - LP: #1076342 + + [ Upstream Kernel Changes ] + + * Revert "SUNRPC: Ensure we close the socket on EPIPE errors too..." + - LP: #1075355 + * Revert "ath9k_hw: Updated AR9003 tx gain table for 5GHz" + - LP: #1075355 + * eCryptfs: check for eCryptfs cipher support at mount + - LP: #338914 + * isci: fix isci_pci_probe() generates warning on efi failure path + - LP: #1068162 + * mtd: nand: Use the mirror BBT descriptor when reading its version + - LP: #1068162 + * drm/i915: prevent possible pin leak on error path + - LP: #1068162 + * workqueue: add missing smp_wmb() in process_one_work() + - LP: #1068162 + * TTY: ttyprintk, don't touch behind tty->write_buf + - LP: #1068162 + * Remove BUG_ON from n_tty_read() + - LP: #1068162 + * n_gsm.c: Implement 3GPP27.010 DLC start-up procedure in MUX + - LP: #1068162 + * n_gsm: uplink SKBs accumulate on list + - LP: #1068162 + * n_gsm : Flow control handling in Mux driver + - LP: #1068162 + * char: n_gsm: remove message filtering for contipated DLCI + - LP: #1068162 + * n_gsm: added interlocking for gsm_data_lock for certain code paths + - LP: #1068162 + * n_gsm: avoid accessing freed memory during CMD_FCOFF condition + - LP: #1068162 + * n_gsm: replace kfree_skb w/ appropriate dev_* versions + - LP: #1068162 + * n_gsm: memory leak in uplink error path + - LP: #1068162 + * UBI: fix autoresize handling in R/O mode + - LP: #1068162 + * UBI: erase free PEB with bitflip in EC header + - LP: #1068162 + * firmware: Add missing attributes to EFI variable attribute print out + from sysfs + - LP: #1068162 + * tools/hv: Fix exit() error code + - LP: #1068162 + * slab: fix the DEADLOCK issue on l3 alien lock + - LP: #1068162 + * gspca_pac7302: Add usb-id for 145f:013c + - LP: #1068162 + * gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy + Microphone SL-6825-SBK + - LP: #1068162 + * xhci: Warn when hosts don't halt. + - LP: #1068162 + * xHCI: add cmd_ring_state + - LP: #1068162 + * xHCI: add aborting command ring function + - LP: #1068162 + * xHCI: cancel command after command timeout + - LP: #1068162 + * hpsa: Use LUN reset instead of target reset + - LP: #1068162 + * rc: ite-cir: Initialise ite_dev::rdev earlier + - LP: #1068162 + * staging: speakup_soft: Fix reading of init string + - LP: #1068162 + * target: fix return code in target_core_init_configfs error path + - LP: #1068162 + * powerpc/eeh: Lock module while handling EEH event + - LP: #1068162 + * intel-iommu: Default to non-coherent for domains unattached to iommus + - LP: #1068162 + * workqueue: fix possible stall on try_to_grab_pending() of a delayed + work item + - LP: #1068162 + * PCI: Check P2P bridge for invalid secondary/subordinate range + - LP: #1068162 + * staging: comedi: don't dereference user memory for INSN_INTTRIG + - LP: #1068162 + * SUNRPC: Ensure that the TCP socket is closed when in CLOSE_WAIT + - LP: #1068162 + * ext4: fix potential deadlock in ext4_nonda_switch() + - LP: #1068162 + * staging: comedi: fix memory leak for saved channel list + - LP: #1068162 + * USB: option: blacklist QMI interface on ZTE MF683 + - LP: #1068162 + * USB: qcaux: add Pantech vendor class match + - LP: #1068162 + * can: mscan-mpc5xxx: fix return value check in mpc512x_can_get_clock() + - LP: #1068162 + * iscsi-target: Correctly set 0xffffffff field within ISCSI_OP_REJECT PDU + - LP: #1068162 + * rcu: Fix day-one dyntick-idle stall-warning bug + - LP: #1068162 + * zfcp: Make trace record tags unique + - LP: #1068162 + * zfcp: Bounds checking for deferred error trace + - LP: #1068162 + * zfcp: Do not wakeup while suspended + - LP: #1068162 + * zfcp: remove invalid reference to list iterator variable + - LP: #1068162 + * zfcp: restore refcount check on port_remove + - LP: #1068162 + * zfcp: only access zfcp_scsi_dev for valid scsi_device + - LP: #1068162 + * ibmvscsi: Fix host config length field overflow + - LP: #1068162 + * scsi_remove_target: fix softlockup regression on hot remove + - LP: #1056746, #1068162 + * scsi_dh_alua: Enable STPG for unavailable ports + - LP: #1068162 + * Increase XHCI suspend timeout to 16ms + - LP: #1068162 + * usb: host: xhci: Fix Null pointer dereferencing with 71c731a for + non-x86 systems + - LP: #1068162 + * USB: ftdi_sio: add TIAO USB Multi-Protocol Adapter (TUMPA) support + - LP: #1068162 + * ACPI: run _OSC after ACPI_FULL_INITIALIZATION + - LP: #1068162 + * ath9k: Disable ASPM only for AR9285 + - LP: #1068162 + * xhci: Intel Panther Point BEI quirk. + - LP: #1068162 + * drm/i915: add some barriers when changing DIPs + - LP: #1068162 + * drm/i915: make sure we write all the DIP data bytes + - LP: #1068162 + * ext4: move_extent code cleanup + - LP: #1068162 + * ext4: online defrag is not supported for journaled files + - LP: #1068162 + * staging: comedi: s626: don't dereference insn->data + - LP: #1068162 + * serial: set correct baud_base for EXSYS EX-41092 Dual 16950 + - LP: #1068162 + * serial: pl011: handle corruption at high clock speeds + - LP: #1068162 + * ext4: always set i_op in ext4_mknod() + - LP: #1068162 + * ext4: fix fdatasync() for files with only i_size changes + - LP: #1068162 + * coredump: prevent double-free on an error path in core dumper + - LP: #1068162 + * drm/i915: use adjusted_mode instead of mode for checking the 6bpc force + flag + - LP: #1068162 + * drm/radeon: only adjust default clocks on NI GPUs + - LP: #1068162 + * drm/radeon: Add MSI quirk for gateway RS690 + - LP: #1068162 + * drm/radeon: force MSIs on RS690 asics + - LP: #1068162 + * kbuild: Do not package /boot and /lib in make tar-pkg + - LP: #1068162 + * staging: comedi: jr3_pci: fix iomem dereference + - LP: #1068162 + * mtd: autcpu12-nvram: Fix compile breakage + - LP: #1068162 + * mtd: mtdpart: break it as soon as we parse out the partitions + - LP: #1068162 + * mtd: omap2: fix omap_nand_remove segfault + - LP: #1068162 + * mtd: omap2: fix module loading + - LP: #1068162 + * JFFS2: don't fail on bitflips in OOB + - LP: #1068162 + * mtd: nandsim: bugfix: fail if overridesize is too big + - LP: #1068162 + * IPoIB: Fix use-after-free of multicast object + - LP: #1068162 + * IB/srp: Fix use-after-free in srp_reset_req() + - LP: #1068162 + * IB/srp: Avoid having aborted requests hang + - LP: #1068162 + * localmodconfig: Fix localyesconfig to set to 'y' not 'm' + - LP: #1068162 + * pnfsblock: fix partial page buffer wirte + - LP: #1068162 + * drm/i915: Flush the pending flips on the CRTC before modification + - LP: #1068162 + * target/file: Re-enable optional fd_buffered_io=1 operation + - LP: #1068162 + * iscsi-target: Add explicit set of cache_dynamic_acls=1 for TPG + demo-mode + - LP: #1068162 + * iscsit: remove incorrect unlock in iscsit_build_sendtargets_resp + - LP: #1068162 + * scripts/Kbuild.include: Fix portability problem of "echo -e" + - LP: #1068162 + * kbuild: Fix gcc -x syntax + - LP: #1068162 + * mmc: omap_hsmmc: Pass on the suspend failure to the PM core + - LP: #1068162 + * mmc: sh-mmcif: avoid oops on spurious interrupts + - LP: #1068162 + * iscsi-target: Bump defaults for nopin_timeout + nopin_response_timeout + values + - LP: #1068162 + * lguest: fix occasional crash in example launcher. + - LP: #1068162 + * drm/i915: call drm_handle_vblank before finish_page_flip + - LP: #1068162 + * drm/i915: Fix GT_MODE default value + - LP: #1068162 + * mn10300: only add -mmem-funcs to KBUILD_CFLAGS if gcc supports it + - LP: #1068162 + * drivers/dma/dmaengine.c: lower the priority of 'failed to get' dma + channel message + - LP: #1068162 + * kbuild: make: fix if_changed when command contains backslashes + - LP: #1068162 + * drivers/scsi/atp870u.c: fix bad use of udelay + - LP: #1068162 + * kernel/sys.c: call disable_nonboot_cpus() in kernel_restart() + - LP: #1068162 + * lib/gcd.c: prevent possible div by 0 + - LP: #1068162 + * rapidio/rionet: fix multicast packet transmit logic + - LP: #1068162 + * ALSA: hda - Fix internal mic for Lenovo Ideapad U300s + - LP: #1068162, #903853 + * ALSA: HDA: Add inverted internal mic quirk for Lenovo S205 + - LP: #1068162, #884652 + * ALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310 + - LP: #1068162 + * ALSA: aloop - add locking to timer access + - LP: #1068162 + * mmc: sdhci-s3c: fix the wrong number of max bus clocks + - LP: #1068162 + * ARM: OMAP: counter: add locking to read_persistent_clock + - LP: #1068162 + * mm: fix invalidate_complete_page2() lock ordering + - LP: #1068162 + * mm: thp: fix pmd_present for split_huge_page and PROT_NONE with THP + - LP: #1068162 + * mm: hugetlb: fix pgoff computation when unmapping page from vma + - LP: #1068162 + * hugetlb: do not use vma_hugecache_offset() for vma_prio_tree_foreach + - LP: #1068162 + * firewire: cdev: fix user memory corruption (i386 userland on amd64 + kernel) + - LP: #1068162 + * autofs4 - fix reset pending flag on mount fail + - LP: #1068162 + * udf: fix retun value on error path in udf_load_logicalvol + - LP: #1068162 + * efi: initialize efi.runtime_version to make + query_variable_info/update_capsule workable + - LP: #1068162 + * mempolicy: remove mempolicy sharing + - LP: #1068162 + * mempolicy: fix a race in shared_policy_replace() + - LP: #1068162 + * mempolicy: fix refcount leak in mpol_set_shared_policy() + - LP: #1068162 + * mempolicy: fix a memory corruption by refcount imbalance in + alloc_pages_vma() + - LP: #1068162 + * r8169: Config1 is read-only on 8168c and later. + - LP: #1068162 + * r8169: 8168c and later require bit 0x20 to be set in Config2 for PME + signaling. + - LP: #1068162 + * hpsa: dial down lockup detection during firmware flash + - LP: #1068162 + * netfilter: nf_ct_ipv4: packets with wrong ihl are invalid + - LP: #1068162 + * netfilter: nf_nat_sip: fix incorrect handling of EBUSY for RTCP + expectation + - LP: #1068162 + * netfilter: nf_nat_sip: fix via header translation with multiple + parameters + - LP: #1068162 + * netfilter: nf_ct_expect: fix possible access to uninitialized timer + - LP: #1068162 + * ipvs: fix oops on NAT reply in br_nf context + - LP: #1068162 + * netfilter: limit, hashlimit: avoid duplicated inline + - LP: #1068162 + * netfilter: xt_limit: have r->cost != 0 case work + - LP: #1068162 + * e1000: fix lockdep splat in shutdown handler + - LP: #1068162 + * xHCI: handle command after aborting the command ring + - LP: #1068162 + * drm/i915: fix swizzle detection for gen3 + - LP: #1068162 + * drm/i915: Mark untiled BLT commands as fenced on gen2/3 + - LP: #1068162 + * drm/i915: clear fencing tracking state when retiring requests + - LP: #1068162 + * Linux 3.2.32 + - LP: #1068162 + * netfilter: ipset: avoid use of kernel-only types + - LP: #1075355 + * samsung-laptop: don't handle backlight if handled by acpi/video + - LP: #1075355 + * samsung-laptop: make the dmi check less strict (part 2) + - LP: #1075355 + * jbd: Fix assertion failure in commit code due to lacking transaction + credits + - LP: #1075355 + * mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver + - LP: #1075355 + * e1000: fix vlan processing regression + - LP: #1075355 + * SUNRPC: Set alloc_slot for backchannel tcp ops + - LP: #1075355 + * drm/i915: don't pwrite tiled objects through the gtt + - LP: #1075355 + * drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13 + - LP: #1075355 + * sparc64: fix ptrace interaction with force_successful_syscall_return() + - LP: #1075355 + * sparc64: Like x86 we should check current->mm during perf backtrace + generation. + - LP: #1075355 + * sparc64: Fix bit twiddling in sparc_pmu_enable_event(). + - LP: #1075355 + * sparc64: do not clobber personality flags in sys_sparc64_personality() + - LP: #1075355 + * sparc64: Be less verbose during vmemmap population. + - LP: #1075355 + * net: Fix skb_under_panic oops in neigh_resolve_output + - LP: #1075355 + * skge: Add DMA mask quirk for Marvell 88E8001 on ASUS P5NSLI motherboard + - LP: #1075355 + * vlan: don't deliver frames for unknown vlans to protocols + - LP: #1075355 + * RDS: fix rds-ping spinlock recursion + - LP: #1075355 + * tcp: resets are misrouted + - LP: #1075355 + * staging: comedi: amplc_pc236: fix invalid register access during detach + - LP: #1075355 + * nfsd4: fix nfs4 stateid leak + - LP: #1075355 + * viafb: don't touch clock state on OLPC XO-1.5 + - LP: #1075355 + * module: taint kernel when lve module is loaded + - LP: #1075355 + * ACPI: EC: Make the GPE storm threshold a module parameter + - LP: #1075355 + * ACPI: EC: Add a quirk for CLEVO M720T/M730T laptop + - LP: #1075355 + * ARM: vfp: fix saving d16-d31 vfp registers on v6+ kernels + - LP: #1075355 + * scsi_debug: Fix off-by-one bug when unmapping region + - LP: #1075355 + * timers: Fix endless looping between cascade() and internal_add_timer() + - LP: #1075355 + * timekeeping: Cast raw_interval to u64 to avoid shift overflow + - LP: #1075355 + * video/udlfb: fix line counting in fb_write + - LP: #1075355 + * tmpfs,ceph,gfs2,isofs,reiserfs,xfs: fix fh_len checking + - LP: #1075355 + * ext4: race-condition protection for + ext4_convert_unwritten_extents_endio + - LP: #1075355 + * ALSA: hda - Fix memory leaks at error path in patch_cirrus.c + - LP: #1075355 + * nohz: Fix idle ticks in cpu summary line of /proc/stat + - LP: #1075355 + * ALSA: hda - do not detect jack on internal speakers for Realtek + - LP: #1075355 + * pktgen: fix crash when generating IPv6 packets + - LP: #1075355 + * md/raid10: use correct limit variable + - LP: #1075355 + * Bluetooth: SMP: Fix setting unknown auth_req bits + - LP: #1075355 + * mips,kgdb: fix recursive page fault with CONFIG_KPROBES + - LP: #1075355 + * xen/bootup: allow read_tscp call for Xen PV guests. + - LP: #1075355 + * xen/bootup: allow {read|write}_cr8 pvops call. + - LP: #1075355 + * pcmcia: sharpsl: don't discard sharpsl_pcmcia_ops + - LP: #1075355 + * oprofile, x86: Fix wrapping bug in op_x86_get_ctrl() + - LP: #1075355 + * drm/radeon: Don't destroy I2C Bus Rec in radeon_ext_tmds_enc_destroy(). + - LP: #1075355 + * mac80211: check if key has TKIP type before updating IV + - LP: #1075355 + * bcma: fix unregistration of cores + - LP: #1075355 + * net/wireless: ipw2200: Fix panic occurring in + ipw_handle_promiscuous_tx() + - LP: #1075355 + * iwlwifi: fix 6000 series channel switch command + - LP: #1075355 + * cgroup: notify_on_release may not be triggered in some cases + - LP: #1075355 + * ALSA: hda - Always check array bounds in alc_get_line_out_pfx + - LP: #1075355 + * NLM: nlm_lookup_file() may return NLMv4-specific error codes + - LP: #1075355 + * SUNRPC: Prevent kernel stack corruption on long values of flush + - LP: #1075355 + * USB: cdc-acm: fix pipe type of write endpoint + - LP: #1075355 + * usb: acm: fix the computation of the number of data bits + - LP: #1075355 + * usb: host: xhci: New system added for Compliance Mode Patch on + SN65LVPE502CP + - LP: #1075355 + * USB: option: blacklist net interface on ZTE devices + - LP: #1075355 + * USB: option: add more ZTE devices + - LP: #1075355 + * s390: fix linker script for 31 bit builds + - LP: #1075355 + * xen/x86: don't corrupt %eip when returning from a signal handler + - LP: #1075355 + * ALSA: hda - add dock support for Thinkpad T430 + - LP: #1075355 + * kernel/sys.c: fix stack memory content leak via UNAME26 + - LP: #1075355 + - CVE-2012-0957 + * ARM: 7559/1: smp: switch away from the idmap before updating + init_mm.mm_count + - LP: #1075355 + * usb hub: send clear_tt_buffer_complete events when canceling TT clear + work + - LP: #1075355 + * cpufreq / powernow-k8: Remove usage of smp_processor_id() in + preemptible code + - LP: #1075355 + * arch/tile: avoid generating .eh_frame information in modules + - LP: #1075355 + * amd64_edac:__amd64_set_scrub_rate(): avoid overindexing scrubrates[] + - LP: #1075355 + * SUNRPC: Clear the connect flag when socket state is TCP_CLOSE_WAIT + - LP: #1075355 + * SUNRPC: Prevent races in xs_abort_connection() + - LP: #1075355 + * SUNRPC: Get rid of the xs_error_report socket callback + - LP: #1075355 + * USB: serial: Fix memory leak in sierra_release() + - LP: #1075355 + * usb-storage: add unusual_devs entry for Casio EX-N1 digital camera + - LP: #1075355 + * Drivers: hv: Cleanup error handling in vmbus_open() + - LP: #1075355 + * sysfs: sysfs_pathname/sysfs_add_one: Use strlcat() instead of strcat() + - LP: #1075355 + * vhost: fix mergeable bufs on BE hosts + - LP: #1075355 + * USB: whiteheat: fix memory leak in error path + - LP: #1075355 + * USB: opticon: fix DMA from stack + - LP: #1075355 + * USB: opticon: fix memory leak in error path + - LP: #1075355 + * USB: mct_u232: fix broken close + - LP: #1075355 + * USB: sierra: fix memory leak in attach error path + - LP: #1075355 + * USB: sierra: fix memory leak in probe error path + - LP: #1075355 + * USB: mos7840: fix urb leak at release + - LP: #1075355 + * USB: mos7840: fix port-device leak in error path + - LP: #1075355 + * USB: mos7840: remove NULL-urb submission + - LP: #1075355 + * USB: mos7840: remove invalid disconnect handling + - LP: #1075355 + * ehci: fix Lucid nohandoff pci quirk to be more generic with BIOS + versions + - LP: #1075355 + * ehci: Add yet-another Lucid nohandoff pci quirk + - LP: #1075355 + * xhci: Fix potential NULL ptr deref in command cancellation. + - LP: #1075355 + * freezer: exec should clear PF_NOFREEZE along with PF_KTHREAD + - LP: #1075355 + * mm: fix XFS oops due to dirty pages without buffers on s390 + - LP: #1075355 + * genalloc: stop crashing the system when destroying a pool + - LP: #1075355 + * drivers/rtc/rtc-imxdi.c: add missing spin lock initialization + - LP: #1075355 + * gen_init_cpio: avoid stack overflow when expanding + - LP: #1075355 + * fs/compat_ioctl.c: VIDEO_SET_SPU_PALETTE missing error check + - LP: #1075355 + * netfilter: nf_conntrack: fix racy timer handling with reliable events + - LP: #1075355 + * tpm: Propagate error from tpm_transmit to fix a timeout hang + - LP: #1075355 + * ALSA: ac97 - Fix missing NULL check in snd_ac97_cvol_new() + - LP: #1075355 + * ALSA: emu10k1: add chip details for E-mu 1010 PCIe card + - LP: #1075355 + * Add CDC-ACM support for the CX93010-2x UCMxx USB Modem + - LP: #1075355 + * Linux 3.2.33 + - LP: #1075355 + * use clamp_t in UNAME26 fix + - CVE-2012-0957 + * net: fix divide by zero in tcp algorithm illinois + - LP: #1077091 + - CVE-2012-4565 + + [ Wen-chien Jesse Sung ] + + * SAUCE: Bluetooth: Add a load_firmware callback to struct hci_dev + - LP: #1065400 + * SAUCE: Bluetooth: Implement broadcom patchram firmware loader + - LP: #1065400 + * SAUCE: Bluetooth: Getting ID from descriptor instead of matched rule + - LP: #1065400 + * SAUCE: Bluetooth: Add support for 13d3:3388 and 13d3:3389 + - LP: #1065400 + + -- Luis Henriques Wed, 14 Nov 2012 15:40:27 +0000 + +linux (3.2.0-33.52) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1067666 + + [ Andy Whitcroft ] + + * [Config] add fs/udf to linux-image to support DVD/CD formats in virtual + instances + - LP: #1066921 + + [ James M Leddy ] + + * SAUCE: input: fix weird issue of synaptics psmouse sync lost after + resume + - LP: #717970 + + [ Paolo Pisati ] + + * [SRU] [Config] enable TIDSPBRIDGE for omap arm[el|hf] flavours + - LP: #1058022 + + [ Sarveshwar Bandi ] + + * SAUCE: bridge: Pull ip header into skb->data before looking into ip + header. + - LP: #1065150 + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon: rework pll selection (v3)" + - LP: #1065047 + * sched: Fix migration thread runtime bogosity + - LP: #1057593 + * Bluetooth: Add support for Sony Vaio T-Series + - LP: #1054307 + * drm/radeon: properly handle mc_stop/mc_resume on evergreen+ (v2) + - LP: #1058303 + * Bluetooth: Use USB_VENDOR_AND_INTERFACE() for Broadcom devices + - LP: #1058303 + * Bluetooth: Add USB_VENDOR_AND_INTERFACE_INFO() for Broadcom/Foxconn + - LP: #1030233, #1058303 + * target: Fix ->data_length re-assignment bug with SCSI overflow + - LP: #1065047 + * ASoC: samsung dma - Don't indicate support for pause/resume. + - LP: #1065047 + * fs/proc: fix potential unregister_sysctl_table hang + - LP: #1065047 + * mm/ia64: fix a memory block size bug + - LP: #1065047 + * nbd: clear waiting_queue on shutdown + - LP: #1065047 + * drivers/rtc/rtc-twl.c: ensure all interrupts are disabled during probe + - LP: #1065047 + * mm/page_alloc: fix the page address of higher page's buddy calculation + - LP: #1065047 + * memory hotplug: fix section info double registration bug + - LP: #1065047 + * cciss: fix handling of protocol error + - LP: #1065047 + * vfs: dcache: use DCACHE_DENTRY_KILLED instead of DCACHE_DISCONNECTED in + d_kill() + - LP: #1065047 + * workqueue: reimplement work_on_cpu() using system_wq + - LP: #1065047 + * cpufreq/powernow-k8: workqueue user shouldn't migrate the kworker to + another CPU + - LP: #1065047 + * sched: Fix ancient race in do_exit() + - LP: #1065047 + * hpwdt: Fix kdump issue in hpwdt + - LP: #1065047 + * rtlwifi: rtl8192ce: Log message that B_CUT device may not work + - LP: #1065047 + * brcmfmac: fix big endian bug in i-scan. + - LP: #1065047 + * brcmfmac: Fix big endian host configuration data. + - LP: #1065047 + * dmaengine: at_hdmac: fix comment in atc_prep_slave_sg() + - LP: #1065047 + * dmaengine: at_hdmac: check that each sg data length is non-null + - LP: #1065047 + * ARM: 7532/1: decompressor: reset SCTLR.TRE for VMSA ARMv7 cores + - LP: #1065047 + * drm/i915: Reduce a pin-leak BUG into a WARN + - LP: #1065047 + * bnx2i: Fixed NULL ptr deference for 1G bnx2 Linux iSCSI offload + - LP: #1065047 + * mpt2sas: Fix for issue - Unable to boot from the drive connected to HBA + - LP: #1065047 + * hwmon: (ads7871) Add 'name' sysfs attribute + - LP: #1065047 + * DMA: PL330: Check the pointer returned by kzalloc + - LP: #1065047 + * hpsa: fix handling of protocol error + - LP: #1065047 + * hwmon: (ad7314) Add 'name' sysfs attribute + - LP: #1065047 + * cifs: fix return value in cifsConvertToUTF16 + - LP: #1065047 + * cfg80211: fix possible circular lock on reg_regdb_search() + - LP: #1065047 + * xen/boot: Disable BIOS SMP MP table search. + - LP: #1065047 + * asix: Support DLink DUB-E100 H/W Ver C1 + - LP: #1065047 + * Input: i8042 - disable mux on Toshiba C850D + - LP: #1065047 + * tracing: Don't call page_to_pfn() if page is NULL + - LP: #1065047 + * can: janz-ican3: fix support for older hardware revisions + - LP: #1065047 + * can: ti_hecc: fix oops during rmmod + - LP: #1065047 + * HID: logitech: fix mask to enable DJ mode + - LP: #1065047 + * HID: logitech: don't use stack based dj_report structures + - LP: #1065047 + * dj: memory scribble in logi_dj + - LP: #1065047 + * HID: Fix logitech-dj: missing Unifying device issue + - LP: #1065047 + * hwmon: (fam15h_power) Tweak runavg_range on resume + - LP: #1065047 + * xen/boot: Disable NUMA for PV guests. + - LP: #1065047 + * gpio-lpc32xx: Fix value handling of gpio_direction_output() + - LP: #1065047 + * sb_edac: Avoid overflow errors at memory size calculation + - LP: #1065047 + * dm: handle requests beyond end of device instead of using BUG_ON + - LP: #1065047 + * dm table: clear add_random unless all devices have it set + - LP: #1065047 + * md/raid10: fix "enough" function for detecting if array is failed. + - LP: #1065047 + * USB: Fix race condition when removing host controllers + - LP: #1065047 + * asus-laptop: HRWS/HWRS typo + - LP: #1065047 + * Bluetooth: Add support for Apple vendor-specific devices + - LP: #1065047 + * net: Statically initialize init_net.dev_base_head + - LP: #1065047 + * Fix a dead loop in async_synchronize_full() + - LP: #1065047 + * Prevent interface errors with Seagate FreeAgent GoFlex + - LP: #1065047 + * mmc: Prevent 1.8V switch for SD hosts that don't support UHS modes. + - LP: #1065047 + * Bluetooth: Change signature of smp_conn_security() + - LP: #1065047 + * Bluetooth: Fix sending a HCI Authorization Request over LE links + - LP: #1065047 + * pch_uart: Add eg20t_port lock field, avoid recursive spinlocks + - LP: #1065047 + * irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU + - LP: #1065047 + * vfs: dcache: fix deadlock in tree traversal + - LP: #1065047 + * usb: gadget: dummy_hcd: fixup error probe path + - LP: #1065047 + * CPU hotplug, cpusets, suspend: Don't modify cpusets during + suspend/resume + - LP: #1065047 + * x86/alternatives: Fix p6 nops on non-modular kernels + - LP: #1065047 + * HID: hidraw: add proper error handling to raw event reporting + - LP: #1065047 + * HID: fix return value of hidraw_report_event() when !CONFIG_HIDRAW + - LP: #1065047 + * HID: hidraw: fix list->buffer memleak + - LP: #1065047 + * HID: hidraw: improve error handling in hidraw_init() + - LP: #1065047 + * HID: hidraw: don't deallocate memory when it is in use + - LP: #1065047 + * PCI: acpiphp: check whether _ADR evaluation succeeded + - LP: #1065047 + * bnx2x: fix rx checksum validation for IPv6 + - LP: #1065047 + * xfrm: Workaround incompatibility of ESN and async crypto + - LP: #1065047 + * xfrm_user: return error pointer instead of NULL + - LP: #1065047 + * xfrm_user: return error pointer instead of NULL #2 + - LP: #1065047 + * xfrm: fix a read lock imbalance in make_blackhole + - LP: #1065047 + * xfrm_user: fix info leak in copy_to_user_auth() + - LP: #1065047 + * xfrm_user: fix info leak in copy_to_user_state() + - LP: #1065047 + * xfrm_user: fix info leak in copy_to_user_policy() + - LP: #1065047 + * xfrm_user: fix info leak in copy_to_user_tmpl() + - LP: #1065047 + * xfrm_user: don't copy esn replay window twice for new states + - LP: #1065047 + * xfrm_user: ensure user supplied esn replay window is valid + - LP: #1065047 + * net: ethernet: davinci_cpdma: decrease the desc count when cleaning up + the remaining packets + - LP: #1065047 + * ixp4xx_hss: fix build failure due to missing linux/module.h inclusion + - LP: #1065047 + * netxen: check for root bus in netxen_mask_aer_correctable + - LP: #1065047 + * net-sched: sch_cbq: avoid infinite loop + - LP: #1065047 + * pkt_sched: fix virtual-start-time update in QFQ + - LP: #1065047 + * sierra_net: Endianess bug fix. + - LP: #1065047 + * 8021q: fix mac_len recomputation in vlan_untag() + - LP: #1065047 + * ipv6: release reference of ip6_null_entry's dst entry in __ip6_del_rt + - LP: #1065047 + * tcp: flush DMA queue before sk_wait_data if rcv_wnd is zero + - LP: #1065047 + * sctp: Don't charge for data in sndbuf again when transmitting packet + - LP: #1065047 + * pppoe: drop PPPOX_ZOMBIEs in pppoe_release + - LP: #1065047 + * net: small bug on rxhash calculation + - LP: #1065047 + * net: guard tcp_set_keepalive() to tcp sockets + - LP: #1065047 + * ipv4: raw: fix icmp_filter() + - LP: #1065047 + * ipv6: raw: fix icmpv6_filter() + - LP: #1065047 + * ipv6: mip6: fix mip6_mh_filter() + - LP: #1065047 + * l2tp: fix a typo in l2tp_eth_dev_recv() + - LP: #1065047 + * netrom: copy_datagram_iovec can fail + - LP: #1065047 + * net: do not disable sg for packets requiring no checksum + - LP: #1065047 + * aoe: assert AoE packets marked as requiring no checksum + - LP: #1065047 + * Bluetooth: Support AR3011 in Acer Iconia Tab W500 + - LP: #1065047 + * Bluetooth: add support for atheros 0930:0219 + - LP: #1065047 + * Bluetooth: add support for atheros 0489:e057 + - LP: #1065047 + * Linux 3.2.31 + - LP: #1065047 + * ixgbe: Add module parameter to allow untested and unsafe SFP+ modules + - LP: #1065475 + * au0828: fix case where STREAMOFF being called on stopped stream causes + BUG() + - LP: #1062917 + * drm/i915: Remove too early plane enable on pre-PCH hardware + - LP: #949130 + + [ Wen-chien Jesse Sung ] + + * SAUCE: HID: ntrig: change default value of logical/physical + width/height to 1 + - LP: #1044248 + + -- Luis Henriques Wed, 17 Oct 2012 10:26:19 +0100 + +linux (3.2.0-32.51) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1056036 + + [ Keng-Yu Lin ] + + * SAUCE: Intel xhci: Only switch the switchable ports + - LP: #1034814 + + [ Kyle Fazzari ] + + * SAUCE: input: Cypress PS/2 Trackpad fix disabling tap-to-click + - LP: #1048816 + + [ Seth Forshee ] + + * SAUCE: Input: synaptics - Adjust threshold for treating position values + as negative + - LP: #1046512 + + [ Stefan Bader ] + + * Revert "SAUCE: Force xsave off on older Xen hypervisors" + - LP: #1044550 + + [ Upstream Kernel Changes ] + + * Revert "HID: wiimote: fix invalid power_supply_powers call" + - LP: #1048605 + * Revert "drm/radeon: fix bo creation retry path" + - LP: #1049899 + * HID: wiimote: fix invalid power_supply_powers call + - LP: #1048605 + * HID: add ASUS AIO keyboard model AK1D + - LP: #1027789, #1049899 + * nfs: tear down caches in nfs_init_writepagecache when allocation fails + - LP: #1049899 + * NFS: Use kcalloc() when allocating arrays + - LP: #1049899 + * NFSv4.1 fix page number calculation bug for filelayout decode buffers + - LP: #1049899 + * fix page number calculation bug for block layout decode buffer + - LP: #1049899 + * pnfs: defer release of pages in layoutget + - LP: #1049899 + * ext4: avoid kmemcheck complaint from reading uninitialized memory + - LP: #1049899 + * fuse: verify all ioctl retry iov elements + - LP: #1049899 + * Bluetooth: Fix legacy pairing with some devices + - LP: #1049899 + * xhci: Increase reset timeout for Renesas 720201 host. + - LP: #1049899 + * xhci: Add Etron XHCI_TRUST_TX_LENGTH quirk. + - LP: #1049899 + * USB: ftdi_sio: Add VID/PID for Kondo Serial USB + - LP: #1049899 + * USB: option: Add Vodafone/Huawei K5005 support + - LP: #1049899 + * USB: add USB_VENDOR_AND_INTERFACE_INFO() macro + - LP: #1049899 + * USB: support the new interfaces of Huawei Data Card devices in option + driver + - LP: #1049899 + * usb: serial: mos7840: Fixup mos7840_chars_in_buffer() + - LP: #1049899 + * usb: gadget: u_ether: fix kworker 100% CPU issue with still used + interfaces in eth_stop + - LP: #1049899 + * ARM: 7483/1: vfp: only advertise VFPv4 in hwcaps if CONFIG_VFPv3 is + enabled + - LP: #1049899 + * ARM: 7488/1: mm: use 5 bits for swapfile type encoding + - LP: #1049899 + * ARM: 7489/1: errata: fix workaround for erratum #720789 on UP systems + - LP: #1049899 + * drm/i915: ignore eDP bpc settings from vbt + - LP: #1049899 + * ALSA: hda - fix Copyright debug message + - LP: #1049899 + * sched: fix divide by zero at {thread_group,task}_times + - LP: #1049899 + * ath9k: fix decrypt_error initialization in ath_rx_tasklet() + - LP: #1049899 + * drm/nvd0/disp: mask off high 16 bit of negative cursor x-coordinate + - LP: #1049899 + * drm/i915: reorder edp disabling to fix ivb MacBook Air + - LP: #1049899 + * audit: don't free_chunk() after fsnotify_add_mark() + - LP: #1049899 + * audit: fix refcounting in audit-tree + - LP: #1049899 + * vfs: canonicalize create mode in build_open_flags() + - LP: #1049899 + * PCI: EHCI: Fix crash during hibernation on ASUS computers + - LP: #1049899 + * IB/srp: Fix a race condition + - LP: #1049899 + * dccp: check ccid before dereferencing + - LP: #1049899 + * md: Don't truncate size at 4TB for RAID0 and Linear + - LP: #1049899 + * NFS: Alias the nfs module to nfs4 + - LP: #1049899 + * target: fix NULL pointer dereference bug alloc_page() fails to get + memory + - LP: #1049899 + * ext4: fix long mount times on very big file systems + - LP: #1049899 + * PM / Runtime: Fix rpm_resume() return value for power.no_callbacks set + - LP: #1049899 + * PM / Runtime: Clear power.deferred_resume on success in rpm_suspend() + - LP: #1049899 + * ASoC: wm9712: Fix microphone source selection + - LP: #1049899 + * USB: smsusb: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: spca506: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: p54usb: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: rtl8187: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: vt6656: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: winbond: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: emi62: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: CDC ACM: Fix NULL pointer dereference + - LP: #1049899 + * alpha: Don't export SOCK_NONBLOCK to user space. + - LP: #1049899 + * Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts + - LP: #1049899 + * ALSA: hda - don't create dysfunctional mixer controls for ca0132 + - LP: #1038651, #1049899 + * netconsole: remove a redundant netconsole_target_put() + - LP: #1049899 + * drm/radeon/kms: upstream atombios.h updates + - LP: #1049899 + * drm/radeon/kms: extend the Fujitsu D3003-S2 board connector quirk to + cover later silicon stepping + - LP: #1049899 + * drm/radeon: implement ACPI VFCT vbios fetch (v3) + - LP: #1049899 + * ACPI: export symbol acpi_get_table_with_size + - LP: #1049899 + * drm/radeon: convert radeon vfct code to use acpi_get_table_with_size + - LP: #1049899 + * drm/radeon: fix invalid memory access in radeon_atrm_get_bios() + - LP: #1049899 + * drm/radeon: finish getting bios earlier + - LP: #1049899 + * drm/radeon: fix use after free in ATRM bios reading code. + - LP: #1049899 + * drm/radeon: split ATRM support out from the ATPX handler (v3) + - LP: #1049899 + * NFSv3: Ensure that do_proc_get_root() reports errors correctly + - LP: #1049899 + * vfs: missed source of ->f_pos races + - LP: #1049899 + * svcrpc: fix BUG() in svc_tcp_clear_pages + - LP: #1049899 + * svcrpc: sends on closed socket should stop immediately + - LP: #1049899 + * svcrpc: fix svc_xprt_enqueue/svc_recv busy-looping + - LP: #1049899 + * fbcon: fix race condition between console lock and cursor timer (v1.1) + - LP: #1049899 + * cciss: fix incorrect scsi status reporting + - LP: #1049899 + * mm: hugetlbfs: correctly populate shared pmd + - LP: #1049899 + * drivers/misc/sgi-xp/xpc_uv.c: SGI XPC fails to load when cpu 0 is out + of IRQ resources + - LP: #1049899 + * drivers/rtc/rtc-rs5c348.c: fix hour decoding in 12-hour mode + - LP: #1049899 + * rapidio/tsi721: fix inbound doorbell interrupt handling + - LP: #1049899 + * rapidio/tsi721: fix unused variable compiler warning + - LP: #1049899 + * fs/buffer.c: remove BUG() in possible but rare condition + - LP: #1049899 + * block: replace __getblk_slow misfix by grow_dev_page fix + - LP: #1049899 + * Bluetooth: Fix using uninitialized option in RFCMode + - LP: #1049899 + * drivers/char/random.c: fix boot id uniqueness race + - LP: #1049899 + * MAINTAINERS: Theodore Ts'o is taking over the random driver + - LP: #1049899 + * random: Add comment to random_initialize() + - LP: #1049899 + * dmi: Feed DMI table to /dev/random driver + - LP: #1049899 + * virtio_blk: fix config handler race + - LP: #1049899 + * virtio_blk: Drop unused request tracking list + - LP: #1049899 + * virtio-blk: Fix hot-unplug race in remove method + - LP: #1049899 + * virtio-blk: Call del_gendisk() before disable guest kick + - LP: #1049899 + * virtio-blk: Reset device after blk_cleanup_queue() + - LP: #1049899 + * HID: add support for Cypress barcode scanner 04B4:ED81 + - LP: #1049899 + * pmac_zilog,kdb: Fix console poll hook to return instead of loop + - LP: #1049899 + * Staging: speakup: fix an improperly-declared variable. + - LP: #1049899 + * NFS: Fix Oopses in nfs_lookup_revalidate and nfs4_lookup_revalidate + - LP: #1049899 + * Squashfs: fix mount time sanity check for corrupted superblock + - LP: #1049899 + * mm: avoid swapping out with swappiness==0 + - LP: #1049899 + * Linux 3.2.29 + - LP: #1049899 + * Input: elantech - add support for elantech fast command + - LP: #1033568 + * Input: elantech - add resolution query support for v4 hardware + - LP: #1033568 + * Input: elantech - v4 is a clickpad, with only one button + - LP: #1033568 + * eCryptfs: Copy up attributes of the lower target inode after rename + - LP: #561129 + * eCryptfs: Write out all dirty pages just before releasing the lower + file + - LP: #1047261 + * eCryptfs: Call lower ->flush() from ecryptfs_flush() + - LP: #1047261 + * af_netlink: force credentials passing [CVE-2012-3520] + - LP: #1052097 + - CVE-2012-3520 + * Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts + - LP: #1053039 + * ARM: S3C24XX: Fix s3c2410_dma_enqueue parameters + - LP: #1053039 + * ARM: OMAP2+: Fix dmtimer set source clock failure + - LP: #1053039 + * ARM: Orion: Set eth packet size csum offload limit + - LP: #1053039 + * iwlwifi: fix flow handler debug code + - LP: #1053039 + * iwlwifi: protect SRAM debugfs + - LP: #1053039 + * Input: i8042 - add Gigabyte T1005 series netbooks to noloop table + - LP: #1053039 + * mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth + command line option to a very small value + - LP: #1053039 + * megaraid_sas: Move poll_aen_lock initializer + - LP: #1053039 + * Fix 'Device not ready' issue on mpt2sas + - LP: #1053039 + * hwmon: (asus_atk0110) Add quirk for Asus M5A78L + - LP: #1053039 + * drm/i915: Fix assert_pch_hdmi_disabled to mention HDMI (not DP) + - LP: #1053039 + * drm/i915: fix wrong order of parameters in port checking functions + - LP: #1053039 + * OMAPFB: fix framebuffer console colors + - LP: #1053039 + * ARM: imx6: spin the cpu until hardware takes it down + - LP: #1053039 + * ARM: dts: imx51-babbage: fix esdhc cd/wp properties + - LP: #1053039 + * xen/setup: Fix one-off error when adding for-balloon PFNs to the P2M. + - LP: #1053039 + * ARM: imx: select CPU_FREQ_TABLE when needed + - LP: #1053039 + * drm: remove some potentially dangerous DRM_ERRORs + - LP: #1053039 + * drm: Check for invalid cursor flags + - LP: #1053039 + * HID: multitouch: support PixArt optical touch screen + - LP: #1053039 + * HID: add NOGET quirk for Eaton Ellipse MAX UPS + - LP: #1053039 + * drm/radeon: don't disable plls that are in use by other crtcs + - LP: #1053039 + * drm/radeon/atom: rework DIG modesetting on DCE3+ + - LP: #1053039 + * drm/radeon: force dma32 to fix regression rs4xx,rs6xx,rs740 + - LP: #1053039 + * drm/edid/quirks: ViewSonic VA2026w + - LP: #1053039 + * drm: Add EDID_QUIRK_FORCE_REDUCED_BLANKING for ASUS VW222S + - LP: #1053039 + * e1000e: DoS while TSO enabled caused by link partner with small MSS + - LP: #1053039 + * ext3: Fix fdatasync() for files with only i_size changes + - LP: #1053039 + * UBI: fix a horrible memory deallocation bug + - LP: #1053039 + * fuse: fix retrieve length + - LP: #1053039 + * mmc: mxs-mmc: fix deadlock in SDIO IRQ case + - LP: #1053039 + * mmc: mxs-mmc: fix deadlock caused by recursion loop + - LP: #1053039 + * mmc: sdhci-esdhc: break out early if clock is 0 + - LP: #1053039 + * mmc: card: Skip secure erase on MoviNAND; causes unrecoverable + corruption. + - LP: #1053039 + * powerpc: Update DSCR on all CPUs when writing sysfs dscr_default + - LP: #1053039 + * powerpc: Keep thread.dscr and thread.dscr_inherit in sync + - LP: #1053039 + * powerpc: Fix DSCR inheritance in copy_thread() + - LP: #1053039 + * powerpc: Restore correct DSCR in context switch + - LP: #1053039 + * powerpc/xics: Harden xics hypervisor backend + - LP: #1053039 + * powerpc: Make sure IPI handlers see data written by IPI senders + - LP: #1053039 + * udf: Fix data corruption for files in ICB + - LP: #1053039 + * xen: Use correct masking in xen_swiotlb_alloc_coherent. + - LP: #1053039 + * Remove user-triggerable BUG from mpol_to_str + - LP: #1053039 + * CIFS: Fix error handling in cifs_push_mandatory_locks + - LP: #1053039 + * i2c-designware: Fix build error if CONFIG_I2C_DESIGNWARE_PLATFORM=y && + CONFIG_I2C_DESIGNWARE_PCI=y + - LP: #1053039 + * net_sched: gact: Fix potential panic in tcf_gact(). + - LP: #1053039 + * isdnloop: fix and simplify isdnloop_init() + - LP: #1053039 + * pptp: lookup route with the proper net namespace + - LP: #1053039 + * net/core: Fix potential memory leak in dev_set_alias() + - LP: #1053039 + * af_packet: remove BUG statement in tpacket_destruct_skb + - LP: #1053039 + * ipv6: addrconf: Avoid calling netdevice notifiers with RCU read-side + lock + - LP: #1053039 + * atm: fix info leak in getsockopt(SO_ATMPVC) + - LP: #1053039 + * atm: fix info leak via getsockname() + - LP: #1053039 + * Bluetooth: HCI - Fix info leak in getsockopt(HCI_FILTER) + - LP: #1053039 + * Bluetooth: HCI - Fix info leak via getsockname() + - LP: #1053039 + * Bluetooth: RFCOMM - Fix info leak in getsockopt(BT_SECURITY) + - LP: #1053039 + * Bluetooth: RFCOMM - Fix info leak in ioctl(RFCOMMGETDEVLIST) + - LP: #1053039 + * Bluetooth: RFCOMM - Fix info leak via getsockname() + - LP: #1053039 + * Bluetooth: L2CAP - Fix info leak via getsockname() + - LP: #1053039 + * llc: fix info leak via getsockname() + - LP: #1053039 + * dccp: fix info leak via getsockopt(DCCP_SOCKOPT_CCID_TX_INFO) + - LP: #1053039 + * ipvs: fix info leak in getsockopt(IP_VS_SO_GET_TIMEOUT) + - LP: #1053039 + * net: fix info leak in compat dev_ifconf() + - LP: #1053039 + * af_packet: don't emit packet on orig fanout group + - LP: #1053039 + * netlink: fix possible spoofing from non-root processes + - LP: #1053039 + * gianfar: fix default tx vlan offload feature flag + - LP: #1053039 + * l2tp: avoid to use synchronize_rcu in tunnel free function + - LP: #1053039 + * net: ipv4: ipmr_expire_timer causes crash when removing net namespace + - LP: #1053039 + * bnx2x: fix 57840_MF pci id + - LP: #1053039 + * workqueue: UNBOUND -> REBIND morphing in rebind_workers() should be + atomic + - LP: #1053039 + * fixing dmi match for hp t5745 and hp st5747 thin client + - LP: #1053039 + * time: Improve sanity checking of timekeeping inputs + - LP: #1053039 + * time: Avoid making adjustments if we haven't accumulated anything + - LP: #1053039 + * time: Move ktime_t overflow checking into timespec_valid_strict + - LP: #1053039 + * drm/i915: Wait for all pending operations to the fb before disabling + the pipe + - LP: #1053039 + * xhci: Fix bug after deq ptr set to link TRB. + - LP: #1053039 + * ARM: 7487/1: mm: avoid setting nG bit for user mappings that aren't + present + - LP: #1053039 + * i2c-i801: Add Device IDs for Intel Lynx Point-LP PCH + - LP: #1053039 + * USB: option: add ZTE K5006-Z + - LP: #1053039 + * USB: option: replace ZTE K5006-Z entry with vendor class rule + - LP: #1053039 + * ARM: 7496/1: hw_breakpoint: don't rely on dfsr to show watchpoint + access type + - LP: #1053039 + * drm/i915: SDVO hotplug have different interrupt status bits for + i915/i965/g4x + - LP: #1053039 + * drm/i915: only enable sdvo hotplug irq if needed + - LP: #1053039 + * can: mcp251x: avoid repeated frame bug + - LP: #1053039 + * perf_event: Switch to internal refcount, fix race with close() + - LP: #1053039 + * NFS: Fix the initialisation of the readdir 'cookieverf' array + - LP: #1053039 + * NFS: Fix a problem with the legacy binary mount code + - LP: #1053039 + * staging: comedi: das08: Correct AI encoding for das08jr-16-ao + - LP: #1053039 + * staging: comedi: das08: Correct AO output for das08jr-16-ao + - LP: #1053039 + * staging: vt6656: [BUG] - Failed connection, incorrect endian. + - LP: #1053039 + * xhci: Recognize USB 3.0 devices as superspeed at powerup + - LP: #1000424, #1053039 + * rt2x00: Identify ASUS USB-N53 device. + - LP: #1053039 + * rt2x00: Fix word size of rt2500usb MAC_CSR19 register. + - LP: #1053039 + * rt2x00: Fix rfkill polling prior to interface start. + - LP: #1053039 + * rt2800usb: Added rx packet length validity check + - LP: #1053039 + * staging: zcache: fix cleancache race condition with shrinker + - LP: #1053039 + * xhci: Switch PPT ports to EHCI on shutdown. + - LP: #1053039 + * xhci: Fix a logical vs bitwise AND bug + - LP: #1053039 + * xhci: Make handover code more robust + - LP: #1053039 + * usb: host: xhci: Fix Compliance Mode on SN65LVPE502CP Hardware + - LP: #1053039 + * usb: host: xhci: fix compilation error for non-PCI based stacks + - LP: #1053039 + * tty: serial: imx: console write routing is unsafe on SMP + - LP: #1053039 + * tty: serial: imx: don't reinit clock in imx_setup_ufcr() + - LP: #1053039 + * ibmveth: Fix alignment of rx queue bug + - LP: #1053039 + * USB: ftdi-sio: add support for more Physik Instrumente devices + - LP: #1053039 + * USB: ftdi_sio: PID for NZR SEM 16+ USB + - LP: #1053039 + * USB: add device quirk for Joss Optical touchboard + - LP: #1053039 + * kobject: fix oops with "input0: bad kobj_uevent_env content in + show_uevent()" + - LP: #1053039 + * NFS: return error from decode_getfh in decode open + - LP: #1053039 + * SUNRPC: Fix a UDP transport regression + - LP: #1053039 + * ARM: 7513/1: Make sure dtc is built before running it + - LP: #1053039 + * ARM: 7526/1: traps: send SIGILL if get_user fails on undef handling + path + - LP: #1053039 + * ALSA: hda - Fix Oops at codec reset/reconfig + - LP: #1053039 + * USB: ftdi_sio: do not claim CDC ACM function + - LP: #1053039 + * staging: r8712u: fix bug in r8712_recv_indicatepkt() + - LP: #1053039 + * EHCI: Update qTD next pointer in QH overlay region during unlink + - LP: #1053039 + * hwmon: (twl4030-madc-hwmon) Initialize uninitialized structure elements + - LP: #1053039 + * ALSA: ice1724: Use linear scale for AK4396 volume control. + - LP: #1053039 + * vmwgfx: add dumb ioctl support + - LP: #1053039 + * ahci: Add alternate identifier for the 88SE9172 + - LP: #1053039 + * drm/radeon: fix up pll selection on DCE5/6 + - LP: #1053039 + * drm/radeon: fix ordering in pll picking on dce4+ + - LP: #1053039 + * drm/radeon: rework pll selection (v3) + - LP: #1053039 + * drm/nouveau: fix booting with plymouth + dumb support + - LP: #1053039 + * VFS: make vfs_fstat() use f[get|put]_light() + - LP: #1053039 + * vfs: make O_PATH file descriptors usable for 'fstat()' + - LP: #1053039 + * Linux 3.2.30 + - LP: #1053039 + * drm/i915: HDMI - Clear Audio Enable bit for Hot Plug + - LP: #1056729 + * UBUNTU SAUCE: apparmor: fix IRQ stack overflow + - LP: #1056078 + + [ Wen-chien Jesse Sung ] + + * SAUCE: drm/i915: Explicitly disable RC6 for certain models + - LP: #1002170, #1008867 + + -- Luis Henriques Wed, 26 Sep 2012 17:26:35 +0100 + +linux (3.2.0-31.50) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1047242 + + [ Dave Airlie ] + + * SAUCE: drm/vmwgfx: add MODULE_DEVICE_TABLE so vmwgfx loads at boot + - LP: #1039157 + + [ Kamal Mostafa ] + + * SAUCE: input: Cypress PS/2 Trackpad move PSMOUSE_CYPRESS enum + - LP: #1041594 + + -- Luis Henriques Fri, 07 Sep 2012 16:36:58 +0100 + +linux (3.2.0-31.49) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1046216 + + [ Cypress Semiconductor Corporation ] + + * SAUCE: input: Cypress PS/2 Trackpad mouse driver + - LP: #978807 + * SAUCE: input: Cypress PS/2 Trackpad link driver into psmouse-base + - LP: #978807 + + [ Ike Panhc ] + + * [Config] Enable CONFIG_DEVPTS_MULTIPLE_INSTANCES for highbank + - LP: #1038259 + + [ Kamal Mostafa ] + + * SAUCE: input: Cypress PS/2 Trackpad code style cleanup + - LP: #978807 + * SAUCE: input: Cypress PS/2 Trackpad eliminate dead code + - LP: #978807 + * SAUCE: input: Cypress PS/2 Trackpad fix no-config stubs + - LP: #978807 + * SAUCE: input: Cypress PS/2 Trackpad set default debug_level=0 + - LP: #978807 + + [ Stefan Bader ] + + * Revert "SAUCE: fix pv-ops for legacy Xen" + - LP: #1044550 + * SAUCE: Force xsave off on older Xen hypervisors + - LP: #1044550 + + [ Tim Gardner ] + + * [Config] Add smsc{79}5xx to nic-usb-modules + - LP: #1041397 + + [ Upstream Kernel Changes ] + + * Revert "samsung-laptop: make the dmi check less strict" + - LP: #1028151 + * rds: set correct msg_namelen + - LP: #1031112 + - CVE-2012-3430 + * bnx2: Fix bug in bnx2_free_tx_skbs(). + - LP: #1039087 + * sch_sfb: Fix missing NULL check + - LP: #1039087 + * sctp: Fix list corruption resulting from freeing an association on a + list + - LP: #1039087 + * caif: Fix access to freed pernet memory + - LP: #1039087 + * cipso: don't follow a NULL pointer when setsockopt() is called + - LP: #1039087 + * caif: fix NULL pointer check + - LP: #1039087 + * wanmain: comparing array with NULL + - LP: #1039087 + * tcp: Add TCP_USER_TIMEOUT negative value check + - LP: #1039087 + * USB: kaweth.c: use GFP_ATOMIC under spin_lock + - LP: #1039087 + * net: fix rtnetlink IFF_PROMISC and IFF_ALLMULTI handling + - LP: #1039087 + * tcp: perform DMA to userspace only if there is a task waiting for it + - LP: #1039087 + * net/tun: fix ioctl() based info leaks + - LP: #1039087 + * e1000: add dropped DMA receive enable back in for WoL + - LP: #1039087 + * rtlwifi: rtl8192cu: Change buffer allocation for synchronous reads + - LP: #1039087 + * hfsplus: fix overflow in sector calculations in hfsplus_submit_bio + - LP: #1039087 + * drm/i915: fixup seqno allocation logic for lazy_request + - LP: #1039087 + * mac80211: cancel mesh path timer + - LP: #1039087 + * ath9k: Add PID/VID support for AR1111 + - LP: #1039087 + * ARM: mxs: Remove MMAP_MIN_ADDR setting from mxs_defconfig + - LP: #1039087 + * ALSA: hda - add dock support for Thinkpad T430s + - LP: #1039087 + * cfg80211: process pending events when unregistering net device + - LP: #1039087 + * rt61pci: fix NULL pointer dereference in config_lna_gain + - LP: #1039087 + * iwlwifi: disable greenfield transmissions as a workaround + - LP: #1039087 + * ALSA: hda - add dock support for Thinkpad X230 + - LP: #1039087 + * e1000e: NIC goes up and immediately goes down + - LP: #1039087 + * ALSA: hda - remove quirk for Dell Vostro 1015 + - LP: #1039087 + * ALSA: hda - Fix double quirk for Quanta FL1 / Lenovo Ideapad + - LP: #1039087 + * ARM: pxa: remove irq_to_gpio from ezx-pcap driver + - LP: #1039087 + * Input: eeti_ts: pass gpio value instead of IRQ + - LP: #1039087 + * drm/i915: Add wait_for in init_ring_common + - LP: #1039087 + * drm/i915: correctly order the ring init sequence + - LP: #1039087 + * s390/compat: fix compat wrappers for process_vm system calls + - LP: #1039087 + * s390/compat: fix mmap compat system calls + - LP: #1039087 + * drm/radeon: fix bank tiling parameters on evergreen + - LP: #1039087 + * drm/radeon: fix bank tiling parameters on cayman + - LP: #1039087 + * drm/radeon: do not reenable crtc after moving vram start address + - LP: #1039087 + * Linux 3.2.28 + - LP: #1039087 + * be2net: reduce gso_max_size setting to account for ethernet header. + - LP: #1035348 + * be2net: Fix to trim skb for padded vlan packets to workaround an ASIC + Bug + - LP: #1035348 + * be2net: Fix Endian + - LP: #1035348 + * be2net: dont pull too much data in skb linear part + - LP: #1035348 + * be2net: Fix to parse RSS hash from Receive completions correctly. + - LP: #1035348 + * net: Allow driver to limit number of GSO segments per skb + - LP: #1037456 + - CVE-2012-3412 + * tcp: do not scale TSO segment size with reordering degree + - LP: #1037456 + - CVE-2012-3412 + * tcp: Apply device TSO segment limit earlier + - LP: #1037456 + - CVE-2012-3412 + * sfc: Replace some literal constants with EFX_PAGE_SIZE/EFX_BUF_SIZE + - LP: #1037456 + - CVE-2012-3412 + * sfc: Fix maximum number of TSO segments and minimum TX queue size + - LP: #1037456 + - CVE-2012-3412 + * fixing dmi match for hp t5745 and hp st5747 thin client + - LP: #995998 + * drm/i915: Add support for resetting the SO write pointers on gen7. + - LP: #1037293 + * mei: add mei_quirk_probe function + - LP: #1041164 + * asus-nb-wmi: add some video toggle keys + - LP: #1022427 + * iwlwifi: trace debug messages + - LP: #1035889 + + -- Luis Henriques Wed, 05 Sep 2012 09:56:50 +0100 + +linux (3.2.0-30.48) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1041217 + + [ Upstream Kernel Changes ] + + * mutex: Place lock in contended state after fastpath_lock failure + - LP: #1041114 + + -- Luis Henriques Fri, 24 Aug 2012 14:14:43 +0100 + +linux (3.2.0-30.47) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1036581 + + [ Andy Whitcroft ] + + * add support for generating binary device trees and install them in + /lib/firmware + - LP: #1030600 + * [Config] add dtb_file configuration for highbank + - LP: #1030600 + + [ Chris Van Hoof ] + + * SAUCE: dell-laptop: additional rfkill blacklist Dell XPS 13 + - LP: #1030957 + * [Config] Add cifs support to the nfs-modules list + - LP: #1031398 + + [ Daniel P. Berrange ] + + * SAUCE: (drop after 3.6) Forbid invocation of kexec_load() outside + initial PID namespace + - LP: #1034125 + + [ Dann Frazier ] + + * [Config] Compile the rtc-pl031 driver builtin on the highbank kernel + flavour + - LP: #1035110 + + [ Douglas Bagnall ] + + * SAUCE: Unlock the rc_dev lock when the raw device is missing + - LP: #1015836 + + [ Rob Herring ] + + * SAUCE: ARM: highbank: add soft power and reset key event handling + - LP: #1033853 + * SAUCE: ARM: highbank: use writel_relaxed variant for pwr requests + - LP: #1033853 + * SAUCE: ahci: un-staticize ahci_dev_classify + - LP: #1033853 + * SAUCE: ahci_platform: add custom hard reset for Calxeda ahci ctrlr + - LP: #1033853 + + [ Stefan Bader ] + + * (pre-stable) KVM: VMX: Set CPU_BASED_RDPMC_EXITING for nested + - LP: #1031090 + + [ Tim Gardner ] + + * [Config] updateconfigs + + [ Upstream Kernel Changes ] + + * ideapad: generate valid key event only + - LP: #1029834 + * mm: reduce the amount of work done when updating min_free_kbytes + - LP: #1032640 + * mm: compaction: allow compaction to isolate dirty pages + - LP: #1032640 + * mm: compaction: determine if dirty pages can be migrated without + blocking within ->migratepage + - LP: #1032640 + * mm: page allocator: do not call direct reclaim for THP allocations + while compaction is deferred + - LP: #1032640 + * mm: compaction: make isolate_lru_page() filter-aware again + - LP: #1032640 + * mm: compaction: introduce sync-light migration for use by compaction + - LP: #1032640 + * mm: vmscan: when reclaiming for compaction, ensure there are sufficient + free pages available + - LP: #1032640 + * mm: vmscan: do not OOM if aborting reclaim to start compaction + - LP: #1032640 + * mm: vmscan: check if reclaim should really abort even if + compaction_ready() is true for one zone + - LP: #1032640 + * vmscan: promote shared file mapped pages + - LP: #1032640 + * vmscan: activate executable pages after first usage + - LP: #1032640 + * mm/vmscan.c: consider swap space when deciding whether to continue + reclaim + - LP: #1032640 + * mm: test PageSwapBacked in lumpy reclaim + - LP: #1032640 + * mm: vmscan: convert global reclaim to per-memcg LRU lists + - LP: #1032640 + * cpuset: mm: reduce large amounts of memory barrier related damage v3 + - LP: #1032640 + * mm/hugetlb: fix warning in alloc_huge_page/dequeue_huge_page_vma + - LP: #1032640 + * Fix NULL dereferences in scsi_cmd_to_driver + - LP: #1032640 + * sched/nohz: Fix rq->cpu_load[] calculations + - LP: #1032640 + * sched/nohz: Fix rq->cpu_load calculations some more + - LP: #1032640 + * powerpc/ftrace: Fix assembly trampoline register usage + - LP: #1032640 + * cx25821: Remove bad strcpy to read-only char* + - LP: #1032640 + * x86: Fix boot on Twinhead H12Y + - LP: #1032640 + * r8169: RxConfig hack for the 8168evl. + - LP: #1032640 + * cifs: when CONFIG_HIGHMEM is set, serialize the read/write kmaps + - LP: #1032640 + * wireless: rt2x00: rt2800usb add more devices ids + - LP: #1032640 + * wireless: rt2x00: rt2800usb more devices were identified + - LP: #1032640 + * rt2800usb: 2001:3c17 is an RT3370 device + - LP: #1032640 + * usb: gadget: Fix g_ether interface link status + - LP: #1032640 + * ext4: pass a char * to ext4_count_free() instead of a buffer_head ptr + - LP: #1032640 + * ftrace: Disable function tracing during suspend/resume and hibernation, + again + - LP: #1032640 + * x86, microcode: microcode_core.c simple_strtoul cleanup + - LP: #1032640 + * x86, microcode: Sanitize per-cpu microcode reloading interface + - LP: #1032640 + * usbdevfs: Correct amount of data copied to user in processcompl_compat + - LP: #1032640 + * ext4: fix overhead calculation used by ext4_statfs() + - LP: #1032640 + * udf: Improve table length check to avoid possible overflow + - LP: #1032640 + * powerpc: Add "memory" attribute for mfmsr() + - LP: #1032640 + * mwifiex: correction in mcs index check + - LP: #1032640 + * USB: option: Ignore ZTE (Vodafone) K3570/71 net interfaces + - LP: #1032640 + * USB: option: add ZTE MF821D + - LP: #1032640 + * target: Add generation of LOGICAL BLOCK ADDRESS OUT OF RANGE + - LP: #1032640 + * target: Add range checking to UNMAP emulation + - LP: #1032640 + * target: Fix reading of data length fields for UNMAP commands + - LP: #1032640 + * target: Fix possible integer underflow in UNMAP emulation + - LP: #1032640 + * target: Check number of unmap descriptors against our limit + - LP: #1032640 + * s390/idle: fix sequence handling vs cpu hotplug + - LP: #1032640 + * rtlwifi: rtl8192de: Fix phy-based version calculation + - LP: #1032640 + * workqueue: perform cpu down operations from low priority cpu_notifier() + - LP: #1032640 + * ALSA: hda - Add support for Realtek ALC282 + - LP: #1025377, #1032640 + * iommu/amd: Fix hotplug with iommu=pt + - LP: #1032640 + * drm/radeon: Try harder to avoid HW cursor ending on a multiple of 128 + columns. + - LP: #1032640 + * ALSA: hda - Turn on PIN_OUT from hdmi playback prepare. + - LP: #1032640 + * block: add blk_queue_dead() + - LP: #1032640 + * Fix device removal NULL pointer dereference + - LP: #1032640 + * Avoid dangling pointer in scsi_requeue_command() + - LP: #1032640 + * fix hot unplug vs async scan race + - LP: #1032640 + * fix eh wakeup (scsi_schedule_eh vs scsi_restart_operations) + - LP: #1032640 + * libsas: continue revalidation + - LP: #1032640 + * libsas: fix sas_discover_devices return code handling + - LP: #1032640 + * iscsi-target: Drop bogus struct file usage for iSCSI/SCTP + - LP: #1032640 + * mmc: sdhci-pci: CaFe has broken card detection + - LP: #1032640 + * ext4: don't let i_reserved_meta_blocks go negative + - LP: #1032640 + * ext4: undo ext4_calc_metadata_amount if we fail to claim space + - LP: #1032640 + * ASoC: dapm: Fix _PRE and _POST events for DAPM performance improvements + - LP: #1032640 + * locks: fix checking of fcntl_setlease argument + - LP: #1032640 + * ACPI/AC: prevent OOPS on some boxes due to missing check + power_supply_register() return value check + - LP: #1032640 + * drm/radeon: fix bo creation retry path + - LP: #1032640 + * drm/radeon: fix non revealent error message + - LP: #1032640 + * drm/radeon: fix hotplug of DP to DVI|HDMI passive adapters (v2) + - LP: #1032640 + * drm/radeon: on hotplug force link training to happen (v2) + - LP: #1032640 + * Btrfs: call the ordered free operation without any locks held + - LP: #1032640 + * nouveau: Fix alignment requirements on src and dst addresses + - LP: #1032640 + * mm: fix wrong argument of migrate_huge_pages() in + soft_offline_huge_page() + - LP: #1032640 + * Linux 3.2.25 + - LP: #1032640 + * x86: Simplify code by removing a !SMP #ifdefs from 'struct cpuinfo_x86' + - LP: #1033522 + * Linux 3.2.26 + - LP: #1033522 + * rt2x00: Add support for BUFFALO WLI-UC-GNM2 to rt2800usb. + - LP: #871904 + * Avoid sysfs oops when an rc_dev's raw device is absent + - LP: #1015836 + * eCryptfs: Copy up POSIX ACL and read-only flags from lower mount + - LP: #1009207 + * net: calxedaxgmac: fix hang on rx refill + - LP: #1033853 + * eCryptfs: Initialize empty lower files when opening them + - LP: #911507 + * eCryptfs: Revert to a writethrough cache model + - LP: #1034012 + * eCryptfs: Unlink lower inode when ecryptfs_create() fails + - LP: #872905 + * floppy: Cleanup disk->queue before caling put_disk() if add_disk() was + never called + - LP: #1035435 + * xen: mark local pages as FOREIGN in the m2p_override + - LP: #1035435 + * lirc_sir: make device registration work + - LP: #1035435 + * stable: update references to older 2.6 versions for 3.x + - LP: #1035435 + * ALSA: hda - add dock support for Thinkpad X230 Tablet + - LP: #1026953, #1035435 + * cfg80211: fix interface combinations check for ADHOC(IBSS) + - LP: #1035435 + * m68k: Correct the Atari ALLOWINT definition + - LP: #1035435 + * nfsd4: our filesystems are normally case sensitive + - LP: #1035435 + * random: Use arch_get_random_int instead of cycle counter if avail + - LP: #1035435 + * random: Use arch-specific RNG to initialize the entropy store + - LP: #1035435 + * random: Adjust the number of loops when initializing + - LP: #1035435 + * random: make 'add_interrupt_randomness()' do something sane + - LP: #1035435 + * random: use lockless techniques in the interrupt path + - LP: #1035435 + * random: create add_device_randomness() interface + - LP: #1035435 + * usb: feed USB device information to the /dev/random driver + - LP: #1035435 + * net: feed /dev/random with the MAC address when registering a device + - LP: #1035435 + * random: use the arch-specific rng in xfer_secondary_pool + - LP: #1035435 + * random: add new get_random_bytes_arch() function + - LP: #1035435 + * rtc: wm831x: Feed the write counter into device_add_randomness() + - LP: #1035435 + * mfd: wm831x: Feed the device UUID into device_add_randomness() + - LP: #1035435 + * ASoC: wm8994: Ensure there are enough BCLKs for four channels + - LP: #1035435 + * futex: Test for pi_mutex on fault in futex_wait_requeue_pi() + - LP: #1035435 + * futex: Fix bug in WARN_ON for NULL q.pi_state + - LP: #1035435 + * futex: Forbid uaddr == uaddr2 in futex_wait_requeue_pi() + - LP: #1035435 + * video/smscufx: fix line counting in fb_write + - LP: #1035435 + * Input: synaptics - handle out of bounds values from the hardware + - LP: #1001251, #1035435 + * ALSA: hda - Fix invalid D3 of headphone DAC on VT202x codecs + - LP: #1035435 + * ALSA: mpu401: Fix missing initialization of irq field + - LP: #1035435 + * x86, nops: Missing break resulting in incorrect selection on Intel + - LP: #1035435 + * s390/mm: downgrade page table after fork of a 31 bit process + - LP: #1035435 + * Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts + - LP: #1035435 + * dm thin: reduce endio_hook pool size + - LP: #1035435 + * dm thin: fix memory leak in process_prepared_mapping error paths + - LP: #1035435 + * random: mix in architectural randomness in extract_buf() + - LP: #1035435 + * asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID. + - LP: #1035435 + * virtio-blk: Use block layer provided spinlock + - LP: #1035435 + * s390/mm: fix fault handling for page table walk case + - LP: #1035435 + * nfs: skip commit in releasepage if we're freeing memory for fs-related + reasons + - LP: #1035435 + * md/raid1: don't abort a resync on the first badblock. + - LP: #1035435 + * pcdp: use early_ioremap/early_iounmap to access pcdp table + - LP: #1035435 + * lib/vsprintf.c: kptr_restrict: fix pK-error in SysRq show-all-timers(Q) + - LP: #1035435 + * nilfs2: fix deadlock issue between chcp and thaw ioctls + - LP: #1035435 + * SUNRPC: return negative value in case rpcbind client creation error + - LP: #1035435 + * ARM: 7466/1: disable interrupt before spinning endlessly + - LP: #1035435 + * ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+ + - LP: #1035435 + * ARM: 7476/1: vfp: only clear vfp state for current cpu in + vfp_pm_suspend + - LP: #1035435 + * ARM: 7477/1: vfp: Always save VFP state in vfp_pm_suspend on UP + - LP: #1035435 + * ARM: 7478/1: errata: extend workaround for erratum #720789 + - LP: #1035435 + * ARM: Fix undefined instruction exception handling + - LP: #1035435 + * USB: echi-dbgp: increase the controller wait time to come out of halt. + - LP: #1035435 + * ASoC: wm8962: Allow VMID time to fully ramp + - LP: #1035435 + * mm/page_alloc.c: remove pageblock_default_order() + - LP: #1035435 + * mm: setup pageblock_order before it's used by sparsemem + - LP: #1035435 + * mm: mmu_notifier: fix freed page still mapped in secondary MMU + - LP: #1035435 + * mm: hugetlbfs: close race during teardown of hugetlbfs shared page + tables + - LP: #1035435 + * ALSA: snd-usb: fix clock source validity index + - LP: #1035435 + * ALSA: hda - Support dock on Lenovo Thinkpad T530 with ALC269VC + - LP: #1035435 + * ore: Fix out-of-bounds access in _ios_obj() + - LP: #1035435 + * m68k: Make sys_atomic_cmpxchg_32 work on classic m68k + - LP: #1035435 + * drm/i915: prefer wide & slow to fast & narrow in DP configs + - LP: #1035435 + * drop_monitor: fix sleeping in invalid context warning + - LP: #1035435 + * drop_monitor: Make updating data->skb smp safe + - LP: #1035435 + * drop_monitor: prevent init path from scheduling on the wrong cpu + - LP: #1035435 + * drop_monitor: dont sleep in atomic context + - LP: #1035435 + * pch_uart: Fix missing break for 16 byte fifo + - LP: #1035435 + * pch_uart: Fix rx error interrupt setting issue + - LP: #1035435 + * pch_uart: Fix parity setting issue + - LP: #1035435 + * Linux 3.2.27 + - LP: #1035435 + * HID: multitouch: add new PID from Ideacom + - LP: #1026174 + * drm/i915: pch_irq_handler -> {ibx, cpt}_irq_handler + - LP: #1031630 + + -- Luis Henriques Wed, 15 Aug 2012 10:51:16 +0100 + +linux (3.2.0-29.46) precise-proposed; urgency=low + + [ Tim Gardner ] + + * No change upload to fix armel/armhf FTBS caused by + 'UBUNTU: [Config] SND_OMAP_SOC, SND_OMAP_SOC_MCBSP and SND_OMAP_SOC_OMAP3_BEAGLE =y' + Added ignore and ignore.module files to ABI directories. + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1029507 + + -- Luis Henriques Fri, 27 Jul 2012 17:08:57 +0100 + +linux (3.2.0-29.45) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1029507 + + [ Andy Whitcroft ] + + * SAUCE: rds_ib_send() -- prevent local pings triggering BUG_ON() + - LP: #1016299 + - CVE-2012-2372 + + [ Upstream Kernel Changes ] + + * Revert "samsung-laptop: make the dmi check less strict" + - LP: #1029431 + * samsung-laptop: make the dmi check less strict + - LP: #1029431 + * raid5: delayed stripe fix + - LP: #1029431 + * tcp: drop SYN+FIN messages + - LP: #1029431 + * tg3: Apply short DMA frag workaround to 5906 + - LP: #1029431 + * rtl8187: ->brightness_set can not sleep + - LP: #1029431 + * net/wireless: ipw2x00: add supported cipher suites to wiphy + initialization + - LP: #1029431 + * kbuild: do not check for ancient modutils tools + - LP: #1029431 + * brcmsmac: "INTERMEDIATE but not AMPDU" only when tracing + - LP: #1029431 + * ext4: Report max_batch_time option correctly + - LP: #1029431 + * NFSv4: Reduce the footprint of the idmapper + - LP: #1029431 + * NFSv4: Further reduce the footprint of the idmapper + - LP: #1029431 + * macvtap: zerocopy: fix offset calculation when building skb + - LP: #1029431 + * macvtap: zerocopy: fix truesize underestimation + - LP: #1029431 + * macvtap: zerocopy: put page when fail to get all requested user pages + - LP: #1029431 + * macvtap: zerocopy: set SKBTX_DEV_ZEROCOPY only when skb is built + successfully + - LP: #1029431 + * macvtap: zerocopy: validate vectors before building skb + - LP: #1029431 + * KVM: Fix buffer overflow in kvm_set_irq() + - LP: #1029431 + * scsi: Silence unnecessary warnings about ioctl to partition + - LP: #1029431 + * iommu/amd: Fix missing iommu_shutdown initialization in passthrough + mode + - LP: #1029431 + * iommu/amd: Initialize dma_ops for hotplug and sriov devices + - LP: #1029431 + * usb: Add support for root hub port status CAS + - LP: #1029431 + * gpiolib: wm8994: Pay attention to the value set when enabling as output + - LP: #1029431 + * sched/nohz: Rewrite and fix load-avg computation -- again + - LP: #1029431 + * USB: option: add ZTE MF60 + - LP: #1029431 + * USB: option: Add MEDIATEK product ids + - LP: #1029431 + * USB: cdc-wdm: fix lockup on error in wdm_read + - LP: #1029431 + * mtd: nandsim: don't open code a do_div helper + - LP: #1029431 + * dvb-core: Release semaphore on error path dvb_register_device() + - LP: #1029431 + * hwspinlock/core: use global ID to register hwspinlocks on multiple + devices + - LP: #1029431 + * libsas: fix taskfile corruption in sas_ata_qc_fill_rtf + - LP: #1029431 + * md/raid1: fix use-after-free bug in RAID1 data-check code. + - LP: #1029431 + * PCI: EHCI: fix crash during suspend on ASUS computers + - LP: #1029431 + * memory hotplug: fix invalid memory access caused by stale kswapd + pointer + - LP: #1029431 + * mm, thp: abort compaction if migration page cannot be charged to memcg + - LP: #1029431 + * drivers/rtc/rtc-mxc.c: fix irq enabled interrupts warning + - LP: #1029431 + * fs: ramfs: file-nommu: add SetPageUptodate() + - LP: #1029431 + * cpufreq / ACPI: Fix not loading acpi-cpufreq driver regression + - LP: #1029431 + * hwmon: (it87) Preserve configuration register bits on init + - LP: #1029431 + * ARM: SAMSUNG: fix race in s3c_adc_start for ADC + - LP: #1029431 + * block: fix infinite loop in __getblk_slow + - LP: #1029431 + * Remove easily user-triggerable BUG from generic_setlease + - LP: #1029431 + * NFC: Export nfc.h to userland + - LP: #1029431 + * PM / Hibernate: Hibernate/thaw fixes/improvements + - LP: #1029431 + * cfg80211: check iface combinations only when iface is running + - LP: #1029431 + * intel_ips: blacklist HP ProBook laptops + - LP: #1029431 + * atl1c: fix issue of transmit queue 0 timed out + - LP: #1029431 + * rt2x00usb: fix indexes ordering on RX queue kick + - LP: #1029431 + * iwlegacy: always monitor for stuck queues + - LP: #1029431 + * iwlegacy: don't mess up the SCD when removing a key + - LP: #1029431 + * e1000e: Correct link check logic for 82571 serdes + - LP: #1029431 + * tcm_fc: Fix crash seen with aborts and large reads + - LP: #1029431 + * fifo: Do not restart open() if it already found a partner + - LP: #1029431 + * target: Clean up returning errors in PR handling code + - LP: #1029431 + * target: Fix range calculation in WRITE SAME emulation when num blocks + == 0 + - LP: #1029431 + * cifs: on CONFIG_HIGHMEM machines, limit the rsize/wsize to the kmap + space + - LP: #1029431 + * cifs: always update the inode cache with the results from a FIND_* + - LP: #1029431 + * mm: fix lost kswapd wakeup in kswapd_stop() + - LP: #1029431 + * md: avoid crash when stopping md array races with closing other open + fds. + - LP: #1029431 + * md/raid1: close some possible races on write errors during resync + - LP: #1029431 + * MIPS: Properly align the .data..init_task section. + - LP: #1029431 + * UBIFS: fix a bug in empty space fix-up + - LP: #1029431 + * ore: Fix NFS crash by supporting any unaligned RAID IO + - LP: #1029431 + * ore: Remove support of partial IO request (NFS crash) + - LP: #1029431 + * pnfs-obj: don't leak objio_state if ore_write/read fails + - LP: #1029431 + * pnfs-obj: Fix __r4w_get_page when offset is beyond i_size + - LP: #1029431 + * dm raid1: fix crash with mirror recovery and discard + - LP: #1029431 + * dm raid1: set discard_zeroes_data_unsupported + - LP: #1029431 + * ntp: Fix leap-second hrtimer livelock + - LP: #1029431 + * ntp: Correct TAI offset during leap second + - LP: #1029431 + * timekeeping: Fix CLOCK_MONOTONIC inconsistency during leapsecond + - LP: #1029431 + * time: Move common updates to a function + - LP: #1029431 + * hrtimer: Provide clock_was_set_delayed() + - LP: #1029431 + * timekeeping: Fix leapsecond triggered load spike issue + - LP: #1029431 + * timekeeping: Maintain ktime_t based offsets for hrtimers + - LP: #1029431 + * hrtimers: Move lock held region in hrtimer_interrupt() + - LP: #1029431 + * timekeeping: Provide hrtimer update function + - LP: #1029431 + * hrtimer: Update hrtimer base offsets each hrtimer_interrupt + - LP: #1029431 + * timekeeping: Add missing update call in timekeeping_resume() + - LP: #1029431 + * powerpc: Fix wrong divisor in usecs_to_cputime + - LP: #1029431 + * vhost: don't forget to schedule() + - LP: #1029431 + * r8169: call netif_napi_del at errpaths and at driver unload + - LP: #1029431 + * bnx2x: fix checksum validation + - LP: #1029431 + * bnx2x: fix panic when TX ring is full + - LP: #1029431 + * net: remove skb_orphan_try() + - LP: #1029431 + * ACPI: Make acpi_skip_timer_override cover all source_irq==0 cases + - LP: #1029431 + * ACPI: Remove one board specific WARN when ignoring timer overriding + - LP: #1029431 + * ACPI: Add a quirk for "AMILO PRO V2030" to ignore the timer overriding + - LP: #1029431 + * ACPI, x86: fix Dell M6600 ACPI reboot regression via DMI + - LP: #1029431 + * ACPI sysfs.c strlen fix + - LP: #1029431 + * eCryptfs: Gracefully refuse miscdev file ops on inherited/passed files + - LP: #1029431 + * eCryptfs: Fix lockdep warning in miscdev operations + - LP: #1029431 + * eCryptfs: Properly check for O_RDONLY flag before doing privileged open + - LP: #1029431 + * ipheth: add support for iPad + - LP: #1029431 + * stmmac: Fix for nfs hang on multiple reboot + - LP: #1029431 + * bonding: debugfs and network namespaces are incompatible + - LP: #1029431 + * bonding: Manage /proc/net/bonding/ entries from the netdev events + - LP: #1029431 + * Input: bcm5974 - Add support for 2012 MacBook Pro Retina + - LP: #1029431 + * Input: xpad - handle all variations of Mad Catz Beat Pad + - LP: #1029431 + * Input: xpad - add signature for Razer Onza Tournament Edition + - LP: #1029431 + * Input: xpad - add Andamiro Pump It Up pad + - LP: #1029431 + * HID: add support for 2012 MacBook Pro Retina + - LP: #1029431 + * Linux 3.2.24 + - LP: #1029431 + + -- Luis Henriques Thu, 26 Jul 2012 16:25:24 +0100 + +linux (3.2.0-28.44) precise-proposed; urgency=low + + ## Note 3.2.0-28.44 was never uploaded and superceded by 3.2.0-29.45 ## + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1027881 + + [ Andy Whitcroft ] + + * [Packaging] getabis should be extracting all packages + - LP: #1021174 + * getabis -- series uses linux-image-extra + - LP: #1021174 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (drop after 3.2) ALSA: hda - restrict bass configuration on Dell + Inspiron 17 + - LP: #994685 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_RT2800USB_RT35XX and CONFIG_RT2800USB_RT53XX + - LP: #1019561 + + [ Manoj Iyer ] + + * SAUCE: Bluetooth: btusb: Add vendor specific ID (0a5c:21f4) BCM20702A0 + - LP: #1010281 + + [ Paolo Pisati ] + + * [Config] SND_OMAP_SOC, SND_OMAP_SOC_MCBSP and SND_OMAP_SOC_OMAP3_BEAGLE + =y + - LP: #1019321 + + [ Stefan Bader ] + + * SAUCE: sched: Fix race in task_group() + - LP: #999755 + + [ Tim Gardner ] + + * [Config] retrieve ABIs from PPA as a last attempt + + [ Upstream Kernel Changes ] + + * staging:iio:ad7606: Re-add missing scale attribute + - LP: #1022747 + * Tools: hv: verify origin of netlink connector message + - LP: #1022747 + - CVE-2012-2669 + * edac: avoid mce decoding crash after edac driver unloaded + - LP: #1022747 + * hwrng: atmel-rng - fix data valid check + - LP: #1022747 + * staging: r8712u: Add new USB IDs + - LP: #1022747 + * hwmon: (applesmc) Limit key length in warning messages + - LP: #1022747 + * mm: pmd_read_atomic: fix 32bit PAE pmd walk vs pmd_populate SMP race + condition + - LP: #1022747 + * thp: avoid atomic64_read in pmd_read_atomic for 32bit PAE + - LP: #1022747 + * nilfs2: ensure proper cache clearing for gc-inodes + - LP: #1022747 + * e1000e: Disable ASPM L1 on 82574 + - LP: #1022747 + * e1000e: Remove special case for 82573/82574 ASPM L1 disablement + - LP: #1022747 + * staging:rts_pstor:Fix possible panic by NULL pointer dereference + - LP: #1022747 + * gspca-core: Fix buffers staying in queued state after a stream_off + - LP: #1022747 + * smsusb: add autodetection support for USB ID 2040:f5a0 + - LP: #1022747 + * drm/edid: don't return stack garbage from supports_rb + - LP: #1022747 + * drm/nouveau/fbcon: using nv_two_heads is not a good idea + - LP: #1022747 + * dm thin: reinstate missing mempool_free in cell_release_singleton + - LP: #1022747 + * ath9k: Fix a WARNING on suspend/resume with IBSS + - LP: #1022747 + * cfg80211: fix potential deadlock in regulatory + - LP: #1022747 + * ath9k: Fix softlockup in AR9485 + - LP: #1022747 + * can: c_can: precedence error in c_can_chip_config() + - LP: #1022747 + * ath9k: fix a tx rate duration calculation bug + - LP: #1022747 + * batman-adv: fix skb->data assignment + - LP: #1022747 + * ARM: SAMSUNG: Should check for IS_ERR(clk) instead of NULL + - LP: #1022747 + * ath9k_hw: avoid possible infinite loop in ar9003_get_pll_sqsum_dvc + - LP: #1022747 + * iwlwifi: remove log_event debugfs file debugging is disabled + - LP: #1022747 + * ARM: SAMSUNG: Fix for S3C2412 EBI memory mapping + - LP: #1022747 + * USB: option: add id for Cellient MEN-200 + - LP: #1022747 + * oprofile: perf: use NR_CPUS instead or nr_cpumask_bits for static array + - LP: #1022747 + * drm/i915: Refactor the deferred PM_IIR handling into a single function + - LP: #1022747 + * drm/i915: rip out the PM_IIR WARN + - LP: #1022747 + * drm/i915: Fix eDP blank screen after S3 resume on HP desktops + - LP: #1022747 + * PM / Sleep: Prevent waiting forever on asynchronous suspend after abort + - LP: #1022747 + * x86, cpufeature: Rename X86_FEATURE_DTS to X86_FEATURE_DTHERM + - LP: #1022747 + * stable: Allow merging of backports for serious user-visible performance + issues + - LP: #1022747 + * ALSA: hda - Add Realtek ALC280 codec support + - LP: #1017017, #1022747 + * USB: option: Add USB ID for Novatel Ovation MC551 + - LP: #1022747 + * USB: CP210x Add 10 Device IDs + - LP: #1022747 + * xen/netfront: teardown the device before unregistering it. + - LP: #1022747 + * can: flexcan: use be32_to_cpup to handle the value of dt entry + - LP: #1022747 + * acpi_pad: fix power_saving thread deadlock + - LP: #1022747 + * batman-adv: only drop packets of known wifi clients + - LP: #1022747 + * Linux 3.2.22 + - LP: #1022747 + * ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification + - LP: #904261 + * net: sock: validate data_len before allocating skb in + sock_alloc_send_pskb() + - LP: #1006622 + - CVE-2012-2136 + * epoll: clear the tfile_check_list on -ELOOP + - LP: #1021811 + - CVE-2012-3375 + * splice: fix racy pipe->buffers uses + - LP: #1024020 + * umem: fix up unplugging + - LP: #1024020 + * mwifiex: fix 11n rx packet drop issue + - LP: #1024020 + * mwifiex: fix WPS eapol handshake failure + - LP: #1024020 + * NFC: Prevent multiple buffer overflows in NCI + - LP: #1024020 + * ath9k: fix dynamic WEP related regression + - LP: #1024020 + * NFC: Return from rawsock_release when sk is NULL + - LP: #1024020 + * rtlwifi: rtl8192cu: New USB IDs + - LP: #1024020 + * ath9k: enable serialize_regmode for non-PCIE AR9287 + - LP: #1024020 + * mac80211: correct behaviour on unrecognised action frames + - LP: #1024020 + * ASoC: tlv320aic3x: Fix codec pll configure bug + - LP: #1024020 + * powerpc/xmon: Use cpumask iterator to avoid warning + - LP: #1024020 + * powerpc/kvm: sldi should be sld + - LP: #1024020 + * md/raid10: Don't try to recovery unmatched (and unused) chunks. + - LP: #1024020 + * md/raid5: Do not add data_offset before call to is_badblock + - LP: #1024020 + * md/raid5: In ops_run_io, inc nr_pending before calling + md_wait_for_blocked_rdev + - LP: #1024020 + * md/raid10: fix failure when trying to repair a read error. + - LP: #1024020 + * drm/i915: kick any firmware framebuffers before claiming the gtt + - LP: #1024020 + * dm persistent data: fix shadow_info_leak on dm_tm_destroy + - LP: #1024020 + * dm persistent data: handle space map checker creation failure + - LP: #1024020 + * dm persistent data: fix allocation failure in space map checker init + - LP: #1024020 + * tracing: change CPU ring buffer state from tracing_cpumask + - LP: #1024020 + * mwifiex: fix wrong return values in add_virtual_intf() error cases + - LP: #1024020 + * udf: Use 'ret' instead of abusing 'i' in udf_load_logicalvol() + - LP: #1024020 + * udf: Avoid run away loop when partition table length is corrupted + - LP: #1024020 + * udf: Fortify loading of sparing table + - LP: #1024020 + * ARM: fix rcu stalls on SMP platforms + - LP: #1024020 + * cipso: handle CIPSO options correctly when NetLabel is disabled + - LP: #1024020 + * net: l2tp_eth: fix kernel panic on rmmod l2tp_eth + - LP: #1024020 + * l2tp: fix a race in l2tp_ip_sendmsg() + - LP: #1024020 + * sky2: fix checksum bit management on some chips + - LP: #1024020 + * be2net: fix a race in be_xmit() + - LP: #1024020 + * dummy: fix rcu_sched self-detected stalls + - LP: #1024020 + * bonding: Fix corrupted queue_mapping + - LP: #1024020 + * ethtool: allow ETHTOOL_GSSET_INFO for users + - LP: #1024020 + * netpoll: fix netpoll_send_udp() bugs + - LP: #1024020 + * ipv6: Move ipv6 proc file registration to end of init order + - LP: #1024020 + * bridge: Assign rtnl_link_ops to bridge devices created via ioctl (v2) + - LP: #1024020 + * Btrfs: run delayed directory updates during log replay + - LP: #1024020 + * cifs: when server doesn't set CAP_LARGE_READ_X, cap default rsize at + MaxBufferSize + - LP: #1024020 + * ocfs2: clear unaligned io flag when dio fails + - LP: #1024020 + * aio: make kiocb->private NUll in init_sync_kiocb() + - LP: #1024020 + * mtd: cafe_nand: fix an & vs | mistake + - LP: #1024020 + * mm: Hold a file reference in madvise_remove + - LP: #1024020 + * tcm_fc: Resolve suspicious RCU usage warnings + - LP: #1024020 + * vfs: make O_PATH file descriptors usable for 'fchdir()' + - LP: #1024020 + * Linux 3.2.23 + - LP: #1024020 + * asix: asix_rx_fixup surgery to reduce skb truesizes + - LP: #947723 + * ALSA: hda - Fix internal mic for Lenovo Ideapad U300s + - LP: #903853 + * ALSA: hda - Fix oops caused by recent commit "Fix internal mic for + Lenovo Ideapad U300s" + - LP: #903853 + + -- Luis Henriques Mon, 23 Jul 2012 12:03:50 +0100 + +linux (3.2.0-27.43) precise-proposed; urgency=low + + [ Andy Whitcroft ] + + * No change upload to fix .ddeb generation in the PPA. + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1020016 + + -- Andy Whitcroft Fri, 06 Jul 2012 10:59:46 +0100 + +linux (3.2.0-27.42) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1020016 + + [ Chris J Arges ] + + * PACKAGING: add .gnu_debuglink sections to .ko files + - LP: #669641 + + [ Ike Panhc ] + + * [Config] Updateconfigs + - LP: #1008345 + + [ Luis Henriques ] + + * SAUCE: (upstreamed) [media] ene_ir: Fix driver initialisation + - LP: #1014800 + * SAUCE: ocfs2: Fix NULL pointer dereferrence in + __ocfs2_change_file_space + - LP: #1006012 + + [ Rob Herring ] + + * SAUCE: net: calxedaxgmac: enable rx cut-thru mode + - LP: #1008345 + * SAUCE: EDAC: Add support for the highbank platform memory + - LP: #1008345 + * SAUCE: EDAC: add support for highbank platform L2 cache ecc + - LP: #1008345 + + [ Seth Forshee ] + + * (pre-stable): bcma: add ext PA workaround for BCM4331 and BCM43431 + - LP: #925577 + + [ Takashi Iwai ] + + * SAUCE: ALSA: hda - Fix power-map regression for HP dv6 & co + - LP: #1013183 + + [ Tim Gardner ] + + * [Config] Enable CONFIG_CGROUPS for highbank + - LP: #1014692 + + [ Upstream Kernel Changes ] + + * Revert "net: maintain namespace isolation between vlan and real device" + - LP: #1013723 + * x86/amd: Re-enable CPU topology extensions in case BIOS has disabled it + - LP: #1009087 + * hwmon: (k10temp) Add support for AMD Trinity CPUs + - LP: #1009086 + * hwmon: (fam15h_power) Increase output resolution + - LP: #1009086 + * Input: wacom - use BTN_TOOL_FINGER to indicate touch device type + - LP: #1009435 + * Input: wacom - use switch statement for wacom_tpc_irq() + - LP: #1009435 + * Input: wacom - isolate input registration + - LP: #1009435 + * Input: wacom - wireless monitor framework + - LP: #1009435 + * Input: wacom - create inputs when wireless connect + - LP: #1009435 + * Input: wacom - wireless battery status + - LP: #1009435 + * Input: wacom - check for allocation failure in probe() + - LP: #1009435 + * Input: wacom - add basic Intuos5 support + - LP: #1009435 + * Input: wacom - add Intuos5 Touch Ring/ExpressKey support + - LP: #1009435 + * Input: wacom - add Intuos5 Touch Ring LED support + - LP: #1009435 + * Input: wacom - add Intuos5 multitouch sensor support + - LP: #1009435 + * iommu/amd: Add workaround for event log erratum + - LP: #1013723 + * MIPS: BCM63XX: Add missing include for bcm63xx_gpio.h + - LP: #1013723 + * cifs: Include backup intent search flags during searches {try #2) + - LP: #1013723 + * sunrpc: fix loss of task->tk_status after rpc_delay call in + xprt_alloc_slot + - LP: #1013723 + * exofs: Fix CRASH on very early IO errors. + - LP: #1013723 + * cifs: fix oops while traversing open file list (try #4) + - LP: #1013723 + * Fix dm-multipath starvation when scsi host is busy + - LP: #1013723 + * ixp4xx: fix compilation by adding gpiolib support + - LP: #1013723 + * drm/i915: properly handle interlaced bit for sdvo dtd conversion + - LP: #1013723 + * drm/i915: enable vdd when switching off the eDP panel + - LP: #1013723 + * drm/i915: Ignore LVDS on hp t5745 and hp st5747 thin client + - LP: #1013723 + * drm/i915: no lvds quirk for HP t5740e Thin Client + - LP: #1013723 + * drm/i915: wait for a vblank to pass after tv detect + - LP: #1013723 + * drm/i915: Update GEN6_RP_CONTROL definitions + - LP: #1013723 + * drm/i915: always use RPNSWREQ for turbo change requests + - LP: #1013723 + * solos-pci: Fix DMA support + - LP: #1013723 + * microblaze: Do not select GENERIC_GPIO by default + - LP: #1013723 + * fix boot failure on 32-bit systems caused by branch stubs placed before + .text + - LP: #1013723 + * fix TLB fault path on PA2.0 narrow systems + - LP: #1013723 + * iwlwifi: update BT traffic load states correctly + - LP: #1013723 + * iwlwifi: do not use shadow registers by default + - LP: #1013723 + * wl1251: fix oops on early interrupt + - LP: #1013723 + * NFSv4: Map NFS4ERR_SHARE_DENIED into an EACCES error instead of EIO + - LP: #1013723 + * drm/radeon: fix XFX quirk + - LP: #1013723 + * ath9k: fix a use-after-free-bug when ath_tx_setup_buffer() fails + - LP: #1013723 + * mac80211: fix ADDBA declined after suspend with wowlan + - LP: #1013723 + * mm/fork: fix overflow in vma length when copying mmap on clone + - LP: #1013723 + * mm: consider all swapped back pages in used-once logic + - LP: #1013723 + * hugetlb: fix resv_map leak in error path + - LP: #1013723 + * mm/vmalloc.c: change void* into explict vm_struct* + - LP: #1013723 + * mm: fix faulty initialization in vmalloc_init() + - LP: #1013723 + * fix scsi_wait_scan + - LP: #1013723 + * mm: fix vma_resv_map() NULL pointer + - LP: #1013723 + * x86, amd, xen: Avoid NULL pointer paravirt references + - LP: #1013723 + * slub: fix a memory leak in get_partial_node() + - LP: #1013723 + * ext4: force ro mount if ext4_setup_super() fails + - LP: #1013723 + * ext4: disallow hard-linked directory in ext4_lookup + - LP: #1013723 + * mtd: nand: fix scan_read_raw_oob + - LP: #1013723 + * vfs: increment iversion when a file is truncated + - LP: #1013723 + * vfs: umount_tree() might be called on subtree that had never made it + - LP: #1013723 + * ext4: add missing save_error_info() to ext4_error() + - LP: #1013723 + * ALSA: usb-audio: fix rate_list memory leak + - LP: #1013723 + * ext4: add ext4_mb_unload_buddy in the error path + - LP: #1013723 + * ext4: remove mb_groups before tearing down the buddy_cache + - LP: #1013723 + * drm/radeon: fix bank information in tiling config + - LP: #1013723 + * drm/radeon: properly program gart on rv740, juniper, cypress, barts, + hemlock + - LP: #1013723 + * drm/radeon: fix HD6790, HD6570 backend programming + - LP: #1013723 + * drm/ttm: Fix spinlock imbalance + - LP: #1013723 + * drm/vmwgfx: Fix nasty write past alloced memory area + - LP: #1013723 + * mtd: of_parts: fix breakage in Kconfig + - LP: #1013723 + * fec_mpc52xx: fix timestamp filtering + - LP: #1013723 + * Bluetooth: btusb: Add USB device ID "0a5c 21e8" + - LP: #1013723 + * Bluetooth: btusb: typo in Broadcom SoftSailing id + - LP: #1013723 + * Bluetooth: Add support for Atheros [13d3:3362] + - LP: #1013723 + * Bluetooth: Add support for AR3012 [0cf3:e004] + - LP: #1013723, #922715 + * Add Foxconn / Hon Hai IDs for btusb module + - LP: #1013723 + * Bluetooth: Add support for Foxconn/Hon Hai AR5BBU22 0489:E03C + - LP: #1013723 + * ipv4: Do not use dead fib_info entries. + - LP: #1013723 + * ipv4: fix the rcu race between free_fib_info and ip_route_output_slow + - LP: #1013723 + * set fake_rtable's dst to NULL to avoid kernel Oops + - LP: #1013723 + * ipv6: fix incorrect ipsec fragment + - LP: #1013723 + * l2tp: fix oops in L2TP IP sockets for connect() AF_UNSPEC case + - LP: #1013723 + * r8169: missing barriers. + - LP: #1013723 + * r8169: fix early queue wake-up. + - LP: #1013723 + * r8169: fix unsigned int wraparound with TSO + - LP: #1013723 + * sctp: check cached dst before using it + - LP: #1013723 + * skb: avoid unnecessary reallocations in __skb_cow + - LP: #1013723 + * xfrm: take net hdr len into account for esp payload size calculation + - LP: #1013723 + * ACPI battery: only refresh the sysfs files when pertinent information + changes + - LP: #1013723 + * target/file: Use O_DSYNC by default for FILEIO backends + - LP: #1013723 + * iommu/amd: Cache pdev pointer to root-bridge + - LP: #1013723 + * drm/radeon/kms: add new Palm, Sumo PCI ids + - LP: #1013723 + * drm/radeon/kms: add new BTC PCI ids + - LP: #1013723 + * btree: fix tree corruption in btree_get_prev() + - LP: #1013723 + * kbuild: install kernel-page-flags.h + - LP: #1013723 + * asix: allow full size 8021Q frames to be received + - LP: #1013723 + * ext4: don't trash state flags in EXT4_IOC_SETFLAGS + - LP: #1013723 + * ext4: don't set i_flags in EXT4_IOC_SETFLAGS + - LP: #1013723 + * Linux 3.2.20 + - LP: #1013723 + * drm/i915: Finish any pending operations on the framebuffer before + disabling + - LP: #982415 + * drm/i915: Remove use of the autoreported ringbuffer HEAD position + - LP: #1015120 + * drm/i915: Do the fallback non-IRQ wait in ring throttle, too. + - LP: #999910 + * drm/i915: Mark the ringbuffers as being in the GTT domain + - LP: #1015573 + * drm/i915: hold forcewake around ring hw init + - LP: #1015573 + * drm/i915: Unpin the flip target if we fail to queue the flip + - LP: #1015573 + * drm/i915: fix up ivb plane 3 pageflips + - LP: #1015573 + * char/agp: add another Ironlake host bridge + - LP: #1015573 + * x86/uv: Fix UV2 BAU legacy mode + - LP: #1015573 + * powerpc: Fix kernel panic during kernel module load + - LP: #1015573 + * drm/nouveau: determine a value for display_info.bpc if edid doesn't + - LP: #1015573 + * drm/nouveau: default to 8bpc for non-LVDS panels if EDID isn't useful + - LP: #1015573 + * drm/nouveau/disp: fix dithering not being enabled on some eDP macbooks + - LP: #1015573 + * fuse: fix stat call on 32 bit platforms + - LP: #1015573 + * x86, MCE, AMD: Make APIC LVT thresholding interrupt optional + - LP: #1015573 + * x86/amd: Re-enable CPU topology extensions in case BIOS has disabled it + - LP: #1015573 + * sched: Fix the relax_domain_level boot parameter + - LP: #1015573 + * iwlwifi: don't mess up the SCD when removing a key + - LP: #1015573 + * hwrng: atmel-rng - fix race condition leading to repeated bits + - LP: #1015573 + * crypto: aesni-intel - fix unaligned cbc decrypt for x86-32 + - LP: #1015573 + * xen/setup: filter APERFMPERF cpuid feature out + - LP: #1015573 + * NFSv4.1: Fix a request leak on the back channel + - LP: #1015573 + * can: c_can: fix "BUG! echo_skb is occupied!" during transmit + - LP: #1015573 + * can: c_can: fix an interrupt thrash issue with c_can driver + - LP: #1015573 + * can: c_can: fix race condition in c_can_open() + - LP: #1015573 + * ARM i.MX53: Fix PLL4 base address + - LP: #1015573 + * usb: musb_gadget: fix crash caused by dangling pointer + - LP: #1015573 + * mac80211: clean up remain-on-channel on interface stop + - LP: #1015573 + * rt2x00: use atomic variable for seqno + - LP: #1015573 + * iwlwifi: disable WoWLAN if !CONFIG_PM_SLEEP + - LP: #1015573 + * ASoC: wm8994: Ensure all AIFnCLK events are run from the _late variants + - LP: #1015573 + * ASoC: wm8994: Apply volume updates with clocks enabled + - LP: #1015573 + * iwlwifi: unregister LEDs if mac80211 registration fails + - LP: #1015573 + * cfg80211: fix interface combinations check + - LP: #1015573 + * mpt2sas: Fix unsafe using smp_processor_id() in preemptible + - LP: #1015573 + * net: sierra_net: device IDs for Aircard 320U++ + - LP: #1015573 + * ARM: imx6: exit coherency when shutting down a cpu + - LP: #1015573 + * ARM i.MX imx21ads: Fix overlapping static i/o mappings + - LP: #1015573 + * NFSv4: Fix unnecessary delegation returns in nfs4_do_open + - LP: #1015573 + * iwlwifi: use correct supported firmware for 6035 and 6000g2 + - LP: #1015573 + * iwlwifi: disable the buggy chain extension feature in HW + - LP: #1015573 + * ALSA: hda - Add codec->no_jack_detect flag + - LP: #1015573 + * ALSA: hda - add support for Uniwill ECS M31EI notebook + - LP: #1015573 + * ALSA: hda - Suppress auto-mute feature on some machines with ALC861 + - LP: #1015573 + * ALSA: hda - Add another jack-detection suppression for ASUS ALC892 + - LP: #1015573 + * ALSA: HDA: Pin fixup for Zotac Z68 motherboard + - LP: #1015573, #993162 + * usb: cdc-wdm: Add device-id for Huawei 3G/LTE modems + - LP: #1015573 + * USB: qcserial: Add Sierra Wireless device IDs + - LP: #1015573 + * USB: ftdi-sio: Add support for RT Systems USB-RTS01 serial adapter + - LP: #1015573 + * USB: serial: cp210x: add Optris MS Pro usb id + - LP: #1015573 + * USB: serial: sierra: Add support for Sierra Wireless AirCard 320U modem + - LP: #1015573 + * USB: option: Updated Huawei K4605 has better id + - LP: #1015573 + * USB: mct_u232: Fix incorrect TIOCMSET return + - LP: #1015573 + * USB: option: fix port-data abuse + - LP: #1015573 + * USB: option: fix memory leak + - LP: #1015573 + * USB: option: add more YUGA device ids + - LP: #1015573 + * target: Return error to initiator if SET TARGET PORT GROUPS emulation + fails + - LP: #1015573 + * USB: add NO_D3_DURING_SLEEP flag and revert 151b61284776be2 + - LP: #1015573 + * USB: serial: Enforce USB driver and USB serial driver match + - LP: #1015573 + * xhci: Fix invalid loop check in xhci_free_tt_info() + - LP: #1015573 + * xhci: Don't free endpoints in xhci_mem_cleanup() + - LP: #1015573 + * xHCI: Increase the timeout for controller save/restore state operation + - LP: #1015573 + * usb: PS3 EHCI QH read work-around + - LP: #1015573 + * USB: fix PS3 EHCI systems + - LP: #1015573 + * usb: cdc-acm: fix devices not unthrottled on open + - LP: #1015573 + * USB: fix gathering of interface associations + - LP: #1015573 + * swap: fix shmem swapping when more than 8 areas + - LP: #1015573 + * drm/radeon: add some additional 6xx/7xx/EG register init + - LP: #1015573 + * Linux 3.2.21 + - LP: #1015573 + * samsung-laptop: make the dmi check less strict + - LP: #1012284 + * ARM: 7205/2: sched_clock: allow sched_clock to be selected at runtime + - LP: #1008345 + * ARM: timer-sp: add sched_clock support + - LP: #1008345 + * ARM: highbank: enable sp804 based sched_clock + - LP: #1008345 + * ARM: 7201/1: add EDAC atomic_scrub function + - LP: #1008345 + * ARM: 7347/1: SCU: use cpu_logical_map for per-CPU low power mode + - LP: #1008345 + + -- Luis Henriques Mon, 02 Jul 2012 10:42:32 +0100 + +linux (3.2.0-26.41) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1012057 + + [ Andy Whitcroft ] + + * [Config] fix up postinst to ensure we know which error is which + - LP: #1002388 + * [Config] highbank -- commonise filesystems + - LP: #1000831, #1010463 + * [Config] highbank -- commonise subsystems + - LP: #1000831, #1010463 + * [Config] highbank -- commonise network protocols + - LP: #1000831, #1010463 + * [Config] highbank -- commonise input drivers + - LP: #1000831, #1010463 + * [Config] highbank -- commonise CRYPTO options + - LP: #1000831, #1010463 + * [Config] highbank -- commonise HID options + - LP: #1000831, #1010463 + * [Config] highbank -- commonise sensors options + - LP: #1000831, #1010463 + * [Config] highbank -- commonise EXPORTFS/FHANDLE + - LP: #1000831, #1010463 + * [Config] highbank -- commonise CONFIG_CRYPTO_LZO + - LP: #1000831, #1010463 + * [Config] highbank -- commonise ENCRYPTED_KEYS + - LP: #1000831, #1010463 + * [Config] highbank -- commonise CONFIG_ATALK + - LP: #1000831, #1010463 + * [Config] highbank -- commonise INET/INET6 + - LP: #1000831, #1010463 + * [Config] highbank -- commonise NLS + - LP: #1000831, #1010463 + * [Config] highbank -- commonise BLK/CHR + - LP: #1000831, #1010463 + * [Config] highbank -- commonise PHY settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise CRC settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise BINFMT settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise DM settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise RTC_DRV settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise KEYBOARD/MOUSE settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise USB settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise GPIO settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise I2C settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise numerous subsystem selectors + - LP: #1000831, #1010463 + * [Config] highbank -- commonise A-C modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise D-F modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise G-I modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise J-L modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise M modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise N-P modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise Q-R modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise S modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise T modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise U-Z modules missmatches + - LP: #1000831, #1010463 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: fix get_gate_vma call in i386 NX emulation code + - LP: #1009200 + + [ Ike Panhc ] + + * [Config] add highbank into d-i list + - LP: #1007459 + + [ Mario Limonciello ] + + * SAUCE: dell-laptop: rfkill blacklist Dell XPS 13z, 15 + - LP: #901410 + + [ Theodore Ts'o ] + + * SAUCE: ext4: fix the free blocks calculation for ext3 file systems w/ + uninit_bg + - LP: #1010022 + + [ Tim Gardner ] + + * [Config] CONFIG_NET_DSA=m + - LP: #1004148 + * [Config] armhf should not be skipabi or skipmodules + - LP: #1006913 + * [Config] highbank -- highbank.ignore.modules + + [ Upstream Kernel Changes ] + + * dsa: Change dsa_uses_{dsa, trailer}_tags() into inline functions + - LP: #1004148 + * dsa: Export functions from core to modules + - LP: #1004148 + * dsa: Combine core and tagging code + - LP: #1004148 + * mv88e6xxx: Combine mv88e6131 and mv88e612_61_65 drivers + - LP: #1004148 + * dsa: Define module author, description, license and aliases for drivers + - LP: #1004148 + * dsa: Allow core and drivers to be built as modules + - LP: #1004148 + * dsa: Remove unnecessary exports + - LP: #1004148 + * dsa: Move all definitions needed by drivers into + - LP: #1004148 + * dsa: Move switch drivers to new directory drivers/net/dsa + - LP: #1004148 + * dsa: Add reporting of silicon revision for Marvell + 88E6123/88E6161/88E6165 switches. + - LP: #1004148 + * drivers/net: dsa/mv88e6xxx.c files need linux/module.h + - LP: #1004148 + * power_supply: Drop usage of nowarn variant of sysfs_create_link() + - LP: #1005264 + * KVM: mmu_notifier: Flush TLBs before releasing mmu_lock + - LP: #1008711 + * KVM: lock slots_lock around device assignment + - LP: #1008711 + * KVM: nVMX: Fix erroneous exception bitmap check + - LP: #1008711 + * KVM: VMX: vmx_set_cr0 expects kvm->srcu locked + - LP: #1008711 + * KVM: s390: do store status after handling STOP_ON_STOP bit + - LP: #1008711 + * KVM: s390: Sanitize fpc registers for KVM_SET_FPU + - LP: #1008711 + * bio: don't overflow in bio_get_nr_vecs() + - LP: #1008711 + * bio allocation failure due to bio_get_nr_vecs() + - LP: #1008711 + * block: fix buffer overflow when printing partition UUIDs + - LP: #1008711 + * fix PA1.1 oops on boot + - LP: #1008711 + * fix crash in flush_icache_page_asm on PA1.1 + - LP: #1008711 + * fix panic on prefetch(NULL) on PA7300LC + - LP: #1008711 + * arch/tile/Kconfig: remove pointless "!M386" test. + - LP: #1008711 + * tilegx: enable SYSCALL_WRAPPERS support + - LP: #1008711 + * mtd: sm_ftl: fix typo in major number. + - LP: #1008711 + * hpsa: Fix problem with MSA2xxx devices + - LP: #1008711 + * SELinux: if sel_make_bools errors don't leave inconsistent state + - LP: #1008711 + * cfg80211: warn if db.txt is empty with CONFIG_CFG80211_INTERNAL_REGDB + - LP: #1008711 + * mpt2sas: Fix for panic happening because of improper memory allocation + - LP: #1008711 + * isdn/gigaset: ratelimit CAPI message dumps + - LP: #1008711 + * isdn/gigaset: fix CAPI disconnect B3 handling + - LP: #1008711 + * isdn/gigaset: improve error handling querying firmware version + - LP: #1008711 + * KEYS: Use the compat keyctl() syscall wrapper on Sparc64 for Sparc32 + compat + - LP: #1008711 + * IB/core: Fix mismatch between locked and pinned pages + - LP: #1008711 + * regulator: core: Release regulator-regulator supplies on error + - LP: #1008711 + * iommu: Fix off by one in dmar_get_fault_reason() + - LP: #1008711 + * RDMA/cxgb4: Always wake up waiters in c4iw_peer_abort_intr() + - LP: #1008711 + * RDMA/cxgb4: Drop peer_abort when no endpoint found + - LP: #1008711 + * s390/pfault: fix task state race + - LP: #1008711 + * isci: fix oem parameter validation on single controller skus + - LP: #1008711 + * Fix blocking allocations called very early during bootup + - LP: #1008711 + * vfs: make AIO use the proper rw_verify_area() area helpers + - LP: #1008711 + * docs: update HOWTO for 2.6.x -> 3.x versioning + - LP: #1008711 + * drivers/staging/comedi/comedi_fops.c: add missing vfree + - LP: #1008711 + * USB: move usb_translate_errors to linux/usb.h + - LP: #1008711 + * USB: cdc-wdm: sanitize error returns + - LP: #1008711 + * USB: cdc-wdm: fix memory leak + - LP: #1008711 + * 8250_pci: fix pch uart matching + - LP: #1008711 + * usb: add USB_QUIRK_RESET_RESUME for M-Audio 88es + - LP: #1008711 + * usb: usbtest: two super speed fixes for usbtest + - LP: #1008711 + * 8250.c: less than 2400 baud fix. + - LP: #1008711 + * usb-xhci: Handle COMP_TX_ERR for isoc tds + - LP: #1008711 + * xhci: Avoid dead ports when CONFIG_USB_XHCI_HCD=n + - LP: #1008711 + * xhci: Add Lynx Point to list of Intel switchable hosts. + - LP: #1008711 + * usb: gadget: fsl_udc_core: dTD's next dtd pointer need to be updated + once written + - LP: #1008711 + * Add missing call to uart_update_timeout() + - LP: #1008711 + * USB: ftdi-sio: add support for Physik Instrumente E-861 + - LP: #1008711 + * USB: ffs-test: fix length argument of out function call + - LP: #1008711 + * HID: wiimote: Fix IR data parser + - LP: #1008711 + * usb-storage: unusual_devs entry for Yarvik PMP400 MP4 player + - LP: #1008711 + * USB: ohci-at91: add a reset function to fix race condition + - LP: #1008711 + * HID: logitech: read all 32 bits of report type bitfield + - LP: #1008711 + * USB: serial: ti_usb_3410_5052: Add support for the FRI2 serial console + - LP: #1008711 + * USB: cdc-wdm: poll must return POLLHUP if device is gone + - LP: #1008711 + * USB: cdc-wdm: add debug messages on cleanup + - LP: #1008711 + * USB: cdc-wdm: cannot use dev_printk when device is gone + - LP: #1008711 + * tty: Allow uart_register/unregister/register + - LP: #1008711 + * workqueue: skip nr_running sanity check in worker_enter_idle() if + trustee is active + - LP: #1008711 + * xhci: Add new short TX quirk for Fresco Logic host. + - LP: #1008711 + * usbcore: enable USB2 LPM if port suspend fails + - LP: #1008711 + * perf/x86: Update event scheduling constraints for AMD family 15h models + - LP: #1008711 + * USB: fix resource leak in xhci power loss path + - LP: #1008711 + * xhci: Reset reserved command ring TRBs on cleanup. + - LP: #1008711 + * USB: Remove races in devio.c + - LP: #1008711 + * md: using GFP_NOIO to allocate bio for flush request + - LP: #1008711 + * um: Implement a custom pte_same() function + - LP: #1008711 + * um: Fix __swp_type() + - LP: #1008711 + * swap: don't do discard if no discard option added + - LP: #1008711 + * ahci: Detect Marvell 88SE9172 SATA controller + - LP: #1008711 + * ARM: 7365/1: drop unused parameter from flush_cache_user_range + - LP: #1008711 + * ARM: 7409/1: Do not call flush_cache_user_range with mmap_sem held + - LP: #1008711 + * sony-laptop: Enable keyboard backlight by default + - LP: #1008711 + * init: don't try mounting device as nfs root unless type fully matches + - LP: #1008711 + * memcg: free spare array to avoid memory leak + - LP: #1008711 + * compat: Fix RT signal mask corruption via sigprocmask + - LP: #1008711 + * ext3: Fix error handling on inode bitmap corruption + - LP: #1008711 + * ext4: fix error handling on inode bitmap corruption + - LP: #1008711 + * ACPI / PM: Add Sony Vaio VPCCW29FX to nonvs blacklist. + - LP: #1008711 + * hpsa: Add IRQF_SHARED back in for the non-MSI(X) interrupt handler + - LP: #1008711 + * wake up s_wait_unfrozen when ->freeze_fs fails + - LP: #1008711 + * cifs: fix revalidation test in cifs_llseek() + - LP: #1008711 + * OMAPDSS: VENC: fix NULL pointer dereference in DSS2 VENC sysfs debug + attr on OMAP4 + - LP: #1008711 + * i2c-eg20t: change timeout value 50msec to 1000msec + - LP: #1008711 + * drm/i915: [GEN7] Use HW scheduler for fixed function shaders + - LP: #1008711 + * mmc: sdio: avoid spurious calls to interrupt handlers + - LP: #1008711 + * smsusb: add autodetection support for USB ID 2040:c0a0 + - LP: #1008711 + * uvcvideo: Fix ENUMINPUT handling + - LP: #1008711 + * drm/i915: Avoid a double-read of PCH_IIR during interrupt handling + - LP: #1008711 + * b43legacy: Fix error due to MMIO access with SSB unpowered + - LP: #1008711 + * gpio: mpc8xxx: Prevent NULL pointer deref in demux handler + - LP: #1008711 + * drm/i915: don't clobber the pipe param in sanitize_modesetting + - LP: #1008711 + * spi/spi-fsl-spi: reference correct pdata in fsl_spi_cs_control + - LP: #1008711 + * xen: do not map the same GSI twice in PVHVM guests. + - LP: #1008711 + * nouveau: nouveau_set_bo_placement takes TTM flags + - LP: #1008711 + * MCE: Fix vm86 handling for 32bit mce handler + - LP: #1008711 + * x86/mce: Fix check for processor context when machine check was taken. + - LP: #1008711 + * tile: fix bug where fls(0) was not returning 0 + - LP: #1008711 + * intel-iommu: Add device info into list before doing context mapping + - LP: #1008711 + * block: don't mark buffers beyond end of disk as mapped + - LP: #1008711 + * drivers/rtc/rtc-pl031.c: configure correct wday for 2000-01-01 + - LP: #1008711 + * rtlwifi: Preallocate USB read buffers and eliminate kalloc in read + routine + - LP: #1008711 + * NFS4: fix compile warnings in nfs4proc.c + * Avoid reading past buffer when calling GETACL + - LP: #1002505, #1008711 + - CVE-2012-2375 + * Avoid beyond bounds copy while caching ACL + - LP: #1002505, #1008711 + - CVE-2012-2375 + * i2c: tegra: notify transfer-complete after clearing status. + - LP: #1008711 + * i2c: davinci: Free requested IRQ in remove + - LP: #1008711 + * x86, realmode: 16-bit real-mode code support for relocs tool + - LP: #1008711 + * x86, relocs: Workaround for binutils 2.22.52.0.1 section bug + - LP: #1008711 + * x86, relocs: When printing an error, say relative or absolute + - LP: #1008711 + * x86, relocs: Build clean fix + - LP: #1008711 + * x86-32, relocs: Whitelist more symbols for ld bug workaround + - LP: #1008711 + * x86, relocs: Add jiffies and jiffies_64 to the relative whitelist + - LP: #1008711 + * Linux 3.2.19 + - LP: #1008711 + * ALSA: HDA: Add support for Cirrus Logic 4213 + - LP: #910792 + * tg3: Fix TSO CAP for 5704 devs w / ASF enabled + - LP: #1005699 + * drm/i915:: Disable FBC on SandyBridge + - LP: #974830 + + -- Luis Henriques Wed, 13 Jun 2012 18:16:46 +0100 + +linux (3.2.0-25.40) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1003534 + + [ Andy Whitcroft ] + + * [Config] control.stub is an intermediate product not a dependancy + - LP: #992414 + * [Config] include include/generated/compile.h + - LP: #942569 + + [ Dave Martin ] + + * SAUCE: rtc: pl031: Enable module alias autogeneration for AMBA drivers + - LP: #1000831 + + [ Herton Ronaldo Krzesinski ] + + * Revert "SAUCE: ite-cir: postpone ISR registration" + - LP: #1002484 + * SAUCE: async_populate_rootfs: fix build warnings + - LP: #1003417 + + [ Ike Panhc ] + + * [Config] add highbank flavour + - LP: #1000831 + + [ John Johansen ] + + * SAUCE: apparmor: fix long path failure due to disconnected path + - LP: #955892 + * SAUCE: apparmor: fix profile lookup for unconfined + - LP: #978038, #987371 + + [ Mark Langsdorf ] + + * SAUCE: arm highbank: add support for pl320-ipc driver + - LP: #1000831 + + [ Rob Herring ] + + * SAUCE: input: add a key driver for highbank + - LP: #1000831 + * SAUCE: ARM: highbank: Add smc calls to enable/disable the L2 + - LP: #1000831 + * SAUCE: force DMA buffers to non-bufferable on highbank + - LP: #1000831 + * SAUCE: net: calxedaxgmac: fix net timeout recovery + - LP: #1000831 + + [ Tim Gardner ] + + * [Config] perarch and indep tools builds need separate build directories + * [Config] CONFIG_XEN_ACPI_PROCESSOR=y + - LP: #898112 + + [ Upstream Kernel Changes ] + + * Revert "autofs: work around unhappy compat problem on x86-64" + - LP: #1002482 + * Input: wacom - cleanup feature report for bamboos + - LP: #568064 + * Input: wacom - remove unused bamboo HID parsing + - LP: #568064 + * Input: wacom - add some comments to wacom_parse_hid + - LP: #568064 + * Input: wacom - relax Bamboo stylus ID check + - LP: #568064 + * Input: wacom - read 3rd gen Bamboo Touch HID data + - LP: #568064 + * Input: wacom - 3rd gen Bamboo P&Touch packet support + - LP: #568064 + * Input: wacom - ignore unwanted bamboo packets + - LP: #568064 + * HID: wacom: Move parsing to a separate function + - LP: #568064 + * HID: wacom: Initial driver for Wacom Intuos4 Wireless (Bluetooth) + - LP: #568064 + * Input: wacom - add support for Cintiq 24HD + - LP: #568064 + * Input: wacom - add LED support for Cintiq 24HD + - LP: #568064 + * Input: wacom - add missing LEDS_CLASS to Kconfig + - LP: #568064 + * Input: wacom - fix 3rd-gen Bamboo MT when 4+ fingers are in use + - LP: #568064 + * power_supply: allow a power supply to explicitly point to powered + device + - LP: #568064 + * power_supply: add "powers" links to self-powered HID devices + - LP: #568064 + * HID: wiimote: fix invalid power_supply_powers call + - LP: #568064 + * HID: wacom: Fix invalid power_supply_powers calls + - LP: #568064 + * ARM: 7178/1: fault.c: Port OOM changes into do_page_fault + - LP: #951043 + * ARM: 7368/1: fault.c: correct how the tsk->[maj|min]_flt gets + incremented + - LP: #951043 + * hugepages: fix use after free bug in "quota" handling + - LP: #990368 + - CVE-2012-2133 + * provide disable_cpufreq() function to disable the API. + - LP: #898112 + * xen/acpi-processor: C and P-state driver that uploads said data to + hypervisor. + - LP: #898112 + * xen/acpi-processor: Do not depend on CPU frequency scaling drivers. + - LP: #898112 + * xen/acpi: Fix Kconfig dependency on CPU_FREQ + - LP: #898112 + * xen/acpi: Remove the WARN's as they just create noise. + - LP: #898112 + * xen/cpufreq: Disable the cpu frequency scaling drivers from loading. + - LP: #898112 + * xen/apic: Return the APIC ID (and version) for CPU 0. + - LP: #898112 + * ARM: highbank: add xgmac ethernet devices to dts + - LP: #1000831 + * net: add calxeda xgmac ethernet driver + - LP: #1000831 + * ARM: versatile: Add missing ENDPROC to headsmp.S + - LP: #1000831 + * ARM: msm: Add missing ENDPROC to headsmp.S + - LP: #1000831 + * ARM: ux500: add missing ENDPROC to headsmp.S + - LP: #1000831 + * ARM: exynos: remove incorrect BSYM usage + - LP: #1000831 + * ARM: imx: remove incorrect BSYM usage + - LP: #1000831 + * ARM: highbank: remove incorrect BSYM usage + - LP: #1000831 + * ARM: make BSYM macro assembly only + - LP: #1000831 + * ARM: amba: Auto-generate AMBA driver module aliases during modpost + - LP: #1000831 + * ARM: amba: Move definition of struct amba_id to mod_devicetable.h + - LP: #1000831 + * dmaengine: pl330: Enable module alias autogeneration for AMBA drivers + - LP: #1000831 + * crypto: sha512 - Fix byte counter overflow in SHA-512 + - LP: #1002482 + * ALSA: hda/conexant - Don't set HP pin-control bit unconditionally + - LP: #1002482 + * ALSA: hda/conexant - Set up the missing docking-station pins + - LP: #1002482 + * ARM: clps711x: serial driver hungs are a result of call disable_irq + within ISR + - LP: #1002482 + * ARM: OMAP1: DMTIMER: fix broken timer clock source selection + - LP: #1002482 + * mmc: fixes for eMMC v4.5 discard operation + - LP: #1002482 + * mmc: fixes for eMMC v4.5 sanitize operation + - LP: #1002482 + * mmc: unbreak sdhci-esdhc-imx on i.MX25 + - LP: #1002482 + * xen/gntdev: do not set VM_PFNMAP + - LP: #1002482 + * xen/xenbus: Add quirk to deal with misconfigured backends. + - LP: #1002482 + * USB: yurex: Remove allocation of coherent buffer for setup-packet + buffer + - LP: #1002482 + * USB: yurex: Fix missing URB_NO_TRANSFER_DMA_MAP flag in urb + - LP: #1002482 + * uwb: fix use of del_timer_sync() in interrupt + - LP: #1002482 + * uwb: fix error handling + - LP: #1002482 + * davinci_mdio: Fix MDIO timeout check + - LP: #1002482 + * mwifiex: update pcie8766 scratch register addresses + - LP: #1002482 + * brcm80211: smac: resume transmit fifo upon receiving frames + - LP: #1002482 + * rc-core: set mode for winbond-cir + - LP: #1002482 + * drxk: Does not unlock mutex if sanity check failed in scu_command() + - LP: #1002482 + * cfg80211: fix interface combinations check. + - LP: #1002482 + * Fix modpost failures in fedora 17 + - LP: #1002482 + * mm: fix s390 BUG by __set_page_dirty_no_writeback on swap + - LP: #1002482 + * jbd2: use GFP_NOFS for blkdev_issue_flush + - LP: #1002482 + * USB: serial: cp210x: Fixed usb_control_msg timeout values + - LP: #1002482 + * pch_uart: Fix dma channel unallocated issue + - LP: #1002482 + * drivers/tty/amiserial.c: add missing tty_unlock + - LP: #1002482 + * USB: sierra: avoid QMI/wwan interface on MC77xx + - LP: #1002482 + * EHCI: fix criterion for resuming the root hub + - LP: #1002482 + * EHCI: always clear the STS_FLR status bit + - LP: #1002482 + * USB: fix deadlock in bConfigurationValue attribute method + - LP: #1002482 + * usb: gadget: udc-core: stop UDC on device-initiated disconnect + - LP: #1002482 + * usb: gadget: udc-core: fix asymmetric calls in remove_driver + - LP: #1002482 + * usb: gadget: udc-core: fix wrong call order + - LP: #1002482 + * usb: gadget: udc-core: fix incompatibility with dummy-hcd + - LP: #1002482 + * usb: gadget: eliminate NULL pointer dereference (bugfix) + - LP: #1002482 + * usb: musb: omap: fix crash when musb glue (omap) gets initialized + - LP: #1002482 + * usb: musb: omap: fix the error check for pm_runtime_get_sync + - LP: #1002482 + * PCI: Add quirk for still enabled interrupts on Intel Sandy Bridge GPUs + - LP: #1002482 + * ext4: fix endianness breakage in ext4_split_extent_at() + - LP: #1002482 + * KVM: unmap pages from the iommu when slots are removed + - LP: #1002482 + * dell-laptop: add 3 machines that has touchpad LED + - LP: #1002482 + * dell-laptop: touchpad LED should persist its status after S3 + - LP: #1002482 + * Bluetooth: Add support for Atheros [04ca:3005] + - LP: #1002482 + * Don't limit non-nested epoll paths + - LP: #1002482 + * spi: Fix device unregistration when unregistering the bus master + - LP: #1002482 + * spi/mpc83xx: fix NULL pdata dereference bug + - LP: #1002482 + * rt2800: Add support for the Fujitsu Stylistic Q550 + - LP: #1002482 + * rt2x00: Identify rt2800usb chipsets. + - LP: #1002482 + * nfsd: fix b0rken error value for setattr on read-only mount + - LP: #1002482 + * nfsd: fix error values returned by nfsd4_lockt() when nfsd_open() fails + - LP: #1002482 + * nfsd: fix endianness breakage in TEST_STATEID handling + - LP: #1002482 + * nfsd: fix compose_entry_fh() failure exits + - LP: #1002482 + * btrfs: btrfs_root_readonly() broken on big-endian + - LP: #1002482 + * ocfs2: ->l_next_free_req breakage on big-endian + - LP: #1002482 + * ocfs: ->rl_used breakage on big-endian + - LP: #1002482 + * ocfs2: ->rl_count endianness breakage + - LP: #1002482 + * ocfs2: ->e_leaf_clusters endianness breakage + - LP: #1002482 + * lockd: fix the endianness bug + - LP: #1002482 + * usb: dwc3: ep0: increment "actual" on bounced ep0 case + - LP: #1002482 + * net: fix /proc/net/dev regression + - LP: #1002482 + * nfsd: don't fail unchecked creates of non-special files + - LP: #1002482 + * ppp: Don't stop and restart queue on every TX packet + - LP: #1002482 + * tcp: allow splice() to build full TSO packets + - LP: #1002482 + * sctp: Allow struct sctp_event_subscribe to grow without breaking + binaries + - LP: #1002482 + * bridge: Do not send queries on multicast group leaves + - LP: #1002482 + * ipv6: fix array index in ip6_mc_add_src() + - LP: #1002482 + * phonet: Check input from user before allocating + - LP: #1002482 + * bonding: properly unset current_arp_slave on slave link up + - LP: #1002482 + * wimax: i2400m - prevent a possible kernel bug due to missing fw_name + string + - LP: #1002482 + * netlink: fix races after skb queueing + - LP: #1002482 + * net: fix a race in sock_queue_err_skb() + - LP: #1002482 + * tcp: fix tcp_rcv_rtt_update() use of an unscaled RTT sample + - LP: #1002482 + * net: allow pskb_expand_head() to get maximum tailroom + - LP: #1002482 + * tcp: fix tcp_trim_head() + - LP: #1002482 + * tcp: avoid order-1 allocations on wifi and tx path + - LP: #1002482 + * atl1: fix kernel panic in case of DMA errors + - LP: #1002482 + * 8139cp: set intr mask after its handler is registered + - LP: #1002482 + * net: smsc911x: fix skb handling in receive path + - LP: #1002482 + * net/ethernet: ks8851_mll fix rx frame buffer overflow + - LP: #1002482 + * net_sched: gred: Fix oops in gred_dump() in WRED mode + - LP: #1002482 + * net: usb: smsc75xx: fix mtu + - LP: #1002482 + * dummy: Add ndo_uninit(). + - LP: #1002482 + * tcp: fix tcp_grow_window() for large incoming frames + - LP: #1002482 + * netns: do not leak net_generic data on failed init + - LP: #1002482 + * ksz884x: don't copy too much in netdev_set_mac_address() + - LP: #1002482 + * net ax25: Reorder ax25_exit to remove races. + - LP: #1002482 + * tcp: fix TCP_MAXSEG for established IPv6 passive sockets + - LP: #1002482 + * nfs: Enclose hostname in brackets when needed in nfs_do_root_mount + - LP: #1002482 + * NFS: put open context on error in nfs_pagein_multi + - LP: #1002482 + * NFS: put open context on error in nfs_flush_multi + - LP: #1002482 + * x86, microcode: Fix sysfs warning during module unload on unsupported + CPUs + - LP: #1002482 + * x86, apic: APIC code touches invalid MSR on P5 class machines + - LP: #1002482 + * xen: correctly check for pending events when restoring irq flags + - LP: #1002482 + * xen/smp: Fix crash when booting with ACPI hotplug CPUs. + - LP: #1002482 + * ASoC: dapm: Ensure power gets managed for line widgets + - LP: #1002482 + * ASoC: wm8994: Improve sequencing of AIF channel enables + - LP: #1002482 + * dmaengine: at_hdmac: remove clear-on-read in atc_dostart() + - LP: #1002482 + * sched: Fix OOPS when build_sched_domains() percpu allocation fails + - LP: #1002482 + * tracing: Fix stacktrace of latency tracers (irqsoff and friends) + - LP: #1002482 + * hwmon: fam15h_power: fix bogus values with current BIOSes + - LP: #1002482 + * hwmon: (fam15h_power) Fix pci_device_id array + - LP: #1002482 + * dell-laptop: Terminate quirks list properly + - LP: #1002482 + * drm/radeon/kms: need to set up ss on DP bridges as well + - LP: #1002482 + * drm/i915: handle input/output sdvo timings separately in mode_set + - LP: #1002482 + * drm/i915: relative_constants_mode race fix + - LP: #1002482 + * drm/i915: Force sync command ordering (Gen6+) + - LP: #1002482 + * drm/i915: Set the Stencil Cache eviction policy to non-LRA mode. + - LP: #1002482 + * drm/i915: fix integer overflow in i915_gem_execbuffer2() + - LP: #1002482 + * drm/i915: fix integer overflow in i915_gem_do_execbuffer() + - LP: #1002482 + * nl80211: ensure interface is up in various APIs + - LP: #1002482 + * ALSA: HDA: Add external mic quirk for Asus Zenbook UX31E + - LP: #1002482, #950490 + * USB: cdc-wdm: fix race leading leading to memory corruption + - LP: #1002482 + * USB: EHCI: fix crash during suspend on ASUS computers + - LP: #1002482 + * USB: gadget: storage gadgets send wrong error code for unknown commands + - LP: #1002482 + * usb: gadget: dummy: do not call pullup() on udc_stop() + - LP: #1002482 + * usb gadget: uvc: uvc_request_data::length field must be signed + - LP: #1002482 + * pipes: add a "packetized pipe" mode for writing + - LP: #1002482 + * autofs: make the autofsv5 packet file descriptor use a packetized pipe + - LP: #1002482 + * ARM: 7396/1: errata: only handle ARM erratum #326103 on affected cores + - LP: #1002482 + * ARM: 7397/1: l2x0: only apply workaround for erratum #753970 on PL310 + - LP: #1002482 + * ARM: 7398/1: l2x0: only write to debug registers on PL310 + - LP: #1002482 + * ARM: 7403/1: tls: remove covert channel via TPIDRURW + - LP: #1002482 + * ARM: 7406/1: hotplug: copy the affinity mask when forcefully migrating + IRQs + - LP: #1002482 + * libsas: fix sas_find_bcast_phy() in the presence of 'vacant' phys + - LP: #1002482 + * libsas: fix false positive 'device attached' conditions + - LP: #1002482 + * efi: Add new variable attributes + - LP: #1002482 + * efi: Validate UEFI boot variables + - LP: #1002482 + * PM / Hibernate: fix the number of pages used for hibernate/thaw + buffering + - LP: #1002482 + * drm/i915: enable dip before writing data on gen4 + - LP: #1002482 + * efivars: Improve variable validation + - LP: #1002482 + * fs/cifs: fix parsing of dfs referrals + - LP: #1002482 + * Fix __read_seqcount_begin() to use ACCESS_ONCE for sequence value read + - LP: #1002482 + * hwmon: (coretemp) Increase CPU core limit + - LP: #1002482 + * nouveau: initialise has_optimus variable. + - LP: #1002482 + * hwmon: (coretemp) fix oops on cpu unplug + - LP: #1002482 + * libata: skip old error history when counting probe trials + - LP: #1002482 + * b43: only reload config after successful initialization + - LP: #1002482, #950295 + * i2c: pnx: Disable clk in suspend + - LP: #1002482 + * ipw2200: Fix race condition in the command completion acknowledge + - LP: #1002482 + * mac80211: fix AP mode EAP tx for VLAN stations + - LP: #1002482 + * rtlwifi: Fix oops on unload + - LP: #1002482 + * wl1251: fix crash on remove due to premature kfree + - LP: #1002482 + * wl1251: fix crash on remove due to leftover work item + - LP: #1002482 + * iwlwifi: do not nulify ctx->vif on reset + - LP: #1002482 + * iwlwifi: fix hardware queue programming + - LP: #1002482 + * hfsplus: Fix potential buffer overflows + - LP: #1002482 + * ASoC: tlv312aic23: unbreak resume + - LP: #1002482 + * asm-generic: Use __BITS_PER_LONG in statfs.h + - LP: #1002482 + * x86, relocs: Remove an unused variable + - LP: #1002482 + * ARM: 7410/1: Add extra clobber registers for assembly in kernel_execve + - LP: #1002482 + * ARM: 7414/1: SMP: prevent use of the console when using idmap_pgd + - LP: #1002482 + * drm/i915: disable sdvo hotplug on i945g/gm + - LP: #1002482 + * drm/i915: Do no set Stencil Cache eviction LRA w/a on gen7+ + - LP: #1002482 + * xen/pte: Fix crashes when trying to see non-existent PGD/PMD/PUD/PTEs + - LP: #1002482 + * xen/pci: don't use PCI BIOS service for configuration space accesses + - LP: #1002482 + * percpu, x86: don't use PMD_SIZE as embedded atom_size on 32bit + - LP: #1002482 + * iwlagn: allow up to uCode API 6 for 6000 devices + - LP: #1002482 + * iwlwifi: use correct released ucode version + - LP: #1002482 + * iwlwifi: use 6000G2B for 6030 device series + - LP: #1002482 + * exit_signal: simplify the "we have changed execution domain" logic + - LP: #1002482 + * exit_signal: fix the "parent has changed security domain" logic + - LP: #1002482 + * staging: r8712u: Fix regression caused by commit 8c213fa + - LP: #1002482 + * smsc95xx: mark link down on startup and let PHY interrupt deal with + carrier changes + - LP: #1002482 + * Linux 3.2.17 + - LP: #1002482 + * regulator: Fix the logic to ensure new voltage setting in valid range + - LP: #1002484 + * ARM: OMAP: Revert "ARM: OMAP: ctrl: Fix CONTROL_DSIPHY register fields" + - LP: #1002484 + * ALSA: echoaudio: Remove incorrect part of assertion + - LP: #1002484 + * ARM: orion5x: Fix GPIO enable bits for MPP9 + - LP: #1002484 + * ALSA: HDA: Lessen CPU usage when waiting for chip to respond + - LP: #1002484 + * percpu: pcpu_embed_first_chunk() should free unused parts after all + allocs are complete + - LP: #1002484 + * hugetlb: prevent BUG_ON in hugetlb_fault() -> hugetlb_cow() + - LP: #1002484 + * namespaces, pid_ns: fix leakage on fork() failure + - LP: #1002484 + * mm: nobootmem: fix sign extend problem in __free_pages_memory() + - LP: #1002484 + * asix: Fix tx transfer padding for full-speed USB + - LP: #1002484 + * netem: fix possible skb leak + - LP: #1002484 + * net: In unregister_netdevice_notifier unregister the netdevices. + - LP: #1002484 + * net: l2tp: unlock socket lock before returning from l2tp_ip_sendmsg + - LP: #1002484 + * sky2: propogate rx hash when packet is copied + - LP: #1002484 + * sky2: fix receive length error in mixed non-VLAN/VLAN traffic + - LP: #1002484 + * sungem: Fix WakeOnLan + - LP: #1002484 + * tg3: Avoid panic from reserved statblk field access + - LP: #1002484 + * tcp: fix infinite cwnd in tcp_complete_cwr() + - LP: #1002484 + * tcp: change tcp_adv_win_scale and tcp_rmem[2] + - LP: #1002484 + * brcm80211: smac: pass missing argument to 'brcms_b_mute' + - LP: #1002484 + * phy:icplus:fix Auto Power Saving in ip101a_config_init. + - LP: #1002484 + * NFSv4: Revalidate uid/gid after open + - LP: #1002484 + * target: Drop incorrect se_lun_acl release for dynamic -> explict ACL + conversion + - LP: #1002484 + * marvell-cam: fix an ARM build error + - LP: #1002484 + * rc: Postpone ISR registration + - LP: #1002484 + * cdc_ether: Ignore bogus union descriptor for RNDIS devices + - LP: #1002484 + * jffs2: Fix lock acquisition order bug in gc path + - LP: #1002484 + * s5p-fimc: Fix locking in subdev set_crop op + - LP: #1002484 + * dm mpath: check if scsi_dh module already loaded before trying to load + - LP: #1002484 + * sparc64: Do not clobber %g2 in xcall_fetch_glob_regs(). + - LP: #1002484 + * gpio: Add missing spin_lock_init in gpio-ml-ioh driver + - LP: #1002484 + * spi-topcliff-pch: Modify pci-bus number dynamically to get DMA device + info + - LP: #1002484 + * spi-topcliff-pch: Fix issue for transmitting over 4KByte + - LP: #1002484 + * spi-topcliff-pch: supports a spi mode setup and bit order setup by IO + control + - LP: #1002484 + * spi-topcliff-pch: add recovery processing in case wait-event timeout + - LP: #1002484 + * ext4: avoid deadlock on sync-mounted FS w/o journal + - LP: #1002484 + * ia64: Add accept4() syscall + - LP: #1002484 + * brcm80211: smac: fix endless retry of A-MPDU transmissions + - LP: #1002484 + * ARM: 7417/1: vfp: ensure preemption is disabled when enabling VFP + access + - LP: #1002484 + * target: Fix SPC-2 RELEASE bug for multi-session iSCSI client setups + - LP: #1002484 + * crypto: mv_cesa requires on CRYPTO_HASH to build + - LP: #1002484 + * ALSA: hda/idt - Fix power-map for speaker-pins with some HP laptops + - LP: #1002484 + * ASoC: wm8994: Fix AIF2ADC power down + - LP: #1002484 + * usbnet: fix skb traversing races during unlink(v2) + - LP: #1002484 + * cdc_ether: add Novatel USB551L device IDs for FLAG_WWAN + - LP: #1002484 + * ARM: prevent VM_GROWSDOWN mmaps extending below FIRST_USER_ADDRESS + - LP: #1002484 + * arch/tile: apply commit 74fca9da0 to the compat signal handling as well + - LP: #1002484 + * MD: Add del_timer_sync to mddev_suspend (fix nasty panic) + - LP: #1002484 + * target: Fix bug in handling of FILEIO + block_device resize ops + - LP: #1002484 + * tcp: do_tcp_sendpages() must try to push data out on oom conditions + - LP: #1002484 + * e1000: Prevent reset task killing itself. + - LP: #1002484 + * pktgen: fix crash at module unload + - LP: #1002484 + * pktgen: fix module unload for good + - LP: #1002484 + * Linux 3.2.18 + - LP: #1002484 + * thinkpad-acpi: recognize Lenovo as version string in newer V-series + BIOS + - LP: #1002920 + * dl2k: Clean up rio_ioctl + - CVE-2012-2313 + + -- Luis Henriques Wed, 23 May 2012 17:37:05 +0100 + +linux (3.2.0-24.39) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1002329 + + [ Andy Whitcroft ] + + * SAUCE: ata_piix: add a disable_driver option + - LP: #994870 + + -- Luis Henriques Mon, 21 May 2012 15:51:25 +0100 + +linux (3.2.0-24.38) precise-proposed; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #991925 + + [ Herton Ronaldo Krzesinski ] + + * linux: add Build-Depends for libnewt-dev, to enable perf TUI support + - LP: #981717 + + [ Tim Gardner ] + + * SAUCE: Allow filtering of cpufreq drivers + - LP: #984288 + + [ Upstream Kernel Changes ] + + * x86 bpf_jit: fix a bug in emitting the 16-bit immediate operand of AND + - LP: #981162 + * tg3: Fix 5717 serdes powerdown problem + - LP: #981162 + * sky2: dont overwrite settings for PHY Quick link + - LP: #981162 + * rose_dev: fix memcpy-bug in rose_set_mac_address + - LP: #981162 + * net: usb: cdc_eem: fix mtu + - LP: #981162 + * Fix non TBI PHY access; a bad merge undid bug fix in a previous commit. + - LP: #981162 + * ASoC: wm8994: Update WM8994 DCS calibration + - LP: #981162 + * mtd: ixp4xx: oops in ixp4xx_flash_probe + - LP: #981162 + * mtd: mips: lantiq: reintroduce support for cmdline partitions + - LP: #981162 + * mtd: nand: gpmi: use correct member for checking NAND_BBT_USE_FLASH + - LP: #981162 + * mtd: sst25l: initialize writebufsize + - LP: #981162 + * mtd: block2mtd: initialize writebufsize + - LP: #981162 + * mtd: lart: initialize writebufsize + - LP: #981162 + * mtd: m25p80: set writebufsize + - LP: #981162 + * ACPI: Do cpufreq clamping for throttling per package v2 + - LP: #981162 + * PNPACPI: Fix device ref leaking in acpi_pnp_match + - LP: #981162 + * modpost: fix ALL_INIT_DATA_SECTIONS + - LP: #981162 + * genirq: Adjust irq thread affinity on IRQ_SET_MASK_OK_NOCOPY return + value + - LP: #981162 + * tracing: Fix ftrace stack trace entries + - LP: #981162 + * tracing: Fix ent_size in trace output + - LP: #981162 + * m68k/mac: Add missing platform check before registering platform + devices + - LP: #981162 + * mac80211: fix possible tid_rx->reorder_timer use after free + - LP: #981162 + * rtlwifi: rtl8192ce: rtl8192cu: rtl8192de: Fix low-gain setting when + scanning + - LP: #981162 + * drm: Validate requested virtual size against allocated fb size + - LP: #981162 + * drm/radeon/kms: fix fans after resume + - LP: #981162 + * drm/i915: no-lvds quirk on MSI DC500 + - LP: #981162 + * drm/i915: Add lock on drm_helper_resume_force_mode + - LP: #981162 + * drm/i915: quirk away broken OpRegion VBT + - LP: #981162 + * r8169: runtime resume before shutdown. + - LP: #981162 + * target: Fix unsupported WRITE_SAME sense payload + - LP: #981162 + * kgdb,debug_core: pass the breakpoint struct instead of address and + memory + - LP: #981162 + * kgdbts: Fix kernel oops with CONFIG_DEBUG_RODATA + - LP: #981162 + * kgdbts: (1 of 2) fix single step awareness to work correctly with SMP + - LP: #981162 + * kgdbts: (2 of 2) fix single step awareness to work correctly with SMP + - LP: #981162 + * x86,kgdb: Fix DEBUG_RODATA limitation using text_poke() + - LP: #981162 + * CIFS: Fix VFS lock usage for oplocked files + - LP: #981162 + * ARM: tegra: remove Tegra30 errata from MACH_TEGRA_DT + - LP: #981162 + * mmc: sdhci-dove: Fix compile error by including module.h + - LP: #981162 + * mmc: atmel-mci: correct data timeout computation + - LP: #981162 + * tcm_fc: Add abort flag for gracefully handling exchange timeout + - LP: #981162 + * tcm_fc: Do not free tpg structure during wq allocation failure + - LP: #981162 + * sysctl: fix write access to dmesg_restrict/kptr_restrict + - LP: #981162 + * modpost: Fix modpost license checking of vmlinux.o + - LP: #981162 + * x86/PCI: use host bridge _CRS info on MSI MS-7253 + - LP: #981162 + * x86/PCI: do not tie MSI MS-7253 use_crs quirk to BIOS version + - LP: #981162 + * TOMOYO: Fix mount flags checking order. + - LP: #981162 + * acer-wmi: No wifi rfkill on Sony machines + - LP: #981162 + * Fix length of buffer copied in __nfs4_get_acl_uncached + - LP: #981162 + * sched/x86: Fix overflow in cyc2ns_offset + - LP: #981162 + * mfd: Clear twl6030 IRQ status register only once + - LP: #981162 + * USB: Add Motorola Rokr E6 Id to the USBNet driver "zaurus" + - LP: #981162 + * ioat: fix size of 'completion' for Xen + - LP: #981162 + * ASoC: ak4642: fixup: mute needs +1 step + - LP: #981162 + * cred: copy_process() should clear child->replacement_session_keyring + - LP: #981162 + * iommu/amd: Make sure IOMMU interrupts are re-enabled on resume + - LP: #981162 + * Linux 3.2.15 + - LP: #981162 + * drm/radeon/kms: fix DVO setup on some r4xx chips + - LP: #987337 + * drm/i915/ringbuffer: Exclude last 2 cachlines of ring on 845g + - LP: #987337 + * drm/radeon: only add the mm i2c bus if the hw_i2c module param is set + - LP: #987337 + * drm/i915: properly compute dp dithering for user-created modes + - LP: #987337 + * drm/i915: make rc6 module parameter read-only + - LP: #987337 + * rtlwifi: Add missing DMA buffer unmapping for PCI drivers + - LP: #987337 + * ARM: 7379/1: DT: fix atags_to_fdt() second call site + - LP: #987337 + * ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for + !CONFIG_ARM_THUMBEE + - LP: #987337 + * md/bitmap: prevent bitmap_daemon_work running while initialising bitmap + - LP: #987337 + * Bluetooth: uart-ldisc: Fix memory leak + - LP: #987337 + * Bluetooth: hci_ldisc: fix NULL-pointer dereference on tty_close + - LP: #987337 + * ext4: address scalability issue by removing extent cache statistics + - LP: #987337 + * ia64: fix futex_atomic_cmpxchg_inatomic() + - LP: #987337 + * drivers/rtc/rtc-pl031.c: enable clock on all ST variants + - LP: #987337 + * hugetlb: fix race condition in hugetlb_fault() + - LP: #987337 + * staging: iio: hmc5843: Fix crash in probe function. + - LP: #987337 + * tty: serial: altera_uart: Check for NULL platform_data in probe. + - LP: #987337 + * sparc64: Eliminate obsolete __handle_softirq() function + - LP: #987337 + * sparc64: Fix bootup crash on sun4v. + - LP: #987337 + * cciss: Initialize scsi host max_sectors for tape drive support + - LP: #987337 + * cciss: Fix scsi tape io with more than 255 scatter gather elements + - LP: #987337 + * video:uvesafb: Fix oops that uvesafb try to execute NX-protected page + - LP: #987337 + * nohz: Fix stale jiffies update in tick_nohz_restart() + - LP: #987337 + * pch_uart: Fix MSI setting issue + - LP: #987337 + * USB: serial: fix race between probe and open + - LP: #987337 + * USB: pl2303: fix DTR/RTS being raised on baud rate change + - LP: #987337 + * USB: option: re-add NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED to option_id + array + - LP: #987337 + * USB: ftdi_sio: fix status line change handling for TIOCMIWAIT and + TIOCGICOUNT + - LP: #987337 + * USB: ftdi_sio: fix race condition in TIOCMIWAIT, and abort of + TIOCMIWAIT when the device is removed + - LP: #987337 + * USB: sierra: add support for Sierra Wireless MC7710 + - LP: #987337 + * USB: don't clear urb->dev in scatter-gather library + - LP: #987337 + * USB: don't ignore suspend errors for root hubs + - LP: #987337 + * xhci: don't re-enable IE constantly + - LP: #987337 + * xhci: Don't write zeroed pointers to xHC registers. + - LP: #987337 + * xhci: Restore event ring dequeue pointer on resume. + - LP: #987337 + * USB: fix bug of device descriptor got from superspeed device + - LP: #987337 + * xHCI: add XHCI_RESET_ON_RESUME quirk for VIA xHCI host + - LP: #987337 + * xHCI: Correct the #define XHCI_LEGACY_DISABLE_SMI + - LP: #987337 + * fix tlb flushing for page table pages + - LP: #987337 + * serial: PL011: clear pending interrupts + - LP: #987337 + * serial: PL011: move interrupt clearing + - LP: #987337 + * fcaps: clear the same personality flags as suid when fcaps are used + - LP: #987337 + * ath9k: fix max noise floor threshold + - LP: #987337 + * xhci: Fix register save/restore order. + - LP: #987337 + * Bluetooth: hci_core: fix NULL-pointer dereference at unregister + - LP: #987337 + * pch_gpio: Support new device LAPIS Semiconductor ML7831 IOH + - LP: #987337 + * gpio: Add missing spin_lock_init in gpio-pch driver + - LP: #987337 + * usb: gadget: pch_udc: Fix disconnect issue + - LP: #987337 + * usb: gadget: pch_udc: Fix wrong return value + - LP: #987337 + * usb: gadget: pch_udc: Fix USB suspend issue + - LP: #987337 + * usb: gadget: pch_udc: Fix usb/gadget/pch_udc: Fix ether gadget + connect/disconnect issue + - LP: #987337 + * usb: gadget: pch_udc: Reduce redundant interrupt + - LP: #987337 + * ACPICA: Fix to allow region arguments to reference other scopes + - LP: #987337 + * security: fix compile error in commoncap.c + - LP: #987337 + * pch_gbe: Do not abort probe on bad MAC + - LP: #987337 + * pch_gbe: memory corruption calling pch_gbe_validate_option() + - LP: #987337 + * pch_dma: Support new device LAPIS Semiconductor ML7831 IOH + - LP: #987337 + * spi-topcliff-pch: fix -Wuninitialized warning + - LP: #987337 + * spi-topcliff-pch: Support new device LAPIS Semiconductor ML7831 IOH + - LP: #987337 + * Bluetooth: Add Atheros maryann PIDVID support + - LP: #987337 + * futex: Do not leak robust list to unprivileged process + - LP: #987337 + * drm/radeon/kms: fix the regression of DVI connector check + - LP: #987337 + * drm/radeon: disable MSI on RV515 + - LP: #987337 + * drm/radeon: fix load detect on rn50 with hardcoded EDIDs. + - LP: #987337 + * perf hists: Catch and handle out-of-date hist entry maps. + - LP: #987337 + * Linux 3.2.16 + - LP: #987337 + * KVM: Ensure all vcpus are consistent with in-kernel irqchip settings + - LP: #971685 + - CVE-2012-1601 + * HID: multitouch: correct eGalax a001 protocol + - LP: #913164 + * HID: multitouch: add more eGalax devices + - LP: #913164 + * HID: multitouch: add support for eGalax 0x722a + - LP: #913164 + * UAS: Re-add workqueue items if submission fails. + - LP: #901215 + * UAS: Use unique tags on non-streams devices. + - LP: #901215 + * UAS: Free status URB when we can't find the SCSI tag. + - LP: #901215 + * usb/uas: use unique tags for all LUNs + - LP: #901215 + * usb/uas: use scsi_host_find_tag() to find command from a tag + - LP: #901215 + * usb/uas: one only one status URB/host on stream-less connection + - LP: #901215 + * usb/uas: only bind if the hcd supports SG + - LP: #901215 + * usb/uas: move UAS structs / defines into a header file + - LP: #901215 + * usb/uas: add usb_pipe_usage_descriptor + - LP: #901215 + * usb/uas: make sure data urb is gone if we receive status before that + - LP: #901215 + * md: fix possible corruption of array metadata on shutdown. + - LP: #992038 + + -- Luis Henriques Mon, 30 Apr 2012 19:04:27 +0100 + +linux (3.2.0-24.37) precise-proposed; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * d-i: Add hid-logitech-dj to input-modules + - LP: #975198 + * d-i: Add rtl8187 driver to nic-usb-modules + - LP: #971719 + + [ Ian Abbott ] + + * SAUCE: staging: comedi: Add module parameters for default buffer size + - LP: #981234 + * SAUCE: staging: comedi: Add kernel config for default buffer sizes + - LP: #981234 + + [ K. Y. Srinivasan ] + + * SAUCE: hv_storvsc: Account for in-transit packets in the RESET path + - LP: #978394 + + [ Leann Ogasawara ] + + * [Config] Set CONFIG_COMEDI_DEFAULT_BUF_[SIZE_KB,MAXSIZE_KB] + - LP: #981234 + + [ Luis Henriques ] + + * SAUCE: ite-cir: postpone ISR registration + - LP: #984387 + + [ Manoj Iyer ] + + * SAUCE: Bluetooth: btusb: Add vendor specific ID (0489 e042) for + BCM20702A0 + - LP: #980965 + + [ Tim Gardner ] + + * Extract firmware module info during getabi + * [Config] Remove hiq-quanta module references + - LP: #913164 + * [Config] powerpc-smp: build in ATI and RADEON frame buffer drivers + - LP: #949288 + + [ Trond Myklebust ] + + * SAUCE: NFSv4: Ensure that the LOCK code sets exception->inode + - LP: #974664 + * SAUCE: NFSv4: Ensure that we check lock exclusive/shared type against + open modes + - LP: #974664 + + [ Upstream Kernel Changes ] + + * Input: psmouse - allow drivers to use psmouse_{de,}activate + - LP: #969334 + * Input: psmouse - use psmouse_[de]activate() from sentelic and hgpk + drivers + - LP: #969334 + * Input: sentelic - refactor code for upcoming new hardware support + - LP: #969334 + * Input: sentelic - enabling absolute coordinates output for newer + hardware + - LP: #969334 + * Input: sentelic - minor code cleanup + - LP: #969334 + * Input: sentelic - improve packet debugging information + - LP: #969334 + * Input: sentelic - filter taps in absolute mode + - LP: #969334 + * drm/i915: Fixes distorted external screen image on HP 2730p + - LP: #796030 + * NFSv4: Minor cleanups for nfs4_handle_exception and + nfs4_async_handle_error + - LP: #974664 + * NFSv4: Rate limit the state manager for lock reclaim warning messages + - LP: #974664 + * HID: multitouch: merge quanta driver into hid-multitouch + - LP: #913164 + * HID: usbhid: add quirk no_get for quanta 3008 devices + - LP: #913164 + + -- Leann Ogasawara Tue, 24 Apr 2012 07:47:49 -0700 + +linux (3.2.0-23.36) precise-proposed; urgency=low + + [ Andy Whitcroft ] + + * tools/hv: add basic Makefile + - LP: #977246 + * tools/hv: add basic manual pages + - LP: #977246 + * Hyper-V KVP daemon -- add to the tools package + - LP: #977246 + + [ David Henningsson ] + + * SAUCE: (drop after 3.3) ALSA: HDA: Remove quirk for Gigabyte + GA-H61M-S2PV + - LP: #948360 + + [ Leann Ogasawara ] + + * d-i: Add dm-mirror and dm-raid to md-modules + - LP: #919281 + + [ Tim Gardner ] + + * [Config] Fix invalid linux-headers link + - LP: #974403 + * Remove headers asm symlink entirely + - LP: #974403 + + [ Upstream Kernel Changes ] + + * Revert "x86/ioapic: Add register level checks to detect bogus io-apic + entries" + - LP: #974982 + * ALSA: HDA: Realtek: Take vmaster dac from multiout dac list + - LP: #974090 + * kexec: remove KMSG_DUMP_KEXEC + - LP: #944772 + * kmsg_dump: don't run on non-error paths by default + - LP: #944772 + * pstore: Introduce get_reason_str() to pstore + - LP: #944772 + + -- Leann Ogasawara Tue, 10 Apr 2012 08:16:09 -0700 + +linux (3.2.0-22.35) precise; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: hotkey quirks for various Zeptro Znote and Fujitsu Amilo + laptops" + * SAUCE: (no-up) elide some ioctl warnings which are known benign + - LP: #972355 + + [ Brad Figg ] + + * SAUCE (no-up) Provide a param for allowing the BIOS to handle changing + the brightness on AC/battery status changes. + - LP: #949311 + * SAUCE (drop after 3.4) Quirk for enabling backlight hotkeys on Samsung + N150P + - LP: #875893 + + [ Colin Ian King ] + + * SAUCE: PCI: Allow pcie_aspm=force to work even when FADT indicates it + is unsupported + - LP: #962038 + + [ Daniel Vetter ] + + * SAUCE: (drop after 3.5) drm/i915: reinstate GM45 TV detection fix + - LP: #638939 + + [ Kees Cook ] + + * SAUCE: SECCOMP: audit: always report seccomp violations + * SAUCE: SECCOMP: adjust prctl constant + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_USBIP_CORE=m + - LP: #900384 + * Rebase to v3.2.14 + * [Config] Updateconfigs after rebase to v3.2.14 + + [ Stefan Bader ] + + * d-i: Fix module name for dm-raid45 + - LP: #969248 + + [ Tim Gardner ] + + * SAUCE: remove __initdata from vesafb_fix + - LP: #969309 + + [ Upstream Kernel Changes ] + + * Revert "sched: tg->se->load should be initialised to tg->shares" + * toshiba_acpi: make one-bit bitfields unsigned + - LP: #810015 + * ACPI: EC: Add ec_get_handle() + - LP: #810015 + * toshiba_acpi: Support alternate hotkey interfaces + - LP: #810015 + * toshiba_acpi: Support additional hotkey scancodes + - LP: #810015 + * toshiba_acpi: Refuse to load on machines with buggy INFO + implementations + - LP: #810015 + * ata_piix: Add Toshiba Satellite Pro A120 to the quirks list due to + broken suspend functionality. + - LP: #886850 + * sweep the floors and convert some .get_drvinfo routines to strlcpy + - LP: #921793 + * be2net: init (vf)_if_handle/vf_pmac_id to handle failure scenarios + - LP: #921793 + * be2net: stop checking the UE registers after an EEH error + - LP: #921793 + * be2net: don't log more than one error on detecting EEH/UE errors + - LP: #921793 + * be2net: stop issuing FW cmds if any cmd times out + - LP: #921793 + * be2net: Fix TX queue create for Lancer + - LP: #921793 + * be2net: add register dump feature for Lancer + - LP: #921793 + * be2net: Add EEPROM dump feature for Lancer + - LP: #921793 + * be2net: Fix VLAN promiscous mode for Lancer + - LP: #921793 + * be2net: Use V1 query link status command for lancer + - LP: #921793 + * be2net: Move to new SR-IOV implementation in Lancer + - LP: #921793 + * be2net: Fix error recovery paths + - LP: #921793 + * be2net: Add error handling for Lancer + - LP: #921793 + * be2net: Use new hash key + - LP: #921793 + * be2net: Fix non utilization of RX queues + - LP: #921793 + * be2net: netpoll support + - LP: #921793 + * be2net: update some counters to display via ethtool + - LP: #921793 + * be2net: workaround to fix a bug in BE + - LP: #921793 + * be2net: fix ethtool ringparam reporting + - LP: #921793 + * be2net: refactor/cleanup vf configuration code + - LP: #921793 + * be2net: Add support for Skyhawk cards + - LP: #921793 + * be2net: Fix INTx processing for Lancer + - LP: #921793 + * be2net: fix range check for set_qos for a VF + - LP: #921793 + * be2net: query link status in be_open() + - LP: #921793 + * netdev: make net_device_ops const + - LP: #921793 + * be2net: create RSS rings even in multi-channel configs + - LP: #921793 + * ethtool: Null-terminate filename passed to ethtool_ops::flash_device + - LP: #921793 + * sched: Fix nohz load accounting + - LP: #838811 + * ACPICA: Fix regression in FADT revision checks + - LP: #883441 + * asus-wmi: move WAPF variable into quirks_entry + - LP: #969576 + * eeepc-wmi: refine quirks handling + - LP: #969576 + * drm/i915: Sanitize BIOS debugging bits from PIPECONF + - LP: #968307 + * drivers: hv: Get rid of some unnecessary code + * drivers: hv: kvp: Add/cleanup connector defines + * drivers: hv: kvp: Move the contents of hv_kvp.h to hyperv.h + * net/hyperv: Convert camel cased variables in rndis_filter.c to lower + cases + * net/hyperv: Correct the assignment in netvsc_recv_callback() + * net/hyperv: Remove the unnecessary memset in rndis_filter_send() + * tools: hv: Use hyperv.h to get the KVP definitions + * drivers: hv: Cleanup the kvp related state in hyperv.h + * drivers: hv: kvp: Cleanup the kernel/user protocol + * drivers: hv: Increase the number of VCPUs supported in the guest + * net/hyperv: Fix data corruption in rndis_filter_receive() + * net/hyperv: Add support for vlan trunking from guests + * Drivers: hv: Add new message types to enhance KVP + * net/hyperv: fix erroneous NETDEV_TX_BUSY use + * NLS: improve UTF8 -> UTF16 string conversion routine + * Drivers: hv: Support the newly introduced KVP messages in the driver + * Tools: hv: Fully support the new KVP verbs in the user level daemon + * Tools: hv: Support enumeration from all the pools + * Drivers: scsi: storvsc: Properly handle errors from the host + * net: mv643xx_eth: fix build error + - LP: #921793 + * rebase to v3.2.14 + + -- Leann Ogasawara Tue, 03 Apr 2012 08:59:16 -0700 + +linux (3.2.0-21.34) precise; urgency=low + + [ AceLan Kao ] + + * SAUCE: (drop after 3.4) asus-wmi: add scalar board brightness adj. + support + - LP: #961879 + * SAUCE: (drop after 3.4) asus-wmi: store backlight power status for AIO + machine + - LP: #961880 + + [ Andy Whitcroft ] + + * [Config]: enable CONFIG_DRM_LOAD_EDID_FIRMWARE + + [ John Johansen ] + + * SAUCE: AppArmor: Add the ability to mediate mount + * SAUCE: AppArmor: Add profile introspection file to interface + * SAUCE: AppArmor: basic networking rules + * SAUCE: Update aufs for build failure caused by apparmor backport + * SAUCE: AppArmor: Fix change_onexec when called from a confined task + - LP: #963756 + + [ Leann Ogasawara ] + + * Revert "SAUCE: (drop after 3.3) platform/x86: Add driver for Apple gmux + device" + * Rebase to v3.2.13 + * d-i: Fix iwl3945 driver name typo in nic-modules + * d-i: Add missing iwl* drivers to nic-modules + - LP: #965116 + * d-i: Remove obsolete bcm43xx* drivers from nic-modules + * d-i: Add brcm*mac drivers to nic-modules + + [ Seth Forshee ] + + * SAUCE: (drop after 3.3) apple_bl: Add register/unregister functions + * SAUCE: (drop after 3.3) platform/x86: Add driver for Apple gmux device + + [ Tim Gardner ] + + * Add isci to debian scsi-modules udeb + - LP: #963306 + * SAUCE: fsam7400: use UMH_WAIT_PROC consistently + - LP: #963685 + * SAUCE: disable_nx should not be in __cpuinitdata section for X86_32 + - LP: #968233 + + [ Upstream Kernel Changes ] + + * Bluetooth: Adding USB device 13d3:3375 as an Atheros AR3012. + - LP: #916319 + * x86: Report cpb and eff_freq_ro flags correctly + - LP: #960461 + * x86/amd: Add missing feature flag for fam15h models 10h-1fh processors + - LP: #960461 + * KVM: Move cpuid code to new file + - LP: #960466 + * KVM: expose latest Intel cpu new features (BMI1/BMI2/FMA/AVX2) to guest + - LP: #960466 + * apparmor: add missing rcu_dereference() + * apparmor: fix module parameter handling + * btrfs, nfs, apparmor: don't pull mnt_namespace.h for no reason... + * switch security_path_chmod() to umode_t + * switch securityfs_create_file() to umode_t + * switch ->path_mkdir() to umode_t + * switch ->path_mknod() to umode_t + * capabilities: remove the task from capable LSM hook entirely + * switch security_path_chmod() to struct path * + * AppArmor: refactor securityfs to use structures + * AppArmor: add initial "features" directory to securityfs + * AppArmor: add "file" details to securityfs + * AppArmor: export known rlimit names/value mappings in securityfs + * AppArmor: Add mising end of structure test to caps unpacking + * AppArmor: Fix dropping of allowed operations that are force audited + * AppArmor: Fix underflow in xindex calculation + * AppArmor: fix mapping of META_READ to audit and quiet flags + * AppArmor: Fix the error case for chroot relative path name lookup + * AppArmor: Fix error returned when a path lookup is disconnected + * AppArmor: Fix oops in policy unpack auditing + * AppArmor: Add const qualifiers to generated string tables + * AppArmor: Retrieve the dentry_path for error reporting when path lookup + fails + * AppArmor: Minor cleanup of d_namespace_path to consolidate error + handling + * AppArmor: Update dfa matching routines. + * AppArmor: Move path failure information into aa_get_name and rename + * AppArmor: Add ability to load extended policy + * AppArmor: add const qualifiers to string arrays + * AppArmor: Fix location of const qualifier on generated string tables + * drm: allow loading an EDID as firmware to override broken monitor + * usermodehelper: use UMH_WAIT_PROC consistently + - LP: #963685 + * usermodehelper: introduce umh_complete(sub_info) + - LP: #963685 + * usermodehelper: implement UMH_KILLABLE + - LP: #963685 + * usermodehelper: kill umh_wait, renumber UMH_* constants + - LP: #963685 + * usermodehelper: ____call_usermodehelper() doesn't need do_exit() + - LP: #963685 + * kmod: introduce call_modprobe() helper + - LP: #963685 + * kmod: make __request_module() killable + - LP: #963685 + * x86, tsc: Fix SMI induced variation in quick_pit_calibrate() + - LP: #965586 + * drm/i915: Ignore LVDS on hp t5745 and hp st5747 thin client + - LP: #911916, #911920 + * drm/i915: Add Clientron E830 to the ignore LVDS list + - LP: #907055 + * rebase to v3.2.13 + + -- Leann Ogasawara Thu, 29 Mar 2012 08:33:38 -0700 + +linux (3.2.0-20.33) precise; urgency=low + + [ Upstream Kernel Changes ] + + * (pre-stable) ASPM: Fix pcie devices with non-pcie children + - LP: #961482 + + -- Leann Ogasawara Tue, 27 Mar 2012 08:37:43 -0700 + +linux (3.2.0-20.32) precise; urgency=low + + [ Andy Lutomirski ] + + * SAUCE: SECCOMP: Add PR_{GET,SET}_NO_NEW_PRIVS to prevent execve from + granting privs + + [ John Johansen ] + + * SAUCE: SECCOMP: Fix apparmor for PR_{GET,SET}_NO_NEW_PRIVS + + [ Kees Cook ] + + * SAUCE: SECCOMP: seccomp: remove duplicated failure logging + * [Config] SECCOMP_FILTER=y + + [ Upstream Kernel Changes ] + + * seccomp: audit abnormal end to a process due to seccomp + + [ Will Drewry ] + + * SAUCE: SECCOMP: sk_run_filter: add BPF_S_ANC_SECCOMP_LD_W + * SAUCE: SECCOMP: net/compat.c,linux/filter.h: share compat_sock_fprog + * SAUCE: SECCOMP: seccomp: kill the seccomp_t typedef + * SAUCE: SECCOMP: arch/x86: add syscall_get_arch to syscall.h + * SAUCE: SECCOMP: asm/syscall.h: add syscall_get_arch + * SAUCE: SECCOMP: seccomp: add system call filtering using BPF + * SAUCE: SECCOMP: seccomp: add SECCOMP_RET_ERRNO + * SAUCE: SECCOMP: signal, x86: add SIGSYS info and make it synchronous. + * SAUCE: SECCOMP: seccomp: Add SECCOMP_RET_TRAP + * SAUCE: SECCOMP: ptrace,seccomp: Add PTRACE_SECCOMP support + * SAUCE: SECCOMP: x86: Enable HAVE_ARCH_SECCOMP_FILTER + * SAUCE: SECCOMP: Documentation: prctl/seccomp_filter + + -- Leann Ogasawara Wed, 21 Mar 2012 14:03:41 -0700 + +linux (3.2.0-19.31) precise; urgency=low + + [ Stefan Bader ] + + * d-i: Add dm-multipath and scsi device handlers + - LP: #959749 + * d-i: Move multipath modules into their own udeb + - LP: #598251, #959749 + + [ Tim Gardner ] + + * [Config] Auto-detect do_tools setting + * [Config] correctly specify CROSS_COMPILE for tools build + * [Config] CONFIG_DRM_PSB_CDV=n + * Rebase to v3.2.12 + + [ Upstream Kernel Changes ] + + * powerpc/pmac: Fix SMP kernels on pre-core99 UP machines + - LP: #959959 + * rebase to v3.2.12 + + -- Leann Ogasawara Tue, 20 Mar 2012 09:11:26 -0700 + +linux (3.2.0-19.30) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] Fix typeo in the Hyper-V module names + + [ Colin Watson ] + + * [Config] Move kernels to "Section: kernel" + - LP: #499557 + + [ John Johansen ] + + * SAUCE: AppArmor: Add ability to load extended policy + * SAUCE: AppArmor: Add the ability to mediate mount + * SAUCE: AppArmor: Add profile introspection file to interface + * SAUCE: AppArmor: basic networking rules + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER + - LP: #952035 + * Rebase to v3.2.10 + * [Config] Update configs after rebase to v3.2.10 + * Rebase to v3.2.11 + * [Config] Disable CONFIG_STUB_POULSBO + - LP: #899244 + * [Config] Add CONFIG_DRM_PSB check to enforcer + - LP: #899244 + + [ Tim Gardner ] + + * [Config] Drop non-SMP powerpc + + [ Upstream Kernel Changes ] + + * net/hyperv: Use the built-in macro KBUILD_MODNAME for this driver + * x86: Derandom delay_tsc for 64 bit + * Bluetooth: Fix l2cap conn failures for ssp devices + - LP: #872044 + * KVM: x86: extend "struct x86_emulate_ops" with "get_cpuid" + - LP: #917842 + - CVE-2012-0045 + * KVM: x86: fix missing checks in syscall emulation + - LP: #917842 + - CVE-2012-0045 + * rebase to v3.2.11 + * rebase to v3.2.10 + + -- Leann Ogasawara Fri, 16 Mar 2012 08:02:07 -0700 + +linux (3.2.0-18.29) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] restore build-% shortcut + * SAUCE: ata_piix: defer disks to the Hyper-V drivers by default + - LP: #929545, #942316 + + [ Eugeni Dodonov ] + + * SAUCE: drm: give up on edid retries when i2c bus is not responding + - LP: #855124 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.3) platform/x86: Add driver for Apple gmux device + - LP: #925544 + + [ Upstream Kernel Changes ] + + * bsg: fix sysfs link remove warning + - LP: #946928 + * regset: Prevent null pointer reference on readonly regsets + - LP: #949905 + - CVE-2012-1097 + * regset: Return -EFAULT, not -EIO, on host-side memory fault + - LP: #949905 + - CVE-2012-1097 + + [ Wu Fengguang ] + + * SAUCE: (drop after 3.4) ALSA: hda - add id for Atom Cedar Trail HDMI + codec + + -- Leann Ogasawara Fri, 09 Mar 2012 07:56:11 -0800 + +linux (3.2.0-18.28) precise; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- adapt to the new changelog handling + * ubuntu: AUFS -- sort out the relative header paths + * ubuntu: AUFS -- update to d266b0c5d0693d6383976ee54b9e2c0fa9a3f5b0 + + [ Chase Douglas ] + + * SAUCE: (drop after 3.3) HID: hid-magicmouse: Add pointer and buttonpad + properties for Magic Trackpad + * SAUCE: Input: synaptics - add second variant of two-button clickpad + * SAUCE: Input: synapticss - Set buttonpad property for all clickpads + + [ Johannes Berg ] + + * SAUCE: iwlwifi: fix key removal + - LP: #911059 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: Fix unpack of network tables." + * Revert "SAUCE: AppArmor: Allow dfa backward compatibility with broken + userspace" + * SAUCE: AppArmor: Add mising end of structure test to caps unpacking + * SAUCE: AppArmor: Fix dropping of allowed operations that are force + audited + * SAUCE: AppArmor: Fix underflow in xindex calculation + * SAUCE: AppArmor: fix mapping of META_READ to audit and quiet flags + * SAUCE: AppArmor: Fix the error case for chroot relative path name + lookup + - LP: #925028 + * SAUCE: AppArmor: Retrieve the dentry_path for error reporting when path + lookup fails + - LP: #925028 + * SAUCE: AppArmor: Minor cleanup of d_namespace_path to consolidate error + handling + * SAUCE: AppArmor: Update dfa matching routines. + * SAUCE: AppArmor: Move path failure information into aa_get_name and + rename + * SAUCE: AppArmor: Make chroot relative the default path lookup type + * SAUCE: AppArmor: Add ability to load extended policy + * SAUCE: AppArmor: basic networking rules + * SAUCE: AppArmor: Add profile introspection file to interface + * SAUCE: AppArmor: Add the ability to mediate mount + * SAUCE: AppArmor: Add mount information to apparmorfs + + [ Kees Cook ] + + * SAUCE: AppArmor: refactor securityfs to use structures + * SAUCE: AppArmor: add initial "features" directory to securityfs + * SAUCE: AppArmor: add "file" details to securityfs + * SAUCE: AppArmor: export known rlimit names/value mappings in securityfs + + [ Leann Ogasawara ] + + * Revert "[Config] Enable CONFIG_NVRAM=m" + - LP: #942193 + * Rebase to v3.2.7 + * [Config] Enable CONFIG_USB_SERIAL_QUATECH2=m on arm and powerpc + * [Config] Enable CONFIG_USB_SERIAL_QUATECH_USB2=m on arm and powerpc + * [Config] Add CONFIG_NVRAM to config enforcer + - LP: #942193 + * [Config] Enable CONFIG_SCSI_IBMVSCSI=m for powerpc + - LP: #943090 + * [Config] Enable CONFIG_SCSI_IPR=m for powerpc + - LP: #943090 + * provide ipmi udeb + - LP: #942926 + * Rebase to v3.2.9 + * Add ibmveth to d-i/modules-powerpc/nic-modules + - LP: #712188 + * [Config] Enable CONFIG_SCSI_IBMVFC=m for powerpc + - LP: #712188 + * Add ibmvfc and ibmvscsic to d-i/modules-powerpc/nic-modules + - LP: #712188 + + [ Seth Heasley ] + + * SAUCE: ALSA: hda - Add Lynx Point HD Audio Controller DeviceIDs + - LP: #900119 + * SAUCE: ahci: AHCI-mode SATA patch for Intel Lynx Point DeviceIDs + - LP: #900119 + * SAUCE: ata_piix: IDE-mode SATA patch for Intel Lynx Point DeviceIDs + - LP: #900119 + * SAUCE: i2c-i801: Add device IDs for Intel Lynx Point + - LP: #900119 + + [ Tim Gardner ] + + * [Config] updateconfigs after apparmor patches + * [Config] Added hv_netvsc and hv_storvsc to -virtual + - LP: #942256 + * [Config] Enable aufs + - LP: #943119 + + [ Upstream Kernel Changes ] + + * Revert "Revert "ath9k_hw: fix interpretation of the rx KeyMiss flag"" + * Revert "AppArmor: compatibility patch for v5 interface" + * Revert "AppArmor: compatibility patch for v5 network controll" + * ACPI / PM: Do not save/restore NVS on Asus K54C/K54HR + - LP: #898503 + * rebase to v3.2.9 + - LP: #900802 + * rebase to v3.2.8 + * rebase to v3.2.7 + - LP: #930842 + + -- Leann Ogasawara Fri, 02 Mar 2012 07:30:45 -0800 + +linux (3.2.0-17.27) precise; urgency=low + + [ Eugeni Dodonov ] + + * SAUCE: drm/i915: fix operator precedence when enabling RC6p + + -- Leann Ogasawara Tue, 21 Feb 2012 06:31:42 -0800 + +linux (3.2.0-17.26) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] clean up the human consumable package descriptions + * [Config] fix generic flavour description + * [Config] clean up linux-tools package descriptions + - LP: #593107 + * deviations -- note the source of the Hyper-V updates + * SAUCE: ata_piix: defer to the Hyper-V drivers by default + - LP: #929545 + + [ Eugeni Dodonov ] + + * SAUCE: drm/i915: do not enable RC6p on Sandy Bridge + + [ Kees Cook ] + + * SAUCE: (drop after 3.3) security: create task_free security callback + * SAUCE: (drop after 3.3) security: Yama LSM + * SAUCE: (drop after 3.3) Yama: add PR_SET_PTRACER_ANY + * SAUCE: Yama: add link restrictions + * SAUCE: security: unconditionally chain to Yama LSM + + [ Leann Ogasawara ] + + * Drop ndiswrapper + + [ Robert Hooker ] + + * SAUCE: drm/i915: Enable RC6 by default on sandybridge. + + [ Tim Gardner ] + + * SAUCE: ipheth: Add iPhone 4S + - LP: #900802 + * dropped hv_mouse + * [Config] CONFIG_X86_NUMACHIP=y + + [ Upstream Kernel Changes ] + + * Staging: hv: vmbus: Support building the vmbus driver as part of the + kernel + * hv: Add Kconfig menu entry + * Drivers: hv: Fix a memory leak + * Drivers: hv: Make the vmbus driver unloadable + * Drivers: hv: Get rid of an unnecessary check in hv.c + * Staging: hv: mousevsc: Make boolean states boolean + * Staging: hv: mousevsc: Inline the code for mousevsc_on_device_add() + * Staging: hv: mousevsc: Inline the code for reportdesc_callback() + * Staging: hv: mousevsc: Cleanup mousevsc_on_channel_callback() + * Staging: hv: mousevsc: Add a new line to a debug string + * Staging: hv: mousevsc: Get rid of unnecessary include files + * Staging: hv: mousevsc: Address some style issues + * Staging: hv: mousevsc: Add a check to prevent memory corruption + * Staging: hv: mousevsc: Use the KBUILD_MODNAME macro + * Staging: hv: storvsc: Use mempools to allocate struct + storvsc_cmd_request + * Staging: hv: storvsc: Cleanup error handling in the probe function + * Staging: hv: storvsc: Fixup the error when processing SET_WINDOW + command + * Staging: hv: storvsc: Fix error handling storvsc_host_reset() + * Staging: hv: storvsc: Use the accessor function shost_priv() + * Staging: hv: storvsc: Use the unlocked version queuecommand + * Staging: hv: storvsc: use the macro KBUILD_MODNAME + * Staging: hv: storvsc: Get rid of an unnecessary forward declaration + * Staging: hv: storvsc: Upgrade the vmstor protocol version + * Staging: hv: storvsc: Support hot add of scsi disks + * Staging: hv: storvsc: Support hot-removing of scsi devices + * staging: hv: Use kmemdup rather than duplicating its implementation + * staging: hv: move hv_netvsc out of staging area + * Staging: hv: mousevsc: Properly add the hid device + * Staging: hv: storvsc: Disable clustering + * Staging: hv: storvsc: Cleanup storvsc_device_alloc() + * Staging: hv: storvsc: Fix a bug in storvsc_command_completion() + * Staging: hv: storvsc: Fix a bug in copy_from_bounce_buffer() + * Staging: hv: storvsc: Implement per device memory pools + * Staging: hv: remove hv_mouse driver as it's now in the hid directory + * Staging: hv: update TODO file + * Staging: hv: storvsc: Fix a bug in create_bounce_buffer() + * net/hyperv: Fix long lines in netvsc.c + * net/hyperv: Add support for promiscuous mode setting + * net/hyperv: Fix the stop/wake queue mechanism + * net/hyperv: Remove unnecessary kmap_atomic in netvsc driver + * net/hyperv: Add NETVSP protocol version negotiation + * net/hyperv: Add support for jumbo frame up to 64KB + * net/hyperv: fix possible memory leak in do_set_multicast() + * net/hyperv: rx_bytes should account the ether header size + * net/hyperv: fix the issue that large packets be dropped under bridge + * net/hyperv: Use netif_tx_disable() instead of netif_stop_queue() when + necessary + * net/hyperv: Fix the page buffer when an RNDIS message goes beyond page + boundary + * HID: Move the hid-hyperv driver out of staging + * HID: hv_mouse: Properly add the hid device + * HID: hyperv: Properly disconnect the input device + * Staging: hv: storvsc: Cleanup some comments + * Staging: hv: storvsc: Cleanup storvsc_probe() + * Staging: hv: storvsc: Cleanup storvsc_queuecommand() + * Staging: hv: storvsc: Introduce defines for srb status codes + * Staging: hv: storvsc: Cleanup storvsc_host_reset_handler() + * Staging: hv: storvsc: Move and cleanup storvsc_remove() + * Staging: hv: storvsc: Add a comment to explain life-cycle management + * Staging: hv: storvsc: Get rid of the on_io_completion in + hv_storvsc_request + * Staging: hv: storvsc: Rename the context field in hv_storvsc_request + * Staging: hv: storvsc: Miscellaneous cleanup of storvsc driver + * Staging: hv: storvsc: Cleanup the code for generating protocol version + * Staging: hv: storvsc: Cleanup some protocol related constants + * Staging: hv: storvsc: Get rid of some unused defines + * Staging: hv: storvsc: Consolidate the request structure + * Staging: hv: storvsc: Consolidate all the wire protocol definitions + * Staging: hv: storvsc: Move the storage driver out of the staging area + * x86: Make flat_init_apic_ldr() available + * x86: Add x86_init platform override to fix up NUMA core numbering + * x86: Add NumaChip support + * x86/numachip: Drop unnecessary conflict with EDAC + * Input: bcm5974 - set BUTTONPAD property + + -- Leann Ogasawara Fri, 17 Feb 2012 10:12:34 -0800 + +linux (3.2.0-16.25) precise; urgency=low + + [ Andy Whitcroft ] + + * d-i -- include the Hyper-V drivers in the virtio udeb + - LP: #917135 + + [ Felix Fietkau ] + + * (pre-stable): ath9k_hw: fix a RTS/CTS timeout regression + - LP: #925602 + + [ Keith Packard ] + + * SAUCE: drm/i915: Force explicit bpp selection for + intel_dp_link_required + - LP: #745112, #912387, #917330 + + [ Leann Ogasawara ] + + * Fix typo in generic-pae description + - LP: #928448 + * Rebase to v3.2.6 + + [ Upstream Kernel Changes ] + + * procfs: parse mount options + - CVE-2011-4917 + * procfs: add hidepid= and gid= mount options + - CVE-2011-4917 + * proc: fix null pointer deref in proc_pid_permission() + - CVE-2011-4917 + * xhci: Remove warnings about MSI and MSI-X capabilities. + - LP: #929656 + * xhci: Remove scary warnings about transfer issues. + - LP: #929656 + * x86, mce, therm_throt: Don't report power limit and package level + thermal throttle events in mcelog + - LP: #930288 + * rebase to v3.2.6 + - LP: #924320 + - LP: #918254 + + -- Leann Ogasawara Mon, 13 Feb 2012 13:00:08 -0800 + +linux (3.2.0-15.24) precise; urgency=low + + [ Leann Ogasawara ] + + * Add CONFIG_THERM_ADT746X=y to config enforcer for powerpc and + powerpc-smp flavours + - LP: #923094 + + [ Merlin Schumacher ] + + * SAUCE: acer-wmi: support for P key on TM8372 + - LP: #865807 + + [ Tim Gardner ] + + * [Config] Rebase to v3.2.5 + * [Config] CONFIG_THERM_ADT746X=y + - LP: #923094 + + [ Upstream Kernel Changes ] + + * rebase to v3.2.5 + + -- Leann Ogasawara Tue, 07 Feb 2012 11:47:43 -0800 + +linux (3.2.0-14.23) precise; urgency=low + + [ Andy Whitcroft ] + + * debian -- add usage help to insert-mainline-changes + + [ Tim Gardner ] + + * [Config] Rebase to v3.2.3 + + [ Upstream Kernel Changes ] + + * Revert "ASoC: Don't go through cache when applying WM5100 rev A + updates" + * Revert "ASoC: Mark WM5100 register map cache only when going into + BIAS_OFF" + * rebase to v3.2.3 + + -- Leann Ogasawara Fri, 03 Feb 2012 12:12:25 -0800 + +linux (3.2.0-13.22) precise; urgency=low + + [ Alex Deucher ] + + * (pre-stable): drm/radeon/kms: move panel mode setup into encoder mode + set + - LP: #925538 + * (pre-stable): drm/radeon/kms: rework modeset sequence for DCE41 and + DCE5 + - LP: #925538 + + [ Andy Whitcroft ] + + * [Config] review IPv6 configuration options and enable + + [ David Henningsson ] + + * SAUCE: ALSA: HDA: Remove quirk for Toshiba Qosmio G50 + - LP: #923316 + * SAUCE: ALSA: HDA: Fix jack creation for codecs with front and rear Line + In + - LP: #923409 + + [ James M. Leddy ] + + * SAUCE: Bluetooth: Add support for BCM20702A0 [0a5c:21e6] + - LP: #906832 + + [ Manoj Iyer ] + + * SAUCE: Bluetooth: Add support for BCM20702A0 [0a5c:21e1] + - LP: #906832 + * SAUCE: Add vendor specific ID (0a5c 21f3) for BCM20702A0. + - LP: #925552 + + [ Seth Forshee ] + + * (pre-stable): drm/radeon/kms: disable output polling when suspended + - LP: #925570 + + [ Tim Gardner ] + + * [Config] CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m + - LP: #922221 + * [Config] Add mtip32xx to d-i block modules + - LP: #922221 + * [Config] Enable USB3.0 in d-i + + [ Upstream Kernel Changes ] + + * block: Add driver for Micron RealSSD pcie flash cards + - LP: #922221 + * mtip32xx: fix warnings/errors on 32-bit compiles + - LP: #922221 + * mtip32xx: cleanup compat ioctl handling + - LP: #922221 + * mtip32xx: ensure that all local functions are static + - LP: #922221 + * mtip32xx: mark a few more items static + - LP: #922221 + * mtip32xx: add module.h include to avoid conflict with moduleh tree + - LP: #922221 + * mtip32xx: update to new ->make_request() API + - LP: #922221 + * mtip32xx: updates based on feedback + - LP: #922221 + * mtip32xx: uninitialized variable in mtip_quiesce_io() + - LP: #922221 + * mtip32xx: do rebuild monitoring asynchronously + - LP: #922221 + * watchdog: iTCO_wdt: add Intel Lynx Point DeviceIDs + - LP: #900119 + * drm/i915: mask transcoder select bits before setting them on LVDS + - LP: #924989 + * (pre-stable) USB: Realtek cr: fix autopm scheduling while atomic + - LP: #917962 + * nouveau: properly check for _DSM function support + - LP: #925608 + * nouveau: Support Optimus models for vga_switcheroo + - LP: #925608 + + -- Leann Ogasawara Thu, 02 Feb 2012 13:26:59 -0800 + +linux (3.2.0-12.21) precise; urgency=low + + [ Upstream Kernel Changes ] + + * Revert "ath9k_hw: fix interpretation of the rx KeyMiss flag" + - LP: #923512 + + -- Leann Ogasawara Mon, 30 Jan 2012 06:46:01 -0800 + +linux (3.2.0-12.20) precise; urgency=low + + [ Andy Whitcroft ] + + * switch to new style rebase marker with bug number + + [ Leann Ogasawara ] + + * Add CONFIG_GPIO_TWL4030=y for arm[el|hf] to the config enforcer + - LP: #921934 + + [ Paolo Pisati ] + + * [Config] Switch CONFIG_GPIO_TWL4030=y back on arm[el|hf]. + - LP: #921934 + + [ Tim Gardner ] + + * Rebase to v3.2.2, CONFIG_SND_KCTL_JACK=y + * [Config] Add Hyper-V modules to virtual inclusion list + - LP: #922063 + + [ Upstream Kernel Changes ] + + * Revert "CHROMIUM: enable CONFIG_SECCOMP_FILTER and + CONFIG_HAVE_SECCOMP_FILTER" + * Revert "CHROMIUM: Fix kref usage" + * Revert "CHROMIUM: Fix seccomp_t compile error" + * Revert "CHROMIUM: seccomp_filter: make inherited filters composable" + * Revert "CHROMIUM: seccomp_filter: inheritance documentation" + * Revert "CHROMIUM: seccomp_filter: allow CAP_SYS_ADMIN management of + execve" + * Revert "CHROMIUM: seccomp_filter: remove "skip" from copy and add drop + helper" + * Revert "CHROMIUM: seccomp_filters: clean up warnings; kref mistake" + * Revert "CHROMIUM: seccomp_filters: guard all ftrace wrapper code" + * Revert "CHROMIUM: seccomp_filter: kill NR_syscall references" + * Revert "CHROMIUM: enable CONFIG_BTREE" + * Revert "CHROMIUM: seccomp_filters: move to btrees" + * Revert "CHROMIUM: arm: select HAVE_SECCOMP_FILTER" + * Revert "CHROMIUM: x86: add HAVE_SECCOMP_FILTER and seccomp_execve" + * Revert "CHROMIUM: seccomp_filter: Document what seccomp_filter is and + how it works." + * Revert "CHROMIUM: seccomp_filter: add process state reporting" + * Revert "CHROMIUM: seccomp_filter: new mode with configurable syscall + filters" + * rebase to v3.2.2 + - LP: #795823 + - LP: #909419 + - LP: #724831 + + -- Tim Gardner Thu, 26 Jan 2012 02:54:56 +0000 + +linux (3.2.0-11.19) precise; urgency=low + + [ Daniel Lezcano ] + + * SAUCE: Add reboot_pid_ns to handle the reboot syscall + - LP: #914676 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Introduce snd_hda_get_pin_label() + * ALSA: hda - Cache the jack-detection value + * ALSA: hda - Create jack-detection kcontrols + * ALSA: hda - Manage unsol tags in hda_jack.c + * ALSA: Introduce common helper functions for jack-detection control + * ALSA: HDA: Jack: Export required functions from hda_jack.c + * ALSA: hda/jack - Fix NULL-dereference at probing + * ALSA: hda/jack - Fix the assignment of input jack-type + * ALSA: hda - Add missing initialization of kctl jack status + * ALSA: hda - Add missing inclusion of linux/export.h + * ALSA: hda - Give more unique names by snd_hda_get_pin_label() + * ALSA: hda - Fix a typo + * ALSA: hda - Don't add channel suffix for headphone pin labels + * ALSA: hda - Integrate input-jack stuff into kctl-jack + * ALSA: hda/realtek - Avoid conflict of unsol-events with static quirks + * ALSA: hda/realtek - Remove use_jack_tbl field + + -- Leann Ogasawara Wed, 25 Jan 2012 06:57:19 -0800 + +linux (3.2.0-10.18) precise; urgency=low + + [ Tim Gardner ] + + * SAUCE: ecryptfs: Print inode on metadata error + + [ Upstream Kernel Changes ] + + * Revert "proc: enable writing to /proc/pid/mem" + - LP: #919115 + - CVE-2012-0056 + * (pre-stable) ALSA: HDA: Use LPIB position fix for Macbook Pro 7, 1 + - LP: #909419 + + -- Andy Whitcroft Tue, 24 Jan 2012 10:15:12 +0000 + +linux (3.2.0-10.17) precise; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: overlayfs -- fs: limit filesystem stacking depth" + * Revert "SAUCE: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: overlayfs -- overlayfs: implement show_options" + * Revert "SAUCE: overlayfs -- overlayfs: add statfs support" + * Revert "SAUCE: overlayfs -- overlay filesystem" + * Revert "SAUCE: overlayfs -- vfs: introduce clone_private_mount()" + * Revert "SAUCE: overlayfs -- vfs: export do_splice_direct() to modules" + * Revert "SAUCE: overlayfs -- vfs: add i_op->open()" + * ensure debian/ is not excluded from git by default + * add new scripting to handle buglinks in rebases + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- overlayfs: apply device cgroup and security + permissions to overlay files + - LP: #915941, #918212 + - CVE-2012-0055 + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * Revert "SAUCE: dmar: disable if ricoh multifunction detected" + * [Config] Disable CONFIG_INTEL_IOMMU_DEFAULT_ON + - LP: #907377, #911236 + * [Config] Enable CONFIG_IRQ_REMAP + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: pass struct path to __dentry_open() + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Upstream Kernel Changes ] + + * (pre-stable) x86/PCI: amd: factor out MMCONFIG discovery + - LP: #647043 + * (pre-stable) PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that + breaks USB + - LP: #647043 + + -- Leann Ogasawara Mon, 16 Jan 2012 07:10:08 -0800 + +linux (3.2.0-9.16) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] Enable numerous CONFIG_VIDEO_* cards on ARM + * [Config] pull ARM sound modules =m + * [Config] CONFIG_RTC_DRV_TEST is for testing only + * [Config] CONFIG_USB_DUMMY_HCD is testing only + * [Config] CONFIG_USB_FILE_STORAGE is deprecated + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_CAN_TI_HECC on armel" + * [Config] Enable CONFIG_HW_RANDOM_PASEMI=m + * [Config] Enable CONFIG_MMC_TMIO=m + * [Config] Enable CONFIG_MTD_NAND_FSL_ELBC=m + * [Config] Enable CONFIG_ISI=m + * [Config] Enable CONFIG_MMC=y + * [Config] Enable CONFIG_LIRC_PARALLEL=m + * [Config] Enable CONFIG_MAC_EMUMOUSEBTN=m + * [Config] Enable CONFIG_CHR_DEV_SG=y + * [Config] Enable CONFIG_GPIO_PCA953X=m + * [Config] Enable CONFIG_GPIO_TWL4030=m + * [Config] Enable CONFIG_INET_DIAG=m + * [Config] Enable CONFIG_NLS_ISO8859_1=m + * [Config] Enable CONFIG_NVRAM=m + * [Config] Enable CONFIG_SLIP=m + * [Config] Enable CONFIG_PC300TOO=m + * [Config] Enable CONFIG_TUN=y + * [Config] Enable CONFIG_NET_CLS_CGROUP=m + * [Config] Enable CONFIG_THERMAL=y + * [Config] Enable CONFIG_PPP=y + * [Config] Enable CONFIG_PCI_STUB=m + * Rebase to v3.2.1 + * [Config] Enable CONFIG_RTL8192E=m + * [Config] Enable CONFIG_RTS5139=m + + [ Stefan Bader ] + + * [Config] Make CONFIG_VIRTIO_(NET|BLK)=y + + [ Upstream Kernel Changes ] + + * ARM: restart: add restart hook to machine_desc record + * ARM: restart: allow platforms more flexibility specifying restart mode + * ARM: restart: move reboot failure handing into machine_restart() + * ARM: restart: remove argument to setup_mm_for_reboot() + * ARM: 7159/1: OMAP: Introduce local common.h files + * ARM: restart: only perform setup for restart when soft-restarting + * ARM: 7189/1: OMAP3: Fix build break in cpuidle34xx.c because of irq + function + * ARM: idmap: populate identity map pgd at init time using .init.text + * ARM: suspend: use idmap_pgd instead of suspend_pgd + * ARM: proc-*.S: place cpu_reset functions into .idmap.text section + * ARM: idmap: use idmap_pgd when setting up mm for reboot + * ARM: head.S: only include __turn_mmu_on in the initial identity mapping + * ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting + * ARM: 7194/1: OMAP: Fix build after a merge between v3.2-rc4 and ARM + restart changes + * ARM: lib: add call_with_stack function for safely changing stack + * ARM: reset: implement soft_restart for jumping to a physical address + * ARM: stop: execute platform callback from cpu_stop code + * ARM: kexec: use soft_restart for branching to the reboot buffer + * ARM: restart: omap: use new restart hook + * topdown mmap support + - LP: #861296 + + [ Upstream Kernel Changes ] + + * Rebase to v3.2.1 + + -- Leann Ogasawara Fri, 13 Jan 2012 20:32:08 +0100 + +linux (3.2.0-8.15) precise; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_ACPI_PROCFS + * Remove server from getabis + * Temporarily disable module check + * [Config] Disable CONFIG_MTD_TESTS + * [Config] Disable CONFIG_X86_E_POWERSAVER + * [Config] Set CONFIG_ARCNET=m + * [Config] Enable CONFIG_ATM_DUMMY=m + * [Config] Enable CONFIG_BLK_DEV_MD=y + * ubuntu: fsam7400 select CHECK_SIGNATURE and depend on X86 + * [Config] Enable CONFIG_BLK_DEV_SD=y + * [Config] Enable CONFIG_BLK_DEV_SR=y + * [Config] Enable CONFIG_BLK_DEV_UB=m + * [Config] Enable CONFIG_COPS=m + * [Config] Enable CONFIG_DVB_USB_EC168=m + * [Config] Enable CONFIG_ENC28J60=m + * [Config] Enable CONFIG_FB_UVESA=m + * [Config] Enable CONFIG_FB_ATY=m + * [Config] Enable CONFIG_BROADCOM_PHY=y + * [Config] Enable CONFIG_CICADA_PHY=y + * [Config] Enable CONFIG_DAVICOM_PHY=y + * [Config] Enable CONFIG_ICPLUS_PHY=y + * [Config] Enable CONFIG_LSI_ET1011C_PHY=y + * [Config] Enable CONFIG_LXT_PHY=y + * [Config] Enable CONFIG_MARVELL_PHY=y + * [Config] Enable CONFIG_NATIONAL_PHY=y + * [Config] Enable CONFIG_QSEMI_PHY=y + * [Config] Enable CONFIG_SMSC_PHY=y + * [Config] Enable CONFIG_VITESSE_PHY=y + * Add 3w-sas to scsi-modules + - LP: #776542 + + [ Mathieu Trudel-Lapierre ] + + * SAUCE: ipv6: make the net.ipv6.conf.all.use_tempaddr sysctl propagate + to interface settings + + [ Paolo Pisati ] + + * Revert "SAUCE: omap3: beagle: if rev unknown, assume xM revision C" + - LP: #912199 + * Revert "SAUCE: omap3: beagle: detect new xM revision B" + - LP: #912199 + * Revert "SAUCE: omap3: beaglexm: fix DVI initialization" + - LP: #912199 + + [ Upstream Kernel Changes ] + + * Bluetooth: Add support for BCM20702A0 [0a5c:21e3] + - LP: #906832 + + -- Leann Ogasawara Fri, 06 Jan 2012 10:02:03 -0800 + +linux (3.2.0-8.14) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_SND_USB_6FIRE + - LP: #912197 + * rebase to mainline v3.2 final release + * updateconfigs following rebase to v3.2 final + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + * ubuntu: AUFS -- aufs3-base.patch + * ubuntu: AUFS -- aufs3-standalone.patch + * ubuntu: AUFS -- fix undefined __devcgroup_inode_permission + * ubuntu: AUFS -- fix undefined security_path_link + * ubuntu: AUFS -- update to 4cf5db36bcd9748e8e7270022f295f84d1fc2245 + * ubuntu: AUFS -- updateconfigs following update + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * ubuntu: AUFS -- enable in config and makefile + * ubuntu: AUFS -- disable in favor of overlayfs + * [Config] linux-virtual -- should include the extX modules + - LP: #912308 + + [ Tyler Hicks ] + + * SAUCE: eCryptfs: Improve statfs reporting + - LP: #885744 + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2 + + -- Leann Ogasawara Mon, 26 Dec 2011 20:24:30 -0800 + +linux (3.2.0-7.13) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream 3.2-rc7 + + -- Leann Ogasawara Mon, 19 Dec 2011 09:14:34 -0800 + +linux (3.2.0-6.12) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2-rc6 + + -- Leann Ogasawara Fri, 16 Dec 2011 10:19:02 -0800 + +linux (3.2.0-5.11) precise; urgency=low + + [ Andy Whitcroft ] + + * enforcer -- allow arch and flavour predicates to take lists + * enforcer -- simplify armel/armhf specific options + * enforcer -- fix incorrectly specified flavour matches + + [ Leann Ogasawara ] + + * [Config] Disable IRQ_REMAP + * [Config] Enable CONFIG_SENSORS_LM95245=m + * [Config] Enable CONFIG_SENSORS_MAX1668=m + * [Config] Enable CONFIG_SENSORS_NTC_THERMISTOR=m + * [Config] Enable CONFIG_SENSORS_MAX6639=m + * [Config] Enable CONFIG_SENSORS_MAX6642=m + * [Config] Enable CONFIG_SENSORS_LINEAGE=m + * [Config] Enable CONFIG_CRYPTO_SALSA20=m + * [Config] Enable CONFIG_PATA_TOSHIBA=m + * [Config] Enable CONFIG_POHMELFS=m + * [Config] Enable CONFIG_NET_PACKET_ENGINE=y + * [Config] Enable CONFIG_PATA_OPTI=m + * add overlayfs to virtual inclusion list + - LP: #903897 + * add veth to virtual inclusion list + - LP: #903897 + * SAUCE: resolve WARNING: at drivers/block/floppy.c:2929 do_fd_request + + [ Paolo Pisati ] + + * [Config] DEFAULT_MMAP_MIN_ADDR=32k on arm + - LP: #903346 + + [ Tim Gardner ] + + * [Config] CONFIG_LOCKUP_DETECTOR=y + - LP: #903615 + + [ Upstream Kernel Changes ] + + * rebase to upstream 55b02d2f + + -- Leann Ogasawara Mon, 12 Dec 2011 07:08:10 -0800 + +linux (3.2.0-4.10) precise; urgency=low + + [ Kyle McMartin ] + + * SAUCE: dmar: disable if ricoh multifunction detected + - LP: #894070 + + [ Seth Forshee ] + + * SAUCE: dell-wmi: Demote unknown WMI event message to pr_debug + - LP: #581312 + + [ Tim Gardner ] + + * Start new release, Bump ABI, rebase to 3.2-rc5 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_AK8975=m + + -- Tim Gardner Sat, 10 Dec 2011 08:57:04 -0700 + +linux (3.2.0-3.9) precise; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: ext4: correct partial write discard size calculation + - LP: #894768 + + [ Leann Ogasawara ] + + * Revert "SAUCE: x86, microcode, AMD: Restrict microcode reporting" + - LP: #892615 + + [ Matthew Garrett ] + + * SAUCE: pci: Rework ASPM disable code + + [ Upstream Kernel Changes ] + + * x86: Fix boot failures on older AMD CPU's + - LP: #892615 + * EHCI : Fix a regression in the ISO scheduler + - LP: #899165 + + -- Leann Ogasawara Mon, 05 Dec 2011 10:37:36 -0800 + +linux (3.2.0-3.8) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- add d-i configuration + * armhf -- disable ABI checks for armhf + * armhf -- add arch to getabis config + + -- Andy Whitcroft Sat, 03 Dec 2011 14:22:52 +0000 + +linux (3.2.0-3.7) precise; urgency=low + + [ Stefan Bader ] + + * SAUCE: x86/paravirt: PTE updates in k(un)map_atomic need to be + synchronous, regardless of lazy_mmu mode + - LP: #854050 + + [ Tim Gardner ] + + * rebase to v3.2-rc4 + + -- Leann Ogasawara Fri, 02 Dec 2011 11:53:56 -0800 + +linux (3.2.0-2.6) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- fix omap flavour to build on armhf + * [Config] CONFIG_PATA_MACIO=y to fix MAC qemu boot + + [ Borislav Petkov ] + + * SAUCE: x86, microcode, AMD: Restrict microcode reporting + - LP: #892615 + + [ Colin Watson ] + + * Add pata_macio to pata-modules + + [ Tim Gardner ] + + * [Config] Prefer crda over wireless-crda + * [Config] Fix virtual inclusion list. + - LP: #897795 + + -- Leann Ogasawara Wed, 30 Nov 2011 06:09:35 -0800 + +linux (3.2.0-2.5) precise; urgency=low + + [ Paolo Pisati ] + + * [Config] PANEL_DVI=y + + -- Leann Ogasawara Mon, 28 Nov 2011 09:13:24 -0800 + +linux (3.2.0-2.4) precise; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.2-rc3 + + [ Leann Ogasawara ] + + * Revert "SAUCE: xen: Do not use pv spinlocks on HVM" + * Revert "fix ERROR: __devcgroup_inode_permission undefined" + * Revert "olpc_dcon_xo_1_5 needs delay.h" + * Revert "olpc_dcon_xo_1 needs delay.h" + * rebase to 6fe4c6d4 + * [Config] updateconfigs after rebase to 6fe4c6d4 + + [ Tim Gardner ] + + * [Config] Replace wireless-crda with crda,wireless-regdb + - LP: #856421 + * [Config] Relax the dependencies on crda + + [ Upstream Kernel Changes ] + + * (pre-stable) HID: bump maximum global item tag report size to 96 bytes + - LP: #724831 + * Ubuntu: remove coreutils|fileutils package dependency + - LP: #892814 + * iio: iio_event_getfd -- fix ev_int build failure + + [ Upstream Kernel Changes ] + + * Rebase to v3.2-rc3 + + -- Andy Whitcroft Thu, 24 Nov 2011 16:20:45 +0000 + +linux (3.2.0-1.3) precise; urgency=low + + [ Upstream Kernel Changes ] + + * Ubuntu: Add ext2 to fs-core-modules + - LP: #893395 + + -- Leann Ogasawara Mon, 21 Nov 2011 20:42:33 -0800 + +linux (3.2.0-1.2) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_NFC and associated devices + * SAUCE: allow brcmsmac and b43 to both build + + [ Soren Hansen ] + + * Add ixgbe driver to d-i + - LP: #891969 + + -- Leann Ogasawara Mon, 21 Nov 2011 08:33:46 -0800 + +linux (3.2.0-1.1) precise; urgency=low + [ Andy Whitcroft ] + + * armhf -- enable armhf and create the first flavours + * SAUCE: ensure root is ready before running usermodehelpers in it + * [Config] enforcer -- ensure CONFIG_FAT_FS is built-in on arm + + [ Leann Ogasawara ] + + * Temporarily ignore module check + * [Config] Enable PCI_IOV on powerpc + * [Config] Temporarily disable CONFIG_PASEMI_MAC on powerpc + * rebase to v3.2-rc2 + * SAUCE: include for cpuidle34xx arm build + * SAUCE: include for linux/mtd/map.h arm build + * SAUCE: include and for mmc_core arm build + * SAUCE: select ARM_AMBA if OMAP3_EMU + * [Config] updateconfigs after select ARM_AMBA + * [Config] Temporarily disable CONFIG_KVM_BOOK3S_32 on powerpc + * [Config] Enable CONFIG_EXT2_FS=m + * [Config] Build in CONFIG_SATA_AHCI=y + * Resolve linux-image-extra's install dependency + + [ Seth Forshee ] + + * [Config] Enable EVENT_POWER_TRACING_DEPRECATED=y for powertop + * SAUCE: (drop after 3.2) Input: ALPS - move protocol information to + Documentation + * SAUCE: (drop after 3.2) Input: ALPS - add protocol version field in + alps_model_info + * SAUCE: (drop after 3.2) Input: ALPS - remove assumptions about packet + size + * SAUCE: (drop after 3.2) Input: ALPS - add support for protocol versions + 3 and 4 + * SAUCE: (drop after 3.2) Input: ALPS - add semi-MT support for v3 + protocol + * SAUCE: (drop after 3.2) Input: ALPS - add documentation for protocol + versions 3 and 4 + + [ Stefan Bader ] + + * [Config] Built-in xen-netfront and xen-blkfront + * Fix build of dm-raid45 and re-enable it + + [ Tim Gardner ] + + * [Config] CONFIG_USB_XHCI_HCD=y + - LP: #886167 + * [Config] CONFIG_R6040=m + - LP: #650899 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Consolidated amd64 server flavour into generic + * [Config] updateconfigs after rebase to 3.2-rc1 + * [Config] Disabled dm-raid4-5 + * [Config] Disabled ndiswrapper + * [Config] Disable vt6656 + * [Config] exclude ppp-modules for virtual flavour + * [Config] CONFIG_MEMSTICK_R592=m + - LP: #238208 + + [ Upstream Kernel Changes ] + + * CHROMIUM: seccomp_filter: new mode with configurable syscall filters + - LP: #887780 + * CHROMIUM: seccomp_filter: add process state reporting + - LP: #887780 + * CHROMIUM: seccomp_filter: Document what seccomp_filter is and how it + works. + - LP: #887780 + * CHROMIUM: x86: add HAVE_SECCOMP_FILTER and seccomp_execve + - LP: #887780 + * CHROMIUM: arm: select HAVE_SECCOMP_FILTER + - LP: #887780 + * CHROMIUM: seccomp_filters: move to btrees + * CHROMIUM: enable CONFIG_BTREE + * CHROMIUM: seccomp_filter: kill NR_syscall references + * CHROMIUM: seccomp_filters: guard all ftrace wrapper code + * CHROMIUM: seccomp_filters: clean up warnings; kref mistake + * CHROMIUM: seccomp_filter: remove "skip" from copy and add drop helper + * CHROMIUM: seccomp_filter: allow CAP_SYS_ADMIN management of execve + * CHROMIUM: seccomp_filter: inheritance documentation + * CHROMIUM: seccomp_filter: make inherited filters composable + * CHROMIUM: Fix seccomp_t compile error + - LP: #887780 + * CHROMIUM: Fix kref usage + - LP: #887780 + * CHROMIUM: enable CONFIG_SECCOMP_FILTER and CONFIG_HAVE_SECCOMP_FILTER + * rebase to v3.2-rc2 + + -- Leann Ogasawara Mon, 31 Oct 2011 09:24:39 -0400 + +linux (3.1.0-2.3) precise; urgency=low + + [ Tim Gardner ] + + * Add postinit and postrm scripts to the extras package + - LP: #882120 + + -- Leann Ogasawara Fri, 28 Oct 2011 12:48:33 -0700 + +linux (3.1.0-2.2) precise; urgency=low + + [ Andy Whitcroft ] + + * debian: add locking to protect debian/files from parallel update + + [ Leann Ogasawara ] + + * rebase to v3.1 + + [ Upstream Kernel Changes ] + + * rebase to v3.1 + + -- Leann Ogasawara Wed, 19 Oct 2011 07:12:38 -0700 + +linux (3.1.0-1.1) precise; urgency=low + + [ Andiry Xu ] + + * SAUCE: (drop during 3.2 merge) xHCI: AMD isoc link TRB chain bit quirk + - LP: #872811 + + [ Andy Whitcroft ] + + * Revert "ubuntu: compcache -- follow changes to bd_claim/bd_release" + - LP: #832694 + * Revert "ubuntu: compcache -- version 0.5.3" + - LP: #832694 + * [Config] standardise CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + * [Config] Enable CONFIG_MACVTAP=m + - LP: #822601 + * record the compiler in the ABI and check for inconsistant builds + * [Config] move ECRYPT_FS back to =y for all architectures + - LP: #827197 + * [Config] enable CONFIG_DRM_VMWGFX=m + - LP: #698009 + * [Config] re-fix ECRYPT_FS=y + - LP: #827197 + * enforcer -- ensure we have CONFIG_ECRYPT_FS=y + - LP: #827197 + * [Config] dropping compcache configuration options + * [Config] standardise on HZ=250 + * SAUCE: headers_install: fix #include "..." usage for userspace + - LP: #824377 + * make module-inclusion selection retain the left overs + * add a new linux-image-extras package for virtual + + [ Colin Watson ] + + * Deliver more Atheros, Ralink, and iwlagn NIC drivers to d-i + + [ edwin_rong ] + + * SAUCE: Staging: add driver for Realtek RTS5139 cardreader + - LP: #824273 + + [ Greg Kroah-Hartman ] + + * SAUCE: staging: rts5139: add vmalloc.h to some files to fix the build. + - LP: #824273 + + [ Jesse Sung ] + + * SAUCE: Unregister input device only if it is registered + - LP: #839238 + + [ Jiri Kosina ] + + * SAUCE: HID: add MacBookAir4, 2 to hid_have_special_driver[] + + [ Joshua V. Dillon ] + + * SAUCE: HID: add support for MacBookAir4,2 keyboard. + + [ Kees Cook ] + + * [Config] enable and enforce SECCOMP_FILTER on x86 + + [ Keng-Yu Lin ] + + * [Config] Enable CONFIG_RTS5139=m on i386/amd64 + - LP: #824273 + + [ Leann Ogasawara ] + + * Revert "ubuntu: overlayfs -- ovl: make lower mount read-only" + * Revert "ubuntu: overlayfs -- fs: limit filesystem stacking depth" + * Revert "ubuntu: overlayfs -- ovl: improve stack use of lookup and + readdir" + * Revert "ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs" + * Revert "ubuntu: overlayfs -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: ARM: OMAP: Add macros for comparing silicon revision" + * Revert "SAUCE: OMAP: DSS2: check for both cpu type and revision, rather + than just revision" + * Revert "SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX" + * Revert "ubuntu: fsam7400 disable driver" + - LP: #876030 + * rebase to v3.1-rc1 + * [Config] updateconfigs after rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * [Config] Updateconfigs after rebase to v3.1-rc2 + * ubuntu: Yama - update calls to generic_permission() and + inode->i_op->permission() + * ubuntu: ndiswrapper -- remove netdev_priv macro + * ubuntu: aufs -- Temporarily disable due to build failure + * [Config] Diable INTEL_MID_PTI on armel + * [Config] Temporarily disable CONFIG_FTMAC100 on armel + * [Config] Temporarily disable CONFIG_FTGMAC100 on armel + * [Config] Temporarily disable CONFIG_CAN_TI_HECC on armel + * [Config] Temporarily disable CONFIG_VIDEO_OMAP2_VOUT on armel + * [Config] Set CONFIG_DM_MIRROR=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_MULTIPATH=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_SNAPSHOT=m on amd64, i386, and arm + * [Config] Enable CONFIG_EDAC_AMD8111=m on powerpc + * [Config] Enable CONFIG_EDAC_AMD8131=m on powerpc + * [Config] Enable CONFIG_EDAC_CPC925=m on powerpc + * [Config] Enable CONFIG_EDAC_PASEMI=m on powerpc + * [Config] Enable CONFIG_ECHO=m on powerpc + * [Config] Enable CONFIG_ET131X=m on powerpc + * [Config] Set CONFIG_FB_MATROX=m + * [Config] Enable CONFIG_FB_UDL=m on powerpc + * [Config] Set CONFIG_FB_VIRTUAL=n + * [Config] Enable CONFIG_FB_VGA16=m on powerpc + * [Config] Enable CONFIG_GPIO_MAX732X=m on arm + * [Config] Enable CONFIG_GPIO_PCF857X=m on arm + * [Config] Set CONFIG_HOTPLUG_PCI_FAKE=m + * [Config] Enable CONFIG_HOTPLUG_PCI=y on powerpc + * [Config] Enable CONFIG_HOTPLUG_PCI_CPCI=y on powerpc + * [Config] Enable CONFIG_HP_ILO=m on powerpc-smp + * [Config] Enable CONFIG_I2C_PASEMI=m on powerpc + * [Config] Enable CONFIG_IBM_BSR=m on powerpc + * [Config] Enable CONFIG_IBMVETH=m on powerpc + * [Config] Enable CONFIG_IDE_PHISON=m on powerpc + * [Config] Enable CONFIG_IGB=m on powerpc + * [Config] Enable CONFIG_IIO=m on powerpc + * [Config] Enable CONFIG_INFINIBAND_NES=m + * [Config] Enable CONFIG_IPMI_HANDLER=m on arm + * [Config] Enable CONFIG_IWL3945=m on powerpc + * [Config] Disable CONFIG_KVM_BOOK3S_64 + * [Config] Enable CONFIG_LAPBETHER=m on arm + * [Config] Enable CONFIG_LEDS_GPIO=m on powerpc + * [Config] Enable CONFIG_LEDS_CLEVO_MAIL=m all arch's + * [Config] Enable CONFIG_LEDS_PCA9532=m on powerpc + * [Config] Enable CONFIG_LEDS_PCA955X=m on powerpc + * [Config] Enable CONFIG_LEDS_TRIGGER_DEFAULT_ON=m on powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_HEARTBEAT=m on arm and powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_TIMER=m on powerpc + * [Config] Enable CONFIG_LINE6_USB=m on arm and powerpc + * [Config] Enable CONFIG_MEMSTICK=m on arm + * [Config] Enable CONFIG_MTD_AFS_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ALAUDA=m on arm + * [Config] Enable CONFIG_MTD_AR7_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ARM_INTEGRATOR=m on arm + * [Config] Enable CONFIG_MOXA_SMARTIO=m on powerpc + * [Config] Enable CONFIG_MTD_DATAFLASH=m on arm + * [Config] Enable CONFIG_MTD_GPIO_ADDR=m on arm + * [Config] Enable CONFIG_MTD_IMPA7=m on arm + * [Config] Enable CONFIG_MTD_NAND_GPIO=m on arm + * [Config] Enable CONFIG_MTD_NAND_NANDSIM=m on arm + * [Config] Enable CONFIG_MTD_NAND_PASEMI=m on powerpc + * [Config] Enable CONFIG_MTD_NAND_PLATFORM=m on arm + * [Config] Enable CONFIG_MTD_NAND_TMIO=m on arm + * [Config] Enable CONFIG_MTD_SST25L=m on arm + * [Config] Enable CONFIG_NET_CLS_CGROUP=y on arm + * [Config] Enable CONFIG_NET_CLS_FLOW=m on arm + * [Config] Enable CONFIG_NET_CLS_U32=m on arm + * [Config] Enable CONFIG_NET_DCCPPROBE=m on arm + * [Config] Enable CONFIG_NET_SCH_INGRESS=m on arm + * [Config] Enable CONFIG_NET_TCPPROBE=m on arm + * [Config] Enable CONFIG_PASEMI_MAC=m on powerpc + * [Config] Enable CONFIG_PATA_NS87410=m on powerpc + * [Config] Enable CONFIG_I2C_GPIO=m on powerpc64-smp + * [Config] Enable CONFIG_PANEL=m on powerpc + * [Config] Enable CONFIG_PATA_CMD640_PCI=m on powerpc + * SAUCE: x86: reboot: Make Dell Latitude E6520 use reboot=pci + - LP: #833705 + * [Config] Add CONFIG_EFI_VARS=y to the enforcer + - LP: #837332 + * [Config] Update CONFIG_EFI_VARS enforcer check + * [Config] Add aufs to virtual flavor inclusion list + - LP: #844159 + * SAUCE: x86: reboot: Make Dell Optiplex 790 use reboot=pci + - LP: #818933 + * SAUCE: x86: reboot: Make Dell Optiplex 990 use reboot=pci + - LP: #768039 + * SAUCE: x86: reboot: Make Dell Latitude E6220 use reboot=pci + - LP: #838402 + * [Config] Add igbvf to the virtual flavor inclusion list + - LP: #794570 + * [Config] Add ixgbevf to the virtual inclusion list + - LP: #872411 + * [Config] Transition -generic and -server to be identical + * rebase to v3.1-rc10 + + [ Luke Yelavich ] + + * [Config] Disable legacy IDE drivers on powerpc + + [ Ming Lei ] + + * SAUCE: fireware: add NO_MSI quirks for o2micro controller + - LP: #801719 + * SAUCE: ata_piix: make DVD Drive recognisable on systems with Intel + Sandybridge chipsets(v2) + - LP: #737388, #782389, #794642 + + [ Paolo Pisati ] + + * [Config] Compile-in vfat support for armel + - LP: #853783 + + [ Randy Dunlap ] + + * SAUCE: staging: fix rts5139 depends & build + - LP: #824273 + + [ Rene Bolldorf ] + + * SAUCE: (drop after 3.0) ideapad: Check if acpi already handle backlight + power in 'ideapad_backlight_notify_power' to avoid a page fault + + [ Seth Forshee ] + + * SAUCE: (no-up) Input: elantech - Add v3 hardware support + - LP: #681904 + * SAUCE: (drop after 3.1) usb_storage: Don't freeze in usb-stor-scan + - LP: #810020 + + [ Stefan Bader ] + + * (config) Package macvlan and macvtap for virtual + * [Config] Force perf to use libiberty for demangling + - LP: #783660 + * SAUCE: xen: Do not use pv spinlocks on HVM + - LP: #838026 + + [ Tim Gardner ] + + * [Config] Clean up tools rules + * [Config] Package x86_energy_perf_policy and turbostat + - LP: #797556 + * rebase to v3.1-rc3 + * [Config] Simplify binary-udebs dependencies + * [Config] kernel preparation cannot be parallelized + * [Config] Linearize module/abi checks + * [Config] Linearize and simplify tree preparation rules + * [Config] Build kernel image in parallel with modules + * [Config] Set concurrency for kmake invocations + * [Config] Improve install-arch-headers speed + * [Config] Fix binary-perarch dependencies + * [Config] Removed stamp-flavours target + * [Config] Serialize binary indep targets + * [Config] Use build stamp directly + * [Config] Restore prepare-% target + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * [Config] Disable makedumpfile for i386/amd64 + * rebase to v3.1-rc6 + * [Config] Fix binary-% build target + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Enable ftrace support in the mac80211 layer + - LP: #865171 + * rebase to v3.1-rc9 + * SAUCE: usb/core/devio.c: Check for printer class specific request + - LP: #872711 + + [ Upstream Kernel Changes ] + + * overlay filesystem + * overlayfs: add statfs support + * overlayfs: implement show_options + * overlay: overlay filesystem documentation + * fs: limit filesystem stacking depth + + [ Will Drewry ] + + * SAUCE: seccomp_filter: new mode with configurable syscall filters + * SAUCE: seccomp_filter: add process state reporting + * SAUCE: seccomp_filter: Document what seccomp_filter is and how it + works. + * SAUCE: seccomp_filter: add HAVE_SECCOMP_FILTER and seccomp_execve + + [ Upstream Kernel Changes ] + + * rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * rebase to v3.1-rc3 + +CONFIG_BLK_DEV_BSGLIB=y + +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 + -CONFIG_VIDEO_OMAP2_VOUT_VRFB=y + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * rebase to v3.1-rc6 + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * rebase to v3.1-rc9 + * rebase to v3.1-rc10 + + -- Leann Ogasawara Wed, 10 Aug 2011 15:43:38 -0700 + +linux (3.1.0-1.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open P-series + + -- Leann Ogasawara Wed, 10 Aug 2011 13:42:40 -0700 + +linux (3.0.0-8.10) oneiric; urgency=low + + [ Adam Jackson ] + + * SAUCE: drm/i915/pch: Fix integer math bugs in panel fitting + - LP: #753994 + + [ John Johansen ] + + * [Config] Enable missing IPv6 options + + [ Leann Ogasawara ] + + * [Config] Disable config IWLWIFI_DEVICE_SVTOOL + - LP: #819925 + * Rebase to 3.0.1 + + [ Upstream Kernel Changes ] + + * x86, intel, power: Correct the MSR_IA32_ENERGY_PERF_BIAS message + * ALSA: hda - Turn on extra EAPDs on Conexant codecs + - LP: #783582 + * KVM: Remove SMEP bit from CR4_RESERVED_BITS + - LP: #796476 + * KVM: Add SMEP support when setting CR4 + - LP: #796476 + * KVM: Mask function7 ebx against host capability word9 + - LP: #796476 + * KVM: Add instruction fetch checking when walking guest page table + - LP: #796476 + + [ Upstream Kernel Changes ] + + * rebase to v3.0.1 + + -- Leann Ogasawara Fri, 05 Aug 2011 11:32:25 -0700 + +linux (3.0.0-7.9) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] add local prefix to oss local change_bits" + * Revert "SAUCE: add tracing for user initiated readahead requests" + * Revert "SAUCE: vfs: Add a trace point in the mark_inode_dirty function" + * Revert "SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47" + * Revert "SAUCE: fix documentation strings for struct input_keymap_entry" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range checks + (grub)" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range + checks" + * Revert "SAUCE: vt -- allow grub to request automatic vt_handoff" + * Revert "SAUCE: vt -- maintain bootloader screen mode and content until + vt switch" + * [Config] enable CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 + - LP: #816035 + * ubuntu: Yama: if an underlying filesystem provides a permissions op use + it + * SAUCE: (no-up) add tracing for user initiated readahead requests + * SAUCE: vt -- maintain bootloader screen mode and content until vt + switch + * SAUCE: vt -- allow grub to request automatic vt_handoff + + [ Arjan van de Ven ] + + * SAUCE: (no-up) vfs: Add a trace point in the mark_inode_dirty function + + [ Kees Cook ] + + * Revert "SAUCE: (no-up) Disable building the ACPI debugfs source" + * [Config] enforce ACPI_CUSTOM_METHOD disabled + + [ Keng-Yu Lin ] + + * SAUCE: (no-up) Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_BLK_DEV_CMD64X=m on powerpc + - LP: #513131 + * [Config] Enable CONFIG_RT2800PCI_RT53XX=y + - LP: #815064 + + [ Rezwanul Kabir ] + + * SAUCE: (no-up) Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * Revert "yama: if an underlying filesystem provides a permissions op use + it" + * Revert "Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops" + * Revert "tty: include linux/slab.h for kfree" + * Revert "gpio/ml_ioh_gpio: include linux/slab.h for kfree" + * Revert "pch_dma: add include/slab.h for kfree" + * mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency + - LP: #773524 + * oss: rename local change_bits to avoid powerpc bitsops.h definition + + -- Leann Ogasawara Mon, 25 Jul 2011 09:08:01 -0700 + +linux (3.0.0-7.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- overlayfs: add statfs support + * [Config] enable CONFIG_OVERLAYFS + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_ALIM7101_WDT=m on powerpc + * [Config] Enable CONFIG_ASUS_OLED=m on powerpc + * [Config] Disable CONFIG_ATM_DUMMY on arm + * [Config] Enable CONFIG_BLK_DEV_DRBD=m on powerpc + * Temporarily disable module check on arm + * Rebase to 3.0 final + * [Config] Enable CONFIG_CAN_TI_HECC=m on arm + * [Config] Set CONFIG_CDROM_PKTCDVD=m on amd64 and i386 + * [Config] Enable CONFIG_CRYPTO_CCM=m on powerpc + * [Config] Enable CONFIG_CRYPTO_DEV_HIFN_795X=m on powerpc + * [Config] Enable CONFIG_CRYPTO_GCM=m on powerpc + * [Config] Set CRYPTO_LZO=m on powerpc64-smp + * [Config] Enable CONFIG_DM9000=m on arm + * [Config] Set CONFIG_DISPLAY_SUPPORT=m on arm + * [Config] Enable CONFIG_DL2K=m on amd64 and i386 + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs + * ubuntu: overlayfs -- ovl: improve stack use of lookup and readdir + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + * ubuntu: overlayfs -- ovl: make lower mount read-only + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Tim Gardner ] + + * [Config] Add enic/fnic to udebs + - LP: #801610 + + [ Upstream Kernel Changes ] + + * yama: if an underlying filesystem provides a permissions op use it + + [ Major Kernel Changes ] + + * Rebase to 3.0 final + + -- Leann Ogasawara Thu, 21 Jul 2011 07:01:32 -0700 + +linux (3.0.0-6.7) oneiric; urgency=low + + [ Eagon Yager ] + + * [Config] Fix misspelled 'skipmodule' in arm makefile. + + [ Keng-Yu Lin ] + + * SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_SMC91X on armel-omap" + * Revert "[Config] Temporarily Disable CONFIG_BRCMSMAC on arm" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on powerpc" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on arm" + * Revert "[Config] Temporarily disable CONFIG_BRCMSMAC on powerpc" + * [Config] Set CONFIG_ACPI_PCI_SLOT=m + * [Config] Set CONFIG_ACPI_SBS=m + * [Config] Set CONFIG_ACPI_WMI=m + * [Config] Set CONFIG_AD7150=m on arm + * [Config] Set CONFIG_AD7152=m on arm + * [Config] Drop CONFIG_GPIO_S5PV210 + * [Config] Drop CONFIG_GPIO_S5PC100 + * [Config] Drop CONFIG_GPIO_PLAT_SAMSUNG + * [Config] Drop CONFIG_GPIO_EXYNOS4 + + [ Stefan Bader ] + + * SAUCE: Re-enable RODATA for i386 virtual + - LP: #809838 + + [ Upstream Kernel Changes ] + + * Revert "Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15" + * (drop after 3.0.0) acer-wmi: Add support for Aspire 1830 wlan hotkey + - LP: #771758 + + -- Leann Ogasawara Wed, 20 Jul 2011 06:36:02 -0700 + +linux (3.0.0-5.6) oneiric; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_RTL8192CU=m + * Rebase to -rc7 + + -- Tim Gardner Mon, 11 Jul 2011 22:13:50 +0100 + +linux (3.0.0-4.5) oneiric; urgency=low + + [ Ming Lei ] + + * SAUCE: fix yama_ptracer_del lockdep warning + - LP: #791019 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.0) asus-wmi: Add callback for hotkey filtering + * SAUCE: (drop after 3.0) eeepc-wmi: Add support for T101MT Home/Express Gate key + * SAUCE: (drop after 3.0) asus-wmi: Enable autorepeat for hotkey input device + * [Config] CONFIG_{ASUS,ASUS_NB,EEEPC}_WMI=m + - LP: #805218 + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to -rc6+ + Rebased against 4dd1b49c6d215dc41ce50c80b4868388b93f31a3 + * Adopt a 3 digit verion, e.g., 3.0.0-x.x + * Revert "UBUNTU: add dependancies for module-init-tools" + This dependency is no longer required for a 3 digit version. + + -- Tim Gardner Tue, 05 Jul 2011 14:03:04 +0100 + +linux (3.0-3.4) oneiric; urgency=low + + [ Keng-Yu Lin ] + + * SAUCE: Revert: "dell-laptop: Toggle the unsupported hardware + killswitch" + - LP: #775281 + + [ Leann Ogasawara ] + + * rebase to v3.0-rc5 + * [Config] updateconfigs after rebase to 3.0-rc5 + + [ Tim Gardner ] + + * [Config] Remove ubuntu/rtl8192se + * [Config] Added armel ABI files + * [Config] Removed armel versatile flavour + * [Config] CONFIG_INTEL_MEI=m + - LP: #716867 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Enable auto-parser as default for Conexant codecs + + [ Upstream Kernel Changes ] + + * rebase to v3.0-rc5 + + -- Leann Ogasawara Thu, 30 Jun 2011 14:27:10 +0100 + +linux (3.0-2.3) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to 0e2bafab74f0d1463383faeb93f9fc5eb8c2c54e + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + * [Config] updateconfigs after rebase to 3.0-rc4 + * fix ERROR: __devcgroup_inode_permission undefined + + [ Stefan Bader ] + + * SAUCE: iscsitarget: Remove driver from the kernel + + [ Tim Gardner ] + + * SAUCE: rtl8192se: Force a build for a 2.6/3.0 kernel + * [Config] Add grub-efi as a recommended bootloader for server and + generic + - LP: #800910 + + [ Upstream Kernel Changes ] + + * Fix node_start/end_pfn() definition for mm/page_cgroup.c + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + + -- Leann Ogasawara Fri, 24 Jun 2011 11:51:12 -0700 + +linux (3.0-1.2) oneiric; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_CAN_CALC_BITTIMING + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + * [Config] updateconfigs after rebase to 3.0-rc3 + + [ Upstream Kernel Changes ] + + * perf: clear out make flags when calling kernel make kernelver + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + + -- Leann Ogasawara Tue, 14 Jun 2011 07:25:35 -0700 + +linux (3.0-0.1) oneiric; urgency=low + + [ Andy Whitcroft ] + + * use the packaging version in the kernel + * use the kernels idea of its version for version_signature + * add dependancies for module-init-tools + * update control files to version 3 + * printchanges/insertchanges allow override of prev_release + * correct Vcs-Git: to point to oneiric + + [ Leann Ogasawara ] + + * rebase to v3.0-rc1 + * [Config] updateconfigs after rebase to 3.0-rc1 + * ubuntu: dm-raid4-5 fix up build failure + * [Config] Temporarily Disable CONFIG_GPIO_EXYNOS4 on arm + * [Config] Temporarily Disable CONFIG_GPIO_PLAT_SAMSUNG on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PC100 on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PV210 on arm + * [Config] Temporarily disable CONFIG_BRCMSMAC on powerpc + * [Config] Temporarily Disable CONFIG_BRCMSMAC on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on powerpc + * [Config] Temporarily disable CONFIG_SMC91X on armel-omap + * rebase to v3.0-rc2 + + [ Manoj Iyer ] + + * SAUCE: mmc: Enable MMC card reader for RICOH [1180:e823] + - LP: #790754 + + [ Upstream Kernel Changes ] + + * Revert "x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM + demands it" + * drm/i915: fix regression after clock gating init split + + [ Major Kernel Changes ] + + * rebase from v2.6.39 to v3.0-rc1 + * rebase from v3.0-rc1 to v3.0-rc2 + + -- Andy Whitcroft Thu, 09 Jun 2011 15:18:33 +0100 + +linux (2.6.39-3.10) oneiric; urgency=low + + [ Colin Ian King ] + + * SAUCE: S3 early resume debug via keyboard LEDs + + [ Ingo Molnar ] + + * ubuntu: nx-emu - i386: NX emulation + * ubuntu: nx-emu - i386: mmap randomization for executable mappings + + [ Leann Ogasawara ] + + * Revert "[Config] Disable CONFIG_FT1000 on powerpc64-smp" + * Revert "[Config] Disable CONFIG_DM_RAID45" + * [Config] enable CONFIG_BRCMFMAC=y + * [Config] enable CONFIG_MDIO_BITBANG=m across all arch's and flavors + * [Config] enable CONFIG_VIDEO_OUTPUT_CONTROL=m on armel-omap + + [ Robert Nelson ] + + * SAUCE: omap3: beagle: detect new xM revision B + - LP: #770679 + * SAUCE: omap3: beagle: detect new xM revision C + - LP: #770679 + * SAUCE: omap3: beagle: if rev unknown, assume xM revision C + - LP: #770679 + + [ Stefan Bader ] + + * SAUCE: Convert dm-raid45 to new block plugging + + -- Leann Ogasawara Mon, 23 May 2011 11:46:43 -0700 + +linux (2.6.39-3.9) oneiric; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_SCSI_LPFC_DEBUG_FS + * rebase to v2.6.39 + * [Config] enable CONFIG_LLC2=m across all arch's and flavours + * [Config] enable CONFIG_INPUT_APANEL=m + + [ Thomas Schlichter ] + + * SAUCE: vesafb: mtrr module parameter is uint, not bool + - LP: #778043 + * SAUCE: vesafb: enable mtrr WC by default + - LP: #778043 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc7 to v2.6.39 + + -- Andy Whitcroft Fri, 20 May 2011 09:52:32 +0100 + +linux (2.6.39-2.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37" + * Revert "ubuntu: AUFS -- aufs2-base.patch aufs2.1-37" + * Revert "[Config] Disable CONFIG_AUFS_FS" + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-39 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-39 + * ubuntu: AUFS -- update to c6b76974311efc5bf3eddf921cd015b6aae46935 + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + + [ Kees Cook ] + + * ubuntu: Yama - LSM hooks + * ubuntu: Yama - create task_free security callback + * ubuntu: Yama - add ptrace relationship tracking interface + * ubuntu: Yama - unconditionally chain to Yama LSM + + [ Leann Ogasawara ] + + * Revert "SAUCE: Fix drivers/staging/easycap FTBS" + * Revert "[Config] Disable CONFIG_EASYCAP" + * ubuntu: fsam7400 disable driver + * ubuntu: omnibook disable driver + * ubuntu: rfkill disable driver + + [ Tim Gardner ] + + * SAUCE: Fix extra reference in fb_open() + + -- Leann Ogasawara Mon, 16 May 2011 09:23:56 -0700 + +linux (2.6.39-2.7) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc7 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc6 to v2.6.39-rc7 + + -- Leann Ogasawara Tue, 10 May 2011 10:18:28 +0200 + +linux (2.6.39-1.6) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc6 + * SAUCE: [arm] fixup __aeabi_uldivmod undefined build error + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to 2.6.39-rc6 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc5 to v2.6.39-rc6 + - LP: #740126 + + -- Leann Ogasawara Thu, 05 May 2011 09:46:12 -0700 + +linux (2.6.39-0.5) oneiric; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Revert "x86, hibernate: Initialize mmu_cr4_features during boot" + - LP: #764758 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc5 + * [Config] updateconfigs following rebase to v2.6.39-rc5 + + [ Paolo Pisati ] + + * [Config] s/USB_MUSB_TUSB6010/USB_MUSB_OMAP2PLUS/ on omap3 to get musb + - LP: #759913 + + [ Stefan Bader ] + + * Include nls_iso8859-1 for virtual images + - LP: #732046 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc4 to v2.6.39-rc5 + + -- Leann Ogasawara Wed, 27 Apr 2011 06:39:42 -0700 + +linux (2.6.39-0.4) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc4 + * [Config] updateconfigs following rebase to v2.6.39-rc4 + * fixup powerpc implicit declaration of function + 'crash_kexec_wait_realmode' + * [Config] Disable CONFIG_FT1000 on powerpc64-smp + + [ Tim Gardner ] + + * [Config] CONFIG_TRANSPARENT_HUGEPAGE=y + - LP: #769503 + * [Config] Add cachefiles.ko to virtual flavour + - LP: #770430 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc3 to v2.6.39-rc4 + + -- Leann Ogasawara Tue, 19 Apr 2011 06:25:20 -0700 + +linux (2.6.39-0.3) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc3 + * crash_kexec_wait_realmode() undefined when !SMP + + [ Tim Gardner ] + + * [Config] CONFIG_PM_ADVANCED_DEBUG=y for i386/amd64 + - LP: #632327 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc2 to v2.6.39-rc3 + + -- Leann Ogasawara Tue, 12 Apr 2011 06:52:24 -0700 + +linux (2.6.39-0.2) oneiric; urgency=low + + [ Gustavo F. Padovan ] + + * SAUCE: Revert "Bluetooth: Add new PID for Atheros 3011" + - LP: #720949 + + [ John Johansen ] + + * AppArmor: Fix masking of capabilities in complain mode + - LP: #748656 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc2 + * [Config] updateconfigs following rebase to v2.6.39-rc2 + * hv_mouse needs delay.h + * olpc_dcon_xo_1 needs delay.h + * olpc_dcon_xo_1_5 needs delay.h + * Update dropped.txt for Oneiric + + [ Steve Langasek ] + + * [Config] Make linux-libc-dev coinstallable under multiarch + - LP: #750585 + + [ Upstream Kernel Changes ] + + * x86, hibernate: Initialize mmu_cr4_features during boot + - LP: #752870 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc1 to v2.6.39-rc2 + + -- Leann Ogasawara Wed, 06 Apr 2011 11:04:15 -0700 + +linux (2.6.39-0.1) oneiric; urgency=low + + [ Brad Figg ] + + * [Config] Set CONFIG_NR_CPUS=256 for amd64 generic + - LP: #737124 + + [ Henrik Rydberg ] + + * SAUCE: HID: hid-ntrig: add support for 1b96:0006 model + * SAUCE: HID: ntrig: fix suspend/resume on recent models + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (drop after 2.6.39) v4l: make sure drivers supply a zeroed + struct v4l2_subdev + - LP: #745213 + + [ Kees Cook ] + + * [Config] packaging: adjust perms on vmlinuz as well + * SAUCE: nx-emu: further clarify dmesg reporting + - LP: #745181 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc1 + * [Config] updateconfigs following rebase to v2.6.39-rc1 + * [Config] Disable CONFIG_DM_RAID45 + * [Config] Disable CONFIG_SCSI_ISCSITARGET + * [Config] Disable CONFIG_EASYCAP + * [Config] Disable CONFIG_AUFS_FS + * update bnx2 firmware files in d-i/firmware/nic-modules + * xhci-pci.c resolve implicit declaration of kzalloc + * [Config] Enable CONFIG_DRM_PSB for only x86 + * [Config] Enable CONFIG_RTS_PSTOR for only x86 + * mfd/asic3: Fix typo, s/irq_data/data/ + + [ Luke Yelavich ] + + * [Config] Disable CONFIG_CRASH_DUMP on 32-bit powerpc kernels + - LP: #745358 + * [Config] Disable CONFIG_DRM_RADEON_KMS on powerpc kernels + * [Config] Build some framebuffer drivers as modules for powerpc kernels. + + [ Manoj Iyer ] + + * SAUCE: thinkpad-acpi: module autoloading for newer Lenovo ThinkPads. + - LP: #745217 + + [ Tim Gardner ] + + * SAUCE: INR_OPEN=4096 + - LP: #663090 + * SAUCE: Increase the default hard limit for open FDs to 4096 + - LP: #663090 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.39-rc1) arm: versatile : Fix typo introduced in irq + namespace cleanup + * (drop after 2.6.39-rc1) [media] staging: altera-jtag needs delay.h + * ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0() + + [ Major Kernel Changes ] + + * rebase from v2.6.38 to v2.6.39-rc1 + + -- Leann Ogasawara Thu, 31 Mar 2011 12:50:10 -0700 + +linux (2.6.39-0.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open Oneiric + + -- Leann Ogasawara Thu, 31 Mar 2011 12:29:23 -0700 + +linux (2.6.38-7.39) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-7ubuntu1. + + -- Leann Ogasawara Thu, 24 Mar 2011 09:27:45 -0700 + +linux (2.6.38-7.38) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload take 2. 2.6.38-7.37 was accidentally uploaded before + gcc-4.5.2-6ubuntu5 finished building on all arches. + + -- Leann Ogasawara Tue, 22 Mar 2011 06:12:47 -0700 + +linux (2.6.38-7.37) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-6ubuntu5. + + -- Leann Ogasawara Sun, 20 Mar 2011 16:02:48 -0700 + +linux (2.6.38-7.36) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler + optimisation" + * purge last vestiges of maverick + * [Config] switch CONFIG_FB_VESA back to module + + [ Chris Wilson ] + + * SAUCE: drm/i915: Fix pipelined fencing + - LP: #717114 + + [ Loïc Minier ] + + * Include nls_cp437 module in virtual for fat + - LP: #732046 + * Support arch= cross-compilation for any arch + * Fix couple of typos in 0-common-vars.mk + * Enforce DEFAULT_MMAP_MIN_ADDR on armhf + * Add armhf to Debian -> Linux arch map + * Add initial armhf.mk + * Enable common packages for armhf + + [ Upstream Kernel Changes ] + + * Yama: fix default relationship to check thread group + - LP: #737676 + + -- Andy Whitcroft Fri, 18 Mar 2011 18:18:02 +0000 + +linux (2.6.38-7.35) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 2fbfac4e053861925fa3fffcdc327649b09af54c + * rebase fixes bug #715330 + * [Config] disable CONFIG_SCSI_QLA_ISCSI for powerpc 32bit to fix FTBS + * rebase to v2.6.38 final + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Apply OPTION_BLACKLIST_SENDSETUP also for ZTE MF626 + - LP: #636091 + + [ Tim Gardner ] + + * [Confg] CONFIG_BOOT_PRINTK_DELAY=y + + [ Upstream Kernel Changes ] + + * Yama: use thread group leader when creating match + - LP: #729839 + * (drop after 2.6.38) ahci: AHCI mode SATA patch for Intel Patsburg SATA + RAID controller + - LP: #735240 + * (drop after v2.6.38) x86, quirk: Fix SB600 revision check + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc8 to v2.6.38 final + - LP: #715330 + + -- Andy Whitcroft Tue, 15 Mar 2011 19:04:19 +0000 + +linux (2.6.38-6.34) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] normalise CONFIG_INTEL_TXT + * SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler optimisation + - LP: #730860 + * rebase to mainline v2.6.38-rc8 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc7 + fb62c00a6d8942775abc23d1621db1252e2d93d1 + to v2.6.38-rc8 + + -- Andy Whitcroft Tue, 08 Mar 2011 11:54:48 +0000 + +linux (2.6.38-6.33) natty; urgency=low + + [ Andy Whitcroft ] + + * d-i -- enable speakup-modules udeb + - LP: #672699 + * rebase to 493f3358cb289ccf716c5a14fa5bb52ab75943e5 + * [Config] debian PPC64 configuration + * [Config] cleanup powerpc config fixing unexpected inconsistancies + * [Config] resync ppc64 configuration + * SAUCE: match up ENTRY/END naming for 32/64 bit + * rebase to fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] update configs after rebase to + fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] pps_gen_parport no longer built + + [ Corentin Chary ] + + * SAUCE: (drop after 2.6.38) eeepc-wmi: reorder keymap + - LP: #689393 + * SAUCE: (drop after 2.6.38) eeepc-wmi: add wlan key found on 1015P + - LP: #689393 + + [ John Johansen ] + + * SAUCE: Fix aufs calling of security_path_mknod + - LP: #724456 + + [ Kees Cook ] + + * SAUCE: proc: hide kernel addresses via %pK in /proc//stack + + [ Tim Gardner ] + + * rebase to 2.6.38-rc7 + + [ Upstream Kernel Changes ] + + * Revert "drm/i915: fix corruptions on i8xx due to relaxed fencing" + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc6 to v2.6.38-rc7 + + fb62c00a6d8942775abc23d1621db1252e2d93d1 + - LP: #721389 + - LP: #722925 + - LP: #723672 + - LP: #723676 + - LP: #715318 + + -- Andy Whitcroft Mon, 07 Mar 2011 15:33:17 +0000 + +linux (2.6.38-5.32) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to mainline 6f576d57f1fa0d6026b495d8746d56d949989161 + * [Config] updateconfigs following rebase to v2.6.38-rc6 + * [Config] enable CONFIG_DMAR + - LP: #552311 + + [ Upstream Kernel Changes ] + + * drm/i915: skip FDI & PCH enabling for DP_A + - LP: #561802, #600453, #681877 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc5 to v2.6.38-rc6 + - LP: #718402 + - LP: #719524 + - LP: #721126 + - LP: #719691 + - LP: #722689 + - LP: #722310 + + -- Andy Whitcroft Tue, 22 Feb 2011 13:28:39 +0000 + +linux (2.6.38-4.31) natty; urgency=low + + [ Andy Whitcroft ] + + * add in bugs closed by upstream patches pulled in by rebases + * rebase to 795abaf1e4e188c4171e3cd3dbb11a9fcacaf505 + * [Config] enable CONFIG_VSX to allow use of vector instuctions + * resync with maverick 98defa1c5773a3d7e4c524967eb01d5bae035816 + * rebase to mainline v2.6.38-rc5 + * SAUCE: ecryptfs: read on a directory should return EISDIR if not + supported + - LP: #719691 + + [ Colin Ian King ] + + * SAUCE: Dell All-In-One: Remove need for Dell module alias + + [ Manoj Iyer ] + + * SAUCE: (drop after 2.6.38) add ricoh 0xe823 pci id. + - LP: #717435 + + [ Tim Gardner ] + + * [Config] CONFIG_CRYPTO_CRC32C_INTEL=y + + [ Upstream Kernel Changes ] + + * Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15 + - LP: #702434 + * vfs: fix BUG_ON() in fs/namei.c:1461 + + [ Vladislav P ] + + * SAUCE: Release BTM while sleeping to avoid deadlock. + - LP: #713837 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc4 to v2.6.38-rc5 + - LP: #579276 + - LP: #715877 + - LP: #713769 + - LP: #716811 + * resync with Maverick Ubuntu-2.6.35-27.47 + + -- Andy Whitcroft Fri, 11 Feb 2011 17:24:09 +0000 + +linux (2.6.38-3.30) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.38-rc4 + * ppc64 -- add basic architecture + * ubuntu: AUFS -- update to 65835da20b77c98fb538c9114fc31f5de1328230 + + [ Colin Ian King ] + + * SAUCE: Add WMI hotkeys support for Dell All-In-One series + - LP: #676997 + * SAUCE: Add WMI hotkeys support for another Dell All-In-One series + - LP: #701530 + * SAUCE: Dell WMI: Use sparse keymaps and tidy up code. + - LP: #701530 + + [ Dan Rosenberg ] + + * SAUCE: (drop after 2.6.38) Convert net %p usage %pK + + [ Kees Cook ] + + * Revert "SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of + attacking" + * SAUCE: (drop after 2.6.38) use %pK for /proc/kallsyms and /proc/modules + + [ Tim Gardner ] + + * [Config] CONFIG_BLK_CGROUP=y + - LP: #706394 + * [Config] CONFIG_DELL_WMI_AIO=m + + [ Upstream Kernel Changes ] + + * drm/i915/lvds: Restore dithering on native modes for gen2/3 + - LP: #711568 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc3 to v2.6.38-rc4. + - LP: #701271 + - LP: #708521 + - LP: #710371 + + -- Andy Whitcroft Tue, 08 Feb 2011 02:07:18 +0000 + +linux (2.6.38-2.29) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 1f0324caefd39985e9fe052fac97da31694db31e + * [Config] updateconfigs following rebase to + 1f0324caefd39985e9fe052fac97da31694db31e + * rebase to 70d1f365568e0cdbc9f4ab92428e1830fdb09ab0 + * [Config] reenable HIBERNATE + - LP: #710877 + * rebase to v2.6.38-rc3 + * [Config] reenable CONFIG_CRASH_DUMP + + [ Kamal Mostafa ] + + * SAUCE: rtl8192se: fix source file perms + * SAUCE: rtl8192se: fix source file newline + * SAUCE: omnibook: fix source file newline + + [ Kees Cook ] + + * [Config] packaging: really make System.map mode 0600 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: OMAP3630: PM: don't warn the user with a trace in case of + PM34XX_ERRATUM + + [ Soren Hansen ] + + * SAUCE: nbd: Remove module-level ioctl mutex + + [ Tim Gardner ] + + * SAUCE: Disable building the ACPI debugfs source + + [ Upstream Kernel Changes ] + + * Set physical start and alignment 1M for virtual i386 + - LP: #710754 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + to v2.6.38-rc3 + - LP: #707902 + + -- Andy Whitcroft Fri, 28 Jan 2011 16:30:32 +0000 + +linux (2.6.38-1.28) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to b1cee06249dfa0ab30951e7f06490a75c155b620 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: omap3: beaglexm: fix DVI initialization + * [Config] omap: move CONFIG_PANEL_GENERIC_DPI to build in to make + display work at Beagle + + -- Andy Whitcroft Fri, 28 Jan 2011 10:51:57 +0000 + +linux (2.6.38-1.27) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- update to c5021514085a5d96364e096dbd34cadb2251abfd + * SAUCE: ensure root is ready before running usermodehelpers in it + * correct the Vcs linkage to point to natty + * rebase to linux tip e78bf5e6cbe837daa6ab628a5f679548742994d3 + * [Config] update configs following rebase + e78bf5e6cbe837daa6ab628a5f679548742994d3 + * SAUCE: Yama: follow changes to generic_permission + * ubuntu: compcache -- follow changes to bd_claim/bd_release + * ubuntu: iscsitarget -- follow changes to open_bdev_exclusive + * ubuntu: ndiswrapper -- fix interaction between __packed and packed + * ubuntu: AUFS -- update to 806051bcbeec27748aae2b7957726a4e63ff308e + * update package version to match payload version + * rebase to e6f597a1425b5af64917be3448b29e2d5a585ac8 + * rebase to v2.6.38-rc1 + * [Config] updateconfigs following rebase to v2.6.38-rc1 + * SAUCE: x86 fix up jiffies/jiffies_64 handling + * rebase to linus tip 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] updateconfigs following rebase to + 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] disable CONFIG_TRANSPARENT_HUGEPAGE to fix i386 boot crashes + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * [Config] CONFIG_NR_CPUS=256 for amd64 -server flavour + * rebase to v2.6.38-rc2 + * rebase to mainline d315777b32a4696feb86f2a0c9e9f39c94683649 + * rebase to c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] update configs following rebase to + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] disable CONFIG_AD7152 to fix FTBS on armel versatile + * [Config] disable CONFIG_AD7150 to fix FTBS on armel versatile + * [Config] disable CONFIG_RTL8192CE to fix FTBS on armel omap + * [Config] disable CONFIG_MANTIS_CORE to fix FTBS on armel versatile + + [ Kees Cook ] + + * SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of attacking + + [ Stefan Bader ] + + * Temporarily disable RODATA for virtual i386 + - LP: #699828 + + [ Tim Gardner ] + + * [Config] CONFIG_NLS_DEFAULT=utf8 + - LP: #683690 + * [Config] CONFIG_HIBERNATION=n + * update bnx2 firmware files in d-i/firmware/nic-modules + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon/bo: add some fallback placements for VRAM only + objects." + * packaging: make System.map mode 0600 + * thinkpad_acpi: Always report scancodes for hotkeys + - LP: #702407 + * sched: tg->se->load should be initialised to tg->shares + * Input: sysrq -- ensure sysrq_enabled and __sysrq_enabled are consistent + * brcm80211: include linux/slab.h for kfree + * pch_dma: add include/slab.h for kfree + * i2c-eg20t: include linux/slab.h for kfree + * gpio/ml_ioh_gpio: include linux/slab.h for kfree + * tty: include linux/slab.h for kfree + * winbond: include linux/delay.h for mdelay et al + + [ Upstream Kernel Changes ] + + * mark the start of v2.6.38 versioning + * rebase v2.6.37 to v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + - LP: #689886 + - LP: #702125 + - LP: #608775 + - LP: #215802 + - LP: #686333 + - LP: #677830 + - LP: #677652 + - LP: #696493 + - LP: #697240 + - LP: #689036 + - LP: #705323 + - LP: #686692 + + -- Andy Whitcroft Sun, 09 Jan 2011 13:44:52 +0000 + +linux (2.6.37-12.26) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc8 + * [Config] armel -- reenable omap flavour + * [Config] disable CONFIG_MACH_OMAP3517EVM to fix FTBS on armel omap + * [Config] disable CONFIG_GPIO_VX855 to fix FTBS on omap armel + * [Config] disable CONFIG_WESTBRIDGE_ASTORIA to fix FTBS on omap armel + * [Config] disable CONFIG_TI_DAVINCI_EMAC to fix FTBS on omap armel + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * [Config] track missing modules + * rebase to v2.6.37 final + + [ Chase Douglas ] + + * SAUCE: (drop after 2.6.37) HID: magicmouse: Don't report REL_{X, Y} for + Magic Trackpad + + [ Stefan Bader ] + + * Revert "SAUCE: blkfront: default to sd devices" + - LP: #684875 + + [ Tim Gardner ] + + * Revert "SAUCE: (no-up) libata: Ignore HPA by default." + - LP: #380138 + * [Config] Added autofs4.ko to -virtual flavour + - LP: #692917 + + [ Upstream Kernel Changes ] + + * Add support for Intellimouse Mode in ALPS touchpad on Dell E2 series + Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc8 + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * rebase to v2.6.37 final + + -- Andy Whitcroft Thu, 23 Dec 2010 18:34:13 +0000 + +linux (2.6.37-11.25) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i -- add hpsa to the list of block devices + - LP: #684304 + * [Config] add vmw-balloon driver to -virtual flavour + - LP: #592039 + * rebase to v2.6.37-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc7 + + -- Andy Whitcroft Tue, 21 Dec 2010 13:35:28 +0000 + +linux (2.6.37-10.24) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc6 + * updateconfigs following rebase to v2.6.37-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc6 + + -- Andy Whitcroft Thu, 16 Dec 2010 12:34:19 +0000 + +linux (2.6.37-9.23) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks + - LP: #689606 + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks (grub) + - LP: #689606 + + [ Kees Cook ] + + * SAUCE: RO/NX protection for loadable kernel, fix ftrace + - LP: #690190 + + -- Andy Whitcroft Wed, 15 Dec 2010 19:29:57 +0000 + +linux (2.6.37-9.22) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.35-rc5 + * [Config] updateconfigs following rebase to v2.6.37-rc5 + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: dm-raid4-5 -- follow changes to bio flags + * ubuntu: dm-raid4-5 -- re-enable + * ubuntu: omnibook -- update BOM + * ubuntu: ndiswrapper -- update BOM to match actual version + * ubuntu: ndiswrapper -- follow removal of the BKL and locked ioctl + * ubuntu: ndiswrapper -- re-enable + * ubuntu: iscsitarget -- re-instate copy_io_context + * ubuntu: iscsitarget -- follow changes to semaphore initialisation + * ubuntu: iscsitarget -- convert NIPQUAD to %pI4 + * ubuntu: iscsitarget -- re-enable + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 13 + - LP: #685015 + + [ Tim Gardner ] + + * [Config] CONFIG_9P_FSCACHE=y,CONFIG_9P_FS_POSIX_ACL=y + * [Config] CONFIG_CRYPTO_CRC32C=y + - LP: #681819 + * [Config] CONFIG_9P_FSCACHE=n + * [Config] Add nfsd modules to -virtual flavour + - LP: #688070 + + [ Upstream Kernel Changes ] + + * Revert "Staging: zram: work around oops due to startup ordering snafu" + * NFS: Fix panic after nfs_umount() + - LP: #683938 + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + * x86: Resume trampoline must be executable + * x86: RO/NX protection for loadable kernel, jump_table fix + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc5 + + -- Andy Whitcroft Thu, 09 Dec 2010 18:15:35 +0000 + +linux (2.6.37-8.21) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- include the aufs_types.h file in + linux-libc-headers" + * Revert "(no-up) add support for installed header files to ubuntu + directory" + + -- Andy Whitcroft Sun, 05 Dec 2010 17:33:28 +0000 + +linux (2.6.37-8.20) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] drivers/serial/mfd.c: Fix ARM compile error" + * Revert "SAUCE: Nouveau: Disable acceleration on MacBook Pros" + * Revert "SAUCE: Nouveau: Add quirk framework to disable acceleration" + * Revert "SAUCE: i915 -- disable powersave by default" + * SAUCE: enable Marvell 9128 PCIe SATA controller + - LP: #658521 + * [Config] evtchn has been renamed + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + + [ Tim Gardner ] + + * [Config] MISS: evtchn, NEW : xen-evtchn + * rebase to v2.6.37-rc4 + + [ Upstream Kernel Changes ] + + * drm/i915: Clean conflicting modesetting registers upon init + - LP: #683775 + * rebase to v2.6.37-rc4 + + -- Andy Whitcroft Fri, 03 Dec 2010 18:42:07 +0000 + +linux (2.6.37-7.19) natty; urgency=low + + [ Tim Gardner ] + + * [Config] Add bnx2 firmware to nic-modules udeb + - LP: #676245 + + -- Andy Whitcroft Fri, 26 Nov 2010 17:53:45 +0000 + +linux (2.6.37-7.18) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID" + * Revert "SAUCE: Add extra headers to linux-libc-dev" + * Revert "SAUCE: Enable speedstep for sonoma processors." + * [Config] enable CONFIG_BT_HCIUART_ATH3K + * [Config] enable CONFIG_IWLWIFI_DEBUGFS + * [Config] standardise CONFIG_MII + * [Config] standardise CONFIG_PRISM2_USB + * [Config] standardise CONFIG_SCSI_QLA_ISCSI + * [Config] build in CONFIG_AGP + * [Config] build in CONFIG_AGP_INTEL + * [Config] build in CONFIG_AGP_AMD + * [Config] build in CONFIG_AGP_AMD64 + * [Config] build in CONFIG_AGP_NVIDIA + * [Config] build in CONFIG_AGP_VIA + * [Config] disable CONFIG_SCSI_QLA_ISCSI for FTBS (arm) + * (no-up): document the new ## scheme + * [Config] harmonise CONFIG_SERIAL_8250_NR_UARTS + * [Config] update CONFIG_SERIAL_8250_RUNTIME_UARTS=32 + - LP: #675453 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * nx-emu: fix inverted report of disable_nx + + -- Andy Whitcroft Tue, 23 Nov 2010 21:00:39 +0000 + +linux (2.6.37-6.17) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch + aufs2.1-36-UNRELEASED-20101103" + * Revert "ubuntu: AUFS -- aufs2-base.patch + aufs2.1-36-UNRELEASED-20101103" + * [Config] standardise CONFIG_BT + * [Config] standardise CONFIG_IRDA + * [Config] standardise CONFIG_LAPB + * [Config] standardise CONFIG_RDS + * [Config] standardise CONFIG_RFKILL + * [Config] standardise CONFIG_TIPC + * [Config] standardise CONFIG_X25 + * [Config] standardise CONFIG_INPUT_EVDEV + * [Config] standardise CONFIG_INPUT_JOYDEV + * [Config] standardise CONFIG_INPUT_JOYSTICK + * [Config] standardise CONFIG_INPUT_TOUCHSCREEN + * [Config] CONFIG_INPUT_TOUCHSCREEN=n for FTBS (arm) + * [Config] CONFIG_IRDA=n for FTBS (arm) + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-37 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37 + * ubuntu: AUFS -- update to 097bf62d6f49619359d34bf17f242df38562489a + + [ Tim Gardner ] + + * SAUCE: Fix drivers/staging/easycap FTBS + * [Config] CONFIG_EASYCAP=m after fixing FTBS + + [ Upstream Kernel Changes ] + + * Revert "x86: Add NX protection for kernel data" + + -- Andy Whitcroft Mon, 22 Nov 2010 18:09:10 +0000 + +linux (2.6.37-6.16) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] update config for CONFIG_DEBUG_SET_MODULE_RONX" + * rebase to v2.6.37-rc3 + + [ Tim Gardner ] + + * [Config] CONFIG_SCHED_AUTOGROUP=y + + [ Upstream Kernel Changes ] + + * Revert "x86: Add RO/NX protection for loadable kernel modules" + * sched: automated per session task groups + * rebase to v2.6.37-rc3 + + -- Andy Whitcroft Mon, 22 Nov 2010 10:11:13 +0000 + +linux (2.6.37-6.15) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] standardise CONFIG_CEPH_FS + * [Config] standardise CONFIG_SCSI_LPFC_DEBUG_FS + * [Config] standardise CONFIG_SCSI_PROC_FS + * [Config] standardise CONFIG_UBIFS_FS + * [Config] standardise CONFIG_USB_GADGET_DEBUG_FS + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 11 + - LP: #677210 + * SAUCE: enable rfkill for rtl8192se driver + - LP: #640992 + + [ Tim Gardner ] + + * [Config] CONFIG_EASYCAP=n for FTBS + * Rebase to v2.6.32-rc2+git + + [ Upstream Kernel Changes ] + + * x86: Fix improper large page preservation + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + + [ Upstream Kernel Changes ] + + * Rebase to Linus 2.6.37-rc2+git + + -- Andy Whitcroft Sat, 20 Nov 2010 11:40:00 +0000 + +linux (2.6.37-5.14) natty; urgency=low + + [ Upstream Kernel Changes ] + + * PCI: fix offset check for sysfs mmapped files + - LP: #676963 + + -- Andy Whitcroft Thu, 18 Nov 2010 18:12:27 +0000 + +linux (2.6.37-5.13) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.37-rc2 + * updateconfigs following rebase to v2.6.37-rc2 + + [ Tim Gardner ] + + * [Config] Added NFS and related modules to virtual flavour + - LP: #659084 + + [ Upstream Kernel Changes ] + + * x86, cpu: Rename verify_cpu_64.S to verify_cpu.S + * x86, cpu: Clear XD_DISABLED flag on Intel to regain NX + * x86, cpu: Call verify_cpu during 32bit CPU startup + * x86, cpu: Only CPU features determine NX capabilities + + [ Upstream Changes ] + + * rebased to v2.67.37-rc2 + + -- Andy Whitcroft Tue, 16 Nov 2010 13:13:29 +0000 + +linux (2.6.37-4.12) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] HID: magicmouse: add param for scroll speed" + * Revert "[Upstream] HID: magicmouse: properly account for scroll + movement in state" + * Revert "[Upstream] HID: magicmouse: disable and add module param for + scroll acceleration" + * Revert "[Upstream] HID: magicmouse: scroll on entire surface, not just + middle of mouse" + + [ Henrik Rydberg ] + + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Upstream Kernel Changes ] + + * Revert "mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume" + * Revert "[ARM] implement arch_randomize_brk()" + * Revert "ARM: stack protector: change the canary value per task" + * Revert "ARM: initial stack protector (-fstack-protector) support" + * Revert "ALSA: hda - Handle pin NID 0x1a on ALC259/269" + * Revert "ALSA: hda - Handle missing NID 0x1b on ALC259 codec" + * Revert "perf probe: Add kernel source path option" + * hid: ntrig: Support single-touch devices + * hid: ntrig: Mask pen switch events + * net: rtnetlink.h -- only include linux/netdevice.h when used by the + kernel + - LP: #673073 + * Fix userspace build of linux/fs.h + + -- Andy Whitcroft Mon, 15 Nov 2010 19:31:44 +0000 + +linux (2.6.37-3.11) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- update to + b37c575759dc4535ccc03241c584ad5fe69e3b25" + * Revert "ubuntu: AUFS -- track changes to the arguements to fop fsync()" + * Revert "ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601" + * Revert "ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601" + * Revert "ubuntu: AUFS -- aufs2 base patch for linux-2.6.34" + * [Config] Disable intel_idle for -virtual kernels + - LP: #651370 + * [Config] enforcer -- ensure we never enable CONFIG_IMA + * debian -- pass the correct flavour name when checking configs + * [Config] enforcer -- ensure CONFIG_INTEL_IDLE is off for -virtual + * [Config] ensure CONFIG_IPV6=y for powerpc + * [Config] enforcer -- ensure CONFIG_IPV6=y + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- update to aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- re-enable + * ubuntu: AUFS -- track changes to work queue initialisation + * ubuntu: AUFS -- track changes to llseek in v2.6.37-rc1 + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + * SAUCE: drm -- stop early access to drm devices + + [ Jeremy Kerr ] + + * [Config] Build-in powermac ZILOG serial driver + - LP: #673346 + + [ Kees Cook ] + + * SAUCE: nx-emu: use upstream ASLR when possible + + [ Tim Gardner ] + + * [Config] Use correct be2iscsi module name in d-i/modules/scsi-modules + - LP: #628776 + + [ Upstream Kernel Changes ] + + * i386: NX emulation + * nx-emu: drop exec-shield sysctl, merge with disable_nx + * nx-emu: standardize boottime message prefix + * mmap randomization for executable mappings on 32-bit + * exec-randomization: brk away from exec rand area + + -- Andy Whitcroft Thu, 11 Nov 2010 23:46:37 +0000 + +linux (2.6.37-2.10) natty; urgency=low + + [ Andy Whitcroft ] + + * reinstate armel config changes: + * [Config] CONFIG_GPIO_PCH=n for armel FTBS + * [Config] CONFIG_GPIO_VX855=n for armel FTBS + + -- Andy Whitcroft Wed, 03 Nov 2010 22:20:35 +0000 + +linux (2.6.37-2.9) natty; urgency=low + + [ Andy Whitcroft ] + + * config -- fix genportsconfig + * [Config] move powerpc over from ports to distro + * bump master version number to match contained kernel + * SAUCE: fix documentation strings for struct input_keymap_entry + * usb: gadget: goku_udc: add registered flag bit + + -- Andy Whitcroft Tue, 02 Nov 2010 15:14:11 +0000 + +linux (2.6.36-2.8) natty; urgency=low + + [ Tim Gardner ] + + * [Config]: fix changed CONFIG_SYSFS_DEPRECATED_V2 enforcement rules + * [Config]: TWL4030_CORE=n for FTBS + * [Config]: CONFIG_ATH6K_LEGACY=n for FTBS + * [Config]: CONFIG_SOLO6X10=n for FTBS + * [Config]: CONFIG_GPIO_PCH=n for armel FTBS + * [Config]: CONFIG_GPIO_VX855=n for armel FTBS + * [Config]: CONFIG_DRM_NOUVEAU=n for armel FTBS + * [Config]: CONFIG_LINE6_USB=n for armel FTBS + * [Config]: CONFIG_SENSORS_AK8975=n for armel FTBS + * [Config]: CONFIG_I2C_I801=n for armel FTBS + * UBUNTU: SAUCE: AppArmor: Fix unpack of network tables. + * AppArmor: compatibility patch for v5 interface + * AppArmor: compatibility patch for v5 network controll + * Dropped (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: libata: Add ALPM power state accounting to the AHCI driver + * Dropped: UBUNTU: SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + * Dropped: hid: 3m: Convert to MT slots + * Dropped: HID: magicmouse: don't allow hidinput to initialize the device + * Dropped: HID: magicmouse: simplify touch data bit manipulation + * Dropped: HID: magicmouse: simplify touch down logic + * Dropped: HID: magicmouse: enable Magic Trackpad support + * Dropped: UBUNTU: SAUCE: hid: ntrig: remove sysfs nodes + * Dropped: UBUNTU: SAUCE: hid: ntrig: Setup input filtering manually + * Dropped: UBUNTU: SAUCE: hid: ntrig: New ghost-filtering event logic + * Dropped: UBUNTU: SAUCE: hid: ntrig: identify firmware version (wiggled) + * Dropped: UBUNTU: (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: KMS: cache the EDID information of the LVDS + * Dropped: UBUNTU: SAUCE: fbcon -- fix race between open and removal of framebuffers + * Dropped: UBUNTU: SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + * Dropped: UBUNTU: SAUCE: x86: implement cs-limit nx-emulation for ia32 + * Dropped: UBUNTU: SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * Dropped: UBUNTU: SAUCE: [um] Don't use nx_enabled under UML + * Dropped: UBUNTU: SAUCE: x86: brk away from exec rand area + + [ Upstream Kernel Changes ] + + * rebased against 2.6.27-rc1 + + -- Tim Gardner Fri, 22 Oct 2010 19:35:05 -0600 + +linux (2.6.36-1.7) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.36 final + * [Config] update configs following rebase to v2.6.36 final + * [Config] update ports configs following rebase to v2.6.36 final + + [ Upstream Kernel Changes ] + + * rebased to v2.6.36 final + + -- Andy Whitcroft Thu, 21 Oct 2010 14:28:57 +0100 + +linux (2.6.36-1.6) natty; urgency=low + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "Staging: Add initial release of brcm80211 - Broadcom 802.11n + wireless LAN driver." + + -- Andy Whitcroft Wed, 20 Oct 2010 10:41:25 +0100 + +linux (2.6.36-1.5) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.36-rc8 + * updateconfigs following rebase to v2.6.36-rc8 + * updateportsconfigs following rebase to v2.6.36-rc8 + * config -- simplify the kernelconfig interface + * config -- add new config mode 'dumpconfigs' + + [ Tim Gardner ] + + * Simplify the use of CROSS_COMPILER + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "staging: brcm80211: Make compiling of brcm80211.ko and + brcmfmac.ko mutually exclusive." + * Revert "staging: brcm80211: Fix compile issue when BRCM80211_PCI is not + set." + * Revert "Staging: brcm80211: remove driver specific -W options" + * Revert "Staging: brcm80211: clean up makefile cflag lines" + * Revert "staging: brcm80211: add fullmac driver" + * Revert "staging: brcm80211: use string native library" + * Revert "staging: brcm80211: use native ctype library" + * Revert "staging: brcm80211: fix remaining checkpatch errors." + * Revert "staging: brcm80211: fix "ERROR: trailing whitespace."" + * Revert "staging: brcm80211: fix "ERROR: spaces required around that + ..."" + * Revert "staging: brcm80211: fix "ERROR: spaces prohibited around that + ':' ..."" + * Revert "staging: brcm80211: fix "ERROR: space required before that + ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that close + brace"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited before + ...close square bracket"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited after that + ..."" + * Revert "staging: brcm80211: fix "ERROR: need consistent spacing around + '*'"" + * Revert "staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"'" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... + do - while loop"" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise statics to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise globals to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: while should follow close brace + '}'"" + * Revert "staging: brcm80211: fix "ERROR: that open brace { ... prev + line"" + * Revert "staging: brcm80211: fix "ERROR: trailing statements should be + on next line"" + * Revert "staging: brcm80211: fix "ERROR: do not use assignment in if + condition"" + * Revert "staging: brcm80211: fix "ERROR: return is not a function, + paren..."" + * Revert "staging: brcm80211: fix "ERROR: open brace '{' following + function dec..."" + * Revert "staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo + *bar"'" + * Revert "staging: brcm80211: Fix URLs for firmware files." + * Revert "staging: brcm80211: use '%pM' format to print MAC address" + * Revert "staging: brcm80211: Add contact info to TODO list." + * Revert "staging: brcm80211: Fix some initialisation failure paths" + * Export dump_{write,seek} to binary loader modules + * rebase to v2.6.36-rc8. + + -- Andy Whitcroft Tue, 19 Oct 2010 18:58:11 +0100 + +linux (2.6.36-0.4) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: perf: increase stack footprint to avoid stack-protector warning + (fixes FTBS on powerpc) + + -- Andy Whitcroft Thu, 14 Oct 2010 13:16:16 +0100 + +linux (2.6.36-0.3) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_SCSI_QLA_ISCSI to fix FTBS on powerpc + + -- Andy Whitcroft Thu, 14 Oct 2010 03:01:30 +0100 + +linux (2.6.36-0.2) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] updateportsconfigs following rebase to 2.6.36-rc7 + (fix FTBS on powerpc) + + -- Andy Whitcroft Wed, 13 Oct 2010 23:25:12 +0100 + +linux (2.6.36-0.1) natty; urgency=low + + [ Andy Whitcroft ] + + * reduce disk usage during buildd builds + - LP: #645653 + * [Config] enforcer -- ensure CONFIG_INIT_PASS_ALL_PARAMS is y + * [Config] armel -- drop omap flavour + + [ Tim Gardner ] + + * Added dropped patch list + * more dropped patches + * [Config] Disable aufs, dmraid-4.5, ndis-wrapper + * [Config] Add support for cross compiling armel + * [Config] CONFIG_SCSI_QLA_ISCSI=n for armel + * [Upstream] drivers/serial/mfd.c: Fix ARM compile error + * [Config]: updateconfigs after adding brcm80211 + * staging: brcm80211: Fix Makefile syntax error + * rebased to v2.6.36-rc7 + + [ Upstream Kernel Changes ] + + * (upstream) IPS driver: don't toggle CPU turbo on unsupported CPUs + * (upstream) IPS driver: verify BIOS provided limits + * intel_ips: Print MCP limit exceeded values. + * Staging: Add initial release of brcm80211 - Broadcom 802.11n wireless + LAN driver. + * staging: brcm80211: Fix some initialisation failure paths + * staging: brcm80211: Add contact info to TODO list. + * staging: brcm80211: use '%pM' format to print MAC address + * staging: brcm80211: Fix URLs for firmware files. + * staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo *bar"' + * staging: brcm80211: fix "ERROR: open brace '{' following function + dec..." + * staging: brcm80211: fix "ERROR: return is not a function, paren..." + * staging: brcm80211: fix "ERROR: do not use assignment in if condition" + * staging: brcm80211: fix "ERROR: trailing statements should be on next + line" + * staging: brcm80211: fix "ERROR: that open brace { ... prev line" + * staging: brcm80211: fix "ERROR: while should follow close brace '}'" + * staging: brcm80211: fix "ERROR: do not initialise globals to 0 or NULL" + * staging: brcm80211: fix "ERROR: do not initialise statics to 0 or NULL" + * staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis" + * staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... do - + while loop" + * staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"' + * staging: brcm80211: fix "ERROR: need consistent spacing around '*'" + * staging: brcm80211: fix "ERROR: space prohibited after that ..." + * staging: brcm80211: fix "ERROR: space prohibited before ...close square + bracket" + * staging: brcm80211: fix "ERROR: space required after that close brace" + * staging: brcm80211: fix "ERROR: space required after that ..." + * staging: brcm80211: fix "ERROR: space required before that ..." + * staging: brcm80211: fix "ERROR: spaces prohibited around that ':' ..." + * staging: brcm80211: fix "ERROR: spaces required around that ..." + * staging: brcm80211: fix "ERROR: trailing whitespace." + * staging: brcm80211: fix remaining checkpatch errors. + * staging: brcm80211: use native ctype library + * staging: brcm80211: use string native library + * staging: brcm80211: add fullmac driver + * Staging: brcm80211: clean up makefile cflag lines + * Staging: brcm80211: remove driver specific -W options + * staging: brcm80211: Fix compile issue when BRCM80211_PCI is not set. + * staging: brcm80211: Make compiling of brcm80211.ko and brcmfmac.ko + mutually exclusive. + + -- Andy Whitcroft Tue, 12 Oct 2010 16:00:27 +0100 + +linux (2.6.35-22.33) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops" + - LP: #641320 + + [ Brian Rogers ] + + * SAUCE: ir-core: Fix null dereferences in the protocols sysfs interface + - LP: #624701 + + [ Christopher James Halse Rogers ] + + * SAUCE: Nouveau: Add quirk framework to disable acceleration + - LP: #544088, #546393 + * SAUCE: Nouveau: Disable acceleration on MacBook Pros + - LP: #546393 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: allow newer tools to load policy on older + kernels" + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + + [ Mathieu J. Poirier ] + + * SAUCE: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * ALSA: HDA: Enable internal speaker on Dell M101z + - LP: #640254 + + -- Leann Ogasawara Fri, 17 Sep 2010 13:21:28 -0700 + +linux (2.6.35-22.32) maverick; urgency=low + + [ Arjan van de Ven ] + + * SAUCE: libata: Add ALPM power state accounting to the AHCI driver + + [ David Henningsson ] + + * SAUCE: ALSA: HDA: Enable internal mic on Dell E6410 and Dell E6510 + - LP: #605047, #628961 + + [ John Johansen ] + + * [Upstream] AppArmor: Fix splitting an fqname into separate namespace + and profile names + - LP: #615947 + * [Upstream] AppArmor: Fix locking from removal of profile namespace + - LP: #615947 + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + * SAUCE: Improve Amazon EBS performance for EC2 + - LP: #634316 + + [ Leann Ogasawara ] + + * Revert "SAUCE: i915 KMS -- blacklist i855" + * Revert "SAUCE: i915 KMS -- blacklist i845g" + * Revert "SAUCE: i915 KMS -- blacklist i830" + * Revert "SAUCE: i915 KMS -- support disabling KMS for known broken + devices" + * execute module-inclusion within a subshell + - LP: #621175 + + [ Upstream Kernel Changes ] + + * (pre-stable) bounce: call flush_dcache_page() after bounce_copy_vec() + - LP: #633227 + * (pre-stable) drm/i915: don't enable self-refresh on Ironlake + - LP: #629711 + * (pre-stable) mm: Move vma_stack_continue into mm.h + * x86, hwmon: Fix unsafe smp_processor_id() in thermal_throttle_add_dev + - LP: #601073 + * PM / Runtime: Make runtime_status attribute not debug-only (v. 2) + * PM / Runtime: Add runtime PM statistics (v3) + * compat: Make compat_alloc_user_space() incorporate the access_ok() + - CVE-2010-3081 + * x86-64, compat: Test %rax for the syscall number, not %eax + - CVE-2010-3301 + * x86-64, compat: Retruncate rax after ia32 syscall entry tracing + - CVE-2010-3301 + + -- Leann Ogasawara Tue, 14 Sep 2010 08:46:49 -0700 + +linux (2.6.35-21.31) maverick; urgency=low + + [ Andy Whitcroft ] + + * bodge linux-libc-dev package version due to ti-omap4 error + * linux-libc-dev -- ensure we can only build this on debian.master + + -- Leann Ogasawara Mon, 13 Sep 2010 09:54:31 -0700 + +linux (2.6.35-21.30) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + + [ Daniel Lezcano ] + + * SAUCE: fix compilation warning when CONFIG_SECURITY is not set + + [ Henrik Rydberg ] + + * SAUCE: Input: wacom - add fuzz parameters to features + * SAUCE: Input: wacom - collect device quirks into single function + * SAUCE: Input: wacom - add support for the Bamboo Touch trackpad + * SAUCE: Input: wacom - add a quirk for low resolution Bamboo devices + * SAUCE: hid: ntrig: Remove unused device ids + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Correct logic for quirks + * SAUCE: hid: ntrig: zero-initialize ntrig struct + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Leann Ogasawara ] + + * SAUCE: ndiswrapper: Initialize buffer index and check its value + - LP: #613796 + + [ Manoj Iyer ] + + * SAUCE: Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops + - LP: #632884 + + [ Ping Cheng ] + + * SAUCE: Input: wacom - parse the Bamboo device family + + [ Rafi Rubin ] + + * SAUCE: hid: ntrig: identify firmware version (wiggled) + + [ Tim Gardner ] + + * [Config] CONFIG_NL80211_TESTMODE=n + + [ Upstream Kernel Changes ] + + * Revert "input: mt: Add support for the Bamboo Touch trackpad" + * e1000e: initial support for 82579 LOMs + * e1000e: correct MAC-PHY interconnect register offset for 82579 + * (pre-stable) ALSA: hda - Add a new hp-laptop model for Conexant 5066, + tested on HP G60 + - LP: #587388 + * DSS2: Don't power off a panel twice + - LP: #588243 + * mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y + * Input: i8042 - reset keyboard controller wehen resuming from S2R + - LP: #86820 + * ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs + - LP: #414795 + * agp/intel: Support the extended physical addressing bits on + Sandybridge. + - LP: #632488 + * drm/i915,intel_agp: Add support for Sandybridge D0 + - LP: #632488 + * (pre-stable) intel_agp,i915: Add more sandybridge graphics device ids + - LP: #632488 + * mmc: omap: fix for bus width which improves SD card's peformance. + + -- Leann Ogasawara Tue, 07 Sep 2010 09:58:52 -0700 + +linux (2.6.35-20.29) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: i915 KMS -- support disabling KMS for known broken devices + - LP: #563277 + * SAUCE: i915 KMS -- blacklist i830 + - LP: #542208, #563277 + * SAUCE: i915 KMS -- blacklist i845g + - LP: #541492, #563277 + * SAUCE: i915 KMS -- blacklist i855 + - LP: #511001, #541511, #563277 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_PKGTEMP=m + - LP: #601073 + * ARM: Temporarily disable module check for armel + * rebase to v2.6.35.4 + * [Config] update configs following rebase to v2.6.35.4 + + [ Ricardo Salveti de Araujo ] + + * [Config] Change CONFIG_LEDS_TRIGGER_HEARTBEAT from module to built-in + in Omap + + [ Tim Gardner ] + + * [Config] Added be2net, be2scsi to udebs + - LP: #628776 + + [ Upstream Kernel Changes ] + + * x86, cpu: Package Level Thermal Control, Power Limit Notification + definitions + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: thermal throttling handler + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: power limit + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp documentation + - LP: #601073 + * hid: 3m: Adjust to sequential MT HID protocol + * hid: 3m: Convert to MT slots + * hid: 3m: Correct touchscreen emulation + * hid: 3m: Adjust major / minor axes to scale + * input: bcm5974: Adjust major / minor to scale + * HID: magicmouse: don't allow hidinput to initialize the device + * HID: magicmouse: simplify multitouch feature request + * HID: magicmouse: simplify touch data bit manipulation + * HID: magicmouse: simplify touch down logic + * HID: magicmouse: remove timestamp logic + * HID: magicmouse: enable Magic Trackpad support + * HID: magicmouse: Adjust major / minor axes to scale + * mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume + - LP: #477106 + * drm/i915: fix VGA plane disable for Ironlake+ + - LP: #602281 + + -- Leann Ogasawara Mon, 30 Aug 2010 08:38:01 -0700 + +linux (2.6.35-19.28) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.27. Some armel udebs were accidentally deleted + from the archive and a no-change rebuild was attempted. However, the ABI + did not get bumped and resulted in build failures for 2.6.35-19.27. Fix + up the ABI and re-upload. + + -- Leann Ogasawara Sat, 28 Aug 2010 16:42:27 -0700 + +linux (2.6.35-19.27) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.26. Some armel udebs were accidentally deleted + from the archive. + + -- Leann Ogasawara Fri, 27 Aug 2010 08:58:35 -0700 + +linux (2.6.35-19.26) maverick; urgency=low + + [ Upstream Kernel Changes ] + + * ARM: OMAP: Beagle: revision detection + * ARM: OMAP: Beagle: only Cx boards use pin 23 for write protect + * ARM: OMAP: Beagle: no gpio_wp pin connection on xM + + -- Leann Ogasawara Thu, 26 Aug 2010 09:15:09 -0700 + +linux (2.6.35-19.25) maverick; urgency=low + + [ Jarod Wilson ] + + * SAUCE: Bring in staging/lirc from 2.6.36 + - LP: #609234 + * SAUCE: Update ir-core to linuxtv/other which should be merged for + 2.6.36. + - LP: #609234 + * SAUCE: Fix memleaks in imon and mceusb drivers + - LP: #609234 + * SAUCE: Bring in streamzap support from linuxtv/other + - LP: #609234 + + [ Mario Limonciello ] + + * Remove ubuntu/lirc in favor of staging/lirc from 2.6.36 + - LP: #609234 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: adding i2c eeprom driver to read EDID + - LP: #608279 + + [ Upstream Kernel Changes ] + + * intel_idle: disable module support + - LP: #615265 + * (pre-stable) ALSA: hda - Ensure codec patch files are checked for the + correct codec ID + * (pre-stable) ALSA: hda - Rename iMic to Int Mic on Lenovo NB0763 + - LP: #605101 + * (pre-stable) ALSA: HDA: Use model=auto for LG R510 + - LP: #495134 + * (pre-stable) ALSA: HDA: Add Sony VAIO quirk for ALC269 + - LP: #519066 + * (pre-stable) ALSA: HDA: Fix front mic on Dell Precision M6500 + - LP: #519066 + * input: mt: Initialize slots to unused (rev2) + * input: mt: Add support for the Bamboo Touch trackpad + * hid: Add a hid quirk for input sync override + + -- Leann Ogasawara Mon, 23 Aug 2010 12:42:52 -0700 + +linux (2.6.35-18.24) maverick; urgency=low + + [ Colin Watson ] + + * Pass DEB_MAINT_PARAMS to hook scripts + + [ Leann Ogasawara ] + + * [Config] Add CONFIG_INPUT_UINPUT=y to config enforcer + - LP: #584812 + * rebase to v2.6.35.3 + + [ Upstream Kernel Changes ] + + * (pre-stable) dell-wmi: Add support for eject key on Dell Studio 1555 + - LP: #609234 + * can: add limit for nframes and clean up signed/unsigned variables + - CVE-2010-2959 + * drm: Initialize ioctl struct when no user data is present + - CVE-2010-2803 + * ARM: initial stack protector (-fstack-protector) support + * ARM: stack protector: change the canary value per task + * [ARM] implement arch_randomize_brk() + * [ARM] add address randomization to mmap() + * ARM: fix ASLR of PIE executables + + -- Leann Ogasawara Sun, 22 Aug 2010 19:22:04 -0700 + +linux (2.6.35-17.23) maverick; urgency=low + + [ Jeremy Kerr ] + + * [Config] build-in uinput module + - LP: #584812 + + [ Leann Ogasawara ] + + * Revert "[Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS" + * Revert "[Config] [FTBS] ia64: Temporarily disable gpiolib" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MTD_NAND_DENALI" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MFD_JANZ_CMODIO" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_INFINIBAND_QIB" + * [Config] Enable INTEL_IPS + - LP: #601057 + * Remove ia64 support + * [Config] Update portsconfigs after removing ia64 support + * Remove sparc support + * [Config] Update portsconfigs after removing sparc support + + [ Linus Torvalds ] + + * (pre-stable) mm: fix page table unmap for stack guard page properly + + [ Mathieu J. Poirier ] + + * SAUCE: (no-up) ARM: Resetting power_mode to its original value. + - LP: #591941 + + [ Upstream Kernel Changes ] + + * timer: add on-stack deferrable timer interfaces + - LP: #601057 + * x86 platform driver: intelligent power sharing driver + - LP: #601057 + * IPS driver: add GPU busy and turbo checking + - LP: #601057 + * X86: intel_ips, check for kzalloc properly + - LP: #601057 + * ips driver: make it less chatty + - LP: #601057 + + -- Leann Ogasawara Tue, 17 Aug 2010 09:38:08 -0700 + +linux (2.6.35-16.22) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- more agressivly clean up after depmod on purge + - LP: #618591 + + [ Henrik Rydberg ] + + * SAUCE: hid: 3m: Simplify touchsreen emulation logic + + [ Leann Ogasawara ] + + * ubuntu: iscsitarget -- version 1.4.20.2 + * ubuntu: rtl8192se -- update to version 0017.0507.2010 + * rebase to v2.6.35.2 + * [Config] update configs following rebase to v2.6.35.2 + * [Config] update ports configs following rebase to v2.6.35.2 + + [ Luke Yelavich ] + + * [Config] Enable new firewire stack on powerpc + + [ Mathieu J. Poirier ] + + * SAUCE: (drop after 2.6.35) ARM: Using gpmc function to init nand flash. + - LP: #608266 + + -- Leann Ogasawara Thu, 12 Aug 2010 09:58:01 -0700 + +linux (2.6.35-15.21) maverick; urgency=low + + [ Luke Yelavich ] + + * [Config] CONFIG_SND_USB_UA101=m for all architectures + + [ Upstream Kernel Changes ] + + * Input: introduce MT event slots + * Input: document the MT event slot protocol + * (pre-stable) sched: Revert nohz_ratelimit() for now + * (pre-stable) drm/radeon/kms: add missing copy from user + - LP: #606081 + + [ Leann Ogasawara ] + + * rebase to v2.6.35.1 + + -- Leann Ogasawara Mon, 09 Aug 2010 09:24:04 -0700 + +linux (2.6.35-14.20) maverick; urgency=low + + [ Andy Whitcroft ] + + * update Vcs-Git to point to maverick repo + * debian -- include the debian packaging in the -source package + - LP: #608674 + * select debian source format 1.0 + * add support for building selected stages of kernel + - LP: #603087 + * cleanup conditional dependancy handling + - LP: #603087 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Handle missing NID 0x1b on ALC259 codec + - LP: #582199, #586418, #588031 + * ALSA: hda - Handle pin NID 0x1a on ALC259/269 + - LP: #582199, #586418, #588031 + * sched: Revert nohz_ratelimit() for now + + -- Leann Ogasawara Tue, 03 Aug 2010 08:46:47 -0700 + +linux (2.6.35-14.19) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35 + + -- Leann Ogasawara Sun, 01 Aug 2010 10:35:56 -0700 + +linux (2.6.35-13.18) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: (no-up) Modularize vesafb -- fix initialisation + * SAUCE: add tracing for user initiated readahead requests + * SAUCE: vt -- maintain bootloader screen mode and content until vt + switch + * SAUCE: vt -- allow grub to request automatic vt_handoff + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: drm -- stop early access to drm devices + + [ Bryan Wu ] + + * CONFIG: compile in OTG driver and Transceiver driver + - LP: #566645 + * remove OTG modules from modules list file + + [ John Johansen ] + + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-27 + - LP: #581525, #599450 + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-29 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: AppArmor: Allow dfa backward compatibility with broken userspace + * SAUCE: fix pv-ops for legacy Xen + * SAUCE: blkfront: default to sd devices + * [Config] Build in drivers required for Xen pv-ops + + [ Leann Ogasawara ] + + * Revert "[Upstream] i915: Use the correct mask to detect i830 aperture + size." + + [ Lee Jones ] + + * SAUCE: ARM: OMAP: Add macros for comparing silicon revision + - LP: #608095 + * SAUCE: OMAP: DSS2: check for both cpu type and revision, rather than + just revision + - LP: #608095 + * SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX + - LP: #608095 + * SAUCE: ARM: OMAP: Beagle: support twl gpio differences on xM + - LP: #608095 + + [ Upstream Kernel Changes ] + + * agp/intel: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + -- Leann Ogasawara Fri, 30 Jul 2010 15:46:59 -0700 + +linux (2.6.35-12.17) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + * [Config] update configs following rebase to v2.6.35-rc6 + * [Config] update ports configs following rebase to v2.6.35-rc6 + * SAUCE: [FTBS] armel: define KEY_F10 and KEYF11 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + + -- Leann Ogasawara Fri, 23 Jul 2010 16:16:38 +0200 + +linux (2.6.35-11.16) maverick; urgency=low + + [ Leann Ogasawara ] + + * Bump ABI for new compiler update + + -- Leann Ogasawara Fri, 23 Jul 2010 10:24:58 +0200 + +linux (2.6.35-10.15) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "SAUCE: ensure vga16fb loads if no other driver claims the VGA + device" + * [Config] Enable CONFIG_M686=y + - LP: #592495 + + [ Upstream Kernel Changes ] + + * tracing: Add alignment to syscall metadata declarations + + -- Leann Ogasawara Tue, 20 Jul 2010 18:18:49 +0200 + +linux (2.6.35-9.14) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- update to b37c575759dc4535ccc03241c584ad5fe69e3b25 + + [ John Johansen ] + + * [Config] Enable DRBD as a module + + [ Kees Cook ] + + * SAUCE: Yama: verify inode is symlink to avoid bind mounts + - LP: #604407 + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] ports: Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + * [Config] ports: Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + + [ Lee Jones ] + + * Stop ARM boards crashing when CUPS is loaded + - LP: #601226 + + [ Upstream Kernel Changes ] + + * perf probe: Support tracing an entry of array + * perf probe: Support static and global variables + + -- Leann Ogasawara Fri, 16 Jul 2010 14:38:17 -0700 + +linux (2.6.35-8.13) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: Yama: check PTRACE using thread group leader + * SAUCE: Yama: search for PTRACE exceptions via thread group leader + - LP: #603716 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc5 + * [Config] update configs following rebase to v2.6.35-rc5 + + [ Nicolas Pitre ] + + * SAUCE: make ndiswrapper available on X86 only + + [ Tim Gardner ] + + * [Config] Added ums-cypress to udeb + - LP: #576066 + * SAUCE: fix build error with CONFIG_BLK_DEV_INITRD=n + * [Config] CONFIG_NDISWRAPPER=m across all configs + + [ Upstream Kernel Changes ] + + * HID: magicmouse: report last touch up + * rebase to 2.6.35-rc5 + + -- Leann Ogasawara Tue, 13 Jul 2010 18:57:59 -0700 + +linux (2.6.35-7.12) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] i915: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35) drm/radeon/kms: add ioport register access + (squashed) + + -- Tim Gardner Thu, 08 Jul 2010 09:53:13 -0600 + +linux (2.6.35-7.11) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_X86_MRST=n + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35-rc5) writeback: remove writeback_inodes_wbc + * (drop after 2.6.35-rc5) writeback: split writeback_inodes_wb + * (drop after 2.6.35-rc5) writeback: simplify the write back thread queue + + -- Tim Gardner Tue, 06 Jul 2010 18:39:08 -0600 + +linux (2.6.35-7.10) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: security: create task_free security callback + * SAUCE: Yama: add PTRACE exception tracking and interface + * SAUCE: security: unconditionally chain to Yama LSM + * Revert "SAUCE: ptrace: restrict ptrace scope to children" + * Revert "SAUCE: fs: block hardlinks to non-accessible sources" + * Revert "SAUCE: fs: block cross-uid sticky symlinks" + * [Upstream] security: Yama LSM + * [Config] Enable CONFIG_SECURITY_YAMA=y + + [ Tim Gardner ] + + * [Config] updateconfigs/updateportsconfigs after rebase to 2.6.35-rc4 + + [ Upstream Kernel Changes ] + + * rebase to 2.6.35-rc4 + + -- Leann Ogasawara Thu, 01 Jul 2010 08:55:57 -0700 + +linux (2.6.35-6.9) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] direct_splice_actor() should not use pos in sd + - LP: #588861 + + -- Leann Ogasawara Mon, 28 Jun 2010 12:35:49 -0700 + +linux (2.6.35-6.8) maverick; urgency=low + + [ Mathieu J. Poirier ] + + * ARM: Adding regulator supply for vdds_sdi. + - LP: #597904 + + -- Leann Ogasawara Sun, 27 Jun 2010 16:34:43 -0700 + +linux (2.6.35-6.7) maverick; urgency=low + + [ Alberto Milone ] + + * [Upstream] Add support for the ATIF ACPI method to the radeon driver + + [ Chase Douglas ] + + * [Upstream] HID: magicmouse: scroll on entire surface, not just middle + of mouse + * [Upstream] HID: magicmouse: disable and add module param for scroll + acceleration + * [Upstream] HID: magicmouse: properly account for scroll movement in + state + * [Upstream] HID: magicmouse: add param for scroll speed + * [Upstream] HID: magicmouse: enable horizontal scrolling + + [ Henrik Rydberg ] + + * [Upstream] Input: evdev - convert to dynamic event buffer + * [Upstream] Input: evdev - use driver hint to compute size of event + buffer + * [Upstream] Input: bcm5974 - set the average number of events per MT + event packet + * [Upstream] Input: hid-input - use a larger event buffer for MT devices + * [Upstream] Input: evdev - never leave the client buffer empty after + write + + [ John Johansen ] + + * SAUCE: AppArmor: -- mainline 2010-06-23 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: fs: block hardlinks to non-accessible sources AppArmor portion + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_INTR_REMAP=y + - LP: #597091 + * [Config] Enable CONFIG_X86_X2APIC + - LP: #597091 + + [ Mathieu J. Poirier ] + + * [Config] ARM: Turning off CONFIG_CPU_IDLE on omap + - LP: #594382 + + -- Leann Ogasawara Thu, 24 Jun 2010 12:19:48 -0700 + +linux (2.6.35-5.6) maverick; urgency=low + + [ Amit Kucheria ] + + * [Config] update omap flavour description + + [ Andy Whitcroft ] + + * update to ubuntu-debian:508b7aa34b578c0d1e51bfb571f2bfb824dc65ac + - LP: #570500, #576274 + * SAUCE: add option to hand off all kernel parameters to init + - LP: #586386 + * [Config] enable passing all kernel command line to init + - LP: #586386 + * [Config] disable CONFIG_VMI + - LP: #537601 + * [Config] enable CONFIG_IPV6_SIT_6RD + - LP: #591869 + * [Config] enable CONFIG_VMWARE_BALOON as module + - LP: #592039 + + [ Leann Ogasawara ] + + * Revert "SAUCE: pm: Config option to disable handling of console during + suspend/resume" + - LP: #594885 + * [Config] Remove CONFIG_PM_DISABLE_CONSOLE + * [Config] ports: enable passing all kernel command line to init + - LP: #586386 + * [Config] Enable CONFIG_FB_VESA=y for x86 + * [Config] Add CONFIG_FRAMEBUFFER_CONSOLE=y to config enforcer + * [Config] Add CONFIG_FB_VESA=y for x86 to config enforcer + * [Config] Enable CONFIG_TASK_DELAY_ACCT=y + - LP: #493156 + + [ Mathieu Poirier ] + + * ARM: Adding MosChip MCS7830 to nic-usb + - LP: #584920 + + [ Upstream Kernel Changes ] + + * Revert "[Upstream] docbook: need xmldoclinks for all doc types" + * docbook: need xmldoclinks for all doc types + * perf probe: Add kernel source path option + + -- Leann Ogasawara Thu, 17 Jun 2010 08:05:29 -0700 + +linux (2.6.35-4.5) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "[Upstream] (evdev) Use driver hint to compute the evdev buffer + size (rev2)" + * Revert "[Upstream] (evdev) Convert to dynamic event buffer (rev4)" + * Revert "[Upstream] (evdev) Use multi-reader buffer to save space + (rev4)" + * Revert "SAUCE: drivers: Remove some duplicate device entries in various + modules" + * [Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID + * [Upstream] Revert "USB: Adding support for HTC Smartphones to ipaq" + * [Upstream] p54usb: Comment out duplicate Medion MD40900 device id + + [ Tim Gardner ] + + * [Config] CONFIG_NFS_FSCACHE=y + - LP: #440522 + * [Config] CONFIG_FSCACHE_STATS=y, CONFIG_FSCACHE_HISTOGRAM=y + - LP: #440522 + + -- Leann Ogasawara Wed, 16 Jun 2010 08:43:07 -0700 + +linux (2.6.35-3.4) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- ensure the version number is clean + + [ Henrik Rydberg ] + + * [Upstream] Introduce MT event slots (rev 5) + * [Upstream] Document the MT event slot protocol (rev5) + * [Upstream] (evdev) Use multi-reader buffer to save space (rev4) + * [Upstream] (evdev) Convert to dynamic event buffer (rev4) + * [Upstream] (evdev) Use driver hint to compute the evdev buffer size + (rev2) + + [ Leann Ogasawara ] + + * Revert "SAUCE: Add MODULE_ALIAS for Dell WMI module" + * Revert "SAUCE: hostap: send events on data interface as well as master + interface" + * Revert "Fix webcam having USB ID 0ac8:303b" + * Revert "SAUCE: toshiba_acpi -- pull in current -dev version of driver" + * rebase to v2.6.35-rc3 + + [ Maxim Levitsky ] + + * [Config] Enable new Smartmedia/xD translation layer + - LP: #202490 + + [ Upstream Kernel Changes ] + + * net: fix deliver_no_wcard regression on loopback device + + [ Upstream changes ] + + * rebased to v2.6.35-rc3 + + -- Leann Ogasawara Thu, 10 Jun 2010 16:15:22 -0700 + +linux (2.6.35-2.3) maverick; urgency=low + + [ Bryan Wu ] + + * CONFIG: enforce -- make sure we disable CONFIG_LOCALVERSION_AUTO + + [ Leann Ogasawara ] + + * [Config] armel: Enable CONFIG_BNX2=m + * [Config] ports: Enable CONFIG_BNX2X=m + * SAUCE: armel: define get_dma_ops to fix FTBS + + [ Tim Gardner ] + + * [Upstream] net: Print num_rx_queues imbalance warning only when there + are allocated queues + - LP: #591416 + + -- Leann Ogasawara Wed, 09 Jun 2010 08:27:41 -0700 + +linux (2.6.35-2.2) maverick; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i: make armel configuration versatile flavour specific + - LP: #588805 + * [Config] d-i: enable .udebs for omap flavour + - LP: #588805 + + [ Kees Cook ] + + * ptrace: limit scope to attach only (allow read) + - LP: #589656 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc2 + * [Config] update configs following rebase to v2.6.35-rc2 + * [Config] update port configs following rebase to v2.6.35-rc2 + + [ Lee Jones ] + + * Enable perf to be more helpful when perf_ does not exist. + - LP: #570500 + * 'fdr editconfig' modification. Easily skip over unwanted menuconfigs. + + [ Tim Gardner ] + + * [Config] Update bnx2 udeb firmware files + - LP: #589304 + + [ Upstream changes ] + + * rebased to v2.6.35-rc2 + + -- Leann Ogasawara Mon, 07 Jun 2010 09:45:04 -0700 + +linux (2.6.35-1.1) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601 + - LP: #587888 + * ubuntu: AUFS -- track changes to the arguements to fop fsync() + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc1 + * [Config] update configs following rebase to v2.6.35-rc1 + * [Config] update port configs following rebase to v2.6.35-rc1 + * SAUCE: lirc: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: convert multicast list to list_head + * [Config] [FTBS] armel: Temporarily disable CONFIG_GPIO_JANZ_TTL + * [Config] [FTBS] ia64: Temporarily disable gpiolib + * [Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS + * [Config] [FTBS] sparc: Temporarily disable CONFIG_INFINIBAND_QIB + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_DT3155 + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MTD_NAND_DENALI + * [Config] [FTBS] armel: Temporarily disable bnx2 + * [Config] [FTBS] armel: Temporarily disable CONFIG_SERIAL_UARTLITE + * SAUCE: [FTBS] armel: Don't include asm/agp.h for ttm + * SAUCE: [FTBS] armel: include linux/dma-mapping.h + * SAUCE: [FTBS] armel: replace omap_set_gpio_debounce with + gpio_set_debounce + + [ Upstream Kernel Changes ] + + * of/usb: fix build error due to of_node pointer move + * n2_crypto: Fix build after of_device/of_platform_driver changes. + * powerpc/fsl-booke: fix the case where we are not in the first page + * powerpc/fsl-booke: Move the entry setup code into a seperate file + * powerpc/kexec: Add support for FSL-BookE + * greth: Fix build after OF device conversions. + + [ Upstream changes ] + + * rebased to v2.6.35-rc1 + + -- Leann Ogasawara Fri, 04 Jun 2010 23:01:52 -0700 + +linux (2.6.35-1.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 02 Jun 2010 15:17:41 -0700 + +linux (2.6.34-5.14) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] Added module inclusion support + * [Config] Added virtual flavour module inclusion list and d-i package + definitions + + -- Leann Ogasawara Wed, 02 Jun 2010 12:58:14 -0700 + +linux (2.6.34-5.13) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2 20091209" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-standalone.patch)" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-base.patch)" + * ubuntu: AUFS -- aufs2 base patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- aufs2 standalone patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601 + - LP: #587888 + * [Config] AUFS -- enable aufs options + - LP: #587888 + + -- Leann Ogasawara Tue, 01 Jun 2010 08:56:43 -0700 + +linux (2.6.34-5.12) maverick; urgency=low + + [ Andy Whitcroft ] + + * enforce -- ensure SYSFS compatibility is disabled + + [ Chase Douglas ] + + * build with libdw-dev for perf probe symbol support + * maverick ftrace configuration changes + + [ Kees Cook ] + + * Revert "SAUCE: x86: brk away from exec rand area" + * Revert "SAUCE: [um] Don't use nx_enabled under UML" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: x86: implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + * SAUCE: ptrace: restrict ptrace scope to children + + [ Leann Ogasawara ] + + * Add new omap flavour to getabis + * [Config] Enable CONFIG_FRAMEBUFFER_CONSOLE=y for all archs + - LP: #585490 + * build/modules: Temorarily add ignore.modules + * ubuntu: iscsitarget -- version 1.4.20.1 + + [ Loïc Minier ] + + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + -- Leann Ogasawara Fri, 28 May 2010 08:27:17 -0700 + +linux (2.6.34-4.11) maverick; urgency=low + + [ Amit Kucheria ] + + * SAUCE: omap: remove calls to usb_nop_xceiv_register from board files + * [Config] Add support for OMAP-mainline flavour + + [ Andy Whitcroft ] + + * SAUCE: powerpc: fix compile error when ptrace.h is included from + userspace + - LP: #583733 + + [ Chase Douglas ] + + * Revert "SAUCE: Don't register vga16fb framebuffer if other framebuffers + are present" + * Revert "SAUCE: Disable function tracing after hitting __schedule_bug" + * Revert "SAUCE: drm/i915: don't change DRM configuration when releasing + load detect pipe" + + [ Kees Cook ] + + * SAUCE: fs: block cross-uid sticky symlinks + * SAUCE: fs: block hardlinks to non-accessible sources + + [ Koen Kooi ] + + * SAUCE: board-omap3-beagle: add DSS2 support + + [ Leann Ogasawara ] + + * Revert "staging/go7007 -- disable" + * Revert "[Config] staging/winbond -- disable" + * Revert "Disable 4MB page tables for Atom, work around errata AAE44" + * Revert "SAUCE: sync before umount to reduce time taken by ext4 umount" + * Revert "SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit + controller" + * Revert "SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT" + * Revert "SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros" + * Revert "SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps" + * Revert "SAUCE: r8169: disable TSO by default for RTL8111/8168B + chipsets." + * Revert "[Upstream] b43: Declare all possible firmware files." + * Revert "add Breaks: against hardy lvm2" + * Revert "SAUCE: Guest OS does not recognize a lun with non zero target + id on Vmware ESX Server" + * Revert "SAUCE: Catch nonsense keycodes and silently ignore" + * [Config] Enable CONFIG_ECRYPT_FS=y for ports + * [Config] Enable CONFIG_USB=y for armel and sparc + * [Config] Enable CONFIG_SCSI=y for ia64 and sparc + * [Config] Enable CONFIG_RFKILL=y for ports + * [Config] Enable CONFIG_ATH9K_DEBUGFS=y + * [Config] Enable CONFIG_IWMC3200TOP_DEBUGFS=y + * [Config] Enable CONFIG_RCU_FAST_NO_HZ=y + * [Config] Enable CONFIG_IWLWIFI_DEVICE_TRACING=y + * [Config] Enable CONFIG_LIBERTAS_MESH=y + * [Config] Enable CONFIG_MMC_RICOH_MMC=y + * [Config] CONFIG_RT2800USB_UNKNOWN=y + * [Config] Enable CONFIG_VGA_SWITCHEROO=y + * [Config] Enable CONFIG_CEPH_FS=m + * [Config] Enable CONFIG_CRYPTO_PCRYPT=m + * [Config] Enable CONFIG_EEEPC_WMI=m + * [Config] Enable CONFIG_RT2800PCI=m + * [Config] Enable CONFIG_SCSI_HPSA=m + * [Config] Enable CONFIG_VHOST_NET=m + * [Config] Disable CONFIG_SND_HDA_INPUT_BEEP_MODE by default + - LP: #582350 + * [Config] Disable CONFIG_SOUND_OSS* and CONFIG_SND_*OSS + - LP: #579300 + * [Config] Enable CONFIG_PCIEASPM=y + - LP: #333990 + * [Config] updateconfigs for OMAP flavour + + [ Loïc Minier ] + + * Enable perf tools on armel + + [ Tim Gardner ] + + * SAUCE: Updated ndiswrapper to 1.56 + - LP: #582555 + * [Config] Added virtual flavour + * [Config] Remove support for sub-flavours + * [Config] Removed amd64 preempt flavour + * [Config] updateconfigs, updateportsconfigs after flavour munging + + -- Leann Ogasawara Tue, 25 May 2010 09:34:55 -0700 + +linux (2.6.34-3.10) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34 + + [ Upstream changes ] + + * rebased to v2.6.34 + + -- Leann Ogasawara Tue, 18 May 2010 17:35:35 -0700 + +linux (2.6.34-2.9) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] [FTBS] Disable comedi for armel + + -- Leann Ogasawara Thu, 13 May 2010 23:20:55 +0200 + +linux (2.6.34-2.8) maverick; urgency=low + + [ Leann Ogasawara ] + + * Drop lpia + * [Config] [FTBS] disable KVM + * [Config] [FTBS] disable ipr for armel + + -- Leann Ogasawara Thu, 13 May 2010 16:07:52 +0200 + +linux (2.6.34-2.7) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] disable CONFIG_SCSI_IPR on powerpc + * [Config] Remove 386 flavour per UDS discussion + + -- Leann Ogasawara Wed, 12 May 2010 18:26:43 +0200 + +linux (2.6.34-1.6) maverick; urgency=low + + [ Chase Douglas ] + + * enforce CONFIG_TMPFS_POSIX_ACL=y + - LP: #575940 + * don't force module dependency checking + - LP: #577029 + + [ Kees Cook ] + + * SAUCE: mmap_min_addr check CAP_SYS_RAWIO only for write + - LP: #568844 + + [ Leann Ogasawara ] + + * Revert "SAUCE: ata: blacklist FUJITSU MHW2160BH PL" + * rebase to v2.6.34-rc7 + * [Config] update configs following rebase to v2.6.34-rc7 + * [Config] update port configs following rebase to v2.6.34-rc7 + * Add btrfs to the udebs + + [ Tim Gardner ] + + * [Config] Add atl1c to nic-modules udeb + - LP: #557130 + + [ Upstream changes ] + + * rebased to v2.6.34-rc7 + + -- Leann Ogasawara Tue, 11 May 2010 11:29:08 +0200 + +linux (2.6.34-1.5) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc6 + * [Config] update configs following rebase to v2.6.34-rc6 + * [Config] update port configs following rebase to v2.6.34-rc6 + + [ Upstream changes ] + + * rebased to v2.6.34-rc6 + + -- Leann Ogasawara Fri, 30 Apr 2010 15:54:05 +0100 + +linux (2.6.34-1.4) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc5 + * [Config] update ports configs following rebase to v2.6.34-rc5 + + [ Upstream changes ] + + * rebased to v2.6.34-rc5 + + -- Leann Ogasawara Thu, 22 Apr 2010 15:36:12 -0700 + +linux (2.6.34-1.3) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc4 + * [Config] update configs following rebase to v2.6.34-rc4 + * [Config] update port configs following rebase to v2.6.34-rc4 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc4 + + [ Upstream changes ] + + * rebased to v2.6.34-rc4 + + -- Leann Ogasawara Tue, 13 Apr 2010 18:33:44 -0700 + +linux (2.6.34-1.2) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Temorarily disable building linux-doc + * rebase to v2.6.34-rc3 + * [Config] update configs following rebase to v2.6.34-rc3 + * [Config] update port configs following rebase to v2.6.34-rc3 + + [ Upstream changes ] + + * rebased to v2.6.34-rc3 + + -- Leann Ogasawara Tue, 30 Mar 2010 16:55:44 -0700 + +linux (2.6.34-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc2 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc2 + * [Config] update port configs following rebase to v2.6.34-rc2 + * [Config] update configs following rebase to v2.6.34-rc2 + + [ Upstream changes ] + + * rebased to v2.6.34-rc2 + + -- Leann Ogasawara Wed, 24 Mar 2010 23:00:39 -0700 + +linux (2.6.33-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * ubuntu: dm-raid4-5 -- update to compile with 2.6.33 + * ubuntu: lirc -- drop explicit include of linux/autoconf.h + * ubuntu: lirc -- pass kfifo to kfifo_alloc and move spinlock + * ubuntu: lirc -- rename kfifo_put and kfifo_get + * ubuntu: iscsitarget -- rename daddr inet_sock field + * rebased to v2.6.33 + * [Config] update configs following rebase to v2.6.33 + * [Config] update ports configs following rebase to v2.6.33 + + [ Upstream changes ] + + * rebased to v2.6.33 + + -- Leann Ogasawara Tue, 23 Mar 2010 03:55:46 -0700 + +linux (2.6.33-0.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 17 Mar 2010 07:48:56 -0700 + +linux (2.6.32-16.25) lucid; urgency=low + + [ Andy Whitcroft ] + + * linux-tools -- move to Suggests: with explicit seeding + - LP: #534635 + + [ Tim Gardner ] + + * [Config] CONFIG_HID=m + + [ Upstream Kernel Changes ] + + * (pre-stable) sched: Fix SMT scheduler regression in + find_busiest_queue() + * KVM: introduce kvm_vcpu_on_spin + * KVM: VMX: Add support for Pause-Loop Exiting + + -- Andy Whitcroft Tue, 09 Mar 2010 14:13:51 +0000 + +linux (2.6.32-16.24) lucid; urgency=low + + [ Andy Whitcroft ] + + * armel -- perf userspace does not support arm + * ia64 -- libelf-dev/binutils-dev to not provide necessary libraries + + -- Andy Whitcroft Sat, 06 Mar 2010 11:42:12 +0000 + +linux (2.6.32-16.23) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: PM report driver and device suspend/resume times -- move config + * update to standards version 3.8.4.0 + * printenv -- expose all of the package selectors + * source package -- cleanup source content control + * doc package -- ensure we do build package content on buildd + * lintian -- correct the address in the debian/copyright + * lintian -- update debhelper package version dependancy + * lintian -- fix ghostscript dependancy + * lintian -- add required misc:Depends + * lintian -- move our debhelper compat level to debian/compat + * perf -- build the kernel carried tools + * perf -- add linux-tools carrying the version switches and manuals + * SAUCE: fix up Kconfig for staging drivers + * [Config] enable NOUVEAU etc following drm backport + * update DRM to mainline v2.6.33 + * [Config] Remove AppArmor config options that no longer exist (ports) + * [Config] updateportsconfigs following drm update + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-03-04 + * SAUCE: AppArmor: Reintroduce AppArmor 2.4 compatibility + * SAUCE: AppArmor: replace strim with strstrip for 2.6.32 kernels + * [Config] Remove AppArmor config options that no longer exist + + [ Manoj Iyer ] + + * ubuntu: rtl8192se -- version 2010-0115,0014 + - LP: #530275 + * [Config] added CONFIG_RTL8192SE module. + - LP: #530275 + + [ Tim Gardner ] + + * [Config] Added vmw_pvscsi to d-i/scsi-modules + - LP: #531017 + * [Upstream] netfilter: xt_recent: Add an entry reaper + + [ Upstream Kernel Changes ] + + * Revert "KVM: x86 emulator: Check CPL level during privilege instruction + emulation" + * Revert "KVM: x86 emulator: Fix popf emulation" + * Revert "KVM: x86 emulator: Check IOPL level during io instruction + emulation" + * Revert "KVM: x86 emulator: Add Virtual-8086 mode of emulation" + * Revert "KVM: fix memory access during x86 emulation." + * Add vlan (8021.Q) module package for d-i. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + * [Upstream] docbook: need xmldoclinks for all doc types + * x86: set_personality_ia32() misses force_personality32 + * lib: Introduce generic list_sort function + * drm/nv50: Implement ctxprog/state generation. + * drm/nv50: Remove redundant/incorrect ctxvals initialisation. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + + -- Andy Whitcroft Fri, 05 Mar 2010 15:40:38 +0000 + +linux (2.6.32-15.22) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT" + * Revert "SAUCE: PM report driver and device suspend/resume times." + * [Config] set CONFIG_SR_REPORT_TIME_LIMIT + + [ Manoj Iyer ] + + * SAUCE: PM report driver and device suspend/resume times. + + -- Andy Whitcroft Tue, 02 Mar 2010 01:35:37 +0000 + +linux (2.6.32-15.21) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/i915: Increase fb alignment to 64k" + * Revert "[Config] lenovo-sl-laptop -- enable" + * Revert "ubuntu: lenovo-sl-laptop -- git tip (b19a08f81f)" + * armel -- cramfs module will no longer be built + * d-i -- make all modules optional + * rename the debug packages to match archive standard + - LP: #527837 + * lenovo-sl-laptop is no longer built + + [ Colin Ian King ] + + * Disable 4MB page tables for Atom, work around errata AAE44 + - LP: #523112 + + [ Colin Watson ] + + * ubuntu: dm-raid4-5: Depend on XOR_BLOCKS + * ubuntu: fsam7400: Depend on CHECK_SIGNATURE + + [ Jesse Barnes ] + + * SAUCE: drm/i915: don't change DRM configuration when releasing load + detect pipe + - LP: #488328 + + [ Loïc Minier ] + + * [Config] armel Update versatile initrd configs + - LP: #524893 + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + [ Manoj Iyer ] + + * [Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT + + [ Mario Limonciello ] + + * SAUCE: v3 - Add Dell Business Class Netbook LED driver + + [ Rafael J. Wysocki ] + + * SAUCE: PM report driver and device suspend/resume times. + + [ Surbhi Palande ] + + * Revert "[Upstream] e1000e: enhance frame fragment detection" + - CVE-2009-4538 + * Revert "[Upstream] e1000: enhance frame fragment detection" + - CVE-2009-4536 + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_LEDS_DELL_NETBOOKS=m + * SAUCE: (pre-stable) netfilter: xt_recent: fix buffer overflow + * SAUCE: (pre-stable) netfilter: xt_recent: fix false match + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) eCryptfs: Add getattr function" + * Fix potential crash with sys_move_pages + * futex_lock_pi() key refcnt fix + * futex: Handle user space corruption gracefully + * futex: Handle futex value corruption gracefully + * Fix race in tty_fasync() properly + * hwmon: (w83781d) Request I/O ports individually for probing + * hwmon: (lm78) Request I/O ports individually for probing + * hwmon: (adt7462) Wrong ADT7462_VOLT_COUNT + * ALSA: ctxfi - fix PTP address initialization + * drm/i915: disable hotplug detect before Ironlake CRT detect + * drm/i915: enable self-refresh on 965 + * drm/i915: Disable SR when more than one pipe is enabled + * drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup. + * drm/i915: Add HP nx9020/SamsungSX20S to ACPI LID quirk list + * drm/i915: Fix the incorrect DMI string for Samsung SX20S laptop + * drm/i915: Add MALATA PC-81005 to ACPI LID quirk list + * usb: r8a66597-hcd: Flush the D-cache for the pipe-in transfer buffers. + * i2c-tiny-usb: Fix on big-endian systems + * drm/i915: handle FBC and self-refresh better + * drm/i915: Increase fb alignment to 64k + * drm/i915: Update write_domains on active list after flush. + * regulator: Fix display of null constraints for regulators + * ALSA: hda-intel: Avoid divide by zero crash + * CPUFREQ: Fix use after free of struct powernow_k8_data + * freeze_bdev: don't deactivate successfully frozen MS_RDONLY sb + * cciss: Make cciss_seq_show handle holes in the h->drv[] array + * ioat: fix infinite timeout checking in ioat2_quiesce + * resource: add helpers for fetching rlimits + * fs/exec.c: restrict initial stack space expansion to rlimit + * cifs: fix length calculation for converted unicode readdir names + * NFS: Fix a reference leak in nfs_wb_cancel_page() + * NFS: Try to commit unstable writes in nfs_release_page() + * NFSv4: Don't allow posix locking against servers that don't support it + * NFSv4: Ensure that the NFSv4 locking can recover from stateid errors + * NFS: Fix an Oops when truncating a file + * NFS: Fix a umount race + * NFS: Fix a bug in nfs_fscache_release_page() + * NFS: Fix the mapping of the NFSERR_SERVERFAULT error + * md: fix 'degraded' calculation when starting a reshape. + * V4L/DVB: dvb-core: fix initialization of feeds list in demux filter + * Export the symbol of getboottime and mmonotonic_to_bootbased + * kvmclock: count total_sleep_time when updating guest clock + * KVM: PIT: control word is write-only + * tpm_infineon: fix suspend/resume handler for pnp_driver + * amd64_edac: Do not falsely trigger kerneloops + * netfilter: nf_conntrack: fix memory corruption with multiple namespaces + * netfilter: nf_conntrack: per netns nf_conntrack_cachep + * netfilter: nf_conntrack: restrict runtime expect hashsize modifications + * netfilter: xtables: compat out of scope fix + * netfilter: nf_conntrack: fix hash resizing with namespaces + * drm/i915: remove full registers dump debug + * drm/i915: add i915_lp_ring_sync helper + * drm/i915: Don't wait interruptible for possible plane buffer flush + * dasd: remove strings from s390dbf + * crypto: padlock-sha - Add import/export support + * wmi: Free the allocated acpi objects through wmi_get_event_data + * dell-wmi, hp-wmi, msi-wmi: check wmi_get_event_data() return value + * /dev/mem: introduce size_inside_page() + * devmem: check vmalloc address on kmem read/write + * devmem: fix kmem write bug on memory holes + * SCSI: mptfusion : mptscsih_abort return value should be SUCCESS instead + of value 0. + * sh: Couple kernel and user write page perm bits for CONFIG_X2TLB + * ALSA: hda - use WARN_ON_ONCE() for zero-division detection + * dst: call cond_resched() in dst_gc_task() + * ALSA: hda - Improved MacBook (Pro) 5,1 / 5,2 support + * befs: fix leak + * rtc-fm3130: add missing braces + * Call flush_dcache_page after PIO data transfers in libata-sff.c + * ahci: add Acer G725 to broken suspend list + * pktgen: Fix freezing problem + * x86/amd-iommu: Fix IOMMU-API initialization for iommu=pt + * x86/amd-iommu: Fix deassignment of a device from the pt_domain + * x86: Re-get cfg_new in case reuse/move irq_desc + * Staging: fix rtl8187se compilation errors with mac80211 + * ALSA: usb-audio - Avoid Oops after disconnect + * serial: 8250: add serial transmitter fully empty test + * sysfs: sysfs_sd_setattr set iattrs unconditionally + * class: Free the class private data in class_release + * USB: usbfs: only copy the actual data received + * USB: usbfs: properly clean up the as structure on error paths + * rtl8187: Add new device ID + * ACPI: Add NULL pointer check in acpi_bus_start + * ACPI: fix High cpu temperature with 2.6.32 + * drm/radeon/kms: use udelay for short delays + * NFS: Too many GETATTR and ACCESS calls after direct I/O + * eCryptfs: Add getattr function + * b43: Fix throughput regression + * ath9k: Fix sequence numbers for PAE frames + * mac80211: Fix probe request filtering in IBSS mode + * iwlwifi: Fix to set correct ht configuration + * dm stripe: avoid divide by zero with invalid stripe count + * dm log: userspace fix overhead_size calcuations + * Linux 2.6.32.9 + * sfc: Fix SFE4002 initialisation + * sfc: Fix sign of efx_mcdi_poll_reboot() error in efx_mcdi_poll() + * sfc: SFE4002/SFN4112F: Widen temperature and voltage tolerances + * (pre-stable) HID: handle joysticks with large number of buttons + - LP: #492056 + * (pre-stable) HID: extend mask for BUTTON usage page + - LP: #492056 + * PM: Measure device suspend and resume times + * e1000: enhance frame fragment detection + - CVE-2009-4536 + * e1000e: enhance frame fragment detection + - CVE-2009-4538 + * KVM: fix memory access during x86 emulation. + - CVE-2010-0306 + * KVM: x86 emulator: Add Virtual-8086 mode of emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check IOPL level during io instruction emulation + - CVE-2010-0306 + * KVM: x86 emulator: Fix popf emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check CPL level during privilege instruction + emulation + - CVE-2010-0306 + * Input: wacom - ensure the device is initialized properly upon resume + * Input: wacom - add defines for packet lengths of various devices + * Input: wacom - add support for new LCD tablets + - LP: #516777 + + -- Andy Whitcroft Mon, 01 Mar 2010 22:56:28 +0000 + +linux (2.6.32-14.20) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebuild following the GCC update to match compiler for out of tree modules + * Revert "[Config] drbd -- enable" + * Revert "ubuntu: drbd -- version 8.3.1" + * SAUCE: khubd -- switch USB product/manufacturer/serial handling to RCU + - LP: #510937 + + -- Andy Whitcroft Fri, 19 Feb 2010 18:47:18 +0000 + +linux (2.6.32-14.19) lucid; urgency=low + + [ Andy Whitcroft ] + + * ensure we build the source package contents when enabled + - LP: #522308 + * [Config] enable CONFIG_X86_MCE_XEON75XX + * SAUCE: AppArmor -- add linux/kref.h for struct kref + * [Config] enable CONFIG_HID_ORTEK + * enable udeb generation for arm versatile flavour + - LP: #522515 + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-02-18 + - LP: #439560, #496110, #507069 + + [ Johnathon Harris ] + + * SAUCE: HID: add support for Ortek WKB-2000 + - LP: #405390 + + [ Upstream Kernel Changes ] + + * tpm_tis: TPM_STS_DATA_EXPECT workaround + - LP: #490487 + * x86, mce: Xeon75xx specific interface to get corrected memory error + information + * x86, mce: Rename cpu_specific_poll to mce_cpu_specific_poll + * x86, mce: Make xeon75xx memory driver dependent on PCI + * drm/edid: Unify detailed block parsing between base and extension + blocks + - LP: #500999 + * (pre-stable) eCryptfs: Add getattr function + - LP: #390833 + + -- Andy Whitcroft Thu, 18 Feb 2010 19:22:02 +0000 + +linux (2.6.32-13.18) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "enforcer -- make the enforcement configuration common" + * Revert "(pre-stable) Input: ALPS - add interleaved protocol support + (Dell E6x00 series)" + * Revert "(pre-stable) driver-core: fix devtmpfs crash on s390" + * Revert "(pre-stable) Driver-Core: devtmpfs - set root directory mode to + 0755" + * Revert "SAUCE: Adds support for COMPAL JHL90 webcam" + * Revert "SAUCE: fix kernel oops in VirtualBox during paravirt patching" + * Revert "SAUCE: make fc transport removal of target configurable" + * enforcer -- make the enforcement configuration common + * getabis -- add preempt flavour to the list + * [Config] enforce DEVTMPFS options + * [Config] armel -- cleanup to-be builtin modules + * [Config] cleanup ports configs + * [Config] enable CRYPTO_GHASH_CLMUL_NI_INTEL + - LP: #485536 + * add printdebian target to find branch target + * distclean -- do not remove debian.env + * [Config] generic-pae switch to M586TSC + - LP: #519448 + * git-ubuntu-log -- commonise duplicated log handling + * git-ubuntu-log -- tighten up Bug: NNNN matching + * git-ubuntu-log -- sort the bug numbers + + [ Chris Wilson ] + + * (pre-stable) drm/i915: Increase fb alignment to 64k + - LP: #404064 + + [ Eric Miao ] + + * arm -- enable ubuntu/ directory + + [ Huang Ying ] + + * SAUCE: crypto: ghash - Add PCLMULQDQ accelerated implementation + * SAUCE: crypto: ghash-intel - Fix building failure on x86_32 + + [ Loïc Minier ] + + * [Config] cleanup preempt configuration + * [Config] versatile: Fix video output + - LP: #517594 + * [Config] armel DEFAULT_MMAP_MIN_ADDR=32768 + * [Config] Large update to armel/versatile + * [Config] versatile: Add RTC support + * [Config] armel: Enable NEON + * [Config] versatile: Builtin MMC support + * [Config] versatile Builtin SCSI controller + * [Config] armel Disable dma_cache_sync callers + * [Config] armel Disable asm/time.h users + * [Config] armel Disable out of range udelay() + * [Config] armel Disable flush_cache_range() users + * [Config] armel -- Enable ubuntu/ drivers + + [ Steve Conklin ] + + * SAUCE: drm/i915: Add display hotplug event on Ironlake + * SAUCE: drm/i915: Add ACPI OpRegion support for Ironlake + + [ Upstream Kernel Changes ] + + * Revert "[Upstream]: oprofile/x86: add Xeon 7500 series support" + * Revert "Revert "[Bluetooth] Eliminate checks for impossible conditions + in IRQ handler"" + * clockevent: Don't remove broadcast device when cpu is dead + * clockevents: Add missing include to pacify sparse + * ACPI: don't cond_resched if irq is disabled + * be2net: Add support for next generation of BladeEngine device. + * be2net: Add the new PCI IDs to PCI_DEVICE_TABLE. + * mpt2sas: New device SAS2208 support is added + * ar9170: Add support for D-Link DWA 160 A2 + * powerpc/fsl: Add PCI device ids for new QoirQ chips + * davinci: dm646x: Add support for 3.x silicon revision + * Input: ALPS - add interleaved protocol support (Dell E6x00 series) + * Driver-Core: devtmpfs - set root directory mode to 0755 + * driver-core: fix devtmpfs crash on s390 + * vfs: get_sb_single() - do not pass options twice + * ALSA: hda - Add PCI IDs for Nvidia G2xx-series + * V4L/DVB (13569): smsusb: add autodetection support for five additional + Hauppauge USB IDs + * USB: mos7840: add device IDs for B&B electronics devices + * USB: ftdi_sio: add USB device ID's for B&B Electronics line + * V4L/DVB (13168): Add support for Asus Europa Hybrid DVB-T card (SAA7134 + SubVendor ID: 0x1043 Device ID: 0x4847) + * iTCO_wdt: Add support for Intel Ibex Peak + * atl1c:use common_task instead of reset_task and link_chg_task + * atl1e:disable NETIF_F_TSO6 for hardware limit + * V4L/DVB (13680a): DocBook/media: copy images after building HTML + * V4L/DVB (13680b): DocBook/media: create links for included sources + * netfilter: xtables: fix conntrack match v1 ipt-save output + * partitions: read whole sector with EFI GPT header + * partitions: use sector size for EFI GPT + * ALSA: ice1724 - Patch for suspend/resume for ESI Juli@ + * sched: Fix isolcpus boot option + * sched: Fix missing sched tunable recalculation on cpu add/remove + * nohz: Prevent clocksource wrapping during idle + * nfsd: Fix sort_pacl in fs/nfsd/nf4acl.c to actually sort groups + * timers, init: Limit the number of per cpu calibration bootup messages + * PCI: Always set prefetchable base/limit upper32 registers + * iscsi class: modify handling of replacement timeout + * NFS: Revert default r/wsize behavior + * HID: fixup quirk for NCR devices + * scsi_devinfo: update Hitachi entries (v2) + * scsi_dh: create sysfs file, dh_state for all SCSI disk devices + * scsi_transport_fc: remove invalid BUG_ON + * lpfc: fix hang on SGI ia64 platform + * libfc: fix typo in retry check on received PRLI + * libfc: fix ddp in fc_fcp for 0 xid + * fcoe: remove redundant checking of netdev->netdev_ops + * libfc: Fix wrong scsi return status under FC_DATA_UNDRUN + * libfc: lport: fix minor documentation errors + * libfc: don't WARN_ON in lport_timeout for RESET state + * fcoe: initialize return value in fcoe_destroy + * libfc: Fix frags in frame exceeding SKB_MAX_FRAGS in fc_fcp_send_data + * libfc: fix memory corruption caused by double frees and bad error + handling + * libfc: fix free of fc_rport_priv with timer pending + * libfc: remote port gets stuck in restart state without really + restarting + * fcoe, libfc: fix an libfc issue with queue ramp down in libfc + * fcoe: Fix checking san mac address + * fcoe: Fix getting san mac for VLAN interface + * qlge: Remove explicit setting of PCI Dev CTL reg. + * qlge: Set PCIE max read request size. + * qlge: Don't fail open when port is not initialized. + * qlge: Add handler for DCBX firmware event. + * qlge: Bonding fix for mode 6. + * PCI: AER: fix aer inject result in kernel oops + * DMI: allow omitting ident strings in DMI tables + * Input: i8042 - remove identification strings from DMI tables + * Input: i8042 - add Gigabyte M1022M to the noloop list + * Input: i8042 - add Dritek quirk for Acer Aspire 5610. + * ALSA: hda - select IbexPeak handler for Calpella + * ALSA: hda - Fix quirk for Maxdata obook4-1 + * ALSA: hda - Add missing Line-Out and PCM switches as slave + * iTCO_wdt.c - cleanup chipset documentation + * iTCO_wdt: add PCI ID for the Intel EP80579 (Tolapai) SoC + * iTCO_wdt: Add Intel Cougar Point and PCH DeviceIDs + * ahci: disable SNotification capability for ich8 + * ata_piix: fix MWDMA handling on PIIX3 + * md: fix small irregularity with start_ro module parameter + * V4L/DVB (13826): uvcvideo: Fix controls blacklisting + * cio: fix double free in case of probe failure + * cio: dont panic in non-fatal conditions + * netiucv: displayed TX bytes value much too high + * ipc ns: fix memory leak (idr) + * ALSA: hda - Fix HP T5735 automute + * hwmon: (fschmd) Fix a memleak on multiple opens of /dev/watchdog + * UBI: fix memory leak in update path + * UBI: initialise update marker + * ASoC: fix a memory-leak in wm8903 + * mac80211: check that ieee80211_set_power_mgmt only handles STA + interfaces. + * cfg80211: fix channel setting for wext + * KVM: S390: fix potential array overrun in intercept handling + * KVM: only allow one gsi per fd + * KVM: Fix race between APIC TMR and IRR + * KVM: MMU: bail out pagewalk on kvm_read_guest error + * KVM: x86: Fix host_mapping_level() + * KVM: x86: Fix probable memory leak of vcpu->arch.mce_banks + * KVM: x86: Fix leak of free lapic date in kvm_arch_vcpu_init() + * KVM: fix lock imbalance in kvm_*_irq_source_id() + * KVM: only clear irq_source_id if irqchip is present + * IPoIB: Clear ipoib_neigh.dgid in ipoib_neigh_alloc() + * x86: Reenable TSC sync check at boot, even with NONSTOP_TSC + * ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C + - LP: #516325 + * iwlwifi: Fix throughput stall issue in HT mode for 5000 + * fnctl: f_modown should call write_lock_irqsave/restore + * x86, msr/cpuid: Pass the number of minors when unregistering MSR and + CPUID drivers. + * Linux 2.6.32.7 + * scsi_lib: Fix bug in completion of bidi commands + * mptsas: Fix issue with chain pools allocation on katmai + * mm: add new 'read_cache_page_gfp()' helper function + * drm/i915: Selectively enable self-reclaim + * firewire: ohci: fix crashes with TSB43AB23 on 64bit systems + * S390: fix single stepped svcs with TRACE_IRQFLAGS=y + * x86: Set hotpluggable nodes in nodes_possible_map + * x86: Remove "x86 CPU features in debugfs" (CONFIG_X86_CPU_DEBUG) + * libata: retry FS IOs even if it has failed with AC_ERR_INVALID + * zcrypt: Do not remove coprocessor for error 8/72 + * dasd: fix possible NULL pointer errors + * ACPI: Add a generic API for _OSC -v2 + * ACPI: Add platform-wide _OSC support. + * ACPI: fix OSC regression that caused aer and pciehp not to load + * ACPI: Advertise to BIOS in _OSC: _OST on _PPC changes + * UBI: fix volume creation input checking + * e1000/e1000e: don't use small hardware rx buffers + * drm/i915: Reload hangcheck timer too for Ironlake + * Fix a leak in affs_fill_super() + * Fix failure exits in bfs_fill_super() + * fix oops in fs/9p late mount failure + * fix leak in romfs_fill_super() + * Fix remount races with symlink handling in affs + * fix affs parse_options() + * Fix failure exit in ipathfs + * mm: fix migratetype bug which slowed swapping + * FDPIC: Respect PT_GNU_STACK exec protection markings when creating + NOMMU stack + * Split 'flush_old_exec' into two functions + * sparc: TIF_ABI_PENDING bit removal + * x86: get rid of the insane TIF_ABI_PENDING bit + * Input: winbond-cir - remove dmesg spam + * x86: Disable HPET MSI on ATI SB700/SB800 + * iwlwifi: set default aggregation frame count limit to 31 + * drm/i915: only enable hotplug for detected outputs + * firewire: core: add_descriptor size check + * SECURITY: selinux, fix update_rlimit_cpu parameter + * regulator: Specify REGULATOR_CHANGE_STATUS for WM835x LED constraints + * x86: Add Dell OptiPlex 760 reboot quirk + - LP: #488319 + * x86: Add quirk for Intel DG45FC board to avoid low memory corruption + * x86/amd-iommu: Fix possible integer overflow + * clocksource: fix compilation if no GENERIC_TIME + * tcp: update the netstamp_needed counter when cloning sockets + * sky2: Fix oops in sky2_xmit_frame() after TX timeout + * net: restore ip source validation + * af_packet: Don't use skb after dev_queue_xmit() + * ax25: netrom: rose: Fix timer oopses + * KVM: allow userspace to adjust kvmclock offset + * oprofile/x86: add Xeon 7500 series support + * oprofile/x86: fix crash when profiling more than 28 events + * libata: retry link resume if necessary + * mm: percpu-vmap fix RCU list walking + * mm: purge fragmented percpu vmap blocks + * block: fix bio_add_page for non trivial merge_bvec_fn case + * Fix 'flush_old_exec()/setup_new_exec()' split + * random: drop weird m_time/a_time manipulation + * random: Remove unused inode variable + * block: fix bugs in bio-integrity mempool usage + * usb: r8a66597-hdc disable interrupts fix + * connector: Delete buggy notification code. + * be2net: Bug fix to support newer generation of BE ASIC + * be2net: Fix memset() arg ordering. + * mm: flush dcache before writing into page to avoid alias + * mac80211: fix NULL pointer dereference when ftrace is enabled + * imxfb: correct location of callbacks in suspend and resume + * mx3fb: some debug and initialisation fixes + * starfire: clean up properly if firmware loading fails + * kernel/cred.c: use kmem_cache_free + * uartlite: fix crash when using as console + * pktcdvd: removing device does not remove its sysfs dir + * ath9k: fix eeprom INI values override for 2GHz-only cards + * ath9k: fix beacon slot/buffer leak + * powerpc: TIF_ABI_PENDING bit removal + * NET: fix oops at bootime in sysctl code + * Linux 2.6.32.8 + + -- Andy Whitcroft Wed, 10 Feb 2010 18:56:52 +0000 + +linux (2.6.32-12.17) lucid; urgency=low + + [ Andy Whitcroft ] + + * restore linux-image prefix -- master + * enforce -- we require SELINUX enabled -- master + * enforce -- ensure APPARMOR is our default LSM -- master + * make doc package completely optional -- master + * make source package completely optional -- master + * make linux-libc-dev completly optional -- master + * convert package disable to a deps list -- master + * allow common headers to switch from indep to arch -- master + * convert binary package disable to a deps list -- master + * add configuration option for a full source build tree -- master + * add support for uImage kernels in package control scripts + * getabis -- cleanup and parameterise repository list -- master + * getabis -- move configuration to etc/getabi -- master + * kernelconfig -- move configuration to etc -- master + * rules -- make debian/debian.env master for branch name + * set the current branch name -- master + * pull back common debian.master files into debian -- master + * enforcer -- make the enforcement configuration common + * insert-changes -- correctly link to debian/rules in DROOT + + [ Colin Watson ] + + * future-proof ddeb handling against buildd changes + + [ Eric Miao ] + + * SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} depend on + X86 + + [ Loïc Minier ] + + * Add modules.builtin.bin to prerm rm list + - LP: #516584 + + [ Tim Gardner ] + + * [Config] Implement the amd64 preempt flavour + + [ Upstream Kernel Changes ] + + * syslog: distinguish between /proc/kmsg and syscalls + - LP: #515623 + * sfc: Fix polling for slow MCDI operations + * sfc: Fix conditions for MDIO self-test + * sfc: QT202x: Remove unreliable MMD check at initialisation + * sfc: Add workspace for GMAC bug workaround to MCDI MAC_STATS buffer + * sfc: Use fixed-size buffers for MCDI NVRAM requests + + -- Andy Whitcroft Fri, 05 Feb 2010 07:09:31 +0000 + +linux (2.6.32-12.16) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: acpi battery -- delay first lookup of the battery until + first use" + * SAUCE: acpi battery -- move first lookup asynchronous + - LP: #507211 + * [Config] update configs to cleanup generic configs + * [Config] disable CONFIG_X86_CPU_DEBUG for amd64 + * [Config] enable USER_NS + - LP: #480739, #509808 + + [ Heiko Carstens ] + + * (pre-stable) driver-core: fix devtmpfs crash on s390 + - LP: #512370 + + [ John Johansen ] + + * [Config] for server and virtual flavours make CONFIG_SCSI_SYM53C8XX_2=y + - LP: #494565 + * [Config] VIRTIO=y for server/virtual flavours + - LP: #494565 + + [ Kay Sievers ] + + * (pre-stable) Driver-Core: devtmpfs - set root directory mode to 0755 + - LP: #512370 + + [ Kees Cook ] + + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + + [ Leann Ogasawara ] + + * [Upstream] e1000: enhance frame fragment detection + - CVE-2009-4536 + * [Upstream] e1000e: enhance frame fragment detection + - CVE-2009-4538 + + [ Sebastian Kapfer ] + + * (pre-stable) Input: ALPS - add interleaved protocol support (Dell E6x00 + series) + - LP: #296610 + + [ Upstream Kernel Changes ] + + * inotify: do not reuse watch descriptors + - LP: #485556 + * inotify: only warn once for inotify problems + * revert "drivers/video/s3c-fb.c: fix clock setting for Samsung SoC + Framebuffer" + * memcg: ensure list is empty at rmdir + * drm/i915: remove loop in Ironlake interrupt handler + * block: Fix incorrect reporting of partition alignment + * x86, mce: Thermal monitoring depends on APIC being enabled + * futexes: Remove rw parameter from get_futex_key() + * page allocator: update NR_FREE_PAGES only when necessary + * x86, apic: use physical mode for IBM summit platforms + * edac: i5000_edac critical fix panic out of bounds + * x86: SGI UV: Fix mapping of MMIO registers + * mfd: WM835x GPIO direction register is not locked + * mfd: Correct WM835x ISINK ramp time defines + * ALSA: hda - Fix missing capture mixer for ALC861/660 codecs + * V4L/DVB (13868): gspca - sn9c20x: Fix test of unsigned. + * reiserfs: truncate blocks not used by a write + * HID: add device IDs for new model of Apple Wireless Keyboard + * PCI/cardbus: Add a fixup hook and fix powerpc + * Input: pmouse - move Sentelic probe down the list + * asus-laptop: add Lenovo SL hotkey support + * sched: Fix cpu_clock() in NMIs, on !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK + * sparc64: Fix NMI programming when perf events are active. + * sparc64: Fix Niagara2 perf event handling. + * i2c: Do not use device name after device_unregister + * i2c/pca: Don't use *_interruptible + * serial/8250_pnp: add a new Fujitsu Wacom Tablet PC device + * sched: Fix task priority bug + * vfs: Fix vmtruncate() regression + * Linux 2.6.32.5 + * x86, msr/cpuid: Register enough minors for the MSR and CPUID drivers + * V4L/DVB (13900): gspca - sunplus: Fix bridge exchanges. + * Staging: asus_oled: fix oops in 2.6.32.2 + * Staging: hv: fix smp problems in the hyperv core code + * tty: fix race in tty_fasync + * ecryptfs: use after free + * ecryptfs: initialize private persistent file before dereferencing + pointer + * nozomi: quick fix for the close/close bug + * serial: 8250_pnp: use wildcard for serial Wacom tablets + * usb: serial: fix memory leak in generic driver + * USB: fix bitmask merge error + * USB: Don't use GFP_KERNEL while we cannot reset a storage device + * USB: EHCI: fix handling of unusual interrupt intervals + * USB: EHCI & UHCI: fix race between root-hub suspend and port resume + * USB: add missing delay during remote wakeup + * USB: add speed values for USB 3.0 and wireless controllers + * ACPI: EC: Accelerate query execution + * ACPI: EC: Add wait for irq storm + * SCSI: enclosure: fix oops while iterating enclosure_status array + * drm/i915: Read the response after issuing DDC bus switch command + * drm/i915: try another possible DDC bus for the SDVO device with + multiple outputs + * block: bdev_stack_limits wrapper + * DM: Fix device mapper topology stacking + * x86/PCI/PAT: return EINVAL for pci mmap WC request for !pat_enabled + * USB: fix usbstorage for 2770:915d delivers no FAT + * vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREE + * perf timechart: Use tid not pid for COMM change + * perf events: Dont report side-band events on each cpu for + per-task-per-cpu events + * perf: Honour event state for aux stream data + * Linux 2.6.32.6 + + -- Andy Whitcroft Wed, 27 Jan 2010 16:40:23 +0000 + +linux (2.6.32-11.15) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/radeon/kms: fix crtc vblank update for r600" + * Revert "(pre-stable) sched: Fix balance vs hotplug race" + * Revert "[Upstream] acerhdf: Limit modalias matching to supported + boards" + * Revert "[Upstream] mmc: prevent dangling block device from accessing + stale queues" + * Revert "SAUCE: Fix nx_enable reporting" + * Revert "SAUCE: [x86] fix report of cs-limit nx-emulation" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: i915 -- disable powersave by default + - LP: #492392 + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Tim Gardner ] + + * [Upstream] b43: Declare all possible firmware files. + - LP: #488636 + * [Config] updateconfigs after adding pvscsi + - LP: #497156 + * [Config] CONFIG_BT=m + + [ Upstream Kernel Changes ] + + * Revert "x86: Side-step lguest problem by only building cmpxchg8b_emu + for pre-Pentium" + * SCSI: ipr: fix EEH recovery + * SCSI: qla2xxx: dpc thread can execute before scsi host has been added + * SCSI: st: fix mdata->page_order handling + * SCSI: fc class: fix fc_transport_init error handling + * sched: Fix task_hot() test order + * x86, cpuid: Add "volatile" to asm in native_cpuid() + * sched: Select_task_rq_fair() must honour SD_LOAD_BALANCE + * clockevents: Prevent clockevent_devices list corruption on cpu hotplug + * pata_hpt3x2n: fix clock turnaround + * pata_cmd64x: fix overclocking of UDMA0-2 modes + * ASoC: wm8974: fix a wrong bit definition + * sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer + * ALSA: hda - Fix missing capsrc_nids for ALC88x + * acerhdf: limit modalias matching to supported + - LP: #435958 + * ACPI: EC: Fix MSI DMI detection + * ACPI: Use the return result of ACPI lid notifier chain correctly + * powerpc: Handle VSX alignment faults correctly in little-endian mode + * ASoC: Do not write to invalid registers on the wm9712. + * drm/radeon: fix build on 64-bit with some compilers. + * USB: emi62: fix crash when trying to load EMI 6|2 firmware + * USB: option: support hi speed for modem Haier CE100 + * USB: Fix a bug on appledisplay.c regarding signedness + * USB: musb: gadget_ep0: avoid SetupEnd interrupt + * Bluetooth: Prevent ill-timed autosuspend in USB driver + * USB: rename usb_configure_device + * USB: fix bugs in usb_(de)authorize_device + * drivers/net/usb: Correct code taking the size of a pointer + * x86: SGI UV: Fix writes to led registers on remote uv hubs + * md: Fix unfortunate interaction with evms + * dma: at_hdmac: correct incompatible type for argument 1 of + 'spin_lock_bh' + * dma-debug: Do not add notifier when dma debugging is disabled. + * dma-debug: Fix bug causing build warning + * cifs: NULL out tcon, pSesInfo, and srvTcp pointers when chasing DFS + referrals + * x86/amd-iommu: Fix initialization failure panic + * ioat3: fix p-disabled q-continuation + * ioat2,3: put channel hardware in known state at init + * KVM: MMU: remove prefault from invlpg handler + * KVM: LAPIC: make sure IRR bitmap is scanned after vm load + * Libertas: fix buffer overflow in lbs_get_essid() + * iwmc3200wifi: fix array out-of-boundary access + * mac80211: fix propagation of failed hardware reconfigurations + * mac80211: fix WMM AP settings application + * mac80211: Fix IBSS merge + * cfg80211: fix race between deauth and assoc response + * ath5k: fix SWI calibration interrupt storm + * ath9k: wake hardware for interface IBSS/AP/Mesh removal + * ath9k: Fix TX queue draining + * ath9k: fix missed error codes in the tx status check + * ath9k: wake hardware during AMPDU TX actions + * ath9k: fix suspend by waking device prior to stop + * ath9k_hw: Fix possible OOB array indexing in gen_timer_index[] on + 64-bit + * ath9k_hw: Fix AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_BB and its shift value + in 0x4054 + * iwl3945: disable power save + * iwl3945: fix panic in iwl3945 driver + * iwlwifi: fix EEPROM/OTP reading endian annotations and a bug + * iwlwifi: fix more eeprom endian bugs + * iwlwifi: fix 40MHz operation setting on cards that do not allow it + * mac80211: fix race with suspend and dynamic_ps_disable_work + * NOMMU: Optimise away the {dac_,}mmap_min_addr tests + * 'sysctl_max_map_count' should be non-negative + * kernel/sysctl.c: fix the incomplete part of + sysctl_max_map_count-should-be-non-negative.patch + * V4L/DVB (13596): ov511.c typo: lock => unlock + * x86/ptrace: make genregs[32]_get/set more robust + * memcg: avoid oom-killing innocent task in case of use_hierarchy + * e100: Fix broken cbs accounting due to missing memset. + * ipv6: reassembly: use seperate reassembly queues for conntrack and + local delivery + * netfilter: fix crashes in bridge netfilter caused by fragment jumps + * hwmon: (sht15) Off-by-one error in array index + incorrect constants + * b43: avoid PPC fault during resume + * Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture + support + * sched: Fix balance vs hotplug race + * drm/radeon/kms: fix crtc vblank update for r600 + * drm: disable all the possible outputs/crtcs before entering KMS mode + * S390: dasd: support DIAG access for read-only devices + * xen: fix is_disconnected_device/exists_disconnected_device + * xen: improvement to wait_for_devices() + * xen: wait up to 5 minutes for device connetion + * orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled + * udf: Try harder when looking for VAT inode + * Add unlocked version of inode_add_bytes() function + * quota: decouple fs reserved space from quota reservation + * ext4: Convert to generic reserved quota's space management. + * ext4: fix sleep inside spinlock issue with quota and dealloc (#14739) + * x86, msr: Unify rdmsr_on_cpus/wrmsr_on_cpus + * cpumask: use modern cpumask style in drivers/edac/amd64_edac.c + * amd64_edac: unify MCGCTL ECC switching + * x86, msr: Add support for non-contiguous cpumasks + * x86, msr: msrs_alloc/free for CONFIG_SMP=n + * amd64_edac: fix driver instance freeing + * amd64_edac: make driver loading more robust + * amd64_edac: fix forcing module load/unload + * sched: Sched_rt_periodic_timer vs cpu hotplug + * ext4: Update documentation to correct the inode_readahead_blks option + name + * lguest: fix bug in setting guest GDT entry + * vmscan: do not evict inactive pages when skipping an active list scan + * ksm: fix mlockfreed to munlocked + * rt2x00: Disable powersaving for rt61pci and rt2800pci. + * generic_permission: MAY_OPEN is not write access + * Linux 2.6.32.3 + * untangle the do_mremap() mess + * fasync: split 'fasync_helper()' into separate add/remove functions + * ASoC: fix params_rate() macro use in several codecs + * modules: Skip empty sections when exporting section notes + * exofs: simple_write_end does not mark_inode_dirty + * nfsd: make sure data is on disk before calling ->fsync + * sunrpc: fix peername failed on closed listener + * SUNRPC: Fix up an error return value in + gss_import_sec_context_kerberos() + * SUNRPC: Fix the return value in gss_import_sec_context() + * sunrpc: on successful gss error pipe write, don't return error + * drm/i915: Update LVDS connector status when receiving ACPI LID event + * drm/i915: fix order of fence release wrt flushing + * drm/i915: Permit pinning whilst the device is 'suspended' + * drm: remove address mask param for drm_pci_alloc() + * drm/i915: Enable/disable the dithering for LVDS based on VBT setting + * drm/i915: Make the BPC in FDI rx/transcoder be consistent with that in + pipeconf on Ironlake + * drm/i915: Select the correct BPC for LVDS on Ironlake + * drm/i915: fix unused var + * rtc_cmos: convert shutdown to new pnp_driver->shutdown + * drivers/cpuidle/governors/menu.c: fix undefined reference to + `__udivdi3' + * cgroups: fix 2.6.32 regression causing BUG_ON() in cgroup_diput() + * lib/rational.c needs module.h + * dma-debug: allow DMA_BIDIRECTIONAL mappings to be synced with + DMA_FROM_DEVICE and + * kernel/signal.c: fix kernel information leak with print-fatal-signals=1 + * mmc_block: add dev_t initialization check + * mmc_block: fix probe error cleanup bug + * mmc_block: fix queue cleanup + * ALSA: hda - Fix ALC861-VD capture source mixer + * ALSA: ac97: Add Dell Dimension 2400 to Headphone/Line Jack Sense + blacklist + * ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2 + - LP: #498863 + * ASoC: Fix WM8350 DSP mode B configuration + * netfilter: ebtables: enforce CAP_NET_ADMIN + * netfilter: nf_ct_ftp: fix out of bounds read in update_nl_seq() + * hwmon: (coretemp) Fix TjMax for Atom N450/D410/D510 CPUs + * hwmon: (adt7462) Fix pin 28 monitoring + * quota: Fix dquot_transfer for filesystems different from ext4 + * xen: fix hang on suspend. + * iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr + * ath5k: Fix eeprom checksum check for custom sized eeproms + * cfg80211: fix syntax error on user regulatory hints + * iwl: off by one bug + * mac80211: add missing sanity checks for action frames + * drm/i915: remove render reclock support + * libertas: Remove carrier signaling from the scan code + * kernel/sysctl.c: fix stable merge error in NOMMU mmap_min_addr + * mac80211: fix skb buffering issue (and fixes to that) + * fix braindamage in audit_tree.c untag_chunk() + * fix more leaks in audit_tree.c tag_chunk() + * module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE=y + * ipv6: skb_dst() can be NULL in ipv6_hop_jumbo(). + * agp/intel-agp: Clear entire GTT on startup + * Linux 2.6.32.4 + * ethtool: Add reset operation + * gro: Name the GRO result enumeration type + * gro: Change all receive functions to return GRO result codes + * sfc: 10Xpress: Initialise pause advertising flags + * sfc: 10Xpress: Report support for pause frames + * sfc: Remove redundant header gmii.h + * sfc: Remove redundant hardware initialisation + * sfc: Rename Falcon-specific board code and types + * sfc: Remove boards.h, moving last remaining declaration to falcon.h + * sfc: Remove versioned bitfield macros + * sfc: Move RX data FIFO thresholds out of struct efx_nic_type + * sfc: Update hardware definitions for Siena + * sfc: Rename register I/O header and functions used by both Falcon and + Siena + * sfc: Eliminate indirect lookups of queue size constants + * sfc: Define DMA address mask explicitly in terms of descriptor field + width + * sfc: Move all TX DMA length limiting into tx.c + * sfc: Change order of device removal to reverse of probe order + * sfc: Remove declarations of nonexistent functions + * sfc: Move efx_xmit_done() declaration into correct stanza + * sfc: Move shared members of struct falcon_nic_data into struct efx_nic + * sfc: Maintain interrupt moderation values in ticks, not microseconds + * sfc: Removed kernel-doc for nonexistent member of efx_phy_operations + * sfc: Remove pointless abstraction of memory BAR number + * sfc: Remove incorrect assertion from efx_pci_remove_main() + * sfc: Remove unnecessary tests of efx->membase + * sfc: Move MTD probe after netdev registration and name allocation + * sfc: Remove unused code for non-autoneg speed/duplex switching + * sfc: Rename 'xfp' file and functions to reflect reality + * sfc: Really allow RX checksum offload to be disabled + * sfc: Feed GRO result into RX allocation policy and interrupt moderation + * sfc: Enable heuristic selection between page and skb RX buffers + * sfc: Remove pointless abstraction of memory BAR number (2) + * sfc: Remove redundant gotos from __efx_rx_packet() + * sfc: Remove ridiculously paranoid assertions + * sfc: Move assertions and buffer cleanup earlier in efx_rx_packet_lro() + * sfc: Record RX queue number on GRO path + * sfc: SFT9001: Reset LED configuration correctly after blinking + * sfc: Use a single blink implementation + * sfc: Rename efx_board::init_leds to init_phy and use for SFN4111T + * sfc: Make board information explicitly Falcon-specific + * sfc: Move definition of struct falcon_nic_data into falcon.h + * sfc: Move struct falcon_board into struct falcon_nic_data + * sfc: Move all I2C stuff into struct falcon_board + * sfc: Gather link state fields in struct efx_nic into new struct + efx_link_state + * sfc: Remove unnecessary casts to struct sk_buff * + * sfc: Remove redundant efx_xmit() function + * sfc: Combine high-level header files + * sfc: Log interrupt and reset type names, not numbers + * sfc: Fix descriptor cache sizes + * sfc: Treat all MAC registers as 128-bit + * sfc: Strengthen EFX_ASSERT_RESET_SERIALISED + * sfc: Comment corrections + * sfc: Remove unused constant + * sfc: Clean up struct falcon_board and struct falcon_board_data + * sfc: Fix bugs in RX queue flushing + * sfc: Remove unused function efx_flush_queues() + * sfc: Only switch Falcon MAC clocks as necessary + * sfc: Hold MAC lock for longer in efx_init_port() + * sfc: Split MAC stats DMA initiation and completion + * sfc: Move Falcon board/PHY/MAC monitoring code to falcon.c + * sfc: Simplify XMAC link polling + * sfc: Change MAC promiscuity and multicast hash at the same time + * sfc: Move inline comment into kernel-doc + * sfc: Do not set net_device::trans_start in self-test + * sfc: Simplify PHY polling + * sfc: QT202x: Reset before reading PHY id + * sfc: Replace MDIO spinlock with mutex + * sfc: Always start Falcon using the XMAC + * sfc: Limit some hardware workarounds to Falcon + * sfc: Remove EFX_WORKAROUND_9141 macro + * sfc: Remove another unused workaround macro + * sfc: Remove some redundant whitespace + * sfc: Decouple NIC revision number from Falcon PCI revision number + * sfc: Move descriptor cache base addresses to struct efx_nic_type + * sfc: Clean up RX event handling + * sfc: Remove redundant writes to INT_ADR_KER + * sfc: Remove duplicate hardware structure definitions + * sfc: Turn pause frame generation on and off at the MAC, not the RX FIFO + * sfc: Move Falcon NIC operations to efx_nic_type + * sfc: Refactor link configuration + * sfc: Generalise link state monitoring + * sfc: Add power-management and wake-on-LAN support + * sfc: Implement ethtool reset operation + * sfc: Add efx_nic_type operation for register self-test + * sfc: Add efx_nic_type operation for NVRAM self-test + * sfc: Add efx_nic_type operation for identity LED control + * sfc: Separate shared NIC code from Falcon-specific and rename + accordingly + * sfc: Fold falcon_probe_nic_variant() into falcon_probe_nic() + * sfc: Extend loopback mode enumeration + * sfc: Remove static PHY data and enumerations + * sfc: Extend MTD driver for use with new NICs + * sfc: Allow for additional checksum offload features + * sfc: Rename falcon.h to nic.h + * sfc: Move shared NIC code from falcon.c to new source file nic.c + * sfc: Add firmware protocol definitions (MCDI) + * sfc: Add support for SFC9000 family (1) + * sfc: Add support for SFC9000 family (2) + * sfc: Implement TSO for TCP/IPv6 + * sfc: Update version, copyright dates, authors + * drivers/net/sfc: Correct code taking the size of a pointer + * sfc: Move PHY software state initialisation from init() into probe() + * sfc: Include XGXS in XMAC link status check except in XGMII loopback + * sfc: Fix DMA mapping cleanup in case of an error in TSO + * sfc: QT2025C: Work around PHY bug + * sfc: QT2025C: Switch into self-configure mode when not in loopback + * sfc: QT2025C: Work around PHY firmware initialisation bug + * sfc: QT2025C: Add error message for suspected bad SFP+ cables + * sfc: Disable TX descriptor prefetch watchdog + * [SCSI] vmw_pvscsi: SCSI driver for VMware's virtual HBA. + - LP: #497156 + + -- Andy Whitcroft Tue, 19 Jan 2010 16:12:47 +0000 + +linux (2.6.32-10.14) lucid; urgency=low + + [ Alex Deucher ] + + * SAUCE: drm/radeon/kms: fix LVDS setup on r4xx + - LP: #493795 + + [ Andy Whitcroft ] + + * Revert "(pre-stable) acpi: Use the ARB_DISABLE for the CPU which model + id is less than 0x0f." + * config-check -- ensure the checks get run at build time + * config-check -- check the processed config during updateconfigs + * config-check -- CONFIG_SECCOMP may not be present + * TUN is now built in ignore + * SAUCE: acpi battery -- delay first lookup of the battery until first + use + * SAUCE: async_populate_rootfs: move rootfs init earlier + * ubuntu: AppArmor -- update to mainline 2010-01-06 + * SAUCE: move RLIMIT_CORE pipe dumper marker to 1 + - LP: #498525 + + [ Dave Airlie ] + + * (pre-stable) drm/radeon/kms: fix crtc vblank update for r600 + + [ Leann Ogasawara ] + + * Add asix to nic-usb-modules file + - LP: #499785 + + [ Peter Zijlstra ] + + * (pre-stable) sched: Fix balance vs hotplug race + + [ Tim Gardner ] + + * [Config] Enable CONFIG_FUNCTION_TRACER + - LP: #497989 + * [Config] Drop lpia from getabis + * [Config] Build in TUN/TAP driver + - LP: #499491 + * [Config] DH_COMPAT=5 + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) drm/i915: Avoid NULL dereference with + component_only tv_modes" + * Revert "(pre-stable) drm/i915: Fix sync to vblank when VGA output is + turned off" + * USB: usb-storage: fix bug in fill_inquiry + * USB: option: add pid for ZTE + * firewire: ohci: handle receive packets with a data length of zero + * rcu: Prepare for synchronization fixes: clean up for non-NO_HZ handling + of ->completed counter + * rcu: Fix synchronization for rcu_process_gp_end() uses of ->completed + counter + * rcu: Fix note_new_gpnum() uses of ->gpnum + * rcu: Remove inline from forward-referenced functions + * perf_event: Fix invalid type in ioctl definition + * perf_event: Initialize data.period in perf_swevent_hrtimer() + * perf: Don't free perf_mmap_data until work has been done + * PM / Runtime: Fix lockdep warning in __pm_runtime_set_status() + * sched: Check for an idle shared cache in select_task_rq_fair() + * sched: Fix affinity logic in select_task_rq_fair() + * sched: Rate-limit newidle + * sched: Fix and clean up rate-limit newidle code + * x86/amd-iommu: attach devices to pre-allocated domains early + * x86/amd-iommu: un__init iommu_setup_msi + * x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking + up the PCI tree + * x86: Fix iommu=nodac parameter handling + * x86: GART: pci-gart_64.c: Use correct length in strncmp + * x86: ASUS P4S800 reboot=bios quirk + - LP: #366682 + * x86, apic: Enable lapic nmi watchdog on AMD Family 11h + * ssb: Fix range check in sprom write + * ath5k: allow setting txpower to 0 + * ath5k: enable EEPROM checksum check + * hrtimer: Fix /proc/timer_list regression + * ALSA: hrtimer - Fix lock-up + * ALSA: hda - Terradici HDA controllers does not support 64-bit mode + * KVM: x86 emulator: limit instructions to 15 bytes + * KVM: s390: Fix prefix register checking in arch/s390/kvm/sigp.c + * KVM: s390: Make psw available on all exits, not just a subset + * KVM: fix irq_source_id size verification + * KVM: x86: include pvclock MSRs in msrs_to_save + * x86: Prevent GCC 4.4.x (pentium-mmx et al) function prologue wreckage + * x86: Use -maccumulate-outgoing-args for sane mcount prologues + * x86, mce: don't restart timer if disabled + * x86/mce: Set up timer unconditionally + * x86: SGI UV: Fix BAU initialization + * x86: Fix duplicated UV BAU interrupt vector + * x86: Add new Intel CPU cache size descriptors + * x86: Fix typo in Intel CPU cache size descriptor + * pata_hpt{37x|3x2n}: fix timing register masks (take 2) + * s390: clear high-order bits of registers after sam64 + * V4L/DVB: Fix test in copy_reg_bits() + * bsdacct: fix uid/gid misreporting + * UBI: flush wl before clearing update marker + * jbd2: don't wipe the journal on a failed journal checksum + * USB: xhci: Add correct email and files to MAINTAINERS entry. + * USB: musb_gadget_ep0: fix unhandled endpoint 0 IRQs, again + * USB: option.c: add support for D-Link DWM-162-U5 + * USB: usbtmc: repeat usb_bulk_msg until whole message is transfered + * USB: usb-storage: add BAD_SENSE flag + * USB: Close usb_find_interface race v3 + * pxa/em-x270: fix usb hub power up/reset sequence + * hfs: fix a potential buffer overflow + * SUNRPC: IS_ERR/PTR_ERR confusion + * NFS: Fix nfs_migrate_page() + * md/bitmap: protect against bitmap removal while being updated. + * futex: Take mmap_sem for get_user_pages in fault_in_user_writeable + * devpts_get_tty() should validate inode + * debugfs: fix create mutex racy fops and private data + * Driver core: fix race in dev_driver_string + * Serial: Do not read IIR in serial8250_start_tx when UART_BUG_TXEN + * mac80211: Fix bug in computing crc over dynamic IEs in beacon + * mac80211: Fixed bug in mesh portal paths + * mac80211: Revert 'Use correct sign for mesh active path refresh' + * mac80211: fix scan abort sanity checks + * wireless: correctly report signal value for IEEE80211_HW_SIGNAL_UNSPEC + * rtl8187: Fix wrong rfkill switch mask for some models + * x86: Fix bogus warning in apic_noop.apic_write() + * mm: hugetlb: fix hugepage memory leak in mincore() + * mm: hugetlb: fix hugepage memory leak in walk_page_range() + * powerpc/windfarm: Add detection for second cpu pump + * powerpc/therm_adt746x: Record pwm invert bit at module load time] + * powerpc: Fix usage of 64-bit instruction in 32-bit altivec code + * drm/radeon/kms: Add quirk for HIS X1300 board + * drm/radeon/kms: handle vblanks properly with dpms on + * drm/radeon/kms: fix legacy crtc2 dpms + * drm/radeon/kms: fix vram setup on rs600 + * drm/radeon/kms: rs6xx/rs740: clamp vram to aperture size + * drm/ttm: Fix build failure due to missing struct page + * drm/i915: Set the error code after failing to insert new offset into mm + ht. + * drm/i915: Add the missing clonemask for display port on Ironlake + * xen/xenbus: make DEVICE_ATTR()s static + * xen: re-register runstate area earlier on resume. + * xen: restore runstate_info even if !have_vcpu_info_placement + * xen: correctly restore pfn_to_mfn_list_list after resume + * xen: register timer interrupt with IRQF_TIMER + * xen: register runstate on secondary CPUs + * xen: don't call dpm_resume_noirq() with interrupts disabled. + * xen: register runstate info for boot CPU early + * xen: call clock resume notifier on all CPUs + * xen: improve error handling in do_suspend. + * xen: don't leak IRQs over suspend/resume. + * xen: use iret for return from 64b kernel to 32b usermode + * xen: explicitly create/destroy stop_machine workqueues outside + suspend/resume region. + * Xen balloon: fix totalram_pages counting. + * xen: try harder to balloon up under memory pressure. + * dm exception store: free tmp_store on persistent flag error + * dm snapshot: only take lock for statustype info not table + * dm crypt: move private iv fields to structs + * dm crypt: restructure essiv error path + * dm: avoid _hash_lock deadlock + * dm snapshot: cope with chunk size larger than origin + * dm crypt: separate essiv allocation from initialisation + * dm crypt: make wipe message also wipe essiv key + * slc90e66: fix UDMA handling + * tcp: Stalling connections: Fix timeout calculation routine + * ip_fragment: also adjust skb->truesize for packets not owned by a + socket + * b44 WOL setup: one-bit-off stack corruption kernel panic fix + * sparc64: Don't specify IRQF_SHARED for LDC interrupts. + * sparc64: Fix overly strict range type matching for PCI devices. + * sparc64: Fix stack debugging IRQ stack regression. + * sparc: Set UTS_MACHINE correctly. + * b43legacy: avoid PPC fault during resume + * tracing: Fix event format export + * ath9k: Fix TX hang poll routine + * ath9k: fix processing of TX PS null data frames + * ath9k: Fix maximum tx fifo settings for single stream devices + * ath9k: fix tx status reporting + * mac80211: Fix dynamic power save for scanning. + * drm/i915: Fix sync to vblank when VGA output is turned off + * memcg: fix memory.memsw.usage_in_bytes for root cgroup + * thinkpad-acpi: fix default brightness_mode for R50e/R51 + * thinkpad-acpi: preserve rfkill state across suspend/resume + * ipw2100: fix rebooting hang with driver loaded + * matroxfb: fix problems with display stability + * acerhdf: add new BIOS versions + * asus-laptop: change light sens default values. + * vmalloc: conditionalize build of pcpu_get_vm_areas() + * ACPI: Use the ARB_DISABLE for the CPU which model id is less than 0x0f. + * net: Fix userspace RTM_NEWLINK notifications. + * ext3: Fix data / filesystem corruption when write fails to copy data + * V4L/DVB (13116): gspca - ov519: Webcam 041e:4067 added. + * bcm63xx_enet: fix compilation failure after get_stats_count removal + * x86: Under BIOS control, restore AP's APIC_LVTTHMR to the BSP value + * drm/i915: Avoid NULL dereference with component_only tv_modes + * drm/i915: PineView only has LVDS and CRT ports + * drm/i915: Fix LVDS stability issue on Ironlake + * mm: sigbus instead of abusing oom + * ipvs: zero usvc and udest + * jffs2: Fix long-standing bug with symlink garbage collection. + * intel-iommu: Detect DMAR in hyperspace at probe time. + * intel-iommu: Apply BIOS sanity checks for interrupt remapping too. + * intel-iommu: Check for an RMRR which ends before it starts. + * intel-iommu: Fix oops with intel_iommu=igfx_off + * intel-iommu: ignore page table validation in pass through mode + * netfilter: xtables: document minimal required version + * perf_event: Fix incorrect range check on cpu number + * implement early_io{re,un}map for ia64 + * Linux 2.6.32.2 + + -- Andy Whitcroft Thu, 07 Jan 2010 15:28:43 +0000 + +linux (2.6.32-9.13) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_B43_PHY_LP + - LP: #493059 + * include modules.builtin in the binary debs + * config-check -- add a configuration enforcer + * config-check -- add a unit-test suite to the checker + * [Config] Enable CONFIG_SYN_COOKIES for versatile + * [Config] Enable CONFIG_SECURITY_SMACK for ports + * [Config] Enable CONFIG_SECURITY_FILE_CAPABILITIES for ports + * [Config] Disable CONFIG_COMPAT_BRK for ports + * getabis -- add armel versatile to the list + + [ Brad Figg ] + + * SAUCE: Increase the default prealloc buffer for HDA audio devices + (non-modem) + + [ Manoj Iyer ] + + * ubuntu: onmibook -- Added missing BOM file + + [ Tim Gardner ] + + * ubuntu: fsam7400 -- Cleanup Makefile + + [ Upstream Kernel Changes ] + + * Revert "ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT" + * signal: Fix alternate signal stack check + * SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects + * SCSI: osd_protocol.h: Add missing #include + * SCSI: megaraid_sas: fix 64 bit sense pointer truncation + * ext4: fix potential buffer head leak when add_dirent_to_buf() returns + ENOSPC + * ext4: avoid divide by zero when trying to mount a corrupted file system + * ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails + * ext4: fix lock order problem in ext4_move_extents() + * ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT + * ext4: plug a buffer_head leak in an error path of ext4_iget() + * ext4: make sure directory and symlink blocks are revoked + * ext4: fix i_flags access in ext4_da_writepages_trans_blocks() + * ext4: journal all modifications in ext4_xattr_set_handle + * ext4: don't update the superblock in ext4_statfs() + * ext4: fix uninit block bitmap initialization when s_meta_first_bg is + non-zero + * ext4: fix block validity checks so they work correctly with meta_bg + * ext4: avoid issuing unnecessary barriers + * ext4: fix error handling in ext4_ind_get_blocks() + * ext4: make trim/discard optional (and off by default) + * ext4: make "norecovery" an alias for "noload" + * ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT + * ext4: initialize moved_len before calling ext4_move_extents() + * ext4: move_extent_per_page() cleanup + * jbd2: Add ENOMEM checking in and for + jbd2_journal_write_metadata_buffer() + * ext4: Return the PTR_ERR of the correct pointer in + setup_new_group_blocks() + * ext4: Avoid data / filesystem corruption when write fails to copy data + * ext4: wait for log to commit when umounting + * ext4: remove blocks from inode prealloc list on failure + * ext4: ext4_get_reserved_space() must return bytes instead of blocks + * ext4: quota macros cleanup + * ext4: fix incorrect block reservation on quota transfer. + * ext4: Wait for proper transaction commit on fsync + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + * ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem) + * Linux 2.6.32.1 + * kbuild: generate modules.builtin + * (pre-stable) drm/i915: Fix sync to vblank when VGA output is turned off + - LP: #494461 + * (pre-stable) drm/i915: Avoid NULL dereference with component_only + tv_modes + - LP: #494045 + + [ Zhao Yakui ] + + * (pre-stable) acpi: Use the ARB_DISABLE for the CPU which model id is + less than 0x0f. + - LP: #481765 + + -- Andy Whitcroft Thu, 17 Dec 2009 15:41:21 +0000 + +linux (2.6.32-8.12) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: AppArmor -- add linux/err.h for ERR_PTR + + -- Andy Whitcroft Sat, 12 Dec 2009 10:56:16 +0000 + +linux (2.6.32-8.11) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches + up" + * Revert "SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition." + * Revert "SAUCE: AppArmor: Fix refcounting bug causing leak of creds" + * Revert "SAUCE: AppArmor: Fix cap audit_caching preemption disabling" + * Revert "SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds" + * Revert "SAUCE: AppArmor: Fix oops after profile removal" + * Revert "SAUCE: AppArmor: AppArmor disallows truncate of deleted files." + * Revert "SAUCE: AppArmor: AppArmor fails to audit change_hat correctly" + * Revert "SAUCE: AppArmor: Policy load and replacement can fail to alloc + mem" + * Revert "SAUCE: AppArmor: AppArmor wrongly reports allow perms as + denied" + * Revert "SAUCE: AppArmor: Fix mediation of "deleted" paths" + * Revert "SAUCE: AppArmor: Fix off by 2 error in getprocattr mem + allocation" + * Revert "SAUCE: AppArmor: Set error code after structure + initialization." + * Revert "AppArmor -- fix pstrace_may_access rename" + * Revert "ubuntu: AppArmor security module" + * Revert "SAUCE: Add config option to set a default LSM" + * Revert "ubuntu: fsam7400 -- sw kill switch driver" + * Revert "[Config] fsam7400 -- enable" + * Revert "[Config] AUFS -- enable" + * Revert "ubuntu: AUFS -- aufs2-30 20090727" + * Revert "ubuntu: AUFS -- export various core functions -- fixes" + * Revert "ubuntu: AUFS -- export various core functions" + * Revert "[Config] ubuntu/iscsitarget -- disable" + * Revert "[Config] iscsitarget -- enable" + * Revert "ubuntu: iscsitarget -- SVN revision r214" + * update Vcs-Git to point to the correct repository + - LP: #493589 + * update build environment overrides to lucid + - LP: #493589 + * [Config] enable CONFIG_DEVTMPFS + * [Config] update all configs following AppArmor 2009-12-08 update + * SAUCE: isapnp_init: make isa PNP scans occur async + * [Config] fsam7400 -- enable + * [Config] omnibook -- enable + * [Config] cleanup CONFIG_AUDIT + * ubuntu: AUFS -- export various core functions (aufs2-base.patch) + * ubuntu: AUFS -- export various core functions (aufs2-standalone.patch) + * ubuntu: AUFS -- aufs2 20091209 + * [Config] AUFS -- enable + * [Config] iscsitarget -- enable + + [ Arjan van de Ven ] + + * SAUCE: KMS: cache the EDID information of the LVDS + + [ Colin Watson ] + + * bnx2: update d-i firmware filenames + - LP: #494052 + * add cdc_ether to nic-usb-modules udeb + - LP: #495060 + + [ John Johansen ] + + * ubuntu: AppArmor -- mainline 2009-10-08 + + [ Manoj Iyer ] + + * ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M 7400 + * ubuntu: omnibook -- support Toshiba (HP) netbooks + * ubuntu: iscsitarget --- version 1.4.19 + - LP: #494693 + + [ Surbhi Palande ] + + * SAUCE: Make populate_rootfs asynchronous + + [ Tim Gardner ] + + * Parallelize flavour builds and packaging + * [Config] Enable CONFIG_KSM + + [ Upstream Kernel Changes ] + + * Config option to set a default LSM + * LSM: Add security_path_chroot(). + * LSM: Add security_path_chroot(). + * LSM: Move security_path_chmod()/security_path_chown() to after + mutex_lock(). + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + + -- Andy Whitcroft Fri, 11 Dec 2009 17:45:19 +0000 + +linux (2.6.32-7.10) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_THUMB2_KERNEL to fix arm FTBFS + + -- Andy Whitcroft Sun, 06 Dec 2009 12:56:48 +0000 + +linux (2.6.32-7.9) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: set /proc/acpi/video/*/DOS to 4 by default + - LP: #458982 + * SAUCE: ensure vga16fb loads if no other driver claims the VGA device + * [Config] update configs following versatile switch to V7 + * rebased to v2.6.32 + * [Config] update configs following rebase to v2.6.32 + * [Config] update ports configs following rebase to v2.6.32 + * SAUCE: default ATI Radeon KMS to off until userspace catches up + + [ Arjan van de Ven ] + + * SAUCE: vfs: Add a trace point in the mark_inode_dirty function + + [ Leann Ogasawara ] + + * [SCSI] megaraid_sas: remove sysfs poll_mode_io world writeable + permissions + - CVE-2009-3939 + + [ Loic Minier ] + + * SAUCE: select a v7 CPU for versatile + + [ Takashi Iwai ] + + * SAUCE: ALSA: hda - Add power on/off counter + + [ Upstream changes ] + + * rebased to v2.6.32 + + -- Andy Whitcroft Fri, 04 Dec 2009 10:44:50 +0000 + +linux (2.6.32-6.8) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable SSB devices for armel + + -- Andy Whitcroft Sat, 28 Nov 2009 12:16:40 +0000 + +linux (2.6.32-6.7) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches up" + * Revert "SAUCE: Dell XPS710 reboot quirk" + * Revert "SAUCE: Link acpi-cpufreq.o first" + * Revert "SAUCE: LPIA Logical reset of USB port on resume" + * Revert "SAUCE: LPIA Reboot fix for Intel Crownbeach development boards" + * Revert "SAUCE: Enable HDMI audio codec on Studio XPS 1340" + * Revert "SAUCE: Dell laptop digital mic does not work, PCI 1028:0271" + * Revert "Add Dell Dimension 9200 reboot quirk" + * Revert "SAUCE: Correctly blacklist Thinkpad r40e in ACPI" + * Revert "SAUCE: tulip: Define ULI PCI ID's" + * Revert "SAUCE: Lower warning level of some PCI messages" + * Revert "mac80211: fix two issues in debugfs" + Drop a number of known redundant commits as identified in the Ubuntu + delta review blueprint. + + * reenable armel versatile flavour + * [Config] disable CONFIG_USB_DEVICEFS + + [ Tim Gardner ] + + * [Config] udeb: Add squashfs to fs-core-modules + - LP: #352615 + * [Config] Create a real squashfs udeb + - LP: #352615 + + + -- Andy Whitcroft Fri, 27 Nov 2009 17:31:16 +0000 + +linux (2.6.32-5.6) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc8 + * update configs following rebase to v2.6.32-rc8 + * update ports configs since rebase to v2.6.32-rc8 + * [Config] enable cgroup options + - LP: #480739 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc8 + + -- Andy Whitcroft Mon, 23 Nov 2009 11:16:14 +0000 + +linux (2.6.32-4.5) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * rebase to v2.6.32-rc7 + * resync with Karmic proposed + + [ John Johansen ] + + * SAUCE: AppArmor: Fix oops after profile removal + - LP: #475619 + * SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds + - LP: #437258 + * SAUCE: AppArmor: Fix cap audit_caching preemption disabling + - LP: #479102 + * SAUCE: AppArmor: Fix refcounting bug causing leak of creds + - LP: #479115 + * SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition. + - LP: #480112 + + [ Ubuntu Changes ] + + * resync with Karmic proposed (ddbc670a86a3dee18541a3734149f250ff307adf) + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc7 + + -- Andy Whitcroft Fri, 13 Nov 2009 11:35:13 +0000 + +linux (2.6.32-3.4) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * [Upstream] add local prefix to oss local change_bits + + [ Upstream Kernel Changes ] + + * mtd/maps: gpio-addr-flash: pull in linux/ headers rather than asm/ + * mtd/maps: gpio-addr-flash: depend on GPIO arch support + + -- Andy Whitcroft Wed, 11 Nov 2009 14:47:04 +0000 + +linux (2.6.32-3.3) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc6 + * [Config] update configs following rebase to v2.6.32-rc6 + * [Config] update ports configs following rebase to v2.6.32-rc6 + * resync with Karmic Ubuntu-2.6.31-15.49 + * [Config] add module ignores for broken drivers + + [ John Johansen ] + + * SAUCE: AppArmor: AppArmor wrongly reports allow perms as denied + - LP: #453335 + * SAUCE: AppArmor: Policy load and replacement can fail to alloc mem + - LP: #458299 + * SAUCE: AppArmor: AppArmor fails to audit change_hat correctly + - LP: #462824 + * SAUCE: AppArmor: AppArmor disallows truncate of deleted files. + - LP: #451375 + + [ Kees Cook ] + + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Scott James Remnant ] + + * Revert "SAUCE: trace: add trace_event for the open() syscall" + * SAUCE: trace: add trace events for open(), exec() and uselib() + - LP: #462111 + + [ Stefan Bader ] + + * SAUCE: Fix sub-flavour script to not stop on missing directories + - LP: #453073 + + [ Ubuntu Changes ] + + * resync with Karmic Ubuntu-2.6.31-15.49 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc6 + - LP: #464552 + + -- Andy Whitcroft Tue, 10 Nov 2009 15:00:57 +0000 + +linux (2.6.32-2.2) lucid; urgency=low + + [ Andy Whitcroft ] + + * install the full changelog with the binary package + * changelog -- explicitly note rebases and clean history + * reinstate armel.mk with no flavours + - LP: #449637 + * [Upstream] block: silently error unsupported empty barriers too + - LP: #420423 + * [Config] udate configs following karmic resync + * [Config] update ports configs following karmic resync + * [Upstream] lirc -- follow removal of .id element + + [ Colin Watson ] + + * Use section 'admin' rather than 'base' + * Add more e100 firmware to nic-modules + - LP: #451872 + * Add qla1280 firmware to scsi-modules + - LP: #381037 + + [ John Johansen ] + + * SAUCE: AppArmor: Set error code after structure initialization. + - LP: #427948 + * SAUCE: AppArmor: Fix off by 2 error in getprocattr mem allocation + - LP: #446595 + * SAUCE: AppArmor: Fix mediation of "deleted" paths + + [ Kees Cook ] + + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + + [ Leann Ogasawara ] + + * SAUCE: (drop after 2.6.31) input: Add support for filtering input + events + - LP: #430809 + * SAUCE: (drop after 2.6.31) dell-laptop: Trigger rfkill updates on wifi + toggle switch press + - LP: #430809 + + [ Luke Yelavich ] + + * SAUCE: Add sr_mod to the scsi-modules udeb for powerpc + * [Config] Add sd_mod to scsi-modules udeb for powerpc + + [ Mario Limonciello ] + + * SAUCE: Update to LIRC 0.8.6 + - LP: #432678 + * SAUCE: dell-laptop: Store the HW switch status internally rather than + requerying every time + - LP: #430809 + * SAUCE: dell-laptop: Blacklist machines not supporting dell-laptop + - LP: #430809 + + [ Stefan Bader ] + + * [Upstream] acerhdf: Limit modalias matching to supported boards + - LP: #435958 + + [ Tim Gardner ] + + * [Upstream] i915: Fix i2c init message + - LP: #409361 + * [Config] Add sym53c8xx.ko to virtual sub-flavour + - LP: #439415 + * [Config] Add d101m_ucode.bin to d-i/firmware/nic-modules + - LP: #439456 + * [Config] Set default I/O scheduler back to CFQ for desktop flavours + - LP: #381300 + * SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros + - LP: #430694 + * SAUCE: Use MODULE_IMPORT macro to tie intel_agp to i915 + - LP: #430694 + * [Config] CONFIG_GFS2_FS_LOCKING_DLM=y + - LP: #416325 + * SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT + - LP: #430694 + * SAUCE: Raise the default console 'quiet' level to 2 + * [Config] CONFIG_X86_PAT=y + * [Config] Add armel arch to linux-libc-dev arches. + - LP: #449637 + * [Config] CONFIG_X86_MCE + * [Upstream] (drop after 2.6.31) Input: synaptics - add another Protege + M300 to rate blacklist + - LP: #433801 + + [ Upstream Kernel Changes ] + + * sgi-gru: Fix kernel stack buffer overrun, CVE-2009-2584 + * drm/i915: Fix FDI M/N setting according with correct color depth + - LP: #416792 + + -- Andy Whitcroft Thu, 22 Oct 2009 16:53:33 +0100 + +linux (2.6.32-1.1) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc3 + * [Config] update configs following rebase to 2.6.32-rc3 + * [Config] update ports configs following rebase to 2.6.32-rc3 + * AppArmor -- fix pstrace_may_access rename + * staging/android -- disable + * ubuntu: dm-raid-45 -- update to compile with 2.6.32 + * ubuntu: drbd -- disable + * staging/comdi -- disable + * staging/go7007 -- disable + * [Config] staging/winbond -- disable + * [Config] ubuntu/iscsitarget -- disable + * [d-i] cbc and ecb are builtin make them optional in udebs + * rebase to v2.6.32-rc5 + * [Config] update configs following rebase to v2.6.32-rc5 + * [Config] update ports configs following rebase to v2.6.31-rc5 + + [ Tim Gardner ] + + * [Config] Add cpio as a build dependency. + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc3 + * rebase to v2.6.32-rc5 + + -- Andy Whitcroft Mon, 05 Oct 2009 15:48:58 +0100 + +linux (2.6.31-11.37) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Increase kernel log buffer to 256K for amd64 flavours + - LP: #424810 + * [Config] Set HZ=100 for amd64 flavours + - LP: #438234 + * [Upstream] e1000e: Emit notice instead of an error when + pci_enable_pcie_error_reporting() fails + - LP: #436370 + + [ Upstream Kernel Changes ] + + * n_tty: honor opost flag for echoes + * n_tty: move echoctl check and clean up logic + - LP: #438310 + + * Revert "[Upstream] drm/i915: Check that the relocation points to within + the target" - Use upstream cherry-pick. + * drm/i915: Check that the relocation points to within the target + - LP: #429241 + + * drm/i915: fix tiling on IGDNG + * drm/i915: add B43 chipset support + * agp/intel: Add B43 chipset support + Intel request from kernel team mailing list. + + * HID: completely remove apple mightymouse from blacklist + - LP: #428111 + + -- Tim Gardner Mon, 28 Sep 2009 11:47:29 -0600 + +linux (2.6.31-11.36) karmic; urgency=low + + [ Brian Rogers ] + + * SAUCE: (drop after 2.6.31) em28xx: ir-kbd-i2c init data needs a + persistent object + * SAUCE: (drop after 2.6.31) saa7134: ir-kbd-i2c init data needs a + persistent object + + [ Takashi Iwai ] + + * [Upstream] ALSA: hda - Add another entry for Nvidia HDMI device + - LP: #416482 + + [ Tyler Hicks ] + + * SAUCE: (drop after 2.6.31) eCryptfs: Prevent lower dentry from going + negative during unlink + + [ Upstream Kernel Changes ] + + * sg: fix oops in the error path in sg_build_indirect() + * mpt2sas : Rescan topology from Interrupt context instead of work thread + * mpt2sas: Prevent sending command to FW while Host Reset + * mpt2sas: setting SDEV into RUNNING state from Interrupt context + * mpt2sas: Raid 10 Volume is showing as Raid 1E in dmesg + * SCSI: fix oops during scsi scanning + * SCSI: libsrp: fix memory leak in srp_ring_free() + * cfg80211: fix looping soft lockup in find_ie() + * ath5k: write PCU registers on initial reset + * binfmt_elf: fix PT_INTERP bss handling + * TPM: Fixup boot probe timeout for tpm_tis driver + * md: Fix "strchr" [drivers/md/dm-log-userspace.ko] undefined! + * x86/amd-iommu: fix broken check in amd_iommu_flush_all_devices + * fix undefined reference to user_shm_unlock + * perf_counter: Fix buffer overflow in perf_copy_attr() + * perf_counter: Start counting time enabled when group leader gets + enabled + * powerpc/perf_counters: Reduce stack usage of power_check_constraints + * powerpc: Fix bug where perf_counters breaks oprofile + * powerpc/ps3: Workaround for flash memory I/O error + * block: don't assume device has a request list backing in nr_requests + store + * agp/intel: remove restore in resume + * ALSA: cs46xx - Fix minimum period size + * ASoC: Fix WM835x Out4 capture enumeration + * sound: oxygen: work around MCE when changing volume + * mlx4_core: Allocate and map sufficient ICM memory for EQ context + * perf stat: Change noise calculation to use stddev + * x86: Fix x86_model test in es7000_apic_is_cluster() + * x86/i386: Make sure stack-protector segment base is cache aligned + * PCI: apply nv_msi_ht_cap_quirk on resume too + * x86, pat: Fix cacheflush address in change_page_attr_set_clr() + * ARM: 5691/1: fix cache aliasing issues between kmap() and kmap_atomic() + with highmem + * KVM guest: do not batch pte updates from interrupt context + * KVM: Fix coalesced interrupt reporting in IOAPIC + * KVM: VMX: Check cpl before emulating debug register access + * KVM guest: fix bogus wallclock physical address calculation + * KVM: x86: Disallow hypercalls for guest callers in rings > 0 + * KVM: VMX: Fix cr8 exiting control clobbering by EPT + * KVM: x86 emulator: Implement zero-extended immediate decoding + * KVM: MMU: make __kvm_mmu_free_some_pages handle empty list + * KVM: x86 emulator: fix jmp far decoding (opcode 0xea) + * KVM: limit lapic periodic timer frequency + * libata: fix off-by-one error in ata_tf_read_block() + * PCI quirk: update 82576 device ids in SR-IOV quirks list + * PCI: Unhide the SMBus on the Compaq Evo D510 USDT + * powerpc/pseries: Fix to handle slb resize across migration + * Linux 2.6.31.1 + + -- Tim Gardner Thu, 24 Sep 2009 13:04:28 -0600 + +linux (2.6.31-10.35) karmic; urgency=low + + [ Amit Kucheria ] + + * Disable CONFIG_UEVENT_HELPER_PATH + + [ Andy Whitcroft ] + + * [Config] Enable CONFIG_USB_GADGET_DUMMY_HCD + * remove the tlsup driver + * remove lmpcm logitech driver support + + [ Bryan Wu ] + + * Add 3 missing files to prerm remove file list + - LP: #345623, #415832 + + [ Chris Wilson ] + + * [Upstream] drm/i915: Check that the relocation points to within the + target + - LP: #429241 + + [ Luke Yelavich ] + + * [Config] Set CONFIG_EXT4_FS=y on ports architectures + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Tim Gardner ] + + * Revert "[Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) white-list" + Upstream suggests that this is not the right approach. + + * [Config] Set default I/O scheduler to DEADLINE + CFQ seems to have some load related problems which are often exacerbated by sreadahead. + - LP: #381300 + + [ ubuntu@tjworld.net ] + + * SAUCE: ipw2200: Enable LED by default + - LP: #21367 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Add support for new AMD HD audio devices + - LP: #430564 + + -- Andy Whitcroft Wed, 16 Sep 2009 15:37:49 +0100 + +linux (2.6.31-10.34) karmic; urgency=low + + [ Ted Tso ] + + * [Upstream] ext3: Don't update superblock write time when filesystem is + read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 16:00:45 -0600 + +linux (2.6.31-10.33) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] dvb-usb: fix tuning with Cinergy T2 + - LP: #421258 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + (really, really fix it this time) + - LP: #423426 + * [Config] Set CONFIG_CACHEFILES=m for all flavours + + [ Upstream Kernel Changes ] + + * ext4: Don't update superblock write time when filesystem is read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 07:50:21 -0600 + +linux (2.6.31-10.32) karmic; urgency=low + + [ Eric Miao ] + + * [Config] enable module support for memory stick + - LP: #159951 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + - LP: #423426 + + -- Tim Gardner Thu, 10 Sep 2009 15:57:55 -0600 + +linux (2.6.31-10.31) karmic; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.31 final + + [ Colin Watson ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + + [ Ike Panhc ] + + * [Upstream] Pull latest update of lenovo-sl-laptop + + [ Peter Feuerer ] + + * [Upstream] (drop after 2.6.31) acerhdf: fix fan control for AOA150 + model + - LP: #426691 + + [ Tim Gardner ] + + * [Config] De-macro some package names. + + [ Upstream Changes ] + + * rebase to 2.6.31 final. + + -- Andy Whitcroft Thu, 10 Sep 2009 09:38:10 +0100 + +linux (2.6.31-10.30) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Enable CONFIG_USB_DEVICEFS + - LP: #417748 + * [Config] Populate the config-update template a bit more + + [ Andy Whitcroft ] + + * rebase to v2.6.31-rc9 + * [Config] update configs following rebase to v2.6.31-rc9 + * [Config] update ports configs following rebase to v2.6.31-rc9 + + [ Colin Ian King ] + + * SAUCE: wireless: hostap, fix oops due to early probing interrupt + - LP: #254837 + + [ Jerone Young ] + + * [Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) + white-list + - LP: #281732 + + [ John Johansen ] + + * SAUCE: AppArmor: Fix profile attachment for regexp based profile names + - LP: #419308 + * SAUCE: AppArmor: Return the correct error codes on profile + addition/removal + - LP: #408473 + * SAUCE: AppArmor: Fix OOPS in profile listing, and display full list + - LP: #408454 + * SAUCE: AppArmor: Fix mapping of pux to new internal permission format + - LP: #419222 + * SAUCE: AppArmor: Fix change_profile failure + - LP: #401931 + * SAUCE: AppArmor: Tell git to ignore generated include files + - LP: #419505 + + [ Stefan Bader ] + + * [Upstream] acpi: video: Loosen strictness of video bus detection code + - LP: #333386 + * SAUCE: Remove ov511 driver from ubuntu subdirectory + + [ Tim Gardner ] + + * [Config] Exclude char-modules from non-x86 udeb creation + * SAUCE: Notify the ACPI call chain of AC events + * [Config] CONFIG_SATA_VIA=m + - LP: #403385 + * [Config] Build in all phylib support modules. + * [Config] Don't fail when sub-flavour files are missing + - LP: #423426 + * [Config] Set CONFIG_LSM_MMAP_MIN_ADDR=0 + - LP: #423513 + + [ Upstream ] + + * Rebased against v2.6.31-rc9 + + -- Andy Whitcroft Mon, 07 Sep 2009 11:33:45 +0100 + +linux (2.6.31-9.29) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] agp/intel: support for new chip variant of IGDNG mobile + - LP: #419993 + * [Config] d-i/modules: Add new char-modules file, initialize with + intel-agp + - LP: #420605 + + [ Upstream ] + + * Rebased against 2.6.31-rc8 plus some inotify regression patches: + up through git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + adda766193ea1cf3137484a9521972d080d0b7af. + + -- Tim Gardner Fri, 28 Aug 2009 06:31:30 -0600 + +linux (2.6.31-8.28) karmic; urgency=low + + [ Ike Panhc ] + + * [Config] Let nic-shared-modules depends on crypto-modules + - LP: #360966 + + [ Leann Ogasawara ] + + * [Upstream] (drop after 2.6.31) drm/i915: increase default latency + constant + - LP: #412492 + + [ Mario Limonciello ] + + * [Upstream]: (drop after 2.6.31) dell-laptop: don't change softblock + status if HW switch is disabled + - LP: #418721 + * [Upstream]: (drop after 2.6.31) compal-laptop: Add support for known + Compal made Dell laptops + * [Upstream]: (drop after 2.6.31) compal-laptop: Replace sysfs support + with rfkill support + + [ Tim Gardner ] + + * [Config] Add acpiphp to virtual sub-flavour + - LP: #364916 + * Drop KSM patch set for now because of instabilities with encrypted swap. + - LP: #418781 + + -- Tim Gardner Wed, 26 Aug 2009 08:14:26 -0600 + +linux (2.6.31-7.27) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] updateconfigs updateportsconfigs after 2.6.31-rc7 rebase + * SAUCE: (drop after 2.6.31) Added KSM from mmotm-2009-08-20-19-18 + Replaces previous ksm patches from 2.6.31-6.25 + * [Config] KSM=y + + [ Upstream ] + + * Rebased against v2.6.31-rc7 + + -- Tim Gardner Sat, 22 Aug 2009 20:32:11 -0600 + +linux (2.6.31-6.26) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_AUFS_BR_RAMFS + - LP: #414738 + * split out debian directory ready for abstraction + * add printdebian target to find branch target + * abstracted debian -- debian/files is not abstracted + * abstracted debian -- packages must be built in debian/ + * abstracted debian -- kernel-wedge needs to work in debian/ + * abstracted debian -- ensure we install the copyright file + * abstracted-debian -- drop the debian directories from headers + * abstracted-debian -- drop the debian directories from headers part 2 + * SAUCE: ubuntu-insert-changes -- follow abstracted debian + * [Upstream] aoe: ensure we initialise the request_queue correctly V2 + - LP: #410198 + + [ Luke Yelavich ] + + * [Config] Ports: Disable CONFIG_CPU_FREQ_DEBUG on powerpc-smp + * [Config] Ports: Re-enable windfarm modules on powerpc64-smp + - LP: #413150 + * [Config] Ports: Build all cpu frequency scaling governors into ports + kernels + * [Config] Ports: Build ext2 and ext3 modules into ports kernels + * [Config] Ports: CONFIG_PACKET=y for all ports kernels + * [Config] Ports: Enable PS3 network driver + + [ Stefan Bader ] + + * abstracted debian -- call $(DEBIAN)/rules using make + + [ Tim Gardner ] + + * [Config] Abstract the debian directory + * SAUCE: Improve error reporting in postinst + - LP: #358564 + + -- Tim Gardner Sun, 16 Aug 2009 20:33:28 -0600 + +linux (2.6.31-6.25) karmic; urgency=low + + [ Andy Whitcroft ] + + * script to generate Ubuntu changes from changelog + * [Config] standardise ANDROID options + * [Config] standardise CONFIG_ATM as module + * [Config] standardise CONFIG_LIB80211 as module + * [Config] disable CONFIG_PRINT_QUOTA_WARNING + * [Config] set CONFIG_CRAMFS as module + * [Config] enable CONFIG_DAB and modules + * [Config] set CONFIG_MAC80211_HWSIM as module + * [Config] set CONFIG_NET_CLS_FLOW as module + * [Config] set CONFIG_NF_CONNTRACK_SANE as module + * [Config] set CONFIG_NF_CT_PROTO_DCCP as module + * [Config] set CONFIG_RTC_DRV_DS1511 as module + * [Config] set CONFIG_RTC_DRV_R9701 as module + * [Config] set CONFIG_RTC_DRV_S35390A as module + * [Config] set CONFIG_TOIM3232_DONGLE as module + * [Config] standardise CONFIG_USB_MIDI_GADGET as module + * [Config] standardise CONFIG_USB_G_PRINTER as module + * [Config] standardise CONFIG_USB_SERIAL_IR as module + * [Config] set CONFIG_USB_SERIAL_IUU as module + * [Config] standardise CONFIG_USB_STORAGE_CYPRESS_ATACB as module + * [Config] standardise CONFIG_USB_STORAGE_ONETOUCH as module + * cleanup remains of dm-loop + * drop thinkpad ec and smapi support + * drop appleir + * [Config] update configs following rebase to v2.6.31-rc6 + * rebase to v2.6.31-rc6 + + [ Hugh Dickins ] + + * SAUCE: ksm patch 1, drop after 2.6.31 + * SAUCE: ksm patch 2, drop after 2.6.31 + * SAUCE: ksm patch 3, drop after 2.6.31 + * SAUCE: ksm patch 4, drop after 2.6.31 + * SAUCE: ksm patch 5, drop after 2.6.31 + * SAUCE: ksm patch 7, drop after 2.6.31 + + [ Izik Eidus ] + + * SAUCE: ksm patch 0, drop after 2.6.31 + * SAUCE: ksm patch 6, drop after 2.6.31 + * SAUCE: ksm patch 8, drop after 2.6.31 + * SAUCE: ksm patch 9, drop after 2.6.31 + + [ Luke Yelavich ] + + * [Config] Ports: Re-add PS3 modules to udebs + + [ Michael Casadevall ] + + * [Config] Update SPARC config and d-i files to reflect what can be built + + [ Tim Gardner ] + + * [Config] Removed armel package support + * [Config] Enabled CONFIG_KSM=y + + [ Upstream Kernel Changes ] + + * Rebased against v2.6.31-rc6 + * ARM: Cleanup: Revert "ARM: Add more cache memory types macros" + * ARM: Cleanup: Revert "Do not use OOB with MLC NAND" + * ARM: Cleanup: Revert "ARM: Make ARM arch aware of ubuntu/ drivers" + * ARM: Cleanup: Revert "ARM: IMX51: Make video capture drivers compile" + * ARM: Cleanup: Revert "ARM: IMX51: Fix isl29003 HWMON driver for i2c + changes" + * ARM: Cleanup: Revert "ARM: IMX51: IPU irq handler deadlock fix" + * ARM: Cleanup: Revert "ARM: IMX51: Babbage 2.5 needs a different system + revision" + * ARM: Cleanup: Revert "ARM: IMX51: Compile-in the IMX51 cpufreq driver + by default" + * ARM: Cleanup: Revert "ARM: IMX51: Enable ZONE_DMA for ARCH_MXC" + * ARM: Cleanup: Revert "ARM: IMX51: Make ARCH_MXC auto-enable + ARCH_MXC_CANONICAL" + * ARM: Cleanup: Revert "ARM: IMX51: Unconditionally disable + CONFIG_GPIOLIB" + * ARM: Cleanup: Revert "ARM: IMX51: Minimal changes for USB to work on + 2.6.31" + * ARM: Cleanup: Revert "ARM: IMX51: Fix plat-mxc/timer.c to handle imx51" + * ARM: Cleanup: Revert "ARM: IMX51: Make it compile." + * ARM: Cleanup: Revert "ARM: IMX51: Clean-up the craziness of including + mxc_uart.h _everywhere_" + * ARM: Cleanup: Revert "ARM: IMX51: Move board-mx51* header files to the + correct location" + * ARM: Cleanup: Revert "ARM: IMX51: Changed from snd_card_new to + snd_card_create" + * ARM: Cleanup: Revert "ARM: IMX51: Fix up merge error in Kconfig" + * ARM: Cleanup: Revert "ARM: IMX51: mxc_timer_init prototype" + * ARM: Cleanup: Revert "ARM: IMX51: Removed the mxc_gpio_port structure." + * ARM: Cleanup: Revert "ARM: IMX51: Added external declaration for + mxc_map_io." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: snd_soc_machine structure replaced + with snd_soc_card." + * ARM: Cleanup: Revert "ARM: IMX51: codec structure was moved to the card + structure" + * ARM: Cleanup: Revert "ARM: IMX51: Hack to add defines for + DMA_MODE_READ/WRITE/MASK" + * ARM: Cleanup: Revert "ARM: IMX51: Add SoC and board support for + Freescale mx51 platform" + * Driver core: add new device to bus's list before probing + * [Upstream] (drop after 2.6.31) ALSA: hda - Reduce click noise at + power-saving + - LP: #381693, #399750, #380892 + + -- Andy Whitcroft Fri, 14 Aug 2009 11:32:23 +0100 + +linux (2.6.31-5.24) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Make video capture drivers compile + * [Config] IMX51: Config updates + + [ Andy Whitcroft ] + + * remove leftovers of dm-bbr + + [ Leann Ogasawara ] + + * Add pata_cs5535 to pata-modules + - LP: #318805 + + [ Luke Yelavich ] + + * [Config] CONFIG_PPC64=y for powerpc64-smp + * [Config] Set the maximum number of CPUs to 1024 for powerpc64-smp + * [Config] CONFIG_PPC_PS3=y for powerpc64-smp + * [Config] CONFIG_PPC_MAPLE=y on powerpc64-smp + * [Config] CONFIG_PPC_PASEMI=y on powerpc64-smp + * [Config] CONFIG_CPU_FREQ_PMAC64=y on powerpc64-smp + * [Config] Enable all PS3 drivers in powerpc64-smp + + [ Mario Limonciello ] + + * LIRC -- fix lirc-i2c 2.6.31 compilation + + [ Matthew Garrett ] + + * [Upstream] dell-laptop: Fix rfkill state queries + + [ Tim Gardner ] + + * [Config] Ignore armel ABI and module changes + * [Config] Update configs after rebase against 2.6.31-rc5 + + [ Upstream ] + + * Rebased to 2.6.31-rc5 + + -- Andy Whitcroft Tue, 28 Jul 2009 10:10:09 +0100 + +linux (2.6.31-4.23) karmic; urgency=low + + [ Andy Whitcroft ] + + * AUFS -- update to aufs2-30 20090727 + * [Config] enable AUFS FUSE support + + [ Luke Yelavich ] + + * [Config] CONFIG_JFS_FS=m on sparc + + [ Tim Gardner ] + + * [Upstream] dell-laptop: Fix rfkill state setting. + + -- Andy Whitcroft Mon, 27 Jul 2009 11:11:47 +0100 + +linux (2.6.31-4.22) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Add SoC and board support for Freescale mx51 platform + * ARM: IMX51: Move board-mx51* header files to the correct location + * ARM: IMX51: Clean-up the craziness of including mxc_uart.h _everywhere_ + * ARM: IMX51: Make it compile. + * ARM: IMX51: Unconditionally disable CONFIG_GPIOLIB + * ARM: IMX51: Make ARCH_MXC auto-enable ARCH_MXC_CANONICAL + * ARM: IMX51: Enable ZONE_DMA for ARCH_MXC + * ARM: IMX51: Compile-in the IMX51 cpufreq driver by default + * ARM: IMX51: Fix isl29003 HWMON driver for i2c changes + * ARM: USB: musb: Refer to musb_otg_timer_func under correct #ifdef + * ARM: staging: udlfb: Add vmalloc.h include + * UBUNTU [Config]: Bring imx51 config upto date with other flavours + + [ Brad Figg ] + + * ARM: IMX51: Hack to add defines for DMA_MODE_READ/WRITE/MASK + * ARM: IMX51: codec structure was moved to the card structure + * ARM: IMX51: snd_soc_machine structure replaced with snd_soc_card. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Added external declaration for mxc_map_io. + * ARM: IMX51: Removed the mxc_gpio_port structure. + * ARM: IMX51: mxc_timer_init prototype + * ARM: IMX51: Fix up merge error in Kconfig + * ARM: IMX51: Changed from snd_card_new to snd_card_create + + [ Dinh Nguyen ] + + * ARM: IMX51: Fix plat-mxc/timer.c to handle imx51 + * ARM: IMX51: Minimal changes for USB to work on 2.6.31 + * ARM: IMX51: Babbage 2.5 needs a different system revision + * ARM: IMX51: IPU irq handler deadlock fix + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_CAN=m + - LP: #327243 + * [Config] Enabled CONFIG_SERIAL=m + - LP: #397189 + + -- Tim Gardner Fri, 24 Jul 2009 06:19:10 -0600 + +linux (2.6.31-4.21) karmic; urgency=low + + [ Amit Kucheria ] + + * dm-raid-4-5: Add missing brackets around test_bit() + + [ John Johansen ] + + * AppArmor: Fix change_profile failing lpn401931 + * AppArmor: Fix determination of forced AUDIT messages. + * AppArmor: Fix oops in auditing of the policy interface offset + + -- Andy Whitcroft Thu, 23 Jul 2009 19:18:30 +0100 + +linux (2.6.31-4.20) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: iscsitarget -- update to SVN revision r214 + * SAUCE: iscsitarget -- renable driver + * [Config] consolidate lpia/lpia and i386/generic configs + * [Config] enable CRYPTO modules for all architectures + * [Config] enable cryptoloop + * [Config] enable various filesystems for armel + * [Config] sync i386 generic and generic-pae + * [Config] add the 386 (486 processors and above) flavour + * [Config] re-set DEFAULT_MMAP_MIN_ADDR + - LP: #399914 + * add genconfigs/genportsconfigs to extract the built configs + * updateconfigs -- alter concatenation order allow easier updates + * intelfb -- INTELFB now conflicts with DRM_I915 + * printchanges -- rebase tree does not have stable tags use changelog + * AppArmor: fix argument size missmatch on 64 bit builds + + [ Ike Panhc ] + + * Ship bnx2x firmware in nic-modules udeb + - LP: #360966 + + [ Jeff Mahoney ] + + * AppArmor: fix build failure on ia64 + + [ John Johansen ] + + * AppArmour: ensure apparmor enabled parmater is off if AppArmor fails to + initialize. + * AppArmour: fix auditing of domain transitions to include target profile + information + * AppArmor: fix C99 violation + * AppArmor: revert reporting of create to write permission. + * SAUCE: Add config option to set a default LSM + * [Config] enable AppArmor by default + * AppArmor: Fix NULL pointer dereference oops in profile attachment. + + [ Keith Packard ] + + * SAUCE: drm/i915: Allow frame buffers up to 4096x4096 on 915/945 class + hardware + - LP: #351756 + + [ Luke Yelavich ] + + * [Config] add .o files found in arch/powerpc/lib to all powerpc kernel + header packages + - LP: #355344 + + [ Michael Casadevall ] + + * [Config] update SPARC config files to allow success build + + [ Scott James Remnant ] + + * SAUCE: trace: add trace_event for the open() syscall + + [ Stefan Bader ] + + * SAUCE: jfs: Fix early release of acl in jfs_get_acl + - LP: #396780 + + [ Tim Gardner ] + + * [Upstream] Fix Soltech TA12 volume hotkeys not sending key release + - LP: #397499 + * [Upstream] USB Option driver - Add USB ID for Novatel MC727/U727/USB727 + refresh + - LP: #365291 + * [Config] SSB/B44 are common across all arches/flavours. + + [ Upstream ] + + * Rebased to 2.6.31-rc4 + + -- Andy Whitcroft Thu, 23 Jul 2009 08:41:39 +0100 + +linux (2.6.31-3.19) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] Disabled NDISWRAPPER" + * ndiswrapper -- fix i386 compilation failures on cmpxchg8b + * AUFS -- export various core functions + * AUFS -- export various core functions -- fixes + * AUFS -- core filesystem + * AUFS -- track changes in v2.6.31 + * [Config] Enable AUFS + * droppped 'iwl3945: do not send scan command if channel count zero' as it + is already upstream but failed to auto-drop on rebase. + + [ Eric Paris ] + + * SAUCE: fsnotify: use def_bool in kconfig instead of letting the user + choose + * SAUCE: inotify: check filename before dropping repeat events + * SAUCE: fsnotify: fix inotify tail drop check with path entries + + -- Andy Whitcroft Tue, 14 Jul 2009 12:52:55 +0100 + +linux (2.6.31-3.18) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "Add splice-2.6.23.patch from AUFS to export a symbol needed by + AUFS" + * Revert "Add put_filp.patch from AUFS to export a symbol needed by AUFS" + * Revert "Add sec_perm-2.6.24.patch from AUFS - export + security_inode_permission" + * clear out left over AUFS files and modifications + + [ Luke Yelavich ] + + * [Config] Enable CONFIG_USB_ISP116X_HCD on sparc + * SAUCE: Explicitly include header files to allow apparmor to build on + powerpc + * [Config] Enable CONFIG_BLK_DEV_IDECD on powerpc + + [ Tim Gardner ] + + * [Config] Dropped ubuntu/misc/wireless/acx + * [Config] Disabled NDISWRAPPER until the compile issues are fixed. + + [ Upstream ] + + * Rebased to 2.6.31-rc3 + + -- Andy Whitcroft Fri, 10 Jul 2009 18:59:33 +0100 + +linux (2.6.31-2.17) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_BLK_DEV_CRYPTOLOOP=m for sparc + * compcache -- remove redundant Kconfig entries part 2 + * compcache -- clean up CCFLAGS declarations + * [Config] enable AppArmor + * AppArmor: fix operator precidence issue in as_path_link + + [ John Johansen ] + + * AppArmor security module + * AppArmor: Correct mapping of file permissions. + * AppArmor: Turn auditing of ptrace on + + [ Luke Yelavich ] + + * [Config] disable CONFIG_DM_RAID45 on powerpc + + -- Andy Whitcroft Fri, 10 Jul 2009 15:02:05 +0100 + +linux (2.6.31-2.16) karmic; urgency=low + + [ Andy Whitcroft ] + + * compcache -- remove redundant Kconfig entries + added ignore and ignore.modules for all arches since the compcache update + changes the modules names as well as some compcache ABI values. + + [ Manoj Iyer ] + + * SAUCE: updated dm-raid45 module version to 2009.04.24 (2.6.30-rc3) + * SAUCE: update compcache version to 0.5.3 + + [ Tim Gardner ] + + * [Config]: Fix sparc FTBS by adding ignore.modules + + -- Tim Gardner Mon, 06 Jul 2009 13:35:29 -0600 + +linux (2.6.31-2.15) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: default ATI Radeon KMS to off until userspace catches up + * [Config] Update configs following rebase to 2.6.31-rc2 + * [Config] update ports configs following update to 2.6.31-rc2 + + [ Luke Yelavich ] + + * [Config] powerpc - Disable CONFIG_RDS + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + [ Upstream Kernel Changes ] + + * rebased to mainline 2.6.31-rc2 + + -- Andy Whitcroft Sat, 04 Jul 2009 17:39:13 +0100 + +linux (2.6.31-1.14) karmic; urgency=low + + [ Andy Whitcroft ] + + * update ndiswrapper to 1.55 + * remove leftovers of gfs + * [Config] powerpc: enable CONFIG_PPC_DISABLE_WERROR + + [ Luke Yelavich ] + + * [Config] re-enable and build the ide-pmac driver into powerpc kernels + * [Config] Build the ServerWorks Frodo / Apple K2 SATA driver into the + kernel + + [ Manoj Iyer ] + + * Remove snd-bt-sco ubuntu driver + + [ Michael Casadevall ] + + * [Config] updates ia64 config and d-i folders to allow succesful build + * [Config] Update powerpc and sparc for 2.6.31 + + [ Upstream Kernel Changes ] + + * intel-iommu: fix Identity Mapping to be arch independent + - LP: #384695 + * ACPI: video: prevent NULL deref in acpi_get_pci_dev() + + -- Andy Whitcroft Tue, 30 Jun 2009 17:47:32 +0100 + +linux (2.6.31-1.13) karmic; urgency=low + + [ Andy Whitcroft ] + + * REBASE: rebased to mainline 2.6.31-rc1 + - "UBUNTU: SAUCE: UHCI USB quirk for resume" + no longer applies, using deprecated interfaces, LPIA only, dropped + - "UBUNTU: SAUCE: Mask off garbage in Dell WMI scan code data" + changes now upstream, dropped + * [Config] Update configs following rebase to 2.6.31-rc1 + * [Config] update ports configs following update to 2.6.31-rc1 + + * [Config] disable broken staging driver CONFIG_STLC45XX + * SAUCE: fix compcache to use updates accessors + * [Config] disable staging driver CONFIG_VT6655 + * SAUCE: fix DRDB to use updates accessors + * [Disable] ndiswrapper needs update + * [Disable] LIRC I2C needs update + * [Disable] CONFIG_LENOVO_SL_LAPTOP needs update + * [Config] disable I2C_DESIGNWARE does not compile + * [Config] disable CONFIG_TLSUP for lpia + * [Config] disable CONFIG_FB_UDL for arm + * SAUCE: disable adding scsi headers to linux-libc-dev + + [ Mario Limonciello ] + + * SAUCE: Add LIRC drivers + + -- Andy Whitcroft Thu, 25 Jun 2009 12:06:22 +0100 + +linux (2.6.30-10.12) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] split out the ports configs into their own family + * [Config] update configs following introduction of ports family + + [ Upstream Kernel Changes ] + + * Revert "Rename linux-doc-PKGVER to linux-doc and clean up its + description". Fixes linux-doc package name conflicts for now. + - LP: #382115 + + -- Tim Gardner Mon, 22 Jun 2009 09:17:14 -0600 + +linux (2.6.30-10.11) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Comment splitconfig.pl and misc cleanup + * [Config] Rename all configs to the new naming scheme + * [Config] Splitconfig rework + * [Config] Rename scripts/misc/oldconfig to kernelconfig + * [Config] Fix build system for new config split + * [Config] Run updateconfigs after the splitconfig rework + + [ Andy Whitcroft ] + + * Revert "SAUCE: Default to i915.modeset=0 if CONFIG_DRM_I915_KMS=y" + * [Config] standardise CONFIG_STAGING=y + * [Config] standardise CONFIG_RD_LZMA=y + * [Config] CONFIG_PCI_IOV=y + * [Config] CONFIG_PCI_STUB=m + * [Config] merge kernel configs more agressively + + [ Colin Watson ] + + * [Config] Run kernel-wedge in $(builddir) rather than at the top level + * [Config] Add support for including firmware in udebs + * [Config] Ship bnx2 firmware in nic-modules udeb + - LP: #384861 + + [ Luke Yelavich ] + + * [Config] ports - Import of ports architectures into kernel packaging + infrastructure + * [Config] ports - Do not update ports kernel configurations by default + * [Config] ports - Disable ABI checking for ports architectures + * [Config] ports - Build drivers in ubuntu sub-directory on powerpc + * [Config] ports - Add control.d/vars.* files for ports architectures + * [Config] ports - Add ports architectures for linux-libc-dev + * [Config] ports - Create powerpc specific message-modules and + block-modules udebs + * [Config] ports - Add configuration files for ports architectures + + [ Manoj Iyer ] + + * [Config] Enable CONFIG_BLK_DEV_AEC62XX=m for amd64 and i386 + - LP: #329864 + + [ Michael Casadevall ] + + * [Config] ports - Fix compression of kernels + + [ Stefan Bader ] + + * [Upstream] mmc: prevent dangling block device from accessing stale + queues + - LP: #383668 + + [ Tim Gardner ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + * [Config] Implement i386 generic and generic-pae flavours + * [Config] ports - Add control info after integrating ports arches + * [Config] Removed auto-generated files from git + * [Config] Added netxen_nic to nic-modules + - LP: #389603 + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + -- Tim Gardner Mon, 15 Jun 2009 14:38:26 -0600 + +linux (2.6.30-9.10) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_SECURITY_TOMOYO=y (amd64, i386, lpia) + * [Config] CONFIG_KEXEC_JUMP=y (amd64, lpia) + * [Config] CONFIG_LENOVO_SL_LAPTOP=m (amd64, lpia) + * [Config] CONFIG_POHMELFS_CRYPTO=y (i386, amd64) + * [Config] CONFIG_SERIAL_MAX3100=m (i386, amd64, lpia) + * [Config] CONFIG_VIDEO_GO7007=m (amd64, i386) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30 final + + -- Andy Whitcroft Fri, 05 Jun 2009 11:42:53 +0100 + +linux (2.6.30-8.9) karmic; urgency=low + + [ Andy Whitcroft ] + + * Config update removed the following options: + CONFIG_EDAC_AMD8111=m + CONFIG_EDAC_AMD8131=m + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc8 + + -- Andy Whitcroft Wed, 03 Jun 2009 09:21:13 +0100 + +linux (2.6.30-7.8) karmic; urgency=low + + [ Andy Whitcroft ] + + * Enabled NEW configration options: + Paravirtualization layer for spinlocks (PARAVIRT_SPINLOCKS) [N/y/?] Y + Cisco FNIC Driver (FCOE_FNIC) [N/m/y/?] M + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc7 + + -- Andy Whitcroft Sat, 23 May 2009 23:47:24 +0100 + +linux (2.6.30-6.7) karmic; urgency=low + + [ Andy Whitcroft ] + + * Dropped: UBUNTU: SAUCE: input: Blacklist digitizers from joydev.c (now + upstream) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc6 + + -- Andy Whitcroft Mon, 18 May 2009 18:05:54 +0100 + +linux (2.6.30-5.6) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enable Keyspan USB serial device firmware in kernel module + - LP: #334285 + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc5 + + -- Tim Gardner Mon, 11 May 2009 12:02:16 -0600 + +linux (2.6.30-4.5) karmic; urgency=low + + [ Colin Watson ] + + * Build-Conflict with findutils (= 4.4.1-1ubuntu1), to avoid + /usr/include/asm/* going missing + - LP: #373214 + + -- Stefan Bader Fri, 08 May 2009 11:09:08 +0200 + +linux (2.6.30-3.4) karmic; urgency=low + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + + [ Stefan Bader ] + + * SAUCE: input: Blacklist digitizers from joydev.c + - LP: #300143 + + -- Tim Gardner Fri, 01 May 2009 14:00:42 -0600 + +linux (2.6.30-2.3) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enabled CC_STACKPROTECTOR=y for all x86en + - LP: #369152 + * SAUCE: Default to i915_modeset=0 if CONFIG_DRM_I915_KMS=y + * [Config] CONFIG_DRM_I915_KMS=y + * [Config] Set CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR to appropriate ARCH + minimums + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc4 + + -- Tim Gardner Thu, 30 Apr 2009 09:17:05 -0600 + +linux (2.6.30-1.2) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] armel: disable staging drivers, fixes FTBS + * [Config] armel imx51: Disable CONFIG_MTD_NAND_MXC, fixes FTBS + + [ Upstream Kernel Changes ] + + * mpt2sas: Change reset_type enum to avoid namespace collision. + Submitted upstream. + + -- Tim Gardner Tue, 28 Apr 2009 16:54:41 -0600 + +linux (2.6.30-1.1) karmic; urgency=low + + * Initial release after rebasing against v2.6.30-rc3 + + -- Tim Gardner Thu, 12 Mar 2009 19:16:07 -0600 --- linux-3.2.0.orig/debian/control.stub +++ linux-3.2.0/debian/control.stub @@ -0,0 +1,625 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.8.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, dpkg (>= 1.16.0~ubuntu4), util-linux +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Build-Conflicts: findutils (= 4.4.1-1ubuntu1) +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-precise.git + +Package: linux-source-3.2.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 3.2.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.2.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-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.2.0 + This package provides the various documents in the 3.2.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-tools-common +Architecture: all +Section: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.2.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.2.0. + +Package: linux-headers-3.2.0-54 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-3 +Description: Header files related to Linux kernel version 3.2.0 + This package provides kernel header files for version 3.2.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc ppc64 armel armhf +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +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-tools-3.2.0-54 +Architecture: i386 amd64 powerpc ppc64 armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.2.0-54 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.2.0-54 on + 32 bit x86. + + +Package: linux-image-3.2.0-54-generic +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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-image-extra-3.2.0-54-generic +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-generic +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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-3.2.0-54-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 SMP + This package provides kernel header files for version 3.2.0 on + 32 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 SMP + This package provides a kernel debug image for version 3.2.0 on + 32 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-image-3.2.0-54-generic-pae +Architecture: i386 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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 32 bit desktop or server systems with more than 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-generic-pae +Architecture: i386 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-generic-pae +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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 32 bit desktop or server systems with more than 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 SMP + This package provides kernel header files for version 3.2.0 on + 32 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 SMP + This package provides a kernel debug image for version 3.2.0 on + 32 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-image-3.2.0-54-highbank +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on Calxeda highbank ARM Server + This package contains the Linux kernel image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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 Calxeda highbank processors. + . + Targeted towards Calxeda highbank ARM Server + . + You likely do not want to install this package directly. Instead, install + the linux-highbank meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-highbank +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-highbank +Description: Linux kernel image for version 3.2.0 on Calxeda highbank ARM Server + This package contains the Linux kernel image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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 Calxeda highbank processors. + . + Targeted towards Calxeda highbank ARM Server + . + You likely do not want to install this package directly. Instead, install + the linux-highbank meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-highbank +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on Calxeda highbank ARM Server + This package provides kernel header files for version 3.2.0 on + Calxeda highbank ARM Server. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-highbank-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on Calxeda highbank ARM Server + This package provides a kernel debug image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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-image-3.2.0-54-omap +Architecture: armel armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package contains the Linux kernel image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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 TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-omap +Architecture: armel armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-omap +Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package contains the Linux kernel image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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 TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-omap +Architecture: armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package provides kernel header files for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-omap-dbgsym +Architecture: armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package provides a kernel debug image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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-image-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 64-bit PowerPC 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 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-powerpc64-smp +Description: Linux kernel image for version 3.2.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 64-bit PowerPC 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 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 64-bit PowerPC SMP + This package provides kernel header files for version 3.2.0 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-powerpc64-smp-dbgsym +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 3.2.0 on + 64-bit PowerPC 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-image-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 32-bit PowerPC 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 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-powerpc-smp +Description: Linux kernel image for version 3.2.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 32-bit PowerPC 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 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32-bit PowerPC SMP + This package provides kernel header files for version 3.2.0 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 3.2.0 on + 32-bit PowerPC 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-image-3.2.0-54-virtual +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 Virtual Guests + This package contains the Linux kernel image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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 Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-virtual +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-virtual +Description: Linux kernel image for version 3.2.0 on 32 bit x86 Virtual Guests + This package contains the Linux kernel image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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 Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 Virtual Guests + This package provides kernel header files for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 Virtual Guests + This package provides a kernel debug image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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. --- linux-3.2.0.orig/debian/debian.env +++ linux-3.2.0/debian/debian.env @@ -0,0 +1 @@ +DEBIAN=debian.master --- linux-3.2.0.orig/debian/tools/x86_energy_perf_policy +++ linux-3.2.0/debian/tools/x86_energy_perf_policy @@ -0,0 +1,16 @@ +#!/bin/bash +full_version=`uname -r` + +# Removing flavour from version i.e. generic or server. +flavour_abi=${full_version#*-} +flavour=${flavour_abi#*-} +version=${full_version%-$flavour} +x86_energy_perf_policy="x86_energy_perf_policy_$version" + +if ! which "$x86_energy_perf_policy" > /dev/null; then + echo "$x86_energy_perf_policy not found" >&2 + echo "You may need to install linux-tools-$version" >&2 + exit 2 +fi + +exec "$x86_energy_perf_policy" "$@" --- linux-3.2.0.orig/debian/tools/turbostat +++ linux-3.2.0/debian/tools/turbostat @@ -0,0 +1,16 @@ +#!/bin/bash +full_version=`uname -r` + +# Removing flavour from version i.e. generic or server. +flavour_abi=${full_version#*-} +flavour=${flavour_abi#*-} +version=${full_version%-$flavour} +turbostat="turbostat_$version" + +if ! which "$turbostat" > /dev/null; then + echo "$turbostat not found" >&2 + echo "You may need to install linux-tools-$version" >&2 + exit 2 +fi + +exec "$turbostat" "$@" --- linux-3.2.0.orig/debian/tools/perf +++ linux-3.2.0/debian/tools/perf @@ -0,0 +1,16 @@ +#!/bin/bash +full_version=`uname -r` + +# Removing flavour from version i.e. generic or server. +flavour_abi=${full_version#*-} +flavour=${flavour_abi#*-} +version=${full_version%-$flavour} +perf="perf_$version" + +if ! which "$perf" > /dev/null; then + echo "$perf not found" >&2 + echo "You may need to install linux-tools-$version" >&2 + exit 2 +fi + +exec "$perf" "$@" --- linux-3.2.0.orig/debian/tools/generic +++ linux-3.2.0/debian/tools/generic @@ -0,0 +1,16 @@ +#!/bin/bash +full_version=`uname -r` + +# 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 + echo "$this not found" >&2 + echo "You may need to install linux-tools-$version" >&2 + exit 2 +fi + +exec "$this" "$@" --- linux-3.2.0.orig/debian/source/format +++ linux-3.2.0/debian/source/format @@ -0,0 +1 @@ +1.0 --- linux-3.2.0.orig/debian/stamps/keep-dir +++ linux-3.2.0/debian/stamps/keep-dir @@ -0,0 +1 @@ +Place holder --- linux-3.2.0.orig/debian/commit-templates/upstream-patch +++ linux-3.2.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-3.2.0.orig/debian/commit-templates/bumpabi +++ linux-3.2.0/debian/commit-templates/bumpabi @@ -0,0 +1,3 @@ +UBUNTU: Bump ABI + +Ignore: yes --- linux-3.2.0.orig/debian/commit-templates/external-driver +++ linux-3.2.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-3.2.0.orig/debian/commit-templates/config-updates +++ linux-3.2.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-3.2.0.orig/debian/commit-templates/newrelease +++ linux-3.2.0/debian/commit-templates/newrelease @@ -0,0 +1,3 @@ +UBUNTU: Start new release + +Ignore: yes --- linux-3.2.0.orig/debian/commit-templates/sauce-patch +++ linux-3.2.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-3.2.0.orig/debian/commit-templates/missing-modules +++ linux-3.2.0/debian/commit-templates/missing-modules @@ -0,0 +1,3 @@ +UBUNTU: build/modules: Add modules that have intentionally gone missing + +Ignore: yes --- linux-3.2.0.orig/debian/scripts/module-check +++ linux-3.2.0/debian/scripts/module-check @@ -0,0 +1,120 @@ +#!/usr/bin/perl -w + +$flavour = shift; +$prev_abidir = shift; +$abidir = shift; +$skipmodule = shift; + +print "II: Checking modules for $flavour..."; + +if (-f "$prev_abidir/ignore.modules" + or -f "$prev_abidir/$flavour.ignore.modules") { + print "explicitly ignoring modules\n"; + exit(0); +} + +if (not -f "$abidir/$flavour.modules" or not -f + "$prev_abidir/$flavour.modules") { + print "previous or current modules file missing!\n"; + print " $abidir/$flavour.modules\n"; + print " $prev_abidir/$flavour.modules\n"; + if (defined($skipmodule)) { + exit(0); + } else { + exit(1); + } +} + +print "\n"; + +my %modules; +my %modules_ignore; +my $missing = 0; +my $new = 0; +my $errors = 0; + +# See if we have any ignores +if (-f "$prev_abidir/../modules.ignore") { + my $ignore = 0; + open(IGNORE, "< $prev_abidir/../modules.ignore") or + die "Could not open $prev_abidir/../modules.ignore"; + print " reading modules to ignore..."; + while () { + chomp; + next if /\s*#/; + $modules_ignore{$_} = 1; + $ignore++; + } + close(IGNORE); + print "read $ignore modules.\n"; +} + +# Read new modules first +print " reading new modules..."; +$new_count = 0; +open(NEW, "< $abidir/$flavour.modules") or + die "Could not open $abidir/$flavour.modules"; +while () { + chomp; + $modules{$_} = 1; + $new_count++; +} +close(NEW); +print "read $new_count modules.\n"; + +# Now the old modules, checking for missing ones +print " reading old modules..."; +$old_count = 0; +open(OLD, "< $prev_abidir/$flavour.modules") or + die "Could not open $prev_abidir/$flavour.modules"; +while () { + chomp; + if (not defined($modules{$_})) { + print "\n" if not $missing; + $missing++; + if (not defined($modules_ignore{$_})) { + print " MISS: $_\n"; + $errors++; + } else { + print " MISS: $_ (ignored)\n"; + } + } else { + $modules{$_}++; + } + $old_count++; +} +close(OLD); +# Check for new modules +foreach $mod (keys(%modules)) { + if ($modules{$mod} < 2) { + print "\n" if not $missing and not $new; + print " NEW : $mod\n"; + $new++; + } +} +if ($new or $missing) { + print " read $old_count modules : new($new) missing($missing)\n"; +} else { + print "read $old_count modules.\n"; +} + + +# Let's see where we stand... +if ($errors) { + if (defined($skipmodule)) { + print "WW: Explicitly asked to ignore failures (probably not good)\n"; + } else { + print "EE: Missing modules (start begging for mercy)\n"; + exit 1 + } +} + +if ($new) { + print "II: New modules (you've been busy, wipe the poop off your nose)\n"; +} else { + print "II: No new modules (hope you're happy, slacker)\n"; +} + +print "II: Done\n"; + +exit(0); --- linux-3.2.0.orig/debian/scripts/config-check +++ linux-3.2.0/debian/scripts/config-check @@ -0,0 +1,401 @@ +#!/usr/bin/perl +# +# check-config -- check the current config for issues +# +use strict; + +my $P = 'check-config'; + +my $test = -1; +if ($ARGV[0] eq '--test') { + $test = $ARGV[1] + 0; +} elsif ($#ARGV != 4) { + die "Usage: $P \n"; +} + +my ($config, $arch, $flavour, $commonconfig, $warn_only) = @ARGV; + +my $checks = "$commonconfig/enforce"; +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; + +# Predicate execution engine. +sub pred_first { + my ($rest) = @_; + my $depth = 0; + my $off; + my $char; + my $pred; + + for ($off = 0; $off <= length($rest); $off++) { + $char = substr($rest, $off, 1); + if ($char eq '(') { + $depth++; + } elsif ($char eq ')') { + $depth--; + } elsif ($depth == 0 && $char eq '&') { + last; + } elsif ($depth == 0 && $char eq '|') { + last; + } + } + if ($depth > 0) { + die "$P: $rest: missing close parenthesis ')'\n"; + } elsif ($depth < 0) { + die "$P: $rest: missing open parenthesis '('\n"; + } + + ($pred, $rest) = (substr($rest, 0, $off), substr($rest, $off + 1)); + + $pred =~ s/^\s*//; + $pred =~ s/\s*$//; + + #print "pred<$pred> rest<$rest> char<$char>\n"; + ($pred, $rest, $char); +} + +sub pred_do { + my ($pred) = @_; + my (@a) = split(' ', $pred); + my $possible; + + if ($a[0] eq 'arch') { + die "$P: $pred: malformed -- $pred \n" if ($#a < 1); + for $possible (@a[1..$#a]) { + #print " *** ARCH<$flavour ?? $possible>\n"; + return 1 if ($arch eq $possible); + } + return 0; + } elsif ($a[0] eq 'flavour') { + die "$P: $pred: malformed -- $pred \n" if ($#a < 1); + for $possible (@a[1..$#a]) { + #print " *** FLAVOUR<$flavour ?? $a[1]>\n"; + return 1 if ($flavour eq $possible); + } + return 0; + } elsif ($a[0] eq 'value') { + die "$P: $pred: malformed -- $pred \n" if ($#a != 2); + #print " *** CHECK<$a[1] $a[2] ?? " . $values{$a[1]} . ">\n"; + return ($values{$a[1]} eq $a[2]); + } elsif ($a[0] eq 'exists') { + die "$P: $pred: malformed -- $pred \n" if ($#a != 1); + return (defined $values{$a[1]}); + } else { + die "$P: $pred: unknown predicate\n"; + } + return 1; +} +sub pred_exec { + my ($rest) = @_; + my $pred; + my $res; + my $sep; + + #print "pred_exec<$rest>\n"; + + ($pred, $rest, $sep) = pred_first($rest); + + # Leading ! implies inversion. + if ($pred =~ /^\s*!\s*(.*)$/) { + #print " invert<$1>\n"; + $res = !pred_exec($1); + + # Recurse left for complex expressions. + } elsif ($pred =~ /^\s*\((.*)\)\s*$/) { + #print " left<$1>\n"; + $res = pred_exec($1); + + # Check for common syntax issues. + } elsif ($pred eq '') { + if ($sep eq '&' || $sep eq '|') { + die "$P: $pred$rest: malformed binary operator\n"; + } else { + die "$P: $pred$rest: syntax error\n"; + } + + # A predicate, execute it. + } else { + #print " DO<$pred> sep<$sep>\n"; + $res = pred_do($pred); + } + + #print " pre-return res<$res> sep<$sep>\n"; + if ($sep eq '') { + # + + # Recurse right for binary operators -- note these are lazy. + } elsif ($sep eq '&' || $sep eq '|') { + #print " right<$rest> ? sep<$sep> res<$res>\n"; + if ($rest =~ /^\s*($|\||\&)/) { + die "$P: $pred$rest: malformed binary operator\n"; + } + if (($res && $sep eq '&') || (!$res && $sep eq '|')) { + #print " right<$rest>\n"; + $res = pred_exec($rest); + } + + } else { + die "$P: $pred$rest: malformed predicate\n"; + } + #print " return res<$res> sep<$sep>\n"; + return $res; +} + +# +# PREDICATE TESTS +# +my $test_total = 1; +my $test_good = 0; +sub pred_test { + my ($pred, $eres, $eerr) = @_; + my ($res, $err, $fail); + + $test_total++; + if ($test != 0 && $test != $test_total - 1) { + return; + } + + eval { + $res = pred_exec($pred); + }; + $err = $@; + chomp($err); + + $res = !!$res; + $eres = !!$eres; + + $fail = ''; + if (defined $eres && $res != $eres) { + $fail = "result missmatch, expected $eres returned $res"; + } + if (defined $eerr && $err eq '') { + $fail = "error missmatch, expected '$eerr' returned success"; + } elsif (defined $eerr && $err !~ /$eerr/) { + $fail = "error missmatch, expected '$eerr' returned '$err'"; + } elsif (!defined $eerr && $err ne '') { + $fail = "error missmatch, expected success returned '$err'"; + } + + if ($fail eq '') { + $test_good++; + } else { + print "$pred: $test_total: FAIL: $fail\n"; + } + #print "TEST<$pred> eres<$eres> eerr<$eerr> res<$res> err<$err>\n"; +} +if ($test >= 0) { + $arch = 'MYARCH'; + $flavour = 'MYFLAVOUR'; + %values = ( 'ENABLED' => 'y', 'DISABLED' => 'n' ); + + # Errors. + my $eunkn = 'unknown predicate'; + my $epred = 'malformed'; + my $eclose = 'missing close parenthesis'; + my $eopen = 'missing open parenthesis'; + my $ebinary = 'malformed binary operator'; + + # Basic predicate tests. + print "TEST: $test_total: basic predicate tests ...\n"; + + pred_test('nosuchcommand', undef, $eunkn); + pred_test('arch', undef, $epred); + pred_test('arch MYARCH', 1, undef); + pred_test('arch MYARCH NOTMYARCH', 1, undef); + pred_test('arch NOTMYARCH MYARCH', 1, undef); + pred_test('arch NOTMYARCH NOTMYARCH MYARCH', 1, undef); + pred_test('arch NOTMYARCH MYARCH NOTMYARCH', 1, undef); + pred_test('arch NOTMYARCH', 0, undef); + + pred_test('flavour', undef, $epred); + pred_test('flavour MYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR MYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR NOTMYFLAVOUR MYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR MYFLAVOUR NOTMYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR', 0, undef); + + pred_test('value', undef, $epred); + pred_test('value ENABLED', undef, $epred); + pred_test('value ENABLED ENABLED ENABLED', undef, $epred); + pred_test('value ENABLED y', 1, undef); + pred_test('value ENABLED n', 0, undef); + pred_test('value DISABLED n', 1, undef); + pred_test('value DISABLED y', 0, undef); + + pred_test('exists', undef, $epred); + pred_test('exists ENABLED ENABLED', undef, $epred); + pred_test('exists ENABLED', 1, undef); + pred_test('exists DISABLED', 1, undef); + pred_test('exists MISSING', 0, undef); + + print "TEST: $test_total: inversion tests ...\n"; + pred_test('!exists ENABLED', 0, undef); + pred_test('!exists MISSING', 1, undef); + pred_test('!!exists ENABLED', 1, undef); + pred_test('!!exists MISSING', 0, undef); + pred_test('!!!exists ENABLED', 0, undef); + pred_test('!!!exists MISSING', 1, undef); + + print "TEST: $test_total: parentheses tests ...\n"; + pred_test('(exists ENABLED)', 1, undef); + pred_test('((exists ENABLED))', 1, undef); + pred_test('(((exists ENABLED)))', 1, undef); + pred_test('(exists MISSING)', 0, undef); + pred_test('((exists MISSING))', 0, undef); + pred_test('(((exists MISSING)))', 0, undef); + + pred_test('(!exists ENABLED)', 0, undef); + pred_test('((!exists ENABLED))', 0, undef); + pred_test('(((!exists ENABLED)))', 0, undef); + pred_test('(!exists MISSING)', 1, undef); + pred_test('((!exists MISSING))', 1, undef); + pred_test('(((!exists MISSING)))', 1, undef); + + pred_test('((!(exists ENABLED)))', 0, undef); + pred_test('((!(exists MISSING)))', 1, undef); + pred_test('(!((exists ENABLED)))', 0, undef); + pred_test('(!((exists MISSING)))', 1, undef); + pred_test('!(((exists ENABLED)))', 0, undef); + pred_test('!(((exists MISSING)))', 1, undef); + pred_test('!((!(exists ENABLED)))', 1, undef); + pred_test('!((!(exists MISSING)))', 0, undef); + pred_test('!(!(!(exists ENABLED)))', 0, undef); + pred_test('!(!(!(exists MISSING)))', 1, undef); + + pred_test('(', undef, $eclose); + pred_test('()(', undef, $eclose); + pred_test('(())(', undef, $eclose); + pred_test('((()))(', undef, $eclose); + pred_test('(()', undef, $eclose); + pred_test('((())', undef, $eclose); + pred_test('(((()))', undef, $eclose); + pred_test('(()()', undef, $eclose); + pred_test('((())()', undef, $eclose); + + pred_test(')', undef, $eopen); + pred_test('())', undef, $eopen); + pred_test('(()))', undef, $eopen); + pred_test('((())))', undef, $eopen); + + print "TEST: $test_total: binary and tests ...\n"; + + pred_test('exists ENABLED &', undef, $ebinary); + pred_test('& exists ENABLED', undef, $ebinary); + pred_test('exists ENABLED & & exists ENABLED', undef, $ebinary); + + pred_test('exists MISSING & exists MISSING', 0, undef); + pred_test('exists MISSING & exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists MISSING', 0, undef); + pred_test('exists ENABLED & exists ENABLED', 1, undef); + + pred_test('exists MISSING & exists MISSING & exists MISSING', 0, undef); + pred_test('exists MISSING & exists MISSING & exists ENABLED', 0, undef); + pred_test('exists MISSING & exists ENABLED & exists MISSING', 0, undef); + pred_test('exists MISSING & exists ENABLED & exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists MISSING & exists MISSING', 0, undef); + pred_test('exists ENABLED & exists MISSING & exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists ENABLED & exists MISSING', 0, undef); + pred_test('exists ENABLED & exists ENABLED & exists ENABLED', 1, undef); + + print "TEST: $test_total: binary or tests ...\n"; + + pred_test('exists ENABLED |', undef, $ebinary); + pred_test('| exists ENABLED', undef, $ebinary); + pred_test('exists ENABLED | | exists ENABLED', undef, $ebinary); + + pred_test('exists MISSING | exists MISSING', 0, undef); + pred_test('exists MISSING | exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists MISSING', 1, undef); + pred_test('exists ENABLED | exists ENABLED', 1, undef); + + pred_test('exists MISSING | exists MISSING | exists MISSING', 0, undef); + pred_test('exists MISSING | exists MISSING | exists ENABLED', 1, undef); + pred_test('exists MISSING | exists ENABLED | exists MISSING', 1, undef); + pred_test('exists MISSING | exists ENABLED | exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists MISSING | exists MISSING', 1, undef); + pred_test('exists ENABLED | exists MISSING | exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists ENABLED | exists MISSING', 1, undef); + pred_test('exists ENABLED | exists ENABLED | exists ENABLED', 1, undef); + + print "TEST: $test_total: binary or/and combination tests ...\n"; + + pred_test('exists MISSING | exists MISSING & exists MISSING', 0, undef); + pred_test('exists MISSING | exists MISSING & exists ENABLED', 0, undef); + pred_test('exists MISSING | exists ENABLED & exists MISSING', 0, undef); + pred_test('exists MISSING | exists ENABLED & exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists MISSING & exists MISSING', 1, undef); + pred_test('exists ENABLED | exists MISSING & exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists ENABLED & exists MISSING', 1, undef); + pred_test('exists ENABLED | exists ENABLED & exists ENABLED', 1, undef); + + print "TEST: $test_total: binary and/or combination tests ...\n"; + + pred_test('exists MISSING & exists MISSING | exists MISSING', 0, undef); + pred_test('exists MISSING & exists MISSING | exists ENABLED', 0, undef); + pred_test('exists MISSING & exists ENABLED | exists MISSING', 0, undef); + pred_test('exists MISSING & exists ENABLED | exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists MISSING | exists MISSING', 0, undef); + pred_test('exists ENABLED & exists MISSING | exists ENABLED', 1, undef); + pred_test('exists ENABLED & exists ENABLED | exists MISSING', 1, undef); + pred_test('exists ENABLED & exists ENABLED | exists ENABLED', 1, undef); + + $test_total--; + print "TEST: $test_good/$test_total succeeded\n"; + + exit $exit_val; +} + +# Load up the current configuration values -- FATAL if this fails +print "$P: $config: loading config\n"; +open(CONFIG, "<$config") || die "$P: $config: 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); + +# FATAL: Check if we have an enforcement list. +my $pass = 0; +my $total = 0; +my $line = ''; +print "$P: $checks: loading checks\n"; +open(CHECKS, "<$checks") || die "$P: $checks: open failed -- $! -- aborting\n"; +while () { + /^#/ && next; + chomp; + + $line .= $_; + if ($line =~ /\\$/) { + chop($line); + $line .= " "; + next; + } + $line =~ /^\s*$/ && next; + + #print "CHECK: <$line>\n"; + $total++; + my $result = pred_exec($line); + if (!$result) { + print "$P: FAIL: $line\n"; + $exit_val = $fail_exit; + } else { + $pass++; + } + + $line = ''; +} +close(CHECKS); + +print "$P: $pass/$total checks passed -- exit $exit_val\n"; +exit $exit_val; --- linux-3.2.0.orig/debian/scripts/abi-check +++ linux-3.2.0/debian/scripts/abi-check @@ -0,0 +1,210 @@ +#!/usr/bin/perl -w + +my $flavour = shift; +my $prev_abinum = shift; +my $abinum = shift; +my $prev_abidir = shift; +my $abidir = shift; +my $skipabi = shift; + +my $fail_exit = 1; +my $EE = "EE:"; +my $errors = 0; +my $abiskip = 0; + +my $count; + +print "II: Checking ABI for $flavour...\n"; + +if (-f "$prev_abidir/ignore" + or -f "$prev_abidir/$flavour.ignore" or "$skipabi" eq "true") { + print "WW: Explicitly asked to ignore ABI, running in no-fail mode\n"; + $fail_exit = 0; + $abiskip = 1; + $EE = "WW:"; +} + +if ($prev_abinum != $abinum) { + print "II: Different ABI's, running in no-fail mode\n"; + $fail_exit = 0; + $EE = "WW:"; +} + +if (not -f "$abidir/$flavour" or not -f "$prev_abidir/$flavour") { + print "EE: Previous or current ABI file missing!\n"; + print " $abidir/$flavour\n" if not -f "$abidir/$flavour"; + print " $prev_abidir/$flavour\n" if not -f "$prev_abidir/$flavour"; + + # Exit if the ABI files are missing, but return status based on whether + # skip ABI was indicated. + if ("$abiskip" eq "1") { + exit(0); + } else { + exit(1); + } +} + +my %symbols; +my %symbols_ignore; +my %modules_ignore; +my %module_syms; + +# See if we have any ignores +my $ignore = 0; +print " Reading symbols/modules to ignore..."; + +for $file ("$prev_abidir/../blacklist", "$prev_abidir/../../perm-blacklist") { + if (-f $file) { + open(IGNORE, "< $file") or + die "Could not open $file"; + while () { + 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-3.2.0.orig/debian/scripts/sub-flavour +++ linux-3.2.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-3.2.0.orig/debian/scripts/control-create +++ linux-3.2.0/debian/scripts/control-create @@ -0,0 +1,25 @@ +#!/bin/bash + +. debian/debian.env + +vars=$1 + +. $vars + +if [ "$is_sub" = "" ]; then + flavour=$(basename $vars | sed 's/.*\.//') + stub=${DEBIAN}/control.d/flavour-control.stub +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" --- linux-3.2.0.orig/debian/scripts/link-headers +++ linux-3.2.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-3.2.0.orig/debian/scripts/module-inclusion +++ linux-3.2.0/debian/scripts/module-inclusion @@ -0,0 +1,80 @@ +#!/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 \ +# debian/build/build-virtual-ALL debian/build/build-virtual \ +# debian.master/control.d/virtual.inclusion-list +master=0 +if [ "$1" = "--master" ]; then + master=1 + shift +fi + +ROOT=$1 +NROOT=$2 +ILIST=$3 + +# +# Prep a destination directory. +# +mkdir -p ${NROOT} + +echo $0 Copy over the framework + +# Copy over the framework... +if [ "$master" -eq 1 ]; then + (cd ${ROOT}; find . ! -name "*.ko" -type f) | \ + while read f + do + mkdir -p ${NROOT}/`dirname $f` + mv -v ${ROOT}/$f ${NROOT}/$f + done +fi + +echo $0 Filter from the inclusion list + +cat ${ILIST} |while read i +do + # + # 'find' blurts a warning if it cannot find any ko files. + # + if echo "$i" | grep '\*' > /dev/null + then + (cd ${ROOT}; eval find "${i}" -name "*.ko") |while read f + do + mkdir -p ${NROOT}/`dirname $f` + mv -v ${ROOT}/$f ${NROOT}/$f + done + else + if [ -f "${ROOT}/$i" ] + then + mkdir -p ${NROOT}/`dirname $i` + mv -v ${ROOT}/$i ${NROOT}/$i + else + echo Warning: Could not find ${ROOT}/$i + fi + fi + +done + +echo $0 Checking inclusion module dependencies. + +# +# Check that all of the module dependencies exist. +# +(cd ${NROOT}; find . -name "*.ko" | while read f +do + /sbin/modinfo $f | grep "^depends:" | sed -e 's/^depends://' | tr ',' '\n' | while read m + do + if ! find . -name "$m.ko" + then + echo Error: Missing module dependency $m + fi + done +done) + +exit 0 --- linux-3.2.0.orig/debian/scripts/misc/insert-mainline-changes +++ linux-3.2.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-3.2.0.orig/debian/scripts/misc/git-ubuntu-log +++ linux-3.2.0/debian/scripts/misc/git-ubuntu-log @@ -0,0 +1,232 @@ +#!/usr/bin/perl -w + +use strict; +use Text::Wrap; + +my $kernel_auth = "Upstream Kernel Changes"; + +my (%map, @reverts); +my $pstate = 1; +my $no_kern_log = 0; +my $print_shas = 0; +my $first_print = 1; + +while (@ARGV) { + my $opt = $ARGV[0]; + shift; + if ($opt eq "--no-kern-log") { + $no_kern_log = 1; + } elsif ($opt eq "--print-shas") { + $print_shas = 1; + } else { + print STDERR "Unknown options: $opt\n"; + exit(1); + } +} + +sub check_reverts($) { + my ($entry) = @_; + my ($check); + + foreach $check (reverse @reverts) { + my $desc = "Revert \"" . $entry->{'desc'} . "\""; + if ($check->{'desc'} eq $desc) { + @reverts = grep($_->{'desc'} ne $desc, @reverts); + return 1; + } + } + + return 0; +} + +sub add_entry($) { + my ($entry) = @_; + my $key = $entry->{'author'}; + + # store description in array, in email->{desc list} map + if (exists $map{$key}) { + # grab ref + my $obj = $map{$key}; + + # add desc to array + push(@$obj, $entry); + } else { + # create new array, containing 1 item + my @arr = ($entry); + + # store ref to array + $map{$key} = \@arr; + } +} + +sub shortlog_entry($$$$$) { + my ($name, $desc, $bug, $cve, $commit) = @_; + my $entry; + + $desc =~ s#/pub/scm/linux/kernel/git/#/.../#g; + $desc =~ s#\[PATCH\] ##g; + + $desc =~ s#^\s*##g; + $desc =~ s# *UBUNTU: ##g; + + $entry->{'desc'} = $desc; + if ($bug ne '') { + $entry->{'bugno'} = $bug; + } + $entry->{'cve'} = $cve; + $entry->{'commit'} = $commit; + $entry->{'author'} = $name; + + if ($desc =~ /^Revert "/) { + push(@reverts, $entry); + return; + } + + return if check_reverts($entry); + + add_entry($entry); +} + +# sort comparison function +sub by_name($$) { + my ($a, $b) = @_; + + uc($a) cmp uc($b); +} + +sub shortlog_output { + my ($obj, $key, $entry); + + foreach $key (sort by_name keys %map) { + next if $key eq $kernel_auth and $no_kern_log; + + print "\n" unless $first_print; + $first_print = 0; + + # output author + printf " [ %s ]\n\n", $key; + + # output author's 1-line summaries + $obj = $map{$key}; + foreach $entry (reverse @$obj) { + print wrap(" * ", " ", $entry->{'desc'}) . "\n"; + # For non upstream changes, add other info. + if ($key ne $kernel_auth) { + if ($print_shas) { + print " - GIT-SHA " . $entry->{'commit'} . + "\n"; + } + } + if (defined($entry->{'bugno'})) { + print " - LP: #" . $entry->{'bugno'} . "\n"; + } + if (defined($entry->{'cve'})) { + print " - " . $entry->{'cve'} . "\n"; + } + } + } +} + +sub changelog_input { + my ($author, $desc, $commit, $entry, $cve); + + while () { + # get commit + if ($pstate == 1) { + next unless /^commit (.*)/; + + $commit = $1; + + $pstate++; + } + + # get author and email + elsif ($pstate == 2) { + my ($email); + + next unless /^[Aa]uthor:?\s*(.*?)\s*<(.*)>/; + + $author = $1; + $email = $2; + $desc = undef; + $cve = undef; + + # cset author fixups + if (!$author) { + $author = $email; + } + $pstate++; + } + + # skip to blank line + elsif ($pstate == 3) { + next unless /^\s*$/; + $pstate++; + } + + # skip to non-blank line + elsif ($pstate == 4) { + next unless /^\s*?(.*)/; + my $ignore = 0; + my $do_ignore = 0; + my $bug = undef; + my %bugz = (); + my $k; + + # skip lines that are obviously not + # a 1-line cset description + next if /^\s*From: /; + + chomp; + $desc = $1; + + if ($desc =~ /^ *(Revert "|)UBUNTU:/) { + $do_ignore = 1; + } else { + $do_ignore = 0; + $author = $kernel_auth; + $ignore = 1 if $desc =~ /Merge /; + } + while () { + $ignore = 1 if ($do_ignore && /^ *Ignore: yes/i); + if (/^ *Bug: *(#|)([0-9#,\s]*)\s*$/i) { + foreach $k (split('(,|\s)\s*(#|)', $2)) { + $bugz{$k} = 1 if (($k ne '') and ($k =~ /[0-9]+/)); + } + } + elsif (/^ *BugLink: *http.*:\/\/.*\/([0-9]+)/i) { + $bugz{$1} = 1; + } + elsif (/^ *(CVE-.*)/) { + $cve = $1 + } + last if /^commit /; + } + + $bug = join(", #", sort keys(%bugz)); + if (!$ignore) { + &shortlog_entry($author, $desc, $bug, + $cve, $commit, 0); + } + + $pstate = 1; + if ($_ && /^commit (.*)/) { + $commit = $1; + $pstate++; + } + } + + else { + die "invalid parse state $pstate"; + } + } + + foreach $entry (@reverts) { + add_entry($entry); + } +} + +&changelog_input; +&shortlog_output; + +exit(0); --- linux-3.2.0.orig/debian/scripts/misc/getabis +++ linux-3.2.0/debian/scripts/misc/getabis @@ -0,0 +1,126 @@ +#!/bin/bash + +if [ "$#" != "2" ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi + +if [ "$DEBIAN" = "" ]; then + . debian/debian.env +fi + +ver=$1 +revision=$2 +abi=$(echo $revision | awk -F. '{print $1}') + +verabi=$ver-$abi +verfull=$ver-$revision + +WGET="wget --tries=1 --timeout=10 --quiet -c" + +abidir="`pwd`/$DEBIAN/abi/$verfull" +tmpdir="`pwd`/abi-tmp-$verfull" +origdir="`pwd`" +fwinfo=$abidir/fwinfo + +test -d $tmpdir || mkdir $tmpdir + +package_prefixes() { + __package_prefixes="$@" +} + +getall() { + arch=$1 + shift + + mkdir -p $abidir/$arch + + for sub in $@; do + if [ -f $abidir/$arch/$sub ]; then + echo "Exists: $sub" + continue + fi + echo -n "Fetching $sub($arch)..." + prefixes="" + filenames="" + cd $tmpdir + for prefix in $__package_prefixes + do + filename=${prefix}-${verabi}-${sub}_${verfull}_${arch}.deb + for r in "${repo_list[@]}" + do + if ! [ -f $filename ]; then + $WGET $r/$filename + fi + if [ -f $filename ]; then + prefixes="$prefixes $prefix" + filenames="$filenames $filename" + break + fi + done + done + if [ "$filenames" != "" ]; then + echo -n "extracting$prefixes..." + for filename in $filenames + do + dpkg-deb --extract $filename tmp + done + 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 -n "NO ABI 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" | awk ' + ($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 -n "$version..." + ) + rm -rf tmp $filenames + echo "done." + else + echo "FAILED." + fi + cd $origdir + done +} + +# MAIN + +# Setup abi directory +mkdir -p $abidir +echo $abi > $abidir/abiname + +# NOTE: The flavours are hardcoded, because they may have changed from the +# current build. + +__package_prefixes="linux-image" + +. $DEBIAN/etc/getabis + +compilers=`cat $abidir/*/*.compiler | sort -u | wc -l` +if [ "$compilers" != 1 ]; then + echo "WARNING: inconsistant compiler versions detected" 1>&2 +fi + +sort < $fwinfo | uniq > fwinfo.tmp +mv fwinfo.tmp $fwinfo + +rmdir $tmpdir --- linux-3.2.0.orig/debian/scripts/misc/insert-ubuntu-changes +++ linux-3.2.0/debian/scripts/misc/insert-ubuntu-changes @@ -0,0 +1,58 @@ +#!/usr/bin/perl + +if ($#ARGV != 2) { + die "Usage: $0 \n"; +} +my ($changelog, $end, $start) = @ARGV; + +$end =~ s/.*\.//; +$start =~ s/.*\.//; + +my @changes = (); +my $output = 0; +open(CHG, ") { + if (/^\S+\s+\((.*\.(\d+))\)/) { + if ($2 <= $end) { + last; + } + if ($2 == $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-3.2.0.orig/debian/scripts/misc/splitconfig.pl +++ linux-3.2.0/debian/scripts/misc/splitconfig.pl @@ -0,0 +1,111 @@ +#!/usr/bin/perl -w + +%allconfigs = (); +%common = (); + +print "Reading config's ...\n"; + +opendir(DIR, "."); + +while (defined($config = readdir(DIR))) { + # 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"; +} + +closedir(DIR); + +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-3.2.0.orig/debian/scripts/misc/retag +++ linux-3.2.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-3.2.0.orig/debian/scripts/misc/insert-changes.pl +++ linux-3.2.0/debian/scripts/misc/insert-changes.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl -w + +my $debian; +$droot = $ARGV[0] if (defined $ARGV[0]); +$droot = 'debian' if (!defined $droot); +$debian = $ARGV[1] if (defined $ARGV[1]); +$debian = 'debian.master' if (!defined $debian); + +system("make -s -f $droot/rules printchanges > $debian/changes"); + +open(CHANGELOG, "< $debian/changelog") or die "Cannot open changelog"; +open(CHANGES, "< $debian/changes") or die "Cannot open new changes"; +open(NEW, "> $debian/changelog.new") or die "Cannot open new changelog"; + +$printed = 0; + +while () { + if (/^ CHANGELOG: /) { + next if $printed; + + while () { + print NEW; + } + + $printed = 1; + } else { + print NEW; + } +} + +close(NEW); +close(CHANGES); +close(CHANGELOG); + +rename("$debian/changelog.new", "$debian/changelog"); +unlink("$debian/changes"); --- linux-3.2.0.orig/debian/scripts/misc/kernelconfig +++ linux-3.2.0/debian/scripts/misc/kernelconfig @@ -0,0 +1,172 @@ +#!/bin/bash + +. debian/debian.env + +# Script to merge all configs and run 'make silentoldconfig' 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]"} +yes=0 +case "$mode" in + update*configs) mode='silentoldconfig' ;; + default*configs) mode='oldconfig'; yes=1 ;; + edit*configs) ;; # All is good + gen*configs) mode='genconfigs' ;; # All is good + dump*configs) mode='config'; yes=1 ;; + *) echo "$0 called with invalid mode" 1>&2 + exit 1 ;; +esac +kerneldir="`pwd`" +confdir="$kerneldir/${DEBIAN}/config" +sharedconfdir="$kerneldir/debian.master/config" +variant="$2" + +. $DEBIAN/etc/kernelconfig + +bindir="`pwd`/${DROOT}/scripts/misc" +common_conf="$confdir/config.common.$family" +tmpdir=`mktemp -d` +mkdir "$tmpdir/CONFIGS" + +if [ "$mode" = "genconfigs" ]; then + keep=1 + mode="oldconfig" + test -d CONFIGS || mkdir CONFIGS +fi + +for arch in $archs; do + rm -rf build + mkdir build + + # Map debian archs to kernel archs + case "$arch" in + ppc64) kernarch="powerpc" ;; + amd64) kernarch="x86_64" ;; + lpia) kernarch="x86" ;; + sparc) kernarch="sparc64" ;; + armel|armhf) kernarch="arm" ;; + *) kernarch="$arch" ;; + esac + + 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 + 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 ARCH=$kernarch menuconfig + break ;; + n* | N* ) + 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 ARCH=$kernarch "$mode" + else + make O=`pwd`/build ARCH=$kernarch "$mode" + fi ;; + esac + cat build/.config > $archconfdir/$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; 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" + "$bindir/../config-check" "$fullconf" "$arch" "$flavour" "$sharedconfdir" "0" || let "fail=$fail+1" + fi + done +done + +if [ "$fail" != 0 ]; then + echo "" + echo "*** ERROR: $fail config-check failures detected" + echo "" +fi + +rm -rf build + --- linux-3.2.0.orig/debian/docs/README.inclusion-list +++ linux-3.2.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-3.2.0.orig/debian/control-scripts/postinst +++ linux-3.2.0/debian/control-scripts/postinst @@ -0,0 +1,1095 @@ +#! /usr/bin/perl +# OriginalAuthor : Manoj Srivastava ( srivasta@pilgrim.umass.edu ) +# +# Customized for Ubuntu by: Ben Collins + +#use strict; #for debugging +use Cwd 'abs_path'; + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom, arcboot or delo +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $relative_links = ""; # target machine defined +my $initrd = "YES"; # initrd kernel +my $do_initrd = ''; # Normally we do not +my $use_hard_links = ''; # hardlinks do not work across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs. +my $notifier = "/usr/share/update-notifier/notify-reboot-required"; +my $package_name = "linux-image-$version"; +my $explicit_do_loader = 'Yes'; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; +$Loader = "ARCBOOT" if $loader =~ /^arcboot/io; +$Loader = "DELO" if $loader =~ /^delo/io; + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $silent_modules = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +my $modules_base = '/lib/modules'; +my $CONF_LOC = '/etc/kernel-img.conf'; + +# Ignore all invocations except when called on to configure. +exit 0 unless $ARGV[0] =~ /configure/; + +my $DEBUG = 0; + +# Do some preliminary sanity checks here to ensure we actually have an +# valid image dir +chdir('/') or die "could not chdir to /:$!\n"; +die "Internal Error: ($image_dir) is not a directory!\n" + unless -d $image_dir; + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; +die "Internal Error: ($realimageloc) is not a directory!\n" + unless -d $realimageloc; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlink\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $explicit_do_loader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $explicit_do_loader = "YES" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + + + +# For some versions of kernel-package, we had this warning in the +# postinst, but the rules did not really interpolate the value in. +# Here is a sanity check. +my $pattern = "=" . "I"; +$initrd=~ s/^$pattern$//; + +if ($link_in_boot) { + $image_dest = "/$image_dir/"; # same as realimageloc +} + +# Tack on at least one trainling / +$image_dest = "$image_dest/"; +$image_dest =~ s|^/*|/|o; +$image_dest =~ s|/+$|/|o; + +if (! -d "$image_dest") { + die "Expected Image Destination dir ($image_dest) to be a valid directory!\n"; +} + +# sanity +if (!($do_bootfloppy || $do_bootloader)) { + $do_boot_enable = ''; +} +if ($do_symlink && $no_symlink) { + warn "Both do_symlinks and no_symlinks options enabled; disabling no_symlinks\n"; + $no_symlink = 0; +} + +# most of our work is done in $image_dest (nominally /) +chdir("$image_dest") or die "could not chdir to $image_dest:$!\n"; + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) { $kimage = "vmlinuz"; } # Hmm. empty +elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz +elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; } +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; } +else { $kimage = "vmlinuz"; } # Default + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + + +die "Internal Error: Could not find image (" . $realimageloc + . "$kimage-$version)\n" unless -e $realimageloc + . "$kimage-$version"; + +# search for the boot loader in the path +my $loader_exec; +($loader_exec = $loader) =~ s|.*/||; +my ($loaderloc) = grep -x, map "$_/$loader_exec", + map { length($_) ? $_ : "." } split /:/, $ENV{PATH}; + + +###################################################################### +###################################################################### +########### Test whether a relative symlinkwould be OK ####### +###################################################################### +###################################################################### +sub test_relative { + my %params = @_; + my $cwd; + + die "Internal Error: Missing Required paramater 'Old Dir' " + unless $params{'Old Dir'}; + die "Internal Error: Missing Required paramater New Dir' " + unless $params{'New Dir'}; + + + die "Internal Error: No such dir $params{'Old Dir'} " + unless -d $params{'Old Dir'}; + die "Internal Error: No such dir $params{'New Dir'} " + unless -d $params{'New Dir'}; + + warn "Test relative: testing $params{'Old Dir'} -> $params{'New Dir'}" + if $DEBUG; + chomp($cwd = `pwd`); + chdir ($params{'New Dir'}) or die "Could not chdir to $params{'New Dir'}:$!"; + my $ok = 0; + $params{'Old Dir'} =~ s|^/*||o; + if (-d $params{'Old Dir'} ) { + if (defined $params{'Test File'}) { + if (-e $params{'Old Dir'} . $params{'Test File'}) { + $ok = 1; + } + } else { + $ok = 1; # well, backward compatibility + } + } + chdir ($cwd) or die "Could not chdir to $params{'New Dir'}:$!"; + return $ok; +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +# sub CanonicalizePath { +# my $path = join '/', @_; +# my @work = split '/', $path; +# my @out; +# my $is_absolute; + +# if (@work && $work[0] eq "") { +# $is_absolute = 1; shift @work; +# } + +# while (@work) { +# my $seg = shift @work; +# if ($seg eq "." || $seg eq "") { +# } +# elsif ($seg eq "..") { +# if (@out && $out[-1] ne "..") { +# pop @out; +# } +# else { +# # Leading "..", or "../..", etc. +# push @out, $seg; +# } +# } +# else { +# push @out, $seg; +# } +# } + +# unshift @out, "" if $is_absolute; +# return join('/', @out); +# } +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### + +sub spath { + my %params = @_; + + die "Missing Required paramater 'Old'" unless $params{'Old'}; + die "Missing Required paramater 'New'" unless $params{'New'}; + + my @olddir = split '/', `readlink -q -m $params{'Old'}`; + my @newdir = split '/', `readlink -q -m $params{'New'}`; + my @outdir = @olddir; + + my $out = ''; + my $i; + for ($i = 0; $i <= $#olddir && $i <= $#newdir; $i++) { + $out++ if ($olddir[$i] ne $newdir[$i]); + shift @outdir unless $out; + unshift @outdir, ".." if $out; + } + if ($#newdir > $#olddir) { + for ($i=0; $i < $#newdir; $i++) { + unshift @outdir, ".."; + } + } + return join ('/', @outdir); +} +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### + + +# This routine actually moves the kernel image +# From: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12) +# To: $image_dest/$kimage-$version (/vmlinuz-2.6.12) +# Note that the image is moved to a versioned destination, but ordinary +# symlinks we create otherwise are not normally versioned +sub really_move_image { + my $src_dir = $_[0]; + my $target = $_[1]; + my $dest_dir = $_[2]; + + warn "Really move image: src_dir=$src_dir, target=$target,\n destdir=$dest_dir" + if $DEBUG; + if (-e "$target") { + # we should be in dir $dest_dir == $image_dest /, normally + rename("$target", "$target.$$") || + die "failed to move " . $dest_dir . "$target:$!"; + warn "mv $target $target.$$" if $DEBUG; + } + warn "mv -f $src_dir$target $target" if $DEBUG; + my $ret = system("mv -f " . $src_dir . "$target " . + " $target"); + if ($ret) { + die("Failed to move " . $src_dir . "$target to " + . $dest_dir . "$target"); + } + # Ok, now we may clobber the previous .old files + if (-e "$target.$$") { + rename("$target.$$", "$target.old") || + die "failed to move " . $dest_dir . "$target:$!"; + warn "mv $target.$$ $target " if $DEBUG; + } +} + +# Normally called after really_move_image; and only called if we asked for +# reversed link this routine reverses the symbolic link that is notmally +# created. Since the real kernel image has been moved over to +# $image_dest/$kimage-$version. So, this routine links +# From: $image_dest/$kimage-$version (/vmlinuz-2.6.12) +# To: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12) +sub really_reverse_link { + my $src_dir = $_[0]; + my $link_name = $_[1]; + my $dest_dir = $_[2]; + warn "Really reverse link: src_dir=$src_dir, link name=$link_name\n" . + "\tdestdir=$dest_dir" if $DEBUG; + + my $Old = $dest_dir; + if (test_relative ('Old Dir' => $Old, 'New Dir' => $src_dir, + 'Test File' => "$link_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$src_dir" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + link($Old . "$link_name", $src_dir . "$link_name") || + die("Failed to link " . $dest_dir . "$link_name to " . $src_dir . + "$link_name:$!"); + warn "ln " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG; + } + else { + symlink($Old . "$link_name", $src_dir . "$link_name") || + die("Failed to symbolic-link " . $dest_dir . "$link_name to " . $src_dir + . "$link_name:$!"); + warn "ln -s " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG; + } +} + +# This routine is invoked if there is a symbolic link in place +# in $image_dest/$kimage -- so a symlink exists in the destination. +# What we are trying to determine is if we need to move the symbolic link over +# to the the .old location +sub move_p { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + my $force_move = 0; + warn "Move?: kimage=$kimage, image_dest=$image_dest, \n" . + "\timage_name=$image_name, src_dir=$src_dir" if $DEBUG; + + if ($no_symlink || $reverse_symlink) { + # we do not want links, yet we have a symbolic link here! + warn "found a symbolic link in " . $image_dest . "$kimage \n" . + "even though no_symlink is defined\n" if $no_symlink; + warn "found a symbolic link in " . $image_dest . "$kimage \n" . + "even though reverse_symlink is defined\n" if $reverse_symlink; + # make sure we change this state of affairs + $force_move = 1; + return $force_move; + } + + warn "DEBUG: OK. We found symlink, and we should have a symlink here.\n" + if $DEBUG; + my $vmlinuz_target = readlink "$kimage"; + my $real_target = ''; + my $target = `readlink -q -m "${realimageloc}${kimage-$version}"`; + $real_target = abs_path($vmlinuz_target) if defined($vmlinuz_target); + + if (!defined($vmlinuz_target) || ! -f "$real_target") { + # what, a dangling symlink? + warn "The link " . $image_dest . "$kimage is a dangling link" . + "to $real_target\n"; + $force_move = 1; + return $force_move; + } + + + warn "DEBUG: The link $kimage points to ($vmlinuz_target)\n" if $DEBUG; + warn "DEBUG: ($vmlinuz_target) is really ($real_target)\n" if $DEBUG; + my $cwd; + chomp ($cwd=`pwd`); + if ($vmlinuz_target !~ m|^/|o) { + $vmlinuz_target = $cwd . "/" . $vmlinuz_target; + $vmlinuz_target =~ s|/+|/|o; + } + $vmlinuz_target = `readlink -q -m $vmlinuz_target`; + + if ("$vmlinuz_target" ne "$target") { + warn "DEBUG: We need to handle this.\n" if $DEBUG; + if ($minimal_swap) { + warn "DEBUG: Minimal swap.\n" if $DEBUG; + if (-l "$kimage.old") { + warn "DEBUG: There is an old link at $kimage.old\n" if $DEBUG; + my $old_target = readlink "$kimage.old"; + my $real_old_target = ''; + $real_old_target=abs_path($old_target) if defined ($old_target); + + if ($real_old_target && -f "$real_old_target") { + if ($old_target !~ m|^/|o) { + $old_target = $cwd . "/" . $old_target; + $old_target =~ s|/+|/|o; + } + $old_target = `readlink -q -m $old_target`; + if ("$old_target" ne "$target") { + $force_move = 1; + warn "DEBUG: Old link ($old_target) does not point to us ($target)\n" + if $DEBUG; + } + else { # The .old points to the current + warn "$kimage.old --> $target -- doing nothing"; + $force_move = 0; + } + } + else { + warn "DEBUG: Well, the old link does not exist -- so we move\n" + if $DEBUG; + $force_move = 1; + } + } + else { + warn "DEBUG: No .old link -- OK to move\n" + if $DEBUG; + $force_move = 1; + } + } + else { + warn "DEBUG: ok, minimal swap is no-- so we move.\n" + if $DEBUG; + $force_move = 1; + } + } + else { # already have proper link + warn "$kimage($vmlinuz_target) points to $target ($real_target) -- doing nothing"; + $force_move = 0; + } + return $force_move; +} + + +# This routine moves the symbolic link around (/vmlinuz -> /vmlinuz.old) +# It pays attention to whether we should the fact whether we should be using +# hard links or not. +sub really_move_link { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "really_move_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # don't clobber $kimage.old quite yet + rename("$kimage", "$kimage.$$") || + die "failed to move " . $image_dest . "$kimage:$!"; + warn "mv $kimage $kimage.$$" if $DEBUG; + my $Old = $src_dir; + my $cwd; + + chomp($cwd=`pwd`); + if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd, + 'Test File' => "$image_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + warn "ln ${Old}${image_name} $kimage" if $DEBUG; + if (! link("${Old}${image_name}", "$kimage")) { + rename("$kimage.$$", "$kimage"); + die("Failed to link ${Old}${image_name} to " . + "${image_dest}${kimage}:$!"); + } + } + else { + warn "ln -s ${Old}${image_name} $kimage" if $DEBUG; + if (! symlink("${Old}${image_name}", "$kimage")) { + rename("$kimage.$$", "$kimage"); + die("Failed to symbolic-link ${Old}${image_name} to " . + "${image_dest}${kimage}:$!"); + } + } + + # Ok, now we may clobber the previous .old file + if (-l "$kimage.old" || ! -e "$kimage.old" ) { + rename("$kimage.$$", "$kimage.old"); + warn "mv $kimage.$$ $kimage.old" if $DEBUG; + } + else { + warn "$kimage.old is not a symlink, not clobbering\n"; + warn "rm $kimage.$$"; + unlink "$kimage.$$" if $DEBUG; + } +} + +# This routine handles a request to do symlinks, but there is no +# symlink file already there. Either we are supposed to use copy, or we are +# installing on a pristine system, or the user does not want symbolic links at +# all. We use a configuration file to tell the last two cases apart, creating +# a config file if needed. +sub handle_missing_link { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "handle_missing_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + if ($no_symlink) { + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc . + "$image_name " . " $kimage"); + if ($ret) { + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + } + elsif ($reverse_symlink) { + warn "mv -f $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("mv -f " . $realimageloc . "$image_name " + . "$kimage"); + if ($ret) { + die("Failed to move " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + } + else { + if (! $have_conffile) { + my $ret; + my $answer=''; + $do_symlink = "Yes"; + + if (open(CONF, ">$CONF_LOC")) { + print CONF "# Kernel Image management overrides\n"; + print CONF "# See kernel-img.conf(5) for details\n"; + if ($loader =~ /palo/i) { + print CONF "link_in_boot = Yes\n"; + print CONF "do_symlinks = Yes\n"; + print CONF "relative_links = Yes\n"; + print CONF "do_bootloader = No\n"; + } else { + print CONF "do_symlinks = $do_symlink\n"; + } + close CONF; + } + $have_conffile = "Yes"; + } + } + + if (! $no_symlink && $do_symlink =~ /Yes/i) { + my $Old = $realimageloc; + my $New = $image_dest; + my $Name = "$image_name"; + my $Link_Dest = "$kimage"; + + if ($reverse_symlink) { + $Old = $image_dest; + $New = $realimageloc; + $Name = "$kimage"; + $Link_Dest = $realimageloc . "$image_name"; + } + if (test_relative ('Old Dir' => $Old, + 'New Dir' => $New, + 'Test File' => $Name)) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$New" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + symlink($Old . "$Name", "$Link_Dest") || + die("Failed to symbolic-link ${Old}$Name to $Link_Dest:$!"); + warn "ln -s ${Old}$Name $Link_Dest" if $DEBUG; + + } +} + +# This routine handles the rest of the cases, where the user has requested +# non-traditional handling, like using cp, or reverse symlinks, or hard links. +sub handle_non_symlinks { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "handle_non_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # Save the current image. We do this in all four cases + rename("$kimage", "$kimage.$$") || + die "failed to move " . $image_dest . "$kimage:$!"; + warn "mv $kimage $kimage.$$" if $DEBUG; + + ##,#### + # case One + #`#### + if ($no_symlink) { + # Maybe /$image_dest is on a dos system? + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc + . "$image_name " . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + rename("$kimage.$$", "$kimage"); + warn "mv $kimage.$$ $kimage" if $DEBUG; + } + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + } + ##,#### + # case Two + #`#### + elsif ($reverse_symlink) { # Maybe /$image_dest is on a dos system? + warn "mv -f $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("mv -f " . $realimageloc . "$image_name " + . $image_dest . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + rename("$kimage.$$", "$kimage"); + warn "mv $kimage.$$ $kimage" if $DEBUG; + } + die("Failed to move " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + my $Old = $image_dest; + if (test_relative ('Old Dir' => $Old, 'New Dir' => $realimageloc, + 'Test File' => "$kimage")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$realimageloc" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + warn "ln " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG; + if (! link($Old . "$kimage", $realimageloc . "$image_name")) { + warn "Could not link " . $image_dest . + "$kimage to $image_name :$!"; + } + } + else { + warn "ln -s " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG; + if (! symlink($Old . "$kimage", $realimageloc . "$image_name")) { + warn "Could not symlink " . $image_dest . + "$kimage to $image_name :$!"; + } + } + } + ##,#### + # case Three + #`#### + elsif ($use_hard_links =~ m/YES/i ) { + # Ok then. this ought to be a hard link, and hence fair game + # don't clobber $kimage.old quite yet + my $Old = $realimageloc; + my $cwd; + chomp($cwd=`pwd`); + if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd, + 'Test File' => "$image_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + warn "ln " . $Old . "$image_name " . "$kimage" if $DEBUG; + if (! link($Old . "$image_name", "$kimage")) { + warn "mv $kimage.$$ $kimage" if $DEBUG; + rename("$kimage.$$", "$kimage"); + die("Failed to link " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + } + ##,#### + # case Four + #`#### + else { + # We just use cp + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc + . "$image_name " . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + warn "mv $kimage.$$ $kimage" if $DEBUG; + rename("$kimage.$$", "$kimage"); + } + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + } + # Ok, now we may clobber the previous .old file + warn "mv $kimage.$$ $kimage.old if -e $kimage.$$" if $DEBUG; + rename("$kimage.$$", "$kimage.old") if -e "$kimage.$$"; +} + +# This routine is responsible for setting up the symbolic links +# So, the actual kernel image lives in +# $realimageloc/$image_name (/boot/vmlinuz-2.6.12). +# This routine creates symbolic links in $image_dest/$kimage (/vmlinuz) +sub image_magic { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = "$kimage-$version"; + my $src_dir = $realimageloc; + warn "image_magic: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # Well, in any case, if the destination (the symlink we are trying + # to create) is a directory, we should do nothing, except throw a + # diagnostic. + if (-d "$kimage" ) { + die ("Hmm. $kimage is a directory, which I did not expect. I am\n" . + "trying to create a symbolic link with that name linked to \n" . + "$image_dest . Since a directory exists here, my assumptions \n" . + "are way off, and I am aborting.\n" ); + exit (3); + } + + if ($move_image) { # Maybe $image_dest is in on dos, or something? + # source dir, link name, dest dir + really_move_image( $realimageloc, $image_name, $image_dest); + really_reverse_link($realimageloc, $image_name, $image_dest) + if $reverse_symlink; + return; + } + + if (-l "$kimage") { # There is a symbolic link + warn "DEBUG: There is a symlink for $kimage\n" if $DEBUG; + my $force_move = move_p($kimage, $image_dest, $image_name, $src_dir); + + if ($force_move) { + really_move_link($kimage, $image_dest, $image_name, $src_dir); + } + } + elsif (! -e "$kimage") { + # Hmm. Pristine system? How can that be? Installing from scratch? + # Or maybe the user does not want a symbolic link here. + # Possibly they do not want a link here. (we should be in / + # here[$image_dest, really] + handle_missing_link($kimage, $image_dest, $image_name, $src_dir); + } + elsif (-e "$kimage" ) { + # OK, $kimage exists -- but is not a link + handle_non_symlinks($kimage, $image_dest, $image_name, $src_dir); + } +} + +###################################################################### +###################################################################### +###################################################################### +###################################################################### + +# We may not have any modules installed +if ( -d "$modules_base/$version" ) { + print STDERR "Running depmod.\n"; + my $ret = system("depmod -a $version"); + if ($ret) { + print STDERR "Failed to run depmod\n"; + exit(1); + } +} + + + +sub find_initrd_tool { + my $hostversion = shift; + my $version = shift; + print STDERR "Finding valid ramdisk creators.\n"; + my @ramdisks = + grep { + my $args = + "$_ " . + "--supported-host-version=$hostversion " . + "--supported-target-version=$version " . + "1>/dev/null 2>&1" + ; + system($args) == 0; + } + split (/[:,\s]+/, $ramdisk); +} + +# The initrd symlink should probably be in the same dir that the +# symlinks are in +if ($initrd) { + my $success = 0; + + # Update-initramfs is called slightly different than mkinitrd and + # mkinitramfs. XXX It should really be made compatible with this stuff + # some how. + my $upgrading = 1; + if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + $upgrading = 0; + } + my $ret = system("$ramdisk " . ($upgrading ? "-u" : "-c") . " -k " . $version . " >&2"); + $success = 1 unless $ret; + die "Failed to create initrd image.\n" unless $success; + if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + image_magic("initrd.img", $image_dest); + } + else { + if (! -e "initrd.img") { + handle_missing_link("initrd.img", $image_dest, "initrd.img-$version", + $realimageloc); + } + else { + print STDERR + "Not updating initrd symbolic links since we are being updated/reinstalled \n"; + print STDERR + "($ARGV[1] was configured last, according to dpkg)\n"; + } + } + + if ($initrd && -l "initrd" ) { + unlink "initrd"; + } + + if ($initrd && -l "$image_dir/initrd" && ! $link_in_boot) { + unlink "$image_dir/initrd"; + } +} +else { # Not making an initrd emage + if (-l "initrd.img") { + # Ooh, last image was an initrd image? in any case, we should move it. + my $target = readlink "initrd.img"; + my $real_target = ''; + $real_target = abs_path($target) if defined ($target); + + if (!defined($target) || ! -f "$real_target") { + # Eh. dangling link. can safely be removed. + unlink("initrd.img"); + } else { + if (-l "initrd.img.old" || ! -e "initrd.img.old" ) { + rename("initrd.img", "initrd.img.old"); + } else { + warn "initrd.img.old is not a symlink, not clobbering\n"; + unlink("initrd.img"); + } + } + } +} + +# Warn of a reboot +if (-x $notifier) { + system($notifier); +} + +# Let programs know not to hibernate if the kernel that would be used for +# resume-from-hibernate is likely to differ from the currently running kernel. +system("mountpoint -q /var/run"); +if ($? eq 0) { + system("touch /var/run/do-not-hibernate"); +} + +# Only change the symlinks if we are not being upgraded +if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + image_magic($kimage, $image_dest); +} +else { + if (! -e "$kimage") { + handle_missing_link($kimage, $image_dest, "$kimage-$version", + $realimageloc); + } + else { + print STDERR + "Not updating image symbolic links since we are being updated/reinstalled \n"; + print STDERR + "($ARGV[1] was configured last, according to dpkg)\n"; + } +} + +# We used to have System.* files in / +if (-e "/System.map" || -e "/System.old") { + unlink '/System.map' if -e '/System.map'; + unlink '/System.old' if -e '/System.old'; +} + +# creating some info about kernel and initrd +if ($DEBUG) { + my $ksize=sprintf("%.0f",(stat($realimageloc . + "$kimage-$version"))[7]/1024)."kB"; + my $initrdsize=''; + if ($initrd) { + $initrdsize=sprintf("%.0f",(stat($realimageloc . + "initrd.img-$version"))[7]/1024)."kB"; + } + + print STDERR <<"EOMSG"; +A new kernel image has been installed at $realimageloc$kimage-$version + (Size: $ksize) + +Symbolic links, unless otherwise specified, can be found in $image_dest + +EOMSG + ; + + if ($initrd) { + print STDERR <<"EOMSGA"; + + Initial rootdisk image: ${realimageloc}initrd.img-$version (Size: $initrdsize) +EOMSGA + ; + } +} + +# set the env var stem +$ENV{'STEM'} = "linux"; +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if ($postinst_hook) { + &run_hook("postinst", $postinst_hook); +} + +if (-d "/etc/kernel/postinst.d") { + print STDERR "Examining /etc/kernel/postinst.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postinst.d") && + die "Failed to process /etc/kernel/postinst.d"; +} + +if (-d "/etc/kernel/postinst.d/$version") { + print STDERR "Examining /etc/kernel/postinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postinst.d/$version") && + die "Failed to process /etc/kernel/postinst.d/$version"; +} + +LOADER: { + last unless $do_boot_enable; # Exit if explicitly asked to + + last if $loader =~ /silo/i; # SILO does not have to be executed. + last if $loader =~ /yaboot/i; # yaboot does not have to be executed. + last if $loader =~ /milo/i; # MILO does not have to be executed. + last if $loader =~ /nettrom/i; # NETTROM does not have to be executed. + last if $loader =~ /arcboot/i; # ARCBOOT does not have to be executed. + last if $loader =~ /delo/i; # DELO does not have to be executed. + last if $loader =~ /quik/i; # maintainer asked quik invocation to be ignored + + last unless $loaderloc; + last unless -x $loaderloc; + last unless $do_bootloader; + + if (-T "/etc/$loader.conf") { + # Trust and use the existing lilo.conf. + print STDERR "You already have a $Loader configuration in /etc/$loader.conf\n"; + my $ret = &run_lilo(); + exit $ret if $ret; + } +} + + +sub run_lilo (){ + my $ret; + # Try and figure out if the user really wants lilo to be run -- + # since the default is to run the boot laoder, which is ! grub -- but + # the user may be using grub now, and not changed the default. + + # So, if the user has explicitly asked for the loader to be run, or + # if there is no postinst hook, or if there is no grub installed -- + # we are OK. Or else, we ask. + if ($explicit_do_loader || (! ($postinst_hook && -x '/usr/sbin/grub'))) { + print STDERR "Running boot loader as requested\n"; + } else { + print STDERR "Ok, not running $loader\n"; + } + if ($loader =~ /^lilo/io or $loader =~ /vmelilo/io) { + print STDERR "Testing $loader.conf ... \n"; + unlink $temp_file_name; # security + $ret = system("$loaderloc -t >$temp_file_name 2>&1"); + if ($ret) { + print STDERR "Boot loader test failed\n"; + return $ret; + } + unlink "$temp_file_name"; + print STDERR "Testing successful.\n"; + print STDERR "Installing the "; + print STDERR "partition " if $loader =~ /^lilo/io; + print STDERR "boot sector... \n"; + } + + print STDERR "Running $loaderloc ... \n"; + if ($loader =~ /^elilo/io) { + $ret = system("$loaderloc 2>&1 | tee $temp_file_name"); + } else { + $ret = system("$loaderloc >$temp_file_name 2>&1"); + } + if ($ret) { + print STDERR "Boot loader failed to run\n"; + return $ret; + } + unlink $temp_file_name; + print STDERR "Installation successful.\n"; + return 0; +} + +exit 0; + +__END__ + --- linux-3.2.0.orig/debian/control-scripts/postrm.extra +++ linux-3.2.0/debian/control-scripts/postrm.extra @@ -0,0 +1,8 @@ +#!/bin/sh + +case "$1" in + remove|purge) + depmod -a -F /boot/System.map-@@KVER@@ @@KVER@@ + update-initramfs -u -k @@KVER@@ + ;; +esac --- linux-3.2.0.orig/debian/control-scripts/headers-postinst +++ linux-3.2.0/debian/control-scripts/headers-postinst @@ -0,0 +1,126 @@ +#!/usr/bin/perl +# -*- Mode: Cperl -*- +# debian.postinst --- +# Author : Manoj Srivastava ( srivasta@pilgrim.umass.edu ) +# Created On : Sat Apr 27 05:42:43 1996 +# Created On Node : melkor.pilgrim.umass.edu +# Last Modified By : Manoj Srivastava +# Last Modified On : Sat Aug 5 13:20:22 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 45 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# +# +# arch-tag: 1c716174-2f0a-476d-a626-a1322e62503a +# + + +$|=1; + +# Predefined values: +my $version = "=V"; +my $kimage = "=K"; +my $package_name = "linux-image-$version"; + + +# Ignore all invocations uxcept when called on to configure. +exit 0 unless ($ARGV[0] && $ARGV[0] =~ /configure/); + +#known variables +my $image_dest = "/"; +my $realimageloc = "/boot/"; +my $silent_modules = ''; +my $modules_base = '/lib/modules'; +my $CONF_LOC = '/etc/kernel-img.conf'; +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +chdir '/usr/src' or die "Could not chdir to /usr/src:$!"; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $header_postinst_hook = "$1" if /^\s*header_postinst_hook\s*=\s*(\S+)/ig; + } + close CONF; + } +} + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +## Run user hook script here, if any +if (-x "$header_postinst_hook") { + &run_hook("postinst", $header_postinst_hook); +} + +if (-d "/etc/kernel/header_postinst.d") { + print STDERR "Examining /etc/kernel/header_postinst.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +if (-d "/etc/kernel/header_postinst.d/$version") { + print STDERR "Examining /etc/kernel/header_postinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/header_postinst.d/$version") && + die "Failed to process /etc/kernel/header_postinst.d/$version"; +} + +exit 0; + +__END__ --- linux-3.2.0.orig/debian/control-scripts/prerm +++ linux-3.2.0/debian/control-scripts/prerm @@ -0,0 +1,312 @@ +#! /usr/bin/perl +# -*- Mode: Perl -*- +# image.prerm --- +# Author : root ( root@melkor.pilgrim.umass.edu ) +# Created On : Fri May 17 03:28:59 1996 +# Created On Node : melkor.pilgrim.umass.edu +# Last Modified By : Manoj Srivastava +# Last Modified On : Sat Aug 5 13:14:17 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 85 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# +# $Id: image.prerm,v 1.22 2003/10/07 16:24:20 srivasta Exp $ +# +# +#use strict; + +$|=1; +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlinks = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $initrd = "YES"; # initrd kernel +my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # There is no harm in checking the link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +my $DEBUG = 0; + +# Variables used +my $image=''; +my $ret=0; +my $seen=''; +my $answer=''; +my $running = ''; +my $WouldInvalidate = 0; + +if ($ARGV[0] && ($ARGV[0] =~ /remove/ || $ARGV[0] =~ /upgrade/)) { + if (-l "/usr/doc/linux-image-$version") { + unlink "/usr/doc/linux-image-$version"; + } +} + +# Ignore all invocations uxcept when called on to remove +exit 0 unless ($ARGV[0] && $ARGV[0] =~ /remove/) ; + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) { $kimage = "vmlinuz";} # Hmm. empty +elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz +elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; } +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; } +else { $kimage = "vmlinuz";} # Default + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + +#check to see if we are trying to remove a running kernel +# if so we abort right now. +chop($running=`uname -r`); +if ($running eq $version) { + print STDERR "WARN: Proceeding with removing running kernel image.\n"; +} + +#Now, they have an alternate kernel which they are currently running + +# This is just us being nice to lilo users. + +chdir("/") or die "could not chdir to /:$!\n"; + +if (-f "/etc/$loader.conf") { #I know, could be a link, but .. + open (LILO, "/etc/$loader.conf") || &success(); # this is not critical + while () { + chop; + s/\#.*//; # nix the comments + next unless /^\s*image\s*=\s(\S+)/o; + $image = $1; + if ($image && -e $image) { + while (defined($image) && -l $image) { + $image = readlink ($image); + } + if (defined($image) && -e $image) { + $WouldInvalidate |= $image =~ /$kimage-$version/; + } + else { + &success(); # invalid $loader.conf file + } + } + else { + &success(); # invalid $loader.conf file + } + } + close (LILO); + if ($WouldInvalidate) { + print STFERR "WARN: Proceeding with removing running kernel image.\n"; + &success(); + } +} + + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if (-x "$prerm_hook") { + &run_hook("prerm", $prerm_hook); +} +if (-d "/etc/kernel/prerm.d") { + print STDERR "Examining /etc/kernel/prerm.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version /etc/kernel/prerm.d") && + die "Failed to process /etc/kernel/prerm.d"; +} +if (-d "/etc/kernel/prerm.d/$version") { + print STDERR "Examining /etc/kernel/prerm.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version " . + "/etc/kernel/prerm.d/$version") && + die "Failed to process /etc/kernel/prerm.d/$version"; +} + +sub success () { + # NOTE: need to keep this list in sync with rules.d/2-binary-arch.mk + my %files_to_keep = ( + 'modules.builtin' => 1, + 'modules.order' => 1, + ); + my $short; + for my $file () { + $short = $file; $short =~ s,.*/,,; + if (!defined $files_to_keep{$short}) { + unlink "$file"; + } + } + exit 0; +} + + + +&success(); +exit 0; +__END__ + + + + + --- linux-3.2.0.orig/debian/control-scripts/postinst.extra +++ linux-3.2.0/debian/control-scripts/postinst.extra @@ -0,0 +1,8 @@ +#!/bin/sh + +case "$1" in + configure) + depmod -a -F /boot/System.map-@@KVER@@ @@KVER@@ + update-initramfs -u -k @@KVER@@ + ;; +esac --- linux-3.2.0.orig/debian/control-scripts/postrm +++ linux-3.2.0/debian/control-scripts/postrm @@ -0,0 +1,361 @@ +#! /usr/bin/perl +# -*- Mode: Cperl -*- +# image.postrm --- +# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com ) +# Created On : Sat May 15 11:05:13 1999 +# Created On Node : glaurung.green-gryphon.com +# Last Modified By : Manoj Srivastava +# Last Modified On : Wed Sep 13 11:26:19 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 57 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# $Id: image.postrm,v 1.31 2003/10/07 16:24:20 srivasta Exp $ +# + + +# +#use strict; #for debugging +use Cwd 'abs_path'; + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $initrd = "YES"; # initrd kernel +my $do_initrd = ''; # Normally, we don't +my $warn_initrd = 'YES'; # Normally we do +my $use_hard_links = ''; # hardlinks do not work across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # we shall not create a dangling link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my @boilerplate = (); +my @silotemplate = (); +my @quiktemplate = (); +my @palotemplate = (); +my @vmelilotemplate = (); +my $bootdevice = ''; +my $rootdevice = ''; +my $rootdisk = ''; +my $rootpartition = ''; +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_modules = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +chdir('/') or die "could not chdir to /:$!\n"; +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $warn_initrd = '' if /^\s*warn_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $warn_initrd = "Yes" if /^\s*warn_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + +if ($link_in_boot) { + $image_dest = "/$image_dir/"; + $image_dest =~ s|^/*|/|o; +} + +$image_dest = "$image_dest/"; +$image_dest =~ s|/+$|/|o; + +# The destdir may be gone by now. +if (-d "$image_dest") { + chdir("$image_dest") or die "could not chdir to $image_dest:$!\n"; +} + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) {$kimage = "vmlinuz"} # Hmm. empty +elsif ($kimage =~ m/^b?uImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz +elsif ($kimage =~ m/^b?zImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage;} +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage;} +else {$kimage = "vmlinuz"} # default + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +sub remove_sym_link { + my $bad_image = $_[0]; + + warn "Removing symbolic link $bad_image \n"; + if ($loader =~ /lilo/i) + { + warn "Unless you used the optional flag in lilo, \n"; + } + warn " you may need to re-run your boot loader" . ($loader ? "[$loader]":"") + . "\n"; + # Remove the dangling link + unlink "$bad_image"; +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +sub CanonicalizePath { + my $path = join '/', @_; + my @work = split '/', $path; + my @out; + my $is_absolute; + + if (@work && $work[0] eq "") { $is_absolute = 1; shift @work; } + + while (@work) { + my $seg = shift @work; + if ($seg eq "." || $seg eq "") { + } elsif ($seg eq "..") { + if (@out && $out[-1] ne "..") { + pop @out; + } else { + # Leading "..", or "../..", etc. + push @out, $seg; + } + } else { + push @out, $seg; + } + } + + unshift @out, "" if $is_absolute; + return join('/', @out); +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +# This removes dangling symlinks. What do we do about hard links? Surely a +# something with the nane $image_dest . "$kimage" ought not to be left behind? +sub image_magic { + my $kimage = $_[0]; + my $image_dest = $_[1]; + + if (-l "$kimage") { + # There is a symbolic link + my $force_move = 0; + my $vmlinuz_target = readlink "$kimage"; + my $real_target = ''; + $real_target = abs_path($vmlinuz_target) if defined ($vmlinuz_target); + if (!defined($vmlinuz_target) || ! -f "$real_target") { + # what, a dangling symlink? + warn "The link " . $image_dest . "$kimage is a damaged link\n"; + # Remove the dangling link + &remove_sym_link("$kimage"); + } + else { + my $canonical_target = CanonicalizePath("$vmlinuz_target"); + if (! -e $canonical_target) { + warn "The link " . $image_dest . "$kimage is a dangling link\n"; + &remove_sym_link("$kimage"); + } + } + } +} + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + warn "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + warn "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if ($postrm_hook) { + &run_hook("postrm", $postrm_hook); +} +if (-d "/etc/kernel/postrm.d") { + warn "Examining /etc/kernel/postrm.d .\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postrm.d") && + die "Failed to process /etc/kernel/postrm.d"; +} +if (-d "/etc/kernel/postrm.d/$version") { + warn "Examining /etc/kernel/postrm.d/$version .\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postrm.d/$version") && + die "Failed to process /etc/kernel/postrm.d/$version"; +} + +# check and remove damaged and dangling symlinks +if ($ARGV[0] !~ /upgrade/) { + system("$ramdisk -d -k " . $version . " > /dev/null 2>&1"); + if (-f $realimageloc . "initrd.img-$version.bak") { + unlink $realimageloc . "initrd.img-$version.bak"; + } + image_magic($kimage, $image_dest); + image_magic($kimage . ".old", $image_dest); + image_magic("initrd.img", $image_dest) if $initrd; + image_magic("initrd.img.old", $image_dest) if $initrd; +} + +exit 0; + +__END__ + + + + + + --- linux-3.2.0.orig/debian/control-scripts/preinst +++ linux-3.2.0/debian/control-scripts/preinst @@ -0,0 +1,306 @@ +#! /usr/bin/perl +# -*- Mode: Cperl -*- +# image.preinst --- +# Author : Manoj Srivastava ( srivasta@tiamat.datasync.com ) +# Created On : Sun Jun 14 03:38:02 1998 +# Created On Node : tiamat.datasync.com +# Last Modified By : Manoj Srivastava +# Last Modified On : Sun Sep 24 14:04:42 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 99 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# + +# +#use strict; #for debugging + +use Debconf::Client::ConfModule qw(:all); +version('2.0'); +my $capb=capb("backup"); + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom + # or elilo +my $image_dir = "/boot"; # where the image is located +my $initrd = "YES"; # initrd kernel +my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_src_link = 'YES'; # There is no harm in checking the link +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # There is no harm in checking the link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs. +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +#known variables +my @boilerplate = (); +my @silotemplate = (); +my @quiktemplate = (); +my @palotemplate = (); +my @vmelilotemplate = (); +my $bootdevice = ''; +my $rootdevice = ''; +my $rootdisk = ''; +my $rootpartition = ''; +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_loader = ''; +my $warn_reboot = ''; # Warn that we are installing a version of + # the kernel we are running + +my $modules_base = '/lib/modules'; + +die "Pre inst Internal error. Aborting." unless $version; + +exit 0 if $ARGV[0] =~ /abort-upgrade/; +exit 1 unless $ARGV[0] =~ /(install|upgrade)/; + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_src_link = '' if /^\s*relink_src_link\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_src_link = 'Yes' if /^\s*relink_src_link\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + $have_conffile = "Yes"; # stop perl complaining + } +} + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + +# About to upgrade this package from version $2 TO THIS VERSION. +# "prerm upgrade" has already been called for the old version of +# this package. + +sub find_initrd_tool { + my $hostversion = shift; + my $version = shift; + my @ramdisks = + grep { + my $args = + "$_ " . + "--supported-host-version=$hostversion " . + "--supported-target-version=$version " . + "1>/dev/null 2>&1" + ; + system($args) == 0; + } + split (/[:,\s]+/, $ramdisk); +} + +sub check { + my $version = shift; + my $lib_modules="$modules_base/$version"; + my $message = ''; + + if (-d "$lib_modules") { + opendir(DIR, $lib_modules) || die "can’t opendir $lib_modules: $!"; + my @children = readdir(DIR); + if ($#children > 1) { + my @dirs = grep { -d "$lib_modules/$_" } @children; + if ($#dirs > 1) { # we have subdirs + my $dir_message=''; + for my $dir (@dirs) { + if ($dir =~/kernel$/) { + $dir_message="An older install was detected.\n"; + } + else { + $dir_message="Module sub-directories were detected.\n" + unless $dir_message; + } + } + $message += $dir_message if $dir_message; + } + + my @links = grep { -l "$lib_modules/$_" } @children; + if ($#links > -1) { + my $links_message = ''; + for my $link (@links) { + next if ($link =~ /^build$/); + next if ($link =~ /^source$/); + $links_message = "Symbolic links were detected in $modules_base/$version.\n"; + } + $message += $links_message if $links_message; + } + my @files = grep { -f "$lib_modules/$_" } @children; + $message += "Additional files also exist in $modules_base/$version.\n" + if ($#files > -1); + } + } + else { $message .= "$lib_modules does not exist. ";} + return $message; +} + +if (-d "$modules_base/$version") { + my $errors=check($version); + warn "Info:\n$errors\n" if $errors; +} + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if (-x "$preinst_hook") { + &run_hook("preinst", $preinst_hook); +} +if (-d "/etc/kernel/preinst.d") { + print STDERR "Examining /etc/kernel/preinst.d/\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version" . + " /etc/kernel/preinst.d") && + die "Failed to process /etc/kernel/preinst.d"; +} +if (-d "/etc/kernel/preinst.d/$version") { + print STDERR "Examining /etc/kernel/preinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version" . + " /etc/kernel/preinst.d/$version") && + die "Failed to process /etc/kernel/preinst.d/$version"; +} +print STDERR "Done.\n"; + +exit 0; + +__END__ + + --- linux-3.2.0.orig/debian/tests/README +++ linux-3.2.0/debian/tests/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-3.2.0.orig/debian/tests/check-aliases +++ linux-3.2.0/debian/tests/check-aliases @@ -0,0 +1,24 @@ +#!/usr/bin/perl -w + +my %map; + +print "Checking for dupe aliases in $ENV{'FLAVOUR'}...\n"; + +$aliases = + "$ENV{'INSTALL_DIR'}/lib/modules/$ENV{'VERSION'}-$ENV{'FLAVOUR'}/modules.alias"; + +open(ALIASES, "< $aliases") or die "Could not open $aliases"; + +while () { + 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-3.2.0.orig/debian/rules.d/2-binary-arch.mk +++ linux-3.2.0/debian/rules.d/2-binary-arch.mk @@ -0,0 +1,479 @@ +# 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 + +$(stampdir)/stamp-prepare-%: config-prepare-check-% + @touch $@ +$(stampdir)/stamp-prepare-tree-%: target_flavour = $* +$(stampdir)/stamp-prepare-tree-%: $(commonconfdir)/config.common.$(family) $(archconfdir)/config.common.$(arch) $(archconfdir)/config.flavour.% + @echo "Preparing $*..." + 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 $^ | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(raw_kernelversion)"/' > $(builddir)/build-$*/.config + find $(builddir)/build-$* -name "*.ko" | xargs rm -f + $(build_cd) $(kmake) $(build_O) -j1 silentoldconfig prepare scripts + touch $@ + +# Used by developers as a shortcut to prepare a tree for compilation. +prepare-%: $(stampdir)/stamp-prepare-% + @echo Prepared $* for $(arch) +# Used by developers to allow efficient pre-building without fakeroot. +build-%: $(stampdir)/stamp-build-% + @echo Built $* for $(arch) + +# Do the actual build, including image and modules +$(stampdir)/stamp-build-%: target_flavour = $* +$(stampdir)/stamp-build-%: dtb_target = $(notdir $(dtb_file_$*)) +$(stampdir)/stamp-build-%: $(stampdir)/stamp-prepare-% + @echo "Building $*..." + $(build_cd) $(kmake) $(build_O) $(conc_level) $(build_image) modules $(dtb_target) + @touch $@ + +# Install the finished build +install-%: pkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$* +install-%: pkgdir_ex = $(CURDIR)/debian/$(extra_pkg_name)-$* +install-%: bindoc = $(pkgdir)/usr/share/doc/$(bin_pkg_name)-$* +install-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym +install-%: basepkg = $(hdrs_pkg_name) +install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$* +install-%: target_flavour = $* +install-%: dtb_file=$(dtb_file_$*) +install-%: dtb_target=$(notdir $(dtb_file_$*)) +install-%: checks-% + dh_testdir + dh_testroot + dh_clean -k -p$(bin_pkg_name)-$* + dh_clean -k -p$(hdrs_pkg_name)-$* + dh_clean -k -p$(dbg_pkg_name)-$* + + # 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-$*/$(kernel_file) \ + $(pkgdir)/boot/$(install_file)-$(abi_release)-$* +else + install -d $(pkgdir)/boot + gzip -c9v $(builddir)/build-$*/$(kernel_file) > \ + $(pkgdir)/boot/$(install_file)-$(abi_release)-$* + chmod 600 $(pkgdir)/boot/$(install_file)-$(abi_release)-$* +endif + + install -m644 $(builddir)/build-$*/.config \ + $(pkgdir)/boot/config-$(abi_release)-$* + install -m644 $(abidir)/$* \ + $(pkgdir)/boot/abi-$(abi_release)-$* + install -m600 $(builddir)/build-$*/System.map \ + $(pkgdir)/boot/System.map-$(abi_release)-$* + if [ "$(dtb_target)" ]; then \ + install -d $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree; \ + install -m644 $(builddir)/build-$*/$(dtb_file) \ + $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree/$(dtb_target); \ + fi +ifeq ($(no_dumpfile),) + makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \ + -x $(builddir)/build-$*/vmlinux + chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* +endif + + $(build_cd) $(kmake) $(build_O) $(conc_level) modules_install \ + INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(pkgdir)/ \ + INSTALL_FW_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$* + + # + # Remove all modules not in the inclusion list. + # + if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \ + 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 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 unknown $(target_flavour).depmod.log; then \ + echo "Error: Missing inclusion module dependencies"; \ + exit 1;\ + fi;\ + fi + +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 -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko \ + $(pkgdir)/lib/modules/$(abi_release)-$*/initrd/; \ + fi + + # Now the image scripts + install -d $(pkgdir)/DEBIAN + for script in postinst postrm preinst prerm; do \ + sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/g' \ + -e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \ + $(DROOT)/control-scripts/$$script > $(pkgdir)/DEBIAN/$$script; \ + chmod 755 $(pkgdir)/DEBIAN/$$script; \ + done + # Install the postinit/postrm scripts in the extras package. + if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \ + install -d $(pkgdir_ex)/DEBIAN; \ + for script in postinst postrm ; do \ + sed -e 's/@@KVER@@/$(release)-$(abinum)-$(target_flavour)/g' \ + debian/control-scripts/$$script.extra > $(pkgdir_ex)/DEBIAN/$$script; \ + chmod 755 $(pkgdir_ex)/DEBIAN/$$script; \ + done; \ + fi + + # 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)-$*; \ + install -d debian/$(bin_pkg_name)-$$sub/DEBIAN; \ + for script in postinst postrm preinst prerm; do \ + sed -e 's/=V/$(abi_release)-$*/g' \ + -e 's/=K/$(install_file)/g' \ + -e 's/=L/$(loader)/g' \ + -e 's@=B@$(build_arch)@g' \ + $(DROOT)/control-scripts/$$script > \ + debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\ + chmod 755 debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\ + done; \ + done +endif + +ifneq ($(skipdbg),true) + # Debug image is simple + install -m644 -D $(builddir)/build-$*/vmlinux \ + $(dbgpkgdir)/usr/lib/debug/boot/vmlinux-$(abi_release)-$* + $(build_cd) $(kmake) $(build_O) modules_install \ + INSTALL_MOD_PATH=$(dbgpkgdir)/usr/lib/debug + # Add .gnu_debuglink sections to each stripped .ko + # pointing to unstripped verson + find $(pkgdir) -name '*.ko' | sed 's|$(pkgdir)||'| while read module ; do \ + if [[ -f "$(dbgpkgdir)/usr/lib/debug/$$module" ]] ; then \ + $(CROSS_COMPILE)objcopy \ + --add-gnu-debuglink=$(dbgpkgdir)/usr/lib/debug/$$module \ + $(pkgdir)/$$module; \ + fi; \ + done + rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/build + rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/source + rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/modules.* + rm -fr $(dbgpkgdir)/usr/lib/debug/lib/firmware +endif + + # The flavour specific headers image + # TODO: Would be nice if we didn't have to dupe the original builddir + install -d -m755 $(hdrdir) + cat $(builddir)/build-$*/.config | \ + sed -e 's/.*CONFIG_DEBUG_INFO=.*/# CONFIG_DEBUG_INFO is not set/g' > \ + $(hdrdir)/.config + chmod 644 $(hdrdir)/.config + $(kmake) O=$(hdrdir) -j1 silentoldconfig prepare scripts + # We'll symlink this stuff + rm -f $(hdrdir)/Makefile + rm -rf $(hdrdir)/include2 $(hdrdir)/source + # Copy over the compilation version. + cp "$(builddir)/build-$*/include/generated/compile.h" \ + "$(hdrdir)/include/generated/compile.h" + # powerpc seems to need some .o files for external module linking. Add them in. +ifeq ($(arch),powerpc) + mkdir -p $(hdrdir)/arch/powerpc/lib + cp $(builddir)/build-$*/arch/powerpc/lib/*.o $(hdrdir)/arch/powerpc/lib +endif + # Script to symlink everything up + $(SHELL) $(DROOT)/scripts/link-headers "$(hdrdir)" "$(basepkg)" "$*" + # The build symlink + install -d debian/$(basepkg)-$*/lib/modules/$(abi_release)-$* + ln -s /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 + install -d $(CURDIR)/debian/$(basepkg)-$*/DEBIAN + for script in postinst; do \ + sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/g' \ + $(DROOT)/control-scripts/headers-$$script > \ + $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \ + chmod 755 $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \ + done + + # 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 + + # + # 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 + 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)-$*/_ + +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: + dh_testdir + dh_testroot + dh_clean -k -plinux-libc-dev + + 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) silentoldconfig + $(hmake) $(conc_level) 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) + +binary-arch-headers: install-arch-headers + dh_testdir + dh_testroot +ifeq ($(do_libc_dev_package),true) +ifneq ($(DEBIAN),debian.master) + echo "non-master branch building linux-libc-dev, aborting" + exit 1 +endif + dh_installchangelogs -plinux-libc-dev + dh_installdocs -plinux-libc-dev + dh_compress -plinux-libc-dev + dh_fixperms -plinux-libc-dev + dh_installdeb -plinux-libc-dev + $(lockme) dh_gencontrol -plinux-libc-dev -- $(libc_dev_version) + dh_md5sums -plinux-libc-dev + dh_builddeb -plinux-libc-dev +endif + +binary-%: pkgimg = $(bin_pkg_name)-$* +binary-%: pkgimg_ex = $(extra_pkg_name)-$* +binary-%: pkghdr = $(hdrs_pkg_name)-$* +binary-%: dbgpkg = $(bin_pkg_name)-$*-dbgsym +binary-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym +binary-%: target_flavour = $* +binary-%: install-% + dh_testdir + dh_testroot + + dh_installchangelogs -p$(pkgimg) + dh_installdocs -p$(pkgimg) + dh_compress -p$(pkgimg) + dh_fixperms -p$(pkgimg) -X/boot/ + dh_installdeb -p$(pkgimg) + dh_shlibdeps -p$(pkgimg) + $(lockme) dh_gencontrol -p$(pkgimg) + dh_md5sums -p$(pkgimg) + dh_builddeb -p$(pkgimg) -- -Zbzip2 -z9 + + if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \ + dh_installchangelogs -p$(pkgimg_ex); \ + dh_installdocs -p$(pkgimg_ex); \ + dh_compress -p$(pkgimg_ex); \ + dh_fixperms -p$(pkgimg_ex) -X/boot/; \ + dh_installdeb -p$(pkgimg_ex); \ + dh_shlibdeps -p$(pkgimg_ex); \ + $(lockme) dh_gencontrol -p$(pkgimg_ex); \ + dh_md5sums -p$(pkgimg_ex); \ + dh_builddeb -p$(pkgimg_ex) -- -Zbzip2 -z9; \ + fi + + dh_installchangelogs -p$(pkghdr) + dh_installdocs -p$(pkghdr) + dh_compress -p$(pkghdr) + dh_fixperms -p$(pkghdr) + dh_shlibdeps -p$(pkghdr) + dh_installdeb -p$(pkghdr) + $(lockme) dh_gencontrol -p$(pkghdr) + dh_md5sums -p$(pkghdr) + dh_builddeb -p$(pkghdr) + +ifneq ($(skipsub),true) + @set -e; for sub in $($(*)_sub); do \ + pkg=$(bin_pkg_name)-$$sub; \ + dh_installchangelogs -p$$pkg; \ + dh_installdocs -p$$pkg; \ + dh_compress -p$$pkg; \ + dh_fixperms -p$$pkg -X/boot/; \ + dh_shlibdeps -p$$pkg; \ + dh_installdeb -p$$pkg; \ + $(lockme) dh_gencontrol -p$$pkg; \ + dh_md5sums -p$$pkg; \ + dh_builddeb -p$$pkg; \ + done +endif + +ifneq ($(skipdbg),true) + dh_installchangelogs -p$(dbgpkg) + dh_installdocs -p$(dbgpkg) + dh_compress -p$(dbgpkg) + dh_fixperms -p$(dbgpkg) + dh_installdeb -p$(dbgpkg) + $(lockme) dh_gencontrol -p$(dbgpkg) + dh_md5sums -p$(dbgpkg) + dh_builddeb -p$(dbgpkg) + + # Hokay...here's where we do a little twiddling... + # Renaming the debug package prevents it from getting into + # the primary archive, and therefore prevents this very large + # package from being mirrored. It is instead, through some + # archive admin hackery, copied to http://ddebs.ubuntu.com. + # + mv ../$(dbgpkg)_$(release)-$(revision)_$(arch).deb \ + ../$(dbgpkg)_$(release)-$(revision)_$(arch).ddeb + set -e; \ + ( \ + $(lockme_cmd) 9 || exit 1; \ + if grep -qs '^Build-Debug-Symbols: yes$$' /CurrentlyBuilding; then \ + sed -i '/^$(dbgpkg)_/s/\.deb /.ddeb /' debian/files; \ + else \ + grep -v '^$(dbgpkg)_.*$$' debian/files > debian/files.new; \ + mv debian/files.new debian/files; \ + fi; \ + ) 9>$(lockme_file) + # Now, the package wont get into the archive, but it will get put + # into the debug system. +endif +ifneq ($(full_build),false) + # Clean out this flavours build directory. + rm -rf $(builddir)/build-$* + # Clean out the debugging package source directory. + rm -rf $(dbgpkgdir) +endif + +# +# per-architecture packages +# +builddirpa = $(builddir)/tools-perarch + +$(stampdir)/stamp-prepare-perarch: + @echo "Preparing perarch ..." +ifeq ($(do_tools),true) + rm -rf $(builddirpa)/tools + install -d $(builddirpa)/tools + for i in *; do ln -s $(CURDIR)/$$i $(builddirpa)/tools/; done + rm $(builddirpa)/tools/tools + rsync -a tools/ $(builddirpa)/tools/tools/ +endif + touch $@ + +$(stampdir)/stamp-build-perarch: $(stampdir)/stamp-prepare-perarch +ifeq ($(do_tools),true) + cd $(builddirpa)/tools/tools/perf && \ + make prefix=/usr HAVE_CPLUS_DEMANGLE=1 CROSS_COMPILE=$(CROSS_COMPILE) $(conc_level) + if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \ + cd $(builddirpa)/tools/tools/power/x86/x86_energy_perf_policy && make CROSS_COMPILE=$(CROSS_COMPILE); \ + cd $(builddirpa)/tools/tools/power/x86/turbostat && make CROSS_COMPILE=$(CROSS_COMPILE); \ + cd $(builddirpa)/tools/tools/hv && make CROSS_COMPILE=$(CROSS_COMPILE) CFLAGS=-I../../include; \ + fi +endif + @touch $@ + +install-perarch: toolspkgdir = $(CURDIR)/debian/$(tools_pkg_name) +install-perarch: $(stampdir)/stamp-build-perarch + # Add the tools. +ifeq ($(do_tools),true) + install -d $(toolspkgdir)/usr/bin + install -s -m755 $(builddirpa)/tools/tools/perf/perf \ + $(toolspkgdir)/usr/bin/perf_$(abi_release) + if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \ + install -s -m755 $(builddirpa)/tools/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy \ + $(toolspkgdir)/usr/bin/x86_energy_perf_policy_$(abi_release); \ + install -s -m755 $(builddirpa)/tools/tools/power/x86/turbostat/turbostat \ + $(toolspkgdir)/usr/bin/turbostat_$(abi_release); \ + install -d $(toolspkgdir)/usr/sbin; \ + install -s -m755 $(builddirpa)/tools/tools/hv/hv_kvp_daemon \ + $(toolspkgdir)/usr/sbin/hv_kvp_daemon_$(abi_release); \ + fi +endif + +binary-perarch: toolspkg = $(tools_pkg_name) +binary-perarch: install-perarch + @# Empty for make to be happy +ifeq ($(do_tools),true) + dh_installchangelogs -p$(toolspkg) + dh_installdocs -p$(toolspkg) + dh_compress -p$(toolspkg) + dh_fixperms -p$(toolspkg) + dh_shlibdeps -p$(toolspkg) + dh_installdeb -p$(toolspkg) + $(lockme) dh_gencontrol -p$(toolspkg) + dh_md5sums -p$(toolspkg) + dh_builddeb -p$(toolspkg) +endif + +binary-debs: binary-perarch $(addprefix binary-,$(flavours)) + +build-arch-deps-$(do_flavour_image_package) += $(addprefix $(stampdir)/stamp-build-,$(flavours)) +build-arch: $(build-arch-deps-true) + +ifeq ($(AUTOBUILD),) +binary-arch-deps-$(do_flavour_image_package) += binary-udebs +else +binary-arch-deps-$(do_flavour_image_package) = binary-debs +endif +binary-arch-deps-$(do_libc_dev_package) += binary-arch-headers +ifneq ($(do_common_headers_indep),true) +binary-arch-deps-$(do_flavour_header_package) += binary-headers +endif +binary-arch: $(binary-arch-deps-true) --- linux-3.2.0.orig/debian/rules.d/1-maintainer.mk +++ linux-3.2.0/debian/rules.d/1-maintainer.mk @@ -0,0 +1,121 @@ +# The following targets are for the maintainer only! do not run if you don't +# know what they do. + +.PHONY: printenv updateconfigs printchanges insertchanges startnewrelease diffupstream help updateportsconfigs editportsconfigs + +help: + @echo "These are the targets in addition to the normal $(DEBIAN) ones:" + @echo + @echo " printenv : Print some variables used in the build" + @echo + @echo " updateconfigs : Update core arch configs" + @echo + @echo " editconfigs : Update core arch configs interractively" + @echo " genconfigs : Generate core arch configs in CONFIGS/*" + @echo + @echo " updateportsconfigs : Update ports arch configs" + @echo + @echo " editportsconfigs : Update ports arch configs interactivly" + @echo " genportconfigs : Generate ports arch configs in CONFIGS/*" + @echo + @echo " printchanges : Print the current changelog entries (from git)" + @echo + @echo " insertchanges : Insert current changelog entries (from git)" + @echo + @echo " startnewrelease : Start a new changelog set" + @echo + @echo " diffupstream : Diff stock kernel code against upstream (git)" + @echo + @echo " help : If you are kernel hacking, you need the professional" + @echo " version of this" + @echo + @echo "Environment variables:" + @echo + @echo " NOKERNLOG : Do not add upstream kernel commits to changelog" + @echo " CONCURRENCY_LEVEL=X" + @echo " : Use -jX for kernel compile" + @echo " PRINTSHAS : Include SHAs for commits in changelog" + +printdebian: + @echo "$(DEBIAN)" + +updateconfigs defaultconfigs editconfigs genconfigs dumpconfigs: + dh_testdir; + $(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ + rm -rf build + +updateportsconfigs defaultportsconfigs editportsconfigs genportsconfigs askconfigs: + dh_testdir; + $(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ ports + rm -rf build + +printenv: + dh_testdir + @echo "src package name = $(src_pkg_name)" + @echo "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 "gitver = $(gitver)" + @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 "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_tools = $(do_tools)" + @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)" + +prev_release="$(release)-$(prev_revision)" +printchanges: + @baseCommit=$$(git log --pretty=format:'%H %s' | \ + awk '/UBUNTU: '".*Ubuntu-$(prev_release)"'$$/ { print $$1; exit }'); \ + git log "$$baseCommit"..HEAD | \ + perl -w -f $(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts) + +insertchanges: + @perl -w -f $(DROOT)/scripts/misc/insert-changes.pl $(DROOT) $(DEBIAN) + +diffupstream: + @git diff-tree -p refs/remotes/linux-2.6/master..HEAD $(shell ls | grep -vE '^(ubuntu|$(DEBIAN)|\.git.*)') + +startnewrelease: + dh_testdir + @nextminor=$(shell expr `echo $(revision) | awk -F. '{print $$2}'` + 1); \ + nextmajor=$(shell expr `echo $(revision) | awk -F. '{print $$1}'` + 1); \ + now="$(shell date -R)"; \ + echo "Creating new changelog set for $(release)-$$nextmajor.$$nextminor..."; \ + echo -e "$(src_pkg_name) ($(release)-$$nextmajor.$$nextminor) UNRELEASED; urgency=low\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 + --- linux-3.2.0.orig/debian/rules.d/0-common-vars.mk +++ linux-3.2.0/debian/rules.d/0-common-vars.mk @@ -0,0 +1,232 @@ +# +# The source package name will be the first token from $(DEBIAN)/changelog +# +src_pkg_name=$(shell sed -n '1s/^\(.*\) (.*).*$$/\1/p' $(DEBIAN)/changelog) + +# Get some version info +series := oneiric +release := $(shell sed -n '1s/^$(src_pkg_name).*(\(.*\)-.*).*$$/\1/p' $(DEBIAN)/changelog) +revisions := $(shell sed -n 's/^$(src_pkg_name)\ .*($(release)-\(.*\)).*$$/\1/p' $(DEBIAN)/changelog | tac) +revision ?= $(word $(words $(revisions)),$(revisions)) +prev_revisions := $(filter-out $(revision),0.0 $(revisions)) +prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions)) + +family=ubuntu + +# This is an internally used mechanism for the daily kernel builds. It +# creates packages whose ABI is suffixed with a minimal representation of +# the current git HEAD sha. If .git/HEAD is not present, then it uses the +# uuidgen program, +# +# AUTOBUILD can also be used by anyone wanting to build a custom kernel +# image, or rebuild the entire set of Ubuntu packages using custom patches +# or configs. +AUTOBUILD= + +# +# This is a way to support some external variables. A good example is +# a local setup for ccache and distcc See LOCAL_ENV_CC and +# LOCAL_ENV_DISTCC_HOSTS in the definition of kmake. +# For example: +# LOCAL_ENV_CC="ccache distcc" +# LOCAL_ENV_DISTCC_HOSTS="localhost 10.0.2.5 10.0.2.221" +# +-include $(CURDIR)/../.$(series)-env + +ifneq ($(AUTOBUILD),) +skipabi = true +skipmodule = 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 -e 's/\..*//')$(abi_suffix) +prev_abinum := $(shell echo $(prev_revision) | sed -e 's/\..*//')$(abi_suffix) +abi_release := $(release)-$(abinum) + +uploadnum := $(shell echo $(revision) | sed -e 's/.*\.//') +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=armel' +# within an x86'en schroot. This only gets you part of the way since the +# packaging phase fails, but you can at least compile the kernel quickly. +# +arch := $(DEB_HOST_ARCH) +ifneq ($(arch),$(DEB_HOST_ARCH)) + CROSS_COMPILE ?= $(shell dpkg-architecture -a$(arch) -qDEB_HOST_GNU_TYPE -f 2>/dev/null)- +endif + +# +# Detect invocations of the form 'dpkg-buildpackage -B -aarmel' within +# an x86'en schroot. This is the only way to build all of the packages +# (except for tools). +# +ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)- +endif + +abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(revision)/$(arch) +prev_abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(prev_revision)/$(arch) +commonconfdir := $(CURDIR)/$(DEBIAN)/config +archconfdir := $(CURDIR)/$(DEBIAN)/config/$(arch) +sharedconfdir := $(CURDIR)/debian.master/config +builddir := $(CURDIR)/debian/build +stampdir := $(CURDIR)/debian/stamps + +# +# The binary package name always starts with linux-image-$KVER-$ABI.$UPLOAD_NUM. There +# are places that you'll find linux-image hard coded, but I guess thats OK since the +# assumption that the binary package always starts with linux-image will never change. +# +bin_pkg_name=linux-image-$(abi_release) +extra_pkg_name=linux-image-extra-$(abi_release) +hdrs_pkg_name=linux-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. +do_doc_package=true +do_doc_package_content=true +ifeq ($(full_build),false) +do_doc_package_content=false +endif +doc_pkg_name=$(src_pkg_name)-doc + +# +# Similarly with the linux-source package, you need not build it as a developer. Its +# somewhat I/O intensive and utterly useless. +# +do_source_package=true +do_source_package_content=true +ifeq ($(full_build),false) +do_source_package_content=false +endif + +# linux-libc-dev may not be needed, default to building it. +do_libc_dev_package=true + +# 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 + +# 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 + +# The general flavour specific image package. +do_flavour_image_package=true + +# The general flavour specific header package. +do_flavour_header_package=true + +# 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) + +# target_flavour is filled in for each step +kmake = make ARCH=$(build_arch) \ + CROSS_COMPILE=$(CROSS_COMPILE) \ + KERNELVERSION=$(abi_release)-$(target_flavour) \ + CONFIG_DEBUG_SECTION_MISMATCH=y \ + KBUILD_BUILD_VERSION="$(uploadnum)" \ + LOCALVERSION= localver-extra= +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) --- linux-3.2.0.orig/debian/rules.d/3-binary-indep.mk +++ linux-3.2.0/debian/rules.d/3-binary-indep.mk @@ -0,0 +1,147 @@ +build-indep: + +docpkg = $(doc_pkg_name) +docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg) +install-doc: install-headers +ifeq ($(do_doc_package),true) + dh_testdir + dh_testroot + dh_clean -k -p$(docpkg) + + 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; \ + mv $(docdir)/$(doc_pkg_name)-tmp/Documentation/DocBook \ + $(docdir)/html; \ + rm -rf $(docdir)/$(doc_pkg_name)-tmp; \ + fi +endif + # Copy the rest + cp -a Documentation/* $(docdir) + rm -rf $(docdir)/DocBook + find $(docdir) -name .gitignore | xargs rm -f +endif + +indep_hdrpkg = $(hdrs_pkg_name) +indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg) +install-headers: +ifeq ($(do_flavour_header_package),true) + dh_testdir + dh_testroot + dh_clean -k -p$(indep_hdrpkg) + + 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 drivers/media/dvb/dvb-core/*.h $(indep_hdrdir)/drivers/media/dvb/dvb-core + cp -a drivers/media/video/*.h $(indep_hdrdir)/drivers/media/video + cp -a drivers/media/dvb/frontends/*.h $(indep_hdrdir)/drivers/media/dvb/frontends + 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 + +srcpkg = $(src_pkg_name)-source-$(release) +srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg) +balldir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)/$(srcpkg) +install-source: install-doc +ifeq ($(do_source_package),true) + dh_testdir + dh_testroot + dh_clean -k -p$(srcpkg) + + install -d $(srcdir) +ifeq ($(do_source_package_content),true) + find . -path './debian' -prune -o -path './$(DEBIAN)' -prune -o \ + -path './.*' -prune -o -print | \ + cpio -pd --preserve-modification-time $(balldir) + (cd $(srcdir); tar cf - $(srcpkg)) | bzip2 -9c > \ + $(srcdir)/$(srcpkg).tar.bz2 + rm -rf $(balldir) + find './debian' './$(DEBIAN)' \ + -path './debian/linux-*' -prune -o \ + -path './debian/$(src_pkg_name)-*' -prune -o \ + -path './debian/build' -prune -o \ + -path './debian/files' -prune -o \ + -path './debian/stamps' -prune -o \ + -path './debian/tmp' -prune -o \ + -print | \ + cpio -pd --preserve-modification-time $(srcdir) + ln -s $(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: install-source +ifeq ($(do_tools),true) + dh_testdir + dh_testroot + dh_clean -k -p$(toolspkg) + + install -d $(toolsbin) + install -d $(toolsman)/man1 + + install -m755 debian/tools/perf $(toolsbin)/perf + if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \ + install -m755 debian/tools/x86_energy_perf_policy $(toolsbin)/x86_energy_perf_policy; \ + install -m755 debian/tools/turbostat $(toolsbin)/turbostat; \ + install -d $(toolssbin) ; \ + install -m755 debian/tools/generic $(toolssbin)/hv_kvp_daemon; \ + fi + + rm -rf $(builddir)/tools + install -d $(builddir)/tools + for i in *; do ln -s $(CURDIR)/$$i $(builddir)/tools/; done + rm $(builddir)/tools/tools + rsync -a tools/ $(builddir)/tools/tools/ + + cd $(builddir)/tools/tools/perf && make man + install -m644 $(builddir)/tools/tools/perf/Documentation/*.1 \ + $(toolsman)/man1 + if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \ + install -d $(toolsman)/man8; \ + install -m644 $(CURDIR)/tools/power/x86/x86_energy_perf_policy/*.8 $(toolsman)/man8; \ + install -m644 $(CURDIR)/tools/power/x86/turbostat/*.8 $(toolsman)/man8; \ + install -m644 $(CURDIR)/tools/hv/*.8 $(toolsman)/man8; \ + fi +endif + +install-indep: install-tools + +# This is just to make it easy to call manually. Normally done in +# binary-indep target during builds. +binary-headers: install-headers + dh_testdir + dh_testroot + 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: install-indep + dh_testdir + dh_testroot + + dh_installchangelogs -i + dh_installdocs -i + dh_compress -i + dh_fixperms -i + dh_installdeb -i + $(lockme) dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i --- linux-3.2.0.orig/debian/rules.d/4-checks.mk +++ linux-3.2.0/debian/rules.d/4-checks.mk @@ -0,0 +1,24 @@ +# Check ABI for package against last release (if not same abinum) +abi-check-%: $(stampdir)/stamp-build-% + install -d $(abidir) + sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/' \ + $(builddir)/build-$*/Module.symvers | sort > $(abidir)/$* + @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-build-% + install -d $(abidir) + find $(builddir)/build-$*/ -name \*.ko | \ + sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > $(abidir)/$*.modules + @perl -f $(DROOT)/scripts/module-check "$*" \ + "$(prev_abidir)" "$(abidir)" $(skipmodule) + +checks-%: module-check-% abi-check-% + @echo checks-$* + +# Check the config against the known options list. +config-prepare-check-%: $(stampdir)/stamp-prepare-tree-% + @perl -f $(DROOT)/scripts/config-check \ + $(builddir)/build-$*/.config "$(arch)" "$*" "$(sharedconfdir)" "$(skipconfig)" + --- linux-3.2.0.orig/debian/rules.d/5-udebs.mk +++ linux-3.2.0/debian/rules.d/5-udebs.mk @@ -0,0 +1,38 @@ +# Do udebs if not disabled in the arch-specific makefile +binary-udebs: binary-debs +ifeq ($(disable_d_i),) + @$(MAKE) --no-print-directory -f $(DROOT)/rules DEBIAN=$(DEBIAN) \ + do-binary-udebs +endif + +do-binary-udebs: debian/control + dh_testdir + dh_testroot + + # unpack the kernels into a temporary directory + mkdir -p debian/d-i-${arch} + + imagelist=$$(cat $(builddir)/kernel-versions | grep ^${arch} | awk '{print $$4}') && \ + for i in $$imagelist; do \ + dpkg -x $$(ls ../linux-image-$$i\_$(release)-$(revision)_${arch}.deb) \ + debian/d-i-${arch}; \ + /sbin/depmod -b debian/d-i-${arch} $$i; \ + done + + # kernel-wedge will error if no modules unless this is touched + touch $(CURDIR)/debian/build/no-modules + + touch ignore-dups + export SOURCEDIR=$(CURDIR)/debian/d-i-${arch} && \ + cd $(builddir) && \ + kernel-wedge install-files && \ + kernel-wedge check + + # Build just the udebs + dilist=$$(dh_listpackages -s | grep "\-di$$") && \ + [ -z "$dilist" ] || \ + for i in $$dilist; do \ + dh_fixperms -p$$i; \ + $(lockme) dh_gencontrol -p$$i; \ + dh_builddeb -p$$i; \ + done --- linux-3.2.0.orig/init/Kconfig +++ linux-3.2.0/init/Kconfig @@ -76,6 +76,13 @@ Maximum of each of the number of arguments and environment variables passed to init from the kernel command line. +config INIT_PASS_ALL_PARAMS + bool "Pass all (known and unknown) kernel parameters to init" + default n + help + Pass all kernel command line parameters to init, this includes + those consumed by kernel modules. This is useful for upstart + based systems. If in doubt say N. config CROSS_COMPILE string "Cross-compiler tool prefix" @@ -212,6 +219,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 SWAP bool "Support for paging of anonymous memory (swap)" depends on MMU && BLOCK --- linux-3.2.0.orig/init/version.c +++ linux-3.2.0/init/version.c @@ -40,7 +40,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-3.2.0.orig/init/main.c +++ linux-3.2.0/init/main.c @@ -113,6 +113,11 @@ */ #define MAX_INIT_ARGS CONFIG_INIT_ENV_ARG_LIMIT #define MAX_INIT_ENVS CONFIG_INIT_ENV_ARG_LIMIT +#ifdef CONFIG_INIT_PASS_ALL_PARAMS +#define INIT_PASS_FUNCTION pass_all_bootoptions +#else +#define INIT_PASS_FUNCTION pass_unknown_bootoptions +#endif extern void time_init(void); /* Default late time init is NULL. archs can override this later. */ @@ -200,7 +205,7 @@ static int __init quiet_kernel(char *str) { - console_loglevel = 4; + console_loglevel = 2; return 0; } @@ -227,10 +232,11 @@ early_param("loglevel", loglevel); /* - * Unknown boot options get handed to init, unless they look like - * unused parameters (modprobe will find them in /proc/cmdline). + * Select boot options to hand to init. If all is set hand off them all + * otherwise only hand off unused ones which do not apply to modules + * (modprobe will find them in /proc/cmdline). */ -static int __init unknown_bootoption(char *param, char *val) +static int __init pass_bootoption(char *param, char *val, int all) { /* Change NUL term back to "=", to make "param" the whole string. */ if (val) { @@ -246,11 +252,11 @@ } /* Handle obsolete-style parameters */ - if (obsolete_checksetup(param)) + if (obsolete_checksetup(param) && !all) return 0; /* Unused module parameter. */ - if (strchr(param, '.') && (!val || strchr(param, '.') < val)) + if (!all && strchr(param, '.') && (!val || strchr(param, '.') < val)) return 0; if (panic_later) @@ -281,6 +287,16 @@ } return 0; } +static int __init pass_unknown_bootoptions(char *param, char *val, int known) +{ + if (known) + return 0; + return pass_bootoption(param, val, 0); +} +static int __init pass_all_bootoptions(char *param, char *val, int known) +{ + return pass_bootoption(param, val, 1); +} #ifdef CONFIG_DEBUG_PAGEALLOC int __read_mostly debug_pagealloc_enabled = 0; @@ -387,10 +403,13 @@ } /* Check for early params. */ -static int __init do_early_param(char *param, char *val) +static int __init do_early_param(char *param, char *val, int known) { const struct obs_kernel_param *p; + if (known) + return 0; + for (p = __setup_start; p < __setup_end; p++) { if ((p->early && parameq(param, p->str)) || (strcmp(param, "console") == 0 && @@ -511,7 +530,7 @@ parse_early_param(); parse_args("Booting kernel", static_command_line, __start___param, __stop___param - __start___param, - &unknown_bootoption); + &INIT_PASS_FUNCTION); jump_label_init(); @@ -563,9 +582,6 @@ early_boot_irqs_disabled = false; local_irq_enable(); - /* Interrupts are enabled now so all GFP allocations are safe. */ - gfp_allowed_mask = __GFP_BITS_MASK; - kmem_cache_init_late(); /* @@ -609,7 +625,7 @@ pidmap_init(); anon_vma_init(); #ifdef CONFIG_X86 - if (efi_enabled) + if (efi_enabled(EFI_RUNTIME_SERVICES)) efi_enter_virtual_mode(); #endif thread_info_cache_init(); @@ -798,6 +814,10 @@ * Wait until kthreadd is all set-up. */ wait_for_completion(&kthreadd_done); + + /* Now the scheduler is fully set up and can do blocking allocations */ + gfp_allowed_mask = __GFP_BITS_MASK; + /* * init can allocate pages on any node */ @@ -826,6 +846,12 @@ (void) sys_dup(0); (void) sys_dup(0); /* + * We need to ensure that the filesystem is ready by this point, wait for + * async_populate_rootfs to complete. + */ + populate_rootfs_wait(); + + /* * check if there is an early userspace init. If yes, let it do all * the work */ --- linux-3.2.0.orig/init/initramfs.c +++ linux-3.2.0/init/initramfs.c @@ -8,6 +8,8 @@ #include #include #include +#include +#include static __initdata char *message; static void __init error(char *x) @@ -569,7 +571,15 @@ } #endif -static int __init populate_rootfs(void) +LIST_HEAD(populate_rootfs_domain); + +void populate_rootfs_wait(void) +{ + async_synchronize_full_domain(&populate_rootfs_domain); +} +EXPORT_SYMBOL(populate_rootfs_wait); + +static void __init async_populate_rootfs(void *data, async_cookie_t cookie) { char *err = unpack_to_rootfs(__initramfs_start, __initramfs_size); if (err) @@ -582,7 +592,7 @@ initrd_end - initrd_start); if (!err) { free_initrd(); - return 0; + return; } else { clean_rootfs(); unpack_to_rootfs(__initramfs_start, __initramfs_size); @@ -606,6 +616,27 @@ free_initrd(); #endif } + return; +} + +static int __initdata rootfs_populated; + +static int __init populate_rootfs_early(void) +{ + if (num_online_cpus() > 1) { + rootfs_populated = 1; + async_schedule_domain(async_populate_rootfs, NULL, + &populate_rootfs_domain); + } + return 0; +} +static int __init populate_rootfs(void) +{ + if (!rootfs_populated) + async_schedule_domain(async_populate_rootfs, NULL, + &populate_rootfs_domain); return 0; } + +earlyrootfs_initcall(populate_rootfs_early); rootfs_initcall(populate_rootfs); --- linux-3.2.0.orig/init/do_mounts.c +++ linux-3.2.0/init/do_mounts.c @@ -398,15 +398,42 @@ } #ifdef CONFIG_ROOT_NFS + +#define NFSROOT_TIMEOUT_MIN 5 +#define NFSROOT_TIMEOUT_MAX 30 +#define NFSROOT_RETRY_MAX 5 + static int __init mount_nfs_root(void) { char *root_dev, *root_data; + unsigned int timeout; + int try, err; - if (nfs_root_data(&root_dev, &root_data) != 0) - return 0; - if (do_mount_root(root_dev, "nfs", root_mountflags, root_data) != 0) + err = nfs_root_data(&root_dev, &root_data); + if (err != 0) return 0; - return 1; + + /* + * The server or network may not be ready, so try several + * times. Stop after a few tries in case the client wants + * to fall back to other boot methods. + */ + timeout = NFSROOT_TIMEOUT_MIN; + for (try = 1; ; try++) { + err = do_mount_root(root_dev, "nfs", + root_mountflags, root_data); + if (err == 0) + return 1; + if (try > NFSROOT_RETRY_MAX) + break; + + /* Wait, in case the server refused us immediately */ + ssleep(timeout); + timeout <<= 1; + if (timeout > NFSROOT_TIMEOUT_MAX) + timeout = NFSROOT_TIMEOUT_MAX; + } + return 0; } #endif @@ -443,7 +470,7 @@ void __init mount_root(void) { #ifdef CONFIG_ROOT_NFS - if (MAJOR(ROOT_DEV) == UNNAMED_MAJOR) { + if (ROOT_DEV == Root_NFS) { if (mount_nfs_root()) return; --- linux-3.2.0.orig/init/noinitramfs.c +++ linux-3.2.0/init/noinitramfs.c @@ -22,6 +22,8 @@ #include #include +LIST_HEAD(populate_rootfs_domain); + /* * Create a simple rootfs that is similar to the default initramfs */ --- linux-3.2.0.orig/virt/kvm/iommu.c +++ linux-3.2.0/virt/kvm/iommu.c @@ -239,9 +239,13 @@ return -ENODEV; } + mutex_lock(&kvm->slots_lock); + kvm->arch.iommu_domain = iommu_domain_alloc(&pci_bus_type); - if (!kvm->arch.iommu_domain) - return -ENOMEM; + if (!kvm->arch.iommu_domain) { + r = -ENOMEM; + goto out_unlock; + } if (!allow_unsafe_assigned_interrupts && !iommu_domain_has_cap(kvm->arch.iommu_domain, @@ -252,17 +256,16 @@ " module option.\n", __func__); iommu_domain_free(kvm->arch.iommu_domain); kvm->arch.iommu_domain = NULL; - return -EPERM; + r = -EPERM; + goto out_unlock; } r = kvm_iommu_map_memslots(kvm); if (r) - goto out_unmap; - - return 0; + kvm_iommu_unmap_memslots(kvm); -out_unmap: - kvm_iommu_unmap_memslots(kvm); +out_unlock: + mutex_unlock(&kvm->slots_lock); return r; } @@ -309,6 +312,11 @@ } } +void kvm_iommu_unmap_pages(struct kvm *kvm, struct kvm_memory_slot *slot) +{ + kvm_iommu_put_pages(kvm, slot->base_gfn, slot->npages); +} + static int kvm_iommu_unmap_memslots(struct kvm *kvm) { int i, idx; @@ -317,10 +325,9 @@ idx = srcu_read_lock(&kvm->srcu); slots = kvm_memslots(kvm); - for (i = 0; i < slots->nmemslots; i++) { - kvm_iommu_put_pages(kvm, slots->memslots[i].base_gfn, - slots->memslots[i].npages); - } + for (i = 0; i < slots->nmemslots; i++) + kvm_iommu_unmap_pages(kvm, &slots->memslots[i]); + srcu_read_unlock(&kvm->srcu, idx); return 0; @@ -334,7 +341,11 @@ if (!domain) return 0; + mutex_lock(&kvm->slots_lock); kvm_iommu_unmap_memslots(kvm); + kvm->arch.iommu_domain = NULL; + mutex_unlock(&kvm->slots_lock); + iommu_domain_free(domain); return 0; } --- linux-3.2.0.orig/virt/kvm/kvm_main.c +++ linux-3.2.0/virt/kvm/kvm_main.c @@ -289,15 +289,15 @@ */ idx = srcu_read_lock(&kvm->srcu); spin_lock(&kvm->mmu_lock); + kvm->mmu_notifier_seq++; need_tlb_flush = kvm_unmap_hva(kvm, address) | kvm->tlbs_dirty; - spin_unlock(&kvm->mmu_lock); - srcu_read_unlock(&kvm->srcu, idx); - /* we've to flush the tlb before the pages can be freed */ if (need_tlb_flush) kvm_flush_remote_tlbs(kvm); + spin_unlock(&kvm->mmu_lock); + srcu_read_unlock(&kvm->srcu, idx); } static void kvm_mmu_notifier_change_pte(struct mmu_notifier *mn, @@ -335,12 +335,12 @@ for (; start < end; start += PAGE_SIZE) need_tlb_flush |= kvm_unmap_hva(kvm, start); need_tlb_flush |= kvm->tlbs_dirty; - spin_unlock(&kvm->mmu_lock); - srcu_read_unlock(&kvm->srcu, idx); - /* we've to flush the tlb before the pages can be freed */ if (need_tlb_flush) kvm_flush_remote_tlbs(kvm); + + spin_unlock(&kvm->mmu_lock); + srcu_read_unlock(&kvm->srcu, idx); } static void kvm_mmu_notifier_invalidate_range_end(struct mmu_notifier *mn, @@ -378,13 +378,14 @@ idx = srcu_read_lock(&kvm->srcu); spin_lock(&kvm->mmu_lock); - young = kvm_age_hva(kvm, address); - spin_unlock(&kvm->mmu_lock); - srcu_read_unlock(&kvm->srcu, idx); + young = kvm_age_hva(kvm, address); if (young) kvm_flush_remote_tlbs(kvm); + spin_unlock(&kvm->mmu_lock); + srcu_read_unlock(&kvm->srcu, idx); + return young; } @@ -802,12 +803,13 @@ if (r) goto out_free; - /* map the pages in iommu page table */ + /* map/unmap the pages in iommu page table */ if (npages) { r = kvm_iommu_map_pages(kvm, &new); if (r) goto out_free; - } + } else + kvm_iommu_unmap_pages(kvm, &old); r = -ENOMEM; slots = kzalloc(sizeof(struct kvm_memslots), GFP_KERNEL); @@ -1399,21 +1401,38 @@ } int kvm_gfn_to_hva_cache_init(struct kvm *kvm, struct gfn_to_hva_cache *ghc, - gpa_t gpa) + gpa_t gpa, unsigned long len) { struct kvm_memslots *slots = kvm_memslots(kvm); int offset = offset_in_page(gpa); - gfn_t gfn = gpa >> PAGE_SHIFT; + gfn_t start_gfn = gpa >> PAGE_SHIFT; + gfn_t end_gfn = (gpa + len - 1) >> PAGE_SHIFT; + gfn_t nr_pages_needed = end_gfn - start_gfn + 1; + gfn_t nr_pages_avail; ghc->gpa = gpa; ghc->generation = slots->generation; - ghc->memslot = __gfn_to_memslot(slots, gfn); - ghc->hva = gfn_to_hva_many(ghc->memslot, gfn, NULL); - if (!kvm_is_error_hva(ghc->hva)) + ghc->len = len; + ghc->memslot = __gfn_to_memslot(slots, start_gfn); + ghc->hva = gfn_to_hva_many(ghc->memslot, start_gfn, &nr_pages_avail); + if (!kvm_is_error_hva(ghc->hva) && nr_pages_avail >= nr_pages_needed) { ghc->hva += offset; - else - return -EFAULT; - + } else { + /* + * If the requested region crosses two memslots, we still + * verify that the entire region is valid here. + */ + while (start_gfn <= end_gfn) { + ghc->memslot = __gfn_to_memslot(slots, start_gfn); + ghc->hva = gfn_to_hva_many(ghc->memslot, start_gfn, + &nr_pages_avail); + if (kvm_is_error_hva(ghc->hva)) + return -EFAULT; + start_gfn += nr_pages_avail; + } + /* Use the slow path for cross page reads and writes. */ + ghc->memslot = NULL; + } return 0; } EXPORT_SYMBOL_GPL(kvm_gfn_to_hva_cache_init); @@ -1424,8 +1443,13 @@ struct kvm_memslots *slots = kvm_memslots(kvm); int r; + BUG_ON(len > ghc->len); + if (slots->generation != ghc->generation) - kvm_gfn_to_hva_cache_init(kvm, ghc, ghc->gpa); + kvm_gfn_to_hva_cache_init(kvm, ghc, ghc->gpa, ghc->len); + + if (unlikely(!ghc->memslot)) + return kvm_write_guest(kvm, ghc->gpa, data, len); if (kvm_is_error_hva(ghc->hva)) return -EFAULT; @@ -1445,8 +1469,13 @@ struct kvm_memslots *slots = kvm_memslots(kvm); int r; + BUG_ON(len > ghc->len); + if (slots->generation != ghc->generation) - kvm_gfn_to_hva_cache_init(kvm, ghc, ghc->gpa); + kvm_gfn_to_hva_cache_init(kvm, ghc, ghc->gpa, ghc->len); + + if (unlikely(!ghc->memslot)) + return kvm_read_guest(kvm, ghc->gpa, data, len); if (kvm_is_error_hva(ghc->hva)) return -EFAULT; @@ -1665,6 +1694,10 @@ goto vcpu_destroy; mutex_lock(&kvm->lock); + if (!kvm_vcpu_compatible(vcpu)) { + r = -EINVAL; + goto unlock_vcpu_destroy; + } if (atomic_read(&kvm->online_vcpus) == KVM_MAX_VCPUS) { r = -EINVAL; goto unlock_vcpu_destroy; --- linux-3.2.0.orig/virt/kvm/ioapic.c +++ linux-3.2.0/virt/kvm/ioapic.c @@ -73,9 +73,12 @@ u32 redir_index = (ioapic->ioregsel - 0x10) >> 1; u64 redir_content; - ASSERT(redir_index < IOAPIC_NUM_PINS); + if (redir_index < IOAPIC_NUM_PINS) + redir_content = + ioapic->redirtbl[redir_index].bits; + else + redir_content = ~0ULL; - redir_content = ioapic->redirtbl[redir_index].bits; result = (ioapic->ioregsel & 0x1) ? (redir_content >> 32) & 0xffffffff : redir_content & 0xffffffff; --- linux-3.2.0.orig/virt/kvm/irq_comm.c +++ linux-3.2.0/virt/kvm/irq_comm.c @@ -318,6 +318,7 @@ */ hlist_for_each_entry(ei, n, &rt->map[ue->gsi], link) if (ei->type == KVM_IRQ_ROUTING_MSI || + ue->type == KVM_IRQ_ROUTING_MSI || ue->u.irqchip.irqchip == ei->irqchip.irqchip) return r; --- linux-3.2.0.orig/tools/usb/ffs-test.c +++ linux-3.2.0/tools/usb/ffs-test.c @@ -324,7 +324,7 @@ ret = t->in(t, t->buf, t->buf_size); if (ret > 0) { - ret = t->out(t, t->buf, t->buf_size); + ret = t->out(t, t->buf, ret); name = out_name; op = "write"; } else { --- linux-3.2.0.orig/tools/power/cpupower/Makefile +++ linux-3.2.0/tools/power/cpupower/Makefile @@ -100,7 +100,7 @@ export CROSS CC AR STRIP RANLIB CFLAGS LDFLAGS LIB_OBJS # check if compiler option is supported -cc-supports = ${shell if $(CC) ${1} -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; fi;} +cc-supports = ${shell if $(CC) ${1} -S -o /dev/null -x c /dev/null > /dev/null 2>&1; then echo "$(1)"; fi;} # use '-Os' optimization if available, else use -O2 OPTIMIZATION := $(call cc-supports,-Os,-O2) --- linux-3.2.0.orig/tools/perf/Makefile +++ linux-3.2.0/tools/perf/Makefile @@ -56,7 +56,7 @@ ARCH := x86 IS_X86_64 := 0 ifeq (, $(findstring m32,$(EXTRA_CFLAGS))) - IS_X86_64 := $(shell echo __x86_64__ | ${CC} -E -xc - | tail -n 1) + IS_X86_64 := $(shell echo __x86_64__ | ${CC} -E -x c - | tail -n 1) endif ifeq (${IS_X86_64}, 1) RAW_ARCH := x86_64 --- linux-3.2.0.orig/tools/perf/bench/mem-memcpy-x86-64-asm.S +++ linux-3.2.0/tools/perf/bench/mem-memcpy-x86-64-asm.S @@ -1,2 +1,8 @@ #include "../../../arch/x86/lib/memcpy_64.S" +/* + * We need to provide note.GNU-stack section, saying that we want + * NOT executable stack. Otherwise the final linking will assume that + * the ELF stack should not be restricted at all and set it RWX. + */ +.section .note.GNU-stack,"",@progbits --- linux-3.2.0.orig/tools/perf/scripts/python/net_dropmonitor.py +++ linux-3.2.0/tools/perf/scripts/python/net_dropmonitor.py @@ -40,9 +40,9 @@ def get_sym(sloc): loc = int(sloc) - for i in kallsyms: - if (i['loc'] >= loc): - return (i['name'], i['loc']-loc) + for i in kallsyms[::-1]: + if loc >= i['loc']: + return (i['name'], loc - i['loc']) return (None, 0) def print_drop_table(): @@ -64,7 +64,7 @@ # called from perf, when it finds a correspoinding event def skb__kfree_skb(name, context, cpu, sec, nsec, pid, comm, - skbaddr, protocol, location): + skbaddr, location, protocol): slocation = str(location) try: drop_log[slocation] = drop_log[slocation] + 1 --- linux-3.2.0.orig/tools/perf/util/header.c +++ linux-3.2.0/tools/perf/util/header.c @@ -1227,7 +1227,7 @@ if (realname == NULL || filename == NULL || linkname == NULL) goto out_free; - len = snprintf(filename, size, "%s%s%s", + len = scnprintf(filename, size, "%s%s%s", debugdir, is_kallsyms ? "/" : "", realname); if (mkdir_p(filename, 0755)) goto out_free; @@ -1242,7 +1242,7 @@ goto out_free; } - len = snprintf(linkname, size, "%s/.build-id/%.2s", + len = scnprintf(linkname, size, "%s/.build-id/%.2s", debugdir, sbuild_id); if (access(linkname, X_OK) && mkdir_p(linkname, 0755)) --- linux-3.2.0.orig/tools/perf/util/color.c +++ linux-3.2.0/tools/perf/util/color.c @@ -1,3 +1,4 @@ +#include #include "cache.h" #include "color.h" @@ -182,12 +183,12 @@ } if (perf_use_color_default && *color) - r += snprintf(bf, size, "%s", color); - r += vsnprintf(bf + r, size - r, fmt, args); + r += scnprintf(bf, size, "%s", color); + r += vscnprintf(bf + r, size - r, fmt, args); if (perf_use_color_default && *color) - r += snprintf(bf + r, size - r, "%s", PERF_COLOR_RESET); + r += scnprintf(bf + r, size - r, "%s", PERF_COLOR_RESET); if (trail) - r += snprintf(bf + r, size - r, "%s", trail); + r += scnprintf(bf + r, size - r, "%s", trail); return r; } --- linux-3.2.0.orig/tools/perf/util/hist.c +++ linux-3.2.0/tools/perf/util/hist.c @@ -230,6 +230,18 @@ if (!cmp) { he->period += period; ++he->nr_events; + + /* If the map of an existing hist_entry has + * become out-of-date due to an exec() or + * similar, update it. Otherwise we will + * mis-adjust symbol addresses when computing + * the history counter to increment. + */ + if (he->ms.map != entry.ms.map) { + he->ms.map = entry.ms.map; + if (he->ms.map) + he->ms.map->referenced = true; + } goto out; } @@ -767,7 +779,7 @@ sep ? "%.2f" : " %6.2f%%", (period * 100.0) / total); else - ret = snprintf(s, size, sep ? "%.2f" : " %6.2f%%", + ret = scnprintf(s, size, sep ? "%.2f" : " %6.2f%%", (period * 100.0) / total); if (symbol_conf.show_cpu_utilization) { ret += percent_color_snprintf(s + ret, size - ret, @@ -790,20 +802,20 @@ } } } else - ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period); + ret = scnprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period); if (symbol_conf.show_nr_samples) { if (sep) - ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, nr_events); + ret += scnprintf(s + ret, size - ret, "%c%" PRIu64, *sep, nr_events); else - ret += snprintf(s + ret, size - ret, "%11" PRIu64, nr_events); + ret += scnprintf(s + ret, size - ret, "%11" PRIu64, nr_events); } if (symbol_conf.show_total_period) { if (sep) - ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period); + ret += scnprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period); else - ret += snprintf(s + ret, size - ret, " %12" PRIu64, period); + ret += scnprintf(s + ret, size - ret, " %12" PRIu64, period); } if (pair_hists) { @@ -818,25 +830,25 @@ diff = new_percent - old_percent; if (fabs(diff) >= 0.01) - snprintf(bf, sizeof(bf), "%+4.2F%%", diff); + ret += scnprintf(bf, sizeof(bf), "%+4.2F%%", diff); else - snprintf(bf, sizeof(bf), " "); + ret += scnprintf(bf, sizeof(bf), " "); if (sep) - ret += snprintf(s + ret, size - ret, "%c%s", *sep, bf); + ret += scnprintf(s + ret, size - ret, "%c%s", *sep, bf); else - ret += snprintf(s + ret, size - ret, "%11.11s", bf); + ret += scnprintf(s + ret, size - ret, "%11.11s", bf); if (show_displacement) { if (displacement) - snprintf(bf, sizeof(bf), "%+4ld", displacement); + ret += scnprintf(bf, sizeof(bf), "%+4ld", displacement); else - snprintf(bf, sizeof(bf), " "); + ret += scnprintf(bf, sizeof(bf), " "); if (sep) - ret += snprintf(s + ret, size - ret, "%c%s", *sep, bf); + ret += scnprintf(s + ret, size - ret, "%c%s", *sep, bf); else - ret += snprintf(s + ret, size - ret, "%6.6s", bf); + ret += scnprintf(s + ret, size - ret, "%6.6s", bf); } } @@ -854,7 +866,7 @@ if (se->elide) continue; - ret += snprintf(s + ret, size - ret, "%s", sep ?: " "); + ret += scnprintf(s + ret, size - ret, "%s", sep ?: " "); ret += se->se_snprintf(he, s + ret, size - ret, hists__col_len(hists, se->se_width_idx)); } --- linux-3.2.0.orig/tools/perf/util/sort.c +++ linux-3.2.0/tools/perf/util/sort.c @@ -33,6 +33,9 @@ } } va_end(ap); + + if (n >= (int)size) + return size - 1; return n; } --- linux-3.2.0.orig/tools/perf/util/evsel.c +++ linux-3.2.0/tools/perf/util/evsel.c @@ -390,6 +390,7 @@ data->cpu = data->pid = data->tid = -1; data->stream_id = data->id = data->time = -1ULL; + data->period = 1; if (event->header.type != PERF_RECORD_SAMPLE) { if (!sample_id_all) --- linux-3.2.0.orig/tools/perf/util/strbuf.c +++ linux-3.2.0/tools/perf/util/strbuf.c @@ -1,4 +1,5 @@ #include "cache.h" +#include int prefixcmp(const char *str, const char *prefix) { @@ -89,14 +90,14 @@ if (!strbuf_avail(sb)) strbuf_grow(sb, 64); va_start(ap, fmt); - len = vsnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap); + len = vscnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap); va_end(ap); if (len < 0) - die("your vsnprintf is broken"); + die("your vscnprintf is broken"); if (len > strbuf_avail(sb)) { strbuf_grow(sb, len); va_start(ap, fmt); - len = vsnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap); + len = vscnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap); va_end(ap); if (len > strbuf_avail(sb)) { die("this should not happen, your snprintf is broken"); --- linux-3.2.0.orig/tools/perf/util/ui/helpline.c +++ linux-3.2.0/tools/perf/util/ui/helpline.c @@ -65,7 +65,7 @@ static int backlog; pthread_mutex_lock(&ui__lock); - ret = vsnprintf(ui_helpline__last_msg + backlog, + ret = vscnprintf(ui_helpline__last_msg + backlog, sizeof(ui_helpline__last_msg) - backlog, format, ap); backlog += ret; --- linux-3.2.0.orig/tools/perf/util/ui/browsers/hists.c +++ linux-3.2.0/tools/perf/util/ui/browsers/hists.c @@ -839,15 +839,15 @@ unsigned long nr_events = self->stats.nr_events[PERF_RECORD_SAMPLE]; nr_events = convert_unit(nr_events, &unit); - printed = snprintf(bf, size, "Events: %lu%c %s", nr_events, unit, ev_name); + printed = scnprintf(bf, size, "Events: %lu%c %s", nr_events, unit, ev_name); if (thread) - printed += snprintf(bf + printed, size - printed, + printed += scnprintf(bf + printed, size - printed, ", Thread: %s(%d)", (thread->comm_set ? thread->comm : ""), thread->pid); if (dso) - printed += snprintf(bf + printed, size - printed, + printed += scnprintf(bf + printed, size - printed, ", DSO: %s", dso->short_name); return printed; } @@ -1097,7 +1097,7 @@ HE_COLORSET_NORMAL); nr_events = convert_unit(nr_events, &unit); - printed = snprintf(bf, sizeof(bf), "%lu%c%s%s", nr_events, + printed = scnprintf(bf, sizeof(bf), "%lu%c%s%s", nr_events, unit, unit == ' ' ? "" : " ", ev_name); slsmg_printf("%s", bf); @@ -1107,8 +1107,8 @@ if (!current_entry) ui_browser__set_color(browser, HE_COLORSET_TOP); nr_events = convert_unit(nr_events, &unit); - snprintf(bf, sizeof(bf), ": %ld%c%schunks LOST!", nr_events, - unit, unit == ' ' ? "" : " "); + printed += scnprintf(bf, sizeof(bf), ": %ld%c%schunks LOST!", + nr_events, unit, unit == ' ' ? "" : " "); warn = bf; } --- linux-3.2.0.orig/tools/perf/arch/x86/util/header.c +++ linux-3.2.0/tools/perf/arch/x86/util/header.c @@ -48,7 +48,7 @@ if (family >= 0x6) model += ((a >> 16) & 0xf) << 4; } - nb = snprintf(buffer, sz, "%s,%u,%u,%u$", vendor, family, model, step); + nb = scnprintf(buffer, sz, "%s,%u,%u,%u$", vendor, family, model, step); /* look for end marker to ensure the entire data fit */ if (strchr(buffer, '$')) { --- linux-3.2.0.orig/tools/perf/arch/powerpc/util/header.c +++ linux-3.2.0/tools/perf/arch/powerpc/util/header.c @@ -25,7 +25,7 @@ pvr = mfspr(SPRN_PVR); - nb = snprintf(buffer, sz, "%lu,%lu$", PVR_VER(pvr), PVR_REV(pvr)); + nb = scnprintf(buffer, sz, "%lu,%lu$", PVR_VER(pvr), PVR_REV(pvr)); /* look for end marker to ensure the entire data fit */ if (strchr(buffer, '$')) { --- linux-3.2.0.orig/tools/hv/Makefile +++ linux-3.2.0/tools/hv/Makefile @@ -0,0 +1,7 @@ +hv_kvp_daemon: hv_kvp_daemon.c + +clean: + rm -f hv_kvp_daemon + +install: + install hv_kvp_daemon /usr/sbin/ --- linux-3.2.0.orig/tools/hv/hv_kvp_daemon.8 +++ linux-3.2.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-3.2.0.orig/tools/hv/hv_kvp_daemon.c +++ linux-3.2.0/tools/hv/hv_kvp_daemon.c @@ -34,21 +34,13 @@ #include #include #include +#include #include #include #include #include - -/* - * KYS: TODO. Need to register these in the kernel. - * - * The following definitions are shared with the in-kernel component; do not - * change any of this without making the corresponding changes in - * the KVP kernel component. - */ -#define CN_KVP_IDX 0x9 /* MSFT KVP functionality */ -#define CN_KVP_VAL 0x1 /* This supports queries from the kernel */ -#define CN_KVP_USER_VAL 0x2 /* This supports queries from the user */ +#include +#include /* * KVP protocol: The user mode component first registers with the @@ -60,25 +52,8 @@ * We use this infrastructure for also supporting queries from user mode * application for state that may be maintained in the KVP kernel component. * - * XXXKYS: Have a shared header file between the user and kernel (TODO) */ -enum kvp_op { - KVP_REGISTER = 0, /* Register the user mode component*/ - KVP_KERNEL_GET, /*Kernel is requesting the value for the specified key*/ - KVP_KERNEL_SET, /*Kernel is providing the value for the specified key*/ - KVP_USER_GET, /*User is requesting the value for the specified key*/ - KVP_USER_SET /*User is providing the value for the specified key*/ -}; - -#define HV_KVP_EXCHANGE_MAX_KEY_SIZE 512 -#define HV_KVP_EXCHANGE_MAX_VALUE_SIZE 2048 - -struct hv_ku_msg { - __u32 kvp_index; - __u8 kvp_key[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; /* Key name */ - __u8 kvp_value[HV_KVP_EXCHANGE_MAX_VALUE_SIZE]; /* Key value */ -}; enum key_index { FullyQualifiedDomainName = 0, @@ -93,10 +68,6 @@ ProcessorArchitecture }; -/* - * End of shared definitions. - */ - static char kvp_send_buffer[4096]; static char kvp_recv_buffer[4096]; static struct sockaddr_nl addr; @@ -109,6 +80,345 @@ static char *lic_version; static struct utsname uts_buf; + +#define MAX_FILE_NAME 100 +#define ENTRIES_PER_BLOCK 50 + +struct kvp_record { + __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; + __u8 value[HV_KVP_EXCHANGE_MAX_VALUE_SIZE]; +}; + +struct kvp_file_state { + int fd; + int num_blocks; + struct kvp_record *records; + int num_records; + __u8 fname[MAX_FILE_NAME]; +}; + +static struct kvp_file_state kvp_file_info[KVP_POOL_COUNT]; + +static void kvp_acquire_lock(int pool) +{ + struct flock fl = {F_WRLCK, SEEK_SET, 0, 0, 0}; + fl.l_pid = getpid(); + + if (fcntl(kvp_file_info[pool].fd, F_SETLKW, &fl) == -1) { + syslog(LOG_ERR, "Failed to acquire the lock pool: %d", pool); + exit(-1); + } +} + +static void kvp_release_lock(int pool) +{ + struct flock fl = {F_UNLCK, SEEK_SET, 0, 0, 0}; + fl.l_pid = getpid(); + + if (fcntl(kvp_file_info[pool].fd, F_SETLK, &fl) == -1) { + perror("fcntl"); + syslog(LOG_ERR, "Failed to release the lock pool: %d", pool); + exit(-1); + } +} + +static void kvp_update_file(int pool) +{ + FILE *filep; + size_t bytes_written; + + /* + * We are going to write our in-memory registry out to + * disk; acquire the lock first. + */ + kvp_acquire_lock(pool); + + filep = fopen(kvp_file_info[pool].fname, "w"); + if (!filep) { + kvp_release_lock(pool); + syslog(LOG_ERR, "Failed to open file, pool: %d", pool); + exit(-1); + } + + bytes_written = fwrite(kvp_file_info[pool].records, + sizeof(struct kvp_record), + kvp_file_info[pool].num_records, filep); + + fflush(filep); + kvp_release_lock(pool); +} + +static void kvp_update_mem_state(int pool) +{ + FILE *filep; + size_t records_read = 0; + struct kvp_record *record = kvp_file_info[pool].records; + struct kvp_record *readp; + int num_blocks = kvp_file_info[pool].num_blocks; + int alloc_unit = sizeof(struct kvp_record) * ENTRIES_PER_BLOCK; + + kvp_acquire_lock(pool); + + filep = fopen(kvp_file_info[pool].fname, "r"); + if (!filep) { + kvp_release_lock(pool); + syslog(LOG_ERR, "Failed to open file, pool: %d", pool); + exit(-1); + } + while (!feof(filep)) { + readp = &record[records_read]; + records_read += fread(readp, sizeof(struct kvp_record), + ENTRIES_PER_BLOCK * num_blocks, + filep); + + if (!feof(filep)) { + /* + * We have more data to read. + */ + num_blocks++; + record = realloc(record, alloc_unit * num_blocks); + + if (record == NULL) { + syslog(LOG_ERR, "malloc failed"); + exit(-1); + } + continue; + } + break; + } + + kvp_file_info[pool].num_blocks = num_blocks; + kvp_file_info[pool].records = record; + kvp_file_info[pool].num_records = records_read; + + kvp_release_lock(pool); +} +static int kvp_file_init(void) +{ + int ret, fd; + FILE *filep; + size_t records_read; + __u8 *fname; + struct kvp_record *record; + struct kvp_record *readp; + int num_blocks; + int i; + int alloc_unit = sizeof(struct kvp_record) * ENTRIES_PER_BLOCK; + + if (access("/var/opt/hyperv", F_OK)) { + if (mkdir("/var/opt/hyperv", S_IRUSR | S_IWUSR | S_IROTH)) { + syslog(LOG_ERR, " Failed to create /var/opt/hyperv"); + exit(-1); + } + } + + for (i = 0; i < KVP_POOL_COUNT; i++) { + fname = kvp_file_info[i].fname; + records_read = 0; + num_blocks = 1; + sprintf(fname, "/var/opt/hyperv/.kvp_pool_%d", i); + fd = open(fname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR | S_IROTH); + + if (fd == -1) + return 1; + + + filep = fopen(fname, "r"); + if (!filep) + return 1; + + record = malloc(alloc_unit * num_blocks); + if (record == NULL) { + fclose(filep); + return 1; + } + while (!feof(filep)) { + readp = &record[records_read]; + records_read += fread(readp, sizeof(struct kvp_record), + ENTRIES_PER_BLOCK, + filep); + + if (!feof(filep)) { + /* + * We have more data to read. + */ + num_blocks++; + record = realloc(record, alloc_unit * + num_blocks); + if (record == NULL) { + fclose(filep); + return 1; + } + continue; + } + break; + } + kvp_file_info[i].fd = fd; + kvp_file_info[i].num_blocks = num_blocks; + kvp_file_info[i].records = record; + kvp_file_info[i].num_records = records_read; + fclose(filep); + + } + + return 0; +} + +static int kvp_key_delete(int pool, __u8 *key, int key_size) +{ + int i; + int j, k; + int num_records; + struct kvp_record *record; + + /* + * First update the in-memory state. + */ + kvp_update_mem_state(pool); + + num_records = kvp_file_info[pool].num_records; + record = kvp_file_info[pool].records; + + for (i = 0; i < num_records; i++) { + if (memcmp(key, record[i].key, key_size)) + continue; + /* + * Found a match; just move the remaining + * entries up. + */ + if (i == num_records) { + kvp_file_info[pool].num_records--; + kvp_update_file(pool); + return 0; + } + + j = i; + k = j + 1; + for (; k < num_records; k++) { + strcpy(record[j].key, record[k].key); + strcpy(record[j].value, record[k].value); + j++; + } + + kvp_file_info[pool].num_records--; + kvp_update_file(pool); + return 0; + } + return 1; +} + +static int kvp_key_add_or_modify(int pool, __u8 *key, int key_size, __u8 *value, + int value_size) +{ + int i; + int j, k; + int num_records; + struct kvp_record *record; + int num_blocks; + + if ((key_size > HV_KVP_EXCHANGE_MAX_KEY_SIZE) || + (value_size > HV_KVP_EXCHANGE_MAX_VALUE_SIZE)) + return 1; + + /* + * First update the in-memory state. + */ + kvp_update_mem_state(pool); + + num_records = kvp_file_info[pool].num_records; + record = kvp_file_info[pool].records; + num_blocks = kvp_file_info[pool].num_blocks; + + for (i = 0; i < num_records; i++) { + if (memcmp(key, record[i].key, key_size)) + continue; + /* + * Found a match; just update the value - + * this is the modify case. + */ + memcpy(record[i].value, value, value_size); + kvp_update_file(pool); + return 0; + } + + /* + * Need to add a new entry; + */ + if (num_records == (ENTRIES_PER_BLOCK * num_blocks)) { + /* Need to allocate a larger array for reg entries. */ + record = realloc(record, sizeof(struct kvp_record) * + ENTRIES_PER_BLOCK * (num_blocks + 1)); + + if (record == NULL) + return 1; + kvp_file_info[pool].num_blocks++; + + } + memcpy(record[i].value, value, value_size); + memcpy(record[i].key, key, key_size); + kvp_file_info[pool].records = record; + kvp_file_info[pool].num_records++; + kvp_update_file(pool); + return 0; +} + +static int kvp_get_value(int pool, __u8 *key, int key_size, __u8 *value, + int value_size) +{ + int i; + int num_records; + struct kvp_record *record; + + if ((key_size > HV_KVP_EXCHANGE_MAX_KEY_SIZE) || + (value_size > HV_KVP_EXCHANGE_MAX_VALUE_SIZE)) + return 1; + + /* + * First update the in-memory state. + */ + kvp_update_mem_state(pool); + + num_records = kvp_file_info[pool].num_records; + record = kvp_file_info[pool].records; + + for (i = 0; i < num_records; i++) { + if (memcmp(key, record[i].key, key_size)) + continue; + /* + * Found a match; just copy the value out. + */ + memcpy(value, record[i].value, value_size); + return 0; + } + + return 1; +} + +static void kvp_pool_enumerate(int pool, int index, __u8 *key, int key_size, + __u8 *value, int value_size) +{ + struct kvp_record *record; + + /* + * First update our in-memory database. + */ + kvp_update_mem_state(pool); + record = kvp_file_info[pool].records; + + if (index >= kvp_file_info[pool].num_records) { + /* + * This is an invalid index; terminate enumeration; + * - a NULL value will do the trick. + */ + strcpy(value, ""); + return; + } + + memcpy(key, record[index].key, key_size); + memcpy(value, record[index].value, value_size); +} + + void kvp_get_os_info(void) { FILE *file; @@ -332,7 +642,7 @@ struct pollfd pfd; struct nlmsghdr *incoming_msg; struct cn_msg *incoming_cn_msg; - struct hv_ku_msg *hv_msg; + struct hv_kvp_msg *hv_msg; char *p; char *key_value; char *key_name; @@ -345,10 +655,15 @@ */ kvp_get_os_info(); + if (kvp_file_init()) { + syslog(LOG_ERR, "Failed to initialize the pools"); + exit(-1); + } + fd = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_CONNECTOR); if (fd < 0) { syslog(LOG_ERR, "netlink socket creation failed; error:%d", fd); - exit(-1); + exit(EXIT_FAILURE); } addr.nl_family = AF_NETLINK; addr.nl_pad = 0; @@ -360,7 +675,7 @@ if (error < 0) { syslog(LOG_ERR, "bind failed; error:%d", error); close(fd); - exit(-1); + exit(EXIT_FAILURE); } sock_opt = addr.nl_groups; setsockopt(fd, 270, 1, &sock_opt, sizeof(sock_opt)); @@ -370,42 +685,55 @@ message = (struct cn_msg *)kvp_send_buffer; message->id.idx = CN_KVP_IDX; message->id.val = CN_KVP_VAL; - message->seq = KVP_REGISTER; + + hv_msg = (struct hv_kvp_msg *)message->data; + hv_msg->kvp_hdr.operation = KVP_OP_REGISTER; message->ack = 0; - message->len = 0; + message->len = sizeof(struct hv_kvp_msg); len = netlink_send(fd, message); if (len < 0) { syslog(LOG_ERR, "netlink_send failed; error:%d", len); close(fd); - exit(-1); + exit(EXIT_FAILURE); } pfd.fd = fd; while (1) { + struct sockaddr *addr_p = (struct sockaddr *) &addr; + socklen_t addr_l = sizeof(addr); pfd.events = POLLIN; pfd.revents = 0; poll(&pfd, 1, -1); - len = recv(fd, kvp_recv_buffer, sizeof(kvp_recv_buffer), 0); + len = recvfrom(fd, kvp_recv_buffer, sizeof(kvp_recv_buffer), 0, + addr_p, &addr_l); if (len < 0) { - syslog(LOG_ERR, "recv failed; error:%d", len); + syslog(LOG_ERR, "recvfrom failed; pid:%u error:%d %s", + addr.nl_pid, errno, strerror(errno)); close(fd); return -1; } + if (addr.nl_pid) { + syslog(LOG_WARNING, "Received packet from untrusted pid:%u", + addr.nl_pid); + continue; + } + incoming_msg = (struct nlmsghdr *)kvp_recv_buffer; incoming_cn_msg = (struct cn_msg *)NLMSG_DATA(incoming_msg); + hv_msg = (struct hv_kvp_msg *)incoming_cn_msg->data; - switch (incoming_cn_msg->seq) { - case KVP_REGISTER: + switch (hv_msg->kvp_hdr.operation) { + case KVP_OP_REGISTER: /* * Driver is registering with us; stash away the version * information. */ - p = (char *)incoming_cn_msg->data; + p = (char *)hv_msg->body.kvp_register.version; lic_version = malloc(strlen(p) + 1); if (lic_version) { strcpy(lic_version, p); @@ -416,17 +744,65 @@ } continue; - case KVP_KERNEL_GET: + /* + * The current protocol with the kernel component uses a + * NULL key name to pass an error condition. + * For the SET, GET and DELETE operations, + * use the existing protocol to pass back error. + */ + + case KVP_OP_SET: + if (kvp_key_add_or_modify(hv_msg->kvp_hdr.pool, + hv_msg->body.kvp_set.data.key, + hv_msg->body.kvp_set.data.key_size, + hv_msg->body.kvp_set.data.value, + hv_msg->body.kvp_set.data.value_size)) + strcpy(hv_msg->body.kvp_set.data.key, ""); + break; + + case KVP_OP_GET: + if (kvp_get_value(hv_msg->kvp_hdr.pool, + hv_msg->body.kvp_set.data.key, + hv_msg->body.kvp_set.data.key_size, + hv_msg->body.kvp_set.data.value, + hv_msg->body.kvp_set.data.value_size)) + strcpy(hv_msg->body.kvp_set.data.key, ""); + break; + + case KVP_OP_DELETE: + if (kvp_key_delete(hv_msg->kvp_hdr.pool, + hv_msg->body.kvp_delete.key, + hv_msg->body.kvp_delete.key_size)) + strcpy(hv_msg->body.kvp_delete.key, ""); break; + default: - continue; + break; } - hv_msg = (struct hv_ku_msg *)incoming_cn_msg->data; - key_name = (char *)hv_msg->kvp_key; - key_value = (char *)hv_msg->kvp_value; + if (hv_msg->kvp_hdr.operation != KVP_OP_ENUMERATE) + goto kvp_done; - switch (hv_msg->kvp_index) { + /* + * If the pool is KVP_POOL_AUTO, dynamically generate + * both the key and the value; if not read from the + * appropriate pool. + */ + if (hv_msg->kvp_hdr.pool != KVP_POOL_AUTO) { + kvp_pool_enumerate(hv_msg->kvp_hdr.pool, + hv_msg->body.kvp_enum_data.index, + hv_msg->body.kvp_enum_data.data.key, + HV_KVP_EXCHANGE_MAX_KEY_SIZE, + hv_msg->body.kvp_enum_data.data.value, + HV_KVP_EXCHANGE_MAX_VALUE_SIZE); + goto kvp_done; + } + + hv_msg = (struct hv_kvp_msg *)incoming_cn_msg->data; + key_name = (char *)hv_msg->body.kvp_enum_data.data.key; + key_value = (char *)hv_msg->body.kvp_enum_data.data.value; + + switch (hv_msg->body.kvp_enum_data.index) { case FullyQualifiedDomainName: kvp_get_domain_name(key_value, HV_KVP_EXCHANGE_MAX_VALUE_SIZE); @@ -483,17 +859,17 @@ * already in the receive buffer. Update the cn_msg header to * reflect the key value that has been added to the message */ +kvp_done: incoming_cn_msg->id.idx = CN_KVP_IDX; incoming_cn_msg->id.val = CN_KVP_VAL; - incoming_cn_msg->seq = KVP_USER_SET; incoming_cn_msg->ack = 0; - incoming_cn_msg->len = sizeof(struct hv_ku_msg); + incoming_cn_msg->len = sizeof(struct hv_kvp_msg); len = netlink_send(fd, incoming_cn_msg); if (len < 0) { syslog(LOG_ERR, "net_link send failed; error:%d", len); - exit(-1); + exit(EXIT_FAILURE); } } --- linux-3.2.0.orig/fs/eventpoll.c +++ linux-3.2.0/fs/eventpoll.c @@ -197,6 +197,12 @@ /* The user that created the eventpoll descriptor */ struct user_struct *user; + + struct file *file; + + /* used to optimize loop detection check */ + int visited; + struct list_head visited_list_link; }; /* Wait structure used by the poll hooks */ @@ -255,6 +261,15 @@ /* Slab cache used to allocate "struct eppoll_entry" */ static struct kmem_cache *pwq_cache __read_mostly; +/* Visited nodes during ep_loop_check(), so we can unset them when we finish */ +static LIST_HEAD(visited_list); + +/* + * List of files with newly added links, where we may need to limit the number + * of emanating paths. Protected by the epmutex. + */ +static LIST_HEAD(tfile_check_list); + #ifdef CONFIG_SYSCTL #include @@ -276,6 +291,12 @@ }; #endif /* CONFIG_SYSCTL */ +static const struct file_operations eventpoll_fops; + +static inline int is_file_epoll(struct file *f) +{ + return f->f_op == &eventpoll_fops; +} /* Setup the structure that is used as key for the RB tree */ static inline void ep_set_ffd(struct epoll_filefd *ffd, @@ -299,6 +320,11 @@ return !list_empty(p); } +static inline struct eppoll_entry *ep_pwq_from_wait(wait_queue_t *p) +{ + return container_of(p, struct eppoll_entry, wait); +} + /* Get the "struct epitem" from a wait queue pointer */ static inline struct epitem *ep_item_from_wait(wait_queue_t *p) { @@ -446,6 +472,18 @@ put_cpu(); } +static void ep_remove_wait_queue(struct eppoll_entry *pwq) +{ + wait_queue_head_t *whead; + + rcu_read_lock(); + /* If it is cleared by POLLFREE, it should be rcu-safe */ + whead = rcu_dereference(pwq->whead); + if (whead) + remove_wait_queue(whead, &pwq->wait); + rcu_read_unlock(); +} + /* * This function unregisters poll callbacks from the associated file * descriptor. Must be called with "mtx" held (or "epmutex" if called from @@ -460,7 +498,7 @@ pwq = list_first_entry(lsthead, struct eppoll_entry, llink); list_del(&pwq->llink); - remove_wait_queue(pwq->whead, &pwq->wait); + ep_remove_wait_queue(pwq); kmem_cache_free(pwq_cache, pwq); } } @@ -711,12 +749,6 @@ .llseek = noop_llseek, }; -/* Fast test to see if the file is an eventpoll file */ -static inline int is_file_epoll(struct file *f) -{ - return f->f_op == &eventpoll_fops; -} - /* * This is called from eventpoll_release() to unlink files from the eventpoll * interface. We need to have this facility to cleanup correctly files that are @@ -827,6 +859,17 @@ struct epitem *epi = ep_item_from_wait(wait); struct eventpoll *ep = epi->ep; + if ((unsigned long)key & POLLFREE) { + ep_pwq_from_wait(wait)->whead = NULL; + /* + * whead = NULL above can race with ep_remove_wait_queue() + * which can do another remove_wait_queue() after us, so we + * can't use __remove_wait_queue(). whead->lock is held by + * the caller. + */ + list_del_init(&wait->task_list); + } + spin_lock_irqsave(&ep->lock, flags); /* @@ -926,6 +969,103 @@ rb_insert_color(&epi->rbn, &ep->rbr); } + + +#define PATH_ARR_SIZE 5 +/* + * These are the number paths of length 1 to 5, that we are allowing to emanate + * from a single file of interest. For example, we allow 1000 paths of length + * 1, to emanate from each file of interest. This essentially represents the + * potential wakeup paths, which need to be limited in order to avoid massive + * uncontrolled wakeup storms. The common use case should be a single ep which + * is connected to n file sources. In this case each file source has 1 path + * of length 1. Thus, the numbers below should be more than sufficient. These + * path limits are enforced during an EPOLL_CTL_ADD operation, since a modify + * and delete can't add additional paths. Protected by the epmutex. + */ +static const int path_limits[PATH_ARR_SIZE] = { 1000, 500, 100, 50, 10 }; +static int path_count[PATH_ARR_SIZE]; + +static int path_count_inc(int nests) +{ + /* Allow an arbitrary number of depth 1 paths */ + if (nests == 0) + return 0; + + if (++path_count[nests] > path_limits[nests]) + return -1; + return 0; +} + +static void path_count_init(void) +{ + int i; + + for (i = 0; i < PATH_ARR_SIZE; i++) + path_count[i] = 0; +} + +static int reverse_path_check_proc(void *priv, void *cookie, int call_nests) +{ + int error = 0; + struct file *file = priv; + struct file *child_file; + struct epitem *epi; + + list_for_each_entry(epi, &file->f_ep_links, fllink) { + child_file = epi->ep->file; + if (is_file_epoll(child_file)) { + if (list_empty(&child_file->f_ep_links)) { + if (path_count_inc(call_nests)) { + error = -1; + break; + } + } else { + error = ep_call_nested(&poll_loop_ncalls, + EP_MAX_NESTS, + reverse_path_check_proc, + child_file, child_file, + current); + } + if (error != 0) + break; + } else { + printk(KERN_ERR "reverse_path_check_proc: " + "file is not an ep!\n"); + } + } + return error; +} + +/** + * reverse_path_check - The tfile_check_list is list of file *, which have + * links that are proposed to be newly added. We need to + * make sure that those added links don't add too many + * paths such that we will spend all our time waking up + * eventpoll objects. + * + * Returns: Returns zero if the proposed links don't create too many paths, + * -1 otherwise. + */ +static int reverse_path_check(void) +{ + int length = 0; + int error = 0; + struct file *current_file; + + /* let's call this for all tfiles */ + list_for_each_entry(current_file, &tfile_check_list, f_tfile_llink) { + length++; + path_count_init(); + error = ep_call_nested(&poll_loop_ncalls, EP_MAX_NESTS, + reverse_path_check_proc, current_file, + current_file, current); + if (error) + break; + } + return error; +} + /* * Must be called with "mtx" held. */ @@ -987,6 +1127,11 @@ */ ep_rbtree_insert(ep, epi); + /* now check if we've created too many backpaths */ + error = -EINVAL; + if (reverse_path_check()) + goto error_remove_epi; + /* We have to drop the new item inside our item list to keep track of it */ spin_lock_irqsave(&ep->lock, flags); @@ -1011,6 +1156,14 @@ return 0; +error_remove_epi: + spin_lock(&tfile->f_lock); + if (ep_is_linked(&epi->fllink)) + list_del_init(&epi->fllink); + spin_unlock(&tfile->f_lock); + + rb_erase(&epi->rbn, &ep->rbr); + error_unregister: ep_unregister_pollwait(ep, epi); @@ -1044,10 +1197,30 @@ * otherwise we might miss an event that happens between the * f_op->poll() call and the new event set registering. */ - epi->event.events = event->events; + epi->event.events = event->events; /* need barrier below */ epi->event.data = event->data; /* protected by mtx */ /* + * The following barrier has two effects: + * + * 1) Flush epi changes above to other CPUs. This ensures + * we do not miss events from ep_poll_callback if an + * event occurs immediately after we call f_op->poll(). + * We need this because we did not take ep->lock while + * changing epi above (but ep_poll_callback does take + * ep->lock). + * + * 2) We also need to ensure we do not miss _past_ events + * when calling f_op->poll(). This barrier also + * pairs with the barrier in wq_has_sleeper (see + * comments for wq_has_sleeper). + * + * This barrier will now guarantee ep_poll_callback or f_op->poll + * (or both) will notice the readiness of an item. + */ + smp_mb(); + + /* * Get current event bits. We can safely use the file* here because * its usage count has been increased by the caller of this function. */ @@ -1275,18 +1448,36 @@ int error = 0; struct file *file = priv; struct eventpoll *ep = file->private_data; + struct eventpoll *ep_tovisit; struct rb_node *rbp; struct epitem *epi; mutex_lock_nested(&ep->mtx, call_nests + 1); + ep->visited = 1; + list_add(&ep->visited_list_link, &visited_list); for (rbp = rb_first(&ep->rbr); rbp; rbp = rb_next(rbp)) { epi = rb_entry(rbp, struct epitem, rbn); if (unlikely(is_file_epoll(epi->ffd.file))) { + ep_tovisit = epi->ffd.file->private_data; + if (ep_tovisit->visited) + continue; error = ep_call_nested(&poll_loop_ncalls, EP_MAX_NESTS, - ep_loop_check_proc, epi->ffd.file, - epi->ffd.file->private_data, current); + ep_loop_check_proc, epi->ffd.file, + ep_tovisit, current); if (error != 0) break; + } else { + /* + * If we've reached a file that is not associated with + * an ep, then we need to check if the newly added + * links are going to add too many wakeup paths. We do + * this by adding it to the tfile_check_list, if it's + * not already there, and calling reverse_path_check() + * during ep_insert(). + */ + if (list_empty(&epi->ffd.file->f_tfile_llink)) + list_add(&epi->ffd.file->f_tfile_llink, + &tfile_check_list); } } mutex_unlock(&ep->mtx); @@ -1307,8 +1498,31 @@ */ static int ep_loop_check(struct eventpoll *ep, struct file *file) { - return ep_call_nested(&poll_loop_ncalls, EP_MAX_NESTS, + int ret; + struct eventpoll *ep_cur, *ep_next; + + ret = ep_call_nested(&poll_loop_ncalls, EP_MAX_NESTS, ep_loop_check_proc, file, ep, current); + /* clear visited list */ + list_for_each_entry_safe(ep_cur, ep_next, &visited_list, + visited_list_link) { + ep_cur->visited = 0; + list_del(&ep_cur->visited_list_link); + } + return ret; +} + +static void clear_tfile_check_list(void) +{ + struct file *file; + + /* first clear the tfile_check_list */ + while (!list_empty(&tfile_check_list)) { + file = list_first_entry(&tfile_check_list, struct file, + f_tfile_llink); + list_del_init(&file->f_tfile_llink); + } + INIT_LIST_HEAD(&tfile_check_list); } /* @@ -1316,8 +1530,9 @@ */ SYSCALL_DEFINE1(epoll_create1, int, flags) { - int error; + int error, fd; struct eventpoll *ep = NULL; + struct file *file; /* Check the EPOLL_* constant for consistency. */ BUILD_BUG_ON(EPOLL_CLOEXEC != O_CLOEXEC); @@ -1334,11 +1549,25 @@ * Creates all the items needed to setup an eventpoll file. That is, * a file structure and a free file descriptor. */ - error = anon_inode_getfd("[eventpoll]", &eventpoll_fops, ep, + fd = get_unused_fd_flags(O_RDWR | (flags & O_CLOEXEC)); + if (fd < 0) { + error = fd; + goto out_free_ep; + } + file = anon_inode_getfile("[eventpoll]", &eventpoll_fops, ep, O_RDWR | (flags & O_CLOEXEC)); - if (error < 0) - ep_free(ep); - + if (IS_ERR(file)) { + error = PTR_ERR(file); + goto out_free_fd; + } + fd_install(fd, file); + ep->file = file; + return fd; + +out_free_fd: + put_unused_fd(fd); +out_free_ep: + ep_free(ep); return error; } @@ -1404,21 +1633,29 @@ /* * When we insert an epoll file descriptor, inside another epoll file * descriptor, there is the change of creating closed loops, which are - * better be handled here, than in more critical paths. + * better be handled here, than in more critical paths. While we are + * checking for loops we also determine the list of files reachable + * and hang them on the tfile_check_list, so we can check that we + * haven't created too many possible wakeup paths. * - * We hold epmutex across the loop check and the insert in this case, in - * order to prevent two separate inserts from racing and each doing the - * insert "at the same time" such that ep_loop_check passes on both - * before either one does the insert, thereby creating a cycle. + * We need to hold the epmutex across both ep_insert and ep_remove + * b/c we want to make sure we are looking at a coherent view of + * epoll network. */ - if (unlikely(is_file_epoll(tfile) && op == EPOLL_CTL_ADD)) { + if (op == EPOLL_CTL_ADD || op == EPOLL_CTL_DEL) { mutex_lock(&epmutex); did_lock_epmutex = 1; - error = -ELOOP; - if (ep_loop_check(ep, tfile) != 0) - goto error_tgt_fput; } - + if (op == EPOLL_CTL_ADD) { + if (is_file_epoll(tfile)) { + error = -ELOOP; + if (ep_loop_check(ep, tfile) != 0) { + clear_tfile_check_list(); + goto error_tgt_fput; + } + } else + list_add(&tfile->f_tfile_llink, &tfile_check_list); + } mutex_lock_nested(&ep->mtx, 0); @@ -1437,6 +1674,7 @@ error = ep_insert(ep, &epds, tfile, fd); } else error = -EEXIST; + clear_tfile_check_list(); break; case EPOLL_CTL_DEL: if (epi) @@ -1455,7 +1693,7 @@ mutex_unlock(&ep->mtx); error_tgt_fput: - if (unlikely(did_lock_epmutex)) + if (did_lock_epmutex) mutex_unlock(&epmutex); fput(tfile); --- linux-3.2.0.orig/fs/Kconfig +++ linux-3.2.0/fs/Kconfig @@ -63,6 +63,7 @@ source "fs/autofs4/Kconfig" source "fs/fuse/Kconfig" +source "fs/overlayfs/Kconfig" config CUSE tristate "Character device in Userspace support" @@ -218,6 +219,8 @@ endif # MISC_FILESYSTEMS +source "fs/exofs/Kconfig.ore" + menuconfig NETWORK_FILESYSTEMS bool "Network File Systems" default y --- linux-3.2.0.orig/fs/namespace.c +++ linux-3.2.0/fs/namespace.c @@ -1244,8 +1244,9 @@ list_del_init(&p->mnt_expire); list_del_init(&p->mnt_list); __touch_mnt_namespace(p->mnt_ns); + if (p->mnt_ns) + __mnt_make_shortterm(p); p->mnt_ns = NULL; - __mnt_make_shortterm(p); list_del_init(&p->mnt_child); if (p->mnt_parent != p) { p->mnt_parent->mnt_ghosts++; @@ -1492,6 +1493,24 @@ release_mounts(&umount_list); } +struct vfsmount *clone_private_mount(struct path *path) +{ + struct vfsmount *old_mnt = path->mnt; + struct vfsmount *new_mnt; + + if (IS_MNT_UNBINDABLE(old_mnt)) + return ERR_PTR(-EINVAL); + + down_read(&namespace_sem); + new_mnt = clone_mnt(old_mnt, path->dentry, CL_PRIVATE); + up_read(&namespace_sem); + if (!new_mnt) + return ERR_PTR(-ENOMEM); + + return new_mnt; +} +EXPORT_SYMBOL_GPL(clone_private_mount); + int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, struct vfsmount *root) { @@ -1506,6 +1525,7 @@ } return 0; } +EXPORT_SYMBOL(iterate_mounts); static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end) { --- linux-3.2.0.orig/fs/open.c +++ linux-3.2.0/fs/open.c @@ -33,6 +33,9 @@ #include "internal.h" +#define CREATE_TRACE_POINTS +#include + int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, struct file *filp) { @@ -60,6 +63,7 @@ mutex_unlock(&dentry->d_inode->i_mutex); return ret; } +EXPORT_SYMBOL(do_truncate); static long do_sys_truncate(const char __user *pathname, loff_t length) { @@ -396,10 +400,10 @@ { struct file *file; struct inode *inode; - int error; + int error, fput_needed; error = -EBADF; - file = fget(fd); + file = fget_raw_light(fd, &fput_needed); if (!file) goto out; @@ -413,7 +417,7 @@ if (!error) set_fs_pwd(current->fs, &file->f_path); out_putf: - fput(file); + fput_light(file, fput_needed); out: return error; } @@ -456,7 +460,7 @@ if (error) return error; mutex_lock(&inode->i_mutex); - error = security_path_chmod(path->dentry, path->mnt, mode); + error = security_path_chmod(path, mode); if (error) goto out_unlock; newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO); @@ -644,24 +648,24 @@ return error; } -static struct file *__dentry_open(struct dentry *dentry, struct vfsmount *mnt, - struct file *f, - int (*open)(struct inode *, struct file *), - const struct cred *cred) +static struct file *__dentry_open(struct path *path, struct file *f, + int (*open)(struct inode *, struct file *), + const struct cred *cred) { static const struct file_operations empty_fops = {}; struct inode *inode; int error; + path_get(path); f->f_mode = OPEN_FMODE(f->f_flags) | FMODE_LSEEK | FMODE_PREAD | FMODE_PWRITE; if (unlikely(f->f_flags & O_PATH)) f->f_mode = FMODE_PATH; - inode = dentry->d_inode; + inode = path->dentry->d_inode; if (f->f_mode & FMODE_WRITE) { - error = __get_file_write_access(inode, mnt); + error = __get_file_write_access(inode, path->mnt); if (error) goto cleanup_file; if (!special_file(inode->i_mode)) @@ -669,8 +673,7 @@ } f->f_mapping = inode->i_mapping; - f->f_path.dentry = dentry; - f->f_path.mnt = mnt; + f->f_path = *path; f->f_pos = 0; file_sb_list_add(f, inode->i_sb); @@ -727,7 +730,7 @@ * here, so just reset the state. */ file_reset_write(f); - mnt_drop_write(mnt); + mnt_drop_write(path->mnt); } } file_sb_list_del(f); @@ -735,8 +738,7 @@ f->f_path.mnt = NULL; cleanup_file: put_filp(f); - dput(dentry); - mntput(mnt); + path_put(path); return ERR_PTR(error); } @@ -762,14 +764,14 @@ struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry, int (*open)(struct inode *, struct file *)) { + struct path path = { .dentry = dentry, .mnt = nd->path.mnt }; const struct cred *cred = current_cred(); if (IS_ERR(nd->intent.open.file)) goto out; if (IS_ERR(dentry)) goto out_err; - nd->intent.open.file = __dentry_open(dget(dentry), mntget(nd->path.mnt), - nd->intent.open.file, + nd->intent.open.file = __dentry_open(&path, nd->intent.open.file, open, cred); out: return nd->intent.open.file; @@ -797,11 +799,9 @@ nd->intent.open.file = NULL; /* Has the filesystem initialised the file for us? */ - if (filp->f_path.dentry == NULL) { - path_get(&nd->path); - filp = __dentry_open(nd->path.dentry, nd->path.mnt, filp, - NULL, cred); - } + if (filp->f_path.dentry == NULL) + filp = vfs_open(&nd->path, filp, cred); + return filp; } @@ -812,27 +812,48 @@ struct file *dentry_open(struct dentry *dentry, struct vfsmount *mnt, int flags, const struct cred *cred) { - int error; struct file *f; + struct file *ret; + struct path path = { .dentry = dentry, .mnt = mnt }; validate_creds(cred); /* We must always pass in a valid mount pointer. */ BUG_ON(!mnt); - error = -ENFILE; + ret = ERR_PTR(-ENFILE); f = get_empty_filp(); - if (f == NULL) { - dput(dentry); - mntput(mnt); - return ERR_PTR(error); + if (f != NULL) { + f->f_flags = flags; + ret = vfs_open(&path, f, cred); } + path_put(&path); - f->f_flags = flags; - return __dentry_open(dentry, mnt, f, NULL, cred); + return ret; } EXPORT_SYMBOL(dentry_open); +/** + * vfs_open - open the file at the given path + * @path: path to open + * @filp: newly allocated file with f_flag initialized + * @cred: credentials to use + * + * Open the file. If successful, the returned file will have acquired + * an additional reference for path. + */ +struct file *vfs_open(struct path *path, struct file *filp, + const struct cred *cred) +{ + struct inode *inode = path->dentry->d_inode; + + if (inode->i_op->open) + return inode->i_op->open(path->dentry, filp, cred); + else + return __dentry_open(path, filp, NULL, cred); +} +EXPORT_SYMBOL(vfs_open); + static void __put_unused_fd(struct files_struct *files, unsigned int fd) { struct fdtable *fdt = files_fdtable(files); @@ -882,9 +903,10 @@ int lookup_flags = 0; int acc_mode; - if (!(flags & O_CREAT)) - mode = 0; - op->mode = mode; + if (flags & O_CREAT) + op->mode = (mode & S_IALLUGO) | S_IFREG; + else + op->mode = 0; /* Must never be set by userspace */ flags &= ~FMODE_NONOTIFY; @@ -987,6 +1009,7 @@ } else { fsnotify_open(f); fd_install(fd, f); + trace_do_sys_open(tmp, flags, mode); } } putname(tmp); --- linux-3.2.0.orig/fs/binfmt_misc.c +++ linux-3.2.0/fs/binfmt_misc.c @@ -116,10 +116,6 @@ if (!enabled) goto _ret; - retval = -ENOEXEC; - if (bprm->recursion_depth > BINPRM_MAX_RECURSION) - goto _ret; - /* to keep locking time low, we copy the interpreter string */ read_lock(&entries_lock); fmt = check_file(bprm); @@ -175,7 +171,10 @@ goto _error; bprm->argc ++; - bprm->interp = iname; /* for binfmt_script */ + /* Update interp in case binfmt_script needs it. */ + retval = bprm_change_interp(iname, bprm); + if (retval < 0) + goto _error; interp_file = open_exec (iname); retval = PTR_ERR (interp_file); @@ -196,9 +195,7 @@ if (retval < 0) goto _error; - bprm->recursion_depth++; - - retval = search_binary_handler (bprm, regs); + retval = search_binary_handler(bprm, regs); if (retval < 0) goto _error; --- linux-3.2.0.orig/fs/super.c +++ linux-3.2.0/fs/super.c @@ -1166,6 +1166,8 @@ printk(KERN_ERR "VFS:Filesystem freeze failed\n"); sb->s_frozen = SB_UNFROZEN; + smp_wmb(); + wake_up(&sb->s_wait_unfrozen); deactivate_locked_super(sb); return ret; } --- linux-3.2.0.orig/fs/dcache.c +++ linux-3.2.0/fs/dcache.c @@ -242,6 +242,7 @@ static void __dentry_lru_del(struct dentry *dentry) { list_del_init(&dentry->d_lru); + dentry->d_flags &= ~DCACHE_SHRINK_LIST; dentry->d_sb->s_nr_dentry_unused--; dentry_stat.nr_unused--; } @@ -275,15 +276,15 @@ } } -static void dentry_lru_move_tail(struct dentry *dentry) +static void dentry_lru_move_list(struct dentry *dentry, struct list_head *list) { spin_lock(&dcache_lru_lock); if (list_empty(&dentry->d_lru)) { - list_add_tail(&dentry->d_lru, &dentry->d_sb->s_dentry_lru); + list_add_tail(&dentry->d_lru, list); dentry->d_sb->s_nr_dentry_unused++; dentry_stat.nr_unused++; } else { - list_move_tail(&dentry->d_lru, &dentry->d_sb->s_dentry_lru); + list_move_tail(&dentry->d_lru, list); } spin_unlock(&dcache_lru_lock); } @@ -310,7 +311,7 @@ * Inform try_to_ascend() that we are no longer attached to the * dentry tree */ - dentry->d_flags |= DCACHE_DISCONNECTED; + dentry->d_flags |= DCACHE_DENTRY_KILLED; if (parent) spin_unlock(&parent->d_lock); dentry_iput(dentry); @@ -769,14 +770,18 @@ } /** - * __shrink_dcache_sb - shrink the dentry LRU on a given superblock - * @sb: superblock to shrink dentry LRU. - * @count: number of entries to prune - * @flags: flags to control the dentry processing + * prune_dcache_sb - shrink the dcache + * @sb: superblock + * @count: number of entries to try to free * - * If flags contains DCACHE_REFERENCED reference dentries will not be pruned. + * Attempt to shrink the superblock dcache LRU by @count entries. This is + * done when we need more memory an called from the superblock shrinker + * function. + * + * This function may fail to free any resources if all the dentries are in + * use. */ -static void __shrink_dcache_sb(struct super_block *sb, int count, int flags) +void prune_dcache_sb(struct super_block *sb, int count) { struct dentry *dentry; LIST_HEAD(referenced); @@ -795,18 +800,13 @@ goto relock; } - /* - * If we are honouring the DCACHE_REFERENCED flag and the - * dentry has this flag set, don't free it. Clear the flag - * and put it back on the LRU. - */ - if (flags & DCACHE_REFERENCED && - dentry->d_flags & DCACHE_REFERENCED) { + if (dentry->d_flags & DCACHE_REFERENCED) { dentry->d_flags &= ~DCACHE_REFERENCED; list_move(&dentry->d_lru, &referenced); spin_unlock(&dentry->d_lock); } else { list_move_tail(&dentry->d_lru, &tmp); + dentry->d_flags |= DCACHE_SHRINK_LIST; spin_unlock(&dentry->d_lock); if (!--count) break; @@ -821,23 +821,6 @@ } /** - * prune_dcache_sb - shrink the dcache - * @sb: superblock - * @nr_to_scan: number of entries to try to free - * - * Attempt to shrink the superblock dcache LRU by @nr_to_scan entries. This is - * done when we need more memory an called from the superblock shrinker - * function. - * - * This function may fail to free any resources if all the dentries are in - * use. - */ -void prune_dcache_sb(struct super_block *sb, int nr_to_scan) -{ - __shrink_dcache_sb(sb, nr_to_scan, DCACHE_REFERENCED); -} - -/** * shrink_dcache_sb - shrink dcache for a superblock * @sb: superblock * @@ -985,7 +968,7 @@ * or deletion */ if (new != old->d_parent || - (old->d_flags & DCACHE_DISCONNECTED) || + (old->d_flags & DCACHE_DENTRY_KILLED) || (!locked && read_seqretry(&rename_lock, seq))) { spin_unlock(&new->d_lock); new = NULL; @@ -1071,6 +1054,8 @@ return 1; rename_retry: + if (locked) + goto again; locked = 1; write_seqlock(&rename_lock); goto again; @@ -1091,7 +1076,7 @@ * drop the lock and return early due to latency * constraints. */ -static int select_parent(struct dentry * parent) +static int select_parent(struct dentry *parent, struct list_head *dispose) { struct dentry *this_parent; struct list_head *next; @@ -1113,17 +1098,21 @@ spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED); - /* - * move only zero ref count dentries to the end - * of the unused list for prune_dcache + /* + * move only zero ref count dentries to the dispose list. + * + * Those which are presently on the shrink list, being processed + * by shrink_dentry_list(), shouldn't be moved. Otherwise the + * loop in shrink_dcache_parent() might not make any progress + * and loop forever. */ - if (!dentry->d_count) { - dentry_lru_move_tail(dentry); - found++; - } else { + if (dentry->d_count) { dentry_lru_del(dentry); + } else if (!(dentry->d_flags & DCACHE_SHRINK_LIST)) { + dentry_lru_move_list(dentry, dispose); + dentry->d_flags |= DCACHE_SHRINK_LIST; + found++; } - /* * We can return to the caller if we have found some (this * ensures forward progress). We'll be coming back to find @@ -1169,6 +1158,8 @@ rename_retry: if (found) return found; + if (locked) + goto again; locked = 1; write_seqlock(&rename_lock); goto again; @@ -1180,14 +1171,15 @@ * * Prune the dcache to remove unused children of the parent dentry. */ - void shrink_dcache_parent(struct dentry * parent) { - struct super_block *sb = parent->d_sb; + LIST_HEAD(dispose); int found; - while ((found = select_parent(parent)) != 0) - __shrink_dcache_sb(sb, found, 0); + while ((found = select_parent(parent, &dispose)) != 0) { + shrink_dentry_list(&dispose); + cond_resched(); + } } EXPORT_SYMBOL(shrink_dcache_parent); @@ -1502,7 +1494,7 @@ */ struct dentry *d_obtain_alias(struct inode *inode) { - static const struct qstr anonstring = { .name = "" }; + static const struct qstr anonstring = { .name = "/", .len = 1 }; struct dentry *tmp; struct dentry *res; @@ -2371,6 +2363,7 @@ if (d_ancestor(alias, dentry)) { /* Check for loops */ actual = ERR_PTR(-ELOOP); + spin_unlock(&inode->i_lock); } else if (IS_ROOT(alias)) { /* Is this an anonymous mountpoint that we * could splice into our tree? */ @@ -2380,7 +2373,7 @@ goto found; } else { /* Nope, but we must(!) avoid directory - * aliasing */ + * aliasing. This drops inode->i_lock */ actual = __d_unalias(inode, dentry, alias); } write_sequnlock(&rename_lock); @@ -2454,7 +2447,6 @@ bool slash = false; int error = 0; - br_read_lock(vfsmount_lock); while (dentry != root->dentry || vfsmnt != root->mnt) { struct dentry * parent; @@ -2484,8 +2476,6 @@ if (!error && !slash) error = prepend(buffer, buflen, "/", 1); -out: - br_read_unlock(vfsmount_lock); return error; global_root: @@ -2502,7 +2492,7 @@ error = prepend(buffer, buflen, "/", 1); if (!error) error = vfsmnt->mnt_ns ? 1 : 2; - goto out; + return error; } /** @@ -2529,9 +2519,11 @@ int error; prepend(&res, &buflen, "\0", 1); + br_read_lock(vfsmount_lock); write_seqlock(&rename_lock); error = prepend_path(path, root, &res, &buflen); write_sequnlock(&rename_lock); + br_read_unlock(vfsmount_lock); if (error < 0) return ERR_PTR(error); @@ -2548,9 +2540,11 @@ int error; prepend(&res, &buflen, "\0", 1); + br_read_lock(vfsmount_lock); write_seqlock(&rename_lock); error = prepend_path(path, &root, &res, &buflen); write_sequnlock(&rename_lock); + br_read_unlock(vfsmount_lock); if (error > 1) error = -EINVAL; @@ -2614,11 +2608,13 @@ return path->dentry->d_op->d_dname(path->dentry, buf, buflen); get_fs_root(current->fs, &root); + br_read_lock(vfsmount_lock); write_seqlock(&rename_lock); error = path_with_deleted(path, &root, &res, &buflen); + write_sequnlock(&rename_lock); + br_read_unlock(vfsmount_lock); if (error < 0) res = ERR_PTR(error); - write_sequnlock(&rename_lock); path_put(&root); return res; } @@ -2773,6 +2769,7 @@ get_fs_root_and_pwd(current->fs, &root, &pwd); error = -ENOENT; + br_read_lock(vfsmount_lock); write_seqlock(&rename_lock); if (!d_unlinked(pwd.dentry)) { unsigned long len; @@ -2782,6 +2779,7 @@ prepend(&cwd, &buflen, "\0", 1); error = prepend_path(&pwd, &root, &cwd, &buflen); write_sequnlock(&rename_lock); + br_read_unlock(vfsmount_lock); if (error < 0) goto out; @@ -2802,6 +2800,7 @@ } } else { write_sequnlock(&rename_lock); + br_read_unlock(vfsmount_lock); } out: @@ -2935,6 +2934,8 @@ return; rename_retry: + if (locked) + goto again; locked = 1; write_seqlock(&rename_lock); goto again; --- linux-3.2.0.orig/fs/attr.c +++ linux-3.2.0/fs/attr.c @@ -176,6 +176,11 @@ return -EPERM; } + if ((ia_valid & ATTR_SIZE) && IS_I_VERSION(inode)) { + if (attr->ia_size != inode->i_size) + inode_inc_iversion(inode); + } + if ((ia_valid & ATTR_MODE)) { mode_t amode = attr->ia_mode; /* Flag setting protected by i_mutex */ --- linux-3.2.0.orig/fs/namei.c +++ linux-3.2.0/fs/namei.c @@ -1094,8 +1094,10 @@ struct dentry *old; /* Don't create child dentry for a dead directory. */ - if (unlikely(IS_DEADDIR(inode))) + if (unlikely(IS_DEADDIR(inode))) { + dput(dentry); return ERR_PTR(-ENOENT); + } old = inode->i_op->lookup(inode, dentry, nd); if (unlikely(old)) { @@ -1753,10 +1755,11 @@ * needs parent already locked. Doesn't follow mounts. * SMP-safe. */ -static struct dentry *lookup_hash(struct nameidata *nd) +struct dentry *lookup_hash(struct nameidata *nd) { return __lookup_hash(&nd->last, nd->path.dentry, nd); } +EXPORT_SYMBOL(lookup_hash); /** * lookup_one_len - filesystem helper to lookup single pathname component @@ -2137,7 +2140,7 @@ /* sayonara */ error = complete_walk(nd); if (error) - return ERR_PTR(-ECHILD); + return ERR_PTR(error); error = -ENOTDIR; if (nd->flags & LOOKUP_DIRECTORY) { @@ -2236,7 +2239,7 @@ /* Why this, you ask? _Now_ we might have grown LOOKUP_JUMPED... */ error = complete_walk(nd); if (error) - goto exit; + return ERR_PTR(error); error = -EISDIR; if (S_ISDIR(nd->inode->i_mode)) goto exit; --- linux-3.2.0.orig/fs/Makefile +++ linux-3.2.0/fs/Makefile @@ -104,6 +104,7 @@ obj-$(CONFIG_AUTOFS4_FS) += autofs4/ obj-$(CONFIG_ADFS_FS) += adfs/ obj-$(CONFIG_FUSE_FS) += fuse/ +obj-$(CONFIG_OVERLAYFS_FS) += overlayfs/ obj-$(CONFIG_UDF_FS) += udf/ obj-$(CONFIG_SUN_OPENPROMFS) += openpromfs/ obj-$(CONFIG_OMFS_FS) += omfs/ --- linux-3.2.0.orig/fs/file_table.c +++ linux-3.2.0/fs/file_table.c @@ -443,6 +443,8 @@ } } +EXPORT_SYMBOL(file_sb_list_del); + #ifdef CONFIG_SMP /* --- linux-3.2.0.orig/fs/inode.c +++ linux-3.2.0/fs/inode.c @@ -65,6 +65,7 @@ static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock); __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock); +EXPORT_SYMBOL(inode_sb_list_lock); /* * Empty aops. Can be used for the cases where the user does not @@ -634,7 +635,7 @@ * inode to the back of the list so we don't spin on it. */ if (!spin_trylock(&inode->i_lock)) { - list_move_tail(&inode->i_lru, &sb->s_inode_lru); + list_move(&inode->i_lru, &sb->s_inode_lru); continue; } @@ -1678,3 +1679,7 @@ return false; } EXPORT_SYMBOL(inode_owner_or_capable); + +#define CREATE_TRACE_POINTS +#include + --- linux-3.2.0.orig/fs/compat.c +++ linux-3.2.0/fs/compat.c @@ -572,6 +572,10 @@ } *ret_pointer = iov; + ret = -EFAULT; + if (!access_ok(VERIFY_READ, uvector, nr_segs*sizeof(*uvector))) + goto out; + /* * Single unix specification: * We should -EINVAL if an element length is not >= 0 and fitting an @@ -1103,17 +1107,12 @@ if (!file->f_op) goto out; - ret = -EFAULT; - if (!access_ok(VERIFY_READ, uvector, nr_segs*sizeof(*uvector))) - goto out; - - tot_len = compat_rw_copy_check_uvector(type, uvector, nr_segs, + ret = compat_rw_copy_check_uvector(type, uvector, nr_segs, UIO_FASTIOV, iovstack, &iov, 1); - if (tot_len == 0) { - ret = 0; + if (ret <= 0) goto out; - } + tot_len = ret; ret = rw_verify_area(type, file, pos, tot_len); if (ret < 0) goto out; @@ -1174,11 +1173,14 @@ struct file *file; int fput_needed; ssize_t ret; + loff_t pos; file = fget_light(fd, &fput_needed); if (!file) return -EBADF; - ret = compat_readv(file, vec, vlen, &file->f_pos); + pos = file->f_pos; + ret = compat_readv(file, vec, vlen, &pos); + file->f_pos = pos; fput_light(file, fput_needed); return ret; } @@ -1233,11 +1235,14 @@ struct file *file; int fput_needed; ssize_t ret; + loff_t pos; file = fget_light(fd, &fput_needed); if (!file) return -EBADF; - ret = compat_writev(file, vec, vlen, &file->f_pos); + pos = file->f_pos; + ret = compat_writev(file, vec, vlen, &pos); + file->f_pos = pos; fput_light(file, fput_needed); return ret; } --- linux-3.2.0.orig/fs/pipe.c +++ linux-3.2.0/fs/pipe.c @@ -345,6 +345,16 @@ .get = generic_pipe_buf_get, }; +static const struct pipe_buf_operations packet_pipe_buf_ops = { + .can_merge = 0, + .map = generic_pipe_buf_map, + .unmap = generic_pipe_buf_unmap, + .confirm = generic_pipe_buf_confirm, + .release = anon_pipe_buf_release, + .steal = generic_pipe_buf_steal, + .get = generic_pipe_buf_get, +}; + static ssize_t pipe_read(struct kiocb *iocb, const struct iovec *_iov, unsigned long nr_segs, loff_t pos) @@ -406,6 +416,13 @@ ret += chars; buf->offset += chars; buf->len -= chars; + + /* Was it a packet buffer? Clean up and exit */ + if (buf->flags & PIPE_BUF_FLAG_PACKET) { + total_len = chars; + buf->len = 0; + } + if (!buf->len) { buf->ops = NULL; ops->release(pipe, buf); @@ -458,6 +475,11 @@ return ret; } +static inline int is_packetized(struct file *file) +{ + return (file->f_flags & O_DIRECT) != 0; +} + static ssize_t pipe_write(struct kiocb *iocb, const struct iovec *_iov, unsigned long nr_segs, loff_t ppos) @@ -592,6 +614,11 @@ buf->ops = &anon_pipe_buf_ops; buf->offset = 0; buf->len = chars; + buf->flags = 0; + if (is_packetized(filp)) { + buf->ops = &packet_pipe_buf_ops; + buf->flags = PIPE_BUF_FLAG_PACKET; + } pipe->nrbufs = ++bufs; pipe->tmp_page = NULL; @@ -832,6 +859,9 @@ { int ret = -ENOENT; + if (!(filp->f_mode & (FMODE_READ|FMODE_WRITE))) + return -EINVAL; + mutex_lock(&inode->i_mutex); if (inode->i_pipe) { @@ -1012,7 +1042,7 @@ goto err_dentry; f->f_mapping = inode->i_mapping; - f->f_flags = O_WRONLY | (flags & O_NONBLOCK); + f->f_flags = O_WRONLY | (flags & (O_NONBLOCK | O_DIRECT)); f->f_version = 0; return f; @@ -1056,7 +1086,7 @@ int error; int fdw, fdr; - if (flags & ~(O_CLOEXEC | O_NONBLOCK)) + if (flags & ~(O_CLOEXEC | O_NONBLOCK | O_DIRECT)) return -EINVAL; fw = create_write_pipe(flags); --- linux-3.2.0.orig/fs/fifo.c +++ linux-3.2.0/fs/fifo.c @@ -14,7 +14,7 @@ #include #include -static void wait_for_partner(struct inode* inode, unsigned int *cnt) +static int wait_for_partner(struct inode* inode, unsigned int *cnt) { int cur = *cnt; @@ -23,6 +23,7 @@ if (signal_pending(current)) break; } + return cur == *cnt ? -ERESTARTSYS : 0; } static void wake_up_partner(struct inode* inode) @@ -67,8 +68,7 @@ * seen a writer */ filp->f_version = pipe->w_counter; } else { - wait_for_partner(inode, &pipe->w_counter); - if(signal_pending(current)) + if (wait_for_partner(inode, &pipe->w_counter)) goto err_rd; } } @@ -90,8 +90,7 @@ wake_up_partner(inode); if (!pipe->readers) { - wait_for_partner(inode, &pipe->r_counter); - if (signal_pending(current)) + if (wait_for_partner(inode, &pipe->r_counter)) goto err_wr; } break; --- linux-3.2.0.orig/fs/locks.c +++ linux-3.2.0/fs/locks.c @@ -308,7 +308,7 @@ return 0; } -static int assign_type(struct file_lock *fl, int type) +static int assign_type(struct file_lock *fl, long type) { switch (type) { case F_RDLCK: @@ -445,7 +445,7 @@ /* * Initialize a lease, use the default lock manager operations */ -static int lease_init(struct file *filp, int type, struct file_lock *fl) +static int lease_init(struct file *filp, long type, struct file_lock *fl) { if (assign_type(fl, type) != 0) return -EINVAL; @@ -463,7 +463,7 @@ } /* Allocate a file_lock initialised to this type of lease */ -static struct file_lock *lease_alloc(struct file *filp, int type) +static struct file_lock *lease_alloc(struct file *filp, long type) { struct file_lock *fl = locks_alloc_lock(); int error = -ENOMEM; @@ -510,12 +510,13 @@ /* */ -static void locks_delete_block(struct file_lock *waiter) +void locks_delete_block(struct file_lock *waiter) { lock_flocks(); __locks_delete_block(waiter); unlock_flocks(); } +EXPORT_SYMBOL(locks_delete_block); /* Insert waiter into blocker's block list. * We use a circular list so that processes can be easily woken up in @@ -1464,7 +1465,7 @@ case F_WRLCK: return generic_add_lease(filp, arg, flp); default: - BUG(); + return -EINVAL; } } EXPORT_SYMBOL(generic_setlease); --- linux-3.2.0.orig/fs/stat.c +++ linux-3.2.0/fs/stat.c @@ -57,12 +57,13 @@ int vfs_fstat(unsigned int fd, struct kstat *stat) { - struct file *f = fget(fd); + int fput_needed; + struct file *f = fget_raw_light(fd, &fput_needed); int error = -EBADF; if (f) { error = vfs_getattr(f->f_path.mnt, f->f_path.dentry, stat); - fput(f); + fput_light(f, fput_needed); } return error; } --- linux-3.2.0.orig/fs/exec.c +++ linux-3.2.0/fs/exec.c @@ -56,6 +56,8 @@ #include #include +#include + #include #include #include @@ -782,6 +784,8 @@ fsnotify_open(file); + trace_open_exec(name); + err = deny_write_access(file); if (err) goto exit; @@ -973,6 +977,9 @@ sig->notify_count = 0; no_thread_group: + /* we have changed execution domain */ + tsk->exit_signal = SIGCHLD; + if (current->mm) setmax_mm_hiwater_rss(&sig->maxrss, current->mm); @@ -1092,7 +1099,8 @@ bprm->mm = NULL; /* We're using it now */ set_fs(USER_DS); - current->flags &= ~(PF_RANDOMIZE | PF_KTHREAD); + current->flags &= + ~(PF_RANDOMIZE | PF_KTHREAD | PF_NOFREEZE | PF_FREEZER_NOSIG); flush_thread(); current->personality &= ~bprm->per_clear; @@ -1155,13 +1163,6 @@ set_dumpable(current->mm, suid_dumpable); } - /* - * Flush performance counters when crossing a - * security domain: - */ - if (!get_dumpable(current->mm)) - perf_event_exit_task(current); - /* An exec changes our domain. We are no longer part of the thread group */ @@ -1198,9 +1199,24 @@ mutex_unlock(¤t->signal->cred_guard_mutex); abort_creds(bprm->cred); } + /* If a binfmt changed the interp, free it. */ + if (bprm->interp != bprm->filename) + kfree(bprm->interp); kfree(bprm); } +int bprm_change_interp(char *interp, struct linux_binprm *bprm) +{ + /* If a binfmt changed the interp, free it first. */ + if (bprm->interp != bprm->filename) + kfree(bprm->interp); + bprm->interp = kstrdup(interp, GFP_KERNEL); + if (!bprm->interp) + return -ENOMEM; + return 0; +} +EXPORT_SYMBOL(bprm_change_interp); + /* * install the new credentials for this executable */ @@ -1210,6 +1226,15 @@ commit_creds(bprm->cred); bprm->cred = NULL; + + /* + * Disable monitoring for regular users + * when executing setuid binaries. Must + * wait until new credentials are committed + * by commit_creds() above + */ + if (get_dumpable(current->mm) != SUID_DUMP_USER) + perf_event_exit_task(current); /* * cred_guard_mutex must be held at least to this point to prevent * ptrace_attach() from altering our determination of the task's @@ -1238,6 +1263,13 @@ bprm->unsafe |= LSM_UNSAFE_PTRACE; } + /* + * This isn't strictly necessary, but it makes it harder for LSMs to + * mess up. + */ + if (current->no_new_privs) + bprm->unsafe |= LSM_UNSAFE_NO_NEW_PRIVS; + n_fs = 1; spin_lock(&p->fs->lock); rcu_read_lock(); @@ -1281,7 +1313,8 @@ bprm->cred->euid = current_euid(); bprm->cred->egid = current_egid(); - if (!(bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID)) { + if (!(bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID) && + !current->no_new_privs) { /* Set-uid? */ if (mode & S_ISUID) { bprm->per_clear |= PER_CLEAR_ON_SETID; @@ -1366,6 +1399,10 @@ struct linux_binfmt *fmt; pid_t old_pid; + /* This allows 4 levels of binfmt rewrites before failing hard. */ + if (depth > 5) + return -ELOOP; + retval = security_bprm_check(bprm); if (retval) return retval; @@ -1389,12 +1426,8 @@ if (!try_module_get(fmt->module)) continue; read_unlock(&binfmt_lock); + bprm->recursion_depth = depth + 1; retval = fn(bprm, regs); - /* - * Restore the depth counter to its starting value - * in this call, so we don't have to rely on every - * load_binary function to restore it on return. - */ bprm->recursion_depth = depth; if (retval >= 0) { if (depth == 0) --- linux-3.2.0.orig/fs/aio.c +++ linux-3.2.0/fs/aio.c @@ -228,12 +228,6 @@ call_rcu(&ctx->rcu_head, ctx_rcu_free); } -static inline void get_ioctx(struct kioctx *kioctx) -{ - BUG_ON(atomic_read(&kioctx->users) <= 0); - atomic_inc(&kioctx->users); -} - static inline int try_get_ioctx(struct kioctx *kioctx) { return atomic_inc_not_zero(&kioctx->users); @@ -273,7 +267,7 @@ mm = ctx->mm = current->mm; atomic_inc(&mm->mm_count); - atomic_set(&ctx->users, 1); + atomic_set(&ctx->users, 2); spin_lock_init(&ctx->ctx_lock); spin_lock_init(&ctx->ring_info.ring_lock); init_waitqueue_head(&ctx->wait); @@ -476,14 +470,23 @@ batch->count = total; } -static void kiocb_batch_free(struct kiocb_batch *batch) +static void kiocb_batch_free(struct kioctx *ctx, struct kiocb_batch *batch) { struct kiocb *req, *n; + if (list_empty(&batch->head)) + return; + + spin_lock_irq(&ctx->ctx_lock); list_for_each_entry_safe(req, n, &batch->head, ki_batch) { list_del(&req->ki_batch); + list_del(&req->ki_list); kmem_cache_free(kiocb_cachep, req); + ctx->reqs_active--; } + if (unlikely(!ctx->reqs_active && ctx->dead)) + wake_up_all(&ctx->wait); + spin_unlock_irq(&ctx->ctx_lock); } /* @@ -600,11 +603,16 @@ fput(req->ki_filp); /* Link the iocb into the context's free list */ + rcu_read_lock(); spin_lock_irq(&ctx->ctx_lock); really_put_req(ctx, req); + /* + * at that point ctx might've been killed, but actual + * freeing is RCU'd + */ spin_unlock_irq(&ctx->ctx_lock); + rcu_read_unlock(); - put_ioctx(ctx); spin_lock_irq(&fput_lock); } spin_unlock_irq(&fput_lock); @@ -635,7 +643,6 @@ * this function will be executed w/out any aio kthread wakeup. */ if (unlikely(!fput_atomic(req->ki_filp))) { - get_ioctx(ctx); spin_lock(&fput_lock); list_add(&req->ki_list, &fput_head); spin_unlock(&fput_lock); @@ -1105,9 +1112,9 @@ spin_unlock(&info->ring_lock); out: - kunmap_atomic(ring, KM_USER0); dprintk("leaving aio_read_evt: %d h%lu t%lu\n", ret, (unsigned long)ring->head, (unsigned long)ring->tail); + kunmap_atomic(ring, KM_USER0); return ret; } @@ -1329,10 +1336,10 @@ ret = PTR_ERR(ioctx); if (!IS_ERR(ioctx)) { ret = put_user(ioctx->user_id, ctxp); - if (!ret) + if (!ret) { + put_ioctx(ioctx); return 0; - - get_ioctx(ioctx); /* io_destroy() expects us to hold a ref */ + } io_destroy(ioctx); } @@ -1470,6 +1477,10 @@ if (ret < 0) goto out; + ret = rw_verify_area(type, kiocb->ki_filp, &kiocb->ki_pos, ret); + if (ret < 0) + goto out; + kiocb->ki_nr_segs = kiocb->ki_nbytes; kiocb->ki_cur_seg = 0; /* ki_nbytes/left now reflect bytes instead of segs */ @@ -1481,11 +1492,17 @@ return ret; } -static ssize_t aio_setup_single_vector(struct kiocb *kiocb) +static ssize_t aio_setup_single_vector(int type, struct file * file, struct kiocb *kiocb) { + int bytes; + + bytes = rw_verify_area(type, file, &kiocb->ki_pos, kiocb->ki_left); + if (bytes < 0) + return bytes; + kiocb->ki_iovec = &kiocb->ki_inline_vec; kiocb->ki_iovec->iov_base = kiocb->ki_buf; - kiocb->ki_iovec->iov_len = kiocb->ki_left; + kiocb->ki_iovec->iov_len = bytes; kiocb->ki_nr_segs = 1; kiocb->ki_cur_seg = 0; return 0; @@ -1510,10 +1527,7 @@ if (unlikely(!access_ok(VERIFY_WRITE, kiocb->ki_buf, kiocb->ki_left))) break; - ret = security_file_permission(file, MAY_READ); - if (unlikely(ret)) - break; - ret = aio_setup_single_vector(kiocb); + ret = aio_setup_single_vector(READ, file, kiocb); if (ret) break; ret = -EINVAL; @@ -1528,10 +1542,7 @@ if (unlikely(!access_ok(VERIFY_READ, kiocb->ki_buf, kiocb->ki_left))) break; - ret = security_file_permission(file, MAY_WRITE); - if (unlikely(ret)) - break; - ret = aio_setup_single_vector(kiocb); + ret = aio_setup_single_vector(WRITE, file, kiocb); if (ret) break; ret = -EINVAL; @@ -1542,9 +1553,6 @@ ret = -EBADF; if (unlikely(!(file->f_mode & FMODE_READ))) break; - ret = security_file_permission(file, MAY_READ); - if (unlikely(ret)) - break; ret = aio_setup_vectored_rw(READ, kiocb, compat); if (ret) break; @@ -1556,9 +1564,6 @@ ret = -EBADF; if (unlikely(!(file->f_mode & FMODE_WRITE))) break; - ret = security_file_permission(file, MAY_WRITE); - if (unlikely(ret)) - break; ret = aio_setup_vectored_rw(WRITE, kiocb, compat); if (ret) break; @@ -1742,7 +1747,7 @@ } blk_finish_plug(&plug); - kiocb_batch_free(&batch); + kiocb_batch_free(ctx, &batch); put_ioctx(ctx); return i ? i : ret; } --- linux-3.2.0.orig/fs/splice.c +++ linux-3.2.0/fs/splice.c @@ -31,6 +31,7 @@ #include #include #include +#include /* * Attempt to steal a page from a pipe buffer. This should perhaps go into @@ -273,13 +274,16 @@ * Check if we need to grow the arrays holding pages and partial page * descriptions. */ -int splice_grow_spd(struct pipe_inode_info *pipe, struct splice_pipe_desc *spd) +int splice_grow_spd(const struct pipe_inode_info *pipe, struct splice_pipe_desc *spd) { - if (pipe->buffers <= PIPE_DEF_BUFFERS) + unsigned int buffers = ACCESS_ONCE(pipe->buffers); + + spd->nr_pages_max = buffers; + if (buffers <= PIPE_DEF_BUFFERS) return 0; - spd->pages = kmalloc(pipe->buffers * sizeof(struct page *), GFP_KERNEL); - spd->partial = kmalloc(pipe->buffers * sizeof(struct partial_page), GFP_KERNEL); + spd->pages = kmalloc(buffers * sizeof(struct page *), GFP_KERNEL); + spd->partial = kmalloc(buffers * sizeof(struct partial_page), GFP_KERNEL); if (spd->pages && spd->partial) return 0; @@ -289,10 +293,9 @@ return -ENOMEM; } -void splice_shrink_spd(struct pipe_inode_info *pipe, - struct splice_pipe_desc *spd) +void splice_shrink_spd(struct splice_pipe_desc *spd) { - if (pipe->buffers <= PIPE_DEF_BUFFERS) + if (spd->nr_pages_max <= PIPE_DEF_BUFFERS) return; kfree(spd->pages); @@ -315,6 +318,7 @@ struct splice_pipe_desc spd = { .pages = pages, .partial = partial, + .nr_pages_max = PIPE_DEF_BUFFERS, .flags = flags, .ops = &page_cache_pipe_buf_ops, .spd_release = spd_release_page, @@ -326,7 +330,7 @@ index = *ppos >> PAGE_CACHE_SHIFT; loff = *ppos & ~PAGE_CACHE_MASK; req_pages = (len + loff + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; - nr_pages = min(req_pages, pipe->buffers); + nr_pages = min(req_pages, spd.nr_pages_max); /* * Lookup the (hopefully) full range of pages we need. @@ -497,7 +501,7 @@ if (spd.nr_pages) error = splice_to_pipe(pipe, &spd); - splice_shrink_spd(pipe, &spd); + splice_shrink_spd(&spd); return error; } @@ -598,6 +602,7 @@ struct splice_pipe_desc spd = { .pages = pages, .partial = partial, + .nr_pages_max = PIPE_DEF_BUFFERS, .flags = flags, .ops = &default_pipe_buf_ops, .spd_release = spd_release_page, @@ -608,8 +613,8 @@ res = -ENOMEM; vec = __vec; - if (pipe->buffers > PIPE_DEF_BUFFERS) { - vec = kmalloc(pipe->buffers * sizeof(struct iovec), GFP_KERNEL); + if (spd.nr_pages_max > PIPE_DEF_BUFFERS) { + vec = kmalloc(spd.nr_pages_max * sizeof(struct iovec), GFP_KERNEL); if (!vec) goto shrink_ret; } @@ -617,7 +622,7 @@ offset = *ppos & ~PAGE_CACHE_MASK; nr_pages = (len + offset + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; - for (i = 0; i < nr_pages && i < pipe->buffers && len; i++) { + for (i = 0; i < nr_pages && i < spd.nr_pages_max && len; i++) { struct page *page; page = alloc_page(GFP_USER); @@ -665,7 +670,7 @@ shrink_ret: if (vec != __vec) kfree(vec); - splice_shrink_spd(pipe, &spd); + splice_shrink_spd(&spd); return res; err: @@ -691,7 +696,11 @@ if (!likely(file->f_op && file->f_op->sendpage)) return -EINVAL; - more = (sd->flags & SPLICE_F_MORE) || sd->len < sd->total_len; + more = (sd->flags & SPLICE_F_MORE) ? MSG_MORE : 0; + + if (sd->len < sd->total_len && pipe->nrbufs > 1) + more |= MSG_SENDPAGE_NOTLAST; + return file->f_op->sendpage(file, buf->page, buf->offset, sd->len, &pos, more); } @@ -1085,8 +1094,8 @@ /* * Attempt to initiate a splice from pipe to file. */ -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, - loff_t *ppos, size_t len, unsigned int flags) +long do_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags) { ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); @@ -1109,13 +1118,14 @@ return splice_write(pipe, out, ppos, len, flags); } +EXPORT_SYMBOL(do_splice_from); /* * Attempt to initiate a splice from a file to a pipe. */ -static long do_splice_to(struct file *in, loff_t *ppos, - struct pipe_inode_info *pipe, size_t len, - unsigned int flags) +long do_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) { ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); @@ -1135,6 +1145,7 @@ return splice_read(in, ppos, pipe, len, flags); } +EXPORT_SYMBOL(do_splice_to); /** * splice_direct_to_actor - splices data directly between two non-pipes @@ -1300,6 +1311,7 @@ return ret; } +EXPORT_SYMBOL(do_splice_direct); static int splice_pipe_to_pipe(struct pipe_inode_info *ipipe, struct pipe_inode_info *opipe, @@ -1613,6 +1625,7 @@ struct splice_pipe_desc spd = { .pages = pages, .partial = partial, + .nr_pages_max = PIPE_DEF_BUFFERS, .flags = flags, .ops = &user_page_pipe_buf_ops, .spd_release = spd_release_page, @@ -1628,13 +1641,13 @@ spd.nr_pages = get_iovec_page_array(iov, nr_segs, spd.pages, spd.partial, flags & SPLICE_F_GIFT, - pipe->buffers); + spd.nr_pages_max); if (spd.nr_pages <= 0) ret = spd.nr_pages; else ret = splice_to_pipe(pipe, &spd); - splice_shrink_spd(pipe, &spd); + splice_shrink_spd(&spd); return ret; } --- linux-3.2.0.orig/fs/compat_ioctl.c +++ linux-3.2.0/fs/compat_ioctl.c @@ -210,6 +210,8 @@ err = get_user(palp, &up->palette); err |= get_user(length, &up->length); + if (err) + return -EFAULT; up_native = compat_alloc_user_space(sizeof(struct video_spu_palette)); err = put_user(compat_ptr(palp), &up_native->palette); --- linux-3.2.0.orig/fs/binfmt_elf.c +++ linux-3.2.0/fs/binfmt_elf.c @@ -711,6 +711,15 @@ if (retval) goto out_free_dentry; +#ifdef CONFIG_X86_32 + /* + * Turn off the CS limit completely if exec-shield disabled or + * NX active: + */ + if (disable_nx || executable_stack != EXSTACK_DISABLE_X || (__supported_pte_mask & _PAGE_NX)) + arch_add_exec_range(current->mm, -1); +#endif + /* OK, This is the point of no return */ current->flags &= ~PF_FORKNOEXEC; current->mm->def_flags = def_flags; @@ -1421,7 +1430,7 @@ for (i = 1; i < view->n; ++i) { const struct user_regset *regset = &view->regsets[i]; do_thread_regset_writeback(t->task, regset); - if (regset->core_note_type && + if (regset->core_note_type && regset->get && (!regset->active || regset->active(t->task, regset))) { int ret; size_t size = regset->n * regset->size; @@ -1668,30 +1677,19 @@ return 0; info->psinfo = kmalloc(sizeof(*info->psinfo), GFP_KERNEL); if (!info->psinfo) - goto notes_free; + return 0; info->prstatus = kmalloc(sizeof(*info->prstatus), GFP_KERNEL); if (!info->prstatus) - goto psinfo_free; + return 0; info->fpu = kmalloc(sizeof(*info->fpu), GFP_KERNEL); if (!info->fpu) - goto prstatus_free; + return 0; #ifdef ELF_CORE_COPY_XFPREGS info->xfpu = kmalloc(sizeof(*info->xfpu), GFP_KERNEL); if (!info->xfpu) - goto fpu_free; + return 0; #endif return 1; -#ifdef ELF_CORE_COPY_XFPREGS - fpu_free: - kfree(info->fpu); -#endif - prstatus_free: - kfree(info->prstatus); - psinfo_free: - kfree(info->psinfo); - notes_free: - kfree(info->notes); - return 0; } static int fill_note_info(struct elfhdr *elf, int phdrs, --- linux-3.2.0.orig/fs/buffer.c +++ linux-3.2.0/fs/buffer.c @@ -964,13 +964,14 @@ /* * Initialise the state of a blockdev page's buffers. */ -static void +static sector_t init_page_buffers(struct page *page, struct block_device *bdev, sector_t block, int size) { struct buffer_head *head = page_buffers(page); struct buffer_head *bh = head; int uptodate = PageUptodate(page); + sector_t end_block = blkdev_max_block(I_BDEV(bdev->bd_inode)); do { if (!buffer_mapped(bh)) { @@ -979,38 +980,47 @@ bh->b_blocknr = block; if (uptodate) set_buffer_uptodate(bh); - set_buffer_mapped(bh); + if (block < end_block) + set_buffer_mapped(bh); } block++; bh = bh->b_this_page; } while (bh != head); + + /* + * Caller needs to validate requested block against end of device. + */ + return end_block; } /* * Create the page-cache page that contains the requested block. * - * This is user purely for blockdev mappings. + * This is used purely for blockdev mappings. */ -static struct page * +static int grow_dev_page(struct block_device *bdev, sector_t block, - pgoff_t index, int size) + pgoff_t index, int size, int sizebits) { struct inode *inode = bdev->bd_inode; struct page *page; struct buffer_head *bh; + sector_t end_block; + int ret = 0; /* Will call free_more_memory() */ page = find_or_create_page(inode->i_mapping, index, (mapping_gfp_mask(inode->i_mapping) & ~__GFP_FS)|__GFP_MOVABLE); if (!page) - return NULL; + return ret; BUG_ON(!PageLocked(page)); if (page_has_buffers(page)) { bh = page_buffers(page); if (bh->b_size == size) { - init_page_buffers(page, bdev, block, size); - return page; + end_block = init_page_buffers(page, bdev, + index << sizebits, size); + goto done; } if (!try_to_free_buffers(page)) goto failed; @@ -1030,15 +1040,14 @@ */ spin_lock(&inode->i_mapping->private_lock); link_dev_buffers(page, bh); - init_page_buffers(page, bdev, block, size); + end_block = init_page_buffers(page, bdev, index << sizebits, size); spin_unlock(&inode->i_mapping->private_lock); - return page; - +done: + ret = (block < end_block) ? 1 : -ENXIO; failed: - BUG(); unlock_page(page); page_cache_release(page); - return NULL; + return ret; } /* @@ -1048,7 +1057,6 @@ static int grow_buffers(struct block_device *bdev, sector_t block, int size) { - struct page *page; pgoff_t index; int sizebits; @@ -1072,14 +1080,9 @@ bdevname(bdev, b)); return -EIO; } - block = index << sizebits; + /* Create a page with the proper size buffers.. */ - page = grow_dev_page(bdev, block, index, size); - if (!page) - return 0; - unlock_page(page); - page_cache_release(page); - return 1; + return grow_dev_page(bdev, block, index, size, sizebits); } static struct buffer_head * @@ -1098,7 +1101,7 @@ } for (;;) { - struct buffer_head * bh; + struct buffer_head *bh; int ret; bh = __find_get_block(bdev, block, size); @@ -1366,10 +1369,6 @@ * which corresponds to the passed block_device, block and size. The * returned buffer has its reference count incremented. * - * __getblk() cannot fail - it just keeps trying. If you pass it an - * illegal block number, __getblk() will happily return a buffer_head - * which represents the non-existent block. Very weird. - * * __getblk() will lock up the machine if grow_dev_page's try_to_free_buffers() * attempt is failing. FIXME, perhaps? */ --- linux-3.2.0.orig/fs/binfmt_script.c +++ linux-3.2.0/fs/binfmt_script.c @@ -22,15 +22,13 @@ char interp[BINPRM_BUF_SIZE]; int retval; - if ((bprm->buf[0] != '#') || (bprm->buf[1] != '!') || - (bprm->recursion_depth > BINPRM_MAX_RECURSION)) + if ((bprm->buf[0] != '#') || (bprm->buf[1] != '!')) return -ENOEXEC; /* * This section does the #! interpretation. * Sorta complicated, but hopefully it will work. -TYT */ - bprm->recursion_depth++; allow_write_access(bprm->file); fput(bprm->file); bprm->file = NULL; @@ -82,7 +80,9 @@ retval = copy_strings_kernel(1, &i_name, bprm); if (retval) return retval; bprm->argc++; - bprm->interp = interp; + retval = bprm_change_interp(interp, bprm); + if (retval < 0) + return retval; /* * OK, now restart the process with the interpreter's dentry. --- linux-3.2.0.orig/fs/block_dev.c +++ linux-3.2.0/fs/block_dev.c @@ -55,20 +55,27 @@ struct backing_dev_info *dst) { struct backing_dev_info *old = inode->i_data.backing_dev_info; + bool wakeup_bdi = false; if (unlikely(dst == old)) /* deadlock avoidance */ return; bdi_lock_two(&old->wb, &dst->wb); spin_lock(&inode->i_lock); inode->i_data.backing_dev_info = dst; - if (inode->i_state & I_DIRTY) + if (inode->i_state & I_DIRTY) { + if (bdi_cap_writeback_dirty(dst) && !wb_has_dirty_io(&dst->wb)) + wakeup_bdi = true; list_move(&inode->i_wb_list, &dst->wb.b_dirty); + } spin_unlock(&inode->i_lock); spin_unlock(&old->wb.list_lock); spin_unlock(&dst->wb.list_lock); + + if (wakeup_bdi) + bdi_wakeup_thread_delayed(dst); } -static sector_t max_block(struct block_device *bdev) +sector_t blkdev_max_block(struct block_device *bdev) { sector_t retval = ~((sector_t)0); loff_t sz = i_size_read(bdev->bd_inode); @@ -82,13 +89,14 @@ } /* Kill _all_ buffers and pagecache , dirty or not.. */ -static void kill_bdev(struct block_device *bdev) +void kill_bdev(struct block_device *bdev) { if (bdev->bd_inode->i_mapping->nrpages == 0) return; invalidate_bh_lrus(); truncate_inode_pages(bdev->bd_inode->i_mapping, 0); } +EXPORT_SYMBOL(kill_bdev); int set_blocksize(struct block_device *bdev, int size) { @@ -139,7 +147,7 @@ blkdev_get_block(struct inode *inode, sector_t iblock, struct buffer_head *bh, int create) { - if (iblock >= max_block(I_BDEV(inode))) { + if (iblock >= blkdev_max_block(I_BDEV(inode))) { if (create) return -EIO; @@ -161,7 +169,7 @@ blkdev_get_blocks(struct inode *inode, sector_t iblock, struct buffer_head *bh, int create) { - sector_t end_block = max_block(I_BDEV(inode)); + sector_t end_block = blkdev_max_block(I_BDEV(inode)); unsigned long max_blocks = bh->b_size >> inode->i_blkbits; if ((iblock + max_blocks) > end_block) { @@ -586,6 +594,7 @@ ihold(bdev->bd_inode); return bdev; } +EXPORT_SYMBOL(bdgrab); long nr_blockdev_pages(void) { @@ -1024,6 +1033,7 @@ mutex_lock(&bdev->bd_mutex); check_disk_size_change(disk, bdev); + bdev->bd_invalidated = 0; mutex_unlock(&bdev->bd_mutex); bdput(bdev); return ret; @@ -1062,7 +1072,9 @@ { unsigned bsize = bdev_logical_block_size(bdev); - bdev->bd_inode->i_size = size; + mutex_lock(&bdev->bd_inode->i_mutex); + i_size_write(bdev->bd_inode, size); + mutex_unlock(&bdev->bd_inode->i_mutex); while (bsize < PAGE_CACHE_SIZE) { if (size & bsize) break; @@ -1159,8 +1171,12 @@ * The latter is necessary to prevent ghost * partitions on a removed medium. */ - if (bdev->bd_invalidated && (!ret || ret == -ENOMEDIUM)) - rescan_partitions(disk, bdev); + if (bdev->bd_invalidated) { + if (!ret) + rescan_partitions(disk, bdev); + else if (ret == -ENOMEDIUM) + invalidate_partitions(disk, bdev); + } if (ret) goto out_clear; } else { @@ -1190,8 +1206,12 @@ if (bdev->bd_disk->fops->open) ret = bdev->bd_disk->fops->open(bdev, mode); /* the same as first opener case, read comment there */ - if (bdev->bd_invalidated && (!ret || ret == -ENOMEDIUM)) - rescan_partitions(bdev->bd_disk, bdev); + if (bdev->bd_invalidated) { + if (!ret) + rescan_partitions(bdev->bd_disk, bdev); + else if (ret == -ENOMEDIUM) + invalidate_partitions(bdev->bd_disk, bdev); + } if (ret) goto out_unlock_bdev; } --- linux-3.2.0.orig/fs/signalfd.c +++ linux-3.2.0/fs/signalfd.c @@ -30,6 +30,21 @@ #include #include +void signalfd_cleanup(struct sighand_struct *sighand) +{ + wait_queue_head_t *wqh = &sighand->signalfd_wqh; + /* + * The lockless check can race with remove_wait_queue() in progress, + * but in this case its caller should run under rcu_read_lock() and + * sighand_cachep is SLAB_DESTROY_BY_RCU, we can safely return. + */ + if (likely(!waitqueue_active(wqh))) + return; + + /* wait_queue_t->func(POLLFREE) should do remove_wait_queue() */ + wake_up_poll(wqh, POLLHUP | POLLFREE); +} + struct signalfd_ctx { sigset_t sigmask; }; --- linux-3.2.0.orig/fs/binfmt_em86.c +++ linux-3.2.0/fs/binfmt_em86.c @@ -42,7 +42,6 @@ return -ENOEXEC; } - bprm->recursion_depth++; /* Well, the bang-shell is implicit... */ allow_write_access(bprm->file); fput(bprm->file); bprm->file = NULL; --- linux-3.2.0.orig/fs/fs-writeback.c +++ linux-3.2.0/fs/fs-writeback.c @@ -27,6 +27,7 @@ #include #include #include +#include #include "internal.h" /* @@ -48,14 +49,6 @@ }; /* - * Include the creation of the trace points after defining the - * wb_writeback_work structure so that the definition remains local to this - * file. - */ -#define CREATE_TRACE_POINTS -#include - -/* * We don't actually have pdflush, but this one is exported though /proc... */ int nr_pdflush_threads; @@ -71,6 +64,7 @@ { return test_bit(BDI_writeback_running, &bdi->state); } +EXPORT_SYMBOL(writeback_in_progress); static inline struct backing_dev_info *inode_to_bdi(struct inode *inode) { @@ -87,6 +81,14 @@ return list_entry(head, struct inode, i_wb_list); } +/* + * Include the creation of the trace points after defining the + * wb_writeback_work structure and inline functions so that the definition + * remains local to this file. + */ +#define CREATE_TRACE_POINTS +#include + /* Wakeup flusher thread or forker thread to fork it. Requires bdi->wb_lock. */ static void bdi_wakeup_flusher(struct backing_dev_info *bdi) { @@ -1072,6 +1074,8 @@ if ((inode->i_state & flags) == flags) return; + trace_dirty_inode(inode, current); + if (unlikely(block_dump)) block_dump___mark_inode_dirty(inode); --- linux-3.2.0.orig/fs/direct-io.c +++ linux-3.2.0/fs/direct-io.c @@ -304,9 +304,9 @@ dio->end_io(dio->iocb, offset, transferred, dio->private, ret, is_async); } else { + inode_dio_done(dio->inode); if (is_async) aio_complete(dio->iocb, ret, 0); - inode_dio_done(dio->inode); } return ret; --- linux-3.2.0.orig/fs/bio.c +++ linux-3.2.0/fs/bio.c @@ -507,11 +507,12 @@ struct request_queue *q = bdev_get_queue(bdev); int nr_pages; - nr_pages = ((queue_max_sectors(q) << 9) + PAGE_SIZE - 1) >> PAGE_SHIFT; - if (nr_pages > queue_max_segments(q)) - nr_pages = queue_max_segments(q); + nr_pages = min_t(unsigned, + queue_max_segments(q), + queue_max_sectors(q) / (PAGE_SIZE >> 9) + 1); + + return min_t(unsigned, nr_pages, BIO_MAX_PAGES); - return nr_pages; } EXPORT_SYMBOL(bio_get_nr_vecs); --- linux-3.2.0.orig/fs/hfsplus/wrapper.c +++ linux-3.2.0/fs/hfsplus/wrapper.c @@ -56,7 +56,7 @@ DECLARE_COMPLETION_ONSTACK(wait); struct bio *bio; int ret = 0; - unsigned int io_size; + u64 io_size; loff_t start; int offset; --- linux-3.2.0.orig/fs/hfsplus/dir.c +++ linux-3.2.0/fs/hfsplus/dir.c @@ -150,6 +150,11 @@ filp->f_pos++; /* fall through */ case 1: + if (fd.entrylength > sizeof(entry) || fd.entrylength < 0) { + err = -EIO; + goto out; + } + hfs_bnode_read(fd.bnode, &entry, fd.entryoffset, fd.entrylength); if (be16_to_cpu(entry.type) != HFSPLUS_FOLDER_THREAD) { @@ -181,6 +186,12 @@ err = -EIO; goto out; } + + if (fd.entrylength > sizeof(entry) || fd.entrylength < 0) { + err = -EIO; + goto out; + } + hfs_bnode_read(fd.bnode, &entry, fd.entryoffset, fd.entrylength); type = be16_to_cpu(entry.type); --- linux-3.2.0.orig/fs/hfsplus/extents.c +++ linux-3.2.0/fs/hfsplus/extents.c @@ -517,7 +517,7 @@ struct address_space *mapping = inode->i_mapping; struct page *page; void *fsdata; - u32 size = inode->i_size; + loff_t size = inode->i_size; res = pagecache_write_begin(NULL, mapping, size, 0, AOP_FLAG_UNINTERRUPTIBLE, --- linux-3.2.0.orig/fs/hfsplus/catalog.c +++ linux-3.2.0/fs/hfsplus/catalog.c @@ -366,6 +366,10 @@ err = hfs_brec_find(&src_fd); if (err) goto out; + if (src_fd.entrylength > sizeof(entry) || src_fd.entrylength < 0) { + err = -EIO; + goto out; + } hfs_bnode_read(src_fd.bnode, &entry, src_fd.entryoffset, src_fd.entrylength); --- linux-3.2.0.orig/fs/ecryptfs/super.c +++ linux-3.2.0/fs/ecryptfs/super.c @@ -30,6 +30,8 @@ #include #include #include +#include +#include #include "ecryptfs_kernel.h" struct kmem_cache *ecryptfs_inode_info_cache; @@ -103,10 +105,20 @@ static int ecryptfs_statfs(struct dentry *dentry, struct kstatfs *buf) { struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry); + int rc; if (!lower_dentry->d_sb->s_op->statfs) return -ENOSYS; - return lower_dentry->d_sb->s_op->statfs(lower_dentry, buf); + + rc = lower_dentry->d_sb->s_op->statfs(lower_dentry, buf); + if (rc) + return rc; + + buf->f_type = ECRYPTFS_SUPER_MAGIC; + rc = ecryptfs_set_f_namelen(&buf->f_namelen, buf->f_namelen, + &ecryptfs_superblock_to_private(dentry->d_sb)->mount_crypt_stat); + + return rc; } /** --- linux-3.2.0.orig/fs/ecryptfs/ecryptfs_kernel.h +++ linux-3.2.0/fs/ecryptfs/ecryptfs_kernel.h @@ -157,6 +157,9 @@ #define ECRYPTFS_NON_NULL 0x42 /* A reasonable substitute for NULL */ #define MD5_DIGEST_SIZE 16 #define ECRYPTFS_TAG_70_DIGEST_SIZE MD5_DIGEST_SIZE +#define ECRYPTFS_TAG_70_MIN_METADATA_SIZE (1 + 1 + ECRYPTFS_SIG_SIZE + 1 + 1) +#define ECRYPTFS_TAG_70_MAX_METADATA_SIZE (ECRYPTFS_TAG_70_MIN_METADATA_SIZE \ + + 1) #define ECRYPTFS_FEK_ENCRYPTED_FILENAME_PREFIX "ECRYPTFS_FEK_ENCRYPTED." #define ECRYPTFS_FEK_ENCRYPTED_FILENAME_PREFIX_SIZE 23 #define ECRYPTFS_FNEK_ENCRYPTED_FILENAME_PREFIX "ECRYPTFS_FNEK_ENCRYPTED." @@ -559,6 +562,8 @@ struct inode *ecryptfs_get_inode(struct inode *lower_inode, struct super_block *sb); void ecryptfs_i_size_init(const char *page_virt, struct inode *inode); +int ecryptfs_initialize_file(struct dentry *ecryptfs_dentry, + struct inode *ecryptfs_inode); int ecryptfs_decode_and_decrypt_filename(char **decrypted_name, size_t *decrypted_name_size, struct dentry *ecryptfs_dentry, @@ -696,6 +701,8 @@ size_t *packet_size, struct ecryptfs_mount_crypt_stat *mount_crypt_stat, char *data, size_t max_packet_size); +int ecryptfs_set_f_namelen(long *namelen, long lower_namelen, + struct ecryptfs_mount_crypt_stat *mount_crypt_stat); int ecryptfs_derive_iv(char *iv, struct ecryptfs_crypt_stat *crypt_stat, loff_t offset); --- linux-3.2.0.orig/fs/ecryptfs/keystore.c +++ linux-3.2.0/fs/ecryptfs/keystore.c @@ -678,10 +678,7 @@ * Octets N3-N4: Block-aligned encrypted filename * - Consists of a minimum number of random characters, a \0 * separator, and then the filename */ - s->max_packet_size = (1 /* Tag 70 identifier */ - + 3 /* Max Tag 70 packet size */ - + ECRYPTFS_SIG_SIZE /* FNEK sig */ - + 1 /* Cipher identifier */ + s->max_packet_size = (ECRYPTFS_TAG_70_MAX_METADATA_SIZE + s->block_aligned_filename_size); if (dest == NULL) { (*packet_size) = s->max_packet_size; @@ -933,10 +930,10 @@ goto out; } s->desc.flags = CRYPTO_TFM_REQ_MAY_SLEEP; - if (max_packet_size < (1 + 1 + ECRYPTFS_SIG_SIZE + 1 + 1)) { + if (max_packet_size < ECRYPTFS_TAG_70_MIN_METADATA_SIZE) { printk(KERN_WARNING "%s: max_packet_size is [%zd]; it must be " "at least [%d]\n", __func__, max_packet_size, - (1 + 1 + ECRYPTFS_SIG_SIZE + 1 + 1)); + ECRYPTFS_TAG_70_MIN_METADATA_SIZE); rc = -EINVAL; goto out; } --- linux-3.2.0.orig/fs/ecryptfs/inode.c +++ linux-3.2.0/fs/ecryptfs/inode.c @@ -143,6 +143,31 @@ return 0; } +static int ecryptfs_do_unlink(struct inode *dir, struct dentry *dentry, + struct inode *inode) +{ + struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry); + struct inode *lower_dir_inode = ecryptfs_inode_to_lower(dir); + struct dentry *lower_dir_dentry; + int rc; + + dget(lower_dentry); + lower_dir_dentry = lock_parent(lower_dentry); + rc = vfs_unlink(lower_dir_inode, lower_dentry); + if (rc) { + printk(KERN_ERR "Error in vfs_unlink; rc = [%d]\n", rc); + goto out_unlock; + } + fsstack_copy_attr_times(dir, lower_dir_inode); + set_nlink(inode, ecryptfs_inode_to_lower(inode)->i_nlink); + inode->i_ctime = dir->i_ctime; + d_drop(dentry); +out_unlock: + unlock_dir(lower_dir_dentry); + dput(lower_dentry); + return rc; +} + /** * ecryptfs_create_underlying_file * @lower_dir_inode: inode of the parent in the lower fs of the new file @@ -201,8 +226,10 @@ } inode = __ecryptfs_get_inode(lower_dentry->d_inode, directory_inode->i_sb); - if (IS_ERR(inode)) + if (IS_ERR(inode)) { + vfs_unlink(lower_dir_dentry->d_inode, lower_dentry); goto out_lock; + } fsstack_copy_attr_times(directory_inode, lower_dir_dentry->d_inode); fsstack_copy_inode_size(directory_inode, lower_dir_dentry->d_inode); out_lock: @@ -219,8 +246,8 @@ * * Returns zero on success */ -static int ecryptfs_initialize_file(struct dentry *ecryptfs_dentry, - struct inode *ecryptfs_inode) +int ecryptfs_initialize_file(struct dentry *ecryptfs_dentry, + struct inode *ecryptfs_inode) { struct ecryptfs_crypt_stat *crypt_stat = &ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat; @@ -284,7 +311,9 @@ * that this on disk file is prepared to be an ecryptfs file */ rc = ecryptfs_initialize_file(ecryptfs_dentry, ecryptfs_inode); if (rc) { - drop_nlink(ecryptfs_inode); + ecryptfs_do_unlink(directory_inode, ecryptfs_dentry, + ecryptfs_inode); + make_bad_inode(ecryptfs_inode); unlock_new_inode(ecryptfs_inode); iput(ecryptfs_inode); goto out; @@ -496,27 +525,7 @@ static int ecryptfs_unlink(struct inode *dir, struct dentry *dentry) { - int rc = 0; - struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry); - struct inode *lower_dir_inode = ecryptfs_inode_to_lower(dir); - struct dentry *lower_dir_dentry; - - dget(lower_dentry); - lower_dir_dentry = lock_parent(lower_dentry); - rc = vfs_unlink(lower_dir_inode, lower_dentry); - if (rc) { - printk(KERN_ERR "Error in vfs_unlink; rc = [%d]\n", rc); - goto out_unlock; - } - fsstack_copy_attr_times(dir, lower_dir_inode); - set_nlink(dentry->d_inode, - ecryptfs_inode_to_lower(dentry->d_inode)->i_nlink); - dentry->d_inode->i_ctime = dir->i_ctime; - d_drop(dentry); -out_unlock: - unlock_dir(lower_dir_dentry); - dput(lower_dentry); - return rc; + return ecryptfs_do_unlink(dir, dentry, dentry->d_inode); } static int ecryptfs_symlink(struct inode *dir, struct dentry *dentry, @@ -640,6 +649,7 @@ struct dentry *lower_old_dir_dentry; struct dentry *lower_new_dir_dentry; struct dentry *trap = NULL; + struct inode *target_inode; lower_old_dentry = ecryptfs_dentry_to_lower(old_dentry); lower_new_dentry = ecryptfs_dentry_to_lower(new_dentry); @@ -647,6 +657,7 @@ dget(lower_new_dentry); lower_old_dir_dentry = dget_parent(lower_old_dentry); lower_new_dir_dentry = dget_parent(lower_new_dentry); + target_inode = new_dentry->d_inode; trap = lock_rename(lower_old_dir_dentry, lower_new_dir_dentry); /* source should not be ancestor of target */ if (trap == lower_old_dentry) { @@ -662,6 +673,9 @@ lower_new_dir_dentry->d_inode, lower_new_dentry); if (rc) goto out_lock; + if (target_inode) + fsstack_copy_attr_all(target_inode, + ecryptfs_inode_to_lower(target_inode)); fsstack_copy_attr_all(new_dir, lower_new_dir_dentry->d_inode); if (new_dir != old_dir) fsstack_copy_attr_all(old_dir, lower_old_dir_dentry->d_inode); @@ -841,18 +855,6 @@ size_t num_zeros = (PAGE_CACHE_SIZE - (ia->ia_size & ~PAGE_CACHE_MASK)); - - /* - * XXX(truncate) this should really happen at the begginning - * of ->setattr. But the code is too messy to that as part - * of a larger patch. ecryptfs is also totally missing out - * on the inode_change_ok check at the beginning of - * ->setattr while would include this. - */ - rc = inode_newsize_ok(inode, ia->ia_size); - if (rc) - goto out; - if (!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)) { truncate_setsize(inode, ia->ia_size); lower_ia->ia_size = ia->ia_size; @@ -902,6 +904,28 @@ return rc; } +static int ecryptfs_inode_newsize_ok(struct inode *inode, loff_t offset) +{ + struct ecryptfs_crypt_stat *crypt_stat; + loff_t lower_oldsize, lower_newsize; + + crypt_stat = &ecryptfs_inode_to_private(inode)->crypt_stat; + lower_oldsize = upper_size_to_lower_size(crypt_stat, + i_size_read(inode)); + lower_newsize = upper_size_to_lower_size(crypt_stat, offset); + if (lower_newsize > lower_oldsize) { + /* + * The eCryptfs inode and the new *lower* size are mixed here + * because we may not have the lower i_mutex held and/or it may + * not be appropriate to call inode_newsize_ok() with inodes + * from other filesystems. + */ + return inode_newsize_ok(inode, lower_newsize); + } + + return 0; +} + /** * ecryptfs_truncate * @dentry: The ecryptfs layer dentry @@ -918,6 +942,10 @@ struct iattr lower_ia = { .ia_valid = 0 }; int rc; + rc = ecryptfs_inode_newsize_ok(dentry->d_inode, new_length); + if (rc) + return rc; + rc = truncate_upper(dentry, &ia, &lower_ia); if (!rc && lower_ia.ia_valid & ATTR_SIZE) { struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry); @@ -997,12 +1025,16 @@ } } mutex_unlock(&crypt_stat->cs_mutex); - if (S_ISREG(inode->i_mode)) { - rc = filemap_write_and_wait(inode->i_mapping); + + rc = inode_change_ok(inode, ia); + if (rc) + goto out; + if (ia->ia_valid & ATTR_SIZE) { + rc = ecryptfs_inode_newsize_ok(inode, ia->ia_size); if (rc) goto out; - fsstack_copy_attr_all(inode, lower_inode); } + memcpy(&lower_ia, ia, sizeof(lower_ia)); if (ia->ia_valid & ATTR_FILE) lower_ia.ia_file = ecryptfs_file_to_lower(ia->ia_file); @@ -1080,6 +1112,8 @@ } rc = vfs_setxattr(lower_dentry, name, value, size, flags); + if (!rc) + fsstack_copy_attr_all(dentry->d_inode, lower_dentry->d_inode); out: return rc; } --- linux-3.2.0.orig/fs/ecryptfs/main.c +++ linux-3.2.0/fs/ecryptfs/main.c @@ -162,6 +162,7 @@ inode_info = ecryptfs_inode_to_private(inode); if (atomic_dec_and_mutex_lock(&inode_info->lower_file_count, &inode_info->lower_file_mutex)) { + filemap_write_and_wait(inode->i_mapping); fput(inode_info->lower_file); inode_info->lower_file = NULL; mutex_unlock(&inode_info->lower_file_mutex); @@ -279,6 +280,7 @@ char *fnek_src; char *cipher_key_bytes_src; char *fn_cipher_key_bytes_src; + u8 cipher_code; *check_ruid = 0; @@ -420,6 +422,18 @@ && !fn_cipher_key_bytes_set) mount_crypt_stat->global_default_fn_cipher_key_bytes = mount_crypt_stat->global_default_cipher_key_size; + + cipher_code = ecryptfs_code_for_cipher_string( + mount_crypt_stat->global_default_cipher_name, + mount_crypt_stat->global_default_cipher_key_size); + if (!cipher_code) { + ecryptfs_printk(KERN_ERR, + "eCryptfs doesn't support cipher: %s", + mount_crypt_stat->global_default_cipher_name); + rc = -EINVAL; + goto out; + } + mutex_lock(&key_tfm_list_mutex); if (!ecryptfs_tfm_exists(mount_crypt_stat->global_default_cipher_name, NULL)) { @@ -505,7 +519,6 @@ goto out; } - s->s_flags = flags; rc = bdi_setup_and_register(&sbi->bdi, "ecryptfs", BDI_CAP_MAP_COPY); if (rc) goto out1; @@ -541,9 +554,25 @@ } ecryptfs_set_superblock_lower(s, path.dentry->d_sb); + + /** + * Set the POSIX ACL flag based on whether they're enabled in the lower + * mount. Force a read-only eCryptfs mount if the lower mount is ro. + * Allow a ro eCryptfs mount even when the lower mount is rw. + */ + s->s_flags = flags & ~MS_POSIXACL; + s->s_flags |= path.dentry->d_sb->s_flags & (MS_RDONLY | MS_POSIXACL); + s->s_maxbytes = path.dentry->d_sb->s_maxbytes; s->s_blocksize = path.dentry->d_sb->s_blocksize; s->s_magic = ECRYPTFS_SUPER_MAGIC; + s->s_stack_depth = path.dentry->d_sb->s_stack_depth + 1; + + rc = -EINVAL; + if (s->s_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) { + printk(KERN_ERR "eCryptfs: maximum fs stacking depth exceeded\n"); + goto out_free; + } inode = ecryptfs_get_inode(path.dentry->d_inode, s); rc = PTR_ERR(inode); --- linux-3.2.0.orig/fs/ecryptfs/file.c +++ linux-3.2.0/fs/ecryptfs/file.c @@ -139,29 +139,50 @@ return rc; } -static void ecryptfs_vma_close(struct vm_area_struct *vma) -{ - filemap_write_and_wait(vma->vm_file->f_mapping); -} - -static const struct vm_operations_struct ecryptfs_file_vm_ops = { - .close = ecryptfs_vma_close, - .fault = filemap_fault, -}; +struct kmem_cache *ecryptfs_file_info_cache; -static int ecryptfs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int read_or_initialize_metadata(struct dentry *dentry) { + struct inode *inode = dentry->d_inode; + struct ecryptfs_mount_crypt_stat *mount_crypt_stat; + struct ecryptfs_crypt_stat *crypt_stat; int rc; - rc = generic_file_mmap(file, vma); + crypt_stat = &ecryptfs_inode_to_private(inode)->crypt_stat; + mount_crypt_stat = &ecryptfs_superblock_to_private( + inode->i_sb)->mount_crypt_stat; + mutex_lock(&crypt_stat->cs_mutex); + + if (crypt_stat->flags & ECRYPTFS_POLICY_APPLIED && + crypt_stat->flags & ECRYPTFS_KEY_VALID) { + rc = 0; + goto out; + } + + rc = ecryptfs_read_metadata(dentry); if (!rc) - vma->vm_ops = &ecryptfs_file_vm_ops; + goto out; + + if (mount_crypt_stat->flags & ECRYPTFS_PLAINTEXT_PASSTHROUGH_ENABLED) { + crypt_stat->flags &= ~(ECRYPTFS_I_SIZE_INITIALIZED + | ECRYPTFS_ENCRYPTED); + rc = 0; + goto out; + } + + if (!(mount_crypt_stat->flags & ECRYPTFS_XATTR_METADATA_ENABLED) && + !i_size_read(ecryptfs_inode_to_lower(inode))) { + rc = ecryptfs_initialize_file(dentry, inode); + if (!rc) + goto out; + } + rc = -EIO; +out: + mutex_unlock(&crypt_stat->cs_mutex); return rc; } -struct kmem_cache *ecryptfs_file_info_cache; - /** * ecryptfs_open * @inode: inode speciying file to open @@ -237,32 +258,9 @@ rc = 0; goto out; } - mutex_lock(&crypt_stat->cs_mutex); - if (!(crypt_stat->flags & ECRYPTFS_POLICY_APPLIED) - || !(crypt_stat->flags & ECRYPTFS_KEY_VALID)) { - rc = ecryptfs_read_metadata(ecryptfs_dentry); - if (rc) { - ecryptfs_printk(KERN_DEBUG, - "Valid headers not found\n"); - if (!(mount_crypt_stat->flags - & ECRYPTFS_PLAINTEXT_PASSTHROUGH_ENABLED)) { - rc = -EIO; - printk(KERN_WARNING "Either the lower file " - "is not in a valid eCryptfs format, " - "or the key could not be retrieved. " - "Plaintext passthrough mode is not " - "enabled; returning -EIO\n"); - mutex_unlock(&crypt_stat->cs_mutex); - goto out_put; - } - rc = 0; - crypt_stat->flags &= ~(ECRYPTFS_I_SIZE_INITIALIZED - | ECRYPTFS_ENCRYPTED); - mutex_unlock(&crypt_stat->cs_mutex); - goto out; - } - } - mutex_unlock(&crypt_stat->cs_mutex); + rc = read_or_initialize_metadata(ecryptfs_dentry); + if (rc) + goto out_put; ecryptfs_printk(KERN_DEBUG, "inode w/ addr = [0x%p], i_ino = " "[0x%.16lx] size: [0x%.16llx]\n", inode, inode->i_ino, (unsigned long long)i_size_read(inode)); @@ -278,8 +276,14 @@ static int ecryptfs_flush(struct file *file, fl_owner_t td) { - return file->f_mode & FMODE_WRITE - ? filemap_write_and_wait(file->f_mapping) : 0; + struct file *lower_file = ecryptfs_file_to_lower(file); + + if (lower_file->f_op && lower_file->f_op->flush) { + filemap_write_and_wait(file->f_mapping); + return lower_file->f_op->flush(lower_file, td); + } + + return 0; } static int ecryptfs_release(struct inode *inode, struct file *file) @@ -293,15 +297,7 @@ static int ecryptfs_fsync(struct file *file, loff_t start, loff_t end, int datasync) { - int rc = 0; - - rc = generic_file_fsync(file, start, end, datasync); - if (rc) - goto out; - rc = vfs_fsync_range(ecryptfs_file_to_lower(file), start, end, - datasync); -out: - return rc; + return vfs_fsync(ecryptfs_file_to_lower(file), datasync); } static int ecryptfs_fasync(int fd, struct file *file, int flag) @@ -370,7 +366,7 @@ #ifdef CONFIG_COMPAT .compat_ioctl = ecryptfs_compat_ioctl, #endif - .mmap = ecryptfs_file_mmap, + .mmap = generic_file_mmap, .open = ecryptfs_open, .flush = ecryptfs_flush, .release = ecryptfs_release, --- linux-3.2.0.orig/fs/ecryptfs/read_write.c +++ linux-3.2.0/fs/ecryptfs/read_write.c @@ -130,13 +130,18 @@ pgoff_t ecryptfs_page_idx = (pos >> PAGE_CACHE_SHIFT); size_t start_offset_in_page = (pos & ~PAGE_CACHE_MASK); size_t num_bytes = (PAGE_CACHE_SIZE - start_offset_in_page); - size_t total_remaining_bytes = ((offset + size) - pos); + loff_t total_remaining_bytes = ((offset + size) - pos); + + if (fatal_signal_pending(current)) { + rc = -EINTR; + break; + } if (num_bytes > total_remaining_bytes) num_bytes = total_remaining_bytes; if (pos < offset) { /* remaining zeros to write, up to destination offset */ - size_t total_remaining_zeros = (offset - pos); + loff_t total_remaining_zeros = (offset - pos); if (num_bytes > total_remaining_zeros) num_bytes = total_remaining_zeros; @@ -193,15 +198,19 @@ } pos += num_bytes; } - if ((offset + size) > ecryptfs_file_size) { - i_size_write(ecryptfs_inode, (offset + size)); + if (pos > ecryptfs_file_size) { + i_size_write(ecryptfs_inode, pos); if (crypt_stat->flags & ECRYPTFS_ENCRYPTED) { - rc = ecryptfs_write_inode_size_to_metadata( + int rc2; + + rc2 = ecryptfs_write_inode_size_to_metadata( ecryptfs_inode); - if (rc) { + if (rc2) { printk(KERN_ERR "Problem with " "ecryptfs_write_inode_size_to_metadata; " - "rc = [%d]\n", rc); + "rc = [%d]\n", rc2); + if (!rc) + rc = rc2; goto out; } } --- linux-3.2.0.orig/fs/ecryptfs/kthread.c +++ linux-3.2.0/fs/ecryptfs/kthread.c @@ -149,7 +149,7 @@ (*lower_file) = dentry_open(lower_dentry, lower_mnt, flags, cred); if (!IS_ERR(*lower_file)) goto out; - if (flags & O_RDONLY) { + if ((flags & O_ACCMODE) == O_RDONLY) { rc = PTR_ERR((*lower_file)); goto out; } --- linux-3.2.0.orig/fs/ecryptfs/miscdev.c +++ linux-3.2.0/fs/ecryptfs/miscdev.c @@ -49,7 +49,10 @@ mutex_lock(&ecryptfs_daemon_hash_mux); /* TODO: Just use file->private_data? */ rc = ecryptfs_find_daemon_by_euid(&daemon, euid, current_user_ns()); - BUG_ON(rc || !daemon); + if (rc || !daemon) { + mutex_unlock(&ecryptfs_daemon_hash_mux); + return -EINVAL; + } mutex_lock(&daemon->mux); mutex_unlock(&ecryptfs_daemon_hash_mux); if (daemon->flags & ECRYPTFS_DAEMON_ZOMBIE) { @@ -122,6 +125,7 @@ goto out_unlock_daemon; } daemon->flags |= ECRYPTFS_DAEMON_MISCDEV_OPEN; + file->private_data = daemon; atomic_inc(&ecryptfs_num_miscdev_opens); out_unlock_daemon: mutex_unlock(&daemon->mux); @@ -152,9 +156,9 @@ mutex_lock(&ecryptfs_daemon_hash_mux); rc = ecryptfs_find_daemon_by_euid(&daemon, euid, current_user_ns()); - BUG_ON(rc || !daemon); + if (rc || !daemon) + daemon = file->private_data; mutex_lock(&daemon->mux); - BUG_ON(daemon->pid != task_pid(current)); BUG_ON(!(daemon->flags & ECRYPTFS_DAEMON_MISCDEV_OPEN)); daemon->flags &= ~ECRYPTFS_DAEMON_MISCDEV_OPEN; atomic_dec(&ecryptfs_num_miscdev_opens); @@ -191,31 +195,32 @@ struct ecryptfs_msg_ctx *msg_ctx, u8 msg_type, u16 msg_flags, struct ecryptfs_daemon *daemon) { - int rc = 0; + struct ecryptfs_message *msg; - mutex_lock(&msg_ctx->mux); - msg_ctx->msg = kmalloc((sizeof(*msg_ctx->msg) + data_size), - GFP_KERNEL); - if (!msg_ctx->msg) { - rc = -ENOMEM; + msg = kmalloc((sizeof(*msg) + data_size), GFP_KERNEL); + if (!msg) { printk(KERN_ERR "%s: Out of memory whilst attempting " "to kmalloc(%zd, GFP_KERNEL)\n", __func__, - (sizeof(*msg_ctx->msg) + data_size)); - goto out_unlock; + (sizeof(*msg) + data_size)); + return -ENOMEM; } + + mutex_lock(&msg_ctx->mux); + msg_ctx->msg = msg; msg_ctx->msg->index = msg_ctx->index; msg_ctx->msg->data_len = data_size; msg_ctx->type = msg_type; memcpy(msg_ctx->msg->data, data, data_size); msg_ctx->msg_size = (sizeof(*msg_ctx->msg) + data_size); - mutex_lock(&daemon->mux); list_add_tail(&msg_ctx->daemon_out_list, &daemon->msg_ctx_out_queue); + mutex_unlock(&msg_ctx->mux); + + mutex_lock(&daemon->mux); daemon->num_queued_msg_ctx++; wake_up_interruptible(&daemon->wait); mutex_unlock(&daemon->mux); -out_unlock: - mutex_unlock(&msg_ctx->mux); - return rc; + + return 0; } /** @@ -246,8 +251,16 @@ mutex_lock(&ecryptfs_daemon_hash_mux); /* TODO: Just use file->private_data? */ rc = ecryptfs_find_daemon_by_euid(&daemon, euid, current_user_ns()); - BUG_ON(rc || !daemon); + if (rc || !daemon) { + mutex_unlock(&ecryptfs_daemon_hash_mux); + return -EINVAL; + } mutex_lock(&daemon->mux); + if (task_pid(current) != daemon->pid) { + mutex_unlock(&daemon->mux); + mutex_unlock(&ecryptfs_daemon_hash_mux); + return -EPERM; + } if (daemon->flags & ECRYPTFS_DAEMON_ZOMBIE) { rc = 0; mutex_unlock(&ecryptfs_daemon_hash_mux); @@ -284,9 +297,6 @@ * message from the queue; try again */ goto check_list; } - BUG_ON(euid != daemon->euid); - BUG_ON(current_user_ns() != daemon->user_ns); - BUG_ON(task_pid(current) != daemon->pid); msg_ctx = list_first_entry(&daemon->msg_ctx_out_queue, struct ecryptfs_msg_ctx, daemon_out_list); BUG_ON(!msg_ctx); @@ -409,11 +419,47 @@ ssize_t sz = 0; char *data; uid_t euid = current_euid(); + unsigned char packet_size_peek[3]; int rc; - if (count == 0) + if (count == 0) { goto out; + } else if (count == (1 + 4)) { + /* Likely a harmless MSG_HELO or MSG_QUIT - no packet length */ + goto memdup; + } else if (count < (1 + 4 + 1) + || count > (1 + 4 + 2 + sizeof(struct ecryptfs_message) + 4 + + ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES)) { + printk(KERN_WARNING "%s: Acceptable packet size range is " + "[%d-%lu], but amount of data written is [%zu].", + __func__, (1 + 4 + 1), + (1 + 4 + 2 + sizeof(struct ecryptfs_message) + 4 + + ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES), count); + return -EINVAL; + } + + if (copy_from_user(packet_size_peek, (buf + 1 + 4), + sizeof(packet_size_peek))) { + printk(KERN_WARNING "%s: Error while inspecting packet size\n", + __func__); + return -EFAULT; + } + rc = ecryptfs_parse_packet_length(packet_size_peek, &packet_size, + &packet_size_length); + if (rc) { + printk(KERN_WARNING "%s: Error parsing packet length; " + "rc = [%d]\n", __func__, rc); + return rc; + } + + if ((1 + 4 + packet_size_length + packet_size) != count) { + printk(KERN_WARNING "%s: Invalid packet size [%zu]\n", __func__, + packet_size); + return -EINVAL; + } + +memdup: data = memdup_user(buf, count); if (IS_ERR(data)) { printk(KERN_ERR "%s: memdup_user returned error [%ld]\n", @@ -435,23 +481,7 @@ } memcpy(&counter_nbo, &data[i], 4); seq = be32_to_cpu(counter_nbo); - i += 4; - rc = ecryptfs_parse_packet_length(&data[i], &packet_size, - &packet_size_length); - if (rc) { - printk(KERN_WARNING "%s: Error parsing packet length; " - "rc = [%d]\n", __func__, rc); - goto out_free; - } - i += packet_size_length; - if ((1 + 4 + packet_size_length + packet_size) != count) { - printk(KERN_WARNING "%s: (1 + packet_size_length([%zd])" - " + packet_size([%zd]))([%zd]) != " - "count([%zd]). Invalid packet format.\n", - __func__, packet_size_length, packet_size, - (1 + packet_size_length + packet_size), count); - goto out_free; - } + i += 4 + packet_size_length; rc = ecryptfs_miscdev_response(&data[i], packet_size, euid, current_user_ns(), task_pid(current), seq); --- linux-3.2.0.orig/fs/ecryptfs/mmap.c +++ linux-3.2.0/fs/ecryptfs/mmap.c @@ -62,18 +62,6 @@ { int rc; - /* - * Refuse to write the page out if we are called from reclaim context - * since our writepage() path may potentially allocate memory when - * calling into the lower fs vfs_write() which may in turn invoke - * us again. - */ - if (current->flags & PF_MEMALLOC) { - redirty_page_for_writepage(wbc, page); - rc = 0; - goto out; - } - rc = ecryptfs_encrypt_page(page); if (rc) { ecryptfs_printk(KERN_WARNING, "Error encrypting " @@ -498,7 +486,6 @@ struct ecryptfs_crypt_stat *crypt_stat = &ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat; int rc; - int need_unlock_page = 1; ecryptfs_printk(KERN_DEBUG, "Calling fill_zeros_to_end_of_page" "(page w/ index = [0x%.16lx], to = [%d])\n", index, to); @@ -519,26 +506,26 @@ "zeros in page with index = [0x%.16lx]\n", index); goto out; } - set_page_dirty(page); - unlock_page(page); - need_unlock_page = 0; + rc = ecryptfs_encrypt_page(page); + if (rc) { + ecryptfs_printk(KERN_WARNING, "Error encrypting page (upper " + "index [0x%.16lx])\n", index); + goto out; + } if (pos + copied > i_size_read(ecryptfs_inode)) { i_size_write(ecryptfs_inode, pos + copied); ecryptfs_printk(KERN_DEBUG, "Expanded file size to " "[0x%.16llx]\n", (unsigned long long)i_size_read(ecryptfs_inode)); - balance_dirty_pages_ratelimited(mapping); - rc = ecryptfs_write_inode_size_to_metadata(ecryptfs_inode); - if (rc) { - printk(KERN_ERR "Error writing inode size to metadata; " - "rc = [%d]\n", rc); - goto out; - } } - rc = copied; + rc = ecryptfs_write_inode_size_to_metadata(ecryptfs_inode); + if (rc) + printk(KERN_ERR "Error writing inode size to metadata; " + "rc = [%d]\n", rc); + else + rc = copied; out: - if (need_unlock_page) - unlock_page(page); + unlock_page(page); page_cache_release(page); return rc; } --- linux-3.2.0.orig/fs/ecryptfs/crypto.c +++ linux-3.2.0/fs/ecryptfs/crypto.c @@ -417,17 +417,6 @@ (unsigned long long)(extent_base + extent_offset), rc); goto out; } - if (unlikely(ecryptfs_verbosity > 0)) { - ecryptfs_printk(KERN_DEBUG, "Encrypting extent " - "with iv:\n"); - ecryptfs_dump_hex(extent_iv, crypt_stat->iv_bytes); - ecryptfs_printk(KERN_DEBUG, "First 8 bytes before " - "encryption:\n"); - ecryptfs_dump_hex((char *) - (page_address(page) - + (extent_offset * crypt_stat->extent_size)), - 8); - } rc = ecryptfs_encrypt_page_offset(crypt_stat, enc_extent_page, 0, page, (extent_offset * crypt_stat->extent_size), @@ -440,14 +429,6 @@ goto out; } rc = 0; - if (unlikely(ecryptfs_verbosity > 0)) { - ecryptfs_printk(KERN_DEBUG, "Encrypt extent [0x%.16llx]; " - "rc = [%d]\n", - (unsigned long long)(extent_base + extent_offset), rc); - ecryptfs_printk(KERN_DEBUG, "First 8 bytes after " - "encryption:\n"); - ecryptfs_dump_hex((char *)(page_address(enc_extent_page)), 8); - } out: return rc; } @@ -543,17 +524,6 @@ (unsigned long long)(extent_base + extent_offset), rc); goto out; } - if (unlikely(ecryptfs_verbosity > 0)) { - ecryptfs_printk(KERN_DEBUG, "Decrypting extent " - "with iv:\n"); - ecryptfs_dump_hex(extent_iv, crypt_stat->iv_bytes); - ecryptfs_printk(KERN_DEBUG, "First 8 bytes before " - "decryption:\n"); - ecryptfs_dump_hex((char *) - (page_address(enc_extent_page) - + (extent_offset * crypt_stat->extent_size)), - 8); - } rc = ecryptfs_decrypt_page_offset(crypt_stat, page, (extent_offset * crypt_stat->extent_size), @@ -567,16 +537,6 @@ goto out; } rc = 0; - if (unlikely(ecryptfs_verbosity > 0)) { - ecryptfs_printk(KERN_DEBUG, "Decrypt extent [0x%.16llx]; " - "rc = [%d]\n", - (unsigned long long)(extent_base + extent_offset), rc); - ecryptfs_printk(KERN_DEBUG, "First 8 bytes after " - "decryption:\n"); - ecryptfs_dump_hex((char *)(page_address(page) - + (extent_offset - * crypt_stat->extent_size)), 8); - } out: return rc; } @@ -1620,7 +1580,8 @@ rc = ecryptfs_read_xattr_region(page_virt, ecryptfs_inode); if (rc) { printk(KERN_DEBUG "Valid eCryptfs headers not found in " - "file header region or xattr region\n"); + "file header region or xattr region, inode %lu\n", + ecryptfs_inode->i_ino); rc = -EINVAL; goto out; } @@ -1629,7 +1590,8 @@ ECRYPTFS_DONT_VALIDATE_HEADER_SIZE); if (rc) { printk(KERN_DEBUG "Valid eCryptfs headers not found in " - "file xattr region either\n"); + "file xattr region either, inode %lu\n", + ecryptfs_inode->i_ino); rc = -EINVAL; } if (crypt_stat->mount_crypt_stat->flags @@ -1640,7 +1602,8 @@ "crypto metadata only in the extended attribute " "region, but eCryptfs was mounted without " "xattr support enabled. eCryptfs will not treat " - "this like an encrypted file.\n"); + "this like an encrypted file, inode %lu\n", + ecryptfs_inode->i_ino); rc = -EINVAL; } } @@ -2026,6 +1989,17 @@ return; } +static size_t ecryptfs_max_decoded_size(size_t encoded_size) +{ + /* Not exact; conservatively long. Every block of 4 + * encoded characters decodes into a block of 3 + * decoded characters. This segment of code provides + * the caller with the maximum amount of allocated + * space that @dst will need to point to in a + * subsequent call. */ + return ((encoded_size + 1) * 3) / 4; +} + /** * ecryptfs_decode_from_filename * @dst: If NULL, this function only sets @dst_size and returns. If @@ -2044,13 +2018,7 @@ size_t dst_byte_offset = 0; if (dst == NULL) { - /* Not exact; conservatively long. Every block of 4 - * encoded characters decodes into a block of 3 - * decoded characters. This segment of code provides - * the caller with the maximum amount of allocated - * space that @dst will need to point to in a - * subsequent call. */ - (*dst_size) = (((src_size + 1) * 3) / 4); + (*dst_size) = ecryptfs_max_decoded_size(src_size); goto out; } while (src_byte_offset < src_size) { @@ -2275,3 +2243,52 @@ out: return rc; } + +#define ENC_NAME_MAX_BLOCKLEN_8_OR_16 143 + +int ecryptfs_set_f_namelen(long *namelen, long lower_namelen, + struct ecryptfs_mount_crypt_stat *mount_crypt_stat) +{ + struct blkcipher_desc desc; + struct mutex *tfm_mutex; + size_t cipher_blocksize; + int rc; + + if (!(mount_crypt_stat->flags & ECRYPTFS_GLOBAL_ENCRYPT_FILENAMES)) { + (*namelen) = lower_namelen; + return 0; + } + + rc = ecryptfs_get_tfm_and_mutex_for_cipher_name(&desc.tfm, &tfm_mutex, + mount_crypt_stat->global_default_fn_cipher_name); + if (unlikely(rc)) { + (*namelen) = 0; + return rc; + } + + mutex_lock(tfm_mutex); + cipher_blocksize = crypto_blkcipher_blocksize(desc.tfm); + mutex_unlock(tfm_mutex); + + /* Return an exact amount for the common cases */ + if (lower_namelen == NAME_MAX + && (cipher_blocksize == 8 || cipher_blocksize == 16)) { + (*namelen) = ENC_NAME_MAX_BLOCKLEN_8_OR_16; + return 0; + } + + /* Return a safe estimate for the uncommon cases */ + (*namelen) = lower_namelen; + (*namelen) -= ECRYPTFS_FNEK_ENCRYPTED_FILENAME_PREFIX_SIZE; + /* Since this is the max decoded size, subtract 1 "decoded block" len */ + (*namelen) = ecryptfs_max_decoded_size(*namelen) - 3; + (*namelen) -= ECRYPTFS_TAG_70_MAX_METADATA_SIZE; + (*namelen) -= ECRYPTFS_FILENAME_MIN_RANDOM_PREPEND_BYTES; + /* Worst case is that the filename is padded nearly a full block size */ + (*namelen) -= cipher_blocksize - 1; + + if ((*namelen) < 0) + (*namelen) = 0; + + return 0; +} --- linux-3.2.0.orig/fs/notify/mark.c +++ linux-3.2.0/fs/notify/mark.c @@ -109,23 +109,27 @@ void fsnotify_put_mark(struct fsnotify_mark *mark) { - if (atomic_dec_and_test(&mark->refcnt)) + if (atomic_dec_and_test(&mark->refcnt)) { + if (mark->group) + fsnotify_put_group(mark->group); mark->free_mark(mark); + } } +EXPORT_SYMBOL(fsnotify_put_mark); /* * Any time a mark is getting freed we end up here. * The caller had better be holding a reference to this mark so we don't actually * do the final put under the mark->lock */ -void fsnotify_destroy_mark(struct fsnotify_mark *mark) +void fsnotify_destroy_mark_locked(struct fsnotify_mark *mark, + struct fsnotify_group *group) { - struct fsnotify_group *group; struct inode *inode = NULL; - spin_lock(&mark->lock); + BUG_ON(!mutex_is_locked(&group->mark_mutex)); - group = mark->group; + spin_lock(&mark->lock); /* something else already called this function on this mark */ if (!(mark->flags & FSNOTIFY_MARK_FLAG_ALIVE)) { @@ -135,11 +139,6 @@ mark->flags &= ~FSNOTIFY_MARK_FLAG_ALIVE; - /* 1 from caller and 1 for being on i_list/g_list */ - BUG_ON(atomic_read(&mark->refcnt) < 2); - - spin_lock(&group->mark_lock); - if (mark->flags & FSNOTIFY_MARK_FLAG_INODE) { inode = mark->i.inode; fsnotify_destroy_inode_mark(mark); @@ -150,13 +149,22 @@ list_del_init(&mark->g_list); - spin_unlock(&group->mark_lock); spin_unlock(&mark->lock); + if (inode && (mark->flags & FSNOTIFY_MARK_FLAG_OBJECT_PINNED)) + iput(inode); + /* release lock temporarily */ + mutex_unlock(&group->mark_mutex); + spin_lock(&destroy_lock); list_add(&mark->destroy_list, &destroy_list); spin_unlock(&destroy_lock); wake_up(&destroy_waitq); + /* + * We don't necessarily have a ref on mark from caller so the above destroy + * may have actually freed it, unless this group provides a 'freeing_mark' + * function which must be holding a reference. + */ /* * Some groups like to know that marks are being freed. This is a @@ -178,17 +186,19 @@ * is just a lazy update (and could be a perf win...) */ - if (inode && (mark->flags & FSNOTIFY_MARK_FLAG_OBJECT_PINNED)) - iput(inode); + atomic_dec(&group->num_marks); - /* - * it's possible that this group tried to destroy itself, but this - * this mark was simultaneously being freed by inode. If that's the - * case, we finish freeing the group here. - */ - if (unlikely(atomic_dec_and_test(&group->num_marks))) - fsnotify_final_destroy_group(group); + mutex_lock_nested(&group->mark_mutex, SINGLE_DEPTH_NESTING); +} + +void fsnotify_destroy_mark(struct fsnotify_mark *mark, + struct fsnotify_group *group) +{ + mutex_lock_nested(&group->mark_mutex, SINGLE_DEPTH_NESTING); + fsnotify_destroy_mark_locked(mark, group); + mutex_unlock(&group->mark_mutex); } +EXPORT_SYMBOL(fsnotify_destroy_mark); void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask) { @@ -212,26 +222,26 @@ * These marks may be used for the fsnotify backend to determine which * event types should be delivered to which group. */ -int fsnotify_add_mark(struct fsnotify_mark *mark, - struct fsnotify_group *group, struct inode *inode, - struct vfsmount *mnt, int allow_dups) +int fsnotify_add_mark_locked(struct fsnotify_mark *mark, + struct fsnotify_group *group, struct inode *inode, + struct vfsmount *mnt, int allow_dups) { int ret = 0; BUG_ON(inode && mnt); BUG_ON(!inode && !mnt); + BUG_ON(!mutex_is_locked(&group->mark_mutex)); /* * LOCKING ORDER!!!! + * group->mark_mutex * mark->lock - * group->mark_lock * inode->i_lock */ spin_lock(&mark->lock); - spin_lock(&group->mark_lock); - mark->flags |= FSNOTIFY_MARK_FLAG_ALIVE; + fsnotify_get_group(group); mark->group = group; list_add(&mark->g_list, &group->marks_list); atomic_inc(&group->num_marks); @@ -249,11 +259,8 @@ BUG(); } - spin_unlock(&group->mark_lock); - /* this will pin the object if appropriate */ fsnotify_set_mark_mask_locked(mark, mark->mask); - spin_unlock(&mark->lock); if (inode) @@ -263,10 +270,10 @@ err: mark->flags &= ~FSNOTIFY_MARK_FLAG_ALIVE; list_del_init(&mark->g_list); + fsnotify_put_group(group); mark->group = NULL; atomic_dec(&group->num_marks); - spin_unlock(&group->mark_lock); spin_unlock(&mark->lock); spin_lock(&destroy_lock); @@ -276,6 +283,17 @@ return ret; } +EXPORT_SYMBOL(fsnotify_add_mark); + +int fsnotify_add_mark(struct fsnotify_mark *mark, struct fsnotify_group *group, + struct inode *inode, struct vfsmount *mnt, int allow_dups) +{ + int ret; + mutex_lock(&group->mark_mutex); + ret = fsnotify_add_mark_locked(mark, group, inode, mnt, allow_dups); + mutex_unlock(&group->mark_mutex); + return ret; +} /* * clear any marks in a group in which mark->flags & flags is true @@ -284,22 +302,16 @@ unsigned int flags) { struct fsnotify_mark *lmark, *mark; - LIST_HEAD(free_list); - spin_lock(&group->mark_lock); + mutex_lock_nested(&group->mark_mutex, SINGLE_DEPTH_NESTING); list_for_each_entry_safe(mark, lmark, &group->marks_list, g_list) { if (mark->flags & flags) { - list_add(&mark->free_g_list, &free_list); - list_del_init(&mark->g_list); fsnotify_get_mark(mark); + fsnotify_destroy_mark_locked(mark, group); + fsnotify_put_mark(mark); } } - spin_unlock(&group->mark_lock); - - list_for_each_entry_safe(mark, lmark, &free_list, free_g_list) { - fsnotify_destroy_mark(mark); - fsnotify_put_mark(mark); - } + mutex_unlock(&group->mark_mutex); } /* @@ -315,6 +327,8 @@ assert_spin_locked(&old->lock); new->i.inode = old->i.inode; new->m.mnt = old->m.mnt; + if (old->group) + fsnotify_get_group(old->group); new->group = old->group; new->mask = old->mask; new->free_mark = old->free_mark; @@ -331,6 +345,7 @@ atomic_set(&mark->refcnt, 1); mark->free_mark = free_mark; } +EXPORT_SYMBOL(fsnotify_init_mark); static int fsnotify_mark_destroy(void *ignored) { --- linux-3.2.0.orig/fs/notify/vfsmount_mark.c +++ linux-3.2.0/fs/notify/vfsmount_mark.c @@ -44,8 +44,16 @@ spin_unlock(&mnt->mnt_root->d_lock); list_for_each_entry_safe(mark, lmark, &free_list, m.free_m_list) { - fsnotify_destroy_mark(mark); + struct fsnotify_group *group; + + spin_lock(&mark->lock); + fsnotify_get_group(mark->group); + group = mark->group; + spin_unlock(&mark->lock); + + fsnotify_destroy_mark(mark, group); fsnotify_put_mark(mark); + fsnotify_put_group(group); } } @@ -85,8 +93,8 @@ { struct vfsmount *mnt = mark->m.mnt; + BUG_ON(!mutex_is_locked(&mark->group->mark_mutex)); assert_spin_locked(&mark->lock); - assert_spin_locked(&mark->group->mark_lock); spin_lock(&mnt->mnt_root->d_lock); @@ -146,8 +154,8 @@ mark->flags |= FSNOTIFY_MARK_FLAG_VFSMOUNT; + BUG_ON(!mutex_is_locked(&group->mark_mutex)); assert_spin_locked(&mark->lock); - assert_spin_locked(&group->mark_lock); spin_lock(&mnt->mnt_root->d_lock); --- linux-3.2.0.orig/fs/notify/group.c +++ linux-3.2.0/fs/notify/group.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include "fsnotify.h" @@ -33,9 +34,6 @@ */ void fsnotify_final_destroy_group(struct fsnotify_group *group) { - /* clear the notification queue of all events */ - fsnotify_flush_notify(group); - if (group->ops->free_group_priv) group->ops->free_group_priv(group); @@ -43,23 +41,30 @@ } /* - * Trying to get rid of a group. We need to first get rid of any outstanding - * allocations and then free the group. Remember that fsnotify_clear_marks_by_group - * could miss marks that are being freed by inode and those marks could still - * hold a reference to this group (via group->num_marks) If we get into that - * situtation, the fsnotify_final_destroy_group will get called when that final - * mark is freed. + * Trying to get rid of a group. Remove all marks, flush all events and release + * the group reference. + * Note that another thread calling fsnotify_clear_marks_by_group() may still + * hold a ref to the group. */ -static void fsnotify_destroy_group(struct fsnotify_group *group) +void fsnotify_destroy_group(struct fsnotify_group *group) { /* clear all inode marks for this group */ fsnotify_clear_marks_by_group(group); synchronize_srcu(&fsnotify_mark_srcu); - /* past the point of no return, matches the initial value of 1 */ - if (atomic_dec_and_test(&group->num_marks)) - fsnotify_final_destroy_group(group); + /* clear the notification queue of all events */ + fsnotify_flush_notify(group); + + fsnotify_put_group(group); +} + +/* + * Get reference to a group. + */ +void fsnotify_get_group(struct fsnotify_group *group) +{ + atomic_inc(&group->refcnt); } /* @@ -68,8 +73,9 @@ void fsnotify_put_group(struct fsnotify_group *group) { if (atomic_dec_and_test(&group->refcnt)) - fsnotify_destroy_group(group); + fsnotify_final_destroy_group(group); } +EXPORT_SYMBOL(fsnotify_put_group); /* * Create a new fsnotify_group and hold a reference for the group returned. @@ -84,21 +90,18 @@ /* set to 0 when there a no external references to this group */ atomic_set(&group->refcnt, 1); - /* - * hits 0 when there are no external references AND no marks for - * this group - */ - atomic_set(&group->num_marks, 1); + atomic_set(&group->num_marks, 0); mutex_init(&group->notification_mutex); INIT_LIST_HEAD(&group->notification_list); init_waitqueue_head(&group->notification_waitq); group->max_events = UINT_MAX; - spin_lock_init(&group->mark_lock); + mutex_init(&group->mark_mutex); INIT_LIST_HEAD(&group->marks_list); group->ops = ops; return group; } +EXPORT_SYMBOL(fsnotify_alloc_group); --- linux-3.2.0.orig/fs/notify/inode_mark.c +++ linux-3.2.0/fs/notify/inode_mark.c @@ -63,8 +63,8 @@ { struct inode *inode = mark->i.inode; + BUG_ON(!mutex_is_locked(&mark->group->mark_mutex)); assert_spin_locked(&mark->lock); - assert_spin_locked(&mark->group->mark_lock); spin_lock(&inode->i_lock); @@ -99,8 +99,16 @@ spin_unlock(&inode->i_lock); list_for_each_entry_safe(mark, lmark, &free_list, i.free_i_list) { - fsnotify_destroy_mark(mark); + struct fsnotify_group *group; + + spin_lock(&mark->lock); + fsnotify_get_group(mark->group); + group = mark->group; + spin_unlock(&mark->lock); + + fsnotify_destroy_mark(mark, group); fsnotify_put_mark(mark); + fsnotify_put_group(group); } } @@ -191,8 +199,8 @@ mark->flags |= FSNOTIFY_MARK_FLAG_INODE; + BUG_ON(!mutex_is_locked(&group->mark_mutex)); assert_spin_locked(&mark->lock); - assert_spin_locked(&group->mark_lock); spin_lock(&inode->i_lock); --- linux-3.2.0.orig/fs/notify/dnotify/dnotify.c +++ linux-3.2.0/fs/notify/dnotify/dnotify.c @@ -201,7 +201,7 @@ /* nothing else could have found us thanks to the dnotify_mark_mutex */ if (dn_mark->dn == NULL) - fsnotify_destroy_mark(fsn_mark); + fsnotify_destroy_mark(fsn_mark, dnotify_group); mutex_unlock(&dnotify_mark_mutex); @@ -385,7 +385,7 @@ spin_unlock(&fsn_mark->lock); if (destroy) - fsnotify_destroy_mark(fsn_mark); + fsnotify_destroy_mark(fsn_mark, dnotify_group); mutex_unlock(&dnotify_mark_mutex); fsnotify_put_mark(fsn_mark); --- linux-3.2.0.orig/fs/notify/inotify/inotify_user.c +++ linux-3.2.0/fs/notify/inotify/inotify_user.c @@ -293,10 +293,8 @@ pr_debug("%s: group=%p\n", __func__, group); - fsnotify_clear_marks_by_group(group); - /* free this group, matching get was inotify_init->fsnotify_obtain_group */ - fsnotify_put_group(group); + fsnotify_destroy_group(group); return 0; } @@ -533,6 +531,7 @@ fsn_event_priv = &event_priv->fsnotify_event_priv_data; + fsnotify_get_group(group); fsn_event_priv->group = group; event_priv->wd = i_mark->wd; @@ -577,10 +576,7 @@ int add = (arg & IN_MASK_ADD); int ret; - /* don't allow invalid bits: we don't want flags set */ mask = inotify_arg_to_mask(arg); - if (unlikely(!(mask & IN_ALL_EVENTS))) - return -EINVAL; fsn_mark = fsnotify_find_inode_mark(group, inode); if (!fsn_mark) @@ -630,10 +626,7 @@ struct idr *idr = &group->inotify_data.idr; spinlock_t *idr_lock = &group->inotify_data.idr_lock; - /* don't allow invalid bits: we don't want flags set */ mask = inotify_arg_to_mask(arg); - if (unlikely(!(mask & IN_ALL_EVENTS))) - return -EINVAL; tmp_i_mark = kmem_cache_alloc(inotify_inode_mark_cachep, GFP_KERNEL); if (unlikely(!tmp_i_mark)) @@ -712,7 +705,7 @@ if (atomic_inc_return(&group->inotify_data.user->inotify_devs) > inotify_max_user_instances) { - fsnotify_put_group(group); + fsnotify_destroy_group(group); return ERR_PTR(-EMFILE); } @@ -741,7 +734,7 @@ ret = anon_inode_getfd("inotify", &inotify_fops, group, O_RDONLY | flags); if (ret < 0) - fsnotify_put_group(group); + fsnotify_destroy_group(group); return ret; } @@ -761,6 +754,10 @@ int ret, fput_needed; unsigned flags = 0; + /* don't allow invalid bits: we don't want flags set */ + if (unlikely(!(mask & ALL_INOTIFY_BITS))) + return -EINVAL; + filp = fget_light(fd, &fput_needed); if (unlikely(!filp)) return -EBADF; @@ -817,7 +814,7 @@ ret = 0; - fsnotify_destroy_mark(&i_mark->fsn_mark); + fsnotify_destroy_mark(&i_mark->fsn_mark, group); /* match ref taken by inotify_idr_find */ fsnotify_put_mark(&i_mark->fsn_mark); --- linux-3.2.0.orig/fs/notify/inotify/inotify_fsnotify.c +++ linux-3.2.0/fs/notify/inotify/inotify_fsnotify.c @@ -118,6 +118,7 @@ fsn_event_priv = &event_priv->fsnotify_event_priv_data; + fsnotify_get_group(group); fsn_event_priv->group = group; event_priv->wd = wd; @@ -131,7 +132,7 @@ } if (inode_mark->mask & IN_ONESHOT) - fsnotify_destroy_mark(inode_mark); + fsnotify_destroy_mark(inode_mark, group); return ret; } @@ -210,6 +211,7 @@ event_priv = container_of(fsn_event_priv, struct inotify_event_private_data, fsnotify_event_priv_data); + fsnotify_put_group(fsn_event_priv->group); kmem_cache_free(event_priv_cachep, event_priv); } --- linux-3.2.0.orig/fs/notify/fanotify/fanotify_user.c +++ linux-3.2.0/fs/notify/fanotify/fanotify_user.c @@ -118,6 +118,7 @@ metadata->event_len = FAN_EVENT_METADATA_LEN; metadata->metadata_len = FAN_EVENT_METADATA_LEN; metadata->vers = FANOTIFY_METADATA_VERSION; + metadata->reserved = 0; metadata->mask = event->mask & FAN_ALL_OUTGOING_EVENTS; metadata->pid = pid_vnr(event->tgid); if (unlikely(event->mask & FAN_Q_OVERFLOW)) @@ -417,7 +418,7 @@ wake_up(&group->fanotify_data.access_waitq); #endif /* matches the fanotify_init->fsnotify_alloc_group */ - fsnotify_put_group(group); + fsnotify_destroy_group(group); return 0; } @@ -513,7 +514,8 @@ static __u32 fanotify_mark_remove_from_mask(struct fsnotify_mark *fsn_mark, __u32 mask, - unsigned int flags) + unsigned int flags, + int *destroy) { __u32 oldmask; @@ -527,8 +529,7 @@ } spin_unlock(&fsn_mark->lock); - if (!(oldmask & ~mask)) - fsnotify_destroy_mark(fsn_mark); + *destroy = !(oldmask & ~mask); return mask & oldmask; } @@ -539,12 +540,17 @@ { struct fsnotify_mark *fsn_mark = NULL; __u32 removed; + int destroy_mark; fsn_mark = fsnotify_find_vfsmount_mark(group, mnt); if (!fsn_mark) return -ENOENT; - removed = fanotify_mark_remove_from_mask(fsn_mark, mask, flags); + removed = fanotify_mark_remove_from_mask(fsn_mark, mask, flags, + &destroy_mark); + if (destroy_mark) + fsnotify_destroy_mark(fsn_mark, group); + fsnotify_put_mark(fsn_mark); if (removed & mnt->mnt_fsnotify_mask) fsnotify_recalc_vfsmount_mask(mnt); @@ -558,12 +564,16 @@ { struct fsnotify_mark *fsn_mark = NULL; __u32 removed; + int destroy_mark; fsn_mark = fsnotify_find_inode_mark(group, inode); if (!fsn_mark) return -ENOENT; - removed = fanotify_mark_remove_from_mask(fsn_mark, mask, flags); + removed = fanotify_mark_remove_from_mask(fsn_mark, mask, flags, + &destroy_mark); + if (destroy_mark) + fsnotify_destroy_mark(fsn_mark, group); /* matches the fsnotify_find_inode_mark() */ fsnotify_put_mark(fsn_mark); if (removed & inode->i_fsnotify_mask) @@ -730,13 +740,13 @@ break; default: fd = -EINVAL; - goto out_put_group; + goto out_destroy_group; } if (flags & FAN_UNLIMITED_QUEUE) { fd = -EPERM; if (!capable(CAP_SYS_ADMIN)) - goto out_put_group; + goto out_destroy_group; group->max_events = UINT_MAX; } else { group->max_events = FANOTIFY_DEFAULT_MAX_EVENTS; @@ -745,7 +755,7 @@ if (flags & FAN_UNLIMITED_MARKS) { fd = -EPERM; if (!capable(CAP_SYS_ADMIN)) - goto out_put_group; + goto out_destroy_group; group->fanotify_data.max_marks = UINT_MAX; } else { group->fanotify_data.max_marks = FANOTIFY_DEFAULT_MAX_MARKS; @@ -753,12 +763,12 @@ fd = anon_inode_getfd("[fanotify]", &fanotify_fops, group, f_flags); if (fd < 0) - goto out_put_group; + goto out_destroy_group; return fd; -out_put_group: - fsnotify_put_group(group); +out_destroy_group: + fsnotify_destroy_group(group); return fd; } --- linux-3.2.0.orig/fs/notify/fanotify/fanotify.c +++ linux-3.2.0/fs/notify/fanotify/fanotify.c @@ -21,6 +21,7 @@ if ((old->path.mnt == new->path.mnt) && (old->path.dentry == new->path.dentry)) return true; + break; case (FSNOTIFY_EVENT_NONE): return true; default: --- linux-3.2.0.orig/fs/jbd2/transaction.c +++ linux-3.2.0/fs/jbd2/transaction.c @@ -179,7 +179,8 @@ if (!new_transaction) goto alloc_transaction; write_lock(&journal->j_state_lock); - if (!journal->j_running_transaction) { + if (!journal->j_running_transaction && + !journal->j_barrier_count) { jbd2_get_transaction(journal, new_transaction); new_transaction = NULL; } @@ -469,10 +470,10 @@ &transaction->t_outstanding_credits); if (atomic_dec_and_test(&transaction->t_updates)) wake_up(&journal->j_wait_updates); + tid = transaction->t_tid; spin_unlock(&transaction->t_handle_lock); jbd_debug(2, "restarting handle %p\n", handle); - tid = transaction->t_tid; need_to_start = !tid_geq(journal->j_commit_request, tid); read_unlock(&journal->j_state_lock); if (need_to_start) @@ -1015,9 +1016,12 @@ void jbd2_journal_set_triggers(struct buffer_head *bh, struct jbd2_buffer_trigger_type *type) { - struct journal_head *jh = bh2jh(bh); + struct journal_head *jh = jbd2_journal_grab_journal_head(bh); + if (WARN_ON(!jh)) + return; jh->b_triggers = type; + jbd2_journal_put_journal_head(jh); } void jbd2_buffer_frozen_trigger(struct journal_head *jh, void *mapped_data, @@ -1069,17 +1073,18 @@ { transaction_t *transaction = handle->h_transaction; journal_t *journal = transaction->t_journal; - struct journal_head *jh = bh2jh(bh); + struct journal_head *jh; int ret = 0; - jbd_debug(5, "journal_head %p\n", jh); - JBUFFER_TRACE(jh, "entry"); if (is_handle_aborted(handle)) goto out; - if (!buffer_jbd(bh)) { + jh = jbd2_journal_grab_journal_head(bh); + if (!jh) { ret = -EUCLEAN; goto out; } + jbd_debug(5, "journal_head %p\n", jh); + JBUFFER_TRACE(jh, "entry"); jbd_lock_bh_state(bh); @@ -1170,6 +1175,7 @@ spin_unlock(&journal->j_list_lock); out_unlock_bh: jbd_unlock_bh_state(bh); + jbd2_journal_put_journal_head(jh); out: JBUFFER_TRACE(jh, "exit"); WARN_ON(ret); /* All errors are bugs, so dump the stack */ @@ -1948,6 +1954,8 @@ clear_buffer_mapped(bh); clear_buffer_req(bh); clear_buffer_new(bh); + clear_buffer_delay(bh); + clear_buffer_unwritten(bh); bh->b_bdev = NULL; return may_free; } --- linux-3.2.0.orig/fs/jbd2/commit.c +++ linux-3.2.0/fs/jbd2/commit.c @@ -326,7 +326,7 @@ int space_left = 0; int first_tag = 0; int tag_flag; - int i, to_free = 0; + int i; int tag_bytes = journal_tag_bytes(journal); struct buffer_head *cbh = NULL; /* For transactional checksums */ __u32 crc32_sum = ~0; @@ -683,7 +683,7 @@ if (commit_transaction->t_need_data_flush && (journal->j_fs_dev != journal->j_dev) && (journal->j_flags & JBD2_BARRIER)) - blkdev_issue_flush(journal->j_fs_dev, GFP_KERNEL, NULL); + blkdev_issue_flush(journal->j_fs_dev, GFP_NOFS, NULL); /* Done it all: now write the commit record asynchronously. */ if (JBD2_HAS_INCOMPAT_FEATURE(journal, @@ -819,7 +819,7 @@ if (JBD2_HAS_INCOMPAT_FEATURE(journal, JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT) && journal->j_flags & JBD2_BARRIER) { - blkdev_issue_flush(journal->j_dev, GFP_KERNEL, NULL); + blkdev_issue_flush(journal->j_dev, GFP_NOFS, NULL); } if (err) @@ -996,7 +996,7 @@ journal->j_stats.run.rs_blocks_logged += stats.run.rs_blocks_logged; spin_unlock(&journal->j_history_lock); - commit_transaction->t_state = T_FINISHED; + commit_transaction->t_state = T_COMMIT_CALLBACK; J_ASSERT(commit_transaction == journal->j_committing_transaction); journal->j_commit_sequence = commit_transaction->t_tid; journal->j_committing_transaction = NULL; @@ -1011,38 +1011,44 @@ journal->j_average_commit_time*3) / 4; else journal->j_average_commit_time = commit_time; + write_unlock(&journal->j_state_lock); - if (commit_transaction->t_checkpoint_list == NULL && - commit_transaction->t_checkpoint_io_list == NULL) { - __jbd2_journal_drop_transaction(journal, commit_transaction); - to_free = 1; + if (journal->j_checkpoint_transactions == NULL) { + journal->j_checkpoint_transactions = commit_transaction; + commit_transaction->t_cpnext = commit_transaction; + commit_transaction->t_cpprev = commit_transaction; } else { - if (journal->j_checkpoint_transactions == NULL) { - journal->j_checkpoint_transactions = commit_transaction; - commit_transaction->t_cpnext = commit_transaction; - commit_transaction->t_cpprev = commit_transaction; - } else { - commit_transaction->t_cpnext = - journal->j_checkpoint_transactions; - commit_transaction->t_cpprev = - commit_transaction->t_cpnext->t_cpprev; - commit_transaction->t_cpnext->t_cpprev = - commit_transaction; - commit_transaction->t_cpprev->t_cpnext = + commit_transaction->t_cpnext = + journal->j_checkpoint_transactions; + commit_transaction->t_cpprev = + commit_transaction->t_cpnext->t_cpprev; + commit_transaction->t_cpnext->t_cpprev = + commit_transaction; + commit_transaction->t_cpprev->t_cpnext = commit_transaction; - } } spin_unlock(&journal->j_list_lock); - + /* Drop all spin_locks because commit_callback may be block. + * __journal_remove_checkpoint() can not destroy transaction + * under us because it is not marked as T_FINISHED yet */ if (journal->j_commit_callback) journal->j_commit_callback(journal, commit_transaction); trace_jbd2_end_commit(journal, commit_transaction); jbd_debug(1, "JBD2: commit %d complete, head %d\n", journal->j_commit_sequence, journal->j_tail_sequence); - if (to_free) - kfree(commit_transaction); + write_lock(&journal->j_state_lock); + spin_lock(&journal->j_list_lock); + commit_transaction->t_state = T_FINISHED; + /* Recheck checkpoint lists after j_list_lock was dropped */ + if (commit_transaction->t_checkpoint_list == NULL && + commit_transaction->t_checkpoint_io_list == NULL) { + __jbd2_journal_drop_transaction(journal, commit_transaction); + kfree(commit_transaction); + } + spin_unlock(&journal->j_list_lock); + write_unlock(&journal->j_state_lock); wake_up(&journal->j_wait_done_commit); } --- linux-3.2.0.orig/fs/jbd2/journal.c +++ linux-3.2.0/fs/jbd2/journal.c @@ -663,6 +663,37 @@ } /* + * When this function returns the transaction corresponding to tid + * will be completed. If the transaction has currently running, start + * committing that transaction before waiting for it to complete. If + * the transaction id is stale, it is by definition already completed, + * so just return SUCCESS. + */ +int jbd2_complete_transaction(journal_t *journal, tid_t tid) +{ + int need_to_wait = 1; + + read_lock(&journal->j_state_lock); + if (journal->j_running_transaction && + journal->j_running_transaction->t_tid == tid) { + if (journal->j_commit_request != tid) { + /* transaction not yet started, so request it */ + read_unlock(&journal->j_state_lock); + jbd2_log_start_commit(journal, tid); + goto wait_commit; + } + } else if (!(journal->j_committing_transaction && + journal->j_committing_transaction->t_tid == tid)) + need_to_wait = 0; + read_unlock(&journal->j_state_lock); + if (!need_to_wait) + return 0; +wait_commit: + return jbd2_log_wait_commit(journal, tid); +} +EXPORT_SYMBOL(jbd2_complete_transaction); + +/* * Log buffer allocation routines: */ --- linux-3.2.0.orig/fs/hpfs/super.c +++ linux-3.2.0/fs/hpfs/super.c @@ -553,7 +553,13 @@ sbi->sb_cp_table = NULL; sbi->sb_c_bitmap = -1; sbi->sb_max_fwd_alloc = 0xffffff; - + + if (sbi->sb_fs_size >= 0x80000000) { + hpfs_error(s, "invalid size in superblock: %08x", + (unsigned)sbi->sb_fs_size); + goto bail4; + } + /* Load bitmap directory */ if (!(sbi->sb_bmp_dir = hpfs_load_bitmap_directory(s, le32_to_cpu(superblock->bitmaps)))) goto bail4; --- linux-3.2.0.orig/fs/hpfs/map.c +++ linux-3.2.0/fs/hpfs/map.c @@ -17,7 +17,8 @@ struct quad_buffer_head *qbh, char *id) { secno sec; - if (hpfs_sb(s)->sb_chk) if (bmp_block * 16384 > hpfs_sb(s)->sb_fs_size) { + unsigned n_bands = (hpfs_sb(s)->sb_fs_size + 0x3fff) >> 14; + if (hpfs_sb(s)->sb_chk) if (bmp_block >= n_bands) { hpfs_error(s, "hpfs_map_bitmap called with bad parameter: %08x at %s", bmp_block, id); return NULL; } --- linux-3.2.0.orig/fs/gfs2/trans.c +++ linux-3.2.0/fs/gfs2/trans.c @@ -145,14 +145,22 @@ struct gfs2_sbd *sdp = gl->gl_sbd; struct gfs2_bufdata *bd; + lock_buffer(bh); + gfs2_log_lock(sdp); bd = bh->b_private; if (bd) gfs2_assert(sdp, bd->bd_gl == gl); else { + gfs2_log_unlock(sdp); + unlock_buffer(bh); gfs2_attach_bufdata(gl, bh, meta); bd = bh->b_private; + lock_buffer(bh); + gfs2_log_lock(sdp); } lops_add(sdp, &bd->bd_le); + gfs2_log_unlock(sdp); + unlock_buffer(bh); } void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd) --- linux-3.2.0.orig/fs/gfs2/export.c +++ linux-3.2.0/fs/gfs2/export.c @@ -167,6 +167,8 @@ case GFS2_SMALL_FH_SIZE: case GFS2_LARGE_FH_SIZE: case GFS2_OLD_FH_SIZE: + if (fh_len < GFS2_SMALL_FH_SIZE) + return NULL; this.no_formal_ino = ((u64)be32_to_cpu(fh[0])) << 32; this.no_formal_ino |= be32_to_cpu(fh[1]); this.no_addr = ((u64)be32_to_cpu(fh[2])) << 32; @@ -186,6 +188,8 @@ switch (fh_type) { case GFS2_LARGE_FH_SIZE: case GFS2_OLD_FH_SIZE: + if (fh_len < GFS2_LARGE_FH_SIZE) + return NULL; parent.no_formal_ino = ((u64)be32_to_cpu(fh[4])) << 32; parent.no_formal_ino |= be32_to_cpu(fh[5]); parent.no_addr = ((u64)be32_to_cpu(fh[6])) << 32; --- linux-3.2.0.orig/fs/gfs2/lops.c +++ linux-3.2.0/fs/gfs2/lops.c @@ -165,16 +165,14 @@ struct gfs2_meta_header *mh; struct gfs2_trans *tr; - lock_buffer(bd->bd_bh); - gfs2_log_lock(sdp); if (!list_empty(&bd->bd_list_tr)) - goto out; + return; tr = current->journal_info; tr->tr_touched = 1; tr->tr_num_buf++; list_add(&bd->bd_list_tr, &tr->tr_list_buf); if (!list_empty(&le->le_list)) - goto out; + return; set_bit(GLF_LFLUSH, &bd->bd_gl->gl_flags); set_bit(GLF_DIRTY, &bd->bd_gl->gl_flags); gfs2_meta_check(sdp, bd->bd_bh); @@ -185,9 +183,6 @@ sdp->sd_log_num_buf++; list_add(&le->le_list, &sdp->sd_log_le_buf); tr->tr_num_buf_new++; -out: - gfs2_log_unlock(sdp); - unlock_buffer(bd->bd_bh); } static void buf_lo_before_commit(struct gfs2_sbd *sdp) @@ -518,11 +513,9 @@ struct address_space *mapping = bd->bd_bh->b_page->mapping; struct gfs2_inode *ip = GFS2_I(mapping->host); - lock_buffer(bd->bd_bh); - gfs2_log_lock(sdp); if (tr) { if (!list_empty(&bd->bd_list_tr)) - goto out; + return; tr->tr_touched = 1; if (gfs2_is_jdata(ip)) { tr->tr_num_buf++; @@ -530,7 +523,7 @@ } } if (!list_empty(&le->le_list)) - goto out; + return; set_bit(GLF_LFLUSH, &bd->bd_gl->gl_flags); set_bit(GLF_DIRTY, &bd->bd_gl->gl_flags); @@ -542,9 +535,6 @@ } else { list_add_tail(&le->le_list, &sdp->sd_log_le_ordered); } -out: - gfs2_log_unlock(sdp); - unlock_buffer(bd->bd_bh); } static void gfs2_check_magic(struct buffer_head *bh) --- linux-3.2.0.orig/fs/btrfs/async-thread.c +++ linux-3.2.0/fs/btrfs/async-thread.c @@ -206,10 +206,17 @@ work->ordered_func(work); - /* now take the lock again and call the freeing code */ + /* now take the lock again and drop our item from the list */ spin_lock(&workers->order_lock); list_del(&work->order_list); + spin_unlock(&workers->order_lock); + + /* + * we don't want to call the ordered free functions + * with the lock held though + */ work->ordered_free(work); + spin_lock(&workers->order_lock); } spin_unlock(&workers->order_lock); --- linux-3.2.0.orig/fs/btrfs/super.c +++ linux-3.2.0/fs/btrfs/super.c @@ -40,7 +40,6 @@ #include #include #include -#include #include #include "compat.h" #include "delayed-inode.h" --- linux-3.2.0.orig/fs/btrfs/extent_io.c +++ linux-3.2.0/fs/btrfs/extent_io.c @@ -1209,6 +1209,39 @@ mask); } +int extent_range_clear_dirty_for_io(struct inode *inode, u64 start, u64 end) +{ + unsigned long index = start >> PAGE_CACHE_SHIFT; + unsigned long end_index = end >> PAGE_CACHE_SHIFT; + struct page *page; + + while (index <= end_index) { + page = find_get_page(inode->i_mapping, index); + BUG_ON(!page); /* Pages should be in the extent_io_tree */ + clear_page_dirty_for_io(page); + page_cache_release(page); + index++; + } + return 0; +} + +int extent_range_redirty_for_io(struct inode *inode, u64 start, u64 end) +{ + unsigned long index = start >> PAGE_CACHE_SHIFT; + unsigned long end_index = end >> PAGE_CACHE_SHIFT; + struct page *page; + + while (index <= end_index) { + page = find_get_page(inode->i_mapping, index); + BUG_ON(!page); /* Pages should be in the extent_io_tree */ + account_page_redirty(page); + __set_page_dirty_nobuffers(page); + page_cache_release(page); + index++; + } + return 0; +} + /* * helper function to set both pages and extents in the tree writeback */ --- linux-3.2.0.orig/fs/btrfs/inode.c +++ linux-3.2.0/fs/btrfs/inode.c @@ -343,6 +343,7 @@ int i; int will_compress; int compress_type = root->fs_info->compress_type; + int redirty = 0; /* if this is a small write inside eof, kick off a defragbot */ if (end <= BTRFS_I(inode)->disk_i_size && (end - start + 1) < 16 * 1024) @@ -404,6 +405,17 @@ if (BTRFS_I(inode)->force_compress) compress_type = BTRFS_I(inode)->force_compress; + /* + * we need to call clear_page_dirty_for_io on each + * page in the range. Otherwise applications with the file + * mmap'd can wander in and change the page contents while + * we are compressing them. + * + * If the compression fails for any reason, we set the pages + * dirty again later on. + */ + extent_range_clear_dirty_for_io(inode, start, end); + redirty = 1; ret = btrfs_compress_pages(compress_type, inode->i_mapping, start, total_compressed, pages, @@ -541,6 +553,8 @@ __set_page_dirty_nobuffers(locked_page); /* unlocked later on in the async handlers */ } + if (redirty) + extent_range_redirty_for_io(inode, start, end); add_async_extent(async_cow, start, end - start + 1, 0, NULL, 0, BTRFS_COMPRESS_NONE); *num_added += 1; --- linux-3.2.0.orig/fs/btrfs/disk-io.c +++ linux-3.2.0/fs/btrfs/disk-io.c @@ -872,7 +872,8 @@ #ifdef CONFIG_MIGRATION static int btree_migratepage(struct address_space *mapping, - struct page *newpage, struct page *page) + struct page *newpage, struct page *page, + enum migrate_mode mode) { /* * we can't safely write a btree page from here, @@ -887,7 +888,7 @@ if (page_has_private(page) && !try_to_release_page(page, GFP_KERNEL)) return -EAGAIN; - return migrate_page(mapping, newpage, page); + return migrate_page(mapping, newpage, page, mode); } #endif --- linux-3.2.0.orig/fs/btrfs/ctree.h +++ linux-3.2.0/fs/btrfs/ctree.h @@ -2025,7 +2025,7 @@ static inline bool btrfs_root_readonly(struct btrfs_root *root) { - return root->root_item.flags & BTRFS_ROOT_SUBVOL_RDONLY; + return (root->root_item.flags & cpu_to_le64(BTRFS_ROOT_SUBVOL_RDONLY)) != 0; } /* struct btrfs_root_backup */ --- linux-3.2.0.orig/fs/btrfs/volumes.c +++ linux-3.2.0/fs/btrfs/volumes.c @@ -543,6 +543,7 @@ new_device->writeable = 0; new_device->in_fs_metadata = 0; new_device->can_discard = 0; + spin_lock_init(&new_device->io_lock); list_replace_rcu(&device->dev_list, &new_device->dev_list); call_rcu(&device->rcu, free_device); @@ -576,6 +577,12 @@ __btrfs_close_devices(fs_devices); free_fs_devices(fs_devices); } + /* + * Wait for rcu kworkers under __btrfs_close_devices + * to finish all blkdev_puts so device is really + * free when umount is done. + */ + rcu_barrier(); return ret; } --- linux-3.2.0.orig/fs/btrfs/ioctl.c +++ linux-3.2.0/fs/btrfs/ioctl.c @@ -1571,7 +1571,11 @@ item_off = btrfs_item_ptr_offset(leaf, i); item_len = btrfs_item_size_nr(leaf, i); - if (item_len > BTRFS_SEARCH_ARGS_BUFSIZE) + btrfs_item_key_to_cpu(leaf, key, i); + if (!key_in_sk(key, sk)) + continue; + + if (sizeof(sh) + item_len > BTRFS_SEARCH_ARGS_BUFSIZE) item_len = 0; if (sizeof(sh) + item_len + *sk_offset > @@ -1580,10 +1584,6 @@ goto overflow; } - btrfs_item_key_to_cpu(leaf, key, i); - if (!key_in_sk(key, sk)) - continue; - sh.objectid = key->objectid; sh.offset = key->offset; sh.type = key->type; --- linux-3.2.0.orig/fs/btrfs/extent_io.h +++ linux-3.2.0/fs/btrfs/extent_io.h @@ -304,6 +304,8 @@ unsigned long *map_len); int extent_range_uptodate(struct extent_io_tree *tree, u64 start, u64 end); +int extent_range_clear_dirty_for_io(struct inode *inode, u64 start, u64 end); +int extent_range_redirty_for_io(struct inode *inode, u64 start, u64 end); int extent_clear_unlock_delalloc(struct inode *inode, struct extent_io_tree *tree, u64 start, u64 end, struct page *locked_page, --- linux-3.2.0.orig/fs/btrfs/tree-log.c +++ linux-3.2.0/fs/btrfs/tree-log.c @@ -316,6 +316,7 @@ unsigned long src_ptr; unsigned long dst_ptr; int overwrite_root = 0; + bool inode_item = key->type == BTRFS_INODE_ITEM_KEY; if (root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID) overwrite_root = 1; @@ -325,6 +326,9 @@ /* look for the key in the destination tree */ ret = btrfs_search_slot(NULL, root, key, path, 0, 0); + if (ret < 0) + return ret; + if (ret == 0) { char *src_copy; char *dst_copy; @@ -366,6 +370,30 @@ return 0; } + /* + * We need to load the old nbytes into the inode so when we + * replay the extents we've logged we get the right nbytes. + */ + if (inode_item) { + struct btrfs_inode_item *item; + u64 nbytes; + + item = btrfs_item_ptr(path->nodes[0], path->slots[0], + struct btrfs_inode_item); + nbytes = btrfs_inode_nbytes(path->nodes[0], item); + item = btrfs_item_ptr(eb, slot, + struct btrfs_inode_item); + btrfs_set_inode_nbytes(eb, item, nbytes); + } + } else if (inode_item) { + struct btrfs_inode_item *item; + + /* + * New inode, set nbytes to 0 so that the nbytes comes out + * properly when we replay the extents. + */ + item = btrfs_item_ptr(eb, slot, struct btrfs_inode_item); + btrfs_set_inode_nbytes(eb, item, 0); } insert: btrfs_release_path(path); @@ -488,7 +516,7 @@ u64 extent_end; u64 alloc_hint; u64 start = key->offset; - u64 saved_nbytes; + u64 nbytes = 0; struct btrfs_file_extent_item *item; struct inode *inode = NULL; unsigned long size; @@ -498,10 +526,19 @@ found_type = btrfs_file_extent_type(eb, item); if (found_type == BTRFS_FILE_EXTENT_REG || - found_type == BTRFS_FILE_EXTENT_PREALLOC) - extent_end = start + btrfs_file_extent_num_bytes(eb, item); - else if (found_type == BTRFS_FILE_EXTENT_INLINE) { + found_type == BTRFS_FILE_EXTENT_PREALLOC) { + nbytes = btrfs_file_extent_num_bytes(eb, item); + extent_end = start + nbytes; + + /* + * We don't add to the inodes nbytes if we are prealloc or a + * hole. + */ + if (btrfs_file_extent_disk_bytenr(eb, item) == 0) + nbytes = 0; + } else if (found_type == BTRFS_FILE_EXTENT_INLINE) { size = btrfs_file_extent_inline_len(eb, item); + nbytes = btrfs_file_extent_ram_bytes(eb, item); extent_end = (start + size + mask) & ~mask; } else { ret = 0; @@ -550,7 +587,6 @@ } btrfs_release_path(path); - saved_nbytes = inode_get_bytes(inode); /* drop any overlapping extents */ ret = btrfs_drop_extents(trans, inode, start, extent_end, &alloc_hint, 1); @@ -638,7 +674,7 @@ BUG_ON(ret); } - inode_set_bytes(inode, saved_nbytes); + inode_add_bytes(inode, nbytes); btrfs_update_inode(trans, root, inode); out: if (inode) @@ -692,6 +728,8 @@ kfree(name); iput(inode); + + btrfs_run_delayed_items(trans, root); return ret; } @@ -897,6 +935,7 @@ ret = btrfs_unlink_inode(trans, root, dir, inode, victim_name, victim_name_len); + btrfs_run_delayed_items(trans, root); } kfree(victim_name); ptr = (unsigned long)(victim_ref + 1) + victim_name_len; @@ -1477,6 +1516,9 @@ ret = btrfs_unlink_inode(trans, root, dir, inode, name, name_len); BUG_ON(ret); + + btrfs_run_delayed_items(trans, root); + kfree(name); iput(inode); --- linux-3.2.0.orig/fs/btrfs/extent-tree.c +++ linux-3.2.0/fs/btrfs/extent-tree.c @@ -3996,7 +3996,7 @@ spin_lock(&block_rsv->lock); spin_lock(&sinfo->lock); - block_rsv->size = num_bytes; + block_rsv->size = min_t(u64, num_bytes, 512 * 1024 * 1024); num_bytes = sinfo->bytes_used + sinfo->bytes_pinned + sinfo->bytes_reserved + sinfo->bytes_readonly + @@ -6560,6 +6560,7 @@ int err = 0; int ret; int level; + bool root_dropped = false; path = btrfs_alloc_path(); if (!path) { @@ -6614,6 +6615,7 @@ while (1) { btrfs_tree_lock(path->nodes[level]); btrfs_set_lock_blocking(path->nodes[level]); + path->locks[level] = BTRFS_WRITE_LOCK_BLOCKING; ret = btrfs_lookup_extent_info(trans, root, path->nodes[level]->start, @@ -6627,6 +6629,7 @@ break; btrfs_tree_unlock(path->nodes[level]); + path->locks[level] = 0; WARN_ON(wc->refs[level] != 1); level--; } @@ -6707,11 +6710,21 @@ free_extent_buffer(root->commit_root); kfree(root); } + root_dropped = true; out_free: btrfs_end_transaction_throttle(trans, tree_root); kfree(wc); btrfs_free_path(path); out: + /* + * So if we need to stop dropping the snapshot for whatever reason we + * need to make sure to add it back to the dead root list so that we + * keep trying to do the work later. This also cleans up roots if we + * don't have it in the radix (like when we recover after a power fail + * or unmount) so we don't leak memory. + */ + if (root_dropped == false) + btrfs_add_dead_root(root); if (err) btrfs_std_error(root->fs_info, err); return; --- linux-3.2.0.orig/fs/ncpfs/dir.c +++ linux-3.2.0/fs/ncpfs/dir.c @@ -1033,15 +1033,6 @@ DPRINTK("ncp_rmdir: removing %s/%s\n", dentry->d_parent->d_name.name, dentry->d_name.name); - /* - * fail with EBUSY if there are still references to this - * directory. - */ - dentry_unhash(dentry); - error = -EBUSY; - if (!d_unhashed(dentry)) - goto out; - len = sizeof(__name); error = ncp_io2vol(server, __name, &len, dentry->d_name.name, dentry->d_name.len, !ncp_preserve_case(dir)); --- linux-3.2.0.orig/fs/ramfs/file-nommu.c +++ linux-3.2.0/fs/ramfs/file-nommu.c @@ -110,6 +110,7 @@ /* prevent the page from being discarded on memory pressure */ SetPageDirty(page); + SetPageUptodate(page); unlock_page(page); put_page(page); --- linux-3.2.0.orig/fs/fuse/fuse_i.h +++ linux-3.2.0/fs/fuse/fuse_i.h @@ -82,6 +82,9 @@ preserve the original mode */ mode_t orig_i_mode; + /** 64 bit inode number */ + u64 orig_ino; + /** Version of last attribute change */ u64 attr_version; --- linux-3.2.0.orig/fs/fuse/dev.c +++ linux-3.2.0/fs/fuse/dev.c @@ -1524,6 +1524,7 @@ req->pages[req->num_pages] = page; req->num_pages++; + offset = 0; num -= this_num; total_len += this_num; index++; --- linux-3.2.0.orig/fs/fuse/inode.c +++ linux-3.2.0/fs/fuse/inode.c @@ -91,6 +91,7 @@ fi->nlookup = 0; fi->attr_version = 0; fi->writectr = 0; + fi->orig_ino = 0; INIT_LIST_HEAD(&fi->write_files); INIT_LIST_HEAD(&fi->queued_writes); INIT_LIST_HEAD(&fi->writepages); @@ -140,6 +141,18 @@ return 0; } +/* + * ino_t is 32-bits on 32-bit arch. We have to squash the 64-bit value down + * so that it will fit. + */ +static ino_t fuse_squash_ino(u64 ino64) +{ + ino_t ino = (ino_t) ino64; + if (sizeof(ino_t) < sizeof(u64)) + ino ^= ino64 >> (sizeof(u64) - sizeof(ino_t)) * 8; + return ino; +} + void fuse_change_attributes_common(struct inode *inode, struct fuse_attr *attr, u64 attr_valid) { @@ -149,7 +162,7 @@ fi->attr_version = ++fc->attr_version; fi->i_time = attr_valid; - inode->i_ino = attr->ino; + inode->i_ino = fuse_squash_ino(attr->ino); inode->i_mode = (inode->i_mode & S_IFMT) | (attr->mode & 07777); set_nlink(inode, attr->nlink); inode->i_uid = attr->uid; @@ -175,6 +188,8 @@ fi->orig_i_mode = inode->i_mode; if (!(fc->flags & FUSE_DEFAULT_PERMISSIONS)) inode->i_mode &= ~S_ISVTX; + + fi->orig_ino = attr->ino; } void fuse_change_attributes(struct inode *inode, struct fuse_attr *attr, --- linux-3.2.0.orig/fs/fuse/dir.c +++ linux-3.2.0/fs/fuse/dir.c @@ -858,6 +858,7 @@ if (stat) { generic_fillattr(inode, stat); stat->mode = fi->orig_i_mode; + stat->ino = fi->orig_ino; } } --- linux-3.2.0.orig/fs/fuse/file.c +++ linux-3.2.0/fs/fuse/file.c @@ -1687,7 +1687,7 @@ size_t n; u32 max = FUSE_MAX_PAGES_PER_REQ << PAGE_SHIFT; - for (n = 0; n < count; n++) { + for (n = 0; n < count; n++, iov++) { if (iov->iov_len > (size_t) max) return -ENOMEM; max -= iov->iov_len; --- linux-3.2.0.orig/fs/exofs/Kconfig +++ linux-3.2.0/fs/exofs/Kconfig @@ -1,14 +1,3 @@ -# Note ORE needs to "select ASYNC_XOR". So Not to force multiple selects -# for every ORE user we do it like this. Any user should add itself here -# at the "depends on EXOFS_FS || ..." with an ||. The dependencies are -# selected here, and we default to "ON". So in effect it is like been -# selected by any of the users. -config ORE - tristate - depends on EXOFS_FS || PNFS_OBJLAYOUT - select ASYNC_XOR - default SCSI_OSD_ULD - config EXOFS_FS tristate "exofs: OSD based file system support" depends on SCSI_OSD_ULD --- linux-3.2.0.orig/fs/exofs/Kconfig.ore +++ linux-3.2.0/fs/exofs/Kconfig.ore @@ -0,0 +1,12 @@ +# ORE - Objects Raid Engine (libore.ko) +# +# Note ORE needs to "select ASYNC_XOR". So Not to force multiple selects +# for every ORE user we do it like this. Any user should add itself here +# at the "depends on EXOFS_FS || ..." with an ||. The dependencies are +# selected here, and we default to "ON". So in effect it is like been +# selected by any of the users. +config ORE + tristate + depends on EXOFS_FS || PNFS_OBJLAYOUT + select ASYNC_XOR + default SCSI_OSD_ULD --- linux-3.2.0.orig/fs/exofs/super.c +++ linux-3.2.0/fs/exofs/super.c @@ -745,7 +745,6 @@ sbi->one_comp.obj.partition = opts->pid; sbi->one_comp.obj.id = 0; exofs_make_credential(sbi->one_comp.cred, &sbi->one_comp.obj); - sbi->oc.numdevs = 1; sbi->oc.single_comp = EC_SINGLE_COMP; sbi->oc.comps = &sbi->one_comp; @@ -803,6 +802,7 @@ goto free_sbi; ore_comp_set_dev(&sbi->oc, 0, od); + sbi->oc.numdevs = 1; } __sbi_read_stats(sbi); --- linux-3.2.0.orig/fs/exofs/ore_raid.c +++ linux-3.2.0/fs/exofs/ore_raid.c @@ -328,8 +328,8 @@ /* @si contains info of the to-be-inserted page. Update of @si should be * maintained by caller. Specificaly si->dev, si->obj_offset, ... */ -static int _add_to_read_4_write(struct ore_io_state *ios, - struct ore_striping_info *si, struct page *page) +static int _add_to_r4w(struct ore_io_state *ios, struct ore_striping_info *si, + struct page *page, unsigned pg_len) { struct request_queue *q; struct ore_per_dev_state *per_dev; @@ -366,17 +366,60 @@ _ore_add_sg_seg(per_dev, gap, true); } q = osd_request_queue(ore_comp_dev(read_ios->oc, per_dev->dev)); - added_len = bio_add_pc_page(q, per_dev->bio, page, PAGE_SIZE, 0); - if (unlikely(added_len != PAGE_SIZE)) { + added_len = bio_add_pc_page(q, per_dev->bio, page, pg_len, + si->obj_offset % PAGE_SIZE); + if (unlikely(added_len != pg_len)) { ORE_DBGMSG("Failed to bio_add_pc_page bi_vcnt=%d\n", per_dev->bio->bi_vcnt); return -ENOMEM; } - per_dev->length += PAGE_SIZE; + per_dev->length += pg_len; return 0; } +/* read the beginning of an unaligned first page */ +static int _add_to_r4w_first_page(struct ore_io_state *ios, struct page *page) +{ + struct ore_striping_info si; + unsigned pg_len; + + ore_calc_stripe_info(ios->layout, ios->offset, 0, &si); + + pg_len = si.obj_offset % PAGE_SIZE; + si.obj_offset -= pg_len; + + ORE_DBGMSG("offset=0x%llx len=0x%x index=0x%lx dev=%x\n", + _LLU(si.obj_offset), pg_len, page->index, si.dev); + + return _add_to_r4w(ios, &si, page, pg_len); +} + +/* read the end of an incomplete last page */ +static int _add_to_r4w_last_page(struct ore_io_state *ios, u64 *offset) +{ + struct ore_striping_info si; + struct page *page; + unsigned pg_len, p, c; + + ore_calc_stripe_info(ios->layout, *offset, 0, &si); + + p = si.unit_off / PAGE_SIZE; + c = _dev_order(ios->layout->group_width * ios->layout->mirrors_p1, + ios->layout->mirrors_p1, si.par_dev, si.dev); + page = ios->sp2d->_1p_stripes[p].pages[c]; + + pg_len = PAGE_SIZE - (si.unit_off % PAGE_SIZE); + *offset += pg_len; + + ORE_DBGMSG("p=%d, c=%d next-offset=0x%llx len=0x%x dev=%x par_dev=%d\n", + p, c, _LLU(*offset), pg_len, si.dev, si.par_dev); + + BUG_ON(!page); + + return _add_to_r4w(ios, &si, page, pg_len); +} + static void _mark_read4write_pages_uptodate(struct ore_io_state *ios, int ret) { struct bio_vec *bv; @@ -418,16 +461,12 @@ * ios->sp2d[p][*], xor is calculated the same way. These pages are * allocated/freed and don't go through cache */ -static int _read_4_write(struct ore_io_state *ios) +static int _read_4_write_first_stripe(struct ore_io_state *ios) { - struct ore_io_state *ios_read; struct ore_striping_info read_si; struct __stripe_pages_2d *sp2d = ios->sp2d; u64 offset = ios->si.first_stripe_start; - u64 last_stripe_end; - unsigned bytes_in_stripe = ios->si.bytes_in_stripe; - unsigned i, c, p, min_p = sp2d->pages_in_unit, max_p = -1; - int ret; + unsigned c, p, min_p = sp2d->pages_in_unit, max_p = -1; if (offset == ios->offset) /* Go to start collect $200 */ goto read_last_stripe; @@ -435,6 +474,9 @@ min_p = _sp2d_min_pg(sp2d); max_p = _sp2d_max_pg(sp2d); + ORE_DBGMSG("stripe_start=0x%llx ios->offset=0x%llx min_p=%d max_p=%d\n", + offset, ios->offset, min_p, max_p); + for (c = 0; ; c++) { ore_calc_stripe_info(ios->layout, offset, 0, &read_si); read_si.obj_offset += min_p * PAGE_SIZE; @@ -444,9 +486,13 @@ struct page **pp = &_1ps->pages[c]; bool uptodate; - if (*pp) + if (*pp) { + if (ios->offset % PAGE_SIZE) + /* Read the remainder of the page */ + _add_to_r4w_first_page(ios, *pp); /* to-be-written pages start here */ goto read_last_stripe; + } *pp = ios->r4w->get_page(ios->private, offset, &uptodate); @@ -454,7 +500,7 @@ return -ENOMEM; if (!uptodate) - _add_to_read_4_write(ios, &read_si, *pp); + _add_to_r4w(ios, &read_si, *pp, PAGE_SIZE); /* Mark read-pages to be cache_released */ _1ps->page_is_read[c] = true; @@ -465,8 +511,23 @@ } read_last_stripe: - offset = ios->offset + (ios->length + PAGE_SIZE - 1) / - PAGE_SIZE * PAGE_SIZE; + return 0; +} + +static int _read_4_write_last_stripe(struct ore_io_state *ios) +{ + struct ore_striping_info read_si; + struct __stripe_pages_2d *sp2d = ios->sp2d; + u64 offset; + u64 last_stripe_end; + unsigned bytes_in_stripe = ios->si.bytes_in_stripe; + unsigned c, p, min_p = sp2d->pages_in_unit, max_p = -1; + + offset = ios->offset + ios->length; + if (offset % PAGE_SIZE) + _add_to_r4w_last_page(ios, &offset); + /* offset will be aligned to next page */ + last_stripe_end = div_u64(offset + bytes_in_stripe - 1, bytes_in_stripe) * bytes_in_stripe; if (offset == last_stripe_end) /* Optimize for the aligned case */ @@ -477,15 +538,15 @@ c = _dev_order(ios->layout->group_width * ios->layout->mirrors_p1, ios->layout->mirrors_p1, read_si.par_dev, read_si.dev); - BUG_ON(ios->si.first_stripe_start + bytes_in_stripe != last_stripe_end); - /* unaligned IO must be within a single stripe */ - if (min_p == sp2d->pages_in_unit) { /* Didn't do it yet */ min_p = _sp2d_min_pg(sp2d); max_p = _sp2d_max_pg(sp2d); } + ORE_DBGMSG("offset=0x%llx stripe_end=0x%llx min_p=%d max_p=%d\n", + offset, last_stripe_end, min_p, max_p); + while (offset < last_stripe_end) { struct __1_page_stripe *_1ps = &sp2d->_1p_stripes[p]; @@ -503,7 +564,7 @@ /* Mark read-pages to be cache_released */ _1ps->page_is_read[c] = true; if (!uptodate) - _add_to_read_4_write(ios, &read_si, page); + _add_to_r4w(ios, &read_si, page, PAGE_SIZE); } offset += PAGE_SIZE; @@ -518,6 +579,15 @@ } read_it: + return 0; +} + +static int _read_4_write_execute(struct ore_io_state *ios) +{ + struct ore_io_state *ios_read; + unsigned i; + int ret; + ios_read = ios->ios_read_4_write; if (!ios_read) return 0; @@ -541,6 +611,8 @@ } _mark_read4write_pages_uptodate(ios_read, ret); + ore_put_io_state(ios_read); + ios->ios_read_4_write = NULL; /* Might need a reuse at last stripe */ return 0; } @@ -551,7 +623,11 @@ unsigned cur_len) { if (ios->reading) { - BUG_ON(per_dev->cur_sg >= ios->sgs_per_dev); + if (per_dev->cur_sg >= ios->sgs_per_dev) { + ORE_DBGMSG("cur_sg(%d) >= sgs_per_dev(%d)\n" , + per_dev->cur_sg, ios->sgs_per_dev); + return -ENOMEM; + } _ore_add_sg_seg(per_dev, cur_len, true); } else { struct __stripe_pages_2d *sp2d = ios->sp2d; @@ -572,8 +648,11 @@ /* If first stripe, Read in all read4write pages * (if needed) before we calculate the first parity. */ - _read_4_write(ios); + _read_4_write_first_stripe(ios); } + if (!cur_len) /* If last stripe r4w pages of last stripe */ + _read_4_write_last_stripe(ios); + _read_4_write_execute(ios); for (i = 0; i < num_pages; i++) { pages[i] = _raid_page_alloc(); @@ -600,36 +679,14 @@ int _ore_post_alloc_raid_stuff(struct ore_io_state *ios) { - struct ore_layout *layout = ios->layout; - if (ios->parity_pages) { + struct ore_layout *layout = ios->layout; unsigned pages_in_unit = layout->stripe_unit / PAGE_SIZE; - unsigned stripe_size = ios->si.bytes_in_stripe; - u64 last_stripe, first_stripe; if (_sp2d_alloc(pages_in_unit, layout->group_width, layout->parity, &ios->sp2d)) { return -ENOMEM; } - - BUG_ON(ios->offset % PAGE_SIZE); - - /* Round io down to last full strip */ - first_stripe = div_u64(ios->offset, stripe_size); - last_stripe = div_u64(ios->offset + ios->length, stripe_size); - - /* If an IO spans more then a single stripe it must end at - * a stripe boundary. The reminder at the end is pushed into the - * next IO. - */ - if (last_stripe != first_stripe) { - ios->length = last_stripe * stripe_size - ios->offset; - - BUG_ON(!ios->length); - ios->nr_pages = (ios->length + PAGE_SIZE - 1) / - PAGE_SIZE; - ios->si.length = ios->length; /*make it consistent */ - } } return 0; } --- linux-3.2.0.orig/fs/exofs/ore.c +++ linux-3.2.0/fs/exofs/ore.c @@ -266,7 +266,7 @@ /* first/last seg is split */ num_raid_units += layout->group_width; - sgs_per_dev = div_u64(num_raid_units, data_devs); + sgs_per_dev = div_u64(num_raid_units, data_devs) + 2; } else { /* For Writes add parity pages array. */ max_par_pages = num_raid_units * pages_in_unit * @@ -445,10 +445,10 @@ u64 residual = ios->reading ? or->in.residual : or->out.residual; u64 offset = (ios->offset + ios->length) - residual; - struct ore_dev *od = ios->oc->ods[ - per_dev->dev - ios->oc->first_dev]; + unsigned dev = per_dev->dev - ios->oc->first_dev; + struct ore_dev *od = ios->oc->ods[dev]; - on_dev_error(ios, od, per_dev->dev, osi.osd_err_pri, + on_dev_error(ios, od, dev, osi.osd_err_pri, offset, residual); } if (osi.osd_err_pri >= acumulated_osd_err) { @@ -735,13 +735,7 @@ out: ios->numdevs = devs_in_group; ios->pages_consumed = cur_pg; - if (unlikely(ret)) { - if (length == ios->length) - return ret; - else - ios->length -= length; - } - return 0; + return ret; } int ore_create(struct ore_io_state *ios) @@ -843,11 +837,11 @@ bio->bi_rw |= REQ_WRITE; } - osd_req_write(or, _ios_obj(ios, dev), per_dev->offset, - bio, per_dev->length); + osd_req_write(or, _ios_obj(ios, cur_comp), + per_dev->offset, bio, per_dev->length); ORE_DBGMSG("write(0x%llx) offset=0x%llx " "length=0x%llx dev=%d\n", - _LLU(_ios_obj(ios, dev)->id), + _LLU(_ios_obj(ios, cur_comp)->id), _LLU(per_dev->offset), _LLU(per_dev->length), dev); } else if (ios->kern_buff) { @@ -859,20 +853,20 @@ (ios->si.unit_off + ios->length > ios->layout->stripe_unit)); - ret = osd_req_write_kern(or, _ios_obj(ios, per_dev->dev), + ret = osd_req_write_kern(or, _ios_obj(ios, cur_comp), per_dev->offset, ios->kern_buff, ios->length); if (unlikely(ret)) goto out; ORE_DBGMSG2("write_kern(0x%llx) offset=0x%llx " "length=0x%llx dev=%d\n", - _LLU(_ios_obj(ios, dev)->id), + _LLU(_ios_obj(ios, cur_comp)->id), _LLU(per_dev->offset), _LLU(ios->length), per_dev->dev); } else { - osd_req_set_attributes(or, _ios_obj(ios, dev)); + osd_req_set_attributes(or, _ios_obj(ios, cur_comp)); ORE_DBGMSG2("obj(0x%llx) set_attributes=%d dev=%d\n", - _LLU(_ios_obj(ios, dev)->id), + _LLU(_ios_obj(ios, cur_comp)->id), ios->out_attr_len, dev); } --- linux-3.2.0.orig/fs/nls/nls_base.c +++ linux-3.2.0/fs/nls/nls_base.c @@ -114,34 +114,57 @@ } EXPORT_SYMBOL(utf32_to_utf8); -int utf8s_to_utf16s(const u8 *s, int len, wchar_t *pwcs) +static inline void put_utf16(wchar_t *s, unsigned c, enum utf16_endian endian) +{ + switch (endian) { + default: + *s = (wchar_t) c; + break; + case UTF16_LITTLE_ENDIAN: + *s = __cpu_to_le16(c); + break; + case UTF16_BIG_ENDIAN: + *s = __cpu_to_be16(c); + break; + } +} + +int utf8s_to_utf16s(const u8 *s, int len, enum utf16_endian endian, + wchar_t *pwcs, int maxlen) { u16 *op; int size; unicode_t u; op = pwcs; - while (*s && len > 0) { + while (len > 0 && maxlen > 0 && *s) { if (*s & 0x80) { size = utf8_to_utf32(s, len, &u); if (size < 0) return -EINVAL; + s += size; + len -= size; if (u >= PLANE_SIZE) { + if (maxlen < 2) + break; u -= PLANE_SIZE; - *op++ = (wchar_t) (SURROGATE_PAIR | - ((u >> 10) & SURROGATE_BITS)); - *op++ = (wchar_t) (SURROGATE_PAIR | + put_utf16(op++, SURROGATE_PAIR | + ((u >> 10) & SURROGATE_BITS), + endian); + put_utf16(op++, SURROGATE_PAIR | SURROGATE_LOW | - (u & SURROGATE_BITS)); + (u & SURROGATE_BITS), + endian); + maxlen -= 2; } else { - *op++ = (wchar_t) u; + put_utf16(op++, u, endian); + maxlen--; } - s += size; - len -= size; } else { - *op++ = *s++; + put_utf16(op++, *s++, endian); len--; + maxlen--; } } return op - pwcs; --- linux-3.2.0.orig/fs/sysfs/inode.c +++ linux-3.2.0/fs/sysfs/inode.c @@ -136,12 +136,13 @@ void *old_secdata; size_t old_secdata_len; - iattrs = sd->s_iattr; - if (!iattrs) - iattrs = sysfs_init_inode_attrs(sd); - if (!iattrs) - return -ENOMEM; + if (!sd->s_iattr) { + sd->s_iattr = sysfs_init_inode_attrs(sd); + if (!sd->s_iattr) + return -ENOMEM; + } + iattrs = sd->s_iattr; old_secdata = iattrs->ia_secdata; old_secdata_len = iattrs->ia_secdata_len; @@ -318,8 +319,11 @@ struct sysfs_addrm_cxt acxt; struct sysfs_dirent *sd; - if (!dir_sd) + if (!dir_sd) { + WARN(1, KERN_WARNING "sysfs: can not remove '%s', no directory\n", + name); return -ENOENT; + } sysfs_addrm_start(&acxt, dir_sd); --- linux-3.2.0.orig/fs/sysfs/dir.c +++ linux-3.2.0/fs/sysfs/dir.c @@ -430,20 +430,18 @@ /** * sysfs_pathname - return full path to sysfs dirent * @sd: sysfs_dirent whose path we want - * @path: caller allocated buffer + * @path: caller allocated buffer of size PATH_MAX * * Gives the name "/" to the sysfs_root entry; any path returned * is relative to wherever sysfs is mounted. - * - * XXX: does no error checking on @path size */ static char *sysfs_pathname(struct sysfs_dirent *sd, char *path) { if (sd->s_parent) { sysfs_pathname(sd->s_parent, path); - strcat(path, "/"); + strlcat(path, "/", PATH_MAX); } - strcat(path, sd->s_name); + strlcat(path, sd->s_name, PATH_MAX); return path; } @@ -476,9 +474,11 @@ char *path = kzalloc(PATH_MAX, GFP_KERNEL); WARN(1, KERN_WARNING "sysfs: cannot create duplicate filename '%s'\n", - (path == NULL) ? sd->s_name : - strcat(strcat(sysfs_pathname(acxt->parent_sd, path), "/"), - sd->s_name)); + (path == NULL) ? sd->s_name + : (sysfs_pathname(acxt->parent_sd, path), + strlcat(path, "/", PATH_MAX), + strlcat(path, sd->s_name, PATH_MAX), + path)); kfree(path); } @@ -977,6 +977,7 @@ enum kobj_ns_type type; const void *ns; ino_t ino; + loff_t off; type = sysfs_ns_type(parent_sd); ns = sysfs_info(dentry->d_sb)->ns[type]; @@ -985,6 +986,8 @@ ino = parent_sd->s_ino; if (filldir(dirent, ".", 1, filp->f_pos, ino, DT_DIR) == 0) filp->f_pos++; + else + return 0; } if (filp->f_pos == 1) { if (parent_sd->s_parent) @@ -993,8 +996,11 @@ ino = parent_sd->s_ino; if (filldir(dirent, "..", 2, filp->f_pos, ino, DT_DIR) == 0) filp->f_pos++; + else + return 0; } mutex_lock(&sysfs_mutex); + off = filp->f_pos; for (pos = sysfs_dir_pos(ns, parent_sd, filp->f_pos, pos); pos; pos = sysfs_dir_next_pos(ns, parent_sd, filp->f_pos, pos)) { @@ -1006,27 +1012,43 @@ len = strlen(name); ino = pos->s_ino; type = dt_type(pos); - filp->f_pos = ino; + off = filp->f_pos = ino; filp->private_data = sysfs_get(pos); mutex_unlock(&sysfs_mutex); - ret = filldir(dirent, name, len, filp->f_pos, ino, type); + ret = filldir(dirent, name, len, off, ino, type); mutex_lock(&sysfs_mutex); if (ret < 0) break; } mutex_unlock(&sysfs_mutex); - if ((filp->f_pos > 1) && !pos) { /* EOF */ - filp->f_pos = INT_MAX; + + /* don't reference last entry if its refcount is dropped */ + if (!pos) { filp->private_data = NULL; + + /* EOF and not changed as 0 or 1 in read/write path */ + if (off == filp->f_pos && off > 1) + filp->f_pos = INT_MAX; } return 0; } +static loff_t sysfs_dir_llseek(struct file *file, loff_t offset, int whence) +{ + struct inode *inode = file->f_path.dentry->d_inode; + loff_t ret; + + mutex_lock(&inode->i_mutex); + ret = generic_file_llseek(file, offset, whence); + mutex_unlock(&inode->i_mutex); + + return ret; +} const struct file_operations sysfs_dir_operations = { .read = generic_read_dir, .readdir = sysfs_readdir, .release = sysfs_dir_release, - .llseek = generic_file_llseek, + .llseek = sysfs_dir_llseek, }; --- linux-3.2.0.orig/fs/sysfs/file.c +++ linux-3.2.0/fs/sysfs/file.c @@ -493,6 +493,12 @@ const void *ns = NULL; int err; + if (!dir_sd) { + WARN(1, KERN_ERR "sysfs: kobject %s without dirent\n", + kobject_name(kobj)); + return -ENOENT; + } + err = 0; if (!sysfs_ns_type(dir_sd)) goto out; --- linux-3.2.0.orig/fs/ceph/super.h +++ linux-3.2.0/fs/ceph/super.h @@ -21,7 +21,7 @@ /* large granularity for statfs utilization stats to facilitate * large volume sizes on 32-bit machines. */ -#define CEPH_BLOCK_SHIFT 20 /* 1 MB */ +#define CEPH_BLOCK_SHIFT 22 /* 4 MB */ #define CEPH_BLOCK (1 << CEPH_BLOCK_SHIFT) #define CEPH_MOUNT_OPT_DIRSTAT (1<<4) /* `cat dirname` for stats */ --- linux-3.2.0.orig/fs/ceph/super.c +++ linux-3.2.0/fs/ceph/super.c @@ -70,8 +70,14 @@ /* * express utilization in terms of large blocks to avoid * overflow on 32-bit machines. + * + * NOTE: for the time being, we make bsize == frsize to humor + * not-yet-ancient versions of glibc that are broken. + * Someday, we will probably want to report a real block + * size... whatever that may mean for a network file system! */ buf->f_bsize = 1 << CEPH_BLOCK_SHIFT; + buf->f_frsize = 1 << CEPH_BLOCK_SHIFT; buf->f_blocks = le64_to_cpu(st.kb) >> (CEPH_BLOCK_SHIFT-10); buf->f_bfree = le64_to_cpu(st.kb_avail) >> (CEPH_BLOCK_SHIFT-10); buf->f_bavail = le64_to_cpu(st.kb_avail) >> (CEPH_BLOCK_SHIFT-10); @@ -79,7 +85,6 @@ buf->f_files = le64_to_cpu(st.num_objects); buf->f_ffree = -1; buf->f_namelen = NAME_MAX; - buf->f_frsize = PAGE_CACHE_SIZE; /* leave fsid little-endian, regardless of host endianness */ fsid = *(u64 *)(&monmap->fsid) ^ *((u64 *)&monmap->fsid + 1); --- linux-3.2.0.orig/fs/ceph/export.c +++ linux-3.2.0/fs/ceph/export.c @@ -91,7 +91,7 @@ * FIXME: we should try harder by querying the mds for the ino. */ static struct dentry *__fh_to_dentry(struct super_block *sb, - struct ceph_nfs_fh *fh) + struct ceph_nfs_fh *fh, int fh_len) { struct ceph_mds_client *mdsc = ceph_sb_to_client(sb)->mdsc; struct inode *inode; @@ -99,6 +99,9 @@ struct ceph_vino vino; int err; + if (fh_len < sizeof(*fh) / 4) + return ERR_PTR(-ESTALE); + dout("__fh_to_dentry %llx\n", fh->ino); vino.ino = fh->ino; vino.snap = CEPH_NOSNAP; @@ -142,7 +145,7 @@ * convert connectable fh to dentry */ static struct dentry *__cfh_to_dentry(struct super_block *sb, - struct ceph_nfs_confh *cfh) + struct ceph_nfs_confh *cfh, int fh_len) { struct ceph_mds_client *mdsc = ceph_sb_to_client(sb)->mdsc; struct inode *inode; @@ -150,6 +153,9 @@ struct ceph_vino vino; int err; + if (fh_len < sizeof(*cfh) / 4) + return ERR_PTR(-ESTALE); + dout("__cfh_to_dentry %llx (%llx/%x)\n", cfh->ino, cfh->parent_ino, cfh->parent_name_hash); @@ -199,9 +205,11 @@ int fh_len, int fh_type) { if (fh_type == 1) - return __fh_to_dentry(sb, (struct ceph_nfs_fh *)fid->raw); + return __fh_to_dentry(sb, (struct ceph_nfs_fh *)fid->raw, + fh_len); else - return __cfh_to_dentry(sb, (struct ceph_nfs_confh *)fid->raw); + return __cfh_to_dentry(sb, (struct ceph_nfs_confh *)fid->raw, + fh_len); } /* @@ -222,6 +230,8 @@ if (fh_type == 1) return ERR_PTR(-ESTALE); + if (fh_len < sizeof(*cfh) / 4) + return ERR_PTR(-ESTALE); pr_debug("fh_to_parent %llx/%d\n", cfh->parent_ino, cfh->parent_name_hash); --- linux-3.2.0.orig/fs/jbd/transaction.c +++ linux-3.2.0/fs/jbd/transaction.c @@ -1839,15 +1839,16 @@ * We're outside-transaction here. Either or both of j_running_transaction * and j_committing_transaction may be NULL. */ -static int journal_unmap_buffer(journal_t *journal, struct buffer_head *bh) +static int journal_unmap_buffer(journal_t *journal, struct buffer_head *bh, + int partial_page) { transaction_t *transaction; struct journal_head *jh; int may_free = 1; - int ret; BUFFER_TRACE(bh, "entry"); +retry: /* * It is safe to proceed here without the j_list_lock because the * buffers cannot be stolen by try_to_free_buffers as long as we are @@ -1875,10 +1876,18 @@ * clear the buffer dirty bit at latest at the moment when the * transaction marking the buffer as freed in the filesystem * structures is committed because from that moment on the - * buffer can be reallocated and used by a different page. + * block can be reallocated and used by a different page. * Since the block hasn't been freed yet but the inode has * already been added to orphan list, it is safe for us to add * the buffer to BJ_Forget list of the newest transaction. + * + * Also we have to clear buffer_mapped flag of a truncated buffer + * because the buffer_head may be attached to the page straddling + * i_size (can happen only when blocksize < pagesize) and thus the + * buffer_head can be reused when the file is extended again. So we end + * up keeping around invalidated buffers attached to transactions' + * BJ_Forget list just to stop checkpointing code from cleaning up + * the transaction this buffer was modified in. */ transaction = jh->b_transaction; if (transaction == NULL) { @@ -1905,13 +1914,9 @@ * committed, the buffer won't be needed any * longer. */ JBUFFER_TRACE(jh, "checkpointed: add to BJ_Forget"); - ret = __dispose_buffer(jh, + may_free = __dispose_buffer(jh, journal->j_running_transaction); - journal_put_journal_head(jh); - spin_unlock(&journal->j_list_lock); - jbd_unlock_bh_state(bh); - spin_unlock(&journal->j_state_lock); - return ret; + goto zap_buffer; } else { /* There is no currently-running transaction. So the * orphan record which we wrote for this file must have @@ -1919,13 +1924,9 @@ * the committing transaction, if it exists. */ if (journal->j_committing_transaction) { JBUFFER_TRACE(jh, "give to committing trans"); - ret = __dispose_buffer(jh, + may_free = __dispose_buffer(jh, journal->j_committing_transaction); - journal_put_journal_head(jh); - spin_unlock(&journal->j_list_lock); - jbd_unlock_bh_state(bh); - spin_unlock(&journal->j_state_lock); - return ret; + goto zap_buffer; } else { /* The orphan record's transaction has * committed. We can cleanse this buffer */ @@ -1946,10 +1947,26 @@ } /* * The buffer is committing, we simply cannot touch - * it. So we just set j_next_transaction to the - * running transaction (if there is one) and mark - * buffer as freed so that commit code knows it should - * clear dirty bits when it is done with the buffer. + * it. If the page is straddling i_size we have to wait + * for commit and try again. + */ + if (partial_page) { + tid_t tid = journal->j_committing_transaction->t_tid; + + journal_put_journal_head(jh); + spin_unlock(&journal->j_list_lock); + jbd_unlock_bh_state(bh); + spin_unlock(&journal->j_state_lock); + unlock_buffer(bh); + log_wait_commit(journal, tid); + lock_buffer(bh); + goto retry; + } + /* + * OK, buffer won't be reachable after truncate. We just set + * j_next_transaction to the running transaction (if there is + * one) and mark buffer as freed so that commit code knows it + * should clear dirty bits when it is done with the buffer. */ set_buffer_freed(bh); if (journal->j_running_transaction && buffer_jbddirty(bh)) @@ -1972,6 +1989,14 @@ } zap_buffer: + /* + * This is tricky. Although the buffer is truncated, it may be reused + * if blocksize < pagesize and it is attached to the page straddling + * EOF. Since the buffer might have been added to BJ_Forget list of the + * running transaction, journal_get_write_access() won't clear + * b_modified and credit accounting gets confused. So clear b_modified + * here. */ + jh->b_modified = 0; journal_put_journal_head(jh); zap_buffer_no_jh: spin_unlock(&journal->j_list_lock); @@ -2020,7 +2045,8 @@ if (offset <= curr_off) { /* This block is wholly outside the truncation point */ lock_buffer(bh); - may_free &= journal_unmap_buffer(journal, bh); + may_free &= journal_unmap_buffer(journal, bh, + offset > 0); unlock_buffer(bh); } curr_off = next_off; --- linux-3.2.0.orig/fs/jbd/recovery.c +++ linux-3.2.0/fs/jbd/recovery.c @@ -20,6 +20,7 @@ #include #include #include +#include #endif /* @@ -263,6 +264,9 @@ err2 = sync_blockdev(journal->j_fs_dev); if (!err) err = err2; + /* Flush disk caches to get replayed data on the permanent storage */ + if (journal->j_flags & JFS_BARRIER) + blkdev_issue_flush(journal->j_fs_dev, GFP_KERNEL, NULL); return err; } --- linux-3.2.0.orig/fs/jbd/commit.c +++ linux-3.2.0/fs/jbd/commit.c @@ -86,7 +86,12 @@ static void release_data_buffer(struct buffer_head *bh) { if (buffer_freed(bh)) { + WARN_ON_ONCE(buffer_dirty(bh)); clear_buffer_freed(bh); + clear_buffer_mapped(bh); + clear_buffer_new(bh); + clear_buffer_req(bh); + bh->b_bdev = NULL; release_buffer_page(bh); } else put_bh(bh); @@ -847,17 +852,35 @@ * there's no point in keeping a checkpoint record for * it. */ - /* A buffer which has been freed while still being - * journaled by a previous transaction may end up still - * being dirty here, but we want to avoid writing back - * that buffer in the future after the "add to orphan" - * operation been committed, That's not only a performance - * gain, it also stops aliasing problems if the buffer is - * left behind for writeback and gets reallocated for another - * use in a different page. */ - if (buffer_freed(bh) && !jh->b_next_transaction) { - clear_buffer_freed(bh); - clear_buffer_jbddirty(bh); + /* + * A buffer which has been freed while still being journaled by + * a previous transaction. + */ + if (buffer_freed(bh)) { + /* + * If the running transaction is the one containing + * "add to orphan" operation (b_next_transaction != + * NULL), we have to wait for that transaction to + * commit before we can really get rid of the buffer. + * So just clear b_modified to not confuse transaction + * credit accounting and refile the buffer to + * BJ_Forget of the running transaction. If the just + * committed transaction contains "add to orphan" + * operation, we can completely invalidate the buffer + * now. We are rather throughout in that since the + * buffer may be still accessible when blocksize < + * pagesize and it is attached to the last partial + * page. + */ + jh->b_modified = 0; + if (!jh->b_next_transaction) { + clear_buffer_freed(bh); + clear_buffer_jbddirty(bh); + clear_buffer_mapped(bh); + clear_buffer_new(bh); + clear_buffer_req(bh); + bh->b_bdev = NULL; + } } if (buffer_jbddirty(bh)) { --- linux-3.2.0.orig/fs/jbd/checkpoint.c +++ linux-3.2.0/fs/jbd/checkpoint.c @@ -453,8 +453,6 @@ * * Return <0 on error, 0 on success, 1 if there was nothing to clean up. * - * Called with the journal lock held. - * * This is the only part of the journaling code which really needs to be * aware of transaction aborts. Checkpointing involves writing to the * main filesystem area rather than to the journal, so it can proceed @@ -472,13 +470,14 @@ if (is_journal_aborted(journal)) return 1; - /* OK, work out the oldest transaction remaining in the log, and + /* + * OK, work out the oldest transaction remaining in the log, and * the log block it starts at. * * If the log is now empty, we need to work out which is the * next transaction ID we will write, and where it will - * start. */ - + * start. + */ spin_lock(&journal->j_state_lock); spin_lock(&journal->j_list_lock); transaction = journal->j_checkpoint_transactions; @@ -504,7 +503,25 @@ spin_unlock(&journal->j_state_lock); return 1; } + spin_unlock(&journal->j_state_lock); + + /* + * We need to make sure that any blocks that were recently written out + * --- perhaps by log_do_checkpoint() --- are flushed out before we + * drop the transactions from the journal. It's unlikely this will be + * necessary, especially with an appropriately sized journal, but we + * need this to guarantee correctness. Fortunately + * cleanup_journal_tail() doesn't get called all that often. + */ + if (journal->j_flags & JFS_BARRIER) + blkdev_issue_flush(journal->j_fs_dev, GFP_KERNEL, NULL); + spin_lock(&journal->j_state_lock); + if (!tid_gt(first_tid, journal->j_tail_sequence)) { + spin_unlock(&journal->j_state_lock); + /* Someone else cleaned up journal so return 0 */ + return 0; + } /* OK, update the superblock to recover the freed space. * Physical blocks come first: have we wrapped beyond the end of * the log? */ --- linux-3.2.0.orig/fs/fat/namei_vfat.c +++ linux-3.2.0/fs/fat/namei_vfat.c @@ -512,7 +512,8 @@ int charlen; if (utf8) { - *outlen = utf8s_to_utf16s(name, len, (wchar_t *)outname); + *outlen = utf8s_to_utf16s(name, len, UTF16_HOST_ENDIAN, + (wchar_t *) outname, FAT_LFN_LEN + 2); if (*outlen < 0) return *outlen; else if (*outlen > FAT_LFN_LEN) --- linux-3.2.0.orig/fs/fat/inode.c +++ linux-3.2.0/fs/fat/inode.c @@ -1238,6 +1238,19 @@ return 0; } +static unsigned long calc_fat_clusters(struct super_block *sb) +{ + struct msdos_sb_info *sbi = MSDOS_SB(sb); + + /* Divide first to avoid overflow */ + if (sbi->fat_bits != 12) { + unsigned long ent_per_sec = sb->s_blocksize * 8 / sbi->fat_bits; + return ent_per_sec * sbi->fat_length; + } + + return sbi->fat_length * sb->s_blocksize * 8 / sbi->fat_bits; +} + /* * Read the super block of an MS-DOS FS. */ @@ -1434,7 +1447,7 @@ sbi->fat_bits = (total_clusters > MAX_FAT12) ? 16 : 12; /* check that FAT table does not overflow */ - fat_clusters = sbi->fat_length * sb->s_blocksize * 8 / sbi->fat_bits; + fat_clusters = calc_fat_clusters(sb); total_clusters = min(total_clusters, fat_clusters - FAT_START_ENT); if (total_clusters > MAX_FAT(sb)) { if (!silent) --- linux-3.2.0.orig/fs/fscache/stats.c +++ linux-3.2.0/fs/fscache/stats.c @@ -276,5 +276,5 @@ .open = fscache_stats_open, .read = seq_read, .llseek = seq_lseek, - .release = seq_release, + .release = single_release, }; --- linux-3.2.0.orig/fs/cachefiles/rdwr.c +++ linux-3.2.0/fs/cachefiles/rdwr.c @@ -918,7 +918,7 @@ * own time */ dget(object->backer); mntget(cache->mnt); - file = dentry_open(object->backer, cache->mnt, O_RDWR, + file = dentry_open(object->backer, cache->mnt, O_RDWR | O_LARGEFILE, cache->cache_cred); if (IS_ERR(file)) { ret = PTR_ERR(file); --- linux-3.2.0.orig/fs/ocfs2/suballoc.c +++ linux-3.2.0/fs/ocfs2/suballoc.c @@ -600,7 +600,7 @@ ret = ocfs2_free_clusters(handle, cluster_ac->ac_inode, cluster_ac->ac_bh, le64_to_cpu(rec->e_blkno), - le32_to_cpu(rec->e_leaf_clusters)); + le16_to_cpu(rec->e_leaf_clusters)); if (ret) mlog_errno(ret); /* Try all the clusters to free */ @@ -642,7 +642,7 @@ * cluster groups will be staying in cache for the duration of * this operation. */ - ac->ac_allow_chain_relink = 0; + ac->ac_disable_chain_relink = 1; /* Claim the first region */ status = ocfs2_block_group_claim_bits(osb, handle, ac, min_bits, @@ -1628,7 +1628,7 @@ { unsigned int bpc = le16_to_cpu(cl->cl_bpc); unsigned int bitoff = le32_to_cpu(rec->e_cpos) * bpc; - unsigned int bitcount = le32_to_cpu(rec->e_leaf_clusters) * bpc; + unsigned int bitcount = le16_to_cpu(rec->e_leaf_clusters) * bpc; if (res->sr_bit_offset < bitoff) return 0; @@ -1823,7 +1823,7 @@ * Do this *after* figuring out how many bits we're taking out * of our target group. */ - if (ac->ac_allow_chain_relink && + if (!ac->ac_disable_chain_relink && (prev_group_bh) && (ocfs2_block_group_reasonably_empty(bg, res->sr_bits))) { status = ocfs2_relink_block_group(handle, alloc_inode, @@ -1928,7 +1928,6 @@ victim = ocfs2_find_victim_chain(cl); ac->ac_chain = victim; - ac->ac_allow_chain_relink = 1; status = ocfs2_search_chain(ac, handle, bits_wanted, min_bits, res, &bits_left); @@ -1947,7 +1946,7 @@ * searching each chain in order. Don't allow chain relinking * because we only calculate enough journal credits for one * relink per alloc. */ - ac->ac_allow_chain_relink = 0; + ac->ac_disable_chain_relink = 1; for (i = 0; i < le16_to_cpu(cl->cl_next_free_rec); i ++) { if (i == victim) continue; --- linux-3.2.0.orig/fs/ocfs2/suballoc.h +++ linux-3.2.0/fs/ocfs2/suballoc.h @@ -49,7 +49,7 @@ /* these are used by the chain search */ u16 ac_chain; - int ac_allow_chain_relink; + int ac_disable_chain_relink; group_search_t *ac_group_search; u64 ac_last_group; --- linux-3.2.0.orig/fs/ocfs2/dlmglue.c +++ linux-3.2.0/fs/ocfs2/dlmglue.c @@ -2545,6 +2545,7 @@ * everything is up to the caller :) */ status = ocfs2_should_refresh_lock_res(lockres); if (status < 0) { + ocfs2_cluster_unlock(osb, lockres, level); mlog_errno(status); goto bail; } @@ -2553,8 +2554,10 @@ ocfs2_complete_lock_res_refresh(lockres, status); - if (status < 0) + if (status < 0) { + ocfs2_cluster_unlock(osb, lockres, level); mlog_errno(status); + } ocfs2_track_lock_refresh(lockres); } bail: --- linux-3.2.0.orig/fs/ocfs2/file.c +++ linux-3.2.0/fs/ocfs2/file.c @@ -1950,7 +1950,7 @@ if (ret < 0) mlog_errno(ret); - if (file->f_flags & O_SYNC) + if (file && (file->f_flags & O_SYNC)) handle->h_sync = 1; ocfs2_commit_trans(osb, handle); @@ -2422,8 +2422,10 @@ unaligned_dio = 0; } - if (unaligned_dio) + if (unaligned_dio) { + ocfs2_iocb_clear_unaligned_aio(iocb); atomic_dec(&OCFS2_I(inode)->ip_unaligned_aio); + } out: if (rw_level != -1) --- linux-3.2.0.orig/fs/ocfs2/extent_map.c +++ linux-3.2.0/fs/ocfs2/extent_map.c @@ -791,7 +791,7 @@ &hole_size, &rec, &is_last); if (ret) { mlog_errno(ret); - goto out; + goto out_unlock; } if (rec.e_blkno == 0ULL) { --- linux-3.2.0.orig/fs/ocfs2/xattr.c +++ linux-3.2.0/fs/ocfs2/xattr.c @@ -6499,6 +6499,16 @@ } new_oi = OCFS2_I(args->new_inode); + /* + * Adjust extent record count to reserve space for extended attribute. + * Inline data count had been adjusted in ocfs2_duplicate_inline_data(). + */ + if (!(new_oi->ip_dyn_features & OCFS2_INLINE_DATA_FL) && + !(ocfs2_inode_is_fast_symlink(args->new_inode))) { + struct ocfs2_extent_list *el = &new_di->id2.i_list; + le16_add_cpu(&el->l_count, -(inline_size / + sizeof(struct ocfs2_extent_rec))); + } spin_lock(&new_oi->ip_lock); new_oi->ip_dyn_features |= OCFS2_HAS_XATTR_FL | OCFS2_INLINE_XATTR_FL; new_di->i_dyn_features = cpu_to_le16(new_oi->ip_dyn_features); @@ -7189,7 +7199,7 @@ struct buffer_head *dir_bh = NULL; ret = ocfs2_init_security_get(inode, dir, qstr, NULL); - if (!ret) { + if (ret) { mlog_errno(ret); goto leave; } --- linux-3.2.0.orig/fs/ocfs2/refcounttree.c +++ linux-3.2.0/fs/ocfs2/refcounttree.c @@ -1036,14 +1036,14 @@ tmp_el = left_path->p_node[subtree_root].el; blkno = left_path->p_node[subtree_root+1].bh->b_blocknr; - for (i = 0; i < le32_to_cpu(tmp_el->l_next_free_rec); i++) { + for (i = 0; i < le16_to_cpu(tmp_el->l_next_free_rec); i++) { if (le64_to_cpu(tmp_el->l_recs[i].e_blkno) == blkno) { *cpos_end = le32_to_cpu(tmp_el->l_recs[i+1].e_cpos); break; } } - BUG_ON(i == le32_to_cpu(tmp_el->l_next_free_rec)); + BUG_ON(i == le16_to_cpu(tmp_el->l_next_free_rec)); out: ocfs2_free_path(left_path); @@ -1468,7 +1468,7 @@ trace_ocfs2_divide_leaf_refcount_block( (unsigned long long)ref_leaf_bh->b_blocknr, - le32_to_cpu(rl->rl_count), le32_to_cpu(rl->rl_used)); + le16_to_cpu(rl->rl_count), le16_to_cpu(rl->rl_used)); /* * XXX: Improvement later. @@ -2411,7 +2411,7 @@ rb = (struct ocfs2_refcount_block *) prev_bh->b_data; - if (le64_to_cpu(rb->rf_records.rl_used) + + if (le16_to_cpu(rb->rf_records.rl_used) + recs_add > le16_to_cpu(rb->rf_records.rl_count)) ref_blocks++; @@ -2476,7 +2476,7 @@ if (prev_bh) { rb = (struct ocfs2_refcount_block *)prev_bh->b_data; - if (le64_to_cpu(rb->rf_records.rl_used) + recs_add > + if (le16_to_cpu(rb->rf_records.rl_used) + recs_add > le16_to_cpu(rb->rf_records.rl_count)) ref_blocks++; @@ -3629,7 +3629,7 @@ * one will split a refcount rec, so totally we need * clusters * 2 new refcount rec. */ - if (le64_to_cpu(rb->rf_records.rl_used) + clusters * 2 > + if (le16_to_cpu(rb->rf_records.rl_used) + clusters * 2 > le16_to_cpu(rb->rf_records.rl_count)) ref_blocks++; --- linux-3.2.0.orig/fs/ocfs2/alloc.c +++ linux-3.2.0/fs/ocfs2/alloc.c @@ -1134,7 +1134,7 @@ } el = path_leaf_el(path); - rec = &el->l_recs[le32_to_cpu(el->l_next_free_rec) - 1]; + rec = &el->l_recs[le16_to_cpu(el->l_next_free_rec) - 1]; ocfs2_adjust_rightmost_records(handle, et, path, rec); --- linux-3.2.0.orig/fs/ocfs2/aops.c +++ linux-3.2.0/fs/ocfs2/aops.c @@ -593,9 +593,9 @@ level = ocfs2_iocb_rw_locked_level(iocb); ocfs2_rw_unlock(inode, level); + inode_dio_done(inode); if (is_async) aio_complete(iocb, ret, 0); - inode_dio_done(inode); } /* --- linux-3.2.0.orig/fs/nfsd/nfs4proc.c +++ linux-3.2.0/fs/nfsd/nfs4proc.c @@ -193,6 +193,7 @@ do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_open *open) { struct svc_fh resfh; + int accmode; __be32 status; fh_init(&resfh, NFS4_FHSIZE); @@ -231,17 +232,17 @@ */ if (open->op_createmode == NFS4_CREATE_EXCLUSIVE && status == 0) open->op_bmval[1] = (FATTR4_WORD1_TIME_ACCESS | - FATTR4_WORD1_TIME_MODIFY); + FATTR4_WORD1_TIME_MODIFY); } else { status = nfsd_lookup(rqstp, current_fh, open->op_fname.data, open->op_fname.len, &resfh); fh_unlock(current_fh); - if (status) - goto out; - status = nfsd_check_obj_isreg(&resfh); } if (status) goto out; + status = nfsd_check_obj_isreg(&resfh); + if (status) + goto out; if (is_create_with_attrs(open) && open->op_acl != NULL) do_set_nfs4_acl(rqstp, &resfh, open->op_acl, open->op_bmval); @@ -252,9 +253,10 @@ /* set reply cache */ fh_copy_shallow(&open->op_openowner->oo_owner.so_replay.rp_openfh, &resfh.fh_handle); - if (!open->op_created) - status = do_open_permission(rqstp, current_fh, open, - NFSD_MAY_NOP); + accmode = NFSD_MAY_NOP; + if (open->op_created) + accmode |= NFSD_MAY_OWNER_OVERRIDE; + status = do_open_permission(rqstp, current_fh, open, accmode); out: fh_put(&resfh); @@ -265,6 +267,7 @@ do_open_fhandle(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_open *open) { __be32 status; + int accmode = 0; /* Only reclaims from previously confirmed clients are valid */ if ((status = nfs4_check_open_reclaim(&open->op_clientid))) @@ -282,9 +285,19 @@ open->op_truncate = (open->op_iattr.ia_valid & ATTR_SIZE) && (open->op_iattr.ia_size == 0); + /* + * In the delegation case, the client is telling us about an + * open that it *already* performed locally, some time ago. We + * should let it succeed now if possible. + * + * In the case of a CLAIM_FH open, on the other hand, the client + * may be counting on us to enforce permissions (the Linux 4.1 + * client uses this for normal opens, for example). + */ + if (open->op_claim_type == NFS4_OPEN_CLAIM_DELEG_CUR_FH) + accmode = NFSD_MAY_OWNER_OVERRIDE; - status = do_open_permission(rqstp, current_fh, open, - NFSD_MAY_OWNER_OVERRIDE); + status = do_open_permission(rqstp, current_fh, open, accmode); return status; } @@ -827,6 +840,7 @@ struct nfsd4_setattr *setattr) { __be32 status = nfs_ok; + int err; if (setattr->sa_iattr.ia_valid & ATTR_SIZE) { nfs4_lock_state(); @@ -838,9 +852,9 @@ return status; } } - status = mnt_want_write(cstate->current_fh.fh_export->ex_path.mnt); - if (status) - return status; + err = mnt_want_write(cstate->current_fh.fh_export->ex_path.mnt); + if (err) + return nfserrno(err); status = nfs_ok; status = check_attr_support(rqstp, cstate, setattr->sa_bmval, @@ -877,14 +891,14 @@ nfs4_lock_state(); status = nfs4_preprocess_stateid_op(cstate, stateid, WR_STATE, &filp); - if (filp) - get_file(filp); - nfs4_unlock_state(); - if (status) { + nfs4_unlock_state(); dprintk("NFSD: nfsd4_write: couldn't process stateid!\n"); return status; } + if (filp) + get_file(filp); + nfs4_unlock_state(); cnt = write->wr_buflen; write->wr_how_written = write->wr_stable_how; --- linux-3.2.0.orig/fs/nfsd/nfs4xdr.c +++ linux-3.2.0/fs/nfsd/nfs4xdr.c @@ -177,8 +177,8 @@ */ memcpy(p, argp->p, avail); /* step to next page */ - argp->p = page_address(argp->pagelist[0]); argp->pagelist++; + argp->p = page_address(argp->pagelist[0]); if (argp->pagelen < PAGE_SIZE) { argp->end = argp->p + (argp->pagelen>>2); argp->pagelen = 0; @@ -280,7 +280,7 @@ iattr->ia_valid |= ATTR_SIZE; } if (bmval[0] & FATTR4_WORD0_ACL) { - int nace; + u32 nace; struct nfs4_ace *ace; READ_BUF(4); len += 4; @@ -360,10 +360,7 @@ all 32 bits of 'nseconds'. */ READ_BUF(12); len += 12; - READ32(dummy32); - if (dummy32) - return nfserr_inval; - READ32(iattr->ia_atime.tv_sec); + READ64(iattr->ia_atime.tv_sec); READ32(iattr->ia_atime.tv_nsec); if (iattr->ia_atime.tv_nsec >= (u32)1000000000) return nfserr_inval; @@ -386,10 +383,7 @@ all 32 bits of 'nseconds'. */ READ_BUF(12); len += 12; - READ32(dummy32); - if (dummy32) - return nfserr_inval; - READ32(iattr->ia_mtime.tv_sec); + READ64(iattr->ia_mtime.tv_sec); READ32(iattr->ia_mtime.tv_nsec); if (iattr->ia_mtime.tv_nsec >= (u32)1000000000) return nfserr_inval; @@ -2236,7 +2230,7 @@ if (bmval0 & FATTR4_WORD0_CASE_INSENSITIVE) { if ((buflen -= 4) < 0) goto out_resource; - WRITE32(1); + WRITE32(0); } if (bmval0 & FATTR4_WORD0_CASE_PRESERVING) { if ((buflen -= 4) < 0) @@ -2374,8 +2368,7 @@ if (bmval1 & FATTR4_WORD1_TIME_ACCESS) { if ((buflen -= 12) < 0) goto out_resource; - WRITE32(0); - WRITE32(stat.atime.tv_sec); + WRITE64((s64)stat.atime.tv_sec); WRITE32(stat.atime.tv_nsec); } if (bmval1 & FATTR4_WORD1_TIME_DELTA) { @@ -2388,15 +2381,13 @@ if (bmval1 & FATTR4_WORD1_TIME_METADATA) { if ((buflen -= 12) < 0) goto out_resource; - WRITE32(0); - WRITE32(stat.ctime.tv_sec); + WRITE64((s64)stat.ctime.tv_sec); WRITE32(stat.ctime.tv_nsec); } if (bmval1 & FATTR4_WORD1_TIME_MODIFY) { if ((buflen -= 12) < 0) goto out_resource; - WRITE32(0); - WRITE32(stat.mtime.tv_sec); + WRITE64((s64)stat.mtime.tv_sec); WRITE32(stat.mtime.tv_nsec); } if (bmval1 & FATTR4_WORD1_MOUNTED_ON_FILEID) { @@ -2909,11 +2900,16 @@ len = maxcount; v = 0; while (len > 0) { - pn = resp->rqstp->rq_resused++; + pn = resp->rqstp->rq_resused; + if (!resp->rqstp->rq_respages[pn]) { /* ran out of pages */ + maxcount -= len; + break; + } resp->rqstp->rq_vec[v].iov_base = page_address(resp->rqstp->rq_respages[pn]); resp->rqstp->rq_vec[v].iov_len = len < PAGE_SIZE ? len : PAGE_SIZE; + resp->rqstp->rq_resused++; v++; len -= PAGE_SIZE; } @@ -2959,6 +2955,8 @@ return nfserr; if (resp->xbuf->page_len) return nfserr_resource; + if (!resp->rqstp->rq_respages[resp->rqstp->rq_resused]) + return nfserr_resource; page = page_address(resp->rqstp->rq_respages[resp->rqstp->rq_resused++]); @@ -3008,6 +3006,8 @@ return nfserr; if (resp->xbuf->page_len) return nfserr_resource; + if (!resp->rqstp->rq_respages[resp->rqstp->rq_resused]) + return nfserr_resource; RESERVE_SPACE(8); /* verifier */ savep = p; @@ -3411,7 +3411,7 @@ nfsd4_decode_stateid(argp, &si); valid = nfs4_validate_stateid(cl, &si); RESERVE_SPACE(4); - *p++ = htonl(valid); + *p++ = valid; resp->p = p; } nfs4_unlock_state(); --- linux-3.2.0.orig/fs/nfsd/export.c +++ linux-3.2.0/fs/nfsd/export.c @@ -87,7 +87,7 @@ struct svc_expkey key; struct svc_expkey *ek = NULL; - if (mesg[mlen-1] != '\n') + if (mlen < 1 || mesg[mlen-1] != '\n') return -EINVAL; mesg[mlen-1] = 0; @@ -401,7 +401,7 @@ int migrated, i, err; /* listsize */ - err = get_int(mesg, &fsloc->locations_count); + err = get_uint(mesg, &fsloc->locations_count); if (err) return err; if (fsloc->locations_count > MAX_FS_LOCATIONS) @@ -459,7 +459,7 @@ return -EINVAL; for (f = exp->ex_flavors; f < exp->ex_flavors + listsize; f++) { - err = get_int(mesg, &f->pseudoflavor); + err = get_uint(mesg, &f->pseudoflavor); if (err) return err; /* @@ -468,7 +468,7 @@ * problem at export time instead of when a client fails * to authenticate. */ - err = get_int(mesg, &f->flags); + err = get_uint(mesg, &f->flags); if (err) return err; /* Only some flags are allowed to differ between flavors: */ --- linux-3.2.0.orig/fs/nfsd/vfs.c +++ linux-3.2.0/fs/nfsd/vfs.c @@ -782,9 +782,10 @@ } *filp = dentry_open(dget(dentry), mntget(fhp->fh_export->ex_path.mnt), flags, current_cred()); - if (IS_ERR(*filp)) + if (IS_ERR(*filp)) { host_err = PTR_ERR(*filp); - else + *filp = NULL; + } else host_err = ima_file_check(*filp, access); out_nfserr: err = nfserrno(host_err); @@ -1439,7 +1440,7 @@ switch (createmode) { case NFS3_CREATE_UNCHECKED: if (! S_ISREG(dchild->d_inode->i_mode)) - err = nfserr_exist; + goto out; else if (truncp) { /* in nfsv4, we need to treat this case a little * differently. we don't want to truncate the @@ -1458,13 +1459,19 @@ case NFS3_CREATE_EXCLUSIVE: if ( dchild->d_inode->i_mtime.tv_sec == v_mtime && dchild->d_inode->i_atime.tv_sec == v_atime - && dchild->d_inode->i_size == 0 ) + && dchild->d_inode->i_size == 0 ) { + if (created) + *created = 1; break; + } case NFS4_CREATE_EXCLUSIVE4_1: if ( dchild->d_inode->i_mtime.tv_sec == v_mtime && dchild->d_inode->i_atime.tv_sec == v_atime - && dchild->d_inode->i_size == 0 ) + && dchild->d_inode->i_size == 0 ) { + if (created) + *created = 1; goto set_attr; + } /* fallthru */ case NFS3_CREATE_GUARDED: err = nfserr_exist; --- linux-3.2.0.orig/fs/nfsd/nfs3xdr.c +++ linux-3.2.0/fs/nfsd/nfs3xdr.c @@ -803,13 +803,13 @@ return p; } -static int +static __be32 compose_entry_fh(struct nfsd3_readdirres *cd, struct svc_fh *fhp, const char *name, int namlen) { struct svc_export *exp; struct dentry *dparent, *dchild; - int rv = 0; + __be32 rv = nfserr_noent; dparent = cd->fh.fh_dentry; exp = cd->fh.fh_export; @@ -817,26 +817,20 @@ if (isdotent(name, namlen)) { if (namlen == 2) { dchild = dget_parent(dparent); - if (dchild == dparent) { - /* filesystem root - cannot return filehandle for ".." */ - dput(dchild); - return -ENOENT; - } + /* filesystem root - cannot return filehandle for ".." */ + if (dchild == dparent) + goto out; } else dchild = dget(dparent); } else dchild = lookup_one_len(name, dparent, namlen); if (IS_ERR(dchild)) - return -ENOENT; - rv = -ENOENT; + return rv; if (d_mountpoint(dchild)) goto out; - rv = fh_compose(fhp, exp, dchild, &cd->fh); - if (rv) - goto out; if (!dchild->d_inode) goto out; - rv = 0; + rv = fh_compose(fhp, exp, dchild, &cd->fh); out: dput(dchild); return rv; @@ -845,7 +839,7 @@ static __be32 *encode_entryplus_baggage(struct nfsd3_readdirres *cd, __be32 *p, const char *name, int namlen) { struct svc_fh fh; - int err; + __be32 err; fh_init(&fh, NFS3_FHSIZE); err = compose_entry_fh(cd, &fh, name, namlen); --- linux-3.2.0.orig/fs/nfsd/nfs4state.c +++ linux-3.2.0/fs/nfsd/nfs4state.c @@ -188,13 +188,7 @@ { if (atomic_dec_and_test(&fp->fi_access[oflag])) { nfs4_file_put_fd(fp, oflag); - /* - * It's also safe to get rid of the RDWR open *if* - * we no longer have need of the other kind of access - * or if we already have the other kind of open: - */ - if (fp->fi_fds[1-oflag] - || atomic_read(&fp->fi_access[1 - oflag]) == 0) + if (atomic_read(&fp->fi_access[1 - oflag]) == 0) nfs4_file_put_fd(fp, O_RDWR); } } @@ -1009,6 +1003,8 @@ put_group_info(clp->cl_cred.cr_group_info); kfree(clp->cl_principal); kfree(clp->cl_name.data); + idr_remove_all(&clp->cl_stateids); + idr_destroy(&clp->cl_stateids); kfree(clp); } @@ -2309,7 +2305,7 @@ if (openowner_slab == NULL) goto out_nomem; lockowner_slab = kmem_cache_create("nfsd4_lockowners", - sizeof(struct nfs4_openowner), 0, 0, NULL); + sizeof(struct nfs4_lockowner), 0, 0, NULL); if (lockowner_slab == NULL) goto out_nomem; file_slab = kmem_cache_create("nfsd4_files", @@ -3673,6 +3669,7 @@ memcpy(&close->cl_stateid, &stp->st_stid.sc_stateid, sizeof(stateid_t)); nfsd4_close_open_stateid(stp); + release_last_closed_stateid(oo); oo->oo_last_closed_stid = stp; /* place unused nfs4_stateowners on so_close_lru list to be @@ -3809,16 +3806,29 @@ deny->ld_type = NFS4_WRITE_LT; } +static bool same_lockowner_ino(struct nfs4_lockowner *lo, struct inode *inode, clientid_t *clid, struct xdr_netobj *owner) +{ + struct nfs4_ol_stateid *lst; + + if (!same_owner_str(&lo->lo_owner, owner, clid)) + return false; + lst = list_first_entry(&lo->lo_owner.so_stateids, + struct nfs4_ol_stateid, st_perstateowner); + return lst->st_file->fi_inode == inode; +} + static struct nfs4_lockowner * find_lockowner_str(struct inode *inode, clientid_t *clid, struct xdr_netobj *owner) { unsigned int hashval = lock_ownerstr_hashval(inode, clid->cl_id, owner); + struct nfs4_lockowner *lo; struct nfs4_stateowner *op; list_for_each_entry(op, &lock_ownerstr_hashtbl[hashval], so_strhash) { - if (same_owner_str(op, owner, clid)) - return lockowner(op); + lo = lockowner(op); + if (same_lockowner_ino(lo, inode, clid, owner)) + return lo; } return NULL; } @@ -4067,16 +4077,14 @@ * vfs_test_lock. (Arguably perhaps test_lock should be done with an * inode operation.) */ -static int nfsd_test_lock(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file_lock *lock) +static __be32 nfsd_test_lock(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file_lock *lock) { struct file *file; - int err; - - err = nfsd_open(rqstp, fhp, S_IFREG, NFSD_MAY_READ, &file); - if (err) - return err; - err = vfs_test_lock(file, lock); - nfsd_close(file); + __be32 err = nfsd_open(rqstp, fhp, S_IFREG, NFSD_MAY_READ, &file); + if (!err) { + err = nfserrno(vfs_test_lock(file, lock)); + nfsd_close(file); + } return err; } @@ -4090,7 +4098,6 @@ struct inode *inode; struct file_lock file_lock; struct nfs4_lockowner *lo; - int error; __be32 status; if (locks_in_grace()) @@ -4136,12 +4143,10 @@ nfs4_transform_lock_offset(&file_lock); - status = nfs_ok; - error = nfsd_test_lock(rqstp, &cstate->current_fh, &file_lock); - if (error) { - status = nfserrno(error); + status = nfsd_test_lock(rqstp, &cstate->current_fh, &file_lock); + if (status) goto out; - } + if (file_lock.fl_type != F_UNLCK) { status = nfserr_denied; nfs4_set_lock_denied(&file_lock, &lockt->lt_denied); --- linux-3.2.0.orig/fs/nfsd/nfssvc.c +++ linux-3.2.0/fs/nfsd/nfssvc.c @@ -633,7 +633,7 @@ } /* Store reply in cache. */ - nfsd_cache_update(rqstp, proc->pc_cachetype, statp + 1); + nfsd_cache_update(rqstp, rqstp->rq_cachetype, statp + 1); return 1; } --- linux-3.2.0.orig/fs/afs/rxrpc.c +++ linux-3.2.0/fs/afs/rxrpc.c @@ -314,6 +314,7 @@ struct msghdr msg; struct kvec iov[1]; int ret; + struct sk_buff *skb; _enter("%x,{%d},", addr->s_addr, ntohs(call->port)); @@ -380,6 +381,8 @@ error_do_abort: rxrpc_kernel_abort_call(rxcall, RX_USER_ABORT); + while ((skb = skb_dequeue(&call->rx_queue))) + afs_free_skb(skb); rxrpc_kernel_end_call(rxcall); call->rxcall = NULL; error_kill_call: --- linux-3.2.0.orig/fs/afs/internal.h +++ linux-3.2.0/fs/afs/internal.h @@ -109,7 +109,7 @@ unsigned reply_size; /* current size of reply */ unsigned first_offset; /* offset into mapping[first] */ unsigned last_to; /* amount of mapping[last] */ - unsigned short offset; /* offset into received data store */ + unsigned offset; /* offset into received data store */ unsigned char unmarshall; /* unmarshalling phase */ bool incoming; /* T if incoming call */ bool send_pages; /* T if data from mapping should be sent */ --- linux-3.2.0.orig/fs/autofs4/autofs_i.h +++ linux-3.2.0/fs/autofs4/autofs_i.h @@ -268,6 +268,17 @@ struct autofs_info *autofs4_new_ino(struct autofs_sb_info *); void autofs4_clean_ino(struct autofs_info *); +static inline int autofs_prepare_pipe(struct file *pipe) +{ + if (!pipe->f_op || !pipe->f_op->write) + return -EINVAL; + if (!S_ISFIFO(pipe->f_dentry->d_inode->i_mode)) + return -EINVAL; + /* We want a packet pipe */ + pipe->f_flags |= O_DIRECT; + return 0; +} + /* Queue management functions */ int autofs4_wait(struct autofs_sb_info *,struct dentry *, enum autofs_notify); --- linux-3.2.0.orig/fs/autofs4/dev-ioctl.c +++ linux-3.2.0/fs/autofs4/dev-ioctl.c @@ -376,7 +376,7 @@ err = -EBADF; goto out; } - if (!pipe->f_op || !pipe->f_op->write) { + if (autofs_prepare_pipe(pipe) < 0) { err = -EPIPE; fput(pipe); goto out; --- linux-3.2.0.orig/fs/autofs4/inode.c +++ linux-3.2.0/fs/autofs4/inode.c @@ -292,7 +292,7 @@ printk("autofs: could not open pipe file descriptor\n"); goto fail_dput; } - if (!pipe->f_op || !pipe->f_op->write) + if (autofs_prepare_pipe(pipe) < 0) goto fail_fput; sbi->pipe = pipe; sbi->pipefd = pipefd; --- linux-3.2.0.orig/fs/autofs4/expire.c +++ linux-3.2.0/fs/autofs4/expire.c @@ -61,15 +61,6 @@ /* This is an autofs submount, we can't expire it */ if (autofs_type_indirect(sbi->type)) goto done; - - /* - * Otherwise it's an offset mount and we need to check - * if we can umount its mount, if there is one. - */ - if (!d_mountpoint(path.dentry)) { - status = 0; - goto done; - } } /* Update the expiry counter if fs is busy */ --- linux-3.2.0.orig/fs/autofs4/root.c +++ linux-3.2.0/fs/autofs4/root.c @@ -392,10 +392,12 @@ ino->flags |= AUTOFS_INF_PENDING; spin_unlock(&sbi->fs_lock); status = autofs4_mount_wait(dentry); - if (status) - return ERR_PTR(status); spin_lock(&sbi->fs_lock); ino->flags &= ~AUTOFS_INF_PENDING; + if (status) { + spin_unlock(&sbi->fs_lock); + return ERR_PTR(status); + } } done: if (!(ino->flags & AUTOFS_INF_EXPIRING)) { --- linux-3.2.0.orig/fs/squashfs/super.c +++ linux-3.2.0/fs/squashfs/super.c @@ -290,7 +290,7 @@ check_directory_table: /* Sanity check directory_table */ - if (msblk->directory_table >= next_table) { + if (msblk->directory_table > next_table) { err = -EINVAL; goto failed_mount; } --- linux-3.2.0.orig/fs/overlayfs/Kconfig +++ linux-3.2.0/fs/overlayfs/Kconfig @@ -0,0 +1,4 @@ +config OVERLAYFS_FS + tristate "Overlay filesystem support" + help + Add support for overlay filesystem. --- linux-3.2.0.orig/fs/overlayfs/super.c +++ linux-3.2.0/fs/overlayfs/super.c @@ -0,0 +1,664 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * 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 +#include "overlayfs.h" + +MODULE_AUTHOR("Miklos Szeredi "); +MODULE_DESCRIPTION("Overlay filesystem"); +MODULE_LICENSE("GPL"); + +struct ovl_config { + char *lowerdir; + char *upperdir; +}; + +/* private information held for overlayfs's superblock */ +struct ovl_fs { + struct vfsmount *upper_mnt; + struct vfsmount *lower_mnt; + /* pathnames of lower and upper dirs, for show_options */ + struct ovl_config config; +}; + +/* private information held for every overlayfs dentry */ +struct ovl_entry { + /* + * Keep "double reference" on upper dentries, so that + * d_delete() doesn't think it's OK to reset d_inode to NULL. + */ + struct dentry *__upperdentry; + struct dentry *lowerdentry; + union { + struct { + u64 version; + bool opaque; + }; + struct rcu_head rcu; + }; +}; + +const char *ovl_whiteout_xattr = "trusted.overlay.whiteout"; +const char *ovl_opaque_xattr = "trusted.overlay.opaque"; + + +enum ovl_path_type ovl_path_type(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + if (oe->__upperdentry) { + if (oe->lowerdentry && S_ISDIR(dentry->d_inode->i_mode)) + return OVL_PATH_MERGE; + else + return OVL_PATH_UPPER; + } else { + return OVL_PATH_LOWER; + } +} + +static struct dentry *ovl_upperdentry_dereference(struct ovl_entry *oe) +{ + struct dentry *upperdentry = ACCESS_ONCE(oe->__upperdentry); + smp_read_barrier_depends(); + return upperdentry; +} + +void ovl_path_upper(struct dentry *dentry, struct path *path) +{ + struct ovl_fs *ofs = dentry->d_sb->s_fs_info; + struct ovl_entry *oe = dentry->d_fsdata; + + path->mnt = ofs->upper_mnt; + path->dentry = ovl_upperdentry_dereference(oe); +} + +void ovl_path_lower(struct dentry *dentry, struct path *path) +{ + struct ovl_fs *ofs = dentry->d_sb->s_fs_info; + struct ovl_entry *oe = dentry->d_fsdata; + + path->mnt = ofs->lower_mnt; + path->dentry = oe->lowerdentry; +} + +enum ovl_path_type ovl_path_real(struct dentry *dentry, struct path *path) +{ + + enum ovl_path_type type = ovl_path_type(dentry); + + if (type == OVL_PATH_LOWER) + ovl_path_lower(dentry, path); + else + ovl_path_upper(dentry, path); + + return type; +} + +struct dentry *ovl_dentry_upper(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + return ovl_upperdentry_dereference(oe); +} + +struct dentry *ovl_dentry_lower(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + return oe->lowerdentry; +} + +struct dentry *ovl_dentry_real(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + struct dentry *realdentry; + + realdentry = ovl_upperdentry_dereference(oe); + if (!realdentry) + realdentry = oe->lowerdentry; + + return realdentry; +} + +struct dentry *ovl_entry_real(struct ovl_entry *oe, bool *is_upper) +{ + struct dentry *realdentry; + + realdentry = ovl_upperdentry_dereference(oe); + if (realdentry) { + *is_upper = true; + } else { + realdentry = oe->lowerdentry; + *is_upper = false; + } + return realdentry; +} + +bool ovl_dentry_is_opaque(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + return oe->opaque; +} + +void ovl_dentry_set_opaque(struct dentry *dentry, bool opaque) +{ + struct ovl_entry *oe = dentry->d_fsdata; + oe->opaque = opaque; +} + +void ovl_dentry_update(struct dentry *dentry, struct dentry *upperdentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + WARN_ON(!mutex_is_locked(&upperdentry->d_parent->d_inode->i_mutex)); + WARN_ON(oe->__upperdentry); + BUG_ON(!upperdentry->d_inode); + smp_wmb(); + oe->__upperdentry = dget(upperdentry); +} + +void ovl_dentry_version_inc(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + WARN_ON(!mutex_is_locked(&dentry->d_inode->i_mutex)); + oe->version++; +} + +u64 ovl_dentry_version_get(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + WARN_ON(!mutex_is_locked(&dentry->d_inode->i_mutex)); + return oe->version; +} + +bool ovl_is_whiteout(struct dentry *dentry) +{ + int res; + char val; + + if (!dentry) + return false; + if (!dentry->d_inode) + return false; + if (!S_ISLNK(dentry->d_inode->i_mode)) + return false; + + res = vfs_getxattr(dentry, ovl_whiteout_xattr, &val, 1); + if (res == 1 && val == 'y') + return true; + + return false; +} + +static bool ovl_is_opaquedir(struct dentry *dentry) +{ + int res; + char val; + + if (!S_ISDIR(dentry->d_inode->i_mode)) + return false; + + res = vfs_getxattr(dentry, ovl_opaque_xattr, &val, 1); + if (res == 1 && val == 'y') + return true; + + return false; +} + +static void ovl_entry_free(struct rcu_head *head) +{ + struct ovl_entry *oe = container_of(head, struct ovl_entry, rcu); + kfree(oe); +} + +static void ovl_dentry_release(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + if (oe) { + dput(oe->__upperdentry); + dput(oe->__upperdentry); + dput(oe->lowerdentry); + call_rcu(&oe->rcu, ovl_entry_free); + } +} + +const struct dentry_operations ovl_dentry_operations = { + .d_release = ovl_dentry_release, +}; + +static struct ovl_entry *ovl_alloc_entry(void) +{ + return kzalloc(sizeof(struct ovl_entry), GFP_KERNEL); +} + +static inline struct dentry *ovl_lookup_real(struct dentry *dir, + struct qstr *name) +{ + struct dentry *dentry; + + mutex_lock(&dir->d_inode->i_mutex); + dentry = lookup_one_len(name->name, dir, name->len); + mutex_unlock(&dir->d_inode->i_mutex); + + if (IS_ERR(dentry)) { + if (PTR_ERR(dentry) == -ENOENT) + dentry = NULL; + } else if (!dentry->d_inode) { + dput(dentry); + dentry = NULL; + } + return dentry; +} + +static int ovl_do_lookup(struct dentry *dentry) +{ + struct ovl_entry *oe; + struct dentry *upperdir; + struct dentry *lowerdir; + struct dentry *upperdentry = NULL; + struct dentry *lowerdentry = NULL; + struct inode *inode = NULL; + int err; + + err = -ENOMEM; + oe = ovl_alloc_entry(); + if (!oe) + goto out; + + upperdir = ovl_dentry_upper(dentry->d_parent); + lowerdir = ovl_dentry_lower(dentry->d_parent); + + if (upperdir) { + upperdentry = ovl_lookup_real(upperdir, &dentry->d_name); + err = PTR_ERR(upperdentry); + if (IS_ERR(upperdentry)) + goto out_put_dir; + + if (lowerdir && upperdentry && + (S_ISLNK(upperdentry->d_inode->i_mode) || + S_ISDIR(upperdentry->d_inode->i_mode))) { + const struct cred *old_cred; + struct cred *override_cred; + + err = -ENOMEM; + override_cred = prepare_creds(); + if (!override_cred) + goto out_dput_upper; + + /* CAP_SYS_ADMIN needed for getxattr */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + old_cred = override_creds(override_cred); + + if (ovl_is_opaquedir(upperdentry)) { + oe->opaque = true; + } else if (ovl_is_whiteout(upperdentry)) { + dput(upperdentry); + upperdentry = NULL; + oe->opaque = true; + } + revert_creds(old_cred); + put_cred(override_cred); + } + } + if (lowerdir && !oe->opaque) { + lowerdentry = ovl_lookup_real(lowerdir, &dentry->d_name); + err = PTR_ERR(lowerdentry); + if (IS_ERR(lowerdentry)) + goto out_dput_upper; + } + + if (lowerdentry && upperdentry && + (!S_ISDIR(upperdentry->d_inode->i_mode) || + !S_ISDIR(lowerdentry->d_inode->i_mode))) { + dput(lowerdentry); + lowerdentry = NULL; + oe->opaque = true; + } + + if (lowerdentry || upperdentry) { + struct dentry *realdentry; + + realdentry = upperdentry ? upperdentry : lowerdentry; + err = -ENOMEM; + inode = ovl_new_inode(dentry->d_sb, realdentry->d_inode->i_mode, + oe); + if (!inode) + goto out_dput; + } + + if (upperdentry) + oe->__upperdentry = dget(upperdentry); + + if (lowerdentry) + oe->lowerdentry = lowerdentry; + + dentry->d_fsdata = oe; + dentry->d_op = &ovl_dentry_operations; + d_add(dentry, inode); + + return 0; + +out_dput: + dput(lowerdentry); +out_dput_upper: + dput(upperdentry); +out_put_dir: + kfree(oe); +out: + return err; +} + +struct dentry *ovl_lookup(struct inode *dir, struct dentry *dentry, + struct nameidata *nd) +{ + int err = ovl_do_lookup(dentry); + + if (err) + return ERR_PTR(err); + + return NULL; +} + +struct file *ovl_path_open(struct path *path, int flags) +{ + path_get(path); + return dentry_open(path->dentry, path->mnt, flags, current_cred()); +} + +static void ovl_put_super(struct super_block *sb) +{ + struct ovl_fs *ufs = sb->s_fs_info; + + if (!(sb->s_flags & MS_RDONLY)) + mnt_drop_write(ufs->upper_mnt); + + mntput(ufs->upper_mnt); + mntput(ufs->lower_mnt); + + kfree(ufs->config.lowerdir); + kfree(ufs->config.upperdir); + kfree(ufs); +} + +static int ovl_remount_fs(struct super_block *sb, int *flagsp, char *data) +{ + int flags = *flagsp; + struct ovl_fs *ufs = sb->s_fs_info; + + /* When remounting rw or ro, we need to adjust the write access to the + * upper fs. + */ + if (((flags ^ sb->s_flags) & MS_RDONLY) == 0) + /* No change to readonly status */ + return 0; + + if (flags & MS_RDONLY) { + mnt_drop_write(ufs->upper_mnt); + return 0; + } else + return mnt_want_write(ufs->upper_mnt); +} + +/** + * ovl_statfs + * @sb: The overlayfs super block + * @buf: The struct kstatfs to fill in with stats + * + * Get the filesystem statistics. As writes always target the upper layer + * filesystem pass the statfs to the same filesystem. + */ +static int ovl_statfs(struct dentry *dentry, struct kstatfs *buf) +{ + struct dentry *root_dentry = dentry->d_sb->s_root; + struct path path; + ovl_path_upper(root_dentry, &path); + + if (!path.dentry->d_sb->s_op->statfs) + return -ENOSYS; + return path.dentry->d_sb->s_op->statfs(path.dentry, buf); +} + +/** + * ovl_show_options + * + * Prints the mount options for a given superblock. + * Returns zero; does not fail. + */ +static int ovl_show_options(struct seq_file *m, struct vfsmount *mnt) +{ + struct super_block *sb = mnt->mnt_sb; + struct ovl_fs *ufs = sb->s_fs_info; + + seq_printf(m, ",lowerdir=%s", ufs->config.lowerdir); + seq_printf(m, ",upperdir=%s", ufs->config.upperdir); + return 0; +} + +static const struct super_operations ovl_super_operations = { + .put_super = ovl_put_super, + .remount_fs = ovl_remount_fs, + .statfs = ovl_statfs, + .show_options = ovl_show_options, +}; + +enum { + Opt_lowerdir, + Opt_upperdir, + Opt_err, +}; + +static const match_table_t ovl_tokens = { + {Opt_lowerdir, "lowerdir=%s"}, + {Opt_upperdir, "upperdir=%s"}, + {Opt_err, NULL} +}; + +static int ovl_parse_opt(char *opt, struct ovl_config *config) +{ + char *p; + + config->upperdir = NULL; + config->lowerdir = NULL; + + while ((p = strsep(&opt, ",")) != NULL) { + int token; + substring_t args[MAX_OPT_ARGS]; + + if (!*p) + continue; + + token = match_token(p, ovl_tokens, args); + switch (token) { + case Opt_upperdir: + kfree(config->upperdir); + config->upperdir = match_strdup(&args[0]); + if (!config->upperdir) + return -ENOMEM; + break; + + case Opt_lowerdir: + kfree(config->lowerdir); + config->lowerdir = match_strdup(&args[0]); + if (!config->lowerdir) + return -ENOMEM; + break; + + default: + return -EINVAL; + } + } + return 0; +} + +static int ovl_fill_super(struct super_block *sb, void *data, int silent) +{ + struct path lowerpath; + struct path upperpath; + struct inode *root_inode; + struct dentry *root_dentry; + struct ovl_entry *oe; + struct ovl_fs *ufs; + int err; + + err = -ENOMEM; + ufs = kmalloc(sizeof(struct ovl_fs), GFP_KERNEL); + if (!ufs) + goto out; + + err = ovl_parse_opt((char *) data, &ufs->config); + if (err) + goto out_free_ufs; + + err = -EINVAL; + if (!ufs->config.upperdir || !ufs->config.lowerdir) { + printk(KERN_ERR "overlayfs: missing upperdir or lowerdir\n"); + goto out_free_config; + } + + oe = ovl_alloc_entry(); + if (oe == NULL) + goto out_free_config; + + root_inode = ovl_new_inode(sb, S_IFDIR, oe); + if (!root_inode) + goto out_free_oe; + + err = kern_path(ufs->config.upperdir, LOOKUP_FOLLOW, &upperpath); + if (err) + goto out_put_root; + + err = kern_path(ufs->config.lowerdir, LOOKUP_FOLLOW, &lowerpath); + if (err) + goto out_put_upperpath; + + err = -ENOTDIR; + if (!S_ISDIR(upperpath.dentry->d_inode->i_mode) || + !S_ISDIR(lowerpath.dentry->d_inode->i_mode)) + goto out_put_lowerpath; + + sb->s_stack_depth = max(upperpath.mnt->mnt_sb->s_stack_depth, + lowerpath.mnt->mnt_sb->s_stack_depth) + 1; + + err = -EINVAL; + if (sb->s_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) { + printk(KERN_ERR "overlayfs: maximum fs stacking depth exceeded\n"); + goto out_put_lowerpath; + } + + + ufs->upper_mnt = clone_private_mount(&upperpath); + err = PTR_ERR(ufs->upper_mnt); + if (IS_ERR(ufs->upper_mnt)) { + printk(KERN_ERR "overlayfs: failed to clone upperpath\n"); + goto out_put_lowerpath; + } + + ufs->lower_mnt = clone_private_mount(&lowerpath); + err = PTR_ERR(ufs->lower_mnt); + if (IS_ERR(ufs->lower_mnt)) { + printk(KERN_ERR "overlayfs: failed to clone lowerpath\n"); + goto out_put_upper_mnt; + } + + /* + * Make lower_mnt R/O. That way fchmod/fchown on lower file + * will fail instead of modifying lower fs. + */ + ufs->lower_mnt->mnt_flags |= MNT_READONLY; + + /* If the upper fs is r/o, we mark overlayfs r/o too */ + if (ufs->upper_mnt->mnt_sb->s_flags & MS_RDONLY) + sb->s_flags |= MS_RDONLY; + + if (!(sb->s_flags & MS_RDONLY)) { + err = mnt_want_write(ufs->upper_mnt); + if (err) + goto out_put_lower_mnt; + } + + err = -ENOMEM; + root_dentry = d_alloc_root(root_inode); + if (!root_dentry) + goto out_drop_write; + + mntput(upperpath.mnt); + mntput(lowerpath.mnt); + + oe->__upperdentry = dget(upperpath.dentry); + oe->lowerdentry = lowerpath.dentry; + + root_dentry->d_fsdata = oe; + root_dentry->d_op = &ovl_dentry_operations; + + sb->s_op = &ovl_super_operations; + sb->s_root = root_dentry; + sb->s_fs_info = ufs; + + return 0; + +out_drop_write: + if (!(sb->s_flags & MS_RDONLY)) + mnt_drop_write(ufs->upper_mnt); +out_put_lower_mnt: + mntput(ufs->lower_mnt); +out_put_upper_mnt: + mntput(ufs->upper_mnt); +out_put_lowerpath: + path_put(&lowerpath); +out_put_upperpath: + path_put(&upperpath); +out_put_root: + iput(root_inode); +out_free_oe: + kfree(oe); +out_free_config: + kfree(ufs->config.lowerdir); + kfree(ufs->config.upperdir); +out_free_ufs: + kfree(ufs); +out: + return err; +} + +static struct dentry *ovl_mount(struct file_system_type *fs_type, int flags, + const char *dev_name, void *raw_data) +{ + return mount_nodev(fs_type, flags, raw_data, ovl_fill_super); +} + +static struct file_system_type ovl_fs_type = { + .owner = THIS_MODULE, + .name = "overlayfs", + .mount = ovl_mount, + .kill_sb = kill_anon_super, +}; + +static int __init ovl_init(void) +{ + return register_filesystem(&ovl_fs_type); +} + +static void __exit ovl_exit(void) +{ + unregister_filesystem(&ovl_fs_type); +} + +module_init(ovl_init); +module_exit(ovl_exit); --- linux-3.2.0.orig/fs/overlayfs/Makefile +++ linux-3.2.0/fs/overlayfs/Makefile @@ -0,0 +1,7 @@ +# +# Makefile for the overlay filesystem. +# + +obj-$(CONFIG_OVERLAYFS_FS) += overlayfs.o + +overlayfs-objs := super.o inode.o dir.o readdir.o copy_up.o --- linux-3.2.0.orig/fs/overlayfs/inode.c +++ linux-3.2.0/fs/overlayfs/inode.c @@ -0,0 +1,391 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * 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 "overlayfs.h" + +int ovl_setattr(struct dentry *dentry, struct iattr *attr) +{ + struct dentry *upperdentry; + int err; + + if ((attr->ia_valid & ATTR_SIZE) && !ovl_dentry_upper(dentry)) + err = ovl_copy_up_truncate(dentry, attr->ia_size); + else + err = ovl_copy_up(dentry); + if (err) + return err; + + upperdentry = ovl_dentry_upper(dentry); + + if (attr->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID)) + attr->ia_valid &= ~ATTR_MODE; + + mutex_lock(&upperdentry->d_inode->i_mutex); + err = notify_change(upperdentry, attr); + mutex_unlock(&upperdentry->d_inode->i_mutex); + + return err; +} + +static int ovl_getattr(struct vfsmount *mnt, struct dentry *dentry, + struct kstat *stat) +{ + struct path realpath; + + ovl_path_real(dentry, &realpath); + return vfs_getattr(realpath.mnt, realpath.dentry, stat); +} + +int ovl_permission(struct inode *inode, int mask) +{ + struct ovl_entry *oe; + struct dentry *alias = NULL; + struct inode *realinode; + struct dentry *realdentry; + bool is_upper; + int err; + + if (S_ISDIR(inode->i_mode)) { + oe = inode->i_private; + } else if (mask & MAY_NOT_BLOCK) { + return -ECHILD; + } else { + /* + * For non-directories find an alias and get the info + * from there. + */ + spin_lock(&inode->i_lock); + if (WARN_ON(list_empty(&inode->i_dentry))) { + spin_unlock(&inode->i_lock); + return -ENOENT; + } + alias = list_entry(inode->i_dentry.next, + struct dentry, d_alias); + dget(alias); + spin_unlock(&inode->i_lock); + oe = alias->d_fsdata; + } + + realdentry = ovl_entry_real(oe, &is_upper); + + /* Careful in RCU walk mode */ + realinode = ACCESS_ONCE(realdentry->d_inode); + if (!realinode) { + WARN_ON(!(mask & MAY_NOT_BLOCK)); + err = -ENOENT; + goto out_dput; + } + + if (mask & MAY_WRITE) { + umode_t mode = realinode->i_mode; + + /* + * Writes will always be redirected to upper layer, so + * ignore lower layer being read-only. + * + * If the overlay itself is read-only then proceed + * with the permission check, don't return EROFS. + * This will only happen if this is the lower layer of + * another overlayfs. + * + * If upper fs becomes read-only after the overlay was + * constructed return EROFS to prevent modification of + * upper layer. + */ + err = -EROFS; + if (is_upper && !IS_RDONLY(inode) && IS_RDONLY(realinode) && + (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode))) + goto out_dput; + + /* + * Nobody gets write access to an immutable file. + */ + err = -EACCES; + if (IS_IMMUTABLE(realinode)) + goto out_dput; + } + + if (realinode->i_op->permission) + err = realinode->i_op->permission(realinode, mask); + else + err = generic_permission(realinode, mask); + + if (!err) + err = devcgroup_inode_permission(realinode, mask); + if (!err) + err = security_inode_permission(realinode, mask); +out_dput: + dput(alias); + return err; +} + + +struct ovl_link_data { + struct dentry *realdentry; + void *cookie; +}; + +static void *ovl_follow_link(struct dentry *dentry, struct nameidata *nd) +{ + void *ret; + struct dentry *realdentry; + struct inode *realinode; + + realdentry = ovl_dentry_real(dentry); + realinode = realdentry->d_inode; + + if (WARN_ON(!realinode->i_op->follow_link)) + return ERR_PTR(-EPERM); + + ret = realinode->i_op->follow_link(realdentry, nd); + if (IS_ERR(ret)) + return ret; + + if (realinode->i_op->put_link) { + struct ovl_link_data *data; + + data = kmalloc(sizeof(struct ovl_link_data), GFP_KERNEL); + if (!data) { + realinode->i_op->put_link(realdentry, nd, ret); + return ERR_PTR(-ENOMEM); + } + data->realdentry = realdentry; + data->cookie = ret; + + return data; + } else { + return NULL; + } +} + +static void ovl_put_link(struct dentry *dentry, struct nameidata *nd, void *c) +{ + struct inode *realinode; + struct ovl_link_data *data = c; + + if (!data) + return; + + realinode = data->realdentry->d_inode; + realinode->i_op->put_link(data->realdentry, nd, data->cookie); + kfree(data); +} + +static int ovl_readlink(struct dentry *dentry, char __user *buf, int bufsiz) +{ + struct path realpath; + struct inode *realinode; + + ovl_path_real(dentry, &realpath); + realinode = realpath.dentry->d_inode; + + if (!realinode->i_op->readlink) + return -EINVAL; + + touch_atime(realpath.mnt, realpath.dentry); + + return realinode->i_op->readlink(realpath.dentry, buf, bufsiz); +} + + +static bool ovl_is_private_xattr(const char *name) +{ + return strncmp(name, "trusted.overlay.", 14) == 0; +} + +int ovl_setxattr(struct dentry *dentry, const char *name, + const void *value, size_t size, int flags) +{ + int err; + struct dentry *upperdentry; + + if (ovl_is_private_xattr(name)) + return -EPERM; + + err = ovl_copy_up(dentry); + if (err) + return err; + + upperdentry = ovl_dentry_upper(dentry); + return vfs_setxattr(upperdentry, name, value, size, flags); +} + +ssize_t ovl_getxattr(struct dentry *dentry, const char *name, + void *value, size_t size) +{ + if (ovl_path_type(dentry->d_parent) == OVL_PATH_MERGE && + ovl_is_private_xattr(name)) + return -ENODATA; + + return vfs_getxattr(ovl_dentry_real(dentry), name, value, size); +} + +ssize_t ovl_listxattr(struct dentry *dentry, char *list, size_t size) +{ + ssize_t res; + int off; + + res = vfs_listxattr(ovl_dentry_real(dentry), list, size); + if (res <= 0 || size == 0) + return res; + + if (ovl_path_type(dentry->d_parent) != OVL_PATH_MERGE) + return res; + + /* filter out private xattrs */ + for (off = 0; off < res;) { + char *s = list + off; + size_t slen = strlen(s) + 1; + + BUG_ON(off + slen > res); + + if (ovl_is_private_xattr(s)) { + res -= slen; + memmove(s, s + slen, res - off); + } else { + off += slen; + } + } + + return res; +} + +int ovl_removexattr(struct dentry *dentry, const char *name) +{ + int err; + struct path realpath; + enum ovl_path_type type; + + if (ovl_path_type(dentry->d_parent) == OVL_PATH_MERGE && + ovl_is_private_xattr(name)) + return -ENODATA; + + type = ovl_path_real(dentry, &realpath); + if (type == OVL_PATH_LOWER) { + err = vfs_getxattr(realpath.dentry, name, NULL, 0); + if (err < 0) + return err; + + err = ovl_copy_up(dentry); + if (err) + return err; + + ovl_path_upper(dentry, &realpath); + } + + return vfs_removexattr(realpath.dentry, name); +} + +static bool ovl_open_need_copy_up(int flags, enum ovl_path_type type, + struct dentry *realdentry) +{ + if (type != OVL_PATH_LOWER) + return false; + + if (special_file(realdentry->d_inode->i_mode)) + return false; + + if (!(OPEN_FMODE(flags) & FMODE_WRITE) && !(flags & O_TRUNC)) + return false; + + return true; +} + +static struct file *ovl_open(struct dentry *dentry, struct file *file, + const struct cred *cred) +{ + int err; + struct path realpath; + enum ovl_path_type type; + + type = ovl_path_real(dentry, &realpath); + if (ovl_open_need_copy_up(file->f_flags, type, realpath.dentry)) { + if (file->f_flags & O_TRUNC) + err = ovl_copy_up_truncate(dentry, 0); + else + err = ovl_copy_up(dentry); + if (err) + return ERR_PTR(err); + + ovl_path_upper(dentry, &realpath); + } + + return vfs_open(&realpath, file, cred); +} + +static const struct inode_operations ovl_file_inode_operations = { + .setattr = ovl_setattr, + .permission = ovl_permission, + .getattr = ovl_getattr, + .setxattr = ovl_setxattr, + .getxattr = ovl_getxattr, + .listxattr = ovl_listxattr, + .removexattr = ovl_removexattr, + .open = ovl_open, +}; + +static const struct inode_operations ovl_symlink_inode_operations = { + .setattr = ovl_setattr, + .follow_link = ovl_follow_link, + .put_link = ovl_put_link, + .readlink = ovl_readlink, + .getattr = ovl_getattr, + .setxattr = ovl_setxattr, + .getxattr = ovl_getxattr, + .listxattr = ovl_listxattr, + .removexattr = ovl_removexattr, +}; + +struct inode *ovl_new_inode(struct super_block *sb, umode_t mode, + struct ovl_entry *oe) +{ + struct inode *inode; + + inode = new_inode(sb); + if (!inode) + return NULL; + + mode &= S_IFMT; + + inode->i_ino = get_next_ino(); + inode->i_mode = mode; + inode->i_flags |= S_NOATIME | S_NOCMTIME; + + switch (mode) { + case S_IFDIR: + inode->i_private = oe; + inode->i_op = &ovl_dir_inode_operations; + inode->i_fop = &ovl_dir_operations; + break; + + case S_IFLNK: + inode->i_op = &ovl_symlink_inode_operations; + break; + + case S_IFREG: + case S_IFSOCK: + case S_IFBLK: + case S_IFCHR: + case S_IFIFO: + inode->i_op = &ovl_file_inode_operations; + break; + + default: + WARN(1, "illegal file type: %i\n", mode); + inode = NULL; + } + + return inode; + +} --- linux-3.2.0.orig/fs/overlayfs/dir.c +++ linux-3.2.0/fs/overlayfs/dir.c @@ -0,0 +1,596 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * 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 "overlayfs.h" + +static const char *ovl_whiteout_symlink = "(overlay-whiteout)"; + +static int ovl_whiteout(struct dentry *upperdir, struct dentry *dentry) +{ + int err; + struct dentry *newdentry; + const struct cred *old_cred; + struct cred *override_cred; + + /* FIXME: recheck lower dentry to see if whiteout is really needed */ + + err = -ENOMEM; + override_cred = prepare_creds(); + if (!override_cred) + goto out; + + /* + * CAP_SYS_ADMIN for setxattr + * CAP_DAC_OVERRIDE for symlink creation + * CAP_FOWNER for unlink in sticky directory + */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE); + cap_raise(override_cred->cap_effective, CAP_FOWNER); + override_cred->fsuid = 0; + override_cred->fsgid = 0; + old_cred = override_creds(override_cred); + + newdentry = lookup_one_len(dentry->d_name.name, upperdir, + dentry->d_name.len); + err = PTR_ERR(newdentry); + if (IS_ERR(newdentry)) + goto out_put_cred; + + /* Just been removed within the same locked region */ + WARN_ON(newdentry->d_inode); + + err = vfs_symlink(upperdir->d_inode, newdentry, ovl_whiteout_symlink); + if (err) + goto out_dput; + + ovl_dentry_version_inc(dentry->d_parent); + + err = vfs_setxattr(newdentry, ovl_whiteout_xattr, "y", 1, 0); + if (err) + vfs_unlink(upperdir->d_inode, newdentry); + +out_dput: + dput(newdentry); +out_put_cred: + revert_creds(old_cred); + put_cred(override_cred); +out: + if (err) { + /* + * There's no way to recover from failure to whiteout. + * What should we do? Log a big fat error and... ? + */ + printk(KERN_ERR "overlayfs: ERROR - failed to whiteout '%s'\n", + dentry->d_name.name); + } + + return err; +} + +static struct dentry *ovl_lookup_create(struct dentry *upperdir, + struct dentry *template) +{ + int err; + struct dentry *newdentry; + struct qstr *name = &template->d_name; + + newdentry = lookup_one_len(name->name, upperdir, name->len); + if (IS_ERR(newdentry)) + return newdentry; + + if (newdentry->d_inode) { + const struct cred *old_cred; + struct cred *override_cred; + + /* No need to check whiteout if lower parent is non-existent */ + err = -EEXIST; + if (!ovl_dentry_lower(template->d_parent)) + goto out_dput; + + if (!S_ISLNK(newdentry->d_inode->i_mode)) + goto out_dput; + + err = -ENOMEM; + override_cred = prepare_creds(); + if (!override_cred) + goto out_dput; + + /* + * CAP_SYS_ADMIN for getxattr + * CAP_FOWNER for unlink in sticky directory + */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + cap_raise(override_cred->cap_effective, CAP_FOWNER); + old_cred = override_creds(override_cred); + + err = -EEXIST; + if (ovl_is_whiteout(newdentry)) + err = vfs_unlink(upperdir->d_inode, newdentry); + + revert_creds(old_cred); + put_cred(override_cred); + if (err) + goto out_dput; + + dput(newdentry); + newdentry = lookup_one_len(name->name, upperdir, name->len); + if (IS_ERR(newdentry)) { + ovl_whiteout(upperdir, template); + return newdentry; + } + + /* + * Whiteout just been successfully removed, parent + * i_mutex is still held, there's no way the lookup + * could return positive. + */ + WARN_ON(newdentry->d_inode); + } + + return newdentry; + +out_dput: + dput(newdentry); + return ERR_PTR(err); +} + +struct dentry *ovl_upper_create(struct dentry *upperdir, struct dentry *dentry, + struct kstat *stat, const char *link) +{ + int err; + struct dentry *newdentry; + struct inode *dir = upperdir->d_inode; + + newdentry = ovl_lookup_create(upperdir, dentry); + if (IS_ERR(newdentry)) + goto out; + + switch (stat->mode & S_IFMT) { + case S_IFREG: + err = vfs_create(dir, newdentry, stat->mode, NULL); + break; + + case S_IFDIR: + err = vfs_mkdir(dir, newdentry, stat->mode); + break; + + case S_IFCHR: + case S_IFBLK: + case S_IFIFO: + case S_IFSOCK: + err = vfs_mknod(dir, newdentry, stat->mode, stat->rdev); + break; + + case S_IFLNK: + err = vfs_symlink(dir, newdentry, link); + break; + + default: + err = -EPERM; + } + if (err) { + if (ovl_dentry_is_opaque(dentry)) + ovl_whiteout(upperdir, dentry); + dput(newdentry); + newdentry = ERR_PTR(err); + } else if (WARN_ON(!newdentry->d_inode)) { + /* + * Not quite sure if non-instantiated dentry is legal or not. + * VFS doesn't seem to care so check and warn here. + */ + dput(newdentry); + newdentry = ERR_PTR(-ENOENT); + } + +out: + return newdentry; + +} + +static int ovl_set_opaque(struct dentry *upperdentry) +{ + int err; + const struct cred *old_cred; + struct cred *override_cred; + + override_cred = prepare_creds(); + if (!override_cred) + return -ENOMEM; + + /* CAP_SYS_ADMIN for setxattr of "trusted" namespace */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + old_cred = override_creds(override_cred); + err = vfs_setxattr(upperdentry, ovl_opaque_xattr, "y", 1, 0); + revert_creds(old_cred); + put_cred(override_cred); + + return err; +} + +static int ovl_remove_opaque(struct dentry *upperdentry) +{ + int err; + const struct cred *old_cred; + struct cred *override_cred; + + override_cred = prepare_creds(); + if (!override_cred) + return -ENOMEM; + + /* CAP_SYS_ADMIN for removexattr of "trusted" namespace */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + old_cred = override_creds(override_cred); + err = vfs_removexattr(upperdentry, ovl_opaque_xattr); + revert_creds(old_cred); + put_cred(override_cred); + + return err; +} + +static int ovl_dir_getattr(struct vfsmount *mnt, struct dentry *dentry, + struct kstat *stat) +{ + int err; + enum ovl_path_type type; + struct path realpath; + + type = ovl_path_real(dentry, &realpath); + err = vfs_getattr(realpath.mnt, realpath.dentry, stat); + if (err) + return err; + + stat->dev = dentry->d_sb->s_dev; + stat->ino = dentry->d_inode->i_ino; + + /* + * It's probably not worth it to count subdirs to get the + * correct link count. nlink=1 seems to pacify 'find' and + * other utilities. + */ + if (type == OVL_PATH_MERGE) + stat->nlink = 1; + + return 0; +} + +static int ovl_create_object(struct dentry *dentry, int mode, dev_t rdev, + const char *link) +{ + int err; + struct dentry *newdentry; + struct dentry *upperdir; + struct inode *inode; + struct kstat stat = { + .mode = mode, + .rdev = rdev, + }; + + err = -ENOMEM; + inode = ovl_new_inode(dentry->d_sb, mode, dentry->d_fsdata); + if (!inode) + goto out; + + err = ovl_copy_up(dentry->d_parent); + if (err) + goto out_iput; + + upperdir = ovl_dentry_upper(dentry->d_parent); + mutex_lock_nested(&upperdir->d_inode->i_mutex, I_MUTEX_PARENT); + + newdentry = ovl_upper_create(upperdir, dentry, &stat, link); + err = PTR_ERR(newdentry); + if (IS_ERR(newdentry)) + goto out_unlock; + + ovl_dentry_version_inc(dentry->d_parent); + if (ovl_dentry_is_opaque(dentry) && S_ISDIR(mode)) { + err = ovl_set_opaque(newdentry); + if (err) { + vfs_rmdir(upperdir->d_inode, newdentry); + ovl_whiteout(upperdir, dentry); + goto out_dput; + } + } + ovl_dentry_update(dentry, newdentry); + d_instantiate(dentry, inode); + inode = NULL; + newdentry = NULL; + err = 0; + +out_dput: + dput(newdentry); +out_unlock: + mutex_unlock(&upperdir->d_inode->i_mutex); +out_iput: + iput(inode); +out: + return err; +} + +static int ovl_create(struct inode *dir, struct dentry *dentry, umode_t mode, + struct nameidata *nd) +{ + return ovl_create_object(dentry, (mode & 07777) | S_IFREG, 0, NULL); +} + +static int ovl_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) +{ + return ovl_create_object(dentry, (mode & 07777) | S_IFDIR, 0, NULL); +} + +static int ovl_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, + dev_t rdev) +{ + return ovl_create_object(dentry, mode, rdev, NULL); +} + +static int ovl_symlink(struct inode *dir, struct dentry *dentry, + const char *link) +{ + return ovl_create_object(dentry, S_IFLNK, 0, link); +} + +static int ovl_do_remove(struct dentry *dentry, bool is_dir) +{ + int err; + enum ovl_path_type type; + struct path realpath; + struct dentry *upperdir; + + err = ovl_copy_up(dentry->d_parent); + if (err) + return err; + + upperdir = ovl_dentry_upper(dentry->d_parent); + mutex_lock_nested(&upperdir->d_inode->i_mutex, I_MUTEX_PARENT); + type = ovl_path_real(dentry, &realpath); + if (type != OVL_PATH_LOWER) { + err = -ESTALE; + if (realpath.dentry->d_parent != upperdir) + goto out_d_drop; + + /* FIXME: create whiteout up front and rename to target */ + + if (is_dir) + err = vfs_rmdir(upperdir->d_inode, realpath.dentry); + else + err = vfs_unlink(upperdir->d_inode, realpath.dentry); + if (err) + goto out_d_drop; + + ovl_dentry_version_inc(dentry->d_parent); + } + + if (type != OVL_PATH_UPPER || ovl_dentry_is_opaque(dentry)) + err = ovl_whiteout(upperdir, dentry); + + /* + * Keeping this dentry hashed would mean having to release + * upperpath/lowerpath, which could only be done if we are the + * sole user of this dentry. Too tricky... Just unhash for + * now. + */ +out_d_drop: + d_drop(dentry); + mutex_unlock(&upperdir->d_inode->i_mutex); + + return err; +} + +static int ovl_unlink(struct inode *dir, struct dentry *dentry) +{ + return ovl_do_remove(dentry, false); +} + + +static int ovl_rmdir(struct inode *dir, struct dentry *dentry) +{ + int err; + enum ovl_path_type type; + + type = ovl_path_type(dentry); + if (type != OVL_PATH_UPPER) { + err = ovl_check_empty_and_clear(dentry, type); + if (err) + return err; + } + + return ovl_do_remove(dentry, true); +} + +static int ovl_link(struct dentry *old, struct inode *newdir, + struct dentry *new) +{ + int err; + struct dentry *olddentry; + struct dentry *newdentry; + struct dentry *upperdir; + + err = ovl_copy_up(old); + if (err) + goto out; + + err = ovl_copy_up(new->d_parent); + if (err) + goto out; + + upperdir = ovl_dentry_upper(new->d_parent); + mutex_lock_nested(&upperdir->d_inode->i_mutex, I_MUTEX_PARENT); + newdentry = ovl_lookup_create(upperdir, new); + err = PTR_ERR(newdentry); + if (IS_ERR(newdentry)) + goto out_unlock; + + olddentry = ovl_dentry_upper(old); + err = vfs_link(olddentry, upperdir->d_inode, newdentry); + if (!err) { + if (WARN_ON(!newdentry->d_inode)) { + dput(newdentry); + err = -ENOENT; + goto out_unlock; + } + + ovl_dentry_version_inc(new->d_parent); + ovl_dentry_update(new, newdentry); + + ihold(old->d_inode); + d_instantiate(new, old->d_inode); + } else { + if (ovl_dentry_is_opaque(new)) + ovl_whiteout(upperdir, new); + dput(newdentry); + } +out_unlock: + mutex_unlock(&upperdir->d_inode->i_mutex); +out: + return err; + +} + +static int ovl_rename(struct inode *olddir, struct dentry *old, + struct inode *newdir, struct dentry *new) +{ + int err; + enum ovl_path_type old_type; + enum ovl_path_type new_type; + struct dentry *old_upperdir; + struct dentry *new_upperdir; + struct dentry *olddentry; + struct dentry *newdentry; + struct dentry *trap; + bool old_opaque; + bool new_opaque; + bool new_create = false; + bool is_dir = S_ISDIR(old->d_inode->i_mode); + + /* Don't copy up directory trees */ + old_type = ovl_path_type(old); + if (old_type != OVL_PATH_UPPER && is_dir) + return -EXDEV; + + if (new->d_inode) { + new_type = ovl_path_type(new); + + if (new_type == OVL_PATH_LOWER && old_type == OVL_PATH_LOWER) { + if (ovl_dentry_lower(old)->d_inode == + ovl_dentry_lower(new)->d_inode) + return 0; + } + if (new_type != OVL_PATH_LOWER && old_type != OVL_PATH_LOWER) { + if (ovl_dentry_upper(old)->d_inode == + ovl_dentry_upper(new)->d_inode) + return 0; + } + + if (new_type != OVL_PATH_UPPER && + S_ISDIR(new->d_inode->i_mode)) { + err = ovl_check_empty_and_clear(new, new_type); + if (err) + return err; + } + } else { + new_type = OVL_PATH_UPPER; + } + + err = ovl_copy_up(old); + if (err) + return err; + + err = ovl_copy_up(new->d_parent); + if (err) + return err; + + old_upperdir = ovl_dentry_upper(old->d_parent); + new_upperdir = ovl_dentry_upper(new->d_parent); + + trap = lock_rename(new_upperdir, old_upperdir); + + olddentry = ovl_dentry_upper(old); + newdentry = ovl_dentry_upper(new); + if (newdentry) { + dget(newdentry); + } else { + new_create = true; + newdentry = ovl_lookup_create(new_upperdir, new); + err = PTR_ERR(newdentry); + if (IS_ERR(newdentry)) + goto out_unlock; + } + + err = -ESTALE; + if (olddentry->d_parent != old_upperdir) + goto out_dput; + if (newdentry->d_parent != new_upperdir) + goto out_dput; + if (olddentry == trap) + goto out_dput; + if (newdentry == trap) + goto out_dput; + + old_opaque = ovl_dentry_is_opaque(old); + new_opaque = ovl_dentry_is_opaque(new) || new_type != OVL_PATH_UPPER; + + if (is_dir && !old_opaque && new_opaque) { + err = ovl_set_opaque(olddentry); + if (err) + goto out_dput; + } + + err = vfs_rename(old_upperdir->d_inode, olddentry, + new_upperdir->d_inode, newdentry); + + if (err) { + if (new_create && ovl_dentry_is_opaque(new)) + ovl_whiteout(new_upperdir, new); + if (is_dir && !old_opaque && new_opaque) + ovl_remove_opaque(olddentry); + goto out_dput; + } + + if (old_type != OVL_PATH_UPPER || old_opaque) + err = ovl_whiteout(old_upperdir, old); + if (is_dir && old_opaque && !new_opaque) + ovl_remove_opaque(olddentry); + + if (old_opaque != new_opaque) + ovl_dentry_set_opaque(old, new_opaque); + + ovl_dentry_version_inc(old->d_parent); + ovl_dentry_version_inc(new->d_parent); + +out_dput: + dput(newdentry); +out_unlock: + unlock_rename(new_upperdir, old_upperdir); + return err; +} + +const struct inode_operations ovl_dir_inode_operations = { + .lookup = ovl_lookup, + .mkdir = ovl_mkdir, + .symlink = ovl_symlink, + .unlink = ovl_unlink, + .rmdir = ovl_rmdir, + .rename = ovl_rename, + .link = ovl_link, + .setattr = ovl_setattr, + .create = ovl_create, + .mknod = ovl_mknod, + .permission = ovl_permission, + .getattr = ovl_dir_getattr, + .setxattr = ovl_setxattr, + .getxattr = ovl_getxattr, + .listxattr = ovl_listxattr, + .removexattr = ovl_removexattr, +}; --- linux-3.2.0.orig/fs/overlayfs/readdir.c +++ linux-3.2.0/fs/overlayfs/readdir.c @@ -0,0 +1,565 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * 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 "overlayfs.h" + +struct ovl_cache_entry { + const char *name; + unsigned int len; + unsigned int type; + u64 ino; + bool is_whiteout; + struct list_head l_node; + struct rb_node node; +}; + +struct ovl_readdir_data { + struct rb_root *root; + struct list_head *list; + struct list_head *middle; + struct dentry *dir; + int count; + int err; +}; + +struct ovl_dir_file { + bool is_real; + bool is_cached; + struct list_head cursor; + u64 cache_version; + struct list_head cache; + struct file *realfile; +}; + +static struct ovl_cache_entry *ovl_cache_entry_from_node(struct rb_node *n) +{ + return container_of(n, struct ovl_cache_entry, node); +} + +static struct ovl_cache_entry *ovl_cache_entry_find(struct rb_root *root, + const char *name, int len) +{ + struct rb_node *node = root->rb_node; + int cmp; + + while (node) { + struct ovl_cache_entry *p = ovl_cache_entry_from_node(node); + + cmp = strncmp(name, p->name, len); + if (cmp > 0) + node = p->node.rb_right; + else if (cmp < 0 || len < p->len) + node = p->node.rb_left; + else + return p; + } + + return NULL; +} + +static struct ovl_cache_entry *ovl_cache_entry_new(const char *name, int len, + u64 ino, unsigned int d_type) +{ + struct ovl_cache_entry *p; + + p = kmalloc(sizeof(*p) + len + 1, GFP_KERNEL); + if (p) { + char *name_copy = (char *) (p + 1); + memcpy(name_copy, name, len); + name_copy[len] = '\0'; + p->name = name_copy; + p->len = len; + p->type = d_type; + p->ino = ino; + p->is_whiteout = false; + } + + return p; +} + +static int ovl_cache_entry_add_rb(struct ovl_readdir_data *rdd, + const char *name, int len, u64 ino, + unsigned int d_type) +{ + struct rb_node **newp = &rdd->root->rb_node; + struct rb_node *parent = NULL; + struct ovl_cache_entry *p; + + while (*newp) { + int cmp; + struct ovl_cache_entry *tmp; + + parent = *newp; + tmp = ovl_cache_entry_from_node(*newp); + cmp = strncmp(name, tmp->name, len); + if (cmp > 0) + newp = &tmp->node.rb_right; + else if (cmp < 0 || len < tmp->len) + newp = &tmp->node.rb_left; + else + return 0; + } + + p = ovl_cache_entry_new(name, len, ino, d_type); + if (p == NULL) + return -ENOMEM; + + list_add_tail(&p->l_node, rdd->list); + rb_link_node(&p->node, parent, newp); + rb_insert_color(&p->node, rdd->root); + + return 0; +} + +static int ovl_fill_lower(void *buf, const char *name, int namelen, + loff_t offset, u64 ino, unsigned int d_type) +{ + struct ovl_readdir_data *rdd = buf; + struct ovl_cache_entry *p; + + rdd->count++; + p = ovl_cache_entry_find(rdd->root, name, namelen); + if (p) { + list_move_tail(&p->l_node, rdd->middle); + } else { + p = ovl_cache_entry_new(name, namelen, ino, d_type); + if (p == NULL) + rdd->err = -ENOMEM; + else + list_add_tail(&p->l_node, rdd->middle); + } + + return rdd->err; +} + +static void ovl_cache_free(struct list_head *list) +{ + struct ovl_cache_entry *p; + struct ovl_cache_entry *n; + + list_for_each_entry_safe(p, n, list, l_node) + kfree(p); + + INIT_LIST_HEAD(list); +} + +static int ovl_fill_upper(void *buf, const char *name, int namelen, + loff_t offset, u64 ino, unsigned int d_type) +{ + struct ovl_readdir_data *rdd = buf; + + rdd->count++; + return ovl_cache_entry_add_rb(rdd, name, namelen, ino, d_type); +} + +static inline int ovl_dir_read(struct path *realpath, + struct ovl_readdir_data *rdd, filldir_t filler) +{ + struct file *realfile; + int err; + + realfile = ovl_path_open(realpath, O_RDONLY | O_DIRECTORY); + if (IS_ERR(realfile)) + return PTR_ERR(realfile); + + do { + rdd->count = 0; + rdd->err = 0; + err = vfs_readdir(realfile, filler, rdd); + if (err >= 0) + err = rdd->err; + } while (!err && rdd->count); + fput(realfile); + + return 0; +} + +static void ovl_dir_reset(struct file *file) +{ + struct ovl_dir_file *od = file->private_data; + enum ovl_path_type type = ovl_path_type(file->f_path.dentry); + + if (ovl_dentry_version_get(file->f_path.dentry) != od->cache_version) { + list_del_init(&od->cursor); + ovl_cache_free(&od->cache); + od->is_cached = false; + } + WARN_ON(!od->is_real && type != OVL_PATH_MERGE); + if (od->is_real && type == OVL_PATH_MERGE) { + fput(od->realfile); + od->realfile = NULL; + od->is_real = false; + } +} + +static int ovl_dir_mark_whiteouts(struct ovl_readdir_data *rdd) +{ + struct ovl_cache_entry *p; + struct dentry *dentry; + const struct cred *old_cred; + struct cred *override_cred; + + override_cred = prepare_creds(); + if (!override_cred) { + ovl_cache_free(rdd->list); + return -ENOMEM; + } + + /* + * CAP_SYS_ADMIN for getxattr + * CAP_DAC_OVERRIDE for lookup + */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE); + old_cred = override_creds(override_cred); + + mutex_lock(&rdd->dir->d_inode->i_mutex); + list_for_each_entry(p, rdd->list, l_node) { + if (p->type != DT_LNK) + continue; + + dentry = lookup_one_len(p->name, rdd->dir, p->len); + if (IS_ERR(dentry)) + continue; + + p->is_whiteout = ovl_is_whiteout(dentry); + dput(dentry); + } + mutex_unlock(&rdd->dir->d_inode->i_mutex); + + revert_creds(old_cred); + put_cred(override_cred); + + return 0; +} + +static inline int ovl_dir_read_merged(struct path *upperpath, + struct path *lowerpath, + struct ovl_readdir_data *rdd) +{ + int err; + struct rb_root root = RB_ROOT; + struct list_head middle; + + rdd->root = &root; + if (upperpath->dentry) { + rdd->dir = upperpath->dentry; + err = ovl_dir_read(upperpath, rdd, ovl_fill_upper); + if (err) + goto out; + + err = ovl_dir_mark_whiteouts(rdd); + if (err) + goto out; + } + /* + * Insert lowerpath entries before upperpath ones, this allows + * offsets to be reasonably constant + */ + list_add(&middle, rdd->list); + rdd->middle = &middle; + err = ovl_dir_read(lowerpath, rdd, ovl_fill_lower); + list_del(&middle); +out: + rdd->root = NULL; + + return err; +} + +static void ovl_seek_cursor(struct ovl_dir_file *od, loff_t pos) +{ + struct list_head *l; + loff_t off; + + l = od->cache.next; + for (off = 0; off < pos; off++) { + if (l == &od->cache) + break; + l = l->next; + } + list_move_tail(&od->cursor, l); +} + +static int ovl_readdir(struct file *file, void *buf, filldir_t filler) +{ + struct ovl_dir_file *od = file->private_data; + int res; + + if (!file->f_pos) + ovl_dir_reset(file); + + if (od->is_real) { + res = vfs_readdir(od->realfile, filler, buf); + file->f_pos = od->realfile->f_pos; + + return res; + } + + if (!od->is_cached) { + struct path lowerpath; + struct path upperpath; + struct ovl_readdir_data rdd = { .list = &od->cache }; + + ovl_path_lower(file->f_path.dentry, &lowerpath); + ovl_path_upper(file->f_path.dentry, &upperpath); + + res = ovl_dir_read_merged(&upperpath, &lowerpath, &rdd); + if (res) { + ovl_cache_free(rdd.list); + return res; + } + + od->cache_version = ovl_dentry_version_get(file->f_path.dentry); + od->is_cached = true; + + ovl_seek_cursor(od, file->f_pos); + } + + while (od->cursor.next != &od->cache) { + int over; + loff_t off; + struct ovl_cache_entry *p; + + p = list_entry(od->cursor.next, struct ovl_cache_entry, l_node); + off = file->f_pos; + if (!p->is_whiteout) { + over = filler(buf, p->name, p->len, off, p->ino, + p->type); + if (over) + break; + } + file->f_pos++; + list_move(&od->cursor, &p->l_node); + } + + return 0; +} + +static loff_t ovl_dir_llseek(struct file *file, loff_t offset, int origin) +{ + loff_t res; + struct ovl_dir_file *od = file->private_data; + + mutex_lock(&file->f_dentry->d_inode->i_mutex); + if (!file->f_pos) + ovl_dir_reset(file); + + if (od->is_real) { + res = vfs_llseek(od->realfile, offset, origin); + file->f_pos = od->realfile->f_pos; + } else { + res = -EINVAL; + + switch (origin) { + case SEEK_CUR: + offset += file->f_pos; + break; + case SEEK_SET: + break; + default: + goto out_unlock; + } + if (offset < 0) + goto out_unlock; + + if (offset != file->f_pos) { + file->f_pos = offset; + if (od->is_cached) + ovl_seek_cursor(od, offset); + } + res = offset; + } +out_unlock: + mutex_unlock(&file->f_dentry->d_inode->i_mutex); + + return res; +} + +static int ovl_dir_fsync(struct file *file, loff_t start, loff_t end, + int datasync) +{ + struct ovl_dir_file *od = file->private_data; + + /* May need to reopen directory if it got copied up */ + if (!od->realfile) { + struct path upperpath; + + ovl_path_upper(file->f_path.dentry, &upperpath); + od->realfile = ovl_path_open(&upperpath, O_RDONLY); + if (IS_ERR(od->realfile)) + return PTR_ERR(od->realfile); + } + + return vfs_fsync_range(od->realfile, start, end, datasync); +} + +static int ovl_dir_release(struct inode *inode, struct file *file) +{ + struct ovl_dir_file *od = file->private_data; + + list_del(&od->cursor); + ovl_cache_free(&od->cache); + if (od->realfile) + fput(od->realfile); + kfree(od); + + return 0; +} + +static int ovl_dir_open(struct inode *inode, struct file *file) +{ + struct path realpath; + struct file *realfile; + struct ovl_dir_file *od; + enum ovl_path_type type; + + od = kzalloc(sizeof(struct ovl_dir_file), GFP_KERNEL); + if (!od) + return -ENOMEM; + + type = ovl_path_real(file->f_path.dentry, &realpath); + realfile = ovl_path_open(&realpath, file->f_flags); + if (IS_ERR(realfile)) { + kfree(od); + return PTR_ERR(realfile); + } + INIT_LIST_HEAD(&od->cache); + INIT_LIST_HEAD(&od->cursor); + od->is_cached = false; + od->realfile = realfile; + od->is_real = (type != OVL_PATH_MERGE); + file->private_data = od; + + return 0; +} + +const struct file_operations ovl_dir_operations = { + .read = generic_read_dir, + .open = ovl_dir_open, + .readdir = ovl_readdir, + .llseek = ovl_dir_llseek, + .fsync = ovl_dir_fsync, + .release = ovl_dir_release, +}; + +static int ovl_check_empty_dir(struct dentry *dentry, struct list_head *list) +{ + int err; + struct path lowerpath; + struct path upperpath; + struct ovl_cache_entry *p; + struct ovl_readdir_data rdd = { .list = list }; + + ovl_path_upper(dentry, &upperpath); + ovl_path_lower(dentry, &lowerpath); + + err = ovl_dir_read_merged(&upperpath, &lowerpath, &rdd); + if (err) + return err; + + err = 0; + + list_for_each_entry(p, list, l_node) { + if (p->is_whiteout) + continue; + + if (p->name[0] == '.') { + if (p->len == 1) + continue; + if (p->len == 2 && p->name[1] == '.') + continue; + } + err = -ENOTEMPTY; + break; + } + + return err; +} + +static int ovl_remove_whiteouts(struct dentry *dir, struct list_head *list) +{ + struct path upperpath; + struct dentry *upperdir; + struct ovl_cache_entry *p; + const struct cred *old_cred; + struct cred *override_cred; + int err; + + ovl_path_upper(dir, &upperpath); + upperdir = upperpath.dentry; + + override_cred = prepare_creds(); + if (!override_cred) + return -ENOMEM; + + /* + * CAP_DAC_OVERRIDE for lookup and unlink + * CAP_SYS_ADMIN for setxattr of "trusted" namespace + * CAP_FOWNER for unlink in sticky directory + */ + cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE); + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + cap_raise(override_cred->cap_effective, CAP_FOWNER); + old_cred = override_creds(override_cred); + + err = vfs_setxattr(upperdir, ovl_opaque_xattr, "y", 1, 0); + if (err) + goto out_revert_creds; + + mutex_lock_nested(&upperdir->d_inode->i_mutex, I_MUTEX_PARENT); + list_for_each_entry(p, list, l_node) { + struct dentry *dentry; + int ret; + + if (!p->is_whiteout) + continue; + + dentry = lookup_one_len(p->name, upperdir, p->len); + if (IS_ERR(dentry)) { + printk(KERN_WARNING + "overlayfs: failed to lookup whiteout %.*s: %li\n", + p->len, p->name, PTR_ERR(dentry)); + continue; + } + ret = vfs_unlink(upperdir->d_inode, dentry); + dput(dentry); + if (ret) + printk(KERN_WARNING + "overlayfs: failed to unlink whiteout %.*s: %i\n", + p->len, p->name, ret); + } + mutex_unlock(&upperdir->d_inode->i_mutex); + +out_revert_creds: + revert_creds(old_cred); + put_cred(override_cred); + + return err; +} + +int ovl_check_empty_and_clear(struct dentry *dentry, enum ovl_path_type type) +{ + int err; + LIST_HEAD(list); + + err = ovl_check_empty_dir(dentry, &list); + if (!err && type == OVL_PATH_MERGE) + err = ovl_remove_whiteouts(dentry, &list); + + ovl_cache_free(&list); + + return err; +} --- linux-3.2.0.orig/fs/overlayfs/overlayfs.h +++ linux-3.2.0/fs/overlayfs/overlayfs.h @@ -0,0 +1,64 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * 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. + */ + +struct ovl_entry; + +enum ovl_path_type { + OVL_PATH_UPPER, + OVL_PATH_MERGE, + OVL_PATH_LOWER, +}; + +extern const char *ovl_opaque_xattr; +extern const char *ovl_whiteout_xattr; +extern const struct dentry_operations ovl_dentry_operations; + +enum ovl_path_type ovl_path_type(struct dentry *dentry); +u64 ovl_dentry_version_get(struct dentry *dentry); +void ovl_dentry_version_inc(struct dentry *dentry); +void ovl_path_upper(struct dentry *dentry, struct path *path); +void ovl_path_lower(struct dentry *dentry, struct path *path); +enum ovl_path_type ovl_path_real(struct dentry *dentry, struct path *path); +struct dentry *ovl_dentry_upper(struct dentry *dentry); +struct dentry *ovl_dentry_lower(struct dentry *dentry); +struct dentry *ovl_dentry_real(struct dentry *dentry); +struct dentry *ovl_entry_real(struct ovl_entry *oe, bool *is_upper); +bool ovl_dentry_is_opaque(struct dentry *dentry); +void ovl_dentry_set_opaque(struct dentry *dentry, bool opaque); +bool ovl_is_whiteout(struct dentry *dentry); +void ovl_dentry_update(struct dentry *dentry, struct dentry *upperdentry); +struct dentry *ovl_lookup(struct inode *dir, struct dentry *dentry, + struct nameidata *nd); +struct file *ovl_path_open(struct path *path, int flags); + +struct dentry *ovl_upper_create(struct dentry *upperdir, struct dentry *dentry, + struct kstat *stat, const char *link); + +/* readdir.c */ +extern const struct file_operations ovl_dir_operations; +int ovl_check_empty_and_clear(struct dentry *dentry, enum ovl_path_type type); + +/* inode.c */ +int ovl_setattr(struct dentry *dentry, struct iattr *attr); +int ovl_permission(struct inode *inode, int mask); +int ovl_setxattr(struct dentry *dentry, const char *name, + const void *value, size_t size, int flags); +ssize_t ovl_getxattr(struct dentry *dentry, const char *name, + void *value, size_t size); +ssize_t ovl_listxattr(struct dentry *dentry, char *list, size_t size); +int ovl_removexattr(struct dentry *dentry, const char *name); + +struct inode *ovl_new_inode(struct super_block *sb, umode_t mode, + struct ovl_entry *oe); +/* dir.c */ +extern const struct inode_operations ovl_dir_inode_operations; + +/* copy_up.c */ +int ovl_copy_up(struct dentry *dentry); +int ovl_copy_up_truncate(struct dentry *dentry, loff_t size); --- linux-3.2.0.orig/fs/overlayfs/copy_up.c +++ linux-3.2.0/fs/overlayfs/copy_up.c @@ -0,0 +1,384 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * 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 "overlayfs.h" + +#define OVL_COPY_UP_CHUNK_SIZE (1 << 20) + +static int ovl_copy_up_xattr(struct dentry *old, struct dentry *new) +{ + ssize_t list_size, size; + char *buf, *name, *value; + int error; + + if (!old->d_inode->i_op->getxattr || + !new->d_inode->i_op->getxattr) + return 0; + + list_size = vfs_listxattr(old, NULL, 0); + if (list_size <= 0) { + if (list_size == -EOPNOTSUPP) + return 0; + return list_size; + } + + buf = kzalloc(list_size, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + error = -ENOMEM; + value = kmalloc(XATTR_SIZE_MAX, GFP_KERNEL); + if (!value) + goto out; + + list_size = vfs_listxattr(old, buf, list_size); + if (list_size <= 0) { + error = list_size; + goto out_free_value; + } + + for (name = buf; name < (buf + list_size); name += strlen(name) + 1) { + size = vfs_getxattr(old, name, value, XATTR_SIZE_MAX); + if (size <= 0) { + error = size; + goto out_free_value; + } + error = vfs_setxattr(new, name, value, size, 0); + if (error) + goto out_free_value; + } + +out_free_value: + kfree(value); +out: + kfree(buf); + return error; +} + +static int ovl_copy_up_data(struct path *old, struct path *new, loff_t len) +{ + struct file *old_file; + struct file *new_file; + int error = 0; + + if (len == 0) + return 0; + + old_file = ovl_path_open(old, O_RDONLY); + if (IS_ERR(old_file)) + return PTR_ERR(old_file); + + new_file = ovl_path_open(new, O_WRONLY); + if (IS_ERR(new_file)) { + error = PTR_ERR(new_file); + goto out_fput; + } + + /* FIXME: copy up sparse files efficiently */ + while (len) { + loff_t offset = new_file->f_pos; + size_t this_len = OVL_COPY_UP_CHUNK_SIZE; + long bytes; + + if (len < this_len) + this_len = len; + + if (signal_pending_state(TASK_KILLABLE, current)) { + error = -EINTR; + break; + } + + bytes = do_splice_direct(old_file, &offset, new_file, this_len, + SPLICE_F_MOVE); + if (bytes <= 0) { + error = bytes; + break; + } + + len -= bytes; + } + + fput(new_file); +out_fput: + fput(old_file); + return error; +} + +static char *ovl_read_symlink(struct dentry *realdentry) +{ + int res; + char *buf; + struct inode *inode = realdentry->d_inode; + mm_segment_t old_fs; + + res = -EINVAL; + if (!inode->i_op->readlink) + goto err; + + res = -ENOMEM; + buf = (char *) __get_free_page(GFP_KERNEL); + if (!buf) + goto err; + + old_fs = get_fs(); + set_fs(get_ds()); + /* The cast to a user pointer is valid due to the set_fs() */ + res = inode->i_op->readlink(realdentry, + (char __user *)buf, PAGE_SIZE - 1); + set_fs(old_fs); + if (res < 0) { + free_page((unsigned long) buf); + goto err; + } + buf[res] = '\0'; + + return buf; + +err: + return ERR_PTR(res); +} + +static int ovl_set_timestamps(struct dentry *upperdentry, struct kstat *stat) +{ + struct iattr attr = { + .ia_valid = + ATTR_ATIME | ATTR_MTIME | ATTR_ATIME_SET | ATTR_MTIME_SET, + .ia_atime = stat->atime, + .ia_mtime = stat->mtime, + }; + + return notify_change(upperdentry, &attr); +} + +static int ovl_set_mode(struct dentry *upperdentry, umode_t mode) +{ + struct iattr attr = { + .ia_valid = ATTR_MODE, + .ia_mode = mode, + }; + + return notify_change(upperdentry, &attr); +} + +static int ovl_copy_up_locked(struct dentry *upperdir, struct dentry *dentry, + struct path *lowerpath, struct kstat *stat, + const char *link) +{ + int err; + struct path newpath; + umode_t mode = stat->mode; + + /* Can't properly set mode on creation because of the umask */ + stat->mode &= S_IFMT; + + ovl_path_upper(dentry, &newpath); + WARN_ON(newpath.dentry); + newpath.dentry = ovl_upper_create(upperdir, dentry, stat, link); + if (IS_ERR(newpath.dentry)) + return PTR_ERR(newpath.dentry); + + if (S_ISREG(stat->mode)) { + err = ovl_copy_up_data(lowerpath, &newpath, stat->size); + if (err) + goto err_remove; + } + + err = ovl_copy_up_xattr(lowerpath->dentry, newpath.dentry); + if (err) + goto err_remove; + + mutex_lock(&newpath.dentry->d_inode->i_mutex); + if (!S_ISLNK(stat->mode)) + err = ovl_set_mode(newpath.dentry, mode); + if (!err) + err = ovl_set_timestamps(newpath.dentry, stat); + mutex_unlock(&newpath.dentry->d_inode->i_mutex); + if (err) + goto err_remove; + + ovl_dentry_update(dentry, newpath.dentry); + + /* + * Easiest way to get rid of the lower dentry reference is to + * drop this dentry. This is neither needed nor possible for + * directories. + */ + if (!S_ISDIR(stat->mode)) + d_drop(dentry); + + return 0; + +err_remove: + if (S_ISDIR(stat->mode)) + vfs_rmdir(upperdir->d_inode, newpath.dentry); + else + vfs_unlink(upperdir->d_inode, newpath.dentry); + + dput(newpath.dentry); + + return err; +} + +/* + * Copy up a single dentry + * + * Directory renames only allowed on "pure upper" (already created on + * upper filesystem, never copied up). Directories which are on lower or + * are merged may not be renamed. For these -EXDEV is returned and + * userspace has to deal with it. This means, when copying up a + * directory we can rely on it and ancestors being stable. + * + * Non-directory renames start with copy up of source if necessary. The + * actual rename will only proceed once the copy up was successful. Copy + * up uses upper parent i_mutex for exclusion. Since rename can change + * d_parent it is possible that the copy up will lock the old parent. At + * that point the file will have already been copied up anyway. + */ +static int ovl_copy_up_one(struct dentry *parent, struct dentry *dentry, + struct path *lowerpath, struct kstat *stat) +{ + int err; + struct kstat pstat; + struct path parentpath; + struct dentry *upperdir; + const struct cred *old_cred; + struct cred *override_cred; + char *link = NULL; + + ovl_path_upper(parent, &parentpath); + upperdir = parentpath.dentry; + + err = vfs_getattr(parentpath.mnt, parentpath.dentry, &pstat); + if (err) + return err; + + if (S_ISLNK(stat->mode)) { + link = ovl_read_symlink(lowerpath->dentry); + if (IS_ERR(link)) + return PTR_ERR(link); + } + + err = -ENOMEM; + override_cred = prepare_creds(); + if (!override_cred) + goto out_free_link; + + override_cred->fsuid = stat->uid; + override_cred->fsgid = stat->gid; + /* + * CAP_SYS_ADMIN for copying up extended attributes + * CAP_DAC_OVERRIDE for create + * CAP_FOWNER for chmod, timestamp update + * CAP_FSETID for chmod + * CAP_MKNOD for mknod + */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE); + cap_raise(override_cred->cap_effective, CAP_FOWNER); + cap_raise(override_cred->cap_effective, CAP_FSETID); + cap_raise(override_cred->cap_effective, CAP_MKNOD); + old_cred = override_creds(override_cred); + + mutex_lock_nested(&upperdir->d_inode->i_mutex, I_MUTEX_PARENT); + if (ovl_path_type(dentry) != OVL_PATH_LOWER) { + err = 0; + } else { + err = ovl_copy_up_locked(upperdir, dentry, lowerpath, + stat, link); + if (!err) { + /* Restore timestamps on parent (best effort) */ + ovl_set_timestamps(upperdir, &pstat); + } + } + + mutex_unlock(&upperdir->d_inode->i_mutex); + + revert_creds(old_cred); + put_cred(override_cred); + +out_free_link: + if (link) + free_page((unsigned long) link); + + return err; +} + +int ovl_copy_up(struct dentry *dentry) +{ + int err; + + err = 0; + while (!err) { + struct dentry *next; + struct dentry *parent; + struct path lowerpath; + struct kstat stat; + enum ovl_path_type type = ovl_path_type(dentry); + + if (type != OVL_PATH_LOWER) + break; + + next = dget(dentry); + /* find the topmost dentry not yet copied up */ + for (;;) { + parent = dget_parent(next); + + type = ovl_path_type(parent); + if (type != OVL_PATH_LOWER) + break; + + dput(next); + next = parent; + } + + ovl_path_lower(next, &lowerpath); + err = vfs_getattr(lowerpath.mnt, lowerpath.dentry, &stat); + if (!err) + err = ovl_copy_up_one(parent, next, &lowerpath, &stat); + + dput(parent); + dput(next); + } + + return err; +} + +/* Optimize by not copying up the file first and truncating later */ +int ovl_copy_up_truncate(struct dentry *dentry, loff_t size) +{ + int err; + struct kstat stat; + struct path lowerpath; + struct dentry *parent = dget_parent(dentry); + + err = ovl_copy_up(parent); + if (err) + goto out_dput_parent; + + ovl_path_lower(dentry, &lowerpath); + err = vfs_getattr(lowerpath.mnt, lowerpath.dentry, &stat); + if (err) + goto out_dput_parent; + + if (size < stat.size) + stat.size = size; + + err = ovl_copy_up_one(parent, dentry, &lowerpath, &stat); + +out_dput_parent: + dput(parent); + return err; +} --- linux-3.2.0.orig/fs/ubifs/super.c +++ linux-3.2.0/fs/ubifs/super.c @@ -1583,6 +1583,12 @@ c->remounting_rw = 1; c->ro_mount = 0; + if (c->space_fixup) { + err = ubifs_fixup_free_space(c); + if (err) + return err; + } + err = check_free_space(c); if (err) goto out; @@ -1699,12 +1705,6 @@ err = dbg_check_space_info(c); } - if (c->space_fixup) { - err = ubifs_fixup_free_space(c); - if (err) - goto out; - } - mutex_unlock(&c->umount_mutex); return err; --- linux-3.2.0.orig/fs/ubifs/sb.c +++ linux-3.2.0/fs/ubifs/sb.c @@ -715,8 +715,12 @@ lnum = ubifs_next_log_lnum(c, lnum); } - /* Fixup the current log head */ - err = fixup_leb(c, c->lhead_lnum, c->lhead_offs); + /* + * Fixup the log head which contains the only a CS node at the + * beginning. + */ + err = fixup_leb(c, c->lhead_lnum, + ALIGN(UBIFS_CS_NODE_SZ, c->min_io_size)); if (err) goto out; --- linux-3.2.0.orig/fs/ubifs/dir.c +++ linux-3.2.0/fs/ubifs/dir.c @@ -357,31 +357,50 @@ static int ubifs_readdir(struct file *file, void *dirent, filldir_t filldir) { int err, over = 0; + loff_t pos = file->f_pos; struct qstr nm; union ubifs_key key; struct ubifs_dent_node *dent; struct inode *dir = file->f_path.dentry->d_inode; struct ubifs_info *c = dir->i_sb->s_fs_info; - dbg_gen("dir ino %lu, f_pos %#llx", dir->i_ino, file->f_pos); + dbg_gen("dir ino %lu, f_pos %#llx", dir->i_ino, pos); - if (file->f_pos > UBIFS_S_KEY_HASH_MASK || file->f_pos == 2) + if (pos > UBIFS_S_KEY_HASH_MASK || pos == 2) /* * The directory was seek'ed to a senseless position or there * are no more entries. */ return 0; + if (file->f_version == 0) { + /* + * The file was seek'ed, which means that @file->private_data + * is now invalid. This may also be just the first + * 'ubifs_readdir()' invocation, in which case + * @file->private_data is NULL, and the below code is + * basically a no-op. + */ + kfree(file->private_data); + file->private_data = NULL; + } + + /* + * 'generic_file_llseek()' unconditionally sets @file->f_version to + * zero, and we use this for detecting whether the file was seek'ed. + */ + file->f_version = 1; + /* File positions 0 and 1 correspond to "." and ".." */ - if (file->f_pos == 0) { + if (pos == 0) { ubifs_assert(!file->private_data); over = filldir(dirent, ".", 1, 0, dir->i_ino, DT_DIR); if (over) return 0; - file->f_pos = 1; + file->f_pos = pos = 1; } - if (file->f_pos == 1) { + if (pos == 1) { ubifs_assert(!file->private_data); over = filldir(dirent, "..", 2, 1, parent_ino(file->f_path.dentry), DT_DIR); @@ -397,7 +416,7 @@ goto out; } - file->f_pos = key_hash_flash(c, &dent->key); + file->f_pos = pos = key_hash_flash(c, &dent->key); file->private_data = dent; } @@ -405,17 +424,16 @@ if (!dent) { /* * The directory was seek'ed to and is now readdir'ed. - * Find the entry corresponding to @file->f_pos or the - * closest one. + * Find the entry corresponding to @pos or the closest one. */ - dent_key_init_hash(c, &key, dir->i_ino, file->f_pos); + dent_key_init_hash(c, &key, dir->i_ino, pos); nm.name = NULL; dent = ubifs_tnc_next_ent(c, &key, &nm); if (IS_ERR(dent)) { err = PTR_ERR(dent); goto out; } - file->f_pos = key_hash_flash(c, &dent->key); + file->f_pos = pos = key_hash_flash(c, &dent->key); file->private_data = dent; } @@ -427,7 +445,7 @@ ubifs_inode(dir)->creat_sqnum); nm.len = le16_to_cpu(dent->nlen); - over = filldir(dirent, dent->name, nm.len, file->f_pos, + over = filldir(dirent, dent->name, nm.len, pos, le64_to_cpu(dent->inum), vfs_dent_type(dent->type)); if (over) @@ -443,9 +461,17 @@ } kfree(file->private_data); - file->f_pos = key_hash_flash(c, &dent->key); + file->f_pos = pos = key_hash_flash(c, &dent->key); file->private_data = dent; cond_resched(); + + if (file->f_version == 0) + /* + * The file was seek'ed meanwhile, lets return and start + * reading direntries from the new position on the next + * invocation. + */ + return 0; } out: @@ -456,15 +482,13 @@ kfree(file->private_data); file->private_data = NULL; + /* 2 is a special value indicating that there are no more direntries */ file->f_pos = 2; return 0; } -/* If a directory is seeked, we have to free saved readdir() state */ static loff_t ubifs_dir_llseek(struct file *file, loff_t offset, int origin) { - kfree(file->private_data); - file->private_data = NULL; return generic_file_llseek(file, offset, origin); } --- linux-3.2.0.orig/fs/ubifs/debug.h +++ linux-3.2.0/fs/ubifs/debug.h @@ -175,22 +175,23 @@ const union ubifs_key *key); /* - * DBGKEY macros require @dbg_lock to be held, which it is in the dbg message - * macros. + * TODO: these macros are now broken because there is no locking around them + * and we use a global buffer for the key string. This means that in case of + * concurrent execution we will end up with incorrect and messy key strings. */ #define DBGKEY(key) dbg_key_str0(c, (key)) #define DBGKEY1(key) dbg_key_str1(c, (key)) extern spinlock_t dbg_lock; -#define ubifs_dbg_msg(type, fmt, ...) do { \ - spin_lock(&dbg_lock); \ - pr_debug("UBIFS DBG " type ": " fmt "\n", ##__VA_ARGS__); \ - spin_unlock(&dbg_lock); \ -} while (0) +#define ubifs_dbg_msg(type, fmt, ...) \ + pr_debug("UBIFS DBG " type ": " fmt "\n", ##__VA_ARGS__) /* Just a debugging messages not related to any specific UBIFS subsystem */ -#define dbg_msg(fmt, ...) ubifs_dbg_msg("msg", fmt, ##__VA_ARGS__) +#define dbg_msg(fmt, ...) \ + printk(KERN_DEBUG "UBIFS DBG (pid %d): %s: " fmt "\n", current->pid, \ + __func__, ##__VA_ARGS__) + /* General messages */ #define dbg_gen(fmt, ...) ubifs_dbg_msg("gen", fmt, ##__VA_ARGS__) /* Additional journal messages */ --- linux-3.2.0.orig/fs/ubifs/ubifs.h +++ linux-3.2.0/fs/ubifs/ubifs.h @@ -908,6 +908,7 @@ * @dnext: next orphan to delete * @inum: inode number * @new: %1 => added since the last commit, otherwise %0 + * @del: %1 => delete pending, otherwise %0 */ struct ubifs_orphan { struct rb_node rb; @@ -917,6 +918,7 @@ struct ubifs_orphan *dnext; ino_t inum; int new; + unsigned del:1; }; /** @@ -1187,6 +1189,8 @@ * @freeable_list: list of freeable non-index LEBs (free + dirty == @leb_size) * @frdi_idx_list: list of freeable index LEBs (free + dirty == @leb_size) * @freeable_cnt: number of freeable LEBs in @freeable_list + * @in_a_category_cnt: count of lprops which are in a certain category, which + * basically meants that they were loaded from the flash * * @ltab_lnum: LEB number of LPT's own lprops table * @ltab_offs: offset of LPT's own lprops table @@ -1416,6 +1420,7 @@ struct list_head freeable_list; struct list_head frdi_idx_list; int freeable_cnt; + int in_a_category_cnt; int ltab_lnum; int ltab_offs; --- linux-3.2.0.orig/fs/ubifs/find.c +++ linux-3.2.0/fs/ubifs/find.c @@ -681,8 +681,16 @@ if (!lprops) { lprops = ubifs_fast_find_freeable(c); if (!lprops) { - ubifs_assert(c->freeable_cnt == 0); - if (c->lst.empty_lebs - c->lst.taken_empty_lebs > 0) { + /* + * The first condition means the following: go scan the + * LPT if there are uncategorized lprops, which means + * there may be freeable LEBs there (UBIFS does not + * store the information about freeable LEBs in the + * master node). + */ + if (c->in_a_category_cnt != c->main_lebs || + c->lst.empty_lebs - c->lst.taken_empty_lebs > 0) { + ubifs_assert(c->freeable_cnt == 0); lprops = scan_for_leb_for_idx(c); if (IS_ERR(lprops)) { err = PTR_ERR(lprops); --- linux-3.2.0.orig/fs/ubifs/lprops.c +++ linux-3.2.0/fs/ubifs/lprops.c @@ -300,8 +300,11 @@ default: ubifs_assert(0); } + lprops->flags &= ~LPROPS_CAT_MASK; lprops->flags |= cat; + c->in_a_category_cnt += 1; + ubifs_assert(c->in_a_category_cnt <= c->main_lebs); } /** @@ -334,6 +337,9 @@ default: ubifs_assert(0); } + + c->in_a_category_cnt -= 1; + ubifs_assert(c->in_a_category_cnt >= 0); } /** --- linux-3.2.0.orig/fs/ubifs/orphan.c +++ linux-3.2.0/fs/ubifs/orphan.c @@ -130,13 +130,14 @@ else if (inum > o->inum) p = p->rb_right; else { - if (o->dnext) { + if (o->del) { spin_unlock(&c->orphan_lock); dbg_gen("deleted twice ino %lu", (unsigned long)inum); return; } if (o->cnext) { + o->del = 1; o->dnext = c->orph_dnext; c->orph_dnext = o; spin_unlock(&c->orphan_lock); @@ -447,6 +448,7 @@ orphan = dnext; dnext = orphan->dnext; ubifs_assert(!orphan->new); + ubifs_assert(orphan->del); rb_erase(&orphan->rb, &c->orph_tree); list_del(&orphan->list); c->tot_orphans -= 1; @@ -536,6 +538,7 @@ rb_link_node(&orphan->rb, parent, p); rb_insert_color(&orphan->rb, &c->orph_tree); list_add_tail(&orphan->list, &c->orph_list); + orphan->del = 1; orphan->dnext = c->orph_dnext; c->orph_dnext = orphan; dbg_mnt("ino %lu, new %d, tot %d", (unsigned long)inum, --- linux-3.2.0.orig/fs/cifs/cifsacl.c +++ linux-3.2.0/fs/cifs/cifsacl.c @@ -225,6 +225,13 @@ } static void +cifs_copy_sid(struct cifs_sid *dst, const struct cifs_sid *src) +{ + memcpy(dst, src, sizeof(*dst)); + dst->num_subauth = min_t(u8, src->num_subauth, NUM_SUBAUTHS); +} + +static void id_rb_insert(struct rb_root *root, struct cifs_sid *sidptr, struct cifs_sid_id **psidid, char *typestr) { @@ -248,7 +255,7 @@ } } - memcpy(&(*psidid)->sid, sidptr, sizeof(struct cifs_sid)); + cifs_copy_sid(&(*psidid)->sid, sidptr); (*psidid)->time = jiffies - (SID_MAP_RETRY + 1); (*psidid)->refcount = 0; @@ -354,7 +361,7 @@ * any fields of the node after a reference is put . */ if (test_bit(SID_ID_MAPPED, &psidid->state)) { - memcpy(ssid, &psidid->sid, sizeof(struct cifs_sid)); + cifs_copy_sid(ssid, &psidid->sid); psidid->time = jiffies; /* update ts for accessing */ goto id_sid_out; } @@ -370,14 +377,14 @@ if (IS_ERR(sidkey)) { rc = -EINVAL; cFYI(1, "%s: Can't map and id to a SID", __func__); + } else if (sidkey->datalen < sizeof(struct cifs_sid)) { + rc = -EIO; + cFYI(1, "%s: Downcall contained malformed key " + "(datalen=%hu)", __func__, sidkey->datalen); } else { lsid = (struct cifs_sid *)sidkey->payload.data; - memcpy(&psidid->sid, lsid, - sidkey->datalen < sizeof(struct cifs_sid) ? - sidkey->datalen : sizeof(struct cifs_sid)); - memcpy(ssid, &psidid->sid, - sidkey->datalen < sizeof(struct cifs_sid) ? - sidkey->datalen : sizeof(struct cifs_sid)); + cifs_copy_sid(&psidid->sid, lsid); + cifs_copy_sid(ssid, &psidid->sid); set_bit(SID_ID_MAPPED, &psidid->state); key_put(sidkey); kfree(psidid->sidstr); @@ -396,7 +403,7 @@ return rc; } if (test_bit(SID_ID_MAPPED, &psidid->state)) - memcpy(ssid, &psidid->sid, sizeof(struct cifs_sid)); + cifs_copy_sid(ssid, &psidid->sid); else rc = -EINVAL; } @@ -674,8 +681,6 @@ static void copy_sec_desc(const struct cifs_ntsd *pntsd, struct cifs_ntsd *pnntsd, __u32 sidsoffset) { - int i; - struct cifs_sid *owner_sid_ptr, *group_sid_ptr; struct cifs_sid *nowner_sid_ptr, *ngroup_sid_ptr; @@ -691,26 +696,14 @@ owner_sid_ptr = (struct cifs_sid *)((char *)pntsd + le32_to_cpu(pntsd->osidoffset)); nowner_sid_ptr = (struct cifs_sid *)((char *)pnntsd + sidsoffset); - - nowner_sid_ptr->revision = owner_sid_ptr->revision; - nowner_sid_ptr->num_subauth = owner_sid_ptr->num_subauth; - for (i = 0; i < 6; i++) - nowner_sid_ptr->authority[i] = owner_sid_ptr->authority[i]; - for (i = 0; i < 5; i++) - nowner_sid_ptr->sub_auth[i] = owner_sid_ptr->sub_auth[i]; + cifs_copy_sid(nowner_sid_ptr, owner_sid_ptr); /* copy group sid */ group_sid_ptr = (struct cifs_sid *)((char *)pntsd + le32_to_cpu(pntsd->gsidoffset)); ngroup_sid_ptr = (struct cifs_sid *)((char *)pnntsd + sidsoffset + sizeof(struct cifs_sid)); - - ngroup_sid_ptr->revision = group_sid_ptr->revision; - ngroup_sid_ptr->num_subauth = group_sid_ptr->num_subauth; - for (i = 0; i < 6; i++) - ngroup_sid_ptr->authority[i] = group_sid_ptr->authority[i]; - for (i = 0; i < 5; i++) - ngroup_sid_ptr->sub_auth[i] = group_sid_ptr->sub_auth[i]; + cifs_copy_sid(ngroup_sid_ptr, group_sid_ptr); return; } @@ -1117,8 +1110,7 @@ kfree(nowner_sid_ptr); return rc; } - memcpy(owner_sid_ptr, nowner_sid_ptr, - sizeof(struct cifs_sid)); + cifs_copy_sid(owner_sid_ptr, nowner_sid_ptr); kfree(nowner_sid_ptr); *aclflag = CIFS_ACL_OWNER; } @@ -1136,8 +1128,7 @@ kfree(ngroup_sid_ptr); return rc; } - memcpy(group_sid_ptr, ngroup_sid_ptr, - sizeof(struct cifs_sid)); + cifs_copy_sid(group_sid_ptr, ngroup_sid_ptr); kfree(ngroup_sid_ptr); *aclflag = CIFS_ACL_GROUP; } --- linux-3.2.0.orig/fs/cifs/cifsencrypt.c +++ linux-3.2.0/fs/cifs/cifsencrypt.c @@ -394,7 +394,7 @@ int rc = 0; int len; char nt_hash[CIFS_NTHASH_SIZE]; - wchar_t *user; + __le16 *user; wchar_t *domain; wchar_t *server; @@ -419,7 +419,7 @@ return rc; } - /* convert ses->user_name to unicode and uppercase */ + /* convert ses->user_name to unicode */ len = strlen(ses->user_name); user = kmalloc(2 + (len * 2), GFP_KERNEL); if (user == NULL) { @@ -427,7 +427,7 @@ rc = -ENOMEM; return rc; } - len = cifs_strtoUCS((__le16 *)user, ses->user_name, len, nls_cp); + len = cifs_strtoUCS(user, ses->user_name, len, nls_cp); UniStrupr(user); rc = crypto_shash_update(&ses->server->secmech.sdeschmacmd5->shash, --- linux-3.2.0.orig/fs/cifs/cifsfs.c +++ linux-3.2.0/fs/cifs/cifsfs.c @@ -76,7 +76,7 @@ unsigned int cifs_max_pending = CIFS_MAX_REQ; module_param(cifs_max_pending, int, 0444); MODULE_PARM_DESC(cifs_max_pending, "Simultaneous requests to server. " - "Default: 50 Range: 2 to 256"); + "Default: 32767 Range: 2 to 32767."); unsigned short echo_retries = 5; module_param(echo_retries, ushort, 0644); MODULE_PARM_DESC(echo_retries, "Number of echo attempts before giving up and " @@ -90,6 +90,30 @@ extern mempool_t *cifs_req_poolp; extern mempool_t *cifs_mid_poolp; +/* + * Bumps refcount for cifs super block. + * Note that it should be only called if a referece to VFS super block is + * already held, e.g. in open-type syscalls context. Otherwise it can race with + * atomic_dec_and_test in deactivate_locked_super. + */ +void +cifs_sb_active(struct super_block *sb) +{ + struct cifs_sb_info *server = CIFS_SB(sb); + + if (atomic_inc_return(&server->active) == 1) + atomic_inc(&sb->s_active); +} + +void +cifs_sb_deactive(struct super_block *sb) +{ + struct cifs_sb_info *server = CIFS_SB(sb); + + if (atomic_dec_and_test(&server->active)) + deactivate_super(sb); +} + static int cifs_read_super(struct super_block *sb) { @@ -561,6 +585,11 @@ dentry = ERR_PTR(-ENOENT); break; } + if (!S_ISDIR(dir->i_mode)) { + dput(dentry); + dentry = ERR_PTR(-ENOTDIR); + break; + } /* skip separators */ while (*s == sep) @@ -703,7 +732,7 @@ * origin == SEEK_END || SEEK_DATA || SEEK_HOLE => we must revalidate * the cached file length */ - if (origin != SEEK_SET || origin != SEEK_CUR) { + if (origin != SEEK_SET && origin != SEEK_CUR) { int rc; struct inode *inode = file->f_path.dentry->d_inode; @@ -1116,9 +1145,9 @@ if (cifs_max_pending < 2) { cifs_max_pending = 2; cFYI(1, "cifs_max_pending set to min of 2"); - } else if (cifs_max_pending > 256) { - cifs_max_pending = 256; - cFYI(1, "cifs_max_pending set to max of 256"); + } else if (cifs_max_pending > CIFS_MAX_REQ) { + cifs_max_pending = CIFS_MAX_REQ; + cFYI(1, "cifs_max_pending set to max of %u", CIFS_MAX_REQ); } rc = cifs_fscache_register(); --- linux-3.2.0.orig/fs/cifs/cifs_unicode.c +++ linux-3.2.0/fs/cifs/cifs_unicode.c @@ -327,6 +327,6 @@ } ctoUCS_out: - return i; + return j; } --- linux-3.2.0.orig/fs/cifs/sess.c +++ linux-3.2.0/fs/cifs/sess.c @@ -246,16 +246,15 @@ /* copy user */ /* BB what about null user mounts - check that we do this BB */ /* copy user */ - if (ses->user_name != NULL) + if (ses->user_name != NULL) { strncpy(bcc_ptr, ses->user_name, MAX_USERNAME_SIZE); + bcc_ptr += strnlen(ses->user_name, MAX_USERNAME_SIZE); + } /* else null user mount */ - - bcc_ptr += strnlen(ses->user_name, MAX_USERNAME_SIZE); *bcc_ptr = 0; bcc_ptr++; /* account for null termination */ /* copy domain */ - if (ses->domainName != NULL) { strncpy(bcc_ptr, ses->domainName, 256); bcc_ptr += strnlen(ses->domainName, 256); --- linux-3.2.0.orig/fs/cifs/inode.c +++ linux-3.2.0/fs/cifs/inode.c @@ -173,7 +173,8 @@ if (fattr->cf_flags & CIFS_FATTR_DFS_REFERRAL) inode->i_flags |= S_AUTOMOUNT; - cifs_set_ops(inode); + if (inode->i_state & I_NEW) + cifs_set_ops(inode); } void --- linux-3.2.0.orig/fs/cifs/dir.c +++ linux-3.2.0/fs/cifs/dir.c @@ -171,7 +171,7 @@ } tcon = tlink_tcon(tlink); - if (enable_oplocks) + if (tcon->ses->server->oplocks) oplock = REQ_OPLOCK; if (nd) @@ -492,7 +492,7 @@ { int xid; int rc = 0; /* to get around spurious gcc warning, set to zero here */ - __u32 oplock = 0; + __u32 oplock; __u16 fileHandle = 0; bool posix_open = false; struct cifs_sb_info *cifs_sb; @@ -518,6 +518,8 @@ } pTcon = tlink_tcon(tlink); + oplock = pTcon->ses->server->oplocks ? REQ_OPLOCK : 0; + /* * Don't allow the separator character in a path component. * The VFS will not allow "/", but "\" is allowed by posix. @@ -584,10 +586,26 @@ * If either that or op not supported returned, follow * the normal lookup. */ - if ((rc == 0) || (rc == -ENOENT)) + switch (rc) { + case 0: + /* + * The server may allow us to open things like + * FIFOs, but the client isn't set up to deal + * with that. If it's not a regular file, just + * close it and proceed as if it were a normal + * lookup. + */ + if (newInode && !S_ISREG(newInode->i_mode)) { + CIFSSMBClose(xid, pTcon, fileHandle); + break; + } + case -ENOENT: posix_open = true; - else if ((rc == -EINVAL) || (rc != -EOPNOTSUPP)) + case -EOPNOTSUPP: + break; + default: pTcon->broken_posix_open = true; + } } if (!posix_open) rc = cifs_get_inode_info_unix(&newInode, full_path, --- linux-3.2.0.orig/fs/cifs/cifsglob.h +++ linux-3.2.0/fs/cifs/cifsglob.h @@ -43,6 +43,7 @@ #define CIFS_MIN_RCV_POOL 4 +#define MAX_REOPEN_ATT 5 /* these many maximum attempts to reopen a file */ /* * default attribute cache timeout (jiffies) */ @@ -55,14 +56,9 @@ /* * MAX_REQ is the maximum number of requests that WE will send - * on one socket concurrently. It also matches the most common - * value of max multiplex returned by servers. We may - * eventually want to use the negotiated value (in case - * future servers can handle more) when we are more confident that - * we will not have problems oveloading the socket with pending - * write data. + * on one socket concurrently. */ -#define CIFS_MAX_REQ 50 +#define CIFS_MAX_REQ 32767 #define RFC1001_NAME_LEN 15 #define RFC1001_NAME_LEN_WITH_NULL (RFC1001_NAME_LEN + 1) @@ -263,6 +259,7 @@ bool session_estab; /* mark when very first sess is established */ u16 dialect; /* dialect index that server chose */ enum securityEnum secType; + bool oplocks:1; /* enable oplocks */ unsigned int maxReq; /* Clients should submit no more */ /* than maxReq distinct unanswered SMBs to the server when using */ /* multiplexed reads or writes */ --- linux-3.2.0.orig/fs/cifs/file.c +++ linux-3.2.0/fs/cifs/file.c @@ -265,6 +265,8 @@ mutex_init(&pCifsFile->fh_mutex); INIT_WORK(&pCifsFile->oplock_break, cifs_oplock_break); + cifs_sb_active(inode->i_sb); + spin_lock(&cifs_file_list_lock); list_add(&pCifsFile->tlist, &(tlink_tcon(tlink)->openFileList)); /* if readable file instance put first in list*/ @@ -293,7 +295,8 @@ struct inode *inode = cifs_file->dentry->d_inode; struct cifs_tcon *tcon = tlink_tcon(cifs_file->tlink); struct cifsInodeInfo *cifsi = CIFS_I(inode); - struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb); + struct super_block *sb = inode->i_sb; + struct cifs_sb_info *cifs_sb = CIFS_SB(sb); struct cifsLockInfo *li, *tmp; spin_lock(&cifs_file_list_lock); @@ -345,6 +348,7 @@ cifs_put_tlink(cifs_file->tlink); dput(cifs_file->dentry); + cifs_sb_deactive(sb); kfree(cifs_file); } @@ -380,7 +384,7 @@ cFYI(1, "inode = 0x%p file flags are 0x%x for %s", inode, file->f_flags, full_path); - if (enable_oplocks) + if (tcon->ses->server->oplocks) oplock = REQ_OPLOCK; else oplock = 0; @@ -505,7 +509,7 @@ cFYI(1, "inode = 0x%p file flags 0x%x for %s", inode, pCifsFile->f_flags, full_path); - if (enable_oplocks) + if (tcon->ses->server->oplocks) oplock = REQ_OPLOCK; else oplock = 0; @@ -835,13 +839,21 @@ if ((flock->fl_flags & FL_POSIX) == 0) return rc; +try_again: mutex_lock(&cinode->lock_mutex); if (!cinode->can_cache_brlcks) { mutex_unlock(&cinode->lock_mutex); return rc; } - rc = posix_lock_file_wait(file, flock); + + rc = posix_lock_file(file, flock, NULL); mutex_unlock(&cinode->lock_mutex); + if (rc == FILE_LOCK_DEFERRED) { + rc = wait_event_interruptible(flock->fl_wait, !flock->fl_next); + if (!rc) + goto try_again; + locks_delete_block(flock); + } return rc; } @@ -874,7 +886,7 @@ if (!buf) { mutex_unlock(&cinode->lock_mutex); FreeXid(xid); - return rc; + return -ENOMEM; } for (i = 0; i < 2; i++) { @@ -920,16 +932,26 @@ for (lockp = &inode->i_flock; *lockp != NULL; \ lockp = &(*lockp)->fl_next) +struct lock_to_push { + struct list_head llist; + __u64 offset; + __u64 length; + __u32 pid; + __u16 netfid; + __u8 type; +}; + static int cifs_push_posix_locks(struct cifsFileInfo *cfile) { struct cifsInodeInfo *cinode = CIFS_I(cfile->dentry->d_inode); struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); struct file_lock *flock, **before; - struct cifsLockInfo *lck, *tmp; + unsigned int count = 0, i = 0; int rc = 0, xid, type; + struct list_head locks_to_send, *el; + struct lock_to_push *lck, *tmp; __u64 length; - struct list_head locks_to_send; xid = GetXid(); @@ -940,29 +962,56 @@ return rc; } + lock_flocks(); + cifs_for_each_lock(cfile->dentry->d_inode, before) { + if ((*before)->fl_flags & FL_POSIX) + count++; + } + unlock_flocks(); + INIT_LIST_HEAD(&locks_to_send); + /* + * Allocating count locks is enough because no FL_POSIX locks can be + * added to the list while we are holding cinode->lock_mutex that + * protects locking operations of this inode. + */ + for (; i < count; i++) { + lck = kmalloc(sizeof(struct lock_to_push), GFP_KERNEL); + if (!lck) { + rc = -ENOMEM; + goto err_out; + } + list_add_tail(&lck->llist, &locks_to_send); + } + + el = locks_to_send.next; lock_flocks(); cifs_for_each_lock(cfile->dentry->d_inode, before) { flock = *before; + if ((flock->fl_flags & FL_POSIX) == 0) + continue; + if (el == &locks_to_send) { + /* + * The list ended. We don't have enough allocated + * structures - something is really wrong. + */ + cERROR(1, "Can't push all brlocks!"); + break; + } length = 1 + flock->fl_end - flock->fl_start; if (flock->fl_type == F_RDLCK || flock->fl_type == F_SHLCK) type = CIFS_RDLCK; else type = CIFS_WRLCK; - - lck = cifs_lock_init(flock->fl_start, length, type, - cfile->netfid); - if (!lck) { - rc = -ENOMEM; - goto send_locks; - } + lck = list_entry(el, struct lock_to_push, llist); lck->pid = flock->fl_pid; - - list_add_tail(&lck->llist, &locks_to_send); + lck->netfid = cfile->netfid; + lck->length = length; + lck->type = type; + lck->offset = flock->fl_start; + el = el->next; } - -send_locks: unlock_flocks(); list_for_each_entry_safe(lck, tmp, &locks_to_send, llist) { @@ -979,11 +1028,18 @@ kfree(lck); } +out: cinode->can_cache_brlcks = false; mutex_unlock(&cinode->lock_mutex); FreeXid(xid); return rc; +err_out: + list_for_each_entry_safe(lck, tmp, &locks_to_send, llist) { + list_del(&lck->llist); + kfree(lck); + } + goto out; } static int @@ -1482,10 +1538,11 @@ struct cifsFileInfo *find_writable_file(struct cifsInodeInfo *cifs_inode, bool fsuid_only) { - struct cifsFileInfo *open_file; + struct cifsFileInfo *open_file, *inv_file = NULL; struct cifs_sb_info *cifs_sb; bool any_available = false; int rc; + unsigned int refind = 0; /* Having a null inode here (because mapping->host was set to zero by the VFS or MM) should not happen but we had reports of on oops (due to @@ -1505,40 +1562,25 @@ spin_lock(&cifs_file_list_lock); refind_writable: + if (refind > MAX_REOPEN_ATT) { + spin_unlock(&cifs_file_list_lock); + return NULL; + } list_for_each_entry(open_file, &cifs_inode->openFileList, flist) { if (!any_available && open_file->pid != current->tgid) continue; if (fsuid_only && open_file->uid != current_fsuid()) continue; if (OPEN_FMODE(open_file->f_flags) & FMODE_WRITE) { - cifsFileInfo_get(open_file); - if (!open_file->invalidHandle) { /* found a good writable file */ + cifsFileInfo_get(open_file); spin_unlock(&cifs_file_list_lock); return open_file; + } else { + if (!inv_file) + inv_file = open_file; } - - spin_unlock(&cifs_file_list_lock); - - /* Had to unlock since following call can block */ - rc = cifs_reopen_file(open_file, false); - if (!rc) - return open_file; - - /* if it fails, try another handle if possible */ - cFYI(1, "wp failed on reopen file"); - cifsFileInfo_put(open_file); - - spin_lock(&cifs_file_list_lock); - - /* else we simply continue to the next entry. Thus - we do not loop on reopen errors. If we - can not reopen the file, for example if we - reconnected to a server with another client - racing to delete or lock the file we would not - make progress if we restarted before the beginning - of the loop here. */ } } /* couldn't find useable FH with same pid, try any available */ @@ -1546,7 +1588,30 @@ any_available = true; goto refind_writable; } + + if (inv_file) { + any_available = false; + cifsFileInfo_get(inv_file); + } + spin_unlock(&cifs_file_list_lock); + + if (inv_file) { + rc = cifs_reopen_file(inv_file, false); + if (!rc) + return inv_file; + else { + spin_lock(&cifs_file_list_lock); + list_move_tail(&inv_file->flist, + &cifs_inode->openFileList); + spin_unlock(&cifs_file_list_lock); + cifsFileInfo_put(inv_file); + spin_lock(&cifs_file_list_lock); + ++refind; + goto refind_writable; + } + } + return NULL; } --- linux-3.2.0.orig/fs/cifs/readdir.c +++ linux-3.2.0/fs/cifs/readdir.c @@ -86,13 +86,24 @@ dentry = d_lookup(parent, name); if (dentry) { - /* FIXME: check for inode number changes? */ - if (dentry->d_inode != NULL) + inode = dentry->d_inode; + /* update inode in place if i_ino didn't change */ + if (inode && CIFS_I(inode)->uniqueid == fattr->cf_uniqueid) { + cifs_fattr_to_inode(inode, fattr); return dentry; + } d_drop(dentry); dput(dentry); } + /* + * If we know that the inode will need to be revalidated immediately, + * then don't create a new dentry for it. We'll end up doing an on + * the wire call either way and this spares us an invalidation. + */ + if (fattr->cf_flags & CIFS_FATTR_NEED_REVAL) + return NULL; + dentry = d_alloc(parent, name); if (dentry == NULL) return NULL; @@ -219,6 +230,7 @@ static int initiate_cifs_search(const int xid, struct file *file) { + __u16 search_flags; int rc = 0; char *full_path = NULL; struct cifsFileInfo *cifsFile; @@ -270,8 +282,12 @@ cifsFile->srch_inf.info_level = SMB_FIND_FILE_DIRECTORY_INFO; } + search_flags = CIFS_SEARCH_CLOSE_AT_END | CIFS_SEARCH_RETURN_RESUME; + if (backup_cred(cifs_sb)) + search_flags |= CIFS_SEARCH_BACKUP_SEARCH; + rc = CIFSFindFirst(xid, pTcon, full_path, cifs_sb->local_nls, - &cifsFile->netfid, &cifsFile->srch_inf, + &cifsFile->netfid, search_flags, &cifsFile->srch_inf, cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR, CIFS_DIR_SEP(cifs_sb)); if (rc == 0) @@ -502,11 +518,13 @@ static int find_cifs_entry(const int xid, struct cifs_tcon *pTcon, struct file *file, char **ppCurrentEntry, int *num_to_ret) { + __u16 search_flags; int rc = 0; int pos_in_buf = 0; loff_t first_entry_in_buffer; loff_t index_to_find = file->f_pos; struct cifsFileInfo *cifsFile = file->private_data; + struct cifs_sb_info *cifs_sb = CIFS_SB(file->f_path.dentry->d_sb); /* check if index in the buffer */ if ((cifsFile == NULL) || (ppCurrentEntry == NULL) || @@ -560,10 +578,14 @@ cifsFile); } + search_flags = CIFS_SEARCH_CLOSE_AT_END | CIFS_SEARCH_RETURN_RESUME; + if (backup_cred(cifs_sb)) + search_flags |= CIFS_SEARCH_BACKUP_SEARCH; + while ((index_to_find >= cifsFile->srch_inf.index_of_last_entry) && (rc == 0) && !cifsFile->srch_inf.endOfSearch) { cFYI(1, "calling findnext2"); - rc = CIFSFindNext(xid, pTcon, cifsFile->netfid, + rc = CIFSFindNext(xid, pTcon, cifsFile->netfid, search_flags, &cifsFile->srch_inf); /* FindFirst/Next set last_entry to NULL on malformed reply */ if (cifsFile->srch_inf.last_entry) --- linux-3.2.0.orig/fs/cifs/cifs_unicode.h +++ linux-3.2.0/fs/cifs/cifs_unicode.h @@ -323,14 +323,14 @@ /* * UniStrupr: Upper case a unicode string */ -static inline wchar_t * -UniStrupr(register wchar_t *upin) +static inline __le16 * +UniStrupr(register __le16 *upin) { - register wchar_t *up; + register __le16 *up; up = upin; while (*up) { /* For all characters */ - *up = UniToupper(*up); + *up = cpu_to_le16(UniToupper(le16_to_cpu(*up))); up++; } return upin; /* Return input pointer */ --- linux-3.2.0.orig/fs/cifs/transport.c +++ linux-3.2.0/fs/cifs/transport.c @@ -265,12 +265,12 @@ spin_lock(&GlobalMid_Lock); while (1) { - if (atomic_read(&server->inFlight) >= cifs_max_pending) { + if (atomic_read(&server->inFlight) >= server->maxReq) { spin_unlock(&GlobalMid_Lock); cifs_num_waiters_inc(server); wait_event(server->request_q, atomic_read(&server->inFlight) - < cifs_max_pending); + < server->maxReq); cifs_num_waiters_dec(server); spin_lock(&GlobalMid_Lock); } else { @@ -485,6 +485,13 @@ mutex_unlock(&server->srv_mutex); return rc; } + + /* + * The response to this call was already factored into the sequence + * number when the call went out, so we must adjust it back downward + * after signing here. + */ + --server->sequence_number; rc = smb_send(server, in_buf, be32_to_cpu(in_buf->smb_buf_length)); mutex_unlock(&server->srv_mutex); --- linux-3.2.0.orig/fs/cifs/cifsfs.h +++ linux-3.2.0/fs/cifs/cifsfs.h @@ -41,6 +41,10 @@ extern const struct address_space_operations cifs_addr_ops; extern const struct address_space_operations cifs_addr_ops_smallbuf; +/* Functions related to super block operations */ +extern void cifs_sb_active(struct super_block *sb); +extern void cifs_sb_deactive(struct super_block *sb); + /* Functions related to inodes */ extern const struct inode_operations cifs_dir_inode_ops; extern struct inode *cifs_root_iget(struct super_block *); --- linux-3.2.0.orig/fs/cifs/cifsproto.h +++ linux-3.2.0/fs/cifs/cifsproto.h @@ -184,11 +184,13 @@ extern int CIFSFindFirst(const int xid, struct cifs_tcon *tcon, const char *searchName, const struct nls_table *nls_codepage, - __u16 *searchHandle, struct cifs_search_info *psrch_inf, + __u16 *searchHandle, __u16 search_flags, + struct cifs_search_info *psrch_inf, int map, const char dirsep); extern int CIFSFindNext(const int xid, struct cifs_tcon *tcon, - __u16 searchHandle, struct cifs_search_info *psrch_inf); + __u16 searchHandle, __u16 search_flags, + struct cifs_search_info *psrch_inf); extern int CIFSFindClose(const int, struct cifs_tcon *tcon, const __u16 search_handle); --- linux-3.2.0.orig/fs/cifs/connect.c +++ linux-3.2.0/fs/cifs/connect.c @@ -625,14 +625,10 @@ spin_unlock(&GlobalMid_Lock); wake_up_all(&server->response_q); - /* - * Check if we have blocked requests that need to free. Note that - * cifs_max_pending is normally 50, but can be set at module install - * time to as little as two. - */ + /* Check if we have blocked requests that need to free. */ spin_lock(&GlobalMid_Lock); - if (atomic_read(&server->inFlight) >= cifs_max_pending) - atomic_set(&server->inFlight, cifs_max_pending - 1); + if (atomic_read(&server->inFlight) >= server->maxReq) + atomic_set(&server->inFlight, server->maxReq - 1); /* * We do not want to set the max_pending too low or we could end up * with the counter going negative. @@ -756,10 +752,11 @@ cifs_dump_mem("Bad SMB: ", buf, min_t(unsigned int, server->total_read, 48)); - if (mid) - handle_mid(mid, server, smb_buffer, length); + if (!mid) + return length; - return length; + handle_mid(mid, server, smb_buffer, length); + return 0; } static int @@ -1889,6 +1886,7 @@ tcp_ses->noautotune = volume_info->noautotune; tcp_ses->tcp_nodelay = volume_info->sockopt_tcp_nodelay; atomic_set(&tcp_ses->inFlight, 0); + tcp_ses->maxReq = 1; /* enough to send negotiate request */ init_waitqueue_head(&tcp_ses->response_q); init_waitqueue_head(&tcp_ses->request_q); INIT_LIST_HEAD(&tcp_ses->pending_mid_q); @@ -2914,18 +2912,45 @@ #define CIFS_DEFAULT_IOSIZE (1024 * 1024) /* - * Windows only supports a max of 60k reads. Default to that when posix - * extensions aren't in force. + * Windows only supports a max of 60kb reads and 65535 byte writes. Default to + * those values when posix extensions aren't in force. In actuality here, we + * use 65536 to allow for a write that is a multiple of 4k. Most servers seem + * to be ok with the extra byte even though Windows doesn't send writes that + * are that large. + * + * Citation: + * + * http://blogs.msdn.com/b/openspecification/archive/2009/04/10/smb-maximum-transmit-buffer-size-and-performance-tuning.aspx */ #define CIFS_DEFAULT_NON_POSIX_RSIZE (60 * 1024) +#define CIFS_DEFAULT_NON_POSIX_WSIZE (65536) + +/* + * On hosts with high memory, we can't currently support wsize/rsize that are + * larger than we can kmap at once. Cap the rsize/wsize at + * LAST_PKMAP * PAGE_SIZE. We'll never be able to fill a read or write request + * larger than that anyway. + */ +#ifdef CONFIG_HIGHMEM +#define CIFS_KMAP_SIZE_LIMIT (LAST_PKMAP * PAGE_CACHE_SIZE) +#else /* CONFIG_HIGHMEM */ +#define CIFS_KMAP_SIZE_LIMIT (1<<24) +#endif /* CONFIG_HIGHMEM */ static unsigned int cifs_negotiate_wsize(struct cifs_tcon *tcon, struct smb_vol *pvolume_info) { __u64 unix_cap = le64_to_cpu(tcon->fsUnixInfo.Capability); struct TCP_Server_Info *server = tcon->ses->server; - unsigned int wsize = pvolume_info->wsize ? pvolume_info->wsize : - CIFS_DEFAULT_IOSIZE; + unsigned int wsize; + + /* start with specified wsize, or default */ + if (pvolume_info->wsize) + wsize = pvolume_info->wsize; + else if (tcon->unix_ext && (unix_cap & CIFS_UNIX_LARGE_WRITE_CAP)) + wsize = CIFS_DEFAULT_IOSIZE; + else + wsize = CIFS_DEFAULT_NON_POSIX_WSIZE; /* can server support 24-bit write sizes? (via UNIX extensions) */ if (!tcon->unix_ext || !(unix_cap & CIFS_UNIX_LARGE_WRITE_CAP)) @@ -2942,6 +2967,9 @@ wsize = min_t(unsigned int, wsize, server->maxBuf - sizeof(WRITE_REQ) + 4); + /* limit to the amount that we can kmap at once */ + wsize = min_t(unsigned int, wsize, CIFS_KMAP_SIZE_LIMIT); + /* hard limit of CIFS_MAX_WSIZE */ wsize = min_t(unsigned int, wsize, CIFS_MAX_WSIZE); @@ -2962,18 +2990,15 @@ * MS-CIFS indicates that servers are only limited by the client's * bufsize for reads, testing against win98se shows that it throws * INVALID_PARAMETER errors if you try to request too large a read. + * OS/2 just sends back short reads. * - * If the server advertises a MaxBufferSize of less than one page, - * assume that it also can't satisfy reads larger than that either. - * - * FIXME: Is there a better heuristic for this? + * If the server doesn't advertise CAP_LARGE_READ_X, then assume that + * it can't handle a read request larger than its MaxBufferSize either. */ if (tcon->unix_ext && (unix_cap & CIFS_UNIX_LARGE_READ_CAP)) defsize = CIFS_DEFAULT_IOSIZE; else if (server->capabilities & CAP_LARGE_READ_X) defsize = CIFS_DEFAULT_NON_POSIX_RSIZE; - else if (server->maxBuf >= PAGE_CACHE_SIZE) - defsize = CIFSMaxBufSize; else defsize = server->maxBuf - sizeof(READ_RSP); @@ -2986,6 +3011,9 @@ if (!(server->capabilities & CAP_LARGE_READ_X)) rsize = min_t(unsigned int, CIFSMaxBufSize, rsize); + /* limit to the amount that we can kmap at once */ + rsize = min_t(unsigned int, rsize, CIFS_KMAP_SIZE_LIMIT); + /* hard limit of CIFS_MAX_RSIZE */ rsize = min_t(unsigned int, rsize, CIFS_MAX_RSIZE); @@ -3204,7 +3232,7 @@ int cifs_mount(struct cifs_sb_info *cifs_sb, struct smb_vol *volume_info) { - int rc = 0; + int rc; int xid; struct cifs_ses *pSesInfo; struct cifs_tcon *tcon; @@ -3231,6 +3259,7 @@ FreeXid(xid); } #endif + rc = 0; tcon = NULL; pSesInfo = NULL; srvTcp = NULL; --- linux-3.2.0.orig/fs/cifs/cifssmb.c +++ linux-3.2.0/fs/cifs/cifssmb.c @@ -89,6 +89,32 @@ /* Forward declarations */ static void cifs_readv_complete(struct work_struct *work); +#ifdef CONFIG_HIGHMEM +/* + * On arches that have high memory, kmap address space is limited. By + * serializing the kmap operations on those arches, we ensure that we don't + * end up with a bunch of threads in writeback with partially mapped page + * arrays, stuck waiting for kmap to come back. That situation prevents + * progress and can deadlock. + */ +static DEFINE_MUTEX(cifs_kmap_mutex); + +static inline void +cifs_kmap_lock(void) +{ + mutex_lock(&cifs_kmap_mutex); +} + +static inline void +cifs_kmap_unlock(void) +{ + mutex_unlock(&cifs_kmap_mutex); +} +#else /* !CONFIG_HIGHMEM */ +#define cifs_kmap_lock() do { ; } while(0) +#define cifs_kmap_unlock() do { ; } while(0) +#endif /* CONFIG_HIGHMEM */ + /* Mark as invalid, all open files on tree connections since they were closed when session to server was lost */ static void mark_open_files_invalid(struct cifs_tcon *pTcon) @@ -458,7 +484,10 @@ goto neg_err_exit; } server->sec_mode = (__u8)le16_to_cpu(rsp->SecurityMode); - server->maxReq = le16_to_cpu(rsp->MaxMpxCount); + server->maxReq = min_t(unsigned int, + le16_to_cpu(rsp->MaxMpxCount), + cifs_max_pending); + server->oplocks = server->maxReq > 1 ? enable_oplocks : false; server->maxBuf = le16_to_cpu(rsp->MaxBufSize); server->max_vcs = le16_to_cpu(rsp->MaxNumberVcs); /* even though we do not use raw we might as well set this @@ -564,7 +593,9 @@ /* one byte, so no need to convert this or EncryptionKeyLen from little endian */ - server->maxReq = le16_to_cpu(pSMBr->MaxMpxCount); + server->maxReq = min_t(unsigned int, le16_to_cpu(pSMBr->MaxMpxCount), + cifs_max_pending); + server->oplocks = server->maxReq > 1 ? enable_oplocks : false; /* probably no need to store and check maxvcs */ server->maxBuf = le32_to_cpu(pSMBr->MaxBufferSize); server->max_rw = le32_to_cpu(pSMBr->MaxRawSize); @@ -1535,6 +1566,7 @@ eof_index = eof ? (eof - 1) >> PAGE_CACHE_SHIFT : 0; cFYI(1, "eof=%llu eof_index=%lu", eof, eof_index); + cifs_kmap_lock(); list_for_each_entry_safe(page, tpage, &rdata->pages, lru) { if (remaining >= PAGE_CACHE_SIZE) { /* enough data to fill the page */ @@ -1584,6 +1616,7 @@ page_cache_release(page); } } + cifs_kmap_unlock(); /* issue the read if we have any iovecs left to fill */ if (rdata->nr_iov > 1) { @@ -2166,6 +2199,7 @@ iov[0].iov_base = smb; /* marshal up the pages into iov array */ + cifs_kmap_lock(); wdata->bytes = 0; for (i = 0; i < wdata->nr_pages; i++) { iov[i + 1].iov_len = min(inode->i_size - @@ -2174,6 +2208,7 @@ iov[i + 1].iov_base = kmap(wdata->pages[i]); wdata->bytes += iov[i + 1].iov_len; } + cifs_kmap_unlock(); cFYI(1, "async write at %llu %u bytes", wdata->offset, wdata->bytes); @@ -4322,7 +4357,7 @@ CIFSFindFirst(const int xid, struct cifs_tcon *tcon, const char *searchName, const struct nls_table *nls_codepage, - __u16 *pnetfid, + __u16 *pnetfid, __u16 search_flags, struct cifs_search_info *psrch_inf, int remap, const char dirsep) { /* level 257 SMB_ */ @@ -4394,8 +4429,7 @@ cpu_to_le16(ATTR_READONLY | ATTR_HIDDEN | ATTR_SYSTEM | ATTR_DIRECTORY); pSMB->SearchCount = cpu_to_le16(CIFSMaxBufSize/sizeof(FILE_UNIX_INFO)); - pSMB->SearchFlags = cpu_to_le16(CIFS_SEARCH_CLOSE_AT_END | - CIFS_SEARCH_RETURN_RESUME); + pSMB->SearchFlags = cpu_to_le16(search_flags); pSMB->InformationLevel = cpu_to_le16(psrch_inf->info_level); /* BB what should we set StorageType to? Does it matter? BB */ @@ -4465,8 +4499,8 @@ return rc; } -int CIFSFindNext(const int xid, struct cifs_tcon *tcon, - __u16 searchHandle, struct cifs_search_info *psrch_inf) +int CIFSFindNext(const int xid, struct cifs_tcon *tcon, __u16 searchHandle, + __u16 search_flags, struct cifs_search_info *psrch_inf) { TRANSACTION2_FNEXT_REQ *pSMB = NULL; TRANSACTION2_FNEXT_RSP *pSMBr = NULL; @@ -4509,8 +4543,7 @@ cpu_to_le16(CIFSMaxBufSize / sizeof(FILE_UNIX_INFO)); pSMB->InformationLevel = cpu_to_le16(psrch_inf->info_level); pSMB->ResumeKey = psrch_inf->resume_key; - pSMB->SearchFlags = - cpu_to_le16(CIFS_SEARCH_CLOSE_AT_END | CIFS_SEARCH_RETURN_RESUME); + pSMB->SearchFlags = cpu_to_le16(search_flags); name_len = psrch_inf->resume_name_len; params += name_len; @@ -4821,8 +4854,12 @@ max_len = data_end - temp; node->node_name = cifs_strndup_from_ucs(temp, max_len, is_unicode, nls_codepage); - if (!node->node_name) + if (!node->node_name) { rc = -ENOMEM; + goto parse_DFS_referrals_exit; + } + + ref++; } parse_DFS_referrals_exit: --- linux-3.2.0.orig/fs/cifs/asn1.c +++ linux-3.2.0/fs/cifs/asn1.c @@ -614,53 +614,10 @@ } } - /* mechlistMIC */ - if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { - /* Check if we have reached the end of the blob, but with - no mechListMic (e.g. NTLMSSP instead of KRB5) */ - if (ctx.error == ASN1_ERR_DEC_EMPTY) - goto decode_negtoken_exit; - cFYI(1, "Error decoding last part negTokenInit exit3"); - return 0; - } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { - /* tag = 3 indicating mechListMIC */ - cFYI(1, "Exit 4 cls = %d con = %d tag = %d end = %p (%d)", - cls, con, tag, end, *end); - return 0; - } - - /* sequence */ - if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { - cFYI(1, "Error decoding last part negTokenInit exit5"); - return 0; - } else if ((cls != ASN1_UNI) || (con != ASN1_CON) - || (tag != ASN1_SEQ)) { - cFYI(1, "cls = %d con = %d tag = %d end = %p (%d)", - cls, con, tag, end, *end); - } - - /* sequence of */ - if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { - cFYI(1, "Error decoding last part negTokenInit exit 7"); - return 0; - } else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { - cFYI(1, "Exit 8 cls = %d con = %d tag = %d end = %p (%d)", - cls, con, tag, end, *end); - return 0; - } - - /* general string */ - if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { - cFYI(1, "Error decoding last part negTokenInit exit9"); - return 0; - } else if ((cls != ASN1_UNI) || (con != ASN1_PRI) - || (tag != ASN1_GENSTR)) { - cFYI(1, "Exit10 cls = %d con = %d tag = %d end = %p (%d)", - cls, con, tag, end, *end); - return 0; - } - cFYI(1, "Need to call asn1_octets_decode() function for %s", - ctx.pointer); /* is this UTF-8 or ASCII? */ -decode_negtoken_exit: + /* + * We currently ignore anything at the end of the SPNEGO blob after + * the mechTypes have been parsed, since none of that info is + * used at the moment. + */ return 1; } --- linux-3.2.0.orig/fs/cifs/cifs_dfs_ref.c +++ linux-3.2.0/fs/cifs/cifs_dfs_ref.c @@ -18,6 +18,7 @@ #include #include #include +#include #include "cifsglob.h" #include "cifsproto.h" #include "cifsfs.h" @@ -150,7 +151,8 @@ * assuming that we have 'unc=' and 'ip=' in * the original sb_mountdata */ - md_len = strlen(sb_mountdata) + rc + strlen(ref->node_name) + 12; + md_len = strlen(sb_mountdata) + rc + strlen(ref->node_name) + 12 + + INET6_ADDRSTRLEN; mountdata = kzalloc(md_len+1, GFP_KERNEL); if (mountdata == NULL) { rc = -ENOMEM; @@ -226,6 +228,8 @@ compose_mount_options_err: kfree(mountdata); mountdata = ERR_PTR(rc); + kfree(*devname); + *devname = NULL; goto compose_mount_options_out; } --- linux-3.2.0.orig/fs/nilfs2/segment.c +++ linux-3.2.0/fs/nilfs2/segment.c @@ -2309,6 +2309,8 @@ if (!test_bit(NILFS_I_UPDATED, &ii->i_state)) continue; list_del_init(&ii->i_dirty); + truncate_inode_pages(&ii->vfs_inode.i_data, 0); + nilfs_btnode_cache_clear(&ii->i_btnode_cache); iput(&ii->vfs_inode); } } --- linux-3.2.0.orig/fs/nilfs2/super.c +++ linux-3.2.0/fs/nilfs2/super.c @@ -951,6 +951,8 @@ struct nilfs_root *root; int ret; + mutex_lock(&nilfs->ns_snapshot_mount_mutex); + down_read(&nilfs->ns_segctor_sem); ret = nilfs_cpfile_is_snapshot(nilfs->ns_cpfile, cno); up_read(&nilfs->ns_segctor_sem); @@ -975,6 +977,7 @@ ret = nilfs_get_root_dentry(s, root, root_dentry); nilfs_put_root(root); out: + mutex_unlock(&nilfs->ns_snapshot_mount_mutex); return ret; } --- linux-3.2.0.orig/fs/nilfs2/inode.c +++ linux-3.2.0/fs/nilfs2/inode.c @@ -195,13 +195,32 @@ static int nilfs_set_page_dirty(struct page *page) { - int ret = __set_page_dirty_buffers(page); + int ret = __set_page_dirty_nobuffers(page); - if (ret) { + if (page_has_buffers(page)) { struct inode *inode = page->mapping->host; - unsigned nr_dirty = 1 << (PAGE_SHIFT - inode->i_blkbits); + unsigned nr_dirty = 0; + struct buffer_head *bh, *head; - nilfs_set_file_dirty(inode, nr_dirty); + /* + * This page is locked by callers, and no other thread + * concurrently marks its buffers dirty since they are + * only dirtied through routines in fs/buffer.c in + * which call sites of mark_buffer_dirty are protected + * by page lock. + */ + bh = head = page_buffers(page); + do { + /* Do not mark hole blocks dirty */ + if (buffer_dirty(bh) || !buffer_mapped(bh)) + continue; + + set_buffer_dirty(bh); + nr_dirty++; + } while (bh = bh->b_this_page, bh != head); + + if (nr_dirty) + nilfs_set_file_dirty(inode, nr_dirty); } return ret; } --- linux-3.2.0.orig/fs/nilfs2/ioctl.c +++ linux-3.2.0/fs/nilfs2/ioctl.c @@ -182,7 +182,7 @@ if (copy_from_user(&cpmode, argp, sizeof(cpmode))) goto out; - down_read(&inode->i_sb->s_umount); + mutex_lock(&nilfs->ns_snapshot_mount_mutex); nilfs_transaction_begin(inode->i_sb, &ti, 0); ret = nilfs_cpfile_change_cpmode( @@ -192,7 +192,7 @@ else nilfs_transaction_commit(inode->i_sb); /* never fails */ - up_read(&inode->i_sb->s_umount); + mutex_unlock(&nilfs->ns_snapshot_mount_mutex); out: mnt_drop_write(filp->f_path.mnt); return ret; @@ -664,8 +664,11 @@ if (ret < 0) printk(KERN_ERR "NILFS: GC failed during preparation: " "cannot read source blocks: err=%d\n", ret); - else + else { + if (nilfs_sb_need_update(nilfs)) + set_nilfs_discontinued(nilfs); ret = nilfs_clean_segments(inode->i_sb, argv, kbufs); + } nilfs_remove_all_gcinodes(nilfs); clear_nilfs_gc_running(nilfs); --- linux-3.2.0.orig/fs/nilfs2/the_nilfs.h +++ linux-3.2.0/fs/nilfs2/the_nilfs.h @@ -47,6 +47,7 @@ * @ns_flags: flags * @ns_bdev: block device * @ns_sem: semaphore for shared states + * @ns_snapshot_mount_mutex: mutex to protect snapshot mounts * @ns_sbh: buffer heads of on-disk super blocks * @ns_sbp: pointers to super block data * @ns_sbwtime: previous write time of super block @@ -99,6 +100,7 @@ struct block_device *ns_bdev; struct rw_semaphore ns_sem; + struct mutex ns_snapshot_mount_mutex; /* * used for --- linux-3.2.0.orig/fs/nilfs2/gcinode.c +++ linux-3.2.0/fs/nilfs2/gcinode.c @@ -191,6 +191,8 @@ while (!list_empty(head)) { ii = list_first_entry(head, struct nilfs_inode_info, i_dirty); list_del_init(&ii->i_dirty); + truncate_inode_pages(&ii->vfs_inode.i_data, 0); + nilfs_btnode_cache_clear(&ii->i_btnode_cache); iput(&ii->vfs_inode); } } --- linux-3.2.0.orig/fs/nilfs2/the_nilfs.c +++ linux-3.2.0/fs/nilfs2/the_nilfs.c @@ -76,6 +76,7 @@ nilfs->ns_bdev = bdev; atomic_set(&nilfs->ns_ndirtyblks, 0); init_rwsem(&nilfs->ns_sem); + mutex_init(&nilfs->ns_snapshot_mount_mutex); INIT_LIST_HEAD(&nilfs->ns_dirty_files); INIT_LIST_HEAD(&nilfs->ns_gc_inodes); spin_lock_init(&nilfs->ns_inode_lock); @@ -515,6 +516,7 @@ brelse(sbh[1]); sbh[1] = NULL; sbp[1] = NULL; + valid[1] = 0; swp = 0; } if (!valid[swp]) { --- linux-3.2.0.orig/fs/proc/base.c +++ linux-3.2.0/fs/proc/base.c @@ -194,65 +194,7 @@ return result; } -static struct mm_struct *__check_mem_permission(struct task_struct *task) -{ - struct mm_struct *mm; - - mm = get_task_mm(task); - if (!mm) - return ERR_PTR(-EINVAL); - - /* - * A task can always look at itself, in case it chooses - * to use system calls instead of load instructions. - */ - if (task == current) - return mm; - - /* - * If current is actively ptrace'ing, and would also be - * permitted to freshly attach with ptrace now, permit it. - */ - if (task_is_stopped_or_traced(task)) { - int match; - rcu_read_lock(); - match = (ptrace_parent(task) == current); - rcu_read_unlock(); - if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH)) - return mm; - } - - /* - * No one else is allowed. - */ - mmput(mm); - return ERR_PTR(-EPERM); -} - -/* - * If current may access user memory in @task return a reference to the - * corresponding mm, otherwise ERR_PTR. - */ -static struct mm_struct *check_mem_permission(struct task_struct *task) -{ - struct mm_struct *mm; - int err; - - /* - * Avoid racing if task exec's as we might get a new mm but validate - * against old credentials. - */ - err = mutex_lock_killable(&task->signal->cred_guard_mutex); - if (err) - return ERR_PTR(err); - - mm = __check_mem_permission(task); - mutex_unlock(&task->signal->cred_guard_mutex); - - return mm; -} - -struct mm_struct *mm_for_maps(struct task_struct *task) +static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode) { struct mm_struct *mm; int err; @@ -263,7 +205,7 @@ mm = get_task_mm(task); if (mm && mm != current->mm && - !ptrace_may_access(task, PTRACE_MODE_READ)) { + !ptrace_may_access(task, mode)) { mmput(mm); mm = ERR_PTR(-EACCES); } @@ -272,6 +214,11 @@ return mm; } +struct mm_struct *mm_for_maps(struct task_struct *task) +{ + return mm_access(task, PTRACE_MODE_READ); +} + static int proc_pid_cmdline(struct task_struct *task, char * buffer) { int res = 0; @@ -627,6 +574,52 @@ return 0; } +/* + * May current process learn task's sched/cmdline info (for hide_pid_min=1) + * or euid/egid (for hide_pid_min=2)? + */ +static bool has_pid_permissions(struct pid_namespace *pid, + struct task_struct *task, + int hide_pid_min) +{ + if (pid->hide_pid < hide_pid_min) + return true; + if (in_group_p(pid->pid_gid)) + return true; + return ptrace_may_access(task, PTRACE_MODE_READ); +} + + +static int proc_pid_permission(struct inode *inode, int mask) +{ + struct pid_namespace *pid = inode->i_sb->s_fs_info; + struct task_struct *task; + bool has_perms; + + task = get_proc_task(inode); + if (!task) + return -ESRCH; + has_perms = has_pid_permissions(pid, task, 1); + put_task_struct(task); + + if (!has_perms) { + if (pid->hide_pid == 2) { + /* + * Let's make getdents(), stat(), and open() + * consistent with each other. If a process + * may not stat() a file, it shouldn't be seen + * in procfs at all. + */ + return -ENOENT; + } + + return -EPERM; + } + return generic_permission(inode, mask); +} + + + static const struct inode_operations proc_def_inode_operations = { .setattr = proc_setattr, }; @@ -816,133 +809,101 @@ static int mem_open(struct inode* inode, struct file* file) { - file->private_data = (void*)((long)current->self_exec_id); - /* OK to pass negative loff_t, we can catch out-of-range */ - file->f_mode |= FMODE_UNSIGNED_OFFSET; - return 0; -} - -static ssize_t mem_read(struct file * file, char __user * buf, - size_t count, loff_t *ppos) -{ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); - char *page; - unsigned long src = *ppos; - int ret = -ESRCH; struct mm_struct *mm; if (!task) - goto out_no_task; + return -ESRCH; - ret = -ENOMEM; - page = (char *)__get_free_page(GFP_TEMPORARY); - if (!page) - goto out; + mm = mm_access(task, PTRACE_MODE_ATTACH); + put_task_struct(task); - mm = check_mem_permission(task); - ret = PTR_ERR(mm); if (IS_ERR(mm)) - goto out_free; - - ret = -EIO; - - if (file->private_data != (void*)((long)current->self_exec_id)) - goto out_put; - - ret = 0; - - while (count > 0) { - int this_len, retval; - - this_len = (count > PAGE_SIZE) ? PAGE_SIZE : count; - retval = access_remote_vm(mm, src, page, this_len, 0); - if (!retval) { - if (!ret) - ret = -EIO; - break; - } + return PTR_ERR(mm); - if (copy_to_user(buf, page, retval)) { - ret = -EFAULT; - break; - } - - ret += retval; - src += retval; - buf += retval; - count -= retval; + if (mm) { + /* ensure this mm_struct can't be freed */ + atomic_inc(&mm->mm_count); + /* but do not pin its memory */ + mmput(mm); } - *ppos = src; -out_put: - mmput(mm); -out_free: - free_page((unsigned long) page); -out: - put_task_struct(task); -out_no_task: - return ret; + /* OK to pass negative loff_t, we can catch out-of-range */ + file->f_mode |= FMODE_UNSIGNED_OFFSET; + file->private_data = mm; + + return 0; } -static ssize_t mem_write(struct file * file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t mem_rw(struct file *file, char __user *buf, + size_t count, loff_t *ppos, int write) { - int copied; + struct mm_struct *mm = file->private_data; + unsigned long addr = *ppos; + ssize_t copied; char *page; - struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); - unsigned long dst = *ppos; - struct mm_struct *mm; - copied = -ESRCH; - if (!task) - goto out_no_task; + if (!mm) + return 0; - copied = -ENOMEM; page = (char *)__get_free_page(GFP_TEMPORARY); if (!page) - goto out_task; - - mm = check_mem_permission(task); - copied = PTR_ERR(mm); - if (IS_ERR(mm)) - goto out_free; - - copied = -EIO; - if (file->private_data != (void *)((long)current->self_exec_id)) - goto out_mm; + return -ENOMEM; copied = 0; + if (!atomic_inc_not_zero(&mm->mm_users)) + goto free; + while (count > 0) { - int this_len, retval; + int this_len = min_t(int, count, PAGE_SIZE); - this_len = (count > PAGE_SIZE) ? PAGE_SIZE : count; - if (copy_from_user(page, buf, this_len)) { + if (write && copy_from_user(page, buf, this_len)) { copied = -EFAULT; break; } - retval = access_remote_vm(mm, dst, page, this_len, 1); - if (!retval) { + + this_len = access_remote_vm(mm, addr, page, this_len, write); + if (!this_len) { if (!copied) copied = -EIO; break; } - copied += retval; - buf += retval; - dst += retval; - count -= retval; + + if (!write && copy_to_user(buf, page, this_len)) { + copied = -EFAULT; + break; + } + + buf += this_len; + addr += this_len; + copied += this_len; + count -= this_len; } - *ppos = dst; + *ppos = addr; -out_mm: mmput(mm); -out_free: +free: free_page((unsigned long) page); -out_task: - put_task_struct(task); -out_no_task: return copied; } +static ssize_t mem_read(struct file *file, char __user *buf, + size_t count, loff_t *ppos) +{ + return mem_rw(file, buf, count, ppos, 0); +} + +#define mem_write NULL + +#ifndef mem_write +/* This is a security hazard */ +static ssize_t mem_write(struct file *file, const char __user *buf, + size_t count, loff_t *ppos) +{ + return mem_rw(file, (char __user*)buf, count, ppos, 1); +} +#endif + loff_t mem_lseek(struct file *file, loff_t offset, int orig) { switch (orig) { @@ -959,11 +920,20 @@ return file->f_pos; } +static int mem_release(struct inode *inode, struct file *file) +{ + struct mm_struct *mm = file->private_data; + if (mm) + mmdrop(mm); + return 0; +} + static const struct file_operations proc_mem_operations = { .llseek = mem_lseek, .read = mem_read, .write = mem_write, .open = mem_open, + .release = mem_release, }; static ssize_t environ_read(struct file *file, char __user *buf, @@ -1723,6 +1693,7 @@ struct inode *inode = dentry->d_inode; struct task_struct *task; const struct cred *cred; + struct pid_namespace *pid = dentry->d_sb->s_fs_info; generic_fillattr(inode, stat); @@ -1731,6 +1702,14 @@ stat->gid = 0; task = pid_task(proc_pid(inode), PIDTYPE_PID); if (task) { + if (!has_pid_permissions(pid, task, 2)) { + rcu_read_unlock(); + /* + * This doesn't prevent learning whether PID exists, + * it only makes getattr() consistent with readdir(). + */ + return -ENOENT; + } if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) || task_dumpable(task)) { cred = __task_cred(task); @@ -2875,6 +2854,7 @@ .lookup = proc_tgid_base_lookup, .getattr = pid_getattr, .setattr = proc_setattr, + .permission = proc_pid_permission, }; static void proc_flush_task_mnt(struct vfsmount *mnt, pid_t pid, pid_t tgid) @@ -3078,6 +3058,12 @@ proc_pid_instantiate, iter.task, NULL); } +static int fake_filldir(void *buf, const char *name, int namelen, + loff_t offset, u64 ino, unsigned d_type) +{ + return 0; +} + /* for the /proc/ directory itself, after non-process stuff has been done */ int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir) { @@ -3085,6 +3071,7 @@ struct task_struct *reaper; struct tgid_iter iter; struct pid_namespace *ns; + filldir_t __filldir; if (filp->f_pos >= PID_MAX_LIMIT + TGID_OFFSET) goto out_no_task; @@ -3106,8 +3093,13 @@ for (iter = next_tgid(ns, iter); iter.task; iter.tgid += 1, iter = next_tgid(ns, iter)) { + if (has_pid_permissions(ns, iter.task, 2)) + __filldir = filldir; + else + __filldir = fake_filldir; + filp->f_pos = iter.tgid + TGID_OFFSET; - if (proc_pid_fill_cache(filp, dirent, filldir, iter) < 0) { + if (proc_pid_fill_cache(filp, dirent, __filldir, iter) < 0) { put_task_struct(iter.task); goto out; } @@ -3442,6 +3434,7 @@ .lookup = proc_task_lookup, .getattr = proc_task_getattr, .setattr = proc_setattr, + .permission = proc_pid_permission, }; static const struct file_operations proc_task_operations = { --- linux-3.2.0.orig/fs/proc/proc_sysctl.c +++ linux-3.2.0/fs/proc/proc_sysctl.c @@ -123,9 +123,6 @@ err = ERR_PTR(-ENOMEM); inode = proc_sys_make_inode(dir->i_sb, h ? h : head, p); - if (h) - sysctl_head_finish(h); - if (!inode) goto out; @@ -134,6 +131,8 @@ d_add(dentry, inode); out: + if (h) + sysctl_head_finish(h); sysctl_head_finish(head); return err; } @@ -188,20 +187,32 @@ static int proc_sys_open(struct inode *inode, struct file *filp) { + struct ctl_table_header *head = grab_header(inode); struct ctl_table *table = PROC_I(inode)->sysctl_entry; + /* sysctl was unregistered */ + if (IS_ERR(head)) + return PTR_ERR(head); + if (table->poll) filp->private_data = proc_sys_poll_event(table->poll); + sysctl_head_finish(head); + return 0; } static unsigned int proc_sys_poll(struct file *filp, poll_table *wait) { struct inode *inode = filp->f_path.dentry->d_inode; + struct ctl_table_header *head = grab_header(inode); struct ctl_table *table = PROC_I(inode)->sysctl_entry; - unsigned long event = (unsigned long)filp->private_data; unsigned int ret = DEFAULT_POLLMASK; + unsigned long event; + + /* sysctl was unregistered */ + if (IS_ERR(head)) + return POLLERR | POLLHUP; if (!table->proc_handler) goto out; @@ -209,6 +220,7 @@ if (!table->poll) goto out; + event = (unsigned long)filp->private_data; poll_wait(filp, &table->poll->wait, wait); if (event != atomic_read(&table->poll->event)) { @@ -217,6 +229,8 @@ } out: + sysctl_head_finish(head); + return ret; } --- linux-3.2.0.orig/fs/proc/version_signature.c +++ linux-3.2.0/fs/proc/version_signature.c @@ -0,0 +1,31 @@ +#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 file_operations version_signature_proc_fops = { + .open = version_signature_proc_open, + .read = seq_read, + .llseek = seq_lseek, + .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-3.2.0.orig/fs/proc/Makefile +++ linux-3.2.0/fs/proc/Makefile @@ -28,3 +28,4 @@ proc-$(CONFIG_PROC_DEVICETREE) += proc_devtree.o proc-$(CONFIG_PRINTK) += kmsg.o proc-$(CONFIG_PROC_PAGE_MONITOR) += page.o +proc-y += version_signature.o --- linux-3.2.0.orig/fs/proc/inode.c +++ linux-3.2.0/fs/proc/inode.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -17,7 +18,9 @@ #include #include #include +#include #include +#include #include #include @@ -102,12 +105,27 @@ init_once); } +static int proc_show_options(struct seq_file *seq, struct vfsmount *mnt) +{ + struct super_block *sb = mnt->mnt_sb; + struct pid_namespace *pid = sb->s_fs_info; + + if (pid->pid_gid) + seq_printf(seq, ",gid=%lu", (unsigned long)pid->pid_gid); + if (pid->hide_pid != 0) + seq_printf(seq, ",hidepid=%u", pid->hide_pid); + + return 0; +} + static const struct super_operations proc_sops = { .alloc_inode = proc_alloc_inode, .destroy_inode = proc_destroy_inode, .drop_inode = generic_delete_inode, .evict_inode = proc_evict_inode, .statfs = simple_statfs, + .remount_fs = proc_remount, + .show_options = proc_show_options, }; static void __pde_users_dec(struct proc_dir_entry *pde) @@ -427,12 +445,10 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) { - struct inode * inode; + struct inode *inode = new_inode_pseudo(sb); - inode = iget_locked(sb, de->low_ino); - if (!inode) - return NULL; - if (inode->i_state & I_NEW) { + if (inode) { + inode->i_ino = de->low_ino; inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; PROC_I(inode)->fd = 0; PROC_I(inode)->pde = de; @@ -461,9 +477,7 @@ inode->i_fop = de->proc_fops; } } - unlock_new_inode(inode); - } else - pde_put(de); + } return inode; } --- linux-3.2.0.orig/fs/proc/namespaces.c +++ linux-3.2.0/fs/proc/namespaces.c @@ -54,7 +54,7 @@ ei->ns_ops = ns_ops; ei->ns = ns; - dentry->d_op = &pid_dentry_operations; + d_set_d_op(dentry, &pid_dentry_operations); d_add(dentry, inode); /* Close the race of the process dying before we return the dentry */ if (pid_revalidate(dentry, NULL)) --- linux-3.2.0.orig/fs/proc/task_mmu.c +++ linux-3.2.0/fs/proc/task_mmu.c @@ -409,6 +409,9 @@ } else { spin_unlock(&walk->mm->page_table_lock); } + + if (pmd_trans_unstable(pmd)) + return 0; /* * The mmap_sem held all the way back in m_start() is what * keeps khugepaged out of here and from collapsing things @@ -507,6 +510,8 @@ struct page *page; split_huge_page_pmd(walk->mm, pmd); + if (pmd_trans_unstable(pmd)) + return 0; pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); for (; addr != end; pte++, addr += PAGE_SIZE) { @@ -518,6 +523,9 @@ if (!page) continue; + if (PageReserved(page)) + continue; + /* Clear accessed and referenced bits. */ ptep_test_and_clear_young(vma, addr, pte); ClearPageReferenced(page); @@ -667,6 +675,8 @@ int err = 0; split_huge_page_pmd(walk->mm, pmd); + if (pmd_trans_unstable(pmd)) + return 0; /* find the first VMA at or above 'addr' */ vma = find_vma(walk->mm, addr); @@ -958,6 +968,8 @@ spin_unlock(&walk->mm->page_table_lock); } + if (pmd_trans_unstable(pmd)) + return 0; orig_pte = pte = pte_offset_map_lock(walk->mm, pmd, addr, &ptl); do { struct page *page = can_gather_numa_stats(*pte, md->vma, addr); --- linux-3.2.0.orig/fs/proc/stat.c +++ linux-3.2.0/fs/proc/stat.c @@ -24,11 +24,14 @@ static cputime64_t get_idle_time(int cpu) { - u64 idle_time = get_cpu_idle_time_us(cpu, NULL); + u64 idle_time = -1ULL; cputime64_t idle; + if (cpu_online(cpu)) + idle_time = get_cpu_idle_time_us(cpu, NULL); + if (idle_time == -1ULL) { - /* !NO_HZ so we can rely on cpustat.idle */ + /* !NO_HZ or cpu offline so we can rely on cpustat.idle */ idle = kstat_cpu(cpu).cpustat.idle; idle = cputime64_add(idle, arch_idle_time(cpu)); } else @@ -39,11 +42,14 @@ static cputime64_t get_iowait_time(int cpu) { - u64 iowait_time = get_cpu_iowait_time_us(cpu, NULL); + u64 iowait_time = -1ULL; cputime64_t iowait; + if (cpu_online(cpu)) + iowait_time = get_cpu_iowait_time_us(cpu, NULL); + if (iowait_time == -1ULL) - /* !NO_HZ so we can rely on cpustat.iowait */ + /* !NO_HZ or cpu offline so we can rely on cpustat.iowait */ iowait = kstat_cpu(cpu).cpustat.iowait; else iowait = usecs_to_cputime64(iowait_time); --- linux-3.2.0.orig/fs/proc/uptime.c +++ linux-3.2.0/fs/proc/uptime.c @@ -11,15 +11,20 @@ { struct timespec uptime; struct timespec idle; + cputime64_t idletime; + u64 nsec; + u32 rem; int i; - cputime_t idletime = cputime_zero; + idletime = 0; for_each_possible_cpu(i) idletime = cputime64_add(idletime, kstat_cpu(i).cpustat.idle); do_posix_clock_monotonic_gettime(&uptime); monotonic_to_bootbased(&uptime); - cputime_to_timespec(idletime, &idle); + nsec = cputime64_to_jiffies64(idletime) * TICK_NSEC; + idle.tv_sec = div_u64_rem(nsec, NSEC_PER_SEC, &rem); + idle.tv_nsec = rem; seq_printf(m, "%lu.%02lu %lu.%02lu\n", (unsigned long) uptime.tv_sec, (uptime.tv_nsec / (NSEC_PER_SEC / 100)), --- linux-3.2.0.orig/fs/proc/array.c +++ linux-3.2.0/fs/proc/array.c @@ -204,7 +204,7 @@ group_info = cred->group_info; task_unlock(p); - for (g = 0; g < min(group_info->ngroups, NGROUPS_SMALL); g++) + for (g = 0; g < group_info->ngroups; g++) seq_printf(m, "%d ", GROUP_AT(group_info, g)); put_cred(cred); --- linux-3.2.0.orig/fs/proc/internal.h +++ linux-3.2.0/fs/proc/internal.h @@ -117,6 +117,7 @@ int proc_fill_super(struct super_block *); struct inode *proc_get_inode(struct super_block *, struct proc_dir_entry *); +int proc_remount(struct super_block *sb, int *flags, char *data); /* * These are generic /proc routines that use the internal --- linux-3.2.0.orig/fs/proc/root.c +++ linux-3.2.0/fs/proc/root.c @@ -18,6 +18,7 @@ #include #include #include +#include #include "internal.h" @@ -36,6 +37,63 @@ return err; } +enum { + Opt_gid, Opt_hidepid, Opt_err, +}; + +static const match_table_t tokens = { + {Opt_hidepid, "hidepid=%u"}, + {Opt_gid, "gid=%u"}, + {Opt_err, NULL}, +}; + +static int proc_parse_options(char *options, struct pid_namespace *pid) +{ + char *p; + substring_t args[MAX_OPT_ARGS]; + int option; + + if (!options) + return 1; + + while ((p = strsep(&options, ",")) != NULL) { + int token; + if (!*p) + continue; + + args[0].to = args[0].from = 0; + token = match_token(p, tokens, args); + switch (token) { + case Opt_gid: + if (match_int(&args[0], &option)) + return 0; + pid->pid_gid = option; + break; + case Opt_hidepid: + if (match_int(&args[0], &option)) + return 0; + if (option < 0 || option > 2) { + pr_err("proc: hidepid value must be between 0 and 2.\n"); + return 0; + } + pid->hide_pid = option; + break; + default: + pr_err("proc: unrecognized mount option \"%s\" " + "or missing value\n", p); + return 0; + } + } + + return 1; +} + +int proc_remount(struct super_block *sb, int *flags, char *data) +{ + struct pid_namespace *pid = sb->s_fs_info; + return !proc_parse_options(data, pid); +} + static struct dentry *proc_mount(struct file_system_type *fs_type, int flags, const char *dev_name, void *data) { @@ -43,11 +101,15 @@ struct super_block *sb; struct pid_namespace *ns; struct proc_inode *ei; + char *options; - if (flags & MS_KERNMOUNT) + if (flags & MS_KERNMOUNT) { ns = (struct pid_namespace *)data; - else + options = NULL; + } else { ns = current->nsproxy->pid_ns; + options = data; + } sb = sget(fs_type, proc_test_super, proc_set_super, ns); if (IS_ERR(sb)) @@ -55,6 +117,10 @@ if (!sb->s_root) { sb->s_flags = flags; + if (!proc_parse_options(options, ns)) { + deactivate_locked_super(sb); + return ERR_PTR(-EINVAL); + } err = proc_fill_super(sb); if (err) { deactivate_locked_super(sb); --- linux-3.2.0.orig/fs/partitions/check.c +++ linux-3.2.0/fs/partitions/check.c @@ -399,11 +399,11 @@ if (!part) return; - blk_free_devt(part_devt(part)); rcu_assign_pointer(ptbl->part[partno], NULL); rcu_assign_pointer(ptbl->last_lookup, NULL); kobject_put(part->holder_dir); device_del(part_to_dev(part)); + blk_free_devt(part_devt(part)); hd_struct_put(part); } @@ -539,17 +539,11 @@ } } -int rescan_partitions(struct gendisk *disk, struct block_device *bdev) +static int drop_partitions(struct gendisk *disk, struct block_device *bdev) { - struct parsed_partitions *state = NULL; struct disk_part_iter piter; struct hd_struct *part; - int p, highest, res; -rescan: - if (state && !IS_ERR(state)) { - kfree(state); - state = NULL; - } + int res; if (bdev->bd_part_count) return -EBUSY; @@ -562,6 +556,24 @@ delete_partition(disk, part->partno); disk_part_iter_exit(&piter); + return 0; +} + +int rescan_partitions(struct gendisk *disk, struct block_device *bdev) +{ + struct parsed_partitions *state = NULL; + struct hd_struct *part; + int p, highest, res; +rescan: + if (state && !IS_ERR(state)) { + kfree(state); + state = NULL; + } + + res = drop_partitions(disk, bdev); + if (res) + return res; + if (disk->fops->revalidate_disk) disk->fops->revalidate_disk(disk); check_disk_size_change(disk, bdev); @@ -665,6 +677,26 @@ return 0; } +int invalidate_partitions(struct gendisk *disk, struct block_device *bdev) +{ + int res; + + if (!bdev->bd_invalidated) + return 0; + + res = drop_partitions(disk, bdev); + if (res) + return res; + + set_capacity(disk, 0); + check_disk_size_change(disk, bdev); + bdev->bd_invalidated = 0; + /* tell userspace that the media / partition table may have changed */ + kobject_uevent(&disk_to_dev(disk)->kobj, KOBJ_CHANGE); + + return 0; +} + unsigned char *read_dev_sector(struct block_device *bdev, sector_t n, Sector *p) { struct address_space *mapping = bdev->bd_inode->i_mapping; --- linux-3.2.0.orig/fs/ext4/ext4_jbd2.h +++ linux-3.2.0/fs/ext4/ext4_jbd2.h @@ -261,43 +261,45 @@ /* super.c */ int ext4_force_commit(struct super_block *sb); -static inline int ext4_should_journal_data(struct inode *inode) +/* + * Ext4 inode journal modes + */ +#define EXT4_INODE_JOURNAL_DATA_MODE 0x01 /* journal data mode */ +#define EXT4_INODE_ORDERED_DATA_MODE 0x02 /* ordered data mode */ +#define EXT4_INODE_WRITEBACK_DATA_MODE 0x04 /* writeback data mode */ + +static inline int ext4_inode_journal_mode(struct inode *inode) { if (EXT4_JOURNAL(inode) == NULL) - return 0; - if (!S_ISREG(inode->i_mode)) - return 1; - if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) - return 1; - if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA)) - return 1; - return 0; + return EXT4_INODE_WRITEBACK_DATA_MODE; /* writeback */ + /* We do not support data journalling with delayed allocation */ + if (!S_ISREG(inode->i_mode) || + test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) + return EXT4_INODE_JOURNAL_DATA_MODE; /* journal data */ + if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA) && + !test_opt(inode->i_sb, DELALLOC)) + return EXT4_INODE_JOURNAL_DATA_MODE; /* journal data */ + if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA) + return EXT4_INODE_ORDERED_DATA_MODE; /* ordered */ + if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_WRITEBACK_DATA) + return EXT4_INODE_WRITEBACK_DATA_MODE; /* writeback */ + else + BUG(); +} + +static inline int ext4_should_journal_data(struct inode *inode) +{ + return ext4_inode_journal_mode(inode) & EXT4_INODE_JOURNAL_DATA_MODE; } static inline int ext4_should_order_data(struct inode *inode) { - if (EXT4_JOURNAL(inode) == NULL) - return 0; - if (!S_ISREG(inode->i_mode)) - return 0; - if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA)) - return 0; - if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA) - return 1; - return 0; + return ext4_inode_journal_mode(inode) & EXT4_INODE_ORDERED_DATA_MODE; } static inline int ext4_should_writeback_data(struct inode *inode) { - if (EXT4_JOURNAL(inode) == NULL) - return 1; - if (!S_ISREG(inode->i_mode)) - return 0; - if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA)) - return 0; - if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_WRITEBACK_DATA) - return 1; - return 0; + return ext4_inode_journal_mode(inode) & EXT4_INODE_WRITEBACK_DATA_MODE; } /* --- linux-3.2.0.orig/fs/ext4/Kconfig +++ linux-3.2.0/fs/ext4/Kconfig @@ -82,4 +82,5 @@ Enables run-time debugging support for the ext4 filesystem. If you select Y here, then you will be able to turn on debugging - with a command such as "echo 1 > /sys/kernel/debug/ext4/mballoc-debug" + with a command such as: + echo 1 > /sys/module/ext4/parameters/mballoc_debug --- linux-3.2.0.orig/fs/ext4/resize.c +++ linux-3.2.0/fs/ext4/resize.c @@ -142,7 +142,7 @@ bh = sb_getblk(sb, blk); if (!bh) - return ERR_PTR(-EIO); + return ERR_PTR(-ENOMEM); if ((err = ext4_journal_get_write_access(handle, bh))) { brelse(bh); bh = ERR_PTR(err); @@ -220,7 +220,7 @@ gdb = sb_getblk(sb, block); if (!gdb) { - err = -EIO; + err = -ENOMEM; goto exit_journal; } if ((err = ext4_journal_get_write_access(handle, gdb))) { @@ -694,7 +694,7 @@ bh = sb_getblk(sb, group * bpg + blk_off); if (!bh) { - err = -EIO; + err = -ENOMEM; break; } ext4_debug("update metadata backup %#04lx\n", @@ -938,7 +938,7 @@ /* Update the free space counts */ percpu_counter_add(&sbi->s_freeclusters_counter, - EXT4_B2C(sbi, input->free_blocks_count)); + EXT4_NUM_B2C(sbi, input->free_blocks_count)); percpu_counter_add(&sbi->s_freeinodes_counter, EXT4_INODES_PER_GROUP(sb)); @@ -946,12 +946,17 @@ sbi->s_log_groups_per_flex) { ext4_group_t flex_group; flex_group = ext4_flex_group(sbi, input->group); - atomic_add(EXT4_B2C(sbi, input->free_blocks_count), - &sbi->s_flex_groups[flex_group].free_clusters); + atomic64_add(EXT4_NUM_B2C(sbi, input->free_blocks_count), + &sbi->s_flex_groups[flex_group].free_clusters); atomic_add(EXT4_INODES_PER_GROUP(sb), &sbi->s_flex_groups[flex_group].free_inodes); } + /* + * Update the fs overhead information + */ + ext4_calculate_overhead(sb); + ext4_handle_dirty_super(handle, sb); exit_journal: --- linux-3.2.0.orig/fs/ext4/fsync.c +++ linux-3.2.0/fs/ext4/fsync.c @@ -89,6 +89,7 @@ io = list_entry(ei->i_completed_io_list.next, ext4_io_end_t, list); list_del_init(&io->list); + io->flag |= EXT4_IO_END_IN_FSYNC; /* * Calling ext4_end_io_nolock() to convert completed * IO to written. @@ -108,6 +109,7 @@ if (ret < 0) ret2 = ret; spin_lock_irqsave(&ei->i_completed_io_lock, flags); + io->flag &= ~EXT4_IO_END_IN_FSYNC; } spin_unlock_irqrestore(&ei->i_completed_io_lock, flags); return (ret2 < 0) ? ret2 : 0; @@ -258,8 +260,7 @@ if (journal->j_flags & JBD2_BARRIER && !jbd2_trans_will_send_data_barrier(journal, commit_tid)) needs_barrier = true; - jbd2_log_start_commit(journal, commit_tid); - ret = jbd2_log_wait_commit(journal, commit_tid); + ret = jbd2_complete_transaction(journal, commit_tid); if (needs_barrier) blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL); out: --- linux-3.2.0.orig/fs/ext4/super.c +++ linux-3.2.0/fs/ext4/super.c @@ -480,6 +480,7 @@ printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: comm %s: %pV\n", sb->s_id, function, line, current->comm, &vaf); va_end(args); + save_error_info(sb, function, line); ext4_handle_error(sb); } @@ -903,6 +904,7 @@ ei->i_reserved_meta_blocks = 0; ei->i_allocated_meta_blocks = 0; ei->i_da_metadata_calc_len = 0; + ei->i_da_metadata_calc_last_lblock = 0; spin_lock_init(&(ei->i_block_reservation_lock)); #ifdef CONFIG_QUOTA ei->i_reserved_quota = 0; @@ -1096,7 +1098,7 @@ } if (sbi->s_max_batch_time != EXT4_DEF_MAX_BATCH_TIME) { seq_printf(seq, ",max_batch_time=%u", - (unsigned) sbi->s_min_batch_time); + (unsigned) sbi->s_max_batch_time); } /* @@ -1940,6 +1942,16 @@ } } #endif + if (test_opt(sb, DIOREAD_NOLOCK)) { + int blocksize = + BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size); + + if (blocksize < PAGE_CACHE_SIZE) { + ext4_msg(sb, KERN_ERR, "can't mount with " + "dioread_nolock if block size != PAGE_SIZE"); + return 0; + } + } return 1; } @@ -2006,17 +2018,16 @@ struct ext4_group_desc *gdp = NULL; ext4_group_t flex_group_count; ext4_group_t flex_group; - int groups_per_flex = 0; + unsigned int groups_per_flex = 0; size_t size; int i; sbi->s_log_groups_per_flex = sbi->s_es->s_log_groups_per_flex; - groups_per_flex = 1 << sbi->s_log_groups_per_flex; - - if (groups_per_flex < 2) { + if (sbi->s_log_groups_per_flex < 1 || sbi->s_log_groups_per_flex > 31) { sbi->s_log_groups_per_flex = 0; return 1; } + groups_per_flex = 1 << sbi->s_log_groups_per_flex; /* We allocate both existing and potentially added groups */ flex_group_count = ((sbi->s_groups_count + groups_per_flex - 1) + @@ -2036,8 +2047,8 @@ flex_group = ext4_flex_group(sbi, i); atomic_add(ext4_free_inodes_count(sb, gdp), &sbi->s_flex_groups[flex_group].free_inodes); - atomic_add(ext4_free_group_clusters(sb, gdp), - &sbi->s_flex_groups[flex_group].free_clusters); + atomic64_add(ext4_free_group_clusters(sb, gdp), + &sbi->s_flex_groups[flex_group].free_clusters); atomic_add(ext4_used_dirs_count(sb, gdp), &sbi->s_flex_groups[flex_group].used_dirs); } @@ -2249,7 +2260,9 @@ __func__, inode->i_ino, inode->i_size); jbd_debug(2, "truncating inode %lu to %lld bytes\n", inode->i_ino, inode->i_size); + mutex_lock(&inode->i_mutex); ext4_truncate(inode); + mutex_unlock(&inode->i_mutex); nr_truncates++; } else { ext4_msg(sb, KERN_DEBUG, @@ -2505,18 +2518,6 @@ EXT4_SB(sb)->s_sectors_written_start) >> 1))); } -static ssize_t extent_cache_hits_show(struct ext4_attr *a, - struct ext4_sb_info *sbi, char *buf) -{ - return snprintf(buf, PAGE_SIZE, "%lu\n", sbi->extent_cache_hits); -} - -static ssize_t extent_cache_misses_show(struct ext4_attr *a, - struct ext4_sb_info *sbi, char *buf) -{ - return snprintf(buf, PAGE_SIZE, "%lu\n", sbi->extent_cache_misses); -} - static ssize_t inode_readahead_blks_store(struct ext4_attr *a, struct ext4_sb_info *sbi, const char *buf, size_t count) @@ -2574,8 +2575,6 @@ EXT4_RO_ATTR(delayed_allocation_blocks); EXT4_RO_ATTR(session_write_kbytes); EXT4_RO_ATTR(lifetime_write_kbytes); -EXT4_RO_ATTR(extent_cache_hits); -EXT4_RO_ATTR(extent_cache_misses); EXT4_ATTR_OFFSET(inode_readahead_blks, 0644, sbi_ui_show, inode_readahead_blks_store, s_inode_readahead_blks); EXT4_RW_ATTR_SBI_UI(inode_goal, s_inode_goal); @@ -2591,8 +2590,6 @@ ATTR_LIST(delayed_allocation_blocks), ATTR_LIST(session_write_kbytes), ATTR_LIST(lifetime_write_kbytes), - ATTR_LIST(extent_cache_hits), - ATTR_LIST(extent_cache_misses), ATTR_LIST(inode_readahead_blks), ATTR_LIST(inode_goal), ATTR_LIST(mb_stats), @@ -3099,6 +3096,118 @@ kthread_stop(ext4_lazyinit_task); } +/* + * Note: calculating the overhead so we can be compatible with + * historical BSD practice is quite difficult in the face of + * clusters/bigalloc. This is because multiple metadata blocks from + * different block group can end up in the same allocation cluster. + * Calculating the exact overhead in the face of clustered allocation + * requires either O(all block bitmaps) in memory or O(number of block + * groups**2) in time. We will still calculate the superblock for + * older file systems --- and if we come across with a bigalloc file + * system with zero in s_overhead_clusters the estimate will be close to + * correct especially for very large cluster sizes --- but for newer + * file systems, it's better to calculate this figure once at mkfs + * time, and store it in the superblock. If the superblock value is + * present (even for non-bigalloc file systems), we will use it. + */ +static int count_overhead(struct super_block *sb, ext4_group_t grp, + char *buf) +{ + struct ext4_sb_info *sbi = EXT4_SB(sb); + struct ext4_group_desc *gdp; + ext4_fsblk_t first_block, last_block, b; + ext4_group_t i, ngroups = ext4_get_groups_count(sb); + int s, j, count = 0; + + if (!EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_BIGALLOC)) + return (ext4_bg_has_super(sb, grp) + ext4_bg_num_gdb(sb, grp) + + sbi->s_itb_per_group + 2); + + first_block = le32_to_cpu(sbi->s_es->s_first_data_block) + + (grp * EXT4_BLOCKS_PER_GROUP(sb)); + last_block = first_block + EXT4_BLOCKS_PER_GROUP(sb) - 1; + for (i = 0; i < ngroups; i++) { + gdp = ext4_get_group_desc(sb, i, NULL); + b = ext4_block_bitmap(sb, gdp); + if (b >= first_block && b <= last_block) { + ext4_set_bit(EXT4_B2C(sbi, b - first_block), buf); + count++; + } + b = ext4_inode_bitmap(sb, gdp); + if (b >= first_block && b <= last_block) { + ext4_set_bit(EXT4_B2C(sbi, b - first_block), buf); + count++; + } + b = ext4_inode_table(sb, gdp); + if (b >= first_block && b + sbi->s_itb_per_group <= last_block) + for (j = 0; j < sbi->s_itb_per_group; j++, b++) { + int c = EXT4_B2C(sbi, b - first_block); + ext4_set_bit(c, buf); + count++; + } + if (i != grp) + continue; + s = 0; + if (ext4_bg_has_super(sb, grp)) { + ext4_set_bit(s++, buf); + count++; + } + for (j = ext4_bg_num_gdb(sb, grp); j > 0; j--) { + ext4_set_bit(EXT4_B2C(sbi, s++), buf); + count++; + } + } + if (!count) + return 0; + return EXT4_CLUSTERS_PER_GROUP(sb) - + ext4_count_free(buf, EXT4_CLUSTERS_PER_GROUP(sb) / 8); +} + +/* + * Compute the overhead and stash it in sbi->s_overhead + */ +int ext4_calculate_overhead(struct super_block *sb) +{ + struct ext4_sb_info *sbi = EXT4_SB(sb); + struct ext4_super_block *es = sbi->s_es; + ext4_group_t i, ngroups = ext4_get_groups_count(sb); + ext4_fsblk_t overhead = 0; + char *buf = (char *) get_zeroed_page(GFP_KERNEL); + + memset(buf, 0, PAGE_SIZE); + if (!buf) + return -ENOMEM; + + /* + * Compute the overhead (FS structures). This is constant + * for a given filesystem unless the number of block groups + * changes so we cache the previous value until it does. + */ + + /* + * All of the blocks before first_data_block are overhead + */ + overhead = EXT4_B2C(sbi, le32_to_cpu(es->s_first_data_block)); + + /* + * Add the overhead found in each block group + */ + for (i = 0; i < ngroups; i++) { + int blks; + + blks = count_overhead(sb, i, buf); + overhead += blks; + if (blks) + memset(buf, 0, PAGE_SIZE); + cond_resched(); + } + sbi->s_overhead = overhead; + smp_wmb(); + free_page((unsigned long) buf); + return 0; +} + static int ext4_fill_super(struct super_block *sb, void *data, int silent) { char *orig_data = kstrdup(data, GFP_KERNEL); @@ -3270,15 +3379,6 @@ clear_opt(sb, DELALLOC); } - blocksize = BLOCK_SIZE << le32_to_cpu(es->s_log_block_size); - if (test_opt(sb, DIOREAD_NOLOCK)) { - if (blocksize < PAGE_SIZE) { - ext4_msg(sb, KERN_ERR, "can't mount with " - "dioread_nolock if block size != PAGE_SIZE"); - goto failed_mount; - } - } - sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0); @@ -3320,6 +3420,7 @@ if (!ext4_feature_set_ok(sb, (sb->s_flags & MS_RDONLY))) goto failed_mount; + blocksize = BLOCK_SIZE << le32_to_cpu(es->s_log_block_size); if (blocksize < EXT4_MIN_BLOCK_SIZE || blocksize > EXT4_MAX_BLOCK_SIZE) { ext4_msg(sb, KERN_ERR, @@ -3711,6 +3812,18 @@ no_journal: /* + * Get the # of file system overhead blocks from the + * superblock if present. + */ + if (es->s_overhead_clusters) + sbi->s_overhead = le32_to_cpu(es->s_overhead_clusters); + else { + ret = ext4_calculate_overhead(sb); + if (ret) + goto failed_mount_wq; + } + + /* * The maximum number of concurrent works can be high and * concurrency isn't really necessary. Limit it to 1. */ @@ -3744,7 +3857,8 @@ goto failed_mount4; } - ext4_setup_super(sb, es, sb->s_flags & MS_RDONLY); + if (ext4_setup_super(sb, es, sb->s_flags & MS_RDONLY)) + sb->s_flags |= MS_RDONLY; /* determine the minimum size of new large inodes, if present */ if (sbi->s_inode_size > EXT4_GOOD_OLD_INODE_SIZE) { @@ -4542,7 +4656,7 @@ } ext4_setup_system_zone(sb); - if (sbi->s_journal == NULL) + if (sbi->s_journal == NULL && !(old_sb_flags & MS_RDONLY)) ext4_commit_super(sb, 1); #ifdef CONFIG_QUOTA @@ -4583,67 +4697,21 @@ return err; } -/* - * Note: calculating the overhead so we can be compatible with - * historical BSD practice is quite difficult in the face of - * clusters/bigalloc. This is because multiple metadata blocks from - * different block group can end up in the same allocation cluster. - * Calculating the exact overhead in the face of clustered allocation - * requires either O(all block bitmaps) in memory or O(number of block - * groups**2) in time. We will still calculate the superblock for - * older file systems --- and if we come across with a bigalloc file - * system with zero in s_overhead_clusters the estimate will be close to - * correct especially for very large cluster sizes --- but for newer - * file systems, it's better to calculate this figure once at mkfs - * time, and store it in the superblock. If the superblock value is - * present (even for non-bigalloc file systems), we will use it. - */ static int ext4_statfs(struct dentry *dentry, struct kstatfs *buf) { struct super_block *sb = dentry->d_sb; struct ext4_sb_info *sbi = EXT4_SB(sb); struct ext4_super_block *es = sbi->s_es; - struct ext4_group_desc *gdp; + ext4_fsblk_t overhead = 0; u64 fsid; s64 bfree; - if (test_opt(sb, MINIX_DF)) { - sbi->s_overhead_last = 0; - } else if (es->s_overhead_clusters) { - sbi->s_overhead_last = le32_to_cpu(es->s_overhead_clusters); - } else if (sbi->s_blocks_last != ext4_blocks_count(es)) { - ext4_group_t i, ngroups = ext4_get_groups_count(sb); - ext4_fsblk_t overhead = 0; - - /* - * Compute the overhead (FS structures). This is constant - * for a given filesystem unless the number of block groups - * changes so we cache the previous value until it does. - */ - - /* - * All of the blocks before first_data_block are - * overhead - */ - overhead = EXT4_B2C(sbi, le32_to_cpu(es->s_first_data_block)); - - /* - * Add the overhead found in each block group - */ - for (i = 0; i < ngroups; i++) { - gdp = ext4_get_group_desc(sb, i, NULL); - overhead += ext4_num_overhead_clusters(sb, i, gdp); - cond_resched(); - } - sbi->s_overhead_last = overhead; - smp_wmb(); - sbi->s_blocks_last = ext4_blocks_count(es); - } + if (!test_opt(sb, MINIX_DF)) + overhead = sbi->s_overhead; buf->f_type = EXT4_SUPER_MAGIC; buf->f_bsize = sb->s_blocksize; - buf->f_blocks = (ext4_blocks_count(es) - - EXT4_C2B(sbi, sbi->s_overhead_last)); + buf->f_blocks = ext4_blocks_count(es) - EXT4_C2B(sbi, sbi->s_overhead); bfree = percpu_counter_sum_positive(&sbi->s_freeclusters_counter) - percpu_counter_sum_positive(&sbi->s_dirtyclusters_counter); /* prevent underflow in case that few free space is available */ --- linux-3.2.0.orig/fs/ext4/mmp.c +++ linux-3.2.0/fs/ext4/mmp.c @@ -41,6 +41,8 @@ * is not blocked in the elevator. */ if (!*bh) *bh = sb_getblk(sb, mmp_block); + if (!*bh) + return -ENOMEM; if (*bh) { get_bh(*bh); lock_buffer(*bh); --- linux-3.2.0.orig/fs/ext4/ialloc.c +++ linux-3.2.0/fs/ext4/ialloc.c @@ -294,8 +294,8 @@ } struct orlov_stats { + __u64 free_clusters; __u32 free_inodes; - __u32 free_clusters; __u32 used_dirs; }; @@ -312,7 +312,7 @@ if (flex_size > 1) { stats->free_inodes = atomic_read(&flex_group[g].free_inodes); - stats->free_clusters = atomic_read(&flex_group[g].free_clusters); + stats->free_clusters = atomic64_read(&flex_group[g].free_clusters); stats->used_dirs = atomic_read(&flex_group[g].used_dirs); return; } @@ -885,8 +885,12 @@ if (IS_DIRSYNC(inode)) ext4_handle_sync(handle); if (insert_inode_locked(inode) < 0) { - err = -EINVAL; - goto fail_drop; + /* + * Likely a bitmap corruption causing inode to be allocated + * twice. + */ + err = -EIO; + goto fail; } spin_lock(&sbi->s_next_gen_lock); inode->i_generation = sbi->s_next_generation++; @@ -1053,7 +1057,8 @@ if (!bitmap_bh) continue; - x = ext4_count_free(bitmap_bh, EXT4_INODES_PER_GROUP(sb) / 8); + x = ext4_count_free(bitmap_bh->b_data, + EXT4_INODES_PER_GROUP(sb) / 8); printk(KERN_DEBUG "group %lu: stored = %d, counted = %lu\n", (unsigned long) i, ext4_free_inodes_count(sb, gdp), x); bitmap_count += x; --- linux-3.2.0.orig/fs/ext4/ext4.h +++ linux-3.2.0/fs/ext4/ext4.h @@ -184,6 +184,8 @@ #define EXT4_IO_END_UNWRITTEN 0x0001 #define EXT4_IO_END_ERROR 0x0002 #define EXT4_IO_END_QUEUED 0x0004 +#define EXT4_IO_END_DIRECT 0x0008 +#define EXT4_IO_END_IN_FSYNC 0x0010 struct ext4_io_page { struct page *p_page; @@ -307,9 +309,9 @@ */ struct flex_groups { - atomic_t free_inodes; - atomic_t free_clusters; - atomic_t used_dirs; + atomic64_t free_clusters; + atomic_t free_inodes; + atomic_t used_dirs; }; #define EXT4_BG_INODE_UNINIT 0x0001 /* Inode table/bitmap not in use */ @@ -1121,8 +1123,7 @@ unsigned long s_desc_per_block; /* Number of group descriptors per block */ ext4_group_t s_groups_count; /* Number of groups in the fs */ ext4_group_t s_blockfile_groups;/* Groups acceptable for non-extent files */ - unsigned long s_overhead_last; /* Last calculated overhead */ - unsigned long s_blocks_last; /* Last seen block count */ + unsigned long s_overhead; /* # of fs overhead clusters */ unsigned int s_cluster_ratio; /* Number of blocks per cluster */ unsigned int s_cluster_bits; /* log2 of s_cluster_ratio */ loff_t s_bitmap_maxbytes; /* max bytes for bitmap files */ @@ -1183,9 +1184,6 @@ unsigned long s_ext_blocks; unsigned long s_ext_extents; #endif - /* ext4 extent cache stats */ - unsigned long extent_cache_hits; - unsigned long extent_cache_misses; /* for buddy allocator */ struct ext4_group_info ***s_group_info; @@ -1758,7 +1756,7 @@ # define NORET_AND noreturn, /* bitmap.c */ -extern unsigned int ext4_count_free(struct buffer_head *, unsigned); +extern unsigned int ext4_count_free(char *bitmap, unsigned numchars); /* balloc.c */ extern unsigned int ext4_block_group(struct super_block *sb, @@ -1926,6 +1924,7 @@ ext4_fsblk_t n_blocks_count); /* super.c */ +extern int ext4_calculate_overhead(struct super_block *sb); extern void *ext4_kvmalloc(size_t size, gfp_t flags); extern void *ext4_kvzalloc(size_t size, gfp_t flags); extern void ext4_kvfree(void *ptr); --- linux-3.2.0.orig/fs/ext4/mballoc.c +++ linux-3.2.0/fs/ext4/mballoc.c @@ -2027,7 +2027,11 @@ group = ac->ac_g_ex.fe_group; for (i = 0; i < ngroups; group++, i++) { - if (group == ngroups) + /* + * Artificially restricted ngroups for non-extent + * files makes group > ngroups possible on first loop. + */ + if (group >= ngroups) group = 0; /* This now checks without needing the buddy page */ @@ -2567,6 +2571,9 @@ struct ext4_sb_info *sbi = EXT4_SB(sb); struct kmem_cache *cachep = get_groupinfo_cache(sb->s_blocksize_bits); + if (sbi->s_proc) + remove_proc_entry("mb_groups", sbi->s_proc); + if (sbi->s_group_info) { for (i = 0; i < ngroups; i++) { grinfo = ext4_get_group_info(sb, i); @@ -2614,8 +2621,6 @@ } free_percpu(sbi->s_locality_groups); - if (sbi->s_proc) - remove_proc_entry("mb_groups", sbi->s_proc); return 0; } @@ -2865,8 +2870,8 @@ if (sbi->s_log_groups_per_flex) { ext4_group_t flex_group = ext4_flex_group(sbi, ac->ac_b_ex.fe_group); - atomic_sub(ac->ac_b_ex.fe_len, - &sbi->s_flex_groups[flex_group].free_clusters); + atomic64_sub(ac->ac_b_ex.fe_len, + &sbi->s_flex_groups[flex_group].free_clusters); } err = ext4_handle_dirty_metadata(handle, NULL, bitmap_bh); @@ -3484,7 +3489,7 @@ win = offs; ac->ac_b_ex.fe_logical = ac->ac_o_ex.fe_logical - - EXT4_B2C(sbi, win); + EXT4_NUM_B2C(sbi, win); BUG_ON(ac->ac_o_ex.fe_logical < ac->ac_b_ex.fe_logical); BUG_ON(ac->ac_o_ex.fe_len > ac->ac_b_ex.fe_len); } @@ -4177,7 +4182,7 @@ /* The max size of hash table is PREALLOC_TB_SIZE */ order = PREALLOC_TB_SIZE - 1; /* Add the prealloc space to lg */ - rcu_read_lock(); + spin_lock(&lg->lg_prealloc_lock); list_for_each_entry_rcu(tmp_pa, &lg->lg_prealloc_list[order], pa_inode_list) { spin_lock(&tmp_pa->pa_lock); @@ -4201,12 +4206,12 @@ if (!added) list_add_tail_rcu(&pa->pa_inode_list, &lg->lg_prealloc_list[order]); - rcu_read_unlock(); + spin_unlock(&lg->lg_prealloc_lock); /* Now trim the list to be not more than 8 elements */ if (lg_prealloc_count > 8) { ext4_mb_discard_lg_preallocations(sb, lg, - order, lg_prealloc_count); + order, lg_prealloc_count); return; } return ; @@ -4633,7 +4638,7 @@ EXT4_BLOCKS_PER_GROUP(sb); count -= overflow; } - count_clusters = EXT4_B2C(sbi, count); + count_clusters = EXT4_NUM_B2C(sbi, count); bitmap_bh = ext4_read_block_bitmap(sb, block_group); if (!bitmap_bh) { err = -EIO; @@ -4691,10 +4696,16 @@ * blocks being freed are metadata. these blocks shouldn't * be used until this transaction is committed */ + retry: new_entry = kmem_cache_alloc(ext4_free_ext_cachep, GFP_NOFS); if (!new_entry) { - err = -ENOMEM; - goto error_return; + /* + * We use a retry loop because + * ext4_free_blocks() is not allowed to fail. + */ + cond_resched(); + congestion_wait(BLK_RW_ASYNC, HZ/50); + goto retry; } new_entry->start_cluster = bit; new_entry->group = block_group; @@ -4722,8 +4733,8 @@ if (sbi->s_log_groups_per_flex) { ext4_group_t flex_group = ext4_flex_group(sbi, block_group); - atomic_add(count_clusters, - &sbi->s_flex_groups[flex_group].free_clusters); + atomic64_add(count_clusters, + &sbi->s_flex_groups[flex_group].free_clusters); } ext4_mb_unload_buddy(&e4b); @@ -4863,12 +4874,12 @@ desc->bg_checksum = ext4_group_desc_csum(sbi, block_group, desc); ext4_unlock_group(sb, block_group); percpu_counter_add(&sbi->s_freeclusters_counter, - EXT4_B2C(sbi, blocks_freed)); + EXT4_NUM_B2C(sbi, blocks_freed)); if (sbi->s_log_groups_per_flex) { ext4_group_t flex_group = ext4_flex_group(sbi, block_group); - atomic_add(EXT4_B2C(sbi, blocks_freed), - &sbi->s_flex_groups[flex_group].free_clusters); + atomic64_add(EXT4_NUM_B2C(sbi, blocks_freed), + &sbi->s_flex_groups[flex_group].free_clusters); } ext4_mb_unload_buddy(&e4b); --- linux-3.2.0.orig/fs/ext4/namei.c +++ linux-3.2.0/fs/ext4/namei.c @@ -585,11 +585,8 @@ if (ext4_check_dir_entry(dir, NULL, de, bh, (block<i_sb)) + ((char *)de - bh->b_data))) { - /* On error, skip the f_pos to the next block. */ - dir_file->f_pos = (dir_file->f_pos | - (dir->i_sb->s_blocksize - 1)) + 1; - brelse(bh); - return count; + /* silently ignore the rest of the block */ + break; } ext4fs_dirhash(de->name, de->name_len, hinfo); if ((hinfo->hash < start_hash) || @@ -1037,6 +1034,12 @@ EXT4_ERROR_INODE(dir, "bad inode number: %u", ino); return ERR_PTR(-EIO); } + if (unlikely(ino == dir->i_ino)) { + EXT4_ERROR_INODE(dir, "'%.*s' linked to parent dir", + dentry->d_name.len, + dentry->d_name.name); + return ERR_PTR(-EIO); + } inode = ext4_iget(dir->i_sb, ino); if (inode == ERR_PTR(-ESTALE)) { EXT4_ERROR_INODE(dir, @@ -1795,9 +1798,7 @@ err = PTR_ERR(inode); if (!IS_ERR(inode)) { init_special_inode(inode, inode->i_mode, rdev); -#ifdef CONFIG_EXT4_FS_XATTR inode->i_op = &ext4_special_inode_operations; -#endif err = ext4_add_nondir(handle, dentry, inode); } ext4_journal_stop(handle); --- linux-3.2.0.orig/fs/ext4/acl.c +++ linux-3.2.0/fs/ext4/acl.c @@ -410,8 +410,10 @@ retry: handle = ext4_journal_start(inode, EXT4_DATA_TRANS_BLOCKS(inode->i_sb)); - if (IS_ERR(handle)) - return PTR_ERR(handle); + if (IS_ERR(handle)) { + error = PTR_ERR(handle); + goto release_and_out; + } error = ext4_set_acl(handle, inode, type, acl); ext4_journal_stop(handle); if (error == -ENOSPC && ext4_should_retry_alloc(inode->i_sb, &retries)) --- linux-3.2.0.orig/fs/ext4/inode.c +++ linux-3.2.0/fs/ext4/inode.c @@ -142,12 +142,12 @@ * don't use page cache. */ if (ext4_should_journal_data(inode) && - (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode))) { + (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode)) && + inode->i_ino != EXT4_JOURNAL_INO) { journal_t *journal = EXT4_SB(inode->i_sb)->s_journal; tid_t commit_tid = EXT4_I(inode)->i_datasync_tid; - jbd2_log_start_commit(journal, commit_tid); - jbd2_log_wait_commit(journal, commit_tid); + jbd2_complete_transaction(journal, commit_tid); filemap_write_and_wait(&inode->i_data); } truncate_inode_pages(&inode->i_data, 0); @@ -277,6 +277,15 @@ used = ei->i_reserved_data_blocks; } + if (unlikely(ei->i_allocated_meta_blocks > ei->i_reserved_meta_blocks)) { + ext4_msg(inode->i_sb, KERN_NOTICE, "%s: ino %lu, allocated %d " + "with only %d reserved metadata blocks\n", __func__, + inode->i_ino, ei->i_allocated_meta_blocks, + ei->i_reserved_meta_blocks); + WARN_ON(1); + ei->i_allocated_meta_blocks = ei->i_reserved_meta_blocks; + } + /* Update per-inode reservations */ ei->i_reserved_data_blocks -= used; ei->i_reserved_meta_blocks -= ei->i_allocated_meta_blocks; @@ -652,7 +661,7 @@ bh = sb_getblk(inode->i_sb, map.m_pblk); if (!bh) { - *errp = -EIO; + *errp = -ENOMEM; return NULL; } if (map.m_flags & EXT4_MAP_NEW) { @@ -1102,6 +1111,17 @@ struct ext4_inode_info *ei = EXT4_I(inode); unsigned int md_needed; int ret; + ext4_lblk_t save_last_lblock; + int save_len; + + /* + * We will charge metadata quota at writeout time; this saves + * us from metadata over-estimation, though we may go over by + * a small amount in the end. Here we just reserve for data. + */ + ret = dquot_reserve_block(inode, EXT4_C2B(sbi, 1)); + if (ret) + return ret; /* * recalculate the amount of metadata blocks to reserve @@ -1110,32 +1130,31 @@ */ repeat: spin_lock(&ei->i_block_reservation_lock); + /* + * ext4_calc_metadata_amount() has side effects, which we have + * to be prepared undo if we fail to claim space. + */ + save_len = ei->i_da_metadata_calc_len; + save_last_lblock = ei->i_da_metadata_calc_last_lblock; md_needed = EXT4_NUM_B2C(sbi, ext4_calc_metadata_amount(inode, lblock)); trace_ext4_da_reserve_space(inode, md_needed); - spin_unlock(&ei->i_block_reservation_lock); /* - * We will charge metadata quota at writeout time; this saves - * us from metadata over-estimation, though we may go over by - * a small amount in the end. Here we just reserve for data. - */ - ret = dquot_reserve_block(inode, EXT4_C2B(sbi, 1)); - if (ret) - return ret; - /* * We do still charge estimated metadata to the sb though; * we cannot afford to run out of free blocks. */ if (ext4_claim_free_clusters(sbi, md_needed + 1, 0)) { - dquot_release_reservation_block(inode, EXT4_C2B(sbi, 1)); + ei->i_da_metadata_calc_len = save_len; + ei->i_da_metadata_calc_last_lblock = save_last_lblock; + spin_unlock(&ei->i_block_reservation_lock); if (ext4_should_retry_alloc(inode->i_sb, &retries)) { yield(); goto repeat; } + dquot_release_reservation_block(inode, EXT4_C2B(sbi, 1)); return -ENOSPC; } - spin_lock(&ei->i_block_reservation_lock); ei->i_reserved_data_blocks++; ei->i_reserved_meta_blocks += md_needed; spin_unlock(&ei->i_block_reservation_lock); @@ -1403,6 +1422,7 @@ index = mpd->first_page; end = mpd->next_page - 1; + pagevec_init(&pvec, 0); while (index <= end) { nr_pages = pagevec_lookup(&pvec, mapping, index, PAGEVEC_SIZE); if (nr_pages == 0) @@ -2363,6 +2383,16 @@ free_blocks = EXT4_C2B(sbi, percpu_counter_read_positive(&sbi->s_freeclusters_counter)); dirty_blocks = percpu_counter_read_positive(&sbi->s_dirtyclusters_counter); + /* + * Start pushing delalloc when 1/2 of free blocks are dirty. + */ + if (dirty_blocks && (free_blocks < 2 * dirty_blocks) && + !writeback_in_progress(sb->s_bdi) && + down_read_trylock(&sb->s_umount)) { + writeback_inodes_sb(sb, WB_REASON_FS_FREE_SPACE); + up_read(&sb->s_umount); + } + if (2 * free_blocks < 3 * dirty_blocks || free_blocks < (dirty_blocks + EXT4_FREECLUSTERS_WATERMARK)) { /* @@ -2371,13 +2401,6 @@ */ return 1; } - /* - * Even if we don't switch but are nearing capacity, - * start pushing delalloc when 1/2 of free blocks are dirty. - */ - if (free_blocks < 2 * dirty_blocks) - writeback_inodes_sb_if_idle(sb, WB_REASON_FS_FREE_SPACE); - return 0; } @@ -2480,13 +2503,14 @@ int write_mode = (int)(unsigned long)fsdata; if (write_mode == FALL_BACK_TO_NONDELALLOC) { - if (ext4_should_order_data(inode)) { + switch (ext4_inode_journal_mode(inode)) { + case EXT4_INODE_ORDERED_DATA_MODE: return ext4_ordered_write_end(file, mapping, pos, len, copied, page, fsdata); - } else if (ext4_should_writeback_data(inode)) { + case EXT4_INODE_WRITEBACK_DATA_MODE: return ext4_writeback_write_end(file, mapping, pos, len, copied, page, fsdata); - } else { + default: BUG(); } } @@ -2771,9 +2795,9 @@ if (!(io_end->flag & EXT4_IO_END_UNWRITTEN)) { ext4_free_io_end(io_end); out: + inode_dio_done(inode); if (is_async) aio_complete(iocb, ret, 0); - inode_dio_done(inode); return; } @@ -2793,9 +2817,6 @@ /* queue the work to convert unwritten extents to written */ queue_work(wq, &io_end->work); - - /* XXX: probably should move into the real I/O completion handler */ - inode_dio_done(inode); } static void ext4_end_io_buffer_write(struct buffer_head *bh, int uptodate) @@ -2919,9 +2940,12 @@ iocb->private = NULL; EXT4_I(inode)->cur_aio_dio = NULL; if (!is_sync_kiocb(iocb)) { - iocb->private = ext4_init_io_end(inode, GFP_NOFS); - if (!iocb->private) + ext4_io_end_t *io_end = + ext4_init_io_end(inode, GFP_NOFS); + if (!io_end) return -ENOMEM; + io_end->flag |= EXT4_IO_END_DIRECT; + iocb->private = io_end; /* * we save the io structure for current async * direct IO, so that later ext4_map_blocks() @@ -3084,18 +3108,25 @@ void ext4_set_aops(struct inode *inode) { - if (ext4_should_order_data(inode) && - test_opt(inode->i_sb, DELALLOC)) - inode->i_mapping->a_ops = &ext4_da_aops; - else if (ext4_should_order_data(inode)) - inode->i_mapping->a_ops = &ext4_ordered_aops; - else if (ext4_should_writeback_data(inode) && - test_opt(inode->i_sb, DELALLOC)) - inode->i_mapping->a_ops = &ext4_da_aops; - else if (ext4_should_writeback_data(inode)) - inode->i_mapping->a_ops = &ext4_writeback_aops; - else + switch (ext4_inode_journal_mode(inode)) { + case EXT4_INODE_ORDERED_DATA_MODE: + if (test_opt(inode->i_sb, DELALLOC)) + inode->i_mapping->a_ops = &ext4_da_aops; + else + inode->i_mapping->a_ops = &ext4_ordered_aops; + break; + case EXT4_INODE_WRITEBACK_DATA_MODE: + if (test_opt(inode->i_sb, DELALLOC)) + inode->i_mapping->a_ops = &ext4_da_aops; + else + inode->i_mapping->a_ops = &ext4_writeback_aops; + break; + case EXT4_INODE_JOURNAL_DATA_MODE: inode->i_mapping->a_ops = &ext4_journalled_aops; + break; + default: + BUG(); + } } @@ -3544,11 +3575,8 @@ iloc->offset = (inode_offset % inodes_per_block) * EXT4_INODE_SIZE(sb); bh = sb_getblk(sb, block); - if (!bh) { - EXT4_ERROR_INODE_BLOCK(inode, block, - "unable to read itable block"); - return -EIO; - } + if (!bh) + return -ENOMEM; if (!buffer_uptodate(bh)) { lock_buffer(bh); @@ -3977,6 +4005,7 @@ struct ext4_inode_info *ei = EXT4_I(inode); struct buffer_head *bh = iloc->bh; int err = 0, rc, block; + int need_datasync = 0; /* For fields not not tracking in the in-memory inode, * initialise them to zero for new inodes. */ @@ -4025,7 +4054,10 @@ raw_inode->i_file_acl_high = cpu_to_le16(ei->i_file_acl >> 32); raw_inode->i_file_acl_lo = cpu_to_le32(ei->i_file_acl); - ext4_isize_set(raw_inode, ei->i_disksize); + if (ei->i_disksize != ext4_isize(raw_inode)) { + ext4_isize_set(raw_inode, ei->i_disksize); + need_datasync = 1; + } if (ei->i_disksize > 0x7fffffffULL) { struct super_block *sb = inode->i_sb; if (!EXT4_HAS_RO_COMPAT_FEATURE(sb, @@ -4078,7 +4110,7 @@ err = rc; ext4_clear_inode_state(inode, EXT4_STATE_NEW); - ext4_update_inode_fsync_trans(handle, inode, 0); + ext4_update_inode_fsync_trans(handle, inode, need_datasync); out_brelse: brelse(bh); ext4_std_error(inode->i_sb, err); @@ -4303,7 +4335,7 @@ struct kstat *stat) { struct inode *inode; - unsigned long delalloc_blocks; + unsigned long long delalloc_blocks; inode = dentry->d_inode; generic_fillattr(inode, stat); @@ -4320,7 +4352,7 @@ */ delalloc_blocks = EXT4_I(inode)->i_reserved_data_blocks; - stat->blocks += (delalloc_blocks << inode->i_sb->s_blocksize_bits)>>9; + stat->blocks += delalloc_blocks << (inode->i_sb->s_blocksize_bits-9); return 0; } --- linux-3.2.0.orig/fs/ext4/page-io.c +++ linux-3.2.0/fs/ext4/page-io.c @@ -108,12 +108,13 @@ inode->i_ino, offset, size, ret); } - if (io->iocb) - aio_complete(io->iocb, io->result, 0); - /* Wake up anyone waiting on unwritten extent conversion */ if (atomic_dec_and_test(&EXT4_I(inode)->i_aiodio_unwritten)) wake_up_all(ext4_ioend_wq(io->inode)); + if (io->flag & EXT4_IO_END_DIRECT) + inode_dio_done(inode); + if (io->iocb) + aio_complete(io->iocb, io->result, 0); return ret; } @@ -128,12 +129,18 @@ unsigned long flags; spin_lock_irqsave(&ei->i_completed_io_lock, flags); + if (io->flag & EXT4_IO_END_IN_FSYNC) + goto requeue; if (list_empty(&io->list)) { spin_unlock_irqrestore(&ei->i_completed_io_lock, flags); goto free; } if (!mutex_trylock(&inode->i_mutex)) { + bool was_queued; +requeue: + was_queued = !!(io->flag & EXT4_IO_END_QUEUED); + io->flag |= EXT4_IO_END_QUEUED; spin_unlock_irqrestore(&ei->i_completed_io_lock, flags); /* * Requeue the work instead of waiting so that the work @@ -146,9 +153,8 @@ * yield the cpu if it sees an end_io request that has already * been requeued. */ - if (io->flag & EXT4_IO_END_QUEUED) + if (was_queued) yield(); - io->flag |= EXT4_IO_END_QUEUED; return; } list_del_init(&io->list); --- linux-3.2.0.orig/fs/ext4/bitmap.c +++ linux-3.2.0/fs/ext4/bitmap.c @@ -11,21 +11,15 @@ #include #include "ext4.h" -#ifdef EXT4FS_DEBUG - static const int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; -unsigned int ext4_count_free(struct buffer_head *map, unsigned int numchars) +unsigned int ext4_count_free(char *bitmap, unsigned int numchars) { unsigned int i, sum = 0; - if (!map) - return 0; for (i = 0; i < numchars; i++) - sum += nibblemap[map->b_data[i] & 0xf] + - nibblemap[(map->b_data[i] >> 4) & 0xf]; + sum += nibblemap[bitmap[i] & 0xf] + + nibblemap[(bitmap[i] >> 4) & 0xf]; return sum; } -#endif /* EXT4FS_DEBUG */ - --- linux-3.2.0.orig/fs/ext4/xattr.c +++ linux-3.2.0/fs/ext4/xattr.c @@ -487,18 +487,19 @@ ext4_free_blocks(handle, inode, bh, 0, 1, EXT4_FREE_BLOCKS_METADATA | EXT4_FREE_BLOCKS_FORGET); + unlock_buffer(bh); } else { le32_add_cpu(&BHDR(bh)->h_refcount, -1); + if (ce) + mb_cache_entry_release(ce); + unlock_buffer(bh); error = ext4_handle_dirty_metadata(handle, inode, bh); if (IS_SYNC(inode)) ext4_handle_sync(handle); - dquot_free_block(inode, 1); + dquot_free_block(inode, EXT4_C2B(EXT4_SB(inode->i_sb), 1)); ea_bdebug(bh, "refcount now=%d; releasing", le32_to_cpu(BHDR(bh)->h_refcount)); - if (ce) - mb_cache_entry_release(ce); } - unlock_buffer(bh); out: ext4_std_error(inode->i_sb, error); return; @@ -784,7 +785,8 @@ else { /* The old block is released after updating the inode. */ - error = dquot_alloc_block(inode, 1); + error = dquot_alloc_block(inode, + EXT4_C2B(EXT4_SB(sb), 1)); if (error) goto cleanup; error = ext4_journal_get_write_access(handle, @@ -838,16 +840,17 @@ new_bh = sb_getblk(sb, block); if (!new_bh) { + error = -ENOMEM; getblk_failed: ext4_free_blocks(handle, inode, NULL, block, 1, EXT4_FREE_BLOCKS_METADATA); - error = -EIO; goto cleanup; } lock_buffer(new_bh); error = ext4_journal_get_create_access(handle, new_bh); if (error) { unlock_buffer(new_bh); + error = -EIO; goto getblk_failed; } memcpy(new_bh->b_data, s->base, new_bh->b_size); @@ -879,7 +882,7 @@ return error; cleanup_dquot: - dquot_free_block(inode, 1); + dquot_free_block(inode, EXT4_C2B(EXT4_SB(sb), 1)); goto cleanup; bad_block: --- linux-3.2.0.orig/fs/ext4/ioctl.c +++ linux-3.2.0/fs/ext4/ioctl.c @@ -36,7 +36,7 @@ handle_t *handle = NULL; int err, migrate = 0; struct ext4_iloc iloc; - unsigned int oldflags; + unsigned int oldflags, mask, i; unsigned int jflag; if (!inode_owner_or_capable(inode)) @@ -113,9 +113,14 @@ if (err) goto flags_err; - flags = flags & EXT4_FL_USER_MODIFIABLE; - flags |= oldflags & ~EXT4_FL_USER_MODIFIABLE; - ei->i_flags = flags; + for (i = 0, mask = 1; i < 32; i++, mask <<= 1) { + if (!(mask & EXT4_FL_USER_MODIFIABLE)) + continue; + if (mask & flags) + ext4_set_inode_flag(inode, i); + else + ext4_clear_inode_flag(inode, i); + } ext4_set_inode_flags(inode); inode->i_ctime = ext4_current_time(inode); @@ -182,19 +187,22 @@ if (err) return err; - if (get_user(n_blocks_count, (__u32 __user *)arg)) - return -EFAULT; + if (get_user(n_blocks_count, (__u32 __user *)arg)) { + err = -EFAULT; + goto group_extend_out; + } if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_BIGALLOC)) { ext4_msg(sb, KERN_ERR, "Online resizing not supported with bigalloc"); - return -EOPNOTSUPP; + err = -EOPNOTSUPP; + goto group_extend_out; } err = mnt_want_write(filp->f_path.mnt); if (err) - return err; + goto group_extend_out; err = ext4_group_extend(sb, EXT4_SB(sb)->s_es, n_blocks_count); if (EXT4_SB(sb)->s_journal) { @@ -204,9 +212,10 @@ } if (err == 0) err = err2; + mnt_drop_write(filp->f_path.mnt); +group_extend_out: ext4_resize_end(sb); - return err; } @@ -267,19 +276,22 @@ return err; if (copy_from_user(&input, (struct ext4_new_group_input __user *)arg, - sizeof(input))) - return -EFAULT; + sizeof(input))) { + err = -EFAULT; + goto group_add_out; + } if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_BIGALLOC)) { ext4_msg(sb, KERN_ERR, "Online resizing not supported with bigalloc"); - return -EOPNOTSUPP; + err = -EOPNOTSUPP; + goto group_add_out; } err = mnt_want_write(filp->f_path.mnt); if (err) - return err; + goto group_add_out; err = ext4_group_add(sb, &input); if (EXT4_SB(sb)->s_journal) { @@ -289,9 +301,10 @@ } if (err == 0) err = err2; + mnt_drop_write(filp->f_path.mnt); +group_add_out: ext4_resize_end(sb); - return err; } --- linux-3.2.0.orig/fs/ext4/indirect.c +++ linux-3.2.0/fs/ext4/indirect.c @@ -146,6 +146,7 @@ struct super_block *sb = inode->i_sb; Indirect *p = chain; struct buffer_head *bh; + int ret = -EIO; *err = 0; /* i_data is not going away, no lock needed */ @@ -154,8 +155,10 @@ goto no_block; while (--depth) { bh = sb_getblk(sb, le32_to_cpu(p->key)); - if (unlikely(!bh)) + if (unlikely(!bh)) { + ret = -ENOMEM; goto failure; + } if (!bh_uptodate_or_lock(bh)) { if (bh_submit_read(bh) < 0) { @@ -177,7 +180,7 @@ return NULL; failure: - *err = -EIO; + *err = ret; no_block: return p; } @@ -471,7 +474,7 @@ */ bh = sb_getblk(inode->i_sb, new_blocks[n-1]); if (unlikely(!bh)) { - err = -EIO; + err = -ENOMEM; goto failed; } --- linux-3.2.0.orig/fs/ext4/extents.c +++ linux-3.2.0/fs/ext4/extents.c @@ -45,6 +45,17 @@ #include +/* + * used by extent splitting. + */ +#define EXT4_EXT_MAY_ZEROOUT 0x1 /* safe to zeroout if split fails \ + due to ENOSPC */ +#define EXT4_EXT_MARK_UNINIT1 0x2 /* mark first half uninitialized */ +#define EXT4_EXT_MARK_UNINIT2 0x4 /* mark second half uninitialized */ + +#define EXT4_EXT_DATA_VALID1 0x8 /* first half contains valid data */ +#define EXT4_EXT_DATA_VALID2 0x10 /* second half contains valid data */ + static int ext4_split_extent(handle_t *handle, struct inode *inode, struct ext4_ext_path *path, @@ -52,6 +63,13 @@ int split_flag, int flags); +static int ext4_split_extent_at(handle_t *handle, + struct inode *inode, + struct ext4_ext_path *path, + ext4_lblk_t split, + int split_flag, + int flags); + static int ext4_ext_truncate_extend_restart(handle_t *handle, struct inode *inode, int needed) @@ -301,6 +319,8 @@ ext4_fsblk_t block = ext4_ext_pblock(ext); int len = ext4_ext_get_actual_len(ext); + if (len == 0) + return 0; return ext4_data_block_valid(EXT4_SB(inode->i_sb), block, len); } @@ -634,6 +654,7 @@ struct ext4_extent_header *eh; struct buffer_head *bh; short int depth, i, ppos = 0, alloc = 0; + int ret; eh = ext_inode_hdr(inode); depth = ext_depth(inode); @@ -663,12 +684,15 @@ path[ppos].p_ext = NULL; bh = sb_getblk(inode->i_sb, path[ppos].p_block); - if (unlikely(!bh)) + if (unlikely(!bh)) { + ret = -ENOMEM; goto err; + } if (!bh_uptodate_or_lock(bh)) { trace_ext4_ext_load_extent(inode, block, path[ppos].p_block); - if (bh_submit_read(bh) < 0) { + ret = bh_submit_read(bh); + if (ret < 0) { put_bh(bh); goto err; } @@ -681,13 +705,15 @@ put_bh(bh); EXT4_ERROR_INODE(inode, "ppos %d > depth %d", ppos, depth); + ret = -EIO; goto err; } path[ppos].p_bh = bh; path[ppos].p_hdr = eh; i--; - if (need_to_validate && ext4_ext_check(inode, eh, i)) + ret = need_to_validate ? ext4_ext_check(inode, eh, i) : 0; + if (ret < 0) goto err; } @@ -709,7 +735,7 @@ ext4_ext_drop_refs(path); if (alloc) kfree(path); - return ERR_PTR(-EIO); + return ERR_PTR(ret); } /* @@ -864,7 +890,7 @@ } bh = sb_getblk(inode->i_sb, newblock); if (!bh) { - err = -EIO; + err = -ENOMEM; goto cleanup; } lock_buffer(bh); @@ -936,7 +962,7 @@ newblock = ablocks[--a]; bh = sb_getblk(inode->i_sb, newblock); if (!bh) { - err = -EIO; + err = -ENOMEM; goto cleanup; } lock_buffer(bh); @@ -1047,11 +1073,8 @@ return err; bh = sb_getblk(inode->i_sb, newblock); - if (!bh) { - err = -EIO; - ext4_std_error(inode->i_sb, err); - return err; - } + if (!bh) + return -ENOMEM; lock_buffer(bh); err = ext4_journal_get_create_access(handle, bh); @@ -2050,10 +2073,6 @@ ret = 1; } errout: - if (!ret) - sbi->extent_cache_misses++; - else - sbi->extent_cache_hits++; trace_ext4_ext_in_cache(inode, block, ret); spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); return ret; @@ -2095,13 +2114,14 @@ * removes index from the index block. */ static int ext4_ext_rm_idx(handle_t *handle, struct inode *inode, - struct ext4_ext_path *path) + struct ext4_ext_path *path, int depth) { int err; ext4_fsblk_t leaf; /* free index block */ - path--; + depth--; + path = path + depth; leaf = ext4_idx_pblock(path->p_idx); if (unlikely(path->p_hdr->eh_entries == 0)) { EXT4_ERROR_INODE(inode, "path->p_hdr->eh_entries == 0"); @@ -2126,6 +2146,19 @@ ext4_free_blocks(handle, inode, NULL, leaf, 1, EXT4_FREE_BLOCKS_METADATA | EXT4_FREE_BLOCKS_FORGET); + + while (--depth >= 0) { + if (path->p_idx != EXT_FIRST_INDEX(path->p_hdr)) + break; + path--; + err = ext4_ext_get_access(handle, inode, path); + if (err) + break; + path->p_idx->ei_block = (path+1)->p_idx->ei_block; + err = ext4_ext_dirty(handle, inode, path); + if (err) + break; + } return err; } @@ -2309,7 +2342,7 @@ struct ext4_extent *ex; /* the header must be checked already in ext4_ext_remove_space() */ - ext_debug("truncate since %u in leaf\n", start); + ext_debug("truncate since %u in leaf to %u\n", start, end); if (!path[depth].p_hdr) path[depth].p_hdr = ext_block_hdr(path[depth].p_bh); eh = path[depth].p_hdr; @@ -2344,7 +2377,7 @@ ext_debug(" border %u:%u\n", a, b); /* If this extent is beyond the end of the hole, skip it */ - if (end <= ex_ee_block) { + if (end < ex_ee_block) { ex--; ex_ee_block = le32_to_cpu(ex->ee_block); ex_ee_len = ext4_ext_get_actual_len(ex); @@ -2456,7 +2489,7 @@ /* if this leaf is free, then we should * remove it from index block above */ if (err == 0 && eh->eh_entries == 0 && path[depth].p_bh != NULL) - err = ext4_ext_rm_idx(handle, inode, path + depth); + err = ext4_ext_rm_idx(handle, inode, path, depth); out: return err; @@ -2483,16 +2516,17 @@ return 1; } -static int ext4_ext_remove_space(struct inode *inode, ext4_lblk_t start) +static int ext4_ext_remove_space(struct inode *inode, ext4_lblk_t start, + ext4_lblk_t end) { struct super_block *sb = inode->i_sb; int depth = ext_depth(inode); - struct ext4_ext_path *path; + struct ext4_ext_path *path = NULL; ext4_fsblk_t partial_cluster = 0; handle_t *handle; - int i, err; + int i = 0, err; - ext_debug("truncate since %u\n", start); + ext_debug("truncate since %u to %u\n", start, end); /* probably first extent we're gonna free will be last in block */ handle = ext4_journal_start(inode, depth + 1); @@ -2505,29 +2539,96 @@ trace_ext4_ext_remove_space(inode, start, depth); /* + * Check if we are removing extents inside the extent tree. If that + * is the case, we are going to punch a hole inside the extent tree + * so we have to check whether we need to split the extent covering + * the last block to remove so we can easily remove the part of it + * in ext4_ext_rm_leaf(). + */ + if (end < EXT_MAX_BLOCKS - 1) { + struct ext4_extent *ex; + ext4_lblk_t ee_block; + + /* find extent for this block */ + path = ext4_ext_find_extent(inode, end, NULL); + if (IS_ERR(path)) { + ext4_journal_stop(handle); + return PTR_ERR(path); + } + depth = ext_depth(inode); + ex = path[depth].p_ext; + if (!ex) { + ext4_ext_drop_refs(path); + kfree(path); + path = NULL; + goto cont; + } + + ee_block = le32_to_cpu(ex->ee_block); + + /* + * See if the last block is inside the extent, if so split + * the extent at 'end' block so we can easily remove the + * tail of the first part of the split extent in + * ext4_ext_rm_leaf(). + */ + if (end >= ee_block && + end < ee_block + ext4_ext_get_actual_len(ex) - 1) { + int split_flag = 0; + + if (ext4_ext_is_uninitialized(ex)) + split_flag = EXT4_EXT_MARK_UNINIT1 | + EXT4_EXT_MARK_UNINIT2; + + /* + * Split the extent in two so that 'end' is the last + * block in the first new extent + */ + err = ext4_split_extent_at(handle, inode, path, + end + 1, split_flag, + EXT4_GET_BLOCKS_PRE_IO | + EXT4_GET_BLOCKS_PUNCH_OUT_EXT); + + if (err < 0) + goto out; + } + } +cont: + + /* * We start scanning from right side, freeing all the blocks * after i_size and walking into the tree depth-wise. */ depth = ext_depth(inode); - path = kzalloc(sizeof(struct ext4_ext_path) * (depth + 1), GFP_NOFS); - if (path == NULL) { - ext4_journal_stop(handle); - return -ENOMEM; - } - path[0].p_depth = depth; - path[0].p_hdr = ext_inode_hdr(inode); - if (ext4_ext_check(inode, path[0].p_hdr, depth)) { - err = -EIO; - goto out; + if (path) { + int k = i = depth; + while (--k > 0) + path[k].p_block = + le16_to_cpu(path[k].p_hdr->eh_entries)+1; + } else { + path = kzalloc(sizeof(struct ext4_ext_path) * (depth + 1), + GFP_NOFS); + if (path == NULL) { + ext4_journal_stop(handle); + return -ENOMEM; + } + path[0].p_depth = depth; + path[0].p_hdr = ext_inode_hdr(inode); + i = 0; + + if (ext4_ext_check(inode, path[0].p_hdr, depth)) { + err = -EIO; + goto out; + } } - i = err = 0; + err = 0; while (i >= 0 && err == 0) { if (i == depth) { /* this is leaf block */ err = ext4_ext_rm_leaf(handle, inode, path, &partial_cluster, start, - EXT_MAX_BLOCKS - 1); + end); /* root level has p_bh == NULL, brelse() eats this */ brelse(path[i].p_bh); path[i].p_bh = NULL; @@ -2589,7 +2690,7 @@ /* index is empty, remove it; * handle must be already prepared by the * truncatei_leaf() */ - err = ext4_ext_rm_idx(handle, inode, path + i); + err = ext4_ext_rm_idx(handle, inode, path, i); } /* root level has p_bh == NULL, brelse() eats this */ brelse(path[i].p_bh); @@ -2634,8 +2735,10 @@ out: ext4_ext_drop_refs(path); kfree(path); - if (err == -EAGAIN) + if (err == -EAGAIN) { + path = NULL; goto again; + } ext4_journal_stop(handle); return err; @@ -2710,14 +2813,6 @@ } /* - * used by extent splitting. - */ -#define EXT4_EXT_MAY_ZEROOUT 0x1 /* safe to zeroout if split fails \ - due to ENOSPC */ -#define EXT4_EXT_MARK_UNINIT1 0x2 /* mark first half uninitialized */ -#define EXT4_EXT_MARK_UNINIT2 0x4 /* mark second half uninitialized */ - -/* * ext4_split_extent_at() splits an extent at given block. * * @handle: the journal handle @@ -2752,6 +2847,9 @@ unsigned int ee_len, depth; int err = 0; + BUG_ON((split_flag & (EXT4_EXT_DATA_VALID1 | EXT4_EXT_DATA_VALID2)) == + (EXT4_EXT_DATA_VALID1 | EXT4_EXT_DATA_VALID2)); + ext_debug("ext4_split_extents_at: inode %lu, logical" "block %llu\n", inode->i_ino, (unsigned long long)split); @@ -2810,11 +2908,18 @@ err = ext4_ext_insert_extent(handle, inode, path, &newex, flags); if (err == -ENOSPC && (EXT4_EXT_MAY_ZEROOUT & split_flag)) { - err = ext4_ext_zeroout(inode, &orig_ex); + if (split_flag & (EXT4_EXT_DATA_VALID1|EXT4_EXT_DATA_VALID2)) { + if (split_flag & EXT4_EXT_DATA_VALID1) + err = ext4_ext_zeroout(inode, ex2); + else + err = ext4_ext_zeroout(inode, ex); + } else + err = ext4_ext_zeroout(inode, &orig_ex); + if (err) goto fix_extent_len; /* update the extent length and mark as initialized */ - ex->ee_len = cpu_to_le32(ee_len); + ex->ee_len = cpu_to_le16(ee_len); ext4_ext_try_to_merge(inode, path, ex); err = ext4_ext_dirty(handle, inode, path + depth); goto out; @@ -2855,6 +2960,7 @@ int err = 0; int uninitialized; int split_flag1, flags1; + int allocated = map->m_len; depth = ext_depth(inode); ex = path[depth].p_ext; @@ -2863,16 +2969,19 @@ uninitialized = ext4_ext_is_uninitialized(ex); if (map->m_lblk + map->m_len < ee_block + ee_len) { - split_flag1 = split_flag & EXT4_EXT_MAY_ZEROOUT ? - EXT4_EXT_MAY_ZEROOUT : 0; + split_flag1 = split_flag & EXT4_EXT_MAY_ZEROOUT; flags1 = flags | EXT4_GET_BLOCKS_PRE_IO; if (uninitialized) split_flag1 |= EXT4_EXT_MARK_UNINIT1 | EXT4_EXT_MARK_UNINIT2; + if (split_flag & EXT4_EXT_DATA_VALID2) + split_flag1 |= EXT4_EXT_DATA_VALID1; err = ext4_split_extent_at(handle, inode, path, map->m_lblk + map->m_len, split_flag1, flags1); if (err) goto out; + } else { + allocated = ee_len - (map->m_lblk - ee_block); } ext4_ext_drop_refs(path); @@ -2881,8 +2990,8 @@ return PTR_ERR(path); if (map->m_lblk >= ee_block) { - split_flag1 = split_flag & EXT4_EXT_MAY_ZEROOUT ? - EXT4_EXT_MAY_ZEROOUT : 0; + split_flag1 = split_flag & (EXT4_EXT_MAY_ZEROOUT | + EXT4_EXT_DATA_VALID2); if (uninitialized) split_flag1 |= EXT4_EXT_MARK_UNINIT1; if (split_flag & EXT4_EXT_MARK_UNINIT2) @@ -2895,7 +3004,7 @@ ext4_ext_show_leaf(inode, path); out: - return err ? err : map->m_len; + return err ? err : allocated; } #define EXT4_EXT_ZERO_LEN 7 @@ -3160,26 +3269,47 @@ split_flag |= ee_block + ee_len <= eof_block ? EXT4_EXT_MAY_ZEROOUT : 0; split_flag |= EXT4_EXT_MARK_UNINIT2; - + if (flags & EXT4_GET_BLOCKS_CONVERT) + split_flag |= EXT4_EXT_DATA_VALID2; flags |= EXT4_GET_BLOCKS_PRE_IO; return ext4_split_extent(handle, inode, path, map, split_flag, flags); } static int ext4_convert_unwritten_extents_endio(handle_t *handle, - struct inode *inode, - struct ext4_ext_path *path) + struct inode *inode, + struct ext4_map_blocks *map, + struct ext4_ext_path *path) { struct ext4_extent *ex; + ext4_lblk_t ee_block; + unsigned int ee_len; int depth; int err = 0; depth = ext_depth(inode); ex = path[depth].p_ext; + ee_block = le32_to_cpu(ex->ee_block); + ee_len = ext4_ext_get_actual_len(ex); ext_debug("ext4_convert_unwritten_extents_endio: inode %lu, logical" "block %llu, max_blocks %u\n", inode->i_ino, - (unsigned long long)le32_to_cpu(ex->ee_block), - ext4_ext_get_actual_len(ex)); + (unsigned long long)ee_block, ee_len); + + /* If extent is larger than requested then split is required */ + if (ee_block != map->m_lblk || ee_len > map->m_len) { + err = ext4_split_unwritten_extents(handle, inode, map, path, + EXT4_GET_BLOCKS_CONVERT); + if (err < 0) + goto out; + ext4_ext_drop_refs(path); + path = ext4_ext_find_extent(inode, map->m_lblk, path); + if (IS_ERR(path)) { + err = PTR_ERR(path); + goto out; + } + depth = ext_depth(inode); + ex = path[depth].p_ext; + } err = ext4_ext_get_access(handle, inode, path + depth); if (err) @@ -3481,7 +3611,7 @@ } /* IO end_io complete, convert the filled extent to written */ if ((flags & EXT4_GET_BLOCKS_CONVERT)) { - ret = ext4_convert_unwritten_extents_endio(handle, inode, + ret = ext4_convert_unwritten_extents_endio(handle, inode, map, path); if (ret >= 0) { ext4_update_inode_fsync_trans(handle, inode, 1); @@ -3536,6 +3666,7 @@ allocated - map->m_len); allocated = map->m_len; } + map->m_len = allocated; /* * If we have done fallocate with the offset that is already @@ -4227,7 +4358,7 @@ last_block = (inode->i_size + sb->s_blocksize - 1) >> EXT4_BLOCK_SIZE_BITS(sb); - err = ext4_ext_remove_space(inode, last_block); + err = ext4_ext_remove_space(inode, last_block, EXT_MAX_BLOCKS - 1); /* In a multi-transaction truncate, we only make the final * transaction synchronous. @@ -4670,7 +4801,7 @@ error = ext4_get_inode_loc(inode, &iloc); if (error) return error; - physical = iloc.bh->b_blocknr << blockbits; + physical = (__u64)iloc.bh->b_blocknr << blockbits; offset = EXT4_GOOD_OLD_INODE_SIZE + EXT4_I(inode)->i_extra_isize; physical += offset; @@ -4678,7 +4809,7 @@ flags |= FIEMAP_EXTENT_DATA_INLINE; brelse(iloc.bh); } else { /* external block */ - physical = EXT4_I(inode)->i_file_acl << blockbits; + physical = (__u64)EXT4_I(inode)->i_file_acl << blockbits; length = inode->i_sb->s_blocksize; } @@ -4704,14 +4835,12 @@ { struct inode *inode = file->f_path.dentry->d_inode; struct super_block *sb = inode->i_sb; - struct ext4_ext_cache cache_ex; - ext4_lblk_t first_block, last_block, num_blocks, iblock, max_blocks; + ext4_lblk_t first_block, stop_block; struct address_space *mapping = inode->i_mapping; - struct ext4_map_blocks map; handle_t *handle; loff_t first_page, last_page, page_len; loff_t first_page_offset, last_page_offset; - int ret, credits, blocks_released, err = 0; + int credits, err = 0; /* No need to punch hole beyond i_size */ if (offset >= inode->i_size) @@ -4727,10 +4856,6 @@ offset; } - first_block = (offset + sb->s_blocksize - 1) >> - EXT4_BLOCK_SIZE_BITS(sb); - last_block = (offset + length) >> EXT4_BLOCK_SIZE_BITS(sb); - first_page = (offset + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; last_page = (offset + length) >> PAGE_CACHE_SHIFT; @@ -4809,7 +4934,6 @@ } } - /* * If i_size is contained in the last page, we need to * unmap and zero the partial page after i_size @@ -4829,73 +4953,22 @@ } } + first_block = (offset + sb->s_blocksize - 1) >> + EXT4_BLOCK_SIZE_BITS(sb); + stop_block = (offset + length) >> EXT4_BLOCK_SIZE_BITS(sb); + /* If there are no blocks to remove, return now */ - if (first_block >= last_block) + if (first_block >= stop_block) goto out; down_write(&EXT4_I(inode)->i_data_sem); ext4_ext_invalidate_cache(inode); ext4_discard_preallocations(inode); - /* - * Loop over all the blocks and identify blocks - * that need to be punched out - */ - iblock = first_block; - blocks_released = 0; - while (iblock < last_block) { - max_blocks = last_block - iblock; - num_blocks = 1; - memset(&map, 0, sizeof(map)); - map.m_lblk = iblock; - map.m_len = max_blocks; - ret = ext4_ext_map_blocks(handle, inode, &map, - EXT4_GET_BLOCKS_PUNCH_OUT_EXT); - - if (ret > 0) { - blocks_released += ret; - num_blocks = ret; - } else if (ret == 0) { - /* - * If map blocks could not find the block, - * then it is in a hole. If the hole was - * not already cached, then map blocks should - * put it in the cache. So we can get the hole - * out of the cache - */ - memset(&cache_ex, 0, sizeof(cache_ex)); - if ((ext4_ext_check_cache(inode, iblock, &cache_ex)) && - !cache_ex.ec_start) { - - /* The hole is cached */ - num_blocks = cache_ex.ec_block + - cache_ex.ec_len - iblock; - - } else { - /* The block could not be identified */ - err = -EIO; - break; - } - } else { - /* Map blocks error */ - err = ret; - break; - } + err = ext4_ext_remove_space(inode, first_block, stop_block - 1); - if (num_blocks == 0) { - /* This condition should never happen */ - ext_debug("Block lookup failed"); - err = -EIO; - break; - } - - iblock += num_blocks; - } - - if (blocks_released > 0) { - ext4_ext_invalidate_cache(inode); - ext4_discard_preallocations(inode); - } + ext4_ext_invalidate_cache(inode); + ext4_discard_preallocations(inode); if (IS_SYNC(inode)) ext4_handle_sync(handle); --- linux-3.2.0.orig/fs/ext4/balloc.c +++ linux-3.2.0/fs/ext4/balloc.c @@ -88,8 +88,8 @@ * unusual file system layouts. */ if (ext4_block_in_group(sb, ext4_block_bitmap(sb, gdp), block_group)) { - block_cluster = EXT4_B2C(sbi, (start - - ext4_block_bitmap(sb, gdp))); + block_cluster = EXT4_B2C(sbi, + ext4_block_bitmap(sb, gdp) - start); if (block_cluster < num_clusters) block_cluster = -1; else if (block_cluster == num_clusters) { @@ -100,7 +100,7 @@ if (ext4_block_in_group(sb, ext4_inode_bitmap(sb, gdp), block_group)) { inode_cluster = EXT4_B2C(sbi, - start - ext4_inode_bitmap(sb, gdp)); + ext4_inode_bitmap(sb, gdp) - start); if (inode_cluster < num_clusters) inode_cluster = -1; else if (inode_cluster == num_clusters) { @@ -112,7 +112,7 @@ itbl_blk = ext4_inode_table(sb, gdp); for (i = 0; i < sbi->s_itb_per_group; i++) { if (ext4_block_in_group(sb, itbl_blk + i, block_group)) { - c = EXT4_B2C(sbi, start - itbl_blk + i); + c = EXT4_B2C(sbi, itbl_blk + i - start); if ((c < num_clusters) || (c == inode_cluster) || (c == block_cluster) || (c == itbl_cluster)) continue; @@ -420,11 +420,16 @@ free_clusters = percpu_counter_read_positive(fcc); dirty_clusters = percpu_counter_read_positive(dcc); - root_clusters = EXT4_B2C(sbi, ext4_r_blocks_count(sbi->s_es)); + + /* + * r_blocks_count should always be multiple of the cluster ratio so + * we are safe to do a plane bit shift only. + */ + root_clusters = ext4_r_blocks_count(sbi->s_es) >> sbi->s_cluster_bits; if (free_clusters - (nclusters + root_clusters + dirty_clusters) < EXT4_FREECLUSTERS_WATERMARK) { - free_clusters = EXT4_C2B(sbi, percpu_counter_sum_positive(fcc)); + free_clusters = percpu_counter_sum_positive(fcc); dirty_clusters = percpu_counter_sum_positive(dcc); } /* Check whether we have space after accounting for current @@ -557,7 +562,8 @@ if (bitmap_bh == NULL) continue; - x = ext4_count_free(bitmap_bh, sb->s_blocksize); + x = ext4_count_free(bitmap_bh->b_data, + EXT4_BLOCKS_PER_GROUP(sb) / 8); printk(KERN_DEBUG "group %u: stored = %d, counted = %u\n", i, ext4_free_group_clusters(sb, gdp), x); bitmap_count += x; @@ -565,7 +571,7 @@ brelse(bitmap_bh); printk(KERN_DEBUG "ext4_count_free_clusters: stored = %llu" ", computed = %llu, %llu\n", - EXT4_B2C(EXT4_SB(sb), ext4_free_blocks_count(es)), + EXT4_NUM_B2C(EXT4_SB(sb), ext4_free_blocks_count(es)), desc_count, bitmap_count); return bitmap_count; #else --- linux-3.2.0.orig/fs/ext4/move_extent.c +++ linux-3.2.0/fs/ext4/move_extent.c @@ -141,55 +141,21 @@ } /** - * mext_check_null_inode - NULL check for two inodes - * - * If inode1 or inode2 is NULL, return -EIO. Otherwise, return 0. - */ -static int -mext_check_null_inode(struct inode *inode1, struct inode *inode2, - const char *function, unsigned int line) -{ - int ret = 0; - - if (inode1 == NULL) { - __ext4_error(inode2->i_sb, function, line, - "Both inodes should not be NULL: " - "inode1 NULL inode2 %lu", inode2->i_ino); - ret = -EIO; - } else if (inode2 == NULL) { - __ext4_error(inode1->i_sb, function, line, - "Both inodes should not be NULL: " - "inode1 %lu inode2 NULL", inode1->i_ino); - ret = -EIO; - } - return ret; -} - -/** * double_down_write_data_sem - Acquire two inodes' write lock of i_data_sem * - * @orig_inode: original inode structure - * @donor_inode: donor inode structure - * Acquire write lock of i_data_sem of the two inodes (orig and donor) by - * i_ino order. + * Acquire write lock of i_data_sem of the two inodes */ static void -double_down_write_data_sem(struct inode *orig_inode, struct inode *donor_inode) +double_down_write_data_sem(struct inode *first, struct inode *second) { - struct inode *first = orig_inode, *second = donor_inode; + if (first < second) { + down_write(&EXT4_I(first)->i_data_sem); + down_write_nested(&EXT4_I(second)->i_data_sem, SINGLE_DEPTH_NESTING); + } else { + down_write(&EXT4_I(second)->i_data_sem); + down_write_nested(&EXT4_I(first)->i_data_sem, SINGLE_DEPTH_NESTING); - /* - * Use the inode number to provide the stable locking order instead - * of its address, because the C language doesn't guarantee you can - * compare pointers that don't come from the same array. - */ - if (donor_inode->i_ino < orig_inode->i_ino) { - first = donor_inode; - second = orig_inode; } - - down_write(&EXT4_I(first)->i_data_sem); - down_write_nested(&EXT4_I(second)->i_data_sem, SINGLE_DEPTH_NESTING); } /** @@ -969,14 +935,6 @@ return -EINVAL; } - /* Files should be in the same ext4 FS */ - if (orig_inode->i_sb != donor_inode->i_sb) { - ext4_debug("ext4 move extent: The argument files " - "should be in same FS [ino:orig %lu, donor %lu]\n", - orig_inode->i_ino, donor_inode->i_ino); - return -EINVAL; - } - /* Ext4 move extent supports only extent based file */ if (!(ext4_test_inode_flag(orig_inode, EXT4_INODE_EXTENTS))) { ext4_debug("ext4 move extent: orig file is not extents " @@ -1072,35 +1030,19 @@ * @inode1: the inode structure * @inode2: the inode structure * - * Lock two inodes' i_mutex by i_ino order. - * If inode1 or inode2 is NULL, return -EIO. Otherwise, return 0. + * Lock two inodes' i_mutex */ -static int +static void mext_inode_double_lock(struct inode *inode1, struct inode *inode2) { - int ret = 0; - - BUG_ON(inode1 == NULL && inode2 == NULL); - - ret = mext_check_null_inode(inode1, inode2, __func__, __LINE__); - if (ret < 0) - goto out; - - if (inode1 == inode2) { - mutex_lock(&inode1->i_mutex); - goto out; - } - - if (inode1->i_ino < inode2->i_ino) { + BUG_ON(inode1 == inode2); + if (inode1 < inode2) { mutex_lock_nested(&inode1->i_mutex, I_MUTEX_PARENT); mutex_lock_nested(&inode2->i_mutex, I_MUTEX_CHILD); } else { mutex_lock_nested(&inode2->i_mutex, I_MUTEX_PARENT); mutex_lock_nested(&inode1->i_mutex, I_MUTEX_CHILD); } - -out: - return ret; } /** @@ -1109,28 +1051,13 @@ * @inode1: the inode that is released first * @inode2: the inode that is released second * - * If inode1 or inode2 is NULL, return -EIO. Otherwise, return 0. */ -static int +static void mext_inode_double_unlock(struct inode *inode1, struct inode *inode2) { - int ret = 0; - - BUG_ON(inode1 == NULL && inode2 == NULL); - - ret = mext_check_null_inode(inode1, inode2, __func__, __LINE__); - if (ret < 0) - goto out; - - if (inode1) - mutex_unlock(&inode1->i_mutex); - - if (inode2 && inode2 != inode1) - mutex_unlock(&inode2->i_mutex); - -out: - return ret; + mutex_unlock(&inode1->i_mutex); + mutex_unlock(&inode2->i_mutex); } /** @@ -1187,16 +1114,23 @@ ext4_lblk_t block_end, seq_start, add_blocks, file_end, seq_blocks = 0; ext4_lblk_t rest_blocks; pgoff_t orig_page_offset = 0, seq_end_page; - int ret1, ret2, depth, last_extent = 0; + int ret, depth, last_extent = 0; int blocks_per_page = PAGE_CACHE_SIZE >> orig_inode->i_blkbits; int data_offset_in_page; int block_len_in_page; int uninit; - /* orig and donor should be different file */ - if (orig_inode->i_ino == donor_inode->i_ino) { + if (orig_inode->i_sb != donor_inode->i_sb) { + ext4_debug("ext4 move extent: The argument files " + "should be in same FS [ino:orig %lu, donor %lu]\n", + orig_inode->i_ino, donor_inode->i_ino); + return -EINVAL; + } + + /* orig and donor should be different inodes */ + if (orig_inode == donor_inode) { ext4_debug("ext4 move extent: The argument files should not " - "be same file [ino:orig %lu, donor %lu]\n", + "be same inode [ino:orig %lu, donor %lu]\n", orig_inode->i_ino, donor_inode->i_ino); return -EINVAL; } @@ -1208,18 +1142,21 @@ orig_inode->i_ino, donor_inode->i_ino); return -EINVAL; } - + /* TODO: This is non obvious task to swap blocks for inodes with full + jornaling enabled */ + if (ext4_should_journal_data(orig_inode) || + ext4_should_journal_data(donor_inode)) { + return -EINVAL; + } /* Protect orig and donor inodes against a truncate */ - ret1 = mext_inode_double_lock(orig_inode, donor_inode); - if (ret1 < 0) - return ret1; + mext_inode_double_lock(orig_inode, donor_inode); /* Protect extent tree against block allocations via delalloc */ double_down_write_data_sem(orig_inode, donor_inode); /* Check the filesystem environment whether move_extent can be done */ - ret1 = mext_check_arguments(orig_inode, donor_inode, orig_start, + ret = mext_check_arguments(orig_inode, donor_inode, orig_start, donor_start, &len); - if (ret1) + if (ret) goto out; file_end = (i_size_read(orig_inode) - 1) >> orig_inode->i_blkbits; @@ -1227,13 +1164,13 @@ if (file_end < block_end) len -= block_end - file_end; - ret1 = get_ext_path(orig_inode, block_start, &orig_path); - if (ret1) + ret = get_ext_path(orig_inode, block_start, &orig_path); + if (ret) goto out; /* Get path structure to check the hole */ - ret1 = get_ext_path(orig_inode, block_start, &holecheck_path); - if (ret1) + ret = get_ext_path(orig_inode, block_start, &holecheck_path); + if (ret) goto out; depth = ext_depth(orig_inode); @@ -1252,13 +1189,13 @@ last_extent = mext_next_extent(orig_inode, holecheck_path, &ext_cur); if (last_extent < 0) { - ret1 = last_extent; + ret = last_extent; goto out; } last_extent = mext_next_extent(orig_inode, orig_path, &ext_dummy); if (last_extent < 0) { - ret1 = last_extent; + ret = last_extent; goto out; } seq_start = le32_to_cpu(ext_cur->ee_block); @@ -1272,7 +1209,7 @@ if (le32_to_cpu(ext_cur->ee_block) > block_end) { ext4_debug("ext4 move extent: The specified range of file " "may be the hole\n"); - ret1 = -EINVAL; + ret = -EINVAL; goto out; } @@ -1292,7 +1229,7 @@ last_extent = mext_next_extent(orig_inode, holecheck_path, &ext_cur); if (last_extent < 0) { - ret1 = last_extent; + ret = last_extent; break; } add_blocks = ext4_ext_get_actual_len(ext_cur); @@ -1349,18 +1286,18 @@ orig_page_offset, data_offset_in_page, block_len_in_page, uninit, - &ret1); + &ret); /* Count how many blocks we have exchanged */ *moved_len += block_len_in_page; - if (ret1 < 0) + if (ret < 0) break; if (*moved_len > len) { EXT4_ERROR_INODE(orig_inode, "We replaced blocks too much! " "sum of replaced: %llu requested: %llu", *moved_len, len); - ret1 = -EIO; + ret = -EIO; break; } @@ -1374,22 +1311,22 @@ } double_down_write_data_sem(orig_inode, donor_inode); - if (ret1 < 0) + if (ret < 0) break; /* Decrease buffer counter */ if (holecheck_path) ext4_ext_drop_refs(holecheck_path); - ret1 = get_ext_path(orig_inode, seq_start, &holecheck_path); - if (ret1) + ret = get_ext_path(orig_inode, seq_start, &holecheck_path); + if (ret) break; depth = holecheck_path->p_depth; /* Decrease buffer counter */ if (orig_path) ext4_ext_drop_refs(orig_path); - ret1 = get_ext_path(orig_inode, seq_start, &orig_path); - if (ret1) + ret = get_ext_path(orig_inode, seq_start, &orig_path); + if (ret) break; ext_cur = holecheck_path[depth].p_ext; @@ -1412,12 +1349,7 @@ kfree(holecheck_path); } double_up_write_data_sem(orig_inode, donor_inode); - ret2 = mext_inode_double_unlock(orig_inode, donor_inode); + mext_inode_double_unlock(orig_inode, donor_inode); - if (ret1) - return ret1; - else if (ret2) - return ret2; - - return 0; + return ret; } --- linux-3.2.0.orig/fs/xfs/xfs_aops.c +++ linux-3.2.0/fs/xfs/xfs_aops.c @@ -88,11 +88,11 @@ } if (ioend->io_iocb) { + inode_dio_done(ioend->io_inode); if (ioend->io_isasync) { aio_complete(ioend->io_iocb, ioend->io_error ? ioend->io_error : ioend->io_result, 0); } - inode_dio_done(ioend->io_inode); } mempool_free(ioend, xfs_ioend_pool); --- linux-3.2.0.orig/fs/xfs/xfs_acl.c +++ linux-3.2.0/fs/xfs/xfs_acl.c @@ -39,7 +39,7 @@ struct posix_acl_entry *acl_e; struct posix_acl *acl; struct xfs_acl_entry *ace; - int count, i; + unsigned int count, i; count = be32_to_cpu(aclp->acl_cnt); if (count > XFS_ACL_MAX_ENTRIES) --- linux-3.2.0.orig/fs/xfs/xfs_buf.c +++ linux-3.2.0/fs/xfs/xfs_buf.c @@ -434,6 +434,7 @@ struct rb_node **rbp; struct rb_node *parent; xfs_buf_t *bp; + xfs_daddr_t eofs; range_base = (ioff << BBSHIFT); range_length = (isize << BBSHIFT); @@ -442,6 +443,23 @@ ASSERT(!(range_length < (1 << btp->bt_sshift))); ASSERT(!(range_base & (xfs_off_t)btp->bt_smask)); + /* + * Corrupted block numbers can get through to here, unfortunately, so we + * have to check that the buffer falls within the filesystem bounds. + */ + eofs = XFS_FSB_TO_BB(btp->bt_mount, btp->bt_mount->m_sb.sb_dblocks); + if (ioff >= eofs) { + /* + * XXX (dgc): we should really be returning EFSCORRUPTED here, + * but none of the higher level infrastructure supports + * returning a specific error on buffer lookup failures. + */ + xfs_alert(btp->bt_mount, + "%s: Block out of range: block 0x%llx, EOFS 0x%llx ", + __func__, ioff, eofs); + return NULL; + } + /* get tree root */ pag = xfs_perag_get(btp->bt_mount, xfs_daddr_to_agno(btp->bt_mount, ioff)); @@ -1167,9 +1185,14 @@ { xfs_buf_t *bp = (xfs_buf_t *)bio->bi_private; - xfs_buf_ioerror(bp, -error); + /* + * don't overwrite existing errors - otherwise we can lose errors on + * buffers that require multiple bios to complete. + */ + if (!bp->b_error) + xfs_buf_ioerror(bp, -error); - if (!error && xfs_buf_is_vmapped(bp) && (bp->b_flags & XBF_READ)) + if (!bp->b_error && xfs_buf_is_vmapped(bp) && (bp->b_flags & XBF_READ)) invalidate_kernel_vmap_range(bp->b_addr, xfs_buf_vmap_len(bp)); _xfs_buf_ioend(bp, 1); @@ -1245,6 +1268,11 @@ if (size) goto next_chunk; } else { + /* + * This is guaranteed not to be the last io reference count + * because the caller (xfs_buf_iorequest) holds a count itself. + */ + atomic_dec(&bp->b_io_remaining); xfs_buf_ioerror(bp, EIO); bio_put(bio); } --- linux-3.2.0.orig/fs/xfs/xfs_discard.c +++ linux-3.2.0/fs/xfs/xfs_discard.c @@ -68,7 +68,7 @@ * Look up the longest btree in the AGF and start with it. */ error = xfs_alloc_lookup_le(cur, 0, - XFS_BUF_TO_AGF(agbp)->agf_longest, &i); + be32_to_cpu(XFS_BUF_TO_AGF(agbp)->agf_longest), &i); if (error) goto out_del_cursor; @@ -84,7 +84,7 @@ if (error) goto out_del_cursor; XFS_WANT_CORRUPTED_GOTO(i == 1, out_del_cursor); - ASSERT(flen <= XFS_BUF_TO_AGF(agbp)->agf_longest); + ASSERT(flen <= be32_to_cpu(XFS_BUF_TO_AGF(agbp)->agf_longest)); /* * Too small? Give up. --- linux-3.2.0.orig/fs/xfs/xfs_export.c +++ linux-3.2.0/fs/xfs/xfs_export.c @@ -195,6 +195,9 @@ struct xfs_fid64 *fid64 = (struct xfs_fid64 *)fid; struct inode *inode = NULL; + if (fh_len < xfs_fileid_length(fileid_type)) + return NULL; + switch (fileid_type) { case FILEID_INO32_GEN_PARENT: inode = xfs_nfs_get_inode(sb, fid->i32.parent_ino, --- linux-3.2.0.orig/fs/xfs/xfs_iget.c +++ linux-3.2.0/fs/xfs/xfs_iget.c @@ -353,9 +353,20 @@ BUG(); } - spin_lock(&pag->pag_ici_lock); + /* + * These values must be set before inserting the inode into the radix + * tree as the moment it is inserted a concurrent lookup (allowed by the + * RCU locking mechanism) can find it and that lookup must see that this + * is an inode currently under construction (i.e. that XFS_INEW is set). + * The ip->i_flags_lock that protects the XFS_INEW flag forms the + * memory barrier that ensures this detection works correctly at lookup + * time. + */ + ip->i_udquot = ip->i_gdquot = NULL; + xfs_iflags_set(ip, XFS_INEW); /* insert the new inode */ + spin_lock(&pag->pag_ici_lock); error = radix_tree_insert(&pag->pag_ici_root, agino, ip); if (unlikely(error)) { WARN_ON(error != -EEXIST); @@ -363,11 +374,6 @@ error = EAGAIN; goto out_preload_end; } - - /* These values _must_ be set before releasing the radix tree lock! */ - ip->i_udquot = ip->i_gdquot = NULL; - xfs_iflags_set(ip, XFS_INEW); - spin_unlock(&pag->pag_ici_lock); radix_tree_preload_end(); --- linux-3.2.0.orig/fs/xfs/xfs_iops.c +++ linux-3.2.0/fs/xfs/xfs_iops.c @@ -507,6 +507,28 @@ return 0; } +static void +xfs_setattr_mode( + struct xfs_trans *tp, + struct xfs_inode *ip, + struct iattr *iattr) +{ + struct inode *inode = VFS_I(ip); + umode_t mode = iattr->ia_mode; + + ASSERT(tp); + ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); + + if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) + mode &= ~S_ISGID; + + ip->i_d.di_mode &= S_IFMT; + ip->i_d.di_mode |= mode & ~S_IFMT; + + inode->i_mode &= S_IFMT; + inode->i_mode |= mode & ~S_IFMT; +} + int xfs_setattr_nonsize( struct xfs_inode *ip, @@ -658,18 +680,8 @@ /* * Change file access modes. */ - if (mask & ATTR_MODE) { - umode_t mode = iattr->ia_mode; - - if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) - mode &= ~S_ISGID; - - ip->i_d.di_mode &= S_IFMT; - ip->i_d.di_mode |= mode & ~S_IFMT; - - inode->i_mode &= S_IFMT; - inode->i_mode |= mode & ~S_IFMT; - } + if (mask & ATTR_MODE) + xfs_setattr_mode(tp, ip, iattr); /* * Change file access or modified times. @@ -768,9 +780,8 @@ return XFS_ERROR(error); ASSERT(S_ISREG(ip->i_d.di_mode)); - ASSERT((mask & (ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_ATIME|ATTR_ATIME_SET| - ATTR_MTIME_SET|ATTR_KILL_SUID|ATTR_KILL_SGID| - ATTR_KILL_PRIV|ATTR_TIMES_SET)) == 0); + ASSERT((mask & (ATTR_UID|ATTR_GID|ATTR_ATIME|ATTR_ATIME_SET| + ATTR_MTIME_SET|ATTR_KILL_PRIV|ATTR_TIMES_SET)) == 0); lock_flags = XFS_ILOCK_EXCL; if (!(flags & XFS_ATTR_NOLOCK)) @@ -902,6 +913,12 @@ xfs_iflags_set(ip, XFS_ITRUNCATED); } + /* + * Change file access modes. + */ + if (mask & ATTR_MODE) + xfs_setattr_mode(tp, ip, iattr); + if (mask & ATTR_CTIME) { inode->i_ctime = iattr->ia_ctime; ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; --- linux-3.2.0.orig/fs/xfs/xfs_vnodeops.c +++ linux-3.2.0/fs/xfs/xfs_vnodeops.c @@ -131,7 +131,8 @@ __func__, (unsigned long long) ip->i_ino, (long long) pathlen); ASSERT(0); - return XFS_ERROR(EFSCORRUPTED); + error = XFS_ERROR(EFSCORRUPTED); + goto out; } --- linux-3.2.0.orig/fs/xfs/xfs_log_recover.c +++ linux-3.2.0/fs/xfs/xfs_log_recover.c @@ -3161,37 +3161,26 @@ */ continue; } + /* + * Unlock the buffer so that it can be acquired in the normal + * course of the transaction to truncate and free each inode. + * Because we are not racing with anyone else here for the AGI + * buffer, we don't even need to hold it locked to read the + * initial unlinked bucket entries out of the buffer. We keep + * buffer reference though, so that it stays pinned in memory + * while we need the buffer. + */ agi = XFS_BUF_TO_AGI(agibp); + xfs_buf_unlock(agibp); for (bucket = 0; bucket < XFS_AGI_UNLINKED_BUCKETS; bucket++) { agino = be32_to_cpu(agi->agi_unlinked[bucket]); while (agino != NULLAGINO) { - /* - * Release the agi buffer so that it can - * be acquired in the normal course of the - * transaction to truncate and free the inode. - */ - xfs_buf_relse(agibp); - agino = xlog_recover_process_one_iunlink(mp, agno, agino, bucket); - - /* - * Reacquire the agibuffer and continue around - * the loop. This should never fail as we know - * the buffer was good earlier on. - */ - error = xfs_read_agi(mp, NULL, agno, &agibp); - ASSERT(error == 0); - agi = XFS_BUF_TO_AGI(agibp); } } - - /* - * Release the buffer for the current agi so we can - * go on to the next one. - */ - xfs_buf_relse(agibp); + xfs_buf_rele(agibp); } mp->m_dmevmask = mp_dmevmask; @@ -3525,7 +3514,7 @@ * - order is important. */ error = xlog_bread_offset(log, 0, - bblks - split_bblks, hbp, + bblks - split_bblks, dbp, offset + BBTOB(split_bblks)); if (error) goto bread_err2; --- linux-3.2.0.orig/fs/pstore/platform.c +++ linux-3.2.0/fs/pstore/platform.c @@ -68,9 +68,46 @@ /* Tag each group of saved records with a sequence number */ static int oopscount; -static char *reason_str[] = { - "Oops", "Panic", "Kexec", "Restart", "Halt", "Poweroff", "Emergency" -}; +static const char *get_reason_str(enum kmsg_dump_reason reason) +{ + switch (reason) { + case KMSG_DUMP_PANIC: + return "Panic"; + case KMSG_DUMP_OOPS: + return "Oops"; + case KMSG_DUMP_EMERG: + return "Emergency"; + case KMSG_DUMP_RESTART: + return "Restart"; + case KMSG_DUMP_HALT: + return "Halt"; + case KMSG_DUMP_POWEROFF: + return "Poweroff"; + default: + return "Unknown"; + } +} + +bool pstore_cannot_block_path(enum kmsg_dump_reason reason) +{ + /* + * In case of NMI path, pstore shouldn't be blocked + * regardless of reason. + */ + if (in_nmi()) + return true; + + switch (reason) { + /* In panic case, other cpus are stopped by smp_send_stop(). */ + case KMSG_DUMP_PANIC: + /* Emergency restart shouldn't be blocked by spin lock. */ + case KMSG_DUMP_EMERG: + return true; + default: + return false; + } +} +EXPORT_SYMBOL_GPL(pstore_cannot_block_path); /* * callback from kmsg_dump. (s2,l2) has the most recently @@ -85,22 +122,22 @@ unsigned long s1_start, s2_start; unsigned long l1_cpy, l2_cpy; unsigned long size, total = 0; - char *dst, *why; + char *dst; + const char *why; u64 id; int hsize, ret; unsigned int part = 1; unsigned long flags = 0; int is_locked = 0; - if (reason < ARRAY_SIZE(reason_str)) - why = reason_str[reason]; - else - why = "Unknown"; - - if (in_nmi()) { - is_locked = spin_trylock(&psinfo->buf_lock); - if (!is_locked) - pr_err("pstore dump routine blocked in NMI, may corrupt error record\n"); + why = get_reason_str(reason); + + if (pstore_cannot_block_path(reason)) { + is_locked = spin_trylock_irqsave(&psinfo->buf_lock, flags); + if (!is_locked) { + pr_err("pstore dump routine blocked in %s path, may corrupt error record\n" + , in_nmi() ? "NMI" : why); + } } else spin_lock_irqsave(&psinfo->buf_lock, flags); oopscount++; @@ -131,9 +168,9 @@ total += l1_cpy + l2_cpy; part++; } - if (in_nmi()) { + if (pstore_cannot_block_path(reason)) { if (is_locked) - spin_unlock(&psinfo->buf_lock); + spin_unlock_irqrestore(&psinfo->buf_lock, flags); } else spin_unlock_irqrestore(&psinfo->buf_lock, flags); } --- linux-3.2.0.orig/fs/reiserfs/super.c +++ linux-3.2.0/fs/reiserfs/super.c @@ -254,7 +254,9 @@ retval = remove_save_link_only(s, &save_link_key, 0); continue; } + reiserfs_write_unlock(s); dquot_initialize(inode); + reiserfs_write_lock(s); if (truncate && S_ISDIR(inode->i_mode)) { /* We got a truncate request for a dir which is impossible. @@ -453,16 +455,20 @@ static void reiserfs_kill_sb(struct super_block *s) { if (REISERFS_SB(s)) { - if (REISERFS_SB(s)->xattr_root) { - d_invalidate(REISERFS_SB(s)->xattr_root); - dput(REISERFS_SB(s)->xattr_root); - REISERFS_SB(s)->xattr_root = NULL; - } - if (REISERFS_SB(s)->priv_root) { - d_invalidate(REISERFS_SB(s)->priv_root); - dput(REISERFS_SB(s)->priv_root); - REISERFS_SB(s)->priv_root = NULL; - } + /* + * Force any pending inode evictions to occur now. Any + * inodes to be removed that have extended attributes + * associated with them need to clean them up before + * we can release the extended attribute root dentries. + * shrink_dcache_for_umount will BUG if we don't release + * those before it's called so ->put_super is too late. + */ + shrink_dcache_sb(s); + + dput(REISERFS_SB(s)->xattr_root); + REISERFS_SB(s)->xattr_root = NULL; + dput(REISERFS_SB(s)->priv_root); + REISERFS_SB(s)->priv_root = NULL; } kill_block_super(s); @@ -1164,7 +1170,8 @@ kfree(REISERFS_SB(s)->s_qf_names[i]); REISERFS_SB(s)->s_qf_names[i] = qf_names[i]; } - REISERFS_SB(s)->s_jquota_fmt = *qfmt; + if (*qfmt) + REISERFS_SB(s)->s_jquota_fmt = *qfmt; } #endif @@ -1202,7 +1209,7 @@ kfree(qf_names[i]); #endif err = -EINVAL; - goto out_err; + goto out_unlock; } #ifdef CONFIG_QUOTA handle_quota_files(s, qf_names, &qfmt); @@ -1245,7 +1252,7 @@ if (blocks) { err = reiserfs_resize(s, blocks); if (err != 0) - goto out_err; + goto out_unlock; } if (*mount_flags & MS_RDONLY) { @@ -1255,9 +1262,15 @@ /* it is read-only already */ goto out_ok; + /* + * Drop write lock. Quota will retake it when needed and lock + * ordering requires calling dquot_suspend() without it. + */ + reiserfs_write_unlock(s); err = dquot_suspend(s, -1); if (err < 0) goto out_err; + reiserfs_write_lock(s); /* try to remount file system with read-only permissions */ if (sb_umount_state(rs) == REISERFS_VALID_FS @@ -1267,7 +1280,7 @@ err = journal_begin(&th, s, 10); if (err) - goto out_err; + goto out_unlock; /* Mounting a rw partition read-only. */ reiserfs_prepare_for_journal(s, SB_BUFFER_WITH_SB(s), 1); @@ -1282,7 +1295,7 @@ if (reiserfs_is_journal_aborted(journal)) { err = journal->j_errno; - goto out_err; + goto out_unlock; } handle_data_mode(s, mount_options); @@ -1291,7 +1304,7 @@ s->s_flags &= ~MS_RDONLY; /* now it is safe to call journal_begin */ err = journal_begin(&th, s, 10); if (err) - goto out_err; + goto out_unlock; /* Mount a partition which is read-only, read-write */ reiserfs_prepare_for_journal(s, SB_BUFFER_WITH_SB(s), 1); @@ -1308,11 +1321,17 @@ SB_JOURNAL(s)->j_must_wait = 1; err = journal_end(&th, s, 10); if (err) - goto out_err; + goto out_unlock; s->s_dirt = 0; if (!(*mount_flags & MS_RDONLY)) { + /* + * Drop write lock. Quota will retake it when needed and lock + * ordering requires calling dquot_resume() without it. + */ + reiserfs_write_unlock(s); dquot_resume(s, -1); + reiserfs_write_lock(s); finish_unfinished(s); reiserfs_xattr_init(s, *mount_flags); } @@ -1322,9 +1341,10 @@ reiserfs_write_unlock(s); return 0; +out_unlock: + reiserfs_write_unlock(s); out_err: kfree(new_opts); - reiserfs_write_unlock(s); return err; } @@ -1948,13 +1968,15 @@ REISERFS_QUOTA_TRANS_BLOCKS(dquot->dq_sb)); if (ret) goto out; + reiserfs_write_unlock(dquot->dq_sb); ret = dquot_commit(dquot); + reiserfs_write_lock(dquot->dq_sb); err = journal_end(&th, dquot->dq_sb, REISERFS_QUOTA_TRANS_BLOCKS(dquot->dq_sb)); if (!ret && err) ret = err; - out: +out: reiserfs_write_unlock(dquot->dq_sb); return ret; } @@ -1970,13 +1992,15 @@ REISERFS_QUOTA_INIT_BLOCKS(dquot->dq_sb)); if (ret) goto out; + reiserfs_write_unlock(dquot->dq_sb); ret = dquot_acquire(dquot); + reiserfs_write_lock(dquot->dq_sb); err = journal_end(&th, dquot->dq_sb, REISERFS_QUOTA_INIT_BLOCKS(dquot->dq_sb)); if (!ret && err) ret = err; - out: +out: reiserfs_write_unlock(dquot->dq_sb); return ret; } @@ -1990,19 +2014,21 @@ ret = journal_begin(&th, dquot->dq_sb, REISERFS_QUOTA_DEL_BLOCKS(dquot->dq_sb)); + reiserfs_write_unlock(dquot->dq_sb); if (ret) { /* Release dquot anyway to avoid endless cycle in dqput() */ dquot_release(dquot); goto out; } ret = dquot_release(dquot); + reiserfs_write_lock(dquot->dq_sb); err = journal_end(&th, dquot->dq_sb, REISERFS_QUOTA_DEL_BLOCKS(dquot->dq_sb)); if (!ret && err) ret = err; - out: reiserfs_write_unlock(dquot->dq_sb); +out: return ret; } @@ -2027,11 +2053,13 @@ ret = journal_begin(&th, sb, 2); if (ret) goto out; + reiserfs_write_unlock(sb); ret = dquot_commit_info(sb, type); + reiserfs_write_lock(sb); err = journal_end(&th, sb, 2); if (!ret && err) ret = err; - out: +out: reiserfs_write_unlock(sb); return ret; } @@ -2055,8 +2083,11 @@ struct inode *inode; struct reiserfs_transaction_handle th; - if (!(REISERFS_SB(sb)->s_mount_opt & (1 << REISERFS_QUOTA))) - return -EINVAL; + reiserfs_write_lock(sb); + if (!(REISERFS_SB(sb)->s_mount_opt & (1 << REISERFS_QUOTA))) { + err = -EINVAL; + goto out; + } /* Quotafile not on the same filesystem? */ if (path->mnt->mnt_sb != sb) { @@ -2098,8 +2129,10 @@ if (err) goto out; } - err = dquot_quota_on(sb, type, format_id, path); + reiserfs_write_unlock(sb); + return dquot_quota_on(sb, type, format_id, path); out: + reiserfs_write_unlock(sb); return err; } @@ -2173,7 +2206,9 @@ tocopy = sb->s_blocksize - offset < towrite ? sb->s_blocksize - offset : towrite; tmp_bh.b_state = 0; + reiserfs_write_lock(sb); err = reiserfs_get_block(inode, blk, &tmp_bh, GET_BLOCK_CREATE); + reiserfs_write_unlock(sb); if (err) goto out; if (offset || tocopy != sb->s_blocksize) @@ -2189,10 +2224,12 @@ flush_dcache_page(bh->b_page); set_buffer_uptodate(bh); unlock_buffer(bh); + reiserfs_write_lock(sb); reiserfs_prepare_for_journal(sb, bh, 1); journal_mark_dirty(current->journal_info, sb, bh); if (!journal_quota) reiserfs_add_ordered_list(inode, bh); + reiserfs_write_unlock(sb); brelse(bh); offset = 0; towrite -= tocopy; --- linux-3.2.0.orig/fs/reiserfs/inode.c +++ linux-3.2.0/fs/reiserfs/inode.c @@ -1573,8 +1573,10 @@ reiserfs_warning(sb, "reiserfs-13077", "nfsd/reiserfs, fhtype=%d, len=%d - odd", fh_type, fh_len); - fh_type = 5; + fh_type = fh_len; } + if (fh_len < 2) + return NULL; return reiserfs_get_dentry(sb, fid->raw[0], fid->raw[1], (fh_type == 3 || fh_type >= 5) ? fid->raw[2] : 0); @@ -1583,6 +1585,8 @@ struct dentry *reiserfs_fh_to_parent(struct super_block *sb, struct fid *fid, int fh_len, int fh_type) { + if (fh_type > fh_len) + fh_type = fh_len; if (fh_type < 4) return NULL; @@ -1784,8 +1788,9 @@ BUG_ON(!th->t_trans_id); - dquot_initialize(inode); + reiserfs_write_unlock(inode->i_sb); err = dquot_alloc_inode(inode); + reiserfs_write_lock(inode->i_sb); if (err) goto out_end_trans; if (!dir->i_nlink) { @@ -1981,8 +1986,10 @@ out_end_trans: journal_end(th, th->t_super, th->t_blocks_allocated); + reiserfs_write_unlock(inode->i_sb); /* Drop can be outside and it needs more credits so it's better to have it outside */ dquot_drop(inode); + reiserfs_write_lock(inode->i_sb); inode->i_flags |= S_NOQUOTA; make_bad_inode(inode); @@ -3105,10 +3112,9 @@ /* must be turned off for recursive notify_change calls */ ia_valid = attr->ia_valid &= ~(ATTR_KILL_SUID|ATTR_KILL_SGID); - depth = reiserfs_write_lock_once(inode->i_sb); if (is_quota_modification(inode, attr)) dquot_initialize(inode); - + depth = reiserfs_write_lock_once(inode->i_sb); if (attr->ia_valid & ATTR_SIZE) { /* version 2 items will be caught by the s_maxbytes check ** done for us in vmtruncate @@ -3172,7 +3178,9 @@ error = journal_begin(&th, inode->i_sb, jbegin_count); if (error) goto out; + reiserfs_write_unlock_once(inode->i_sb, depth); error = dquot_transfer(inode, attr); + depth = reiserfs_write_lock_once(inode->i_sb); if (error) { journal_end(&th, inode->i_sb, jbegin_count); goto out; --- linux-3.2.0.orig/fs/reiserfs/xattr.c +++ linux-3.2.0/fs/reiserfs/xattr.c @@ -187,8 +187,8 @@ if (dbuf->count == ARRAY_SIZE(dbuf->dentries)) return -ENOSPC; - if (name[0] == '.' && (name[1] == '\0' || - (name[1] == '.' && name[2] == '\0'))) + if (name[0] == '.' && (namelen < 2 || + (namelen == 2 && name[1] == '.'))) return 0; dentry = lookup_one_len(name, dbuf->xadir, namelen); --- linux-3.2.0.orig/fs/reiserfs/stree.c +++ linux-3.2.0/fs/reiserfs/stree.c @@ -1968,7 +1968,9 @@ key2type(&(key->on_disk_key))); #endif + reiserfs_write_unlock(inode->i_sb); retval = dquot_alloc_space_nodirty(inode, pasted_size); + reiserfs_write_lock(inode->i_sb); if (retval) { pathrelse(search_path); return retval; @@ -2061,9 +2063,11 @@ "reiserquota insert_item(): allocating %u id=%u type=%c", quota_bytes, inode->i_uid, head2type(ih)); #endif + reiserfs_write_unlock(inode->i_sb); /* We can't dirty inode here. It would be immediately written but * appropriate stat item isn't inserted yet... */ retval = dquot_alloc_space_nodirty(inode, quota_bytes); + reiserfs_write_lock(inode->i_sb); if (retval) { pathrelse(path); return retval; --- linux-3.2.0.orig/fs/isofs/export.c +++ linux-3.2.0/fs/isofs/export.c @@ -135,6 +135,7 @@ len = 3; fh32[0] = ei->i_iget5_block; fh16[2] = (__u16)ei->i_iget5_offset; /* fh16 [sic] */ + fh16[3] = 0; /* avoid leaking uninitialized data */ fh32[2] = inode->i_generation; if (connectable && !S_ISDIR(inode->i_mode)) { struct inode *parent; @@ -179,7 +180,7 @@ { struct isofs_fid *ifid = (struct isofs_fid *)fid; - if (fh_type != 2) + if (fh_len < 2 || fh_type != 2) return NULL; return isofs_export_iget(sb, --- linux-3.2.0.orig/fs/nfs/dns_resolve.c +++ linux-3.2.0/fs/nfs/dns_resolve.c @@ -213,7 +213,7 @@ { char buf1[NFS_DNS_HOSTNAME_MAXLEN+1]; struct nfs_dns_ent key, *item; - unsigned long ttl; + unsigned int ttl; ssize_t len; int ret = -EINVAL; @@ -236,7 +236,8 @@ key.namelen = len; memset(&key.h, 0, sizeof(key.h)); - ttl = get_expiry(&buf); + if (get_uint(&buf, &ttl) < 0) + goto out; if (ttl == 0) goto out; key.h.expiry_time = ttl + seconds_since_boot(); --- linux-3.2.0.orig/fs/nfs/namespace.c +++ linux-3.2.0/fs/nfs/namespace.c @@ -37,6 +37,7 @@ * @dentry - pointer to dentry * @buffer - result buffer * @buflen - length of buffer + * @flags - options (see below) * * Helper function for constructing the server pathname * by arbitrary hashed dentry. @@ -44,8 +45,14 @@ * This is mainly for use in figuring out the path on the * server side when automounting on top of an existing partition * and in generating /proc/mounts and friends. + * + * Supported flags: + * NFS_PATH_CANONICAL: ensure there is exactly one slash after + * the original device (export) name + * (if unset, the original name is returned verbatim) */ -char *nfs_path(char **p, struct dentry *dentry, char *buffer, ssize_t buflen) +char *nfs_path(char **p, struct dentry *dentry, char *buffer, ssize_t buflen, + unsigned flags) { char *end; int namelen; @@ -78,7 +85,7 @@ rcu_read_unlock(); goto rename_retry; } - if (*end != '/') { + if ((flags & NFS_PATH_CANONICAL) && *end != '/') { if (--buflen < 0) { spin_unlock(&dentry->d_lock); rcu_read_unlock(); @@ -95,9 +102,11 @@ return end; } namelen = strlen(base); - /* Strip off excess slashes in base string */ - while (namelen > 0 && base[namelen - 1] == '/') - namelen--; + if (flags & NFS_PATH_CANONICAL) { + /* Strip off excess slashes in base string */ + while (namelen > 0 && base[namelen - 1] == '/') + namelen--; + } buflen -= namelen; if (buflen < 0) { spin_unlock(&dentry->d_lock); @@ -280,11 +289,31 @@ return mnt; } +static int +nfs_namespace_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) +{ + if (NFS_FH(dentry->d_inode)->size != 0) + return nfs_getattr(mnt, dentry, stat); + generic_fillattr(dentry->d_inode, stat); + return 0; +} + +static int +nfs_namespace_setattr(struct dentry *dentry, struct iattr *attr) +{ + if (NFS_FH(dentry->d_inode)->size != 0) + return nfs_setattr(dentry, attr); + return -EACCES; +} + const struct inode_operations nfs_mountpoint_inode_operations = { .getattr = nfs_getattr, + .setattr = nfs_setattr, }; const struct inode_operations nfs_referral_inode_operations = { + .getattr = nfs_namespace_getattr, + .setattr = nfs_namespace_setattr, }; static void nfs_expire_automounts(struct work_struct *work) --- linux-3.2.0.orig/fs/nfs/mount_clnt.c +++ linux-3.2.0/fs/nfs/mount_clnt.c @@ -181,7 +181,7 @@ else msg.rpc_proc = &mnt_clnt->cl_procinfo[MOUNTPROC_MNT]; - status = rpc_call_sync(mnt_clnt, &msg, 0); + status = rpc_call_sync(mnt_clnt, &msg, RPC_TASK_SOFT|RPC_TASK_TIMEOUT); rpc_shutdown_client(mnt_clnt); if (status < 0) --- linux-3.2.0.orig/fs/nfs/nfs3proc.c +++ linux-3.2.0/fs/nfs/nfs3proc.c @@ -68,7 +68,7 @@ nfs_fattr_init(info->fattr); status = rpc_call_sync(client, &msg, 0); dprintk("%s: reply fsinfo: %d\n", __func__, status); - if (!(info->fattr->valid & NFS_ATTR_FATTR)) { + if (status == 0 && !(info->fattr->valid & NFS_ATTR_FATTR)) { msg.rpc_proc = &nfs3_procedures[NFS3PROC_GETATTR]; msg.rpc_resp = info->fattr; status = rpc_call_sync(client, &msg, 0); @@ -633,7 +633,7 @@ u64 cookie, struct page **pages, unsigned int count, int plus) { struct inode *dir = dentry->d_inode; - __be32 *verf = NFS_COOKIEVERF(dir); + __be32 *verf = NFS_I(dir)->cookieverf; struct nfs3_readdirargs arg = { .fh = NFS_FH(dir), .cookie = cookie, --- linux-3.2.0.orig/fs/nfs/pnfs.h +++ linux-3.2.0/fs/nfs/pnfs.h @@ -68,6 +68,7 @@ enum layoutdriver_policy_flags { /* Should the pNFS client commit and return the layout upon a setattr */ PNFS_LAYOUTRET_ON_SETATTR = 1 << 0, + PNFS_LAYOUTRET_ON_ERROR = 1 << 1, }; struct nfs4_deviceid_node; @@ -161,7 +162,7 @@ struct pnfs_devicelist *devlist); extern int nfs4_proc_getdeviceinfo(struct nfs_server *server, struct pnfs_device *dev); -extern int nfs4_proc_layoutget(struct nfs4_layoutget *lgp); +extern int nfs4_proc_layoutget(struct nfs4_layoutget *lgp, gfp_t gfp_flags); extern int nfs4_proc_layoutreturn(struct nfs4_layoutreturn *lrp); /* pnfs.c */ --- linux-3.2.0.orig/fs/nfs/super.c +++ linux-3.2.0/fs/nfs/super.c @@ -41,7 +41,6 @@ #include #include #include -#include #include #include #include @@ -768,7 +767,7 @@ int err = 0; if (!page) return -ENOMEM; - devname = nfs_path(&dummy, mnt->mnt_root, page, PAGE_SIZE); + devname = nfs_path(&dummy, mnt->mnt_root, page, PAGE_SIZE, 0); if (IS_ERR(devname)) err = PTR_ERR(devname); else @@ -909,10 +908,24 @@ data->auth_flavor_len = 1; data->version = version; data->minorversion = 0; + security_init_mnt_opts(&data->lsm_opts); } return data; } +static void nfs_free_parsed_mount_data(struct nfs_parsed_mount_data *data) +{ + if (data) { + kfree(data->client_address); + kfree(data->mount_server.hostname); + kfree(data->nfs_server.export_path); + kfree(data->nfs_server.hostname); + kfree(data->fscache_uniq); + security_free_mnt_opts(&data->lsm_opts); + kfree(data); + } +} + /* * Sanity-check a server address provided by the mount command. * @@ -1043,7 +1056,7 @@ { kfree(*option); *option = match_strdup(args); - return !option; + return !*option; } static int nfs_get_option_ul(substring_t args[], unsigned long *option) @@ -1806,6 +1819,7 @@ memcpy(sap, &data->addr, sizeof(data->addr)); args->nfs_server.addrlen = sizeof(data->addr); + args->nfs_server.port = ntohs(data->addr.sin_port); if (!nfs_verify_server_address(sap)) goto out_no_address; @@ -2220,9 +2234,7 @@ data = nfs_alloc_parsed_mount_data(NFS_DEFAULT_VERSION); mntfh = nfs_alloc_fhandle(); if (data == NULL || mntfh == NULL) - goto out_free_fh; - - security_init_mnt_opts(&data->lsm_opts); + goto out; /* Validate the mount data */ error = nfs_validate_mount_data(raw_data, data, mntfh, dev_name); @@ -2234,8 +2246,6 @@ #ifdef CONFIG_NFS_V4 if (data->version == 4) { mntroot = nfs4_try_mount(flags, dev_name, data); - kfree(data->client_address); - kfree(data->nfs_server.export_path); goto out; } #endif /* CONFIG_NFS_V4 */ @@ -2290,13 +2300,8 @@ s->s_flags |= MS_ACTIVE; out: - kfree(data->nfs_server.hostname); - kfree(data->mount_server.hostname); - kfree(data->fscache_uniq); - security_free_mnt_opts(&data->lsm_opts); -out_free_fh: + nfs_free_parsed_mount_data(data); nfs_free_fhandle(mntfh); - kfree(data); return mntroot; out_err_nosb: @@ -2533,6 +2538,7 @@ return -EFAULT; if (!nfs_verify_server_address(sap)) goto out_no_address; + args->nfs_server.port = ntohs(((struct sockaddr_in *)sap)->sin_port); if (data->auth_flavourlen) { if (data->auth_flavourlen > 1) @@ -2623,9 +2629,7 @@ mntfh = nfs_alloc_fhandle(); if (data == NULL || mntfh == NULL) - goto out_free_fh; - - security_init_mnt_opts(&data->lsm_opts); + goto out; /* Get a volume representation */ server = nfs4_create_server(data, mntfh); @@ -2677,13 +2681,10 @@ s->s_flags |= MS_ACTIVE; - security_free_mnt_opts(&data->lsm_opts); nfs_free_fhandle(mntfh); return mntroot; out: - security_free_mnt_opts(&data->lsm_opts); -out_free_fh: nfs_free_fhandle(mntfh); return ERR_PTR(error); @@ -2708,11 +2709,15 @@ char *root_devname; size_t len; - len = strlen(hostname) + 3; + len = strlen(hostname) + 5; root_devname = kmalloc(len, GFP_KERNEL); if (root_devname == NULL) return ERR_PTR(-ENOMEM); - snprintf(root_devname, len, "%s:/", hostname); + /* Does hostname needs to be enclosed in brackets? */ + if (strchr(hostname, ':')) + snprintf(root_devname, len, "[%s]:/", hostname); + else + snprintf(root_devname, len, "%s:/", hostname); root_mnt = vfs_kern_mount(fs_type, flags, root_devname, data); kfree(root_devname); return root_mnt; @@ -2838,7 +2843,7 @@ data = nfs_alloc_parsed_mount_data(4); if (data == NULL) - goto out_free_data; + goto out; /* Validate the mount data */ error = nfs4_validate_mount_data(raw_data, data, dev_name); @@ -2852,12 +2857,7 @@ error = PTR_ERR(res); out: - kfree(data->client_address); - kfree(data->nfs_server.export_path); - kfree(data->nfs_server.hostname); - kfree(data->fscache_uniq); -out_free_data: - kfree(data); + nfs_free_parsed_mount_data(data); dprintk("<-- nfs4_mount() = %d%s\n", error, error != 0 ? " [error]" : ""); return res; @@ -3088,4 +3088,6 @@ return res; } +MODULE_ALIAS("nfs4"); + #endif /* CONFIG_NFS_V4 */ --- linux-3.2.0.orig/fs/nfs/read.c +++ linux-3.2.0/fs/nfs/read.c @@ -324,7 +324,7 @@ while (!list_empty(res)) { data = list_entry(res->next, struct nfs_read_data, list); list_del(&data->list); - nfs_readdata_free(data); + nfs_readdata_release(data); } nfs_readpage_release(req); return -ENOMEM; --- linux-3.2.0.orig/fs/nfs/nfs4namespace.c +++ linux-3.2.0/fs/nfs/nfs4namespace.c @@ -57,7 +57,8 @@ static char *nfs4_path(struct dentry *dentry, char *buffer, ssize_t buflen) { char *limit; - char *path = nfs_path(&limit, dentry, buffer, buflen); + char *path = nfs_path(&limit, dentry, buffer, buflen, + NFS_PATH_CANONICAL); if (!IS_ERR(path)) { char *colon = strchr(path, ':'); if (colon && colon < limit) --- linux-3.2.0.orig/fs/nfs/nfs4proc.c +++ linux-3.2.0/fs/nfs/nfs4proc.c @@ -96,6 +96,8 @@ case -NFS4ERR_BADOWNER: case -NFS4ERR_BADNAME: return -EINVAL; + case -NFS4ERR_SHARE_DENIED: + return -EACCES; default: dprintk("%s could not handle NFSv4 error %d\n", __func__, -err); @@ -257,17 +259,29 @@ { struct nfs_client *clp = server->nfs_client; struct nfs4_state *state = exception->state; + struct inode *inode = exception->inode; int ret = errorcode; exception->retry = 0; switch(errorcode) { case 0: return 0; + case -NFS4ERR_OPENMODE: + if (inode && nfs_have_delegation(inode, FMODE_READ)) { + nfs_inode_return_delegation(inode); + exception->retry = 1; + return 0; + } + if (state == NULL) + break; + nfs4_schedule_stateid_recovery(server, state); + goto wait_on_recovery; + case -NFS4ERR_DELEG_REVOKED: case -NFS4ERR_ADMIN_REVOKED: case -NFS4ERR_BAD_STATEID: - case -NFS4ERR_OPENMODE: if (state == NULL) break; + nfs_remove_bad_delegation(state->inode); nfs4_schedule_stateid_recovery(server, state); goto wait_on_recovery; case -NFS4ERR_EXPIRED: @@ -288,8 +302,7 @@ dprintk("%s ERROR: %d Reset session\n", __func__, errorcode); nfs4_schedule_session_recovery(clp->cl_session); - exception->retry = 1; - break; + goto wait_on_recovery; #endif /* defined(CONFIG_NFS_V4_1) */ case -NFS4ERR_FILE_OPEN: if (exception->timeout > HZ) { @@ -1316,8 +1329,11 @@ * The show must go on: exit, but mark the * stateid as needing recovery. */ + case -NFS4ERR_DELEG_REVOKED: case -NFS4ERR_ADMIN_REVOKED: case -NFS4ERR_BAD_STATEID: + nfs_inode_find_state_and_recover(state->inode, + stateid); nfs4_schedule_stateid_recovery(server, state); case -EKEYEXPIRED: /* @@ -1446,9 +1462,11 @@ data->timestamp = jiffies; if (nfs4_setup_sequence(data->o_arg.server, &data->o_arg.seq_args, - &data->o_res.seq_res, 1, task)) - return; - rpc_call_start(task); + &data->o_res.seq_res, + 1, task) != 0) + nfs_release_seqid(data->o_arg.seqid); + else + rpc_call_start(task); return; unlock_no_action: rcu_read_unlock(); @@ -1786,6 +1804,7 @@ nfs_setattr_update_inode(state->inode, sattr); nfs_post_op_update_inode(state->inode, opendata->o_res.f_attr); } + nfs_revalidate_inode(server, state->inode); nfs4_opendata_put(opendata); nfs4_put_state_owner(sp); *res = state; @@ -1806,6 +1825,7 @@ struct nfs4_state *res; int status; + fmode &= FMODE_READ|FMODE_WRITE; do { status = _nfs4_do_open(dir, dentry, fmode, flags, sattr, cred, &res); if (status == 0) @@ -1822,7 +1842,7 @@ * the user though... */ if (status == -NFS4ERR_BAD_SEQID) { - printk(KERN_WARNING "NFS: v4 server %s " + pr_warn_ratelimited("NFS: v4 server %s " " returned a bad sequence-id error!\n", NFS_SERVER(dir)->nfs_client->cl_hostname); exception.retry = 1; @@ -1893,7 +1913,10 @@ struct nfs4_state *state) { struct nfs_server *server = NFS_SERVER(inode); - struct nfs4_exception exception = { }; + struct nfs4_exception exception = { + .state = state, + .inode = inode, + }; int err; do { err = nfs4_handle_exception(server, @@ -2023,9 +2046,10 @@ calldata->timestamp = jiffies; if (nfs4_setup_sequence(NFS_SERVER(calldata->inode), &calldata->arg.seq_args, &calldata->res.seq_res, - 1, task)) - return; - rpc_call_start(task); + 1, task) != 0) + nfs_release_seqid(calldata->arg.seqid); + else + rpc_call_start(task); } static const struct rpc_call_ops nfs4_close_ops = { @@ -2223,11 +2247,12 @@ switch (err) { case 0: case -NFS4ERR_WRONGSEC: - break; + goto out; default: err = nfs4_handle_exception(server, err, &exception); } } while (exception.retry); +out: return err; } @@ -3001,11 +3026,11 @@ dentry->d_parent->d_name.name, dentry->d_name.name, (unsigned long long)cookie); - nfs4_setup_readdir(cookie, NFS_COOKIEVERF(dir), dentry, &args); + nfs4_setup_readdir(cookie, NFS_I(dir)->cookieverf, dentry, &args); res.pgbase = args.pgbase; status = nfs4_call_sync(NFS_SERVER(dir)->client, NFS_SERVER(dir), &msg, &args.seq_args, &res.seq_res, 0); if (status >= 0) { - memcpy(NFS_COOKIEVERF(dir), res.verifier.data, NFS4_VERIFIER_SIZE); + memcpy(NFS_I(dir)->cookieverf, res.verifier.data, NFS4_VERIFIER_SIZE); status += args.pgbase; } @@ -3430,19 +3455,6 @@ */ #define NFS4ACL_MAXPAGES (XATTR_SIZE_MAX >> PAGE_CACHE_SHIFT) -static void buf_to_pages(const void *buf, size_t buflen, - struct page **pages, unsigned int *pgbase) -{ - const void *p = buf; - - *pgbase = offset_in_page(buf); - p -= *pgbase; - while (p < buf + buflen) { - *(pages++) = virt_to_page(p); - p += PAGE_CACHE_SIZE; - } -} - static int buf_to_pages_noslab(const void *buf, size_t buflen, struct page **pages, unsigned int *pgbase) { @@ -3518,16 +3530,16 @@ return ret; } -static void nfs4_write_cached_acl(struct inode *inode, const char *buf, size_t acl_len) +static void nfs4_write_cached_acl(struct inode *inode, struct page **pages, size_t pgbase, size_t acl_len) { struct nfs4_cached_acl *acl; - if (buf && acl_len <= PAGE_SIZE) { + if (pages && acl_len <= PAGE_SIZE) { acl = kmalloc(sizeof(*acl) + acl_len, GFP_KERNEL); if (acl == NULL) goto out; acl->cached = 1; - memcpy(acl->data, buf, acl_len); + _copy_from_pages(acl->data, pages, pgbase, acl_len); } else { acl = kmalloc(sizeof(*acl), GFP_KERNEL); if (acl == NULL) @@ -3539,9 +3551,19 @@ nfs4_set_cached_acl(inode, acl); } +/* + * The getxattr API returns the required buffer length when called with a + * NULL buf. The NFSv4 acl tool then calls getxattr again after allocating + * the required buf. On a NULL buf, we send a page of data to the server + * guessing that the ACL request can be serviced by a page. If so, we cache + * up to the page of ACL data, and the 2nd call to getxattr is serviced by + * the cache. If not so, we throw away the page, and cache the required + * length. The next getxattr call will then produce another round trip to + * the server, this time with the input buf of the required size. + */ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t buflen) { - struct page *pages[NFS4ACL_MAXPAGES]; + struct page *pages[NFS4ACL_MAXPAGES] = {NULL, }; struct nfs_getaclargs args = { .fh = NFS_FH(inode), .acl_pages = pages, @@ -3550,47 +3572,69 @@ struct nfs_getaclres res = { .acl_len = buflen, }; - void *resp_buf; struct rpc_message msg = { .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_GETACL], .rpc_argp = &args, .rpc_resp = &res, }; - struct page *localpage = NULL; - int ret; + int ret = -ENOMEM, npages, i; + size_t acl_len = 0; - if (buflen < PAGE_SIZE) { - /* As long as we're doing a round trip to the server anyway, - * let's be prepared for a page of acl data. */ - localpage = alloc_page(GFP_KERNEL); - resp_buf = page_address(localpage); - if (localpage == NULL) - return -ENOMEM; - args.acl_pages[0] = localpage; - args.acl_pgbase = 0; - args.acl_len = PAGE_SIZE; - } else { - resp_buf = buf; - buf_to_pages(buf, buflen, args.acl_pages, &args.acl_pgbase); + npages = (buflen + PAGE_SIZE - 1) >> PAGE_SHIFT; + /* As long as we're doing a round trip to the server anyway, + * let's be prepared for a page of acl data. */ + if (npages == 0) + npages = 1; + + /* Add an extra page to handle the bitmap returned */ + npages++; + + for (i = 0; i < npages; i++) { + pages[i] = alloc_page(GFP_KERNEL); + if (!pages[i]) + goto out_free; } - ret = nfs4_call_sync(NFS_SERVER(inode)->client, NFS_SERVER(inode), &msg, &args.seq_args, &res.seq_res, 0); + + /* for decoding across pages */ + res.acl_scratch = alloc_page(GFP_KERNEL); + if (!res.acl_scratch) + goto out_free; + + args.acl_len = npages * PAGE_SIZE; + args.acl_pgbase = 0; + + /* Let decode_getfacl know not to fail if the ACL data is larger than + * the page we send as a guess */ + if (buf == NULL) + res.acl_flags |= NFS4_ACL_LEN_REQUEST; + + dprintk("%s buf %p buflen %zu npages %d args.acl_len %zu\n", + __func__, buf, buflen, npages, args.acl_len); + ret = nfs4_call_sync(NFS_SERVER(inode)->client, NFS_SERVER(inode), + &msg, &args.seq_args, &res.seq_res, 0); if (ret) goto out_free; - if (res.acl_len > args.acl_len) - nfs4_write_cached_acl(inode, NULL, res.acl_len); + + acl_len = res.acl_len - res.acl_data_offset; + if (acl_len > args.acl_len) + nfs4_write_cached_acl(inode, NULL, 0, acl_len); else - nfs4_write_cached_acl(inode, resp_buf, res.acl_len); + nfs4_write_cached_acl(inode, pages, res.acl_data_offset, + acl_len); if (buf) { ret = -ERANGE; - if (res.acl_len > buflen) + if (acl_len > buflen) goto out_free; - if (localpage) - memcpy(buf, resp_buf, res.acl_len); + _copy_from_pages(buf, pages, res.acl_data_offset, + acl_len); } - ret = res.acl_len; + ret = acl_len; out_free: - if (localpage) - __free_page(localpage); + for (i = 0; i < npages; i++) + if (pages[i]) + __free_page(pages[i]); + if (res.acl_scratch) + __free_page(res.acl_scratch); return ret; } @@ -3621,6 +3665,8 @@ nfs_zap_acl_cache(inode); ret = nfs4_read_cached_acl(inode, buf, buflen); if (ret != -ENOENT) + /* -ENOENT is returned if there is no ACL or if there is an ACL + * but no cached acl data, just the acl length */ return ret; return nfs4_get_acl_uncached(inode, buf, buflen); } @@ -3689,8 +3735,12 @@ if (task->tk_status >= 0) return 0; switch(task->tk_status) { + case -NFS4ERR_DELEG_REVOKED: case -NFS4ERR_ADMIN_REVOKED: case -NFS4ERR_BAD_STATEID: + if (state == NULL) + break; + nfs_remove_bad_delegation(state->inode); case -NFS4ERR_OPENMODE: if (state == NULL) break; @@ -4101,6 +4151,7 @@ if (nfs4_async_handle_error(task, calldata->server, NULL) == -EAGAIN) rpc_restart_call_prepare(task); } + nfs_release_seqid(calldata->arg.seqid); } static void nfs4_locku_prepare(struct rpc_task *task, void *data) @@ -4117,9 +4168,11 @@ calldata->timestamp = jiffies; if (nfs4_setup_sequence(calldata->server, &calldata->arg.seq_args, - &calldata->res.seq_res, 1, task)) - return; - rpc_call_start(task); + &calldata->res.seq_res, + 1, task) != 0) + nfs_release_seqid(calldata->arg.seqid); + else + rpc_call_start(task); } static const struct rpc_call_ops nfs4_locku_ops = { @@ -4263,7 +4316,7 @@ /* Do we need to do an open_to_lock_owner? */ if (!(data->arg.lock_seqid->sequence->flags & NFS_SEQID_CONFIRMED)) { if (nfs_wait_on_sequence(data->arg.open_seqid, task) != 0) - return; + goto out_release_lock_seqid; data->arg.open_stateid = &state->stateid; data->arg.new_lock_owner = 1; data->res.open_seqid = data->arg.open_seqid; @@ -4272,10 +4325,15 @@ data->timestamp = jiffies; if (nfs4_setup_sequence(data->server, &data->arg.seq_args, - &data->res.seq_res, 1, task)) + &data->res.seq_res, + 1, task) == 0) { + rpc_call_start(task); return; - rpc_call_start(task); - dprintk("%s: done!, ret = %d\n", __func__, data->rpc_status); + } + nfs_release_seqid(data->arg.open_seqid); +out_release_lock_seqid: + nfs_release_seqid(data->arg.lock_seqid); + dprintk("%s: done!, ret = %d\n", __func__, task->tk_status); } static void nfs4_recover_lock_prepare(struct rpc_task *task, void *calldata) @@ -4412,7 +4470,9 @@ static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request) { struct nfs_server *server = NFS_SERVER(state->inode); - struct nfs4_exception exception = { }; + struct nfs4_exception exception = { + .inode = state->inode, + }; int err; do { @@ -4430,7 +4490,9 @@ static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request) { struct nfs_server *server = NFS_SERVER(state->inode); - struct nfs4_exception exception = { }; + struct nfs4_exception exception = { + .inode = state->inode, + }; int err; err = nfs4_set_lock_state(state, request); @@ -4508,7 +4570,10 @@ static int nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *request) { - struct nfs4_exception exception = { }; + struct nfs4_exception exception = { + .state = state, + .inode = state->inode, + }; int err; do { @@ -4553,6 +4618,20 @@ if (state == NULL) return -ENOLCK; + /* + * Don't rely on the VFS having checked the file open mode, + * since it won't do this for flock() locks. + */ + switch (request->fl_type & (F_RDLCK|F_WRLCK|F_UNLCK)) { + case F_RDLCK: + if (!(filp->f_mode & FMODE_READ)) + return -EBADF; + break; + case F_WRLCK: + if (!(filp->f_mode & FMODE_WRITE)) + return -EBADF; + } + do { status = nfs4_proc_setlk(state, cmd, request); if ((status != -EAGAIN) || IS_SETLK(cmd)) @@ -4601,6 +4680,7 @@ * The show must go on: exit, but mark the * stateid as needing recovery. */ + case -NFS4ERR_DELEG_REVOKED: case -NFS4ERR_ADMIN_REVOKED: case -NFS4ERR_BAD_STATEID: case -NFS4ERR_OPENMODE: @@ -4858,8 +4938,10 @@ clp->cl_rpcclient->cl_auth->au_flavor); res.server_scope = kzalloc(sizeof(struct server_scope), GFP_KERNEL); - if (unlikely(!res.server_scope)) - return -ENOMEM; + if (unlikely(!res.server_scope)) { + status = -ENOMEM; + goto out; + } status = rpc_call_sync(clp->cl_rpcclient, &msg, RPC_TASK_TIMEOUT); if (!status) @@ -4876,12 +4958,13 @@ clp->server_scope = NULL; } - if (!clp->server_scope) + if (!clp->server_scope) { clp->server_scope = res.server_scope; - else - kfree(res.server_scope); + goto out; + } } - + kfree(res.server_scope); +out: dprintk("<-- %s status= %d\n", __func__, status); return status; } @@ -5462,13 +5545,26 @@ rpc_call_start(task); } +static void nfs41_sequence_prepare_privileged(struct rpc_task *task, void *data) +{ + rpc_task_set_priority(task, RPC_PRIORITY_PRIVILEGED); + nfs41_sequence_prepare(task, data); +} + static const struct rpc_call_ops nfs41_sequence_ops = { .rpc_call_done = nfs41_sequence_call_done, .rpc_call_prepare = nfs41_sequence_prepare, .rpc_release = nfs41_sequence_release, }; -static struct rpc_task *_nfs41_proc_sequence(struct nfs_client *clp, struct rpc_cred *cred) +static const struct rpc_call_ops nfs41_sequence_privileged_ops = { + .rpc_call_done = nfs41_sequence_call_done, + .rpc_call_prepare = nfs41_sequence_prepare_privileged, + .rpc_release = nfs41_sequence_release, +}; + +static struct rpc_task *_nfs41_proc_sequence(struct nfs_client *clp, struct rpc_cred *cred, + const struct rpc_call_ops *seq_ops) { struct nfs4_sequence_data *calldata; struct rpc_message msg = { @@ -5478,7 +5574,7 @@ struct rpc_task_setup task_setup_data = { .rpc_client = clp->cl_rpcclient, .rpc_message = &msg, - .callback_ops = &nfs41_sequence_ops, + .callback_ops = seq_ops, .flags = RPC_TASK_ASYNC | RPC_TASK_SOFT, }; @@ -5504,7 +5600,7 @@ if ((renew_flags & NFS4_RENEW_TIMEOUT) == 0) return 0; - task = _nfs41_proc_sequence(clp, cred); + task = _nfs41_proc_sequence(clp, cred, &nfs41_sequence_ops); if (IS_ERR(task)) ret = PTR_ERR(task); else @@ -5518,7 +5614,7 @@ struct rpc_task *task; int ret; - task = _nfs41_proc_sequence(clp, cred); + task = _nfs41_proc_sequence(clp, cred, &nfs41_sequence_privileged_ops); if (IS_ERR(task)) { ret = PTR_ERR(task); goto out; @@ -5697,11 +5793,58 @@ dprintk("<-- %s\n", __func__); } +static size_t max_response_pages(struct nfs_server *server) +{ + u32 max_resp_sz = server->nfs_client->cl_session->fc_attrs.max_resp_sz; + return nfs_page_array_len(0, max_resp_sz); +} + +static void nfs4_free_pages(struct page **pages, size_t size) +{ + int i; + + if (!pages) + return; + + for (i = 0; i < size; i++) { + if (!pages[i]) + break; + __free_page(pages[i]); + } + kfree(pages); +} + +static struct page **nfs4_alloc_pages(size_t size, gfp_t gfp_flags) +{ + struct page **pages; + int i; + + pages = kcalloc(size, sizeof(struct page *), gfp_flags); + if (!pages) { + dprintk("%s: can't alloc array of %zu pages\n", __func__, size); + return NULL; + } + + for (i = 0; i < size; i++) { + pages[i] = alloc_page(gfp_flags); + if (!pages[i]) { + dprintk("%s: failed to allocate page\n", __func__); + nfs4_free_pages(pages, size); + return NULL; + } + } + + return pages; +} + static void nfs4_layoutget_release(void *calldata) { struct nfs4_layoutget *lgp = calldata; + struct nfs_server *server = NFS_SERVER(lgp->args.inode); + size_t max_pages = max_response_pages(server); dprintk("--> %s\n", __func__); + nfs4_free_pages(lgp->args.layout.pages, max_pages); put_nfs_open_context(lgp->args.ctx); kfree(calldata); dprintk("<-- %s\n", __func__); @@ -5713,9 +5856,10 @@ .rpc_release = nfs4_layoutget_release, }; -int nfs4_proc_layoutget(struct nfs4_layoutget *lgp) +int nfs4_proc_layoutget(struct nfs4_layoutget *lgp, gfp_t gfp_flags) { struct nfs_server *server = NFS_SERVER(lgp->args.inode); + size_t max_pages = max_response_pages(server); struct rpc_task *task; struct rpc_message msg = { .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_LAYOUTGET], @@ -5733,6 +5877,13 @@ dprintk("--> %s\n", __func__); + lgp->args.layout.pages = nfs4_alloc_pages(max_pages, gfp_flags); + if (!lgp->args.layout.pages) { + nfs4_layoutget_release(lgp); + return -ENOMEM; + } + lgp->args.layout.pglen = max_pages * PAGE_SIZE; + lgp->res.layoutp = &lgp->args.layout; lgp->res.seq_res.sr_slot = NULL; task = rpc_run_task(&task_setup_data); @@ -5741,7 +5892,8 @@ status = nfs4_wait_for_completion_rpc_task(task); if (status == 0) status = task->tk_status; - if (status == 0) + /* if layoutp->len is 0, nfs4_layoutget_prepare called rpc_exit */ + if (status == 0 && lgp->res.layoutp->len) status = pnfs_layout_process(lgp); rpc_put_task(task); dprintk("<-- %s status=%d\n", __func__, status); @@ -5936,42 +6088,29 @@ return; switch (task->tk_status) { /* Just ignore these failures */ - case NFS4ERR_DELEG_REVOKED: /* layout was recalled */ - case NFS4ERR_BADIOMODE: /* no IOMODE_RW layout for range */ - case NFS4ERR_BADLAYOUT: /* no layout */ - case NFS4ERR_GRACE: /* loca_recalim always false */ + case -NFS4ERR_DELEG_REVOKED: /* layout was recalled */ + case -NFS4ERR_BADIOMODE: /* no IOMODE_RW layout for range */ + case -NFS4ERR_BADLAYOUT: /* no layout */ + case -NFS4ERR_GRACE: /* loca_recalim always false */ task->tk_status = 0; - } - - if (nfs4_async_handle_error(task, server, NULL) == -EAGAIN) { - rpc_restart_call_prepare(task); - return; - } - - if (task->tk_status == 0) + break; + case 0: nfs_post_op_update_inode_force_wcc(data->args.inode, data->res.fattr); + break; + default: + if (nfs4_async_handle_error(task, server, NULL) == -EAGAIN) { + rpc_restart_call_prepare(task); + return; + } + } } static void nfs4_layoutcommit_release(void *calldata) { struct nfs4_layoutcommit_data *data = calldata; - struct pnfs_layout_segment *lseg, *tmp; - unsigned long *bitlock = &NFS_I(data->args.inode)->flags; pnfs_cleanup_layoutcommit(data); - /* Matched by references in pnfs_set_layoutcommit */ - list_for_each_entry_safe(lseg, tmp, &data->lseg_list, pls_lc_list) { - list_del_init(&lseg->pls_lc_list); - if (test_and_clear_bit(NFS_LSEG_LAYOUTCOMMIT, - &lseg->pls_flags)) - put_lseg(lseg); - } - - clear_bit_unlock(NFS_INO_LAYOUTCOMMITTING, bitlock); - smp_mb__after_clear_bit(); - wake_up_bit(bitlock, NFS_INO_LAYOUTCOMMITTING); - put_rpccred(data->cred); kfree(data); } @@ -6053,11 +6192,12 @@ case 0: case -NFS4ERR_WRONGSEC: case -NFS4ERR_NOTSUPP: - break; + goto out; default: err = nfs4_handle_exception(server, err, &exception); } } while (exception.retry); +out: return err; } --- linux-3.2.0.orig/fs/nfs/pnfs.c +++ linux-3.2.0/fs/nfs/pnfs.c @@ -575,9 +575,6 @@ struct nfs_server *server = NFS_SERVER(ino); struct nfs4_layoutget *lgp; struct pnfs_layout_segment *lseg = NULL; - struct page **pages = NULL; - int i; - u32 max_resp_sz, max_pages; dprintk("--> %s\n", __func__); @@ -586,20 +583,6 @@ if (lgp == NULL) return NULL; - /* allocate pages for xdr post processing */ - max_resp_sz = server->nfs_client->cl_session->fc_attrs.max_resp_sz; - max_pages = max_resp_sz >> PAGE_SHIFT; - - pages = kzalloc(max_pages * sizeof(struct page *), gfp_flags); - if (!pages) - goto out_err_free; - - for (i = 0; i < max_pages; i++) { - pages[i] = alloc_page(gfp_flags); - if (!pages[i]) - goto out_err_free; - } - lgp->args.minlength = PAGE_CACHE_SIZE; if (lgp->args.minlength > range->length) lgp->args.minlength = range->length; @@ -608,39 +591,19 @@ lgp->args.type = server->pnfs_curr_ld->id; lgp->args.inode = ino; lgp->args.ctx = get_nfs_open_context(ctx); - lgp->args.layout.pages = pages; - lgp->args.layout.pglen = max_pages * PAGE_SIZE; lgp->lsegpp = &lseg; lgp->gfp_flags = gfp_flags; /* Synchronously retrieve layout information from server and * store in lseg. */ - nfs4_proc_layoutget(lgp); + nfs4_proc_layoutget(lgp, gfp_flags); if (!lseg) { /* remember that LAYOUTGET failed and suspend trying */ set_bit(lo_fail_bit(range->iomode), &lo->plh_flags); } - /* free xdr pages */ - for (i = 0; i < max_pages; i++) - __free_page(pages[i]); - kfree(pages); - return lseg; - -out_err_free: - /* free any allocated xdr pages, lgp as it's not used */ - if (pages) { - for (i = 0; i < max_pages; i++) { - if (!pages[i]) - break; - __free_page(pages[i]); - } - kfree(pages); - } - kfree(lgp); - return NULL; } /* Initiates a LAYOUTRETURN(FILE) */ @@ -1178,6 +1141,15 @@ put_lseg(data->lseg); data->lseg = NULL; dprintk("pnfs write error = %d\n", data->pnfs_error); + if (NFS_SERVER(data->inode)->pnfs_curr_ld->flags & + PNFS_LAYOUTRET_ON_ERROR) { + /* Don't lo_commit on error, Server will needs to + * preform a file recovery. + */ + clear_bit(NFS_INO_LAYOUTCOMMIT, + &NFS_I(data->inode)->flags); + pnfs_return_layout(data->inode); + } } data->mds_ops->rpc_release(data); } @@ -1267,6 +1239,9 @@ put_lseg(data->lseg); data->lseg = NULL; dprintk("pnfs write error = %d\n", data->pnfs_error); + if (NFS_SERVER(data->inode)->pnfs_curr_ld->flags & + PNFS_LAYOUTRET_ON_ERROR) + pnfs_return_layout(data->inode); nfs_pageio_init_read_mds(&pgio, data->inode); @@ -1381,11 +1356,27 @@ list_for_each_entry(lseg, &NFS_I(inode)->layout->plh_segs, pls_list) { if (lseg->pls_range.iomode == IOMODE_RW && - test_bit(NFS_LSEG_LAYOUTCOMMIT, &lseg->pls_flags)) + test_and_clear_bit(NFS_LSEG_LAYOUTCOMMIT, &lseg->pls_flags)) list_add(&lseg->pls_lc_list, listp); } } +static void pnfs_list_write_lseg_done(struct inode *inode, struct list_head *listp) +{ + struct pnfs_layout_segment *lseg, *tmp; + unsigned long *bitlock = &NFS_I(inode)->flags; + + /* Matched by references in pnfs_set_layoutcommit */ + list_for_each_entry_safe(lseg, tmp, listp, pls_lc_list) { + list_del_init(&lseg->pls_lc_list); + put_lseg(lseg); + } + + clear_bit_unlock(NFS_INO_LAYOUTCOMMITTING, bitlock); + smp_mb__after_clear_bit(); + wake_up_bit(bitlock, NFS_INO_LAYOUTCOMMITTING); +} + void pnfs_set_lo_fail(struct pnfs_layout_segment *lseg) { if (lseg->pls_range.iomode == IOMODE_RW) { @@ -1434,6 +1425,7 @@ if (nfss->pnfs_curr_ld->cleanup_layoutcommit) nfss->pnfs_curr_ld->cleanup_layoutcommit(data); + pnfs_list_write_lseg_done(data->args.inode, &data->lseg_list); } /* --- linux-3.2.0.orig/fs/nfs/nfs4xdr.c +++ linux-3.2.0/fs/nfs/nfs4xdr.c @@ -2517,11 +2517,12 @@ encode_compound_hdr(xdr, req, &hdr); encode_sequence(xdr, &args->seq_args, &hdr); encode_putfh(xdr, args->fh, &hdr); - replen = hdr.replen + op_decode_hdr_maxsz + nfs4_fattr_bitmap_maxsz + 1; + replen = hdr.replen + op_decode_hdr_maxsz + 1; encode_getattr_two(xdr, FATTR4_WORD0_ACL, 0, &hdr); xdr_inline_pages(&req->rq_rcv_buf, replen << 2, args->acl_pages, args->acl_pgbase, args->acl_len); + encode_nops(&hdr); } @@ -4957,17 +4958,26 @@ } static int decode_getacl(struct xdr_stream *xdr, struct rpc_rqst *req, - size_t *acl_len) + struct nfs_getaclres *res) { - __be32 *savep; + __be32 *savep, *bm_p; uint32_t attrlen, bitmap[3] = {0}; struct kvec *iov = req->rq_rcv_buf.head; int status; + size_t page_len = xdr->buf->page_len; - *acl_len = 0; + res->acl_len = 0; if ((status = decode_op_hdr(xdr, OP_GETATTR)) != 0) goto out; + + bm_p = xdr->p; + res->acl_data_offset = be32_to_cpup(bm_p) + 2; + res->acl_data_offset <<= 2; + /* Check if the acl data starts beyond the allocated buffer */ + if (res->acl_data_offset > page_len) + return -ERANGE; + if ((status = decode_attr_bitmap(xdr, bitmap)) != 0) goto out; if ((status = decode_attr_length(xdr, &attrlen, &savep)) != 0) @@ -4977,20 +4987,28 @@ return -EIO; if (likely(bitmap[0] & FATTR4_WORD0_ACL)) { size_t hdrlen; - u32 recvd; + + /* The bitmap (xdr len + bitmaps) and the attr xdr len words + * are stored with the acl data to handle the problem of + * variable length bitmaps.*/ + xdr->p = bm_p; /* We ignore &savep and don't do consistency checks on * the attr length. Let userspace figure it out.... */ hdrlen = (u8 *)xdr->p - (u8 *)iov->iov_base; - recvd = req->rq_rcv_buf.len - hdrlen; - if (attrlen > recvd) { - dprintk("NFS: server cheating in getattr" - " acl reply: attrlen %u > recvd %u\n", - attrlen, recvd); + attrlen += res->acl_data_offset; + if (attrlen > page_len) { + if (res->acl_flags & NFS4_ACL_LEN_REQUEST) { + /* getxattr interface called with a NULL buf */ + res->acl_len = attrlen; + goto out; + } + dprintk("NFS: acl reply: attrlen %u > page_len %zu\n", + attrlen, page_len); return -EINVAL; } xdr_read_pages(xdr, attrlen); - *acl_len = attrlen; + res->acl_len = attrlen; } else status = -EOPNOTSUPP; @@ -6019,6 +6037,10 @@ struct compound_hdr hdr; int status; + if (res->acl_scratch != NULL) { + void *p = page_address(res->acl_scratch); + xdr_set_scratch_buffer(xdr, p, PAGE_SIZE); + } status = decode_compound_hdr(xdr, &hdr); if (status) goto out; @@ -6028,7 +6050,7 @@ status = decode_putfh(xdr); if (status) goto out; - status = decode_getacl(xdr, rqstp, &res->acl_len); + status = decode_getacl(xdr, rqstp, res); out: return status; @@ -6091,7 +6113,8 @@ status = decode_open(xdr, res); if (status) goto out; - if (decode_getfh(xdr, &res->fh) != 0) + status = decode_getfh(xdr, &res->fh); + if (status) goto out; if (decode_getfattr(xdr, res->f_attr, res->server, !RPC_IS_ASYNC(rqstp->rq_task)) != 0) --- linux-3.2.0.orig/fs/nfs/unlink.c +++ linux-3.2.0/fs/nfs/unlink.c @@ -366,20 +366,14 @@ struct inode *old_dir = data->old_dir; struct inode *new_dir = data->new_dir; struct dentry *old_dentry = data->old_dentry; - struct dentry *new_dentry = data->new_dentry; if (!NFS_PROTO(old_dir)->rename_done(task, old_dir, new_dir)) { rpc_restart_call_prepare(task); return; } - if (task->tk_status != 0) { + if (task->tk_status != 0) nfs_cancel_async_unlink(old_dentry); - return; - } - - d_drop(old_dentry); - d_drop(new_dentry); } /** @@ -589,6 +583,18 @@ error = rpc_wait_for_completion_task(task); if (error == 0) error = task->tk_status; + switch (error) { + case 0: + /* The rename succeeded */ + nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); + d_move(dentry, sdentry); + break; + case -ERESTARTSYS: + /* The result of the rename is unknown. Play it safe by + * forcing a new lookup */ + d_drop(dentry); + d_drop(sdentry); + } rpc_put_task(task); out_dput: dput(sdentry); --- linux-3.2.0.orig/fs/nfs/inode.c +++ linux-3.2.0/fs/nfs/inode.c @@ -150,7 +150,7 @@ nfsi->attrtimeo = NFS_MINATTRTIMEO(inode); nfsi->attrtimeo_timestamp = jiffies; - memset(NFS_COOKIEVERF(inode), 0, sizeof(NFS_COOKIEVERF(inode))); + memset(NFS_I(inode)->cookieverf, 0, sizeof(NFS_I(inode)->cookieverf)); if (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode)) nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL|NFS_INO_REVAL_PAGECACHE; else --- linux-3.2.0.orig/fs/nfs/dir.c +++ linux-3.2.0/fs/nfs/dir.c @@ -1103,7 +1103,7 @@ struct nfs_fattr *fattr = NULL; int error; - if (nd->flags & LOOKUP_RCU) + if (nd && (nd->flags & LOOKUP_RCU)) return -ECHILD; parent = dget_parent(dentry); @@ -1508,7 +1508,7 @@ struct nfs_open_context *ctx; int openflags, ret = 0; - if (nd->flags & LOOKUP_RCU) + if (nd && (nd->flags & LOOKUP_RCU)) return -ECHILD; inode = dentry->d_inode; --- linux-3.2.0.orig/fs/nfs/file.c +++ linux-3.2.0/fs/nfs/file.c @@ -272,13 +272,13 @@ datasync); ret = filemap_write_and_wait_range(inode->i_mapping, start, end); - if (ret) - return ret; mutex_lock(&inode->i_mutex); nfs_inc_stats(inode, NFSIOS_VFSFSYNC); have_error = test_and_clear_bit(NFS_CONTEXT_ERROR_WRITE, &ctx->flags); status = nfs_commit_inode(inode, FLUSH_SYNC); + if (status >= 0 && ret < 0) + status = ret; have_error |= test_bit(NFS_CONTEXT_ERROR_WRITE, &ctx->flags); if (have_error) ret = xchg(&ctx->error, 0); @@ -452,8 +452,11 @@ dfprintk(PAGECACHE, "NFS: release_page(%p)\n", page); - /* Only do I/O if gfp is a superset of GFP_KERNEL */ - if (mapping && (gfp & GFP_KERNEL) == GFP_KERNEL) { + /* Only do I/O if gfp is a superset of GFP_KERNEL, and we're not + * doing this memory reclaim for a fs-related allocation. + */ + if (mapping && (gfp & GFP_KERNEL) == GFP_KERNEL && + !(current->flags & PF_FSTRANS)) { int how = FLUSH_SYNC; /* Don't let kswapd deadlock waiting for OOM RPC calls */ --- linux-3.2.0.orig/fs/nfs/write.c +++ linux-3.2.0/fs/nfs/write.c @@ -974,7 +974,7 @@ while (!list_empty(res)) { data = list_entry(res->next, struct nfs_write_data, list); list_del(&data->list); - nfs_writedata_free(data); + nfs_writedata_release(data); } nfs_redirty_request(req); return -ENOMEM; @@ -1711,7 +1711,7 @@ #ifdef CONFIG_MIGRATION int nfs_migrate_page(struct address_space *mapping, struct page *newpage, - struct page *page) + struct page *page, enum migrate_mode mode) { /* * If PagePrivate is set, then the page is currently associated with @@ -1726,7 +1726,7 @@ nfs_fscache_release_page(page, GFP_KERNEL); - return migrate_page(mapping, newpage, page); + return migrate_page(mapping, newpage, page, mode); } #endif @@ -1742,12 +1742,12 @@ nfs_wdata_mempool = mempool_create_slab_pool(MIN_POOL_WRITE, nfs_wdata_cachep); if (nfs_wdata_mempool == NULL) - return -ENOMEM; + goto out_destroy_write_cache; nfs_commit_mempool = mempool_create_slab_pool(MIN_POOL_COMMIT, nfs_wdata_cachep); if (nfs_commit_mempool == NULL) - return -ENOMEM; + goto out_destroy_write_mempool; /* * NFS congestion size, scale with available memory. @@ -1770,6 +1770,12 @@ nfs_congestion_kb = 256*1024; return 0; + +out_destroy_write_mempool: + mempool_destroy(nfs_wdata_mempool); +out_destroy_write_cache: + kmem_cache_destroy(nfs_wdata_cachep); + return -ENOMEM; } void nfs_destroy_writepagecache(void) --- linux-3.2.0.orig/fs/nfs/client.c +++ linux-3.2.0/fs/nfs/client.c @@ -672,8 +672,7 @@ */ static void nfs_destroy_server(struct nfs_server *server) { - if (!(server->flags & NFS_MOUNT_LOCAL_FLOCK) || - !(server->flags & NFS_MOUNT_LOCAL_FCNTL)) + if (server->nlm_host) nlmclnt_done(server->nlm_host); } --- linux-3.2.0.orig/fs/nfs/delegation.h +++ linux-3.2.0/fs/nfs/delegation.h @@ -45,6 +45,7 @@ void nfs_handle_cb_pathdown(struct nfs_client *clp); int nfs_client_return_marked_delegations(struct nfs_client *clp); int nfs_delegations_present(struct nfs_client *clp); +void nfs_remove_bad_delegation(struct inode *inode); void nfs_delegation_mark_reclaim(struct nfs_client *clp); void nfs_delegation_reap_unclaimed(struct nfs_client *clp); --- linux-3.2.0.orig/fs/nfs/delegation.c +++ linux-3.2.0/fs/nfs/delegation.c @@ -466,6 +466,17 @@ nfs4_schedule_state_manager(clp); } +void nfs_remove_bad_delegation(struct inode *inode) +{ + struct nfs_delegation *delegation; + + delegation = nfs_detach_delegation(NFS_I(inode), NFS_SERVER(inode)); + if (delegation) { + nfs_inode_find_state_and_recover(inode, &delegation->stateid); + nfs_free_delegation(delegation); + } +} + /** * nfs_expire_all_delegation_types * @clp: client to process --- linux-3.2.0.orig/fs/nfs/nfs4state.c +++ linux-3.2.0/fs/nfs/nfs4state.c @@ -935,7 +935,7 @@ case -NFS4ERR_BAD_SEQID: if (seqid->sequence->flags & NFS_SEQID_CONFIRMED) return; - printk(KERN_WARNING "NFS: v4 server returned a bad" + pr_warn_ratelimited("NFS: v4 server returned a bad" " sequence-id error on an" " unconfirmed sequence %p!\n", seqid->sequence); @@ -1075,6 +1075,33 @@ nfs4_schedule_state_manager(clp); } +void nfs_inode_find_state_and_recover(struct inode *inode, + const nfs4_stateid *stateid) +{ + struct nfs_client *clp = NFS_SERVER(inode)->nfs_client; + struct nfs_inode *nfsi = NFS_I(inode); + struct nfs_open_context *ctx; + struct nfs4_state *state; + bool found = false; + + spin_lock(&inode->i_lock); + list_for_each_entry(ctx, &nfsi->open_files, list) { + state = ctx->state; + if (state == NULL) + continue; + if (!test_bit(NFS_DELEGATED_STATE, &state->flags)) + continue; + if (memcmp(state->stateid.data, stateid->data, sizeof(state->stateid.data)) != 0) + continue; + nfs4_state_mark_reclaim_nograce(clp, state); + found = true; + } + spin_unlock(&inode->i_lock); + if (found) + nfs4_schedule_state_manager(clp); +} + + static int nfs4_reclaim_locks(struct nfs4_state *state, const struct nfs4_state_recovery_ops *ops) { struct inode *inode = state->inode; @@ -1159,8 +1186,9 @@ spin_lock(&state->state_lock); list_for_each_entry(lock, &state->lock_states, ls_locks) { if (!(lock->ls_flags & NFS_LOCK_INITIALIZED)) - printk("%s: Lock reclaim failed!\n", - __func__); + pr_warn_ratelimited("NFS: " + "%s: Lock reclaim " + "failed!\n", __func__); } spin_unlock(&state->state_lock); nfs4_put_open_state(state); @@ -1555,8 +1583,18 @@ nfs4_begin_drain_session(clp); status = nfs4_proc_destroy_session(clp->cl_session); - if (status && status != -NFS4ERR_BADSESSION && - status != -NFS4ERR_DEADSESSION) { + switch (status) { + case 0: + case -NFS4ERR_BADSESSION: + case -NFS4ERR_DEADSESSION: + break; + case -NFS4ERR_BACK_CHAN_BUSY: + case -NFS4ERR_DELAY: + set_bit(NFS4CLNT_SESSION_RESET, &clp->cl_state); + status = 0; + ssleep(1); + goto out; + default: status = nfs4_recovery_handle_error(clp, status); goto out; } @@ -1737,7 +1775,7 @@ } while (atomic_read(&clp->cl_count) > 1); return; out_error: - printk(KERN_WARNING "Error: state manager failed on NFSv4 server %s" + pr_warn_ratelimited("NFS: state manager failed on NFSv4 server %s" " with error %d\n", clp->cl_hostname, -status); nfs4_end_drain_session(clp); nfs4_clear_state_manager_bit(clp); --- linux-3.2.0.orig/fs/nfs/nfs4_fs.h +++ linux-3.2.0/fs/nfs/nfs4_fs.h @@ -191,6 +191,7 @@ long timeout; int retry; struct nfs4_state *state; + struct inode *inode; }; struct nfs4_state_recovery_ops { @@ -324,6 +325,8 @@ extern void nfs4_close_state(struct nfs4_state *, fmode_t); extern void nfs4_close_sync(struct nfs4_state *, fmode_t); extern void nfs4_state_set_mode_locked(struct nfs4_state *, fmode_t); +extern void nfs_inode_find_state_and_recover(struct inode *inode, + const nfs4_stateid *stateid); extern void nfs4_schedule_lease_recovery(struct nfs_client *); extern void nfs4_schedule_state_manager(struct nfs_client *); extern void nfs4_schedule_path_down_recovery(struct nfs_client *clp); --- linux-3.2.0.orig/fs/nfs/nfs4filelayoutdev.c +++ linux-3.2.0/fs/nfs/nfs4filelayoutdev.c @@ -721,7 +721,7 @@ * GETDEVICEINFO's maxcount */ max_resp_sz = server->nfs_client->cl_session->fc_attrs.max_resp_sz; - max_pages = max_resp_sz >> PAGE_SHIFT; + max_pages = nfs_page_array_len(0, max_resp_sz); dprintk("%s inode %p max_resp_sz %u max_pages %d\n", __func__, inode, max_resp_sz, max_pages); --- linux-3.2.0.orig/fs/nfs/callback_proc.c +++ linux-3.2.0/fs/nfs/callback_proc.c @@ -339,7 +339,7 @@ dprintk("%s enter. slotid %d seqid %d\n", __func__, args->csa_slotid, args->csa_sequenceid); - if (args->csa_slotid > NFS41_BC_MAX_CALLBACKS) + if (args->csa_slotid >= NFS41_BC_MAX_CALLBACKS) return htonl(NFS4ERR_BADSLOT); slot = tbl->slots + args->csa_slotid; --- linux-3.2.0.orig/fs/nfs/idmap.c +++ linux-3.2.0/fs/nfs/idmap.c @@ -318,12 +318,12 @@ unsigned long ih_expires; __u32 ih_id; size_t ih_namelen; - char ih_name[IDMAP_NAMESZ]; + const char *ih_name; }; struct idmap_hashtable { __u8 h_type; - struct idmap_hashent h_entries[IDMAP_HASH_SZ]; + struct idmap_hashent *h_entries; }; struct idmap { @@ -378,6 +378,28 @@ return 0; } +static void +idmap_alloc_hashtable(struct idmap_hashtable *h) +{ + if (h->h_entries != NULL) + return; + h->h_entries = kcalloc(IDMAP_HASH_SZ, + sizeof(*h->h_entries), + GFP_KERNEL); +} + +static void +idmap_free_hashtable(struct idmap_hashtable *h) +{ + int i; + + if (h->h_entries == NULL) + return; + for (i = 0; i < IDMAP_HASH_SZ; i++) + kfree(h->h_entries[i].ih_name); + kfree(h->h_entries); +} + void nfs_idmap_delete(struct nfs_client *clp) { @@ -387,6 +409,8 @@ return; rpc_unlink(idmap->idmap_dentry); clp->cl_idmap = NULL; + idmap_free_hashtable(&idmap->idmap_user_hash); + idmap_free_hashtable(&idmap->idmap_group_hash); kfree(idmap); } @@ -396,6 +420,8 @@ static inline struct idmap_hashent * idmap_name_hash(struct idmap_hashtable* h, const char *name, size_t len) { + if (h->h_entries == NULL) + return NULL; return &h->h_entries[fnvhash32(name, len) % IDMAP_HASH_SZ]; } @@ -404,6 +430,8 @@ { struct idmap_hashent *he = idmap_name_hash(h, name, len); + if (he == NULL) + return NULL; if (he->ih_namelen != len || memcmp(he->ih_name, name, len) != 0) return NULL; if (time_after(jiffies, he->ih_expires)) @@ -414,6 +442,8 @@ static inline struct idmap_hashent * idmap_id_hash(struct idmap_hashtable* h, __u32 id) { + if (h->h_entries == NULL) + return NULL; return &h->h_entries[fnvhash32(&id, sizeof(id)) % IDMAP_HASH_SZ]; } @@ -421,6 +451,9 @@ idmap_lookup_id(struct idmap_hashtable *h, __u32 id) { struct idmap_hashent *he = idmap_id_hash(h, id); + + if (he == NULL) + return NULL; if (he->ih_id != id || he->ih_namelen == 0) return NULL; if (time_after(jiffies, he->ih_expires)) @@ -436,12 +469,14 @@ static inline struct idmap_hashent * idmap_alloc_name(struct idmap_hashtable *h, char *name, size_t len) { + idmap_alloc_hashtable(h); return idmap_name_hash(h, name, len); } static inline struct idmap_hashent * idmap_alloc_id(struct idmap_hashtable *h, __u32 id) { + idmap_alloc_hashtable(h); return idmap_id_hash(h, id); } @@ -449,9 +484,14 @@ idmap_update_entry(struct idmap_hashent *he, const char *name, size_t namelen, __u32 id) { + char *str = kmalloc(namelen + 1, GFP_KERNEL); + if (str == NULL) + return; + kfree(he->ih_name); he->ih_id = id; - memcpy(he->ih_name, name, namelen); - he->ih_name[namelen] = '\0'; + memcpy(str, name, namelen); + str[namelen] = '\0'; + he->ih_name = str; he->ih_namelen = namelen; he->ih_expires = jiffies + nfs_idmap_cache_timeout; } --- linux-3.2.0.orig/fs/nfs/callback_xdr.c +++ linux-3.2.0/fs/nfs/callback_xdr.c @@ -9,6 +9,8 @@ #include #include #include +#include +#include #include #include #include "nfs4_fs.h" @@ -167,7 +169,7 @@ if (hdr->minorversion <= 1) { hdr->cb_ident = ntohl(*p++); /* ignored by v4.1 */ } else { - printk(KERN_WARNING "%s: NFSv4 server callback with " + pr_warn_ratelimited("NFS: %s: NFSv4 server callback with " "illegal minor version %u!\n", __func__, hdr->minorversion); return htonl(NFS4ERR_MINOR_VERS_MISMATCH); --- linux-3.2.0.orig/fs/nfs/internal.h +++ linux-3.2.0/fs/nfs/internal.h @@ -274,8 +274,9 @@ extern void nfs_sb_deactive(struct super_block *sb); /* namespace.c */ +#define NFS_PATH_CANONICAL 1 extern char *nfs_path(char **p, struct dentry *dentry, - char *buffer, ssize_t buflen); + char *buffer, ssize_t buflen, unsigned flags); extern struct vfsmount *nfs_d_automount(struct path *path); #ifdef CONFIG_NFS_V4 rpc_authflavor_t nfs_find_best_sec(struct nfs4_secinfo_flavors *); @@ -330,7 +331,7 @@ #ifdef CONFIG_MIGRATION extern int nfs_migrate_page(struct address_space *, - struct page *, struct page *); + struct page *, struct page *, enum migrate_mode); #else #define nfs_migrate_page NULL #endif @@ -364,7 +365,7 @@ char *buffer, ssize_t buflen) { char *dummy; - return nfs_path(&dummy, dentry, buffer, buflen); + return nfs_path(&dummy, dentry, buffer, buflen, NFS_PATH_CANONICAL); } /* --- linux-3.2.0.orig/fs/nfs/blocklayout/blocklayoutdm.c +++ linux-3.2.0/fs/nfs/blocklayout/blocklayoutdm.c @@ -52,7 +52,8 @@ dprintk("Entering %s\n", __func__); memset(&msg, 0, sizeof(msg)); - msg.data = kzalloc(1 + sizeof(bl_umount_request), GFP_NOFS); + msg.len = sizeof(bl_msg) + bl_msg.totallen; + msg.data = kzalloc(msg.len, GFP_NOFS); if (!msg.data) goto out; @@ -63,7 +64,6 @@ memcpy(msg.data, &bl_msg, sizeof(bl_msg)); dataptr = (uint8_t *) msg.data; memcpy(&dataptr[sizeof(bl_msg)], &bl_umount_request, sizeof(bl_umount_request)); - msg.len = sizeof(bl_msg) + bl_msg.totallen; add_wait_queue(&bl_wq, &wq); if (rpc_queue_upcall(bl_device_pipe->d_inode, &msg) < 0) { --- linux-3.2.0.orig/fs/nfs/blocklayout/blocklayout.c +++ linux-3.2.0/fs/nfs/blocklayout/blocklayout.c @@ -38,6 +38,8 @@ #include /* various write calls */ #include +#include "../pnfs.h" +#include "../internal.h" #include "blocklayout.h" #define NFSDBG_FACILITY NFSDBG_PNFS_LD @@ -146,36 +148,55 @@ { struct bio *bio; + npg = min(npg, BIO_MAX_PAGES); bio = bio_alloc(GFP_NOIO, npg); - if (!bio) - return NULL; + if (!bio && (current->flags & PF_MEMALLOC)) { + while (!bio && (npg /= 2)) + bio = bio_alloc(GFP_NOIO, npg); + } - bio->bi_sector = isect - be->be_f_offset + be->be_v_offset; - bio->bi_bdev = be->be_mdev; - bio->bi_end_io = end_io; - bio->bi_private = par; + if (bio) { + bio->bi_sector = isect - be->be_f_offset + be->be_v_offset; + bio->bi_bdev = be->be_mdev; + bio->bi_end_io = end_io; + bio->bi_private = par; + } return bio; } -static struct bio *bl_add_page_to_bio(struct bio *bio, int npg, int rw, +static struct bio *do_add_page_to_bio(struct bio *bio, int npg, int rw, sector_t isect, struct page *page, struct pnfs_block_extent *be, void (*end_io)(struct bio *, int err), - struct parallel_io *par) + struct parallel_io *par, + unsigned int offset, int len) { + isect = isect + (offset >> SECTOR_SHIFT); + dprintk("%s: npg %d rw %d isect %llu offset %u len %d\n", __func__, + npg, rw, (unsigned long long)isect, offset, len); retry: if (!bio) { bio = bl_alloc_init_bio(npg, isect, be, end_io, par); if (!bio) return ERR_PTR(-ENOMEM); } - if (bio_add_page(bio, page, PAGE_CACHE_SIZE, 0) < PAGE_CACHE_SIZE) { + if (bio_add_page(bio, page, len, offset) < len) { bio = bl_submit_bio(rw, bio); goto retry; } return bio; } +static struct bio *bl_add_page_to_bio(struct bio *bio, int npg, int rw, + sector_t isect, struct page *page, + struct pnfs_block_extent *be, + void (*end_io)(struct bio *, int err), + struct parallel_io *par) +{ + return do_add_page_to_bio(bio, npg, rw, isect, page, be, + end_io, par, 0, PAGE_CACHE_SIZE); +} + /* This is basically copied from mpage_end_io_read */ static void bl_end_io_read(struct bio *bio, int err) { @@ -439,6 +460,106 @@ return; } +static void +bl_read_single_end_io(struct bio *bio, int error) +{ + struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1; + struct page *page = bvec->bv_page; + + /* Only one page in bvec */ + unlock_page(page); +} + +static int +bl_do_readpage_sync(struct page *page, struct pnfs_block_extent *be, + unsigned int offset, unsigned int len) +{ + struct bio *bio; + struct page *shadow_page; + sector_t isect; + char *kaddr, *kshadow_addr; + int ret = 0; + + dprintk("%s: offset %u len %u\n", __func__, offset, len); + + shadow_page = alloc_page(GFP_NOFS | __GFP_HIGHMEM); + if (shadow_page == NULL) + return -ENOMEM; + + bio = bio_alloc(GFP_NOIO, 1); + if (bio == NULL) + return -ENOMEM; + + isect = (page->index << PAGE_CACHE_SECTOR_SHIFT) + + (offset / SECTOR_SIZE); + + bio->bi_sector = isect - be->be_f_offset + be->be_v_offset; + bio->bi_bdev = be->be_mdev; + bio->bi_end_io = bl_read_single_end_io; + + lock_page(shadow_page); + if (bio_add_page(bio, shadow_page, + SECTOR_SIZE, round_down(offset, SECTOR_SIZE)) == 0) { + unlock_page(shadow_page); + bio_put(bio); + return -EIO; + } + + submit_bio(READ, bio); + wait_on_page_locked(shadow_page); + if (unlikely(!test_bit(BIO_UPTODATE, &bio->bi_flags))) { + ret = -EIO; + } else { + kaddr = kmap_atomic(page); + kshadow_addr = kmap_atomic(shadow_page); + memcpy(kaddr + offset, kshadow_addr + offset, len); + kunmap_atomic(kshadow_addr); + kunmap_atomic(kaddr); + } + __free_page(shadow_page); + bio_put(bio); + + return ret; +} + +static int +bl_read_partial_page_sync(struct page *page, struct pnfs_block_extent *be, + unsigned int dirty_offset, unsigned int dirty_len, + bool full_page) +{ + int ret = 0; + unsigned int start, end; + + if (full_page) { + start = 0; + end = PAGE_CACHE_SIZE; + } else { + start = round_down(dirty_offset, SECTOR_SIZE); + end = round_up(dirty_offset + dirty_len, SECTOR_SIZE); + } + + dprintk("%s: offset %u len %d\n", __func__, dirty_offset, dirty_len); + if (!be) { + zero_user_segments(page, start, dirty_offset, + dirty_offset + dirty_len, end); + if (start == 0 && end == PAGE_CACHE_SIZE && + trylock_page(page)) { + SetPageUptodate(page); + unlock_page(page); + } + return ret; + } + + if (start != dirty_offset) + ret = bl_do_readpage_sync(page, be, start, dirty_offset - start); + + if (!ret && (dirty_offset + dirty_len < end)) + ret = bl_do_readpage_sync(page, be, dirty_offset + dirty_len, + end - dirty_offset - dirty_len); + + return ret; +} + /* Given an unmapped page, zero it or read in page for COW, page is locked * by caller. */ @@ -472,7 +593,6 @@ SetPageUptodate(page); cleanup: - bl_put_extent(cow_read); if (bh) free_buffer_head(bh); if (ret) { @@ -494,6 +614,7 @@ struct parallel_io *par; loff_t offset = wdata->args.offset; size_t count = wdata->args.count; + unsigned int pg_offset, pg_len, saved_len; struct page **pages = wdata->args.pages; struct page *page; pgoff_t index; @@ -608,10 +729,11 @@ if (!extent_length) { /* We've used up the previous extent */ bl_put_extent(be); + bl_put_extent(cow_read); bio = bl_submit_bio(WRITE, bio); /* Get the next one */ be = bl_find_get_extent(BLK_LSEG2EXT(wdata->lseg), - isect, NULL); + isect, &cow_read); if (!be || !is_writable(be, isect)) { wdata->pnfs_error = -EINVAL; goto out; @@ -619,7 +741,26 @@ extent_length = be->be_length - (isect - be->be_f_offset); } - if (be->be_state == PNFS_BLOCK_INVALID_DATA) { + + dprintk("%s offset %lld count %Zu\n", __func__, offset, count); + pg_offset = offset & ~PAGE_CACHE_MASK; + if (pg_offset + count > PAGE_CACHE_SIZE) + pg_len = PAGE_CACHE_SIZE - pg_offset; + else + pg_len = count; + + saved_len = pg_len; + if (be->be_state == PNFS_BLOCK_INVALID_DATA && + !bl_is_sector_init(be->be_inval, isect)) { + ret = bl_read_partial_page_sync(pages[i], cow_read, + pg_offset, pg_len, true); + if (ret) { + dprintk("%s bl_read_partial_page_sync fail %d\n", + __func__, ret); + wdata->pnfs_error = ret; + goto out; + } + ret = bl_mark_sectors_init(be->be_inval, isect, PAGE_CACHE_SECTORS, NULL); @@ -629,15 +770,35 @@ wdata->pnfs_error = ret; goto out; } + + /* Expand to full page write */ + pg_offset = 0; + pg_len = PAGE_CACHE_SIZE; + } else if ((pg_offset & (SECTOR_SIZE - 1)) || + (pg_len & (SECTOR_SIZE - 1))){ + /* ahh, nasty case. We have to do sync full sector + * read-modify-write cycles. + */ + unsigned int saved_offset = pg_offset; + ret = bl_read_partial_page_sync(pages[i], be, pg_offset, + pg_len, false); + pg_offset = round_down(pg_offset, SECTOR_SIZE); + pg_len = round_up(saved_offset + pg_len, SECTOR_SIZE) + - pg_offset; } - bio = bl_add_page_to_bio(bio, wdata->npages - i, WRITE, + + + bio = do_add_page_to_bio(bio, wdata->npages - i, WRITE, isect, pages[i], be, - bl_end_io_write, par); + bl_end_io_write, par, + pg_offset, pg_len); if (IS_ERR(bio)) { wdata->pnfs_error = PTR_ERR(bio); bio = NULL; goto out; } + offset += saved_len; + count -= saved_len; isect += PAGE_CACHE_SECTORS; last_isect = isect; extent_length -= PAGE_CACHE_SECTORS; @@ -655,12 +816,10 @@ } write_done: - wdata->res.count = (last_isect << SECTOR_SHIFT) - (offset); - if (count < wdata->res.count) { - wdata->res.count = count; - } + wdata->res.count = wdata->args.count; out: bl_put_extent(be); + bl_put_extent(cow_read); bl_submit_bio(WRITE, bio); put_parallel(par); return PNFS_ATTEMPTED; @@ -779,16 +938,13 @@ static void free_blk_mountid(struct block_mount_id *mid) { if (mid) { - struct pnfs_block_dev *dev; - spin_lock(&mid->bm_lock); - while (!list_empty(&mid->bm_devlist)) { - dev = list_first_entry(&mid->bm_devlist, - struct pnfs_block_dev, - bm_node); + struct pnfs_block_dev *dev, *tmp; + + /* No need to take bm_lock as we are last user freeing bm_devlist */ + list_for_each_entry_safe(dev, tmp, &mid->bm_devlist, bm_node) { list_del(&dev->bm_node); bl_free_block_dev(dev); } - spin_unlock(&mid->bm_lock); kfree(mid); } } @@ -812,7 +968,7 @@ * GETDEVICEINFO's maxcount */ max_resp_sz = server->nfs_client->cl_session->fc_attrs.max_resp_sz; - max_pages = max_resp_sz >> PAGE_SHIFT; + max_pages = nfs_page_array_len(0, max_resp_sz); dprintk("%s max_resp_sz %u max_pages %d\n", __func__, max_resp_sz, max_pages); @@ -945,6 +1101,7 @@ static struct pnfs_layoutdriver_type blocklayout_type = { .id = LAYOUT_BLOCK_VOLUME, .name = "LAYOUT_BLOCK_VOLUME", + .owner = THIS_MODULE, .read_pagelist = bl_read_pagelist, .write_pagelist = bl_write_pagelist, .alloc_layout_hdr = bl_alloc_layout_hdr, --- linux-3.2.0.orig/fs/nfs/blocklayout/extents.c +++ linux-3.2.0/fs/nfs/blocklayout/extents.c @@ -139,11 +139,13 @@ } /* Ensure that future operations on given range of tree will not malloc */ -static int _preload_range(struct my_tree *tree, u64 offset, u64 length) +static int _preload_range(struct pnfs_inval_markings *marks, + u64 offset, u64 length) { u64 start, end, s; int count, i, used = 0, status = -ENOMEM; struct pnfs_inval_tracking **storage; + struct my_tree *tree = &marks->im_tree; dprintk("%s(%llu, %llu) enter\n", __func__, offset, length); start = normalize(offset, tree->mtt_step_size); @@ -151,7 +153,7 @@ count = (int)(end - start) / (int)tree->mtt_step_size; /* Pre-malloc what memory we might need */ - storage = kmalloc(sizeof(*storage) * count, GFP_NOFS); + storage = kcalloc(count, sizeof(*storage), GFP_NOFS); if (!storage) return -ENOMEM; for (i = 0; i < count; i++) { @@ -161,12 +163,11 @@ goto out_cleanup; } - /* Now need lock - HOW??? */ - + spin_lock(&marks->im_lock); for (s = start; s < end; s += tree->mtt_step_size) used += _add_entry(tree, s, INTERNAL_EXISTS, storage[used]); + spin_unlock(&marks->im_lock); - /* Unlock - HOW??? */ status = 0; out_cleanup: @@ -286,7 +287,7 @@ start = normalize(offset, marks->im_block_size); end = normalize_up(offset + length, marks->im_block_size); - if (_preload_range(&marks->im_tree, start, end - start)) + if (_preload_range(marks, start, end - start)) goto outerr; spin_lock(&marks->im_lock); --- linux-3.2.0.orig/fs/nfs/blocklayout/blocklayout.h +++ linux-3.2.0/fs/nfs/blocklayout/blocklayout.h @@ -40,6 +40,7 @@ #define PAGE_CACHE_SECTORS (PAGE_CACHE_SIZE >> SECTOR_SHIFT) #define PAGE_CACHE_SECTOR_SHIFT (PAGE_CACHE_SHIFT - SECTOR_SHIFT) +#define SECTOR_SIZE (1 << SECTOR_SHIFT) struct block_mount_id { spinlock_t bm_lock; /* protects list */ --- linux-3.2.0.orig/fs/nfs/objlayout/objio_osd.c +++ linux-3.2.0/fs/nfs/objlayout/objio_osd.c @@ -433,7 +433,10 @@ objios->ios->done = _read_done; dprintk("%s: offset=0x%llx length=0x%x\n", __func__, rdata->args.offset, rdata->args.count); - return ore_read(objios->ios); + ret = ore_read(objios->ios); + if (unlikely(ret)) + objio_free_result(&objios->oir); + return ret; } /* @@ -464,8 +467,16 @@ struct objio_state *objios = priv; struct nfs_write_data *wdata = objios->oir.rpcdata; pgoff_t index = offset / PAGE_SIZE; - struct page *page = find_get_page(wdata->inode->i_mapping, index); + struct page *page; + loff_t i_size = i_size_read(wdata->inode); + + if (offset >= i_size) { + *uptodate = true; + dprintk("%s: g_zero_page index=0x%lx\n", __func__, index); + return ZERO_PAGE(0); + } + page = find_get_page(wdata->inode->i_mapping, index); if (!page) { page = find_or_create_page(wdata->inode->i_mapping, index, GFP_NOFS); @@ -486,8 +497,10 @@ static void __r4w_put_page(void *priv, struct page *page) { - dprintk("%s: index=0x%lx\n", __func__, page->index); - page_cache_release(page); + dprintk("%s: index=0x%lx\n", __func__, + (page == ZERO_PAGE(0)) ? -1UL : page->index); + if (ZERO_PAGE(0) != page) + page_cache_release(page); return; } @@ -517,8 +530,10 @@ dprintk("%s: offset=0x%llx length=0x%x\n", __func__, wdata->args.offset, wdata->args.count); ret = ore_write(objios->ios); - if (unlikely(ret)) + if (unlikely(ret)) { + objio_free_result(&objios->oir); return ret; + } if (objios->sync) _write_done(objios->ios, objios); @@ -551,8 +566,10 @@ static struct pnfs_layoutdriver_type objlayout_type = { .id = LAYOUT_OSD2_OBJECTS, .name = "LAYOUT_OSD2_OBJECTS", - .flags = PNFS_LAYOUTRET_ON_SETATTR, + .flags = PNFS_LAYOUTRET_ON_SETATTR | + PNFS_LAYOUTRET_ON_ERROR, + .owner = THIS_MODULE, .alloc_layout_hdr = objlayout_alloc_layout_hdr, .free_layout_hdr = objlayout_free_layout_hdr, --- linux-3.2.0.orig/fs/nfs/objlayout/objlayout.c +++ linux-3.2.0/fs/nfs/objlayout/objlayout.c @@ -254,6 +254,8 @@ oir->status = rdata->task.tk_status = status; if (status >= 0) rdata->res.count = status; + else + rdata->pnfs_error = status; objlayout_iodone(oir); /* must not use oir after this point */ @@ -334,6 +336,8 @@ if (status >= 0) { wdata->res.count = status; wdata->verf.committed = oir->committed; + } else { + wdata->pnfs_error = status; } objlayout_iodone(oir); /* must not use oir after this point */ --- linux-3.2.0.orig/fs/jffs2/gc.c +++ linux-3.2.0/fs/jffs2/gc.c @@ -225,8 +225,8 @@ return 0; D1(printk(KERN_DEBUG "No progress from erasing blocks; doing GC anyway\n")); - spin_lock(&c->erase_completion_lock); mutex_lock(&c->alloc_sem); + spin_lock(&c->erase_completion_lock); } /* First, work out which block we're garbage-collecting */ --- linux-3.2.0.orig/fs/jffs2/file.c +++ linux-3.2.0/fs/jffs2/file.c @@ -135,33 +135,39 @@ struct page *pg; struct inode *inode = mapping->host; struct jffs2_inode_info *f = JFFS2_INODE_INFO(inode); + struct jffs2_sb_info *c = JFFS2_SB_INFO(inode->i_sb); + struct jffs2_raw_inode ri; + uint32_t alloc_len = 0; pgoff_t index = pos >> PAGE_CACHE_SHIFT; uint32_t pageofs = index << PAGE_CACHE_SHIFT; int ret = 0; + D1(printk(KERN_DEBUG "%s()\n", __func__)); + + if (pageofs > inode->i_size) { + ret = jffs2_reserve_space(c, sizeof(ri), &alloc_len, + ALLOC_NORMAL, JFFS2_SUMMARY_INODE_SIZE); + if (ret) + return ret; + } + + mutex_lock(&f->sem); pg = grab_cache_page_write_begin(mapping, index, flags); - if (!pg) + if (!pg) { + if (alloc_len) + jffs2_complete_reservation(c); + mutex_unlock(&f->sem); return -ENOMEM; + } *pagep = pg; - D1(printk(KERN_DEBUG "jffs2_write_begin()\n")); - - if (pageofs > inode->i_size) { + if (alloc_len) { /* Make new hole frag from old EOF to new page */ - struct jffs2_sb_info *c = JFFS2_SB_INFO(inode->i_sb); - struct jffs2_raw_inode ri; struct jffs2_full_dnode *fn; - uint32_t alloc_len; D1(printk(KERN_DEBUG "Writing new hole frag 0x%x-0x%x between current EOF and new page\n", (unsigned int)inode->i_size, pageofs)); - ret = jffs2_reserve_space(c, sizeof(ri), &alloc_len, - ALLOC_NORMAL, JFFS2_SUMMARY_INODE_SIZE); - if (ret) - goto out_page; - - mutex_lock(&f->sem); memset(&ri, 0, sizeof(ri)); ri.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); @@ -188,7 +194,6 @@ if (IS_ERR(fn)) { ret = PTR_ERR(fn); jffs2_complete_reservation(c); - mutex_unlock(&f->sem); goto out_page; } ret = jffs2_add_full_dnode_to_inode(c, f, fn); @@ -202,12 +207,10 @@ jffs2_mark_node_obsolete(c, fn->raw); jffs2_free_full_dnode(fn); jffs2_complete_reservation(c); - mutex_unlock(&f->sem); goto out_page; } jffs2_complete_reservation(c); inode->i_size = pageofs; - mutex_unlock(&f->sem); } /* @@ -216,18 +219,18 @@ * case of a short-copy. */ if (!PageUptodate(pg)) { - mutex_lock(&f->sem); ret = jffs2_do_readpage_nolock(inode, pg); - mutex_unlock(&f->sem); if (ret) goto out_page; } + mutex_unlock(&f->sem); D1(printk(KERN_DEBUG "end write_begin(). pg->flags %lx\n", pg->flags)); return ret; out_page: unlock_page(pg); page_cache_release(pg); + mutex_unlock(&f->sem); return ret; } --- linux-3.2.0.orig/fs/jffs2/wbuf.c +++ linux-3.2.0/fs/jffs2/wbuf.c @@ -1032,11 +1032,11 @@ ops.datbuf = NULL; ret = c->mtd->read_oob(c->mtd, jeb->offset, &ops); - if (ret || ops.oobretlen != ops.ooblen) { + if ((ret && !mtd_is_bitflip(ret)) || ops.oobretlen != ops.ooblen) { printk(KERN_ERR "cannot read OOB for EB at %08x, requested %zd" " bytes, read %zd bytes, error %d\n", jeb->offset, ops.ooblen, ops.oobretlen, ret); - if (!ret) + if (!ret || mtd_is_bitflip(ret)) ret = -EIO; return ret; } @@ -1075,11 +1075,11 @@ ops.datbuf = NULL; ret = c->mtd->read_oob(c->mtd, jeb->offset, &ops); - if (ret || ops.oobretlen != ops.ooblen) { + if ((ret && !mtd_is_bitflip(ret)) || ops.oobretlen != ops.ooblen) { printk(KERN_ERR "cannot read OOB for EB at %08x, requested %zd" " bytes, read %zd bytes, error %d\n", jeb->offset, ops.ooblen, ops.oobretlen, ret); - if (!ret) + if (!ret || mtd_is_bitflip(ret)) ret = -EIO; return ret; } --- linux-3.2.0.orig/fs/udf/udf_sb.h +++ linux-3.2.0/fs/udf/udf_sb.h @@ -82,7 +82,7 @@ struct udf_bitmap { __u32 s_extLength; __u32 s_extPosition; - __u16 s_nr_groups; + int s_nr_groups; struct buffer_head **s_block_bitmap; }; --- linux-3.2.0.orig/fs/udf/super.c +++ linux-3.2.0/fs/udf/super.c @@ -56,6 +56,7 @@ #include #include #include +#include #include #include "udf_sb.h" @@ -1217,16 +1218,65 @@ return ret; } +static int udf_load_sparable_map(struct super_block *sb, + struct udf_part_map *map, + struct sparablePartitionMap *spm) +{ + uint32_t loc; + uint16_t ident; + struct sparingTable *st; + struct udf_sparing_data *sdata = &map->s_type_specific.s_sparing; + int i; + struct buffer_head *bh; + + map->s_partition_type = UDF_SPARABLE_MAP15; + sdata->s_packet_len = le16_to_cpu(spm->packetLength); + if (!is_power_of_2(sdata->s_packet_len)) { + udf_err(sb, "error loading logical volume descriptor: " + "Invalid packet length %u\n", + (unsigned)sdata->s_packet_len); + return -EIO; + } + if (spm->numSparingTables > 4) { + udf_err(sb, "error loading logical volume descriptor: " + "Too many sparing tables (%d)\n", + (int)spm->numSparingTables); + return -EIO; + } + + for (i = 0; i < spm->numSparingTables; i++) { + loc = le32_to_cpu(spm->locSparingTable[i]); + bh = udf_read_tagged(sb, loc, loc, &ident); + if (!bh) + continue; + + st = (struct sparingTable *)bh->b_data; + if (ident != 0 || + strncmp(st->sparingIdent.ident, UDF_ID_SPARING, + strlen(UDF_ID_SPARING)) || + sizeof(*st) + le16_to_cpu(st->reallocationTableLen) > + sb->s_blocksize) { + brelse(bh); + continue; + } + + sdata->s_spar_map[i] = bh; + } + map->s_partition_func = udf_get_pblock_spar15; + return 0; +} + static int udf_load_logicalvol(struct super_block *sb, sector_t block, struct kernel_lb_addr *fileset) { struct logicalVolDesc *lvd; - int i, j, offset; + int i, offset; uint8_t type; struct udf_sb_info *sbi = UDF_SB(sb); struct genericPartitionMap *gpm; uint16_t ident; struct buffer_head *bh; + unsigned int table_len; int ret = 0; bh = udf_read_tagged(sb, block, block, &ident); @@ -1234,15 +1284,21 @@ return 1; BUG_ON(ident != TAG_IDENT_LVD); lvd = (struct logicalVolDesc *)bh->b_data; - - i = udf_sb_alloc_partition_maps(sb, le32_to_cpu(lvd->numPartitionMaps)); - if (i != 0) { - ret = i; + table_len = le32_to_cpu(lvd->mapTableLength); + if (table_len > sb->s_blocksize - sizeof(*lvd)) { + udf_err(sb, "error loading logical volume descriptor: " + "Partition table too long (%u > %lu)\n", table_len, + sb->s_blocksize - sizeof(*lvd)); + ret = 1; goto out_bh; } + ret = udf_sb_alloc_partition_maps(sb, le32_to_cpu(lvd->numPartitionMaps)); + if (ret) + goto out_bh; + for (i = 0, offset = 0; - i < sbi->s_partitions && offset < le32_to_cpu(lvd->mapTableLength); + i < sbi->s_partitions && offset < table_len; i++, offset += gpm->partitionMapLength) { struct udf_part_map *map = &sbi->s_partmaps[i]; gpm = (struct genericPartitionMap *) @@ -1277,38 +1333,11 @@ } else if (!strncmp(upm2->partIdent.ident, UDF_ID_SPARABLE, strlen(UDF_ID_SPARABLE))) { - uint32_t loc; - struct sparingTable *st; - struct sparablePartitionMap *spm = - (struct sparablePartitionMap *)gpm; - - map->s_partition_type = UDF_SPARABLE_MAP15; - map->s_type_specific.s_sparing.s_packet_len = - le16_to_cpu(spm->packetLength); - for (j = 0; j < spm->numSparingTables; j++) { - struct buffer_head *bh2; - - loc = le32_to_cpu( - spm->locSparingTable[j]); - bh2 = udf_read_tagged(sb, loc, loc, - &ident); - map->s_type_specific.s_sparing. - s_spar_map[j] = bh2; - - if (bh2 == NULL) - continue; - - st = (struct sparingTable *)bh2->b_data; - if (ident != 0 || strncmp( - st->sparingIdent.ident, - UDF_ID_SPARING, - strlen(UDF_ID_SPARING))) { - brelse(bh2); - map->s_type_specific.s_sparing. - s_spar_map[j] = NULL; - } + if (udf_load_sparable_map(sb, map, + (struct sparablePartitionMap *)gpm) < 0) { + ret = 1; + goto out_bh; } - map->s_partition_func = udf_get_pblock_spar15; } else if (!strncmp(upm2->partIdent.ident, UDF_ID_METADATA, strlen(UDF_ID_METADATA))) { @@ -1799,6 +1828,12 @@ le16_to_cpu(lvid->descTag.descCRCLength))); lvid->descTag.tagChecksum = udf_tag_checksum(&lvid->descTag); + /* + * We set buffer uptodate unconditionally here to avoid spurious + * warnings from mark_buffer_dirty() when previous EIO has marked + * the buffer as !uptodate + */ + set_buffer_uptodate(bh); mark_buffer_dirty(bh); sbi->s_lvid_dirty = 0; mutex_unlock(&sbi->s_alloc_mutex); --- linux-3.2.0.orig/fs/udf/namei.c +++ linux-3.2.0/fs/udf/namei.c @@ -1293,6 +1293,7 @@ *lenp = 3; fid->udf.block = location.logicalBlockNum; fid->udf.partref = location.partitionReferenceNum; + fid->udf.parent_partref = 0; fid->udf.generation = inode->i_generation; if (connectable && !S_ISDIR(inode->i_mode)) { --- linux-3.2.0.orig/fs/udf/inode.c +++ linux-3.2.0/fs/udf/inode.c @@ -151,6 +151,12 @@ .bmap = udf_bmap, }; +/* + * Expand file stored in ICB to a normal one-block-file + * + * This function requires i_data_sem for writing and releases it. + * This function requires i_mutex held + */ int udf_expand_file_adinicb(struct inode *inode) { struct page *page; @@ -169,9 +175,15 @@ iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG; /* from now on we have normal address_space methods */ inode->i_data.a_ops = &udf_aops; + up_write(&iinfo->i_data_sem); mark_inode_dirty(inode); return 0; } + /* + * Release i_data_sem so that we can lock a page - page lock ranks + * above i_data_sem. i_mutex still protects us against file changes. + */ + up_write(&iinfo->i_data_sem); page = find_or_create_page(inode->i_mapping, 0, GFP_NOFS); if (!page) @@ -187,6 +199,7 @@ SetPageUptodate(page); kunmap(page); } + down_write(&iinfo->i_data_sem); memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr, 0x00, iinfo->i_lenAlloc); iinfo->i_lenAlloc = 0; @@ -196,17 +209,20 @@ iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG; /* from now on we have normal address_space methods */ inode->i_data.a_ops = &udf_aops; + up_write(&iinfo->i_data_sem); err = inode->i_data.a_ops->writepage(page, &udf_wbc); if (err) { /* Restore everything back so that we don't lose data... */ lock_page(page); kaddr = kmap(page); + down_write(&iinfo->i_data_sem); memcpy(iinfo->i_ext.i_data + iinfo->i_lenEAttr, kaddr, inode->i_size); kunmap(page); unlock_page(page); iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; inode->i_data.a_ops = &udf_adinicb_aops; + up_write(&iinfo->i_data_sem); } page_cache_release(page); mark_inode_dirty(inode); @@ -565,6 +581,7 @@ struct udf_inode_info *iinfo = UDF_I(inode); int goal = 0, pgoal = iinfo->i_location.logicalBlockNum; int lastblock = 0; + bool isBeyondEOF; prev_epos.offset = udf_file_entry_alloc_offset(inode); prev_epos.block = iinfo->i_location; @@ -643,7 +660,7 @@ /* Are we beyond EOF? */ if (etype == -1) { int ret; - + isBeyondEOF = 1; if (count) { if (c) laarr[0] = laarr[1]; @@ -686,6 +703,7 @@ endnum = c + 1; lastblock = 1; } else { + isBeyondEOF = 0; endnum = startnum = ((count > 2) ? 2 : count); /* if the current extent is in position 0, @@ -728,10 +746,13 @@ goal, err); if (!newblocknum) { brelse(prev_epos.bh); + brelse(cur_epos.bh); + brelse(next_epos.bh); *err = -ENOSPC; return NULL; } - iinfo->i_lenExtents += inode->i_sb->s_blocksize; + if (isBeyondEOF) + iinfo->i_lenExtents += inode->i_sb->s_blocksize; } /* if the extent the requsted block is located in contains multiple @@ -758,6 +779,8 @@ udf_update_extents(inode, laarr, startnum, endnum, &prev_epos); brelse(prev_epos.bh); + brelse(cur_epos.bh); + brelse(next_epos.bh); newblock = udf_get_pblock(inode->i_sb, newblocknum, iinfo->i_location.partitionReferenceNum, 0); @@ -1111,10 +1134,9 @@ if (bsize < (udf_file_entry_alloc_offset(inode) + newsize)) { err = udf_expand_file_adinicb(inode); - if (err) { - up_write(&iinfo->i_data_sem); + if (err) return err; - } + down_write(&iinfo->i_data_sem); } else iinfo->i_lenAlloc = newsize; } --- linux-3.2.0.orig/fs/udf/file.c +++ linux-3.2.0/fs/udf/file.c @@ -39,20 +39,24 @@ #include "udf_i.h" #include "udf_sb.h" -static int udf_adinicb_readpage(struct file *file, struct page *page) +static void __udf_adinicb_readpage(struct page *page) { struct inode *inode = page->mapping->host; char *kaddr; struct udf_inode_info *iinfo = UDF_I(inode); - BUG_ON(!PageLocked(page)); - kaddr = kmap(page); - memset(kaddr, 0, PAGE_CACHE_SIZE); memcpy(kaddr, iinfo->i_ext.i_data + iinfo->i_lenEAttr, inode->i_size); + memset(kaddr + inode->i_size, 0, PAGE_CACHE_SIZE - inode->i_size); flush_dcache_page(page); SetPageUptodate(page); kunmap(page); +} + +static int udf_adinicb_readpage(struct file *file, struct page *page) +{ + BUG_ON(!PageLocked(page)); + __udf_adinicb_readpage(page); unlock_page(page); return 0; @@ -77,6 +81,25 @@ return 0; } +static int udf_adinicb_write_begin(struct file *file, + struct address_space *mapping, loff_t pos, + unsigned len, unsigned flags, struct page **pagep, + void **fsdata) +{ + struct page *page; + + if (WARN_ON_ONCE(pos >= PAGE_CACHE_SIZE)) + return -EIO; + page = grab_cache_page_write_begin(mapping, 0, flags); + if (!page) + return -ENOMEM; + *pagep = page; + + if (!PageUptodate(page) && len != PAGE_CACHE_SIZE) + __udf_adinicb_readpage(page); + return 0; +} + static int udf_adinicb_write_end(struct file *file, struct address_space *mapping, loff_t pos, unsigned len, unsigned copied, @@ -98,8 +121,8 @@ const struct address_space_operations udf_adinicb_aops = { .readpage = udf_adinicb_readpage, .writepage = udf_adinicb_writepage, - .write_begin = simple_write_begin, - .write_end = udf_adinicb_write_end, + .write_begin = udf_adinicb_write_begin, + .write_end = udf_adinicb_write_end, }; static ssize_t udf_file_aio_write(struct kiocb *iocb, const struct iovec *iov, @@ -125,7 +148,6 @@ err = udf_expand_file_adinicb(inode); if (err) { udf_debug("udf_expand_adinicb: err=%d\n", err); - up_write(&iinfo->i_data_sem); return err; } } else { @@ -133,9 +155,10 @@ iinfo->i_lenAlloc = pos + count; else iinfo->i_lenAlloc = inode->i_size; + up_write(&iinfo->i_data_sem); } - } - up_write(&iinfo->i_data_sem); + } else + up_write(&iinfo->i_data_sem); retval = generic_file_aio_write(iocb, iov, nr_segs, ppos); if (retval > 0) @@ -201,12 +224,10 @@ static int udf_release_file(struct inode *inode, struct file *filp) { if (filp->f_mode & FMODE_WRITE) { - mutex_lock(&inode->i_mutex); down_write(&UDF_I(inode)->i_data_sem); udf_discard_prealloc(inode); udf_truncate_tail_extent(inode); up_write(&UDF_I(inode)->i_data_sem); - mutex_unlock(&inode->i_mutex); } return 0; } --- linux-3.2.0.orig/fs/ext3/super.c +++ linux-3.2.0/fs/ext3/super.c @@ -374,7 +374,7 @@ return bdev; fail: - ext3_msg(sb, "error: failed to open journal device %s: %ld", + ext3_msg(sb, KERN_ERR, "error: failed to open journal device %s: %ld", __bdevname(dev, b), PTR_ERR(bdev)); return NULL; @@ -902,7 +902,7 @@ /*todo: use simple_strtoll with >32bit ext3 */ sb_block = simple_strtoul(options, &options, 0); if (*options && *options != ',') { - ext3_msg(sb, "error: invalid sb specification: %s", + ext3_msg(sb, KERN_ERR, "error: invalid sb specification: %s", (char *) *data); return 1; } --- linux-3.2.0.orig/fs/ext3/ialloc.c +++ linux-3.2.0/fs/ext3/ialloc.c @@ -525,8 +525,12 @@ if (IS_DIRSYNC(inode)) handle->h_sync = 1; if (insert_inode_locked(inode) < 0) { - err = -EINVAL; - goto fail_drop; + /* + * Likely a bitmap corruption causing inode to be allocated + * twice. + */ + err = -EIO; + goto fail; } spin_lock(&sbi->s_next_gen_lock); inode->i_generation = sbi->s_next_generation++; --- linux-3.2.0.orig/fs/ext3/namei.c +++ linux-3.2.0/fs/ext3/namei.c @@ -585,11 +585,8 @@ if (!ext3_check_dir_entry("htree_dirblock_to_tree", dir, de, bh, (block<i_sb)) +((char *)de - bh->b_data))) { - /* On error, skip the f_pos to the next block. */ - dir_file->f_pos = (dir_file->f_pos | - (dir->i_sb->s_blocksize - 1)) + 1; - brelse (bh); - return count; + /* silently ignore the rest of the block */ + break; } ext3fs_dirhash(de->name, de->name_len, hinfo); if ((hinfo->hash < start_hash) || --- linux-3.2.0.orig/fs/ext3/inode.c +++ linux-3.2.0/fs/ext3/inode.c @@ -1617,7 +1617,13 @@ int err; J_ASSERT(PageLocked(page)); - WARN_ON_ONCE(IS_RDONLY(inode)); + /* + * We don't want to warn for emergency remount. The condition is + * ordered to avoid dereferencing inode->i_sb in non-error case to + * avoid slow-downs. + */ + WARN_ON_ONCE(IS_RDONLY(inode) && + !(EXT3_SB(inode->i_sb)->s_mount_state & EXT3_ERROR_FS)); /* * We give up here if we're reentered, because it might be for a @@ -1692,7 +1698,13 @@ int err; J_ASSERT(PageLocked(page)); - WARN_ON_ONCE(IS_RDONLY(inode)); + /* + * We don't want to warn for emergency remount. The condition is + * ordered to avoid dereferencing inode->i_sb in non-error case to + * avoid slow-downs. + */ + WARN_ON_ONCE(IS_RDONLY(inode) && + !(EXT3_SB(inode->i_sb)->s_mount_state & EXT3_ERROR_FS)); if (ext3_journal_current_handle()) goto out_fail; @@ -1735,7 +1747,13 @@ int err; J_ASSERT(PageLocked(page)); - WARN_ON_ONCE(IS_RDONLY(inode)); + /* + * We don't want to warn for emergency remount. The condition is + * ordered to avoid dereferencing inode->i_sb in non-error case to + * avoid slow-downs. + */ + WARN_ON_ONCE(IS_RDONLY(inode) && + !(EXT3_SB(inode->i_sb)->s_mount_state & EXT3_ERROR_FS)); if (ext3_journal_current_handle()) goto no_write; @@ -3054,6 +3072,8 @@ struct ext3_inode_info *ei = EXT3_I(inode); struct buffer_head *bh = iloc->bh; int err = 0, rc, block; + int need_datasync = 0; + __le32 disksize; again: /* we can't allow multiple procs in here at once, its a bit racey */ @@ -3091,7 +3111,11 @@ raw_inode->i_gid_high = 0; } raw_inode->i_links_count = cpu_to_le16(inode->i_nlink); - raw_inode->i_size = cpu_to_le32(ei->i_disksize); + disksize = cpu_to_le32(ei->i_disksize); + if (disksize != raw_inode->i_size) { + need_datasync = 1; + raw_inode->i_size = disksize; + } raw_inode->i_atime = cpu_to_le32(inode->i_atime.tv_sec); raw_inode->i_ctime = cpu_to_le32(inode->i_ctime.tv_sec); raw_inode->i_mtime = cpu_to_le32(inode->i_mtime.tv_sec); @@ -3107,8 +3131,11 @@ if (!S_ISREG(inode->i_mode)) { raw_inode->i_dir_acl = cpu_to_le32(ei->i_dir_acl); } else { - raw_inode->i_size_high = - cpu_to_le32(ei->i_disksize >> 32); + disksize = cpu_to_le32(ei->i_disksize >> 32); + if (disksize != raw_inode->i_size_high) { + raw_inode->i_size_high = disksize; + need_datasync = 1; + } if (ei->i_disksize > 0x7fffffffULL) { struct super_block *sb = inode->i_sb; if (!EXT3_HAS_RO_COMPAT_FEATURE(sb, @@ -3161,6 +3188,8 @@ ext3_clear_inode_state(inode, EXT3_STATE_NEW); atomic_set(&ei->i_sync_tid, handle->h_transaction->t_tid); + if (need_datasync) + atomic_set(&ei->i_datasync_tid, handle->h_transaction->t_tid); out_brelse: brelse (bh); ext3_std_error(inode->i_sb, err); --- linux-3.2.0.orig/fs/lockd/clntlock.c +++ linux-3.2.0/fs/lockd/clntlock.c @@ -141,6 +141,9 @@ timeout); if (ret < 0) return -ERESTARTSYS; + /* Reset the lock status after a server reboot so we resend */ + if (block->b_status == nlm_lck_denied_grace_period) + block->b_status = nlm_lck_blocked; req->a_res.status = block->b_status; return 0; } --- linux-3.2.0.orig/fs/lockd/svc.c +++ linux-3.2.0/fs/lockd/svc.c @@ -440,7 +440,7 @@ __typeof__(type) num = which_strtol(val, &endp, 0); \ if (endp == val || *endp || num < (min) || num > (max)) \ return -EINVAL; \ - *((int *) kp->arg) = num; \ + *((type *) kp->arg) = num; \ return 0; \ } --- linux-3.2.0.orig/fs/lockd/svclock.c +++ linux-3.2.0/fs/lockd/svclock.c @@ -913,6 +913,7 @@ unsigned long timeout = MAX_SCHEDULE_TIMEOUT; struct nlm_block *block; + spin_lock(&nlm_blocked_lock); while (!list_empty(&nlm_blocked) && !kthread_should_stop()) { block = list_entry(nlm_blocked.next, struct nlm_block, b_list); @@ -922,6 +923,7 @@ timeout = block->b_when - jiffies; break; } + spin_unlock(&nlm_blocked_lock); dprintk("nlmsvc_retry_blocked(%p, when=%ld)\n", block, block->b_when); @@ -931,7 +933,9 @@ retry_deferred_block(block); } else nlmsvc_grant_blocked(block); + spin_lock(&nlm_blocked_lock); } + spin_unlock(&nlm_blocked_lock); return timeout; } --- linux-3.2.0.orig/fs/lockd/svcproc.c +++ linux-3.2.0/fs/lockd/svcproc.c @@ -67,7 +67,8 @@ /* Obtain file pointer. Not used by FREE_ALL call. */ if (filp != NULL) { - if ((error = nlm_lookup_file(rqstp, &file, &lock->fh)) != 0) + error = cast_status(nlm_lookup_file(rqstp, &file, &lock->fh)); + if (error != 0) goto no_locks; *filp = file; --- linux-3.2.0.orig/fs/lockd/clnt4xdr.c +++ linux-3.2.0/fs/lockd/clnt4xdr.c @@ -241,7 +241,7 @@ p = xdr_inline_decode(xdr, 4); if (unlikely(p == NULL)) goto out_overflow; - if (unlikely(*p > nlm4_failed)) + if (unlikely(ntohl(*p) > ntohl(nlm4_failed))) goto out_bad_xdr; *stat = *p; return 0; --- linux-3.2.0.orig/fs/lockd/clntxdr.c +++ linux-3.2.0/fs/lockd/clntxdr.c @@ -223,7 +223,7 @@ { __be32 *p; - BUG_ON(be32_to_cpu(stat) > NLM_LCK_DENIED_GRACE_PERIOD); + WARN_ON_ONCE(be32_to_cpu(stat) > NLM_LCK_DENIED_GRACE_PERIOD); p = xdr_reserve_space(xdr, 4); *p = stat; } @@ -236,7 +236,7 @@ p = xdr_inline_decode(xdr, 4); if (unlikely(p == NULL)) goto out_overflow; - if (unlikely(*p > nlm_lck_denied_grace_period)) + if (unlikely(ntohl(*p) > ntohl(nlm_lck_denied_grace_period))) goto out_enum; *stat = *p; return 0; --- linux-3.2.0.orig/fs/hugetlbfs/inode.c +++ linux-3.2.0/fs/hugetlbfs/inode.c @@ -238,17 +238,10 @@ loff_t isize; ssize_t retval = 0; - mutex_lock(&inode->i_mutex); - /* validate length */ if (len == 0) goto out; - isize = i_size_read(inode); - if (!isize) - goto out; - - end_index = (isize - 1) >> huge_page_shift(h); for (;;) { struct page *page; unsigned long nr, ret; @@ -256,18 +249,21 @@ /* nr is the maximum number of bytes to copy from this page */ nr = huge_page_size(h); + isize = i_size_read(inode); + if (!isize) + goto out; + end_index = (isize - 1) >> huge_page_shift(h); if (index >= end_index) { if (index > end_index) goto out; nr = ((isize - 1) & ~huge_page_mask(h)) + 1; - if (nr <= offset) { + if (nr <= offset) goto out; - } } nr = nr - offset; /* Find the page */ - page = find_get_page(mapping, index); + page = find_lock_page(mapping, index); if (unlikely(page == NULL)) { /* * We have a HOLE, zero out the user-buffer for the @@ -279,17 +275,18 @@ else ra = 0; } else { + unlock_page(page); + /* * We have the page, copy it to user space buffer. */ ra = hugetlbfs_read_actor(page, offset, buf, len, nr); ret = ra; + page_cache_release(page); } if (ra < 0) { if (retval == 0) retval = ra; - if (page) - page_cache_release(page); goto out; } @@ -299,16 +296,12 @@ index += offset >> huge_page_shift(h); offset &= ~huge_page_mask(h); - if (page) - page_cache_release(page); - /* short read or no more work */ if ((ret != nr) || (len == 0)) break; } out: *ppos = ((loff_t)index << huge_page_shift(h)) + offset; - mutex_unlock(&inode->i_mutex); return retval; } @@ -576,7 +569,8 @@ } static int hugetlbfs_migrate_page(struct address_space *mapping, - struct page *newpage, struct page *page) + struct page *newpage, struct page *page, + enum migrate_mode mode) { int rc; @@ -599,9 +593,15 @@ spin_lock(&sbinfo->stat_lock); /* If no limits set, just report 0 for max/free/used * blocks, like simple_statfs() */ - if (sbinfo->max_blocks >= 0) { - buf->f_blocks = sbinfo->max_blocks; - buf->f_bavail = buf->f_bfree = sbinfo->free_blocks; + if (sbinfo->spool) { + long free_pages; + + spin_lock(&sbinfo->spool->lock); + buf->f_blocks = sbinfo->spool->max_hpages; + free_pages = sbinfo->spool->max_hpages + - sbinfo->spool->used_hpages; + buf->f_bavail = buf->f_bfree = free_pages; + spin_unlock(&sbinfo->spool->lock); buf->f_files = sbinfo->max_inodes; buf->f_ffree = sbinfo->free_inodes; } @@ -617,6 +617,10 @@ if (sbi) { sb->s_fs_info = NULL; + + if (sbi->spool) + hugepage_put_subpool(sbi->spool); + kfree(sbi); } } @@ -848,10 +852,14 @@ sb->s_fs_info = sbinfo; sbinfo->hstate = config.hstate; spin_lock_init(&sbinfo->stat_lock); - sbinfo->max_blocks = config.nr_blocks; - sbinfo->free_blocks = config.nr_blocks; sbinfo->max_inodes = config.nr_inodes; sbinfo->free_inodes = config.nr_inodes; + sbinfo->spool = NULL; + if (config.nr_blocks != -1) { + sbinfo->spool = hugepage_new_subpool(config.nr_blocks); + if (!sbinfo->spool) + goto out_free; + } sb->s_maxbytes = MAX_LFS_FILESIZE; sb->s_blocksize = huge_page_size(config.hstate); sb->s_blocksize_bits = huge_page_shift(config.hstate); @@ -871,38 +879,12 @@ sb->s_root = root; return 0; out_free: + if (sbinfo->spool) + kfree(sbinfo->spool); kfree(sbinfo); return -ENOMEM; } -int hugetlb_get_quota(struct address_space *mapping, long delta) -{ - int ret = 0; - struct hugetlbfs_sb_info *sbinfo = HUGETLBFS_SB(mapping->host->i_sb); - - if (sbinfo->free_blocks > -1) { - spin_lock(&sbinfo->stat_lock); - if (sbinfo->free_blocks - delta >= 0) - sbinfo->free_blocks -= delta; - else - ret = -ENOMEM; - spin_unlock(&sbinfo->stat_lock); - } - - return ret; -} - -void hugetlb_put_quota(struct address_space *mapping, long delta) -{ - struct hugetlbfs_sb_info *sbinfo = HUGETLBFS_SB(mapping->host->i_sb); - - if (sbinfo->free_blocks > -1) { - spin_lock(&sbinfo->stat_lock); - sbinfo->free_blocks += delta; - spin_unlock(&sbinfo->stat_lock); - } -} - static struct dentry *hugetlbfs_mount(struct file_system_type *fs_type, int flags, const char *dev_name, void *data) { --- linux-3.2.0.orig/fs/jfs/inode.c +++ linux-3.2.0/fs/jfs/inode.c @@ -125,7 +125,7 @@ { int wait = wbc->sync_mode == WB_SYNC_ALL; - if (test_cflag(COMMIT_Nolink, inode)) + if (inode->i_nlink == 0) return 0; /* * If COMMIT_DIRTY is not set, the inode isn't really dirty. --- linux-3.2.0.orig/fs/jfs/jfs_logmgr.c +++ linux-3.2.0/fs/jfs/jfs_logmgr.c @@ -1058,7 +1058,8 @@ */ void jfs_syncpt(struct jfs_log *log, int hard_sync) { LOG_LOCK(log); - lmLogSync(log, hard_sync); + if (!test_bit(log_QUIESCE, &log->flag)) + lmLogSync(log, hard_sync); LOG_UNLOCK(log); } --- linux-3.2.0.orig/lib/gcd.c +++ linux-3.2.0/lib/gcd.c @@ -9,6 +9,9 @@ if (a < b) swap(a, b); + + if (!b) + return a; while ((r = a % b) != 0) { a = b; b = r; --- linux-3.2.0.orig/lib/btree.c +++ linux-3.2.0/lib/btree.c @@ -319,8 +319,8 @@ if (head->height == 0) return NULL; -retry: longcpy(key, __key, geo->keylen); +retry: dec_key(geo, key); node = head->node; @@ -351,7 +351,7 @@ } miss: if (retry_key) { - __key = retry_key; + longcpy(key, retry_key, geo->keylen); retry_key = NULL; goto retry; } --- linux-3.2.0.orig/lib/kobject_uevent.c +++ linux-3.2.0/lib/kobject_uevent.c @@ -29,16 +29,17 @@ u64 uevent_seqnum; char uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH; -static DEFINE_SPINLOCK(sequence_lock); #ifdef CONFIG_NET struct uevent_sock { struct list_head list; struct sock *sk; }; static LIST_HEAD(uevent_sock_list); -static DEFINE_MUTEX(uevent_sock_mutex); #endif +/* This lock protects uevent_seqnum and uevent_sock_list */ +static DEFINE_MUTEX(uevent_sock_mutex); + /* the strings here must match the enum in include/linux/kobject.h */ static const char *kobject_actions[] = { [KOBJ_ADD] = "add", @@ -136,7 +137,6 @@ struct kobject *top_kobj; struct kset *kset; const struct kset_uevent_ops *uevent_ops; - u64 seq; int i = 0; int retval = 0; #ifdef CONFIG_NET @@ -243,17 +243,16 @@ else if (action == KOBJ_REMOVE) kobj->state_remove_uevent_sent = 1; + mutex_lock(&uevent_sock_mutex); /* we will send an event, so request a new sequence number */ - spin_lock(&sequence_lock); - seq = ++uevent_seqnum; - spin_unlock(&sequence_lock); - retval = add_uevent_var(env, "SEQNUM=%llu", (unsigned long long)seq); - if (retval) + retval = add_uevent_var(env, "SEQNUM=%llu", (unsigned long long)++uevent_seqnum); + if (retval) { + mutex_unlock(&uevent_sock_mutex); goto exit; + } #if defined(CONFIG_NET) /* send netlink message */ - mutex_lock(&uevent_sock_mutex); list_for_each_entry(ue_sk, &uevent_sock_list, list) { struct sock *uevent_sock = ue_sk->sk; struct sk_buff *skb; @@ -287,8 +286,8 @@ } else retval = -ENOMEM; } - mutex_unlock(&uevent_sock_mutex); #endif + mutex_unlock(&uevent_sock_mutex); /* call uevent_helper, usually only enabled during early boot */ if (uevent_helper[0] && !kobj_usermode_filter(kobj)) { --- linux-3.2.0.orig/lib/idr.c +++ linux-3.2.0/lib/idr.c @@ -39,6 +39,14 @@ static struct kmem_cache *idr_layer_cache; static DEFINE_SPINLOCK(simple_ida_lock); +/* the maximum ID which can be allocated given idr->layers */ +static int idr_max(int layers) +{ + int bits = min_t(int, layers * IDR_BITS, MAX_ID_SHIFT); + + return (1 << bits) - 1; +} + static struct idr_layer *get_from_free_list(struct idr *idp) { struct idr_layer *p; @@ -223,7 +231,7 @@ * Add a new layer to the top of the tree if the requested * id is larger than the currently allocated space. */ - while ((layers < (MAX_LEVEL - 1)) && (id >= (1 << (layers*IDR_BITS)))) { + while (id > idr_max(layers)) { layers++; if (!p->count) { /* special case: if the tree is currently empty, @@ -265,7 +273,7 @@ static int idr_get_new_above_int(struct idr *idp, void *ptr, int starting_id) { - struct idr_layer *pa[MAX_LEVEL]; + struct idr_layer *pa[MAX_LEVEL + 1]; int id; id = idr_get_empty_slot(idp, starting_id, pa); @@ -357,7 +365,7 @@ static void sub_remove(struct idr *idp, int shift, int id) { struct idr_layer *p = idp->top; - struct idr_layer **pa[MAX_LEVEL]; + struct idr_layer **pa[MAX_LEVEL + 1]; struct idr_layer ***paa = &pa[0]; struct idr_layer *to_free; int n; @@ -451,16 +459,16 @@ int n, id, max; int bt_mask; struct idr_layer *p; - struct idr_layer *pa[MAX_LEVEL]; + struct idr_layer *pa[MAX_LEVEL + 1]; struct idr_layer **paa = &pa[0]; n = idp->layers * IDR_BITS; p = idp->top; rcu_assign_pointer(idp->top, NULL); - max = 1 << n; + max = idr_max(idp->layers); id = 0; - while (id < max) { + while (id >= 0 && id <= max) { while (n > IDR_BITS && p) { n -= IDR_BITS; *paa++ = p; @@ -519,7 +527,7 @@ /* Mask off upper bits we don't use for the search. */ id &= MAX_ID_MASK; - if (id >= (1 << n)) + if (id > idr_max(p->layer + 1)) return NULL; BUG_ON(n == 0); @@ -555,15 +563,15 @@ { int n, id, max, error = 0; struct idr_layer *p; - struct idr_layer *pa[MAX_LEVEL]; + struct idr_layer *pa[MAX_LEVEL + 1]; struct idr_layer **paa = &pa[0]; n = idp->layers * IDR_BITS; p = rcu_dereference_raw(idp->top); - max = 1 << n; + max = idr_max(idp->layers); id = 0; - while (id < max) { + while (id >= 0 && id <= max) { while (n > 0 && p) { n -= IDR_BITS; *paa++ = p; @@ -595,23 +603,25 @@ * Returns pointer to registered object with id, which is next number to * given id. After being looked up, *@nextidp will be updated for the next * iteration. + * + * This function can be called under rcu_read_lock(), given that the leaf + * pointers lifetimes are correctly managed. */ - void *idr_get_next(struct idr *idp, int *nextidp) { - struct idr_layer *p, *pa[MAX_LEVEL]; + struct idr_layer *p, *pa[MAX_LEVEL + 1]; struct idr_layer **paa = &pa[0]; int id = *nextidp; int n, max; /* find first ent */ - n = idp->layers * IDR_BITS; - max = 1 << n; p = rcu_dereference_raw(idp->top); if (!p) return NULL; + n = (p->layer + 1) * IDR_BITS; + max = idr_max(p->layer + 1); - while (id < max) { + while (id >= 0 && id <= max) { while (n > 0 && p) { n -= IDR_BITS; *paa++ = p; @@ -623,7 +633,14 @@ return p; } - id += 1 << n; + /* + * Proceed to the next layer at the current level. Unlike + * idr_for_each(), @id isn't guaranteed to be aligned to + * layer boundary at this point and adding 1 << n may + * incorrectly skip IDs. Make sure we jump to the + * beginning of the next layer using round_up(). + */ + id = round_up(id + 1, 1 << n); while (n < fls(id)) { n += IDR_BITS; p = *--paa; @@ -778,7 +795,7 @@ */ int ida_get_new_above(struct ida *ida, int starting_id, int *p_id) { - struct idr_layer *pa[MAX_LEVEL]; + struct idr_layer *pa[MAX_LEVEL + 1]; struct ida_bitmap *bitmap; unsigned long flags; int idr_id = starting_id / IDA_BITMAP_BITS; --- linux-3.2.0.orig/lib/genalloc.c +++ linux-3.2.0/lib/genalloc.c @@ -176,7 +176,7 @@ struct gen_pool_chunk *chunk; int nbits = size >> pool->min_alloc_order; int nbytes = sizeof(struct gen_pool_chunk) + - (nbits + BITS_PER_BYTE - 1) / BITS_PER_BYTE; + BITS_TO_LONGS(nbits) * sizeof(long); chunk = kmalloc_node(nbytes, GFP_KERNEL | __GFP_ZERO, nid); if (unlikely(chunk == NULL)) --- linux-3.2.0.orig/lib/kobject.c +++ linux-3.2.0/lib/kobject.c @@ -531,6 +531,13 @@ return kobj; } +static struct kobject *kobject_get_unless_zero(struct kobject *kobj) +{ + if (!kref_get_unless_zero(&kobj->kref)) + kobj = NULL; + return kobj; +} + /* * kobject_cleanup - free kobject resources. * @kobj: object to cleanup @@ -785,7 +792,7 @@ slow_search: list_for_each_entry(k, &kset->list, entry) { if (kobject_name(k) && !strcmp(kobject_name(k), name)) { - ret = kobject_get(k); + ret = kobject_get_unless_zero(k); break; } } --- linux-3.2.0.orig/lib/vsprintf.c +++ linux-3.2.0/lib/vsprintf.c @@ -886,7 +886,8 @@ * %pK cannot be used in IRQ context because its test * for CAP_SYSLOG would be meaningless. */ - if (in_irq() || in_serving_softirq() || in_nmi()) { + if (kptr_restrict && (in_irq() || in_serving_softirq() || + in_nmi())) { if (spec.field_width == -1) spec.field_width = 2 * sizeof(void *); return string(buf, end, "pK-error", spec); --- linux-3.2.0.orig/net/socket.c +++ linux-3.2.0/net/socket.c @@ -791,9 +791,9 @@ sock = file->private_data; - flags = !(file->f_flags & O_NONBLOCK) ? 0 : MSG_DONTWAIT; - if (more) - flags |= MSG_MORE; + flags = (file->f_flags & O_NONBLOCK) ? MSG_DONTWAIT : 0; + /* more is a combination of MSG_MORE and MSG_SENDPAGE_NOTLAST */ + flags |= more; return kernel_sendpage(sock, page, offset, size, flags); } @@ -1876,9 +1876,9 @@ unsigned int name_len; }; -static int __sys_sendmsg(struct socket *sock, struct msghdr __user *msg, - struct msghdr *msg_sys, unsigned flags, - struct used_address *used_address) +static int ___sys_sendmsg(struct socket *sock, struct msghdr __user *msg, + struct msghdr *msg_sys, unsigned flags, + struct used_address *used_address) { struct compat_msghdr __user *msg_compat = (struct compat_msghdr __user *)msg; @@ -1998,22 +1998,30 @@ * BSD sendmsg interface */ -SYSCALL_DEFINE3(sendmsg, int, fd, struct msghdr __user *, msg, unsigned, flags) +long __sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags) { int fput_needed, err; struct msghdr msg_sys; - struct socket *sock = sockfd_lookup_light(fd, &err, &fput_needed); + struct socket *sock; + sock = sockfd_lookup_light(fd, &err, &fput_needed); if (!sock) goto out; - err = __sys_sendmsg(sock, msg, &msg_sys, flags, NULL); + err = ___sys_sendmsg(sock, msg, &msg_sys, flags, NULL); fput_light(sock->file, fput_needed); out: return err; } +SYSCALL_DEFINE3(sendmsg, int, fd, struct msghdr __user *, msg, unsigned int, flags) +{ + if (flags & MSG_CMSG_COMPAT) + return -EINVAL; + return __sys_sendmsg(fd, msg, flags); +} + /* * Linux sendmmsg interface */ @@ -2044,15 +2052,16 @@ while (datagrams < vlen) { if (MSG_CMSG_COMPAT & flags) { - err = __sys_sendmsg(sock, (struct msghdr __user *)compat_entry, - &msg_sys, flags, &used_address); + err = ___sys_sendmsg(sock, (struct msghdr __user *)compat_entry, + &msg_sys, flags, &used_address); if (err < 0) break; err = __put_user(err, &compat_entry->msg_len); ++compat_entry; } else { - err = __sys_sendmsg(sock, (struct msghdr __user *)entry, - &msg_sys, flags, &used_address); + err = ___sys_sendmsg(sock, + (struct msghdr __user *)entry, + &msg_sys, flags, &used_address); if (err < 0) break; err = put_user(err, &entry->msg_len); @@ -2076,11 +2085,13 @@ SYSCALL_DEFINE4(sendmmsg, int, fd, struct mmsghdr __user *, mmsg, unsigned int, vlen, unsigned int, flags) { + if (flags & MSG_CMSG_COMPAT) + return -EINVAL; return __sys_sendmmsg(fd, mmsg, vlen, flags); } -static int __sys_recvmsg(struct socket *sock, struct msghdr __user *msg, - struct msghdr *msg_sys, unsigned flags, int nosec) +static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg, + struct msghdr *msg_sys, unsigned flags, int nosec) { struct compat_msghdr __user *msg_compat = (struct compat_msghdr __user *)msg; @@ -2177,23 +2188,31 @@ * BSD recvmsg interface */ -SYSCALL_DEFINE3(recvmsg, int, fd, struct msghdr __user *, msg, - unsigned int, flags) +long __sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags) { int fput_needed, err; struct msghdr msg_sys; - struct socket *sock = sockfd_lookup_light(fd, &err, &fput_needed); + struct socket *sock; + sock = sockfd_lookup_light(fd, &err, &fput_needed); if (!sock) goto out; - err = __sys_recvmsg(sock, msg, &msg_sys, flags, 0); + err = ___sys_recvmsg(sock, msg, &msg_sys, flags, 0); fput_light(sock->file, fput_needed); out: return err; } +SYSCALL_DEFINE3(recvmsg, int, fd, struct msghdr __user *, msg, + unsigned int, flags) +{ + if (flags & MSG_CMSG_COMPAT) + return -EINVAL; + return __sys_recvmsg(fd, msg, flags); +} + /* * Linux recvmmsg interface */ @@ -2231,17 +2250,18 @@ * No need to ask LSM for more than the first datagram. */ if (MSG_CMSG_COMPAT & flags) { - err = __sys_recvmsg(sock, (struct msghdr __user *)compat_entry, - &msg_sys, flags & ~MSG_WAITFORONE, - datagrams); + err = ___sys_recvmsg(sock, (struct msghdr __user *)compat_entry, + &msg_sys, flags & ~MSG_WAITFORONE, + datagrams); if (err < 0) break; err = __put_user(err, &compat_entry->msg_len); ++compat_entry; } else { - err = __sys_recvmsg(sock, (struct msghdr __user *)entry, - &msg_sys, flags & ~MSG_WAITFORONE, - datagrams); + err = ___sys_recvmsg(sock, + (struct msghdr __user *)entry, + &msg_sys, flags & ~MSG_WAITFORONE, + datagrams); if (err < 0) break; err = put_user(err, &entry->msg_len); @@ -2308,6 +2328,9 @@ int datagrams; struct timespec timeout_sys; + if (flags & MSG_CMSG_COMPAT) + return -EINVAL; + if (!timeout) return __sys_recvmmsg(fd, mmsg, vlen, flags, NULL); @@ -2472,7 +2495,7 @@ lockdep_is_held(&net_family_lock))) err = -EEXIST; else { - RCU_INIT_POINTER(net_families[ops->family], ops); + rcu_assign_pointer(net_families[ops->family], ops); err = 0; } spin_unlock(&net_family_lock); @@ -2645,6 +2668,7 @@ if (copy_from_user(&ifc32, uifc32, sizeof(struct compat_ifconf))) return -EFAULT; + memset(&ifc, 0, sizeof(ifc)); if (ifc32.ifcbuf == 0) { ifc32.ifc_len = 0; ifc.ifc_len = 0; --- linux-3.2.0.orig/net/compat.c +++ linux-3.2.0/net/compat.c @@ -326,14 +326,6 @@ __scm_destroy(scm); } -/* - * A struct sock_filter is architecture independent. - */ -struct compat_sock_fprog { - u16 len; - compat_uptr_t filter; /* struct sock_filter * */ -}; - static int do_set_attach_filter(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen) { @@ -733,19 +725,25 @@ asmlinkage long compat_sys_sendmsg(int fd, struct compat_msghdr __user *msg, unsigned flags) { - return sys_sendmsg(fd, (struct msghdr __user *)msg, flags | MSG_CMSG_COMPAT); + if (flags & MSG_CMSG_COMPAT) + return -EINVAL; + return __sys_sendmsg(fd, (struct msghdr __user *)msg, flags | MSG_CMSG_COMPAT); } asmlinkage long compat_sys_sendmmsg(int fd, struct compat_mmsghdr __user *mmsg, unsigned vlen, unsigned int flags) { + if (flags & MSG_CMSG_COMPAT) + return -EINVAL; return __sys_sendmmsg(fd, (struct mmsghdr __user *)mmsg, vlen, flags | MSG_CMSG_COMPAT); } asmlinkage long compat_sys_recvmsg(int fd, struct compat_msghdr __user *msg, unsigned int flags) { - return sys_recvmsg(fd, (struct msghdr __user *)msg, flags | MSG_CMSG_COMPAT); + if (flags & MSG_CMSG_COMPAT) + return -EINVAL; + return __sys_recvmsg(fd, (struct msghdr __user *)msg, flags | MSG_CMSG_COMPAT); } asmlinkage long compat_sys_recv(int fd, void __user *buf, size_t len, unsigned flags) @@ -767,6 +765,9 @@ int datagrams; struct timespec ktspec; + if (flags & MSG_CMSG_COMPAT) + return -EINVAL; + if (timeout == NULL) return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen, flags | MSG_CMSG_COMPAT, NULL); --- linux-3.2.0.orig/net/netfilter/nfnetlink.c +++ linux-3.2.0/net/netfilter/nfnetlink.c @@ -59,7 +59,7 @@ nfnl_unlock(); return -EBUSY; } - RCU_INIT_POINTER(subsys_table[n->subsys_id], n); + rcu_assign_pointer(subsys_table[n->subsys_id], n); nfnl_unlock(); return 0; @@ -210,7 +210,7 @@ if (!nfnl) return -ENOMEM; net->nfnl_stash = nfnl; - RCU_INIT_POINTER(net->nfnl, nfnl); + rcu_assign_pointer(net->nfnl, nfnl); return 0; } --- linux-3.2.0.orig/net/netfilter/nf_conntrack_core.c +++ linux-3.2.0/net/netfilter/nf_conntrack_core.c @@ -247,12 +247,15 @@ { struct nf_conn *ct = (void *)ul_conntrack; struct net *net = nf_ct_net(ct); + struct nf_conntrack_ecache *ecache = nf_ct_ecache_find(ct); + + BUG_ON(ecache == NULL); if (nf_conntrack_event(IPCT_DESTROY, ct) < 0) { /* bad luck, let's retry again */ - ct->timeout.expires = jiffies + + ecache->timeout.expires = jiffies + (random32() % net->ct.sysctl_events_retry_timeout); - add_timer(&ct->timeout); + add_timer(&ecache->timeout); return; } /* we've got the event delivered, now it's dying */ @@ -266,6 +269,9 @@ void nf_ct_insert_dying_list(struct nf_conn *ct) { struct net *net = nf_ct_net(ct); + struct nf_conntrack_ecache *ecache = nf_ct_ecache_find(ct); + + BUG_ON(ecache == NULL); /* add this conntrack to the dying list */ spin_lock_bh(&nf_conntrack_lock); @@ -273,10 +279,10 @@ &net->ct.dying); spin_unlock_bh(&nf_conntrack_lock); /* set a new timer to retry event delivery */ - setup_timer(&ct->timeout, death_by_event, (unsigned long)ct); - ct->timeout.expires = jiffies + + setup_timer(&ecache->timeout, death_by_event, (unsigned long)ct); + ecache->timeout.expires = jiffies + (random32() % net->ct.sysctl_events_retry_timeout); - add_timer(&ct->timeout); + add_timer(&ecache->timeout); } EXPORT_SYMBOL_GPL(nf_ct_insert_dying_list); @@ -776,7 +782,7 @@ if (exp->helper) { help = nf_ct_helper_ext_add(ct, GFP_ATOMIC); if (help) - RCU_INIT_POINTER(help->helper, exp->helper); + rcu_assign_pointer(help->helper, exp->helper); } #ifdef CONFIG_NF_CONNTRACK_MARK --- linux-3.2.0.orig/net/netfilter/nf_conntrack_helper.c +++ linux-3.2.0/net/netfilter/nf_conntrack_helper.c @@ -145,7 +145,7 @@ memset(&help->help, 0, sizeof(help->help)); } - RCU_INIT_POINTER(help->helper, helper); + rcu_assign_pointer(help->helper, helper); out: return ret; } --- linux-3.2.0.orig/net/netfilter/nf_log.c +++ linux-3.2.0/net/netfilter/nf_log.c @@ -55,7 +55,7 @@ llog = rcu_dereference_protected(nf_loggers[pf], lockdep_is_held(&nf_log_mutex)); if (llog == NULL) - RCU_INIT_POINTER(nf_loggers[pf], logger); + rcu_assign_pointer(nf_loggers[pf], logger); } mutex_unlock(&nf_log_mutex); @@ -92,7 +92,7 @@ mutex_unlock(&nf_log_mutex); return -ENOENT; } - RCU_INIT_POINTER(nf_loggers[pf], logger); + rcu_assign_pointer(nf_loggers[pf], logger); mutex_unlock(&nf_log_mutex); return 0; } @@ -250,7 +250,7 @@ mutex_unlock(&nf_log_mutex); return -ENOENT; } - RCU_INIT_POINTER(nf_loggers[tindex], logger); + rcu_assign_pointer(nf_loggers[tindex], logger); mutex_unlock(&nf_log_mutex); } else { mutex_lock(&nf_log_mutex); --- linux-3.2.0.orig/net/netfilter/nf_conntrack_ecache.c +++ linux-3.2.0/net/netfilter/nf_conntrack_ecache.c @@ -91,7 +91,7 @@ ret = -EBUSY; goto out_unlock; } - RCU_INIT_POINTER(net->ct.nf_conntrack_event_cb, new); + rcu_assign_pointer(net->ct.nf_conntrack_event_cb, new); mutex_unlock(&nf_ct_ecache_mutex); return ret; @@ -128,7 +128,7 @@ ret = -EBUSY; goto out_unlock; } - RCU_INIT_POINTER(net->ct.nf_expect_event_cb, new); + rcu_assign_pointer(net->ct.nf_expect_event_cb, new); mutex_unlock(&nf_ct_ecache_mutex); return ret; --- linux-3.2.0.orig/net/netfilter/nf_conntrack_proto_tcp.c +++ linux-3.2.0/net/netfilter/nf_conntrack_proto_tcp.c @@ -159,21 +159,18 @@ * sCL -> sSS */ /* sNO, sSS, sSR, sES, sFW, sCW, sLA, sTW, sCL, sS2 */ -/*synack*/ { sIV, sIV, sIG, sIG, sIG, sIG, sIG, sIG, sIG, sSR }, +/*synack*/ { sIV, sIV, sSR, sIV, sIV, sIV, sIV, sIV, sIV, sSR }, /* * sNO -> sIV Too late and no reason to do anything * sSS -> sIV Client can't send SYN and then SYN/ACK * sS2 -> sSR SYN/ACK sent to SYN2 in simultaneous open - * sSR -> sIG - * sES -> sIG Error: SYNs in window outside the SYN_SENT state - * are errors. Receiver will reply with RST - * and close the connection. - * Or we are not in sync and hold a dead connection. - * sFW -> sIG - * sCW -> sIG - * sLA -> sIG - * sTW -> sIG - * sCL -> sIG + * sSR -> sSR Late retransmitted SYN/ACK in simultaneous open + * sES -> sIV Invalid SYN/ACK packets sent by the client + * sFW -> sIV + * sCW -> sIV + * sLA -> sIV + * sTW -> sIV + * sCL -> sIV */ /* sNO, sSS, sSR, sES, sFW, sCW, sLA, sTW, sCL, sS2 */ /*fin*/ { sIV, sIV, sFW, sFW, sLA, sLA, sLA, sTW, sCL, sIV }, @@ -628,15 +625,9 @@ ack = sack = receiver->td_end; } - if (seq == end - && (!tcph->rst - || (seq == 0 && state->state == TCP_CONNTRACK_SYN_SENT))) + if (tcph->rst && seq == 0 && state->state == TCP_CONNTRACK_SYN_SENT) /* - * Packets contains no data: we assume it is valid - * and check the ack value only. - * However RST segments are always validated by their - * SEQ number, except when seq == 0 (reset sent answering - * SYN. + * RST sent answering SYN. */ seq = end = sender->td_end; --- linux-3.2.0.orig/net/netfilter/xt_hashlimit.c +++ linux-3.2.0/net/netfilter/xt_hashlimit.c @@ -389,8 +389,7 @@ #define CREDITS_PER_JIFFY POW2_BELOW32(MAX_CPJ) /* Precision saver. */ -static inline u_int32_t -user2credits(u_int32_t user) +static u32 user2credits(u32 user) { /* If multiplying would overflow... */ if (user > 0xFFFFFFFF / (HZ*CREDITS_PER_JIFFY)) @@ -400,7 +399,7 @@ return (user * HZ * CREDITS_PER_JIFFY) / XT_HASHLIMIT_SCALE; } -static inline void rateinfo_recalc(struct dsthash_ent *dh, unsigned long now) +static void rateinfo_recalc(struct dsthash_ent *dh, unsigned long now) { dh->rateinfo.credit += (now - dh->rateinfo.prev) * CREDITS_PER_JIFFY; if (dh->rateinfo.credit > dh->rateinfo.credit_cap) @@ -531,8 +530,7 @@ dh->rateinfo.prev = jiffies; dh->rateinfo.credit = user2credits(hinfo->cfg.avg * hinfo->cfg.burst); - dh->rateinfo.credit_cap = user2credits(hinfo->cfg.avg * - hinfo->cfg.burst); + dh->rateinfo.credit_cap = dh->rateinfo.credit; dh->rateinfo.cost = user2credits(hinfo->cfg.avg); } else { /* update expiration timeout */ --- linux-3.2.0.orig/net/netfilter/nf_conntrack_extend.c +++ linux-3.2.0/net/netfilter/nf_conntrack_extend.c @@ -169,7 +169,7 @@ before updating alloc_size */ type->alloc_size = ALIGN(sizeof(struct nf_ct_ext), type->align) + type->len; - RCU_INIT_POINTER(nf_ct_ext_types[type->id], type); + rcu_assign_pointer(nf_ct_ext_types[type->id], type); update_alloc_size(type); out: mutex_unlock(&nf_ct_ext_type_mutex); --- linux-3.2.0.orig/net/netfilter/xt_limit.c +++ linux-3.2.0/net/netfilter/xt_limit.c @@ -88,8 +88,7 @@ } /* Precision saver. */ -static u_int32_t -user2credits(u_int32_t user) +static u32 user2credits(u32 user) { /* If multiplying would overflow... */ if (user > 0xFFFFFFFF / (HZ*CREDITS_PER_JIFFY)) @@ -118,12 +117,12 @@ /* For SMP, we only want to use one set of state. */ r->master = priv; + /* User avg in seconds * XT_LIMIT_SCALE: convert to jiffies * + 128. */ + priv->prev = jiffies; + priv->credit = user2credits(r->avg * r->burst); /* Credits full. */ if (r->cost == 0) { - /* User avg in seconds * XT_LIMIT_SCALE: convert to jiffies * - 128. */ - priv->prev = jiffies; - priv->credit = user2credits(r->avg * r->burst); /* Credits full. */ - r->credit_cap = user2credits(r->avg * r->burst); /* Credits full. */ + r->credit_cap = priv->credit; /* Credits full. */ r->cost = user2credits(r->avg); } return 0; --- linux-3.2.0.orig/net/netfilter/nf_conntrack_expect.c +++ linux-3.2.0/net/netfilter/nf_conntrack_expect.c @@ -366,23 +366,6 @@ } } -static inline int refresh_timer(struct nf_conntrack_expect *i) -{ - struct nf_conn_help *master_help = nfct_help(i->master); - const struct nf_conntrack_expect_policy *p; - - if (!del_timer(&i->timeout)) - return 0; - - p = &rcu_dereference_protected( - master_help->helper, - lockdep_is_held(&nf_conntrack_lock) - )->expect_policy[i->class]; - i->timeout.expires = jiffies + p->timeout * HZ; - add_timer(&i->timeout); - return 1; -} - static inline int __nf_ct_expect_check(struct nf_conntrack_expect *expect) { const struct nf_conntrack_expect_policy *p; @@ -390,7 +373,7 @@ struct nf_conn *master = expect->master; struct nf_conn_help *master_help = nfct_help(master); struct net *net = nf_ct_exp_net(expect); - struct hlist_node *n; + struct hlist_node *n, *next; unsigned int h; int ret = 1; @@ -401,12 +384,12 @@ goto out; } h = nf_ct_expect_dst_hash(&expect->tuple); - hlist_for_each_entry(i, n, &net->ct.expect_hash[h], hnode) { + hlist_for_each_entry_safe(i, n, next, &net->ct.expect_hash[h], hnode) { if (expect_matches(i, expect)) { - /* Refresh timer: if it's dying, ignore.. */ - if (refresh_timer(i)) { - ret = 0; - goto out; + if (del_timer(&i->timeout)) { + nf_ct_unlink_expect(i); + nf_ct_expect_put(i); + break; } } else if (expect_clash(i, expect)) { ret = -EBUSY; --- linux-3.2.0.orig/net/netfilter/nf_conntrack_netlink.c +++ linux-3.2.0/net/netfilter/nf_conntrack_netlink.c @@ -1163,7 +1163,7 @@ return -EOPNOTSUPP; } - RCU_INIT_POINTER(help->helper, helper); + rcu_assign_pointer(help->helper, helper); return 0; } --- linux-3.2.0.orig/net/netfilter/nf_queue.c +++ linux-3.2.0/net/netfilter/nf_queue.c @@ -40,7 +40,7 @@ else if (old) ret = -EBUSY; else { - RCU_INIT_POINTER(queue_handler[pf], qh); + rcu_assign_pointer(queue_handler[pf], qh); ret = 0; } mutex_unlock(&queue_handler_mutex); --- linux-3.2.0.orig/net/netfilter/ipvs/ip_vs_core.c +++ linux-3.2.0/net/netfilter/ipvs/ip_vs_core.c @@ -232,6 +232,7 @@ __be16 dport = 0; /* destination port to forward */ unsigned int flags; struct ip_vs_conn_param param; + const union nf_inet_addr fwmark = { .ip = htonl(svc->fwmark) }; union nf_inet_addr snet; /* source network of the client, after masking */ @@ -267,7 +268,6 @@ { int protocol = iph.protocol; const union nf_inet_addr *vaddr = &iph.daddr; - const union nf_inet_addr fwmark = { .ip = htonl(svc->fwmark) }; __be16 vport = 0; if (dst_port == svc->port) { --- linux-3.2.0.orig/net/netfilter/ipvs/ip_vs_ctl.c +++ linux-3.2.0/net/netfilter/ipvs/ip_vs_ctl.c @@ -2713,6 +2713,7 @@ { struct ip_vs_timeout_user t; + memset(&t, 0, sizeof(t)); __ip_vs_get_timeouts(net, &t); if (copy_to_user(user, &t, sizeof(t)) != 0) ret = -EFAULT; --- linux-3.2.0.orig/net/netfilter/ipvs/ip_vs_pe_sip.c +++ linux-3.2.0/net/netfilter/ipvs/ip_vs_pe_sip.c @@ -37,14 +37,10 @@ if (ret > 0) break; if (!ret) - return 0; + return -EINVAL; dataoff += *matchoff; } - /* Empty callid is useless */ - if (!*matchlen) - return -EINVAL; - /* Too large is useless */ if (*matchlen > IP_VS_PEDATA_MAXLEN) return -EINVAL; --- linux-3.2.0.orig/net/packet/af_packet.c +++ linux-3.2.0/net/packet/af_packet.c @@ -813,37 +813,27 @@ smp_rmb(); - if (likely(TP_STATUS_KERNEL == BLOCK_STATUS(pbd1))) { - - /* We could have just memset this but we will lose the - * flexibility of making the priv area sticky - */ - BLOCK_SNUM(pbd1) = pkc1->knxt_seq_num++; - BLOCK_NUM_PKTS(pbd1) = 0; - BLOCK_LEN(pbd1) = BLK_PLUS_PRIV(pkc1->blk_sizeof_priv); - getnstimeofday(&ts); - h1->ts_first_pkt.ts_sec = ts.tv_sec; - h1->ts_first_pkt.ts_nsec = ts.tv_nsec; - pkc1->pkblk_start = (char *)pbd1; - pkc1->nxt_offset = (char *)(pkc1->pkblk_start + - BLK_PLUS_PRIV(pkc1->blk_sizeof_priv)); - BLOCK_O2FP(pbd1) = (__u32)BLK_PLUS_PRIV(pkc1->blk_sizeof_priv); - BLOCK_O2PRIV(pbd1) = BLK_HDR_LEN; - pbd1->version = pkc1->version; - pkc1->prev = pkc1->nxt_offset; - pkc1->pkblk_end = pkc1->pkblk_start + pkc1->kblk_size; - prb_thaw_queue(pkc1); - _prb_refresh_rx_retire_blk_timer(pkc1); - - smp_wmb(); - - return; - } + /* We could have just memset this but we will lose the + * flexibility of making the priv area sticky + */ + BLOCK_SNUM(pbd1) = pkc1->knxt_seq_num++; + BLOCK_NUM_PKTS(pbd1) = 0; + BLOCK_LEN(pbd1) = BLK_PLUS_PRIV(pkc1->blk_sizeof_priv); + getnstimeofday(&ts); + h1->ts_first_pkt.ts_sec = ts.tv_sec; + h1->ts_first_pkt.ts_nsec = ts.tv_nsec; + pkc1->pkblk_start = (char *)pbd1; + pkc1->nxt_offset = (char *)(pkc1->pkblk_start + + BLK_PLUS_PRIV(pkc1->blk_sizeof_priv)); + BLOCK_O2FP(pbd1) = (__u32)BLK_PLUS_PRIV(pkc1->blk_sizeof_priv); + BLOCK_O2PRIV(pbd1) = BLK_HDR_LEN; + pbd1->version = pkc1->version; + pkc1->prev = pkc1->nxt_offset; + pkc1->pkblk_end = pkc1->pkblk_start + pkc1->kblk_size; + prb_thaw_queue(pkc1); + _prb_refresh_rx_retire_blk_timer(pkc1); - WARN(1, "ERROR block:%p is NOT FREE status:%d kactive_blk_num:%d\n", - pbd1, BLOCK_STATUS(pbd1), pkc1->kactive_blk_num); - dump_stack(); - BUG(); + smp_wmb(); } /* @@ -934,10 +924,6 @@ prb_close_block(pkc, pbd, po, status); return; } - - WARN(1, "ERROR-pbd[%d]:%p\n", pkc->kactive_blk_num, pbd); - dump_stack(); - BUG(); } static int prb_curr_blk_in_use(struct tpacket_kbdq_core *pkc, @@ -1281,6 +1267,14 @@ spin_unlock(&f->lock); } +bool match_fanout_group(struct packet_type *ptype, struct sock * sk) +{ + if (ptype->af_packet_priv == (void*)((struct packet_sock *)sk)->fanout) + return true; + + return false; +} + static int fanout_add(struct sock *sk, u16 id, u16 type_flags) { struct packet_sock *po = pkt_sk(sk); @@ -1333,6 +1327,7 @@ match->prot_hook.dev = po->prot_hook.dev; match->prot_hook.func = packet_rcv_fanout; match->prot_hook.af_packet_priv = match; + match->prot_hook.id_match = match_fanout_group; dev_add_pack(&match->prot_hook); list_add(&match->list, &fanout_list); } @@ -1931,7 +1926,6 @@ if (likely(po->tx_ring.pg_vec)) { ph = skb_shinfo(skb)->destructor_arg; - BUG_ON(__packet_get_status(po, ph) != TP_STATUS_SENDING); BUG_ON(atomic_read(&po->tx_ring.pending) == 0); atomic_dec(&po->tx_ring.pending); __packet_set_status(po, ph, TP_STATUS_AVAILABLE); @@ -2414,13 +2408,15 @@ packet_flush_mclist(sk); - memset(&req_u, 0, sizeof(req_u)); - - if (po->rx_ring.pg_vec) + if (po->rx_ring.pg_vec) { + memset(&req_u, 0, sizeof(req_u)); packet_set_ring(sk, &req_u, 1, 0); + } - if (po->tx_ring.pg_vec) + if (po->tx_ring.pg_vec) { + memset(&req_u, 0, sizeof(req_u)); packet_set_ring(sk, &req_u, 1, 1); + } fanout_release(sk); @@ -2824,12 +2820,11 @@ return -EOPNOTSUPP; uaddr->sa_family = AF_PACKET; + memset(uaddr->sa_data, 0, sizeof(uaddr->sa_data)); rcu_read_lock(); dev = dev_get_by_index_rcu(sock_net(sk), pkt_sk(sk)->ifindex); if (dev) - strncpy(uaddr->sa_data, dev->name, 14); - else - memset(uaddr->sa_data, 0, 14); + strlcpy(uaddr->sa_data, dev->name, sizeof(uaddr->sa_data)); rcu_read_unlock(); *uaddr_len = sizeof(*uaddr); --- linux-3.2.0.orig/net/bluetooth/af_bluetooth.c +++ linux-3.2.0/net/bluetooth/af_bluetooth.c @@ -245,6 +245,8 @@ if (flags & (MSG_OOB)) return -EOPNOTSUPP; + msg->msg_namelen = 0; + skb = skb_recv_datagram(sk, flags, noblock, &err); if (!skb) { if (sk->sk_shutdown & RCV_SHUTDOWN) @@ -252,8 +254,6 @@ return err; } - msg->msg_namelen = 0; - copied = skb->len; if (len < copied) { msg->msg_flags |= MSG_TRUNC; --- linux-3.2.0.orig/net/bluetooth/smp.c +++ linux-3.2.0/net/bluetooth/smp.c @@ -30,6 +30,8 @@ #define SMP_TIMEOUT 30000 /* 30 seconds */ +#define AUTH_REQ_MASK 0x07 + static inline void swap128(u8 src[16], u8 dst[16]) { int i; @@ -206,7 +208,7 @@ req->max_key_size = SMP_MAX_ENC_KEY_SIZE; req->init_key_dist = dist_keys; req->resp_key_dist = dist_keys; - req->auth_req = authreq; + req->auth_req = (authreq & AUTH_REQ_MASK); return; } @@ -215,7 +217,7 @@ rsp->max_key_size = SMP_MAX_ENC_KEY_SIZE; rsp->init_key_dist = req->init_key_dist & dist_keys; rsp->resp_key_dist = req->resp_key_dist & dist_keys; - rsp->auth_req = authreq; + rsp->auth_req = (authreq & AUTH_REQ_MASK); } static u8 check_enc_key_size(struct l2cap_conn *conn, __u8 max_key_size) @@ -554,9 +556,9 @@ return 0; } -int smp_conn_security(struct l2cap_conn *conn, __u8 sec_level) +int smp_conn_security(struct hci_conn *hcon, __u8 sec_level) { - struct hci_conn *hcon = conn->hcon; + struct l2cap_conn *conn = hcon->l2cap_data; struct smp_chan *smp = conn->smp_chan; BT_DBG("conn %p hcon %p level 0x%2.2x", conn, hcon, sec_level); @@ -640,6 +642,19 @@ skb_pull(skb, sizeof(code)); + /* + * The SMP context must be initialized for all other PDUs except + * pairing and security requests. If we get any other PDU when + * not initialized simply disconnect (done if this function + * returns an error). + */ + if (code != SMP_CMD_PAIRING_REQ && code != SMP_CMD_SECURITY_REQ && + !conn->smp_chan) { + BT_ERR("Unexpected SMP command 0x%02x. Disconnecting.", code); + kfree_skb(skb); + return -ENOTSUPP; + } + switch (code) { case SMP_CMD_PAIRING_REQ: reason = smp_cmd_pairing_req(conn, skb); --- linux-3.2.0.orig/net/bluetooth/hci_event.c +++ linux-3.2.0/net/bluetooth/hci_event.c @@ -1411,7 +1411,13 @@ if (conn->type == ACL_LINK) { conn->state = BT_CONFIG; hci_conn_hold(conn); - conn->disc_timeout = HCI_DISCONN_TIMEOUT; + + if (!conn->out && + !(conn->ssp_mode && conn->hdev->ssp_mode) && + !hci_find_link_key(hdev, &ev->bdaddr)) + conn->disc_timeout = HCI_PAIRING_TIMEOUT; + else + conn->disc_timeout = HCI_DISCONN_TIMEOUT; mgmt_connected(hdev->id, &ev->bdaddr, conn->type); } else conn->state = BT_CONNECTED; @@ -1966,7 +1972,7 @@ if (ev->opcode != HCI_OP_NOP) del_timer(&hdev->cmd_timer); - if (ev->ncmd) { + if (ev->ncmd && !test_bit(HCI_RESET, &hdev->flags)) { atomic_set(&hdev->cmd_cnt, 1); if (!skb_queue_empty(&hdev->cmd_q)) tasklet_schedule(&hdev->cmd_task); --- linux-3.2.0.orig/net/bluetooth/hci_sock.c +++ linux-3.2.0/net/bluetooth/hci_sock.c @@ -388,6 +388,7 @@ *addr_len = sizeof(*haddr); haddr->hci_family = AF_BLUETOOTH; haddr->hci_dev = hdev->id; + haddr->hci_channel= 0; release_sock(sk); return 0; @@ -671,6 +672,7 @@ { struct hci_filter *f = &hci_pi(sk)->filter; + memset(&uf, 0, sizeof(uf)); uf.type_mask = f->type_mask; uf.opcode = f->opcode; uf.event_mask[0] = *((u32 *) f->event_mask + 0); --- linux-3.2.0.orig/net/bluetooth/hci_core.c +++ linux-3.2.0/net/bluetooth/hci_core.c @@ -510,6 +510,11 @@ hci_req_lock(hdev); + if (test_bit(HCI_UNREGISTER, &hdev->flags)) { + ret = -ENODEV; + goto done; + } + if (hdev->rfkill && rfkill_blocked(hdev->rfkill)) { ret = -ERFKILL; goto done; @@ -577,6 +582,8 @@ done: hci_req_unlock(hdev); hci_dev_put(hdev); + if (!ret && hdev->load_firmware) + hdev->load_firmware(hdev); return ret; } @@ -1540,6 +1547,8 @@ BT_DBG("%p name %s bus %d", hdev, hdev->name, hdev->bus); + set_bit(HCI_UNREGISTER, &hdev->flags); + write_lock_bh(&hci_dev_list_lock); list_del(&hdev->list); write_unlock_bh(&hci_dev_list_lock); --- linux-3.2.0.orig/net/bluetooth/l2cap_sock.c +++ linux-3.2.0/net/bluetooth/l2cap_sock.c @@ -293,6 +293,7 @@ BT_DBG("sock %p, sk %p", sock, sk); + memset(la, 0, sizeof(struct sockaddr_l2)); addr->sa_family = AF_BLUETOOTH; *len = sizeof(struct sockaddr_l2); @@ -615,7 +616,7 @@ break; } - if (smp_conn_security(conn, sec.level)) + if (smp_conn_security(conn->hcon, sec.level)) break; err = 0; --- linux-3.2.0.orig/net/bluetooth/l2cap_core.c +++ linux-3.2.0/net/bluetooth/l2cap_core.c @@ -862,6 +862,7 @@ write_lock_bh(&conn->chan_lock); hci_conn_hold(conn->hcon); + conn->hcon->disc_timeout = HCI_DISCONN_TIMEOUT; bacpy(&bt_sk(sk)->src, conn->src); bacpy(&bt_sk(sk)->dst, conn->dst); @@ -901,14 +902,15 @@ static void l2cap_conn_ready(struct l2cap_conn *conn) { struct l2cap_chan *chan; + struct hci_conn *hcon = conn->hcon; BT_DBG("conn %p", conn); - if (!conn->hcon->out && conn->hcon->type == LE_LINK) + if (!hcon->out && hcon->type == LE_LINK) l2cap_le_conn_ready(conn); - if (conn->hcon->out && conn->hcon->type == LE_LINK) - smp_conn_security(conn, conn->hcon->pending_sec_level); + if (hcon->out && hcon->type == LE_LINK) + smp_conn_security(hcon, hcon->pending_sec_level); read_lock(&conn->chan_lock); @@ -917,8 +919,8 @@ bh_lock_sock(sk); - if (conn->hcon->type == LE_LINK) { - if (smp_conn_security(conn, chan->sec_level)) + if (hcon->type == LE_LINK) { + if (smp_conn_security(hcon, chan->sec_level)) l2cap_chan_ready(sk); } else if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) { @@ -1735,6 +1737,9 @@ BT_DBG("conn %p, code 0x%2.2x, ident 0x%2.2x, len %d", conn, code, ident, dlen); + if (conn->mtu < L2CAP_HDR_SIZE + L2CAP_CMD_HDR_SIZE) + return NULL; + len = L2CAP_HDR_SIZE + L2CAP_CMD_HDR_SIZE + dlen; count = min_t(unsigned int, conn->mtu, len); @@ -2263,12 +2268,14 @@ while (len >= L2CAP_CONF_OPT_SIZE) { len -= l2cap_get_conf_opt(&rsp, &type, &olen, &val); - switch (type) { - case L2CAP_CONF_RFC: - if (olen == sizeof(rfc)) - memcpy(&rfc, (void *)val, olen); - goto done; - } + if (type != L2CAP_CONF_RFC) + continue; + + if (olen != sizeof(rfc)) + break; + + memcpy(&rfc, (void *)val, olen); + goto done; } /* Use sane default values in case a misbehaving remote device @@ -2293,10 +2300,15 @@ } } -static inline int l2cap_command_rej(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u8 *data) +static inline int l2cap_command_rej(struct l2cap_conn *conn, + struct l2cap_cmd_hdr *cmd, u16 cmd_len, + u8 *data) { struct l2cap_cmd_rej_unk *rej = (struct l2cap_cmd_rej_unk *) data; + if (cmd_len < sizeof(*rej)) + return -EPROTO; + if (rej->reason != L2CAP_REJ_NOT_UNDERSTOOD) return 0; @@ -2313,7 +2325,8 @@ return 0; } -static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u8 *data) +static int l2cap_connect_req(struct l2cap_conn *conn, + struct l2cap_cmd_hdr *cmd, u16 cmd_len, u8 *data) { struct l2cap_conn_req *req = (struct l2cap_conn_req *) data; struct l2cap_conn_rsp rsp; @@ -2321,8 +2334,14 @@ struct sock *parent, *sk = NULL; int result, status = L2CAP_CS_NO_INFO; - u16 dcid = 0, scid = __le16_to_cpu(req->scid); - __le16 psm = req->psm; + u16 dcid = 0, scid; + __le16 psm; + + if (cmd_len < sizeof(struct l2cap_conn_req)) + return -EPROTO; + + scid = __le16_to_cpu(req->scid); + psm = req->psm; BT_DBG("psm 0x%2.2x scid 0x%4.4x", psm, scid); @@ -2447,7 +2466,9 @@ return 0; } -static inline int l2cap_connect_rsp(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u8 *data) +static int l2cap_connect_rsp(struct l2cap_conn *conn, + struct l2cap_cmd_hdr *cmd, u16 cmd_len, + u8 *data) { struct l2cap_conn_rsp *rsp = (struct l2cap_conn_rsp *) data; u16 scid, dcid, result, status; @@ -2455,6 +2476,9 @@ struct sock *sk; u8 req[128]; + if (cmd_len < sizeof(*rsp)) + return -EPROTO; + scid = __le16_to_cpu(rsp->scid); dcid = __le16_to_cpu(rsp->dcid); result = __le16_to_cpu(rsp->result); @@ -2530,6 +2554,9 @@ struct sock *sk; int len; + if (cmd_len < sizeof(*req)) + return -EPROTO; + dcid = __le16_to_cpu(req->dcid); flags = __le16_to_cpu(req->flags); @@ -2555,7 +2582,7 @@ /* Reject if config buffer is too small. */ len = cmd_len - sizeof(*req); - if (len < 0 || chan->conf_len + len > sizeof(chan->conf_req)) { + if (chan->conf_len + len > sizeof(chan->conf_req)) { l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP, l2cap_build_conf_rsp(chan, rsp, L2CAP_CONF_REJECT, flags), rsp); @@ -2617,13 +2644,18 @@ return 0; } -static inline int l2cap_config_rsp(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u8 *data) +static inline int l2cap_config_rsp(struct l2cap_conn *conn, + struct l2cap_cmd_hdr *cmd, u16 cmd_len, + u8 *data) { struct l2cap_conf_rsp *rsp = (struct l2cap_conf_rsp *)data; u16 scid, flags, result; struct l2cap_chan *chan; struct sock *sk; - int len = cmd->len - sizeof(*rsp); + int len = cmd_len - sizeof(*rsp); + + if (cmd_len < sizeof(*rsp)) + return -EPROTO; scid = __le16_to_cpu(rsp->scid); flags = __le16_to_cpu(rsp->flags); @@ -2699,7 +2731,9 @@ return 0; } -static inline int l2cap_disconnect_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u8 *data) +static inline int l2cap_disconnect_req(struct l2cap_conn *conn, + struct l2cap_cmd_hdr *cmd, u16 cmd_len, + u8 *data) { struct l2cap_disconn_req *req = (struct l2cap_disconn_req *) data; struct l2cap_disconn_rsp rsp; @@ -2707,6 +2741,9 @@ struct l2cap_chan *chan; struct sock *sk; + if (cmd_len != sizeof(*req)) + return -EPROTO; + scid = __le16_to_cpu(req->scid); dcid = __le16_to_cpu(req->dcid); @@ -2740,13 +2777,18 @@ return 0; } -static inline int l2cap_disconnect_rsp(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u8 *data) +static inline int l2cap_disconnect_rsp(struct l2cap_conn *conn, + struct l2cap_cmd_hdr *cmd, u16 cmd_len, + u8 *data) { struct l2cap_disconn_rsp *rsp = (struct l2cap_disconn_rsp *) data; u16 dcid, scid; struct l2cap_chan *chan; struct sock *sk; + if (cmd_len != sizeof(*rsp)) + return -EPROTO; + scid = __le16_to_cpu(rsp->scid); dcid = __le16_to_cpu(rsp->dcid); @@ -2774,11 +2816,16 @@ return 0; } -static inline int l2cap_information_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u8 *data) +static inline int l2cap_information_req(struct l2cap_conn *conn, + struct l2cap_cmd_hdr *cmd, u16 cmd_len, + u8 *data) { struct l2cap_info_req *req = (struct l2cap_info_req *) data; u16 type; + if (cmd_len != sizeof(*req)) + return -EPROTO; + type = __le16_to_cpu(req->type); BT_DBG("type 0x%4.4x", type); @@ -2814,11 +2861,16 @@ return 0; } -static inline int l2cap_information_rsp(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u8 *data) +static inline int l2cap_information_rsp(struct l2cap_conn *conn, + struct l2cap_cmd_hdr *cmd, u16 cmd_len, + u8 *data) { struct l2cap_info_rsp *rsp = (struct l2cap_info_rsp *) data; u16 type, result; + if (cmd_len < sizeof(*rsp)) + return -EPROTO; + type = __le16_to_cpu(rsp->type); result = __le16_to_cpu(rsp->result); @@ -2937,15 +2989,15 @@ switch (cmd->code) { case L2CAP_COMMAND_REJ: - l2cap_command_rej(conn, cmd, data); + l2cap_command_rej(conn, cmd, cmd_len, data); break; case L2CAP_CONN_REQ: - err = l2cap_connect_req(conn, cmd, data); + err = l2cap_connect_req(conn, cmd, cmd_len, data); break; case L2CAP_CONN_RSP: - err = l2cap_connect_rsp(conn, cmd, data); + err = l2cap_connect_rsp(conn, cmd, cmd_len, data); break; case L2CAP_CONF_REQ: @@ -2953,15 +3005,15 @@ break; case L2CAP_CONF_RSP: - err = l2cap_config_rsp(conn, cmd, data); + err = l2cap_config_rsp(conn, cmd, cmd_len, data); break; case L2CAP_DISCONN_REQ: - err = l2cap_disconnect_req(conn, cmd, data); + err = l2cap_disconnect_req(conn, cmd, cmd_len, data); break; case L2CAP_DISCONN_RSP: - err = l2cap_disconnect_rsp(conn, cmd, data); + err = l2cap_disconnect_rsp(conn, cmd, cmd_len, data); break; case L2CAP_ECHO_REQ: @@ -2972,11 +3024,11 @@ break; case L2CAP_INFO_REQ: - err = l2cap_information_req(conn, cmd, data); + err = l2cap_information_req(conn, cmd, cmd_len, data); break; case L2CAP_INFO_RSP: - err = l2cap_information_rsp(conn, cmd, data); + err = l2cap_information_rsp(conn, cmd, cmd_len, data); break; default: --- linux-3.2.0.orig/net/bluetooth/hci_conn.c +++ linux-3.2.0/net/bluetooth/hci_conn.c @@ -44,6 +44,7 @@ #include #include +#include static void hci_le_connect(struct hci_conn *conn) { @@ -608,6 +609,10 @@ if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->pend)) { struct hci_cp_auth_requested cp; + + /* encrypt must be pending if auth is also pending */ + set_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend); + cp.handle = cpu_to_le16(conn->handle); hci_send_cmd(conn->hdev, HCI_OP_AUTH_REQUESTED, sizeof(cp), &cp); @@ -637,6 +642,11 @@ { BT_DBG("conn %p", conn); +#ifdef CONFIG_BT_L2CAP + if (conn->type == LE_LINK) + return smp_conn_security(conn, sec_level); +#endif + /* For sdp we don't need the link key. */ if (sec_level == BT_SECURITY_SDP) return 1; --- linux-3.2.0.orig/net/bluetooth/hidp/core.c +++ linux-3.2.0/net/bluetooth/hidp/core.c @@ -945,7 +945,7 @@ hid->version = req->version; hid->country = req->country; - strncpy(hid->name, req->name, 128); + strncpy(hid->name, req->name, sizeof(req->name) - 1); strncpy(hid->phys, batostr(&bt_sk(session->ctrl_sock->sk)->src), 64); strncpy(hid->uniq, batostr(&bt_sk(session->ctrl_sock->sk)->dst), 64); --- linux-3.2.0.orig/net/bluetooth/rfcomm/sock.c +++ linux-3.2.0/net/bluetooth/rfcomm/sock.c @@ -486,7 +486,7 @@ long timeo; int err = 0; - lock_sock(sk); + lock_sock_nested(sk, SINGLE_DEPTH_NESTING); if (sk->sk_type != SOCK_STREAM) { err = -EINVAL; @@ -523,7 +523,7 @@ release_sock(sk); timeo = schedule_timeout(timeo); - lock_sock(sk); + lock_sock_nested(sk, SINGLE_DEPTH_NESTING); } __set_current_state(TASK_RUNNING); remove_wait_queue(sk_sleep(sk), &wait); @@ -547,6 +547,7 @@ BT_DBG("sock %p, sk %p", sock, sk); + memset(sa, 0, sizeof(*sa)); sa->rc_family = AF_BLUETOOTH; sa->rc_channel = rfcomm_pi(sk)->channel; if (peer) @@ -626,6 +627,7 @@ if (test_and_clear_bit(RFCOMM_DEFER_SETUP, &d->flags)) { rfcomm_dlc_accept(d); + msg->msg_namelen = 0; return 0; } @@ -835,6 +837,7 @@ } sec.level = rfcomm_pi(sk)->sec_level; + sec.key_size = 0; len = min_t(unsigned int, len, sizeof(sec)); if (copy_to_user(optval, (char *) &sec, len)) --- linux-3.2.0.orig/net/bluetooth/rfcomm/tty.c +++ linux-3.2.0/net/bluetooth/rfcomm/tty.c @@ -471,7 +471,7 @@ size = sizeof(*dl) + dev_num * sizeof(*di); - dl = kmalloc(size, GFP_KERNEL); + dl = kzalloc(size, GFP_KERNEL); if (!dl) return -ENOMEM; --- linux-3.2.0.orig/net/dcb/dcbnl.c +++ linux-3.2.0/net/dcb/dcbnl.c @@ -336,6 +336,7 @@ dcb->dcb_family = AF_UNSPEC; dcb->cmd = DCB_CMD_GPERM_HWADDR; + memset(perm_addr, 0, sizeof(perm_addr)); netdev->dcbnl_ops->getpermhwaddr(netdev, perm_addr); ret = nla_put(dcbnl_skb, DCB_ATTR_PERM_HWADDR, sizeof(perm_addr), @@ -1238,6 +1239,7 @@ if (ops->ieee_getets) { struct ieee_ets ets; + memset(&ets, 0, sizeof(ets)); err = ops->ieee_getets(netdev, &ets); if (!err) NLA_PUT(skb, DCB_ATTR_IEEE_ETS, sizeof(ets), &ets); @@ -1245,6 +1247,7 @@ if (ops->ieee_getpfc) { struct ieee_pfc pfc; + memset(&pfc, 0, sizeof(pfc)); err = ops->ieee_getpfc(netdev, &pfc); if (!err) NLA_PUT(skb, DCB_ATTR_IEEE_PFC, sizeof(pfc), &pfc); @@ -1277,6 +1280,7 @@ /* get peer info if available */ if (ops->ieee_peer_getets) { struct ieee_ets ets; + memset(&ets, 0, sizeof(ets)); err = ops->ieee_peer_getets(netdev, &ets); if (!err) NLA_PUT(skb, DCB_ATTR_IEEE_PEER_ETS, sizeof(ets), &ets); @@ -1284,6 +1288,7 @@ if (ops->ieee_peer_getpfc) { struct ieee_pfc pfc; + memset(&pfc, 0, sizeof(pfc)); err = ops->ieee_peer_getpfc(netdev, &pfc); if (!err) NLA_PUT(skb, DCB_ATTR_IEEE_PEER_PFC, sizeof(pfc), &pfc); @@ -1463,6 +1468,7 @@ /* peer info if available */ if (ops->cee_peer_getpg) { struct cee_pg pg; + memset(&pg, 0, sizeof(pg)); err = ops->cee_peer_getpg(netdev, &pg); if (!err) NLA_PUT(skb, DCB_ATTR_CEE_PEER_PG, sizeof(pg), &pg); @@ -1470,6 +1476,7 @@ if (ops->cee_peer_getpfc) { struct cee_pfc pfc; + memset(&pfc, 0, sizeof(pfc)); err = ops->cee_peer_getpfc(netdev, &pfc); if (!err) NLA_PUT(skb, DCB_ATTR_CEE_PEER_PFC, sizeof(pfc), &pfc); --- linux-3.2.0.orig/net/sctp/input.c +++ linux-3.2.0/net/sctp/input.c @@ -736,15 +736,12 @@ epb = &ep->base; - if (hlist_unhashed(&epb->node)) - return; - epb->hashent = sctp_ep_hashfn(epb->bind_addr.port); head = &sctp_ep_hashtable[epb->hashent]; sctp_write_lock(&head->lock); - __hlist_del(&epb->node); + hlist_del_init(&epb->node); sctp_write_unlock(&head->lock); } @@ -825,7 +822,7 @@ head = &sctp_assoc_hashtable[epb->hashent]; sctp_write_lock(&head->lock); - __hlist_del(&epb->node); + hlist_del_init(&epb->node); sctp_write_unlock(&head->lock); } --- linux-3.2.0.orig/net/sctp/socket.c +++ linux-3.2.0/net/sctp/socket.c @@ -1231,8 +1231,14 @@ SCTP_DEBUG_PRINTK("About to exit __sctp_connect() free asoc: %p" " kaddrs: %p err: %d\n", asoc, kaddrs, err); - if (asoc) + if (asoc) { + /* sctp_primitive_ASSOCIATE may have added this association + * To the hash table, try to unhash it, just in case, its a noop + * if it wasn't hashed so we're safe + */ + sctp_unhash_established(asoc); sctp_association_free(asoc); + } return err; } @@ -1902,8 +1908,8 @@ /* Break the message into multiple chunks of maximum size. */ datamsg = sctp_datamsg_from_user(asoc, sinfo, msg, msg_len); - if (!datamsg) { - err = -ENOMEM; + if (IS_ERR(datamsg)) { + err = PTR_ERR(datamsg); goto out_free; } @@ -1942,8 +1948,10 @@ goto out_unlock; out_free: - if (new_asoc) + if (new_asoc) { + sctp_unhash_established(asoc); sctp_association_free(asoc); + } out_unlock: sctp_release_sock(sk); @@ -3367,7 +3375,7 @@ ret = sctp_auth_set_key(sctp_sk(sk)->ep, asoc, authkey); out: - kfree(authkey); + kzfree(authkey); return ret; } @@ -3921,6 +3929,12 @@ /* Release our hold on the endpoint. */ sp = sctp_sk(sk); + /* This could happen during socket init, thus we bail out + * early, since the rest of the below is not setup either. + */ + if (sp->ep == NULL) + return; + if (sp->do_auto_asconf) { sp->do_auto_asconf = 0; list_del(&sp->auto_asconf_list); @@ -4133,9 +4147,10 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval, int __user *optlen) { - if (len < sizeof(struct sctp_event_subscribe)) + if (len <= 0) return -EINVAL; - len = sizeof(struct sctp_event_subscribe); + if (len > sizeof(struct sctp_event_subscribe)) + len = sizeof(struct sctp_event_subscribe); if (put_user(len, optlen)) return -EFAULT; if (copy_to_user(optval, &sctp_sk(sk)->subscribe, len)) --- linux-3.2.0.orig/net/sctp/auth.c +++ linux-3.2.0/net/sctp/auth.c @@ -71,7 +71,7 @@ return; if (atomic_dec_and_test(&key->refcnt)) { - kfree(key); + kzfree(key); SCTP_DBG_OBJCNT_DEC(keys); } } --- linux-3.2.0.orig/net/sctp/outqueue.c +++ linux-3.2.0/net/sctp/outqueue.c @@ -223,7 +223,7 @@ /* Free the outqueue structure and any related pending chunks. */ -void sctp_outq_teardown(struct sctp_outq *q) +static void __sctp_outq_teardown(struct sctp_outq *q) { struct sctp_transport *transport; struct list_head *lchunk, *temp; @@ -276,8 +276,6 @@ sctp_chunk_free(chunk); } - q->error = 0; - /* Throw away any leftover control chunks. */ list_for_each_entry_safe(chunk, tmp, &q->control_chunk_list, list) { list_del_init(&chunk->list); @@ -285,11 +283,17 @@ } } +void sctp_outq_teardown(struct sctp_outq *q) +{ + __sctp_outq_teardown(q); + sctp_outq_init(q->asoc, q); +} + /* Free the outqueue structure and any related pending chunks. */ void sctp_outq_free(struct sctp_outq *q) { /* Throw away leftover chunks. */ - sctp_outq_teardown(q); + __sctp_outq_teardown(q); /* If we were kmalloc()'d, free the memory. */ if (q->malloced) --- linux-3.2.0.orig/net/sctp/sm_statefuns.c +++ linux-3.2.0/net/sctp/sm_statefuns.c @@ -2044,7 +2044,7 @@ } /* Delete the tempory new association. */ - sctp_add_cmd_sf(commands, SCTP_CMD_NEW_ASOC, SCTP_ASOC(new_asoc)); + sctp_add_cmd_sf(commands, SCTP_CMD_SET_ASOC, SCTP_ASOC(new_asoc)); sctp_add_cmd_sf(commands, SCTP_CMD_DELETE_TCB, SCTP_NULL()); /* Restore association pointer to provide SCTP command interpeter --- linux-3.2.0.orig/net/sctp/sm_sideeffect.c +++ linux-3.2.0/net/sctp/sm_sideeffect.c @@ -1604,8 +1604,9 @@ asoc->outqueue.outstanding_bytes; sackh.num_gap_ack_blocks = 0; sackh.num_dup_tsns = 0; + chunk->subh.sack_hdr = &sackh; sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_SACK, - SCTP_SACKH(&sackh)); + SCTP_CHUNK(chunk)); break; case SCTP_CMD_DISCARD_PACKET: --- linux-3.2.0.orig/net/sctp/endpointola.c +++ linux-3.2.0/net/sctp/endpointola.c @@ -248,6 +248,8 @@ /* Final destructor for endpoint. */ static void sctp_endpoint_destroy(struct sctp_endpoint *ep) { + int i; + SCTP_ASSERT(ep->base.dead, "Endpoint is not dead", return); /* Free up the HMAC transform. */ @@ -270,6 +272,9 @@ sctp_inq_free(&ep->base.inqueue); sctp_bind_addr_free(&ep->base.bind_addr); + for (i = 0; i < SCTP_HOW_MANY_SECRETS; ++i) + memset(&ep->secret_key[i], 0, SCTP_SECRET_SIZE); + /* Remove and free the port */ if (sctp_sk(ep->base.sk)->bind_hash) sctp_put_port(ep->base.sk); --- linux-3.2.0.orig/net/sctp/transport.c +++ linux-3.2.0/net/sctp/transport.c @@ -226,23 +226,6 @@ transport->pathmtu = SCTP_DEFAULT_MAXSEGMENT; } -/* this is a complete rip-off from __sk_dst_check - * the cookie is always 0 since this is how it's used in the - * pmtu code - */ -static struct dst_entry *sctp_transport_dst_check(struct sctp_transport *t) -{ - struct dst_entry *dst = t->dst; - - if (dst && dst->obsolete && dst->ops->check(dst, 0) == NULL) { - dst_release(t->dst); - t->dst = NULL; - return NULL; - } - - return dst; -} - void sctp_transport_update_pmtu(struct sctp_transport *t, u32 pmtu) { struct dst_entry *dst; --- linux-3.2.0.orig/net/sctp/chunk.c +++ linux-3.2.0/net/sctp/chunk.c @@ -183,7 +183,7 @@ msg = sctp_datamsg_new(GFP_KERNEL); if (!msg) - return NULL; + return ERR_PTR(-ENOMEM); /* Note: Calculate this outside of the loop, so that all fragments * have the same expiration. @@ -280,11 +280,14 @@ chunk = sctp_make_datafrag_empty(asoc, sinfo, len, frag, 0); - if (!chunk) + if (!chunk) { + err = -ENOMEM; goto errout; + } + err = sctp_user_addto_chunk(chunk, offset, len, msgh->msg_iov); if (err < 0) - goto errout; + goto errout_chunk_free; offset += len; @@ -315,8 +318,10 @@ chunk = sctp_make_datafrag_empty(asoc, sinfo, over, frag, 0); - if (!chunk) + if (!chunk) { + err = -ENOMEM; goto errout; + } err = sctp_user_addto_chunk(chunk, offset, over,msgh->msg_iov); @@ -324,7 +329,7 @@ __skb_pull(chunk->skb, (__u8 *)chunk->chunk_hdr - (__u8 *)chunk->skb->data); if (err < 0) - goto errout; + goto errout_chunk_free; sctp_datamsg_assign(msg, chunk); list_add_tail(&chunk->frag_list, &msg->chunks); @@ -332,6 +337,9 @@ return msg; +errout_chunk_free: + sctp_chunk_free(chunk); + errout: list_for_each_safe(pos, temp, &msg->chunks) { list_del_init(pos); @@ -339,7 +347,7 @@ sctp_chunk_free(chunk); } sctp_datamsg_put(msg); - return NULL; + return ERR_PTR(err); } /* Check whether this message has expired. */ --- linux-3.2.0.orig/net/sctp/associola.c +++ linux-3.2.0/net/sctp/associola.c @@ -1050,7 +1050,7 @@ transports) { if (transport == active) - break; + continue; list_for_each_entry(chunk, &transport->transmitted, transmitted_list) { if (key == chunk->subh.data_hdr->tsn) { --- linux-3.2.0.orig/net/sctp/output.c +++ linux-3.2.0/net/sctp/output.c @@ -334,6 +334,25 @@ return retval; } +static void sctp_packet_release_owner(struct sk_buff *skb) +{ + sk_free(skb->sk); +} + +static void sctp_packet_set_owner_w(struct sk_buff *skb, struct sock *sk) +{ + skb_orphan(skb); + skb->sk = sk; + skb->destructor = sctp_packet_release_owner; + + /* + * The data chunks have already been accounted for in sctp_sendmsg(), + * therefore only reserve a single byte to keep socket around until + * the packet has been transmitted. + */ + atomic_inc(&sk->sk_wmem_alloc); +} + /* All packets are sent to the network through this function from * sctp_outq_tail(). * @@ -375,11 +394,9 @@ /* Set the owning socket so that we know where to get the * destination IP address. */ - skb_set_owner_w(nskb, sk); + sctp_packet_set_owner_w(nskb, sk); - /* The 'obsolete' field of dst is set to 2 when a dst is freed. */ - if (!dst || (dst->obsolete > 1)) { - dst_release(dst); + if (!sctp_transport_dst_check(tp)) { sctp_transport_route(tp, NULL, sctp_sk(sk)); if (asoc && (asoc->param_flags & SPP_PMTUD_ENABLE)) { sctp_assoc_sync_pmtu(asoc); --- linux-3.2.0.orig/net/phonet/socket.c +++ linux-3.2.0/net/phonet/socket.c @@ -680,7 +680,7 @@ mutex_lock(&resource_mutex); if (pnres.sk[res] == NULL) { sock_hold(sk); - RCU_INIT_POINTER(pnres.sk[res], sk); + rcu_assign_pointer(pnres.sk[res], sk); ret = 0; } mutex_unlock(&resource_mutex); --- linux-3.2.0.orig/net/phonet/pep.c +++ linux-3.2.0/net/phonet/pep.c @@ -1046,6 +1046,9 @@ int flags = msg->msg_flags; int err, done; + if (len > USHRT_MAX) + return -EMSGSIZE; + if ((msg->msg_flags & ~(MSG_DONTWAIT|MSG_EOR|MSG_NOSIGNAL| MSG_CMSG_COMPAT)) || !(msg->msg_flags & MSG_EOR)) --- linux-3.2.0.orig/net/phonet/pn_dev.c +++ linux-3.2.0/net/phonet/pn_dev.c @@ -390,7 +390,7 @@ daddr = daddr >> 2; mutex_lock(&routes->lock); if (routes->table[daddr] == NULL) { - RCU_INIT_POINTER(routes->table[daddr], dev); + rcu_assign_pointer(routes->table[daddr], dev); dev_hold(dev); err = 0; } --- linux-3.2.0.orig/net/phonet/af_phonet.c +++ linux-3.2.0/net/phonet/af_phonet.c @@ -480,7 +480,7 @@ if (proto_tab[protocol]) err = -EBUSY; else - RCU_INIT_POINTER(proto_tab[protocol], pp); + rcu_assign_pointer(proto_tab[protocol], pp); mutex_unlock(&proto_tab_lock); return err; --- linux-3.2.0.orig/net/8021q/vlan.c +++ linux-3.2.0/net/8021q/vlan.c @@ -110,13 +110,6 @@ grp = rtnl_dereference(real_dev->vlgrp); BUG_ON(!grp); - /* Take it out of our own structures, but be sure to interlock with - * HW accelerating devices or SW vlan input packet processing if - * VLAN is not 0 (leave it there for 802.1p). - */ - if (vlan_id && (real_dev->features & NETIF_F_HW_VLAN_FILTER)) - ops->ndo_vlan_rx_kill_vid(real_dev, vlan_id); - grp->nr_vlans--; if (vlan->flags & VLAN_FLAG_GVRP) @@ -139,6 +132,13 @@ call_rcu(&grp->rcu, vlan_rcu_free); } + /* Take it out of our own structures, but be sure to interlock with + * HW accelerating devices or SW vlan input packet processing if + * VLAN is not 0 (leave it there for 802.1p). + */ + if (vlan_id && (real_dev->features & NETIF_F_HW_VLAN_FILTER)) + ops->ndo_vlan_rx_kill_vid(real_dev, vlan_id); + /* Get rid of the vlan's reference to real_dev */ dev_put(real_dev); } --- linux-3.2.0.orig/net/8021q/vlan_core.c +++ linux-3.2.0/net/8021q/vlan_core.c @@ -5,7 +5,7 @@ #include #include "vlan.h" -bool vlan_do_receive(struct sk_buff **skbp, bool last_handler) +bool vlan_do_receive(struct sk_buff **skbp) { struct sk_buff *skb = *skbp; u16 vlan_id = skb->vlan_tci & VLAN_VID_MASK; @@ -13,14 +13,8 @@ struct vlan_pcpu_stats *rx_stats; vlan_dev = vlan_find_dev(skb->dev, vlan_id); - if (!vlan_dev) { - /* Only the last call to vlan_do_receive() should change - * pkt_type to PACKET_OTHERHOST - */ - if (vlan_id && last_handler) - skb->pkt_type = PACKET_OTHERHOST; + if (!vlan_dev) return false; - } skb = *skbp = skb_share_check(skb, GFP_ATOMIC); if (unlikely(!skb)) @@ -106,7 +100,6 @@ return NULL; memmove(skb->data - ETH_HLEN, skb->data - VLAN_ETH_HLEN, 2 * ETH_ALEN); skb->mac_header += VLAN_HLEN; - skb_reset_mac_len(skb); return skb; } @@ -173,6 +166,8 @@ skb_reset_network_header(skb); skb_reset_transport_header(skb); + skb_reset_mac_len(skb); + return skb; err_free: --- linux-3.2.0.orig/net/8021q/vlan_dev.c +++ linux-3.2.0/net/8021q/vlan_dev.c @@ -72,6 +72,8 @@ { struct vlan_priority_tci_mapping *mp; + smp_rmb(); /* coupled with smp_wmb() in vlan_dev_set_egress_priority() */ + mp = vlan_dev_info(dev)->egress_priority_map[(skb->priority & 0xF)]; while (mp) { if (mp->priority == skb->priority) { @@ -156,7 +158,7 @@ skb = __vlan_hwaccel_put_tag(skb, vlan_tci); } - skb_set_dev(skb, vlan_dev_info(dev)->real_dev); + skb->dev = vlan_dev_info(dev)->real_dev; len = skb->len; ret = dev_queue_xmit(skb); @@ -232,6 +234,11 @@ np->next = mp; np->priority = skb_prio; np->vlan_qos = vlan_qos; + /* Before inserting this element in hash table, make sure all its fields + * are committed to memory. + * coupled with smp_rmb() in vlan_dev_get_egress_qos_mask() + */ + smp_wmb(); vlan->egress_priority_map[skb_prio & 0xF] = np; if (vlan_qos) vlan->nr_egress_mappings++; --- linux-3.2.0.orig/net/ieee802154/6lowpan.h +++ linux-3.2.0/net/ieee802154/6lowpan.h @@ -87,7 +87,7 @@ (memcmp(addr1, addr2, length >> 3) == 0) /* local link, i.e. FE80::/10 */ -#define is_addr_link_local(a) (((a)->s6_addr16[0]) == 0x80FE) +#define is_addr_link_local(a) (((a)->s6_addr16[0]) == htons(0xFE80)) /* * check whether we can compress the IID to 16 bits, --- linux-3.2.0.orig/net/llc/af_llc.c +++ linux-3.2.0/net/llc/af_llc.c @@ -720,6 +720,8 @@ int target; /* Read at least this many bytes */ long timeo; + msg->msg_namelen = 0; + lock_sock(sk); copied = -ENOTCONN; if (unlikely(sk->sk_type == SOCK_STREAM && sk->sk_state == TCP_LISTEN)) @@ -966,14 +968,13 @@ struct sockaddr_llc sllc; struct sock *sk = sock->sk; struct llc_sock *llc = llc_sk(sk); - int rc = 0; + int rc = -EBADF; memset(&sllc, 0, sizeof(sllc)); lock_sock(sk); if (sock_flag(sk, SOCK_ZAPPED)) goto out; *uaddrlen = sizeof(sllc); - memset(uaddr, 0, *uaddrlen); if (peer) { rc = -ENOTCONN; if (sk->sk_state != TCP_ESTABLISHED) --- linux-3.2.0.orig/net/ax25/af_ax25.c +++ linux-3.2.0/net/ax25/af_ax25.c @@ -1641,6 +1641,7 @@ ax25_address src; const unsigned char *mac = skb_mac_header(skb); + memset(sax, 0, sizeof(struct full_sockaddr_ax25)); ax25_addr_parse(mac + 1, skb->data - mac - 1, &src, NULL, &digi, NULL, NULL); sax->sax25_family = AF_AX25; @@ -2006,16 +2007,17 @@ proc_net_remove(&init_net, "ax25_route"); proc_net_remove(&init_net, "ax25"); proc_net_remove(&init_net, "ax25_calls"); - ax25_rt_free(); - ax25_uid_free(); - ax25_dev_free(); - ax25_unregister_sysctl(); unregister_netdevice_notifier(&ax25_dev_notifier); + ax25_unregister_sysctl(); dev_remove_pack(&ax25_packet_type); sock_unregister(PF_AX25); proto_unregister(&ax25_proto); + + ax25_rt_free(); + ax25_uid_free(); + ax25_dev_free(); } module_exit(ax25_exit); --- linux-3.2.0.orig/net/decnet/af_decnet.c +++ linux-3.2.0/net/decnet/af_decnet.c @@ -2354,6 +2354,8 @@ .sendpage = sock_no_sendpage, }; +void dn_register_sysctl_skeleton(void); +void dn_unregister_sysctl_skeleton(void); void dn_register_sysctl(void); void dn_unregister_sysctl(void); @@ -2374,6 +2376,7 @@ if (rc != 0) goto out; + dn_register_sysctl_skeleton(); dn_neigh_init(); dn_dev_init(); dn_route_init(); @@ -2413,6 +2416,7 @@ dn_fib_cleanup(); proc_net_remove(&init_net, "decnet"); + dn_unregister_sysctl_skeleton(); proto_unregister(&dn_proto); --- linux-3.2.0.orig/net/decnet/dn_dev.c +++ linux-3.2.0/net/decnet/dn_dev.c @@ -388,7 +388,7 @@ } ifa->ifa_next = dn_db->ifa_list; - RCU_INIT_POINTER(dn_db->ifa_list, ifa); + rcu_assign_pointer(dn_db->ifa_list, ifa); dn_ifaddr_notify(RTM_NEWADDR, ifa); blocking_notifier_call_chain(&dnaddr_chain, NETDEV_UP, ifa); @@ -1093,7 +1093,7 @@ memcpy(&dn_db->parms, p, sizeof(struct dn_dev_parms)); - RCU_INIT_POINTER(dev->dn_ptr, dn_db); + rcu_assign_pointer(dev->dn_ptr, dn_db); dn_db->dev = dev; init_timer(&dn_db->timer); --- linux-3.2.0.orig/net/decnet/sysctl_net_decnet.c +++ linux-3.2.0/net/decnet/sysctl_net_decnet.c @@ -55,6 +55,7 @@ static char node_name[7] = "???"; static struct ctl_table_header *dn_table_header = NULL; +static struct ctl_table_header *dn_skeleton_table_header = NULL; /* * ctype.h :-) @@ -357,6 +358,27 @@ { } }; +static struct ctl_table empty[1]; + +static struct ctl_table dn_skeleton[] = { + { + .procname = "conf", + .mode = 0555, + .child = empty, + }, + { } +}; + +void dn_register_sysctl_skeleton(void) +{ + dn_skeleton_table_header = register_sysctl_paths(dn_path, dn_skeleton); +} + +void dn_unregister_sysctl_skeleton(void) +{ + unregister_sysctl_table(dn_skeleton_table_header); +} + void dn_register_sysctl(void) { dn_table_header = register_sysctl_paths(dn_path, dn_table); @@ -368,6 +390,12 @@ } #else /* CONFIG_SYSCTL */ +void dn_register_sysctl_skeleton(void) +{ +} +void dn_unregister_sysctl_skeleton(void) +{ +} void dn_unregister_sysctl(void) { } --- linux-3.2.0.orig/net/bridge/br_stp_timer.c +++ linux-3.2.0/net/bridge/br_stp_timer.c @@ -107,7 +107,7 @@ br_debug(br, "tcn timer expired\n"); spin_lock(&br->lock); - if (br->dev->flags & IFF_UP) { + if (!br_is_root_bridge(br) && (br->dev->flags & IFF_UP)) { br_transmit_tcn(br); mod_timer(&br->tcn_timer,jiffies + br->bridge_hello_time); --- linux-3.2.0.orig/net/bridge/br_stp_bpdu.c +++ linux-3.2.0/net/bridge/br_stp_bpdu.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -40,6 +41,7 @@ skb->dev = p->dev; skb->protocol = htons(ETH_P_802_2); + skb->priority = TC_PRIO_CONTROL; skb_reserve(skb, LLC_RESERVE); memcpy(__skb_put(skb, length), data, length); --- linux-3.2.0.orig/net/bridge/br_netlink.c +++ linux-3.2.0/net/bridge/br_netlink.c @@ -211,7 +211,7 @@ return 0; } -static struct rtnl_link_ops br_link_ops __read_mostly = { +struct rtnl_link_ops br_link_ops __read_mostly = { .kind = "bridge", .priv_size = sizeof(struct net_bridge), .setup = br_dev_setup, --- linux-3.2.0.orig/net/bridge/br_private.h +++ linux-3.2.0/net/bridge/br_private.h @@ -82,9 +82,7 @@ struct hlist_node mglist; struct rcu_head rcu; struct timer_list timer; - struct timer_list query_timer; struct br_ip addr; - u32 queries_sent; }; struct net_bridge_mdb_entry @@ -94,10 +92,8 @@ struct net_bridge_port_group __rcu *ports; struct rcu_head rcu; struct timer_list timer; - struct timer_list query_timer; struct br_ip addr; bool mglist; - u32 queries_sent; }; struct net_bridge_mdb_htable @@ -540,6 +536,7 @@ #endif /* br_netlink.c */ +extern struct rtnl_link_ops br_link_ops; extern int br_netlink_init(void); extern void br_netlink_fini(void); extern void br_ifinfo_notify(int event, struct net_bridge_port *port); --- linux-3.2.0.orig/net/bridge/br_if.c +++ linux-3.2.0/net/bridge/br_if.c @@ -240,6 +240,7 @@ return -ENOMEM; dev_net_set(dev, net); + dev->rtnl_link_ops = &br_link_ops; res = register_netdev(dev); if (res) --- linux-3.2.0.orig/net/bridge/br_netfilter.c +++ linux-3.2.0/net/bridge/br_netfilter.c @@ -147,7 +147,7 @@ rt->dst.dev = br->dev; rt->dst.path = &rt->dst; dst_init_metrics(&rt->dst, br_dst_default_metrics, true); - rt->dst.flags = DST_NOXFRM | DST_NOPEER; + rt->dst.flags = DST_NOXFRM | DST_NOPEER | DST_FAKE_RTABLE; rt->dst.ops = &fake_dst_ops; } @@ -245,6 +245,9 @@ struct net_device *dev = skb->dev; u32 len; + if (!pskb_may_pull(skb, sizeof(struct iphdr))) + goto inhdr_error; + iph = ip_hdr(skb); opt = &(IPCB(skb)->opt); @@ -687,11 +690,7 @@ const struct net_device *out, int (*okfn)(struct sk_buff *)) { - struct rtable *rt = skb_rtable(skb); - - if (rt && rt == bridge_parent_rtable(in)) - skb_dst_drop(skb); - + br_drop_fake_rtable(skb); return NF_ACCEPT; } --- linux-3.2.0.orig/net/bridge/br_multicast.c +++ linux-3.2.0/net/bridge/br_multicast.c @@ -241,7 +241,6 @@ hlist_del_rcu(&mp->hlist[mdb->ver]); mdb->size--; - del_timer(&mp->query_timer); call_rcu_bh(&mp->rcu, br_multicast_free_group); out: @@ -271,7 +270,6 @@ rcu_assign_pointer(*pp, p->next); hlist_del_init(&p->mglist); del_timer(&p->timer); - del_timer(&p->query_timer); call_rcu_bh(&p->rcu, br_multicast_free_pg); if (!mp->ports && !mp->mglist && @@ -446,8 +444,11 @@ ip6h->nexthdr = IPPROTO_HOPOPTS; ip6h->hop_limit = 1; ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1)); - ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0, - &ip6h->saddr); + if (ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0, + &ip6h->saddr)) { + kfree_skb(skb); + return NULL; + } ipv6_eth_mc_map(&ip6h->daddr, eth->h_dest); hopopt = (u8 *)(ip6h + 1); @@ -466,8 +467,9 @@ skb_set_transport_header(skb, skb->len); mldq = (struct mld_msg *) icmp6_hdr(skb); - interval = ipv6_addr_any(group) ? br->multicast_last_member_interval : - br->multicast_query_response_interval; + interval = ipv6_addr_any(group) ? + br->multicast_query_response_interval : + br->multicast_last_member_interval; mldq->mld_type = ICMPV6_MGM_QUERY; mldq->mld_code = 0; @@ -504,74 +506,6 @@ return NULL; } -static void br_multicast_send_group_query(struct net_bridge_mdb_entry *mp) -{ - struct net_bridge *br = mp->br; - struct sk_buff *skb; - - skb = br_multicast_alloc_query(br, &mp->addr); - if (!skb) - goto timer; - - netif_rx(skb); - -timer: - if (++mp->queries_sent < br->multicast_last_member_count) - mod_timer(&mp->query_timer, - jiffies + br->multicast_last_member_interval); -} - -static void br_multicast_group_query_expired(unsigned long data) -{ - struct net_bridge_mdb_entry *mp = (void *)data; - struct net_bridge *br = mp->br; - - spin_lock(&br->multicast_lock); - if (!netif_running(br->dev) || !mp->mglist || - mp->queries_sent >= br->multicast_last_member_count) - goto out; - - br_multicast_send_group_query(mp); - -out: - spin_unlock(&br->multicast_lock); -} - -static void br_multicast_send_port_group_query(struct net_bridge_port_group *pg) -{ - struct net_bridge_port *port = pg->port; - struct net_bridge *br = port->br; - struct sk_buff *skb; - - skb = br_multicast_alloc_query(br, &pg->addr); - if (!skb) - goto timer; - - br_deliver(port, skb); - -timer: - if (++pg->queries_sent < br->multicast_last_member_count) - mod_timer(&pg->query_timer, - jiffies + br->multicast_last_member_interval); -} - -static void br_multicast_port_group_query_expired(unsigned long data) -{ - struct net_bridge_port_group *pg = (void *)data; - struct net_bridge_port *port = pg->port; - struct net_bridge *br = port->br; - - spin_lock(&br->multicast_lock); - if (!netif_running(br->dev) || hlist_unhashed(&pg->mglist) || - pg->queries_sent >= br->multicast_last_member_count) - goto out; - - br_multicast_send_port_group_query(pg); - -out: - spin_unlock(&br->multicast_lock); -} - static struct net_bridge_mdb_entry *br_multicast_get_group( struct net_bridge *br, struct net_bridge_port *port, struct br_ip *group, int hash) @@ -687,8 +621,6 @@ mp->addr = *group; setup_timer(&mp->timer, br_multicast_group_expired, (unsigned long)mp); - setup_timer(&mp->query_timer, br_multicast_group_query_expired, - (unsigned long)mp); hlist_add_head_rcu(&mp->hlist[mdb->ver], &mdb->mhash[hash]); mdb->size++; @@ -743,8 +675,6 @@ hlist_add_head(&p->mglist, &port->mglist); setup_timer(&p->timer, br_multicast_port_group_expired, (unsigned long)p); - setup_timer(&p->query_timer, br_multicast_port_group_query_expired, - (unsigned long)p); rcu_assign_pointer(*pp, p); @@ -1288,9 +1218,6 @@ time_after(mp->timer.expires, time) : try_to_del_timer_sync(&mp->timer) >= 0)) { mod_timer(&mp->timer, time); - - mp->queries_sent = 0; - mod_timer(&mp->query_timer, now); } goto out; @@ -1307,9 +1234,6 @@ time_after(p->timer.expires, time) : try_to_del_timer_sync(&p->timer) >= 0)) { mod_timer(&p->timer, time); - - p->queries_sent = 0; - mod_timer(&p->query_timer, now); } break; @@ -1677,7 +1601,6 @@ hlist_for_each_entry_safe(mp, p, n, &mdb->mhash[i], hlist[ver]) { del_timer(&mp->timer); - del_timer(&mp->query_timer); call_rcu_bh(&mp->rcu, br_multicast_free_group); } } --- linux-3.2.0.orig/net/bridge/br_forward.c +++ linux-3.2.0/net/bridge/br_forward.c @@ -47,6 +47,7 @@ kfree_skb(skb); } else { skb_push(skb, ETH_HLEN); + br_drop_fake_rtable(skb); dev_queue_xmit(skb); } --- linux-3.2.0.orig/net/tipc/socket.c +++ linux-3.2.0/net/tipc/socket.c @@ -829,6 +829,7 @@ if (addr) { addr->family = AF_TIPC; addr->addrtype = TIPC_ADDR_ID; + memset(&addr->addr, 0, sizeof(addr->addr)); addr->addr.id.ref = msg_origport(msg); addr->addr.id.node = msg_orignode(msg); addr->addr.name.domain = 0; /* could leave uninitialized */ @@ -948,6 +949,9 @@ goto exit; } + /* will be updated in set_orig_addr() if needed */ + m->msg_namelen = 0; + timeout = sock_rcvtimeo(sk, flags & MSG_DONTWAIT); restart: @@ -1074,6 +1078,9 @@ goto exit; } + /* will be updated in set_orig_addr() if needed */ + m->msg_namelen = 0; + target = sock_rcvlowat(sk, flags & MSG_WAITALL, buf_len); timeout = sock_rcvtimeo(sk, flags & MSG_DONTWAIT); restart: --- linux-3.2.0.orig/net/x25/af_x25.c +++ linux-3.2.0/net/x25/af_x25.c @@ -1586,11 +1586,11 @@ case SIOCX25CALLACCPTAPPRV: { rc = -EINVAL; lock_sock(sk); - if (sk->sk_state != TCP_CLOSE) - break; - clear_bit(X25_ACCPT_APPRV_FLAG, &x25->flags); + if (sk->sk_state == TCP_CLOSE) { + clear_bit(X25_ACCPT_APPRV_FLAG, &x25->flags); + rc = 0; + } release_sock(sk); - rc = 0; break; } @@ -1598,14 +1598,15 @@ rc = -EINVAL; lock_sock(sk); if (sk->sk_state != TCP_ESTABLISHED) - break; + goto out_sendcallaccpt_release; /* must call accptapprv above */ if (test_bit(X25_ACCPT_APPRV_FLAG, &x25->flags)) - break; + goto out_sendcallaccpt_release; x25_write_internal(sk, X25_CALL_ACCEPTED); x25->state = X25_STATE_3; - release_sock(sk); rc = 0; +out_sendcallaccpt_release: + release_sock(sk); break; } --- linux-3.2.0.orig/net/rose/af_rose.c +++ linux-3.2.0/net/rose/af_rose.c @@ -1258,6 +1258,7 @@ skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); if (srose != NULL) { + memset(srose, 0, msg->msg_namelen); srose->srose_family = AF_ROSE; srose->srose_addr = rose->dest_addr; srose->srose_call = rose->dest_call; --- linux-3.2.0.orig/net/rose/rose_dev.c +++ linux-3.2.0/net/rose/rose_dev.c @@ -96,11 +96,11 @@ struct sockaddr *sa = addr; int err; - if (!memcpy(dev->dev_addr, sa->sa_data, dev->addr_len)) + if (!memcmp(dev->dev_addr, sa->sa_data, dev->addr_len)) return 0; if (dev->flags & IFF_UP) { - err = rose_add_loopback_node((rose_address *)dev->dev_addr); + err = rose_add_loopback_node((rose_address *)sa->sa_data); if (err) return err; --- linux-3.2.0.orig/net/mac80211/ibss.c +++ linux-3.2.0/net/mac80211/ibss.c @@ -184,7 +184,7 @@ *pos++ = 0; /* U-APSD no in use */ } - RCU_INIT_POINTER(ifibss->presp, skb); + rcu_assign_pointer(ifibss->presp, skb); sdata->vif.bss_conf.beacon_int = beacon_int; sdata->vif.bss_conf.basic_rates = basic_rates; @@ -940,7 +940,7 @@ sdata->u.ibss.state = IEEE80211_IBSS_MLME_SEARCH; sdata->u.ibss.ibss_join_req = jiffies; - memcpy(sdata->u.ibss.ssid, params->ssid, IEEE80211_MAX_SSID_LEN); + memcpy(sdata->u.ibss.ssid, params->ssid, params->ssid_len); sdata->u.ibss.ssid_len = params->ssid_len; mutex_unlock(&sdata->u.ibss.mtx); @@ -965,10 +965,6 @@ mutex_lock(&sdata->u.ibss.mtx); - sdata->u.ibss.state = IEEE80211_IBSS_MLME_SEARCH; - memset(sdata->u.ibss.bssid, 0, ETH_ALEN); - sdata->u.ibss.ssid_len = 0; - active_ibss = ieee80211_sta_active_ibss(sdata); if (!active_ibss && !is_zero_ether_addr(ifibss->bssid)) { @@ -989,6 +985,10 @@ } } + ifibss->state = IEEE80211_IBSS_MLME_SEARCH; + memset(ifibss->bssid, 0, ETH_ALEN); + ifibss->ssid_len = 0; + sta_info_flush(sdata->local, sdata); /* remove beacon */ --- linux-3.2.0.orig/net/mac80211/wpa.c +++ linux-3.2.0/net/mac80211/wpa.c @@ -106,7 +106,8 @@ if (status->flag & RX_FLAG_MMIC_ERROR) goto mic_fail; - if (!(status->flag & RX_FLAG_IV_STRIPPED)) + if (!(status->flag & RX_FLAG_IV_STRIPPED) && rx->key && + rx->key->conf.cipher == WLAN_CIPHER_SUITE_TKIP) goto update_iv; return RX_CONTINUE; --- linux-3.2.0.orig/net/mac80211/scan.c +++ linux-3.2.0/net/mac80211/scan.c @@ -213,14 +213,6 @@ if (bss) ieee80211_rx_bss_put(sdata->local, bss); - /* If we are on-operating-channel, and this packet is for the - * current channel, pass the pkt on up the stack so that - * the rest of the stack can make use of it. - */ - if (ieee80211_cfg_on_oper_channel(sdata->local) - && (channel == sdata->local->oper_channel)) - return RX_CONTINUE; - dev_kfree_skb(skb); return RX_QUEUED; } @@ -264,8 +256,6 @@ bool was_hw_scan) { struct ieee80211_local *local = hw_to_local(hw); - bool on_oper_chan; - bool enable_beacons = false; lockdep_assert_held(&local->mtx); @@ -298,25 +288,11 @@ local->scanning = 0; local->scan_channel = NULL; - on_oper_chan = ieee80211_cfg_on_oper_channel(local); - - if (was_hw_scan || !on_oper_chan) - ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_CHANNEL); - else - /* Set power back to normal operating levels. */ - ieee80211_hw_config(local, 0); - + ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_CHANNEL); if (!was_hw_scan) { - bool on_oper_chan2; ieee80211_configure_filter(local); drv_sw_scan_complete(local); - on_oper_chan2 = ieee80211_cfg_on_oper_channel(local); - /* We should always be on-channel at this point. */ - WARN_ON(!on_oper_chan2); - if (on_oper_chan2 && (on_oper_chan != on_oper_chan2)) - enable_beacons = true; - - ieee80211_offchannel_return(local, enable_beacons, true); + ieee80211_offchannel_return(local, true); } ieee80211_recalc_idle(local); @@ -357,15 +333,13 @@ */ drv_sw_scan_start(local); + ieee80211_offchannel_stop_beaconing(local); + local->leave_oper_channel_time = 0; local->next_scan_state = SCAN_DECISION; local->scan_channel_idx = 0; - /* We always want to use off-channel PS, even if we - * are not really leaving oper-channel. Don't - * tell the AP though, as long as we are on-channel. - */ - ieee80211_offchannel_enable_all_ps(local, false); + drv_flush(local, false); ieee80211_configure_filter(local); @@ -508,20 +482,7 @@ } mutex_unlock(&local->iflist_mtx); - next_chan = local->scan_req->channels[local->scan_channel_idx]; - - if (ieee80211_cfg_on_oper_channel(local)) { - /* We're currently on operating channel. */ - if (next_chan == local->oper_channel) - /* We don't need to move off of operating channel. */ - local->next_scan_state = SCAN_SET_CHANNEL; - else - /* - * We do need to leave operating channel, as next - * scan is somewhere else. - */ - local->next_scan_state = SCAN_LEAVE_OPER_CHANNEL; - } else { + if (local->scan_channel) { /* * we're currently scanning a different channel, let's * see if we can scan another channel without interfering @@ -537,6 +498,7 @@ * * Otherwise switch back to the operating channel. */ + next_chan = local->scan_req->channels[local->scan_channel_idx]; bad_latency = time_after(jiffies + ieee80211_scan_get_channel_time(next_chan), @@ -554,6 +516,12 @@ local->next_scan_state = SCAN_ENTER_OPER_CHANNEL; else local->next_scan_state = SCAN_SET_CHANNEL; + } else { + /* + * we're on the operating channel currently, let's + * leave that channel now to scan another one + */ + local->next_scan_state = SCAN_LEAVE_OPER_CHANNEL; } *next_delay = 0; @@ -562,10 +530,9 @@ static void ieee80211_scan_state_leave_oper_channel(struct ieee80211_local *local, unsigned long *next_delay) { - /* PS will already be in off-channel mode, - * we do that once at the beginning of scanning. - */ - ieee80211_offchannel_stop_vifs(local, false); + ieee80211_offchannel_stop_station(local); + + __set_bit(SCAN_OFF_CHANNEL, &local->scanning); /* * What if the nullfunc frames didn't arrive? @@ -588,15 +555,15 @@ { /* switch back to the operating channel */ local->scan_channel = NULL; - if (!ieee80211_cfg_on_oper_channel(local)) - ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_CHANNEL); + ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_CHANNEL); /* - * Re-enable vifs and beaconing. Leave PS - * in off-channel state..will put that back - * on-channel at the end of scanning. + * Only re-enable station mode interface now; beaconing will be + * re-enabled once the full scan has been completed. */ - ieee80211_offchannel_return(local, true, false); + ieee80211_offchannel_return(local, false); + + __clear_bit(SCAN_OFF_CHANNEL, &local->scanning); *next_delay = HZ / 5; local->next_scan_state = SCAN_DECISION; --- linux-3.2.0.orig/net/mac80211/cfg.c +++ linux-3.2.0/net/mac80211/cfg.c @@ -575,7 +575,7 @@ sdata->vif.bss_conf.dtim_period = new->dtim_period; - RCU_INIT_POINTER(sdata->u.ap.beacon, new); + rcu_assign_pointer(sdata->u.ap.beacon, new); synchronize_rcu(); @@ -922,7 +922,7 @@ return -EBUSY; } - RCU_INIT_POINTER(vlansdata->u.vlan.sta, sta); + rcu_assign_pointer(vlansdata->u.vlan.sta, sta); } sta->sdata = vlansdata; --- linux-3.2.0.orig/net/mac80211/util.c +++ linux-3.2.0/net/mac80211/util.c @@ -1111,6 +1111,12 @@ } } + /* add back keys */ + list_for_each_entry(sdata, &local->interfaces, list) + if (ieee80211_sdata_running(sdata)) + ieee80211_enable_keys(sdata); + + wake_up: /* * Clear the WLAN_STA_BLOCK_BA flag so new aggregation * sessions can be established after a resume. @@ -1132,12 +1138,6 @@ mutex_unlock(&local->sta_mtx); } - /* add back keys */ - list_for_each_entry(sdata, &local->interfaces, list) - if (ieee80211_sdata_running(sdata)) - ieee80211_enable_keys(sdata); - - wake_up: ieee80211_wake_queues_by_reason(hw, IEEE80211_QUEUE_STOP_REASON_SUSPEND); --- linux-3.2.0.orig/net/mac80211/main.c +++ linux-3.2.0/net/mac80211/main.c @@ -92,47 +92,6 @@ ieee80211_configure_filter(local); } -/* - * Returns true if we are logically configured to be on - * the operating channel AND the hardware-conf is currently - * configured on the operating channel. Compares channel-type - * as well. - */ -bool ieee80211_cfg_on_oper_channel(struct ieee80211_local *local) -{ - struct ieee80211_channel *chan, *scan_chan; - enum nl80211_channel_type channel_type; - - /* This logic needs to match logic in ieee80211_hw_config */ - if (local->scan_channel) { - chan = local->scan_channel; - /* If scanning on oper channel, use whatever channel-type - * is currently in use. - */ - if (chan == local->oper_channel) - channel_type = local->_oper_channel_type; - else - channel_type = NL80211_CHAN_NO_HT; - } else if (local->tmp_channel) { - chan = scan_chan = local->tmp_channel; - channel_type = local->tmp_channel_type; - } else { - chan = local->oper_channel; - channel_type = local->_oper_channel_type; - } - - if (chan != local->oper_channel || - channel_type != local->_oper_channel_type) - return false; - - /* Check current hardware-config against oper_channel. */ - if ((local->oper_channel != local->hw.conf.channel) || - (local->_oper_channel_type != local->hw.conf.channel_type)) - return false; - - return true; -} - int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) { struct ieee80211_channel *chan, *scan_chan; @@ -145,9 +104,6 @@ scan_chan = local->scan_channel; - /* If this off-channel logic ever changes, ieee80211_on_oper_channel - * may need to change as well. - */ offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; if (scan_chan) { chan = scan_chan; @@ -158,19 +114,17 @@ channel_type = local->_oper_channel_type; else channel_type = NL80211_CHAN_NO_HT; - } else if (local->tmp_channel) { + local->hw.conf.flags |= IEEE80211_CONF_OFFCHANNEL; + } else if (local->tmp_channel && + local->oper_channel != local->tmp_channel) { chan = scan_chan = local->tmp_channel; channel_type = local->tmp_channel_type; + local->hw.conf.flags |= IEEE80211_CONF_OFFCHANNEL; } else { chan = local->oper_channel; channel_type = local->_oper_channel_type; - } - - if (chan != local->oper_channel || - channel_type != local->_oper_channel_type) - local->hw.conf.flags |= IEEE80211_CONF_OFFCHANNEL; - else local->hw.conf.flags &= ~IEEE80211_CONF_OFFCHANNEL; + } offchannel_flag ^= local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; @@ -279,7 +233,7 @@ if (changed & BSS_CHANGED_BEACON_ENABLED) { if (local->quiescing || !ieee80211_sdata_running(sdata) || - test_bit(SDATA_STATE_OFFCHANNEL, &sdata->state)) { + test_bit(SCAN_SW_SCANNING, &local->scanning)) { sdata->vif.bss_conf.enable_beacon = false; } else { /* @@ -931,6 +885,8 @@ wiphy_debug(local->hw.wiphy, "Failed to initialize wep: %d\n", result); + ieee80211_led_init(local); + rtnl_lock(); result = ieee80211_init_rate_ctrl_alg(local, @@ -952,8 +908,6 @@ rtnl_unlock(); - ieee80211_led_init(local); - local->network_latency_notifier.notifier_call = ieee80211_max_network_latency; result = pm_qos_add_notifier(PM_QOS_NETWORK_LATENCY, --- linux-3.2.0.orig/net/mac80211/mesh.c +++ linux-3.2.0/net/mac80211/mesh.c @@ -543,6 +543,7 @@ del_timer_sync(&sdata->u.mesh.housekeeping_timer); del_timer_sync(&sdata->u.mesh.mesh_path_root_timer); + del_timer_sync(&sdata->u.mesh.mesh_path_timer); /* * If the timer fired while we waited for it, it will have * requeued the work. Now the work will be running again --- linux-3.2.0.orig/net/mac80211/rate.c +++ linux-3.2.0/net/mac80211/rate.c @@ -344,7 +344,7 @@ for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { info->control.rates[i].idx = -1; info->control.rates[i].flags = 0; - info->control.rates[i].count = 1; + info->control.rates[i].count = 0; } if (sdata->local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL) --- linux-3.2.0.orig/net/mac80211/sta_info.c +++ linux-3.2.0/net/mac80211/sta_info.c @@ -73,7 +73,7 @@ if (!s) return -ENOENT; if (s == sta) { - RCU_INIT_POINTER(local->sta_hash[STA_HASH(sta->sta.addr)], + rcu_assign_pointer(local->sta_hash[STA_HASH(sta->sta.addr)], s->hnext); return 0; } @@ -83,7 +83,7 @@ s = rcu_dereference_protected(s->hnext, lockdep_is_held(&local->sta_lock)); if (rcu_access_pointer(s->hnext)) { - RCU_INIT_POINTER(s->hnext, sta->hnext); + rcu_assign_pointer(s->hnext, sta->hnext); return 0; } @@ -232,7 +232,7 @@ struct sta_info *sta) { sta->hnext = local->sta_hash[STA_HASH(sta->sta.addr)]; - RCU_INIT_POINTER(local->sta_hash[STA_HASH(sta->sta.addr)], sta); + rcu_assign_pointer(local->sta_hash[STA_HASH(sta->sta.addr)], sta); } static void sta_unblock(struct work_struct *wk) @@ -1021,7 +1021,7 @@ void sta_info_stop(struct ieee80211_local *local) { - del_timer(&local->sta_cleanup); + del_timer_sync(&local->sta_cleanup); sta_info_flush(local, NULL); } @@ -1129,6 +1129,7 @@ struct ieee80211_local *local = sdata->local; struct sk_buff_head pending; int filtered = 0, buffered = 0, ac; + unsigned long flags; clear_sta_flag(sta, WLAN_STA_SP); @@ -1144,12 +1145,16 @@ for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) { int count = skb_queue_len(&pending), tmp; + spin_lock_irqsave(&sta->tx_filtered[ac].lock, flags); skb_queue_splice_tail_init(&sta->tx_filtered[ac], &pending); + spin_unlock_irqrestore(&sta->tx_filtered[ac].lock, flags); tmp = skb_queue_len(&pending); filtered += tmp - count; count = tmp; + spin_lock_irqsave(&sta->ps_tx_buf[ac].lock, flags); skb_queue_splice_tail_init(&sta->ps_tx_buf[ac], &pending); + spin_unlock_irqrestore(&sta->ps_tx_buf[ac].lock, flags); tmp = skb_queue_len(&pending); buffered += tmp - count; } --- linux-3.2.0.orig/net/mac80211/work.c +++ linux-3.2.0/net/mac80211/work.c @@ -899,26 +899,6 @@ return false; } -static enum nl80211_channel_type -ieee80211_calc_ct(enum nl80211_channel_type wk_ct, - enum nl80211_channel_type oper_ct) -{ - switch (wk_ct) { - case NL80211_CHAN_NO_HT: - return oper_ct; - case NL80211_CHAN_HT20: - if (oper_ct != NL80211_CHAN_NO_HT) - return oper_ct; - return wk_ct; - case NL80211_CHAN_HT40MINUS: - case NL80211_CHAN_HT40PLUS: - return wk_ct; - } - WARN_ON(1); /* shouldn't get here */ - return wk_ct; -} - - static void ieee80211_work_timer(unsigned long data) { struct ieee80211_local *local = (void *) data; @@ -969,52 +949,18 @@ } if (!started && !local->tmp_channel) { - bool on_oper_chan; - bool tmp_chan_changed = false; - bool on_oper_chan2; - enum nl80211_channel_type wk_ct; - on_oper_chan = ieee80211_cfg_on_oper_channel(local); - - /* Work with existing channel type if possible. */ - wk_ct = wk->chan_type; - if (wk->chan == local->hw.conf.channel) - wk_ct = ieee80211_calc_ct(wk->chan_type, - local->hw.conf.channel_type); - - if (local->tmp_channel) - if ((local->tmp_channel != wk->chan) || - (local->tmp_channel_type != wk_ct)) - tmp_chan_changed = true; - - local->tmp_channel = wk->chan; - local->tmp_channel_type = wk_ct; /* - * Leave the station vifs in awake mode if they - * happen to be on the same channel as - * the requested channel. + * TODO: could optimize this by leaving the + * station vifs in awake mode if they + * happen to be on the same channel as + * the requested channel */ - on_oper_chan2 = ieee80211_cfg_on_oper_channel(local); - if (on_oper_chan != on_oper_chan2) { - if (on_oper_chan2) { - /* going off oper channel, PS too */ - ieee80211_offchannel_stop_vifs(local, - true); - ieee80211_hw_config(local, 0); - } else { - /* going on channel, but leave PS - * off-channel. */ - ieee80211_hw_config(local, 0); - ieee80211_offchannel_return(local, - true, - false); - } - } else if (tmp_chan_changed) - /* Still off-channel, but on some other - * channel, so update hardware. - * PS should already be off-channel. - */ - ieee80211_hw_config(local, 0); + ieee80211_offchannel_stop_beaconing(local); + ieee80211_offchannel_stop_station(local); + local->tmp_channel = wk->chan; + local->tmp_channel_type = wk->chan_type; + ieee80211_hw_config(local, 0); started = true; wk->timeout = jiffies; } @@ -1100,8 +1046,7 @@ * we still need to do a hardware config. Currently, * we cannot be here while scanning, however. */ - if (!ieee80211_cfg_on_oper_channel(local)) - ieee80211_hw_config(local, 0); + ieee80211_hw_config(local, 0); /* At the least, we need to disable offchannel_ps, * so just go ahead and run the entire offchannel @@ -1109,7 +1054,7 @@ * beaconing if we were already on-oper-channel * as a future optimization. */ - ieee80211_offchannel_return(local, true, true); + ieee80211_offchannel_return(local, true); /* give connection some time to breathe */ run_again(local, jiffies + HZ/2); --- linux-3.2.0.orig/net/mac80211/rx.c +++ linux-3.2.0/net/mac80211/rx.c @@ -421,10 +421,16 @@ return RX_CONTINUE; if (test_bit(SCAN_HW_SCANNING, &local->scanning) || - test_bit(SCAN_SW_SCANNING, &local->scanning) || local->sched_scanning) return ieee80211_scan_rx(rx->sdata, skb); + if (test_bit(SCAN_SW_SCANNING, &local->scanning)) { + /* drop all the other packets during a software scan anyway */ + if (ieee80211_scan_rx(rx->sdata, skb) != RX_QUEUED) + dev_kfree_skb(skb); + return RX_QUEUED; + } + /* scanning finished during invoking of handlers */ I802_DEBUG_INC(local->rx_handlers_drop_passive_scan); return RX_DROP_UNUSABLE; @@ -509,6 +515,11 @@ if (ieee80211_is_action(hdr->frame_control)) { u8 category; + + /* make sure category field is present */ + if (rx->skb->len < IEEE80211_MIN_ACTION_SIZE) + return RX_DROP_MONITOR; + mgmt = (struct ieee80211_mgmt *)hdr; category = mgmt->u.action.category; if (category != WLAN_CATEGORY_MESH_ACTION && @@ -610,7 +621,7 @@ index = seq_sub(tid_agg_rx->head_seq_num, tid_agg_rx->ssn) % tid_agg_rx->buf_size; if (!tid_agg_rx->reorder_buf[index] && - tid_agg_rx->stored_mpdu_num > 1) { + tid_agg_rx->stored_mpdu_num) { /* * No buffers ready to be released, but check whether any * frames in the reorder buffer have timed out. @@ -848,14 +859,16 @@ (!rx->sta || !test_sta_flag(rx->sta, WLAN_STA_ASSOC)))) { if (rx->sta && rx->sta->dummy && ieee80211_is_data_present(hdr->frame_control)) { - u16 ethertype; - u8 *payload; + unsigned int hdrlen; + __be16 ethertype; + + hdrlen = ieee80211_hdrlen(hdr->frame_control); + + if (rx->skb->len < hdrlen + 8) + return RX_DROP_MONITOR; - payload = rx->skb->data + - ieee80211_hdrlen(hdr->frame_control); - ethertype = (payload[6] << 8) | payload[7]; - if (cpu_to_be16(ethertype) == - rx->sdata->control_port_protocol) + skb_copy_bits(rx->skb, hdrlen + 6, ðertype, 2); + if (ethertype == rx->sdata->control_port_protocol) return RX_CONTINUE; } return RX_DROP_MONITOR; @@ -1443,11 +1456,14 @@ hdr = (struct ieee80211_hdr *)rx->skb->data; fc = hdr->frame_control; + + if (ieee80211_is_ctl(fc)) + return RX_CONTINUE; + sc = le16_to_cpu(hdr->seq_ctrl); frag = sc & IEEE80211_SCTL_FRAG; if (likely((!ieee80211_has_morefrags(fc) && frag == 0) || - (rx->skb)->len < 24 || is_multicast_ether_addr(hdr->addr1))) { /* not fragmented */ goto out; @@ -1881,6 +1897,20 @@ hdr = (struct ieee80211_hdr *) skb->data; hdrlen = ieee80211_hdrlen(hdr->frame_control); + + /* make sure fixed part of mesh header is there, also checks skb len */ + if (!pskb_may_pull(rx->skb, hdrlen + 6)) + return RX_DROP_MONITOR; + + mesh_hdr = (struct ieee80211s_hdr *) (skb->data + hdrlen); + + /* make sure full mesh header is there, also checks skb len */ + if (!pskb_may_pull(rx->skb, + hdrlen + ieee80211_get_mesh_hdrlen(mesh_hdr))) + return RX_DROP_MONITOR; + + /* reload pointers */ + hdr = (struct ieee80211_hdr *) skb->data; mesh_hdr = (struct ieee80211s_hdr *) (skb->data + hdrlen); /* frame is in RMC, don't forward */ @@ -1889,7 +1919,8 @@ mesh_rmc_check(hdr->addr3, mesh_hdr, rx->sdata)) return RX_DROP_MONITOR; - if (!ieee80211_is_data(hdr->frame_control)) + if (!ieee80211_is_data(hdr->frame_control) || + !(status->rx_flags & IEEE80211_RX_RA_MATCH)) return RX_CONTINUE; if (!mesh_hdr->ttl) @@ -1910,9 +1941,12 @@ if (is_multicast_ether_addr(hdr->addr1)) { mpp_addr = hdr->addr3; proxied_addr = mesh_hdr->eaddr1; - } else { + } else if (mesh_hdr->flags & MESH_FLAGS_AE_A5_A6) { + /* has_a4 already checked in ieee80211_rx_mesh_check */ mpp_addr = hdr->addr4; proxied_addr = mesh_hdr->eaddr2; + } else { + return RX_DROP_MONITOR; } rcu_read_lock(); @@ -1935,7 +1969,7 @@ mesh_hdr->ttl--; - if (status->rx_flags & IEEE80211_RX_RA_MATCH) { + { if (!mesh_hdr->ttl) IEEE80211_IFSTA_MESH_CTR_INC(&rx->sdata->u.mesh, dropped_frames_ttl); @@ -2289,6 +2323,10 @@ } break; case WLAN_CATEGORY_SELF_PROTECTED: + if (len < (IEEE80211_MIN_ACTION_SIZE + + sizeof(mgmt->u.action.u.self_prot.action_code))) + break; + switch (mgmt->u.action.u.self_prot.action_code) { case WLAN_SP_MESH_PEERING_OPEN: case WLAN_SP_MESH_PEERING_CLOSE: @@ -2307,6 +2345,10 @@ } break; case WLAN_CATEGORY_MESH_ACTION: + if (len < (IEEE80211_MIN_ACTION_SIZE + + sizeof(mgmt->u.action.u.mesh_action.action_code))) + break; + if (!ieee80211_vif_is_mesh(&sdata->vif)) break; if (mesh_action_is_path_sel(mgmt) && @@ -2383,7 +2425,7 @@ * frames that we didn't handle, including returning unknown * ones. For all other modes we will return them to the sender, * setting the 0x80 bit in the action category, as required by - * 802.11-2007 7.3.1.11. + * 802.11-2012 9.24.4. * Newer versions of hostapd shall also use the management frame * registration mechanisms, but older ones still use cooked * monitor interfaces so push all frames there. @@ -2393,6 +2435,9 @@ sdata->vif.type == NL80211_IFTYPE_AP_VLAN)) return RX_DROP_MONITOR; + if (is_multicast_ether_addr(mgmt->da)) + return RX_DROP_MONITOR; + /* do not return rejected action frames */ if (mgmt->u.action.category & 0x80) return RX_DROP_UNUSABLE; @@ -2858,13 +2903,18 @@ local->dot11ReceivedFragmentCount++; if (unlikely(test_bit(SCAN_HW_SCANNING, &local->scanning) || - test_bit(SCAN_SW_SCANNING, &local->scanning))) + test_bit(SCAN_OFF_CHANNEL, &local->scanning))) status->rx_flags |= IEEE80211_RX_IN_SCAN; - if (ieee80211_is_mgmt(fc)) - err = skb_linearize(skb); - else + if (ieee80211_is_mgmt(fc)) { + /* drop frame if too short for header */ + if (skb->len < ieee80211_hdrlen(fc)) + err = -ENOBUFS; + else + err = skb_linearize(skb); + } else { err = !pskb_may_pull(skb, ieee80211_hdrlen(fc)); + } if (err) { dev_kfree_skb(skb); --- linux-3.2.0.orig/net/mac80211/status.c +++ linux-3.2.0/net/mac80211/status.c @@ -429,7 +429,11 @@ IEEE80211_BAR_CTRL_TID_INFO_MASK) >> IEEE80211_BAR_CTRL_TID_INFO_SHIFT; - ieee80211_set_bar_pending(sta, tid, ssn); + if (local->hw.flags & + IEEE80211_HW_TEARDOWN_AGGR_ON_BAR_FAIL) + ieee80211_stop_tx_ba_session(&sta->sta, tid); + else + ieee80211_set_bar_pending(sta, tid, ssn); } } --- linux-3.2.0.orig/net/mac80211/tx.c +++ linux-3.2.0/net/mac80211/tx.c @@ -259,8 +259,7 @@ if (unlikely(info->flags & IEEE80211_TX_CTL_INJECTED)) return TX_CONTINUE; - if (unlikely(test_bit(SCAN_SW_SCANNING, &tx->local->scanning)) && - test_bit(SDATA_STATE_OFFCHANNEL, &tx->sdata->state) && + if (unlikely(test_bit(SCAN_OFF_CHANNEL, &tx->local->scanning)) && !ieee80211_is_probe_req(hdr->frame_control) && !ieee80211_is_nullfunc(hdr->frame_control)) /* @@ -1122,7 +1121,8 @@ tx->sta = rcu_dereference(sdata->u.vlan.sta); if (!tx->sta && sdata->dev->ieee80211_ptr->use_4addr) return TX_DROP; - } else if (info->flags & IEEE80211_TX_CTL_INJECTED) { + } else if (info->flags & IEEE80211_TX_CTL_INJECTED || + tx->sdata->control_port_protocol == tx->skb->protocol) { tx->sta = sta_info_get_bss(sdata, hdr->addr1); } if (!tx->sta) --- linux-3.2.0.orig/net/mac80211/mlme.c +++ linux-3.2.0/net/mac80211/mlme.c @@ -2719,7 +2719,6 @@ { struct ieee80211_local *local = sdata->local; struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; - struct ieee80211_work *wk; u8 bssid[ETH_ALEN]; bool assoc_bss = false; @@ -2732,30 +2731,47 @@ assoc_bss = true; } else { bool not_auth_yet = false; + struct ieee80211_work *tmp, *wk = NULL; mutex_unlock(&ifmgd->mtx); mutex_lock(&local->mtx); - list_for_each_entry(wk, &local->work_list, list) { - if (wk->sdata != sdata) + list_for_each_entry(tmp, &local->work_list, list) { + if (tmp->sdata != sdata) continue; - if (wk->type != IEEE80211_WORK_DIRECT_PROBE && - wk->type != IEEE80211_WORK_AUTH && - wk->type != IEEE80211_WORK_ASSOC && - wk->type != IEEE80211_WORK_ASSOC_BEACON_WAIT) + if (tmp->type != IEEE80211_WORK_DIRECT_PROBE && + tmp->type != IEEE80211_WORK_AUTH && + tmp->type != IEEE80211_WORK_ASSOC && + tmp->type != IEEE80211_WORK_ASSOC_BEACON_WAIT) continue; - if (memcmp(req->bss->bssid, wk->filter_ta, ETH_ALEN)) + if (memcmp(req->bss->bssid, tmp->filter_ta, ETH_ALEN)) continue; - not_auth_yet = wk->type == IEEE80211_WORK_DIRECT_PROBE; - list_del_rcu(&wk->list); - free_work(wk); + not_auth_yet = tmp->type == IEEE80211_WORK_DIRECT_PROBE; + list_del_rcu(&tmp->list); + synchronize_rcu(); + wk = tmp; break; } mutex_unlock(&local->mtx); + if (wk && wk->type == IEEE80211_WORK_ASSOC) { + /* clean up dummy sta & TX sync */ + sta_info_destroy_addr(wk->sdata, wk->filter_ta); + if (wk->assoc.synced) + drv_finish_tx_sync(local, wk->sdata, + wk->filter_ta, + IEEE80211_TX_SYNC_ASSOC); + } else if (wk && wk->type == IEEE80211_WORK_AUTH) { + if (wk->probe_auth.synced) + drv_finish_tx_sync(local, wk->sdata, + wk->filter_ta, + IEEE80211_TX_SYNC_AUTH); + } + kfree(wk); + /* * If somebody requests authentication and we haven't * sent out an auth frame yet there's no need to send --- linux-3.2.0.orig/net/mac80211/iface.c +++ linux-3.2.0/net/mac80211/iface.c @@ -495,6 +495,18 @@ ieee80211_configure_filter(local); break; default: + mutex_lock(&local->mtx); + if (local->hw_roc_dev == sdata->dev && + local->hw_roc_channel) { + /* ignore return value since this is racy */ + drv_cancel_remain_on_channel(local); + ieee80211_queue_work(&local->hw, &local->hw_roc_done); + } + mutex_unlock(&local->mtx); + + flush_work(&local->hw_roc_start); + flush_work(&local->hw_roc_done); + flush_work(&sdata->work); /* * When we get here, the interface is marked down. @@ -1230,6 +1242,15 @@ ASSERT_RTNL(); + /* + * Close all AP_VLAN interfaces first, as otherwise they + * might be closed while the AP interface they belong to + * is closed, causing unregister_netdevice_many() to crash. + */ + list_for_each_entry(sdata, &local->interfaces, list) + if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) + dev_close(sdata->dev); + mutex_lock(&local->iflist_mtx); list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) { list_del(&sdata->list); --- linux-3.2.0.orig/net/mac80211/ieee80211_i.h +++ linux-3.2.0/net/mac80211/ieee80211_i.h @@ -702,6 +702,8 @@ * well be on the operating channel * @SCAN_HW_SCANNING: The hardware is scanning for us, we have no way to * determine if we are on the operating channel or not + * @SCAN_OFF_CHANNEL: We're off our operating channel for scanning, + * gets only set in conjunction with SCAN_SW_SCANNING * @SCAN_COMPLETED: Set for our scan work function when the driver reported * that the scan completed. * @SCAN_ABORTED: Set for our scan work function when the driver reported @@ -710,6 +712,7 @@ enum { SCAN_SW_SCANNING, SCAN_HW_SCANNING, + SCAN_OFF_CHANNEL, SCAN_COMPLETED, SCAN_ABORTED, }; @@ -1140,14 +1143,10 @@ void ieee80211_sched_scan_stopped_work(struct work_struct *work); /* off-channel helpers */ -bool ieee80211_cfg_on_oper_channel(struct ieee80211_local *local); -void ieee80211_offchannel_enable_all_ps(struct ieee80211_local *local, - bool tell_ap); -void ieee80211_offchannel_stop_vifs(struct ieee80211_local *local, - bool offchannel_ps_enable); +void ieee80211_offchannel_stop_beaconing(struct ieee80211_local *local); +void ieee80211_offchannel_stop_station(struct ieee80211_local *local); void ieee80211_offchannel_return(struct ieee80211_local *local, - bool enable_beaconing, - bool offchannel_ps_disable); + bool enable_beaconing); void ieee80211_hw_roc_setup(struct ieee80211_local *local); /* interface handling */ --- linux-3.2.0.orig/net/mac80211/offchannel.c +++ linux-3.2.0/net/mac80211/offchannel.c @@ -18,14 +18,10 @@ #include "driver-trace.h" /* - * Tell our hardware to disable PS. - * Optionally inform AP that we will go to sleep so that it will buffer - * the frames while we are doing off-channel work. This is optional - * because we *may* be doing work on-operating channel, and want our - * hardware unconditionally awake, but still let the AP send us normal frames. + * inform AP that we will go to sleep so that it will buffer the frames + * while we scan */ -static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata, - bool tell_ap) +static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata) { struct ieee80211_local *local = sdata->local; struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; @@ -46,8 +42,8 @@ ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS); } - if (tell_ap && (!local->offchannel_ps_enabled || - !(local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK))) + if (!(local->offchannel_ps_enabled) || + !(local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK)) /* * If power save was enabled, no need to send a nullfunc * frame because AP knows that we are sleeping. But if the @@ -82,9 +78,6 @@ * we are sleeping, let's just enable power save mode in * hardware. */ - /* TODO: Only set hardware if CONF_PS changed? - * TODO: Should we set offchannel_ps_enabled to false? - */ local->hw.conf.flags |= IEEE80211_CONF_PS; ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS); } else if (local->hw.conf.dynamic_ps_timeout > 0) { @@ -103,61 +96,63 @@ ieee80211_sta_reset_conn_monitor(sdata); } -void ieee80211_offchannel_stop_vifs(struct ieee80211_local *local, - bool offchannel_ps_enable) +void ieee80211_offchannel_stop_beaconing(struct ieee80211_local *local) { struct ieee80211_sub_if_data *sdata; - /* - * notify the AP about us leaving the channel and stop all - * STA interfaces. - */ mutex_lock(&local->iflist_mtx); list_for_each_entry(sdata, &local->interfaces, list) { if (!ieee80211_sdata_running(sdata)) continue; - if (sdata->vif.type != NL80211_IFTYPE_MONITOR) - set_bit(SDATA_STATE_OFFCHANNEL, &sdata->state); - - /* Check to see if we should disable beaconing. */ + /* disable beaconing */ if (sdata->vif.type == NL80211_IFTYPE_AP || sdata->vif.type == NL80211_IFTYPE_ADHOC || sdata->vif.type == NL80211_IFTYPE_MESH_POINT) ieee80211_bss_info_change_notify( sdata, BSS_CHANGED_BEACON_ENABLED); - if (sdata->vif.type != NL80211_IFTYPE_MONITOR) { + /* + * only handle non-STA interfaces here, STA interfaces + * are handled in ieee80211_offchannel_stop_station(), + * e.g., from the background scan state machine. + * + * In addition, do not stop monitor interface to allow it to be + * used from user space controlled off-channel operations. + */ + if (sdata->vif.type != NL80211_IFTYPE_STATION && + sdata->vif.type != NL80211_IFTYPE_MONITOR) { + set_bit(SDATA_STATE_OFFCHANNEL, &sdata->state); netif_tx_stop_all_queues(sdata->dev); - if (offchannel_ps_enable && - (sdata->vif.type == NL80211_IFTYPE_STATION) && - sdata->u.mgd.associated) - ieee80211_offchannel_ps_enable(sdata, true); } } mutex_unlock(&local->iflist_mtx); } -void ieee80211_offchannel_enable_all_ps(struct ieee80211_local *local, - bool tell_ap) +void ieee80211_offchannel_stop_station(struct ieee80211_local *local) { struct ieee80211_sub_if_data *sdata; + /* + * notify the AP about us leaving the channel and stop all STA interfaces + */ mutex_lock(&local->iflist_mtx); list_for_each_entry(sdata, &local->interfaces, list) { if (!ieee80211_sdata_running(sdata)) continue; - if (sdata->vif.type == NL80211_IFTYPE_STATION && - sdata->u.mgd.associated) - ieee80211_offchannel_ps_enable(sdata, tell_ap); + if (sdata->vif.type == NL80211_IFTYPE_STATION) { + set_bit(SDATA_STATE_OFFCHANNEL, &sdata->state); + netif_tx_stop_all_queues(sdata->dev); + if (sdata->u.mgd.associated) + ieee80211_offchannel_ps_enable(sdata); + } } mutex_unlock(&local->iflist_mtx); } void ieee80211_offchannel_return(struct ieee80211_local *local, - bool enable_beaconing, - bool offchannel_ps_disable) + bool enable_beaconing) { struct ieee80211_sub_if_data *sdata; @@ -167,8 +162,7 @@ continue; /* Tell AP we're back */ - if (offchannel_ps_disable && - sdata->vif.type == NL80211_IFTYPE_STATION) { + if (sdata->vif.type == NL80211_IFTYPE_STATION) { if (sdata->u.mgd.associated) ieee80211_offchannel_ps_disable(sdata); } @@ -188,7 +182,7 @@ netif_tx_wake_all_queues(sdata->dev); } - /* Check to see if we should re-enable beaconing */ + /* re-enable beaconing */ if (enable_beaconing && (sdata->vif.type == NL80211_IFTYPE_AP || sdata->vif.type == NL80211_IFTYPE_ADHOC || @@ -252,6 +246,22 @@ return; } + /* was never transmitted */ + if (local->hw_roc_skb) { + u64 cookie; + + cookie = local->hw_roc_cookie ^ 2; + + cfg80211_mgmt_tx_status(local->hw_roc_dev, cookie, + local->hw_roc_skb->data, + local->hw_roc_skb->len, false, + GFP_KERNEL); + + kfree_skb(local->hw_roc_skb); + local->hw_roc_skb = NULL; + local->hw_roc_skb_for_status = NULL; + } + if (!local->hw_roc_for_tx) cfg80211_remain_on_channel_expired(local->hw_roc_dev, local->hw_roc_cookie, --- linux-3.2.0.orig/net/mac80211/agg-rx.c +++ linux-3.2.0/net/mac80211/agg-rx.c @@ -49,6 +49,8 @@ container_of(h, struct tid_ampdu_rx, rcu_head); int i; + del_timer_sync(&tid_rx->reorder_timer); + for (i = 0; i < tid_rx->buf_size; i++) dev_kfree_skb(tid_rx->reorder_buf[i]); kfree(tid_rx->reorder_buf); @@ -88,7 +90,6 @@ tid, 0, reason); del_timer_sync(&tid_rx->session_timer); - del_timer_sync(&tid_rx->reorder_timer); call_rcu(&tid_rx->rcu_head, ieee80211_free_tid_rx); } @@ -326,7 +327,7 @@ status = WLAN_STATUS_SUCCESS; /* activate it for RX */ - RCU_INIT_POINTER(sta->ampdu_mlme.tid_rx[tid], tid_agg_rx); + rcu_assign_pointer(sta->ampdu_mlme.tid_rx[tid], tid_agg_rx); if (timeout) mod_timer(&tid_agg_rx->session_timer, TU_TO_EXP_TIME(timeout)); --- linux-3.2.0.orig/net/ceph/auth_none.c +++ linux-3.2.0/net/ceph/auth_none.c @@ -39,6 +39,11 @@ return xi->starting; } +static int build_request(struct ceph_auth_client *ac, void *buf, void *end) +{ + return 0; +} + /* * the generic auth code decode the global_id, and we carry no actual * authenticate state, so nothing happens here. @@ -107,6 +112,7 @@ .destroy = destroy, .is_authenticated = is_authenticated, .should_authenticate = should_authenticate, + .build_request = build_request, .handle_reply = handle_reply, .create_authorizer = ceph_auth_none_create_authorizer, .destroy_authorizer = ceph_auth_none_destroy_authorizer, --- linux-3.2.0.orig/net/netlabel/netlabel_domainhash.c +++ linux-3.2.0/net/netlabel/netlabel_domainhash.c @@ -245,6 +245,71 @@ } } +/** + * netlbl_domhsh_validate - Validate a new domain mapping entry + * @entry: the entry to validate + * + * This function validates the new domain mapping entry to ensure that it is + * a valid entry. Returns zero on success, negative values on failure. + * + */ +static int netlbl_domhsh_validate(const struct netlbl_dom_map *entry) +{ + struct netlbl_af4list *iter4; + struct netlbl_domaddr4_map *map4; +#if IS_ENABLED(CONFIG_IPV6) + struct netlbl_af6list *iter6; + struct netlbl_domaddr6_map *map6; +#endif /* IPv6 */ + + if (entry == NULL) + return -EINVAL; + + switch (entry->type) { + case NETLBL_NLTYPE_UNLABELED: + if (entry->type_def.cipsov4 != NULL || + entry->type_def.addrsel != NULL) + return -EINVAL; + break; + case NETLBL_NLTYPE_CIPSOV4: + if (entry->type_def.cipsov4 == NULL) + return -EINVAL; + break; + case NETLBL_NLTYPE_ADDRSELECT: + netlbl_af4list_foreach(iter4, &entry->type_def.addrsel->list4) { + map4 = netlbl_domhsh_addr4_entry(iter4); + switch (map4->type) { + case NETLBL_NLTYPE_UNLABELED: + if (map4->type_def.cipsov4 != NULL) + return -EINVAL; + break; + case NETLBL_NLTYPE_CIPSOV4: + if (map4->type_def.cipsov4 == NULL) + return -EINVAL; + break; + default: + return -EINVAL; + } + } +#if IS_ENABLED(CONFIG_IPV6) + netlbl_af6list_foreach(iter6, &entry->type_def.addrsel->list6) { + map6 = netlbl_domhsh_addr6_entry(iter6); + switch (map6->type) { + case NETLBL_NLTYPE_UNLABELED: + break; + default: + return -EINVAL; + } + } +#endif /* IPv6 */ + break; + default: + return -EINVAL; + } + + return 0; +} + /* * Domain Hash Table Functions */ @@ -282,7 +347,7 @@ INIT_LIST_HEAD(&hsh_tbl->tbl[iter]); spin_lock(&netlbl_domhsh_lock); - RCU_INIT_POINTER(netlbl_domhsh, hsh_tbl); + rcu_assign_pointer(netlbl_domhsh, hsh_tbl); spin_unlock(&netlbl_domhsh_lock); return 0; @@ -311,6 +376,10 @@ struct netlbl_af6list *tmp6; #endif /* IPv6 */ + ret_val = netlbl_domhsh_validate(entry); + if (ret_val != 0) + return ret_val; + /* XXX - we can remove this RCU read lock as the spinlock protects the * entire function, but before we do we need to fixup the * netlbl_af[4,6]list RCU functions to do "the right thing" with @@ -330,7 +399,7 @@ &rcu_dereference(netlbl_domhsh)->tbl[bkt]); } else { INIT_LIST_HEAD(&entry->list); - RCU_INIT_POINTER(netlbl_domhsh_def, entry); + rcu_assign_pointer(netlbl_domhsh_def, entry); } if (entry->type == NETLBL_NLTYPE_ADDRSELECT) { --- linux-3.2.0.orig/net/netlabel/netlabel_unlabeled.c +++ linux-3.2.0/net/netlabel/netlabel_unlabeled.c @@ -354,7 +354,7 @@ INIT_LIST_HEAD(&iface->list); if (netlbl_unlhsh_rcu_deref(netlbl_unlhsh_def) != NULL) goto add_iface_failure; - RCU_INIT_POINTER(netlbl_unlhsh_def, iface); + rcu_assign_pointer(netlbl_unlhsh_def, iface); } spin_unlock(&netlbl_unlhsh_lock); @@ -1189,8 +1189,6 @@ struct netlbl_unlhsh_walk_arg cb_arg; u32 skip_bkt = cb->args[0]; u32 skip_chain = cb->args[1]; - u32 skip_addr4 = cb->args[2]; - u32 skip_addr6 = cb->args[3]; u32 iter_bkt; u32 iter_chain = 0, iter_addr4 = 0, iter_addr6 = 0; struct netlbl_unlhsh_iface *iface; @@ -1215,7 +1213,7 @@ continue; netlbl_af4list_foreach_rcu(addr4, &iface->addr4_list) { - if (iter_addr4++ < skip_addr4) + if (iter_addr4++ < cb->args[2]) continue; if (netlbl_unlabel_staticlist_gen( NLBL_UNLABEL_C_STATICLIST, @@ -1231,7 +1229,7 @@ #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) netlbl_af6list_foreach_rcu(addr6, &iface->addr6_list) { - if (iter_addr6++ < skip_addr6) + if (iter_addr6++ < cb->args[3]) continue; if (netlbl_unlabel_staticlist_gen( NLBL_UNLABEL_C_STATICLIST, @@ -1250,10 +1248,10 @@ unlabel_staticlist_return: rcu_read_unlock(); - cb->args[0] = skip_bkt; - cb->args[1] = skip_chain; - cb->args[2] = skip_addr4; - cb->args[3] = skip_addr6; + cb->args[0] = iter_bkt; + cb->args[1] = iter_chain; + cb->args[2] = iter_addr4; + cb->args[3] = iter_addr6; return skb->len; } @@ -1273,12 +1271,9 @@ { struct netlbl_unlhsh_walk_arg cb_arg; struct netlbl_unlhsh_iface *iface; - u32 skip_addr4 = cb->args[0]; - u32 skip_addr6 = cb->args[1]; - u32 iter_addr4 = 0; + u32 iter_addr4 = 0, iter_addr6 = 0; struct netlbl_af4list *addr4; #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) - u32 iter_addr6 = 0; struct netlbl_af6list *addr6; #endif @@ -1292,7 +1287,7 @@ goto unlabel_staticlistdef_return; netlbl_af4list_foreach_rcu(addr4, &iface->addr4_list) { - if (iter_addr4++ < skip_addr4) + if (iter_addr4++ < cb->args[0]) continue; if (netlbl_unlabel_staticlist_gen(NLBL_UNLABEL_C_STATICLISTDEF, iface, @@ -1305,7 +1300,7 @@ } #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) netlbl_af6list_foreach_rcu(addr6, &iface->addr6_list) { - if (iter_addr6++ < skip_addr6) + if (iter_addr6++ < cb->args[1]) continue; if (netlbl_unlabel_staticlist_gen(NLBL_UNLABEL_C_STATICLISTDEF, iface, @@ -1320,8 +1315,8 @@ unlabel_staticlistdef_return: rcu_read_unlock(); - cb->args[0] = skip_addr4; - cb->args[1] = skip_addr6; + cb->args[0] = iter_addr4; + cb->args[1] = iter_addr6; return skb->len; } @@ -1447,11 +1442,9 @@ for (iter = 0; iter < hsh_tbl->size; iter++) INIT_LIST_HEAD(&hsh_tbl->tbl[iter]); - rcu_read_lock(); spin_lock(&netlbl_unlhsh_lock); - RCU_INIT_POINTER(netlbl_unlhsh, hsh_tbl); + rcu_assign_pointer(netlbl_unlhsh, hsh_tbl); spin_unlock(&netlbl_unlhsh_lock); - rcu_read_unlock(); register_netdevice_notifier(&netlbl_unlhsh_netdev_notifier); --- linux-3.2.0.orig/net/iucv/af_iucv.c +++ linux-3.2.0/net/iucv/af_iucv.c @@ -380,7 +380,6 @@ skb_trim(skb, skb->dev->mtu); } skb->protocol = ETH_P_AF_IUCV; - skb_shinfo(skb)->tx_flags |= SKBTX_DRV_NEEDS_SK_REF; nskb = skb_clone(skb, GFP_ATOMIC); if (!nskb) return -ENOMEM; @@ -1357,6 +1356,8 @@ int blen; int err = 0; + msg->msg_namelen = 0; + if ((sk->sk_state == IUCV_DISCONN || sk->sk_state == IUCV_SEVERED) && skb_queue_empty(&iucv->backlog_skb_q) && skb_queue_empty(&sk->sk_receive_queue) && --- linux-3.2.0.orig/net/rds/ib_send.c +++ linux-3.2.0/net/rds/ib_send.c @@ -544,7 +544,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-3.2.0.orig/net/rds/recv.c +++ linux-3.2.0/net/rds/recv.c @@ -410,6 +410,8 @@ rdsdebug("size %zu flags 0x%x timeo %ld\n", size, msg_flags, timeo); + msg->msg_namelen = 0; + if (msg_flags & MSG_OOB) goto out; @@ -485,6 +487,7 @@ sin->sin_port = inc->i_hdr.h_sport; sin->sin_addr.s_addr = inc->i_saddr; memset(sin->sin_zero, 0, sizeof(sin->sin_zero)); + msg->msg_namelen = sizeof(*sin); } break; } --- linux-3.2.0.orig/net/rds/message.c +++ linux-3.2.0/net/rds/message.c @@ -197,6 +197,9 @@ { struct rds_message *rm; + if (extra_len > KMALLOC_MAX_SIZE - sizeof(struct rds_message)) + return NULL; + rm = kzalloc(sizeof(struct rds_message) + extra_len, gfp); if (!rm) goto out; --- linux-3.2.0.orig/net/rds/af_rds.c +++ linux-3.2.0/net/rds/af_rds.c @@ -68,7 +68,6 @@ { struct sock *sk = sock->sk; struct rds_sock *rs; - unsigned long flags; if (!sk) goto out; @@ -94,10 +93,10 @@ rds_rdma_drop_keys(rs); rds_notify_queue_get(rs, NULL); - spin_lock_irqsave(&rds_sock_lock, flags); + spin_lock_bh(&rds_sock_lock); list_del_init(&rs->rs_item); rds_sock_count--; - spin_unlock_irqrestore(&rds_sock_lock, flags); + spin_unlock_bh(&rds_sock_lock); rds_trans_put(rs->rs_transport); @@ -409,7 +408,6 @@ static int __rds_create(struct socket *sock, struct sock *sk, int protocol) { - unsigned long flags; struct rds_sock *rs; sock_init_data(sock, sk); @@ -426,10 +424,10 @@ spin_lock_init(&rs->rs_rdma_lock); rs->rs_rdma_keys = RB_ROOT; - spin_lock_irqsave(&rds_sock_lock, flags); + spin_lock_bh(&rds_sock_lock); list_add_tail(&rs->rs_item, &rds_sock_list); rds_sock_count++; - spin_unlock_irqrestore(&rds_sock_lock, flags); + spin_unlock_bh(&rds_sock_lock); return 0; } @@ -471,12 +469,11 @@ { struct rds_sock *rs; struct rds_incoming *inc; - unsigned long flags; unsigned int total = 0; len /= sizeof(struct rds_info_message); - spin_lock_irqsave(&rds_sock_lock, flags); + spin_lock_bh(&rds_sock_lock); list_for_each_entry(rs, &rds_sock_list, rs_item) { read_lock(&rs->rs_recv_lock); @@ -492,7 +489,7 @@ read_unlock(&rs->rs_recv_lock); } - spin_unlock_irqrestore(&rds_sock_lock, flags); + spin_unlock_bh(&rds_sock_lock); lens->nr = total; lens->each = sizeof(struct rds_info_message); @@ -504,11 +501,10 @@ { struct rds_info_socket sinfo; struct rds_sock *rs; - unsigned long flags; len /= sizeof(struct rds_info_socket); - spin_lock_irqsave(&rds_sock_lock, flags); + spin_lock_bh(&rds_sock_lock); if (len < rds_sock_count) goto out; @@ -529,7 +525,7 @@ lens->nr = rds_sock_count; lens->each = sizeof(struct rds_info_socket); - spin_unlock_irqrestore(&rds_sock_lock, flags); + spin_unlock_bh(&rds_sock_lock); } static void rds_exit(void) --- linux-3.2.0.orig/net/rds/send.c +++ linux-3.2.0/net/rds/send.c @@ -935,7 +935,6 @@ /* Mirror Linux UDP mirror of BSD error message compatibility */ /* XXX: Perhaps MSG_MORE someday */ if (msg->msg_flags & ~(MSG_DONTWAIT | MSG_CMSG_COMPAT)) { - printk(KERN_INFO "msg_flags 0x%08X\n", msg->msg_flags); ret = -EOPNOTSUPP; goto out; } @@ -1123,7 +1122,7 @@ rds_stats_inc(s_send_pong); if (!test_bit(RDS_LL_SEND_FULL, &conn->c_flags)) - rds_send_xmit(conn); + queue_delayed_work(rds_wq, &conn->c_send_w, 0); rds_message_put(rm); return 0; --- linux-3.2.0.orig/net/ipv6/udp_impl.h +++ linux-3.2.0/net/ipv6/udp_impl.h @@ -31,6 +31,8 @@ extern int udpv6_queue_rcv_skb(struct sock * sk, struct sk_buff *skb); extern void udpv6_destroy_sock(struct sock *sk); +extern void udp_v6_clear_sk(struct sock *sk, int size); + #ifdef CONFIG_PROC_FS extern int udp6_seq_show(struct seq_file *seq, void *v); #endif --- linux-3.2.0.orig/net/ipv6/ip6_tunnel.c +++ linux-3.2.0/net/ipv6/ip6_tunnel.c @@ -218,8 +218,8 @@ { struct ip6_tnl __rcu **tp = ip6_tnl_bucket(ip6n, &t->parms); - RCU_INIT_POINTER(t->next , rtnl_dereference(*tp)); - RCU_INIT_POINTER(*tp, t); + rcu_assign_pointer(t->next , rtnl_dereference(*tp)); + rcu_assign_pointer(*tp, t); } /** @@ -237,7 +237,7 @@ (iter = rtnl_dereference(*tp)) != NULL; tp = &iter->next) { if (t == iter) { - RCU_INIT_POINTER(*tp, t->next); + rcu_assign_pointer(*tp, t->next); break; } } @@ -1450,7 +1450,7 @@ t->parms.proto = IPPROTO_IPV6; dev_hold(dev); - RCU_INIT_POINTER(ip6n->tnls_wc[0], t); + rcu_assign_pointer(ip6n->tnls_wc[0], t); return 0; } --- linux-3.2.0.orig/net/ipv6/reassembly.c +++ linux-3.2.0/net/ipv6/reassembly.c @@ -26,6 +26,9 @@ * YOSHIFUJI,H. @USAGI Always remove fragment header to * calculate ICV correctly. */ + +#define pr_fmt(fmt) "IPv6: " fmt + #include #include #include @@ -240,9 +243,10 @@ hash = inet6_hash_frag(id, src, dst, ip6_frags.rnd); q = inet_frag_find(&net->ipv6.frags, &ip6_frags, &arg, hash); - if (q == NULL) + if (IS_ERR_OR_NULL(q)) { + inet_frag_maybe_warn_overflow(q, pr_fmt()); return NULL; - + } return container_of(q, struct frag_queue, q); } @@ -382,8 +386,17 @@ } if (fq->q.last_in == (INET_FRAG_FIRST_IN | INET_FRAG_LAST_IN) && - fq->q.meat == fq->q.len) - return ip6_frag_reasm(fq, prev, dev); + fq->q.meat == fq->q.len) { + int res; + unsigned long orefdst = skb->_skb_refdst; + + skb->_skb_refdst = 0UL; + res = ip6_frag_reasm(fq, prev, dev); + skb->_skb_refdst = orefdst; + return res; + } + + skb_dst_drop(skb); write_lock(&ip6_frags.lock); list_move_tail(&fq->q.lru_list, &fq->q.net->lru_list); --- linux-3.2.0.orig/net/ipv6/ip6_output.c +++ linux-3.2.0/net/ipv6/ip6_output.c @@ -909,11 +909,17 @@ const struct flowi6 *fl6) { struct ipv6_pinfo *np = inet6_sk(sk); - struct rt6_info *rt = (struct rt6_info *)dst; + struct rt6_info *rt; if (!dst) goto out; + if (dst->ops->family != AF_INET6) { + dst_release(dst); + return NULL; + } + + rt = (struct rt6_info *)dst; /* Yes, checking route validity in not connected * case is not very simple. Take into account, * that we do not support routing by source, TOS, @@ -1178,6 +1184,32 @@ return src ? kmemdup(src, (src->hdrlen + 1) * 8, gfp) : NULL; } +static void ip6_append_data_mtu(unsigned int *mtu, + int *maxfraglen, + unsigned int fragheaderlen, + struct sk_buff *skb, + struct rt6_info *rt, + bool pmtuprobe) +{ + if (!(rt->dst.flags & DST_XFRM_TUNNEL)) { + if (skb == NULL) { + /* first fragment, reserve header_len */ + *mtu = *mtu - rt->dst.header_len; + + } else { + /* + * this fragment is not first, the headers + * space is regarded as data space. + */ + *mtu = min(*mtu, pmtuprobe ? + rt->dst.dev->mtu : + dst_mtu(rt->dst.path)); + } + *maxfraglen = ((*mtu - fragheaderlen) & ~7) + + fragheaderlen - sizeof(struct frag_hdr); + } +} + int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb), void *from, int length, int transhdrlen, @@ -1187,12 +1219,11 @@ struct inet_sock *inet = inet_sk(sk); struct ipv6_pinfo *np = inet6_sk(sk); struct inet_cork *cork; - struct sk_buff *skb; - unsigned int maxfraglen, fragheaderlen; + struct sk_buff *skb, *skb_prev = NULL; + unsigned int maxfraglen, fragheaderlen, mtu; int exthdrlen; int dst_exthdrlen; int hh_len; - int mtu; int copy; int err; int offset = 0; @@ -1210,7 +1241,7 @@ if (WARN_ON(np->cork.opt)) return -EINVAL; - np->cork.opt = kmalloc(opt->tot_len, sk->sk_allocation); + np->cork.opt = kzalloc(opt->tot_len, sk->sk_allocation); if (unlikely(np->cork.opt == NULL)) return -ENOBUFS; @@ -1245,8 +1276,12 @@ inet->cork.fl.u.ip6 = *fl6; np->cork.hop_limit = hlimit; np->cork.tclass = tclass; - mtu = np->pmtudisc == IPV6_PMTUDISC_PROBE ? - rt->dst.dev->mtu : dst_mtu(&rt->dst); + if (rt->dst.flags & DST_XFRM_TUNNEL) + mtu = np->pmtudisc == IPV6_PMTUDISC_PROBE ? + rt->dst.dev->mtu : dst_mtu(&rt->dst); + else + mtu = np->pmtudisc == IPV6_PMTUDISC_PROBE ? + rt->dst.dev->mtu : dst_mtu(rt->dst.path); if (np->frag_size < mtu) { if (np->frag_size) mtu = np->frag_size; @@ -1257,10 +1292,10 @@ cork->length = 0; sk->sk_sndmsg_page = NULL; sk->sk_sndmsg_off = 0; - exthdrlen = (opt ? opt->opt_flen : 0) - rt->rt6i_nfheader_len; + exthdrlen = (opt ? opt->opt_flen : 0); length += exthdrlen; transhdrlen += exthdrlen; - dst_exthdrlen = rt->dst.header_len; + dst_exthdrlen = rt->dst.header_len - rt->rt6i_nfheader_len; } else { rt = (struct rt6_info *)cork->dst; fl6 = &inet->cork.fl.u.ip6; @@ -1342,25 +1377,29 @@ unsigned int fraglen; unsigned int fraggap; unsigned int alloclen; - struct sk_buff *skb_prev; alloc_new_skb: - skb_prev = skb; - /* There's no room in the current skb */ - if (skb_prev) - fraggap = skb_prev->len - maxfraglen; + if (skb) + fraggap = skb->len - maxfraglen; else fraggap = 0; + /* update mtu and maxfraglen if necessary */ + if (skb == NULL || skb_prev == NULL) + ip6_append_data_mtu(&mtu, &maxfraglen, + fragheaderlen, skb, rt, + np->pmtudisc == + IPV6_PMTUDISC_PROBE); + + skb_prev = skb; /* * If remaining data exceeds the mtu, * we know we need more fragment(s). */ datalen = length + fraggap; - if (datalen > (cork->length <= mtu && !(cork->flags & IPCORK_ALLFRAG) ? mtu : maxfraglen) - fragheaderlen) - datalen = maxfraglen - fragheaderlen; - fraglen = datalen + fragheaderlen; + if (datalen > (cork->length <= mtu && !(cork->flags & IPCORK_ALLFRAG) ? mtu : maxfraglen) - fragheaderlen) + datalen = maxfraglen - fragheaderlen - rt->dst.trailer_len; if ((flags & MSG_MORE) && !(rt->dst.dev->features&NETIF_F_SG)) alloclen = mtu; @@ -1369,13 +1408,16 @@ alloclen += dst_exthdrlen; - /* - * The last fragment gets additional space at tail. - * Note: we overallocate on fragments with MSG_MODE - * because we have no idea if we're the last one. - */ - if (datalen == length + fraggap) - alloclen += rt->dst.trailer_len; + if (datalen != length + fraggap) { + /* + * this is not the last fragment, the trailer + * space is regarded as data space. + */ + datalen += rt->dst.trailer_len; + } + + alloclen += rt->dst.trailer_len; + fraglen = datalen + fragheaderlen; /* * We just reserve space for fragment header. @@ -1411,8 +1453,9 @@ */ skb->ip_summed = csummode; skb->csum = 0; - /* reserve for fragmentation */ - skb_reserve(skb, hh_len+sizeof(struct frag_hdr)); + /* reserve for fragmentation and ipsec header */ + skb_reserve(skb, hh_len + sizeof(struct frag_hdr) + + dst_exthdrlen); if (sk->sk_type == SOCK_DGRAM) skb_shinfo(skb)->tx_flags = tx_flags; @@ -1420,9 +1463,9 @@ /* * Find where to start putting bytes */ - data = skb_put(skb, fraglen + dst_exthdrlen); - skb_set_network_header(skb, exthdrlen + dst_exthdrlen); - data += fragheaderlen + dst_exthdrlen; + data = skb_put(skb, fraglen); + skb_set_network_header(skb, exthdrlen); + data += fragheaderlen; skb->transport_header = (skb->network_header + fragheaderlen); if (fraggap) { --- linux-3.2.0.orig/net/ipv6/sit.c +++ linux-3.2.0/net/ipv6/sit.c @@ -182,7 +182,7 @@ (iter = rtnl_dereference(*tp)) != NULL; tp = &iter->next) { if (t == iter) { - RCU_INIT_POINTER(*tp, t->next); + rcu_assign_pointer(*tp, t->next); break; } } @@ -192,8 +192,8 @@ { struct ip_tunnel __rcu **tp = ipip6_bucket(sitn, t); - RCU_INIT_POINTER(t->next, rtnl_dereference(*tp)); - RCU_INIT_POINTER(*tp, t); + rcu_assign_pointer(t->next, rtnl_dereference(*tp)); + rcu_assign_pointer(*tp, t); } static void ipip6_tunnel_clone_6rd(struct net_device *dev, struct sit_net *sitn) @@ -393,7 +393,7 @@ p->addr = a->addr; p->flags = a->flags; t->prl_count++; - RCU_INIT_POINTER(t->prl, p); + rcu_assign_pointer(t->prl, p); out: return err; } @@ -1177,7 +1177,7 @@ if (!dev->tstats) return -ENOMEM; dev_hold(dev); - RCU_INIT_POINTER(sitn->tunnels_wc[0], tunnel); + rcu_assign_pointer(sitn->tunnels_wc[0], tunnel); return 0; } --- linux-3.2.0.orig/net/ipv6/mcast.c +++ linux-3.2.0/net/ipv6/mcast.c @@ -257,7 +257,6 @@ if (rt) { dev = rt->rt6i_dev; - dev_hold(dev); dst_release(&rt->dst); } } else @@ -1335,8 +1334,9 @@ return scount; } -static struct sk_buff *mld_newpack(struct net_device *dev, int size) +static struct sk_buff *mld_newpack(struct inet6_dev *idev, int size) { + struct net_device *dev = idev->dev; struct net *net = dev_net(dev); struct sock *sk = net->ipv6.igmp_sk; struct sk_buff *skb; @@ -1359,7 +1359,7 @@ skb_reserve(skb, LL_RESERVED_SPACE(dev)); - if (ipv6_get_lladdr(dev, &addr_buf, IFA_F_TENTATIVE)) { + if (__ipv6_get_lladdr(idev, &addr_buf, IFA_F_TENTATIVE)) { /* : * use unspecified address as the source address * when a valid link-local address is not available. @@ -1462,7 +1462,7 @@ struct mld2_grec *pgr; if (!skb) - skb = mld_newpack(dev, dev->mtu); + skb = mld_newpack(pmc->idev, dev->mtu); if (!skb) return NULL; pgr = (struct mld2_grec *)skb_put(skb, sizeof(struct mld2_grec)); @@ -1482,7 +1482,8 @@ static struct sk_buff *add_grec(struct sk_buff *skb, struct ifmcaddr6 *pmc, int type, int gdeleted, int sdeleted) { - struct net_device *dev = pmc->idev->dev; + struct inet6_dev *idev = pmc->idev; + struct net_device *dev = idev->dev; struct mld2_report *pmr; struct mld2_grec *pgr = NULL; struct ip6_sf_list *psf, *psf_next, *psf_prev, **psf_list; @@ -1511,7 +1512,7 @@ AVAILABLE(skb) < grec_size(pmc, type, gdeleted, sdeleted)) { if (skb) mld_sendpack(skb); - skb = mld_newpack(dev, dev->mtu); + skb = mld_newpack(idev, dev->mtu); } } first = 1; @@ -1538,7 +1539,7 @@ pgr->grec_nsrcs = htons(scount); if (skb) mld_sendpack(skb); - skb = mld_newpack(dev, dev->mtu); + skb = mld_newpack(idev, dev->mtu); first = 1; scount = 0; } @@ -1593,8 +1594,8 @@ struct sk_buff *skb = NULL; int type; + read_lock_bh(&idev->lock); if (!pmc) { - read_lock_bh(&idev->lock); for (pmc=idev->mc_list; pmc; pmc=pmc->next) { if (pmc->mca_flags & MAF_NOREPORT) continue; @@ -1606,7 +1607,6 @@ skb = add_grec(skb, pmc, type, 0, 0); spin_unlock_bh(&pmc->mca_lock); } - read_unlock_bh(&idev->lock); } else { spin_lock_bh(&pmc->mca_lock); if (pmc->mca_sfcount[MCAST_EXCLUDE]) @@ -1616,6 +1616,7 @@ skb = add_grec(skb, pmc, type, 0, 0); spin_unlock_bh(&pmc->mca_lock); } + read_unlock_bh(&idev->lock); if (skb) mld_sendpack(skb); } @@ -2055,7 +2056,7 @@ if (!delta) pmc->mca_sfcount[sfmode]--; for (j=0; jmca_sfcount[MCAST_EXCLUDE] != 0)) { struct ip6_sf_list *psf; --- linux-3.2.0.orig/net/ipv6/addrconf.c +++ linux-3.2.0/net/ipv6/addrconf.c @@ -429,11 +429,15 @@ ndev->tstamp = jiffies; addrconf_sysctl_register(ndev); /* protected by rtnl_lock */ - RCU_INIT_POINTER(dev->ip6_ptr, ndev); + rcu_assign_pointer(dev->ip6_ptr, ndev); /* Join all-node multicast group */ ipv6_dev_mc_inc(dev, &in6addr_linklocal_allnodes); + /* Join all-router multicast group if forwarding is set */ + if (ndev->cnf.forwarding && dev && (dev->flags & IFF_MULTICAST)) + ipv6_dev_mc_inc(dev, &in6addr_linklocal_allrouters); + return ndev; } @@ -489,8 +493,7 @@ struct net_device *dev; struct inet6_dev *idev; - rcu_read_lock(); - for_each_netdev_rcu(net, dev) { + for_each_netdev(net, dev) { idev = __in6_dev_get(dev); if (idev) { int changed = (!idev->cnf.forwarding) ^ (!newf); @@ -499,7 +502,6 @@ dev_forward_change(idev); } } - rcu_read_unlock(); } static int addrconf_fixup_forwarding(struct ctl_table *table, int *p, int old) @@ -1234,6 +1236,23 @@ } EXPORT_SYMBOL(ipv6_dev_get_saddr); +int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr, + unsigned char banned_flags) +{ + struct inet6_ifaddr *ifp; + int err = -EADDRNOTAVAIL; + + list_for_each_entry(ifp, &idev->addr_list, if_list) { + if (ifp->scope == IFA_LINK && + !(ifp->flags & banned_flags)) { + ipv6_addr_copy(addr, &ifp->addr); + err = 0; + break; + } + } + return err; +} + int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr, unsigned char banned_flags) { @@ -1243,17 +1262,8 @@ rcu_read_lock(); idev = __in6_dev_get(dev); if (idev) { - struct inet6_ifaddr *ifp; - read_lock_bh(&idev->lock); - list_for_each_entry(ifp, &idev->addr_list, if_list) { - if (ifp->scope == IFA_LINK && - !(ifp->flags & banned_flags)) { - ipv6_addr_copy(addr, &ifp->addr); - err = 0; - break; - } - } + err = __ipv6_get_lladdr(idev, addr, banned_flags); read_unlock_bh(&idev->lock); } rcu_read_unlock(); @@ -1737,7 +1747,7 @@ continue; if ((rt->rt6i_flags & flags) != flags) continue; - if ((noflags != 0) && ((rt->rt6i_flags & flags) != 0)) + if ((rt->rt6i_flags & noflags) != 0) continue; dst_hold(&rt->dst); break; @@ -2402,6 +2412,9 @@ static void init_loopback(struct net_device *dev) { struct inet6_dev *idev; + struct net_device *sp_dev; + struct inet6_ifaddr *sp_ifa; + struct rt6_info *sp_rt; /* ::1 */ @@ -2413,6 +2426,35 @@ } add_addr(idev, &in6addr_loopback, 128, IFA_HOST); + + /* Add routes to other interface's IPv6 addresses */ + for_each_netdev(dev_net(dev), sp_dev) { + if (!strcmp(sp_dev->name, dev->name)) + continue; + + idev = __in6_dev_get(sp_dev); + if (!idev) + continue; + + read_lock_bh(&idev->lock); + list_for_each_entry(sp_ifa, &idev->addr_list, if_list) { + + if (sp_ifa->flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE)) + continue; + + if (sp_ifa->rt) + continue; + + sp_rt = addrconf_dst_alloc(idev, &sp_ifa->addr, 0); + + /* Failure cases are ignored */ + if (!IS_ERR(sp_rt)) { + sp_ifa->rt = sp_rt; + ip6_ins_rt(sp_rt); + } + } + read_unlock_bh(&idev->lock); + } } static void addrconf_add_linklocal(struct inet6_dev *idev, const struct in6_addr *addr) @@ -4341,6 +4383,84 @@ return ret; } +#ifdef CONFIG_IPV6_PRIVACY +static void dev_tempaddr_change(struct inet6_dev *idev) +{ + if (!idev || !idev->dev) + return; + + if (!idev->cnf.disable_ipv6) { + /* If ipv6 is enabled, try to bring down and back up the + * interface to get new temporary addresses created + */ + addrconf_notify(NULL, NETDEV_DOWN, idev->dev); + addrconf_notify(NULL, NETDEV_UP, idev->dev); + } +} + +static void addrconf_tempaddr_change(struct net *net, __s32 newf) +{ + struct net_device *dev; + struct inet6_dev *idev; + + rcu_read_lock(); + for_each_netdev_rcu(net, dev) { + idev = __in6_dev_get(dev); + if (idev) { + int changed = (!idev->cnf.use_tempaddr) ^ (!newf); + idev->cnf.use_tempaddr = newf; + if (changed) + dev_tempaddr_change(idev); + } + } + rcu_read_unlock(); +} + +static int addrconf_use_tempaddr(struct ctl_table *table, int *p, int old) +{ + struct net *net; + + net = (struct net *)table->extra2; + + if (p == &net->ipv6.devconf_dflt->use_tempaddr) + return 0; + + if (!rtnl_trylock()) { + /* Restore the original values before restarting */ + *p = old; + return restart_syscall(); + } + + if (p == &net->ipv6.devconf_all->use_tempaddr) { + __s32 newf = net->ipv6.devconf_all->use_tempaddr; + net->ipv6.devconf_dflt->use_tempaddr = newf; + addrconf_tempaddr_change(net, newf); + } else if ((!*p) ^ (!old)) + dev_tempaddr_change((struct inet6_dev *)table->extra1); + + rtnl_unlock(); + return 0; +} + +static +int addrconf_sysctl_tempaddr(ctl_table *ctl, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) +{ + int *valp = ctl->data; + int val = *valp; + loff_t pos = *ppos; + int ret; + + ret = proc_dointvec(ctl, write, buffer, lenp, ppos); + + if (write) + ret = addrconf_use_tempaddr(ctl, valp, val); + if (ret) + *ppos = pos; + return ret; +} +#endif + static struct addrconf_sysctl_table { struct ctl_table_header *sysctl_header; @@ -4432,7 +4552,7 @@ .data = &ipv6_devconf.use_tempaddr, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = proc_dointvec, + .proc_handler = addrconf_sysctl_tempaddr, }, { .procname = "temp_valid_lft", @@ -4656,26 +4776,20 @@ static int __net_init addrconf_init_net(struct net *net) { - int err; + int err = -ENOMEM; struct ipv6_devconf *all, *dflt; - err = -ENOMEM; - all = &ipv6_devconf; - dflt = &ipv6_devconf_dflt; - - if (!net_eq(net, &init_net)) { - all = kmemdup(all, sizeof(ipv6_devconf), GFP_KERNEL); - if (all == NULL) - goto err_alloc_all; - - dflt = kmemdup(dflt, sizeof(ipv6_devconf_dflt), GFP_KERNEL); - if (dflt == NULL) - goto err_alloc_dflt; - } else { - /* these will be inherited by all namespaces */ - dflt->autoconf = ipv6_defaults.autoconf; - dflt->disable_ipv6 = ipv6_defaults.disable_ipv6; - } + all = kmemdup(&ipv6_devconf, sizeof(ipv6_devconf), GFP_KERNEL); + if (all == NULL) + goto err_alloc_all; + + dflt = kmemdup(&ipv6_devconf_dflt, sizeof(ipv6_devconf_dflt), GFP_KERNEL); + if (dflt == NULL) + goto err_alloc_dflt; + + /* these will be inherited by all namespaces */ + dflt->autoconf = ipv6_defaults.autoconf; + dflt->disable_ipv6 = ipv6_defaults.disable_ipv6; net->ipv6.devconf_all = all; net->ipv6.devconf_dflt = dflt; --- linux-3.2.0.orig/net/ipv6/xfrm6_mode_tunnel.c +++ linux-3.2.0/net/ipv6/xfrm6_mode_tunnel.c @@ -63,7 +63,6 @@ static int xfrm6_mode_tunnel_input(struct xfrm_state *x, struct sk_buff *skb) { int err = -EINVAL; - const unsigned char *old_mac; if (XFRM_MODE_SKB_CB(skb)->protocol != IPPROTO_IPV6) goto out; @@ -80,10 +79,9 @@ if (!(x->props.flags & XFRM_STATE_NOECN)) ipip6_ecn_decapsulate(skb); - old_mac = skb_mac_header(skb); - skb_set_mac_header(skb, -skb->mac_len); - memmove(skb_mac_header(skb), old_mac, skb->mac_len); skb_reset_network_header(skb); + skb_mac_header_rebuild(skb); + err = 0; out: --- linux-3.2.0.orig/net/ipv6/ipv6_sockglue.c +++ linux-3.2.0/net/ipv6/ipv6_sockglue.c @@ -798,6 +798,7 @@ if (val < 0 || val > 255) goto e_inval; np->min_hopcount = val; + retv = 0; break; case IPV6_DONTFRAG: np->dontfrag = valbool; --- linux-3.2.0.orig/net/ipv6/mip6.c +++ linux-3.2.0/net/ipv6/mip6.c @@ -84,28 +84,30 @@ static int mip6_mh_filter(struct sock *sk, struct sk_buff *skb) { - struct ip6_mh *mh; + struct ip6_mh _hdr; + const struct ip6_mh *mh; - if (!pskb_may_pull(skb, (skb_transport_offset(skb)) + 8) || - !pskb_may_pull(skb, (skb_transport_offset(skb) + - ((skb_transport_header(skb)[1] + 1) << 3)))) + mh = skb_header_pointer(skb, skb_transport_offset(skb), + sizeof(_hdr), &_hdr); + if (!mh) return -1; - mh = (struct ip6_mh *)skb_transport_header(skb); + if (((mh->ip6mh_hdrlen + 1) << 3) > skb->len) + return -1; if (mh->ip6mh_hdrlen < mip6_mh_len(mh->ip6mh_type)) { LIMIT_NETDEBUG(KERN_DEBUG "mip6: MH message too short: %d vs >=%d\n", mh->ip6mh_hdrlen, mip6_mh_len(mh->ip6mh_type)); - mip6_param_prob(skb, 0, ((&mh->ip6mh_hdrlen) - - skb_network_header(skb))); + mip6_param_prob(skb, 0, offsetof(struct ip6_mh, ip6mh_hdrlen) + + skb_network_header_len(skb)); return -1; } if (mh->ip6mh_proto != IPPROTO_NONE) { LIMIT_NETDEBUG(KERN_DEBUG "mip6: MH invalid payload proto = %d\n", mh->ip6mh_proto); - mip6_param_prob(skb, 0, ((&mh->ip6mh_proto) - - skb_network_header(skb))); + mip6_param_prob(skb, 0, offsetof(struct ip6_mh, ip6mh_proto) + + skb_network_header_len(skb)); return -1; } --- linux-3.2.0.orig/net/ipv6/udp.c +++ linux-3.2.0/net/ipv6/udp.c @@ -893,11 +893,16 @@ struct udphdr *uh; struct udp_sock *up = udp_sk(sk); struct inet_sock *inet = inet_sk(sk); - struct flowi6 *fl6 = &inet->cork.fl.u.ip6; + struct flowi6 *fl6; int err = 0; int is_udplite = IS_UDPLITE(sk); __wsum csum = 0; + if (up->pending == AF_INET) + return udp_push_pending_frames(sk); + + fl6 = &inet->cork.fl.u.ip6; + /* Grab the skbuff where UDP header space exists. */ if ((skb = skb_peek(&sk->sk_write_queue)) == NULL) goto out; @@ -1453,6 +1458,17 @@ } #endif /* CONFIG_PROC_FS */ +void udp_v6_clear_sk(struct sock *sk, int size) +{ + struct inet_sock *inet = inet_sk(sk); + + /* we do not want to clear pinet6 field, because of RCU lookups */ + sk_prot_clear_portaddr_nulls(sk, offsetof(struct inet_sock, pinet6)); + + size -= offsetof(struct inet_sock, pinet6) + sizeof(inet->pinet6); + memset(&inet->pinet6 + 1, 0, size); +} + /* ------------------------------------------------------------------------ */ struct proto udpv6_prot = { @@ -1483,7 +1499,7 @@ .compat_setsockopt = compat_udpv6_setsockopt, .compat_getsockopt = compat_udpv6_getsockopt, #endif - .clear_sk = sk_prot_clear_portaddr_nulls, + .clear_sk = udp_v6_clear_sk, }; static struct inet_protosw udpv6_protosw = { --- linux-3.2.0.orig/net/ipv6/ndisc.c +++ linux-3.2.0/net/ipv6/ndisc.c @@ -606,7 +606,7 @@ { struct inet6_dev *idev; struct inet6_ifaddr *ifa; - struct in6_addr mcaddr; + struct in6_addr mcaddr = IN6ADDR_LINKLOCAL_ALLNODES_INIT; idev = in6_dev_get(dev); if (!idev) @@ -614,7 +614,6 @@ read_lock_bh(&idev->lock); list_for_each_entry(ifa, &idev->addr_list, if_list) { - addrconf_addr_solict_mult(&ifa->addr, &mcaddr); ndisc_send_na(dev, NULL, &mcaddr, &ifa->addr, /*router=*/ !!idev->cnf.forwarding, /*solicited=*/ false, /*override=*/ true, --- linux-3.2.0.orig/net/ipv6/route.c +++ linux-3.2.0/net/ipv6/route.c @@ -185,7 +185,7 @@ }; static const u32 ip6_template_metrics[RTAX_MAX] = { - [RTAX_HOPLIMIT - 1] = 255, + [RTAX_HOPLIMIT - 1] = 0, }; static struct rt6_info ip6_null_entry_template = { @@ -819,7 +819,8 @@ dst_hold(&rt->dst); read_unlock_bh(&table->tb6_lock); - if (!dst_get_neighbour_raw(&rt->dst) && !(rt->rt6i_flags & RTF_NONEXTHOP)) + if (!dst_get_neighbour_raw(&rt->dst) + && !(rt->rt6i_flags & (RTF_NONEXTHOP | RTF_LOCAL))) nrt = rt6_alloc_cow(rt, &fl6->daddr, &fl6->saddr); else if (!(rt->dst.flags & DST_HOST)) nrt = rt6_alloc_clone(rt, &fl6->daddr); @@ -1097,7 +1098,7 @@ ipv6_addr_copy(&rt->rt6i_dst.addr, addr); rt->rt6i_dst.plen = 128; rt->rt6i_idev = idev; - dst_metric_set(&rt->dst, RTAX_HOPLIMIT, 255); + dst_metric_set(&rt->dst, RTAX_HOPLIMIT, 0); spin_lock_bh(&icmp6_dst_lock); rt->dst.next = icmp6_dst_gc_list; @@ -1435,17 +1436,18 @@ struct fib6_table *table; struct net *net = dev_net(rt->rt6i_dev); - if (rt == net->ipv6.ip6_null_entry) - return -ENOENT; + if (rt == net->ipv6.ip6_null_entry) { + err = -ENOENT; + goto out; + } table = rt->rt6i_table; write_lock_bh(&table->tb6_lock); - err = fib6_del(rt, info); - dst_release(&rt->dst); - write_unlock_bh(&table->tb6_lock); +out: + dst_release(&rt->dst); return err; } @@ -1918,7 +1920,8 @@ restart: read_lock_bh(&table->tb6_lock); for (rt = table->tb6_root.leaf; rt; rt = rt->dst.rt6_next) { - if (rt->rt6i_flags & (RTF_DEFAULT | RTF_ADDRCONF)) { + if (rt->rt6i_flags & (RTF_DEFAULT | RTF_ADDRCONF) && + (!rt->rt6i_idev || rt->rt6i_idev->cnf.accept_ra != 2)) { dst_hold(&rt->dst); read_unlock_bh(&table->tb6_lock); ip6_del_rt(rt); @@ -2446,8 +2449,12 @@ rcu_read_lock(); n = dst_get_neighbour(&rt->dst); - if (n) - NLA_PUT(skb, RTA_GATEWAY, 16, &n->primary_key); + if (n) { + if (nla_put(skb, RTA_GATEWAY, 16, &n->primary_key) < 0) { + rcu_read_unlock(); + goto nla_put_failure; + } + } rcu_read_unlock(); if (rt->dst.dev) @@ -2877,10 +2884,6 @@ net->ipv6.sysctl.ip6_rt_mtu_expires = 10*60*HZ; net->ipv6.sysctl.ip6_rt_min_advmss = IPV6_MIN_MTU - 20 - 40; -#ifdef CONFIG_PROC_FS - proc_net_fops_create(net, "ipv6_route", 0, &ipv6_route_proc_fops); - proc_net_fops_create(net, "rt6_stats", S_IRUGO, &rt6_stats_seq_fops); -#endif net->ipv6.ip6_rt_gc_expire = 30*HZ; ret = 0; @@ -2901,10 +2904,6 @@ static void __net_exit ip6_route_net_exit(struct net *net) { -#ifdef CONFIG_PROC_FS - proc_net_remove(net, "ipv6_route"); - proc_net_remove(net, "rt6_stats"); -#endif kfree(net->ipv6.ip6_null_entry); #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); @@ -2913,11 +2912,33 @@ dst_entries_destroy(&net->ipv6.ip6_dst_ops); } +static int __net_init ip6_route_net_init_late(struct net *net) +{ +#ifdef CONFIG_PROC_FS + proc_net_fops_create(net, "ipv6_route", 0, &ipv6_route_proc_fops); + proc_net_fops_create(net, "rt6_stats", S_IRUGO, &rt6_stats_seq_fops); +#endif + return 0; +} + +static void __net_exit ip6_route_net_exit_late(struct net *net) +{ +#ifdef CONFIG_PROC_FS + proc_net_remove(net, "ipv6_route"); + proc_net_remove(net, "rt6_stats"); +#endif +} + static struct pernet_operations ip6_route_net_ops = { .init = ip6_route_net_init, .exit = ip6_route_net_exit, }; +static struct pernet_operations ip6_route_net_late_ops = { + .init = ip6_route_net_init_late, + .exit = ip6_route_net_exit_late, +}; + static struct notifier_block ip6_route_dev_notifier = { .notifier_call = ip6_route_dev_notify, .priority = 0, @@ -2967,19 +2988,25 @@ if (ret) goto xfrm6_init; + ret = register_pernet_subsys(&ip6_route_net_late_ops); + if (ret) + goto fib6_rules_init; + ret = -ENOBUFS; if (__rtnl_register(PF_INET6, RTM_NEWROUTE, inet6_rtm_newroute, NULL, NULL) || __rtnl_register(PF_INET6, RTM_DELROUTE, inet6_rtm_delroute, NULL, NULL) || __rtnl_register(PF_INET6, RTM_GETROUTE, inet6_rtm_getroute, NULL, NULL)) - goto fib6_rules_init; + goto out_register_late_subsys; ret = register_netdevice_notifier(&ip6_route_dev_notifier); if (ret) - goto fib6_rules_init; + goto out_register_late_subsys; out: return ret; +out_register_late_subsys: + unregister_pernet_subsys(&ip6_route_net_late_ops); fib6_rules_init: fib6_rules_cleanup(); xfrm6_init: @@ -2998,6 +3025,7 @@ void ip6_route_cleanup(void) { unregister_netdevice_notifier(&ip6_route_dev_notifier); + unregister_pernet_subsys(&ip6_route_net_late_ops); fib6_rules_cleanup(); xfrm6_fini(); fib6_gc_cleanup(); --- linux-3.2.0.orig/net/ipv6/esp6.c +++ linux-3.2.0/net/ipv6/esp6.c @@ -411,19 +411,15 @@ struct esp_data *esp = x->data; u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4); u32 align = max_t(u32, blksize, esp->padlen); - u32 rem; + unsigned int net_adj; - mtu -= x->props.header_len + crypto_aead_authsize(esp->aead); - rem = mtu & (align - 1); - mtu &= ~(align - 1); + if (x->props.mode != XFRM_MODE_TUNNEL) + net_adj = sizeof(struct ipv6hdr); + else + net_adj = 0; - if (x->props.mode != XFRM_MODE_TUNNEL) { - u32 padsize = ((blksize - 1) & 7) + 1; - mtu -= blksize - padsize; - mtu += min_t(u32, blksize - padsize, rem); - } - - return mtu - 2; + return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) - + net_adj) & ~(align - 1)) + (net_adj - 2); } static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, --- linux-3.2.0.orig/net/ipv6/udplite.c +++ linux-3.2.0/net/ipv6/udplite.c @@ -56,7 +56,7 @@ .compat_setsockopt = compat_udpv6_setsockopt, .compat_getsockopt = compat_udpv6_getsockopt, #endif - .clear_sk = sk_prot_clear_portaddr_nulls, + .clear_sk = udp_v6_clear_sk, }; static struct inet_protosw udplite6_protosw = { --- linux-3.2.0.orig/net/ipv6/xfrm6_mode_beet.c +++ linux-3.2.0/net/ipv6/xfrm6_mode_beet.c @@ -80,7 +80,6 @@ static int xfrm6_beet_input(struct xfrm_state *x, struct sk_buff *skb) { struct ipv6hdr *ip6h; - const unsigned char *old_mac; int size = sizeof(struct ipv6hdr); int err; @@ -90,10 +89,7 @@ __skb_push(skb, size); skb_reset_network_header(skb); - - old_mac = skb_mac_header(skb); - skb_set_mac_header(skb, -skb->mac_len); - memmove(skb_mac_header(skb), old_mac, skb->mac_len); + skb_mac_header_rebuild(skb); xfrm6_beet_make_header(skb); --- linux-3.2.0.orig/net/ipv6/ip6_input.c +++ linux-3.2.0/net/ipv6/ip6_input.c @@ -111,6 +111,27 @@ ipv6_addr_loopback(&hdr->daddr)) goto err; + /* RFC4291 Errata ID: 3480 + * Interface-Local scope spans only a single interface on a + * node and is useful only for loopback transmission of + * multicast. Packets with interface-local scope received + * from another node must be discarded. + */ + if (!(skb->pkt_type == PACKET_LOOPBACK || + dev->flags & IFF_LOOPBACK) && + ipv6_addr_is_multicast(&hdr->daddr) && + IPV6_ADDR_MC_SCOPE(&hdr->daddr) == 1) + goto err; + + /* RFC4291 2.7 + * Nodes must not originate a packet to a multicast address whose scope + * field contains the reserved value 0; if such a packet is received, it + * must be silently dropped. + */ + if (ipv6_addr_is_multicast(&hdr->daddr) && + IPV6_ADDR_MC_SCOPE(&hdr->daddr) == 0) + goto err; + /* * RFC4291 2.7 * Multicast addresses must not be used as source addresses in IPv6 @@ -265,7 +286,8 @@ * IPv6 multicast router mode is now supported ;) */ if (dev_net(skb->dev)->ipv6.devconf_all->mc_forwarding && - !(ipv6_addr_type(&hdr->daddr) & IPV6_ADDR_LINKLOCAL) && + !(ipv6_addr_type(&hdr->daddr) & + (IPV6_ADDR_LOOPBACK|IPV6_ADDR_LINKLOCAL)) && likely(!(IP6CB(skb)->flags & IP6SKB_FORWARDED))) { /* * Okay, we try to forward - split and duplicate --- linux-3.2.0.orig/net/ipv6/raw.c +++ linux-3.2.0/net/ipv6/raw.c @@ -107,21 +107,20 @@ * 0 - deliver * 1 - block */ -static __inline__ int icmpv6_filter(struct sock *sk, struct sk_buff *skb) +static int icmpv6_filter(const struct sock *sk, const struct sk_buff *skb) { - struct icmp6hdr *icmph; - struct raw6_sock *rp = raw6_sk(sk); + struct icmp6hdr *_hdr; + const struct icmp6hdr *hdr; - if (pskb_may_pull(skb, sizeof(struct icmp6hdr))) { - __u32 *data = &rp->filter.data[0]; - int bit_nr; + hdr = skb_header_pointer(skb, skb_transport_offset(skb), + sizeof(_hdr), &_hdr); + if (hdr) { + const __u32 *data = &raw6_sk(sk)->filter.data[0]; + unsigned int type = hdr->icmp6_type; - icmph = (struct icmp6hdr *) skb->data; - bit_nr = icmph->icmp6_type; - - return (data[bit_nr >> 5] & (1 << (bit_nr & 31))) != 0; + return (data[type >> 5] & (1U << (type & 31))) != 0; } - return 0; + return 1; } #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) @@ -131,7 +130,7 @@ int rawv6_mh_filter_register(mh_filter_t filter) { - RCU_INIT_POINTER(mh_filter, filter); + rcu_assign_pointer(mh_filter, filter); return 0; } EXPORT_SYMBOL(rawv6_mh_filter_register); --- linux-3.2.0.orig/net/ipv6/tcp_ipv6.c +++ linux-3.2.0/net/ipv6/tcp_ipv6.c @@ -1048,7 +1048,8 @@ __tcp_v6_send_check(buff, &fl6.saddr, &fl6.daddr); fl6.flowi6_proto = IPPROTO_TCP; - fl6.flowi6_oif = inet6_iif(skb); + if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL) + fl6.flowi6_oif = inet6_iif(skb); fl6.fl6_dport = t1->dest; fl6.fl6_sport = t1->source; security_skb_classify_flow(skb, flowi6_to_flowi(&fl6)); @@ -1084,7 +1085,7 @@ #ifdef CONFIG_TCP_MD5SIG if (sk) - key = tcp_v6_md5_do_lookup(sk, &ipv6_hdr(skb)->daddr); + key = tcp_v6_md5_do_lookup(sk, &ipv6_hdr(skb)->saddr); #endif if (th->ack) @@ -1494,6 +1495,10 @@ tcp_mtup_init(newsk); tcp_sync_mss(newsk, dst_mtu(dst)); newtp->advmss = dst_metric_advmss(dst); + if (tcp_sk(sk)->rx_opt.user_mss && + tcp_sk(sk)->rx_opt.user_mss < newtp->advmss) + newtp->advmss = tcp_sk(sk)->rx_opt.user_mss; + tcp_initialize_rcv_mss(newsk); if (tcp_rsk(req)->snt_synack) tcp_valid_rtt_meas(newsk, @@ -1519,7 +1524,8 @@ #endif if (__inet_inherit_port(sk, newsk) < 0) { - sock_put(newsk); + inet_csk_prepare_forced_close(newsk); + tcp_done(newsk); goto out; } __inet6_hash(newsk, NULL); @@ -2190,6 +2196,17 @@ } #endif +static void tcp_v6_clear_sk(struct sock *sk, int size) +{ + struct inet_sock *inet = inet_sk(sk); + + /* we do not want to clear pinet6 field, because of RCU lookups */ + sk_prot_clear_nulls(sk, offsetof(struct inet_sock, pinet6)); + + size -= offsetof(struct inet_sock, pinet6) + sizeof(inet->pinet6); + memset(&inet->pinet6 + 1, 0, size); +} + struct proto tcpv6_prot = { .name = "TCPv6", .owner = THIS_MODULE, @@ -2229,6 +2246,7 @@ .compat_setsockopt = compat_tcp_setsockopt, .compat_getsockopt = compat_tcp_getsockopt, #endif + .clear_sk = tcp_v6_clear_sk, }; static const struct inet6_protocol tcpv6_protocol = { --- linux-3.2.0.orig/net/ipv6/xfrm6_policy.c +++ linux-3.2.0/net/ipv6/xfrm6_policy.c @@ -96,8 +96,10 @@ dev_hold(dev); xdst->u.rt6.rt6i_idev = in6_dev_get(dev); - if (!xdst->u.rt6.rt6i_idev) + if (!xdst->u.rt6.rt6i_idev) { + dev_put(dev); return -ENODEV; + } xdst->u.rt6.rt6i_peer = rt->rt6i_peer; if (rt->rt6i_peer) --- linux-3.2.0.orig/net/ipv6/netfilter/nf_conntrack_reasm.c +++ linux-3.2.0/net/ipv6/netfilter/nf_conntrack_reasm.c @@ -14,6 +14,8 @@ * 2 of the License, or (at your option) any later version. */ +#define pr_fmt(fmt) "IPv6-nf: " fmt + #include #include #include @@ -176,13 +178,12 @@ q = inet_frag_find(&nf_init_frags, &nf_frags, &arg, hash); local_bh_enable(); - if (q == NULL) - goto oom; + if (IS_ERR_OR_NULL(q)) { + inet_frag_maybe_warn_overflow(q, pr_fmt()); + return NULL; + } return container_of(q, struct nf_ct_frag6_queue, q); - -oom: - return NULL; } --- linux-3.2.0.orig/net/ipv4/devinet.c +++ linux-3.2.0/net/ipv4/devinet.c @@ -258,7 +258,7 @@ ip_mc_up(in_dev); /* we can receive as soon as ip_ptr is set -- do this last */ - RCU_INIT_POINTER(dev->ip_ptr, in_dev); + rcu_assign_pointer(dev->ip_ptr, in_dev); out: return in_dev; out_kfree: --- linux-3.2.0.orig/net/ipv4/ip_sockglue.c +++ linux-3.2.0/net/ipv4/ip_sockglue.c @@ -468,18 +468,27 @@ struct inet_sock *inet = inet_sk(sk); int val = 0, err; - if (((1<= sizeof(int)) { if (get_user(val, (int __user *) optval)) return -EFAULT; @@ -591,7 +600,7 @@ case IP_TTL: if (optlen < 1) goto e_inval; - if (val != -1 && (val < 0 || val > 255)) + if (val != -1 && (val < 1 || val > 255)) goto e_inval; inet->uc_ttl = val; break; --- linux-3.2.0.orig/net/ipv4/cipso_ipv4.c +++ linux-3.2.0/net/ipv4/cipso_ipv4.c @@ -1725,8 +1725,10 @@ case CIPSO_V4_TAG_LOCAL: /* This is a non-standard tag that we only allow for * local connections, so if the incoming interface is - * not the loopback device drop the packet. */ - if (!(skb->dev->flags & IFF_LOOPBACK)) { + * not the loopback device drop the packet. Further, + * there is no legitimate reason for setting this from + * userspace so reject it if skb is NULL. */ + if (skb == NULL || !(skb->dev->flags & IFF_LOOPBACK)) { err_offset = opt_iter; goto validate_return_locked; } --- linux-3.2.0.orig/net/ipv4/esp4.c +++ linux-3.2.0/net/ipv4/esp4.c @@ -137,8 +137,6 @@ /* skb is pure payload to encrypt */ - err = -ENOMEM; - esp = x->data; aead = esp->aead; alen = crypto_aead_authsize(aead); @@ -174,8 +172,10 @@ } tmp = esp_alloc_tmp(aead, nfrags + sglists, seqhilen); - if (!tmp) + if (!tmp) { + err = -ENOMEM; goto error; + } seqhi = esp_tmp_seqhi(tmp); iv = esp_tmp_iv(aead, tmp, seqhilen); @@ -457,28 +457,22 @@ struct esp_data *esp = x->data; u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4); u32 align = max_t(u32, blksize, esp->padlen); - u32 rem; - - mtu -= x->props.header_len + crypto_aead_authsize(esp->aead); - rem = mtu & (align - 1); - mtu &= ~(align - 1); + unsigned int net_adj; switch (x->props.mode) { - case XFRM_MODE_TUNNEL: - break; - default: case XFRM_MODE_TRANSPORT: - /* The worst case */ - mtu -= blksize - 4; - mtu += min_t(u32, blksize - 4, rem); - break; case XFRM_MODE_BEET: - /* The worst case. */ - mtu += min_t(u32, IPV4_BEET_PHMAXLEN, rem); + net_adj = sizeof(struct iphdr); + break; + case XFRM_MODE_TUNNEL: + net_adj = 0; break; + default: + BUG(); } - return mtu - 2; + return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) - + net_adj) & ~(align - 1)) + (net_adj - 2); } static void esp4_err(struct sk_buff *skb, u32 info) --- linux-3.2.0.orig/net/ipv4/af_inet.c +++ linux-3.2.0/net/ipv4/af_inet.c @@ -226,8 +226,12 @@ u32 inet_ehash_secret __read_mostly; EXPORT_SYMBOL(inet_ehash_secret); +u32 ipv6_hash_secret __read_mostly; +EXPORT_SYMBOL(ipv6_hash_secret); + /* - * inet_ehash_secret must be set exactly once + * inet_ehash_secret must be set exactly once, and to a non nul value + * ipv6_hash_secret must be set exactly once. */ void build_ehash_secret(void) { @@ -237,7 +241,8 @@ get_random_bytes(&rnd, sizeof(rnd)); } while (rnd == 0); - cmpxchg(&inet_ehash_secret, 0, rnd); + if (cmpxchg(&inet_ehash_secret, 0, rnd) == 0) + get_random_bytes(&ipv6_hash_secret, sizeof(ipv6_hash_secret)); } EXPORT_SYMBOL(build_ehash_secret); --- linux-3.2.0.orig/net/ipv4/ipmr.c +++ linux-3.2.0/net/ipv4/ipmr.c @@ -125,6 +125,8 @@ static struct kmem_cache *mrt_cachep __read_mostly; static struct mr_table *ipmr_new_table(struct net *net, u32 id); +static void ipmr_free_table(struct mr_table *mrt); + static int ip_mr_forward(struct net *net, struct mr_table *mrt, struct sk_buff *skb, struct mfc_cache *cache, int local); @@ -132,6 +134,7 @@ struct sk_buff *pkt, vifi_t vifi, int assert); static int __ipmr_fill_mroute(struct mr_table *mrt, struct sk_buff *skb, struct mfc_cache *c, struct rtmsg *rtm); +static void mroute_clean_tables(struct mr_table *mrt); static void ipmr_expire_process(unsigned long arg); #ifdef CONFIG_IP_MROUTE_MULTIPLE_TABLES @@ -272,7 +275,7 @@ list_for_each_entry_safe(mrt, next, &net->ipv4.mr_tables, list) { list_del(&mrt->list); - kfree(mrt); + ipmr_free_table(mrt); } fib_rules_unregister(net->ipv4.mr_rules_ops); } @@ -300,7 +303,7 @@ static void __net_exit ipmr_rules_exit(struct net *net) { - kfree(net->ipv4.mrt); + ipmr_free_table(net->ipv4.mrt); } #endif @@ -337,6 +340,13 @@ return mrt; } +static void ipmr_free_table(struct mr_table *mrt) +{ + del_timer_sync(&mrt->ipmr_expire_timer); + mroute_clean_tables(mrt); + kfree(mrt); +} + /* Service routines creating virtual interfaces: DVMRP tunnels and PIMREG */ static void ipmr_del_tunnel(struct net_device *dev, struct vifctl *v) @@ -1225,7 +1235,7 @@ ret = ip_ra_control(sk, 1, mrtsock_destruct); if (ret == 0) { - RCU_INIT_POINTER(mrt->mroute_sk, sk); + rcu_assign_pointer(mrt->mroute_sk, sk); IPV4_DEVCONF_ALL(net, MC_FORWARDING)++; } rtnl_unlock(); --- linux-3.2.0.orig/net/ipv4/fib_trie.c +++ linux-3.2.0/net/ipv4/fib_trie.c @@ -205,7 +205,7 @@ return (struct tnode *)(parent & ~NODE_TYPE_MASK); } -/* Same as RCU_INIT_POINTER +/* Same as rcu_assign_pointer * but that macro() assumes that value is a pointer. */ static inline void node_set_parent(struct rt_trie_node *node, struct tnode *ptr) @@ -529,7 +529,7 @@ if (n) node_set_parent(n, tn); - RCU_INIT_POINTER(tn->child[i], n); + rcu_assign_pointer(tn->child[i], n); } #define MAX_WORK 10 @@ -1015,7 +1015,7 @@ tp = node_parent((struct rt_trie_node *) tn); if (!tp) - RCU_INIT_POINTER(t->trie, (struct rt_trie_node *)tn); + rcu_assign_pointer(t->trie, (struct rt_trie_node *)tn); tnode_free_flush(); if (!tp) @@ -1027,7 +1027,7 @@ if (IS_TNODE(tn)) tn = (struct tnode *)resize(t, (struct tnode *)tn); - RCU_INIT_POINTER(t->trie, (struct rt_trie_node *)tn); + rcu_assign_pointer(t->trie, (struct rt_trie_node *)tn); tnode_free_flush(); } @@ -1164,7 +1164,7 @@ put_child(t, (struct tnode *)tp, cindex, (struct rt_trie_node *)tn); } else { - RCU_INIT_POINTER(t->trie, (struct rt_trie_node *)tn); + rcu_assign_pointer(t->trie, (struct rt_trie_node *)tn); tp = tn; } } @@ -1372,6 +1372,8 @@ if (fa->fa_tos && fa->fa_tos != flp->flowi4_tos) continue; + if (fi->fib_dead) + continue; if (fa->fa_info->fib_scope < flp->flowi4_scope) continue; fib_alias_accessed(fa); --- linux-3.2.0.orig/net/ipv4/syncookies.c +++ linux-3.2.0/net/ipv4/syncookies.c @@ -278,6 +278,7 @@ struct rtable *rt; __u8 rcv_wscale; bool ecn_ok = false; + struct flowi4 fl4; if (!sysctl_tcp_syncookies || !th->ack || th->rst) goto out; @@ -346,20 +347,16 @@ * hasn't changed since we received the original syn, but I see * no easy way to do this. */ - { - struct flowi4 fl4; - - flowi4_init_output(&fl4, 0, sk->sk_mark, RT_CONN_FLAGS(sk), - RT_SCOPE_UNIVERSE, IPPROTO_TCP, - inet_sk_flowi_flags(sk), - (opt && opt->srr) ? opt->faddr : ireq->rmt_addr, - ireq->loc_addr, th->source, th->dest); - security_req_classify_flow(req, flowi4_to_flowi(&fl4)); - rt = ip_route_output_key(sock_net(sk), &fl4); - if (IS_ERR(rt)) { - reqsk_free(req); - goto out; - } + flowi4_init_output(&fl4, sk->sk_bound_dev_if, sk->sk_mark, + RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE, IPPROTO_TCP, + inet_sk_flowi_flags(sk), + (opt && opt->srr) ? opt->faddr : ireq->rmt_addr, + ireq->loc_addr, th->source, th->dest); + security_req_classify_flow(req, flowi4_to_flowi(&fl4)); + rt = ip_route_output_key(sock_net(sk), &fl4); + if (IS_ERR(rt)) { + reqsk_free(req); + goto out; } /* Try to redo what tcp_v4_send_synack did. */ @@ -373,5 +370,10 @@ ireq->rcv_wscale = rcv_wscale; ret = get_cookie_sock(sk, skb, req, &rt->dst); + /* ip_queue_xmit() depends on our flow being setup + * Normal sockets get it right from inet_csk_route_child_sock() + */ + if (ret) + inet_sk(ret)->cork.fl.u.ip4 = fl4; out: return ret; } --- linux-3.2.0.orig/net/ipv4/inet_connection_sock.c +++ linux-3.2.0/net/ipv4/inet_connection_sock.c @@ -647,6 +647,22 @@ } EXPORT_SYMBOL(inet_csk_destroy_sock); +/* This function allows to force a closure of a socket after the call to + * tcp/dccp_create_openreq_child(). + */ +void inet_csk_prepare_forced_close(struct sock *sk) +{ + /* sk_clone_lock locked the socket and set refcnt to 2 */ + bh_unlock_sock(sk); + sock_put(sk); + + /* The below has to be done to allow calling inet_csk_destroy_sock */ + sock_set_flag(sk, SOCK_DEAD); + percpu_counter_inc(sk->sk_prot->orphan_count); + inet_sk(sk)->inet_num = 0; +} +EXPORT_SYMBOL(inet_csk_prepare_forced_close); + int inet_csk_listen_start(struct sock *sk, const int nr_table_entries) { struct inet_sock *inet = inet_sk(sk); --- linux-3.2.0.orig/net/ipv4/proc.c +++ linux-3.2.0/net/ipv4/proc.c @@ -233,7 +233,6 @@ SNMP_MIB_ITEM("TCPDSACKOfoSent", LINUX_MIB_TCPDSACKOFOSENT), SNMP_MIB_ITEM("TCPDSACKRecv", LINUX_MIB_TCPDSACKRECV), SNMP_MIB_ITEM("TCPDSACKOfoRecv", LINUX_MIB_TCPDSACKOFORECV), - SNMP_MIB_ITEM("TCPAbortOnSyn", LINUX_MIB_TCPABORTONSYN), SNMP_MIB_ITEM("TCPAbortOnData", LINUX_MIB_TCPABORTONDATA), SNMP_MIB_ITEM("TCPAbortOnClose", LINUX_MIB_TCPABORTONCLOSE), SNMP_MIB_ITEM("TCPAbortOnMemory", LINUX_MIB_TCPABORTONMEMORY), @@ -257,6 +256,8 @@ SNMP_MIB_ITEM("TCPTimeWaitOverflow", LINUX_MIB_TCPTIMEWAITOVERFLOW), SNMP_MIB_ITEM("TCPReqQFullDoCookies", LINUX_MIB_TCPREQQFULLDOCOOKIES), SNMP_MIB_ITEM("TCPReqQFullDrop", LINUX_MIB_TCPREQQFULLDROP), + SNMP_MIB_ITEM("TCPChallengeACK", LINUX_MIB_TCPCHALLENGEACK), + SNMP_MIB_ITEM("TCPSYNChallenge", LINUX_MIB_TCPSYNCHALLENGE), SNMP_MIB_SENTINEL }; --- linux-3.2.0.orig/net/ipv4/sysctl_net_ipv4.c +++ linux-3.2.0/net/ipv4/sysctl_net_ipv4.c @@ -552,6 +552,13 @@ .mode = 0644, .proc_handler = proc_dointvec }, + { + .procname = "tcp_challenge_ack_limit", + .data = &sysctl_tcp_challenge_ack_limit, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec + }, #ifdef CONFIG_NET_DMA { .procname = "tcp_dma_copybreak", --- linux-3.2.0.orig/net/ipv4/udp.c +++ linux-3.2.0/net/ipv4/udp.c @@ -766,7 +766,7 @@ /* * Push out all pending data as one UDP datagram. Socket is locked. */ -static int udp_push_pending_frames(struct sock *sk) +int udp_push_pending_frames(struct sock *sk) { struct udp_sock *up = udp_sk(sk); struct inet_sock *inet = inet_sk(sk); @@ -785,6 +785,7 @@ up->pending = 0; return err; } +EXPORT_SYMBOL(udp_push_pending_frames); int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, size_t len) --- linux-3.2.0.orig/net/ipv4/tcp_ipv4.c +++ linux-3.2.0/net/ipv4/tcp_ipv4.c @@ -630,7 +630,7 @@ arg.iov[0].iov_len = sizeof(rep.th); #ifdef CONFIG_TCP_MD5SIG - key = sk ? tcp_v4_md5_do_lookup(sk, ip_hdr(skb)->daddr) : NULL; + key = sk ? tcp_v4_md5_do_lookup(sk, ip_hdr(skb)->saddr) : NULL; if (key) { rep.opt[0] = htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | @@ -650,6 +650,12 @@ arg.iov[0].iov_len, IPPROTO_TCP, 0); arg.csumoffset = offsetof(struct tcphdr, check) / 2; arg.flags = (sk && inet_sk(sk)->transparent) ? IP_REPLY_ARG_NOSRCCHECK : 0; + /* When socket is gone, all binding information is lost. + * routing might fail in this case. No choice here, if we choose to force + * input interface, we will misroute in case of asymmetric route. + */ + if (sk) + arg.bound_dev_if = sk->sk_bound_dev_if; net = dev_net(skb_dst(skb)->dev); arg.tos = ip_hdr(skb)->tos; @@ -1460,9 +1466,13 @@ inet_csk(newsk)->icsk_ext_hdr_len = inet_opt->opt.optlen; newinet->inet_id = newtp->write_seq ^ jiffies; - if (!dst && (dst = inet_csk_route_child_sock(sk, newsk, req)) == NULL) - goto put_and_exit; - + if (!dst) { + dst = inet_csk_route_child_sock(sk, newsk, req); + if (!dst) + goto put_and_exit; + } else { + /* syncookie case : see end of cookie_v4_check() */ + } sk_setup_caps(newsk, dst); tcp_mtup_init(newsk); @@ -1510,9 +1520,8 @@ NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_LISTENDROPS); return NULL; put_and_exit: - tcp_clear_xmit_timers(newsk); - bh_unlock_sock(newsk); - sock_put(newsk); + inet_csk_prepare_forced_close(newsk); + tcp_done(newsk); goto exit; } EXPORT_SYMBOL(tcp_v4_syn_recv_sock); --- linux-3.2.0.orig/net/ipv4/inet_fragment.c +++ linux-3.2.0/net/ipv4/inet_fragment.c @@ -21,6 +21,7 @@ #include #include +#include #include static void inet_frag_secret_rebuild(unsigned long dummy) @@ -271,6 +272,7 @@ { struct inet_frag_queue *q; struct hlist_node *n; + int depth = 0; hlist_for_each_entry(q, n, &f->hash[hash], list) { if (q->net == nf && f->match(q, key)) { @@ -278,9 +280,25 @@ read_unlock(&f->lock); return q; } + depth++; } read_unlock(&f->lock); - return inet_frag_create(nf, f, key); + if (depth <= INETFRAGS_MAXDEPTH) + return inet_frag_create(nf, f, key); + else + return ERR_PTR(-ENOBUFS); } EXPORT_SYMBOL(inet_frag_find); + +void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q, + const char *prefix) +{ + static const char msg[] = "inet_frag_find: Fragment hash bucket" + " list length grew over limit " __stringify(INETFRAGS_MAXDEPTH) + ". Dropping fragment.\n"; + + if (PTR_ERR(q) == -ENOBUFS) + LIMIT_NETDEBUG(KERN_WARNING "%s%s", prefix, msg); +} +EXPORT_SYMBOL(inet_frag_maybe_warn_overflow); --- linux-3.2.0.orig/net/ipv4/ipip.c +++ linux-3.2.0/net/ipv4/ipip.c @@ -231,7 +231,7 @@ (iter = rtnl_dereference(*tp)) != NULL; tp = &iter->next) { if (t == iter) { - RCU_INIT_POINTER(*tp, t->next); + rcu_assign_pointer(*tp, t->next); break; } } @@ -241,8 +241,8 @@ { struct ip_tunnel __rcu **tp = ipip_bucket(ipn, t); - RCU_INIT_POINTER(t->next, rtnl_dereference(*tp)); - RCU_INIT_POINTER(*tp, t); + rcu_assign_pointer(t->next, rtnl_dereference(*tp)); + rcu_assign_pointer(*tp, t); } static struct ip_tunnel * ipip_tunnel_locate(struct net *net, @@ -448,6 +448,7 @@ if (tos & 1) tos = old_iph->tos; + memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); if (!dst) { /* NBMA tunnel */ if ((rt = skb_rtable(skb)) == NULL) { @@ -531,7 +532,6 @@ skb->transport_header = skb->network_header; skb_push(skb, sizeof(struct iphdr)); skb_reset_network_header(skb); - memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); IPCB(skb)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED | IPSKB_REROUTED); skb_dst_drop(skb); @@ -792,7 +792,7 @@ return -ENOMEM; dev_hold(dev); - RCU_INIT_POINTER(ipn->tunnels_wc[0], tunnel); + rcu_assign_pointer(ipn->tunnels_wc[0], tunnel); return 0; } --- linux-3.2.0.orig/net/ipv4/ip_fragment.c +++ linux-3.2.0/net/ipv4/ip_fragment.c @@ -20,6 +20,8 @@ * Patrick McHardy : LRU queue of frag heads for evictor. */ +#define pr_fmt(fmt) "IPv4: " fmt + #include #include #include @@ -249,8 +251,7 @@ if (!head->dev) goto out_rcu_unlock; - /* skb dst is stale, drop it, and perform route lookup again */ - skb_dst_drop(head); + /* skb has no dst, perform route lookup again */ iph = ip_hdr(head); err = ip_route_input_noref(head, iph->daddr, iph->saddr, iph->tos, head->dev); @@ -293,14 +294,12 @@ hash = ipqhashfn(iph->id, iph->saddr, iph->daddr, iph->protocol); q = inet_frag_find(&net->ipv4.frags, &ip4_frags, &arg, hash); - if (q == NULL) - goto out_nomem; + if (IS_ERR_OR_NULL(q)) { + inet_frag_maybe_warn_overflow(q, pr_fmt()); + return NULL; + } return container_of(q, struct ipq, q); - -out_nomem: - LIMIT_NETDEBUG(KERN_ERR "ip_frag_create: no memory left !\n"); - return NULL; } /* Is the fragment too far ahead to be part of ipq? */ @@ -518,8 +517,16 @@ qp->q.last_in |= INET_FRAG_FIRST_IN; if (qp->q.last_in == (INET_FRAG_FIRST_IN | INET_FRAG_LAST_IN) && - qp->q.meat == qp->q.len) - return ip_frag_reasm(qp, prev, dev); + qp->q.meat == qp->q.len) { + unsigned long orefdst = skb->_skb_refdst; + + skb->_skb_refdst = 0UL; + err = ip_frag_reasm(qp, prev, dev); + skb->_skb_refdst = orefdst; + return err; + } + + skb_dst_drop(skb); write_lock(&ip4_frags.lock); list_move_tail(&qp->q.lru_list, &qp->q.net->lru_list); @@ -684,28 +691,27 @@ struct sk_buff *ip_check_defrag(struct sk_buff *skb, u32 user) { - const struct iphdr *iph; + struct iphdr iph; u32 len; if (skb->protocol != htons(ETH_P_IP)) return skb; - if (!pskb_may_pull(skb, sizeof(struct iphdr))) + if (!skb_copy_bits(skb, 0, &iph, sizeof(iph))) return skb; - iph = ip_hdr(skb); - if (iph->ihl < 5 || iph->version != 4) - return skb; - if (!pskb_may_pull(skb, iph->ihl*4)) + if (iph.ihl < 5 || iph.version != 4) return skb; - iph = ip_hdr(skb); - len = ntohs(iph->tot_len); - if (skb->len < len || len < (iph->ihl * 4)) + + len = ntohs(iph.tot_len); + if (skb->len < len || len < (iph.ihl * 4)) return skb; - if (ip_is_fragment(ip_hdr(skb))) { + if (ip_is_fragment(&iph)) { skb = skb_share_check(skb, GFP_ATOMIC); if (skb) { + if (!pskb_may_pull(skb, iph.ihl*4)) + return skb; if (pskb_trim_rcsum(skb, len)) return skb; memset(IPCB(skb), 0, sizeof(struct inet_skb_parm)); --- linux-3.2.0.orig/net/ipv4/fib_semantics.c +++ linux-3.2.0/net/ipv4/fib_semantics.c @@ -146,6 +146,12 @@ { struct fib_info *fi = container_of(head, struct fib_info, rcu); + change_nexthops(fi) { + if (nexthop_nh->nh_dev) + dev_put(nexthop_nh->nh_dev); + } endfor_nexthops(fi); + + release_net(fi->fib_net); if (fi->fib_metrics != (u32 *) dst_default_metrics) kfree(fi->fib_metrics); kfree(fi); @@ -157,13 +163,7 @@ pr_warning("Freeing alive fib_info %p\n", fi); return; } - change_nexthops(fi) { - if (nexthop_nh->nh_dev) - dev_put(nexthop_nh->nh_dev); - nexthop_nh->nh_dev = NULL; - } endfor_nexthops(fi); fib_info_cnt--; - release_net(fi->fib_net); call_rcu(&fi->rcu, free_fib_info_rcu); } --- linux-3.2.0.orig/net/ipv4/ip_gre.c +++ linux-3.2.0/net/ipv4/ip_gre.c @@ -716,6 +716,7 @@ tiph = &tunnel->parms.iph; } + memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); if ((dst = tiph->daddr) == 0) { /* NBMA tunnel */ @@ -851,7 +852,6 @@ skb_reset_transport_header(skb); skb_push(skb, gre_hlen); skb_reset_network_header(skb); - memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); IPCB(skb)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED | IPSKB_REROUTED); skb_dst_drop(skb); --- linux-3.2.0.orig/net/ipv4/arp.c +++ linux-3.2.0/net/ipv4/arp.c @@ -867,7 +867,8 @@ if (addr_type == RTN_UNICAST && (arp_fwd_proxy(in_dev, dev, rt) || arp_fwd_pvlan(in_dev, dev, rt, sip, tip) || - pneigh_lookup(&arp_tbl, net, &tip, dev, 0))) { + (rt->dst.dev != dev && + pneigh_lookup(&arp_tbl, net, &tip, dev, 0)))) { n = neigh_event_ns(&arp_tbl, sha, &sip, dev); if (n) neigh_release(n); --- linux-3.2.0.orig/net/ipv4/xfrm4_mode_beet.c +++ linux-3.2.0/net/ipv4/xfrm4_mode_beet.c @@ -110,10 +110,7 @@ skb_push(skb, sizeof(*iph)); skb_reset_network_header(skb); - - memmove(skb->data - skb->mac_len, skb_mac_header(skb), - skb->mac_len); - skb_set_mac_header(skb, -skb->mac_len); + skb_mac_header_rebuild(skb); xfrm4_beet_make_header(skb); --- linux-3.2.0.orig/net/ipv4/tcp_input.c +++ linux-3.2.0/net/ipv4/tcp_input.c @@ -83,9 +83,12 @@ EXPORT_SYMBOL(sysctl_tcp_ecn); int sysctl_tcp_dsack __read_mostly = 1; int sysctl_tcp_app_win __read_mostly = 31; -int sysctl_tcp_adv_win_scale __read_mostly = 2; +int sysctl_tcp_adv_win_scale __read_mostly = 1; EXPORT_SYMBOL(sysctl_tcp_adv_win_scale); +/* rfc5961 challenge ack rate limiting */ +int sysctl_tcp_challenge_ack_limit = 100; + int sysctl_tcp_stdurg __read_mostly; int sysctl_tcp_rfc1337 __read_mostly; int sysctl_tcp_max_orphans __read_mostly = NR_FILE; @@ -112,6 +115,7 @@ #define FLAG_DSACKING_ACK 0x800 /* SACK blocks contained D-SACK info */ #define FLAG_NONHEAD_RETRANS_ACKED 0x1000 /* Non-head rexmitted data was ACKed */ #define FLAG_SACK_RENEGING 0x2000 /* snd_una advanced to a sacked seq */ +#define FLAG_UPDATE_TS_RECENT 0x4000 /* tcp_replace_ts_recent() */ #define FLAG_ACKED (FLAG_DATA_ACKED|FLAG_SYN_ACKED) #define FLAG_NOT_DUP (FLAG_DATA|FLAG_WIN_UPDATE|FLAG_ACKED) @@ -334,6 +338,7 @@ incr = __tcp_grow_window(sk, skb); if (incr) { + incr = max_t(int, incr, 2 * skb->len); tp->rcv_ssthresh = min(tp->rcv_ssthresh + incr, tp->window_clamp); inet_csk(sk)->icsk_ack.quick |= 1; @@ -473,8 +478,11 @@ if (!win_dep) { m -= (new_sample >> 3); new_sample += m; - } else if (m < new_sample) - new_sample = m << 3; + } else { + m <<= 3; + if (m < new_sample) + new_sample = m; + } } else { /* No previous measure. */ new_sample = m << 3; @@ -1310,25 +1318,26 @@ return in_sack; } -static u8 tcp_sacktag_one(const struct sk_buff *skb, struct sock *sk, - struct tcp_sacktag_state *state, +/* Mark the given newly-SACKed range as such, adjusting counters and hints. */ +static u8 tcp_sacktag_one(struct sock *sk, + struct tcp_sacktag_state *state, u8 sacked, + u32 start_seq, u32 end_seq, int dup_sack, int pcount) { struct tcp_sock *tp = tcp_sk(sk); - u8 sacked = TCP_SKB_CB(skb)->sacked; int fack_count = state->fack_count; /* Account D-SACK for retransmitted packet. */ if (dup_sack && (sacked & TCPCB_RETRANS)) { if (tp->undo_marker && tp->undo_retrans && - after(TCP_SKB_CB(skb)->end_seq, tp->undo_marker)) + after(end_seq, tp->undo_marker)) tp->undo_retrans--; if (sacked & TCPCB_SACKED_ACKED) state->reord = min(fack_count, state->reord); } /* Nothing to do; acked frame is about to be dropped (was ACKed). */ - if (!after(TCP_SKB_CB(skb)->end_seq, tp->snd_una)) + if (!after(end_seq, tp->snd_una)) return sacked; if (!(sacked & TCPCB_SACKED_ACKED)) { @@ -1347,13 +1356,13 @@ /* New sack for not retransmitted frame, * which was in hole. It is reordering. */ - if (before(TCP_SKB_CB(skb)->seq, + if (before(start_seq, tcp_highest_sack_seq(tp))) state->reord = min(fack_count, state->reord); /* SACK enhanced F-RTO (RFC4138; Appendix B) */ - if (!after(TCP_SKB_CB(skb)->end_seq, tp->frto_highmark)) + if (!after(end_seq, tp->frto_highmark)) state->flag |= FLAG_ONLY_ORIG_SACKED; } @@ -1371,8 +1380,7 @@ /* Lost marker hint past SACKed? Tweak RFC3517 cnt */ if (!tcp_is_fack(tp) && (tp->lost_skb_hint != NULL) && - before(TCP_SKB_CB(skb)->seq, - TCP_SKB_CB(tp->lost_skb_hint)->seq)) + before(start_seq, TCP_SKB_CB(tp->lost_skb_hint)->seq)) tp->lost_cnt_hint += pcount; if (fack_count > tp->fackets_out) @@ -1391,6 +1399,9 @@ return sacked; } +/* Shift newly-SACKed bytes from this skb to the immediately previous + * already-SACKed sk_buff. Mark the newly-SACKed bytes as such. + */ static int tcp_shifted_skb(struct sock *sk, struct sk_buff *skb, struct tcp_sacktag_state *state, unsigned int pcount, int shifted, int mss, @@ -1398,9 +1409,20 @@ { struct tcp_sock *tp = tcp_sk(sk); struct sk_buff *prev = tcp_write_queue_prev(sk, skb); + u32 start_seq = TCP_SKB_CB(skb)->seq; /* start of newly-SACKed */ + u32 end_seq = start_seq + shifted; /* end of newly-SACKed */ BUG_ON(!pcount); + /* Adjust counters and hints for the newly sacked sequence + * range but discard the return value since prev is already + * marked. We must tag the range first because the seq + * advancement below implicitly advances + * tcp_highest_sack_seq() when skb is highest_sack. + */ + tcp_sacktag_one(sk, state, TCP_SKB_CB(skb)->sacked, + start_seq, end_seq, dup_sack, pcount); + if (skb == tp->lost_skb_hint) tp->lost_cnt_hint += pcount; @@ -1427,9 +1449,6 @@ skb_shinfo(skb)->gso_type = 0; } - /* We discard results */ - tcp_sacktag_one(skb, sk, state, dup_sack, pcount); - /* Difference in this won't matter, both ACKed by the same cumul. ACK */ TCP_SKB_CB(prev)->sacked |= (TCP_SKB_CB(skb)->sacked & TCPCB_EVER_RETRANS); @@ -1577,6 +1596,10 @@ } } + /* tcp_sacktag_one() won't SACK-tag ranges below snd_una */ + if (!after(TCP_SKB_CB(skb)->seq + len, tp->snd_una)) + goto fallback; + if (!skb_shift(prev, skb, len)) goto fallback; if (!tcp_shifted_skb(sk, skb, state, pcount, len, mss, dup_sack)) @@ -1667,10 +1690,14 @@ break; if (in_sack) { - TCP_SKB_CB(skb)->sacked = tcp_sacktag_one(skb, sk, - state, - dup_sack, - tcp_skb_pcount(skb)); + TCP_SKB_CB(skb)->sacked = + tcp_sacktag_one(sk, + state, + TCP_SKB_CB(skb)->sacked, + TCP_SKB_CB(skb)->seq, + TCP_SKB_CB(skb)->end_seq, + dup_sack, + tcp_skb_pcount(skb)); if (!before(TCP_SKB_CB(skb)->seq, tcp_highest_sack_seq(tp))) @@ -2239,11 +2266,8 @@ if (tcp_is_reno(tp)) tcp_reset_reno_sack(tp); - if (!how) { - /* Push undo marker, if it was plain RTO and nothing - * was retransmitted. */ - tp->undo_marker = tp->snd_una; - } else { + tp->undo_marker = tp->snd_una; + if (how) { tp->sacked_out = 0; tp->fackets_out = 0; } @@ -2556,6 +2580,7 @@ if (cnt > packets) { if ((tcp_is_sack(tp) && !tcp_is_fack(tp)) || + (TCP_SKB_CB(skb)->sacked & TCPCB_SACKED_ACKED) || (oldcnt >= packets)) break; @@ -2844,11 +2869,14 @@ /* Do not moderate cwnd if it's already undone in cwr or recovery. */ if (tp->undo_marker) { - if (inet_csk(sk)->icsk_ca_state == TCP_CA_CWR) + if (inet_csk(sk)->icsk_ca_state == TCP_CA_CWR) { tp->snd_cwnd = min(tp->snd_cwnd, tp->snd_ssthresh); - else /* PRR */ + tp->snd_cwnd_stamp = tcp_time_stamp; + } else if (tp->snd_ssthresh < TCP_INFINITE_SSTHRESH) { + /* PRR algorithm. */ tp->snd_cwnd = tp->snd_ssthresh; - tp->snd_cwnd_stamp = tcp_time_stamp; + tp->snd_cwnd_stamp = tcp_time_stamp; + } } tcp_ca_event(sk, CA_EVENT_COMPLETE_CWR); } @@ -3625,6 +3653,11 @@ } } else { if (!(flag & FLAG_DATA_ACKED) && (tp->frto_counter == 1)) { + if (!tcp_packets_in_flight(tp)) { + tcp_enter_frto_loss(sk, 2, flag); + return true; + } + /* Prevent sending of new data. */ tp->snd_cwnd = min(tp->snd_cwnd, tcp_packets_in_flight(tp)); @@ -3673,6 +3706,45 @@ return 0; } +/* RFC 5961 7 [ACK Throttling] */ +static void tcp_send_challenge_ack(struct sock *sk) +{ + /* unprotected vars, we dont care of overwrites */ + static u32 challenge_timestamp; + static unsigned int challenge_count; + u32 now = jiffies / HZ; + + if (now != challenge_timestamp) { + challenge_timestamp = now; + challenge_count = 0; + } + if (++challenge_count <= sysctl_tcp_challenge_ack_limit) { + NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPCHALLENGEACK); + tcp_send_ack(sk); + } +} + +static void tcp_store_ts_recent(struct tcp_sock *tp) +{ + tp->rx_opt.ts_recent = tp->rx_opt.rcv_tsval; + tp->rx_opt.ts_recent_stamp = get_seconds(); +} + +static void tcp_replace_ts_recent(struct tcp_sock *tp, u32 seq) +{ + if (tp->rx_opt.saw_tstamp && !after(seq, tp->rcv_wup)) { + /* PAWS bug workaround wrt. ACK frames, the PAWS discard + * extra check below makes sure this can only happen + * for pure ACK frames. -DaveM + * + * Not only, also it occurs for expired timestamps. + */ + + if (tcp_paws_check(&tp->rx_opt, 0)) + tcp_store_ts_recent(tp); + } +} + /* This routine deals with incoming acks, but not outgoing ones. */ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag) { @@ -3691,8 +3763,14 @@ /* If the ack is older than previous acks * then we can probably ignore it. */ - if (before(ack, prior_snd_una)) + if (before(ack, prior_snd_una)) { + /* RFC 5961 5.2 [Blind Data Injection Attack].[Mitigation] */ + if (before(ack, prior_snd_una - tp->max_window)) { + tcp_send_challenge_ack(sk); + return -1; + } goto old_ack; + } /* If the ack includes data we haven't sent yet, discard * this segment (RFC793 Section 3.9). @@ -3715,6 +3793,12 @@ prior_fackets = tp->fackets_out; prior_in_flight = tcp_packets_in_flight(tp); + /* ts_recent update must be made after we are sure that the packet + * is in window. + */ + if (flag & FLAG_UPDATE_TS_RECENT) + tcp_replace_ts_recent(tp, TCP_SKB_CB(skb)->seq); + if (!(flag & FLAG_SLOWPATH) && after(ack, prior_snd_una)) { /* Window is constant, pure forward advance. * No more checks are required. @@ -4005,27 +4089,6 @@ EXPORT_SYMBOL(tcp_parse_md5sig_option); #endif -static inline void tcp_store_ts_recent(struct tcp_sock *tp) -{ - tp->rx_opt.ts_recent = tp->rx_opt.rcv_tsval; - tp->rx_opt.ts_recent_stamp = get_seconds(); -} - -static inline void tcp_replace_ts_recent(struct tcp_sock *tp, u32 seq) -{ - if (tp->rx_opt.saw_tstamp && !after(seq, tp->rcv_wup)) { - /* PAWS bug workaround wrt. ACK frames, the PAWS discard - * extra check below makes sure this can only happen - * for pure ACK frames. -DaveM - * - * Not only, also it occurs for expired timestamps. - */ - - if (tcp_paws_check(&tp->rx_opt, 0)) - tcp_store_ts_recent(tp); - } -} - /* Sorry, PAWS as specified is broken wrt. pure-ACKs -DaveM * * It is not fatal. If this ACK does _not_ change critical state (seqs, window) @@ -5216,8 +5279,8 @@ /* Does PAWS and seqno based validation of an incoming segment, flags will * play significant role here. */ -static int tcp_validate_incoming(struct sock *sk, struct sk_buff *skb, - const struct tcphdr *th, int syn_inerr) +static bool tcp_validate_incoming(struct sock *sk, struct sk_buff *skb, + const struct tcphdr *th, int syn_inerr) { const u8 *hash_location; struct tcp_sock *tp = tcp_sk(sk); @@ -5242,38 +5305,48 @@ * an acknowledgment should be sent in reply (unless the RST * bit is set, if so drop the segment and return)". */ - if (!th->rst) + if (!th->rst) { + if (th->syn) + goto syn_challenge; tcp_send_dupack(sk, skb); + } goto discard; } /* Step 2: check RST bit */ if (th->rst) { - tcp_reset(sk); + /* RFC 5961 3.2 : + * If sequence number exactly matches RCV.NXT, then + * RESET the connection + * else + * Send a challenge ACK + */ + if (TCP_SKB_CB(skb)->seq == tp->rcv_nxt) + tcp_reset(sk); + else + tcp_send_challenge_ack(sk); goto discard; } - /* ts_recent update must be made after we are sure that the packet - * is in window. - */ - tcp_replace_ts_recent(tp, TCP_SKB_CB(skb)->seq); - /* step 3: check security and precedence [ignored] */ - /* step 4: Check for a SYN in window. */ - if (th->syn && !before(TCP_SKB_CB(skb)->seq, tp->rcv_nxt)) { + /* step 4: Check for a SYN + * RFC 5691 4.2 : Send a challenge ack + */ + if (th->syn) { +syn_challenge: if (syn_inerr) TCP_INC_STATS_BH(sock_net(sk), TCP_MIB_INERRS); - NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPABORTONSYN); - tcp_reset(sk); - return -1; + NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPSYNCHALLENGE); + tcp_send_challenge_ack(sk); + goto discard; } - return 1; + return true; discard: __kfree_skb(skb); - return 0; + return false; } /* @@ -5303,7 +5376,6 @@ const struct tcphdr *th, unsigned int len) { struct tcp_sock *tp = tcp_sk(sk); - int res; /* * Header prediction. @@ -5388,7 +5460,9 @@ if (tp->copied_seq == tp->rcv_nxt && len - tcp_header_len <= tp->ucopy.len) { #ifdef CONFIG_NET_DMA - if (tcp_dma_try_early_copy(sk, skb, tcp_header_len)) { + if (tp->ucopy.task == current && + sock_owned_by_user(sk) && + tcp_dma_try_early_copy(sk, skb, tcp_header_len)) { copied_early = 1; eaten = 1; } @@ -5424,6 +5498,9 @@ if (tcp_checksum_complete_user(sk, skb)) goto csum_error; + if ((int)skb->truesize > sk->sk_forward_alloc) + goto step5; + /* Predicted packet is in window by definition. * seq == rcv_nxt and rcv_wup <= rcv_nxt. * Hence, check seq<=rcv_wup reduces to: @@ -5435,9 +5512,6 @@ tcp_rcv_rtt_measure_ts(sk, skb); - if ((int)skb->truesize > sk->sk_forward_alloc) - goto step5; - NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPHPHITS); /* Bulk data transfer: receiver */ @@ -5481,12 +5555,12 @@ * Standard slow path. */ - res = tcp_validate_incoming(sk, skb, th, 1); - if (res <= 0) - return -res; + if (!tcp_validate_incoming(sk, skb, th, 1)) + return 0; step5: - if (th->ack && tcp_ack(sk, skb, FLAG_SLOWPATH) < 0) + if (th->ack && + tcp_ack(sk, skb, FLAG_SLOWPATH | FLAG_UPDATE_TS_RECENT) < 0) goto discard; tcp_rcv_rtt_measure_ts(sk, skb); @@ -5793,7 +5867,6 @@ struct tcp_sock *tp = tcp_sk(sk); struct inet_connection_sock *icsk = inet_csk(sk); int queued = 0; - int res; tp->rx_opt.saw_tstamp = 0; @@ -5809,6 +5882,8 @@ goto discard; if (th->syn) { + if (th->fin) + goto discard; if (icsk->icsk_af_ops->conn_request(sk, skb) < 0) return 1; @@ -5846,13 +5921,13 @@ return 0; } - res = tcp_validate_incoming(sk, skb, th, 0); - if (res <= 0) - return -res; + if (!tcp_validate_incoming(sk, skb, th, 0)) + return 0; /* step 5: check the ACK field */ if (th->ack) { - int acceptable = tcp_ack(sk, skb, FLAG_SLOWPATH) > 0; + int acceptable = tcp_ack(sk, skb, FLAG_SLOWPATH | + FLAG_UPDATE_TS_RECENT) > 0; switch (sk->sk_state) { case TCP_SYN_RECV: --- linux-3.2.0.orig/net/ipv4/tcp_output.c +++ linux-3.2.0/net/ipv4/tcp_output.c @@ -835,11 +835,13 @@ &md5); tcp_header_size = tcp_options_size + sizeof(struct tcphdr); - if (tcp_packets_in_flight(tp) == 0) { + if (tcp_packets_in_flight(tp) == 0) tcp_ca_event(sk, CA_EVENT_TX_START); - skb->ooo_okay = 1; - } else - skb->ooo_okay = 0; + + /* if no packet is in qdisc/device queue, then allow XPS to select + * another queue. + */ + skb->ooo_okay = sk_wmem_alloc_get(sk) == 0; skb_push(skb, tcp_header_size); skb_reset_transport_header(skb); @@ -1093,6 +1095,13 @@ { int i, k, eat; + eat = min_t(int, len, skb_headlen(skb)); + if (eat) { + __skb_pull(skb, eat); + len -= eat; + if (!len) + return; + } eat = len; k = 0; for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { @@ -1124,11 +1133,7 @@ if (skb_cloned(skb) && pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) return -ENOMEM; - /* If len == headlen, we avoid __skb_pull to preserve alignment. */ - if (unlikely(len < skb_headlen(skb))) - __skb_pull(skb, len); - else - __pskb_trim_head(skb, len - skb_headlen(skb)); + __pskb_trim_head(skb, len); TCP_SKB_CB(skb)->seq += len; skb->ip_summed = CHECKSUM_PARTIAL; @@ -1138,11 +1143,9 @@ sk_mem_uncharge(sk, len); sock_set_flag(sk, SOCK_QUEUE_SHRUNK); - /* Any change of skb->len requires recalculation of tso - * factor and mss. - */ + /* Any change of skb->len requires recalculation of tso factor. */ if (tcp_skb_pcount(skb) > 1) - tcp_set_skb_tso_segs(sk, skb, tcp_current_mss(sk)); + tcp_set_skb_tso_segs(sk, skb, tcp_skb_mss(skb)); return 0; } @@ -1316,21 +1319,21 @@ * when we would be allowed to send the split-due-to-Nagle skb fully. */ static unsigned int tcp_mss_split_point(const struct sock *sk, const struct sk_buff *skb, - unsigned int mss_now, unsigned int cwnd) + unsigned int mss_now, unsigned int max_segs) { const struct tcp_sock *tp = tcp_sk(sk); - u32 needed, window, cwnd_len; + u32 needed, window, max_len; window = tcp_wnd_end(tp) - TCP_SKB_CB(skb)->seq; - cwnd_len = mss_now * cwnd; + max_len = mss_now * max_segs; - if (likely(cwnd_len <= window && skb != tcp_write_queue_tail(sk))) - return cwnd_len; + if (likely(max_len <= window && skb != tcp_write_queue_tail(sk))) + return max_len; needed = min(skb->len, window); - if (cwnd_len <= needed) - return cwnd_len; + if (max_len <= needed) + return max_len; return needed - needed % mss_now; } @@ -1558,7 +1561,8 @@ limit = min(send_win, cong_win); /* If a full-sized TSO skb can be sent, do it. */ - if (limit >= sk->sk_gso_max_size) + if (limit >= min_t(unsigned int, sk->sk_gso_max_size, + sk->sk_gso_max_segs * tp->mss_cache)) goto send_now; /* Middle in queue won't get any more data, full sendable already? */ @@ -1581,12 +1585,15 @@ * frame, so if we have space for more than 3 frames * then send now. */ - if (limit > tcp_max_burst(tp) * tp->mss_cache) + if (limit > tcp_max_tso_deferred_mss(tp) * tp->mss_cache) goto send_now; } - /* Ok, it looks like it is advisable to defer. */ - tp->tso_deferred = 1 | (jiffies << 1); + /* Ok, it looks like it is advisable to defer. + * Do not rearm the timer if already set to not break TCP ACK clocking. + */ + if (!tp->tso_deferred) + tp->tso_deferred = 1 | (jiffies << 1); return 1; @@ -1784,7 +1791,9 @@ limit = mss_now; if (tso_segs > 1 && !tcp_urg_mode(tp)) limit = tcp_mss_split_point(sk, skb, mss_now, - cwnd_quota); + min_t(unsigned int, + cwnd_quota, + sk->sk_gso_max_segs)); if (skb->len > limit && unlikely(tso_fragment(sk, skb, limit, mss_now, gfp))) @@ -2059,7 +2068,7 @@ /* Punt if not enough space exists in the first SKB for * the data in the second */ - if (skb->len > skb_tailroom(to)) + if (skb->len > skb_availroom(to)) break; if (after(TCP_SKB_CB(skb)->end_seq, tcp_wnd_end(tp))) --- linux-3.2.0.orig/net/ipv4/xfrm4_mode_tunnel.c +++ linux-3.2.0/net/ipv4/xfrm4_mode_tunnel.c @@ -66,7 +66,6 @@ static int xfrm4_mode_tunnel_input(struct xfrm_state *x, struct sk_buff *skb) { - const unsigned char *old_mac; int err = -EINVAL; if (XFRM_MODE_SKB_CB(skb)->protocol != IPPROTO_IPIP) @@ -84,10 +83,9 @@ if (!(x->props.flags & XFRM_STATE_NOECN)) ipip_ecn_decapsulate(skb); - old_mac = skb_mac_header(skb); - skb_set_mac_header(skb, -skb->mac_len); - memmove(skb_mac_header(skb), old_mac, skb->mac_len); skb_reset_network_header(skb); + skb_mac_header_rebuild(skb); + err = 0; out: --- linux-3.2.0.orig/net/ipv4/tcp.c +++ linux-3.2.0/net/ipv4/tcp.c @@ -481,14 +481,12 @@ !tp->urg_data || before(tp->urg_seq, tp->copied_seq) || !before(tp->urg_seq, tp->rcv_nxt)) { - struct sk_buff *skb; answ = tp->rcv_nxt - tp->copied_seq; - /* Subtract 1, if FIN is in queue. */ - skb = skb_peek_tail(&sk->sk_receive_queue); - if (answ && skb) - answ -= tcp_hdr(skb)->fin; + /* Subtract 1, if FIN was received */ + if (answ && sock_flag(sk, SOCK_DONE)) + answ--; } else answ = tp->urg_seq - tp->copied_seq; release_sock(sk); @@ -701,11 +699,12 @@ skb = alloc_skb_fclone(size + sk->sk_prot->max_header, gfp); if (skb) { if (sk_wmem_schedule(sk, skb->truesize)) { + skb_reserve(skb, sk->sk_prot->max_header); /* * Make sure that we have exactly size bytes * available to the caller, no more, no less. */ - skb_reserve(skb, skb_tailroom(skb) - size); + skb->reserved_tailroom = skb->end - skb->tail - size; return skb; } __kfree_skb(skb); @@ -739,7 +738,9 @@ old_size_goal + mss_now > xmit_size_goal)) { xmit_size_goal = old_size_goal; } else { - tp->xmit_size_goal_segs = xmit_size_goal / mss_now; + tp->xmit_size_goal_segs = + min_t(u16, xmit_size_goal / mss_now, + sk->sk_gso_max_segs); xmit_size_goal = tp->xmit_size_goal_segs * mss_now; } } @@ -850,8 +851,7 @@ wait_for_sndbuf: set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); wait_for_memory: - if (copied) - tcp_push(sk, flags & ~MSG_MORE, mss_now, TCP_NAGLE_PUSH); + tcp_push(sk, flags & ~MSG_MORE, mss_now, TCP_NAGLE_PUSH); if ((err = sk_stream_wait_memory(sk, &timeo)) != 0) goto do_error; @@ -860,7 +860,7 @@ } out: - if (copied) + if (copied && !(flags & MSG_SENDPAGE_NOTLAST)) tcp_push(sk, flags, mss_now, tp->nonagle); return copied; @@ -995,10 +995,9 @@ copy = seglen; /* Where to copy to? */ - if (skb_tailroom(skb) > 0) { + if (skb_availroom(skb) > 0) { /* We have some space in skb head. Superb! */ - if (copy > skb_tailroom(skb)) - copy = skb_tailroom(skb); + copy = min_t(int, copy, skb_availroom(skb)); err = skb_add_data_nocache(sk, skb, from, copy); if (err) goto do_fault; @@ -1588,8 +1587,14 @@ } #ifdef CONFIG_NET_DMA - if (tp->ucopy.dma_chan) - dma_async_memcpy_issue_pending(tp->ucopy.dma_chan); + if (tp->ucopy.dma_chan) { + if (tp->rcv_wnd == 0 && + !skb_queue_empty(&sk->sk_async_wait_queue)) { + tcp_service_net_dma(sk, true); + tcp_cleanup_rbuf(sk, copied); + } else + dma_async_memcpy_issue_pending(tp->ucopy.dma_chan); + } #endif if (copied >= target) { /* Do not sleep, just process backlog. */ @@ -2392,7 +2397,10 @@ /* Cap the max timeout in ms TCP will retry/retrans * before giving up and aborting (ETIMEDOUT) a connection. */ - icsk->icsk_user_timeout = msecs_to_jiffies(val); + if (val < 0) + err = -EINVAL; + else + icsk->icsk_user_timeout = msecs_to_jiffies(val); break; default: err = -ENOPROTOOPT; @@ -3029,8 +3037,11 @@ for (i = 0; i < shi->nr_frags; ++i) { const struct skb_frag_struct *f = &shi->frags[i]; - struct page *page = skb_frag_page(f); - sg_set_page(&sg, page, skb_frag_size(f), f->page_offset); + unsigned int offset = f->page_offset; + struct page *page = skb_frag_page(f) + (offset >> PAGE_SHIFT); + + sg_set_page(&sg, page, skb_frag_size(f), + offset_in_page(offset)); if (crypto_hash_update(desc, &sg, skb_frag_size(f))) return 1; } @@ -3216,7 +3227,7 @@ { struct sk_buff *skb = NULL; unsigned long limit; - int i, max_share, cnt; + int i, max_rshare, max_wshare, cnt; unsigned long jiffy = jiffies; BUILD_BUG_ON(sizeof(struct tcp_skb_cb) > sizeof(skb->cb)); @@ -3280,15 +3291,16 @@ /* Set per-socket limits to no more than 1/128 the pressure threshold */ limit = ((unsigned long)sysctl_tcp_mem[1]) << (PAGE_SHIFT - 7); - max_share = min(4UL*1024*1024, limit); + max_wshare = min(4UL*1024*1024, limit); + max_rshare = min(6UL*1024*1024, limit); sysctl_tcp_wmem[0] = SK_MEM_QUANTUM; sysctl_tcp_wmem[1] = 16*1024; - sysctl_tcp_wmem[2] = max(64*1024, max_share); + sysctl_tcp_wmem[2] = max(64*1024, max_wshare); sysctl_tcp_rmem[0] = SK_MEM_QUANTUM; sysctl_tcp_rmem[1] = 87380; - sysctl_tcp_rmem[2] = max(87380, max_share); + sysctl_tcp_rmem[2] = max(87380, max_rshare); printk(KERN_INFO "TCP: Hash tables configured " "(established %u bind %u)\n", --- linux-3.2.0.orig/net/ipv4/ip_options.c +++ linux-3.2.0/net/ipv4/ip_options.c @@ -358,7 +358,6 @@ } switch (optptr[3]&0xF) { case IPOPT_TS_TSONLY: - opt->ts = optptr - iph; if (skb) timeptr = &optptr[optptr[2]-1]; opt->ts_needtime = 1; @@ -369,7 +368,6 @@ pp_ptr = optptr + 2; goto error; } - opt->ts = optptr - iph; if (rt) { memcpy(&optptr[optptr[2]-1], &rt->rt_spec_dst, 4); timeptr = &optptr[optptr[2]+3]; @@ -383,7 +381,6 @@ pp_ptr = optptr + 2; goto error; } - opt->ts = optptr - iph; { __be32 addr; memcpy(&addr, &optptr[optptr[2]-1], 4); @@ -416,12 +413,12 @@ pp_ptr = optptr + 3; goto error; } - opt->ts = optptr - iph; if (skb) { optptr[3] = (optptr[3]&0xF)|((overflow+1)<<4); opt->is_changed = 1; } } + opt->ts = optptr - iph; break; case IPOPT_RA: if (optlen < 4) { @@ -573,8 +570,8 @@ } if (srrptr + 3 <= srrspace) { opt->is_changed = 1; - ip_rt_get_source(&optptr[srrptr-1], skb, rt); ip_hdr(skb)->daddr = opt->nexthop; + ip_rt_get_source(&optptr[srrptr-1], skb, rt); optptr[2] = srrptr+4; } else if (net_ratelimit()) printk(KERN_CRIT "ip_forward(): Argh! Destination lost!\n"); --- linux-3.2.0.orig/net/ipv4/raw.c +++ linux-3.2.0/net/ipv4/raw.c @@ -131,18 +131,20 @@ * 0 - deliver * 1 - block */ -static __inline__ int icmp_filter(struct sock *sk, struct sk_buff *skb) +static int icmp_filter(const struct sock *sk, const struct sk_buff *skb) { - int type; + struct icmphdr _hdr; + const struct icmphdr *hdr; - if (!pskb_may_pull(skb, sizeof(struct icmphdr))) + hdr = skb_header_pointer(skb, skb_transport_offset(skb), + sizeof(_hdr), &_hdr); + if (!hdr) return 1; - type = icmp_hdr(skb)->type; - if (type < 32) { + if (hdr->type < 32) { __u32 data = raw_sk(sk)->filter.data; - return ((1 << type) & data) != 0; + return ((1U << hdr->type) & data) != 0; } /* Do not block unknown ICMP types */ --- linux-3.2.0.orig/net/ipv4/ping.c +++ linux-3.2.0/net/ipv4/ping.c @@ -321,8 +321,8 @@ struct iphdr *iph = (struct iphdr *)skb->data; struct icmphdr *icmph = (struct icmphdr *)(skb->data+(iph->ihl<<2)); struct inet_sock *inet_sock; - int type = icmph->type; - int code = icmph->code; + int type = icmp_hdr(skb)->type; + int code = icmp_hdr(skb)->code; struct net *net = dev_net(skb->dev); struct sock *sk; int harderr; --- linux-3.2.0.orig/net/ipv4/tcp_cong.c +++ linux-3.2.0/net/ipv4/tcp_cong.c @@ -290,9 +290,10 @@ left = tp->snd_cwnd - in_flight; if (sk_can_gso(sk) && left * sysctl_tcp_tso_win_divisor < tp->snd_cwnd && - left * tp->mss_cache < sk->sk_gso_max_size) - return 1; - return left <= tcp_max_burst(tp); + left * tp->mss_cache < sk->sk_gso_max_size && + left < sk->sk_gso_max_segs) + return true; + return left <= tcp_max_tso_deferred_mss(tp); } EXPORT_SYMBOL_GPL(tcp_is_cwnd_limited); --- linux-3.2.0.orig/net/ipv4/igmp.c +++ linux-3.2.0/net/ipv4/igmp.c @@ -875,6 +875,8 @@ * to be intended in a v3 query. */ max_delay = IGMPV3_MRC(ih3->code)*(HZ/IGMP_TIMER_SCALE); + if (!max_delay) + max_delay = 1; /* can't mod w/ 0 */ } else { /* v3 */ if (!pskb_may_pull(skb, sizeof(struct igmpv3_query))) return; @@ -1242,7 +1244,7 @@ im->next_rcu = in_dev->mc_list; in_dev->mc_count++; - RCU_INIT_POINTER(in_dev->mc_list, im); + rcu_assign_pointer(in_dev->mc_list, im); #ifdef CONFIG_IP_MULTICAST igmpv3_del_delrec(in_dev, im->multiaddr); @@ -1814,7 +1816,7 @@ iml->next_rcu = inet->mc_list; iml->sflist = NULL; iml->sfmode = MCAST_EXCLUDE; - RCU_INIT_POINTER(inet->mc_list, iml); + rcu_assign_pointer(inet->mc_list, iml); ip_mc_inc_group(in_dev, addr); err = 0; done: @@ -2001,7 +2003,7 @@ atomic_sub(IP_SFLSIZE(psl->sl_max), &sk->sk_omem_alloc); kfree_rcu(psl, rcu); } - RCU_INIT_POINTER(pmc->sflist, newpsl); + rcu_assign_pointer(pmc->sflist, newpsl); psl = newpsl; } rv = 1; /* > 0 for insert logic below if sl_count is 0 */ @@ -2104,7 +2106,7 @@ } else (void) ip_mc_del_src(in_dev, &msf->imsf_multiaddr, pmc->sfmode, 0, NULL, 0); - RCU_INIT_POINTER(pmc->sflist, newpsl); + rcu_assign_pointer(pmc->sflist, newpsl); pmc->sfmode = msf->imsf_fmode; err = 0; done: --- linux-3.2.0.orig/net/ipv4/tcp_illinois.c +++ linux-3.2.0/net/ipv4/tcp_illinois.c @@ -313,11 +313,13 @@ .tcpv_rttcnt = ca->cnt_rtt, .tcpv_minrtt = ca->base_rtt, }; - u64 t = ca->sum_rtt; - do_div(t, ca->cnt_rtt); - info.tcpv_rtt = t; + if (info.tcpv_rttcnt > 0) { + u64 t = ca->sum_rtt; + do_div(t, info.tcpv_rttcnt); + info.tcpv_rtt = t; + } nla_put(skb, INET_DIAG_VEGASINFO, sizeof(info), &info); } } --- linux-3.2.0.orig/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c +++ linux-3.2.0/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c @@ -84,6 +84,14 @@ *dataoff = nhoff + (iph->ihl << 2); *protonum = iph->protocol; + /* Check bogus IP headers */ + if (*dataoff > skb->len) { + pr_debug("nf_conntrack_ipv4: bogus IPv4 packet: " + "nhoff %u, ihl %u, skblen %u\n", + nhoff, iph->ihl << 2, skb->len); + return -NF_ACCEPT; + } + return NF_ACCEPT; } --- linux-3.2.0.orig/net/ipv4/netfilter/nf_nat_sip.c +++ linux-3.2.0/net/ipv4/netfilter/nf_nat_sip.c @@ -148,7 +148,7 @@ if (ct_sip_parse_header_uri(ct, *dptr, NULL, *datalen, hdr, NULL, &matchoff, &matchlen, &addr, &port) > 0) { - unsigned int matchend, poff, plen, buflen, n; + unsigned int olen, matchend, poff, plen, buflen, n; char buffer[sizeof("nnn.nnn.nnn.nnn:nnnnn")]; /* We're only interested in headers related to this @@ -163,11 +163,12 @@ goto next; } + olen = *datalen; if (!map_addr(skb, dataoff, dptr, datalen, matchoff, matchlen, &addr, port)) return NF_DROP; - matchend = matchoff + matchlen; + matchend = matchoff + matchlen + *datalen - olen; /* The maddr= parameter (RFC 2361) specifies where to send * the reply. */ @@ -501,7 +502,10 @@ ret = nf_ct_expect_related(rtcp_exp); if (ret == 0) break; - else if (ret != -EBUSY) { + else if (ret == -EBUSY) { + nf_ct_unexpect_related(rtp_exp); + continue; + } else if (ret < 0) { nf_ct_unexpect_related(rtp_exp); port = 0; break; --- linux-3.2.0.orig/net/ipv4/netfilter/nf_nat_standalone.c +++ linux-3.2.0/net/ipv4/netfilter/nf_nat_standalone.c @@ -194,7 +194,8 @@ if ((ct->tuplehash[dir].tuple.src.u3.ip != ct->tuplehash[!dir].tuple.dst.u3.ip) || - (ct->tuplehash[dir].tuple.src.u.all != + (ct->tuplehash[dir].tuple.dst.protonum != IPPROTO_ICMP && + ct->tuplehash[dir].tuple.src.u.all != ct->tuplehash[!dir].tuple.dst.u.all) ) return ip_xfrm_me_harder(skb) == 0 ? ret : NF_DROP; @@ -230,7 +231,8 @@ ret = NF_DROP; } #ifdef CONFIG_XFRM - else if (ct->tuplehash[dir].tuple.dst.u.all != + else if (ct->tuplehash[dir].tuple.dst.protonum != IPPROTO_ICMP && + ct->tuplehash[dir].tuple.dst.u.all != ct->tuplehash[!dir].tuple.src.u.all) if (ip_xfrm_me_harder(skb)) ret = NF_DROP; --- linux-3.2.0.orig/net/wanrouter/wanmain.c +++ linux-3.2.0/net/wanrouter/wanmain.c @@ -602,36 +602,31 @@ * successfully, add it to the interface list. */ - if (dev->name == NULL) { - err = -EINVAL; - } else { - - #ifdef WANDEBUG - printk(KERN_INFO "%s: registering interface %s...\n", - wanrouter_modname, dev->name); - #endif - - err = register_netdev(dev); - if (!err) { - struct net_device *slave = NULL; - unsigned long smp_flags=0; - - lock_adapter_irq(&wandev->lock, &smp_flags); - - if (wandev->dev == NULL) { - wandev->dev = dev; - } else { - for (slave=wandev->dev; - DEV_TO_SLAVE(slave); - slave = DEV_TO_SLAVE(slave)) - DEV_TO_SLAVE(slave) = dev; - } - ++wandev->ndev; - - unlock_adapter_irq(&wandev->lock, &smp_flags); - err = 0; /* done !!! */ - goto out; +#ifdef WANDEBUG + printk(KERN_INFO "%s: registering interface %s...\n", + wanrouter_modname, dev->name); +#endif + + err = register_netdev(dev); + if (!err) { + struct net_device *slave = NULL; + unsigned long smp_flags=0; + + lock_adapter_irq(&wandev->lock, &smp_flags); + + if (wandev->dev == NULL) { + wandev->dev = dev; + } else { + for (slave=wandev->dev; + DEV_TO_SLAVE(slave); + slave = DEV_TO_SLAVE(slave)) + DEV_TO_SLAVE(slave) = dev; } + ++wandev->ndev; + + unlock_adapter_irq(&wandev->lock, &smp_flags); + err = 0; /* done !!! */ + goto out; } if (wandev->del_if) wandev->del_if(wandev, dev); --- linux-3.2.0.orig/net/batman-adv/translation-table.c +++ linux-3.2.0/net/batman-adv/translation-table.c @@ -1816,10 +1816,10 @@ { struct tt_local_entry *tt_local_entry = NULL; struct tt_global_entry *tt_global_entry = NULL; - bool ret = true; + bool ret = false; if (!atomic_read(&bat_priv->ap_isolation)) - return false; + goto out; tt_local_entry = tt_local_hash_find(bat_priv, dst); if (!tt_local_entry) @@ -1829,10 +1829,10 @@ if (!tt_global_entry) goto out; - if (_is_ap_isolated(tt_local_entry, tt_global_entry)) + if (!_is_ap_isolated(tt_local_entry, tt_global_entry)) goto out; - ret = false; + ret = true; out: if (tt_global_entry) --- linux-3.2.0.orig/net/batman-adv/routing.c +++ linux-3.2.0/net/batman-adv/routing.c @@ -619,6 +619,8 @@ /* packet needs to be linearized to access the TT changes */ if (skb_linearize(skb) < 0) goto out; + /* skb_linearize() possibly changed skb->data */ + tt_query = (struct tt_query_packet *)skb->data; if (is_my_mac(tt_query->dst)) handle_tt_response(bat_priv, tt_query); --- linux-3.2.0.orig/net/batman-adv/icmp_socket.c +++ linux-3.2.0/net/batman-adv/icmp_socket.c @@ -136,10 +136,9 @@ spin_unlock_bh(&socket_client->lock); - error = __copy_to_user(buf, &socket_packet->icmp_packet, - socket_packet->icmp_len); + packet_len = min(count, socket_packet->icmp_len); + error = copy_to_user(buf, &socket_packet->icmp_packet, packet_len); - packet_len = socket_packet->icmp_len; kfree(socket_packet); if (error) --- linux-3.2.0.orig/net/sched/sch_qfq.c +++ linux-3.2.0/net/sched/sch_qfq.c @@ -829,7 +829,10 @@ if (mask) { struct qfq_group *next = qfq_ffs(q, mask); if (qfq_gt(roundedF, next->F)) { - cl->S = next->F; + if (qfq_gt(limit, next->F)) + cl->S = next->F; + else /* preserve timestamp correctness */ + cl->S = limit; return; } } --- linux-3.2.0.orig/net/sched/act_gact.c +++ linux-3.2.0/net/sched/act_gact.c @@ -67,6 +67,9 @@ struct tcf_common *pc; int ret = 0; int err; +#ifdef CONFIG_GACT_PROB + struct tc_gact_p *p_parm = NULL; +#endif if (nla == NULL) return -EINVAL; @@ -82,6 +85,12 @@ #ifndef CONFIG_GACT_PROB if (tb[TCA_GACT_PROB] != NULL) return -EOPNOTSUPP; +#else + if (tb[TCA_GACT_PROB]) { + p_parm = nla_data(tb[TCA_GACT_PROB]); + if (p_parm->ptype >= MAX_RAND) + return -EINVAL; + } #endif pc = tcf_hash_check(parm->index, a, bind, &gact_hash_info); @@ -103,8 +112,7 @@ spin_lock_bh(&gact->tcf_lock); gact->tcf_action = parm->action; #ifdef CONFIG_GACT_PROB - if (tb[TCA_GACT_PROB] != NULL) { - struct tc_gact_p *p_parm = nla_data(tb[TCA_GACT_PROB]); + if (p_parm) { gact->tcfg_paction = p_parm->paction; gact->tcfg_pval = p_parm->pval; gact->tcfg_ptype = p_parm->ptype; @@ -133,7 +141,7 @@ spin_lock(&gact->tcf_lock); #ifdef CONFIG_GACT_PROB - if (gact->tcfg_ptype && gact_rand[gact->tcfg_ptype] != NULL) + if (gact->tcfg_ptype) action = gact_rand[gact->tcfg_ptype](gact); else action = gact->tcf_action; --- linux-3.2.0.orig/net/sched/sch_htb.c +++ linux-3.2.0/net/sched/sch_htb.c @@ -876,7 +876,7 @@ q->now = psched_get_time(); start_at = jiffies; - next_event = q->now + 5 * PSCHED_TICKS_PER_SEC; + next_event = q->now + 5LLU * PSCHED_TICKS_PER_SEC; for (level = 0; level < TC_HTB_MAXDEPTH; level++) { /* common case optimization - skip event handler quickly */ --- linux-3.2.0.orig/net/sched/sch_sfb.c +++ linux-3.2.0/net/sched/sch_sfb.c @@ -93,8 +93,7 @@ static inline struct sfb_skb_cb *sfb_skb_cb(const struct sk_buff *skb) { - BUILD_BUG_ON(sizeof(skb->cb) < - sizeof(struct qdisc_skb_cb) + sizeof(struct sfb_skb_cb)); + qdisc_cb_private_validate(skb, sizeof(struct sfb_skb_cb)); return (struct sfb_skb_cb *)qdisc_skb_cb(skb)->data; } @@ -560,6 +559,8 @@ sch->qstats.backlog = q->qdisc->qstats.backlog; opts = nla_nest_start(skb, TCA_OPTIONS); + if (opts == NULL) + goto nla_put_failure; NLA_PUT(skb, TCA_SFB_PARMS, sizeof(opt), &opt); return nla_nest_end(skb, opts); --- linux-3.2.0.orig/net/sched/sch_gred.c +++ linux-3.2.0/net/sched/sch_gred.c @@ -544,11 +544,8 @@ opt.packets = q->packetsin; opt.bytesin = q->bytesin; - if (gred_wred_mode(table)) { - q->parms.qidlestart = - table->tab[table->def]->parms.qidlestart; - q->parms.qavg = table->tab[table->def]->parms.qavg; - } + if (gred_wred_mode(table)) + gred_load_wred_set(table, q); opt.qave = red_calc_qavg(&q->parms, q->parms.qavg); --- linux-3.2.0.orig/net/sched/sch_cbq.c +++ linux-3.2.0/net/sched/sch_cbq.c @@ -250,10 +250,11 @@ else if ((cl = defmap[res.classid & TC_PRIO_MAX]) == NULL) cl = defmap[TC_PRIO_BESTEFFORT]; - if (cl == NULL || cl->level >= head->level) + if (cl == NULL) goto fallback; } - + if (cl->level >= head->level) + goto fallback; #ifdef CONFIG_NET_CLS_ACT switch (result) { case TC_ACT_QUEUED: @@ -962,8 +963,11 @@ cbq_update(q); if ((incr -= incr2) < 0) incr = 0; + q->now += incr; + } else { + if (now > q->now) + q->now = now; } - q->now += incr; q->now_rt = now; for (;;) { --- linux-3.2.0.orig/net/sched/act_ipt.c +++ linux-3.2.0/net/sched/act_ipt.c @@ -8,7 +8,7 @@ * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * - * Copyright: Jamal Hadi Salim (2002-4) + * Copyright: Jamal Hadi Salim (2002-13) */ #include @@ -299,17 +299,44 @@ .walk = tcf_generic_walker }; -MODULE_AUTHOR("Jamal Hadi Salim(2002-4)"); +static struct tc_action_ops act_xt_ops = { + .kind = "xt", + .hinfo = &ipt_hash_info, + .type = TCA_ACT_IPT, + .capab = TCA_CAP_NONE, + .owner = THIS_MODULE, + .act = tcf_ipt, + .dump = tcf_ipt_dump, + .cleanup = tcf_ipt_cleanup, + .lookup = tcf_hash_search, + .init = tcf_ipt_init, + .walk = tcf_generic_walker +}; + +MODULE_AUTHOR("Jamal Hadi Salim(2002-13)"); MODULE_DESCRIPTION("Iptables target actions"); MODULE_LICENSE("GPL"); +MODULE_ALIAS("act_xt"); static int __init ipt_init_module(void) { - return tcf_register_action(&act_ipt_ops); + int ret1, ret2; + ret1 = tcf_register_action(&act_xt_ops); + if (ret1 < 0) + printk("Failed to load xt action\n"); + ret2 = tcf_register_action(&act_ipt_ops); + if (ret2 < 0) + printk("Failed to load ipt action\n"); + + if (ret1 < 0 && ret2 < 0) + return ret1; + else + return 0; } static void __exit ipt_cleanup_module(void) { + tcf_unregister_action(&act_xt_ops); tcf_unregister_action(&act_ipt_ops); } --- linux-3.2.0.orig/net/sched/sch_choke.c +++ linux-3.2.0/net/sched/sch_choke.c @@ -225,8 +225,7 @@ static inline struct choke_skb_cb *choke_skb_cb(const struct sk_buff *skb) { - BUILD_BUG_ON(sizeof(skb->cb) < - sizeof(struct qdisc_skb_cb) + sizeof(struct choke_skb_cb)); + qdisc_cb_private_validate(skb, sizeof(struct choke_skb_cb)); return (struct choke_skb_cb *)qdisc_skb_cb(skb)->data; } --- linux-3.2.0.orig/net/sched/sch_netem.c +++ linux-3.2.0/net/sched/sch_netem.c @@ -118,8 +118,7 @@ static inline struct netem_skb_cb *netem_skb_cb(struct sk_buff *skb) { - BUILD_BUG_ON(sizeof(skb->cb) < - sizeof(struct qdisc_skb_cb) + sizeof(struct netem_skb_cb)); + qdisc_cb_private_validate(skb, sizeof(struct netem_skb_cb)); return (struct netem_skb_cb *)qdisc_skb_cb(skb)->data; } @@ -352,10 +351,8 @@ if (q->corrupt && q->corrupt >= get_crandom(&q->corrupt_cor)) { if (!(skb = skb_unshare(skb, GFP_ATOMIC)) || (skb->ip_summed == CHECKSUM_PARTIAL && - skb_checksum_help(skb))) { - sch->qstats.drops++; - return NET_XMIT_DROP; - } + skb_checksum_help(skb))) + return qdisc_drop(skb, sch); skb->data[net_random() % skb_headlen(skb)] ^= 1<<(net_random() % 8); } @@ -383,8 +380,8 @@ q->counter = 0; __skb_queue_head(&q->qdisc->q, skb); - q->qdisc->qstats.backlog += qdisc_pkt_len(skb); - q->qdisc->qstats.requeues++; + sch->qstats.backlog += qdisc_pkt_len(skb); + sch->qstats.requeues++; ret = NET_XMIT_SUCCESS; } --- linux-3.2.0.orig/net/wireless/core.c +++ linux-3.2.0/net/wireless/core.c @@ -548,8 +548,7 @@ for (i = 0; i < sband->n_channels; i++) { sband->channels[i].orig_flags = sband->channels[i].flags; - sband->channels[i].orig_mag = - sband->channels[i].max_antenna_gain; + sband->channels[i].orig_mag = INT_MAX; sband->channels[i].orig_mpwr = sband->channels[i].max_power; sband->channels[i].band = band; @@ -971,6 +970,11 @@ */ synchronize_rcu(); INIT_LIST_HEAD(&wdev->list); + /* + * Ensure that all events have been processed and + * freed. + */ + cfg80211_process_wdev_events(wdev); break; case NETDEV_PRE_UP: if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype))) --- linux-3.2.0.orig/net/wireless/core.h +++ linux-3.2.0/net/wireless/core.h @@ -426,6 +426,7 @@ struct net_device *dev, enum nl80211_iftype ntype, u32 *flags, struct vif_params *params); void cfg80211_process_rdev_events(struct cfg80211_registered_device *rdev); +void cfg80211_process_wdev_events(struct wireless_dev *wdev); int cfg80211_can_change_interface(struct cfg80211_registered_device *rdev, struct wireless_dev *wdev, --- linux-3.2.0.orig/net/wireless/util.c +++ linux-3.2.0/net/wireless/util.c @@ -301,23 +301,21 @@ } EXPORT_SYMBOL(ieee80211_get_hdrlen_from_skb); -static int ieee80211_get_mesh_hdrlen(struct ieee80211s_hdr *meshhdr) +unsigned int ieee80211_get_mesh_hdrlen(struct ieee80211s_hdr *meshhdr) { int ae = meshhdr->flags & MESH_FLAGS_AE; - /* 7.1.3.5a.2 */ + /* 802.11-2012, 8.2.4.7.3 */ switch (ae) { + default: case 0: return 6; case MESH_FLAGS_AE_A4: return 12; case MESH_FLAGS_AE_A5_A6: return 18; - case (MESH_FLAGS_AE_A4 | MESH_FLAGS_AE_A5_A6): - return 24; - default: - return 6; } } +EXPORT_SYMBOL(ieee80211_get_mesh_hdrlen); int ieee80211_data_to_8023(struct sk_buff *skb, const u8 *addr, enum nl80211_iftype iftype) @@ -365,6 +363,8 @@ /* make sure meshdr->flags is on the linear part */ if (!pskb_may_pull(skb, hdrlen + 1)) return -1; + if (meshdr->flags & MESH_FLAGS_AE_A4) + return -1; if (meshdr->flags & MESH_FLAGS_AE_A5_A6) { skb_copy_bits(skb, hdrlen + offsetof(struct ieee80211s_hdr, eaddr1), @@ -389,6 +389,8 @@ /* make sure meshdr->flags is on the linear part */ if (!pskb_may_pull(skb, hdrlen + 1)) return -1; + if (meshdr->flags & MESH_FLAGS_AE_A5_A6) + return -1; if (meshdr->flags & MESH_FLAGS_AE_A4) skb_copy_bits(skb, hdrlen + offsetof(struct ieee80211s_hdr, eaddr1), @@ -725,7 +727,7 @@ wdev->connect_keys = NULL; } -static void cfg80211_process_wdev_events(struct wireless_dev *wdev) +void cfg80211_process_wdev_events(struct wireless_dev *wdev) { struct cfg80211_event *ev; unsigned long flags; @@ -813,7 +815,7 @@ ntype == NL80211_IFTYPE_P2P_CLIENT)) return -EBUSY; - if (ntype != otype) { + if (ntype != otype && netif_running(dev)) { err = cfg80211_can_change_interface(rdev, dev->ieee80211_ptr, ntype); if (err) @@ -943,6 +945,7 @@ enum nl80211_iftype iftype) { struct wireless_dev *wdev_iter; + u32 used_iftypes = BIT(iftype); int num[NUM_NL80211_IFTYPES]; int total = 1; int i, j; @@ -976,12 +979,17 @@ num[wdev_iter->iftype]++; total++; + used_iftypes |= BIT(wdev_iter->iftype); } mutex_unlock(&rdev->devlist_mtx); + if (total == 1) + return 0; + for (i = 0; i < rdev->wiphy.n_iface_combinations; i++) { const struct ieee80211_iface_combination *c; struct ieee80211_iface_limit *limits; + u32 all_iftypes = 0; c = &rdev->wiphy.iface_combinations[i]; @@ -996,14 +1004,28 @@ if (rdev->wiphy.software_iftypes & BIT(iftype)) continue; for (j = 0; j < c->n_limits; j++) { - if (!(limits[j].types & iftype)) + all_iftypes |= limits[j].types; + if (!(limits[j].types & BIT(iftype))) continue; if (limits[j].max < num[iftype]) goto cont; limits[j].max -= num[iftype]; } } - /* yay, it fits */ + + /* + * Finally check that all iftypes that we're currently + * using are actually part of this combination. If they + * aren't then we can't use this combination and have + * to continue to the next. + */ + if ((all_iftypes & used_iftypes) != used_iftypes) + goto cont; + + /* + * This combination covered all interface types and + * supported the requested numbers, so we're good. + */ kfree(limits); return 0; cont: --- linux-3.2.0.orig/net/wireless/reg.c +++ linux-3.2.0/net/wireless/reg.c @@ -125,9 +125,8 @@ .reg_rules = { /* IEEE 802.11b/g, channels 1..11 */ REG_RULE(2412-10, 2462+10, 40, 6, 20, 0), - /* IEEE 802.11b/g, channels 12..13. No HT40 - * channel fits here. */ - REG_RULE(2467-10, 2472+10, 20, 6, 20, + /* IEEE 802.11b/g, channels 12..13. */ + REG_RULE(2467-10, 2472+10, 40, 6, 20, NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS), /* IEEE 802.11 channel 14 - Only JP enables @@ -331,6 +330,9 @@ struct reg_regdb_search_request *request; const struct ieee80211_regdomain *curdom, *regdom; int i, r; + bool set_reg = false; + + mutex_lock(&cfg80211_mutex); mutex_lock(®_regdb_search_mutex); while (!list_empty(®_regdb_search_list)) { @@ -346,9 +348,7 @@ r = reg_copy_regd(®dom, curdom); if (r) break; - mutex_lock(&cfg80211_mutex); - set_regdom(regdom); - mutex_unlock(&cfg80211_mutex); + set_reg = true; break; } } @@ -356,6 +356,11 @@ kfree(request); } mutex_unlock(®_regdb_search_mutex); + + if (set_reg) + set_regdom(regdom); + + mutex_unlock(&cfg80211_mutex); } static DECLARE_WORK(reg_regdb_work, reg_regdb_search); @@ -379,7 +384,15 @@ schedule_work(®_regdb_work); } + +/* Feel free to add any other sanity checks here */ +static void reg_regdb_size_check(void) +{ + /* We should ideally BUILD_BUG_ON() but then random builds would fail */ + WARN_ONCE(!reg_regdb_size, "db.txt is empty, you should update it..."); +} #else +static inline void reg_regdb_size_check(void) {} static inline void reg_regdb_query(const char *alpha2) {} #endif /* CONFIG_CFG80211_INTERNAL_REGDB */ @@ -840,7 +853,7 @@ return; REG_DBG_PRINT("Disabling freq %d MHz\n", chan->center_freq); - chan->flags = IEEE80211_CHAN_DISABLED; + chan->flags |= IEEE80211_CHAN_DISABLED; return; } @@ -1361,7 +1374,7 @@ spin_unlock(®_requests_lock); if (last_request->initiator == NL80211_REGDOM_SET_BY_USER) - cancel_delayed_work_sync(®_timeout); + cancel_delayed_work(®_timeout); if (need_more_processing) schedule_work(®_work); @@ -2236,6 +2249,8 @@ spin_lock_init(®_requests_lock); spin_lock_init(®_pending_beacons_lock); + reg_regdb_size_check(); + cfg80211_regdomain = cfg80211_world_regdom; user_alpha2[0] = '9'; --- linux-3.2.0.orig/net/wireless/nl80211.c +++ linux-3.2.0/net/wireless/nl80211.c @@ -1258,6 +1258,11 @@ goto bad_res; } + if (!netif_running(netdev)) { + result = -ENETDOWN; + goto bad_res; + } + nla_for_each_nested(nl_txq_params, info->attrs[NL80211_ATTR_WIPHY_TXQ_PARAMS], rem_txq_params) { @@ -5944,7 +5949,7 @@ .doit = nl80211_get_key, .policy = nl80211_policy, .flags = GENL_ADMIN_PERM, - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { @@ -5976,7 +5981,7 @@ .policy = nl80211_policy, .flags = GENL_ADMIN_PERM, .doit = nl80211_addset_beacon, - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { @@ -5984,7 +5989,7 @@ .policy = nl80211_policy, .flags = GENL_ADMIN_PERM, .doit = nl80211_addset_beacon, - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { @@ -6008,7 +6013,7 @@ .doit = nl80211_set_station, .policy = nl80211_policy, .flags = GENL_ADMIN_PERM, - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { @@ -6024,7 +6029,7 @@ .doit = nl80211_del_station, .policy = nl80211_policy, .flags = GENL_ADMIN_PERM, - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { @@ -6057,7 +6062,7 @@ .doit = nl80211_del_mpath, .policy = nl80211_policy, .flags = GENL_ADMIN_PERM, - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { @@ -6065,7 +6070,7 @@ .doit = nl80211_set_bss, .policy = nl80211_policy, .flags = GENL_ADMIN_PERM, - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { @@ -6091,7 +6096,7 @@ .doit = nl80211_get_mesh_config, .policy = nl80211_policy, /* can be retrieved by unprivileged users */ - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { @@ -6224,7 +6229,7 @@ .doit = nl80211_setdel_pmksa, .policy = nl80211_policy, .flags = GENL_ADMIN_PERM, - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { @@ -6232,7 +6237,7 @@ .doit = nl80211_setdel_pmksa, .policy = nl80211_policy, .flags = GENL_ADMIN_PERM, - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { @@ -6240,7 +6245,7 @@ .doit = nl80211_flush_pmksa, .policy = nl80211_policy, .flags = GENL_ADMIN_PERM, - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { @@ -6328,7 +6333,7 @@ .doit = nl80211_set_wds_peer, .policy = nl80211_policy, .flags = GENL_ADMIN_PERM, - .internal_flags = NL80211_FLAG_NEED_NETDEV | + .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_NEED_RTNL, }, { --- linux-3.2.0.orig/net/wireless/sme.c +++ linux-3.2.0/net/wireless/sme.c @@ -220,6 +220,9 @@ mutex_lock(&rdev->devlist_mtx); list_for_each_entry(wdev, &rdev->netdev_list, list) { + if (!wdev->netdev) + continue; + wdev_lock(wdev); if (!netif_running(wdev->netdev)) { wdev_unlock(wdev); --- linux-3.2.0.orig/net/l2tp/l2tp_core.c +++ linux-3.2.0/net/l2tp/l2tp_core.c @@ -1253,11 +1253,10 @@ /* Remove from tunnel list */ spin_lock_bh(&pn->l2tp_tunnel_list_lock); list_del_rcu(&tunnel->list); + kfree_rcu(tunnel, rcu); spin_unlock_bh(&pn->l2tp_tunnel_list_lock); - synchronize_rcu(); atomic_dec(&l2tp_tunnel_count); - kfree(tunnel); } /* Create a socket for the tunnel, if one isn't set up by --- linux-3.2.0.orig/net/l2tp/l2tp_ip.c +++ linux-3.2.0/net/l2tp/l2tp_ip.c @@ -251,9 +251,16 @@ { struct inet_sock *inet = inet_sk(sk); struct sockaddr_l2tpip *addr = (struct sockaddr_l2tpip *) uaddr; - int ret = -EINVAL; + int ret; int chk_addr_ret; + if (!sock_flag(sk, SOCK_ZAPPED)) + return -EINVAL; + if (addr_len < sizeof(struct sockaddr_l2tpip)) + return -EINVAL; + if (addr->l2tp_family != AF_INET) + return -EINVAL; + ret = -EADDRINUSE; read_lock_bh(&l2tp_ip_lock); if (__l2tp_ip_bind_lookup(&init_net, addr->l2tp_addr.s_addr, sk->sk_bound_dev_if, addr->l2tp_conn_id)) @@ -283,6 +290,8 @@ sk_del_node_init(sk); write_unlock_bh(&l2tp_ip_lock); ret = 0; + sock_reset_flag(sk, SOCK_ZAPPED); + out: release_sock(sk); @@ -303,13 +312,14 @@ __be32 saddr; int oif, rc; - rc = -EINVAL; + if (sock_flag(sk, SOCK_ZAPPED)) /* Must bind first - autobinding does not work */ + return -EINVAL; + if (addr_len < sizeof(*lsa)) - goto out; + return -EINVAL; - rc = -EAFNOSUPPORT; if (lsa->l2tp_family != AF_INET) - goto out; + return -EAFNOSUPPORT; lock_sock(sk); @@ -363,6 +373,14 @@ return rc; } +static int l2tp_ip_disconnect(struct sock *sk, int flags) +{ + if (sock_flag(sk, SOCK_ZAPPED)) + return 0; + + return udp_disconnect(sk, flags); +} + static int l2tp_ip_getname(struct socket *sock, struct sockaddr *uaddr, int *uaddr_len, int peer) { @@ -393,11 +411,6 @@ { int rc; - if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb)) - goto drop; - - nf_reset(skb); - /* Charge it to the socket, dropping if the queue is full. */ rc = sock_queue_rcv_skb(sk, skb); if (rc < 0) @@ -446,8 +459,9 @@ daddr = lip->l2tp_addr.s_addr; } else { + rc = -EDESTADDRREQ; if (sk->sk_state != TCP_ESTABLISHED) - return -EDESTADDRREQ; + goto out; daddr = inet->inet_daddr; connected = 1; @@ -501,10 +515,12 @@ sk->sk_bound_dev_if); if (IS_ERR(rt)) goto no_route; - if (connected) + if (connected) { sk_setup_caps(sk, &rt->dst); - else - dst_release(&rt->dst); /* safe since we hold rcu_read_lock */ + } else { + skb_dst_set(skb, &rt->dst); + goto xmit; + } } /* We dont need to clone dst here, it is guaranteed to not disappear. @@ -512,6 +528,7 @@ */ skb_dst_set_noref(skb, &rt->dst); +xmit: /* Queue the packet to IP for output */ rc = ip_queue_xmit(skb, &inet->cork.fl); rcu_read_unlock(); @@ -602,7 +619,7 @@ .close = l2tp_ip_close, .bind = l2tp_ip_bind, .connect = l2tp_ip_connect, - .disconnect = udp_disconnect, + .disconnect = l2tp_ip_disconnect, .ioctl = udp_ioctl, .destroy = l2tp_ip_destroy_sock, .setsockopt = ip_setsockopt, --- linux-3.2.0.orig/net/l2tp/l2tp_eth.c +++ linux-3.2.0/net/l2tp/l2tp_eth.c @@ -132,7 +132,7 @@ printk("\n"); } - if (!pskb_may_pull(skb, sizeof(ETH_HLEN))) + if (!pskb_may_pull(skb, ETH_HLEN)) goto error; secpath_reset(skb); @@ -167,6 +167,7 @@ if (dev) { unregister_netdev(dev); spriv->dev = NULL; + module_put(THIS_MODULE); } } } @@ -254,6 +255,7 @@ if (rc < 0) goto out_del_dev; + __module_get(THIS_MODULE); /* Must be done after register_netdev() */ strlcpy(session->ifname, dev->name, IFNAMSIZ); @@ -267,6 +269,7 @@ out_del_dev: free_netdev(dev); + spriv->dev = NULL; out_del_session: l2tp_session_delete(session); out: --- linux-3.2.0.orig/net/l2tp/l2tp_ppp.c +++ linux-3.2.0/net/l2tp/l2tp_ppp.c @@ -350,18 +350,19 @@ skb_put(skb, 2); /* Copy user data into skb */ - error = memcpy_fromiovec(skb->data, m->msg_iov, total_len); + error = memcpy_fromiovec(skb_put(skb, total_len), m->msg_iov, + total_len); if (error < 0) { kfree_skb(skb); goto error_put_sess_tun; } - skb_put(skb, total_len); l2tp_xmit_skb(session, skb, session->hdr_len); sock_put(ps->tunnel_sock); + sock_put(sk); - return error; + return total_len; error_put_sess_tun: sock_put(ps->tunnel_sock); @@ -915,7 +916,7 @@ goto end_put_sess; } - inet = inet_sk(sk); + inet = inet_sk(tunnel->sock); if (tunnel->version == 2) { struct sockaddr_pppol2tp sp; len = sizeof(sp); @@ -1777,7 +1778,8 @@ static const struct pppox_proto pppol2tp_proto = { .create = pppol2tp_create, - .ioctl = pppol2tp_ioctl + .ioctl = pppol2tp_ioctl, + .owner = THIS_MODULE, }; #ifdef CONFIG_L2TP_V3 --- linux-3.2.0.orig/net/l2tp/l2tp_core.h +++ linux-3.2.0/net/l2tp/l2tp_core.h @@ -157,6 +157,7 @@ struct l2tp_tunnel { int magic; /* Should be L2TP_TUNNEL_MAGIC */ + struct rcu_head rcu; rwlock_t hlist_lock; /* protect session_hlist */ struct hlist_head session_hlist[L2TP_HASH_SIZE]; /* hashed list of sessions, --- linux-3.2.0.orig/net/sunrpc/xprt.c +++ linux-3.2.0/net/sunrpc/xprt.c @@ -481,13 +481,17 @@ * xprt_wait_for_buffer_space - wait for transport output buffer to clear * @task: task to be put to sleep * @action: function pointer to be executed after wait + * + * Note that we only set the timer for the case of RPC_IS_SOFT(), since + * we don't in general want to force a socket disconnection due to + * an incomplete RPC call transmission. */ void xprt_wait_for_buffer_space(struct rpc_task *task, rpc_action action) { struct rpc_rqst *req = task->tk_rqstp; struct rpc_xprt *xprt = req->rq_xprt; - task->tk_timeout = req->rq_timeout; + task->tk_timeout = RPC_IS_SOFT(task) ? req->rq_timeout : 0; rpc_sleep_on(&xprt->pending, task, action); } EXPORT_SYMBOL_GPL(xprt_wait_for_buffer_space); @@ -962,11 +966,11 @@ return false; } -static void xprt_alloc_slot(struct rpc_task *task) +void xprt_alloc_slot(struct rpc_xprt *xprt, struct rpc_task *task) { - struct rpc_xprt *xprt = task->tk_xprt; struct rpc_rqst *req; + spin_lock(&xprt->reserve_lock); if (!list_empty(&xprt->free)) { req = list_entry(xprt->free.next, struct rpc_rqst, rq_list); list_del(&req->rq_list); @@ -977,21 +981,39 @@ goto out_init_req; switch (PTR_ERR(req)) { case -ENOMEM: - rpc_delay(task, HZ >> 2); dprintk("RPC: dynamic allocation of request slot " "failed! Retrying\n"); + task->tk_status = -ENOMEM; break; case -EAGAIN: rpc_sleep_on(&xprt->backlog, task, NULL); dprintk("RPC: waiting for request slot\n"); + default: + task->tk_status = -EAGAIN; } - task->tk_status = -EAGAIN; + spin_unlock(&xprt->reserve_lock); return; out_init_req: task->tk_status = 0; task->tk_rqstp = req; xprt_request_init(task, xprt); + spin_unlock(&xprt->reserve_lock); } +EXPORT_SYMBOL_GPL(xprt_alloc_slot); + +void xprt_lock_and_alloc_slot(struct rpc_xprt *xprt, struct rpc_task *task) +{ + /* Note: grabbing the xprt_lock_write() ensures that we throttle + * new slot allocation if the transport is congested (i.e. when + * reconnecting a stream transport or when out of socket write + * buffer space). + */ + if (xprt_lock_write(xprt, task)) { + xprt_alloc_slot(xprt, task); + xprt_release_write(xprt, task); + } +} +EXPORT_SYMBOL_GPL(xprt_lock_and_alloc_slot); static void xprt_free_slot(struct rpc_xprt *xprt, struct rpc_rqst *req) { @@ -1075,20 +1097,9 @@ if (task->tk_rqstp != NULL) return; - /* Note: grabbing the xprt_lock_write() here is not strictly needed, - * but ensures that we throttle new slot allocation if the transport - * is congested (e.g. if reconnecting or if we're out of socket - * write buffer space). - */ task->tk_timeout = 0; task->tk_status = -EAGAIN; - if (!xprt_lock_write(xprt, task)) - return; - - spin_lock(&xprt->reserve_lock); - xprt_alloc_slot(task); - spin_unlock(&xprt->reserve_lock); - xprt_release_write(xprt, task); + xprt->ops->alloc_slot(xprt, task); } static inline __be32 xprt_alloc_xid(struct rpc_xprt *xprt) @@ -1125,10 +1136,18 @@ void xprt_release(struct rpc_task *task) { struct rpc_xprt *xprt; - struct rpc_rqst *req; + struct rpc_rqst *req = task->tk_rqstp; - if (!(req = task->tk_rqstp)) + if (req == NULL) { + if (task->tk_client) { + rcu_read_lock(); + xprt = rcu_dereference(task->tk_client->cl_xprt); + if (xprt->snd_task == task) + xprt_release_write(xprt, task); + rcu_read_unlock(); + } return; + } xprt = req->rq_xprt; rpc_count_iostats(task); --- linux-3.2.0.orig/net/sunrpc/svc.c +++ linux-3.2.0/net/sunrpc/svc.c @@ -167,6 +167,7 @@ fail_free: kfree(m->to_pool); + m->to_pool = NULL; fail: return -ENOMEM; } @@ -287,7 +288,9 @@ if (!--m->count) { m->mode = SVC_POOL_DEFAULT; kfree(m->to_pool); + m->to_pool = NULL; kfree(m->pool_to); + m->pool_to = NULL; m->npools = 0; } @@ -527,17 +530,20 @@ printk("svc_destroy: no threads for serv=%p!\n", serv); del_timer_sync(&serv->sv_temptimer); - - svc_close_all(&serv->sv_tempsocks); + /* + * The set of xprts (contained in the sv_tempsocks and + * sv_permsocks lists) is now constant, since it is modified + * only by accepting new sockets (done by service threads in + * svc_recv) or aging old ones (done by sv_temptimer), or + * configuration changes (excluded by whatever locking the + * caller is using--nfsd_mutex in the case of nfsd). So it's + * safe to traverse those lists and shut everything down: + */ + svc_close_all(serv); if (serv->sv_shutdown) serv->sv_shutdown(serv); - svc_close_all(&serv->sv_permsocks); - - BUG_ON(!list_empty(&serv->sv_permsocks)); - BUG_ON(!list_empty(&serv->sv_tempsocks)); - cache_clean_deferred(serv); if (svc_serv_is_pooled(serv)) @@ -1352,7 +1358,8 @@ sizeof(req->rq_snd_buf)); return bc_send(req); } else { - /* Nothing to do to drop request */ + /* drop request */ + xprt_free_bc_request(req); return 0; } } --- linux-3.2.0.orig/net/sunrpc/svc_xprt.c +++ linux-3.2.0/net/sunrpc/svc_xprt.c @@ -315,7 +315,6 @@ */ void svc_xprt_enqueue(struct svc_xprt *xprt) { - struct svc_serv *serv = xprt->xpt_server; struct svc_pool *pool; struct svc_rqst *rqstp; int cpu; @@ -361,8 +360,6 @@ rqstp, rqstp->rq_xprt); rqstp->rq_xprt = xprt; svc_xprt_get(xprt); - rqstp->rq_reserved = serv->sv_max_mesg; - atomic_add(rqstp->rq_reserved, &xprt->xpt_reserved); pool->sp_stats.threads_woken++; wake_up(&rqstp->rq_wait); } else { @@ -642,8 +639,6 @@ if (xprt) { rqstp->rq_xprt = xprt; svc_xprt_get(xprt); - rqstp->rq_reserved = serv->sv_max_mesg; - atomic_add(rqstp->rq_reserved, &xprt->xpt_reserved); /* As there is a shortage of threads and this request * had to be queued, don't allow the thread to wait so @@ -740,6 +735,8 @@ else len = xprt->xpt_ops->xpo_recvfrom(rqstp); dprintk("svc: got len=%d\n", len); + rqstp->rq_reserved = serv->sv_max_mesg; + atomic_add(rqstp->rq_reserved, &xprt->xpt_reserved); } svc_xprt_received(xprt); @@ -796,7 +793,8 @@ /* Grab mutex to serialize outgoing data. */ mutex_lock(&xprt->xpt_mutex); - if (test_bit(XPT_DEAD, &xprt->xpt_flags)) + if (test_bit(XPT_DEAD, &xprt->xpt_flags) + || test_bit(XPT_CLOSE, &xprt->xpt_flags)) len = -ENOTCONN; else len = xprt->xpt_ops->xpo_sendto(rqstp); @@ -818,7 +816,6 @@ struct svc_serv *serv = (struct svc_serv *)closure; struct svc_xprt *xprt; struct list_head *le, *next; - LIST_HEAD(to_be_aged); dprintk("svc_age_temp_xprts\n"); @@ -839,25 +836,15 @@ if (atomic_read(&xprt->xpt_ref.refcount) > 1 || test_bit(XPT_BUSY, &xprt->xpt_flags)) continue; - svc_xprt_get(xprt); - list_move(le, &to_be_aged); + list_del_init(le); set_bit(XPT_CLOSE, &xprt->xpt_flags); set_bit(XPT_DETACHED, &xprt->xpt_flags); - } - spin_unlock_bh(&serv->sv_lock); - - while (!list_empty(&to_be_aged)) { - le = to_be_aged.next; - /* fiddling the xpt_list node is safe 'cos we're XPT_DETACHED */ - list_del_init(le); - xprt = list_entry(le, struct svc_xprt, xpt_list); - dprintk("queuing xprt %p for closing\n", xprt); /* a thread will dequeue and close it soon */ svc_xprt_enqueue(xprt); - svc_xprt_put(xprt); } + spin_unlock_bh(&serv->sv_lock); mod_timer(&serv->sv_temptimer, jiffies + svc_conn_age_period * HZ); } @@ -893,14 +880,7 @@ spin_lock_bh(&serv->sv_lock); if (!test_and_set_bit(XPT_DETACHED, &xprt->xpt_flags)) list_del_init(&xprt->xpt_list); - /* - * The only time we're called while xpt_ready is still on a list - * is while the list itself is about to be destroyed (in - * svc_destroy). BUT svc_xprt_enqueue could still be attempting - * to add new entries to the sp_sockets list, so we can't leave - * a freed xprt on it. - */ - list_del_init(&xprt->xpt_ready); + BUG_ON(!list_empty(&xprt->xpt_ready)); if (test_bit(XPT_TEMP, &xprt->xpt_flags)) serv->sv_tmpcnt--; spin_unlock_bh(&serv->sv_lock); @@ -928,22 +908,48 @@ } EXPORT_SYMBOL_GPL(svc_close_xprt); -void svc_close_all(struct list_head *xprt_list) +static void svc_close_list(struct list_head *xprt_list) { struct svc_xprt *xprt; + + list_for_each_entry(xprt, xprt_list, xpt_list) { + set_bit(XPT_CLOSE, &xprt->xpt_flags); + set_bit(XPT_BUSY, &xprt->xpt_flags); + } +} + +void svc_close_all(struct svc_serv *serv) +{ + struct svc_pool *pool; + struct svc_xprt *xprt; struct svc_xprt *tmp; + int i; + + svc_close_list(&serv->sv_tempsocks); + svc_close_list(&serv->sv_permsocks); + for (i = 0; i < serv->sv_nrpools; i++) { + pool = &serv->sv_pools[i]; + + spin_lock_bh(&pool->sp_lock); + while (!list_empty(&pool->sp_sockets)) { + xprt = list_first_entry(&pool->sp_sockets, struct svc_xprt, xpt_ready); + list_del_init(&xprt->xpt_ready); + } + spin_unlock_bh(&pool->sp_lock); + } /* - * The server is shutting down, and no more threads are running. - * svc_xprt_enqueue() might still be running, but at worst it - * will re-add the xprt to sp_sockets, which will soon get - * freed. So we don't bother with any more locking, and don't - * leave the close to the (nonexistent) server threads: + * At this point the sp_sockets lists will stay empty, since + * svc_enqueue will not add new entries without taking the + * sp_lock and checking XPT_BUSY. */ - list_for_each_entry_safe(xprt, tmp, xprt_list, xpt_list) { - set_bit(XPT_CLOSE, &xprt->xpt_flags); + list_for_each_entry_safe(xprt, tmp, &serv->sv_tempsocks, xpt_list) svc_delete_xprt(xprt); - } + list_for_each_entry_safe(xprt, tmp, &serv->sv_permsocks, xpt_list) + svc_delete_xprt(xprt); + + BUG_ON(!list_empty(&serv->sv_permsocks)); + BUG_ON(!list_empty(&serv->sv_tempsocks)); } /* --- linux-3.2.0.orig/net/sunrpc/cache.c +++ linux-3.2.0/net/sunrpc/cache.c @@ -828,6 +828,8 @@ { ssize_t ret; + if (count == 0) + return -EINVAL; if (copy_from_user(kaddr, buf, count)) return -EFAULT; kaddr[count] = '\0'; @@ -1402,11 +1404,11 @@ size_t count, loff_t *ppos, struct cache_detail *cd) { - char tbuf[20]; + char tbuf[22]; unsigned long p = *ppos; size_t len; - sprintf(tbuf, "%lu\n", convert_to_wallclock(cd->flush_time)); + snprintf(tbuf, sizeof(tbuf), "%lu\n", convert_to_wallclock(cd->flush_time)); len = strlen(tbuf); if (p >= len) return 0; --- linux-3.2.0.orig/net/sunrpc/rpcb_clnt.c +++ linux-3.2.0/net/sunrpc/rpcb_clnt.c @@ -246,7 +246,7 @@ if (IS_ERR(clnt)) { dprintk("RPC: failed to create AF_LOCAL rpcbind " "client (errno %ld).\n", PTR_ERR(clnt)); - result = -PTR_ERR(clnt); + result = PTR_ERR(clnt); goto out; } @@ -293,7 +293,7 @@ if (IS_ERR(clnt)) { dprintk("RPC: failed to create local rpcbind " "client (errno %ld).\n", PTR_ERR(clnt)); - result = -PTR_ERR(clnt); + result = PTR_ERR(clnt); goto out; } --- linux-3.2.0.orig/net/sunrpc/xprtsock.c +++ linux-3.2.0/net/sunrpc/xprtsock.c @@ -254,7 +254,6 @@ void (*old_data_ready)(struct sock *, int); void (*old_state_change)(struct sock *); void (*old_write_space)(struct sock *); - void (*old_error_report)(struct sock *); }; /* @@ -737,10 +736,10 @@ dprintk("RPC: sendmsg returned unrecognized error %d\n", -status); case -ECONNRESET: - case -EPIPE: xs_tcp_shutdown(xprt); case -ECONNREFUSED: case -ENOTCONN: + case -EPIPE: clear_bit(SOCK_ASYNC_NOSPACE, &transport->sock->flags); } @@ -781,7 +780,6 @@ transport->old_data_ready = sk->sk_data_ready; transport->old_state_change = sk->sk_state_change; transport->old_write_space = sk->sk_write_space; - transport->old_error_report = sk->sk_error_report; } static void xs_restore_old_callbacks(struct sock_xprt *transport, struct sock *sk) @@ -789,7 +787,6 @@ sk->sk_data_ready = transport->old_data_ready; sk->sk_state_change = transport->old_state_change; sk->sk_write_space = transport->old_write_space; - sk->sk_error_report = transport->old_error_report; } static void xs_reset_transport(struct sock_xprt *transport) @@ -1028,6 +1025,16 @@ read_unlock_bh(&sk->sk_callback_lock); } +/* + * Helper function to force a TCP close if the server is sending + * junk and/or it has put us in CLOSE_WAIT + */ +static void xs_tcp_force_close(struct rpc_xprt *xprt) +{ + set_bit(XPRT_CONNECTION_CLOSE, &xprt->state); + xprt_force_disconnect(xprt); +} + static inline void xs_tcp_read_fraghdr(struct rpc_xprt *xprt, struct xdr_skb_reader *desc) { struct sock_xprt *transport = container_of(xprt, struct sock_xprt, xprt); @@ -1054,7 +1061,7 @@ /* Sanity check of the record length */ if (unlikely(transport->tcp_reclen < 8)) { dprintk("RPC: invalid TCP record fragment length\n"); - xprt_force_disconnect(xprt); + xs_tcp_force_close(xprt); return; } dprintk("RPC: reading TCP record fragment of length %d\n", @@ -1135,7 +1142,7 @@ break; default: dprintk("RPC: invalid request message type\n"); - xprt_force_disconnect(&transport->xprt); + xs_tcp_force_close(&transport->xprt); } xs_tcp_check_fraghdr(transport); } @@ -1455,12 +1462,19 @@ xprt_clear_connecting(xprt); } -static void xs_sock_mark_closed(struct rpc_xprt *xprt) +static void xs_sock_reset_connection_flags(struct rpc_xprt *xprt) { smp_mb__before_clear_bit(); + clear_bit(XPRT_CONNECTION_ABORT, &xprt->state); + clear_bit(XPRT_CONNECTION_CLOSE, &xprt->state); clear_bit(XPRT_CLOSE_WAIT, &xprt->state); clear_bit(XPRT_CLOSING, &xprt->state); smp_mb__after_clear_bit(); +} + +static void xs_sock_mark_closed(struct rpc_xprt *xprt) +{ + xs_sock_reset_connection_flags(xprt); /* Mark transport as closed and wake up all pending tasks */ xprt_disconnect_done(xprt); } @@ -1515,8 +1529,9 @@ break; case TCP_CLOSE_WAIT: /* The server initiated a shutdown of the socket */ - xprt_force_disconnect(xprt); xprt->connect_cookie++; + clear_bit(XPRT_CONNECTED, &xprt->state); + xs_tcp_force_close(xprt); case TCP_CLOSING: /* * If the server closed down the connection, make sure that @@ -1540,25 +1555,6 @@ read_unlock_bh(&sk->sk_callback_lock); } -/** - * xs_error_report - callback mainly for catching socket errors - * @sk: socket - */ -static void xs_error_report(struct sock *sk) -{ - struct rpc_xprt *xprt; - - read_lock_bh(&sk->sk_callback_lock); - if (!(xprt = xprt_from_sock(sk))) - goto out; - dprintk("RPC: %s client %p...\n" - "RPC: error %d\n", - __func__, xprt, sk->sk_err); - xprt_wake_pending_tasks(xprt, -EAGAIN); -out: - read_unlock_bh(&sk->sk_callback_lock); -} - static void xs_write_space(struct sock *sk) { struct socket *sock; @@ -1858,7 +1854,6 @@ sk->sk_user_data = xprt; sk->sk_data_ready = xs_local_data_ready; sk->sk_write_space = xs_udp_write_space; - sk->sk_error_report = xs_error_report; sk->sk_allocation = GFP_ATOMIC; xprt_clear_connected(xprt); @@ -1895,6 +1890,8 @@ if (xprt->shutdown) goto out; + current->flags |= PF_FSTRANS; + clear_bit(XPRT_CONNECTION_ABORT, &xprt->state); status = __sock_create(xprt->xprt_net, AF_LOCAL, SOCK_STREAM, 0, &sock, 1); @@ -1928,6 +1925,7 @@ out: xprt_clear_connecting(xprt); xprt_wake_pending_tasks(xprt, status); + current->flags &= ~PF_FSTRANS; } static void xs_udp_finish_connecting(struct rpc_xprt *xprt, struct socket *sock) @@ -1944,7 +1942,6 @@ sk->sk_user_data = xprt; sk->sk_data_ready = xs_udp_data_ready; sk->sk_write_space = xs_udp_write_space; - sk->sk_error_report = xs_error_report; sk->sk_no_check = UDP_CSUM_NORCV; sk->sk_allocation = GFP_ATOMIC; @@ -1970,6 +1967,8 @@ if (xprt->shutdown) goto out; + current->flags |= PF_FSTRANS; + /* Start by resetting any existing state */ xs_reset_transport(transport); sock = xs_create_sock(xprt, transport, @@ -1988,6 +1987,7 @@ out: xprt_clear_connecting(xprt); xprt_wake_pending_tasks(xprt, status); + current->flags &= ~PF_FSTRANS; } /* @@ -2009,10 +2009,8 @@ any.sa_family = AF_UNSPEC; result = kernel_connect(transport->sock, &any, sizeof(any), 0); if (!result) - xs_sock_mark_closed(&transport->xprt); - else - dprintk("RPC: AF_UNSPEC connect return code %d\n", - result); + xs_sock_reset_connection_flags(&transport->xprt); + dprintk("RPC: AF_UNSPEC connect return code %d\n", result); } static void xs_tcp_reuse_connection(struct sock_xprt *transport) @@ -2057,7 +2055,6 @@ sk->sk_data_ready = xs_tcp_data_ready; sk->sk_state_change = xs_tcp_state_change; sk->sk_write_space = xs_tcp_write_space; - sk->sk_error_report = xs_error_report; sk->sk_allocation = GFP_ATOMIC; /* socket options */ @@ -2113,6 +2110,8 @@ if (xprt->shutdown) goto out; + current->flags |= PF_FSTRANS; + if (!sock) { clear_bit(XPRT_CONNECTION_ABORT, &xprt->state); sock = xs_create_sock(xprt, transport, @@ -2151,8 +2150,7 @@ /* We're probably in TIME_WAIT. Get rid of existing socket, * and retry */ - set_bit(XPRT_CONNECTION_CLOSE, &xprt->state); - xprt_force_disconnect(xprt); + xs_tcp_force_close(xprt); break; case -ECONNREFUSED: case -ECONNRESET: @@ -2162,6 +2160,7 @@ case -EINPROGRESS: case -EALREADY: xprt_clear_connecting(xprt); + current->flags &= ~PF_FSTRANS; return; case -EINVAL: /* Happens, for instance, if the user specified a link @@ -2174,6 +2173,7 @@ out: xprt_clear_connecting(xprt); xprt_wake_pending_tasks(xprt, status); + current->flags &= ~PF_FSTRANS; } /** @@ -2412,6 +2412,7 @@ static struct rpc_xprt_ops xs_local_ops = { .reserve_xprt = xprt_reserve_xprt, .release_xprt = xs_tcp_release_xprt, + .alloc_slot = xprt_alloc_slot, .rpcbind = xs_local_rpcbind, .set_port = xs_local_set_port, .connect = xs_connect, @@ -2428,6 +2429,7 @@ .set_buffer_size = xs_udp_set_buffer_size, .reserve_xprt = xprt_reserve_xprt_cong, .release_xprt = xprt_release_xprt_cong, + .alloc_slot = xprt_alloc_slot, .rpcbind = rpcb_getport_async, .set_port = xs_set_port, .connect = xs_connect, @@ -2445,6 +2447,7 @@ static struct rpc_xprt_ops xs_tcp_ops = { .reserve_xprt = xprt_reserve_xprt, .release_xprt = xs_tcp_release_xprt, + .alloc_slot = xprt_lock_and_alloc_slot, .rpcbind = rpcb_getport_async, .set_port = xs_set_port, .connect = xs_connect, @@ -2464,6 +2467,7 @@ static struct rpc_xprt_ops bc_tcp_ops = { .reserve_xprt = xprt_reserve_xprt, .release_xprt = xprt_release_xprt, + .alloc_slot = xprt_alloc_slot, .buf_alloc = bc_malloc, .buf_free = bc_free, .send_request = bc_send_request, --- linux-3.2.0.orig/net/sunrpc/sched.c +++ linux-3.2.0/net/sunrpc/sched.c @@ -139,6 +139,8 @@ list_add_tail(&task->u.tk_wait.list, &queue->tasks[0]); task->tk_waitqueue = queue; queue->qlen++; + /* barrier matches the read in rpc_wake_up_task_queue_locked() */ + smp_wmb(); rpc_set_queued(task); dprintk("RPC: %5u added to queue %p \"%s\"\n", @@ -294,13 +296,20 @@ /* * Make an RPC task runnable. * - * Note: If the task is ASYNC, this must be called with - * the spinlock held to protect the wait queue operation. + * Note: If the task is ASYNC, and is being made runnable after sitting on an + * rpc_wait_queue, this must be called with the queue spinlock held to protect + * the wait queue operation. + * Note the ordering of rpc_test_and_set_running() and rpc_clear_queued(), + * which is needed to ensure that __rpc_execute() doesn't loop (due to the + * lockless RPC_IS_QUEUED() test) before we've had a chance to test + * the RPC_TASK_RUNNING flag. */ static void rpc_make_runnable(struct rpc_task *task) { + bool need_wakeup = !rpc_test_and_set_running(task); + rpc_clear_queued(task); - if (rpc_test_and_set_running(task)) + if (!need_wakeup) return; if (RPC_IS_ASYNC(task)) { INIT_WORK(&task->u.tk_work, rpc_async_schedule); @@ -389,8 +398,11 @@ */ static void rpc_wake_up_task_queue_locked(struct rpc_wait_queue *queue, struct rpc_task *task) { - if (RPC_IS_QUEUED(task) && task->tk_waitqueue == queue) - __rpc_do_wake_up_task(queue, task); + if (RPC_IS_QUEUED(task)) { + smp_rmb(); + if (task->tk_waitqueue == queue) + __rpc_do_wake_up_task(queue, task); + } } /* @@ -500,14 +512,18 @@ */ void rpc_wake_up(struct rpc_wait_queue *queue) { - struct rpc_task *task, *next; struct list_head *head; spin_lock_bh(&queue->lock); head = &queue->tasks[queue->maxpriority]; for (;;) { - list_for_each_entry_safe(task, next, head, u.tk_wait.list) + while (!list_empty(head)) { + struct rpc_task *task; + task = list_first_entry(head, + struct rpc_task, + u.tk_wait.list); rpc_wake_up_task_queue_locked(queue, task); + } if (head == &queue->tasks[0]) break; head--; @@ -525,13 +541,16 @@ */ void rpc_wake_up_status(struct rpc_wait_queue *queue, int status) { - struct rpc_task *task, *next; struct list_head *head; spin_lock_bh(&queue->lock); head = &queue->tasks[queue->maxpriority]; for (;;) { - list_for_each_entry_safe(task, next, head, u.tk_wait.list) { + while (!list_empty(head)) { + struct rpc_task *task; + task = list_first_entry(head, + struct rpc_task, + u.tk_wait.list); task->tk_status = status; rpc_wake_up_task_queue_locked(queue, task); } @@ -748,7 +767,9 @@ static void rpc_async_schedule(struct work_struct *work) { + current->flags |= PF_FSTRANS; __rpc_execute(container_of(work, struct rpc_task, u.tk_work)); + current->flags &= ~PF_FSTRANS; } /** @@ -871,16 +892,35 @@ return task; } +/* + * rpc_free_task - release rpc task and perform cleanups + * + * Note that we free up the rpc_task _after_ rpc_release_calldata() + * in order to work around a workqueue dependency issue. + * + * Tejun Heo states: + * "Workqueue currently considers two work items to be the same if they're + * on the same address and won't execute them concurrently - ie. it + * makes a work item which is queued again while being executed wait + * for the previous execution to complete. + * + * If a work function frees the work item, and then waits for an event + * which should be performed by another work item and *that* work item + * recycles the freed work item, it can create a false dependency loop. + * There really is no reliable way to detect this short of verifying + * every memory free." + * + */ static void rpc_free_task(struct rpc_task *task) { - const struct rpc_call_ops *tk_ops = task->tk_ops; - void *calldata = task->tk_calldata; + unsigned short tk_flags = task->tk_flags; + + rpc_release_calldata(task->tk_ops, task->tk_calldata); - if (task->tk_flags & RPC_TASK_DYNAMIC) { + if (tk_flags & RPC_TASK_DYNAMIC) { dprintk("RPC: %5u freeing task\n", task->tk_pid); mempool_free(task, rpc_task_mempool); } - rpc_release_calldata(tk_ops, calldata); } static void rpc_async_release(struct work_struct *work) @@ -890,8 +930,7 @@ static void rpc_release_resources_task(struct rpc_task *task) { - if (task->tk_rqstp) - xprt_release(task); + xprt_release(task); if (task->tk_msg.rpc_cred) { put_rpccred(task->tk_msg.rpc_cred); task->tk_msg.rpc_cred = NULL; --- linux-3.2.0.orig/net/sunrpc/xdr.c +++ linux-3.2.0/net/sunrpc/xdr.c @@ -296,7 +296,7 @@ * Copies data into an arbitrary memory location from an array of pages * The copy is assumed to be non-overlapping. */ -static void +void _copy_from_pages(char *p, struct page **pages, size_t pgbase, size_t len) { struct page **pgfrom; @@ -324,6 +324,7 @@ } while ((len -= copy) != 0); } +EXPORT_SYMBOL_GPL(_copy_from_pages); /* * xdr_shrink_bufhead --- linux-3.2.0.orig/net/sunrpc/svcsock.c +++ linux-3.2.0/net/sunrpc/svcsock.c @@ -1136,9 +1136,9 @@ if (len >= 0) svsk->sk_tcplen += len; if (len != want) { + svc_tcp_save_pages(svsk, rqstp); if (len < 0 && len != -EAGAIN) goto err_other; - svc_tcp_save_pages(svsk, rqstp); dprintk("svc: incomplete TCP record (%d of %d)\n", svsk->sk_tcplen, svsk->sk_reclen); goto err_noclose; --- linux-3.2.0.orig/net/sunrpc/clnt.c +++ linux-3.2.0/net/sunrpc/clnt.c @@ -959,6 +959,8 @@ } switch (status) { + case -ENOMEM: + rpc_delay(task, HZ >> 2); case -EAGAIN: /* woken up; retry */ task->tk_action = call_reserve; return; --- linux-3.2.0.orig/net/sunrpc/auth_gss/auth_gss.c +++ linux-3.2.0/net/sunrpc/auth_gss/auth_gss.c @@ -122,7 +122,7 @@ if (!test_bit(RPCAUTH_CRED_NEW, &cred->cr_flags)) return; gss_get_ctx(ctx); - RCU_INIT_POINTER(gss_cred->gc_ctx, ctx); + rcu_assign_pointer(gss_cred->gc_ctx, ctx); set_bit(RPCAUTH_CRED_UPTODATE, &cred->cr_flags); smp_mb__before_clear_bit(); clear_bit(RPCAUTH_CRED_NEW, &cred->cr_flags); --- linux-3.2.0.orig/net/sunrpc/xprtrdma/transport.c +++ linux-3.2.0/net/sunrpc/xprtrdma/transport.c @@ -200,6 +200,7 @@ int rc = 0; if (!xprt->shutdown) { + current->flags |= PF_FSTRANS; xprt_clear_connected(xprt); dprintk("RPC: %s: %sconnect\n", __func__, @@ -212,10 +213,10 @@ out: xprt_wake_pending_tasks(xprt, rc); - out_clear: dprintk("RPC: %s: exit\n", __func__); xprt_clear_connecting(xprt); + current->flags &= ~PF_FSTRANS; } /* @@ -712,6 +713,7 @@ static struct rpc_xprt_ops xprt_rdma_procs = { .reserve_xprt = xprt_rdma_reserve_xprt, .release_xprt = xprt_release_xprt_cong, /* sunrpc/xprt.c */ + .alloc_slot = xprt_alloc_slot, .release_request = xprt_release_rqst_cong, /* ditto */ .set_retrans_timeout = xprt_set_retrans_timeout_def, /* ditto */ .rpcbind = rpcb_getport_async, /* sunrpc/rpcb_clnt.c */ --- linux-3.2.0.orig/net/caif/caif_socket.c +++ linux-3.2.0/net/caif/caif_socket.c @@ -320,6 +320,8 @@ if (m->msg_flags&MSG_OOB) goto read_error; + m->msg_namelen = 0; + skb = skb_recv_datagram(sk, flags, 0 , &ret); if (!skb) goto read_error; --- linux-3.2.0.orig/net/caif/cfcnfg.c +++ linux-3.2.0/net/caif/cfcnfg.c @@ -309,7 +309,6 @@ int err; struct cfctrl_link_param param; struct cfcnfg *cfg = get_cfcnfg(net); - caif_assert(cfg != NULL); rcu_read_lock(); err = caif_connect_req_to_link_param(cfg, conn_req, ¶m); --- linux-3.2.0.orig/net/caif/caif_dev.c +++ linux-3.2.0/net/caif/caif_dev.c @@ -53,7 +53,6 @@ struct caif_net *caifn; BUG_ON(!net); caifn = net_generic(net, caif_net_id); - BUG_ON(!caifn); return caifn->cfg; } EXPORT_SYMBOL(get_cfcnfg); @@ -63,7 +62,6 @@ struct caif_net *caifn; BUG_ON(!net); caifn = net_generic(net, caif_net_id); - BUG_ON(!caifn); return &caifn->caifdevs; } @@ -92,7 +90,6 @@ struct caif_device_entry *caifd; caifdevs = caif_device_list(dev_net(dev)); - BUG_ON(!caifdevs); caifd = kzalloc(sizeof(*caifd), GFP_KERNEL); if (!caifd) @@ -112,7 +109,7 @@ struct caif_device_entry_list *caifdevs = caif_device_list(dev_net(dev)); struct caif_device_entry *caifd; - BUG_ON(!caifdevs); + list_for_each_entry_rcu(caifd, &caifdevs->list, list) { if (caifd->netdev == dev) return caifd; @@ -353,7 +350,7 @@ static int caif_init_net(struct net *net) { struct caif_net *caifn = net_generic(net, caif_net_id); - BUG_ON(!caifn); + INIT_LIST_HEAD(&caifn->caifdevs.list); mutex_init(&caifn->caifdevs.lock); @@ -418,7 +415,7 @@ { int result; - result = register_pernet_device(&caif_net_ops); + result = register_pernet_subsys(&caif_net_ops); if (result) return result; @@ -431,9 +428,9 @@ static void __exit caif_device_exit(void) { - unregister_pernet_device(&caif_net_ops); unregister_netdevice_notifier(&caif_device_notifier); dev_remove_pack(&caif_packet_type); + unregister_pernet_subsys(&caif_net_ops); } module_init(caif_device_init); --- linux-3.2.0.orig/net/netlink/genetlink.c +++ linux-3.2.0/net/netlink/genetlink.c @@ -134,6 +134,7 @@ int err = 0; BUG_ON(grp->name[0] == '\0'); + BUG_ON(memchr(grp->name, '\0', GENL_NAMSIZ) == NULL); genl_lock(); --- linux-3.2.0.orig/net/netlink/af_netlink.c +++ linux-3.2.0/net/netlink/af_netlink.c @@ -137,6 +137,8 @@ static DEFINE_RWLOCK(nl_table_lock); static atomic_t nl_table_users = ATOMIC_INIT(0); +#define nl_deref_protected(X) rcu_dereference_protected(X, lockdep_is_held(&nl_table_lock)); + static ATOMIC_NOTIFIER_HEAD(netlink_chain); static u32 netlink_group_mask(u32 group) @@ -331,6 +333,11 @@ struct hlist_node *node; unsigned long mask; unsigned int i; + struct listeners *listeners; + + listeners = nl_deref_protected(tbl->listeners); + if (!listeners) + return; for (i = 0; i < NLGRPLONGS(tbl->groups); i++) { mask = 0; @@ -338,7 +345,7 @@ if (i < NLGRPLONGS(nlk_sk(sk)->ngroups)) mask |= nlk_sk(sk)->groups[i]; } - tbl->listeners->masks[i] = mask; + listeners->masks[i] = mask; } /* this function is only called with the netlink table "grabbed", which * makes sure updates are visible before bind or setsockopt return. */ @@ -519,7 +526,11 @@ if (netlink_is_kernel(sk)) { BUG_ON(nl_table[sk->sk_protocol].registered == 0); if (--nl_table[sk->sk_protocol].registered == 0) { - kfree(nl_table[sk->sk_protocol].listeners); + struct listeners *old; + + old = nl_deref_protected(nl_table[sk->sk_protocol].listeners); + RCU_INIT_POINTER(nl_table[sk->sk_protocol].listeners, NULL); + kfree_rcu(old, rcu); nl_table[sk->sk_protocol].module = NULL; nl_table[sk->sk_protocol].registered = 0; } @@ -830,12 +841,19 @@ return 0; } -int netlink_sendskb(struct sock *sk, struct sk_buff *skb) +static int __netlink_sendskb(struct sock *sk, struct sk_buff *skb) { int len = skb->len; skb_queue_tail(&sk->sk_receive_queue, skb); sk->sk_data_ready(sk, len); + return len; +} + +int netlink_sendskb(struct sock *sk, struct sk_buff *skb) +{ + int len = __netlink_sendskb(sk, skb); + sock_put(sk); return len; } @@ -943,7 +961,7 @@ rcu_read_lock(); listeners = rcu_dereference(nl_table[sk->sk_protocol].listeners); - if (group - 1 < nl_table[sk->sk_protocol].groups) + if (listeners && group - 1 < nl_table[sk->sk_protocol].groups) res = test_bit(group - 1, listeners->masks); rcu_read_unlock(); @@ -960,8 +978,7 @@ if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf && !test_bit(0, &nlk->state)) { skb_set_owner_r(skb, sk); - skb_queue_tail(&sk->sk_receive_queue, skb); - sk->sk_data_ready(sk, skb->len); + __netlink_sendskb(sk, skb); return atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf; } return -1; @@ -1327,7 +1344,7 @@ if (NULL == siocb->scm) siocb->scm = &scm; - err = scm_send(sock, msg, siocb->scm); + err = scm_send(sock, msg, siocb->scm, true); if (err < 0) return err; @@ -1338,7 +1355,8 @@ dst_pid = addr->nl_pid; dst_group = ffs(addr->nl_groups); err = -EPERM; - if (dst_group && !netlink_capable(sock, NL_NONROOT_SEND)) + if ((dst_group || dst_pid) && + !netlink_capable(sock, NL_NONROOT_SEND)) goto out; } else { dst_pid = nlk->dst_pid; @@ -1577,7 +1595,7 @@ new = kzalloc(sizeof(*new) + NLGRPSZ(groups), GFP_ATOMIC); if (!new) return -ENOMEM; - old = rcu_dereference_protected(tbl->listeners, 1); + old = nl_deref_protected(tbl->listeners); memcpy(new->masks, old->masks, NLGRPSZ(tbl->groups)); rcu_assign_pointer(tbl->listeners, new); @@ -1684,10 +1702,8 @@ if (sk_filter(sk, skb)) kfree_skb(skb); - else { - skb_queue_tail(&sk->sk_receive_queue, skb); - sk->sk_data_ready(sk, skb->len); - } + else + __netlink_sendskb(sk, skb); return 0; } @@ -1701,10 +1717,8 @@ if (sk_filter(sk, skb)) kfree_skb(skb); - else { - skb_queue_tail(&sk->sk_receive_queue, skb); - sk->sk_data_ready(sk, skb->len); - } + else + __netlink_sendskb(sk, skb); if (cb->done) cb->done(cb); @@ -2101,6 +2115,7 @@ rcu_assign_pointer(nl_table[NETLINK_USERSOCK].listeners, listeners); nl_table[NETLINK_USERSOCK].module = THIS_MODULE; nl_table[NETLINK_USERSOCK].registered = 1; + nl_table[NETLINK_USERSOCK].nl_nonroot = NL_NONROOT_SEND; netlink_table_ungrab(); } --- linux-3.2.0.orig/net/nfc/rawsock.c +++ linux-3.2.0/net/nfc/rawsock.c @@ -52,7 +52,10 @@ { struct sock *sk = sock->sk; - nfc_dbg("sock=%p", sock); + nfc_dbg("sock=%p sk=%p", sock, sk); + + if (!sk) + return 0; sock_orphan(sk); sock_put(sk); --- linux-3.2.0.orig/net/nfc/nci/ntf.c +++ linux-3.2.0/net/nfc/nci/ntf.c @@ -86,7 +86,7 @@ nfca_poll->sens_res = __le16_to_cpu(*((__u16 *)data)); data += 2; - nfca_poll->nfcid1_len = *data++; + nfca_poll->nfcid1_len = min_t(__u8, *data++, sizeof(nfca_poll->nfcid1)); nfc_dbg("sens_res 0x%x, nfcid1_len %d", nfca_poll->sens_res, @@ -111,7 +111,7 @@ switch (ntf->rf_interface_type) { case NCI_RF_INTERFACE_ISO_DEP: - nfca_poll_iso_dep->rats_res_len = *data++; + nfca_poll_iso_dep->rats_res_len = min_t(__u8, *data++, 20); if (nfca_poll_iso_dep->rats_res_len > 0) { memcpy(nfca_poll_iso_dep->rats_res, data, --- linux-3.2.0.orig/net/9p/trans_common.c +++ linux-3.2.0/net/9p/trans_common.c @@ -24,11 +24,11 @@ */ void p9_release_pages(struct page **pages, int nr_pages) { - int i = 0; - while (pages[i] && nr_pages--) { - put_page(pages[i]); - i++; - } + int i; + + for (i = 0; i < nr_pages; i++) + if (pages[i]) + put_page(pages[i]); } EXPORT_SYMBOL(p9_release_pages); --- linux-3.2.0.orig/net/9p/trans_virtio.c +++ linux-3.2.0/net/9p/trans_virtio.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -323,7 +324,7 @@ int count = nr_pages; while (nr_pages) { s = rest_of_page(data); - pages[index++] = virt_to_page(data); + pages[index++] = kmap_to_page(data); data += s; nr_pages--; } --- linux-3.2.0.orig/net/can/bcm.c +++ linux-3.2.0/net/can/bcm.c @@ -1084,6 +1084,9 @@ op->sk = sk; op->ifindex = ifindex; + /* ifindex for timeout events w/o previous frame reception */ + op->rx_ifindex = ifindex; + /* initialize uninitialized (kzalloc) structure */ hrtimer_init(&op->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); op->timer.function = bcm_rx_timeout_handler; --- linux-3.2.0.orig/net/can/gw.c +++ linux-3.2.0/net/can/gw.c @@ -436,7 +436,7 @@ if (gwj->src.dev == dev || gwj->dst.dev == dev) { hlist_del(&gwj->list); cgw_unregister_filter(gwj); - kfree(gwj); + kmem_cache_free(cgw_cache, gwj); } } } @@ -850,7 +850,7 @@ hlist_for_each_entry_safe(gwj, n, nx, &cgw_list, list) { hlist_del(&gwj->list); cgw_unregister_filter(gwj); - kfree(gwj); + kmem_cache_free(cgw_cache, gwj); } } @@ -903,7 +903,7 @@ hlist_del(&gwj->list); cgw_unregister_filter(gwj); - kfree(gwj); + kmem_cache_free(cgw_cache, gwj); err = 0; break; } --- linux-3.2.0.orig/net/can/raw.c +++ linux-3.2.0/net/can/raw.c @@ -681,9 +681,6 @@ if (err < 0) goto free_skb; - /* to be able to check the received tx sock reference in raw_rcv() */ - skb_shinfo(skb)->tx_flags |= SKBTX_DRV_NEEDS_SK_REF; - skb->dev = dev; skb->sk = sk; --- linux-3.2.0.orig/net/core/ethtool.c +++ linux-3.2.0/net/core/ethtool.c @@ -1549,6 +1549,8 @@ if (!dev->ethtool_ops->flash_device) return -EOPNOTSUPP; + efl.data[ETHTOOL_FLASH_MAX_FILENAME - 1] = 0; + return dev->ethtool_ops->flash_device(dev, &efl); } @@ -1670,6 +1672,7 @@ case ETHTOOL_GRXCSUM: case ETHTOOL_GTXCSUM: case ETHTOOL_GSG: + case ETHTOOL_GSSET_INFO: case ETHTOOL_GSTRINGS: case ETHTOOL_GTSO: case ETHTOOL_GPERMADDR: --- linux-3.2.0.orig/net/core/drop_monitor.c +++ linux-3.2.0/net/core/drop_monitor.c @@ -33,22 +33,19 @@ #define TRACE_ON 1 #define TRACE_OFF 0 -static void send_dm_alert(struct work_struct *unused); - - /* * Globals, our netlink socket pointer * and the work handle that will send up * netlink alerts */ static int trace_state = TRACE_OFF; -static DEFINE_SPINLOCK(trace_state_lock); +static DEFINE_MUTEX(trace_state_mutex); struct per_cpu_dm_data { - struct work_struct dm_alert_work; - struct sk_buff *skb; - atomic_t dm_hit_count; - struct timer_list send_timer; + spinlock_t lock; + struct sk_buff *skb; + struct work_struct dm_alert_work; + struct timer_list send_timer; }; struct dm_hw_stat_delta { @@ -74,56 +71,59 @@ static unsigned long dm_hw_check_delta = 2*HZ; static LIST_HEAD(hw_stats_list); -static void reset_per_cpu_data(struct per_cpu_dm_data *data) +static struct sk_buff *reset_per_cpu_data(struct per_cpu_dm_data *data) { size_t al; struct net_dm_alert_msg *msg; struct nlattr *nla; + struct sk_buff *skb; + unsigned long flags; al = sizeof(struct net_dm_alert_msg); al += dm_hit_limit * sizeof(struct net_dm_drop_point); al += sizeof(struct nlattr); - data->skb = genlmsg_new(al, GFP_KERNEL); - genlmsg_put(data->skb, 0, 0, &net_drop_monitor_family, - 0, NET_DM_CMD_ALERT); - nla = nla_reserve(data->skb, NLA_UNSPEC, sizeof(struct net_dm_alert_msg)); - msg = nla_data(nla); - memset(msg, 0, al); - atomic_set(&data->dm_hit_count, dm_hit_limit); + skb = genlmsg_new(al, GFP_KERNEL); + + if (skb) { + genlmsg_put(skb, 0, 0, &net_drop_monitor_family, + 0, NET_DM_CMD_ALERT); + nla = nla_reserve(skb, NLA_UNSPEC, + sizeof(struct net_dm_alert_msg)); + msg = nla_data(nla); + memset(msg, 0, al); + } else { + mod_timer(&data->send_timer, jiffies + HZ / 10); + } + + spin_lock_irqsave(&data->lock, flags); + swap(data->skb, skb); + spin_unlock_irqrestore(&data->lock, flags); + + return skb; } -static void send_dm_alert(struct work_struct *unused) +static void send_dm_alert(struct work_struct *work) { struct sk_buff *skb; - struct per_cpu_dm_data *data = &__get_cpu_var(dm_cpu_data); - - /* - * Grab the skb we're about to send - */ - skb = data->skb; + struct per_cpu_dm_data *data; - /* - * Replace it with a new one - */ - reset_per_cpu_data(data); + data = container_of(work, struct per_cpu_dm_data, dm_alert_work); - /* - * Ship it! - */ - genlmsg_multicast(skb, 0, NET_DM_GRP_ALERT, GFP_KERNEL); + skb = reset_per_cpu_data(data); + if (skb) + genlmsg_multicast(skb, 0, NET_DM_GRP_ALERT, GFP_KERNEL); } /* * This is the timer function to delay the sending of an alert * in the event that more drops will arrive during the - * hysteresis period. Note that it operates under the timer interrupt - * so we don't need to disable preemption here + * hysteresis period. */ -static void sched_send_work(unsigned long unused) +static void sched_send_work(unsigned long _data) { - struct per_cpu_dm_data *data = &__get_cpu_var(dm_cpu_data); + struct per_cpu_dm_data *data = (struct per_cpu_dm_data *)_data; schedule_work(&data->dm_alert_work); } @@ -134,17 +134,19 @@ struct nlmsghdr *nlh; struct nlattr *nla; int i; - struct per_cpu_dm_data *data = &__get_cpu_var(dm_cpu_data); + struct sk_buff *dskb; + struct per_cpu_dm_data *data; + unsigned long flags; + local_irq_save(flags); + data = &__get_cpu_var(dm_cpu_data); + spin_lock(&data->lock); + dskb = data->skb; - if (!atomic_add_unless(&data->dm_hit_count, -1, 0)) { - /* - * we're already at zero, discard this hit - */ + if (!dskb) goto out; - } - nlh = (struct nlmsghdr *)data->skb->data; + nlh = (struct nlmsghdr *)dskb->data; nla = genlmsg_data(nlmsg_data(nlh)); msg = nla_data(nla); for (i = 0; i < msg->entries; i++) { @@ -153,11 +155,12 @@ goto out; } } - + if (msg->entries == dm_hit_limit) + goto out; /* * We need to create a new entry */ - __nla_reserve_nohdr(data->skb, sizeof(struct net_dm_drop_point)); + __nla_reserve_nohdr(dskb, sizeof(struct net_dm_drop_point)); nla->nla_len += NLA_ALIGN(sizeof(struct net_dm_drop_point)); memcpy(msg->points[msg->entries].pc, &location, sizeof(void *)); msg->points[msg->entries].count = 1; @@ -165,11 +168,11 @@ if (!timer_pending(&data->send_timer)) { data->send_timer.expires = jiffies + dm_delay * HZ; - add_timer_on(&data->send_timer, smp_processor_id()); + add_timer(&data->send_timer); } out: - return; + spin_unlock_irqrestore(&data->lock, flags); } static void trace_kfree_skb_hit(void *ignore, struct sk_buff *skb, void *location) @@ -213,7 +216,7 @@ struct dm_hw_stat_delta *new_stat = NULL; struct dm_hw_stat_delta *temp; - spin_lock(&trace_state_lock); + mutex_lock(&trace_state_mutex); if (state == trace_state) { rc = -EAGAIN; @@ -252,7 +255,7 @@ rc = -EINPROGRESS; out_unlock: - spin_unlock(&trace_state_lock); + mutex_unlock(&trace_state_mutex); return rc; } @@ -295,12 +298,12 @@ new_stat->dev = dev; new_stat->last_rx = jiffies; - spin_lock(&trace_state_lock); + mutex_lock(&trace_state_mutex); list_add_rcu(&new_stat->list, &hw_stats_list); - spin_unlock(&trace_state_lock); + mutex_unlock(&trace_state_mutex); break; case NETDEV_UNREGISTER: - spin_lock(&trace_state_lock); + mutex_lock(&trace_state_mutex); list_for_each_entry_safe(new_stat, tmp, &hw_stats_list, list) { if (new_stat->dev == dev) { new_stat->dev = NULL; @@ -311,7 +314,7 @@ } } } - spin_unlock(&trace_state_lock); + mutex_unlock(&trace_state_mutex); break; } out: @@ -367,13 +370,15 @@ for_each_present_cpu(cpu) { data = &per_cpu(dm_cpu_data, cpu); - reset_per_cpu_data(data); INIT_WORK(&data->dm_alert_work, send_dm_alert); init_timer(&data->send_timer); - data->send_timer.data = cpu; + data->send_timer.data = (unsigned long)data; data->send_timer.function = sched_send_work; + spin_lock_init(&data->lock); + reset_per_cpu_data(data); } + goto out; out_unreg: --- linux-3.2.0.orig/net/core/rtnetlink.c +++ linux-3.2.0/net/core/rtnetlink.c @@ -60,7 +60,6 @@ }; static DEFINE_MUTEX(rtnl_mutex); -static u16 min_ifinfo_dump_size; void rtnl_lock(void) { @@ -670,6 +669,12 @@ } } +static unsigned int rtnl_dev_get_flags(const struct net_device *dev) +{ + return (dev->flags & ~(IFF_PROMISC | IFF_ALLMULTI)) | + (dev->gflags & (IFF_PROMISC | IFF_ALLMULTI)); +} + static unsigned int rtnl_dev_combine_flags(const struct net_device *dev, const struct ifinfomsg *ifm) { @@ -678,7 +683,7 @@ /* bugwards compatibility: ifi_change == 0 is treated as ~0 */ if (ifm->ifi_change) flags = (flags & ifm->ifi_change) | - (dev->flags & ~ifm->ifi_change); + (rtnl_dev_get_flags(dev) & ~ifm->ifi_change); return flags; } @@ -721,10 +726,11 @@ } /* All VF info */ -static inline int rtnl_vfinfo_size(const struct net_device *dev) +static inline int rtnl_vfinfo_size(const struct net_device *dev, + u32 ext_filter_mask) { - if (dev->dev.parent && dev_is_pci(dev->dev.parent)) { - + if (dev->dev.parent && dev_is_pci(dev->dev.parent) && + (ext_filter_mask & RTEXT_FILTER_VF)) { int num_vfs = dev_num_vf(dev->dev.parent); size_t size = nla_total_size(sizeof(struct nlattr)); size += nla_total_size(num_vfs * sizeof(struct nlattr)); @@ -763,7 +769,8 @@ return port_self_size; } -static noinline size_t if_nlmsg_size(const struct net_device *dev) +static noinline size_t if_nlmsg_size(const struct net_device *dev, + u32 ext_filter_mask) { return NLMSG_ALIGN(sizeof(struct ifinfomsg)) + nla_total_size(IFNAMSIZ) /* IFLA_IFNAME */ @@ -781,8 +788,9 @@ + nla_total_size(4) /* IFLA_MASTER */ + nla_total_size(1) /* IFLA_OPERSTATE */ + nla_total_size(1) /* IFLA_LINKMODE */ - + nla_total_size(4) /* IFLA_NUM_VF */ - + rtnl_vfinfo_size(dev) /* IFLA_VFINFO_LIST */ + + nla_total_size(ext_filter_mask + & RTEXT_FILTER_VF ? 4 : 0) /* IFLA_NUM_VF */ + + rtnl_vfinfo_size(dev, ext_filter_mask) /* IFLA_VFINFO_LIST */ + rtnl_port_size(dev) /* IFLA_VF_PORTS + IFLA_PORT_SELF */ + rtnl_link_get_size(dev) /* IFLA_LINKINFO */ + rtnl_link_get_af_size(dev); /* IFLA_AF_SPEC */ @@ -865,7 +873,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev, int type, u32 pid, u32 seq, u32 change, - unsigned int flags) + unsigned int flags, u32 ext_filter_mask) { struct ifinfomsg *ifm; struct nlmsghdr *nlh; @@ -938,10 +946,11 @@ goto nla_put_failure; copy_rtnl_link_stats64(nla_data(attr), stats); - if (dev->dev.parent) + if (dev->dev.parent && (ext_filter_mask & RTEXT_FILTER_VF)) NLA_PUT_U32(skb, IFLA_NUM_VF, dev_num_vf(dev->dev.parent)); - if (dev->netdev_ops->ndo_get_vf_config && dev->dev.parent) { + if (dev->netdev_ops->ndo_get_vf_config && dev->dev.parent + && (ext_filter_mask & RTEXT_FILTER_VF)) { int i; struct nlattr *vfinfo, *vf; @@ -964,6 +973,7 @@ * report anything. */ ivi.spoofchk = -1; + memset(ivi.mac, 0, sizeof(ivi.mac)); if (dev->netdev_ops->ndo_get_vf_config(dev, i, &ivi)) break; vf_mac.vf = @@ -1045,6 +1055,8 @@ struct net_device *dev; struct hlist_head *head; struct hlist_node *node; + struct nlattr *tb[IFLA_MAX+1]; + u32 ext_filter_mask = 0; s_h = cb->args[0]; s_idx = cb->args[1]; @@ -1052,6 +1064,13 @@ rcu_read_lock(); cb->seq = net->dev_base_seq; + if (nlmsg_parse(cb->nlh, sizeof(struct ifinfomsg), tb, IFLA_MAX, + ifla_policy) >= 0) { + + if (tb[IFLA_EXT_MASK]) + ext_filter_mask = nla_get_u32(tb[IFLA_EXT_MASK]); + } + for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) { idx = 0; head = &net->dev_index_head[h]; @@ -1061,7 +1080,8 @@ if (rtnl_fill_ifinfo(skb, dev, RTM_NEWLINK, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq, 0, - NLM_F_MULTI) <= 0) + NLM_F_MULTI, + ext_filter_mask) <= 0) goto out; nl_dump_check_consistent(cb, nlmsg_hdr(skb)); @@ -1097,6 +1117,7 @@ [IFLA_VF_PORTS] = { .type = NLA_NESTED }, [IFLA_PORT_SELF] = { .type = NLA_NESTED }, [IFLA_AF_SPEC] = { .type = NLA_NESTED }, + [IFLA_EXT_MASK] = { .type = NLA_U32 }, }; EXPORT_SYMBOL(ifla_policy); @@ -1116,6 +1137,8 @@ .len = sizeof(struct ifla_vf_vlan) }, [IFLA_VF_TX_RATE] = { .type = NLA_BINARY, .len = sizeof(struct ifla_vf_tx_rate) }, + [IFLA_VF_SPOOFCHK] = { .type = NLA_BINARY, + .len = sizeof(struct ifla_vf_spoofchk) }, }; static const struct nla_policy ifla_port_policy[IFLA_PORT_MAX+1] = { @@ -1352,6 +1375,7 @@ goto errout; send_addr_notify = 1; modified = 1; + add_device_randomness(dev->dev_addr, dev->addr_len); } if (tb[IFLA_MTU]) { @@ -1836,6 +1860,7 @@ struct net_device *dev = NULL; struct sk_buff *nskb; int err; + u32 ext_filter_mask = 0; err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); if (err < 0) @@ -1844,6 +1869,9 @@ if (tb[IFLA_IFNAME]) nla_strlcpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); + if (tb[IFLA_EXT_MASK]) + ext_filter_mask = nla_get_u32(tb[IFLA_EXT_MASK]); + ifm = nlmsg_data(nlh); if (ifm->ifi_index > 0) dev = __dev_get_by_index(net, ifm->ifi_index); @@ -1855,12 +1883,12 @@ if (dev == NULL) return -ENODEV; - nskb = nlmsg_new(if_nlmsg_size(dev), GFP_KERNEL); + nskb = nlmsg_new(if_nlmsg_size(dev, ext_filter_mask), GFP_KERNEL); if (nskb == NULL) return -ENOBUFS; err = rtnl_fill_ifinfo(nskb, dev, RTM_NEWLINK, NETLINK_CB(skb).pid, - nlh->nlmsg_seq, 0, 0); + nlh->nlmsg_seq, 0, 0, ext_filter_mask); if (err < 0) { /* -EMSGSIZE implies BUG in if_nlmsg_size */ WARN_ON(err == -EMSGSIZE); @@ -1871,8 +1899,32 @@ return err; } -static u16 rtnl_calcit(struct sk_buff *skb) +static u16 rtnl_calcit(struct sk_buff *skb, struct nlmsghdr *nlh) { + struct net *net = sock_net(skb->sk); + struct net_device *dev; + struct nlattr *tb[IFLA_MAX+1]; + u32 ext_filter_mask = 0; + u16 min_ifinfo_dump_size = 0; + + if (nlmsg_parse(nlh, sizeof(struct ifinfomsg), tb, IFLA_MAX, + ifla_policy) >= 0) { + if (tb[IFLA_EXT_MASK]) + ext_filter_mask = nla_get_u32(tb[IFLA_EXT_MASK]); + } + + if (!ext_filter_mask) + return NLMSG_GOODSIZE; + /* + * traverse the list of net devices and compute the minimum + * buffer size based upon the filter mask. + */ + list_for_each_entry(dev, &net->dev_base_head, dev_list) { + min_ifinfo_dump_size = max_t(u16, min_ifinfo_dump_size, + if_nlmsg_size(dev, + ext_filter_mask)); + } + return min_ifinfo_dump_size; } @@ -1907,13 +1959,11 @@ int err = -ENOBUFS; size_t if_info_size; - skb = nlmsg_new((if_info_size = if_nlmsg_size(dev)), GFP_KERNEL); + skb = nlmsg_new((if_info_size = if_nlmsg_size(dev, 0)), GFP_KERNEL); if (skb == NULL) goto errout; - min_ifinfo_dump_size = max_t(u16, if_info_size, min_ifinfo_dump_size); - - err = rtnl_fill_ifinfo(skb, dev, type, 0, 0, change, 0); + err = rtnl_fill_ifinfo(skb, dev, type, 0, 0, change, 0, 0); if (err < 0) { /* -EMSGSIZE implies BUG in if_nlmsg_size() */ WARN_ON(err == -EMSGSIZE); @@ -1971,7 +2021,7 @@ return -EOPNOTSUPP; calcit = rtnl_get_calcit(family, type); if (calcit) - min_dump_alloc = calcit(skb); + min_dump_alloc = calcit(skb, nlh); __rtnl_unlock(); rtnl = net->rtnl; @@ -1992,7 +2042,7 @@ struct rtattr *attr = (void *)nlh + NLMSG_ALIGN(min_len); while (RTA_OK(attr, attrlen)) { - unsigned flavor = attr->rta_type; + unsigned int flavor = attr->rta_type & NLA_TYPE_MASK; if (flavor) { if (flavor > rta_max[sz_idx]) return -EINVAL; --- linux-3.2.0.orig/net/core/dev.c +++ linux-3.2.0/net/core/dev.c @@ -1059,6 +1059,8 @@ */ int dev_set_alias(struct net_device *dev, const char *alias, size_t len) { + char *new_ifalias; + ASSERT_RTNL(); if (len >= IFALIASZ) @@ -1072,9 +1074,10 @@ return 0; } - dev->ifalias = krealloc(dev->ifalias, len + 1, GFP_KERNEL); - if (!dev->ifalias) + new_ifalias = krealloc(dev->ifalias, len + 1, GFP_KERNEL); + if (!new_ifalias) return -ENOMEM; + dev->ifalias = new_ifalias; strlcpy(dev->ifalias, alias, len+1); return len; @@ -1177,6 +1180,7 @@ net_dmaengine_get(); dev_set_rx_mode(dev); dev_activate(dev); + add_device_randomness(dev->dev_addr, dev->addr_len); } return ret; @@ -1421,14 +1425,34 @@ * register_netdevice_notifier(). The notifier is unlinked into the * kernel structures and may then be reused. A negative errno code * is returned on a failure. + * + * After unregistering unregister and down device events are synthesized + * for all devices on the device list to the removed notifier to remove + * the need for special case cleanup code. */ int unregister_netdevice_notifier(struct notifier_block *nb) { + struct net_device *dev; + struct net *net; int err; rtnl_lock(); err = raw_notifier_chain_unregister(&netdev_chain, nb); + if (err) + goto unlock; + + for_each_net(net) { + for_each_netdev(net, dev) { + if (dev->flags & IFF_UP) { + nb->notifier_call(nb, NETDEV_GOING_DOWN, dev); + nb->notifier_call(nb, NETDEV_DOWN, dev); + } + nb->notifier_call(nb, NETDEV_UNREGISTER, dev); + nb->notifier_call(nb, NETDEV_UNREGISTER_BATCH, dev); + } + } +unlock: rtnl_unlock(); return err; } @@ -1587,10 +1611,15 @@ kfree_skb(skb); return NET_RX_DROP; } - skb_set_dev(skb, dev); + skb->dev = dev; + skb_dst_drop(skb); skb->tstamp.tv64 = 0; skb->pkt_type = PACKET_HOST; skb->protocol = eth_type_trans(skb, dev); + skb->mark = 0; + secpath_reset(skb); + nf_reset(skb); + nf_reset_trace(skb); return netif_rx(skb); } EXPORT_SYMBOL_GPL(dev_forward_skb); @@ -1603,6 +1632,19 @@ return pt_prev->func(skb, skb->dev, pt_prev, orig_dev); } +static inline bool skb_loop_sk(struct packet_type *ptype, struct sk_buff *skb) +{ + if (!ptype->af_packet_priv || !skb->sk) + return false; + + if (ptype->id_match) + return ptype->id_match(ptype, skb->sk); + else if ((struct sock *)ptype->af_packet_priv == skb->sk) + return true; + + return false; +} + /* * Support routine. Sends outgoing frames to any network * taps currently in use. @@ -1620,8 +1662,7 @@ * they originated from - MvS (miquels@drinkel.ow.org) */ if ((ptype->dev == dev || !ptype->dev) && - (ptype->af_packet_priv == NULL || - (struct sock *)ptype->af_packet_priv != skb->sk)) { + (!skb_loop_sk(ptype, skb))) { if (pt_prev) { deliver_skb(skb2, pt_prev, skb->dev); pt_prev = ptype; @@ -1845,36 +1886,6 @@ } EXPORT_SYMBOL(netif_device_attach); -/** - * skb_dev_set -- assign a new device to a buffer - * @skb: buffer for the new device - * @dev: network device - * - * If an skb is owned by a device already, we have to reset - * all data private to the namespace a device belongs to - * before assigning it a new device. - */ -#ifdef CONFIG_NET_NS -void skb_set_dev(struct sk_buff *skb, struct net_device *dev) -{ - skb_dst_drop(skb); - if (skb->dev && !net_eq(dev_net(skb->dev), dev_net(dev))) { - secpath_reset(skb); - nf_reset(skb); - skb_init_secmark(skb); - skb->mark = 0; - skb->priority = 0; - skb->nf_trace = 0; - skb->ipvs_property = 0; -#ifdef CONFIG_NET_SCHED - skb->tc_index = 0; -#endif - } - skb->dev = dev; -} -EXPORT_SYMBOL(skb_set_dev); -#endif /* CONFIG_NET_NS */ - /* * Invalidate hardware checksum when packet is to be mangled, and * complete checksum manually on outgoing path. @@ -2085,25 +2096,6 @@ return 0; } -/* - * Try to orphan skb early, right before transmission by the device. - * We cannot orphan skb if tx timestamp is requested or the sk-reference - * is needed on driver level for other reasons, e.g. see net/can/raw.c - */ -static inline void skb_orphan_try(struct sk_buff *skb) -{ - struct sock *sk = skb->sk; - - if (sk && !skb_shinfo(skb)->tx_flags) { - /* skb_tx_hash() wont be able to get sk. - * We copy sk_hash into skb->rxhash - */ - if (!skb->rxhash) - skb->rxhash = sk->sk_hash; - skb_orphan(skb); - } -} - static bool can_checksum_protocol(unsigned long features, __be16 protocol) { return ((features & NETIF_F_GEN_CSUM) || @@ -2117,7 +2109,8 @@ static u32 harmonize_features(struct sk_buff *skb, __be16 protocol, u32 features) { - if (!can_checksum_protocol(features, protocol)) { + if (skb->ip_summed != CHECKSUM_NONE && + !can_checksum_protocol(features, protocol)) { features &= ~NETIF_F_ALL_CSUM; features &= ~NETIF_F_SG; } else if (illegal_highdma(skb->dev, skb)) { @@ -2132,6 +2125,9 @@ __be16 protocol = skb->protocol; u32 features = skb->dev->features; + if (skb_shinfo(skb)->gso_segs > skb->dev->gso_max_segs) + features &= ~NETIF_F_GSO_MASK; + if (protocol == htons(ETH_P_8021Q)) { struct vlan_ethhdr *veh = (struct vlan_ethhdr *)skb->data; protocol = veh->h_vlan_encapsulated_proto; @@ -2188,8 +2184,6 @@ if (!list_empty(&ptype_all)) dev_queue_xmit_nit(skb, dev); - skb_orphan_try(skb); - features = netif_skb_features(skb); if (vlan_tx_tag_present(skb) && @@ -2299,7 +2293,7 @@ if (skb->sk && skb->sk->sk_hash) hash = skb->sk->sk_hash; else - hash = (__force u16) skb->protocol ^ skb->rxhash; + hash = (__force u16) skb->protocol; hash = jhash_1word(hash, hashrnd); return (u16) (((u64) hash * qcount) >> 32) + qoffset; @@ -2694,16 +2688,17 @@ nhoff += poff; if (pskb_may_pull(skb, nhoff + 4)) { ports.v32 = * (__force u32 *) (skb->data + nhoff); - if (ports.v16[1] < ports.v16[0]) - swap(ports.v16[0], ports.v16[1]); skb->l4_rxhash = 1; } } /* get a consistent hash (same value on both flow directions) */ - if (addr2 < addr1) + if (addr2 < addr1 || + (addr2 == addr1 && + ports.v16[1] < ports.v16[0])) { swap(addr1, addr2); - + swap(ports.v16[0], ports.v16[1]); + } hash = jhash_3words(addr1, addr2, ports.v32, hashrnd); if (!hash) hash = 1; @@ -2835,8 +2830,10 @@ if (unlikely(tcpu != next_cpu) && (tcpu == RPS_NO_CPU || !cpu_online(tcpu) || ((int)(per_cpu(softnet_data, tcpu).input_queue_head - - rflow->last_qtail)) >= 0)) + rflow->last_qtail)) >= 0)) { + tcpu = next_cpu; rflow = set_rps_cpu(dev, skb, rflow, next_cpu); + } if (tcpu != RPS_NO_CPU && cpu_online(tcpu)) { *rflowp = rflow; @@ -3197,6 +3194,7 @@ if (dev->rx_handler) return -EBUSY; + /* Note: rx_handler_data must be set before rx_handler */ rcu_assign_pointer(dev->rx_handler_data, rx_handler_data); rcu_assign_pointer(dev->rx_handler, rx_handler); @@ -3217,6 +3215,11 @@ ASSERT_RTNL(); RCU_INIT_POINTER(dev->rx_handler, NULL); + /* a reader seeing a non NULL rx_handler in a rcu_read_lock() + * section has a guarantee to see a non NULL rx_handler_data + * as well. + */ + synchronize_net(); RCU_INIT_POINTER(dev->rx_handler_data, NULL); } EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister); @@ -3284,18 +3287,18 @@ ncls: #endif - rx_handler = rcu_dereference(skb->dev->rx_handler); if (vlan_tx_tag_present(skb)) { if (pt_prev) { ret = deliver_skb(skb, pt_prev, orig_dev); pt_prev = NULL; } - if (vlan_do_receive(&skb, !rx_handler)) + if (vlan_do_receive(&skb)) goto another_round; else if (unlikely(!skb)) goto out; } + rx_handler = rcu_dereference(skb->dev->rx_handler); if (rx_handler) { if (pt_prev) { ret = deliver_skb(skb, pt_prev, orig_dev); @@ -3303,6 +3306,7 @@ } switch (rx_handler(&skb)) { case RX_HANDLER_CONSUMED: + ret = NET_RX_SUCCESS; goto out; case RX_HANDLER_ANOTHER: goto another_round; @@ -3315,6 +3319,9 @@ } } + if (vlan_tx_nonzero_tag_present(skb)) + skb->pkt_type = PACKET_OTHERHOST; + /* deliver only exact match when indicated */ null_or_dev = deliver_exact ? skb->dev : NULL; @@ -3565,14 +3572,20 @@ __napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb) { struct sk_buff *p; + unsigned int maclen = skb->dev->hard_header_len; for (p = napi->gro_list; p; p = p->next) { unsigned long diffs; diffs = (unsigned long)p->dev ^ (unsigned long)skb->dev; diffs |= p->vlan_tci ^ skb->vlan_tci; - diffs |= compare_ether_header(skb_mac_header(p), - skb_gro_mac_header(skb)); + if (maclen == ETH_HLEN) + diffs |= compare_ether_header(skb_mac_header(p), + skb_gro_mac_header(skb)); + else if (!diffs) + diffs = memcmp(skb_mac_header(p), + skb_gro_mac_header(skb), + maclen); NAPI_GRO_CB(p)->same_flow = !diffs; NAPI_GRO_CB(p)->flush = 0; } @@ -3628,7 +3641,8 @@ static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb) { __skb_pull(skb, skb_headlen(skb)); - skb_reserve(skb, NET_IP_ALIGN - skb_headroom(skb)); + /* restore the reserve we had after netdev_alloc_skb_ip_align() */ + skb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN - skb_headroom(skb)); skb->vlan_tci = 0; skb->dev = napi->dev; skb->skb_iif = 0; @@ -4095,54 +4109,41 @@ #ifdef CONFIG_PROC_FS -#define BUCKET_SPACE (32 - NETDEV_HASHBITS) - -struct dev_iter_state { - struct seq_net_private p; - unsigned int pos; /* bucket << BUCKET_SPACE + offset */ -}; +#define BUCKET_SPACE (32 - NETDEV_HASHBITS - 1) #define get_bucket(x) ((x) >> BUCKET_SPACE) #define get_offset(x) ((x) & ((1 << BUCKET_SPACE) - 1)) #define set_bucket_offset(b, o) ((b) << BUCKET_SPACE | (o)) -static inline struct net_device *dev_from_same_bucket(struct seq_file *seq) +static inline struct net_device *dev_from_same_bucket(struct seq_file *seq, loff_t *pos) { - struct dev_iter_state *state = seq->private; struct net *net = seq_file_net(seq); struct net_device *dev; struct hlist_node *p; struct hlist_head *h; - unsigned int count, bucket, offset; + unsigned int count = 0, offset = get_offset(*pos); - bucket = get_bucket(state->pos); - offset = get_offset(state->pos); - h = &net->dev_name_head[bucket]; - count = 0; + h = &net->dev_name_head[get_bucket(*pos)]; hlist_for_each_entry_rcu(dev, p, h, name_hlist) { - if (count++ == offset) { - state->pos = set_bucket_offset(bucket, count); + if (++count == offset) return dev; - } } return NULL; } -static inline struct net_device *dev_from_new_bucket(struct seq_file *seq) +static inline struct net_device *dev_from_bucket(struct seq_file *seq, loff_t *pos) { - struct dev_iter_state *state = seq->private; struct net_device *dev; unsigned int bucket; - bucket = get_bucket(state->pos); do { - dev = dev_from_same_bucket(seq); + dev = dev_from_same_bucket(seq, pos); if (dev) return dev; - bucket++; - state->pos = set_bucket_offset(bucket, 0); + bucket = get_bucket(*pos) + 1; + *pos = set_bucket_offset(bucket, 1); } while (bucket < NETDEV_HASHENTRIES); return NULL; @@ -4155,33 +4156,20 @@ void *dev_seq_start(struct seq_file *seq, loff_t *pos) __acquires(RCU) { - struct dev_iter_state *state = seq->private; - rcu_read_lock(); if (!*pos) return SEQ_START_TOKEN; - /* check for end of the hash */ - if (state->pos == 0 && *pos > 1) + if (get_bucket(*pos) >= NETDEV_HASHENTRIES) return NULL; - return dev_from_new_bucket(seq); + return dev_from_bucket(seq, pos); } void *dev_seq_next(struct seq_file *seq, void *v, loff_t *pos) { - struct net_device *dev; - ++*pos; - - if (v == SEQ_START_TOKEN) - return dev_from_new_bucket(seq); - - dev = dev_from_same_bucket(seq); - if (dev) - return dev; - - return dev_from_new_bucket(seq); + return dev_from_bucket(seq, pos); } void dev_seq_stop(struct seq_file *seq, void *v) @@ -4280,13 +4268,7 @@ static int dev_seq_open(struct inode *inode, struct file *file) { return seq_open_net(inode, file, &dev_seq_ops, - sizeof(struct dev_iter_state)); -} - -int dev_seq_open_ops(struct inode *inode, struct file *file, - const struct seq_operations *ops) -{ - return seq_open_net(inode, file, ops, sizeof(struct dev_iter_state)); + sizeof(struct seq_net_private)); } static const struct file_operations dev_seq_fops = { @@ -4893,6 +4875,7 @@ err = ops->ndo_set_mac_address(dev, sa); if (!err) call_netdevice_notifiers(NETDEV_CHANGEADDR, dev); + add_device_randomness(dev->dev_addr, dev->addr_len); return err; } EXPORT_SYMBOL(dev_set_mac_address); @@ -5673,6 +5656,7 @@ dev_init_scheduler(dev); dev_hold(dev); list_netdevice(dev); + add_device_randomness(dev->dev_addr, dev->addr_len); /* Notify protocols, that a new device appeared. */ ret = call_netdevice_notifiers(NETDEV_REGISTER, dev); @@ -6039,6 +6023,7 @@ dev_net_set(dev, &init_net); dev->gso_max_size = GSO_MAX_SIZE; + dev->gso_max_segs = GSO_MAX_SEGS; INIT_LIST_HEAD(&dev->napi_list); INIT_LIST_HEAD(&dev->unreg_list); @@ -6417,7 +6402,8 @@ /* Initialize per network namespace state */ static int __net_init netdev_init(struct net *net) { - INIT_LIST_HEAD(&net->dev_base_head); + if (net != &init_net) + INIT_LIST_HEAD(&net->dev_base_head); net->dev_name_head = netdev_create_hash(); if (net->dev_name_head == NULL) --- linux-3.2.0.orig/net/core/filter.c +++ linux-3.2.0/net/core/filter.c @@ -39,6 +39,7 @@ #include #include #include +#include /* No hurry in this branch */ static void *__load_pointer(const struct sk_buff *skb, int k, unsigned int size) @@ -350,6 +351,11 @@ A = 0; continue; } +#ifdef CONFIG_SECCOMP_FILTER + case BPF_S_ANC_SECCOMP_LD_W: + A = seccomp_bpf_load(fentry->k); + continue; +#endif default: WARN_RATELIMIT(1, "Unknown code:%u jt:%u tf:%u k:%u\n", fentry->code, fentry->jt, --- linux-3.2.0.orig/net/core/sock.c +++ linux-3.2.0/net/core/sock.c @@ -593,7 +593,8 @@ case SO_KEEPALIVE: #ifdef CONFIG_INET - if (sk->sk_protocol == IPPROTO_TCP) + if (sk->sk_protocol == IPPROTO_TCP && + sk->sk_type == SOCK_STREAM) tcp_set_keepalive(sk, valbool); #endif sock_valbool_flag(sk, SOCK_KEEPOPEN, valbool); @@ -760,6 +761,20 @@ } EXPORT_SYMBOL_GPL(cred_to_ucred); +void cred_real_to_ucred(struct pid *pid, const struct cred *cred, + struct ucred *ucred) +{ + ucred->pid = pid_vnr(pid); + ucred->uid = ucred->gid = -1; + if (cred) { + struct user_namespace *current_ns = current_user_ns(); + + ucred->uid = user_ns_map_uid(current_ns, cred, cred->uid); + ucred->gid = user_ns_map_gid(current_ns, cred, cred->gid); + } +} +EXPORT_SYMBOL_GPL(cred_real_to_ucred); + int sock_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen) { @@ -1006,18 +1021,6 @@ #endif } -/* - * caches using SLAB_DESTROY_BY_RCU should let .next pointer from nulls nodes - * un-modified. Special care is taken when initializing object to zero. - */ -static inline void sk_prot_clear_nulls(struct sock *sk, int size) -{ - if (offsetof(struct sock, sk_node.next) != 0) - memset(sk, 0, offsetof(struct sock, sk_node.next)); - memset(&sk->sk_node.pprev, 0, - size - offsetof(struct sock, sk_node.pprev)); -} - void sk_prot_clear_portaddr_nulls(struct sock *sk, int size) { unsigned long nulls1, nulls2; @@ -1308,6 +1311,7 @@ } else { sk->sk_route_caps |= NETIF_F_SG | NETIF_F_HW_CSUM; sk->sk_gso_max_size = dst->dev->gso_max_size; + sk->sk_gso_max_segs = dst->dev->gso_max_segs; } } } @@ -1497,6 +1501,11 @@ gfp_t gfp_mask; long timeo; int err; + int npages = (data_len + (PAGE_SIZE - 1)) >> PAGE_SHIFT; + + err = -EMSGSIZE; + if (npages > MAX_SKB_FRAGS) + goto failure; gfp_mask = sk->sk_allocation; if (gfp_mask & __GFP_WAIT) @@ -1515,14 +1524,12 @@ if (atomic_read(&sk->sk_wmem_alloc) < sk->sk_sndbuf) { skb = alloc_skb(header_len, gfp_mask); if (skb) { - int npages; int i; /* No pages, we're done... */ if (!data_len) break; - npages = (data_len + (PAGE_SIZE - 1)) >> PAGE_SHIFT; skb->truesize += data_len; skb_shinfo(skb)->nr_frags = npages; for (i = 0; i < npages; i++) { --- linux-3.2.0.orig/net/core/dev_addr_lists.c +++ linux-3.2.0/net/core/dev_addr_lists.c @@ -57,7 +57,7 @@ ha->type = addr_type; ha->refcount = 1; ha->global_use = global; - ha->synced = false; + ha->synced = 0; list_add_tail_rcu(&ha->list, &list->list); list->count++; return 0; @@ -155,7 +155,7 @@ addr_len, ha->type); if (err) break; - ha->synced = true; + ha->synced++; ha->refcount++; } else if (ha->refcount == 1) { __hw_addr_del(to_list, ha->addr, addr_len, ha->type); @@ -176,7 +176,7 @@ if (ha->synced) { __hw_addr_del(to_list, ha->addr, addr_len, ha->type); - ha->synced = false; + ha->synced--; __hw_addr_del(from_list, ha->addr, addr_len, ha->type); } @@ -308,7 +308,8 @@ */ ha = list_first_entry(&dev->dev_addrs.list, struct netdev_hw_addr, list); - if (ha->addr == dev->dev_addr && ha->refcount == 1) + if (!memcmp(ha->addr, addr, dev->addr_len) && + ha->type == addr_type && ha->refcount == 1) return -ENOENT; err = __hw_addr_del(&dev->dev_addrs, addr, dev->addr_len, @@ -696,7 +697,8 @@ static int dev_mc_seq_open(struct inode *inode, struct file *file) { - return dev_seq_open_ops(inode, file, &dev_mc_seq_ops); + return seq_open_net(inode, file, &dev_mc_seq_ops, + sizeof(struct seq_net_private)); } static const struct file_operations dev_mc_seq_fops = { --- linux-3.2.0.orig/net/core/net_namespace.c +++ linux-3.2.0/net/core/net_namespace.c @@ -25,11 +25,27 @@ LIST_HEAD(net_namespace_list); EXPORT_SYMBOL_GPL(net_namespace_list); -struct net init_net; +struct net init_net = { + .dev_base_head = LIST_HEAD_INIT(init_net.dev_base_head), +}; EXPORT_SYMBOL(init_net); #define INITIAL_NET_GEN_PTRS 13 /* +1 for len +2 for rcu_head */ +static unsigned int max_gen_ptrs = INITIAL_NET_GEN_PTRS; + +static struct net_generic *net_alloc_generic(void) +{ + struct net_generic *ng; + size_t generic_size = offsetof(struct net_generic, ptr[max_gen_ptrs]); + + ng = kzalloc(generic_size, GFP_KERNEL); + if (ng) + ng->len = max_gen_ptrs; + + return ng; +} + static int net_assign_generic(struct net *net, int id, void *data) { struct net_generic *ng, *old_ng; @@ -43,8 +59,7 @@ if (old_ng->len >= id) goto assign; - ng = kzalloc(sizeof(struct net_generic) + - id * sizeof(void *), GFP_KERNEL); + ng = net_alloc_generic(); if (ng == NULL) return -ENOMEM; @@ -59,7 +74,6 @@ * the old copy for kfree after a grace period. */ - ng->len = id; memcpy(&ng->ptr, &old_ng->ptr, old_ng->len * sizeof(void*)); rcu_assign_pointer(net->gen, ng); @@ -71,21 +85,29 @@ static int ops_init(const struct pernet_operations *ops, struct net *net) { - int err; + int err = -ENOMEM; + void *data = NULL; + if (ops->id && ops->size) { - void *data = kzalloc(ops->size, GFP_KERNEL); + data = kzalloc(ops->size, GFP_KERNEL); if (!data) - return -ENOMEM; + goto out; err = net_assign_generic(net, *ops->id, data); - if (err) { - kfree(data); - return err; - } + if (err) + goto cleanup; } + err = 0; if (ops->init) - return ops->init(net); - return 0; + err = ops->init(net); + if (!err) + return 0; + +cleanup: + kfree(data); + +out: + return err; } static void ops_free(const struct pernet_operations *ops, struct net *net) @@ -161,18 +183,6 @@ goto out; } -static struct net_generic *net_alloc_generic(void) -{ - struct net_generic *ng; - size_t generic_size = sizeof(struct net_generic) + - INITIAL_NET_GEN_PTRS * sizeof(void *); - - ng = kzalloc(generic_size, GFP_KERNEL); - if (ng) - ng->len = INITIAL_NET_GEN_PTRS; - - return ng; -} #ifdef CONFIG_NET_NS static struct kmem_cache *net_cachep; @@ -448,12 +458,7 @@ static int __register_pernet_operations(struct list_head *list, struct pernet_operations *ops) { - int err = 0; - err = ops_init(ops, &init_net); - if (err) - ops_free(ops, &init_net); - return err; - + return ops_init(ops, &init_net); } static void __unregister_pernet_operations(struct pernet_operations *ops) @@ -483,6 +488,7 @@ } return error; } + max_gen_ptrs = max_t(unsigned int, max_gen_ptrs, *ops->id); } error = __register_pernet_operations(list, ops); if (error) { --- linux-3.2.0.orig/net/core/neighbour.c +++ linux-3.2.0/net/core/neighbour.c @@ -237,7 +237,7 @@ we must kill timers etc. and move it to safe state. */ - skb_queue_purge(&n->arp_queue); + __skb_queue_purge(&n->arp_queue); n->output = neigh_blackhole; if (n->nud_state & NUD_VALID) n->nud_state = NUD_NOARP; @@ -291,7 +291,7 @@ if (!n) goto out_entries; - skb_queue_head_init(&n->arp_queue); + __skb_queue_head_init(&n->arp_queue); rwlock_init(&n->lock); seqlock_init(&n->ha_lock); n->updated = n->used = now; @@ -701,7 +701,9 @@ if (neigh_del_timer(neigh)) printk(KERN_WARNING "Impossible event.\n"); - skb_queue_purge(&neigh->arp_queue); + write_lock_bh(&neigh->lock); + __skb_queue_purge(&neigh->arp_queue); + write_unlock_bh(&neigh->lock); dev_put(neigh->dev); neigh_parms_put(neigh->parms); @@ -802,6 +804,8 @@ write_unlock_bh(&tbl->lock); cond_resched(); write_lock_bh(&tbl->lock); + nht = rcu_dereference_protected(tbl->nht, + lockdep_is_held(&tbl->lock)); } /* Cycle through all hash buckets every base_reachable_time/2 ticks. * ARP entry timeouts range from 1/2 base_reachable_time to 3/2 @@ -841,7 +845,7 @@ neigh->ops->error_report(neigh, skb); write_lock(&neigh->lock); } - skb_queue_purge(&neigh->arp_queue); + __skb_queue_purge(&neigh->arp_queue); } static void neigh_probe(struct neighbour *neigh) @@ -1174,7 +1178,7 @@ write_lock_bh(&neigh->lock); } - skb_queue_purge(&neigh->arp_queue); + __skb_queue_purge(&neigh->arp_queue); } out: if (update_isrouter) { @@ -1252,8 +1256,6 @@ if (!dst) goto discard; - __skb_pull(skb, skb_network_offset(skb)); - if (!neigh_event_send(neigh, skb)) { int err; struct net_device *dev = neigh->dev; @@ -1263,6 +1265,7 @@ neigh_hh_init(neigh, dst); do { + __skb_pull(skb, skb_network_offset(skb)); seq = read_seqbegin(&neigh->ha_lock); err = dev_hard_header(skb, dev, ntohs(skb->protocol), neigh->ha, NULL, skb->len); @@ -1293,9 +1296,8 @@ unsigned int seq; int err; - __skb_pull(skb, skb_network_offset(skb)); - do { + __skb_pull(skb, skb_network_offset(skb)); seq = read_seqbegin(&neigh->ha_lock); err = dev_hard_header(skb, dev, ntohs(skb->protocol), neigh->ha, NULL, skb->len); --- linux-3.2.0.orig/net/core/pktgen.c +++ linux-3.2.0/net/core/pktgen.c @@ -1803,10 +1803,13 @@ return -EFAULT; i += len; mutex_lock(&pktgen_thread_lock); - pktgen_add_device(t, f); + ret = pktgen_add_device(t, f); mutex_unlock(&pktgen_thread_lock); - ret = count; - sprintf(pg_result, "OK: add_device=%s", f); + if (!ret) { + ret = count; + sprintf(pg_result, "OK: add_device=%s", f); + } else + sprintf(pg_result, "ERROR: can not add device %s", f); goto out; } @@ -1932,7 +1935,7 @@ { struct net_device *dev = ptr; - if (!net_eq(dev_net(dev), &init_net)) + if (!net_eq(dev_net(dev), &init_net) || pktgen_exiting) return NOTIFY_DONE; /* It is OK that we do not hold the group lock right now, @@ -2935,7 +2938,7 @@ sizeof(struct ipv6hdr) - sizeof(struct udphdr) - pkt_dev->pkt_overhead; - if (datalen < sizeof(struct pktgen_hdr)) { + if (datalen < 0 || datalen < sizeof(struct pktgen_hdr)) { datalen = sizeof(struct pktgen_hdr); if (net_ratelimit()) pr_info("increased datalen to %d\n", datalen); @@ -3758,12 +3761,18 @@ { struct pktgen_thread *t; struct list_head *q, *n; + LIST_HEAD(list); /* Stop all interfaces & threads */ pktgen_exiting = true; - list_for_each_safe(q, n, &pktgen_threads) { + mutex_lock(&pktgen_thread_lock); + list_splice_init(&pktgen_threads, &list); + mutex_unlock(&pktgen_thread_lock); + + list_for_each_safe(q, n, &list) { t = list_entry(q, struct pktgen_thread, th_list); + list_del(&t->th_list); kthread_stop(t->tsk); kfree(t); } --- linux-3.2.0.orig/net/core/net-sysfs.c +++ linux-3.2.0/net/core/net-sysfs.c @@ -990,9 +990,9 @@ nonempty = 1; } - if (nonempty) - RCU_INIT_POINTER(dev->xps_maps, new_dev_maps); - else { + if (nonempty) { + rcu_assign_pointer(dev->xps_maps, new_dev_maps); + } else { kfree(new_dev_maps); RCU_INIT_POINTER(dev->xps_maps, NULL); } --- linux-3.2.0.orig/net/core/skbuff.c +++ linux-3.2.0/net/core/skbuff.c @@ -903,9 +903,11 @@ goto adjust_others; } - data = kmalloc(size + sizeof(struct skb_shared_info), gfp_mask); + data = kmalloc(size + SKB_DATA_ALIGN(sizeof(struct skb_shared_info)), + gfp_mask); if (!data) goto nodata; + size = SKB_WITH_OVERHEAD(ksize(data)); /* Copy only real data... and, alas, header. This should be * optimized for the cases when header is void. @@ -1661,6 +1663,7 @@ struct splice_pipe_desc spd = { .pages = pages, .partial = partial, + .nr_pages_max = MAX_SKB_FRAGS, .flags = flags, .ops = &sock_pipe_buf_ops, .spd_release = sock_spd_release, @@ -1707,7 +1710,7 @@ lock_sock(sk); } - splice_shrink_spd(pipe, &spd); + splice_shrink_spd(&spd); return ret; } @@ -3111,6 +3114,8 @@ */ int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb) { + int len = skb->len; + if (atomic_read(&sk->sk_rmem_alloc) + skb->truesize >= (unsigned)sk->sk_rcvbuf) return -ENOMEM; @@ -3125,7 +3130,7 @@ skb_queue_tail(&sk->sk_error_queue, skb); if (!sock_flag(sk, SOCK_DEAD)) - sk->sk_data_ready(sk, skb->len); + sk->sk_data_ready(sk, len); return 0; } EXPORT_SYMBOL(sock_queue_err_skb); --- linux-3.2.0.orig/net/core/netpoll.c +++ linux-3.2.0/net/core/netpoll.c @@ -194,7 +194,7 @@ poll_napi(dev); - if (dev->priv_flags & IFF_SLAVE) { + if (dev->flags & IFF_SLAVE) { if (dev->npinfo) { struct net_device *bond_dev = dev->master; struct sk_buff *skb; @@ -351,22 +351,23 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len) { - int total_len, eth_len, ip_len, udp_len; + int total_len, ip_len, udp_len; struct sk_buff *skb; struct udphdr *udph; struct iphdr *iph; struct ethhdr *eth; udp_len = len + sizeof(*udph); - ip_len = eth_len = udp_len + sizeof(*iph); - total_len = eth_len + ETH_HLEN + NET_IP_ALIGN; + ip_len = udp_len + sizeof(*iph); + total_len = ip_len + LL_RESERVED_SPACE(np->dev); - skb = find_skb(np, total_len, total_len - len); + skb = find_skb(np, total_len + np->dev->needed_tailroom, + total_len - len); if (!skb) return; skb_copy_to_linear_data(skb, msg, len); - skb->len += len; + skb_put(skb, len); skb_push(skb, sizeof(*udph)); skb_reset_transport_header(skb); @@ -763,7 +764,7 @@ } /* last thing to do is link it to the net device structure */ - RCU_INIT_POINTER(ndev->npinfo, npinfo); + rcu_assign_pointer(ndev->npinfo, npinfo); return 0; --- linux-3.2.0.orig/net/atm/common.c +++ linux-3.2.0/net/atm/common.c @@ -500,6 +500,8 @@ struct sk_buff *skb; int copied, error = -EINVAL; + msg->msg_namelen = 0; + if (sock->state != SS_CONNECTED) return -ENOTCONN; if (flags & ~MSG_DONTWAIT) /* only handle MSG_DONTWAIT */ @@ -784,6 +786,7 @@ if (!vcc->dev || !test_bit(ATM_VF_ADDR, &vcc->flags)) return -ENOTCONN; + memset(&pvc, 0, sizeof(pvc)); pvc.sap_family = AF_ATMPVC; pvc.sap_addr.itf = vcc->dev->number; pvc.sap_addr.vpi = vcc->vpi; --- linux-3.2.0.orig/net/atm/pvc.c +++ linux-3.2.0/net/atm/pvc.c @@ -95,6 +95,7 @@ return -ENOTCONN; *sockaddr_len = sizeof(struct sockaddr_atmpvc); addr = (struct sockaddr_atmpvc *)sockaddr; + memset(addr, 0, sizeof(*addr)); addr->sap_family = AF_ATMPVC; addr->sap_addr.itf = vcc->dev->number; addr->sap_addr.vpi = vcc->vpi; --- linux-3.2.0.orig/net/netrom/af_netrom.c +++ linux-3.2.0/net/netrom/af_netrom.c @@ -1170,9 +1170,15 @@ msg->msg_flags |= MSG_TRUNC; } - skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); + er = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); + if (er < 0) { + skb_free_datagram(sk, skb); + release_sock(sk); + return er; + } if (sax != NULL) { + memset(sax, 0, sizeof(*sax)); sax->sax25_family = AF_NETROM; skb_copy_from_linear_data_offset(skb, 7, sax->sax25_call.ax25_call, AX25_ADDR_LEN); --- linux-3.2.0.orig/net/dsa/tag_edsa.c +++ linux-3.2.0/net/dsa/tag_edsa.c @@ -205,20 +205,7 @@ return 0; } -static struct packet_type edsa_packet_type __read_mostly = { +struct packet_type edsa_packet_type __read_mostly = { .type = cpu_to_be16(ETH_P_EDSA), .func = edsa_rcv, }; - -static int __init edsa_init_module(void) -{ - dev_add_pack(&edsa_packet_type); - return 0; -} -module_init(edsa_init_module); - -static void __exit edsa_cleanup_module(void) -{ - dev_remove_pack(&edsa_packet_type); -} -module_exit(edsa_cleanup_module); --- linux-3.2.0.orig/net/dsa/Kconfig +++ linux-3.2.0/net/dsa/Kconfig @@ -1,5 +1,5 @@ -menuconfig NET_DSA - bool "Distributed Switch Architecture support" +config NET_DSA + tristate "Distributed Switch Architecture support" default n depends on EXPERIMENTAL && NETDEVICES && !S390 select PHYLIB @@ -23,38 +23,4 @@ bool default n - -# switch drivers -config NET_DSA_MV88E6XXX - bool - default n - -config NET_DSA_MV88E6060 - bool "Marvell 88E6060 ethernet switch chip support" - select NET_DSA_TAG_TRAILER - ---help--- - This enables support for the Marvell 88E6060 ethernet switch - chip. - -config NET_DSA_MV88E6XXX_NEED_PPU - bool - default n - -config NET_DSA_MV88E6131 - bool "Marvell 88E6085/6095/6095F/6131 ethernet switch chip support" - select NET_DSA_MV88E6XXX - select NET_DSA_MV88E6XXX_NEED_PPU - select NET_DSA_TAG_DSA - ---help--- - This enables support for the Marvell 88E6085/6095/6095F/6131 - ethernet switch chips. - -config NET_DSA_MV88E6123_61_65 - bool "Marvell 88E6123/6161/6165 ethernet switch chip support" - select NET_DSA_MV88E6XXX - select NET_DSA_TAG_EDSA - ---help--- - This enables support for the Marvell 88E6123/6161/6165 - ethernet switch chips. - endif --- linux-3.2.0.orig/net/dsa/tag_dsa.c +++ linux-3.2.0/net/dsa/tag_dsa.c @@ -186,20 +186,7 @@ return 0; } -static struct packet_type dsa_packet_type __read_mostly = { +struct packet_type dsa_packet_type __read_mostly = { .type = cpu_to_be16(ETH_P_DSA), .func = dsa_rcv, }; - -static int __init dsa_init_module(void) -{ - dev_add_pack(&dsa_packet_type); - return 0; -} -module_init(dsa_init_module); - -static void __exit dsa_cleanup_module(void) -{ - dev_remove_pack(&dsa_packet_type); -} -module_exit(dsa_cleanup_module); --- linux-3.2.0.orig/net/dsa/Makefile +++ linux-3.2.0/net/dsa/Makefile @@ -1,13 +1,8 @@ -# tagging formats -obj-$(CONFIG_NET_DSA_TAG_DSA) += tag_dsa.o -obj-$(CONFIG_NET_DSA_TAG_EDSA) += tag_edsa.o -obj-$(CONFIG_NET_DSA_TAG_TRAILER) += tag_trailer.o - -# switch drivers -obj-$(CONFIG_NET_DSA_MV88E6XXX) += mv88e6xxx.o -obj-$(CONFIG_NET_DSA_MV88E6060) += mv88e6060.o -obj-$(CONFIG_NET_DSA_MV88E6123_61_65) += mv88e6123_61_65.o -obj-$(CONFIG_NET_DSA_MV88E6131) += mv88e6131.o - # the core -obj-$(CONFIG_NET_DSA) += dsa.o slave.o +obj-$(CONFIG_NET_DSA) += dsa_core.o +dsa_core-y += dsa.o slave.o + +# tagging formats +dsa_core-$(CONFIG_NET_DSA_TAG_DSA) += tag_dsa.o +dsa_core-$(CONFIG_NET_DSA_TAG_EDSA) += tag_edsa.o +dsa_core-$(CONFIG_NET_DSA_TAG_TRAILER) += tag_trailer.o --- linux-3.2.0.orig/net/dsa/tag_trailer.c +++ linux-3.2.0/net/dsa/tag_trailer.c @@ -114,20 +114,7 @@ return 0; } -static struct packet_type trailer_packet_type __read_mostly = { +struct packet_type trailer_packet_type __read_mostly = { .type = cpu_to_be16(ETH_P_TRAILER), .func = trailer_rcv, }; - -static int __init trailer_init_module(void) -{ - dev_add_pack(&trailer_packet_type); - return 0; -} -module_init(trailer_init_module); - -static void __exit trailer_cleanup_module(void) -{ - dev_remove_pack(&trailer_packet_type); -} -module_exit(trailer_cleanup_module); --- linux-3.2.0.orig/net/dsa/dsa_priv.h +++ linux-3.2.0/net/dsa/dsa_priv.h @@ -11,97 +11,9 @@ #ifndef __DSA_PRIV_H #define __DSA_PRIV_H -#include #include -#include -#include #include -struct dsa_switch { - /* - * Parent switch tree, and switch index. - */ - struct dsa_switch_tree *dst; - int index; - - /* - * Configuration data for this switch. - */ - struct dsa_chip_data *pd; - - /* - * The used switch driver. - */ - struct dsa_switch_driver *drv; - - /* - * Reference to mii bus to use. - */ - struct mii_bus *master_mii_bus; - - /* - * Slave mii_bus and devices for the individual ports. - */ - u32 dsa_port_mask; - u32 phys_port_mask; - struct mii_bus *slave_mii_bus; - struct net_device *ports[DSA_MAX_PORTS]; -}; - -struct dsa_switch_tree { - /* - * Configuration data for the platform device that owns - * this dsa switch tree instance. - */ - struct dsa_platform_data *pd; - - /* - * Reference to network device to use, and which tagging - * protocol to use. - */ - struct net_device *master_netdev; - __be16 tag_protocol; - - /* - * The switch and port to which the CPU is attached. - */ - s8 cpu_switch; - s8 cpu_port; - - /* - * Link state polling. - */ - int link_poll_needed; - struct work_struct link_poll_work; - struct timer_list link_poll_timer; - - /* - * Data for the individual switch chips. - */ - struct dsa_switch *ds[DSA_MAX_SWITCHES]; -}; - -static inline bool dsa_is_cpu_port(struct dsa_switch *ds, int p) -{ - return !!(ds->index == ds->dst->cpu_switch && p == ds->dst->cpu_port); -} - -static inline u8 dsa_upstream_port(struct dsa_switch *ds) -{ - struct dsa_switch_tree *dst = ds->dst; - - /* - * If this is the root switch (i.e. the switch that connects - * to the CPU), return the cpu port number on this switch. - * Else return the (DSA) port number that connects to the - * switch that is one hop closer to the cpu. - */ - if (dst->cpu_switch == ds->index) - return dst->cpu_port; - else - return ds->pd->rtable[dst->cpu_switch]; -} - struct dsa_slave_priv { /* * The linux network interface corresponding to this @@ -123,44 +35,8 @@ struct phy_device *phy; }; -struct dsa_switch_driver { - struct list_head list; - - __be16 tag_protocol; - int priv_size; - - /* - * Probing and setup. - */ - char *(*probe)(struct mii_bus *bus, int sw_addr); - int (*setup)(struct dsa_switch *ds); - int (*set_addr)(struct dsa_switch *ds, u8 *addr); - - /* - * Access to the switch's PHY registers. - */ - int (*phy_read)(struct dsa_switch *ds, int port, int regnum); - int (*phy_write)(struct dsa_switch *ds, int port, - int regnum, u16 val); - - /* - * Link state polling and IRQ handling. - */ - void (*poll_link)(struct dsa_switch *ds); - - /* - * ethtool hardware statistics. - */ - void (*get_strings)(struct dsa_switch *ds, int port, uint8_t *data); - void (*get_ethtool_stats)(struct dsa_switch *ds, - int port, uint64_t *data); - int (*get_sset_count)(struct dsa_switch *ds); -}; - /* dsa.c */ extern char dsa_driver_version[]; -void register_switch_driver(struct dsa_switch_driver *type); -void unregister_switch_driver(struct dsa_switch_driver *type); /* slave.c */ void dsa_slave_mii_bus_init(struct dsa_switch *ds); @@ -170,12 +46,15 @@ /* tag_dsa.c */ netdev_tx_t dsa_xmit(struct sk_buff *skb, struct net_device *dev); +extern struct packet_type dsa_packet_type; /* tag_edsa.c */ netdev_tx_t edsa_xmit(struct sk_buff *skb, struct net_device *dev); +extern struct packet_type edsa_packet_type; /* tag_trailer.c */ netdev_tx_t trailer_xmit(struct sk_buff *skb, struct net_device *dev); +extern struct packet_type trailer_packet_type; #endif --- linux-3.2.0.orig/net/dsa/dsa.c +++ linux-3.2.0/net/dsa/dsa.c @@ -29,6 +29,7 @@ list_add_tail(&drv->list, &dsa_switch_drivers); mutex_unlock(&dsa_switch_drivers_mutex); } +EXPORT_SYMBOL_GPL(register_switch_driver); void unregister_switch_driver(struct dsa_switch_driver *drv) { @@ -36,6 +37,7 @@ list_del_init(&drv->list); mutex_unlock(&dsa_switch_drivers_mutex); } +EXPORT_SYMBOL_GPL(unregister_switch_driver); static struct dsa_switch_driver * dsa_switch_probe(struct mii_bus *bus, int sw_addr, char **_name) @@ -199,29 +201,6 @@ } -/* hooks for ethertype-less tagging formats *********************************/ -/* - * The original DSA tag format and some other tag formats have no - * ethertype, which means that we need to add a little hack to the - * networking receive path to make sure that received frames get - * the right ->protocol assigned to them when one of those tag - * formats is in use. - */ -bool dsa_uses_dsa_tags(void *dsa_ptr) -{ - struct dsa_switch_tree *dst = dsa_ptr; - - return !!(dst->tag_protocol == htons(ETH_P_DSA)); -} - -bool dsa_uses_trailer_tags(void *dsa_ptr) -{ - struct dsa_switch_tree *dst = dsa_ptr; - - return !!(dst->tag_protocol == htons(ETH_P_TRAILER)); -} - - /* link polling *************************************************************/ static void dsa_link_poll_work(struct work_struct *ugly) { @@ -419,12 +398,36 @@ static int __init dsa_init_module(void) { - return platform_driver_register(&dsa_driver); + int rc; + + rc = platform_driver_register(&dsa_driver); + if (rc) + return rc; + +#ifdef CONFIG_NET_DSA_TAG_DSA + dev_add_pack(&dsa_packet_type); +#endif +#ifdef CONFIG_NET_DSA_TAG_EDSA + dev_add_pack(&edsa_packet_type); +#endif +#ifdef CONFIG_NET_DSA_TAG_TRAILER + dev_add_pack(&trailer_packet_type); +#endif + return 0; } module_init(dsa_init_module); static void __exit dsa_cleanup_module(void) { +#ifdef CONFIG_NET_DSA_TAG_TRAILER + dev_remove_pack(&trailer_packet_type); +#endif +#ifdef CONFIG_NET_DSA_TAG_EDSA + dev_remove_pack(&edsa_packet_type); +#endif +#ifdef CONFIG_NET_DSA_TAG_DSA + dev_remove_pack(&dsa_packet_type); +#endif platform_driver_unregister(&dsa_driver); } module_exit(dsa_cleanup_module); --- linux-3.2.0.orig/net/irda/af_irda.c +++ linux-3.2.0/net/irda/af_irda.c @@ -1386,6 +1386,8 @@ IRDA_DEBUG(4, "%s()\n", __func__); + msg->msg_namelen = 0; + skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT, flags & MSG_DONTWAIT, &err); if (!skb) @@ -2584,8 +2586,10 @@ NULL, NULL, NULL); /* Check if the we got some results */ - if (!self->cachedaddr) - return -EAGAIN; /* Didn't find any devices */ + if (!self->cachedaddr) { + err = -EAGAIN; /* Didn't find any devices */ + goto out; + } daddr = self->cachedaddr; /* Cleanup */ self->cachedaddr = 0; --- linux-3.2.0.orig/net/unix/af_unix.c +++ linux-3.2.0/net/unix/af_unix.c @@ -371,7 +371,7 @@ #endif } -static int unix_release_sock(struct sock *sk, int embrion) +static void unix_release_sock(struct sock *sk, int embrion) { struct unix_sock *u = unix_sk(sk); struct dentry *dentry; @@ -444,8 +444,6 @@ if (unix_tot_inflight) unix_gc(); /* Garbage collect fds */ - - return 0; } static void init_peercred(struct sock *sk) @@ -682,9 +680,10 @@ if (!sk) return 0; + unix_release_sock(sk, 0); sock->sk = NULL; - return unix_release_sock(sk, 0); + return 0; } static int unix_autobind(struct socket *sock) @@ -847,7 +846,7 @@ atomic_set(&addr->refcnt, 1); if (sun_path[0]) { - unsigned int mode; + umode_t mode; err = 0; /* * Get the parent directory, calculate the hash for last @@ -1435,7 +1434,7 @@ if (NULL == siocb->scm) siocb->scm = &tmp_scm; wait_for_unix_gc(); - err = scm_send(sock, msg, siocb->scm); + err = scm_send(sock, msg, siocb->scm, false); if (err < 0) return err; @@ -1596,7 +1595,7 @@ if (NULL == siocb->scm) siocb->scm = &tmp_scm; wait_for_unix_gc(); - err = scm_send(sock, msg, siocb->scm); + err = scm_send(sock, msg, siocb->scm, false); if (err < 0) return err; @@ -1915,7 +1914,7 @@ struct sk_buff *skb; unix_state_lock(sk); - skb = skb_dequeue(&sk->sk_receive_queue); + skb = skb_peek(&sk->sk_receive_queue); if (skb == NULL) { unix_sk(sk)->recursion_level = 0; if (copied >= target) @@ -1955,12 +1954,9 @@ if (check_creds) { /* Never glue messages from different writers */ if ((UNIXCB(skb).pid != siocb->scm->pid) || - (UNIXCB(skb).cred != siocb->scm->cred)) { - skb_queue_head(&sk->sk_receive_queue, skb); - sk->sk_data_ready(sk, skb->len); + (UNIXCB(skb).cred != siocb->scm->cred)) break; - } - } else { + } else if (test_bit(SOCK_PASSCRED, &sock->flags)) { /* Copy credentials */ scm_set_cred(siocb->scm, UNIXCB(skb).pid, UNIXCB(skb).cred); check_creds = 1; @@ -1974,8 +1970,6 @@ chunk = min_t(unsigned int, skb->len, size); if (memcpy_toiovec(msg->msg_iov, skb->data, chunk)) { - skb_queue_head(&sk->sk_receive_queue, skb); - sk->sk_data_ready(sk, skb->len); if (copied == 0) copied = -EFAULT; break; @@ -1990,13 +1984,10 @@ if (UNIXCB(skb).fp) unix_detach_fds(siocb->scm, skb); - /* put the skb back if we didn't use it up.. */ - if (skb->len) { - skb_queue_head(&sk->sk_receive_queue, skb); - sk->sk_data_ready(sk, skb->len); + if (skb->len) break; - } + skb_unlink(skb, &sk->sk_receive_queue); consume_skb(skb); if (siocb->scm->fp) @@ -2007,9 +1998,6 @@ if (UNIXCB(skb).fp) siocb->scm->fp = scm_fp_dup(UNIXCB(skb).fp); - /* put message back and return */ - skb_queue_head(&sk->sk_receive_queue, skb); - sk->sk_data_ready(sk, skb->len); break; } } while (size); --- linux-3.2.0.orig/net/dccp/ipv6.c +++ linux-3.2.0/net/dccp/ipv6.c @@ -609,7 +609,8 @@ newinet->inet_rcv_saddr = LOOPBACK4_IPV6; if (__inet_inherit_port(sk, newsk) < 0) { - sock_put(newsk); + inet_csk_prepare_forced_close(newsk); + dccp_done(newsk); goto out; } __inet6_hash(newsk, NULL); --- linux-3.2.0.orig/net/dccp/ipv4.c +++ linux-3.2.0/net/dccp/ipv4.c @@ -434,8 +434,8 @@ NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_LISTENDROPS); return NULL; put_and_exit: - bh_unlock_sock(newsk); - sock_put(newsk); + inet_csk_prepare_forced_close(newsk); + dccp_done(newsk); goto exit; } --- linux-3.2.0.orig/net/dccp/ccid.h +++ linux-3.2.0/net/dccp/ccid.h @@ -246,7 +246,7 @@ u32 __user *optval, int __user *optlen) { int rc = -ENOPROTOOPT; - if (ccid->ccid_ops->ccid_hc_rx_getsockopt != NULL) + if (ccid != NULL && ccid->ccid_ops->ccid_hc_rx_getsockopt != NULL) rc = ccid->ccid_ops->ccid_hc_rx_getsockopt(sk, optname, len, optval, optlen); return rc; @@ -257,7 +257,7 @@ u32 __user *optval, int __user *optlen) { int rc = -ENOPROTOOPT; - if (ccid->ccid_ops->ccid_hc_tx_getsockopt != NULL) + if (ccid != NULL && ccid->ccid_ops->ccid_hc_tx_getsockopt != NULL) rc = ccid->ccid_ops->ccid_hc_tx_getsockopt(sk, optname, len, optval, optlen); return rc; --- linux-3.2.0.orig/net/dccp/ccids/ccid3.c +++ linux-3.2.0/net/dccp/ccids/ccid3.c @@ -532,6 +532,7 @@ case DCCP_SOCKOPT_CCID_TX_INFO: if (len < sizeof(tfrc)) return -EINVAL; + memset(&tfrc, 0, sizeof(tfrc)); tfrc.tfrctx_x = hc->tx_x; tfrc.tfrctx_x_recv = hc->tx_x_recv; tfrc.tfrctx_x_calc = hc->tx_x_calc; --- linux-3.2.0.orig/net/key/af_key.c +++ linux-3.2.0/net/key/af_key.c @@ -1705,6 +1705,7 @@ hdr->sadb_msg_version = PF_KEY_V2; hdr->sadb_msg_errno = (uint8_t) 0; hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t)); + hdr->sadb_msg_reserved = 0; pfkey_broadcast(skb, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net); @@ -2686,6 +2687,7 @@ hdr->sadb_msg_version = PF_KEY_V2; hdr->sadb_msg_errno = (uint8_t) 0; hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t)); + hdr->sadb_msg_reserved = 0; pfkey_broadcast(skb_out, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net); return 0; --- linux-3.2.0.orig/net/xfrm/xfrm_policy.c +++ linux-3.2.0/net/xfrm/xfrm_policy.c @@ -1761,7 +1761,7 @@ if (!afinfo) { dst_release(dst_orig); - ret = ERR_PTR(-EINVAL); + return ERR_PTR(-EINVAL); } else { ret = afinfo->blackhole_route(net, dst_orig); } @@ -1919,6 +1919,9 @@ } ok: xfrm_pols_put(pols, drop_pols); + if (dst && dst->xfrm && + dst->xfrm->props.mode == XFRM_MODE_TUNNEL) + dst->flags |= DST_XFRM_TUNNEL; return dst; nopol: --- linux-3.2.0.orig/net/xfrm/xfrm_user.c +++ linux-3.2.0/net/xfrm/xfrm_user.c @@ -123,9 +123,21 @@ struct nlattr **attrs) { struct nlattr *rt = attrs[XFRMA_REPLAY_ESN_VAL]; + struct xfrm_replay_state_esn *rs; - if ((p->flags & XFRM_STATE_ESN) && !rt) - return -EINVAL; + if (p->flags & XFRM_STATE_ESN) { + if (!rt) + return -EINVAL; + + rs = nla_data(rt); + + if (rs->bmp_len > XFRMA_REPLAY_ESN_MAX / sizeof(rs->bmp[0]) / 8) + return -EINVAL; + + if (nla_len(rt) < xfrm_replay_state_esn_len(rs) && + nla_len(rt) != sizeof(*rs)) + return -EINVAL; + } if (!rt) return 0; @@ -370,14 +382,15 @@ struct nlattr *rp) { struct xfrm_replay_state_esn *up; + int ulen; if (!replay_esn || !rp) return 0; up = nla_data(rp); + ulen = xfrm_replay_state_esn_len(up); - if (xfrm_replay_state_esn_len(replay_esn) != - xfrm_replay_state_esn_len(up)) + if (nla_len(rp) < ulen || xfrm_replay_state_esn_len(replay_esn) != ulen) return -EINVAL; return 0; @@ -388,22 +401,28 @@ struct nlattr *rta) { struct xfrm_replay_state_esn *p, *pp, *up; + int klen, ulen; if (!rta) return 0; up = nla_data(rta); + klen = xfrm_replay_state_esn_len(up); + ulen = nla_len(rta) >= klen ? klen : sizeof(*up); - p = kmemdup(up, xfrm_replay_state_esn_len(up), GFP_KERNEL); + p = kzalloc(klen, GFP_KERNEL); if (!p) return -ENOMEM; - pp = kmemdup(up, xfrm_replay_state_esn_len(up), GFP_KERNEL); + pp = kzalloc(klen, GFP_KERNEL); if (!pp) { kfree(p); return -ENOMEM; } + memcpy(p, up, ulen); + memcpy(pp, up, ulen); + *replay_esn = p; *preplay_esn = pp; @@ -442,10 +461,11 @@ * somehow made shareable and move it to xfrm_state.c - JHS * */ -static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs) +static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs, + int update_esn) { struct nlattr *rp = attrs[XFRMA_REPLAY_VAL]; - struct nlattr *re = attrs[XFRMA_REPLAY_ESN_VAL]; + struct nlattr *re = update_esn ? attrs[XFRMA_REPLAY_ESN_VAL] : NULL; struct nlattr *lt = attrs[XFRMA_LTIME_VAL]; struct nlattr *et = attrs[XFRMA_ETIMER_THRESH]; struct nlattr *rt = attrs[XFRMA_REPLAY_THRESH]; @@ -555,7 +575,7 @@ goto error; /* override default values from above */ - xfrm_update_ae_params(x, attrs); + xfrm_update_ae_params(x, attrs, 0); return x; @@ -689,6 +709,7 @@ static void copy_to_user_state(struct xfrm_state *x, struct xfrm_usersa_info *p) { + memset(p, 0, sizeof(*p)); memcpy(&p->id, &x->id, sizeof(p->id)); memcpy(&p->sel, &x->sel, sizeof(p->sel)); memcpy(&p->lft, &x->lft, sizeof(p->lft)); @@ -742,7 +763,7 @@ return -EMSGSIZE; algo = nla_data(nla); - strcpy(algo->alg_name, auth->alg_name); + strncpy(algo->alg_name, auth->alg_name, sizeof(algo->alg_name)); memcpy(algo->alg_key, auth->alg_key, (auth->alg_key_len + 7) / 8); algo->alg_key_len = auth->alg_key_len; @@ -862,6 +883,7 @@ { struct xfrm_dump_info info; struct sk_buff *skb; + int err; skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_ATOMIC); if (!skb) @@ -872,9 +894,10 @@ info.nlmsg_seq = seq; info.nlmsg_flags = 0; - if (dump_one_state(x, 0, &info)) { + err = dump_one_state(x, 0, &info); + if (err) { kfree_skb(skb); - return NULL; + return ERR_PTR(err); } return skb; @@ -1297,6 +1320,7 @@ static void copy_to_user_policy(struct xfrm_policy *xp, struct xfrm_userpolicy_info *p, int dir) { + memset(p, 0, sizeof(*p)); memcpy(&p->sel, &xp->selector, sizeof(p->sel)); memcpy(&p->lft, &xp->lft, sizeof(p->lft)); memcpy(&p->curlft, &xp->curlft, sizeof(p->curlft)); @@ -1401,6 +1425,7 @@ struct xfrm_user_tmpl *up = &vec[i]; struct xfrm_tmpl *kp = &xp->xfrm_vec[i]; + memset(up, 0, sizeof(*up)); memcpy(&up->id, &kp->id, sizeof(up->id)); up->family = kp->encap_family; memcpy(&up->saddr, &kp->saddr, sizeof(up->saddr)); @@ -1529,6 +1554,7 @@ { struct xfrm_dump_info info; struct sk_buff *skb; + int err; skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); if (!skb) @@ -1539,9 +1565,10 @@ info.nlmsg_seq = seq; info.nlmsg_flags = 0; - if (dump_one_policy(xp, dir, 0, &info) < 0) { + err = dump_one_policy(xp, dir, 0, &info); + if (err) { kfree_skb(skb); - return NULL; + return ERR_PTR(err); } return skb; @@ -1794,7 +1821,7 @@ goto out; spin_lock_bh(&x->lock); - xfrm_update_ae_params(x, attrs); + xfrm_update_ae_params(x, attrs, 1); spin_unlock_bh(&x->lock); c.event = nlh->nlmsg_type; @@ -2927,7 +2954,7 @@ if (nlsk == NULL) return -ENOMEM; net->xfrm.nlsk_stash = nlsk; /* Don't set to NULL */ - RCU_INIT_POINTER(net->xfrm.nlsk, nlsk); + rcu_assign_pointer(net->xfrm.nlsk, nlsk); return 0; } --- linux-3.2.0.orig/net/xfrm/xfrm_replay.c +++ linux-3.2.0/net/xfrm/xfrm_replay.c @@ -167,7 +167,7 @@ } if (xfrm_aevent_is_on(xs_net(x))) - xfrm_replay_notify(x, XFRM_REPLAY_UPDATE); + x->repl->notify(x, XFRM_REPLAY_UPDATE); } static int xfrm_replay_overflow_bmp(struct xfrm_state *x, struct sk_buff *skb) @@ -279,7 +279,7 @@ replay_esn->bmp[nr] |= (1U << bitnr); if (xfrm_aevent_is_on(xs_net(x))) - xfrm_replay_notify(x, XFRM_REPLAY_UPDATE); + x->repl->notify(x, XFRM_REPLAY_UPDATE); } static void xfrm_replay_notify_bmp(struct xfrm_state *x, int event) @@ -420,6 +420,18 @@ return -EINVAL; } +static int xfrm_replay_recheck_esn(struct xfrm_state *x, + struct sk_buff *skb, __be32 net_seq) +{ + if (unlikely(XFRM_SKB_CB(skb)->seq.input.hi != + htonl(xfrm_replay_seqhi(x, net_seq)))) { + x->stats.replay_window++; + return -EINVAL; + } + + return xfrm_replay_check_esn(x, skb, net_seq); +} + static void xfrm_replay_advance_esn(struct xfrm_state *x, __be32 net_seq) { unsigned int bitnr, nr, i; @@ -473,12 +485,13 @@ replay_esn->bmp[nr] |= (1U << bitnr); if (xfrm_aevent_is_on(xs_net(x))) - xfrm_replay_notify(x, XFRM_REPLAY_UPDATE); + x->repl->notify(x, XFRM_REPLAY_UPDATE); } static struct xfrm_replay xfrm_replay_legacy = { .advance = xfrm_replay_advance, .check = xfrm_replay_check, + .recheck = xfrm_replay_check, .notify = xfrm_replay_notify, .overflow = xfrm_replay_overflow, }; @@ -486,6 +499,7 @@ static struct xfrm_replay xfrm_replay_bmp = { .advance = xfrm_replay_advance_bmp, .check = xfrm_replay_check_bmp, + .recheck = xfrm_replay_check_bmp, .notify = xfrm_replay_notify_bmp, .overflow = xfrm_replay_overflow_bmp, }; @@ -493,6 +507,7 @@ static struct xfrm_replay xfrm_replay_esn = { .advance = xfrm_replay_advance_esn, .check = xfrm_replay_check_esn, + .recheck = xfrm_replay_recheck_esn, .notify = xfrm_replay_notify_bmp, .overflow = xfrm_replay_overflow_esn, }; --- linux-3.2.0.orig/net/xfrm/xfrm_input.c +++ linux-3.2.0/net/xfrm/xfrm_input.c @@ -212,7 +212,7 @@ /* only the first xfrm gets the encap type */ encap_type = 0; - if (async && x->repl->check(x, skb, seq)) { + if (async && x->repl->recheck(x, skb, seq)) { XFRM_INC_STATS(net, LINUX_MIB_XFRMINSTATESEQERROR); goto drop_unlock; } --- linux-3.2.0.orig/ipc/shm.c +++ linux-3.2.0/ipc/shm.c @@ -450,7 +450,7 @@ size_t size = params->u.size; int error; struct shmid_kernel *shp; - int numpages = (size + PAGE_SIZE -1) >> PAGE_SHIFT; + size_t numpages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; struct file * file; char name[13]; int id; @@ -870,9 +870,7 @@ case SHM_LOCK: case SHM_UNLOCK: { - struct file *uninitialized_var(shm_file); - - lru_add_drain_all(); /* drain pagevecs to lru lists */ + struct file *shm_file; shp = shm_lock_check(ns, shmid); if (IS_ERR(shp)) { @@ -895,22 +893,31 @@ err = security_shm_shmctl(shp, cmd); if (err) goto out_unlock; - - if(cmd==SHM_LOCK) { + + shm_file = shp->shm_file; + if (is_file_hugepages(shm_file)) + goto out_unlock; + + if (cmd == SHM_LOCK) { struct user_struct *user = current_user(); - if (!is_file_hugepages(shp->shm_file)) { - err = shmem_lock(shp->shm_file, 1, user); - if (!err && !(shp->shm_perm.mode & SHM_LOCKED)){ - shp->shm_perm.mode |= SHM_LOCKED; - shp->mlock_user = user; - } + err = shmem_lock(shm_file, 1, user); + if (!err && !(shp->shm_perm.mode & SHM_LOCKED)) { + shp->shm_perm.mode |= SHM_LOCKED; + shp->mlock_user = user; } - } else if (!is_file_hugepages(shp->shm_file)) { - shmem_lock(shp->shm_file, 0, shp->mlock_user); - shp->shm_perm.mode &= ~SHM_LOCKED; - shp->mlock_user = NULL; + goto out_unlock; } + + /* SHM_UNLOCK */ + if (!(shp->shm_perm.mode & SHM_LOCKED)) + goto out_unlock; + shmem_lock(shm_file, 0, shp->mlock_user); + shp->shm_perm.mode &= ~SHM_LOCKED; + shp->mlock_user = NULL; + get_file(shm_file); shm_unlock(shp); + shmem_unlock_mapping(shm_file->f_mapping); + fput(shm_file); goto out; } case IPC_RMID: --- linux-3.2.0.orig/drivers/mmc/host/omap_hsmmc.c +++ linux-3.2.0/drivers/mmc/host/omap_hsmmc.c @@ -1915,7 +1915,7 @@ host->slot_id = 0; host->mapbase = res->start; host->base = ioremap(host->mapbase, SZ_4K); - host->power_mode = MMC_POWER_OFF; + host->power_mode = -1; host->next_data.cookie = 1; platform_set_drvdata(pdev, host); @@ -2188,9 +2188,7 @@ } else { host->suspended = 0; if (host->pdata->resume) { - ret = host->pdata->resume(&pdev->dev, - host->slot_id); - if (ret) + if (host->pdata->resume(&pdev->dev, host->slot_id)) dev_dbg(mmc_dev(host->mmc), "Unmask interrupt failed\n"); } --- linux-3.2.0.orig/drivers/mmc/host/Kconfig +++ linux-3.2.0/drivers/mmc/host/Kconfig @@ -297,16 +297,6 @@ endchoice -config MMC_ATMELMCI_DMA - bool "Atmel MCI DMA support" - depends on MMC_ATMELMCI && (AVR32 || ARCH_AT91SAM9G45) && DMA_ENGINE - help - Say Y here to have the Atmel MCI driver use a DMA engine to - do data transfers and thus increase the throughput and - reduce the CPU utilization. - - If unsure, say N. - config MMC_IMX tristate "Motorola i.MX Multimedia Card Interface support" depends on ARCH_MX1 --- linux-3.2.0.orig/drivers/mmc/host/sdhci-esdhc-imx.c +++ linux-3.2.0/drivers/mmc/host/sdhci-esdhc-imx.c @@ -232,15 +232,18 @@ static u16 esdhc_readw_le(struct sdhci_host *host, int reg) { + struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); + struct pltfm_imx_data *imx_data = pltfm_host->priv; + if (unlikely(reg == SDHCI_HOST_VERSION)) { - u16 val = readw(host->ioaddr + (reg ^ 2)); - /* - * uSDHC supports SDHCI v3.0, but it's encoded as value - * 0x3 in host controller version register, which violates - * SDHCI_SPEC_300 definition. Work it around here. - */ - if ((val & SDHCI_SPEC_VER_MASK) == 3) - return --val; + reg ^= 2; + if (is_imx6q_usdhc(imx_data)) { + /* + * The usdhc register returns a wrong host version. + * Correct it here. + */ + return SDHCI_SPEC_300; + } } return readw(host->ioaddr + reg); @@ -269,8 +272,9 @@ imx_data->scratchpad = val; return; case SDHCI_COMMAND: - if ((host->cmd->opcode == MMC_STOP_TRANSMISSION) - && (imx_data->flags & ESDHC_FLAG_MULTIBLK_NO_INT)) + if ((host->cmd->opcode == MMC_STOP_TRANSMISSION || + host->cmd->opcode == MMC_SET_BLOCK_COUNT) && + (imx_data->flags & ESDHC_FLAG_MULTIBLK_NO_INT)) val |= SDHCI_CMD_ABORTCMD; if (is_imx6q_usdhc(imx_data)) { @@ -466,8 +470,7 @@ clk_enable(clk); pltfm_host->clk = clk; - if (!is_imx25_esdhc(imx_data)) - host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL; + host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL; if (is_imx25_esdhc(imx_data) || is_imx35_esdhc(imx_data)) /* Fix errata ENGcm07207 present on i.MX25 and i.MX35 */ --- linux-3.2.0.orig/drivers/mmc/host/sdhci-pci.c +++ linux-3.2.0/drivers/mmc/host/sdhci-pci.c @@ -148,6 +148,7 @@ static const struct sdhci_pci_fixes sdhci_cafe = { .quirks = SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER | SDHCI_QUIRK_NO_BUSY_IRQ | + SDHCI_QUIRK_BROKEN_CARD_DETECTION | SDHCI_QUIRK_BROKEN_TIMEOUT_VAL, }; --- linux-3.2.0.orig/drivers/mmc/host/atmel-mci.c +++ linux-3.2.0/drivers/mmc/host/atmel-mci.c @@ -163,6 +163,7 @@ void __iomem *regs; struct scatterlist *sg; + unsigned int sg_len; unsigned int pio_offset; struct atmel_mci_slot *cur_slot; @@ -480,7 +481,14 @@ static inline unsigned int atmci_ns_to_clocks(struct atmel_mci *host, unsigned int ns) { - return (ns * (host->bus_hz / 1000000) + 999) / 1000; + /* + * It is easier here to use us instead of ns for the timeout, + * it prevents from overflows during calculation. + */ + unsigned int us = DIV_ROUND_UP(ns, 1000); + + /* Maximum clock frequency is host->bus_hz/2 */ + return us * (DIV_ROUND_UP(host->bus_hz, 2000000)); } static void atmci_set_timeout(struct atmel_mci *host, @@ -744,6 +752,7 @@ data->error = -EINPROGRESS; host->sg = data->sg; + host->sg_len = data->sg_len; host->data = data; host->data_chan = NULL; @@ -965,11 +974,14 @@ host->data_status = 0; if (host->need_reset) { + iflags = atmci_readl(host, ATMCI_IMR); + iflags &= (ATMCI_SDIOIRQA | ATMCI_SDIOIRQB); atmci_writel(host, ATMCI_CR, ATMCI_CR_SWRST); atmci_writel(host, ATMCI_CR, ATMCI_CR_MCIEN); atmci_writel(host, ATMCI_MR, host->mode_reg); if (host->caps.has_cfg_reg) atmci_writel(host, ATMCI_CFG, host->cfg_reg); + atmci_writel(host, ATMCI_IER, iflags); host->need_reset = false; } atmci_writel(host, ATMCI_SDCR, slot->sdc_reg); @@ -1563,7 +1575,8 @@ if (offset == sg->length) { flush_dcache_page(sg_page(sg)); host->sg = sg = sg_next(sg); - if (!sg) + host->sg_len--; + if (!sg || !host->sg_len) goto done; offset = 0; @@ -1576,7 +1589,8 @@ flush_dcache_page(sg_page(sg)); host->sg = sg = sg_next(sg); - if (!sg) + host->sg_len--; + if (!sg || !host->sg_len) goto done; offset = 4 - remaining; @@ -1630,7 +1644,8 @@ nbytes += 4; if (offset == sg->length) { host->sg = sg = sg_next(sg); - if (!sg) + host->sg_len--; + if (!sg || !host->sg_len) goto done; offset = 0; @@ -1644,7 +1659,8 @@ nbytes += remaining; host->sg = sg = sg_next(sg); - if (!sg) { + host->sg_len--; + if (!sg || !host->sg_len) { atmci_writel(host, ATMCI_TDR, value); goto done; } @@ -1941,12 +1957,12 @@ } } -static void atmci_configure_dma(struct atmel_mci *host) +static bool atmci_configure_dma(struct atmel_mci *host) { struct mci_platform_data *pdata; if (host == NULL) - return; + return false; pdata = host->pdev->dev.platform_data; @@ -1963,12 +1979,15 @@ host->dma.chan = dma_request_channel(mask, atmci_filter, pdata->dma_slave); } - if (!host->dma.chan) - dev_notice(&host->pdev->dev, "DMA not available, using PIO\n"); - else + if (!host->dma.chan) { + dev_warn(&host->pdev->dev, "no DMA channel available\n"); + return false; + } else { dev_info(&host->pdev->dev, "Using %s for DMA transfers\n", dma_chan_name(host->dma.chan)); + return true; + } } static inline unsigned int atmci_get_version(struct atmel_mci *host) @@ -2078,8 +2097,7 @@ /* Get MCI capabilities and set operations according to it */ atmci_get_cap(host); - if (host->caps.has_dma) { - dev_info(&pdev->dev, "using DMA\n"); + if (host->caps.has_dma && atmci_configure_dma(host)) { host->prepare_data = &atmci_prepare_data_dma; host->submit_data = &atmci_submit_data_dma; host->stop_transfer = &atmci_stop_transfer_dma; @@ -2089,15 +2107,12 @@ host->submit_data = &atmci_submit_data_pdc; host->stop_transfer = &atmci_stop_transfer_pdc; } else { - dev_info(&pdev->dev, "no DMA, no PDC\n"); + dev_info(&pdev->dev, "using PIO\n"); host->prepare_data = &atmci_prepare_data; host->submit_data = &atmci_submit_data; host->stop_transfer = &atmci_stop_transfer; } - if (host->caps.has_dma) - atmci_configure_dma(host); - platform_set_drvdata(pdev, host); /* We need at least one slot to succeed */ @@ -2158,10 +2173,8 @@ atmci_readl(host, ATMCI_SR); clk_disable(host->mck); -#ifdef CONFIG_MMC_ATMELMCI_DMA if (host->dma.chan) dma_release_channel(host->dma.chan); -#endif free_irq(platform_get_irq(pdev, 0), host); iounmap(host->regs); --- linux-3.2.0.orig/drivers/mmc/host/mxs-mmc.c +++ linux-3.2.0/drivers/mmc/host/mxs-mmc.c @@ -279,11 +279,11 @@ writel(stat & MXS_MMC_IRQ_BITS, host->base + HW_SSP_CTRL1 + MXS_CLR_ADDR); + spin_unlock(&host->lock); + if ((stat & BM_SSP_CTRL1_SDIO_IRQ) && (stat & BM_SSP_CTRL1_SDIO_IRQ_EN)) mmc_signal_sdio_irq(host->mmc); - spin_unlock(&host->lock); - if (stat & BM_SSP_CTRL1_RESP_TIMEOUT_IRQ) cmd->error = -ETIMEDOUT; else if (stat & BM_SSP_CTRL1_RESP_ERR_IRQ) @@ -628,10 +628,6 @@ host->base + HW_SSP_CTRL0 + MXS_SET_ADDR); writel(BM_SSP_CTRL1_SDIO_IRQ_EN, host->base + HW_SSP_CTRL1 + MXS_SET_ADDR); - - if (readl(host->base + HW_SSP_STATUS) & BM_SSP_STATUS_SDIO_IRQ) - mmc_signal_sdio_irq(host->mmc); - } else { writel(BM_SSP_CTRL0_SDIO_IRQ_CHECK, host->base + HW_SSP_CTRL0 + MXS_CLR_ADDR); @@ -640,6 +636,10 @@ } spin_unlock_irqrestore(&host->lock, flags); + + if (enable && readl(host->base + HW_SSP_STATUS) & BM_SSP_STATUS_SDIO_IRQ) + mmc_signal_sdio_irq(host->mmc); + } static const struct mmc_host_ops mxs_mmc_ops = { --- linux-3.2.0.orig/drivers/mmc/host/sdhci-s3c.c +++ linux-3.2.0/drivers/mmc/host/sdhci-s3c.c @@ -601,7 +601,7 @@ sdhci_remove_host(host, 1); - for (ptr = 0; ptr < 3; ptr++) { + for (ptr = 0; ptr < MAX_BUS_CLK; ptr++) { if (sc->clk_bus[ptr]) { clk_disable(sc->clk_bus[ptr]); clk_put(sc->clk_bus[ptr]); --- linux-3.2.0.orig/drivers/mmc/host/sdhci-dove.c +++ linux-3.2.0/drivers/mmc/host/sdhci-dove.c @@ -20,6 +20,7 @@ */ #include +#include #include #include "sdhci-pltfm.h" --- linux-3.2.0.orig/drivers/mmc/host/sdhci.c +++ linux-3.2.0/drivers/mmc/host/sdhci.c @@ -1364,8 +1364,7 @@ if ((ios->timing == MMC_TIMING_UHS_SDR50) || (ios->timing == MMC_TIMING_UHS_SDR104) || (ios->timing == MMC_TIMING_UHS_DDR50) || - (ios->timing == MMC_TIMING_UHS_SDR25) || - (ios->timing == MMC_TIMING_UHS_SDR12)) + (ios->timing == MMC_TIMING_UHS_SDR25)) ctrl |= SDHCI_CTRL_HISPD; ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); @@ -2336,9 +2335,8 @@ /* Disable tuning since we are suspending */ if (host->version >= SDHCI_SPEC_300 && host->tuning_count && host->tuning_mode == SDHCI_TUNING_MODE_1) { + del_timer_sync(&host->tuning_timer); host->flags &= ~SDHCI_NEEDS_RETUNING; - mod_timer(&host->tuning_timer, jiffies + - host->tuning_count * HZ); } ret = mmc_suspend_host(host->mmc); @@ -2714,8 +2712,9 @@ mmc_card_is_removable(mmc)) mmc->caps |= MMC_CAP_NEEDS_POLL; - /* UHS-I mode(s) supported by the host controller. */ - if (host->version >= SDHCI_SPEC_300) + /* Any UHS-I mode in caps implies SDR12 and SDR25 support. */ + if (caps[1] & (SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_SDR50 | + SDHCI_SUPPORT_DDR50)) mmc->caps |= MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25; /* SDR104 supports also implies SDR50 support */ --- linux-3.2.0.orig/drivers/mmc/host/dw_mmc.c +++ linux-3.2.0/drivers/mmc/host/dw_mmc.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include #include @@ -502,8 +501,14 @@ host->dir_status = DW_MCI_SEND_STATUS; if (dw_mci_submit_data_dma(host, data)) { + int flags = SG_MITER_ATOMIC; + if (host->data->flags & MMC_DATA_READ) + flags |= SG_MITER_TO_SG; + else + flags |= SG_MITER_FROM_SG; + + sg_miter_start(&host->sg_miter, data->sg, data->sg_len, flags); host->sg = data->sg; - host->pio_offset = 0; host->part_buf_start = 0; host->part_buf_count = 0; @@ -953,6 +958,7 @@ * generates a block interrupt, hence setting * the scatter-gather pointer to NULL. */ + sg_miter_stop(&host->sg_miter); host->sg = NULL; ctrl = mci_readl(host, CTRL); ctrl |= SDMMC_CTRL_FIFO_RESET; @@ -1286,54 +1292,44 @@ static void dw_mci_read_data_pio(struct dw_mci *host) { - struct scatterlist *sg = host->sg; - void *buf = sg_virt(sg); - unsigned int offset = host->pio_offset; + struct sg_mapping_iter *sg_miter = &host->sg_miter; + void *buf; + unsigned int offset; struct mmc_data *data = host->data; int shift = host->data_shift; u32 status; unsigned int nbytes = 0, len; + unsigned int remain, fcnt; do { - len = host->part_buf_count + - (SDMMC_GET_FCNT(mci_readl(host, STATUS)) << shift); - if (offset + len <= sg->length) { - dw_mci_pull_data(host, (void *)(buf + offset), len); + if (!sg_miter_next(sg_miter)) + goto done; + host->sg = sg_miter->__sg; + buf = sg_miter->addr; + remain = sg_miter->length; + offset = 0; + + do { + fcnt = (SDMMC_GET_FCNT(mci_readl(host, STATUS)) + << shift) + host->part_buf_count; + len = min(remain, fcnt); + if (!len) + break; + dw_mci_pull_data(host, (void *)(buf + offset), len); offset += len; nbytes += len; - - if (offset == sg->length) { - flush_dcache_page(sg_page(sg)); - host->sg = sg = sg_next(sg); - if (!sg) - goto done; - - offset = 0; - buf = sg_virt(sg); - } - } else { - unsigned int remaining = sg->length - offset; - dw_mci_pull_data(host, (void *)(buf + offset), - remaining); - nbytes += remaining; - - flush_dcache_page(sg_page(sg)); - host->sg = sg = sg_next(sg); - if (!sg) - goto done; - - offset = len - remaining; - buf = sg_virt(sg); - dw_mci_pull_data(host, buf, offset); - nbytes += offset; - } + remain -= len; + } while (remain); + sg_miter->consumed = offset; status = mci_readl(host, MINTSTS); mci_writel(host, RINTSTS, SDMMC_INT_RXDR); if (status & DW_MCI_DATA_ERROR_FLAGS) { host->data_status = status; data->bytes_xfered += nbytes; + sg_miter_stop(sg_miter); + host->sg = NULL; smp_wmb(); set_bit(EVENT_DATA_ERROR, &host->pending_events); @@ -1342,65 +1338,66 @@ return; } } while (status & SDMMC_INT_RXDR); /*if the RXDR is ready read again*/ - host->pio_offset = offset; data->bytes_xfered += nbytes; + + if (!remain) { + if (!sg_miter_next(sg_miter)) + goto done; + sg_miter->consumed = 0; + } + sg_miter_stop(sg_miter); return; done: data->bytes_xfered += nbytes; + sg_miter_stop(sg_miter); + host->sg = NULL; smp_wmb(); set_bit(EVENT_XFER_COMPLETE, &host->pending_events); } static void dw_mci_write_data_pio(struct dw_mci *host) { - struct scatterlist *sg = host->sg; - void *buf = sg_virt(sg); - unsigned int offset = host->pio_offset; + struct sg_mapping_iter *sg_miter = &host->sg_miter; + void *buf; + unsigned int offset; struct mmc_data *data = host->data; int shift = host->data_shift; u32 status; unsigned int nbytes = 0, len; + unsigned int fifo_depth = host->fifo_depth; + unsigned int remain, fcnt; do { - len = ((host->fifo_depth - - SDMMC_GET_FCNT(mci_readl(host, STATUS))) << shift) - - host->part_buf_count; - if (offset + len <= sg->length) { - host->push_data(host, (void *)(buf + offset), len); + if (!sg_miter_next(sg_miter)) + goto done; + host->sg = sg_miter->__sg; + buf = sg_miter->addr; + remain = sg_miter->length; + offset = 0; + + do { + fcnt = ((fifo_depth - + SDMMC_GET_FCNT(mci_readl(host, STATUS))) + << shift) - host->part_buf_count; + len = min(remain, fcnt); + if (!len) + break; + host->push_data(host, (void *)(buf + offset), len); offset += len; nbytes += len; - if (offset == sg->length) { - host->sg = sg = sg_next(sg); - if (!sg) - goto done; - - offset = 0; - buf = sg_virt(sg); - } - } else { - unsigned int remaining = sg->length - offset; - - host->push_data(host, (void *)(buf + offset), - remaining); - nbytes += remaining; - - host->sg = sg = sg_next(sg); - if (!sg) - goto done; - - offset = len - remaining; - buf = sg_virt(sg); - host->push_data(host, (void *)buf, offset); - nbytes += offset; - } + remain -= len; + } while (remain); + sg_miter->consumed = offset; status = mci_readl(host, MINTSTS); mci_writel(host, RINTSTS, SDMMC_INT_TXDR); if (status & DW_MCI_DATA_ERROR_FLAGS) { host->data_status = status; data->bytes_xfered += nbytes; + sg_miter_stop(sg_miter); + host->sg = NULL; smp_wmb(); @@ -1410,12 +1407,20 @@ return; } } while (status & SDMMC_INT_TXDR); /* if TXDR write again */ - host->pio_offset = offset; data->bytes_xfered += nbytes; + + if (!remain) { + if (!sg_miter_next(sg_miter)) + goto done; + sg_miter->consumed = 0; + } + sg_miter_stop(sg_miter); return; done: data->bytes_xfered += nbytes; + sg_miter_stop(sg_miter); + host->sg = NULL; smp_wmb(); set_bit(EVENT_XFER_COMPLETE, &host->pending_events); } @@ -1618,6 +1623,7 @@ * block interrupt, hence setting the * scatter-gather pointer to NULL. */ + sg_miter_stop(&host->sg_miter); host->sg = NULL; ctrl = mci_readl(host, CTRL); --- linux-3.2.0.orig/drivers/mmc/host/sdhci-esdhc.h +++ linux-3.2.0/drivers/mmc/host/sdhci-esdhc.h @@ -48,14 +48,14 @@ int div = 1; u32 temp; + if (clock == 0) + goto out; + temp = sdhci_readl(host, ESDHC_SYSTEM_CONTROL); temp &= ~(ESDHC_CLOCK_IPGEN | ESDHC_CLOCK_HCKEN | ESDHC_CLOCK_PEREN | ESDHC_CLOCK_MASK); sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL); - if (clock == 0) - goto out; - while (host->max_clk / pre_div / 16 > clock && pre_div < 256) pre_div *= 2; --- linux-3.2.0.orig/drivers/mmc/card/block.c +++ linux-3.2.0/drivers/mmc/card/block.c @@ -266,6 +266,9 @@ goto idata_err; } + if (!idata->buf_bytes) + return idata; + idata->buf = kzalloc(idata->buf_bytes, GFP_KERNEL); if (!idata->buf) { err = -ENOMEM; @@ -312,25 +315,6 @@ if (IS_ERR(idata)) return PTR_ERR(idata); - cmd.opcode = idata->ic.opcode; - cmd.arg = idata->ic.arg; - cmd.flags = idata->ic.flags; - - data.sg = &sg; - data.sg_len = 1; - data.blksz = idata->ic.blksz; - data.blocks = idata->ic.blocks; - - sg_init_one(data.sg, idata->buf, idata->buf_bytes); - - if (idata->ic.write_flag) - data.flags = MMC_DATA_WRITE; - else - data.flags = MMC_DATA_READ; - - mrq.cmd = &cmd; - mrq.data = &data; - md = mmc_blk_get(bdev->bd_disk); if (!md) { err = -EINVAL; @@ -343,6 +327,48 @@ goto cmd_done; } + cmd.opcode = idata->ic.opcode; + cmd.arg = idata->ic.arg; + cmd.flags = idata->ic.flags; + + if (idata->buf_bytes) { + data.sg = &sg; + data.sg_len = 1; + data.blksz = idata->ic.blksz; + data.blocks = idata->ic.blocks; + + sg_init_one(data.sg, idata->buf, idata->buf_bytes); + + if (idata->ic.write_flag) + data.flags = MMC_DATA_WRITE; + else + data.flags = MMC_DATA_READ; + + /* data.flags must already be set before doing this. */ + mmc_set_data_timeout(&data, card); + + /* Allow overriding the timeout_ns for empirical tuning. */ + if (idata->ic.data_timeout_ns) + data.timeout_ns = idata->ic.data_timeout_ns; + + if ((cmd.flags & MMC_RSP_R1B) == MMC_RSP_R1B) { + /* + * Pretend this is a data transfer and rely on the + * host driver to compute timeout. When all host + * drivers support cmd.cmd_timeout for R1B, this + * can be changed to: + * + * mrq.data = NULL; + * cmd.cmd_timeout = idata->ic.cmd_timeout_ms; + */ + data.timeout_ns = idata->ic.cmd_timeout_ms * 1000000; + } + + mrq.data = &data; + } + + mrq.cmd = &cmd; + mmc_claim_host(card->host); if (idata->ic.is_acmd) { @@ -351,24 +377,6 @@ goto cmd_rel_host; } - /* data.flags must already be set before doing this. */ - mmc_set_data_timeout(&data, card); - /* Allow overriding the timeout_ns for empirical tuning. */ - if (idata->ic.data_timeout_ns) - data.timeout_ns = idata->ic.data_timeout_ns; - - if ((cmd.flags & MMC_RSP_R1B) == MMC_RSP_R1B) { - /* - * Pretend this is a data transfer and rely on the host driver - * to compute timeout. When all host drivers support - * cmd.cmd_timeout for R1B, this can be changed to: - * - * mrq.data = NULL; - * cmd.cmd_timeout = idata->ic.cmd_timeout_ms; - */ - data.timeout_ns = idata->ic.cmd_timeout_ms * 1000000; - } - mmc_wait_for_req(card->host, &mrq); if (cmd.error) { @@ -791,7 +799,7 @@ { struct mmc_blk_data *md = mq->data; struct mmc_card *card = md->queue.card; - unsigned int from, nr, arg; + unsigned int from, nr, arg, trim_arg, erase_arg; int err = 0, type = MMC_BLK_SECDISCARD; if (!(mmc_can_secure_erase_trim(card) || mmc_can_sanitize(card))) { @@ -799,20 +807,26 @@ goto out; } + from = blk_rq_pos(req); + nr = blk_rq_sectors(req); + /* The sanitize operation is supported at v4.5 only */ if (mmc_can_sanitize(card)) { - err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, - EXT_CSD_SANITIZE_START, 1, 0); - goto out; + erase_arg = MMC_ERASE_ARG; + trim_arg = MMC_TRIM_ARG; + } else { + erase_arg = MMC_SECURE_ERASE_ARG; + trim_arg = MMC_SECURE_TRIM1_ARG; } - from = blk_rq_pos(req); - nr = blk_rq_sectors(req); - - if (mmc_can_trim(card) && !mmc_erase_group_aligned(card, from, nr)) - arg = MMC_SECURE_TRIM1_ARG; - else - arg = MMC_SECURE_ERASE_ARG; + if (mmc_erase_group_aligned(card, from, nr)) + arg = erase_arg; + else if (mmc_can_trim(card)) + arg = trim_arg; + else { + err = -EINVAL; + goto out; + } retry: if (card->quirks & MMC_QUIRK_INAND_CMD38) { err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, @@ -822,25 +836,41 @@ INAND_CMD38_ARG_SECERASE, 0); if (err) - goto out; + goto out_retry; } + err = mmc_erase(card, from, nr, arg); - if (!err && arg == MMC_SECURE_TRIM1_ARG) { + if (err == -EIO) + goto out_retry; + if (err) + goto out; + + if (arg == MMC_SECURE_TRIM1_ARG) { if (card->quirks & MMC_QUIRK_INAND_CMD38) { err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, INAND_CMD38_ARG_EXT_CSD, INAND_CMD38_ARG_SECTRIM2, 0); if (err) - goto out; + goto out_retry; } + err = mmc_erase(card, from, nr, MMC_SECURE_TRIM2_ARG); + if (err == -EIO) + goto out_retry; + if (err) + goto out; } -out: - if (err == -EIO && !mmc_blk_reset(md, card->host, type)) + + if (mmc_can_sanitize(card)) + err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, + EXT_CSD_SANITIZE_START, 1, 0); +out_retry: + if (err && !mmc_blk_reset(md, card->host, type)) goto retry; if (!err) mmc_blk_reset_success(md, type); +out: spin_lock_irq(&md->lock); __blk_end_request(req, err, blk_rq_bytes(req)); spin_unlock_irq(&md->lock); @@ -1309,7 +1339,8 @@ /* complete ongoing async transfer before issuing discard */ if (card->host->areq) mmc_blk_issue_rw_rq(mq, NULL); - if (req->cmd_flags & REQ_SECURE) + if (req->cmd_flags & REQ_SECURE && + !(card->quirks & MMC_QUIRK_SEC_ERASE_TRIM_BROKEN)) ret = mmc_blk_issue_secdiscard_rq(mq, req); else ret = mmc_blk_issue_discard_rq(mq, req); @@ -1584,6 +1615,8 @@ return ret; } +#define CID_MANFID_SAMSUNG 0x15 + static const struct mmc_fixup blk_fixups[] = { MMC_FIXUP("SEM02G", 0x2, 0x100, add_quirk, MMC_QUIRK_INAND_CMD38), @@ -1614,6 +1647,28 @@ MMC_FIXUP(CID_NAME_ANY, 0x13, 0x200, add_quirk_mmc, MMC_QUIRK_LONG_READ_TIME), + /* + * On these Samsung MoviNAND parts, performing secure erase or + * secure trim can result in unrecoverable corruption due to a + * firmware bug. + */ + MMC_FIXUP("M8G2FA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc, + MMC_QUIRK_SEC_ERASE_TRIM_BROKEN), + MMC_FIXUP("MAG4FA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc, + MMC_QUIRK_SEC_ERASE_TRIM_BROKEN), + MMC_FIXUP("MBG8FA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc, + MMC_QUIRK_SEC_ERASE_TRIM_BROKEN), + MMC_FIXUP("MCGAFA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc, + MMC_QUIRK_SEC_ERASE_TRIM_BROKEN), + MMC_FIXUP("VAL00M", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc, + MMC_QUIRK_SEC_ERASE_TRIM_BROKEN), + MMC_FIXUP("VYL00M", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc, + MMC_QUIRK_SEC_ERASE_TRIM_BROKEN), + MMC_FIXUP("KYL00M", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc, + MMC_QUIRK_SEC_ERASE_TRIM_BROKEN), + MMC_FIXUP("VZL00M", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc, + MMC_QUIRK_SEC_ERASE_TRIM_BROKEN), + END_FIXUP }; --- linux-3.2.0.orig/drivers/mmc/card/queue.c +++ linux-3.2.0/drivers/mmc/card/queue.c @@ -134,7 +134,7 @@ queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q); q->limits.max_discard_sectors = max_discard; - if (card->erased_byte == 0) + if (card->erased_byte == 0 && !mmc_can_discard(card)) q->limits.discard_zeroes_data = 1; q->limits.discard_granularity = card->pref_erase << 9; /* granularity must not be greater than max. discard */ --- linux-3.2.0.orig/drivers/mmc/core/host.c +++ linux-3.2.0/drivers/mmc/core/host.c @@ -386,3 +386,4 @@ } EXPORT_SYMBOL(mmc_free_host); + --- linux-3.2.0.orig/drivers/mmc/core/core.c +++ linux-3.2.0/drivers/mmc/core/core.c @@ -1516,7 +1516,10 @@ { unsigned int erase_timeout; - if (card->ext_csd.erase_group_def & 1) { + if (arg == MMC_DISCARD_ARG || + (arg == MMC_TRIM_ARG && card->ext_csd.rev >= 6)) { + erase_timeout = card->ext_csd.trim_timeout; + } else if (card->ext_csd.erase_group_def & 1) { /* High Capacity Erase Group Size uses HC timeouts */ if (arg == MMC_TRIM_ARG) erase_timeout = card->ext_csd.trim_timeout; @@ -1788,8 +1791,6 @@ { if (card->ext_csd.sec_feature_support & EXT_CSD_SEC_GB_CL_EN) return 1; - if (mmc_can_discard(card)) - return 1; return 0; } EXPORT_SYMBOL(mmc_can_trim); @@ -1808,6 +1809,8 @@ int mmc_can_sanitize(struct mmc_card *card) { + if (!mmc_can_trim(card) && !mmc_can_erase(card)) + return 0; if (card->ext_csd.sec_feature_support & EXT_CSD_SEC_SANITIZE) return 1; return 0; --- linux-3.2.0.orig/drivers/mmc/core/mmc.c +++ linux-3.2.0/drivers/mmc/core/mmc.c @@ -363,13 +363,13 @@ ext_csd[EXT_CSD_SEC_FEATURE_SUPPORT]; card->ext_csd.raw_trim_mult = ext_csd[EXT_CSD_TRIM_MULT]; + card->ext_csd.raw_partition_support = ext_csd[EXT_CSD_PARTITION_SUPPORT]; if (card->ext_csd.rev >= 4) { /* * Enhanced area feature support -- check whether the eMMC * card has the Enhanced area enabled. If so, export enhanced * area offset and size to user by adding sysfs interface. */ - card->ext_csd.raw_partition_support = ext_csd[EXT_CSD_PARTITION_SUPPORT]; if ((ext_csd[EXT_CSD_PARTITION_SUPPORT] & 0x2) && (ext_csd[EXT_CSD_PARTITION_ATTRIBUTE] & 0x1)) { hc_erase_grp_sz = @@ -1048,7 +1048,7 @@ * * WARNING: eMMC rules are NOT the same as SD DDR */ - if (ddr == EXT_CSD_CARD_TYPE_DDR_1_2V) { + if (ddr == MMC_1_2V_DDR_MODE) { err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_120, 0); if (err) --- linux-3.2.0.orig/drivers/mmc/core/sdio.c +++ linux-3.2.0/drivers/mmc/core/sdio.c @@ -663,7 +663,7 @@ } if (!err && host->sdio_irqs) - mmc_signal_sdio_irq(host); + wake_up_process(host->sdio_irq_thread); mmc_release_host(host); /* --- linux-3.2.0.orig/drivers/mmc/core/sdio_irq.c +++ linux-3.2.0/drivers/mmc/core/sdio_irq.c @@ -28,18 +28,20 @@ #include "sdio_ops.h" -static int process_sdio_pending_irqs(struct mmc_card *card) +static int process_sdio_pending_irqs(struct mmc_host *host) { + struct mmc_card *card = host->card; int i, ret, count; unsigned char pending; struct sdio_func *func; /* * Optimization, if there is only 1 function interrupt registered - * call irq handler directly + * and we know an IRQ was signaled then call irq handler directly. + * Otherwise do the full probe. */ func = card->sdio_single_irq; - if (func) { + if (func && host->sdio_irq_pending) { func->irq_handler(func); return 1; } @@ -116,7 +118,8 @@ ret = __mmc_claim_host(host, &host->sdio_irq_thread_abort); if (ret) break; - ret = process_sdio_pending_irqs(host->card); + ret = process_sdio_pending_irqs(host); + host->sdio_irq_pending = false; mmc_release_host(host); /* --- linux-3.2.0.orig/drivers/usb/host/ohci-at91.c +++ linux-3.2.0/drivers/usb/host/ohci-at91.c @@ -199,7 +199,7 @@ /*-------------------------------------------------------------------------*/ static int __devinit -ohci_at91_start (struct usb_hcd *hcd) +ohci_at91_reset (struct usb_hcd *hcd) { struct at91_usbh_data *board = hcd->self.controller->platform_data; struct ohci_hcd *ohci = hcd_to_ohci (hcd); @@ -209,6 +209,14 @@ return ret; ohci->num_ports = board->ports; + return 0; +} + +static int __devinit +ohci_at91_start (struct usb_hcd *hcd) +{ + struct ohci_hcd *ohci = hcd_to_ohci (hcd); + int ret; if ((ret = ohci_run(ohci)) < 0) { err("can't start %s", hcd->self.bus_name); @@ -390,6 +398,7 @@ /* * basic lifecycle operations */ + .reset = ohci_at91_reset, .start = ohci_at91_start, .stop = ohci_stop, .shutdown = ohci_shutdown, --- linux-3.2.0.orig/drivers/usb/host/uhci-hcd.c +++ linux-3.2.0/drivers/usb/host/uhci-hcd.c @@ -448,6 +448,10 @@ return IRQ_NONE; uhci_writew(uhci, status, USBSTS); /* Clear it */ + spin_lock(&uhci->lock); + if (unlikely(!uhci->is_initialized)) /* not yet configured */ + goto done; + if (status & ~(USBSTS_USBINT | USBSTS_ERROR | USBSTS_RD)) { if (status & USBSTS_HSE) dev_err(uhci_dev(uhci), "host system error, " @@ -456,7 +460,6 @@ dev_err(uhci_dev(uhci), "host controller process " "error, something bad happened!\n"); if (status & USBSTS_HCH) { - spin_lock(&uhci->lock); if (uhci->rh_state >= UHCI_RH_RUNNING) { dev_err(uhci_dev(uhci), "host controller halted, " @@ -474,15 +477,15 @@ * pending unlinks */ mod_timer(&hcd->rh_timer, jiffies); } - spin_unlock(&uhci->lock); } } - if (status & USBSTS_RD) + if (status & USBSTS_RD) { + spin_unlock(&uhci->lock); usb_hcd_poll_rh_status(hcd); - else { - spin_lock(&uhci->lock); + } else { uhci_scan_schedule(uhci); + done: spin_unlock(&uhci->lock); } @@ -660,9 +663,9 @@ */ mb(); + spin_lock_irq(&uhci->lock); configure_hc(uhci); uhci->is_initialized = 1; - spin_lock_irq(&uhci->lock); start_rh(uhci); spin_unlock_irq(&uhci->lock); return 0; --- linux-3.2.0.orig/drivers/usb/host/ehci-hcd.c +++ linux-3.2.0/drivers/usb/host/ehci-hcd.c @@ -620,6 +620,9 @@ hw = ehci->async->hw; hw->hw_next = QH_NEXT(ehci, ehci->async->qh_dma); hw->hw_info1 = cpu_to_hc32(ehci, QH_HEAD); +#if defined(CONFIG_PPC_PS3) + hw->hw_info1 |= cpu_to_hc32(ehci, (1 << 7)); /* I = 1 */ +#endif hw->hw_token = cpu_to_hc32(ehci, QTD_STS_HALT); hw->hw_qtd_next = EHCI_LIST_END(ehci); ehci->async->qh_state = QH_STATE_LINKED; @@ -815,8 +818,13 @@ goto dead; } + /* + * We don't use STS_FLR, but some controllers don't like it to + * remain on, so mask it out along with the other status bits. + */ + masked_status = status & (INTR_MASK | STS_FLR); + /* Shared IRQ? */ - masked_status = status & INTR_MASK; if (!masked_status || unlikely(ehci->rh_state == EHCI_RH_HALTED)) { spin_unlock(&ehci->lock); return IRQ_NONE; @@ -867,7 +875,7 @@ pcd_status = status; /* resume root hub? */ - if (!(cmd & CMD_RUN)) + if (ehci->rh_state == EHCI_RH_SUSPENDED) usb_hcd_resume_root_hub(hcd); /* get per-port change detect bits */ --- linux-3.2.0.orig/drivers/usb/host/ehci-omap.c +++ linux-3.2.0/drivers/usb/host/ehci-omap.c @@ -337,7 +337,7 @@ .clear_tt_buffer_complete = ehci_clear_tt_buffer_complete, }; -MODULE_ALIAS("platform:omap-ehci"); +MODULE_ALIAS("platform:ehci-omap"); MODULE_AUTHOR("Texas Instruments, Inc."); MODULE_AUTHOR("Felipe Balbi "); --- linux-3.2.0.orig/drivers/usb/host/fsl-mph-dr-of.c +++ linux-3.2.0/drivers/usb/host/fsl-mph-dr-of.c @@ -94,7 +94,6 @@ pdev->dev.parent = &ofdev->dev; pdev->dev.coherent_dma_mask = ofdev->dev.coherent_dma_mask; - pdev->dev.dma_mask = &pdev->archdata.dma_mask; *pdev->dev.dma_mask = *ofdev->dev.dma_mask; retval = platform_device_add_data(pdev, pdata, sizeof(*pdata)); --- linux-3.2.0.orig/drivers/usb/host/xhci-hub.c +++ linux-3.2.0/drivers/usb/host/xhci-hub.c @@ -95,7 +95,7 @@ */ memset(port_removable, 0, sizeof(port_removable)); for (i = 0; i < ports; i++) { - portsc = xhci_readl(xhci, xhci->usb3_ports[i]); + portsc = xhci_readl(xhci, xhci->usb2_ports[i]); /* If a device is removable, PORTSC reports a 0, same as in the * hub descriptor DeviceRemovable bits. */ @@ -438,6 +438,79 @@ } } +/* Updates Link Status for super Speed port */ +static void xhci_hub_report_link_state(u32 *status, u32 status_reg) +{ + u32 pls = status_reg & PORT_PLS_MASK; + + /* resume state is a xHCI internal state. + * Do not report it to usb core. + */ + if (pls == XDEV_RESUME) + return; + + /* When the CAS bit is set then warm reset + * should be performed on port + */ + if (status_reg & PORT_CAS) { + /* The CAS bit can be set while the port is + * in any link state. + * Only roothubs have CAS bit, so we + * pretend to be in compliance mode + * unless we're already in compliance + * or the inactive state. + */ + if (pls != USB_SS_PORT_LS_COMP_MOD && + pls != USB_SS_PORT_LS_SS_INACTIVE) { + pls = USB_SS_PORT_LS_COMP_MOD; + } + /* Return also connection bit - + * hub state machine resets port + * when this bit is set. + */ + pls |= USB_PORT_STAT_CONNECTION; + } else { + /* + * If CAS bit isn't set but the Port is already at + * Compliance Mode, fake a connection so the USB core + * notices the Compliance state and resets the port. + * This resolves an issue generated by the SN65LVPE502CP + * in which sometimes the port enters compliance mode + * caused by a delay on the host-device negotiation. + */ + if (pls == USB_SS_PORT_LS_COMP_MOD) + pls |= USB_PORT_STAT_CONNECTION; + } + + /* update status field */ + *status |= pls; +} + +/* + * Function for Compliance Mode Quirk. + * + * This Function verifies if all xhc USB3 ports have entered U0, if so, + * the compliance mode timer is deleted. A port won't enter + * compliance mode if it has previously entered U0. + */ +void xhci_del_comp_mod_timer(struct xhci_hcd *xhci, u32 status, u16 wIndex) +{ + u32 all_ports_seen_u0 = ((1 << xhci->num_usb3_ports)-1); + bool port_in_u0 = ((status & PORT_PLS_MASK) == XDEV_U0); + + if (!(xhci->quirks & XHCI_COMP_MODE_QUIRK)) + return; + + if ((xhci->port_status_u0 != all_ports_seen_u0) && port_in_u0) { + xhci->port_status_u0 |= 1 << wIndex; + if (xhci->port_status_u0 == all_ports_seen_u0) { + del_timer_sync(&xhci->comp_mode_recovery_timer); + xhci_dbg(xhci, "All USB3 ports have entered U0 already!\n"); + xhci_dbg(xhci, "Compliance Mode Recovery Timer Deleted.\n"); + } + } +} + int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, u16 wIndex, char *buf, u16 wLength) { @@ -579,13 +652,14 @@ else status |= USB_PORT_STAT_POWER; } - /* Port Link State */ + /* Update Port Link State for super speed ports*/ if (hcd->speed == HCD_USB3) { - /* resume state is a xHCI internal state. - * Do not report it to usb core. + xhci_hub_report_link_state(&status, temp); + /* + * Verify if all USB3 Ports Have entered U0 already. + * Delete Compliance Mode Timer if so. */ - if ((temp & PORT_PLS_MASK) != XDEV_RESUME) - status |= (temp & PORT_PLS_MASK); + xhci_del_comp_mod_timer(xhci, temp, wIndex); } if (bus_state->port_c_suspend & (1 << wIndex)) status |= 1 << USB_PORT_FEAT_C_SUSPEND; @@ -651,12 +725,39 @@ break; case USB_PORT_FEAT_LINK_STATE: temp = xhci_readl(xhci, port_array[wIndex]); + + /* Disable port */ + if (link_state == USB_SS_PORT_LS_SS_DISABLED) { + xhci_dbg(xhci, "Disable port %d\n", wIndex); + temp = xhci_port_state_to_neutral(temp); + /* + * Clear all change bits, so that we get a new + * connection event. + */ + temp |= PORT_CSC | PORT_PEC | PORT_WRC | + PORT_OCC | PORT_RC | PORT_PLC | + PORT_CEC; + xhci_writel(xhci, temp | PORT_PE, + port_array[wIndex]); + temp = xhci_readl(xhci, port_array[wIndex]); + break; + } + + /* Put link in RxDetect (enable port) */ + if (link_state == USB_SS_PORT_LS_RX_DETECT) { + xhci_dbg(xhci, "Enable port %d\n", wIndex); + xhci_set_link_state(xhci, port_array, wIndex, + link_state); + temp = xhci_readl(xhci, port_array[wIndex]); + break; + } + /* Software should not attempt to set - * port link state above '5' (Rx.Detect) and the port + * port link state above '3' (U3) and the port * must be enabled. */ if ((temp & PORT_PE) == 0 || - (link_state > USB_SS_PORT_LS_RX_DETECT)) { + (link_state > USB_SS_PORT_LS_U3)) { xhci_warn(xhci, "Cannot set link state.\n"); goto error; } @@ -803,6 +904,7 @@ int max_ports; __le32 __iomem **port_array; struct xhci_bus_state *bus_state; + bool reset_change = false; max_ports = xhci_get_ports(hcd, &port_array); bus_state = &xhci->bus_state[hcd_index(hcd)]; @@ -829,6 +931,12 @@ buf[(i + 1) / 8] |= 1 << (i + 1) % 8; status = 1; } + if ((temp & PORT_RC)) + reset_change = true; + } + if (!status && !reset_change) { + xhci_dbg(xhci, "%s: stopping port polling.\n", __func__); + clear_bit(HCD_FLAG_POLL_RH, &hcd->flags); } spin_unlock_irqrestore(&xhci->lock, flags); return status ? retval : 0; --- linux-3.2.0.orig/drivers/usb/host/ehci-pci.c +++ linux-3.2.0/drivers/usb/host/ehci-pci.c @@ -357,7 +357,10 @@ { return pdev->class == PCI_CLASS_SERIAL_USB_EHCI && pdev->vendor == PCI_VENDOR_ID_INTEL && - pdev->device == 0x1E26; + (pdev->device == 0x1E26 || + pdev->device == 0x8C2D || + pdev->device == 0x8C26 || + pdev->device == 0x9C26); } static void ehci_enable_xhci_companion(void) --- linux-3.2.0.orig/drivers/usb/host/uhci-q.c +++ linux-3.2.0/drivers/usb/host/uhci-q.c @@ -943,7 +943,7 @@ if (usb_pipein(urb->pipe)) status |= TD_CTRL_SPD; - i = urb->num_sgs; + i = urb->num_mapped_sgs; if (len > 0 && i > 0) { sg = urb->sg; data = sg_dma_address(sg); --- linux-3.2.0.orig/drivers/usb/host/xhci-mem.c +++ linux-3.2.0/drivers/usb/host/xhci-mem.c @@ -178,8 +178,15 @@ struct xhci_segment *next; next = xhci_segment_alloc(xhci, flags); - if (!next) + if (!next) { + prev = ring->first_seg; + while (prev) { + next = prev->next; + xhci_segment_free(xhci, prev); + prev = next; + } goto fail; + } xhci_link_segments(xhci, prev, next, link_trbs, isoc); prev = next; @@ -199,7 +206,7 @@ return ring; fail: - xhci_ring_free(xhci, ring); + kfree(ring); return NULL; } @@ -264,6 +271,10 @@ ctx->size += CTX_SIZE(xhci->hcc_params); ctx->bytes = dma_pool_alloc(xhci->device_pool, flags, &ctx->dma); + if (!ctx->bytes) { + kfree(ctx); + return NULL; + } memset(ctx->bytes, 0, ctx->size); return ctx; } @@ -693,10 +704,9 @@ struct xhci_virt_device *virt_dev, int slot_id) { - struct list_head *tt; struct list_head *tt_list_head; - struct list_head *tt_next; - struct xhci_tt_bw_info *tt_info; + struct xhci_tt_bw_info *tt_info, *next; + bool slot_found = false; /* If the device never made it past the Set Address stage, * it may not have the real_port set correctly. @@ -708,34 +718,16 @@ } tt_list_head = &(xhci->rh_bw[virt_dev->real_port - 1].tts); - if (list_empty(tt_list_head)) - return; - - list_for_each(tt, tt_list_head) { - tt_info = list_entry(tt, struct xhci_tt_bw_info, tt_list); - if (tt_info->slot_id == slot_id) + list_for_each_entry_safe(tt_info, next, tt_list_head, tt_list) { + /* Multi-TT hubs will have more than one entry */ + if (tt_info->slot_id == slot_id) { + slot_found = true; + list_del(&tt_info->tt_list); + kfree(tt_info); + } else if (slot_found) { break; + } } - /* Cautionary measure in case the hub was disconnected before we - * stored the TT information. - */ - if (tt_info->slot_id != slot_id) - return; - - tt_next = tt->next; - tt_info = list_entry(tt, struct xhci_tt_bw_info, - tt_list); - /* Multi-TT hubs will have more than one entry */ - do { - list_del(tt); - kfree(tt_info); - tt = tt_next; - if (list_empty(tt_list_head)) - break; - tt_next = tt->next; - tt_info = list_entry(tt, struct xhci_tt_bw_info, - tt_list); - } while (tt_info->slot_id == slot_id); } int xhci_alloc_tt_info(struct xhci_hcd *xhci, @@ -1140,26 +1132,44 @@ } /* - * Convert bInterval expressed in frames (in 1-255 range) to exponent of + * Convert bInterval expressed in microframes (in 1-255 range) to exponent of * microframes, rounded down to nearest power of 2. */ -static unsigned int xhci_parse_frame_interval(struct usb_device *udev, - struct usb_host_endpoint *ep) +static unsigned int xhci_microframes_to_exponent(struct usb_device *udev, + struct usb_host_endpoint *ep, unsigned int desc_interval, + unsigned int min_exponent, unsigned int max_exponent) { unsigned int interval; - interval = fls(8 * ep->desc.bInterval) - 1; - interval = clamp_val(interval, 3, 10); - if ((1 << interval) != 8 * ep->desc.bInterval) + interval = fls(desc_interval) - 1; + interval = clamp_val(interval, min_exponent, max_exponent); + if ((1 << interval) != desc_interval) dev_warn(&udev->dev, "ep %#x - rounding interval to %d microframes, ep desc says %d microframes\n", ep->desc.bEndpointAddress, 1 << interval, - 8 * ep->desc.bInterval); + desc_interval); return interval; } +static unsigned int xhci_parse_microframe_interval(struct usb_device *udev, + struct usb_host_endpoint *ep) +{ + if (ep->desc.bInterval == 0) + return 0; + return xhci_microframes_to_exponent(udev, ep, + ep->desc.bInterval, 0, 15); +} + + +static unsigned int xhci_parse_frame_interval(struct usb_device *udev, + struct usb_host_endpoint *ep) +{ + return xhci_microframes_to_exponent(udev, ep, + ep->desc.bInterval * 8, 3, 10); +} + /* Return the polling or NAK interval. * * The polling interval is expressed in "microframes". If xHCI's Interval field @@ -1178,7 +1188,7 @@ /* Max NAK rate */ if (usb_endpoint_xfer_control(&ep->desc) || usb_endpoint_xfer_bulk(&ep->desc)) { - interval = ep->desc.bInterval; + interval = xhci_parse_microframe_interval(udev, ep); break; } /* Fall through - SS and HS isoc/int have same decoding */ @@ -1347,15 +1357,17 @@ ep_ctx->ep_info2 |= cpu_to_le32(xhci_get_endpoint_type(udev, ep)); /* Set the max packet size and max burst */ + max_packet = GET_MAX_PACKET(usb_endpoint_maxp(&ep->desc)); + max_burst = 0; switch (udev->speed) { case USB_SPEED_SUPER: - max_packet = usb_endpoint_maxp(&ep->desc); - ep_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(max_packet)); /* dig out max burst from ep companion desc */ - max_packet = ep->ss_ep_comp.bMaxBurst; - ep_ctx->ep_info2 |= cpu_to_le32(MAX_BURST(max_packet)); + max_burst = ep->ss_ep_comp.bMaxBurst; break; case USB_SPEED_HIGH: + /* Some devices get this wrong */ + if (usb_endpoint_xfer_bulk(&ep->desc)) + max_packet = 512; /* bits 11:12 specify the number of additional transaction * opportunities per microframe (USB 2.0, section 9.6.6) */ @@ -1363,17 +1375,16 @@ usb_endpoint_xfer_int(&ep->desc)) { max_burst = (usb_endpoint_maxp(&ep->desc) & 0x1800) >> 11; - ep_ctx->ep_info2 |= cpu_to_le32(MAX_BURST(max_burst)); } - /* Fall through */ + break; case USB_SPEED_FULL: case USB_SPEED_LOW: - max_packet = GET_MAX_PACKET(usb_endpoint_maxp(&ep->desc)); - ep_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(max_packet)); break; default: BUG(); } + ep_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(max_packet) | + MAX_BURST(max_burst)); max_esit_payload = xhci_get_max_esit_payload(xhci, udev, ep); ep_ctx->tx_info = cpu_to_le32(MAX_ESIT_PAYLOAD_FOR_EP(max_esit_payload)); @@ -1683,16 +1694,12 @@ { struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); struct dev_info *dev_info, *next; + struct xhci_cd *cur_cd, *next_cd; unsigned long flags; int size; - int i; + int i, j, num_ports; /* Free the Event Ring Segment Table and the actual Event Ring */ - if (xhci->ir_set) { - xhci_writel(xhci, 0, &xhci->ir_set->erst_size); - xhci_write_64(xhci, 0, &xhci->ir_set->erst_base); - xhci_write_64(xhci, 0, &xhci->ir_set->erst_dequeue); - } size = sizeof(struct xhci_erst_entry)*(xhci->erst.num_entries); if (xhci->erst.entries) dma_free_coherent(&pdev->dev, size, @@ -1704,11 +1711,16 @@ xhci->event_ring = NULL; xhci_dbg(xhci, "Freed event ring\n"); - xhci_write_64(xhci, 0, &xhci->op_regs->cmd_ring); + xhci->cmd_ring_reserved_trbs = 0; if (xhci->cmd_ring) xhci_ring_free(xhci, xhci->cmd_ring); xhci->cmd_ring = NULL; xhci_dbg(xhci, "Freed command ring\n"); + list_for_each_entry_safe(cur_cd, next_cd, + &xhci->cancel_cmd_list, cancel_cmd_list) { + list_del(&cur_cd->cancel_cmd_list); + kfree(cur_cd); + } for (i = 1; i < MAX_HC_SLOTS; ++i) xhci_free_virt_device(xhci, i); @@ -1733,7 +1745,6 @@ xhci->medium_streams_pool = NULL; xhci_dbg(xhci, "Freed medium stream array pool\n"); - xhci_write_64(xhci, 0, &xhci->op_regs->dcbaa_ptr); if (xhci->dcbaa) dma_free_coherent(&pdev->dev, sizeof(*xhci->dcbaa), xhci->dcbaa, xhci->dcbaa->dma); @@ -1748,8 +1759,31 @@ } spin_unlock_irqrestore(&xhci->lock, flags); + if (!xhci->rh_bw) + goto no_bw; + + num_ports = HCS_MAX_PORTS(xhci->hcs_params1); + for (i = 0; i < num_ports; i++) { + struct xhci_interval_bw_table *bwt = &xhci->rh_bw[i].bw_table; + for (j = 0; j < XHCI_MAX_INTERVAL; j++) { + struct list_head *ep = &bwt->interval_bw[j].endpoints; + while (!list_empty(ep)) + list_del_init(ep->next); + } + } + + for (i = 0; i < num_ports; i++) { + struct xhci_tt_bw_info *tt, *n; + list_for_each_entry_safe(tt, n, &xhci->rh_bw[i].tts, tt_list) { + list_del(&tt->tt_list); + kfree(tt); + } + } + +no_bw: xhci->num_usb2_ports = 0; xhci->num_usb3_ports = 0; + xhci->num_active_eps = 0; kfree(xhci->usb2_ports); kfree(xhci->usb3_ports); kfree(xhci->port_array); @@ -2158,6 +2192,9 @@ u32 page_size; int i; + INIT_LIST_HEAD(&xhci->lpm_failed_devs); + INIT_LIST_HEAD(&xhci->cancel_cmd_list); + page_size = xhci_readl(xhci, &xhci->op_regs->page_size); xhci_dbg(xhci, "Supported page size register = 0x%x\n", page_size); for (i = 0; i < 16; i++) { @@ -2336,12 +2373,12 @@ if (xhci_setup_port_arrays(xhci, flags)) goto fail; - INIT_LIST_HEAD(&xhci->lpm_failed_devs); - return 0; fail: xhci_warn(xhci, "Couldn't initialize memory\n"); + xhci_halt(xhci); + xhci_reset(xhci); xhci_mem_cleanup(xhci); return -ENOMEM; } --- linux-3.2.0.orig/drivers/usb/host/ehci-pxa168.c +++ linux-3.2.0/drivers/usb/host/ehci-pxa168.c @@ -299,7 +299,7 @@ ehci = hcd_to_ehci(hcd); ehci->caps = hcd->regs + 0x100; ehci->regs = hcd->regs + 0x100 + - HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase)); + HC_LENGTH(ehci, ehci_readl(ehci, &ehci->caps->hc_capbase)); ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params); hcd->has_tt = 1; ehci->sbrn = 0x20; --- linux-3.2.0.orig/drivers/usb/host/xhci.c +++ linux-3.2.0/drivers/usb/host/xhci.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "xhci.h" @@ -51,7 +52,7 @@ * handshake done). There are two failure modes: "usec" have passed (major * hardware flakeout), or the register reads as all-ones (hardware removed). */ -static int handshake(struct xhci_hcd *xhci, void __iomem *ptr, +int handshake(struct xhci_hcd *xhci, void __iomem *ptr, u32 mask, u32 done, int usec) { u32 result; @@ -104,8 +105,12 @@ ret = handshake(xhci, &xhci->op_regs->status, STS_HALT, STS_HALT, XHCI_MAX_HALT_USEC); - if (!ret) + if (!ret) { xhci->xhc_state |= XHCI_STATE_HALTED; + xhci->cmd_ring_state = CMD_RING_STATE_STOPPED; + } else + xhci_warn(xhci, "Host not halted after %u microseconds.\n", + XHCI_MAX_HALT_USEC); return ret; } @@ -163,7 +168,7 @@ xhci_writel(xhci, command, &xhci->op_regs->command); ret = handshake(xhci, &xhci->op_regs->command, - CMD_RESET, 0, 250 * 1000); + CMD_RESET, 0, 10 * 1000 * 1000); if (ret) return ret; @@ -172,7 +177,8 @@ * xHCI cannot write to any doorbells or operational registers other * than status until the "Controller Not Ready" flag is cleared. */ - return handshake(xhci, &xhci->op_regs->status, STS_CNR, 0, 250 * 1000); + return handshake(xhci, &xhci->op_regs->status, + STS_CNR, 0, 10 * 1000 * 1000); } #ifdef CONFIG_PCI @@ -200,14 +206,14 @@ ret = pci_enable_msi(pdev); if (ret) { - xhci_err(xhci, "failed to allocate MSI entry\n"); + xhci_dbg(xhci, "failed to allocate MSI entry\n"); return ret; } ret = request_irq(pdev->irq, (irq_handler_t)xhci_msi_irq, 0, "xhci_hcd", xhci_to_hcd(xhci)); if (ret) { - xhci_err(xhci, "disable MSI interrupt\n"); + xhci_dbg(xhci, "disable MSI interrupt\n"); pci_disable_msi(pdev); } @@ -270,7 +276,7 @@ ret = pci_enable_msix(pdev, xhci->msix_entries, xhci->msix_count); if (ret) { - xhci_err(xhci, "Failed to enable MSI-X\n"); + xhci_dbg(xhci, "Failed to enable MSI-X\n"); goto free_entries; } @@ -286,7 +292,7 @@ return ret; disable_msix: - xhci_err(xhci, "disable MSI-X interrupt\n"); + xhci_dbg(xhci, "disable MSI-X interrupt\n"); xhci_free_irq(xhci); pci_disable_msix(pdev); free_entries: @@ -336,7 +342,7 @@ * generate interrupts. Don't even try to enable MSI. */ if (xhci->quirks & XHCI_BROKEN_MSI) - return 0; + goto legacy_irq; /* unregister the legacy interrupt */ if (hcd->irq) @@ -352,6 +358,12 @@ /* hcd->irq is -1, we have MSI */ return 0; + if (!pdev->irq) { + xhci_err(xhci, "No msi-x/msi found and no IRQ in BIOS\n"); + return -EINVAL; + } + + legacy_irq: /* fall back to legacy interrupt*/ ret = request_irq(pdev->irq, &usb_hcd_irq, IRQF_SHARED, hcd->irq_descr, hcd); @@ -381,6 +393,98 @@ #endif +static void compliance_mode_recovery(unsigned long arg) +{ + struct xhci_hcd *xhci; + struct usb_hcd *hcd; + u32 temp; + int i; + + xhci = (struct xhci_hcd *)arg; + + for (i = 0; i < xhci->num_usb3_ports; i++) { + temp = xhci_readl(xhci, xhci->usb3_ports[i]); + if ((temp & PORT_PLS_MASK) == USB_SS_PORT_LS_COMP_MOD) { + /* + * Compliance Mode Detected. Letting USB Core + * handle the Warm Reset + */ + xhci_dbg(xhci, "Compliance Mode Detected->Port %d!\n", + i + 1); + xhci_dbg(xhci, "Attempting Recovery routine!\n"); + hcd = xhci->shared_hcd; + + if (hcd->state == HC_STATE_SUSPENDED) + usb_hcd_resume_root_hub(hcd); + + usb_hcd_poll_rh_status(hcd); + } + } + + if (xhci->port_status_u0 != ((1 << xhci->num_usb3_ports)-1)) + mod_timer(&xhci->comp_mode_recovery_timer, + jiffies + msecs_to_jiffies(COMP_MODE_RCVRY_MSECS)); +} + +/* + * Quirk to work around issue generated by the SN65LVPE502CP USB3.0 re-driver + * that causes ports behind that hardware to enter compliance mode sometimes. + * The quirk creates a timer that polls every 2 seconds the link state of + * each host controller's port and recovers it by issuing a Warm reset + * if Compliance mode is detected, otherwise the port will become "dead" (no + * device connections or disconnections will be detected anymore). Becasue no + * status event is generated when entering compliance mode (per xhci spec), + * this quirk is needed on systems that have the failing hardware installed. + */ +static void compliance_mode_recovery_timer_init(struct xhci_hcd *xhci) +{ + xhci->port_status_u0 = 0; + init_timer(&xhci->comp_mode_recovery_timer); + + xhci->comp_mode_recovery_timer.data = (unsigned long) xhci; + xhci->comp_mode_recovery_timer.function = compliance_mode_recovery; + xhci->comp_mode_recovery_timer.expires = jiffies + + msecs_to_jiffies(COMP_MODE_RCVRY_MSECS); + + set_timer_slack(&xhci->comp_mode_recovery_timer, + msecs_to_jiffies(COMP_MODE_RCVRY_MSECS)); + add_timer(&xhci->comp_mode_recovery_timer); + xhci_dbg(xhci, "Compliance Mode Recovery Timer Initialized.\n"); +} + +/* + * This function identifies the systems that have installed the SN65LVPE502CP + * USB3.0 re-driver and that need the Compliance Mode Quirk. + * Systems: + * Vendor: Hewlett-Packard -> System Models: Z420, Z620 and Z820 + */ +static bool compliance_mode_recovery_timer_quirk_check(void) +{ + const char *dmi_product_name, *dmi_sys_vendor; + + dmi_product_name = dmi_get_system_info(DMI_PRODUCT_NAME); + dmi_sys_vendor = dmi_get_system_info(DMI_SYS_VENDOR); + if (!dmi_product_name || !dmi_sys_vendor) + return false; + + if (!(strstr(dmi_sys_vendor, "Hewlett-Packard"))) + return false; + + if (strstr(dmi_product_name, "Z420") || + strstr(dmi_product_name, "Z620") || + strstr(dmi_product_name, "Z820") || + strstr(dmi_product_name, "Z1 Workstation")) + return true; + + return false; +} + +static int xhci_all_ports_seen_u0(struct xhci_hcd *xhci) +{ + return (xhci->port_status_u0 == ((1 << xhci->num_usb3_ports)-1)); +} + + /* * Initialize memory for HCD and xHC (one-time init). * @@ -404,6 +508,12 @@ retval = xhci_mem_init(xhci, GFP_KERNEL); xhci_dbg(xhci, "Finished xhci_init\n"); + /* Initializing Compliance Mode Recovery Data If Needed */ + if (compliance_mode_recovery_timer_quirk_check()) { + xhci->quirks |= XHCI_COMP_MODE_QUIRK; + compliance_mode_recovery_timer_init(xhci); + } + return retval; } @@ -468,6 +578,7 @@ return -ENODEV; } xhci->shared_hcd->state = HC_STATE_RUNNING; + xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; if (xhci->quirks & XHCI_NEC_HOST) xhci_ring_cmd_db(xhci); @@ -612,6 +723,11 @@ del_timer_sync(&xhci->event_ring_timer); #endif + /* Deleting Compliance Mode Recovery Timer */ + if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) && + (!(xhci_all_ports_seen_u0(xhci)))) + del_timer_sync(&xhci->comp_mode_recovery_timer); + if (xhci->quirks & XHCI_AMD_PLL_FIX) usb_amd_dev_put(); @@ -642,6 +758,9 @@ { struct xhci_hcd *xhci = hcd_to_xhci(hcd); + if (xhci->quirks & XHCI_SPURIOUS_REBOOT) + usb_disable_xhci_ports(to_pci_dev(hcd->self.controller)); + spin_lock_irq(&xhci->lock); xhci_halt(xhci); spin_unlock_irq(&xhci->lock); @@ -659,11 +778,11 @@ xhci->s3.dev_nt = xhci_readl(xhci, &xhci->op_regs->dev_notification); xhci->s3.dcbaa_ptr = xhci_read_64(xhci, &xhci->op_regs->dcbaa_ptr); xhci->s3.config_reg = xhci_readl(xhci, &xhci->op_regs->config_reg); - xhci->s3.irq_pending = xhci_readl(xhci, &xhci->ir_set->irq_pending); - xhci->s3.irq_control = xhci_readl(xhci, &xhci->ir_set->irq_control); xhci->s3.erst_size = xhci_readl(xhci, &xhci->ir_set->erst_size); xhci->s3.erst_base = xhci_read_64(xhci, &xhci->ir_set->erst_base); xhci->s3.erst_dequeue = xhci_read_64(xhci, &xhci->ir_set->erst_dequeue); + xhci->s3.irq_pending = xhci_readl(xhci, &xhci->ir_set->irq_pending); + xhci->s3.irq_control = xhci_readl(xhci, &xhci->ir_set->irq_control); } static void xhci_restore_registers(struct xhci_hcd *xhci) @@ -672,10 +791,11 @@ xhci_writel(xhci, xhci->s3.dev_nt, &xhci->op_regs->dev_notification); xhci_write_64(xhci, xhci->s3.dcbaa_ptr, &xhci->op_regs->dcbaa_ptr); xhci_writel(xhci, xhci->s3.config_reg, &xhci->op_regs->config_reg); - xhci_writel(xhci, xhci->s3.irq_pending, &xhci->ir_set->irq_pending); - xhci_writel(xhci, xhci->s3.irq_control, &xhci->ir_set->irq_control); xhci_writel(xhci, xhci->s3.erst_size, &xhci->ir_set->erst_size); xhci_write_64(xhci, xhci->s3.erst_base, &xhci->ir_set->erst_base); + xhci_write_64(xhci, xhci->s3.erst_dequeue, &xhci->ir_set->erst_dequeue); + xhci_writel(xhci, xhci->s3.irq_pending, &xhci->ir_set->irq_pending); + xhci_writel(xhci, xhci->s3.irq_control, &xhci->ir_set->irq_control); } static void xhci_set_cmd_ring_deq(struct xhci_hcd *xhci) @@ -752,6 +872,11 @@ struct usb_hcd *hcd = xhci_to_hcd(xhci); u32 command; + /* Don't poll the roothubs on bus suspend. */ + xhci_dbg(xhci, "%s: stopping port polling.\n", __func__); + clear_bit(HCD_FLAG_POLL_RH, &hcd->flags); + del_timer_sync(&hcd->rh_timer); + spin_lock_irq(&xhci->lock); clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); clear_bit(HCD_FLAG_HW_ACCESSIBLE, &xhci->shared_hcd->flags); @@ -763,7 +888,7 @@ command &= ~CMD_RUN; xhci_writel(xhci, command, &xhci->op_regs->command); if (handshake(xhci, &xhci->op_regs->status, - STS_HALT, STS_HALT, 100*100)) { + STS_HALT, STS_HALT, XHCI_MAX_HALT_USEC)) { xhci_warn(xhci, "WARN: xHC CMD_RUN timeout\n"); spin_unlock_irq(&xhci->lock); return -ETIMEDOUT; @@ -777,13 +902,23 @@ command = xhci_readl(xhci, &xhci->op_regs->command); command |= CMD_CSS; xhci_writel(xhci, command, &xhci->op_regs->command); - if (handshake(xhci, &xhci->op_regs->status, STS_SAVE, 0, 10*100)) { - xhci_warn(xhci, "WARN: xHC CMD_CSS timeout\n"); + if (handshake(xhci, &xhci->op_regs->status, STS_SAVE, 0, 10 * 1000)) { + xhci_warn(xhci, "WARN: xHC save state timeout\n"); spin_unlock_irq(&xhci->lock); return -ETIMEDOUT; } spin_unlock_irq(&xhci->lock); + /* + * Deleting Compliance Mode Recovery Timer because the xHCI Host + * is about to be suspended. + */ + if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) && + (!(xhci_all_ports_seen_u0(xhci)))) { + del_timer_sync(&xhci->comp_mode_recovery_timer); + xhci_dbg(xhci, "Compliance Mode Recovery Timer Deleted!\n"); + } + /* step 5: remove core well power */ /* synchronize irq when using MSI-X */ xhci_msix_sync_irqs(xhci); @@ -803,6 +938,7 @@ struct usb_hcd *hcd = xhci_to_hcd(xhci); struct usb_hcd *secondary_hcd; int retval = 0; + bool comp_timer_running = false; /* Wait a bit if either of the roothubs need to settle from the * transition into bus suspend. @@ -830,8 +966,8 @@ command |= CMD_CRS; xhci_writel(xhci, command, &xhci->op_regs->command); if (handshake(xhci, &xhci->op_regs->status, - STS_RESTORE, 0, 10*100)) { - xhci_dbg(xhci, "WARN: xHC CMD_CSS timeout\n"); + STS_RESTORE, 0, 10 * 1000)) { + xhci_warn(xhci, "WARN: xHC restore state timeout\n"); spin_unlock_irq(&xhci->lock); return -ETIMEDOUT; } @@ -840,6 +976,13 @@ /* If restore operation fails, re-initialize the HC during resume */ if ((temp & STS_SRE) || hibernated) { + + if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) && + !(xhci_all_ports_seen_u0(xhci))) { + del_timer_sync(&xhci->comp_mode_recovery_timer); + xhci_dbg(xhci, "Compliance Mode Recovery Timer deleted!\n"); + } + /* Let the USB core know _both_ roothubs lost power. */ usb_root_hub_lost_power(xhci->main_hcd->self.root_hub); usb_root_hub_lost_power(xhci->shared_hcd->self.root_hub); @@ -882,6 +1025,8 @@ retval = xhci_init(hcd->primary_hcd); if (retval) return retval; + comp_timer_running = true; + xhci_dbg(xhci, "Start the primary HCD\n"); retval = xhci_run(hcd->primary_hcd); if (!retval) { @@ -916,6 +1061,21 @@ usb_hcd_resume_root_hub(hcd); usb_hcd_resume_root_hub(xhci->shared_hcd); } + + /* + * If system is subject to the Quirk, Compliance Mode Timer needs to + * be re-initialized Always after a system resume. Ports are subject + * to suffer the Compliance Mode issue again. It doesn't matter if + * ports have entered previously to U0 before system's suspension. + */ + if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) && !comp_timer_running) + compliance_mode_recovery_timer_init(xhci); + + /* Re-enable port polling. */ + xhci_dbg(xhci, "%s: starting port polling.\n", __func__); + set_bit(HCD_FLAG_POLL_RH, &hcd->flags); + usb_hcd_poll_rh_status(hcd); + return retval; } #endif /* CONFIG_PM */ @@ -993,9 +1153,6 @@ } xhci = hcd_to_xhci(hcd); - if (xhci->xhc_state & XHCI_STATE_HALTED) - return -ENODEV; - if (check_virt_dev) { if (!udev->slot_id || !xhci->devs[udev->slot_id]) { printk(KERN_DEBUG "xHCI %s called with unaddressed " @@ -1011,6 +1168,9 @@ } } + if (xhci->xhc_state & XHCI_STATE_HALTED) + return -ENODEV; + return 1; } @@ -1620,6 +1780,7 @@ /* FIXME: can we allocate more resources for the HC? */ break; case COMP_BW_ERR: + case COMP_2ND_BW_ERR: dev_warn(&udev->dev, "Not enough bandwidth " "for new device state.\n"); ret = -ENOSPC; @@ -2101,7 +2262,7 @@ static bool xhci_is_sync_in_ep(unsigned int ep_type) { - return (ep_type == ISOC_IN_EP || ep_type != INT_IN_EP); + return (ep_type == ISOC_IN_EP || ep_type == INT_IN_EP); } static unsigned int xhci_get_ss_bw_consumed(struct xhci_bw_info *ep_bw) @@ -2374,6 +2535,7 @@ struct completion *cmd_completion; u32 *cmd_status; struct xhci_virt_device *virt_dev; + union xhci_trb *cmd_trb; spin_lock_irqsave(&xhci->lock, flags); virt_dev = xhci->devs[udev->slot_id]; @@ -2419,6 +2581,7 @@ } init_completion(cmd_completion); + cmd_trb = xhci->cmd_ring->dequeue; if (!ctx_change) ret = xhci_queue_configure_endpoint(xhci, in_ctx->dma, udev->slot_id, must_succeed); @@ -2440,14 +2603,17 @@ /* Wait for the configure endpoint command to complete */ timeleft = wait_for_completion_interruptible_timeout( cmd_completion, - USB_CTRL_SET_TIMEOUT); + XHCI_CMD_DEFAULT_TIMEOUT); if (timeleft <= 0) { xhci_warn(xhci, "%s while waiting for %s command\n", timeleft == 0 ? "Timeout" : "Signal", ctx_change == 0 ? "configure endpoint" : "evaluate context"); - /* FIXME cancel the configure endpoint command */ + /* cancel the configure endpoint command */ + ret = xhci_cancel_cmd(xhci, command, cmd_trb); + if (ret < 0) + return ret; return -ETIME; } @@ -2796,8 +2962,7 @@ if (ret < 0) return ret; - max_streams = USB_SS_MAX_STREAMS( - eps[i]->ss_ep_comp.bmAttributes); + max_streams = usb_ss_max_streams(&eps[i]->ss_ep_comp); if (max_streams < (*num_streams - 1)) { xhci_dbg(xhci, "Ep 0x%x only supports %u stream IDs.\n", eps[i]->desc.bEndpointAddress, @@ -3397,8 +3562,10 @@ unsigned long flags; int timeleft; int ret; + union xhci_trb *cmd_trb; spin_lock_irqsave(&xhci->lock, flags); + cmd_trb = xhci->cmd_ring->dequeue; ret = xhci_queue_slot_control(xhci, TRB_ENABLE_SLOT, 0); if (ret) { spin_unlock_irqrestore(&xhci->lock, flags); @@ -3410,12 +3577,12 @@ /* XXX: how much time for xHC slot assignment? */ timeleft = wait_for_completion_interruptible_timeout(&xhci->addr_dev, - USB_CTRL_SET_TIMEOUT); + XHCI_CMD_DEFAULT_TIMEOUT); if (timeleft <= 0) { xhci_warn(xhci, "%s while waiting for a slot\n", timeleft == 0 ? "Timeout" : "Signal"); - /* FIXME cancel the enable slot request */ - return 0; + /* cancel the enable slot request */ + return xhci_cancel_cmd(xhci, NULL, cmd_trb); } if (!xhci->slot_id) { @@ -3476,6 +3643,7 @@ struct xhci_slot_ctx *slot_ctx; struct xhci_input_control_ctx *ctrl_ctx; u64 temp_64; + union xhci_trb *cmd_trb; if (!udev->slot_id) { xhci_dbg(xhci, "Bad Slot ID %d\n", udev->slot_id); @@ -3514,6 +3682,7 @@ xhci_dbg_ctx(xhci, virt_dev->in_ctx, 2); spin_lock_irqsave(&xhci->lock, flags); + cmd_trb = xhci->cmd_ring->dequeue; ret = xhci_queue_address_device(xhci, virt_dev->in_ctx->dma, udev->slot_id); if (ret) { @@ -3526,7 +3695,7 @@ /* ctrl tx can take up to 5 sec; XXX: need more time for xHC? */ timeleft = wait_for_completion_interruptible_timeout(&xhci->addr_dev, - USB_CTRL_SET_TIMEOUT); + XHCI_CMD_DEFAULT_TIMEOUT); /* FIXME: From section 4.3.4: "Software shall be responsible for timing * the SetAddress() "recovery interval" required by USB and aborting the * command on a timeout. @@ -3534,7 +3703,10 @@ if (timeleft <= 0) { xhci_warn(xhci, "%s while waiting for address device command\n", timeleft == 0 ? "Timeout" : "Signal"); - /* FIXME cancel the address device command */ + /* cancel the address device command */ + ret = xhci_cancel_cmd(xhci, NULL, cmd_trb); + if (ret < 0) + return ret; return -ETIME; } @@ -4006,6 +4178,13 @@ get_quirks(dev, xhci); + /* In xhci controllers which follow xhci 1.0 spec gives a spurious + * success event after a short transfer. This quirk will ignore such + * spurious event. + */ + if (xhci->hci_version > 0x96) + xhci->quirks |= XHCI_SPURIOUS_SUCCESS; + /* Make sure the HC is halted. */ retval = xhci_halt(xhci); if (retval) --- linux-3.2.0.orig/drivers/usb/host/pci-quirks.h +++ linux-3.2.0/drivers/usb/host/pci-quirks.h @@ -10,10 +10,12 @@ void usb_amd_quirk_pll_enable(void); bool usb_is_intel_switchable_xhci(struct pci_dev *pdev); void usb_enable_xhci_ports(struct pci_dev *xhci_pdev); +void usb_disable_xhci_ports(struct pci_dev *xhci_pdev); #else static inline void usb_amd_quirk_pll_disable(void) {} static inline void usb_amd_quirk_pll_enable(void) {} static inline void usb_amd_dev_put(void) {} +static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {} #endif /* CONFIG_PCI */ #endif /* __LINUX_USB_PCI_QUIRKS_H */ --- linux-3.2.0.orig/drivers/usb/host/ehci-fsl.c +++ linux-3.2.0/drivers/usb/host/ehci-fsl.c @@ -125,7 +125,7 @@ */ if (pdata->init && pdata->init(pdev)) { retval = -ENODEV; - goto err3; + goto err4; } /* Enable USB controller, 83xx or 8536 */ @@ -216,6 +216,8 @@ unsigned int port_offset) { u32 portsc; + struct usb_hcd *hcd = ehci_to_hcd(ehci); + void __iomem *non_ehci = hcd->regs; portsc = ehci_readl(ehci, &ehci->regs->port_status[port_offset]); portsc &= ~(PORT_PTS_MSK | PORT_PTS_PTW); @@ -231,6 +233,8 @@ portsc |= PORT_PTS_PTW; /* fall through */ case FSL_USB2_PHY_UTMI: + /* enable UTMI PHY */ + setbits32(non_ehci + FSL_SOC_USB_CTRL, CTRL_UTMI_PHY_EN); portsc |= PORT_PTS_UTMI; break; case FSL_USB2_PHY_NONE: --- linux-3.2.0.orig/drivers/usb/host/xhci-pci.c +++ linux-3.2.0/drivers/usb/host/xhci-pci.c @@ -29,6 +29,7 @@ /* Device for a quirk */ #define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73 #define PCI_DEVICE_ID_FRESCO_LOGIC_PDK 0x1000 +#define PCI_DEVICE_ID_FRESCO_LOGIC_FL1400 0x1400 #define PCI_VENDOR_ID_ETRON 0x1b6f #define PCI_DEVICE_ID_ASROCK_P67 0x7023 @@ -58,8 +59,10 @@ /* Look for vendor-specific quirks */ if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC && - pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK) { - if (pdev->revision == 0x0) { + (pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK || + pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1400)) { + if (pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK && + pdev->revision == 0x0) { xhci->quirks |= XHCI_RESET_EP_QUIRK; xhci_dbg(xhci, "QUIRK: Fresco Logic xHC needs configure" " endpoint cmd after reset endpoint\n"); @@ -72,6 +75,7 @@ xhci_dbg(xhci, "QUIRK: Fresco Logic revision %u " "has broken MSI implementation\n", pdev->revision); + xhci->quirks |= XHCI_TRUST_TX_LENGTH; } if (pdev->vendor == PCI_VENDOR_ID_NEC) @@ -85,16 +89,28 @@ xhci->quirks |= XHCI_AMD_PLL_FIX; if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == PCI_DEVICE_ID_INTEL_PANTHERPOINT_XHCI) { - xhci->quirks |= XHCI_SPURIOUS_SUCCESS; xhci->quirks |= XHCI_EP_LIMIT_QUIRK; xhci->limit_active_eps = 64; xhci->quirks |= XHCI_SW_BW_CHECKING; + /* + * PPT desktop boards DH77EB and DH77DF will power back on after + * a few seconds of being shutdown. The fix for this is to + * switch the ports from xHCI to EHCI on shutdown. We can't use + * DMI information to find those particular boards (since each + * vendor will change the board name), so we have to key off all + * PPT chipsets. + */ + xhci->quirks |= XHCI_SPURIOUS_REBOOT; + xhci->quirks |= XHCI_AVOID_BEI; } if (pdev->vendor == PCI_VENDOR_ID_ETRON && pdev->device == PCI_DEVICE_ID_ASROCK_P67) { xhci->quirks |= XHCI_RESET_ON_RESUME; xhci_dbg(xhci, "QUIRK: Resetting on resume\n"); + xhci->quirks |= XHCI_TRUST_TX_LENGTH; } + if (pdev->vendor == PCI_VENDOR_ID_VIA) + xhci->quirks |= XHCI_RESET_ON_RESUME; } /* called during probe() after chip reset completes */ --- linux-3.2.0.orig/drivers/usb/host/pci-quirks.c +++ linux-3.2.0/drivers/usb/host/pci-quirks.c @@ -9,6 +9,7 @@ */ #include +#include #include #include #include @@ -74,7 +75,9 @@ #define NB_PIF0_PWRDOWN_1 0x01100013 #define USB_INTEL_XUSB2PR 0xD0 +#define USB_INTEL_USB2PRM 0xD4 #define USB_INTEL_USB3_PSSEN 0xD8 +#define USB_INTEL_USB3PRM 0xDC static struct amd_chipset_info { struct pci_dev *nb_dev; @@ -542,7 +545,14 @@ /* Pegatron Lucid (Ordissimo AIRIS) */ .matches = { DMI_MATCH(DMI_BOARD_NAME, "M11JB"), - DMI_MATCH(DMI_BIOS_VERSION, "Lucid-GE-133"), + DMI_MATCH(DMI_BIOS_VERSION, "Lucid-"), + }, + }, + { + /* Pegatron Lucid (Ordissimo) */ + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "Ordissimo"), + DMI_MATCH(DMI_BIOS_VERSION, "Lucid-"), }, }, { } @@ -712,12 +722,30 @@ return -ETIMEDOUT; } -bool usb_is_intel_switchable_xhci(struct pci_dev *pdev) +#define PCI_DEVICE_ID_INTEL_LYNX_POINT_XHCI 0x8C31 +#define PCI_DEVICE_ID_INTEL_LYNX_POINT_LP_XHCI 0x9C31 + +bool usb_is_intel_ppt_switchable_xhci(struct pci_dev *pdev) { return pdev->class == PCI_CLASS_SERIAL_USB_XHCI && pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == PCI_DEVICE_ID_INTEL_PANTHERPOINT_XHCI; } + +/* The Intel Lynx Point chipset also has switchable ports. */ +bool usb_is_intel_lpt_switchable_xhci(struct pci_dev *pdev) +{ + return pdev->class == PCI_CLASS_SERIAL_USB_XHCI && + pdev->vendor == PCI_VENDOR_ID_INTEL && + (pdev->device == PCI_DEVICE_ID_INTEL_LYNX_POINT_XHCI || + pdev->device == PCI_DEVICE_ID_INTEL_LYNX_POINT_LP_XHCI); +} + +bool usb_is_intel_switchable_xhci(struct pci_dev *pdev) +{ + return usb_is_intel_ppt_switchable_xhci(pdev) || + usb_is_intel_lpt_switchable_xhci(pdev); +} EXPORT_SYMBOL_GPL(usb_is_intel_switchable_xhci); /* @@ -742,10 +770,32 @@ { u32 ports_available; - ports_available = 0xffffffff; + /* Don't switchover the ports if the user hasn't compiled the xHCI + * driver. Otherwise they will see "dead" USB ports that don't power + * the devices. + */ + if (!IS_ENABLED(CONFIG_USB_XHCI_HCD)) { + dev_warn(&xhci_pdev->dev, + "CONFIG_USB_XHCI_HCD is turned off, " + "defaulting to EHCI.\n"); + dev_warn(&xhci_pdev->dev, + "USB 3.0 devices will work at USB 2.0 speeds.\n"); + usb_disable_xhci_ports(xhci_pdev); + return; + } + + /* Read USB3PRM, the USB 3.0 Port Routing Mask Register + * Indicate the ports that can be changed from OS. + */ + pci_read_config_dword(xhci_pdev, USB_INTEL_USB3PRM, + &ports_available); + + dev_dbg(&xhci_pdev->dev, "Configurable ports to enable SuperSpeed: 0x%x\n", + ports_available); + /* Write USB3_PSSEN, the USB 3.0 Port SuperSpeed Enable - * Register, to turn on SuperSpeed terminations for all - * available ports. + * Register, to turn on SuperSpeed terminations for the + * switchable ports. */ pci_write_config_dword(xhci_pdev, USB_INTEL_USB3_PSSEN, cpu_to_le32(ports_available)); @@ -755,7 +805,16 @@ dev_dbg(&xhci_pdev->dev, "USB 3.0 ports that are now enabled " "under xHCI: 0x%x\n", ports_available); - ports_available = 0xffffffff; + /* Read XUSB2PRM, xHCI USB 2.0 Port Routing Mask Register + * Indicate the USB 2.0 ports to be controlled by the xHCI host. + */ + + pci_read_config_dword(xhci_pdev, USB_INTEL_USB2PRM, + &ports_available); + + dev_dbg(&xhci_pdev->dev, "Configurable USB 2.0 ports to hand over to xCHI: 0x%x\n", + ports_available); + /* Write XUSB2PR, the xHC USB 2.0 Port Routing Register, to * switch the USB 2.0 power and data lines over to the xHCI * host. @@ -770,6 +829,13 @@ } EXPORT_SYMBOL_GPL(usb_enable_xhci_ports); +void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) +{ + pci_write_config_dword(xhci_pdev, USB_INTEL_USB3_PSSEN, 0x0); + pci_write_config_dword(xhci_pdev, USB_INTEL_XUSB2PR, 0x0); +} +EXPORT_SYMBOL_GPL(usb_disable_xhci_ports); + /** * PCI Quirks for xHCI. * @@ -785,12 +851,12 @@ void __iomem *op_reg_base; u32 val; int timeout; + int len = pci_resource_len(pdev, 0); if (!mmio_resource_enabled(pdev, 0)) return; - base = ioremap_nocache(pci_resource_start(pdev, 0), - pci_resource_len(pdev, 0)); + base = ioremap_nocache(pci_resource_start(pdev, 0), len); if (base == NULL) return; @@ -800,9 +866,17 @@ */ ext_cap_offset = xhci_find_next_cap_offset(base, XHCI_HCC_PARAMS_OFFSET); do { + if ((ext_cap_offset + sizeof(val)) > len) { + /* We're reading garbage from the controller */ + dev_warn(&pdev->dev, + "xHCI controller failing to respond"); + return; + } + if (!ext_cap_offset) /* We've reached the end of the extended capabilities */ goto hc_init; + val = readl(base + ext_cap_offset); if (XHCI_EXT_CAPS_ID(val) == XHCI_EXT_CAPS_LEGACY) break; @@ -825,13 +899,18 @@ } } - /* Disable any BIOS SMIs */ - writel(XHCI_LEGACY_DISABLE_SMI, - base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET); + val = readl(base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET); + /* Mask off (turn off) any enabled SMIs */ + val &= XHCI_LEGACY_DISABLE_SMI; + /* Mask all SMI events bits, RW1C */ + val |= XHCI_LEGACY_SMI_EVENTS; + /* Disable any BIOS SMIs and clear all SMI events*/ + writel(val, base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET); +hc_init: if (usb_is_intel_switchable_xhci(pdev)) usb_enable_xhci_ports(pdev); -hc_init: + op_reg_base = base + XHCI_HC_LENGTH(readl(base)); /* Wait for the host controller to be ready before writing any @@ -867,6 +946,22 @@ static void __devinit quirk_usb_early_handoff(struct pci_dev *pdev) { + /* Skip Netlogic mips SoC's internal PCI USB controller. + * This device does not need/support EHCI/OHCI handoff + */ + if (pdev->vendor == 0x184e) /* vendor Netlogic */ + return; + if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI && + pdev->class != PCI_CLASS_SERIAL_USB_OHCI && + pdev->class != PCI_CLASS_SERIAL_USB_EHCI && + pdev->class != PCI_CLASS_SERIAL_USB_XHCI) + return; + + if (pci_enable_device(pdev) < 0) { + dev_warn(&pdev->dev, "Can't enable PCI device, " + "BIOS handoff failed.\n"); + return; + } if (pdev->class == PCI_CLASS_SERIAL_USB_UHCI) quirk_usb_handoff_uhci(pdev); else if (pdev->class == PCI_CLASS_SERIAL_USB_OHCI) @@ -875,5 +970,6 @@ quirk_usb_disable_ehci(pdev); else if (pdev->class == PCI_CLASS_SERIAL_USB_XHCI) quirk_usb_handoff_xhci(pdev); + pci_disable_device(pdev); } DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, quirk_usb_early_handoff); --- linux-3.2.0.orig/drivers/usb/host/ehci-fsl.h +++ linux-3.2.0/drivers/usb/host/ehci-fsl.h @@ -45,5 +45,6 @@ #define FSL_SOC_USB_PRICTRL 0x40c /* NOTE: big-endian */ #define FSL_SOC_USB_SICTRL 0x410 /* NOTE: big-endian */ #define FSL_SOC_USB_CTRL 0x500 /* NOTE: big-endian */ +#define CTRL_UTMI_PHY_EN (1<<9) #define SNOOP_SIZE_2GB 0x1e #endif /* _EHCI_FSL_H */ --- linux-3.2.0.orig/drivers/usb/host/xhci-ext-caps.h +++ linux-3.2.0/drivers/usb/host/xhci-ext-caps.h @@ -62,8 +62,9 @@ /* USB Legacy Support Control and Status Register - section 7.1.2 */ /* Add this offset, plus the value of xECP in HCCPARAMS to the base address */ #define XHCI_LEGACY_CONTROL_OFFSET (0x04) -/* bits 1:2, 5:12, and 17:19 need to be preserved; bits 21:28 should be zero */ -#define XHCI_LEGACY_DISABLE_SMI ((0x3 << 1) + (0xff << 5) + (0x7 << 17)) +/* bits 1:3, 5:12, and 17:19 need to be preserved; bits 21:28 should be zero */ +#define XHCI_LEGACY_DISABLE_SMI ((0x7 << 1) + (0xff << 5) + (0x7 << 17)) +#define XHCI_LEGACY_SMI_EVENTS (0x7 << 29) /* USB 2.0 xHCI 0.96 L1C capability - section 7.2.2.1.3.2 */ #define XHCI_L1C (1 << 16) --- linux-3.2.0.orig/drivers/usb/host/ohci-q.c +++ linux-3.2.0/drivers/usb/host/ohci-q.c @@ -1130,6 +1130,25 @@ while (td) { struct td *td_next = td->next_dl_td; + struct ed *ed = td->ed; + + /* + * Some OHCI controllers (NVIDIA for sure, maybe others) + * occasionally forget to add TDs to the done queue. Since + * TDs for a given endpoint are always processed in order, + * if we find a TD on the donelist then all of its + * predecessors must be finished as well. + */ + for (;;) { + struct td *td2; + + td2 = list_first_entry(&ed->td_list, struct td, + td_list); + if (td2 == td) + break; + takeback_td(ohci, td2); + } + takeback_td(ohci, td); td = td_next; } --- linux-3.2.0.orig/drivers/usb/host/xhci.h +++ linux-3.2.0/drivers/usb/host/xhci.h @@ -205,6 +205,10 @@ #define CMD_PM_INDEX (1 << 11) /* bits 12:31 are reserved (and should be preserved on writes). */ +/* IMAN - Interrupt Management Register */ +#define IMAN_IE (1 << 1) +#define IMAN_IP (1 << 0) + /* USBSTS - USB status - status bitmasks */ /* HC not running - set to 1 when run/stop bit is cleared. */ #define STS_HALT XHCI_STS_HALT @@ -337,7 +341,11 @@ #define PORT_PLC (1 << 22) /* port configure error change - port failed to configure its link partner */ #define PORT_CEC (1 << 23) -/* bit 24 reserved */ +/* Cold Attach Status - xHC can set this bit to report device attached during + * Sx state. Warm port reset should be perfomed to clear this bit and move port + * to connected state. + */ +#define PORT_CAS (1 << 24) /* wake on connect (enable) */ #define PORT_WKCONN_E (1 << 25) /* wake on disconnect (enable) */ @@ -960,6 +968,10 @@ __le32 flags; }; +/* Transfer event TRB length bit mask */ +/* bits 0:23 */ +#define EVENT_TRB_LEN(p) ((p) & 0xffffff) + /** Transfer Event bit fields **/ #define TRB_TO_EP_ID(p) (((p) >> 16) & 0x1f) @@ -1033,7 +1045,6 @@ /* Invalid Stream ID Error */ #define COMP_STRID_ERR 34 /* Secondary Bandwidth Error - may be returned by a Configure Endpoint cmd */ -/* FIXME - check for this */ #define COMP_2ND_BW_ERR 35 /* Split Transaction Error */ #define COMP_SPLIT_ERR 36 @@ -1248,6 +1259,16 @@ union xhci_trb *last_trb; }; +/* xHCI command default timeout value */ +#define XHCI_CMD_DEFAULT_TIMEOUT (5 * HZ) + +/* command descriptor */ +struct xhci_cd { + struct list_head cancel_cmd_list; + struct xhci_command *command; + union xhci_trb *cmd_trb; +}; + struct xhci_dequeue_state { struct xhci_segment *new_deq_seg; union xhci_trb *new_deq_ptr; @@ -1395,6 +1416,11 @@ /* data structures */ struct xhci_device_context_array *dcbaa; struct xhci_ring *cmd_ring; + unsigned int cmd_ring_state; +#define CMD_RING_STATE_RUNNING (1 << 0) +#define CMD_RING_STATE_ABORTED (1 << 1) +#define CMD_RING_STATE_STOPPED (1 << 2) + struct list_head cancel_cmd_list; unsigned int cmd_ring_reserved_trbs; struct xhci_ring *event_ring; struct xhci_erst erst; @@ -1463,6 +1489,10 @@ #define XHCI_RESET_ON_RESUME (1 << 7) #define XHCI_SW_BW_CHECKING (1 << 8) #define XHCI_AMD_0x96_HOST (1 << 9) +#define XHCI_TRUST_TX_LENGTH (1 << 10) +#define XHCI_SPURIOUS_REBOOT (1 << 13) +#define XHCI_COMP_MODE_QUIRK (1 << 14) +#define XHCI_AVOID_BEI (1 << 15) unsigned int num_active_eps; unsigned int limit_active_eps; /* There are two roothubs to keep track of bus suspend info for */ @@ -1479,6 +1509,11 @@ unsigned sw_lpm_support:1; /* support xHCI 1.0 spec USB2 hardware LPM */ unsigned hw_lpm_support:1; + /* Compliance Mode Recovery Data */ + struct timer_list comp_mode_recovery_timer; + u32 port_status_u0; +/* Compliance Mode Timer Triggered every 2 seconds */ +#define COMP_MODE_RCVRY_MSECS 2000 }; /* convert between an HCD pointer and the corresponding EHCI_HCD */ @@ -1651,6 +1686,8 @@ /* xHCI host controller glue */ typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); +int handshake(struct xhci_hcd *xhci, void __iomem *ptr, + u32 mask, u32 done, int usec); void xhci_quiesce(struct xhci_hcd *xhci); int xhci_halt(struct xhci_hcd *xhci); int xhci_reset(struct xhci_hcd *xhci); @@ -1741,6 +1778,8 @@ unsigned int slot_id, unsigned int ep_index, struct xhci_dequeue_state *deq_state); void xhci_stop_endpoint_command_watchdog(unsigned long arg); +int xhci_cancel_cmd(struct xhci_hcd *xhci, struct xhci_command *command, + union xhci_trb *cmd_trb); void xhci_ring_ep_doorbell(struct xhci_hcd *xhci, unsigned int slot_id, unsigned int ep_index, unsigned int stream_id); --- linux-3.2.0.orig/drivers/usb/host/ehci-sched.c +++ linux-3.2.0/drivers/usb/host/ehci-sched.c @@ -1684,7 +1684,7 @@ /* don't need that schedule data any more */ iso_sched_free (stream, iso_sched); - urb->hcpriv = NULL; + urb->hcpriv = stream; timer_action (ehci, TIMER_IO_WATCHDOG); return enable_periodic(ehci); @@ -2094,7 +2094,7 @@ /* don't need that schedule data any more */ iso_sched_free (stream, sched); - urb->hcpriv = NULL; + urb->hcpriv = stream; timer_action (ehci, TIMER_IO_WATCHDOG); return enable_periodic(ehci); --- linux-3.2.0.orig/drivers/usb/host/xhci-ring.c +++ linux-3.2.0/drivers/usb/host/xhci-ring.c @@ -145,25 +145,34 @@ */ static void inc_deq(struct xhci_hcd *xhci, struct xhci_ring *ring, bool consumer) { - union xhci_trb *next = ++(ring->dequeue); unsigned long long addr; ring->deq_updates++; - /* Update the dequeue pointer further if that was a link TRB or we're at - * the end of an event ring segment (which doesn't have link TRBS) - */ - while (last_trb(xhci, ring, ring->deq_seg, next)) { - if (consumer && last_trb_on_last_seg(xhci, ring, ring->deq_seg, next)) { - ring->cycle_state = (ring->cycle_state ? 0 : 1); - if (!in_interrupt()) - xhci_dbg(xhci, "Toggle cycle state for ring %p = %i\n", - ring, - (unsigned int) ring->cycle_state); - } - ring->deq_seg = ring->deq_seg->next; - ring->dequeue = ring->deq_seg->trbs; - next = ring->dequeue; - } + + do { + /* + * Update the dequeue pointer further if that was a link TRB or + * we're at the end of an event ring segment (which doesn't have + * link TRBS) + */ + if (last_trb(xhci, ring, ring->deq_seg, ring->dequeue)) { + if (consumer && last_trb_on_last_seg(xhci, ring, + ring->deq_seg, ring->dequeue)) { + if (!in_interrupt()) + xhci_dbg(xhci, "Toggle cycle state " + "for ring %p = %i\n", + ring, + (unsigned int) + ring->cycle_state); + ring->cycle_state = (ring->cycle_state ? 0 : 1); + } + ring->deq_seg = ring->deq_seg->next; + ring->dequeue = ring->deq_seg->trbs; + } else { + ring->dequeue++; + } + } while (last_trb(xhci, ring, ring->deq_seg, ring->dequeue)); + addr = (unsigned long long) xhci_trb_virt_to_dma(ring->deq_seg, ring->dequeue); } @@ -300,12 +309,123 @@ /* Ring the host controller doorbell after placing a command on the ring */ void xhci_ring_cmd_db(struct xhci_hcd *xhci) { + if (!(xhci->cmd_ring_state & CMD_RING_STATE_RUNNING)) + return; + xhci_dbg(xhci, "// Ding dong!\n"); xhci_writel(xhci, DB_VALUE_HOST, &xhci->dba->doorbell[0]); /* Flush PCI posted writes */ xhci_readl(xhci, &xhci->dba->doorbell[0]); } +static int xhci_abort_cmd_ring(struct xhci_hcd *xhci) +{ + u64 temp_64; + int ret; + + xhci_dbg(xhci, "Abort command ring\n"); + + if (!(xhci->cmd_ring_state & CMD_RING_STATE_RUNNING)) { + xhci_dbg(xhci, "The command ring isn't running, " + "Have the command ring been stopped?\n"); + return 0; + } + + temp_64 = xhci_read_64(xhci, &xhci->op_regs->cmd_ring); + if (!(temp_64 & CMD_RING_RUNNING)) { + xhci_dbg(xhci, "Command ring had been stopped\n"); + return 0; + } + xhci->cmd_ring_state = CMD_RING_STATE_ABORTED; + xhci_write_64(xhci, temp_64 | CMD_RING_ABORT, + &xhci->op_regs->cmd_ring); + + /* Section 4.6.1.2 of xHCI 1.0 spec says software should + * time the completion od all xHCI commands, including + * the Command Abort operation. If software doesn't see + * CRR negated in a timely manner (e.g. longer than 5 + * seconds), then it should assume that the there are + * larger problems with the xHC and assert HCRST. + */ + ret = handshake(xhci, &xhci->op_regs->cmd_ring, + CMD_RING_RUNNING, 0, 5 * 1000 * 1000); + if (ret < 0) { + xhci_err(xhci, "Stopped the command ring failed, " + "maybe the host is dead\n"); + xhci->xhc_state |= XHCI_STATE_DYING; + xhci_quiesce(xhci); + xhci_halt(xhci); + return -ESHUTDOWN; + } + + return 0; +} + +static int xhci_queue_cd(struct xhci_hcd *xhci, + struct xhci_command *command, + union xhci_trb *cmd_trb) +{ + struct xhci_cd *cd; + cd = kzalloc(sizeof(struct xhci_cd), GFP_ATOMIC); + if (!cd) + return -ENOMEM; + INIT_LIST_HEAD(&cd->cancel_cmd_list); + + cd->command = command; + cd->cmd_trb = cmd_trb; + list_add_tail(&cd->cancel_cmd_list, &xhci->cancel_cmd_list); + + return 0; +} + +/* + * Cancel the command which has issue. + * + * Some commands may hang due to waiting for acknowledgement from + * usb device. It is outside of the xHC's ability to control and + * will cause the command ring is blocked. When it occurs software + * should intervene to recover the command ring. + * See Section 4.6.1.1 and 4.6.1.2 + */ +int xhci_cancel_cmd(struct xhci_hcd *xhci, struct xhci_command *command, + union xhci_trb *cmd_trb) +{ + int retval = 0; + unsigned long flags; + + spin_lock_irqsave(&xhci->lock, flags); + + if (xhci->xhc_state & XHCI_STATE_DYING) { + xhci_warn(xhci, "Abort the command ring," + " but the xHCI is dead.\n"); + retval = -ESHUTDOWN; + goto fail; + } + + /* queue the cmd desriptor to cancel_cmd_list */ + retval = xhci_queue_cd(xhci, command, cmd_trb); + if (retval) { + xhci_warn(xhci, "Queuing command descriptor failed.\n"); + goto fail; + } + + /* abort command ring */ + retval = xhci_abort_cmd_ring(xhci); + if (retval) { + xhci_err(xhci, "Abort command ring failed\n"); + if (unlikely(retval == -ESHUTDOWN)) { + spin_unlock_irqrestore(&xhci->lock, flags); + usb_hc_died(xhci_to_hcd(xhci)->primary_hcd); + xhci_dbg(xhci, "xHCI host controller is dead.\n"); + return retval; + } + } + +fail: + spin_unlock_irqrestore(&xhci->lock, flags); + return retval; +} + void xhci_ring_ep_doorbell(struct xhci_hcd *xhci, unsigned int slot_id, unsigned int ep_index, @@ -343,7 +463,7 @@ /* A ring has pending URBs if its TD list is not empty */ if (!(ep->ep_state & EP_HAS_STREAMS)) { - if (!(list_empty(&ep->ring->td_list))) + if (ep->ring && !(list_empty(&ep->ring->td_list))) xhci_ring_ep_doorbell(xhci, slot_id, ep_index, 0); return; } @@ -1034,6 +1154,20 @@ } } +/* Complete the command and detele it from the devcie's command queue. + */ +static void xhci_complete_cmd_in_cmd_wait_list(struct xhci_hcd *xhci, + struct xhci_command *command, u32 status) +{ + command->status = status; + list_del(&command->cmd_list); + if (command->completion) + complete(command->completion); + else + xhci_free_command(xhci, command); +} + + /* Check to see if a command in the device's command queue matches this one. * Signal the completion or free the command, and return 1. Return 0 if the * completed command isn't at the head of the command list. @@ -1052,15 +1186,155 @@ if (xhci->cmd_ring->dequeue != command->command_trb) return 0; - command->status = GET_COMP_CODE(le32_to_cpu(event->status)); - list_del(&command->cmd_list); - if (command->completion) - complete(command->completion); - else - xhci_free_command(xhci, command); + xhci_complete_cmd_in_cmd_wait_list(xhci, command, + GET_COMP_CODE(le32_to_cpu(event->status))); return 1; } +/* + * Finding the command trb need to be cancelled and modifying it to + * NO OP command. And if the command is in device's command wait + * list, finishing and freeing it. + * + * If we can't find the command trb, we think it had already been + * executed. + */ +static void xhci_cmd_to_noop(struct xhci_hcd *xhci, struct xhci_cd *cur_cd) +{ + struct xhci_segment *cur_seg; + union xhci_trb *cmd_trb; + u32 cycle_state; + + if (xhci->cmd_ring->dequeue == xhci->cmd_ring->enqueue) + return; + + /* find the current segment of command ring */ + cur_seg = find_trb_seg(xhci->cmd_ring->first_seg, + xhci->cmd_ring->dequeue, &cycle_state); + + if (!cur_seg) { + xhci_warn(xhci, "Command ring mismatch, dequeue = %p %llx (dma)\n", + xhci->cmd_ring->dequeue, + (unsigned long long) + xhci_trb_virt_to_dma(xhci->cmd_ring->deq_seg, + xhci->cmd_ring->dequeue)); + xhci_debug_ring(xhci, xhci->cmd_ring); + xhci_dbg_ring_ptrs(xhci, xhci->cmd_ring); + return; + } + + /* find the command trb matched by cd from command ring */ + for (cmd_trb = xhci->cmd_ring->dequeue; + cmd_trb != xhci->cmd_ring->enqueue; + next_trb(xhci, xhci->cmd_ring, &cur_seg, &cmd_trb)) { + /* If the trb is link trb, continue */ + if (TRB_TYPE_LINK_LE32(cmd_trb->generic.field[3])) + continue; + + if (cur_cd->cmd_trb == cmd_trb) { + + /* If the command in device's command list, we should + * finish it and free the command structure. + */ + if (cur_cd->command) + xhci_complete_cmd_in_cmd_wait_list(xhci, + cur_cd->command, COMP_CMD_STOP); + + /* get cycle state from the origin command trb */ + cycle_state = le32_to_cpu(cmd_trb->generic.field[3]) + & TRB_CYCLE; + + /* modify the command trb to NO OP command */ + cmd_trb->generic.field[0] = 0; + cmd_trb->generic.field[1] = 0; + cmd_trb->generic.field[2] = 0; + cmd_trb->generic.field[3] = cpu_to_le32( + TRB_TYPE(TRB_CMD_NOOP) | cycle_state); + break; + } + } +} + +static void xhci_cancel_cmd_in_cd_list(struct xhci_hcd *xhci) +{ + struct xhci_cd *cur_cd, *next_cd; + + if (list_empty(&xhci->cancel_cmd_list)) + return; + + list_for_each_entry_safe(cur_cd, next_cd, + &xhci->cancel_cmd_list, cancel_cmd_list) { + xhci_cmd_to_noop(xhci, cur_cd); + list_del(&cur_cd->cancel_cmd_list); + kfree(cur_cd); + } +} + +/* + * traversing the cancel_cmd_list. If the command descriptor according + * to cmd_trb is found, the function free it and return 1, otherwise + * return 0. + */ +static int xhci_search_cmd_trb_in_cd_list(struct xhci_hcd *xhci, + union xhci_trb *cmd_trb) +{ + struct xhci_cd *cur_cd, *next_cd; + + if (list_empty(&xhci->cancel_cmd_list)) + return 0; + + list_for_each_entry_safe(cur_cd, next_cd, + &xhci->cancel_cmd_list, cancel_cmd_list) { + if (cur_cd->cmd_trb == cmd_trb) { + if (cur_cd->command) + xhci_complete_cmd_in_cmd_wait_list(xhci, + cur_cd->command, COMP_CMD_STOP); + list_del(&cur_cd->cancel_cmd_list); + kfree(cur_cd); + return 1; + } + } + + return 0; +} + +/* + * If the cmd_trb_comp_code is COMP_CMD_ABORT, we just check whether the + * trb pointed by the command ring dequeue pointer is the trb we want to + * cancel or not. And if the cmd_trb_comp_code is COMP_CMD_STOP, we will + * traverse the cancel_cmd_list to trun the all of the commands according + * to command descriptor to NO-OP trb. + */ +static int handle_stopped_cmd_ring(struct xhci_hcd *xhci, + int cmd_trb_comp_code) +{ + int cur_trb_is_good = 0; + + /* Searching the cmd trb pointed by the command ring dequeue + * pointer in command descriptor list. If it is found, free it. + */ + cur_trb_is_good = xhci_search_cmd_trb_in_cd_list(xhci, + xhci->cmd_ring->dequeue); + + if (cmd_trb_comp_code == COMP_CMD_ABORT) + xhci->cmd_ring_state = CMD_RING_STATE_STOPPED; + else if (cmd_trb_comp_code == COMP_CMD_STOP) { + /* traversing the cancel_cmd_list and canceling + * the command according to command descriptor + */ + xhci_cancel_cmd_in_cd_list(xhci); + + xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; + /* + * ring command ring doorbell again to restart the + * command ring + */ + if (xhci->cmd_ring->dequeue != xhci->cmd_ring->enqueue) + xhci_ring_cmd_db(xhci); + } + return cur_trb_is_good; +} + static void handle_cmd_completion(struct xhci_hcd *xhci, struct xhci_event_cmd *event) { @@ -1086,6 +1360,22 @@ xhci->error_bitmask |= 1 << 5; return; } + + if ((GET_COMP_CODE(le32_to_cpu(event->status)) == COMP_CMD_ABORT) || + (GET_COMP_CODE(le32_to_cpu(event->status)) == COMP_CMD_STOP)) { + /* If the return value is 0, we think the trb pointed by + * command ring dequeue pointer is a good trb. The good + * trb means we don't want to cancel the trb, but it have + * been stopped by host. So we should handle it normally. + * Otherwise, driver should invoke inc_deq() and return. + */ + if (handle_stopped_cmd_ring(xhci, + GET_COMP_CODE(le32_to_cpu(event->status)))) { + inc_deq(xhci, xhci->cmd_ring, false); + return; + } + } + switch (le32_to_cpu(xhci->cmd_ring->dequeue->generic.field[3]) & TRB_TYPE_BITMASK) { case TRB_TYPE(TRB_ENABLE_SLOT): @@ -1215,6 +1505,7 @@ * * Returns a zero-based port number, which is suitable for indexing into each of * the split roothubs' port arrays and bus state arrays. + * Add one to it in order to call xhci_find_slot_id_by_port. */ static unsigned int find_faked_portnum_from_hw_portnum(struct usb_hcd *hcd, struct xhci_hcd *xhci, u32 port_id) @@ -1335,7 +1626,7 @@ xhci_set_link_state(xhci, port_array, faked_port_index, XDEV_U0); slot_id = xhci_find_slot_id_by_port(hcd, xhci, - faked_port_index); + faked_port_index + 1); if (!slot_id) { xhci_dbg(xhci, "slot_id is zero\n"); goto cleanup; @@ -1370,6 +1661,15 @@ if (bogus_port_status) return; + /* + * xHCI port-status-change events occur when the "or" of all the + * status-change bits in the portsc register changes from 0 to 1. + * New status changes won't cause an event if any other change + * bits are still set. When an event occurs, switch over to + * polling to avoid losing status changes. + */ + xhci_dbg(xhci, "%s: starting port polling.\n", __func__); + set_bit(HCD_FLAG_POLL_RH, &hcd->flags); spin_unlock(&xhci->lock); /* Pass this up to the core */ usb_hcd_poll_rh_status(hcd); @@ -1643,7 +1943,6 @@ } break; case COMP_SHORT_TX: - xhci_warn(xhci, "WARN: short transfer on control ep\n"); if (td->urb->transfer_flags & URB_SHORT_NOT_OK) *status = -EREMOTEIO; else @@ -1665,8 +1964,8 @@ if (event_trb != ep_ring->dequeue && event_trb != td->last_trb) td->urb->actual_length = - td->urb->transfer_buffer_length - - TRB_LEN(le32_to_cpu(event->transfer_len)); + td->urb->transfer_buffer_length - + EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)); else td->urb->actual_length = 0; @@ -1698,7 +1997,7 @@ /* Maybe the event was for the data stage? */ td->urb->actual_length = td->urb->transfer_buffer_length - - TRB_LEN(le32_to_cpu(event->transfer_len)); + EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)); xhci_dbg(xhci, "Waiting for status " "stage event\n"); return 0; @@ -1734,8 +2033,12 @@ /* handle completion code */ switch (trb_comp_code) { case COMP_SUCCESS: - frame->status = 0; - break; + if (EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)) == 0) { + frame->status = 0; + break; + } + if ((xhci->quirks & XHCI_TRUST_TX_LENGTH)) + trb_comp_code = COMP_SHORT_TX; case COMP_SHORT_TX: frame->status = td->urb->transfer_flags & URB_SHORT_NOT_OK ? -EREMOTEIO : 0; @@ -1751,6 +2054,7 @@ break; case COMP_DEV_ERR: case COMP_STALL: + case COMP_TX_ERR: frame->status = -EPROTO; skip_td = true; break; @@ -1774,7 +2078,7 @@ len += TRB_LEN(le32_to_cpu(cur_trb->generic.field[2])); } len += TRB_LEN(le32_to_cpu(cur_trb->generic.field[2])) - - TRB_LEN(le32_to_cpu(event->transfer_len)); + EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)); if (trb_comp_code != COMP_STOP_INVAL) { frame->actual_length = len; @@ -1831,13 +2135,16 @@ switch (trb_comp_code) { case COMP_SUCCESS: /* Double check that the HW transferred everything. */ - if (event_trb != td->last_trb) { + if (event_trb != td->last_trb || + EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)) != 0) { xhci_warn(xhci, "WARN Successful completion " "on short TX\n"); if (td->urb->transfer_flags & URB_SHORT_NOT_OK) *status = -EREMOTEIO; else *status = 0; + if ((xhci->quirks & XHCI_TRUST_TX_LENGTH)) + trb_comp_code = COMP_SHORT_TX; } else { *status = 0; } @@ -1857,18 +2164,18 @@ "%d bytes untransferred\n", td->urb->ep->desc.bEndpointAddress, td->urb->transfer_buffer_length, - TRB_LEN(le32_to_cpu(event->transfer_len))); + EVENT_TRB_LEN(le32_to_cpu(event->transfer_len))); /* Fast path - was this the last TRB in the TD for this URB? */ if (event_trb == td->last_trb) { - if (TRB_LEN(le32_to_cpu(event->transfer_len)) != 0) { + if (EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)) != 0) { td->urb->actual_length = td->urb->transfer_buffer_length - - TRB_LEN(le32_to_cpu(event->transfer_len)); + EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)); if (td->urb->transfer_buffer_length < td->urb->actual_length) { xhci_warn(xhci, "HC gave bad length " "of %d bytes left\n", - TRB_LEN(le32_to_cpu(event->transfer_len))); + EVENT_TRB_LEN(le32_to_cpu(event->transfer_len))); td->urb->actual_length = 0; if (td->urb->transfer_flags & URB_SHORT_NOT_OK) *status = -EREMOTEIO; @@ -1910,7 +2217,7 @@ if (trb_comp_code != COMP_STOP_INVAL) td->urb->actual_length += TRB_LEN(le32_to_cpu(cur_trb->generic.field[2])) - - TRB_LEN(le32_to_cpu(event->transfer_len)); + EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)); } return finish_td(xhci, td, event_trb, event, ep, status, false); @@ -1976,6 +2283,13 @@ * transfer type */ case COMP_SUCCESS: + if (EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)) == 0) + break; + if (xhci->quirks & XHCI_TRUST_TX_LENGTH) + trb_comp_code = COMP_SHORT_TX; + else + xhci_warn(xhci, "WARN Successful completion on short TX: " + "needs XHCI_TRUST_TX_LENGTH quirk?\n"); case COMP_SHORT_TX: break; case COMP_STOP: @@ -1985,7 +2299,7 @@ xhci_dbg(xhci, "Stopped on No-op or Link TRB\n"); break; case COMP_STALL: - xhci_warn(xhci, "WARN: Stalled endpoint\n"); + xhci_dbg(xhci, "Stalled endpoint\n"); ep->ep_state |= EP_HALTED; status = -EPIPE; break; @@ -1995,11 +2309,11 @@ break; case COMP_SPLIT_ERR: case COMP_TX_ERR: - xhci_warn(xhci, "WARN: transfer error on endpoint\n"); + xhci_dbg(xhci, "Transfer error on endpoint\n"); status = -EPROTO; break; case COMP_BABBLE: - xhci_warn(xhci, "WARN: babble error on endpoint\n"); + xhci_dbg(xhci, "Babble error on endpoint\n"); status = -EOVERFLOW; break; case COMP_DB_ERR: @@ -2062,14 +2376,21 @@ * TD list. */ if (list_empty(&ep_ring->td_list)) { - xhci_warn(xhci, "WARN Event TRB for slot %d ep %d " - "with no TDs queued?\n", - TRB_TO_SLOT_ID(le32_to_cpu(event->flags)), - ep_index); - xhci_dbg(xhci, "Event TRB with TRB type ID %u\n", - (le32_to_cpu(event->flags) & - TRB_TYPE_BITMASK)>>10); - xhci_print_trb_offsets(xhci, (union xhci_trb *) event); + /* + * A stopped endpoint may generate an extra completion + * event if the device was suspended. Don't print + * warnings. + */ + if (!(trb_comp_code == COMP_STOP || + trb_comp_code == COMP_STOP_INVAL)) { + xhci_warn(xhci, "WARN Event TRB for slot %d ep %d with no TDs queued?\n", + TRB_TO_SLOT_ID(le32_to_cpu(event->flags)), + ep_index); + xhci_dbg(xhci, "Event TRB with TRB type ID %u\n", + (le32_to_cpu(event->flags) & + TRB_TYPE_BITMASK)>>10); + xhci_print_trb_offsets(xhci, (union xhci_trb *) event); + } if (ep->skip) { ep->skip = false; xhci_dbg(xhci, "td_list is empty while skip " @@ -2190,6 +2511,8 @@ (trb_comp_code != COMP_STALL && trb_comp_code != COMP_BABBLE)) xhci_urb_free_priv(xhci, urb_priv); + else + kfree(urb_priv); usb_hcd_unlink_urb_from_ep(bus_to_hcd(urb->dev->bus), urb); if ((urb->actual_length != urb->transfer_buffer_length && @@ -2342,7 +2665,7 @@ u32 irq_pending; /* Acknowledge the PCI interrupt */ irq_pending = xhci_readl(xhci, &xhci->ir_set->irq_pending); - irq_pending |= 0x3; + irq_pending |= IMAN_IP; xhci_writel(xhci, irq_pending, &xhci->ir_set->irq_pending); } @@ -2561,7 +2884,7 @@ struct scatterlist *sg; sg = NULL; - num_sgs = urb->num_sgs; + num_sgs = urb->num_mapped_sgs; temp = urb->transfer_buffer_length; xhci_dbg(xhci, "count sg list trbs: \n"); @@ -2690,11 +3013,11 @@ } /* - * For xHCI 1.0 host controllers, TD size is the number of packets remaining in - * the TD (*not* including this TRB). + * For xHCI 1.0 host controllers, TD size is the number of max packet sized + * packets remaining in the TD (*not* including this TRB). * * Total TD packet count = total_packet_count = - * roundup(TD size in bytes / wMaxPacketSize) + * DIV_ROUND_UP(TD size in bytes / wMaxPacketSize) * * Packets transferred up to and including this TRB = packets_transferred = * rounddown(total bytes transferred including this TRB / wMaxPacketSize) @@ -2702,24 +3025,27 @@ * TD size = total_packet_count - packets_transferred * * It must fit in bits 21:17, so it can't be bigger than 31. + * The last TRB in a TD must have the TD size set to zero. */ - static u32 xhci_v1_0_td_remainder(int running_total, int trb_buff_len, - unsigned int total_packet_count, struct urb *urb) + unsigned int total_packet_count, struct urb *urb, + unsigned int num_trbs_left) { int packets_transferred; /* One TRB with a zero-length data packet. */ - if (running_total == 0 && trb_buff_len == 0) + if (num_trbs_left == 0 || (running_total == 0 && trb_buff_len == 0)) return 0; /* All the TRB queueing functions don't count the current TRB in * running_total. */ packets_transferred = (running_total + trb_buff_len) / - usb_endpoint_maxp(&urb->ep->desc); + GET_MAX_PACKET(usb_endpoint_maxp(&urb->ep->desc)); - return xhci_td_remainder(total_packet_count - packets_transferred); + if ((total_packet_count - packets_transferred) > 31) + return 31 << 17; + return (total_packet_count - packets_transferred) << 17; } static int queue_bulk_sg_tx(struct xhci_hcd *xhci, gfp_t mem_flags, @@ -2745,8 +3071,8 @@ return -EINVAL; num_trbs = count_sg_trbs_needed(xhci, urb); - num_sgs = urb->num_sgs; - total_packet_count = roundup(urb->transfer_buffer_length, + num_sgs = urb->num_mapped_sgs; + total_packet_count = DIV_ROUND_UP(urb->transfer_buffer_length, usb_endpoint_maxp(&urb->ep->desc)); trb_buff_len = prepare_transfer(xhci, xhci->devs[slot_id], @@ -2836,7 +3162,8 @@ running_total); } else { remainder = xhci_v1_0_td_remainder(running_total, - trb_buff_len, total_packet_count, urb); + trb_buff_len, total_packet_count, urb, + num_trbs - 1); } length_field = TRB_LEN(trb_buff_len) | remainder | @@ -2953,7 +3280,7 @@ start_cycle = ep_ring->cycle_state; running_total = 0; - total_packet_count = roundup(urb->transfer_buffer_length, + total_packet_count = DIV_ROUND_UP(urb->transfer_buffer_length, usb_endpoint_maxp(&urb->ep->desc)); /* How much data is in the first TRB? */ addr = (u64) urb->transfer_dma; @@ -2999,7 +3326,8 @@ running_total); } else { remainder = xhci_v1_0_td_remainder(running_total, - trb_buff_len, total_packet_count, urb); + trb_buff_len, total_packet_count, urb, + num_trbs - 1); } length_field = TRB_LEN(trb_buff_len) | remainder | @@ -3274,8 +3602,9 @@ addr = start_addr + urb->iso_frame_desc[i].offset; td_len = urb->iso_frame_desc[i].length; td_remain_len = td_len; - total_packet_count = roundup(td_len, - usb_endpoint_maxp(&urb->ep->desc)); + total_packet_count = DIV_ROUND_UP(td_len, + GET_MAX_PACKET( + usb_endpoint_maxp(&urb->ep->desc))); /* A zero-length transfer still involves at least one packet. */ if (total_packet_count == 0) total_packet_count++; @@ -3298,9 +3627,11 @@ td = urb_priv->td[i]; for (j = 0; j < trbs_per_td; j++) { u32 remainder = 0; - field = TRB_TBC(burst_count) | TRB_TLBPC(residue); + field = 0; if (first_trb) { + field = TRB_TBC(burst_count) | + TRB_TLBPC(residue); /* Queue the isoc TRB */ field |= TRB_TYPE(TRB_ISOC); /* Assume URB_ISO_ASAP is set */ @@ -3331,7 +3662,9 @@ } else { td->last_trb = ep_ring->enqueue; field |= TRB_IOC; - if (xhci->hci_version == 0x100) { + if (xhci->hci_version == 0x100 && + !(xhci->quirks & + XHCI_AVOID_BEI)) { /* Set BEI bit except for the last td */ if (i < num_tds - 1) field |= TRB_BEI; @@ -3352,7 +3685,8 @@ } else { remainder = xhci_v1_0_td_remainder( running_total, trb_buff_len, - total_packet_count, urb); + total_packet_count, urb, + (trbs_per_td - j - 1)); } length_field = TRB_LEN(trb_buff_len) | remainder | @@ -3372,7 +3706,8 @@ /* Check TD length */ if (running_total != td_len) { xhci_err(xhci, "ISOC TD length unmatch\n"); - return -EINVAL; + ret = -EINVAL; + goto cleanup; } } --- linux-3.2.0.orig/drivers/usb/host/ehci-q.c +++ linux-3.2.0/drivers/usb/host/ehci-q.c @@ -128,9 +128,17 @@ else { qtd = list_entry (qh->qtd_list.next, struct ehci_qtd, qtd_list); - /* first qtd may already be partially processed */ - if (cpu_to_hc32(ehci, qtd->qtd_dma) == qh->hw->hw_current) + /* + * first qtd may already be partially processed. + * If we come here during unlink, the QH overlay region + * might have reference to the just unlinked qtd. The + * qtd is updated in qh_completions(). Update the QH + * overlay here. + */ + if (cpu_to_hc32(ehci, qtd->qtd_dma) == qh->hw->hw_current) { + qh->hw->hw_qtd_next = qtd->hw_next; qtd = NULL; + } } if (qtd) @@ -256,18 +264,14 @@ __releases(ehci->lock) __acquires(ehci->lock) { - if (likely (urb->hcpriv != NULL)) { - struct ehci_qh *qh = (struct ehci_qh *) urb->hcpriv; - - /* S-mask in a QH means it's an interrupt urb */ - if ((qh->hw->hw_info2 & cpu_to_hc32(ehci, QH_SMASK)) != 0) { - - /* ... update hc-wide periodic stats (for usbfs) */ - ehci_to_hcd(ehci)->self.bandwidth_int_reqs--; - } - qh_put (qh); + if (usb_pipetype(urb->pipe) == PIPE_INTERRUPT) { + /* ... update hc-wide periodic stats */ + ehci_to_hcd(ehci)->self.bandwidth_int_reqs--; } + if (usb_pipetype(urb->pipe) != PIPE_ISOCHRONOUS) + qh_put((struct ehci_qh *) urb->hcpriv); + if (unlikely(urb->unlinked)) { COUNT(ehci->stats.unlink); } else { @@ -647,7 +651,7 @@ /* * data transfer stage: buffer setup */ - i = urb->num_sgs; + i = urb->num_mapped_sgs; if (len > 0 && i > 0) { sg = urb->sg; buf = sg_dma_address(sg); --- linux-3.2.0.orig/drivers/usb/host/uhci-hub.c +++ linux-3.2.0/drivers/usb/host/uhci-hub.c @@ -221,7 +221,8 @@ /* auto-stop if nothing connected for 1 second */ if (any_ports_active(uhci)) uhci->rh_state = UHCI_RH_RUNNING; - else if (time_after_eq(jiffies, uhci->auto_stop_time)) + else if (time_after_eq(jiffies, uhci->auto_stop_time) && + !uhci->wait_for_hp) suspend_rh(uhci, UHCI_RH_AUTO_STOPPED); break; --- linux-3.2.0.orig/drivers/usb/host/whci/qset.c +++ linux-3.2.0/drivers/usb/host/whci/qset.c @@ -443,7 +443,7 @@ remaining = urb->transfer_buffer_length; - for_each_sg(urb->sg, sg, urb->num_sgs, i) { + for_each_sg(urb->sg, sg, urb->num_mapped_sgs, i) { dma_addr_t dma_addr; size_t dma_remaining; dma_addr_t sp, ep; @@ -561,7 +561,7 @@ remaining = urb->transfer_buffer_length; - for_each_sg(urb->sg, sg, urb->num_sgs, i) { + for_each_sg(urb->sg, sg, urb->num_mapped_sgs, i) { size_t len; size_t sg_remaining; void *orig; --- linux-3.2.0.orig/drivers/usb/class/cdc-acm.c +++ linux-3.2.0/drivers/usb/class/cdc-acm.c @@ -498,6 +498,14 @@ usb_autopm_put_interface(acm->control); + /* + * Unthrottle device in case the TTY was closed while throttled. + */ + spin_lock_irq(&acm->read_lock); + acm->throttled = 0; + acm->throttle_req = 0; + spin_unlock_irq(&acm->read_lock); + if (acm_submit_read_urbs(acm, GFP_KERNEL)) goto bail_out; @@ -554,10 +562,18 @@ static void acm_tty_hangup(struct tty_struct *tty) { - struct acm *acm = tty->driver_data; - tty_port_hangup(&acm->port); + struct acm *acm; + mutex_lock(&open_mutex); + acm = tty->driver_data; + + if (!acm) + goto out; + + tty_port_hangup(&acm->port); acm_port_down(acm); + +out: mutex_unlock(&open_mutex); } @@ -744,10 +760,6 @@ 2500000, 3000000, 3500000, 4000000 }; -static const __u8 acm_tty_size[] = { - 5, 6, 7, 8 -}; - static void acm_tty_set_termios(struct tty_struct *tty, struct ktermios *termios_old) { @@ -764,7 +776,21 @@ newline.bParityType = termios->c_cflag & PARENB ? (termios->c_cflag & PARODD ? 1 : 2) + (termios->c_cflag & CMSPAR ? 2 : 0) : 0; - newline.bDataBits = acm_tty_size[(termios->c_cflag & CSIZE) >> 4]; + switch (termios->c_cflag & CSIZE) { + case CS5: + newline.bDataBits = 5; + break; + case CS6: + newline.bDataBits = 6; + break; + case CS7: + newline.bDataBits = 7; + break; + case CS8: + default: + newline.bDataBits = 8; + break; + } /* FIXME: Needs to clear unsupported bits in the termios */ acm->clocal = ((termios->c_cflag & CLOCAL) != 0); @@ -1027,7 +1053,8 @@ } - if (data_interface->cur_altsetting->desc.bNumEndpoints < 2) + if (data_interface->cur_altsetting->desc.bNumEndpoints < 2 || + control_interface->cur_altsetting->desc.bNumEndpoints == 0) return -EINVAL; epctrl = &control_interface->cur_altsetting->endpoint[0].desc; @@ -1155,7 +1182,7 @@ if (usb_endpoint_xfer_int(epwrite)) usb_fill_int_urb(snd->urb, usb_dev, - usb_sndbulkpipe(usb_dev, epwrite->bEndpointAddress), + usb_sndintpipe(usb_dev, epwrite->bEndpointAddress), NULL, acm->writesize, acm_write_bulk, snd, epwrite->bInterval); else usb_fill_bulk_urb(snd->urb, usb_dev, @@ -1183,6 +1210,8 @@ i = device_create_file(&intf->dev, &dev_attr_wCountryCodes); if (i < 0) { kfree(acm->country_codes); + acm->country_codes = NULL; + acm->country_code_size = 0; goto skip_countries; } @@ -1191,6 +1220,8 @@ if (i < 0) { device_remove_file(&intf->dev, &dev_attr_wCountryCodes); kfree(acm->country_codes); + acm->country_codes = NULL; + acm->country_code_size = 0; goto skip_countries; } } @@ -1475,6 +1506,12 @@ Maybe we should define a new quirk for this. */ }, + { USB_DEVICE(0x0572, 0x1340), /* Conexant CX93010-2x UCMxx */ + .driver_info = NO_UNION_NORMAL, + }, + { USB_DEVICE(0x05f9, 0x4002), /* PSC Scanning, Magellan 800i */ + .driver_info = NO_UNION_NORMAL, + }, { USB_DEVICE(0x1bbb, 0x0003), /* Alcatel OT-I650 */ .driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */ }, --- linux-3.2.0.orig/drivers/usb/class/cdc-wdm.c +++ linux-3.2.0/drivers/usb/class/cdc-wdm.c @@ -31,6 +31,8 @@ #define DRIVER_AUTHOR "Oliver Neukum" #define DRIVER_DESC "USB Abstract Control Model driver for USB WCM Device Management" +#define HUAWEI_VENDOR_ID 0x12D1 + static const struct usb_device_id wdm_ids[] = { { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS | @@ -38,6 +40,20 @@ .bInterfaceClass = USB_CLASS_COMM, .bInterfaceSubClass = USB_CDC_SUBCLASS_DMM }, + { + /* + * Huawei E392, E398 and possibly other Qualcomm based modems + * embed the Qualcomm QMI protocol inside CDC on CDC ECM like + * control interfaces. Userspace access to this is required + * to configure the accompanying data interface + */ + .match_flags = USB_DEVICE_ID_MATCH_VENDOR | + USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = HUAWEI_VENDOR_ID, + .bInterfaceClass = USB_CLASS_VENDOR_SPEC, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 9, /* NOTE: CDC ECM control interface! */ + }, { } }; @@ -54,9 +70,12 @@ #define WDM_POLL_RUNNING 6 #define WDM_RESPONDING 7 #define WDM_SUSPENDING 8 +#define WDM_OVERFLOW 10 #define WDM_MAX 16 +/* CDC-WMC r1.1 requires wMaxCommand to be "at least 256 decimal (0x100)" */ +#define WDM_DEFAULT_BUFSIZE 256 static DEFINE_MUTEX(wdm_mutex); @@ -88,7 +107,8 @@ int count; dma_addr_t shandle; dma_addr_t ihandle; - struct mutex lock; + struct mutex wlock; + struct mutex rlock; wait_queue_head_t wait; struct work_struct rxwork; int werr; @@ -105,8 +125,9 @@ spin_lock(&desc->iuspin); desc->werr = urb->status; spin_unlock(&desc->iuspin); - clear_bit(WDM_IN_USE, &desc->flags); kfree(desc->outbuf); + desc->outbuf = NULL; + clear_bit(WDM_IN_USE, &desc->flags); wake_up(&desc->wait); } @@ -114,6 +135,7 @@ { struct wdm_device *desc = urb->context; int status = urb->status; + int length = urb->actual_length; spin_lock(&desc->iuspin); clear_bit(WDM_RESPONDING, &desc->flags); @@ -144,9 +166,17 @@ } desc->rerr = status; - desc->reslength = urb->actual_length; - memmove(desc->ubuf + desc->length, desc->inbuf, desc->reslength); - desc->length += desc->reslength; + if (length + desc->length > desc->wMaxCommand) { + /* The buffer would overflow */ + set_bit(WDM_OVERFLOW, &desc->flags); + } else { + /* we may already be in overflow */ + if (!test_bit(WDM_OVERFLOW, &desc->flags)) { + memmove(desc->ubuf + desc->length, desc->inbuf, length); + desc->length += length; + desc->reslength = length; + } + } skip_error: wake_up(&desc->wait); @@ -281,7 +311,7 @@ desc->sbuf, desc->validity->transfer_dma); usb_free_coherent(interface_to_usbdev(desc->intf), - desc->bMaxPacketSize0, + desc->wMaxCommand, desc->inbuf, desc->response->transfer_dma); kfree(desc->orq); @@ -309,7 +339,7 @@ if (we < 0) return -EIO; - desc->outbuf = buf = kmalloc(count, GFP_KERNEL); + buf = kmalloc(count, GFP_KERNEL); if (!buf) { rv = -ENOMEM; goto outnl; @@ -323,7 +353,7 @@ } /* concurrent writes and disconnect */ - r = mutex_lock_interruptible(&desc->lock); + r = mutex_lock_interruptible(&desc->wlock); rv = -ERESTARTSYS; if (r) { kfree(buf); @@ -373,10 +403,12 @@ req->wIndex = desc->inum; req->wLength = cpu_to_le16(count); set_bit(WDM_IN_USE, &desc->flags); + desc->outbuf = buf; rv = usb_submit_urb(desc->command, GFP_KERNEL); if (rv < 0) { kfree(buf); + desc->outbuf = NULL; clear_bit(WDM_IN_USE, &desc->flags); dev_err(&desc->intf->dev, "Tx URB error: %d\n", rv); } else { @@ -386,7 +418,7 @@ out: usb_autopm_put_interface(desc->intf); outnp: - mutex_unlock(&desc->lock); + mutex_unlock(&desc->wlock); outnl: return rv < 0 ? rv : count; } @@ -394,22 +426,28 @@ static ssize_t wdm_read (struct file *file, char __user *buffer, size_t count, loff_t *ppos) { - int rv, cntr = 0; + int rv, cntr; int i = 0; struct wdm_device *desc = file->private_data; - rv = mutex_lock_interruptible(&desc->lock); /*concurrent reads */ + rv = mutex_lock_interruptible(&desc->rlock); /*concurrent reads */ if (rv < 0) return -ERESTARTSYS; - if (desc->length == 0) { + cntr = ACCESS_ONCE(desc->length); + if (cntr == 0) { desc->read = 0; retry: if (test_bit(WDM_DISCONNECTING, &desc->flags)) { rv = -ENODEV; goto err; } + if (test_bit(WDM_OVERFLOW, &desc->flags)) { + clear_bit(WDM_OVERFLOW, &desc->flags); + rv = -ENOBUFS; + goto err; + } i++; if (file->f_flags & O_NONBLOCK) { if (!test_bit(WDM_READ, &desc->flags)) { @@ -449,21 +487,27 @@ spin_unlock_irq(&desc->iuspin); goto retry; } + if (!desc->reslength) { /* zero length read */ + dev_dbg(&desc->intf->dev, "%s: zero length - clearing WDM_READ\n", __func__); + clear_bit(WDM_READ, &desc->flags); spin_unlock_irq(&desc->iuspin); goto retry; } - clear_bit(WDM_READ, &desc->flags); + cntr = desc->length; spin_unlock_irq(&desc->iuspin); } - cntr = count > desc->length ? desc->length : count; + if (cntr > count) + cntr = count; rv = copy_to_user(buffer, desc->ubuf, cntr); if (rv > 0) { rv = -EFAULT; goto err; } + spin_lock_irq(&desc->iuspin); + for (i = 0; i < desc->length - cntr; i++) desc->ubuf[i] = desc->ubuf[i + cntr]; @@ -471,10 +515,13 @@ /* in case we had outstanding data */ if (!desc->length) clear_bit(WDM_READ, &desc->flags); + + spin_unlock_irq(&desc->iuspin); + rv = cntr; err: - mutex_unlock(&desc->lock); + mutex_unlock(&desc->rlock); return rv; } @@ -483,11 +530,13 @@ struct wdm_device *desc = file->private_data; wait_event(desc->wait, !test_bit(WDM_IN_USE, &desc->flags)); - if (desc->werr < 0) + + /* cannot dereference desc->intf if WDM_DISCONNECTING */ + if (desc->werr < 0 && !test_bit(WDM_DISCONNECTING, &desc->flags)) dev_err(&desc->intf->dev, "Error in flush path: %d\n", desc->werr); - return desc->werr; + return usb_translate_errors(desc->werr); } static unsigned int wdm_poll(struct file *file, struct poll_table_struct *wait) @@ -498,7 +547,7 @@ spin_lock_irqsave(&desc->iuspin, flags); if (test_bit(WDM_DISCONNECTING, &desc->flags)) { - mask = POLLERR; + mask = POLLHUP | POLLERR; spin_unlock_irqrestore(&desc->iuspin, flags); goto desc_out; } @@ -540,7 +589,8 @@ } intf->needs_remote_wakeup = 1; - mutex_lock(&desc->lock); + /* using write lock to protect desc->count */ + mutex_lock(&desc->wlock); if (!desc->count++) { desc->werr = 0; desc->rerr = 0; @@ -553,7 +603,7 @@ } else { rv = 0; } - mutex_unlock(&desc->lock); + mutex_unlock(&desc->wlock); usb_autopm_put_interface(desc->intf); out: mutex_unlock(&wdm_mutex); @@ -565,15 +615,22 @@ struct wdm_device *desc = file->private_data; mutex_lock(&wdm_mutex); - mutex_lock(&desc->lock); + + /* using write lock to protect desc->count */ + mutex_lock(&desc->wlock); desc->count--; - mutex_unlock(&desc->lock); + mutex_unlock(&desc->wlock); if (!desc->count) { - dev_dbg(&desc->intf->dev, "wdm_release: cleanup"); - kill_urbs(desc); - if (!test_bit(WDM_DISCONNECTING, &desc->flags)) + if (!test_bit(WDM_DISCONNECTING, &desc->flags)) { + dev_dbg(&desc->intf->dev, "wdm_release: cleanup"); + kill_urbs(desc); desc->intf->needs_remote_wakeup = 0; + } else { + /* must avoid dev_printk here as desc->intf is invalid */ + pr_debug(KBUILD_MODNAME " %s: device gone - cleaning up\n", __func__); + cleanup(desc); + } } mutex_unlock(&wdm_mutex); return 0; @@ -630,7 +687,7 @@ struct usb_cdc_dmm_desc *dmhd; u8 *buffer = intf->altsetting->extra; int buflen = intf->altsetting->extralen; - u16 maxcom = 0; + u16 maxcom = WDM_DEFAULT_BUFSIZE; if (!buffer) goto out; @@ -665,7 +722,8 @@ desc = kzalloc(sizeof(struct wdm_device), GFP_KERNEL); if (!desc) goto out; - mutex_init(&desc->lock); + mutex_init(&desc->rlock); + mutex_init(&desc->wlock); spin_lock_init(&desc->iuspin); init_waitqueue_head(&desc->wait); desc->wMaxCommand = maxcom; @@ -716,7 +774,7 @@ goto err; desc->inbuf = usb_alloc_coherent(interface_to_usbdev(intf), - desc->bMaxPacketSize0, + desc->wMaxCommand, GFP_KERNEL, &desc->response->transfer_dma); if (!desc->inbuf) @@ -746,7 +804,7 @@ err3: usb_set_intfdata(intf, NULL); usb_free_coherent(interface_to_usbdev(desc->intf), - desc->bMaxPacketSize0, + desc->wMaxCommand, desc->inbuf, desc->response->transfer_dma); err2: @@ -779,13 +837,17 @@ /* to terminate pending flushes */ clear_bit(WDM_IN_USE, &desc->flags); spin_unlock_irqrestore(&desc->iuspin, flags); - mutex_lock(&desc->lock); + wake_up_all(&desc->wait); + mutex_lock(&desc->rlock); + mutex_lock(&desc->wlock); kill_urbs(desc); cancel_work_sync(&desc->rxwork); - mutex_unlock(&desc->lock); - wake_up_all(&desc->wait); + mutex_unlock(&desc->wlock); + mutex_unlock(&desc->rlock); if (!desc->count) cleanup(desc); + else + dev_dbg(&intf->dev, "%s: %d open files - postponing cleanup\n", __func__, desc->count); mutex_unlock(&wdm_mutex); } @@ -798,8 +860,10 @@ dev_dbg(&desc->intf->dev, "wdm%d_suspend\n", intf->minor); /* if this is an autosuspend the caller does the locking */ - if (!PMSG_IS_AUTO(message)) - mutex_lock(&desc->lock); + if (!PMSG_IS_AUTO(message)) { + mutex_lock(&desc->rlock); + mutex_lock(&desc->wlock); + } spin_lock_irq(&desc->iuspin); if (PMSG_IS_AUTO(message) && @@ -815,8 +879,10 @@ kill_urbs(desc); cancel_work_sync(&desc->rxwork); } - if (!PMSG_IS_AUTO(message)) - mutex_unlock(&desc->lock); + if (!PMSG_IS_AUTO(message)) { + mutex_unlock(&desc->wlock); + mutex_unlock(&desc->rlock); + } return rv; } @@ -854,7 +920,8 @@ { struct wdm_device *desc = usb_get_intfdata(intf); - mutex_lock(&desc->lock); + mutex_lock(&desc->rlock); + mutex_lock(&desc->wlock); kill_urbs(desc); /* @@ -875,8 +942,10 @@ struct wdm_device *desc = usb_get_intfdata(intf); int rv; + clear_bit(WDM_OVERFLOW, &desc->flags); rv = recover_from_urb_loss(desc); - mutex_unlock(&desc->lock); + mutex_unlock(&desc->wlock); + mutex_unlock(&desc->rlock); return 0; } --- linux-3.2.0.orig/drivers/usb/gadget/uvc.h +++ linux-3.2.0/drivers/usb/gadget/uvc.h @@ -28,7 +28,7 @@ struct uvc_request_data { - unsigned int length; + __s32 length; __u8 data[60]; }; --- linux-3.2.0.orig/drivers/usb/gadget/storage_common.c +++ linux-3.2.0/drivers/usb/gadget/storage_common.c @@ -598,16 +598,16 @@ | USB_5GBPS_OPERATION), .bFunctionalitySupport = USB_LOW_SPEED_OPERATION, .bU1devExitLat = USB_DEFAULT_U1_DEV_EXIT_LAT, - .bU2DevExitLat = USB_DEFAULT_U2_DEV_EXIT_LAT, + .bU2DevExitLat = cpu_to_le16(USB_DEFAULT_U2_DEV_EXIT_LAT), }; static __maybe_unused struct usb_bos_descriptor fsg_bos_desc = { .bLength = USB_DT_BOS_SIZE, .bDescriptorType = USB_DT_BOS, - .wTotalLength = USB_DT_BOS_SIZE + .wTotalLength = cpu_to_le16(USB_DT_BOS_SIZE + USB_DT_USB_EXT_CAP_SIZE - + USB_DT_USB_SS_CAP_SIZE, + + USB_DT_USB_SS_CAP_SIZE), .bNumDeviceCaps = 2, }; --- linux-3.2.0.orig/drivers/usb/gadget/f_subset.c +++ linux-3.2.0/drivers/usb/gadget/f_subset.c @@ -74,7 +74,7 @@ /* interface descriptor: */ -static struct usb_interface_descriptor subset_data_intf __initdata = { +static struct usb_interface_descriptor subset_data_intf = { .bLength = sizeof subset_data_intf, .bDescriptorType = USB_DT_INTERFACE, @@ -87,7 +87,7 @@ /* .iInterface = DYNAMIC */ }; -static struct usb_cdc_header_desc mdlm_header_desc __initdata = { +static struct usb_cdc_header_desc mdlm_header_desc = { .bLength = sizeof mdlm_header_desc, .bDescriptorType = USB_DT_CS_INTERFACE, .bDescriptorSubType = USB_CDC_HEADER_TYPE, @@ -95,7 +95,7 @@ .bcdCDC = cpu_to_le16(0x0110), }; -static struct usb_cdc_mdlm_desc mdlm_desc __initdata = { +static struct usb_cdc_mdlm_desc mdlm_desc = { .bLength = sizeof mdlm_desc, .bDescriptorType = USB_DT_CS_INTERFACE, .bDescriptorSubType = USB_CDC_MDLM_TYPE, @@ -111,7 +111,7 @@ * can't really use its struct. All we do here is say that we're using * the submode of "SAFE" which directly matches the CDC Subset. */ -static u8 mdlm_detail_desc[] __initdata = { +static u8 mdlm_detail_desc[] = { 6, USB_DT_CS_INTERFACE, USB_CDC_MDLM_DETAIL_TYPE, @@ -121,7 +121,7 @@ 0, /* network data capabilities ("raw" encapsulation) */ }; -static struct usb_cdc_ether_desc ether_desc __initdata = { +static struct usb_cdc_ether_desc ether_desc = { .bLength = sizeof ether_desc, .bDescriptorType = USB_DT_CS_INTERFACE, .bDescriptorSubType = USB_CDC_ETHERNET_TYPE, @@ -136,7 +136,7 @@ /* full speed support: */ -static struct usb_endpoint_descriptor fs_subset_in_desc __initdata = { +static struct usb_endpoint_descriptor fs_subset_in_desc = { .bLength = USB_DT_ENDPOINT_SIZE, .bDescriptorType = USB_DT_ENDPOINT, @@ -144,7 +144,7 @@ .bmAttributes = USB_ENDPOINT_XFER_BULK, }; -static struct usb_endpoint_descriptor fs_subset_out_desc __initdata = { +static struct usb_endpoint_descriptor fs_subset_out_desc = { .bLength = USB_DT_ENDPOINT_SIZE, .bDescriptorType = USB_DT_ENDPOINT, @@ -152,7 +152,7 @@ .bmAttributes = USB_ENDPOINT_XFER_BULK, }; -static struct usb_descriptor_header *fs_eth_function[] __initdata = { +static struct usb_descriptor_header *fs_eth_function[] = { (struct usb_descriptor_header *) &subset_data_intf, (struct usb_descriptor_header *) &mdlm_header_desc, (struct usb_descriptor_header *) &mdlm_desc, @@ -165,7 +165,7 @@ /* high speed support: */ -static struct usb_endpoint_descriptor hs_subset_in_desc __initdata = { +static struct usb_endpoint_descriptor hs_subset_in_desc = { .bLength = USB_DT_ENDPOINT_SIZE, .bDescriptorType = USB_DT_ENDPOINT, @@ -173,7 +173,7 @@ .wMaxPacketSize = cpu_to_le16(512), }; -static struct usb_endpoint_descriptor hs_subset_out_desc __initdata = { +static struct usb_endpoint_descriptor hs_subset_out_desc = { .bLength = USB_DT_ENDPOINT_SIZE, .bDescriptorType = USB_DT_ENDPOINT, @@ -181,7 +181,7 @@ .wMaxPacketSize = cpu_to_le16(512), }; -static struct usb_descriptor_header *hs_eth_function[] __initdata = { +static struct usb_descriptor_header *hs_eth_function[] = { (struct usb_descriptor_header *) &subset_data_intf, (struct usb_descriptor_header *) &mdlm_header_desc, (struct usb_descriptor_header *) &mdlm_desc, @@ -194,7 +194,7 @@ /* super speed support: */ -static struct usb_endpoint_descriptor ss_subset_in_desc __initdata = { +static struct usb_endpoint_descriptor ss_subset_in_desc = { .bLength = USB_DT_ENDPOINT_SIZE, .bDescriptorType = USB_DT_ENDPOINT, @@ -202,7 +202,7 @@ .wMaxPacketSize = cpu_to_le16(1024), }; -static struct usb_endpoint_descriptor ss_subset_out_desc __initdata = { +static struct usb_endpoint_descriptor ss_subset_out_desc = { .bLength = USB_DT_ENDPOINT_SIZE, .bDescriptorType = USB_DT_ENDPOINT, @@ -210,7 +210,7 @@ .wMaxPacketSize = cpu_to_le16(1024), }; -static struct usb_ss_ep_comp_descriptor ss_subset_bulk_comp_desc __initdata = { +static struct usb_ss_ep_comp_descriptor ss_subset_bulk_comp_desc = { .bLength = sizeof ss_subset_bulk_comp_desc, .bDescriptorType = USB_DT_SS_ENDPOINT_COMP, @@ -219,7 +219,7 @@ /* .bmAttributes = 0, */ }; -static struct usb_descriptor_header *ss_eth_function[] __initdata = { +static struct usb_descriptor_header *ss_eth_function[] = { (struct usb_descriptor_header *) &subset_data_intf, (struct usb_descriptor_header *) &mdlm_header_desc, (struct usb_descriptor_header *) &mdlm_desc, @@ -290,7 +290,7 @@ /* serial function driver setup/binding */ -static int __init +static int geth_bind(struct usb_configuration *c, struct usb_function *f) { struct usb_composite_dev *cdev = c->cdev; @@ -370,9 +370,9 @@ usb_free_descriptors(f->hs_descriptors); /* we might as well release our claims on endpoints */ - if (geth->port.out_ep->desc) + if (geth->port.out_ep) geth->port.out_ep->driver_data = NULL; - if (geth->port.in_ep->desc) + if (geth->port.in_ep) geth->port.in_ep->driver_data = NULL; ERROR(cdev, "%s: can't bind, err %d\n", f->name, status); @@ -404,7 +404,7 @@ * Caller must have called @gether_setup(). Caller is also responsible * for calling @gether_cleanup() before module unload. */ -int __init geth_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN]) +int geth_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN]) { struct f_gether *geth; int status; --- linux-3.2.0.orig/drivers/usb/gadget/f_ecm.c +++ linux-3.2.0/drivers/usb/gadget/f_ecm.c @@ -790,9 +790,9 @@ /* we might as well release our claims on endpoints */ if (ecm->notify) ecm->notify->driver_data = NULL; - if (ecm->port.out_ep->desc) + if (ecm->port.out_ep) ecm->port.out_ep->driver_data = NULL; - if (ecm->port.in_ep->desc) + if (ecm->port.in_ep) ecm->port.in_ep->driver_data = NULL; ERROR(cdev, "%s: can't bind, err %d\n", f->name, status); --- linux-3.2.0.orig/drivers/usb/gadget/fsl_udc_core.c +++ linux-3.2.0/drivers/usb/gadget/fsl_udc_core.c @@ -736,6 +736,8 @@ lastreq = list_entry(ep->queue.prev, struct fsl_req, queue); lastreq->tail->next_td_ptr = cpu_to_hc32(req->head->td_dma & DTD_ADDR_MASK); + /* Ensure dTD's next dtd pointer to be updated */ + wmb(); /* Read prime bit, if 1 goto done */ if (fsl_readl(&dr_regs->endpointprime) & bitmask) return; @@ -768,7 +770,7 @@ * @is_last: return flag if it is the last dTD of the request * return: pointer to the built dTD */ static struct ep_td_struct *fsl_build_dtd(struct fsl_req *req, unsigned *length, - dma_addr_t *dma, int *is_last) + dma_addr_t *dma, int *is_last, gfp_t gfp_flags) { u32 swap_temp; struct ep_td_struct *dtd; @@ -777,7 +779,7 @@ *length = min(req->req.length - req->req.actual, (unsigned)EP_MAX_LENGTH_TRANSFER); - dtd = dma_pool_alloc(udc_controller->td_pool, GFP_KERNEL, dma); + dtd = dma_pool_alloc(udc_controller->td_pool, gfp_flags, dma); if (dtd == NULL) return dtd; @@ -827,7 +829,7 @@ } /* Generate dtd chain for a request */ -static int fsl_req_to_dtd(struct fsl_req *req) +static int fsl_req_to_dtd(struct fsl_req *req, gfp_t gfp_flags) { unsigned count; int is_last; @@ -836,7 +838,7 @@ dma_addr_t dma; do { - dtd = fsl_build_dtd(req, &count, &dma, &is_last); + dtd = fsl_build_dtd(req, &count, &dma, &is_last, gfp_flags); if (dtd == NULL) return -ENOMEM; @@ -910,13 +912,11 @@ req->req.actual = 0; req->dtd_count = 0; - spin_lock_irqsave(&udc->lock, flags); - /* build dtds and push them to device queue */ - if (!fsl_req_to_dtd(req)) { + if (!fsl_req_to_dtd(req, gfp_flags)) { + spin_lock_irqsave(&udc->lock, flags); fsl_queue_td(ep, req); } else { - spin_unlock_irqrestore(&udc->lock, flags); return -ENOMEM; } @@ -1295,7 +1295,7 @@ ep_is_in(ep) ? DMA_TO_DEVICE : DMA_FROM_DEVICE); req->mapped = 1; - if (fsl_req_to_dtd(req) == 0) + if (fsl_req_to_dtd(req, GFP_ATOMIC) == 0) fsl_queue_td(ep, req); else return -ENOMEM; @@ -1379,7 +1379,7 @@ req->mapped = 1; /* prime the data phase */ - if ((fsl_req_to_dtd(req) == 0)) + if ((fsl_req_to_dtd(req, GFP_ATOMIC) == 0)) fsl_queue_td(ep, req); else /* no mem */ goto stall; --- linux-3.2.0.orig/drivers/usb/gadget/f_midi.c +++ linux-3.2.0/drivers/usb/gadget/f_midi.c @@ -416,6 +416,7 @@ midi->id = NULL; usb_free_descriptors(f->descriptors); + usb_free_descriptors(f->hs_descriptors); kfree(midi); } --- linux-3.2.0.orig/drivers/usb/gadget/hid.c +++ linux-3.2.0/drivers/usb/gadget/hid.c @@ -60,9 +60,9 @@ /* .bDeviceClass = USB_CLASS_COMM, */ /* .bDeviceSubClass = 0, */ /* .bDeviceProtocol = 0, */ - .bDeviceClass = 0xEF, - .bDeviceSubClass = 2, - .bDeviceProtocol = 1, + .bDeviceClass = USB_CLASS_PER_INTERFACE, + .bDeviceSubClass = 0, + .bDeviceProtocol = 0, /* .bMaxPacketSize0 = f(hardware) */ /* Vendor and product id can be overridden by module parameters. */ --- linux-3.2.0.orig/drivers/usb/gadget/f_rndis.c +++ linux-3.2.0/drivers/usb/gadget/f_rndis.c @@ -802,9 +802,9 @@ /* we might as well release our claims on endpoints */ if (rndis->notify) rndis->notify->driver_data = NULL; - if (rndis->port.out_ep->desc) + if (rndis->port.out_ep) rndis->port.out_ep->driver_data = NULL; - if (rndis->port.in_ep->desc) + if (rndis->port.in_ep) rndis->port.in_ep->driver_data = NULL; ERROR(cdev, "%s: can't bind, err %d\n", f->name, status); --- linux-3.2.0.orig/drivers/usb/gadget/inode.c +++ linux-3.2.0/drivers/usb/gadget/inode.c @@ -1043,6 +1043,8 @@ // FIXME don't call this with the spinlock held ... if (copy_to_user (buf, dev->req->buf, len)) retval = -EFAULT; + else + retval = len; clean_req (dev->gadget->ep0, dev->req); /* NOTE userspace can't yet choose to stall */ } --- linux-3.2.0.orig/drivers/usb/gadget/f_eem.c +++ linux-3.2.0/drivers/usb/gadget/f_eem.c @@ -319,10 +319,9 @@ if (f->hs_descriptors) usb_free_descriptors(f->hs_descriptors); - /* we might as well release our claims on endpoints */ - if (eem->port.out_ep->desc) + if (eem->port.out_ep) eem->port.out_ep->driver_data = NULL; - if (eem->port.in_ep->desc) + if (eem->port.in_ep) eem->port.in_ep->driver_data = NULL; ERROR(cdev, "%s: can't bind, err %d\n", f->name, status); --- linux-3.2.0.orig/drivers/usb/gadget/f_loopback.c +++ linux-3.2.0/drivers/usb/gadget/f_loopback.c @@ -418,7 +418,7 @@ /* support autoresume for remote wakeup testing */ if (autoresume) - sourcesink_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP; + loopback_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP; /* support OTG systems */ if (gadget_is_otg(cdev->gadget)) { --- linux-3.2.0.orig/drivers/usb/gadget/f_fs.c +++ linux-3.2.0/drivers/usb/gadget/f_fs.c @@ -712,7 +712,7 @@ if (code == FUNCTIONFS_INTERFACE_REVMAP) { struct ffs_function *func = ffs->func; ret = func ? ffs_func_revmap_intf(func, value) : -ENODEV; - } else if (gadget->ops->ioctl) { + } else if (gadget && gadget->ops->ioctl) { ret = gadget->ops->ioctl(gadget, code, value); } else { ret = -ENOTTY; --- linux-3.2.0.orig/drivers/usb/gadget/langwell_udc.c +++ linux-3.2.0/drivers/usb/gadget/langwell_udc.c @@ -1522,8 +1522,7 @@ /* stop all USB activities */ -static void stop_activity(struct langwell_udc *dev, - struct usb_gadget_driver *driver) +static void stop_activity(struct langwell_udc *dev) { struct langwell_ep *ep; dev_dbg(&dev->pdev->dev, "---> %s()\n", __func__); @@ -1535,9 +1534,9 @@ } /* report disconnect; the driver is already quiesced */ - if (driver) { + if (dev->driver) { spin_unlock(&dev->lock); - driver->disconnect(&dev->gadget); + dev->driver->disconnect(&dev->gadget); spin_lock(&dev->lock); } @@ -1925,11 +1924,10 @@ /* stop all usb activities */ dev->gadget.speed = USB_SPEED_UNKNOWN; - stop_activity(dev, driver); - spin_unlock_irqrestore(&dev->lock, flags); - dev->gadget.dev.driver = NULL; dev->driver = NULL; + stop_activity(dev); + spin_unlock_irqrestore(&dev->lock, flags); device_remove_file(&dev->pdev->dev, &dev_attr_function); @@ -2733,7 +2731,7 @@ dev->bus_reset = 1; /* reset all the queues, stop all USB activities */ - stop_activity(dev, dev->driver); + stop_activity(dev); dev->usb_state = USB_STATE_DEFAULT; } else { dev_vdbg(&dev->pdev->dev, "device controller reset\n"); @@ -2741,7 +2739,7 @@ langwell_udc_reset(dev); /* reset all the queues, stop all USB activities */ - stop_activity(dev, dev->driver); + stop_activity(dev); /* reset ep0 dQH and endptctrl */ ep0_reset(dev); @@ -3367,7 +3365,7 @@ spin_lock_irq(&dev->lock); /* stop all usb activities */ - stop_activity(dev, dev->driver); + stop_activity(dev); spin_unlock_irq(&dev->lock); /* free dTD dma_pool and dQH */ --- linux-3.2.0.orig/drivers/usb/gadget/f_phonet.c +++ linux-3.2.0/drivers/usb/gadget/f_phonet.c @@ -532,7 +532,7 @@ req = usb_ep_alloc_request(fp->out_ep, GFP_KERNEL); if (!req) - goto err; + goto err_req; req->complete = pn_rx_complete; fp->out_reqv[i] = req; @@ -541,14 +541,18 @@ /* Outgoing USB requests */ fp->in_req = usb_ep_alloc_request(fp->in_ep, GFP_KERNEL); if (!fp->in_req) - goto err; + goto err_req; INFO(cdev, "USB CDC Phonet function\n"); INFO(cdev, "using %s, OUT %s, IN %s\n", cdev->gadget->name, fp->out_ep->name, fp->in_ep->name); return 0; +err_req: + for (i = 0; i < phonet_rxq_size && fp->out_reqv[i]; i++) + usb_ep_free_request(fp->out_ep, fp->out_reqv[i]); err: + if (fp->out_ep) fp->out_ep->driver_data = NULL; if (fp->in_ep) --- linux-3.2.0.orig/drivers/usb/gadget/u_ether.c +++ linux-3.2.0/drivers/usb/gadget/u_ether.c @@ -669,6 +669,8 @@ spin_lock_irqsave(&dev->lock, flags); if (dev->port_usb) { struct gether *link = dev->port_usb; + const struct usb_endpoint_descriptor *in; + const struct usb_endpoint_descriptor *out; if (link->close) link->close(link); @@ -682,10 +684,14 @@ * their own pace; the network stack can handle old packets. * For the moment we leave this here, since it works. */ + in = link->in_ep->desc; + out = link->out_ep->desc; usb_ep_disable(link->in_ep); usb_ep_disable(link->out_ep); if (netif_carrier_ok(net)) { DBG(dev, "host still using in/out endpoints\n"); + link->in_ep->desc = in; + link->out_ep->desc = out; usb_ep_enable(link->in_ep); usb_ep_enable(link->out_ep); } @@ -796,12 +802,6 @@ SET_ETHTOOL_OPS(net, &ops); - /* two kinds of host-initiated state changes: - * - iff DATA transfer is active, carrier is "on" - * - tx queueing enabled if open *and* carrier is "on" - */ - netif_carrier_off(net); - dev->gadget = g; SET_NETDEV_DEV(net, &g->dev); SET_NETDEV_DEVTYPE(net, &gadget_type); @@ -815,6 +815,12 @@ INFO(dev, "HOST MAC %pM\n", dev->host_mac); the_dev = dev; + + /* two kinds of host-initiated state changes: + * - iff DATA transfer is active, carrier is "on" + * - tx queueing enabled if open *and* carrier is "on" + */ + netif_carrier_off(net); } return status; --- linux-3.2.0.orig/drivers/usb/gadget/f_uvc.c +++ linux-3.2.0/drivers/usb/gadget/f_uvc.c @@ -335,7 +335,6 @@ return -ENOMEM; video->parent = &cdev->gadget->dev; - video->minor = -1; video->fops = &uvc_v4l2_fops; video->release = video_device_release; strncpy(video->name, cdev->gadget->name, sizeof(video->name)); @@ -462,23 +461,12 @@ INFO(cdev, "uvc_function_unbind\n"); - if (uvc->vdev) { - if (uvc->vdev->minor == -1) - video_device_release(uvc->vdev); - else - video_unregister_device(uvc->vdev); - uvc->vdev = NULL; - } - - if (uvc->control_ep) - uvc->control_ep->driver_data = NULL; - if (uvc->video.ep) - uvc->video.ep->driver_data = NULL; + video_unregister_device(uvc->vdev); + uvc->control_ep->driver_data = NULL; + uvc->video.ep->driver_data = NULL; - if (uvc->control_req) { - usb_ep_free_request(cdev->gadget->ep0, uvc->control_req); - kfree(uvc->control_buf); - } + usb_ep_free_request(cdev->gadget->ep0, uvc->control_req); + kfree(uvc->control_buf); kfree(f->descriptors); kfree(f->hs_descriptors); @@ -563,7 +551,22 @@ return 0; error: - uvc_function_unbind(c, f); + if (uvc->vdev) + video_device_release(uvc->vdev); + + if (uvc->control_ep) + uvc->control_ep->driver_data = NULL; + if (uvc->video.ep) + uvc->video.ep->driver_data = NULL; + + if (uvc->control_req) { + usb_ep_free_request(cdev->gadget->ep0, uvc->control_req); + kfree(uvc->control_buf); + } + + kfree(f->descriptors); + kfree(f->hs_descriptors); + kfree(f->ss_descriptors); return ret; } --- linux-3.2.0.orig/drivers/usb/gadget/f_ncm.c +++ linux-3.2.0/drivers/usb/gadget/f_ncm.c @@ -1259,9 +1259,9 @@ /* we might as well release our claims on endpoints */ if (ncm->notify) ncm->notify->driver_data = NULL; - if (ncm->port.out_ep->desc) + if (ncm->port.out_ep) ncm->port.out_ep->driver_data = NULL; - if (ncm->port.in_ep->desc) + if (ncm->port.in_ep) ncm->port.in_ep->driver_data = NULL; ERROR(cdev, "%s: can't bind, err %d\n", f->name, status); --- linux-3.2.0.orig/drivers/usb/gadget/dummy_hcd.c +++ linux-3.2.0/drivers/usb/gadget/dummy_hcd.c @@ -126,10 +126,7 @@ static const char *const ep_name [] = { ep0name, /* everyone has ep0 */ - /* act like a net2280: high speed, six configurable endpoints */ - "ep-a", "ep-b", "ep-c", "ep-d", "ep-e", "ep-f", - - /* or like pxa250: fifteen fixed function endpoints */ + /* act like a pxa250: fifteen fixed function endpoints */ "ep1in-bulk", "ep2out-bulk", "ep3in-iso", "ep4out-iso", "ep5in-int", "ep6in-bulk", "ep7out-bulk", "ep8in-iso", "ep9out-iso", "ep10in-int", "ep11in-bulk", "ep12out-bulk", "ep13in-iso", "ep14out-iso", @@ -137,6 +134,10 @@ /* or like sa1100: two fixed function endpoints */ "ep1out-bulk", "ep2in-bulk", + + /* and now some generic EPs so we have enough in multi config */ + "ep3out", "ep4in", "ep5out", "ep6out", "ep7in", "ep8out", "ep9in", + "ep10out", "ep11out", "ep12in", "ep13out", "ep14in", "ep15out", }; #define DUMMY_ENDPOINTS ARRAY_SIZE(ep_name) @@ -925,7 +926,6 @@ dum->driver = NULL; - dummy_pullup(&dum->gadget, 0); return 0; } @@ -2293,10 +2293,8 @@ hs_hcd->has_tt = 1; retval = usb_add_hcd(hs_hcd, 0, 0); - if (retval != 0) { - usb_put_hcd(hs_hcd); - return retval; - } + if (retval) + goto put_usb2_hcd; if (mod_data.is_super_speed) { ss_hcd = usb_create_shared_hcd(&dummy_hcd, &pdev->dev, @@ -2315,6 +2313,8 @@ put_usb3_hcd: usb_put_hcd(ss_hcd); dealloc_usb2_hcd: + usb_remove_hcd(hs_hcd); +put_usb2_hcd: usb_put_hcd(hs_hcd); the_controller.hs_hcd = the_controller.ss_hcd = NULL; return retval; --- linux-3.2.0.orig/drivers/usb/gadget/f_mass_storage.c +++ linux-3.2.0/drivers/usb/gadget/f_mass_storage.c @@ -512,6 +512,7 @@ /* Caller must hold fsg->lock */ static void wakeup_thread(struct fsg_common *common) { + smp_wmb(); /* ensure the write of bh->state is complete */ /* Tell the main thread that something has happened */ common->thread_wakeup_needed = 1; if (common->thread_task) @@ -731,6 +732,7 @@ } __set_current_state(TASK_RUNNING); common->thread_wakeup_needed = 0; + smp_rmb(); /* ensure the latest bh->state is visible */ return rc; } @@ -2182,7 +2184,7 @@ common->data_size_from_cmnd = 0; sprintf(unknown, "Unknown x%02x", common->cmnd[0]); reply = check_command(common, common->cmnd_size, - DATA_DIR_UNKNOWN, 0xff, 0, unknown); + DATA_DIR_UNKNOWN, ~0, 0, unknown); if (reply == 0) { common->curlun->sense_data = SS_INVALID_COMMAND; reply = -EINVAL; --- linux-3.2.0.orig/drivers/usb/gadget/uvc_v4l2.c +++ linux-3.2.0/drivers/usb/gadget/uvc_v4l2.c @@ -39,7 +39,7 @@ if (data->length < 0) return usb_ep_set_halt(cdev->gadget->ep0); - req->length = min(uvc->event_length, data->length); + req->length = min_t(unsigned int, uvc->event_length, data->length); req->zero = data->length < uvc->event_length; req->dma = DMA_ADDR_INVALID; --- linux-3.2.0.orig/drivers/usb/gadget/pch_udc.c +++ linux-3.2.0/drivers/usb/gadget/pch_udc.c @@ -311,6 +311,7 @@ * @registered: driver regsitered with system * @suspended: driver in suspended state * @connected: gadget driver associated + * @vbus_session: required vbus_session state * @set_cfg_not_acked: pending acknowledgement 4 setup * @waiting_zlp_ack: pending acknowledgement 4 ZLP * @data_requests: DMA pool for data requests @@ -337,6 +338,7 @@ registered:1, suspended:1, connected:1, + vbus_session:1, set_cfg_not_acked:1, waiting_zlp_ack:1; struct pci_pool *data_requests; @@ -554,6 +556,29 @@ } /** + * pch_udc_reconnect() - This API initializes usb device controller, + * and clear the disconnect status. + * @dev: Reference to pch_udc_regs structure + */ +static void pch_udc_init(struct pch_udc_dev *dev); +static void pch_udc_reconnect(struct pch_udc_dev *dev) +{ + pch_udc_init(dev); + + /* enable device interrupts */ + /* pch_udc_enable_interrupts() */ + pch_udc_bit_clr(dev, UDC_DEVIRQMSK_ADDR, + UDC_DEVINT_UR | UDC_DEVINT_ENUM); + + /* Clear the disconnect */ + pch_udc_bit_set(dev, UDC_DEVCTL_ADDR, UDC_DEVCTL_RES); + pch_udc_bit_clr(dev, UDC_DEVCTL_ADDR, UDC_DEVCTL_SD); + mdelay(1); + /* Resume USB signalling */ + pch_udc_bit_clr(dev, UDC_DEVCTL_ADDR, UDC_DEVCTL_RES); +} + +/** * pch_udc_vbus_session() - set or clearr the disconnect status. * @dev: Reference to pch_udc_regs structure * @is_active: Parameter specifying the action @@ -563,10 +588,18 @@ static inline void pch_udc_vbus_session(struct pch_udc_dev *dev, int is_active) { - if (is_active) - pch_udc_clear_disconnect(dev); - else + if (is_active) { + pch_udc_reconnect(dev); + dev->vbus_session = 1; + } else { + if (dev->driver && dev->driver->disconnect) { + spin_unlock(&dev->lock); + dev->driver->disconnect(&dev->gadget); + spin_lock(&dev->lock); + } pch_udc_set_disconnect(dev); + dev->vbus_session = 0; + } } /** @@ -1126,7 +1159,17 @@ if (!gadget) return -EINVAL; dev = container_of(gadget, struct pch_udc_dev, gadget); - pch_udc_vbus_session(dev, is_on); + if (is_on) { + pch_udc_reconnect(dev); + } else { + if (dev->driver && dev->driver->disconnect) { + spin_unlock(&dev->lock); + dev->driver->disconnect(&dev->gadget); + spin_lock(&dev->lock); + } + pch_udc_set_disconnect(dev); + } + return 0; } @@ -2335,8 +2378,11 @@ /* Complete request queue */ empty_req_queue(ep); } - if (dev->driver && dev->driver->disconnect) + if (dev->driver && dev->driver->disconnect) { + spin_unlock(&dev->lock); dev->driver->disconnect(&dev->gadget); + spin_lock(&dev->lock); + } } /** @@ -2371,6 +2417,11 @@ pch_udc_set_dma(dev, DMA_DIR_TX); pch_udc_set_dma(dev, DMA_DIR_RX); pch_udc_ep_set_rrdy(&(dev->ep[UDC_EP0OUT_IDX])); + + /* enable device interrupts */ + pch_udc_enable_interrupts(dev, UDC_DEVINT_UR | UDC_DEVINT_US | + UDC_DEVINT_ES | UDC_DEVINT_ENUM | + UDC_DEVINT_SI | UDC_DEVINT_SC); } /** @@ -2472,8 +2523,24 @@ if (dev_intr & UDC_DEVINT_SC) pch_udc_svc_cfg_interrupt(dev); /* USB Suspend interrupt */ - if (dev_intr & UDC_DEVINT_US) + if (dev_intr & UDC_DEVINT_US) { + if (dev->driver + && dev->driver->suspend) { + spin_unlock(&dev->lock); + dev->driver->suspend(&dev->gadget); + spin_lock(&dev->lock); + } + + if (dev->vbus_session == 0) { + if (dev->driver && dev->driver->disconnect) { + spin_unlock(&dev->lock); + dev->driver->disconnect(&dev->gadget); + spin_lock(&dev->lock); + } + pch_udc_reconnect(dev); + } dev_dbg(&dev->pdev->dev, "USB_SUSPEND\n"); + } /* Clear the SOF interrupt, if enabled */ if (dev_intr & UDC_DEVINT_SOF) dev_dbg(&dev->pdev->dev, "SOF\n"); @@ -2499,6 +2566,14 @@ dev_intr = pch_udc_read_device_interrupts(dev); ep_intr = pch_udc_read_ep_interrupts(dev); + /* For a hot plug, this find that the controller is hung up. */ + if (dev_intr == ep_intr) + if (dev_intr == pch_udc_readl(dev, UDC_DEVCFG_ADDR)) { + dev_dbg(&dev->pdev->dev, "UDC: Hung up\n"); + /* The controller is reset */ + pch_udc_writel(dev, UDC_SRST, UDC_SRST_ADDR); + return IRQ_HANDLED; + } if (dev_intr) /* Clear device interrupts */ pch_udc_write_device_interrupts(dev, dev_intr); @@ -2912,8 +2987,10 @@ } pch_udc = dev; /* initialize the hardware */ - if (pch_udc_pcd_init(dev)) + if (pch_udc_pcd_init(dev)) { + retval = -ENODEV; goto finished; + } if (request_irq(pdev->irq, pch_udc_isr, IRQF_SHARED, KBUILD_MODNAME, dev)) { dev_err(&pdev->dev, "%s: request_irq(%d) fail\n", __func__, --- linux-3.2.0.orig/drivers/usb/gadget/udc-core.c +++ linux-3.2.0/drivers/usb/gadget/udc-core.c @@ -211,9 +211,9 @@ if (udc_is_newstyle(udc)) { udc->driver->disconnect(udc->gadget); - udc->driver->unbind(udc->gadget); - usb_gadget_udc_stop(udc->gadget, udc->driver); usb_gadget_disconnect(udc->gadget); + udc->driver->unbind(udc->gadget); + usb_gadget_udc_stop(udc->gadget, NULL); } else { usb_gadget_stop(udc->gadget, udc->driver); } @@ -359,9 +359,13 @@ struct usb_udc *udc = container_of(dev, struct usb_udc, dev); if (sysfs_streq(buf, "connect")) { + if (udc_is_newstyle(udc)) + usb_gadget_udc_start(udc->gadget, udc->driver); usb_gadget_connect(udc->gadget); } else if (sysfs_streq(buf, "disconnect")) { usb_gadget_disconnect(udc->gadget); + if (udc_is_newstyle(udc)) + usb_gadget_udc_stop(udc->gadget, udc->driver); } else { dev_err(dev, "unsupported command '%s'\n", buf); return -EINVAL; --- linux-3.2.0.orig/drivers/usb/gadget/file_storage.c +++ linux-3.2.0/drivers/usb/gadget/file_storage.c @@ -2569,7 +2569,7 @@ fsg->data_size_from_cmnd = 0; sprintf(unknown, "Unknown x%02x", fsg->cmnd[0]); if ((reply = check_command(fsg, fsg->cmnd_size, - DATA_DIR_UNKNOWN, 0xff, 0, unknown)) == 0) { + DATA_DIR_UNKNOWN, ~0, 0, unknown)) == 0) { fsg->curlun->sense_data = SS_INVALID_COMMAND; reply = -EINVAL; } --- linux-3.2.0.orig/drivers/usb/dwc3/core.h +++ linux-3.2.0/drivers/usb/dwc3/core.h @@ -643,8 +643,8 @@ struct dwc3_event_type { u32 is_devspec:1; - u32 type:6; - u32 reserved8_31:25; + u32 type:7; + u32 reserved8_31:24; } __packed; #define DWC3_DEPEVT_XFERCOMPLETE 0x01 --- linux-3.2.0.orig/drivers/usb/dwc3/gadget.c +++ linux-3.2.0/drivers/usb/dwc3/gadget.c @@ -449,16 +449,16 @@ switch (usb_endpoint_type(desc)) { case USB_ENDPOINT_XFER_CONTROL: - strncat(dep->name, "-control", sizeof(dep->name)); + strlcat(dep->name, "-control", sizeof(dep->name)); break; case USB_ENDPOINT_XFER_ISOC: - strncat(dep->name, "-isoc", sizeof(dep->name)); + strlcat(dep->name, "-isoc", sizeof(dep->name)); break; case USB_ENDPOINT_XFER_BULK: - strncat(dep->name, "-bulk", sizeof(dep->name)); + strlcat(dep->name, "-bulk", sizeof(dep->name)); break; case USB_ENDPOINT_XFER_INT: - strncat(dep->name, "-int", sizeof(dep->name)); + strlcat(dep->name, "-int", sizeof(dep->name)); break; default: dev_err(dwc->dev, "invalid endpoint transfer type\n"); @@ -1217,6 +1217,7 @@ __dwc3_gadget_ep_disable(dwc->eps[0]); err0: + dwc->gadget_driver = NULL; spin_unlock_irqrestore(&dwc->lock, flags); return ret; @@ -1277,6 +1278,7 @@ if (epnum == 0 || epnum == 1) { dep->endpoint.maxpacket = 512; + dep->endpoint.maxburst = 1; dep->endpoint.ops = &dwc3_gadget_ep0_ops; if (!epnum) dwc->gadget.ep0 = &dep->endpoint; @@ -1309,10 +1311,19 @@ for (epnum = 0; epnum < DWC3_ENDPOINTS_NUM; epnum++) { dep = dwc->eps[epnum]; - dwc3_free_trb_pool(dep); - - if (epnum != 0 && epnum != 1) + /* + * Physical endpoints 0 and 1 are special; they form the + * bi-directional USB endpoint 0. + * + * For those two physical endpoints, we don't allocate a TRB + * pool nor do we add them the endpoints list. Due to that, we + * shouldn't do these two operations otherwise we would end up + * with all sorts of bugs when removing dwc3.ko. + */ + if (epnum != 0 && epnum != 1) { + dwc3_free_trb_pool(dep); list_del(&dep->endpoint.ep_list); + } kfree(dep); } @@ -1405,7 +1416,7 @@ static void dwc3_gadget_start_isoc(struct dwc3 *dwc, struct dwc3_ep *dep, const struct dwc3_event_depevt *event) { - u32 uf; + u32 uf, mask; if (list_empty(&dep->request_list)) { dev_vdbg(dwc->dev, "ISOC ep %s run out for requests.\n", @@ -1413,16 +1424,10 @@ return; } - if (event->parameters) { - u32 mask; - - mask = ~(dep->interval - 1); - uf = event->parameters & mask; - /* 4 micro frames in the future */ - uf += dep->interval * 4; - } else { - uf = 0; - } + mask = ~(dep->interval - 1); + uf = event->parameters & mask; + /* 4 micro frames in the future */ + uf += dep->interval * 4; __dwc3_gadget_kick_transfer(dep, uf, 1); } --- linux-3.2.0.orig/drivers/usb/dwc3/ep0.c +++ linux-3.2.0/drivers/usb/dwc3/ep0.c @@ -149,20 +149,14 @@ direction = !!(dep->flags & DWC3_EP0_DIR_IN); - if (dwc->ep0state == EP0_STATUS_PHASE) { - type = dwc->three_stage_setup - ? DWC3_TRBCTL_CONTROL_STATUS3 - : DWC3_TRBCTL_CONTROL_STATUS2; - } else if (dwc->ep0state == EP0_DATA_PHASE) { - type = DWC3_TRBCTL_CONTROL_DATA; - } else { - /* should never happen */ - WARN_ON(1); + if (dwc->ep0state != EP0_DATA_PHASE) { + dev_WARN(dwc->dev, "Unexpected pending request\n"); return 0; } ret = dwc3_ep0_start_trans(dwc, direction, - req->request.dma, req->request.length, type); + req->request.dma, req->request.length, + DWC3_TRBCTL_CONTROL_DATA); dep->flags &= ~(DWC3_EP_PENDING_REQUEST | DWC3_EP0_DIR_IN); } @@ -578,9 +572,10 @@ dwc->ep0_bounced = false; } else { transferred = ur->length - trb.length; - ur->actual += transferred; } + ur->actual += transferred; + if ((epnum & 1) && ur->actual < ur->length) { /* for some reason we did not get everything out */ --- linux-3.2.0.orig/drivers/usb/serial/cypress_m8.h +++ linux-3.2.0/drivers/usb/serial/cypress_m8.h @@ -24,6 +24,10 @@ #define VENDOR_ID_CYPRESS 0x04b4 #define PRODUCT_ID_CYPHIDCOM 0x5500 +/* FRWD Dongle - a GPS sports watch */ +#define VENDOR_ID_FRWD 0x6737 +#define PRODUCT_ID_CYPHIDCOM_FRWD 0x0001 + /* Powercom UPS, chip CY7C63723 */ #define VENDOR_ID_POWERCOM 0x0d9f #define PRODUCT_ID_UPS 0x0002 --- linux-3.2.0.orig/drivers/usb/serial/mos7840.c +++ linux-3.2.0/drivers/usb/serial/mos7840.c @@ -174,6 +174,7 @@ #define CLK_MULTI_REGISTER ((__u16)(0x02)) #define CLK_START_VALUE_REGISTER ((__u16)(0x03)) +#define GPIO_REGISTER ((__u16)(0x07)) #define SERIAL_LCR_DLAB ((__u16)(0x0080)) @@ -234,14 +235,11 @@ int port_num; /*Actual port number in the device(1,2,etc) */ struct urb *write_urb; /* write URB for this port */ struct urb *read_urb; /* read URB for this port */ - struct urb *int_urb; __u8 shadowLCR; /* last LCR value received */ __u8 shadowMCR; /* last MCR value received */ char open; char open_ports; - char zombie; wait_queue_head_t wait_chase; /* for handling sleeping while waiting for chase to finish */ - wait_queue_head_t delta_msr_wait; /* for handling sleeping while waiting for msr change to happen */ int delta_msr_cond; struct async_icount icount; struct usb_serial_port *port; /* loop back to the owner of this object */ @@ -454,6 +452,9 @@ icount->rng++; smp_wmb(); } + + mos7840_port->delta_msr_cond = 1; + wake_up_interruptible(&port->port->delta_msr_wait); } } @@ -504,7 +505,6 @@ unsigned char *data; struct moschip_port *mos7840_port; __u8 regval = 0x0; - int result = 0; int status = urb->status; mos7840_port = urb->context; @@ -523,7 +523,7 @@ default: dbg("%s - nonzero urb status received: %d", __func__, status); - goto exit; + return; } dbg("%s urb buffer size is %d", __func__, urb->actual_length); @@ -536,17 +536,6 @@ mos7840_handle_new_msr(mos7840_port, regval); else if (mos7840_port->MsrLsr == 1) mos7840_handle_new_lsr(mos7840_port, regval); - -exit: - spin_lock(&mos7840_port->pool_lock); - if (!mos7840_port->zombie) - result = usb_submit_urb(mos7840_port->int_urb, GFP_ATOMIC); - spin_unlock(&mos7840_port->pool_lock); - if (result) { - dev_err(&urb->dev->dev, - "%s - Error %d submitting interrupt urb\n", - __func__, result); - } } static int mos7840_get_reg(struct moschip_port *mcs, __u16 Wval, __u16 reg, @@ -654,14 +643,7 @@ wreg = MODEM_STATUS_REGISTER; break; } - spin_lock(&mos7840_port->pool_lock); - if (!mos7840_port->zombie) { - rv = mos7840_get_reg(mos7840_port, wval, wreg, &Data); - } else { - spin_unlock(&mos7840_port->pool_lock); - return; - } - spin_unlock(&mos7840_port->pool_lock); + rv = mos7840_get_reg(mos7840_port, wval, wreg, &Data); } } } @@ -943,20 +925,20 @@ status = mos7840_get_reg_sync(port, mos7840_port->SpRegOffset, &Data); if (status < 0) { dbg("Reading Spreg failed"); - return -1; + goto err; } Data |= 0x80; status = mos7840_set_reg_sync(port, mos7840_port->SpRegOffset, Data); if (status < 0) { dbg("writing Spreg failed"); - return -1; + goto err; } Data &= ~0x80; status = mos7840_set_reg_sync(port, mos7840_port->SpRegOffset, Data); if (status < 0) { dbg("writing Spreg failed"); - return -1; + goto err; } /* End of block to be checked */ @@ -965,7 +947,7 @@ &Data); if (status < 0) { dbg("Reading Controlreg failed"); - return -1; + goto err; } Data |= 0x08; /* Driver done bit */ Data |= 0x20; /* rx_disable */ @@ -973,7 +955,7 @@ mos7840_port->ControlRegOffset, Data); if (status < 0) { dbg("writing Controlreg failed"); - return -1; + goto err; } /* do register settings here */ /* Set all regs to the device default values. */ @@ -984,21 +966,21 @@ status = mos7840_set_uart_reg(port, INTERRUPT_ENABLE_REGISTER, Data); if (status < 0) { dbg("disabling interrupts failed"); - return -1; + goto err; } /* Set FIFO_CONTROL_REGISTER to the default value */ Data = 0x00; status = mos7840_set_uart_reg(port, FIFO_CONTROL_REGISTER, Data); if (status < 0) { dbg("Writing FIFO_CONTROL_REGISTER failed"); - return -1; + goto err; } Data = 0xcf; status = mos7840_set_uart_reg(port, FIFO_CONTROL_REGISTER, Data); if (status < 0) { dbg("Writing FIFO_CONTROL_REGISTER failed"); - return -1; + goto err; } Data = 0x03; @@ -1103,14 +1085,25 @@ mos7840_port->read_urb = port->read_urb; /* set up our bulk in urb */ - - usb_fill_bulk_urb(mos7840_port->read_urb, - serial->dev, - usb_rcvbulkpipe(serial->dev, - port->bulk_in_endpointAddress), - port->bulk_in_buffer, - mos7840_port->read_urb->transfer_buffer_length, - mos7840_bulk_in_callback, mos7840_port); + if ((serial->num_ports == 2) + && ((((__u16)port->number - + (__u16)(port->serial->minor)) % 2) != 0)) { + usb_fill_bulk_urb(mos7840_port->read_urb, + serial->dev, + usb_rcvbulkpipe(serial->dev, + (port->bulk_in_endpointAddress) + 2), + port->bulk_in_buffer, + mos7840_port->read_urb->transfer_buffer_length, + mos7840_bulk_in_callback, mos7840_port); + } else { + usb_fill_bulk_urb(mos7840_port->read_urb, + serial->dev, + usb_rcvbulkpipe(serial->dev, + port->bulk_in_endpointAddress), + port->bulk_in_buffer, + mos7840_port->read_urb->transfer_buffer_length, + mos7840_bulk_in_callback, mos7840_port); + } dbg("mos7840_open: bulkin endpoint is %d", port->bulk_in_endpointAddress); @@ -1124,7 +1117,6 @@ /* initialize our wait queues */ init_waitqueue_head(&mos7840_port->wait_chase); - init_waitqueue_head(&mos7840_port->delta_msr_wait); /* initialize our icount structure */ memset(&(mos7840_port->icount), 0x00, sizeof(mos7840_port->icount)); @@ -1144,7 +1136,15 @@ dbg ("%s leave", __func__); return 0; - +err: + for (j = 0; j < NUM_URBS; ++j) { + urb = mos7840_port->write_urb_pool[j]; + if (!urb) + continue; + kfree(urb->transfer_buffer); + usb_free_urb(urb); + } + return status; } /***************************************************************************** @@ -1179,9 +1179,12 @@ } spin_lock_irqsave(&mos7840_port->pool_lock, flags); - for (i = 0; i < NUM_URBS; ++i) - if (mos7840_port->busy[i]) - chars += URB_TRANSFER_BUFFER_SIZE; + for (i = 0; i < NUM_URBS; ++i) { + if (mos7840_port->busy[i]) { + struct urb *urb = mos7840_port->write_urb_pool[i]; + chars += urb->transfer_buffer_length; + } + } spin_unlock_irqrestore(&mos7840_port->pool_lock, flags); dbg("%s - returns %d", __func__, chars); return chars; @@ -1521,13 +1524,25 @@ memcpy(urb->transfer_buffer, current_position, transfer_size); /* fill urb with data and submit */ - usb_fill_bulk_urb(urb, - serial->dev, - usb_sndbulkpipe(serial->dev, - port->bulk_out_endpointAddress), - urb->transfer_buffer, - transfer_size, - mos7840_bulk_out_data_callback, mos7840_port); + if ((serial->num_ports == 2) + && ((((__u16)port->number - + (__u16)(port->serial->minor)) % 2) != 0)) { + usb_fill_bulk_urb(urb, + serial->dev, + usb_sndbulkpipe(serial->dev, + (port->bulk_out_endpointAddress) + 2), + urb->transfer_buffer, + transfer_size, + mos7840_bulk_out_data_callback, mos7840_port); + } else { + usb_fill_bulk_urb(urb, + serial->dev, + usb_sndbulkpipe(serial->dev, + port->bulk_out_endpointAddress), + urb->transfer_buffer, + transfer_size, + mos7840_bulk_out_data_callback, mos7840_port); + } data1 = urb->transfer_buffer; dbg("bulkout endpoint is %d", port->bulk_out_endpointAddress); @@ -1840,7 +1855,7 @@ } else { #ifdef HW_flow_control - / *setting h/w flow control bit to 0 */ + /* setting h/w flow control bit to 0 */ Data = 0xb; mos7840_port->shadowMCR = Data; status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER, @@ -2067,8 +2082,6 @@ mos7840_port->read_urb_busy = false; } } - wake_up(&mos7840_port->delta_msr_wait); - mos7840_port->delta_msr_cond = 1; dbg("mos7840_change_port_settings mos7840_port->shadowLCR is End %x", mos7840_port->shadowLCR); } @@ -2278,13 +2291,18 @@ while (1) { /* interruptible_sleep_on(&mos7840_port->delta_msr_wait); */ mos7840_port->delta_msr_cond = 0; - wait_event_interruptible(mos7840_port->delta_msr_wait, - (mos7840_port-> + wait_event_interruptible(port->delta_msr_wait, + (port->serial->disconnected || + mos7840_port-> delta_msr_cond == 1)); /* see if a signal did it */ if (signal_pending(current)) return -ERESTARTSYS; + + if (port->serial->disconnected) + return -EIO; + cnow = mos7840_port->icount; smp_rmb(); if (cnow.rng == cprev.rng && cnow.dsr == cprev.dsr && @@ -2309,19 +2327,26 @@ static int mos7840_calc_num_ports(struct usb_serial *serial) { - int mos7840_num_ports = 0; + __u16 Data = 0x00; + int ret = 0; + int mos7840_num_ports; - dbg("numberofendpoints: cur %d, alt %d", - (int)serial->interface->cur_altsetting->desc.bNumEndpoints, - (int)serial->interface->altsetting->desc.bNumEndpoints); - if (serial->interface->cur_altsetting->desc.bNumEndpoints == 5) { - mos7840_num_ports = serial->num_ports = 2; - } else if (serial->interface->cur_altsetting->desc.bNumEndpoints == 9) { + ret = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0), + MCS_RDREQ, MCS_RD_RTYPE, 0, GPIO_REGISTER, &Data, + VENDOR_READ_LENGTH, MOS_WDR_TIMEOUT); + + if ((Data & 0x01) == 0) { + mos7840_num_ports = 2; + serial->num_bulk_in = 2; + serial->num_bulk_out = 2; + serial->num_ports = 2; + } else { + mos7840_num_ports = 4; serial->num_bulk_in = 4; serial->num_bulk_out = 4; - mos7840_num_ports = serial->num_ports = 4; + serial->num_ports = 4; } - dbg ("mos7840_num_ports = %d", mos7840_num_ports); + return mos7840_num_ports; } @@ -2560,7 +2585,6 @@ kfree(mos7840_port->ctrl_buf); usb_free_urb(mos7840_port->control_urb); kfree(mos7840_port); - serial->port[i] = NULL; } return status; } @@ -2573,7 +2597,6 @@ static void mos7840_disconnect(struct usb_serial *serial) { int i; - unsigned long flags; struct moschip_port *mos7840_port; dbg("%s", " disconnect :entering.........."); @@ -2591,9 +2614,6 @@ mos7840_port = mos7840_get_port_private(serial->port[i]); dbg ("mos7840_port %d = %p", i, mos7840_port); if (mos7840_port) { - spin_lock_irqsave(&mos7840_port->pool_lock, flags); - mos7840_port->zombie = 1; - spin_unlock_irqrestore(&mos7840_port->pool_lock, flags); usb_kill_urb(mos7840_port->control_urb); } } @@ -2627,6 +2647,7 @@ mos7840_port = mos7840_get_port_private(serial->port[i]); dbg("mos7840_port %d = %p", i, mos7840_port); if (mos7840_port) { + usb_free_urb(mos7840_port->control_urb); kfree(mos7840_port->ctrl_buf); kfree(mos7840_port->dr); kfree(mos7840_port); --- linux-3.2.0.orig/drivers/usb/serial/ftdi_sio.h +++ linux-3.2.0/drivers/usb/serial/ftdi_sio.h @@ -157,7 +157,8 @@ FT232RL = 5, FT2232H = 6, FT4232H = 7, - FT232H = 8 + FT232H = 8, + FTX = 9, }; enum ftdi_sio_baudrate { --- linux-3.2.0.orig/drivers/usb/serial/iuu_phoenix.c +++ linux-3.2.0/drivers/usb/serial/iuu_phoenix.c @@ -327,7 +327,7 @@ usb_bulk_msg(serial->dev, usb_sndbulkpipe(serial->dev, port->bulk_out_endpointAddress), buf, - count, &actual, HZ * 1); + count, &actual, 1000); if (status != IUU_OPERATION_OK) dbg("%s - error = %2x", __func__, status); @@ -350,7 +350,7 @@ usb_bulk_msg(serial->dev, usb_rcvbulkpipe(serial->dev, port->bulk_in_endpointAddress), buf, - count, &actual, HZ * 1); + count, &actual, 1000); if (status != IUU_OPERATION_OK) dbg("%s - error = %2x", __func__, status); --- linux-3.2.0.orig/drivers/usb/serial/pl2303.c +++ linux-3.2.0/drivers/usb/serial/pl2303.c @@ -150,7 +150,6 @@ struct pl2303_private { spinlock_t lock; - wait_queue_head_t delta_msr_wait; u8 line_control; u8 line_status; enum pl2303_type type; @@ -204,7 +203,6 @@ if (!priv) goto cleanup; spin_lock_init(&priv->lock); - init_waitqueue_head(&priv->delta_msr_wait); priv->type = type; usb_set_serial_port_data(serial->port[i], priv); } @@ -272,7 +270,7 @@ serial settings even to the same values as before. Thus we actually need to filter in this specific case */ - if (!tty_termios_hw_change(tty->termios, old_termios)) + if (old_termios && !tty_termios_hw_change(tty->termios, old_termios)) return; cflag = tty->termios->c_cflag; @@ -281,7 +279,8 @@ if (!buf) { dev_err(&port->dev, "%s - out of memory.\n", __func__); /* Report back no change occurred */ - *tty->termios = *old_termios; + if (old_termios) + *tty->termios = *old_termios; return; } @@ -421,7 +420,7 @@ control = priv->line_control; if ((cflag & CBAUD) == B0) priv->line_control &= ~(CONTROL_DTR | CONTROL_RTS); - else + else if (old_termios && (old_termios->c_cflag & CBAUD) == B0) priv->line_control |= (CONTROL_DTR | CONTROL_RTS); if (control != priv->line_control) { control = priv->line_control; @@ -482,7 +481,6 @@ static int pl2303_open(struct tty_struct *tty, struct usb_serial_port *port) { - struct ktermios tmp_termios; struct usb_serial *serial = port->serial; struct pl2303_private *priv = usb_get_serial_port_data(port); int result; @@ -500,7 +498,7 @@ /* Setup termios */ if (tty) - pl2303_set_termios(tty, port, &tmp_termios); + pl2303_set_termios(tty, port, NULL); dbg("%s - submitting read urb", __func__); result = usb_serial_generic_submit_read_urb(port, GFP_KERNEL); @@ -599,11 +597,14 @@ spin_unlock_irqrestore(&priv->lock, flags); while (1) { - interruptible_sleep_on(&priv->delta_msr_wait); + interruptible_sleep_on(&port->delta_msr_wait); /* see if a signal did it */ if (signal_pending(current)) return -ERESTARTSYS; + if (port->serial->disconnected) + return -EIO; + spin_lock_irqsave(&priv->lock, flags); status = priv->line_status; spin_unlock_irqrestore(&priv->lock, flags); @@ -725,7 +726,7 @@ spin_unlock_irqrestore(&priv->lock, flags); if (priv->line_status & UART_BREAK_ERROR) usb_serial_handle_break(port); - wake_up_interruptible(&priv->delta_msr_wait); + wake_up_interruptible(&port->delta_msr_wait); tty = tty_port_tty_get(&port->port); if (!tty) @@ -792,7 +793,7 @@ line_status = priv->line_status; priv->line_status &= ~UART_STATE_TRANSIENT_MASK; spin_unlock_irqrestore(&priv->lock, flags); - wake_up_interruptible(&priv->delta_msr_wait); + wake_up_interruptible(&port->delta_msr_wait); if (!urb->actual_length) return; --- linux-3.2.0.orig/drivers/usb/serial/io_ti.c +++ linux-3.2.0/drivers/usb/serial/io_ti.c @@ -98,9 +98,6 @@ int close_pending; int lsr_event; struct async_icount icount; - wait_queue_head_t delta_msr_wait; /* for handling sleeping while - waiting for msr change to - happen */ struct edgeport_serial *edge_serial; struct usb_serial_port *port; __u8 bUartMode; /* Port type, 0: RS232, etc. */ @@ -558,6 +555,9 @@ wait_queue_t wait; unsigned long flags; + if (!tty) + return; + if (!timeout) timeout = (HZ * EDGE_CLOSING_WAIT)/100; @@ -1554,7 +1554,7 @@ icount->dcd++; if (msr & EDGEPORT_MSR_DELTA_RI) icount->rng++; - wake_up_interruptible(&edge_port->delta_msr_wait); + wake_up_interruptible(&edge_port->port->delta_msr_wait); } /* Save the new modem status */ @@ -1873,7 +1873,6 @@ dev = port->serial->dev; memset(&(edge_port->icount), 0x00, sizeof(edge_port->icount)); - init_waitqueue_head(&edge_port->delta_msr_wait); /* turn off loopback */ status = ti_do_config(edge_port, UMPC_SET_CLR_LOOPBACK, 0); @@ -2571,10 +2570,14 @@ dbg("%s - (%d) TIOCMIWAIT", __func__, port->number); cprev = edge_port->icount; while (1) { - interruptible_sleep_on(&edge_port->delta_msr_wait); + interruptible_sleep_on(&port->delta_msr_wait); /* see if a signal did it */ if (signal_pending(current)) return -ERESTARTSYS; + + if (port->serial->disconnected) + return -EIO; + cnow = edge_port->icount; if (cnow.rng == cprev.rng && cnow.dsr == cprev.dsr && cnow.dcd == cprev.dcd && cnow.cts == cprev.cts) @@ -2677,15 +2680,7 @@ static void edge_disconnect(struct usb_serial *serial) { - int i; - struct edgeport_port *edge_port; - dbg("%s", __func__); - - for (i = 0; i < serial->num_ports; ++i) { - edge_port = usb_get_serial_port_data(serial->port[i]); - edge_remove_sysfs_attrs(edge_port->port); - } } static void edge_release(struct usb_serial *serial) @@ -2764,6 +2759,7 @@ .disconnect = edge_disconnect, .release = edge_release, .port_probe = edge_create_sysfs_attrs, + .port_remove = edge_remove_sysfs_attrs, .ioctl = edge_ioctl, .set_termios = edge_set_termios, .tiocmget = edge_tiocmget, @@ -2795,10 +2791,12 @@ .disconnect = edge_disconnect, .release = edge_release, .port_probe = edge_create_sysfs_attrs, + .port_remove = edge_remove_sysfs_attrs, .ioctl = edge_ioctl, .set_termios = edge_set_termios, .tiocmget = edge_tiocmget, .tiocmset = edge_tiocmset, + .get_icount = edge_get_icount, .write = edge_write, .write_room = edge_write_room, .chars_in_buffer = edge_chars_in_buffer, --- linux-3.2.0.orig/drivers/usb/serial/keyspan.c +++ linux-3.2.0/drivers/usb/serial/keyspan.c @@ -1833,7 +1833,7 @@ d_details = s_priv->device_details; device_port = port->number - port->serial->minor; - outcont_urb = d_details->outcont_endpoints[port->number]; + outcont_urb = d_details->outcont_endpoints[device_port]; this_urb = p_priv->outcont_urb; dbg("%s - endpoint %d", __func__, usb_pipeendpoint(this_urb->pipe)); --- linux-3.2.0.orig/drivers/usb/serial/oti6858.c +++ linux-3.2.0/drivers/usb/serial/oti6858.c @@ -196,7 +196,6 @@ u8 setup_done; struct delayed_work delayed_setup_work; - wait_queue_head_t intr_wait; struct usb_serial_port *port; /* USB port with which associated */ }; @@ -357,7 +356,6 @@ break; spin_lock_init(&priv->lock); - init_waitqueue_head(&priv->intr_wait); /* INIT_WORK(&priv->setup_work, setup_line, serial->port[i]); */ /* INIT_WORK(&priv->write_work, send_data, serial->port[i]); */ priv->port = port; @@ -705,11 +703,15 @@ spin_unlock_irqrestore(&priv->lock, flags); while (1) { - wait_event_interruptible(priv->intr_wait, + wait_event_interruptible(port->delta_msr_wait, + port->serial->disconnected || priv->status.pin_state != prev); if (signal_pending(current)) return -ERESTARTSYS; + if (port->serial->disconnected) + return -EIO; + spin_lock_irqsave(&priv->lock, flags); status = priv->status.pin_state & PIN_MASK; spin_unlock_irqrestore(&priv->lock, flags); @@ -821,7 +823,7 @@ if (!priv->transient) { if (xs->pin_state != priv->status.pin_state) - wake_up_interruptible(&priv->intr_wait); + wake_up_interruptible(&port->delta_msr_wait); memcpy(&priv->status, xs, OTI6858_CTRL_PKT_SIZE); } --- linux-3.2.0.orig/drivers/usb/serial/qcserial.c +++ linux-3.2.0/drivers/usb/serial/qcserial.c @@ -24,34 +24,51 @@ static int debug; +#define DEVICE_G1K(v, p) \ + USB_DEVICE(v, p), .driver_info = 1 + static const struct usb_device_id id_table[] = { - {USB_DEVICE(0x05c6, 0x9211)}, /* Acer Gobi QDL device */ - {USB_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */ - {USB_DEVICE(0x03f0, 0x1f1d)}, /* HP un2400 Gobi Modem Device */ - {USB_DEVICE(0x03f0, 0x201d)}, /* HP un2400 Gobi QDL Device */ - {USB_DEVICE(0x03f0, 0x371d)}, /* HP un2430 Mobile Broadband Module */ - {USB_DEVICE(0x04da, 0x250d)}, /* Panasonic Gobi Modem device */ - {USB_DEVICE(0x04da, 0x250c)}, /* Panasonic Gobi QDL device */ - {USB_DEVICE(0x413c, 0x8172)}, /* Dell Gobi Modem device */ - {USB_DEVICE(0x413c, 0x8171)}, /* Dell Gobi QDL device */ - {USB_DEVICE(0x1410, 0xa001)}, /* Novatel Gobi Modem device */ - {USB_DEVICE(0x1410, 0xa008)}, /* Novatel Gobi QDL device */ - {USB_DEVICE(0x0b05, 0x1776)}, /* Asus Gobi Modem device */ - {USB_DEVICE(0x0b05, 0x1774)}, /* Asus Gobi QDL device */ - {USB_DEVICE(0x19d2, 0xfff3)}, /* ONDA Gobi Modem device */ - {USB_DEVICE(0x19d2, 0xfff2)}, /* ONDA Gobi QDL device */ - {USB_DEVICE(0x1557, 0x0a80)}, /* OQO Gobi QDL device */ - {USB_DEVICE(0x05c6, 0x9001)}, /* Generic Gobi Modem device */ - {USB_DEVICE(0x05c6, 0x9002)}, /* Generic Gobi Modem device */ - {USB_DEVICE(0x05c6, 0x9202)}, /* Generic Gobi Modem device */ - {USB_DEVICE(0x05c6, 0x9203)}, /* Generic Gobi Modem device */ - {USB_DEVICE(0x05c6, 0x9222)}, /* Generic Gobi Modem device */ - {USB_DEVICE(0x05c6, 0x9008)}, /* Generic Gobi QDL device */ - {USB_DEVICE(0x05c6, 0x9009)}, /* Generic Gobi Modem device */ - {USB_DEVICE(0x05c6, 0x9201)}, /* Generic Gobi QDL device */ - {USB_DEVICE(0x05c6, 0x9221)}, /* Generic Gobi QDL device */ - {USB_DEVICE(0x05c6, 0x9231)}, /* Generic Gobi QDL device */ - {USB_DEVICE(0x1f45, 0x0001)}, /* Unknown Gobi QDL device */ + /* Gobi 1000 devices */ + {DEVICE_G1K(0x05c6, 0x9211)}, /* Acer Gobi QDL device */ + {DEVICE_G1K(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */ + {DEVICE_G1K(0x03f0, 0x1f1d)}, /* HP un2400 Gobi Modem Device */ + {DEVICE_G1K(0x03f0, 0x201d)}, /* HP un2400 Gobi QDL Device */ + {DEVICE_G1K(0x04da, 0x250d)}, /* Panasonic Gobi Modem device */ + {DEVICE_G1K(0x04da, 0x250c)}, /* Panasonic Gobi QDL device */ + {DEVICE_G1K(0x413c, 0x8172)}, /* Dell Gobi Modem device */ + {DEVICE_G1K(0x413c, 0x8171)}, /* Dell Gobi QDL device */ + {DEVICE_G1K(0x1410, 0xa001)}, /* Novatel/Verizon USB-1000 */ + {DEVICE_G1K(0x1410, 0xa002)}, /* Novatel Gobi Modem device */ + {DEVICE_G1K(0x1410, 0xa003)}, /* Novatel Gobi Modem device */ + {DEVICE_G1K(0x1410, 0xa004)}, /* Novatel Gobi Modem device */ + {DEVICE_G1K(0x1410, 0xa005)}, /* Novatel Gobi Modem device */ + {DEVICE_G1K(0x1410, 0xa006)}, /* Novatel Gobi Modem device */ + {DEVICE_G1K(0x1410, 0xa007)}, /* Novatel Gobi Modem device */ + {DEVICE_G1K(0x1410, 0xa008)}, /* Novatel Gobi QDL device */ + {DEVICE_G1K(0x0b05, 0x1776)}, /* Asus Gobi Modem device */ + {DEVICE_G1K(0x0b05, 0x1774)}, /* Asus Gobi QDL device */ + {DEVICE_G1K(0x19d2, 0xfff3)}, /* ONDA Gobi Modem device */ + {DEVICE_G1K(0x19d2, 0xfff2)}, /* ONDA Gobi QDL device */ + {DEVICE_G1K(0x1557, 0x0a80)}, /* OQO Gobi QDL device */ + {DEVICE_G1K(0x05c6, 0x9001)}, /* Generic Gobi Modem device */ + {DEVICE_G1K(0x05c6, 0x9002)}, /* Generic Gobi Modem device */ + {DEVICE_G1K(0x05c6, 0x9202)}, /* Generic Gobi Modem device */ + {DEVICE_G1K(0x05c6, 0x9203)}, /* Generic Gobi Modem device */ + {DEVICE_G1K(0x05c6, 0x9222)}, /* Generic Gobi Modem device */ + {DEVICE_G1K(0x05c6, 0x9008)}, /* Generic Gobi QDL device */ + {DEVICE_G1K(0x05c6, 0x9009)}, /* Generic Gobi Modem device */ + {DEVICE_G1K(0x05c6, 0x9201)}, /* Generic Gobi QDL device */ + {DEVICE_G1K(0x05c6, 0x9221)}, /* Generic Gobi QDL device */ + {DEVICE_G1K(0x05c6, 0x9231)}, /* Generic Gobi QDL device */ + {DEVICE_G1K(0x1f45, 0x0001)}, /* Unknown Gobi QDL device */ + {DEVICE_G1K(0x1bc7, 0x900e)}, /* Telit Gobi QDL device */ + + /* Gobi 2000 devices */ + {USB_DEVICE(0x1410, 0xa010)}, /* Novatel Gobi 2000 QDL device */ + {USB_DEVICE(0x1410, 0xa011)}, /* Novatel Gobi 2000 QDL device */ + {USB_DEVICE(0x1410, 0xa012)}, /* Novatel Gobi 2000 QDL device */ + {USB_DEVICE(0x1410, 0xa013)}, /* Novatel Gobi 2000 QDL device */ + {USB_DEVICE(0x1410, 0xa014)}, /* Novatel Gobi 2000 QDL device */ {USB_DEVICE(0x413c, 0x8185)}, /* Dell Gobi 2000 QDL device (N0218, VU936) */ {USB_DEVICE(0x413c, 0x8186)}, /* Dell Gobi 2000 Modem device (N0218, VU936) */ {USB_DEVICE(0x05c6, 0x9208)}, /* Generic Gobi 2000 QDL device */ @@ -86,7 +103,25 @@ {USB_DEVICE(0x16d8, 0x8002)}, /* CMDTech Gobi 2000 Modem device (VU922) */ {USB_DEVICE(0x05c6, 0x9204)}, /* Gobi 2000 QDL device */ {USB_DEVICE(0x05c6, 0x9205)}, /* Gobi 2000 Modem device */ + + /* Gobi 3000 devices */ + {USB_DEVICE(0x03f0, 0x371d)}, /* HP un2430 Gobi 3000 QDL */ + {USB_DEVICE(0x05c6, 0x920c)}, /* Gobi 3000 QDL */ + {USB_DEVICE(0x05c6, 0x920d)}, /* Gobi 3000 Composite */ + {USB_DEVICE(0x1410, 0xa020)}, /* Novatel Gobi 3000 QDL */ + {USB_DEVICE(0x1410, 0xa021)}, /* Novatel Gobi 3000 Composite */ + {USB_DEVICE(0x413c, 0x8193)}, /* Dell Gobi 3000 QDL */ + {USB_DEVICE(0x413c, 0x8194)}, /* Dell Gobi 3000 Composite */ + {USB_DEVICE(0x1199, 0x9010)}, /* Sierra Wireless Gobi 3000 QDL */ + {USB_DEVICE(0x1199, 0x9012)}, /* Sierra Wireless Gobi 3000 QDL */ {USB_DEVICE(0x1199, 0x9013)}, /* Sierra Wireless Gobi 3000 Modem device (MC8355) */ + {USB_DEVICE(0x1199, 0x9014)}, /* Sierra Wireless Gobi 3000 QDL */ + {USB_DEVICE(0x1199, 0x9015)}, /* Sierra Wireless Gobi 3000 Modem device */ + {USB_DEVICE(0x1199, 0x9018)}, /* Sierra Wireless Gobi 3000 QDL */ + {USB_DEVICE(0x1199, 0x9019)}, /* Sierra Wireless Gobi 3000 Modem device */ + {USB_DEVICE(0x12D1, 0x14F0)}, /* Sony Gobi 3000 QDL */ + {USB_DEVICE(0x12D1, 0x14F1)}, /* Sony Gobi 3000 Composite */ + {USB_DEVICE(0x0AF0, 0x8120)}, /* Option GTM681W */ { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, id_table); @@ -108,8 +143,10 @@ int retval = -ENODEV; __u8 nintf; __u8 ifnum; + bool is_gobi1k = id->driver_info ? true : false; dbg("%s", __func__); + dbg("Is Gobi 1000 = %d", is_gobi1k); nintf = serial->dev->actconfig->desc.bNumInterfaces; dbg("Num Interfaces = %d", nintf); @@ -157,15 +194,25 @@ case 3: case 4: - /* Composite mode */ - /* ifnum == 0 is a broadband network adapter */ - if (ifnum == 1) { - /* - * Diagnostics Monitor (serial line 9600 8N1) - * Qualcomm DM protocol - * use "libqcdm" (ModemManager) for communication - */ - dbg("Diagnostics Monitor found"); + /* Composite mode; don't bind to the QMI/net interface as that + * gets handled by other drivers. + */ + + /* Gobi 1K USB layout: + * 0: serial port (doesn't respond) + * 1: serial port (doesn't respond) + * 2: AT-capable modem port + * 3: QMI/net + * + * Gobi 2K+ USB layout: + * 0: QMI/net + * 1: DM/DIAG (use libqcdm from ModemManager for communication) + * 2: AT-capable modem port + * 3: NMEA + */ + + if (ifnum == 1 && !is_gobi1k) { + dbg("Gobi 2K+ DM/DIAG interface found"); retval = usb_set_interface(serial->dev, ifnum, 0); if (retval < 0) { dev_err(&serial->dev->dev, @@ -184,13 +231,13 @@ retval = -ENODEV; kfree(data); } - } else if (ifnum==3) { + } else if (ifnum==3 && !is_gobi1k) { /* * NMEA (serial line 9600 8N1) * # echo "\$GPS_START" > /dev/ttyUSBx * # echo "\$GPS_STOP" > /dev/ttyUSBx */ - dbg("NMEA GPS interface found"); + dbg("Gobi 2K+ NMEA GPS interface found"); retval = usb_set_interface(serial->dev, ifnum, 0); if (retval < 0) { dev_err(&serial->dev->dev, --- linux-3.2.0.orig/drivers/usb/serial/usb-serial.c +++ linux-3.2.0/drivers/usb/serial/usb-serial.c @@ -168,6 +168,7 @@ } } + usb_put_intf(serial->interface); usb_put_dev(serial->dev); kfree(serial); } @@ -624,7 +625,7 @@ } serial->dev = usb_get_dev(dev); serial->type = driver; - serial->interface = interface; + serial->interface = usb_get_intf(interface); kref_init(&serial->kref); mutex_init(&serial->disc_mutex); serial->minor = SERIAL_TTY_NO_MINOR; @@ -669,12 +670,14 @@ static struct usb_serial_driver *search_serial_device( struct usb_interface *iface) { - const struct usb_device_id *id; + const struct usb_device_id *id = NULL; struct usb_serial_driver *drv; + struct usb_driver *driver = to_usb_driver(iface->dev.driver); /* Check if the usb id matches a known device */ list_for_each_entry(drv, &usb_serial_driver_list, driver_list) { - id = get_iface_id(drv, iface); + if (drv->usb_driver == driver) + id = get_iface_id(drv, iface); if (id) return drv; } @@ -695,9 +698,20 @@ static void serial_dtr_rts(struct tty_port *port, int on) { struct usb_serial_port *p = container_of(port, struct usb_serial_port, port); - struct usb_serial_driver *drv = p->serial->type; - if (drv->dtr_rts) + struct usb_serial *serial = p->serial; + struct usb_serial_driver *drv = serial->type; + + if (!drv->dtr_rts) + return; + /* + * Work-around bug in the tty-layer which can result in dtr_rts + * being called after a disconnect (and tty_unregister_device + * has returned). Remove once bug has been squashed. + */ + mutex_lock(&serial->disc_mutex); + if (!serial->disconnected) drv->dtr_rts(p, on); + mutex_unlock(&serial->disc_mutex); } static const struct tty_port_operations serial_port_ops = { @@ -762,7 +776,7 @@ if (retval) { dbg("sub driver rejected device"); - kfree(serial); + usb_serial_put(serial); module_put(type->driver.owner); return retval; } @@ -834,7 +848,7 @@ */ if (num_bulk_in == 0 || num_bulk_out == 0) { dev_info(&interface->dev, "PL-2303 hack: descriptors matched but endpoints did not\n"); - kfree(serial); + usb_serial_put(serial); module_put(type->driver.owner); return -ENODEV; } @@ -848,7 +862,7 @@ if (num_ports == 0) { dev_err(&interface->dev, "Generic device with no bulk out, not allowed.\n"); - kfree(serial); + usb_serial_put(serial); module_put(type->driver.owner); return -EIO; } @@ -891,6 +905,7 @@ port->port.ops = &serial_port_ops; port->serial = serial; spin_lock_init(&port->lock); + init_waitqueue_head(&port->delta_msr_wait); /* Keep this for private driver use for the moment but should probably go away */ INIT_WORK(&port->work, usb_serial_port_work); @@ -1059,6 +1074,12 @@ serial->attached = 1; } + /* Avoid race with tty_open and serial_install by setting the + * disconnected flag and not clearing it until all ports have been + * registered. + */ + serial->disconnected = 1; + if (get_free_serial(serial, num_ports, &minor) == NULL) { dev_err(&interface->dev, "No more free serial devices\n"); goto probe_error; @@ -1083,6 +1104,8 @@ } } + serial->disconnected = 0; + usb_serial_console_init(debug, minor); exit: --- linux-3.2.0.orig/drivers/usb/serial/whiteheat.c +++ linux-3.2.0/drivers/usb/serial/whiteheat.c @@ -576,6 +576,7 @@ "%s: please contact support@connecttech.com\n", serial->type->description); kfree(result); + kfree(command); return -ENODEV; no_command_private: @@ -1208,7 +1209,7 @@ struct whiteheat_port_settings port_settings; unsigned int cflag = tty->termios->c_cflag; - port_settings.port = port->number + 1; + port_settings.port = port->number - port->serial->minor + 1; /* get the byte size */ switch (cflag & CSIZE) { --- linux-3.2.0.orig/drivers/usb/serial/garmin_gps.c +++ linux-3.2.0/drivers/usb/serial/garmin_gps.c @@ -973,10 +973,7 @@ if (!serial) return; - mutex_lock(&port->serial->disc_mutex); - - if (!port->serial->disconnected) - garmin_clear(garmin_data_p); + garmin_clear(garmin_data_p); /* shutdown our urbs */ usb_kill_urb(port->read_urb); @@ -985,8 +982,6 @@ /* keep reset state so we know that we must start a new session */ if (garmin_data_p->state != STATE_RESET) garmin_data_p->state = STATE_DISCONNECTED; - - mutex_unlock(&port->serial->disc_mutex); } --- linux-3.2.0.orig/drivers/usb/serial/ti_usb_3410_5052.c +++ linux-3.2.0/drivers/usb/serial/ti_usb_3410_5052.c @@ -75,7 +75,6 @@ int tp_flags; int tp_closing_wait;/* in .01 secs */ struct async_icount tp_icount; - wait_queue_head_t tp_msr_wait; /* wait for msr change */ wait_queue_head_t tp_write_wait; struct ti_device *tp_tdev; struct usb_serial_port *tp_port; @@ -165,7 +164,7 @@ /* the array dimension is the number of default entries plus */ /* TI_EXTRA_VID_PID_COUNT user defined entries plus 1 terminating */ /* null entry */ -static struct usb_device_id ti_id_table_3410[13+TI_EXTRA_VID_PID_COUNT+1] = { +static struct usb_device_id ti_id_table_3410[15+TI_EXTRA_VID_PID_COUNT+1] = { { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) }, { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) }, { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) }, @@ -179,6 +178,9 @@ { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) }, { USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) }, { USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) }, + { USB_DEVICE(ABBOTT_VENDOR_ID, ABBOTT_STEREO_PLUG_ID) }, + { USB_DEVICE(ABBOTT_VENDOR_ID, ABBOTT_STRIP_PORT_ID) }, + { USB_DEVICE(TI_VENDOR_ID, FRI2_PRODUCT_ID) }, }; static struct usb_device_id ti_id_table_5052[5+TI_EXTRA_VID_PID_COUNT+1] = { @@ -188,7 +190,7 @@ { USB_DEVICE(TI_VENDOR_ID, TI_5052_FIRMWARE_PRODUCT_ID) }, }; -static struct usb_device_id ti_id_table_combined[17+2*TI_EXTRA_VID_PID_COUNT+1] = { +static struct usb_device_id ti_id_table_combined[19+2*TI_EXTRA_VID_PID_COUNT+1] = { { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) }, { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) }, { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) }, @@ -206,6 +208,8 @@ { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) }, { USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) }, { USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) }, + { USB_DEVICE(ABBOTT_VENDOR_ID, ABBOTT_PRODUCT_ID) }, + { USB_DEVICE(TI_VENDOR_ID, FRI2_PRODUCT_ID) }, { } }; @@ -404,7 +408,7 @@ usb_set_serial_data(serial, tdev); /* determine device type */ - if (usb_match_id(serial->interface, ti_id_table_3410)) + if (serial->type == &ti_1port_device) tdev->td_is_3410 = 1; dbg("%s - device type is %s", __func__, tdev->td_is_3410 ? "3410" : "5052"); @@ -443,7 +447,6 @@ tport->tp_uart_base_addr = (i == 0 ? TI_UART1_BASE_ADDR : TI_UART2_BASE_ADDR); tport->tp_closing_wait = closing_wait; - init_waitqueue_head(&tport->tp_msr_wait); init_waitqueue_head(&tport->tp_write_wait); if (kfifo_alloc(&tport->write_fifo, TI_WRITE_BUF_SIZE, GFP_KERNEL)) { @@ -844,9 +847,13 @@ dbg("%s - (%d) TIOCMIWAIT", __func__, port->number); cprev = tport->tp_icount; while (1) { - interruptible_sleep_on(&tport->tp_msr_wait); + interruptible_sleep_on(&port->delta_msr_wait); if (signal_pending(current)) return -ERESTARTSYS; + + if (port->serial->disconnected) + return -EIO; + cnow = tport->tp_icount; if (cnow.rng == cprev.rng && cnow.dsr == cprev.dsr && cnow.dcd == cprev.dcd && cnow.cts == cprev.cts) @@ -1477,7 +1484,7 @@ icount->dcd++; if (msr & TI_MSR_DELTA_RI) icount->rng++; - wake_up_interruptible(&tport->tp_msr_wait); + wake_up_interruptible(&tport->tp_port->delta_msr_wait); spin_unlock_irqrestore(&tport->tp_lock, flags); } --- linux-3.2.0.orig/drivers/usb/serial/sierra.c +++ linux-3.2.0/drivers/usb/serial/sierra.c @@ -171,7 +171,6 @@ { int result = 0; struct usb_device *udev; - struct sierra_intf_private *data; u8 ifnum; udev = serial->dev; @@ -199,11 +198,6 @@ return -ENODEV; } - data = serial->private = kzalloc(sizeof(struct sierra_intf_private), GFP_KERNEL); - if (!data) - return -ENOMEM; - spin_lock_init(&data->susp_lock); - return result; } @@ -221,7 +215,7 @@ }; /* 'blacklist' of interfaces not served by this driver */ -static const u8 direct_ip_non_serial_ifaces[] = { 7, 8, 9, 10, 11 }; +static const u8 direct_ip_non_serial_ifaces[] = { 7, 8, 9, 10, 11, 19, 20 }; static const struct sierra_iface_info direct_ip_interface_blacklist = { .infolen = ARRAY_SIZE(direct_ip_non_serial_ifaces), .ifaceinfo = direct_ip_non_serial_ifaces, @@ -298,9 +292,16 @@ /* Sierra Wireless HSPA Non-Composite Device */ { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6892, 0xFF, 0xFF, 0xFF)}, { USB_DEVICE(0x1199, 0x6893) }, /* Sierra Wireless Device */ + { USB_DEVICE(0x1199, 0x68A2), /* Sierra Wireless MC77xx in QMI mode */ + .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist + }, { USB_DEVICE(0x1199, 0x68A3), /* Sierra Wireless Direct IP modems */ .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist }, + /* AT&T Direct IP LTE modems */ + { USB_DEVICE_AND_INTERFACE_INFO(0x0F3D, 0x68AA, 0xFF, 0xFF, 0xFF), + .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist + }, { USB_DEVICE(0x0f3d, 0x68A3), /* Airprime/Sierra Wireless Direct IP modems */ .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist }, @@ -890,24 +891,19 @@ static void sierra_dtr_rts(struct usb_serial_port *port, int on) { - struct usb_serial *serial = port->serial; struct sierra_port_private *portdata; portdata = usb_get_serial_port_data(port); portdata->rts_state = on; portdata->dtr_state = on; - if (serial->dev) { - mutex_lock(&serial->disc_mutex); - if (!serial->disconnected) - sierra_send_setup(port); - mutex_unlock(&serial->disc_mutex); - } + sierra_send_setup(port); } static int sierra_startup(struct usb_serial *serial) { struct usb_serial_port *port; + struct sierra_intf_private *intfdata; struct sierra_port_private *portdata; struct sierra_iface_info *himemoryp = NULL; int i; @@ -915,6 +911,14 @@ dev_dbg(&serial->dev->dev, "%s\n", __func__); + intfdata = kzalloc(sizeof(*intfdata), GFP_KERNEL); + if (!intfdata) + return -ENOMEM; + + spin_lock_init(&intfdata->susp_lock); + + usb_set_serial_data(serial, intfdata); + /* Set Device mode to D0 */ sierra_set_power_state(serial->dev, 0x0000); @@ -930,7 +934,7 @@ dev_dbg(&port->dev, "%s: kmalloc for " "sierra_port_private (%d) failed!\n", __func__, i); - return -ENOMEM; + goto err; } spin_lock_init(&portdata->lock); init_usb_anchor(&portdata->active); @@ -967,6 +971,14 @@ } return 0; +err: + for (--i; i >= 0; --i) { + portdata = usb_get_serial_port_data(serial->port[i]); + kfree(portdata); + } + kfree(intfdata); + + return -ENOMEM; } static void sierra_release(struct usb_serial *serial) @@ -986,6 +998,7 @@ continue; kfree(portdata); } + kfree(serial->private); } #ifdef CONFIG_PM --- linux-3.2.0.orig/drivers/usb/serial/mct_u232.c +++ linux-3.2.0/drivers/usb/serial/mct_u232.c @@ -168,8 +168,6 @@ unsigned char last_msr; /* Modem Status Register */ unsigned int rx_flags; /* Throttling flags */ struct async_icount icount; - wait_queue_head_t msr_wait; /* for handling sleeping while waiting - for msr change to happen */ }; #define THROTTLED 0x01 @@ -359,13 +357,16 @@ MCT_U232_SET_REQUEST_TYPE, 0, 0, buf, MCT_U232_SET_MODEM_CTRL_SIZE, WDR_TIMEOUT); - if (rc < 0) - dev_err(&serial->dev->dev, - "Set MODEM CTRL 0x%x failed (error = %d)\n", mcr, rc); + kfree(buf); + dbg("set_modem_ctrl: state=0x%x ==> mcr=0x%x", control_state, mcr); - kfree(buf); - return rc; + if (rc < 0) { + dev_err(&serial->dev->dev, + "Set MODEM CTRL 0x%x failed (error = %d)\n", mcr, rc); + return rc; + } + return 0; } /* mct_u232_set_modem_ctrl */ static int mct_u232_get_modem_stat(struct usb_serial *serial, @@ -446,7 +447,6 @@ if (!priv) return -ENOMEM; spin_lock_init(&priv->lock); - init_waitqueue_head(&priv->msr_wait); usb_set_serial_port_data(serial->port[0], priv); init_waitqueue_head(&serial->port[0]->write_wait); @@ -555,31 +555,29 @@ unsigned int control_state; struct mct_u232_private *priv = usb_get_serial_port_data(port); - mutex_lock(&port->serial->disc_mutex); - if (!port->serial->disconnected) { - /* drop DTR and RTS */ - spin_lock_irq(&priv->lock); - if (on) - priv->control_state |= TIOCM_DTR | TIOCM_RTS; - else - priv->control_state &= ~(TIOCM_DTR | TIOCM_RTS); - control_state = priv->control_state; - spin_unlock_irq(&priv->lock); - mct_u232_set_modem_ctrl(port->serial, control_state); - } - mutex_unlock(&port->serial->disc_mutex); + spin_lock_irq(&priv->lock); + if (on) + priv->control_state |= TIOCM_DTR | TIOCM_RTS; + else + priv->control_state &= ~(TIOCM_DTR | TIOCM_RTS); + control_state = priv->control_state; + spin_unlock_irq(&priv->lock); + + mct_u232_set_modem_ctrl(port->serial, control_state); } static void mct_u232_close(struct usb_serial_port *port) { dbg("%s port %d", __func__, port->number); - if (port->serial->dev) { - /* shutdown our urbs */ - usb_kill_urb(port->write_urb); - usb_kill_urb(port->read_urb); - usb_kill_urb(port->interrupt_in_urb); - } + /* + * Must kill the read urb as it is actually an interrupt urb, which + * generic close thus fails to kill. + */ + usb_kill_urb(port->read_urb); + usb_kill_urb(port->interrupt_in_urb); + + usb_serial_generic_close(port); } /* mct_u232_close */ @@ -674,7 +672,7 @@ tty_kref_put(tty); } #endif - wake_up_interruptible(&priv->msr_wait); + wake_up_interruptible(&port->delta_msr_wait); spin_unlock_irqrestore(&priv->lock, flags); exit: retval = usb_submit_urb(urb, GFP_ATOMIC); @@ -895,13 +893,17 @@ cprev = mct_u232_port->icount; spin_unlock_irqrestore(&mct_u232_port->lock, flags); for ( ; ; ) { - prepare_to_wait(&mct_u232_port->msr_wait, + prepare_to_wait(&port->delta_msr_wait, &wait, TASK_INTERRUPTIBLE); schedule(); - finish_wait(&mct_u232_port->msr_wait, &wait); + finish_wait(&port->delta_msr_wait, &wait); /* see if a signal did it */ if (signal_pending(current)) return -ERESTARTSYS; + + if (port->serial->disconnected) + return -EIO; + spin_lock_irqsave(&mct_u232_port->lock, flags); cnow = mct_u232_port->icount; spin_unlock_irqrestore(&mct_u232_port->lock, flags); --- linux-3.2.0.orig/drivers/usb/serial/ch341.c +++ linux-3.2.0/drivers/usb/serial/ch341.c @@ -82,7 +82,6 @@ struct ch341_private { spinlock_t lock; /* access lock */ - wait_queue_head_t delta_msr_wait; /* wait queue for modem status */ unsigned baud_rate; /* set baud rate */ u8 line_control; /* set line control value RTS/DTR */ u8 line_status; /* active status of modem control inputs */ @@ -262,7 +261,6 @@ return -ENOMEM; spin_lock_init(&priv->lock); - init_waitqueue_head(&priv->delta_msr_wait); priv->baud_rate = DEFAULT_BAUD_RATE; priv->line_control = CH341_BIT_RTS | CH341_BIT_DTR; @@ -299,7 +297,7 @@ priv->line_control &= ~(CH341_BIT_RTS | CH341_BIT_DTR); spin_unlock_irqrestore(&priv->lock, flags); ch341_set_handshake(port->serial->dev, priv->line_control); - wake_up_interruptible(&priv->delta_msr_wait); + wake_up_interruptible(&port->delta_msr_wait); } static void ch341_close(struct usb_serial_port *port) @@ -503,7 +501,7 @@ tty_kref_put(tty); } - wake_up_interruptible(&priv->delta_msr_wait); + wake_up_interruptible(&port->delta_msr_wait); } exit: @@ -529,11 +527,14 @@ spin_unlock_irqrestore(&priv->lock, flags); while (!multi_change) { - interruptible_sleep_on(&priv->delta_msr_wait); + interruptible_sleep_on(&port->delta_msr_wait); /* see if a signal did it */ if (signal_pending(current)) return -ERESTARTSYS; + if (port->serial->disconnected) + return -EIO; + spin_lock_irqsave(&priv->lock, flags); status = priv->line_status; multi_change = priv->multi_status_change; --- linux-3.2.0.orig/drivers/usb/serial/option.c +++ linux-3.2.0/drivers/usb/serial/option.c @@ -47,6 +47,7 @@ /* Function prototypes */ static int option_probe(struct usb_serial *serial, const struct usb_device_id *id); +static void option_release(struct usb_serial *serial); static int option_send_setup(struct usb_serial_port *port); static void option_instat_callback(struct urb *urb); @@ -79,84 +80,10 @@ #define OPTION_PRODUCT_GTM380_MODEM 0x7201 #define HUAWEI_VENDOR_ID 0x12D1 -#define HUAWEI_PRODUCT_E600 0x1001 -#define HUAWEI_PRODUCT_E220 0x1003 -#define HUAWEI_PRODUCT_E220BIS 0x1004 -#define HUAWEI_PRODUCT_E1401 0x1401 -#define HUAWEI_PRODUCT_E1402 0x1402 -#define HUAWEI_PRODUCT_E1403 0x1403 -#define HUAWEI_PRODUCT_E1404 0x1404 -#define HUAWEI_PRODUCT_E1405 0x1405 -#define HUAWEI_PRODUCT_E1406 0x1406 -#define HUAWEI_PRODUCT_E1407 0x1407 -#define HUAWEI_PRODUCT_E1408 0x1408 -#define HUAWEI_PRODUCT_E1409 0x1409 -#define HUAWEI_PRODUCT_E140A 0x140A -#define HUAWEI_PRODUCT_E140B 0x140B -#define HUAWEI_PRODUCT_E140C 0x140C -#define HUAWEI_PRODUCT_E140D 0x140D -#define HUAWEI_PRODUCT_E140E 0x140E -#define HUAWEI_PRODUCT_E140F 0x140F -#define HUAWEI_PRODUCT_E1410 0x1410 -#define HUAWEI_PRODUCT_E1411 0x1411 -#define HUAWEI_PRODUCT_E1412 0x1412 -#define HUAWEI_PRODUCT_E1413 0x1413 -#define HUAWEI_PRODUCT_E1414 0x1414 -#define HUAWEI_PRODUCT_E1415 0x1415 -#define HUAWEI_PRODUCT_E1416 0x1416 -#define HUAWEI_PRODUCT_E1417 0x1417 -#define HUAWEI_PRODUCT_E1418 0x1418 -#define HUAWEI_PRODUCT_E1419 0x1419 -#define HUAWEI_PRODUCT_E141A 0x141A -#define HUAWEI_PRODUCT_E141B 0x141B -#define HUAWEI_PRODUCT_E141C 0x141C -#define HUAWEI_PRODUCT_E141D 0x141D -#define HUAWEI_PRODUCT_E141E 0x141E -#define HUAWEI_PRODUCT_E141F 0x141F -#define HUAWEI_PRODUCT_E1420 0x1420 -#define HUAWEI_PRODUCT_E1421 0x1421 -#define HUAWEI_PRODUCT_E1422 0x1422 -#define HUAWEI_PRODUCT_E1423 0x1423 -#define HUAWEI_PRODUCT_E1424 0x1424 -#define HUAWEI_PRODUCT_E1425 0x1425 -#define HUAWEI_PRODUCT_E1426 0x1426 -#define HUAWEI_PRODUCT_E1427 0x1427 -#define HUAWEI_PRODUCT_E1428 0x1428 -#define HUAWEI_PRODUCT_E1429 0x1429 -#define HUAWEI_PRODUCT_E142A 0x142A -#define HUAWEI_PRODUCT_E142B 0x142B -#define HUAWEI_PRODUCT_E142C 0x142C -#define HUAWEI_PRODUCT_E142D 0x142D -#define HUAWEI_PRODUCT_E142E 0x142E -#define HUAWEI_PRODUCT_E142F 0x142F -#define HUAWEI_PRODUCT_E1430 0x1430 -#define HUAWEI_PRODUCT_E1431 0x1431 -#define HUAWEI_PRODUCT_E1432 0x1432 -#define HUAWEI_PRODUCT_E1433 0x1433 -#define HUAWEI_PRODUCT_E1434 0x1434 -#define HUAWEI_PRODUCT_E1435 0x1435 -#define HUAWEI_PRODUCT_E1436 0x1436 -#define HUAWEI_PRODUCT_E1437 0x1437 -#define HUAWEI_PRODUCT_E1438 0x1438 -#define HUAWEI_PRODUCT_E1439 0x1439 -#define HUAWEI_PRODUCT_E143A 0x143A -#define HUAWEI_PRODUCT_E143B 0x143B -#define HUAWEI_PRODUCT_E143C 0x143C -#define HUAWEI_PRODUCT_E143D 0x143D -#define HUAWEI_PRODUCT_E143E 0x143E -#define HUAWEI_PRODUCT_E143F 0x143F +#define HUAWEI_PRODUCT_E173 0x140C #define HUAWEI_PRODUCT_K4505 0x1464 #define HUAWEI_PRODUCT_K3765 0x1465 -#define HUAWEI_PRODUCT_E14AC 0x14AC -#define HUAWEI_PRODUCT_K3806 0x14AE #define HUAWEI_PRODUCT_K4605 0x14C6 -#define HUAWEI_PRODUCT_K3770 0x14C9 -#define HUAWEI_PRODUCT_K3771 0x14CA -#define HUAWEI_PRODUCT_K4510 0x14CB -#define HUAWEI_PRODUCT_K4511 0x14CC -#define HUAWEI_PRODUCT_ETS1220 0x1803 -#define HUAWEI_PRODUCT_E353 0x1506 -#define HUAWEI_PRODUCT_E173S 0x1C05 #define QUANTA_VENDOR_ID 0x0408 #define QUANTA_PRODUCT_Q101 0xEA02 @@ -231,9 +158,9 @@ #define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED 0x8001 #define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED 0x9000 #define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED 0x9001 -#define NOVATELWIRELESS_PRODUCT_G1 0xA001 -#define NOVATELWIRELESS_PRODUCT_G1_M 0xA002 +#define NOVATELWIRELESS_PRODUCT_E362 0x9010 #define NOVATELWIRELESS_PRODUCT_G2 0xA010 +#define NOVATELWIRELESS_PRODUCT_MC551 0xB001 /* AMOI PRODUCTS */ #define AMOI_VENDOR_ID 0x1614 @@ -265,6 +192,10 @@ #define DELL_PRODUCT_5730_MINICARD_TELUS 0x8181 #define DELL_PRODUCT_5730_MINICARD_VZW 0x8182 +#define DELL_PRODUCT_5800_MINICARD_VZW 0x8195 /* Novatel E362 */ +#define DELL_PRODUCT_5800_V2_MINICARD_VZW 0x8196 /* Novatel E362 */ +#define DELL_PRODUCT_5804_MINICARD_ATT 0x819b /* Novatel E371 */ + #define KYOCERA_VENDOR_ID 0x0c88 #define KYOCERA_PRODUCT_KPC650 0x17da #define KYOCERA_PRODUCT_KPC680 0x180a @@ -307,6 +238,10 @@ #define TELIT_VENDOR_ID 0x1bc7 #define TELIT_PRODUCT_UC864E 0x1003 #define TELIT_PRODUCT_UC864G 0x1004 +#define TELIT_PRODUCT_CC864_DUAL 0x1005 +#define TELIT_PRODUCT_CC864_SINGLE 0x1006 +#define TELIT_PRODUCT_DE910_DUAL 0x1010 +#define TELIT_PRODUCT_LE920 0x1200 /* ZTE PRODUCTS */ #define ZTE_VENDOR_ID 0x19d2 @@ -352,6 +287,8 @@ /* ALCATEL PRODUCTS */ #define ALCATEL_VENDOR_ID 0x1bbb #define ALCATEL_PRODUCT_X060S_X200 0x0000 +#define ALCATEL_PRODUCT_X220_X500D 0x0017 +#define ALCATEL_PRODUCT_L100V 0x011e #define PIRELLI_VENDOR_ID 0x1266 #define PIRELLI_PRODUCT_C100_1 0x1002 @@ -403,26 +340,24 @@ #define CINTERION_PRODUCT_EU3_E 0x0051 #define CINTERION_PRODUCT_EU3_P 0x0052 #define CINTERION_PRODUCT_PH8 0x0053 +#define CINTERION_PRODUCT_AHXX 0x0055 +#define CINTERION_PRODUCT_PLXX 0x0060 /* Olivetti products */ #define OLIVETTI_VENDOR_ID 0x0b3c #define OLIVETTI_PRODUCT_OLICARD100 0xc000 +#define OLIVETTI_PRODUCT_OLICARD145 0xc003 +#define OLIVETTI_PRODUCT_OLICARD200 0xc005 /* Celot products */ #define CELOT_VENDOR_ID 0x211f #define CELOT_PRODUCT_CT680M 0x6801 -/* ONDA Communication vendor id */ -#define ONDA_VENDOR_ID 0x1ee8 - -/* ONDA MT825UP HSDPA 14.2 modem */ -#define ONDA_MT825UP 0x000b - /* Samsung products */ #define SAMSUNG_VENDOR_ID 0x04e8 #define SAMSUNG_PRODUCT_GT_B3730 0x6889 -/* YUGA products www.yuga-info.com*/ +/* YUGA products www.yuga-info.com gavin.kx@qq.com */ #define YUGA_VENDOR_ID 0x257A #define YUGA_PRODUCT_CEM600 0x1601 #define YUGA_PRODUCT_CEM610 0x1602 @@ -439,6 +374,8 @@ #define YUGA_PRODUCT_CEU516 0x160C #define YUGA_PRODUCT_CEU528 0x160D #define YUGA_PRODUCT_CEU526 0x160F +#define YUGA_PRODUCT_CEU881 0x161F +#define YUGA_PRODUCT_CEU882 0x162F #define YUGA_PRODUCT_CWM600 0x2601 #define YUGA_PRODUCT_CWM610 0x2602 @@ -454,28 +391,71 @@ #define YUGA_PRODUCT_CWU518 0x260B #define YUGA_PRODUCT_CWU516 0x260C #define YUGA_PRODUCT_CWU528 0x260D +#define YUGA_PRODUCT_CWU581 0x260E #define YUGA_PRODUCT_CWU526 0x260F +#define YUGA_PRODUCT_CWU582 0x261F +#define YUGA_PRODUCT_CWU583 0x262F -#define YUGA_PRODUCT_CLM600 0x2601 -#define YUGA_PRODUCT_CLM610 0x2602 -#define YUGA_PRODUCT_CLM500 0x2603 -#define YUGA_PRODUCT_CLM510 0x2604 -#define YUGA_PRODUCT_CLM800 0x2605 -#define YUGA_PRODUCT_CLM900 0x2606 - -#define YUGA_PRODUCT_CLU718 0x2607 -#define YUGA_PRODUCT_CLU716 0x2608 -#define YUGA_PRODUCT_CLU728 0x2609 -#define YUGA_PRODUCT_CLU726 0x260A -#define YUGA_PRODUCT_CLU518 0x260B -#define YUGA_PRODUCT_CLU516 0x260C -#define YUGA_PRODUCT_CLU528 0x260D -#define YUGA_PRODUCT_CLU526 0x260F +#define YUGA_PRODUCT_CLM600 0x3601 +#define YUGA_PRODUCT_CLM610 0x3602 +#define YUGA_PRODUCT_CLM500 0x3603 +#define YUGA_PRODUCT_CLM510 0x3604 +#define YUGA_PRODUCT_CLM800 0x3605 +#define YUGA_PRODUCT_CLM900 0x3606 + +#define YUGA_PRODUCT_CLU718 0x3607 +#define YUGA_PRODUCT_CLU716 0x3608 +#define YUGA_PRODUCT_CLU728 0x3609 +#define YUGA_PRODUCT_CLU726 0x360A +#define YUGA_PRODUCT_CLU518 0x360B +#define YUGA_PRODUCT_CLU516 0x360C +#define YUGA_PRODUCT_CLU528 0x360D +#define YUGA_PRODUCT_CLU526 0x360F /* Viettel products */ #define VIETTEL_VENDOR_ID 0x2262 #define VIETTEL_PRODUCT_VT1000 0x0002 +/* ZD Incorporated */ +#define ZD_VENDOR_ID 0x0685 +#define ZD_PRODUCT_7000 0x7000 + +/* LG products */ +#define LG_VENDOR_ID 0x1004 +#define LG_PRODUCT_L02C 0x618f + +/* MediaTek products */ +#define MEDIATEK_VENDOR_ID 0x0e8d +#define MEDIATEK_PRODUCT_DC_1COM 0x00a0 +#define MEDIATEK_PRODUCT_DC_4COM 0x00a5 +#define MEDIATEK_PRODUCT_DC_4COM2 0x00a7 +#define MEDIATEK_PRODUCT_DC_5COM 0x00a4 +#define MEDIATEK_PRODUCT_7208_1COM 0x7101 +#define MEDIATEK_PRODUCT_7208_2COM 0x7102 +#define MEDIATEK_PRODUCT_7103_2COM 0x7103 +#define MEDIATEK_PRODUCT_7106_2COM 0x7106 +#define MEDIATEK_PRODUCT_FP_1COM 0x0003 +#define MEDIATEK_PRODUCT_FP_2COM 0x0023 +#define MEDIATEK_PRODUCT_FPDC_1COM 0x0043 +#define MEDIATEK_PRODUCT_FPDC_2COM 0x0033 + +/* Cellient products */ +#define CELLIENT_VENDOR_ID 0x2692 +#define CELLIENT_PRODUCT_MEN200 0x9005 + +/* Hyundai Petatel Inc. products */ +#define PETATEL_VENDOR_ID 0x1ff4 +#define PETATEL_PRODUCT_NP10T_600A 0x600a +#define PETATEL_PRODUCT_NP10T_600E 0x600e + +/* TP-LINK Incorporated products */ +#define TPLINK_VENDOR_ID 0x2357 +#define TPLINK_PRODUCT_MA180 0x0201 + +/* Changhong products */ +#define CHANGHONG_VENDOR_ID 0x2077 +#define CHANGHONG_PRODUCT_CH690 0x7001 + /* some devices interfaces need special handling due to a number of reasons */ enum option_blacklist_reason { OPTION_BLACKLIST_NONE = 0, @@ -497,6 +477,7 @@ static const struct option_blacklist_info alcatel_x200_blacklist = { .sendsetup = BIT(0) | BIT(1), + .reserved = BIT(4), }; static const struct option_blacklist_info zte_0037_blacklist = { @@ -528,6 +509,10 @@ .reserved = BIT(1), }; +static const struct option_blacklist_info net_intf2_blacklist = { + .reserved = BIT(2), +}; + static const struct option_blacklist_info net_intf3_blacklist = { .reserved = BIT(3), }; @@ -540,11 +525,24 @@ .reserved = BIT(5), }; +static const struct option_blacklist_info net_intf6_blacklist = { + .reserved = BIT(6), +}; + static const struct option_blacklist_info zte_mf626_blacklist = { .sendsetup = BIT(0) | BIT(1), .reserved = BIT(4), }; +static const struct option_blacklist_info zte_1255_blacklist = { + .reserved = BIT(3) | BIT(4), +}; + +static const struct option_blacklist_info telit_le920_blacklist = { + .sendsetup = BIT(0), + .reserved = BIT(1) | BIT(5), +}; + static const struct usb_device_id option_ids[] = { { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, @@ -576,99 +574,134 @@ { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLX) }, { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GKE) }, { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1401, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1402, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1403, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1404, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1405, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1406, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1407, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1408, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1409, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140A, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140B, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140C, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140D, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140E, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140F, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1410, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1411, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1412, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1413, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1414, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1415, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1416, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1417, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1418, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1419, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141A, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141B, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141C, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141D, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141E, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141F, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1420, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1421, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1422, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1423, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1424, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1425, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1426, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1427, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1428, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1429, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142A, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142B, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142C, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142D, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142E, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142F, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1430, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1431, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1432, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1433, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1434, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1435, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1436, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1437, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1438, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1439, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143A, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143B, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143C, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173S, 0xff, 0xff, 0xff) }, + { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c05, USB_CLASS_COMM, 0x02, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c1f, USB_CLASS_COMM, 0x02, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c23, USB_CLASS_COMM, 0x02, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t) &net_intf1_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1441, USB_CLASS_COMM, 0x02, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1442, USB_CLASS_COMM, 0x02, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4505, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t) &huawei_cdc12_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3765, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t) &huawei_cdc12_blacklist }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_ETS1220, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3806, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x14ac, 0xff, 0xff, 0xff), /* Huawei E1820 */ + .driver_info = (kernel_ulong_t) &net_intf1_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4605, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t) &huawei_cdc12_blacklist }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x31) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x32) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3771, 0xff, 0x02, 0x31) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3771, 0xff, 0x02, 0x32) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4510, 0xff, 0x01, 0x31) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4510, 0xff, 0x01, 0x32) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4511, 0xff, 0x01, 0x31) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4511, 0xff, 0x01, 0x32) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x01, 0x01) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x01, 0x02) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x01, 0x03) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x01, 0x10) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x01, 0x12) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x01, 0x13) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x02, 0x01) }, /* E398 3G Modem */ - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x02, 0x02) }, /* E398 3G PC UI Interface */ - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x02, 0x03) }, /* E398 3G Application Interface */ + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0xff, 0xff) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x01) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x02) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x03) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x04) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x05) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x06) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x10) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x12) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x13) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x14) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x15) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x17) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x18) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x19) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x1A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x1B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x1C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x31) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x32) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x33) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x34) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x35) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x36) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x48) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x49) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x4A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x4B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x4C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x61) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x62) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x63) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x64) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x65) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x66) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x6F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x78) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x79) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x7A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x7B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x7C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x01) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x02) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x03) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x04) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x05) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x06) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x10) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x12) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x13) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x14) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x15) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x17) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x18) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x19) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x1A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x1B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x1C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x31) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x32) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x33) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x34) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x35) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x36) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x48) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x49) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x4A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x4B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x4C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x61) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x62) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x63) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x64) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x65) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x66) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x6F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x78) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x79) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7C) }, + + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V740) }, @@ -694,6 +727,7 @@ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED) }, + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED3) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED4) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED5) }, @@ -704,9 +738,10 @@ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC547) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED) }, - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_G1) }, - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_G1_M) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_G2) }, + /* Novatel Ovation MC551 a.k.a. Verizon USB551L */ + { USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC551, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E362, 0xff, 0xff, 0xff) }, { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01) }, { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01A) }, @@ -729,6 +764,9 @@ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_SPRINT) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_TELUS) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_VZW) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ + { USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5800_MINICARD_VZW, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5800_V2_MINICARD_VZW, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5804_MINICARD_ATT, 0xff, 0xff, 0xff) }, { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, /* ADU-E100, ADU-310 */ { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) }, @@ -755,11 +793,17 @@ { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) }, { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */ { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6280) }, /* BP3-USB & BP3-EXT HSDPA */ { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6008) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_DUAL) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920), + .driver_info = (kernel_ulong_t)&telit_le920_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, @@ -780,13 +824,13 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0012, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0013, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0014, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0016, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0017, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0018, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0019, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0019, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0020, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0021, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, @@ -795,7 +839,6 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0024, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0025, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, - /* { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0026, 0xff, 0xff, 0xff) }, */ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0028, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0029, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0030, 0xff, 0xff, 0xff) }, @@ -820,7 +863,6 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0051, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0052, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, - /* { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0053, 0xff, 0xff, 0xff) }, */ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0054, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0055, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, @@ -828,7 +870,6 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0057, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0058, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0059, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0061, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0062, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0063, 0xff, 0xff, 0xff), @@ -838,7 +879,6 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0066, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0067, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0069, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0070, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0076, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0077, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0078, 0xff, 0xff, 0xff) }, @@ -847,6 +887,16 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0083, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0086, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0087, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0088, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0089, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0090, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0091, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0092, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0093, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0094, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0095, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0096, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0097, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0104, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0105, 0xff, 0xff, 0xff) }, @@ -855,38 +905,78 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0113, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0117, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0118, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0121, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0118, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0121, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0122, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0123, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0124, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0125, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0126, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0123, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0124, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0125, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf6_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0126, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0128, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0135, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0136, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0137, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0139, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0142, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0143, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0144, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0145, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0146, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0147, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0148, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0149, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0150, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0151, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0152, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0153, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0154, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0155, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0156, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0157, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0158, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0157, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0158, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0159, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0160, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0161, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0162, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1012, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0164, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0165, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0167, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0189, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0191, 0xff, 0xff, 0xff), /* ZTE EuFi890 */ + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0196, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0197, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0199, 0xff, 0xff, 0xff), /* ZTE MF820S */ + .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0200, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0201, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0254, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0257, 0xff, 0xff, 0xff), /* ZTE MF821 */ + .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0265, 0xff, 0xff, 0xff), /* ONDA MT8205 */ + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0284, 0xff, 0xff, 0xff), /* ZTE MF880 */ + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0317, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0326, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0330, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0395, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0412, 0xff, 0xff, 0xff), /* Telewell TW-LTE 4G */ + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0414, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0417, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1012, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1018, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1021, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1057, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1058, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1059, 0xff, 0xff, 0xff) }, @@ -1002,18 +1092,24 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1169, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1170, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1244, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1245, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1245, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1246, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1247, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1247, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1248, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1249, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1250, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1251, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1252, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1252, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1253, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1254, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1255, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1256, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1254, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1255, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&zte_1255_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1256, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1257, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1258, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1259, 0xff, 0xff, 0xff) }, @@ -1058,17 +1154,47 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1298, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1299, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1300, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1301, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1302, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1303, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1333, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1401, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1402, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1424, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1425, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1426, 0xff, 0xff, 0xff), /* ZTE MF91 */ + .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff, + 0xff, 0xff), .driver_info = (kernel_ulong_t)&zte_k3765_z_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0014, 0xff, 0xff, 0xff) }, /* ZTE CDMA products */ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0027, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0059, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0060, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0070, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0073, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0130, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0141, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff, - 0xff, 0xff), .driver_info = (kernel_ulong_t)&zte_k3765_z_blacklist }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0094, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0130, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0133, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0141, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0147, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0152, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0168, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0170, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0176, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0178, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) }, @@ -1079,6 +1205,10 @@ .driver_info = (kernel_ulong_t)&zte_ad3812_z_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2716, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&zte_mc2716_z_blacklist }, + { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x01) }, + { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x05) }, + { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x86, 0x10) }, + { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) }, { USB_DEVICE(ALINK_VENDOR_ID, DLINK_PRODUCT_DWM_652_U5) }, /* Yes, ALINK_VENDOR_ID */ @@ -1096,6 +1226,16 @@ { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X060S_X200), .driver_info = (kernel_ulong_t)&alcatel_x200_blacklist }, + { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X220_X500D), + .driver_info = (kernel_ulong_t)&net_intf6_blacklist }, + { USB_DEVICE(ALCATEL_VENDOR_ID, 0x0052), + .driver_info = (kernel_ulong_t)&net_intf6_blacklist }, + { USB_DEVICE(ALCATEL_VENDOR_ID, 0x00b6), + .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, + { USB_DEVICE(ALCATEL_VENDOR_ID, 0x00b7), + .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, + { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_L100V), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, { USB_DEVICE(AIRPLUS_VENDOR_ID, AIRPLUS_PRODUCT_MCD650) }, { USB_DEVICE(TLAYTECH_VENDOR_ID, TLAYTECH_PRODUCT_TEU800) }, { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W14), @@ -1124,6 +1264,9 @@ { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_E) }, { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_P) }, { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8) }, + { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX) }, + { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLXX), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) }, { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDM) }, @@ -1132,8 +1275,9 @@ { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) }, { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100) }, + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD145) }, + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD200) }, { USB_DEVICE(CELOT_VENDOR_ID, CELOT_PRODUCT_CT680M) }, /* CT-650 CDMA 450 1xEVDO modem */ - { USB_DEVICE(ONDA_VENDOR_ID, ONDA_MT825UP) }, /* ONDA MT825UP modem */ { USB_DEVICE_AND_INTERFACE_INFO(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_GT_B3730, USB_CLASS_CDC_DATA, 0x00, 0x00) }, /* Samsung GT-B3730 LTE USB modem.*/ { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM600) }, { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM610) }, @@ -1177,7 +1321,49 @@ { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU516) }, { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU528) }, { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU526) }, + { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU881) }, + { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU882) }, + { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU581) }, + { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU582) }, + { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU583) }, { USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 0xff, 0xff, 0xff) }, + { USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L02C) }, /* docomo L-02C modem */ + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x02, 0x01) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x02, 0x01) }, /* MediaTek MT6276M modem & app port */ + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_1COM, 0x0a, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_5COM, 0xff, 0x02, 0x01) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_5COM, 0xff, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM, 0xff, 0x02, 0x01) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM, 0xff, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7208_1COM, 0x02, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7208_2COM, 0x02, 0x02, 0x01) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FP_1COM, 0x0a, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FP_2COM, 0x0a, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FPDC_1COM, 0x0a, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FPDC_2COM, 0x0a, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7103_2COM, 0xff, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7106_2COM, 0x02, 0x02, 0x01) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x02, 0x01) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x00, 0x00) }, + { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) }, + { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600A) }, + { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600E) }, + { USB_DEVICE(TPLINK_VENDOR_ID, TPLINK_PRODUCT_MA180), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE(TPLINK_VENDOR_ID, 0x9000), /* TP-Link MA260 */ + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE(CHANGHONG_VENDOR_ID, CHANGHONG_PRODUCT_CH690) }, + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d01, 0xff, 0x02, 0x01) }, /* D-Link DWM-156 (variant) */ + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d01, 0xff, 0x00, 0x00) }, /* D-Link DWM-156 (variant) */ + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d02, 0xff, 0x02, 0x01) }, + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d02, 0xff, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x02, 0x01) }, + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x00, 0x00) }, + { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */ + { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */ { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, option_ids); @@ -1221,7 +1407,7 @@ .ioctl = usb_wwan_ioctl, .attach = usb_wwan_startup, .disconnect = usb_wwan_disconnect, - .release = usb_wwan_release, + .release = option_release, .read_int_callback = option_instat_callback, #ifdef CONFIG_PM .suspend = usb_wwan_suspend, @@ -1231,35 +1417,6 @@ static int debug; -/* per port private data */ - -#define N_IN_URB 4 -#define N_OUT_URB 4 -#define IN_BUFLEN 4096 -#define OUT_BUFLEN 4096 - -struct option_port_private { - /* Input endpoints and buffer for this port */ - struct urb *in_urbs[N_IN_URB]; - u8 *in_buffer[N_IN_URB]; - /* Output endpoints and buffer for this port */ - struct urb *out_urbs[N_OUT_URB]; - u8 *out_buffer[N_OUT_URB]; - unsigned long out_busy; /* Bit vector of URBs in use */ - int opened; - struct usb_anchor delayed; - - /* Settings for the port */ - int rts_state; /* Handshaking pins (outputs) */ - int dtr_state; - int cts_state; /* Handshaking pins (inputs) */ - int dsr_state; - int dcd_state; - int ri_state; - - unsigned long tx_start_time[N_OUT_URB]; -}; - /* Functions used by new usb-serial code. */ static int __init option_init(void) { @@ -1340,6 +1497,7 @@ serial->interface->cur_altsetting->desc.bInterfaceNumber, OPTION_BLACKLIST_RESERVED_IF, (const struct option_blacklist_info *) id->driver_info)) + return -ENODEV; /* Don't bind network interface on Samsung GT-B3730, it is handled by a separate module */ if (serial->dev->descriptor.idVendor == SAMSUNG_VENDOR_ID && @@ -1356,12 +1514,22 @@ return 0; } +static void option_release(struct usb_serial *serial) +{ + struct usb_wwan_intf_private *priv = usb_get_serial_data(serial); + + usb_wwan_release(serial); + + kfree(priv); +} + static void option_instat_callback(struct urb *urb) { int err; int status = urb->status; struct usb_serial_port *port = urb->context; - struct option_port_private *portdata = usb_get_serial_port_data(port); + struct usb_wwan_port_private *portdata = + usb_get_serial_port_data(port); dbg("%s", __func__); dbg("%s: urb %p port %p has data %p", __func__, urb, port, portdata); @@ -1422,7 +1590,7 @@ struct usb_serial *serial = port->serial; struct usb_wwan_intf_private *intfdata = (struct usb_wwan_intf_private *) serial->private; - struct option_port_private *portdata; + struct usb_wwan_port_private *portdata; int ifNum = serial->interface->cur_altsetting->desc.bInterfaceNumber; int val = 0; dbg("%s", __func__); --- linux-3.2.0.orig/drivers/usb/serial/visor.c +++ linux-3.2.0/drivers/usb/serial/visor.c @@ -599,7 +599,9 @@ dest->read_urb = src->read_urb; \ dest->bulk_in_endpointAddress = src->bulk_in_endpointAddress;\ dest->bulk_in_buffer = src->bulk_in_buffer; \ + dest->bulk_in_size = src->bulk_in_size; \ dest->interrupt_in_urb = src->interrupt_in_urb; \ + dest->interrupt_in_urb->context = dest; \ dest->interrupt_in_endpointAddress = \ src->interrupt_in_endpointAddress;\ dest->interrupt_in_buffer = src->interrupt_in_buffer; \ --- linux-3.2.0.orig/drivers/usb/serial/omninet.c +++ linux-3.2.0/drivers/usb/serial/omninet.c @@ -315,7 +315,7 @@ int room = 0; /* Default: no room */ /* FIXME: no consistent locking for write_urb_busy */ - if (wport->write_urb_busy) + if (!wport->write_urb_busy) room = wport->bulk_out_size - OMNINET_HEADERLEN; dbg("%s - returns %d", __func__, room); --- linux-3.2.0.orig/drivers/usb/serial/ftdi_sio_ids.h +++ linux-3.2.0/drivers/usb/serial/ftdi_sio_ids.h @@ -23,12 +23,15 @@ #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */ #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */ #define FTDI_232H_PID 0x6014 /* Single channel hi-speed device */ +#define FTDI_FTX_PID 0x6015 /* FT-X series (FT201X, FT230X, FT231X, etc) */ #define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ #define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ /*** third-party PIDs (using FTDI_VID) ***/ +#define FTDI_LUMEL_PD12_PID 0x6002 + /* * Marvell OpenRD Base, Client * http://www.open-rd.org @@ -39,6 +42,13 @@ /* www.candapter.com Ewert Energy Systems CANdapter device */ #define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */ +/* + * Texas Instruments XDS100v2 JTAG / BeagleBone A3 + * http://processors.wiki.ti.com/index.php/XDS100 + * http://beagleboard.org/bone + */ +#define TI_XDS100V2_PID 0xa6d0 + #define FTDI_NXTCAM_PID 0xABB8 /* NXTCam for Mindstorms NXT */ /* US Interface Navigator (http://www.usinterface.com/) */ @@ -64,6 +74,10 @@ #define FTDI_OPENDCC_THROTTLE_PID 0xBFDA #define FTDI_OPENDCC_GATEWAY_PID 0xBFDB #define FTDI_OPENDCC_GBM_PID 0xBFDC +#define FTDI_OPENDCC_GBM_BOOST_PID 0xBFDD + +/* NZR SEM 16+ USB (http://www.nzr.de) */ +#define FTDI_NZR_SEM_USB_PID 0xC1E0 /* NZR SEM-LOG16+ */ /* * RR-CirKits LocoBuffer USB (http://www.rr-cirkits.com) @@ -90,6 +104,8 @@ #define FTDI_TACTRIX_OPENPORT_13S_PID 0xCC49 /* OpenPort 1.3 Subaru */ #define FTDI_TACTRIX_OPENPORT_13U_PID 0xCC4A /* OpenPort 1.3 Universal */ +#define FTDI_DISTORTEC_JTAG_LOCK_PICK_PID 0xCFF8 + /* SCS HF Radio Modems PID's (http://www.scs-ptc.com) */ /* the VID is the standard ftdi vid (FTDI_VID) */ #define FTDI_SCS_DEVICE_0_PID 0xD010 /* SCS PTC-IIusb */ @@ -132,6 +148,11 @@ #define XSENS_CONVERTER_6_PID 0xD38E #define XSENS_CONVERTER_7_PID 0xD38F +/** + * Zolix (www.zolix.com.cb) product ids + */ +#define FTDI_OMNI1509 0xD491 /* Omni1509 embedded USB-serial */ + /* * NDI (www.ndigital.com) product ids */ @@ -189,7 +210,7 @@ /* * ELV USB devices submitted by Christian Abt of ELV (www.elv.de). - * All of these devices use FTDI's vendor ID (0x0403). + * Almost all of these devices use FTDI's vendor ID (0x0403). * Further IDs taken from ELV Windows .inf file. * * The previously included PID for the UO 100 module was incorrect. @@ -197,6 +218,8 @@ * * Armin Laeuger originally sent the PID for the UM 100 module. */ +#define FTDI_ELV_VID 0x1B1F /* ELV AG */ +#define FTDI_ELV_WS300_PID 0xC006 /* eQ3 WS 300 PC II */ #define FTDI_ELV_USR_PID 0xE000 /* ELV Universal-Sound-Recorder */ #define FTDI_ELV_MSM1_PID 0xE001 /* ELV Mini-Sound-Modul */ #define FTDI_ELV_KL100_PID 0xE002 /* ELV Kfz-Leistungsmesser KL 100 */ @@ -502,6 +525,11 @@ */ #define FTDI_TAVIR_STK500_PID 0xFA33 /* STK500 AVR programmer */ +/* + * TIAO product ids (FTDI_VID) + * http://www.tiaowiki.com/w/Main_Page + */ +#define FTDI_TIAO_UMPA_PID 0x8a98 /* TIAO/DIYGADGET USB Multi-Protocol Adapter */ /********************************/ @@ -525,6 +553,19 @@ #define ADI_GNICEPLUS_PID 0xF001 /* + * Microchip Technology, Inc. + * + * MICROCHIP_VID (0x04D8) and MICROCHIP_USB_BOARD_PID (0x000A) are + * used by single function CDC ACM class based firmware demo + * applications. The VID/PID has also been used in firmware + * emulating FTDI serial chips by: + * Hornby Elite - Digital Command Control Console + * http://www.hornby.com/hornby-dcc/controllers/ + */ +#define MICROCHIP_VID 0x04D8 +#define MICROCHIP_USB_BOARD_PID 0x000A /* CDC RS-232 Emulation Demo */ + +/* * RATOC REX-USB60F */ #define RATOC_VENDOR_ID 0x0584 @@ -544,6 +585,13 @@ #define CONTEC_COM1USBH_PID 0x8311 /* COM-1(USB)H */ /* + * Mitsubishi Electric Corp. (http://www.meau.com) + * Submitted by Konstantin Holoborodko + */ +#define MITSUBISHI_VID 0x06D3 +#define MITSUBISHI_FXUSB_PID 0x0284 /* USB/RS422 converters: FX-USB-AW/-BD */ + +/* * Definitions for B&B Electronics products. */ #define BANDB_VID 0x0856 /* B&B Electronics Vendor ID */ @@ -667,6 +715,10 @@ #define SEALEVEL_2803_6_PID 0X2863 /* SeaLINK+8 (2803) Port 6 */ #define SEALEVEL_2803_7_PID 0X2873 /* SeaLINK+8 (2803) Port 7 */ #define SEALEVEL_2803_8_PID 0X2883 /* SeaLINK+8 (2803) Port 8 */ +#define SEALEVEL_2803R_1_PID 0Xa02a /* SeaLINK+8 (2803-ROHS) Port 1+2 */ +#define SEALEVEL_2803R_2_PID 0Xa02b /* SeaLINK+8 (2803-ROHS) Port 3+4 */ +#define SEALEVEL_2803R_3_PID 0Xa02c /* SeaLINK+8 (2803-ROHS) Port 5+6 */ +#define SEALEVEL_2803R_4_PID 0Xa02d /* SeaLINK+8 (2803-ROHS) Port 7+8 */ /* * JETI SPECTROMETER SPECBOS 1201 @@ -715,6 +767,14 @@ #define TTI_VID 0x103E /* Vendor Id */ #define TTI_QL355P_PID 0x03E8 /* TTi QL355P power supply */ +/* + * Newport Cooperation (www.newport.com) + */ +#define NEWPORT_VID 0x104D +#define NEWPORT_AGILIS_PID 0x3000 +#define NEWPORT_CONEX_CC_PID 0x3002 +#define NEWPORT_CONEX_AGP_PID 0x3006 + /* Interbiometrics USB I/O Board */ /* Developed for Interbiometrics by Rudolf Gugler */ #define INTERBIOMETRICS_VID 0x1209 @@ -758,6 +818,41 @@ #define RTSYSTEMS_VID 0x2100 /* Vendor ID */ #define RTSYSTEMS_SERIAL_VX7_PID 0x9e52 /* Serial converter for VX-7 Radios using FT232RL */ #define RTSYSTEMS_CT29B_PID 0x9e54 /* CT29B Radio Cable */ +#define RTSYSTEMS_RTS01_PID 0x9e57 /* USB-RTS01 Radio Cable */ + + +/* + * Physik Instrumente + * http://www.physikinstrumente.com/en/products/ + */ +/* These two devices use the VID of FTDI */ +#define PI_C865_PID 0xe0a0 /* PI C-865 Piezomotor Controller */ +#define PI_C857_PID 0xe0a1 /* PI Encoder Trigger Box */ + +#define PI_VID 0x1a72 /* Vendor ID */ +#define PI_C866_PID 0x1000 /* PI C-866 Piezomotor Controller */ +#define PI_C663_PID 0x1001 /* PI C-663 Mercury-Step */ +#define PI_C725_PID 0x1002 /* PI C-725 Piezomotor Controller */ +#define PI_E517_PID 0x1005 /* PI E-517 Digital Piezo Controller Operation Module */ +#define PI_C863_PID 0x1007 /* PI C-863 */ +#define PI_E861_PID 0x1008 /* PI E-861 Piezomotor Controller */ +#define PI_C867_PID 0x1009 /* PI C-867 Piezomotor Controller */ +#define PI_E609_PID 0x100D /* PI E-609 Digital Piezo Controller */ +#define PI_E709_PID 0x100E /* PI E-709 Digital Piezo Controller */ +#define PI_100F_PID 0x100F /* PI Digital Piezo Controller */ +#define PI_1011_PID 0x1011 /* PI Digital Piezo Controller */ +#define PI_1012_PID 0x1012 /* PI Motion Controller */ +#define PI_1013_PID 0x1013 /* PI Motion Controller */ +#define PI_1014_PID 0x1014 /* PI Device */ +#define PI_1015_PID 0x1015 /* PI Device */ +#define PI_1016_PID 0x1016 /* PI Digital Servo Module */ + +/* + * Kondo Kagaku Co.Ltd. + * http://www.kondo-robot.com/EN + */ +#define KONDO_VID 0x165c +#define KONDO_USB_SERIAL_PID 0x0002 /* * Bayer Ascensia Contour blood glucose meter USB-converter cable. @@ -1058,7 +1153,8 @@ * STMicroelectonics */ #define ST_VID 0x0483 -#define ST_STMCLT1030_PID 0x3747 /* ST Micro Connect Lite STMCLT1030 */ +#define ST_STMCLT_2232_PID 0x3746 +#define ST_STMCLT_4232_PID 0x3747 /* * Papouch products (http://www.papouch.com/) @@ -1168,3 +1264,22 @@ */ /* TagTracer MIFARE*/ #define FTDI_ZEITCONTROL_TAGTRACE_MIFARE_PID 0xF7C0 + +/* + * Rainforest Automation + */ +/* ZigBee controller */ +#define FTDI_RF_R106 0x8A28 + +/* + * Product: HCP HIT GPRS modem + * Manufacturer: HCP d.o.o. + * ATI command output: Cinterion MC55i + */ +#define FTDI_CINTERION_MC55I_PID 0xA951 + +/* + * Product: Comet Caller ID decoder + * Manufacturer: Crucible Technologies + */ +#define FTDI_CT_COMET_PID 0x8e08 --- linux-3.2.0.orig/drivers/usb/serial/usb_wwan.c +++ linux-3.2.0/drivers/usb/serial/usb_wwan.c @@ -41,7 +41,6 @@ void usb_wwan_dtr_rts(struct usb_serial_port *port, int on) { - struct usb_serial *serial = port->serial; struct usb_wwan_port_private *portdata; struct usb_wwan_intf_private *intfdata; @@ -54,12 +53,11 @@ return; portdata = usb_get_serial_port_data(port); - mutex_lock(&serial->disc_mutex); + /* FIXME: locking */ portdata->rts_state = on; portdata->dtr_state = on; - if (serial->dev) - intfdata->send_setup(port); - mutex_unlock(&serial->disc_mutex); + + intfdata->send_setup(port); } EXPORT_SYMBOL(usb_wwan_dtr_rts); --- linux-3.2.0.orig/drivers/usb/serial/qcaux.c +++ linux-3.2.0/drivers/usb/serial/qcaux.c @@ -36,7 +36,6 @@ #define UTSTARCOM_PRODUCT_UM175_V1 0x3712 #define UTSTARCOM_PRODUCT_UM175_V2 0x3714 #define UTSTARCOM_PRODUCT_UM175_ALLTEL 0x3715 -#define PANTECH_PRODUCT_UML290_VZW 0x3718 /* CMOTECH devices */ #define CMOTECH_VENDOR_ID 0x16d8 @@ -67,7 +66,10 @@ { USB_DEVICE_AND_INTERFACE_INFO(LG_VENDOR_ID, LG_PRODUCT_VX4400_6000, 0xff, 0xff, 0x00) }, { USB_DEVICE_AND_INTERFACE_INFO(SANYO_VENDOR_ID, SANYO_PRODUCT_KATANA_LX, 0xff, 0xff, 0x00) }, { USB_DEVICE_AND_INTERFACE_INFO(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_U520, 0xff, 0x00, 0x00) }, - { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, PANTECH_PRODUCT_UML290_VZW, 0xff, 0xff, 0xff) }, + { USB_VENDOR_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, 0xff, 0xfd, 0xff) }, /* NMEA */ + { USB_VENDOR_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, 0xff, 0xfe, 0xff) }, /* WMC */ + { USB_VENDOR_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, 0xff, 0xff, 0xff) }, /* DIAG */ + { USB_DEVICE_AND_INTERFACE_INFO(0x1fac, 0x0151, 0xff, 0xff, 0xff) }, { }, }; MODULE_DEVICE_TABLE(usb, id_table); --- linux-3.2.0.orig/drivers/usb/serial/generic.c +++ linux-3.2.0/drivers/usb/serial/generic.c @@ -215,8 +215,10 @@ clear_bit(i, &port->write_urbs_free); result = usb_submit_urb(urb, GFP_ATOMIC); if (result) { - dev_err(&port->dev, "%s - error submitting urb: %d\n", + if (!port->port.console) { + dev_err(&port->dev, "%s - error submitting urb: %d\n", __func__, result); + } set_bit(i, &port->write_urbs_free); spin_lock_irqsave(&port->lock, flags); port->tx_bytes -= count; --- linux-3.2.0.orig/drivers/usb/serial/io_edgeport.c +++ linux-3.2.0/drivers/usb/serial/io_edgeport.c @@ -114,7 +114,6 @@ wait_queue_head_t wait_chase; /* for handling sleeping while waiting for chase to finish */ wait_queue_head_t wait_open; /* for handling sleeping while waiting for open to finish */ wait_queue_head_t wait_command; /* for handling sleeping while waiting for command to finish */ - wait_queue_head_t delta_msr_wait; /* for handling sleeping while waiting for msr change to happen */ struct async_icount icount; struct usb_serial_port *port; /* loop back to the owner of this object */ @@ -885,7 +884,6 @@ /* initialize our wait queues */ init_waitqueue_head(&edge_port->wait_open); init_waitqueue_head(&edge_port->wait_chase); - init_waitqueue_head(&edge_port->delta_msr_wait); init_waitqueue_head(&edge_port->wait_command); /* initialize our icount structure */ @@ -1703,13 +1701,17 @@ dbg("%s (%d) TIOCMIWAIT", __func__, port->number); cprev = edge_port->icount; while (1) { - prepare_to_wait(&edge_port->delta_msr_wait, + prepare_to_wait(&port->delta_msr_wait, &wait, TASK_INTERRUPTIBLE); schedule(); - finish_wait(&edge_port->delta_msr_wait, &wait); + finish_wait(&port->delta_msr_wait, &wait); /* see if a signal did it */ if (signal_pending(current)) return -ERESTARTSYS; + + if (port->serial->disconnected) + return -EIO; + cnow = edge_port->icount; if (cnow.rng == cprev.rng && cnow.dsr == cprev.dsr && cnow.dcd == cprev.dcd && cnow.cts == cprev.cts) @@ -2090,7 +2092,7 @@ icount->dcd++; if (newMsr & EDGEPORT_MSR_DELTA_RI) icount->rng++; - wake_up_interruptible(&edge_port->delta_msr_wait); + wake_up_interruptible(&edge_port->port->delta_msr_wait); } /* Save the new modem status */ --- linux-3.2.0.orig/drivers/usb/serial/mos7720.c +++ linux-3.2.0/drivers/usb/serial/mos7720.c @@ -44,7 +44,7 @@ #define DRIVER_DESC "Moschip USB Serial Driver" /* default urb timeout */ -#define MOS_WDR_TIMEOUT (HZ * 5) +#define MOS_WDR_TIMEOUT 5000 #define MOS_MAX_PORT 0x02 #define MOS_WRITE 0x0E @@ -234,11 +234,22 @@ __u8 requesttype = (__u8)0xc0; __u16 index = get_reg_index(reg); __u16 value = get_reg_value(reg, serial_portnum); - int status = usb_control_msg(usbdev, pipe, request, requesttype, value, - index, data, 1, MOS_WDR_TIMEOUT); - if (status < 0) + u8 *buf; + int status; + + buf = kmalloc(1, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + status = usb_control_msg(usbdev, pipe, request, requesttype, value, + index, buf, 1, MOS_WDR_TIMEOUT); + if (status == 1) + *data = *buf; + else if (status < 0) dev_err(&usbdev->dev, "mos7720: usb_control_msg() failed: %d", status); + kfree(buf); + return status; } @@ -1700,7 +1711,7 @@ mos7720_port->shadowMCR |= (UART_MCR_XONANY); /* To set hardware flow control to the specified * * serial port, in SP1/2_CONTROL_REG */ - if (port->number) + if (port_number) write_mos_reg(serial, dummy, SP_CONTROL_REG, 0x01); else write_mos_reg(serial, dummy, SP_CONTROL_REG, 0x02); @@ -2112,7 +2123,7 @@ /* setting configuration feature to one */ usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0), - (__u8)0x03, 0x00, 0x01, 0x00, NULL, 0x00, 5*HZ); + (__u8)0x03, 0x00, 0x01, 0x00, NULL, 0x00, 5000); /* start the interrupt urb */ ret_val = usb_submit_urb(serial->port[0]->interrupt_in_urb, GFP_KERNEL); @@ -2157,7 +2168,7 @@ /* wait for synchronous usb calls to return */ if (mos_parport->msg_pending) wait_for_completion_timeout(&mos_parport->syncmsg_compl, - MOS_WDR_TIMEOUT); + msecs_to_jiffies(MOS_WDR_TIMEOUT)); parport_remove_port(mos_parport->pp); usb_set_serial_data(serial, NULL); --- linux-3.2.0.orig/drivers/usb/serial/cp210x.c +++ linux-3.2.0/drivers/usb/serial/cp210x.c @@ -39,6 +39,8 @@ struct usb_serial_port *port); static void cp210x_get_termios_port(struct usb_serial_port *port, unsigned int *cflagp, unsigned int *baudp); +static void cp210x_change_speed(struct tty_struct *, struct usb_serial_port *, + struct ktermios *); static void cp210x_set_termios(struct tty_struct *, struct usb_serial_port *, struct ktermios*); static int cp210x_tiocmget(struct tty_struct *); @@ -47,6 +49,7 @@ unsigned int, unsigned int); static void cp210x_break_ctl(struct tty_struct *, int); static int cp210x_startup(struct usb_serial *); +static void cp210x_release(struct usb_serial *); static void cp210x_dtr_rts(struct usb_serial_port *p, int on); static int debug; @@ -57,6 +60,7 @@ { USB_DEVICE(0x0489, 0xE000) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */ { USB_DEVICE(0x0489, 0xE003) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */ { USB_DEVICE(0x0745, 0x1000) }, /* CipherLab USB CCD Barcode Scanner 1000 */ + { USB_DEVICE(0x0846, 0x1100) }, /* NetGear Managed Switch M4100 series, M5300 series, M7100 series */ { USB_DEVICE(0x08e6, 0x5501) }, /* Gemalto Prox-PU/CU contactless smartcard reader */ { USB_DEVICE(0x08FD, 0x000A) }, /* Digianswer A/S , ZigBee/802.15.4 MAC Device */ { USB_DEVICE(0x0BED, 0x1100) }, /* MEI (TM) Cashflow-SC Bill/Voucher Acceptor */ @@ -79,6 +83,7 @@ { USB_DEVICE(0x10C4, 0x8066) }, /* Argussoft In-System Programmer */ { USB_DEVICE(0x10C4, 0x806F) }, /* IMS USB to RS422 Converter Cable */ { USB_DEVICE(0x10C4, 0x807A) }, /* Crumb128 board */ + { USB_DEVICE(0x10C4, 0x80C4) }, /* Cygnal Integrated Products, Inc., Optris infrared thermometer */ { USB_DEVICE(0x10C4, 0x80CA) }, /* Degree Controls Inc */ { USB_DEVICE(0x10C4, 0x80DD) }, /* Tracient RFID */ { USB_DEVICE(0x10C4, 0x80F6) }, /* Suunto sports instrument */ @@ -87,11 +92,14 @@ { USB_DEVICE(0x10C4, 0x813F) }, /* Tams Master Easy Control */ { USB_DEVICE(0x10C4, 0x814A) }, /* West Mountain Radio RIGblaster P&P */ { USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */ + { USB_DEVICE(0x2405, 0x0003) }, /* West Mountain Radio RIGblaster Advantage */ { USB_DEVICE(0x10C4, 0x8156) }, /* B&G H3000 link cable */ { USB_DEVICE(0x10C4, 0x815E) }, /* Helicomm IP-Link 1220-DVM */ + { USB_DEVICE(0x10C4, 0x815F) }, /* Timewave HamLinkUSB */ { USB_DEVICE(0x10C4, 0x818B) }, /* AVIT Research USB to TTL */ { USB_DEVICE(0x10C4, 0x819F) }, /* MJS USB Toslink Switcher */ { USB_DEVICE(0x10C4, 0x81A6) }, /* ThinkOptics WavIt */ + { USB_DEVICE(0x10C4, 0x81A9) }, /* Multiplex RC Interface */ { USB_DEVICE(0x10C4, 0x81AC) }, /* MSD Dash Hawk */ { USB_DEVICE(0x10C4, 0x81AD) }, /* INSYS USB Modem */ { USB_DEVICE(0x10C4, 0x81C8) }, /* Lipowsky Industrie Elektronik GmbH, Baby-JTAG */ @@ -114,10 +122,15 @@ { USB_DEVICE(0x10C4, 0x8477) }, /* Balluff RFID */ { USB_DEVICE(0x10C4, 0x85EA) }, /* AC-Services IBUS-IF */ { USB_DEVICE(0x10C4, 0x85EB) }, /* AC-Services CIS-IBUS */ + { USB_DEVICE(0x10C4, 0x85F8) }, /* Virtenio Preon32 */ { USB_DEVICE(0x10C4, 0x8664) }, /* AC-Services CAN-IF */ { USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */ + { USB_DEVICE(0x10C4, 0x88A4) }, /* MMB Networks ZigBee USB Device */ + { USB_DEVICE(0x10C4, 0x88A5) }, /* Planet Innovation Ingeni ZigBee USB Device */ { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */ { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */ + { USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */ + { USB_DEVICE(0x10C4, 0xEA80) }, /* Silicon Labs factory default */ { USB_DEVICE(0x10C4, 0xEA71) }, /* Infinity GPS-MIC-1 Radio Monophone */ { USB_DEVICE(0x10C4, 0xF001) }, /* Elan Digital Systems USBscope50 */ { USB_DEVICE(0x10C4, 0xF002) }, /* Elan Digital Systems USBwave12 */ @@ -127,22 +140,59 @@ { USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem 100EU */ { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */ { USB_DEVICE(0x1555, 0x0004) }, /* Owen AC4 USB-RS485 Converter */ + { USB_DEVICE(0x166A, 0x0201) }, /* Clipsal 5500PACA C-Bus Pascal Automation Controller */ + { USB_DEVICE(0x166A, 0x0301) }, /* Clipsal 5800PC C-Bus Wireless PC Interface */ { USB_DEVICE(0x166A, 0x0303) }, /* Clipsal 5500PCU C-Bus USB interface */ + { USB_DEVICE(0x166A, 0x0304) }, /* Clipsal 5000CT2 C-Bus Black and White Touchscreen */ + { USB_DEVICE(0x166A, 0x0305) }, /* Clipsal C-5000CT2 C-Bus Spectrum Colour Touchscreen */ + { USB_DEVICE(0x166A, 0x0401) }, /* Clipsal L51xx C-Bus Architectural Dimmer */ + { USB_DEVICE(0x166A, 0x0101) }, /* Clipsal 5560884 C-Bus Multi-room Audio Matrix Switcher */ { USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */ { USB_DEVICE(0x16DC, 0x0010) }, /* W-IE-NE-R Plein & Baus GmbH PL512 Power Supply */ { USB_DEVICE(0x16DC, 0x0011) }, /* W-IE-NE-R Plein & Baus GmbH RCM Remote Control for MARATON Power Supply */ { USB_DEVICE(0x16DC, 0x0012) }, /* W-IE-NE-R Plein & Baus GmbH MPOD Multi Channel Power Supply */ { 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(0x17F4, 0xAAAA) }, /* Wavesense Jazz blood glucose meter */ { USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */ { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */ + { USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */ { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */ + { USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */ + { USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */ + { USB_DEVICE(0x1FB9, 0x0100) }, /* Lake Shore Model 121 Current Source */ + { USB_DEVICE(0x1FB9, 0x0200) }, /* Lake Shore Model 218A Temperature Monitor */ + { USB_DEVICE(0x1FB9, 0x0201) }, /* Lake Shore Model 219 Temperature Monitor */ + { USB_DEVICE(0x1FB9, 0x0202) }, /* Lake Shore Model 233 Temperature Transmitter */ + { USB_DEVICE(0x1FB9, 0x0203) }, /* Lake Shore Model 235 Temperature Transmitter */ + { USB_DEVICE(0x1FB9, 0x0300) }, /* Lake Shore Model 335 Temperature Controller */ + { USB_DEVICE(0x1FB9, 0x0301) }, /* Lake Shore Model 336 Temperature Controller */ + { USB_DEVICE(0x1FB9, 0x0302) }, /* Lake Shore Model 350 Temperature Controller */ + { USB_DEVICE(0x1FB9, 0x0303) }, /* Lake Shore Model 371 AC Bridge */ + { USB_DEVICE(0x1FB9, 0x0400) }, /* Lake Shore Model 411 Handheld Gaussmeter */ + { USB_DEVICE(0x1FB9, 0x0401) }, /* Lake Shore Model 425 Gaussmeter */ + { USB_DEVICE(0x1FB9, 0x0402) }, /* Lake Shore Model 455A Gaussmeter */ + { USB_DEVICE(0x1FB9, 0x0403) }, /* Lake Shore Model 475A Gaussmeter */ + { USB_DEVICE(0x1FB9, 0x0404) }, /* Lake Shore Model 465 Three Axis Gaussmeter */ + { USB_DEVICE(0x1FB9, 0x0600) }, /* Lake Shore Model 625A Superconducting MPS */ + { USB_DEVICE(0x1FB9, 0x0601) }, /* Lake Shore Model 642A Magnet Power Supply */ + { USB_DEVICE(0x1FB9, 0x0602) }, /* Lake Shore Model 648 Magnet Power Supply */ + { USB_DEVICE(0x1FB9, 0x0700) }, /* Lake Shore Model 737 VSM Controller */ + { USB_DEVICE(0x1FB9, 0x0701) }, /* Lake Shore Model 776 Hall Matrix */ + { USB_DEVICE(0x3195, 0xF190) }, /* Link Instruments MSO-19 */ + { USB_DEVICE(0x3195, 0xF280) }, /* Link Instruments MSO-28 */ + { USB_DEVICE(0x3195, 0xF281) }, /* Link Instruments MSO-28 */ { USB_DEVICE(0x413C, 0x9500) }, /* DW700 GPS USB interface */ { } /* Terminating Entry */ }; MODULE_DEVICE_TABLE(usb, id_table); +struct cp210x_port_private { + __u8 bInterfaceNumber; +}; + static struct usb_driver cp210x_driver = { .name = "cp210x", .probe = usb_serial_probe, @@ -168,6 +218,7 @@ .tiocmget = cp210x_tiocmget, .tiocmset = cp210x_tiocmset, .attach = cp210x_startup, + .release = cp210x_release, .dtr_rts = cp210x_dtr_rts }; @@ -200,6 +251,8 @@ #define CP210X_EMBED_EVENTS 0x15 #define CP210X_GET_EVENTSTATE 0x16 #define CP210X_SET_CHARS 0x19 +#define CP210X_GET_BAUDRATE 0x1D +#define CP210X_SET_BAUDRATE 0x1E /* CP210X_IFC_ENABLE */ #define UART_ENABLE 0x0001 @@ -253,6 +306,7 @@ unsigned int *data, int size) { struct usb_serial *serial = port->serial; + struct cp210x_port_private *port_priv = usb_get_serial_port_data(port); __le32 *buf; int result, i, length; @@ -268,7 +322,8 @@ /* Issue the request, attempting to read 'size' bytes */ result = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0), request, REQTYPE_DEVICE_TO_HOST, 0x0000, - 0, buf, size, 300); + port_priv->bInterfaceNumber, buf, size, + USB_CTRL_GET_TIMEOUT); /* Convert data into an array of integers */ for (i = 0; i < length; i++) @@ -296,6 +351,7 @@ unsigned int *data, int size) { struct usb_serial *serial = port->serial; + struct cp210x_port_private *port_priv = usb_get_serial_port_data(port); __le32 *buf; int result, i, length; @@ -317,12 +373,14 @@ result = usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0), request, REQTYPE_HOST_TO_DEVICE, 0x0000, - 0, buf, size, 300); + port_priv->bInterfaceNumber, buf, size, + USB_CTRL_SET_TIMEOUT); } else { result = usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0), request, REQTYPE_HOST_TO_DEVICE, data[0], - 0, NULL, 0, 300); + port_priv->bInterfaceNumber, NULL, 0, + USB_CTRL_SET_TIMEOUT); } kfree(buf); @@ -353,8 +411,8 @@ * Quantises the baud rate as per AN205 Table 1 */ static unsigned int cp210x_quantise_baudrate(unsigned int baud) { - if (baud <= 56) baud = 0; - else if (baud <= 300) baud = 300; + if (baud <= 300) + baud = 300; else if (baud <= 600) baud = 600; else if (baud <= 1200) baud = 1200; else if (baud <= 1800) baud = 1800; @@ -382,17 +440,15 @@ else if (baud <= 491520) baud = 460800; else if (baud <= 567138) baud = 500000; else if (baud <= 670254) baud = 576000; - else if (baud <= 1053257) baud = 921600; - else if (baud <= 1474560) baud = 1228800; - else if (baud <= 2457600) baud = 1843200; - else baud = 3686400; + else if (baud < 1000000) + baud = 921600; + else if (baud > 2000000) + baud = 2000000; return baud; } static int cp210x_open(struct tty_struct *tty, struct usb_serial_port *port) { - int result; - dbg("%s - port %d", __func__, port->number); if (cp210x_set_config_single(port, CP210X_IFC_ENABLE, UART_ENABLE)) { @@ -401,13 +457,14 @@ return -EPROTO; } - result = usb_serial_generic_open(tty, port); - if (result) - return result; - /* Configure the termios structure */ cp210x_get_termios(tty, port); - return 0; + + /* The baud rate must be initialised on cp2104 */ + if (tty) + cp210x_change_speed(tty, port, NULL); + + return usb_serial_generic_open(tty, port); } static void cp210x_close(struct usb_serial_port *port) @@ -459,10 +516,7 @@ dbg("%s - port %d", __func__, port->number); - cp210x_get_config(port, CP210X_GET_BAUDDIV, &baud, 2); - /* Convert to baudrate */ - if (baud) - baud = cp210x_quantise_baudrate((BAUD_RATE_GEN_FREQ + baud/2)/ baud); + cp210x_get_config(port, CP210X_GET_BAUDRATE, &baud, 4); dbg("%s - baud rate = %d", __func__, baud); *baudp = baud; @@ -576,11 +630,64 @@ *cflagp = cflag; } +/* + * CP2101 supports the following baud rates: + * + * 300, 600, 1200, 1800, 2400, 4800, 7200, 9600, 14400, 19200, 28800, + * 38400, 56000, 57600, 115200, 128000, 230400, 460800, 921600 + * + * CP2102 and CP2103 support the following additional rates: + * + * 4000, 16000, 51200, 64000, 76800, 153600, 250000, 256000, 500000, + * 576000 + * + * The device will map a requested rate to a supported one, but the result + * of requests for rates greater than 1053257 is undefined (see AN205). + * + * CP2104, CP2105 and CP2110 support most rates up to 2M, 921k and 1M baud, + * respectively, with an error less than 1%. The actual rates are determined + * by + * + * div = round(freq / (2 x prescale x request)) + * actual = freq / (2 x prescale x div) + * + * For CP2104 and CP2105 freq is 48Mhz and prescale is 4 for request <= 365bps + * or 1 otherwise. + * For CP2110 freq is 24Mhz and prescale is 4 for request <= 300bps or 1 + * otherwise. + */ +static void cp210x_change_speed(struct tty_struct *tty, + struct usb_serial_port *port, struct ktermios *old_termios) +{ + u32 baud; + + baud = tty->termios->c_ospeed; + + /* This maps the requested rate to a rate valid on cp2102 or cp2103, + * or to an arbitrary rate in [1M,2M]. + * + * NOTE: B0 is not implemented. + */ + baud = cp210x_quantise_baudrate(baud); + + dbg("%s - setting baud rate to %u", __func__, baud); + if (cp210x_set_config(port, CP210X_SET_BAUDRATE, &baud, + sizeof(baud))) { + dev_warn(&port->dev, "failed to set baud rate to %u\n", baud); + if (old_termios) + baud = old_termios->c_ospeed; + else + baud = 9600; + } + + tty_encode_baud_rate(tty, baud, baud); +} + static void cp210x_set_termios(struct tty_struct *tty, struct usb_serial_port *port, struct ktermios *old_termios) { unsigned int cflag, old_cflag; - unsigned int baud = 0, bits; + unsigned int bits; unsigned int modem_ctl[4]; dbg("%s - port %d", __func__, port->number); @@ -591,20 +698,9 @@ tty->termios->c_cflag &= ~CMSPAR; cflag = tty->termios->c_cflag; old_cflag = old_termios->c_cflag; - baud = cp210x_quantise_baudrate(tty_get_baud_rate(tty)); - /* If the baud rate is to be updated*/ - if (baud != tty_termios_baud_rate(old_termios) && baud != 0) { - dbg("%s - Setting baud rate to %d baud", __func__, - baud); - if (cp210x_set_config_single(port, CP210X_SET_BAUDDIV, - ((BAUD_RATE_GEN_FREQ + baud/2) / baud))) { - dbg("Baud rate requested not supported by device"); - baud = tty_termios_baud_rate(old_termios); - } - } - /* Report back the resulting baud rate */ - tty_encode_baud_rate(tty, baud, baud); + if (tty->termios->c_ospeed != old_termios->c_ospeed) + cp210x_change_speed(tty, port, old_termios); /* If the number of data bits is to be updated */ if ((cflag & CSIZE) != (old_cflag & CSIZE)) { @@ -784,11 +880,39 @@ static int cp210x_startup(struct usb_serial *serial) { + struct cp210x_port_private *port_priv; + int i; + /* cp210x buffers behave strangely unless device is reset */ usb_reset_device(serial->dev); + + for (i = 0; i < serial->num_ports; i++) { + port_priv = kzalloc(sizeof(*port_priv), GFP_KERNEL); + if (!port_priv) + return -ENOMEM; + + memset(port_priv, 0x00, sizeof(*port_priv)); + port_priv->bInterfaceNumber = + serial->interface->cur_altsetting->desc.bInterfaceNumber; + + usb_set_serial_port_data(serial->port[i], port_priv); + } + return 0; } +static void cp210x_release(struct usb_serial *serial) +{ + struct cp210x_port_private *port_priv; + int i; + + for (i = 0; i < serial->num_ports; i++) { + port_priv = usb_get_serial_port_data(serial->port[i]); + kfree(port_priv); + usb_set_serial_port_data(serial->port[i], NULL); + } +} + static int __init cp210x_init(void) { int retval; --- linux-3.2.0.orig/drivers/usb/serial/spcp8x5.c +++ linux-3.2.0/drivers/usb/serial/spcp8x5.c @@ -163,7 +163,6 @@ struct spcp8x5_private { spinlock_t lock; enum spcp8x5_type type; - wait_queue_head_t delta_msr_wait; u8 line_control; u8 line_status; }; @@ -197,7 +196,6 @@ goto cleanup; spin_lock_init(&priv->lock); - init_waitqueue_head(&priv->delta_msr_wait); priv->type = type; usb_set_serial_port_data(serial->port[i] , priv); } @@ -340,7 +338,6 @@ struct spcp8x5_private *priv = usb_get_serial_port_data(port); unsigned long flags; unsigned int cflag = tty->termios->c_cflag; - unsigned int old_cflag = old_termios->c_cflag; unsigned short uartdata; unsigned char buf[2] = {0, 0}; int baud; @@ -349,15 +346,15 @@ /* check that they really want us to change something */ - if (!tty_termios_hw_change(tty->termios, old_termios)) + if (old_termios && !tty_termios_hw_change(tty->termios, old_termios)) return; /* set DTR/RTS active */ spin_lock_irqsave(&priv->lock, flags); control = priv->line_control; - if ((old_cflag & CBAUD) == B0) { + if (old_termios && (old_termios->c_cflag & CBAUD) == B0) { priv->line_control |= MCR_DTR; - if (!(old_cflag & CRTSCTS)) + if (!(old_termios->c_cflag & CRTSCTS)) priv->line_control |= MCR_RTS; } if (control != priv->line_control) { @@ -447,7 +444,6 @@ * status of the device. */ static int spcp8x5_open(struct tty_struct *tty, struct usb_serial_port *port) { - struct ktermios tmp_termios; struct usb_serial *serial = port->serial; struct spcp8x5_private *priv = usb_get_serial_port_data(port); int ret; @@ -470,7 +466,7 @@ /* Setup termios */ if (tty) - spcp8x5_set_termios(tty, port, &tmp_termios); + spcp8x5_set_termios(tty, port, NULL); spcp8x5_get_msr(serial->dev, &status, priv->type); @@ -502,7 +498,7 @@ priv->line_status &= ~UART_STATE_TRANSIENT_MASK; spin_unlock_irqrestore(&priv->lock, flags); /* wake up the wait for termios */ - wake_up_interruptible(&priv->delta_msr_wait); + wake_up_interruptible(&port->delta_msr_wait); if (!urb->actual_length) return; @@ -552,12 +548,15 @@ while (1) { /* wake up in bulk read */ - interruptible_sleep_on(&priv->delta_msr_wait); + interruptible_sleep_on(&port->delta_msr_wait); /* see if a signal did it */ if (signal_pending(current)) return -ERESTARTSYS; + if (port->serial->disconnected) + return -EIO; + spin_lock_irqsave(&priv->lock, flags); status = priv->line_status; spin_unlock_irqrestore(&priv->lock, flags); --- linux-3.2.0.orig/drivers/usb/serial/ssu100.c +++ linux-3.2.0/drivers/usb/serial/ssu100.c @@ -78,7 +78,6 @@ spinlock_t status_lock; u8 shadowLSR; u8 shadowMSR; - wait_queue_head_t delta_msr_wait; /* Used for TIOCMIWAIT */ struct async_icount icount; }; @@ -387,8 +386,9 @@ spin_unlock_irqrestore(&priv->status_lock, flags); while (1) { - wait_event_interruptible(priv->delta_msr_wait, - ((priv->icount.rng != prev.rng) || + wait_event_interruptible(port->delta_msr_wait, + (port->serial->disconnected || + (priv->icount.rng != prev.rng) || (priv->icount.dsr != prev.dsr) || (priv->icount.dcd != prev.dcd) || (priv->icount.cts != prev.cts))); @@ -396,6 +396,9 @@ if (signal_pending(current)) return -ERESTARTSYS; + if (port->serial->disconnected) + return -EIO; + spin_lock_irqsave(&priv->status_lock, flags); cur = priv->icount; spin_unlock_irqrestore(&priv->status_lock, flags); @@ -478,7 +481,6 @@ } spin_lock_init(&priv->status_lock); - init_waitqueue_head(&priv->delta_msr_wait); usb_set_serial_port_data(port, priv); return ssu100_initdevice(serial->dev); @@ -533,19 +535,16 @@ dbg("%s\n", __func__); - mutex_lock(&port->serial->disc_mutex); - if (!port->serial->disconnected) { - /* Disable flow control */ - if (!on && - ssu100_setregister(dev, 0, UART_MCR, 0) < 0) + /* Disable flow control */ + if (!on) { + if (ssu100_setregister(dev, 0, UART_MCR, 0) < 0) dev_err(&port->dev, "error from flowcontrol urb\n"); - /* drop RTS and DTR */ - if (on) - set_mctrl(dev, TIOCM_DTR | TIOCM_RTS); - else - clear_mctrl(dev, TIOCM_DTR | TIOCM_RTS); } - mutex_unlock(&port->serial->disc_mutex); + /* drop RTS and DTR */ + if (on) + set_mctrl(dev, TIOCM_DTR | TIOCM_RTS); + else + clear_mctrl(dev, TIOCM_DTR | TIOCM_RTS); } static void ssu100_update_msr(struct usb_serial_port *port, u8 msr) @@ -567,7 +566,7 @@ priv->icount.dcd++; if (msr & UART_MSR_TERI) priv->icount.rng++; - wake_up_interruptible(&priv->delta_msr_wait); + wake_up_interruptible(&port->delta_msr_wait); } } --- linux-3.2.0.orig/drivers/usb/serial/ftdi_sio.c +++ linux-3.2.0/drivers/usb/serial/ftdi_sio.c @@ -74,8 +74,7 @@ int flags; /* some ASYNC_xxxx flags are supported */ unsigned long last_dtr_rts; /* saved modem control outputs */ struct async_icount icount; - wait_queue_head_t delta_msr_wait; /* Used for TIOCMIWAIT */ - char prev_status, diff_status; /* Used for TIOCMIWAIT */ + char prev_status; /* Used for TIOCMIWAIT */ char transmit_empty; /* If transmitter is empty or not */ struct usb_serial_port *port; __u16 interface; /* FT2232C, FT2232H or FT4232H port interface @@ -188,6 +187,7 @@ .driver_info = (kernel_ulong_t)&ftdi_8u2232c_quirk }, { USB_DEVICE(FTDI_VID, FTDI_4232H_PID) }, { USB_DEVICE(FTDI_VID, FTDI_232H_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_FTX_PID) }, { USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) }, { USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) }, { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) }, @@ -195,6 +195,10 @@ { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_THROTTLE_PID) }, { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_GATEWAY_PID) }, { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_GBM_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_GBM_BOOST_PID) }, + { USB_DEVICE(NEWPORT_VID, NEWPORT_AGILIS_PID) }, + { USB_DEVICE(NEWPORT_VID, NEWPORT_CONEX_CC_PID) }, + { USB_DEVICE(NEWPORT_VID, NEWPORT_CONEX_AGP_PID) }, { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_IOBOARD_PID) }, { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_MINI_IOBOARD_PID) }, { USB_DEVICE(FTDI_VID, FTDI_SPROG_II) }, @@ -536,6 +540,10 @@ { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_6_PID) }, { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_7_PID) }, { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_8_PID) }, + { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_1_PID) }, + { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_2_PID) }, + { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_3_PID) }, + { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_4_PID) }, { USB_DEVICE(IDTECH_VID, IDTECH_IDT1221U_PID) }, { USB_DEVICE(OCT_VID, OCT_US101_PID) }, { USB_DEVICE(OCT_VID, OCT_DK201_PID) }, @@ -578,9 +586,12 @@ { USB_DEVICE(FTDI_VID, FTDI_IBS_PEDO_PID) }, { USB_DEVICE(FTDI_VID, FTDI_IBS_PROD_PID) }, { USB_DEVICE(FTDI_VID, FTDI_TAVIR_STK500_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_TIAO_UMPA_PID), + .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, /* * ELV devices: */ + { USB_DEVICE(FTDI_ELV_VID, FTDI_ELV_WS300_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ELV_USR_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ELV_MSM1_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ELV_KL100_PID) }, @@ -638,6 +649,7 @@ { USB_DEVICE(FTDI_VID, FTDI_RM_CANVIEW_PID) }, { USB_DEVICE(ACTON_VID, ACTON_SPECTRAPRO_PID) }, { USB_DEVICE(CONTEC_VID, CONTEC_COM1USBH_PID) }, + { USB_DEVICE(MITSUBISHI_VID, MITSUBISHI_FXUSB_PID) }, { USB_DEVICE(BANDB_VID, BANDB_USOTL4_PID) }, { USB_DEVICE(BANDB_VID, BANDB_USTL4_PID) }, { USB_DEVICE(BANDB_VID, BANDB_USO9ML2_PID) }, @@ -667,6 +679,7 @@ { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_5_PID) }, { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_6_PID) }, { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_7_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_OMNI1509) }, { USB_DEVICE(MOBILITY_VID, MOBILITY_USB_SERIAL_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ACTIVE_ROBOTS_PID) }, { USB_DEVICE(FTDI_VID, FTDI_MHAM_KW_PID) }, @@ -698,6 +711,7 @@ { USB_DEVICE(FTDI_VID, FTDI_PCDJ_DAC2_PID) }, { USB_DEVICE(FTDI_VID, FTDI_RRCIRKITS_LOCOBUFFER_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ASK_RDR400_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_NZR_SEM_USB_PID) }, { USB_DEVICE(ICOM_VID, ICOM_ID_1_PID) }, { USB_DEVICE(ICOM_VID, ICOM_OPC_U_UC_PID) }, { USB_DEVICE(ICOM_VID, ICOM_ID_RP2C1_PID) }, @@ -731,6 +745,7 @@ { USB_DEVICE(TELLDUS_VID, TELLDUS_TELLSTICK_PID) }, { USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_SERIAL_VX7_PID) }, { USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_CT29B_PID) }, + { USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_RTS01_PID) }, { USB_DEVICE(FTDI_VID, FTDI_MAXSTREAM_PID) }, { USB_DEVICE(FTDI_VID, FTDI_PHI_FISCO_PID) }, { USB_DEVICE(TML_VID, TML_USB_SERIAL_PID) }, @@ -797,14 +812,38 @@ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, { USB_DEVICE(ADI_VID, ADI_GNICEPLUS_PID), .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, + { USB_DEVICE_AND_INTERFACE_INFO(MICROCHIP_VID, MICROCHIP_USB_BOARD_PID, + USB_CLASS_VENDOR_SPEC, + USB_SUBCLASS_VENDOR_SPEC, 0x00) }, { USB_DEVICE(JETI_VID, JETI_SPC1201_PID) }, { USB_DEVICE(MARVELL_VID, MARVELL_SHEEVAPLUG_PID), .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, { USB_DEVICE(LARSENBRUSGAARD_VID, LB_ALTITRACK_PID) }, { USB_DEVICE(GN_OTOMETRICS_VID, AURICAL_USB_PID) }, + { USB_DEVICE(FTDI_VID, PI_C865_PID) }, + { USB_DEVICE(FTDI_VID, PI_C857_PID) }, + { USB_DEVICE(PI_VID, PI_C866_PID) }, + { USB_DEVICE(PI_VID, PI_C663_PID) }, + { USB_DEVICE(PI_VID, PI_C725_PID) }, + { USB_DEVICE(PI_VID, PI_E517_PID) }, + { USB_DEVICE(PI_VID, PI_C863_PID) }, + { USB_DEVICE(PI_VID, PI_E861_PID) }, + { USB_DEVICE(PI_VID, PI_C867_PID) }, + { USB_DEVICE(PI_VID, PI_E609_PID) }, + { USB_DEVICE(PI_VID, PI_E709_PID) }, + { USB_DEVICE(PI_VID, PI_100F_PID) }, + { USB_DEVICE(PI_VID, PI_1011_PID) }, + { USB_DEVICE(PI_VID, PI_1012_PID) }, + { USB_DEVICE(PI_VID, PI_1013_PID) }, + { USB_DEVICE(PI_VID, PI_1014_PID) }, + { USB_DEVICE(PI_VID, PI_1015_PID) }, + { USB_DEVICE(PI_VID, PI_1016_PID) }, + { USB_DEVICE(KONDO_VID, KONDO_USB_SERIAL_PID) }, { USB_DEVICE(BAYER_VID, BAYER_CONTOUR_CABLE_PID) }, { USB_DEVICE(FTDI_VID, MARVELL_OPENRD_PID), .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, + { USB_DEVICE(FTDI_VID, TI_XDS100V2_PID), + .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, { USB_DEVICE(FTDI_VID, HAMEG_HO820_PID) }, { USB_DEVICE(FTDI_VID, HAMEG_HO720_PID) }, { USB_DEVICE(FTDI_VID, HAMEG_HO730_PID) }, @@ -836,11 +875,20 @@ { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_LOGBOOKML_PID) }, { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_LS_LOGBOOK_PID) }, { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_HS_LOGBOOK_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_CINTERION_MC55I_PID) }, { USB_DEVICE(FTDI_VID, FTDI_DOTEC_PID) }, { USB_DEVICE(QIHARDWARE_VID, MILKYMISTONE_JTAGSERIAL_PID), .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, - { USB_DEVICE(ST_VID, ST_STMCLT1030_PID), + { USB_DEVICE(ST_VID, ST_STMCLT_2232_PID), + .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, + { USB_DEVICE(ST_VID, ST_STMCLT_4232_PID), .driver_info = (kernel_ulong_t)&ftdi_stmclite_quirk }, + { USB_DEVICE(FTDI_VID, FTDI_RF_R106) }, + { USB_DEVICE(FTDI_VID, FTDI_DISTORTEC_JTAG_LOCK_PICK_PID), + .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, + { USB_DEVICE(FTDI_VID, FTDI_LUMEL_PD12_PID) }, + /* Crucible Devices */ + { USB_DEVICE(FTDI_VID, FTDI_CT_COMET_PID) }, { }, /* Optional parameter entry */ { } /* Terminating entry */ }; @@ -863,7 +911,8 @@ [FT232RL] = "FT232RL", [FT2232H] = "FT2232H", [FT4232H] = "FT4232H", - [FT232H] = "FT232H" + [FT232H] = "FT232H", + [FTX] = "FT-X" }; @@ -1164,7 +1213,8 @@ break; case FT232BM: /* FT232BM chip */ case FT2232C: /* FT2232C chip */ - case FT232RL: + case FT232RL: /* FT232RL chip */ + case FTX: /* FT-X series */ if (baud <= 3000000) { __u16 product_id = le16_to_cpu( port->serial->dev->descriptor.idProduct); @@ -1333,8 +1383,7 @@ goto check_and_exit; } - if ((new_serial.baud_base != priv->baud_base) && - (new_serial.baud_base < 9600)) { + if (new_serial.baud_base != priv->baud_base) { mutex_unlock(&priv->cfg_lock); return -EINVAL; } @@ -1454,10 +1503,14 @@ } else if (version < 0x900) { /* Assume it's an FT232RL */ priv->chip_type = FT232RL; - } else { + } else if (version < 0x1000) { /* Assume it's an FT232H */ priv->chip_type = FT232H; + } else { + /* Assume it's an FT-X series device */ + priv->chip_type = FTX; } + dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]); } @@ -1585,7 +1638,8 @@ priv->chip_type == FT232RL || priv->chip_type == FT2232H || priv->chip_type == FT4232H || - priv->chip_type == FT232H)) { + priv->chip_type == FT232H || + priv->chip_type == FTX)) { retval = device_create_file(&port->dev, &dev_attr_latency_timer); } @@ -1607,7 +1661,8 @@ priv->chip_type == FT232RL || priv->chip_type == FT2232H || priv->chip_type == FT4232H || - priv->chip_type == FT232H) { + priv->chip_type == FT232H || + priv->chip_type == FTX) { device_remove_file(&port->dev, &dev_attr_latency_timer); } } @@ -1656,7 +1711,6 @@ kref_init(&priv->kref); mutex_init(&priv->cfg_lock); memset(&priv->icount, 0x00, sizeof(priv->icount)); - init_waitqueue_head(&priv->delta_msr_wait); priv->flags = ASYNC_LOW_LATENCY; @@ -1759,15 +1813,19 @@ dbg("%s", __func__); - if (strcmp(udev->manufacturer, "CALAO Systems") == 0) + if ((udev->manufacturer && !strcmp(udev->manufacturer, "CALAO Systems")) || + (udev->product && !strcmp(udev->product, "BeagleBone/XDS100V2"))) return ftdi_jtag_probe(serial); return 0; } /* - * First and second port on STMCLiteadaptors is reserved for JTAG interface - * and the forth port for pio + * First two ports on JTAG adaptors using an FT4232 such as STMicroelectronics's + * ST Micro Connect Lite are reserved for JTAG or other non-UART interfaces and + * can be accessed from userspace. + * The next two ports are enabled as UARTs by default, where port 2 is + * a conventional RS-232 UART. */ static int ftdi_stmclite_probe(struct usb_serial *serial) { @@ -1776,12 +1834,13 @@ dbg("%s", __func__); - if (interface == udev->actconfig->interface[2]) - return 0; - - dev_info(&udev->dev, "Ignoring serial port reserved for JTAG\n"); + if (interface == udev->actconfig->interface[0] || + interface == udev->actconfig->interface[1]) { + dev_info(&udev->dev, "Ignoring serial port reserved for JTAG\n"); + return -ENODEV; + } - return -ENODEV; + return 0; } /* @@ -1815,6 +1874,8 @@ dbg("%s", __func__); + wake_up_interruptible(&port->delta_msr_wait); + remove_sysfs_attrs(port); kref_put(&priv->kref, ftdi_sio_priv_release); @@ -1824,6 +1885,7 @@ static int ftdi_open(struct tty_struct *tty, struct usb_serial_port *port) { + struct ktermios dummy; struct usb_device *dev = port->serial->dev; struct ftdi_private *priv = usb_get_serial_port_data(port); int result; @@ -1842,8 +1904,10 @@ This is same behaviour as serial.c/rs_open() - Kuba */ /* ftdi_set_termios will send usb control messages */ - if (tty) - ftdi_set_termios(tty, port, tty->termios); + if (tty) { + memset(&dummy, 0, sizeof(dummy)); + ftdi_set_termios(tty, port, &dummy); + } /* Start reading from the device */ result = usb_serial_generic_open(tty, port); @@ -1857,24 +1921,22 @@ { struct ftdi_private *priv = usb_get_serial_port_data(port); - mutex_lock(&port->serial->disc_mutex); - if (!port->serial->disconnected) { - /* Disable flow control */ - if (!on && usb_control_msg(port->serial->dev, + /* Disable flow control */ + if (!on) { + if (usb_control_msg(port->serial->dev, usb_sndctrlpipe(port->serial->dev, 0), FTDI_SIO_SET_FLOW_CTRL_REQUEST, FTDI_SIO_SET_FLOW_CTRL_REQUEST_TYPE, 0, priv->interface, NULL, 0, WDR_TIMEOUT) < 0) { - dev_err(&port->dev, "error from flowcontrol urb\n"); + dev_err(&port->dev, "error from flowcontrol urb\n"); } - /* drop RTS and DTR */ - if (on) - set_mctrl(port, TIOCM_DTR | TIOCM_RTS); - else - clear_mctrl(port, TIOCM_DTR | TIOCM_RTS); } - mutex_unlock(&port->serial->disc_mutex); + /* drop RTS and DTR */ + if (on) + set_mctrl(port, TIOCM_DTR | TIOCM_RTS); + else + clear_mctrl(port, TIOCM_DTR | TIOCM_RTS); } /* @@ -1955,17 +2017,19 @@ N.B. packet may be processed more than once, but differences are only processed once. */ status = packet[0] & FTDI_STATUS_B0_MASK; - if (status & FTDI_RS0_CTS) - priv->icount.cts++; - if (status & FTDI_RS0_DSR) - priv->icount.dsr++; - if (status & FTDI_RS0_RI) - priv->icount.rng++; - if (status & FTDI_RS0_RLSD) - priv->icount.dcd++; if (status != priv->prev_status) { - priv->diff_status |= status ^ priv->prev_status; - wake_up_interruptible(&priv->delta_msr_wait); + char diff_status = status ^ priv->prev_status; + + if (diff_status & FTDI_RS0_CTS) + priv->icount.cts++; + if (diff_status & FTDI_RS0_DSR) + priv->icount.dsr++; + if (diff_status & FTDI_RS0_RI) + priv->icount.rng++; + if (diff_status & FTDI_RS0_RLSD) + priv->icount.dcd++; + + wake_up_interruptible(&port->delta_msr_wait); priv->prev_status = status; } @@ -2105,6 +2169,9 @@ cflag = termios->c_cflag; + if (!old_termios) + goto no_skip; + if (old_termios->c_cflag == termios->c_cflag && old_termios->c_ispeed == termios->c_ispeed && old_termios->c_ospeed == termios->c_ospeed) @@ -2118,6 +2185,7 @@ (termios->c_cflag & (CSIZE|PARODD|PARENB|CMSPAR|CSTOPB))) goto no_data_parity_stop_changes; +no_skip: /* Set number of data bits, parity, stop bits */ urb_value = 0; @@ -2277,6 +2345,7 @@ case FT2232H: case FT4232H: case FT232H: + case FTX: len = 2; break; default: @@ -2363,15 +2432,16 @@ */ case TIOCMIWAIT: cprev = priv->icount; - while (1) { - interruptible_sleep_on(&priv->delta_msr_wait); + for (;;) { + interruptible_sleep_on(&port->delta_msr_wait); /* see if a signal did it */ if (signal_pending(current)) return -ERESTARTSYS; + + if (port->serial->disconnected) + return -EIO; + cnow = priv->icount; - if (cnow.rng == cprev.rng && cnow.dsr == cprev.dsr && - cnow.dcd == cprev.dcd && cnow.cts == cprev.cts) - return -EIO; /* no change => error */ if (((arg & TIOCM_RNG) && (cnow.rng != cprev.rng)) || ((arg & TIOCM_DSR) && (cnow.dsr != cprev.dsr)) || ((arg & TIOCM_CD) && (cnow.dcd != cprev.dcd)) || @@ -2380,8 +2450,6 @@ } cprev = cnow; } - /* not reached */ - break; case TIOCSERGETLSR: return get_lsr_info(port, (struct serial_struct __user *)arg); break; --- linux-3.2.0.orig/drivers/usb/serial/opticon.c +++ linux-3.2.0/drivers/usb/serial/opticon.c @@ -160,7 +160,11 @@ { struct usb_serial *serial = port->serial; int retval; - u8 buffer[2]; + u8 *buffer; + + buffer = kzalloc(1, GFP_KERNEL); + if (!buffer) + return -ENOMEM; buffer[0] = val; /* Send the message to the vendor control endpoint @@ -169,6 +173,7 @@ requesttype, USB_DIR_OUT|USB_TYPE_VENDOR|USB_RECIP_INTERFACE, 0, 0, buffer, 1, 0); + kfree(buffer); return retval; } @@ -292,7 +297,7 @@ if (!dr) { dev_err(&port->dev, "out of memory\n"); count = -ENOMEM; - goto error; + goto error_no_dr; } dr->bRequestType = USB_TYPE_VENDOR | USB_RECIP_INTERFACE | USB_DIR_OUT; @@ -322,6 +327,8 @@ return count; error: + kfree(dr); +error_no_dr: usb_free_urb(urb); error_no_urb: kfree(buffer); --- linux-3.2.0.orig/drivers/usb/serial/cypress_m8.c +++ linux-3.2.0/drivers/usb/serial/cypress_m8.c @@ -96,6 +96,7 @@ static const struct usb_device_id id_table_cyphidcomrs232[] = { { USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) }, { USB_DEVICE(VENDOR_ID_POWERCOM, PRODUCT_ID_UPS) }, + { USB_DEVICE(VENDOR_ID_FRWD, PRODUCT_ID_CYPHIDCOM_FRWD) }, { } /* Terminating entry */ }; @@ -109,6 +110,7 @@ { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB_LT20) }, { USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) }, { USB_DEVICE(VENDOR_ID_POWERCOM, PRODUCT_ID_UPS) }, + { USB_DEVICE(VENDOR_ID_FRWD, PRODUCT_ID_CYPHIDCOM_FRWD) }, { USB_DEVICE(VENDOR_ID_DAZZLE, PRODUCT_ID_CA42) }, { } /* Terminating entry */ }; @@ -150,7 +152,6 @@ int baud_rate; /* stores current baud rate in integer form */ int isthrottled; /* if throttled, discard reads */ - wait_queue_head_t delta_msr_wait; /* used for TIOCMIWAIT */ char prev_status, diff_status; /* used for TIOCMIWAIT */ /* we pass a pointer to this as the argument sent to cypress_set_termios old_termios */ @@ -268,6 +269,12 @@ * Cypress serial helper functions *****************************************************************************/ +/* FRWD Dongle hidcom needs to skip reset and speed checks */ +static inline bool is_frwd(struct usb_device *dev) +{ + return ((le16_to_cpu(dev->descriptor.idVendor) == VENDOR_ID_FRWD) && + (le16_to_cpu(dev->descriptor.idProduct) == PRODUCT_ID_CYPHIDCOM_FRWD)); +} static int analyze_baud_rate(struct usb_serial_port *port, speed_t new_rate) { @@ -277,6 +284,10 @@ if (unstable_bauds) return new_rate; + /* FRWD Dongle uses 115200 bps */ + if (is_frwd(port->serial->dev)) + return new_rate; + /* * The general purpose firmware for the Cypress M8 allows for * a maximum speed of 57600bps (I have no idea whether DeLorme @@ -488,9 +499,12 @@ kfree(priv); return -ENOMEM; } - init_waitqueue_head(&priv->delta_msr_wait); - usb_reset_configuration(serial->dev); + /* Skip reset for FRWD device. It is a workaound: + device hangs if it receives SET_CONFIGURE in Configured + state. */ + if (!is_frwd(serial->dev)) + usb_reset_configuration(serial->dev); priv->cmd_ctrl = 0; priv->line_control = 0; @@ -928,12 +942,16 @@ switch (cmd) { /* This code comes from drivers/char/serial.c and ftdi_sio.c */ case TIOCMIWAIT: - while (priv != NULL) { - interruptible_sleep_on(&priv->delta_msr_wait); + for (;;) { + interruptible_sleep_on(&port->delta_msr_wait); /* see if a signal did it */ if (signal_pending(current)) return -ERESTARTSYS; - else { + + if (port->serial->disconnected) + return -EIO; + + { char diff = priv->diff_status; if (diff == 0) return -EIO; /* no change => error */ @@ -1261,7 +1279,7 @@ if (priv->current_status != priv->prev_status) { priv->diff_status |= priv->current_status ^ priv->prev_status; - wake_up_interruptible(&priv->delta_msr_wait); + wake_up_interruptible(&port->delta_msr_wait); priv->prev_status = priv->current_status; } spin_unlock_irqrestore(&priv->lock, flags); --- linux-3.2.0.orig/drivers/usb/serial/ti_usb_3410_5052.h +++ linux-3.2.0/drivers/usb/serial/ti_usb_3410_5052.h @@ -37,6 +37,7 @@ #define TI_5152_BOOT_PRODUCT_ID 0x5152 /* no EEPROM, no firmware */ #define TI_5052_EEPROM_PRODUCT_ID 0x505A /* EEPROM, no firmware */ #define TI_5052_FIRMWARE_PRODUCT_ID 0x505F /* firmware is running */ +#define FRI2_PRODUCT_ID 0x5053 /* Fish River Island II */ /* Multi-Tech vendor and product ids */ #define MTS_VENDOR_ID 0x06E0 @@ -49,6 +50,12 @@ #define MTS_MT9234ZBA_PRODUCT_ID 0xF115 #define MTS_MT9234ZBAOLD_PRODUCT_ID 0x0319 +/* Abbott Diabetics vendor and product ids */ +#define ABBOTT_VENDOR_ID 0x1a61 +#define ABBOTT_STEREO_PLUG_ID 0x3410 +#define ABBOTT_PRODUCT_ID ABBOTT_STEREO_PLUG_ID +#define ABBOTT_STRIP_PORT_ID 0x3420 + /* Commands */ #define TI_GET_VERSION 0x01 #define TI_GET_PORT_STATUS 0x02 --- linux-3.2.0.orig/drivers/usb/serial/ark3116.c +++ linux-3.2.0/drivers/usb/serial/ark3116.c @@ -49,7 +49,7 @@ #define DRIVER_NAME "ark3116" /* usb timeout of 1 second */ -#define ARK_TIMEOUT (1*HZ) +#define ARK_TIMEOUT 1000 static const struct usb_device_id id_table[] = { { USB_DEVICE(0x6547, 0x0232) }, @@ -68,7 +68,6 @@ } struct ark3116_private { - wait_queue_head_t delta_msr_wait; struct async_icount icount; int irda; /* 1 for irda device */ @@ -148,7 +147,6 @@ if (!priv) return -ENOMEM; - init_waitqueue_head(&priv->delta_msr_wait); mutex_init(&priv->hw_lock); spin_lock_init(&priv->status_lock); @@ -460,10 +458,14 @@ case TIOCMIWAIT: for (;;) { struct async_icount prev = priv->icount; - interruptible_sleep_on(&priv->delta_msr_wait); + interruptible_sleep_on(&port->delta_msr_wait); /* see if a signal did it */ if (signal_pending(current)) return -ERESTARTSYS; + + if (port->serial->disconnected) + return -EIO; + if ((prev.rng == priv->icount.rng) && (prev.dsr == priv->icount.dsr) && (prev.dcd == priv->icount.dcd) && @@ -584,7 +586,7 @@ priv->icount.dcd++; if (msr & UART_MSR_TERI) priv->icount.rng++; - wake_up_interruptible(&priv->delta_msr_wait); + wake_up_interruptible(&port->delta_msr_wait); } } --- linux-3.2.0.orig/drivers/usb/early/ehci-dbgp.c +++ linux-3.2.0/drivers/usb/early/ehci-dbgp.c @@ -450,7 +450,7 @@ writel(FLAG_CF, &ehci_regs->configured_flag); /* Wait until the controller is no longer halted */ - loop = 10; + loop = 1000; do { status = readl(&ehci_regs->status); if (!(status & STS_HALT)) --- linux-3.2.0.orig/drivers/usb/core/hub.c +++ linux-3.2.0/drivers/usb/core/hub.c @@ -24,6 +24,8 @@ #include #include #include +#include +#include #include #include @@ -462,6 +464,15 @@ static inline int hub_clear_tt_buffer (struct usb_device *hdev, u16 devinfo, u16 tt) { + /* Need to clear both directions for control ep */ + if (((devinfo >> 11) & USB_ENDPOINT_XFERTYPE_MASK) == + USB_ENDPOINT_XFER_CONTROL) { + int status = usb_control_msg(hdev, usb_sndctrlpipe(hdev, 0), + HUB_CLEAR_TT_BUFFER, USB_RT_PORT, + devinfo ^ 0x8000, tt, NULL, 0, 1000); + if (status) + return status; + } return usb_control_msg(hdev, usb_sndctrlpipe(hdev, 0), HUB_CLEAR_TT_BUFFER, USB_RT_PORT, devinfo, tt, NULL, 0, 1000); @@ -481,13 +492,16 @@ int limit = 100; spin_lock_irqsave (&hub->tt.lock, flags); - while (--limit && !list_empty (&hub->tt.clear_list)) { + while (!list_empty(&hub->tt.clear_list)) { struct list_head *next; struct usb_tt_clear *clear; struct usb_device *hdev = hub->hdev; const struct hc_driver *drv; int status; + if (!hub->quiescing && --limit < 0) + break; + next = hub->tt.clear_list.next; clear = list_entry (next, struct usb_tt_clear, clear_list); list_del (&clear->clear_list); @@ -615,6 +629,60 @@ return ret; } +static int hub_set_port_link_state(struct usb_hub *hub, int port1, + unsigned int link_status) +{ + return set_port_feature(hub->hdev, + port1 | (link_status << 3), + USB_PORT_FEAT_LINK_STATE); +} + +/* + * If USB 3.0 ports are placed into the Disabled state, they will no longer + * detect any device connects or disconnects. This is generally not what the + * USB core wants, since it expects a disabled port to produce a port status + * change event when a new device connects. + * + * Instead, set the link state to Disabled, wait for the link to settle into + * that state, clear any change bits, and then put the port into the RxDetect + * state. + */ +static int hub_usb3_port_disable(struct usb_hub *hub, int port1) +{ + int ret; + int total_time; + u16 portchange, portstatus; + + if (!hub_is_superspeed(hub->hdev)) + return -EINVAL; + + ret = hub_set_port_link_state(hub, port1, USB_SS_PORT_LS_SS_DISABLED); + if (ret) { + dev_err(hub->intfdev, "cannot disable port %d (err = %d)\n", + port1, ret); + return ret; + } + + /* Wait for the link to enter the disabled state. */ + for (total_time = 0; ; total_time += HUB_DEBOUNCE_STEP) { + ret = hub_port_status(hub, port1, &portstatus, &portchange); + if (ret < 0) + return ret; + + if ((portstatus & USB_PORT_STAT_LINK_STATE) == + USB_SS_PORT_LS_SS_DISABLED) + break; + if (total_time >= HUB_DEBOUNCE_TIMEOUT) + break; + msleep(HUB_DEBOUNCE_STEP); + } + if (total_time >= HUB_DEBOUNCE_TIMEOUT) + dev_warn(hub->intfdev, "Could not disable port %d after %d ms\n", + port1, total_time); + + return hub_set_port_link_state(hub, port1, USB_SS_PORT_LS_RX_DETECT); +} + static int hub_port_disable(struct usb_hub *hub, int port1, int set_state) { struct usb_device *hdev = hub->hdev; @@ -623,8 +691,13 @@ if (hdev->children[port1-1] && set_state) usb_set_device_state(hdev->children[port1-1], USB_STATE_NOTATTACHED); - if (!hub->error && !hub_is_superspeed(hub->hdev)) - ret = clear_port_feature(hdev, port1, USB_PORT_FEAT_ENABLE); + if (!hub->error) { + if (hub_is_superspeed(hub->hdev)) + ret = hub_usb3_port_disable(hub, port1); + else + ret = clear_port_feature(hdev, port1, + USB_PORT_FEAT_ENABLE); + } if (ret) dev_err(hub->intfdev, "cannot disable port %d (err = %d)\n", port1, ret); @@ -705,10 +778,26 @@ if (type == HUB_INIT3) goto init3; - /* After a resume, port power should still be on. + /* The superspeed hub except for root hub has to use Hub Depth + * value as an offset into the route string to locate the bits + * it uses to determine the downstream port number. So hub driver + * should send a set hub depth request to superspeed hub after + * the superspeed hub is set configuration in initialization or + * reset procedure. + * + * After a resume, port power should still be on. * For any other type of activation, turn it on. */ if (type != HUB_RESUME) { + if (hdev->parent && hub_is_superspeed(hdev)) { + ret = usb_control_msg(hdev, usb_sndctrlpipe(hdev, 0), + HUB_SET_DEPTH, USB_RT_HUB, + hdev->level - 1, 0, NULL, 0, + USB_CTRL_SET_TIMEOUT); + if (ret < 0) + dev_err(hub->intfdev, + "set hub depth failed\n"); + } /* Speed up system boot by using a delayed_work for the * hub's initial power-up delays. This is pretty awkward @@ -935,7 +1024,7 @@ if (hub->has_indicators) cancel_delayed_work_sync(&hub->leds); if (hub->tt.hub) - cancel_work_sync(&hub->tt.clear_work); + flush_work_sync(&hub->tt.clear_work); } /* caller has locked the hub device */ @@ -987,18 +1076,6 @@ goto fail; } - if (hub_is_superspeed(hdev) && (hdev->parent != NULL)) { - ret = usb_control_msg(hdev, usb_sndctrlpipe(hdev, 0), - HUB_SET_DEPTH, USB_RT_HUB, - hdev->level - 1, 0, NULL, 0, - USB_CTRL_SET_TIMEOUT); - - if (ret < 0) { - message = "can't set hub depth"; - goto fail; - } - } - /* Request the entire hub descriptor. * hub->descriptor can handle USB_MAXCHILDREN ports, * but the hub can/will return fewer bytes here. @@ -1640,7 +1717,6 @@ { struct usb_device *udev = *pdev; int i; - struct usb_hcd *hcd = bus_to_hcd(udev->bus); /* mark the device as inactive, so any further urb submissions for * this device (and any of its children) will fail immediately. @@ -1663,9 +1739,7 @@ * so that the hardware is now fully quiesced. */ dev_dbg (&udev->dev, "unregistering device\n"); - mutex_lock(hcd->bandwidth_mutex); usb_disable_device(udev, 0); - mutex_unlock(hcd->bandwidth_mutex); usb_hcd_synchronize_unlinks(udev); usb_remove_ep_devs(&udev->ep0); @@ -1819,7 +1893,7 @@ if (err < 0) { dev_err(&udev->dev, "can't read configurations, error %d\n", err); - goto fail; + return err; } } if (udev->wusb == 1 && udev->authorized == 0) { @@ -1835,8 +1909,12 @@ udev->serial = usb_cache_string(udev, udev->descriptor.iSerialNumber); } err = usb_enumerate_device_otg(udev); -fail: - return err; + if (err < 0) + return err; + + usb_detect_interface_quirks(udev); + + return 0; } @@ -1896,6 +1974,14 @@ /* Tell the world! */ announce_device(udev); + if (udev->serial) + add_device_randomness(udev->serial, strlen(udev->serial)); + if (udev->product) + add_device_randomness(udev->product, strlen(udev->product)); + if (udev->manufacturer) + add_device_randomness(udev->manufacturer, + strlen(udev->manufacturer)); + device_enable_async_suspend(&udev->dev); /* Register the device. The device driver is responsible * for configuring the device and invoking the add-device @@ -1932,6 +2018,10 @@ */ int usb_deauthorize_device(struct usb_device *usb_dev) { + char *product = NULL; + char *manufacturer = NULL; + char *serial = NULL; + usb_lock_device(usb_dev); if (usb_dev->authorized == 0) goto out_unauthorized; @@ -1939,11 +2029,12 @@ usb_dev->authorized = 0; usb_set_configuration(usb_dev, -1); - kfree(usb_dev->product); + product = usb_dev->product; + manufacturer = usb_dev->manufacturer; + serial = usb_dev->serial; + usb_dev->product = kstrdup("n/a (unauthorized)", GFP_KERNEL); - kfree(usb_dev->manufacturer); usb_dev->manufacturer = kstrdup("n/a (unauthorized)", GFP_KERNEL); - kfree(usb_dev->serial); usb_dev->serial = kstrdup("n/a (unauthorized)", GFP_KERNEL); usb_destroy_configuration(usb_dev); @@ -1951,6 +2042,12 @@ out_unauthorized: usb_unlock_device(usb_dev); + if (product || manufacturer || serial) { + synchronize_rcu(); + kfree(product); + kfree(manufacturer); + kfree(serial); + } return 0; } @@ -1958,6 +2055,9 @@ int usb_authorize_device(struct usb_device *usb_dev) { int result = 0, c; + char *product = NULL; + char *manufacturer = NULL; + char *serial = NULL; usb_lock_device(usb_dev); if (usb_dev->authorized == 1) @@ -1976,11 +2076,12 @@ goto error_device_descriptor; } - kfree(usb_dev->product); + product = usb_dev->product; + manufacturer = usb_dev->manufacturer; + serial = usb_dev->serial; + usb_dev->product = NULL; - kfree(usb_dev->manufacturer); usb_dev->manufacturer = NULL; - kfree(usb_dev->serial); usb_dev->serial = NULL; usb_dev->authorized = 1; @@ -2008,6 +2109,12 @@ error_autoresume: out_authorized: usb_unlock_device(usb_dev); // complements locktree + if (product || manufacturer || serial) { + synchronize_rcu(); + kfree(product); + kfree(manufacturer); + kfree(serial); + } return result; } @@ -2033,17 +2140,21 @@ #define HUB_SHORT_RESET_TIME 10 #define HUB_BH_RESET_TIME 50 #define HUB_LONG_RESET_TIME 200 -#define HUB_RESET_TIMEOUT 500 +#define HUB_RESET_TIMEOUT 800 static int hub_port_reset(struct usb_hub *hub, int port1, struct usb_device *udev, unsigned int delay, bool warm); -/* Is a USB 3.0 port in the Inactive state? */ -static bool hub_port_inactive(struct usb_hub *hub, u16 portstatus) +/* Is a USB 3.0 port in the Inactive or Complinance Mode state? + * Port worm reset is required to recover + */ +static bool hub_port_warm_reset_required(struct usb_hub *hub, u16 portstatus) { return hub_is_superspeed(hub->hdev) && - (portstatus & USB_PORT_STAT_LINK_STATE) == - USB_SS_PORT_LS_SS_INACTIVE; + (((portstatus & USB_PORT_STAT_LINK_STATE) == + USB_SS_PORT_LS_SS_INACTIVE) || + ((portstatus & USB_PORT_STAT_LINK_STATE) == + USB_SS_PORT_LS_COMP_MOD)) ; } static int hub_port_wait_reset(struct usb_hub *hub, int port1, @@ -2064,73 +2175,43 @@ if (ret < 0) return ret; - /* - * Some buggy devices require a warm reset to be issued even - * when the port appears not to be connected. + /* The port state is unknown until the reset completes. */ + if ((portstatus & USB_PORT_STAT_RESET)) + goto delay; + + if (hub_port_warm_reset_required(hub, portstatus)) + return -ENOTCONN; + + /* Device went away? */ + if (!(portstatus & USB_PORT_STAT_CONNECTION)) + return -ENOTCONN; + + /* bomb out completely if the connection bounced. A USB 3.0 + * connection may bounce if multiple warm resets were issued, + * but the device may have successfully re-connected. Ignore it. */ - if (!warm) { - /* - * Some buggy devices can cause an NEC host controller - * to transition to the "Error" state after a hot port - * reset. This will show up as the port state in - * "Inactive", and the port may also report a - * disconnect. Forcing a warm port reset seems to make - * the device work. - * - * See https://bugzilla.kernel.org/show_bug.cgi?id=41752 - */ - if (hub_port_inactive(hub, portstatus)) { - int ret; - - if ((portchange & USB_PORT_STAT_C_CONNECTION)) - clear_port_feature(hub->hdev, port1, - USB_PORT_FEAT_C_CONNECTION); - if (portchange & USB_PORT_STAT_C_LINK_STATE) - clear_port_feature(hub->hdev, port1, - USB_PORT_FEAT_C_PORT_LINK_STATE); - if (portchange & USB_PORT_STAT_C_RESET) - clear_port_feature(hub->hdev, port1, - USB_PORT_FEAT_C_RESET); - dev_dbg(hub->intfdev, "hot reset failed, warm reset port %d\n", - port1); - ret = hub_port_reset(hub, port1, - udev, HUB_BH_RESET_TIME, - true); - if ((portchange & USB_PORT_STAT_C_CONNECTION)) - clear_port_feature(hub->hdev, port1, - USB_PORT_FEAT_C_CONNECTION); - return ret; - } - /* Device went away? */ - if (!(portstatus & USB_PORT_STAT_CONNECTION)) - return -ENOTCONN; - - /* bomb out completely if the connection bounced */ - if ((portchange & USB_PORT_STAT_C_CONNECTION)) - return -ENOTCONN; + if (!hub_is_superspeed(hub->hdev) && + (portchange & USB_PORT_STAT_C_CONNECTION)) + return -ENOTCONN; - /* if we`ve finished resetting, then break out of - * the loop - */ - if (!(portstatus & USB_PORT_STAT_RESET) && - (portstatus & USB_PORT_STAT_ENABLE)) { - if (hub_is_wusb(hub)) - udev->speed = USB_SPEED_WIRELESS; - else if (hub_is_superspeed(hub->hdev)) - udev->speed = USB_SPEED_SUPER; - else if (portstatus & USB_PORT_STAT_HIGH_SPEED) - udev->speed = USB_SPEED_HIGH; - else if (portstatus & USB_PORT_STAT_LOW_SPEED) - udev->speed = USB_SPEED_LOW; - else - udev->speed = USB_SPEED_FULL; - return 0; - } - } else { - if (portchange & USB_PORT_STAT_C_BH_RESET) + if ((portstatus & USB_PORT_STAT_ENABLE)) { + if (!udev) return 0; + + if (hub_is_wusb(hub)) + udev->speed = USB_SPEED_WIRELESS; + else if (hub_is_superspeed(hub->hdev)) + udev->speed = USB_SPEED_SUPER; + else if (portstatus & USB_PORT_STAT_HIGH_SPEED) + udev->speed = USB_SPEED_HIGH; + else if (portstatus & USB_PORT_STAT_LOW_SPEED) + udev->speed = USB_SPEED_LOW; + else + udev->speed = USB_SPEED_FULL; + return 0; } +delay: /* switch to the long delay after two short delay failures */ if (delay_time >= 2 * HUB_SHORT_RESET_TIME) delay = HUB_LONG_RESET_TIME; @@ -2144,41 +2225,39 @@ } static void hub_port_finish_reset(struct usb_hub *hub, int port1, - struct usb_device *udev, int *status, bool warm) + struct usb_device *udev, int *status) { switch (*status) { case 0: - if (!warm) { - struct usb_hcd *hcd; - /* TRSTRCY = 10 ms; plus some extra */ - msleep(10 + 40); + /* TRSTRCY = 10 ms; plus some extra */ + msleep(10 + 40); + if (udev) { + struct usb_hcd *hcd = bus_to_hcd(udev->bus); + update_devnum(udev, 0); - hcd = bus_to_hcd(udev->bus); - if (hcd->driver->reset_device) { - *status = hcd->driver->reset_device(hcd, udev); - if (*status < 0) { - dev_err(&udev->dev, "Cannot reset " - "HCD device state\n"); - break; - } - } + /* The xHC may think the device is already reset, + * so ignore the status. + */ + if (hcd->driver->reset_device) + hcd->driver->reset_device(hcd, udev); } /* FALL THROUGH */ case -ENOTCONN: case -ENODEV: clear_port_feature(hub->hdev, port1, USB_PORT_FEAT_C_RESET); - /* FIXME need disconnect() for NOTATTACHED device */ - if (warm) { + if (hub_is_superspeed(hub->hdev)) { clear_port_feature(hub->hdev, port1, USB_PORT_FEAT_C_BH_PORT_RESET); clear_port_feature(hub->hdev, port1, USB_PORT_FEAT_C_PORT_LINK_STATE); - } else { + clear_port_feature(hub->hdev, port1, + USB_PORT_FEAT_C_CONNECTION); + } + if (udev) usb_set_device_state(udev, *status ? USB_STATE_NOTATTACHED : USB_STATE_DEFAULT); - } break; } } @@ -2188,18 +2267,30 @@ struct usb_device *udev, unsigned int delay, bool warm) { int i, status; + u16 portchange, portstatus; - if (!warm) { - /* Block EHCI CF initialization during the port reset. - * Some companion controllers don't like it when they mix. - */ - down_read(&ehci_cf_port_reset_rwsem); - } else { - if (!hub_is_superspeed(hub->hdev)) { + if (!hub_is_superspeed(hub->hdev)) { + if (warm) { dev_err(hub->intfdev, "only USB3 hub support " "warm reset\n"); return -EINVAL; } + /* Block EHCI CF initialization during the port reset. + * Some companion controllers don't like it when they mix. + */ + down_read(&ehci_cf_port_reset_rwsem); + } else if (!warm) { + /* + * If the caller hasn't explicitly requested a warm reset, + * double check and see if one is needed. + */ + status = hub_port_status(hub, port1, + &portstatus, &portchange); + if (status < 0) + goto done; + + if (hub_port_warm_reset_required(hub, portstatus)) + warm = true; } /* Reset the port */ @@ -2220,10 +2311,33 @@ status); } - /* return on disconnect or reset */ + /* Check for disconnect or reset */ if (status == 0 || status == -ENOTCONN || status == -ENODEV) { - hub_port_finish_reset(hub, port1, udev, &status, warm); - goto done; + hub_port_finish_reset(hub, port1, udev, &status); + + if (!hub_is_superspeed(hub->hdev)) + goto done; + + /* + * If a USB 3.0 device migrates from reset to an error + * state, re-issue the warm reset. + */ + if (hub_port_status(hub, port1, + &portstatus, &portchange) < 0) + goto done; + + if (!hub_port_warm_reset_required(hub, portstatus)) + goto done; + + /* + * If the port is in SS.Inactive or Compliance Mode, the + * hot or warm reset failed. Try another warm reset. + */ + if (!warm) { + dev_dbg(hub->intfdev, "hot reset failed, warm reset port %d\n", + port1); + warm = true; + } } dev_dbg (hub->intfdev, @@ -2237,7 +2351,7 @@ port1); done: - if (!warm) + if (!hub_is_superspeed(hub->hdev)) up_read(&ehci_cf_port_reset_rwsem); return status; @@ -2419,6 +2533,10 @@ NULL, 0, USB_CTRL_SET_TIMEOUT); + /* Try to enable USB2 hardware LPM again */ + if (udev->usb2_hw_lpm_capable == 1) + usb_set_usb2_hardware_lpm(udev, 1); + /* System sleep transitions should never fail */ if (!PMSG_IS_AUTO(msg)) status = 0; @@ -2448,7 +2566,7 @@ static int finish_port_resume(struct usb_device *udev) { int status = 0; - u16 devstatus; + u16 devstatus = 0; /* caller owns the udev device lock */ dev_dbg(&udev->dev, "%s\n", @@ -2493,7 +2611,13 @@ if (status) { dev_dbg(&udev->dev, "gone after usb resume? status %d\n", status); - } else if (udev->actconfig) { + /* + * There are a few quirky devices which violate the standard + * by claiming to have remote wakeup enabled after a reset, + * which crash if the feature is cleared, hence check for + * udev->reset_resume + */ + } else if (udev->actconfig && !udev->reset_resume) { le16_to_cpus(&devstatus); if (devstatus & (1 << USB_DEVICE_REMOTE_WAKEUP)) { status = usb_control_msg(udev, @@ -3068,6 +3192,22 @@ if (retval) goto fail; + /* + * Some superspeed devices have finished the link training process + * and attached to a superspeed hub port, but the device descriptor + * got from those devices show they aren't superspeed devices. Warm + * reset the port attached by the devices can fix them. + */ + if ((udev->speed == USB_SPEED_SUPER) && + (le16_to_cpu(udev->descriptor.bcdUSB) < 0x0300)) { + dev_err(&udev->dev, "got a wrong device descriptor, " + "warm reset device\n"); + hub_port_reset(hub, port1, udev, + HUB_BH_RESET_TIME, true); + retval = -EINVAL; + goto fail; + } + if (udev->descriptor.bMaxPacketSize0 == 0xff || udev->speed == USB_SPEED_SUPER) i = 512; @@ -3625,12 +3765,24 @@ /* Warm reset a USB3 protocol port if it's in * SS.Inactive state. */ - if (hub_is_superspeed(hub->hdev) && - (portstatus & USB_PORT_STAT_LINK_STATE) - == USB_SS_PORT_LS_SS_INACTIVE) { + if (hub_port_warm_reset_required(hub, portstatus)) { + int status; + struct usb_device *udev = + hub->hdev->children[i - 1]; + dev_dbg(hub_dev, "warm reset port %d\n", i); - hub_port_reset(hub, i, NULL, - HUB_BH_RESET_TIME, true); + if (!udev) { + status = hub_port_reset(hub, i, + NULL, HUB_BH_RESET_TIME, + true); + if (status < 0) + hub_port_disable(hub, i, 1); + } else { + usb_lock_device(udev); + status = usb_reset_device(udev); + usb_unlock_device(udev); + } + connect_change = 0; } if (connect_change) --- linux-3.2.0.orig/drivers/usb/core/hcd-pci.c +++ linux-3.2.0/drivers/usb/core/hcd-pci.c @@ -173,6 +173,7 @@ struct hc_driver *driver; struct usb_hcd *hcd; int retval; + int hcd_irq = 0; if (usb_disabled()) return -ENODEV; @@ -187,12 +188,19 @@ return -ENODEV; dev->current_state = PCI_D0; - if (!dev->irq) { - dev_err(&dev->dev, - "Found HC with no IRQ. Check BIOS/PCI %s setup!\n", - pci_name(dev)); - retval = -ENODEV; - goto disable_pci; + /* + * The xHCI driver has its own irq management + * make sure irq setup is not touched for xhci in generic hcd code + */ + if ((driver->flags & HCD_MASK) != HCD_USB3) { + if (!dev->irq) { + dev_err(&dev->dev, + "Found HC with no IRQ. Check BIOS/PCI %s setup!\n", + pci_name(dev)); + retval = -ENODEV; + goto disable_pci; + } + hcd_irq = dev->irq; } hcd = usb_create_hcd(driver, &dev->dev, pci_name(dev)); @@ -242,7 +250,7 @@ pci_set_master(dev); - retval = usb_add_hcd(hcd, dev->irq, IRQF_SHARED); + retval = usb_add_hcd(hcd, hcd_irq, IRQF_SHARED); if (retval != 0) goto unmap_registers; set_hs_companion(dev, hcd); --- linux-3.2.0.orig/drivers/usb/core/driver.c +++ linux-3.2.0/drivers/usb/core/driver.c @@ -541,22 +541,10 @@ } /* returns 0 if no match, 1 if match */ -int usb_match_one_id(struct usb_interface *interface, - const struct usb_device_id *id) +int usb_match_one_id_intf(struct usb_device *dev, + struct usb_host_interface *intf, + const struct usb_device_id *id) { - struct usb_host_interface *intf; - struct usb_device *dev; - - /* proc_connectinfo in devio.c may call us with id == NULL. */ - if (id == NULL) - return 0; - - intf = interface->cur_altsetting; - dev = interface_to_usbdev(interface); - - if (!usb_match_device(dev, id)) - return 0; - /* The interface class, subclass, and protocol should never be * checked for a match if the device class is Vendor Specific, * unless the match record specifies the Vendor ID. */ @@ -581,6 +569,26 @@ return 1; } + +/* returns 0 if no match, 1 if match */ +int usb_match_one_id(struct usb_interface *interface, + const struct usb_device_id *id) +{ + struct usb_host_interface *intf; + struct usb_device *dev; + + /* proc_connectinfo in devio.c may call us with id == NULL. */ + if (id == NULL) + return 0; + + intf = interface->cur_altsetting; + dev = interface_to_usbdev(interface); + + if (!usb_match_device(dev, id)) + return 0; + + return usb_match_one_id_intf(dev, intf, id); +} EXPORT_SYMBOL_GPL(usb_match_one_id); /** @@ -1198,8 +1206,13 @@ if (status == 0) { status = usb_suspend_device(udev, msg); - /* Again, ignore errors during system sleep transitions */ - if (!PMSG_IS_AUTO(msg)) + /* + * Ignore errors from non-root-hub devices during + * system sleep transitions. For the most part, + * these devices should go to low power anyway when + * the entire bus is suspended. + */ + if (udev->parent && !PMSG_IS_AUTO(msg)) status = 0; } --- linux-3.2.0.orig/drivers/usb/core/hcd.c +++ linux-3.2.0/drivers/usb/core/hcd.c @@ -1002,10 +1002,7 @@ if (retval) { dev_err (parent_dev, "can't register root hub for %s, %d\n", dev_name(&usb_dev->dev), retval); - } - mutex_unlock(&usb_bus_list_lock); - - if (retval == 0) { + } else { spin_lock_irq (&hcd_root_hub_lock); hcd->rh_registered = 1; spin_unlock_irq (&hcd_root_hub_lock); @@ -1014,6 +1011,7 @@ if (HCD_DEAD(hcd)) usb_hc_died (hcd); /* This time clean up */ } + mutex_unlock(&usb_bus_list_lock); return retval; } @@ -1412,11 +1410,10 @@ ret = -EAGAIN; else urb->transfer_flags |= URB_DMA_MAP_SG; - if (n != urb->num_sgs) { - urb->num_sgs = n; + urb->num_mapped_sgs = n; + if (n != urb->num_sgs) urb->transfer_flags |= URB_DMA_SG_COMBINED; - } } else if (urb->sg) { struct scatterlist *sg = urb->sg; urb->transfer_dma = dma_map_page( @@ -2466,8 +2463,10 @@ && device_can_wakeup(&hcd->self.root_hub->dev)) dev_dbg(hcd->self.controller, "supports USB remote wakeup\n"); - /* enable irqs just before we start the controller */ - if (usb_hcd_is_primary_hcd(hcd)) { + /* enable irqs just before we start the controller, + * if the BIOS provides legacy PCI irqs. + */ + if (usb_hcd_is_primary_hcd(hcd) && irqnum) { retval = usb_hcd_request_irqs(hcd, irqnum, irqflags); if (retval) goto err_request_irq; --- linux-3.2.0.orig/drivers/usb/core/message.c +++ linux-3.2.0/drivers/usb/core/message.c @@ -308,7 +308,8 @@ retval = usb_unlink_urb(io->urbs [i]); if (retval != -EINPROGRESS && retval != -ENODEV && - retval != -EBUSY) + retval != -EBUSY && + retval != -EIDRM) dev_err(&io->dev->dev, "%s, unlink --> %d\n", __func__, retval); @@ -317,7 +318,6 @@ } spin_lock(&io->lock); } - urb->dev = NULL; /* on the last completion, signal usb_sg_wait() */ io->bytes += urb->actual_length; @@ -524,7 +524,6 @@ case -ENXIO: /* hc didn't queue this one */ case -EAGAIN: case -ENOMEM: - io->urbs[i]->dev = NULL; retval = 0; yield(); break; @@ -542,7 +541,6 @@ /* fail any uncompleted urbs */ default: - io->urbs[i]->dev = NULL; io->urbs[i]->status = retval; dev_dbg(&io->dev->dev, "%s, submit --> %d\n", __func__, retval); @@ -593,7 +591,10 @@ if (!io->urbs [i]->dev) continue; retval = usb_unlink_urb(io->urbs [i]); - if (retval != -EINPROGRESS && retval != -EBUSY) + if (retval != -EINPROGRESS + && retval != -ENODEV + && retval != -EBUSY + && retval != -EIDRM) dev_warn(&io->dev->dev, "%s, unlink --> %d\n", __func__, retval); } @@ -1135,8 +1136,6 @@ * Deallocates hcd/hardware state for the endpoints (nuking all or most * pending urbs) and usbcore state for the interfaces, so that usbcore * must usb_set_configuration() before any interfaces could be used. - * - * Must be called with hcd->bandwidth_mutex held. */ void usb_disable_device(struct usb_device *dev, int skip_ep0) { @@ -1189,7 +1188,9 @@ usb_disable_endpoint(dev, i + USB_DIR_IN, false); } /* Remove endpoints from the host controller internal state */ + mutex_lock(hcd->bandwidth_mutex); usb_hcd_alloc_bandwidth(dev, NULL, NULL, NULL); + mutex_unlock(hcd->bandwidth_mutex); /* Second pass: remove endpoint pointers */ } for (i = skip_ep0; i < 16; ++i) { @@ -1749,7 +1750,6 @@ /* if it's already configured, clear out old state first. * getting rid of old interfaces means unbinding their drivers. */ - mutex_lock(hcd->bandwidth_mutex); if (dev->state != USB_STATE_ADDRESS) usb_disable_device(dev, 1); /* Skip ep0 */ @@ -1762,6 +1762,7 @@ * host controller will not allow submissions to dropped endpoints. If * this call fails, the device state is unchanged. */ + mutex_lock(hcd->bandwidth_mutex); ret = usb_hcd_alloc_bandwidth(dev, cp, NULL, NULL); if (ret < 0) { mutex_unlock(hcd->bandwidth_mutex); @@ -1769,28 +1770,8 @@ goto free_interfaces; } - ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), - USB_REQ_SET_CONFIGURATION, 0, configuration, 0, - NULL, 0, USB_CTRL_SET_TIMEOUT); - if (ret < 0) { - /* All the old state is gone, so what else can we do? - * The device is probably useless now anyway. - */ - cp = NULL; - } - - dev->actconfig = cp; - if (!cp) { - usb_set_device_state(dev, USB_STATE_ADDRESS); - usb_hcd_alloc_bandwidth(dev, NULL, NULL, NULL); - mutex_unlock(hcd->bandwidth_mutex); - usb_autosuspend_device(dev); - goto free_interfaces; - } - mutex_unlock(hcd->bandwidth_mutex); - usb_set_device_state(dev, USB_STATE_CONFIGURED); - - /* Initialize the new interface structures and the + /* + * Initialize the new interface structures and the * hc/hcd/usbcore interface/endpoint state. */ for (i = 0; i < nintf; ++i) { @@ -1802,7 +1783,6 @@ intfc = cp->intf_cache[i]; intf->altsetting = intfc->altsetting; intf->num_altsetting = intfc->num_altsetting; - intf->intf_assoc = find_iad(dev, cp, i); kref_get(&intfc->ref); alt = usb_altnum_to_altsetting(intf, 0); @@ -1815,6 +1795,8 @@ if (!alt) alt = &intf->altsetting[0]; + intf->intf_assoc = + find_iad(dev, cp, alt->desc.bInterfaceNumber); intf->cur_altsetting = alt; usb_enable_interface(dev, intf, true); intf->dev.parent = &dev->dev; @@ -1833,6 +1815,35 @@ } kfree(new_interfaces); + ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), + USB_REQ_SET_CONFIGURATION, 0, configuration, 0, + NULL, 0, USB_CTRL_SET_TIMEOUT); + if (ret < 0 && cp) { + /* + * All the old state is gone, so what else can we do? + * The device is probably useless now anyway. + */ + usb_hcd_alloc_bandwidth(dev, NULL, NULL, NULL); + for (i = 0; i < nintf; ++i) { + usb_disable_interface(dev, cp->interface[i], true); + put_device(&cp->interface[i]->dev); + cp->interface[i] = NULL; + } + cp = NULL; + } + + dev->actconfig = cp; + mutex_unlock(hcd->bandwidth_mutex); + + if (!cp) { + usb_set_device_state(dev, USB_STATE_ADDRESS); + + /* Leave LPM disabled while the device is unconfigured. */ + usb_autosuspend_device(dev); + return ret; + } + usb_set_device_state(dev, USB_STATE_CONFIGURED); + if (cp->string == NULL && !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) cp->string = usb_cache_string(dev, cp->desc.iConfiguration); --- linux-3.2.0.orig/drivers/usb/core/devio.c +++ linux-3.2.0/drivers/usb/core/devio.c @@ -249,7 +249,8 @@ static void free_async(struct async *as) { put_pid(as->pid); - put_cred(as->cred); + if (as->cred) + put_cred(as->cred); kfree(as->urb->transfer_buffer); kfree(as->urb->setup_packet); usb_free_urb(as->urb); @@ -294,17 +295,14 @@ static struct async *async_getpending(struct dev_state *ps, void __user *userurb) { - unsigned long flags; struct async *as; - spin_lock_irqsave(&ps->lock, flags); list_for_each_entry(as, &ps->async_pending, asynclist) if (as->userurb == userurb) { list_del_init(&as->asynclist); - spin_unlock_irqrestore(&ps->lock, flags); return as; } - spin_unlock_irqrestore(&ps->lock, flags); + return NULL; } @@ -359,6 +357,7 @@ __releases(ps->lock) __acquires(ps->lock) { + struct urb *urb; struct async *as; /* Mark all the pending URBs that match bulk_addr, up to but not @@ -381,8 +380,11 @@ list_for_each_entry(as, &ps->async_pending, asynclist) { if (as->bulk_status == AS_UNLINK) { as->bulk_status = 0; /* Only once */ + urb = as->urb; + usb_get_urb(urb); spin_unlock(&ps->lock); /* Allow completions */ - usb_unlink_urb(as->urb); + usb_unlink_urb(urb); + usb_put_urb(urb); spin_lock(&ps->lock); goto rescan; } @@ -433,6 +435,7 @@ static void destroy_async(struct dev_state *ps, struct list_head *list) { + struct urb *urb; struct async *as; unsigned long flags; @@ -440,10 +443,13 @@ while (!list_empty(list)) { as = list_entry(list->next, struct async, asynclist); list_del_init(&as->asynclist); + urb = as->urb; + usb_get_urb(urb); /* drop the spinlock so the completion handler can run */ spin_unlock_irqrestore(&ps->lock, flags); - usb_kill_urb(as->urb); + usb_kill_urb(urb); + usb_put_urb(urb); spin_lock_irqsave(&ps->lock, flags); } spin_unlock_irqrestore(&ps->lock, flags); @@ -637,6 +643,8 @@ index &= 0xff; switch (requesttype & USB_RECIP_MASK) { case USB_RECIP_ENDPOINT: + if ((index & ~USB_DIR_IN) == 0) + return 0; ret = findintfep(ps->dev, index); if (ret >= 0) ret = checkintf(ps, ret); @@ -1349,12 +1357,24 @@ static int proc_unlinkurb(struct dev_state *ps, void __user *arg) { + struct urb *urb; struct async *as; + unsigned long flags; + spin_lock_irqsave(&ps->lock, flags); as = async_getpending(ps, arg); - if (!as) + if (!as) { + spin_unlock_irqrestore(&ps->lock, flags); return -EINVAL; - usb_kill_urb(as->urb); + } + + urb = as->urb; + usb_get_urb(urb); + spin_unlock_irqrestore(&ps->lock, flags); + + usb_kill_urb(urb); + usb_put_urb(urb); + return 0; } @@ -1537,10 +1557,14 @@ void __user *addr = as->userurb; unsigned int i; - if (as->userbuffer && urb->actual_length) - if (copy_to_user(as->userbuffer, urb->transfer_buffer, - urb->actual_length)) + if (as->userbuffer && urb->actual_length) { + if (urb->number_of_packets > 0) /* Isochronous */ + i = urb->transfer_buffer_length; + else /* Non-Isoc */ + i = urb->actual_length; + if (copy_to_user(as->userbuffer, urb->transfer_buffer, i)) return -EFAULT; + } if (put_user(as->status, &userurb->status)) return -EFAULT; if (put_user(urb->actual_length, &userurb->actual_length)) --- linux-3.2.0.orig/drivers/usb/core/quirks.c +++ linux-3.2.0/drivers/usb/core/quirks.c @@ -15,17 +15,22 @@ #include #include "usb.h" -/* List of quirky USB devices. Please keep this list ordered by: +/* Lists of quirky USB devices, split in device quirks and interface quirks. + * Device quirks are applied at the very beginning of the enumeration process, + * right after reading the device descriptor. They can thus only match on device + * information. + * + * Interface quirks are applied after reading all the configuration descriptors. + * They can match on both device and interface information. + * + * Note that the DELAY_INIT and HONOR_BNUMINTERFACES quirks do not make sense as + * interface quirks, as they only influence the enumeration process which is run + * before processing the interface quirks. + * + * Please keep the lists ordered by: * 1) Vendor ID * 2) Product ID * 3) Class ID - * - * as we want specific devices to be overridden first, and only after that, any - * class specific quirks. - * - * Right now the logic aborts if it finds a valid device in the table, we might - * want to change that in the future if it turns out that a whole class of - * devices is broken... */ static const struct usb_device_id usb_quirk_list[] = { /* CBM - Flash disk */ @@ -38,53 +43,26 @@ /* Creative SB Audigy 2 NX */ { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME }, - /* Logitech Webcam C200 */ - { USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME }, - - /* Logitech Webcam C250 */ - { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, - - /* Logitech Webcam C300 */ - { USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME }, - - /* Logitech Webcam B/C500 */ - { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, - - /* Logitech Webcam C600 */ - { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME }, - - /* Logitech Webcam Pro 9000 */ - { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Microsoft LifeCam-VX700 v2.0 */ + { USB_DEVICE(0x045e, 0x0770), .driver_info = USB_QUIRK_RESET_RESUME }, - /* Logitech Webcam C905 */ - { USB_DEVICE(0x046d, 0x080a), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Logitech Quickcam Fusion */ + { USB_DEVICE(0x046d, 0x08c1), .driver_info = USB_QUIRK_RESET_RESUME }, - /* Logitech Webcam C210 */ - { USB_DEVICE(0x046d, 0x0819), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Logitech Quickcam Orbit MP */ + { USB_DEVICE(0x046d, 0x08c2), .driver_info = USB_QUIRK_RESET_RESUME }, - /* Logitech Webcam C260 */ - { USB_DEVICE(0x046d, 0x081a), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Logitech Quickcam Pro for Notebook */ + { USB_DEVICE(0x046d, 0x08c3), .driver_info = USB_QUIRK_RESET_RESUME }, - /* Logitech Webcam C310 */ - { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Logitech Quickcam Pro 5000 */ + { USB_DEVICE(0x046d, 0x08c5), .driver_info = USB_QUIRK_RESET_RESUME }, - /* Logitech Webcam C910 */ - { USB_DEVICE(0x046d, 0x0821), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Logitech Quickcam OEM Dell Notebook */ + { USB_DEVICE(0x046d, 0x08c6), .driver_info = USB_QUIRK_RESET_RESUME }, - /* Logitech Webcam C160 */ - { USB_DEVICE(0x046d, 0x0824), .driver_info = USB_QUIRK_RESET_RESUME }, - - /* Logitech Webcam C270 */ - { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME }, - - /* Logitech Quickcam Pro 9000 */ - { USB_DEVICE(0x046d, 0x0990), .driver_info = USB_QUIRK_RESET_RESUME }, - - /* Logitech Quickcam E3500 */ - { USB_DEVICE(0x046d, 0x09a4), .driver_info = USB_QUIRK_RESET_RESUME }, - - /* Logitech Quickcam Vision Pro */ - { USB_DEVICE(0x046d, 0x09a6), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Logitech Quickcam OEM Cisco VT Camera II */ + { USB_DEVICE(0x046d, 0x08c7), .driver_info = USB_QUIRK_RESET_RESUME }, /* Logitech Harmony 700-series */ { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT }, @@ -96,6 +74,10 @@ { USB_DEVICE(0x04b4, 0x0526), .driver_info = USB_QUIRK_CONFIG_INTF_STRINGS }, + /* Microchip Joss Optical infrared touchboard device */ + { USB_DEVICE(0x04d8, 0x000c), .driver_info = + USB_QUIRK_CONFIG_INTF_STRINGS }, + /* Samsung Android phone modem - ID conflict with SPH-I500 */ { USB_DEVICE(0x04e8, 0x6601), .driver_info = USB_QUIRK_CONFIG_INTF_STRINGS }, @@ -106,6 +88,9 @@ /* Edirol SD-20 */ { USB_DEVICE(0x0582, 0x0027), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Alcor Micro Corp. Hub */ + { USB_DEVICE(0x058f, 0x9254), .driver_info = USB_QUIRK_RESET_RESUME }, + /* appletouch */ { USB_DEVICE(0x05ac, 0x021a), .driver_info = USB_QUIRK_RESET_RESUME }, @@ -117,9 +102,15 @@ { USB_DEVICE(0x06a3, 0x0006), .driver_info = USB_QUIRK_CONFIG_INTF_STRINGS }, - /* Guillemot Webcam Hercules Dualpix Exchange*/ + /* Guillemot Webcam Hercules Dualpix Exchange (2nd ID) */ { USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Guillemot Webcam Hercules Dualpix Exchange*/ + { USB_DEVICE(0x06f8, 0x3005), .driver_info = USB_QUIRK_RESET_RESUME }, + + /* Midiman M-Audio Keystation 88es */ + { USB_DEVICE(0x0763, 0x0192), .driver_info = USB_QUIRK_RESET_RESUME }, + /* M-Systems Flash Disk Pioneers */ { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, @@ -150,16 +141,57 @@ { } /* terminating entry must be last */ }; -static const struct usb_device_id *find_id(struct usb_device *udev) +static const struct usb_device_id usb_interface_quirk_list[] = { + /* Logitech UVC Cameras */ + { USB_VENDOR_AND_INTERFACE_INFO(0x046d, USB_CLASS_VIDEO, 1, 0), + .driver_info = USB_QUIRK_RESET_RESUME }, + + { } /* terminating entry must be last */ +}; + +static bool usb_match_any_interface(struct usb_device *udev, + const struct usb_device_id *id) { - const struct usb_device_id *id = usb_quirk_list; + unsigned int i; - for (; id->idVendor || id->bDeviceClass || id->bInterfaceClass || - id->driver_info; id++) { - if (usb_match_device(udev, id)) - return id; + for (i = 0; i < udev->descriptor.bNumConfigurations; ++i) { + struct usb_host_config *cfg = &udev->config[i]; + unsigned int j; + + for (j = 0; j < cfg->desc.bNumInterfaces; ++j) { + struct usb_interface_cache *cache; + struct usb_host_interface *intf; + + cache = cfg->intf_cache[j]; + if (cache->num_altsetting == 0) + continue; + + intf = &cache->altsetting[0]; + if (usb_match_one_id_intf(udev, intf, id)) + return true; + } } - return NULL; + + return false; +} + +static u32 __usb_detect_quirks(struct usb_device *udev, + const struct usb_device_id *id) +{ + u32 quirks = 0; + + for (; id->match_flags; id++) { + if (!usb_match_device(udev, id)) + continue; + + if ((id->match_flags & USB_DEVICE_ID_MATCH_INT_INFO) && + !usb_match_any_interface(udev, id)) + continue; + + quirks |= (u32)(id->driver_info); + } + + return quirks; } /* @@ -167,14 +199,10 @@ */ void usb_detect_quirks(struct usb_device *udev) { - const struct usb_device_id *id = usb_quirk_list; - - id = find_id(udev); - if (id) - udev->quirks = (u32)(id->driver_info); + udev->quirks = __usb_detect_quirks(udev, usb_quirk_list); if (udev->quirks) dev_dbg(&udev->dev, "USB quirks for this device: %x\n", - udev->quirks); + udev->quirks); /* For the present, all devices default to USB-PERSIST enabled */ #if 0 /* was: #ifdef CONFIG_PM */ @@ -191,3 +219,16 @@ udev->persist_enabled = 1; #endif /* CONFIG_PM */ } + +void usb_detect_interface_quirks(struct usb_device *udev) +{ + u32 quirks; + + quirks = __usb_detect_quirks(udev, usb_interface_quirk_list); + if (quirks == 0) + return; + + dev_dbg(&udev->dev, "USB interface quirks for this device: %x\n", + quirks); + udev->quirks |= quirks; +} --- linux-3.2.0.orig/drivers/usb/core/usb.h +++ linux-3.2.0/drivers/usb/core/usb.h @@ -24,6 +24,7 @@ extern int usb_deauthorize_device(struct usb_device *); extern int usb_authorize_device(struct usb_device *); extern void usb_detect_quirks(struct usb_device *udev); +extern void usb_detect_interface_quirks(struct usb_device *udev); extern int usb_remove_device(struct usb_device *udev); extern int usb_get_device_descriptor(struct usb_device *dev, @@ -35,6 +36,9 @@ extern int usb_choose_configuration(struct usb_device *udev); extern void usb_kick_khubd(struct usb_device *dev); +extern int usb_match_one_id_intf(struct usb_device *dev, + struct usb_host_interface *intf, + const struct usb_device_id *id); extern int usb_match_device(struct usb_device *dev, const struct usb_device_id *id); extern void usb_forced_unbind_intf(struct usb_interface *intf); @@ -132,20 +136,6 @@ for_devices; } -/* translate USB error codes to codes user space understands */ -static inline int usb_translate_errors(int error_code) -{ - switch (error_code) { - case 0: - case -ENOMEM: - case -ENODEV: - return error_code; - default: - return -EIO; - } -} - - /* for labeling diagnostics */ extern const char *usbcore_name; --- linux-3.2.0.orig/drivers/usb/core/sysfs.c +++ linux-3.2.0/drivers/usb/core/sysfs.c @@ -85,9 +85,9 @@ int retval; \ \ udev = to_usb_device(dev); \ - usb_lock_device(udev); \ - retval = sprintf(buf, "%s\n", udev->name); \ - usb_unlock_device(udev); \ + rcu_read_lock(); \ + retval = sprintf(buf, "%s\n", rcu_dereference(udev->name)); \ + rcu_read_unlock(); \ return retval; \ } \ static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL); --- linux-3.2.0.orig/drivers/usb/core/devices.c +++ linux-3.2.0/drivers/usb/core/devices.c @@ -624,7 +624,7 @@ /* print devices for all busses */ list_for_each_entry(bus, &usb_bus_list, bus_list) { /* recurse through all children of the root hub */ - if (!bus->root_hub) + if (!bus_to_hcd(bus)->rh_registered) continue; usb_lock_device(bus->root_hub); ret = usb_device_dump(&buf, &nbytes, &skip_bytes, ppos, --- linux-3.2.0.orig/drivers/usb/atm/cxacru.c +++ linux-3.2.0/drivers/usb/atm/cxacru.c @@ -686,7 +686,8 @@ { int ret, len; __le32 *buf; - int offb, offd; + int offb; + unsigned int offd; const int stride = CMD_PACKET_SIZE / (4 * 2) - 1; int buflen = ((size - 1) / stride + 1 + size * 2) * 4; --- linux-3.2.0.orig/drivers/usb/renesas_usbhs/mod_gadget.c +++ linux-3.2.0/drivers/usb/renesas_usbhs/mod_gadget.c @@ -816,6 +816,11 @@ return usbhsg_try_stop(priv, USBHSG_STATUS_STARTED); } +static void usbhs_mod_gadget_release(struct device *pdev) +{ + /* do nothing */ +} + int usbhs_mod_gadget_probe(struct usbhs_priv *priv) { struct usbhsg_gpriv *gpriv; @@ -864,6 +869,7 @@ */ dev_set_name(&gpriv->gadget.dev, "gadget"); gpriv->gadget.dev.parent = dev; + gpriv->gadget.dev.release = usbhs_mod_gadget_release; gpriv->gadget.name = "renesas_usbhs_udc"; gpriv->gadget.ops = &usbhsg_gadget_ops; gpriv->gadget.is_dualspeed = 1; --- linux-3.2.0.orig/drivers/usb/misc/emi62.c +++ linux-3.2.0/drivers/usb/misc/emi62.c @@ -259,7 +259,7 @@ return err; } -static const struct usb_device_id id_table[] __devinitconst = { +static const struct usb_device_id id_table[] = { { USB_DEVICE(EMI62_VENDOR_ID, EMI62_PRODUCT_ID) }, { } /* Terminating entry */ }; --- linux-3.2.0.orig/drivers/usb/misc/isight_firmware.c +++ linux-3.2.0/drivers/usb/misc/isight_firmware.c @@ -55,8 +55,9 @@ ptr = firmware->data; + buf[0] = 0x01; if (usb_control_msg - (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, "\1", 1, + (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, buf, 1, 300) != 1) { printk(KERN_ERR "Failed to initialise isight firmware loader\n"); @@ -100,8 +101,9 @@ } } + buf[0] = 0x00; if (usb_control_msg - (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, "\0", 1, + (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, buf, 1, 300) != 1) { printk(KERN_ERR "isight firmware loading completion failed\n"); ret = -ENODEV; --- linux-3.2.0.orig/drivers/usb/misc/usbtest.c +++ linux-3.2.0/drivers/usb/misc/usbtest.c @@ -1025,7 +1025,10 @@ case 13: /* short read, resembling case 10 */ req.wValue = cpu_to_le16((USB_DT_CONFIG << 8) | 0); /* last data packet "should" be DATA1, not DATA0 */ - len = 1024 - udev->descriptor.bMaxPacketSize0; + if (udev->speed == USB_SPEED_SUPER) + len = 1024 - 512; + else + len = 1024 - udev->descriptor.bMaxPacketSize0; expected = -EREMOTEIO; break; case 14: /* short read; try to fill the last packet */ @@ -1384,11 +1387,15 @@ static int halt_simple(struct usbtest_dev *dev) { - int ep; - int retval = 0; - struct urb *urb; + int ep; + int retval = 0; + struct urb *urb; + struct usb_device *udev = testdev_to_usbdev(dev); - urb = simple_alloc_urb(testdev_to_usbdev(dev), 0, 512); + if (udev->speed == USB_SPEED_SUPER) + urb = simple_alloc_urb(udev, 0, 1024); + else + urb = simple_alloc_urb(udev, 0, 512); if (urb == NULL) return -ENOMEM; --- linux-3.2.0.orig/drivers/usb/misc/usbsevseg.c +++ linux-3.2.0/drivers/usb/misc/usbsevseg.c @@ -24,7 +24,7 @@ #define VENDOR_ID 0x0fc5 #define PRODUCT_ID 0x1227 -#define MAXLEN 6 +#define MAXLEN 8 /* table of devices that work with this driver */ static const struct usb_device_id id_table[] = { --- linux-3.2.0.orig/drivers/usb/misc/yurex.c +++ linux-3.2.0/drivers/usb/misc/yurex.c @@ -99,9 +99,7 @@ usb_put_dev(dev->udev); if (dev->cntl_urb) { usb_kill_urb(dev->cntl_urb); - if (dev->cntl_req) - usb_free_coherent(dev->udev, YUREX_BUF_SIZE, - dev->cntl_req, dev->cntl_urb->setup_dma); + kfree(dev->cntl_req); if (dev->cntl_buffer) usb_free_coherent(dev->udev, YUREX_BUF_SIZE, dev->cntl_buffer, dev->cntl_urb->transfer_dma); @@ -234,9 +232,7 @@ } /* allocate buffer for control req */ - dev->cntl_req = usb_alloc_coherent(dev->udev, YUREX_BUF_SIZE, - GFP_KERNEL, - &dev->cntl_urb->setup_dma); + dev->cntl_req = kmalloc(YUREX_BUF_SIZE, GFP_KERNEL); if (!dev->cntl_req) { err("Could not allocate cntl_req"); goto error; @@ -286,7 +282,7 @@ usb_rcvintpipe(dev->udev, dev->int_in_endpointAddr), dev->int_buffer, YUREX_BUF_SIZE, yurex_interrupt, dev, 1); - dev->cntl_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; + dev->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; if (usb_submit_urb(dev->urb, GFP_KERNEL)) { retval = -EIO; err("Could not submitting URB"); --- linux-3.2.0.orig/drivers/usb/misc/appledisplay.c +++ linux-3.2.0/drivers/usb/misc/appledisplay.c @@ -63,6 +63,7 @@ { APPLEDISPLAY_DEVICE(0x9219) }, { APPLEDISPLAY_DEVICE(0x921c) }, { APPLEDISPLAY_DEVICE(0x921d) }, + { APPLEDISPLAY_DEVICE(0x9236) }, /* Terminating entry */ { } --- linux-3.2.0.orig/drivers/usb/misc/sisusbvga/sisusb.c +++ linux-3.2.0/drivers/usb/misc/sisusbvga/sisusb.c @@ -3247,6 +3247,7 @@ { USB_DEVICE(0x0711, 0x0903) }, { USB_DEVICE(0x0711, 0x0918) }, { USB_DEVICE(0x0711, 0x0920) }, + { USB_DEVICE(0x0711, 0x0950) }, { USB_DEVICE(0x182d, 0x021c) }, { USB_DEVICE(0x182d, 0x0269) }, { } --- linux-3.2.0.orig/drivers/usb/musb/davinci.c +++ linux-3.2.0/drivers/usb/musb/davinci.c @@ -33,9 +33,6 @@ #include #include -#include -#include -#include #include #include --- linux-3.2.0.orig/drivers/usb/musb/omap2430.c +++ linux-3.2.0/drivers/usb/musb/omap2430.c @@ -282,7 +282,8 @@ static int omap2430_musb_init(struct musb *musb) { - u32 l, status = 0; + u32 l; + int status = 0; struct device *dev = musb->controller; struct musb_hdrc_platform_data *plat = dev->platform_data; struct omap_musb_board_data *data = plat->board_data; @@ -299,7 +300,7 @@ status = pm_runtime_get_sync(dev); if (status < 0) { - dev_err(dev, "pm_runtime_get_sync FAILED"); + dev_err(dev, "pm_runtime_get_sync FAILED %d\n", status); goto err1; } @@ -451,14 +452,14 @@ goto err2; } + pm_runtime_enable(&pdev->dev); + ret = platform_device_add(musb); if (ret) { dev_err(&pdev->dev, "failed to register musb device\n"); goto err2; } - pm_runtime_enable(&pdev->dev); - return 0; err2: --- linux-3.2.0.orig/drivers/usb/musb/cppi_dma.c +++ linux-3.2.0/drivers/usb/musb/cppi_dma.c @@ -1313,6 +1313,7 @@ return IRQ_HANDLED; } +EXPORT_SYMBOL_GPL(cppi_interrupt); /* Instantiate a software object representing a DMA controller. */ struct dma_controller *__init --- linux-3.2.0.orig/drivers/usb/musb/musb_gadget.c +++ linux-3.2.0/drivers/usb/musb/musb_gadget.c @@ -576,6 +576,15 @@ if (request->actual == request->length) { musb_g_giveback(musb_ep, request, 0); + /* + * In the giveback function the MUSB lock is + * released and acquired after sometime. During + * this time period the INDEX register could get + * changed by the gadget_queue function especially + * on SMP systems. Reselect the INDEX to be sure + * we are reading/modifying the right registers + */ + musb_ep_select(mbase, epnum); req = musb_ep->desc ? next_request(musb_ep) : NULL; if (!req) { dev_dbg(musb->controller, "%s idle now\n", @@ -985,6 +994,15 @@ } #endif musb_g_giveback(musb_ep, request, 0); + /* + * In the giveback function the MUSB lock is + * released and acquired after sometime. During + * this time period the INDEX register could get + * changed by the gadget_queue function especially + * on SMP systems. Reselect the INDEX to be sure + * we are reading/modifying the right registers + */ + musb_ep_select(mbase, epnum); req = next_request(musb_ep); if (!req) @@ -1216,6 +1234,7 @@ } musb_ep->desc = NULL; + musb_ep->end_point.desc = NULL; /* abort all pending DMA and requests */ nuke(musb_ep, -ESHUTDOWN); --- linux-3.2.0.orig/drivers/usb/musb/musb_core.c +++ linux-3.2.0/drivers/usb/musb/musb_core.c @@ -2012,8 +2012,6 @@ if (status < 0) goto fail3; - pm_runtime_put(musb->controller); - status = musb_init_debugfs(musb); if (status < 0) goto fail4; @@ -2374,10 +2372,7 @@ if (usb_disabled()) return 0; - pr_info("%s: version " MUSB_VERSION ", " - "?dma?" - ", " - "otg (peripheral+host)", + pr_info("%s: version " MUSB_VERSION ", ?dma?, otg (peripheral+host)\n", musb_driver_name); return platform_driver_probe(&musb_driver, musb_probe); } --- linux-3.2.0.orig/drivers/usb/storage/usual-tables.c +++ linux-3.2.0/drivers/usb/storage/usual-tables.c @@ -46,6 +46,20 @@ { USB_INTERFACE_INFO(USB_CLASS_MASS_STORAGE, useProto, useTrans), \ .driver_info = ((useType)<<24) } +/* Define the device is matched with Vendor ID and interface descriptors */ +#define UNUSUAL_VENDOR_INTF(id_vendor, cl, sc, pr, \ + vendorName, productName, useProtocol, useTransport, \ + initFunction, flags) \ +{ \ + .match_flags = USB_DEVICE_ID_MATCH_INT_INFO \ + | USB_DEVICE_ID_MATCH_VENDOR, \ + .idVendor = (id_vendor), \ + .bInterfaceClass = (cl), \ + .bInterfaceSubClass = (sc), \ + .bInterfaceProtocol = (pr), \ + .driver_info = (flags) \ +} + struct usb_device_id usb_storage_usb_ids[] = { # include "unusual_devs.h" { } /* Terminating entry */ @@ -57,6 +71,7 @@ #undef UNUSUAL_DEV #undef COMPLIANT_DEV #undef USUAL_DEV +#undef UNUSUAL_VENDOR_INTF /* --- linux-3.2.0.orig/drivers/usb/storage/Kconfig +++ linux-3.2.0/drivers/usb/storage/Kconfig @@ -203,7 +203,7 @@ config USB_UAS tristate "USB Attached SCSI" - depends on USB && SCSI + depends on USB && SCSI && BROKEN help The USB Attached SCSI protocol is supported by some USB storage devices. It permits higher performance by supporting --- linux-3.2.0.orig/drivers/usb/storage/uas.c +++ linux-3.2.0/drivers/usb/storage/uas.c @@ -13,7 +13,9 @@ #include #include #include +#include #include +#include #include #include @@ -22,49 +24,6 @@ #include #include -/* Common header for all IUs */ -struct iu { - __u8 iu_id; - __u8 rsvd1; - __be16 tag; -}; - -enum { - IU_ID_COMMAND = 0x01, - IU_ID_STATUS = 0x03, - IU_ID_RESPONSE = 0x04, - IU_ID_TASK_MGMT = 0x05, - IU_ID_READ_READY = 0x06, - IU_ID_WRITE_READY = 0x07, -}; - -struct command_iu { - __u8 iu_id; - __u8 rsvd1; - __be16 tag; - __u8 prio_attr; - __u8 rsvd5; - __u8 len; - __u8 rsvd7; - struct scsi_lun lun; - __u8 cdb[16]; /* XXX: Overflow-checking tools may misunderstand */ -}; - -/* - * Also used for the Read Ready and Write Ready IUs since they have the - * same first four bytes - */ -struct sense_iu { - __u8 iu_id; - __u8 rsvd1; - __be16 tag; - __be16 status_qual; - __u8 status; - __u8 rsvd7[7]; - __be16 len; - __u8 sense[SCSI_SENSE_BUFFERSIZE]; -}; - /* * The r00-r01c specs define this version of the SENSE IU data structure. * It's still in use by several different firmware releases. @@ -79,18 +38,6 @@ __u8 sense[SCSI_SENSE_BUFFERSIZE]; }; -enum { - CMD_PIPE_ID = 1, - STATUS_PIPE_ID = 2, - DATA_IN_PIPE_ID = 3, - DATA_OUT_PIPE_ID = 4, - - UAS_SIMPLE_TAG = 0, - UAS_HEAD_TAG = 1, - UAS_ORDERED_TAG = 2, - UAS_ACA = 4, -}; - struct uas_dev_info { struct usb_interface *intf; struct usb_device *udev; @@ -98,6 +45,8 @@ unsigned cmd_pipe, status_pipe, data_in_pipe, data_out_pipe; unsigned use_streams:1; unsigned uas_sense_old:1; + struct scsi_cmnd *cmnd; + struct urb *status_urb; /* used only if stream support is available */ }; enum { @@ -109,6 +58,9 @@ SUBMIT_DATA_OUT_URB = (1 << 5), ALLOC_CMD_URB = (1 << 6), SUBMIT_CMD_URB = (1 << 7), + COMPLETED_DATA_IN = (1 << 8), + COMPLETED_DATA_OUT = (1 << 9), + DATA_COMPLETES_CMD = (1 << 10), }; /* Overrides scsi_pointer */ @@ -116,6 +68,7 @@ unsigned int state; unsigned int stream; struct urb *cmd_urb; + /* status_urb is used only if stream support isn't available */ struct urb *status_urb; struct urb *data_in_urb; struct urb *data_out_urb; @@ -125,33 +78,43 @@ /* I hate forward declarations, but I actually have a loop */ static int uas_submit_urbs(struct scsi_cmnd *cmnd, struct uas_dev_info *devinfo, gfp_t gfp); +static void uas_do_work(struct work_struct *work); +static DECLARE_WORK(uas_work, uas_do_work); static DEFINE_SPINLOCK(uas_work_lock); static LIST_HEAD(uas_work_list); static void uas_do_work(struct work_struct *work) { struct uas_cmd_info *cmdinfo; + struct uas_cmd_info *temp; struct list_head list; + int err; spin_lock_irq(&uas_work_lock); list_replace_init(&uas_work_list, &list); spin_unlock_irq(&uas_work_lock); - list_for_each_entry(cmdinfo, &list, list) { + list_for_each_entry_safe(cmdinfo, temp, &list, list) { struct scsi_pointer *scp = (void *)cmdinfo; struct scsi_cmnd *cmnd = container_of(scp, struct scsi_cmnd, SCp); - uas_submit_urbs(cmnd, cmnd->device->hostdata, GFP_NOIO); + err = uas_submit_urbs(cmnd, cmnd->device->hostdata, GFP_NOIO); + if (err) { + list_del(&cmdinfo->list); + spin_lock_irq(&uas_work_lock); + list_add_tail(&cmdinfo->list, &uas_work_list); + spin_unlock_irq(&uas_work_lock); + schedule_work(&uas_work); + } } } -static DECLARE_WORK(uas_work, uas_do_work); - static void uas_sense(struct urb *urb, struct scsi_cmnd *cmnd) { struct sense_iu *sense_iu = urb->transfer_buffer; struct scsi_device *sdev = cmnd->device; + struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp; if (urb->actual_length > 16) { unsigned len = be16_to_cpup(&sense_iu->len); @@ -169,16 +132,15 @@ } cmnd->result = sense_iu->status; - if (sdev->current_cmnd) - sdev->current_cmnd = NULL; - cmnd->scsi_done(cmnd); - usb_free_urb(urb); + if (!(cmdinfo->state & DATA_COMPLETES_CMD)) + cmnd->scsi_done(cmnd); } static void uas_sense_old(struct urb *urb, struct scsi_cmnd *cmnd) { struct sense_iu_old *sense_iu = urb->transfer_buffer; struct scsi_device *sdev = cmnd->device; + struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp; if (urb->actual_length > 8) { unsigned len = be16_to_cpup(&sense_iu->len) - 2; @@ -196,10 +158,8 @@ } cmnd->result = sense_iu->status; - if (sdev->current_cmnd) - sdev->current_cmnd = NULL; - cmnd->scsi_done(cmnd); - usb_free_urb(urb); + if (!(cmdinfo->state & DATA_COMPLETES_CMD)) + cmnd->scsi_done(cmnd); } static void uas_xfer_data(struct urb *urb, struct scsi_cmnd *cmnd, @@ -208,7 +168,7 @@ struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp; int err; - cmdinfo->state = direction | SUBMIT_STATUS_URB; + cmdinfo->state = direction; err = uas_submit_urbs(cmnd, cmnd->device->hostdata, GFP_ATOMIC); if (err) { spin_lock(&uas_work_lock); @@ -221,27 +181,61 @@ static void uas_stat_cmplt(struct urb *urb) { struct iu *iu = urb->transfer_buffer; - struct scsi_device *sdev = urb->context; - struct uas_dev_info *devinfo = sdev->hostdata; + struct Scsi_Host *shost = urb->context; + struct uas_dev_info *devinfo = (void *)shost->hostdata[0]; struct scsi_cmnd *cmnd; + struct uas_cmd_info *cmdinfo; u16 tag; + int ret; if (urb->status) { dev_err(&urb->dev->dev, "URB BAD STATUS %d\n", urb->status); - usb_free_urb(urb); + if (devinfo->use_streams) + usb_free_urb(urb); return; } tag = be16_to_cpup(&iu->tag) - 1; - if (sdev->current_cmnd) - cmnd = sdev->current_cmnd; + if (tag == 0) + cmnd = devinfo->cmnd; else - cmnd = scsi_find_tag(sdev, tag); - if (!cmnd) + cmnd = scsi_host_find_tag(shost, tag - 1); + if (!cmnd) { + if (devinfo->use_streams) { + usb_free_urb(urb); + return; + } + ret = usb_submit_urb(urb, GFP_ATOMIC); + if (ret) + dev_err(&urb->dev->dev, "failed submit status urb\n"); return; + } + cmdinfo = (void *)&cmnd->SCp; switch (iu->iu_id) { case IU_ID_STATUS: + if (devinfo->cmnd == cmnd) + devinfo->cmnd = NULL; + + if (!(cmdinfo->state & COMPLETED_DATA_IN) && + cmdinfo->data_in_urb) { + if (devinfo->use_streams) { + cmdinfo->state |= DATA_COMPLETES_CMD; + usb_unlink_urb(cmdinfo->data_in_urb); + } else { + usb_free_urb(cmdinfo->data_in_urb); + } + } + if (!(cmdinfo->state & COMPLETED_DATA_OUT) && + cmdinfo->data_out_urb) { + if (devinfo->use_streams) { + cmdinfo->state |= DATA_COMPLETES_CMD; + usb_unlink_urb(cmdinfo->data_in_urb); + } else { + usb_free_urb(cmdinfo->data_out_urb); + } + } + if (urb->actual_length < 16) devinfo->uas_sense_old = 1; if (devinfo->uas_sense_old) @@ -259,29 +253,70 @@ scmd_printk(KERN_ERR, cmnd, "Bogus IU (%d) received on status pipe\n", iu->iu_id); } + + if (devinfo->use_streams) { + usb_free_urb(urb); + return; + } + + ret = usb_submit_urb(urb, GFP_ATOMIC); + if (ret) + dev_err(&urb->dev->dev, "failed submit status urb\n"); +} + +static void uas_data_out_cmplt(struct urb *urb) +{ + struct scsi_cmnd *cmnd = urb->context; + struct scsi_data_buffer *sdb = scsi_out(cmnd); + struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp; + + cmdinfo->state |= COMPLETED_DATA_OUT; + + sdb->resid = sdb->length - urb->actual_length; + usb_free_urb(urb); + + if (cmdinfo->state & DATA_COMPLETES_CMD) + cmnd->scsi_done(cmnd); } -static void uas_data_cmplt(struct urb *urb) +static void uas_data_in_cmplt(struct urb *urb) { - struct scsi_data_buffer *sdb = urb->context; + struct scsi_cmnd *cmnd = urb->context; + struct scsi_data_buffer *sdb = scsi_in(cmnd); + struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp; + + cmdinfo->state |= COMPLETED_DATA_IN; + sdb->resid = sdb->length - urb->actual_length; usb_free_urb(urb); + + if (cmdinfo->state & DATA_COMPLETES_CMD) + cmnd->scsi_done(cmnd); } static struct urb *uas_alloc_data_urb(struct uas_dev_info *devinfo, gfp_t gfp, - unsigned int pipe, u16 stream_id, - struct scsi_data_buffer *sdb, - enum dma_data_direction dir) + unsigned int pipe, struct scsi_cmnd *cmnd, + enum dma_data_direction dir) { + struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp; struct usb_device *udev = devinfo->udev; struct urb *urb = usb_alloc_urb(0, gfp); + struct scsi_data_buffer *sdb; + usb_complete_t complete_fn; + u16 stream_id = cmdinfo->stream; if (!urb) goto out; - usb_fill_bulk_urb(urb, udev, pipe, NULL, sdb->length, uas_data_cmplt, - sdb); - if (devinfo->use_streams) - urb->stream_id = stream_id; + if (dir == DMA_FROM_DEVICE) { + sdb = scsi_in(cmnd); + complete_fn = uas_data_in_cmplt; + } else { + sdb = scsi_out(cmnd); + complete_fn = uas_data_out_cmplt; + } + usb_fill_bulk_urb(urb, udev, pipe, NULL, sdb->length, + complete_fn, cmnd); + urb->stream_id = stream_id; urb->num_sgs = udev->bus->sg_tablesize ? sdb->table.nents : 0; urb->sg = sdb->table.sgl; out: @@ -289,7 +324,7 @@ } static struct urb *uas_alloc_sense_urb(struct uas_dev_info *devinfo, gfp_t gfp, - struct scsi_cmnd *cmnd, u16 stream_id) + struct Scsi_Host *shost, u16 stream_id) { struct usb_device *udev = devinfo->udev; struct urb *urb = usb_alloc_urb(0, gfp); @@ -303,7 +338,7 @@ goto free; usb_fill_bulk_urb(urb, udev, devinfo->status_pipe, iu, sizeof(*iu), - uas_stat_cmplt, cmnd->device); + uas_stat_cmplt, shost); urb->stream_id = stream_id; urb->transfer_flags |= URB_FREE_BUFFER; out: @@ -334,7 +369,10 @@ goto free; iu->iu_id = IU_ID_COMMAND; - iu->tag = cpu_to_be16(stream_id); + if (blk_rq_tagged(cmnd->request)) + iu->tag = cpu_to_be16(cmnd->request->tag + 2); + else + iu->tag = cpu_to_be16(1); iu->prio_attr = UAS_SIMPLE_TAG; iu->len = len; int_to_scsilun(sdev->lun, &iu->lun); @@ -362,8 +400,8 @@ struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp; if (cmdinfo->state & ALLOC_STATUS_URB) { - cmdinfo->status_urb = uas_alloc_sense_urb(devinfo, gfp, cmnd, - cmdinfo->stream); + cmdinfo->status_urb = uas_alloc_sense_urb(devinfo, gfp, + cmnd->device->host, cmdinfo->stream); if (!cmdinfo->status_urb) return SCSI_MLQUEUE_DEVICE_BUSY; cmdinfo->state &= ~ALLOC_STATUS_URB; @@ -380,8 +418,8 @@ if (cmdinfo->state & ALLOC_DATA_IN_URB) { cmdinfo->data_in_urb = uas_alloc_data_urb(devinfo, gfp, - devinfo->data_in_pipe, cmdinfo->stream, - scsi_in(cmnd), DMA_FROM_DEVICE); + devinfo->data_in_pipe, cmnd, + DMA_FROM_DEVICE); if (!cmdinfo->data_in_urb) return SCSI_MLQUEUE_DEVICE_BUSY; cmdinfo->state &= ~ALLOC_DATA_IN_URB; @@ -398,8 +436,8 @@ if (cmdinfo->state & ALLOC_DATA_OUT_URB) { cmdinfo->data_out_urb = uas_alloc_data_urb(devinfo, gfp, - devinfo->data_out_pipe, cmdinfo->stream, - scsi_out(cmnd), DMA_TO_DEVICE); + devinfo->data_out_pipe, cmnd, + DMA_TO_DEVICE); if (!cmdinfo->data_out_urb) return SCSI_MLQUEUE_DEVICE_BUSY; cmdinfo->state &= ~ALLOC_DATA_OUT_URB; @@ -444,13 +482,13 @@ BUILD_BUG_ON(sizeof(struct uas_cmd_info) > sizeof(struct scsi_pointer)); - if (!cmdinfo->status_urb && sdev->current_cmnd) + if (devinfo->cmnd) return SCSI_MLQUEUE_DEVICE_BUSY; if (blk_rq_tagged(cmnd->request)) { - cmdinfo->stream = cmnd->request->tag + 1; + cmdinfo->stream = cmnd->request->tag + 2; } else { - sdev->current_cmnd = cmnd; + devinfo->cmnd = cmnd; cmdinfo->stream = 1; } @@ -472,7 +510,8 @@ } if (!devinfo->use_streams) { - cmdinfo->state &= ~(SUBMIT_DATA_IN_URB | SUBMIT_DATA_OUT_URB); + cmdinfo->state &= ~(SUBMIT_DATA_IN_URB | SUBMIT_DATA_OUT_URB | + ALLOC_STATUS_URB | SUBMIT_STATUS_URB); cmdinfo->stream = 0; } @@ -551,7 +590,7 @@ { struct uas_dev_info *devinfo = sdev->hostdata; scsi_set_tag_type(sdev, MSG_ORDERED_TAG); - scsi_activate_tcq(sdev, devinfo->qdepth - 1); + scsi_activate_tcq(sdev, devinfo->qdepth - 2); return 0; } @@ -589,22 +628,34 @@ intf->desc.bInterfaceProtocol == USB_PR_UAS); } +static int uas_isnt_supported(struct usb_device *udev) +{ + struct usb_hcd *hcd = bus_to_hcd(udev->bus); + + dev_warn(&udev->dev, "The driver for the USB controller %s does not " + "support scatter-gather which is\n", + hcd->driver->description); + dev_warn(&udev->dev, "required by the UAS driver. Please try an" + "alternative USB controller if you wish to use UAS.\n"); + return -ENODEV; +} + static int uas_switch_interface(struct usb_device *udev, struct usb_interface *intf) { int i; - - if (uas_is_interface(intf->cur_altsetting)) - return 0; + int sg_supported = udev->bus->sg_tablesize != 0; for (i = 0; i < intf->num_altsetting; i++) { struct usb_host_interface *alt = &intf->altsetting[i]; - if (alt == intf->cur_altsetting) - continue; - if (uas_is_interface(alt)) + + if (uas_is_interface(alt)) { + if (!sg_supported) + return uas_isnt_supported(udev); return usb_set_interface(udev, alt->desc.bInterfaceNumber, alt->desc.bAlternateSetting); + } } return -ENODEV; @@ -619,6 +670,7 @@ unsigned i, n_endpoints = intf->cur_altsetting->desc.bNumEndpoints; devinfo->uas_sense_old = 0; + devinfo->cmnd = NULL; for (i = 0; i < n_endpoints; i++) { unsigned char *extra = endpoint[i].extra; @@ -670,6 +722,40 @@ } } +static int uas_alloc_status_urb(struct uas_dev_info *devinfo, + struct Scsi_Host *shost) +{ + if (devinfo->use_streams) { + devinfo->status_urb = NULL; + return 0; + } + + devinfo->status_urb = uas_alloc_sense_urb(devinfo, GFP_KERNEL, + shost, 0); + if (!devinfo->status_urb) + goto err_s_urb; + + if (usb_submit_urb(devinfo->status_urb, GFP_KERNEL)) + goto err_submit_urb; + + return 0; +err_submit_urb: + usb_free_urb(devinfo->status_urb); +err_s_urb: + return -ENOMEM; +} + +static void uas_free_streams(struct uas_dev_info *devinfo) +{ + struct usb_device *udev = devinfo->udev; + struct usb_host_endpoint *eps[3]; + + eps[0] = usb_pipe_endpoint(udev, devinfo->status_pipe); + eps[1] = usb_pipe_endpoint(udev, devinfo->data_in_pipe); + eps[2] = usb_pipe_endpoint(udev, devinfo->data_out_pipe); + usb_free_streams(devinfo->intf, eps, 3, GFP_KERNEL); +} + /* * XXX: What I'd like to do here is register a SCSI host for each USB host in * the system. Follow usb-storage's design of registering a SCSI host for @@ -699,18 +785,33 @@ shost->max_id = 1; shost->sg_tablesize = udev->bus->sg_tablesize; - result = scsi_add_host(shost, &intf->dev); + devinfo->intf = intf; + devinfo->udev = udev; + uas_configure_endpoints(devinfo); + + result = scsi_init_shared_tag_map(shost, devinfo->qdepth - 2); if (result) goto free; + + result = scsi_add_host(shost, &intf->dev); + if (result) + goto deconfig_eps; + shost->hostdata[0] = (unsigned long)devinfo; - devinfo->intf = intf; - devinfo->udev = udev; - uas_configure_endpoints(devinfo); + result = uas_alloc_status_urb(devinfo, shost); + if (result) + goto err_alloc_status; scsi_scan_host(shost); usb_set_intfdata(intf, shost); return result; + +err_alloc_status: + scsi_remove_host(shost); + shost = NULL; +deconfig_eps: + uas_free_streams(devinfo); free: kfree(devinfo); if (shost) @@ -732,18 +833,13 @@ static void uas_disconnect(struct usb_interface *intf) { - struct usb_device *udev = interface_to_usbdev(intf); - struct usb_host_endpoint *eps[3]; struct Scsi_Host *shost = usb_get_intfdata(intf); struct uas_dev_info *devinfo = (void *)shost->hostdata[0]; scsi_remove_host(shost); - - eps[0] = usb_pipe_endpoint(udev, devinfo->status_pipe); - eps[1] = usb_pipe_endpoint(udev, devinfo->data_in_pipe); - eps[2] = usb_pipe_endpoint(udev, devinfo->data_out_pipe); - usb_free_streams(intf, eps, 3, GFP_KERNEL); - + usb_kill_urb(devinfo->status_urb); + usb_free_urb(devinfo->status_urb); + uas_free_streams(devinfo); kfree(devinfo); } --- linux-3.2.0.orig/drivers/usb/storage/cypress_atacb.c +++ linux-3.2.0/drivers/usb/storage/cypress_atacb.c @@ -248,14 +248,26 @@ { struct us_data *us; int result; + struct usb_device *device; result = usb_stor_probe1(&us, intf, id, (id - cypress_usb_ids) + cypress_unusual_dev_list); if (result) return result; - us->protocol_name = "Transparent SCSI with Cypress ATACB"; - us->proto_handler = cypress_atacb_passthrough; + /* Among CY7C68300 chips, the A revision does not support Cypress ATACB + * Filter out this revision from EEPROM default descriptor values + */ + device = interface_to_usbdev(intf); + if (device->descriptor.iManufacturer != 0x38 || + device->descriptor.iProduct != 0x4e || + device->descriptor.iSerialNumber != 0x64) { + us->protocol_name = "Transparent SCSI with Cypress ATACB"; + us->proto_handler = cypress_atacb_passthrough; + } else { + us->protocol_name = "Transparent SCSI"; + us->proto_handler = usb_stor_transparent_scsi_command; + } result = usb_stor_probe2(us); return result; --- linux-3.2.0.orig/drivers/usb/storage/realtek_cr.c +++ linux-3.2.0/drivers/usb/storage/realtek_cr.c @@ -509,9 +509,14 @@ int retval; u16 addr = 0xFE47; u8 cmnd[12] = {0}; + u8 *buf; US_DEBUGP("%s, addr = 0x%x, len = %d\n", __FUNCTION__, addr, len); + buf = kmemdup(data, len, GFP_NOIO); + if (!buf) + return USB_STOR_TRANSPORT_ERROR; + cmnd[0] = 0xF0; cmnd[1] = 0x0E; cmnd[2] = (u8)(addr >> 8); @@ -519,7 +524,8 @@ cmnd[4] = (u8)(len >> 8); cmnd[5] = (u8)len; - retval = rts51x_bulk_transport_special(us, 0, cmnd, 12, data, len, DMA_TO_DEVICE, NULL); + retval = rts51x_bulk_transport_special(us, 0, cmnd, 12, buf, len, DMA_TO_DEVICE, NULL); + kfree(buf); if (retval != USB_STOR_TRANSPORT_GOOD) { return -EIO; } @@ -791,7 +797,7 @@ rts51x_set_stat(chip, RTS51X_STAT_SS); /* ignore mass storage interface's children */ pm_suspend_ignore_children(&us->pusb_intf->dev, true); - usb_autopm_put_interface(us->pusb_intf); + usb_autopm_put_interface_async(us->pusb_intf); US_DEBUGP("%s: RTS51X_STAT_SS 01," "intf->pm_usage_cnt:%d, power.usage:%d\n", __func__, --- linux-3.2.0.orig/drivers/usb/storage/usb.c +++ linux-3.2.0/drivers/usb/storage/usb.c @@ -120,6 +120,17 @@ .useTransport = use_transport, \ } +#define UNUSUAL_VENDOR_INTF(idVendor, cl, sc, pr, \ + vendor_name, product_name, use_protocol, use_transport, \ + init_function, Flags) \ +{ \ + .vendorName = vendor_name, \ + .productName = product_name, \ + .useProtocol = use_protocol, \ + .useTransport = use_transport, \ + .initFunction = init_function, \ +} + static struct us_unusual_dev us_unusual_dev_list[] = { # include "unusual_devs.h" { } /* Terminating entry */ @@ -128,6 +139,7 @@ #undef UNUSUAL_DEV #undef COMPLIANT_DEV #undef USUAL_DEV +#undef UNUSUAL_VENDOR_INTF #ifdef CONFIG_PM /* Minimal support for suspend and resume */ @@ -788,15 +800,19 @@ struct Scsi_Host *host = us_to_host(us); /* If the device is really gone, cut short reset delays */ - if (us->pusb_dev->state == USB_STATE_NOTATTACHED) + if (us->pusb_dev->state == USB_STATE_NOTATTACHED) { set_bit(US_FLIDX_DISCONNECTING, &us->dflags); + wake_up(&us->delay_wait); + } - /* Prevent SCSI-scanning (if it hasn't started yet) - * and wait for the SCSI-scanning thread to stop. + /* Prevent SCSI scanning (if it hasn't started yet) + * or wait for the SCSI-scanning routine to stop. */ - set_bit(US_FLIDX_DONT_SCAN, &us->dflags); - wake_up(&us->delay_wait); - wait_for_completion(&us->scanning_done); + cancel_delayed_work_sync(&us->scan_dwork); + + /* Balance autopm calls if scanning was cancelled */ + if (test_bit(US_FLIDX_SCAN_PENDING, &us->dflags)) + usb_autopm_put_interface_no_suspend(us->pusb_intf); /* Removing the host will perform an orderly shutdown: caches * synchronized, disks spun down, etc. @@ -823,52 +839,28 @@ scsi_host_put(us_to_host(us)); } -/* Thread to carry out delayed SCSI-device scanning */ -static int usb_stor_scan_thread(void * __us) +/* Delayed-work routine to carry out SCSI-device scanning */ +static void usb_stor_scan_dwork(struct work_struct *work) { - struct us_data *us = (struct us_data *)__us; + struct us_data *us = container_of(work, struct us_data, + scan_dwork.work); struct device *dev = &us->pusb_intf->dev; - dev_dbg(dev, "device found\n"); - - set_freezable_with_signal(); - /* - * Wait for the timeout to expire or for a disconnect - * - * We can't freeze in this thread or we risk causing khubd to - * fail to freeze, but we can't be non-freezable either. Nor can - * khubd freeze while waiting for scanning to complete as it may - * hold the device lock, causing a hang when suspending devices. - * So we request a fake signal when freezing and use - * interruptible sleep to kick us out of our wait early when - * freezing happens. - */ - if (delay_use > 0) { - dev_dbg(dev, "waiting for device to settle " - "before scanning\n"); - wait_event_interruptible_timeout(us->delay_wait, - test_bit(US_FLIDX_DONT_SCAN, &us->dflags), - delay_use * HZ); - } - - /* If the device is still connected, perform the scanning */ - if (!test_bit(US_FLIDX_DONT_SCAN, &us->dflags)) { - - /* For bulk-only devices, determine the max LUN value */ - if (us->protocol == USB_PR_BULK && - !(us->fflags & US_FL_SINGLE_LUN)) { - mutex_lock(&us->dev_mutex); - us->max_lun = usb_stor_Bulk_max_lun(us); - mutex_unlock(&us->dev_mutex); - } - scsi_scan_host(us_to_host(us)); - dev_dbg(dev, "scan complete\n"); + dev_dbg(dev, "starting scan\n"); - /* Should we unbind if no devices were detected? */ + /* For bulk-only devices, determine the max LUN value */ + if (us->protocol == USB_PR_BULK && !(us->fflags & US_FL_SINGLE_LUN)) { + mutex_lock(&us->dev_mutex); + us->max_lun = usb_stor_Bulk_max_lun(us); + mutex_unlock(&us->dev_mutex); } + scsi_scan_host(us_to_host(us)); + dev_dbg(dev, "scan complete\n"); + + /* Should we unbind if no devices were detected? */ usb_autopm_put_interface(us->pusb_intf); - complete_and_exit(&us->scanning_done, 0); + clear_bit(US_FLIDX_SCAN_PENDING, &us->dflags); } static unsigned int usb_stor_sg_tablesize(struct usb_interface *intf) @@ -915,7 +907,7 @@ init_completion(&us->cmnd_ready); init_completion(&(us->notify)); init_waitqueue_head(&us->delay_wait); - init_completion(&us->scanning_done); + INIT_DELAYED_WORK(&us->scan_dwork, usb_stor_scan_dwork); /* Associate the us_data structure with the USB device */ result = associate_dev(us, intf); @@ -946,7 +938,6 @@ /* Second part of general USB mass-storage probing */ int usb_stor_probe2(struct us_data *us) { - struct task_struct *th; int result; struct device *dev = &us->pusb_intf->dev; @@ -987,20 +978,14 @@ goto BadDevice; } - /* Start up the thread for delayed SCSI-device scanning */ - th = kthread_create(usb_stor_scan_thread, us, "usb-stor-scan"); - if (IS_ERR(th)) { - dev_warn(dev, - "Unable to start the device-scanning thread\n"); - complete(&us->scanning_done); - quiesce_and_remove_host(us); - result = PTR_ERR(th); - goto BadDevice; - } - + /* Submit the delayed_work for SCSI-device scanning */ usb_autopm_get_interface_no_resume(us->pusb_intf); - wake_up_process(th); + set_bit(US_FLIDX_SCAN_PENDING, &us->dflags); + if (delay_use > 0) + dev_dbg(dev, "waiting for device to settle before scanning\n"); + queue_delayed_work(system_freezable_wq, &us->scan_dwork, + delay_use * HZ); return 0; /* We come here if there are any problems */ @@ -1073,6 +1058,7 @@ .id_table = usb_storage_usb_ids, .supports_autosuspend = 1, .soft_unbind = 1, + .no_dynamic_id = 1, }; static int __init usb_stor_init(void) --- linux-3.2.0.orig/drivers/usb/storage/usb.h +++ linux-3.2.0/drivers/usb/storage/usb.h @@ -47,6 +47,7 @@ #include #include #include +#include #include struct us_data; @@ -72,7 +73,7 @@ #define US_FLIDX_DISCONNECTING 3 /* disconnect in progress */ #define US_FLIDX_RESETTING 4 /* device reset in progress */ #define US_FLIDX_TIMED_OUT 5 /* SCSI midlayer timed out */ -#define US_FLIDX_DONT_SCAN 6 /* don't scan (disconnect) */ +#define US_FLIDX_SCAN_PENDING 6 /* scanning not yet done */ #define US_FLIDX_REDO_READ10 7 /* redo READ(10) command */ #define US_FLIDX_READ10_WORKED 8 /* previous READ(10) succeeded */ @@ -147,8 +148,8 @@ /* mutual exclusion and synchronization structures */ struct completion cmnd_ready; /* to sleep thread on */ struct completion notify; /* thread begin/end */ - wait_queue_head_t delay_wait; /* wait during scan, reset */ - struct completion scanning_done; /* wait for scan thread */ + wait_queue_head_t delay_wait; /* wait during reset */ + struct delayed_work scan_dwork; /* for async scanning */ /* subdriver information */ void *extra; /* Any extra data */ --- linux-3.2.0.orig/drivers/usb/storage/unusual_devs.h +++ linux-3.2.0/drivers/usb/storage/unusual_devs.h @@ -488,6 +488,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64 | US_FL_BULK_IGNORE_TAG), +/* Added by Dmitry Artamonow */ +UNUSUAL_DEV( 0x04e8, 0x5136, 0x0000, 0x9999, + "Samsung", + "YP-Z3", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64), + /* Entry and supporting patch by Theodore Kilgore . * Device uses standards-violating 32-byte Bulk Command Block Wrappers and * reports itself as "Proprietary SCSI Bulk." Cf. device entry 0x084d:0x0011. @@ -650,6 +657,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), +/* Submitted by Ren Bigcren */ +UNUSUAL_DEV( 0x054c, 0x02a5, 0x0100, 0x0100, + "Sony Corp.", + "MicroVault Flash Drive", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_NO_READ_CAPACITY_16 ), + /* floppy reports multiple luns */ UNUSUAL_DEV( 0x055d, 0x2020, 0x0000, 0x0210, "SAMSUNG", @@ -1004,6 +1018,12 @@ USB_SC_8070, USB_PR_CB, NULL, US_FL_NEED_OVERRIDE | US_FL_FIX_INQUIRY ), +/* Submitted by Oleksandr Chumachenko */ +UNUSUAL_DEV( 0x07cf, 0x1167, 0x0100, 0x0100, + "Casio", + "EX-N1 DigitalCamera", + USB_SC_8070, USB_PR_DEVICE, NULL, 0), + /* Submitted by Hartmut Wahl */ UNUSUAL_DEV( 0x0839, 0x000a, 0x0001, 0x0001, "Samsung", @@ -1163,6 +1183,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. * The entry is needed so usb-storage can bind to it's mass-storage @@ -1885,6 +1912,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), +/* Reported by Jesse Feddema */ +UNUSUAL_DEV( 0x177f, 0x0400, 0x0000, 0x0000, + "Yarvik", + "PMP400", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_BULK_IGNORE_TAG | US_FL_MAX_SECTORS_64 ), + /* Reported by Hans de Goede * These Appotech controllers are found in Picture Frames, they provide a * (buggy) emulation of a cdrom drive which contains the windows software --- linux-3.2.0.orig/drivers/usb/storage/unusual_cypress.h +++ linux-3.2.0/drivers/usb/storage/unusual_cypress.h @@ -31,7 +31,7 @@ "Cypress ISD-300LP", USB_SC_CYP_ATACB, USB_PR_DEVICE, NULL, 0), -UNUSUAL_DEV( 0x14cd, 0x6116, 0x0000, 0x9999, +UNUSUAL_DEV( 0x14cd, 0x6116, 0x0000, 0x0219, "Super Top", "USB 2.0 SATA BRIDGE", USB_SC_CYP_ATACB, USB_PR_DEVICE, NULL, 0), --- linux-3.2.0.orig/drivers/gpio/gpio-wm8994.c +++ linux-3.2.0/drivers/gpio/gpio-wm8994.c @@ -89,8 +89,11 @@ struct wm8994_gpio *wm8994_gpio = to_wm8994_gpio(chip); struct wm8994 *wm8994 = wm8994_gpio->wm8994; + if (value) + value = WM8994_GPN_LVL; + return wm8994_set_bits(wm8994, WM8994_GPIO_1 + offset, - WM8994_GPN_DIR, 0); + WM8994_GPN_DIR | WM8994_GPN_LVL, value); } static void wm8994_gpio_set(struct gpio_chip *chip, unsigned offset, int value) --- linux-3.2.0.orig/drivers/gpio/gpio-mpc8xxx.c +++ linux-3.2.0/drivers/gpio/gpio-mpc8xxx.c @@ -163,7 +163,8 @@ if (mask) generic_handle_irq(irq_linear_revmap(mpc8xxx_gc->irq, 32 - ffs(mask))); - chip->irq_eoi(&desc->irq_data); + if (chip->irq_eoi) + chip->irq_eoi(&desc->irq_data); } static void mpc8xxx_irq_unmask(struct irq_data *d) --- linux-3.2.0.orig/drivers/gpio/gpio-lpc32xx.c +++ linux-3.2.0/drivers/gpio/gpio-lpc32xx.c @@ -295,6 +295,7 @@ { struct lpc32xx_gpio_chip *group = to_lpc32xx_gpio(chip); + __set_gpio_level_p012(group, pin, value); __set_gpio_dir_p012(group, pin, 0); return 0; @@ -305,6 +306,7 @@ { struct lpc32xx_gpio_chip *group = to_lpc32xx_gpio(chip); + __set_gpio_level_p3(group, pin, value); __set_gpio_dir_p3(group, pin, 0); return 0; @@ -313,6 +315,9 @@ static int lpc32xx_gpio_dir_out_always(struct gpio_chip *chip, unsigned pin, int value) { + struct lpc32xx_gpio_chip *group = to_lpc32xx_gpio(chip); + + __set_gpo_level_p3(group, pin, value); return 0; } --- linux-3.2.0.orig/drivers/gpio/Kconfig +++ linux-3.2.0/drivers/gpio/Kconfig @@ -387,7 +387,7 @@ Say Y here to support Intel Langwell/Penwell GPIO. config GPIO_PCH - tristate "Intel EG20T PCH / OKI SEMICONDUCTOR ML7223 IOH GPIO" + tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831) GPIO" depends on PCI && X86 select GENERIC_IRQ_CHIP help @@ -395,11 +395,12 @@ which is an IOH(Input/Output Hub) for x86 embedded processor. This driver can access PCH GPIO device. - This driver also can be used for OKI SEMICONDUCTOR IOH(Input/ - Output Hub), ML7223. + This driver also can be used for LAPIS Semiconductor IOH(Input/ + Output Hub), ML7223 and ML7831. ML7223 IOH is for MP(Media Phone) use. - ML7223 is companion chip for Intel Atom E6xx series. - ML7223 is completely compatible for Intel EG20T PCH. + ML7831 IOH is for general purpose use. + ML7223/ML7831 is companion chip for Intel Atom E6xx series. + ML7223/ML7831 is completely compatible for Intel EG20T PCH. config GPIO_ML_IOH tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support" --- linux-3.2.0.orig/drivers/gpio/gpio-pch.c +++ linux-3.2.0/drivers/gpio/gpio-pch.c @@ -392,6 +392,7 @@ chip->reg = chip->base; pci_set_drvdata(pdev, chip); mutex_init(&chip->lock); + spin_lock_init(&chip->spinlock); pch_gpio_setup(chip); ret = gpiochip_add(&chip->gpio); if (ret) { @@ -524,6 +525,7 @@ { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x8803) }, { PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8014) }, { PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8043) }, + { PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8803) }, { 0, } }; MODULE_DEVICE_TABLE(pci, pch_gpio_pcidev_id); --- linux-3.2.0.orig/drivers/gpio/gpio-davinci.c +++ linux-3.2.0/drivers/gpio/gpio-davinci.c @@ -313,10 +313,16 @@ return -ENODEV; } -static int gpio_irq_type_unbanked(struct irq_data *d, unsigned trigger) +static int gpio_irq_type_unbanked(struct irq_data *data, unsigned trigger) { - struct davinci_gpio_regs __iomem *g = irq2regs(d->irq); - u32 mask = (u32) irq_data_get_irq_handler_data(d); + struct davinci_gpio_controller *d; + struct davinci_gpio_regs __iomem *g; + struct davinci_soc_info *soc_info = &davinci_soc_info; + u32 mask; + + d = (struct davinci_gpio_controller *)data->handler_data; + g = (struct davinci_gpio_regs __iomem *)d->regs; + mask = __gpio_mask(data->irq - soc_info->gpio_irq); if (trigger & ~(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)) return -EINVAL; @@ -380,7 +386,7 @@ * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs. */ if (soc_info->gpio_unbanked) { - static struct irq_chip gpio_irqchip_unbanked; + static struct irq_chip_type gpio_unbanked; /* pass "bank 0" GPIO IRQs to AINTC */ chips[0].chip.to_irq = gpio_to_irq_unbanked; @@ -388,9 +394,10 @@ /* AINTC handles mask/unmask; GPIO handles triggering */ irq = bank_irq; - gpio_irqchip_unbanked = *irq_get_chip(irq); - gpio_irqchip_unbanked.name = "GPIO-AINTC"; - gpio_irqchip_unbanked.irq_set_type = gpio_irq_type_unbanked; + gpio_unbanked = *container_of(irq_get_chip(irq), + struct irq_chip_type, chip); + gpio_unbanked.chip.name = "GPIO-AINTC"; + gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked; /* default trigger: both edges */ g = gpio2regs(0); @@ -399,9 +406,8 @@ /* set the direct IRQs up to use that irqchip */ for (gpio = 0; gpio < soc_info->gpio_unbanked; gpio++, irq++) { - irq_set_chip(irq, &gpio_irqchip_unbanked); - irq_set_handler_data(irq, (void *)__gpio_mask(gpio)); - irq_set_chip_data(irq, (__force void *)g); + irq_set_chip(irq, &gpio_unbanked.chip); + irq_set_handler_data(irq, &chips[gpio / 32]); irq_set_status_flags(irq, IRQ_TYPE_EDGE_BOTH); } --- linux-3.2.0.orig/drivers/gpio/gpio-omap.c +++ linux-3.2.0/drivers/gpio/gpio-omap.c @@ -508,7 +508,10 @@ static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int enable) { - _enable_gpio_irqbank(bank, GPIO_BIT(bank, gpio)); + if (enable) + _enable_gpio_irqbank(bank, GPIO_BIT(bank, gpio)); + else + _disable_gpio_irqbank(bank, GPIO_BIT(bank, gpio)); } /* --- linux-3.2.0.orig/drivers/gpio/gpio-ml-ioh.c +++ linux-3.2.0/drivers/gpio/gpio-ml-ioh.c @@ -448,6 +448,7 @@ chip->reg = chip->base; chip->ch = i; mutex_init(&chip->lock); + spin_lock_init(&chip->spinlock); ioh_gpio_setup(chip, num_ports[i]); ret = gpiochip_add(&chip->gpio); if (ret) { --- linux-3.2.0.orig/drivers/gpio/gpio-timberdale.c +++ linux-3.2.0/drivers/gpio/gpio-timberdale.c @@ -116,7 +116,7 @@ unsigned long flags; spin_lock_irqsave(&tgpio->lock, flags); - tgpio->last_ier &= ~(1 << offset); + tgpio->last_ier &= ~(1UL << offset); iowrite32(tgpio->last_ier, tgpio->membase + TGPIO_IER); spin_unlock_irqrestore(&tgpio->lock, flags); } @@ -128,7 +128,7 @@ unsigned long flags; spin_lock_irqsave(&tgpio->lock, flags); - tgpio->last_ier |= 1 << offset; + tgpio->last_ier |= 1UL << offset; iowrite32(tgpio->last_ier, tgpio->membase + TGPIO_IER); spin_unlock_irqrestore(&tgpio->lock, flags); } --- linux-3.2.0.orig/drivers/isdn/gigaset/bas-gigaset.c +++ linux-3.2.0/drivers/isdn/gigaset/bas-gigaset.c @@ -616,7 +616,13 @@ if (rc == 0) /* success, resubmit interrupt read URB */ rc = usb_submit_urb(urb, GFP_ATOMIC); - if (rc != 0 && rc != -ENODEV) { + + switch (rc) { + case 0: /* success */ + case -ENODEV: /* device gone */ + case -EINVAL: /* URB already resubmitted, or terminal badness */ + break; + default: /* failure: try to recover by resetting the device */ dev_err(cs->dev, "clear halt failed: %s\n", get_usb_rcmsg(rc)); rc = usb_lock_device_for_reset(ucs->udev, ucs->interface); if (rc == 0) { @@ -2437,7 +2443,9 @@ } /* gigaset_suspend - * This function is called before the USB connection is suspended. + * This function is called before the USB connection is suspended + * or before the USB device is reset. + * In the latter case, message == PMSG_ON. */ static int gigaset_suspend(struct usb_interface *intf, pm_message_t message) { @@ -2493,7 +2501,12 @@ del_timer_sync(&ucs->timer_atrdy); del_timer_sync(&ucs->timer_cmd_in); del_timer_sync(&ucs->timer_int_in); - cancel_work_sync(&ucs->int_in_wq); + + /* don't try to cancel int_in_wq from within reset as it + * might be the one requesting the reset + */ + if (message.event != PM_EVENT_ON) + cancel_work_sync(&ucs->int_in_wq); gig_dbg(DEBUG_SUSPEND, "suspend complete"); return 0; --- linux-3.2.0.orig/drivers/isdn/gigaset/ev-layer.c +++ linux-3.2.0/drivers/isdn/gigaset/ev-layer.c @@ -190,6 +190,7 @@ ACT_INIT} }, {RSP_OK, 121, 121, -1, 0, 0, {ACT_GOTVER, ACT_INIT} }, +{RSP_NONE, 121, 121, -1, 120, 0, {ACT_GETSTRING} }, /* leave dle mode */ {RSP_INIT, 0, 0, SEQ_DLE0, 201, 5, {0}, "^SDLE=0\r"}, @@ -1314,8 +1315,9 @@ s = ev->ptr; if (!strcmp(s, "OK")) { + /* OK without version string: assume old response */ *p_genresp = 1; - *p_resp_code = RSP_ERROR; + *p_resp_code = RSP_NONE; break; } --- linux-3.2.0.orig/drivers/isdn/gigaset/capi.c +++ linux-3.2.0/drivers/isdn/gigaset/capi.c @@ -14,6 +14,7 @@ #include "gigaset.h" #include #include +#include #include #include #include @@ -223,10 +224,14 @@ static inline void dump_cmsg(enum debuglevel level, const char *tag, _cmsg *p) { #ifdef CONFIG_GIGASET_DEBUG + /* dump at most 20 messages in 20 secs */ + static DEFINE_RATELIMIT_STATE(msg_dump_ratelimit, 20 * HZ, 20); _cdebbuf *cdb; if (!(gigaset_debuglevel & level)) return; + if (!___ratelimit(&msg_dump_ratelimit, tag)) + return; cdb = capi_cmsg2str(p); if (cdb) { @@ -259,6 +264,8 @@ CAPIMSG_APPID(data), CAPIMSG_MSGID(data), l, CAPIMSG_CONTROL(data)); l -= 12; + if (l <= 0) + return; dbgline = kmalloc(3*l, GFP_ATOMIC); if (!dbgline) return; @@ -1882,6 +1889,9 @@ /* check for active logical connection */ if (bcs->apconnstate >= APCONN_ACTIVE) { + /* clear it */ + bcs->apconnstate = APCONN_SETUP; + /* * emit DISCONNECT_B3_IND with cause 0x3301 * use separate cmsg structure, as the content of iif->acmsg @@ -1906,6 +1916,7 @@ } capi_cmsg2message(b3cmsg, __skb_put(b3skb, CAPI_DISCONNECT_B3_IND_BASELEN)); + dump_cmsg(DEBUG_CMD, __func__, b3cmsg); kfree(b3cmsg); capi_ctr_handle_message(&iif->ctr, ap->id, b3skb); } @@ -2059,12 +2070,6 @@ } /* - * dump unsupported/ignored messages at most twice per minute, - * some apps send those very frequently - */ -static unsigned long ignored_msg_dump_time; - -/* * unsupported CAPI message handler */ static void do_unsupported(struct gigaset_capi_ctr *iif, @@ -2073,8 +2078,7 @@ { /* decode message */ capi_message2cmsg(&iif->acmsg, skb->data); - if (printk_timed_ratelimit(&ignored_msg_dump_time, 30 * 1000)) - dump_cmsg(DEBUG_CMD, __func__, &iif->acmsg); + dump_cmsg(DEBUG_CMD, __func__, &iif->acmsg); send_conf(iif, ap, skb, CapiMessageNotSupportedInCurrentState); } @@ -2085,11 +2089,9 @@ struct gigaset_capi_appl *ap, struct sk_buff *skb) { - if (printk_timed_ratelimit(&ignored_msg_dump_time, 30 * 1000)) { - /* decode message */ - capi_message2cmsg(&iif->acmsg, skb->data); - dump_cmsg(DEBUG_CMD, __func__, &iif->acmsg); - } + /* decode message */ + capi_message2cmsg(&iif->acmsg, skb->data); + dump_cmsg(DEBUG_CMD, __func__, &iif->acmsg); dev_kfree_skb_any(skb); } --- linux-3.2.0.orig/drivers/isdn/isdnloop/isdnloop.c +++ linux-3.2.0/drivers/isdn/isdnloop/isdnloop.c @@ -16,7 +16,6 @@ #include #include "isdnloop.h" -static char *revision = "$Revision: 1.11.6.7 $"; static char *isdnloop_id = "loop0"; MODULE_DESCRIPTION("ISDN4Linux: Pseudo Driver that simulates an ISDN card"); @@ -1494,17 +1493,6 @@ static int __init isdnloop_init(void) { - char *p; - char rev[10]; - - if ((p = strchr(revision, ':'))) { - strcpy(rev, p + 1); - p = strchr(rev, '$'); - *p = 0; - } else - strcpy(rev, " ??? "); - printk(KERN_NOTICE "isdnloop-ISDN-driver Rev%s\n", rev); - if (isdnloop_id) return (isdnloop_addcard(isdnloop_id)); --- linux-3.2.0.orig/drivers/xen/Kconfig +++ linux-3.2.0/drivers/xen/Kconfig @@ -171,4 +171,21 @@ xen-pciback.hide=(03:00.0)(04:00.0) If in doubt, say m. + +config XEN_ACPI_PROCESSOR + tristate "Xen ACPI processor" + depends on XEN && X86 && ACPI_PROCESSOR && CPU_FREQ + default m + help + This ACPI processor uploads Power Management information to the Xen hypervisor. + + To do that the driver parses the Power Management data and uploads said + information to the Xen hypervisor. Then the Xen hypervisor can select the + proper Cx and Pxx states. It also registers itslef as the SMM so that + other drivers (such as ACPI cpufreq scaling driver) will not load. + + To compile this driver as a module, choose M here: the + module will be called xen_acpi_processor If you do not know what to choose, + select M here. If the CPUFREQ drivers are built in, select Y here. + endmenu --- linux-3.2.0.orig/drivers/xen/swiotlb-xen.c +++ linux-3.2.0/drivers/xen/swiotlb-xen.c @@ -231,7 +231,7 @@ return ret; if (hwdev && hwdev->coherent_dma_mask) - dma_mask = hwdev->coherent_dma_mask; + dma_mask = dma_alloc_coherent_mask(hwdev, flags); phys = virt_to_phys(ret); dev_addr = xen_phys_to_bus(phys); --- linux-3.2.0.orig/drivers/xen/Makefile +++ linux-3.2.0/drivers/xen/Makefile @@ -19,7 +19,7 @@ obj-$(CONFIG_SWIOTLB_XEN) += swiotlb-xen.o obj-$(CONFIG_XEN_DOM0) += pci.o obj-$(CONFIG_XEN_PCIDEV_BACKEND) += xen-pciback/ - +obj-$(CONFIG_XEN_ACPI_PROCESSOR) += xen-acpi-processor.o xen-evtchn-y := evtchn.o xen-gntdev-y := gntdev.o xen-gntalloc-y := gntalloc.o --- linux-3.2.0.orig/drivers/xen/xen-acpi-processor.c +++ linux-3.2.0/drivers/xen/xen-acpi-processor.c @@ -0,0 +1,562 @@ +/* + * Copyright 2012 by Oracle Inc + * Author: Konrad Rzeszutek Wilk + * + * This code borrows ideas from https://lkml.org/lkml/2011/11/30/249 + * so many thanks go to Kevin Tian + * and Yu Ke . + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope 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 +#include +#include + +#include +#include + +#define DRV_NAME "xen-acpi-processor: " + +static int no_hypercall; +MODULE_PARM_DESC(off, "Inhibit the hypercall."); +module_param_named(off, no_hypercall, int, 0400); + +/* + * Note: Do not convert the acpi_id* below to cpumask_var_t or use cpumask_bit + * - as those shrink to nr_cpu_bits (which is dependent on possible_cpu), which + * can be less than what we want to put in. Instead use the 'nr_acpi_bits' + * which is dynamically computed based on the MADT or x2APIC table. + */ +static unsigned int nr_acpi_bits; +/* Mutex to protect the acpi_ids_done - for CPU hotplug use. */ +static DEFINE_MUTEX(acpi_ids_mutex); +/* Which ACPI ID we have processed from 'struct acpi_processor'. */ +static unsigned long *acpi_ids_done; +/* Which ACPI ID exist in the SSDT/DSDT processor definitions. */ +static unsigned long __initdata *acpi_id_present; +/* And if there is an _CST definition (or a PBLK) for the ACPI IDs */ +static unsigned long __initdata *acpi_id_cst_present; + +static int push_cxx_to_hypervisor(struct acpi_processor *_pr) +{ + struct xen_platform_op op = { + .cmd = XENPF_set_processor_pminfo, + .interface_version = XENPF_INTERFACE_VERSION, + .u.set_pminfo.id = _pr->acpi_id, + .u.set_pminfo.type = XEN_PM_CX, + }; + struct xen_processor_cx *dst_cx, *dst_cx_states = NULL; + struct acpi_processor_cx *cx; + unsigned int i, ok; + int ret = 0; + + dst_cx_states = kcalloc(_pr->power.count, + sizeof(struct xen_processor_cx), GFP_KERNEL); + if (!dst_cx_states) + return -ENOMEM; + + for (ok = 0, i = 1; i <= _pr->power.count; i++) { + cx = &_pr->power.states[i]; + if (!cx->valid) + continue; + + dst_cx = &(dst_cx_states[ok++]); + + dst_cx->reg.space_id = ACPI_ADR_SPACE_SYSTEM_IO; + if (cx->entry_method == ACPI_CSTATE_SYSTEMIO) { + dst_cx->reg.bit_width = 8; + dst_cx->reg.bit_offset = 0; + dst_cx->reg.access_size = 1; + } else { + dst_cx->reg.space_id = ACPI_ADR_SPACE_FIXED_HARDWARE; + if (cx->entry_method == ACPI_CSTATE_FFH) { + /* NATIVE_CSTATE_BEYOND_HALT */ + dst_cx->reg.bit_offset = 2; + dst_cx->reg.bit_width = 1; /* VENDOR_INTEL */ + } + dst_cx->reg.access_size = 0; + } + dst_cx->reg.address = cx->address; + + dst_cx->type = cx->type; + dst_cx->latency = cx->latency; + dst_cx->power = cx->power; + + dst_cx->dpcnt = 0; + set_xen_guest_handle(dst_cx->dp, NULL); + } + if (!ok) { + pr_debug(DRV_NAME "No _Cx for ACPI CPU %u\n", _pr->acpi_id); + kfree(dst_cx_states); + return -EINVAL; + } + op.u.set_pminfo.power.count = ok; + op.u.set_pminfo.power.flags.bm_control = _pr->flags.bm_control; + op.u.set_pminfo.power.flags.bm_check = _pr->flags.bm_check; + op.u.set_pminfo.power.flags.has_cst = _pr->flags.has_cst; + op.u.set_pminfo.power.flags.power_setup_done = + _pr->flags.power_setup_done; + + set_xen_guest_handle(op.u.set_pminfo.power.states, dst_cx_states); + + if (!no_hypercall) + ret = HYPERVISOR_dom0_op(&op); + + if (!ret) { + pr_debug("ACPI CPU%u - C-states uploaded.\n", _pr->acpi_id); + for (i = 1; i <= _pr->power.count; i++) { + cx = &_pr->power.states[i]; + if (!cx->valid) + continue; + pr_debug(" C%d: %s %d uS\n", + cx->type, cx->desc, (u32)cx->latency); + } + } else + pr_err(DRV_NAME "(CX): Hypervisor error (%d) for ACPI CPU%u\n", + ret, _pr->acpi_id); + + kfree(dst_cx_states); + + return ret; +} +static struct xen_processor_px * +xen_copy_pss_data(struct acpi_processor *_pr, + struct xen_processor_performance *dst_perf) +{ + struct xen_processor_px *dst_states = NULL; + unsigned int i; + + BUILD_BUG_ON(sizeof(struct xen_processor_px) != + sizeof(struct acpi_processor_px)); + + dst_states = kcalloc(_pr->performance->state_count, + sizeof(struct xen_processor_px), GFP_KERNEL); + if (!dst_states) + return ERR_PTR(-ENOMEM); + + dst_perf->state_count = _pr->performance->state_count; + for (i = 0; i < _pr->performance->state_count; i++) { + /* Fortunatly for us, they are both the same size */ + memcpy(&(dst_states[i]), &(_pr->performance->states[i]), + sizeof(struct acpi_processor_px)); + } + return dst_states; +} +static int xen_copy_psd_data(struct acpi_processor *_pr, + struct xen_processor_performance *dst) +{ + struct acpi_psd_package *pdomain; + + BUILD_BUG_ON(sizeof(struct xen_psd_package) != + sizeof(struct acpi_psd_package)); + + /* This information is enumerated only if acpi_processor_preregister_performance + * has been called. + */ + dst->shared_type = _pr->performance->shared_type; + + pdomain = &(_pr->performance->domain_info); + + /* 'acpi_processor_preregister_performance' does not parse if the + * num_processors <= 1, but Xen still requires it. Do it manually here. + */ + if (pdomain->num_processors <= 1) { + if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ALL) + dst->shared_type = CPUFREQ_SHARED_TYPE_ALL; + else if (pdomain->coord_type == DOMAIN_COORD_TYPE_HW_ALL) + dst->shared_type = CPUFREQ_SHARED_TYPE_HW; + else if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ANY) + dst->shared_type = CPUFREQ_SHARED_TYPE_ANY; + + } + memcpy(&(dst->domain_info), pdomain, sizeof(struct acpi_psd_package)); + return 0; +} +static int xen_copy_pct_data(struct acpi_pct_register *pct, + struct xen_pct_register *dst_pct) +{ + /* It would be nice if you could just do 'memcpy(pct, dst_pct') but + * sadly the Xen structure did not have the proper padding so the + * descriptor field takes two (dst_pct) bytes instead of one (pct). + */ + dst_pct->descriptor = pct->descriptor; + dst_pct->length = pct->length; + dst_pct->space_id = pct->space_id; + dst_pct->bit_width = pct->bit_width; + dst_pct->bit_offset = pct->bit_offset; + dst_pct->reserved = pct->reserved; + dst_pct->address = pct->address; + return 0; +} +static int push_pxx_to_hypervisor(struct acpi_processor *_pr) +{ + int ret = 0; + struct xen_platform_op op = { + .cmd = XENPF_set_processor_pminfo, + .interface_version = XENPF_INTERFACE_VERSION, + .u.set_pminfo.id = _pr->acpi_id, + .u.set_pminfo.type = XEN_PM_PX, + }; + struct xen_processor_performance *dst_perf; + struct xen_processor_px *dst_states = NULL; + + dst_perf = &op.u.set_pminfo.perf; + + dst_perf->platform_limit = _pr->performance_platform_limit; + dst_perf->flags |= XEN_PX_PPC; + xen_copy_pct_data(&(_pr->performance->control_register), + &dst_perf->control_register); + xen_copy_pct_data(&(_pr->performance->status_register), + &dst_perf->status_register); + dst_perf->flags |= XEN_PX_PCT; + dst_states = xen_copy_pss_data(_pr, dst_perf); + if (!IS_ERR_OR_NULL(dst_states)) { + set_xen_guest_handle(dst_perf->states, dst_states); + dst_perf->flags |= XEN_PX_PSS; + } + if (!xen_copy_psd_data(_pr, dst_perf)) + dst_perf->flags |= XEN_PX_PSD; + + if (dst_perf->flags != (XEN_PX_PSD | XEN_PX_PSS | XEN_PX_PCT | XEN_PX_PPC)) { + pr_warn(DRV_NAME "ACPI CPU%u missing some P-state data (%x), skipping.\n", + _pr->acpi_id, dst_perf->flags); + ret = -ENODEV; + goto err_free; + } + + if (!no_hypercall) + ret = HYPERVISOR_dom0_op(&op); + + if (!ret) { + struct acpi_processor_performance *perf; + unsigned int i; + + perf = _pr->performance; + pr_debug("ACPI CPU%u - P-states uploaded.\n", _pr->acpi_id); + for (i = 0; i < perf->state_count; i++) { + pr_debug(" %cP%d: %d MHz, %d mW, %d uS\n", + (i == perf->state ? '*' : ' '), i, + (u32) perf->states[i].core_frequency, + (u32) perf->states[i].power, + (u32) perf->states[i].transition_latency); + } + } else if (ret != -EINVAL) + /* EINVAL means the ACPI ID is incorrect - meaning the ACPI + * table is referencing a non-existing CPU - which can happen + * with broken ACPI tables. */ + pr_warn(DRV_NAME "(_PXX): Hypervisor error (%d) for ACPI CPU%u\n", + ret, _pr->acpi_id); +err_free: + if (!IS_ERR_OR_NULL(dst_states)) + kfree(dst_states); + + return ret; +} +static int upload_pm_data(struct acpi_processor *_pr) +{ + int err = 0; + + mutex_lock(&acpi_ids_mutex); + if (__test_and_set_bit(_pr->acpi_id, acpi_ids_done)) { + mutex_unlock(&acpi_ids_mutex); + return -EBUSY; + } + if (_pr->flags.power) + err = push_cxx_to_hypervisor(_pr); + + if (_pr->performance && _pr->performance->states) + err |= push_pxx_to_hypervisor(_pr); + + mutex_unlock(&acpi_ids_mutex); + return err; +} +static unsigned int __init get_max_acpi_id(void) +{ + struct xenpf_pcpuinfo *info; + struct xen_platform_op op = { + .cmd = XENPF_get_cpuinfo, + .interface_version = XENPF_INTERFACE_VERSION, + }; + int ret = 0; + unsigned int i, last_cpu, max_acpi_id = 0; + + info = &op.u.pcpu_info; + info->xen_cpuid = 0; + + ret = HYPERVISOR_dom0_op(&op); + if (ret) + return NR_CPUS; + + /* The max_present is the same irregardless of the xen_cpuid */ + last_cpu = op.u.pcpu_info.max_present; + for (i = 0; i <= last_cpu; i++) { + info->xen_cpuid = i; + ret = HYPERVISOR_dom0_op(&op); + if (ret) + continue; + max_acpi_id = max(info->acpi_id, max_acpi_id); + } + max_acpi_id *= 2; /* Slack for CPU hotplug support. */ + pr_debug(DRV_NAME "Max ACPI ID: %u\n", max_acpi_id); + return max_acpi_id; +} +/* + * The read_acpi_id and check_acpi_ids are there to support the Xen + * oddity of virtual CPUs != physical CPUs in the initial domain. + * The user can supply 'xen_max_vcpus=X' on the Xen hypervisor line + * which will band the amount of CPUs the initial domain can see. + * In general that is OK, except it plays havoc with any of the + * for_each_[present|online]_cpu macros which are banded to the virtual + * CPU amount. + */ +static acpi_status __init +read_acpi_id(acpi_handle handle, u32 lvl, void *context, void **rv) +{ + u32 acpi_id; + acpi_status status; + acpi_object_type acpi_type; + unsigned long long tmp; + union acpi_object object = { 0 }; + struct acpi_buffer buffer = { sizeof(union acpi_object), &object }; + acpi_io_address pblk = 0; + + status = acpi_get_type(handle, &acpi_type); + if (ACPI_FAILURE(status)) + return AE_OK; + + switch (acpi_type) { + case ACPI_TYPE_PROCESSOR: + status = acpi_evaluate_object(handle, NULL, NULL, &buffer); + if (ACPI_FAILURE(status)) + return AE_OK; + acpi_id = object.processor.proc_id; + pblk = object.processor.pblk_address; + break; + case ACPI_TYPE_DEVICE: + status = acpi_evaluate_integer(handle, "_UID", NULL, &tmp); + if (ACPI_FAILURE(status)) + return AE_OK; + acpi_id = tmp; + break; + default: + return AE_OK; + } + /* There are more ACPI Processor objects than in x2APIC or MADT. + * This can happen with incorrect ACPI SSDT declerations. */ + if (acpi_id > nr_acpi_bits) { + pr_debug(DRV_NAME "We only have %u, trying to set %u\n", + nr_acpi_bits, acpi_id); + return AE_OK; + } + /* OK, There is a ACPI Processor object */ + __set_bit(acpi_id, acpi_id_present); + + pr_debug(DRV_NAME "ACPI CPU%u w/ PBLK:0x%lx\n", acpi_id, + (unsigned long)pblk); + + status = acpi_evaluate_object(handle, "_CST", NULL, &buffer); + if (ACPI_FAILURE(status)) { + if (!pblk) + return AE_OK; + } + /* .. and it has a C-state */ + __set_bit(acpi_id, acpi_id_cst_present); + + return AE_OK; +} +static int __init check_acpi_ids(struct acpi_processor *pr_backup) +{ + + if (!pr_backup) + return -ENODEV; + + /* All online CPUs have been processed at this stage. Now verify + * whether in fact "online CPUs" == physical CPUs. + */ + acpi_id_present = kcalloc(BITS_TO_LONGS(nr_acpi_bits), sizeof(unsigned long), GFP_KERNEL); + if (!acpi_id_present) + return -ENOMEM; + + acpi_id_cst_present = kcalloc(BITS_TO_LONGS(nr_acpi_bits), sizeof(unsigned long), GFP_KERNEL); + if (!acpi_id_cst_present) { + kfree(acpi_id_present); + return -ENOMEM; + } + + acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, + ACPI_UINT32_MAX, + read_acpi_id, NULL, NULL, NULL); + acpi_get_devices("ACPI0007", read_acpi_id, NULL, NULL); + + if (!bitmap_equal(acpi_id_present, acpi_ids_done, nr_acpi_bits)) { + unsigned int i; + for_each_set_bit(i, acpi_id_present, nr_acpi_bits) { + pr_backup->acpi_id = i; + /* Mask out C-states if there are no _CST or PBLK */ + pr_backup->flags.power = test_bit(i, acpi_id_cst_present); + (void)upload_pm_data(pr_backup); + } + } + kfree(acpi_id_present); + acpi_id_present = NULL; + kfree(acpi_id_cst_present); + acpi_id_cst_present = NULL; + return 0; +} +static int __init check_prereq(void) +{ + struct cpuinfo_x86 *c = &cpu_data(0); + + if (!xen_initial_domain()) + return -ENODEV; + + if (!acpi_gbl_FADT.smi_command) + return -ENODEV; + + if (c->x86_vendor == X86_VENDOR_INTEL) { + if (!cpu_has(c, X86_FEATURE_EST)) + return -ENODEV; + + return 0; + } + if (c->x86_vendor == X86_VENDOR_AMD) { + /* Copied from powernow-k8.h, can't include ../cpufreq/powernow + * as we get compile warnings for the static functions. + */ +#define CPUID_FREQ_VOLT_CAPABILITIES 0x80000007 +#define USE_HW_PSTATE 0x00000080 + u32 eax, ebx, ecx, edx; + cpuid(CPUID_FREQ_VOLT_CAPABILITIES, &eax, &ebx, &ecx, &edx); + if ((edx & USE_HW_PSTATE) != USE_HW_PSTATE) + return -ENODEV; + return 0; + } + return -ENODEV; +} +/* acpi_perf_data is a pointer to percpu data. */ +static struct acpi_processor_performance __percpu *acpi_perf_data; + +static void free_acpi_perf_data(void) +{ + unsigned int i; + + /* Freeing a NULL pointer is OK, and alloc_percpu zeroes. */ + for_each_possible_cpu(i) + free_cpumask_var(per_cpu_ptr(acpi_perf_data, i) + ->shared_cpu_map); + free_percpu(acpi_perf_data); +} + +static int __init xen_acpi_processor_init(void) +{ + struct acpi_processor *pr_backup = NULL; + unsigned int i; + int rc = check_prereq(); + + if (rc) + return rc; + + nr_acpi_bits = get_max_acpi_id() + 1; + acpi_ids_done = kcalloc(BITS_TO_LONGS(nr_acpi_bits), sizeof(unsigned long), GFP_KERNEL); + if (!acpi_ids_done) + return -ENOMEM; + + acpi_perf_data = alloc_percpu(struct acpi_processor_performance); + if (!acpi_perf_data) { + pr_debug(DRV_NAME "Memory allocation error for acpi_perf_data.\n"); + kfree(acpi_ids_done); + return -ENOMEM; + } + for_each_possible_cpu(i) { + if (!zalloc_cpumask_var_node( + &per_cpu_ptr(acpi_perf_data, i)->shared_cpu_map, + GFP_KERNEL, cpu_to_node(i))) { + rc = -ENOMEM; + goto err_out; + } + } + + /* Do initialization in ACPI core. It is OK to fail here. */ + (void)acpi_processor_preregister_performance(acpi_perf_data); + + for_each_possible_cpu(i) { + struct acpi_processor_performance *perf; + + perf = per_cpu_ptr(acpi_perf_data, i); + rc = acpi_processor_register_performance(perf, i); + if (rc) + goto err_out; + } + rc = acpi_processor_notify_smm(THIS_MODULE); + if (rc) + goto err_unregister; + + for_each_possible_cpu(i) { + struct acpi_processor *_pr; + _pr = per_cpu(processors, i /* APIC ID */); + if (!_pr) + continue; + + if (!pr_backup) { + pr_backup = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL); + memcpy(pr_backup, _pr, sizeof(struct acpi_processor)); + } + (void)upload_pm_data(_pr); + } + rc = check_acpi_ids(pr_backup); + if (rc) + goto err_unregister; + + kfree(pr_backup); + + return 0; +err_unregister: + for_each_possible_cpu(i) { + struct acpi_processor_performance *perf; + perf = per_cpu_ptr(acpi_perf_data, i); + acpi_processor_unregister_performance(perf, i); + } +err_out: + /* Freeing a NULL pointer is OK: alloc_percpu zeroes. */ + free_acpi_perf_data(); + kfree(acpi_ids_done); + return rc; +} +static void __exit xen_acpi_processor_exit(void) +{ + int i; + + kfree(acpi_ids_done); + for_each_possible_cpu(i) { + struct acpi_processor_performance *perf; + perf = per_cpu_ptr(acpi_perf_data, i); + acpi_processor_unregister_performance(perf, i); + } + free_acpi_perf_data(); +} + +MODULE_AUTHOR("Konrad Rzeszutek Wilk "); +MODULE_DESCRIPTION("Xen ACPI Processor P-states (and Cx) driver which uploads PM data to Xen hypervisor"); +MODULE_LICENSE("GPL"); + +/* We want to be loaded before the CPU freq scaling drivers are loaded. + * They are loaded in late_initcall. */ +device_initcall(xen_acpi_processor_init); +module_exit(xen_acpi_processor_exit); --- linux-3.2.0.orig/drivers/xen/evtchn.c +++ linux-3.2.0/drivers/xen/evtchn.c @@ -269,6 +269,14 @@ u->name, (void *)(unsigned long)port); if (rc >= 0) rc = 0; + else { + /* bind failed, should close the port now */ + struct evtchn_close close; + close.port = port; + if (HYPERVISOR_event_channel_op(EVTCHNOP_close, &close) != 0) + BUG(); + set_port_user(port, NULL); + } return rc; } @@ -277,6 +285,8 @@ { int irq = irq_from_evtchn(port); + BUG_ON(irq < 0); + unbind_from_irqhandler(irq, (void *)(unsigned long)port); set_port_user(port, NULL); --- linux-3.2.0.orig/drivers/xen/events.c +++ linux-3.2.0/drivers/xen/events.c @@ -600,7 +600,7 @@ disable_dynirq(data); } -static int find_irq_by_gsi(unsigned gsi) +int xen_irq_from_gsi(unsigned gsi) { struct irq_info *info; @@ -614,6 +614,7 @@ return -1; } +EXPORT_SYMBOL_GPL(xen_irq_from_gsi); /* * Do not make any assumptions regarding the relationship between the @@ -633,7 +634,7 @@ mutex_lock(&irq_mapping_update_lock); - irq = find_irq_by_gsi(gsi); + irq = xen_irq_from_gsi(gsi); if (irq != -1) { printk(KERN_INFO "xen_map_pirq_gsi: returning irq %d for gsi %u\n", irq, gsi); @@ -1175,7 +1176,7 @@ { int start_word_idx, start_bit_idx; int word_idx, bit_idx; - int i; + int i, irq; int cpu = get_cpu(); struct shared_info *s = HYPERVISOR_shared_info; struct vcpu_info *vcpu_info = __this_cpu_read(xen_vcpu); @@ -1183,6 +1184,8 @@ do { unsigned long pending_words; + unsigned long pending_bits; + struct irq_desc *desc; vcpu_info->evtchn_upcall_pending = 0; @@ -1193,6 +1196,17 @@ /* Clear master flag /before/ clearing selector flag. */ wmb(); #endif + if ((irq = per_cpu(virq_to_irq, cpu)[VIRQ_TIMER]) != -1) { + int evtchn = evtchn_from_irq(irq); + word_idx = evtchn / BITS_PER_LONG; + pending_bits = evtchn % BITS_PER_LONG; + if (active_evtchns(cpu, s, word_idx) & (1ULL << pending_bits)) { + desc = irq_to_desc(irq); + if (desc) + generic_handle_irq_desc(irq, desc); + } + } + pending_words = xchg(&vcpu_info->evtchn_pending_sel, 0); start_word_idx = __this_cpu_read(current_word_idx); @@ -1201,7 +1215,6 @@ word_idx = start_word_idx; for (i = 0; pending_words != 0; i++) { - unsigned long pending_bits; unsigned long words; words = MASK_LSBS(pending_words, word_idx); @@ -1230,8 +1243,7 @@ do { unsigned long bits; - int port, irq; - struct irq_desc *desc; + int port; bits = MASK_LSBS(pending_bits, bit_idx); --- linux-3.2.0.orig/drivers/xen/gntdev.c +++ linux-3.2.0/drivers/xen/gntdev.c @@ -105,6 +105,21 @@ #endif } +static void gntdev_free_map(struct grant_map *map) +{ + if (map == NULL) + return; + + if (map->pages) + free_xenballooned_pages(map->count, map->pages); + kfree(map->pages); + kfree(map->grants); + kfree(map->map_ops); + kfree(map->unmap_ops); + kfree(map->kmap_ops); + kfree(map); +} + static struct grant_map *gntdev_alloc_map(struct gntdev_priv *priv, int count) { struct grant_map *add; @@ -142,12 +157,7 @@ return add; err: - kfree(add->pages); - kfree(add->grants); - kfree(add->map_ops); - kfree(add->unmap_ops); - kfree(add->kmap_ops); - kfree(add); + gntdev_free_map(add); return NULL; } @@ -196,17 +206,9 @@ if (map->notify.flags & UNMAP_NOTIFY_SEND_EVENT) notify_remote_via_evtchn(map->notify.event); - if (map->pages) { - if (!use_ptemod) - unmap_grant_pages(map, 0, map->count); - - free_xenballooned_pages(map->count, map->pages); - } - kfree(map->pages); - kfree(map->grants); - kfree(map->map_ops); - kfree(map->unmap_ops); - kfree(map); + if (map->pages && !use_ptemod) + unmap_grant_pages(map, 0, map->count); + gntdev_free_map(map); } /* ------------------------------------------------------------------ */ @@ -692,7 +694,7 @@ vma->vm_flags |= VM_RESERVED|VM_DONTEXPAND; if (use_ptemod) - vma->vm_flags |= VM_DONTCOPY|VM_PFNMAP; + vma->vm_flags |= VM_DONTCOPY; vma->vm_private_data = map; --- linux-3.2.0.orig/drivers/xen/xenbus/xenbus_xs.c +++ linux-3.2.0/drivers/xen/xenbus/xenbus_xs.c @@ -801,6 +801,12 @@ goto out; } + if (msg->hdr.len > XENSTORE_PAYLOAD_MAX) { + kfree(msg); + err = -EINVAL; + goto out; + } + body = kmalloc(msg->hdr.len + 1, GFP_NOIO | __GFP_HIGH); if (body == NULL) { kfree(msg); --- linux-3.2.0.orig/drivers/xen/xenbus/xenbus_probe_frontend.c +++ linux-3.2.0/drivers/xen/xenbus/xenbus_probe_frontend.c @@ -129,7 +129,7 @@ return xenbus_read_otherend_details(xendev, "backend-id", "backend"); } -static int is_device_connecting(struct device *dev, void *data) +static int is_device_connecting(struct device *dev, void *data, bool ignore_nonessential) { struct xenbus_device *xendev = to_xenbus_device(dev); struct device_driver *drv = data; @@ -146,16 +146,41 @@ if (drv && (dev->driver != drv)) return 0; + if (ignore_nonessential) { + /* With older QEMU, for PVonHVM guests the guest config files + * could contain: vfb = [ 'vnc=1, vnclisten=0.0.0.0'] + * which is nonsensical as there is no PV FB (there can be + * a PVKB) running as HVM guest. */ + + if ((strncmp(xendev->nodename, "device/vkbd", 11) == 0)) + return 0; + + if ((strncmp(xendev->nodename, "device/vfb", 10) == 0)) + return 0; + } xendrv = to_xenbus_driver(dev->driver); return (xendev->state < XenbusStateConnected || (xendev->state == XenbusStateConnected && xendrv->is_ready && !xendrv->is_ready(xendev))); } +static int essential_device_connecting(struct device *dev, void *data) +{ + return is_device_connecting(dev, data, true /* ignore PV[KBB+FB] */); +} +static int non_essential_device_connecting(struct device *dev, void *data) +{ + return is_device_connecting(dev, data, false); +} -static int exists_connecting_device(struct device_driver *drv) +static int exists_essential_connecting_device(struct device_driver *drv) { return bus_for_each_dev(&xenbus_frontend.bus, NULL, drv, - is_device_connecting); + essential_device_connecting); +} +static int exists_non_essential_connecting_device(struct device_driver *drv) +{ + return bus_for_each_dev(&xenbus_frontend.bus, NULL, drv, + non_essential_device_connecting); } static int print_device_status(struct device *dev, void *data) @@ -186,6 +211,23 @@ /* We only wait for device setup after most initcalls have run. */ static int ready_to_wait_for_devices; +static bool wait_loop(unsigned long start, unsigned int max_delay, + unsigned int *seconds_waited) +{ + if (time_after(jiffies, start + (*seconds_waited+5)*HZ)) { + if (!*seconds_waited) + printk(KERN_WARNING "XENBUS: Waiting for " + "devices to initialise: "); + *seconds_waited += 5; + printk("%us...", max_delay - *seconds_waited); + if (*seconds_waited == max_delay) + return true; + } + + schedule_timeout_interruptible(HZ/10); + + return false; +} /* * On a 5-minute timeout, wait for all devices currently configured. We need * to do this to guarantee that the filesystems and / or network devices @@ -209,19 +251,14 @@ if (!ready_to_wait_for_devices || !xen_domain()) return; - while (exists_connecting_device(drv)) { - if (time_after(jiffies, start + (seconds_waited+5)*HZ)) { - if (!seconds_waited) - printk(KERN_WARNING "XENBUS: Waiting for " - "devices to initialise: "); - seconds_waited += 5; - printk("%us...", 300 - seconds_waited); - if (seconds_waited == 300) - break; - } - - schedule_timeout_interruptible(HZ/10); - } + while (exists_non_essential_connecting_device(drv)) + if (wait_loop(start, 30, &seconds_waited)) + break; + + /* Skips PVKB and PVFB check.*/ + while (exists_essential_connecting_device(drv)) + if (wait_loop(start, 270, &seconds_waited)) + break; if (seconds_waited) printk("\n"); --- linux-3.2.0.orig/drivers/xen/xen-pciback/pciback_ops.c +++ linux-3.2.0/drivers/xen/xen-pciback/pciback_ops.c @@ -8,6 +8,7 @@ #include #include #include +#include #include "pciback.h" int verbose_request; @@ -113,7 +114,8 @@ if (dev->msi_enabled) pci_disable_msi(dev); #endif - pci_disable_device(dev); + if (pci_is_enabled(dev)) + pci_disable_device(dev); pci_write_config_word(dev, PCI_COMMAND, 0); @@ -135,7 +137,6 @@ struct pci_dev *dev, struct xen_pci_op *op) { struct xen_pcibk_dev_data *dev_data; - int otherend = pdev->xdev->otherend_id; int status; if (unlikely(verbose_request)) @@ -144,8 +145,9 @@ status = pci_enable_msi(dev); if (status) { - printk(KERN_ERR "error enable msi for guest %x status %x\n", - otherend, status); + pr_warn_ratelimited(DRV_NAME ": %s: error enabling MSI for guest %u: err %d\n", + pci_name(dev), pdev->xdev->otherend_id, + status); op->value = 0; return XEN_PCI_ERR_op_failed; } @@ -223,10 +225,10 @@ pci_name(dev), i, op->msix_entries[i].vector); } - } else { - printk(KERN_WARNING DRV_NAME ": %s: failed to enable MSI-X: err %d!\n", - pci_name(dev), result); - } + } else + pr_warn_ratelimited(DRV_NAME ": %s: error enabling MSI-X for guest %u: err %d!\n", + pci_name(dev), pdev->xdev->otherend_id, + result); kfree(entries); op->value = result; --- linux-3.2.0.orig/drivers/ata/ahci_platform.c +++ linux-3.2.0/drivers/ata/ahci_platform.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -26,6 +27,7 @@ enum ahci_type { AHCI, /* standard platform ahci */ IMX53_AHCI, /* ahci on i.mx53 */ + CALXEDA_AHCI, }; static struct platform_device_id ahci_devtype[] = { @@ -41,6 +43,50 @@ }; MODULE_DEVICE_TABLE(platform, ahci_devtype); +static int ahci_calxeda_hardreset(struct ata_link *link, unsigned int *class, + unsigned long deadline) +{ + const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context); + struct ata_port *ap = link->ap; + struct ahci_port_priv *pp = ap->private_data; + u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG; + struct ata_taskfile tf; + bool online; + u32 sstatus; + int rc; + int retry = 10; + + ahci_stop_engine(ap); + + /* clear D2H reception area to properly wait for D2H FIS */ + ata_tf_init(link->device, &tf); + tf.command = 0x80; + ata_tf_to_fis(&tf, 0, 0, d2h_fis); + + do { + rc = sata_link_hardreset(link, timing, deadline, &online, NULL); + + /* If the status is 1, we are connected, but the link did not + * come up. So retry resetting the link again. + */ + if (sata_scr_read(link, SCR_STATUS, &sstatus)) + break; + if (!(sstatus & 0x3)) + break; + } while (!online && retry--); + + ahci_start_engine(ap); + + if (online) + *class = ahci_dev_classify(ap); + + return rc; +} + +static struct ata_port_operations ahci_calxeda_ops = { + .inherits = &ahci_ops, + .hardreset = ahci_calxeda_hardreset, +}; static const struct ata_port_info ahci_port_info[] = { /* by features */ @@ -56,27 +102,46 @@ .udma_mask = ATA_UDMA6, .port_ops = &ahci_pmp_retry_srst_ops, }, + [CALXEDA_AHCI] = { + .flags = AHCI_FLAG_COMMON, + .pio_mask = ATA_PIO4, + .udma_mask = ATA_UDMA6, + .port_ops = &ahci_calxeda_ops, + }, }; static struct scsi_host_template ahci_platform_sht = { AHCI_SHT("ahci_platform"), }; +static const struct of_device_id ahci_of_match[] = { + { .compatible = "calxeda,hb-ahci", .data = &ahci_port_info[CALXEDA_AHCI], }, + {}, +}; +MODULE_DEVICE_TABLE(of, ahci_of_match); + static int __init ahci_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct ahci_platform_data *pdata = dev_get_platdata(dev); const struct platform_device_id *id = platform_get_device_id(pdev); - struct ata_port_info pi = ahci_port_info[id ? id->driver_data : 0]; + struct ata_port_info pi; const struct ata_port_info *ppi[] = { &pi, NULL }; struct ahci_host_priv *hpriv; struct ata_host *host; struct resource *mem; + const struct of_device_id *match; int irq; int n_ports; int i; int rc; + match = of_match_device(ahci_of_match, dev); + if (match) + pi = *((struct ata_port_info *)match->data); + else + pi = ahci_port_info[id ? id->driver_data : 0]; + mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!mem) { dev_err(dev, "no mmio space\n"); @@ -202,12 +267,6 @@ return 0; } -static const struct of_device_id ahci_of_match[] = { - { .compatible = "calxeda,hb-ahci", }, - {}, -}; -MODULE_DEVICE_TABLE(of, ahci_of_match); - static struct platform_driver ahci_driver = { .remove = __devexit_p(ahci_remove), .driver = { --- linux-3.2.0.orig/drivers/ata/libata-scsi.c +++ linux-3.2.0/drivers/ata/libata-scsi.c @@ -309,7 +309,8 @@ struct ata_port *ap = ata_shost_to_port(sdev->host); struct ata_device *atadev = ata_scsi_find_dev(ap, sdev); - if (ap->ops->sw_activity_show && (ap->flags & ATA_FLAG_SW_ACTIVITY)) + if (atadev && ap->ops->sw_activity_show && + (ap->flags & ATA_FLAG_SW_ACTIVITY)) return ap->ops->sw_activity_show(atadev, buf); return -EINVAL; } @@ -324,7 +325,8 @@ enum sw_activity val; int rc; - if (ap->ops->sw_activity_store && (ap->flags & ATA_FLAG_SW_ACTIVITY)) { + if (atadev && ap->ops->sw_activity_store && + (ap->flags & ATA_FLAG_SW_ACTIVITY)) { val = simple_strtoul(buf, NULL, 0); switch (val) { case OFF: case BLINK_ON: case BLINK_OFF: --- linux-3.2.0.orig/drivers/ata/ata_piix.c +++ linux-3.2.0/drivers/ata/ata_piix.c @@ -150,6 +150,8 @@ tolapai_sata, piix_pata_vmw, /* PIIX4 for VMware, spurious DMA_ERR */ ich8_sata_snb, + ich8_2port_sata_snb, + ich8_2port_sata_byt, }; struct piix_map_db { @@ -321,6 +323,46 @@ { 0x8086, 0x1e08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, /* SATA Controller IDE (Panther Point) */ { 0x8086, 0x1e09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + /* SATA Controller IDE (Lynx Point) */ + { 0x8086, 0x8c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, + /* SATA Controller IDE (Lynx Point) */ + { 0x8086, 0x8c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, + /* SATA Controller IDE (Lynx Point) */ + { 0x8086, 0x8c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb }, + /* SATA Controller IDE (Lynx Point) */ + { 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + /* SATA Controller IDE (Lynx Point-LP) */ + { 0x8086, 0x9c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, + /* SATA Controller IDE (Lynx Point-LP) */ + { 0x8086, 0x9c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, + /* SATA Controller IDE (Lynx Point-LP) */ + { 0x8086, 0x9c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + /* SATA Controller IDE (Lynx Point-LP) */ + { 0x8086, 0x9c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + /* SATA Controller IDE (DH89xxCC) */ + { 0x8086, 0x2326, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + /* SATA Controller IDE (Avoton) */ + { 0x8086, 0x1f20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, + /* SATA Controller IDE (Avoton) */ + { 0x8086, 0x1f21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, + /* SATA Controller IDE (Avoton) */ + { 0x8086, 0x1f30, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + /* SATA Controller IDE (Avoton) */ + { 0x8086, 0x1f31, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + /* SATA Controller IDE (Wellsburg) */ + { 0x8086, 0x8d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, + /* SATA Controller IDE (Wellsburg) */ + { 0x8086, 0x8d08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb }, + /* SATA Controller IDE (Wellsburg) */ + { 0x8086, 0x8d60, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, + /* SATA Controller IDE (Wellsburg) */ + { 0x8086, 0x8d68, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + /* SATA Controller IDE (BayTrail) */ + { 0x8086, 0x0F20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_byt }, + { 0x8086, 0x0F21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_byt }, + /* SATA Controller IDE (Coleto Creek) */ + { 0x8086, 0x23a6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + { } /* terminate list */ }; @@ -484,6 +526,8 @@ [ich8m_apple_sata] = &ich8m_apple_map_db, [tolapai_sata] = &tolapai_map_db, [ich8_sata_snb] = &ich8_map_db, + [ich8_2port_sata_snb] = &ich8_2port_map_db, + [ich8_2port_sata_byt] = &ich8_2port_map_db, }; static struct ata_port_info piix_port_info[] = { @@ -625,6 +669,25 @@ .port_ops = &piix_sata_ops, }, + [ich8_2port_sata_snb] = + { + .flags = PIIX_SATA_FLAGS | PIIX_FLAG_SIDPR + | PIIX_FLAG_PIO16, + .pio_mask = ATA_PIO4, + .mwdma_mask = ATA_MWDMA2, + .udma_mask = ATA_UDMA6, + .port_ops = &piix_sata_ops, + }, + + [ich8_2port_sata_byt] = + { + .flags = PIIX_SATA_FLAGS | PIIX_FLAG_SIDPR | PIIX_FLAG_PIO16, + .pio_mask = ATA_PIO4, + .mwdma_mask = ATA_MWDMA2, + .udma_mask = ATA_UDMA6, + .port_ops = &piix_sata_ops, + }, + }; static struct pci_bits piix_enable_bits[] = { @@ -1117,6 +1180,13 @@ }, }, { + .ident = "Satellite Pro A120", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite Pro A120"), + }, + }, + { .ident = "Portege M500", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), @@ -1537,6 +1607,39 @@ return false; } +static int prefer_ms_hyperv = 1; +module_param(prefer_ms_hyperv, int, 0); + +static void piix_ignore_devices_quirk(struct ata_host *host) +{ +#if IS_ENABLED(CONFIG_HYPERV_STORAGE) + static const struct dmi_system_id ignore_hyperv[] = { + { + /* On Hyper-V hypervisors the disks are exposed on + * both the emulated SATA controller and on the + * paravirtualised drivers. The CD/DVD devices + * are only exposed on the emulated controller. + * Request we ignore ATA devices on this host. + */ + .ident = "Hyper-V Virtual Machine", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, + "Microsoft Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "Virtual Machine"), + }, + }, + { } /* terminate list */ + }; + const struct dmi_system_id *dmi = dmi_first_match(ignore_hyperv); + + if (dmi && prefer_ms_hyperv) { + host->flags |= ATA_HOST_IGNORE_ATA; + dev_info(host->dev, "%s detected, ATA device ignore set\n", + dmi->ident); + } +#endif +} + /** * piix_init_one - Register PIIX ATA PCI device with kernel services * @pdev: PCI device to register @@ -1652,6 +1755,9 @@ } host->flags |= ATA_HOST_PARALLEL_SCAN; + /* Allow hosts to specify device types to ignore when scanning. */ + piix_ignore_devices_quirk(host); + pci_set_master(pdev); return ata_pci_sff_activate_host(host, ata_bmdma_interrupt, sht); } @@ -1666,10 +1772,16 @@ ata_pci_remove_one(pdev); } +static bool disable_driver = 0; static int __init piix_init(void) { int rc; + if (disable_driver) { + printk(KERN_WARNING "ata_piix: driver disabled completely\n"); + return 0; + } + DPRINTK("pci_register_driver\n"); rc = pci_register_driver(&piix_pci_driver); if (rc) @@ -1686,5 +1798,6 @@ pci_unregister_driver(&piix_pci_driver); } +module_param(disable_driver, bool, 0); module_init(piix_init); module_exit(piix_exit); --- linux-3.2.0.orig/drivers/ata/pata_legacy.c +++ linux-3.2.0/drivers/ata/pata_legacy.c @@ -401,8 +401,7 @@ ata_timing_compute(adev, adev->pio_mode, &t, 20000, 1000); active = clamp_val(t.active, 2, 15); - recover = clamp_val(t.recover, 2, 16); - recover &= 0x15; + recover = clamp_val(t.recover, 2, 16) & 0x0F; inb(0x3E6); inb(0x3E6); --- linux-3.2.0.orig/drivers/ata/libahci.c +++ linux-3.2.0/drivers/ata/libahci.c @@ -1137,7 +1137,7 @@ } } -static unsigned int ahci_dev_classify(struct ata_port *ap) +unsigned int ahci_dev_classify(struct ata_port *ap) { void __iomem *port_mmio = ahci_port_base(ap); struct ata_taskfile tf; @@ -1151,6 +1151,7 @@ return ata_dev_classify(&tf); } +EXPORT_SYMBOL_GPL(ahci_dev_classify); void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag, u32 opts) @@ -1541,8 +1542,7 @@ u32 fbs = readl(port_mmio + PORT_FBS); int pmp = fbs >> PORT_FBS_DWE_OFFSET; - if ((fbs & PORT_FBS_SDE) && (pmp < ap->nr_pmp_links) && - ata_link_online(&ap->pmp_link[pmp])) { + if ((fbs & PORT_FBS_SDE) && (pmp < ap->nr_pmp_links)) { link = &ap->pmp_link[pmp]; fbs_need_dec = true; } --- linux-3.2.0.orig/drivers/ata/ahci.h +++ linux-3.2.0/drivers/ata/ahci.h @@ -314,6 +314,7 @@ extern struct ata_port_operations ahci_ops; extern struct ata_port_operations ahci_pmp_retry_srst_ops; +unsigned int ahci_dev_classify(struct ata_port *ap); void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag, u32 opts); void ahci_save_initial_config(struct device *dev, --- linux-3.2.0.orig/drivers/ata/ahci.c +++ linux-3.2.0/drivers/ata/ahci.c @@ -52,7 +52,9 @@ #define DRV_VERSION "3.0" enum { - AHCI_PCI_BAR = 5, + AHCI_PCI_BAR_STA2X11 = 0, + AHCI_PCI_BAR_ENMOTUS = 2, + AHCI_PCI_BAR_STANDARD = 5, }; enum board_ids { @@ -260,6 +262,47 @@ { PCI_VDEVICE(INTEL, 0x1e06), board_ahci }, /* Panther Point RAID */ { PCI_VDEVICE(INTEL, 0x1e07), board_ahci }, /* Panther Point RAID */ { PCI_VDEVICE(INTEL, 0x1e0e), board_ahci }, /* Panther Point RAID */ + { PCI_VDEVICE(INTEL, 0x8c02), board_ahci }, /* Lynx Point AHCI */ + { PCI_VDEVICE(INTEL, 0x8c03), board_ahci }, /* Lynx Point AHCI */ + { PCI_VDEVICE(INTEL, 0x8c04), board_ahci }, /* Lynx Point RAID */ + { PCI_VDEVICE(INTEL, 0x8c05), board_ahci }, /* Lynx Point RAID */ + { PCI_VDEVICE(INTEL, 0x8c06), board_ahci }, /* Lynx Point RAID */ + { PCI_VDEVICE(INTEL, 0x8c07), board_ahci }, /* Lynx Point RAID */ + { PCI_VDEVICE(INTEL, 0x8c0e), board_ahci }, /* Lynx Point RAID */ + { PCI_VDEVICE(INTEL, 0x8c0f), board_ahci }, /* Lynx Point RAID */ + { PCI_VDEVICE(INTEL, 0x9c02), board_ahci }, /* Lynx Point-LP AHCI */ + { PCI_VDEVICE(INTEL, 0x9c03), board_ahci }, /* Lynx Point-LP AHCI */ + { PCI_VDEVICE(INTEL, 0x9c04), board_ahci }, /* Lynx Point-LP RAID */ + { PCI_VDEVICE(INTEL, 0x9c05), board_ahci }, /* Lynx Point-LP RAID */ + { PCI_VDEVICE(INTEL, 0x9c06), board_ahci }, /* Lynx Point-LP RAID */ + { PCI_VDEVICE(INTEL, 0x9c07), board_ahci }, /* Lynx Point-LP RAID */ + { PCI_VDEVICE(INTEL, 0x9c0e), board_ahci }, /* Lynx Point-LP RAID */ + { PCI_VDEVICE(INTEL, 0x9c0f), board_ahci }, /* Lynx Point-LP RAID */ + { PCI_VDEVICE(INTEL, 0x1f22), board_ahci }, /* Avoton AHCI */ + { PCI_VDEVICE(INTEL, 0x1f23), board_ahci }, /* Avoton AHCI */ + { PCI_VDEVICE(INTEL, 0x1f24), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x1f25), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x1f26), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x1f27), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x1f2e), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x1f2f), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x1f32), board_ahci }, /* Avoton AHCI */ + { PCI_VDEVICE(INTEL, 0x1f33), board_ahci }, /* Avoton AHCI */ + { PCI_VDEVICE(INTEL, 0x1f34), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x1f35), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x1f36), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x1f37), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x1f3e), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x1f3f), board_ahci }, /* Avoton RAID */ + { PCI_VDEVICE(INTEL, 0x8d02), board_ahci }, /* Wellsburg AHCI */ + { PCI_VDEVICE(INTEL, 0x8d04), board_ahci }, /* Wellsburg RAID */ + { PCI_VDEVICE(INTEL, 0x8d06), board_ahci }, /* Wellsburg RAID */ + { PCI_VDEVICE(INTEL, 0x8d0e), board_ahci }, /* Wellsburg RAID */ + { PCI_VDEVICE(INTEL, 0x8d62), board_ahci }, /* Wellsburg AHCI */ + { PCI_VDEVICE(INTEL, 0x8d64), board_ahci }, /* Wellsburg RAID */ + { PCI_VDEVICE(INTEL, 0x8d66), board_ahci }, /* Wellsburg RAID */ + { PCI_VDEVICE(INTEL, 0x8d6e), board_ahci }, /* Wellsburg RAID */ + { PCI_VDEVICE(INTEL, 0x23a3), board_ahci }, /* Coleto Creek AHCI */ /* JMicron 360/1/3/5/6, match class to avoid IDE function */ { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, @@ -276,6 +319,7 @@ /* AMD */ { PCI_VDEVICE(AMD, 0x7800), board_ahci }, /* AMD Hudson-2 */ + { PCI_VDEVICE(AMD, 0x7900), board_ahci }, /* AMD CZ */ /* AMD is using RAID class only for ahci controllers */ { PCI_VENDOR_ID_AMD, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_RAID << 8, 0xffffff, board_ahci }, @@ -375,6 +419,9 @@ { PCI_VDEVICE(SI, 0x1185), board_ahci }, /* SiS 968 */ { PCI_VDEVICE(SI, 0x0186), board_ahci }, /* SiS 968 */ + /* ST Microelectronics */ + { PCI_VDEVICE(STMICRO, 0xCC06), board_ahci }, /* ST ConneXt */ + /* Marvell */ { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */ { PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv }, /* 6121 */ @@ -384,6 +431,10 @@ .driver_data = board_ahci_yes_fbs }, /* 88se9128 */ { PCI_DEVICE(0x1b4b, 0x9125), .driver_data = board_ahci_yes_fbs }, /* 88se9125 */ + { PCI_DEVICE(0x1b4b, 0x917a), + .driver_data = board_ahci_yes_fbs }, /* 88se9172 */ + { PCI_DEVICE(0x1b4b, 0x9192), + .driver_data = board_ahci_yes_fbs }, /* 88se9172 on some Gigabyte */ { PCI_DEVICE(0x1b4b, 0x91a3), .driver_data = board_ahci_yes_fbs }, @@ -391,7 +442,13 @@ { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */ /* Asmedia */ - { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci }, /* ASM1061 */ + { PCI_VDEVICE(ASMEDIA, 0x0601), board_ahci }, /* ASM1060 */ + { PCI_VDEVICE(ASMEDIA, 0x0602), board_ahci }, /* ASM1060 */ + { PCI_VDEVICE(ASMEDIA, 0x0611), board_ahci }, /* ASM1061 */ + { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci }, /* ASM1062 */ + + /* Enmotus */ + { PCI_DEVICE(0x1c44, 0x8000), board_ahci }, /* Generic, PCI class code for AHCI */ { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, @@ -622,6 +679,13 @@ { int rc; + /* + * If the device fixup already set the dma_mask to some non-standard + * value, don't extend it here. This happens on STA2X11, for example. + */ + if (pdev->dma_mask && pdev->dma_mask < DMA_BIT_MASK(32)) + return 0; + if (using_dac && !pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); @@ -1026,6 +1090,7 @@ struct ahci_host_priv *hpriv; struct ata_host *host; int n_ports, i, rc; + int ahci_pci_bar = AHCI_PCI_BAR_STANDARD; VPRINTK("ENTER\n"); @@ -1057,6 +1122,12 @@ dev_info(&pdev->dev, "PDC42819 can only drive SATA devices with this driver\n"); + /* Both Connext and Enmotus devices use non-standard BARs */ + if (pdev->vendor == PCI_VENDOR_ID_STMICRO && pdev->device == 0xCC06) + ahci_pci_bar = AHCI_PCI_BAR_STA2X11; + else if (pdev->vendor == 0x1c44 && pdev->device == 0x8000) + ahci_pci_bar = AHCI_PCI_BAR_ENMOTUS; + /* acquire resources */ rc = pcim_enable_device(pdev); if (rc) @@ -1065,7 +1136,7 @@ /* AHCI controllers often implement SFF compatible interface. * Grab all PCI BARs just in case. */ - rc = pcim_iomap_regions_request_all(pdev, 1 << AHCI_PCI_BAR, DRV_NAME); + rc = pcim_iomap_regions_request_all(pdev, 1 << ahci_pci_bar, DRV_NAME); if (rc == -EBUSY) pcim_pin_device(pdev); if (rc) @@ -1108,7 +1179,7 @@ if ((hpriv->flags & AHCI_HFLAG_NO_MSI) || pci_enable_msi(pdev)) pci_intx(pdev, 1); - hpriv->mmio = pcim_iomap_table(pdev)[AHCI_PCI_BAR]; + hpriv->mmio = pcim_iomap_table(pdev)[ahci_pci_bar]; /* save initial config */ ahci_pci_save_initial_config(pdev, hpriv); @@ -1172,8 +1243,8 @@ for (i = 0; i < host->n_ports; i++) { struct ata_port *ap = host->ports[i]; - ata_port_pbar_desc(ap, AHCI_PCI_BAR, -1, "abar"); - ata_port_pbar_desc(ap, AHCI_PCI_BAR, + ata_port_pbar_desc(ap, ahci_pci_bar, -1, "abar"); + ata_port_pbar_desc(ap, ahci_pci_bar, 0x100 + ap->port_no * 0x80, "port"); /* set enclosure management message type */ --- linux-3.2.0.orig/drivers/ata/libata-core.c +++ linux-3.2.0/drivers/ata/libata-core.c @@ -1598,6 +1598,12 @@ qc->tf = *tf; if (cdb) memcpy(qc->cdb, cdb, ATAPI_CDB_LEN); + + /* some SATA bridges need us to indicate data xfer direction */ + if (tf->protocol == ATAPI_PROT_DMA && (dev->flags & ATA_DFLAG_DMADIR) && + dma_dir == DMA_FROM_DEVICE) + qc->tf.feature |= ATAPI_DMADIR; + qc->flags |= ATA_QCFLAG_RESULT_TF; qc->dma_dir = dma_dir; if (dma_dir != DMA_NONE) { @@ -1972,6 +1978,12 @@ if (class == ATA_DEV_ATA) { if (!ata_id_is_ata(id) && !ata_id_is_cfa(id)) goto err_out; + if (ap->host->flags & ATA_HOST_IGNORE_ATA && + ata_id_is_ata(id)) { + ata_dev_dbg(dev, + "host indicates ignore ATA devices, ignored\n"); + return -ENOENT; + } } else { if (ata_id_is_ata(id)) goto err_out; @@ -2401,6 +2413,9 @@ dev->max_sectors = min_t(unsigned int, ATA_MAX_SECTORS_128, dev->max_sectors); + if (dev->horkage & ATA_HORKAGE_MAX_SEC_LBA48) + dev->max_sectors = ATA_MAX_SECTORS_LBA48; + if (ap->ops->dev_config) ap->ops->dev_config(dev); @@ -2529,6 +2544,7 @@ * bus as we may be talking too fast. */ dev->pio_mode = XFER_PIO_0; + dev->dma_mode = 0xff; /* If the controller has a pio mode setup function * then use it to set the chipset to rights. Don't @@ -4056,6 +4072,7 @@ /* Weird ATAPI devices */ { "TORiSAN DVD-ROM DRD-N216", NULL, ATA_HORKAGE_MAX_SEC_128 }, { "QUANTUM DAT DAT72-000", NULL, ATA_HORKAGE_ATAPI_MOD16_DMA }, + { "Slimtype DVD A DS8A8SH", NULL, ATA_HORKAGE_MAX_SEC_LBA48 }, /* Devices we expect to fail diagnostics */ @@ -4118,6 +4135,7 @@ /* Devices which aren't very happy with higher link speeds */ { "WD My Book", NULL, ATA_HORKAGE_1_5_GBPS, }, + { "Seagate FreeAgent GoFlex", NULL, ATA_HORKAGE_1_5_GBPS, }, /* * Devices which choke on SETXFER. Applies only if both the --- linux-3.2.0.orig/drivers/ata/libata-eh.c +++ linux-3.2.0/drivers/ata/libata-eh.c @@ -2599,6 +2599,7 @@ * bus as we may be talking too fast. */ dev->pio_mode = XFER_PIO_0; + dev->dma_mode = 0xff; /* If the controller has a pio mode setup function * then use it to set the chipset to rights. Don't @@ -3500,7 +3501,8 @@ u64 now = get_jiffies_64(); int *trials = void_arg; - if (ent->timestamp < now - min(now, interval)) + if ((ent->eflags & ATA_EFLAG_OLD_ER) || + (ent->timestamp < now - min(now, interval))) return -1; (*trials)++; --- linux-3.2.0.orig/drivers/ata/sata_promise.c +++ linux-3.2.0/drivers/ata/sata_promise.c @@ -147,6 +147,10 @@ dma_addr_t pkt_dma; }; +struct pdc_host_priv { + spinlock_t hard_reset_lock; +}; + static int pdc_sata_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val); static int pdc_sata_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val); static int pdc_ata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent); @@ -801,9 +805,10 @@ void __iomem *host_mmio = ap->host->iomap[PDC_MMIO_BAR]; void __iomem *pcictl_b1_mmio = host_mmio + PDC_PCI_CTL + 1; unsigned int ata_no = pdc_ata_port_to_ata_no(ap); + struct pdc_host_priv *hpriv = ap->host->private_data; u8 tmp; - spin_lock(&ap->host->lock); + spin_lock(&hpriv->hard_reset_lock); tmp = readb(pcictl_b1_mmio); tmp &= ~(0x10 << ata_no); @@ -814,7 +819,7 @@ writeb(tmp, pcictl_b1_mmio); readb(pcictl_b1_mmio); /* flush */ - spin_unlock(&ap->host->lock); + spin_unlock(&hpriv->hard_reset_lock); } static int pdc_sata_hardreset(struct ata_link *link, unsigned int *class, @@ -1182,6 +1187,7 @@ const struct ata_port_info *pi = &pdc_port_info[ent->driver_data]; const struct ata_port_info *ppi[PDC_MAX_PORTS]; struct ata_host *host; + struct pdc_host_priv *hpriv; void __iomem *host_mmio; int n_ports, i, rc; int is_sataii_tx4; @@ -1218,6 +1224,11 @@ dev_err(&pdev->dev, "failed to allocate host\n"); return -ENOMEM; } + hpriv = devm_kzalloc(&pdev->dev, sizeof *hpriv, GFP_KERNEL); + if (!hpriv) + return -ENOMEM; + spin_lock_init(&hpriv->hard_reset_lock); + host->private_data = hpriv; host->iomap = pcim_iomap_table(pdev); is_sataii_tx4 = pdc_is_sataii_tx4(pi->flags); --- linux-3.2.0.orig/drivers/ata/sata_svw.c +++ linux-3.2.0/drivers/ata/sata_svw.c @@ -142,6 +142,39 @@ return 0; } +static int k2_sata_softreset(struct ata_link *link, + unsigned int *class, unsigned long deadline) +{ + u8 dmactl; + void __iomem *mmio = link->ap->ioaddr.bmdma_addr; + + dmactl = readb(mmio + ATA_DMA_CMD); + + /* Clear the start bit */ + if (dmactl & ATA_DMA_START) { + dmactl &= ~ATA_DMA_START; + writeb(dmactl, mmio + ATA_DMA_CMD); + } + + return ata_sff_softreset(link, class, deadline); +} + +static int k2_sata_hardreset(struct ata_link *link, + unsigned int *class, unsigned long deadline) +{ + u8 dmactl; + void __iomem *mmio = link->ap->ioaddr.bmdma_addr; + + dmactl = readb(mmio + ATA_DMA_CMD); + + /* Clear the start bit */ + if (dmactl & ATA_DMA_START) { + dmactl &= ~ATA_DMA_START; + writeb(dmactl, mmio + ATA_DMA_CMD); + } + + return sata_sff_hardreset(link, class, deadline); +} static void k2_sata_tf_load(struct ata_port *ap, const struct ata_taskfile *tf) { @@ -346,6 +379,8 @@ static struct ata_port_operations k2_sata_ops = { .inherits = &ata_bmdma_port_ops, + .softreset = k2_sata_softreset, + .hardreset = k2_sata_hardreset, .sff_tf_load = k2_sata_tf_load, .sff_tf_read = k2_sata_tf_read, .sff_check_status = k2_stat_check_status, --- linux-3.2.0.orig/drivers/ata/libata-pmp.c +++ linux-3.2.0/drivers/ata/libata-pmp.c @@ -389,9 +389,13 @@ /* link reports offline after LPM */ link->flags |= ATA_LFLAG_NO_LPM; - /* Class code report is unreliable. */ + /* + * Class code report is unreliable and SRST times + * out under certain configurations. + */ if (link->pmp < 5) - link->flags |= ATA_LFLAG_ASSUME_ATA; + link->flags |= ATA_LFLAG_NO_SRST | + ATA_LFLAG_ASSUME_ATA; /* port 5 is for SEMB device and it doesn't like SRST */ if (link->pmp == 5) @@ -399,20 +403,17 @@ ATA_LFLAG_ASSUME_SEMB; } } else if (vendor == 0x1095 && devid == 0x4723) { - /* sil4723 quirks */ - ata_for_each_link(link, ap, EDGE) { - /* link reports offline after LPM */ - link->flags |= ATA_LFLAG_NO_LPM; - - /* class code report is unreliable */ - if (link->pmp < 2) - link->flags |= ATA_LFLAG_ASSUME_ATA; - - /* the config device at port 2 locks up on SRST */ - if (link->pmp == 2) - link->flags |= ATA_LFLAG_NO_SRST | - ATA_LFLAG_ASSUME_ATA; - } + /* + * sil4723 quirks + * + * Link reports offline after LPM. Class code report is + * unreliable. SIMG PMPs never got SRST reliable and the + * config device at port 2 locks up on SRST. + */ + ata_for_each_link(link, ap, EDGE) + link->flags |= ATA_LFLAG_NO_LPM | + ATA_LFLAG_NO_SRST | + ATA_LFLAG_ASSUME_ATA; } else if (vendor == 0x1095 && devid == 0x4726) { /* sil4726 quirks */ ata_for_each_link(link, ap, EDGE) { --- linux-3.2.0.orig/drivers/bluetooth/hci_ldisc.c +++ linux-3.2.0/drivers/bluetooth/hci_ldisc.c @@ -237,7 +237,6 @@ return; BT_DBG("%s", hdev->name); - kfree(hdev->driver_data); } /* ------ LDISC part ------ */ @@ -310,12 +309,13 @@ hci_uart_close(hdev); if (test_and_clear_bit(HCI_UART_PROTO_SET, &hu->flags)) { - hu->proto->close(hu); if (hdev) { hci_unregister_dev(hdev); hci_free_dev(hdev); } + hu->proto->close(hu); } + kfree(hu); } } --- linux-3.2.0.orig/drivers/bluetooth/ath3k.c +++ linux-3.2.0/drivers/bluetooth/ath3k.c @@ -62,18 +62,41 @@ /* Atheros AR3011 with sflash firmware*/ { USB_DEVICE(0x0CF3, 0x3002) }, + { USB_DEVICE(0x0CF3, 0xE019) }, { USB_DEVICE(0x13d3, 0x3304) }, { USB_DEVICE(0x0930, 0x0215) }, + { USB_DEVICE(0x0489, 0xE03D) }, + { USB_DEVICE(0x0489, 0xE027) }, /* Atheros AR9285 Malbec with sflash firmware */ { USB_DEVICE(0x03F0, 0x311D) }, /* Atheros AR3012 with sflash firmware*/ + { USB_DEVICE(0x0CF3, 0x0036) }, { USB_DEVICE(0x0CF3, 0x3004) }, + { USB_DEVICE(0x0CF3, 0x3008) }, + { USB_DEVICE(0x0CF3, 0x311D) }, + { USB_DEVICE(0x0CF3, 0x817a) }, + { USB_DEVICE(0x13d3, 0x3375) }, + { USB_DEVICE(0x04CA, 0x3004) }, + { USB_DEVICE(0x04CA, 0x3005) }, + { USB_DEVICE(0x04CA, 0x3006) }, + { USB_DEVICE(0x04CA, 0x3008) }, + { USB_DEVICE(0x13d3, 0x3362) }, + { USB_DEVICE(0x0CF3, 0xE004) }, + { USB_DEVICE(0x0930, 0x0219) }, + { USB_DEVICE(0x0489, 0xe057) }, + { USB_DEVICE(0x13d3, 0x3393) }, + { USB_DEVICE(0x0489, 0xe04e) }, + { USB_DEVICE(0x0489, 0xe056) }, /* Atheros AR5BBU12 with sflash firmware */ { USB_DEVICE(0x0489, 0xE02C) }, + /* Atheros AR5BBU22 with sflash firmware */ + { USB_DEVICE(0x0489, 0xE03C) }, + { USB_DEVICE(0x0489, 0xE036) }, + { } /* Terminating entry */ }; @@ -85,7 +108,27 @@ static struct usb_device_id ath3k_blist_tbl[] = { /* Atheros AR3012 with sflash firmware*/ + { USB_DEVICE(0x0CF3, 0x0036), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0CF3, 0x817a), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3006), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3008), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0cf3, 0xe004), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xe057), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3393), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xe04e), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 }, + + /* Atheros AR5BBU22 with sflash firmware */ + { USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xE036), .driver_info = BTUSB_ATH3012 }, { } /* Terminating entry */ }; --- linux-3.2.0.orig/drivers/bluetooth/btusb.c +++ linux-3.2.0/drivers/bluetooth/btusb.c @@ -31,6 +31,8 @@ #include #include +#include +#include #include #include @@ -55,13 +57,17 @@ #define BTUSB_BROKEN_ISOC 0x20 #define BTUSB_WRONG_SCO_MTU 0x40 #define BTUSB_ATH3012 0x80 +#define BTUSB_BCM_PATCHRAM 0x100 static struct usb_device_id btusb_table[] = { /* Generic Bluetooth USB device */ { USB_DEVICE_INFO(0xe0, 0x01, 0x01) }, + /* Apple-specific (Broadcom) devices */ + { USB_VENDOR_AND_INTERFACE_INFO(0x05ac, 0xff, 0x01, 0x01) }, + /* Broadcom SoftSailing reporting vendor specific */ - { USB_DEVICE(0x05ac, 0x21e1) }, + { USB_DEVICE(0x0a5c, 0x21e1) }, /* Apple MacBookPro 7,1 */ { USB_DEVICE(0x05ac, 0x8213) }, @@ -101,7 +107,18 @@ { USB_DEVICE(0x0c10, 0x0000) }, /* Broadcom BCM20702A0 */ - { USB_DEVICE(0x413c, 0x8197) }, + { USB_DEVICE(0x0b05, 0x17b5) }, + { USB_DEVICE(0x04ca, 0x2003) }, + { USB_DEVICE(0x0489, 0xe042) }, + { USB_DEVICE(0x13d3, 0x3388), .driver_info = BTUSB_BCM_PATCHRAM }, + { USB_DEVICE(0x13d3, 0x3389), .driver_info = BTUSB_BCM_PATCHRAM }, + { USB_DEVICE(0x413c, 0x8197), .driver_info = BTUSB_BCM_PATCHRAM }, + + /* Foxconn - Hon Hai */ + { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01), .driver_info = BTUSB_BCM_PATCHRAM }, + + /*Broadcom devices with vendor specific id */ + { USB_VENDOR_AND_INTERFACE_INFO(0x0a5c, 0xff, 0x01, 0x01), .driver_info = BTUSB_BCM_PATCHRAM }, { } /* Terminating entry */ }; @@ -117,18 +134,41 @@ /* Atheros 3011 with sflash firmware */ { USB_DEVICE(0x0cf3, 0x3002), .driver_info = BTUSB_IGNORE }, + { USB_DEVICE(0x0cf3, 0xe019), .driver_info = BTUSB_IGNORE }, { USB_DEVICE(0x13d3, 0x3304), .driver_info = BTUSB_IGNORE }, { USB_DEVICE(0x0930, 0x0215), .driver_info = BTUSB_IGNORE }, + { USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE }, + { USB_DEVICE(0x0489, 0xe027), .driver_info = BTUSB_IGNORE }, /* Atheros AR9285 Malbec with sflash firmware */ { USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE }, /* Atheros 3012 with sflash firmware */ + { USB_DEVICE(0x0cf3, 0x0036), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0cf3, 0x817a), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3006), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x04ca, 0x3008), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0cf3, 0xe004), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xe057), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3393), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xe04e), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 }, /* Atheros AR5BBU12 with sflash firmware */ { USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE }, + /* Atheros AR5BBU12 with sflash firmware */ + { USB_DEVICE(0x0489, 0xe03c), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0489, 0xe036), .driver_info = BTUSB_ATH3012 }, + /* Broadcom BCM2035 */ { USB_DEVICE(0x0a5c, 0x2035), .driver_info = BTUSB_WRONG_SCO_MTU }, { USB_DEVICE(0x0a5c, 0x200a), .driver_info = BTUSB_WRONG_SCO_MTU }, @@ -189,12 +229,14 @@ #define BTUSB_ISOC_RUNNING 2 #define BTUSB_SUSPENDING 3 #define BTUSB_DID_ISO_RESUME 4 +#define BTUSB_FIRMWARE_DONE 5 struct btusb_data { struct hci_dev *hdev; struct usb_device *udev; struct usb_interface *intf; struct usb_interface *isoc; + const struct usb_device_id *id; spinlock_t lock; @@ -506,15 +548,10 @@ pipe = usb_rcvisocpipe(data->udev, data->isoc_rx_ep->bEndpointAddress); - urb->dev = data->udev; - urb->pipe = pipe; - urb->context = hdev; - urb->complete = btusb_isoc_complete; - urb->interval = data->isoc_rx_ep->bInterval; + usb_fill_int_urb(urb, data->udev, pipe, buf, size, btusb_isoc_complete, + hdev, data->isoc_rx_ep->bInterval); urb->transfer_flags = URB_FREE_BUFFER | URB_ISO_ASAP; - urb->transfer_buffer = buf; - urb->transfer_buffer_length = size; __fill_isoc_descriptor(urb, size, le16_to_cpu(data->isoc_rx_ep->wMaxPacketSize)); @@ -899,6 +936,70 @@ usb_autopm_put_interface(data->intf); } +#define PATCHRAM_TIMEOUT 1000 +#define PATCHRAM_NAME_LEN 20 + +static void btusb_load_firmware(struct hci_dev *hdev) +{ + struct btusb_data *data = hdev->driver_data; + struct usb_device *udev = data->udev; + const struct usb_device_id *id = data->id; + size_t pos = 0; + int err = 0; + char filename[PATCHRAM_NAME_LEN]; + const struct firmware *fw; + + unsigned char reset_cmd[] = { 0x03, 0x0c, 0x00 }; + unsigned char download_cmd[] = { 0x2e, 0xfc, 0x00 }; + + if (!(id->driver_info & BTUSB_BCM_PATCHRAM)) + return; + if (test_and_set_bit(BTUSB_FIRMWARE_DONE, &data->flags)) + return; + + snprintf(filename, PATCHRAM_NAME_LEN, "fw-%04x_%04x.hcd", + le16_to_cpu(udev->descriptor.idVendor), + le16_to_cpu(udev->descriptor.idProduct)); + if (request_firmware(&fw, (const char *) filename, &udev->dev) < 0) { + BT_INFO("can't load firmware, may not work correctly"); + return; + } + + if (usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0, USB_TYPE_CLASS, 0, 0, + reset_cmd, sizeof(reset_cmd), PATCHRAM_TIMEOUT) < 0) { + err = -1; + goto out; + } + msleep(300); + + if (usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0, USB_TYPE_CLASS, 0, 0, + download_cmd, sizeof(download_cmd), PATCHRAM_TIMEOUT) < 0) { + err = -1; + goto out; + } + msleep(300); + + while (pos < fw->size) { + size_t len; + len = fw->data[pos + 2] + 3; + if ((pos + len > fw->size) || + (usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0, + USB_TYPE_CLASS, 0, 0, (void *)fw->data + pos, len, + PATCHRAM_TIMEOUT) < 0)) { + err = -1; + goto out; + } + pos += len; + } + + err = (usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0, USB_TYPE_CLASS, 0, 0, + reset_cmd, sizeof(reset_cmd), PATCHRAM_TIMEOUT) < 0); +out: + if (err) + BT_INFO("fail to load firmware, may not work correctly"); + release_firmware(fw); +} + static int btusb_probe(struct usb_interface *intf, const struct usb_device_id *id) { @@ -986,6 +1087,8 @@ init_usb_anchor(&data->isoc_anchor); init_usb_anchor(&data->deferred); + data->id = id; + hdev = hci_alloc_dev(); if (!hdev) { kfree(data); @@ -1005,6 +1108,7 @@ hdev->send = btusb_send_frame; hdev->destruct = btusb_destruct; hdev->notify = btusb_notify; + hdev->load_firmware = btusb_load_firmware; hdev->owner = THIS_MODULE; --- linux-3.2.0.orig/drivers/power/power_supply_core.c +++ linux-3.2.0/drivers/power/power_supply_core.c @@ -147,6 +147,12 @@ } EXPORT_SYMBOL_GPL(power_supply_get_by_name); +int power_supply_powers(struct power_supply *psy, struct device *dev) +{ + return sysfs_create_link(&psy->dev->kobj, &dev->kobj, "powers"); +} +EXPORT_SYMBOL_GPL(power_supply_powers); + static void power_supply_dev_release(struct device *dev) { pr_debug("device: '%s': %s\n", dev_name(dev), __func__); @@ -202,6 +208,7 @@ void power_supply_unregister(struct power_supply *psy) { cancel_work_sync(&psy->changed_work); + sysfs_remove_link(&psy->dev->kobj, "powers"); power_supply_remove_triggers(psy); device_unregister(psy->dev); } --- linux-3.2.0.orig/drivers/pps/pps.c +++ linux-3.2.0/drivers/pps/pps.c @@ -247,12 +247,15 @@ struct pps_device *pps = container_of(inode->i_cdev, struct pps_device, cdev); file->private_data = pps; - + kobject_get(&pps->dev->kobj); return 0; } static int pps_cdev_release(struct inode *inode, struct file *file) { + struct pps_device *pps = container_of(inode->i_cdev, + struct pps_device, cdev); + kobject_put(&pps->dev->kobj); return 0; } @@ -274,8 +277,10 @@ { struct pps_device *pps = dev_get_drvdata(dev); - /* release id here to protect others from using it while it's - * still in use */ + cdev_del(&pps->cdev); + + /* Now we can release the ID for re-use */ + pr_debug("deallocating pps%d\n", pps->id); mutex_lock(&pps_idr_lock); idr_remove(&pps_idr, pps->id); mutex_unlock(&pps_idr_lock); @@ -330,6 +335,7 @@ if (IS_ERR(pps->dev)) goto del_cdev; + /* Override the release function with our own */ pps->dev->release = pps_device_destruct; pr_debug("source %s got cdev (%d:%d)\n", pps->info.name, @@ -350,11 +356,44 @@ void pps_unregister_cdev(struct pps_device *pps) { + pr_debug("unregistering pps%d\n", pps->id); + pps->lookup_cookie = NULL; device_destroy(pps_class, pps->dev->devt); - cdev_del(&pps->cdev); } /* + * Look up a pps device by magic cookie. + * The cookie is usually a pointer to some enclosing device, but this + * code doesn't care; you should never be dereferencing it. + * + * This is a bit of a kludge that is currently used only by the PPS + * serial line discipline. It may need to be tweaked when a second user + * is found. + * + * There is no function interface for setting the lookup_cookie field. + * It's initialized to NULL when the pps device is created, and if a + * client wants to use it, just fill it in afterward. + * + * The cookie is automatically set to NULL in pps_unregister_source() + * so that it will not be used again, even if the pps device cannot + * be removed from the idr due to pending references holding the minor + * number in use. + */ +struct pps_device *pps_lookup_dev(void const *cookie) +{ + struct pps_device *pps; + unsigned id; + + rcu_read_lock(); + idr_for_each_entry(&pps_idr, pps, id) + if (cookie == pps->lookup_cookie) + break; + rcu_read_unlock(); + return pps; +} +EXPORT_SYMBOL(pps_lookup_dev); + +/* * Module stuff */ --- linux-3.2.0.orig/drivers/pps/clients/pps-ldisc.c +++ linux-3.2.0/drivers/pps/clients/pps-ldisc.c @@ -31,7 +31,7 @@ static void pps_tty_dcd_change(struct tty_struct *tty, unsigned int status, struct pps_event_time *ts) { - struct pps_device *pps = (struct pps_device *)tty->disc_data; + struct pps_device *pps = pps_lookup_dev(tty); BUG_ON(pps == NULL); @@ -67,9 +67,9 @@ pr_err("cannot register PPS source \"%s\"\n", info.path); return -ENOMEM; } - tty->disc_data = pps; + pps->lookup_cookie = tty; - /* Should open N_TTY ldisc too */ + /* Now open the base class N_TTY ldisc */ ret = alias_n_tty_open(tty); if (ret < 0) { pr_err("cannot open tty ldisc \"%s\"\n", info.path); @@ -81,7 +81,6 @@ return 0; err_unregister: - tty->disc_data = NULL; pps_unregister_source(pps); return ret; } @@ -90,11 +89,10 @@ static void pps_tty_close(struct tty_struct *tty) { - struct pps_device *pps = (struct pps_device *)tty->disc_data; + struct pps_device *pps = pps_lookup_dev(tty); alias_n_tty_close(tty); - tty->disc_data = NULL; dev_info(pps->dev, "removed\n"); pps_unregister_source(pps); } --- linux-3.2.0.orig/drivers/hwspinlock/hwspinlock_core.c +++ linux-3.2.0/drivers/hwspinlock/hwspinlock_core.c @@ -345,7 +345,7 @@ spin_lock_init(&hwlock->lock); hwlock->bank = bank; - ret = hwspin_lock_register_single(hwlock, i); + ret = hwspin_lock_register_single(hwlock, base_id + i); if (ret) goto reg_failed; } @@ -354,7 +354,7 @@ reg_failed: while (--i >= 0) - hwspin_lock_unregister_single(i); + hwspin_lock_unregister_single(base_id + i); return ret; } EXPORT_SYMBOL_GPL(hwspin_lock_register); @@ -416,6 +416,8 @@ ret = pm_runtime_get_sync(dev); if (ret < 0) { dev_err(dev, "%s: can't power on device\n", __func__); + pm_runtime_put_noidle(dev); + module_put(dev->driver->owner); return ret; } --- linux-3.2.0.orig/drivers/char/random.c +++ linux-3.2.0/drivers/char/random.c @@ -125,21 +125,26 @@ * The current exported interfaces for gathering environmental noise * from the devices are: * + * void add_device_randomness(const void *buf, unsigned int size); * void add_input_randomness(unsigned int type, unsigned int code, * unsigned int value); - * void add_interrupt_randomness(int irq); + * void add_interrupt_randomness(int irq, int irq_flags); * void add_disk_randomness(struct gendisk *disk); * + * add_device_randomness() is for adding data to the random pool that + * is likely to differ between two devices (or possibly even per boot). + * This would be things like MAC addresses or serial numbers, or the + * read-out of the RTC. This does *not* add any actual entropy to the + * pool, but it initializes the pool to different values for devices + * that might otherwise be identical and have very little entropy + * available to them (particularly common in the embedded world). + * * add_input_randomness() uses the input layer interrupt timing, as well as * the event type information from the hardware. * - * add_interrupt_randomness() uses the inter-interrupt timing as random - * inputs to the entropy pool. Note that not all interrupts are good - * sources of randomness! For example, the timer interrupts is not a - * good choice, because the periodicity of the interrupts is too - * regular, and hence predictable to an attacker. Network Interface - * Controller interrupts are a better measure, since the timing of the - * NIC interrupts are more unpredictable. + * add_interrupt_randomness() uses the interrupt timing as random + * inputs to the entropy pool. Using the cycle counters and the irq source + * as inputs, it feeds the randomness roughly once a second. * * add_disk_randomness() uses what amounts to the seek time of block * layer request events, on a per-disk_devt basis, as input to the @@ -248,6 +253,8 @@ #include #include #include +#include +#include #ifdef CONFIG_GENERIC_HARDIRQS # include @@ -256,6 +263,7 @@ #include #include #include +#include #include /* @@ -266,6 +274,8 @@ #define SEC_XFER_SIZE 512 #define EXTRACT_SIZE 10 +#define LONGS(x) (((x) + sizeof(unsigned long) - 1)/sizeof(unsigned long)) + /* * The minimum number of bits of entropy before we wake up a read on * /dev/random. Should be enough to do a significant reseed. @@ -420,8 +430,10 @@ /* read-write data: */ spinlock_t lock; unsigned add_ptr; + unsigned input_rotate; int entropy_count; - int input_rotate; + int entropy_total; + unsigned int initialized:1; __u8 last_data[EXTRACT_SIZE]; }; @@ -454,6 +466,10 @@ .pool = nonblocking_pool_data }; +static __u32 const twist_table[8] = { + 0x00000000, 0x3b6e20c8, 0x76dc4190, 0x4db26158, + 0xedb88320, 0xd6d6a3e8, 0x9b64c2b0, 0xa00ae278 }; + /* * This function adds bytes into the entropy "pool". It does not * update the entropy estimate. The caller should call @@ -464,29 +480,24 @@ * it's cheap to do so and helps slightly in the expected case where * the entropy is concentrated in the low-order bits. */ -static void mix_pool_bytes_extract(struct entropy_store *r, const void *in, - int nbytes, __u8 out[64]) +static void __mix_pool_bytes(struct entropy_store *r, const void *in, + int nbytes, __u8 out[64]) { - static __u32 const twist_table[8] = { - 0x00000000, 0x3b6e20c8, 0x76dc4190, 0x4db26158, - 0xedb88320, 0xd6d6a3e8, 0x9b64c2b0, 0xa00ae278 }; unsigned long i, j, tap1, tap2, tap3, tap4, tap5; int input_rotate; int wordmask = r->poolinfo->poolwords - 1; const char *bytes = in; __u32 w; - unsigned long flags; - /* Taps are constant, so we can load them without holding r->lock. */ tap1 = r->poolinfo->tap1; tap2 = r->poolinfo->tap2; tap3 = r->poolinfo->tap3; tap4 = r->poolinfo->tap4; tap5 = r->poolinfo->tap5; - spin_lock_irqsave(&r->lock, flags); - input_rotate = r->input_rotate; - i = r->add_ptr; + smp_rmb(); + input_rotate = ACCESS_ONCE(r->input_rotate); + i = ACCESS_ONCE(r->add_ptr); /* mix one byte at a time to simplify size handling and churn faster */ while (nbytes--) { @@ -513,19 +524,53 @@ input_rotate += i ? 7 : 14; } - r->input_rotate = input_rotate; - r->add_ptr = i; + ACCESS_ONCE(r->input_rotate) = input_rotate; + ACCESS_ONCE(r->add_ptr) = i; + smp_wmb(); if (out) for (j = 0; j < 16; j++) ((__u32 *)out)[j] = r->pool[(i - j) & wordmask]; +} + +static void mix_pool_bytes(struct entropy_store *r, const void *in, + int nbytes, __u8 out[64]) +{ + unsigned long flags; + spin_lock_irqsave(&r->lock, flags); + __mix_pool_bytes(r, in, nbytes, out); spin_unlock_irqrestore(&r->lock, flags); } -static void mix_pool_bytes(struct entropy_store *r, const void *in, int bytes) +struct fast_pool { + __u32 pool[4]; + unsigned long last; + unsigned short count; + unsigned char rotate; + unsigned char last_timer_intr; +}; + +/* + * This is a fast mixing routine used by the interrupt randomness + * collector. It's hardcoded for an 128 bit pool and assumes that any + * locks that might be needed are taken by the caller. + */ +static void fast_mix(struct fast_pool *f, const void *in, int nbytes) { - mix_pool_bytes_extract(r, in, bytes, NULL); + const char *bytes = in; + __u32 w; + unsigned i = f->count; + unsigned input_rotate = f->rotate; + + while (nbytes--) { + w = rol32(*bytes++, input_rotate & 31) ^ f->pool[i & 3] ^ + f->pool[(i + 1) & 3]; + f->pool[i & 3] = (w >> 3) ^ twist_table[w & 7]; + input_rotate += (i++ & 3) ? 7 : 14; + } + f->count = i; + f->rotate = input_rotate; } /* @@ -533,30 +578,34 @@ */ static void credit_entropy_bits(struct entropy_store *r, int nbits) { - unsigned long flags; - int entropy_count; + int entropy_count, orig; if (!nbits) return; - spin_lock_irqsave(&r->lock, flags); - DEBUG_ENT("added %d entropy credits to %s\n", nbits, r->name); - entropy_count = r->entropy_count; +retry: + entropy_count = orig = ACCESS_ONCE(r->entropy_count); entropy_count += nbits; if (entropy_count < 0) { DEBUG_ENT("negative entropy/overflow\n"); entropy_count = 0; } else if (entropy_count > r->poolinfo->POOLBITS) entropy_count = r->poolinfo->POOLBITS; - r->entropy_count = entropy_count; + if (cmpxchg(&r->entropy_count, orig, entropy_count) != orig) + goto retry; + + if (!r->initialized && nbits > 0) { + r->entropy_total += nbits; + if (r->entropy_total > 128) + r->initialized = 1; + } /* should we wake readers? */ if (r == &input_pool && entropy_count >= random_read_wakeup_thresh) { wake_up_interruptible(&random_read_wait); kill_fasync(&fasync, SIGIO, POLL_IN); } - spin_unlock_irqrestore(&r->lock, flags); } /********************************************************************* @@ -609,6 +658,25 @@ } #endif +/* + * Add device- or boot-specific data to the input and nonblocking + * pools to help initialize them to unique values. + * + * None of this adds any entropy, it is meant to avoid the + * problem of the nonblocking pool having similar initial state + * across largely identical devices. + */ +void add_device_randomness(const void *buf, unsigned int size) +{ + unsigned long time = get_cycles() ^ jiffies; + + mix_pool_bytes(&input_pool, buf, size, NULL); + mix_pool_bytes(&input_pool, &time, sizeof(time), NULL); + mix_pool_bytes(&nonblocking_pool, buf, size, NULL); + mix_pool_bytes(&nonblocking_pool, &time, sizeof(time), NULL); +} +EXPORT_SYMBOL(add_device_randomness); + static struct timer_rand_state input_timer_state; /* @@ -624,8 +692,8 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num) { struct { - cycles_t cycles; long jiffies; + unsigned cycles; unsigned num; } sample; long delta, delta2, delta3; @@ -639,7 +707,7 @@ sample.jiffies = jiffies; sample.cycles = get_cycles(); sample.num = num; - mix_pool_bytes(&input_pool, &sample, sizeof(sample)); + mix_pool_bytes(&input_pool, &sample, sizeof(sample), NULL); /* * Calculate number of bits of randomness we probably added. @@ -696,17 +764,48 @@ } EXPORT_SYMBOL_GPL(add_input_randomness); -void add_interrupt_randomness(int irq) +static DEFINE_PER_CPU(struct fast_pool, irq_randomness); + +void add_interrupt_randomness(int irq, int irq_flags) { - struct timer_rand_state *state; + struct entropy_store *r; + struct fast_pool *fast_pool = &__get_cpu_var(irq_randomness); + struct pt_regs *regs = get_irq_regs(); + unsigned long now = jiffies; + __u32 input[4], cycles = get_cycles(); + + input[0] = cycles ^ jiffies; + input[1] = irq; + if (regs) { + __u64 ip = instruction_pointer(regs); + input[2] = ip; + input[3] = ip >> 32; + } - state = get_timer_rand_state(irq); + fast_mix(fast_pool, input, sizeof(input)); - if (state == NULL) + if ((fast_pool->count & 1023) && + !time_after(now, fast_pool->last + HZ)) return; - DEBUG_ENT("irq event %d\n", irq); - add_timer_randomness(state, 0x100 + irq); + fast_pool->last = now; + + r = nonblocking_pool.initialized ? &input_pool : &nonblocking_pool; + __mix_pool_bytes(r, &fast_pool->pool, sizeof(fast_pool->pool), NULL); + /* + * If we don't have a valid cycle counter, and we see + * back-to-back timer interrupts, then skip giving credit for + * any entropy. + */ + if (cycles == 0) { + if (irq_flags & __IRQF_TIMER) { + if (fast_pool->last_timer_intr) + return; + fast_pool->last_timer_intr = 1; + } else + fast_pool->last_timer_intr = 0; + } + credit_entropy_bits(r, 1); } #ifdef CONFIG_BLOCK @@ -738,7 +837,7 @@ */ static void xfer_secondary_pool(struct entropy_store *r, size_t nbytes) { - __u32 tmp[OUTPUT_POOL_WORDS]; + __u32 tmp[OUTPUT_POOL_WORDS]; if (r->pull && r->entropy_count < nbytes * 8 && r->entropy_count < r->poolinfo->POOLBITS) { @@ -757,7 +856,7 @@ bytes = extract_entropy(r->pull, tmp, bytes, random_read_wakeup_thresh / 8, rsvd); - mix_pool_bytes(r, tmp, bytes); + mix_pool_bytes(r, tmp, bytes, NULL); credit_entropy_bits(r, bytes*8); } } @@ -790,16 +889,24 @@ if (r->entropy_count / 8 < min + reserved) { nbytes = 0; } else { + int entropy_count, orig; +retry: + entropy_count = orig = ACCESS_ONCE(r->entropy_count); /* If limited, never pull more than available */ - if (r->limit && nbytes + reserved >= r->entropy_count / 8) - nbytes = r->entropy_count/8 - reserved; + if (r->limit && nbytes + reserved >= entropy_count / 8) + nbytes = entropy_count/8 - reserved; - if (r->entropy_count / 8 >= nbytes + reserved) - r->entropy_count -= nbytes*8; - else - r->entropy_count = reserved; + if (entropy_count / 8 >= nbytes + reserved) { + entropy_count -= nbytes*8; + if (cmpxchg(&r->entropy_count, orig, entropy_count) != orig) + goto retry; + } else { + entropy_count = reserved; + if (cmpxchg(&r->entropy_count, orig, entropy_count) != orig) + goto retry; + } - if (r->entropy_count < random_write_wakeup_thresh) { + if (entropy_count < random_write_wakeup_thresh) { wake_up_interruptible(&random_write_wait); kill_fasync(&fasync, SIGIO, POLL_OUT); } @@ -816,13 +923,19 @@ static void extract_buf(struct entropy_store *r, __u8 *out) { int i; - __u32 hash[5], workspace[SHA_WORKSPACE_WORDS]; + union { + __u32 w[5]; + unsigned long l[LONGS(EXTRACT_SIZE)]; + } hash; + __u32 workspace[SHA_WORKSPACE_WORDS]; __u8 extract[64]; + unsigned long flags; /* Generate a hash across the pool, 16 words (512 bits) at a time */ - sha_init(hash); + sha_init(hash.w); + spin_lock_irqsave(&r->lock, flags); for (i = 0; i < r->poolinfo->poolwords; i += 16) - sha_transform(hash, (__u8 *)(r->pool + i), workspace); + sha_transform(hash.w, (__u8 *)(r->pool + i), workspace); /* * We mix the hash back into the pool to prevent backtracking @@ -833,13 +946,14 @@ * brute-forcing the feedback as hard as brute-forcing the * hash. */ - mix_pool_bytes_extract(r, hash, sizeof(hash), extract); + __mix_pool_bytes(r, hash.w, sizeof(hash.w), extract); + spin_unlock_irqrestore(&r->lock, flags); /* * To avoid duplicates, we atomically extract a portion of the * pool while mixing, and hash one final time. */ - sha_transform(hash, extract, workspace); + sha_transform(hash.w, extract, workspace); memset(extract, 0, sizeof(extract)); memset(workspace, 0, sizeof(workspace)); @@ -848,19 +962,30 @@ * pattern, we fold it in half. Thus, we always feed back * twice as much data as we output. */ - hash[0] ^= hash[3]; - hash[1] ^= hash[4]; - hash[2] ^= rol32(hash[2], 16); - memcpy(out, hash, EXTRACT_SIZE); - memset(hash, 0, sizeof(hash)); + hash.w[0] ^= hash.w[3]; + hash.w[1] ^= hash.w[4]; + hash.w[2] ^= rol32(hash.w[2], 16); + + /* + * If we have a architectural hardware random number + * generator, mix that in, too. + */ + for (i = 0; i < LONGS(EXTRACT_SIZE); i++) { + unsigned long v; + if (!arch_get_random_long(&v)) + break; + hash.l[i] ^= v; + } + + memcpy(out, &hash, EXTRACT_SIZE); + memset(&hash, 0, sizeof(hash)); } static ssize_t extract_entropy(struct entropy_store *r, void *buf, - size_t nbytes, int min, int reserved) + size_t nbytes, int min, int reserved) { ssize_t ret = 0, i; __u8 tmp[EXTRACT_SIZE]; - unsigned long flags; xfer_secondary_pool(r, nbytes); nbytes = account(r, nbytes, min, reserved); @@ -869,6 +994,8 @@ extract_buf(r, tmp); if (fips_enabled) { + unsigned long flags; + spin_lock_irqsave(&r->lock, flags); if (!memcmp(tmp, r->last_data, EXTRACT_SIZE)) panic("Hardware RNG duplicated output!\n"); @@ -927,17 +1054,34 @@ /* * This function is the exported kernel interface. It returns some - * number of good random numbers, suitable for seeding TCP sequence - * numbers, etc. + * number of good random numbers, suitable for key generation, seeding + * TCP sequence numbers, etc. It does not use the hw random number + * generator, if available; use get_random_bytes_arch() for that. */ void get_random_bytes(void *buf, int nbytes) { + extract_entropy(&nonblocking_pool, buf, nbytes, 0, 0); +} +EXPORT_SYMBOL(get_random_bytes); + +/* + * This function will use the architecture-specific hardware random + * number generator if it is available. The arch-specific hw RNG will + * almost certainly be faster than what we can do in software, but it + * is impossible to verify that it is implemented securely (as + * opposed, to, say, the AES encryption of a sequence number using a + * key known by the NSA). So it's useful if we need the speed, but + * only if we're willing to trust the hardware manufacturer not to + * have put in a back door. + */ +void get_random_bytes_arch(void *buf, int nbytes) +{ char *p = buf; while (nbytes) { unsigned long v; int chunk = min(nbytes, (int)sizeof(unsigned long)); - + if (!arch_get_random_long(&v)) break; @@ -946,9 +1090,11 @@ nbytes -= chunk; } - extract_entropy(&nonblocking_pool, p, nbytes, 0, 0); + if (nbytes) + extract_entropy(&nonblocking_pool, p, nbytes, 0, 0); } -EXPORT_SYMBOL(get_random_bytes); +EXPORT_SYMBOL(get_random_bytes_arch); + /* * init_std_data - initialize pool with system data @@ -961,18 +1107,31 @@ */ static void init_std_data(struct entropy_store *r) { - ktime_t now; - unsigned long flags; + int i; + ktime_t now = ktime_get_real(); + unsigned long rv; - spin_lock_irqsave(&r->lock, flags); r->entropy_count = 0; - spin_unlock_irqrestore(&r->lock, flags); - - now = ktime_get_real(); - mix_pool_bytes(r, &now, sizeof(now)); - mix_pool_bytes(r, utsname(), sizeof(*(utsname()))); + r->entropy_total = 0; + mix_pool_bytes(r, &now, sizeof(now), NULL); + for (i = r->poolinfo->POOLBYTES; i > 0; i -= sizeof(rv)) { + if (!arch_get_random_long(&rv)) + break; + mix_pool_bytes(r, &rv, sizeof(rv), NULL); + } + mix_pool_bytes(r, utsname(), sizeof(*(utsname())), NULL); } +/* + * Note that setup_arch() may call add_device_randomness() + * long before we get here. This allows seeding of the pools + * with some platform dependent data very early in the boot + * process. But it limits our options here. We must use + * statically allocated structures that already have all + * initializations complete at compile time. We should also + * take care not to overwrite the precious per platform data + * we were given. + */ static int rand_initialize(void) { init_std_data(&input_pool); @@ -1107,7 +1266,7 @@ count -= bytes; p += bytes; - mix_pool_bytes(r, buf, bytes); + mix_pool_bytes(r, buf, bytes, NULL); cond_resched(); } @@ -1250,10 +1409,15 @@ uuid = table->data; if (!uuid) { uuid = tmp_uuid; - uuid[8] = 0; - } - if (uuid[8] == 0) generate_random_uuid(uuid); + } else { + static DEFINE_SPINLOCK(bootid_spinlock); + + spin_lock(&bootid_spinlock); + if (!uuid[8]) + generate_random_uuid(uuid); + spin_unlock(&bootid_spinlock); + } sprintf(buf, "%pU", uuid); --- linux-3.2.0.orig/drivers/char/ramoops.c +++ linux-3.2.0/drivers/char/ramoops.c @@ -83,8 +83,7 @@ struct timeval timestamp; if (reason != KMSG_DUMP_OOPS && - reason != KMSG_DUMP_PANIC && - reason != KMSG_DUMP_KEXEC) + reason != KMSG_DUMP_PANIC) return; /* Only dump oopses if dump_oops is set */ @@ -126,8 +125,8 @@ goto fail3; } - rounddown_pow_of_two(pdata->mem_size); - rounddown_pow_of_two(pdata->record_size); + pdata->mem_size = rounddown_pow_of_two(pdata->mem_size); + pdata->record_size = rounddown_pow_of_two(pdata->record_size); /* Check for the minimum memory size */ if (pdata->mem_size < MIN_MEM_SIZE && --- linux-3.2.0.orig/drivers/char/hpet.c +++ linux-3.2.0/drivers/char/hpet.c @@ -374,26 +374,14 @@ struct hpet_dev *devp; unsigned long addr; - if (((vma->vm_end - vma->vm_start) != PAGE_SIZE) || vma->vm_pgoff) - return -EINVAL; - devp = file->private_data; addr = devp->hd_hpets->hp_hpet_phys; if (addr & (PAGE_SIZE - 1)) return -ENOSYS; - vma->vm_flags |= VM_IO; vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); - - if (io_remap_pfn_range(vma, vma->vm_start, addr >> PAGE_SHIFT, - PAGE_SIZE, vma->vm_page_prot)) { - printk(KERN_ERR "%s: io_remap_pfn_range failed\n", - __func__); - return -EAGAIN; - } - - return 0; + return vm_iomap_memory(vma, addr, PAGE_SIZE); #else return -ENOSYS; #endif --- linux-3.2.0.orig/drivers/char/virtio_console.c +++ linux-3.2.0/drivers/char/virtio_console.c @@ -131,7 +131,8 @@ spinlock_t ports_lock; /* To protect the vq operations for the control channel */ - spinlock_t cvq_lock; + spinlock_t c_ivq_lock; + spinlock_t c_ovq_lock; /* The current config space is stored here */ struct virtio_console_config config; @@ -457,11 +458,14 @@ vq = portdev->c_ovq; sg_init_one(sg, &cpkt, sizeof(cpkt)); + + spin_lock(&portdev->c_ovq_lock); if (virtqueue_add_buf(vq, sg, 1, 0, &cpkt) >= 0) { virtqueue_kick(vq); while (!virtqueue_get_buf(vq, &len)) cpu_relax(); } + spin_unlock(&portdev->c_ovq_lock); return 0; } @@ -1466,23 +1470,23 @@ portdev = container_of(work, struct ports_device, control_work); vq = portdev->c_ivq; - spin_lock(&portdev->cvq_lock); + spin_lock(&portdev->c_ivq_lock); while ((buf = virtqueue_get_buf(vq, &len))) { - spin_unlock(&portdev->cvq_lock); + spin_unlock(&portdev->c_ivq_lock); buf->len = len; buf->offset = 0; handle_control_message(portdev, buf); - spin_lock(&portdev->cvq_lock); + spin_lock(&portdev->c_ivq_lock); if (add_inbuf(portdev->c_ivq, buf) < 0) { dev_warn(&portdev->vdev->dev, "Error adding buffer to queue\n"); free_buf(buf); } } - spin_unlock(&portdev->cvq_lock); + spin_unlock(&portdev->c_ivq_lock); } static void out_intr(struct virtqueue *vq) @@ -1721,10 +1725,12 @@ if (multiport) { unsigned int nr_added_bufs; - spin_lock_init(&portdev->cvq_lock); + spin_lock_init(&portdev->c_ivq_lock); + spin_lock_init(&portdev->c_ovq_lock); INIT_WORK(&portdev->control_work, &control_work_handler); - nr_added_bufs = fill_queue(portdev->c_ivq, &portdev->cvq_lock); + nr_added_bufs = fill_queue(portdev->c_ivq, + &portdev->c_ivq_lock); if (!nr_added_bufs) { dev_err(&vdev->dev, "Error allocating buffers for control queue\n"); @@ -1789,7 +1795,8 @@ /* Disable interrupts for vqs */ vdev->config->reset(vdev); /* Finish up work that's lined up */ - cancel_work_sync(&portdev->control_work); + if (use_multiport(portdev)) + cancel_work_sync(&portdev->control_work); list_for_each_entry_safe(port, port2, &portdev->ports, list) unplug_port(port); --- linux-3.2.0.orig/drivers/char/mspec.c +++ linux-3.2.0/drivers/char/mspec.c @@ -284,7 +284,7 @@ vdata->flags = flags; vdata->type = type; spin_lock_init(&vdata->lock); - vdata->refcnt = ATOMIC_INIT(1); + atomic_set(&vdata->refcnt, 1); vma->vm_private_data = vdata; vma->vm_flags |= (VM_IO | VM_RESERVED | VM_PFNMAP | VM_DONTEXPAND); --- linux-3.2.0.orig/drivers/char/ttyprintk.c +++ linux-3.2.0/drivers/char/ttyprintk.c @@ -67,7 +67,7 @@ tmp[tpk_curr + 1] = '\0'; printk(KERN_INFO "%s%s", tpk_tag, tmp); tpk_curr = 0; - if (buf[i + 1] == '\n') + if ((i + 1) < count && buf[i + 1] == '\n') i++; break; case '\n': --- linux-3.2.0.orig/drivers/char/hw_random/core.c +++ linux-3.2.0/drivers/char/hw_random/core.c @@ -40,6 +40,7 @@ #include #include #include +#include #include @@ -52,8 +53,12 @@ static LIST_HEAD(rng_list); static DEFINE_MUTEX(rng_mutex); static int data_avail; -static u8 rng_buffer[SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES] - __cacheline_aligned; +static u8 *rng_buffer; + +static size_t rng_buffer_size(void) +{ + return SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES; +} static inline int hwrng_init(struct hwrng *rng) { @@ -116,7 +121,7 @@ if (!data_avail) { bytes_read = rng_get_data(current_rng, rng_buffer, - sizeof(rng_buffer), + rng_buffer_size(), !(filp->f_flags & O_NONBLOCK)); if (bytes_read < 0) { err = bytes_read; @@ -307,6 +312,14 @@ mutex_lock(&rng_mutex); + /* kmalloc makes this safe for virt_to_page() in virtio_rng.c */ + err = -ENOMEM; + if (!rng_buffer) { + rng_buffer = kmalloc(rng_buffer_size(), GFP_KERNEL); + if (!rng_buffer) + goto out_unlock; + } + /* Must not register two RNGs with the same name. */ err = -EEXIST; list_for_each_entry(tmp, &rng_list, list) { --- linux-3.2.0.orig/drivers/char/hw_random/virtio-rng.c +++ linux-3.2.0/drivers/char/hw_random/virtio-rng.c @@ -89,14 +89,22 @@ { int err; + if (vq) { + /* We only support one device for now */ + return -EBUSY; + } /* We expect a single virtqueue. */ vq = virtio_find_single_vq(vdev, random_recv_done, "input"); - if (IS_ERR(vq)) - return PTR_ERR(vq); + if (IS_ERR(vq)) { + err = PTR_ERR(vq); + vq = NULL; + return err; + } err = hwrng_register(&virtio_hwrng); if (err) { vdev->config->del_vqs(vdev); + vq = NULL; return err; } @@ -108,6 +116,7 @@ vdev->config->reset(vdev); hwrng_unregister(&virtio_hwrng); vdev->config->del_vqs(vdev); + vq = NULL; } static struct virtio_device_id id_table[] = { --- linux-3.2.0.orig/drivers/char/hw_random/atmel-rng.c +++ linux-3.2.0/drivers/char/hw_random/atmel-rng.c @@ -34,8 +34,15 @@ u32 *data = buf; /* data ready? */ - if (readl(trng->base + TRNG_ODATA) & 1) { + if (readl(trng->base + TRNG_ISR) & 1) { *data = readl(trng->base + TRNG_ODATA); + /* + ensure data ready is only set again AFTER the next data + word is ready in case it got set between checking ISR + and reading ODATA, so we don't risk re-reading the + same word + */ + readl(trng->base + TRNG_ISR); return 4; } else return 0; --- linux-3.2.0.orig/drivers/char/ipmi/ipmi_devintf.c +++ linux-3.2.0/drivers/char/ipmi/ipmi_devintf.c @@ -838,13 +838,25 @@ return ipmi_ioctl(filep, cmd, arg); } } + +static long unlocked_compat_ipmi_ioctl(struct file *filep, unsigned int cmd, + unsigned long arg) +{ + int ret; + + mutex_lock(&ipmi_mutex); + ret = compat_ipmi_ioctl(filep, cmd, arg); + mutex_unlock(&ipmi_mutex); + + return ret; +} #endif static const struct file_operations ipmi_fops = { .owner = THIS_MODULE, .unlocked_ioctl = ipmi_unlocked_ioctl, #ifdef CONFIG_COMPAT - .compat_ioctl = compat_ipmi_ioctl, + .compat_ioctl = unlocked_compat_ipmi_ioctl, #endif .open = ipmi_open, .release = ipmi_release, --- linux-3.2.0.orig/drivers/char/ipmi/ipmi_bt_sm.c +++ linux-3.2.0/drivers/char/ipmi/ipmi_bt_sm.c @@ -95,9 +95,9 @@ enum bt_states state; unsigned char seq; /* BT sequence number */ struct si_sm_io *io; - unsigned char write_data[IPMI_MAX_MSG_LENGTH]; + unsigned char write_data[IPMI_MAX_MSG_LENGTH + 2]; /* +2 for memcpy */ int write_count; - unsigned char read_data[IPMI_MAX_MSG_LENGTH]; + unsigned char read_data[IPMI_MAX_MSG_LENGTH + 2]; /* +2 for memcpy */ int read_count; int truncated; long timeout; /* microseconds countdown */ --- linux-3.2.0.orig/drivers/char/tpm/Kconfig +++ linux-3.2.0/drivers/char/tpm/Kconfig @@ -5,7 +5,6 @@ menuconfig TCG_TPM tristate "TPM Hardware Support" depends on HAS_IOMEM - depends on EXPERIMENTAL select SECURITYFS ---help--- If you have a TPM security chip in your system, which --- linux-3.2.0.orig/drivers/char/tpm/tpm_tis.c +++ linux-3.2.0/drivers/char/tpm/tpm_tis.c @@ -432,6 +432,9 @@ out: itpm = rem_itpm; tpm_tis_ready(chip); + /* some TPMs need a break here otherwise they will not work + * correctly on the immediately subsequent command */ + msleep(chip->vendor.timeout_b); release_locality(chip, chip->vendor.locality, 0); return rc; --- linux-3.2.0.orig/drivers/char/tpm/tpm.c +++ linux-3.2.0/drivers/char/tpm/tpm.c @@ -1072,17 +1072,20 @@ size_t size, loff_t *off) { struct tpm_chip *chip = file->private_data; - size_t in_size = size, out_size; + size_t in_size = size; + ssize_t out_size; /* cannot perform a write until the read has cleared - either via tpm_read or a user_read_timer timeout */ - while (atomic_read(&chip->data_pending) != 0) - msleep(TPM_TIMEOUT); - - mutex_lock(&chip->buffer_mutex); + either via tpm_read or a user_read_timer timeout. + This also prevents splitted buffered writes from blocking here. + */ + if (atomic_read(&chip->data_pending) != 0) + return -EBUSY; if (in_size > TPM_BUFSIZE) - in_size = TPM_BUFSIZE; + return -E2BIG; + + mutex_lock(&chip->buffer_mutex); if (copy_from_user (chip->data_buffer, (void __user *) buf, in_size)) { @@ -1092,6 +1095,10 @@ /* atomic tpm command send and result receive */ out_size = tpm_transmit(chip, chip->data_buffer, TPM_BUFSIZE); + if (out_size < 0) { + mutex_unlock(&chip->buffer_mutex); + return out_size; + } atomic_set(&chip->data_pending, out_size); mutex_unlock(&chip->buffer_mutex); @@ -1115,12 +1122,13 @@ ret_size = atomic_read(&chip->data_pending); atomic_set(&chip->data_pending, 0); if (ret_size > 0) { /* relay data */ + ssize_t orig_ret_size = ret_size; if (size < ret_size) ret_size = size; mutex_lock(&chip->buffer_mutex); rc = copy_to_user(buf, chip->data_buffer, ret_size); - memset(chip->data_buffer, 0, ret_size); + memset(chip->data_buffer, 0, orig_ret_size); if (rc) ret_size = -EFAULT; --- linux-3.2.0.orig/drivers/char/agp/intel-agp.h +++ linux-3.2.0/drivers/char/agp/intel-agp.h @@ -211,6 +211,7 @@ #define PCI_DEVICE_ID_INTEL_G41_HB 0x2E30 #define PCI_DEVICE_ID_INTEL_G41_IG 0x2E32 #define PCI_DEVICE_ID_INTEL_IRONLAKE_D_HB 0x0040 +#define PCI_DEVICE_ID_INTEL_IRONLAKE_D2_HB 0x0069 #define PCI_DEVICE_ID_INTEL_IRONLAKE_D_IG 0x0042 #define PCI_DEVICE_ID_INTEL_IRONLAKE_M_HB 0x0044 #define PCI_DEVICE_ID_INTEL_IRONLAKE_MA_HB 0x0062 @@ -234,6 +235,7 @@ #define PCI_DEVICE_ID_INTEL_IVYBRIDGE_M_GT2_IG 0x0166 #define PCI_DEVICE_ID_INTEL_IVYBRIDGE_S_HB 0x0158 /* Server */ #define PCI_DEVICE_ID_INTEL_IVYBRIDGE_S_GT1_IG 0x015A +#define PCI_DEVICE_ID_INTEL_IVYBRIDGE_S_GT2_IG 0x016A int intel_gmch_probe(struct pci_dev *pdev, struct agp_bridge_data *bridge); --- linux-3.2.0.orig/drivers/char/agp/intel-gtt.c +++ linux-3.2.0/drivers/char/agp/intel-gtt.c @@ -1459,6 +1459,8 @@ "Ivybridge", &sandybridge_gtt_driver }, { PCI_DEVICE_ID_INTEL_IVYBRIDGE_S_GT1_IG, "Ivybridge", &sandybridge_gtt_driver }, + { PCI_DEVICE_ID_INTEL_IVYBRIDGE_S_GT2_IG, + "Ivybridge", &sandybridge_gtt_driver }, { 0, NULL, NULL } }; --- linux-3.2.0.orig/drivers/char/agp/intel-agp.c +++ linux-3.2.0/drivers/char/agp/intel-agp.c @@ -897,6 +897,7 @@ ID(PCI_DEVICE_ID_INTEL_B43_HB), ID(PCI_DEVICE_ID_INTEL_B43_1_HB), ID(PCI_DEVICE_ID_INTEL_IRONLAKE_D_HB), + ID(PCI_DEVICE_ID_INTEL_IRONLAKE_D2_HB), ID(PCI_DEVICE_ID_INTEL_IRONLAKE_M_HB), ID(PCI_DEVICE_ID_INTEL_IRONLAKE_MA_HB), ID(PCI_DEVICE_ID_INTEL_IRONLAKE_MC2_HB), --- linux-3.2.0.orig/drivers/mfd/ab3100-core.c +++ linux-3.2.0/drivers/mfd/ab3100-core.c @@ -409,8 +409,6 @@ u32 fatevent; int err; - add_interrupt_randomness(irq); - err = ab3100_get_register_page_interruptible(ab3100, AB3100_EVENTA1, event_regs, 3); if (err) --- linux-3.2.0.orig/drivers/mfd/mfd-core.c +++ linux-3.2.0/drivers/mfd/mfd-core.c @@ -19,6 +19,10 @@ #include #include +static struct device_type mfd_dev_type = { + .name = "mfd_device", +}; + int mfd_cell_enable(struct platform_device *pdev) { const struct mfd_cell *cell = mfd_get_cell(pdev); @@ -88,6 +92,7 @@ goto fail_device; pdev->dev.parent = parent; + pdev->dev.type = &mfd_dev_type; if (cell->pdata_size) { ret = platform_device_add_data(pdev, @@ -123,7 +128,7 @@ } if (!cell->ignore_resource_conflicts) { - ret = acpi_check_resource_conflict(res); + ret = acpi_check_resource_conflict(&res[r]); if (ret) goto fail_res; } @@ -183,10 +188,16 @@ static int mfd_remove_devices_fn(struct device *dev, void *c) { - struct platform_device *pdev = to_platform_device(dev); - const struct mfd_cell *cell = mfd_get_cell(pdev); + struct platform_device *pdev; + const struct mfd_cell *cell; atomic_t **usage_count = c; + if (dev->type != &mfd_dev_type) + return 0; + + pdev = to_platform_device(dev); + cell = mfd_get_cell(pdev); + /* find the base address of usage_count pointers (for freeing) */ if (!*usage_count || (cell->usage_count < *usage_count)) *usage_count = cell->usage_count; --- linux-3.2.0.orig/drivers/mfd/cs5535-mfd.c +++ linux-3.2.0/drivers/mfd/cs5535-mfd.c @@ -179,7 +179,7 @@ }; MODULE_DEVICE_TABLE(pci, cs5535_mfd_pci_tbl); -static struct pci_driver cs5535_mfd_drv = { +static struct pci_driver cs5535_mfd_driver = { .name = DRV_NAME, .id_table = cs5535_mfd_pci_tbl, .probe = cs5535_mfd_probe, @@ -188,12 +188,12 @@ static int __init cs5535_mfd_init(void) { - return pci_register_driver(&cs5535_mfd_drv); + return pci_register_driver(&cs5535_mfd_driver); } static void __exit cs5535_mfd_exit(void) { - pci_unregister_driver(&cs5535_mfd_drv); + pci_unregister_driver(&cs5535_mfd_driver); } module_init(cs5535_mfd_init); --- linux-3.2.0.orig/drivers/mfd/ezx-pcap.c +++ linux-3.2.0/drivers/mfd/ezx-pcap.c @@ -202,7 +202,7 @@ } local_irq_enable(); ezx_pcap_write(pcap, PCAP_REG_MSR, pcap->msr); - } while (gpio_get_value(irq_to_gpio(pcap->spi->irq))); + } while (gpio_get_value(pdata->gpio)); } static void pcap_irq_handler(unsigned int irq, struct irq_desc *desc) --- linux-3.2.0.orig/drivers/mfd/adp5520.c +++ linux-3.2.0/drivers/mfd/adp5520.c @@ -36,6 +36,7 @@ struct blocking_notifier_head notifier_list; int irq; unsigned long id; + uint8_t mode; }; static int __adp5520_read(struct i2c_client *client, @@ -326,7 +327,10 @@ struct i2c_client *client = to_i2c_client(dev); struct adp5520_chip *chip = dev_get_drvdata(&client->dev); - adp5520_clr_bits(chip->dev, ADP5520_MODE_STATUS, ADP5520_nSTNBY); + adp5520_read(chip->dev, ADP5520_MODE_STATUS, &chip->mode); + /* All other bits are W1C */ + chip->mode &= ADP5520_BL_EN | ADP5520_DIM_EN | ADP5520_nSTNBY; + adp5520_write(chip->dev, ADP5520_MODE_STATUS, 0); return 0; } @@ -335,7 +339,7 @@ struct i2c_client *client = to_i2c_client(dev); struct adp5520_chip *chip = dev_get_drvdata(&client->dev); - adp5520_set_bits(chip->dev, ADP5520_MODE_STATUS, ADP5520_nSTNBY); + adp5520_write(chip->dev, ADP5520_MODE_STATUS, chip->mode); return 0; } #endif --- linux-3.2.0.orig/drivers/mfd/wm831x-otp.c +++ linux-3.2.0/drivers/mfd/wm831x-otp.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -66,6 +67,7 @@ int wm831x_otp_init(struct wm831x *wm831x) { + char uuid[WM831X_UNIQUE_ID_LEN]; int ret; ret = device_create_file(wm831x->dev, &dev_attr_unique_id); @@ -73,6 +75,12 @@ dev_err(wm831x->dev, "Unique ID attribute not created: %d\n", ret); + ret = wm831x_unique_id_read(wm831x, uuid); + if (ret == 0) + add_device_randomness(uuid, sizeof(uuid)); + else + dev_err(wm831x->dev, "Failed to read UUID: %d\n", ret); + return ret; } --- linux-3.2.0.orig/drivers/mfd/twl6030-irq.c +++ linux-3.2.0/drivers/mfd/twl6030-irq.c @@ -187,8 +187,17 @@ } local_irq_enable(); } - ret = twl_i2c_write(TWL_MODULE_PIH, sts.bytes, - REG_INT_STS_A, 3); /* clear INT_STS_A */ + + /* + * NOTE: + * Simulation confirms that documentation is wrong w.r.t the + * interrupt status clear operation. A single *byte* write to + * any one of STS_A to STS_C register results in all three + * STS registers being reset. Since it does not matter which + * value is written, all three registers are cleared on a + * single byte write, so we just use 0x0 to clear. + */ + ret = twl_i2c_write_u8(TWL_MODULE_PIH, 0x00, REG_INT_STS_A); if (ret) pr_warning("twl6030: I2C error in clearing PIH ISR\n"); --- linux-3.2.0.orig/drivers/dma/Kconfig +++ linux-3.2.0/drivers/dma/Kconfig @@ -201,18 +201,17 @@ platform_data for a dma-pl330 device. config PCH_DMA - tristate "Intel EG20T PCH / OKI Semi IOH(ML7213/ML7223) DMA support" + tristate "Intel EG20T PCH / OKI Semi IOH(ML7213/ML7223/ML7831) DMA support" depends on PCI && X86 select DMA_ENGINE help Enable support for Intel EG20T PCH DMA engine. - This driver also can be used for OKI SEMICONDUCTOR IOH(Input/ - Output Hub), ML7213 and ML7223. - ML7213 IOH is for IVI(In-Vehicle Infotainment) use and ML7223 IOH is - for MP(Media Phone) use. - ML7213/ML7223 is companion chip for Intel Atom E6xx series. - ML7213/ML7223 is completely compatible for Intel EG20T PCH. + Output Hub), ML7213, ML7223 and ML7831. + ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is + for MP(Media Phone) use and ML7831 IOH is for general purpose use. + ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series. + ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH. config IMX_SDMA tristate "i.MX SDMA support" --- linux-3.2.0.orig/drivers/dma/dmaengine.c +++ linux-3.2.0/drivers/dma/dmaengine.c @@ -564,8 +564,8 @@ list_del_rcu(&device->global_node); break; } else if (err) - pr_err("dmaengine: failed to get %s: (%d)\n", - dma_chan_name(chan), err); + pr_debug("%s: failed to get %s: (%d)\n", + __func__, dma_chan_name(chan), err); } } --- linux-3.2.0.orig/drivers/dma/at_hdmac_regs.h +++ linux-3.2.0/drivers/dma/at_hdmac_regs.h @@ -326,28 +326,27 @@ } -static void atc_setup_irq(struct at_dma_chan *atchan, int on) +static void atc_setup_irq(struct at_dma *atdma, int chan_id, int on) { - struct at_dma *atdma = to_at_dma(atchan->chan_common.device); - u32 ebci; + u32 ebci; /* enable interrupts on buffer transfer completion & error */ - ebci = AT_DMA_BTC(atchan->chan_common.chan_id) - | AT_DMA_ERR(atchan->chan_common.chan_id); + ebci = AT_DMA_BTC(chan_id) + | AT_DMA_ERR(chan_id); if (on) dma_writel(atdma, EBCIER, ebci); else dma_writel(atdma, EBCIDR, ebci); } -static inline void atc_enable_irq(struct at_dma_chan *atchan) +static void atc_enable_chan_irq(struct at_dma *atdma, int chan_id) { - atc_setup_irq(atchan, 1); + atc_setup_irq(atdma, chan_id, 1); } -static inline void atc_disable_irq(struct at_dma_chan *atchan) +static void atc_disable_chan_irq(struct at_dma *atdma, int chan_id) { - atc_setup_irq(atchan, 0); + atc_setup_irq(atdma, chan_id, 0); } --- linux-3.2.0.orig/drivers/dma/pch_dma.c +++ linux-3.2.0/drivers/dma/pch_dma.c @@ -489,7 +489,7 @@ dev_dbg(chan2dev(&pd_chan->chan), "scanned %d descriptors\n", i); if (!ret) { - ret = pdc_alloc_desc(&pd_chan->chan, GFP_NOIO); + ret = pdc_alloc_desc(&pd_chan->chan, GFP_ATOMIC); if (ret) { spin_lock(&pd_chan->lock); pd_chan->descs_allocated++; @@ -1018,6 +1018,8 @@ #define PCI_DEVICE_ID_ML7223_DMA2_4CH 0x800E #define PCI_DEVICE_ID_ML7223_DMA3_4CH 0x8017 #define PCI_DEVICE_ID_ML7223_DMA4_4CH 0x803B +#define PCI_DEVICE_ID_ML7831_DMA1_8CH 0x8810 +#define PCI_DEVICE_ID_ML7831_DMA2_4CH 0x8815 DEFINE_PCI_DEVICE_TABLE(pch_dma_id_table) = { { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_EG20T_PCH_DMA_8CH), 8 }, @@ -1030,6 +1032,8 @@ { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7223_DMA2_4CH), 4}, /* Video SPI */ { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7223_DMA3_4CH), 4}, /* Security */ { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7223_DMA4_4CH), 4}, /* FPGA */ + { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7831_DMA1_8CH), 8}, /* UART */ + { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7831_DMA2_4CH), 4}, /* SPI */ { 0, }, }; @@ -1057,7 +1061,7 @@ module_init(pch_dma_init); module_exit(pch_dma_exit); -MODULE_DESCRIPTION("Intel EG20T PCH / OKI SEMICONDUCTOR ML7213 IOH " - "DMA controller driver"); +MODULE_DESCRIPTION("Intel EG20T PCH / OKI SEMICON ML7213/ML7223/ML7831 IOH" + "DMA controller driver"); MODULE_AUTHOR("Yong Wang "); MODULE_LICENSE("GPL v2"); --- linux-3.2.0.orig/drivers/dma/pl330.c +++ linux-3.2.0/drivers/dma/pl330.c @@ -349,10 +349,10 @@ struct dma_pl330_chan *pch = to_pchan(chan); unsigned long flags; - spin_lock_irqsave(&pch->lock, flags); - tasklet_kill(&pch->task); + spin_lock_irqsave(&pch->lock, flags); + pl330_release_channel(pch->pl330_chid); pch->pl330_chid = NULL; @@ -858,6 +858,11 @@ /* Initialize channel parameters */ num_chan = max(pdat ? pdat->nr_valid_peri : 0, (u8)pi->pcfg.num_chan); pdmac->peripherals = kzalloc(num_chan * sizeof(*pch), GFP_KERNEL); + if (!pdmac->peripherals) { + ret = -ENOMEM; + dev_err(&adev->dev, "unable to allocate pdmac->peripherals\n"); + goto probe_err4; + } for (i = 0; i < num_chan; i++) { pch = &pdmac->peripherals[i]; @@ -990,6 +995,8 @@ { 0, 0 }, }; +MODULE_DEVICE_TABLE(amba, pl330_ids); + #ifdef CONFIG_PM_RUNTIME static int pl330_runtime_suspend(struct device *dev) { --- linux-3.2.0.orig/drivers/dma/at_hdmac.c +++ linux-3.2.0/drivers/dma/at_hdmac.c @@ -239,10 +239,6 @@ vdbg_dump_regs(atchan); - /* clear any pending interrupt */ - while (dma_readl(atdma, EBCISR)) - cpu_relax(); - channel_writel(atchan, SADDR, 0); channel_writel(atchan, DADDR, 0); channel_writel(atchan, CTRLA, 0); @@ -682,7 +678,7 @@ flags); if (unlikely(!atslave || !sg_len)) { - dev_dbg(chan2dev(chan), "prep_dma_memcpy: length is zero!\n"); + dev_dbg(chan2dev(chan), "prep_slave_sg: sg length is zero!\n"); return NULL; } @@ -710,6 +706,11 @@ mem = sg_dma_address(sg); len = sg_dma_len(sg); + if (unlikely(!len)) { + dev_dbg(chan2dev(chan), + "prep_slave_sg: sg(%d) data length is zero\n", i); + goto err; + } mem_width = 2; if (unlikely(mem & 3 || len & 3)) mem_width = 0; @@ -744,6 +745,11 @@ mem = sg_dma_address(sg); len = sg_dma_len(sg); + if (unlikely(!len)) { + dev_dbg(chan2dev(chan), + "prep_slave_sg: sg(%d) data length is zero\n", i); + goto err; + } mem_width = 2; if (unlikely(mem & 3 || len & 3)) mem_width = 0; @@ -777,6 +783,7 @@ err_desc_get: dev_err(chan2dev(chan), "not enough descriptors available\n"); +err: atc_desc_put(atchan, first); return NULL; } @@ -1286,7 +1293,7 @@ tasklet_init(&atchan->tasklet, atc_tasklet, (unsigned long)atchan); - atc_enable_irq(atchan); + atc_enable_chan_irq(atdma, i); } /* set base routines */ @@ -1353,7 +1360,7 @@ struct at_dma_chan *atchan = to_at_dma_chan(chan); /* Disable interrupts */ - atc_disable_irq(atchan); + atc_disable_chan_irq(atdma, chan->chan_id); tasklet_disable(&atchan->tasklet); tasklet_kill(&atchan->tasklet); --- linux-3.2.0.orig/drivers/dma/ioat/dma.h +++ linux-3.2.0/drivers/dma/ioat/dma.h @@ -88,7 +88,7 @@ struct ioat_chan_common { struct dma_chan common; void __iomem *reg_base; - unsigned long last_completion; + dma_addr_t last_completion; spinlock_t cleanup_lock; dma_cookie_t completed_cookie; unsigned long state; @@ -333,7 +333,7 @@ void __devexit ioat_dma_remove(struct ioatdma_device *device); struct dca_provider * __devinit ioat_dca_init(struct pci_dev *pdev, void __iomem *iobase); -unsigned long ioat_get_current_completion(struct ioat_chan_common *chan); +dma_addr_t ioat_get_current_completion(struct ioat_chan_common *chan); void ioat_init_channel(struct ioatdma_device *device, struct ioat_chan_common *chan, int idx); enum dma_status ioat_dma_tx_status(struct dma_chan *c, dma_cookie_t cookie, @@ -341,7 +341,7 @@ void ioat_dma_unmap(struct ioat_chan_common *chan, enum dma_ctrl_flags flags, size_t len, struct ioat_dma_descriptor *hw); bool ioat_cleanup_preamble(struct ioat_chan_common *chan, - unsigned long *phys_complete); + dma_addr_t *phys_complete); void ioat_kobject_add(struct ioatdma_device *device, struct kobj_type *type); void ioat_kobject_del(struct ioatdma_device *device); extern const struct sysfs_ops ioat_sysfs_ops; --- linux-3.2.0.orig/drivers/dma/ioat/dma_v2.c +++ linux-3.2.0/drivers/dma/ioat/dma_v2.c @@ -126,7 +126,7 @@ spin_unlock_bh(&ioat->prep_lock); } -static void __cleanup(struct ioat2_dma_chan *ioat, unsigned long phys_complete) +static void __cleanup(struct ioat2_dma_chan *ioat, dma_addr_t phys_complete) { struct ioat_chan_common *chan = &ioat->base; struct dma_async_tx_descriptor *tx; @@ -178,7 +178,7 @@ static void ioat2_cleanup(struct ioat2_dma_chan *ioat) { struct ioat_chan_common *chan = &ioat->base; - unsigned long phys_complete; + dma_addr_t phys_complete; spin_lock_bh(&chan->cleanup_lock); if (ioat_cleanup_preamble(chan, &phys_complete)) @@ -259,7 +259,7 @@ static void ioat2_restart_channel(struct ioat2_dma_chan *ioat) { struct ioat_chan_common *chan = &ioat->base; - unsigned long phys_complete; + dma_addr_t phys_complete; ioat2_quiesce(chan, 0); if (ioat_cleanup_preamble(chan, &phys_complete)) @@ -274,7 +274,7 @@ struct ioat_chan_common *chan = &ioat->base; if (test_bit(IOAT_COMPLETION_PENDING, &chan->state)) { - unsigned long phys_complete; + dma_addr_t phys_complete; u64 status; status = ioat_chansts(chan); --- linux-3.2.0.orig/drivers/dma/ioat/dma_v3.c +++ linux-3.2.0/drivers/dma/ioat/dma_v3.c @@ -256,7 +256,7 @@ * The difference from the dma_v2.c __cleanup() is that this routine * handles extended descriptors and dma-unmapping raid operations. */ -static void __cleanup(struct ioat2_dma_chan *ioat, unsigned long phys_complete) +static void __cleanup(struct ioat2_dma_chan *ioat, dma_addr_t phys_complete) { struct ioat_chan_common *chan = &ioat->base; struct ioat_ring_ent *desc; @@ -314,7 +314,7 @@ static void ioat3_cleanup(struct ioat2_dma_chan *ioat) { struct ioat_chan_common *chan = &ioat->base; - unsigned long phys_complete; + dma_addr_t phys_complete; spin_lock_bh(&chan->cleanup_lock); if (ioat_cleanup_preamble(chan, &phys_complete)) @@ -333,7 +333,7 @@ static void ioat3_restart_channel(struct ioat2_dma_chan *ioat) { struct ioat_chan_common *chan = &ioat->base; - unsigned long phys_complete; + dma_addr_t phys_complete; ioat2_quiesce(chan, 0); if (ioat_cleanup_preamble(chan, &phys_complete)) @@ -348,7 +348,7 @@ struct ioat_chan_common *chan = &ioat->base; if (test_bit(IOAT_COMPLETION_PENDING, &chan->state)) { - unsigned long phys_complete; + dma_addr_t phys_complete; u64 status; status = ioat_chansts(chan); @@ -949,7 +949,7 @@ goto free_resources; } } - dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_TO_DEVICE); + dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_FROM_DEVICE); /* skip validate if the capability is not present */ if (!dma_has_cap(DMA_XOR_VAL, dma_chan->device->cap_mask)) --- linux-3.2.0.orig/drivers/dma/ioat/dma.c +++ linux-3.2.0/drivers/dma/ioat/dma.c @@ -548,9 +548,9 @@ PCI_DMA_TODEVICE, flags, 0); } -unsigned long ioat_get_current_completion(struct ioat_chan_common *chan) +dma_addr_t ioat_get_current_completion(struct ioat_chan_common *chan) { - unsigned long phys_complete; + dma_addr_t phys_complete; u64 completion; completion = *chan->completion; @@ -571,7 +571,7 @@ } bool ioat_cleanup_preamble(struct ioat_chan_common *chan, - unsigned long *phys_complete) + dma_addr_t *phys_complete) { *phys_complete = ioat_get_current_completion(chan); if (*phys_complete == chan->last_completion) @@ -582,14 +582,14 @@ return true; } -static void __cleanup(struct ioat_dma_chan *ioat, unsigned long phys_complete) +static void __cleanup(struct ioat_dma_chan *ioat, dma_addr_t phys_complete) { struct ioat_chan_common *chan = &ioat->base; struct list_head *_desc, *n; struct dma_async_tx_descriptor *tx; - dev_dbg(to_dev(chan), "%s: phys_complete: %lx\n", - __func__, phys_complete); + dev_dbg(to_dev(chan), "%s: phys_complete: %llx\n", + __func__, (unsigned long long) phys_complete); list_for_each_safe(_desc, n, &ioat->used_desc) { struct ioat_desc_sw *desc; @@ -655,7 +655,7 @@ static void ioat1_cleanup(struct ioat_dma_chan *ioat) { struct ioat_chan_common *chan = &ioat->base; - unsigned long phys_complete; + dma_addr_t phys_complete; prefetch(chan->completion); @@ -701,7 +701,7 @@ mod_timer(&chan->timer, jiffies + COMPLETION_TIMEOUT); spin_unlock_bh(&ioat->desc_lock); } else if (test_bit(IOAT_COMPLETION_PENDING, &chan->state)) { - unsigned long phys_complete; + dma_addr_t phys_complete; spin_lock_bh(&ioat->desc_lock); /* if we haven't made progress and we have already --- linux-3.2.0.orig/drivers/acpi/video.c +++ linux-3.2.0/drivers/acpi/video.c @@ -73,6 +73,14 @@ module_param(brightness_switch_enabled, bool, 0644); /* + * The Default is to let the OS handle brightness autoswitching due to + * AC/battery status changes. On some laptops (MSI Wind) this doesn't + * work so we need a workaround. + */ +static int brightness_autoswitch_via_bios = 0; +module_param(brightness_autoswitch_via_bios, bool, 0644); + +/* * By default, we don't allow duplicate ACPI video bus devices * under the same VGA controller */ @@ -389,6 +397,12 @@ return 0; } +static int video_ignore_initial_backlight(const struct dmi_system_id *d) +{ + use_bios_initial_backlight = 0; + return 0; +} + static struct dmi_system_id video_dmi_table[] __initdata = { /* * Broken _BQC workaround http://bugzilla.kernel.org/show_bug.cgi?id=13121 @@ -433,6 +447,46 @@ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 7720"), }, }, + { + .callback = video_ignore_initial_backlight, + .ident = "HP Folio 13-2000", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP Folio 13 - 2000 Notebook PC"), + }, + }, + { + .callback = video_ignore_initial_backlight, + .ident = "HP Pavilion dm4", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dm4 Notebook PC"), + }, + }, + { + .callback = video_ignore_initial_backlight, + .ident = "HP Pavilion g6 Notebook PC", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion g6 Notebook PC"), + }, + }, + { + .callback = video_ignore_initial_backlight, + .ident = "HP 1000 Notebook PC", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP 1000 Notebook PC"), + }, + }, + { + .callback = video_ignore_initial_backlight, + .ident = "HP Pavilion m4", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion m4 Notebook PC"), + }, + }, {} }; @@ -1421,7 +1475,7 @@ static int acpi_video_bus_start_devices(struct acpi_video_bus *video) { - return acpi_video_bus_DOS(video, 0, 0); + return acpi_video_bus_DOS(video, 0, !brightness_autoswitch_via_bios); } static int acpi_video_bus_stop_devices(struct acpi_video_bus *video) --- linux-3.2.0.orig/drivers/acpi/processor_core.c +++ linux-3.2.0/drivers/acpi/processor_core.c @@ -173,8 +173,32 @@ apic_id = map_mat_entry(handle, type, acpi_id); if (apic_id == -1) apic_id = map_madt_entry(type, acpi_id); - if (apic_id == -1) - return apic_id; + if (apic_id == -1) { + /* + * On UP processor, there is no _MAT or MADT table. + * So above apic_id is always set to -1. + * + * BIOS may define multiple CPU handles even for UP processor. + * For example, + * + * Scope (_PR) + * { + * Processor (CPU0, 0x00, 0x00000410, 0x06) {} + * Processor (CPU1, 0x01, 0x00000410, 0x06) {} + * Processor (CPU2, 0x02, 0x00000410, 0x06) {} + * Processor (CPU3, 0x03, 0x00000410, 0x06) {} + * } + * + * Ignores apic_id and always returns 0 for the processor + * handle with acpi id 0 if nr_cpu_ids is 1. + * This should be the case if SMP tables are not found. + * Return -1 for other CPU's handle. + */ + if (nr_cpu_ids <= 1 && acpi_id == 0) + return acpi_id; + else + return apic_id; + } #ifdef CONFIG_SMP for_each_possible_cpu(i) { --- linux-3.2.0.orig/drivers/acpi/acpi_memhotplug.c +++ linux-3.2.0/drivers/acpi/acpi_memhotplug.c @@ -421,6 +421,7 @@ /* Get the range from the _CRS */ result = acpi_memory_get_device_resources(mem_device); if (result) { + device->driver_data = NULL; kfree(mem_device); return result; } --- linux-3.2.0.orig/drivers/acpi/scan.c +++ linux-3.2.0/drivers/acpi/scan.c @@ -789,8 +789,8 @@ static void acpi_bus_set_run_wake_flags(struct acpi_device *device) { struct acpi_device_id button_device_ids[] = { - {"PNP0C0D", 0}, {"PNP0C0C", 0}, + {"PNP0C0D", 0}, {"PNP0C0E", 0}, {"", 0}, }; @@ -802,6 +802,11 @@ /* Power button, Lid switch always enable wakeup */ if (!acpi_match_device_ids(device, button_device_ids)) { device->wakeup.flags.run_wake = 1; + if (!acpi_match_device_ids(device, &button_device_ids[1])) { + /* Do not use Lid/sleep button for S5 wakeup */ + if (device->wakeup.sleep_state == ACPI_STATE_S5) + device->wakeup.sleep_state = ACPI_STATE_S4; + } device_set_wakeup_capable(&device->dev, true); return; } @@ -1152,7 +1157,7 @@ acpi_add_id(device, ACPI_DOCK_HID); else if (!acpi_ibm_smbus_match(device)) acpi_add_id(device, ACPI_SMBUS_IBM_HID); - else if (!acpi_device_hid(device) && + else if (list_empty(&device->pnp.ids) && ACPI_IS_ROOT_DEVICE(device->parent)) { acpi_add_id(device, ACPI_BUS_HID); /* \_SB, LNXSYBUS */ strcpy(device->pnp.device_name, ACPI_BUS_DEVICE_NAME); --- linux-3.2.0.orig/drivers/acpi/battery.c +++ linux-3.2.0/drivers/acpi/battery.c @@ -34,6 +34,7 @@ #include #include #include +#include #ifdef CONFIG_ACPI_PROCFS_POWER #include @@ -95,6 +96,18 @@ ACPI_BATTERY_ALARM_PRESENT, ACPI_BATTERY_XINFO_PRESENT, ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY, + /* On Lenovo Thinkpad models from 2010 and 2011, the power unit + switches between mWh and mAh depending on whether the system + is running on battery or not. When mAh is the unit, most + reported values are incorrect and need to be adjusted by + 10000/design_voltage. Verified on x201, t410, t410s, and x220. + Pre-2010 and 2012 models appear to always report in mWh and + are thus unaffected (tested with t42, t61, t500, x200, x300, + and x230). Also, in mid-2012 Lenovo issued a BIOS update for + the 2011 models that fixes the issue (tested on x220 with a + post-1.29 BIOS), but as of Nov. 2012, no such update is + available for the 2010 models. */ + ACPI_BATTERY_QUIRK_THINKPAD_MAH, }; struct acpi_battery { @@ -429,6 +442,21 @@ kfree(buffer.pointer); if (test_bit(ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY, &battery->flags)) battery->full_charge_capacity = battery->design_capacity; + if (test_bit(ACPI_BATTERY_QUIRK_THINKPAD_MAH, &battery->flags) && + battery->power_unit && battery->design_voltage) { + battery->design_capacity = battery->design_capacity * + 10000 / battery->design_voltage; + battery->full_charge_capacity = battery->full_charge_capacity * + 10000 / battery->design_voltage; + battery->design_capacity_warning = + battery->design_capacity_warning * + 10000 / battery->design_voltage; + /* Curiously, design_capacity_low, unlike the rest of them, + is correct. */ + /* capacity_granularity_* equal 1 on the systems tested, so + it's impossible to tell if they would need an adjustment + or not if their values were higher. */ + } return result; } @@ -477,6 +505,11 @@ && battery->capacity_now >= 0 && battery->capacity_now <= 100) battery->capacity_now = (battery->capacity_now * battery->full_charge_capacity) / 100; + if (test_bit(ACPI_BATTERY_QUIRK_THINKPAD_MAH, &battery->flags) && + battery->power_unit && battery->design_voltage) { + battery->capacity_now = battery->capacity_now * + 10000 / battery->design_voltage; + } return result; } @@ -586,6 +619,24 @@ mutex_unlock(&battery->sysfs_lock); } +static void find_battery(const struct dmi_header *dm, void *private) +{ + struct acpi_battery *battery = (struct acpi_battery *)private; + /* Note: the hardcoded offsets below have been extracted from + the source code of dmidecode. */ + if (dm->type == DMI_ENTRY_PORTABLE_BATTERY && dm->length >= 8) { + const u8 *dmi_data = (const u8 *)(dm + 1); + int dmi_capacity = get_unaligned((const u16 *)(dmi_data + 6)); + if (dm->length >= 18) + dmi_capacity *= dmi_data[17]; + if (battery->design_capacity * battery->design_voltage / 1000 + != dmi_capacity && + battery->design_capacity * 10 == dmi_capacity) + set_bit(ACPI_BATTERY_QUIRK_THINKPAD_MAH, + &battery->flags); + } +} + /* * According to the ACPI spec, some kinds of primary batteries can * report percentage battery remaining capacity directly to OS. @@ -611,6 +662,32 @@ battery->capacity_now = (battery->capacity_now * battery->full_charge_capacity) / 100; } + + if (test_bit(ACPI_BATTERY_QUIRK_THINKPAD_MAH, &battery->flags)) + return ; + + if (battery->power_unit && dmi_name_in_vendors("LENOVO")) { + const char *s; + s = dmi_get_system_info(DMI_PRODUCT_VERSION); + if (s && !strnicmp(s, "ThinkPad", 8)) { + dmi_walk(find_battery, battery); + if (test_bit(ACPI_BATTERY_QUIRK_THINKPAD_MAH, + &battery->flags) && + battery->design_voltage) { + battery->design_capacity = + battery->design_capacity * + 10000 / battery->design_voltage; + battery->full_charge_capacity = + battery->full_charge_capacity * + 10000 / battery->design_voltage; + battery->design_capacity_warning = + battery->design_capacity_warning * + 10000 / battery->design_voltage; + battery->capacity_now = battery->capacity_now * + 10000 / battery->design_voltage; + } + } + } } static int acpi_battery_update(struct acpi_battery *battery) @@ -643,11 +720,19 @@ static void acpi_battery_refresh(struct acpi_battery *battery) { + int power_unit; + if (!battery->bat.dev) return; + power_unit = battery->power_unit; + acpi_battery_get_info(battery); - /* The battery may have changed its reporting units. */ + + if (power_unit == battery->power_unit) + return; + + /* The battery has changed its reporting units. */ sysfs_remove_battery(battery); sysfs_add_battery(battery); } @@ -968,6 +1053,18 @@ return 0; } +static LIST_HEAD(acpi_battery_domain); + +static void acpi_battery_update_async(struct acpi_device *device, async_cookie_t cookie) +{ + struct acpi_battery *battery = acpi_driver_data(device); + + acpi_battery_update(battery); + printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n", + ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device), + device->status.battery_present ? "present" : "absent"); +} + static int acpi_battery_add(struct acpi_device *device) { int result = 0; @@ -987,13 +1084,16 @@ if (ACPI_SUCCESS(acpi_get_handle(battery->device->handle, "_BIX", &handle))) set_bit(ACPI_BATTERY_XINFO_PRESENT, &battery->flags); - result = acpi_battery_update(battery); - if (result) - goto fail; + + /* Mark the battery for update at first access. */ + battery->update_time = 0; #ifdef CONFIG_ACPI_PROCFS_POWER result = acpi_battery_add_fs(device); #endif - if (result) { + if (!result) { + async_schedule_domain(acpi_battery_update_async, device, &acpi_battery_domain); + + } else { #ifdef CONFIG_ACPI_PROCFS_POWER acpi_battery_remove_fs(device); #endif @@ -1023,6 +1123,10 @@ if (!device || !acpi_driver_data(device)) return -EINVAL; + + /* Ensure all async updates are complete before freeing the battery. */ + async_synchronize_full_domain(&acpi_battery_domain); + battery = acpi_driver_data(device); unregister_pm_notifier(&battery->pm_nb); #ifdef CONFIG_ACPI_PROCFS_POWER @@ -1060,27 +1164,21 @@ }, }; -static void __init acpi_battery_init_async(void *unused, async_cookie_t cookie) +static int __init acpi_battery_init(void) { if (acpi_disabled) return; #ifdef CONFIG_ACPI_PROCFS_POWER acpi_battery_dir = acpi_lock_battery_dir(); if (!acpi_battery_dir) - return; + return -1; #endif if (acpi_bus_register_driver(&acpi_battery_driver) < 0) { #ifdef CONFIG_ACPI_PROCFS_POWER acpi_unlock_battery_dir(acpi_battery_dir); #endif - return; + return -1; } - return; -} - -static int __init acpi_battery_init(void) -{ - async_schedule(acpi_battery_init_async, NULL); return 0; } --- linux-3.2.0.orig/drivers/acpi/bus.c +++ linux-3.2.0/drivers/acpi/bus.c @@ -950,8 +950,6 @@ status = acpi_ec_ecdt_probe(); /* Ignore result. Not having an ECDT is not fatal. */ - acpi_bus_osc_support(); - status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION); if (ACPI_FAILURE(status)) { printk(KERN_ERR PREFIX "Unable to initialize ACPI objects\n"); @@ -959,6 +957,12 @@ } /* + * _OSC method may exist in module level code, + * so it must be run after ACPI_FULL_INITIALIZATION + */ + acpi_bus_osc_support(); + + /* * _PDC control method may load dynamic SSDT tables, * and we need to install the table handler before that. */ --- linux-3.2.0.orig/drivers/acpi/processor_driver.c +++ linux-3.2.0/drivers/acpi/processor_driver.c @@ -409,6 +409,7 @@ acpi_bus_generate_proc_event(device, event, 0); acpi_bus_generate_netlink_event(device->pnp.device_class, dev_name(&device->dev), event, 0); + break; default: ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Unsupported event [0x%x]\n", event)); --- linux-3.2.0.orig/drivers/acpi/ec.c +++ linux-3.2.0/drivers/acpi/ec.c @@ -71,9 +71,6 @@ #define ACPI_EC_UDELAY_GLK 1000 /* Wait 1ms max. to get global lock */ #define ACPI_EC_MSI_UDELAY 550 /* Wait 550us for MSI EC */ -#define ACPI_EC_STORM_THRESHOLD 8 /* number of false interrupts - per one transaction */ - enum { EC_FLAGS_QUERY_PENDING, /* Query is pending */ EC_FLAGS_GPE_STORM, /* GPE storm detected */ @@ -87,6 +84,15 @@ module_param(ec_delay, uint, 0644); MODULE_PARM_DESC(ec_delay, "Timeout(ms) waited until an EC command completes"); +/* + * If the number of false interrupts per one transaction exceeds + * this threshold, will think there is a GPE storm happened and + * will disable the GPE for normal transaction. + */ +static unsigned int ec_storm_threshold __read_mostly = 8; +module_param(ec_storm_threshold, uint, 0644); +MODULE_PARM_DESC(ec_storm_threshold, "Maxim false GPE numbers not considered as GPE storm"); + /* If we find an EC via the ECDT, we need to keep a ptr to its context */ /* External interfaces use first EC only, so remember */ typedef int (*acpi_ec_query_func) (void *data); @@ -211,7 +217,7 @@ static int ec_poll(struct acpi_ec *ec) { unsigned long flags; - int repeat = 2; /* number of command restarts */ + int repeat = 5; /* number of command restarts */ while (repeat--) { unsigned long delay = jiffies + msecs_to_jiffies(ec_delay); @@ -229,8 +235,6 @@ } advance_transaction(ec, acpi_ec_read_status(ec)); } while (time_before(jiffies, delay)); - if (acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF) - break; pr_debug(PREFIX "controller reset, restart transaction\n"); spin_lock_irqsave(&ec->curr_lock, flags); start_transaction(ec); @@ -319,7 +323,7 @@ msleep(1); /* It is safe to enable the GPE outside of the transaction. */ acpi_enable_gpe(NULL, ec->gpe); - } else if (t->irq_count > ACPI_EC_STORM_THRESHOLD) { + } else if (t->irq_count > ec_storm_threshold) { pr_info(PREFIX "GPE storm detected, " "transactions will use polling mode\n"); set_bit(EC_FLAGS_GPE_STORM, &ec->flags); @@ -445,6 +449,16 @@ EXPORT_SYMBOL(ec_transaction); +/* Get the handle to the EC device */ +acpi_handle ec_get_handle(void) +{ + if (!first_ec) + return NULL; + return first_ec->handle; +} + +EXPORT_SYMBOL(ec_get_handle); + void acpi_ec_block_transactions(void) { struct acpi_ec *ec = first_ec; @@ -914,6 +928,17 @@ return 0; } +/* + * Clevo M720 notebook actually works ok with IRQ mode, if we lifted + * the GPE storm threshold back to 20 + */ +static int ec_enlarge_storm_threshold(const struct dmi_system_id *id) +{ + pr_debug("Setting the EC GPE storm threshold to 20\n"); + ec_storm_threshold = 20; + return 0; +} + static struct dmi_system_id __initdata ec_dmi_table[] = { { ec_skip_dsdt_scan, "Compal JFL92", { @@ -945,10 +970,13 @@ { ec_validate_ecdt, "ASUS hardware", { DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer Inc.") }, NULL}, + { + ec_enlarge_storm_threshold, "CLEVO hardware", { + DMI_MATCH(DMI_SYS_VENDOR, "CLEVO Co."), + DMI_MATCH(DMI_PRODUCT_NAME, "M720T/M730T"),}, NULL}, {}, }; - int __init acpi_ec_ecdt_probe(void) { acpi_status status; --- linux-3.2.0.orig/drivers/acpi/sleep.c +++ linux-3.2.0/drivers/acpi/sleep.c @@ -108,6 +108,188 @@ old_suspend_ordering = true; } +static int __init init_old_suspend_ordering(const struct dmi_system_id *d) +{ + acpi_old_suspend_ordering(); + return 0; +} + +static int __init init_nvs_nosave(const struct dmi_system_id *d) +{ + acpi_nvs_nosave(); + return 0; +} + +static struct dmi_system_id __initdata acpisleep_dmi_table[] = { + { + .callback = init_old_suspend_ordering, + .ident = "Abit KN9 (nForce4 variant)", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "http://www.abit.com.tw/"), + DMI_MATCH(DMI_BOARD_NAME, "KN9 Series(NF-CK804)"), + }, + }, + { + .callback = init_old_suspend_ordering, + .ident = "HP xw4600 Workstation", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP xw4600 Workstation"), + }, + }, + { + .callback = init_old_suspend_ordering, + .ident = "Asus Pundit P1-AH2 (M2N8L motherboard)", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTek Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "M2N8L"), + }, + }, + { + .callback = init_old_suspend_ordering, + .ident = "Panasonic CF51-2L", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, + "Matsushita Electric Industrial Co.,Ltd."), + DMI_MATCH(DMI_BOARD_NAME, "CF51-2L"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Sony Vaio VGN-FW41E_H", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FW41E_H"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Sony Vaio VGN-FW21E", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FW21E"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Sony Vaio VPCEB17FX", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VPCEB17FX"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Sony Vaio VGN-SR11M", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SR11M"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Everex StepNote Series", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Everex Systems, Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Everex StepNote Series"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Sony Vaio VPCEB1Z1E", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VPCEB1Z1E"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Sony Vaio VGN-NW130D", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VGN-NW130D"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Sony Vaio VPCCW29FX", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VPCCW29FX"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Averatec AV1020-ED2", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "AVERATEC"), + DMI_MATCH(DMI_PRODUCT_NAME, "1000 Series"), + }, + }, + { + .callback = init_old_suspend_ordering, + .ident = "Asus A8N-SLI DELUXE", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "A8N-SLI DELUXE"), + }, + }, + { + .callback = init_old_suspend_ordering, + .ident = "Asus A8N-SLI Premium", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "A8N-SLI Premium"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Sony Vaio VGN-SR26GN_P", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SR26GN_P"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Sony Vaio VPCEB1S1E", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VPCEB1S1E"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Sony Vaio VGN-FW520F", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FW520F"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Asus K54C", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "K54C"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Asus K54HR", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "K54HR"), + }, + }, + {}, +}; + +static void acpi_sleep_dmi_check(void) +{ + dmi_check_system(acpisleep_dmi_table); +} + /** * acpi_pm_freeze - Disable the GPEs and suspend EC transactions. */ @@ -197,6 +379,7 @@ } #else /* !CONFIG_ACPI_SLEEP */ #define acpi_target_sleep_state ACPI_STATE_S0 +static inline void acpi_sleep_dmi_check(void) {} #endif /* CONFIG_ACPI_SLEEP */ #ifdef CONFIG_SUSPEND @@ -341,143 +524,6 @@ .end = acpi_pm_end, .recover = acpi_pm_finish, }; - -static int __init init_old_suspend_ordering(const struct dmi_system_id *d) -{ - old_suspend_ordering = true; - return 0; -} - -static int __init init_nvs_nosave(const struct dmi_system_id *d) -{ - acpi_nvs_nosave(); - return 0; -} - -static struct dmi_system_id __initdata acpisleep_dmi_table[] = { - { - .callback = init_old_suspend_ordering, - .ident = "Abit KN9 (nForce4 variant)", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "http://www.abit.com.tw/"), - DMI_MATCH(DMI_BOARD_NAME, "KN9 Series(NF-CK804)"), - }, - }, - { - .callback = init_old_suspend_ordering, - .ident = "HP xw4600 Workstation", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), - DMI_MATCH(DMI_PRODUCT_NAME, "HP xw4600 Workstation"), - }, - }, - { - .callback = init_old_suspend_ordering, - .ident = "Asus Pundit P1-AH2 (M2N8L motherboard)", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTek Computer INC."), - DMI_MATCH(DMI_BOARD_NAME, "M2N8L"), - }, - }, - { - .callback = init_old_suspend_ordering, - .ident = "Panasonic CF51-2L", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, - "Matsushita Electric Industrial Co.,Ltd."), - DMI_MATCH(DMI_BOARD_NAME, "CF51-2L"), - }, - }, - { - .callback = init_nvs_nosave, - .ident = "Sony Vaio VGN-FW21E", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), - DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FW21E"), - }, - }, - { - .callback = init_nvs_nosave, - .ident = "Sony Vaio VPCEB17FX", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), - DMI_MATCH(DMI_PRODUCT_NAME, "VPCEB17FX"), - }, - }, - { - .callback = init_nvs_nosave, - .ident = "Sony Vaio VGN-SR11M", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), - DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SR11M"), - }, - }, - { - .callback = init_nvs_nosave, - .ident = "Everex StepNote Series", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Everex Systems, Inc."), - DMI_MATCH(DMI_PRODUCT_NAME, "Everex StepNote Series"), - }, - }, - { - .callback = init_nvs_nosave, - .ident = "Sony Vaio VPCEB1Z1E", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), - DMI_MATCH(DMI_PRODUCT_NAME, "VPCEB1Z1E"), - }, - }, - { - .callback = init_nvs_nosave, - .ident = "Sony Vaio VGN-NW130D", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), - DMI_MATCH(DMI_PRODUCT_NAME, "VGN-NW130D"), - }, - }, - { - .callback = init_nvs_nosave, - .ident = "Averatec AV1020-ED2", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "AVERATEC"), - DMI_MATCH(DMI_PRODUCT_NAME, "1000 Series"), - }, - }, - { - .callback = init_old_suspend_ordering, - .ident = "Asus A8N-SLI DELUXE", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), - DMI_MATCH(DMI_BOARD_NAME, "A8N-SLI DELUXE"), - }, - }, - { - .callback = init_old_suspend_ordering, - .ident = "Asus A8N-SLI Premium", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), - DMI_MATCH(DMI_BOARD_NAME, "A8N-SLI Premium"), - }, - }, - { - .callback = init_nvs_nosave, - .ident = "Sony Vaio VGN-SR26GN_P", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), - DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SR26GN_P"), - }, - }, - { - .callback = init_nvs_nosave, - .ident = "Sony Vaio VGN-FW520F", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), - DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FW520F"), - }, - }, - {}, -}; #endif /* CONFIG_SUSPEND */ #ifdef CONFIG_HIBERNATION @@ -678,8 +724,8 @@ * can wake the system. _S0W may be valid, too. */ if (acpi_target_sleep_state == ACPI_STATE_S0 || - (device_may_wakeup(dev) && - adev->wakeup.sleep_state <= acpi_target_sleep_state)) { + (device_may_wakeup(dev) && adev->wakeup.flags.valid && + adev->wakeup.sleep_state >= acpi_target_sleep_state)) { acpi_status status; acpi_method[3] = 'W'; @@ -784,13 +830,13 @@ u8 type_a, type_b; #ifdef CONFIG_SUSPEND int i = 0; - - dmi_check_system(acpisleep_dmi_table); #endif if (acpi_disabled) return 0; + acpi_sleep_dmi_check(); + sleep_states[ACPI_STATE_S0] = 1; printk(KERN_INFO PREFIX "(supports S0"); --- linux-3.2.0.orig/drivers/acpi/numa.c +++ linux-3.2.0/drivers/acpi/numa.c @@ -45,6 +45,8 @@ static int node_to_pxm_map[MAX_NUMNODES] = { [0 ... MAX_NUMNODES - 1] = PXM_INVAL }; +unsigned char acpi_srat_revision __initdata; + int pxm_to_node(int pxm) { if (pxm < 0) @@ -255,9 +257,13 @@ static int __init acpi_parse_srat(struct acpi_table_header *table) { + struct acpi_table_srat *srat; if (!table) return -EINVAL; + srat = (struct acpi_table_srat *)table; + acpi_srat_revision = srat->header.revision; + /* Real work done in acpi_table_parse_srat below. */ return 0; --- linux-3.2.0.orig/drivers/acpi/acpi_pad.c +++ linux-3.2.0/drivers/acpi/acpi_pad.c @@ -36,6 +36,7 @@ #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator" #define ACPI_PROCESSOR_AGGREGATOR_NOTIFY 0x80 static DEFINE_MUTEX(isolated_cpus_lock); +static DEFINE_MUTEX(round_robin_lock); static unsigned long power_saving_mwait_eax; @@ -107,7 +108,7 @@ if (!alloc_cpumask_var(&tmp, GFP_KERNEL)) return; - mutex_lock(&isolated_cpus_lock); + mutex_lock(&round_robin_lock); cpumask_clear(tmp); for_each_cpu(cpu, pad_busy_cpus) cpumask_or(tmp, tmp, topology_thread_cpumask(cpu)); @@ -116,7 +117,7 @@ if (cpumask_empty(tmp)) cpumask_andnot(tmp, cpu_online_mask, pad_busy_cpus); if (cpumask_empty(tmp)) { - mutex_unlock(&isolated_cpus_lock); + mutex_unlock(&round_robin_lock); return; } for_each_cpu(cpu, tmp) { @@ -131,7 +132,7 @@ tsk_in_cpu[tsk_index] = preferred_cpu; cpumask_set_cpu(preferred_cpu, pad_busy_cpus); cpu_weight[preferred_cpu]++; - mutex_unlock(&isolated_cpus_lock); + mutex_unlock(&round_robin_lock); set_cpus_allowed_ptr(current, cpumask_of(preferred_cpu)); } --- linux-3.2.0.orig/drivers/acpi/ac.c +++ linux-3.2.0/drivers/acpi/ac.c @@ -292,7 +292,9 @@ ac->charger.properties = ac_props; ac->charger.num_properties = ARRAY_SIZE(ac_props); ac->charger.get_property = get_ac_property; - power_supply_register(&ac->device->dev, &ac->charger); + result = power_supply_register(&ac->device->dev, &ac->charger); + if (result) + goto end; printk(KERN_INFO PREFIX "%s [%s] (%s)\n", acpi_device_name(device), acpi_device_bid(device), --- linux-3.2.0.orig/drivers/acpi/video_detect.c +++ linux-3.2.0/drivers/acpi/video_detect.c @@ -132,6 +132,49 @@ return AE_OK; } +/* Force to use vendor driver when the ACPI device is known to be + * buggy */ +static int video_detect_force_vendor(const struct dmi_system_id *d) +{ + acpi_video_support |= ACPI_VIDEO_BACKLIGHT_DMI_VENDOR; + return 0; +} + +static struct dmi_system_id video_detect_dmi_table[] = { + /* On Samsung X360, the BIOS will set a flag (VDRV) if generic + * ACPI backlight device is used. This flag will definitively break + * the backlight interface (even the vendor interface) untill next + * reboot. It's why we should prevent video.ko from being used here + * and we can't rely on a later call to acpi_video_unregister(). + */ + { + .callback = video_detect_force_vendor, + .ident = "X360", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), + DMI_MATCH(DMI_PRODUCT_NAME, "X360"), + DMI_MATCH(DMI_BOARD_NAME, "X360"), + }, + }, + { + .callback = video_detect_force_vendor, + .ident = "Asus UL30VT", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "UL30VT"), + }, + }, + { + .callback = video_detect_force_vendor, + .ident = "Asus UL30A", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "UL30A"), + }, + }, + { }, +}; + /* * Returns the video capabilities of a specific ACPI graphics device * @@ -164,6 +207,8 @@ * ACPI_VIDEO_BACKLIGHT_DMI_VENDOR; *} */ + + dmi_check_system(video_detect_dmi_table); } else { status = acpi_bus_get_device(graphics_handle, &tmp_dev); if (ACPI_FAILURE(status)) { --- linux-3.2.0.orig/drivers/acpi/osl.c +++ linux-3.2.0/drivers/acpi/osl.c @@ -255,7 +255,7 @@ return acpi_rsdp; #endif - if (efi_enabled) { + if (efi_enabled(EFI_CONFIG_TABLES)) { if (efi.acpi20 != EFI_INVALID_TABLE_ADDR) return efi.acpi20; else if (efi.acpi != EFI_INVALID_TABLE_ADDR) --- linux-3.2.0.orig/drivers/acpi/processor_idle.c +++ linux-3.2.0/drivers/acpi/processor_idle.c @@ -989,6 +989,9 @@ return -EINVAL; } + if (!dev) + return -EINVAL; + dev->cpu = pr->id; if (max_cstate == 0) @@ -1175,6 +1178,7 @@ } /* Populate Updated C-state information */ + acpi_processor_get_power_info(pr); acpi_processor_setup_cpuidle_states(pr); /* Enable all cpuidle devices */ --- linux-3.2.0.orig/drivers/acpi/processor_thermal.c +++ linux-3.2.0/drivers/acpi/processor_thermal.c @@ -58,6 +58,27 @@ static DEFINE_PER_CPU(unsigned int, cpufreq_thermal_reduction_pctg); static unsigned int acpi_thermal_cpufreq_is_init = 0; +#define reduction_pctg(cpu) \ + per_cpu(cpufreq_thermal_reduction_pctg, phys_package_first_cpu(cpu)) + +/* + * Emulate "per package data" using per cpu data (which should really be + * provided elsewhere) + * + * Note we can lose a CPU on cpu hotunplug, in this case we forget the state + * temporarily. Fortunately that's not a big issue here (I hope) + */ +static int phys_package_first_cpu(int cpu) +{ + int i; + int id = topology_physical_package_id(cpu); + + for_each_online_cpu(i) + if (topology_physical_package_id(i) == id) + return i; + return 0; +} + static int cpu_has_cpufreq(unsigned int cpu) { struct cpufreq_policy policy; @@ -77,7 +98,7 @@ max_freq = ( policy->cpuinfo.max_freq * - (100 - per_cpu(cpufreq_thermal_reduction_pctg, policy->cpu) * 20) + (100 - reduction_pctg(policy->cpu) * 20) ) / 100; cpufreq_verify_within_limits(policy, 0, max_freq); @@ -103,16 +124,28 @@ if (!cpu_has_cpufreq(cpu)) return 0; - return per_cpu(cpufreq_thermal_reduction_pctg, cpu); + return reduction_pctg(cpu); } static int cpufreq_set_cur_state(unsigned int cpu, int state) { + int i; + if (!cpu_has_cpufreq(cpu)) return 0; - per_cpu(cpufreq_thermal_reduction_pctg, cpu) = state; - cpufreq_update_policy(cpu); + reduction_pctg(cpu) = state; + + /* + * Update all the CPUs in the same package because they all + * contribute to the temperature and often share the same + * frequency. + */ + for_each_online_cpu(i) { + if (topology_physical_package_id(i) == + topology_physical_package_id(cpu)) + cpufreq_update_policy(i); + } return 0; } @@ -120,10 +153,6 @@ { int i; - for (i = 0; i < nr_cpu_ids; i++) - if (cpu_present(i)) - per_cpu(cpufreq_thermal_reduction_pctg, i) = 0; - i = cpufreq_register_notifier(&acpi_thermal_cpufreq_notifier_block, CPUFREQ_POLICY_NOTIFIER); if (!i) --- linux-3.2.0.orig/drivers/acpi/pci_root.c +++ linux-3.2.0/drivers/acpi/pci_root.c @@ -247,8 +247,8 @@ *control &= OSC_PCI_CONTROL_MASKS; capbuf[OSC_CONTROL_TYPE] = *control | root->osc_control_set; } else { - /* Run _OSC query for all possible controls. */ - capbuf[OSC_CONTROL_TYPE] = OSC_PCI_CONTROL_MASKS; + /* Run _OSC query only with existing controls. */ + capbuf[OSC_CONTROL_TYPE] = root->osc_control_set; } status = acpi_pci_run_osc(root->device->handle, capbuf, &result); @@ -596,6 +596,13 @@ if (ACPI_SUCCESS(status)) { dev_info(root->bus->bridge, "ACPI _OSC control (0x%02x) granted\n", flags); + if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_ASPM) { + /* + * We have ASPM control, but the FADT indicates + * that it's unsupported. Clear it. + */ + pcie_clear_aspm(root->bus); + } } else { dev_info(root->bus->bridge, "ACPI _OSC request failed (%s), " --- linux-3.2.0.orig/drivers/acpi/sysfs.c +++ linux-3.2.0/drivers/acpi/sysfs.c @@ -173,7 +173,7 @@ { int result = 0; - if (!strncmp(val, "enable", strlen("enable") - 1)) { + if (!strncmp(val, "enable", strlen("enable"))) { result = acpi_debug_trace(trace_method_name, trace_debug_level, trace_debug_layer, 0); if (result) @@ -181,7 +181,7 @@ goto exit; } - if (!strncmp(val, "disable", strlen("disable") - 1)) { + if (!strncmp(val, "disable", strlen("disable"))) { int name = 0; result = acpi_debug_trace((char *)&name, trace_debug_level, trace_debug_layer, 0); --- linux-3.2.0.orig/drivers/acpi/acpica/exfldio.c +++ linux-3.2.0/drivers/acpi/acpica/exfldio.c @@ -702,7 +702,19 @@ if ((obj_desc->common_field.start_field_bit_offset == 0) && (obj_desc->common_field.bit_length == access_bit_width)) { - status = acpi_ex_field_datum_io(obj_desc, 0, buffer, ACPI_READ); + if (buffer_length >= sizeof(u64)) { + status = + acpi_ex_field_datum_io(obj_desc, 0, buffer, + ACPI_READ); + } else { + /* Use raw_datum (u64) to handle buffers < 64 bits */ + + status = + acpi_ex_field_datum_io(obj_desc, 0, &raw_datum, + ACPI_READ); + ACPI_MEMCPY(buffer, &raw_datum, buffer_length); + } + return_ACPI_STATUS(status); } --- linux-3.2.0.orig/drivers/acpi/acpica/acobject.h +++ linux-3.2.0/drivers/acpi/acpica/acobject.h @@ -358,6 +358,7 @@ */ struct acpi_object_extra { ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *method_REG; /* _REG method for this region (if any) */ + struct acpi_namespace_node *scope_node; void *region_context; /* Region-specific data */ u8 *aml_start; u32 aml_length; --- linux-3.2.0.orig/drivers/acpi/acpica/excreate.c +++ linux-3.2.0/drivers/acpi/acpica/excreate.c @@ -330,6 +330,12 @@ region_obj2 = obj_desc->common.next_object; region_obj2->extra.aml_start = aml_start; region_obj2->extra.aml_length = aml_length; + if (walk_state->scope_info) { + region_obj2->extra.scope_node = + walk_state->scope_info->scope.node; + } else { + region_obj2->extra.scope_node = node; + } /* Init the region from the operands */ --- linux-3.2.0.orig/drivers/acpi/acpica/dsargs.c +++ linux-3.2.0/drivers/acpi/acpica/dsargs.c @@ -384,8 +384,32 @@ /* Execute the argument AML */ - status = acpi_ds_execute_arguments(node, node->parent, + status = acpi_ds_execute_arguments(node, extra_desc->extra.scope_node, extra_desc->extra.aml_length, extra_desc->extra.aml_start); + if (ACPI_FAILURE(status)) { + return_ACPI_STATUS(status); + } + + /* Validate the region address/length via the host OS */ + + status = acpi_os_validate_address(obj_desc->region.space_id, + obj_desc->region.address, + (acpi_size) obj_desc->region.length, + acpi_ut_get_node_name(node)); + + if (ACPI_FAILURE(status)) { + /* + * Invalid address/length. We will emit an error message and mark + * the region as invalid, so that it will cause an additional error if + * it is ever used. Then return AE_OK. + */ + ACPI_EXCEPTION((AE_INFO, status, + "During address validation of OpRegion [%4.4s]", + node->name.ascii)); + obj_desc->common.flags |= AOPOBJ_INVALID; + status = AE_OK; + } + return_ACPI_STATUS(status); } --- linux-3.2.0.orig/drivers/acpi/acpica/tbfadt.c +++ linux-3.2.0/drivers/acpi/acpica/tbfadt.c @@ -350,10 +350,6 @@ u32 address32; u32 i; - /* Update the local FADT table header length */ - - acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt); - /* * Expand the 32-bit FACS and DSDT addresses to 64-bit as necessary. * Later code will always use the X 64-bit field. Also, check for an @@ -395,6 +391,10 @@ acpi_gbl_FADT.boot_flags = 0; } + /* Update the local FADT table header length */ + + acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt); + /* * Expand the ACPI 1.0 32-bit addresses to the ACPI 2.0 64-bit "X" * generic address structures as necessary. Later code will always use --- linux-3.2.0.orig/drivers/acpi/acpica/tbxface.c +++ linux-3.2.0/drivers/acpi/acpica/tbxface.c @@ -436,6 +436,7 @@ return (AE_NOT_FOUND); } +ACPI_EXPORT_SYMBOL(acpi_get_table_with_size) acpi_status acpi_get_table(char *signature, --- linux-3.2.0.orig/drivers/bcma/driver_chipcommon_pmu.c +++ linux-3.2.0/drivers/bcma/driver_chipcommon_pmu.c @@ -138,7 +138,9 @@ bcma_chipco_chipctl_maskset(cc, 0, ~0, 0x7); break; case 0x4331: - /* BCM4331 workaround is SPROM-related, we put it in sprom.c */ + case 43431: + /* Ext PA lines must be enabled for tx on BCM4331 */ + bcma_chipco_bcm4331_ext_pa_lines_ctl(cc, true); break; case 43224: if (bus->chipinfo.rev == 0) { --- linux-3.2.0.orig/drivers/bcma/main.c +++ linux-3.2.0/drivers/bcma/main.c @@ -124,9 +124,10 @@ static void bcma_unregister_cores(struct bcma_bus *bus) { - struct bcma_device *core; + struct bcma_device *core, *tmp; - list_for_each_entry(core, &bus->cores, list) { + list_for_each_entry_safe(core, tmp, &bus->cores, list) { + list_del(&core->list); if (core->dev_registered) device_unregister(&core->dev); } @@ -240,6 +241,22 @@ return 0; } +#ifdef CONFIG_PM +int bcma_bus_resume(struct bcma_bus *bus) +{ + struct bcma_device *core; + + /* Init CC core */ + core = bcma_find_core(bus, BCMA_CORE_CHIPCOMMON); + if (core) { + bus->drv_cc.setup_done = false; + bcma_core_chipcommon_init(&bus->drv_cc); + } + + return 0; +} +#endif + int __bcma_driver_register(struct bcma_driver *drv, struct module *owner) { drv->drv.name = drv->name; --- linux-3.2.0.orig/drivers/bcma/driver_mips.c +++ linux-3.2.0/drivers/bcma/driver_mips.c @@ -115,7 +115,7 @@ bcma_read32(mdev, BCMA_MIPS_MIPS74K_INTMASK(0)) & ~(1 << irqflag)); else - bcma_write32(mdev, BCMA_MIPS_MIPS74K_INTMASK(irq), 0); + bcma_write32(mdev, BCMA_MIPS_MIPS74K_INTMASK(oldirq), 0); /* assign the new one */ if (irq == 0) { --- linux-3.2.0.orig/drivers/bcma/host_pci.c +++ linux-3.2.0/drivers/bcma/host_pci.c @@ -224,6 +224,44 @@ pci_set_drvdata(dev, NULL); } +#ifdef CONFIG_PM +static int bcma_host_pci_suspend(struct pci_dev *dev, pm_message_t state) +{ + struct bcma_bus *bus = pci_get_drvdata(dev); + + /* Host specific */ + pci_save_state(dev); + pci_disable_device(dev); + pci_set_power_state(dev, pci_choose_state(dev, state)); + + bus->mapped_core = NULL; + return 0; +} + +static int bcma_host_pci_resume(struct pci_dev *dev) +{ + struct bcma_bus *bus = pci_get_drvdata(dev); + int err; + + /* Host specific */ + pci_set_power_state(dev, 0); + err = pci_enable_device(dev); + if (err) + return err; + pci_restore_state(dev); + + /* Bus specific */ + err = bcma_bus_resume(bus); + if (err) + return err; + + return 0; +} +#else /* CONFIG_PM */ +# define bcma_host_pci_suspend NULL +# define bcma_host_pci_resume NULL +#endif /* CONFIG_PM */ + static DEFINE_PCI_DEVICE_TABLE(bcma_pci_bridge_tbl) = { { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x0576) }, { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4331) }, @@ -239,6 +277,8 @@ .id_table = bcma_pci_bridge_tbl, .probe = bcma_host_pci_probe, .remove = bcma_host_pci_remove, + .suspend = bcma_host_pci_suspend, + .resume = bcma_host_pci_resume, }; int __init bcma_host_pci_init(void) --- linux-3.2.0.orig/drivers/bcma/bcma_private.h +++ linux-3.2.0/drivers/bcma/bcma_private.h @@ -18,6 +18,9 @@ int __init bcma_bus_early_register(struct bcma_bus *bus, struct bcma_device *core_cc, struct bcma_device *core_mips); +#ifdef CONFIG_PM +int bcma_bus_resume(struct bcma_bus *bus); +#endif /* scan.c */ int bcma_bus_scan(struct bcma_bus *bus); --- linux-3.2.0.orig/drivers/bcma/sprom.c +++ linux-3.2.0/drivers/bcma/sprom.c @@ -161,7 +161,7 @@ if (!sprom) return -ENOMEM; - if (bus->chipinfo.id == 0x4331) + if (bus->chipinfo.id == 0x4331 || bus->chipinfo.id == 43431) bcma_chipco_bcm4331_ext_pa_lines_ctl(&bus->drv_cc, false); /* Most cards have SPROM moved by additional offset 0x30 (48 dwords). @@ -171,7 +171,7 @@ BCMA_CC_SPROM_PCIE6; bcma_sprom_read(bus, offset, sprom); - if (bus->chipinfo.id == 0x4331) + if (bus->chipinfo.id == 0x4331 || bus->chipinfo.id == 43431) bcma_chipco_bcm4331_ext_pa_lines_ctl(&bus->drv_cc, true); err = bcma_sprom_valid(sprom); --- linux-3.2.0.orig/drivers/watchdog/hpwdt.c +++ linux-3.2.0/drivers/watchdog/hpwdt.c @@ -231,7 +231,7 @@ cmn_regs.u1.reax = CRU_BIOS_SIGNATURE_VALUE; - set_memory_x((unsigned long)bios32_entrypoint, (2 * PAGE_SIZE)); + set_memory_x((unsigned long)bios32_map, 2); asminline_call(&cmn_regs, bios32_entrypoint); if (cmn_regs.u1.ral != 0) { @@ -250,7 +250,8 @@ cru_rom_addr = ioremap(cru_physical_address, cru_length); if (cru_rom_addr) { - set_memory_x((unsigned long)cru_rom_addr, cru_length); + set_memory_x((unsigned long)cru_rom_addr & PAGE_MASK, + (cru_length + PAGE_SIZE - 1) >> PAGE_SHIFT); retval = 0; } } @@ -812,6 +813,9 @@ hpwdt_timer_reg = pci_mem_addr + 0x70; hpwdt_timer_con = pci_mem_addr + 0x72; + /* Make sure that timer is disabled until /dev/watchdog is opened */ + hpwdt_stop(); + /* Make sure that we have a valid soft_margin */ if (hpwdt_change_timer(soft_margin)) hpwdt_change_timer(DEFAULT_MARGIN); --- linux-3.2.0.orig/drivers/watchdog/iTCO_wdt.c +++ linux-3.2.0/drivers/watchdog/iTCO_wdt.c @@ -36,6 +36,7 @@ * document number TBD : Patsburg (PBG) * document number TBD : DH89xxCC * document number TBD : Panther Point + * document number TBD : Lynx Point */ /* @@ -126,6 +127,7 @@ TCO_PBG, /* Patsburg */ TCO_DH89XXCC, /* DH89xxCC */ TCO_PPT, /* Panther Point */ + TCO_LPT, /* Lynx Point */ }; static struct { @@ -189,6 +191,7 @@ {"Patsburg", 2}, {"DH89xxCC", 2}, {"Panther Point", 2}, + {"Lynx Point", 2}, {NULL, 0} }; @@ -331,6 +334,38 @@ { PCI_VDEVICE(INTEL, 0x1e5d), TCO_PPT}, { PCI_VDEVICE(INTEL, 0x1e5e), TCO_PPT}, { PCI_VDEVICE(INTEL, 0x1e5f), TCO_PPT}, + { PCI_VDEVICE(INTEL, 0x8c40), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c41), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c42), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c43), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c44), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c45), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c46), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c47), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c48), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c49), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c4a), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c4b), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c4c), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c4d), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c4e), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c4f), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c50), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c51), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c52), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c53), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c54), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c55), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c56), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c57), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c58), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c59), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c5a), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c5b), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c5c), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c5d), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c5e), TCO_LPT}, + { PCI_VDEVICE(INTEL, 0x8c5f), TCO_LPT}, { 0, }, /* End of list */ }; MODULE_DEVICE_TABLE(pci, iTCO_wdt_pci_tbl); --- linux-3.2.0.orig/drivers/net/macvtap.c +++ linux-3.2.0/drivers/net/macvtap.c @@ -504,10 +504,11 @@ if (copy > size) { ++from; --count; - } + offset = 0; + } else + offset += size; copy -= size; offset1 += size; - offset = 0; } if (len == offset1) @@ -517,24 +518,31 @@ struct page *page[MAX_SKB_FRAGS]; int num_pages; unsigned long base; + unsigned long truesize; - len = from->iov_len - offset1; + len = from->iov_len - offset; if (!len) { - offset1 = 0; + offset = 0; ++from; continue; } - base = (unsigned long)from->iov_base + offset1; + base = (unsigned long)from->iov_base + offset; size = ((base & ~PAGE_MASK) + len + ~PAGE_MASK) >> PAGE_SHIFT; + if (i + size > MAX_SKB_FRAGS) + return -EMSGSIZE; num_pages = get_user_pages_fast(base, size, 0, &page[i]); - if ((num_pages != size) || - (num_pages > MAX_SKB_FRAGS - skb_shinfo(skb)->nr_frags)) - /* put_page is in skb free */ + if (num_pages != size) { + int j; + + for (j = 0; j < num_pages; j++) + put_page(page[i + j]); return -EFAULT; + } + truesize = size * PAGE_SIZE; skb->data_len += len; skb->len += len; - skb->truesize += len; - atomic_add(len, &skb->sk->sk_wmem_alloc); + skb->truesize += truesize; + atomic_add(truesize, &skb->sk->sk_wmem_alloc); while (len) { int off = base & ~PAGE_MASK; int size = min_t(int, len, PAGE_SIZE - off); @@ -545,7 +553,7 @@ len -= size; i++; } - offset1 = 0; + offset = 0; ++from; } return 0; @@ -645,8 +653,9 @@ int err; struct virtio_net_hdr vnet_hdr = { 0 }; int vnet_hdr_len = 0; - int copylen; + int copylen = 0; bool zerocopy = false; + size_t linear; if (q->flags & IFF_VNET_HDR) { vnet_hdr_len = q->vnet_hdr_sz; @@ -674,29 +683,47 @@ if (unlikely(len < ETH_HLEN)) goto err; + err = -EMSGSIZE; + if (unlikely(count > UIO_MAXIOV)) + goto err; + if (m && m->msg_control && sock_flag(&q->sk, SOCK_ZEROCOPY)) zerocopy = true; if (zerocopy) { + /* Userspace may produce vectors with count greater than + * MAX_SKB_FRAGS, so we need to linearize parts of the skb + * to let the rest of data to be fit in the frags. + */ + if (count > MAX_SKB_FRAGS) { + copylen = iov_length(iv, count - MAX_SKB_FRAGS); + if (copylen < vnet_hdr_len) + copylen = 0; + else + copylen -= vnet_hdr_len; + } /* There are 256 bytes to be copied in skb, so there is enough * room for skb expand head in case it is used. * The rest buffer is mapped from userspace. */ - copylen = vnet_hdr.hdr_len; + if (copylen < vnet_hdr.hdr_len) + copylen = vnet_hdr.hdr_len; if (!copylen) copylen = GOODCOPY_LEN; - } else + linear = copylen; + } else { copylen = len; + linear = vnet_hdr.hdr_len; + } skb = macvtap_alloc_skb(&q->sk, NET_IP_ALIGN, copylen, - vnet_hdr.hdr_len, noblock, &err); + linear, noblock, &err); if (!skb) goto err; - if (zerocopy) { + if (zerocopy) err = zerocopy_sg_from_iovec(skb, iv, vnet_hdr_len, count); - skb_shinfo(skb)->tx_flags |= SKBTX_DEV_ZEROCOPY; - } else + else err = skb_copy_datagram_from_iovec(skb, 0, iv, vnet_hdr_len, len); if (err) @@ -715,8 +742,10 @@ rcu_read_lock_bh(); vlan = rcu_dereference_bh(q->vlan); /* copy skb_ubuf_info for callback when skb has no error */ - if (zerocopy) + if (zerocopy) { skb_shinfo(skb)->destructor_arg = m->msg_control; + skb_shinfo(skb)->tx_flags |= SKBTX_DEV_ZEROCOPY; + } if (vlan) macvlan_start_xmit(skb, vlan->dev); else --- linux-3.2.0.orig/drivers/net/Kconfig +++ linux-3.2.0/drivers/net/Kconfig @@ -241,6 +241,8 @@ source "drivers/net/caif/Kconfig" +source "drivers/net/dsa/Kconfig" + source "drivers/net/ethernet/Kconfig" source "drivers/net/fddi/Kconfig" @@ -338,4 +340,6 @@ To compile this driver as a module, choose M here: the module will be called vmxnet3. +source "drivers/net/hyperv/Kconfig" + endif # NETDEVICES --- linux-3.2.0.orig/drivers/net/veth.c +++ linux-3.2.0/drivers/net/veth.c @@ -423,7 +423,9 @@ unregister_netdevice_queue(peer, head); } -static const struct nla_policy veth_policy[VETH_INFO_MAX + 1]; +static const struct nla_policy veth_policy[VETH_INFO_MAX + 1] = { + [VETH_INFO_PEER] = { .len = sizeof(struct ifinfomsg) }, +}; static struct rtnl_link_ops veth_link_ops = { .kind = DRV_NAME, --- linux-3.2.0.orig/drivers/net/Makefile +++ linux-3.2.0/drivers/net/Makefile @@ -29,6 +29,7 @@ obj-$(CONFIG_CAIF) += caif/ obj-$(CONFIG_CAN) += can/ obj-$(CONFIG_ETRAX_ETHERNET) += cris/ +obj-$(CONFIG_NET_DSA) += dsa/ obj-$(CONFIG_ETHERNET) += ethernet/ obj-$(CONFIG_FDDI) += fddi/ obj-$(CONFIG_HIPPI) += hippi/ @@ -66,3 +67,5 @@ obj-$(CONFIG_USB_ZD1201) += usb/ obj-$(CONFIG_USB_IPHETH) += usb/ obj-$(CONFIG_USB_CDC_PHONET) += usb/ + +obj-$(CONFIG_HYPERV_NET) += hyperv/ --- linux-3.2.0.orig/drivers/net/tun.c +++ linux-3.2.0/drivers/net/tun.c @@ -417,6 +417,8 @@ * for indefinite time. */ skb_orphan(skb); + nf_reset(skb); + /* Enqueue packet */ skb_queue_tail(&tun->socket.sk->sk_receive_queue, skb); @@ -1243,10 +1245,12 @@ int vnet_hdr_sz; int ret; - if (cmd == TUNSETIFF || _IOC_TYPE(cmd) == 0x89) + if (cmd == TUNSETIFF || _IOC_TYPE(cmd) == 0x89) { if (copy_from_user(&ifr, argp, ifreq_len)) return -EFAULT; - + } else { + memset(&ifr, 0, sizeof(ifr)); + } if (cmd == TUNGETFEATURES) { /* Currently this just means: "what IFF flags are valid?". * This is needed because we never checked for invalid flags on --- linux-3.2.0.orig/drivers/net/dummy.c +++ linux-3.2.0/drivers/net/dummy.c @@ -37,6 +37,7 @@ #include #include #include +#include static int numdummies = 1; @@ -106,14 +107,14 @@ return 0; } -static void dummy_dev_free(struct net_device *dev) +static void dummy_dev_uninit(struct net_device *dev) { free_percpu(dev->dstats); - free_netdev(dev); } static const struct net_device_ops dummy_netdev_ops = { .ndo_init = dummy_dev_init, + .ndo_uninit = dummy_dev_uninit, .ndo_start_xmit = dummy_xmit, .ndo_validate_addr = eth_validate_addr, .ndo_set_rx_mode = set_multicast_list, @@ -127,7 +128,7 @@ /* Initialize the device structure. */ dev->netdev_ops = &dummy_netdev_ops; - dev->destructor = dummy_dev_free; + dev->destructor = free_netdev; /* Fill in device structure with ethernet-generic values. */ dev->tx_queue_len = 0; @@ -185,11 +186,17 @@ rtnl_lock(); err = __rtnl_link_register(&dummy_link_ops); + if (err < 0) + goto out; - for (i = 0; i < numdummies && !err; i++) + for (i = 0; i < numdummies && !err; i++) { err = dummy_init_one(); + cond_resched(); + } if (err < 0) __rtnl_link_unregister(&dummy_link_ops); + +out: rtnl_unlock(); return err; --- linux-3.2.0.orig/drivers/net/xen-netfront.c +++ linux-3.2.0/drivers/net/xen-netfront.c @@ -36,7 +36,7 @@ #include #include #include -#include +#include #include #include #include @@ -490,6 +490,16 @@ unsigned int offset = offset_in_page(data); unsigned int len = skb_headlen(skb); + /* If skb->len is too big for wire format, drop skb and alert + * user about misconfiguration. + */ + if (unlikely(skb->len > XEN_NETIF_MAX_TX_SIZE)) { + net_alert_ratelimited( + "xennet: skb->len = %u, too big for wire format\n", + skb->len); + goto drop; + } + frags += DIV_ROUND_UP(offset + len, PAGE_SIZE); if (unlikely(frags > MAX_SKB_FRAGS + 1)) { printk(KERN_ALERT "xennet: skb rides the rocket: %d frags\n", @@ -1043,7 +1053,8 @@ static int xennet_change_mtu(struct net_device *dev, int mtu) { - int max = xennet_can_sg(dev) ? 65535 - ETH_HLEN : ETH_DATA_LEN; + int max = xennet_can_sg(dev) ? + XEN_NETIF_MAX_TX_SIZE - MAX_TCP_HEADER : ETH_DATA_LEN; if (mtu > max) return -EINVAL; @@ -1318,6 +1329,8 @@ SET_ETHTOOL_OPS(netdev, &xennet_ethtool_ops); SET_NETDEV_DEV(netdev, &dev->dev); + netif_set_gso_max_size(netdev, XEN_NETIF_MAX_TX_SIZE - MAX_TCP_HEADER); + np->netdev = netdev; netif_carrier_off(netdev); @@ -1707,7 +1720,6 @@ case XenbusStateInitialised: case XenbusStateReconfiguring: case XenbusStateReconfigured: - case XenbusStateConnected: case XenbusStateUnknown: case XenbusStateClosed: break; @@ -1718,6 +1730,9 @@ if (xennet_connect(netdev) != 0) break; xenbus_switch_state(dev, XenbusStateConnected); + break; + + case XenbusStateConnected: netif_notify_peers(netdev); break; @@ -1922,14 +1937,14 @@ dev_dbg(&dev->dev, "%s\n", dev->nodename); - unregister_netdev(info->netdev); - xennet_disconnect_backend(info); - del_timer_sync(&info->rx_refill_timer); - xennet_sysfs_delif(info->netdev); + unregister_netdev(info->netdev); + + del_timer_sync(&info->rx_refill_timer); + free_percpu(info->stats); free_netdev(info->netdev); --- linux-3.2.0.orig/drivers/net/netconsole.c +++ linux-3.2.0/drivers/net/netconsole.c @@ -630,6 +630,7 @@ goto done; spin_lock_irqsave(&target_list_lock, flags); +restart: list_for_each_entry(nt, &target_list, list) { netconsole_target_get(nt); if (nt->np.dev == dev) { @@ -642,21 +643,17 @@ case NETDEV_UNREGISTER: /* * rtnl_lock already held + * we might sleep in __netpoll_cleanup() */ - if (nt->np.dev) { - spin_unlock_irqrestore( - &target_list_lock, - flags); - __netpoll_cleanup(&nt->np); - spin_lock_irqsave(&target_list_lock, - flags); - dev_put(nt->np.dev); - nt->np.dev = NULL; - netconsole_target_put(nt); - } + spin_unlock_irqrestore(&target_list_lock, flags); + __netpoll_cleanup(&nt->np); + spin_lock_irqsave(&target_list_lock, flags); + dev_put(nt->np.dev); + nt->np.dev = NULL; nt->enabled = 0; stopped = true; - break; + netconsole_target_put(nt); + goto restart; } } netconsole_target_put(nt); --- linux-3.2.0.orig/drivers/net/loopback.c +++ linux-3.2.0/drivers/net/loopback.c @@ -78,6 +78,11 @@ skb_orphan(skb); + /* Before queueing this packet to netif_rx(), + * make sure dst is refcounted. + */ + skb_dst_force(skb); + skb->protocol = eth_type_trans(skb, dev); /* it's OK to use per_cpu_ptr() because BHs are off */ --- linux-3.2.0.orig/drivers/net/rionet.c +++ linux-3.2.0/drivers/net/rionet.c @@ -79,6 +79,7 @@ * on system trade-offs. */ static struct rio_dev **rionet_active; +static int nact; /* total number of active rionet peers */ #define is_rionet_capable(src_ops, dst_ops) \ ((src_ops & RIO_SRC_OPS_DATA_MSG) && \ @@ -175,6 +176,7 @@ struct ethhdr *eth = (struct ethhdr *)skb->data; u16 destid; unsigned long flags; + int add_num = 1; local_irq_save(flags); if (!spin_trylock(&rnet->tx_lock)) { @@ -182,7 +184,10 @@ return NETDEV_TX_LOCKED; } - if ((rnet->tx_cnt + 1) > RIONET_TX_RING_SIZE) { + if (is_multicast_ether_addr(eth->h_dest)) + add_num = nact; + + if ((rnet->tx_cnt + add_num) > RIONET_TX_RING_SIZE) { netif_stop_queue(ndev); spin_unlock_irqrestore(&rnet->tx_lock, flags); printk(KERN_ERR "%s: BUG! Tx Ring full when queue awake!\n", @@ -191,11 +196,16 @@ } if (is_multicast_ether_addr(eth->h_dest)) { + int count = 0; for (i = 0; i < RIO_MAX_ROUTE_ENTRIES(rnet->mport->sys_size); i++) - if (rionet_active[i]) + if (rionet_active[i]) { rionet_queue_tx_msg(skb, ndev, rionet_active[i]); + if (count) + atomic_inc(&skb->users); + count++; + } } else if (RIONET_MAC_MATCH(eth->h_dest)) { destid = RIONET_GET_DESTID(eth->h_dest); if (rionet_active[destid]) @@ -220,14 +230,17 @@ if (info == RIONET_DOORBELL_JOIN) { if (!rionet_active[sid]) { list_for_each_entry(peer, &rionet_peers, node) { - if (peer->rdev->destid == sid) + if (peer->rdev->destid == sid) { rionet_active[sid] = peer->rdev; + nact++; + } } rio_mport_send_doorbell(mport, sid, RIONET_DOORBELL_JOIN); } } else if (info == RIONET_DOORBELL_LEAVE) { rionet_active[sid] = NULL; + nact--; } else { if (netif_msg_intr(rnet)) printk(KERN_WARNING "%s: unhandled doorbell\n", @@ -524,6 +537,7 @@ rc = rionet_setup_netdev(rdev->net->hport, ndev); rionet_check = 1; + nact = 0; } /* --- linux-3.2.0.orig/drivers/net/macvlan.c +++ linux-3.2.0/drivers/net/macvlan.c @@ -172,6 +172,7 @@ skb = ip_check_defrag(skb, IP_DEFRAG_MACVLAN); if (!skb) return RX_HANDLER_CONSUMED; + eth = eth_hdr(skb); src = macvlan_hash_lookup(port, eth->h_source); if (!src) /* frame comes from an external address */ @@ -203,7 +204,8 @@ } if (port->passthru) - vlan = list_first_entry(&port->vlans, struct macvlan_dev, list); + vlan = list_first_or_null_rcu(&port->vlans, + struct macvlan_dev, list); else vlan = macvlan_hash_lookup(port, eth->h_dest); if (vlan == NULL) @@ -257,7 +259,7 @@ xmit_world: skb->ip_summed = ip_summed; - skb_set_dev(skb, vlan->lowerdev); + skb->dev = vlan->lowerdev; return dev_queue_xmit(skb); } @@ -584,6 +586,7 @@ ether_setup(dev); dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING); + dev->priv_flags |= IFF_UNICAST_FLT; dev->netdev_ops = &macvlan_netdev_ops; dev->destructor = free_netdev; dev->header_ops = &macvlan_hard_header_ops, @@ -723,7 +726,7 @@ if (err < 0) goto destroy_port; - list_add_tail(&vlan->list, &port->vlans); + list_add_tail_rcu(&vlan->list, &port->vlans); netif_stacked_transfer_operstate(lowerdev, dev); return 0; @@ -749,7 +752,7 @@ { struct macvlan_dev *vlan = netdev_priv(dev); - list_del(&vlan->list); + list_del_rcu(&vlan->list); unregister_netdevice_queue(dev, head); } EXPORT_SYMBOL_GPL(macvlan_dellink); --- linux-3.2.0.orig/drivers/net/ifb.c +++ linux-3.2.0/drivers/net/ifb.c @@ -36,6 +36,7 @@ #include #include #include +#include #define TX_Q_LIMIT 32 struct ifb_private { @@ -290,11 +291,17 @@ rtnl_lock(); err = __rtnl_link_register(&ifb_link_ops); + if (err < 0) + goto out; - for (i = 0; i < numifbs && !err; i++) + for (i = 0; i < numifbs && !err; i++) { err = ifb_init_one(i); + cond_resched(); + } if (err) __rtnl_link_unregister(&ifb_link_ops); + +out: rtnl_unlock(); return err; --- linux-3.2.0.orig/drivers/net/virtio_net.c +++ linux-3.2.0/drivers/net/virtio_net.c @@ -508,7 +508,7 @@ { struct virtnet_info *vi = container_of(napi, struct virtnet_info, napi); void *buf; - unsigned int len, received = 0; + unsigned int r, len, received = 0; again: while (received < budget && @@ -525,8 +525,9 @@ /* Out of packets? */ if (received < budget) { + r = virtqueue_enable_cb_prepare(vi->rvq); napi_complete(napi); - if (unlikely(!virtqueue_enable_cb(vi->rvq)) && + if (unlikely(virtqueue_poll(vi->rvq, r)) && napi_schedule_prep(napi)) { virtqueue_disable_cb(vi->rvq); __napi_schedule(napi); --- linux-3.2.0.orig/drivers/net/phy/icplus.c +++ linux-3.2.0/drivers/net/phy/icplus.c @@ -150,7 +150,8 @@ /* Enable Auto Power Saving mode */ c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS); c |= IP101A_APS_ON; - return c; + + return phy_write(phydev, IP10XX_SPEC_CTRL_STATUS, c); } static int ip175c_read_status(struct phy_device *phydev) --- linux-3.2.0.orig/drivers/net/usb/cdc_eem.c +++ linux-3.2.0/drivers/net/usb/cdc_eem.c @@ -93,6 +93,7 @@ /* no jumbogram (16K) support for now */ dev->net->hard_header_len += EEM_HEAD + ETH_FCS_LEN; + dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len; return 0; } --- linux-3.2.0.orig/drivers/net/usb/sierra_net.c +++ linux-3.2.0/drivers/net/usb/sierra_net.c @@ -678,7 +678,7 @@ return -EIO; } - *datap = *attrdata; + *datap = le16_to_cpu(*attrdata); kfree(attrdata); return result; @@ -943,7 +943,7 @@ } static const u8 sierra_net_ifnum_list[] = { 7, 10, 11 }; -static const struct sierra_net_info_data sierra_net_info_data_68A3 = { +static const struct sierra_net_info_data sierra_net_info_data_direct_ip = { .rx_urb_size = 8 * 1024, .whitelist = { .infolen = ARRAY_SIZE(sierra_net_ifnum_list), @@ -951,7 +951,7 @@ } }; -static const struct driver_info sierra_net_info_68A3 = { +static const struct driver_info sierra_net_info_direct_ip = { .description = "Sierra Wireless USB-to-WWAN Modem", .flags = FLAG_WWAN | FLAG_SEND_ZLP, .bind = sierra_net_bind, @@ -959,12 +959,18 @@ .status = sierra_net_status, .rx_fixup = sierra_net_rx_fixup, .tx_fixup = sierra_net_tx_fixup, - .data = (unsigned long)&sierra_net_info_data_68A3, + .data = (unsigned long)&sierra_net_info_data_direct_ip, }; static const struct usb_device_id products[] = { {USB_DEVICE(0x1199, 0x68A3), /* Sierra Wireless USB-to-WWAN modem */ - .driver_info = (unsigned long) &sierra_net_info_68A3}, + .driver_info = (unsigned long) &sierra_net_info_direct_ip}, + {USB_DEVICE(0x0F3D, 0x68A3), /* AT&T Direct IP modem */ + .driver_info = (unsigned long) &sierra_net_info_direct_ip}, + {USB_DEVICE(0x1199, 0x68AA), /* Sierra Wireless Direct IP LTE modem */ + .driver_info = (unsigned long) &sierra_net_info_direct_ip}, + {USB_DEVICE(0x0F3D, 0x68AA), /* AT&T Direct IP LTE modem */ + .driver_info = (unsigned long) &sierra_net_info_direct_ip}, {}, /* last item */ }; --- linux-3.2.0.orig/drivers/net/usb/smsc95xx.c +++ linux-3.2.0/drivers/net/usb/smsc95xx.c @@ -1190,7 +1190,7 @@ .rx_fixup = smsc95xx_rx_fixup, .tx_fixup = smsc95xx_tx_fixup, .status = smsc95xx_status, - .flags = FLAG_ETHER | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_SEND_ZLP | FLAG_LINK_INTR, }; static const struct usb_device_id products[] = { --- linux-3.2.0.orig/drivers/net/usb/cdc_ether.c +++ linux-3.2.0/drivers/net/usb/cdc_ether.c @@ -83,6 +83,7 @@ struct cdc_state *info = (void *) &dev->data; int status; int rndis; + bool android_rndis_quirk = false; struct usb_driver *driver = driver_of(intf); struct usb_cdc_mdlm_desc *desc = NULL; struct usb_cdc_mdlm_detail_desc *detail = NULL; @@ -195,6 +196,11 @@ info->control, info->u->bSlaveInterface0, info->data); + /* fall back to hard-wiring for RNDIS */ + if (rndis) { + android_rndis_quirk = true; + goto next_desc; + } goto bad_desc; } if (info->control != intf) { @@ -271,11 +277,15 @@ /* Microsoft ActiveSync based and some regular RNDIS devices lack the * CDC descriptors, so we'll hard-wire the interfaces and not check * for descriptors. + * + * Some Android RNDIS devices have a CDC Union descriptor pointing + * to non-existing interfaces. Ignore that and attempt the same + * hard-wired 0 and 1 interfaces. */ - if (rndis && !info->u) { + if (rndis && (!info->u || android_rndis_quirk)) { info->control = usb_ifnum_to_if(dev->udev, 0); info->data = usb_ifnum_to_if(dev->udev, 1); - if (!info->control || !info->data) { + if (!info->control || !info->data || info->control != intf) { dev_dbg(&intf->dev, "rndis: master #0/%p slave #1/%p\n", info->control, @@ -472,6 +482,7 @@ /*-------------------------------------------------------------------------*/ #define HUAWEI_VENDOR_ID 0x12D1 +#define NOVATEL_VENDOR_ID 0x1410 static const struct usb_device_id products [] = { /* @@ -570,6 +581,13 @@ .driver_info = 0, }, +/* Logitech Harmony 900 - uses the pseudo-MDLM (BLAN) driver */ +{ + USB_DEVICE_AND_INTERFACE_INFO(0x046d, 0xc11f, USB_CLASS_COMM, + USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE), + .driver_info = 0, +}, + /* * WHITELIST!!! * @@ -582,6 +600,21 @@ * because of bugs/quirks in a given product (like Zaurus, above). */ { + /* Novatel USB551L */ + /* This match must come *before* the generic CDC-ETHER match so that + * we get FLAG_WWAN set on the device, since it's descriptors are + * generic CDC-ETHER. + */ + .match_flags = USB_DEVICE_ID_MATCH_VENDOR + | USB_DEVICE_ID_MATCH_PRODUCT + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = NOVATEL_VENDOR_ID, + .idProduct = 0xB001, + .bInterfaceClass = USB_CLASS_COMM, + .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, + .bInterfaceProtocol = USB_CDC_PROTO_NONE, + .driver_info = (unsigned long)&wwan_info, +}, { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), .driver_info = (unsigned long) &cdc_info, --- linux-3.2.0.orig/drivers/net/usb/usbnet.c +++ linux-3.2.0/drivers/net/usb/usbnet.c @@ -281,17 +281,32 @@ } EXPORT_SYMBOL_GPL(usbnet_change_mtu); +/* The caller must hold list->lock */ +static void __usbnet_queue_skb(struct sk_buff_head *list, + struct sk_buff *newsk, enum skb_state state) +{ + struct skb_data *entry = (struct skb_data *) newsk->cb; + + __skb_queue_tail(list, newsk); + entry->state = state; +} + /*-------------------------------------------------------------------------*/ /* some LK 2.4 HCDs oopsed if we freed or resubmitted urbs from * completion callbacks. 2.5 should have fixed those bugs... */ -static void defer_bh(struct usbnet *dev, struct sk_buff *skb, struct sk_buff_head *list) +static enum skb_state defer_bh(struct usbnet *dev, struct sk_buff *skb, + struct sk_buff_head *list, enum skb_state state) { unsigned long flags; + enum skb_state old_state; + struct skb_data *entry = (struct skb_data *) skb->cb; spin_lock_irqsave(&list->lock, flags); + old_state = entry->state; + entry->state = state; __skb_unlink(skb, list); spin_unlock(&list->lock); spin_lock(&dev->done.lock); @@ -299,6 +314,7 @@ if (dev->done.qlen == 1) tasklet_schedule(&dev->bh); spin_unlock_irqrestore(&dev->done.lock, flags); + return old_state; } /* some work can't be done in tasklets, so we use keventd @@ -339,7 +355,6 @@ entry = (struct skb_data *) skb->cb; entry->urb = urb; entry->dev = dev; - entry->state = rx_start; entry->length = 0; usb_fill_bulk_urb (urb, dev->udev, dev->in, @@ -371,7 +386,7 @@ tasklet_schedule (&dev->bh); break; case 0: - __skb_queue_tail (&dev->rxq, skb); + __usbnet_queue_skb(&dev->rxq, skb, rx_start); } } else { netif_dbg(dev, ifdown, dev->net, "rx: stopped\n"); @@ -422,16 +437,17 @@ struct skb_data *entry = (struct skb_data *) skb->cb; struct usbnet *dev = entry->dev; int urb_status = urb->status; + enum skb_state state; skb_put (skb, urb->actual_length); - entry->state = rx_done; + state = rx_done; entry->urb = NULL; switch (urb_status) { /* success */ case 0: if (skb->len < dev->net->hard_header_len) { - entry->state = rx_cleanup; + state = rx_cleanup; dev->net->stats.rx_errors++; dev->net->stats.rx_length_errors++; netif_dbg(dev, rx_err, dev->net, @@ -470,7 +486,7 @@ "rx throttle %d\n", urb_status); } block: - entry->state = rx_cleanup; + state = rx_cleanup; entry->urb = urb; urb = NULL; break; @@ -481,17 +497,18 @@ // FALLTHROUGH default: - entry->state = rx_cleanup; + state = rx_cleanup; dev->net->stats.rx_errors++; netif_dbg(dev, rx_err, dev->net, "rx status %d\n", urb_status); break; } - defer_bh(dev, skb, &dev->rxq); + state = defer_bh(dev, skb, &dev->rxq, state); if (urb) { if (netif_running (dev->net) && - !test_bit (EVENT_RX_HALT, &dev->flags)) { + !test_bit (EVENT_RX_HALT, &dev->flags) && + state != unlink_start) { rx_submit (dev, urb, GFP_ATOMIC); return; } @@ -577,18 +594,34 @@ static int unlink_urbs (struct usbnet *dev, struct sk_buff_head *q) { unsigned long flags; - struct sk_buff *skb, *skbnext; + struct sk_buff *skb; int count = 0; spin_lock_irqsave (&q->lock, flags); - skb_queue_walk_safe(q, skb, skbnext) { + while (!skb_queue_empty(q)) { struct skb_data *entry; struct urb *urb; int retval; - entry = (struct skb_data *) skb->cb; + skb_queue_walk(q, skb) { + entry = (struct skb_data *) skb->cb; + if (entry->state != unlink_start) + goto found; + } + break; +found: + entry->state = unlink_start; urb = entry->urb; + /* + * Get reference count of the URB to avoid it to be + * freed during usb_unlink_urb, which may trigger + * use-after-free problem inside usb_unlink_urb since + * usb_unlink_urb is always racing with .complete + * handler(include defer_bh). + */ + usb_get_urb(urb); + spin_unlock_irqrestore(&q->lock, flags); // during some PM-driven resume scenarios, // these (async) unlinks complete immediately retval = usb_unlink_urb (urb); @@ -596,6 +629,8 @@ netdev_dbg(dev->net, "unlink urb err, %d\n", retval); else count++; + usb_put_urb(urb); + spin_lock_irqsave(&q->lock, flags); } spin_unlock_irqrestore (&q->lock, flags); return count; @@ -1026,9 +1061,7 @@ } usb_autopm_put_interface_async(dev->intf); - urb->dev = NULL; - entry->state = tx_done; - defer_bh(dev, skb, &dev->txq); + (void) defer_bh(dev, skb, &dev->txq, tx_done); } /*-------------------------------------------------------------------------*/ @@ -1084,7 +1117,6 @@ entry = (struct skb_data *) skb->cb; entry->urb = urb; entry->dev = dev; - entry->state = tx_start; entry->length = length; usb_fill_bulk_urb (urb, dev->udev, dev->out, @@ -1124,6 +1156,7 @@ usb_anchor_urb(urb, &dev->deferred); /* no use to process more packets */ netif_stop_queue(net); + usb_put_urb(urb); spin_unlock_irqrestore(&dev->txq.lock, flags); netdev_dbg(dev->net, "Delaying transmission for resumption\n"); goto deferred; @@ -1143,7 +1176,7 @@ break; case 0: net->trans_start = jiffies; - __skb_queue_tail (&dev->txq, skb); + __usbnet_queue_skb(&dev->txq, skb, tx_start); if (dev->txq.qlen >= TX_QLEN (dev)) netif_stop_queue (net); } @@ -1265,6 +1298,8 @@ cancel_work_sync(&dev->kevent); + usb_scuttle_anchored_urbs(&dev->deferred); + if (dev->driver_info->unbind) dev->driver_info->unbind (dev, intf); --- linux-3.2.0.orig/drivers/net/usb/smsc75xx.c +++ linux-3.2.0/drivers/net/usb/smsc75xx.c @@ -720,8 +720,12 @@ static int smsc75xx_change_mtu(struct net_device *netdev, int new_mtu) { struct usbnet *dev = netdev_priv(netdev); + int ret; + + if (new_mtu > MAX_SINGLE_PACKET_SIZE) + return -EINVAL; - int ret = smsc75xx_set_rx_max_frame_length(dev, new_mtu); + ret = smsc75xx_set_rx_max_frame_length(dev, new_mtu + ETH_HLEN); check_warn_return(ret, "Failed to set mac rx frame length"); return usbnet_change_mtu(netdev, new_mtu); @@ -965,7 +969,7 @@ netif_dbg(dev, ifup, dev->net, "FCT_TX_CTL set to 0x%08x", buf); - ret = smsc75xx_set_rx_max_frame_length(dev, 1514); + ret = smsc75xx_set_rx_max_frame_length(dev, dev->net->mtu + ETH_HLEN); check_warn_return(ret, "Failed to set max rx frame length"); ret = smsc75xx_read_reg(dev, MAC_RX, &buf); @@ -1050,6 +1054,7 @@ dev->net->ethtool_ops = &smsc75xx_ethtool_ops; dev->net->flags |= IFF_MULTICAST; dev->net->hard_header_len += SMSC75XX_TX_OVERHEAD; + dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len; return 0; } @@ -1108,8 +1113,8 @@ else if (rx_cmd_a & (RX_CMD_A_LONG | RX_CMD_A_RUNT)) dev->net->stats.rx_frame_errors++; } else { - /* ETH_FRAME_LEN + 4(CRC) + 2(COE) + 4(Vlan) */ - if (unlikely(size > (ETH_FRAME_LEN + 12))) { + /* MAX_SINGLE_PACKET_SIZE + 4(CRC) + 2(COE) + 4(Vlan) */ + if (unlikely(size > (MAX_SINGLE_PACKET_SIZE + ETH_HLEN + 12))) { netif_dbg(dev, rx_err, dev->net, "size err rx_cmd_a=0x%08x", rx_cmd_a); return 0; --- linux-3.2.0.orig/drivers/net/usb/asix.c +++ linux-3.2.0/drivers/net/usb/asix.c @@ -35,6 +35,7 @@ #include #include #include +#include #define DRIVER_VERSION "08-Nov-2011" #define DRIVER_NAME "asix" @@ -305,88 +306,40 @@ static int asix_rx_fixup(struct usbnet *dev, struct sk_buff *skb) { - u8 *head; - u32 header; - char *packet; - struct sk_buff *ax_skb; - u16 size; - - head = (u8 *) skb->data; - memcpy(&header, head, sizeof(header)); - le32_to_cpus(&header); - packet = head + sizeof(header); + int offset = 0; - skb_pull(skb, 4); + while (offset + sizeof(u32) < skb->len) { + struct sk_buff *ax_skb; + u16 size; + u32 header = get_unaligned_le32(skb->data + offset); - while (skb->len > 0) { - if ((header & 0x07ff) != ((~header >> 16) & 0x07ff)) - netdev_err(dev->net, "asix_rx_fixup() Bad Header Length\n"); + offset += sizeof(u32); /* get the packet length */ - size = (u16) (header & 0x000007ff); - - if ((skb->len) - ((size + 1) & 0xfffe) == 0) { - u8 alignment = (unsigned long)skb->data & 0x3; - if (alignment != 0x2) { - /* - * not 16bit aligned so use the room provided by - * the 32 bit header to align the data - * - * note we want 16bit alignment as MAC header is - * 14bytes thus ip header will be aligned on - * 32bit boundary so accessing ipheader elements - * using a cast to struct ip header wont cause - * an unaligned accesses. - */ - u8 realignment = (alignment + 2) & 0x3; - memmove(skb->data - realignment, - skb->data, - size); - skb->data -= realignment; - skb_set_tail_pointer(skb, size); - } - return 2; + size = (u16) (header & 0x7ff); + if (size != ((~header >> 16) & 0x07ff)) { + netdev_err(dev->net, "asix_rx_fixup() Bad Header Length\n"); + return 0; } - if (size > dev->net->mtu + ETH_HLEN) { + if ((size > dev->net->mtu + ETH_HLEN + VLAN_HLEN) || + (size + offset > skb->len)) { netdev_err(dev->net, "asix_rx_fixup() Bad RX Length %d\n", size); return 0; } - ax_skb = skb_clone(skb, GFP_ATOMIC); - if (ax_skb) { - u8 alignment = (unsigned long)packet & 0x3; - ax_skb->len = size; - - if (alignment != 0x2) { - /* - * not 16bit aligned use the room provided by - * the 32 bit header to align the data - */ - u8 realignment = (alignment + 2) & 0x3; - memmove(packet - realignment, packet, size); - packet -= realignment; - } - ax_skb->data = packet; - skb_set_tail_pointer(ax_skb, size); - usbnet_skb_return(dev, ax_skb); - } else { + ax_skb = netdev_alloc_skb_ip_align(dev->net, size); + if (!ax_skb) return 0; - } - skb_pull(skb, (size + 1) & 0xfffe); + skb_put(ax_skb, size); + memcpy(ax_skb->data, skb->data + offset, size); + usbnet_skb_return(dev, ax_skb); - if (skb->len == 0) - break; - - head = (u8 *) skb->data; - memcpy(&header, head, sizeof(header)); - le32_to_cpus(&header); - packet = head + sizeof(header); - skb_pull(skb, 4); + offset += (size + 1) & 0xfffe; } - if (skb->len < 0) { + if (skb->len != offset) { netdev_err(dev->net, "asix_rx_fixup() Bad SKB Length %d\n", skb->len); return 0; @@ -403,7 +356,7 @@ u32 packet_len; u32 padbytes = 0xffff0000; - padlen = ((skb->len + 4) % 512) ? 0 : 4; + padlen = ((skb->len + 4) & (dev->maxpacket - 1)) ? 0 : 4; if ((!skb_cloned(skb)) && ((headroom + tailroom) >= (4 + padlen))) { @@ -425,7 +378,7 @@ cpu_to_le32s(&packet_len); skb_copy_to_linear_data(skb, &packet_len, sizeof(packet_len)); - if ((skb->len % 512) == 0) { + if (padlen) { cpu_to_le32s(&padbytes); memcpy(skb_tail_pointer(skb), &padbytes, sizeof(padbytes)); skb_put(skb, sizeof(padbytes)); @@ -974,6 +927,7 @@ static int ax88772_reset(struct usbnet *dev) { + struct asix_data *data = (struct asix_data *)&dev->data; int ret, embd_phy; u16 rx_ctl; @@ -1051,6 +1005,13 @@ goto out; } + /* Rewrite MAC address */ + memcpy(data->mac_addr, dev->net->dev_addr, ETH_ALEN); + ret = asix_write_cmd(dev, AX_CMD_WRITE_NODE_ID, 0, 0, ETH_ALEN, + data->mac_addr); + if (ret < 0) + goto out; + /* Set RX_CTL to default values with 2k buffer, and enable cactus */ ret = asix_write_rx_ctl(dev, AX_DEFAULT_RX_CTL); if (ret < 0) @@ -1316,6 +1277,13 @@ if (ret < 0) return ret; + /* Rewrite MAC address */ + memcpy(data->mac_addr, dev->net->dev_addr, ETH_ALEN); + ret = asix_write_cmd(dev, AX_CMD_WRITE_NODE_ID, 0, 0, ETH_ALEN, + data->mac_addr); + if (ret < 0) + return ret; + ret = asix_write_rx_ctl(dev, AX_DEFAULT_RX_CTL); if (ret < 0) return ret; @@ -1522,7 +1490,7 @@ .status = asix_status, .link_reset = ax88772_link_reset, .reset = ax88772_reset, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR, + .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR | FLAG_MULTI_PACKET, .rx_fixup = asix_rx_fixup, .tx_fixup = asix_tx_fixup, }; @@ -1580,6 +1548,10 @@ USB_DEVICE (0x6189, 0x182d), .driver_info = (unsigned long) &ax8817x_info, }, { + // Sitecom LN-031 "USB 2.0 10/100/1000 Ethernet adapter" + USB_DEVICE (0x0df6, 0x0056), + .driver_info = (unsigned long) &ax88178_info, +}, { // corega FEther USB2-TX USB_DEVICE (0x07aa, 0x0017), .driver_info = (unsigned long) &ax8817x_info, @@ -1596,6 +1568,10 @@ USB_DEVICE (0x04f1, 0x3008), .driver_info = (unsigned long) &ax8817x_info, }, { + // Lenovo U2L100P 10/100 + USB_DEVICE (0x17ef, 0x7203), + .driver_info = (unsigned long) &ax88772_info, +}, { // ASIX AX88772B 10/100 USB_DEVICE (0x0b95, 0x772b), .driver_info = (unsigned long) &ax88772_info, @@ -1628,6 +1604,10 @@ USB_DEVICE (0x2001, 0x3c05), .driver_info = (unsigned long) &ax88772_info, }, { + // DLink DUB-E100 H/W Ver C1 + USB_DEVICE (0x2001, 0x1a02), + .driver_info = (unsigned long) &ax88772_info, +}, { // Linksys USB1000 USB_DEVICE (0x1737, 0x0039), .driver_info = (unsigned long) &ax88178_info, --- linux-3.2.0.orig/drivers/net/usb/zaurus.c +++ linux-3.2.0/drivers/net/usb/zaurus.c @@ -332,6 +332,11 @@ .driver_info = ZAURUS_PXA_INFO, }, { + /* Motorola Rokr E6 */ + USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x6027, USB_CLASS_COMM, + USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE), + .driver_info = (unsigned long) &bogus_mdlm_info, +}, { /* Motorola MOTOMAGX phones */ USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x6425, USB_CLASS_COMM, USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE), @@ -349,6 +354,13 @@ ZAURUS_MASTER_INTERFACE, .driver_info = OLYMPUS_MXL_INFO, }, + +/* Logitech Harmony 900 - uses the pseudo-MDLM (BLAN) driver */ +{ + USB_DEVICE_AND_INTERFACE_INFO(0x046d, 0xc11f, USB_CLASS_COMM, + USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE), + .driver_info = (unsigned long) &bogus_mdlm_info, +}, { }, // END }; MODULE_DEVICE_TABLE(usb, products); --- linux-3.2.0.orig/drivers/net/usb/kaweth.c +++ linux-3.2.0/drivers/net/usb/kaweth.c @@ -1308,7 +1308,7 @@ int retv; int length = 0; /* shut up GCC */ - urb = usb_alloc_urb(0, GFP_NOIO); + urb = usb_alloc_urb(0, GFP_ATOMIC); if (!urb) return -ENOMEM; --- linux-3.2.0.orig/drivers/net/usb/ipheth.c +++ linux-3.2.0/drivers/net/usb/ipheth.c @@ -59,7 +59,10 @@ #define USB_PRODUCT_IPHONE_3G 0x1292 #define USB_PRODUCT_IPHONE_3GS 0x1294 #define USB_PRODUCT_IPHONE_4 0x1297 +#define USB_PRODUCT_IPAD 0x129a #define USB_PRODUCT_IPHONE_4_VZW 0x129c +#define USB_PRODUCT_IPHONE_4S 0x12a0 +#define USB_PRODUCT_IPHONE_5 0x12a8 #define IPHETH_USBINTF_CLASS 255 #define IPHETH_USBINTF_SUBCLASS 253 @@ -100,9 +103,21 @@ IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, IPHETH_USBINTF_PROTO) }, { USB_DEVICE_AND_INTERFACE_INFO( + USB_VENDOR_APPLE, USB_PRODUCT_IPAD, + IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, + IPHETH_USBINTF_PROTO) }, + { USB_DEVICE_AND_INTERFACE_INFO( USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_4_VZW, IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, IPHETH_USBINTF_PROTO) }, + { USB_DEVICE_AND_INTERFACE_INFO( + USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_4S, + IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, + IPHETH_USBINTF_PROTO) }, + { USB_DEVICE_AND_INTERFACE_INFO( + USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_5, + IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, + IPHETH_USBINTF_PROTO) }, { } }; MODULE_DEVICE_TABLE(usb, ipheth_table); --- linux-3.2.0.orig/drivers/net/ppp/pptp.c +++ linux-3.2.0/drivers/net/ppp/pptp.c @@ -189,7 +189,7 @@ if (sk_pppox(po)->sk_state & PPPOX_DEAD) goto tx_error; - rt = ip_route_output_ports(&init_net, &fl4, NULL, + rt = ip_route_output_ports(sock_net(sk), &fl4, NULL, opt->dst_addr.sin_addr.s_addr, opt->src_addr.sin_addr.s_addr, 0, 0, IPPROTO_GRE, @@ -468,7 +468,7 @@ po->chan.private = sk; po->chan.ops = &pptp_chan_ops; - rt = ip_route_output_ports(&init_net, &fl4, sk, + rt = ip_route_output_ports(sock_net(sk), &fl4, sk, opt->dst_addr.sin_addr.s_addr, opt->src_addr.sin_addr.s_addr, 0, 0, --- linux-3.2.0.orig/drivers/net/ppp/pppoe.c +++ linux-3.2.0/drivers/net/ppp/pppoe.c @@ -576,7 +576,7 @@ po = pppox_sk(sk); - if (sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND)) { + if (sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND | PPPOX_ZOMBIE)) { dev_put(po->pppoe_dev); po->pppoe_dev = NULL; } --- linux-3.2.0.orig/drivers/net/ppp/ppp_generic.c +++ linux-3.2.0/drivers/net/ppp/ppp_generic.c @@ -968,7 +968,6 @@ proto = npindex_to_proto[npi]; put_unaligned_be16(proto, pp); - netif_stop_queue(dev); skb_queue_tail(&ppp->file.xq, skb); ppp_xmit_process(ppp); return NETDEV_TX_OK; @@ -1063,6 +1062,8 @@ code that we can accept some more. */ if (!ppp->xmit_pending && !skb_peek(&ppp->file.xq)) netif_wake_queue(ppp->dev); + else + netif_stop_queue(ppp->dev); } ppp_xmit_unlock(ppp); } @@ -2024,14 +2025,22 @@ continue; } if (PPP_MP_CB(p)->sequence != seq) { + u32 oldseq; /* Fragment `seq' is missing. If it is after minseq, it might arrive later, so stop here. */ if (seq_after(seq, minseq)) break; /* Fragment `seq' is lost, keep going. */ lost = 1; + oldseq = seq; seq = seq_before(minseq, PPP_MP_CB(p)->sequence)? minseq + 1: PPP_MP_CB(p)->sequence; + + if (ppp->debug & 1) + netdev_printk(KERN_DEBUG, ppp->dev, + "lost frag %u..%u\n", + oldseq, seq-1); + goto again; } @@ -2076,6 +2085,10 @@ struct sk_buff *tmp2; skb_queue_reverse_walk_from_safe(list, p, tmp2) { + if (ppp->debug & 1) + netdev_printk(KERN_DEBUG, ppp->dev, + "discarding frag %u\n", + PPP_MP_CB(p)->sequence); __skb_unlink(p, list); kfree_skb(p); } @@ -2091,6 +2104,17 @@ /* If we have discarded any fragments, signal a receive error. */ if (PPP_MP_CB(head)->sequence != ppp->nextseq) { + skb_queue_walk_safe(list, p, tmp) { + if (p == head) + break; + if (ppp->debug & 1) + netdev_printk(KERN_DEBUG, ppp->dev, + "discarding frag %u\n", + PPP_MP_CB(p)->sequence); + __skb_unlink(p, list); + kfree_skb(p); + } + if (ppp->debug & 1) netdev_printk(KERN_DEBUG, ppp->dev, " missed pkts %u..%u\n", --- linux-3.2.0.orig/drivers/net/xen-netback/netback.c +++ linux-3.2.0/drivers/net/xen-netback/netback.c @@ -46,11 +46,33 @@ #include #include +/* + * This is the maximum slots a skb can have. If a guest sends a skb + * which exceeds this limit it is considered malicious. + */ +#define FATAL_SKB_SLOTS_DEFAULT 20 +static unsigned int fatal_skb_slots = FATAL_SKB_SLOTS_DEFAULT; +module_param(fatal_skb_slots, uint, 0444); + +/* + * To avoid confusion, we define XEN_NETBK_LEGACY_SLOTS_MAX indicating + * the maximum slots a valid packet can use. Now this value is defined + * to be XEN_NETIF_NR_SLOTS_MIN, which is supposed to be supported by + * all backend. + */ +#define XEN_NETBK_LEGACY_SLOTS_MAX XEN_NETIF_NR_SLOTS_MIN + +typedef unsigned int pending_ring_idx_t; +#define INVALID_PENDING_RING_IDX (~0U) + struct pending_tx_info { - struct xen_netif_tx_request req; + struct xen_netif_tx_request req; /* coalesced tx request */ struct xenvif *vif; + pending_ring_idx_t head; /* head != INVALID_PENDING_RING_IDX + * if it is head of one or more tx + * reqs + */ }; -typedef unsigned int pending_ring_idx_t; struct netbk_rx_meta { int id; @@ -101,7 +123,11 @@ atomic_t netfront_count; struct pending_tx_info pending_tx_info[MAX_PENDING_REQS]; - struct gnttab_copy tx_copy_ops[MAX_PENDING_REQS]; + /* Coalescing tx requests before copying makes number of grant + * copy ops greater or equal to number of slots required. In + * worst case a tx request consumes 2 gnttab_copy. + */ + struct gnttab_copy tx_copy_ops[2*MAX_PENDING_REQS]; u16 pending_ring[MAX_PENDING_REQS]; @@ -117,6 +143,16 @@ static struct xen_netbk *xen_netbk; static int xen_netbk_group_nr; +/* + * If head != INVALID_PENDING_RING_IDX, it means this tx request is head of + * one or more merged tx requests, otherwise it is the continuation of + * previous tx request. + */ +static inline int pending_tx_is_head(struct xen_netbk *netbk, RING_IDX idx) +{ + return netbk->pending_tx_info[idx].head != INVALID_PENDING_RING_IDX; +} + void xen_netbk_add_xenvif(struct xenvif *vif) { int i; @@ -146,7 +182,8 @@ atomic_dec(&netbk->netfront_count); } -static void xen_netbk_idx_release(struct xen_netbk *netbk, u16 pending_idx); +static void xen_netbk_idx_release(struct xen_netbk *netbk, u16 pending_idx, + u8 status); static void make_tx_response(struct xenvif *vif, struct xen_netif_tx_request *txp, s8 st); @@ -248,6 +285,7 @@ { int max = DIV_ROUND_UP(vif->dev->mtu, PAGE_SIZE); + /* XXX FIXME: RX path dependent on MAX_SKB_FRAGS */ if (vif->can_sg || vif->gso || vif->gso_prefix) max += MAX_SKB_FRAGS + 1; /* extra_info + frags */ @@ -626,6 +664,7 @@ __skb_queue_tail(&rxq, skb); /* Filled the batch queue? */ + /* XXX FIXME: RX path dependent on MAX_SKB_FRAGS */ if (count + MAX_SKB_FRAGS >= XEN_NETIF_RX_RING_SIZE) break; } @@ -851,7 +890,7 @@ do { make_tx_response(vif, txp, XEN_NETIF_RSP_ERROR); - if (cons >= end) + if (cons == end) break; txp = RING_GET_REQUEST(&vif->tx, cons++); } while (1); @@ -860,49 +899,112 @@ xenvif_put(vif); } +static void netbk_fatal_tx_err(struct xenvif *vif) +{ + netdev_err(vif->dev, "fatal error; disabling device\n"); + xenvif_carrier_off(vif); + xenvif_put(vif); +} + static int netbk_count_requests(struct xenvif *vif, struct xen_netif_tx_request *first, struct xen_netif_tx_request *txp, int work_to_do) { RING_IDX cons = vif->tx.req_cons; - int frags = 0; + int slots = 0; + int drop_err = 0; + int more_data; if (!(first->flags & XEN_NETTXF_more_data)) return 0; do { - if (frags >= work_to_do) { - netdev_dbg(vif->dev, "Need more frags\n"); - return -frags; + struct xen_netif_tx_request dropped_tx = { 0 }; + + if (slots >= work_to_do) { + netdev_err(vif->dev, + "Asked for %d slots but exceeds this limit\n", + work_to_do); + netbk_fatal_tx_err(vif); + return -ENODATA; + } + + /* This guest is really using too many slots and + * considered malicious. + */ + if (unlikely(slots >= fatal_skb_slots)) { + netdev_err(vif->dev, + "Malicious frontend using %d slots, threshold %u\n", + slots, fatal_skb_slots); + netbk_fatal_tx_err(vif); + return -E2BIG; } - if (unlikely(frags >= MAX_SKB_FRAGS)) { - netdev_dbg(vif->dev, "Too many frags\n"); - return -frags; + /* Xen network protocol had implicit dependency on + * MAX_SKB_FRAGS. XEN_NETBK_LEGACY_SLOTS_MAX is set to + * the historical MAX_SKB_FRAGS value 18 to honor the + * same behavior as before. Any packet using more than + * 18 slots but less than fatal_skb_slots slots is + * dropped + */ + if (!drop_err && slots >= XEN_NETBK_LEGACY_SLOTS_MAX) { + if (net_ratelimit()) + netdev_dbg(vif->dev, + "Too many slots (%d) exceeding limit (%d), dropping packet\n", + slots, XEN_NETBK_LEGACY_SLOTS_MAX); + drop_err = -E2BIG; } - memcpy(txp, RING_GET_REQUEST(&vif->tx, cons + frags), + if (drop_err) + txp = &dropped_tx; + + memcpy(txp, RING_GET_REQUEST(&vif->tx, cons + slots), sizeof(*txp)); - if (txp->size > first->size) { - netdev_dbg(vif->dev, "Frags galore\n"); - return -frags; + + /* If the guest submitted a frame >= 64 KiB then + * first->size overflowed and following slots will + * appear to be larger than the frame. + * + * This cannot be fatal error as there are buggy + * frontends that do this. + * + * Consume all slots and drop the packet. + */ + if (!drop_err && txp->size > first->size) { + if (net_ratelimit()) + netdev_dbg(vif->dev, + "Invalid tx request, slot size %u > remaining size %u\n", + txp->size, first->size); + drop_err = -EIO; } first->size -= txp->size; - frags++; + slots++; if (unlikely((txp->offset + txp->size) > PAGE_SIZE)) { - netdev_dbg(vif->dev, "txp->offset: %x, size: %u\n", + netdev_err(vif->dev, "Cross page boundary, txp->offset: %x, size: %u\n", txp->offset, txp->size); - return -frags; + netbk_fatal_tx_err(vif); + return -EINVAL; } - } while ((txp++)->flags & XEN_NETTXF_more_data); - return frags; + + more_data = txp->flags & XEN_NETTXF_more_data; + + if (!drop_err) + txp++; + + } while (more_data); + + if (drop_err) { + netbk_tx_err(vif, first, cons + slots); + return drop_err; + } + + return slots; } static struct page *xen_netbk_alloc_page(struct xen_netbk *netbk, - struct sk_buff *skb, u16 pending_idx) { struct page *page; @@ -923,45 +1025,123 @@ struct skb_shared_info *shinfo = skb_shinfo(skb); skb_frag_t *frags = shinfo->frags; u16 pending_idx = *((u16 *)skb->data); - int i, start; + u16 head_idx = 0; + int slot, start; + struct page *page; + pending_ring_idx_t index, start_idx = 0; + uint16_t dst_offset; + unsigned int nr_slots; + struct pending_tx_info *first = NULL; + + /* At this point shinfo->nr_frags is in fact the number of + * slots, which can be as large as XEN_NETBK_LEGACY_SLOTS_MAX. + */ + nr_slots = shinfo->nr_frags; /* Skip first skb fragment if it is on same page as header fragment. */ start = (frag_get_pending_idx(&shinfo->frags[0]) == pending_idx); - for (i = start; i < shinfo->nr_frags; i++, txp++) { - struct page *page; - pending_ring_idx_t index; + /* Coalesce tx requests, at this point the packet passed in + * should be <= 64K. Any packets larger than 64K have been + * handled in netbk_count_requests(). + */ + for (shinfo->nr_frags = slot = start; slot < nr_slots; + shinfo->nr_frags++) { struct pending_tx_info *pending_tx_info = netbk->pending_tx_info; - index = pending_index(netbk->pending_cons++); - pending_idx = netbk->pending_ring[index]; - page = xen_netbk_alloc_page(netbk, skb, pending_idx); + page = alloc_page(GFP_KERNEL|__GFP_COLD); if (!page) - return NULL; - - netbk->mmap_pages[pending_idx] = page; + goto err; - gop->source.u.ref = txp->gref; - gop->source.domid = vif->domid; - gop->source.offset = txp->offset; - - gop->dest.u.gmfn = virt_to_mfn(page_address(page)); - gop->dest.domid = DOMID_SELF; - gop->dest.offset = txp->offset; + dst_offset = 0; + first = NULL; + while (dst_offset < PAGE_SIZE && slot < nr_slots) { + gop->flags = GNTCOPY_source_gref; + + gop->source.u.ref = txp->gref; + gop->source.domid = vif->domid; + gop->source.offset = txp->offset; + + gop->dest.domid = DOMID_SELF; + + gop->dest.offset = dst_offset; + gop->dest.u.gmfn = virt_to_mfn(page_address(page)); + + if (dst_offset + txp->size > PAGE_SIZE) { + /* This page can only merge a portion + * of tx request. Do not increment any + * pointer / counter here. The txp + * will be dealt with in future + * rounds, eventually hitting the + * `else` branch. + */ + gop->len = PAGE_SIZE - dst_offset; + txp->offset += gop->len; + txp->size -= gop->len; + dst_offset += gop->len; /* quit loop */ + } else { + /* This tx request can be merged in the page */ + gop->len = txp->size; + dst_offset += gop->len; + + index = pending_index(netbk->pending_cons++); + + pending_idx = netbk->pending_ring[index]; + + memcpy(&pending_tx_info[pending_idx].req, txp, + sizeof(*txp)); + xenvif_get(vif); + + pending_tx_info[pending_idx].vif = vif; + + /* Poison these fields, corresponding + * fields for head tx req will be set + * to correct values after the loop. + */ + netbk->mmap_pages[pending_idx] = (void *)(~0UL); + pending_tx_info[pending_idx].head = + INVALID_PENDING_RING_IDX; + + if (!first) { + first = &pending_tx_info[pending_idx]; + start_idx = index; + head_idx = pending_idx; + } - gop->len = txp->size; - gop->flags = GNTCOPY_source_gref; + txp++; + slot++; + } - gop++; + gop++; + } - memcpy(&pending_tx_info[pending_idx].req, txp, sizeof(*txp)); - xenvif_get(vif); - pending_tx_info[pending_idx].vif = vif; - frag_set_pending_idx(&frags[i], pending_idx); + first->req.offset = 0; + first->req.size = dst_offset; + first->head = start_idx; + set_page_ext(page, netbk, head_idx); + netbk->mmap_pages[head_idx] = page; + frag_set_pending_idx(&frags[shinfo->nr_frags], head_idx); } + BUG_ON(shinfo->nr_frags > MAX_SKB_FRAGS); + return gop; +err: + /* + * Unwind, freeing all pages and sending error + * reponses. + */ + while (shinfo->nr_frags-- > start) { + xen_netbk_idx_release(netbk, + frag_get_pending_idx(&frags[shinfo->nr_frags]), + XEN_NETIF_RSP_ERROR); + } + /* The head too, if necessary. */ + if (start) + xen_netbk_idx_release(netbk, pending_idx, XEN_NETIF_RSP_ERROR); + + return NULL; } static int xen_netbk_tx_check_gop(struct xen_netbk *netbk, @@ -970,48 +1150,45 @@ { struct gnttab_copy *gop = *gopp; u16 pending_idx = *((u16 *)skb->data); - struct pending_tx_info *pending_tx_info = netbk->pending_tx_info; - struct xenvif *vif = pending_tx_info[pending_idx].vif; - struct xen_netif_tx_request *txp; struct skb_shared_info *shinfo = skb_shinfo(skb); + struct pending_tx_info *tx_info; int nr_frags = shinfo->nr_frags; int i, err, start; + u16 peek; /* peek into next tx request */ /* Check status of header. */ err = gop->status; - if (unlikely(err)) { - pending_ring_idx_t index; - index = pending_index(netbk->pending_prod++); - txp = &pending_tx_info[pending_idx].req; - make_tx_response(vif, txp, XEN_NETIF_RSP_ERROR); - netbk->pending_ring[index] = pending_idx; - xenvif_put(vif); - } + if (unlikely(err)) + xen_netbk_idx_release(netbk, pending_idx, XEN_NETIF_RSP_ERROR); /* Skip first skb fragment if it is on same page as header fragment. */ start = (frag_get_pending_idx(&shinfo->frags[0]) == pending_idx); for (i = start; i < nr_frags; i++) { int j, newerr; - pending_ring_idx_t index; + pending_ring_idx_t head; pending_idx = frag_get_pending_idx(&shinfo->frags[i]); + tx_info = &netbk->pending_tx_info[pending_idx]; + head = tx_info->head; /* Check error status: if okay then remember grant handle. */ - newerr = (++gop)->status; + do { + newerr = (++gop)->status; + if (newerr) + break; + peek = netbk->pending_ring[pending_index(++head)]; + } while (!pending_tx_is_head(netbk, peek)); + if (likely(!newerr)) { /* Had a previous error? Invalidate this fragment. */ if (unlikely(err)) - xen_netbk_idx_release(netbk, pending_idx); + xen_netbk_idx_release(netbk, pending_idx, XEN_NETIF_RSP_OKAY); continue; } /* Error on this fragment: respond to client with an error. */ - txp = &netbk->pending_tx_info[pending_idx].req; - make_tx_response(vif, txp, XEN_NETIF_RSP_ERROR); - index = pending_index(netbk->pending_prod++); - netbk->pending_ring[index] = pending_idx; - xenvif_put(vif); + xen_netbk_idx_release(netbk, pending_idx, XEN_NETIF_RSP_ERROR); /* Not the first error? Preceding frags already invalidated. */ if (err) @@ -1019,10 +1196,10 @@ /* First error: invalidate header and preceding fragments. */ pending_idx = *((u16 *)skb->data); - xen_netbk_idx_release(netbk, pending_idx); + xen_netbk_idx_release(netbk, pending_idx, XEN_NETIF_RSP_OKAY); for (j = start; j < i; j++) { pending_idx = frag_get_pending_idx(&shinfo->frags[j]); - xen_netbk_idx_release(netbk, pending_idx); + xen_netbk_idx_release(netbk, pending_idx, XEN_NETIF_RSP_OKAY); } /* Remember the error: invalidate all subsequent fragments. */ @@ -1056,7 +1233,7 @@ /* Take an extra reference to offset xen_netbk_idx_release */ get_page(netbk->mmap_pages[pending_idx]); - xen_netbk_idx_release(netbk, pending_idx); + xen_netbk_idx_release(netbk, pending_idx, XEN_NETIF_RSP_OKAY); } } @@ -1069,7 +1246,8 @@ do { if (unlikely(work_to_do-- <= 0)) { - netdev_dbg(vif->dev, "Missing extra info\n"); + netdev_err(vif->dev, "Missing extra info\n"); + netbk_fatal_tx_err(vif); return -EBADR; } @@ -1078,8 +1256,9 @@ if (unlikely(!extra.type || extra.type >= XEN_NETIF_EXTRA_TYPE_MAX)) { vif->tx.req_cons = ++cons; - netdev_dbg(vif->dev, + netdev_err(vif->dev, "Invalid extra type: %d\n", extra.type); + netbk_fatal_tx_err(vif); return -EINVAL; } @@ -1095,13 +1274,15 @@ struct xen_netif_extra_info *gso) { if (!gso->u.gso.size) { - netdev_dbg(vif->dev, "GSO size must not be zero.\n"); + netdev_err(vif->dev, "GSO size must not be zero.\n"); + netbk_fatal_tx_err(vif); return -EINVAL; } /* Currently only TCPv4 S.O. is supported. */ if (gso->u.gso.type != XEN_NETIF_GSO_TYPE_TCPV4) { - netdev_dbg(vif->dev, "Bad GSO type %d.\n", gso->u.gso.type); + netdev_err(vif->dev, "Bad GSO type %d.\n", gso->u.gso.type); + netbk_fatal_tx_err(vif); return -EINVAL; } @@ -1223,11 +1404,12 @@ struct sk_buff *skb; int ret; - while (((nr_pending_reqs(netbk) + MAX_SKB_FRAGS) < MAX_PENDING_REQS) && + while ((nr_pending_reqs(netbk) + XEN_NETBK_LEGACY_SLOTS_MAX + < MAX_PENDING_REQS) && !list_empty(&netbk->net_schedule_list)) { struct xenvif *vif; struct xen_netif_tx_request txreq; - struct xen_netif_tx_request txfrags[MAX_SKB_FRAGS]; + struct xen_netif_tx_request txfrags[XEN_NETBK_LEGACY_SLOTS_MAX]; struct page *page; struct xen_netif_extra_info extras[XEN_NETIF_EXTRA_TYPE_MAX-1]; u16 pending_idx; @@ -1238,9 +1420,26 @@ /* Get a netif from the list with work to do. */ vif = poll_net_schedule_list(netbk); + /* + * This can sometimes happen because the test of + * list_empty(net_schedule_list) at the top of the + * loop is unlocked. Just go back and have another + * look. + */ if (!vif) continue; + if (vif->tx.sring->req_prod - vif->tx.req_cons > + XEN_NETIF_TX_RING_SIZE) { + netdev_err(vif->dev, + "Impossible number of requests. " + "req_prod %d, req_cons %d, size %ld\n", + vif->tx.sring->req_prod, vif->tx.req_cons, + XEN_NETIF_TX_RING_SIZE); + netbk_fatal_tx_err(vif); + continue; + } + RING_FINAL_CHECK_FOR_REQUESTS(&vif->tx, work_to_do); if (!work_to_do) { xenvif_put(vif); @@ -1268,17 +1467,14 @@ work_to_do = xen_netbk_get_extras(vif, extras, work_to_do); idx = vif->tx.req_cons; - if (unlikely(work_to_do < 0)) { - netbk_tx_err(vif, &txreq, idx); + if (unlikely(work_to_do < 0)) continue; - } } ret = netbk_count_requests(vif, &txreq, txfrags, work_to_do); - if (unlikely(ret < 0)) { - netbk_tx_err(vif, &txreq, idx - ret); + if (unlikely(ret < 0)) continue; - } + idx += ret; if (unlikely(txreq.size < ETH_HLEN)) { @@ -1290,11 +1486,11 @@ /* No crossing a page as the payload mustn't fragment. */ if (unlikely((txreq.offset + txreq.size) > PAGE_SIZE)) { - netdev_dbg(vif->dev, + netdev_err(vif->dev, "txreq.offset: %x, size: %u, end: %lu\n", txreq.offset, txreq.size, (txreq.offset&~PAGE_MASK) + txreq.size); - netbk_tx_err(vif, &txreq, idx); + netbk_fatal_tx_err(vif); continue; } @@ -1302,7 +1498,7 @@ pending_idx = netbk->pending_ring[index]; data_len = (txreq.size > PKT_PROT_LEN && - ret < MAX_SKB_FRAGS) ? + ret < XEN_NETBK_LEGACY_SLOTS_MAX) ? PKT_PROT_LEN : txreq.size; skb = alloc_skb(data_len + NET_SKB_PAD + NET_IP_ALIGN, @@ -1322,22 +1518,20 @@ gso = &extras[XEN_NETIF_EXTRA_TYPE_GSO - 1]; if (netbk_set_skb_gso(vif, skb, gso)) { + /* Failure in netbk_set_skb_gso is fatal. */ kfree_skb(skb); - netbk_tx_err(vif, &txreq, idx); continue; } } /* XXX could copy straight to head */ - page = xen_netbk_alloc_page(netbk, skb, pending_idx); + page = xen_netbk_alloc_page(netbk, pending_idx); if (!page) { kfree_skb(skb); netbk_tx_err(vif, &txreq, idx); continue; } - netbk->mmap_pages[pending_idx] = page; - gop->source.u.ref = txreq.gref; gop->source.domid = vif->domid; gop->source.offset = txreq.offset; @@ -1354,6 +1548,7 @@ memcpy(&netbk->pending_tx_info[pending_idx].req, &txreq, sizeof(txreq)); netbk->pending_tx_info[pending_idx].vif = vif; + netbk->pending_tx_info[pending_idx].head = index; *((u16 *)skb->data) = pending_idx; __skb_put(skb, data_len); @@ -1424,7 +1619,7 @@ txp->size -= data_len; } else { /* Schedule a response immediately. */ - xen_netbk_idx_release(netbk, pending_idx); + xen_netbk_idx_release(netbk, pending_idx, XEN_NETIF_RSP_OKAY); } if (txp->flags & XEN_NETTXF_csum_blank) @@ -1479,11 +1674,15 @@ } -static void xen_netbk_idx_release(struct xen_netbk *netbk, u16 pending_idx) +static void xen_netbk_idx_release(struct xen_netbk *netbk, u16 pending_idx, + u8 status) { struct xenvif *vif; struct pending_tx_info *pending_tx_info; - pending_ring_idx_t index; + pending_ring_idx_t head; + u16 peek; /* peek into next tx request */ + + BUG_ON(netbk->mmap_pages[pending_idx] == (void *)(~0UL)); /* Already complete? */ if (netbk->mmap_pages[pending_idx] == NULL) @@ -1492,19 +1691,40 @@ pending_tx_info = &netbk->pending_tx_info[pending_idx]; vif = pending_tx_info->vif; + head = pending_tx_info->head; + + BUG_ON(!pending_tx_is_head(netbk, head)); + BUG_ON(netbk->pending_ring[pending_index(head)] != pending_idx); + + do { + pending_ring_idx_t index; + pending_ring_idx_t idx = pending_index(head); + u16 info_idx = netbk->pending_ring[idx]; + + pending_tx_info = &netbk->pending_tx_info[info_idx]; + make_tx_response(vif, &pending_tx_info->req, status); - make_tx_response(vif, &pending_tx_info->req, XEN_NETIF_RSP_OKAY); + /* Setting any number other than + * INVALID_PENDING_RING_IDX indicates this slot is + * starting a new packet / ending a previous packet. + */ + pending_tx_info->head = 0; - index = pending_index(netbk->pending_prod++); - netbk->pending_ring[index] = pending_idx; + index = pending_index(netbk->pending_prod++); + netbk->pending_ring[index] = netbk->pending_ring[info_idx]; - xenvif_put(vif); + xenvif_put(vif); + + peek = netbk->pending_ring[pending_index(++head)]; + + } while (!pending_tx_is_head(netbk, peek)); netbk->mmap_pages[pending_idx]->mapping = 0; put_page(netbk->mmap_pages[pending_idx]); netbk->mmap_pages[pending_idx] = NULL; } + static void make_tx_response(struct xenvif *vif, struct xen_netif_tx_request *txp, s8 st) @@ -1557,8 +1777,9 @@ static inline int tx_work_todo(struct xen_netbk *netbk) { - if (((nr_pending_reqs(netbk) + MAX_SKB_FRAGS) < MAX_PENDING_REQS) && - !list_empty(&netbk->net_schedule_list)) + if ((nr_pending_reqs(netbk) + XEN_NETBK_LEGACY_SLOTS_MAX + < MAX_PENDING_REQS) && + !list_empty(&netbk->net_schedule_list)) return 1; return 0; @@ -1641,6 +1862,13 @@ if (!xen_pv_domain()) return -ENODEV; + if (fatal_skb_slots < XEN_NETBK_LEGACY_SLOTS_MAX) { + printk(KERN_INFO + "xen-netback: fatal_skb_slots too small (%d), bump it to XEN_NETBK_LEGACY_SLOTS_MAX (%d)\n", + fatal_skb_slots, XEN_NETBK_LEGACY_SLOTS_MAX); + fatal_skb_slots = XEN_NETBK_LEGACY_SLOTS_MAX; + } + xen_netbk_group_nr = num_online_cpus(); xen_netbk = vzalloc(sizeof(struct xen_netbk) * xen_netbk_group_nr); if (!xen_netbk) { --- linux-3.2.0.orig/drivers/net/xen-netback/interface.c +++ linux-3.2.0/drivers/net/xen-netback/interface.c @@ -132,6 +132,7 @@ static void xenvif_down(struct xenvif *vif) { disable_irq(vif->irq); + del_timer_sync(&vif->credit_timeout); xen_netbk_deschedule_xenvif(vif); xen_netbk_remove_xenvif(vif); } @@ -342,23 +343,26 @@ return err; } -void xenvif_disconnect(struct xenvif *vif) +void xenvif_carrier_off(struct xenvif *vif) { struct net_device *dev = vif->dev; - if (netif_carrier_ok(dev)) { - rtnl_lock(); - netif_carrier_off(dev); /* discard queued packets */ - if (netif_running(dev)) - xenvif_down(vif); - rtnl_unlock(); - xenvif_put(vif); - } + + rtnl_lock(); + netif_carrier_off(dev); /* discard queued packets */ + if (netif_running(dev)) + xenvif_down(vif); + rtnl_unlock(); + xenvif_put(vif); +} + +void xenvif_disconnect(struct xenvif *vif) +{ + if (netif_carrier_ok(vif->dev)) + xenvif_carrier_off(vif); atomic_dec(&vif->refcnt); wait_event(vif->waiting_to_free, atomic_read(&vif->refcnt) == 0); - del_timer_sync(&vif->credit_timeout); - if (vif->irq) unbind_from_irqhandler(vif->irq, vif); --- linux-3.2.0.orig/drivers/net/xen-netback/common.h +++ linux-3.2.0/drivers/net/xen-netback/common.h @@ -151,6 +151,9 @@ /* Notify xenvif that ring now has space to send an skb to the frontend */ void xenvif_notify_tx_completion(struct xenvif *vif); +/* Prevent the device from generating any further traffic. */ +void xenvif_carrier_off(struct xenvif *vif); + /* Returns number of ring slots required to send an skb to the frontend */ unsigned int xen_netbk_count_skb_slots(struct xenvif *vif, struct sk_buff *skb); --- linux-3.2.0.orig/drivers/net/wimax/i2400m/i2400m-usb.h +++ linux-3.2.0/drivers/net/wimax/i2400m/i2400m-usb.h @@ -152,6 +152,9 @@ /* Device IDs */ USB_DEVICE_ID_I6050 = 0x0186, USB_DEVICE_ID_I6050_2 = 0x0188, + USB_DEVICE_ID_I6150 = 0x07d6, + USB_DEVICE_ID_I6150_2 = 0x07d7, + USB_DEVICE_ID_I6150_3 = 0x07d9, USB_DEVICE_ID_I6250 = 0x0187, }; --- linux-3.2.0.orig/drivers/net/wimax/i2400m/usb.c +++ linux-3.2.0/drivers/net/wimax/i2400m/usb.c @@ -492,6 +492,9 @@ switch (id->idProduct) { case USB_DEVICE_ID_I6050: case USB_DEVICE_ID_I6050_2: + case USB_DEVICE_ID_I6150: + case USB_DEVICE_ID_I6150_2: + case USB_DEVICE_ID_I6150_3: case USB_DEVICE_ID_I6250: i2400mu->i6050 = 1; break; @@ -741,6 +744,9 @@ struct usb_device_id i2400mu_id_table[] = { { USB_DEVICE(0x8086, USB_DEVICE_ID_I6050) }, { USB_DEVICE(0x8086, USB_DEVICE_ID_I6050_2) }, + { USB_DEVICE(0x8087, USB_DEVICE_ID_I6150) }, + { USB_DEVICE(0x8087, USB_DEVICE_ID_I6150_2) }, + { USB_DEVICE(0x8087, USB_DEVICE_ID_I6150_3) }, { USB_DEVICE(0x8086, USB_DEVICE_ID_I6250) }, { USB_DEVICE(0x8086, 0x0181) }, { USB_DEVICE(0x8086, 0x1403) }, --- linux-3.2.0.orig/drivers/net/wimax/i2400m/netdev.c +++ linux-3.2.0/drivers/net/wimax/i2400m/netdev.c @@ -607,7 +607,8 @@ struct i2400m *i2400m = net_dev_to_i2400m(net_dev); strncpy(info->driver, KBUILD_MODNAME, sizeof(info->driver) - 1); - strncpy(info->fw_version, i2400m->fw_name, sizeof(info->fw_version) - 1); + strncpy(info->fw_version, + i2400m->fw_name ? : "", sizeof(info->fw_version) - 1); if (net_dev->dev.parent) strncpy(info->bus_info, dev_name(net_dev->dev.parent), sizeof(info->bus_info) - 1); --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/cfg80211.c +++ linux-3.2.0/drivers/net/wireless/mwifiex/cfg80211.c @@ -545,9 +545,9 @@ /* * Bit 0 in tx_htinfo indicates that current Tx rate is 11n rate. Valid - * MCS index values for us are 0 to 7. + * MCS index values for us are 0 to 15. */ - if ((priv->tx_htinfo & BIT(0)) && (priv->tx_rate < 8)) { + if ((priv->tx_htinfo & BIT(0)) && (priv->tx_rate < 16)) { sinfo->txrate.mcs = priv->tx_rate; sinfo->txrate.flags |= RATE_INFO_FLAGS_MCS; /* 40MHz rate */ @@ -1177,11 +1177,11 @@ void *mdev_priv; if (!priv) - return NULL; + return ERR_PTR(-EFAULT); adapter = priv->adapter; if (!adapter) - return NULL; + return ERR_PTR(-EFAULT); switch (type) { case NL80211_IFTYPE_UNSPECIFIED: @@ -1190,7 +1190,7 @@ if (priv->bss_mode) { wiphy_err(wiphy, "cannot create multiple" " station/adhoc interfaces\n"); - return NULL; + return ERR_PTR(-EINVAL); } if (type == NL80211_IFTYPE_UNSPECIFIED) @@ -1208,14 +1208,15 @@ break; default: wiphy_err(wiphy, "type not supported\n"); - return NULL; + return ERR_PTR(-EINVAL); } dev = alloc_netdev_mq(sizeof(struct mwifiex_private *), name, ether_setup, 1); if (!dev) { wiphy_err(wiphy, "no memory available for netdevice\n"); - goto error; + priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED; + return ERR_PTR(-ENOMEM); } dev_net_set(dev, wiphy_net(wiphy)); @@ -1240,7 +1241,9 @@ /* Register network device */ if (register_netdevice(dev)) { wiphy_err(wiphy, "cannot register virtual network device\n"); - goto error; + free_netdev(dev); + priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED; + return ERR_PTR(-EFAULT); } sema_init(&priv->async_sem, 1); @@ -1252,12 +1255,6 @@ mwifiex_dev_debugfs_init(priv); #endif return dev; -error: - if (dev && (dev->reg_state == NETREG_UNREGISTERED)) - free_netdev(dev); - priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED; - - return NULL; } EXPORT_SYMBOL_GPL(mwifiex_add_virtual_intf); @@ -1284,9 +1281,6 @@ if (dev->reg_state == NETREG_REGISTERED) unregister_netdevice(dev); - if (dev->reg_state == NETREG_UNREGISTERED) - free_netdev(dev); - /* Clear the priv in adapter */ priv->netdev = NULL; --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/pcie.c +++ linux-3.2.0/drivers/net/wireless/mwifiex/pcie.c @@ -160,7 +160,7 @@ if (pdev) { card = (struct pcie_service_card *) pci_get_drvdata(pdev); - if (!card || card->adapter) { + if (!card || !card->adapter) { pr_err("Card or adapter structure is not valid\n"); return 0; } @@ -290,7 +290,7 @@ i++; udelay(10); /* 50ms max wait */ - if (i == 50000) + if (i == 5000) break; } @@ -1821,9 +1821,9 @@ if (pdev) { pci_iounmap(pdev, card->pci_mmap); pci_iounmap(pdev, card->pci_mmap1); - - pci_release_regions(pdev); pci_disable_device(pdev); + pci_release_region(pdev, 2); + pci_release_region(pdev, 0); pci_set_drvdata(pdev, NULL); } } --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/join.c +++ linux-3.2.0/drivers/net/wireless/mwifiex/join.c @@ -1062,10 +1062,9 @@ adhoc_join->bss_descriptor.bssid, adhoc_join->bss_descriptor.ssid); - for (i = 0; bss_desc->supported_rates[i] && - i < MWIFIEX_SUPPORTED_RATES; - i++) - ; + for (i = 0; i < MWIFIEX_SUPPORTED_RATES && + bss_desc->supported_rates[i]; i++) + ; rates_size = i; /* Copy Data Rates from the Rates recorded in scan response */ --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/scan.c +++ linux-3.2.0/drivers/net/wireless/mwifiex/scan.c @@ -1594,7 +1594,7 @@ dev_err(adapter->dev, "SCAN_RESP: too many AP returned (%d)\n", scan_rsp->number_of_sets); ret = -1; - goto done; + goto check_next_scan; } bytes_left = le16_to_cpu(scan_rsp->bss_descript_size); @@ -1663,7 +1663,8 @@ if (!beacon_size || beacon_size > bytes_left) { bss_info += bytes_left; bytes_left = 0; - return -1; + ret = -1; + goto check_next_scan; } /* Initialize the current working beacon pointer for this BSS @@ -1716,7 +1717,7 @@ dev_err(priv->adapter->dev, "%s: in processing" " IE, bytes left < IE length\n", __func__); - goto done; + goto check_next_scan; } if (element_id == WLAN_EID_DS_PARAMS) { channel = *(u8 *) (current_ptr + @@ -1782,6 +1783,7 @@ } } +check_next_scan: spin_lock_irqsave(&adapter->scan_pending_q_lock, flags); if (list_empty(&adapter->scan_pending_q)) { spin_unlock_irqrestore(&adapter->scan_pending_q_lock, flags); @@ -1812,7 +1814,6 @@ mwifiex_insert_cmd_to_pending_q(adapter, cmd_node, true); } -done: return ret; } --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/11n_rxreorder.h +++ linux-3.2.0/drivers/net/wireless/mwifiex/11n_rxreorder.h @@ -37,6 +37,13 @@ #define ADDBA_RSP_STATUS_ACCEPT 0 +#define MWIFIEX_DEF_11N_RX_SEQ_NUM 0xffff + +static inline void mwifiex_reset_11n_rx_seq_num(struct mwifiex_private *priv) +{ + memset(priv->rx_seq, 0xff, sizeof(priv->rx_seq)); +} + int mwifiex_11n_rx_reorder_pkt(struct mwifiex_private *, u16 seqNum, u16 tid, u8 *ta, --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/11n_rxreorder.c +++ linux-3.2.0/drivers/net/wireless/mwifiex/11n_rxreorder.c @@ -267,7 +267,8 @@ else last_seq = priv->rx_seq[tid]; - if (last_seq >= new_node->start_win) + if (last_seq != MWIFIEX_DEF_11N_RX_SEQ_NUM && + last_seq >= new_node->start_win) new_node->start_win = last_seq + 1; new_node->win_size = win_size; @@ -611,5 +612,5 @@ spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags); INIT_LIST_HEAD(&priv->rx_reorder_tbl_ptr); - memset(priv->rx_seq, 0, sizeof(priv->rx_seq)); + mwifiex_reset_11n_rx_seq_num(priv); } --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/main.c +++ linux-3.2.0/drivers/net/wireless/mwifiex/main.c @@ -581,6 +581,7 @@ struct net_device *dev) { dev->netdev_ops = &mwifiex_netdev_ops; + dev->destructor = free_netdev; /* Initialize private structure */ priv->current_key_index = 0; priv->media_connected = false; --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/pcie.h +++ linux-3.2.0/drivers/net/wireless/mwifiex/pcie.h @@ -48,15 +48,15 @@ #define PCIE_HOST_INT_STATUS_MASK 0xC3C #define PCIE_SCRATCH_2_REG 0xC40 #define PCIE_SCRATCH_3_REG 0xC44 -#define PCIE_SCRATCH_4_REG 0xCC0 -#define PCIE_SCRATCH_5_REG 0xCC4 -#define PCIE_SCRATCH_6_REG 0xCC8 -#define PCIE_SCRATCH_7_REG 0xCCC -#define PCIE_SCRATCH_8_REG 0xCD0 -#define PCIE_SCRATCH_9_REG 0xCD4 -#define PCIE_SCRATCH_10_REG 0xCD8 -#define PCIE_SCRATCH_11_REG 0xCDC -#define PCIE_SCRATCH_12_REG 0xCE0 +#define PCIE_SCRATCH_4_REG 0xCD0 +#define PCIE_SCRATCH_5_REG 0xCD4 +#define PCIE_SCRATCH_6_REG 0xCD8 +#define PCIE_SCRATCH_7_REG 0xCDC +#define PCIE_SCRATCH_8_REG 0xCE0 +#define PCIE_SCRATCH_9_REG 0xCE4 +#define PCIE_SCRATCH_10_REG 0xCE8 +#define PCIE_SCRATCH_11_REG 0xCEC +#define PCIE_SCRATCH_12_REG 0xCF0 #define CPU_INTR_DNLD_RDY BIT(0) #define CPU_INTR_DOOR_BELL BIT(1) --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/sdio.c +++ linux-3.2.0/drivers/net/wireless/mwifiex/sdio.c @@ -162,7 +162,6 @@ struct sdio_mmc_card *card; struct mwifiex_adapter *adapter; mmc_pm_flag_t pm_flag = 0; - int hs_actived = 0; int i; int ret = 0; @@ -189,12 +188,14 @@ adapter = card->adapter; /* Enable the Host Sleep */ - hs_actived = mwifiex_enable_hs(adapter); - if (hs_actived) { - pr_debug("cmd: suspend with MMC_PM_KEEP_POWER\n"); - ret = sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER); + if (!mwifiex_enable_hs(adapter)) { + dev_err(adapter->dev, "cmd: failed to suspend\n"); + return -EFAULT; } + dev_dbg(adapter->dev, "cmd: suspend with MMC_PM_KEEP_POWER\n"); + ret = sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER); + /* Indicate device suspended */ adapter->is_suspended = true; --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/wmm.c +++ linux-3.2.0/drivers/net/wireless/mwifiex/wmm.c @@ -406,6 +406,8 @@ priv->add_ba_param.tx_win_size = MWIFIEX_AMPDU_DEF_TXWINSIZE; priv->add_ba_param.rx_win_size = MWIFIEX_AMPDU_DEF_RXWINSIZE; + mwifiex_reset_11n_rx_seq_num(priv); + atomic_set(&priv->wmm.tx_pkts_queued, 0); atomic_set(&priv->wmm.highest_queued_prio, HIGH_PRIO_TID); } @@ -1209,10 +1211,12 @@ return 0; } - if (!ptr->is_11n_enabled || mwifiex_is_ba_stream_setup(priv, ptr, tid) - || ((priv->sec_info.wpa_enabled - || priv->sec_info.wpa2_enabled) && !priv->wpa_is_gtk_set) - ) { + if (!ptr->is_11n_enabled || + mwifiex_is_ba_stream_setup(priv, ptr, tid) || + priv->wps.session_enable || + ((priv->sec_info.wpa_enabled || + priv->sec_info.wpa2_enabled) && + !priv->wpa_is_gtk_set)) { mwifiex_send_single_packet(priv, ptr, ptr_index, flags); /* ra_list_spinlock has been freed in mwifiex_send_single_packet() */ --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/sta_ioctl.c +++ linux-3.2.0/drivers/net/wireless/mwifiex/sta_ioctl.c @@ -53,8 +53,7 @@ */ int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter) { - bool cancel_flag = false; - int status = adapter->cmd_wait_q.status; + int status; struct cmd_ctrl_node *cmd_queued; if (!adapter->cmd_queued) @@ -70,15 +69,14 @@ queue_work(adapter->workqueue, &adapter->main_work); /* Wait for completion */ - wait_event_interruptible(adapter->cmd_wait_q.wait, - *(cmd_queued->condition)); - if (!*(cmd_queued->condition)) - cancel_flag = true; - - if (cancel_flag) { - mwifiex_cancel_pending_ioctl(adapter); - dev_dbg(adapter->dev, "cmd cancel\n"); + status = wait_event_interruptible(adapter->cmd_wait_q.wait, + *(cmd_queued->condition)); + if (status) { + dev_err(adapter->dev, "cmd_wait_q terminated: %d\n", status); + return status; } + + status = adapter->cmd_wait_q.status; adapter->cmd_wait_q.status = 0; return status; @@ -107,7 +105,7 @@ } else { /* Multicast */ priv->curr_pkt_filter &= ~HostCmd_ACT_MAC_PROMISCUOUS_ENABLE; - if (mcast_list->mode == MWIFIEX_MULTICAST_MODE) { + if (mcast_list->mode == MWIFIEX_ALL_MULTI_MODE) { dev_dbg(priv->adapter->dev, "info: Enabling All Multicast!\n"); priv->curr_pkt_filter |= @@ -119,20 +117,11 @@ dev_dbg(priv->adapter->dev, "info: Set multicast list=%d\n", mcast_list->num_multicast_addr); - /* Set multicast addresses to firmware */ - if (old_pkt_filter == priv->curr_pkt_filter) { - /* Send request to firmware */ - ret = mwifiex_send_cmd_async(priv, - HostCmd_CMD_MAC_MULTICAST_ADR, - HostCmd_ACT_GEN_SET, 0, - mcast_list); - } else { - /* Send request to firmware */ - ret = mwifiex_send_cmd_async(priv, - HostCmd_CMD_MAC_MULTICAST_ADR, - HostCmd_ACT_GEN_SET, 0, - mcast_list); - } + /* Send multicast addresses to firmware */ + ret = mwifiex_send_cmd_async(priv, + HostCmd_CMD_MAC_MULTICAST_ADR, + HostCmd_ACT_GEN_SET, 0, + mcast_list); } } } @@ -240,6 +229,8 @@ if (!netif_queue_stopped(priv->netdev)) netif_stop_queue(priv->netdev); + if (netif_carrier_ok(priv->netdev)) + netif_carrier_off(priv->netdev); /* Clear any past association response stored for * application retrieval */ @@ -271,6 +262,8 @@ if (!netif_queue_stopped(priv->netdev)) netif_stop_queue(priv->netdev); + if (netif_carrier_ok(priv->netdev)) + netif_carrier_off(priv->netdev); if (!ret) { dev_dbg(adapter->dev, "info: network found in scan" @@ -421,8 +414,11 @@ return false; } - wait_event_interruptible(adapter->hs_activate_wait_q, - adapter->hs_activate_wait_q_woken); + if (wait_event_interruptible(adapter->hs_activate_wait_q, + adapter->hs_activate_wait_q_woken)) { + dev_err(adapter->dev, "hs_activate_wait_q terminated\n"); + return false; + } return true; } --- linux-3.2.0.orig/drivers/net/wireless/mwifiex/cmdevt.c +++ linux-3.2.0/drivers/net/wireless/mwifiex/cmdevt.c @@ -816,9 +816,6 @@ return; } cmd_node = adapter->curr_cmd; - if (cmd_node->wait_q_enabled) - adapter->cmd_wait_q.status = -ETIMEDOUT; - if (cmd_node) { adapter->dbg.timeout_cmd_id = adapter->dbg.last_cmd_id[adapter->dbg.last_cmd_index]; @@ -863,6 +860,14 @@ dev_err(adapter->dev, "ps_mode=%d ps_state=%d\n", adapter->ps_mode, adapter->ps_state); + + if (cmd_node->wait_q_enabled) { + adapter->cmd_wait_q.status = -ETIMEDOUT; + wake_up_interruptible(&adapter->cmd_wait_q.wait); + mwifiex_cancel_pending_ioctl(adapter); + /* reset cmd_sent flag to unblock new commands */ + adapter->cmd_sent = false; + } } if (adapter->hw_status == MWIFIEX_HW_STATUS_INITIALIZING) mwifiex_init_fw_complete(adapter); @@ -1078,6 +1083,7 @@ adapter->if_ops.wakeup(adapter); adapter->hs_activated = false; adapter->is_hs_configured = false; + adapter->is_suspended = false; mwifiex_hs_activated_event(mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY), false); } --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/pci.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/pci.c @@ -657,6 +657,8 @@ return; uskb = dev_alloc_skb(skb->len + 128); + if (!uskb) + return; /* exit if allocation failed */ memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status, sizeof(rx_status)); pdata = (u8 *)skb_put(uskb, skb->len); memcpy(pdata, skb->data, skb->len); @@ -924,8 +926,13 @@ memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc)); ring = &rtlpci->tx_ring[BEACON_QUEUE]; pskb = __skb_dequeue(&ring->queue); - if (pskb) + if (pskb) { + struct rtl_tx_desc *entry = &ring->desc[ring->idx]; + pci_unmap_single(rtlpci->pdev, rtlpriv->cfg->ops->get_desc( + (u8 *) entry, true, HW_DESC_TXBUFF_ADDR), + pskb->len, PCI_DMA_TODEVICE); kfree_skb(pskb); + } /*NB: the beacon data buffer must be 32-bit aligned. */ pskb = ieee80211_beacon_get(hw, mac->vif); @@ -1153,10 +1160,12 @@ ring->idx = (ring->idx + 1) % ring->entries; } - pci_free_consistent(rtlpci->pdev, - sizeof(*ring->desc) * ring->entries, - ring->desc, ring->dma); - ring->desc = NULL; + if (ring->desc) { + pci_free_consistent(rtlpci->pdev, + sizeof(*ring->desc) * ring->entries, + ring->desc, ring->dma); + ring->desc = NULL; + } } static void _rtl_pci_free_rx_ring(struct rtl_pci *rtlpci) @@ -1180,12 +1189,14 @@ kfree_skb(skb); } - pci_free_consistent(rtlpci->pdev, + if (rtlpci->rx_ring[rx_queue_idx].desc) { + pci_free_consistent(rtlpci->pdev, sizeof(*rtlpci->rx_ring[rx_queue_idx]. desc) * rtlpci->rxringcount, rtlpci->rx_ring[rx_queue_idx].desc, rtlpci->rx_ring[rx_queue_idx].dma); - rtlpci->rx_ring[rx_queue_idx].desc = NULL; + rtlpci->rx_ring[rx_queue_idx].desc = NULL; + } } } @@ -1950,6 +1961,7 @@ rtl_deinit_deferred_work(hw); rtlpriv->intf_ops->adapter_stop(hw); } + rtlpriv->cfg->ops->disable_interrupt(hw); /*deinit rfkill */ rtl_deinit_rfkill(hw); --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/wifi.h +++ linux-3.2.0/drivers/net/wireless/rtlwifi/wifi.h @@ -63,7 +63,7 @@ #define AC_MAX 4 #define QOS_QUEUE_NUM 4 #define RTL_MAC80211_NUM_QUEUE 5 - +#define RTL_USB_MAX_RX_COUNT 100 #define QBSS_LOAD_SIZE 5 #define MAX_WMMELE_LENGTH 64 @@ -1550,6 +1550,7 @@ spinlock_t rf_lock; spinlock_t lps_lock; spinlock_t waitq_lock; + spinlock_t usb_lock; /*Dual mac*/ spinlock_t cck_and_rw_pagea_lock; @@ -1621,6 +1622,10 @@ interface or hardware */ unsigned long status; + /* data buffer pointer for USB reads */ + __le32 *usb_data; + int usb_data_index; + /*This must be the last item so that it points to the data allocated beyond this structure like: --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/usb.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/usb.c @@ -44,8 +44,12 @@ static void usbctrl_async_callback(struct urb *urb) { - if (urb) - kfree(urb->context); + if (urb) { + /* free dr */ + kfree(urb->setup_packet); + /* free databuf */ + kfree(urb->transfer_buffer); + } } static int _usbctrl_vendorreq_async_write(struct usb_device *udev, u8 request, @@ -57,38 +61,46 @@ u8 reqtype; struct usb_ctrlrequest *dr; struct urb *urb; - struct rtl819x_async_write_data { - u8 data[REALTEK_USB_VENQT_MAX_BUF_SIZE]; - struct usb_ctrlrequest dr; - } *buf; + const u16 databuf_maxlen = REALTEK_USB_VENQT_MAX_BUF_SIZE; + u8 *databuf; + + if (WARN_ON_ONCE(len > databuf_maxlen)) + len = databuf_maxlen; pipe = usb_sndctrlpipe(udev, 0); /* write_out */ reqtype = REALTEK_USB_VENQT_WRITE; - buf = kmalloc(sizeof(*buf), GFP_ATOMIC); - if (!buf) + dr = kmalloc(sizeof(*dr), GFP_ATOMIC); + if (!dr) return -ENOMEM; + databuf = kmalloc(databuf_maxlen, GFP_ATOMIC); + if (!databuf) { + kfree(dr); + return -ENOMEM; + } + urb = usb_alloc_urb(0, GFP_ATOMIC); if (!urb) { - kfree(buf); + kfree(databuf); + kfree(dr); return -ENOMEM; } - dr = &buf->dr; - dr->bRequestType = reqtype; dr->bRequest = request; dr->wValue = cpu_to_le16(value); dr->wIndex = cpu_to_le16(index); dr->wLength = cpu_to_le16(len); - memcpy(buf, pdata, len); + memcpy(databuf, pdata, len); usb_fill_control_urb(urb, udev, pipe, - (unsigned char *)dr, buf, len, - usbctrl_async_callback, buf); + (unsigned char *)dr, databuf, len, + usbctrl_async_callback, NULL); rc = usb_submit_urb(urb, GFP_ATOMIC); - if (rc < 0) - kfree(buf); + if (rc < 0) { + kfree(databuf); + kfree(dr); + } usb_free_urb(urb); return rc; } @@ -113,46 +125,42 @@ return status; } -static u32 _usb_read_sync(struct usb_device *udev, u32 addr, u16 len) +static u32 _usb_read_sync(struct rtl_priv *rtlpriv, u32 addr, u16 len) { + struct device *dev = rtlpriv->io.dev; + struct usb_device *udev = to_usb_device(dev); u8 request; u16 wvalue; u16 index; - u32 *data; - u32 ret; + __le32 *data; + unsigned long flags; - data = kmalloc(sizeof(u32), GFP_KERNEL); - if (!data) - return -ENOMEM; + spin_lock_irqsave(&rtlpriv->locks.usb_lock, flags); + if (++rtlpriv->usb_data_index >= RTL_USB_MAX_RX_COUNT) + rtlpriv->usb_data_index = 0; + data = &rtlpriv->usb_data[rtlpriv->usb_data_index]; + spin_unlock_irqrestore(&rtlpriv->locks.usb_lock, flags); request = REALTEK_USB_VENQT_CMD_REQ; index = REALTEK_USB_VENQT_CMD_IDX; /* n/a */ wvalue = (u16)addr; _usbctrl_vendorreq_sync_read(udev, request, wvalue, index, data, len); - ret = *data; - kfree(data); - return ret; + return le32_to_cpu(*data); } static u8 _usb_read8_sync(struct rtl_priv *rtlpriv, u32 addr) { - struct device *dev = rtlpriv->io.dev; - - return (u8)_usb_read_sync(to_usb_device(dev), addr, 1); + return (u8)_usb_read_sync(rtlpriv, addr, 1); } static u16 _usb_read16_sync(struct rtl_priv *rtlpriv, u32 addr) { - struct device *dev = rtlpriv->io.dev; - - return (u16)_usb_read_sync(to_usb_device(dev), addr, 2); + return (u16)_usb_read_sync(rtlpriv, addr, 2); } static u32 _usb_read32_sync(struct rtl_priv *rtlpriv, u32 addr) { - struct device *dev = rtlpriv->io.dev; - - return _usb_read_sync(to_usb_device(dev), addr, 4); + return _usb_read_sync(rtlpriv, addr, 4); } static void _usb_write_async(struct usb_device *udev, u32 addr, u32 val, @@ -481,12 +489,14 @@ u8 *pdata; uskb = dev_alloc_skb(skb->len + 128); - memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status, - sizeof(rx_status)); - pdata = (u8 *)skb_put(uskb, skb->len); - memcpy(pdata, skb->data, skb->len); + if (uskb) { /* drop packet on allocation failure */ + memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status, + sizeof(rx_status)); + pdata = (u8 *)skb_put(uskb, skb->len); + memcpy(pdata, skb->data, skb->len); + ieee80211_rx_irqsafe(hw, uskb); + } dev_kfree_skb_any(skb); - ieee80211_rx_irqsafe(hw, uskb); } else { dev_kfree_skb_any(skb); } @@ -505,8 +515,8 @@ WARN_ON(skb_queue_empty(&rx_queue)); while (!skb_queue_empty(&rx_queue)) { _skb = skb_dequeue(&rx_queue); - _rtl_usb_rx_process_agg(hw, skb); - ieee80211_rx_irqsafe(hw, skb); + _rtl_usb_rx_process_agg(hw, _skb); + ieee80211_rx_irqsafe(hw, _skb); } } @@ -802,6 +812,7 @@ if (unlikely(!_urb)) { RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("Can't allocate urb. Drop skb!\n")); + kfree_skb(skb); return; } urb_list = &rtlusb->tx_pending[ep_num]; @@ -896,7 +907,8 @@ }; int __devinit rtl_usb_probe(struct usb_interface *intf, - const struct usb_device_id *id) + const struct usb_device_id *id, + struct rtl_hal_cfg *rtl_hal_cfg) { int err; struct ieee80211_hw *hw = NULL; @@ -911,6 +923,15 @@ return -ENOMEM; } rtlpriv = hw->priv; + rtlpriv->usb_data = kzalloc(RTL_USB_MAX_RX_COUNT * sizeof(u32), + GFP_KERNEL); + if (!rtlpriv->usb_data) + return -ENOMEM; + + /* this spin lock must be initialized early */ + spin_lock_init(&rtlpriv->locks.usb_lock); + + rtlpriv->usb_data_index = 0; SET_IEEE80211_DEV(hw, &intf->dev); udev = interface_to_usbdev(intf); usb_get_dev(udev); @@ -921,7 +942,7 @@ usb_set_intfdata(intf, hw); /* init cfg & intf_ops */ rtlpriv->rtlhal.interface = INTF_USB; - rtlpriv->cfg = (struct rtl_hal_cfg *)(id->driver_info); + rtlpriv->cfg = rtl_hal_cfg; rtlpriv->intf_ops = &rtl_usb_ops; rtl_dbgp_flag_init(hw); /* Init IO handler */ @@ -988,6 +1009,7 @@ /* rtl_deinit_rfkill(hw); */ rtl_usb_deinit(hw); rtl_deinit_core(hw); + kfree(rtlpriv->usb_data); rtlpriv->cfg->ops->deinit_sw_leds(hw); rtlpriv->cfg->ops->deinit_sw_vars(hw); _rtl_usb_io_handler_release(hw); --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/usb.h +++ linux-3.2.0/drivers/net/wireless/rtlwifi/usb.h @@ -158,7 +158,8 @@ int __devinit rtl_usb_probe(struct usb_interface *intf, - const struct usb_device_id *id); + const struct usb_device_id *id, + struct rtl_hal_cfg *rtl92cu_hal_cfg); void rtl_usb_disconnect(struct usb_interface *intf); int rtl_usb_suspend(struct usb_interface *pusb_intf, pm_message_t message); int rtl_usb_resume(struct usb_interface *pusb_intf); --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192ce/def.h +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192ce/def.h @@ -117,6 +117,7 @@ #define CHIP_VER_B BIT(4) #define CHIP_92C_BITMASK BIT(0) +#define CHIP_UNKNOWN BIT(7) #define CHIP_92C_1T2R 0x03 #define CHIP_92C 0x01 #define CHIP_88C 0x00 --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c @@ -1001,8 +1001,16 @@ version = (value32 & TYPE_ID) ? VERSION_A_CHIP_92C : VERSION_A_CHIP_88C; } else { - version = (value32 & TYPE_ID) ? VERSION_B_CHIP_92C : - VERSION_B_CHIP_88C; + version = (enum version_8192c) (CHIP_VER_B | + ((value32 & TYPE_ID) ? CHIP_92C_BITMASK : 0) | + ((value32 & VENDOR_ID) ? CHIP_VENDOR_UMC : 0)); + if ((!IS_CHIP_VENDOR_UMC(version)) && (value32 & + CHIP_VER_RTL_MASK)) { + version = (enum version_8192c)(version | + ((((value32 & CHIP_VER_RTL_MASK) == BIT(12)) + ? CHIP_VENDOR_UMC_B_CUT : CHIP_UNKNOWN) | + CHIP_VENDOR_UMC)); + } } switch (version) { --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c @@ -165,12 +165,14 @@ /* request fw */ if (IS_VENDOR_UMC_A_CUT(rtlhal->version) && - !IS_92C_SERIAL(rtlhal->version)) + !IS_92C_SERIAL(rtlhal->version)) { fw_name = "rtlwifi/rtl8192cfwU.bin"; - else if (IS_81xxC_VENDOR_UMC_B_CUT(rtlhal->version)) + } else if (IS_81xxC_VENDOR_UMC_B_CUT(rtlhal->version)) { fw_name = "rtlwifi/rtl8192cfwU_B.bin"; - else + pr_info("****** This B_CUT device may not work with kernels 3.6 and earlier\n"); + } else { fw_name = rtlpriv->cfg->fw_name; + } err = request_firmware(&firmware, fw_name, rtlpriv->io.dev); if (err) { RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c @@ -1557,74 +1557,57 @@ void rtl92cu_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid) { - /* dummy routine needed for callback from rtl_op_configure_filter() */ -} - -/*========================================================================== */ - -static void _rtl92cu_set_check_bssid(struct ieee80211_hw *hw, - enum nl80211_iftype type) -{ struct rtl_priv *rtlpriv = rtl_priv(hw); - u32 reg_rcr = rtl_read_dword(rtlpriv, REG_RCR); struct rtl_hal *rtlhal = rtl_hal(rtlpriv); - struct rtl_phy *rtlphy = &(rtlpriv->phy); - u8 filterout_non_associated_bssid = false; + u32 reg_rcr = rtl_read_dword(rtlpriv, REG_RCR); - switch (type) { - case NL80211_IFTYPE_ADHOC: - case NL80211_IFTYPE_STATION: - filterout_non_associated_bssid = true; - break; - case NL80211_IFTYPE_UNSPECIFIED: - case NL80211_IFTYPE_AP: - default: - break; - } - if (filterout_non_associated_bssid) { + if (rtlpriv->psc.rfpwr_state != ERFON) + return; + + if (check_bssid) { + u8 tmp; if (IS_NORMAL_CHIP(rtlhal->version)) { - switch (rtlphy->current_io_type) { - case IO_CMD_RESUME_DM_BY_SCAN: - reg_rcr |= (RCR_CBSSID_DATA | RCR_CBSSID_BCN); - rtlpriv->cfg->ops->set_hw_reg(hw, - HW_VAR_RCR, (u8 *)(®_rcr)); - /* enable update TSF */ - _rtl92cu_set_bcn_ctrl_reg(hw, 0, BIT(4)); - break; - case IO_CMD_PAUSE_DM_BY_SCAN: - reg_rcr &= ~(RCR_CBSSID_DATA | RCR_CBSSID_BCN); - rtlpriv->cfg->ops->set_hw_reg(hw, - HW_VAR_RCR, (u8 *)(®_rcr)); - /* disable update TSF */ - _rtl92cu_set_bcn_ctrl_reg(hw, BIT(4), 0); - break; - } + reg_rcr |= (RCR_CBSSID_DATA | RCR_CBSSID_BCN); + tmp = BIT(4); } else { - reg_rcr |= (RCR_CBSSID); - rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, - (u8 *)(®_rcr)); - _rtl92cu_set_bcn_ctrl_reg(hw, 0, (BIT(4)|BIT(5))); + reg_rcr |= RCR_CBSSID; + tmp = BIT(4) | BIT(5); } - } else if (filterout_non_associated_bssid == false) { + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, + (u8 *) (®_rcr)); + _rtl92cu_set_bcn_ctrl_reg(hw, 0, tmp); + } else { + u8 tmp; if (IS_NORMAL_CHIP(rtlhal->version)) { - reg_rcr &= (~(RCR_CBSSID_DATA | RCR_CBSSID_BCN)); - rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, - (u8 *)(®_rcr)); - _rtl92cu_set_bcn_ctrl_reg(hw, BIT(4), 0); + reg_rcr &= ~(RCR_CBSSID_DATA | RCR_CBSSID_BCN); + tmp = BIT(4); } else { - reg_rcr &= (~RCR_CBSSID); - rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, - (u8 *)(®_rcr)); - _rtl92cu_set_bcn_ctrl_reg(hw, (BIT(4)|BIT(5)), 0); + reg_rcr &= ~RCR_CBSSID; + tmp = BIT(4) | BIT(5); } + reg_rcr &= (~(RCR_CBSSID_DATA | RCR_CBSSID_BCN)); + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_RCR, (u8 *) (®_rcr)); + _rtl92cu_set_bcn_ctrl_reg(hw, tmp, 0); } } +/*========================================================================== */ + int rtl92cu_set_network_type(struct ieee80211_hw *hw, enum nl80211_iftype type) { + struct rtl_priv *rtlpriv = rtl_priv(hw); + if (_rtl92cu_set_media_status(hw, type)) return -EOPNOTSUPP; - _rtl92cu_set_check_bssid(hw, type); + + if (rtlpriv->mac80211.link_state == MAC80211_LINKED) { + if (type != NL80211_IFTYPE_AP) + rtl92cu_set_check_bssid(hw, true); + } else { + rtl92cu_set_check_bssid(hw, false); + } + return 0; } @@ -2238,8 +2221,6 @@ (shortgi_rate << 4) | (shortgi_rate); } rtl_write_dword(rtlpriv, REG_ARFR0 + ratr_index * 4, ratr_value); - RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, ("%x\n", rtl_read_dword(rtlpriv, - REG_ARFR0))); } void rtl92cu_update_hal_rate_mask(struct ieee80211_hw *hw, u8 rssi_level) --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c @@ -275,6 +275,8 @@ {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8191, rtl92cu_hal_cfg)}, /****** 8188CU ********/ + /* RTL8188CTV */ + {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x018a, rtl92cu_hal_cfg)}, /* 8188CE-VAU USB minCard */ {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8170, rtl92cu_hal_cfg)}, /* 8188cu 1*1 dongle */ @@ -291,31 +293,39 @@ {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817e, rtl92cu_hal_cfg)}, /* 8188RU in Alfa AWUS036NHR */ {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817f, rtl92cu_hal_cfg)}, + /* RTL8188CUS-VL */ + {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x818a, rtl92cu_hal_cfg)}, + {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x819a, rtl92cu_hal_cfg)}, /* 8188 Combo for BC4 */ {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8754, rtl92cu_hal_cfg)}, /****** 8192CU ********/ - /* 8191cu 1*2 */ - {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8177, rtl92cu_hal_cfg)}, /* 8192cu 2*2 */ - {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817b, rtl92cu_hal_cfg)}, + {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8178, rtl92cu_hal_cfg)}, /* 8192CE-VAU USB minCard */ {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817c, rtl92cu_hal_cfg)}, /*=== Customer ID ===*/ /****** 8188CU ********/ {RTL_USB_DEVICE(0x050d, 0x1102, rtl92cu_hal_cfg)}, /*Belkin - Edimax*/ + {RTL_USB_DEVICE(0x050d, 0x11f2, rtl92cu_hal_cfg)}, /*Belkin - ISY*/ {RTL_USB_DEVICE(0x06f8, 0xe033, rtl92cu_hal_cfg)}, /*Hercules - Edimax*/ {RTL_USB_DEVICE(0x07b8, 0x8188, rtl92cu_hal_cfg)}, /*Abocom - Abocom*/ {RTL_USB_DEVICE(0x07b8, 0x8189, rtl92cu_hal_cfg)}, /*Funai - Abocom*/ {RTL_USB_DEVICE(0x0846, 0x9041, rtl92cu_hal_cfg)}, /*NetGear WNA1000M*/ - {RTL_USB_DEVICE(0x0Df6, 0x0052, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/ + {RTL_USB_DEVICE(0x0bda, 0x5088, rtl92cu_hal_cfg)}, /*Thinkware-CC&C*/ + {RTL_USB_DEVICE(0x0df6, 0x0052, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/ + {RTL_USB_DEVICE(0x0df6, 0x005c, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/ {RTL_USB_DEVICE(0x0eb0, 0x9071, rtl92cu_hal_cfg)}, /*NO Brand - Etop*/ + {RTL_USB_DEVICE(0x4856, 0x0091, rtl92cu_hal_cfg)}, /*NetweeN - Feixun*/ /* HP - Lite-On ,8188CUS Slim Combo */ {RTL_USB_DEVICE(0x103c, 0x1629, rtl92cu_hal_cfg)}, {RTL_USB_DEVICE(0x13d3, 0x3357, rtl92cu_hal_cfg)}, /* AzureWave */ {RTL_USB_DEVICE(0x2001, 0x3308, rtl92cu_hal_cfg)}, /*D-Link - Alpha*/ + {RTL_USB_DEVICE(0x2019, 0x4902, rtl92cu_hal_cfg)}, /*Planex - Etop*/ {RTL_USB_DEVICE(0x2019, 0xab2a, rtl92cu_hal_cfg)}, /*Planex - Abocom*/ + /*SW-WF02-AD15 -Abocom*/ + {RTL_USB_DEVICE(0x2019, 0xab2e, rtl92cu_hal_cfg)}, {RTL_USB_DEVICE(0x2019, 0xed17, rtl92cu_hal_cfg)}, /*PCI - Edimax*/ {RTL_USB_DEVICE(0x20f4, 0x648b, rtl92cu_hal_cfg)}, /*TRENDnet - Cameo*/ {RTL_USB_DEVICE(0x7392, 0x7811, rtl92cu_hal_cfg)}, /*Edimax - Edimax*/ @@ -326,23 +336,53 @@ {RTL_USB_DEVICE(0x4855, 0x0091, rtl92cu_hal_cfg)}, /* NetweeN-Feixun */ {RTL_USB_DEVICE(0x9846, 0x9041, rtl92cu_hal_cfg)}, /* Netgear Cameo */ + /****** 8188 RU ********/ + /* Netcore */ + {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x317f, rtl92cu_hal_cfg)}, + + /****** 8188CUS Slim Solo********/ + {RTL_USB_DEVICE(0x04f2, 0xaff7, rtl92cu_hal_cfg)}, /*Xavi*/ + {RTL_USB_DEVICE(0x04f2, 0xaff9, rtl92cu_hal_cfg)}, /*Xavi*/ + {RTL_USB_DEVICE(0x04f2, 0xaffa, rtl92cu_hal_cfg)}, /*Xavi*/ + + /****** 8188CUS Slim Combo ********/ + {RTL_USB_DEVICE(0x04f2, 0xaff8, rtl92cu_hal_cfg)}, /*Xavi*/ + {RTL_USB_DEVICE(0x04f2, 0xaffb, rtl92cu_hal_cfg)}, /*Xavi*/ + {RTL_USB_DEVICE(0x04f2, 0xaffc, rtl92cu_hal_cfg)}, /*Xavi*/ + {RTL_USB_DEVICE(0x2019, 0x1201, rtl92cu_hal_cfg)}, /*Planex-Vencer*/ + /****** 8192CU ********/ + {RTL_USB_DEVICE(0x050d, 0x2102, rtl92cu_hal_cfg)}, /*Belcom-Sercomm*/ + {RTL_USB_DEVICE(0x050d, 0x2103, rtl92cu_hal_cfg)}, /*Belcom-Edimax*/ {RTL_USB_DEVICE(0x0586, 0x341f, rtl92cu_hal_cfg)}, /*Zyxel -Abocom*/ {RTL_USB_DEVICE(0x07aa, 0x0056, rtl92cu_hal_cfg)}, /*ATKK-Gemtek*/ {RTL_USB_DEVICE(0x07b8, 0x8178, rtl92cu_hal_cfg)}, /*Funai -Abocom*/ + {RTL_USB_DEVICE(0x0846, 0x9021, rtl92cu_hal_cfg)}, /*Netgear-Sercomm*/ + {RTL_USB_DEVICE(0x0b05, 0x17ab, rtl92cu_hal_cfg)}, /*ASUS-Edimax*/ + {RTL_USB_DEVICE(0x0bda, 0x8186, rtl92cu_hal_cfg)}, /*Realtek 92CE-VAU*/ + {RTL_USB_DEVICE(0x0df6, 0x0061, rtl92cu_hal_cfg)}, /*Sitecom-Edimax*/ + {RTL_USB_DEVICE(0x0e66, 0x0019, rtl92cu_hal_cfg)}, /*Hawking-Edimax*/ {RTL_USB_DEVICE(0x2001, 0x3307, rtl92cu_hal_cfg)}, /*D-Link-Cameo*/ {RTL_USB_DEVICE(0x2001, 0x3309, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/ {RTL_USB_DEVICE(0x2001, 0x330a, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/ {RTL_USB_DEVICE(0x2019, 0xab2b, rtl92cu_hal_cfg)}, /*Planex -Abocom*/ + {RTL_USB_DEVICE(0x20f4, 0x624d, rtl92cu_hal_cfg)}, /*TRENDNet*/ + {RTL_USB_DEVICE(0x2357, 0x0100, rtl92cu_hal_cfg)}, /*TP-Link WN8200ND*/ {RTL_USB_DEVICE(0x7392, 0x7822, rtl92cu_hal_cfg)}, /*Edimax -Edimax*/ {} }; MODULE_DEVICE_TABLE(usb, rtl8192c_usb_ids); +static int rtl8192cu_probe(struct usb_interface *intf, + const struct usb_device_id *id) +{ + return rtl_usb_probe(intf, id, &rtl92cu_hal_cfg); +} + static struct usb_driver rtl8192cu_driver = { .name = "rtl8192cu", - .probe = rtl_usb_probe, + .probe = rtl8192cu_probe, .disconnect = rtl_usb_disconnect, .id_table = rtl8192c_usb_ids, --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192cu/rf.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192cu/rf.c @@ -104,7 +104,7 @@ tx_agc[RF90_PATH_A] = 0x10101010; tx_agc[RF90_PATH_B] = 0x10101010; } else if (rtlpriv->dm.dynamic_txhighpower_lvl == - TXHIGHPWRLEVEL_LEVEL1) { + TXHIGHPWRLEVEL_LEVEL2) { tx_agc[RF90_PATH_A] = 0x00000000; tx_agc[RF90_PATH_B] = 0x00000000; } else{ --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c @@ -1968,7 +1968,7 @@ break; case IO_CMD_PAUSE_DM_BY_SCAN: rtlphy->initgain_backup.xaagccore1 = dm_digtable.cur_igvalue; - dm_digtable.cur_igvalue = 0x17; + dm_digtable.cur_igvalue = 0x37; rtl92c_dm_write_dig(hw); break; default: --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c @@ -752,6 +752,8 @@ skb = dev_alloc_skb(totalpacketlen); + if (!skb) + return; memcpy((u8 *) skb_put(skb, totalpacketlen), &reserved_page_packet, totalpacketlen); --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c @@ -524,6 +524,10 @@ dm_digtable.cur_igvalue, dm_digtable.pre_igvalue, dm_digtable.backoff_val)); + dm_digtable.cur_igvalue += 2; + if (dm_digtable.cur_igvalue > 0x3f) + dm_digtable.cur_igvalue = 0x3f; + if (dm_digtable.pre_igvalue != dm_digtable.cur_igvalue) { rtl_set_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f, dm_digtable.cur_igvalue); @@ -1219,13 +1223,18 @@ ("PreState = %d, CurState = %d\n", p_ra->pre_ratr_state, p_ra->ratr_state)); - rcu_read_lock(); - sta = ieee80211_find_sta(mac->vif, mac->bssid); + /* Only the PCI card uses sta in the update rate table + * callback routine */ + if (rtlhal->interface == INTF_PCI) { + rcu_read_lock(); + sta = ieee80211_find_sta(mac->vif, mac->bssid); + } rtlpriv->cfg->ops->update_rate_tbl(hw, sta, p_ra->ratr_state); p_ra->pre_ratr_state = p_ra->ratr_state; - rcu_read_unlock(); + if (rtlhal->interface == INTF_PCI) + rcu_read_unlock(); } } } --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192de/fw.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192de/fw.c @@ -763,12 +763,16 @@ "rtl92d_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL\n", u1RsvdPageLoc, 3); skb = dev_alloc_skb(totalpacketlen); - memcpy((u8 *) skb_put(skb, totalpacketlen), &reserved_page_packet, - totalpacketlen); - rtstatus = _rtl92d_cmd_send_packet(hw, skb); + if (!skb) { + dlok = false; + } else { + memcpy((u8 *) skb_put(skb, totalpacketlen), + &reserved_page_packet, totalpacketlen); + rtstatus = _rtl92d_cmd_send_packet(hw, skb); - if (rtstatus) - dlok = true; + if (rtstatus) + dlok = true; + } if (dlok) { RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, ("Set RSVD page location to Fw.\n")); --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192de/phy.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192de/phy.c @@ -3192,7 +3192,7 @@ break; case IO_CMD_PAUSE_DM_BY_SCAN: rtlphy->initgain_backup.xaagccore1 = de_digtable.cur_igvalue; - de_digtable.cur_igvalue = 0x17; + de_digtable.cur_igvalue = 0x37; rtl92d_dm_write_dig(hw); break; default: @@ -3462,21 +3462,21 @@ switch (rtlhal->macphymode) { case DUALMAC_SINGLEPHY: rtlphy->rf_type = RF_2T2R; - rtlhal->version |= CHIP_92D_SINGLEPHY; + rtlhal->version |= RF_TYPE_2T2R; rtlhal->bandset = BAND_ON_BOTH; rtlhal->current_bandtype = BAND_ON_2_4G; break; case SINGLEMAC_SINGLEPHY: rtlphy->rf_type = RF_2T2R; - rtlhal->version |= CHIP_92D_SINGLEPHY; + rtlhal->version |= RF_TYPE_2T2R; rtlhal->bandset = BAND_ON_BOTH; rtlhal->current_bandtype = BAND_ON_2_4G; break; case DUALMAC_DUALPHY: rtlphy->rf_type = RF_1T1R; - rtlhal->version &= (~CHIP_92D_SINGLEPHY); + rtlhal->version &= RF_TYPE_1T1R; /* Now we let MAC0 run on 5G band. */ if (rtlhal->interfaceindex == 0) { rtlhal->bandset = BAND_ON_5G; --- linux-3.2.0.orig/drivers/net/wireless/rtlwifi/rtl8192se/fw.c +++ linux-3.2.0/drivers/net/wireless/rtlwifi/rtl8192se/fw.c @@ -196,6 +196,8 @@ /* Allocate skb buffer to contain firmware */ /* info and tx descriptor info. */ skb = dev_alloc_skb(frag_length); + if (!skb) + return false; skb_reserve(skb, extra_descoffset); seg_ptr = (u8 *)skb_put(skb, (u32)(frag_length - extra_descoffset)); @@ -573,6 +575,8 @@ len = _rtl92s_get_h2c_cmdlen(MAX_TRANSMIT_BUFFER_SIZE, 1, &cmd_len); skb = dev_alloc_skb(len); + if (!skb) + return false; cb_desc = (struct rtl_tcb_desc *)(skb->cb); cb_desc->queue_index = TXCMD_QUEUE; cb_desc->cmd_or_init = DESC_PACKET_TYPE_NORMAL; --- linux-3.2.0.orig/drivers/net/wireless/iwlegacy/iwl-3945.c +++ linux-3.2.0/drivers/net/wireless/iwlegacy/iwl-3945.c @@ -1870,11 +1870,12 @@ struct iwl_priv *priv = container_of(work, struct iwl_priv, _3945.thermal_periodic.work); - if (test_bit(STATUS_EXIT_PENDING, &priv->status)) - return; - mutex_lock(&priv->mutex); + if (test_bit(STATUS_EXIT_PENDING, &priv->status) || priv->txq == NULL) + goto out; + iwl3945_reg_txpower_periodic(priv); +out: mutex_unlock(&priv->mutex); } --- linux-3.2.0.orig/drivers/net/wireless/iwlegacy/iwl-4965-sta.c +++ linux-3.2.0/drivers/net/wireless/iwlegacy/iwl-4965-sta.c @@ -466,7 +466,7 @@ return 0; } - if (priv->stations[sta_id].sta.key.key_offset == WEP_INVALID_OFFSET) { + if (priv->stations[sta_id].sta.key.key_flags & STA_KEY_FLG_INVALID) { IWL_WARN(priv, "Removing wrong key %d 0x%x\n", keyconf->keyidx, key_flags); spin_unlock_irqrestore(&priv->sta_lock, flags); @@ -483,7 +483,7 @@ sizeof(struct iwl4965_keyinfo)); priv->stations[sta_id].sta.key.key_flags = STA_KEY_FLG_NO_ENC | STA_KEY_FLG_INVALID; - priv->stations[sta_id].sta.key.key_offset = WEP_INVALID_OFFSET; + priv->stations[sta_id].sta.key.key_offset = keyconf->hw_key_idx; priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK; priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; --- linux-3.2.0.orig/drivers/net/wireless/iwlegacy/iwl-core.c +++ linux-3.2.0/drivers/net/wireless/iwlegacy/iwl-core.c @@ -1884,14 +1884,12 @@ return; /* monitor and check for other stuck queues */ - if (iwl_legacy_is_any_associated(priv)) { - for (cnt = 0; cnt < priv->hw_params.max_txq_num; cnt++) { - /* skip as we already checked the command queue */ - if (cnt == priv->cmd_queue) - continue; - if (iwl_legacy_check_stuck_queue(priv, cnt)) - return; - } + for (cnt = 0; cnt < priv->hw_params.max_txq_num; cnt++) { + /* skip as we already checked the command queue */ + if (cnt == priv->cmd_queue) + continue; + if (iwl_legacy_check_stuck_queue(priv, cnt)) + return; } mod_timer(&priv->watchdog, jiffies + --- linux-3.2.0.orig/drivers/net/wireless/iwlegacy/iwl3945-base.c +++ linux-3.2.0/drivers/net/wireless/iwlegacy/iwl3945-base.c @@ -2513,7 +2513,7 @@ container_of(data, struct iwl_priv, alive_start.work); mutex_lock(&priv->mutex); - if (test_bit(STATUS_EXIT_PENDING, &priv->status)) + if (test_bit(STATUS_EXIT_PENDING, &priv->status) || priv->txq == NULL) goto out; iwl3945_alive_start(priv); @@ -2656,14 +2656,13 @@ IWL_WARN(priv, "Invalid scan band\n"); return -EIO; } - /* - * If active scaning is requested but a certain channel - * is marked passive, we can do active scanning if we - * detect transmissions. + * If active scaning is requested but a certain channel is marked + * passive, we can do active scanning if we detect transmissions. For + * passive only scanning disable switching to active on any channel. */ scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH_DEFAULT : - IWL_GOOD_CRC_TH_DISABLED; + IWL_GOOD_CRC_TH_NEVER; len = iwl_legacy_fill_probe_req(priv, (struct ieee80211_mgmt *)scan->data, vif->addr, priv->scan_request->ie, --- linux-3.2.0.orig/drivers/net/wireless/libertas/cfg.c +++ linux-3.2.0/drivers/net/wireless/libertas/cfg.c @@ -728,9 +728,11 @@ le16_to_cpu(scan_cmd->hdr.size), lbs_ret_scan, 0); - if (priv->scan_channel >= priv->scan_req->n_channels) + if (priv->scan_channel >= priv->scan_req->n_channels) { /* Mark scan done */ + cancel_delayed_work(&priv->scan_work); lbs_scan_done(priv); + } /* Restart network */ if (carrier) @@ -759,12 +761,12 @@ request->n_ssids, request->n_channels, request->ie_len); priv->scan_channel = 0; - queue_delayed_work(priv->work_thread, &priv->scan_work, - msecs_to_jiffies(50)); - priv->scan_req = request; priv->internal_scan = internal; + queue_delayed_work(priv->work_thread, &priv->scan_work, + msecs_to_jiffies(50)); + lbs_deb_leave(LBS_DEB_CFG80211); } --- linux-3.2.0.orig/drivers/net/wireless/wl12xx/testmode.c +++ linux-3.2.0/drivers/net/wireless/wl12xx/testmode.c @@ -36,6 +36,7 @@ WL1271_TM_CMD_TEST, WL1271_TM_CMD_INTERROGATE, WL1271_TM_CMD_CONFIGURE, + WL1271_TM_CMD_NVS_PUSH, /* Not in use. Keep to not break ABI */ WL1271_TM_CMD_SET_PLT_MODE, WL1271_TM_CMD_RECOVER, --- linux-3.2.0.orig/drivers/net/wireless/wl12xx/cmd.c +++ linux-3.2.0/drivers/net/wireless/wl12xx/cmd.c @@ -120,6 +120,11 @@ if (!wl->nvs) return -ENODEV; + if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) { + wl1271_warning("FEM index from INI out of bounds"); + return -EINVAL; + } + gen_parms = kzalloc(sizeof(*gen_parms), GFP_KERNEL); if (!gen_parms) return -ENOMEM; @@ -143,6 +148,12 @@ gp->tx_bip_fem_manufacturer = gen_parms->general_params.tx_bip_fem_manufacturer; + if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) { + wl1271_warning("FEM index from FW out of bounds"); + ret = -EINVAL; + goto out; + } + wl1271_debug(DEBUG_CMD, "FEM autodetect: %s, manufacturer: %d\n", answer ? "auto" : "manual", gp->tx_bip_fem_manufacturer); @@ -162,6 +173,11 @@ if (!wl->nvs) return -ENODEV; + if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) { + wl1271_warning("FEM index from ini out of bounds"); + return -EINVAL; + } + gen_parms = kzalloc(sizeof(*gen_parms), GFP_KERNEL); if (!gen_parms) return -ENOMEM; @@ -186,6 +202,12 @@ gp->tx_bip_fem_manufacturer = gen_parms->general_params.tx_bip_fem_manufacturer; + if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) { + wl1271_warning("FEM index from FW out of bounds"); + ret = -EINVAL; + goto out; + } + wl1271_debug(DEBUG_CMD, "FEM autodetect: %s, manufacturer: %d\n", answer ? "auto" : "manual", gp->tx_bip_fem_manufacturer); --- linux-3.2.0.orig/drivers/net/wireless/wl12xx/boot.c +++ linux-3.2.0/drivers/net/wireless/wl12xx/boot.c @@ -347,6 +347,9 @@ nvs_ptr += 3; for (i = 0; i < burst_len; i++) { + if (nvs_ptr + 3 >= (u8 *) wl->nvs + nvs_len) + goto out_badnvs; + val = (nvs_ptr[0] | (nvs_ptr[1] << 8) | (nvs_ptr[2] << 16) | (nvs_ptr[3] << 24)); @@ -358,6 +361,9 @@ nvs_ptr += 4; dest_addr += 4; } + + if (nvs_ptr >= (u8 *) wl->nvs + nvs_len) + goto out_badnvs; } /* @@ -369,6 +375,10 @@ */ nvs_ptr = (u8 *)wl->nvs + ALIGN(nvs_ptr - (u8 *)wl->nvs + 7, 4); + + if (nvs_ptr >= (u8 *) wl->nvs + nvs_len) + goto out_badnvs; + nvs_len -= nvs_ptr - (u8 *)wl->nvs; /* Now we must set the partition correctly */ @@ -384,6 +394,10 @@ kfree(nvs_aligned); return 0; + +out_badnvs: + wl1271_error("nvs data is malformed"); + return -EILSEQ; } static void wl1271_boot_enable_interrupts(struct wl1271 *wl) --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2x00queue.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2x00queue.c @@ -207,6 +207,7 @@ struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; struct rt2x00_intf *intf = vif_to_intf(tx_info->control.vif); + u16 seqno; if (!(tx_info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ)) return; @@ -227,15 +228,13 @@ * sequence counting per-frame, since those will override the * sequence counter given by mac80211. */ - spin_lock(&intf->seqlock); - if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags)) - intf->seqno += 0x10; - hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG); - hdr->seq_ctrl |= cpu_to_le16(intf->seqno); - - spin_unlock(&intf->seqlock); + seqno = atomic_add_return(0x10, &intf->seqno); + else + seqno = atomic_read(&intf->seqno); + hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG); + hdr->seq_ctrl |= cpu_to_le16(seqno); } static void rt2x00queue_create_tx_descriptor_plcp(struct rt2x00_dev *rt2x00dev, @@ -619,6 +618,9 @@ else if (test_bit(REQUIRE_DMA, &queue->rt2x00dev->cap_flags)) rt2x00queue_align_frame(skb); + /* + * That function must be called with bh disabled. + */ spin_lock(&queue->tx_lock); if (unlikely(rt2x00queue_full(queue))) { --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2800pci.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2800pci.c @@ -422,7 +422,6 @@ static void rt2800pci_toggle_irq(struct rt2x00_dev *rt2x00dev, enum dev_state state) { - int mask = (state == STATE_RADIO_IRQ_ON); u32 reg; unsigned long flags; @@ -436,25 +435,14 @@ } spin_lock_irqsave(&rt2x00dev->irqmask_lock, flags); - rt2x00pci_register_read(rt2x00dev, INT_MASK_CSR, ®); - rt2x00_set_field32(®, INT_MASK_CSR_RXDELAYINT, 0); - rt2x00_set_field32(®, INT_MASK_CSR_TXDELAYINT, 0); - rt2x00_set_field32(®, INT_MASK_CSR_RX_DONE, mask); - rt2x00_set_field32(®, INT_MASK_CSR_AC0_DMA_DONE, 0); - rt2x00_set_field32(®, INT_MASK_CSR_AC1_DMA_DONE, 0); - rt2x00_set_field32(®, INT_MASK_CSR_AC2_DMA_DONE, 0); - rt2x00_set_field32(®, INT_MASK_CSR_AC3_DMA_DONE, 0); - rt2x00_set_field32(®, INT_MASK_CSR_HCCA_DMA_DONE, 0); - rt2x00_set_field32(®, INT_MASK_CSR_MGMT_DMA_DONE, 0); - rt2x00_set_field32(®, INT_MASK_CSR_MCU_COMMAND, 0); - rt2x00_set_field32(®, INT_MASK_CSR_RXTX_COHERENT, 0); - rt2x00_set_field32(®, INT_MASK_CSR_TBTT, mask); - rt2x00_set_field32(®, INT_MASK_CSR_PRE_TBTT, mask); - rt2x00_set_field32(®, INT_MASK_CSR_TX_FIFO_STATUS, mask); - rt2x00_set_field32(®, INT_MASK_CSR_AUTO_WAKEUP, mask); - rt2x00_set_field32(®, INT_MASK_CSR_GPTIMER, 0); - rt2x00_set_field32(®, INT_MASK_CSR_RX_COHERENT, 0); - rt2x00_set_field32(®, INT_MASK_CSR_TX_COHERENT, 0); + reg = 0; + if (state == STATE_RADIO_IRQ_ON) { + rt2x00_set_field32(®, INT_MASK_CSR_RX_DONE, 1); + rt2x00_set_field32(®, INT_MASK_CSR_TBTT, 1); + rt2x00_set_field32(®, INT_MASK_CSR_PRE_TBTT, 1); + rt2x00_set_field32(®, INT_MASK_CSR_TX_FIFO_STATUS, 1); + rt2x00_set_field32(®, INT_MASK_CSR_AUTO_WAKEUP, 1); + } rt2x00pci_register_write(rt2x00dev, INT_MASK_CSR, reg); spin_unlock_irqrestore(&rt2x00dev->irqmask_lock, flags); @@ -947,6 +935,7 @@ static int rt2800pci_probe_hw(struct rt2x00_dev *rt2x00dev) { int retval; + u32 reg; /* * Allocate eeprom data. @@ -960,6 +949,14 @@ return retval; /* + * Enable rfkill polling by setting GPIO direction of the + * rfkill switch GPIO pin correctly. + */ + rt2x00pci_register_read(rt2x00dev, GPIO_CTRL_CFG, ®); + rt2x00_set_field32(®, GPIO_CTRL_CFG_GPIOD_BIT2, 1); + rt2x00pci_register_write(rt2x00dev, GPIO_CTRL_CFG, reg); + + /* * Initialize hw specifications. */ retval = rt2800_probe_hw_mode(rt2x00dev); --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2x00.h +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2x00.h @@ -390,8 +390,7 @@ * for hardware which doesn't support hardware * sequence counting. */ - spinlock_t seqlock; - u16 seqno; + atomic_t seqno; }; static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif) --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2400pci.h +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2400pci.h @@ -670,6 +670,7 @@ #define GPIOCSR_BIT5 FIELD32(0x00000020) #define GPIOCSR_BIT6 FIELD32(0x00000040) #define GPIOCSR_BIT7 FIELD32(0x00000080) +#define GPIOCSR_BIT8 FIELD32(0x00000100) /* * BBPPCSR: BBP Pin control register. --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt73usb.h +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt73usb.h @@ -282,6 +282,9 @@ #define MAC_CSR13_BIT10 FIELD32(0x00000400) #define MAC_CSR13_BIT11 FIELD32(0x00000800) #define MAC_CSR13_BIT12 FIELD32(0x00001000) +#define MAC_CSR13_BIT13 FIELD32(0x00002000) +#define MAC_CSR13_BIT14 FIELD32(0x00004000) +#define MAC_CSR13_BIT15 FIELD32(0x00008000) /* * MAC_CSR14: LED control register. --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2x00mac.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2x00mac.c @@ -152,13 +152,22 @@ if (unlikely(rt2x00queue_write_tx_frame(queue, skb, false))) goto exit_fail; + /* + * Pausing queue has to be serialized with rt2x00lib_txdone(). Note + * we should not use spin_lock_bh variant as bottom halve was already + * disabled before ieee80211_xmit() call. + */ + spin_lock(&queue->tx_lock); if (rt2x00queue_threshold(queue)) rt2x00queue_pause_queue(queue); + spin_unlock(&queue->tx_lock); return; exit_fail: + spin_lock(&queue->tx_lock); rt2x00queue_pause_queue(queue); + spin_unlock(&queue->tx_lock); exit_free_skb: dev_kfree_skb_any(skb); } @@ -268,7 +277,6 @@ else rt2x00dev->intf_sta_count++; - spin_lock_init(&intf->seqlock); mutex_init(&intf->beacon_skb_mutex); intf->beacon = entry; --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2400pci.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2400pci.c @@ -1611,6 +1611,7 @@ static int rt2400pci_probe_hw(struct rt2x00_dev *rt2x00dev) { int retval; + u32 reg; /* * Allocate eeprom data. @@ -1624,6 +1625,14 @@ return retval; /* + * Enable rfkill polling by setting GPIO direction of the + * rfkill switch GPIO pin correctly. + */ + rt2x00pci_register_read(rt2x00dev, GPIOCSR, ®); + rt2x00_set_field32(®, GPIOCSR_BIT8, 1); + rt2x00pci_register_write(rt2x00dev, GPIOCSR, reg); + + /* * Initialize hw specifications. */ retval = rt2400pci_probe_hw_mode(rt2x00dev); --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2800usb.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2800usb.c @@ -621,8 +621,16 @@ skb_pull(entry->skb, RXINFO_DESC_SIZE); /* - * FIXME: we need to check for rx_pkt_len validity + * Check for rx_pkt_len validity. Return if invalid, leaving + * rxdesc->size zeroed out by the upper level. */ + if (unlikely(rx_pkt_len == 0 || + rx_pkt_len > entry->queue->data_size)) { + ERROR(entry->queue->rt2x00dev, + "Bad frame size %d, forcing to 0\n", rx_pkt_len); + return; + } + rxd = (__le32 *)(entry->skb->data + rx_pkt_len); /* @@ -690,6 +698,7 @@ static int rt2800usb_probe_hw(struct rt2x00_dev *rt2x00dev) { int retval; + u32 reg; /* * Allocate eeprom data. @@ -703,6 +712,14 @@ return retval; /* + * Enable rfkill polling by setting GPIO direction of the + * rfkill switch GPIO pin correctly. + */ + rt2x00usb_register_read(rt2x00dev, GPIO_CTRL_CFG, ®); + rt2x00_set_field32(®, GPIO_CTRL_CFG_GPIOD_BIT2, 1); + rt2x00usb_register_write(rt2x00dev, GPIO_CTRL_CFG, reg); + + /* * Initialize hw specifications. */ retval = rt2800_probe_hw_mode(rt2x00dev); @@ -876,6 +893,7 @@ { USB_DEVICE(0x1482, 0x3c09) }, /* AirTies */ { USB_DEVICE(0x1eda, 0x2012) }, + { USB_DEVICE(0x1eda, 0x2210) }, { USB_DEVICE(0x1eda, 0x2310) }, /* Allwin */ { USB_DEVICE(0x8516, 0x2070) }, @@ -914,14 +932,17 @@ { USB_DEVICE(0x050d, 0x8053) }, { USB_DEVICE(0x050d, 0x805c) }, { USB_DEVICE(0x050d, 0x815c) }, + { USB_DEVICE(0x050d, 0x825a) }, { USB_DEVICE(0x050d, 0x825b) }, { USB_DEVICE(0x050d, 0x935a) }, { USB_DEVICE(0x050d, 0x935b) }, /* Buffalo */ { USB_DEVICE(0x0411, 0x00e8) }, { USB_DEVICE(0x0411, 0x0158) }, + { USB_DEVICE(0x0411, 0x015d) }, { USB_DEVICE(0x0411, 0x016f) }, { USB_DEVICE(0x0411, 0x01a2) }, + { USB_DEVICE(0x0411, 0x01ee) }, /* Corega */ { USB_DEVICE(0x07aa, 0x002f) }, { USB_DEVICE(0x07aa, 0x003c) }, @@ -934,15 +955,21 @@ { USB_DEVICE(0x07d1, 0x3c0e) }, { USB_DEVICE(0x07d1, 0x3c0f) }, { USB_DEVICE(0x07d1, 0x3c11) }, + { USB_DEVICE(0x07d1, 0x3c13) }, + { USB_DEVICE(0x07d1, 0x3c15) }, { USB_DEVICE(0x07d1, 0x3c16) }, + { USB_DEVICE(0x2001, 0x3c1b) }, + { USB_DEVICE(0x2001, 0x3c1e) }, /* Draytek */ { USB_DEVICE(0x07fa, 0x7712) }, /* DVICO */ { USB_DEVICE(0x0fe9, 0xb307) }, /* Edimax */ + { USB_DEVICE(0x7392, 0x4085) }, { USB_DEVICE(0x7392, 0x7711) }, { USB_DEVICE(0x7392, 0x7717) }, { USB_DEVICE(0x7392, 0x7718) }, + { USB_DEVICE(0x7392, 0x7722) }, /* Encore */ { USB_DEVICE(0x203d, 0x1480) }, { USB_DEVICE(0x203d, 0x14a9) }, @@ -976,6 +1003,8 @@ { USB_DEVICE(0x13b1, 0x0031) }, { USB_DEVICE(0x1737, 0x0070) }, { USB_DEVICE(0x1737, 0x0071) }, + { USB_DEVICE(0x1737, 0x0077) }, + { USB_DEVICE(0x1737, 0x0078) }, /* Logitec */ { USB_DEVICE(0x0789, 0x0162) }, { USB_DEVICE(0x0789, 0x0163) }, @@ -999,15 +1028,20 @@ { USB_DEVICE(0x0db0, 0x871b) }, { USB_DEVICE(0x0db0, 0x871c) }, { USB_DEVICE(0x0db0, 0x899a) }, + /* Ovislink */ + { USB_DEVICE(0x1b75, 0x3071) }, + { USB_DEVICE(0x1b75, 0x3072) }, /* Para */ { USB_DEVICE(0x20b8, 0x8888) }, /* Pegatron */ + { USB_DEVICE(0x1d4d, 0x0002) }, { USB_DEVICE(0x1d4d, 0x000c) }, { USB_DEVICE(0x1d4d, 0x000e) }, { USB_DEVICE(0x1d4d, 0x0011) }, /* Philips */ { USB_DEVICE(0x0471, 0x200f) }, /* Planex */ + { USB_DEVICE(0x2019, 0x5201) }, { USB_DEVICE(0x2019, 0xab25) }, { USB_DEVICE(0x2019, 0xed06) }, /* Quanta */ @@ -1054,7 +1088,10 @@ /* Sparklan */ { USB_DEVICE(0x15a9, 0x0006) }, /* Sweex */ + { USB_DEVICE(0x177f, 0x0153) }, { USB_DEVICE(0x177f, 0x0302) }, + { USB_DEVICE(0x177f, 0x0313) }, + { USB_DEVICE(0x177f, 0x0323) }, /* U-Media */ { USB_DEVICE(0x157e, 0x300e) }, { USB_DEVICE(0x157e, 0x3013) }, @@ -1074,6 +1111,12 @@ #ifdef CONFIG_RT2800USB_RT33XX /* Belkin */ { USB_DEVICE(0x050d, 0x945b) }, + /* D-Link */ + { USB_DEVICE(0x2001, 0x3c17) }, + /* Panasonic */ + { USB_DEVICE(0x083a, 0xb511) }, + /* Philips */ + { USB_DEVICE(0x0471, 0x20dd) }, /* Ralink */ { USB_DEVICE(0x148f, 0x3370) }, { USB_DEVICE(0x148f, 0x8070) }, @@ -1085,6 +1128,10 @@ { USB_DEVICE(0x8516, 0x3572) }, /* Askey */ { USB_DEVICE(0x1690, 0x0744) }, + { USB_DEVICE(0x1690, 0x0761) }, + { USB_DEVICE(0x1690, 0x0764) }, + /* ASUS */ + { USB_DEVICE(0x0b05, 0x179d) }, /* Cisco */ { USB_DEVICE(0x167b, 0x4001) }, /* EnGenius */ @@ -1099,6 +1146,9 @@ /* Sitecom */ { USB_DEVICE(0x0df6, 0x0041) }, { USB_DEVICE(0x0df6, 0x0062) }, + { USB_DEVICE(0x0df6, 0x0065) }, + { USB_DEVICE(0x0df6, 0x0066) }, + { USB_DEVICE(0x0df6, 0x0068) }, /* Toshiba */ { USB_DEVICE(0x0930, 0x0a07) }, /* Zinwell */ @@ -1108,6 +1158,9 @@ /* Azurewave */ { USB_DEVICE(0x13d3, 0x3329) }, { USB_DEVICE(0x13d3, 0x3365) }, + /* D-Link */ + { USB_DEVICE(0x2001, 0x3c1c) }, + { USB_DEVICE(0x2001, 0x3c1d) }, /* Ralink */ { USB_DEVICE(0x148f, 0x5370) }, { USB_DEVICE(0x148f, 0x5372) }, @@ -1131,32 +1184,23 @@ { USB_DEVICE(0x0b05, 0x1760) }, { USB_DEVICE(0x0b05, 0x1761) }, { USB_DEVICE(0x0b05, 0x1790) }, - { USB_DEVICE(0x0b05, 0x179d) }, /* AzureWave */ { USB_DEVICE(0x13d3, 0x3262) }, { USB_DEVICE(0x13d3, 0x3284) }, { USB_DEVICE(0x13d3, 0x3322) }, /* Belkin */ { USB_DEVICE(0x050d, 0x1003) }, - { USB_DEVICE(0x050d, 0x825a) }, /* Buffalo */ { USB_DEVICE(0x0411, 0x012e) }, { USB_DEVICE(0x0411, 0x0148) }, { USB_DEVICE(0x0411, 0x0150) }, - { USB_DEVICE(0x0411, 0x015d) }, /* Corega */ { USB_DEVICE(0x07aa, 0x0041) }, { USB_DEVICE(0x07aa, 0x0042) }, { USB_DEVICE(0x18c5, 0x0008) }, /* D-Link */ { USB_DEVICE(0x07d1, 0x3c0b) }, - { USB_DEVICE(0x07d1, 0x3c13) }, - { USB_DEVICE(0x07d1, 0x3c15) }, { USB_DEVICE(0x07d1, 0x3c17) }, - { USB_DEVICE(0x2001, 0x3c17) }, - /* Edimax */ - { USB_DEVICE(0x7392, 0x4085) }, - { USB_DEVICE(0x7392, 0x7722) }, /* Encore */ { USB_DEVICE(0x203d, 0x14a1) }, /* Gemtek */ @@ -1170,23 +1214,15 @@ /* LevelOne */ { USB_DEVICE(0x1740, 0x0605) }, { USB_DEVICE(0x1740, 0x0615) }, - /* Linksys */ - { USB_DEVICE(0x1737, 0x0077) }, - { USB_DEVICE(0x1737, 0x0078) }, /* Logitec */ { USB_DEVICE(0x0789, 0x0168) }, { USB_DEVICE(0x0789, 0x0169) }, /* Motorola */ { USB_DEVICE(0x100d, 0x9032) }, - /* Ovislink */ - { USB_DEVICE(0x1b75, 0x3071) }, - { USB_DEVICE(0x1b75, 0x3072) }, /* Pegatron */ { USB_DEVICE(0x05a6, 0x0101) }, - { USB_DEVICE(0x1d4d, 0x0002) }, { USB_DEVICE(0x1d4d, 0x0010) }, /* Planex */ - { USB_DEVICE(0x2019, 0x5201) }, { USB_DEVICE(0x2019, 0xab24) }, /* Qcom */ { USB_DEVICE(0x18e8, 0x6259) }, @@ -1202,9 +1238,6 @@ { USB_DEVICE(0x083a, 0xc522) }, { USB_DEVICE(0x083a, 0xd522) }, { USB_DEVICE(0x083a, 0xf511) }, - /* Sweex */ - { USB_DEVICE(0x177f, 0x0153) }, - { USB_DEVICE(0x177f, 0x0313) }, /* Zyxel */ { USB_DEVICE(0x0586, 0x341a) }, #endif --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2500usb.h +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2500usb.h @@ -189,14 +189,15 @@ * MAC_CSR19: GPIO control register. */ #define MAC_CSR19 0x0426 -#define MAC_CSR19_BIT0 FIELD32(0x0001) -#define MAC_CSR19_BIT1 FIELD32(0x0002) -#define MAC_CSR19_BIT2 FIELD32(0x0004) -#define MAC_CSR19_BIT3 FIELD32(0x0008) -#define MAC_CSR19_BIT4 FIELD32(0x0010) -#define MAC_CSR19_BIT5 FIELD32(0x0020) -#define MAC_CSR19_BIT6 FIELD32(0x0040) -#define MAC_CSR19_BIT7 FIELD32(0x0080) +#define MAC_CSR19_BIT0 FIELD16(0x0001) +#define MAC_CSR19_BIT1 FIELD16(0x0002) +#define MAC_CSR19_BIT2 FIELD16(0x0004) +#define MAC_CSR19_BIT3 FIELD16(0x0008) +#define MAC_CSR19_BIT4 FIELD16(0x0010) +#define MAC_CSR19_BIT5 FIELD16(0x0020) +#define MAC_CSR19_BIT6 FIELD16(0x0040) +#define MAC_CSR19_BIT7 FIELD16(0x0080) +#define MAC_CSR19_BIT8 FIELD16(0x0100) /* * MAC_CSR20: LED control register. --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt61pci.h +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt61pci.h @@ -372,6 +372,7 @@ #define MAC_CSR13_BIT10 FIELD32(0x00000400) #define MAC_CSR13_BIT11 FIELD32(0x00000800) #define MAC_CSR13_BIT12 FIELD32(0x00001000) +#define MAC_CSR13_BIT13 FIELD32(0x00002000) /* * MAC_CSR14: LED control register. --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2800lib.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2800lib.c @@ -2141,7 +2141,7 @@ /* * Check if temperature compensation is supported. */ - if (tssi_bounds[4] == 0xff) + if (tssi_bounds[4] == 0xff || step == 0xff) return 0; /* @@ -4208,7 +4208,8 @@ IEEE80211_HW_SIGNAL_DBM | IEEE80211_HW_SUPPORTS_PS | IEEE80211_HW_PS_NULLFUNC_STACK | - IEEE80211_HW_AMPDU_AGGREGATION; + IEEE80211_HW_AMPDU_AGGREGATION | + IEEE80211_HW_TEARDOWN_AGGR_ON_BAR_FAIL; /* * Don't set IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING for USB devices * unless we are capable of sending the buffered frames out after the --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt61pci.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt61pci.c @@ -2243,8 +2243,7 @@ static void rt61pci_wakeup(struct rt2x00_dev *rt2x00dev) { - struct ieee80211_conf conf = { .flags = 0 }; - struct rt2x00lib_conf libconf = { .conf = &conf }; + struct rt2x00lib_conf libconf = { .conf = &rt2x00dev->hw->conf }; rt61pci_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS); } @@ -2833,6 +2832,7 @@ static int rt61pci_probe_hw(struct rt2x00_dev *rt2x00dev) { int retval; + u32 reg; /* * Disable power saving. @@ -2851,6 +2851,14 @@ return retval; /* + * Enable rfkill polling by setting GPIO direction of the + * rfkill switch GPIO pin correctly. + */ + rt2x00pci_register_read(rt2x00dev, MAC_CSR13, ®); + rt2x00_set_field32(®, MAC_CSR13_BIT13, 1); + rt2x00pci_register_write(rt2x00dev, MAC_CSR13, reg); + + /* * Initialize hw specifications. */ retval = rt61pci_probe_hw_mode(rt2x00dev); --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2500usb.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2500usb.c @@ -283,7 +283,7 @@ u16 reg; rt2500usb_register_read(rt2x00dev, MAC_CSR19, ®); - return rt2x00_get_field32(reg, MAC_CSR19_BIT7); + return rt2x00_get_field16(reg, MAC_CSR19_BIT7); } #ifdef CONFIG_RT2X00_LIB_LEDS @@ -1768,6 +1768,7 @@ static int rt2500usb_probe_hw(struct rt2x00_dev *rt2x00dev) { int retval; + u16 reg; /* * Allocate eeprom data. @@ -1781,6 +1782,14 @@ return retval; /* + * Enable rfkill polling by setting GPIO direction of the + * rfkill switch GPIO pin correctly. + */ + rt2500usb_register_read(rt2x00dev, MAC_CSR19, ®); + rt2x00_set_field16(®, MAC_CSR19_BIT8, 0); + rt2500usb_register_write(rt2x00dev, MAC_CSR19, reg); + + /* * Initialize hw specifications. */ retval = rt2500usb_probe_hw_mode(rt2x00dev); @@ -1912,7 +1921,7 @@ { USB_DEVICE(0x0b05, 0x1706) }, { USB_DEVICE(0x0b05, 0x1707) }, /* Belkin */ - { USB_DEVICE(0x050d, 0x7050) }, + { USB_DEVICE(0x050d, 0x7050) }, /* FCC ID: K7SF5D7050A ver. 2.x */ { USB_DEVICE(0x050d, 0x7051) }, /* Cisco Systems */ { USB_DEVICE(0x13b1, 0x000d) }, --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2x00pci.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2x00pci.c @@ -52,8 +52,8 @@ udelay(REGISTER_BUSY_DELAY); } - ERROR(rt2x00dev, "Indirect register access failed: " - "offset=0x%.08x, value=0x%.08x\n", offset, *reg); + printk_once(KERN_ERR "%s() Indirect register access failed: " + "offset=0x%.08x, value=0x%.08x\n", __func__, offset, *reg); *reg = ~0; return 0; --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2500pci.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2500pci.c @@ -1929,6 +1929,7 @@ static int rt2500pci_probe_hw(struct rt2x00_dev *rt2x00dev) { int retval; + u32 reg; /* * Allocate eeprom data. @@ -1942,6 +1943,14 @@ return retval; /* + * Enable rfkill polling by setting GPIO direction of the + * rfkill switch GPIO pin correctly. + */ + rt2x00pci_register_read(rt2x00dev, GPIOCSR, ®); + rt2x00_set_field32(®, GPIOCSR_DIR0, 1); + rt2x00pci_register_write(rt2x00dev, GPIOCSR, reg); + + /* * Initialize hw specifications. */ retval = rt2500pci_probe_hw_mode(rt2x00dev); --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2x00dev.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -426,10 +426,14 @@ /* * If the data queue was below the threshold before the txdone * handler we must make sure the packet queue in the mac80211 stack - * is reenabled when the txdone handler has finished. + * is reenabled when the txdone handler has finished. This has to be + * serialized with rt2x00mac_tx(), otherwise we can wake up queue + * before it was stopped. */ + spin_lock_bh(&entry->queue->tx_lock); if (!rt2x00queue_threshold(entry->queue)) rt2x00queue_unpause_queue(entry->queue); + spin_unlock_bh(&entry->queue->tx_lock); } EXPORT_SYMBOL_GPL(rt2x00lib_txdone); @@ -620,7 +624,7 @@ */ if (unlikely(rxdesc.size == 0 || rxdesc.size > entry->queue->data_size)) { - WARNING(rt2x00dev, "Wrong frame size %d max %d.\n", + ERROR(rt2x00dev, "Wrong frame size %d max %d.\n", rxdesc.size, entry->queue->data_size); dev_kfree_skb(entry->skb); goto renew_skb; @@ -1142,7 +1146,9 @@ rt2x00dev->hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC) | BIT(NL80211_IFTYPE_AP) | +#ifdef CONFIG_MAC80211_MESH BIT(NL80211_IFTYPE_MESH_POINT) | +#endif BIT(NL80211_IFTYPE_WDS); /* --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt2x00usb.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2x00usb.c @@ -426,8 +426,8 @@ case QID_RX: if (!rt2x00queue_full(queue)) rt2x00queue_for_each_entry(queue, - Q_INDEX_DONE, Q_INDEX, + Q_INDEX_DONE, NULL, rt2x00usb_kick_rx_entry); break; --- linux-3.2.0.orig/drivers/net/wireless/rt2x00/rt73usb.c +++ linux-3.2.0/drivers/net/wireless/rt2x00/rt73usb.c @@ -2177,6 +2177,7 @@ static int rt73usb_probe_hw(struct rt2x00_dev *rt2x00dev) { int retval; + u32 reg; /* * Allocate eeprom data. @@ -2190,6 +2191,14 @@ return retval; /* + * Enable rfkill polling by setting GPIO direction of the + * rfkill switch GPIO pin correctly. + */ + rt2x00usb_register_read(rt2x00dev, MAC_CSR13, ®); + rt2x00_set_field32(®, MAC_CSR13_BIT15, 0); + rt2x00usb_register_write(rt2x00dev, MAC_CSR13, reg); + + /* * Initialize hw specifications. */ retval = rt73usb_probe_hw_mode(rt2x00dev); @@ -2412,6 +2421,7 @@ { USB_DEVICE(0x0b05, 0x1723) }, { USB_DEVICE(0x0b05, 0x1724) }, /* Belkin */ + { USB_DEVICE(0x050d, 0x7050) }, /* FCC ID: K7SF5D7050B ver. 3.x */ { USB_DEVICE(0x050d, 0x705a) }, { USB_DEVICE(0x050d, 0x905b) }, { USB_DEVICE(0x050d, 0x905c) }, --- linux-3.2.0.orig/drivers/net/wireless/brcm80211/Kconfig +++ linux-3.2.0/drivers/net/wireless/brcm80211/Kconfig @@ -5,7 +5,6 @@ tristate "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver" depends on PCI depends on MAC80211 - depends on BCMA=n select BRCMUTIL select FW_LOADER select CRC_CCITT --- linux-3.2.0.orig/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c +++ linux-3.2.0/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c @@ -1053,17 +1053,13 @@ } /* either retransmit or send bar if ack not recd */ if (!ack_recd) { - struct ieee80211_tx_rate *txrate = - tx_info->status.rates; - if (retry && (txrate[0].count < (int)retry_limit)) { + if (retry && (ini->txretry[index] < (int)retry_limit)) { ini->txretry[index]++; ini->tx_in_transit--; /* * Use high prededence for retransmit to * give some punch */ - /* brcms_c_txq_enq(wlc, scb, p, - * BRCMS_PRIO_TO_PREC(tid)); */ brcms_c_txq_enq(wlc, scb, p, BRCMS_PRIO_TO_HI_PREC(tid)); } else { @@ -1076,9 +1072,9 @@ IEEE80211_TX_STAT_AMPDU_NO_BACK; skb_pull(p, D11_PHY_HDR_LEN); skb_pull(p, D11_TXH_LEN); - wiphy_err(wiphy, "%s: BA Timeout, seq %d, in_" - "transit %d\n", "AMPDU status", seq, - ini->tx_in_transit); + BCMMSG(wiphy, + "BA Timeout, seq %d, in_transit %d\n", + seq, ini->tx_in_transit); ieee80211_tx_status_irqsafe(wlc->pub->ieee_hw, p); } --- linux-3.2.0.orig/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c +++ linux-3.2.0/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c @@ -1484,9 +1484,10 @@ #endif t->ms = ms; t->periodic = (bool) periodic; - t->set = true; - - atomic_inc(&t->wl->callbacks); + if (!t->set) { + t->set = true; + atomic_inc(&t->wl->callbacks); + } ieee80211_queue_delayed_work(hw, &t->dly_wrk, msecs_to_jiffies(ms)); } --- linux-3.2.0.orig/drivers/net/wireless/brcm80211/brcmsmac/main.c +++ linux-3.2.0/drivers/net/wireless/brcm80211/brcmsmac/main.c @@ -900,8 +900,7 @@ */ if (!(txs->status & TX_STATUS_AMPDU) && (txs->status & TX_STATUS_INTERMEDIATE)) { - wiphy_err(wlc->wiphy, "%s: INTERMEDIATE but not AMPDU\n", - __func__); + BCMMSG(wlc->wiphy, "INTERMEDIATE but not AMPDU\n"); return false; } @@ -7865,6 +7864,7 @@ { int len_mpdu; struct ieee80211_rx_status rx_status; + struct ieee80211_hdr *hdr; memset(&rx_status, 0, sizeof(rx_status)); prep_mac80211_status(wlc, rxh, p, &rx_status); @@ -7874,6 +7874,13 @@ skb_pull(p, D11_PHY_HDR_LEN); __skb_trim(p, len_mpdu); + /* unmute transmit */ + if (wlc->hw->suspended_fifos) { + hdr = (struct ieee80211_hdr *)p->data; + if (ieee80211_is_beacon(hdr->frame_control)) + brcms_b_mute(wlc->hw, false, 0); + } + memcpy(IEEE80211_SKB_RXCB(p), &rx_status, sizeof(rx_status)); ieee80211_rx_irqsafe(wlc->pub->ieee_hw, p); } @@ -8217,13 +8224,21 @@ void brcms_c_wait_for_tx_completion(struct brcms_c_info *wlc, bool drop) { + int timeout = 20; + /* flush packet queue when requested */ if (drop) brcmu_pktq_flush(&wlc->pkt_queue->q, false, NULL, NULL); /* wait for queue and DMA fifos to run dry */ - while (!pktq_empty(&wlc->pkt_queue->q) || brcms_txpktpendtot(wlc) > 0) + while (!pktq_empty(&wlc->pkt_queue->q) || brcms_txpktpendtot(wlc) > 0) { brcms_msleep(wlc->wl, 1); + + if (--timeout == 0) + break; + } + + WARN_ON_ONCE(timeout == 0); } void brcms_c_set_beacon_listen_interval(struct brcms_c_info *wlc, u8 interval) --- linux-3.2.0.orig/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c +++ linux-3.2.0/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c @@ -498,8 +498,10 @@ params_le->active_time = cpu_to_le32(-1); params_le->passive_time = cpu_to_le32(-1); params_le->home_time = cpu_to_le32(-1); - if (ssid && ssid->SSID_len) - memcpy(¶ms_le->ssid_le, ssid, sizeof(struct brcmf_ssid)); + if (ssid && ssid->SSID_len) { + params_le->ssid_le.SSID_len = cpu_to_le32(ssid->SSID_len); + memcpy(¶ms_le->ssid_le.SSID, ssid->SSID, ssid->SSID_len); + } } static s32 --- linux-3.2.0.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c +++ linux-3.2.0/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c @@ -775,8 +775,11 @@ { char iovbuf[32]; int retcode; + __le32 arp_mode_le; - brcmf_c_mkiovar("arp_ol", (char *)&arp_mode, 4, iovbuf, sizeof(iovbuf)); + arp_mode_le = cpu_to_le32(arp_mode); + brcmf_c_mkiovar("arp_ol", (char *)&arp_mode_le, 4, iovbuf, + sizeof(iovbuf)); retcode = brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_VAR, iovbuf, sizeof(iovbuf)); retcode = retcode >= 0 ? 0 : retcode; @@ -792,8 +795,11 @@ { char iovbuf[32]; int retcode; + __le32 arp_enable_le; - brcmf_c_mkiovar("arpoe", (char *)&arp_enable, 4, + arp_enable_le = cpu_to_le32(arp_enable); + + brcmf_c_mkiovar("arpoe", (char *)&arp_enable_le, 4, iovbuf, sizeof(iovbuf)); retcode = brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_VAR, iovbuf, sizeof(iovbuf)); @@ -814,10 +820,10 @@ char buf[128], *ptr; u32 dongle_align = BRCMF_SDALIGN; u32 glom = 0; - u32 roaming = 1; - uint bcn_timeout = 3; - int scan_assoc_time = 40; - int scan_unassoc_time = 40; + __le32 roaming_le = cpu_to_le32(1); + __le32 bcn_timeout_le = cpu_to_le32(3); + __le32 scan_assoc_time_le = cpu_to_le32(40); + __le32 scan_unassoc_time_le = cpu_to_le32(40); int i; brcmf_os_proto_block(drvr); @@ -852,14 +858,14 @@ /* Setup timeout if Beacons are lost and roam is off to report link down */ - brcmf_c_mkiovar("bcn_timeout", (char *)&bcn_timeout, 4, iovbuf, + brcmf_c_mkiovar("bcn_timeout", (char *)&bcn_timeout_le, 4, iovbuf, sizeof(iovbuf)); brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_VAR, iovbuf, sizeof(iovbuf)); /* Enable/Disable build-in roaming to allowed ext supplicant to take of romaing */ - brcmf_c_mkiovar("roam_off", (char *)&roaming, 4, + brcmf_c_mkiovar("roam_off", (char *)&roaming_le, 4, iovbuf, sizeof(iovbuf)); brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_VAR, iovbuf, sizeof(iovbuf)); @@ -874,9 +880,9 @@ sizeof(iovbuf)); brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_SCAN_CHANNEL_TIME, - (char *)&scan_assoc_time, sizeof(scan_assoc_time)); + (char *)&scan_assoc_time_le, sizeof(scan_assoc_time_le)); brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_SCAN_UNASSOC_TIME, - (char *)&scan_unassoc_time, sizeof(scan_unassoc_time)); + (char *)&scan_unassoc_time_le, sizeof(scan_unassoc_time_le)); /* Set and enable ARP offload feature */ brcmf_c_arp_offload_set(drvr, BRCMF_ARPOL_MODE); --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-debug.h +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-debug.h @@ -31,14 +31,33 @@ #include "iwl-bus.h" #include "iwl-shared.h" +#include "iwl-devtrace.h" struct iwl_priv; -/*No matter what is m (priv, bus, trans), this will work */ -#define IWL_ERR(m, f, a...) dev_err(bus(m)->dev, f, ## a) -#define IWL_WARN(m, f, a...) dev_warn(bus(m)->dev, f, ## a) -#define IWL_INFO(m, f, a...) dev_info(bus(m)->dev, f, ## a) -#define IWL_CRIT(m, f, a...) dev_crit(bus(m)->dev, f, ## a) +void __iwl_err(struct device *dev, bool rfkill_prefix, bool only_trace, + const char *fmt, ...); +void __iwl_warn(struct device *dev, const char *fmt, ...); +void __iwl_info(struct device *dev, const char *fmt, ...); +void __iwl_crit(struct device *dev, const char *fmt, ...); + +/* No matter what is m (priv, bus, trans), this will work */ +#define IWL_ERR(m, f, a...) __iwl_err(bus(m)->dev, false, false, f, ## a) +#define IWL_WARN(m, f, a...) __iwl_warn(bus(m)->dev, f, ## a) +#define IWL_INFO(m, f, a...) __iwl_info(bus(m)->dev, f, ## a) +#define IWL_CRIT(m, f, a...) __iwl_crit(bus(m)->dev, f, ## a) + +#if defined(CONFIG_IWLWIFI_DEBUG) || defined(CONFIG_IWLWIFI_DEVICE_TRACING) +void __iwl_dbg(struct iwl_shared *shared, struct device *dev, + u32 level, bool limit, const char *function, + const char *fmt, ...); +#else +static inline void +__iwl_dbg(struct iwl_shared *shared, struct device *dev, + u32 level, bool limit, const char *function, + const char *fmt, ...) +{} +#endif #define iwl_print_hex_error(m, p, len) \ do { \ @@ -46,34 +65,36 @@ DUMP_PREFIX_OFFSET, 16, 1, p, len, 1); \ } while (0) -#ifdef CONFIG_IWLWIFI_DEBUG #define IWL_DEBUG(m, level, fmt, args...) \ -do { \ - if (iwl_get_debug_level((m)->shrd) & (level)) \ - dev_printk(KERN_ERR, bus(m)->dev, \ - "%c %s " fmt, in_interrupt() ? 'I' : 'U', \ - __func__ , ## args); \ -} while (0) - + __iwl_dbg((m)->shrd, bus(m)->dev, level, false, __func__, fmt, ##args) #define IWL_DEBUG_LIMIT(m, level, fmt, args...) \ -do { \ - if (iwl_get_debug_level((m)->shrd) & (level) && net_ratelimit())\ - dev_printk(KERN_ERR, bus(m)->dev, \ - "%c %s " fmt, in_interrupt() ? 'I' : 'U', \ - __func__ , ## args); \ -} while (0) + __iwl_dbg((m)->shrd, bus(m)->dev, level, true, __func__, fmt, ##args) +#ifdef CONFIG_IWLWIFI_DEBUG #define iwl_print_hex_dump(m, level, p, len) \ do { \ if (iwl_get_debug_level((m)->shrd) & level) \ print_hex_dump(KERN_DEBUG, "iwl data: ", \ DUMP_PREFIX_OFFSET, 16, 1, p, len, 1); \ } while (0) - +#define IWL_DEBUG_QUIET_RFKILL(m, fmt, args...) \ +do { \ + if (!iwl_is_rfkill((m)->shrd)) \ + IWL_ERR(m, fmt, ##args); \ + else \ + __iwl_err(trans(m)->dev, true, \ + !(iwl_get_debug_level((m)->shrd) & IWL_DL_RADIO),\ + fmt, ##args); \ +} while (0) #else -#define IWL_DEBUG(m, level, fmt, args...) -#define IWL_DEBUG_LIMIT(m, level, fmt, args...) #define iwl_print_hex_dump(m, level, p, len) +#define IWL_DEBUG_QUIET_RFKILL(m, fmt, args...) \ +do { \ + if (!iwl_is_rfkill((m)->shrd)) \ + IWL_ERR(m, fmt, ##args); \ + else \ + __iwl_err(trans(m)->dev, true, true, fmt, ##args); \ +} while (0) #endif /* CONFIG_IWLWIFI_DEBUG */ #ifdef CONFIG_IWLWIFI_DEBUGFS --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-6000.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-6000.c @@ -46,17 +46,23 @@ #include "iwl-cfg.h" /* Highest firmware API version supported */ -#define IWL6000_UCODE_API_MAX 4 +#define IWL6000_UCODE_API_MAX 6 #define IWL6050_UCODE_API_MAX 5 #define IWL6000G2_UCODE_API_MAX 6 +#define IWL6035_UCODE_API_MAX 6 /* Oldest version we won't warn about */ +#define IWL6000_UCODE_API_OK 4 #define IWL6000G2_UCODE_API_OK 5 +#define IWL6050_UCODE_API_OK 5 +#define IWL6000G2B_UCODE_API_OK 6 +#define IWL6035_UCODE_API_OK 6 /* Lowest firmware API version supported */ #define IWL6000_UCODE_API_MIN 4 #define IWL6050_UCODE_API_MIN 4 -#define IWL6000G2_UCODE_API_MIN 4 +#define IWL6000G2_UCODE_API_MIN 5 +#define IWL6035_UCODE_API_MIN 6 #define IWL6000_FW_PRE "iwlwifi-6000-" #define IWL6000_MODULE_FIRMWARE(api) IWL6000_FW_PRE __stringify(api) ".ucode" @@ -187,7 +193,7 @@ * See iwlagn_mac_channel_switch. */ struct iwl_rxon_context *ctx = &priv->contexts[IWL_RXON_CTX_BSS]; - struct iwl6000_channel_switch_cmd cmd; + struct iwl6000_channel_switch_cmd *cmd; const struct iwl_channel_info *ch_info; u32 switch_time_in_usec, ucode_switch_time; u16 ch; @@ -197,18 +203,25 @@ struct ieee80211_vif *vif = ctx->vif; struct iwl_host_cmd hcmd = { .id = REPLY_CHANNEL_SWITCH, - .len = { sizeof(cmd), }, + .len = { sizeof(*cmd), }, .flags = CMD_SYNC, - .data = { &cmd, }, + .dataflags[0] = IWL_HCMD_DFL_NOCOPY, }; + int err; - cmd.band = priv->band == IEEE80211_BAND_2GHZ; + cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); + if (!cmd) + return -ENOMEM; + + hcmd.data[0] = cmd; + + cmd->band = priv->band == IEEE80211_BAND_2GHZ; ch = ch_switch->channel->hw_value; IWL_DEBUG_11H(priv, "channel switch from %u to %u\n", ctx->active.channel, ch); - cmd.channel = cpu_to_le16(ch); - cmd.rxon_flags = ctx->staging.flags; - cmd.rxon_filter_flags = ctx->staging.filter_flags; + cmd->channel = cpu_to_le16(ch); + cmd->rxon_flags = ctx->staging.flags; + cmd->rxon_filter_flags = ctx->staging.filter_flags; switch_count = ch_switch->count; tsf_low = ch_switch->timestamp & 0x0ffffffff; /* @@ -224,30 +237,32 @@ switch_count = 0; } if (switch_count <= 1) - cmd.switch_time = cpu_to_le32(priv->ucode_beacon_time); + cmd->switch_time = cpu_to_le32(priv->ucode_beacon_time); else { switch_time_in_usec = vif->bss_conf.beacon_int * switch_count * TIME_UNIT; ucode_switch_time = iwl_usecs_to_beacons(priv, switch_time_in_usec, beacon_interval); - cmd.switch_time = iwl_add_beacon_time(priv, - priv->ucode_beacon_time, - ucode_switch_time, - beacon_interval); + cmd->switch_time = iwl_add_beacon_time(priv, + priv->ucode_beacon_time, + ucode_switch_time, + beacon_interval); } IWL_DEBUG_11H(priv, "uCode time for the switch is 0x%x\n", - cmd.switch_time); + cmd->switch_time); ch_info = iwl_get_channel_info(priv, priv->band, ch); if (ch_info) - cmd.expect_beacon = is_channel_radar(ch_info); + cmd->expect_beacon = is_channel_radar(ch_info); else { IWL_ERR(priv, "invalid channel switch from %u to %u\n", ctx->active.channel, ch); return -EFAULT; } - return iwl_trans_send_cmd(trans(priv), &hcmd); + err = iwl_trans_send_cmd(trans(priv), &hcmd); + kfree(cmd); + return err; } static struct iwl_lib_ops iwl6000_lib = { @@ -305,7 +320,7 @@ .chain_noise_scale = 1000, .wd_timeout = IWL_DEF_WD_TIMEOUT, .max_event_log_size = 512, - .shadow_reg_enable = true, + .shadow_reg_enable = false, /* TODO: fix bugs using this feature */ }; static struct iwl_base_params iwl6050_base_params = { @@ -322,7 +337,7 @@ .chain_noise_scale = 1500, .wd_timeout = IWL_DEF_WD_TIMEOUT, .max_event_log_size = 1024, - .shadow_reg_enable = true, + .shadow_reg_enable = false, /* TODO: fix bugs using this feature */ }; static struct iwl_base_params iwl6000_g2_base_params = { .eeprom_size = OTP_LOW_IMAGE_SIZE, @@ -338,7 +353,7 @@ .chain_noise_scale = 1000, .wd_timeout = IWL_LONG_WD_TIMEOUT, .max_event_log_size = 512, - .shadow_reg_enable = true, + .shadow_reg_enable = false, /* TODO: fix bugs using this feature */ }; static struct iwl_ht_params iwl6000_ht_params = { @@ -399,7 +414,7 @@ #define IWL_DEVICE_6030 \ .fw_name_pre = IWL6030_FW_PRE, \ .ucode_api_max = IWL6000G2_UCODE_API_MAX, \ - .ucode_api_ok = IWL6000G2_UCODE_API_OK, \ + .ucode_api_ok = IWL6000G2B_UCODE_API_OK, \ .ucode_api_min = IWL6000G2_UCODE_API_MIN, \ .eeprom_ver = EEPROM_6030_EEPROM_VERSION, \ .eeprom_calib_ver = EEPROM_6030_TX_POWER_VERSION, \ @@ -433,9 +448,24 @@ IWL_DEVICE_6030, }; +#define IWL_DEVICE_6035 \ + .fw_name_pre = IWL6030_FW_PRE, \ + .ucode_api_max = IWL6035_UCODE_API_MAX, \ + .ucode_api_ok = IWL6035_UCODE_API_OK, \ + .ucode_api_min = IWL6035_UCODE_API_MIN, \ + .eeprom_ver = EEPROM_6030_EEPROM_VERSION, \ + .eeprom_calib_ver = EEPROM_6030_TX_POWER_VERSION, \ + .lib = &iwl6030_lib, \ + .base_params = &iwl6000_g2_base_params, \ + .bt_params = &iwl6000_bt_params, \ + .need_dc_calib = true, \ + .need_temp_offset_calib = true, \ + .led_mode = IWL_LED_RF_STATE, \ + .adv_pm = true + struct iwl_cfg iwl6035_2agn_cfg = { .name = "6035 Series 2x2 AGN/BT", - IWL_DEVICE_6030, + IWL_DEVICE_6035, .ht_params = &iwl6000_ht_params, }; @@ -479,6 +509,7 @@ #define IWL_DEVICE_6000i \ .fw_name_pre = IWL6000_FW_PRE, \ .ucode_api_max = IWL6000_UCODE_API_MAX, \ + .ucode_api_ok = IWL6000_UCODE_API_OK, \ .ucode_api_min = IWL6000_UCODE_API_MIN, \ .valid_tx_ant = ANT_BC, /* .cfg overwrite */ \ .valid_rx_ant = ANT_BC, /* .cfg overwrite */ \ @@ -559,6 +590,7 @@ .name = "Intel(R) Centrino(R) Ultimate-N 6300 AGN", .fw_name_pre = IWL6000_FW_PRE, .ucode_api_max = IWL6000_UCODE_API_MAX, + .ucode_api_ok = IWL6000_UCODE_API_OK, .ucode_api_min = IWL6000_UCODE_API_MIN, .eeprom_ver = EEPROM_6000_EEPROM_VERSION, .eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION, @@ -569,7 +601,7 @@ .led_mode = IWL_LED_BLINK, }; -MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); -MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_MAX)); -MODULE_FIRMWARE(IWL6005_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX)); -MODULE_FIRMWARE(IWL6030_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX)); +MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_OK)); +MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_OK)); +MODULE_FIRMWARE(IWL6005_MODULE_FIRMWARE(IWL6000G2_UCODE_API_OK)); +MODULE_FIRMWARE(IWL6030_MODULE_FIRMWARE(IWL6000G2B_UCODE_API_OK)); --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-agn-lib.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-agn-lib.c @@ -827,6 +827,7 @@ case IEEE80211_SMPS_STATIC: case IEEE80211_SMPS_DYNAMIC: return IWL_NUM_IDLE_CHAINS_SINGLE; + case IEEE80211_SMPS_AUTOMATIC: case IEEE80211_SMPS_OFF: return active_cnt; default: --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c @@ -311,6 +311,14 @@ rxb->page_dma = dma_map_page(bus(trans)->dev, page, 0, PAGE_SIZE << hw_params(trans).rx_page_order, DMA_FROM_DEVICE); + if (dma_mapping_error(bus(trans)->dev, rxb->page_dma)) { + rxb->page = NULL; + spin_lock_irqsave(&rxq->lock, flags); + list_add(&rxb->list, &rxq->rx_used); + spin_unlock_irqrestore(&rxq->lock, flags); + __free_pages(page, hw_params(trans).rx_page_order); + return; + } /* dma address must be no more than 36 bits */ BUG_ON(rxb->page_dma & ~DMA_BIT_MASK(36)); /* and also 256 byte aligned! */ @@ -489,8 +497,19 @@ 0, PAGE_SIZE << hw_params(trans).rx_page_order, DMA_FROM_DEVICE); - list_add_tail(&rxb->list, &rxq->rx_free); - rxq->free_count++; + if (dma_mapping_error(bus(trans)->dev, rxb->page_dma)) { + /* + * free the page(s) as well to not break + * the invariant that the items on the used + * list have no page(s) + */ + __free_pages(rxb->page, hw_params(trans).rx_page_order); + rxb->page = NULL; + list_add_tail(&rxb->list, &rxq->rx_used); + } else { + list_add_tail(&rxb->list, &rxq->rx_free); + rxq->free_count++; + } } else list_add_tail(&rxb->list, &rxq->rx_used); @@ -678,7 +697,7 @@ iwl_dump_nic_error_log(trans); iwl_dump_csr(trans); - iwl_dump_fh(trans, NULL, false); + iwl_dump_fh(trans, NULL); iwl_dump_nic_event_log(trans, false, NULL, false); #ifdef CONFIG_IWLWIFI_DEBUG if (iwl_get_debug_level(trans->shrd) & IWL_DL_FW_ERRORS) @@ -957,11 +976,11 @@ } #endif - spin_unlock_irqrestore(&trans->shrd->lock, flags); - /* saved interrupt in inta variable now we can reset trans_pcie->inta */ trans_pcie->inta = 0; + spin_unlock_irqrestore(&trans->shrd->lock, flags); + /* Now service all interrupt bits discovered above. */ if (inta & CSR_INT_BIT_HW_ERR) { IWL_ERR(trans, "Hardware error detected. Restarting.\n"); @@ -1136,7 +1155,11 @@ * ICT functions * ******************************************************************************/ -#define ICT_COUNT (PAGE_SIZE/sizeof(u32)) + +/* a device (PCI-E) page is 4096 bytes long */ +#define ICT_SHIFT 12 +#define ICT_SIZE (1 << ICT_SHIFT) +#define ICT_COUNT (ICT_SIZE / sizeof(u32)) /* Free dram table */ void iwl_free_isr_ict(struct iwl_trans *trans) @@ -1144,21 +1167,19 @@ struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); - if (trans_pcie->ict_tbl_vir) { - dma_free_coherent(bus(trans)->dev, - (sizeof(u32) * ICT_COUNT) + PAGE_SIZE, - trans_pcie->ict_tbl_vir, + if (trans_pcie->ict_tbl) { + dma_free_coherent(bus(trans)->dev, ICT_SIZE, + trans_pcie->ict_tbl, trans_pcie->ict_tbl_dma); - trans_pcie->ict_tbl_vir = NULL; - memset(&trans_pcie->ict_tbl_dma, 0, - sizeof(trans_pcie->ict_tbl_dma)); - memset(&trans_pcie->aligned_ict_tbl_dma, 0, - sizeof(trans_pcie->aligned_ict_tbl_dma)); + trans_pcie->ict_tbl = NULL; + trans_pcie->ict_tbl_dma = 0; } } -/* allocate dram shared table it is a PAGE_SIZE aligned +/* + * allocate dram shared table, it is an aligned memory + * block of ICT_SIZE. * also reset all data related to ICT table interrupt. */ int iwl_alloc_isr_ict(struct iwl_trans *trans) @@ -1166,36 +1187,26 @@ struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); - /* allocate shrared data table */ - trans_pcie->ict_tbl_vir = - dma_alloc_coherent(bus(trans)->dev, - (sizeof(u32) * ICT_COUNT) + PAGE_SIZE, - &trans_pcie->ict_tbl_dma, GFP_KERNEL); - if (!trans_pcie->ict_tbl_vir) + trans_pcie->ict_tbl = + dma_alloc_coherent(bus(trans)->dev, ICT_SIZE, + &trans_pcie->ict_tbl_dma, + GFP_KERNEL); + if (!trans_pcie->ict_tbl) return -ENOMEM; - /* align table to PAGE_SIZE boundary */ - trans_pcie->aligned_ict_tbl_dma = - ALIGN(trans_pcie->ict_tbl_dma, PAGE_SIZE); - - IWL_DEBUG_ISR(trans, "ict dma addr %Lx dma aligned %Lx diff %d\n", - (unsigned long long)trans_pcie->ict_tbl_dma, - (unsigned long long)trans_pcie->aligned_ict_tbl_dma, - (int)(trans_pcie->aligned_ict_tbl_dma - - trans_pcie->ict_tbl_dma)); - - trans_pcie->ict_tbl = trans_pcie->ict_tbl_vir + - (trans_pcie->aligned_ict_tbl_dma - - trans_pcie->ict_tbl_dma); - - IWL_DEBUG_ISR(trans, "ict vir addr %p vir aligned %p diff %d\n", - trans_pcie->ict_tbl, trans_pcie->ict_tbl_vir, - (int)(trans_pcie->aligned_ict_tbl_dma - - trans_pcie->ict_tbl_dma)); + /* just an API sanity check ... it is guaranteed to be aligned */ + if (WARN_ON(trans_pcie->ict_tbl_dma & (ICT_SIZE - 1))) { + iwl_free_isr_ict(trans); + return -EINVAL; + } + + IWL_DEBUG_ISR(trans, "ict dma addr %Lx\n", + (unsigned long long)trans_pcie->ict_tbl_dma); + + IWL_DEBUG_ISR(trans, "ict vir addr %p\n", trans_pcie->ict_tbl); /* reset table and index to all 0 */ - memset(trans_pcie->ict_tbl_vir, 0, - (sizeof(u32) * ICT_COUNT) + PAGE_SIZE); + memset(trans_pcie->ict_tbl, 0, ICT_SIZE); trans_pcie->ict_index = 0; /* add periodic RX interrupt */ @@ -1213,23 +1224,20 @@ struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); - if (!trans_pcie->ict_tbl_vir) + if (!trans_pcie->ict_tbl) return 0; spin_lock_irqsave(&trans->shrd->lock, flags); iwl_disable_interrupts(trans); - memset(&trans_pcie->ict_tbl[0], 0, sizeof(u32) * ICT_COUNT); + memset(trans_pcie->ict_tbl, 0, ICT_SIZE); - val = trans_pcie->aligned_ict_tbl_dma >> PAGE_SHIFT; + val = trans_pcie->ict_tbl_dma >> ICT_SHIFT; val |= CSR_DRAM_INT_TBL_ENABLE; val |= CSR_DRAM_INIT_TBL_WRAP_CHECK; - IWL_DEBUG_ISR(trans, "CSR_DRAM_INT_TBL_REG =0x%X " - "aligned dma address %Lx\n", - val, - (unsigned long long)trans_pcie->aligned_ict_tbl_dma); + IWL_DEBUG_ISR(trans, "CSR_DRAM_INT_TBL_REG =0x%x\n", val); iwl_write32(bus(trans), CSR_DRAM_INT_TBL_REG, val); trans_pcie->use_ict = true; @@ -1274,12 +1282,20 @@ * back-to-back ISRs and sporadic interrupts from our NIC. * If we have something to service, the tasklet will re-enable ints. * If we *don't* have something, we'll re-enable before leaving here. */ - inta_mask = iwl_read32(bus(trans), CSR_INT_MASK); /* just for debug */ + inta_mask = iwl_read32(bus(trans), CSR_INT_MASK); iwl_write32(bus(trans), CSR_INT_MASK, 0x00000000); /* Discover which interrupts are active/pending */ inta = iwl_read32(bus(trans), CSR_INT); + if (inta & (~inta_mask)) { + IWL_DEBUG_ISR(trans, + "We got a masked interrupt (0x%08x)...Ack and ignore\n", + inta & (~inta_mask)); + iwl_write32(bus(trans), CSR_INT, inta & (~inta_mask)); + inta &= inta_mask; + } + /* Ignore interrupt if there's nothing in NIC to service. * This may be due to IRQ shared with another device, * or due to sporadic interrupts thrown from our NIC. */ @@ -1360,7 +1376,7 @@ * If we have something to service, the tasklet will re-enable ints. * If we *don't* have something, we'll re-enable before leaving here. */ - inta_mask = iwl_read32(bus(trans), CSR_INT_MASK); /* just for debug */ + inta_mask = iwl_read32(bus(trans), CSR_INT_MASK); iwl_write32(bus(trans), CSR_INT_MASK, 0x00000000); --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c @@ -559,6 +559,9 @@ mutex_lock(&priv->shrd->mutex); + if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status)) + goto out; + if (unlikely(test_bit(STATUS_SCANNING, &priv->shrd->status))) { IWL_DEBUG_MAC80211(priv, "leave - scanning\n"); goto out; --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/Makefile +++ linux-3.2.0/drivers/net/wireless/iwlwifi/Makefile @@ -1,7 +1,7 @@ # WIFI obj-$(CONFIG_IWLWIFI) += iwlwifi.o iwlwifi-objs := iwl-agn.o iwl-agn-rs.o -iwlwifi-objs += iwl-agn-ucode.o iwl-agn-tx.o +iwlwifi-objs += iwl-agn-ucode.o iwl-agn-tx.o iwl-debug.o iwlwifi-objs += iwl-agn-lib.o iwl-agn-calib.o iwl-io.o iwlwifi-objs += iwl-agn-tt.o iwl-agn-sta.o iwl-agn-rx.o --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-2000.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-2000.c @@ -51,10 +51,10 @@ #define IWL135_UCODE_API_MAX 6 /* Oldest version we won't warn about */ -#define IWL2030_UCODE_API_OK 5 -#define IWL2000_UCODE_API_OK 5 -#define IWL105_UCODE_API_OK 5 -#define IWL135_UCODE_API_OK 5 +#define IWL2030_UCODE_API_OK 6 +#define IWL2000_UCODE_API_OK 6 +#define IWL105_UCODE_API_OK 6 +#define IWL135_UCODE_API_OK 6 /* Lowest firmware API version supported */ #define IWL2030_UCODE_API_MIN 5 @@ -211,7 +211,7 @@ .chain_noise_scale = 1000, .wd_timeout = IWL_DEF_WD_TIMEOUT, .max_event_log_size = 512, - .shadow_reg_enable = true, + .shadow_reg_enable = false, /* TODO: fix bugs using this feature */ .hd_v2 = true, }; @@ -230,7 +230,7 @@ .chain_noise_scale = 1000, .wd_timeout = IWL_LONG_WD_TIMEOUT, .max_event_log_size = 512, - .shadow_reg_enable = true, + .shadow_reg_enable = false, /* TODO: fix bugs using this feature */ .hd_v2 = true, }; @@ -372,7 +372,7 @@ .ht_params = &iwl2000_ht_params, }; -MODULE_FIRMWARE(IWL2000_MODULE_FIRMWARE(IWL2000_UCODE_API_MAX)); -MODULE_FIRMWARE(IWL2030_MODULE_FIRMWARE(IWL2030_UCODE_API_MAX)); -MODULE_FIRMWARE(IWL105_MODULE_FIRMWARE(IWL105_UCODE_API_MAX)); -MODULE_FIRMWARE(IWL135_MODULE_FIRMWARE(IWL135_UCODE_API_MAX)); +MODULE_FIRMWARE(IWL2000_MODULE_FIRMWARE(IWL2000_UCODE_API_OK)); +MODULE_FIRMWARE(IWL2030_MODULE_FIRMWARE(IWL2030_UCODE_API_OK)); +MODULE_FIRMWARE(IWL105_MODULE_FIRMWARE(IWL105_UCODE_API_OK)); +MODULE_FIRMWARE(IWL135_MODULE_FIRMWARE(IWL135_UCODE_API_OK)); --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-devtrace.h +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-devtrace.h @@ -35,6 +35,11 @@ #undef TRACE_EVENT #define TRACE_EVENT(name, proto, ...) \ static inline void trace_ ## name(proto) {} +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(...) +#undef DEFINE_EVENT +#define DEFINE_EVENT(evt_class, name, proto, ...) \ +static inline void trace_ ## name(proto) {} #endif #define PRIV_ENTRY __field(struct iwl_priv *, priv) @@ -136,6 +141,66 @@ ); #undef TRACE_SYSTEM +#define TRACE_SYSTEM iwlwifi_msg + +#define MAX_MSG_LEN 100 + +DECLARE_EVENT_CLASS(iwlwifi_msg_event, + TP_PROTO(struct va_format *vaf), + TP_ARGS(vaf), + TP_STRUCT__entry( + __dynamic_array(char, msg, MAX_MSG_LEN) + ), + TP_fast_assign( + WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg), + MAX_MSG_LEN, vaf->fmt, + *vaf->va) >= MAX_MSG_LEN); + ), + TP_printk("%s", (char *)__get_dynamic_array(msg)) +); + +DEFINE_EVENT(iwlwifi_msg_event, iwlwifi_err, + TP_PROTO(struct va_format *vaf), + TP_ARGS(vaf) +); + +DEFINE_EVENT(iwlwifi_msg_event, iwlwifi_warn, + TP_PROTO(struct va_format *vaf), + TP_ARGS(vaf) +); + +DEFINE_EVENT(iwlwifi_msg_event, iwlwifi_info, + TP_PROTO(struct va_format *vaf), + TP_ARGS(vaf) +); + +DEFINE_EVENT(iwlwifi_msg_event, iwlwifi_crit, + TP_PROTO(struct va_format *vaf), + TP_ARGS(vaf) +); + +TRACE_EVENT(iwlwifi_dbg, + TP_PROTO(u32 level, bool in_interrupt, const char *function, + struct va_format *vaf), + TP_ARGS(level, in_interrupt, function, vaf), + TP_STRUCT__entry( + __field(u32, level) + __field(u8, in_interrupt) + __string(function, function) + __dynamic_array(char, msg, MAX_MSG_LEN) + ), + TP_fast_assign( + __entry->level = level; + __entry->in_interrupt = in_interrupt; + __assign_str(function, function); + WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg), + MAX_MSG_LEN, vaf->fmt, + *vaf->va) >= MAX_MSG_LEN); + ), + TP_printk("%s", (char *)__get_dynamic_array(msg)) +); + +#undef TRACE_SYSTEM #define TRACE_SYSTEM iwlwifi TRACE_EVENT(iwlwifi_dev_hcmd, --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-debug.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-debug.c @@ -0,0 +1,127 @@ +/****************************************************************************** + * + * This file is provided under a dual BSD/GPLv2 license. When using or + * redistributing this file, you may do so under either license. + * + * GPL LICENSE SUMMARY + * + * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of version 2 of the GNU General Public License as + * 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 Street, Fifth Floor, Boston, MA 02110, + * USA + * + * The full GNU General Public License is included in this distribution + * in the file called LICENSE.GPL. + * + * Contact Information: + * Intel Linux Wireless + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + * BSD LICENSE + * + * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved. + * All rights reserved. + * + * 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 Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 THE COPYRIGHT + * OWNER OR CONTRIBUTORS 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. + * + *****************************************************************************/ + +#include +#include "iwl-debug.h" + +#define __iwl_fn(fn) \ +void __iwl_ ##fn(struct device *dev, const char *fmt, ...) \ +{ \ + struct va_format vaf = { \ + .fmt = fmt, \ + }; \ + va_list args; \ + \ + va_start(args, fmt); \ + vaf.va = &args; \ + dev_ ##fn(dev, "%pV", &vaf); \ + trace_iwlwifi_ ##fn(&vaf); \ + va_end(args); \ +} + +__iwl_fn(warn) +__iwl_fn(info) +__iwl_fn(crit) + +void __iwl_err(struct device *dev, bool rfkill_prefix, bool trace_only, + const char *fmt, ...) +{ + struct va_format vaf = { + .fmt = fmt, + }; + va_list args; + + va_start(args, fmt); + vaf.va = &args; + if (!trace_only) { + if (rfkill_prefix) + dev_err(dev, "(RFKILL) %pV", &vaf); + else + dev_err(dev, "%pV", &vaf); + } + trace_iwlwifi_err(&vaf); + va_end(args); +} + +#if defined(CONFIG_IWLWIFI_DEBUG) || defined(CONFIG_IWLWIFI_DEVICE_TRACING) +void __iwl_dbg(struct iwl_shared *shared, struct device *dev, + u32 level, bool limit, const char *function, + const char *fmt, ...) +{ + struct va_format vaf = { + .fmt = fmt, + }; + va_list args; + + va_start(args, fmt); + vaf.va = &args; +#ifdef CONFIG_IWLWIFI_DEBUG + if (iwl_get_debug_level(shared) & level && + (!limit || net_ratelimit())) + dev_err(dev, "%c %s %pV", in_interrupt() ? 'I' : 'U', + function, &vaf); +#endif + trace_iwlwifi_dbg(level, in_interrupt(), function, &vaf); + va_end(args); +} +#endif --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-agn.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-agn.c @@ -1504,7 +1504,6 @@ static void iwlagn_prepare_restart(struct iwl_priv *priv) { - struct iwl_rxon_context *ctx; bool bt_full_concurrent; u8 bt_ci_compliance; u8 bt_load; @@ -1513,8 +1512,6 @@ lockdep_assert_held(&priv->shrd->mutex); - for_each_context(priv, ctx) - ctx->vif = NULL; priv->is_open = 0; /* @@ -1699,6 +1696,7 @@ WIPHY_FLAG_DISABLE_BEACON_HINTS | WIPHY_FLAG_IBSS_RSN; +#ifdef CONFIG_PM_SLEEP if (priv->ucode_wowlan.code.len && device_can_wakeup(bus(priv)->dev)) { hw->wiphy->wowlan.flags = WIPHY_WOWLAN_MAGIC_PKT | WIPHY_WOWLAN_DISCONNECT | @@ -1715,6 +1713,7 @@ hw->wiphy->wowlan.pattern_max_len = IWLAGN_WOWLAN_MAX_PATTERN_LEN; } +#endif if (iwlagn_mod_params.power_save) hw->wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT; @@ -1742,6 +1741,7 @@ ret = ieee80211_register_hw(priv->hw); if (ret) { IWL_ERR(priv, "Failed to register hw (error %d)\n", ret); + iwl_leds_exit(priv); return ret; } priv->mac80211_registered = 1; --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-5000.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-5000.c @@ -50,6 +50,10 @@ #define IWL5000_UCODE_API_MAX 5 #define IWL5150_UCODE_API_MAX 2 +/* Oldest version we won't warn about */ +#define IWL5000_UCODE_API_OK 5 +#define IWL5150_UCODE_API_OK 2 + /* Lowest firmware API version supported */ #define IWL5000_UCODE_API_MIN 1 #define IWL5150_UCODE_API_MIN 1 @@ -373,6 +377,7 @@ #define IWL_DEVICE_5000 \ .fw_name_pre = IWL5000_FW_PRE, \ .ucode_api_max = IWL5000_UCODE_API_MAX, \ + .ucode_api_ok = IWL5000_UCODE_API_OK, \ .ucode_api_min = IWL5000_UCODE_API_MIN, \ .eeprom_ver = EEPROM_5000_EEPROM_VERSION, \ .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION, \ @@ -416,6 +421,7 @@ .name = "Intel(R) WiMAX/WiFi Link 5350 AGN", .fw_name_pre = IWL5000_FW_PRE, .ucode_api_max = IWL5000_UCODE_API_MAX, + .ucode_api_ok = IWL5000_UCODE_API_OK, .ucode_api_min = IWL5000_UCODE_API_MIN, .eeprom_ver = EEPROM_5050_EEPROM_VERSION, .eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION, @@ -429,6 +435,7 @@ #define IWL_DEVICE_5150 \ .fw_name_pre = IWL5150_FW_PRE, \ .ucode_api_max = IWL5150_UCODE_API_MAX, \ + .ucode_api_ok = IWL5150_UCODE_API_OK, \ .ucode_api_min = IWL5150_UCODE_API_MIN, \ .eeprom_ver = EEPROM_5050_EEPROM_VERSION, \ .eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION, \ @@ -450,5 +457,5 @@ IWL_DEVICE_5150, }; -MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX)); -MODULE_FIRMWARE(IWL5150_MODULE_FIRMWARE(IWL5150_UCODE_API_MAX)); +MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_OK)); +MODULE_FIRMWARE(IWL5150_MODULE_FIRMWARE(IWL5150_UCODE_API_OK)); --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-fh.h +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-fh.h @@ -104,15 +104,29 @@ * (see struct iwl_tfd_frame). These 16 pointer registers are offset by 0x04 * bytes from one another. Each TFD circular buffer in DRAM must be 256-byte * aligned (address bits 0-7 must be 0). + * Later devices have 20 (5000 series) or 30 (higher) queues, but the registers + * for them are in different places. * * Bit fields in each pointer register: * 27-0: TFD CB physical base address [35:8], must be 256-byte aligned */ -#define FH_MEM_CBBC_LOWER_BOUND (FH_MEM_LOWER_BOUND + 0x9D0) -#define FH_MEM_CBBC_UPPER_BOUND (FH_MEM_LOWER_BOUND + 0xA10) +#define FH_MEM_CBBC_0_15_LOWER_BOUND (FH_MEM_LOWER_BOUND + 0x9D0) +#define FH_MEM_CBBC_0_15_UPPER_BOUND (FH_MEM_LOWER_BOUND + 0xA10) +#define FH_MEM_CBBC_16_19_LOWER_BOUND (FH_MEM_LOWER_BOUND + 0xBF0) +#define FH_MEM_CBBC_16_19_UPPER_BOUND (FH_MEM_LOWER_BOUND + 0xC00) +#define FH_MEM_CBBC_20_31_LOWER_BOUND (FH_MEM_LOWER_BOUND + 0xB20) +#define FH_MEM_CBBC_20_31_UPPER_BOUND (FH_MEM_LOWER_BOUND + 0xB80) -/* Find TFD CB base pointer for given queue (range 0-15). */ -#define FH_MEM_CBBC_QUEUE(x) (FH_MEM_CBBC_LOWER_BOUND + (x) * 0x4) +/* Find TFD CB base pointer for given queue */ +static inline unsigned int FH_MEM_CBBC_QUEUE(unsigned int chnl) +{ + if (chnl < 16) + return FH_MEM_CBBC_0_15_LOWER_BOUND + 4 * chnl; + if (chnl < 20) + return FH_MEM_CBBC_16_19_LOWER_BOUND + 4 * (chnl - 16); + WARN_ON_ONCE(chnl >= 32); + return FH_MEM_CBBC_20_31_LOWER_BOUND + 4 * (chnl - 20); +} /** --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-prph.h +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-prph.h @@ -227,12 +227,34 @@ #define SCD_AIT (SCD_BASE + 0x0c) #define SCD_TXFACT (SCD_BASE + 0x10) #define SCD_ACTIVE (SCD_BASE + 0x14) -#define SCD_QUEUE_WRPTR(x) (SCD_BASE + 0x18 + (x) * 4) -#define SCD_QUEUE_RDPTR(x) (SCD_BASE + 0x68 + (x) * 4) #define SCD_QUEUECHAIN_SEL (SCD_BASE + 0xe8) +#define SCD_CHAINEXT_EN (SCD_BASE + 0x244) #define SCD_AGGR_SEL (SCD_BASE + 0x248) #define SCD_INTERRUPT_MASK (SCD_BASE + 0x108) -#define SCD_QUEUE_STATUS_BITS(x) (SCD_BASE + 0x10c + (x) * 4) + +static inline unsigned int SCD_QUEUE_WRPTR(unsigned int chnl) +{ + if (chnl < 20) + return SCD_BASE + 0x18 + chnl * 4; + WARN_ON_ONCE(chnl >= 32); + return SCD_BASE + 0x284 + (chnl - 20) * 4; +} + +static inline unsigned int SCD_QUEUE_RDPTR(unsigned int chnl) +{ + if (chnl < 20) + return SCD_BASE + 0x68 + chnl * 4; + WARN_ON_ONCE(chnl >= 32); + return SCD_BASE + 0x2B4 + (chnl - 20) * 4; +} + +static inline unsigned int SCD_QUEUE_STATUS_BITS(unsigned int chnl) +{ + if (chnl < 20) + return SCD_BASE + 0x10c + chnl * 4; + WARN_ON_ONCE(chnl >= 32); + return SCD_BASE + 0x384 + (chnl - 20) * 4; +} /*********************** END TX SCHEDULER *************************************/ --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-1000.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-1000.c @@ -45,8 +45,8 @@ #include "iwl-cfg.h" /* Highest firmware API version supported */ -#define IWL1000_UCODE_API_MAX 6 -#define IWL100_UCODE_API_MAX 6 +#define IWL1000_UCODE_API_MAX 5 +#define IWL100_UCODE_API_MAX 5 /* Oldest version we won't warn about */ #define IWL1000_UCODE_API_OK 5 @@ -244,5 +244,5 @@ IWL_DEVICE_100, }; -MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX)); -MODULE_FIRMWARE(IWL100_MODULE_FIRMWARE(IWL100_UCODE_API_MAX)); +MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_OK)); +MODULE_FIRMWARE(IWL100_MODULE_FIRMWARE(IWL100_UCODE_API_OK)); --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-agn-sta.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-agn-sta.c @@ -563,6 +563,7 @@ void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx) { struct iwl_addsta_cmd sta_cmd; + static const struct iwl_link_quality_cmd zero_lq = {}; struct iwl_link_quality_cmd lq; unsigned long flags_spin; int i; @@ -602,7 +603,9 @@ else memcpy(&lq, priv->stations[i].lq, sizeof(struct iwl_link_quality_cmd)); - send_lq = true; + + if (memcmp(&lq, &zero_lq, sizeof(lq))) + send_lq = true; } spin_unlock_irqrestore(&priv->shrd->sta_lock, flags_spin); @@ -1211,6 +1214,7 @@ unsigned long flags; struct iwl_addsta_cmd sta_cmd; u8 sta_id = iwlagn_key_sta_id(priv, ctx->vif, sta); + __le16 key_flags; /* if station isn't there, neither is the key */ if (sta_id == IWL_INVALID_STATION) @@ -1236,8 +1240,15 @@ IWL_ERR(priv, "offset %d not used in uCode key table.\n", keyconf->hw_key_idx); - sta_cmd.key.key_flags = STA_KEY_FLG_NO_ENC | STA_KEY_FLG_INVALID; - sta_cmd.key.key_offset = WEP_INVALID_OFFSET; + key_flags = cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS); + key_flags |= STA_KEY_FLG_MAP_KEY_MSK | STA_KEY_FLG_NO_ENC | + STA_KEY_FLG_INVALID; + + if (!(keyconf->flags & IEEE80211_KEY_FLAG_PAIRWISE)) + key_flags |= STA_KEY_MULTICAST_MSK; + + sta_cmd.key.key_flags = key_flags; + sta_cmd.key.key_offset = keyconf->hw_key_idx; sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK; sta_cmd.mode = STA_CONTROL_MODIFY_MSK; --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c @@ -868,6 +868,11 @@ iwl_write_prph(bus(trans), SCD_DRAM_BASE_ADDR, trans_pcie->scd_bc_tbls.dma >> 10); + /* The chain extension of the SCD doesn't work well. This feature is + * enabled by default by the HW, so we need to disable it manually. + */ + iwl_write_prph(bus(trans), SCD_CHAINEXT_EN, 0); + /* Enable DMA channel */ for (chan = 0; chan < FH_TCSR_CHNL_NUM ; chan++) iwl_write_direct32(bus(trans), FH_TCSR_CHNL_TX_CONFIG_REG(chan), @@ -1536,13 +1541,9 @@ } } -int iwl_dump_fh(struct iwl_trans *trans, char **buf, bool display) +int iwl_dump_fh(struct iwl_trans *trans, char **buf) { int i; -#ifdef CONFIG_IWLWIFI_DEBUG - int pos = 0; - size_t bufsz = 0; -#endif static const u32 fh_tbl[] = { FH_RSCSR_CHNL0_STTS_WPTR_REG, FH_RSCSR_CHNL0_RBDCB_BASE_REG, @@ -1554,29 +1555,35 @@ FH_TSSR_TX_STATUS_REG, FH_TSSR_TX_ERROR_REG }; -#ifdef CONFIG_IWLWIFI_DEBUG - if (display) { - bufsz = ARRAY_SIZE(fh_tbl) * 48 + 40; + +#ifdef CONFIG_IWLWIFI_DEBUGFS + if (buf) { + int pos = 0; + size_t bufsz = ARRAY_SIZE(fh_tbl) * 48 + 40; + *buf = kmalloc(bufsz, GFP_KERNEL); if (!*buf) return -ENOMEM; + pos += scnprintf(*buf + pos, bufsz - pos, "FH register values:\n"); - for (i = 0; i < ARRAY_SIZE(fh_tbl); i++) { + + for (i = 0; i < ARRAY_SIZE(fh_tbl); i++) pos += scnprintf(*buf + pos, bufsz - pos, " %34s: 0X%08x\n", get_fh_string(fh_tbl[i]), iwl_read_direct32(bus(trans), fh_tbl[i])); - } + return pos; } #endif + IWL_ERR(trans, "FH register values:\n"); - for (i = 0; i < ARRAY_SIZE(fh_tbl); i++) { + for (i = 0; i < ARRAY_SIZE(fh_tbl); i++) IWL_ERR(trans, " %34s: 0X%08x\n", get_fh_string(fh_tbl[i]), iwl_read_direct32(bus(trans), fh_tbl[i])); - } + return 0; } @@ -1772,6 +1779,7 @@ return simple_read_from_buffer(user_buf, count, ppos, buf, pos); } +#ifdef CONFIG_IWLWIFI_DEBUG static ssize_t iwl_dbgfs_log_event_read(struct file *file, char __user *user_buf, size_t count, loff_t *ppos) @@ -1809,6 +1817,7 @@ return count; } +#endif static ssize_t iwl_dbgfs_interrupt_read(struct file *file, char __user *user_buf, @@ -1922,11 +1931,11 @@ size_t count, loff_t *ppos) { struct iwl_trans *trans = file->private_data; - char *buf; + char *buf = NULL; int pos = 0; ssize_t ret = -EFAULT; - ret = pos = iwl_dump_fh(trans, &buf, true); + ret = pos = iwl_dump_fh(trans, &buf); if (buf) { ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos); @@ -1936,7 +1945,9 @@ return ret; } +#ifdef CONFIG_IWLWIFI_DEBUG DEBUGFS_READ_WRITE_FILE_OPS(log_event); +#endif DEBUGFS_READ_WRITE_FILE_OPS(interrupt); DEBUGFS_READ_FILE_OPS(fh_reg); DEBUGFS_READ_FILE_OPS(rx_queue); @@ -1952,7 +1963,9 @@ { DEBUGFS_ADD_FILE(rx_queue, dir, S_IRUSR); DEBUGFS_ADD_FILE(tx_queue, dir, S_IRUSR); +#ifdef CONFIG_IWLWIFI_DEBUG DEBUGFS_ADD_FILE(log_event, dir, S_IWUSR | S_IRUSR); +#endif DEBUGFS_ADD_FILE(interrupt, dir, S_IWUSR | S_IRUSR); DEBUGFS_ADD_FILE(csr, dir, S_IWUSR); DEBUGFS_ADD_FILE(fh_reg, dir, S_IRUSR); --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-core.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-core.c @@ -1228,6 +1228,7 @@ struct iwl_rxon_context *tmp, *ctx = NULL; int err; enum nl80211_iftype viftype = ieee80211_vif_type_p2p(vif); + bool reset = false; IWL_DEBUG_MAC80211(priv, "enter: type %d, addr %pM\n", viftype, vif->addr); @@ -1249,6 +1250,13 @@ tmp->interface_modes | tmp->exclusive_interface_modes; if (tmp->vif) { + /* On reset we need to add the same interface again */ + if (tmp->vif == vif) { + reset = true; + ctx = tmp; + break; + } + /* check if this busy context is exclusive */ if (tmp->exclusive_interface_modes & BIT(tmp->vif->type)) { @@ -1275,7 +1283,7 @@ ctx->vif = vif; err = iwl_setup_interface(priv, ctx); - if (!err) + if (!err || reset) goto out; ctx->vif = NULL; @@ -1787,20 +1795,10 @@ if (timeout == 0) return; - /* monitor and check for stuck cmd queue */ - if (iwl_check_stuck_queue(priv, priv->shrd->cmd_queue)) - return; - - /* monitor and check for other stuck queues */ - if (iwl_is_any_associated(priv)) { - for (cnt = 0; cnt < hw_params(priv).max_txq_num; cnt++) { - /* skip as we already checked the command queue */ - if (cnt == priv->shrd->cmd_queue) - continue; - if (iwl_check_stuck_queue(priv, cnt)) - return; - } - } + /* monitor and check for stuck queues */ + for (cnt = 0; cnt < hw_params(priv).max_txq_num; cnt++) + if (iwl_check_stuck_queue(priv, cnt)) + return; mod_timer(&priv->watchdog, jiffies + msecs_to_jiffies(IWL_WD_TICK(timeout))); --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c @@ -688,11 +688,13 @@ dma_addr_t phys_addr; unsigned long flags; u32 idx; - u16 copy_size, cmd_size; + u16 copy_size, cmd_size, dma_size; bool is_ct_kill = false; bool had_nocopy = false; int i; u8 *cmd_dest; + const u8 *cmddata[IWL_MAX_CMD_TFDS]; + u16 cmdlen[IWL_MAX_CMD_TFDS]; #ifdef CONFIG_IWLWIFI_DEVICE_TRACING const void *trace_bufs[IWL_MAX_CMD_TFDS + 1] = {}; int trace_lens[IWL_MAX_CMD_TFDS + 1] = {}; @@ -717,15 +719,30 @@ BUILD_BUG_ON(IWL_MAX_CMD_TFDS > IWL_NUM_OF_TBS - 1); for (i = 0; i < IWL_MAX_CMD_TFDS; i++) { + cmddata[i] = cmd->data[i]; + cmdlen[i] = cmd->len[i]; + if (!cmd->len[i]) continue; + + /* need at least IWL_HCMD_MIN_COPY_SIZE copied */ + if (copy_size < IWL_HCMD_MIN_COPY_SIZE) { + int copy = IWL_HCMD_MIN_COPY_SIZE - copy_size; + + if (copy > cmdlen[i]) + copy = cmdlen[i]; + cmdlen[i] -= copy; + cmddata[i] += copy; + copy_size += copy; + } + if (cmd->dataflags[i] & IWL_HCMD_DFL_NOCOPY) { had_nocopy = true; } else { /* NOCOPY must not be followed by normal! */ if (WARN_ON(had_nocopy)) return -EINVAL; - copy_size += cmd->len[i]; + copy_size += cmdlen[i]; } cmd_size += cmd->len[i]; } @@ -778,13 +795,30 @@ /* and copy the data that needs to be copied */ cmd_dest = out_cmd->payload; + copy_size = sizeof(out_cmd->hdr); for (i = 0; i < IWL_MAX_CMD_TFDS; i++) { - if (!cmd->len[i]) + int copy = 0; + + if (!cmd->len) continue; - if (cmd->dataflags[i] & IWL_HCMD_DFL_NOCOPY) - break; - memcpy(cmd_dest, cmd->data[i], cmd->len[i]); - cmd_dest += cmd->len[i]; + + /* need at least IWL_HCMD_MIN_COPY_SIZE copied */ + if (copy_size < IWL_HCMD_MIN_COPY_SIZE) { + copy = IWL_HCMD_MIN_COPY_SIZE - copy_size; + + if (copy > cmd->len[i]) + copy = cmd->len[i]; + } + + /* copy everything if not nocopy/dup */ + if (!(cmd->dataflags[i] & IWL_HCMD_DFL_NOCOPY)) + copy = cmd->len[i]; + + if (copy) { + memcpy(cmd_dest, cmd->data[i], copy); + cmd_dest += copy; + copy_size += copy; + } } IWL_DEBUG_HC(trans, "Sending command %s (#%x), seq: 0x%04X, " @@ -794,7 +828,14 @@ le16_to_cpu(out_cmd->hdr.sequence), cmd_size, q->write_ptr, idx, trans->shrd->cmd_queue); - phys_addr = dma_map_single(bus(trans)->dev, &out_cmd->hdr, copy_size, + /* + * If the entire command is smaller than IWL_HCMD_MIN_COPY_SIZE, we must + * still map at least that many bytes for the hardware to write back to. + * We have enough space, so that's not a problem. + */ + dma_size = max_t(u16, copy_size, IWL_HCMD_MIN_COPY_SIZE); + + phys_addr = dma_map_single(bus(trans)->dev, &out_cmd->hdr, dma_size, DMA_BIDIRECTIONAL); if (unlikely(dma_mapping_error(bus(trans)->dev, phys_addr))) { idx = -ENOMEM; @@ -802,7 +843,7 @@ } dma_unmap_addr_set(out_meta, mapping, phys_addr); - dma_unmap_len_set(out_meta, len, copy_size); + dma_unmap_len_set(out_meta, len, dma_size); iwlagn_txq_attach_buf_to_tfd(trans, txq, phys_addr, copy_size, 1); @@ -812,14 +853,15 @@ trace_idx = 1; #endif + /* map the remaining (adjusted) nocopy/dup fragments */ for (i = 0; i < IWL_MAX_CMD_TFDS; i++) { - if (!cmd->len[i]) + if (!cmdlen[i]) continue; if (!(cmd->dataflags[i] & IWL_HCMD_DFL_NOCOPY)) continue; phys_addr = dma_map_single(bus(trans)->dev, - (void *)cmd->data[i], - cmd->len[i], DMA_BIDIRECTIONAL); + (void *)cmddata[i], + cmdlen[i], DMA_BIDIRECTIONAL); if (dma_mapping_error(bus(trans)->dev, phys_addr)) { iwlagn_unmap_tfd(trans, out_meta, &txq->tfds[q->write_ptr], @@ -829,10 +871,10 @@ } iwlagn_txq_attach_buf_to_tfd(trans, txq, phys_addr, - cmd->len[i], 0); + cmdlen[i], 0); #ifdef CONFIG_IWLWIFI_DEVICE_TRACING - trace_bufs[trace_idx] = cmd->data[i]; - trace_lens[trace_idx] = cmd->len[i]; + trace_bufs[trace_idx] = cmddata[i]; + trace_lens[trace_idx] = cmdlen[i]; trace_idx++; #endif } --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h @@ -180,6 +180,15 @@ #define TFD_TX_CMD_SLOTS 256 #define TFD_CMD_SLOTS 32 +/* + * The FH will write back to the first TB only, so we need + * to copy some data into the buffer regardless of whether + * it should be mapped or not. This indicates how much to + * copy, even for HCMDs it must be big enough to fit the + * DRAM scratch from the TX cmd, at least 16 bytes. + */ +#define IWL_HCMD_MIN_COPY_SIZE 16 + struct iwl_tx_queue { struct iwl_queue q; struct iwl_tfd *tfds; @@ -219,9 +228,7 @@ /* INT ICT Table */ __le32 *ict_tbl; - void *ict_tbl_vir; dma_addr_t ict_tbl_dma; - dma_addr_t aligned_ict_tbl_dma; int ict_index; u32 inta; bool use_ict; @@ -305,7 +312,7 @@ ******************************************************/ int iwl_dump_nic_event_log(struct iwl_trans *trans, bool full_log, char **buf, bool display); -int iwl_dump_fh(struct iwl_trans *trans, char **buf, bool display); +int iwl_dump_fh(struct iwl_trans *trans, char **buf); void iwl_dump_csr(struct iwl_trans *trans); /***************************************************** --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-commands.h +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-commands.h @@ -809,7 +809,7 @@ #define IWLAGN_STATION_COUNT 16 #define IWL_INVALID_STATION 255 -#define IWL_MAX_TID_COUNT 9 +#define IWL_MAX_TID_COUNT 8 #define STA_FLG_TX_RATE_MSK cpu_to_le32(1 << 2) #define STA_FLG_PWR_SAVE_MSK cpu_to_le32(1 << 8) --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-agn-rs.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-agn-rs.c @@ -708,11 +708,14 @@ */ static bool rs_use_green(struct ieee80211_sta *sta) { - struct iwl_station_priv *sta_priv = (void *)sta->drv_priv; - struct iwl_rxon_context *ctx = sta_priv->ctx; - - return (sta->ht_cap.cap & IEEE80211_HT_CAP_GRN_FLD) && - !(ctx->ht.non_gf_sta_present); + /* + * There's a bug somewhere in this code that causes the + * scaling to get stuck because GF+SGI can't be combined + * in SISO rates. Until we find that bug, disable GF, it + * has only limited benefit and we still interoperate with + * GF APs since we can always receive GF transmissions. + */ + return false; } /** @@ -886,6 +889,7 @@ if ((priv->bt_traffic_load != priv->last_bt_traffic_load) || (priv->bt_full_concurrent != full_concurrent)) { priv->bt_full_concurrent = full_concurrent; + priv->last_bt_traffic_load = priv->bt_traffic_load; /* Update uCode's rate table. */ tbl = &(lq_sta->lq_info[lq_sta->active_tbl]); --- linux-3.2.0.orig/drivers/net/wireless/iwlwifi/iwl-debugfs.c +++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-debugfs.c @@ -232,6 +232,9 @@ struct iwl_priv *priv = file->private_data; size_t bufsz; + if (!iwl_is_ready_rf(priv->shrd)) + return -EAGAIN; + /* default is to dump the entire data segment */ if (!priv->dbgfs_sram_offset && !priv->dbgfs_sram_len) { priv->dbgfs_sram_offset = 0x800000; --- linux-3.2.0.orig/drivers/net/wireless/wl1251/main.c +++ linux-3.2.0/drivers/net/wireless/wl1251/main.c @@ -479,6 +479,7 @@ cancel_work_sync(&wl->irq_work); cancel_work_sync(&wl->tx_work); cancel_work_sync(&wl->filter_work); + cancel_delayed_work_sync(&wl->elp_work); mutex_lock(&wl->mutex); --- linux-3.2.0.orig/drivers/net/wireless/wl1251/sdio.c +++ linux-3.2.0/drivers/net/wireless/wl1251/sdio.c @@ -260,6 +260,7 @@ } if (wl->irq) { + irq_set_status_flags(wl->irq, IRQ_NOAUTOEN); ret = request_irq(wl->irq, wl1251_line_irq, 0, "wl1251", wl); if (ret < 0) { wl1251_error("request_irq() failed: %d", ret); @@ -267,7 +268,6 @@ } irq_set_irq_type(wl->irq, IRQ_TYPE_EDGE_RISING); - disable_irq(wl->irq); wl1251_sdio_ops.enable_irq = wl1251_enable_line_irq; wl1251_sdio_ops.disable_irq = wl1251_disable_line_irq; @@ -315,8 +315,8 @@ if (wl->irq) free_irq(wl->irq, wl); - kfree(wl_sdio); wl1251_free_hw(wl); + kfree(wl_sdio); sdio_claim_host(func); sdio_release_irq(func); --- linux-3.2.0.orig/drivers/net/wireless/wl1251/spi.c +++ linux-3.2.0/drivers/net/wireless/wl1251/spi.c @@ -281,6 +281,7 @@ wl->use_eeprom = pdata->use_eeprom; + irq_set_status_flags(wl->irq, IRQ_NOAUTOEN); ret = request_irq(wl->irq, wl1251_irq, 0, DRIVER_NAME, wl); if (ret < 0) { wl1251_error("request_irq() failed: %d", ret); @@ -289,8 +290,6 @@ irq_set_irq_type(wl->irq, IRQ_TYPE_EDGE_RISING); - disable_irq(wl->irq); - ret = wl1251_init_ieee80211(wl); if (ret) goto out_irq; --- linux-3.2.0.orig/drivers/net/wireless/p54/p54usb.c +++ linux-3.2.0/drivers/net/wireless/p54/p54usb.c @@ -42,11 +42,12 @@ * whenever you add a new device. */ -static struct usb_device_id p54u_table[] __devinitdata = { +static struct usb_device_id p54u_table[] = { /* Version 1 devices (pci chip + net2280) */ {USB_DEVICE(0x0411, 0x0050)}, /* Buffalo WLI2-USB2-G54 */ {USB_DEVICE(0x045e, 0x00c2)}, /* Microsoft MN-710 */ {USB_DEVICE(0x0506, 0x0a11)}, /* 3COM 3CRWE254G72 */ + {USB_DEVICE(0x0675, 0x0530)}, /* DrayTek Vigor 530 */ {USB_DEVICE(0x06b9, 0x0120)}, /* Thomson SpeedTouch 120g */ {USB_DEVICE(0x0707, 0xee06)}, /* SMC 2862W-G */ {USB_DEVICE(0x07aa, 0x001c)}, /* Corega CG-WLUSB2GT */ @@ -82,7 +83,9 @@ {USB_DEVICE(0x06a9, 0x000e)}, /* Westell 802.11g USB (A90-211WG-01) */ {USB_DEVICE(0x06b9, 0x0121)}, /* Thomson SpeedTouch 121g */ {USB_DEVICE(0x0707, 0xee13)}, /* SMC 2862W-G version 2 */ + {USB_DEVICE(0x0803, 0x4310)}, /* Zoom 4410a */ {USB_DEVICE(0x083a, 0x4521)}, /* Siemens Gigaset USB Adapter 54 version 2 */ + {USB_DEVICE(0x083a, 0x4531)}, /* T-Com Sinus 154 data II */ {USB_DEVICE(0x083a, 0xc501)}, /* Zoom Wireless-G 4410 */ {USB_DEVICE(0x083a, 0xf503)}, /* Accton FD7050E ver 1010ec */ {USB_DEVICE(0x0846, 0x4240)}, /* Netgear WG111 (v2) */ @@ -101,6 +104,7 @@ {USB_DEVICE(0x13B1, 0x000C)}, /* Linksys WUSB54AG */ {USB_DEVICE(0x1413, 0x5400)}, /* Telsey 802.11g USB2.0 Adapter */ {USB_DEVICE(0x1435, 0x0427)}, /* Inventel UR054G */ + /* {USB_DEVICE(0x15a9, 0x0002)}, * Also SparkLAN WL-682 with 3887 */ {USB_DEVICE(0x1668, 0x1050)}, /* Actiontec 802UIG-1 */ {USB_DEVICE(0x1740, 0x1000)}, /* Senao NUB-350 */ {USB_DEVICE(0x2001, 0x3704)}, /* DLink DWL-G122 rev A2 */ --- linux-3.2.0.orig/drivers/net/wireless/p54/p54spi.c +++ linux-3.2.0/drivers/net/wireless/p54/p54spi.c @@ -622,19 +622,19 @@ ret = spi_setup(spi); if (ret < 0) { dev_err(&priv->spi->dev, "spi_setup failed"); - goto err_free_common; + goto err_free; } ret = gpio_request(p54spi_gpio_power, "p54spi power"); if (ret < 0) { dev_err(&priv->spi->dev, "power GPIO request failed: %d", ret); - goto err_free_common; + goto err_free; } ret = gpio_request(p54spi_gpio_irq, "p54spi irq"); if (ret < 0) { dev_err(&priv->spi->dev, "irq GPIO request failed: %d", ret); - goto err_free_common; + goto err_free_gpio_power; } gpio_direction_output(p54spi_gpio_power, 0); @@ -645,7 +645,7 @@ priv->spi); if (ret < 0) { dev_err(&priv->spi->dev, "request_irq() failed"); - goto err_free_common; + goto err_free_gpio_irq; } irq_set_irq_type(gpio_to_irq(p54spi_gpio_irq), IRQ_TYPE_EDGE_RISING); @@ -677,6 +677,12 @@ return 0; err_free_common: + free_irq(gpio_to_irq(p54spi_gpio_irq), spi); +err_free_gpio_irq: + gpio_free(p54spi_gpio_irq); +err_free_gpio_power: + gpio_free(p54spi_gpio_power); +err_free: p54_free_common(priv->hw); return ret; } --- linux-3.2.0.orig/drivers/net/wireless/ath/key.c +++ linux-3.2.0/drivers/net/wireless/ath/key.c @@ -556,6 +556,9 @@ return -EIO; set_bit(idx, common->keymap); + if (key->cipher == WLAN_CIPHER_SUITE_CCMP) + set_bit(idx, common->ccmp_keymap); + if (key->cipher == WLAN_CIPHER_SUITE_TKIP) { set_bit(idx + 64, common->keymap); set_bit(idx, common->tkip_keymap); @@ -582,6 +585,7 @@ return; clear_bit(key->hw_key_idx, common->keymap); + clear_bit(key->hw_key_idx, common->ccmp_keymap); if (key->cipher != WLAN_CIPHER_SUITE_TKIP) return; --- linux-3.2.0.orig/drivers/net/wireless/ath/ath.h +++ linux-3.2.0/drivers/net/wireless/ath/ath.h @@ -143,6 +143,7 @@ u32 keymax; DECLARE_BITMAP(keymap, ATH_KEYMAX); DECLARE_BITMAP(tkip_keymap, ATH_KEYMAX); + DECLARE_BITMAP(ccmp_keymap, ATH_KEYMAX); enum ath_crypt_caps crypt_caps; unsigned int clockrate; --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/pci.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/pci.c @@ -35,6 +35,7 @@ { PCI_VDEVICE(ATHEROS, 0x0032) }, /* PCI-E AR9485 */ { PCI_VDEVICE(ATHEROS, 0x0033) }, /* PCI-E AR9580 */ { PCI_VDEVICE(ATHEROS, 0x0034) }, /* PCI-E AR9462 */ + { PCI_VDEVICE(ATHEROS, 0x0037) }, /* PCI-E AR1111/AR9485 */ { 0 } }; @@ -121,8 +122,9 @@ if (!parent) return; - if (ah->btcoex_hw.scheme != ATH_BTCOEX_CFG_NONE) { - /* Bluetooth coexistance requires disabling ASPM. */ + if ((ah->btcoex_hw.scheme != ATH_BTCOEX_CFG_NONE) && + (AR_SREV_9285(ah))) { + /* Bluetooth coexistance requires disabling ASPM for AR9285. */ pci_read_config_byte(pdev, pos + PCI_EXP_LNKCTL, &aspm); aspm &= ~(PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1); pci_write_config_byte(pdev, pos + PCI_EXP_LNKCTL, aspm); --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c @@ -3625,7 +3625,7 @@ static void ar9003_hw_ant_ctrl_apply(struct ath_hw *ah, bool is2ghz) { int chain; - u32 regval; + u32 regval, value; u32 ant_div_ctl1; static const u32 switch_chain_reg[AR9300_MAX_CHAINS] = { AR_PHY_SWITCH_CHAIN_0, @@ -3633,7 +3633,11 @@ AR_PHY_SWITCH_CHAIN_2, }; - u32 value = ar9003_hw_ant_ctrl_common_get(ah, is2ghz); + if (AR_SREV_9485(ah) && (ar9003_hw_get_rx_gain_idx(ah) == 0)) + ath9k_hw_cfg_output(ah, AR9300_EXT_LNA_CTL_GPIO_AR9485, + AR_GPIO_OUTPUT_MUX_AS_PCIE_ATTENTION_LED); + + value = ar9003_hw_ant_ctrl_common_get(ah, is2ghz); if (AR_SREV_9462(ah)) { if (AR_SREV_9462_10(ah)) { --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/calib.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/calib.c @@ -20,7 +20,6 @@ /* Common calibration code */ -#define ATH9K_NF_TOO_HIGH -60 static int16_t ath9k_hw_get_nf_hist_mid(int16_t *nfCalBuffer) { @@ -70,6 +69,7 @@ if (chan && chan->noisefloor) { s8 delta = chan->noisefloor - + ATH9K_NF_CAL_NOISE_THRESH - ath9k_hw_get_default_nf(ah, chan); if (delta > 0) noise += delta; @@ -348,10 +348,10 @@ "NF calibrated [%s] [chain %d] is %d\n", (i >= 3 ? "ext" : "ctl"), i % 3, nf[i]); - if (nf[i] > ATH9K_NF_TOO_HIGH) { + if (nf[i] > limit->max) { ath_dbg(common, ATH_DBG_CALIBRATE, "NF[%d] (%d) > MAX (%d), correcting to MAX\n", - i, nf[i], ATH9K_NF_TOO_HIGH); + i, nf[i], limit->max); nf[i] = limit->max; } else if (nf[i] < limit->min) { ath_dbg(common, ATH_DBG_CALIBRATE, @@ -391,7 +391,6 @@ if (!caldata) { chan->noisefloor = nf; - ah->noise = ath9k_hw_getchan_noise(ah, chan); return false; } @@ -402,6 +401,7 @@ ah->noise = ath9k_hw_getchan_noise(ah, chan); return true; } +EXPORT_SYMBOL(ath9k_hw_getnf); void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah, struct ath9k_channel *chan) @@ -412,6 +412,7 @@ ah->caldata->channel = chan->channel; ah->caldata->channelFlags = chan->channelFlags & ~CHANNEL_CW_INT; + ah->caldata->chanmode = chan->chanmode; h = ah->caldata->nfCalHist; default_nf = ath9k_hw_get_default_nf(ah, chan); for (i = 0; i < NUM_NF_READINGS; i++) { --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/ar9003_hw.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/ar9003_hw.c @@ -34,9 +34,6 @@ */ static void ar9003_hw_init_mode_regs(struct ath_hw *ah) { -#define PCIE_PLL_ON_CREQ_DIS_L1_2P0 \ - ar9462_pciephy_pll_on_clkreq_disable_L1_2p0 - #define AR9462_BB_CTX_COEFJ(x) \ ar9462_##x##_baseband_core_txfir_coeff_japan_2484 @@ -369,13 +366,13 @@ /* Awake -> Sleep Setting */ INIT_INI_ARRAY(&ah->iniPcieSerdes, - PCIE_PLL_ON_CREQ_DIS_L1_2P0, - ARRAY_SIZE(PCIE_PLL_ON_CREQ_DIS_L1_2P0), + ar9462_pciephy_clkreq_disable_L1_2p0, + ARRAY_SIZE(ar9462_pciephy_clkreq_disable_L1_2p0), 2); /* Sleep -> Awake Setting */ INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower, - PCIE_PLL_ON_CREQ_DIS_L1_2P0, - ARRAY_SIZE(PCIE_PLL_ON_CREQ_DIS_L1_2P0), + ar9462_pciephy_clkreq_disable_L1_2p0, + ARRAY_SIZE(ar9462_pciephy_clkreq_disable_L1_2p0), 2); /* Fast clock modal settings */ @@ -704,8 +701,8 @@ 2); else if (AR_SREV_9485_11(ah)) INIT_INI_ARRAY(&ah->iniModesRxGain, - ar9485Common_wo_xlna_rx_gain_1_1, - ARRAY_SIZE(ar9485Common_wo_xlna_rx_gain_1_1), + ar9485_common_rx_gain_1_1, + ARRAY_SIZE(ar9485_common_rx_gain_1_1), 2); else if (AR_SREV_9580(ah)) INIT_INI_ARRAY(&ah->iniModesRxGain, --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/Kconfig +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/Kconfig @@ -50,13 +50,17 @@ Also required for changing debug message flags at run time. -config ATH9K_RATE_CONTROL +config ATH9K_LEGACY_RATE_CONTROL bool "Atheros ath9k rate control" depends on ATH9K - default y + default n ---help--- Say Y, if you want to use the ath9k specific rate control - module instead of minstrel_ht. + module instead of minstrel_ht. Be warned that there are various + issues with the ath9k RC and minstrel is a more robust algorithm. + Note that even if this option is selected, "ath9k_rate_control" + has to be passed to mac80211 using the module parameter, + ieee80211_default_rc_algo. config ATH9K_HTC tristate "Atheros HTC based wireless cards support" --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c @@ -1069,15 +1069,19 @@ last_rssi = priv->rx.last_rssi; - if (likely(last_rssi != ATH_RSSI_DUMMY_MARKER)) - rxbuf->rxstatus.rs_rssi = ATH_EP_RND(last_rssi, - ATH_RSSI_EP_MULTIPLIER); + if (ieee80211_is_beacon(hdr->frame_control) && + !is_zero_ether_addr(common->curbssid) && + compare_ether_addr(hdr->addr3, common->curbssid) == 0) { + s8 rssi = rxbuf->rxstatus.rs_rssi; - if (rxbuf->rxstatus.rs_rssi < 0) - rxbuf->rxstatus.rs_rssi = 0; + if (likely(last_rssi != ATH_RSSI_DUMMY_MARKER)) + rssi = ATH_EP_RND(last_rssi, ATH_RSSI_EP_MULTIPLIER); - if (ieee80211_is_beacon(fc)) - priv->ah->stats.avgbrssi = rxbuf->rxstatus.rs_rssi; + if (rssi < 0) + rssi = 0; + + priv->ah->stats.avgbrssi = rssi; + } rx_status->mactime = be64_to_cpu(rxbuf->rxstatus.rs_tstamp); rx_status->band = hw->conf.channel->band; --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/recv.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/recv.c @@ -786,6 +786,7 @@ return NULL; } + list_del(&bf->list); if (!bf->bf_mpdu) return bf; @@ -824,6 +825,15 @@ (ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC | ATH9K_RXERR_KEYMISS)); + /* + * Key miss events are only relevant for pairwise keys where the + * descriptor does contain a valid key index. This has been observed + * mostly with CCMP encryption. + */ + if (rx_stats->rs_keyix == ATH9K_RXKEYIX_INVALID || + !test_bit(rx_stats->rs_keyix, common->ccmp_keymap)) + rx_stats->rs_status &= ~ATH9K_RXERR_KEYMISS; + if (!rx_stats->rs_datalen) return false; /* @@ -1773,7 +1783,6 @@ struct ieee80211_hw *hw = sc->hw; struct ieee80211_hdr *hdr; int retval; - bool decrypt_error = false; struct ath_rx_status rs; enum ath9k_rx_qtype qtype; bool edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA); @@ -1795,6 +1804,7 @@ tsf_lower = tsf & 0xffffffff; do { + bool decrypt_error = false; /* If handling rx interrupt and flush is in progress => exit */ if ((sc->sc_flags & SC_OP_RXFLUSH) && (flush == 0)) break; @@ -1957,14 +1967,15 @@ sc->rx.frag = NULL; } requeue: + list_add_tail(&bf->list, &sc->rx.rxbuf); + if (flush) + continue; + if (edma) { - list_add_tail(&bf->list, &sc->rx.rxbuf); ath_rx_edma_buf_link(sc, qtype); } else { - list_move_tail(&bf->list, &sc->rx.rxbuf); ath_rx_buf_link(sc, bf); - if (!flush) - ath9k_hw_rxena(ah); + ath9k_hw_rxena(ah); } } while (1); --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/ar9003_calib.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/ar9003_calib.c @@ -946,6 +946,9 @@ AR_PHY_CL_TAB_1, AR_PHY_CL_TAB_2 }; + /* Use chip chainmask only for calibration */ + ar9003_hw_set_chain_masks(ah, ah->caps.rx_chainmask, ah->caps.tx_chainmask); + if (rtt) { if (!ar9003_hw_rtt_restore(ah, chan)) run_rtt_cal = true; @@ -1085,6 +1088,9 @@ ar9003_hw_rtt_disable(ah); } + /* Revert chainmask to runtime parameters */ + ar9003_hw_set_chain_masks(ah, ah->rxchainmask, ah->txchainmask); + /* Initialize list pointers */ ah->cal_list = ah->cal_list_last = ah->cal_list_curr = NULL; ah->supp_cals = IQ_MISMATCH_CAL; --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/hw.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/hw.c @@ -557,7 +557,7 @@ if (ah->config.serialize_regmode == SER_REG_MODE_AUTO) { if (ah->hw_version.macVersion == AR_SREV_VERSION_5416_PCI || - ((AR_SREV_9160(ah) || AR_SREV_9280(ah)) && + ((AR_SREV_9160(ah) || AR_SREV_9280(ah) || AR_SREV_9287(ah)) && !ah->is_pciexpress)) { ah->config.serialize_regmode = SER_REG_MODE_ON; @@ -674,6 +674,7 @@ case AR9300_DEVID_AR9340: case AR9300_DEVID_AR9580: case AR9300_DEVID_AR9462: + case AR9485_DEVID_AR1111: break; default: if (common->bus_ops->ath_bus_type == ATH_USB) @@ -718,13 +719,25 @@ u32 ar9003_get_pll_sqsum_dvc(struct ath_hw *ah) { + struct ath_common *common = ath9k_hw_common(ah); + int i = 0; + REG_CLR_BIT(ah, PLL3, PLL3_DO_MEAS_MASK); udelay(100); REG_SET_BIT(ah, PLL3, PLL3_DO_MEAS_MASK); - while ((REG_READ(ah, PLL4) & PLL4_MEAS_DONE) == 0) + while ((REG_READ(ah, PLL4) & PLL4_MEAS_DONE) == 0) { + udelay(100); + if (WARN_ON_ONCE(i >= 100)) { + ath_err(common, "PLL4 meaurement not done\n"); + break; + } + + i++; + } + return (REG_READ(ah, PLL3) & SQSUM_DVC_MASK) >> 3; } EXPORT_SYMBOL(ar9003_get_pll_sqsum_dvc); @@ -1034,13 +1047,16 @@ /* * Workaround for early ACK timeouts, add an offset to match the - * initval's 64us ack timeout value. + * initval's 64us ack timeout value. Use 48us for the CTS timeout. * This was initially only meant to work around an issue with delayed * BA frames in some implementations, but it has been found to fix ACK * timeout issues in other cases as well. */ - if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ) + if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ) { acktimeout += 64 - sifstime - ah->slottime; + ctstimeout += 48 - sifstime - ah->slottime; + } + ath9k_hw_set_sifs_time(ah, sifstime); ath9k_hw_setslottime(ah, slottime); @@ -1524,7 +1540,8 @@ if (caldata && (chan->channel != caldata->channel || (chan->channelFlags & ~CHANNEL_CW_INT) != - (caldata->channelFlags & ~CHANNEL_CW_INT))) { + (caldata->channelFlags & ~CHANNEL_CW_INT) || + chan->chanmode != caldata->chanmode)) { /* Operating channel changed, reset channel calibration data */ memset(caldata, 0, sizeof(*caldata)); ath9k_init_nfcal_hist_buffer(ah, chan); --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/Makefile +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/Makefile @@ -5,7 +5,7 @@ recv.o \ xmit.o \ -ath9k-$(CONFIG_ATH9K_RATE_CONTROL) += rc.o +ath9k-$(CONFIG_ATH9K_LEGACY_RATE_CONTROL) += rc.o ath9k-$(CONFIG_ATH9K_PCI) += pci.o ath9k-$(CONFIG_ATH9K_AHB) += ahb.o ath9k-$(CONFIG_ATH9K_DEBUGFS) += debug.o --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/main.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/main.c @@ -1042,6 +1042,15 @@ hw_pll_work.work); u32 pll_sqsum; + /* + * ensure that the PLL WAR is executed only + * after the STA is associated (or) if the + * beaconing had started in interfaces that + * uses beacons. + */ + if (!(sc->sc_flags & SC_OP_BEACONS)) + return; + if (AR_SREV_9485(sc->sc_ah)) { ath9k_ps_wakeup(sc); @@ -1486,15 +1495,6 @@ } } - if ((ah->opmode == NL80211_IFTYPE_ADHOC) || - ((vif->type == NL80211_IFTYPE_ADHOC) && - sc->nvifs > 0)) { - ath_err(common, "Cannot create ADHOC interface when other" - " interfaces already exist.\n"); - ret = -EINVAL; - goto out; - } - ath_dbg(common, ATH_DBG_CONFIG, "Attach a VIF of type: %d\n", vif->type); @@ -1667,7 +1667,6 @@ if (changed & IEEE80211_CONF_CHANGE_CHANNEL) { struct ieee80211_channel *curchan = hw->conf.channel; - struct ath9k_channel old_chan; int pos = curchan->hw_value; int old_pos = -1; unsigned long flags; @@ -1689,16 +1688,6 @@ ath_update_survey_stats(sc); spin_unlock_irqrestore(&common->cc_lock, flags); - /* - * Preserve the current channel values, before updating - * the same channel - */ - if (old_pos == pos) { - memcpy(&old_chan, &sc->sc_ah->channels[pos], - sizeof(struct ath9k_channel)); - ah->curchan = &old_chan; - } - ath9k_cmn_update_ichannel(&sc->sc_ah->channels[pos], curchan, conf->channel_type); @@ -1797,6 +1786,7 @@ struct ath_common *common = ath9k_hw_common(sc->sc_ah); struct ath_node *an = (struct ath_node *) sta->drv_priv; struct ieee80211_key_conf ps_key = { }; + int key; ath_node_attach(sc, sta); @@ -1804,7 +1794,9 @@ vif->type != NL80211_IFTYPE_AP_VLAN) return 0; - an->ps_key = ath_key_config(common, vif, sta, &ps_key); + key = ath_key_config(common, vif, sta, &ps_key); + if (key > 0) + an->ps_key = key; return 0; } @@ -1821,6 +1813,7 @@ return; ath_key_delete(common, &ps_key); + an->ps_key = 0; } static int ath9k_sta_remove(struct ieee80211_hw *hw, --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/calib.h +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/calib.h @@ -22,6 +22,9 @@ #define AR_PHY_CCA_FILTERWINDOW_LENGTH_INIT 3 #define AR_PHY_CCA_FILTERWINDOW_LENGTH 5 +/* Internal noise floor can vary by about 6db depending on the frequency */ +#define ATH9K_NF_CAL_NOISE_THRESH 6 + #define NUM_NF_READINGS 6 #define ATH9K_NF_CAL_HIST_MAX 5 --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h @@ -69,13 +69,13 @@ #define AR9300_BASE_ADDR 0x3ff #define AR9300_BASE_ADDR_512 0x1ff -#define AR9300_OTP_BASE 0x14000 -#define AR9300_OTP_STATUS 0x15f18 +#define AR9300_OTP_BASE (AR_SREV_9340(ah) ? 0x30000 : 0x14000) +#define AR9300_OTP_STATUS (AR_SREV_9340(ah) ? 0x30018 : 0x15f18) #define AR9300_OTP_STATUS_TYPE 0x7 #define AR9300_OTP_STATUS_VALID 0x4 #define AR9300_OTP_STATUS_ACCESS_BUSY 0x2 #define AR9300_OTP_STATUS_SM_BUSY 0x1 -#define AR9300_OTP_READ_DATA 0x15f1c +#define AR9300_OTP_READ_DATA (AR_SREV_9340(ah) ? 0x3001c : 0x15f1c) enum targetPowerHTRates { HT_TARGET_RATE_0_8_16, --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/init.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/init.c @@ -691,8 +691,7 @@ BIT(NL80211_IFTYPE_ADHOC) | BIT(NL80211_IFTYPE_MESH_POINT); - if (AR_SREV_5416(sc->sc_ah)) - hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; + hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN; @@ -714,10 +713,6 @@ sc->ant_rx = hw->wiphy->available_antennas_rx; sc->ant_tx = hw->wiphy->available_antennas_tx; -#ifdef CONFIG_ATH9K_RATE_CONTROL - hw->rate_control_algorithm = "ath9k_rate_control"; -#endif - if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_2GHZ) hw->wiphy->bands[IEEE80211_BAND_2GHZ] = &sc->sbands[IEEE80211_BAND_2GHZ]; @@ -775,6 +770,11 @@ ARRAY_SIZE(ath9k_tpt_blink)); #endif + INIT_WORK(&sc->hw_reset_work, ath_reset_work); + INIT_WORK(&sc->hw_check_work, ath_hw_check); + INIT_WORK(&sc->paprd_work, ath_paprd_calibrate); + INIT_DELAYED_WORK(&sc->hw_pll_work, ath_hw_pll_work); + /* Register with mac80211 */ error = ieee80211_register_hw(hw); if (error) @@ -793,10 +793,6 @@ goto error_world; } - INIT_WORK(&sc->hw_reset_work, ath_reset_work); - INIT_WORK(&sc->hw_check_work, ath_hw_check); - INIT_WORK(&sc->paprd_work, ath_paprd_calibrate); - INIT_DELAYED_WORK(&sc->hw_pll_work, ath_hw_pll_work); sc->last_rssi = ATH_RSSI_DUMMY_MARKER; ath_init_leds(sc); --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/rc.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/rc.c @@ -1347,7 +1347,7 @@ fc = hdr->frame_control; for (i = 0; i < sc->hw->max_rates; i++) { struct ieee80211_tx_rate *rate = &tx_info->status.rates[i]; - if (!rate->count) + if (rate->idx < 0 || !rate->count) break; final_ts_idx = i; --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/xmit.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/xmit.c @@ -64,7 +64,8 @@ static struct ath_buf *ath_tx_setup_buffer(struct ath_softc *sc, struct ath_txq *txq, struct ath_atx_tid *tid, - struct sk_buff *skb); + struct sk_buff *skb, + bool dequeue); enum { MCS_HT20, @@ -287,6 +288,7 @@ } bf = list_first_entry(&sc->tx.txbuf, struct ath_buf, list); + bf->bf_next = NULL; list_del(&bf->list); spin_unlock_bh(&sc->tx.txbuflock); @@ -368,7 +370,7 @@ u16 seq_st = 0, acked_cnt = 0, txfail_cnt = 0; u32 ba[WME_BA_BMP_SIZE >> 5]; int isaggr, txfail, txpending, sendbar = 0, needreset = 0, nbad = 0; - bool rc_update = true; + bool rc_update = true, isba; struct ieee80211_tx_rate rates[4]; struct ath_frame_info *fi; int nframes; @@ -406,13 +408,17 @@ an = (struct ath_node *)sta->drv_priv; tidno = ieee80211_get_qos_ctl(hdr)[0] & IEEE80211_QOS_CTL_TID_MASK; tid = ATH_AN_2_TID(an, tidno); + isba = ts->ts_flags & ATH9K_TX_BA; /* * The hardware occasionally sends a tx status for the wrong TID. * In this case, the BA status cannot be considered valid and all * subframes need to be retransmitted + * + * Only BlockAcks have a TID and therefore normal Acks cannot be + * checked */ - if (tidno != ts->tid) + if (isba && tidno != ts->tid) txok = false; isaggr = bf_isaggr(bf); @@ -761,7 +767,7 @@ fi = get_frame_info(skb); bf = fi->bf; if (!fi->bf) - bf = ath_tx_setup_buffer(sc, txq, tid, skb); + bf = ath_tx_setup_buffer(sc, txq, tid, skb, true); if (!bf) continue; @@ -935,13 +941,13 @@ } /* legacy rates */ + rate = &sc->sbands[tx_info->band].bitrates[rates[i].idx]; if ((tx_info->band == IEEE80211_BAND_2GHZ) && !(rate->flags & IEEE80211_RATE_ERP_G)) phy = WLAN_RC_PHY_CCK; else phy = WLAN_RC_PHY_OFDM; - rate = &sc->sbands[tx_info->band].bitrates[rates[i].idx]; info->rates[i].Rate = rate->hw_value; if (rate->hw_value_short) { if (rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) @@ -1669,7 +1675,7 @@ return; } - bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb); + bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb, false); if (!bf) return; @@ -1696,7 +1702,7 @@ bf = fi->bf; if (!bf) - bf = ath_tx_setup_buffer(sc, txq, tid, skb); + bf = ath_tx_setup_buffer(sc, txq, tid, skb, false); if (!bf) return; @@ -1709,6 +1715,7 @@ if (tid) INCR(tid->seq_start, IEEE80211_SEQ_MAX); + bf->bf_next = NULL; bf->bf_lastbf = bf; ath_tx_fill_desc(sc, bf, txq, fi->framelen); ath_tx_txqaddbuf(sc, txq, &bf_head, false); @@ -1761,7 +1768,8 @@ static struct ath_buf *ath_tx_setup_buffer(struct ath_softc *sc, struct ath_txq *txq, struct ath_atx_tid *tid, - struct sk_buff *skb) + struct sk_buff *skb, + bool dequeue) { struct ath_common *common = ath9k_hw_common(sc->sc_ah); struct ath_frame_info *fi = get_frame_info(skb); @@ -1802,6 +1810,8 @@ return bf; error: + if (dequeue) + __skb_unlink(skb, &tid->buf_q); dev_kfree_skb_any(skb); return NULL; } @@ -1833,7 +1843,7 @@ */ ath_tx_send_ampdu(sc, tid, skb, txctl); } else { - bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb); + bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb, false); if (!bf) goto out; --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/htc.h +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/htc.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/common.h +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/common.h @@ -35,7 +35,7 @@ #define WME_AC_BK 3 #define WME_NUM_AC 4 -#define ATH_RSSI_DUMMY_MARKER 0x127 +#define ATH_RSSI_DUMMY_MARKER 127 #define ATH_RSSI_LPF_LEN 10 #define RSSI_LPF_THRESHOLD -20 #define ATH_RSSI_EP_MULTIPLIER (1<<7) --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/ar9003_mac.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/ar9003_mac.c @@ -526,10 +526,11 @@ rxs->rs_status |= ATH9K_RXERR_DECRYPT; else if (rxsp->status11 & AR_MichaelErr) rxs->rs_status |= ATH9K_RXERR_MIC; - if (rxsp->status11 & AR_KeyMiss) - rxs->rs_status |= ATH9K_RXERR_KEYMISS; } + if (rxsp->status11 & AR_KeyMiss) + rxs->rs_status |= ATH9K_RXERR_KEYMISS; + return 0; } EXPORT_SYMBOL(ath9k_hw_process_rxdesc_edma); --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/ar9003_phy.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/ar9003_phy.c @@ -541,35 +541,22 @@ udelay(synthDelay + BASE_ACTIVATE_DELAY); } -static void ar9003_hw_set_chain_masks(struct ath_hw *ah, u8 rx, u8 tx) +void ar9003_hw_set_chain_masks(struct ath_hw *ah, u8 rx, u8 tx) { - switch (rx) { - case 0x5: + if (ah->caps.tx_chainmask == 5 || ah->caps.rx_chainmask == 5) REG_SET_BIT(ah, AR_PHY_ANALOG_SWAP, AR_PHY_SWAP_ALT_CHAIN); - case 0x3: - case 0x1: - case 0x2: - case 0x7: - REG_WRITE(ah, AR_PHY_RX_CHAINMASK, rx); - REG_WRITE(ah, AR_PHY_CAL_CHAINMASK, rx); - break; - default: - break; - } + + REG_WRITE(ah, AR_PHY_RX_CHAINMASK, rx); + REG_WRITE(ah, AR_PHY_CAL_CHAINMASK, rx); if ((ah->caps.hw_caps & ATH9K_HW_CAP_APM) && (tx == 0x7)) - REG_WRITE(ah, AR_SELFGEN_MASK, 0x3); + tx = 3; else if (AR_SREV_9462(ah)) /* xxx only when MCI support is enabled */ - REG_WRITE(ah, AR_SELFGEN_MASK, 0x3); - else - REG_WRITE(ah, AR_SELFGEN_MASK, tx); + tx = 3; - if (tx == 0x5) { - REG_SET_BIT(ah, AR_PHY_ANALOG_SWAP, - AR_PHY_SWAP_ALT_CHAIN); - } + REG_WRITE(ah, AR_SELFGEN_MASK, tx); } /* --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/hw.h +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/hw.h @@ -48,6 +48,7 @@ #define AR9300_DEVID_AR9580 0x0033 #define AR9300_DEVID_AR9462 0x0034 #define AR9300_DEVID_AR9330 0x0035 +#define AR9485_DEVID_AR1111 0x0037 #define AR5416_AR9100_DEVID 0x000b @@ -351,6 +352,7 @@ struct ath9k_hw_cal_data { u16 channel; u32 channelFlags; + u32 chanmode; int32_t CalValid; int8_t iCoff; int8_t qCoff; @@ -772,7 +774,6 @@ u32 *analogBank6Data; u32 *analogBank6TPCData; u32 *analogBank7Data; - u32 *addac5416_21; u32 *bank6Temp; u8 txpower_limit; @@ -1016,6 +1017,7 @@ int ar9003_paprd_init_table(struct ath_hw *ah); bool ar9003_paprd_is_done(struct ath_hw *ah); void ar9003_hw_set_paprd_txdesc(struct ath_hw *ah, void *ds, u8 chains); +void ar9003_hw_set_chain_masks(struct ath_hw *ah, u8 rx, u8 tx); /* Hardware family op attach helpers */ void ar5008_hw_attach_phy_ops(struct ath_hw *ah); --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/ar9580_1p0_initvals.h +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/ar9580_1p0_initvals.h @@ -648,7 +648,7 @@ {0x00008258, 0x00000000}, {0x0000825c, 0x40000000}, {0x00008260, 0x00080922}, - {0x00008264, 0x9bc00010}, + {0x00008264, 0x9d400010}, {0x00008268, 0xffffffff}, {0x0000826c, 0x0000ffff}, {0x00008270, 0x00000000}, --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/htc_drv_init.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/htc_drv_init.c @@ -801,7 +801,7 @@ * required version. */ if (priv->fw_version_major != MAJOR_VERSION_REQ || - priv->fw_version_minor != MINOR_VERSION_REQ) { + priv->fw_version_minor < MINOR_VERSION_REQ) { dev_err(priv->dev, "ath9k_htc: Please upgrade to FW version %d.%d\n", MAJOR_VERSION_REQ, MINOR_VERSION_REQ); return -EINVAL; --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/htc_hst.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/htc_hst.c @@ -342,6 +342,8 @@ endpoint->ep_callbacks.tx(endpoint->ep_callbacks.priv, skb, htc_hdr->endpoint_id, txok); + } else { + kfree_skb(skb); } } --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/rc.h +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/rc.h @@ -221,7 +221,7 @@ struct ath_rc_stats rcstats[RATE_TABLE_SIZE]; }; -#ifdef CONFIG_ATH9K_RATE_CONTROL +#ifdef CONFIG_ATH9K_LEGACY_RATE_CONTROL int ath_rate_control_register(void); void ath_rate_control_unregister(void); #else --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/mac.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/mac.c @@ -621,10 +621,11 @@ rs->rs_status |= ATH9K_RXERR_DECRYPT; else if (ads.ds_rxstatus8 & AR_MichaelErr) rs->rs_status |= ATH9K_RXERR_MIC; - if (ads.ds_rxstatus8 & AR_KeyMiss) - rs->rs_status |= ATH9K_RXERR_KEYMISS; } + if (ads.ds_rxstatus8 & AR_KeyMiss) + rs->rs_status |= ATH9K_RXERR_KEYMISS; + return 0; } EXPORT_SYMBOL(ath9k_hw_rxprocdesc); --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/ar5008_phy.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/ar5008_phy.c @@ -489,8 +489,6 @@ ATH_ALLOC_BANK(ah->analogBank6Data, ah->iniBank6.ia_rows); ATH_ALLOC_BANK(ah->analogBank6TPCData, ah->iniBank6TPC.ia_rows); ATH_ALLOC_BANK(ah->analogBank7Data, ah->iniBank7.ia_rows); - ATH_ALLOC_BANK(ah->addac5416_21, - ah->iniAddac.ia_rows * ah->iniAddac.ia_columns); ATH_ALLOC_BANK(ah->bank6Temp, ah->iniBank6.ia_rows); return 0; @@ -519,7 +517,6 @@ ATH_FREE_BANK(ah->analogBank6Data); ATH_FREE_BANK(ah->analogBank6TPCData); ATH_FREE_BANK(ah->analogBank7Data); - ATH_FREE_BANK(ah->addac5416_21); ATH_FREE_BANK(ah->bank6Temp); #undef ATH_FREE_BANK @@ -805,27 +802,7 @@ if (ah->eep_ops->set_addac) ah->eep_ops->set_addac(ah, chan); - if (AR_SREV_5416_22_OR_LATER(ah)) { - REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites); - } else { - struct ar5416IniArray temp; - u32 addacSize = - sizeof(u32) * ah->iniAddac.ia_rows * - ah->iniAddac.ia_columns; - - /* For AR5416 2.0/2.1 */ - memcpy(ah->addac5416_21, - ah->iniAddac.ia_array, addacSize); - - /* override CLKDRV value at [row, column] = [31, 1] */ - (ah->addac5416_21)[31 * ah->iniAddac.ia_columns + 1] = 0; - - temp.ia_array = ah->addac5416_21; - temp.ia_columns = ah->iniAddac.ia_columns; - temp.ia_rows = ah->iniAddac.ia_rows; - REG_WRITE_ARRAY(&temp, 1, regWrites); - } - + REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites); REG_WRITE(ah, AR_PHY_ADC_SERIAL_CTL, AR_PHY_SEL_INTERNAL_ADDAC); ENABLE_REGWRITE_BUFFER(ah); --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/beacon.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/beacon.c @@ -155,6 +155,7 @@ skb->len, DMA_TO_DEVICE); dev_kfree_skb_any(skb); bf->bf_buf_addr = 0; + bf->bf_mpdu = NULL; } /* Get a new beacon from mac80211 */ --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/ar9003_phy.h +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/ar9003_phy.h @@ -334,6 +334,8 @@ #define AR_PHY_CCA_NOM_VAL_9330_2GHZ -118 +#define AR9300_EXT_LNA_CTL_GPIO_AR9485 9 + /* * AGC Field Definitions */ --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h @@ -835,107 +835,107 @@ static const u32 ar9300Modes_high_power_tx_gain_table_2p2[][5] = { /* Addr 5G_HT20 5G_HT40 2G_HT40 2G_HT20 */ - {0x0000a2dc, 0x000cfff0, 0x000cfff0, 0x03aaa352, 0x03aaa352}, - {0x0000a2e0, 0x000f0000, 0x000f0000, 0x03ccc584, 0x03ccc584}, - {0x0000a2e4, 0x03f00000, 0x03f00000, 0x03f0f800, 0x03f0f800}, + {0x0000a2dc, 0x0380c7fc, 0x0380c7fc, 0x03aaa352, 0x03aaa352}, + {0x0000a2e0, 0x0000f800, 0x0000f800, 0x03ccc584, 0x03ccc584}, + {0x0000a2e4, 0x03ff0000, 0x03ff0000, 0x03f0f800, 0x03f0f800}, {0x0000a2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, - {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d9, 0x000050d9}, - {0x0000a500, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x0000a504, 0x06000003, 0x06000003, 0x04000002, 0x04000002}, - {0x0000a508, 0x0a000020, 0x0a000020, 0x08000004, 0x08000004}, - {0x0000a50c, 0x10000023, 0x10000023, 0x0b000200, 0x0b000200}, - {0x0000a510, 0x15000028, 0x15000028, 0x0f000202, 0x0f000202}, - {0x0000a514, 0x1b00002b, 0x1b00002b, 0x12000400, 0x12000400}, - {0x0000a518, 0x1f020028, 0x1f020028, 0x16000402, 0x16000402}, - {0x0000a51c, 0x2502002b, 0x2502002b, 0x19000404, 0x19000404}, - {0x0000a520, 0x2a04002a, 0x2a04002a, 0x1c000603, 0x1c000603}, - {0x0000a524, 0x2e06002a, 0x2e06002a, 0x21000a02, 0x21000a02}, - {0x0000a528, 0x3302202d, 0x3302202d, 0x25000a04, 0x25000a04}, - {0x0000a52c, 0x3804202c, 0x3804202c, 0x28000a20, 0x28000a20}, - {0x0000a530, 0x3c06202c, 0x3c06202c, 0x2c000e20, 0x2c000e20}, - {0x0000a534, 0x4108202d, 0x4108202d, 0x30000e22, 0x30000e22}, - {0x0000a538, 0x4506402d, 0x4506402d, 0x34000e24, 0x34000e24}, - {0x0000a53c, 0x4906222d, 0x4906222d, 0x38001640, 0x38001640}, - {0x0000a540, 0x4d062231, 0x4d062231, 0x3c001660, 0x3c001660}, - {0x0000a544, 0x50082231, 0x50082231, 0x3f001861, 0x3f001861}, - {0x0000a548, 0x5608422e, 0x5608422e, 0x43001a81, 0x43001a81}, - {0x0000a54c, 0x5a08442e, 0x5a08442e, 0x47001a83, 0x47001a83}, - {0x0000a550, 0x5e0a4431, 0x5e0a4431, 0x4a001c84, 0x4a001c84}, - {0x0000a554, 0x640a4432, 0x640a4432, 0x4e001ce3, 0x4e001ce3}, - {0x0000a558, 0x680a4434, 0x680a4434, 0x52001ce5, 0x52001ce5}, - {0x0000a55c, 0x6c0a6434, 0x6c0a6434, 0x56001ce9, 0x56001ce9}, - {0x0000a560, 0x6f0a6633, 0x6f0a6633, 0x5a001ceb, 0x5a001ceb}, - {0x0000a564, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, - {0x0000a568, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, - {0x0000a56c, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, - {0x0000a570, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, - {0x0000a574, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, - {0x0000a578, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, - {0x0000a57c, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, - {0x0000a580, 0x00800000, 0x00800000, 0x00800000, 0x00800000}, - {0x0000a584, 0x06800003, 0x06800003, 0x04800002, 0x04800002}, - {0x0000a588, 0x0a800020, 0x0a800020, 0x08800004, 0x08800004}, - {0x0000a58c, 0x10800023, 0x10800023, 0x0b800200, 0x0b800200}, - {0x0000a590, 0x15800028, 0x15800028, 0x0f800202, 0x0f800202}, - {0x0000a594, 0x1b80002b, 0x1b80002b, 0x12800400, 0x12800400}, - {0x0000a598, 0x1f820028, 0x1f820028, 0x16800402, 0x16800402}, - {0x0000a59c, 0x2582002b, 0x2582002b, 0x19800404, 0x19800404}, - {0x0000a5a0, 0x2a84002a, 0x2a84002a, 0x1c800603, 0x1c800603}, - {0x0000a5a4, 0x2e86002a, 0x2e86002a, 0x21800a02, 0x21800a02}, - {0x0000a5a8, 0x3382202d, 0x3382202d, 0x25800a04, 0x25800a04}, - {0x0000a5ac, 0x3884202c, 0x3884202c, 0x28800a20, 0x28800a20}, - {0x0000a5b0, 0x3c86202c, 0x3c86202c, 0x2c800e20, 0x2c800e20}, - {0x0000a5b4, 0x4188202d, 0x4188202d, 0x30800e22, 0x30800e22}, - {0x0000a5b8, 0x4586402d, 0x4586402d, 0x34800e24, 0x34800e24}, - {0x0000a5bc, 0x4986222d, 0x4986222d, 0x38801640, 0x38801640}, - {0x0000a5c0, 0x4d862231, 0x4d862231, 0x3c801660, 0x3c801660}, - {0x0000a5c4, 0x50882231, 0x50882231, 0x3f801861, 0x3f801861}, - {0x0000a5c8, 0x5688422e, 0x5688422e, 0x43801a81, 0x43801a81}, - {0x0000a5cc, 0x5a88442e, 0x5a88442e, 0x47801a83, 0x47801a83}, - {0x0000a5d0, 0x5e8a4431, 0x5e8a4431, 0x4a801c84, 0x4a801c84}, - {0x0000a5d4, 0x648a4432, 0x648a4432, 0x4e801ce3, 0x4e801ce3}, - {0x0000a5d8, 0x688a4434, 0x688a4434, 0x52801ce5, 0x52801ce5}, - {0x0000a5dc, 0x6c8a6434, 0x6c8a6434, 0x56801ce9, 0x56801ce9}, - {0x0000a5e0, 0x6f8a6633, 0x6f8a6633, 0x5a801ceb, 0x5a801ceb}, - {0x0000a5e4, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, - {0x0000a5e8, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, - {0x0000a5ec, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, - {0x0000a5f0, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, - {0x0000a5f4, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, - {0x0000a5f8, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, - {0x0000a5fc, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, + {0x0000a410, 0x000050d8, 0x000050d8, 0x000050d9, 0x000050d9}, + {0x0000a500, 0x00002220, 0x00002220, 0x00000000, 0x00000000}, + {0x0000a504, 0x04002222, 0x04002222, 0x04000002, 0x04000002}, + {0x0000a508, 0x09002421, 0x09002421, 0x08000004, 0x08000004}, + {0x0000a50c, 0x0d002621, 0x0d002621, 0x0b000200, 0x0b000200}, + {0x0000a510, 0x13004620, 0x13004620, 0x0f000202, 0x0f000202}, + {0x0000a514, 0x19004a20, 0x19004a20, 0x11000400, 0x11000400}, + {0x0000a518, 0x1d004e20, 0x1d004e20, 0x15000402, 0x15000402}, + {0x0000a51c, 0x21005420, 0x21005420, 0x19000404, 0x19000404}, + {0x0000a520, 0x26005e20, 0x26005e20, 0x1b000603, 0x1b000603}, + {0x0000a524, 0x2b005e40, 0x2b005e40, 0x1f000a02, 0x1f000a02}, + {0x0000a528, 0x2f005e42, 0x2f005e42, 0x23000a04, 0x23000a04}, + {0x0000a52c, 0x33005e44, 0x33005e44, 0x26000a20, 0x26000a20}, + {0x0000a530, 0x38005e65, 0x38005e65, 0x2a000e20, 0x2a000e20}, + {0x0000a534, 0x3c005e69, 0x3c005e69, 0x2e000e22, 0x2e000e22}, + {0x0000a538, 0x40005e6b, 0x40005e6b, 0x31000e24, 0x31000e24}, + {0x0000a53c, 0x44005e6d, 0x44005e6d, 0x34001640, 0x34001640}, + {0x0000a540, 0x49005e72, 0x49005e72, 0x38001660, 0x38001660}, + {0x0000a544, 0x4e005eb2, 0x4e005eb2, 0x3b001861, 0x3b001861}, + {0x0000a548, 0x53005f12, 0x53005f12, 0x3e001a81, 0x3e001a81}, + {0x0000a54c, 0x59025eb2, 0x59025eb2, 0x42001a83, 0x42001a83}, + {0x0000a550, 0x5e025f12, 0x5e025f12, 0x44001c84, 0x44001c84}, + {0x0000a554, 0x61027f12, 0x61027f12, 0x48001ce3, 0x48001ce3}, + {0x0000a558, 0x6702bf12, 0x6702bf12, 0x4c001ce5, 0x4c001ce5}, + {0x0000a55c, 0x6b02bf14, 0x6b02bf14, 0x50001ce9, 0x50001ce9}, + {0x0000a560, 0x6f02bf16, 0x6f02bf16, 0x54001ceb, 0x54001ceb}, + {0x0000a564, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec}, + {0x0000a568, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec}, + {0x0000a56c, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec}, + {0x0000a570, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec}, + {0x0000a574, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec}, + {0x0000a578, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec}, + {0x0000a57c, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec}, + {0x0000a580, 0x00802220, 0x00802220, 0x00800000, 0x00800000}, + {0x0000a584, 0x04802222, 0x04802222, 0x04800002, 0x04800002}, + {0x0000a588, 0x09802421, 0x09802421, 0x08800004, 0x08800004}, + {0x0000a58c, 0x0d802621, 0x0d802621, 0x0b800200, 0x0b800200}, + {0x0000a590, 0x13804620, 0x13804620, 0x0f800202, 0x0f800202}, + {0x0000a594, 0x19804a20, 0x19804a20, 0x11800400, 0x11800400}, + {0x0000a598, 0x1d804e20, 0x1d804e20, 0x15800402, 0x15800402}, + {0x0000a59c, 0x21805420, 0x21805420, 0x19800404, 0x19800404}, + {0x0000a5a0, 0x26805e20, 0x26805e20, 0x1b800603, 0x1b800603}, + {0x0000a5a4, 0x2b805e40, 0x2b805e40, 0x1f800a02, 0x1f800a02}, + {0x0000a5a8, 0x2f805e42, 0x2f805e42, 0x23800a04, 0x23800a04}, + {0x0000a5ac, 0x33805e44, 0x33805e44, 0x26800a20, 0x26800a20}, + {0x0000a5b0, 0x38805e65, 0x38805e65, 0x2a800e20, 0x2a800e20}, + {0x0000a5b4, 0x3c805e69, 0x3c805e69, 0x2e800e22, 0x2e800e22}, + {0x0000a5b8, 0x40805e6b, 0x40805e6b, 0x31800e24, 0x31800e24}, + {0x0000a5bc, 0x44805e6d, 0x44805e6d, 0x34801640, 0x34801640}, + {0x0000a5c0, 0x49805e72, 0x49805e72, 0x38801660, 0x38801660}, + {0x0000a5c4, 0x4e805eb2, 0x4e805eb2, 0x3b801861, 0x3b801861}, + {0x0000a5c8, 0x53805f12, 0x53805f12, 0x3e801a81, 0x3e801a81}, + {0x0000a5cc, 0x59825eb2, 0x59825eb2, 0x42801a83, 0x42801a83}, + {0x0000a5d0, 0x5e825f12, 0x5e825f12, 0x44801c84, 0x44801c84}, + {0x0000a5d4, 0x61827f12, 0x61827f12, 0x48801ce3, 0x48801ce3}, + {0x0000a5d8, 0x6782bf12, 0x6782bf12, 0x4c801ce5, 0x4c801ce5}, + {0x0000a5dc, 0x6b82bf14, 0x6b82bf14, 0x50801ce9, 0x50801ce9}, + {0x0000a5e0, 0x6f82bf16, 0x6f82bf16, 0x54801ceb, 0x54801ceb}, + {0x0000a5e4, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec}, + {0x0000a5e8, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec}, + {0x0000a5ec, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec}, + {0x0000a5f0, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec}, + {0x0000a5f4, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec}, + {0x0000a5f8, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec}, + {0x0000a5fc, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec}, {0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x0000a608, 0x01804601, 0x01804601, 0x00000000, 0x00000000}, - {0x0000a60c, 0x01804601, 0x01804601, 0x00000000, 0x00000000}, - {0x0000a610, 0x01804601, 0x01804601, 0x00000000, 0x00000000}, - {0x0000a614, 0x01804601, 0x01804601, 0x01404000, 0x01404000}, - {0x0000a618, 0x01804601, 0x01804601, 0x01404501, 0x01404501}, - {0x0000a61c, 0x01804601, 0x01804601, 0x02008501, 0x02008501}, - {0x0000a620, 0x03408d02, 0x03408d02, 0x0280ca03, 0x0280ca03}, - {0x0000a624, 0x0300cc03, 0x0300cc03, 0x03010c04, 0x03010c04}, - {0x0000a628, 0x03410d04, 0x03410d04, 0x04014c04, 0x04014c04}, - {0x0000a62c, 0x03410d04, 0x03410d04, 0x04015005, 0x04015005}, - {0x0000a630, 0x03410d04, 0x03410d04, 0x04015005, 0x04015005}, - {0x0000a634, 0x03410d04, 0x03410d04, 0x04015005, 0x04015005}, - {0x0000a638, 0x03410d04, 0x03410d04, 0x04015005, 0x04015005}, - {0x0000a63c, 0x03410d04, 0x03410d04, 0x04015005, 0x04015005}, - {0x0000b2dc, 0x000cfff0, 0x000cfff0, 0x03aaa352, 0x03aaa352}, - {0x0000b2e0, 0x000f0000, 0x000f0000, 0x03ccc584, 0x03ccc584}, - {0x0000b2e4, 0x03f00000, 0x03f00000, 0x03f0f800, 0x03f0f800}, + {0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x0000a610, 0x00804000, 0x00804000, 0x00000000, 0x00000000}, + {0x0000a614, 0x00804201, 0x00804201, 0x01404000, 0x01404000}, + {0x0000a618, 0x0280c802, 0x0280c802, 0x01404501, 0x01404501}, + {0x0000a61c, 0x0280ca03, 0x0280ca03, 0x02008501, 0x02008501}, + {0x0000a620, 0x04c15104, 0x04c15104, 0x0280ca03, 0x0280ca03}, + {0x0000a624, 0x04c15305, 0x04c15305, 0x03010c04, 0x03010c04}, + {0x0000a628, 0x04c15305, 0x04c15305, 0x04014c04, 0x04014c04}, + {0x0000a62c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, + {0x0000a630, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, + {0x0000a634, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, + {0x0000a638, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, + {0x0000a63c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, + {0x0000b2dc, 0x0380c7fc, 0x0380c7fc, 0x03aaa352, 0x03aaa352}, + {0x0000b2e0, 0x0000f800, 0x0000f800, 0x03ccc584, 0x03ccc584}, + {0x0000b2e4, 0x03ff0000, 0x03ff0000, 0x03f0f800, 0x03f0f800}, {0x0000b2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, - {0x0000c2dc, 0x000cfff0, 0x000cfff0, 0x03aaa352, 0x03aaa352}, - {0x0000c2e0, 0x000f0000, 0x000f0000, 0x03ccc584, 0x03ccc584}, - {0x0000c2e4, 0x03f00000, 0x03f00000, 0x03f0f800, 0x03f0f800}, + {0x0000c2dc, 0x0380c7fc, 0x0380c7fc, 0x03aaa352, 0x03aaa352}, + {0x0000c2e0, 0x0000f800, 0x0000f800, 0x03ccc584, 0x03ccc584}, + {0x0000c2e4, 0x03ff0000, 0x03ff0000, 0x03f0f800, 0x03f0f800}, {0x0000c2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, {0x00016044, 0x012492d4, 0x012492d4, 0x012492d4, 0x012492d4}, - {0x00016048, 0x61200001, 0x61200001, 0x66480001, 0x66480001}, + {0x00016048, 0x66480001, 0x66480001, 0x66480001, 0x66480001}, {0x00016068, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c}, {0x00016444, 0x012492d4, 0x012492d4, 0x012492d4, 0x012492d4}, - {0x00016448, 0x61200001, 0x61200001, 0x66480001, 0x66480001}, + {0x00016448, 0x66480001, 0x66480001, 0x66480001, 0x66480001}, {0x00016468, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c}, {0x00016844, 0x012492d4, 0x012492d4, 0x012492d4, 0x012492d4}, - {0x00016848, 0x61200001, 0x61200001, 0x66480001, 0x66480001}, + {0x00016848, 0x66480001, 0x66480001, 0x66480001, 0x66480001}, {0x00016868, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c}, }; --- linux-3.2.0.orig/drivers/net/wireless/ath/ath9k/ar9002_hw.c +++ linux-3.2.0/drivers/net/wireless/ath/ath9k/ar9002_hw.c @@ -180,6 +180,25 @@ INIT_INI_ARRAY(&ah->iniAddac, ar5416Addac, ARRAY_SIZE(ar5416Addac), 2); } + + /* iniAddac needs to be modified for these chips */ + if (AR_SREV_9160(ah) || !AR_SREV_5416_22_OR_LATER(ah)) { + struct ar5416IniArray *addac = &ah->iniAddac; + u32 size = sizeof(u32) * addac->ia_rows * addac->ia_columns; + u32 *data; + + data = kmalloc(size, GFP_KERNEL); + if (!data) + return; + + memcpy(data, addac->ia_array, size); + addac->ia_array = data; + + if (!AR_SREV_5416_22_OR_LATER(ah)) { + /* override CLKDRV value */ + INI_RA(addac, 31,1) = 0; + } + } } /* Support for Japan ch.14 (2484) spread */ --- linux-3.2.0.orig/drivers/net/wireless/ath/carl9170/tx.c +++ linux-3.2.0/drivers/net/wireless/ath/carl9170/tx.c @@ -1234,6 +1234,7 @@ { struct ieee80211_sta *sta; struct carl9170_sta_info *sta_info; + struct ieee80211_tx_info *tx_info; rcu_read_lock(); sta = __carl9170_get_tx_sta(ar, skb); @@ -1241,16 +1242,18 @@ goto out_rcu; sta_info = (void *) sta->drv_priv; - if (unlikely(sta_info->sleeping)) { - struct ieee80211_tx_info *tx_info; + tx_info = IEEE80211_SKB_CB(skb); + if (unlikely(sta_info->sleeping) && + !(tx_info->flags & (IEEE80211_TX_CTL_POLL_RESPONSE | + IEEE80211_TX_CTL_CLEAR_PS_FILT))) { rcu_read_unlock(); - tx_info = IEEE80211_SKB_CB(skb); if (tx_info->flags & IEEE80211_TX_CTL_AMPDU) atomic_dec(&ar->tx_ampdu_upload); tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED; + carl9170_release_dev_space(ar, skb); carl9170_tx_status(ar, skb, false); return true; } --- linux-3.2.0.orig/drivers/net/wireless/hostap/hostap_hw.c +++ linux-3.2.0/drivers/net/wireless/hostap/hostap_hw.c @@ -68,7 +68,7 @@ module_param_string(essid, essid, sizeof(essid), 0444); MODULE_PARM_DESC(essid, "Host AP's ESSID"); -static int iw_mode[MAX_PARM_DEVICES] = { IW_MODE_MASTER, DEF_INTS }; +static int iw_mode[MAX_PARM_DEVICES] = { IW_MODE_INFRA, DEF_INTS }; module_param_array(iw_mode, int, NULL, 0444); MODULE_PARM_DESC(iw_mode, "Initial operation mode"); --- linux-3.2.0.orig/drivers/net/wireless/ipw2x00/ipw.h +++ linux-3.2.0/drivers/net/wireless/ipw2x00/ipw.h @@ -0,0 +1,23 @@ +/* + * Intel Pro/Wireless 2100, 2200BG, 2915ABG network connection driver + * + * Copyright 2012 Stanislav Yakovlev + * + * 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. + */ + +#ifndef __IPW_H__ +#define __IPW_H__ + +#include + +static const u32 ipw_cipher_suites[] = { + WLAN_CIPHER_SUITE_WEP40, + WLAN_CIPHER_SUITE_WEP104, + WLAN_CIPHER_SUITE_TKIP, + WLAN_CIPHER_SUITE_CCMP, +}; + +#endif --- linux-3.2.0.orig/drivers/net/wireless/ipw2x00/ipw2100.c +++ linux-3.2.0/drivers/net/wireless/ipw2x00/ipw2100.c @@ -166,6 +166,7 @@ #include #include "ipw2100.h" +#include "ipw.h" #define IPW2100_VERSION "git-1.2.2" @@ -1955,6 +1956,9 @@ wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = bg_band; } + wdev->wiphy->cipher_suites = ipw_cipher_suites; + wdev->wiphy->n_cipher_suites = ARRAY_SIZE(ipw_cipher_suites); + set_wiphy_dev(wdev->wiphy, &priv->pci_dev->dev); if (wiphy_register(wdev->wiphy)) { ipw2100_down(priv); --- linux-3.2.0.orig/drivers/net/wireless/ipw2x00/ipw2200.c +++ linux-3.2.0/drivers/net/wireless/ipw2x00/ipw2200.c @@ -34,6 +34,7 @@ #include #include #include "ipw2200.h" +#include "ipw.h" #ifndef KBUILD_EXTMOD @@ -2183,6 +2184,7 @@ { int rc = 0; unsigned long flags; + unsigned long now, end; spin_lock_irqsave(&priv->lock, flags); if (priv->status & STATUS_HCMD_ACTIVE) { @@ -2224,10 +2226,20 @@ } spin_unlock_irqrestore(&priv->lock, flags); + now = jiffies; + end = now + HOST_COMPLETE_TIMEOUT; +again: rc = wait_event_interruptible_timeout(priv->wait_command_queue, !(priv-> status & STATUS_HCMD_ACTIVE), - HOST_COMPLETE_TIMEOUT); + end - now); + if (rc < 0) { + now = jiffies; + if (time_before(now, end)) + goto again; + rc = 0; + } + if (rc == 0) { spin_lock_irqsave(&priv->lock, flags); if (priv->status & STATUS_HCMD_ACTIVE) { @@ -10451,7 +10463,7 @@ } else len = src->len; - dst = alloc_skb(len + sizeof(*rt_hdr), GFP_ATOMIC); + dst = alloc_skb(len + sizeof(*rt_hdr) + sizeof(u16)*2, GFP_ATOMIC); if (!dst) continue; @@ -11524,6 +11536,9 @@ wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = a_band; } + wdev->wiphy->cipher_suites = ipw_cipher_suites; + wdev->wiphy->n_cipher_suites = ARRAY_SIZE(ipw_cipher_suites); + set_wiphy_dev(wdev->wiphy, &priv->pci_dev->dev); /* With that information in place, we can now register the wiphy... */ --- linux-3.2.0.orig/drivers/net/wireless/b43/Kconfig +++ linux-3.2.0/drivers/net/wireless/b43/Kconfig @@ -28,12 +28,12 @@ config B43_BCMA bool "Support for BCMA bus" - depends on B43 && BCMA + depends on B43 && (BCMA = y || BCMA = B43) default y config B43_SSB bool - depends on B43 && SSB + depends on B43 && (SSB = y || SSB = B43) default y # Auto-select SSB PCI-HOST support, if possible --- linux-3.2.0.orig/drivers/net/wireless/b43/main.c +++ linux-3.2.0/drivers/net/wireless/b43/main.c @@ -1901,30 +1901,18 @@ } } - if (unlikely(merged_dma_reason & (B43_DMAIRQ_FATALMASK | - B43_DMAIRQ_NONFATALMASK))) { - if (merged_dma_reason & B43_DMAIRQ_FATALMASK) { - b43err(dev->wl, "Fatal DMA error: " - "0x%08X, 0x%08X, 0x%08X, " - "0x%08X, 0x%08X, 0x%08X\n", - dma_reason[0], dma_reason[1], - dma_reason[2], dma_reason[3], - dma_reason[4], dma_reason[5]); - b43err(dev->wl, "This device does not support DMA " + if (unlikely(merged_dma_reason & (B43_DMAIRQ_FATALMASK))) { + b43err(dev->wl, + "Fatal DMA error: 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X\n", + dma_reason[0], dma_reason[1], + dma_reason[2], dma_reason[3], + dma_reason[4], dma_reason[5]); + b43err(dev->wl, "This device does not support DMA " "on your system. It will now be switched to PIO.\n"); - /* Fall back to PIO transfers if we get fatal DMA errors! */ - dev->use_pio = 1; - b43_controller_restart(dev, "DMA error"); - return; - } - if (merged_dma_reason & B43_DMAIRQ_NONFATALMASK) { - b43err(dev->wl, "DMA error: " - "0x%08X, 0x%08X, 0x%08X, " - "0x%08X, 0x%08X, 0x%08X\n", - dma_reason[0], dma_reason[1], - dma_reason[2], dma_reason[3], - dma_reason[4], dma_reason[5]); - } + /* Fall back to PIO transfers if we get fatal DMA errors! */ + dev->use_pio = true; + b43_controller_restart(dev, "DMA error"); + return; } if (unlikely(reason & B43_IRQ_UCODE_DEBUG)) @@ -1943,6 +1931,11 @@ handle_irq_noise(dev); /* Check the DMA reason registers for received data. */ + if (dma_reason[0] & B43_DMAIRQ_RDESC_UFLOW) { + if (B43_DEBUG) + b43warn(dev->wl, "RX descriptor underrun\n"); + b43_dma_handle_rx_overflow(dev->dma.rx_ring); + } if (dma_reason[0] & B43_DMAIRQ_RX_DONE) { if (b43_using_pio_transfers(dev)) b43_pio_rx(dev->pio.rx_queue); @@ -2000,7 +1993,7 @@ return IRQ_NONE; dev->dma_reason[0] = b43_read32(dev, B43_MMIO_DMA0_REASON) - & 0x0001DC00; + & 0x0001FC00; dev->dma_reason[1] = b43_read32(dev, B43_MMIO_DMA1_REASON) & 0x0000DC00; dev->dma_reason[2] = b43_read32(dev, B43_MMIO_DMA2_REASON) @@ -2428,7 +2421,7 @@ for (i = 0; i < B43_NR_FWTYPES; i++) { errmsg = ctx->errors[i]; if (strlen(errmsg)) - b43err(dev->wl, errmsg); + b43err(dev->wl, "%s", errmsg); } b43_print_fw_helptext(dev->wl, 1); err = -ENOENT; @@ -3103,7 +3096,7 @@ b43_write32(dev, 0x018C, 0x02000000); } b43_write32(dev, B43_MMIO_GEN_IRQ_REASON, 0x00004000); - b43_write32(dev, B43_MMIO_DMA0_IRQ_MASK, 0x0001DC00); + b43_write32(dev, B43_MMIO_DMA0_IRQ_MASK, 0x0001FC00); b43_write32(dev, B43_MMIO_DMA1_IRQ_MASK, 0x0000DC00); b43_write32(dev, B43_MMIO_DMA2_IRQ_MASK, 0x0000DC00); b43_write32(dev, B43_MMIO_DMA3_IRQ_MASK, 0x0001DC00); @@ -4820,8 +4813,14 @@ out_mutex_unlock: mutex_unlock(&wl->mutex); - /* reload configuration */ - b43_op_config(hw, ~0); + /* + * Configuration may have been overwritten during initialization. + * Reload the configuration, but only if initialization was + * successful. Reloading the configuration after a failed init + * may hang the system. + */ + if (!err) + b43_op_config(hw, ~0); return err; } --- linux-3.2.0.orig/drivers/net/wireless/b43/dma.h +++ linux-3.2.0/drivers/net/wireless/b43/dma.h @@ -9,7 +9,7 @@ /* DMA-Interrupt reasons. */ #define B43_DMAIRQ_FATALMASK ((1 << 10) | (1 << 11) | (1 << 12) \ | (1 << 14) | (1 << 15)) -#define B43_DMAIRQ_NONFATALMASK (1 << 13) +#define B43_DMAIRQ_RDESC_UFLOW (1 << 13) #define B43_DMAIRQ_RX_DONE (1 << 16) /*** 32-bit DMA Engine. ***/ @@ -169,7 +169,7 @@ /* DMA engine tuning knobs */ #define B43_TXRING_SLOTS 256 -#define B43_RXRING_SLOTS 64 +#define B43_RXRING_SLOTS 256 #define B43_DMA0_RX_FW598_BUFSIZE (B43_DMA0_RX_FW598_FO + IEEE80211_MAX_FRAME_LEN) #define B43_DMA0_RX_FW351_BUFSIZE (B43_DMA0_RX_FW351_FO + IEEE80211_MAX_FRAME_LEN) @@ -295,6 +295,8 @@ void b43_dma_handle_txstatus(struct b43_wldev *dev, const struct b43_txstatus *status); +void b43_dma_handle_rx_overflow(struct b43_dmaring *ring); + void b43_dma_rx(struct b43_dmaring *ring); void b43_dma_direct_fifo_rx(struct b43_wldev *dev, --- linux-3.2.0.orig/drivers/net/wireless/b43/dma.c +++ linux-3.2.0/drivers/net/wireless/b43/dma.c @@ -1482,8 +1482,12 @@ const struct b43_dma_ops *ops; struct b43_dmaring *ring; struct b43_dmadesc_meta *meta; + static const struct b43_txstatus fake; /* filled with 0 */ + const struct b43_txstatus *txstat; int slot, firstused; bool frame_succeed; + int skip; + static u8 err_out1, err_out2; ring = parse_cookie(dev, status->cookie, &slot); if (unlikely(!ring)) @@ -1496,13 +1500,36 @@ firstused = ring->current_slot - ring->used_slots + 1; if (firstused < 0) firstused = ring->nr_slots + firstused; + + skip = 0; if (unlikely(slot != firstused)) { /* This possibly is a firmware bug and will result in - * malfunction, memory leaks and/or stall of DMA functionality. */ - b43dbg(dev->wl, "Out of order TX status report on DMA ring %d. " - "Expected %d, but got %d\n", - ring->index, firstused, slot); - return; + * malfunction, memory leaks and/or stall of DMA functionality. + */ + if (slot == next_slot(ring, next_slot(ring, firstused))) { + /* If a single header/data pair was missed, skip over + * the first two slots in an attempt to recover. + */ + slot = firstused; + skip = 2; + if (!err_out1) { + /* Report the error once. */ + b43dbg(dev->wl, + "Skip on DMA ring %d slot %d.\n", + ring->index, slot); + err_out1 = 1; + } + } else { + /* More than a single header/data pair were missed. + * Report this error once. + */ + if (!err_out2) + b43dbg(dev->wl, + "Out of order TX status report on DMA ring %d. Expected %d, but got %d\n", + ring->index, firstused, slot); + err_out2 = 1; + return; + } } ops = ring->ops; @@ -1517,11 +1544,13 @@ slot, firstused, ring->index); break; } + if (meta->skb) { struct b43_private_tx_info *priv_info = - b43_get_priv_tx_info(IEEE80211_SKB_CB(meta->skb)); + b43_get_priv_tx_info(IEEE80211_SKB_CB(meta->skb)); - unmap_descbuffer(ring, meta->dmaaddr, meta->skb->len, 1); + unmap_descbuffer(ring, meta->dmaaddr, + meta->skb->len, 1); kfree(priv_info->bouncebuffer); priv_info->bouncebuffer = NULL; } else { @@ -1533,8 +1562,9 @@ struct ieee80211_tx_info *info; if (unlikely(!meta->skb)) { - /* This is a scatter-gather fragment of a frame, so - * the skb pointer must not be NULL. */ + /* This is a scatter-gather fragment of a frame, + * so the skb pointer must not be NULL. + */ b43dbg(dev->wl, "TX status unexpected NULL skb " "at slot %d (first=%d) on ring %d\n", slot, firstused, ring->index); @@ -1545,9 +1575,18 @@ /* * Call back to inform the ieee80211 subsystem about - * the status of the transmission. + * the status of the transmission. When skipping over + * a missed TX status report, use a status structure + * filled with zeros to indicate that the frame was not + * sent (frame_count 0) and not acknowledged */ - frame_succeed = b43_fill_txstatus_report(dev, info, status); + if (unlikely(skip)) + txstat = &fake; + else + txstat = status; + + frame_succeed = b43_fill_txstatus_report(dev, info, + txstat); #ifdef CONFIG_B43_DEBUG if (frame_succeed) ring->nr_succeed_tx_packets++; @@ -1575,12 +1614,14 @@ /* Everything unmapped and free'd. So it's not used anymore. */ ring->used_slots--; - if (meta->is_last_fragment) { + if (meta->is_last_fragment && !skip) { /* This is the last scatter-gather * fragment of the frame. We are done. */ break; } slot = next_slot(ring, slot); + if (skip > 0) + --skip; } if (ring->stopped) { B43_WARN_ON(free_slots(ring) < TX_SLOTS_PER_FRAME); @@ -1678,6 +1719,25 @@ sync_descbuffer_for_device(ring, dmaaddr, ring->rx_buffersize); } +void b43_dma_handle_rx_overflow(struct b43_dmaring *ring) +{ + int current_slot, previous_slot; + + B43_WARN_ON(ring->tx); + + /* Device has filled all buffers, drop all packets and let TCP + * decrease speed. + * Decrement RX index by one will let the device to see all slots + * as free again + */ + /* + *TODO: How to increase rx_drop in mac80211? + */ + current_slot = ring->ops->get_current_rxslot(ring); + previous_slot = prev_slot(ring, current_slot); + ring->ops->set_current_rxslot(ring, previous_slot); +} + void b43_dma_rx(struct b43_dmaring *ring) { const struct b43_dma_ops *ops = ring->ops; --- linux-3.2.0.orig/drivers/net/wireless/rtl818x/rtl8187/dev.c +++ linux-3.2.0/drivers/net/wireless/rtl818x/rtl8187/dev.c @@ -44,7 +44,7 @@ MODULE_DESCRIPTION("RTL8187/RTL8187B USB wireless driver"); MODULE_LICENSE("GPL"); -static struct usb_device_id rtl8187_table[] __devinitdata = { +static struct usb_device_id rtl8187_table[] = { /* Asus */ {USB_DEVICE(0x0b05, 0x171d), .driver_info = DEVICE_RTL8187}, /* Belkin */ --- linux-3.2.0.orig/drivers/net/wireless/rtl818x/rtl8187/leds.c +++ linux-3.2.0/drivers/net/wireless/rtl818x/rtl8187/leds.c @@ -117,7 +117,7 @@ radio_on = true; } else if (radio_on) { radio_on = false; - cancel_delayed_work_sync(&priv->led_on); + cancel_delayed_work(&priv->led_on); ieee80211_queue_delayed_work(hw, &priv->led_off, 0); } } else if (radio_on) { --- linux-3.2.0.orig/drivers/net/wireless/b43legacy/main.c +++ linux-3.2.0/drivers/net/wireless/b43legacy/main.c @@ -1564,8 +1564,6 @@ const char *filename; int err; - /* do dummy read */ - ssb_read32(dev->dev, SSB_TMSHIGH); if (!fw->ucode) { if (rev == 2) filename = "ucode2"; @@ -3839,6 +3837,8 @@ cancel_work_sync(&wldev->restart_work); B43legacy_WARN_ON(!wl); + if (!wldev->fw.ucode) + return; /* NULL if fw never loaded */ if (wl->current_dev == wldev) ieee80211_unregister_hw(wl->hw); --- linux-3.2.0.orig/drivers/net/caif/caif_serial.c +++ linux-3.2.0/drivers/net/caif/caif_serial.c @@ -325,6 +325,9 @@ sprintf(name, "cf%s", tty->name); dev = alloc_netdev(sizeof(*ser), name, caifdev_setup); + if (!dev) + return -ENOMEM; + ser = netdev_priv(dev); ser->tty = tty_kref_get(tty); ser->dev = dev; --- linux-3.2.0.orig/drivers/net/hyperv/Kconfig +++ linux-3.2.0/drivers/net/hyperv/Kconfig @@ -0,0 +1,5 @@ +config HYPERV_NET + tristate "Microsoft Hyper-V virtual network driver" + depends on HYPERV + help + Select this option to enable the Hyper-V virtual network driver. --- linux-3.2.0.orig/drivers/net/hyperv/hyperv_net.h +++ linux-3.2.0/drivers/net/hyperv/hyperv_net.h @@ -0,0 +1,1197 @@ +/* + * + * Copyright (c) 2011, Microsoft Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope 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., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * + * Authors: + * Haiyang Zhang + * Hank Janssen + * K. Y. Srinivasan + * + */ + +#ifndef _HYPERV_NET_H +#define _HYPERV_NET_H + +#include +#include + +/* Fwd declaration */ +struct hv_netvsc_packet; + +/* Represent the xfer page packet which contains 1 or more netvsc packet */ +struct xferpage_packet { + struct list_head list_ent; + + /* # of netvsc packets this xfer packet contains */ + u32 count; +}; + +/* + * Represent netvsc packet which contains 1 RNDIS and 1 ethernet frame + * within the RNDIS + */ +struct hv_netvsc_packet { + /* Bookkeeping stuff */ + struct list_head list_ent; + + struct hv_device *device; + bool is_data_pkt; + u16 vlan_tci; + + /* + * Valid only for receives when we break a xfer page packet + * into multiple netvsc packets + */ + struct xferpage_packet *xfer_page_pkt; + + union { + struct { + u64 recv_completion_tid; + void *recv_completion_ctx; + void (*recv_completion)(void *context); + } recv; + struct { + u64 send_completion_tid; + void *send_completion_ctx; + void (*send_completion)(void *context); + } send; + } completion; + + /* This points to the memory after page_buf */ + void *extension; + + u32 total_data_buflen; + /* Points to the send/receive buffer where the ethernet frame is */ + void *data; + u32 page_buf_cnt; + struct hv_page_buffer page_buf[0]; +}; + +struct netvsc_device_info { + unsigned char mac_adr[6]; + bool link_state; /* 0 - link up, 1 - link down */ + int ring_size; +}; + +enum rndis_device_state { + RNDIS_DEV_UNINITIALIZED = 0, + RNDIS_DEV_INITIALIZING, + RNDIS_DEV_INITIALIZED, + RNDIS_DEV_DATAINITIALIZED, +}; + +struct rndis_device { + struct netvsc_device *net_dev; + + enum rndis_device_state state; + bool link_state; + atomic_t new_req_id; + + spinlock_t request_lock; + struct list_head req_list; + + unsigned char hw_mac_adr[ETH_ALEN]; +}; + + +/* Interface */ +int netvsc_device_add(struct hv_device *device, void *additional_info); +int netvsc_device_remove(struct hv_device *device); +int netvsc_send(struct hv_device *device, + struct hv_netvsc_packet *packet); +void netvsc_linkstatus_callback(struct hv_device *device_obj, + unsigned int status); +int netvsc_recv_callback(struct hv_device *device_obj, + struct hv_netvsc_packet *packet); +int rndis_filter_open(struct hv_device *dev); +int rndis_filter_close(struct hv_device *dev); +int rndis_filter_device_add(struct hv_device *dev, + void *additional_info); +void rndis_filter_device_remove(struct hv_device *dev); +int rndis_filter_receive(struct hv_device *dev, + struct hv_netvsc_packet *pkt); + + + +int rndis_filter_send(struct hv_device *dev, + struct hv_netvsc_packet *pkt); + +int rndis_filter_set_packet_filter(struct rndis_device *dev, u32 new_filter); + + +#define NVSP_INVALID_PROTOCOL_VERSION ((u32)0xFFFFFFFF) + +#define NVSP_PROTOCOL_VERSION_1 2 +#define NVSP_PROTOCOL_VERSION_2 0x30002 + +enum { + NVSP_MSG_TYPE_NONE = 0, + + /* Init Messages */ + NVSP_MSG_TYPE_INIT = 1, + NVSP_MSG_TYPE_INIT_COMPLETE = 2, + + NVSP_VERSION_MSG_START = 100, + + /* Version 1 Messages */ + NVSP_MSG1_TYPE_SEND_NDIS_VER = NVSP_VERSION_MSG_START, + + NVSP_MSG1_TYPE_SEND_RECV_BUF, + NVSP_MSG1_TYPE_SEND_RECV_BUF_COMPLETE, + NVSP_MSG1_TYPE_REVOKE_RECV_BUF, + + NVSP_MSG1_TYPE_SEND_SEND_BUF, + NVSP_MSG1_TYPE_SEND_SEND_BUF_COMPLETE, + NVSP_MSG1_TYPE_REVOKE_SEND_BUF, + + NVSP_MSG1_TYPE_SEND_RNDIS_PKT, + NVSP_MSG1_TYPE_SEND_RNDIS_PKT_COMPLETE, + + /* Version 2 messages */ + NVSP_MSG2_TYPE_SEND_CHIMNEY_DELEGATED_BUF, + NVSP_MSG2_TYPE_SEND_CHIMNEY_DELEGATED_BUF_COMP, + NVSP_MSG2_TYPE_REVOKE_CHIMNEY_DELEGATED_BUF, + + NVSP_MSG2_TYPE_RESUME_CHIMNEY_RX_INDICATION, + + NVSP_MSG2_TYPE_TERMINATE_CHIMNEY, + NVSP_MSG2_TYPE_TERMINATE_CHIMNEY_COMP, + + NVSP_MSG2_TYPE_INDICATE_CHIMNEY_EVENT, + + NVSP_MSG2_TYPE_SEND_CHIMNEY_PKT, + NVSP_MSG2_TYPE_SEND_CHIMNEY_PKT_COMP, + + NVSP_MSG2_TYPE_POST_CHIMNEY_RECV_REQ, + NVSP_MSG2_TYPE_POST_CHIMNEY_RECV_REQ_COMP, + + NVSP_MSG2_TYPE_ALLOC_RXBUF, + NVSP_MSG2_TYPE_ALLOC_RXBUF_COMP, + + NVSP_MSG2_TYPE_FREE_RXBUF, + + NVSP_MSG2_TYPE_SEND_VMQ_RNDIS_PKT, + NVSP_MSG2_TYPE_SEND_VMQ_RNDIS_PKT_COMP, + + NVSP_MSG2_TYPE_SEND_NDIS_CONFIG, + + NVSP_MSG2_TYPE_ALLOC_CHIMNEY_HANDLE, + NVSP_MSG2_TYPE_ALLOC_CHIMNEY_HANDLE_COMP, +}; + +enum { + NVSP_STAT_NONE = 0, + NVSP_STAT_SUCCESS, + NVSP_STAT_FAIL, + NVSP_STAT_PROTOCOL_TOO_NEW, + NVSP_STAT_PROTOCOL_TOO_OLD, + NVSP_STAT_INVALID_RNDIS_PKT, + NVSP_STAT_BUSY, + NVSP_STAT_PROTOCOL_UNSUPPORTED, + NVSP_STAT_MAX, +}; + +struct nvsp_message_header { + u32 msg_type; +}; + +/* Init Messages */ + +/* + * This message is used by the VSC to initialize the channel after the channels + * has been opened. This message should never include anything other then + * versioning (i.e. this message will be the same for ever). + */ +struct nvsp_message_init { + u32 min_protocol_ver; + u32 max_protocol_ver; +} __packed; + +/* + * This message is used by the VSP to complete the initialization of the + * channel. This message should never include anything other then versioning + * (i.e. this message will be the same for ever). + */ +struct nvsp_message_init_complete { + u32 negotiated_protocol_ver; + u32 max_mdl_chain_len; + u32 status; +} __packed; + +union nvsp_message_init_uber { + struct nvsp_message_init init; + struct nvsp_message_init_complete init_complete; +} __packed; + +/* Version 1 Messages */ + +/* + * This message is used by the VSC to send the NDIS version to the VSP. The VSP + * can use this information when handling OIDs sent by the VSC. + */ +struct nvsp_1_message_send_ndis_version { + u32 ndis_major_ver; + u32 ndis_minor_ver; +} __packed; + +/* + * This message is used by the VSC to send a receive buffer to the VSP. The VSP + * can then use the receive buffer to send data to the VSC. + */ +struct nvsp_1_message_send_receive_buffer { + u32 gpadl_handle; + u16 id; +} __packed; + +struct nvsp_1_receive_buffer_section { + u32 offset; + u32 sub_alloc_size; + u32 num_sub_allocs; + u32 end_offset; +} __packed; + +/* + * This message is used by the VSP to acknowledge a receive buffer send by the + * VSC. This message must be sent by the VSP before the VSP uses the receive + * buffer. + */ +struct nvsp_1_message_send_receive_buffer_complete { + u32 status; + u32 num_sections; + + /* + * The receive buffer is split into two parts, a large suballocation + * section and a small suballocation section. These sections are then + * suballocated by a certain size. + */ + + /* + * For example, the following break up of the receive buffer has 6 + * large suballocations and 10 small suballocations. + */ + + /* + * | Large Section | | Small Section | + * ------------------------------------------------------------ + * | | | | | | | | | | | | | | | | | | + * | | + * LargeOffset SmallOffset + */ + + struct nvsp_1_receive_buffer_section sections[1]; +} __packed; + +/* + * This message is sent by the VSC to revoke the receive buffer. After the VSP + * completes this transaction, the vsp should never use the receive buffer + * again. + */ +struct nvsp_1_message_revoke_receive_buffer { + u16 id; +}; + +/* + * This message is used by the VSC to send a send buffer to the VSP. The VSC + * can then use the send buffer to send data to the VSP. + */ +struct nvsp_1_message_send_send_buffer { + u32 gpadl_handle; + u16 id; +} __packed; + +/* + * This message is used by the VSP to acknowledge a send buffer sent by the + * VSC. This message must be sent by the VSP before the VSP uses the sent + * buffer. + */ +struct nvsp_1_message_send_send_buffer_complete { + u32 status; + + /* + * The VSC gets to choose the size of the send buffer and the VSP gets + * to choose the sections size of the buffer. This was done to enable + * dynamic reconfigurations when the cost of GPA-direct buffers + * decreases. + */ + u32 section_size; +} __packed; + +/* + * This message is sent by the VSC to revoke the send buffer. After the VSP + * completes this transaction, the vsp should never use the send buffer again. + */ +struct nvsp_1_message_revoke_send_buffer { + u16 id; +}; + +/* + * This message is used by both the VSP and the VSC to send a RNDIS message to + * the opposite channel endpoint. + */ +struct nvsp_1_message_send_rndis_packet { + /* + * This field is specified by RNIDS. They assume there's two different + * channels of communication. However, the Network VSP only has one. + * Therefore, the channel travels with the RNDIS packet. + */ + u32 channel_type; + + /* + * This field is used to send part or all of the data through a send + * buffer. This values specifies an index into the send buffer. If the + * index is 0xFFFFFFFF, then the send buffer is not being used and all + * of the data was sent through other VMBus mechanisms. + */ + u32 send_buf_section_index; + u32 send_buf_section_size; +} __packed; + +/* + * This message is used by both the VSP and the VSC to complete a RNDIS message + * to the opposite channel endpoint. At this point, the initiator of this + * message cannot use any resources associated with the original RNDIS packet. + */ +struct nvsp_1_message_send_rndis_packet_complete { + u32 status; +}; + +union nvsp_1_message_uber { + struct nvsp_1_message_send_ndis_version send_ndis_ver; + + struct nvsp_1_message_send_receive_buffer send_recv_buf; + struct nvsp_1_message_send_receive_buffer_complete + send_recv_buf_complete; + struct nvsp_1_message_revoke_receive_buffer revoke_recv_buf; + + struct nvsp_1_message_send_send_buffer send_send_buf; + struct nvsp_1_message_send_send_buffer_complete send_send_buf_complete; + struct nvsp_1_message_revoke_send_buffer revoke_send_buf; + + struct nvsp_1_message_send_rndis_packet send_rndis_pkt; + struct nvsp_1_message_send_rndis_packet_complete + send_rndis_pkt_complete; +} __packed; + + +/* + * Network VSP protocol version 2 messages: + */ +struct nvsp_2_vsc_capability { + union { + u64 data; + struct { + u64 vmq:1; + u64 chimney:1; + u64 sriov:1; + u64 ieee8021q:1; + u64 correlation_id:1; + }; + }; +} __packed; + +struct nvsp_2_send_ndis_config { + u32 mtu; + u32 reserved; + struct nvsp_2_vsc_capability capability; +} __packed; + +/* Allocate receive buffer */ +struct nvsp_2_alloc_rxbuf { + /* Allocation ID to match the allocation request and response */ + u32 alloc_id; + + /* Length of the VM shared memory receive buffer that needs to + * be allocated + */ + u32 len; +} __packed; + +/* Allocate receive buffer complete */ +struct nvsp_2_alloc_rxbuf_comp { + /* The NDIS_STATUS code for buffer allocation */ + u32 status; + + u32 alloc_id; + + /* GPADL handle for the allocated receive buffer */ + u32 gpadl_handle; + + /* Receive buffer ID */ + u64 recv_buf_id; +} __packed; + +struct nvsp_2_free_rxbuf { + u64 recv_buf_id; +} __packed; + +union nvsp_2_message_uber { + struct nvsp_2_send_ndis_config send_ndis_config; + struct nvsp_2_alloc_rxbuf alloc_rxbuf; + struct nvsp_2_alloc_rxbuf_comp alloc_rxbuf_comp; + struct nvsp_2_free_rxbuf free_rxbuf; +} __packed; + +union nvsp_all_messages { + union nvsp_message_init_uber init_msg; + union nvsp_1_message_uber v1_msg; + union nvsp_2_message_uber v2_msg; +} __packed; + +/* ALL Messages */ +struct nvsp_message { + struct nvsp_message_header hdr; + union nvsp_all_messages msg; +} __packed; + + +#define NETVSC_MTU 65536 + +#define NETVSC_RECEIVE_BUFFER_SIZE (1024*1024*2) /* 2MB */ + +#define NETVSC_RECEIVE_BUFFER_ID 0xcafe + +#define NETVSC_RECEIVE_SG_COUNT 1 + +/* Preallocated receive packets */ +#define NETVSC_RECEIVE_PACKETLIST_COUNT 256 + +#define NETVSC_PACKET_SIZE 2048 + +/* Per netvsc channel-specific */ +struct netvsc_device { + struct hv_device *dev; + + u32 nvsp_version; + + atomic_t num_outstanding_sends; + bool start_remove; + bool destroy; + /* + * List of free preallocated hv_netvsc_packet to represent receive + * packet + */ + struct list_head recv_pkt_list; + spinlock_t recv_pkt_list_lock; + + /* Receive buffer allocated by us but manages by NetVSP */ + void *recv_buf; + u32 recv_buf_size; + u32 recv_buf_gpadl_handle; + u32 recv_section_cnt; + struct nvsp_1_receive_buffer_section *recv_section; + + /* Used for NetVSP initialization protocol */ + struct completion channel_init_wait; + struct nvsp_message channel_init_pkt; + + struct nvsp_message revoke_packet; + /* unsigned char HwMacAddr[HW_MACADDR_LEN]; */ + + struct net_device *ndev; + + /* Holds rndis device info */ + void *extension; +}; + + +/* Status codes */ + + +#ifndef STATUS_SUCCESS +#define STATUS_SUCCESS (0x00000000L) +#endif + +#ifndef STATUS_UNSUCCESSFUL +#define STATUS_UNSUCCESSFUL (0xC0000001L) +#endif + +#ifndef STATUS_PENDING +#define STATUS_PENDING (0x00000103L) +#endif + +#ifndef STATUS_INSUFFICIENT_RESOURCES +#define STATUS_INSUFFICIENT_RESOURCES (0xC000009AL) +#endif + +#ifndef STATUS_BUFFER_OVERFLOW +#define STATUS_BUFFER_OVERFLOW (0x80000005L) +#endif + +#ifndef STATUS_NOT_SUPPORTED +#define STATUS_NOT_SUPPORTED (0xC00000BBL) +#endif + +#define RNDIS_STATUS_SUCCESS (STATUS_SUCCESS) +#define RNDIS_STATUS_PENDING (STATUS_PENDING) +#define RNDIS_STATUS_NOT_RECOGNIZED (0x00010001L) +#define RNDIS_STATUS_NOT_COPIED (0x00010002L) +#define RNDIS_STATUS_NOT_ACCEPTED (0x00010003L) +#define RNDIS_STATUS_CALL_ACTIVE (0x00010007L) + +#define RNDIS_STATUS_ONLINE (0x40010003L) +#define RNDIS_STATUS_RESET_START (0x40010004L) +#define RNDIS_STATUS_RESET_END (0x40010005L) +#define RNDIS_STATUS_RING_STATUS (0x40010006L) +#define RNDIS_STATUS_CLOSED (0x40010007L) +#define RNDIS_STATUS_WAN_LINE_UP (0x40010008L) +#define RNDIS_STATUS_WAN_LINE_DOWN (0x40010009L) +#define RNDIS_STATUS_WAN_FRAGMENT (0x4001000AL) +#define RNDIS_STATUS_MEDIA_CONNECT (0x4001000BL) +#define RNDIS_STATUS_MEDIA_DISCONNECT (0x4001000CL) +#define RNDIS_STATUS_HARDWARE_LINE_UP (0x4001000DL) +#define RNDIS_STATUS_HARDWARE_LINE_DOWN (0x4001000EL) +#define RNDIS_STATUS_INTERFACE_UP (0x4001000FL) +#define RNDIS_STATUS_INTERFACE_DOWN (0x40010010L) +#define RNDIS_STATUS_MEDIA_BUSY (0x40010011L) +#define RNDIS_STATUS_MEDIA_SPECIFIC_INDICATION (0x40010012L) +#define RNDIS_STATUS_WW_INDICATION RDIA_SPECIFIC_INDICATION +#define RNDIS_STATUS_LINK_SPEED_CHANGE (0x40010013L) + +#define RNDIS_STATUS_NOT_RESETTABLE (0x80010001L) +#define RNDIS_STATUS_SOFT_ERRORS (0x80010003L) +#define RNDIS_STATUS_HARD_ERRORS (0x80010004L) +#define RNDIS_STATUS_BUFFER_OVERFLOW (STATUS_BUFFER_OVERFLOW) + +#define RNDIS_STATUS_FAILURE (STATUS_UNSUCCESSFUL) +#define RNDIS_STATUS_RESOURCES (STATUS_INSUFFICIENT_RESOURCES) +#define RNDIS_STATUS_CLOSING (0xC0010002L) +#define RNDIS_STATUS_BAD_VERSION (0xC0010004L) +#define RNDIS_STATUS_BAD_CHARACTERISTICS (0xC0010005L) +#define RNDIS_STATUS_ADAPTER_NOT_FOUND (0xC0010006L) +#define RNDIS_STATUS_OPEN_FAILED (0xC0010007L) +#define RNDIS_STATUS_DEVICE_FAILED (0xC0010008L) +#define RNDIS_STATUS_MULTICAST_FULL (0xC0010009L) +#define RNDIS_STATUS_MULTICAST_EXISTS (0xC001000AL) +#define RNDIS_STATUS_MULTICAST_NOT_FOUND (0xC001000BL) +#define RNDIS_STATUS_REQUEST_ABORTED (0xC001000CL) +#define RNDIS_STATUS_RESET_IN_PROGRESS (0xC001000DL) +#define RNDIS_STATUS_CLOSING_INDICATING (0xC001000EL) +#define RNDIS_STATUS_NOT_SUPPORTED (STATUS_NOT_SUPPORTED) +#define RNDIS_STATUS_INVALID_PACKET (0xC001000FL) +#define RNDIS_STATUS_OPEN_LIST_FULL (0xC0010010L) +#define RNDIS_STATUS_ADAPTER_NOT_READY (0xC0010011L) +#define RNDIS_STATUS_ADAPTER_NOT_OPEN (0xC0010012L) +#define RNDIS_STATUS_NOT_INDICATING (0xC0010013L) +#define RNDIS_STATUS_INVALID_LENGTH (0xC0010014L) +#define RNDIS_STATUS_INVALID_DATA (0xC0010015L) +#define RNDIS_STATUS_BUFFER_TOO_SHORT (0xC0010016L) +#define RNDIS_STATUS_INVALID_OID (0xC0010017L) +#define RNDIS_STATUS_ADAPTER_REMOVED (0xC0010018L) +#define RNDIS_STATUS_UNSUPPORTED_MEDIA (0xC0010019L) +#define RNDIS_STATUS_GROUP_ADDRESS_IN_USE (0xC001001AL) +#define RNDIS_STATUS_FILE_NOT_FOUND (0xC001001BL) +#define RNDIS_STATUS_ERROR_READING_FILE (0xC001001CL) +#define RNDIS_STATUS_ALREADY_MAPPED (0xC001001DL) +#define RNDIS_STATUS_RESOURCE_CONFLICT (0xC001001EL) +#define RNDIS_STATUS_NO_CABLE (0xC001001FL) + +#define RNDIS_STATUS_INVALID_SAP (0xC0010020L) +#define RNDIS_STATUS_SAP_IN_USE (0xC0010021L) +#define RNDIS_STATUS_INVALID_ADDRESS (0xC0010022L) +#define RNDIS_STATUS_VC_NOT_ACTIVATED (0xC0010023L) +#define RNDIS_STATUS_DEST_OUT_OF_ORDER (0xC0010024L) +#define RNDIS_STATUS_VC_NOT_AVAILABLE (0xC0010025L) +#define RNDIS_STATUS_CELLRATE_NOT_AVAILABLE (0xC0010026L) +#define RNDIS_STATUS_INCOMPATABLE_QOS (0xC0010027L) +#define RNDIS_STATUS_AAL_PARAMS_UNSUPPORTED (0xC0010028L) +#define RNDIS_STATUS_NO_ROUTE_TO_DESTINATION (0xC0010029L) + +#define RNDIS_STATUS_TOKEN_RING_OPEN_ERROR (0xC0011000L) + +/* Object Identifiers used by NdisRequest Query/Set Information */ +/* General Objects */ +#define RNDIS_OID_GEN_SUPPORTED_LIST 0x00010101 +#define RNDIS_OID_GEN_HARDWARE_STATUS 0x00010102 +#define RNDIS_OID_GEN_MEDIA_SUPPORTED 0x00010103 +#define RNDIS_OID_GEN_MEDIA_IN_USE 0x00010104 +#define RNDIS_OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 +#define RNDIS_OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 +#define RNDIS_OID_GEN_LINK_SPEED 0x00010107 +#define RNDIS_OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 +#define RNDIS_OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 +#define RNDIS_OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A +#define RNDIS_OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B +#define RNDIS_OID_GEN_VENDOR_ID 0x0001010C +#define RNDIS_OID_GEN_VENDOR_DESCRIPTION 0x0001010D +#define RNDIS_OID_GEN_CURRENT_PACKET_FILTER 0x0001010E +#define RNDIS_OID_GEN_CURRENT_LOOKAHEAD 0x0001010F +#define RNDIS_OID_GEN_DRIVER_VERSION 0x00010110 +#define RNDIS_OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 +#define RNDIS_OID_GEN_PROTOCOL_OPTIONS 0x00010112 +#define RNDIS_OID_GEN_MAC_OPTIONS 0x00010113 +#define RNDIS_OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 +#define RNDIS_OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 +#define RNDIS_OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 +#define RNDIS_OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 +#define RNDIS_OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 +#define RNDIS_OID_GEN_MACHINE_NAME 0x0001021A +#define RNDIS_OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B + +#define RNDIS_OID_GEN_XMIT_OK 0x00020101 +#define RNDIS_OID_GEN_RCV_OK 0x00020102 +#define RNDIS_OID_GEN_XMIT_ERROR 0x00020103 +#define RNDIS_OID_GEN_RCV_ERROR 0x00020104 +#define RNDIS_OID_GEN_RCV_NO_BUFFER 0x00020105 + +#define RNDIS_OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 +#define RNDIS_OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 +#define RNDIS_OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 +#define RNDIS_OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 +#define RNDIS_OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 +#define RNDIS_OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 +#define RNDIS_OID_GEN_DIRECTED_BYTES_RCV 0x00020207 +#define RNDIS_OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 +#define RNDIS_OID_GEN_MULTICAST_BYTES_RCV 0x00020209 +#define RNDIS_OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A +#define RNDIS_OID_GEN_BROADCAST_BYTES_RCV 0x0002020B +#define RNDIS_OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C + +#define RNDIS_OID_GEN_RCV_CRC_ERROR 0x0002020D +#define RNDIS_OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E + +#define RNDIS_OID_GEN_GET_TIME_CAPS 0x0002020F +#define RNDIS_OID_GEN_GET_NETCARD_TIME 0x00020210 + +/* These are connection-oriented general OIDs. */ +/* These replace the above OIDs for connection-oriented media. */ +#define RNDIS_OID_GEN_CO_SUPPORTED_LIST 0x00010101 +#define RNDIS_OID_GEN_CO_HARDWARE_STATUS 0x00010102 +#define RNDIS_OID_GEN_CO_MEDIA_SUPPORTED 0x00010103 +#define RNDIS_OID_GEN_CO_MEDIA_IN_USE 0x00010104 +#define RNDIS_OID_GEN_CO_LINK_SPEED 0x00010105 +#define RNDIS_OID_GEN_CO_VENDOR_ID 0x00010106 +#define RNDIS_OID_GEN_CO_VENDOR_DESCRIPTION 0x00010107 +#define RNDIS_OID_GEN_CO_DRIVER_VERSION 0x00010108 +#define RNDIS_OID_GEN_CO_PROTOCOL_OPTIONS 0x00010109 +#define RNDIS_OID_GEN_CO_MAC_OPTIONS 0x0001010A +#define RNDIS_OID_GEN_CO_MEDIA_CONNECT_STATUS 0x0001010B +#define RNDIS_OID_GEN_CO_VENDOR_DRIVER_VERSION 0x0001010C +#define RNDIS_OID_GEN_CO_MINIMUM_LINK_SPEED 0x0001010D + +#define RNDIS_OID_GEN_CO_GET_TIME_CAPS 0x00010201 +#define RNDIS_OID_GEN_CO_GET_NETCARD_TIME 0x00010202 + +/* These are connection-oriented statistics OIDs. */ +#define RNDIS_OID_GEN_CO_XMIT_PDUS_OK 0x00020101 +#define RNDIS_OID_GEN_CO_RCV_PDUS_OK 0x00020102 +#define RNDIS_OID_GEN_CO_XMIT_PDUS_ERROR 0x00020103 +#define RNDIS_OID_GEN_CO_RCV_PDUS_ERROR 0x00020104 +#define RNDIS_OID_GEN_CO_RCV_PDUS_NO_BUFFER 0x00020105 + + +#define RNDIS_OID_GEN_CO_RCV_CRC_ERROR 0x00020201 +#define RNDIS_OID_GEN_CO_TRANSMIT_QUEUE_LENGTH 0x00020202 +#define RNDIS_OID_GEN_CO_BYTES_XMIT 0x00020203 +#define RNDIS_OID_GEN_CO_BYTES_RCV 0x00020204 +#define RNDIS_OID_GEN_CO_BYTES_XMIT_OUTSTANDING 0x00020205 +#define RNDIS_OID_GEN_CO_NETCARD_LOAD 0x00020206 + +/* These are objects for Connection-oriented media call-managers. */ +#define RNDIS_OID_CO_ADD_PVC 0xFF000001 +#define RNDIS_OID_CO_DELETE_PVC 0xFF000002 +#define RNDIS_OID_CO_GET_CALL_INFORMATION 0xFF000003 +#define RNDIS_OID_CO_ADD_ADDRESS 0xFF000004 +#define RNDIS_OID_CO_DELETE_ADDRESS 0xFF000005 +#define RNDIS_OID_CO_GET_ADDRESSES 0xFF000006 +#define RNDIS_OID_CO_ADDRESS_CHANGE 0xFF000007 +#define RNDIS_OID_CO_SIGNALING_ENABLED 0xFF000008 +#define RNDIS_OID_CO_SIGNALING_DISABLED 0xFF000009 + +/* 802.3 Objects (Ethernet) */ +#define RNDIS_OID_802_3_PERMANENT_ADDRESS 0x01010101 +#define RNDIS_OID_802_3_CURRENT_ADDRESS 0x01010102 +#define RNDIS_OID_802_3_MULTICAST_LIST 0x01010103 +#define RNDIS_OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 +#define RNDIS_OID_802_3_MAC_OPTIONS 0x01010105 + +#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 + +#define RNDIS_OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 +#define RNDIS_OID_802_3_XMIT_ONE_COLLISION 0x01020102 +#define RNDIS_OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 + +#define RNDIS_OID_802_3_XMIT_DEFERRED 0x01020201 +#define RNDIS_OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 +#define RNDIS_OID_802_3_RCV_OVERRUN 0x01020203 +#define RNDIS_OID_802_3_XMIT_UNDERRUN 0x01020204 +#define RNDIS_OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 +#define RNDIS_OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 +#define RNDIS_OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 + +/* Remote NDIS message types */ +#define REMOTE_NDIS_PACKET_MSG 0x00000001 +#define REMOTE_NDIS_INITIALIZE_MSG 0x00000002 +#define REMOTE_NDIS_HALT_MSG 0x00000003 +#define REMOTE_NDIS_QUERY_MSG 0x00000004 +#define REMOTE_NDIS_SET_MSG 0x00000005 +#define REMOTE_NDIS_RESET_MSG 0x00000006 +#define REMOTE_NDIS_INDICATE_STATUS_MSG 0x00000007 +#define REMOTE_NDIS_KEEPALIVE_MSG 0x00000008 + +#define REMOTE_CONDIS_MP_CREATE_VC_MSG 0x00008001 +#define REMOTE_CONDIS_MP_DELETE_VC_MSG 0x00008002 +#define REMOTE_CONDIS_MP_ACTIVATE_VC_MSG 0x00008005 +#define REMOTE_CONDIS_MP_DEACTIVATE_VC_MSG 0x00008006 +#define REMOTE_CONDIS_INDICATE_STATUS_MSG 0x00008007 + +/* Remote NDIS message completion types */ +#define REMOTE_NDIS_INITIALIZE_CMPLT 0x80000002 +#define REMOTE_NDIS_QUERY_CMPLT 0x80000004 +#define REMOTE_NDIS_SET_CMPLT 0x80000005 +#define REMOTE_NDIS_RESET_CMPLT 0x80000006 +#define REMOTE_NDIS_KEEPALIVE_CMPLT 0x80000008 + +#define REMOTE_CONDIS_MP_CREATE_VC_CMPLT 0x80008001 +#define REMOTE_CONDIS_MP_DELETE_VC_CMPLT 0x80008002 +#define REMOTE_CONDIS_MP_ACTIVATE_VC_CMPLT 0x80008005 +#define REMOTE_CONDIS_MP_DEACTIVATE_VC_CMPLT 0x80008006 + +/* + * Reserved message type for private communication between lower-layer host + * driver and remote device, if necessary. + */ +#define REMOTE_NDIS_BUS_MSG 0xff000001 + +/* Defines for DeviceFlags in struct rndis_initialize_complete */ +#define RNDIS_DF_CONNECTIONLESS 0x00000001 +#define RNDIS_DF_CONNECTION_ORIENTED 0x00000002 +#define RNDIS_DF_RAW_DATA 0x00000004 + +/* Remote NDIS medium types. */ +#define RNDIS_MEDIUM_802_3 0x00000000 +#define RNDIS_MEDIUM_802_5 0x00000001 +#define RNDIS_MEDIUM_FDDI 0x00000002 +#define RNDIS_MEDIUM_WAN 0x00000003 +#define RNDIS_MEDIUM_LOCAL_TALK 0x00000004 +#define RNDIS_MEDIUM_ARCNET_RAW 0x00000006 +#define RNDIS_MEDIUM_ARCNET_878_2 0x00000007 +#define RNDIS_MEDIUM_ATM 0x00000008 +#define RNDIS_MEDIUM_WIRELESS_WAN 0x00000009 +#define RNDIS_MEDIUM_IRDA 0x0000000a +#define RNDIS_MEDIUM_CO_WAN 0x0000000b +/* Not a real medium, defined as an upper-bound */ +#define RNDIS_MEDIUM_MAX 0x0000000d + + +/* Remote NDIS medium connection states. */ +#define RNDIS_MEDIA_STATE_CONNECTED 0x00000000 +#define RNDIS_MEDIA_STATE_DISCONNECTED 0x00000001 + +/* Remote NDIS version numbers */ +#define RNDIS_MAJOR_VERSION 0x00000001 +#define RNDIS_MINOR_VERSION 0x00000000 + + +/* NdisInitialize message */ +struct rndis_initialize_request { + u32 req_id; + u32 major_ver; + u32 minor_ver; + u32 max_xfer_size; +}; + +/* Response to NdisInitialize */ +struct rndis_initialize_complete { + u32 req_id; + u32 status; + u32 major_ver; + u32 minor_ver; + u32 dev_flags; + u32 medium; + u32 max_pkt_per_msg; + u32 max_xfer_size; + u32 pkt_alignment_factor; + u32 af_list_offset; + u32 af_list_size; +}; + +/* Call manager devices only: Information about an address family */ +/* supported by the device is appended to the response to NdisInitialize. */ +struct rndis_co_address_family { + u32 address_family; + u32 major_ver; + u32 minor_ver; +}; + +/* NdisHalt message */ +struct rndis_halt_request { + u32 req_id; +}; + +/* NdisQueryRequest message */ +struct rndis_query_request { + u32 req_id; + u32 oid; + u32 info_buflen; + u32 info_buf_offset; + u32 dev_vc_handle; +}; + +/* Response to NdisQueryRequest */ +struct rndis_query_complete { + u32 req_id; + u32 status; + u32 info_buflen; + u32 info_buf_offset; +}; + +/* NdisSetRequest message */ +struct rndis_set_request { + u32 req_id; + u32 oid; + u32 info_buflen; + u32 info_buf_offset; + u32 dev_vc_handle; +}; + +/* Response to NdisSetRequest */ +struct rndis_set_complete { + u32 req_id; + u32 status; +}; + +/* NdisReset message */ +struct rndis_reset_request { + u32 reserved; +}; + +/* Response to NdisReset */ +struct rndis_reset_complete { + u32 status; + u32 addressing_reset; +}; + +/* NdisMIndicateStatus message */ +struct rndis_indicate_status { + u32 status; + u32 status_buflen; + u32 status_buf_offset; +}; + +/* Diagnostic information passed as the status buffer in */ +/* struct rndis_indicate_status messages signifying error conditions. */ +struct rndis_diagnostic_info { + u32 diag_status; + u32 error_offset; +}; + +/* NdisKeepAlive message */ +struct rndis_keepalive_request { + u32 req_id; +}; + +/* Response to NdisKeepAlive */ +struct rndis_keepalive_complete { + u32 req_id; + u32 status; +}; + +/* + * Data message. All Offset fields contain byte offsets from the beginning of + * struct rndis_packet. All Length fields are in bytes. VcHandle is set + * to 0 for connectionless data, otherwise it contains the VC handle. + */ +struct rndis_packet { + u32 data_offset; + u32 data_len; + u32 oob_data_offset; + u32 oob_data_len; + u32 num_oob_data_elements; + u32 per_pkt_info_offset; + u32 per_pkt_info_len; + u32 vc_handle; + u32 reserved; +}; + +/* Optional Out of Band data associated with a Data message. */ +struct rndis_oobd { + u32 size; + u32 type; + u32 class_info_offset; +}; + +/* Packet extension field contents associated with a Data message. */ +struct rndis_per_packet_info { + u32 size; + u32 type; + u32 ppi_offset; +}; + +enum ndis_per_pkt_info_type { + TCPIP_CHKSUM_PKTINFO, + IPSEC_PKTINFO, + TCP_LARGESEND_PKTINFO, + CLASSIFICATION_HANDLE_PKTINFO, + NDIS_RESERVED, + SG_LIST_PKTINFO, + IEEE_8021Q_INFO, + ORIGINAL_PKTINFO, + PACKET_CANCEL_ID, + ORIGINAL_NET_BUFLIST, + CACHED_NET_BUFLIST, + SHORT_PKT_PADINFO, + MAX_PER_PKT_INFO +}; + +struct ndis_pkt_8021q_info { + union { + struct { + u32 pri:3; /* User Priority */ + u32 cfi:1; /* Canonical Format ID */ + u32 vlanid:12; /* VLAN ID */ + u32 reserved:16; + }; + u32 value; + }; +}; + +#define NDIS_VLAN_PPI_SIZE (sizeof(struct rndis_per_packet_info) + \ + sizeof(struct ndis_pkt_8021q_info)) + +/* Format of Information buffer passed in a SetRequest for the OID */ +/* OID_GEN_RNDIS_CONFIG_PARAMETER. */ +struct rndis_config_parameter_info { + u32 parameter_name_offset; + u32 parameter_name_length; + u32 parameter_type; + u32 parameter_value_offset; + u32 parameter_value_length; +}; + +/* Values for ParameterType in struct rndis_config_parameter_info */ +#define RNDIS_CONFIG_PARAM_TYPE_INTEGER 0 +#define RNDIS_CONFIG_PARAM_TYPE_STRING 2 + +/* CONDIS Miniport messages for connection oriented devices */ +/* that do not implement a call manager. */ + +/* CoNdisMiniportCreateVc message */ +struct rcondis_mp_create_vc { + u32 req_id; + u32 ndis_vc_handle; +}; + +/* Response to CoNdisMiniportCreateVc */ +struct rcondis_mp_create_vc_complete { + u32 req_id; + u32 dev_vc_handle; + u32 status; +}; + +/* CoNdisMiniportDeleteVc message */ +struct rcondis_mp_delete_vc { + u32 req_id; + u32 dev_vc_handle; +}; + +/* Response to CoNdisMiniportDeleteVc */ +struct rcondis_mp_delete_vc_complete { + u32 req_id; + u32 status; +}; + +/* CoNdisMiniportQueryRequest message */ +struct rcondis_mp_query_request { + u32 req_id; + u32 request_type; + u32 oid; + u32 dev_vc_handle; + u32 info_buflen; + u32 info_buf_offset; +}; + +/* CoNdisMiniportSetRequest message */ +struct rcondis_mp_set_request { + u32 req_id; + u32 request_type; + u32 oid; + u32 dev_vc_handle; + u32 info_buflen; + u32 info_buf_offset; +}; + +/* CoNdisIndicateStatus message */ +struct rcondis_indicate_status { + u32 ndis_vc_handle; + u32 status; + u32 status_buflen; + u32 status_buf_offset; +}; + +/* CONDIS Call/VC parameters */ +struct rcondis_specific_parameters { + u32 parameter_type; + u32 parameter_length; + u32 parameter_lffset; +}; + +struct rcondis_media_parameters { + u32 flags; + u32 reserved1; + u32 reserved2; + struct rcondis_specific_parameters media_specific; +}; + +struct rndis_flowspec { + u32 token_rate; + u32 token_bucket_size; + u32 peak_bandwidth; + u32 latency; + u32 delay_variation; + u32 service_type; + u32 max_sdu_size; + u32 minimum_policed_size; +}; + +struct rcondis_call_manager_parameters { + struct rndis_flowspec transmit; + struct rndis_flowspec receive; + struct rcondis_specific_parameters call_mgr_specific; +}; + +/* CoNdisMiniportActivateVc message */ +struct rcondis_mp_activate_vc_request { + u32 req_id; + u32 flags; + u32 dev_vc_handle; + u32 media_params_offset; + u32 media_params_length; + u32 call_mgr_params_offset; + u32 call_mgr_params_length; +}; + +/* Response to CoNdisMiniportActivateVc */ +struct rcondis_mp_activate_vc_complete { + u32 req_id; + u32 status; +}; + +/* CoNdisMiniportDeactivateVc message */ +struct rcondis_mp_deactivate_vc_request { + u32 req_id; + u32 flags; + u32 dev_vc_handle; +}; + +/* Response to CoNdisMiniportDeactivateVc */ +struct rcondis_mp_deactivate_vc_complete { + u32 req_id; + u32 status; +}; + + +/* union with all of the RNDIS messages */ +union rndis_message_container { + struct rndis_packet pkt; + struct rndis_initialize_request init_req; + struct rndis_halt_request halt_req; + struct rndis_query_request query_req; + struct rndis_set_request set_req; + struct rndis_reset_request reset_req; + struct rndis_keepalive_request keep_alive_req; + struct rndis_indicate_status indicate_status; + struct rndis_initialize_complete init_complete; + struct rndis_query_complete query_complete; + struct rndis_set_complete set_complete; + struct rndis_reset_complete reset_complete; + struct rndis_keepalive_complete keep_alive_complete; + struct rcondis_mp_create_vc co_miniport_create_vc; + struct rcondis_mp_delete_vc co_miniport_delete_vc; + struct rcondis_indicate_status co_indicate_status; + struct rcondis_mp_activate_vc_request co_miniport_activate_vc; + struct rcondis_mp_deactivate_vc_request co_miniport_deactivate_vc; + struct rcondis_mp_create_vc_complete co_miniport_create_vc_complete; + struct rcondis_mp_delete_vc_complete co_miniport_delete_vc_complete; + struct rcondis_mp_activate_vc_complete co_miniport_activate_vc_complete; + struct rcondis_mp_deactivate_vc_complete + co_miniport_deactivate_vc_complete; +}; + +/* Remote NDIS message format */ +struct rndis_message { + u32 ndis_msg_type; + + /* Total length of this message, from the beginning */ + /* of the sruct rndis_message, in bytes. */ + u32 msg_len; + + /* Actual message */ + union rndis_message_container msg; +}; + + +struct rndis_filter_packet { + void *completion_ctx; + void (*completion)(void *context); + struct rndis_message msg; +}; + +/* Handy macros */ + +/* get the size of an RNDIS message. Pass in the message type, */ +/* struct rndis_set_request, struct rndis_packet for example */ +#define RNDIS_MESSAGE_SIZE(msg) \ + (sizeof(msg) + (sizeof(struct rndis_message) - \ + sizeof(union rndis_message_container))) + +/* get pointer to info buffer with message pointer */ +#define MESSAGE_TO_INFO_BUFFER(msg) \ + (((unsigned char *)(msg)) + msg->info_buf_offset) + +/* get pointer to status buffer with message pointer */ +#define MESSAGE_TO_STATUS_BUFFER(msg) \ + (((unsigned char *)(msg)) + msg->status_buf_offset) + +/* get pointer to OOBD buffer with message pointer */ +#define MESSAGE_TO_OOBD_BUFFER(msg) \ + (((unsigned char *)(msg)) + msg->oob_data_offset) + +/* get pointer to data buffer with message pointer */ +#define MESSAGE_TO_DATA_BUFFER(msg) \ + (((unsigned char *)(msg)) + msg->per_pkt_info_offset) + +/* get pointer to contained message from NDIS_MESSAGE pointer */ +#define RNDIS_MESSAGE_PTR_TO_MESSAGE_PTR(rndis_msg) \ + ((void *) &rndis_msg->msg) + +/* get pointer to contained message from NDIS_MESSAGE pointer */ +#define RNDIS_MESSAGE_RAW_PTR_TO_MESSAGE_PTR(rndis_msg) \ + ((void *) rndis_msg) + + +#define __struct_bcount(x) + + + +#define RNDIS_HEADER_SIZE (sizeof(struct rndis_message) - \ + sizeof(union rndis_message_container)) + +#define NDIS_PACKET_TYPE_DIRECTED 0x00000001 +#define NDIS_PACKET_TYPE_MULTICAST 0x00000002 +#define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004 +#define NDIS_PACKET_TYPE_BROADCAST 0x00000008 +#define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010 +#define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020 +#define NDIS_PACKET_TYPE_SMT 0x00000040 +#define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080 +#define NDIS_PACKET_TYPE_GROUP 0x00000100 +#define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00000200 +#define NDIS_PACKET_TYPE_FUNCTIONAL 0x00000400 +#define NDIS_PACKET_TYPE_MAC_FRAME 0x00000800 + + + +#endif /* _HYPERV_NET_H */ --- linux-3.2.0.orig/drivers/net/hyperv/rndis_filter.c +++ linux-3.2.0/drivers/net/hyperv/rndis_filter.c @@ -0,0 +1,892 @@ +/* + * Copyright (c) 2009, Microsoft Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope 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., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * + * Authors: + * Haiyang Zhang + * Hank Janssen + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "hyperv_net.h" + + +struct rndis_request { + struct list_head list_ent; + struct completion wait_event; + + /* + * FIXME: We assumed a fixed size response here. If we do ever need to + * handle a bigger response, we can either define a max response + * message or add a response buffer variable above this field + */ + struct rndis_message response_msg; + + /* Simplify allocation by having a netvsc packet inline */ + struct hv_netvsc_packet pkt; + struct hv_page_buffer buf; + /* FIXME: We assumed a fixed size request here. */ + struct rndis_message request_msg; +}; + +static void rndis_filter_send_completion(void *ctx); + +static void rndis_filter_send_request_completion(void *ctx); + + + +static struct rndis_device *get_rndis_device(void) +{ + struct rndis_device *device; + + device = kzalloc(sizeof(struct rndis_device), GFP_KERNEL); + if (!device) + return NULL; + + spin_lock_init(&device->request_lock); + + INIT_LIST_HEAD(&device->req_list); + + device->state = RNDIS_DEV_UNINITIALIZED; + + return device; +} + +static struct rndis_request *get_rndis_request(struct rndis_device *dev, + u32 msg_type, + u32 msg_len) +{ + struct rndis_request *request; + struct rndis_message *rndis_msg; + struct rndis_set_request *set; + unsigned long flags; + + request = kzalloc(sizeof(struct rndis_request), GFP_KERNEL); + if (!request) + return NULL; + + init_completion(&request->wait_event); + + rndis_msg = &request->request_msg; + rndis_msg->ndis_msg_type = msg_type; + rndis_msg->msg_len = msg_len; + + /* + * Set the request id. This field is always after the rndis header for + * request/response packet types so we just used the SetRequest as a + * template + */ + set = &rndis_msg->msg.set_req; + set->req_id = atomic_inc_return(&dev->new_req_id); + + /* Add to the request list */ + spin_lock_irqsave(&dev->request_lock, flags); + list_add_tail(&request->list_ent, &dev->req_list); + spin_unlock_irqrestore(&dev->request_lock, flags); + + return request; +} + +static void put_rndis_request(struct rndis_device *dev, + struct rndis_request *req) +{ + unsigned long flags; + + spin_lock_irqsave(&dev->request_lock, flags); + list_del(&req->list_ent); + spin_unlock_irqrestore(&dev->request_lock, flags); + + kfree(req); +} + +static void dump_rndis_message(struct hv_device *hv_dev, + struct rndis_message *rndis_msg) +{ + struct net_device *netdev; + struct netvsc_device *net_device; + + net_device = hv_get_drvdata(hv_dev); + netdev = net_device->ndev; + + switch (rndis_msg->ndis_msg_type) { + case REMOTE_NDIS_PACKET_MSG: + netdev_dbg(netdev, "REMOTE_NDIS_PACKET_MSG (len %u, " + "data offset %u data len %u, # oob %u, " + "oob offset %u, oob len %u, pkt offset %u, " + "pkt len %u\n", + rndis_msg->msg_len, + rndis_msg->msg.pkt.data_offset, + rndis_msg->msg.pkt.data_len, + rndis_msg->msg.pkt.num_oob_data_elements, + rndis_msg->msg.pkt.oob_data_offset, + rndis_msg->msg.pkt.oob_data_len, + rndis_msg->msg.pkt.per_pkt_info_offset, + rndis_msg->msg.pkt.per_pkt_info_len); + break; + + case REMOTE_NDIS_INITIALIZE_CMPLT: + netdev_dbg(netdev, "REMOTE_NDIS_INITIALIZE_CMPLT " + "(len %u, id 0x%x, status 0x%x, major %d, minor %d, " + "device flags %d, max xfer size 0x%x, max pkts %u, " + "pkt aligned %u)\n", + rndis_msg->msg_len, + rndis_msg->msg.init_complete.req_id, + rndis_msg->msg.init_complete.status, + rndis_msg->msg.init_complete.major_ver, + rndis_msg->msg.init_complete.minor_ver, + rndis_msg->msg.init_complete.dev_flags, + rndis_msg->msg.init_complete.max_xfer_size, + rndis_msg->msg.init_complete. + max_pkt_per_msg, + rndis_msg->msg.init_complete. + pkt_alignment_factor); + break; + + case REMOTE_NDIS_QUERY_CMPLT: + netdev_dbg(netdev, "REMOTE_NDIS_QUERY_CMPLT " + "(len %u, id 0x%x, status 0x%x, buf len %u, " + "buf offset %u)\n", + rndis_msg->msg_len, + rndis_msg->msg.query_complete.req_id, + rndis_msg->msg.query_complete.status, + rndis_msg->msg.query_complete. + info_buflen, + rndis_msg->msg.query_complete. + info_buf_offset); + break; + + case REMOTE_NDIS_SET_CMPLT: + netdev_dbg(netdev, + "REMOTE_NDIS_SET_CMPLT (len %u, id 0x%x, status 0x%x)\n", + rndis_msg->msg_len, + rndis_msg->msg.set_complete.req_id, + rndis_msg->msg.set_complete.status); + break; + + case REMOTE_NDIS_INDICATE_STATUS_MSG: + netdev_dbg(netdev, "REMOTE_NDIS_INDICATE_STATUS_MSG " + "(len %u, status 0x%x, buf len %u, buf offset %u)\n", + rndis_msg->msg_len, + rndis_msg->msg.indicate_status.status, + rndis_msg->msg.indicate_status.status_buflen, + rndis_msg->msg.indicate_status.status_buf_offset); + break; + + default: + netdev_dbg(netdev, "0x%x (len %u)\n", + rndis_msg->ndis_msg_type, + rndis_msg->msg_len); + break; + } +} + +static int rndis_filter_send_request(struct rndis_device *dev, + struct rndis_request *req) +{ + int ret; + struct hv_netvsc_packet *packet; + + /* Setup the packet to send it */ + packet = &req->pkt; + + packet->is_data_pkt = false; + packet->total_data_buflen = req->request_msg.msg_len; + packet->page_buf_cnt = 1; + + packet->page_buf[0].pfn = virt_to_phys(&req->request_msg) >> + PAGE_SHIFT; + packet->page_buf[0].len = req->request_msg.msg_len; + packet->page_buf[0].offset = + (unsigned long)&req->request_msg & (PAGE_SIZE - 1); + + packet->completion.send.send_completion_ctx = req;/* packet; */ + packet->completion.send.send_completion = + rndis_filter_send_request_completion; + packet->completion.send.send_completion_tid = (unsigned long)dev; + + ret = netvsc_send(dev->net_dev->dev, packet); + return ret; +} + +static void rndis_filter_receive_response(struct rndis_device *dev, + struct rndis_message *resp) +{ + struct rndis_request *request = NULL; + bool found = false; + unsigned long flags; + struct net_device *ndev; + + ndev = dev->net_dev->ndev; + + spin_lock_irqsave(&dev->request_lock, flags); + list_for_each_entry(request, &dev->req_list, list_ent) { + /* + * All request/response message contains RequestId as the 1st + * field + */ + if (request->request_msg.msg.init_req.req_id + == resp->msg.init_complete.req_id) { + found = true; + break; + } + } + spin_unlock_irqrestore(&dev->request_lock, flags); + + if (found) { + if (resp->msg_len <= sizeof(struct rndis_message)) { + memcpy(&request->response_msg, resp, + resp->msg_len); + } else { + netdev_err(ndev, + "rndis response buffer overflow " + "detected (size %u max %zu)\n", + resp->msg_len, + sizeof(struct rndis_filter_packet)); + + if (resp->ndis_msg_type == + REMOTE_NDIS_RESET_CMPLT) { + /* does not have a request id field */ + request->response_msg.msg.reset_complete. + status = STATUS_BUFFER_OVERFLOW; + } else { + request->response_msg.msg. + init_complete.status = + STATUS_BUFFER_OVERFLOW; + } + } + + complete(&request->wait_event); + } else { + netdev_err(ndev, + "no rndis request found for this response " + "(id 0x%x res type 0x%x)\n", + resp->msg.init_complete.req_id, + resp->ndis_msg_type); + } +} + +static void rndis_filter_receive_indicate_status(struct rndis_device *dev, + struct rndis_message *resp) +{ + struct rndis_indicate_status *indicate = + &resp->msg.indicate_status; + + if (indicate->status == RNDIS_STATUS_MEDIA_CONNECT) { + netvsc_linkstatus_callback( + dev->net_dev->dev, 1); + } else if (indicate->status == RNDIS_STATUS_MEDIA_DISCONNECT) { + netvsc_linkstatus_callback( + dev->net_dev->dev, 0); + } else { + /* + * TODO: + */ + } +} + +/* + * Get the Per-Packet-Info with the specified type + * return NULL if not found. + */ +static inline void *rndis_get_ppi(struct rndis_packet *rpkt, u32 type) +{ + struct rndis_per_packet_info *ppi; + int len; + + if (rpkt->per_pkt_info_offset == 0) + return NULL; + + ppi = (struct rndis_per_packet_info *)((ulong)rpkt + + rpkt->per_pkt_info_offset); + len = rpkt->per_pkt_info_len; + + while (len > 0) { + if (ppi->type == type) + return (void *)((ulong)ppi + ppi->ppi_offset); + len -= ppi->size; + ppi = (struct rndis_per_packet_info *)((ulong)ppi + ppi->size); + } + + return NULL; +} + +static void rndis_filter_receive_data(struct rndis_device *dev, + struct rndis_message *msg, + struct hv_netvsc_packet *pkt) +{ + struct rndis_packet *rndis_pkt; + u32 data_offset; + struct ndis_pkt_8021q_info *vlan; + + rndis_pkt = &msg->msg.pkt; + + /* + * FIXME: Handle multiple rndis pkt msgs that maybe enclosed in this + * netvsc packet (ie TotalDataBufferLength != MessageLength) + */ + + /* Remove the rndis header and pass it back up the stack */ + data_offset = RNDIS_HEADER_SIZE + rndis_pkt->data_offset; + + pkt->total_data_buflen -= data_offset; + + /* + * Make sure we got a valid RNDIS message, now total_data_buflen + * should be the data packet size plus the trailer padding size + */ + if (pkt->total_data_buflen < rndis_pkt->data_len) { + netdev_err(dev->net_dev->ndev, "rndis message buffer " + "overflow detected (got %u, min %u)" + "...dropping this message!\n", + pkt->total_data_buflen, rndis_pkt->data_len); + return; + } + + /* + * Remove the rndis trailer padding from rndis packet message + * rndis_pkt->data_len tell us the real data length, we only copy + * the data packet to the stack, without the rndis trailer padding + */ + pkt->total_data_buflen = rndis_pkt->data_len; + pkt->data = (void *)((unsigned long)pkt->data + data_offset); + + pkt->is_data_pkt = true; + + vlan = rndis_get_ppi(rndis_pkt, IEEE_8021Q_INFO); + if (vlan) { + pkt->vlan_tci = VLAN_TAG_PRESENT | vlan->vlanid | + (vlan->pri << VLAN_PRIO_SHIFT); + } else { + pkt->vlan_tci = 0; + } + + netvsc_recv_callback(dev->net_dev->dev, pkt); +} + +int rndis_filter_receive(struct hv_device *dev, + struct hv_netvsc_packet *pkt) +{ + struct netvsc_device *net_dev = hv_get_drvdata(dev); + struct rndis_device *rndis_dev; + struct rndis_message *rndis_msg; + struct net_device *ndev; + + if (!net_dev) + return -EINVAL; + + ndev = net_dev->ndev; + + /* Make sure the rndis device state is initialized */ + if (!net_dev->extension) { + netdev_err(ndev, "got rndis message but no rndis device - " + "dropping this message!\n"); + return -ENODEV; + } + + rndis_dev = (struct rndis_device *)net_dev->extension; + if (rndis_dev->state == RNDIS_DEV_UNINITIALIZED) { + netdev_err(ndev, "got rndis message but rndis device " + "uninitialized...dropping this message!\n"); + return -ENODEV; + } + + rndis_msg = pkt->data; + + dump_rndis_message(dev, rndis_msg); + + switch (rndis_msg->ndis_msg_type) { + case REMOTE_NDIS_PACKET_MSG: + /* data msg */ + rndis_filter_receive_data(rndis_dev, rndis_msg, pkt); + break; + + case REMOTE_NDIS_INITIALIZE_CMPLT: + case REMOTE_NDIS_QUERY_CMPLT: + case REMOTE_NDIS_SET_CMPLT: + /* completion msgs */ + rndis_filter_receive_response(rndis_dev, rndis_msg); + break; + + case REMOTE_NDIS_INDICATE_STATUS_MSG: + /* notification msgs */ + rndis_filter_receive_indicate_status(rndis_dev, rndis_msg); + break; + default: + netdev_err(ndev, + "unhandled rndis message (type %u len %u)\n", + rndis_msg->ndis_msg_type, + rndis_msg->msg_len); + break; + } + + return 0; +} + +static int rndis_filter_query_device(struct rndis_device *dev, u32 oid, + void *result, u32 *result_size) +{ + struct rndis_request *request; + u32 inresult_size = *result_size; + struct rndis_query_request *query; + struct rndis_query_complete *query_complete; + int ret = 0; + int t; + + if (!result) + return -EINVAL; + + *result_size = 0; + request = get_rndis_request(dev, REMOTE_NDIS_QUERY_MSG, + RNDIS_MESSAGE_SIZE(struct rndis_query_request)); + if (!request) { + ret = -ENOMEM; + goto cleanup; + } + + /* Setup the rndis query */ + query = &request->request_msg.msg.query_req; + query->oid = oid; + query->info_buf_offset = sizeof(struct rndis_query_request); + query->info_buflen = 0; + query->dev_vc_handle = 0; + + ret = rndis_filter_send_request(dev, request); + if (ret != 0) + goto cleanup; + + t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; + } + + /* Copy the response back */ + query_complete = &request->response_msg.msg.query_complete; + + if (query_complete->info_buflen > inresult_size) { + ret = -1; + goto cleanup; + } + + memcpy(result, + (void *)((unsigned long)query_complete + + query_complete->info_buf_offset), + query_complete->info_buflen); + + *result_size = query_complete->info_buflen; + +cleanup: + if (request) + put_rndis_request(dev, request); + + return ret; +} + +static int rndis_filter_query_device_mac(struct rndis_device *dev) +{ + u32 size = ETH_ALEN; + + return rndis_filter_query_device(dev, + RNDIS_OID_802_3_PERMANENT_ADDRESS, + dev->hw_mac_adr, &size); +} + +static int rndis_filter_query_device_link_status(struct rndis_device *dev) +{ + u32 size = sizeof(u32); + u32 link_status; + int ret; + + ret = rndis_filter_query_device(dev, + RNDIS_OID_GEN_MEDIA_CONNECT_STATUS, + &link_status, &size); + dev->link_state = (link_status != 0) ? true : false; + + return ret; +} + +int rndis_filter_set_packet_filter(struct rndis_device *dev, u32 new_filter) +{ + struct rndis_request *request; + struct rndis_set_request *set; + struct rndis_set_complete *set_complete; + u32 status; + int ret, t; + struct net_device *ndev; + + ndev = dev->net_dev->ndev; + + request = get_rndis_request(dev, REMOTE_NDIS_SET_MSG, + RNDIS_MESSAGE_SIZE(struct rndis_set_request) + + sizeof(u32)); + if (!request) { + ret = -ENOMEM; + goto cleanup; + } + + /* Setup the rndis set */ + set = &request->request_msg.msg.set_req; + set->oid = RNDIS_OID_GEN_CURRENT_PACKET_FILTER; + set->info_buflen = sizeof(u32); + set->info_buf_offset = sizeof(struct rndis_set_request); + + memcpy((void *)(unsigned long)set + sizeof(struct rndis_set_request), + &new_filter, sizeof(u32)); + + ret = rndis_filter_send_request(dev, request); + if (ret != 0) + goto cleanup; + + t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + + if (t == 0) { + netdev_err(ndev, + "timeout before we got a set response...\n"); + /* + * We can't deallocate the request since we may still receive a + * send completion for it. + */ + goto exit; + } else { + set_complete = &request->response_msg.msg.set_complete; + status = set_complete->status; + } + +cleanup: + if (request) + put_rndis_request(dev, request); +exit: + return ret; +} + + +static int rndis_filter_init_device(struct rndis_device *dev) +{ + struct rndis_request *request; + struct rndis_initialize_request *init; + struct rndis_initialize_complete *init_complete; + u32 status; + int ret, t; + + request = get_rndis_request(dev, REMOTE_NDIS_INITIALIZE_MSG, + RNDIS_MESSAGE_SIZE(struct rndis_initialize_request)); + if (!request) { + ret = -ENOMEM; + goto cleanup; + } + + /* Setup the rndis set */ + init = &request->request_msg.msg.init_req; + init->major_ver = RNDIS_MAJOR_VERSION; + init->minor_ver = RNDIS_MINOR_VERSION; + /* FIXME: Use 1536 - rounded ethernet frame size */ + init->max_xfer_size = 2048; + + dev->state = RNDIS_DEV_INITIALIZING; + + ret = rndis_filter_send_request(dev, request); + if (ret != 0) { + dev->state = RNDIS_DEV_UNINITIALIZED; + goto cleanup; + } + + + t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; + } + + init_complete = &request->response_msg.msg.init_complete; + status = init_complete->status; + if (status == RNDIS_STATUS_SUCCESS) { + dev->state = RNDIS_DEV_INITIALIZED; + ret = 0; + } else { + dev->state = RNDIS_DEV_UNINITIALIZED; + ret = -EINVAL; + } + +cleanup: + if (request) + put_rndis_request(dev, request); + + return ret; +} + +static void rndis_filter_halt_device(struct rndis_device *dev) +{ + struct rndis_request *request; + struct rndis_halt_request *halt; + + /* Attempt to do a rndis device halt */ + request = get_rndis_request(dev, REMOTE_NDIS_HALT_MSG, + RNDIS_MESSAGE_SIZE(struct rndis_halt_request)); + if (!request) + goto cleanup; + + /* Setup the rndis set */ + halt = &request->request_msg.msg.halt_req; + halt->req_id = atomic_inc_return(&dev->new_req_id); + + /* Ignore return since this msg is optional. */ + rndis_filter_send_request(dev, request); + + dev->state = RNDIS_DEV_UNINITIALIZED; + +cleanup: + if (request) + put_rndis_request(dev, request); + return; +} + +static int rndis_filter_open_device(struct rndis_device *dev) +{ + int ret; + + if (dev->state != RNDIS_DEV_INITIALIZED) + return 0; + + ret = rndis_filter_set_packet_filter(dev, + NDIS_PACKET_TYPE_BROADCAST | + NDIS_PACKET_TYPE_ALL_MULTICAST | + NDIS_PACKET_TYPE_DIRECTED); + if (ret == 0) + dev->state = RNDIS_DEV_DATAINITIALIZED; + + return ret; +} + +static int rndis_filter_close_device(struct rndis_device *dev) +{ + int ret; + + if (dev->state != RNDIS_DEV_DATAINITIALIZED) + return 0; + + ret = rndis_filter_set_packet_filter(dev, 0); + if (ret == 0) + dev->state = RNDIS_DEV_INITIALIZED; + + return ret; +} + +int rndis_filter_device_add(struct hv_device *dev, + void *additional_info) +{ + int ret; + struct netvsc_device *net_device; + struct rndis_device *rndis_device; + struct netvsc_device_info *device_info = additional_info; + + rndis_device = get_rndis_device(); + if (!rndis_device) + return -ENODEV; + + /* + * Let the inner driver handle this first to create the netvsc channel + * NOTE! Once the channel is created, we may get a receive callback + * (RndisFilterOnReceive()) before this call is completed + */ + ret = netvsc_device_add(dev, additional_info); + if (ret != 0) { + kfree(rndis_device); + return ret; + } + + + /* Initialize the rndis device */ + net_device = hv_get_drvdata(dev); + + net_device->extension = rndis_device; + rndis_device->net_dev = net_device; + + /* Send the rndis initialization message */ + ret = rndis_filter_init_device(rndis_device); + if (ret != 0) { + /* + * TODO: If rndis init failed, we will need to shut down the + * channel + */ + } + + /* Get the mac address */ + ret = rndis_filter_query_device_mac(rndis_device); + if (ret != 0) { + /* + * TODO: shutdown rndis device and the channel + */ + } + + memcpy(device_info->mac_adr, rndis_device->hw_mac_adr, ETH_ALEN); + + rndis_filter_query_device_link_status(rndis_device); + + device_info->link_state = rndis_device->link_state; + + dev_info(&dev->device, "Device MAC %pM link state %s\n", + rndis_device->hw_mac_adr, + device_info->link_state ? "down" : "up"); + + return ret; +} + +void rndis_filter_device_remove(struct hv_device *dev) +{ + struct netvsc_device *net_dev = hv_get_drvdata(dev); + struct rndis_device *rndis_dev = net_dev->extension; + + /* Halt and release the rndis device */ + rndis_filter_halt_device(rndis_dev); + + kfree(rndis_dev); + net_dev->extension = NULL; + + netvsc_device_remove(dev); +} + + +int rndis_filter_open(struct hv_device *dev) +{ + struct netvsc_device *net_device = hv_get_drvdata(dev); + + if (!net_device) + return -EINVAL; + + return rndis_filter_open_device(net_device->extension); +} + +int rndis_filter_close(struct hv_device *dev) +{ + struct netvsc_device *nvdev = hv_get_drvdata(dev); + + if (!nvdev) + return -EINVAL; + + return rndis_filter_close_device(nvdev->extension); +} + +int rndis_filter_send(struct hv_device *dev, + struct hv_netvsc_packet *pkt) +{ + int ret; + struct rndis_filter_packet *filter_pkt; + struct rndis_message *rndis_msg; + struct rndis_packet *rndis_pkt; + u32 rndis_msg_size; + bool isvlan = pkt->vlan_tci & VLAN_TAG_PRESENT; + + /* Add the rndis header */ + filter_pkt = (struct rndis_filter_packet *)pkt->extension; + + rndis_msg = &filter_pkt->msg; + rndis_msg_size = RNDIS_MESSAGE_SIZE(struct rndis_packet); + if (isvlan) + rndis_msg_size += NDIS_VLAN_PPI_SIZE; + + rndis_msg->ndis_msg_type = REMOTE_NDIS_PACKET_MSG; + rndis_msg->msg_len = pkt->total_data_buflen + + rndis_msg_size; + + rndis_pkt = &rndis_msg->msg.pkt; + rndis_pkt->data_offset = sizeof(struct rndis_packet); + if (isvlan) + rndis_pkt->data_offset += NDIS_VLAN_PPI_SIZE; + rndis_pkt->data_len = pkt->total_data_buflen; + + if (isvlan) { + struct rndis_per_packet_info *ppi; + struct ndis_pkt_8021q_info *vlan; + + rndis_pkt->per_pkt_info_offset = sizeof(struct rndis_packet); + rndis_pkt->per_pkt_info_len = NDIS_VLAN_PPI_SIZE; + + ppi = (struct rndis_per_packet_info *)((ulong)rndis_pkt + + rndis_pkt->per_pkt_info_offset); + ppi->size = NDIS_VLAN_PPI_SIZE; + ppi->type = IEEE_8021Q_INFO; + ppi->ppi_offset = sizeof(struct rndis_per_packet_info); + + vlan = (struct ndis_pkt_8021q_info *)((ulong)ppi + + ppi->ppi_offset); + vlan->vlanid = pkt->vlan_tci & VLAN_VID_MASK; + vlan->pri = (pkt->vlan_tci & VLAN_PRIO_MASK) >> VLAN_PRIO_SHIFT; + } + + pkt->is_data_pkt = true; + pkt->page_buf[0].pfn = virt_to_phys(rndis_msg) >> PAGE_SHIFT; + pkt->page_buf[0].offset = + (unsigned long)rndis_msg & (PAGE_SIZE-1); + pkt->page_buf[0].len = rndis_msg_size; + + /* Add one page_buf if the rndis msg goes beyond page boundary */ + if (pkt->page_buf[0].offset + rndis_msg_size > PAGE_SIZE) { + int i; + for (i = pkt->page_buf_cnt; i > 1; i--) + pkt->page_buf[i] = pkt->page_buf[i-1]; + pkt->page_buf_cnt++; + pkt->page_buf[0].len = PAGE_SIZE - pkt->page_buf[0].offset; + pkt->page_buf[1].pfn = virt_to_phys((void *)((ulong) + rndis_msg + pkt->page_buf[0].len)) >> PAGE_SHIFT; + pkt->page_buf[1].offset = 0; + pkt->page_buf[1].len = rndis_msg_size - pkt->page_buf[0].len; + } + + /* Save the packet send completion and context */ + filter_pkt->completion = pkt->completion.send.send_completion; + filter_pkt->completion_ctx = + pkt->completion.send.send_completion_ctx; + + /* Use ours */ + pkt->completion.send.send_completion = rndis_filter_send_completion; + pkt->completion.send.send_completion_ctx = filter_pkt; + + ret = netvsc_send(dev, pkt); + if (ret != 0) { + /* + * Reset the completion to originals to allow retries from + * above + */ + pkt->completion.send.send_completion = + filter_pkt->completion; + pkt->completion.send.send_completion_ctx = + filter_pkt->completion_ctx; + } + + return ret; +} + +static void rndis_filter_send_completion(void *ctx) +{ + struct rndis_filter_packet *filter_pkt = ctx; + + /* Pass it back to the original handler */ + filter_pkt->completion(filter_pkt->completion_ctx); +} + + +static void rndis_filter_send_request_completion(void *ctx) +{ + /* Noop */ +} --- linux-3.2.0.orig/drivers/net/hyperv/Makefile +++ linux-3.2.0/drivers/net/hyperv/Makefile @@ -0,0 +1,3 @@ +obj-$(CONFIG_HYPERV_NET) += hv_netvsc.o + +hv_netvsc-y := netvsc_drv.o netvsc.o rndis_filter.o --- linux-3.2.0.orig/drivers/net/hyperv/netvsc.c +++ linux-3.2.0/drivers/net/hyperv/netvsc.c @@ -0,0 +1,933 @@ +/* + * Copyright (c) 2009, Microsoft Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope 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., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * + * Authors: + * Haiyang Zhang + * Hank Janssen + */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "hyperv_net.h" + + +static struct netvsc_device *alloc_net_device(struct hv_device *device) +{ + struct netvsc_device *net_device; + struct net_device *ndev = hv_get_drvdata(device); + + net_device = kzalloc(sizeof(struct netvsc_device), GFP_KERNEL); + if (!net_device) + return NULL; + + net_device->start_remove = false; + net_device->destroy = false; + net_device->dev = device; + net_device->ndev = ndev; + + hv_set_drvdata(device, net_device); + return net_device; +} + +static struct netvsc_device *get_outbound_net_device(struct hv_device *device) +{ + struct netvsc_device *net_device; + + net_device = hv_get_drvdata(device); + if (net_device && net_device->destroy) + net_device = NULL; + + return net_device; +} + +static struct netvsc_device *get_inbound_net_device(struct hv_device *device) +{ + struct netvsc_device *net_device; + + net_device = hv_get_drvdata(device); + + if (!net_device) + goto get_in_err; + + if (net_device->destroy && + atomic_read(&net_device->num_outstanding_sends) == 0) + net_device = NULL; + +get_in_err: + return net_device; +} + + +static int netvsc_destroy_recv_buf(struct netvsc_device *net_device) +{ + struct nvsp_message *revoke_packet; + int ret = 0; + struct net_device *ndev = net_device->ndev; + + /* + * If we got a section count, it means we received a + * SendReceiveBufferComplete msg (ie sent + * NvspMessage1TypeSendReceiveBuffer msg) therefore, we need + * to send a revoke msg here + */ + if (net_device->recv_section_cnt) { + /* Send the revoke receive buffer */ + revoke_packet = &net_device->revoke_packet; + memset(revoke_packet, 0, sizeof(struct nvsp_message)); + + revoke_packet->hdr.msg_type = + NVSP_MSG1_TYPE_REVOKE_RECV_BUF; + revoke_packet->msg.v1_msg. + revoke_recv_buf.id = NETVSC_RECEIVE_BUFFER_ID; + + ret = vmbus_sendpacket(net_device->dev->channel, + revoke_packet, + sizeof(struct nvsp_message), + (unsigned long)revoke_packet, + VM_PKT_DATA_INBAND, 0); + /* + * If we failed here, we might as well return and + * have a leak rather than continue and a bugchk + */ + if (ret != 0) { + netdev_err(ndev, "unable to send " + "revoke receive buffer to netvsp\n"); + return ret; + } + } + + /* Teardown the gpadl on the vsp end */ + if (net_device->recv_buf_gpadl_handle) { + ret = vmbus_teardown_gpadl(net_device->dev->channel, + net_device->recv_buf_gpadl_handle); + + /* If we failed here, we might as well return and have a leak + * rather than continue and a bugchk + */ + if (ret != 0) { + netdev_err(ndev, + "unable to teardown receive buffer's gpadl\n"); + return ret; + } + net_device->recv_buf_gpadl_handle = 0; + } + + if (net_device->recv_buf) { + /* Free up the receive buffer */ + free_pages((unsigned long)net_device->recv_buf, + get_order(net_device->recv_buf_size)); + net_device->recv_buf = NULL; + } + + if (net_device->recv_section) { + net_device->recv_section_cnt = 0; + kfree(net_device->recv_section); + net_device->recv_section = NULL; + } + + return ret; +} + +static int netvsc_init_recv_buf(struct hv_device *device) +{ + int ret = 0; + int t; + struct netvsc_device *net_device; + struct nvsp_message *init_packet; + struct net_device *ndev; + + net_device = get_outbound_net_device(device); + if (!net_device) + return -ENODEV; + ndev = net_device->ndev; + + net_device->recv_buf = + (void *)__get_free_pages(GFP_KERNEL|__GFP_ZERO, + get_order(net_device->recv_buf_size)); + if (!net_device->recv_buf) { + netdev_err(ndev, "unable to allocate receive " + "buffer of size %d\n", net_device->recv_buf_size); + ret = -ENOMEM; + goto cleanup; + } + + /* + * Establish the gpadl handle for this buffer on this + * channel. Note: This call uses the vmbus connection rather + * than the channel to establish the gpadl handle. + */ + ret = vmbus_establish_gpadl(device->channel, net_device->recv_buf, + net_device->recv_buf_size, + &net_device->recv_buf_gpadl_handle); + if (ret != 0) { + netdev_err(ndev, + "unable to establish receive buffer's gpadl\n"); + goto cleanup; + } + + + /* Notify the NetVsp of the gpadl handle */ + init_packet = &net_device->channel_init_pkt; + + memset(init_packet, 0, sizeof(struct nvsp_message)); + + init_packet->hdr.msg_type = NVSP_MSG1_TYPE_SEND_RECV_BUF; + init_packet->msg.v1_msg.send_recv_buf. + gpadl_handle = net_device->recv_buf_gpadl_handle; + init_packet->msg.v1_msg. + send_recv_buf.id = NETVSC_RECEIVE_BUFFER_ID; + + /* Send the gpadl notification request */ + ret = vmbus_sendpacket(device->channel, init_packet, + sizeof(struct nvsp_message), + (unsigned long)init_packet, + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + if (ret != 0) { + netdev_err(ndev, + "unable to send receive buffer's gpadl to netvsp\n"); + goto cleanup; + } + + t = wait_for_completion_timeout(&net_device->channel_init_wait, 5*HZ); + BUG_ON(t == 0); + + + /* Check the response */ + if (init_packet->msg.v1_msg. + send_recv_buf_complete.status != NVSP_STAT_SUCCESS) { + netdev_err(ndev, "Unable to complete receive buffer " + "initialization with NetVsp - status %d\n", + init_packet->msg.v1_msg. + send_recv_buf_complete.status); + ret = -EINVAL; + goto cleanup; + } + + /* Parse the response */ + + net_device->recv_section_cnt = init_packet->msg. + v1_msg.send_recv_buf_complete.num_sections; + + net_device->recv_section = kmemdup( + init_packet->msg.v1_msg.send_recv_buf_complete.sections, + net_device->recv_section_cnt * + sizeof(struct nvsp_1_receive_buffer_section), + GFP_KERNEL); + if (net_device->recv_section == NULL) { + ret = -EINVAL; + goto cleanup; + } + + /* + * For 1st release, there should only be 1 section that represents the + * entire receive buffer + */ + if (net_device->recv_section_cnt != 1 || + net_device->recv_section->offset != 0) { + ret = -EINVAL; + goto cleanup; + } + + goto exit; + +cleanup: + netvsc_destroy_recv_buf(net_device); + +exit: + return ret; +} + + +/* Negotiate NVSP protocol version */ +static int negotiate_nvsp_ver(struct hv_device *device, + struct netvsc_device *net_device, + struct nvsp_message *init_packet, + u32 nvsp_ver) +{ + int ret, t; + + memset(init_packet, 0, sizeof(struct nvsp_message)); + init_packet->hdr.msg_type = NVSP_MSG_TYPE_INIT; + init_packet->msg.init_msg.init.min_protocol_ver = nvsp_ver; + init_packet->msg.init_msg.init.max_protocol_ver = nvsp_ver; + + /* Send the init request */ + ret = vmbus_sendpacket(device->channel, init_packet, + sizeof(struct nvsp_message), + (unsigned long)init_packet, + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + + if (ret != 0) + return ret; + + t = wait_for_completion_timeout(&net_device->channel_init_wait, 5*HZ); + + if (t == 0) + return -ETIMEDOUT; + + if (init_packet->msg.init_msg.init_complete.status != + NVSP_STAT_SUCCESS) + return -EINVAL; + + if (nvsp_ver != NVSP_PROTOCOL_VERSION_2) + return 0; + + /* NVSPv2 only: Send NDIS config */ + memset(init_packet, 0, sizeof(struct nvsp_message)); + init_packet->hdr.msg_type = NVSP_MSG2_TYPE_SEND_NDIS_CONFIG; + init_packet->msg.v2_msg.send_ndis_config.mtu = net_device->ndev->mtu; + init_packet->msg.v2_msg.send_ndis_config.capability.ieee8021q = 1; + + ret = vmbus_sendpacket(device->channel, init_packet, + sizeof(struct nvsp_message), + (unsigned long)init_packet, + VM_PKT_DATA_INBAND, 0); + + return ret; +} + +static int netvsc_connect_vsp(struct hv_device *device) +{ + int ret; + struct netvsc_device *net_device; + struct nvsp_message *init_packet; + int ndis_version; + struct net_device *ndev; + + net_device = get_outbound_net_device(device); + if (!net_device) + return -ENODEV; + ndev = net_device->ndev; + + init_packet = &net_device->channel_init_pkt; + + /* Negotiate the latest NVSP protocol supported */ + if (negotiate_nvsp_ver(device, net_device, init_packet, + NVSP_PROTOCOL_VERSION_2) == 0) { + net_device->nvsp_version = NVSP_PROTOCOL_VERSION_2; + } else if (negotiate_nvsp_ver(device, net_device, init_packet, + NVSP_PROTOCOL_VERSION_1) == 0) { + net_device->nvsp_version = NVSP_PROTOCOL_VERSION_1; + } else { + ret = -EPROTO; + goto cleanup; + } + + pr_debug("Negotiated NVSP version:%x\n", net_device->nvsp_version); + + /* Send the ndis version */ + memset(init_packet, 0, sizeof(struct nvsp_message)); + + ndis_version = 0x00050001; + + init_packet->hdr.msg_type = NVSP_MSG1_TYPE_SEND_NDIS_VER; + init_packet->msg.v1_msg. + send_ndis_ver.ndis_major_ver = + (ndis_version & 0xFFFF0000) >> 16; + init_packet->msg.v1_msg. + send_ndis_ver.ndis_minor_ver = + ndis_version & 0xFFFF; + + /* Send the init request */ + ret = vmbus_sendpacket(device->channel, init_packet, + sizeof(struct nvsp_message), + (unsigned long)init_packet, + VM_PKT_DATA_INBAND, 0); + if (ret != 0) + goto cleanup; + + /* Post the big receive buffer to NetVSP */ + ret = netvsc_init_recv_buf(device); + +cleanup: + return ret; +} + +static void netvsc_disconnect_vsp(struct netvsc_device *net_device) +{ + netvsc_destroy_recv_buf(net_device); +} + +/* + * netvsc_device_remove - Callback when the root bus device is removed + */ +int netvsc_device_remove(struct hv_device *device) +{ + struct netvsc_device *net_device; + struct hv_netvsc_packet *netvsc_packet, *pos; + unsigned long flags; + + net_device = hv_get_drvdata(device); + spin_lock_irqsave(&device->channel->inbound_lock, flags); + net_device->destroy = true; + spin_unlock_irqrestore(&device->channel->inbound_lock, flags); + + /* Wait for all send completions */ + while (atomic_read(&net_device->num_outstanding_sends)) { + dev_info(&device->device, + "waiting for %d requests to complete...\n", + atomic_read(&net_device->num_outstanding_sends)); + udelay(100); + } + + netvsc_disconnect_vsp(net_device); + + /* + * Since we have already drained, we don't need to busy wait + * as was done in final_release_stor_device() + * Note that we cannot set the ext pointer to NULL until + * we have drained - to drain the outgoing packets, we need to + * allow incoming packets. + */ + + spin_lock_irqsave(&device->channel->inbound_lock, flags); + hv_set_drvdata(device, NULL); + spin_unlock_irqrestore(&device->channel->inbound_lock, flags); + + /* + * At this point, no one should be accessing net_device + * except in here + */ + dev_notice(&device->device, "net device safe to remove\n"); + + /* Now, we can close the channel safely */ + vmbus_close(device->channel); + + /* Release all resources */ + list_for_each_entry_safe(netvsc_packet, pos, + &net_device->recv_pkt_list, list_ent) { + list_del(&netvsc_packet->list_ent); + kfree(netvsc_packet); + } + + kfree(net_device); + return 0; +} + +static void netvsc_send_completion(struct hv_device *device, + struct vmpacket_descriptor *packet) +{ + struct netvsc_device *net_device; + struct nvsp_message *nvsp_packet; + struct hv_netvsc_packet *nvsc_packet; + struct net_device *ndev; + + net_device = get_inbound_net_device(device); + if (!net_device) + return; + ndev = net_device->ndev; + + nvsp_packet = (struct nvsp_message *)((unsigned long)packet + + (packet->offset8 << 3)); + + if ((nvsp_packet->hdr.msg_type == NVSP_MSG_TYPE_INIT_COMPLETE) || + (nvsp_packet->hdr.msg_type == + NVSP_MSG1_TYPE_SEND_RECV_BUF_COMPLETE) || + (nvsp_packet->hdr.msg_type == + NVSP_MSG1_TYPE_SEND_SEND_BUF_COMPLETE)) { + /* Copy the response back */ + memcpy(&net_device->channel_init_pkt, nvsp_packet, + sizeof(struct nvsp_message)); + complete(&net_device->channel_init_wait); + } else if (nvsp_packet->hdr.msg_type == + NVSP_MSG1_TYPE_SEND_RNDIS_PKT_COMPLETE) { + /* Get the send context */ + nvsc_packet = (struct hv_netvsc_packet *)(unsigned long) + packet->trans_id; + + /* Notify the layer above us */ + nvsc_packet->completion.send.send_completion( + nvsc_packet->completion.send.send_completion_ctx); + + atomic_dec(&net_device->num_outstanding_sends); + + if (netif_queue_stopped(ndev) && !net_device->start_remove) + netif_wake_queue(ndev); + } else { + netdev_err(ndev, "Unknown send completion packet type- " + "%d received!!\n", nvsp_packet->hdr.msg_type); + } + +} + +int netvsc_send(struct hv_device *device, + struct hv_netvsc_packet *packet) +{ + struct netvsc_device *net_device; + int ret = 0; + struct nvsp_message sendMessage; + struct net_device *ndev; + + net_device = get_outbound_net_device(device); + if (!net_device) + return -ENODEV; + ndev = net_device->ndev; + + sendMessage.hdr.msg_type = NVSP_MSG1_TYPE_SEND_RNDIS_PKT; + if (packet->is_data_pkt) { + /* 0 is RMC_DATA; */ + sendMessage.msg.v1_msg.send_rndis_pkt.channel_type = 0; + } else { + /* 1 is RMC_CONTROL; */ + sendMessage.msg.v1_msg.send_rndis_pkt.channel_type = 1; + } + + /* Not using send buffer section */ + sendMessage.msg.v1_msg.send_rndis_pkt.send_buf_section_index = + 0xFFFFFFFF; + sendMessage.msg.v1_msg.send_rndis_pkt.send_buf_section_size = 0; + + if (packet->page_buf_cnt) { + ret = vmbus_sendpacket_pagebuffer(device->channel, + packet->page_buf, + packet->page_buf_cnt, + &sendMessage, + sizeof(struct nvsp_message), + (unsigned long)packet); + } else { + ret = vmbus_sendpacket(device->channel, &sendMessage, + sizeof(struct nvsp_message), + (unsigned long)packet, + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + + } + + if (ret == 0) { + atomic_inc(&net_device->num_outstanding_sends); + } else if (ret == -EAGAIN) { + netif_stop_queue(ndev); + if (atomic_read(&net_device->num_outstanding_sends) < 1) + netif_wake_queue(ndev); + } else { + netdev_err(ndev, "Unable to send packet %p ret %d\n", + packet, ret); + } + + return ret; +} + +static void netvsc_send_recv_completion(struct hv_device *device, + u64 transaction_id) +{ + struct nvsp_message recvcompMessage; + int retries = 0; + int ret; + struct net_device *ndev; + struct netvsc_device *net_device = hv_get_drvdata(device); + + ndev = net_device->ndev; + + recvcompMessage.hdr.msg_type = + NVSP_MSG1_TYPE_SEND_RNDIS_PKT_COMPLETE; + + /* FIXME: Pass in the status */ + recvcompMessage.msg.v1_msg.send_rndis_pkt_complete.status = + NVSP_STAT_SUCCESS; + +retry_send_cmplt: + /* Send the completion */ + ret = vmbus_sendpacket(device->channel, &recvcompMessage, + sizeof(struct nvsp_message), transaction_id, + VM_PKT_COMP, 0); + if (ret == 0) { + /* success */ + /* no-op */ + } else if (ret == -EAGAIN) { + /* no more room...wait a bit and attempt to retry 3 times */ + retries++; + netdev_err(ndev, "unable to send receive completion pkt" + " (tid %llx)...retrying %d\n", transaction_id, retries); + + if (retries < 4) { + udelay(100); + goto retry_send_cmplt; + } else { + netdev_err(ndev, "unable to send receive " + "completion pkt (tid %llx)...give up retrying\n", + transaction_id); + } + } else { + netdev_err(ndev, "unable to send receive " + "completion pkt - %llx\n", transaction_id); + } +} + +/* Send a receive completion packet to RNDIS device (ie NetVsp) */ +static void netvsc_receive_completion(void *context) +{ + struct hv_netvsc_packet *packet = context; + struct hv_device *device = (struct hv_device *)packet->device; + struct netvsc_device *net_device; + u64 transaction_id = 0; + bool fsend_receive_comp = false; + unsigned long flags; + struct net_device *ndev; + + /* + * Even though it seems logical to do a GetOutboundNetDevice() here to + * send out receive completion, we are using GetInboundNetDevice() + * since we may have disable outbound traffic already. + */ + net_device = get_inbound_net_device(device); + if (!net_device) + return; + ndev = net_device->ndev; + + /* Overloading use of the lock. */ + spin_lock_irqsave(&net_device->recv_pkt_list_lock, flags); + + packet->xfer_page_pkt->count--; + + /* + * Last one in the line that represent 1 xfer page packet. + * Return the xfer page packet itself to the freelist + */ + if (packet->xfer_page_pkt->count == 0) { + fsend_receive_comp = true; + transaction_id = packet->completion.recv.recv_completion_tid; + list_add_tail(&packet->xfer_page_pkt->list_ent, + &net_device->recv_pkt_list); + + } + + /* Put the packet back */ + list_add_tail(&packet->list_ent, &net_device->recv_pkt_list); + spin_unlock_irqrestore(&net_device->recv_pkt_list_lock, flags); + + /* Send a receive completion for the xfer page packet */ + if (fsend_receive_comp) + netvsc_send_recv_completion(device, transaction_id); + +} + +static void netvsc_receive(struct hv_device *device, + struct vmpacket_descriptor *packet) +{ + struct netvsc_device *net_device; + struct vmtransfer_page_packet_header *vmxferpage_packet; + struct nvsp_message *nvsp_packet; + struct hv_netvsc_packet *netvsc_packet = NULL; + /* struct netvsc_driver *netvscDriver; */ + struct xferpage_packet *xferpage_packet = NULL; + int i; + int count = 0; + unsigned long flags; + struct net_device *ndev; + + LIST_HEAD(listHead); + + net_device = get_inbound_net_device(device); + if (!net_device) + return; + ndev = net_device->ndev; + + /* + * All inbound packets other than send completion should be xfer page + * packet + */ + if (packet->type != VM_PKT_DATA_USING_XFER_PAGES) { + netdev_err(ndev, "Unknown packet type received - %d\n", + packet->type); + return; + } + + nvsp_packet = (struct nvsp_message *)((unsigned long)packet + + (packet->offset8 << 3)); + + /* Make sure this is a valid nvsp packet */ + if (nvsp_packet->hdr.msg_type != + NVSP_MSG1_TYPE_SEND_RNDIS_PKT) { + netdev_err(ndev, "Unknown nvsp packet type received-" + " %d\n", nvsp_packet->hdr.msg_type); + return; + } + + vmxferpage_packet = (struct vmtransfer_page_packet_header *)packet; + + if (vmxferpage_packet->xfer_pageset_id != NETVSC_RECEIVE_BUFFER_ID) { + netdev_err(ndev, "Invalid xfer page set id - " + "expecting %x got %x\n", NETVSC_RECEIVE_BUFFER_ID, + vmxferpage_packet->xfer_pageset_id); + return; + } + + /* + * Grab free packets (range count + 1) to represent this xfer + * page packet. +1 to represent the xfer page packet itself. + * We grab it here so that we know exactly how many we can + * fulfil + */ + spin_lock_irqsave(&net_device->recv_pkt_list_lock, flags); + while (!list_empty(&net_device->recv_pkt_list)) { + list_move_tail(net_device->recv_pkt_list.next, &listHead); + if (++count == vmxferpage_packet->range_cnt + 1) + break; + } + spin_unlock_irqrestore(&net_device->recv_pkt_list_lock, flags); + + /* + * We need at least 2 netvsc pkts (1 to represent the xfer + * page and at least 1 for the range) i.e. we can handled + * some of the xfer page packet ranges... + */ + if (count < 2) { + netdev_err(ndev, "Got only %d netvsc pkt...needed " + "%d pkts. Dropping this xfer page packet completely!\n", + count, vmxferpage_packet->range_cnt + 1); + + /* Return it to the freelist */ + spin_lock_irqsave(&net_device->recv_pkt_list_lock, flags); + for (i = count; i != 0; i--) { + list_move_tail(listHead.next, + &net_device->recv_pkt_list); + } + spin_unlock_irqrestore(&net_device->recv_pkt_list_lock, + flags); + + netvsc_send_recv_completion(device, + vmxferpage_packet->d.trans_id); + + return; + } + + /* Remove the 1st packet to represent the xfer page packet itself */ + xferpage_packet = (struct xferpage_packet *)listHead.next; + list_del(&xferpage_packet->list_ent); + + /* This is how much we can satisfy */ + xferpage_packet->count = count - 1; + + if (xferpage_packet->count != vmxferpage_packet->range_cnt) { + netdev_err(ndev, "Needed %d netvsc pkts to satisfy " + "this xfer page...got %d\n", + vmxferpage_packet->range_cnt, xferpage_packet->count); + } + + /* Each range represents 1 RNDIS pkt that contains 1 ethernet frame */ + for (i = 0; i < (count - 1); i++) { + netvsc_packet = (struct hv_netvsc_packet *)listHead.next; + list_del(&netvsc_packet->list_ent); + + /* Initialize the netvsc packet */ + netvsc_packet->xfer_page_pkt = xferpage_packet; + netvsc_packet->completion.recv.recv_completion = + netvsc_receive_completion; + netvsc_packet->completion.recv.recv_completion_ctx = + netvsc_packet; + netvsc_packet->device = device; + /* Save this so that we can send it back */ + netvsc_packet->completion.recv.recv_completion_tid = + vmxferpage_packet->d.trans_id; + + netvsc_packet->data = (void *)((unsigned long)net_device-> + recv_buf + vmxferpage_packet->ranges[i].byte_offset); + netvsc_packet->total_data_buflen = + vmxferpage_packet->ranges[i].byte_count; + + /* Pass it to the upper layer */ + rndis_filter_receive(device, netvsc_packet); + + netvsc_receive_completion(netvsc_packet-> + completion.recv.recv_completion_ctx); + } + +} + +static void netvsc_channel_cb(void *context) +{ + int ret; + struct hv_device *device = context; + struct netvsc_device *net_device; + u32 bytes_recvd; + u64 request_id; + unsigned char *packet; + struct vmpacket_descriptor *desc; + unsigned char *buffer; + int bufferlen = NETVSC_PACKET_SIZE; + struct net_device *ndev; + + packet = kzalloc(NETVSC_PACKET_SIZE * sizeof(unsigned char), + GFP_ATOMIC); + if (!packet) + return; + buffer = packet; + + net_device = get_inbound_net_device(device); + if (!net_device) + goto out; + ndev = net_device->ndev; + + do { + ret = vmbus_recvpacket_raw(device->channel, buffer, bufferlen, + &bytes_recvd, &request_id); + if (ret == 0) { + if (bytes_recvd > 0) { + desc = (struct vmpacket_descriptor *)buffer; + switch (desc->type) { + case VM_PKT_COMP: + netvsc_send_completion(device, desc); + break; + + case VM_PKT_DATA_USING_XFER_PAGES: + netvsc_receive(device, desc); + break; + + default: + netdev_err(ndev, + "unhandled packet type %d, " + "tid %llx len %d\n", + desc->type, request_id, + bytes_recvd); + break; + } + + /* reset */ + if (bufferlen > NETVSC_PACKET_SIZE) { + kfree(buffer); + buffer = packet; + bufferlen = NETVSC_PACKET_SIZE; + } + } else { + /* reset */ + if (bufferlen > NETVSC_PACKET_SIZE) { + kfree(buffer); + buffer = packet; + bufferlen = NETVSC_PACKET_SIZE; + } + + break; + } + } else if (ret == -ENOBUFS) { + /* Handle large packet */ + buffer = kmalloc(bytes_recvd, GFP_ATOMIC); + if (buffer == NULL) { + /* Try again next time around */ + netdev_err(ndev, + "unable to allocate buffer of size " + "(%d)!!\n", bytes_recvd); + break; + } + + bufferlen = bytes_recvd; + } + } while (1); + +out: + kfree(buffer); + return; +} + +/* + * netvsc_device_add - Callback when the device belonging to this + * driver is added + */ +int netvsc_device_add(struct hv_device *device, void *additional_info) +{ + int ret = 0; + int i; + int ring_size = + ((struct netvsc_device_info *)additional_info)->ring_size; + struct netvsc_device *net_device; + struct hv_netvsc_packet *packet, *pos; + struct net_device *ndev; + + net_device = alloc_net_device(device); + if (!net_device) { + ret = -ENOMEM; + goto cleanup; + } + + /* + * Coming into this function, struct net_device * is + * registered as the driver private data. + * In alloc_net_device(), we register struct netvsc_device * + * as the driver private data and stash away struct net_device * + * in struct netvsc_device *. + */ + ndev = net_device->ndev; + + /* Initialize the NetVSC channel extension */ + net_device->recv_buf_size = NETVSC_RECEIVE_BUFFER_SIZE; + spin_lock_init(&net_device->recv_pkt_list_lock); + + INIT_LIST_HEAD(&net_device->recv_pkt_list); + + for (i = 0; i < NETVSC_RECEIVE_PACKETLIST_COUNT; i++) { + packet = kzalloc(sizeof(struct hv_netvsc_packet) + + (NETVSC_RECEIVE_SG_COUNT * + sizeof(struct hv_page_buffer)), GFP_KERNEL); + if (!packet) + break; + + list_add_tail(&packet->list_ent, + &net_device->recv_pkt_list); + } + init_completion(&net_device->channel_init_wait); + + /* Open the channel */ + ret = vmbus_open(device->channel, ring_size * PAGE_SIZE, + ring_size * PAGE_SIZE, NULL, 0, + netvsc_channel_cb, device); + + if (ret != 0) { + netdev_err(ndev, "unable to open channel: %d\n", ret); + goto cleanup; + } + + /* Channel is opened */ + pr_info("hv_netvsc channel opened successfully\n"); + + /* Connect with the NetVsp */ + ret = netvsc_connect_vsp(device); + if (ret != 0) { + netdev_err(ndev, + "unable to connect to NetVSP - %d\n", ret); + goto close; + } + + return ret; + +close: + /* Now, we can close the channel safely */ + vmbus_close(device->channel); + +cleanup: + + if (net_device) { + list_for_each_entry_safe(packet, pos, + &net_device->recv_pkt_list, + list_ent) { + list_del(&packet->list_ent); + kfree(packet); + } + + kfree(net_device); + } + + return ret; +} --- linux-3.2.0.orig/drivers/net/hyperv/netvsc_drv.c +++ linux-3.2.0/drivers/net/hyperv/netvsc_drv.c @@ -0,0 +1,510 @@ +/* + * Copyright (c) 2009, Microsoft Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope 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., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * + * Authors: + * Haiyang Zhang + * Hank Janssen + */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "hyperv_net.h" + +struct net_device_context { + /* point back to our device context */ + struct hv_device *device_ctx; + struct delayed_work dwork; +}; + + +static int ring_size = 128; +module_param(ring_size, int, S_IRUGO); +MODULE_PARM_DESC(ring_size, "Ring buffer size (# of pages)"); + +struct set_multicast_work { + struct work_struct work; + struct net_device *net; +}; + +static void do_set_multicast(struct work_struct *w) +{ + struct set_multicast_work *swk = + container_of(w, struct set_multicast_work, work); + struct net_device *net = swk->net; + + struct net_device_context *ndevctx = netdev_priv(net); + struct netvsc_device *nvdev; + struct rndis_device *rdev; + + nvdev = hv_get_drvdata(ndevctx->device_ctx); + if (nvdev == NULL) + goto out; + + rdev = nvdev->extension; + if (rdev == NULL) + goto out; + + if (net->flags & IFF_PROMISC) + rndis_filter_set_packet_filter(rdev, + NDIS_PACKET_TYPE_PROMISCUOUS); + else + rndis_filter_set_packet_filter(rdev, + NDIS_PACKET_TYPE_BROADCAST | + NDIS_PACKET_TYPE_ALL_MULTICAST | + NDIS_PACKET_TYPE_DIRECTED); + +out: + kfree(w); +} + +static void netvsc_set_multicast_list(struct net_device *net) +{ + struct set_multicast_work *swk = + kmalloc(sizeof(struct set_multicast_work), GFP_ATOMIC); + if (swk == NULL) + return; + + swk->net = net; + INIT_WORK(&swk->work, do_set_multicast); + schedule_work(&swk->work); +} + +static int netvsc_open(struct net_device *net) +{ + struct net_device_context *net_device_ctx = netdev_priv(net); + struct hv_device *device_obj = net_device_ctx->device_ctx; + int ret = 0; + + /* Open up the device */ + ret = rndis_filter_open(device_obj); + if (ret != 0) { + netdev_err(net, "unable to open device (ret %d).\n", ret); + return ret; + } + + netif_start_queue(net); + + return ret; +} + +static int netvsc_close(struct net_device *net) +{ + struct net_device_context *net_device_ctx = netdev_priv(net); + struct hv_device *device_obj = net_device_ctx->device_ctx; + int ret; + + netif_tx_disable(net); + + ret = rndis_filter_close(device_obj); + if (ret != 0) + netdev_err(net, "unable to close device (ret %d).\n", ret); + + return ret; +} + +static void netvsc_xmit_completion(void *context) +{ + struct hv_netvsc_packet *packet = (struct hv_netvsc_packet *)context; + struct sk_buff *skb = (struct sk_buff *) + (unsigned long)packet->completion.send.send_completion_tid; + + kfree(packet); + + if (skb) + dev_kfree_skb_any(skb); +} + +static int netvsc_start_xmit(struct sk_buff *skb, struct net_device *net) +{ + struct net_device_context *net_device_ctx = netdev_priv(net); + struct hv_netvsc_packet *packet; + int ret; + unsigned int i, num_pages, npg_data; + + /* Add multipages for skb->data and additional 2 for RNDIS */ + npg_data = (((unsigned long)skb->data + skb_headlen(skb) - 1) + >> PAGE_SHIFT) - ((unsigned long)skb->data >> PAGE_SHIFT) + 1; + num_pages = skb_shinfo(skb)->nr_frags + npg_data + 2; + + /* Allocate a netvsc packet based on # of frags. */ + packet = kzalloc(sizeof(struct hv_netvsc_packet) + + (num_pages * sizeof(struct hv_page_buffer)) + + sizeof(struct rndis_filter_packet) + + NDIS_VLAN_PPI_SIZE, GFP_ATOMIC); + if (!packet) { + /* out of memory, drop packet */ + netdev_err(net, "unable to allocate hv_netvsc_packet\n"); + + dev_kfree_skb(skb); + net->stats.tx_dropped++; + return NETDEV_TX_OK; + } + + packet->vlan_tci = skb->vlan_tci; + + packet->extension = (void *)(unsigned long)packet + + sizeof(struct hv_netvsc_packet) + + (num_pages * sizeof(struct hv_page_buffer)); + + /* If the rndis msg goes beyond 1 page, we will add 1 later */ + packet->page_buf_cnt = num_pages - 1; + + /* Initialize it from the skb */ + packet->total_data_buflen = skb->len; + + /* Start filling in the page buffers starting after RNDIS buffer. */ + packet->page_buf[1].pfn = virt_to_phys(skb->data) >> PAGE_SHIFT; + packet->page_buf[1].offset + = (unsigned long)skb->data & (PAGE_SIZE - 1); + if (npg_data == 1) + packet->page_buf[1].len = skb_headlen(skb); + else + packet->page_buf[1].len = PAGE_SIZE + - packet->page_buf[1].offset; + + for (i = 2; i <= npg_data; i++) { + packet->page_buf[i].pfn = virt_to_phys(skb->data + + PAGE_SIZE * (i-1)) >> PAGE_SHIFT; + packet->page_buf[i].offset = 0; + packet->page_buf[i].len = PAGE_SIZE; + } + if (npg_data > 1) + packet->page_buf[npg_data].len = (((unsigned long)skb->data + + skb_headlen(skb) - 1) & (PAGE_SIZE - 1)) + 1; + + /* Additional fragments are after SKB data */ + for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { + const skb_frag_t *f = &skb_shinfo(skb)->frags[i]; + + packet->page_buf[i+npg_data+1].pfn = + page_to_pfn(skb_frag_page(f)); + packet->page_buf[i+npg_data+1].offset = f->page_offset; + packet->page_buf[i+npg_data+1].len = skb_frag_size(f); + } + + /* Set the completion routine */ + packet->completion.send.send_completion = netvsc_xmit_completion; + packet->completion.send.send_completion_ctx = packet; + packet->completion.send.send_completion_tid = (unsigned long)skb; + + ret = rndis_filter_send(net_device_ctx->device_ctx, + packet); + if (ret == 0) { + net->stats.tx_bytes += skb->len; + net->stats.tx_packets++; + } else { + /* we are shutting down or bus overloaded, just drop packet */ + net->stats.tx_dropped++; + kfree(packet); + dev_kfree_skb_any(skb); + } + + return NETDEV_TX_OK; +} + +/* + * netvsc_linkstatus_callback - Link up/down notification + */ +void netvsc_linkstatus_callback(struct hv_device *device_obj, + unsigned int status) +{ + struct net_device *net; + struct net_device_context *ndev_ctx; + struct netvsc_device *net_device; + + net_device = hv_get_drvdata(device_obj); + net = net_device->ndev; + + if (!net) { + netdev_err(net, "got link status but net device " + "not initialized yet\n"); + return; + } + + if (status == 1) { + netif_carrier_on(net); + netif_wake_queue(net); + ndev_ctx = netdev_priv(net); + schedule_delayed_work(&ndev_ctx->dwork, 0); + schedule_delayed_work(&ndev_ctx->dwork, msecs_to_jiffies(20)); + } else { + netif_carrier_off(net); + netif_tx_disable(net); + } +} + +/* + * netvsc_recv_callback - Callback when we receive a packet from the + * "wire" on the specified device. + */ +int netvsc_recv_callback(struct hv_device *device_obj, + struct hv_netvsc_packet *packet) +{ + struct net_device *net; + struct sk_buff *skb; + + net = ((struct netvsc_device *)hv_get_drvdata(device_obj))->ndev; + if (!net) { + netdev_err(net, "got receive callback but net device" + " not initialized yet\n"); + return 0; + } + + /* Allocate a skb - TODO direct I/O to pages? */ + skb = netdev_alloc_skb_ip_align(net, packet->total_data_buflen); + if (unlikely(!skb)) { + ++net->stats.rx_dropped; + return 0; + } + + /* + * Copy to skb. This copy is needed here since the memory pointed by + * hv_netvsc_packet cannot be deallocated + */ + memcpy(skb_put(skb, packet->total_data_buflen), packet->data, + packet->total_data_buflen); + + skb->protocol = eth_type_trans(skb, net); + skb->ip_summed = CHECKSUM_NONE; + skb->vlan_tci = packet->vlan_tci; + + net->stats.rx_packets++; + net->stats.rx_bytes += packet->total_data_buflen; + + /* + * Pass the skb back up. Network stack will deallocate the skb when it + * is done. + * TODO - use NAPI? + */ + netif_rx(skb); + + return 0; +} + +static void netvsc_get_drvinfo(struct net_device *net, + struct ethtool_drvinfo *info) +{ + strcpy(info->driver, KBUILD_MODNAME); + strcpy(info->version, HV_DRV_VERSION); + strcpy(info->fw_version, "N/A"); +} + +static int netvsc_change_mtu(struct net_device *ndev, int mtu) +{ + struct net_device_context *ndevctx = netdev_priv(ndev); + struct hv_device *hdev = ndevctx->device_ctx; + struct netvsc_device *nvdev = hv_get_drvdata(hdev); + struct netvsc_device_info device_info; + int limit = ETH_DATA_LEN; + + if (nvdev == NULL || nvdev->destroy) + return -ENODEV; + + if (nvdev->nvsp_version == NVSP_PROTOCOL_VERSION_2) + limit = NETVSC_MTU; + + if (mtu < 68 || mtu > limit) + return -EINVAL; + + nvdev->start_remove = true; + cancel_delayed_work_sync(&ndevctx->dwork); + netif_tx_disable(ndev); + rndis_filter_device_remove(hdev); + + ndev->mtu = mtu; + + ndevctx->device_ctx = hdev; + hv_set_drvdata(hdev, ndev); + device_info.ring_size = ring_size; + rndis_filter_device_add(hdev, &device_info); + netif_wake_queue(ndev); + + return 0; +} + +static const struct ethtool_ops ethtool_ops = { + .get_drvinfo = netvsc_get_drvinfo, + .get_link = ethtool_op_get_link, +}; + +static const struct net_device_ops device_ops = { + .ndo_open = netvsc_open, + .ndo_stop = netvsc_close, + .ndo_start_xmit = netvsc_start_xmit, + .ndo_set_rx_mode = netvsc_set_multicast_list, + .ndo_change_mtu = netvsc_change_mtu, + .ndo_validate_addr = eth_validate_addr, + .ndo_set_mac_address = eth_mac_addr, +}; + +/* + * Send GARP packet to network peers after migrations. + * After Quick Migration, the network is not immediately operational in the + * current context when receiving RNDIS_STATUS_MEDIA_CONNECT event. So, add + * another netif_notify_peers() into a delayed work, otherwise GARP packet + * will not be sent after quick migration, and cause network disconnection. + */ +static void netvsc_send_garp(struct work_struct *w) +{ + struct net_device_context *ndev_ctx; + struct net_device *net; + struct netvsc_device *net_device; + + ndev_ctx = container_of(w, struct net_device_context, dwork.work); + net_device = hv_get_drvdata(ndev_ctx->device_ctx); + net = net_device->ndev; + netif_notify_peers(net); +} + + +static int netvsc_probe(struct hv_device *dev, + const struct hv_vmbus_device_id *dev_id) +{ + struct net_device *net = NULL; + struct net_device_context *net_device_ctx; + struct netvsc_device_info device_info; + int ret; + + net = alloc_etherdev(sizeof(struct net_device_context)); + if (!net) + return -ENOMEM; + + /* Set initial state */ + netif_carrier_off(net); + + net_device_ctx = netdev_priv(net); + net_device_ctx->device_ctx = dev; + hv_set_drvdata(dev, net); + INIT_DELAYED_WORK(&net_device_ctx->dwork, netvsc_send_garp); + + net->netdev_ops = &device_ops; + + /* TODO: Add GSO and Checksum offload */ + net->hw_features = NETIF_F_SG; + net->features = NETIF_F_SG | NETIF_F_HW_VLAN_TX; + + SET_ETHTOOL_OPS(net, ðtool_ops); + SET_NETDEV_DEV(net, &dev->device); + + ret = register_netdev(net); + if (ret != 0) { + pr_err("Unable to register netdev.\n"); + free_netdev(net); + goto out; + } + + /* Notify the netvsc driver of the new device */ + device_info.ring_size = ring_size; + ret = rndis_filter_device_add(dev, &device_info); + if (ret != 0) { + netdev_err(net, "unable to add netvsc device (ret %d)\n", ret); + unregister_netdev(net); + free_netdev(net); + hv_set_drvdata(dev, NULL); + return ret; + } + memcpy(net->dev_addr, device_info.mac_adr, ETH_ALEN); + + netif_carrier_on(net); + +out: + return ret; +} + +static int netvsc_remove(struct hv_device *dev) +{ + struct net_device *net; + struct net_device_context *ndev_ctx; + struct netvsc_device *net_device; + + net_device = hv_get_drvdata(dev); + net = net_device->ndev; + + if (net == NULL) { + dev_err(&dev->device, "No net device to remove\n"); + return 0; + } + + net_device->start_remove = true; + + ndev_ctx = netdev_priv(net); + cancel_delayed_work_sync(&ndev_ctx->dwork); + + /* Stop outbound asap */ + netif_tx_disable(net); + + unregister_netdev(net); + + /* + * Call to the vsc driver to let it know that the device is being + * removed + */ + rndis_filter_device_remove(dev); + + free_netdev(net); + return 0; +} + +static const struct hv_vmbus_device_id id_table[] = { + /* Network guid */ + { VMBUS_DEVICE(0x63, 0x51, 0x61, 0xF8, 0x3E, 0xDF, 0xc5, 0x46, + 0x91, 0x3F, 0xF2, 0xD2, 0xF9, 0x65, 0xED, 0x0E) }, + { }, +}; + +MODULE_DEVICE_TABLE(vmbus, id_table); + +/* The one and only one */ +static struct hv_driver netvsc_drv = { + .name = KBUILD_MODNAME, + .id_table = id_table, + .probe = netvsc_probe, + .remove = netvsc_remove, +}; + +static void __exit netvsc_drv_exit(void) +{ + vmbus_driver_unregister(&netvsc_drv); +} + +static int __init netvsc_drv_init(void) +{ + return vmbus_driver_register(&netvsc_drv); +} + +MODULE_LICENSE("GPL"); +MODULE_VERSION(HV_DRV_VERSION); +MODULE_DESCRIPTION("Microsoft Hyper-V network driver"); + +module_init(netvsc_drv_init); +module_exit(netvsc_drv_exit); --- linux-3.2.0.orig/drivers/net/can/flexcan.c +++ linux-3.2.0/drivers/net/can/flexcan.c @@ -933,12 +933,12 @@ u32 clock_freq = 0; if (pdev->dev.of_node) { - const u32 *clock_freq_p; + const __be32 *clock_freq_p; clock_freq_p = of_get_property(pdev->dev.of_node, "clock-frequency", NULL); if (clock_freq_p) - clock_freq = *clock_freq_p; + clock_freq = be32_to_cpup(clock_freq_p); } if (!clock_freq) { --- linux-3.2.0.orig/drivers/net/can/pch_can.c +++ linux-3.2.0/drivers/net/can/pch_can.c @@ -559,7 +559,7 @@ stats->rx_errors++; break; case PCH_CRC_ERR: - cf->data[2] |= CAN_ERR_PROT_LOC_CRC_SEQ | + cf->data[3] |= CAN_ERR_PROT_LOC_CRC_SEQ | CAN_ERR_PROT_LOC_CRC_DEL; priv->can.can_stats.bus_error++; stats->rx_errors++; --- linux-3.2.0.orig/drivers/net/can/janz-ican3.c +++ linux-3.2.0/drivers/net/can/janz-ican3.c @@ -1250,7 +1250,6 @@ */ static int ican3_reset_module(struct ican3_dev *mod) { - u8 val = 1 << mod->num; unsigned long start; u8 runold, runnew; @@ -1264,8 +1263,7 @@ runold = ioread8(mod->dpm + TARGET_RUNNING); /* reset the module */ - iowrite8(val, &mod->ctrl->reset_assert); - iowrite8(val, &mod->ctrl->reset_deassert); + iowrite8(0x00, &mod->dpmctrl->hwreset); /* wait until the module has finished resetting and is running */ start = jiffies; --- linux-3.2.0.orig/drivers/net/can/dev.c +++ linux-3.2.0/drivers/net/can/dev.c @@ -569,8 +569,7 @@ { struct can_priv *priv = netdev_priv(dev); - if (del_timer_sync(&priv->restart_timer)) - dev_put(dev); + del_timer_sync(&priv->restart_timer); can_flush_echo_skb(dev); } EXPORT_SYMBOL_GPL(close_candev); --- linux-3.2.0.orig/drivers/net/can/ti_hecc.c +++ linux-3.2.0/drivers/net/can/ti_hecc.c @@ -735,12 +735,12 @@ } if (err_status & HECC_CANES_CRCE) { hecc_set_bit(priv, HECC_CANES, HECC_CANES_CRCE); - cf->data[2] |= CAN_ERR_PROT_LOC_CRC_SEQ | + cf->data[3] |= CAN_ERR_PROT_LOC_CRC_SEQ | CAN_ERR_PROT_LOC_CRC_DEL; } if (err_status & HECC_CANES_ACKE) { hecc_set_bit(priv, HECC_CANES, HECC_CANES_ACKE); - cf->data[2] |= CAN_ERR_PROT_LOC_ACK | + cf->data[3] |= CAN_ERR_PROT_LOC_ACK | CAN_ERR_PROT_LOC_ACK_DEL; } } @@ -971,12 +971,12 @@ struct net_device *ndev = platform_get_drvdata(pdev); struct ti_hecc_priv *priv = netdev_priv(ndev); + unregister_candev(ndev); clk_disable(priv->clk); clk_put(priv->clk); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); iounmap(priv->base); release_mem_region(res->start, resource_size(res)); - unregister_candev(ndev); free_candev(ndev); platform_set_drvdata(pdev, NULL); --- linux-3.2.0.orig/drivers/net/can/mcp251x.c +++ linux-3.2.0/drivers/net/can/mcp251x.c @@ -83,6 +83,11 @@ #define INSTRUCTION_LOAD_TXB(n) (0x40 + 2 * (n)) #define INSTRUCTION_READ_RXB(n) (((n) == 0) ? 0x90 : 0x94) #define INSTRUCTION_RESET 0xC0 +#define RTS_TXB0 0x01 +#define RTS_TXB1 0x02 +#define RTS_TXB2 0x04 +#define INSTRUCTION_RTS(n) (0x80 | ((n) & 0x07)) + /* MPC251x registers */ #define CANSTAT 0x0e @@ -397,6 +402,7 @@ static void mcp251x_hw_tx(struct spi_device *spi, struct can_frame *frame, int tx_buf_idx) { + struct mcp251x_priv *priv = dev_get_drvdata(&spi->dev); u32 sid, eid, exide, rtr; u8 buf[SPI_TRANSFER_BUF_LEN]; @@ -418,7 +424,10 @@ buf[TXBDLC_OFF] = (rtr << DLC_RTR_SHIFT) | frame->can_dlc; memcpy(buf + TXBDAT_OFF, frame->data, frame->can_dlc); mcp251x_hw_tx_frame(spi, buf, frame->can_dlc, tx_buf_idx); - mcp251x_write_reg(spi, TXBCTRL(tx_buf_idx), TXBCTRL_TXREQ); + + /* use INSTRUCTION_RTS, to avoid "repeated frame problem" */ + priv->spi_tx_buf[0] = INSTRUCTION_RTS(1 << tx_buf_idx); + mcp251x_spi_trans(priv->spi, 1); } static void mcp251x_hw_rx_frame(struct spi_device *spi, u8 *buf, --- linux-3.2.0.orig/drivers/net/can/c_can/c_can.c +++ linux-3.2.0/drivers/net/can/c_can/c_can.c @@ -446,8 +446,12 @@ priv->write_reg(priv, &priv->regs->ifregs[iface].mask1, IFX_WRITE_LOW_16BIT(mask)); + + /* According to C_CAN documentation, the reserved bit + * in IFx_MASK2 register is fixed 1 + */ priv->write_reg(priv, &priv->regs->ifregs[iface].mask2, - IFX_WRITE_HIGH_16BIT(mask)); + IFX_WRITE_HIGH_16BIT(mask) | BIT(13)); priv->write_reg(priv, &priv->regs->ifregs[iface].arb1, IFX_WRITE_LOW_16BIT(id)); @@ -590,8 +594,8 @@ priv->write_reg(priv, &priv->regs->control, CONTROL_ENABLE_AR); - if (priv->can.ctrlmode & (CAN_CTRLMODE_LISTENONLY & - CAN_CTRLMODE_LOOPBACK)) { + if ((priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY) && + (priv->can.ctrlmode & CAN_CTRLMODE_LOOPBACK)) { /* loopback + silent mode : useful for hot self-test */ priv->write_reg(priv, &priv->regs->control, CONTROL_EIE | CONTROL_SIE | CONTROL_IE | CONTROL_TEST); @@ -686,7 +690,7 @@ * * We iterate from priv->tx_echo to priv->tx_next and check if the * packet has been transmitted, echo it back to the CAN framework. - * If we discover a not yet transmitted package, stop looking for more. + * If we discover a not yet transmitted packet, stop looking for more. */ static void c_can_do_tx(struct net_device *dev) { @@ -698,7 +702,7 @@ for (/* nix */; (priv->tx_next - priv->tx_echo) > 0; priv->tx_echo++) { msg_obj_no = get_tx_echo_msg_obj(priv); val = c_can_read_reg32(priv, &priv->regs->txrqst1); - if (!(val & (1 << msg_obj_no))) { + if (!(val & (1 << (msg_obj_no - 1)))) { can_get_echo_skb(dev, msg_obj_no - C_CAN_MSG_OBJ_TX_FIRST); stats->tx_bytes += priv->read_reg(priv, @@ -706,6 +710,8 @@ & IF_MCONT_DLC_MASK; stats->tx_packets++; c_can_inval_msg_object(dev, 0, msg_obj_no); + } else { + break; } } @@ -912,7 +918,7 @@ break; case LEC_ACK_ERROR: netdev_dbg(dev, "ack error\n"); - cf->data[2] |= (CAN_ERR_PROT_LOC_ACK | + cf->data[3] |= (CAN_ERR_PROT_LOC_ACK | CAN_ERR_PROT_LOC_ACK_DEL); break; case LEC_BIT1_ERROR: @@ -925,7 +931,7 @@ break; case LEC_CRC_ERROR: netdev_dbg(dev, "CRC error\n"); - cf->data[2] |= (CAN_ERR_PROT_LOC_CRC_SEQ | + cf->data[3] |= (CAN_ERR_PROT_LOC_CRC_SEQ | CAN_ERR_PROT_LOC_CRC_DEL); break; default: @@ -950,7 +956,7 @@ struct net_device *dev = napi->dev; struct c_can_priv *priv = netdev_priv(dev); - irqstatus = priv->read_reg(priv, &priv->regs->interrupt); + irqstatus = priv->irqstatus; if (!irqstatus) goto end; @@ -1028,12 +1034,11 @@ static irqreturn_t c_can_isr(int irq, void *dev_id) { - u16 irqstatus; struct net_device *dev = (struct net_device *)dev_id; struct c_can_priv *priv = netdev_priv(dev); - irqstatus = priv->read_reg(priv, &priv->regs->interrupt); - if (!irqstatus) + priv->irqstatus = priv->read_reg(priv, &priv->regs->interrupt); + if (!priv->irqstatus) return IRQ_NONE; /* disable all interrupts and schedule the NAPI */ @@ -1063,10 +1068,11 @@ goto exit_irq_fail; } + napi_enable(&priv->napi); + /* start the c_can controller */ c_can_start(dev); - napi_enable(&priv->napi); netif_start_queue(dev); return 0; --- linux-3.2.0.orig/drivers/net/can/c_can/c_can.h +++ linux-3.2.0/drivers/net/can/c_can/c_can.h @@ -76,6 +76,7 @@ unsigned int tx_next; unsigned int tx_echo; void *priv; /* for board-specific data */ + u16 irqstatus; }; struct net_device *alloc_c_can_dev(void); --- linux-3.2.0.orig/drivers/net/can/sja1000/plx_pci.c +++ linux-3.2.0/drivers/net/can/sja1000/plx_pci.c @@ -309,7 +309,7 @@ */ if ((priv->read_reg(priv, REG_CR) & REG_CR_BASICCAN_INITIAL_MASK) == REG_CR_BASICCAN_INITIAL && - (priv->read_reg(priv, REG_SR) == REG_SR_BASICCAN_INITIAL) && + (priv->read_reg(priv, SJA1000_REG_SR) == REG_SR_BASICCAN_INITIAL) && (priv->read_reg(priv, REG_IR) == REG_IR_BASICCAN_INITIAL)) flag = 1; @@ -321,7 +321,7 @@ * See states on p. 23 of the Datasheet. */ if (priv->read_reg(priv, REG_MOD) == REG_MOD_PELICAN_INITIAL && - priv->read_reg(priv, REG_SR) == REG_SR_PELICAN_INITIAL && + priv->read_reg(priv, SJA1000_REG_SR) == REG_SR_PELICAN_INITIAL && priv->read_reg(priv, REG_IR) == REG_IR_PELICAN_INITIAL) return flag; --- linux-3.2.0.orig/drivers/net/can/sja1000/sja1000.c +++ linux-3.2.0/drivers/net/can/sja1000/sja1000.c @@ -91,15 +91,20 @@ */ spin_lock_irqsave(&priv->cmdreg_lock, flags); priv->write_reg(priv, REG_CMR, val); - priv->read_reg(priv, REG_SR); + priv->read_reg(priv, SJA1000_REG_SR); spin_unlock_irqrestore(&priv->cmdreg_lock, flags); } +static int sja1000_is_absent(struct sja1000_priv *priv) +{ + return (priv->read_reg(priv, REG_MOD) == 0xFF); +} + static int sja1000_probe_chip(struct net_device *dev) { struct sja1000_priv *priv = netdev_priv(dev); - if (priv->reg_base && (priv->read_reg(priv, 0) == 0xFF)) { + if (priv->reg_base && sja1000_is_absent(priv)) { printk(KERN_INFO "%s: probing @0x%lX failed\n", DRV_NAME, dev->base_addr); return 0; @@ -492,7 +497,10 @@ while ((isrc = priv->read_reg(priv, REG_IR)) && (n < SJA1000_MAX_IRQ)) { n++; - status = priv->read_reg(priv, REG_SR); + status = priv->read_reg(priv, SJA1000_REG_SR); + /* check for absent controller due to hw unplug */ + if (status == 0xFF && sja1000_is_absent(priv)) + return IRQ_NONE; if (isrc & IRQ_WUI) dev_warn(dev->dev.parent, "wakeup interrupt\n"); @@ -508,7 +516,10 @@ /* receive interrupt */ while (status & SR_RBS) { sja1000_rx(dev); - status = priv->read_reg(priv, REG_SR); + status = priv->read_reg(priv, SJA1000_REG_SR); + /* check for absent controller */ + if (status == 0xFF && sja1000_is_absent(priv)) + return IRQ_NONE; } } if (isrc & (IRQ_DOI | IRQ_EI | IRQ_BEI | IRQ_EPI | IRQ_ALI)) { --- linux-3.2.0.orig/drivers/net/can/sja1000/sja1000.h +++ linux-3.2.0/drivers/net/can/sja1000/sja1000.h @@ -56,7 +56,7 @@ /* SJA1000 registers - manual section 6.4 (Pelican Mode) */ #define REG_MOD 0x00 #define REG_CMR 0x01 -#define REG_SR 0x02 +#define SJA1000_REG_SR 0x02 #define REG_IR 0x03 #define REG_IER 0x04 #define REG_ALC 0x0B --- linux-3.2.0.orig/drivers/net/can/sja1000/sja1000_of_platform.c +++ linux-3.2.0/drivers/net/can/sja1000/sja1000_of_platform.c @@ -94,8 +94,8 @@ struct net_device *dev; struct sja1000_priv *priv; struct resource res; - const u32 *prop; - int err, irq, res_size, prop_size; + u32 prop; + int err, irq, res_size; void __iomem *base; err = of_address_to_resource(np, 0, &res); @@ -136,27 +136,27 @@ priv->read_reg = sja1000_ofp_read_reg; priv->write_reg = sja1000_ofp_write_reg; - prop = of_get_property(np, "nxp,external-clock-frequency", &prop_size); - if (prop && (prop_size == sizeof(u32))) - priv->can.clock.freq = *prop / 2; + err = of_property_read_u32(np, "nxp,external-clock-frequency", &prop); + if (!err) + priv->can.clock.freq = prop / 2; else priv->can.clock.freq = SJA1000_OFP_CAN_CLOCK; /* default */ - prop = of_get_property(np, "nxp,tx-output-mode", &prop_size); - if (prop && (prop_size == sizeof(u32))) - priv->ocr |= *prop & OCR_MODE_MASK; + err = of_property_read_u32(np, "nxp,tx-output-mode", &prop); + if (!err) + priv->ocr |= prop & OCR_MODE_MASK; else priv->ocr |= OCR_MODE_NORMAL; /* default */ - prop = of_get_property(np, "nxp,tx-output-config", &prop_size); - if (prop && (prop_size == sizeof(u32))) - priv->ocr |= (*prop << OCR_TX_SHIFT) & OCR_TX_MASK; + err = of_property_read_u32(np, "nxp,tx-output-config", &prop); + if (!err) + priv->ocr |= (prop << OCR_TX_SHIFT) & OCR_TX_MASK; else priv->ocr |= OCR_TX0_PULLDOWN; /* default */ - prop = of_get_property(np, "nxp,clock-out-frequency", &prop_size); - if (prop && (prop_size == sizeof(u32)) && *prop) { - u32 divider = priv->can.clock.freq * 2 / *prop; + err = of_property_read_u32(np, "nxp,clock-out-frequency", &prop); + if (!err && prop) { + u32 divider = priv->can.clock.freq * 2 / prop; if (divider > 1) priv->cdr |= divider / 2 - 1; @@ -166,8 +166,7 @@ priv->cdr |= CDR_CLK_OFF; /* default */ } - prop = of_get_property(np, "nxp,no-comparator-bypass", NULL); - if (!prop) + if (!of_property_read_bool(np, "nxp,no-comparator-bypass")) priv->cdr |= CDR_CBP; /* default */ priv->irq_flags = IRQF_SHARED; --- linux-3.2.0.orig/drivers/net/can/mscan/mpc5xxx_can.c +++ linux-3.2.0/drivers/net/can/mscan/mpc5xxx_can.c @@ -181,7 +181,7 @@ if (!clock_name || !strcmp(clock_name, "sys")) { sys_clk = clk_get(&ofdev->dev, "sys_clk"); - if (!sys_clk) { + if (IS_ERR(sys_clk)) { dev_err(&ofdev->dev, "couldn't get sys_clk\n"); goto exit_unmap; } @@ -204,7 +204,7 @@ if (clocksrc < 0) { ref_clk = clk_get(&ofdev->dev, "ref_clk"); - if (!ref_clk) { + if (IS_ERR(ref_clk)) { dev_err(&ofdev->dev, "couldn't get ref_clk\n"); goto exit_unmap; } --- linux-3.2.0.orig/drivers/net/ethernet/Kconfig +++ linux-3.2.0/drivers/net/ethernet/Kconfig @@ -28,6 +28,7 @@ source "drivers/net/ethernet/adi/Kconfig" source "drivers/net/ethernet/broadcom/Kconfig" source "drivers/net/ethernet/brocade/Kconfig" +source "drivers/net/ethernet/calxeda/Kconfig" source "drivers/net/ethernet/chelsio/Kconfig" source "drivers/net/ethernet/cirrus/Kconfig" source "drivers/net/ethernet/cisco/Kconfig" --- linux-3.2.0.orig/drivers/net/ethernet/dnet.c +++ linux-3.2.0/drivers/net/ethernet/dnet.c @@ -804,9 +804,9 @@ static void dnet_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); - strcpy(info->bus_info, "0"); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, "0", sizeof(info->bus_info)); } static const struct ethtool_ops dnet_ethtool_ops = { --- linux-3.2.0.orig/drivers/net/ethernet/Makefile +++ linux-3.2.0/drivers/net/ethernet/Makefile @@ -14,6 +14,7 @@ obj-$(CONFIG_NET_BFIN) += adi/ obj-$(CONFIG_NET_VENDOR_BROADCOM) += broadcom/ obj-$(CONFIG_NET_VENDOR_BROCADE) += brocade/ +obj-$(CONFIG_NET_CALXEDA_XGMAC) += calxeda/ obj-$(CONFIG_NET_VENDOR_CHELSIO) += chelsio/ obj-$(CONFIG_NET_VENDOR_CIRRUS) += cirrus/ obj-$(CONFIG_NET_VENDOR_CISCO) += cisco/ --- linux-3.2.0.orig/drivers/net/ethernet/jme.c +++ linux-3.2.0/drivers/net/ethernet/jme.c @@ -2328,19 +2328,11 @@ ((new_mtu) < IPV6_MIN_MTU)) return -EINVAL; - if (new_mtu > 4000) { - jme->reg_rxcs &= ~RXCS_FIFOTHNP; - jme->reg_rxcs |= RXCS_FIFOTHNP_64QW; - jme_restart_rx_engine(jme); - } else { - jme->reg_rxcs &= ~RXCS_FIFOTHNP; - jme->reg_rxcs |= RXCS_FIFOTHNP_128QW; - jme_restart_rx_engine(jme); - } netdev->mtu = new_mtu; netdev_update_features(netdev); + jme_restart_rx_engine(jme); jme_reset_link(jme); return 0; --- linux-3.2.0.orig/drivers/net/ethernet/jme.h +++ linux-3.2.0/drivers/net/ethernet/jme.h @@ -730,7 +730,7 @@ RXCS_RETRYCNT_60 = 0x00000F00, RXCS_DEFAULT = RXCS_FIFOTHTP_128T | - RXCS_FIFOTHNP_128QW | + RXCS_FIFOTHNP_16QW | RXCS_DMAREQSZ_128B | RXCS_RETRYGAP_256ns | RXCS_RETRYCNT_32, --- linux-3.2.0.orig/drivers/net/ethernet/fealnx.c +++ linux-3.2.0/drivers/net/ethernet/fealnx.c @@ -1818,9 +1818,9 @@ { struct netdev_private *np = netdev_priv(dev); - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); - strcpy(info->bus_info, pci_name(np->pci_dev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(np->pci_dev), sizeof(info->bus_info)); } static int netdev_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) --- linux-3.2.0.orig/drivers/net/ethernet/8390/ne.c +++ linux-3.2.0/drivers/net/ethernet/8390/ne.c @@ -814,6 +814,7 @@ dev->irq = irq[this_dev]; dev->mem_end = bad[this_dev]; } + SET_NETDEV_DEV(dev, &pdev->dev); err = do_ne_probe(dev); if (err) { free_netdev(dev); --- linux-3.2.0.orig/drivers/net/ethernet/8390/ne2k-pci.c +++ linux-3.2.0/drivers/net/ethernet/8390/ne2k-pci.c @@ -639,9 +639,9 @@ struct ei_device *ei = netdev_priv(dev); struct pci_dev *pci_dev = (struct pci_dev *) ei->priv; - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); - strcpy(info->bus_info, pci_name(pci_dev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(pci_dev), sizeof(info->bus_info)); } static const struct ethtool_ops ne2k_pci_ethtool_ops = { --- linux-3.2.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ linux-3.2.0/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1174,6 +1174,7 @@ priv->hw->desc->prepare_tx_desc(desc, 0, len, csum_insertion); wmb(); priv->hw->desc->set_tx_owner(desc); + wmb(); } /* Interrupt on completition only for the latest segment */ @@ -1189,6 +1190,7 @@ /* To avoid raise condition */ priv->hw->desc->set_tx_owner(first); + wmb(); priv->cur_tx++; @@ -1252,6 +1254,7 @@ } wmb(); priv->hw->desc->set_rx_owner(p + entry); + wmb(); } } --- linux-3.2.0.orig/drivers/net/ethernet/stmicro/stmmac/mmc_core.c +++ linux-3.2.0/drivers/net/ethernet/stmicro/stmmac/mmc_core.c @@ -21,8 +21,9 @@ Author: Giuseppe Cavallaro *******************************************************************************/ - +#include #include +#include #include "mmc.h" /* MAC Management Counters register offset */ --- linux-3.2.0.orig/drivers/net/ethernet/calxeda/Kconfig +++ linux-3.2.0/drivers/net/ethernet/calxeda/Kconfig @@ -0,0 +1,7 @@ +config NET_CALXEDA_XGMAC + tristate "Calxeda 1G/10G XGMAC Ethernet driver" + + select CRC32 + help + This is the driver for the XGMAC Ethernet IP block found on Calxeda + Highbank platforms. --- linux-3.2.0.orig/drivers/net/ethernet/calxeda/Makefile +++ linux-3.2.0/drivers/net/ethernet/calxeda/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_NET_CALXEDA_XGMAC) += xgmac.o --- linux-3.2.0.orig/drivers/net/ethernet/calxeda/xgmac.c +++ linux-3.2.0/drivers/net/ethernet/calxeda/xgmac.c @@ -0,0 +1,1927 @@ +/* + * Copyright 2010-2011 Calxeda, Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* XGMAC Register definitions */ +#define XGMAC_CONTROL 0x00000000 /* MAC Configuration */ +#define XGMAC_FRAME_FILTER 0x00000004 /* MAC Frame Filter */ +#define XGMAC_FLOW_CTRL 0x00000018 /* MAC Flow Control */ +#define XGMAC_VLAN_TAG 0x0000001C /* VLAN Tags */ +#define XGMAC_VERSION 0x00000020 /* Version */ +#define XGMAC_VLAN_INCL 0x00000024 /* VLAN tag for tx frames */ +#define XGMAC_LPI_CTRL 0x00000028 /* LPI Control and Status */ +#define XGMAC_LPI_TIMER 0x0000002C /* LPI Timers Control */ +#define XGMAC_TX_PACE 0x00000030 /* Transmit Pace and Stretch */ +#define XGMAC_VLAN_HASH 0x00000034 /* VLAN Hash Table */ +#define XGMAC_DEBUG 0x00000038 /* Debug */ +#define XGMAC_INT_STAT 0x0000003C /* Interrupt and Control */ +#define XGMAC_ADDR_HIGH(reg) (0x00000040 + ((reg) * 8)) +#define XGMAC_ADDR_LOW(reg) (0x00000044 + ((reg) * 8)) +#define XGMAC_HASH(n) (0x00000300 + (n) * 4) /* HASH table regs */ +#define XGMAC_NUM_HASH 16 +#define XGMAC_OMR 0x00000400 +#define XGMAC_REMOTE_WAKE 0x00000700 /* Remote Wake-Up Frm Filter */ +#define XGMAC_PMT 0x00000704 /* PMT Control and Status */ +#define XGMAC_MMC_CTRL 0x00000800 /* XGMAC MMC Control */ +#define XGMAC_MMC_INTR_RX 0x00000804 /* Recieve Interrupt */ +#define XGMAC_MMC_INTR_TX 0x00000808 /* Transmit Interrupt */ +#define XGMAC_MMC_INTR_MASK_RX 0x0000080c /* Recieve Interrupt Mask */ +#define XGMAC_MMC_INTR_MASK_TX 0x00000810 /* Transmit Interrupt Mask */ + +/* Hardware TX Statistics Counters */ +#define XGMAC_MMC_TXOCTET_GB_LO 0x00000814 +#define XGMAC_MMC_TXOCTET_GB_HI 0x00000818 +#define XGMAC_MMC_TXFRAME_GB_LO 0x0000081C +#define XGMAC_MMC_TXFRAME_GB_HI 0x00000820 +#define XGMAC_MMC_TXBCFRAME_G 0x00000824 +#define XGMAC_MMC_TXMCFRAME_G 0x0000082C +#define XGMAC_MMC_TXUCFRAME_GB 0x00000864 +#define XGMAC_MMC_TXMCFRAME_GB 0x0000086C +#define XGMAC_MMC_TXBCFRAME_GB 0x00000874 +#define XGMAC_MMC_TXUNDERFLOW 0x0000087C +#define XGMAC_MMC_TXOCTET_G_LO 0x00000884 +#define XGMAC_MMC_TXOCTET_G_HI 0x00000888 +#define XGMAC_MMC_TXFRAME_G_LO 0x0000088C +#define XGMAC_MMC_TXFRAME_G_HI 0x00000890 +#define XGMAC_MMC_TXPAUSEFRAME 0x00000894 +#define XGMAC_MMC_TXVLANFRAME 0x0000089C + +/* Hardware RX Statistics Counters */ +#define XGMAC_MMC_RXFRAME_GB_LO 0x00000900 +#define XGMAC_MMC_RXFRAME_GB_HI 0x00000904 +#define XGMAC_MMC_RXOCTET_GB_LO 0x00000908 +#define XGMAC_MMC_RXOCTET_GB_HI 0x0000090C +#define XGMAC_MMC_RXOCTET_G_LO 0x00000910 +#define XGMAC_MMC_RXOCTET_G_HI 0x00000914 +#define XGMAC_MMC_RXBCFRAME_G 0x00000918 +#define XGMAC_MMC_RXMCFRAME_G 0x00000920 +#define XGMAC_MMC_RXCRCERR 0x00000928 +#define XGMAC_MMC_RXRUNT 0x00000930 +#define XGMAC_MMC_RXJABBER 0x00000934 +#define XGMAC_MMC_RXUCFRAME_G 0x00000970 +#define XGMAC_MMC_RXLENGTHERR 0x00000978 +#define XGMAC_MMC_RXPAUSEFRAME 0x00000988 +#define XGMAC_MMC_RXOVERFLOW 0x00000990 +#define XGMAC_MMC_RXVLANFRAME 0x00000998 +#define XGMAC_MMC_RXWATCHDOG 0x000009a0 + +/* DMA Control and Status Registers */ +#define XGMAC_DMA_BUS_MODE 0x00000f00 /* Bus Mode */ +#define XGMAC_DMA_TX_POLL 0x00000f04 /* Transmit Poll Demand */ +#define XGMAC_DMA_RX_POLL 0x00000f08 /* Received Poll Demand */ +#define XGMAC_DMA_RX_BASE_ADDR 0x00000f0c /* Receive List Base */ +#define XGMAC_DMA_TX_BASE_ADDR 0x00000f10 /* Transmit List Base */ +#define XGMAC_DMA_STATUS 0x00000f14 /* Status Register */ +#define XGMAC_DMA_CONTROL 0x00000f18 /* Ctrl (Operational Mode) */ +#define XGMAC_DMA_INTR_ENA 0x00000f1c /* Interrupt Enable */ +#define XGMAC_DMA_MISS_FRAME_CTR 0x00000f20 /* Missed Frame Counter */ +#define XGMAC_DMA_RI_WDOG_TIMER 0x00000f24 /* RX Intr Watchdog Timer */ +#define XGMAC_DMA_AXI_BUS 0x00000f28 /* AXI Bus Mode */ +#define XGMAC_DMA_AXI_STATUS 0x00000f2C /* AXI Status */ +#define XGMAC_DMA_HW_FEATURE 0x00000f58 /* Enabled Hardware Features */ + +#define XGMAC_ADDR_AE 0x80000000 +#define XGMAC_MAX_FILTER_ADDR 31 + +/* PMT Control and Status */ +#define XGMAC_PMT_POINTER_RESET 0x80000000 +#define XGMAC_PMT_GLBL_UNICAST 0x00000200 +#define XGMAC_PMT_WAKEUP_RX_FRM 0x00000040 +#define XGMAC_PMT_MAGIC_PKT 0x00000020 +#define XGMAC_PMT_WAKEUP_FRM_EN 0x00000004 +#define XGMAC_PMT_MAGIC_PKT_EN 0x00000002 +#define XGMAC_PMT_POWERDOWN 0x00000001 + +#define XGMAC_CONTROL_SPD 0x40000000 /* Speed control */ +#define XGMAC_CONTROL_SPD_MASK 0x60000000 +#define XGMAC_CONTROL_SPD_1G 0x60000000 +#define XGMAC_CONTROL_SPD_2_5G 0x40000000 +#define XGMAC_CONTROL_SPD_10G 0x00000000 +#define XGMAC_CONTROL_SARC 0x10000000 /* Source Addr Insert/Replace */ +#define XGMAC_CONTROL_SARK_MASK 0x18000000 +#define XGMAC_CONTROL_CAR 0x04000000 /* CRC Addition/Replacement */ +#define XGMAC_CONTROL_CAR_MASK 0x06000000 +#define XGMAC_CONTROL_DP 0x01000000 /* Disable Padding */ +#define XGMAC_CONTROL_WD 0x00800000 /* Disable Watchdog on rx */ +#define XGMAC_CONTROL_JD 0x00400000 /* Jabber disable */ +#define XGMAC_CONTROL_JE 0x00100000 /* Jumbo frame */ +#define XGMAC_CONTROL_LM 0x00001000 /* Loop-back mode */ +#define XGMAC_CONTROL_IPC 0x00000400 /* Checksum Offload */ +#define XGMAC_CONTROL_ACS 0x00000080 /* Automatic Pad/FCS Strip */ +#define XGMAC_CONTROL_DDIC 0x00000010 /* Disable Deficit Idle Count */ +#define XGMAC_CONTROL_TE 0x00000008 /* Transmitter Enable */ +#define XGMAC_CONTROL_RE 0x00000004 /* Receiver Enable */ + +/* XGMAC Frame Filter defines */ +#define XGMAC_FRAME_FILTER_PR 0x00000001 /* Promiscuous Mode */ +#define XGMAC_FRAME_FILTER_HUC 0x00000002 /* Hash Unicast */ +#define XGMAC_FRAME_FILTER_HMC 0x00000004 /* Hash Multicast */ +#define XGMAC_FRAME_FILTER_DAIF 0x00000008 /* DA Inverse Filtering */ +#define XGMAC_FRAME_FILTER_PM 0x00000010 /* Pass all multicast */ +#define XGMAC_FRAME_FILTER_DBF 0x00000020 /* Disable Broadcast frames */ +#define XGMAC_FRAME_FILTER_SAIF 0x00000100 /* Inverse Filtering */ +#define XGMAC_FRAME_FILTER_SAF 0x00000200 /* Source Address Filter */ +#define XGMAC_FRAME_FILTER_HPF 0x00000400 /* Hash or perfect Filter */ +#define XGMAC_FRAME_FILTER_VHF 0x00000800 /* VLAN Hash Filter */ +#define XGMAC_FRAME_FILTER_VPF 0x00001000 /* VLAN Perfect Filter */ +#define XGMAC_FRAME_FILTER_RA 0x80000000 /* Receive all mode */ + +/* XGMAC FLOW CTRL defines */ +#define XGMAC_FLOW_CTRL_PT_MASK 0xffff0000 /* Pause Time Mask */ +#define XGMAC_FLOW_CTRL_PT_SHIFT 16 +#define XGMAC_FLOW_CTRL_DZQP 0x00000080 /* Disable Zero-Quanta Phase */ +#define XGMAC_FLOW_CTRL_PLT 0x00000020 /* Pause Low Threshhold */ +#define XGMAC_FLOW_CTRL_PLT_MASK 0x00000030 /* PLT MASK */ +#define XGMAC_FLOW_CTRL_UP 0x00000008 /* Unicast Pause Frame Detect */ +#define XGMAC_FLOW_CTRL_RFE 0x00000004 /* Rx Flow Control Enable */ +#define XGMAC_FLOW_CTRL_TFE 0x00000002 /* Tx Flow Control Enable */ +#define XGMAC_FLOW_CTRL_FCB_BPA 0x00000001 /* Flow Control Busy ... */ + +/* XGMAC_INT_STAT reg */ +#define XGMAC_INT_STAT_PMT 0x0080 /* PMT Interrupt Status */ +#define XGMAC_INT_STAT_LPI 0x0040 /* LPI Interrupt Status */ + +/* DMA Bus Mode register defines */ +#define DMA_BUS_MODE_SFT_RESET 0x00000001 /* Software Reset */ +#define DMA_BUS_MODE_DSL_MASK 0x0000007c /* Descriptor Skip Length */ +#define DMA_BUS_MODE_DSL_SHIFT 2 /* (in DWORDS) */ +#define DMA_BUS_MODE_ATDS 0x00000080 /* Alternate Descriptor Size */ + +/* Programmable burst length */ +#define DMA_BUS_MODE_PBL_MASK 0x00003f00 /* Programmable Burst Len */ +#define DMA_BUS_MODE_PBL_SHIFT 8 +#define DMA_BUS_MODE_FB 0x00010000 /* Fixed burst */ +#define DMA_BUS_MODE_RPBL_MASK 0x003e0000 /* Rx-Programmable Burst Len */ +#define DMA_BUS_MODE_RPBL_SHIFT 17 +#define DMA_BUS_MODE_USP 0x00800000 +#define DMA_BUS_MODE_8PBL 0x01000000 +#define DMA_BUS_MODE_AAL 0x02000000 + +/* DMA Bus Mode register defines */ +#define DMA_BUS_PR_RATIO_MASK 0x0000c000 /* Rx/Tx priority ratio */ +#define DMA_BUS_PR_RATIO_SHIFT 14 +#define DMA_BUS_FB 0x00010000 /* Fixed Burst */ + +/* DMA Control register defines */ +#define DMA_CONTROL_ST 0x00002000 /* Start/Stop Transmission */ +#define DMA_CONTROL_SR 0x00000002 /* Start/Stop Receive */ +#define DMA_CONTROL_DFF 0x01000000 /* Disable flush of rx frames */ + +/* DMA Normal interrupt */ +#define DMA_INTR_ENA_NIE 0x00010000 /* Normal Summary */ +#define DMA_INTR_ENA_AIE 0x00008000 /* Abnormal Summary */ +#define DMA_INTR_ENA_ERE 0x00004000 /* Early Receive */ +#define DMA_INTR_ENA_FBE 0x00002000 /* Fatal Bus Error */ +#define DMA_INTR_ENA_ETE 0x00000400 /* Early Transmit */ +#define DMA_INTR_ENA_RWE 0x00000200 /* Receive Watchdog */ +#define DMA_INTR_ENA_RSE 0x00000100 /* Receive Stopped */ +#define DMA_INTR_ENA_RUE 0x00000080 /* Receive Buffer Unavailable */ +#define DMA_INTR_ENA_RIE 0x00000040 /* Receive Interrupt */ +#define DMA_INTR_ENA_UNE 0x00000020 /* Tx Underflow */ +#define DMA_INTR_ENA_OVE 0x00000010 /* Receive Overflow */ +#define DMA_INTR_ENA_TJE 0x00000008 /* Transmit Jabber */ +#define DMA_INTR_ENA_TUE 0x00000004 /* Transmit Buffer Unavail */ +#define DMA_INTR_ENA_TSE 0x00000002 /* Transmit Stopped */ +#define DMA_INTR_ENA_TIE 0x00000001 /* Transmit Interrupt */ + +#define DMA_INTR_NORMAL (DMA_INTR_ENA_NIE | DMA_INTR_ENA_RIE | \ + DMA_INTR_ENA_TUE | DMA_INTR_ENA_TIE) + +#define DMA_INTR_ABNORMAL (DMA_INTR_ENA_AIE | DMA_INTR_ENA_FBE | \ + DMA_INTR_ENA_RWE | DMA_INTR_ENA_RSE | \ + DMA_INTR_ENA_RUE | DMA_INTR_ENA_UNE | \ + DMA_INTR_ENA_OVE | DMA_INTR_ENA_TJE | \ + DMA_INTR_ENA_TSE) + +/* DMA default interrupt mask */ +#define DMA_INTR_DEFAULT_MASK (DMA_INTR_NORMAL | DMA_INTR_ABNORMAL) + +/* DMA Status register defines */ +#define DMA_STATUS_GMI 0x08000000 /* MMC interrupt */ +#define DMA_STATUS_GLI 0x04000000 /* GMAC Line interface int */ +#define DMA_STATUS_EB_MASK 0x00380000 /* Error Bits Mask */ +#define DMA_STATUS_EB_TX_ABORT 0x00080000 /* Error Bits - TX Abort */ +#define DMA_STATUS_EB_RX_ABORT 0x00100000 /* Error Bits - RX Abort */ +#define DMA_STATUS_TS_MASK 0x00700000 /* Transmit Process State */ +#define DMA_STATUS_TS_SHIFT 20 +#define DMA_STATUS_RS_MASK 0x000e0000 /* Receive Process State */ +#define DMA_STATUS_RS_SHIFT 17 +#define DMA_STATUS_NIS 0x00010000 /* Normal Interrupt Summary */ +#define DMA_STATUS_AIS 0x00008000 /* Abnormal Interrupt Summary */ +#define DMA_STATUS_ERI 0x00004000 /* Early Receive Interrupt */ +#define DMA_STATUS_FBI 0x00002000 /* Fatal Bus Error Interrupt */ +#define DMA_STATUS_ETI 0x00000400 /* Early Transmit Interrupt */ +#define DMA_STATUS_RWT 0x00000200 /* Receive Watchdog Timeout */ +#define DMA_STATUS_RPS 0x00000100 /* Receive Process Stopped */ +#define DMA_STATUS_RU 0x00000080 /* Receive Buffer Unavailable */ +#define DMA_STATUS_RI 0x00000040 /* Receive Interrupt */ +#define DMA_STATUS_UNF 0x00000020 /* Transmit Underflow */ +#define DMA_STATUS_OVF 0x00000010 /* Receive Overflow */ +#define DMA_STATUS_TJT 0x00000008 /* Transmit Jabber Timeout */ +#define DMA_STATUS_TU 0x00000004 /* Transmit Buffer Unavail */ +#define DMA_STATUS_TPS 0x00000002 /* Transmit Process Stopped */ +#define DMA_STATUS_TI 0x00000001 /* Transmit Interrupt */ + +/* Common MAC defines */ +#define MAC_ENABLE_TX 0x00000008 /* Transmitter Enable */ +#define MAC_ENABLE_RX 0x00000004 /* Receiver Enable */ + +/* XGMAC Operation Mode Register */ +#define XGMAC_OMR_TSF 0x00200000 /* TX FIFO Store and Forward */ +#define XGMAC_OMR_FTF 0x00100000 /* Flush Transmit FIFO */ +#define XGMAC_OMR_TTC 0x00020000 /* Transmit Threshhold Ctrl */ +#define XGMAC_OMR_TTC_MASK 0x00030000 +#define XGMAC_OMR_RFD 0x00006000 /* FC Deactivation Threshhold */ +#define XGMAC_OMR_RFD_MASK 0x00007000 /* FC Deact Threshhold MASK */ +#define XGMAC_OMR_RFA 0x00000600 /* FC Activation Threshhold */ +#define XGMAC_OMR_RFA_MASK 0x00000E00 /* FC Act Threshhold MASK */ +#define XGMAC_OMR_EFC 0x00000100 /* Enable Hardware FC */ +#define XGMAC_OMR_FEF 0x00000080 /* Forward Error Frames */ +#define XGMAC_OMR_DT 0x00000040 /* Drop TCP/IP csum Errors */ +#define XGMAC_OMR_RSF 0x00000020 /* RX FIFO Store and Forward */ +#define XGMAC_OMR_RTC_256 0x00000018 /* RX Threshhold Ctrl */ +#define XGMAC_OMR_RTC_MASK 0x00000018 /* RX Threshhold Ctrl MASK */ + +/* XGMAC HW Features Register */ +#define DMA_HW_FEAT_TXCOESEL 0x00010000 /* TX Checksum offload */ + +#define XGMAC_MMC_CTRL_CNT_FRZ 0x00000008 + +/* XGMAC Descriptor Defines */ +#define MAX_DESC_BUF_SZ (0x2000 - 8) + +#define RXDESC_EXT_STATUS 0x00000001 +#define RXDESC_CRC_ERR 0x00000002 +#define RXDESC_RX_ERR 0x00000008 +#define RXDESC_RX_WDOG 0x00000010 +#define RXDESC_FRAME_TYPE 0x00000020 +#define RXDESC_GIANT_FRAME 0x00000080 +#define RXDESC_LAST_SEG 0x00000100 +#define RXDESC_FIRST_SEG 0x00000200 +#define RXDESC_VLAN_FRAME 0x00000400 +#define RXDESC_OVERFLOW_ERR 0x00000800 +#define RXDESC_LENGTH_ERR 0x00001000 +#define RXDESC_SA_FILTER_FAIL 0x00002000 +#define RXDESC_DESCRIPTOR_ERR 0x00004000 +#define RXDESC_ERROR_SUMMARY 0x00008000 +#define RXDESC_FRAME_LEN_OFFSET 16 +#define RXDESC_FRAME_LEN_MASK 0x3fff0000 +#define RXDESC_DA_FILTER_FAIL 0x40000000 + +#define RXDESC1_END_RING 0x00008000 + +#define RXDESC_IP_PAYLOAD_MASK 0x00000003 +#define RXDESC_IP_PAYLOAD_UDP 0x00000001 +#define RXDESC_IP_PAYLOAD_TCP 0x00000002 +#define RXDESC_IP_PAYLOAD_ICMP 0x00000003 +#define RXDESC_IP_HEADER_ERR 0x00000008 +#define RXDESC_IP_PAYLOAD_ERR 0x00000010 +#define RXDESC_IPV4_PACKET 0x00000040 +#define RXDESC_IPV6_PACKET 0x00000080 +#define TXDESC_UNDERFLOW_ERR 0x00000001 +#define TXDESC_JABBER_TIMEOUT 0x00000002 +#define TXDESC_LOCAL_FAULT 0x00000004 +#define TXDESC_REMOTE_FAULT 0x00000008 +#define TXDESC_VLAN_FRAME 0x00000010 +#define TXDESC_FRAME_FLUSHED 0x00000020 +#define TXDESC_IP_HEADER_ERR 0x00000040 +#define TXDESC_PAYLOAD_CSUM_ERR 0x00000080 +#define TXDESC_ERROR_SUMMARY 0x00008000 +#define TXDESC_SA_CTRL_INSERT 0x00040000 +#define TXDESC_SA_CTRL_REPLACE 0x00080000 +#define TXDESC_2ND_ADDR_CHAINED 0x00100000 +#define TXDESC_END_RING 0x00200000 +#define TXDESC_CSUM_IP 0x00400000 +#define TXDESC_CSUM_IP_PAYLD 0x00800000 +#define TXDESC_CSUM_ALL 0x00C00000 +#define TXDESC_CRC_EN_REPLACE 0x01000000 +#define TXDESC_CRC_EN_APPEND 0x02000000 +#define TXDESC_DISABLE_PAD 0x04000000 +#define TXDESC_FIRST_SEG 0x10000000 +#define TXDESC_LAST_SEG 0x20000000 +#define TXDESC_INTERRUPT 0x40000000 + +#define DESC_OWN 0x80000000 +#define DESC_BUFFER1_SZ_MASK 0x00001fff +#define DESC_BUFFER2_SZ_MASK 0x1fff0000 +#define DESC_BUFFER2_SZ_OFFSET 16 + +struct xgmac_dma_desc { + __le32 flags; + __le32 buf_size; + __le32 buf1_addr; /* Buffer 1 Address Pointer */ + __le32 buf2_addr; /* Buffer 2 Address Pointer */ + __le32 ext_status; + __le32 res[3]; +}; + +struct xgmac_extra_stats { + /* Transmit errors */ + unsigned long tx_jabber; + unsigned long tx_frame_flushed; + unsigned long tx_payload_error; + unsigned long tx_ip_header_error; + unsigned long tx_local_fault; + unsigned long tx_remote_fault; + /* Receive errors */ + unsigned long rx_watchdog; + unsigned long rx_da_filter_fail; + unsigned long rx_sa_filter_fail; + unsigned long rx_payload_error; + unsigned long rx_ip_header_error; + /* Tx/Rx IRQ errors */ + unsigned long tx_undeflow; + unsigned long tx_process_stopped; + unsigned long rx_buf_unav; + unsigned long rx_process_stopped; + unsigned long tx_early; + unsigned long fatal_bus_error; +}; + +struct xgmac_priv { + struct xgmac_dma_desc *dma_rx; + struct sk_buff **rx_skbuff; + unsigned int rx_tail; + unsigned int rx_head; + + struct xgmac_dma_desc *dma_tx; + struct sk_buff **tx_skbuff; + unsigned int tx_head; + unsigned int tx_tail; + + void __iomem *base; + struct sk_buff_head rx_recycle; + unsigned int dma_buf_sz; + dma_addr_t dma_rx_phy; + dma_addr_t dma_tx_phy; + + struct net_device *dev; + struct device *device; + struct napi_struct napi; + + struct xgmac_extra_stats xstats; + + spinlock_t stats_lock; + int pmt_irq; + char rx_pause; + char tx_pause; + int wolopts; +}; + +/* XGMAC Configuration Settings */ +#define MAX_MTU 9000 +#define PAUSE_TIME 0x400 + +#define DMA_RX_RING_SZ 256 +#define DMA_TX_RING_SZ 128 +/* minimum number of free TX descriptors required to wake up TX process */ +#define TX_THRESH (DMA_TX_RING_SZ/4) + +/* DMA descriptor ring helpers */ +#define dma_ring_incr(n, s) (((n) + 1) & ((s) - 1)) +#define dma_ring_space(h, t, s) CIRC_SPACE(h, t, s) +#define dma_ring_cnt(h, t, s) CIRC_CNT(h, t, s) + +/* XGMAC Descriptor Access Helpers */ +static inline void desc_set_buf_len(struct xgmac_dma_desc *p, u32 buf_sz) +{ + if (buf_sz > MAX_DESC_BUF_SZ) + p->buf_size = cpu_to_le32(MAX_DESC_BUF_SZ | + (buf_sz - MAX_DESC_BUF_SZ) << DESC_BUFFER2_SZ_OFFSET); + else + p->buf_size = cpu_to_le32(buf_sz); +} + +static inline int desc_get_buf_len(struct xgmac_dma_desc *p) +{ + u32 len = cpu_to_le32(p->flags); + return (len & DESC_BUFFER1_SZ_MASK) + + ((len & DESC_BUFFER2_SZ_MASK) >> DESC_BUFFER2_SZ_OFFSET); +} + +static inline void desc_init_rx_desc(struct xgmac_dma_desc *p, int ring_size, + int buf_sz) +{ + struct xgmac_dma_desc *end = p + ring_size - 1; + + memset(p, 0, sizeof(*p) * ring_size); + + for (; p <= end; p++) + desc_set_buf_len(p, buf_sz); + + end->buf_size |= cpu_to_le32(RXDESC1_END_RING); +} + +static inline void desc_init_tx_desc(struct xgmac_dma_desc *p, u32 ring_size) +{ + memset(p, 0, sizeof(*p) * ring_size); + p[ring_size - 1].flags = cpu_to_le32(TXDESC_END_RING); +} + +static inline int desc_get_owner(struct xgmac_dma_desc *p) +{ + return le32_to_cpu(p->flags) & DESC_OWN; +} + +static inline void desc_set_rx_owner(struct xgmac_dma_desc *p) +{ + /* Clear all fields and set the owner */ + p->flags = cpu_to_le32(DESC_OWN); +} + +static inline void desc_set_tx_owner(struct xgmac_dma_desc *p, u32 flags) +{ + u32 tmpflags = le32_to_cpu(p->flags); + tmpflags &= TXDESC_END_RING; + tmpflags |= flags | DESC_OWN; + p->flags = cpu_to_le32(tmpflags); +} + +static inline int desc_get_tx_ls(struct xgmac_dma_desc *p) +{ + return le32_to_cpu(p->flags) & TXDESC_LAST_SEG; +} + +static inline u32 desc_get_buf_addr(struct xgmac_dma_desc *p) +{ + return le32_to_cpu(p->buf1_addr); +} + +static inline void desc_set_buf_addr(struct xgmac_dma_desc *p, + u32 paddr, int len) +{ + p->buf1_addr = cpu_to_le32(paddr); + if (len > MAX_DESC_BUF_SZ) + p->buf2_addr = cpu_to_le32(paddr + MAX_DESC_BUF_SZ); +} + +static inline void desc_set_buf_addr_and_size(struct xgmac_dma_desc *p, + u32 paddr, int len) +{ + desc_set_buf_len(p, len); + desc_set_buf_addr(p, paddr, len); +} + +static inline int desc_get_rx_frame_len(struct xgmac_dma_desc *p) +{ + u32 data = le32_to_cpu(p->flags); + u32 len = (data & RXDESC_FRAME_LEN_MASK) >> RXDESC_FRAME_LEN_OFFSET; + if (data & RXDESC_FRAME_TYPE) + len -= ETH_FCS_LEN; + + return len; +} + +static void xgmac_dma_flush_tx_fifo(void __iomem *ioaddr) +{ + int timeout = 1000; + u32 reg = readl(ioaddr + XGMAC_OMR); + writel(reg | XGMAC_OMR_FTF, ioaddr + XGMAC_OMR); + + while ((timeout-- > 0) && readl(ioaddr + XGMAC_OMR) & XGMAC_OMR_FTF) + udelay(1); +} + +static int desc_get_tx_status(struct xgmac_priv *priv, struct xgmac_dma_desc *p) +{ + struct xgmac_extra_stats *x = &priv->xstats; + u32 status = le32_to_cpu(p->flags); + + if (!(status & TXDESC_ERROR_SUMMARY)) + return 0; + + netdev_dbg(priv->dev, "tx desc error = 0x%08x\n", status); + if (status & TXDESC_JABBER_TIMEOUT) + x->tx_jabber++; + if (status & TXDESC_FRAME_FLUSHED) + x->tx_frame_flushed++; + if (status & TXDESC_UNDERFLOW_ERR) + xgmac_dma_flush_tx_fifo(priv->base); + if (status & TXDESC_IP_HEADER_ERR) + x->tx_ip_header_error++; + if (status & TXDESC_LOCAL_FAULT) + x->tx_local_fault++; + if (status & TXDESC_REMOTE_FAULT) + x->tx_remote_fault++; + if (status & TXDESC_PAYLOAD_CSUM_ERR) + x->tx_payload_error++; + + return -1; +} + +static int desc_get_rx_status(struct xgmac_priv *priv, struct xgmac_dma_desc *p) +{ + struct xgmac_extra_stats *x = &priv->xstats; + int ret = CHECKSUM_UNNECESSARY; + u32 status = le32_to_cpu(p->flags); + u32 ext_status = le32_to_cpu(p->ext_status); + + if (status & RXDESC_DA_FILTER_FAIL) { + netdev_dbg(priv->dev, "XGMAC RX : Dest Address filter fail\n"); + x->rx_da_filter_fail++; + return -1; + } + + /* Check if packet has checksum already */ + if ((status & RXDESC_FRAME_TYPE) && (status & RXDESC_EXT_STATUS) && + !(ext_status & RXDESC_IP_PAYLOAD_MASK)) + ret = CHECKSUM_NONE; + + netdev_dbg(priv->dev, "rx status - frame type=%d, csum = %d, ext stat %08x\n", + (status & RXDESC_FRAME_TYPE) ? 1 : 0, ret, ext_status); + + if (!(status & RXDESC_ERROR_SUMMARY)) + return ret; + + /* Handle any errors */ + if (status & (RXDESC_DESCRIPTOR_ERR | RXDESC_OVERFLOW_ERR | + RXDESC_GIANT_FRAME | RXDESC_LENGTH_ERR | RXDESC_CRC_ERR)) + return -1; + + if (status & RXDESC_EXT_STATUS) { + if (ext_status & RXDESC_IP_HEADER_ERR) + x->rx_ip_header_error++; + if (ext_status & RXDESC_IP_PAYLOAD_ERR) + x->rx_payload_error++; + netdev_dbg(priv->dev, "IP checksum error - stat %08x\n", + ext_status); + return CHECKSUM_NONE; + } + + return ret; +} + +static inline void xgmac_mac_enable(void __iomem *ioaddr) +{ + u32 value = readl(ioaddr + XGMAC_CONTROL); + value |= MAC_ENABLE_RX | MAC_ENABLE_TX; + writel(value, ioaddr + XGMAC_CONTROL); + + value = readl(ioaddr + XGMAC_DMA_CONTROL); + value |= DMA_CONTROL_ST | DMA_CONTROL_SR; + writel(value, ioaddr + XGMAC_DMA_CONTROL); +} + +static inline void xgmac_mac_disable(void __iomem *ioaddr) +{ + u32 value = readl(ioaddr + XGMAC_DMA_CONTROL); + value &= ~(DMA_CONTROL_ST | DMA_CONTROL_SR); + writel(value, ioaddr + XGMAC_DMA_CONTROL); + + value = readl(ioaddr + XGMAC_CONTROL); + value &= ~(MAC_ENABLE_TX | MAC_ENABLE_RX); + writel(value, ioaddr + XGMAC_CONTROL); +} + +static void xgmac_set_mac_addr(void __iomem *ioaddr, unsigned char *addr, + int num) +{ + u32 data; + + data = (addr[5] << 8) | addr[4] | (num ? XGMAC_ADDR_AE : 0); + writel(data, ioaddr + XGMAC_ADDR_HIGH(num)); + data = (addr[3] << 24) | (addr[2] << 16) | (addr[1] << 8) | addr[0]; + writel(data, ioaddr + XGMAC_ADDR_LOW(num)); +} + +static void xgmac_get_mac_addr(void __iomem *ioaddr, unsigned char *addr, + int num) +{ + u32 hi_addr, lo_addr; + + /* Read the MAC address from the hardware */ + hi_addr = readl(ioaddr + XGMAC_ADDR_HIGH(num)); + lo_addr = readl(ioaddr + XGMAC_ADDR_LOW(num)); + + /* Extract the MAC address from the high and low words */ + addr[0] = lo_addr & 0xff; + addr[1] = (lo_addr >> 8) & 0xff; + addr[2] = (lo_addr >> 16) & 0xff; + addr[3] = (lo_addr >> 24) & 0xff; + addr[4] = hi_addr & 0xff; + addr[5] = (hi_addr >> 8) & 0xff; +} + +static int xgmac_set_flow_ctrl(struct xgmac_priv *priv, int rx, int tx) +{ + u32 reg; + unsigned int flow = 0; + + priv->rx_pause = rx; + priv->tx_pause = tx; + + if (rx || tx) { + if (rx) + flow |= XGMAC_FLOW_CTRL_RFE; + if (tx) + flow |= XGMAC_FLOW_CTRL_TFE; + + flow |= XGMAC_FLOW_CTRL_PLT | XGMAC_FLOW_CTRL_UP; + flow |= (PAUSE_TIME << XGMAC_FLOW_CTRL_PT_SHIFT); + + writel(flow, priv->base + XGMAC_FLOW_CTRL); + + reg = readl(priv->base + XGMAC_OMR); + reg |= XGMAC_OMR_EFC; + writel(reg, priv->base + XGMAC_OMR); + } else { + writel(0, priv->base + XGMAC_FLOW_CTRL); + + reg = readl(priv->base + XGMAC_OMR); + reg &= ~XGMAC_OMR_EFC; + writel(reg, priv->base + XGMAC_OMR); + } + + return 0; +} + +static void xgmac_rx_refill(struct xgmac_priv *priv) +{ + struct xgmac_dma_desc *p; + dma_addr_t paddr; + + while (dma_ring_space(priv->rx_head, priv->rx_tail, DMA_RX_RING_SZ) > 1) { + int entry = priv->rx_head; + struct sk_buff *skb; + + p = priv->dma_rx + entry; + + if (priv->rx_skbuff[entry] == NULL) { + skb = __skb_dequeue(&priv->rx_recycle); + if (skb == NULL) + skb = netdev_alloc_skb(priv->dev, priv->dma_buf_sz); + if (unlikely(skb == NULL)) + break; + + priv->rx_skbuff[entry] = skb; + paddr = dma_map_single(priv->device, skb->data, + priv->dma_buf_sz, DMA_FROM_DEVICE); + desc_set_buf_addr(p, paddr, priv->dma_buf_sz); + } + + netdev_dbg(priv->dev, "rx ring: head %d, tail %d\n", + priv->rx_head, priv->rx_tail); + + priv->rx_head = dma_ring_incr(priv->rx_head, DMA_RX_RING_SZ); + desc_set_rx_owner(p); + } +} + +/** + * init_xgmac_dma_desc_rings - init the RX/TX descriptor rings + * @dev: net device structure + * Description: this function initializes the DMA RX/TX descriptors + * and allocates the socket buffers. + */ +static int xgmac_dma_desc_rings_init(struct net_device *dev) +{ + struct xgmac_priv *priv = netdev_priv(dev); + unsigned int bfsize; + + /* Set the Buffer size according to the MTU; + * indeed, in case of jumbo we need to bump-up the buffer sizes. + */ + bfsize = ALIGN(dev->mtu + ETH_HLEN + ETH_FCS_LEN + NET_IP_ALIGN + 64, + 64); + + netdev_dbg(priv->dev, "mtu [%d] bfsize [%d]\n", dev->mtu, bfsize); + + priv->rx_skbuff = kzalloc(sizeof(struct sk_buff *) * DMA_RX_RING_SZ, + GFP_KERNEL); + if (!priv->rx_skbuff) + return -ENOMEM; + + priv->dma_rx = dma_alloc_coherent(priv->device, + DMA_RX_RING_SZ * + sizeof(struct xgmac_dma_desc), + &priv->dma_rx_phy, + GFP_KERNEL); + if (!priv->dma_rx) + goto err_dma_rx; + + priv->tx_skbuff = kzalloc(sizeof(struct sk_buff *) * DMA_TX_RING_SZ, + GFP_KERNEL); + if (!priv->tx_skbuff) + goto err_tx_skb; + + priv->dma_tx = dma_alloc_coherent(priv->device, + DMA_TX_RING_SZ * + sizeof(struct xgmac_dma_desc), + &priv->dma_tx_phy, + GFP_KERNEL); + if (!priv->dma_tx) + goto err_dma_tx; + + netdev_dbg(priv->dev, "DMA desc rings: virt addr (Rx %p, " + "Tx %p)\n\tDMA phy addr (Rx 0x%08x, Tx 0x%08x)\n", + priv->dma_rx, priv->dma_tx, + (unsigned int)priv->dma_rx_phy, (unsigned int)priv->dma_tx_phy); + + priv->rx_tail = 0; + priv->rx_head = 0; + priv->dma_buf_sz = bfsize; + desc_init_rx_desc(priv->dma_rx, DMA_RX_RING_SZ, priv->dma_buf_sz); + xgmac_rx_refill(priv); + + priv->tx_tail = 0; + priv->tx_head = 0; + desc_init_tx_desc(priv->dma_tx, DMA_TX_RING_SZ); + + writel(priv->dma_tx_phy, priv->base + XGMAC_DMA_TX_BASE_ADDR); + writel(priv->dma_rx_phy, priv->base + XGMAC_DMA_RX_BASE_ADDR); + + return 0; + +err_dma_tx: + kfree(priv->tx_skbuff); +err_tx_skb: + dma_free_coherent(priv->device, + DMA_RX_RING_SZ * sizeof(struct xgmac_dma_desc), + priv->dma_rx, priv->dma_rx_phy); +err_dma_rx: + kfree(priv->rx_skbuff); + return -ENOMEM; +} + +static void xgmac_free_rx_skbufs(struct xgmac_priv *priv) +{ + int i; + struct xgmac_dma_desc *p; + + if (!priv->rx_skbuff) + return; + + for (i = 0; i < DMA_RX_RING_SZ; i++) { + if (priv->rx_skbuff[i] == NULL) + continue; + + p = priv->dma_rx + i; + dma_unmap_single(priv->device, desc_get_buf_addr(p), + priv->dma_buf_sz, DMA_FROM_DEVICE); + dev_kfree_skb_any(priv->rx_skbuff[i]); + priv->rx_skbuff[i] = NULL; + } +} + +static void xgmac_free_tx_skbufs(struct xgmac_priv *priv) +{ + int i, f; + struct xgmac_dma_desc *p; + + if (!priv->tx_skbuff) + return; + + for (i = 0; i < DMA_TX_RING_SZ; i++) { + if (priv->tx_skbuff[i] == NULL) + continue; + + p = priv->dma_tx + i; + dma_unmap_single(priv->device, desc_get_buf_addr(p), + desc_get_buf_len(p), DMA_TO_DEVICE); + + for (f = 0; f < skb_shinfo(priv->tx_skbuff[i])->nr_frags; f++) { + p = priv->dma_tx + i++; + dma_unmap_page(priv->device, desc_get_buf_addr(p), + desc_get_buf_len(p), DMA_TO_DEVICE); + } + + dev_kfree_skb_any(priv->tx_skbuff[i]); + priv->tx_skbuff[i] = NULL; + } +} + +static void xgmac_free_dma_desc_rings(struct xgmac_priv *priv) +{ + /* Release the DMA TX/RX socket buffers */ + xgmac_free_rx_skbufs(priv); + xgmac_free_tx_skbufs(priv); + + /* Free the consistent memory allocated for descriptor rings */ + if (priv->dma_tx) { + dma_free_coherent(priv->device, + DMA_TX_RING_SZ * sizeof(struct xgmac_dma_desc), + priv->dma_tx, priv->dma_tx_phy); + priv->dma_tx = NULL; + } + if (priv->dma_rx) { + dma_free_coherent(priv->device, + DMA_RX_RING_SZ * sizeof(struct xgmac_dma_desc), + priv->dma_rx, priv->dma_rx_phy); + priv->dma_rx = NULL; + } + kfree(priv->rx_skbuff); + priv->rx_skbuff = NULL; + kfree(priv->tx_skbuff); + priv->tx_skbuff = NULL; +} + +/** + * xgmac_tx: + * @priv: private driver structure + * Description: it reclaims resources after transmission completes. + */ +static void xgmac_tx_complete(struct xgmac_priv *priv) +{ + int i; + void __iomem *ioaddr = priv->base; + + writel(DMA_STATUS_TU | DMA_STATUS_NIS, ioaddr + XGMAC_DMA_STATUS); + + while (dma_ring_cnt(priv->tx_head, priv->tx_tail, DMA_TX_RING_SZ)) { + unsigned int entry = priv->tx_tail; + struct sk_buff *skb = priv->tx_skbuff[entry]; + struct xgmac_dma_desc *p = priv->dma_tx + entry; + + /* Check if the descriptor is owned by the DMA. */ + if (desc_get_owner(p)) + break; + + /* Verify tx error by looking at the last segment */ + if (desc_get_tx_ls(p)) + desc_get_tx_status(priv, p); + + netdev_dbg(priv->dev, "tx ring: curr %d, dirty %d\n", + priv->tx_head, priv->tx_tail); + + dma_unmap_single(priv->device, desc_get_buf_addr(p), + desc_get_buf_len(p), DMA_TO_DEVICE); + + priv->tx_skbuff[entry] = NULL; + priv->tx_tail = dma_ring_incr(entry, DMA_TX_RING_SZ); + + if (!skb) { + continue; + } + + for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { + entry = priv->tx_tail = dma_ring_incr(priv->tx_tail, + DMA_TX_RING_SZ); + p = priv->dma_tx + priv->tx_tail; + + dma_unmap_page(priv->device, desc_get_buf_addr(p), + desc_get_buf_len(p), DMA_TO_DEVICE); + } + + /* + * If there's room in the queue (limit it to size) + * we add this skb back into the pool, + * if it's the right size. + */ + if ((skb_queue_len(&priv->rx_recycle) < + DMA_RX_RING_SZ) && + skb_recycle_check(skb, priv->dma_buf_sz)) + __skb_queue_head(&priv->rx_recycle, skb); + else + dev_kfree_skb(skb); + } + + if (dma_ring_space(priv->tx_head, priv->tx_tail, DMA_TX_RING_SZ) > + TX_THRESH) + netif_wake_queue(priv->dev); +} + +/** + * xgmac_tx_err: + * @priv: pointer to the private device structure + * Description: it cleans the descriptors and restarts the transmission + * in case of errors. + */ +static void xgmac_tx_err(struct xgmac_priv *priv) +{ + u32 reg, value, inten; + + netif_stop_queue(priv->dev); + + inten = readl(priv->base + XGMAC_DMA_INTR_ENA); + writel(0, priv->base + XGMAC_DMA_INTR_ENA); + + reg = readl(priv->base + XGMAC_DMA_CONTROL); + writel(reg & ~DMA_CONTROL_ST, priv->base + XGMAC_DMA_CONTROL); + do { + value = readl(priv->base + XGMAC_DMA_STATUS) & 0x700000; + } while (value && (value != 0x600000)); + + xgmac_free_tx_skbufs(priv); + desc_init_tx_desc(priv->dma_tx, DMA_TX_RING_SZ); + priv->tx_tail = 0; + priv->tx_head = 0; + writel(priv->dma_tx_phy, priv->base + XGMAC_DMA_TX_BASE_ADDR); + writel(reg | DMA_CONTROL_ST, priv->base + XGMAC_DMA_CONTROL); + + writel(DMA_STATUS_TU | DMA_STATUS_TPS | DMA_STATUS_NIS | DMA_STATUS_AIS, + priv->base + XGMAC_DMA_STATUS); + writel(inten, priv->base + XGMAC_DMA_INTR_ENA); + + netif_wake_queue(priv->dev); +} + +static int xgmac_hw_init(struct net_device *dev) +{ + u32 value, ctrl; + int limit; + struct xgmac_priv *priv = netdev_priv(dev); + void __iomem *ioaddr = priv->base; + + /* Save the ctrl register value */ + ctrl = readl(ioaddr + XGMAC_CONTROL) & XGMAC_CONTROL_SPD_MASK; + + /* SW reset */ + value = DMA_BUS_MODE_SFT_RESET; + writel(value, ioaddr + XGMAC_DMA_BUS_MODE); + limit = 15000; + while (limit-- && + (readl(ioaddr + XGMAC_DMA_BUS_MODE) & DMA_BUS_MODE_SFT_RESET)) + cpu_relax(); + if (limit < 0) + return -EBUSY; + + value = (0x10 << DMA_BUS_MODE_PBL_SHIFT) | + (0x10 << DMA_BUS_MODE_RPBL_SHIFT) | + DMA_BUS_MODE_FB | DMA_BUS_MODE_ATDS | DMA_BUS_MODE_AAL; + writel(value, ioaddr + XGMAC_DMA_BUS_MODE); + + /* Enable interrupts */ + writel(DMA_INTR_DEFAULT_MASK, ioaddr + XGMAC_DMA_STATUS); + writel(DMA_INTR_DEFAULT_MASK, ioaddr + XGMAC_DMA_INTR_ENA); + + /* XGMAC requires AXI bus init. This is a 'magic number' for now */ + writel(0x0077000E, ioaddr + XGMAC_DMA_AXI_BUS); + + ctrl |= XGMAC_CONTROL_DDIC | XGMAC_CONTROL_JE | XGMAC_CONTROL_ACS | + XGMAC_CONTROL_CAR; + if (dev->features & NETIF_F_RXCSUM) + ctrl |= XGMAC_CONTROL_IPC; + writel(ctrl, ioaddr + XGMAC_CONTROL); + + value = DMA_CONTROL_DFF; + writel(value, ioaddr + XGMAC_DMA_CONTROL); + + /* Set the HW DMA mode and the COE */ + writel(XGMAC_OMR_TSF | XGMAC_OMR_RFD | XGMAC_OMR_RFA | + XGMAC_OMR_RTC_256, + ioaddr + XGMAC_OMR); + + /* Reset the MMC counters */ + writel(1, ioaddr + XGMAC_MMC_CTRL); + return 0; +} + +/** + * xgmac_open - open entry point of the driver + * @dev : pointer to the device structure. + * Description: + * This function is the open entry point of the driver. + * Return value: + * 0 on success and an appropriate (-)ve integer as defined in errno.h + * file on failure. + */ +static int xgmac_open(struct net_device *dev) +{ + int ret; + struct xgmac_priv *priv = netdev_priv(dev); + void __iomem *ioaddr = priv->base; + + /* Check that the MAC address is valid. If its not, refuse + * to bring the device up. The user must specify an + * address using the following linux command: + * ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx */ + if (!is_valid_ether_addr(dev->dev_addr)) { + random_ether_addr(dev->dev_addr); + netdev_dbg(priv->dev, "generated random MAC address %pM\n", + dev->dev_addr); + } + + skb_queue_head_init(&priv->rx_recycle); + memset(&priv->xstats, 0, sizeof(struct xgmac_extra_stats)); + + /* Initialize the XGMAC and descriptors */ + xgmac_hw_init(dev); + xgmac_set_mac_addr(ioaddr, dev->dev_addr, 0); + xgmac_set_flow_ctrl(priv, priv->rx_pause, priv->tx_pause); + + ret = xgmac_dma_desc_rings_init(dev); + if (ret < 0) + return ret; + + /* Enable the MAC Rx/Tx */ + xgmac_mac_enable(ioaddr); + + napi_enable(&priv->napi); + netif_start_queue(dev); + + return 0; +} + +/** + * xgmac_release - close entry point of the driver + * @dev : device pointer. + * Description: + * This is the stop entry point of the driver. + */ +static int xgmac_stop(struct net_device *dev) +{ + struct xgmac_priv *priv = netdev_priv(dev); + + netif_stop_queue(dev); + + if (readl(priv->base + XGMAC_DMA_INTR_ENA)) + napi_disable(&priv->napi); + + writel(0, priv->base + XGMAC_DMA_INTR_ENA); + skb_queue_purge(&priv->rx_recycle); + + /* Disable the MAC core */ + xgmac_mac_disable(priv->base); + + /* Release and free the Rx/Tx resources */ + xgmac_free_dma_desc_rings(priv); + + return 0; +} + +/** + * xgmac_xmit: + * @skb : the socket buffer + * @dev : device pointer + * Description : Tx entry point of the driver. + */ +static netdev_tx_t xgmac_xmit(struct sk_buff *skb, struct net_device *dev) +{ + struct xgmac_priv *priv = netdev_priv(dev); + unsigned int entry; + int i; + int nfrags = skb_shinfo(skb)->nr_frags; + struct xgmac_dma_desc *desc, *first; + unsigned int desc_flags; + unsigned int len; + dma_addr_t paddr; + + if (dma_ring_space(priv->tx_head, priv->tx_tail, DMA_TX_RING_SZ) < + (nfrags + 1)) { + writel(DMA_INTR_DEFAULT_MASK | DMA_INTR_ENA_TIE, + priv->base + XGMAC_DMA_INTR_ENA); + netif_stop_queue(dev); + return NETDEV_TX_BUSY; + } + + desc_flags = (skb->ip_summed == CHECKSUM_PARTIAL) ? + TXDESC_CSUM_ALL : 0; + entry = priv->tx_head; + desc = priv->dma_tx + entry; + first = desc; + + len = skb_headlen(skb); + paddr = dma_map_single(priv->device, skb->data, len, DMA_TO_DEVICE); + if (dma_mapping_error(priv->device, paddr)) { + dev_kfree_skb(skb); + return -EIO; + } + priv->tx_skbuff[entry] = skb; + desc_set_buf_addr_and_size(desc, paddr, len); + + for (i = 0; i < nfrags; i++) { + skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; + + len = frag->size; + + paddr = skb_frag_dma_map(priv->device, frag, 0, len, + DMA_TO_DEVICE); + if (dma_mapping_error(priv->device, paddr)) { + dev_kfree_skb(skb); + return -EIO; + } + + entry = dma_ring_incr(entry, DMA_TX_RING_SZ); + desc = priv->dma_tx + entry; + priv->tx_skbuff[entry] = NULL; + + desc_set_buf_addr_and_size(desc, paddr, len); + if (i < (nfrags - 1)) + desc_set_tx_owner(desc, desc_flags); + } + + /* Interrupt on completition only for the latest segment */ + if (desc != first) + desc_set_tx_owner(desc, desc_flags | + TXDESC_LAST_SEG | TXDESC_INTERRUPT); + else + desc_flags |= TXDESC_LAST_SEG | TXDESC_INTERRUPT; + + /* Set owner on first desc last to avoid race condition */ + wmb(); + desc_set_tx_owner(first, desc_flags | TXDESC_FIRST_SEG); + + priv->tx_head = dma_ring_incr(entry, DMA_TX_RING_SZ); + + writel(1, priv->base + XGMAC_DMA_TX_POLL); + + return NETDEV_TX_OK; +} + +static int xgmac_rx(struct xgmac_priv *priv, int limit) +{ + unsigned int entry; + unsigned int count = 0; + struct xgmac_dma_desc *p; + + while (count < limit) { + int ip_checksum; + struct sk_buff *skb; + int frame_len; + + writel(DMA_STATUS_RI | DMA_STATUS_NIS, + priv->base + XGMAC_DMA_STATUS); + + entry = priv->rx_tail; + p = priv->dma_rx + entry; + if (desc_get_owner(p)) + break; + + count++; + priv->rx_tail = dma_ring_incr(priv->rx_tail, DMA_RX_RING_SZ); + + /* read the status of the incoming frame */ + ip_checksum = desc_get_rx_status(priv, p); + if (ip_checksum < 0) + continue; + + skb = priv->rx_skbuff[entry]; + if (unlikely(!skb)) { + netdev_err(priv->dev, "Inconsistent Rx descriptor chain\n"); + break; + } + priv->rx_skbuff[entry] = NULL; + + frame_len = desc_get_rx_frame_len(p); + netdev_dbg(priv->dev, "RX frame size %d, COE status: %d\n", + frame_len, ip_checksum); + + skb_put(skb, frame_len); + dma_unmap_single(priv->device, desc_get_buf_addr(p), + frame_len, DMA_FROM_DEVICE); + + skb->protocol = eth_type_trans(skb, priv->dev); + skb->ip_summed = ip_checksum; + if (ip_checksum == CHECKSUM_NONE) + netif_receive_skb(skb); + else + napi_gro_receive(&priv->napi, skb); + } + + xgmac_rx_refill(priv); + + writel(1, priv->base + XGMAC_DMA_RX_POLL); + + return count; +} + +/** + * xgmac_poll - xgmac poll method (NAPI) + * @napi : pointer to the napi structure. + * @budget : maximum number of packets that the current CPU can receive from + * all interfaces. + * Description : + * This function implements the the reception process. + * Also it runs the TX completion thread + */ +static int xgmac_poll(struct napi_struct *napi, int budget) +{ + struct xgmac_priv *priv = container_of(napi, + struct xgmac_priv, napi); + int work_done = 0; + + xgmac_tx_complete(priv); + work_done = xgmac_rx(priv, budget); + + if (work_done < budget) { + napi_complete(napi); + writel(DMA_INTR_DEFAULT_MASK, priv->base + XGMAC_DMA_INTR_ENA); + } + return work_done; +} + +/** + * xgmac_tx_timeout + * @dev : Pointer to net device structure + * Description: this function is called when a packet transmission fails to + * complete within a reasonable tmrate. The driver will mark the error in the + * netdev structure and arrange for the device to be reset to a sane state + * in order to transmit a new packet. + */ +static void xgmac_tx_timeout(struct net_device *dev) +{ + struct xgmac_priv *priv = netdev_priv(dev); + + /* Clear Tx resources and restart transmitting again */ + xgmac_tx_err(priv); +} + +/** + * xgmac_set_rx_mode - entry point for multicast addressing + * @dev : pointer to the device structure + * Description: + * This function is a driver entry point which gets called by the kernel + * whenever multicast addresses must be enabled/disabled. + * Return value: + * void. + */ +static void xgmac_set_rx_mode(struct net_device *dev) +{ + int i; + struct xgmac_priv *priv = netdev_priv(dev); + void __iomem *ioaddr = priv->base; + unsigned int value = 0; + u32 hash_filter[XGMAC_NUM_HASH]; + int reg = 1; + struct netdev_hw_addr *ha; + bool use_hash = false; + + netdev_dbg(priv->dev, "# mcasts %d, # unicast %d\n", + netdev_mc_count(dev), netdev_uc_count(dev)); + + if (dev->flags & IFF_PROMISC) { + writel(XGMAC_FRAME_FILTER_PR, ioaddr + XGMAC_FRAME_FILTER); + return; + } + + memset(hash_filter, 0, sizeof(hash_filter)); + + if (netdev_uc_count(dev) > XGMAC_MAX_FILTER_ADDR) { + use_hash = true; + value |= XGMAC_FRAME_FILTER_HUC | XGMAC_FRAME_FILTER_HPF; + } + netdev_for_each_uc_addr(ha, dev) { + if (use_hash) { + u32 bit_nr = ~ether_crc(ETH_ALEN, ha->addr) >> 23; + + /* The most significant 4 bits determine the register to + * use (H/L) while the other 5 bits determine the bit + * within the register. */ + hash_filter[bit_nr >> 5] |= 1 << (bit_nr & 31); + } else { + xgmac_set_mac_addr(ioaddr, ha->addr, reg); + reg++; + } + } + + if (dev->flags & IFF_ALLMULTI) { + value |= XGMAC_FRAME_FILTER_PM; + goto out; + } + + if ((netdev_mc_count(dev) + reg - 1) > XGMAC_MAX_FILTER_ADDR) { + use_hash = true; + value |= XGMAC_FRAME_FILTER_HMC | XGMAC_FRAME_FILTER_HPF; + } + netdev_for_each_mc_addr(ha, dev) { + if (use_hash) { + u32 bit_nr = ~ether_crc(ETH_ALEN, ha->addr) >> 23; + + /* The most significant 4 bits determine the register to + * use (H/L) while the other 5 bits determine the bit + * within the register. */ + hash_filter[bit_nr >> 5] |= 1 << (bit_nr & 31); + } else { + xgmac_set_mac_addr(ioaddr, ha->addr, reg); + reg++; + } + } + +out: + for (i = 0; i < XGMAC_NUM_HASH; i++) + writel(hash_filter[i], ioaddr + XGMAC_HASH(i)); + + writel(value, ioaddr + XGMAC_FRAME_FILTER); +} + +/** + * xgmac_change_mtu - entry point to change MTU size for the device. + * @dev : device pointer. + * @new_mtu : the new MTU size for the device. + * Description: the Maximum Transfer Unit (MTU) is used by the network layer + * to drive packet transmission. Ethernet has an MTU of 1500 octets + * (ETH_DATA_LEN). This value can be changed with ifconfig. + * Return value: + * 0 on success and an appropriate (-)ve integer as defined in errno.h + * file on failure. + */ +static int xgmac_change_mtu(struct net_device *dev, int new_mtu) +{ + struct xgmac_priv *priv = netdev_priv(dev); + int old_mtu; + + if ((new_mtu < 46) || (new_mtu > MAX_MTU)) { + netdev_err(priv->dev, "invalid MTU, max MTU is: %d\n", MAX_MTU); + return -EINVAL; + } + + old_mtu = dev->mtu; + dev->mtu = new_mtu; + + /* return early if the buffer sizes will not change */ + if (old_mtu <= ETH_DATA_LEN && new_mtu <= ETH_DATA_LEN) + return 0; + if (old_mtu == new_mtu) + return 0; + + /* Stop everything, get ready to change the MTU */ + if (!netif_running(dev)) + return 0; + + /* Bring the interface down and then back up */ + xgmac_stop(dev); + return xgmac_open(dev); +} + +static irqreturn_t xgmac_pmt_interrupt(int irq, void *dev_id) +{ + u32 intr_status; + struct net_device *dev = (struct net_device *)dev_id; + struct xgmac_priv *priv = netdev_priv(dev); + void __iomem *ioaddr = priv->base; + + intr_status = readl(ioaddr + XGMAC_INT_STAT); + if (intr_status & XGMAC_INT_STAT_PMT) { + netdev_dbg(priv->dev, "received Magic frame\n"); + /* clear the PMT bits 5 and 6 by reading the PMT */ + readl(ioaddr + XGMAC_PMT); + } + return IRQ_HANDLED; +} + +static irqreturn_t xgmac_interrupt(int irq, void *dev_id) +{ + u32 intr_status; + bool tx_err = false; + struct net_device *dev = (struct net_device *)dev_id; + struct xgmac_priv *priv = netdev_priv(dev); + struct xgmac_extra_stats *x = &priv->xstats; + + /* read the status register (CSR5) */ + intr_status = readl(priv->base + XGMAC_DMA_STATUS); + intr_status &= readl(priv->base + XGMAC_DMA_INTR_ENA); + writel(intr_status, priv->base + XGMAC_DMA_STATUS); + + /* It displays the DMA process states (CSR5 register) */ + /* ABNORMAL interrupts */ + if (unlikely(intr_status & DMA_STATUS_AIS)) { + if (intr_status & DMA_STATUS_TJT) { + netdev_err(priv->dev, "transmit jabber\n"); + x->tx_jabber++; + } + if (intr_status & DMA_STATUS_RU) + x->rx_buf_unav++; + if (intr_status & DMA_STATUS_RPS) { + netdev_err(priv->dev, "receive process stopped\n"); + x->rx_process_stopped++; + } + if (intr_status & DMA_STATUS_ETI) { + netdev_err(priv->dev, "transmit early interrupt\n"); + x->tx_early++; + } + if (intr_status & DMA_STATUS_TPS) { + netdev_err(priv->dev, "transmit process stopped\n"); + x->tx_process_stopped++; + tx_err = true; + } + if (intr_status & DMA_STATUS_FBI) { + netdev_err(priv->dev, "fatal bus error\n"); + x->fatal_bus_error++; + tx_err = true; + } + + if (tx_err) + xgmac_tx_err(priv); + } + + /* TX/RX NORMAL interrupts */ + if (intr_status & (DMA_STATUS_RI | DMA_STATUS_TU)) { + writel(DMA_INTR_ABNORMAL, priv->base + XGMAC_DMA_INTR_ENA); + napi_schedule(&priv->napi); + } + + return IRQ_HANDLED; +} + +#ifdef CONFIG_NET_POLL_CONTROLLER +/* Polling receive - used by NETCONSOLE and other diagnostic tools + * to allow network I/O with interrupts disabled. */ +static void xgmac_poll_controller(struct net_device *dev) +{ + disable_irq(dev->irq); + xgmac_interrupt(dev->irq, dev); + enable_irq(dev->irq); +} +#endif + +struct rtnl_link_stats64 * +xgmac_get_stats64(struct net_device *dev, + struct rtnl_link_stats64 *storage) +{ + struct xgmac_priv *priv = netdev_priv(dev); + void __iomem *base = priv->base; + u32 count; + + spin_lock_bh(&priv->stats_lock); + writel(XGMAC_MMC_CTRL_CNT_FRZ, base + XGMAC_MMC_CTRL); + + storage->rx_bytes = readl(base + XGMAC_MMC_RXOCTET_G_LO); + storage->rx_bytes |= (u64)(readl(base + XGMAC_MMC_RXOCTET_G_HI)) << 32; + + storage->rx_packets = readl(base + XGMAC_MMC_RXFRAME_GB_LO); + storage->multicast = readl(base + XGMAC_MMC_RXMCFRAME_G); + storage->rx_crc_errors = readl(base + XGMAC_MMC_RXCRCERR); + storage->rx_length_errors = readl(base + XGMAC_MMC_RXLENGTHERR); + storage->rx_missed_errors = readl(base + XGMAC_MMC_RXOVERFLOW); + + storage->tx_bytes = readl(base + XGMAC_MMC_TXOCTET_G_LO); + storage->tx_bytes |= (u64)(readl(base + XGMAC_MMC_TXOCTET_G_HI)) << 32; + + count = readl(base + XGMAC_MMC_TXFRAME_GB_LO); + storage->tx_errors = count - readl(base + XGMAC_MMC_TXFRAME_G_LO); + storage->tx_packets = count; + storage->tx_fifo_errors = readl(base + XGMAC_MMC_TXUNDERFLOW); + + writel(0, base + XGMAC_MMC_CTRL); + spin_unlock_bh(&priv->stats_lock); + return storage; +} + +static int xgmac_set_mac_address(struct net_device *dev, void *p) +{ + struct xgmac_priv *priv = netdev_priv(dev); + void __iomem *ioaddr = priv->base; + struct sockaddr *addr = p; + + if (!is_valid_ether_addr(addr->sa_data)) + return -EADDRNOTAVAIL; + + memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); + + xgmac_set_mac_addr(ioaddr, dev->dev_addr, 0); + + return 0; +} + +static int xgmac_set_features(struct net_device *dev, u32 features) +{ + u32 ctrl; + struct xgmac_priv *priv = netdev_priv(dev); + void __iomem *ioaddr = priv->base; + u32 changed = dev->features ^ features; + + if (!(changed & NETIF_F_RXCSUM)) + return 0; + + ctrl = readl(ioaddr + XGMAC_CONTROL); + if (features & NETIF_F_RXCSUM) + ctrl |= XGMAC_CONTROL_IPC; + else + ctrl &= ~XGMAC_CONTROL_IPC; + writel(ctrl, ioaddr + XGMAC_CONTROL); + + return 0; +} + +static const struct net_device_ops xgmac_netdev_ops = { + .ndo_open = xgmac_open, + .ndo_start_xmit = xgmac_xmit, + .ndo_stop = xgmac_stop, + .ndo_change_mtu = xgmac_change_mtu, + .ndo_set_rx_mode = xgmac_set_rx_mode, + .ndo_tx_timeout = xgmac_tx_timeout, + .ndo_get_stats64 = xgmac_get_stats64, +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = xgmac_poll_controller, +#endif + .ndo_set_mac_address = xgmac_set_mac_address, + .ndo_set_features = xgmac_set_features, +}; + +static int xgmac_ethtool_getsettings(struct net_device *dev, + struct ethtool_cmd *cmd) +{ + cmd->autoneg = 0; + cmd->duplex = DUPLEX_FULL; + ethtool_cmd_speed_set(cmd, 10000); + cmd->supported = 0; + cmd->advertising = 0; + cmd->transceiver = XCVR_INTERNAL; + return 0; +} + +static void xgmac_get_pauseparam(struct net_device *netdev, + struct ethtool_pauseparam *pause) +{ + struct xgmac_priv *priv = netdev_priv(netdev); + + pause->rx_pause = priv->rx_pause; + pause->tx_pause = priv->tx_pause; +} + +static int xgmac_set_pauseparam(struct net_device *netdev, + struct ethtool_pauseparam *pause) +{ + struct xgmac_priv *priv = netdev_priv(netdev); + + if (pause->autoneg) + return -EINVAL; + + return xgmac_set_flow_ctrl(priv, pause->rx_pause, pause->tx_pause); +} + +struct xgmac_stats { + char stat_string[ETH_GSTRING_LEN]; + int stat_offset; + bool is_reg; +}; + +#define XGMAC_STAT(m) \ + { #m, offsetof(struct xgmac_priv, xstats.m), false } +#define XGMAC_HW_STAT(m, reg_offset) \ + { #m, reg_offset, true } + +static const struct xgmac_stats xgmac_gstrings_stats[] = { + XGMAC_STAT(tx_frame_flushed), + XGMAC_STAT(tx_payload_error), + XGMAC_STAT(tx_ip_header_error), + XGMAC_STAT(tx_local_fault), + XGMAC_STAT(tx_remote_fault), + XGMAC_STAT(tx_early), + XGMAC_STAT(tx_process_stopped), + XGMAC_STAT(tx_jabber), + XGMAC_STAT(rx_buf_unav), + XGMAC_STAT(rx_process_stopped), + XGMAC_STAT(rx_payload_error), + XGMAC_STAT(rx_ip_header_error), + XGMAC_STAT(rx_da_filter_fail), + XGMAC_STAT(rx_sa_filter_fail), + XGMAC_STAT(fatal_bus_error), + XGMAC_HW_STAT(rx_watchdog, XGMAC_MMC_RXWATCHDOG), + XGMAC_HW_STAT(tx_vlan, XGMAC_MMC_TXVLANFRAME), + XGMAC_HW_STAT(rx_vlan, XGMAC_MMC_RXVLANFRAME), + XGMAC_HW_STAT(tx_pause, XGMAC_MMC_TXPAUSEFRAME), + XGMAC_HW_STAT(rx_pause, XGMAC_MMC_RXPAUSEFRAME), +}; +#define XGMAC_STATS_LEN ARRAY_SIZE(xgmac_gstrings_stats) + +static void xgmac_get_ethtool_stats(struct net_device *dev, + struct ethtool_stats *dummy, + u64 *data) +{ + struct xgmac_priv *priv = netdev_priv(dev); + void *p = priv; + int i; + + for (i = 0; i < XGMAC_STATS_LEN; i++) { + if (xgmac_gstrings_stats[i].is_reg) + *data++ = readl(priv->base + + xgmac_gstrings_stats[i].stat_offset); + else + *data++ = *(u32 *)(p + + xgmac_gstrings_stats[i].stat_offset); + } +} + +static int xgmac_get_sset_count(struct net_device *netdev, int sset) +{ + switch (sset) { + case ETH_SS_STATS: + return XGMAC_STATS_LEN; + default: + return -EINVAL; + } +} + +static void xgmac_get_strings(struct net_device *dev, u32 stringset, + u8 *data) +{ + int i; + u8 *p = data; + + switch (stringset) { + case ETH_SS_STATS: + for (i = 0; i < XGMAC_STATS_LEN; i++) { + memcpy(p, xgmac_gstrings_stats[i].stat_string, + ETH_GSTRING_LEN); + p += ETH_GSTRING_LEN; + } + break; + default: + WARN_ON(1); + break; + } +} + +static void xgmac_get_wol(struct net_device *dev, + struct ethtool_wolinfo *wol) +{ + struct xgmac_priv *priv = netdev_priv(dev); + + if (device_can_wakeup(priv->device)) { + wol->supported = WAKE_MAGIC | WAKE_UCAST; + wol->wolopts = priv->wolopts; + } +} + +static int xgmac_set_wol(struct net_device *dev, + struct ethtool_wolinfo *wol) +{ + struct xgmac_priv *priv = netdev_priv(dev); + u32 support = WAKE_MAGIC | WAKE_UCAST; + + if (!device_can_wakeup(priv->device)) + return -ENOTSUPP; + + if (wol->wolopts & ~support) + return -EINVAL; + + priv->wolopts = wol->wolopts; + + if (wol->wolopts) { + device_set_wakeup_enable(priv->device, 1); + enable_irq_wake(dev->irq); + } else { + device_set_wakeup_enable(priv->device, 0); + disable_irq_wake(dev->irq); + } + + return 0; +} + +static struct ethtool_ops xgmac_ethtool_ops = { + .get_settings = xgmac_ethtool_getsettings, + .get_link = ethtool_op_get_link, + .get_pauseparam = xgmac_get_pauseparam, + .set_pauseparam = xgmac_set_pauseparam, + .get_ethtool_stats = xgmac_get_ethtool_stats, + .get_strings = xgmac_get_strings, + .get_wol = xgmac_get_wol, + .set_wol = xgmac_set_wol, + .get_sset_count = xgmac_get_sset_count, +}; + +/** + * xgmac_probe + * @pdev: platform device pointer + * Description: the driver is initialized through platform_device. + */ +static int xgmac_probe(struct platform_device *pdev) +{ + int ret = 0; + struct resource *res; + struct net_device *ndev = NULL; + struct xgmac_priv *priv = NULL; + u32 uid; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) + return -ENODEV; + + if (!request_mem_region(res->start, resource_size(res), pdev->name)) + return -EBUSY; + + ndev = alloc_etherdev(sizeof(struct xgmac_priv)); + if (!ndev) { + ret = -ENOMEM; + goto err_alloc; + } + + SET_NETDEV_DEV(ndev, &pdev->dev); + priv = netdev_priv(ndev); + platform_set_drvdata(pdev, ndev); + ether_setup(ndev); + ndev->netdev_ops = &xgmac_netdev_ops; + SET_ETHTOOL_OPS(ndev, &xgmac_ethtool_ops); + spin_lock_init(&priv->stats_lock); + + priv->device = &pdev->dev; + priv->dev = ndev; + priv->rx_pause = 1; + priv->tx_pause = 1; + + priv->base = ioremap(res->start, resource_size(res)); + if (!priv->base) { + netdev_err(ndev, "ioremap failed\n"); + ret = -ENOMEM; + goto err_io; + } + + uid = readl(priv->base + XGMAC_VERSION); + netdev_info(ndev, "h/w version is 0x%x\n", uid); + + writel(0, priv->base + XGMAC_DMA_INTR_ENA); + ndev->irq = platform_get_irq(pdev, 0); + if (ndev->irq == -ENXIO) { + netdev_err(ndev, "No irq resource\n"); + ret = ndev->irq; + goto err_irq; + } + + ret = request_irq(ndev->irq, xgmac_interrupt, 0, + dev_name(&pdev->dev), ndev); + if (ret < 0) { + netdev_err(ndev, "Could not request irq %d - ret %d)\n", + ndev->irq, ret); + goto err_irq; + } + + priv->pmt_irq = platform_get_irq(pdev, 1); + if (priv->pmt_irq == -ENXIO) { + netdev_err(ndev, "No pmt irq resource\n"); + ret = priv->pmt_irq; + goto err_pmt_irq; + } + + ret = request_irq(priv->pmt_irq, xgmac_pmt_interrupt, 0, + dev_name(&pdev->dev), ndev); + if (ret < 0) { + netdev_err(ndev, "Could not request irq %d - ret %d)\n", + priv->pmt_irq, ret); + goto err_pmt_irq; + } + + device_set_wakeup_capable(&pdev->dev, 1); + if (device_can_wakeup(priv->device)) + priv->wolopts = WAKE_MAGIC; /* Magic Frame as default */ + + ndev->hw_features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA; + if (readl(priv->base + XGMAC_DMA_HW_FEATURE) & DMA_HW_FEAT_TXCOESEL) + ndev->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | + NETIF_F_RXCSUM; + ndev->features |= ndev->hw_features; + ndev->priv_flags |= IFF_UNICAST_FLT; + + /* Get the MAC address */ + xgmac_get_mac_addr(priv->base, ndev->dev_addr, 0); + if (!is_valid_ether_addr(ndev->dev_addr)) + netdev_warn(ndev, "MAC address %pM not valid", + ndev->dev_addr); + + netif_napi_add(ndev, &priv->napi, xgmac_poll, 64); + ret = register_netdev(ndev); + if (ret) + goto err_reg; + + return 0; + +err_reg: + netif_napi_del(&priv->napi); + free_irq(priv->pmt_irq, ndev); +err_pmt_irq: + free_irq(ndev->irq, ndev); +err_irq: + iounmap(priv->base); +err_io: + free_netdev(ndev); +err_alloc: + release_mem_region(res->start, resource_size(res)); + platform_set_drvdata(pdev, NULL); + return ret; +} + +/** + * xgmac_dvr_remove + * @pdev: platform device pointer + * Description: this function resets the TX/RX processes, disables the MAC RX/TX + * changes the link status, releases the DMA descriptor rings, + * unregisters the MDIO bus and unmaps the allocated memory. + */ +static int xgmac_remove(struct platform_device *pdev) +{ + struct net_device *ndev = platform_get_drvdata(pdev); + struct xgmac_priv *priv = netdev_priv(ndev); + struct resource *res; + + xgmac_mac_disable(priv->base); + + /* Free the IRQ lines */ + free_irq(ndev->irq, ndev); + free_irq(priv->pmt_irq, ndev); + + platform_set_drvdata(pdev, NULL); + unregister_netdev(ndev); + netif_napi_del(&priv->napi); + + iounmap(priv->base); + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + release_mem_region(res->start, resource_size(res)); + + free_netdev(ndev); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static void xgmac_pmt(void __iomem *ioaddr, unsigned long mode) +{ + unsigned int pmt = 0; + + if (mode & WAKE_MAGIC) + pmt |= XGMAC_PMT_POWERDOWN | XGMAC_PMT_MAGIC_PKT; + if (mode & WAKE_UCAST) + pmt |= XGMAC_PMT_POWERDOWN | XGMAC_PMT_GLBL_UNICAST; + + writel(pmt, ioaddr + XGMAC_PMT); +} + +static int xgmac_suspend(struct device *dev) +{ + struct net_device *ndev = platform_get_drvdata(to_platform_device(dev)); + struct xgmac_priv *priv = netdev_priv(ndev); + u32 value; + + if (!ndev || !netif_running(ndev)) + return 0; + + netif_device_detach(ndev); + napi_disable(&priv->napi); + writel(0, priv->base + XGMAC_DMA_INTR_ENA); + + if (device_may_wakeup(priv->device)) { + /* Stop TX/RX DMA Only */ + value = readl(priv->base + XGMAC_DMA_CONTROL); + value &= ~(DMA_CONTROL_ST | DMA_CONTROL_SR); + writel(value, priv->base + XGMAC_DMA_CONTROL); + + xgmac_pmt(priv->base, priv->wolopts); + } else + xgmac_mac_disable(priv->base); + + return 0; +} + +static int xgmac_resume(struct device *dev) +{ + struct net_device *ndev = platform_get_drvdata(to_platform_device(dev)); + struct xgmac_priv *priv = netdev_priv(ndev); + void __iomem *ioaddr = priv->base; + + if (!netif_running(ndev)) + return 0; + + xgmac_pmt(ioaddr, 0); + + /* Enable the MAC and DMA */ + xgmac_mac_enable(ioaddr); + writel(DMA_INTR_DEFAULT_MASK, ioaddr + XGMAC_DMA_STATUS); + writel(DMA_INTR_DEFAULT_MASK, ioaddr + XGMAC_DMA_INTR_ENA); + + netif_device_attach(ndev); + napi_enable(&priv->napi); + + return 0; +} + +static SIMPLE_DEV_PM_OPS(xgmac_pm_ops, xgmac_suspend, xgmac_resume); +#define XGMAC_PM_OPS (&xgmac_pm_ops) +#else +#define XGMAC_PM_OPS NULL +#endif /* CONFIG_PM_SLEEP */ + +static const struct of_device_id xgmac_of_match[] = { + { .compatible = "calxeda,hb-xgmac", }, + {}, +}; +MODULE_DEVICE_TABLE(of, xgmac_of_match); + +static struct platform_driver xgmac_driver = { + .driver = { + .name = "calxedaxgmac", + .of_match_table = xgmac_of_match, + }, + .probe = xgmac_probe, + .remove = xgmac_remove, + .driver.pm = XGMAC_PM_OPS, +}; + +module_platform_driver(xgmac_driver); + +MODULE_AUTHOR("Calxeda, Inc."); +MODULE_DESCRIPTION("Calxeda 10G XGMAC driver"); +MODULE_LICENSE("GPL v2"); --- linux-3.2.0.orig/drivers/net/ethernet/nvidia/forcedeth.c +++ linux-3.2.0/drivers/net/ethernet/nvidia/forcedeth.c @@ -3918,9 +3918,9 @@ static void nv_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { struct fe_priv *np = netdev_priv(dev); - strcpy(info->driver, DRV_NAME); - strcpy(info->version, FORCEDETH_VERSION); - strcpy(info->bus_info, pci_name(np->pci_dev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, FORCEDETH_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(np->pci_dev), sizeof(info->bus_info)); } static void nv_get_wol(struct net_device *dev, struct ethtool_wolinfo *wolinfo) --- linux-3.2.0.orig/drivers/net/ethernet/adaptec/starfire.c +++ linux-3.2.0/drivers/net/ethernet/adaptec/starfire.c @@ -1842,9 +1842,9 @@ static void get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { struct netdev_private *np = netdev_priv(dev); - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); - strcpy(info->bus_info, pci_name(np->pci_dev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(np->pci_dev), sizeof(info->bus_info)); } static int get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) --- linux-3.2.0.orig/drivers/net/ethernet/intel/e1000e/netdev.c +++ linux-3.2.0/drivers/net/ethernet/intel/e1000e/netdev.c @@ -60,6 +60,10 @@ char e1000e_driver_name[] = "e1000e"; const char e1000e_driver_version[] = DRV_VERSION; +static int eeprom_bad_csum_allow __read_mostly = 0; +module_param(eeprom_bad_csum_allow, int, 0); +MODULE_PARM_DESC(eeprom_bad_csum_allow, "Allow bad EEPROM checksums"); + static void e1000e_disable_aspm(struct pci_dev *pdev, u16 state); static const struct e1000_info *e1000_info_tbl[] = { @@ -1030,6 +1034,7 @@ struct e1000_adapter *adapter = container_of(work, struct e1000_adapter, print_hang_task); + struct net_device *netdev = adapter->netdev; struct e1000_ring *tx_ring = adapter->tx_ring; unsigned int i = tx_ring->next_to_clean; unsigned int eop = tx_ring->buffer_info[i].next_to_watch; @@ -1041,6 +1046,21 @@ if (test_bit(__E1000_DOWN, &adapter->state)) return; + if (!adapter->tx_hang_recheck && + (adapter->flags2 & FLAG2_DMA_BURST)) { + /* May be block on write-back, flush and detect again + * flush pending descriptor writebacks to memory + */ + ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD); + /* execute the writes immediately */ + e1e_flush(); + adapter->tx_hang_recheck = true; + return; + } + /* Real hang detected */ + adapter->tx_hang_recheck = false; + netif_stop_queue(netdev); + e1e_rphy(hw, PHY_STATUS, &phy_status); e1e_rphy(hw, PHY_1000T_STATUS, &phy_1000t_status); e1e_rphy(hw, PHY_EXT_STATUS, &phy_ext_status); @@ -1154,10 +1174,10 @@ if (tx_ring->buffer_info[i].time_stamp && time_after(jiffies, tx_ring->buffer_info[i].time_stamp + (adapter->tx_timeout_factor * HZ)) && - !(er32(STATUS) & E1000_STATUS_TXOFF)) { + !(er32(STATUS) & E1000_STATUS_TXOFF)) schedule_work(&adapter->print_hang_task); - netif_stop_queue(netdev); - } + else + adapter->tx_hang_recheck = false; } adapter->total_tx_bytes += total_tx_bytes; adapter->total_tx_packets += total_tx_packets; @@ -3370,6 +3390,15 @@ } /* + * Alignment of Tx data is on an arbitrary byte boundary with the + * maximum size per Tx descriptor limited only to the transmit + * allocation of the packet buffer minus 96 bytes with an upper + * limit of 24KB due to receive synchronization limitations. + */ + adapter->tx_fifo_limit = min_t(u32, ((er32(PBA) >> 16) << 10) - 96, + 24 << 10); + + /* * Disable Adaptive Interrupt Moderation if 2 full packets cannot * fit in receive buffer and early-receive not supported. */ @@ -3782,6 +3811,7 @@ e1000_irq_enable(adapter); + adapter->tx_hang_recheck = false; netif_start_queue(netdev); adapter->idle_check = true; @@ -4630,13 +4660,9 @@ return 1; } -#define E1000_MAX_PER_TXD 8192 -#define E1000_MAX_TXD_PWR 12 - static int e1000_tx_map(struct e1000_adapter *adapter, struct sk_buff *skb, unsigned int first, - unsigned int max_per_txd, unsigned int nr_frags, - unsigned int mss) + unsigned int max_per_txd, unsigned int nr_frags) { struct e1000_ring *tx_ring = adapter->tx_ring; struct pci_dev *pdev = adapter->pdev; @@ -4865,20 +4891,19 @@ { struct e1000_adapter *adapter = netdev_priv(netdev); + BUG_ON(size > adapter->tx_ring->count); + if (e1000_desc_unused(adapter->tx_ring) >= size) return 0; return __e1000_maybe_stop_tx(netdev, size); } -#define TXD_USE_COUNT(S, X) (((S) >> (X)) + 1 ) static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev) { struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_ring *tx_ring = adapter->tx_ring; unsigned int first; - unsigned int max_per_txd = E1000_MAX_PER_TXD; - unsigned int max_txd_pwr = E1000_MAX_TXD_PWR; unsigned int tx_flags = 0; unsigned int len = skb_headlen(skb); unsigned int nr_frags; @@ -4898,18 +4923,8 @@ } mss = skb_shinfo(skb)->gso_size; - /* - * The controller does a simple calculation to - * make sure there is enough room in the FIFO before - * initiating the DMA for each buffer. The calc is: - * 4 = ceil(buffer len/mss). To make sure we don't - * overrun the FIFO, adjust the max buffer len if mss - * drops. - */ if (mss) { u8 hdr_len; - max_per_txd = min(mss << 2, max_per_txd); - max_txd_pwr = fls(max_per_txd) - 1; /* * TSO Workaround for 82571/2/3 Controllers -- if skb->data @@ -4939,12 +4954,12 @@ count++; count++; - count += TXD_USE_COUNT(len, max_txd_pwr); + count += DIV_ROUND_UP(len, adapter->tx_fifo_limit); nr_frags = skb_shinfo(skb)->nr_frags; for (f = 0; f < nr_frags; f++) - count += TXD_USE_COUNT(skb_frag_size(&skb_shinfo(skb)->frags[f]), - max_txd_pwr); + count += DIV_ROUND_UP(skb_frag_size(&skb_shinfo(skb)->frags[f]), + adapter->tx_fifo_limit); if (adapter->hw.mac.tx_pkt_filtering) e1000_transfer_dhcp_info(adapter, skb); @@ -4983,12 +4998,15 @@ tx_flags |= E1000_TX_FLAGS_IPV4; /* if count is 0 then mapping error has occurred */ - count = e1000_tx_map(adapter, skb, first, max_per_txd, nr_frags, mss); + count = e1000_tx_map(adapter, skb, first, adapter->tx_fifo_limit, + nr_frags); if (count) { e1000_tx_queue(adapter, tx_flags, count); /* Make sure there is space in the ring for the next send. */ - e1000_maybe_stop_tx(netdev, MAX_SKB_FRAGS + 2); - + e1000_maybe_stop_tx(netdev, + (MAX_SKB_FRAGS * + DIV_ROUND_UP(PAGE_SIZE, + adapter->tx_fifo_limit) + 2)); } else { dev_kfree_skb_any(skb); tx_ring->buffer_info[first].time_stamp = 0; @@ -5115,14 +5133,6 @@ return -EINVAL; } - /* 82573 Errata 17 */ - if (((adapter->hw.mac.type == e1000_82573) || - (adapter->hw.mac.type == e1000_82574)) && - (max_frame > ETH_FRAME_LEN + ETH_FCS_LEN)) { - adapter->flags2 |= FLAG2_DISABLE_ASPM_L1; - e1000e_disable_aspm(adapter->pdev, PCIE_LINK_STATE_L1); - } - while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) usleep_range(1000, 2000); /* e1000e_down -> e1000e_reset dependent on max_frame_size & mtu */ @@ -5396,7 +5406,7 @@ */ e1000e_release_hw_control(adapter); - pci_disable_device(pdev); + pci_clear_master(pdev); return 0; } @@ -6099,8 +6109,14 @@ break; if (i == 2) { e_err("The NVM Checksum Is Not Valid\n"); - err = -EIO; - goto err_eeprom; + + /* if we allow bad checksums, just break */ + if (eeprom_bad_csum_allow) { + break; + } else { + err = -EIO; + goto err_eeprom; + } } } @@ -6141,8 +6157,8 @@ adapter->hw.phy.autoneg_advertised = 0x2f; /* ring size defaults */ - adapter->rx_ring->count = 256; - adapter->tx_ring->count = 256; + adapter->rx_ring->count = E1000_DEFAULT_RXD; + adapter->tx_ring->count = E1000_DEFAULT_TXD; /* * Initial Wake on LAN setting - If APM wake is enabled in --- linux-3.2.0.orig/drivers/net/ethernet/intel/e1000e/e1000.h +++ linux-3.2.0/drivers/net/ethernet/intel/e1000e/e1000.h @@ -302,6 +302,7 @@ */ struct e1000_ring *tx_ring /* One per active queue */ ____cacheline_aligned_in_smp; + u32 tx_fifo_limit; struct napi_struct napi; @@ -309,6 +310,7 @@ u32 txd_cmd; bool detect_tx_hung; + bool tx_hang_recheck; u8 tx_timeout_factor; u32 tx_int_delay; --- linux-3.2.0.orig/drivers/net/ethernet/intel/e1000e/82571.c +++ linux-3.2.0/drivers/net/ethernet/intel/e1000e/82571.c @@ -1571,6 +1571,9 @@ ctrl = er32(CTRL); status = er32(STATUS); rxcw = er32(RXCW); + /* SYNCH bit and IV bit are sticky */ + udelay(10); + rxcw = er32(RXCW); if ((rxcw & E1000_RXCW_SYNCH) && !(rxcw & E1000_RXCW_IV)) { @@ -1597,10 +1600,8 @@ * auto-negotiation in the TXCW register and disable * forced link in the Device Control register in an * attempt to auto-negotiate with our link partner. - * If the partner code word is null, stop forcing - * and restart auto negotiation. */ - if ((rxcw & E1000_RXCW_C) || !(rxcw & E1000_RXCW_CW)) { + if (rxcw & E1000_RXCW_C) { /* Enable autoneg, and unforce link up */ ew32(TXCW, mac->txcw); ew32(CTRL, (ctrl & ~E1000_CTRL_SLU)); @@ -2080,8 +2081,9 @@ | FLAG_HAS_SMART_POWER_DOWN | FLAG_HAS_AMT | FLAG_HAS_CTRLEXT_ON_LOAD, - .flags2 = FLAG2_CHECK_PHY_HANG + .flags2 = FLAG2_CHECK_PHY_HANG | FLAG2_DISABLE_ASPM_L0S + | FLAG2_DISABLE_ASPM_L1 | FLAG2_NO_DISABLE_RX, .pba = 32, .max_hw_frame_size = DEFAULT_JUMBO, --- linux-3.2.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ linux-3.2.0/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -106,6 +106,8 @@ {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599_SFP_SF2), board_82599 }, {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599_LS), board_82599 }, {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599EN_SFP), board_82599 }, + {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599_SFP_SF_QP), board_82599 }, + {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X540T1), board_X540 }, /* required last entry */ {0, } }; @@ -128,6 +130,11 @@ "Maximum number of virtual functions to allocate per physical function"); #endif /* CONFIG_PCI_IOV */ +static unsigned int allow_unsupported_sfp; +module_param(allow_unsupported_sfp, uint, 0); +MODULE_PARM_DESC(allow_unsupported_sfp, + "Allow unsupported and untested SFP+ modules on 82599-based adapters"); + MODULE_AUTHOR("Intel Corporation, "); MODULE_DESCRIPTION("Intel(R) 10 Gigabit PCI Express Network Driver"); MODULE_LICENSE("GPL"); @@ -1935,6 +1942,16 @@ * with the write to EICR. */ eicr = IXGBE_READ_REG(hw, IXGBE_EICS); + + /* The lower 16bits of the EICR register are for the queue interrupts + * which should be masked here in order to not accidently clear them if + * the bits are high when ixgbe_msix_other is called. There is a race + * condition otherwise which results in possible performance loss + * especially if the ixgbe_msix_other interrupt is triggering + * consistently (as it would when PPS is turned on for the X540 device) + */ + eicr &= 0xFFFF0000; + IXGBE_WRITE_REG(hw, IXGBE_EICR, eicr); if (eicr & IXGBE_EICR_LSC) @@ -5406,7 +5423,9 @@ pci_wake_from_d3(pdev, false); + rtnl_lock(); err = ixgbe_init_interrupt_scheme(adapter); + rtnl_unlock(); if (err) { e_dev_err("Cannot initialize interrupts for device\n"); return err; @@ -7479,6 +7498,9 @@ e_crit(probe, "Fan has stopped, replace the adapter\n"); } + if (allow_unsupported_sfp) + hw->allow_unsupported_sfp = allow_unsupported_sfp; + /* reset_hw fills in the perm_addr as well */ hw->phy.reset_if_overtemp = true; err = hw->mac.ops.reset_hw(hw); @@ -7611,6 +7633,7 @@ adapter->wol = IXGBE_WUFC_MAG; break; case IXGBE_DEV_ID_X540T: + case IXGBE_DEV_ID_X540T1: /* Check eeprom to see if it is enabled */ hw->eeprom.ops.read(hw, 0x2c, &adapter->eeprom_cap); wol_cap = adapter->eeprom_cap & IXGBE_DEVICE_CAPS_WOL_MASK; @@ -8000,12 +8023,15 @@ pr_info("%s - version %s\n", ixgbe_driver_string, ixgbe_driver_version); pr_info("%s\n", ixgbe_copyright); + ret = pci_register_driver(&ixgbe_driver); + if (ret) + return ret; + #ifdef CONFIG_IXGBE_DCA dca_register_notify(&dca_notifier); #endif - ret = pci_register_driver(&ixgbe_driver); - return ret; + return 0; } module_init(ixgbe_init_module); --- linux-3.2.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c +++ linux-3.2.0/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c @@ -356,6 +356,7 @@ case IXGBE_DEV_ID_82599_SFP_FCOE: case IXGBE_DEV_ID_82599_SFP_EM: case IXGBE_DEV_ID_82599_SFP_SF2: + case IXGBE_DEV_ID_82599_SFP_SF_QP: case IXGBE_DEV_ID_82599EN_SFP: media_type = ixgbe_media_type_fiber; break; --- linux-3.2.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c +++ linux-3.2.0/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c @@ -3157,6 +3157,7 @@ switch (hw->device_id) { case IXGBE_DEV_ID_X540T: + case IXGBE_DEV_ID_X540T1: return 0; case IXGBE_DEV_ID_82599_T3_LOM: return 0; --- linux-3.2.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h +++ linux-3.2.0/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h @@ -65,6 +65,8 @@ #define IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ 0x000C #define IXGBE_DEV_ID_82599_LS 0x154F #define IXGBE_DEV_ID_X540T 0x1528 +#define IXGBE_DEV_ID_82599_SFP_SF_QP 0x154A +#define IXGBE_DEV_ID_X540T1 0x1560 /* VF Device IDs */ #define IXGBE_DEV_ID_82599_VF 0x10ED @@ -2892,6 +2894,7 @@ u8 revision_id; bool adapter_stopped; bool force_full_reset; + bool allow_unsupported_sfp; }; struct ixgbe_info { --- linux-3.2.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +++ linux-3.2.0/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c @@ -67,7 +67,8 @@ vf_devfn = pdev->devfn + 0x80; pvfdev = pci_get_device(IXGBE_INTEL_VENDOR_ID, device_id, NULL); while (pvfdev) { - if (pvfdev->devfn == vf_devfn) + if (pvfdev->devfn == vf_devfn && + (pvfdev->bus->number >= pdev->bus->number)) vfs_found++; vf_devfn += 2; pvfdev = pci_get_device(IXGBE_INTEL_VENDOR_ID, --- linux-3.2.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c +++ linux-3.2.0/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c @@ -834,6 +834,7 @@ **/ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw) { + struct ixgbe_adapter *adapter = hw->back; s32 status = IXGBE_ERR_PHY_ADDR_INVALID; u32 vendor_oui = 0; enum ixgbe_sfp_type stored_sfp_type = hw->phy.sfp_type; @@ -1068,9 +1069,16 @@ if (hw->phy.type == ixgbe_phy_sfp_intel) { status = 0; } else { - hw_dbg(hw, "SFP+ module not supported\n"); - hw->phy.type = ixgbe_phy_sfp_unsupported; - status = IXGBE_ERR_SFP_NOT_SUPPORTED; + if (hw->allow_unsupported_sfp) { + e_warn(drv, "WARNING: Intel (R) Network Connections are quality tested using Intel (R) Ethernet Optics. Using untested modules is not supported and may cause unstable operation or damage to the module or the adapter. Intel Corporation is not responsible for any harm caused by using untested modules."); + status = 0; + } else { + hw_dbg(hw, + "SFP+ module not supported\n"); + hw->phy.type = + ixgbe_phy_sfp_unsupported; + status = IXGBE_ERR_SFP_NOT_SUPPORTED; + } } } else { status = 0; --- linux-3.2.0.orig/drivers/net/ethernet/intel/e1000/e1000_main.c +++ linux-3.2.0/drivers/net/ethernet/intel/e1000/e1000_main.c @@ -168,6 +168,8 @@ static bool e1000_vlan_used(struct e1000_adapter *adapter); static void e1000_vlan_mode(struct net_device *netdev, u32 features); +static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter, + bool filter_on); static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid); static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid); static void e1000_restore_vlan(struct e1000_adapter *adapter); @@ -189,6 +191,10 @@ MODULE_PARM_DESC(copybreak, "Maximum size of packet that is copied to a new buffer on receive"); +static int eeprom_bad_csum_allow __read_mostly = 0; +module_param(eeprom_bad_csum_allow, int, 0); +MODULE_PARM_DESC(eeprom_bad_csum_allow, "Allow bad EEPROM checksums"); + static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev, pci_channel_state_t state); static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev); @@ -494,7 +500,11 @@ static void e1000_down_and_stop(struct e1000_adapter *adapter) { set_bit(__E1000_DOWN, &adapter->flags); - cancel_work_sync(&adapter->reset_task); + + /* Only kill reset task if adapter is not resetting */ + if (!test_bit(__E1000_RESETTING, &adapter->flags)) + cancel_work_sync(&adapter->reset_task); + cancel_delayed_work_sync(&adapter->watchdog_task); cancel_delayed_work_sync(&adapter->phy_info_task); cancel_delayed_work_sync(&adapter->fifo_stall_task); @@ -1098,8 +1108,8 @@ e1000_reset_hw(hw); - /* make sure the EEPROM is good */ - if (e1000_validate_eeprom_checksum(hw) < 0) { + /* make sure the EEPROM is good, skip if eeprom_bad_csum_allow is 1 */ + if ((e1000_validate_eeprom_checksum(hw) < 0) && (!eeprom_bad_csum_allow)) { e_err(probe, "The EEPROM Checksum Is Not Valid\n"); e1000_dump_eeprom(adapter); /* @@ -1215,7 +1225,7 @@ if (err) goto err_register; - e1000_vlan_mode(netdev, netdev->features); + e1000_vlan_filter_on_off(adapter, false); /* print bus type/speed/width info */ e_info(probe, "(PCI%s:%dMHz:%d-bit) %pM\n", @@ -4549,6 +4559,21 @@ return false; } +static void __e1000_vlan_mode(struct e1000_adapter *adapter, u32 features) +{ + struct e1000_hw *hw = &adapter->hw; + u32 ctrl; + + ctrl = er32(CTRL); + if (features & NETIF_F_HW_VLAN_RX) { + /* enable VLAN tag insert/strip */ + ctrl |= E1000_CTRL_VME; + } else { + /* disable VLAN tag insert/strip */ + ctrl &= ~E1000_CTRL_VME; + } + ew32(CTRL, ctrl); +} static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter, bool filter_on) { @@ -4558,6 +4583,7 @@ if (!test_bit(__E1000_DOWN, &adapter->flags)) e1000_irq_disable(adapter); + __e1000_vlan_mode(adapter, adapter->netdev->features); if (filter_on) { /* enable VLAN receive filtering */ rctl = er32(RCTL); @@ -4580,21 +4606,11 @@ static void e1000_vlan_mode(struct net_device *netdev, u32 features) { struct e1000_adapter *adapter = netdev_priv(netdev); - struct e1000_hw *hw = &adapter->hw; - u32 ctrl; if (!test_bit(__E1000_DOWN, &adapter->flags)) e1000_irq_disable(adapter); - ctrl = er32(CTRL); - if (features & NETIF_F_HW_VLAN_RX) { - /* enable VLAN tag insert/strip */ - ctrl |= E1000_CTRL_VME; - } else { - /* disable VLAN tag insert/strip */ - ctrl &= ~E1000_CTRL_VME; - } - ew32(CTRL, ctrl); + __e1000_vlan_mode(adapter, features); if (!test_bit(__E1000_DOWN, &adapter->flags)) e1000_irq_enable(adapter); @@ -4716,8 +4732,6 @@ netif_device_detach(netdev); - mutex_lock(&adapter->mutex); - if (netif_running(netdev)) { WARN_ON(test_bit(__E1000_RESETTING, &adapter->flags)); e1000_down(adapter); @@ -4725,10 +4739,8 @@ #ifdef CONFIG_PM retval = pci_save_state(pdev); - if (retval) { - mutex_unlock(&adapter->mutex); + if (retval) return retval; - } #endif status = er32(STATUS); @@ -4739,12 +4751,14 @@ e1000_setup_rctl(adapter); e1000_set_rx_mode(netdev); + rctl = er32(RCTL); + /* turn on all-multi mode if wake on multicast is enabled */ - if (wufc & E1000_WUFC_MC) { - rctl = er32(RCTL); + if (wufc & E1000_WUFC_MC) rctl |= E1000_RCTL_MPE; - ew32(RCTL, rctl); - } + + /* enable receives in the hardware */ + ew32(RCTL, rctl | E1000_RCTL_EN); if (hw->mac_type >= e1000_82540) { ctrl = er32(CTRL); @@ -4783,8 +4797,6 @@ if (netif_running(netdev)) e1000_free_irq(adapter); - mutex_unlock(&adapter->mutex); - pci_disable_device(pdev); return 0; --- linux-3.2.0.orig/drivers/net/ethernet/intel/igb/igb_main.c +++ linux-3.2.0/drivers/net/ethernet/intel/igb/igb_main.c @@ -939,17 +939,18 @@ { struct net_device *netdev = adapter->netdev; struct e1000_hw *hw = &adapter->hw; - int i, err = 0, vector = 0; + int i, err = 0, vector = 0, free_vector = 0; err = request_irq(adapter->msix_entries[vector].vector, igb_msix_other, 0, netdev->name, adapter); if (err) - goto out; - vector++; + goto err_out; for (i = 0; i < adapter->num_q_vectors; i++) { struct igb_q_vector *q_vector = adapter->q_vector[i]; + vector++; + q_vector->itr_register = hw->hw_addr + E1000_EITR(vector); if (q_vector->rx.ring && q_vector->tx.ring) @@ -968,13 +969,22 @@ igb_msix_ring, 0, q_vector->name, q_vector); if (err) - goto out; - vector++; + goto err_free; } igb_configure_msix(adapter); return 0; -out: + +err_free: + /* free already assigned IRQs */ + free_irq(adapter->msix_entries[free_vector++].vector, adapter); + + vector--; + for (i = 0; i < vector; i++) { + free_irq(adapter->msix_entries[free_vector++].vector, + adapter->q_vector[i]); + } +err_out: return err; } @@ -4549,11 +4559,13 @@ bytes = 0; packets = 0; for (i = 0; i < adapter->num_rx_queues; i++) { - u32 rqdpc_tmp = rd32(E1000_RQDPC(i)) & 0x0FFF; + u32 rqdpc = rd32(E1000_RQDPC(i)); struct igb_ring *ring = adapter->rx_ring[i]; - ring->rx_stats.drops += rqdpc_tmp; - net_stats->rx_fifo_errors += rqdpc_tmp; + if (rqdpc) { + ring->rx_stats.drops += rqdpc; + net_stats->rx_fifo_errors += rqdpc; + } do { start = u64_stats_fetch_begin_bh(&ring->rx_syncp); @@ -4965,7 +4977,8 @@ vf_devfn = pdev->devfn + 0x80; pvfdev = pci_get_device(hw->vendor_id, device_id, NULL); while (pvfdev) { - if (pvfdev->devfn == vf_devfn) + if (pvfdev->devfn == vf_devfn && + (pvfdev->bus->number >= pdev->bus->number)) vfs_found++; vf_devfn += vf_stride; pvfdev = pci_get_device(hw->vendor_id, --- linux-3.2.0.orig/drivers/net/ethernet/smsc/smsc9420.c +++ linux-3.2.0/drivers/net/ethernet/smsc/smsc9420.c @@ -279,9 +279,10 @@ { struct smsc9420_pdata *pd = netdev_priv(netdev); - strcpy(drvinfo->driver, DRV_NAME); - strcpy(drvinfo->bus_info, pci_name(pd->pdev)); - strcpy(drvinfo->version, DRV_VERSION); + strlcpy(drvinfo->driver, DRV_NAME, sizeof(drvinfo->driver)); + strlcpy(drvinfo->bus_info, pci_name(pd->pdev), + sizeof(drvinfo->bus_info)); + strlcpy(drvinfo->version, DRV_VERSION, sizeof(drvinfo->version)); } static u32 smsc9420_ethtool_get_msglevel(struct net_device *netdev) --- linux-3.2.0.orig/drivers/net/ethernet/smsc/epic100.c +++ linux-3.2.0/drivers/net/ethernet/smsc/epic100.c @@ -1414,9 +1414,9 @@ { struct epic_private *np = netdev_priv(dev); - strcpy (info->driver, DRV_NAME); - strcpy (info->version, DRV_VERSION); - strcpy (info->bus_info, pci_name(np->pci_dev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(np->pci_dev), sizeof(info->bus_info)); } static int netdev_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) --- linux-3.2.0.orig/drivers/net/ethernet/smsc/smsc911x.c +++ linux-3.2.0/drivers/net/ethernet/smsc/smsc911x.c @@ -1089,10 +1089,8 @@ /* Quickly dumps bad packets */ static void -smsc911x_rx_fastforward(struct smsc911x_data *pdata, unsigned int pktbytes) +smsc911x_rx_fastforward(struct smsc911x_data *pdata, unsigned int pktwords) { - unsigned int pktwords = (pktbytes + NET_IP_ALIGN + 3) >> 2; - if (likely(pktwords >= 4)) { unsigned int timeout = 500; unsigned int val; @@ -1156,7 +1154,7 @@ continue; } - skb = netdev_alloc_skb(dev, pktlength + NET_IP_ALIGN); + skb = netdev_alloc_skb(dev, pktwords << 2); if (unlikely(!skb)) { SMSC_WARN(pdata, rx_err, "Unable to allocate skb for rx packet"); @@ -1166,14 +1164,12 @@ break; } - skb->data = skb->head; - skb_reset_tail_pointer(skb); + pdata->ops->rx_readfifo(pdata, + (unsigned int *)skb->data, pktwords); /* Align IP on 16B boundary */ skb_reserve(skb, NET_IP_ALIGN); skb_put(skb, pktlength - 4); - pdata->ops->rx_readfifo(pdata, - (unsigned int *)skb->head, pktwords); skb->protocol = eth_type_trans(skb, dev); skb_checksum_none_assert(skb); netif_receive_skb(skb); @@ -1396,7 +1392,7 @@ smsc911x_reg_write(pdata, FIFO_INT, temp); /* set RX Data offset to 2 bytes for alignment */ - smsc911x_reg_write(pdata, RX_CFG, (2 << 8)); + smsc911x_reg_write(pdata, RX_CFG, (NET_IP_ALIGN << 8)); /* enable NAPI polling before enabling RX interrupts */ napi_enable(&pdata->napi); --- linux-3.2.0.orig/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c +++ linux-3.2.0/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c @@ -321,10 +321,10 @@ pr_debug("AutoNeg specified along with Speed or Duplex, AutoNeg parameter ignored\n"); hw->phy.autoneg_advertised = opt.def; } else { - hw->phy.autoneg_advertised = AutoNeg; - pch_gbe_validate_option( - (int *)(&hw->phy.autoneg_advertised), - &opt, adapter); + int tmp = AutoNeg; + + pch_gbe_validate_option(&tmp, &opt, adapter); + hw->phy.autoneg_advertised = tmp; } } @@ -495,9 +495,10 @@ .arg = { .l = { .nr = (int)ARRAY_SIZE(fc_list), .p = fc_list } } }; - hw->mac.fc = FlowControl; - pch_gbe_validate_option((int *)(&hw->mac.fc), - &opt, adapter); + int tmp = FlowControl; + + pch_gbe_validate_option(&tmp, &opt, adapter); + hw->mac.fc = tmp; } pch_gbe_check_copper_options(adapter); --- linux-3.2.0.orig/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c +++ linux-3.2.0/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c @@ -1545,9 +1545,9 @@ skb_put(skb, length); skb->protocol = eth_type_trans(skb, netdev); if (tcp_ip_status & PCH_GBE_RXD_ACC_STAT_TCPIPOK) - skb->ip_summed = CHECKSUM_NONE; - else skb->ip_summed = CHECKSUM_UNNECESSARY; + else + skb->ip_summed = CHECKSUM_NONE; napi_gro_receive(&adapter->napi, skb); (*work_done)++; @@ -1745,6 +1745,12 @@ struct pch_gbe_rx_ring *rx_ring = adapter->rx_ring; int err; + /* Ensure we have a valid MAC */ + if (!is_valid_ether_addr(adapter->hw.mac.addr)) { + pr_err("Error: Invalid MAC address\n"); + return -EINVAL; + } + /* hardware has been reset, we need to reload some things */ pch_gbe_set_multi(netdev); @@ -2467,9 +2473,14 @@ memcpy(netdev->dev_addr, adapter->hw.mac.addr, netdev->addr_len); if (!is_valid_ether_addr(netdev->dev_addr)) { - dev_err(&pdev->dev, "Invalid MAC Address\n"); - ret = -EIO; - goto err_free_adapter; + /* + * If the MAC is invalid (or just missing), display a warning + * but do not abort setting up the device. pch_gbe_up will + * prevent the interface from being brought up until a valid MAC + * is set. + */ + dev_err(&pdev->dev, "Invalid MAC address, " + "interface disabled.\n"); } setup_timer(&adapter->watchdog_timer, pch_gbe_watchdog, (unsigned long)adapter); --- linux-3.2.0.orig/drivers/net/ethernet/davicom/dm9000.c +++ linux-3.2.0/drivers/net/ethernet/davicom/dm9000.c @@ -257,6 +257,107 @@ tmp = readl(reg); } +/* + * Sleep, either by using msleep() or if we are suspending, then + * use mdelay() to sleep. + */ +static void dm9000_msleep(board_info_t *db, unsigned int ms) +{ + if (db->in_suspend) + mdelay(ms); + else + msleep(ms); +} + +/* Read a word from phyxcer */ +static int +dm9000_phy_read(struct net_device *dev, int phy_reg_unused, int reg) +{ + board_info_t *db = netdev_priv(dev); + unsigned long flags; + unsigned int reg_save; + int ret; + + mutex_lock(&db->addr_lock); + + spin_lock_irqsave(&db->lock, flags); + + /* Save previous register address */ + reg_save = readb(db->io_addr); + + /* Fill the phyxcer register into REG_0C */ + iow(db, DM9000_EPAR, DM9000_PHY | reg); + + /* Issue phyxcer read command */ + iow(db, DM9000_EPCR, EPCR_ERPRR | EPCR_EPOS); + + writeb(reg_save, db->io_addr); + spin_unlock_irqrestore(&db->lock, flags); + + dm9000_msleep(db, 1); /* Wait read complete */ + + spin_lock_irqsave(&db->lock, flags); + reg_save = readb(db->io_addr); + + iow(db, DM9000_EPCR, 0x0); /* Clear phyxcer read command */ + + /* The read data keeps on REG_0D & REG_0E */ + ret = (ior(db, DM9000_EPDRH) << 8) | ior(db, DM9000_EPDRL); + + /* restore the previous address */ + writeb(reg_save, db->io_addr); + spin_unlock_irqrestore(&db->lock, flags); + + mutex_unlock(&db->addr_lock); + + dm9000_dbg(db, 5, "phy_read[%02x] -> %04x\n", reg, ret); + return ret; +} + +/* Write a word to phyxcer */ +static void +dm9000_phy_write(struct net_device *dev, + int phyaddr_unused, int reg, int value) +{ + board_info_t *db = netdev_priv(dev); + unsigned long flags; + unsigned long reg_save; + + dm9000_dbg(db, 5, "phy_write[%02x] = %04x\n", reg, value); + mutex_lock(&db->addr_lock); + + spin_lock_irqsave(&db->lock, flags); + + /* Save previous register address */ + reg_save = readb(db->io_addr); + + /* Fill the phyxcer register into REG_0C */ + iow(db, DM9000_EPAR, DM9000_PHY | reg); + + /* Fill the written data into REG_0D & REG_0E */ + iow(db, DM9000_EPDRL, value); + iow(db, DM9000_EPDRH, value >> 8); + + /* Issue phyxcer write command */ + iow(db, DM9000_EPCR, EPCR_EPOS | EPCR_ERPRW); + + writeb(reg_save, db->io_addr); + spin_unlock_irqrestore(&db->lock, flags); + + dm9000_msleep(db, 1); /* Wait write complete */ + + spin_lock_irqsave(&db->lock, flags); + reg_save = readb(db->io_addr); + + iow(db, DM9000_EPCR, 0x0); /* Clear phyxcer write command */ + + /* restore the previous address */ + writeb(reg_save, db->io_addr); + + spin_unlock_irqrestore(&db->lock, flags); + mutex_unlock(&db->addr_lock); +} + /* dm9000_set_io * * select the specified set of io routines to use with the @@ -793,6 +894,9 @@ iow(db, DM9000_GPCR, GPCR_GEP_CNTL); /* Let GPIO0 output */ + dm9000_phy_write(dev, 0, MII_BMCR, BMCR_RESET); /* PHY RESET */ + dm9000_phy_write(dev, 0, MII_DM_DSPCR, DSPCR_INIT_PARAM); /* Init */ + ncr = (db->flags & DM9000_PLATF_EXT_PHY) ? NCR_EXT_PHY : 0; /* if wol is needed, then always set NCR_WAKEEN otherwise we end @@ -1199,109 +1303,6 @@ return 0; } -/* - * Sleep, either by using msleep() or if we are suspending, then - * use mdelay() to sleep. - */ -static void dm9000_msleep(board_info_t *db, unsigned int ms) -{ - if (db->in_suspend) - mdelay(ms); - else - msleep(ms); -} - -/* - * Read a word from phyxcer - */ -static int -dm9000_phy_read(struct net_device *dev, int phy_reg_unused, int reg) -{ - board_info_t *db = netdev_priv(dev); - unsigned long flags; - unsigned int reg_save; - int ret; - - mutex_lock(&db->addr_lock); - - spin_lock_irqsave(&db->lock,flags); - - /* Save previous register address */ - reg_save = readb(db->io_addr); - - /* Fill the phyxcer register into REG_0C */ - iow(db, DM9000_EPAR, DM9000_PHY | reg); - - iow(db, DM9000_EPCR, EPCR_ERPRR | EPCR_EPOS); /* Issue phyxcer read command */ - - writeb(reg_save, db->io_addr); - spin_unlock_irqrestore(&db->lock,flags); - - dm9000_msleep(db, 1); /* Wait read complete */ - - spin_lock_irqsave(&db->lock,flags); - reg_save = readb(db->io_addr); - - iow(db, DM9000_EPCR, 0x0); /* Clear phyxcer read command */ - - /* The read data keeps on REG_0D & REG_0E */ - ret = (ior(db, DM9000_EPDRH) << 8) | ior(db, DM9000_EPDRL); - - /* restore the previous address */ - writeb(reg_save, db->io_addr); - spin_unlock_irqrestore(&db->lock,flags); - - mutex_unlock(&db->addr_lock); - - dm9000_dbg(db, 5, "phy_read[%02x] -> %04x\n", reg, ret); - return ret; -} - -/* - * Write a word to phyxcer - */ -static void -dm9000_phy_write(struct net_device *dev, - int phyaddr_unused, int reg, int value) -{ - board_info_t *db = netdev_priv(dev); - unsigned long flags; - unsigned long reg_save; - - dm9000_dbg(db, 5, "phy_write[%02x] = %04x\n", reg, value); - mutex_lock(&db->addr_lock); - - spin_lock_irqsave(&db->lock,flags); - - /* Save previous register address */ - reg_save = readb(db->io_addr); - - /* Fill the phyxcer register into REG_0C */ - iow(db, DM9000_EPAR, DM9000_PHY | reg); - - /* Fill the written data into REG_0D & REG_0E */ - iow(db, DM9000_EPDRL, value); - iow(db, DM9000_EPDRH, value >> 8); - - iow(db, DM9000_EPCR, EPCR_EPOS | EPCR_ERPRW); /* Issue phyxcer write command */ - - writeb(reg_save, db->io_addr); - spin_unlock_irqrestore(&db->lock, flags); - - dm9000_msleep(db, 1); /* Wait write complete */ - - spin_lock_irqsave(&db->lock,flags); - reg_save = readb(db->io_addr); - - iow(db, DM9000_EPCR, 0x0); /* Clear phyxcer write command */ - - /* restore the previous address */ - writeb(reg_save, db->io_addr); - - spin_unlock_irqrestore(&db->lock, flags); - mutex_unlock(&db->addr_lock); -} - static void dm9000_shutdown(struct net_device *dev) { @@ -1502,7 +1503,12 @@ db->flags |= DM9000_PLATF_SIMPLE_PHY; #endif - dm9000_reset(db); + /* Fixing bug on dm9000_probe, takeover dm9000_reset(db), + * Need 'NCR_MAC_LBK' bit to indeed stable our DM9000 fifo + * while probe stage. + */ + + iow(db, DM9000_NCR, NCR_MAC_LBK | NCR_RST); /* try multiple times, DM9000 sometimes gets the read wrong */ for (i = 0; i < 8; i++) { --- linux-3.2.0.orig/drivers/net/ethernet/davicom/dm9000.h +++ linux-3.2.0/drivers/net/ethernet/davicom/dm9000.h @@ -69,7 +69,9 @@ #define NCR_WAKEEN (1<<6) #define NCR_FCOL (1<<4) #define NCR_FDX (1<<3) -#define NCR_LBK (3<<1) + +#define NCR_RESERVED (3<<1) +#define NCR_MAC_LBK (1<<1) #define NCR_RST (1<<0) #define NSR_SPEED (1<<7) @@ -167,5 +169,12 @@ #define ISR_LNKCHNG (1<<5) #define ISR_UNDERRUN (1<<4) +/* Davicom MII registers. + */ + +#define MII_DM_DSPCR 0x1b /* DSP Control Register */ + +#define DSPCR_INIT_PARAM 0xE100 /* DSP init parameter */ + #endif /* _DM9000X_H_ */ --- linux-3.2.0.orig/drivers/net/ethernet/dlink/dl2k.h +++ linux-3.2.0/drivers/net/ethernet/dlink/dl2k.h @@ -365,13 +365,6 @@ char *data; }; -struct mii_data { - __u16 reserved; - __u16 reg_num; - __u16 in_value; - __u16 out_value; -}; - /* The Rx and Tx buffer descriptors. */ struct netdev_desc { __le64 next_desc; --- linux-3.2.0.orig/drivers/net/ethernet/dlink/sundance.c +++ linux-3.2.0/drivers/net/ethernet/dlink/sundance.c @@ -1634,9 +1634,9 @@ static void get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { struct netdev_private *np = netdev_priv(dev); - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); - strcpy(info->bus_info, pci_name(np->pci_dev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(np->pci_dev), sizeof(info->bus_info)); } static int get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) --- linux-3.2.0.orig/drivers/net/ethernet/dlink/dl2k.c +++ linux-3.2.0/drivers/net/ethernet/dlink/dl2k.c @@ -1259,55 +1259,21 @@ { int phy_addr; struct netdev_private *np = netdev_priv(dev); - struct mii_data *miidata = (struct mii_data *) &rq->ifr_ifru; - - struct netdev_desc *desc; - int i; + struct mii_ioctl_data *miidata = if_mii(rq); phy_addr = np->phy_addr; switch (cmd) { - case SIOCDEVPRIVATE: - break; - - case SIOCDEVPRIVATE + 1: - miidata->out_value = mii_read (dev, phy_addr, miidata->reg_num); - break; - case SIOCDEVPRIVATE + 2: - mii_write (dev, phy_addr, miidata->reg_num, miidata->in_value); - break; - case SIOCDEVPRIVATE + 3: + case SIOCGMIIPHY: + miidata->phy_id = phy_addr; break; - case SIOCDEVPRIVATE + 4: + case SIOCGMIIREG: + miidata->val_out = mii_read (dev, phy_addr, miidata->reg_num); break; - case SIOCDEVPRIVATE + 5: - netif_stop_queue (dev); + case SIOCSMIIREG: + if (!capable(CAP_NET_ADMIN)) + return -EPERM; + mii_write (dev, phy_addr, miidata->reg_num, miidata->val_in); break; - case SIOCDEVPRIVATE + 6: - netif_wake_queue (dev); - break; - case SIOCDEVPRIVATE + 7: - printk - ("tx_full=%x cur_tx=%lx old_tx=%lx cur_rx=%lx old_rx=%lx\n", - netif_queue_stopped(dev), np->cur_tx, np->old_tx, np->cur_rx, - np->old_rx); - break; - case SIOCDEVPRIVATE + 8: - printk("TX ring:\n"); - for (i = 0; i < TX_RING_SIZE; i++) { - desc = &np->tx_ring[i]; - printk - ("%02x:cur:%08x next:%08x status:%08x frag1:%08x frag0:%08x", - i, - (u32) (np->tx_ring_dma + i * sizeof (*desc)), - (u32)le64_to_cpu(desc->next_desc), - (u32)le64_to_cpu(desc->status), - (u32)(le64_to_cpu(desc->fraginfo) >> 32), - (u32)le64_to_cpu(desc->fraginfo)); - printk ("\n"); - } - printk ("\n"); - break; - default: return -EOPNOTSUPP; } --- linux-3.2.0.orig/drivers/net/ethernet/brocade/bna/bnad_ethtool.c +++ linux-3.2.0/drivers/net/ethernet/brocade/bna/bnad_ethtool.c @@ -296,8 +296,8 @@ struct bfa_ioc_attr *ioc_attr; unsigned long flags; - strcpy(drvinfo->driver, BNAD_NAME); - strcpy(drvinfo->version, BNAD_VERSION); + strlcpy(drvinfo->driver, BNAD_NAME, sizeof(drvinfo->driver)); + strlcpy(drvinfo->version, BNAD_VERSION, sizeof(drvinfo->version)); ioc_attr = kzalloc(sizeof(*ioc_attr), GFP_KERNEL); if (ioc_attr) { @@ -305,12 +305,13 @@ bfa_nw_ioc_get_attr(&bnad->bna.ioceth.ioc, ioc_attr); spin_unlock_irqrestore(&bnad->bna_lock, flags); - strncpy(drvinfo->fw_version, ioc_attr->adapter_attr.fw_ver, - sizeof(drvinfo->fw_version) - 1); + strlcpy(drvinfo->fw_version, ioc_attr->adapter_attr.fw_ver, + sizeof(drvinfo->fw_version)); kfree(ioc_attr); } - strncpy(drvinfo->bus_info, pci_name(bnad->pcidev), ETHTOOL_BUSINFO_LEN); + strlcpy(drvinfo->bus_info, pci_name(bnad->pcidev), + sizeof(drvinfo->bus_info)); } static void --- linux-3.2.0.orig/drivers/net/ethernet/ibm/ibmveth.c +++ linux-3.2.0/drivers/net/ethernet/ibm/ibmveth.c @@ -472,14 +472,9 @@ } if (adapter->rx_queue.queue_addr != NULL) { - if (!dma_mapping_error(dev, adapter->rx_queue.queue_dma)) { - dma_unmap_single(dev, - adapter->rx_queue.queue_dma, - adapter->rx_queue.queue_len, - DMA_BIDIRECTIONAL); - adapter->rx_queue.queue_dma = DMA_ERROR_CODE; - } - kfree(adapter->rx_queue.queue_addr); + dma_free_coherent(dev, adapter->rx_queue.queue_len, + adapter->rx_queue.queue_addr, + adapter->rx_queue.queue_dma); adapter->rx_queue.queue_addr = NULL; } @@ -556,10 +551,13 @@ goto err_out; } + dev = &adapter->vdev->dev; + adapter->rx_queue.queue_len = sizeof(struct ibmveth_rx_q_entry) * rxq_entries; - adapter->rx_queue.queue_addr = kmalloc(adapter->rx_queue.queue_len, - GFP_KERNEL); + adapter->rx_queue.queue_addr = + dma_alloc_coherent(dev, adapter->rx_queue.queue_len, + &adapter->rx_queue.queue_dma, GFP_KERNEL); if (!adapter->rx_queue.queue_addr) { netdev_err(netdev, "unable to allocate rx queue pages\n"); @@ -567,19 +565,13 @@ goto err_out; } - dev = &adapter->vdev->dev; - adapter->buffer_list_dma = dma_map_single(dev, adapter->buffer_list_addr, 4096, DMA_BIDIRECTIONAL); adapter->filter_list_dma = dma_map_single(dev, adapter->filter_list_addr, 4096, DMA_BIDIRECTIONAL); - adapter->rx_queue.queue_dma = dma_map_single(dev, - adapter->rx_queue.queue_addr, - adapter->rx_queue.queue_len, DMA_BIDIRECTIONAL); if ((dma_mapping_error(dev, adapter->buffer_list_dma)) || - (dma_mapping_error(dev, adapter->filter_list_dma)) || - (dma_mapping_error(dev, adapter->rx_queue.queue_dma))) { + (dma_mapping_error(dev, adapter->filter_list_dma))) { netdev_err(netdev, "unable to map filter or buffer list " "pages\n"); rc = -ENOMEM; @@ -1333,7 +1325,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_id *id) { - int rc, i; + int rc, i, mac_len; struct net_device *netdev; struct ibmveth_adapter *adapter; unsigned char *mac_addr_p; @@ -1343,11 +1335,19 @@ dev->unit_address); mac_addr_p = (unsigned char *)vio_get_attribute(dev, VETH_MAC_ADDR, - NULL); + &mac_len); if (!mac_addr_p) { dev_err(&dev->dev, "Can't find VETH_MAC_ADDR attribute\n"); return -EINVAL; } + /* Workaround for old/broken pHyp */ + if (mac_len == 8) + mac_addr_p += 2; + else if (mac_len != 6) { + dev_err(&dev->dev, "VETH_MAC_ADDR attribute wrong len %d\n", + mac_len); + return -EINVAL; + } mcastFilterSize_p = (unsigned int *)vio_get_attribute(dev, VETH_MCAST_FILTER_SIZE, NULL); @@ -1372,17 +1372,6 @@ netif_napi_add(netdev, &adapter->napi, ibmveth_poll, 16); - /* - * Some older boxes running PHYP non-natively have an OF that returns - * a 8-byte local-mac-address field (and the first 2 bytes have to be - * ignored) while newer boxes' OF return a 6-byte field. Note that - * IEEE 1275 specifies that local-mac-address must be a 6-byte field. - * The RPA doc specifies that the first byte must be 10b, so we'll - * just look for it to solve this 8 vs. 6 byte field issue - */ - if ((*mac_addr_p & 0x3) != 0x02) - mac_addr_p += 2; - adapter->mac_addr = 0; memcpy(&adapter->mac_addr, mac_addr_p, 6); --- linux-3.2.0.orig/drivers/net/ethernet/broadcom/tg3.h +++ linux-3.2.0/drivers/net/ethernet/broadcom/tg3.h @@ -1368,7 +1368,12 @@ #define TG3_LSO_RD_DMA_CRPTEN_CTRL 0x00004910 #define TG3_LSO_RD_DMA_CRPTEN_CTRL_BLEN_BD_4K 0x00030000 #define TG3_LSO_RD_DMA_CRPTEN_CTRL_BLEN_LSO_4K 0x000c0000 -/* 0x4914 --> 0x4c00 unused */ +#define TG3_LSO_RD_DMA_TX_LENGTH_WA_5719 0x02000000 +#define TG3_LSO_RD_DMA_TX_LENGTH_WA_5720 0x00200000 +/* 0x4914 --> 0x4be0 unused */ + +#define TG3_NUM_RDMA_CHANNELS 4 +#define TG3_RDMA_LENGTH 0x00004be0 /* Write DMA control registers */ #define WDMAC_MODE 0x00004c00 @@ -2921,6 +2926,7 @@ TG3_FLAG_APE_HAS_NCSI, TG3_FLAG_5717_PLUS, TG3_FLAG_4K_FIFO_LIMIT, + TG3_FLAG_5719_5720_RDMA_BUG, TG3_FLAG_RESET_TASK_PENDING, /* Add new flags before this comment and TG3_FLAG_NUMBER_OF_FLAGS */ --- linux-3.2.0.orig/drivers/net/ethernet/broadcom/tg3.c +++ linux-3.2.0/drivers/net/ethernet/broadcom/tg3.c @@ -879,8 +879,13 @@ if (sblk->status & SD_STATUS_LINK_CHG) work_exists = 1; } - /* check for RX/TX work to do */ - if (sblk->idx[0].tx_consumer != tnapi->tx_cons || + + /* check for TX work to do */ + if (sblk->idx[0].tx_consumer != tnapi->tx_cons) + work_exists = 1; + + /* check for RX work to do */ + if (tnapi->rx_rcb_prod_idx && *(tnapi->rx_rcb_prod_idx) != tnapi->rx_rcb_ptr) work_exists = 1; @@ -1130,14 +1135,26 @@ return tg3_writephy(tp, MII_TG3_AUX_CTRL, set | reg); } -#define TG3_PHY_AUXCTL_SMDSP_ENABLE(tp) \ - tg3_phy_auxctl_write((tp), MII_TG3_AUXCTL_SHDWSEL_AUXCTL, \ - MII_TG3_AUXCTL_ACTL_SMDSP_ENA | \ - MII_TG3_AUXCTL_ACTL_TX_6DB) - -#define TG3_PHY_AUXCTL_SMDSP_DISABLE(tp) \ - tg3_phy_auxctl_write((tp), MII_TG3_AUXCTL_SHDWSEL_AUXCTL, \ - MII_TG3_AUXCTL_ACTL_TX_6DB); +static int tg3_phy_toggle_auxctl_smdsp(struct tg3 *tp, bool enable) +{ + u32 val; + int err; + + err = tg3_phy_auxctl_read(tp, MII_TG3_AUXCTL_SHDWSEL_AUXCTL, &val); + + if (err) + return err; + if (enable) + + val |= MII_TG3_AUXCTL_ACTL_SMDSP_ENA; + else + val &= ~MII_TG3_AUXCTL_ACTL_SMDSP_ENA; + + err = tg3_phy_auxctl_write((tp), MII_TG3_AUXCTL_SHDWSEL_AUXCTL, + val | MII_TG3_AUXCTL_ACTL_TX_6DB); + + return err; +} static int tg3_bmcr_reset(struct tg3 *tp) { @@ -1603,6 +1620,9 @@ int i; u32 val; + if (tg3_flag(tp, NO_FWARE_REPORTED)) + return 0; + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { /* Wait up to 20ms for init done. */ for (i = 0; i < 200; i++) { @@ -2082,7 +2102,7 @@ otp = tp->phy_otp; - if (TG3_PHY_AUXCTL_SMDSP_ENABLE(tp)) + if (tg3_phy_toggle_auxctl_smdsp(tp, true)) return; phy = ((otp & TG3_OTP_AGCTGT_MASK) >> TG3_OTP_AGCTGT_SHIFT); @@ -2107,7 +2127,7 @@ ((otp & TG3_OTP_RCOFF_MASK) >> TG3_OTP_RCOFF_SHIFT); tg3_phydsp_write(tp, MII_TG3_DSP_EXP97, phy); - TG3_PHY_AUXCTL_SMDSP_DISABLE(tp); + tg3_phy_toggle_auxctl_smdsp(tp, false); } static void tg3_phy_eee_adjust(struct tg3 *tp, u32 current_link_up) @@ -2143,9 +2163,9 @@ if (!tp->setlpicnt) { if (current_link_up == 1 && - !TG3_PHY_AUXCTL_SMDSP_ENABLE(tp)) { + !tg3_phy_toggle_auxctl_smdsp(tp, true)) { tg3_phydsp_write(tp, MII_TG3_DSP_TAP26, 0x0000); - TG3_PHY_AUXCTL_SMDSP_DISABLE(tp); + tg3_phy_toggle_auxctl_smdsp(tp, false); } val = tr32(TG3_CPMU_EEE_MODE); @@ -2161,11 +2181,11 @@ (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) && - !TG3_PHY_AUXCTL_SMDSP_ENABLE(tp)) { + !tg3_phy_toggle_auxctl_smdsp(tp, true)) { val = MII_TG3_DSP_TAP26_ALNOKO | MII_TG3_DSP_TAP26_RMRXSTO; tg3_phydsp_write(tp, MII_TG3_DSP_TAP26, val); - TG3_PHY_AUXCTL_SMDSP_DISABLE(tp); + tg3_phy_toggle_auxctl_smdsp(tp, false); } val = tr32(TG3_CPMU_EEE_MODE); @@ -2309,7 +2329,7 @@ tg3_writephy(tp, MII_CTRL1000, CTL1000_AS_MASTER | CTL1000_ENABLE_MASTER); - err = TG3_PHY_AUXCTL_SMDSP_ENABLE(tp); + err = tg3_phy_toggle_auxctl_smdsp(tp, true); if (err) return err; @@ -2330,7 +2350,7 @@ tg3_writephy(tp, MII_TG3_DSP_ADDRESS, 0x8200); tg3_writephy(tp, MII_TG3_DSP_CONTROL, 0x0000); - TG3_PHY_AUXCTL_SMDSP_DISABLE(tp); + tg3_phy_toggle_auxctl_smdsp(tp, false); tg3_writephy(tp, MII_CTRL1000, phy9_orig); @@ -2419,10 +2439,10 @@ out: if ((tp->phy_flags & TG3_PHYFLG_ADC_BUG) && - !TG3_PHY_AUXCTL_SMDSP_ENABLE(tp)) { + !tg3_phy_toggle_auxctl_smdsp(tp, true)) { tg3_phydsp_write(tp, 0x201f, 0x2aaa); tg3_phydsp_write(tp, 0x000a, 0x0323); - TG3_PHY_AUXCTL_SMDSP_DISABLE(tp); + tg3_phy_toggle_auxctl_smdsp(tp, false); } if (tp->phy_flags & TG3_PHYFLG_5704_A0_BUG) { @@ -2431,14 +2451,14 @@ } if (tp->phy_flags & TG3_PHYFLG_BER_BUG) { - if (!TG3_PHY_AUXCTL_SMDSP_ENABLE(tp)) { + if (!tg3_phy_toggle_auxctl_smdsp(tp, true)) { tg3_phydsp_write(tp, 0x000a, 0x310b); tg3_phydsp_write(tp, 0x201f, 0x9506); tg3_phydsp_write(tp, 0x401f, 0x14e2); - TG3_PHY_AUXCTL_SMDSP_DISABLE(tp); + tg3_phy_toggle_auxctl_smdsp(tp, false); } } else if (tp->phy_flags & TG3_PHYFLG_JITTER_BUG) { - if (!TG3_PHY_AUXCTL_SMDSP_ENABLE(tp)) { + if (!tg3_phy_toggle_auxctl_smdsp(tp, true)) { tg3_writephy(tp, MII_TG3_DSP_ADDRESS, 0x000a); if (tp->phy_flags & TG3_PHYFLG_ADJUST_TRIM) { tg3_writephy(tp, MII_TG3_DSP_RW_PORT, 0x110b); @@ -2447,7 +2467,7 @@ } else tg3_writephy(tp, MII_TG3_DSP_RW_PORT, 0x010b); - TG3_PHY_AUXCTL_SMDSP_DISABLE(tp); + tg3_phy_toggle_auxctl_smdsp(tp, false); } } @@ -2735,6 +2755,31 @@ static int tg3_setup_phy(struct tg3 *, int); static int tg3_halt_cpu(struct tg3 *, u32); +static bool tg3_phy_power_bug(struct tg3 *tp) +{ + switch (GET_ASIC_REV(tp->pci_chip_rev_id)) { + case ASIC_REV_5700: + case ASIC_REV_5704: + return true; + case ASIC_REV_5780: + if (tp->phy_flags & TG3_PHYFLG_MII_SERDES) + return true; + return false; + case ASIC_REV_5717: + if (!tp->pci_fn) + return true; + return false; + case ASIC_REV_5719: + case ASIC_REV_5720: + if ((tp->phy_flags & TG3_PHYFLG_PHY_SERDES) && + !tp->pci_fn) + return true; + return false; + } + + return false; +} + static void tg3_power_down_phy(struct tg3 *tp, bool do_low_power) { u32 val; @@ -2791,10 +2836,7 @@ /* The PHY should not be powered down on some chips because * of bugs. */ - if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || - GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 || - (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5780 && - (tp->phy_flags & TG3_PHYFLG_MII_SERDES))) + if (tg3_phy_power_bug(tp)) return; if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5784_AX || @@ -3632,7 +3674,7 @@ tw32(TG3_CPMU_EEE_MODE, tr32(TG3_CPMU_EEE_MODE) & ~TG3_CPMU_EEEMD_LPI_ENABLE); - err = TG3_PHY_AUXCTL_SMDSP_ENABLE(tp); + err = tg3_phy_toggle_auxctl_smdsp(tp, true); if (!err) { u32 err2; @@ -3664,7 +3706,7 @@ MII_TG3_DSP_CH34TP2_HIBW01); } - err2 = TG3_PHY_AUXCTL_SMDSP_DISABLE(tp); + err2 = tg3_phy_toggle_auxctl_smdsp(tp, false); if (!err) err = err2; } @@ -5893,6 +5935,9 @@ return work_done; } + if (!tnapi->rx_rcb_prod_idx) + return work_done; + /* run RX thread, within the bounds set by NAPI. * All RX "locking" is done by ensuring outside * code synchronizes with tg3->napi.poll() @@ -6343,6 +6388,9 @@ int i; struct tg3 *tp = netdev_priv(dev); + if (tg3_irq_sync(tp)) + return; + for (i = 0; i < tp->irq_cnt; i++) tg3_interrupt(tp->napi[i].irq_vec, &tp->napi[i]); } @@ -7446,6 +7494,12 @@ */ switch (i) { default: + if (tg3_flag(tp, ENABLE_RSS)) { + tnapi->rx_rcb_prod_idx = NULL; + break; + } + /* Fall through */ + case 1: tnapi->rx_rcb_prod_idx = &sblk->idx[0].rx_producer; break; case 2: @@ -7626,15 +7680,11 @@ pci_write_config_word(tp->pdev, PCI_COMMAND, tp->pci_cmd); - if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5785) { - if (tg3_flag(tp, PCI_EXPRESS)) - pcie_set_readrq(tp->pdev, tp->pcie_readrq); - else { - pci_write_config_byte(tp->pdev, PCI_CACHE_LINE_SIZE, - tp->pci_cacheline_sz); - pci_write_config_byte(tp->pdev, PCI_LATENCY_TIMER, - tp->pci_lat_timer); - } + if (!tg3_flag(tp, PCI_EXPRESS)) { + pci_write_config_byte(tp->pdev, PCI_CACHE_LINE_SIZE, + tp->pci_cacheline_sz); + pci_write_config_byte(tp->pdev, PCI_LATENCY_TIMER, + tp->pci_lat_timer); } /* Make sure PCI-X relaxed ordering bit is clear. */ @@ -7819,8 +7869,6 @@ pci_pcie_cap(tp->pdev) + PCI_EXP_DEVCTL, val16); - pcie_set_readrq(tp->pdev, tp->pcie_readrq); - /* Clear error status */ pci_write_config_word(tp->pdev, pci_pcie_cap(tp->pdev) + PCI_EXP_DEVSTA, @@ -8231,6 +8279,14 @@ tw32(JMB_REPLENISH_LWM, bdcache_maxcnt); } +static inline u32 tg3_lso_rd_dma_workaround_bit(struct tg3 *tp) +{ + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) + return TG3_LSO_RD_DMA_TX_LENGTH_WA_5719; + else + return TG3_LSO_RD_DMA_TX_LENGTH_WA_5720; +} + /* tp->lock is held. */ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) { @@ -8869,6 +8925,20 @@ tw32_f(RDMAC_MODE, rdmac_mode); udelay(40); + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || + GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) { + for (i = 0; i < TG3_NUM_RDMA_CHANNELS; i++) { + if (tr32(TG3_RDMA_LENGTH + (i << 2)) > TG3_MAX_MTU(tp)) + break; + } + if (i < TG3_NUM_RDMA_CHANNELS) { + val = tr32(TG3_LSO_RD_DMA_CRPTEN_CTRL); + val |= tg3_lso_rd_dma_workaround_bit(tp); + tw32(TG3_LSO_RD_DMA_CRPTEN_CTRL, val); + tg3_flag_set(tp, 5719_5720_RDMA_BUG); + } + } + tw32(RCVDCC_MODE, RCVDCC_MODE_ENABLE | RCVDCC_MODE_ATTN_ENABLE); if (!tg3_flag(tp, 5705_PLUS)) tw32(MBFREE_MODE, MBFREE_MODE_ENABLE); @@ -9115,6 +9185,13 @@ */ static int tg3_init_hw(struct tg3 *tp, int reset_phy) { + /* Chip may have been just powered on. If so, the boot code may still + * be running initialization. Wait for it to finish to avoid races in + * accessing the hardware. + */ + tg3_enable_register_access(tp); + tg3_poll_fw(tp); + tg3_switch_clocks(tp); tw32(TG3PCI_MEM_WIN_BASE_ADDR, 0); @@ -9149,6 +9226,16 @@ TG3_STAT_ADD32(&sp->tx_ucast_packets, MAC_TX_STATS_UCAST); TG3_STAT_ADD32(&sp->tx_mcast_packets, MAC_TX_STATS_MCAST); TG3_STAT_ADD32(&sp->tx_bcast_packets, MAC_TX_STATS_BCAST); + if (unlikely(tg3_flag(tp, 5719_5720_RDMA_BUG) && + (sp->tx_ucast_packets.low + sp->tx_mcast_packets.low + + sp->tx_bcast_packets.low) > TG3_NUM_RDMA_CHANNELS)) { + u32 val; + + val = tr32(TG3_LSO_RD_DMA_CRPTEN_CTRL); + val &= ~tg3_lso_rd_dma_workaround_bit(tp); + tw32(TG3_LSO_RD_DMA_CRPTEN_CTRL, val); + tg3_flag_clear(tp, 5719_5720_RDMA_BUG); + } TG3_STAT_ADD32(&sp->rx_octets, MAC_RX_STATS_OCTETS); TG3_STAT_ADD32(&sp->rx_fragments, MAC_RX_STATS_FRAGMENTS); @@ -10428,10 +10515,10 @@ { struct tg3 *tp = netdev_priv(dev); - strcpy(info->driver, DRV_MODULE_NAME); - strcpy(info->version, DRV_MODULE_VERSION); - strcpy(info->fw_version, tp->fw_ver); - strcpy(info->bus_info, pci_name(tp->pdev)); + strlcpy(info->driver, DRV_MODULE_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_MODULE_VERSION, sizeof(info->version)); + strlcpy(info->fw_version, tp->fw_ver, sizeof(info->fw_version)); + strlcpy(info->bus_info, pci_name(tp->pdev), sizeof(info->bus_info)); } static void tg3_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) @@ -13402,8 +13489,11 @@ if (j + len > block_end) goto partno; - memcpy(tp->fw_ver, &vpd_data[j], len); - strncat(tp->fw_ver, " bc ", vpdlen - len - 1); + if (len >= sizeof(tp->fw_ver)) + len = sizeof(tp->fw_ver) - 1; + memset(tp->fw_ver, 0, sizeof(tp->fw_ver)); + snprintf(tp->fw_ver, sizeof(tp->fw_ver), "%.*s bc ", len, + &vpd_data[j]); } partno: @@ -13997,9 +14087,13 @@ if (tg3_flag(tp, HW_TSO_1) || tg3_flag(tp, HW_TSO_2) || tg3_flag(tp, HW_TSO_3) || - (tp->fw_needed && !tg3_flag(tp, ENABLE_ASF))) + tp->fw_needed) { + /* For firmware TSO, assume ASF is disabled. + * We'll disable TSO later if we discover ASF + * is enabled in tg3_get_eeprom_hw_cfg(). + */ tg3_flag_set(tp, TSO_CAPABLE); - else { + } else { tg3_flag_clear(tp, TSO_CAPABLE); tg3_flag_clear(tp, TSO_BUG); tp->fw_needed = NULL; @@ -14030,7 +14124,8 @@ } } - if (tg3_flag(tp, 5755_PLUS)) + if (tg3_flag(tp, 5755_PLUS) || + GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) tg3_flag_set(tp, SHORT_DMA_BUG); if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) @@ -14056,13 +14151,6 @@ tg3_flag_set(tp, PCI_EXPRESS); - tp->pcie_readrq = 4096; - if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || - GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) - tp->pcie_readrq = 2048; - - pcie_set_readrq(tp->pdev, tp->pcie_readrq); - pci_read_config_word(tp->pdev, pci_pcie_cap(tp->pdev) + PCI_EXP_LNKCTL, &lnkctl); @@ -14273,6 +14361,12 @@ */ tg3_get_eeprom_hw_cfg(tp); + if (tp->fw_needed && tg3_flag(tp, ENABLE_ASF)) { + tg3_flag_clear(tp, TSO_CAPABLE); + tg3_flag_clear(tp, TSO_BUG); + tp->fw_needed = NULL; + } + if (tg3_flag(tp, ENABLE_APE)) { /* Allow reads and writes to the * APE register and memory space. @@ -15361,6 +15455,7 @@ tp->pm_cap = pm_cap; tp->rx_mode = TG3_DEF_RX_MODE; tp->tx_mode = TG3_DEF_TX_MODE; + tp->irq_sync = 1; if (tg3_debug > 0) tp->msg_enable = tg3_debug; --- linux-3.2.0.orig/drivers/net/ethernet/broadcom/bnx2.c +++ linux-3.2.0/drivers/net/ethernet/broadcom/bnx2.c @@ -5378,7 +5378,7 @@ int k, last; if (skb == NULL) { - j++; + j = NEXT_TX_BD(j); continue; } @@ -5390,8 +5390,8 @@ tx_buf->skb = NULL; last = tx_buf->nr_frags; - j++; - for (k = 0; k < last; k++, j++) { + j = NEXT_TX_BD(j); + for (k = 0; k < last; k++, j = NEXT_TX_BD(j)) { tx_buf = &txr->tx_buf_ring[TX_RING_IDX(j)]; dma_unmap_page(&bp->pdev->dev, dma_unmap_addr(tx_buf, mapping), @@ -6873,10 +6873,10 @@ { struct bnx2 *bp = netdev_priv(dev); - strcpy(info->driver, DRV_MODULE_NAME); - strcpy(info->version, DRV_MODULE_VERSION); - strcpy(info->bus_info, pci_name(bp->pdev)); - strcpy(info->fw_version, bp->fw_version); + strlcpy(info->driver, DRV_MODULE_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_MODULE_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(bp->pdev), sizeof(info->bus_info)); + strlcpy(info->fw_version, bp->fw_version, sizeof(info->fw_version)); } #define BNX2_REGDUMP_LEN (32 * 1024) --- linux-3.2.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h +++ linux-3.2.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h @@ -723,21 +723,6 @@ #define ETH_RX_ERROR_FALGS ETH_FAST_PATH_RX_CQE_PHY_DECODE_ERR_FLG -#define BNX2X_IP_CSUM_ERR(cqe) \ - (!((cqe)->fast_path_cqe.status_flags & \ - ETH_FAST_PATH_RX_CQE_IP_XSUM_NO_VALIDATION_FLG) && \ - ((cqe)->fast_path_cqe.type_error_flags & \ - ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG)) - -#define BNX2X_L4_CSUM_ERR(cqe) \ - (!((cqe)->fast_path_cqe.status_flags & \ - ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG) && \ - ((cqe)->fast_path_cqe.type_error_flags & \ - ETH_FAST_PATH_RX_CQE_L4_BAD_XSUM_FLG)) - -#define BNX2X_RX_CSUM_OK(cqe) \ - (!(BNX2X_L4_CSUM_ERR(cqe) || BNX2X_IP_CSUM_ERR(cqe))) - #define BNX2X_PRS_FLAG_OVERETH_IPV4(flags) \ (((le16_to_cpu(flags) & \ PARSING_FLAGS_OVER_ETHERNET_PROTOCOL) >> \ --- linux-3.2.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c +++ linux-3.2.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c @@ -761,8 +761,8 @@ struct bnx2x *bp = netdev_priv(dev); u8 phy_fw_ver[PHY_FW_VER_LEN]; - strcpy(info->driver, DRV_MODULE_NAME); - strcpy(info->version, DRV_MODULE_VERSION); + strlcpy(info->driver, DRV_MODULE_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_MODULE_VERSION, sizeof(info->version)); phy_fw_ver[0] = '\0'; if (bp->port.pmf) { @@ -773,14 +773,14 @@ bnx2x_release_phy_lock(bp); } - strncpy(info->fw_version, bp->fw_ver, 32); + strlcpy(info->fw_version, bp->fw_ver, sizeof(info->fw_version)); snprintf(info->fw_version + strlen(bp->fw_ver), 32 - strlen(bp->fw_ver), "bc %d.%d.%d%s%s", (bp->common.bc_ver & 0xff0000) >> 16, (bp->common.bc_ver & 0xff00) >> 8, (bp->common.bc_ver & 0xff), ((phy_fw_ver[0] != '\0') ? " phy " : ""), phy_fw_ver); - strcpy(info->bus_info, pci_name(bp->pdev)); + strlcpy(info->bus_info, pci_name(bp->pdev), sizeof(info->bus_info)); info->n_stats = BNX2X_NUM_STATS; info->testinfo_len = BNX2X_NUM_TESTS; info->eedump_len = bp->common.flash_size; --- linux-3.2.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ linux-3.2.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c @@ -220,7 +220,7 @@ if ((netif_tx_queue_stopped(txq)) && (bp->state == BNX2X_STATE_OPEN) && - (bnx2x_tx_avail(bp, txdata) >= MAX_SKB_FRAGS + 3)) + (bnx2x_tx_avail(bp, txdata) >= MAX_SKB_FRAGS + 4)) netif_tx_wake_queue(txq); __netif_tx_unlock(txq); @@ -551,6 +551,28 @@ le32_to_cpu(cqe->fast_path_cqe.rss_hash_result); } +static void bnx2x_csum_validate(struct sk_buff *skb, union eth_rx_cqe *cqe, + struct bnx2x_fastpath *fp) +{ + /* Do nothing if no L4 csum validation was done. + * We do not check whether IP csum was validated. For IPv4 we assume + * that if the card got as far as validating the L4 csum, it also + * validated the IP csum. IPv6 has no IP csum. + */ + if (cqe->fast_path_cqe.status_flags & + ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG) + return; + + /* If L4 validation was done, check if an error was found. */ + + if (cqe->fast_path_cqe.type_error_flags & + (ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG | + ETH_FAST_PATH_RX_CQE_L4_BAD_XSUM_FLG)) + fp->eth_q_stats.hw_csum_err++; + else + skb->ip_summed = CHECKSUM_UNNECESSARY; +} + int bnx2x_rx_int(struct bnx2x_fastpath *fp, int budget) { struct bnx2x *bp = fp->bp; @@ -746,13 +768,9 @@ skb_checksum_none_assert(skb); - if (bp->dev->features & NETIF_F_RXCSUM) { + if (bp->dev->features & NETIF_F_RXCSUM) + bnx2x_csum_validate(skb, cqe, fp); - if (likely(BNX2X_RX_CSUM_OK(cqe))) - skb->ip_summed = CHECKSUM_UNNECESSARY; - else - fp->eth_q_stats.hw_csum_err++; - } } skb_record_rx_queue(skb, fp->index); @@ -2238,8 +2256,6 @@ /* we split the first BD into headers and data BDs * to ease the pain of our fellow microcode engineers * we use one mapping for both BDs - * So far this has only been observed to happen - * in Other Operating Systems(TM) */ static noinline u16 bnx2x_tx_split(struct bnx2x *bp, struct bnx2x_fp_txdata *txdata, @@ -2890,7 +2906,7 @@ txdata->tx_bd_prod += nbd; - if (unlikely(bnx2x_tx_avail(bp, txdata) < MAX_SKB_FRAGS + 3)) { + if (unlikely(bnx2x_tx_avail(bp, txdata) < MAX_SKB_FRAGS + 4)) { netif_tx_stop_queue(txq); /* paired memory barrier is in bnx2x_tx_int(), we have to keep @@ -2899,7 +2915,7 @@ smp_mb(); fp->eth_q_stats.driver_xoff++; - if (bnx2x_tx_avail(bp, txdata) >= MAX_SKB_FRAGS + 3) + if (bnx2x_tx_avail(bp, txdata) >= MAX_SKB_FRAGS + 4) netif_tx_wake_queue(txq); } txdata->tx_pkt++; --- linux-3.2.0.orig/drivers/net/ethernet/toshiba/Kconfig +++ linux-3.2.0/drivers/net/ethernet/toshiba/Kconfig @@ -5,7 +5,7 @@ config NET_VENDOR_TOSHIBA bool "Toshiba devices" default y - depends on PCI && (PPC_IBM_CELL_BLADE || PPC_CELLEB) || PPC_PS3 + depends on PCI && (PPC_IBM_CELL_BLADE || PPC_CELLEB || MIPS) || PPC_PS3 ---help--- If you have a network (Ethernet) card belonging to this class, say Y and read the Ethernet-HOWTO, available from --- linux-3.2.0.orig/drivers/net/ethernet/via/via-velocity.c +++ linux-3.2.0/drivers/net/ethernet/via/via-velocity.c @@ -2489,9 +2489,6 @@ if (dev->irq != 0) free_irq(dev->irq, dev); - /* Power down the chip */ - pci_set_power_state(vptr->pdev, PCI_D3hot); - velocity_free_rings(vptr); vptr->flags &= (~VELOCITY_FLAGS_OPENED); --- linux-3.2.0.orig/drivers/net/ethernet/realtek/8139cp.c +++ linux-3.2.0/drivers/net/ethernet/realtek/8139cp.c @@ -563,6 +563,7 @@ if (cpr16(IntrStatus) & cp_rx_intr_mask) goto rx_status_loop; + napi_gro_flush(napi); spin_lock_irqsave(&cp->lock, flags); __napi_complete(napi); cpw16_f(IntrMask, cp_intr_mask); @@ -960,6 +961,11 @@ cpw8(Cmd, RxOn | TxOn); } +static void cp_enable_irq(struct cp_private *cp) +{ + cpw16_f(IntrMask, cp_intr_mask); +} + static void cp_init_hw (struct cp_private *cp) { struct net_device *dev = cp->dev; @@ -999,8 +1005,6 @@ cpw16(MultiIntr, 0); - cpw16_f(IntrMask, cp_intr_mask); - cpw8_f(Cfg9346, Cfg9346_Lock); } @@ -1132,6 +1136,8 @@ if (rc) goto err_out_hw; + cp_enable_irq(cp); + netif_carrier_off(dev); mii_check_media(&cp->mii_if, netif_msg_link(cp), true); netif_start_queue(dev); @@ -1319,9 +1325,9 @@ { struct cp_private *cp = netdev_priv(dev); - strcpy (info->driver, DRV_NAME); - strcpy (info->version, DRV_VERSION); - strcpy (info->bus_info, pci_name(cp->pdev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(cp->pdev), sizeof(info->bus_info)); } static void cp_get_ringparam(struct net_device *dev, @@ -2033,6 +2039,7 @@ /* FIXME: sh*t may happen if the Rx ring buffer is depleted */ cp_init_rings_index (cp); cp_init_hw (cp); + cp_enable_irq(cp); netif_start_queue (dev); spin_lock_irqsave (&cp->lock, flags); --- linux-3.2.0.orig/drivers/net/ethernet/realtek/8139too.c +++ linux-3.2.0/drivers/net/ethernet/realtek/8139too.c @@ -2330,9 +2330,9 @@ static void rtl8139_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { struct rtl8139_private *tp = netdev_priv(dev); - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); - strcpy(info->bus_info, pci_name(tp->pci_dev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(tp->pci_dev), sizeof(info->bus_info)); info->regdump_len = tp->regs_len; } --- linux-3.2.0.orig/drivers/net/ethernet/realtek/r8169.c +++ linux-3.2.0/drivers/net/ethernet/realtek/r8169.c @@ -62,8 +62,12 @@ #define R8169_MSG_DEFAULT \ (NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_IFUP | NETIF_MSG_IFDOWN) -#define TX_BUFFS_AVAIL(tp) \ - (tp->dirty_tx + NUM_TX_DESC - tp->cur_tx - 1) +#define TX_SLOTS_AVAIL(tp) \ + (tp->dirty_tx + NUM_TX_DESC - tp->cur_tx) + +/* A skbuff with nr_frags needs nr_frags+1 entries in the tx queue */ +#define TX_FRAGS_READY_FOR(tp,nr_frags) \ + (TX_SLOTS_AVAIL(tp) >= (nr_frags + 1)) /* Maximum number of multicast addresses to filter (vs. Rx-all-multicast). The RTL chips use a 64 element hash table based on the Ethernet CRC. */ @@ -73,7 +77,7 @@ #define MAC_ADDR_LEN 6 #define MAX_READ_REQUEST_SHIFT 12 -#define TX_DMA_BURST 6 /* Maximum PCI burst, '6' is 1024 */ +#define TX_DMA_BURST 7 /* Maximum PCI burst, '7' is unlimited */ #define SafeMtu 0x1c20 /* ... actually life sucks beyond ~7k */ #define InterFrameGap 0x03 /* 3 means InterFrameGap = the shortest one */ @@ -323,6 +327,8 @@ Config0 = 0x51, Config1 = 0x52, Config2 = 0x53, +#define PME_SIGNAL (1 << 5) /* 8168c and later */ + Config3 = 0x54, Config4 = 0x55, Config5 = 0x56, @@ -1356,7 +1362,6 @@ u16 reg; u8 mask; } cfg[] = { - { WAKE_ANY, Config1, PMEnable }, { WAKE_PHY, Config3, LinkUp }, { WAKE_MAGIC, Config3, MagicPacket }, { WAKE_UCAST, Config5, UWF }, @@ -1364,16 +1369,32 @@ { WAKE_MCAST, Config5, MWF }, { WAKE_ANY, Config5, LanWake } }; + u8 options; RTL_W8(Cfg9346, Cfg9346_Unlock); for (i = 0; i < ARRAY_SIZE(cfg); i++) { - u8 options = RTL_R8(cfg[i].reg) & ~cfg[i].mask; + options = RTL_R8(cfg[i].reg) & ~cfg[i].mask; if (wolopts & cfg[i].opt) options |= cfg[i].mask; RTL_W8(cfg[i].reg, options); } + switch (tp->mac_version) { + case RTL_GIGA_MAC_VER_01 ... RTL_GIGA_MAC_VER_17: + options = RTL_R8(Config1) & ~PMEnable; + if (wolopts) + options |= PMEnable; + RTL_W8(Config1, options); + break; + default: + options = RTL_R8(Config2) & ~PME_SIGNAL; + if (wolopts) + options |= PME_SIGNAL; + RTL_W8(Config2, options); + break; + } + RTL_W8(Cfg9346, Cfg9346_Lock); } @@ -1406,12 +1427,12 @@ struct rtl8169_private *tp = netdev_priv(dev); struct rtl_fw *rtl_fw = tp->rtl_fw; - strcpy(info->driver, MODULENAME); - strcpy(info->version, RTL8169_VERSION); - strcpy(info->bus_info, pci_name(tp->pci_dev)); + strlcpy(info->driver, MODULENAME, sizeof(info->driver)); + strlcpy(info->version, RTL8169_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(tp->pci_dev), sizeof(info->bus_info)); BUILD_BUG_ON(sizeof(info->fw_version) < sizeof(rtl_fw->version)); - strcpy(info->fw_version, IS_ERR_OR_NULL(rtl_fw) ? "N/A" : - rtl_fw->version); + strlcpy(info->fw_version, IS_ERR_OR_NULL(rtl_fw) ? "N/A" : + rtl_fw->version, sizeof(info->fw_version)); } static int rtl8169_get_regs_len(struct net_device *dev) @@ -1608,8 +1629,6 @@ if (opts2 & RxVlanTag) __vlan_hwaccel_put_tag(skb, swab16(opts2 & 0xffff)); - - desc->opts2 = 0; } static int rtl8169_gset_tbi(struct net_device *dev, struct ethtool_cmd *cmd) @@ -3495,11 +3514,37 @@ } } +static void rtl_speed_down(struct rtl8169_private *tp) +{ + u32 adv; + int lpa; + + rtl_writephy(tp, 0x1f, 0x0000); + lpa = rtl_readphy(tp, MII_LPA); + + if (lpa & (LPA_10HALF | LPA_10FULL)) + adv = ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full; + else if (lpa & (LPA_100HALF | LPA_100FULL)) + adv = ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full | + ADVERTISED_100baseT_Half | ADVERTISED_100baseT_Full; + else + adv = ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full | + ADVERTISED_100baseT_Half | ADVERTISED_100baseT_Full | + (tp->mii.supports_gmii ? + ADVERTISED_1000baseT_Half | + ADVERTISED_1000baseT_Full : 0); + + rtl8169_set_speed(tp->dev, AUTONEG_ENABLE, SPEED_1000, DUPLEX_FULL, + adv); +} + static void rtl_wol_suspend_quirk(struct rtl8169_private *tp) { void __iomem *ioaddr = tp->mmio_addr; switch (tp->mac_version) { + case RTL_GIGA_MAC_VER_25: + case RTL_GIGA_MAC_VER_26: case RTL_GIGA_MAC_VER_29: case RTL_GIGA_MAC_VER_30: case RTL_GIGA_MAC_VER_32: @@ -3518,9 +3563,7 @@ if (!(__rtl8169_get_wol(tp) & WAKE_ANY)) return false; - rtl_writephy(tp, 0x1f, 0x0000); - rtl_writephy(tp, MII_BMCR, 0x0000); - + rtl_speed_down(tp); rtl_wol_suspend_quirk(tp); return true; @@ -3766,6 +3809,7 @@ case RTL_GIGA_MAC_VER_22: case RTL_GIGA_MAC_VER_23: case RTL_GIGA_MAC_VER_24: + case RTL_GIGA_MAC_VER_34: RTL_W32(RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST); break; default: @@ -3781,12 +3825,20 @@ static void rtl_hw_jumbo_enable(struct rtl8169_private *tp) { + void __iomem *ioaddr = tp->mmio_addr; + + RTL_W8(Cfg9346, Cfg9346_Unlock); rtl_generic_op(tp, tp->jumbo_ops.enable); + RTL_W8(Cfg9346, Cfg9346_Lock); } static void rtl_hw_jumbo_disable(struct rtl8169_private *tp) { + void __iomem *ioaddr = tp->mmio_addr; + + RTL_W8(Cfg9346, Cfg9346_Unlock); rtl_generic_op(tp, tp->jumbo_ops.disable); + RTL_W8(Cfg9346, Cfg9346_Lock); } static void r8168c_hw_jumbo_enable(struct rtl8169_private *tp) @@ -4173,6 +4225,7 @@ return rc; err_out_msi_4: + netif_napi_del(&tp->napi); rtl_disable_msi(pdev, tp); iounmap(ioaddr); err_out_free_res_3: @@ -4198,6 +4251,8 @@ cancel_delayed_work_sync(&tp->task); + netif_napi_del(&tp->napi); + unregister_netdev(dev); rtl_release_firmware(tp); @@ -5469,7 +5524,20 @@ return -EIO; } -static inline void rtl8169_tso_csum(struct rtl8169_private *tp, +static bool rtl_skb_pad(struct sk_buff *skb) +{ + if (skb_padto(skb, ETH_ZLEN)) + return false; + skb_put(skb, ETH_ZLEN - skb->len); + return true; +} + +static bool rtl_test_hw_pad_bug(struct rtl8169_private *tp, struct sk_buff *skb) +{ + return skb->len < ETH_ZLEN && tp->mac_version == RTL_GIGA_MAC_VER_34; +} + +static inline bool rtl8169_tso_csum(struct rtl8169_private *tp, struct sk_buff *skb, u32 *opts) { const struct rtl_tx_desc_info *info = tx_desc_info + tp->txd_version; @@ -5482,13 +5550,20 @@ } else if (skb->ip_summed == CHECKSUM_PARTIAL) { const struct iphdr *ip = ip_hdr(skb); + if (unlikely(rtl_test_hw_pad_bug(tp, skb))) + return skb_checksum_help(skb) == 0 && rtl_skb_pad(skb); + if (ip->protocol == IPPROTO_TCP) opts[offset] |= info->checksum.tcp; else if (ip->protocol == IPPROTO_UDP) opts[offset] |= info->checksum.udp; else WARN_ON_ONCE(1); + } else { + if (unlikely(rtl_test_hw_pad_bug(tp, skb))) + return rtl_skb_pad(skb); } + return true; } static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb, @@ -5504,7 +5579,7 @@ u32 opts[2]; int frags; - if (unlikely(TX_BUFFS_AVAIL(tp) < skb_shinfo(skb)->nr_frags)) { + if (unlikely(!TX_FRAGS_READY_FOR(tp, skb_shinfo(skb)->nr_frags))) { netif_err(tp, drv, dev, "BUG! Tx Ring full when queue awake!\n"); goto err_stop_0; } @@ -5512,6 +5587,12 @@ if (unlikely(le32_to_cpu(txd->opts1) & DescOwn)) goto err_stop_0; + opts[1] = cpu_to_le32(rtl8169_tx_vlan_tag(tp, skb)); + opts[0] = DescOwn; + + if (!rtl8169_tso_csum(tp, skb, opts)) + goto err_update_stats; + len = skb_headlen(skb); mapping = dma_map_single(d, skb->data, len, DMA_TO_DEVICE); if (unlikely(dma_mapping_error(d, mapping))) { @@ -5523,11 +5604,6 @@ tp->tx_skb[entry].len = len; txd->addr = cpu_to_le64(mapping); - opts[1] = cpu_to_le32(rtl8169_tx_vlan_tag(tp, skb)); - opts[0] = DescOwn; - - rtl8169_tso_csum(tp, skb, opts); - frags = rtl8169_xmit_frags(tp, skb, opts); if (frags < 0) goto err_dma_1; @@ -5552,10 +5628,21 @@ RTL_W8(TxPoll, NPQ); - if (TX_BUFFS_AVAIL(tp) < MAX_SKB_FRAGS) { + if (!TX_FRAGS_READY_FOR(tp, MAX_SKB_FRAGS)) { + /* Avoid wrongly optimistic queue wake-up: rtl_tx thread must + * not miss a ring update when it notices a stopped queue. + */ + smp_wmb(); netif_stop_queue(dev); - smp_rmb(); - if (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS) + /* Sync with rtl_tx: + * - publish queue status and cur_tx ring index (write barrier) + * - refresh dirty_tx ring index (read barrier). + * May the current thread have a pessimistic view of the ring + * status and forget to wake up queue, a racing rtl_tx thread + * can't. + */ + smp_mb(); + if (TX_FRAGS_READY_FOR(tp, MAX_SKB_FRAGS)) netif_wake_queue(dev); } @@ -5565,6 +5652,7 @@ rtl8169_unmap_tx_skb(d, tp->tx_skb + entry, txd); err_dma_0: dev_kfree_skb(skb); +err_update_stats: dev->stats.tx_dropped++; return NETDEV_TX_OK; @@ -5655,9 +5743,16 @@ if (tp->dirty_tx != dirty_tx) { tp->dirty_tx = dirty_tx; - smp_wmb(); + /* Sync with rtl8169_start_xmit: + * - publish dirty_tx ring index (write barrier) + * - refresh cur_tx ring index and queue status (read barrier) + * May the current thread miss the stopped queue condition, + * a racing xmit thread can only have a right view of the + * ring status. + */ + smp_mb(); if (netif_queue_stopped(dev) && - (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) { + TX_FRAGS_READY_FOR(tp, MAX_SKB_FRAGS)) { netif_wake_queue(dev); } /* @@ -5666,7 +5761,6 @@ * of start_xmit activity is detected (if it is not detected, * it is slow enough). -- FR */ - smp_rmb(); if (tp->cur_tx != dirty_tx) RTL_W8(TxPoll, NPQ); } @@ -5740,7 +5834,6 @@ rtl8169_schedule_work(dev, rtl8169_reset_task); dev->stats.rx_fifo_errors++; } - rtl8169_mark_to_asic(desc, rx_buf_sz); } else { struct sk_buff *skb; dma_addr_t addr = le64_to_cpu(desc->addr); @@ -5754,16 +5847,14 @@ if (unlikely(rtl8169_fragmented_frame(status))) { dev->stats.rx_dropped++; dev->stats.rx_length_errors++; - rtl8169_mark_to_asic(desc, rx_buf_sz); - continue; + goto release_descriptor; } skb = rtl8169_try_rx_copy(tp->Rx_databuff[entry], tp, pkt_size, addr); - rtl8169_mark_to_asic(desc, rx_buf_sz); if (!skb) { dev->stats.rx_dropped++; - continue; + goto release_descriptor; } rtl8169_rx_csum(skb, status); @@ -5777,13 +5868,10 @@ dev->stats.rx_bytes += pkt_size; dev->stats.rx_packets++; } - - /* Work around for AMD plateform. */ - if ((desc->opts2 & cpu_to_le32(0xfffe000)) && - (tp->mac_version == RTL_GIGA_MAC_VER_05)) { - desc->opts2 = 0; - cur_rx++; - } +release_descriptor: + desc->opts2 = 0; + wmb(); + rtl8169_mark_to_asic(desc, rx_buf_sz); } count = cur_rx - tp->cur_rx; @@ -6014,6 +6102,9 @@ mc_filter[1] = swab32(data); } + if (tp->mac_version == RTL_GIGA_MAC_VER_35) + mc_filter[1] = mc_filter[0] = 0xffffffff; + RTL_W32(MAR0 + 4, mc_filter[1]); RTL_W32(MAR0 + 0, mc_filter[0]); @@ -6186,6 +6277,9 @@ { struct net_device *dev = pci_get_drvdata(pdev); struct rtl8169_private *tp = netdev_priv(dev); + struct device *d = &pdev->dev; + + pm_runtime_get_sync(d); rtl8169_net_suspend(dev); @@ -6207,6 +6301,8 @@ pci_wake_from_d3(pdev, true); pci_set_power_state(pdev, PCI_D3hot); } + + pm_runtime_put_noidle(d); } static struct pci_driver rtl8169_pci_driver = { --- linux-3.2.0.orig/drivers/net/ethernet/3com/3c59x.c +++ linux-3.2.0/drivers/net/ethernet/3com/3c59x.c @@ -632,7 +632,6 @@ pm_state_valid:1, /* pci_dev->saved_config_space has sane contents */ open:1, medialock:1, - must_free_region:1, /* Flag: if zero, Cardbus owns the I/O region */ large_frames:1, /* accept large frames */ handling_irq:1; /* private in_irq indicator */ /* {get|set}_wol operations are already serialized by rtnl. @@ -951,7 +950,7 @@ unregister_netdev(dev); iowrite16(TotalReset|0x14, ioaddr + EL3_CMD); - release_region(dev->base_addr, VORTEX_TOTAL_SIZE); + release_region(edev->base_addr, VORTEX_TOTAL_SIZE); free_netdev(dev); return 0; @@ -1012,6 +1011,12 @@ if (rc < 0) goto out; + rc = pci_request_regions(pdev, DRV_NAME); + if (rc < 0) { + pci_disable_device(pdev); + goto out; + } + unit = vortex_cards_found; if (global_use_mmio < 0 && (unit >= MAX_UNITS || use_mmio[unit] < 0)) { @@ -1027,6 +1032,7 @@ if (!ioaddr) /* If mapping fails, fall-back to BAR 0... */ ioaddr = pci_iomap(pdev, 0, 0); if (!ioaddr) { + pci_release_regions(pdev); pci_disable_device(pdev); rc = -ENOMEM; goto out; @@ -1036,6 +1042,7 @@ ent->driver_data, unit); if (rc < 0) { pci_iounmap(pdev, ioaddr); + pci_release_regions(pdev); pci_disable_device(pdev); goto out; } @@ -1180,11 +1187,6 @@ /* PCI-only startup logic */ if (pdev) { - /* EISA resources already marked, so only PCI needs to do this here */ - /* Ignore return value, because Cardbus drivers already allocate for us */ - if (request_region(dev->base_addr, vci->io_size, print_name) != NULL) - vp->must_free_region = 1; - /* enable bus-mastering if necessary */ if (vci->flags & PCI_USES_MASTER) pci_set_master(pdev); @@ -1222,7 +1224,7 @@ &vp->rx_ring_dma); retval = -ENOMEM; if (!vp->rx_ring) - goto free_region; + goto free_device; vp->tx_ring = (struct boom_tx_desc *)(vp->rx_ring + RX_RING_SIZE); vp->tx_ring_dma = vp->rx_ring_dma + sizeof(struct boom_rx_desc) * RX_RING_SIZE; @@ -1487,9 +1489,7 @@ + sizeof(struct boom_tx_desc) * TX_RING_SIZE, vp->rx_ring, vp->rx_ring_dma); -free_region: - if (vp->must_free_region) - release_region(dev->base_addr, vci->io_size); +free_device: free_netdev(dev); pr_err(PFX "vortex_probe1 fails. Returns %d\n", retval); out: @@ -1842,7 +1842,7 @@ ok = 1; } - if (!netif_carrier_ok(dev)) + if (dev->flags & IFF_SLAVE || !netif_carrier_ok(dev)) next_tick = 5*HZ; if (vp->medialock) @@ -2929,15 +2929,17 @@ { struct vortex_private *vp = netdev_priv(dev); - strcpy(info->driver, DRV_NAME); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); if (VORTEX_PCI(vp)) { - strcpy(info->bus_info, pci_name(VORTEX_PCI(vp))); + strlcpy(info->bus_info, pci_name(VORTEX_PCI(vp)), + sizeof(info->bus_info)); } else { if (VORTEX_EISA(vp)) - strcpy(info->bus_info, dev_name(vp->gendev)); + strlcpy(info->bus_info, dev_name(vp->gendev), + sizeof(info->bus_info)); else - sprintf(info->bus_info, "EISA 0x%lx %d", - dev->base_addr, dev->irq); + snprintf(info->bus_info, sizeof(info->bus_info), + "EISA 0x%lx %d", dev->base_addr, dev->irq); } } @@ -3254,8 +3256,9 @@ + sizeof(struct boom_tx_desc) * TX_RING_SIZE, vp->rx_ring, vp->rx_ring_dma); - if (vp->must_free_region) - release_region(dev->base_addr, vp->io_size); + + pci_release_regions(pdev); + free_netdev(dev); } --- linux-3.2.0.orig/drivers/net/ethernet/3com/typhoon.c +++ linux-3.2.0/drivers/net/ethernet/3com/typhoon.c @@ -988,21 +988,23 @@ smp_rmb(); if(tp->card_state == Sleeping) { - strcpy(info->fw_version, "Sleep image"); + strlcpy(info->fw_version, "Sleep image", + sizeof(info->fw_version)); } else { INIT_COMMAND_WITH_RESPONSE(&xp_cmd, TYPHOON_CMD_READ_VERSIONS); if(typhoon_issue_command(tp, 1, &xp_cmd, 3, xp_resp) < 0) { - strcpy(info->fw_version, "Unknown runtime"); + strlcpy(info->fw_version, "Unknown runtime", + sizeof(info->fw_version)); } else { u32 sleep_ver = le32_to_cpu(xp_resp[0].parm2); - snprintf(info->fw_version, 32, "%02x.%03x.%03x", - sleep_ver >> 24, (sleep_ver >> 12) & 0xfff, - sleep_ver & 0xfff); + snprintf(info->fw_version, sizeof(info->fw_version), + "%02x.%03x.%03x", sleep_ver >> 24, + (sleep_ver >> 12) & 0xfff, sleep_ver & 0xfff); } } - strcpy(info->driver, KBUILD_MODNAME); - strcpy(info->bus_info, pci_name(pci_dev)); + strlcpy(info->driver, KBUILD_MODNAME, sizeof(info->driver)); + strlcpy(info->bus_info, pci_name(pci_dev), sizeof(info->bus_info)); } static int --- linux-3.2.0.orig/drivers/net/ethernet/3com/3c589_cs.c +++ linux-3.2.0/drivers/net/ethernet/3com/3c589_cs.c @@ -468,9 +468,10 @@ static void netdev_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); - sprintf(info->bus_info, "PCMCIA 0x%lx", dev->base_addr); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + snprintf(info->bus_info, sizeof(info->bus_info), + "PCMCIA 0x%lx", dev->base_addr); } static const struct ethtool_ops netdev_ethtool_ops = { --- linux-3.2.0.orig/drivers/net/ethernet/3com/3c509.c +++ linux-3.2.0/drivers/net/ethernet/3com/3c509.c @@ -309,6 +309,7 @@ if (!dev) return -ENOMEM; + SET_NETDEV_DEV(dev, pdev); netdev_boot_setup_check(dev); if (!request_region(ioaddr, EL3_IO_EXTENT, "3c509-isa")) { @@ -704,6 +705,7 @@ return -ENOMEM; } + SET_NETDEV_DEV(dev, device); netdev_boot_setup_check(dev); el3_dev_fill(dev, phys_addr, ioaddr, irq, if_port, EL3_EISA); --- linux-3.2.0.orig/drivers/net/ethernet/atheros/atlx/atl1.c +++ linux-3.2.0/drivers/net/ethernet/atheros/atlx/atl1.c @@ -2473,7 +2473,7 @@ "pcie phy link down %x\n", status); if (netif_running(adapter->netdev)) { /* reset MAC */ iowrite32(0, adapter->hw.hw_addr + REG_IMR); - schedule_work(&adapter->pcie_dma_to_rst_task); + schedule_work(&adapter->reset_dev_task); return IRQ_HANDLED; } } @@ -2485,7 +2485,7 @@ "pcie DMA r/w error (status = 0x%x)\n", status); iowrite32(0, adapter->hw.hw_addr + REG_IMR); - schedule_work(&adapter->pcie_dma_to_rst_task); + schedule_work(&adapter->reset_dev_task); return IRQ_HANDLED; } @@ -2630,10 +2630,10 @@ atl1_clean_rx_ring(adapter); } -static void atl1_tx_timeout_task(struct work_struct *work) +static void atl1_reset_dev_task(struct work_struct *work) { struct atl1_adapter *adapter = - container_of(work, struct atl1_adapter, tx_timeout_task); + container_of(work, struct atl1_adapter, reset_dev_task); struct net_device *netdev = adapter->netdev; netif_device_detach(netdev); @@ -3032,12 +3032,10 @@ (unsigned long)adapter); adapter->phy_timer_pending = false; - INIT_WORK(&adapter->tx_timeout_task, atl1_tx_timeout_task); + INIT_WORK(&adapter->reset_dev_task, atl1_reset_dev_task); INIT_WORK(&adapter->link_chg_task, atlx_link_chg_task); - INIT_WORK(&adapter->pcie_dma_to_rst_task, atl1_tx_timeout_task); - err = register_netdev(netdev); if (err) goto err_common; --- linux-3.2.0.orig/drivers/net/ethernet/atheros/atlx/atl2.c +++ linux-3.2.0/drivers/net/ethernet/atheros/atlx/atl2.c @@ -2049,10 +2049,12 @@ { struct atl2_adapter *adapter = netdev_priv(netdev); - strncpy(drvinfo->driver, atl2_driver_name, 32); - strncpy(drvinfo->version, atl2_driver_version, 32); - strncpy(drvinfo->fw_version, "L2", 32); - strncpy(drvinfo->bus_info, pci_name(adapter->pdev), 32); + strlcpy(drvinfo->driver, atl2_driver_name, sizeof(drvinfo->driver)); + strlcpy(drvinfo->version, atl2_driver_version, + sizeof(drvinfo->version)); + strlcpy(drvinfo->fw_version, "L2", sizeof(drvinfo->fw_version)); + strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), + sizeof(drvinfo->bus_info)); drvinfo->n_stats = 0; drvinfo->testinfo_len = 0; drvinfo->regdump_len = atl2_get_regs_len(netdev); --- linux-3.2.0.orig/drivers/net/ethernet/atheros/atlx/atlx.c +++ linux-3.2.0/drivers/net/ethernet/atheros/atlx/atlx.c @@ -193,7 +193,7 @@ { struct atlx_adapter *adapter = netdev_priv(netdev); /* Do the reset outside of interrupt context */ - schedule_work(&adapter->tx_timeout_task); + schedule_work(&adapter->reset_dev_task); } /* --- linux-3.2.0.orig/drivers/net/ethernet/atheros/atlx/atl1.h +++ linux-3.2.0/drivers/net/ethernet/atheros/atlx/atl1.h @@ -758,9 +758,8 @@ u16 link_speed; u16 link_duplex; spinlock_t lock; - struct work_struct tx_timeout_task; + struct work_struct reset_dev_task; struct work_struct link_chg_task; - struct work_struct pcie_dma_to_rst_task; struct timer_list phy_config_timer; bool phy_timer_pending; --- linux-3.2.0.orig/drivers/net/ethernet/atheros/atl1e/atl1e_main.c +++ linux-3.2.0/drivers/net/ethernet/atheros/atl1e/atl1e_main.c @@ -1685,8 +1685,8 @@ return 0; } -static void atl1e_tx_map(struct atl1e_adapter *adapter, - struct sk_buff *skb, struct atl1e_tpd_desc *tpd) +static int atl1e_tx_map(struct atl1e_adapter *adapter, + struct sk_buff *skb, struct atl1e_tpd_desc *tpd) { struct atl1e_tpd_desc *use_tpd = NULL; struct atl1e_tx_buffer *tx_buffer = NULL; @@ -1697,6 +1697,8 @@ u16 nr_frags; u16 f; int segment; + int ring_start = adapter->tx_ring.next_to_use; + int ring_end; nr_frags = skb_shinfo(skb)->nr_frags; segment = (tpd->word3 >> TPD_SEGMENT_EN_SHIFT) & TPD_SEGMENT_EN_MASK; @@ -1709,6 +1711,9 @@ tx_buffer->length = map_len; tx_buffer->dma = pci_map_single(adapter->pdev, skb->data, hdr_len, PCI_DMA_TODEVICE); + if (dma_mapping_error(&adapter->pdev->dev, tx_buffer->dma)) + return -ENOSPC; + ATL1E_SET_PCIMAP_TYPE(tx_buffer, ATL1E_TX_PCIMAP_SINGLE); mapped_len += map_len; use_tpd->buffer_addr = cpu_to_le64(tx_buffer->dma); @@ -1735,6 +1740,22 @@ tx_buffer->dma = pci_map_single(adapter->pdev, skb->data + mapped_len, map_len, PCI_DMA_TODEVICE); + + if (dma_mapping_error(&adapter->pdev->dev, tx_buffer->dma)) { + /* We need to unwind the mappings we've done */ + ring_end = adapter->tx_ring.next_to_use; + adapter->tx_ring.next_to_use = ring_start; + while (adapter->tx_ring.next_to_use != ring_end) { + tpd = atl1e_get_tpd(adapter); + tx_buffer = atl1e_get_tx_buffer(adapter, tpd); + pci_unmap_single(adapter->pdev, tx_buffer->dma, + tx_buffer->length, PCI_DMA_TODEVICE); + } + /* Reset the tx rings next pointer */ + adapter->tx_ring.next_to_use = ring_start; + return -ENOSPC; + } + ATL1E_SET_PCIMAP_TYPE(tx_buffer, ATL1E_TX_PCIMAP_SINGLE); mapped_len += map_len; use_tpd->buffer_addr = cpu_to_le64(tx_buffer->dma); @@ -1770,6 +1791,23 @@ (i * MAX_TX_BUF_LEN), tx_buffer->length, DMA_TO_DEVICE); + + if (dma_mapping_error(&adapter->pdev->dev, tx_buffer->dma)) { + /* We need to unwind the mappings we've done */ + ring_end = adapter->tx_ring.next_to_use; + adapter->tx_ring.next_to_use = ring_start; + while (adapter->tx_ring.next_to_use != ring_end) { + tpd = atl1e_get_tpd(adapter); + tx_buffer = atl1e_get_tx_buffer(adapter, tpd); + dma_unmap_page(&adapter->pdev->dev, tx_buffer->dma, + tx_buffer->length, DMA_TO_DEVICE); + } + + /* Reset the ring next to use pointer */ + adapter->tx_ring.next_to_use = ring_start; + return -ENOSPC; + } + ATL1E_SET_PCIMAP_TYPE(tx_buffer, ATL1E_TX_PCIMAP_PAGE); use_tpd->buffer_addr = cpu_to_le64(tx_buffer->dma); use_tpd->word2 = (use_tpd->word2 & (~TPD_BUFLEN_MASK)) | @@ -1787,6 +1825,7 @@ /* The last buffer info contain the skb address, so it will be free after unmap */ tx_buffer->skb = skb; + return 0; } static void atl1e_tx_queue(struct atl1e_adapter *adapter, u16 count, @@ -1854,10 +1893,15 @@ return NETDEV_TX_OK; } - atl1e_tx_map(adapter, skb, tpd); + if (atl1e_tx_map(adapter, skb, tpd)) { + dev_kfree_skb_any(skb); + goto out; + } + atl1e_tx_queue(adapter, tpd_req, tpd); netdev->trans_start = jiffies; /* NETIF_F_LLTX driver :( */ +out: spin_unlock_irqrestore(&adapter->tx_lock, flags); return NETDEV_TX_OK; } @@ -1867,37 +1911,19 @@ struct net_device *netdev = adapter->netdev; free_irq(adapter->pdev->irq, netdev); - - if (adapter->have_msi) - pci_disable_msi(adapter->pdev); } static int atl1e_request_irq(struct atl1e_adapter *adapter) { struct pci_dev *pdev = adapter->pdev; struct net_device *netdev = adapter->netdev; - int flags = 0; int err = 0; - adapter->have_msi = true; - err = pci_enable_msi(adapter->pdev); - if (err) { - netdev_dbg(adapter->netdev, - "Unable to allocate MSI interrupt Error: %d\n", err); - adapter->have_msi = false; - } else - netdev->irq = pdev->irq; - - - if (!adapter->have_msi) - flags |= IRQF_SHARED; - err = request_irq(adapter->pdev->irq, atl1e_intr, flags, - netdev->name, netdev); + err = request_irq(pdev->irq, atl1e_intr, IRQF_SHARED, + netdev->name, netdev); if (err) { netdev_dbg(adapter->netdev, "Unable to allocate interrupt Error: %d\n", err); - if (adapter->have_msi) - pci_disable_msi(adapter->pdev); return err; } netdev_dbg(adapter->netdev, "atl1e_request_irq OK\n"); @@ -2370,6 +2396,7 @@ INIT_WORK(&adapter->reset_task, atl1e_reset_task); INIT_WORK(&adapter->link_chg_task, atl1e_link_chg_task); + netif_set_gso_max_size(netdev, MAX_TSO_SEG_SIZE); err = register_netdev(netdev); if (err) { netdev_err(netdev, "register netdevice failed\n"); --- linux-3.2.0.orig/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c +++ linux-3.2.0/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c @@ -310,10 +310,12 @@ { struct atl1e_adapter *adapter = netdev_priv(netdev); - strncpy(drvinfo->driver, atl1e_driver_name, 32); - strncpy(drvinfo->version, atl1e_driver_version, 32); - strncpy(drvinfo->fw_version, "L1e", 32); - strncpy(drvinfo->bus_info, pci_name(adapter->pdev), 32); + strlcpy(drvinfo->driver, atl1e_driver_name, sizeof(drvinfo->driver)); + strlcpy(drvinfo->version, atl1e_driver_version, + sizeof(drvinfo->version)); + strlcpy(drvinfo->fw_version, "L1e", sizeof(drvinfo->fw_version)); + strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), + sizeof(drvinfo->bus_info)); drvinfo->n_stats = 0; drvinfo->testinfo_len = 0; drvinfo->regdump_len = atl1e_get_regs_len(netdev); --- linux-3.2.0.orig/drivers/net/ethernet/atheros/atl1e/atl1e.h +++ linux-3.2.0/drivers/net/ethernet/atheros/atl1e/atl1e.h @@ -186,7 +186,7 @@ /* how about 0x2000 */ #define MAX_TX_BUF_LEN 0x2000 #define MAX_TX_BUF_SHIFT 13 -/*#define MAX_TX_BUF_LEN 0x3000 */ +#define MAX_TSO_SEG_SIZE 0x3c00 /* rrs word 1 bit 0:31 */ #define RRS_RX_CSUM_MASK 0xFFFF @@ -438,7 +438,6 @@ struct atl1e_hw hw; struct atl1e_hw_stats hw_stats; - bool have_msi; u32 wol; u16 link_speed; u16 link_duplex; --- linux-3.2.0.orig/drivers/net/ethernet/atheros/atl1c/atl1c_main.c +++ linux-3.2.0/drivers/net/ethernet/atheros/atl1c/atl1c_main.c @@ -267,7 +267,6 @@ dev_warn(&pdev->dev, "stop mac failed\n"); atl1c_set_aspm(hw, false); netif_carrier_off(netdev); - netif_stop_queue(netdev); atl1c_phy_reset(hw); atl1c_phy_init(&adapter->hw); } else { @@ -2241,10 +2240,6 @@ dev_info(&adapter->pdev->dev, "tx locked\n"); return NETDEV_TX_LOCKED; } - if (skb->mark == 0x01) - type = atl1c_trans_high; - else - type = atl1c_trans_normal; if (atl1c_tpd_avail(adapter, type) < tpd_req) { /* no enough descriptor, just stop queue */ --- linux-3.2.0.orig/drivers/net/ethernet/renesas/sh_eth.h +++ linux-3.2.0/drivers/net/ethernet/renesas/sh_eth.h @@ -461,7 +461,7 @@ #define DEFAULT_TX_CHECK (EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | \ EESR_RTO) -#define DEFAULT_EESR_ERR_CHECK (EESR_TWB | EESR_TABT | EESR_RABT | \ +#define DEFAULT_EESR_ERR_CHECK (EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE | \ EESR_RDE | EESR_RFRMER | EESR_ADE | \ EESR_TFE | EESR_TDE | EESR_ECI) #define DEFAULT_TX_ERROR_CHECK (EESR_TWB | EESR_TABT | EESR_ADE | EESR_TDE | \ --- linux-3.2.0.orig/drivers/net/ethernet/renesas/sh_eth.c +++ linux-3.2.0/drivers/net/ethernet/renesas/sh_eth.c @@ -136,8 +136,9 @@ .rmcr_value = 0x00000001, .tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO, - .eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RDE | - EESR_RFRMER | EESR_TFE | EESR_TDE | EESR_ECI, + .eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE | + EESR_RDE | EESR_RFRMER | EESR_TFE | EESR_TDE | + EESR_ECI, .tx_error_check = EESR_TWB | EESR_TABT | EESR_TDE | EESR_TFE, .apr = 1, @@ -251,9 +252,9 @@ .eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff, .tx_check = EESR_TC1 | EESR_FTC, - .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT | \ - EESR_RDE | EESR_RFRMER | EESR_TFE | EESR_TDE | \ - EESR_ECI, + .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT | + EESR_RFE | EESR_RDE | EESR_RFRMER | EESR_TFE | + EESR_TDE | EESR_ECI, .tx_error_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_TDE | \ EESR_TFE, .fdr_value = 0x0000072f, @@ -355,9 +356,9 @@ .eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff, .tx_check = EESR_TC1 | EESR_FTC, - .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT | \ - EESR_RDE | EESR_RFRMER | EESR_TFE | EESR_TDE | \ - EESR_ECI, + .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT | + EESR_RFE | EESR_RDE | EESR_RFRMER | EESR_TFE | + EESR_TDE | EESR_ECI, .tx_error_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_TDE | \ EESR_TFE, --- linux-3.2.0.orig/drivers/net/ethernet/neterion/s2io.c +++ linux-3.2.0/drivers/net/ethernet/neterion/s2io.c @@ -5391,10 +5391,10 @@ { struct s2io_nic *sp = netdev_priv(dev); - strncpy(info->driver, s2io_driver_name, sizeof(info->driver)); - strncpy(info->version, s2io_driver_version, sizeof(info->version)); - strncpy(info->fw_version, "", sizeof(info->fw_version)); - strncpy(info->bus_info, pci_name(sp->pdev), sizeof(info->bus_info)); + strlcpy(info->driver, s2io_driver_name, sizeof(info->driver)); + strlcpy(info->version, s2io_driver_version, sizeof(info->version)); + strlcpy(info->fw_version, "", sizeof(info->fw_version)); + strlcpy(info->bus_info, pci_name(sp->pdev), sizeof(info->bus_info)); info->regdump_len = XENA_REG_SPACE; info->eedump_len = XENA_EEPROM_SPACE; } --- linux-3.2.0.orig/drivers/net/ethernet/packetengines/Kconfig +++ linux-3.2.0/drivers/net/ethernet/packetengines/Kconfig @@ -4,6 +4,7 @@ config NET_PACKET_ENGINE bool "Packet Engine devices" + default y depends on PCI ---help--- If you have a network (Ethernet) card belonging to this class, say Y --- linux-3.2.0.orig/drivers/net/ethernet/sfc/nic.h +++ linux-3.2.0/drivers/net/ethernet/sfc/nic.h @@ -65,6 +65,11 @@ #define FALCON_GMAC_LOOPBACKS \ (1 << LOOPBACK_GMAC) +/* Alignment of PCIe DMA boundaries (4KB) */ +#define EFX_PAGE_SIZE 4096 +/* Size and alignment of buffer table entries (same) */ +#define EFX_BUF_SIZE EFX_PAGE_SIZE + /** * struct falcon_board_type - board operations and type information * @id: Board type id, as found in NVRAM @@ -207,6 +212,8 @@ /* Global Resources */ extern int efx_nic_flush_queues(struct efx_nic *efx); +extern void siena_prepare_flush(struct efx_nic *efx); +extern void siena_finish_flush(struct efx_nic *efx); extern void falcon_start_nic_stats(struct efx_nic *efx); extern void falcon_stop_nic_stats(struct efx_nic *efx); extern void falcon_setup_xaui(struct efx_nic *efx); --- linux-3.2.0.orig/drivers/net/ethernet/sfc/nic.c +++ linux-3.2.0/drivers/net/ethernet/sfc/nic.c @@ -54,9 +54,6 @@ #define EFX_FLUSH_INTERVAL 10 #define EFX_FLUSH_POLL_COUNT 100 -/* Size and alignment of special buffers (4KB) */ -#define EFX_BUF_SIZE 4096 - /* Depth of RX flush request fifo */ #define EFX_RX_FLUSH_COUNT 4 @@ -196,7 +193,7 @@ /* Write buffer descriptors to NIC */ for (i = 0; i < buffer->entries; i++) { index = buffer->index + i; - dma_addr = buffer->dma_addr + (i * 4096); + dma_addr = buffer->dma_addr + (i * EFX_BUF_SIZE); netif_dbg(efx, probe, efx->net_dev, "mapping special buffer %d at %llx\n", index, (unsigned long long)dma_addr); @@ -371,7 +368,8 @@ return false; tx_queue->empty_read_count = 0; - return ((empty_read_count ^ write_count) & ~EFX_EMPTY_COUNT_VALID) == 0; + return ((empty_read_count ^ write_count) & ~EFX_EMPTY_COUNT_VALID) == 0 + && tx_queue->write_count - write_count == 1; } /* For each entry inserted into the software descriptor ring, create a @@ -1261,13 +1259,27 @@ } efx_for_each_possible_channel_tx_queue(tx_queue, channel) { if (tx_queue->initialised && - tx_queue->flushed != FLUSH_DONE) - ++tx_pending; + tx_queue->flushed != FLUSH_DONE) { + efx_oword_t txd_ptr_tbl; + + efx_reado_table(efx, &txd_ptr_tbl, + FR_BZ_TX_DESC_PTR_TBL, + tx_queue->queue); + if (EFX_OWORD_FIELD(txd_ptr_tbl, + FRF_AZ_TX_DESCQ_FLUSH) || + EFX_OWORD_FIELD(txd_ptr_tbl, + FRF_AZ_TX_DESCQ_EN)) + ++tx_pending; + else + tx_queue->flushed = FLUSH_DONE; + } } } - if (rx_pending == 0 && tx_pending == 0) + if (rx_pending == 0 && tx_pending == 0) { + efx->type->finish_flush(efx); return 0; + } msleep(EFX_FLUSH_INTERVAL); efx_poll_flush_events(efx); @@ -1293,6 +1305,7 @@ } } + efx->type->finish_flush(efx); return -ETIMEDOUT; } --- linux-3.2.0.orig/drivers/net/ethernet/sfc/efx.c +++ linux-3.2.0/drivers/net/ethernet/sfc/efx.c @@ -650,25 +650,30 @@ struct efx_channel *channel; struct efx_tx_queue *tx_queue; struct efx_rx_queue *rx_queue; + struct pci_dev *dev = efx->pci_dev; int rc; EFX_ASSERT_RESET_SERIALISED(efx); BUG_ON(efx->port_enabled); - rc = efx_nic_flush_queues(efx); - if (rc && EFX_WORKAROUND_7803(efx)) { - /* Schedule a reset to recover from the flush failure. The - * descriptor caches reference memory we're about to free, - * but falcon_reconfigure_mac_wrapper() won't reconnect - * the MACs because of the pending reset. */ - netif_err(efx, drv, efx->net_dev, - "Resetting to recover from flush failure\n"); - efx_schedule_reset(efx, RESET_TYPE_ALL); - } else if (rc) { - netif_err(efx, drv, efx->net_dev, "failed to flush queues\n"); - } else { - netif_dbg(efx, drv, efx->net_dev, - "successfully flushed all queues\n"); + /* Only perform flush if dma is enabled */ + if (dev->is_busmaster) { + rc = efx_nic_flush_queues(efx); + + if (rc && EFX_WORKAROUND_7803(efx)) { + /* Schedule a reset to recover from the flush failure. The + * descriptor caches reference memory we're about to free, + * but falcon_reconfigure_mac_wrapper() won't reconnect + * the MACs because of the pending reset. */ + netif_err(efx, drv, efx->net_dev, + "Resetting to recover from flush failure\n"); + efx_schedule_reset(efx, RESET_TYPE_ALL); + } else if (rc) { + netif_err(efx, drv, efx->net_dev, "failed to flush queues\n"); + } else { + netif_dbg(efx, drv, efx->net_dev, + "successfully flushed all queues\n"); + } } efx_for_each_channel(channel, efx) { @@ -714,6 +719,7 @@ unsigned i; int rc; + efx_device_detach_sync(efx); efx_stop_all(efx); efx_fini_channels(efx); @@ -757,6 +763,7 @@ efx_init_channels(efx); efx_start_all(efx); + netif_device_attach(efx->net_dev); return rc; rollback: @@ -1383,6 +1390,11 @@ goto fail2; } + BUILD_BUG_ON(EFX_DEFAULT_DMAQ_SIZE < EFX_RXQ_MIN_ENT); + if (WARN_ON(EFX_DEFAULT_DMAQ_SIZE < EFX_TXQ_MIN_ENT(efx))) { + rc = -EINVAL; + goto fail3; + } efx->rxq_entries = efx->txq_entries = EFX_DEFAULT_DMAQ_SIZE; rc = efx_probe_channels(efx); if (rc) @@ -1520,8 +1532,12 @@ /* Flush efx_mac_work(), refill_workqueue, monitor_work */ efx_flush_all(efx); - /* Stop the kernel transmit interface late, so the watchdog - * timer isn't ticking over the flush */ + /* Stop the kernel transmit interface. This is only valid if + * the device is stopped or detached; otherwise the watchdog + * may fire immediately. + */ + WARN_ON(netif_running(efx->net_dev) && + netif_device_present(efx->net_dev)); if (efx_dev_registered(efx)) { netif_tx_stop_all_queues(efx->net_dev); netif_tx_lock_bh(efx->net_dev); @@ -1822,10 +1838,11 @@ if (new_mtu > EFX_MAX_MTU) return -EINVAL; - efx_stop_all(efx); - netif_dbg(efx, drv, efx->net_dev, "changing MTU to %d\n", new_mtu); + efx_device_detach_sync(efx); + efx_stop_all(efx); + efx_fini_channels(efx); mutex_lock(&efx->mac_lock); @@ -1838,6 +1855,7 @@ efx_init_channels(efx); efx_start_all(efx); + netif_device_attach(efx->net_dev); return rc; } @@ -1973,6 +1991,7 @@ net_dev->irq = efx->pci_dev->irq; net_dev->netdev_ops = &efx_netdev_ops; SET_ETHTOOL_OPS(net_dev, &efx_ethtool_ops); + net_dev->gso_max_segs = EFX_TSO_MAX_SEGS; /* Clear MAC statistics */ efx->mac_op->update_stats(efx); @@ -2126,7 +2145,7 @@ netif_info(efx, drv, efx->net_dev, "resetting (%s)\n", RESET_TYPE(method)); - netif_device_detach(efx->net_dev); + efx_device_detach_sync(efx); efx_reset_down(efx, method); rc = efx->type->reset(efx, method); @@ -2574,7 +2593,7 @@ efx->state = STATE_FINI; - netif_device_detach(efx->net_dev); + efx_device_detach_sync(efx); efx_stop_all(efx); efx_fini_channels(efx); --- linux-3.2.0.orig/drivers/net/ethernet/sfc/net_driver.h +++ linux-3.2.0/drivers/net/ethernet/sfc/net_driver.h @@ -213,6 +213,7 @@ * If both this and page are %NULL, the buffer slot is currently free. * @page: The associated page buffer, if any. * If both this and skb are %NULL, the buffer slot is currently free. + * @page_offset: Offset within page. Valid iff @flags & %EFX_RX_BUF_PAGE. * @len: Buffer length, in bytes. * @is_page: Indicates if @page is valid. If false, @skb is valid. */ @@ -222,7 +223,8 @@ struct sk_buff *skb; struct page *page; } u; - unsigned int len; + u16 page_offset; + u16 len; bool is_page; }; @@ -689,6 +691,9 @@ * @promiscuous: Promiscuous flag. Protected by netif_tx_lock. * @multicast_hash: Multicast hash table * @wanted_fc: Wanted flow control flags + * @fc_disable: When non-zero flow control is disabled. Typically used to + * ensure that network back pressure doesn't delay dma queue flushes. + * Serialised by the rtnl lock. * @mac_work: Work item for changing MAC promiscuity and multicast hash * @loopback_mode: Loopback status * @loopback_modes: Supported loopback mode bitmask @@ -782,6 +787,7 @@ bool promiscuous; union efx_multicast_hash multicast_hash; u8 wanted_fc; + unsigned fc_disable; atomic_t rx_reset; enum efx_loopback_mode loopback_mode; @@ -835,6 +841,7 @@ * @remove_port: Free resources allocated by probe_port() * @handle_global_event: Handle a "global" event (may be %NULL) * @prepare_flush: Prepare the hardware for flushing the DMA queues + * @finish_flush: Clean up after flushing the DMA queues * @update_stats: Update statistics not provided by event handling * @start_stats: Start the regular fetching of statistics * @stop_stats: Stop the regular fetching of statistics @@ -880,6 +887,7 @@ void (*remove_port)(struct efx_nic *efx); bool (*handle_global_event)(struct efx_channel *channel, efx_qword_t *); void (*prepare_flush)(struct efx_nic *efx); + void (*finish_flush)(struct efx_nic *efx); void (*update_stats)(struct efx_nic *efx); void (*start_stats)(struct efx_nic *efx); void (*stop_stats)(struct efx_nic *efx); --- linux-3.2.0.orig/drivers/net/ethernet/sfc/ethtool.c +++ linux-3.2.0/drivers/net/ethernet/sfc/ethtool.c @@ -690,21 +690,27 @@ struct ethtool_ringparam *ring) { struct efx_nic *efx = netdev_priv(net_dev); + u32 txq_entries; if (ring->rx_mini_pending || ring->rx_jumbo_pending || ring->rx_pending > EFX_MAX_DMAQ_SIZE || ring->tx_pending > EFX_MAX_DMAQ_SIZE) return -EINVAL; - if (ring->rx_pending < EFX_MIN_RING_SIZE || - ring->tx_pending < EFX_MIN_RING_SIZE) { + if (ring->rx_pending < EFX_RXQ_MIN_ENT) { netif_err(efx, drv, efx->net_dev, - "TX and RX queues cannot be smaller than %ld\n", - EFX_MIN_RING_SIZE); + "RX queues cannot be smaller than %u\n", + EFX_RXQ_MIN_ENT); return -EINVAL; } - return efx_realloc_channels(efx, ring->rx_pending, ring->tx_pending); + txq_entries = max(ring->tx_pending, EFX_TXQ_MIN_ENT(efx)); + if (txq_entries != ring->tx_pending) + netif_warn(efx, drv, efx->net_dev, + "increasing TX queue size to minimum of %u\n", + txq_entries); + + return efx_realloc_channels(efx, ring->rx_pending, txq_entries); } static int efx_ethtool_set_pauseparam(struct net_device *net_dev, --- linux-3.2.0.orig/drivers/net/ethernet/sfc/efx.h +++ linux-3.2.0/drivers/net/ethernet/sfc/efx.h @@ -34,6 +34,7 @@ efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb); extern void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index); extern int efx_setup_tc(struct net_device *net_dev, u8 num_tc); +extern unsigned int efx_tx_max_skb_descs(struct efx_nic *efx); /* RX */ extern int efx_probe_rx_queue(struct efx_rx_queue *rx_queue); @@ -56,10 +57,15 @@ #define EFX_MAX_EVQ_SIZE 16384UL #define EFX_MIN_EVQ_SIZE 512UL -/* The smallest [rt]xq_entries that the driver supports. Callers of - * efx_wake_queue() assume that they can subsequently send at least one - * skb. Falcon/A1 may require up to three descriptors per skb_frag. */ -#define EFX_MIN_RING_SIZE (roundup_pow_of_two(2 * 3 * MAX_SKB_FRAGS)) +/* Maximum number of TCP segments we support for soft-TSO */ +#define EFX_TSO_MAX_SEGS 100 + +/* The smallest [rt]xq_entries that the driver supports. RX minimum + * is a bit arbitrary. For TX, we must have space for at least 2 + * TSO skbs. + */ +#define EFX_RXQ_MIN_ENT 128U +#define EFX_TXQ_MIN_ENT(efx) (2 * efx_tx_max_skb_descs(efx)) /* Filters */ extern int efx_probe_filters(struct efx_nic *efx); @@ -143,4 +149,17 @@ extern void efx_link_set_advertising(struct efx_nic *efx, u32); extern void efx_link_set_wanted_fc(struct efx_nic *efx, u8); +static inline void efx_device_detach_sync(struct efx_nic *efx) +{ + struct net_device *dev = efx->net_dev; + + /* Lock/freeze all TX queues so that we can be sure the + * TX scheduler is stopped when we're done and before + * netif_device_present() becomes false. + */ + netif_tx_lock_bh(dev); + netif_device_detach(dev); + netif_tx_unlock_bh(dev); +} + #endif /* EFX_EFX_H */ --- linux-3.2.0.orig/drivers/net/ethernet/sfc/falcon.c +++ linux-3.2.0/drivers/net/ethernet/sfc/falcon.c @@ -1762,6 +1762,7 @@ .remove_port = falcon_remove_port, .handle_global_event = falcon_handle_global_event, .prepare_flush = falcon_prepare_flush, + .finish_flush = efx_port_dummy_op_void, .update_stats = falcon_update_nic_stats, .start_stats = falcon_start_nic_stats, .stop_stats = falcon_stop_nic_stats, @@ -1804,6 +1805,7 @@ .remove_port = falcon_remove_port, .handle_global_event = falcon_handle_global_event, .prepare_flush = falcon_prepare_flush, + .finish_flush = efx_port_dummy_op_void, .update_stats = falcon_update_nic_stats, .start_stats = falcon_start_nic_stats, .stop_stats = falcon_stop_nic_stats, --- linux-3.2.0.orig/drivers/net/ethernet/sfc/selftest.c +++ linux-3.2.0/drivers/net/ethernet/sfc/selftest.c @@ -698,7 +698,7 @@ /* Detach the device so the kernel doesn't transmit during the * loopback test and the watchdog timeout doesn't fire. */ - netif_device_detach(efx->net_dev); + efx_device_detach_sync(efx); mutex_lock(&efx->mac_lock); if (efx->loopback_modes) { --- linux-3.2.0.orig/drivers/net/ethernet/sfc/mcdi.c +++ linux-3.2.0/drivers/net/ethernet/sfc/mcdi.c @@ -30,7 +30,7 @@ #define REBOOT_FLAG_PORT0 0x3f8 #define REBOOT_FLAG_PORT1 0x3fc -#define MCDI_RPC_TIMEOUT 10 /*seconds */ +#define MCDI_RPC_TIMEOUT (10 * HZ) #define MCDI_PDU(efx) \ (efx_port_num(efx) ? CMD_PDU_PORT1 : CMD_PDU_PORT0) @@ -120,7 +120,7 @@ static int efx_mcdi_poll(struct efx_nic *efx) { struct efx_mcdi_iface *mcdi = efx_mcdi(efx); - unsigned int time, finish; + unsigned long time, finish; unsigned int respseq, respcmd, error; unsigned int pdu = FR_CZ_MC_TREG_SMEM + MCDI_PDU(efx); unsigned int rc, spins; @@ -136,7 +136,7 @@ * and poll once a jiffy (approximately) */ spins = TICK_USEC; - finish = get_seconds() + MCDI_RPC_TIMEOUT; + finish = jiffies + MCDI_RPC_TIMEOUT; while (1) { if (spins != 0) { @@ -146,7 +146,7 @@ schedule_timeout_uninterruptible(1); } - time = get_seconds(); + time = jiffies; rmb(); efx_readd(efx, ®, pdu); @@ -158,7 +158,7 @@ EFX_DWORD_FIELD(reg, MCDI_HEADER_RESPONSE)) break; - if (time >= finish) + if (time_after(time, finish)) return -ETIMEDOUT; } @@ -250,7 +250,7 @@ if (wait_event_timeout( mcdi->wq, atomic_read(&mcdi->state) == MCDI_STATE_COMPLETED, - msecs_to_jiffies(MCDI_RPC_TIMEOUT * 1000)) == 0) + MCDI_RPC_TIMEOUT) == 0) return -ETIMEDOUT; /* Check if efx_mcdi_set_mode() switched us back to polled completions. @@ -666,9 +666,8 @@ u16 *fw_subtype_list) { uint8_t outbuf[MC_CMD_GET_BOARD_CFG_OUT_LEN]; - size_t outlen; + size_t outlen, offset, i; int port_num = efx_port_num(efx); - int offset; int rc; BUILD_BUG_ON(MC_CMD_GET_BOARD_CFG_IN_LEN != 0); @@ -688,10 +687,16 @@ : MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_OFST; if (mac_address) memcpy(mac_address, outbuf + offset, ETH_ALEN); - if (fw_subtype_list) - memcpy(fw_subtype_list, - outbuf + MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_OFST, - MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_LEN); + if (fw_subtype_list) { + offset = MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_OFST; + for (i = 0; + i < MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_LEN / 2; + i++) { + fw_subtype_list[i] = + le16_to_cpup((__le16 *)(outbuf + offset)); + offset += 2; + } + } return 0; --- linux-3.2.0.orig/drivers/net/ethernet/sfc/mcdi.h +++ linux-3.2.0/drivers/net/ethernet/sfc/mcdi.h @@ -126,5 +126,6 @@ extern int efx_mcdi_wol_filter_get_magic(struct efx_nic *efx, int *id_out); extern int efx_mcdi_wol_filter_remove(struct efx_nic *efx, int id); extern int efx_mcdi_wol_filter_reset(struct efx_nic *efx); +extern int efx_mcdi_set_mac(struct efx_nic *efx); #endif /* EFX_MCDI_H */ --- linux-3.2.0.orig/drivers/net/ethernet/sfc/siena.c +++ linux-3.2.0/drivers/net/ethernet/sfc/siena.c @@ -137,6 +137,18 @@ efx_nic_free_buffer(efx, &efx->stats_buffer); } +void siena_prepare_flush(struct efx_nic *efx) +{ + if (efx->fc_disable++ == 0) + efx_mcdi_set_mac(efx); +} + +void siena_finish_flush(struct efx_nic *efx) +{ + if (--efx->fc_disable == 0) + efx_mcdi_set_mac(efx); +} + static const struct efx_nic_register_test siena_register_tests[] = { { FR_AZ_ADR_REGION, EFX_OWORD32(0x0003FFFF, 0x0003FFFF, 0x0003FFFF, 0x0003FFFF) }, @@ -624,7 +636,8 @@ .reset = siena_reset_hw, .probe_port = siena_probe_port, .remove_port = siena_remove_port, - .prepare_flush = efx_port_dummy_op_void, + .prepare_flush = siena_prepare_flush, + .finish_flush = siena_finish_flush, .update_stats = siena_update_nic_stats, .start_stats = siena_start_nic_stats, .stop_stats = siena_stop_nic_stats, --- linux-3.2.0.orig/drivers/net/ethernet/sfc/rx.c +++ linux-3.2.0/drivers/net/ethernet/sfc/rx.c @@ -95,11 +95,7 @@ static inline unsigned int efx_rx_buf_offset(struct efx_nic *efx, struct efx_rx_buffer *buf) { - /* Offset is always within one page, so we don't need to consider - * the page order. - */ - return (((__force unsigned long) buf->dma_addr & (PAGE_SIZE - 1)) + - efx->type->rx_buffer_hash_size); + return buf->page_offset + efx->type->rx_buffer_hash_size; } static inline unsigned int efx_rx_buf_size(struct efx_nic *efx) { @@ -156,11 +152,10 @@ if (unlikely(!skb)) return -ENOMEM; - /* Adjust the SKB for padding and checksum */ + /* Adjust the SKB for padding */ skb_reserve(skb, NET_IP_ALIGN); rx_buf->len = skb_len - NET_IP_ALIGN; rx_buf->is_page = false; - skb->ip_summed = CHECKSUM_UNNECESSARY; rx_buf->dma_addr = pci_map_single(efx->pci_dev, skb->data, rx_buf->len, @@ -195,6 +190,7 @@ struct efx_rx_buffer *rx_buf; struct page *page; void *page_addr; + unsigned int page_offset; struct efx_rx_page_state *state; dma_addr_t dma_addr; unsigned index, count; @@ -221,12 +217,14 @@ page_addr += sizeof(struct efx_rx_page_state); dma_addr += sizeof(struct efx_rx_page_state); + page_offset = sizeof(struct efx_rx_page_state); split: index = rx_queue->added_count & rx_queue->ptr_mask; rx_buf = efx_rx_buffer(rx_queue, index); rx_buf->dma_addr = dma_addr + EFX_PAGE_IP_ALIGN; rx_buf->u.page = page; + rx_buf->page_offset = page_offset + EFX_PAGE_IP_ALIGN; rx_buf->len = efx->rx_buffer_len - EFX_PAGE_IP_ALIGN; rx_buf->is_page = true; ++rx_queue->added_count; @@ -238,6 +236,7 @@ get_page(page); dma_addr += (PAGE_SIZE >> 1); page_addr += (PAGE_SIZE >> 1); + page_offset += (PAGE_SIZE >> 1); ++count; goto split; } @@ -247,7 +246,8 @@ } static void efx_unmap_rx_buffer(struct efx_nic *efx, - struct efx_rx_buffer *rx_buf) + struct efx_rx_buffer *rx_buf, + unsigned int used_len) { if (rx_buf->is_page && rx_buf->u.page) { struct efx_rx_page_state *state; @@ -258,6 +258,10 @@ state->dma_addr, efx_rx_buf_size(efx), PCI_DMA_FROMDEVICE); + } else if (used_len) { + dma_sync_single_for_cpu(&efx->pci_dev->dev, + rx_buf->dma_addr, used_len, + DMA_FROM_DEVICE); } } else if (!rx_buf->is_page && rx_buf->u.skb) { pci_unmap_single(efx->pci_dev, rx_buf->dma_addr, @@ -280,7 +284,7 @@ static void efx_fini_rx_buffer(struct efx_rx_queue *rx_queue, struct efx_rx_buffer *rx_buf) { - efx_unmap_rx_buffer(rx_queue->efx, rx_buf); + efx_unmap_rx_buffer(rx_queue->efx, rx_buf, 0); efx_free_rx_buffer(rx_queue->efx, rx_buf); } @@ -499,6 +503,7 @@ EFX_BUG_ON_PARANOID(!checksummed); rx_buf->u.skb = NULL; + skb->ip_summed = CHECKSUM_UNNECESSARY; gro_result = napi_gro_receive(napi, skb); } @@ -550,10 +555,10 @@ goto out; } - /* Release card resources - assumes all RX buffers consumed in-order - * per RX queue + /* Release and/or sync DMA mapping - assumes all RX buffers + * consumed in-order per RX queue */ - efx_unmap_rx_buffer(efx, rx_buf); + efx_unmap_rx_buffer(efx, rx_buf, len); /* Prefetch nice and early so data will (hopefully) be in cache by * the time we look at it. --- linux-3.2.0.orig/drivers/net/ethernet/sfc/tx.c +++ linux-3.2.0/drivers/net/ethernet/sfc/tx.c @@ -106,7 +106,7 @@ * little benefit from using descriptors that cross those * boundaries and we keep things simple by not doing so. */ - unsigned len = (~dma_addr & 0xfff) + 1; + unsigned len = (~dma_addr & (EFX_PAGE_SIZE - 1)) + 1; /* Work around hardware bug for unaligned buffers. */ if (EFX_WORKAROUND_5391(efx) && (dma_addr & 0xf)) @@ -115,6 +115,25 @@ return len; } +unsigned int efx_tx_max_skb_descs(struct efx_nic *efx) +{ + /* Header and payload descriptor for each output segment, plus + * one for every input fragment boundary within a segment + */ + unsigned int max_descs = EFX_TSO_MAX_SEGS * 2 + MAX_SKB_FRAGS; + + /* Possibly one more per segment for the alignment workaround */ + if (EFX_WORKAROUND_5391(efx)) + max_descs += EFX_TSO_MAX_SEGS; + + /* Possibly more for PCIe page boundaries within input fragments */ + if (PAGE_SIZE > EFX_PAGE_SIZE) + max_descs += max_t(unsigned int, MAX_SKB_FRAGS, + DIV_ROUND_UP(GSO_MAX_SIZE, EFX_PAGE_SIZE)); + + return max_descs; +} + /* * Add a socket buffer to a TX queue * --- linux-3.2.0.orig/drivers/net/ethernet/sfc/mcdi_mac.c +++ linux-3.2.0/drivers/net/ethernet/sfc/mcdi_mac.c @@ -13,7 +13,7 @@ #include "mcdi.h" #include "mcdi_pcol.h" -static int efx_mcdi_set_mac(struct efx_nic *efx) +int efx_mcdi_set_mac(struct efx_nic *efx) { u32 reject, fcntl; u8 cmdbytes[MC_CMD_SET_MAC_IN_LEN]; @@ -45,6 +45,8 @@ } if (efx->wanted_fc & EFX_FC_AUTO) fcntl = MC_CMD_FCNTL_AUTO; + if (efx->fc_disable) + fcntl = MC_CMD_FCNTL_OFF; MCDI_SET_DWORD(cmdbytes, SET_MAC_IN_FCNTL, fcntl); --- linux-3.2.0.orig/drivers/net/ethernet/natsemi/natsemi.c +++ linux-3.2.0/drivers/net/ethernet/natsemi/natsemi.c @@ -2555,9 +2555,9 @@ static void get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { struct netdev_private *np = netdev_priv(dev); - strncpy(info->driver, DRV_NAME, ETHTOOL_BUSINFO_LEN); - strncpy(info->version, DRV_VERSION, ETHTOOL_BUSINFO_LEN); - strncpy(info->bus_info, pci_name(np->pci_dev), ETHTOOL_BUSINFO_LEN); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(np->pci_dev), sizeof(info->bus_info)); } static int get_regs_len(struct net_device *dev) --- linux-3.2.0.orig/drivers/net/ethernet/natsemi/ns83820.c +++ linux-3.2.0/drivers/net/ethernet/natsemi/ns83820.c @@ -1364,9 +1364,9 @@ static void ns83820_get_drvinfo(struct net_device *ndev, struct ethtool_drvinfo *info) { struct ns83820 *dev = PRIV(ndev); - strcpy(info->driver, "ns83820"); - strcpy(info->version, VERSION); - strcpy(info->bus_info, pci_name(dev->pci_dev)); + strlcpy(info->driver, "ns83820", sizeof(info->driver)); + strlcpy(info->version, VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(dev->pci_dev), sizeof(info->bus_info)); } static u32 ns83820_get_link(struct net_device *ndev) --- linux-3.2.0.orig/drivers/net/ethernet/emulex/benet/be.h +++ linux-3.2.0/drivers/net/ethernet/emulex/benet/be.h @@ -40,6 +40,7 @@ #define OC_NAME "Emulex OneConnect 10Gbps NIC" #define OC_NAME_BE OC_NAME "(be3)" #define OC_NAME_LANCER OC_NAME "(Lancer)" +#define OC_NAME_SH OC_NAME "(Skyhawk)" #define DRV_DESC "ServerEngines BladeEngine 10Gbps NIC Driver" #define BE_VENDOR_ID 0x19a2 @@ -50,6 +51,7 @@ #define OC_DEVICE_ID2 0x710 /* Device Id for BE3 cards */ #define OC_DEVICE_ID3 0xe220 /* Device id for Lancer cards */ #define OC_DEVICE_ID4 0xe228 /* Device id for VF in Lancer */ +#define OC_DEVICE_ID5 0x720 /* Device Id for Skyhawk cards */ static inline char *nic_name(struct pci_dev *pdev) { @@ -63,6 +65,8 @@ return OC_NAME_LANCER; case BE_DEVICE_ID2: return BE3_NAME; + case OC_DEVICE_ID5: + return OC_NAME_SH; default: return BE_NAME; } @@ -288,14 +292,14 @@ }; struct be_vf_cfg { - unsigned char vf_mac_addr[ETH_ALEN]; - u32 vf_if_handle; - u32 vf_pmac_id; - u16 vf_vlan_tag; - u32 vf_tx_rate; + unsigned char mac_addr[ETH_ALEN]; + int if_handle; + int pmac_id; + u16 vlan_tag; + u32 tx_rate; }; -#define BE_INVALID_PMAC_ID 0xffffffff +#define BE_FLAGS_LINK_STATUS_INIT 1 struct be_adapter { struct pci_dev *pdev; @@ -345,13 +349,16 @@ struct delayed_work work; u16 work_counter; + u32 flags; /* Ethtool knobs and info */ char fw_ver[FW_VER_LEN]; - u32 if_handle; /* Used to configure filtering */ + int if_handle; /* Used to configure filtering */ u32 pmac_id; /* MAC addr handle used by BE card */ u32 beacon_state; /* for set_phys_id */ bool eeh_err; + bool ue_detected; + bool fw_timeout; u32 port_num; bool promiscuous; bool wol; @@ -359,7 +366,6 @@ u32 function_caps; u32 rx_fc; /* Rx flow control */ u32 tx_fc; /* Tx flow control */ - bool ue_detected; bool stats_cmd_sent; int link_speed; u8 port_type; @@ -369,16 +375,20 @@ u32 flash_status; struct completion flash_compl; - bool be3_native; - bool sriov_enabled; - struct be_vf_cfg *vf_cfg; + u32 num_vfs; u8 is_virtfn; + struct be_vf_cfg *vf_cfg; + bool be3_native; u32 sli_family; u8 hba_port_num; u16 pvid; }; #define be_physfn(adapter) (!adapter->is_virtfn) +#define sriov_enabled(adapter) (adapter->num_vfs > 0) +#define for_all_vfs(adapter, vf_cfg, i) \ + for (i = 0, vf_cfg = &adapter->vf_cfg[i]; i < adapter->num_vfs; \ + i++, vf_cfg++) /* BladeEngine Generation numbers */ #define BE_GEN2 2 @@ -506,6 +516,11 @@ adapter->is_virtfn = (sli_intf & SLI_INTF_FT_MASK) ? 1 : 0; } +static inline bool is_ipv4_pkt(struct sk_buff *skb) +{ + return skb->protocol == htons(ETH_P_IP) && ip_hdr(skb)->version == 4; +} + static inline void be_vf_eth_addr_generate(struct be_adapter *adapter, u8 *mac) { u32 addr; @@ -524,9 +539,14 @@ return adapter->num_rx_qs > 1; } +static inline bool be_error(struct be_adapter *adapter) +{ + return adapter->eeh_err || adapter->ue_detected || adapter->fw_timeout; +} + extern void be_cq_notify(struct be_adapter *adapter, u16 qid, bool arm, u16 num_popped); -extern void be_link_status_update(struct be_adapter *adapter, u32 link_status); +extern void be_link_status_update(struct be_adapter *adapter, u8 link_status); extern void be_parse_stats(struct be_adapter *adapter); extern int be_load_fw(struct be_adapter *adapter, u8 *func); #endif /* BE_H */ --- linux-3.2.0.orig/drivers/net/ethernet/emulex/benet/be_ethtool.c +++ linux-3.2.0/drivers/net/ethernet/emulex/benet/be_ethtool.c @@ -127,8 +127,8 @@ memset(fw_on_flash, 0 , sizeof(fw_on_flash)); be_cmd_get_fw_ver(adapter, adapter->fw_ver, fw_on_flash); - strcpy(drvinfo->driver, DRV_NAME); - strcpy(drvinfo->version, DRV_VER); + strlcpy(drvinfo->driver, DRV_NAME, sizeof(drvinfo->driver)); + strlcpy(drvinfo->version, DRV_VER, sizeof(drvinfo->version)); strncpy(drvinfo->fw_version, adapter->fw_ver, FW_VER_LEN); if (memcmp(adapter->fw_ver, fw_on_flash, FW_VER_LEN) != 0) { strcat(drvinfo->fw_version, " ["); @@ -136,21 +136,84 @@ strcat(drvinfo->fw_version, "]"); } - strcpy(drvinfo->bus_info, pci_name(adapter->pdev)); + strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), + sizeof(drvinfo->bus_info)); drvinfo->testinfo_len = 0; drvinfo->regdump_len = 0; drvinfo->eedump_len = 0; } +static u32 +lancer_cmd_get_file_len(struct be_adapter *adapter, u8 *file_name) +{ + u32 data_read = 0, eof; + u8 addn_status; + struct be_dma_mem data_len_cmd; + int status; + + memset(&data_len_cmd, 0, sizeof(data_len_cmd)); + /* data_offset and data_size should be 0 to get reg len */ + status = lancer_cmd_read_object(adapter, &data_len_cmd, 0, 0, + file_name, &data_read, &eof, &addn_status); + + return data_read; +} + +static int +lancer_cmd_read_file(struct be_adapter *adapter, u8 *file_name, + u32 buf_len, void *buf) +{ + struct be_dma_mem read_cmd; + u32 read_len = 0, total_read_len = 0, chunk_size; + u32 eof = 0; + u8 addn_status; + int status = 0; + + read_cmd.size = LANCER_READ_FILE_CHUNK; + read_cmd.va = pci_alloc_consistent(adapter->pdev, read_cmd.size, + &read_cmd.dma); + + if (!read_cmd.va) { + dev_err(&adapter->pdev->dev, + "Memory allocation failure while reading dump\n"); + return -ENOMEM; + } + + while ((total_read_len < buf_len) && !eof) { + chunk_size = min_t(u32, (buf_len - total_read_len), + LANCER_READ_FILE_CHUNK); + chunk_size = ALIGN(chunk_size, 4); + status = lancer_cmd_read_object(adapter, &read_cmd, chunk_size, + total_read_len, file_name, &read_len, + &eof, &addn_status); + if (!status) { + memcpy(buf + total_read_len, read_cmd.va, read_len); + total_read_len += read_len; + eof &= LANCER_READ_FILE_EOF_MASK; + } else { + status = -EIO; + break; + } + } + pci_free_consistent(adapter->pdev, read_cmd.size, read_cmd.va, + read_cmd.dma); + + return status; +} + static int be_get_reg_len(struct net_device *netdev) { struct be_adapter *adapter = netdev_priv(netdev); u32 log_size = 0; - if (be_physfn(adapter)) - be_cmd_get_reg_len(adapter, &log_size); - + if (be_physfn(adapter)) { + if (lancer_chip(adapter)) + log_size = lancer_cmd_get_file_len(adapter, + LANCER_FW_DUMP_FILE); + else + be_cmd_get_reg_len(adapter, &log_size); + } return log_size; } @@ -161,7 +224,11 @@ if (be_physfn(adapter)) { memset(buf, 0, regs->len); - be_cmd_get_regs(adapter, regs->len, buf); + if (lancer_chip(adapter)) + lancer_cmd_read_file(adapter, LANCER_FW_DUMP_FILE, + regs->len, buf); + else + be_cmd_get_regs(adapter, regs->len, buf); } } @@ -362,11 +429,14 @@ struct be_phy_info phy_info; u8 mac_speed = 0; u16 link_speed = 0; + u8 link_status; int status; if ((adapter->link_speed < 0) || (!(netdev->flags & IFF_UP))) { status = be_cmd_link_status_query(adapter, &mac_speed, - &link_speed, 0); + &link_speed, &link_status, 0); + if (!status) + be_link_status_update(adapter, link_status); /* link_speed is in units of 10 Mbps */ if (link_speed) { @@ -453,16 +523,13 @@ return 0; } -static void -be_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring) +static void be_get_ringparam(struct net_device *netdev, + struct ethtool_ringparam *ring) { struct be_adapter *adapter = netdev_priv(netdev); - ring->rx_max_pending = adapter->rx_obj[0].q.len; - ring->tx_max_pending = adapter->tx_obj[0].q.len; - - ring->rx_pending = atomic_read(&adapter->rx_obj[0].q.used); - ring->tx_pending = atomic_read(&adapter->tx_obj[0].q.used); + ring->rx_max_pending = ring->rx_pending = adapter->rx_obj[0].q.len; + ring->tx_max_pending = ring->tx_pending = adapter->tx_obj[0].q.len; } static void @@ -636,7 +703,7 @@ } if (be_cmd_link_status_query(adapter, &mac_speed, - &qos_link_speed, 0) != 0) { + &qos_link_speed, NULL, 0) != 0) { test->flags |= ETH_TEST_FL_FAILED; data[4] = -1; } else if (!mac_speed) { @@ -649,18 +716,24 @@ be_do_flash(struct net_device *netdev, struct ethtool_flash *efl) { struct be_adapter *adapter = netdev_priv(netdev); - char file_name[ETHTOOL_FLASH_MAX_FILENAME]; - - file_name[ETHTOOL_FLASH_MAX_FILENAME - 1] = 0; - strcpy(file_name, efl->data); - return be_load_fw(adapter, file_name); + return be_load_fw(adapter, efl->data); } static int be_get_eeprom_len(struct net_device *netdev) { - return BE_READ_SEEPROM_LEN; + struct be_adapter *adapter = netdev_priv(netdev); + if (lancer_chip(adapter)) { + if (be_physfn(adapter)) + return lancer_cmd_get_file_len(adapter, + LANCER_VPD_PF_FILE); + else + return lancer_cmd_get_file_len(adapter, + LANCER_VPD_VF_FILE); + } else { + return BE_READ_SEEPROM_LEN; + } } static int @@ -675,6 +748,15 @@ if (!eeprom->len) return -EINVAL; + if (lancer_chip(adapter)) { + if (be_physfn(adapter)) + return lancer_cmd_read_file(adapter, LANCER_VPD_PF_FILE, + eeprom->len, data); + else + return lancer_cmd_read_file(adapter, LANCER_VPD_VF_FILE, + eeprom->len, data); + } + eeprom->magic = BE_VENDOR_ID | (adapter->pdev->device<<16); memset(&eeprom_cmd, 0, sizeof(struct be_dma_mem)); --- linux-3.2.0.orig/drivers/net/ethernet/emulex/benet/be_cmds.c +++ linux-3.2.0/drivers/net/ethernet/emulex/benet/be_cmds.c @@ -31,11 +31,8 @@ struct be_queue_info *mccq = &adapter->mcc_obj.q; u32 val = 0; - if (adapter->eeh_err) { - dev_info(&adapter->pdev->dev, - "Error in Card Detected! Cannot issue commands\n"); + if (be_error(adapter)) return; - } val |= mccq->id & DB_MCCQ_RING_ID_MASK; val |= 1 << DB_MCCQ_NUM_POSTED_SHIFT; @@ -128,7 +125,14 @@ static void be_async_link_state_process(struct be_adapter *adapter, struct be_async_event_link_state *evt) { - be_link_status_update(adapter, evt->port_link_status); + /* When link status changes, link speed must be re-queried from FW */ + adapter->link_speed = -1; + + /* For the initial link status do not rely on the ASYNC event as + * it may not be received in some cases. + */ + if (adapter->flags & BE_FLAGS_LINK_STATUS_INIT) + be_link_status_update(adapter, evt->port_link_status); } /* Grp5 CoS Priority evt */ @@ -266,10 +270,10 @@ int i, num, status = 0; struct be_mcc_obj *mcc_obj = &adapter->mcc_obj; - if (adapter->eeh_err) - return -EIO; - for (i = 0; i < mcc_timeout; i++) { + if (be_error(adapter)) + return -EIO; + num = be_process_mcc(adapter, &status); if (num) be_cq_notify(adapter, mcc_obj->cq.id, @@ -280,7 +284,8 @@ udelay(100); } if (i == mcc_timeout) { - dev_err(&adapter->pdev->dev, "mccq poll timed out\n"); + dev_err(&adapter->pdev->dev, "FW not responding\n"); + adapter->fw_timeout = true; return -1; } return status; @@ -298,26 +303,21 @@ int msecs = 0; u32 ready; - if (adapter->eeh_err) { - dev_err(&adapter->pdev->dev, - "Error detected in card.Cannot issue commands\n"); - return -EIO; - } - do { + if (be_error(adapter)) + return -EIO; + ready = ioread32(db); - if (ready == 0xffffffff) { - dev_err(&adapter->pdev->dev, - "pci slot disconnected\n"); + if (ready == 0xffffffff) return -1; - } ready &= MPU_MAILBOX_DB_RDY_MASK; if (ready) break; if (msecs > 4000) { - dev_err(&adapter->pdev->dev, "mbox poll timed out\n"); + dev_err(&adapter->pdev->dev, "FW not responding\n"); + adapter->fw_timeout = true; be_detect_dump_ue(adapter); return -1; } @@ -555,9 +555,6 @@ u8 *wrb; int status; - if (adapter->eeh_err) - return -EIO; - if (mutex_lock_interruptible(&adapter->mbox_lock)) return -1; @@ -619,7 +616,7 @@ /* Use MCC */ int be_cmd_mac_addr_query(struct be_adapter *adapter, u8 *mac_addr, - u8 type, bool permanent, u32 if_handle) + u8 type, bool permanent, u32 if_handle, u32 pmac_id) { struct be_mcc_wrb *wrb; struct be_cmd_req_mac_query *req; @@ -641,6 +638,7 @@ req->permanent = 1; } else { req->if_id = cpu_to_le16((u16) if_handle); + req->pmac_id = cpu_to_le32(pmac_id); req->permanent = 0; } @@ -695,12 +693,15 @@ } /* Uses synchronous MCCQ */ -int be_cmd_pmac_del(struct be_adapter *adapter, u32 if_id, u32 pmac_id, u32 dom) +int be_cmd_pmac_del(struct be_adapter *adapter, u32 if_id, int pmac_id, u32 dom) { struct be_mcc_wrb *wrb; struct be_cmd_req_pmac_del *req; int status; + if (pmac_id == -1) + return 0; + spin_lock_bh(&adapter->mcc_lock); wrb = wrb_from_mccq(adapter); @@ -923,10 +924,14 @@ void *ctxt; int status; - if (mutex_lock_interruptible(&adapter->mbox_lock)) - return -1; + spin_lock_bh(&adapter->mcc_lock); + + wrb = wrb_from_mccq(adapter); + if (!wrb) { + status = -EBUSY; + goto err; + } - wrb = wrb_from_mbox(adapter); req = embedded_payload(wrb); ctxt = &req->context; @@ -952,14 +957,15 @@ be_cmd_page_addrs_prepare(req->pages, ARRAY_SIZE(req->pages), q_mem); - status = be_mbox_notify_wait(adapter); + status = be_mcc_notify_wait(adapter); if (!status) { struct be_cmd_resp_eth_tx_create *resp = embedded_payload(wrb); txq->id = le16_to_cpu(resp->cid); txq->created = true; } - mutex_unlock(&adapter->mbox_lock); +err: + spin_unlock_bh(&adapter->mcc_lock); return status; } @@ -1018,9 +1024,6 @@ u8 subsys = 0, opcode = 0; int status; - if (adapter->eeh_err) - return -EIO; - if (mutex_lock_interruptible(&adapter->mbox_lock)) return -1; @@ -1136,16 +1139,13 @@ } /* Uses MCCQ */ -int be_cmd_if_destroy(struct be_adapter *adapter, u32 interface_id, u32 domain) +int be_cmd_if_destroy(struct be_adapter *adapter, int interface_id, u32 domain) { struct be_mcc_wrb *wrb; struct be_cmd_req_if_destroy *req; int status; - if (adapter->eeh_err) - return -EIO; - - if (!interface_id) + if (interface_id == -1) return 0; spin_lock_bh(&adapter->mcc_lock); @@ -1239,7 +1239,7 @@ /* Uses synchronous mcc */ int be_cmd_link_status_query(struct be_adapter *adapter, u8 *mac_speed, - u16 *link_speed, u32 dom) + u16 *link_speed, u8 *link_status, u32 dom) { struct be_mcc_wrb *wrb; struct be_cmd_req_link_status *req; @@ -1247,6 +1247,9 @@ spin_lock_bh(&adapter->mcc_lock); + if (link_status) + *link_status = LINK_DOWN; + wrb = wrb_from_mccq(adapter); if (!wrb) { status = -EBUSY; @@ -1254,6 +1257,9 @@ } req = embedded_payload(wrb); + if (adapter->generation == BE_GEN3 || lancer_chip(adapter)) + req->hdr.version = 1; + be_wrb_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON, OPCODE_COMMON_NTWK_LINK_STATUS_QUERY, sizeof(*req), wrb, NULL); @@ -1261,10 +1267,13 @@ if (!status) { struct be_cmd_resp_link_status *resp = embedded_payload(wrb); if (resp->mac_speed != PHY_LINK_SPEED_ZERO) { - *link_speed = le16_to_cpu(resp->link_speed); + if (link_speed) + *link_speed = le16_to_cpu(resp->link_speed); if (mac_speed) *mac_speed = resp->mac_speed; } + if (link_status) + *link_status = resp->logical_link_status; } err: @@ -1673,8 +1682,9 @@ { struct be_mcc_wrb *wrb; struct be_cmd_req_rss_config *req; - u32 myhash[10] = {0x0123, 0x4567, 0x89AB, 0xCDEF, 0x01EF, - 0x0123, 0x4567, 0x89AB, 0xCDEF, 0x01EF}; + u32 myhash[10] = {0x15d43fa5, 0x2534685a, 0x5f87693a, 0x5668494e, + 0x33cf6a53, 0x383334c6, 0x76ac4257, 0x59b242b2, + 0x3ea83c02, 0x4a110304}; int status; if (mutex_lock_interruptible(&adapter->mbox_lock)) @@ -1836,6 +1846,53 @@ return status; } +int lancer_cmd_read_object(struct be_adapter *adapter, struct be_dma_mem *cmd, + u32 data_size, u32 data_offset, const char *obj_name, + u32 *data_read, u32 *eof, u8 *addn_status) +{ + struct be_mcc_wrb *wrb; + struct lancer_cmd_req_read_object *req; + struct lancer_cmd_resp_read_object *resp; + int status; + + spin_lock_bh(&adapter->mcc_lock); + + wrb = wrb_from_mccq(adapter); + if (!wrb) { + status = -EBUSY; + goto err_unlock; + } + + req = embedded_payload(wrb); + + be_wrb_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON, + OPCODE_COMMON_READ_OBJECT, + sizeof(struct lancer_cmd_req_read_object), wrb, + NULL); + + req->desired_read_len = cpu_to_le32(data_size); + req->read_offset = cpu_to_le32(data_offset); + strcpy(req->object_name, obj_name); + req->descriptor_count = cpu_to_le32(1); + req->buf_len = cpu_to_le32(data_size); + req->addr_low = cpu_to_le32((cmd->dma & 0xFFFFFFFF)); + req->addr_high = cpu_to_le32(upper_32_bits(cmd->dma)); + + status = be_mcc_notify_wait(adapter); + + resp = embedded_payload(wrb); + if (!status) { + *data_read = le32_to_cpu(resp->actual_read_len); + *eof = le32_to_cpu(resp->eof); + } else { + *addn_status = resp->additional_status; + } + +err_unlock: + spin_unlock_bh(&adapter->mcc_lock); + return status; +} + int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd, u32 flash_type, u32 flash_opcode, u32 buf_size) { @@ -2238,3 +2295,99 @@ mutex_unlock(&adapter->mbox_lock); return status; } + +/* Uses synchronous MCCQ */ +int be_cmd_get_mac_from_list(struct be_adapter *adapter, u32 domain, + u32 *pmac_id) +{ + struct be_mcc_wrb *wrb; + struct be_cmd_req_get_mac_list *req; + int status; + int mac_count; + + spin_lock_bh(&adapter->mcc_lock); + + wrb = wrb_from_mccq(adapter); + if (!wrb) { + status = -EBUSY; + goto err; + } + req = embedded_payload(wrb); + + be_wrb_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON, + OPCODE_COMMON_GET_MAC_LIST, sizeof(*req), + wrb, NULL); + + req->hdr.domain = domain; + + status = be_mcc_notify_wait(adapter); + if (!status) { + struct be_cmd_resp_get_mac_list *resp = + embedded_payload(wrb); + int i; + u8 *ctxt = &resp->context[0][0]; + status = -EIO; + mac_count = resp->mac_count; + be_dws_le_to_cpu(&resp->context, sizeof(resp->context)); + for (i = 0; i < mac_count; i++) { + if (!AMAP_GET_BITS(struct amap_get_mac_list_context, + act, ctxt)) { + *pmac_id = AMAP_GET_BITS + (struct amap_get_mac_list_context, + macid, ctxt); + status = 0; + break; + } + ctxt += sizeof(struct amap_get_mac_list_context) / 8; + } + } + +err: + spin_unlock_bh(&adapter->mcc_lock); + return status; +} + +/* Uses synchronous MCCQ */ +int be_cmd_set_mac_list(struct be_adapter *adapter, u8 *mac_array, + u8 mac_count, u32 domain) +{ + struct be_mcc_wrb *wrb; + struct be_cmd_req_set_mac_list *req; + int status; + struct be_dma_mem cmd; + + memset(&cmd, 0, sizeof(struct be_dma_mem)); + cmd.size = sizeof(struct be_cmd_req_set_mac_list); + cmd.va = dma_alloc_coherent(&adapter->pdev->dev, cmd.size, + &cmd.dma, GFP_KERNEL); + if (!cmd.va) { + dev_err(&adapter->pdev->dev, "Memory alloc failure\n"); + return -ENOMEM; + } + + spin_lock_bh(&adapter->mcc_lock); + + wrb = wrb_from_mccq(adapter); + if (!wrb) { + status = -EBUSY; + goto err; + } + + req = cmd.va; + be_wrb_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON, + OPCODE_COMMON_SET_MAC_LIST, sizeof(*req), + wrb, &cmd); + + req->hdr.domain = domain; + req->mac_count = mac_count; + if (mac_count) + memcpy(req->mac, mac_array, ETH_ALEN*mac_count); + + status = be_mcc_notify_wait(adapter); + +err: + dma_free_coherent(&adapter->pdev->dev, cmd.size, + cmd.va, cmd.dma); + spin_unlock_bh(&adapter->mcc_lock); + return status; +} --- linux-3.2.0.orig/drivers/net/ethernet/emulex/benet/be_cmds.h +++ linux-3.2.0/drivers/net/ethernet/emulex/benet/be_cmds.h @@ -189,6 +189,9 @@ #define OPCODE_COMMON_GET_PHY_DETAILS 102 #define OPCODE_COMMON_SET_DRIVER_FUNCTION_CAP 103 #define OPCODE_COMMON_GET_CNTL_ADDITIONAL_ATTRIBUTES 121 +#define OPCODE_COMMON_GET_MAC_LIST 147 +#define OPCODE_COMMON_SET_MAC_LIST 148 +#define OPCODE_COMMON_READ_OBJECT 171 #define OPCODE_COMMON_WRITE_OBJECT 172 #define OPCODE_ETH_RSS_CONFIG 1 @@ -294,6 +297,7 @@ u8 type; u8 permanent; u16 if_id; + u32 pmac_id; } __packed; struct be_cmd_resp_mac_query { @@ -956,7 +960,8 @@ u8 mgmt_mac_duplex; u8 mgmt_mac_speed; u16 link_speed; - u32 rsvd0; + u8 logical_link_status; + u8 rsvd1[3]; } __packed; /******************** Port Identification ***************************/ @@ -1161,6 +1166,38 @@ u32 actual_write_len; }; +/************************ Lancer Read FW info **************/ +#define LANCER_READ_FILE_CHUNK (32*1024) +#define LANCER_READ_FILE_EOF_MASK 0x80000000 + +#define LANCER_FW_DUMP_FILE "/dbg/dump.bin" +#define LANCER_VPD_PF_FILE "/vpd/ntr_pf.vpd" +#define LANCER_VPD_VF_FILE "/vpd/ntr_vf.vpd" + +struct lancer_cmd_req_read_object { + struct be_cmd_req_hdr hdr; + u32 desired_read_len; + u32 read_offset; + u8 object_name[104]; + u32 descriptor_count; + u32 buf_len; + u32 addr_low; + u32 addr_high; +}; + +struct lancer_cmd_resp_read_object { + u8 opcode; + u8 subsystem; + u8 rsvd1[2]; + u8 status; + u8 additional_status; + u8 rsvd2[2]; + u32 resp_len; + u32 actual_resp_len; + u32 actual_read_len; + u32 eof; +}; + /************************ WOL *******************************/ struct be_cmd_req_acpi_wol_magic_config{ struct be_cmd_req_hdr hdr; @@ -1307,6 +1344,34 @@ u8 rsvd[212]; }; +/******************** GET/SET_MACLIST **************************/ +#define BE_MAX_MAC 64 +struct amap_get_mac_list_context { + u8 macid[31]; + u8 act; +} __packed; + +struct be_cmd_req_get_mac_list { + struct be_cmd_req_hdr hdr; + u32 rsvd; +} __packed; + +struct be_cmd_resp_get_mac_list { + struct be_cmd_resp_hdr hdr; + u8 mac_count; + u8 rsvd1; + u16 rsvd2; + u8 context[sizeof(struct amap_get_mac_list_context) / 8][BE_MAX_MAC]; +} __packed; + +struct be_cmd_req_set_mac_list { + struct be_cmd_req_hdr hdr; + u8 mac_count; + u8 rsvd1; + u16 rsvd2; + struct macaddr mac[BE_MAX_MAC]; +} __packed; + /*************** HW Stats Get v1 **********************************/ #define BE_TXP_SW_SZ 48 struct be_port_rxf_stats_v1 { @@ -1413,15 +1478,15 @@ extern int be_pci_fnum_get(struct be_adapter *adapter); extern int be_cmd_POST(struct be_adapter *adapter); extern int be_cmd_mac_addr_query(struct be_adapter *adapter, u8 *mac_addr, - u8 type, bool permanent, u32 if_handle); + u8 type, bool permanent, u32 if_handle, u32 pmac_id); extern int be_cmd_pmac_add(struct be_adapter *adapter, u8 *mac_addr, u32 if_id, u32 *pmac_id, u32 domain); extern int be_cmd_pmac_del(struct be_adapter *adapter, u32 if_id, - u32 pmac_id, u32 domain); + int pmac_id, u32 domain); extern int be_cmd_if_create(struct be_adapter *adapter, u32 cap_flags, u32 en_flags, u8 *mac, u32 *if_handle, u32 *pmac_id, u32 domain); -extern int be_cmd_if_destroy(struct be_adapter *adapter, u32 if_handle, +extern int be_cmd_if_destroy(struct be_adapter *adapter, int if_handle, u32 domain); extern int be_cmd_eq_create(struct be_adapter *adapter, struct be_queue_info *eq, int eq_delay); @@ -1443,8 +1508,8 @@ int type); extern int be_cmd_rxq_destroy(struct be_adapter *adapter, struct be_queue_info *q); -extern int be_cmd_link_status_query(struct be_adapter *adapter, - u8 *mac_speed, u16 *link_speed, u32 dom); +extern int be_cmd_link_status_query(struct be_adapter *adapter, u8 *mac_speed, + u16 *link_speed, u8 *link_status, u32 dom); extern int be_cmd_reset(struct be_adapter *adapter); extern int be_cmd_get_stats(struct be_adapter *adapter, struct be_dma_mem *nonemb_cmd); @@ -1480,6 +1545,9 @@ u32 data_size, u32 data_offset, const char *obj_name, u32 *data_written, u8 *addn_status); +int lancer_cmd_read_object(struct be_adapter *adapter, struct be_dma_mem *cmd, + u32 data_size, u32 data_offset, const char *obj_name, + u32 *data_read, u32 *eof, u8 *addn_status); int be_cmd_get_flash_crc(struct be_adapter *adapter, u8 *flashed_crc, int offset); extern int be_cmd_enable_magic_wol(struct be_adapter *adapter, u8 *mac, @@ -1506,4 +1574,8 @@ extern int be_cmd_req_native_mode(struct be_adapter *adapter); extern int be_cmd_get_reg_len(struct be_adapter *adapter, u32 *log_size); extern void be_cmd_get_regs(struct be_adapter *adapter, u32 buf_len, void *buf); +extern int be_cmd_get_mac_from_list(struct be_adapter *adapter, u32 domain, + u32 *pmac_id); +extern int be_cmd_set_mac_list(struct be_adapter *adapter, u8 *mac_array, + u8 mac_count, u32 domain); --- linux-3.2.0.orig/drivers/net/ethernet/emulex/benet/be_main.c +++ linux-3.2.0/drivers/net/ethernet/emulex/benet/be_main.c @@ -27,13 +27,14 @@ MODULE_AUTHOR("ServerEngines Corporation"); MODULE_LICENSE("GPL"); -static ushort rx_frag_size = 2048; static unsigned int num_vfs; -module_param(rx_frag_size, ushort, S_IRUGO); module_param(num_vfs, uint, S_IRUGO); -MODULE_PARM_DESC(rx_frag_size, "Size of a fragment that holds rcvd data."); MODULE_PARM_DESC(num_vfs, "Number of PCI VFs to initialize"); +static ushort rx_frag_size = 2048; +module_param(rx_frag_size, ushort, S_IRUGO); +MODULE_PARM_DESC(rx_frag_size, "Size of a fragment that holds rcvd data."); + static DEFINE_PCI_DEVICE_TABLE(be_dev_ids) = { { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID1) }, { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID2) }, @@ -41,6 +42,7 @@ { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID2) }, { PCI_DEVICE(EMULEX_VENDOR_ID, OC_DEVICE_ID3)}, { PCI_DEVICE(EMULEX_VENDOR_ID, OC_DEVICE_ID4)}, + { PCI_DEVICE(EMULEX_VENDOR_ID, OC_DEVICE_ID5)}, { 0 } }; MODULE_DEVICE_TABLE(pci, be_dev_ids); @@ -237,7 +239,8 @@ return -EADDRNOTAVAIL; status = be_cmd_mac_addr_query(adapter, current_mac, - MAC_ADDRESS_TYPE_NETWORK, false, adapter->if_handle); + MAC_ADDRESS_TYPE_NETWORK, false, + adapter->if_handle, 0); if (status) goto err; @@ -315,6 +318,8 @@ struct be_drv_stats *drvs = &adapter->drv_stats; be_dws_le_to_cpu(hw_stats, sizeof(*hw_stats)); + drvs->pmem_fifo_overflow_drop = port_stats->pmem_fifo_overflow_drop; + drvs->rx_priority_pause_frames = port_stats->rx_priority_pause_frames; drvs->rx_pause_frames = port_stats->rx_pause_frames; drvs->rx_crc_errors = port_stats->rx_crc_errors; drvs->rx_control_frames = port_stats->rx_control_frames; @@ -491,19 +496,19 @@ return stats; } -void be_link_status_update(struct be_adapter *adapter, u32 link_status) +void be_link_status_update(struct be_adapter *adapter, u8 link_status) { struct net_device *netdev = adapter->netdev; - /* when link status changes, link speed must be re-queried from card */ - adapter->link_speed = -1; - if ((link_status & LINK_STATUS_MASK) == LINK_UP) { - netif_carrier_on(netdev); - dev_info(&adapter->pdev->dev, "%s: Link up\n", netdev->name); - } else { + if (!(adapter->flags & BE_FLAGS_LINK_STATUS_INIT)) { netif_carrier_off(netdev); - dev_info(&adapter->pdev->dev, "%s: Link down\n", netdev->name); + adapter->flags |= BE_FLAGS_LINK_STATUS_INIT; } + + if ((link_status & LINK_STATUS_MASK) == LINK_UP) + netif_carrier_on(netdev); + else + netif_carrier_off(netdev); } static void be_tx_stats_update(struct be_tx_obj *txo, @@ -549,11 +554,31 @@ wrb->frag_len = len & ETH_WRB_FRAG_LEN_MASK; } +static inline u16 be_get_tx_vlan_tag(struct be_adapter *adapter, + struct sk_buff *skb) +{ + u8 vlan_prio; + u16 vlan_tag; + + vlan_tag = vlan_tx_tag_get(skb); + vlan_prio = (vlan_tag & VLAN_PRIO_MASK) >> VLAN_PRIO_SHIFT; + /* If vlan priority provided by OS is NOT in available bmap */ + if (!(adapter->vlan_prio_bmap & (1 << vlan_prio))) + vlan_tag = (vlan_tag & ~VLAN_PRIO_MASK) | + adapter->recommended_prio; + + return vlan_tag; +} + +static int be_vlan_tag_chk(struct be_adapter *adapter, struct sk_buff *skb) +{ + return vlan_tx_tag_present(skb) || adapter->pvid; +} + static void wrb_fill_hdr(struct be_adapter *adapter, struct be_eth_hdr_wrb *hdr, struct sk_buff *skb, u32 wrb_cnt, u32 len) { - u8 vlan_prio = 0; - u16 vlan_tag = 0; + u16 vlan_tag; memset(hdr, 0, sizeof(*hdr)); @@ -584,12 +609,7 @@ if (vlan_tx_tag_present(skb)) { AMAP_SET_BITS(struct amap_eth_hdr_wrb, vlan, hdr, 1); - vlan_tag = vlan_tx_tag_get(skb); - vlan_prio = (vlan_tag & VLAN_PRIO_MASK) >> VLAN_PRIO_SHIFT; - /* If vlan priority provided by OS is NOT in available bmap */ - if (!(adapter->vlan_prio_bmap & (1 << vlan_prio))) - vlan_tag = (vlan_tag & ~VLAN_PRIO_MASK) | - adapter->recommended_prio; + vlan_tag = be_get_tx_vlan_tag(adapter, skb); AMAP_SET_BITS(struct amap_eth_hdr_wrb, vlan_tag, hdr, vlan_tag); } @@ -682,20 +702,64 @@ return 0; } +static struct sk_buff *be_insert_vlan_in_pkt(struct be_adapter *adapter, + struct sk_buff *skb) +{ + u16 vlan_tag = 0; + + skb = skb_share_check(skb, GFP_ATOMIC); + if (unlikely(!skb)) + return skb; + + if (vlan_tx_tag_present(skb)) { + vlan_tag = be_get_tx_vlan_tag(adapter, skb); + __vlan_put_tag(skb, vlan_tag); + skb->vlan_tci = 0; + } + + return skb; +} + static netdev_tx_t be_xmit(struct sk_buff *skb, struct net_device *netdev) { struct be_adapter *adapter = netdev_priv(netdev); struct be_tx_obj *txo = &adapter->tx_obj[skb_get_queue_mapping(skb)]; struct be_queue_info *txq = &txo->q; + struct iphdr *ip = NULL; u32 wrb_cnt = 0, copied = 0; - u32 start = txq->head; + u32 start = txq->head, eth_hdr_len; bool dummy_wrb, stopped = false; + eth_hdr_len = ntohs(skb->protocol) == ETH_P_8021Q ? + VLAN_ETH_HLEN : ETH_HLEN; + + /* HW has a bug which considers padding bytes as legal + * and modifies the IPv4 hdr's 'tot_len' field + */ + if (skb->len <= 60 && be_vlan_tag_chk(adapter, skb) && + is_ipv4_pkt(skb)) { + ip = (struct iphdr *)ip_hdr(skb); + pskb_trim(skb, eth_hdr_len + ntohs(ip->tot_len)); + } + + /* HW has a bug wherein it will calculate CSUM for VLAN + * pkts even though it is disabled. + * Manually insert VLAN in pkt. + */ + if (skb->ip_summed != CHECKSUM_PARTIAL && + be_vlan_tag_chk(adapter, skb)) { + skb = be_insert_vlan_in_pkt(adapter, skb); + if (unlikely(!skb)) + goto tx_drop; + } + wrb_cnt = wrb_cnt_for_skb(adapter, skb, &dummy_wrb); copied = make_tx_wrbs(adapter, txq, skb, wrb_cnt, dummy_wrb); if (copied) { + int gso_segs = skb_shinfo(skb)->gso_segs; + /* record the sent skb in the sent_skb table */ BUG_ON(txo->sent_skb_list[start]); txo->sent_skb_list[start] = skb; @@ -713,12 +777,12 @@ be_txq_notify(adapter, txq->id, wrb_cnt); - be_tx_stats_update(txo, wrb_cnt, copied, - skb_shinfo(skb)->gso_segs, stopped); + be_tx_stats_update(txo, wrb_cnt, copied, gso_segs, stopped); } else { txq->head = start; dev_kfree_skb_any(skb); } +tx_drop: return NETDEV_TX_OK; } @@ -746,15 +810,15 @@ */ static int be_vid_config(struct be_adapter *adapter, bool vf, u32 vf_num) { + struct be_vf_cfg *vf_cfg = &adapter->vf_cfg[vf_num]; u16 vtag[BE_NUM_VLANS_SUPPORTED]; u16 ntags = 0, i; int status = 0; - u32 if_handle; if (vf) { - if_handle = adapter->vf_cfg[vf_num].vf_if_handle; - vtag[0] = cpu_to_le16(adapter->vf_cfg[vf_num].vf_vlan_tag); - status = be_cmd_vlan_config(adapter, if_handle, vtag, 1, 1, 0); + vtag[0] = cpu_to_le16(vf_cfg->vlan_tag); + status = be_cmd_vlan_config(adapter, vf_cfg->if_handle, vtag, + 1, 1, 0); } /* No need to further configure vids if in promiscuous mode */ @@ -840,28 +904,30 @@ static int be_set_vf_mac(struct net_device *netdev, int vf, u8 *mac) { struct be_adapter *adapter = netdev_priv(netdev); + struct be_vf_cfg *vf_cfg = &adapter->vf_cfg[vf]; int status; - if (!adapter->sriov_enabled) + if (!sriov_enabled(adapter)) return -EPERM; - if (!is_valid_ether_addr(mac) || (vf >= num_vfs)) + if (!is_valid_ether_addr(mac) || vf >= adapter->num_vfs) return -EINVAL; - if (adapter->vf_cfg[vf].vf_pmac_id != BE_INVALID_PMAC_ID) - status = be_cmd_pmac_del(adapter, - adapter->vf_cfg[vf].vf_if_handle, - adapter->vf_cfg[vf].vf_pmac_id, vf + 1); - - status = be_cmd_pmac_add(adapter, mac, - adapter->vf_cfg[vf].vf_if_handle, - &adapter->vf_cfg[vf].vf_pmac_id, vf + 1); + if (lancer_chip(adapter)) { + status = be_cmd_set_mac_list(adapter, mac, 1, vf + 1); + } else { + status = be_cmd_pmac_del(adapter, vf_cfg->if_handle, + vf_cfg->pmac_id, vf + 1); + + status = be_cmd_pmac_add(adapter, mac, vf_cfg->if_handle, + &vf_cfg->pmac_id, vf + 1); + } if (status) dev_err(&adapter->pdev->dev, "MAC %pM set on VF %d Failed\n", mac, vf); else - memcpy(adapter->vf_cfg[vf].vf_mac_addr, mac, ETH_ALEN); + memcpy(vf_cfg->mac_addr, mac, ETH_ALEN); return status; } @@ -870,18 +936,19 @@ struct ifla_vf_info *vi) { struct be_adapter *adapter = netdev_priv(netdev); + struct be_vf_cfg *vf_cfg = &adapter->vf_cfg[vf]; - if (!adapter->sriov_enabled) + if (!sriov_enabled(adapter)) return -EPERM; - if (vf >= num_vfs) + if (vf >= adapter->num_vfs) return -EINVAL; vi->vf = vf; - vi->tx_rate = adapter->vf_cfg[vf].vf_tx_rate; - vi->vlan = adapter->vf_cfg[vf].vf_vlan_tag; + vi->tx_rate = vf_cfg->tx_rate; + vi->vlan = vf_cfg->vlan_tag; vi->qos = 0; - memcpy(&vi->mac, adapter->vf_cfg[vf].vf_mac_addr, ETH_ALEN); + memcpy(&vi->mac, vf_cfg->mac_addr, ETH_ALEN); return 0; } @@ -892,17 +959,17 @@ struct be_adapter *adapter = netdev_priv(netdev); int status = 0; - if (!adapter->sriov_enabled) + if (!sriov_enabled(adapter)) return -EPERM; - if ((vf >= num_vfs) || (vlan > 4095)) + if (vf >= adapter->num_vfs || vlan > 4095) return -EINVAL; if (vlan) { - adapter->vf_cfg[vf].vf_vlan_tag = vlan; + adapter->vf_cfg[vf].vlan_tag = vlan; adapter->vlans_added++; } else { - adapter->vf_cfg[vf].vf_vlan_tag = 0; + adapter->vf_cfg[vf].vlan_tag = 0; adapter->vlans_added--; } @@ -920,21 +987,25 @@ struct be_adapter *adapter = netdev_priv(netdev); int status = 0; - if (!adapter->sriov_enabled) + if (!sriov_enabled(adapter)) return -EPERM; - if ((vf >= num_vfs) || (rate < 0)) + if (vf >= adapter->num_vfs) return -EINVAL; - if (rate > 10000) - rate = 10000; + if (rate < 100 || rate > 10000) { + dev_err(&adapter->pdev->dev, + "tx rate must be between 100 and 10000 Mbps\n"); + return -EINVAL; + } - adapter->vf_cfg[vf].vf_tx_rate = rate; status = be_cmd_set_qos(adapter, rate / 10, vf + 1); if (status) - dev_info(&adapter->pdev->dev, + dev_err(&adapter->pdev->dev, "tx rate %d on VF %d failed\n", rate, vf); + else + adapter->vf_cfg[vf].tx_rate = rate; return status; } @@ -1065,16 +1136,16 @@ /* Copy data in the first descriptor of this completion */ curr_frag_len = min(rxcp->pkt_size, rx_frag_size); - /* Copy the header portion into skb_data */ - hdr_len = min(BE_HDR_LEN, curr_frag_len); - memcpy(skb->data, start, hdr_len); skb->len = curr_frag_len; if (curr_frag_len <= BE_HDR_LEN) { /* tiny packet */ + memcpy(skb->data, start, curr_frag_len); /* Complete packet has now been moved to data */ put_page(page_info->page); skb->data_len = 0; skb->tail += curr_frag_len; } else { + hdr_len = ETH_HLEN; + memcpy(skb->data, start, hdr_len); skb_shinfo(skb)->nr_frags = 1; skb_frag_set_page(skb, 0, page_info->page); skb_shinfo(skb)->frags[0].page_offset = @@ -1234,7 +1305,7 @@ rxcp->pkt_type = AMAP_GET_BITS(struct amap_eth_rx_compl_v1, cast_enc, compl); rxcp->rss_hash = - AMAP_GET_BITS(struct amap_eth_rx_compl_v1, rsshash, rxcp); + AMAP_GET_BITS(struct amap_eth_rx_compl_v1, rsshash, compl); if (rxcp->vlanf) { rxcp->vtm = AMAP_GET_BITS(struct amap_eth_rx_compl_v1, vtm, compl); @@ -1267,7 +1338,7 @@ rxcp->pkt_type = AMAP_GET_BITS(struct amap_eth_rx_compl_v0, cast_enc, compl); rxcp->rss_hash = - AMAP_GET_BITS(struct amap_eth_rx_compl_v0, rsshash, rxcp); + AMAP_GET_BITS(struct amap_eth_rx_compl_v0, rsshash, compl); if (rxcp->vlanf) { rxcp->vtm = AMAP_GET_BITS(struct amap_eth_rx_compl_v0, vtm, compl); @@ -1645,8 +1716,7 @@ static int be_num_txqs_want(struct be_adapter *adapter) { - if ((num_vfs && adapter->sriov_enabled) || - be_is_mc(adapter) || + if (sriov_enabled(adapter) || be_is_mc(adapter) || lancer_chip(adapter) || !be_physfn(adapter) || adapter->generation == BE_GEN2) return 1; @@ -1662,9 +1732,12 @@ u8 i; adapter->num_tx_qs = be_num_txqs_want(adapter); - if (adapter->num_tx_qs != MAX_TX_QS) + if (adapter->num_tx_qs != MAX_TX_QS) { + rtnl_lock(); netif_set_real_num_tx_queues(adapter->netdev, adapter->num_tx_qs); + rtnl_unlock(); + } adapter->tx_eq.max_eqd = 0; adapter->tx_eq.min_eqd = 0; @@ -1693,9 +1766,6 @@ if (be_queue_alloc(adapter, q, TX_Q_LEN, sizeof(struct be_eth_wrb))) goto err; - - if (be_cmd_txq_create(adapter, q, cq)) - goto err; } return 0; @@ -1728,8 +1798,7 @@ static u32 be_num_rxqs_want(struct be_adapter *adapter) { if ((adapter->function_caps & BE_FUNCTION_CAPS_RSS) && - !adapter->sriov_enabled && be_physfn(adapter) && - !be_is_mc(adapter)) { + !sriov_enabled(adapter) && be_physfn(adapter)) { return 1 + MAX_RSS_QS; /* one default non-RSS queue */ } else { dev_warn(&adapter->pdev->dev, @@ -1929,6 +1998,7 @@ struct be_eq_obj *tx_eq = container_of(napi, struct be_eq_obj, napi); struct be_adapter *adapter = container_of(tx_eq, struct be_adapter, tx_eq); + struct be_mcc_obj *mcc_obj = &adapter->mcc_obj; struct be_tx_obj *txo; struct be_eth_tx_compl *txcp; int tx_compl, mcc_compl, status = 0; @@ -1965,12 +2035,19 @@ mcc_compl = be_process_mcc(adapter, &status); if (mcc_compl) { - struct be_mcc_obj *mcc_obj = &adapter->mcc_obj; be_cq_notify(adapter, mcc_obj->cq.id, true, mcc_compl); } napi_complete(napi); + /* Arm CQ again to regenerate EQEs for Lancer in INTx mode */ + if (lancer_chip(adapter) && !msix_enabled(adapter)) { + for_all_tx_queues(adapter, txo, i) + be_cq_notify(adapter, txo->cq.id, true, 0); + + be_cq_notify(adapter, mcc_obj->cq.id, true, 0); + } + be_eq_notify(adapter, tx_eq->q.id, true, false, 0); adapter->drv_stats.tx_events++; return 1; @@ -1982,6 +2059,9 @@ u32 sliport_status = 0, sliport_err1 = 0, sliport_err2 = 0; u32 i; + if (adapter->eeh_err || adapter->ue_detected) + return; + if (lancer_chip(adapter)) { sliport_status = ioread32(adapter->db + SLIPORT_STATUS_OFFSET); if (sliport_status & SLIPORT_STATUS_ERR_MASK) { @@ -2008,7 +2088,8 @@ sliport_status & SLIPORT_STATUS_ERR_MASK) { adapter->ue_detected = true; adapter->eeh_err = true; - dev_err(&adapter->pdev->dev, "UE Detected!!\n"); + dev_err(&adapter->pdev->dev, + "Unrecoverable error in the card\n"); } if (ue_lo) { @@ -2036,53 +2117,6 @@ } } -static void be_worker(struct work_struct *work) -{ - struct be_adapter *adapter = - container_of(work, struct be_adapter, work.work); - struct be_rx_obj *rxo; - int i; - - if (!adapter->ue_detected) - be_detect_dump_ue(adapter); - - /* when interrupts are not yet enabled, just reap any pending - * mcc completions */ - if (!netif_running(adapter->netdev)) { - int mcc_compl, status = 0; - - mcc_compl = be_process_mcc(adapter, &status); - - if (mcc_compl) { - struct be_mcc_obj *mcc_obj = &adapter->mcc_obj; - be_cq_notify(adapter, mcc_obj->cq.id, false, mcc_compl); - } - - goto reschedule; - } - - if (!adapter->stats_cmd_sent) { - if (lancer_chip(adapter)) - lancer_cmd_get_pport_stats(adapter, - &adapter->stats_cmd); - else - be_cmd_get_stats(adapter, &adapter->stats_cmd); - } - - for_all_rx_queues(adapter, rxo, i) { - be_rx_eqd_update(adapter, rxo); - - if (rxo->rx_post_starved) { - rxo->rx_post_starved = false; - be_post_rx_frags(rxo, GFP_KERNEL); - } - } - -reschedule: - adapter->work_counter++; - schedule_delayed_work(&adapter->work, msecs_to_jiffies(1000)); -} - static void be_msix_disable(struct be_adapter *adapter) { if (msix_enabled(adapter)) { @@ -2119,27 +2153,28 @@ static int be_sriov_enable(struct be_adapter *adapter) { be_check_sriov_fn_type(adapter); + #ifdef CONFIG_PCI_IOV if (be_physfn(adapter) && num_vfs) { int status, pos; - u16 nvfs; + u16 dev_vfs; pos = pci_find_ext_capability(adapter->pdev, PCI_EXT_CAP_ID_SRIOV); pci_read_config_word(adapter->pdev, - pos + PCI_SRIOV_TOTAL_VF, &nvfs); + pos + PCI_SRIOV_TOTAL_VF, &dev_vfs); - if (num_vfs > nvfs) { + adapter->num_vfs = min_t(u16, num_vfs, dev_vfs); + if (adapter->num_vfs != num_vfs) dev_info(&adapter->pdev->dev, - "Device supports %d VFs and not %d\n", - nvfs, num_vfs); - num_vfs = nvfs; - } + "Device supports %d VFs and not %d\n", + adapter->num_vfs, num_vfs); - status = pci_enable_sriov(adapter->pdev, num_vfs); - adapter->sriov_enabled = status ? false : true; + status = pci_enable_sriov(adapter->pdev, adapter->num_vfs); + if (status) + adapter->num_vfs = 0; - if (adapter->sriov_enabled) { + if (adapter->num_vfs) { adapter->vf_cfg = kcalloc(num_vfs, sizeof(struct be_vf_cfg), GFP_KERNEL); @@ -2154,10 +2189,10 @@ static void be_sriov_disable(struct be_adapter *adapter) { #ifdef CONFIG_PCI_IOV - if (adapter->sriov_enabled) { + if (sriov_enabled(adapter)) { pci_disable_sriov(adapter->pdev); kfree(adapter->vf_cfg); - adapter->sriov_enabled = false; + adapter->num_vfs = 0; } #endif } @@ -2351,8 +2386,8 @@ static int be_rx_queues_setup(struct be_adapter *adapter) { struct be_rx_obj *rxo; - int rc, i; - u8 rsstable[MAX_RSS_QS]; + int rc, i, j; + u8 rsstable[128]; for_all_rx_queues(adapter, rxo, i) { rc = be_cmd_rxq_create(adapter, &rxo->q, rxo->cq.id, @@ -2364,11 +2399,15 @@ } if (be_multi_rxq(adapter)) { - for_all_rss_queues(adapter, rxo, i) - rsstable[i] = rxo->rss_id; + for (j = 0; j < 128; j += adapter->num_rx_qs - 1) { + for_all_rss_queues(adapter, rxo, i) { + if ((j + i) >= 128) + break; + rsstable[j + i] = rxo->rss_id; + } + } + rc = be_cmd_rss_config(adapter, rsstable, 128); - rc = be_cmd_rss_config(adapter, rsstable, - adapter->num_rx_qs - 1); if (rc) return rc; } @@ -2386,6 +2425,7 @@ struct be_adapter *adapter = netdev_priv(netdev); struct be_eq_obj *tx_eq = &adapter->tx_eq; struct be_rx_obj *rxo; + u8 link_status; int status, i; status = be_rx_queues_setup(adapter); @@ -2409,6 +2449,11 @@ /* Now that interrupts are on we can process async mcc */ be_async_mcc_enable(adapter); + status = be_cmd_link_status_query(adapter, NULL, NULL, + &link_status, 0); + if (!status) + be_link_status_update(adapter, link_status); + return 0; err: be_close(adapter->netdev); @@ -2465,19 +2510,24 @@ u32 vf; int status = 0; u8 mac[ETH_ALEN]; + struct be_vf_cfg *vf_cfg; be_vf_eth_addr_generate(adapter, mac); - for (vf = 0; vf < num_vfs; vf++) { - status = be_cmd_pmac_add(adapter, mac, - adapter->vf_cfg[vf].vf_if_handle, - &adapter->vf_cfg[vf].vf_pmac_id, - vf + 1); + for_all_vfs(adapter, vf_cfg, vf) { + if (lancer_chip(adapter)) { + status = be_cmd_set_mac_list(adapter, mac, 1, vf + 1); + } else { + status = be_cmd_pmac_add(adapter, mac, + vf_cfg->if_handle, + &vf_cfg->pmac_id, vf + 1); + } + if (status) dev_err(&adapter->pdev->dev, - "Mac address add failed for VF %d\n", vf); + "Mac address assignment failed for VF %d\n", vf); else - memcpy(adapter->vf_cfg[vf].vf_mac_addr, mac, ETH_ALEN); + memcpy(vf_cfg->mac_addr, mac, ETH_ALEN); mac[5] += 1; } @@ -2486,24 +2536,23 @@ static void be_vf_clear(struct be_adapter *adapter) { + struct be_vf_cfg *vf_cfg; u32 vf; - for (vf = 0; vf < num_vfs; vf++) { - if (adapter->vf_cfg[vf].vf_pmac_id != BE_INVALID_PMAC_ID) - be_cmd_pmac_del(adapter, - adapter->vf_cfg[vf].vf_if_handle, - adapter->vf_cfg[vf].vf_pmac_id, vf + 1); - } + for_all_vfs(adapter, vf_cfg, vf) { + if (lancer_chip(adapter)) + be_cmd_set_mac_list(adapter, NULL, 0, vf + 1); + else + be_cmd_pmac_del(adapter, vf_cfg->if_handle, + vf_cfg->pmac_id, vf + 1); - for (vf = 0; vf < num_vfs; vf++) - if (adapter->vf_cfg[vf].vf_if_handle) - be_cmd_if_destroy(adapter, - adapter->vf_cfg[vf].vf_if_handle, vf + 1); + be_cmd_if_destroy(adapter, vf_cfg->if_handle, vf + 1); + } } static int be_clear(struct be_adapter *adapter) { - if (be_physfn(adapter) && adapter->sriov_enabled) + if (sriov_enabled(adapter)) be_vf_clear(adapter); be_cmd_if_destroy(adapter, adapter->if_handle, 0); @@ -2511,61 +2560,94 @@ be_mcc_queues_destroy(adapter); be_rx_queues_destroy(adapter); be_tx_queues_destroy(adapter); - adapter->eq_next_idx = 0; - - adapter->be3_native = false; - adapter->promiscuous = false; /* tell fw we're done with firing cmds */ be_cmd_fw_clean(adapter); return 0; } +static void be_vf_setup_init(struct be_adapter *adapter) +{ + struct be_vf_cfg *vf_cfg; + int vf; + + for_all_vfs(adapter, vf_cfg, vf) { + vf_cfg->if_handle = -1; + vf_cfg->pmac_id = -1; + } +} + static int be_vf_setup(struct be_adapter *adapter) { + struct be_vf_cfg *vf_cfg; u32 cap_flags, en_flags, vf; u16 lnk_speed; int status; - cap_flags = en_flags = BE_IF_FLAGS_UNTAGGED | BE_IF_FLAGS_BROADCAST; - for (vf = 0; vf < num_vfs; vf++) { + be_vf_setup_init(adapter); + + cap_flags = en_flags = BE_IF_FLAGS_UNTAGGED | BE_IF_FLAGS_BROADCAST | + BE_IF_FLAGS_MULTICAST; + for_all_vfs(adapter, vf_cfg, vf) { status = be_cmd_if_create(adapter, cap_flags, en_flags, NULL, - &adapter->vf_cfg[vf].vf_if_handle, - NULL, vf+1); + &vf_cfg->if_handle, NULL, vf + 1); if (status) goto err; - adapter->vf_cfg[vf].vf_pmac_id = BE_INVALID_PMAC_ID; } - if (!lancer_chip(adapter)) { - status = be_vf_eth_addr_config(adapter); - if (status) - goto err; - } + status = be_vf_eth_addr_config(adapter); + if (status) + goto err; - for (vf = 0; vf < num_vfs; vf++) { + for_all_vfs(adapter, vf_cfg, vf) { status = be_cmd_link_status_query(adapter, NULL, &lnk_speed, - vf + 1); + NULL, vf + 1); if (status) goto err; - adapter->vf_cfg[vf].vf_tx_rate = lnk_speed * 10; + vf_cfg->tx_rate = lnk_speed * 10; } return 0; err: return status; } +static void be_setup_init(struct be_adapter *adapter) +{ + adapter->vlan_prio_bmap = 0xff; + adapter->link_speed = -1; + adapter->if_handle = -1; + adapter->be3_native = false; + adapter->promiscuous = false; + adapter->eq_next_idx = 0; +} + +static int be_configure_mac_from_list(struct be_adapter *adapter, u8 *mac) +{ + u32 pmac_id; + int status = be_cmd_get_mac_from_list(adapter, 0, &pmac_id); + if (status != 0) + goto do_none; + status = be_cmd_mac_addr_query(adapter, mac, + MAC_ADDRESS_TYPE_NETWORK, + false, adapter->if_handle, pmac_id); + if (status != 0) + goto do_none; + status = be_cmd_pmac_add(adapter, mac, adapter->if_handle, + &adapter->pmac_id, 0); +do_none: + return status; +} + static int be_setup(struct be_adapter *adapter) { struct net_device *netdev = adapter->netdev; u32 cap_flags, en_flags; u32 tx_fc, rx_fc; - int status; + int status, i; u8 mac[ETH_ALEN]; + struct be_tx_obj *txo; - /* Allow all priorities by default. A GRP5 evt may modify this */ - adapter->vlan_prio_bmap = 0xff; - adapter->link_speed = -1; + be_setup_init(adapter); be_cmd_req_native_mode(adapter); @@ -2583,7 +2665,7 @@ memset(mac, 0, ETH_ALEN); status = be_cmd_mac_addr_query(adapter, mac, MAC_ADDRESS_TYPE_NETWORK, - true /*permanent */, 0); + true /*permanent */, 0, 0); if (status) return status; memcpy(adapter->netdev->dev_addr, mac, ETH_ALEN); @@ -2592,7 +2674,8 @@ en_flags = BE_IF_FLAGS_UNTAGGED | BE_IF_FLAGS_BROADCAST | BE_IF_FLAGS_MULTICAST | BE_IF_FLAGS_PASS_L3L4_ERRORS; cap_flags = en_flags | BE_IF_FLAGS_MCAST_PROMISCUOUS | - BE_IF_FLAGS_PROMISCUOUS; + BE_IF_FLAGS_VLAN_PROMISCUOUS | BE_IF_FLAGS_PROMISCUOUS; + if (adapter->function_caps & BE_FUNCTION_CAPS_RSS) { cap_flags |= BE_IF_FLAGS_RSS; en_flags |= BE_IF_FLAGS_RSS; @@ -2603,12 +2686,23 @@ if (status != 0) goto err; - /* For BEx, the VF's permanent mac queried from card is incorrect. - * Query the mac configued by the PF using if_handle - */ - if (!be_physfn(adapter) && !lancer_chip(adapter)) { - status = be_cmd_mac_addr_query(adapter, mac, - MAC_ADDRESS_TYPE_NETWORK, false, adapter->if_handle); + for_all_tx_queues(adapter, txo, i) { + status = be_cmd_txq_create(adapter, &txo->q, &txo->cq); + if (status) + goto err; + } + + /* The VF's permanent mac queried from card is incorrect. + * For BEx: Query the mac configued by the PF using if_handle + * For Lancer: Get and use mac_list to obtain mac address. + */ + if (!be_physfn(adapter)) { + if (lancer_chip(adapter)) + status = be_configure_mac_from_list(adapter, mac); + else + status = be_cmd_mac_addr_query(adapter, mac, + MAC_ADDRESS_TYPE_NETWORK, false, + adapter->if_handle, 0); if (!status) { memcpy(adapter->netdev->dev_addr, mac, ETH_ALEN); memcpy(adapter->netdev->perm_addr, mac, ETH_ALEN); @@ -2624,18 +2718,21 @@ be_set_rx_mode(adapter->netdev); status = be_cmd_get_flow_control(adapter, &tx_fc, &rx_fc); - if (status) + /* For Lancer: It is legal for this cmd to fail on VF */ + if (status && (be_physfn(adapter) || !lancer_chip(adapter))) goto err; + if (rx_fc != adapter->rx_fc || tx_fc != adapter->tx_fc) { status = be_cmd_set_flow_control(adapter, adapter->tx_fc, adapter->rx_fc); - if (status) + /* For Lancer: It is legal for this cmd to fail on VF */ + if (status && (be_physfn(adapter) || !lancer_chip(adapter))) goto err; } pcie_set_readrq(adapter->pdev, 4096); - if (be_physfn(adapter) && adapter->sriov_enabled) { + if (sriov_enabled(adapter)) { status = be_vf_setup(adapter); if (status) goto err; @@ -2647,6 +2744,19 @@ return status; } +#ifdef CONFIG_NET_POLL_CONTROLLER +static void be_netpoll(struct net_device *netdev) +{ + struct be_adapter *adapter = netdev_priv(netdev); + struct be_rx_obj *rxo; + int i; + + event_handle(adapter, &adapter->tx_eq, false); + for_all_rx_queues(adapter, rxo, i) + event_handle(adapter, &rxo->rx_eq, true); +} +#endif + #define FW_FILE_HDR_SIGN "ServerEngines Corp. " static bool be_flash_redboot(struct be_adapter *adapter, const u8 *p, u32 img_start, int image_size, @@ -2981,7 +3091,7 @@ return status; } -static struct net_device_ops be_netdev_ops = { +static const struct net_device_ops be_netdev_ops = { .ndo_open = be_open, .ndo_stop = be_close, .ndo_start_xmit = be_xmit, @@ -2995,7 +3105,10 @@ .ndo_set_vf_mac = be_set_vf_mac, .ndo_set_vf_vlan = be_set_vf_vlan, .ndo_set_vf_tx_rate = be_set_vf_tx_rate, - .ndo_get_vf_config = be_get_vf_config + .ndo_get_vf_config = be_get_vf_config, +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = be_netpoll, +#endif }; static void be_netdev_init(struct net_device *netdev) @@ -3018,7 +3131,7 @@ netdev->flags |= IFF_MULTICAST; - netif_set_gso_max_size(netdev, 65535); + netif_set_gso_max_size(netdev, 65535 - ETH_HLEN); BE_SET_NETDEV_OPS(netdev, &be_netdev_ops); @@ -3242,6 +3355,7 @@ break; case BE_DEVICE_ID2: case OC_DEVICE_ID2: + case OC_DEVICE_ID5: adapter->generation = BE_GEN3; break; case OC_DEVICE_ID3: @@ -3267,7 +3381,7 @@ static int lancer_wait_ready(struct be_adapter *adapter) { -#define SLIPORT_READY_TIMEOUT 500 +#define SLIPORT_READY_TIMEOUT 30 u32 sliport_status; int status = 0, i; @@ -3276,7 +3390,7 @@ if (sliport_status & SLIPORT_STATUS_RDY_MASK) break; - msleep(20); + msleep(1000); } if (i == SLIPORT_READY_TIMEOUT) @@ -3313,6 +3427,104 @@ return status; } +static void lancer_test_and_recover_fn_err(struct be_adapter *adapter) +{ + int status; + u32 sliport_status; + + if (adapter->eeh_err || adapter->ue_detected) + return; + + sliport_status = ioread32(adapter->db + SLIPORT_STATUS_OFFSET); + + if (sliport_status & SLIPORT_STATUS_ERR_MASK) { + dev_err(&adapter->pdev->dev, + "Adapter in error state." + "Trying to recover.\n"); + + status = lancer_test_and_set_rdy_state(adapter); + if (status) + goto err; + + netif_device_detach(adapter->netdev); + + if (netif_running(adapter->netdev)) + be_close(adapter->netdev); + + be_clear(adapter); + + adapter->fw_timeout = false; + + status = be_setup(adapter); + if (status) + goto err; + + if (netif_running(adapter->netdev)) { + status = be_open(adapter->netdev); + if (status) + goto err; + } + + netif_device_attach(adapter->netdev); + + dev_err(&adapter->pdev->dev, + "Adapter error recovery succeeded\n"); + } + return; +err: + dev_err(&adapter->pdev->dev, + "Adapter error recovery failed\n"); +} + +static void be_worker(struct work_struct *work) +{ + struct be_adapter *adapter = + container_of(work, struct be_adapter, work.work); + struct be_rx_obj *rxo; + int i; + + if (lancer_chip(adapter)) + lancer_test_and_recover_fn_err(adapter); + + be_detect_dump_ue(adapter); + + /* when interrupts are not yet enabled, just reap any pending + * mcc completions */ + if (!netif_running(adapter->netdev)) { + int mcc_compl, status = 0; + + mcc_compl = be_process_mcc(adapter, &status); + + if (mcc_compl) { + struct be_mcc_obj *mcc_obj = &adapter->mcc_obj; + be_cq_notify(adapter, mcc_obj->cq.id, false, mcc_compl); + } + + goto reschedule; + } + + if (!adapter->stats_cmd_sent) { + if (lancer_chip(adapter)) + lancer_cmd_get_pport_stats(adapter, + &adapter->stats_cmd); + else + be_cmd_get_stats(adapter, &adapter->stats_cmd); + } + + for_all_rx_queues(adapter, rxo, i) { + be_rx_eqd_update(adapter, rxo); + + if (rxo->rx_post_starved) { + rxo->rx_post_starved = false; + be_post_rx_frags(rxo, GFP_KERNEL); + } + } + +reschedule: + adapter->work_counter++; + schedule_delayed_work(&adapter->work, msecs_to_jiffies(1000)); +} + static int __devinit be_probe(struct pci_dev *pdev, const struct pci_device_id *pdev_id) { @@ -3365,7 +3577,12 @@ goto disable_sriov; if (lancer_chip(adapter)) { - status = lancer_test_and_set_rdy_state(adapter); + status = lancer_wait_ready(adapter); + if (!status) { + iowrite32(SLI_PORT_CONTROL_IP_MASK, + adapter->db + SLIPORT_CONTROL_OFFSET); + status = lancer_test_and_set_rdy_state(adapter); + } if (status) { dev_err(&pdev->dev, "Adapter in non recoverable error\n"); goto ctrl_clean; @@ -3559,6 +3776,8 @@ dev_info(&adapter->pdev->dev, "EEH reset\n"); adapter->eeh_err = false; + adapter->ue_detected = false; + adapter->fw_timeout = false; status = pci_enable_device(pdev); if (status) --- linux-3.2.0.orig/drivers/net/ethernet/marvell/sky2.h +++ linux-3.2.0/drivers/net/ethernet/marvell/sky2.h @@ -2069,7 +2069,7 @@ GM_IS_RX_FF_OR = 1<<1, /* Receive FIFO Overrun */ GM_IS_RX_COMPL = 1<<0, /* Frame Reception Complete */ -#define GMAC_DEF_MSK GM_IS_TX_FF_UR +#define GMAC_DEF_MSK (GM_IS_TX_FF_UR | GM_IS_RX_FF_OR) }; /* GMAC_LINK_CTRL 16 bit GMAC Link Control Reg (YUKON only) */ @@ -2241,7 +2241,6 @@ u16 rx_pending; u16 rx_data_size; u16 rx_nfrags; - u16 rx_tag; struct { unsigned long last; --- linux-3.2.0.orig/drivers/net/ethernet/marvell/sky2.c +++ linux-3.2.0/drivers/net/ethernet/marvell/sky2.c @@ -95,6 +95,10 @@ module_param(disable_msi, int, 0); MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)"); +static int legacy_pme = 0; +module_param(legacy_pme, int, 0); +MODULE_PARM_DESC(legacy_pme, "Legacy power management"); + static DEFINE_PCI_DEVICE_TABLE(sky2_id_table) = { { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9000) }, /* SK-9Sxx */ { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9E00) }, /* SK-9Exx */ @@ -867,6 +871,13 @@ /* Disable PiG firmware */ sky2_write16(hw, B0_CTST, Y2_HW_WOL_OFF); + /* Needed by some broken BIOSes, use PCI rather than PCI-e for WOL */ + if (legacy_pme) { + u32 reg1 = sky2_pci_read32(hw, PCI_DEV_REG1); + reg1 |= PCI_Y2_PME_LEGACY; + sky2_pci_write32(hw, PCI_DEV_REG1, reg1); + } + /* block receiver */ sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET); sky2_read32(hw, B0_CTST); @@ -1055,7 +1066,7 @@ sky2_write32(hw, RB_ADDR(q, RB_RX_UTHP), tp); sky2_write32(hw, RB_ADDR(q, RB_RX_LTHP), space/2); - tp = space - 2048/8; + tp = space - 8192/8; sky2_write32(hw, RB_ADDR(q, RB_RX_UTPP), tp); sky2_write32(hw, RB_ADDR(q, RB_RX_LTPP), space/4); } else { @@ -1755,13 +1766,14 @@ sky2_hw_up(sky2); + /* Enable interrupts from phy/mac for port */ + imask = sky2_read32(hw, B0_IMSK); + if (hw->chip_id == CHIP_ID_YUKON_OPT || hw->chip_id == CHIP_ID_YUKON_PRM || hw->chip_id == CHIP_ID_YUKON_OP_2) imask |= Y2_IS_PHY_QLNK; /* enable PHY Quick Link */ - /* Enable interrupts from phy/mac for port */ - imask = sky2_read32(hw, B0_IMSK); imask |= portirq_msk[port]; sky2_write32(hw, B0_IMSK, imask); sky2_read32(hw, B0_IMSK); @@ -2463,8 +2475,13 @@ skb_copy_from_linear_data(re->skb, skb->data, length); skb->ip_summed = re->skb->ip_summed; skb->csum = re->skb->csum; + skb->rxhash = re->skb->rxhash; + skb->vlan_tci = re->skb->vlan_tci; + pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr, length, PCI_DMA_FROMDEVICE); + re->skb->vlan_tci = 0; + re->skb->rxhash = 0; re->skb->ip_summed = CHECKSUM_NONE; skb_put(skb, length); } @@ -2549,9 +2566,6 @@ struct sk_buff *skb = NULL; u16 count = (status & GMR_FS_LEN) >> 16; - if (status & GMR_FS_VLAN) - count -= VLAN_HLEN; /* Account for vlan tag */ - netif_printk(sky2, rx_status, KERN_DEBUG, dev, "rx slot %u status 0x%x len %d\n", sky2->rx_next, status, length); @@ -2559,6 +2573,9 @@ sky2->rx_next = (sky2->rx_next + 1) % sky2->rx_pending; prefetch(sky2->rx_ring + sky2->rx_next); + if (vlan_tx_tag_present(re->skb)) + count -= VLAN_HLEN; /* Account for vlan tag */ + /* This chip has hardware problems that generates bogus status. * So do only marginal checking and expect higher level protocols * to handle crap frames. @@ -2616,11 +2633,8 @@ } static inline void sky2_skb_rx(const struct sky2_port *sky2, - u32 status, struct sk_buff *skb) + struct sk_buff *skb) { - if (status & GMR_FS_VLAN) - __vlan_hwaccel_put_tag(skb, be16_to_cpu(sky2->rx_tag)); - if (skb->ip_summed == CHECKSUM_NONE) netif_receive_skb(skb); else @@ -2674,6 +2688,14 @@ } } +static void sky2_rx_tag(struct sky2_port *sky2, u16 length) +{ + struct sk_buff *skb; + + skb = sky2->rx_ring[sky2->rx_next].skb; + __vlan_hwaccel_put_tag(skb, be16_to_cpu(length)); +} + static void sky2_rx_hash(struct sky2_port *sky2, u32 status) { struct sk_buff *skb; @@ -2732,8 +2754,7 @@ } skb->protocol = eth_type_trans(skb, dev); - - sky2_skb_rx(sky2, status, skb); + sky2_skb_rx(sky2, skb); /* Stop after net poll weight */ if (++work_done >= to_do) @@ -2741,11 +2762,11 @@ break; case OP_RXVLAN: - sky2->rx_tag = length; + sky2_rx_tag(sky2, length); break; case OP_RXCHKSVLAN: - sky2->rx_tag = length; + sky2_rx_tag(sky2, length); /* fall through */ case OP_RXCHKS: if (likely(dev->features & NETIF_F_RXCSUM)) @@ -3039,8 +3060,10 @@ /* Reading this mask interrupts as side effect */ status = sky2_read32(hw, B0_Y2_SP_ISRC2); - if (status == 0 || status == ~0) + if (status == 0 || status == ~0) { + sky2_write32(hw, B0_Y2_SP_ICR, 2); return IRQ_NONE; + } prefetch(&hw->st_le[hw->st_idx]); @@ -3643,10 +3666,11 @@ { struct sky2_port *sky2 = netdev_priv(dev); - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); - strcpy(info->fw_version, "N/A"); - strcpy(info->bus_info, pci_name(sky2->hw->pdev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->fw_version, "N/A", sizeof(info->fw_version)); + strlcpy(info->bus_info, pci_name(sky2->hw->pdev), + sizeof(info->bus_info)); } static const struct sky2_stat { @@ -4340,10 +4364,12 @@ struct sky2_port *sky2 = netdev_priv(dev); u32 changed = dev->features ^ features; - if (changed & NETIF_F_RXCSUM) { - u32 on = features & NETIF_F_RXCSUM; - sky2_write32(sky2->hw, Q_ADDR(rxqaddr[sky2->port], Q_CSR), - on ? BMU_ENA_RX_CHKSUM : BMU_DIS_RX_CHKSUM); + if ((changed & NETIF_F_RXCSUM) && + !(sky2->hw->flags & SKY2_HW_NEW_LE)) { + sky2_write32(sky2->hw, + Q_ADDR(rxqaddr[sky2->port], Q_CSR), + (features & NETIF_F_RXCSUM) + ? BMU_ENA_RX_CHKSUM : BMU_DIS_RX_CHKSUM); } if (changed & NETIF_F_RXHASH) --- linux-3.2.0.orig/drivers/net/ethernet/marvell/skge.c +++ linux-3.2.0/drivers/net/ethernet/marvell/skge.c @@ -394,10 +394,11 @@ { struct skge_port *skge = netdev_priv(dev); - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); - strcpy(info->fw_version, "N/A"); - strcpy(info->bus_info, pci_name(skge->hw->pdev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->fw_version, "N/A", sizeof(info->fw_version)); + strlcpy(info->bus_info, pci_name(skge->hw->pdev), + sizeof(info->bus_info)); } static const struct skge_stat { @@ -4143,6 +4144,13 @@ DMI_MATCH(DMI_BOARD_NAME, "nForce"), }, }, + { + .ident = "ASUS P5NSLI", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "P5NSLI") + }, + }, {} }; --- linux-3.2.0.orig/drivers/net/ethernet/marvell/mv643xx_eth.c +++ linux-3.2.0/drivers/net/ethernet/marvell/mv643xx_eth.c @@ -1502,10 +1502,12 @@ static void mv643xx_eth_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo) { - strncpy(drvinfo->driver, mv643xx_eth_driver_name, 32); - strncpy(drvinfo->version, mv643xx_eth_driver_version, 32); - strncpy(drvinfo->fw_version, "N/A", 32); - strncpy(drvinfo->bus_info, "platform", 32); + strlcpy(drvinfo->driver, mv643xx_eth_driver_name, + sizeof(drvinfo->driver)); + strlcpy(drvinfo->version, mv643xx_eth_driver_version, + sizeof(drvinfo->version)); + strlcpy(drvinfo->fw_version, "N/A", sizeof(drvinfo->fw_version)); + strlcpy(drvinfo->bus_info, "platform", sizeof(drvinfo->bus_info)); drvinfo->n_stats = ARRAY_SIZE(mv643xx_eth_stats); } --- linux-3.2.0.orig/drivers/net/ethernet/qlogic/qla3xxx.c +++ linux-3.2.0/drivers/net/ethernet/qlogic/qla3xxx.c @@ -1735,10 +1735,12 @@ struct ethtool_drvinfo *drvinfo) { struct ql3_adapter *qdev = netdev_priv(ndev); - strncpy(drvinfo->driver, ql3xxx_driver_name, 32); - strncpy(drvinfo->version, ql3xxx_driver_version, 32); - strncpy(drvinfo->fw_version, "N/A", 32); - strncpy(drvinfo->bus_info, pci_name(qdev->pdev), 32); + strlcpy(drvinfo->driver, ql3xxx_driver_name, sizeof(drvinfo->driver)); + strlcpy(drvinfo->version, ql3xxx_driver_version, + sizeof(drvinfo->version)); + strlcpy(drvinfo->fw_version, "N/A", sizeof(drvinfo->fw_version)); + strlcpy(drvinfo->bus_info, pci_name(qdev->pdev), + sizeof(drvinfo->bus_info)); drvinfo->regdump_len = 0; drvinfo->eedump_len = 0; } --- linux-3.2.0.orig/drivers/net/ethernet/qlogic/qlge/qlge_ethtool.c +++ linux-3.2.0/drivers/net/ethernet/qlogic/qlge/qlge_ethtool.c @@ -366,13 +366,16 @@ struct ethtool_drvinfo *drvinfo) { struct ql_adapter *qdev = netdev_priv(ndev); - strncpy(drvinfo->driver, qlge_driver_name, 32); - strncpy(drvinfo->version, qlge_driver_version, 32); - snprintf(drvinfo->fw_version, 32, "v%d.%d.%d", + strlcpy(drvinfo->driver, qlge_driver_name, sizeof(drvinfo->driver)); + strlcpy(drvinfo->version, qlge_driver_version, + sizeof(drvinfo->version)); + snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), + "v%d.%d.%d", (qdev->fw_rev_id & 0x00ff0000) >> 16, (qdev->fw_rev_id & 0x0000ff00) >> 8, (qdev->fw_rev_id & 0x000000ff)); - strncpy(drvinfo->bus_info, pci_name(qdev->pdev), 32); + strlcpy(drvinfo->bus_info, pci_name(qdev->pdev), + sizeof(drvinfo->bus_info)); drvinfo->n_stats = 0; drvinfo->testinfo_len = 0; if (!test_bit(QL_FRC_COREDUMP, &qdev->flags)) --- linux-3.2.0.orig/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c +++ linux-3.2.0/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c @@ -140,11 +140,14 @@ fw_major = QLCRD32(adapter, QLCNIC_FW_VERSION_MAJOR); fw_minor = QLCRD32(adapter, QLCNIC_FW_VERSION_MINOR); fw_build = QLCRD32(adapter, QLCNIC_FW_VERSION_SUB); - sprintf(drvinfo->fw_version, "%d.%d.%d", fw_major, fw_minor, fw_build); + snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), + "%d.%d.%d", fw_major, fw_minor, fw_build); - strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), 32); - strlcpy(drvinfo->driver, qlcnic_driver_name, 32); - strlcpy(drvinfo->version, QLCNIC_LINUX_VERSIONID, 32); + strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), + sizeof(drvinfo->bus_info)); + strlcpy(drvinfo->driver, qlcnic_driver_name, sizeof(drvinfo->driver)); + strlcpy(drvinfo->version, QLCNIC_LINUX_VERSIONID, + sizeof(drvinfo->version)); } static int --- linux-3.2.0.orig/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c +++ linux-3.2.0/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c @@ -144,7 +144,7 @@ buffrag->length, PCI_DMA_TODEVICE); buffrag->dma = 0ULL; } - for (j = 0; j < cmd_buf->frag_count; j++) { + for (j = 1; j < cmd_buf->frag_count; j++) { buffrag++; if (buffrag->dma) { pci_unmap_page(adapter->pdev, buffrag->dma, --- linux-3.2.0.orig/drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c +++ linux-3.2.0/drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c @@ -83,14 +83,18 @@ u32 fw_minor = 0; u32 fw_build = 0; - strncpy(drvinfo->driver, netxen_nic_driver_name, 32); - strncpy(drvinfo->version, NETXEN_NIC_LINUX_VERSIONID, 32); + strlcpy(drvinfo->driver, netxen_nic_driver_name, + sizeof(drvinfo->driver)); + strlcpy(drvinfo->version, NETXEN_NIC_LINUX_VERSIONID, + sizeof(drvinfo->version)); fw_major = NXRD32(adapter, NETXEN_FW_VERSION_MAJOR); fw_minor = NXRD32(adapter, NETXEN_FW_VERSION_MINOR); fw_build = NXRD32(adapter, NETXEN_FW_VERSION_SUB); - sprintf(drvinfo->fw_version, "%d.%d.%d", fw_major, fw_minor, fw_build); + snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), + "%d.%d.%d", fw_major, fw_minor, fw_build); - strncpy(drvinfo->bus_info, pci_name(adapter->pdev), 32); + strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), + sizeof(drvinfo->bus_info)); drvinfo->regdump_len = NETXEN_NIC_REGS_LEN; drvinfo->eedump_len = netxen_nic_get_eeprom_len(dev); } --- linux-3.2.0.orig/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c +++ linux-3.2.0/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c @@ -1351,6 +1351,10 @@ struct pci_dev *root = pdev->bus->self; u32 aer_pos; + /* root bus? */ + if (!root) + return; + if (adapter->ahw.board_type != NETXEN_BRDTYPE_P3_4_GB_MM && adapter->ahw.board_type != NETXEN_BRDTYPE_P3_10G_TP) return; @@ -1920,10 +1924,12 @@ while (--i >= 0) { nf = &pbuf->frag_array[i+1]; pci_unmap_page(pdev, nf->dma, nf->length, PCI_DMA_TODEVICE); + nf->dma = 0ULL; } nf = &pbuf->frag_array[0]; pci_unmap_single(pdev, nf->dma, skb_headlen(skb), PCI_DMA_TODEVICE); + nf->dma = 0ULL; out_err: return -ENOMEM; --- linux-3.2.0.orig/drivers/net/ethernet/freescale/gianfar_ptp.c +++ linux-3.2.0/drivers/net/ethernet/freescale/gianfar_ptp.c @@ -127,7 +127,6 @@ #define DRIVER "gianfar_ptp" #define DEFAULT_CKSEL 1 -#define N_ALARM 1 /* first alarm is used internally to reset fipers */ #define N_EXT_TS 2 #define REG_SIZE sizeof(struct gianfar_ptp_registers) @@ -410,7 +409,7 @@ .owner = THIS_MODULE, .name = "gianfar clock", .max_adj = 512000, - .n_alarm = N_ALARM, + .n_alarm = 0, .n_ext_ts = N_EXT_TS, .n_per_out = 0, .pps = 1, @@ -521,6 +520,7 @@ return 0; no_clock: + iounmap(etsects->regs); no_ioremap: release_resource(etsects->rsrc); no_resource: --- linux-3.2.0.orig/drivers/net/ethernet/freescale/fsl_pq_mdio.c +++ linux-3.2.0/drivers/net/ethernet/freescale/fsl_pq_mdio.c @@ -356,16 +356,15 @@ if (prop) tbiaddr = *prop; - } - - if (tbiaddr == -1) { - err = -EBUSY; - goto err_free_irqs; + if (tbiaddr == -1) { + err = -EBUSY; + goto err_free_irqs; + } else { + out_be32(tbipa, tbiaddr); + } } - out_be32(tbipa, tbiaddr); - err = of_mdiobus_register(new_bus, np); if (err) { printk (KERN_ERR "%s: Cannot register as MDIO bus\n", --- linux-3.2.0.orig/drivers/net/ethernet/freescale/fec_mpc52xx.c +++ linux-3.2.0/drivers/net/ethernet/freescale/fec_mpc52xx.c @@ -437,7 +437,7 @@ length = status & BCOM_FEC_RX_BD_LEN_MASK; skb_put(rskb, length - 4); /* length without CRC32 */ rskb->protocol = eth_type_trans(rskb, dev); - if (!skb_defer_rx_timestamp(skb)) + if (!skb_defer_rx_timestamp(rskb)) netif_rx(rskb); spin_lock(&priv->lock); --- linux-3.2.0.orig/drivers/net/ethernet/freescale/gianfar.c +++ linux-3.2.0/drivers/net/ethernet/freescale/gianfar.c @@ -1041,7 +1041,7 @@ if (priv->device_flags & FSL_GIANFAR_DEV_HAS_VLAN) { dev->hw_features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; - dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; + dev->features |= NETIF_F_HW_VLAN_RX; } if (priv->device_flags & FSL_GIANFAR_DEV_HAS_EXTENDED_HASH) { --- linux-3.2.0.orig/drivers/net/ethernet/tile/tilepro.c +++ linux-3.2.0/drivers/net/ethernet/tile/tilepro.c @@ -2260,8 +2260,7 @@ return 0; } - -static struct net_device_ops tile_net_ops = { +static const struct net_device_ops tile_net_ops = { .ndo_open = tile_net_open, .ndo_stop = tile_net_stop, .ndo_start_xmit = tile_net_tx, --- linux-3.2.0.orig/drivers/net/ethernet/ti/davinci_cpdma.c +++ linux-3.2.0/drivers/net/ethernet/ti/davinci_cpdma.c @@ -851,6 +851,7 @@ next_dma = desc_read(desc, hw_next); chan->head = desc_from_phys(pool, next_dma); + chan->count--; chan->stats.teardown_dequeue++; /* issue callback without locks held */ --- linux-3.2.0.orig/drivers/net/ethernet/ti/davinci_mdio.c +++ linux-3.2.0/drivers/net/ethernet/ti/davinci_mdio.c @@ -181,6 +181,11 @@ __davinci_mdio_reset(data); return -EAGAIN; } + + reg = __raw_readl(®s->user[0].access); + if ((reg & USERACCESS_GO) == 0) + return 0; + dev_err(data->dev, "timed out waiting for user access\n"); return -ETIMEDOUT; } --- linux-3.2.0.orig/drivers/net/ethernet/ti/davinci_emac.c +++ linux-3.2.0/drivers/net/ethernet/ti/davinci_emac.c @@ -1007,7 +1007,7 @@ int ret; /* free and bail if we are shutting down */ - if (unlikely(!netif_running(ndev) || !netif_carrier_ok(ndev))) { + if (unlikely(!netif_running(ndev))) { dev_kfree_skb_any(skb); return; } @@ -1036,7 +1036,9 @@ recycle: ret = cpdma_chan_submit(priv->rxchan, skb, skb->data, skb_tailroom(skb), GFP_KERNEL); - if (WARN_ON(ret < 0)) + + WARN_ON(ret == -ENOMEM); + if (unlikely(ret < 0)) dev_kfree_skb_any(skb); } @@ -1046,7 +1048,7 @@ struct net_device *ndev = skb->dev; if (unlikely(netif_queue_stopped(ndev))) - netif_start_queue(ndev); + netif_wake_queue(ndev); ndev->stats.tx_packets++; ndev->stats.tx_bytes += len; dev_kfree_skb_any(skb); --- linux-3.2.0.orig/drivers/net/ethernet/xircom/xirc2ps_cs.c +++ linux-3.2.0/drivers/net/ethernet/xircom/xirc2ps_cs.c @@ -1411,7 +1411,7 @@ static void netdev_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { - strcpy(info->driver, "xirc2ps_cs"); + strlcpy(info->driver, "xirc2ps_cs", sizeof(info->driver)); sprintf(info->bus_info, "PCMCIA 0x%lx", dev->base_addr); } --- linux-3.2.0.orig/drivers/net/ethernet/i825xx/eepro.c +++ linux-3.2.0/drivers/net/ethernet/i825xx/eepro.c @@ -1726,9 +1726,10 @@ static void eepro_ethtool_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo) { - strcpy(drvinfo->driver, DRV_NAME); - strcpy(drvinfo->version, DRV_VERSION); - sprintf(drvinfo->bus_info, "ISA 0x%lx", dev->base_addr); + strlcpy(drvinfo->driver, DRV_NAME, sizeof(drvinfo->driver)); + strlcpy(drvinfo->version, DRV_VERSION, sizeof(drvinfo->version)); + snprintf(drvinfo->bus_info, sizeof(drvinfo->bus_info), + "ISA 0x%lx", dev->base_addr); } static const struct ethtool_ops eepro_ethtool_ops = { --- linux-3.2.0.orig/drivers/net/ethernet/micrel/ksz884x.c +++ linux-3.2.0/drivers/net/ethernet/micrel/ksz884x.c @@ -5679,7 +5679,7 @@ memcpy(hw->override_addr, mac->sa_data, MAC_ADDR_LEN); } - memcpy(dev->dev_addr, mac->sa_data, MAX_ADDR_LEN); + memcpy(dev->dev_addr, mac->sa_data, ETH_ALEN); interrupt = hw_block_intr(hw); --- linux-3.2.0.orig/drivers/net/ethernet/micrel/ks8851.c +++ linux-3.2.0/drivers/net/ethernet/micrel/ks8851.c @@ -490,7 +490,7 @@ for (; rxfc != 0; rxfc--) { rxh = ks8851_rdreg32(ks, KS_RXFHSR); rxstat = rxh & 0xffff; - rxlen = rxh >> 16; + rxlen = (rxh >> 16) & 0xfff; netif_dbg(ks, rx_status, ks->netdev, "rx: stat 0x%04x, len 0x%04x\n", rxstat, rxlen); --- linux-3.2.0.orig/drivers/net/ethernet/micrel/ks8851_mll.c +++ linux-3.2.0/drivers/net/ethernet/micrel/ks8851_mll.c @@ -40,7 +40,7 @@ #define DRV_NAME "ks8851_mll" static u8 KS_DEFAULT_MAC_ADDRESS[] = { 0x00, 0x10, 0xA1, 0x86, 0x95, 0x11 }; -#define MAX_RECV_FRAMES 32 +#define MAX_RECV_FRAMES 255 #define MAX_BUF_SIZE 2048 #define TX_BUF_SIZE 2000 #define RX_BUF_SIZE 2000 --- linux-3.2.0.orig/drivers/net/ethernet/dec/tulip/winbond-840.c +++ linux-3.2.0/drivers/net/ethernet/dec/tulip/winbond-840.c @@ -1390,9 +1390,9 @@ { struct netdev_private *np = netdev_priv(dev); - strcpy (info->driver, DRV_NAME); - strcpy (info->version, DRV_VERSION); - strcpy (info->bus_info, pci_name(np->pci_dev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(np->pci_dev), sizeof(info->bus_info)); } static int netdev_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) --- linux-3.2.0.orig/drivers/net/ethernet/dec/tulip/dmfe.c +++ linux-3.2.0/drivers/net/ethernet/dec/tulip/dmfe.c @@ -1085,10 +1085,11 @@ { struct dmfe_board_info *np = netdev_priv(dev); - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); if (np->pdev) - strcpy(info->bus_info, pci_name(np->pdev)); + strlcpy(info->bus_info, pci_name(np->pdev), + sizeof(info->bus_info)); else sprintf(info->bus_info, "EISA 0x%lx %d", dev->base_addr, dev->irq); --- linux-3.2.0.orig/drivers/net/ethernet/dec/tulip/uli526x.c +++ linux-3.2.0/drivers/net/ethernet/dec/tulip/uli526x.c @@ -960,10 +960,11 @@ { struct uli526x_board_info *np = netdev_priv(dev); - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); if (np->pdev) - strcpy(info->bus_info, pci_name(np->pdev)); + strlcpy(info->bus_info, pci_name(np->pdev), + sizeof(info->bus_info)); else sprintf(info->bus_info, "EISA 0x%lx %d", dev->base_addr, dev->irq); --- linux-3.2.0.orig/drivers/net/ethernet/dec/tulip/tulip_core.c +++ linux-3.2.0/drivers/net/ethernet/dec/tulip/tulip_core.c @@ -871,9 +871,9 @@ static void tulip_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { struct tulip_private *np = netdev_priv(dev); - strcpy(info->driver, DRV_NAME); - strcpy(info->version, DRV_VERSION); - strcpy(info->bus_info, pci_name(np->pdev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(np->pdev), sizeof(info->bus_info)); } --- linux-3.2.0.orig/drivers/net/ethernet/dec/tulip/de2104x.c +++ linux-3.2.0/drivers/net/ethernet/dec/tulip/de2104x.c @@ -1598,9 +1598,9 @@ { struct de_private *de = netdev_priv(dev); - strcpy (info->driver, DRV_NAME); - strcpy (info->version, DRV_VERSION); - strcpy (info->bus_info, pci_name(de->pdev)); + strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); + strlcpy(info->version, DRV_VERSION, sizeof(info->version)); + strlcpy(info->bus_info, pci_name(de->pdev), sizeof(info->bus_info)); info->eedump_len = DE_EEPROM_SIZE; } --- linux-3.2.0.orig/drivers/net/ethernet/sun/sungem.c +++ linux-3.2.0/drivers/net/ethernet/sun/sungem.c @@ -2340,7 +2340,7 @@ netif_device_detach(dev); /* Switch off chip, remember WOL setting */ - gp->asleep_wol = gp->wake_on_lan; + gp->asleep_wol = !!gp->wake_on_lan; gem_do_stop(dev, gp->asleep_wol); /* Unlock the network stack */ --- linux-3.2.0.orig/drivers/net/ethernet/sun/sunvnet.c +++ linux-3.2.0/drivers/net/ethernet/sun/sunvnet.c @@ -1248,6 +1248,8 @@ dev_set_drvdata(&vdev->dev, NULL); kfree(port); + + unregister_netdev(vp->dev); } return 0; } --- linux-3.2.0.orig/drivers/net/vmxnet3/vmxnet3_drv.c +++ linux-3.2.0/drivers/net/vmxnet3/vmxnet3_drv.c @@ -830,13 +830,8 @@ ctx->l4_hdr_size = ((struct tcphdr *) skb_transport_header(skb))->doff * 4; else if (iph->protocol == IPPROTO_UDP) - /* - * Use tcp header size so that bytes to - * be copied are more than required by - * the device. - */ ctx->l4_hdr_size = - sizeof(struct tcphdr); + sizeof(struct udphdr); else ctx->l4_hdr_size = 0; } else { --- linux-3.2.0.orig/drivers/net/vmxnet3/vmxnet3_int.h +++ linux-3.2.0/drivers/net/vmxnet3/vmxnet3_int.h @@ -70,10 +70,10 @@ /* * Version numbers */ -#define VMXNET3_DRIVER_VERSION_STRING "1.1.18.0-k" +#define VMXNET3_DRIVER_VERSION_STRING "1.1.29.0-k" /* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */ -#define VMXNET3_DRIVER_VERSION_NUM 0x01011200 +#define VMXNET3_DRIVER_VERSION_NUM 0x01011D00 #if defined(CONFIG_PCI_MSI) /* RSS only makes sense if MSI-X is supported. */ --- linux-3.2.0.orig/drivers/net/dsa/Kconfig +++ linux-3.2.0/drivers/net/dsa/Kconfig @@ -0,0 +1,36 @@ +menu "Distributed Switch Architecture drivers" + depends on NET_DSA + +config NET_DSA_MV88E6XXX + tristate + default n + +config NET_DSA_MV88E6060 + tristate "Marvell 88E6060 ethernet switch chip support" + select NET_DSA_TAG_TRAILER + ---help--- + This enables support for the Marvell 88E6060 ethernet switch + chip. + +config NET_DSA_MV88E6XXX_NEED_PPU + bool + default n + +config NET_DSA_MV88E6131 + tristate "Marvell 88E6085/6095/6095F/6131 ethernet switch chip support" + select NET_DSA_MV88E6XXX + select NET_DSA_MV88E6XXX_NEED_PPU + select NET_DSA_TAG_DSA + ---help--- + This enables support for the Marvell 88E6085/6095/6095F/6131 + ethernet switch chips. + +config NET_DSA_MV88E6123_61_65 + tristate "Marvell 88E6123/6161/6165 ethernet switch chip support" + select NET_DSA_MV88E6XXX + select NET_DSA_TAG_EDSA + ---help--- + This enables support for the Marvell 88E6123/6161/6165 + ethernet switch chips. + +endmenu --- linux-3.2.0.orig/drivers/net/dsa/mv88e6131.c +++ linux-3.2.0/drivers/net/dsa/mv88e6131.c @@ -0,0 +1,436 @@ +/* + * net/dsa/mv88e6131.c - Marvell 88e6095/6095f/6131 switch chip support + * Copyright (c) 2008-2009 Marvell Semiconductor + * + * 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 "mv88e6xxx.h" + +/* + * Switch product IDs + */ +#define ID_6085 0x04a0 +#define ID_6095 0x0950 +#define ID_6131 0x1060 + +static char *mv88e6131_probe(struct mii_bus *bus, int sw_addr) +{ + int ret; + + ret = __mv88e6xxx_reg_read(bus, sw_addr, REG_PORT(0), 0x03); + if (ret >= 0) { + ret &= 0xfff0; + if (ret == ID_6085) + return "Marvell 88E6085"; + if (ret == ID_6095) + return "Marvell 88E6095/88E6095F"; + if (ret == ID_6131) + return "Marvell 88E6131"; + } + + return NULL; +} + +static int mv88e6131_switch_reset(struct dsa_switch *ds) +{ + int i; + int ret; + + /* + * Set all ports to the disabled state. + */ + for (i = 0; i < 11; i++) { + ret = REG_READ(REG_PORT(i), 0x04); + REG_WRITE(REG_PORT(i), 0x04, ret & 0xfffc); + } + + /* + * Wait for transmit queues to drain. + */ + msleep(2); + + /* + * Reset the switch. + */ + REG_WRITE(REG_GLOBAL, 0x04, 0xc400); + + /* + * Wait up to one second for reset to complete. + */ + for (i = 0; i < 1000; i++) { + ret = REG_READ(REG_GLOBAL, 0x00); + if ((ret & 0xc800) == 0xc800) + break; + + msleep(1); + } + if (i == 1000) + return -ETIMEDOUT; + + return 0; +} + +static int mv88e6131_setup_global(struct dsa_switch *ds) +{ + int ret; + int i; + + /* + * Enable the PHY polling unit, don't discard packets with + * excessive collisions, use a weighted fair queueing scheme + * to arbitrate between packet queues, set the maximum frame + * size to 1632, and mask all interrupt sources. + */ + REG_WRITE(REG_GLOBAL, 0x04, 0x4400); + + /* + * Set the default address aging time to 5 minutes, and + * enable address learn messages to be sent to all message + * ports. + */ + REG_WRITE(REG_GLOBAL, 0x0a, 0x0148); + + /* + * Configure the priority mapping registers. + */ + ret = mv88e6xxx_config_prio(ds); + if (ret < 0) + return ret; + + /* + * Set the VLAN ethertype to 0x8100. + */ + REG_WRITE(REG_GLOBAL, 0x19, 0x8100); + + /* + * Disable ARP mirroring, and configure the upstream port as + * the port to which ingress and egress monitor frames are to + * be sent. + */ + REG_WRITE(REG_GLOBAL, 0x1a, (dsa_upstream_port(ds) * 0x1100) | 0x00f0); + + /* + * Disable cascade port functionality unless this device + * is used in a cascade configuration, and set the switch's + * DSA device number. + */ + if (ds->dst->pd->nr_chips > 1) + REG_WRITE(REG_GLOBAL, 0x1c, 0xf000 | (ds->index & 0x1f)); + else + REG_WRITE(REG_GLOBAL, 0x1c, 0xe000 | (ds->index & 0x1f)); + + /* + * Send all frames with destination addresses matching + * 01:80:c2:00:00:0x to the CPU port. + */ + REG_WRITE(REG_GLOBAL2, 0x03, 0xffff); + + /* + * Ignore removed tag data on doubly tagged packets, disable + * flow control messages, force flow control priority to the + * highest, and send all special multicast frames to the CPU + * port at the highest priority. + */ + REG_WRITE(REG_GLOBAL2, 0x05, 0x00ff); + + /* + * Program the DSA routing table. + */ + for (i = 0; i < 32; i++) { + int nexthop; + + nexthop = 0x1f; + if (i != ds->index && i < ds->dst->pd->nr_chips) + nexthop = ds->pd->rtable[i] & 0x1f; + + REG_WRITE(REG_GLOBAL2, 0x06, 0x8000 | (i << 8) | nexthop); + } + + /* + * Clear all trunk masks. + */ + for (i = 0; i < 8; i++) + REG_WRITE(REG_GLOBAL2, 0x07, 0x8000 | (i << 12) | 0x7ff); + + /* + * Clear all trunk mappings. + */ + for (i = 0; i < 16; i++) + REG_WRITE(REG_GLOBAL2, 0x08, 0x8000 | (i << 11)); + + /* + * Force the priority of IGMP/MLD snoop frames and ARP frames + * to the highest setting. + */ + REG_WRITE(REG_GLOBAL2, 0x0f, 0x00ff); + + return 0; +} + +static int mv88e6131_setup_port(struct dsa_switch *ds, int p) +{ + struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); + int addr = REG_PORT(p); + u16 val; + + /* + * MAC Forcing register: don't force link, speed, duplex + * or flow control state to any particular values on physical + * ports, but force the CPU port and all DSA ports to 1000 Mb/s + * (100 Mb/s on 6085) full duplex. + */ + if (dsa_is_cpu_port(ds, p) || ds->dsa_port_mask & (1 << p)) + if (ps->id == ID_6085) + REG_WRITE(addr, 0x01, 0x003d); /* 100 Mb/s */ + else + REG_WRITE(addr, 0x01, 0x003e); /* 1000 Mb/s */ + else + REG_WRITE(addr, 0x01, 0x0003); + + /* + * Port Control: disable Core Tag, disable Drop-on-Lock, + * transmit frames unmodified, disable Header mode, + * enable IGMP/MLD snoop, disable DoubleTag, disable VLAN + * tunneling, determine priority by looking at 802.1p and + * IP priority fields (IP prio has precedence), and set STP + * state to Forwarding. + * + * If this is the upstream port for this switch, enable + * forwarding of unknown unicasts, and enable DSA tagging + * mode. + * + * If this is the link to another switch, use DSA tagging + * mode, but do not enable forwarding of unknown unicasts. + */ + val = 0x0433; + if (p == dsa_upstream_port(ds)) { + val |= 0x0104; + /* + * On 6085, unknown multicast forward is controlled + * here rather than in Port Control 2 register. + */ + if (ps->id == ID_6085) + val |= 0x0008; + } + if (ds->dsa_port_mask & (1 << p)) + val |= 0x0100; + REG_WRITE(addr, 0x04, val); + + /* + * Port Control 1: disable trunking. Also, if this is the + * CPU port, enable learn messages to be sent to this port. + */ + REG_WRITE(addr, 0x05, dsa_is_cpu_port(ds, p) ? 0x8000 : 0x0000); + + /* + * Port based VLAN map: give each port its own address + * database, allow the CPU port to talk to each of the 'real' + * ports, and allow each of the 'real' ports to only talk to + * the upstream port. + */ + val = (p & 0xf) << 12; + if (dsa_is_cpu_port(ds, p)) + val |= ds->phys_port_mask; + else + val |= 1 << dsa_upstream_port(ds); + REG_WRITE(addr, 0x06, val); + + /* + * Default VLAN ID and priority: don't set a default VLAN + * ID, and set the default packet priority to zero. + */ + REG_WRITE(addr, 0x07, 0x0000); + + /* + * Port Control 2: don't force a good FCS, don't use + * VLAN-based, source address-based or destination + * address-based priority overrides, don't let the switch + * add or strip 802.1q tags, don't discard tagged or + * untagged frames on this port, do a destination address + * lookup on received packets as usual, don't send a copy + * of all transmitted/received frames on this port to the + * CPU, and configure the upstream port number. + * + * If this is the upstream port for this switch, enable + * forwarding of unknown multicast addresses. + */ + if (ps->id == ID_6085) + /* + * on 6085, bits 3:0 are reserved, bit 6 control ARP + * mirroring, and multicast forward is handled in + * Port Control register. + */ + REG_WRITE(addr, 0x08, 0x0080); + else { + val = 0x0080 | dsa_upstream_port(ds); + if (p == dsa_upstream_port(ds)) + val |= 0x0040; + REG_WRITE(addr, 0x08, val); + } + + /* + * Rate Control: disable ingress rate limiting. + */ + REG_WRITE(addr, 0x09, 0x0000); + + /* + * Rate Control 2: disable egress rate limiting. + */ + REG_WRITE(addr, 0x0a, 0x0000); + + /* + * Port Association Vector: when learning source addresses + * of packets, add the address to the address database using + * a port bitmap that has only the bit for this port set and + * the other bits clear. + */ + REG_WRITE(addr, 0x0b, 1 << p); + + /* + * Tag Remap: use an identity 802.1p prio -> switch prio + * mapping. + */ + REG_WRITE(addr, 0x18, 0x3210); + + /* + * Tag Remap 2: use an identity 802.1p prio -> switch prio + * mapping. + */ + REG_WRITE(addr, 0x19, 0x7654); + + return 0; +} + +static int mv88e6131_setup(struct dsa_switch *ds) +{ + struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); + int i; + int ret; + + mutex_init(&ps->smi_mutex); + mv88e6xxx_ppu_state_init(ds); + mutex_init(&ps->stats_mutex); + + ps->id = REG_READ(REG_PORT(0), 0x03) & 0xfff0; + + ret = mv88e6131_switch_reset(ds); + if (ret < 0) + return ret; + + /* @@@ initialise vtu and atu */ + + ret = mv88e6131_setup_global(ds); + if (ret < 0) + return ret; + + for (i = 0; i < 11; i++) { + ret = mv88e6131_setup_port(ds, i); + if (ret < 0) + return ret; + } + + return 0; +} + +static int mv88e6131_port_to_phy_addr(int port) +{ + if (port >= 0 && port <= 11) + return port; + return -1; +} + +static int +mv88e6131_phy_read(struct dsa_switch *ds, int port, int regnum) +{ + int addr = mv88e6131_port_to_phy_addr(port); + return mv88e6xxx_phy_read_ppu(ds, addr, regnum); +} + +static int +mv88e6131_phy_write(struct dsa_switch *ds, + int port, int regnum, u16 val) +{ + int addr = mv88e6131_port_to_phy_addr(port); + return mv88e6xxx_phy_write_ppu(ds, addr, regnum, val); +} + +static struct mv88e6xxx_hw_stat mv88e6131_hw_stats[] = { + { "in_good_octets", 8, 0x00, }, + { "in_bad_octets", 4, 0x02, }, + { "in_unicast", 4, 0x04, }, + { "in_broadcasts", 4, 0x06, }, + { "in_multicasts", 4, 0x07, }, + { "in_pause", 4, 0x16, }, + { "in_undersize", 4, 0x18, }, + { "in_fragments", 4, 0x19, }, + { "in_oversize", 4, 0x1a, }, + { "in_jabber", 4, 0x1b, }, + { "in_rx_error", 4, 0x1c, }, + { "in_fcs_error", 4, 0x1d, }, + { "out_octets", 8, 0x0e, }, + { "out_unicast", 4, 0x10, }, + { "out_broadcasts", 4, 0x13, }, + { "out_multicasts", 4, 0x12, }, + { "out_pause", 4, 0x15, }, + { "excessive", 4, 0x11, }, + { "collisions", 4, 0x1e, }, + { "deferred", 4, 0x05, }, + { "single", 4, 0x14, }, + { "multiple", 4, 0x17, }, + { "out_fcs_error", 4, 0x03, }, + { "late", 4, 0x1f, }, + { "hist_64bytes", 4, 0x08, }, + { "hist_65_127bytes", 4, 0x09, }, + { "hist_128_255bytes", 4, 0x0a, }, + { "hist_256_511bytes", 4, 0x0b, }, + { "hist_512_1023bytes", 4, 0x0c, }, + { "hist_1024_max_bytes", 4, 0x0d, }, +}; + +static void +mv88e6131_get_strings(struct dsa_switch *ds, int port, uint8_t *data) +{ + mv88e6xxx_get_strings(ds, ARRAY_SIZE(mv88e6131_hw_stats), + mv88e6131_hw_stats, port, data); +} + +static void +mv88e6131_get_ethtool_stats(struct dsa_switch *ds, + int port, uint64_t *data) +{ + mv88e6xxx_get_ethtool_stats(ds, ARRAY_SIZE(mv88e6131_hw_stats), + mv88e6131_hw_stats, port, data); +} + +static int mv88e6131_get_sset_count(struct dsa_switch *ds) +{ + return ARRAY_SIZE(mv88e6131_hw_stats); +} + +struct dsa_switch_driver mv88e6131_switch_driver = { + .tag_protocol = cpu_to_be16(ETH_P_DSA), + .priv_size = sizeof(struct mv88e6xxx_priv_state), + .probe = mv88e6131_probe, + .setup = mv88e6131_setup, + .set_addr = mv88e6xxx_set_addr_direct, + .phy_read = mv88e6131_phy_read, + .phy_write = mv88e6131_phy_write, + .poll_link = mv88e6xxx_poll_link, + .get_strings = mv88e6131_get_strings, + .get_ethtool_stats = mv88e6131_get_ethtool_stats, + .get_sset_count = mv88e6131_get_sset_count, +}; + +MODULE_ALIAS("platform:mv88e6085"); +MODULE_ALIAS("platform:mv88e6095"); +MODULE_ALIAS("platform:mv88e6095f"); +MODULE_ALIAS("platform:mv88e6131"); --- linux-3.2.0.orig/drivers/net/dsa/mv88e6123_61_65.c +++ linux-3.2.0/drivers/net/dsa/mv88e6123_61_65.c @@ -0,0 +1,452 @@ +/* + * net/dsa/mv88e6123_61_65.c - Marvell 88e6123/6161/6165 switch chip support + * Copyright (c) 2008-2009 Marvell Semiconductor + * + * 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 "mv88e6xxx.h" + +static char *mv88e6123_61_65_probe(struct mii_bus *bus, int sw_addr) +{ + int ret; + + ret = __mv88e6xxx_reg_read(bus, sw_addr, REG_PORT(0), 0x03); + if (ret >= 0) { + if (ret == 0x1212) + return "Marvell 88E6123 (A1)"; + if (ret == 0x1213) + return "Marvell 88E6123 (A2)"; + if ((ret & 0xfff0) == 0x1210) + return "Marvell 88E6123"; + + if (ret == 0x1612) + return "Marvell 88E6161 (A1)"; + if (ret == 0x1613) + return "Marvell 88E6161 (A2)"; + if ((ret & 0xfff0) == 0x1610) + return "Marvell 88E6161"; + + if (ret == 0x1652) + return "Marvell 88E6165 (A1)"; + if (ret == 0x1653) + return "Marvell 88e6165 (A2)"; + if ((ret & 0xfff0) == 0x1650) + return "Marvell 88E6165"; + } + + return NULL; +} + +static int mv88e6123_61_65_switch_reset(struct dsa_switch *ds) +{ + int i; + int ret; + + /* + * Set all ports to the disabled state. + */ + for (i = 0; i < 8; i++) { + ret = REG_READ(REG_PORT(i), 0x04); + REG_WRITE(REG_PORT(i), 0x04, ret & 0xfffc); + } + + /* + * Wait for transmit queues to drain. + */ + msleep(2); + + /* + * Reset the switch. + */ + REG_WRITE(REG_GLOBAL, 0x04, 0xc400); + + /* + * Wait up to one second for reset to complete. + */ + for (i = 0; i < 1000; i++) { + ret = REG_READ(REG_GLOBAL, 0x00); + if ((ret & 0xc800) == 0xc800) + break; + + msleep(1); + } + if (i == 1000) + return -ETIMEDOUT; + + return 0; +} + +static int mv88e6123_61_65_setup_global(struct dsa_switch *ds) +{ + int ret; + int i; + + /* + * Disable the PHY polling unit (since there won't be any + * external PHYs to poll), don't discard packets with + * excessive collisions, and mask all interrupt sources. + */ + REG_WRITE(REG_GLOBAL, 0x04, 0x0000); + + /* + * Set the default address aging time to 5 minutes, and + * enable address learn messages to be sent to all message + * ports. + */ + REG_WRITE(REG_GLOBAL, 0x0a, 0x0148); + + /* + * Configure the priority mapping registers. + */ + ret = mv88e6xxx_config_prio(ds); + if (ret < 0) + return ret; + + /* + * Configure the upstream port, and configure the upstream + * port as the port to which ingress and egress monitor frames + * are to be sent. + */ + REG_WRITE(REG_GLOBAL, 0x1a, (dsa_upstream_port(ds) * 0x1110)); + + /* + * Disable remote management for now, and set the switch's + * DSA device number. + */ + REG_WRITE(REG_GLOBAL, 0x1c, ds->index & 0x1f); + + /* + * Send all frames with destination addresses matching + * 01:80:c2:00:00:2x to the CPU port. + */ + REG_WRITE(REG_GLOBAL2, 0x02, 0xffff); + + /* + * Send all frames with destination addresses matching + * 01:80:c2:00:00:0x to the CPU port. + */ + REG_WRITE(REG_GLOBAL2, 0x03, 0xffff); + + /* + * Disable the loopback filter, disable flow control + * messages, disable flood broadcast override, disable + * removing of provider tags, disable ATU age violation + * interrupts, disable tag flow control, force flow + * control priority to the highest, and send all special + * multicast frames to the CPU at the highest priority. + */ + REG_WRITE(REG_GLOBAL2, 0x05, 0x00ff); + + /* + * Program the DSA routing table. + */ + for (i = 0; i < 32; i++) { + int nexthop; + + nexthop = 0x1f; + if (i != ds->index && i < ds->dst->pd->nr_chips) + nexthop = ds->pd->rtable[i] & 0x1f; + + REG_WRITE(REG_GLOBAL2, 0x06, 0x8000 | (i << 8) | nexthop); + } + + /* + * Clear all trunk masks. + */ + for (i = 0; i < 8; i++) + REG_WRITE(REG_GLOBAL2, 0x07, 0x8000 | (i << 12) | 0xff); + + /* + * Clear all trunk mappings. + */ + for (i = 0; i < 16; i++) + REG_WRITE(REG_GLOBAL2, 0x08, 0x8000 | (i << 11)); + + /* + * Disable ingress rate limiting by resetting all ingress + * rate limit registers to their initial state. + */ + for (i = 0; i < 6; i++) + REG_WRITE(REG_GLOBAL2, 0x09, 0x9000 | (i << 8)); + + /* + * Initialise cross-chip port VLAN table to reset defaults. + */ + REG_WRITE(REG_GLOBAL2, 0x0b, 0x9000); + + /* + * Clear the priority override table. + */ + for (i = 0; i < 16; i++) + REG_WRITE(REG_GLOBAL2, 0x0f, 0x8000 | (i << 8)); + + /* @@@ initialise AVB (22/23) watchdog (27) sdet (29) registers */ + + return 0; +} + +static int mv88e6123_61_65_setup_port(struct dsa_switch *ds, int p) +{ + int addr = REG_PORT(p); + u16 val; + + /* + * MAC Forcing register: don't force link, speed, duplex + * or flow control state to any particular values on physical + * ports, but force the CPU port and all DSA ports to 1000 Mb/s + * full duplex. + */ + if (dsa_is_cpu_port(ds, p) || ds->dsa_port_mask & (1 << p)) + REG_WRITE(addr, 0x01, 0x003e); + else + REG_WRITE(addr, 0x01, 0x0003); + + /* + * Do not limit the period of time that this port can be + * paused for by the remote end or the period of time that + * this port can pause the remote end. + */ + REG_WRITE(addr, 0x02, 0x0000); + + /* + * Port Control: disable Drop-on-Unlock, disable Drop-on-Lock, + * disable Header mode, enable IGMP/MLD snooping, disable VLAN + * tunneling, determine priority by looking at 802.1p and IP + * priority fields (IP prio has precedence), and set STP state + * to Forwarding. + * + * If this is the CPU link, use DSA or EDSA tagging depending + * on which tagging mode was configured. + * + * If this is a link to another switch, use DSA tagging mode. + * + * If this is the upstream port for this switch, enable + * forwarding of unknown unicasts and multicasts. + */ + val = 0x0433; + if (dsa_is_cpu_port(ds, p)) { + if (ds->dst->tag_protocol == htons(ETH_P_EDSA)) + val |= 0x3300; + else + val |= 0x0100; + } + if (ds->dsa_port_mask & (1 << p)) + val |= 0x0100; + if (p == dsa_upstream_port(ds)) + val |= 0x000c; + REG_WRITE(addr, 0x04, val); + + /* + * Port Control 1: disable trunking. Also, if this is the + * CPU port, enable learn messages to be sent to this port. + */ + REG_WRITE(addr, 0x05, dsa_is_cpu_port(ds, p) ? 0x8000 : 0x0000); + + /* + * Port based VLAN map: give each port its own address + * database, allow the CPU port to talk to each of the 'real' + * ports, and allow each of the 'real' ports to only talk to + * the upstream port. + */ + val = (p & 0xf) << 12; + if (dsa_is_cpu_port(ds, p)) + val |= ds->phys_port_mask; + else + val |= 1 << dsa_upstream_port(ds); + REG_WRITE(addr, 0x06, val); + + /* + * Default VLAN ID and priority: don't set a default VLAN + * ID, and set the default packet priority to zero. + */ + REG_WRITE(addr, 0x07, 0x0000); + + /* + * Port Control 2: don't force a good FCS, set the maximum + * frame size to 10240 bytes, don't let the switch add or + * strip 802.1q tags, don't discard tagged or untagged frames + * on this port, do a destination address lookup on all + * received packets as usual, disable ARP mirroring and don't + * send a copy of all transmitted/received frames on this port + * to the CPU. + */ + REG_WRITE(addr, 0x08, 0x2080); + + /* + * Egress rate control: disable egress rate control. + */ + REG_WRITE(addr, 0x09, 0x0001); + + /* + * Egress rate control 2: disable egress rate control. + */ + REG_WRITE(addr, 0x0a, 0x0000); + + /* + * Port Association Vector: when learning source addresses + * of packets, add the address to the address database using + * a port bitmap that has only the bit for this port set and + * the other bits clear. + */ + REG_WRITE(addr, 0x0b, 1 << p); + + /* + * Port ATU control: disable limiting the number of address + * database entries that this port is allowed to use. + */ + REG_WRITE(addr, 0x0c, 0x0000); + + /* + * Priorit Override: disable DA, SA and VTU priority override. + */ + REG_WRITE(addr, 0x0d, 0x0000); + + /* + * Port Ethertype: use the Ethertype DSA Ethertype value. + */ + REG_WRITE(addr, 0x0f, ETH_P_EDSA); + + /* + * Tag Remap: use an identity 802.1p prio -> switch prio + * mapping. + */ + REG_WRITE(addr, 0x18, 0x3210); + + /* + * Tag Remap 2: use an identity 802.1p prio -> switch prio + * mapping. + */ + REG_WRITE(addr, 0x19, 0x7654); + + return 0; +} + +static int mv88e6123_61_65_setup(struct dsa_switch *ds) +{ + struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); + int i; + int ret; + + mutex_init(&ps->smi_mutex); + mutex_init(&ps->stats_mutex); + + ret = mv88e6123_61_65_switch_reset(ds); + if (ret < 0) + return ret; + + /* @@@ initialise vtu and atu */ + + ret = mv88e6123_61_65_setup_global(ds); + if (ret < 0) + return ret; + + for (i = 0; i < 6; i++) { + ret = mv88e6123_61_65_setup_port(ds, i); + if (ret < 0) + return ret; + } + + return 0; +} + +static int mv88e6123_61_65_port_to_phy_addr(int port) +{ + if (port >= 0 && port <= 4) + return port; + return -1; +} + +static int +mv88e6123_61_65_phy_read(struct dsa_switch *ds, int port, int regnum) +{ + int addr = mv88e6123_61_65_port_to_phy_addr(port); + return mv88e6xxx_phy_read(ds, addr, regnum); +} + +static int +mv88e6123_61_65_phy_write(struct dsa_switch *ds, + int port, int regnum, u16 val) +{ + int addr = mv88e6123_61_65_port_to_phy_addr(port); + return mv88e6xxx_phy_write(ds, addr, regnum, val); +} + +static struct mv88e6xxx_hw_stat mv88e6123_61_65_hw_stats[] = { + { "in_good_octets", 8, 0x00, }, + { "in_bad_octets", 4, 0x02, }, + { "in_unicast", 4, 0x04, }, + { "in_broadcasts", 4, 0x06, }, + { "in_multicasts", 4, 0x07, }, + { "in_pause", 4, 0x16, }, + { "in_undersize", 4, 0x18, }, + { "in_fragments", 4, 0x19, }, + { "in_oversize", 4, 0x1a, }, + { "in_jabber", 4, 0x1b, }, + { "in_rx_error", 4, 0x1c, }, + { "in_fcs_error", 4, 0x1d, }, + { "out_octets", 8, 0x0e, }, + { "out_unicast", 4, 0x10, }, + { "out_broadcasts", 4, 0x13, }, + { "out_multicasts", 4, 0x12, }, + { "out_pause", 4, 0x15, }, + { "excessive", 4, 0x11, }, + { "collisions", 4, 0x1e, }, + { "deferred", 4, 0x05, }, + { "single", 4, 0x14, }, + { "multiple", 4, 0x17, }, + { "out_fcs_error", 4, 0x03, }, + { "late", 4, 0x1f, }, + { "hist_64bytes", 4, 0x08, }, + { "hist_65_127bytes", 4, 0x09, }, + { "hist_128_255bytes", 4, 0x0a, }, + { "hist_256_511bytes", 4, 0x0b, }, + { "hist_512_1023bytes", 4, 0x0c, }, + { "hist_1024_max_bytes", 4, 0x0d, }, +}; + +static void +mv88e6123_61_65_get_strings(struct dsa_switch *ds, int port, uint8_t *data) +{ + mv88e6xxx_get_strings(ds, ARRAY_SIZE(mv88e6123_61_65_hw_stats), + mv88e6123_61_65_hw_stats, port, data); +} + +static void +mv88e6123_61_65_get_ethtool_stats(struct dsa_switch *ds, + int port, uint64_t *data) +{ + mv88e6xxx_get_ethtool_stats(ds, ARRAY_SIZE(mv88e6123_61_65_hw_stats), + mv88e6123_61_65_hw_stats, port, data); +} + +static int mv88e6123_61_65_get_sset_count(struct dsa_switch *ds) +{ + return ARRAY_SIZE(mv88e6123_61_65_hw_stats); +} + +struct dsa_switch_driver mv88e6123_61_65_switch_driver = { + .tag_protocol = cpu_to_be16(ETH_P_EDSA), + .priv_size = sizeof(struct mv88e6xxx_priv_state), + .probe = mv88e6123_61_65_probe, + .setup = mv88e6123_61_65_setup, + .set_addr = mv88e6xxx_set_addr_indirect, + .phy_read = mv88e6123_61_65_phy_read, + .phy_write = mv88e6123_61_65_phy_write, + .poll_link = mv88e6xxx_poll_link, + .get_strings = mv88e6123_61_65_get_strings, + .get_ethtool_stats = mv88e6123_61_65_get_ethtool_stats, + .get_sset_count = mv88e6123_61_65_get_sset_count, +}; + +MODULE_ALIAS("platform:mv88e6123"); +MODULE_ALIAS("platform:mv88e6161"); +MODULE_ALIAS("platform:mv88e6165"); --- linux-3.2.0.orig/drivers/net/dsa/Makefile +++ linux-3.2.0/drivers/net/dsa/Makefile @@ -0,0 +1,9 @@ +obj-$(CONFIG_NET_DSA_MV88E6060) += mv88e6060.o +obj-$(CONFIG_NET_DSA_MV88E6XXX) += mv88e6xxx_drv.o +mv88e6xxx_drv-y += mv88e6xxx.o +ifdef CONFIG_NET_DSA_MV88E6123_61_65 +mv88e6xxx_drv-y += mv88e6123_61_65.o +endif +ifdef CONFIG_NET_DSA_MV88E6131 +mv88e6xxx_drv-y += mv88e6131.o +endif --- linux-3.2.0.orig/drivers/net/dsa/mv88e6xxx.h +++ linux-3.2.0/drivers/net/dsa/mv88e6xxx.h @@ -0,0 +1,98 @@ +/* + * net/dsa/mv88e6xxx.h - Marvell 88e6xxx switch chip support + * Copyright (c) 2008 Marvell Semiconductor + * + * 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. + */ + +#ifndef __MV88E6XXX_H +#define __MV88E6XXX_H + +#define REG_PORT(p) (0x10 + (p)) +#define REG_GLOBAL 0x1b +#define REG_GLOBAL2 0x1c + +struct mv88e6xxx_priv_state { + /* + * When using multi-chip addressing, this mutex protects + * access to the indirect access registers. (In single-chip + * mode, this mutex is effectively useless.) + */ + struct mutex smi_mutex; + +#ifdef CONFIG_NET_DSA_MV88E6XXX_NEED_PPU + /* + * Handles automatic disabling and re-enabling of the PHY + * polling unit. + */ + struct mutex ppu_mutex; + int ppu_disabled; + struct work_struct ppu_work; + struct timer_list ppu_timer; +#endif + + /* + * This mutex serialises access to the statistics unit. + * Hold this mutex over snapshot + dump sequences. + */ + struct mutex stats_mutex; + + int id; /* switch product id */ +}; + +struct mv88e6xxx_hw_stat { + char string[ETH_GSTRING_LEN]; + int sizeof_stat; + int reg; +}; + +int __mv88e6xxx_reg_read(struct mii_bus *bus, int sw_addr, int addr, int reg); +int mv88e6xxx_reg_read(struct dsa_switch *ds, int addr, int reg); +int __mv88e6xxx_reg_write(struct mii_bus *bus, int sw_addr, int addr, + int reg, u16 val); +int mv88e6xxx_reg_write(struct dsa_switch *ds, int addr, int reg, u16 val); +int mv88e6xxx_config_prio(struct dsa_switch *ds); +int mv88e6xxx_set_addr_direct(struct dsa_switch *ds, u8 *addr); +int mv88e6xxx_set_addr_indirect(struct dsa_switch *ds, u8 *addr); +int mv88e6xxx_phy_read(struct dsa_switch *ds, int addr, int regnum); +int mv88e6xxx_phy_write(struct dsa_switch *ds, int addr, int regnum, u16 val); +void mv88e6xxx_ppu_state_init(struct dsa_switch *ds); +int mv88e6xxx_phy_read_ppu(struct dsa_switch *ds, int addr, int regnum); +int mv88e6xxx_phy_write_ppu(struct dsa_switch *ds, int addr, + int regnum, u16 val); +void mv88e6xxx_poll_link(struct dsa_switch *ds); +void mv88e6xxx_get_strings(struct dsa_switch *ds, + int nr_stats, struct mv88e6xxx_hw_stat *stats, + int port, uint8_t *data); +void mv88e6xxx_get_ethtool_stats(struct dsa_switch *ds, + int nr_stats, struct mv88e6xxx_hw_stat *stats, + int port, uint64_t *data); + +extern struct dsa_switch_driver mv88e6131_switch_driver; +extern struct dsa_switch_driver mv88e6123_61_65_switch_driver; + +#define REG_READ(addr, reg) \ + ({ \ + int __ret; \ + \ + __ret = mv88e6xxx_reg_read(ds, addr, reg); \ + if (__ret < 0) \ + return __ret; \ + __ret; \ + }) + +#define REG_WRITE(addr, reg, val) \ + ({ \ + int __ret; \ + \ + __ret = mv88e6xxx_reg_write(ds, addr, reg, val); \ + if (__ret < 0) \ + return __ret; \ + }) + + + +#endif --- linux-3.2.0.orig/drivers/net/dsa/mv88e6xxx.c +++ linux-3.2.0/drivers/net/dsa/mv88e6xxx.c @@ -0,0 +1,550 @@ +/* + * net/dsa/mv88e6xxx.c - Marvell 88e6xxx switch chip support + * Copyright (c) 2008 Marvell Semiconductor + * + * 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 "mv88e6xxx.h" + +/* + * If the switch's ADDR[4:0] strap pins are strapped to zero, it will + * use all 32 SMI bus addresses on its SMI bus, and all switch registers + * will be directly accessible on some {device address,register address} + * pair. If the ADDR[4:0] pins are not strapped to zero, the switch + * will only respond to SMI transactions to that specific address, and + * an indirect addressing mechanism needs to be used to access its + * registers. + */ +static int mv88e6xxx_reg_wait_ready(struct mii_bus *bus, int sw_addr) +{ + int ret; + int i; + + for (i = 0; i < 16; i++) { + ret = mdiobus_read(bus, sw_addr, 0); + if (ret < 0) + return ret; + + if ((ret & 0x8000) == 0) + return 0; + } + + return -ETIMEDOUT; +} + +int __mv88e6xxx_reg_read(struct mii_bus *bus, int sw_addr, int addr, int reg) +{ + int ret; + + if (sw_addr == 0) + return mdiobus_read(bus, addr, reg); + + /* + * Wait for the bus to become free. + */ + ret = mv88e6xxx_reg_wait_ready(bus, sw_addr); + if (ret < 0) + return ret; + + /* + * Transmit the read command. + */ + ret = mdiobus_write(bus, sw_addr, 0, 0x9800 | (addr << 5) | reg); + if (ret < 0) + return ret; + + /* + * Wait for the read command to complete. + */ + ret = mv88e6xxx_reg_wait_ready(bus, sw_addr); + if (ret < 0) + return ret; + + /* + * Read the data. + */ + ret = mdiobus_read(bus, sw_addr, 1); + if (ret < 0) + return ret; + + return ret & 0xffff; +} + +int mv88e6xxx_reg_read(struct dsa_switch *ds, int addr, int reg) +{ + struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); + int ret; + + mutex_lock(&ps->smi_mutex); + ret = __mv88e6xxx_reg_read(ds->master_mii_bus, + ds->pd->sw_addr, addr, reg); + mutex_unlock(&ps->smi_mutex); + + return ret; +} + +int __mv88e6xxx_reg_write(struct mii_bus *bus, int sw_addr, int addr, + int reg, u16 val) +{ + int ret; + + if (sw_addr == 0) + return mdiobus_write(bus, addr, reg, val); + + /* + * Wait for the bus to become free. + */ + ret = mv88e6xxx_reg_wait_ready(bus, sw_addr); + if (ret < 0) + return ret; + + /* + * Transmit the data to write. + */ + ret = mdiobus_write(bus, sw_addr, 1, val); + if (ret < 0) + return ret; + + /* + * Transmit the write command. + */ + ret = mdiobus_write(bus, sw_addr, 0, 0x9400 | (addr << 5) | reg); + if (ret < 0) + return ret; + + /* + * Wait for the write command to complete. + */ + ret = mv88e6xxx_reg_wait_ready(bus, sw_addr); + if (ret < 0) + return ret; + + return 0; +} + +int mv88e6xxx_reg_write(struct dsa_switch *ds, int addr, int reg, u16 val) +{ + struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); + int ret; + + mutex_lock(&ps->smi_mutex); + ret = __mv88e6xxx_reg_write(ds->master_mii_bus, + ds->pd->sw_addr, addr, reg, val); + mutex_unlock(&ps->smi_mutex); + + return ret; +} + +int mv88e6xxx_config_prio(struct dsa_switch *ds) +{ + /* + * Configure the IP ToS mapping registers. + */ + REG_WRITE(REG_GLOBAL, 0x10, 0x0000); + REG_WRITE(REG_GLOBAL, 0x11, 0x0000); + REG_WRITE(REG_GLOBAL, 0x12, 0x5555); + REG_WRITE(REG_GLOBAL, 0x13, 0x5555); + REG_WRITE(REG_GLOBAL, 0x14, 0xaaaa); + REG_WRITE(REG_GLOBAL, 0x15, 0xaaaa); + REG_WRITE(REG_GLOBAL, 0x16, 0xffff); + REG_WRITE(REG_GLOBAL, 0x17, 0xffff); + + /* + * Configure the IEEE 802.1p priority mapping register. + */ + REG_WRITE(REG_GLOBAL, 0x18, 0xfa41); + + return 0; +} + +int mv88e6xxx_set_addr_direct(struct dsa_switch *ds, u8 *addr) +{ + REG_WRITE(REG_GLOBAL, 0x01, (addr[0] << 8) | addr[1]); + REG_WRITE(REG_GLOBAL, 0x02, (addr[2] << 8) | addr[3]); + REG_WRITE(REG_GLOBAL, 0x03, (addr[4] << 8) | addr[5]); + + return 0; +} + +int mv88e6xxx_set_addr_indirect(struct dsa_switch *ds, u8 *addr) +{ + int i; + int ret; + + for (i = 0; i < 6; i++) { + int j; + + /* + * Write the MAC address byte. + */ + REG_WRITE(REG_GLOBAL2, 0x0d, 0x8000 | (i << 8) | addr[i]); + + /* + * Wait for the write to complete. + */ + for (j = 0; j < 16; j++) { + ret = REG_READ(REG_GLOBAL2, 0x0d); + if ((ret & 0x8000) == 0) + break; + } + if (j == 16) + return -ETIMEDOUT; + } + + return 0; +} + +int mv88e6xxx_phy_read(struct dsa_switch *ds, int addr, int regnum) +{ + if (addr >= 0) + return mv88e6xxx_reg_read(ds, addr, regnum); + return 0xffff; +} + +int mv88e6xxx_phy_write(struct dsa_switch *ds, int addr, int regnum, u16 val) +{ + if (addr >= 0) + return mv88e6xxx_reg_write(ds, addr, regnum, val); + return 0; +} + +#ifdef CONFIG_NET_DSA_MV88E6XXX_NEED_PPU +static int mv88e6xxx_ppu_disable(struct dsa_switch *ds) +{ + int ret; + int i; + + ret = REG_READ(REG_GLOBAL, 0x04); + REG_WRITE(REG_GLOBAL, 0x04, ret & ~0x4000); + + for (i = 0; i < 1000; i++) { + ret = REG_READ(REG_GLOBAL, 0x00); + msleep(1); + if ((ret & 0xc000) != 0xc000) + return 0; + } + + return -ETIMEDOUT; +} + +static int mv88e6xxx_ppu_enable(struct dsa_switch *ds) +{ + int ret; + int i; + + ret = REG_READ(REG_GLOBAL, 0x04); + REG_WRITE(REG_GLOBAL, 0x04, ret | 0x4000); + + for (i = 0; i < 1000; i++) { + ret = REG_READ(REG_GLOBAL, 0x00); + msleep(1); + if ((ret & 0xc000) == 0xc000) + return 0; + } + + return -ETIMEDOUT; +} + +static void mv88e6xxx_ppu_reenable_work(struct work_struct *ugly) +{ + struct mv88e6xxx_priv_state *ps; + + ps = container_of(ugly, struct mv88e6xxx_priv_state, ppu_work); + if (mutex_trylock(&ps->ppu_mutex)) { + struct dsa_switch *ds = ((struct dsa_switch *)ps) - 1; + + if (mv88e6xxx_ppu_enable(ds) == 0) + ps->ppu_disabled = 0; + mutex_unlock(&ps->ppu_mutex); + } +} + +static void mv88e6xxx_ppu_reenable_timer(unsigned long _ps) +{ + struct mv88e6xxx_priv_state *ps = (void *)_ps; + + schedule_work(&ps->ppu_work); +} + +static int mv88e6xxx_ppu_access_get(struct dsa_switch *ds) +{ + struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); + int ret; + + mutex_lock(&ps->ppu_mutex); + + /* + * If the PHY polling unit is enabled, disable it so that + * we can access the PHY registers. If it was already + * disabled, cancel the timer that is going to re-enable + * it. + */ + if (!ps->ppu_disabled) { + ret = mv88e6xxx_ppu_disable(ds); + if (ret < 0) { + mutex_unlock(&ps->ppu_mutex); + return ret; + } + ps->ppu_disabled = 1; + } else { + del_timer(&ps->ppu_timer); + ret = 0; + } + + return ret; +} + +static void mv88e6xxx_ppu_access_put(struct dsa_switch *ds) +{ + struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); + + /* + * Schedule a timer to re-enable the PHY polling unit. + */ + mod_timer(&ps->ppu_timer, jiffies + msecs_to_jiffies(10)); + mutex_unlock(&ps->ppu_mutex); +} + +void mv88e6xxx_ppu_state_init(struct dsa_switch *ds) +{ + struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); + + mutex_init(&ps->ppu_mutex); + INIT_WORK(&ps->ppu_work, mv88e6xxx_ppu_reenable_work); + init_timer(&ps->ppu_timer); + ps->ppu_timer.data = (unsigned long)ps; + ps->ppu_timer.function = mv88e6xxx_ppu_reenable_timer; +} + +int mv88e6xxx_phy_read_ppu(struct dsa_switch *ds, int addr, int regnum) +{ + int ret; + + ret = mv88e6xxx_ppu_access_get(ds); + if (ret >= 0) { + ret = mv88e6xxx_reg_read(ds, addr, regnum); + mv88e6xxx_ppu_access_put(ds); + } + + return ret; +} + +int mv88e6xxx_phy_write_ppu(struct dsa_switch *ds, int addr, + int regnum, u16 val) +{ + int ret; + + ret = mv88e6xxx_ppu_access_get(ds); + if (ret >= 0) { + ret = mv88e6xxx_reg_write(ds, addr, regnum, val); + mv88e6xxx_ppu_access_put(ds); + } + + return ret; +} +#endif + +void mv88e6xxx_poll_link(struct dsa_switch *ds) +{ + int i; + + for (i = 0; i < DSA_MAX_PORTS; i++) { + struct net_device *dev; + int uninitialized_var(port_status); + int link; + int speed; + int duplex; + int fc; + + dev = ds->ports[i]; + if (dev == NULL) + continue; + + link = 0; + if (dev->flags & IFF_UP) { + port_status = mv88e6xxx_reg_read(ds, REG_PORT(i), 0x00); + if (port_status < 0) + continue; + + link = !!(port_status & 0x0800); + } + + if (!link) { + if (netif_carrier_ok(dev)) { + printk(KERN_INFO "%s: link down\n", dev->name); + netif_carrier_off(dev); + } + continue; + } + + switch (port_status & 0x0300) { + case 0x0000: + speed = 10; + break; + case 0x0100: + speed = 100; + break; + case 0x0200: + speed = 1000; + break; + default: + speed = -1; + break; + } + duplex = (port_status & 0x0400) ? 1 : 0; + fc = (port_status & 0x8000) ? 1 : 0; + + if (!netif_carrier_ok(dev)) { + printk(KERN_INFO "%s: link up, %d Mb/s, %s duplex, " + "flow control %sabled\n", dev->name, + speed, duplex ? "full" : "half", + fc ? "en" : "dis"); + netif_carrier_on(dev); + } + } +} + +static int mv88e6xxx_stats_wait(struct dsa_switch *ds) +{ + int ret; + int i; + + for (i = 0; i < 10; i++) { + ret = REG_READ(REG_GLOBAL, 0x1d); + if ((ret & 0x8000) == 0) + return 0; + } + + return -ETIMEDOUT; +} + +static int mv88e6xxx_stats_snapshot(struct dsa_switch *ds, int port) +{ + int ret; + + /* + * Snapshot the hardware statistics counters for this port. + */ + REG_WRITE(REG_GLOBAL, 0x1d, 0xdc00 | port); + + /* + * Wait for the snapshotting to complete. + */ + ret = mv88e6xxx_stats_wait(ds); + if (ret < 0) + return ret; + + return 0; +} + +static void mv88e6xxx_stats_read(struct dsa_switch *ds, int stat, u32 *val) +{ + u32 _val; + int ret; + + *val = 0; + + ret = mv88e6xxx_reg_write(ds, REG_GLOBAL, 0x1d, 0xcc00 | stat); + if (ret < 0) + return; + + ret = mv88e6xxx_stats_wait(ds); + if (ret < 0) + return; + + ret = mv88e6xxx_reg_read(ds, REG_GLOBAL, 0x1e); + if (ret < 0) + return; + + _val = ret << 16; + + ret = mv88e6xxx_reg_read(ds, REG_GLOBAL, 0x1f); + if (ret < 0) + return; + + *val = _val | ret; +} + +void mv88e6xxx_get_strings(struct dsa_switch *ds, + int nr_stats, struct mv88e6xxx_hw_stat *stats, + int port, uint8_t *data) +{ + int i; + + for (i = 0; i < nr_stats; i++) { + memcpy(data + i * ETH_GSTRING_LEN, + stats[i].string, ETH_GSTRING_LEN); + } +} + +void mv88e6xxx_get_ethtool_stats(struct dsa_switch *ds, + int nr_stats, struct mv88e6xxx_hw_stat *stats, + int port, uint64_t *data) +{ + struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); + int ret; + int i; + + mutex_lock(&ps->stats_mutex); + + ret = mv88e6xxx_stats_snapshot(ds, port); + if (ret < 0) { + mutex_unlock(&ps->stats_mutex); + return; + } + + /* + * Read each of the counters. + */ + for (i = 0; i < nr_stats; i++) { + struct mv88e6xxx_hw_stat *s = stats + i; + u32 low; + u32 high; + + mv88e6xxx_stats_read(ds, s->reg, &low); + if (s->sizeof_stat == 8) + mv88e6xxx_stats_read(ds, s->reg + 1, &high); + else + high = 0; + + data[i] = (((u64)high) << 32) | low; + } + + mutex_unlock(&ps->stats_mutex); +} + +static int __init mv88e6xxx_init(void) +{ +#if IS_ENABLED(CONFIG_NET_DSA_MV88E6131) + register_switch_driver(&mv88e6131_switch_driver); +#endif +#if IS_ENABLED(CONFIG_NET_DSA_MV88E6123_61_65) + register_switch_driver(&mv88e6123_61_65_switch_driver); +#endif + return 0; +} +module_init(mv88e6xxx_init); + +static void __exit mv88e6xxx_cleanup(void) +{ +#if IS_ENABLED(CONFIG_NET_DSA_MV88E6123_61_65) + unregister_switch_driver(&mv88e6123_61_65_switch_driver); +#endif +#if IS_ENABLED(CONFIG_NET_DSA_MV88E6131) + unregister_switch_driver(&mv88e6131_switch_driver); +#endif +} +module_exit(mv88e6xxx_cleanup); + +MODULE_AUTHOR("Lennert Buytenhek "); +MODULE_DESCRIPTION("Driver for Marvell 88E6XXX ethernet switch chips"); +MODULE_LICENSE("GPL"); --- linux-3.2.0.orig/drivers/net/dsa/mv88e6060.c +++ linux-3.2.0/drivers/net/dsa/mv88e6060.c @@ -0,0 +1,294 @@ +/* + * net/dsa/mv88e6060.c - Driver for Marvell 88e6060 switch chips + * Copyright (c) 2008-2009 Marvell Semiconductor + * + * 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 + +#define REG_PORT(p) (8 + (p)) +#define REG_GLOBAL 0x0f + +static int reg_read(struct dsa_switch *ds, int addr, int reg) +{ + return mdiobus_read(ds->master_mii_bus, ds->pd->sw_addr + addr, reg); +} + +#define REG_READ(addr, reg) \ + ({ \ + int __ret; \ + \ + __ret = reg_read(ds, addr, reg); \ + if (__ret < 0) \ + return __ret; \ + __ret; \ + }) + + +static int reg_write(struct dsa_switch *ds, int addr, int reg, u16 val) +{ + return mdiobus_write(ds->master_mii_bus, ds->pd->sw_addr + addr, + reg, val); +} + +#define REG_WRITE(addr, reg, val) \ + ({ \ + int __ret; \ + \ + __ret = reg_write(ds, addr, reg, val); \ + if (__ret < 0) \ + return __ret; \ + }) + +static char *mv88e6060_probe(struct mii_bus *bus, int sw_addr) +{ + int ret; + + ret = mdiobus_read(bus, sw_addr + REG_PORT(0), 0x03); + if (ret >= 0) { + ret &= 0xfff0; + if (ret == 0x0600) + return "Marvell 88E6060"; + } + + return NULL; +} + +static int mv88e6060_switch_reset(struct dsa_switch *ds) +{ + int i; + int ret; + + /* + * Set all ports to the disabled state. + */ + for (i = 0; i < 6; i++) { + ret = REG_READ(REG_PORT(i), 0x04); + REG_WRITE(REG_PORT(i), 0x04, ret & 0xfffc); + } + + /* + * Wait for transmit queues to drain. + */ + msleep(2); + + /* + * Reset the switch. + */ + REG_WRITE(REG_GLOBAL, 0x0a, 0xa130); + + /* + * Wait up to one second for reset to complete. + */ + for (i = 0; i < 1000; i++) { + ret = REG_READ(REG_GLOBAL, 0x00); + if ((ret & 0x8000) == 0x0000) + break; + + msleep(1); + } + if (i == 1000) + return -ETIMEDOUT; + + return 0; +} + +static int mv88e6060_setup_global(struct dsa_switch *ds) +{ + /* + * Disable discarding of frames with excessive collisions, + * set the maximum frame size to 1536 bytes, and mask all + * interrupt sources. + */ + REG_WRITE(REG_GLOBAL, 0x04, 0x0800); + + /* + * Enable automatic address learning, set the address + * database size to 1024 entries, and set the default aging + * time to 5 minutes. + */ + REG_WRITE(REG_GLOBAL, 0x0a, 0x2130); + + return 0; +} + +static int mv88e6060_setup_port(struct dsa_switch *ds, int p) +{ + int addr = REG_PORT(p); + + /* + * 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 + * port, enable Ingress and Egress Trailer tagging mode. + */ + REG_WRITE(addr, 0x04, dsa_is_cpu_port(ds, p) ? 0x4103 : 0x0003); + + /* + * Port based VLAN map: give each port its own address + * database, allow the CPU port to talk to each of the 'real' + * ports, and allow each of the 'real' ports to only talk to + * the CPU port. + */ + REG_WRITE(addr, 0x06, + ((p & 0xf) << 12) | + (dsa_is_cpu_port(ds, p) ? + ds->phys_port_mask : + (1 << ds->dst->cpu_port))); + + /* + * Port Association Vector: when learning source addresses + * of packets, add the address to the address database using + * a port bitmap that has only the bit for this port set and + * the other bits clear. + */ + REG_WRITE(addr, 0x0b, 1 << p); + + return 0; +} + +static int mv88e6060_setup(struct dsa_switch *ds) +{ + int i; + int ret; + + ret = mv88e6060_switch_reset(ds); + if (ret < 0) + return ret; + + /* @@@ initialise atu */ + + ret = mv88e6060_setup_global(ds); + if (ret < 0) + return ret; + + for (i = 0; i < 6; i++) { + ret = mv88e6060_setup_port(ds, i); + if (ret < 0) + return ret; + } + + return 0; +} + +static int mv88e6060_set_addr(struct dsa_switch *ds, u8 *addr) +{ + REG_WRITE(REG_GLOBAL, 0x01, (addr[0] << 8) | addr[1]); + REG_WRITE(REG_GLOBAL, 0x02, (addr[2] << 8) | addr[3]); + REG_WRITE(REG_GLOBAL, 0x03, (addr[4] << 8) | addr[5]); + + return 0; +} + +static int mv88e6060_port_to_phy_addr(int port) +{ + if (port >= 0 && port <= 5) + return port; + return -1; +} + +static int mv88e6060_phy_read(struct dsa_switch *ds, int port, int regnum) +{ + int addr; + + addr = mv88e6060_port_to_phy_addr(port); + if (addr == -1) + return 0xffff; + + return reg_read(ds, addr, regnum); +} + +static int +mv88e6060_phy_write(struct dsa_switch *ds, int port, int regnum, u16 val) +{ + int addr; + + addr = mv88e6060_port_to_phy_addr(port); + if (addr == -1) + return 0xffff; + + return reg_write(ds, addr, regnum, val); +} + +static void mv88e6060_poll_link(struct dsa_switch *ds) +{ + int i; + + for (i = 0; i < DSA_MAX_PORTS; i++) { + struct net_device *dev; + int uninitialized_var(port_status); + int link; + int speed; + int duplex; + int fc; + + dev = ds->ports[i]; + if (dev == NULL) + continue; + + link = 0; + if (dev->flags & IFF_UP) { + port_status = reg_read(ds, REG_PORT(i), 0x00); + if (port_status < 0) + continue; + + link = !!(port_status & 0x1000); + } + + if (!link) { + if (netif_carrier_ok(dev)) { + printk(KERN_INFO "%s: link down\n", dev->name); + netif_carrier_off(dev); + } + continue; + } + + speed = (port_status & 0x0100) ? 100 : 10; + duplex = (port_status & 0x0200) ? 1 : 0; + fc = ((port_status & 0xc000) == 0xc000) ? 1 : 0; + + if (!netif_carrier_ok(dev)) { + printk(KERN_INFO "%s: link up, %d Mb/s, %s duplex, " + "flow control %sabled\n", dev->name, + speed, duplex ? "full" : "half", + fc ? "en" : "dis"); + netif_carrier_on(dev); + } + } +} + +static struct dsa_switch_driver mv88e6060_switch_driver = { + .tag_protocol = htons(ETH_P_TRAILER), + .probe = mv88e6060_probe, + .setup = mv88e6060_setup, + .set_addr = mv88e6060_set_addr, + .phy_read = mv88e6060_phy_read, + .phy_write = mv88e6060_phy_write, + .poll_link = mv88e6060_poll_link, +}; + +static int __init mv88e6060_init(void) +{ + register_switch_driver(&mv88e6060_switch_driver); + return 0; +} +module_init(mv88e6060_init); + +static void __exit mv88e6060_cleanup(void) +{ + unregister_switch_driver(&mv88e6060_switch_driver); +} +module_exit(mv88e6060_cleanup); + +MODULE_AUTHOR("Lennert Buytenhek "); +MODULE_DESCRIPTION("Driver for Marvell 88E6060 ethernet switch chip"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:mv88e6060"); --- linux-3.2.0.orig/drivers/net/irda/sir_dev.c +++ linux-3.2.0/drivers/net/irda/sir_dev.c @@ -222,7 +222,7 @@ break; case SIRDEV_STATE_DONGLE_SPEED: - if (dev->dongle_drv->reset) { + if (dev->dongle_drv->set_speed) { ret = dev->dongle_drv->set_speed(dev, fsm->param); if (ret < 0) { fsm->result = ret; --- linux-3.2.0.orig/drivers/net/bonding/bond_debugfs.c +++ linux-3.2.0/drivers/net/bonding/bond_debugfs.c @@ -6,7 +6,7 @@ #include "bonding.h" #include "bond_alb.h" -#ifdef CONFIG_DEBUG_FS +#if defined(CONFIG_DEBUG_FS) && !defined(CONFIG_NET_NS) #include #include --- linux-3.2.0.orig/drivers/net/bonding/bond_sysfs.c +++ linux-3.2.0/drivers/net/bonding/bond_sysfs.c @@ -184,6 +184,11 @@ sprintf(linkname, "slave_%s", slave->name); ret = sysfs_create_link(&(master->dev.kobj), &(slave->dev.kobj), linkname); + + /* free the master link created earlier in case of error */ + if (ret) + sysfs_remove_link(&(slave->dev.kobj), "master"); + return ret; } @@ -514,6 +519,8 @@ int new_value, ret = count; struct bonding *bond = to_bond(d); + if (!rtnl_trylock()) + return restart_syscall(); if (sscanf(buf, "%d", &new_value) != 1) { pr_err("%s: no arp_interval value specified.\n", bond->dev->name); @@ -521,7 +528,7 @@ goto out; } if (new_value < 0) { - pr_err("%s: Invalid arp_interval value %d not in range 1-%d; rejected.\n", + pr_err("%s: Invalid arp_interval value %d not in range 0-%d; rejected.\n", bond->dev->name, new_value, INT_MAX); ret = -EINVAL; goto out; @@ -536,18 +543,15 @@ pr_info("%s: Setting ARP monitoring interval to %d.\n", bond->dev->name, new_value); bond->params.arp_interval = new_value; - if (bond->params.miimon) { - pr_info("%s: ARP monitoring cannot be used with MII monitoring. %s Disabling MII monitoring.\n", - bond->dev->name, bond->dev->name); - bond->params.miimon = 0; - if (delayed_work_pending(&bond->mii_work)) { - cancel_delayed_work(&bond->mii_work); - flush_workqueue(bond->wq); + if (new_value) { + if (bond->params.miimon) { + pr_info("%s: ARP monitoring cannot be used with MII monitoring. %s Disabling MII monitoring.\n", + bond->dev->name, bond->dev->name); + bond->params.miimon = 0; } - } - if (!bond->params.arp_targets[0]) { - pr_info("%s: ARP monitoring has been set up, but no ARP targets have been specified.\n", - bond->dev->name); + if (!bond->params.arp_targets[0]) + pr_info("%s: ARP monitoring has been set up, but no ARP targets have been specified.\n", + bond->dev->name); } if (bond->dev->flags & IFF_UP) { /* If the interface is up, we may need to fire off @@ -555,19 +559,15 @@ * timer will get fired off when the open function * is called. */ - if (!delayed_work_pending(&bond->arp_work)) { - if (bond->params.mode == BOND_MODE_ACTIVEBACKUP) - INIT_DELAYED_WORK(&bond->arp_work, - bond_activebackup_arp_mon); - else - INIT_DELAYED_WORK(&bond->arp_work, - bond_loadbalance_arp_mon); - + if (!new_value) { + cancel_delayed_work_sync(&bond->arp_work); + } else { + cancel_delayed_work_sync(&bond->mii_work); queue_delayed_work(bond->wq, &bond->arp_work, 0); } } - out: + rtnl_unlock(); return ret; } static DEVICE_ATTR(arp_interval, S_IRUGO | S_IWUSR, @@ -707,7 +707,7 @@ } if (new_value < 0) { pr_err("%s: Invalid down delay value %d not in range %d-%d; rejected.\n", - bond->dev->name, new_value, 1, INT_MAX); + bond->dev->name, new_value, 0, INT_MAX); ret = -EINVAL; goto out; } else { @@ -762,8 +762,8 @@ goto out; } if (new_value < 0) { - pr_err("%s: Invalid down delay value %d not in range %d-%d; rejected.\n", - bond->dev->name, new_value, 1, INT_MAX); + pr_err("%s: Invalid up delay value %d not in range %d-%d; rejected.\n", + bond->dev->name, new_value, 0, INT_MAX); ret = -EINVAL; goto out; } else { @@ -963,6 +963,8 @@ int new_value, ret = count; struct bonding *bond = to_bond(d); + if (!rtnl_trylock()) + return restart_syscall(); if (sscanf(buf, "%d", &new_value) != 1) { pr_err("%s: no miimon value specified.\n", bond->dev->name); @@ -971,50 +973,43 @@ } if (new_value < 0) { pr_err("%s: Invalid miimon value %d not in range %d-%d; rejected.\n", - bond->dev->name, new_value, 1, INT_MAX); + bond->dev->name, new_value, 0, INT_MAX); ret = -EINVAL; goto out; - } else { - pr_info("%s: Setting MII monitoring interval to %d.\n", - bond->dev->name, new_value); - bond->params.miimon = new_value; - if (bond->params.updelay) - pr_info("%s: Note: Updating updelay (to %d) since it is a multiple of the miimon value.\n", - bond->dev->name, - bond->params.updelay * bond->params.miimon); - if (bond->params.downdelay) - pr_info("%s: Note: Updating downdelay (to %d) since it is a multiple of the miimon value.\n", - bond->dev->name, - bond->params.downdelay * bond->params.miimon); - if (bond->params.arp_interval) { - pr_info("%s: MII monitoring cannot be used with ARP monitoring. Disabling ARP monitoring...\n", - bond->dev->name); - bond->params.arp_interval = 0; - if (bond->params.arp_validate) { - bond->params.arp_validate = - BOND_ARP_VALIDATE_NONE; - } - if (delayed_work_pending(&bond->arp_work)) { - cancel_delayed_work(&bond->arp_work); - flush_workqueue(bond->wq); - } - } - - if (bond->dev->flags & IFF_UP) { - /* If the interface is up, we may need to fire off - * the MII timer. If the interface is down, the - * timer will get fired off when the open function - * is called. - */ - if (!delayed_work_pending(&bond->mii_work)) { - INIT_DELAYED_WORK(&bond->mii_work, - bond_mii_monitor); - queue_delayed_work(bond->wq, - &bond->mii_work, 0); - } + } + pr_info("%s: Setting MII monitoring interval to %d.\n", + bond->dev->name, new_value); + bond->params.miimon = new_value; + if (bond->params.updelay) + pr_info("%s: Note: Updating updelay (to %d) since it is a multiple of the miimon value.\n", + bond->dev->name, + bond->params.updelay * bond->params.miimon); + if (bond->params.downdelay) + pr_info("%s: Note: Updating downdelay (to %d) since it is a multiple of the miimon value.\n", + bond->dev->name, + bond->params.downdelay * bond->params.miimon); + if (new_value && bond->params.arp_interval) { + pr_info("%s: MII monitoring cannot be used with ARP monitoring. Disabling ARP monitoring...\n", + bond->dev->name); + bond->params.arp_interval = 0; + if (bond->params.arp_validate) + bond->params.arp_validate = BOND_ARP_VALIDATE_NONE; + } + if (bond->dev->flags & IFF_UP) { + /* If the interface is up, we may need to fire off + * the MII timer. If the interface is down, the + * timer will get fired off when the open function + * is called. + */ + if (!new_value) { + cancel_delayed_work_sync(&bond->mii_work); + } else { + cancel_delayed_work_sync(&bond->arp_work); + queue_delayed_work(bond->wq, &bond->mii_work, 0); } } out: + rtnl_unlock(); return ret; } static DEVICE_ATTR(miimon, S_IRUGO | S_IWUSR, @@ -1579,6 +1574,7 @@ goto out; } + read_lock(&bond->lock); bond_for_each_slave(bond, slave, i) { if (!bond_is_active_slave(slave)) { if (new_value) @@ -1587,6 +1583,7 @@ slave->inactive = 1; } } + read_unlock(&bond->lock); out: return ret; } --- linux-3.2.0.orig/drivers/net/bonding/bond_main.c +++ linux-3.2.0/drivers/net/bonding/bond_main.c @@ -77,6 +77,7 @@ #include #include #include +#include #include "bonding.h" #include "bond_3ad.h" #include "bond_alb.h" @@ -382,8 +383,6 @@ return next; } -#define bond_queue_mapping(skb) (*(u16 *)((skb)->cb)) - /** * bond_dev_queue_xmit - Prepare skb for xmit. * @@ -396,7 +395,9 @@ { skb->dev = slave_dev; - skb->queue_mapping = bond_queue_mapping(skb); + BUILD_BUG_ON(sizeof(skb->queue_mapping) != + sizeof(qdisc_skb_cb(skb)->bond_queue_mapping)); + skb->queue_mapping = qdisc_skb_cb(skb)->bond_queue_mapping; if (unlikely(netpoll_tx_running(slave_dev))) bond_netpoll_send_skb(bond_get_slave_by_dev(bond, slave_dev), skb); @@ -1365,6 +1366,8 @@ struct net_device *bond_dev = bond->dev; u32 vlan_features = BOND_VLAN_FEATURES; unsigned short max_hard_header_len = ETH_HLEN; + unsigned int gso_max_size = GSO_MAX_SIZE; + u16 gso_max_segs = GSO_MAX_SEGS; int i; read_lock(&bond->lock); @@ -1378,11 +1381,16 @@ if (slave->dev->hard_header_len > max_hard_header_len) max_hard_header_len = slave->dev->hard_header_len; + + gso_max_size = min(gso_max_size, slave->dev->gso_max_size); + gso_max_segs = min(gso_max_segs, slave->dev->gso_max_segs); } done: bond_dev->vlan_features = vlan_features; bond_dev->hard_header_len = max_hard_header_len; + bond_dev->gso_max_segs = gso_max_segs; + netif_set_gso_max_size(bond_dev, gso_max_size); read_unlock(&bond->lock); @@ -1707,6 +1715,8 @@ bond_compute_features(bond); + bond_update_speed_duplex(new_slave); + read_lock(&bond->lock); new_slave->last_arp_rx = jiffies; @@ -1750,8 +1760,6 @@ new_slave->link = BOND_LINK_DOWN; } - bond_update_speed_duplex(new_slave); - if (USES_PRIMARY(bond->params.mode) && bond->params.primary[0]) { /* if there is a primary slave, remember it */ if (strcmp(bond->params.primary, new_slave->dev->name) == 0) { @@ -1822,7 +1830,7 @@ "but new slave device does not support netpoll.\n", bond_dev->name); res = -EBUSY; - goto err_close; + goto err_detach; } } #endif @@ -1831,7 +1839,7 @@ res = bond_create_slave_symlinks(bond_dev, slave_dev); if (res) - goto err_close; + goto err_detach; res = netdev_rx_handler_register(slave_dev, bond_handle_frame, new_slave); @@ -1852,7 +1860,13 @@ err_dest_symlinks: bond_destroy_slave_symlinks(bond_dev, slave_dev); +err_detach: + write_lock_bh(&bond->lock); + bond_detach_slave(bond, new_slave); + write_unlock_bh(&bond->lock); + err_close: + slave_dev->priv_flags &= ~IFF_BONDING; dev_close(slave_dev); err_unset_master: @@ -1921,12 +1935,11 @@ return -EINVAL; } + write_unlock_bh(&bond->lock); /* unregister rx_handler early so bond_handle_frame wouldn't be called * for this slave anymore. */ netdev_rx_handler_unregister(slave_dev); - write_unlock_bh(&bond->lock); - synchronize_net(); write_lock_bh(&bond->lock); if (!bond->params.fail_over_mac) { @@ -2424,8 +2437,6 @@ bond_set_backup_slave(slave); } - bond_update_speed_duplex(slave); - pr_info("%s: link status definitely up for interface %s, %u Mbps %s duplex.\n", bond->dev->name, slave->dev->name, slave->speed, slave->duplex ? "full" : "half"); @@ -2977,7 +2988,11 @@ trans_start + delta_in_ticks)) || bond->curr_active_slave != slave) { slave->link = BOND_LINK_UP; - bond->current_arp_slave = NULL; + if (bond->current_arp_slave) { + bond_set_slave_inactive_flags( + bond->current_arp_slave); + bond->current_arp_slave = NULL; + } pr_info("%s: link status definitely up for interface %s.\n", bond->dev->name, slave->dev->name); @@ -3174,6 +3189,12 @@ switch (event) { case NETDEV_CHANGENAME: return bond_event_changename(event_bond); + case NETDEV_UNREGISTER: + bond_remove_proc_entry(event_bond); + break; + case NETDEV_REGISTER: + bond_create_proc_entry(event_bond); + break; default: break; } @@ -3401,6 +3422,28 @@ /*-------------------------- Device entry points ----------------------------*/ +static void bond_work_init_all(struct bonding *bond) +{ + INIT_DELAYED_WORK(&bond->mcast_work, + bond_resend_igmp_join_requests_delayed); + INIT_DELAYED_WORK(&bond->alb_work, bond_alb_monitor); + INIT_DELAYED_WORK(&bond->mii_work, bond_mii_monitor); + if (bond->params.mode == BOND_MODE_ACTIVEBACKUP) + INIT_DELAYED_WORK(&bond->arp_work, bond_activebackup_arp_mon); + else + INIT_DELAYED_WORK(&bond->arp_work, bond_loadbalance_arp_mon); + INIT_DELAYED_WORK(&bond->ad_work, bond_3ad_state_machine_handler); +} + +static void bond_work_cancel_all(struct bonding *bond) +{ + cancel_delayed_work_sync(&bond->mii_work); + cancel_delayed_work_sync(&bond->arp_work); + cancel_delayed_work_sync(&bond->alb_work); + cancel_delayed_work_sync(&bond->ad_work); + cancel_delayed_work_sync(&bond->mcast_work); +} + static int bond_open(struct net_device *bond_dev) { struct bonding *bond = netdev_priv(bond_dev); @@ -3423,41 +3466,27 @@ } read_unlock(&bond->lock); - INIT_DELAYED_WORK(&bond->mcast_work, bond_resend_igmp_join_requests_delayed); + bond_work_init_all(bond); if (bond_is_lb(bond)) { /* bond_alb_initialize must be called before the timer * is started. */ - if (bond_alb_initialize(bond, (bond->params.mode == BOND_MODE_ALB))) { - /* something went wrong - fail the open operation */ + if (bond_alb_initialize(bond, (bond->params.mode == BOND_MODE_ALB))) return -ENOMEM; - } - - INIT_DELAYED_WORK(&bond->alb_work, bond_alb_monitor); queue_delayed_work(bond->wq, &bond->alb_work, 0); } - if (bond->params.miimon) { /* link check interval, in milliseconds. */ - INIT_DELAYED_WORK(&bond->mii_work, bond_mii_monitor); + if (bond->params.miimon) /* link check interval, in milliseconds. */ queue_delayed_work(bond->wq, &bond->mii_work, 0); - } if (bond->params.arp_interval) { /* arp interval, in milliseconds. */ - if (bond->params.mode == BOND_MODE_ACTIVEBACKUP) - INIT_DELAYED_WORK(&bond->arp_work, - bond_activebackup_arp_mon); - else - INIT_DELAYED_WORK(&bond->arp_work, - bond_loadbalance_arp_mon); - queue_delayed_work(bond->wq, &bond->arp_work, 0); if (bond->params.arp_validate) bond->recv_probe = bond_arp_rcv; } if (bond->params.mode == BOND_MODE_8023AD) { - INIT_DELAYED_WORK(&bond->ad_work, bond_3ad_state_machine_handler); queue_delayed_work(bond->wq, &bond->ad_work, 0); /* register to receive LACPDUs */ bond->recv_probe = bond_3ad_lacpdu_recv; @@ -3472,34 +3501,10 @@ struct bonding *bond = netdev_priv(bond_dev); write_lock_bh(&bond->lock); - bond->send_peer_notif = 0; - write_unlock_bh(&bond->lock); - if (bond->params.miimon) { /* link check interval, in milliseconds. */ - cancel_delayed_work_sync(&bond->mii_work); - } - - if (bond->params.arp_interval) { /* arp interval, in milliseconds. */ - cancel_delayed_work_sync(&bond->arp_work); - } - - switch (bond->params.mode) { - case BOND_MODE_8023AD: - cancel_delayed_work_sync(&bond->ad_work); - break; - case BOND_MODE_TLB: - case BOND_MODE_ALB: - cancel_delayed_work_sync(&bond->alb_work); - break; - default: - break; - } - - if (delayed_work_pending(&bond->mcast_work)) - cancel_delayed_work_sync(&bond->mcast_work); - + bond_work_cancel_all(bond); if (bond_is_lb(bond)) { /* Must be called only after all * slaves have been released @@ -4142,7 +4147,7 @@ /* * Save the original txq to restore before passing to the driver */ - bond_queue_mapping(skb) = skb->queue_mapping; + qdisc_skb_cb(skb)->bond_queue_mapping = skb->queue_mapping; if (unlikely(txq >= dev->real_num_tx_queues)) { do { @@ -4343,26 +4348,6 @@ bond_dev->features |= bond_dev->hw_features; } -static void bond_work_cancel_all(struct bonding *bond) -{ - if (bond->params.miimon && delayed_work_pending(&bond->mii_work)) - cancel_delayed_work_sync(&bond->mii_work); - - if (bond->params.arp_interval && delayed_work_pending(&bond->arp_work)) - cancel_delayed_work_sync(&bond->arp_work); - - if (bond->params.mode == BOND_MODE_ALB && - delayed_work_pending(&bond->alb_work)) - cancel_delayed_work_sync(&bond->alb_work); - - if (bond->params.mode == BOND_MODE_8023AD && - delayed_work_pending(&bond->ad_work)) - cancel_delayed_work_sync(&bond->ad_work); - - if (delayed_work_pending(&bond->mcast_work)) - cancel_delayed_work_sync(&bond->mcast_work); -} - /* * Destroy a bonding device. * Must be under rtnl_lock when this function is called. @@ -4381,8 +4366,6 @@ bond_work_cancel_all(bond); - bond_remove_proc_entry(bond); - bond_debug_unregister(bond); __hw_addr_flush(&bond->mc_list); @@ -4784,7 +4767,6 @@ bond_set_lockdep_class(bond_dev); - bond_create_proc_entry(bond); list_add_tail(&bond->bond_list, &bn->dev_list); bond_prepare_sysfs_group(bond); @@ -4872,9 +4854,18 @@ static void __net_exit bond_net_exit(struct net *net) { struct bond_net *bn = net_generic(net, bond_net_id); + struct bonding *bond, *tmp_bond; + LIST_HEAD(list); bond_destroy_sysfs(bn); bond_destroy_proc_dir(bn); + + /* Kill off any bonds created after unregistering bond rtnl ops */ + rtnl_lock(); + list_for_each_entry_safe(bond, tmp_bond, &bn->dev_list, bond_list) + unregister_netdevice_queue(bond->dev, &list); + unregister_netdevice_many(&list); + rtnl_unlock(); } static struct pernet_operations bond_net_ops = { --- linux-3.2.0.orig/drivers/net/bonding/bond_alb.c +++ linux-3.2.0/drivers/net/bonding/bond_alb.c @@ -871,16 +871,12 @@ } } -/* hw is a boolean parameter that determines whether we should try and - * set the hw address of the device as well as the hw address of the - * net_device - */ -static int alb_set_slave_mac_addr(struct slave *slave, u8 addr[], int hw) +static int alb_set_slave_mac_addr(struct slave *slave, u8 addr[]) { struct net_device *dev = slave->dev; struct sockaddr s_addr; - if (!hw) { + if (slave->bond->params.mode == BOND_MODE_TLB) { memcpy(dev->dev_addr, addr, dev->addr_len); return 0; } @@ -910,8 +906,8 @@ u8 tmp_mac_addr[ETH_ALEN]; memcpy(tmp_mac_addr, slave1->dev->dev_addr, ETH_ALEN); - alb_set_slave_mac_addr(slave1, slave2->dev->dev_addr, bond->alb_info.rlb_enabled); - alb_set_slave_mac_addr(slave2, tmp_mac_addr, bond->alb_info.rlb_enabled); + alb_set_slave_mac_addr(slave1, slave2->dev->dev_addr); + alb_set_slave_mac_addr(slave2, tmp_mac_addr); } @@ -1058,8 +1054,7 @@ /* Try setting slave mac to bond address and fall-through to code handling that situation below... */ - alb_set_slave_mac_addr(slave, bond->dev->dev_addr, - bond->alb_info.rlb_enabled); + alb_set_slave_mac_addr(slave, bond->dev->dev_addr); } /* The slave's address is equal to the address of the bond. @@ -1095,8 +1090,7 @@ } if (free_mac_slave) { - alb_set_slave_mac_addr(slave, free_mac_slave->perm_hwaddr, - bond->alb_info.rlb_enabled); + alb_set_slave_mac_addr(slave, free_mac_slave->perm_hwaddr); pr_warning("%s: Warning: the hw address of slave %s is in use by the bond; giving it the hw address of %s\n", bond->dev->name, slave->dev->name, @@ -1451,8 +1445,7 @@ { int res; - res = alb_set_slave_mac_addr(slave, slave->perm_hwaddr, - bond->alb_info.rlb_enabled); + res = alb_set_slave_mac_addr(slave, slave->perm_hwaddr); if (res) { return res; } @@ -1603,8 +1596,7 @@ alb_swap_mac_addr(bond, swap_slave, new_slave); } else { /* set the new_slave to the bond mac address */ - alb_set_slave_mac_addr(new_slave, bond->dev->dev_addr, - bond->alb_info.rlb_enabled); + alb_set_slave_mac_addr(new_slave, bond->dev->dev_addr); } if (swap_slave) { @@ -1664,8 +1656,7 @@ alb_swap_mac_addr(bond, swap_slave, bond->curr_active_slave); alb_fasten_mac_swap(bond, swap_slave, bond->curr_active_slave); } else { - alb_set_slave_mac_addr(bond->curr_active_slave, bond_dev->dev_addr, - bond->alb_info.rlb_enabled); + alb_set_slave_mac_addr(bond->curr_active_slave, bond_dev->dev_addr); read_lock(&bond->lock); alb_send_learning_packets(bond->curr_active_slave, bond_dev->dev_addr); --- linux-3.2.0.orig/drivers/net/wan/ixp4xx_hss.c +++ linux-3.2.0/drivers/net/wan/ixp4xx_hss.c @@ -10,6 +10,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +#include #include #include #include --- linux-3.2.0.orig/drivers/net/wan/dlci.c +++ linux-3.2.0/drivers/net/wan/dlci.c @@ -385,21 +385,37 @@ struct frad_local *flp; struct net_device *master, *slave; int err; + bool found = false; + + rtnl_lock(); /* validate slave device */ master = __dev_get_by_name(&init_net, dlci->devname); - if (!master) - return -ENODEV; + if (!master) { + err = -ENODEV; + goto out; + } + + list_for_each_entry(dlp, &dlci_devs, list) { + if (dlp->master == master) { + found = true; + break; + } + } + if (!found) { + err = -ENODEV; + goto out; + } if (netif_running(master)) { - return -EBUSY; + err = -EBUSY; + goto out; } dlp = netdev_priv(master); slave = dlp->slave; flp = netdev_priv(slave); - rtnl_lock(); err = (*flp->deassoc)(slave, master); if (!err) { list_del(&dlp->list); @@ -408,8 +424,8 @@ dev_put(slave); } +out: rtnl_unlock(); - return err; } --- linux-3.2.0.orig/drivers/target/target_core_file.h +++ linux-3.2.0/drivers/target/target_core_file.h @@ -18,7 +18,7 @@ #define FBDF_HAS_PATH 0x01 #define FBDF_HAS_SIZE 0x02 -#define FDBD_USE_BUFFERED_IO 0x04 +#define FDBD_HAS_BUFFERED_IO_WCE 0x04 struct fd_dev { u32 fbd_flags; --- linux-3.2.0.orig/drivers/target/target_core_cdb.c +++ linux-3.2.0/drivers/target/target_core_cdb.c @@ -82,7 +82,7 @@ return -EINVAL; } - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); if (dev == tpg->tpg_virt_lun0.lun_se_dev) { buf[0] = 0x3f; /* Not connected */ @@ -94,6 +94,18 @@ buf[2] = dev->transport->get_device_rev(dev); /* + * NORMACA and HISUP = 0, RESPONSE DATA FORMAT = 2 + * + * SPC4 says: + * A RESPONSE DATA FORMAT field set to 2h indicates that the + * standard INQUIRY data is in the format defined in this + * standard. Response data format values less than 2h are + * obsolete. Response data format values greater than 2h are + * reserved. + */ + buf[3] = 2; + + /* * Enable SCCS and TPGS fields for Emulated ALUA */ if (dev->se_sub_dev->t10_alua.alua_type == SPC3_ALUA_EMULATED) @@ -104,7 +116,7 @@ goto out; } - buf[7] = 0x32; /* Sync=1 and CmdQue=1 */ + buf[7] = 0x2; /* CmdQue=1 */ /* * Do not include vendor, product, reversion info in INQUIRY @@ -123,7 +135,7 @@ buf[4] = 31; /* Set additional length to 31 */ out: - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); return 0; } @@ -689,6 +701,13 @@ int p, ret; if (!(cdb[1] & 0x1)) { + if (cdb[2]) { + pr_err("INQUIRY with EVPD==0 but PAGE CODE=%02x\n", + cdb[2]); + cmd->scsi_sense_reason = TCM_INVALID_CDB_FIELD; + return -EINVAL; + } + ret = target_emulate_inquiry_std(cmd); goto out; } @@ -707,7 +726,7 @@ return -EINVAL; } - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); buf[0] = dev->transport->get_device_type(dev); @@ -720,11 +739,11 @@ } pr_err("Unknown VPD Code: 0x%02x\n", cdb[2]); - cmd->scsi_sense_reason = TCM_UNSUPPORTED_SCSI_OPCODE; + cmd->scsi_sense_reason = TCM_INVALID_CDB_FIELD; ret = -EINVAL; out_unmap: - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); out: if (!ret) { task->task_scsi_status = GOOD; @@ -746,7 +765,7 @@ else blocks = (u32)blocks_long; - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); buf[0] = (blocks >> 24) & 0xff; buf[1] = (blocks >> 16) & 0xff; @@ -762,7 +781,7 @@ if (dev->se_sub_dev->se_dev_attrib.emulate_tpu || dev->se_sub_dev->se_dev_attrib.emulate_tpws) put_unaligned_be32(0xFFFFFFFF, &buf[0]); - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); task->task_scsi_status = GOOD; transport_complete_task(task, 1); @@ -776,7 +795,7 @@ unsigned char *buf; unsigned long long blocks = dev->transport->get_blocks(dev); - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); buf[0] = (blocks >> 56) & 0xff; buf[1] = (blocks >> 48) & 0xff; @@ -797,7 +816,7 @@ if (dev->se_sub_dev->se_dev_attrib.emulate_tpu || dev->se_sub_dev->se_dev_attrib.emulate_tpws) buf[14] = 0x80; - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); task->task_scsi_status = GOOD; transport_complete_task(task, 1); @@ -1010,9 +1029,9 @@ offset = cmd->data_length; } - rbuf = transport_kmap_first_data_page(cmd); + rbuf = transport_kmap_data_sg(cmd); memcpy(rbuf, buf, offset); - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); task->task_scsi_status = GOOD; transport_complete_task(task, 1); @@ -1034,7 +1053,7 @@ return -ENOSYS; } - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); if (!core_scsi3_ua_clear_for_request_sense(cmd, &ua_asc, &ua_ascq)) { /* @@ -1080,7 +1099,7 @@ } end: - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); task->task_scsi_status = GOOD; transport_complete_task(task, 1); return 0; @@ -1095,11 +1114,11 @@ struct se_cmd *cmd = task->task_se_cmd; struct se_device *dev = cmd->se_dev; unsigned char *buf, *ptr = NULL; - unsigned char *cdb = &cmd->t_task_cdb[0]; sector_t lba; - unsigned int size = cmd->data_length, range; - int ret = 0, offset; - unsigned short dl, bd_dl; + int size = cmd->data_length; + u32 range; + int ret = 0; + int dl, bd_dl; if (!dev->transport->do_discard) { pr_err("UNMAP emulation not supported for: %s\n", @@ -1108,24 +1127,41 @@ return -ENOSYS; } - /* First UNMAP block descriptor starts at 8 byte offset */ - offset = 8; - size -= 8; - dl = get_unaligned_be16(&cdb[0]); - bd_dl = get_unaligned_be16(&cdb[2]); + buf = transport_kmap_data_sg(cmd); + + dl = get_unaligned_be16(&buf[0]); + bd_dl = get_unaligned_be16(&buf[2]); - buf = transport_kmap_first_data_page(cmd); + size = min(size - 8, bd_dl); + if (size / 16 > dev->se_sub_dev->se_dev_attrib.max_unmap_block_desc_count) { + cmd->scsi_sense_reason = TCM_INVALID_PARAMETER_LIST; + ret = -EINVAL; + goto err; + } - ptr = &buf[offset]; - pr_debug("UNMAP: Sub: %s Using dl: %hu bd_dl: %hu size: %hu" + /* First UNMAP block descriptor starts at 8 byte offset */ + ptr = &buf[8]; + pr_debug("UNMAP: Sub: %s Using dl: %u bd_dl: %u size: %u" " ptr: %p\n", dev->transport->name, dl, bd_dl, size, ptr); - while (size) { + while (size >= 16) { lba = get_unaligned_be64(&ptr[0]); range = get_unaligned_be32(&ptr[8]); pr_debug("UNMAP: Using lba: %llu and range: %u\n", (unsigned long long)lba, range); + if (range > dev->se_sub_dev->se_dev_attrib.max_unmap_lba_count) { + cmd->scsi_sense_reason = TCM_INVALID_PARAMETER_LIST; + ret = -EINVAL; + goto err; + } + + if (lba + range > dev->transport->get_blocks(dev) + 1) { + cmd->scsi_sense_reason = TCM_ADDRESS_OUT_OF_RANGE; + ret = -EINVAL; + goto err; + } + ret = dev->transport->do_discard(dev, lba, range); if (ret < 0) { pr_err("blkdev_issue_discard() failed: %d\n", @@ -1138,7 +1174,7 @@ } err: - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); if (!ret) { task->task_scsi_status = GOOD; transport_complete_task(task, 1); @@ -1180,7 +1216,7 @@ if (num_blocks != 0) range = num_blocks; else - range = (dev->transport->get_blocks(dev) - lba); + range = (dev->transport->get_blocks(dev) - lba) + 1; pr_debug("WRITE_SAME UNMAP: LBA: %llu Range: %llu\n", (unsigned long long)lba, (unsigned long long)range); --- linux-3.2.0.orig/drivers/target/target_core_pscsi.c +++ linux-3.2.0/drivers/target/target_core_pscsi.c @@ -695,7 +695,7 @@ if (task->task_se_cmd->se_deve->lun_flags & TRANSPORT_LUNFLAGS_READ_ONLY) { - unsigned char *buf = transport_kmap_first_data_page(task->task_se_cmd); + unsigned char *buf = transport_kmap_data_sg(task->task_se_cmd); if (cdb[0] == MODE_SENSE_10) { if (!(buf[3] & 0x80)) @@ -705,7 +705,7 @@ buf[2] |= 0x80; } - transport_kunmap_first_data_page(task->task_se_cmd); + transport_kunmap_data_sg(task->task_se_cmd); } } after_mode_sense: --- linux-3.2.0.orig/drivers/target/target_core_file.c +++ linux-3.2.0/drivers/target/target_core_file.c @@ -134,21 +134,24 @@ ret = PTR_ERR(dev_p); goto fail; } -#if 0 - if (di->no_create_file) - flags = O_RDWR | O_LARGEFILE; - else - flags = O_RDWR | O_CREAT | O_LARGEFILE; -#else - flags = O_RDWR | O_CREAT | O_LARGEFILE; -#endif -/* flags |= O_DIRECT; */ /* - * If fd_buffered_io=1 has not been set explicitly (the default), - * use O_SYNC to force FILEIO writes to disk. + * Use O_DSYNC by default instead of O_SYNC to forgo syncing + * of pure timestamp updates. + */ + flags = O_RDWR | O_CREAT | O_LARGEFILE | O_DSYNC; + /* + * Optionally allow fd_buffered_io=1 to be enabled for people + * who want use the fs buffer cache as an WriteCache mechanism. + * + * This means that in event of a hard failure, there is a risk + * of silent data-loss if the SCSI client has *not* performed a + * forced unit access (FUA) write, or issued SYNCHRONIZE_CACHE + * to write-out the entire device cache. */ - if (!(fd_dev->fbd_flags & FDBD_USE_BUFFERED_IO)) - flags |= O_SYNC; + if (fd_dev->fbd_flags & FDBD_HAS_BUFFERED_IO_WCE) { + pr_debug("FILEIO: Disabling O_DSYNC, using buffered FILEIO\n"); + flags &= ~O_DSYNC; + } file = filp_open(dev_p, flags, 0600); if (IS_ERR(file)) { @@ -170,6 +173,7 @@ inode = file->f_mapping->host; if (S_ISBLK(inode->i_mode)) { struct request_queue *q; + unsigned long long dev_size; /* * Setup the local scope queue_limits from struct request_queue->limits * to pass into transport_add_device_to_core_hba() as struct se_dev_limits. @@ -184,13 +188,12 @@ * one (1) logical sector from underlying struct block_device */ fd_dev->fd_block_size = bdev_logical_block_size(inode->i_bdev); - fd_dev->fd_dev_size = (i_size_read(file->f_mapping->host) - + dev_size = (i_size_read(file->f_mapping->host) - fd_dev->fd_block_size); pr_debug("FILEIO: Using size: %llu bytes from struct" " block_device blocks: %llu logical_block_size: %d\n", - fd_dev->fd_dev_size, - div_u64(fd_dev->fd_dev_size, fd_dev->fd_block_size), + dev_size, div_u64(dev_size, fd_dev->fd_block_size), fd_dev->fd_block_size); } else { if (!(fd_dev->fbd_flags & FBDF_HAS_SIZE)) { @@ -216,6 +219,12 @@ if (!dev) goto fail; + if (fd_dev->fbd_flags & FDBD_HAS_BUFFERED_IO_WCE) { + pr_debug("FILEIO: Forcing setting of emulate_write_cache=1" + " with FDBD_HAS_BUFFERED_IO_WCE\n"); + dev->se_sub_dev->se_dev_attrib.emulate_write_cache = 1; + } + fd_dev->fd_dev_id = fd_host->fd_host_dev_id_count++; fd_dev->fd_queue_depth = dev->queue_depth; @@ -291,7 +300,7 @@ for_each_sg(task->task_sg, sg, task->task_sg_nents, i) { iov[i].iov_len = sg->length; - iov[i].iov_base = sg_virt(sg); + iov[i].iov_base = kmap(sg_page(sg)) + sg->offset; } old_fs = get_fs(); @@ -299,6 +308,8 @@ ret = vfs_readv(fd, &iov[0], task->task_sg_nents, &pos); set_fs(old_fs); + for_each_sg(task->task_sg, sg, task->task_sg_nents, i) + kunmap(sg_page(sg)); kfree(iov); /* * Return zeros and GOOD status even if the READ did not return @@ -344,7 +355,7 @@ for_each_sg(task->task_sg, sg, task->task_sg_nents, i) { iov[i].iov_len = sg->length; - iov[i].iov_base = sg_virt(sg); + iov[i].iov_base = kmap(sg_page(sg)) + sg->offset; } old_fs = get_fs(); @@ -352,6 +363,9 @@ ret = vfs_writev(fd, &iov[0], task->task_sg_nents, &pos); set_fs(old_fs); + for_each_sg(task->task_sg, sg, task->task_sg_nents, i) + kunmap(sg_page(sg)); + kfree(iov); if (ret < 0 || ret != task->task_size) { @@ -400,26 +414,6 @@ transport_complete_sync_cache(cmd, ret == 0); } -/* - * WRITE Force Unit Access (FUA) emulation on a per struct se_task - * LBA range basis.. - */ -static void fd_emulate_write_fua(struct se_cmd *cmd, struct se_task *task) -{ - struct se_device *dev = cmd->se_dev; - struct fd_dev *fd_dev = dev->dev_ptr; - loff_t start = task->task_lba * dev->se_sub_dev->se_dev_attrib.block_size; - loff_t end = start + task->task_size; - int ret; - - pr_debug("FILEIO: FUA WRITE LBA: %llu, bytes: %u\n", - task->task_lba, task->task_size); - - ret = vfs_fsync_range(fd_dev->fd_file, start, end, 1); - if (ret != 0) - pr_err("FILEIO: vfs_fsync_range() failed: %d\n", ret); -} - static int fd_do_task(struct se_task *task) { struct se_cmd *cmd = task->task_se_cmd; @@ -434,19 +428,21 @@ ret = fd_do_readv(task); } else { ret = fd_do_writev(task); - + /* + * Perform implict vfs_fsync_range() for fd_do_writev() ops + * for SCSI WRITEs with Forced Unit Access (FUA) set. + * Allow this to happen independent of WCE=0 setting. + */ if (ret > 0 && - dev->se_sub_dev->se_dev_attrib.emulate_write_cache > 0 && dev->se_sub_dev->se_dev_attrib.emulate_fua_write > 0 && (cmd->se_cmd_flags & SCF_FUA)) { - /* - * We might need to be a bit smarter here - * and return some sense data to let the initiator - * know the FUA WRITE cache sync failed..? - */ - fd_emulate_write_fua(cmd, task); - } + struct fd_dev *fd_dev = dev->dev_ptr; + loff_t start = task->task_lba * + dev->se_sub_dev->se_dev_attrib.block_size; + loff_t end = start + task->task_size; + vfs_fsync_range(fd_dev->fd_file, start, end, 1); + } } if (ret < 0) { @@ -545,7 +541,7 @@ pr_debug("FILEIO: Using buffered I/O" " operations for struct fd_dev\n"); - fd_dev->fbd_flags |= FDBD_USE_BUFFERED_IO; + fd_dev->fbd_flags |= FDBD_HAS_BUFFERED_IO_WCE; break; default: break; @@ -580,8 +576,8 @@ bl = sprintf(b + bl, "TCM FILEIO ID: %u", fd_dev->fd_dev_id); bl += sprintf(b + bl, " File: %s Size: %llu Mode: %s\n", fd_dev->fd_dev_name, fd_dev->fd_dev_size, - (fd_dev->fbd_flags & FDBD_USE_BUFFERED_IO) ? - "Buffered" : "Synchronous"); + (fd_dev->fbd_flags & FDBD_HAS_BUFFERED_IO_WCE) ? + "Buffered-WCE" : "O_DSYNC"); return bl; } @@ -606,10 +602,20 @@ static sector_t fd_get_blocks(struct se_device *dev) { struct fd_dev *fd_dev = dev->dev_ptr; - unsigned long long blocks_long = div_u64(fd_dev->fd_dev_size, - dev->se_sub_dev->se_dev_attrib.block_size); + struct file *f = fd_dev->fd_file; + struct inode *i = f->f_mapping->host; + unsigned long long dev_size; + /* + * When using a file that references an underlying struct block_device, + * ensure dev_size is always based on the current inode size in order + * to handle underlying block_device resize operations. + */ + if (S_ISBLK(i->i_mode)) + dev_size = (i_size_read(i) - fd_dev->fd_block_size); + else + dev_size = fd_dev->fd_dev_size; - return blocks_long; + return div_u64(dev_size, dev->se_sub_dev->se_dev_attrib.block_size); } static struct se_subsystem_api fileio_template = { --- linux-3.2.0.orig/drivers/target/target_core_alua.c +++ linux-3.2.0/drivers/target/target_core_alua.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -79,7 +80,7 @@ return -EINVAL; } - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); spin_lock(&su_dev->t10_alua.tg_pt_gps_lock); list_for_each_entry(tg_pt_gp, &su_dev->t10_alua.tg_pt_gps_list, @@ -164,7 +165,7 @@ buf[2] = ((rd_len >> 8) & 0xff); buf[3] = (rd_len & 0xff); - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); task->task_scsi_status = GOOD; transport_complete_task(task, 1); @@ -195,7 +196,7 @@ cmd->scsi_sense_reason = TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; return -EINVAL; } - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); /* * Determine if explict ALUA via SET_TARGET_PORT_GROUPS is allowed @@ -268,8 +269,7 @@ * changed. */ if (primary) { - tg_pt_id = ((ptr[2] << 8) & 0xff); - tg_pt_id |= (ptr[3] & 0xff); + tg_pt_id = get_unaligned_be16(ptr + 2); /* * Locate the matching target port group ID from * the global tg_pt_gp list @@ -313,8 +313,7 @@ * the Target Port in question for the the incoming * SET_TARGET_PORT_GROUPS op. */ - rtpi = ((ptr[2] << 8) & 0xff); - rtpi |= (ptr[3] & 0xff); + rtpi = get_unaligned_be16(ptr + 2); /* * Locate the matching relative target port identifer * for the struct se_device storage object. @@ -352,10 +351,12 @@ } out: - transport_kunmap_first_data_page(cmd); - task->task_scsi_status = GOOD; - transport_complete_task(task, 1); - return 0; + transport_kunmap_data_sg(cmd); + if (!rc) { + task->task_scsi_status = GOOD; + transport_complete_task(task, 1); + } + return rc; } static inline int core_alua_state_nonoptimized( @@ -392,8 +393,9 @@ case REPORT_LUNS: case RECEIVE_DIAGNOSTIC: case SEND_DIAGNOSTIC: + return 0; case MAINTENANCE_IN: - switch (cdb[1]) { + switch (cdb[1] & 0x1f) { case MI_REPORT_TARGET_PGS: return 0; default: @@ -434,8 +436,9 @@ switch (cdb[0]) { case INQUIRY: case REPORT_LUNS: + return 0; case MAINTENANCE_IN: - switch (cdb[1]) { + switch (cdb[1] & 0x1f) { case MI_REPORT_TARGET_PGS: return 0; default: @@ -474,8 +477,9 @@ switch (cdb[0]) { case INQUIRY: case REPORT_LUNS: + return 0; case MAINTENANCE_IN: - switch (cdb[1]) { + switch (cdb[1] & 0x1f) { case MI_REPORT_TARGET_PGS: return 0; default: --- linux-3.2.0.orig/drivers/target/target_core_configfs.c +++ linux-3.2.0/drivers/target/target_core_configfs.c @@ -3123,6 +3123,7 @@ GFP_KERNEL); if (!target_cg->default_groups) { pr_err("Unable to allocate target_cg->default_groups\n"); + ret = -ENOMEM; goto out_global; } @@ -3138,6 +3139,7 @@ GFP_KERNEL); if (!hba_cg->default_groups) { pr_err("Unable to allocate hba_cg->default_groups\n"); + ret = -ENOMEM; goto out_global; } config_group_init_type_name(&alua_group, @@ -3153,6 +3155,7 @@ GFP_KERNEL); if (!alua_cg->default_groups) { pr_err("Unable to allocate alua_cg->default_groups\n"); + ret = -ENOMEM; goto out_global; } @@ -3164,14 +3167,17 @@ * Add core/alua/lu_gps/default_lu_gp */ lu_gp = core_alua_allocate_lu_gp("default_lu_gp", 1); - if (IS_ERR(lu_gp)) + if (IS_ERR(lu_gp)) { + ret = -ENOMEM; goto out_global; + } lu_gp_cg = &alua_lu_gps_group; lu_gp_cg->default_groups = kzalloc(sizeof(struct config_group) * 2, GFP_KERNEL); if (!lu_gp_cg->default_groups) { pr_err("Unable to allocate lu_gp_cg->default_groups\n"); + ret = -ENOMEM; goto out_global; } @@ -3199,7 +3205,8 @@ if (ret < 0) goto out; - if (core_dev_setup_virtual_lun0() < 0) + ret = core_dev_setup_virtual_lun0(); + if (ret < 0) goto out; return 0; --- linux-3.2.0.orig/drivers/target/target_core_pr.c +++ linux-3.2.0/drivers/target/target_core_pr.c @@ -120,7 +120,7 @@ struct se_node_acl *, struct se_session *); static void core_scsi3_put_pr_reg(struct t10_pr_registration *); -static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd, int *ret) +static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd) { struct se_session *se_sess = cmd->se_sess; struct se_subsystem_dev *su_dev = cmd->se_dev->se_sub_dev; @@ -130,7 +130,7 @@ int conflict = 0; if (!crh) - return false; + return -EINVAL; pr_reg = core_scsi3_locate_pr_reg(cmd->se_dev, se_sess->se_node_acl, se_sess); @@ -158,16 +158,14 @@ */ if (pr_reg->pr_res_holder) { core_scsi3_put_pr_reg(pr_reg); - *ret = 0; - return false; + return 1; } if ((pr_reg->pr_res_type == PR_TYPE_WRITE_EXCLUSIVE_REGONLY) || (pr_reg->pr_res_type == PR_TYPE_EXCLUSIVE_ACCESS_REGONLY) || (pr_reg->pr_res_type == PR_TYPE_WRITE_EXCLUSIVE_ALLREG) || (pr_reg->pr_res_type == PR_TYPE_EXCLUSIVE_ACCESS_ALLREG)) { core_scsi3_put_pr_reg(pr_reg); - *ret = 0; - return true; + return 1; } core_scsi3_put_pr_reg(pr_reg); conflict = 1; @@ -192,10 +190,10 @@ " while active SPC-3 registrations exist," " returning RESERVATION_CONFLICT\n"); cmd->scsi_sense_reason = TCM_RESERVATION_CONFLICT; - return true; + return -EBUSY; } - return false; + return 0; } int target_scsi2_reservation_release(struct se_task *task) @@ -204,12 +202,18 @@ struct se_device *dev = cmd->se_dev; struct se_session *sess = cmd->se_sess; struct se_portal_group *tpg = sess->se_tpg; - int ret = 0; + int ret = 0, rc; if (!sess || !tpg) goto out; - if (target_check_scsi2_reservation_conflict(cmd, &ret)) + rc = target_check_scsi2_reservation_conflict(cmd); + if (rc == 1) goto out; + else if (rc < 0) { + cmd->scsi_sense_reason = TCM_RESERVATION_CONFLICT; + ret = -EINVAL; + goto out; + } ret = 0; spin_lock(&dev->dev_reservation_lock); @@ -219,6 +223,9 @@ if (dev->dev_reserved_node_acl != sess->se_node_acl) goto out_unlock; + if (dev->dev_res_bin_isid != sess->sess_bin_isid) + goto out_unlock; + dev->dev_reserved_node_acl = NULL; dev->dev_flags &= ~DF_SPC2_RESERVATIONS; if (dev->dev_flags & DF_SPC2_RESERVATIONS_WITH_ISID) { @@ -246,7 +253,7 @@ struct se_device *dev = cmd->se_dev; struct se_session *sess = cmd->se_sess; struct se_portal_group *tpg = sess->se_tpg; - int ret = 0; + int ret = 0, rc; if ((cmd->t_task_cdb[1] & 0x01) && (cmd->t_task_cdb[1] & 0x02)) { @@ -262,8 +269,14 @@ */ if (!sess || !tpg) goto out; - if (target_check_scsi2_reservation_conflict(cmd, &ret)) + rc = target_check_scsi2_reservation_conflict(cmd); + if (rc == 1) + goto out; + else if (rc < 0) { + cmd->scsi_sense_reason = TCM_RESERVATION_CONFLICT; + ret = -EINVAL; goto out; + } ret = 0; spin_lock(&dev->dev_reservation_lock); @@ -481,6 +494,7 @@ case READ_MEDIA_SERIAL_NUMBER: case REPORT_LUNS: case REQUEST_SENSE: + case PERSISTENT_RESERVE_IN: ret = 0; /*/ Allowed CDBs */ break; default: @@ -1537,7 +1551,7 @@ tidh_new->dest_local_nexus = 1; list_add_tail(&tidh_new->dest_list, &tid_dest_list); - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); /* * For a PERSISTENT RESERVE OUT specify initiator ports payload, * first extract TransportID Parameter Data Length, and make sure @@ -1788,7 +1802,7 @@ } - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); /* * Go ahead and create a registrations from tid_dest_list for the @@ -1836,7 +1850,7 @@ return 0; out: - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); /* * For the failure case, release everything from tid_dest_list * including *dest_pr_reg and the configfs dependances.. @@ -2028,7 +2042,7 @@ if (IS_ERR(file) || !file || !file->f_dentry) { pr_err("filp_open(%s) for APTPL metadata" " failed\n", path); - return (PTR_ERR(file) < 0 ? PTR_ERR(file) : -ENOENT); + return IS_ERR(file) ? PTR_ERR(file) : -ENOENT; } iov[0].iov_base = &buf[0]; @@ -3138,7 +3152,7 @@ if (!calling_it_nexus) core_scsi3_ua_allocate(pr_reg_nacl, pr_res_mapped_lun, 0x2A, - ASCQ_2AH_RESERVATIONS_PREEMPTED); + ASCQ_2AH_REGISTRATIONS_PREEMPTED); } spin_unlock(&pr_tmpl->registration_lock); /* @@ -3251,7 +3265,7 @@ * additional sense code set to REGISTRATIONS PREEMPTED; */ core_scsi3_ua_allocate(pr_reg_nacl, pr_res_mapped_lun, 0x2A, - ASCQ_2AH_RESERVATIONS_PREEMPTED); + ASCQ_2AH_REGISTRATIONS_PREEMPTED); } spin_unlock(&pr_tmpl->registration_lock); /* @@ -3428,14 +3442,14 @@ * will be moved to for the TransportID containing SCSI initiator WWN * information. */ - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); rtpi = (buf[18] & 0xff) << 8; rtpi |= buf[19] & 0xff; tid_len = (buf[20] & 0xff) << 24; tid_len |= (buf[21] & 0xff) << 16; tid_len |= (buf[22] & 0xff) << 8; tid_len |= buf[23] & 0xff; - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); buf = NULL; if ((tid_len + 24) != cmd->data_length) { @@ -3487,7 +3501,7 @@ return -EINVAL; } - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); proto_ident = (buf[24] & 0x0f); #if 0 pr_debug("SPC-3 PR REGISTER_AND_MOVE: Extracted Protocol Identifier:" @@ -3521,7 +3535,7 @@ goto out; } - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); buf = NULL; pr_debug("SPC-3 PR [%s] Extracted initiator %s identifier: %s" @@ -3786,13 +3800,13 @@ " REGISTER_AND_MOVE\n"); } - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); core_scsi3_put_pr_reg(dest_pr_reg); return 0; out: if (buf) - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); if (dest_se_deve) core_scsi3_lunacl_undepend_item(dest_se_deve); if (dest_node_acl) @@ -3839,7 +3853,7 @@ " SPC-2 reservation is held, returning" " RESERVATION_CONFLICT\n"); cmd->scsi_sense_reason = TCM_RESERVATION_CONFLICT; - ret = EINVAL; + ret = -EINVAL; goto out; } @@ -3849,7 +3863,8 @@ */ if (!cmd->se_sess) { cmd->scsi_sense_reason = TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; - return -EINVAL; + ret = -EINVAL; + goto out; } if (cmd->data_length < 24) { @@ -3866,7 +3881,7 @@ scope = (cdb[2] & 0xf0); type = (cdb[2] & 0x0f); - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); /* * From PERSISTENT_RESERVE_OUT parameter list (payload) */ @@ -3884,7 +3899,7 @@ aptpl = (buf[17] & 0x01); unreg = (buf[17] & 0x02); } - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); buf = NULL; /* @@ -3984,7 +3999,7 @@ return -EINVAL; } - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); buf[0] = ((su_dev->t10_pr.pr_generation >> 24) & 0xff); buf[1] = ((su_dev->t10_pr.pr_generation >> 16) & 0xff); buf[2] = ((su_dev->t10_pr.pr_generation >> 8) & 0xff); @@ -4018,7 +4033,7 @@ buf[6] = ((add_len >> 8) & 0xff); buf[7] = (add_len & 0xff); - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); return 0; } @@ -4044,7 +4059,7 @@ return -EINVAL; } - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); buf[0] = ((su_dev->t10_pr.pr_generation >> 24) & 0xff); buf[1] = ((su_dev->t10_pr.pr_generation >> 16) & 0xff); buf[2] = ((su_dev->t10_pr.pr_generation >> 8) & 0xff); @@ -4103,7 +4118,7 @@ err: spin_unlock(&se_dev->dev_reservation_lock); - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); return 0; } @@ -4127,7 +4142,7 @@ return -EINVAL; } - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); buf[0] = ((add_len << 8) & 0xff); buf[1] = (add_len & 0xff); @@ -4159,7 +4174,7 @@ buf[4] |= 0x02; /* PR_TYPE_WRITE_EXCLUSIVE */ buf[5] |= 0x01; /* PR_TYPE_EXCLUSIVE_ACCESS_ALLREG */ - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); return 0; } @@ -4189,7 +4204,7 @@ return -EINVAL; } - buf = transport_kmap_first_data_page(cmd); + buf = transport_kmap_data_sg(cmd); buf[0] = ((su_dev->t10_pr.pr_generation >> 24) & 0xff); buf[1] = ((su_dev->t10_pr.pr_generation >> 16) & 0xff); @@ -4310,7 +4325,7 @@ buf[6] = ((add_len >> 8) & 0xff); buf[7] = (add_len & 0xff); - transport_kunmap_first_data_page(cmd); + transport_kunmap_data_sg(cmd); return 0; } --- linux-3.2.0.orig/drivers/target/target_core_device.c +++ linux-3.2.0/drivers/target/target_core_device.c @@ -658,7 +658,9 @@ unsigned char *buf; u32 cdb_offset = 0, lun_count = 0, offset = 8, i; - buf = transport_kmap_first_data_page(se_cmd); + buf = transport_kmap_data_sg(se_cmd); + if (!buf) + return -ENOMEM; /* * If no struct se_session pointer is present, this struct se_cmd is @@ -696,12 +698,12 @@ * See SPC3 r07, page 159. */ done: - transport_kunmap_first_data_page(se_cmd); lun_count *= 8; buf[0] = ((lun_count >> 24) & 0xff); buf[1] = ((lun_count >> 16) & 0xff); buf[2] = ((lun_count >> 8) & 0xff); buf[3] = (lun_count & 0xff); + transport_kunmap_data_sg(se_cmd); se_task->task_scsi_status = GOOD; transport_complete_task(se_task, 1); @@ -833,20 +835,20 @@ u32 se_dev_align_max_sectors(u32 max_sectors, u32 block_size) { - u32 tmp, aligned_max_sectors; + u32 aligned_max_sectors; + u32 alignment; /* * Limit max_sectors to a PAGE_SIZE aligned value for modern * transport_allocate_data_tasks() operation. */ - tmp = rounddown((max_sectors * block_size), PAGE_SIZE); - aligned_max_sectors = (tmp / block_size); - if (max_sectors != aligned_max_sectors) { - printk(KERN_INFO "Rounding down aligned max_sectors from %u" - " to %u\n", max_sectors, aligned_max_sectors); - return aligned_max_sectors; - } + alignment = max(1ul, PAGE_SIZE / block_size); + aligned_max_sectors = rounddown(max_sectors, alignment); + + if (max_sectors != aligned_max_sectors) + pr_info("Rounding down aligned max_sectors from %u to %u\n", + max_sectors, aligned_max_sectors); - return max_sectors; + return aligned_max_sectors; } void se_dev_set_default_attribs( @@ -1437,24 +1439,18 @@ struct se_lun_acl *core_dev_init_initiator_node_lun_acl( struct se_portal_group *tpg, + struct se_node_acl *nacl, u32 mapped_lun, - char *initiatorname, int *ret) { struct se_lun_acl *lacl; - struct se_node_acl *nacl; - if (strlen(initiatorname) >= TRANSPORT_IQN_LEN) { + if (strlen(nacl->initiatorname) >= TRANSPORT_IQN_LEN) { pr_err("%s InitiatorName exceeds maximum size.\n", tpg->se_tpg_tfo->get_fabric_name()); *ret = -EOVERFLOW; return NULL; } - nacl = core_tpg_get_initiator_node_acl(tpg, initiatorname); - if (!nacl) { - *ret = -EINVAL; - return NULL; - } lacl = kzalloc(sizeof(struct se_lun_acl), GFP_KERNEL); if (!lacl) { pr_err("Unable to allocate memory for struct se_lun_acl.\n"); @@ -1465,7 +1461,8 @@ INIT_LIST_HEAD(&lacl->lacl_list); lacl->mapped_lun = mapped_lun; lacl->se_lun_nacl = nacl; - snprintf(lacl->initiatorname, TRANSPORT_IQN_LEN, "%s", initiatorname); + snprintf(lacl->initiatorname, TRANSPORT_IQN_LEN, "%s", + nacl->initiatorname); return lacl; } --- linux-3.2.0.orig/drivers/target/target_core_tpg.c +++ linux-3.2.0/drivers/target/target_core_tpg.c @@ -63,7 +63,6 @@ int i; struct se_dev_entry *deve; struct se_lun *lun; - struct se_lun_acl *acl, *acl_tmp; spin_lock_irq(&nacl->device_list_lock); for (i = 0; i < TRANSPORT_MAX_LUNS_PER_TPG; i++) { @@ -84,28 +83,7 @@ core_update_device_list_for_node(lun, NULL, deve->mapped_lun, TRANSPORT_LUNFLAGS_NO_ACCESS, nacl, tpg, 0); - spin_lock(&lun->lun_acl_lock); - list_for_each_entry_safe(acl, acl_tmp, - &lun->lun_acl_list, lacl_list) { - if (!strcmp(acl->initiatorname, nacl->initiatorname) && - (acl->mapped_lun == deve->mapped_lun)) - break; - } - - if (!acl) { - pr_err("Unable to locate struct se_lun_acl for %s," - " mapped_lun: %u\n", nacl->initiatorname, - deve->mapped_lun); - spin_unlock(&lun->lun_acl_lock); - spin_lock_irq(&nacl->device_list_lock); - continue; - } - - list_del(&acl->lacl_list); - spin_unlock(&lun->lun_acl_lock); - spin_lock_irq(&nacl->device_list_lock); - kfree(acl); } spin_unlock_irq(&nacl->device_list_lock); } @@ -139,16 +117,10 @@ struct se_node_acl *acl; spin_lock_irq(&tpg->acl_node_lock); - list_for_each_entry(acl, &tpg->acl_node_list, acl_list) { - if (!strcmp(acl->initiatorname, initiatorname) && - !acl->dynamic_node_acl) { - spin_unlock_irq(&tpg->acl_node_lock); - return acl; - } - } + acl = __core_tpg_get_initiator_node_acl(tpg, initiatorname); spin_unlock_irq(&tpg->acl_node_lock); - return NULL; + return acl; } /* core_tpg_add_node_to_devs(): --- linux-3.2.0.orig/drivers/target/target_core_transport.c +++ linux-3.2.0/drivers/target/target_core_transport.c @@ -1445,6 +1445,7 @@ case VERIFY_16: /* SBC - VRProtect */ case WRITE_VERIFY: /* SBC - VRProtect */ case WRITE_VERIFY_12: /* SBC - VRProtect */ + case MAINTENANCE_IN: /* SPC - Parameter Data Format for SA RTPG */ break; default: cdb[1] &= 0x1f; /* clear logical unit number */ @@ -1820,6 +1821,7 @@ case TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE: case TCM_UNKNOWN_MODE_PAGE: case TCM_WRITE_PROTECTED: + case TCM_ADDRESS_OUT_OF_RANGE: case TCM_CHECK_CONDITION_ABORT_CMD: case TCM_CHECK_CONDITION_UNIT_ATTENTION: case TCM_CHECK_CONDITION_NOT_READY: @@ -2507,6 +2509,7 @@ cmd, cdb, pr_reg_type) != 0) { cmd->se_cmd_flags |= SCF_SCSI_CDB_EXCEPTION; cmd->se_cmd_flags |= SCF_SCSI_RESERVATION_CONFLICT; + cmd->scsi_status = SAM_STAT_RESERVATION_CONFLICT; cmd->scsi_sense_reason = TCM_RESERVATION_CONFLICT; return -EBUSY; } @@ -2665,7 +2668,7 @@ cmd->se_cmd_flags |= SCF_SCSI_CONTROL_SG_IO_CDB; if (target_check_write_same_discard(&cdb[10], dev) < 0) - goto out_invalid_cdb_field; + goto out_unsupported_cdb; if (!passthrough) cmd->execute_task = target_emulate_write_same; break; @@ -2681,7 +2684,7 @@ /* * Check for emulated MI_REPORT_TARGET_PGS. */ - if (cdb[1] == MI_REPORT_TARGET_PGS && + if ((cdb[1] & 0x1f) == MI_REPORT_TARGET_PGS && su_dev->t10_alua.alua_type == SPC3_ALUA_EMULATED) { cmd->execute_task = target_emulate_report_target_port_groups; @@ -2948,7 +2951,7 @@ cmd->se_cmd_flags |= SCF_SCSI_CONTROL_SG_IO_CDB; if (target_check_write_same_discard(&cdb[1], dev) < 0) - goto out_invalid_cdb_field; + goto out_unsupported_cdb; if (!passthrough) cmd->execute_task = target_emulate_write_same; break; @@ -2971,7 +2974,7 @@ * of byte 1 bit 3 UNMAP instead of original reserved field */ if (target_check_write_same_discard(&cdb[1], dev) < 0) - goto out_invalid_cdb_field; + goto out_unsupported_cdb; if (!passthrough) cmd->execute_task = target_emulate_write_same; break; @@ -3037,15 +3040,20 @@ /* Returns CHECK_CONDITION + INVALID_CDB_FIELD */ goto out_invalid_cdb_field; } - + /* + * For the overflow case keep the existing fabric provided + * ->data_length. Otherwise for the underflow case, reset + * ->data_length to the smaller SCSI expected data transfer + * length. + */ if (size > cmd->data_length) { cmd->se_cmd_flags |= SCF_OVERFLOW_BIT; cmd->residual_count = (size - cmd->data_length); } else { cmd->se_cmd_flags |= SCF_UNDERFLOW_BIT; cmd->residual_count = (cmd->data_length - size); + cmd->data_length = size; } - cmd->data_length = size; } /* reject any command that we don't have a handler for */ @@ -3053,11 +3061,6 @@ (cmd->se_cmd_flags & SCF_SCSI_DATA_SG_IO_CDB))) goto out_unsupported_cdb; - /* Let's limit control cdbs to a page, for simplicity's sake. */ - if ((cmd->se_cmd_flags & SCF_SCSI_CONTROL_SG_IO_CDB) && - size > PAGE_SIZE) - goto out_invalid_cdb_field; - transport_set_supported_SAM_opcode(cmd); return ret; @@ -3435,9 +3438,11 @@ } EXPORT_SYMBOL(transport_generic_map_mem_to_cmd); -void *transport_kmap_first_data_page(struct se_cmd *cmd) +void *transport_kmap_data_sg(struct se_cmd *cmd) { struct scatterlist *sg = cmd->t_data_sg; + struct page **pages; + int i; BUG_ON(!sg); /* @@ -3445,15 +3450,41 @@ * tcm_loop who may be using a contig buffer from the SCSI midlayer for * control CDBs passed as SGLs via transport_generic_map_mem_to_cmd() */ - return kmap(sg_page(sg)) + sg->offset; + if (!cmd->t_data_nents) + return NULL; + else if (cmd->t_data_nents == 1) + return kmap(sg_page(sg)) + sg->offset; + + /* >1 page. use vmap */ + pages = kmalloc(sizeof(*pages) * cmd->t_data_nents, GFP_KERNEL); + if (!pages) + return NULL; + + /* convert sg[] to pages[] */ + for_each_sg(cmd->t_data_sg, sg, cmd->t_data_nents, i) { + pages[i] = sg_page(sg); + } + + cmd->t_data_vmap = vmap(pages, cmd->t_data_nents, VM_MAP, PAGE_KERNEL); + kfree(pages); + if (!cmd->t_data_vmap) + return NULL; + + return cmd->t_data_vmap + cmd->t_data_sg[0].offset; } -EXPORT_SYMBOL(transport_kmap_first_data_page); +EXPORT_SYMBOL(transport_kmap_data_sg); -void transport_kunmap_first_data_page(struct se_cmd *cmd) +void transport_kunmap_data_sg(struct se_cmd *cmd) { - kunmap(sg_page(cmd->t_data_sg)); + if (!cmd->t_data_nents) + return; + else if (cmd->t_data_nents == 1) + kunmap(sg_page(cmd->t_data_sg)); + + vunmap(cmd->t_data_vmap); + cmd->t_data_vmap = NULL; } -EXPORT_SYMBOL(transport_kunmap_first_data_page); +EXPORT_SYMBOL(transport_kunmap_data_sg); static int transport_generic_get_mem(struct se_cmd *cmd) @@ -3484,9 +3515,9 @@ return 0; out: - while (i >= 0) { - __free_page(sg_page(&cmd->t_data_sg[i])); + while (i > 0) { i--; + __free_page(sg_page(&cmd->t_data_sg[i])); } kfree(cmd->t_data_sg); cmd->t_data_sg = NULL; @@ -3701,6 +3732,11 @@ struct se_task *task; unsigned long flags; + /* Workaround for handling zero-length control CDBs */ + if ((cmd->se_cmd_flags & SCF_SCSI_CONTROL_SG_IO_CDB) && + !cmd->data_length) + return 0; + task = transport_generic_get_task(cmd, cmd->data_direction); if (!task) return -ENOMEM; @@ -3772,6 +3808,14 @@ else if (!task_cdbs && (cmd->se_cmd_flags & SCF_SCSI_DATA_SG_IO_CDB)) { cmd->t_state = TRANSPORT_COMPLETE; atomic_set(&cmd->t_transport_active, 1); + + if (cmd->t_task_cdb[0] == REQUEST_SENSE) { + u8 ua_asc = 0, ua_ascq = 0; + + core_scsi3_ua_clear_for_request_sense(cmd, + &ua_asc, &ua_ascq); + } + INIT_WORK(&cmd->work, target_complete_ok_work); queue_work(target_completion_wq, &cmd->work); return 0; @@ -4353,6 +4397,7 @@ case TCM_NON_EXISTENT_LUN: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* ILLEGAL REQUEST */ buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST; /* LOGICAL UNIT NOT SUPPORTED */ @@ -4362,6 +4407,7 @@ case TCM_SECTOR_COUNT_TOO_MANY: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* ILLEGAL REQUEST */ buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST; /* INVALID COMMAND OPERATION CODE */ @@ -4370,6 +4416,7 @@ case TCM_UNKNOWN_MODE_PAGE: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* ILLEGAL REQUEST */ buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST; /* INVALID FIELD IN CDB */ @@ -4378,6 +4425,7 @@ case TCM_CHECK_CONDITION_ABORT_CMD: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* ABORTED COMMAND */ buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND; /* BUS DEVICE RESET FUNCTION OCCURRED */ @@ -4387,6 +4435,7 @@ case TCM_INCORRECT_AMOUNT_OF_DATA: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* ABORTED COMMAND */ buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND; /* WRITE ERROR */ @@ -4397,22 +4446,25 @@ case TCM_INVALID_CDB_FIELD: /* CURRENT ERROR */ buffer[offset] = 0x70; - /* ABORTED COMMAND */ - buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; + /* ILLEGAL REQUEST */ + buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST; /* INVALID FIELD IN CDB */ buffer[offset+SPC_ASC_KEY_OFFSET] = 0x24; break; case TCM_INVALID_PARAMETER_LIST: /* CURRENT ERROR */ buffer[offset] = 0x70; - /* ABORTED COMMAND */ - buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; + /* ILLEGAL REQUEST */ + buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST; /* INVALID FIELD IN PARAMETER LIST */ buffer[offset+SPC_ASC_KEY_OFFSET] = 0x26; break; case TCM_UNEXPECTED_UNSOLICITED_DATA: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* ABORTED COMMAND */ buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND; /* WRITE ERROR */ @@ -4423,6 +4475,7 @@ case TCM_SERVICE_CRC_ERROR: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* ABORTED COMMAND */ buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND; /* PROTOCOL SERVICE CRC ERROR */ @@ -4433,6 +4486,7 @@ case TCM_SNACK_REJECTED: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* ABORTED COMMAND */ buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND; /* READ ERROR */ @@ -4443,14 +4497,25 @@ case TCM_WRITE_PROTECTED: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* DATA PROTECT */ buffer[offset+SPC_SENSE_KEY_OFFSET] = DATA_PROTECT; /* WRITE PROTECTED */ buffer[offset+SPC_ASC_KEY_OFFSET] = 0x27; break; + case TCM_ADDRESS_OUT_OF_RANGE: + /* CURRENT ERROR */ + buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; + /* ILLEGAL REQUEST */ + buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST; + /* LOGICAL BLOCK ADDRESS OUT OF RANGE */ + buffer[offset+SPC_ASC_KEY_OFFSET] = 0x21; + break; case TCM_CHECK_CONDITION_UNIT_ATTENTION: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* UNIT ATTENTION */ buffer[offset+SPC_SENSE_KEY_OFFSET] = UNIT_ATTENTION; core_scsi3_ua_for_check_condition(cmd, &asc, &ascq); @@ -4460,6 +4525,7 @@ case TCM_CHECK_CONDITION_NOT_READY: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* Not Ready */ buffer[offset+SPC_SENSE_KEY_OFFSET] = NOT_READY; transport_get_sense_codes(cmd, &asc, &ascq); @@ -4470,10 +4536,11 @@ default: /* CURRENT ERROR */ buffer[offset] = 0x70; + buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10; /* ILLEGAL REQUEST */ buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST; /* LOGICAL UNIT COMMUNICATION FAILURE */ - buffer[offset+SPC_ASC_KEY_OFFSET] = 0x80; + buffer[offset+SPC_ASC_KEY_OFFSET] = 0x08; break; } /* --- linux-3.2.0.orig/drivers/target/target_core_fabric_configfs.c +++ linux-3.2.0/drivers/target/target_core_fabric_configfs.c @@ -354,9 +354,17 @@ ret = -EINVAL; goto out; } + if (mapped_lun > (TRANSPORT_MAX_LUNS_PER_TPG-1)) { + pr_err("Mapped LUN: %lu exceeds TRANSPORT_MAX_LUNS_PER_TPG" + "-1: %u for Target Portal Group: %u\n", mapped_lun, + TRANSPORT_MAX_LUNS_PER_TPG-1, + se_tpg->se_tpg_tfo->tpg_get_tag(se_tpg)); + ret = -EINVAL; + goto out; + } - lacl = core_dev_init_initiator_node_lun_acl(se_tpg, mapped_lun, - config_item_name(acl_ci), &ret); + lacl = core_dev_init_initiator_node_lun_acl(se_tpg, se_nacl, + mapped_lun, &ret); if (!lacl) { ret = -EINVAL; goto out; --- linux-3.2.0.orig/drivers/target/loopback/tcm_loop.c +++ linux-3.2.0/drivers/target/loopback/tcm_loop.c @@ -866,6 +866,9 @@ sc->result = SAM_STAT_GOOD; set_host_byte(sc, DID_OK); + if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) || + (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT)) + scsi_set_resid(sc, se_cmd->residual_count); sc->scsi_done(sc); return 0; } @@ -891,6 +894,9 @@ sc->result = se_cmd->scsi_status; set_host_byte(sc, DID_OK); + if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) || + (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT)) + scsi_set_resid(sc, se_cmd->residual_count); sc->scsi_done(sc); return 0; } --- linux-3.2.0.orig/drivers/target/tcm_fc/tfc_cmd.c +++ linux-3.2.0/drivers/target/tcm_fc/tfc_cmd.c @@ -130,6 +130,8 @@ struct fc_exch *ep; size_t len; + if (cmd->aborted) + return 0; ft_dump_cmd(cmd, __func__); ep = fc_seq_exch(cmd->seq); lport = ep->lp; @@ -196,6 +198,8 @@ ft_dump_cmd(cmd, __func__); + if (cmd->aborted) + return 0; ep = fc_seq_exch(cmd->seq); lport = ep->lp; fp = fc_frame_alloc(lport, sizeof(*txrdy)); @@ -245,6 +249,8 @@ { struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd); + if (cmd->aborted) + return ~0; return fc_seq_exch(cmd->seq)->rxid; } @@ -266,10 +272,10 @@ struct ft_cmd *cmd = arg; struct fc_frame_header *fh; - if (IS_ERR(fp)) { + if (unlikely(IS_ERR(fp))) { /* XXX need to find cmd if queued */ cmd->seq = NULL; - transport_generic_free_cmd(&cmd->se_cmd, 0); + cmd->aborted = true; return; } @@ -329,10 +335,12 @@ fc_fill_reply_hdr(fp, rx_fp, FC_RCTL_DD_CMD_STATUS, 0); sp = fr_seq(fp); - if (sp) + if (sp) { lport->tt.seq_send(lport, sp, fp); - else + lport->tt.exch_done(sp); + } else { lport->tt.frame_send(lport, fp); + } } /* @@ -445,6 +453,8 @@ struct se_tmr_req *tmr = se_cmd->se_tmr_req; enum fcp_resp_rsp_codes code; + if (cmd->aborted) + return 0; switch (tmr->response) { case TMR_FUNCTION_COMPLETE: code = FCP_TMF_CMPL; --- linux-3.2.0.orig/drivers/target/tcm_fc/tcm_fc.h +++ linux-3.2.0/drivers/target/tcm_fc/tcm_fc.h @@ -124,6 +124,7 @@ /* Local sense buffer */ unsigned char ft_sense_buffer[TRANSPORT_SENSE_BUFFER]; u32 was_ddp_setup:1; /* Set only if ddp is setup */ + u32 aborted:1; /* Set if aborted by reset or timeout */ struct scatterlist *sg; /* Set only if DDP is setup */ u32 sg_cnt; /* No. of item in scatterlist */ }; --- linux-3.2.0.orig/drivers/target/tcm_fc/tfc_io.c +++ linux-3.2.0/drivers/target/tcm_fc/tfc_io.c @@ -84,6 +84,8 @@ void *from; void *to = NULL; + if (cmd->aborted) + return 0; ep = fc_seq_exch(cmd->seq); lport = ep->lp; cmd->seq = lport->tt.seq_start_next(cmd->seq); --- linux-3.2.0.orig/drivers/target/tcm_fc/tfc_sess.c +++ linux-3.2.0/drivers/target/tcm_fc/tfc_sess.c @@ -61,7 +61,8 @@ struct ft_tport *tport; int i; - tport = rcu_dereference(lport->prov[FC_TYPE_FCP]); + tport = rcu_dereference_protected(lport->prov[FC_TYPE_FCP], + lockdep_is_held(&ft_lport_lock)); if (tport && tport->tpg) return tport; @@ -389,11 +390,11 @@ tport = ft_tport_create(rdata->local_port); if (!tport) - return 0; /* not a target for this local port */ + goto not_target; /* not a target for this local port */ acl = ft_acl_get(tport->tpg, rdata); if (!acl) - return 0; + goto not_target; /* no target for this remote */ if (!rspp) goto fill; @@ -430,12 +431,18 @@ /* * OR in our service parameters with other provider (initiator), if any. - * TBD XXX - indicate RETRY capability? */ fill: fcp_parm = ntohl(spp->spp_params); + fcp_parm &= ~FCP_SPPF_RETRY; spp->spp_params = htonl(fcp_parm | FCP_SPPF_TARG_FCN); return FC_SPP_RESP_ACK; + +not_target: + fcp_parm = ntohl(spp->spp_params); + fcp_parm &= ~FCP_SPPF_TARG_FCN; + spp->spp_params = htonl(fcp_parm); + return 0; } /** @@ -464,7 +471,6 @@ { struct ft_sess *sess = container_of(rcu, struct ft_sess, rcu); - transport_deregister_session(sess->se_sess); kfree(sess); } @@ -472,6 +478,7 @@ { struct ft_sess *sess = container_of(kref, struct ft_sess, kref); + transport_deregister_session(sess->se_sess); call_rcu(&sess->rcu, ft_sess_rcu_free); } --- linux-3.2.0.orig/drivers/target/tcm_fc/tfc_conf.c +++ linux-3.2.0/drivers/target/tcm_fc/tfc_conf.c @@ -304,6 +304,7 @@ { struct ft_lport_acl *lacl; struct ft_tpg *tpg; + struct workqueue_struct *wq; unsigned long index; int ret; @@ -325,18 +326,20 @@ tpg->lport_acl = lacl; INIT_LIST_HEAD(&tpg->lun_list); - ret = core_tpg_register(&ft_configfs->tf_ops, wwn, &tpg->se_tpg, - tpg, TRANSPORT_TPG_TYPE_NORMAL); - if (ret < 0) { + wq = alloc_workqueue("tcm_fc", 0, 1); + if (!wq) { kfree(tpg); return NULL; } - tpg->workqueue = alloc_workqueue("tcm_fc", 0, 1); - if (!tpg->workqueue) { + ret = core_tpg_register(&ft_configfs->tf_ops, wwn, &tpg->se_tpg, + tpg, TRANSPORT_TPG_TYPE_NORMAL); + if (ret < 0) { + destroy_workqueue(wq); kfree(tpg); return NULL; } + tpg->workqueue = wq; mutex_lock(&ft_lport_lock); list_add_tail(&tpg->list, &lacl->tpg_list); --- linux-3.2.0.orig/drivers/target/iscsi/iscsi_target_erl1.c +++ linux-3.2.0/drivers/target/iscsi/iscsi_target_erl1.c @@ -824,7 +824,7 @@ /* * CmdSN is greater than the tail of the list. */ - if (ooo_tail->cmdsn < ooo_cmdsn->cmdsn) + if (iscsi_sna_lt(ooo_tail->cmdsn, ooo_cmdsn->cmdsn)) list_add_tail(&ooo_cmdsn->ooo_list, &sess->sess_ooo_cmdsn_list); else { @@ -834,11 +834,12 @@ */ list_for_each_entry(ooo_tmp, &sess->sess_ooo_cmdsn_list, ooo_list) { - if (ooo_tmp->cmdsn < ooo_cmdsn->cmdsn) + if (iscsi_sna_lt(ooo_tmp->cmdsn, ooo_cmdsn->cmdsn)) continue; + /* Insert before this entry */ list_add(&ooo_cmdsn->ooo_list, - &ooo_tmp->ooo_list); + ooo_tmp->ooo_list.prev); break; } } --- linux-3.2.0.orig/drivers/target/iscsi/iscsi_target_login.c +++ linux-3.2.0/drivers/target/iscsi/iscsi_target_login.c @@ -44,6 +44,7 @@ static int iscsi_login_init_conn(struct iscsi_conn *conn) { + init_waitqueue_head(&conn->queues_wq); INIT_LIST_HEAD(&conn->conn_list); INIT_LIST_HEAD(&conn->conn_cmd_list); INIT_LIST_HEAD(&conn->immed_queue_list); @@ -129,13 +130,13 @@ initiatorname_param = iscsi_find_param_from_key( INITIATORNAME, conn->param_list); - if (!initiatorname_param) - return -1; - sessiontype_param = iscsi_find_param_from_key( SESSIONTYPE, conn->param_list); - if (!sessiontype_param) + if (!initiatorname_param || !sessiontype_param) { + iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR, + ISCSI_LOGIN_STATUS_MISSING_FIELDS); return -1; + } sessiontype = (strncmp(sessiontype_param->value, NORMAL, 6)) ? 1 : 0; @@ -616,8 +617,8 @@ } pr_debug("iSCSI Login successful on CID: %hu from %s to" - " %s:%hu,%hu\n", conn->cid, conn->login_ip, np->np_ip, - np->np_port, tpg->tpgt); + " %s:%hu,%hu\n", conn->cid, conn->login_ip, + conn->local_ip, conn->local_port, tpg->tpgt); list_add_tail(&conn->conn_list, &sess->sess_conn_list); atomic_inc(&sess->nconn); @@ -659,7 +660,8 @@ sess->session_state = TARG_SESS_STATE_LOGGED_IN; pr_debug("iSCSI Login successful on CID: %hu from %s to %s:%hu,%hu\n", - conn->cid, conn->login_ip, np->np_ip, np->np_port, tpg->tpgt); + conn->cid, conn->login_ip, conn->local_ip, conn->local_port, + tpg->tpgt); spin_lock_bh(&sess->conn_lock); list_add_tail(&conn->conn_list, &sess->sess_conn_list); @@ -792,22 +794,6 @@ } np->np_socket = sock; /* - * The SCTP stack needs struct socket->file. - */ - if ((np->np_network_transport == ISCSI_SCTP_TCP) || - (np->np_network_transport == ISCSI_SCTP_UDP)) { - if (!sock->file) { - sock->file = kzalloc(sizeof(struct file), GFP_KERNEL); - if (!sock->file) { - pr_err("Unable to allocate struct" - " file for SCTP\n"); - ret = -ENOMEM; - goto fail; - } - np->np_flags |= NPF_SCTP_STRUCT_FILE; - } - } - /* * Setup the np->np_sockaddr from the passed sockaddr setup * in iscsi_target_configfs.c code.. */ @@ -856,21 +842,15 @@ fail: np->np_socket = NULL; - if (sock) { - if (np->np_flags & NPF_SCTP_STRUCT_FILE) { - kfree(sock->file); - sock->file = NULL; - } - + if (sock) sock_release(sock); - } return ret; } static int __iscsi_target_login_thread(struct iscsi_np *np) { u8 buffer[ISCSI_HDR_LEN], iscsi_opcode, zero_tsih = 0; - int err, ret = 0, ip_proto, sock_type, set_sctp_conn_flag, stop; + int err, ret = 0, ip_proto, sock_type, stop; struct iscsi_conn *conn = NULL; struct iscsi_login *login; struct iscsi_portal_group *tpg = NULL; @@ -881,7 +861,6 @@ struct sockaddr_in6 sock_in6; flush_signals(current); - set_sctp_conn_flag = 0; sock = np->np_socket; ip_proto = np->np_ip_proto; sock_type = np->np_sock_type; @@ -906,35 +885,12 @@ spin_unlock_bh(&np->np_thread_lock); goto out; } - /* - * The SCTP stack needs struct socket->file. - */ - if ((np->np_network_transport == ISCSI_SCTP_TCP) || - (np->np_network_transport == ISCSI_SCTP_UDP)) { - if (!new_sock->file) { - new_sock->file = kzalloc( - sizeof(struct file), GFP_KERNEL); - if (!new_sock->file) { - pr_err("Unable to allocate struct" - " file for SCTP\n"); - sock_release(new_sock); - /* Get another socket */ - return 1; - } - set_sctp_conn_flag = 1; - } - } - iscsi_start_login_thread_timer(np); conn = kzalloc(sizeof(struct iscsi_conn), GFP_KERNEL); if (!conn) { pr_err("Could not allocate memory for" " new connection\n"); - if (set_sctp_conn_flag) { - kfree(new_sock->file); - new_sock->file = NULL; - } sock_release(new_sock); /* Get another socket */ return 1; @@ -944,9 +900,6 @@ conn->conn_state = TARG_CONN_STATE_FREE; conn->sock = new_sock; - if (set_sctp_conn_flag) - conn->conn_flags |= CONNFLAG_SCTP_STRUCT_FILE; - pr_debug("Moving to TARG_CONN_STATE_XPT_UP.\n"); conn->conn_state = TARG_CONN_STATE_XPT_UP; @@ -1019,6 +972,18 @@ snprintf(conn->login_ip, sizeof(conn->login_ip), "%pI6c", &sock_in6.sin6_addr.in6_u); conn->login_port = ntohs(sock_in6.sin6_port); + + if (conn->sock->ops->getname(conn->sock, + (struct sockaddr *)&sock_in6, &err, 0) < 0) { + pr_err("sock_ops->getname() failed.\n"); + iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR, + ISCSI_LOGIN_STATUS_TARGET_ERROR); + goto new_sess_out; + } + snprintf(conn->local_ip, sizeof(conn->local_ip), "%pI6c", + &sock_in6.sin6_addr.in6_u); + conn->local_port = ntohs(sock_in6.sin6_port); + } else { memset(&sock_in, 0, sizeof(struct sockaddr_in)); @@ -1031,6 +996,16 @@ } sprintf(conn->login_ip, "%pI4", &sock_in.sin_addr.s_addr); conn->login_port = ntohs(sock_in.sin_port); + + if (conn->sock->ops->getname(conn->sock, + (struct sockaddr *)&sock_in, &err, 0) < 0) { + pr_err("sock_ops->getname() failed.\n"); + iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR, + ISCSI_LOGIN_STATUS_TARGET_ERROR); + goto new_sess_out; + } + sprintf(conn->local_ip, "%pI4", &sock_in.sin_addr.s_addr); + conn->local_port = ntohs(sock_in.sin_port); } conn->network_transport = np->np_network_transport; @@ -1038,7 +1013,7 @@ pr_debug("Received iSCSI login request from %s on %s Network" " Portal %s:%hu\n", conn->login_ip, (conn->network_transport == ISCSI_TCP) ? "TCP" : "SCTP", - np->np_ip, np->np_port); + conn->local_ip, conn->local_port); pr_debug("Moving to TARG_CONN_STATE_IN_LOGIN.\n"); conn->conn_state = TARG_CONN_STATE_IN_LOGIN; @@ -1172,13 +1147,8 @@ iscsi_release_param_list(conn->param_list); conn->param_list = NULL; } - if (conn->sock) { - if (conn->conn_flags & CONNFLAG_SCTP_STRUCT_FILE) { - kfree(conn->sock->file); - conn->sock->file = NULL; - } + if (conn->sock) sock_release(conn->sock); - } kfree(conn); if (tpg) { --- linux-3.2.0.orig/drivers/target/iscsi/iscsi_target_nego.c +++ linux-3.2.0/drivers/target/iscsi/iscsi_target_nego.c @@ -632,8 +632,11 @@ login->req_buf, payload_length, conn->param_list); - if (ret < 0) + if (ret < 0) { + iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR, + ISCSI_LOGIN_STATUS_INIT_ERR); return -1; + } if (login->first_request) if (iscsi_target_check_first_request(conn, login) < 0) @@ -648,8 +651,11 @@ login->rsp_buf, &login->rsp_length, conn->param_list); - if (ret < 0) + if (ret < 0) { + iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR, + ISCSI_LOGIN_STATUS_INIT_ERR); return -1; + } if (!login->auth_complete && ISCSI_TPG_ATTRIB(ISCSI_TPG_C(conn))->authentication) { --- linux-3.2.0.orig/drivers/target/iscsi/iscsi_target_configfs.c +++ linux-3.2.0/drivers/target/iscsi/iscsi_target_configfs.c @@ -419,7 +419,7 @@ if (!capable(CAP_SYS_ADMIN)) \ return -EPERM; \ \ - snprintf(auth->name, PAGE_SIZE, "%s", page); \ + snprintf(auth->name, sizeof(auth->name), "%s", page); \ if (!strncmp("NULL", auth->name, 4)) \ auth->naf_flags &= ~flags; \ else \ @@ -816,9 +816,6 @@ if (!se_nacl_new) return ERR_PTR(-ENOMEM); - acl = container_of(se_nacl_new, struct iscsi_node_acl, - se_node_acl); - cmdsn_depth = ISCSI_TPG_ATTRIB(tpg)->default_cmdsn_depth; /* * se_nacl_new may be released by core_tpg_add_initiator_node_acl() @@ -829,7 +826,8 @@ if (IS_ERR(se_nacl)) return se_nacl; - stats_cg = &acl->se_node_acl.acl_fabric_stat_group; + acl = container_of(se_nacl, struct iscsi_node_acl, se_node_acl); + stats_cg = &se_nacl->acl_fabric_stat_group; stats_cg->default_groups = kzalloc(sizeof(struct config_group) * 2, GFP_KERNEL); --- linux-3.2.0.orig/drivers/target/iscsi/iscsi_target_util.h +++ linux-3.2.0/drivers/target/iscsi/iscsi_target_util.h @@ -28,6 +28,7 @@ extern void iscsit_add_cmd_to_response_queue(struct iscsi_cmd *, struct iscsi_conn *, u8); extern struct iscsi_queue_req *iscsit_get_cmd_from_response_queue(struct iscsi_conn *); extern void iscsit_remove_cmd_from_tx_queues(struct iscsi_cmd *, struct iscsi_conn *); +extern bool iscsit_conn_all_queues_empty(struct iscsi_conn *); extern void iscsit_free_queue_reqs_for_conn(struct iscsi_conn *); extern void iscsit_release_cmd(struct iscsi_cmd *); extern void iscsit_free_cmd(struct iscsi_cmd *); --- linux-3.2.0.orig/drivers/target/iscsi/iscsi_target_tpg.c +++ linux-3.2.0/drivers/target/iscsi/iscsi_target_tpg.c @@ -674,6 +674,12 @@ pr_debug("iSCSI_TPG[%hu] - Generate Initiator Portal Group ACLs: %s\n", tpg->tpgt, (a->generate_node_acls) ? "Enabled" : "Disabled"); + if (flag == 1 && a->cache_dynamic_acls == 0) { + pr_debug("Explicitly setting cache_dynamic_acls=1 when " + "generate_node_acls=1\n"); + a->cache_dynamic_acls = 1; + } + return 0; } @@ -713,6 +719,12 @@ return -EINVAL; } + if (a->generate_node_acls == 1 && flag == 0) { + pr_debug("Skipping cache_dynamic_acls=0 when" + " generate_node_acls=1\n"); + return 0; + } + a->cache_dynamic_acls = flag; pr_debug("iSCSI_TPG[%hu] - Cache Dynamic Initiator Portal Group" " ACLs %s\n", tpg->tpgt, (a->cache_dynamic_acls) ? --- linux-3.2.0.orig/drivers/target/iscsi/iscsi_target_core.h +++ linux-3.2.0/drivers/target/iscsi/iscsi_target_core.h @@ -25,10 +25,10 @@ #define NA_DATAOUT_TIMEOUT_RETRIES 5 #define NA_DATAOUT_TIMEOUT_RETRIES_MAX 15 #define NA_DATAOUT_TIMEOUT_RETRIES_MIN 1 -#define NA_NOPIN_TIMEOUT 5 +#define NA_NOPIN_TIMEOUT 15 #define NA_NOPIN_TIMEOUT_MAX 60 #define NA_NOPIN_TIMEOUT_MIN 3 -#define NA_NOPIN_RESPONSE_TIMEOUT 5 +#define NA_NOPIN_RESPONSE_TIMEOUT 30 #define NA_NOPIN_RESPONSE_TIMEOUT_MAX 60 #define NA_NOPIN_RESPONSE_TIMEOUT_MIN 3 #define NA_RANDOM_DATAIN_PDU_OFFSETS 0 @@ -224,7 +224,6 @@ /* Used for struct iscsi_np->np_flags */ enum np_flags_table { NPF_IP_NETWORK = 0x00, - NPF_SCTP_STRUCT_FILE = 0x01 /* Bugfix */ }; /* Used for struct iscsi_np->np_thread_state */ @@ -492,6 +491,7 @@ }; struct iscsi_conn { + wait_queue_head_t queues_wq; /* Authentication Successful for this connection */ u8 auth_complete; /* State connection is currently in */ @@ -508,9 +508,9 @@ u16 cid; /* Remote TCP Port */ u16 login_port; + u16 local_port; int net_size; u32 auth_id; -#define CONNFLAG_SCTP_STRUCT_FILE 0x01 u32 conn_flags; /* Used for iscsi_tx_login_rsp() */ u32 login_itt; @@ -527,6 +527,7 @@ unsigned char bad_hdr[ISCSI_HDR_LEN]; #define IPV6_ADDRESS_SPACE 48 unsigned char login_ip[IPV6_ADDRESS_SPACE]; + unsigned char local_ip[IPV6_ADDRESS_SPACE]; int conn_usage_count; int conn_waiting_on_uc; atomic_t check_immediate_queue; --- linux-3.2.0.orig/drivers/target/iscsi/iscsi_target_parameters.c +++ linux-3.2.0/drivers/target/iscsi/iscsi_target_parameters.c @@ -713,9 +713,9 @@ } INIT_LIST_HEAD(&extra_response->er_list); - strncpy(extra_response->key, key, strlen(key) + 1); - strncpy(extra_response->value, NOTUNDERSTOOD, - strlen(NOTUNDERSTOOD) + 1); + strlcpy(extra_response->key, key, sizeof(extra_response->key)); + strlcpy(extra_response->value, NOTUNDERSTOOD, + sizeof(extra_response->value)); list_add_tail(&extra_response->er_list, ¶m_list->extra_response_list); @@ -1572,8 +1572,6 @@ if (phase & PHASE_SECURITY) { if (iscsi_check_for_auth_key(key) > 0) { - char *tmpptr = key + strlen(key); - *tmpptr = '='; kfree(tmpbuf); return 1; } --- linux-3.2.0.orig/drivers/target/iscsi/iscsi_target.c +++ linux-3.2.0/drivers/target/iscsi/iscsi_target.c @@ -427,19 +427,8 @@ int iscsit_del_np_comm(struct iscsi_np *np) { - if (!np->np_socket) - return 0; - - /* - * Some network transports allocate their own struct sock->file, - * see if we need to free any additional allocated resources. - */ - if (np->np_flags & NPF_SCTP_STRUCT_FILE) { - kfree(np->np_socket->file); - np->np_socket->file = NULL; - } - - sock_release(np->np_socket); + if (np->np_socket) + sock_release(np->np_socket); return 0; } @@ -781,7 +770,7 @@ struct scatterlist *sgl; u32 length = cmd->se_cmd.data_length; int nents = DIV_ROUND_UP(length, PAGE_SIZE); - int i = 0, ret; + int i = 0, j = 0, ret; /* * If no SCSI payload is present, allocate the default iovecs used for * iSCSI PDU Header @@ -822,17 +811,15 @@ */ ret = iscsit_allocate_iovecs(cmd); if (ret < 0) - goto page_alloc_failed; + return -ENOMEM; return 0; page_alloc_failed: - while (i >= 0) { - __free_page(sg_page(&sgl[i])); - i--; - } - kfree(cmd->t_mem_sg); - cmd->t_mem_sg = NULL; + while (j < i) + __free_page(sg_page(&sgl[j++])); + + kfree(sgl); return -ENOMEM; } @@ -1029,7 +1016,7 @@ return iscsit_add_reject_from_cmd( ISCSI_REASON_BOOKMARK_NO_RESOURCES, 1, 1, buf, cmd); - } else if (transport_ret == -EINVAL) { + } else if (transport_ret < 0) { /* * Unsupported SAM Opcode. CHECK_CONDITION will be sent * in iscsit_execute_cmd() during the CmdSN OOO Execution @@ -1062,7 +1049,7 @@ if (ret < 0) return iscsit_add_reject_from_cmd( ISCSI_REASON_BOOKMARK_NO_RESOURCES, - 1, 1, buf, cmd); + 1, 0, buf, cmd); /* * Check the CmdSN against ExpCmdSN/MaxCmdSN here if * the Immediate Bit is not set, and no Immediate @@ -2380,7 +2367,7 @@ if (!conn_p) return; - cmd = iscsit_allocate_cmd(conn_p, GFP_KERNEL); + cmd = iscsit_allocate_cmd(conn_p, GFP_ATOMIC); if (!cmd) { iscsit_dec_conn_usage_count(conn_p); return; @@ -3165,6 +3152,30 @@ return 0; } +static bool iscsit_check_inaddr_any(struct iscsi_np *np) +{ + bool ret = false; + + if (np->np_sockaddr.ss_family == AF_INET6) { + const struct sockaddr_in6 sin6 = { + .sin6_addr = IN6ADDR_ANY_INIT }; + struct sockaddr_in6 *sock_in6 = + (struct sockaddr_in6 *)&np->np_sockaddr; + + if (!memcmp(sock_in6->sin6_addr.s6_addr, + sin6.sin6_addr.s6_addr, 16)) + ret = true; + } else { + struct sockaddr_in * sock_in = + (struct sockaddr_in *)&np->np_sockaddr; + + if (sock_in->sin_addr.s_addr == INADDR_ANY) + ret = true; + } + + return ret; +} + static int iscsit_build_sendtargets_response(struct iscsi_cmd *cmd) { char *payload = NULL; @@ -3193,7 +3204,6 @@ len += 1; if ((len + payload_len) > buffer_len) { - spin_unlock(&tiqn->tiqn_tpg_lock); end_of_buf = 1; goto eob; } @@ -3214,12 +3224,17 @@ spin_lock(&tpg->tpg_np_lock); list_for_each_entry(tpg_np, &tpg->tpg_gnp_list, tpg_np_list) { + struct iscsi_np *np = tpg_np->tpg_np; + bool inaddr_any = iscsit_check_inaddr_any(np); + len = sprintf(buf, "TargetAddress=" "%s%s%s:%hu,%hu", - (tpg_np->tpg_np->np_sockaddr.ss_family == AF_INET6) ? - "[" : "", tpg_np->tpg_np->np_ip, - (tpg_np->tpg_np->np_sockaddr.ss_family == AF_INET6) ? - "]" : "", tpg_np->tpg_np->np_port, + (np->np_sockaddr.ss_family == AF_INET6) ? + "[" : "", (inaddr_any == false) ? + np->np_ip : conn->local_ip, + (np->np_sockaddr.ss_family == AF_INET6) ? + "]" : "", (inaddr_any == false) ? + np->np_port : conn->local_port, tpg->tpgt); len += 1; @@ -3341,6 +3356,7 @@ hdr->opcode = ISCSI_OP_REJECT; hdr->flags |= ISCSI_FLAG_CMD_FINAL; hton24(hdr->dlength, ISCSI_HDR_LEN); + hdr->ffffffff = 0xffffffff; cmd->stat_sn = conn->stat_sn++; hdr->statsn = cpu_to_be32(cmd->stat_sn); hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); @@ -3507,7 +3523,9 @@ */ iscsit_thread_check_cpumask(conn, current, 1); - schedule_timeout_interruptible(MAX_SCHEDULE_TIMEOUT); + wait_event_interruptible(conn->queues_wq, + !iscsit_conn_all_queues_empty(conn) || + ts->status == ISCSI_THREAD_SET_RESET); if ((ts->status == ISCSI_THREAD_SET_RESET) || signal_pending(current)) @@ -4078,13 +4096,8 @@ kfree(conn->conn_ops); conn->conn_ops = NULL; - if (conn->sock) { - if (conn->conn_flags & CONNFLAG_SCTP_STRUCT_FILE) { - kfree(conn->sock->file); - conn->sock->file = NULL; - } + if (conn->sock) sock_release(conn->sock); - } conn->thread_set = NULL; pr_debug("Moving to TARG_CONN_STATE_FREE.\n"); --- linux-3.2.0.orig/drivers/target/iscsi/iscsi_target_util.c +++ linux-3.2.0/drivers/target/iscsi/iscsi_target_util.c @@ -659,7 +659,7 @@ atomic_set(&conn->check_immediate_queue, 1); spin_unlock_bh(&conn->immed_queue_lock); - wake_up_process(conn->thread_set->tx_thread); + wake_up(&conn->queues_wq); } struct iscsi_queue_req *iscsit_get_cmd_from_immediate_queue(struct iscsi_conn *conn) @@ -733,7 +733,7 @@ atomic_inc(&cmd->response_queue_count); spin_unlock_bh(&conn->response_queue_lock); - wake_up_process(conn->thread_set->tx_thread); + wake_up(&conn->queues_wq); } struct iscsi_queue_req *iscsit_get_cmd_from_response_queue(struct iscsi_conn *conn) @@ -787,6 +787,24 @@ } } +bool iscsit_conn_all_queues_empty(struct iscsi_conn *conn) +{ + bool empty; + + spin_lock_bh(&conn->immed_queue_lock); + empty = list_empty(&conn->immed_queue_list); + spin_unlock_bh(&conn->immed_queue_lock); + + if (!empty) + return empty; + + spin_lock_bh(&conn->response_queue_lock); + empty = list_empty(&conn->response_queue_list); + spin_unlock_bh(&conn->response_queue_lock); + + return empty; +} + void iscsit_free_queue_reqs_for_conn(struct iscsi_conn *conn) { struct iscsi_queue_req *qr, *qr_tmp; @@ -851,6 +869,17 @@ case ISCSI_OP_SCSI_TMFUNC: transport_generic_free_cmd(&cmd->se_cmd, 1); break; + case ISCSI_OP_REJECT: + /* + * Handle special case for REJECT when iscsi_add_reject*() has + * overwritten the original iscsi_opcode assignment, and the + * associated cmd->se_cmd needs to be released. + */ + if (cmd->se_cmd.se_tfo != NULL) { + transport_generic_free_cmd(&cmd->se_cmd, 1); + break; + } + /* Fall-through */ default: iscsit_release_cmd(cmd); break; --- linux-3.2.0.orig/drivers/target/iscsi/iscsi_target_parameters.h +++ linux-3.2.0/drivers/target/iscsi/iscsi_target_parameters.h @@ -1,8 +1,10 @@ #ifndef ISCSI_PARAMETERS_H #define ISCSI_PARAMETERS_H +#include + struct iscsi_extra_response { - char key[64]; + char key[KEY_MAXLEN]; char value[32]; struct list_head er_list; } ____cacheline_aligned; --- linux-3.2.0.orig/drivers/connector/cn_proc.c +++ linux-3.2.0/drivers/connector/cn_proc.c @@ -303,6 +303,12 @@ if (msg->len != sizeof(*mc_op)) return; + /* Can only change if privileged. */ + if (!capable(CAP_NET_ADMIN)) { + err = EPERM; + goto out; + } + mc_op = (enum proc_cn_mcast_op*)msg->data; switch (*mc_op) { case PROC_CN_MCAST_LISTEN: @@ -315,6 +321,8 @@ err = EINVAL; break; } + +out: cn_proc_ack(err, msg->seq, msg->ack); } --- linux-3.2.0.orig/drivers/cdrom/cdrom.c +++ linux-3.2.0/drivers/cdrom/cdrom.c @@ -292,7 +292,7 @@ /* default compatibility mode */ static int autoclose=1; static int autoeject; -static int lockdoor = 1; +static int lockdoor = 0; /* will we ever get to use this... sigh. */ static int check_media_type; /* automatically restart mrw format */ @@ -2120,11 +2120,6 @@ if (!nr) return -ENOMEM; - if (!access_ok(VERIFY_WRITE, ubuf, nframes * CD_FRAMESIZE_RAW)) { - ret = -EFAULT; - goto out; - } - cgc.data_direction = CGC_DATA_READ; while (nframes > 0) { if (nr > nframes) @@ -2133,7 +2128,7 @@ ret = cdrom_read_block(cdi, &cgc, lba, nr, 1, CD_FRAMESIZE_RAW); if (ret) break; - if (__copy_to_user(ubuf, cgc.buffer, CD_FRAMESIZE_RAW * nr)) { + if (copy_to_user(ubuf, cgc.buffer, CD_FRAMESIZE_RAW * nr)) { ret = -EFAULT; break; } @@ -2141,7 +2136,6 @@ nframes -= nr; lba += nr; } -out: kfree(cgc.buffer); return ret; } @@ -2747,12 +2741,11 @@ { void __user *argp = (void __user *)arg; int ret; - struct gendisk *disk = bdev->bd_disk; /* * Try the generic SCSI command ioctl's first. */ - ret = scsi_cmd_ioctl(disk->queue, disk, mode, cmd, argp); + ret = scsi_cmd_blk_ioctl(bdev, mode, cmd, argp); if (ret != -ENOTTY) return ret; @@ -2892,7 +2885,7 @@ if (lba < 0) return -EINVAL; - cgc->buffer = kmalloc(blocksize, GFP_KERNEL); + cgc->buffer = kzalloc(blocksize, GFP_KERNEL); if (cgc->buffer == NULL) return -ENOMEM; --- linux-3.2.0.orig/drivers/block/virtio_blk.c +++ linux-3.2.0/drivers/block/virtio_blk.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -20,22 +21,23 @@ struct virtio_blk { - spinlock_t lock; - struct virtio_device *vdev; struct virtqueue *vq; /* The disk structure for the kernel. */ struct gendisk *disk; - /* Request tracking. */ - struct list_head reqs; - mempool_t *pool; /* Process context for config space updates */ struct work_struct config_work; + /* Lock for config space updates */ + struct mutex config_lock; + + /* enable config space updates */ + bool config_enable; + /* What host tells us, plus 2 for header & tailer. */ unsigned int sg_elems; @@ -48,7 +50,6 @@ struct virtblk_req { - struct list_head list; struct request *req; struct virtio_blk_outhdr out_hdr; struct virtio_scsi_inhdr in_hdr; @@ -62,7 +63,7 @@ unsigned int len; unsigned long flags; - spin_lock_irqsave(&vblk->lock, flags); + spin_lock_irqsave(vblk->disk->queue->queue_lock, flags); while ((vbr = virtqueue_get_buf(vblk->vq, &len)) != NULL) { int error; @@ -92,12 +93,11 @@ } __blk_end_request_all(vbr->req, error); - list_del(&vbr->list); mempool_free(vbr, vblk->pool); } /* In case queue is stopped waiting for more buffers. */ blk_start_queue(vblk->disk->queue); - spin_unlock_irqrestore(&vblk->lock, flags); + spin_unlock_irqrestore(vblk->disk->queue->queue_lock, flags); } static bool do_req(struct request_queue *q, struct virtio_blk *vblk, @@ -177,7 +177,6 @@ return false; } - list_add_tail(&vbr->list, &vblk->reqs); return true; } @@ -243,8 +242,8 @@ if (!virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_SCSI)) return -ENOTTY; - return scsi_cmd_ioctl(disk->queue, disk, mode, cmd, - (void __user *)data); + return scsi_cmd_blk_ioctl(bdev, mode, cmd, + (void __user *)data); } /* We provide getgeo only to please some old bootloader/partitioning tools */ @@ -318,6 +317,10 @@ char cap_str_2[10], cap_str_10[10]; u64 capacity, size; + mutex_lock(&vblk->config_lock); + if (!vblk->config_enable) + goto done; + /* Host must always specify the capacity. */ vdev->config->get(vdev, offsetof(struct virtio_blk_config, capacity), &capacity, sizeof(capacity)); @@ -340,6 +343,9 @@ cap_str_10, cap_str_2); set_capacity(vblk->disk, capacity); + revalidate_disk(vblk->disk); +done: + mutex_unlock(&vblk->config_lock); } static void virtblk_config_changed(struct virtio_device *vdev) @@ -383,12 +389,12 @@ goto out_free_index; } - INIT_LIST_HEAD(&vblk->reqs); - spin_lock_init(&vblk->lock); vblk->vdev = vdev; vblk->sg_elems = sg_elems; sg_init_table(vblk->sg, vblk->sg_elems); + mutex_init(&vblk->config_lock); INIT_WORK(&vblk->config_work, virtblk_config_changed_work); + vblk->config_enable = true; /* We expect one virtqueue, for output. */ vblk->vq = virtio_find_single_vq(vdev, blk_done, "requests"); @@ -410,7 +416,7 @@ goto out_mempool; } - q = vblk->disk->queue = blk_init_queue(do_virtblk_request, &vblk->lock); + q = vblk->disk->queue = blk_init_queue(do_virtblk_request, NULL); if (!q) { err = -ENOMEM; goto out_put_disk; @@ -541,22 +547,30 @@ { struct virtio_blk *vblk = vdev->priv; int index = vblk->index; + int refc; - flush_work(&vblk->config_work); + /* Prevent config work handler from accessing the device. */ + mutex_lock(&vblk->config_lock); + vblk->config_enable = false; + mutex_unlock(&vblk->config_lock); - /* Nothing should be pending. */ - BUG_ON(!list_empty(&vblk->reqs)); + del_gendisk(vblk->disk); + blk_cleanup_queue(vblk->disk->queue); /* Stop all the virtqueues. */ vdev->config->reset(vdev); - del_gendisk(vblk->disk); - blk_cleanup_queue(vblk->disk->queue); + flush_work(&vblk->config_work); + + refc = atomic_read(&disk_to_dev(vblk->disk)->kobj.kref.refcount); put_disk(vblk->disk); mempool_destroy(vblk->pool); vdev->config->del_vqs(vdev); kfree(vblk); - ida_simple_remove(&vd_index_ida, index); + + /* Only free device id if we don't have any users */ + if (refc == 1) + ida_simple_remove(&vd_index_ida, index); } static const struct virtio_device_id id_table[] = { --- linux-3.2.0.orig/drivers/block/sunvdc.c +++ linux-3.2.0/drivers/block/sunvdc.c @@ -461,7 +461,7 @@ int op_len, err; void *req_buf; - if (!(((u64)1 << ((u64)op - 1)) & port->operations)) + if (!(((u64)1 << (u64)op) & port->operations)) return -EOPNOTSUPP; switch (op) { --- linux-3.2.0.orig/drivers/block/Kconfig +++ linux-3.2.0/drivers/block/Kconfig @@ -116,6 +116,8 @@ source "drivers/block/paride/Kconfig" +source "drivers/block/mtip32xx/Kconfig" + config BLK_CPQ_DA tristate "Compaq SMART2 support" depends on PCI && VIRT_TO_BUS --- linux-3.2.0.orig/drivers/block/floppy.c +++ linux-3.2.0/drivers/block/floppy.c @@ -1032,37 +1032,6 @@ return 0; } -static DEFINE_SPINLOCK(floppy_hlt_lock); -static int hlt_disabled; -static void floppy_disable_hlt(void) -{ - unsigned long flags; - - WARN_ONCE(1, "floppy_disable_hlt() scheduled for removal in 2012"); - spin_lock_irqsave(&floppy_hlt_lock, flags); - if (!hlt_disabled) { - hlt_disabled = 1; -#ifdef HAVE_DISABLE_HLT - disable_hlt(); -#endif - } - spin_unlock_irqrestore(&floppy_hlt_lock, flags); -} - -static void floppy_enable_hlt(void) -{ - unsigned long flags; - - spin_lock_irqsave(&floppy_hlt_lock, flags); - if (hlt_disabled) { - hlt_disabled = 0; -#ifdef HAVE_DISABLE_HLT - enable_hlt(); -#endif - } - spin_unlock_irqrestore(&floppy_hlt_lock, flags); -} - static void setup_DMA(void) { unsigned long f; @@ -1107,7 +1076,6 @@ fd_enable_dma(); release_dma_lock(f); #endif - floppy_disable_hlt(); } static void show_floppy(void); @@ -1709,7 +1677,6 @@ fd_disable_dma(); release_dma_lock(f); - floppy_enable_hlt(); do_floppy = NULL; if (fdc >= N_FDC || FDCS->address == -1) { /* we don't even know which FDC is the culprit */ @@ -1858,8 +1825,6 @@ show_floppy(); cancel_activity(); - floppy_enable_hlt(); - flags = claim_dma_lock(); fd_disable_dma(); release_dma_lock(flags); @@ -4198,6 +4163,7 @@ disks[dr]->queue = blk_init_queue(do_fd_request, &floppy_lock); if (!disks[dr]->queue) { + put_disk(disks[dr]); err = -ENOMEM; goto out_put_disk; } @@ -4339,7 +4305,7 @@ err = platform_device_register(&floppy_device[drive]); if (err) - goto out_flush_work; + goto out_remove_drives; err = device_create_file(&floppy_device[drive].dev, &dev_attr_cmos); @@ -4357,6 +4323,15 @@ out_unreg_platform_dev: platform_device_unregister(&floppy_device[drive]); +out_remove_drives: + while (drive--) { + if ((allowed_drive_mask & (1 << drive)) && + fdc_state[FDC(drive)].version != FDC_NONE) { + del_gendisk(disks[drive]); + device_remove_file(&floppy_device[drive].dev, &dev_attr_cmos); + platform_device_unregister(&floppy_device[drive]); + } + } out_flush_work: flush_work_sync(&floppy_work); if (atomic_read(&usage_count)) @@ -4369,8 +4344,14 @@ out_put_disk: while (dr--) { del_timer_sync(&motor_off_timer[dr]); - if (disks[dr]->queue) + if (disks[dr]->queue) { blk_cleanup_queue(disks[dr]->queue); + /* + * put_disk() is not paired with add_disk() and + * will put queue reference one extra time. fix it. + */ + disks[dr]->queue = NULL; + } put_disk(disks[dr]); } return err; @@ -4504,7 +4485,6 @@ #if N_FDC > 1 set_dor(1, ~8, 0); #endif - floppy_enable_hlt(); if (floppy_track_buffer && max_buffer_sectors) { tmpsize = max_buffer_sectors * 1024; --- linux-3.2.0.orig/drivers/block/Makefile +++ linux-3.2.0/drivers/block/Makefile @@ -39,5 +39,6 @@ obj-$(CONFIG_XEN_BLKDEV_BACKEND) += xen-blkback/ obj-$(CONFIG_BLK_DEV_DRBD) += drbd/ obj-$(CONFIG_BLK_DEV_RBD) += rbd.o +obj-$(CONFIG_BLK_DEV_PCIESSD_MTIP32XX) += mtip32xx/ swim_mod-y := swim.o swim_asm.o --- linux-3.2.0.orig/drivers/block/sx8.c +++ linux-3.2.0/drivers/block/sx8.c @@ -1116,7 +1116,7 @@ break; case MISC_GET_FW_VER: { struct carm_fw_ver *ver = (struct carm_fw_ver *) - mem + sizeof(struct carm_msg_get_fw_ver); + (mem + sizeof(struct carm_msg_get_fw_ver)); if (!error) { host->fw_ver = le32_to_cpu(ver->version); host->flags |= (ver->features & FL_FW_VER_MASK); --- linux-3.2.0.orig/drivers/block/loop.c +++ linux-3.2.0/drivers/block/loop.c @@ -907,6 +907,11 @@ lo->lo_flags |= LO_FLAGS_PARTSCAN; if (lo->lo_flags & LO_FLAGS_PARTSCAN) ioctl_by_bdev(bdev, BLKRRPART, 0); + + /* Grab the block_device to prevent its destruction after we + * put /dev/loopXX inode. Later in loop_clr_fd() we bdput(bdev). + */ + bdgrab(bdev); return 0; out_clr: @@ -1003,8 +1008,10 @@ memset(lo->lo_encrypt_key, 0, LO_KEY_SIZE); memset(lo->lo_crypt_name, 0, LO_NAME_SIZE); memset(lo->lo_file_name, 0, LO_NAME_SIZE); - if (bdev) + if (bdev) { + bdput(bdev); invalidate_bdev(bdev); + } set_capacity(lo->lo_disk, 0); loop_sysfs_exit(lo); if (bdev) { @@ -1262,11 +1269,9 @@ /* the width of sector_t may be narrow for bit-shift */ sz = sec; sz <<= 9; - mutex_lock(&bdev->bd_mutex); bd_set_size(bdev, sz); /* let user-space know about the new size */ kobject_uevent(&disk_to_dev(bdev->bd_disk)->kobj, KOBJ_CHANGE); - mutex_unlock(&bdev->bd_mutex); out: return err; @@ -1836,11 +1841,15 @@ max_part = (1UL << part_shift) - 1; } - if ((1UL << part_shift) > DISK_MAX_PARTS) - return -EINVAL; + if ((1UL << part_shift) > DISK_MAX_PARTS) { + err = -EINVAL; + goto misc_out; + } - if (max_loop > 1UL << (MINORBITS - part_shift)) - return -EINVAL; + if (max_loop > 1UL << (MINORBITS - part_shift)) { + err = -EINVAL; + goto misc_out; + } /* * If max_loop is specified, create that many devices upfront. @@ -1858,8 +1867,10 @@ range = 1UL << MINORBITS; } - if (register_blkdev(LOOP_MAJOR, "loop")) - return -EIO; + if (register_blkdev(LOOP_MAJOR, "loop")) { + err = -EIO; + goto misc_out; + } blk_register_region(MKDEV(LOOP_MAJOR, 0), range, THIS_MODULE, loop_probe, NULL, NULL); @@ -1872,6 +1883,10 @@ printk(KERN_INFO "loop: module loaded\n"); return 0; + +misc_out: + misc_deregister(&loop_misc); + return err; } static int loop_exit_cb(int id, void *ptr, void *data) --- linux-3.2.0.orig/drivers/block/brd.c +++ linux-3.2.0/drivers/block/brd.c @@ -117,13 +117,13 @@ spin_lock(&brd->brd_lock); idx = sector >> PAGE_SECTORS_SHIFT; + page->index = idx; if (radix_tree_insert(&brd->brd_pages, idx, page)) { __free_page(page); page = radix_tree_lookup(&brd->brd_pages, idx); BUG_ON(!page); BUG_ON(page->index != idx); - } else - page->index = idx; + } spin_unlock(&brd->brd_lock); radix_tree_preload_end(); --- linux-3.2.0.orig/drivers/block/cciss_scsi.c +++ linux-3.2.0/drivers/block/cciss_scsi.c @@ -763,16 +763,7 @@ { case CMD_TARGET_STATUS: /* Pass it up to the upper layers... */ - if( ei->ScsiStatus) - { -#if 0 - printk(KERN_WARNING "cciss: cmd %p " - "has SCSI Status = %x\n", - c, ei->ScsiStatus); -#endif - cmd->result |= (ei->ScsiStatus << 1); - } - else { /* scsi status is zero??? How??? */ + if (!ei->ScsiStatus) { /* Ordinarily, this case should never happen, but there is a bug in some released firmware revisions that allows it to happen @@ -804,6 +795,7 @@ } break; case CMD_PROTOCOL_ERR: + cmd->result = DID_ERROR << 16; dev_warn(&h->pdev->dev, "%p has protocol error\n", c); break; @@ -866,6 +858,7 @@ sh->can_queue = cciss_tape_cmds; sh->sg_tablesize = h->maxsgentries; sh->max_cmd_len = MAX_COMMAND_SIZE; + sh->max_sectors = h->cciss_max_sectors; ((struct cciss_scsi_adapter_data_t *) h->scsi_ctlr)->scsi_host = sh; @@ -1410,7 +1403,7 @@ /* track how many SG entries we are using */ if (request_nsgs > h->maxSG) h->maxSG = request_nsgs; - c->Header.SGTotal = (__u8) request_nsgs + chained; + c->Header.SGTotal = (u16) request_nsgs + chained; if (request_nsgs > h->max_cmd_sgentries) c->Header.SGList = h->max_cmd_sgentries; else --- linux-3.2.0.orig/drivers/block/cciss.c +++ linux-3.2.0/drivers/block/cciss.c @@ -161,8 +161,6 @@ static int cciss_open(struct block_device *bdev, fmode_t mode); static int cciss_unlocked_open(struct block_device *bdev, fmode_t mode); static int cciss_release(struct gendisk *disk, fmode_t mode); -static int do_ioctl(struct block_device *bdev, fmode_t mode, - unsigned int cmd, unsigned long arg); static int cciss_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg); static int cciss_getgeo(struct block_device *bdev, struct hd_geometry *geo); @@ -229,7 +227,7 @@ .owner = THIS_MODULE, .open = cciss_unlocked_open, .release = cciss_release, - .ioctl = do_ioctl, + .ioctl = cciss_ioctl, .getgeo = cciss_getgeo, #ifdef CONFIG_COMPAT .compat_ioctl = cciss_compat_ioctl, @@ -1140,16 +1138,6 @@ return 0; } -static int do_ioctl(struct block_device *bdev, fmode_t mode, - unsigned cmd, unsigned long arg) -{ - int ret; - mutex_lock(&cciss_mutex); - ret = cciss_ioctl(bdev, mode, cmd, arg); - mutex_unlock(&cciss_mutex); - return ret; -} - #ifdef CONFIG_COMPAT static int cciss_ioctl32_passthru(struct block_device *bdev, fmode_t mode, @@ -1176,7 +1164,7 @@ case CCISS_REGNEWD: case CCISS_RESCANDISK: case CCISS_GETLUNINFO: - return do_ioctl(bdev, mode, cmd, arg); + return cciss_ioctl(bdev, mode, cmd, arg); case CCISS_PASSTHRU32: return cciss_ioctl32_passthru(bdev, mode, cmd, arg); @@ -1216,7 +1204,7 @@ if (err) return -EFAULT; - err = do_ioctl(bdev, mode, CCISS_PASSTHRU, (unsigned long)p); + err = cciss_ioctl(bdev, mode, CCISS_PASSTHRU, (unsigned long)p); if (err) return err; err |= @@ -1258,7 +1246,7 @@ if (err) return -EFAULT; - err = do_ioctl(bdev, mode, CCISS_BIG_PASSTHRU, (unsigned long)p); + err = cciss_ioctl(bdev, mode, CCISS_BIG_PASSTHRU, (unsigned long)p); if (err) return err; err |= @@ -1308,11 +1296,14 @@ static int cciss_getintinfo(ctlr_info_t *h, void __user *argp) { cciss_coalint_struct intinfo; + unsigned long flags; if (!argp) return -EINVAL; + spin_lock_irqsave(&h->lock, flags); intinfo.delay = readl(&h->cfgtable->HostWrite.CoalIntDelay); intinfo.count = readl(&h->cfgtable->HostWrite.CoalIntCount); + spin_unlock_irqrestore(&h->lock, flags); if (copy_to_user (argp, &intinfo, sizeof(cciss_coalint_struct))) return -EFAULT; @@ -1353,12 +1344,15 @@ static int cciss_getnodename(ctlr_info_t *h, void __user *argp) { NodeName_type NodeName; + unsigned long flags; int i; if (!argp) return -EINVAL; + spin_lock_irqsave(&h->lock, flags); for (i = 0; i < 16; i++) NodeName[i] = readb(&h->cfgtable->ServerName[i]); + spin_unlock_irqrestore(&h->lock, flags); if (copy_to_user(argp, NodeName, sizeof(NodeName_type))) return -EFAULT; return 0; @@ -1395,10 +1389,13 @@ static int cciss_getheartbeat(ctlr_info_t *h, void __user *argp) { Heartbeat_type heartbeat; + unsigned long flags; if (!argp) return -EINVAL; + spin_lock_irqsave(&h->lock, flags); heartbeat = readl(&h->cfgtable->HeartBeat); + spin_unlock_irqrestore(&h->lock, flags); if (copy_to_user(argp, &heartbeat, sizeof(Heartbeat_type))) return -EFAULT; return 0; @@ -1407,10 +1404,13 @@ static int cciss_getbustypes(ctlr_info_t *h, void __user *argp) { BusTypes_type BusTypes; + unsigned long flags; if (!argp) return -EINVAL; + spin_lock_irqsave(&h->lock, flags); BusTypes = readl(&h->cfgtable->BusTypes); + spin_unlock_irqrestore(&h->lock, flags); if (copy_to_user(argp, &BusTypes, sizeof(BusTypes_type))) return -EFAULT; return 0; @@ -1735,7 +1735,7 @@ case CCISS_BIG_PASSTHRU: return cciss_bigpassthru(h, argp); - /* scsi_cmd_ioctl handles these, below, though some are not */ + /* scsi_cmd_blk_ioctl handles these, below, though some are not */ /* very meaningful for cciss. SG_IO is the main one people want. */ case SG_GET_VERSION_NUM: @@ -1746,9 +1746,9 @@ case SG_EMULATED_HOST: case SG_IO: case SCSI_IOCTL_SEND_COMMAND: - return scsi_cmd_ioctl(disk->queue, disk, mode, cmd, argp); + return scsi_cmd_blk_ioctl(bdev, mode, cmd, argp); - /* scsi_cmd_ioctl would normally handle these, below, but */ + /* scsi_cmd_blk_ioctl would normally handle these, below, but */ /* they aren't a good fit for cciss, as CD-ROMs are */ /* not supported, and we don't have any bus/target/lun */ /* which we present to the kernel. */ --- linux-3.2.0.orig/drivers/block/nbd.c +++ linux-3.2.0/drivers/block/nbd.c @@ -58,7 +58,7 @@ static unsigned int nbds_max = 16; static struct nbd_device *nbd_dev; -static int max_part; +static int max_part = 15; /* * Use just one lock (or at most 1 per NIC). Two arguments for this: @@ -445,6 +445,14 @@ req->errors++; nbd_end_request(req); } + + while (!list_empty(&lo->waiting_queue)) { + req = list_entry(lo->waiting_queue.next, struct request, + queuelist); + list_del_init(&req->queuelist); + req->errors++; + nbd_end_request(req); + } } @@ -576,14 +584,24 @@ struct request sreq; dev_info(disk_to_dev(lo->disk), "NBD_DISCONNECT\n"); + if (!lo->sock) + return -EINVAL; + mutex_unlock(&lo->tx_lock); + fsync_bdev(bdev); + mutex_lock(&lo->tx_lock); blk_rq_init(NULL, &sreq); sreq.cmd_type = REQ_TYPE_SPECIAL; nbd_cmd(&sreq) = NBD_CMD_DISC; + + /* Check again after getting mutex back. */ if (!lo->sock) return -EINVAL; + + lo->disconnect = 1; + nbd_send_req(lo, &sreq); - return 0; + return 0; } case NBD_CLEAR_SOCK: { @@ -594,6 +612,8 @@ lo->file = NULL; nbd_clear_que(lo); BUG_ON(!list_empty(&lo->queue_head)); + BUG_ON(!list_empty(&lo->waiting_queue)); + kill_bdev(bdev); if (file) fput(file); return 0; @@ -611,6 +631,7 @@ lo->sock = SOCKET_I(inode); if (max_part > 0) bdev->bd_invalidated = 1; + lo->disconnect = 0; /* we're connected now */ return 0; } else { fput(file); @@ -657,7 +678,8 @@ mutex_unlock(&lo->tx_lock); - thread = kthread_create(nbd_thread, lo, lo->disk->disk_name); + thread = kthread_create(nbd_thread, lo, "%s", + lo->disk->disk_name); if (IS_ERR(thread)) { mutex_lock(&lo->tx_lock); return PTR_ERR(thread); @@ -674,6 +696,7 @@ lo->file = NULL; nbd_clear_que(lo); dev_warn(disk_to_dev(lo->disk), "queue cleared\n"); + kill_bdev(bdev); if (file) fput(file); lo->bytesize = 0; @@ -681,6 +704,8 @@ set_capacity(lo->disk, 0); if (max_part > 0) ioctl_by_bdev(bdev, BLKRRPART, 0); + if (lo->disconnect) /* user requested, ignore socket errors */ + return 0; return lo->harderror; } --- linux-3.2.0.orig/drivers/block/umem.c +++ linux-3.2.0/drivers/block/umem.c @@ -513,6 +513,44 @@ } } +struct mm_plug_cb { + struct blk_plug_cb cb; + struct cardinfo *card; +}; + +static void mm_unplug(struct blk_plug_cb *cb) +{ + struct mm_plug_cb *mmcb = container_of(cb, struct mm_plug_cb, cb); + + spin_lock_irq(&mmcb->card->lock); + activate(mmcb->card); + spin_unlock_irq(&mmcb->card->lock); + kfree(mmcb); +} + +static int mm_check_plugged(struct cardinfo *card) +{ + struct blk_plug *plug = current->plug; + struct mm_plug_cb *mmcb; + + if (!plug) + return 0; + + list_for_each_entry(mmcb, &plug->cb_list, cb.list) { + if (mmcb->cb.callback == mm_unplug && mmcb->card == card) + return 1; + } + /* Not currently on the callback list */ + mmcb = kmalloc(sizeof(*mmcb), GFP_ATOMIC); + if (!mmcb) + return 0; + + mmcb->card = card; + mmcb->cb.callback = mm_unplug; + list_add(&mmcb->cb.list, &plug->cb_list); + return 1; +} + static void mm_make_request(struct request_queue *q, struct bio *bio) { struct cardinfo *card = q->queuedata; @@ -523,6 +561,8 @@ *card->biotail = bio; bio->bi_next = NULL; card->biotail = &bio->bi_next; + if (bio->bi_rw & REQ_SYNC || !mm_check_plugged(card)) + activate(card); spin_unlock_irq(&card->lock); return; --- linux-3.2.0.orig/drivers/block/ub.c +++ linux-3.2.0/drivers/block/ub.c @@ -1744,12 +1744,11 @@ static int ub_bd_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) { - struct gendisk *disk = bdev->bd_disk; void __user *usermem = (void __user *) arg; int ret; mutex_lock(&ub_mutex); - ret = scsi_cmd_ioctl(disk->queue, disk, mode, cmd, usermem); + ret = scsi_cmd_blk_ioctl(bdev, mode, cmd, usermem); mutex_unlock(&ub_mutex); return ret; --- linux-3.2.0.orig/drivers/block/xen-blkfront.c +++ linux-3.2.0/drivers/block/xen-blkfront.c @@ -72,7 +72,8 @@ static DEFINE_MUTEX(blkfront_mutex); static const struct block_device_operations xlvbd_block_fops; -#define BLK_RING_SIZE __CONST_RING_SIZE(blkif, PAGE_SIZE) +#define BLK_MAX_RING_AREA_SIZE (BLKIF_MAX_NUM_RING_PAGES * PAGE_SIZE) +#define BLK_MAX_RING_SIZE __CONST_RING_SIZE(blkif, BLK_MAX_RING_AREA_SIZE) /* * We have one of these per vbd, whether ide, scsi or 'other'. They @@ -87,14 +88,15 @@ int vdevice; blkif_vdev_t handle; enum blkif_state connected; - int ring_ref; + int num_ring_pages; + int ring_ref[BLKIF_MAX_NUM_RING_PAGES]; struct blkif_front_ring ring; struct scatterlist sg[BLKIF_MAX_SEGMENTS_PER_REQUEST]; unsigned int evtchn, irq; struct request_queue *rq; struct work_struct work; struct gnttab_free_callback callback; - struct blk_shadow shadow[BLK_RING_SIZE]; + struct blk_shadow shadow[BLK_MAX_RING_SIZE]; unsigned long shadow_free; unsigned int feature_flush; unsigned int flush_op; @@ -134,7 +136,8 @@ static int get_id_from_freelist(struct blkfront_info *info) { unsigned long free = info->shadow_free; - BUG_ON(free >= BLK_RING_SIZE); + int ring_size = __RING_SIZE((struct blkif_sring *)0, info->num_ring_pages * PAGE_SIZE); + BUG_ON(free >= ring_size); info->shadow_free = info->shadow[free].req.id; info->shadow[free].req.id = 0x0fffffee; /* debug */ return free; @@ -675,6 +678,8 @@ static void blkif_free(struct blkfront_info *info, int suspend) { + int i; + /* Prevent new requests being issued until we fix things up. */ spin_lock_irq(&blkif_io_lock); info->connected = suspend ? @@ -690,10 +695,17 @@ flush_work_sync(&info->work); /* Free resources associated with old device channel. */ - if (info->ring_ref != GRANT_INVALID_REF) { - gnttab_end_foreign_access(info->ring_ref, 0, - (unsigned long)info->ring.sring); - info->ring_ref = GRANT_INVALID_REF; + for (i = 0; i < info->num_ring_pages; i++) { + /* Free resources associated with old device channel. */ + if (info->ring_ref[i] != GRANT_INVALID_REF) { + gnttab_end_foreign_access(info->ring_ref[i], 0, 0L); + info->ring_ref[i] = GRANT_INVALID_REF; + } + } + if (info->ring.sring) { + int ring_area_size = info->num_ring_pages * PAGE_SIZE; + free_pages((unsigned long)info->ring.sring, + get_order(ring_area_size)); info->ring.sring = NULL; } if (info->irq) @@ -813,27 +825,32 @@ struct blkfront_info *info) { struct blkif_sring *sring; - int err; + int i, order, err; + int ring_area_size = info->num_ring_pages * PAGE_SIZE; - info->ring_ref = GRANT_INVALID_REF; + for (i = 0; i < info->num_ring_pages; i++) { + info->ring_ref[i] = GRANT_INVALID_REF; + } - sring = (struct blkif_sring *)__get_free_page(GFP_NOIO | __GFP_HIGH); + order = get_order(ring_area_size); + sring = (struct blkif_sring *)__get_free_pages(GFP_KERNEL, order); if (!sring) { xenbus_dev_fatal(dev, -ENOMEM, "allocating shared ring"); return -ENOMEM; } SHARED_RING_INIT(sring); - FRONT_RING_INIT(&info->ring, sring, PAGE_SIZE); + FRONT_RING_INIT(&info->ring, sring, ring_area_size); - sg_init_table(info->sg, BLKIF_MAX_SEGMENTS_PER_REQUEST); - - err = xenbus_grant_ring(dev, virt_to_mfn(info->ring.sring)); - if (err < 0) { - free_page((unsigned long)sring); - info->ring.sring = NULL; - goto fail; + for (i = 0; i < info->num_ring_pages; i++) { + unsigned long addr = (unsigned long)info->ring.sring + i * PAGE_SIZE; + err = xenbus_grant_ring(dev, virt_to_mfn(addr)); + if (err < 0) { + free_pages((unsigned long)sring, order); + info->ring.sring = NULL; + goto fail; + } + info->ring_ref[i] = err; } - info->ring_ref = err; err = xenbus_alloc_evtchn(dev, &info->evtchn); if (err) @@ -862,7 +879,13 @@ { const char *message = NULL; struct xenbus_transaction xbt; - int err; + int err, i; + + BUILD_BUG_ON(BLKIF_MAX_NUM_RING_PAGES != 1 && + BLKIF_MAX_NUM_RING_PAGES != 2 && + BLKIF_MAX_NUM_RING_PAGES != 4 && + BLKIF_MAX_NUM_RING_PAGES != 8 && + BLKIF_MAX_NUM_RING_PAGES != 16); /* Create shared ring, alloc event channel. */ err = setup_blkring(dev, info); @@ -876,11 +899,30 @@ goto destroy_blkring; } - err = xenbus_printf(xbt, dev->nodename, - "ring-ref", "%u", info->ring_ref); - if (err) { - message = "writing ring-ref"; - goto abort_transaction; + if (info->num_ring_pages == 1) { + err = xenbus_printf(xbt, dev->nodename, + "ring-ref", "%u", info->ring_ref[0]); + if (err) { + message = "writing ring-ref"; + goto abort_transaction; + } + } else { + err = xenbus_printf(xbt, dev->nodename, "num-ring-pages", "%u", + info->num_ring_pages); + if (err) { + message = "writing num-ring-pages"; + goto abort_transaction; + } + for (i = 0; i < info->num_ring_pages; i++) { + char buf[16]; + snprintf(buf, sizeof(buf), "ring-ref%d", i); + err = xenbus_printf(xbt, dev->nodename, buf, "%u", + info->ring_ref[i]); + if (err) { + message = "writing ring-refs"; + goto abort_transaction; + } + } } err = xenbus_printf(xbt, dev->nodename, "event-channel", "%u", info->evtchn); @@ -928,6 +970,7 @@ { int err, vdevice, i; struct blkfront_info *info; + int ring_size, max_ring_pages; /* FIXME: Use dynamic device id if this is not set. */ err = xenbus_scanf(XBT_NIL, dev->nodename, @@ -941,6 +984,10 @@ return err; } } + err = xenbus_scanf(XBT_NIL, dev->otherend, + "max-ring-pages", "%u", &max_ring_pages); + if (err != 1) + max_ring_pages = 1; if (xen_hvm_domain()) { char *type; @@ -983,9 +1030,13 @@ info->connected = BLKIF_STATE_DISCONNECTED; INIT_WORK(&info->work, blkif_restart_queue); - for (i = 0; i < BLK_RING_SIZE; i++) + info->num_ring_pages = min(max_ring_pages, BLKIF_MAX_NUM_RING_PAGES); + + ring_size = __RING_SIZE((struct blkif_sring *)0, + info->num_ring_pages * PAGE_SIZE); + for (i = 0; i < ring_size; i++) info->shadow[i].req.id = i+1; - info->shadow[BLK_RING_SIZE-1].req.id = 0x0fffffff; + info->shadow[ring_size-1].req.id = 0x0fffffff; /* Front end dir is a number, which is used as the id. */ info->handle = simple_strtoul(strrchr(dev->nodename, '/')+1, NULL, 0); @@ -998,6 +1049,9 @@ return err; } + printk(KERN_INFO "blkfront %s num-ring-pages %d nr_ents %d.\n", + dev->nodename, info->num_ring_pages, ring_size); + return 0; } @@ -1008,6 +1062,7 @@ struct blkif_request *req; struct blk_shadow *copy; int j; + int ring_size = __RING_SIZE((struct blkif_sring *)0, info->num_ring_pages * PAGE_SIZE); /* Stage 1: Make a safe copy of the shadow state. */ copy = kmalloc(sizeof(info->shadow), @@ -1018,13 +1073,13 @@ /* Stage 2: Set up free list. */ memset(&info->shadow, 0, sizeof(info->shadow)); - for (i = 0; i < BLK_RING_SIZE; i++) + for (i = 0; i < ring_size; i++) info->shadow[i].req.id = i+1; info->shadow_free = info->ring.req_prod_pvt; - info->shadow[BLK_RING_SIZE-1].req.id = 0x0fffffff; + info->shadow[ring_size-1].req.id = 0x0fffffff; /* Stage 3: Find pending requests and requeue them. */ - for (i = 0; i < BLK_RING_SIZE; i++) { + for (i = 0; i < ring_size; i++) { /* Not in use? */ if (!copy[i].request) continue; @@ -1483,3 +1538,4 @@ MODULE_ALIAS_BLOCKDEV_MAJOR(XENVBD_MAJOR); MODULE_ALIAS("xen:vbd"); MODULE_ALIAS("xenblk"); + --- linux-3.2.0.orig/drivers/block/drbd/drbd_req.c +++ linux-3.2.0/drivers/block/drbd/drbd_req.c @@ -37,6 +37,7 @@ const int rw = bio_data_dir(bio); int cpu; cpu = part_stat_lock(); + part_round_stats(cpu, &mdev->vdisk->part0); part_stat_inc(cpu, &mdev->vdisk->part0, ios[rw]); part_stat_add(cpu, &mdev->vdisk->part0, sectors[rw], bio_sectors(bio)); part_inc_in_flight(&mdev->vdisk->part0, rw); --- linux-3.2.0.orig/drivers/block/drbd/drbd_nl.c +++ linux-3.2.0/drivers/block/drbd/drbd_nl.c @@ -179,7 +179,7 @@ dev_info(DEV, "helper command: %s %s %s\n", usermode_helper, cmd, mb); drbd_bcast_ev_helper(mdev, cmd); - ret = call_usermodehelper(usermode_helper, argv, envp, 1); + ret = call_usermodehelper(usermode_helper, argv, envp, UMH_WAIT_PROC); if (ret) dev_warn(DEV, "helper command: %s %s %s exit code %u (0x%x)\n", usermode_helper, cmd, mb, --- linux-3.2.0.orig/drivers/block/drbd/drbd_receiver.c +++ linux-3.2.0/drivers/block/drbd/drbd_receiver.c @@ -2225,7 +2225,6 @@ if (hg == -1 && mdev->state.role == R_PRIMARY) { enum drbd_state_rv rv2; - drbd_set_role(mdev, R_SECONDARY, 0); /* drbd_change_state() does not sleep while in SS_IN_TRANSIENT_STATE, * we might be here in C_WF_REPORT_PARAMS which is transient. * we do not need to wait for the after state change work either. */ --- linux-3.2.0.orig/drivers/block/xen-blkback/xenbus.c +++ linux-3.2.0/drivers/block/xen-blkback/xenbus.c @@ -118,6 +118,7 @@ atomic_set(&blkif->drain, 0); blkif->st_print = jiffies; init_waitqueue_head(&blkif->waiting_to_free); + init_waitqueue_head(&blkif->shutdown_wq); return blkif; } @@ -178,6 +179,7 @@ { if (blkif->xenblkd) { kthread_stop(blkif->xenblkd); + wake_up(&blkif->shutdown_wq); blkif->xenblkd = NULL; } @@ -364,6 +366,7 @@ be->blkif = NULL; } + kfree(be->mode); kfree(be); dev_set_drvdata(&dev->dev, NULL); return 0; @@ -513,6 +516,7 @@ = container_of(watch, struct backend_info, backend_watch); struct xenbus_device *dev = be->dev; int cdrom = 0; + unsigned long handle; char *device_type; DPRINTK(""); @@ -532,10 +536,10 @@ return; } - if ((be->major || be->minor) && - ((be->major != major) || (be->minor != minor))) { - pr_warn(DRV_PFX "changing physical device (from %x:%x to %x:%x) not supported.\n", - be->major, be->minor, major, minor); + if (be->major | be->minor) { + if (be->major != major || be->minor != minor) + pr_warn(DRV_PFX "changing physical device (from %x:%x to %x:%x) not supported.\n", + be->major, be->minor, major, minor); return; } @@ -553,36 +557,33 @@ kfree(device_type); } - if (be->major == 0 && be->minor == 0) { - /* Front end dir is a number, which is used as the handle. */ - - char *p = strrchr(dev->otherend, '/') + 1; - long handle; - err = strict_strtoul(p, 0, &handle); - if (err) - return; + /* Front end dir is a number, which is used as the handle. */ + err = strict_strtoul(strrchr(dev->otherend, '/') + 1, 0, &handle); + if (err) + return; - be->major = major; - be->minor = minor; + be->major = major; + be->minor = minor; - err = xen_vbd_create(be->blkif, handle, major, minor, - (NULL == strchr(be->mode, 'w')), cdrom); - if (err) { - be->major = 0; - be->minor = 0; - xenbus_dev_fatal(dev, err, "creating vbd structure"); - return; - } + err = xen_vbd_create(be->blkif, handle, major, minor, + !strchr(be->mode, 'w'), cdrom); + if (err) + xenbus_dev_fatal(dev, err, "creating vbd structure"); + else { err = xenvbd_sysfs_addif(dev); if (err) { xen_vbd_free(&be->blkif->vbd); - be->major = 0; - be->minor = 0; xenbus_dev_fatal(dev, err, "creating sysfs entries"); - return; } + } + if (err) { + kfree(be->mode); + be->mode = NULL; + be->major = 0; + be->minor = 0; + } else { /* We're potentially connected now */ xen_update_blkif_status(be->blkif); } --- linux-3.2.0.orig/drivers/block/xen-blkback/common.h +++ linux-3.2.0/drivers/block/xen-blkback/common.h @@ -198,6 +198,8 @@ int st_wr_sect; wait_queue_head_t waiting_to_free; + /* Thread shutdown wait queue. */ + wait_queue_head_t shutdown_wq; }; --- linux-3.2.0.orig/drivers/block/xen-blkback/blkback.c +++ linux-3.2.0/drivers/block/xen-blkback/blkback.c @@ -277,6 +277,7 @@ { struct xen_blkif *blkif = arg; struct xen_vbd *vbd = &blkif->vbd; + int ret; xen_blkif_get(blkif); @@ -297,8 +298,12 @@ blkif->waiting_reqs = 0; smp_mb(); /* clear flag *before* checking for work */ - if (do_block_io_op(blkif)) + ret = do_block_io_op(blkif); + if (ret > 0) blkif->waiting_reqs = 1; + if (ret == -EACCES) + wait_event_interruptible(blkif->shutdown_wq, + kthread_should_stop()); if (log_stats && time_after(jiffies, blkif->st_print)) print_stats(blkif); @@ -539,6 +544,12 @@ rp = blk_rings->common.sring->req_prod; rmb(); /* Ensure we see queued requests up to 'rp'. */ + if (RING_REQUEST_PROD_OVERFLOW(&blk_rings->common, rp)) { + rc = blk_rings->common.rsp_prod_pvt; + pr_warn(DRV_PFX "Frontend provided bogus ring requests (%d - %d = %d). Halting ring processing on dev=%04x\n", + rp, rc, rp - rc, blkif->vbd.pdevice); + return -EACCES; + } while (rc != rp) { if (RING_REQUEST_CONS_OVERFLOW(&blk_rings->common, rc)) @@ -758,13 +769,7 @@ } } - /* - * We set it one so that the last submit_bio does not have to call - * atomic_inc. - */ atomic_set(&pending_req->pendcnt, nbio); - - /* Get a reference count for the disk queue and start sending I/O */ blk_start_plug(&plug); for (i = 0; i < nbio; i++) @@ -792,6 +797,7 @@ fail_put_bio: for (i = 0; i < nbio; i++) bio_put(biolist[i]); + atomic_set(&pending_req->pendcnt, 1); __end_block_io_op(pending_req, -EINVAL); msleep(1); /* back off a bit */ return -EIO; --- linux-3.2.0.orig/drivers/block/mtip32xx/Kconfig +++ linux-3.2.0/drivers/block/mtip32xx/Kconfig @@ -0,0 +1,9 @@ +# +# mtip32xx device driver configuration +# + +config BLK_DEV_PCIESSD_MTIP32XX + tristate "Block Device Driver for Micron PCIe SSDs" + depends on HOTPLUG_PCI_PCIE + help + This enables the block driver for Micron PCIe SSDs. --- linux-3.2.0.orig/drivers/block/mtip32xx/Makefile +++ linux-3.2.0/drivers/block/mtip32xx/Makefile @@ -0,0 +1,5 @@ +# +# Makefile for Block device driver for Micron PCIe SSD +# + +obj-$(CONFIG_BLK_DEV_PCIESSD_MTIP32XX) += mtip32xx.o --- linux-3.2.0.orig/drivers/block/mtip32xx/mtip32xx.c +++ linux-3.2.0/drivers/block/mtip32xx/mtip32xx.c @@ -0,0 +1,3651 @@ +/* + * Driver for the Micron P320 SSD + * Copyright (C) 2011 Micron Technology, Inc. + * + * Portions of this code were derived from works subjected to the + * following copyright: + * Copyright (C) 2009 Integrated Device Technology, Inc. + * + * 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include <../drivers/ata/ahci.h> +#include "mtip32xx.h" + +#define HW_CMD_SLOT_SZ (MTIP_MAX_COMMAND_SLOTS * 32) +#define HW_CMD_TBL_SZ (AHCI_CMD_TBL_HDR_SZ + (MTIP_MAX_SG * 16)) +#define HW_CMD_TBL_AR_SZ (HW_CMD_TBL_SZ * MTIP_MAX_COMMAND_SLOTS) +#define HW_PORT_PRIV_DMA_SZ \ + (HW_CMD_SLOT_SZ + HW_CMD_TBL_AR_SZ + AHCI_RX_FIS_SZ) + +#define HOST_HSORG 0xFC +#define HSORG_DISABLE_SLOTGRP_INTR (1<<24) +#define HSORG_DISABLE_SLOTGRP_PXIS (1<<16) +#define HSORG_HWREV 0xFF00 +#define HSORG_STYLE 0x8 +#define HSORG_SLOTGROUPS 0x7 + +#define PORT_COMMAND_ISSUE 0x38 +#define PORT_SDBV 0x7C + +#define PORT_OFFSET 0x100 +#define PORT_MEM_SIZE 0x80 + +#define PORT_IRQ_ERR \ + (PORT_IRQ_HBUS_ERR | PORT_IRQ_IF_ERR | PORT_IRQ_CONNECT | \ + PORT_IRQ_PHYRDY | PORT_IRQ_UNK_FIS | PORT_IRQ_BAD_PMP | \ + PORT_IRQ_TF_ERR | PORT_IRQ_HBUS_DATA_ERR | PORT_IRQ_IF_NONFATAL | \ + PORT_IRQ_OVERFLOW) +#define PORT_IRQ_LEGACY \ + (PORT_IRQ_PIOS_FIS | PORT_IRQ_D2H_REG_FIS) +#define PORT_IRQ_HANDLED \ + (PORT_IRQ_SDB_FIS | PORT_IRQ_LEGACY | \ + PORT_IRQ_TF_ERR | PORT_IRQ_IF_ERR | \ + PORT_IRQ_CONNECT | PORT_IRQ_PHYRDY) +#define DEF_PORT_IRQ \ + (PORT_IRQ_ERR | PORT_IRQ_LEGACY | PORT_IRQ_SDB_FIS) + +/* product numbers */ +#define MTIP_PRODUCT_UNKNOWN 0x00 +#define MTIP_PRODUCT_ASICFPGA 0x11 + +/* Device instance number, incremented each time a device is probed. */ +static int instance; + +/* + * Global variable used to hold the major block device number + * allocated in mtip_init(). + */ +static int mtip_major; + +static DEFINE_SPINLOCK(rssd_index_lock); +static DEFINE_IDA(rssd_index_ida); + +static int mtip_block_initialize(struct driver_data *dd); + +#ifdef CONFIG_COMPAT +struct mtip_compat_ide_task_request_s { + __u8 io_ports[8]; + __u8 hob_ports[8]; + ide_reg_valid_t out_flags; + ide_reg_valid_t in_flags; + int data_phase; + int req_cmd; + compat_ulong_t out_size; + compat_ulong_t in_size; +}; +#endif + +/* + * This function check_for_surprise_removal is called + * while card is removed from the system and it will + * read the vendor id from the configration space + * + * @pdev Pointer to the pci_dev structure. + * + * return value + * true if device removed, else false + */ +static bool mtip_check_surprise_removal(struct pci_dev *pdev) +{ + u16 vendor_id = 0; + + /* Read the vendorID from the configuration space */ + pci_read_config_word(pdev, 0x00, &vendor_id); + if (vendor_id == 0xFFFF) + return true; /* device removed */ + + return false; /* device present */ +} + +/* + * This function is called for clean the pending command in the + * command slot during the surprise removal of device and return + * error to the upper layer. + * + * @dd Pointer to the DRIVER_DATA structure. + * + * return value + * None + */ +static void mtip_command_cleanup(struct driver_data *dd) +{ + int group = 0, commandslot = 0, commandindex = 0; + struct mtip_cmd *command; + struct mtip_port *port = dd->port; + + for (group = 0; group < 4; group++) { + for (commandslot = 0; commandslot < 32; commandslot++) { + if (!(port->allocated[group] & (1 << commandslot))) + continue; + + commandindex = group << 5 | commandslot; + command = &port->commands[commandindex]; + + if (atomic_read(&command->active) + && (command->async_callback)) { + command->async_callback(command->async_data, + -ENODEV); + command->async_callback = NULL; + command->async_data = NULL; + } + + dma_unmap_sg(&port->dd->pdev->dev, + command->sg, + command->scatter_ents, + command->direction); + } + } + + up(&port->cmd_slot); + + atomic_set(&dd->drv_cleanup_done, true); +} + +/* + * Obtain an empty command slot. + * + * This function needs to be reentrant since it could be called + * at the same time on multiple CPUs. The allocation of the + * command slot must be atomic. + * + * @port Pointer to the port data structure. + * + * return value + * >= 0 Index of command slot obtained. + * -1 No command slots available. + */ +static int get_slot(struct mtip_port *port) +{ + int slot, i; + unsigned int num_command_slots = port->dd->slot_groups * 32; + + /* + * Try 10 times, because there is a small race here. + * that's ok, because it's still cheaper than a lock. + * + * Race: Since this section is not protected by lock, same bit + * could be chosen by different process contexts running in + * different processor. So instead of costly lock, we are going + * with loop. + */ + for (i = 0; i < 10; i++) { + slot = find_next_zero_bit(port->allocated, + num_command_slots, 1); + if ((slot < num_command_slots) && + (!test_and_set_bit(slot, port->allocated))) + return slot; + } + dev_warn(&port->dd->pdev->dev, "Failed to get a tag.\n"); + + if (mtip_check_surprise_removal(port->dd->pdev)) { + /* Device not present, clean outstanding commands */ + mtip_command_cleanup(port->dd); + } + return -1; +} + +/* + * Release a command slot. + * + * @port Pointer to the port data structure. + * @tag Tag of command to release + * + * return value + * None + */ +static inline void release_slot(struct mtip_port *port, int tag) +{ + smp_mb__before_clear_bit(); + clear_bit(tag, port->allocated); + smp_mb__after_clear_bit(); +} + +/* + * Reset the HBA (without sleeping) + * + * Just like hba_reset, except does not call sleep, so can be + * run from interrupt/tasklet context. + * + * @dd Pointer to the driver data structure. + * + * return value + * 0 The reset was successful. + * -1 The HBA Reset bit did not clear. + */ +static int hba_reset_nosleep(struct driver_data *dd) +{ + unsigned long timeout; + + /* Chip quirk: quiesce any chip function */ + mdelay(10); + + /* Set the reset bit */ + writel(HOST_RESET, dd->mmio + HOST_CTL); + + /* Flush */ + readl(dd->mmio + HOST_CTL); + + /* + * Wait 10ms then spin for up to 1 second + * waiting for reset acknowledgement + */ + timeout = jiffies + msecs_to_jiffies(1000); + mdelay(10); + while ((readl(dd->mmio + HOST_CTL) & HOST_RESET) + && time_before(jiffies, timeout)) + mdelay(1); + + if (readl(dd->mmio + HOST_CTL) & HOST_RESET) + return -1; + + return 0; +} + +/* + * Issue a command to the hardware. + * + * Set the appropriate bit in the s_active and Command Issue hardware + * registers, causing hardware command processing to begin. + * + * @port Pointer to the port structure. + * @tag The tag of the command to be issued. + * + * return value + * None + */ +static inline void mtip_issue_ncq_command(struct mtip_port *port, int tag) +{ + unsigned long flags = 0; + + atomic_set(&port->commands[tag].active, 1); + + spin_lock_irqsave(&port->cmd_issue_lock, flags); + + writel((1 << MTIP_TAG_BIT(tag)), + port->s_active[MTIP_TAG_INDEX(tag)]); + writel((1 << MTIP_TAG_BIT(tag)), + port->cmd_issue[MTIP_TAG_INDEX(tag)]); + + spin_unlock_irqrestore(&port->cmd_issue_lock, flags); +} + +/* + * Enable/disable the reception of FIS + * + * @port Pointer to the port data structure + * @enable 1 to enable, 0 to disable + * + * return value + * Previous state: 1 enabled, 0 disabled + */ +static int mtip_enable_fis(struct mtip_port *port, int enable) +{ + u32 tmp; + + /* enable FIS reception */ + tmp = readl(port->mmio + PORT_CMD); + if (enable) + writel(tmp | PORT_CMD_FIS_RX, port->mmio + PORT_CMD); + else + writel(tmp & ~PORT_CMD_FIS_RX, port->mmio + PORT_CMD); + + /* Flush */ + readl(port->mmio + PORT_CMD); + + return (((tmp & PORT_CMD_FIS_RX) == PORT_CMD_FIS_RX)); +} + +/* + * Enable/disable the DMA engine + * + * @port Pointer to the port data structure + * @enable 1 to enable, 0 to disable + * + * return value + * Previous state: 1 enabled, 0 disabled. + */ +static int mtip_enable_engine(struct mtip_port *port, int enable) +{ + u32 tmp; + + /* enable FIS reception */ + tmp = readl(port->mmio + PORT_CMD); + if (enable) + writel(tmp | PORT_CMD_START, port->mmio + PORT_CMD); + else + writel(tmp & ~PORT_CMD_START, port->mmio + PORT_CMD); + + readl(port->mmio + PORT_CMD); + return (((tmp & PORT_CMD_START) == PORT_CMD_START)); +} + +/* + * Enables the port DMA engine and FIS reception. + * + * return value + * None + */ +static inline void mtip_start_port(struct mtip_port *port) +{ + /* Enable FIS reception */ + mtip_enable_fis(port, 1); + + /* Enable the DMA engine */ + mtip_enable_engine(port, 1); +} + +/* + * Deinitialize a port by disabling port interrupts, the DMA engine, + * and FIS reception. + * + * @port Pointer to the port structure + * + * return value + * None + */ +static inline void mtip_deinit_port(struct mtip_port *port) +{ + /* Disable interrupts on this port */ + writel(0, port->mmio + PORT_IRQ_MASK); + + /* Disable the DMA engine */ + mtip_enable_engine(port, 0); + + /* Disable FIS reception */ + mtip_enable_fis(port, 0); +} + +/* + * Initialize a port. + * + * This function deinitializes the port by calling mtip_deinit_port() and + * then initializes it by setting the command header and RX FIS addresses, + * clearing the SError register and any pending port interrupts before + * re-enabling the default set of port interrupts. + * + * @port Pointer to the port structure. + * + * return value + * None + */ +static void mtip_init_port(struct mtip_port *port) +{ + int i; + mtip_deinit_port(port); + + /* Program the command list base and FIS base addresses */ + if (readl(port->dd->mmio + HOST_CAP) & HOST_CAP_64) { + writel((port->command_list_dma >> 16) >> 16, + port->mmio + PORT_LST_ADDR_HI); + writel((port->rxfis_dma >> 16) >> 16, + port->mmio + PORT_FIS_ADDR_HI); + } + + writel(port->command_list_dma & 0xFFFFFFFF, + port->mmio + PORT_LST_ADDR); + writel(port->rxfis_dma & 0xFFFFFFFF, port->mmio + PORT_FIS_ADDR); + + /* Clear SError */ + writel(readl(port->mmio + PORT_SCR_ERR), port->mmio + PORT_SCR_ERR); + + /* reset the completed registers.*/ + for (i = 0; i < port->dd->slot_groups; i++) + writel(0xFFFFFFFF, port->completed[i]); + + /* Clear any pending interrupts for this port */ + writel(readl(port->mmio + PORT_IRQ_STAT), port->mmio + PORT_IRQ_STAT); + + /* Enable port interrupts */ + writel(DEF_PORT_IRQ, port->mmio + PORT_IRQ_MASK); +} + +/* + * Restart a port + * + * @port Pointer to the port data structure. + * + * return value + * None + */ +static void mtip_restart_port(struct mtip_port *port) +{ + unsigned long timeout; + + /* Disable the DMA engine */ + mtip_enable_engine(port, 0); + + /* Chip quirk: wait up to 500ms for PxCMD.CR == 0 */ + timeout = jiffies + msecs_to_jiffies(500); + while ((readl(port->mmio + PORT_CMD) & PORT_CMD_LIST_ON) + && time_before(jiffies, timeout)) + ; + + /* + * Chip quirk: escalate to hba reset if + * PxCMD.CR not clear after 500 ms + */ + if (readl(port->mmio + PORT_CMD) & PORT_CMD_LIST_ON) { + dev_warn(&port->dd->pdev->dev, + "PxCMD.CR not clear, escalating reset\n"); + + if (hba_reset_nosleep(port->dd)) + dev_err(&port->dd->pdev->dev, + "HBA reset escalation failed.\n"); + + /* 30 ms delay before com reset to quiesce chip */ + mdelay(30); + } + + dev_warn(&port->dd->pdev->dev, "Issuing COM reset\n"); + + /* Set PxSCTL.DET */ + writel(readl(port->mmio + PORT_SCR_CTL) | + 1, port->mmio + PORT_SCR_CTL); + readl(port->mmio + PORT_SCR_CTL); + + /* Wait 1 ms to quiesce chip function */ + timeout = jiffies + msecs_to_jiffies(1); + while (time_before(jiffies, timeout)) + ; + + /* Clear PxSCTL.DET */ + writel(readl(port->mmio + PORT_SCR_CTL) & ~1, + port->mmio + PORT_SCR_CTL); + readl(port->mmio + PORT_SCR_CTL); + + /* Wait 500 ms for bit 0 of PORT_SCR_STS to be set */ + timeout = jiffies + msecs_to_jiffies(500); + while (((readl(port->mmio + PORT_SCR_STAT) & 0x01) == 0) + && time_before(jiffies, timeout)) + ; + + if ((readl(port->mmio + PORT_SCR_STAT) & 0x01) == 0) + dev_warn(&port->dd->pdev->dev, + "COM reset failed\n"); + + /* Clear SError, the PxSERR.DIAG.x should be set so clear it */ + writel(readl(port->mmio + PORT_SCR_ERR), port->mmio + PORT_SCR_ERR); + + /* Enable the DMA engine */ + mtip_enable_engine(port, 1); +} + +/* + * Called periodically to see if any read/write commands are + * taking too long to complete. + * + * @data Pointer to the PORT data structure. + * + * return value + * None + */ +static void mtip_timeout_function(unsigned long int data) +{ + struct mtip_port *port = (struct mtip_port *) data; + struct host_to_dev_fis *fis; + struct mtip_cmd *command; + int tag, cmdto_cnt = 0; + unsigned int bit, group; + unsigned int num_command_slots = port->dd->slot_groups * 32; + + if (unlikely(!port)) + return; + + if (atomic_read(&port->dd->resumeflag) == true) { + mod_timer(&port->cmd_timer, + jiffies + msecs_to_jiffies(30000)); + return; + } + + for (tag = 0; tag < num_command_slots; tag++) { + /* + * Skip internal command slot as it has + * its own timeout mechanism + */ + if (tag == MTIP_TAG_INTERNAL) + continue; + + if (atomic_read(&port->commands[tag].active) && + (time_after(jiffies, port->commands[tag].comp_time))) { + group = tag >> 5; + bit = tag & 0x1F; + + command = &port->commands[tag]; + fis = (struct host_to_dev_fis *) command->command; + + dev_warn(&port->dd->pdev->dev, + "Timeout for command tag %d\n", tag); + + cmdto_cnt++; + if (cmdto_cnt == 1) + set_bit(MTIP_FLAG_EH_ACTIVE_BIT, &port->flags); + + /* + * Clear the completed bit. This should prevent + * any interrupt handlers from trying to retire + * the command. + */ + writel(1 << bit, port->completed[group]); + + /* Call the async completion callback. */ + if (likely(command->async_callback)) + command->async_callback(command->async_data, + -EIO); + command->async_callback = NULL; + command->comp_func = NULL; + + /* Unmap the DMA scatter list entries */ + dma_unmap_sg(&port->dd->pdev->dev, + command->sg, + command->scatter_ents, + command->direction); + + /* + * Clear the allocated bit and active tag for the + * command. + */ + atomic_set(&port->commands[tag].active, 0); + release_slot(port, tag); + + up(&port->cmd_slot); + } + } + + if (cmdto_cnt) { + dev_warn(&port->dd->pdev->dev, + "%d commands timed out: restarting port", + cmdto_cnt); + mtip_restart_port(port); + clear_bit(MTIP_FLAG_EH_ACTIVE_BIT, &port->flags); + wake_up_interruptible(&port->svc_wait); + } + + /* Restart the timer */ + mod_timer(&port->cmd_timer, + jiffies + msecs_to_jiffies(MTIP_TIMEOUT_CHECK_PERIOD)); +} + +/* + * IO completion function. + * + * This completion function is called by the driver ISR when a + * command that was issued by the kernel completes. It first calls the + * asynchronous completion function which normally calls back into the block + * layer passing the asynchronous callback data, then unmaps the + * scatter list associated with the completed command, and finally + * clears the allocated bit associated with the completed command. + * + * @port Pointer to the port data structure. + * @tag Tag of the command. + * @data Pointer to driver_data. + * @status Completion status. + * + * return value + * None + */ +static void mtip_async_complete(struct mtip_port *port, + int tag, + void *data, + int status) +{ + struct mtip_cmd *command; + struct driver_data *dd = data; + int cb_status = status ? -EIO : 0; + + if (unlikely(!dd) || unlikely(!port)) + return; + + command = &port->commands[tag]; + + if (unlikely(status == PORT_IRQ_TF_ERR)) { + dev_warn(&port->dd->pdev->dev, + "Command tag %d failed due to TFE\n", tag); + } + + /* Upper layer callback */ + if (likely(command->async_callback)) + command->async_callback(command->async_data, cb_status); + + command->async_callback = NULL; + command->comp_func = NULL; + + /* Unmap the DMA scatter list entries */ + dma_unmap_sg(&dd->pdev->dev, + command->sg, + command->scatter_ents, + command->direction); + + /* Clear the allocated and active bits for the command */ + atomic_set(&port->commands[tag].active, 0); + release_slot(port, tag); + + up(&port->cmd_slot); +} + +/* + * Internal command completion callback function. + * + * This function is normally called by the driver ISR when an internal + * command completed. This function signals the command completion by + * calling complete(). + * + * @port Pointer to the port data structure. + * @tag Tag of the command that has completed. + * @data Pointer to a completion structure. + * @status Completion status. + * + * return value + * None + */ +static void mtip_completion(struct mtip_port *port, + int tag, + void *data, + int status) +{ + struct mtip_cmd *command = &port->commands[tag]; + struct completion *waiting = data; + if (unlikely(status == PORT_IRQ_TF_ERR)) + dev_warn(&port->dd->pdev->dev, + "Internal command %d completed with TFE\n", tag); + + command->async_callback = NULL; + command->comp_func = NULL; + + complete(waiting); +} + +/* + * Helper function for tag logging + */ +static void print_tags(struct driver_data *dd, + char *msg, + unsigned long *tagbits) +{ + unsigned int tag, count = 0; + + for (tag = 0; tag < (dd->slot_groups) * 32; tag++) { + if (test_bit(tag, tagbits)) + count++; + } + if (count) + dev_info(&dd->pdev->dev, "%s [%i tags]\n", msg, count); +} + +/* + * Handle an error. + * + * @dd Pointer to the DRIVER_DATA structure. + * + * return value + * None + */ +static void mtip_handle_tfe(struct driver_data *dd) +{ + int group, tag, bit, reissue; + struct mtip_port *port; + struct mtip_cmd *command; + u32 completed; + struct host_to_dev_fis *fis; + unsigned long tagaccum[SLOTBITS_IN_LONGS]; + + dev_warn(&dd->pdev->dev, "Taskfile error\n"); + + port = dd->port; + + /* Stop the timer to prevent command timeouts. */ + del_timer(&port->cmd_timer); + + /* Set eh_active */ + set_bit(MTIP_FLAG_EH_ACTIVE_BIT, &port->flags); + + /* Loop through all the groups */ + for (group = 0; group < dd->slot_groups; group++) { + completed = readl(port->completed[group]); + + /* clear completed status register in the hardware.*/ + writel(completed, port->completed[group]); + + /* clear the tag accumulator */ + memset(tagaccum, 0, SLOTBITS_IN_LONGS * sizeof(long)); + + /* Process successfully completed commands */ + for (bit = 0; bit < 32 && completed; bit++) { + if (!(completed & (1<commands[tag]; + if (likely(command->comp_func)) { + set_bit(tag, tagaccum); + atomic_set(&port->commands[tag].active, 0); + command->comp_func(port, + tag, + command->comp_data, + 0); + } else { + dev_err(&port->dd->pdev->dev, + "Missing completion func for tag %d", + tag); + if (mtip_check_surprise_removal(dd->pdev)) { + mtip_command_cleanup(dd); + /* don't proceed further */ + return; + } + } + } + } + print_tags(dd, "TFE tags completed:", tagaccum); + + /* Restart the port */ + mdelay(20); + mtip_restart_port(port); + + /* clear the tag accumulator */ + memset(tagaccum, 0, SLOTBITS_IN_LONGS * sizeof(long)); + + /* Loop through all the groups */ + for (group = 0; group < dd->slot_groups; group++) { + for (bit = 0; bit < 32; bit++) { + reissue = 1; + tag = (group << 5) + bit; + + /* If the active bit is set re-issue the command */ + if (atomic_read(&port->commands[tag].active) == 0) + continue; + + fis = (struct host_to_dev_fis *) + port->commands[tag].command; + + /* Should re-issue? */ + if (tag == MTIP_TAG_INTERNAL || + fis->command == ATA_CMD_SET_FEATURES) + reissue = 0; + + /* + * First check if this command has + * exceeded its retries. + */ + if (reissue && + (port->commands[tag].retries-- > 0)) { + + set_bit(tag, tagaccum); + + /* Update the timeout value. */ + port->commands[tag].comp_time = + jiffies + msecs_to_jiffies( + MTIP_NCQ_COMMAND_TIMEOUT_MS); + /* Re-issue the command. */ + mtip_issue_ncq_command(port, tag); + + continue; + } + + /* Retire a command that will not be reissued */ + dev_warn(&port->dd->pdev->dev, + "retiring tag %d\n", tag); + atomic_set(&port->commands[tag].active, 0); + + if (port->commands[tag].comp_func) + port->commands[tag].comp_func( + port, + tag, + port->commands[tag].comp_data, + PORT_IRQ_TF_ERR); + else + dev_warn(&port->dd->pdev->dev, + "Bad completion for tag %d\n", + tag); + } + } + print_tags(dd, "TFE tags reissued:", tagaccum); + + /* clear eh_active */ + clear_bit(MTIP_FLAG_EH_ACTIVE_BIT, &port->flags); + wake_up_interruptible(&port->svc_wait); + + mod_timer(&port->cmd_timer, + jiffies + msecs_to_jiffies(MTIP_TIMEOUT_CHECK_PERIOD)); +} + +/* + * Handle a set device bits interrupt + */ +static inline void mtip_process_sdbf(struct driver_data *dd) +{ + struct mtip_port *port = dd->port; + int group, tag, bit; + u32 completed; + struct mtip_cmd *command; + + /* walk all bits in all slot groups */ + for (group = 0; group < dd->slot_groups; group++) { + completed = readl(port->completed[group]); + + /* clear completed status register in the hardware.*/ + writel(completed, port->completed[group]); + + /* Process completed commands. */ + for (bit = 0; + (bit < 32) && completed; + bit++, completed >>= 1) { + if (completed & 0x01) { + tag = (group << 5) | bit; + + /* skip internal command slot. */ + if (unlikely(tag == MTIP_TAG_INTERNAL)) + continue; + + command = &port->commands[tag]; + /* make internal callback */ + if (likely(command->comp_func)) { + command->comp_func( + port, + tag, + command->comp_data, + 0); + } else { + dev_warn(&dd->pdev->dev, + "Null completion " + "for tag %d", + tag); + + if (mtip_check_surprise_removal( + dd->pdev)) { + mtip_command_cleanup(dd); + return; + } + } + } + } + } +} + +/* + * Process legacy pio and d2h interrupts + */ +static inline void mtip_process_legacy(struct driver_data *dd, u32 port_stat) +{ + struct mtip_port *port = dd->port; + struct mtip_cmd *cmd = &port->commands[MTIP_TAG_INTERNAL]; + + if (test_bit(MTIP_FLAG_IC_ACTIVE_BIT, &port->flags) && + (cmd != NULL) && !(readl(port->cmd_issue[MTIP_TAG_INTERNAL]) + & (1 << MTIP_TAG_INTERNAL))) { + if (cmd->comp_func) { + cmd->comp_func(port, + MTIP_TAG_INTERNAL, + cmd->comp_data, + 0); + return; + } + } + + dev_warn(&dd->pdev->dev, "IRQ status 0x%x ignored.\n", port_stat); + + return; +} + +/* + * Demux and handle errors + */ +static inline void mtip_process_errors(struct driver_data *dd, u32 port_stat) +{ + if (likely(port_stat & (PORT_IRQ_TF_ERR | PORT_IRQ_IF_ERR))) + mtip_handle_tfe(dd); + + if (unlikely(port_stat & PORT_IRQ_CONNECT)) { + dev_warn(&dd->pdev->dev, + "Clearing PxSERR.DIAG.x\n"); + writel((1 << 26), dd->port->mmio + PORT_SCR_ERR); + } + + if (unlikely(port_stat & PORT_IRQ_PHYRDY)) { + dev_warn(&dd->pdev->dev, + "Clearing PxSERR.DIAG.n\n"); + writel((1 << 16), dd->port->mmio + PORT_SCR_ERR); + } + + if (unlikely(port_stat & ~PORT_IRQ_HANDLED)) { + dev_warn(&dd->pdev->dev, + "Port stat errors %x unhandled\n", + (port_stat & ~PORT_IRQ_HANDLED)); + } +} + +static inline irqreturn_t mtip_handle_irq(struct driver_data *data) +{ + struct driver_data *dd = (struct driver_data *) data; + struct mtip_port *port = dd->port; + u32 hba_stat, port_stat; + int rv = IRQ_NONE; + + hba_stat = readl(dd->mmio + HOST_IRQ_STAT); + if (hba_stat) { + rv = IRQ_HANDLED; + + /* Acknowledge the interrupt status on the port.*/ + port_stat = readl(port->mmio + PORT_IRQ_STAT); + writel(port_stat, port->mmio + PORT_IRQ_STAT); + + /* Demux port status */ + if (likely(port_stat & PORT_IRQ_SDB_FIS)) + mtip_process_sdbf(dd); + + if (unlikely(port_stat & PORT_IRQ_ERR)) { + if (unlikely(mtip_check_surprise_removal(dd->pdev))) { + mtip_command_cleanup(dd); + /* don't proceed further */ + return IRQ_HANDLED; + } + + mtip_process_errors(dd, port_stat & PORT_IRQ_ERR); + } + + if (unlikely(port_stat & PORT_IRQ_LEGACY)) + mtip_process_legacy(dd, port_stat & PORT_IRQ_LEGACY); + } + + /* acknowledge interrupt */ + writel(hba_stat, dd->mmio + HOST_IRQ_STAT); + + return rv; +} + +/* + * Wrapper for mtip_handle_irq + * (ignores return code) + */ +static void mtip_tasklet(unsigned long data) +{ + mtip_handle_irq((struct driver_data *) data); +} + +/* + * HBA interrupt subroutine. + * + * @irq IRQ number. + * @instance Pointer to the driver data structure. + * + * return value + * IRQ_HANDLED A HBA interrupt was pending and handled. + * IRQ_NONE This interrupt was not for the HBA. + */ +static irqreturn_t mtip_irq_handler(int irq, void *instance) +{ + struct driver_data *dd = instance; + tasklet_schedule(&dd->tasklet); + return IRQ_HANDLED; +} + +static void mtip_issue_non_ncq_command(struct mtip_port *port, int tag) +{ + atomic_set(&port->commands[tag].active, 1); + writel(1 << MTIP_TAG_BIT(tag), + port->cmd_issue[MTIP_TAG_INDEX(tag)]); +} + +/* + * Wait for port to quiesce + * + * @port Pointer to port data structure + * @timeout Max duration to wait (ms) + * + * return value + * 0 Success + * -EBUSY Commands still active + */ +static int mtip_quiesce_io(struct mtip_port *port, unsigned long timeout) +{ + unsigned long to; + unsigned int n; + unsigned int active = 1; + + to = jiffies + msecs_to_jiffies(timeout); + do { + if (test_bit(MTIP_FLAG_SVC_THD_ACTIVE_BIT, &port->flags) && + test_bit(MTIP_FLAG_ISSUE_CMDS_BIT, &port->flags)) { + msleep(20); + continue; /* svc thd is actively issuing commands */ + } + /* + * Ignore s_active bit 0 of array element 0. + * This bit will always be set + */ + active = readl(port->s_active[0]) & 0xFFFFFFFE; + for (n = 1; n < port->dd->slot_groups; n++) + active |= readl(port->s_active[n]); + + if (!active) + break; + + msleep(20); + } while (time_before(jiffies, to)); + + return active ? -EBUSY : 0; +} + +/* + * Execute an internal command and wait for the completion. + * + * @port Pointer to the port data structure. + * @fis Pointer to the FIS that describes the command. + * @fis_len Length in WORDS of the FIS. + * @buffer DMA accessible for command data. + * @buf_len Length, in bytes, of the data buffer. + * @opts Command header options, excluding the FIS length + * and the number of PRD entries. + * @timeout Time in ms to wait for the command to complete. + * + * return value + * 0 Command completed successfully. + * -EFAULT The buffer address is not correctly aligned. + * -EBUSY Internal command or other IO in progress. + * -EAGAIN Time out waiting for command to complete. + */ +static int mtip_exec_internal_command(struct mtip_port *port, + void *fis, + int fis_len, + dma_addr_t buffer, + int buf_len, + u32 opts, + gfp_t atomic, + unsigned long timeout) +{ + struct mtip_cmd_sg *command_sg; + DECLARE_COMPLETION_ONSTACK(wait); + int rv = 0; + struct mtip_cmd *int_cmd = &port->commands[MTIP_TAG_INTERNAL]; + + /* Make sure the buffer is 8 byte aligned. This is asic specific. */ + if (buffer & 0x00000007) { + dev_err(&port->dd->pdev->dev, + "SG buffer is not 8 byte aligned\n"); + return -EFAULT; + } + + /* Only one internal command should be running at a time */ + if (test_and_set_bit(MTIP_TAG_INTERNAL, port->allocated)) { + dev_warn(&port->dd->pdev->dev, + "Internal command already active\n"); + return -EBUSY; + } + set_bit(MTIP_FLAG_IC_ACTIVE_BIT, &port->flags); + + if (atomic == GFP_KERNEL) { + /* wait for io to complete if non atomic */ + if (mtip_quiesce_io(port, 5000) < 0) { + dev_warn(&port->dd->pdev->dev, + "Failed to quiesce IO\n"); + release_slot(port, MTIP_TAG_INTERNAL); + clear_bit(MTIP_FLAG_IC_ACTIVE_BIT, &port->flags); + wake_up_interruptible(&port->svc_wait); + return -EBUSY; + } + + /* Set the completion function and data for the command. */ + int_cmd->comp_data = &wait; + int_cmd->comp_func = mtip_completion; + + } else { + /* Clear completion - we're going to poll */ + int_cmd->comp_data = NULL; + int_cmd->comp_func = NULL; + } + + /* Copy the command to the command table */ + memcpy(int_cmd->command, fis, fis_len*4); + + /* Populate the SG list */ + int_cmd->command_header->opts = + __force_bit2int cpu_to_le32(opts | fis_len); + if (buf_len) { + command_sg = int_cmd->command + AHCI_CMD_TBL_HDR_SZ; + + command_sg->info = + __force_bit2int cpu_to_le32((buf_len-1) & 0x3FFFFF); + command_sg->dba = + __force_bit2int cpu_to_le32(buffer & 0xFFFFFFFF); + command_sg->dba_upper = + __force_bit2int cpu_to_le32((buffer >> 16) >> 16); + + int_cmd->command_header->opts |= + __force_bit2int cpu_to_le32((1 << 16)); + } + + /* Populate the command header */ + int_cmd->command_header->byte_count = 0; + + /* Issue the command to the hardware */ + mtip_issue_non_ncq_command(port, MTIP_TAG_INTERNAL); + + /* Poll if atomic, wait_for_completion otherwise */ + if (atomic == GFP_KERNEL) { + /* Wait for the command to complete or timeout. */ + if (wait_for_completion_timeout( + &wait, + msecs_to_jiffies(timeout)) == 0) { + dev_err(&port->dd->pdev->dev, + "Internal command did not complete [%d] " + "within timeout of %lu ms\n", + atomic, timeout); + rv = -EAGAIN; + } + + if (readl(port->cmd_issue[MTIP_TAG_INTERNAL]) + & (1 << MTIP_TAG_INTERNAL)) { + dev_warn(&port->dd->pdev->dev, + "Retiring internal command but CI is 1.\n"); + } + + } else { + /* Spin for checking if command still outstanding */ + timeout = jiffies + msecs_to_jiffies(timeout); + + while ((readl( + port->cmd_issue[MTIP_TAG_INTERNAL]) + & (1 << MTIP_TAG_INTERNAL)) + && time_before(jiffies, timeout)) + ; + + if (readl(port->cmd_issue[MTIP_TAG_INTERNAL]) + & (1 << MTIP_TAG_INTERNAL)) { + dev_err(&port->dd->pdev->dev, + "Internal command did not complete [%d]\n", + atomic); + rv = -EAGAIN; + } + } + + /* Clear the allocated and active bits for the internal command. */ + atomic_set(&int_cmd->active, 0); + release_slot(port, MTIP_TAG_INTERNAL); + clear_bit(MTIP_FLAG_IC_ACTIVE_BIT, &port->flags); + wake_up_interruptible(&port->svc_wait); + + return rv; +} + +/* + * Byte-swap ATA ID strings. + * + * ATA identify data contains strings in byte-swapped 16-bit words. + * They must be swapped (on all architectures) to be usable as C strings. + * This function swaps bytes in-place. + * + * @buf The buffer location of the string + * @len The number of bytes to swap + * + * return value + * None + */ +static inline void ata_swap_string(u16 *buf, unsigned int len) +{ + int i; + for (i = 0; i < (len/2); i++) + be16_to_cpus(&buf[i]); +} + +/* + * Request the device identity information. + * + * If a user space buffer is not specified, i.e. is NULL, the + * identify information is still read from the drive and placed + * into the identify data buffer (@e port->identify) in the + * port data structure. + * When the identify buffer contains valid identify information @e + * port->identify_valid is non-zero. + * + * @port Pointer to the port structure. + * @user_buffer A user space buffer where the identify data should be + * copied. + * + * return value + * 0 Command completed successfully. + * -EFAULT An error occurred while coping data to the user buffer. + * -1 Command failed. + */ +static int mtip_get_identify(struct mtip_port *port, void __user *user_buffer) +{ + int rv = 0; + struct host_to_dev_fis fis; + + /* Build the FIS. */ + memset(&fis, 0, sizeof(struct host_to_dev_fis)); + fis.type = 0x27; + fis.opts = 1 << 7; + fis.command = ATA_CMD_ID_ATA; + + /* Set the identify information as invalid. */ + port->identify_valid = 0; + + /* Clear the identify information. */ + memset(port->identify, 0, sizeof(u16) * ATA_ID_WORDS); + + /* Execute the command. */ + if (mtip_exec_internal_command(port, + &fis, + 5, + port->identify_dma, + sizeof(u16) * ATA_ID_WORDS, + 0, + GFP_KERNEL, + MTIP_INTERNAL_COMMAND_TIMEOUT_MS) + < 0) { + rv = -1; + goto out; + } + + /* + * Perform any necessary byte-swapping. Yes, the kernel does in fact + * perform field-sensitive swapping on the string fields. + * See the kernel use of ata_id_string() for proof of this. + */ +#ifdef __LITTLE_ENDIAN + ata_swap_string(port->identify + 27, 40); /* model string*/ + ata_swap_string(port->identify + 23, 8); /* firmware string*/ + ata_swap_string(port->identify + 10, 20); /* serial# string*/ +#else + { + int i; + for (i = 0; i < ATA_ID_WORDS; i++) + port->identify[i] = le16_to_cpu(port->identify[i]); + } +#endif + + /* Set the identify buffer as valid. */ + port->identify_valid = 1; + + if (user_buffer) { + if (copy_to_user( + user_buffer, + port->identify, + ATA_ID_WORDS * sizeof(u16))) { + rv = -EFAULT; + goto out; + } + } + +out: + return rv; +} + +/* + * Issue a standby immediate command to the device. + * + * @port Pointer to the port structure. + * + * return value + * 0 Command was executed successfully. + * -1 An error occurred while executing the command. + */ +static int mtip_standby_immediate(struct mtip_port *port) +{ + int rv; + struct host_to_dev_fis fis; + + /* Build the FIS. */ + memset(&fis, 0, sizeof(struct host_to_dev_fis)); + fis.type = 0x27; + fis.opts = 1 << 7; + fis.command = ATA_CMD_STANDBYNOW1; + + /* Execute the command. Use a 15-second timeout for large drives. */ + rv = mtip_exec_internal_command(port, + &fis, + 5, + 0, + 0, + 0, + GFP_KERNEL, + 15000); + + return rv; +} + +/* + * Get the drive capacity. + * + * @dd Pointer to the device data structure. + * @sectors Pointer to the variable that will receive the sector count. + * + * return value + * 1 Capacity was returned successfully. + * 0 The identify information is invalid. + */ +static bool mtip_hw_get_capacity(struct driver_data *dd, sector_t *sectors) +{ + struct mtip_port *port = dd->port; + u64 total, raw0, raw1, raw2, raw3; + raw0 = port->identify[100]; + raw1 = port->identify[101]; + raw2 = port->identify[102]; + raw3 = port->identify[103]; + total = raw0 | raw1<<16 | raw2<<32 | raw3<<48; + *sectors = total; + return (bool) !!port->identify_valid; +} + +/* + * Reset the HBA. + * + * Resets the HBA by setting the HBA Reset bit in the Global + * HBA Control register. After setting the HBA Reset bit the + * function waits for 1 second before reading the HBA Reset + * bit to make sure it has cleared. If HBA Reset is not clear + * an error is returned. Cannot be used in non-blockable + * context. + * + * @dd Pointer to the driver data structure. + * + * return value + * 0 The reset was successful. + * -1 The HBA Reset bit did not clear. + */ +static int mtip_hba_reset(struct driver_data *dd) +{ + mtip_deinit_port(dd->port); + + /* Set the reset bit */ + writel(HOST_RESET, dd->mmio + HOST_CTL); + + /* Flush */ + readl(dd->mmio + HOST_CTL); + + /* Wait for reset to clear */ + ssleep(1); + + /* Check the bit has cleared */ + if (readl(dd->mmio + HOST_CTL) & HOST_RESET) { + dev_err(&dd->pdev->dev, + "Reset bit did not clear.\n"); + return -1; + } + + return 0; +} + +/* + * Display the identify command data. + * + * @port Pointer to the port data structure. + * + * return value + * None + */ +static void mtip_dump_identify(struct mtip_port *port) +{ + sector_t sectors; + unsigned short revid; + char cbuf[42]; + + if (!port->identify_valid) + return; + + strlcpy(cbuf, (char *)(port->identify+10), 21); + dev_info(&port->dd->pdev->dev, + "Serial No.: %s\n", cbuf); + + strlcpy(cbuf, (char *)(port->identify+23), 9); + dev_info(&port->dd->pdev->dev, + "Firmware Ver.: %s\n", cbuf); + + strlcpy(cbuf, (char *)(port->identify+27), 41); + dev_info(&port->dd->pdev->dev, "Model: %s\n", cbuf); + + if (mtip_hw_get_capacity(port->dd, §ors)) + dev_info(&port->dd->pdev->dev, + "Capacity: %llu sectors (%llu MB)\n", + (u64)sectors, + ((u64)sectors) * ATA_SECT_SIZE >> 20); + + pci_read_config_word(port->dd->pdev, PCI_REVISION_ID, &revid); + switch (revid & 0xFF) { + case 0x1: + strlcpy(cbuf, "A0", 3); + break; + case 0x3: + strlcpy(cbuf, "A2", 3); + break; + default: + strlcpy(cbuf, "?", 2); + break; + } + dev_info(&port->dd->pdev->dev, + "Card Type: %s\n", cbuf); +} + +/* + * Map the commands scatter list into the command table. + * + * @command Pointer to the command. + * @nents Number of scatter list entries. + * + * return value + * None + */ +static inline void fill_command_sg(struct driver_data *dd, + struct mtip_cmd *command, + int nents) +{ + int n; + unsigned int dma_len; + struct mtip_cmd_sg *command_sg; + struct scatterlist *sg = command->sg; + + command_sg = command->command + AHCI_CMD_TBL_HDR_SZ; + + for (n = 0; n < nents; n++) { + dma_len = sg_dma_len(sg); + if (dma_len > 0x400000) + dev_err(&dd->pdev->dev, + "DMA segment length truncated\n"); + command_sg->info = __force_bit2int + cpu_to_le32((dma_len-1) & 0x3FFFFF); + command_sg->dba = __force_bit2int + cpu_to_le32(sg_dma_address(sg)); + command_sg->dba_upper = __force_bit2int + cpu_to_le32((sg_dma_address(sg) >> 16) >> 16); + command_sg++; + sg++; + } +} + +/* + * @brief Execute a drive command. + * + * return value 0 The command completed successfully. + * return value -1 An error occurred while executing the command. + */ +static int exec_drive_task(struct mtip_port *port, u8 *command) +{ + struct host_to_dev_fis fis; + struct host_to_dev_fis *reply = (port->rxfis + RX_FIS_D2H_REG); + + /* Build the FIS. */ + memset(&fis, 0, sizeof(struct host_to_dev_fis)); + fis.type = 0x27; + fis.opts = 1 << 7; + fis.command = command[0]; + fis.features = command[1]; + fis.sect_count = command[2]; + fis.sector = command[3]; + fis.cyl_low = command[4]; + fis.cyl_hi = command[5]; + fis.device = command[6] & ~0x10; /* Clear the dev bit*/ + + + dbg_printk(MTIP_DRV_NAME "%s: User Command: cmd %x, feat %x, " + "nsect %x, sect %x, lcyl %x, " + "hcyl %x, sel %x\n", + __func__, + command[0], + command[1], + command[2], + command[3], + command[4], + command[5], + command[6]); + + /* Execute the command. */ + if (mtip_exec_internal_command(port, + &fis, + 5, + 0, + 0, + 0, + GFP_KERNEL, + MTIP_IOCTL_COMMAND_TIMEOUT_MS) < 0) { + return -1; + } + + command[0] = reply->command; /* Status*/ + command[1] = reply->features; /* Error*/ + command[4] = reply->cyl_low; + command[5] = reply->cyl_hi; + + dbg_printk(MTIP_DRV_NAME "%s: Completion Status: stat %x, " + "err %x , cyl_lo %x cyl_hi %x\n", + __func__, + command[0], + command[1], + command[4], + command[5]); + + return 0; +} + +/* + * @brief Execute a drive command. + * + * @param port Pointer to the port data structure. + * @param command Pointer to the user specified command parameters. + * @param user_buffer Pointer to the user space buffer where read sector + * data should be copied. + * + * return value 0 The command completed successfully. + * return value -EFAULT An error occurred while copying the completion + * data to the user space buffer. + * return value -1 An error occurred while executing the command. + */ +static int exec_drive_command(struct mtip_port *port, u8 *command, + void __user *user_buffer) +{ + struct host_to_dev_fis fis; + struct host_to_dev_fis *reply = (port->rxfis + RX_FIS_D2H_REG); + + /* Build the FIS. */ + memset(&fis, 0, sizeof(struct host_to_dev_fis)); + fis.type = 0x27; + fis.opts = 1 << 7; + fis.command = command[0]; + fis.features = command[2]; + fis.sect_count = command[3]; + if (fis.command == ATA_CMD_SMART) { + fis.sector = command[1]; + fis.cyl_low = 0x4F; + fis.cyl_hi = 0xC2; + } + + dbg_printk(MTIP_DRV_NAME + "%s: User Command: cmd %x, sect %x, " + "feat %x, sectcnt %x\n", + __func__, + command[0], + command[1], + command[2], + command[3]); + + memset(port->sector_buffer, 0x00, ATA_SECT_SIZE); + + /* Execute the command. */ + if (mtip_exec_internal_command(port, + &fis, + 5, + port->sector_buffer_dma, + (command[3] != 0) ? ATA_SECT_SIZE : 0, + 0, + GFP_KERNEL, + MTIP_IOCTL_COMMAND_TIMEOUT_MS) + < 0) { + return -1; + } + + /* Collect the completion status. */ + command[0] = reply->command; /* Status*/ + command[1] = reply->features; /* Error*/ + command[2] = command[3]; + + dbg_printk(MTIP_DRV_NAME + "%s: Completion Status: stat %x, " + "err %x, cmd %x\n", + __func__, + command[0], + command[1], + command[2]); + + if (user_buffer && command[3]) { + if (copy_to_user(user_buffer, + port->sector_buffer, + ATA_SECT_SIZE * command[3])) { + return -EFAULT; + } + } + + return 0; +} + +/* + * Indicates whether a command has a single sector payload. + * + * @command passed to the device to perform the certain event. + * @features passed to the device to perform the certain event. + * + * return value + * 1 command is one that always has a single sector payload, + * regardless of the value in the Sector Count field. + * 0 otherwise + * + */ +static unsigned int implicit_sector(unsigned char command, + unsigned char features) +{ + unsigned int rv = 0; + + /* list of commands that have an implicit sector count of 1 */ + switch (command) { + case ATA_CMD_SEC_SET_PASS: + case ATA_CMD_SEC_UNLOCK: + case ATA_CMD_SEC_ERASE_PREP: + case ATA_CMD_SEC_ERASE_UNIT: + case ATA_CMD_SEC_FREEZE_LOCK: + case ATA_CMD_SEC_DISABLE_PASS: + case ATA_CMD_PMP_READ: + case ATA_CMD_PMP_WRITE: + rv = 1; + break; + case ATA_CMD_SET_MAX: + if (features == ATA_SET_MAX_UNLOCK) + rv = 1; + break; + case ATA_CMD_SMART: + if ((features == ATA_SMART_READ_VALUES) || + (features == ATA_SMART_READ_THRESHOLDS)) + rv = 1; + break; + case ATA_CMD_CONF_OVERLAY: + if ((features == ATA_DCO_IDENTIFY) || + (features == ATA_DCO_SET)) + rv = 1; + break; + } + return rv; +} + +/* + * Executes a taskfile + * See ide_taskfile_ioctl() for derivation + */ +static int exec_drive_taskfile(struct driver_data *dd, + void __user *buf, + ide_task_request_t *req_task, + int outtotal) +{ + struct host_to_dev_fis fis; + struct host_to_dev_fis *reply; + u8 *outbuf = NULL; + u8 *inbuf = NULL; + dma_addr_t outbuf_dma = 0; + dma_addr_t inbuf_dma = 0; + dma_addr_t dma_buffer = 0; + int err = 0; + unsigned int taskin = 0; + unsigned int taskout = 0; + u8 nsect = 0; + unsigned int timeout = MTIP_IOCTL_COMMAND_TIMEOUT_MS; + unsigned int force_single_sector; + unsigned int transfer_size; + unsigned long task_file_data; + int intotal = outtotal + req_task->out_size; + + taskout = req_task->out_size; + taskin = req_task->in_size; + /* 130560 = 512 * 0xFF*/ + if (taskin > 130560 || taskout > 130560) { + err = -EINVAL; + goto abort; + } + + if (taskout) { + outbuf = kzalloc(taskout, GFP_KERNEL); + if (outbuf == NULL) { + err = -ENOMEM; + goto abort; + } + if (copy_from_user(outbuf, buf + outtotal, taskout)) { + err = -EFAULT; + goto abort; + } + outbuf_dma = pci_map_single(dd->pdev, + outbuf, + taskout, + DMA_TO_DEVICE); + if (outbuf_dma == 0) { + err = -ENOMEM; + goto abort; + } + dma_buffer = outbuf_dma; + } + + if (taskin) { + inbuf = kzalloc(taskin, GFP_KERNEL); + if (inbuf == NULL) { + err = -ENOMEM; + goto abort; + } + + if (copy_from_user(inbuf, buf + intotal, taskin)) { + err = -EFAULT; + goto abort; + } + inbuf_dma = pci_map_single(dd->pdev, + inbuf, + taskin, DMA_FROM_DEVICE); + if (inbuf_dma == 0) { + err = -ENOMEM; + goto abort; + } + dma_buffer = inbuf_dma; + } + + /* only supports PIO and non-data commands from this ioctl. */ + switch (req_task->data_phase) { + case TASKFILE_OUT: + nsect = taskout / ATA_SECT_SIZE; + reply = (dd->port->rxfis + RX_FIS_PIO_SETUP); + break; + case TASKFILE_IN: + reply = (dd->port->rxfis + RX_FIS_PIO_SETUP); + break; + case TASKFILE_NO_DATA: + reply = (dd->port->rxfis + RX_FIS_D2H_REG); + break; + default: + err = -EINVAL; + goto abort; + } + + /* Build the FIS. */ + memset(&fis, 0, sizeof(struct host_to_dev_fis)); + + fis.type = 0x27; + fis.opts = 1 << 7; + fis.command = req_task->io_ports[7]; + fis.features = req_task->io_ports[1]; + fis.sect_count = req_task->io_ports[2]; + fis.lba_low = req_task->io_ports[3]; + fis.lba_mid = req_task->io_ports[4]; + fis.lba_hi = req_task->io_ports[5]; + /* Clear the dev bit*/ + fis.device = req_task->io_ports[6] & ~0x10; + + if ((req_task->in_flags.all == 0) && (req_task->out_flags.all & 1)) { + req_task->in_flags.all = + IDE_TASKFILE_STD_IN_FLAGS | + (IDE_HOB_STD_IN_FLAGS << 8); + fis.lba_low_ex = req_task->hob_ports[3]; + fis.lba_mid_ex = req_task->hob_ports[4]; + fis.lba_hi_ex = req_task->hob_ports[5]; + fis.features_ex = req_task->hob_ports[1]; + fis.sect_cnt_ex = req_task->hob_ports[2]; + + } else { + req_task->in_flags.all = IDE_TASKFILE_STD_IN_FLAGS; + } + + force_single_sector = implicit_sector(fis.command, fis.features); + + if ((taskin || taskout) && (!fis.sect_count)) { + if (nsect) + fis.sect_count = nsect; + else { + if (!force_single_sector) { + dev_warn(&dd->pdev->dev, + "data movement but " + "sect_count is 0\n"); + err = -EINVAL; + goto abort; + } + } + } + + dbg_printk(MTIP_DRV_NAME + "taskfile: cmd %x, feat %x, nsect %x," + " sect/lbal %x, lcyl/lbam %x, hcyl/lbah %x," + " head/dev %x\n", + fis.command, + fis.features, + fis.sect_count, + fis.lba_low, + fis.lba_mid, + fis.lba_hi, + fis.device); + + switch (fis.command) { + case ATA_CMD_DOWNLOAD_MICRO: + /* Change timeout for Download Microcode to 60 seconds.*/ + timeout = 60000; + break; + case ATA_CMD_SEC_ERASE_UNIT: + /* Change timeout for Security Erase Unit to 4 minutes.*/ + timeout = 240000; + break; + case ATA_CMD_STANDBYNOW1: + /* Change timeout for standby immediate to 10 seconds.*/ + timeout = 10000; + break; + case 0xF7: + case 0xFA: + /* Change timeout for vendor unique command to 10 secs */ + timeout = 10000; + break; + case ATA_CMD_SMART: + /* Change timeout for vendor unique command to 10 secs */ + timeout = 10000; + break; + default: + timeout = MTIP_IOCTL_COMMAND_TIMEOUT_MS; + break; + } + + /* Determine the correct transfer size.*/ + if (force_single_sector) + transfer_size = ATA_SECT_SIZE; + else + transfer_size = ATA_SECT_SIZE * fis.sect_count; + + /* Execute the command.*/ + if (mtip_exec_internal_command(dd->port, + &fis, + 5, + dma_buffer, + transfer_size, + 0, + GFP_KERNEL, + timeout) < 0) { + err = -EIO; + goto abort; + } + + task_file_data = readl(dd->port->mmio+PORT_TFDATA); + + if ((req_task->data_phase == TASKFILE_IN) && !(task_file_data & 1)) { + reply = dd->port->rxfis + RX_FIS_PIO_SETUP; + req_task->io_ports[7] = reply->control; + } else { + reply = dd->port->rxfis + RX_FIS_D2H_REG; + req_task->io_ports[7] = reply->command; + } + + /* reclaim the DMA buffers.*/ + if (inbuf_dma) + pci_unmap_single(dd->pdev, inbuf_dma, + taskin, DMA_FROM_DEVICE); + if (outbuf_dma) + pci_unmap_single(dd->pdev, outbuf_dma, + taskout, DMA_TO_DEVICE); + inbuf_dma = 0; + outbuf_dma = 0; + + /* return the ATA registers to the caller.*/ + req_task->io_ports[1] = reply->features; + req_task->io_ports[2] = reply->sect_count; + req_task->io_ports[3] = reply->lba_low; + req_task->io_ports[4] = reply->lba_mid; + req_task->io_ports[5] = reply->lba_hi; + req_task->io_ports[6] = reply->device; + + if (req_task->out_flags.all & 1) { + + req_task->hob_ports[3] = reply->lba_low_ex; + req_task->hob_ports[4] = reply->lba_mid_ex; + req_task->hob_ports[5] = reply->lba_hi_ex; + req_task->hob_ports[1] = reply->features_ex; + req_task->hob_ports[2] = reply->sect_cnt_ex; + } + + /* Com rest after secure erase or lowlevel format */ + if (((fis.command == ATA_CMD_SEC_ERASE_UNIT) || + ((fis.command == 0xFC) && + (fis.features == 0x27 || fis.features == 0x72 || + fis.features == 0x62 || fis.features == 0x26))) && + !(reply->command & 1)) { + mtip_restart_port(dd->port); + } + + dbg_printk(MTIP_DRV_NAME + "%s: Completion: stat %x," + "err %x, sect_cnt %x, lbalo %x," + "lbamid %x, lbahi %x, dev %x\n", + __func__, + req_task->io_ports[7], + req_task->io_ports[1], + req_task->io_ports[2], + req_task->io_ports[3], + req_task->io_ports[4], + req_task->io_ports[5], + req_task->io_ports[6]); + + if (taskout) { + if (copy_to_user(buf + outtotal, outbuf, taskout)) { + err = -EFAULT; + goto abort; + } + } + if (taskin) { + if (copy_to_user(buf + intotal, inbuf, taskin)) { + err = -EFAULT; + goto abort; + } + } +abort: + if (inbuf_dma) + pci_unmap_single(dd->pdev, inbuf_dma, + taskin, DMA_FROM_DEVICE); + if (outbuf_dma) + pci_unmap_single(dd->pdev, outbuf_dma, + taskout, DMA_TO_DEVICE); + kfree(outbuf); + kfree(inbuf); + + return err; +} + +/* + * Handle IOCTL calls from the Block Layer. + * + * This function is called by the Block Layer when it receives an IOCTL + * command that it does not understand. If the IOCTL command is not supported + * this function returns -ENOTTY. + * + * @dd Pointer to the driver data structure. + * @cmd IOCTL command passed from the Block Layer. + * @arg IOCTL argument passed from the Block Layer. + * + * return value + * 0 The IOCTL completed successfully. + * -ENOTTY The specified command is not supported. + * -EFAULT An error occurred copying data to a user space buffer. + * -EIO An error occurred while executing the command. + */ +static int mtip_hw_ioctl(struct driver_data *dd, unsigned int cmd, + unsigned long arg) +{ + switch (cmd) { + case HDIO_GET_IDENTITY: + if (mtip_get_identify(dd->port, (void __user *) arg) < 0) { + dev_warn(&dd->pdev->dev, + "Unable to read identity\n"); + return -EIO; + } + + break; + case HDIO_DRIVE_CMD: + { + u8 drive_command[4]; + + /* Copy the user command info to our buffer. */ + if (copy_from_user(drive_command, + (void __user *) arg, + sizeof(drive_command))) + return -EFAULT; + + /* Execute the drive command. */ + if (exec_drive_command(dd->port, + drive_command, + (void __user *) (arg+4))) + return -EIO; + + /* Copy the status back to the users buffer. */ + if (copy_to_user((void __user *) arg, + drive_command, + sizeof(drive_command))) + return -EFAULT; + + break; + } + case HDIO_DRIVE_TASK: + { + u8 drive_command[7]; + + /* Copy the user command info to our buffer. */ + if (copy_from_user(drive_command, + (void __user *) arg, + sizeof(drive_command))) + return -EFAULT; + + /* Execute the drive command. */ + if (exec_drive_task(dd->port, drive_command)) + return -EIO; + + /* Copy the status back to the users buffer. */ + if (copy_to_user((void __user *) arg, + drive_command, + sizeof(drive_command))) + return -EFAULT; + + break; + } + case HDIO_DRIVE_TASKFILE: { + ide_task_request_t req_task; + int ret, outtotal; + + if (copy_from_user(&req_task, (void __user *) arg, + sizeof(req_task))) + return -EFAULT; + + outtotal = sizeof(req_task); + + ret = exec_drive_taskfile(dd, (void __user *) arg, + &req_task, outtotal); + + if (copy_to_user((void __user *) arg, &req_task, + sizeof(req_task))) + return -EFAULT; + + return ret; + } + + default: + return -EINVAL; + } + return 0; +} + +/* + * Submit an IO to the hw + * + * This function is called by the block layer to issue an io + * to the device. Upon completion, the callback function will + * be called with the data parameter passed as the callback data. + * + * @dd Pointer to the driver data structure. + * @start First sector to read. + * @nsect Number of sectors to read. + * @nents Number of entries in scatter list for the read command. + * @tag The tag of this read command. + * @callback Pointer to the function that should be called + * when the read completes. + * @data Callback data passed to the callback function + * when the read completes. + * @barrier If non-zero, this command must be completed before + * issuing any other commands. + * @dir Direction (read or write) + * + * return value + * None + */ +static void mtip_hw_submit_io(struct driver_data *dd, sector_t start, + int nsect, int nents, int tag, void *callback, + void *data, int barrier, int dir) +{ + struct host_to_dev_fis *fis; + struct mtip_port *port = dd->port; + struct mtip_cmd *command = &port->commands[tag]; + + /* Map the scatter list for DMA access */ + if (dir == READ) + nents = dma_map_sg(&dd->pdev->dev, command->sg, + nents, DMA_FROM_DEVICE); + else + nents = dma_map_sg(&dd->pdev->dev, command->sg, + nents, DMA_TO_DEVICE); + + command->scatter_ents = nents; + + /* + * The number of retries for this command before it is + * reported as a failure to the upper layers. + */ + command->retries = MTIP_MAX_RETRIES; + + /* Fill out fis */ + fis = command->command; + fis->type = 0x27; + fis->opts = 1 << 7; + fis->command = + (dir == READ ? ATA_CMD_FPDMA_READ : ATA_CMD_FPDMA_WRITE); + *((unsigned int *) &fis->lba_low) = (start & 0xFFFFFF); + *((unsigned int *) &fis->lba_low_ex) = ((start >> 24) & 0xFFFFFF); + fis->device = 1 << 6; + if (barrier) + fis->device |= FUA_BIT; + fis->features = nsect & 0xFF; + fis->features_ex = (nsect >> 8) & 0xFF; + fis->sect_count = ((tag << 3) | (tag >> 5)); + fis->sect_cnt_ex = 0; + fis->control = 0; + fis->res2 = 0; + fis->res3 = 0; + fill_command_sg(dd, command, nents); + + /* Populate the command header */ + command->command_header->opts = + __force_bit2int cpu_to_le32( + (nents << 16) | 5 | AHCI_CMD_PREFETCH); + command->command_header->byte_count = 0; + + /* + * Set the completion function and data for the command + * within this layer. + */ + command->comp_data = dd; + command->comp_func = mtip_async_complete; + command->direction = (dir == READ ? DMA_FROM_DEVICE : DMA_TO_DEVICE); + + /* + * Set the completion function and data for the command passed + * from the upper layer. + */ + command->async_data = data; + command->async_callback = callback; + + /* + * To prevent this command from being issued + * if an internal command is in progress or error handling is active. + */ + if (unlikely(test_bit(MTIP_FLAG_IC_ACTIVE_BIT, &port->flags) || + test_bit(MTIP_FLAG_EH_ACTIVE_BIT, &port->flags))) { + set_bit(tag, port->cmds_to_issue); + set_bit(MTIP_FLAG_ISSUE_CMDS_BIT, &port->flags); + return; + } + + /* Issue the command to the hardware */ + mtip_issue_ncq_command(port, tag); + + /* Set the command's timeout value.*/ + port->commands[tag].comp_time = jiffies + msecs_to_jiffies( + MTIP_NCQ_COMMAND_TIMEOUT_MS); +} + +/* + * Release a command slot. + * + * @dd Pointer to the driver data structure. + * @tag Slot tag + * + * return value + * None + */ +static void mtip_hw_release_scatterlist(struct driver_data *dd, int tag) +{ + release_slot(dd->port, tag); +} + +/* + * Obtain a command slot and return its associated scatter list. + * + * @dd Pointer to the driver data structure. + * @tag Pointer to an int that will receive the allocated command + * slot tag. + * + * return value + * Pointer to the scatter list for the allocated command slot + * or NULL if no command slots are available. + */ +static struct scatterlist *mtip_hw_get_scatterlist(struct driver_data *dd, + int *tag) +{ + /* + * It is possible that, even with this semaphore, a thread + * may think that no command slots are available. Therefore, we + * need to make an attempt to get_slot(). + */ + down(&dd->port->cmd_slot); + *tag = get_slot(dd->port); + + if (unlikely(*tag < 0)) + return NULL; + + return dd->port->commands[*tag].sg; +} + +/* + * Sysfs register/status dump. + * + * @dev Pointer to the device structure, passed by the kernrel. + * @attr Pointer to the device_attribute structure passed by the kernel. + * @buf Pointer to the char buffer that will receive the stats info. + * + * return value + * The size, in bytes, of the data copied into buf. + */ +static ssize_t hw_show_registers(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + u32 group_allocated; + struct driver_data *dd = dev_to_disk(dev)->private_data; + int size = 0; + int n; + + size += sprintf(&buf[size], "%s:\ns_active:\n", __func__); + + for (n = 0; n < dd->slot_groups; n++) + size += sprintf(&buf[size], "0x%08x\n", + readl(dd->port->s_active[n])); + + size += sprintf(&buf[size], "Command Issue:\n"); + + for (n = 0; n < dd->slot_groups; n++) + size += sprintf(&buf[size], "0x%08x\n", + readl(dd->port->cmd_issue[n])); + + size += sprintf(&buf[size], "Allocated:\n"); + + for (n = 0; n < dd->slot_groups; n++) { + if (sizeof(long) > sizeof(u32)) + group_allocated = + dd->port->allocated[n/2] >> (32*(n&1)); + else + group_allocated = dd->port->allocated[n]; + size += sprintf(&buf[size], "0x%08x\n", + group_allocated); + } + + size += sprintf(&buf[size], "completed:\n"); + + for (n = 0; n < dd->slot_groups; n++) + size += sprintf(&buf[size], "0x%08x\n", + readl(dd->port->completed[n])); + + size += sprintf(&buf[size], "PORT_IRQ_STAT 0x%08x\n", + readl(dd->port->mmio + PORT_IRQ_STAT)); + size += sprintf(&buf[size], "HOST_IRQ_STAT 0x%08x\n", + readl(dd->mmio + HOST_IRQ_STAT)); + + return size; +} +static DEVICE_ATTR(registers, S_IRUGO, hw_show_registers, NULL); + +/* + * Create the sysfs related attributes. + * + * @dd Pointer to the driver data structure. + * @kobj Pointer to the kobj for the block device. + * + * return value + * 0 Operation completed successfully. + * -EINVAL Invalid parameter. + */ +static int mtip_hw_sysfs_init(struct driver_data *dd, struct kobject *kobj) +{ + if (!kobj || !dd) + return -EINVAL; + + if (sysfs_create_file(kobj, &dev_attr_registers.attr)) + dev_warn(&dd->pdev->dev, + "Error creating registers sysfs entry\n"); + return 0; +} + +/* + * Remove the sysfs related attributes. + * + * @dd Pointer to the driver data structure. + * @kobj Pointer to the kobj for the block device. + * + * return value + * 0 Operation completed successfully. + * -EINVAL Invalid parameter. + */ +static int mtip_hw_sysfs_exit(struct driver_data *dd, struct kobject *kobj) +{ + if (!kobj || !dd) + return -EINVAL; + + sysfs_remove_file(kobj, &dev_attr_registers.attr); + + return 0; +} + +/* + * Perform any init/resume time hardware setup + * + * @dd Pointer to the driver data structure. + * + * return value + * None + */ +static inline void hba_setup(struct driver_data *dd) +{ + u32 hwdata; + hwdata = readl(dd->mmio + HOST_HSORG); + + /* interrupt bug workaround: use only 1 IS bit.*/ + writel(hwdata | + HSORG_DISABLE_SLOTGRP_INTR | + HSORG_DISABLE_SLOTGRP_PXIS, + dd->mmio + HOST_HSORG); +} + +/* + * Detect the details of the product, and store anything needed + * into the driver data structure. This includes product type and + * version and number of slot groups. + * + * @dd Pointer to the driver data structure. + * + * return value + * None + */ +static void mtip_detect_product(struct driver_data *dd) +{ + u32 hwdata; + unsigned int rev, slotgroups; + + /* + * HBA base + 0xFC [15:0] - vendor-specific hardware interface + * info register: + * [15:8] hardware/software interface rev# + * [ 3] asic-style interface + * [ 2:0] number of slot groups, minus 1 (only valid for asic-style). + */ + hwdata = readl(dd->mmio + HOST_HSORG); + + dd->product_type = MTIP_PRODUCT_UNKNOWN; + dd->slot_groups = 1; + + if (hwdata & 0x8) { + dd->product_type = MTIP_PRODUCT_ASICFPGA; + rev = (hwdata & HSORG_HWREV) >> 8; + slotgroups = (hwdata & HSORG_SLOTGROUPS) + 1; + dev_info(&dd->pdev->dev, + "ASIC-FPGA design, HS rev 0x%x, " + "%i slot groups [%i slots]\n", + rev, + slotgroups, + slotgroups * 32); + + if (slotgroups > MTIP_MAX_SLOT_GROUPS) { + dev_warn(&dd->pdev->dev, + "Warning: driver only supports " + "%i slot groups.\n", MTIP_MAX_SLOT_GROUPS); + slotgroups = MTIP_MAX_SLOT_GROUPS; + } + dd->slot_groups = slotgroups; + return; + } + + dev_warn(&dd->pdev->dev, "Unrecognized product id\n"); +} + +/* + * Blocking wait for FTL rebuild to complete + * + * @dd Pointer to the DRIVER_DATA structure. + * + * return value + * 0 FTL rebuild completed successfully + * -EFAULT FTL rebuild error/timeout/interruption + */ +static int mtip_ftl_rebuild_poll(struct driver_data *dd) +{ + unsigned long timeout, cnt = 0, start; + + dev_warn(&dd->pdev->dev, + "FTL rebuild in progress. Polling for completion.\n"); + + start = jiffies; + dd->ftlrebuildflag = 1; + timeout = jiffies + msecs_to_jiffies(MTIP_FTL_REBUILD_TIMEOUT_MS); + + do { + if (mtip_check_surprise_removal(dd->pdev)) + return -EFAULT; + + if (mtip_get_identify(dd->port, NULL) < 0) + return -EFAULT; + + if (*(dd->port->identify + MTIP_FTL_REBUILD_OFFSET) == + MTIP_FTL_REBUILD_MAGIC) { + ssleep(1); + /* Print message every 3 minutes */ + if (cnt++ >= 180) { + dev_warn(&dd->pdev->dev, + "FTL rebuild in progress (%d secs).\n", + jiffies_to_msecs(jiffies - start) / 1000); + cnt = 0; + } + } else { + dev_warn(&dd->pdev->dev, + "FTL rebuild complete (%d secs).\n", + jiffies_to_msecs(jiffies - start) / 1000); + dd->ftlrebuildflag = 0; + mtip_block_initialize(dd); + break; + } + ssleep(10); + } while (time_before(jiffies, timeout)); + + /* Check for timeout */ + if (dd->ftlrebuildflag) { + dev_err(&dd->pdev->dev, + "Timed out waiting for FTL rebuild to complete (%d secs).\n", + jiffies_to_msecs(jiffies - start) / 1000); + return -EFAULT; + } + + return 0; +} + +/* + * service thread to issue queued commands + * + * @data Pointer to the driver data structure. + * + * return value + * 0 + */ + +static int mtip_service_thread(void *data) +{ + struct driver_data *dd = (struct driver_data *)data; + unsigned long slot, slot_start, slot_wrap; + unsigned int num_cmd_slots = dd->slot_groups * 32; + struct mtip_port *port = dd->port; + + while (1) { + /* + * the condition is to check neither an internal command is + * is in progress nor error handling is active + */ + wait_event_interruptible(port->svc_wait, (port->flags) && + !test_bit(MTIP_FLAG_IC_ACTIVE_BIT, &port->flags) && + !test_bit(MTIP_FLAG_EH_ACTIVE_BIT, &port->flags)); + + if (kthread_should_stop()) + break; + + set_bit(MTIP_FLAG_SVC_THD_ACTIVE_BIT, &port->flags); + if (test_bit(MTIP_FLAG_ISSUE_CMDS_BIT, &port->flags)) { + slot = 1; + /* used to restrict the loop to one iteration */ + slot_start = num_cmd_slots; + slot_wrap = 0; + while (1) { + slot = find_next_bit(port->cmds_to_issue, + num_cmd_slots, slot); + if (slot_wrap == 1) { + if ((slot_start >= slot) || + (slot >= num_cmd_slots)) + break; + } + if (unlikely(slot_start == num_cmd_slots)) + slot_start = slot; + + if (unlikely(slot == num_cmd_slots)) { + slot = 1; + slot_wrap = 1; + continue; + } + + /* Issue the command to the hardware */ + mtip_issue_ncq_command(port, slot); + + /* Set the command's timeout value.*/ + port->commands[slot].comp_time = jiffies + + msecs_to_jiffies(MTIP_NCQ_COMMAND_TIMEOUT_MS); + + clear_bit(slot, port->cmds_to_issue); + } + + clear_bit(MTIP_FLAG_ISSUE_CMDS_BIT, &port->flags); + } else if (test_bit(MTIP_FLAG_REBUILD_BIT, &port->flags)) { + mtip_ftl_rebuild_poll(dd); + clear_bit(MTIP_FLAG_REBUILD_BIT, &port->flags); + } + clear_bit(MTIP_FLAG_SVC_THD_ACTIVE_BIT, &port->flags); + + if (test_bit(MTIP_FLAG_SVC_THD_SHOULD_STOP_BIT, &port->flags)) + break; + } + return 0; +} + +/* + * Called once for each card. + * + * @dd Pointer to the driver data structure. + * + * return value + * 0 on success, else an error code. + */ +static int mtip_hw_init(struct driver_data *dd) +{ + int i; + int rv; + unsigned int num_command_slots; + + dd->mmio = pcim_iomap_table(dd->pdev)[MTIP_ABAR]; + + mtip_detect_product(dd); + if (dd->product_type == MTIP_PRODUCT_UNKNOWN) { + rv = -EIO; + goto out1; + } + num_command_slots = dd->slot_groups * 32; + + hba_setup(dd); + + tasklet_init(&dd->tasklet, mtip_tasklet, (unsigned long)dd); + + dd->port = kzalloc(sizeof(struct mtip_port), GFP_KERNEL); + if (!dd->port) { + dev_err(&dd->pdev->dev, + "Memory allocation: port structure\n"); + return -ENOMEM; + } + + /* Counting semaphore to track command slot usage */ + sema_init(&dd->port->cmd_slot, num_command_slots - 1); + + /* Spinlock to prevent concurrent issue */ + spin_lock_init(&dd->port->cmd_issue_lock); + + /* Set the port mmio base address. */ + dd->port->mmio = dd->mmio + PORT_OFFSET; + dd->port->dd = dd; + + /* Allocate memory for the command list. */ + dd->port->command_list = + dmam_alloc_coherent(&dd->pdev->dev, + HW_PORT_PRIV_DMA_SZ + (ATA_SECT_SIZE * 2), + &dd->port->command_list_dma, + GFP_KERNEL); + if (!dd->port->command_list) { + dev_err(&dd->pdev->dev, + "Memory allocation: command list\n"); + rv = -ENOMEM; + goto out1; + } + + /* Clear the memory we have allocated. */ + memset(dd->port->command_list, + 0, + HW_PORT_PRIV_DMA_SZ + (ATA_SECT_SIZE * 2)); + + /* Setup the addresse of the RX FIS. */ + dd->port->rxfis = dd->port->command_list + HW_CMD_SLOT_SZ; + dd->port->rxfis_dma = dd->port->command_list_dma + HW_CMD_SLOT_SZ; + + /* Setup the address of the command tables. */ + dd->port->command_table = dd->port->rxfis + AHCI_RX_FIS_SZ; + dd->port->command_tbl_dma = dd->port->rxfis_dma + AHCI_RX_FIS_SZ; + + /* Setup the address of the identify data. */ + dd->port->identify = dd->port->command_table + + HW_CMD_TBL_AR_SZ; + dd->port->identify_dma = dd->port->command_tbl_dma + + HW_CMD_TBL_AR_SZ; + + /* Setup the address of the sector buffer. */ + dd->port->sector_buffer = (void *) dd->port->identify + ATA_SECT_SIZE; + dd->port->sector_buffer_dma = dd->port->identify_dma + ATA_SECT_SIZE; + + /* Point the command headers at the command tables. */ + for (i = 0; i < num_command_slots; i++) { + dd->port->commands[i].command_header = + dd->port->command_list + + (sizeof(struct mtip_cmd_hdr) * i); + dd->port->commands[i].command_header_dma = + dd->port->command_list_dma + + (sizeof(struct mtip_cmd_hdr) * i); + + dd->port->commands[i].command = + dd->port->command_table + (HW_CMD_TBL_SZ * i); + dd->port->commands[i].command_dma = + dd->port->command_tbl_dma + (HW_CMD_TBL_SZ * i); + + if (readl(dd->mmio + HOST_CAP) & HOST_CAP_64) + dd->port->commands[i].command_header->ctbau = + __force_bit2int cpu_to_le32( + (dd->port->commands[i].command_dma >> 16) >> 16); + dd->port->commands[i].command_header->ctba = + __force_bit2int cpu_to_le32( + dd->port->commands[i].command_dma & 0xFFFFFFFF); + + /* + * If this is not done, a bug is reported by the stock + * FC11 i386. Due to the fact that it has lots of kernel + * debugging enabled. + */ + sg_init_table(dd->port->commands[i].sg, MTIP_MAX_SG); + + /* Mark all commands as currently inactive.*/ + atomic_set(&dd->port->commands[i].active, 0); + } + + /* Setup the pointers to the extended s_active and CI registers. */ + for (i = 0; i < dd->slot_groups; i++) { + dd->port->s_active[i] = + dd->port->mmio + i*0x80 + PORT_SCR_ACT; + dd->port->cmd_issue[i] = + dd->port->mmio + i*0x80 + PORT_COMMAND_ISSUE; + dd->port->completed[i] = + dd->port->mmio + i*0x80 + PORT_SDBV; + } + + /* Reset the HBA. */ + if (mtip_hba_reset(dd) < 0) { + dev_err(&dd->pdev->dev, + "Card did not reset within timeout\n"); + rv = -EIO; + goto out2; + } + + mtip_init_port(dd->port); + mtip_start_port(dd->port); + + /* Setup the ISR and enable interrupts. */ + rv = devm_request_irq(&dd->pdev->dev, + dd->pdev->irq, + mtip_irq_handler, + IRQF_SHARED, + dev_driver_string(&dd->pdev->dev), + dd); + + if (rv) { + dev_err(&dd->pdev->dev, + "Unable to allocate IRQ %d\n", dd->pdev->irq); + goto out2; + } + + /* Enable interrupts on the HBA. */ + writel(readl(dd->mmio + HOST_CTL) | HOST_IRQ_EN, + dd->mmio + HOST_CTL); + + init_timer(&dd->port->cmd_timer); + init_waitqueue_head(&dd->port->svc_wait); + + dd->port->cmd_timer.data = (unsigned long int) dd->port; + dd->port->cmd_timer.function = mtip_timeout_function; + mod_timer(&dd->port->cmd_timer, + jiffies + msecs_to_jiffies(MTIP_TIMEOUT_CHECK_PERIOD)); + + if (mtip_get_identify(dd->port, NULL) < 0) { + rv = -EFAULT; + goto out3; + } + + if (*(dd->port->identify + MTIP_FTL_REBUILD_OFFSET) == + MTIP_FTL_REBUILD_MAGIC) { + set_bit(MTIP_FLAG_REBUILD_BIT, &dd->port->flags); + return MTIP_FTL_REBUILD_MAGIC; + } + mtip_dump_identify(dd->port); + return rv; + +out3: + del_timer_sync(&dd->port->cmd_timer); + + /* Disable interrupts on the HBA. */ + writel(readl(dd->mmio + HOST_CTL) & ~HOST_IRQ_EN, + dd->mmio + HOST_CTL); + + /*Release the IRQ. */ + devm_free_irq(&dd->pdev->dev, dd->pdev->irq, dd); + +out2: + mtip_deinit_port(dd->port); + + /* Free the command/command header memory. */ + dmam_free_coherent(&dd->pdev->dev, + HW_PORT_PRIV_DMA_SZ + (ATA_SECT_SIZE * 2), + dd->port->command_list, + dd->port->command_list_dma); +out1: + /* Free the memory allocated for the for structure. */ + kfree(dd->port); + + return rv; +} + +/* + * Called to deinitialize an interface. + * + * @dd Pointer to the driver data structure. + * + * return value + * 0 + */ +static int mtip_hw_exit(struct driver_data *dd) +{ + /* + * Send standby immediate (E0h) to the drive so that it + * saves its state. + */ + if (atomic_read(&dd->drv_cleanup_done) != true) { + + mtip_standby_immediate(dd->port); + + /* de-initialize the port. */ + mtip_deinit_port(dd->port); + + /* Disable interrupts on the HBA. */ + writel(readl(dd->mmio + HOST_CTL) & ~HOST_IRQ_EN, + dd->mmio + HOST_CTL); + } + + del_timer_sync(&dd->port->cmd_timer); + + /* Release the IRQ. */ + devm_free_irq(&dd->pdev->dev, dd->pdev->irq, dd); + + /* Stop the bottom half tasklet. */ + tasklet_kill(&dd->tasklet); + + /* Free the command/command header memory. */ + dmam_free_coherent(&dd->pdev->dev, + HW_PORT_PRIV_DMA_SZ + (ATA_SECT_SIZE * 2), + dd->port->command_list, + dd->port->command_list_dma); + /* Free the memory allocated for the for structure. */ + kfree(dd->port); + + return 0; +} + +/* + * Issue a Standby Immediate command to the device. + * + * This function is called by the Block Layer just before the + * system powers off during a shutdown. + * + * @dd Pointer to the driver data structure. + * + * return value + * 0 + */ +static int mtip_hw_shutdown(struct driver_data *dd) +{ + /* + * Send standby immediate (E0h) to the drive so that it + * saves its state. + */ + mtip_standby_immediate(dd->port); + + return 0; +} + +/* + * Suspend function + * + * This function is called by the Block Layer just before the + * system hibernates. + * + * @dd Pointer to the driver data structure. + * + * return value + * 0 Suspend was successful + * -EFAULT Suspend was not successful + */ +static int mtip_hw_suspend(struct driver_data *dd) +{ + /* + * Send standby immediate (E0h) to the drive + * so that it saves its state. + */ + if (mtip_standby_immediate(dd->port) != 0) { + dev_err(&dd->pdev->dev, + "Failed standby-immediate command\n"); + return -EFAULT; + } + + /* Disable interrupts on the HBA.*/ + writel(readl(dd->mmio + HOST_CTL) & ~HOST_IRQ_EN, + dd->mmio + HOST_CTL); + mtip_deinit_port(dd->port); + + return 0; +} + +/* + * Resume function + * + * This function is called by the Block Layer as the + * system resumes. + * + * @dd Pointer to the driver data structure. + * + * return value + * 0 Resume was successful + * -EFAULT Resume was not successful + */ +static int mtip_hw_resume(struct driver_data *dd) +{ + /* Perform any needed hardware setup steps */ + hba_setup(dd); + + /* Reset the HBA */ + if (mtip_hba_reset(dd) != 0) { + dev_err(&dd->pdev->dev, + "Unable to reset the HBA\n"); + return -EFAULT; + } + + /* + * Enable the port, DMA engine, and FIS reception specific + * h/w in controller. + */ + mtip_init_port(dd->port); + mtip_start_port(dd->port); + + /* Enable interrupts on the HBA.*/ + writel(readl(dd->mmio + HOST_CTL) | HOST_IRQ_EN, + dd->mmio + HOST_CTL); + + return 0; +} + +/* + * Helper function for reusing disk name + * upon hot insertion. + */ +static int rssd_disk_name_format(char *prefix, + int index, + char *buf, + int buflen) +{ + const int base = 'z' - 'a' + 1; + char *begin = buf + strlen(prefix); + char *end = buf + buflen; + char *p; + int unit; + + p = end - 1; + *p = '\0'; + unit = base; + do { + if (p == begin) + return -EINVAL; + *--p = 'a' + (index % unit); + index = (index / unit) - 1; + } while (index >= 0); + + memmove(begin, p, end - p); + memcpy(buf, prefix, strlen(prefix)); + + return 0; +} + +/* + * Block layer IOCTL handler. + * + * @dev Pointer to the block_device structure. + * @mode ignored + * @cmd IOCTL command passed from the user application. + * @arg Argument passed from the user application. + * + * return value + * 0 IOCTL completed successfully. + * -ENOTTY IOCTL not supported or invalid driver data + * structure pointer. + */ +static int mtip_block_ioctl(struct block_device *dev, + fmode_t mode, + unsigned cmd, + unsigned long arg) +{ + struct driver_data *dd = dev->bd_disk->private_data; + + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; + + if (!dd) + return -ENOTTY; + + switch (cmd) { + case BLKFLSBUF: + return -ENOTTY; + default: + return mtip_hw_ioctl(dd, cmd, arg); + } +} + +#ifdef CONFIG_COMPAT +/* + * Block layer compat IOCTL handler. + * + * @dev Pointer to the block_device structure. + * @mode ignored + * @cmd IOCTL command passed from the user application. + * @arg Argument passed from the user application. + * + * return value + * 0 IOCTL completed successfully. + * -ENOTTY IOCTL not supported or invalid driver data + * structure pointer. + */ +static int mtip_block_compat_ioctl(struct block_device *dev, + fmode_t mode, + unsigned cmd, + unsigned long arg) +{ + struct driver_data *dd = dev->bd_disk->private_data; + + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; + + if (!dd) + return -ENOTTY; + + switch (cmd) { + case BLKFLSBUF: + return -ENOTTY; + case HDIO_DRIVE_TASKFILE: { + struct mtip_compat_ide_task_request_s __user *compat_req_task; + ide_task_request_t req_task; + int compat_tasksize, outtotal, ret; + + compat_tasksize = + sizeof(struct mtip_compat_ide_task_request_s); + + compat_req_task = + (struct mtip_compat_ide_task_request_s __user *) arg; + + if (copy_from_user(&req_task, (void __user *) arg, + compat_tasksize - (2 * sizeof(compat_long_t)))) + return -EFAULT; + + if (get_user(req_task.out_size, &compat_req_task->out_size)) + return -EFAULT; + + if (get_user(req_task.in_size, &compat_req_task->in_size)) + return -EFAULT; + + outtotal = sizeof(struct mtip_compat_ide_task_request_s); + + ret = exec_drive_taskfile(dd, (void __user *) arg, + &req_task, outtotal); + + if (copy_to_user((void __user *) arg, &req_task, + compat_tasksize - + (2 * sizeof(compat_long_t)))) + return -EFAULT; + + if (put_user(req_task.out_size, &compat_req_task->out_size)) + return -EFAULT; + + if (put_user(req_task.in_size, &compat_req_task->in_size)) + return -EFAULT; + + return ret; + } + default: + return mtip_hw_ioctl(dd, cmd, arg); + } +} +#endif + +/* + * Obtain the geometry of the device. + * + * You may think that this function is obsolete, but some applications, + * fdisk for example still used CHS values. This function describes the + * device as having 224 heads and 56 sectors per cylinder. These values are + * chosen so that each cylinder is aligned on a 4KB boundary. Since a + * partition is described in terms of a start and end cylinder this means + * that each partition is also 4KB aligned. Non-aligned partitions adversely + * affects performance. + * + * @dev Pointer to the block_device strucutre. + * @geo Pointer to a hd_geometry structure. + * + * return value + * 0 Operation completed successfully. + * -ENOTTY An error occurred while reading the drive capacity. + */ +static int mtip_block_getgeo(struct block_device *dev, + struct hd_geometry *geo) +{ + struct driver_data *dd = dev->bd_disk->private_data; + sector_t capacity; + + if (!dd) + return -ENOTTY; + + if (!(mtip_hw_get_capacity(dd, &capacity))) { + dev_warn(&dd->pdev->dev, + "Could not get drive capacity.\n"); + return -ENOTTY; + } + + geo->heads = 224; + geo->sectors = 56; + sector_div(capacity, (geo->heads * geo->sectors)); + geo->cylinders = capacity; + return 0; +} + +/* + * Block device operation function. + * + * This structure contains pointers to the functions required by the block + * layer. + */ +static const struct block_device_operations mtip_block_ops = { + .ioctl = mtip_block_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = mtip_block_compat_ioctl, +#endif + .getgeo = mtip_block_getgeo, + .owner = THIS_MODULE +}; + +/* + * Block layer make request function. + * + * This function is called by the kernel to process a BIO for + * the P320 device. + * + * @queue Pointer to the request queue. Unused other than to obtain + * the driver data structure. + * @bio Pointer to the BIO. + * + */ +static void mtip_make_request(struct request_queue *queue, struct bio *bio) +{ + struct driver_data *dd = queue->queuedata; + struct scatterlist *sg; + struct bio_vec *bvec; + int nents = 0; + int tag = 0; + + if (unlikely(!bio_has_data(bio))) { + blk_queue_flush(queue, 0); + bio_endio(bio, 0); + return; + } + + sg = mtip_hw_get_scatterlist(dd, &tag); + if (likely(sg != NULL)) { + blk_queue_bounce(queue, &bio); + + if (unlikely((bio)->bi_vcnt > MTIP_MAX_SG)) { + dev_warn(&dd->pdev->dev, + "Maximum number of SGL entries exceeded"); + bio_io_error(bio); + mtip_hw_release_scatterlist(dd, tag); + return; + } + + /* Create the scatter list for this bio. */ + bio_for_each_segment(bvec, bio, nents) { + sg_set_page(&sg[nents], + bvec->bv_page, + bvec->bv_len, + bvec->bv_offset); + } + + /* Issue the read/write. */ + mtip_hw_submit_io(dd, + bio->bi_sector, + bio_sectors(bio), + nents, + tag, + bio_endio, + bio, + bio->bi_rw & REQ_FUA, + bio_data_dir(bio)); + } else + bio_io_error(bio); +} + +/* + * Block layer initialization function. + * + * This function is called once by the PCI layer for each P320 + * device that is connected to the system. + * + * @dd Pointer to the driver data structure. + * + * return value + * 0 on success else an error code. + */ +static int mtip_block_initialize(struct driver_data *dd) +{ + int rv = 0, wait_for_rebuild = 0; + sector_t capacity; + unsigned int index = 0; + struct kobject *kobj; + unsigned char thd_name[16]; + + if (dd->disk) + goto skip_create_disk; /* hw init done, before rebuild */ + + /* Initialize the protocol layer. */ + wait_for_rebuild = mtip_hw_init(dd); + if (wait_for_rebuild < 0) { + dev_err(&dd->pdev->dev, + "Protocol layer initialization failed\n"); + rv = -EINVAL; + goto protocol_init_error; + } + + dd->disk = alloc_disk(MTIP_MAX_MINORS); + if (dd->disk == NULL) { + dev_err(&dd->pdev->dev, + "Unable to allocate gendisk structure\n"); + rv = -EINVAL; + goto alloc_disk_error; + } + + /* Generate the disk name, implemented same as in sd.c */ + do { + if (!ida_pre_get(&rssd_index_ida, GFP_KERNEL)) + goto ida_get_error; + + spin_lock(&rssd_index_lock); + rv = ida_get_new(&rssd_index_ida, &index); + spin_unlock(&rssd_index_lock); + } while (rv == -EAGAIN); + + if (rv) + goto ida_get_error; + + rv = rssd_disk_name_format("rssd", + index, + dd->disk->disk_name, + DISK_NAME_LEN); + if (rv) + goto disk_index_error; + + dd->disk->driverfs_dev = &dd->pdev->dev; + dd->disk->major = dd->major; + dd->disk->first_minor = dd->instance * MTIP_MAX_MINORS; + dd->disk->fops = &mtip_block_ops; + dd->disk->private_data = dd; + dd->index = index; + + /* + * if rebuild pending, start the service thread, and delay the block + * queue creation and add_disk() + */ + if (wait_for_rebuild == MTIP_FTL_REBUILD_MAGIC) + goto start_service_thread; + +skip_create_disk: + /* Allocate the request queue. */ + dd->queue = blk_alloc_queue(GFP_KERNEL); + if (dd->queue == NULL) { + dev_err(&dd->pdev->dev, + "Unable to allocate request queue\n"); + rv = -ENOMEM; + goto block_queue_alloc_init_error; + } + + /* Attach our request function to the request queue. */ + blk_queue_make_request(dd->queue, mtip_make_request); + + dd->disk->queue = dd->queue; + dd->queue->queuedata = dd; + + /* Set device limits. */ + set_bit(QUEUE_FLAG_NONROT, &dd->queue->queue_flags); + blk_queue_max_segments(dd->queue, MTIP_MAX_SG); + blk_queue_physical_block_size(dd->queue, 4096); + blk_queue_io_min(dd->queue, 4096); + blk_queue_flush(dd->queue, 0); + + /* Set the capacity of the device in 512 byte sectors. */ + if (!(mtip_hw_get_capacity(dd, &capacity))) { + dev_warn(&dd->pdev->dev, + "Could not read drive capacity\n"); + rv = -EIO; + goto read_capacity_error; + } + set_capacity(dd->disk, capacity); + + /* Enable the block device and add it to /dev */ + add_disk(dd->disk); + + /* + * Now that the disk is active, initialize any sysfs attributes + * managed by the protocol layer. + */ + kobj = kobject_get(&disk_to_dev(dd->disk)->kobj); + if (kobj) { + mtip_hw_sysfs_init(dd, kobj); + kobject_put(kobj); + } + + if (dd->mtip_svc_handler) + return rv; /* service thread created for handling rebuild */ + +start_service_thread: + sprintf(thd_name, "mtip_svc_thd_%02d", index); + + dd->mtip_svc_handler = kthread_run(mtip_service_thread, + dd, thd_name); + + if (IS_ERR(dd->mtip_svc_handler)) { + printk(KERN_ERR "mtip32xx: service thread failed to start\n"); + dd->mtip_svc_handler = NULL; + rv = -EFAULT; + goto kthread_run_error; + } + + return rv; + +kthread_run_error: + /* Delete our gendisk. This also removes the device from /dev */ + del_gendisk(dd->disk); + +read_capacity_error: + blk_cleanup_queue(dd->queue); + +block_queue_alloc_init_error: +disk_index_error: + spin_lock(&rssd_index_lock); + ida_remove(&rssd_index_ida, index); + spin_unlock(&rssd_index_lock); + +ida_get_error: + put_disk(dd->disk); + +alloc_disk_error: + mtip_hw_exit(dd); /* De-initialize the protocol layer. */ + +protocol_init_error: + return rv; +} + +/* + * 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) +{ + struct kobject *kobj; + + if (dd->mtip_svc_handler) { + set_bit(MTIP_FLAG_SVC_THD_SHOULD_STOP_BIT, &dd->port->flags); + wake_up_interruptible(&dd->port->svc_wait); + kthread_stop(dd->mtip_svc_handler); + } + + /* Clean up the sysfs attributes managed by the protocol layer. */ + kobj = kobject_get(&disk_to_dev(dd->disk)->kobj); + if (kobj) { + mtip_hw_sysfs_exit(dd, kobj); + kobject_put(kobj); + } + + /* + * Delete our gendisk structure. This also removes the device + * from /dev + */ + del_gendisk(dd->disk); + blk_cleanup_queue(dd->queue); + dd->disk = NULL; + dd->queue = NULL; + + /* De-initialize the protocol layer. */ + mtip_hw_exit(dd); + + return 0; +} + +/* + * Function called by the PCI layer when just before the + * machine shuts down. + * + * If a protocol layer shutdown function is present it will be called + * by this function. + * + * @dd Pointer to the driver data structure. + * + * return value + * 0 + */ +static int mtip_block_shutdown(struct driver_data *dd) +{ + dev_info(&dd->pdev->dev, + "Shutting down %s ...\n", dd->disk->disk_name); + + /* Delete our gendisk structure, and cleanup the blk queue. */ + del_gendisk(dd->disk); + blk_cleanup_queue(dd->queue); + dd->disk = NULL; + dd->queue = NULL; + + mtip_hw_shutdown(dd); + return 0; +} + +static int mtip_block_suspend(struct driver_data *dd) +{ + dev_info(&dd->pdev->dev, + "Suspending %s ...\n", dd->disk->disk_name); + mtip_hw_suspend(dd); + return 0; +} + +static int mtip_block_resume(struct driver_data *dd) +{ + dev_info(&dd->pdev->dev, "Resuming %s ...\n", + dd->disk->disk_name); + mtip_hw_resume(dd); + return 0; +} + +/* + * Called for each supported PCI device detected. + * + * This function allocates the private data structure, enables the + * PCI device and then calls the block layer initialization function. + * + * return value + * 0 on success else an error code. + */ +static int mtip_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *ent) +{ + int rv = 0; + struct driver_data *dd = NULL; + + /* Allocate memory for this devices private data. */ + dd = kzalloc(sizeof(struct driver_data), GFP_KERNEL); + if (dd == NULL) { + dev_err(&pdev->dev, + "Unable to allocate memory for driver data\n"); + return -ENOMEM; + } + + /* Set the atomic variable as 1 in case of SRSI */ + atomic_set(&dd->drv_cleanup_done, true); + + atomic_set(&dd->resumeflag, false); + + /* Attach the private data to this PCI device. */ + pci_set_drvdata(pdev, dd); + + rv = pcim_enable_device(pdev); + if (rv < 0) { + dev_err(&pdev->dev, "Unable to enable device\n"); + goto iomap_err; + } + + /* Map BAR5 to memory. */ + rv = pcim_iomap_regions(pdev, 1 << MTIP_ABAR, MTIP_DRV_NAME); + if (rv < 0) { + dev_err(&pdev->dev, "Unable to map regions\n"); + goto iomap_err; + } + + if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { + rv = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); + + if (rv) { + rv = pci_set_consistent_dma_mask(pdev, + DMA_BIT_MASK(32)); + if (rv) { + dev_warn(&pdev->dev, + "64-bit DMA enable failed\n"); + goto setmask_err; + } + } + } + + pci_set_master(pdev); + + if (pci_enable_msi(pdev)) { + dev_warn(&pdev->dev, + "Unable to enable MSI interrupt.\n"); + goto block_initialize_err; + } + + /* Copy the info we may need later into the private data structure. */ + dd->major = mtip_major; + dd->instance = instance; + dd->pdev = pdev; + + /* Initialize the block layer. */ + rv = mtip_block_initialize(dd); + if (rv < 0) { + dev_err(&pdev->dev, + "Unable to initialize block layer\n"); + goto block_initialize_err; + } + + /* + * Increment the instance count so that each device has a unique + * instance number. + */ + instance++; + + goto done; + +block_initialize_err: + pci_disable_msi(pdev); + +setmask_err: + pcim_iounmap_regions(pdev, 1 << MTIP_ABAR); + +iomap_err: + kfree(dd); + pci_set_drvdata(pdev, NULL); + return rv; +done: + /* Set the atomic variable as 0 in case of SRSI */ + atomic_set(&dd->drv_cleanup_done, true); + + return rv; +} + +/* + * Called for each probed device when the device is removed or the + * driver is unloaded. + * + * return value + * None + */ +static void mtip_pci_remove(struct pci_dev *pdev) +{ + struct driver_data *dd = pci_get_drvdata(pdev); + int counter = 0; + + if (mtip_check_surprise_removal(pdev)) { + while (atomic_read(&dd->drv_cleanup_done) == false) { + counter++; + msleep(20); + if (counter == 10) { + /* Cleanup the outstanding commands */ + mtip_command_cleanup(dd); + break; + } + } + } + /* Set the atomic variable as 1 in case of SRSI */ + atomic_set(&dd->drv_cleanup_done, true); + + /* Clean up the block layer. */ + mtip_block_remove(dd); + + pci_disable_msi(pdev); + + kfree(dd); + pcim_iounmap_regions(pdev, 1 << MTIP_ABAR); +} + +/* + * Called for each probed device when the device is suspended. + * + * return value + * 0 Success + * <0 Error + */ +static int mtip_pci_suspend(struct pci_dev *pdev, pm_message_t mesg) +{ + int rv = 0; + struct driver_data *dd = pci_get_drvdata(pdev); + + if (!dd) { + dev_err(&pdev->dev, + "Driver private datastructure is NULL\n"); + return -EFAULT; + } + + atomic_set(&dd->resumeflag, true); + + /* Disable ports & interrupts then send standby immediate */ + rv = mtip_block_suspend(dd); + if (rv < 0) { + dev_err(&pdev->dev, + "Failed to suspend controller\n"); + return rv; + } + + /* + * Save the pci config space to pdev structure & + * disable the device + */ + pci_save_state(pdev); + pci_disable_device(pdev); + + /* Move to Low power state*/ + pci_set_power_state(pdev, PCI_D3hot); + + return rv; +} + +/* + * Called for each probed device when the device is resumed. + * + * return value + * 0 Success + * <0 Error + */ +static int mtip_pci_resume(struct pci_dev *pdev) +{ + int rv = 0; + struct driver_data *dd; + + dd = pci_get_drvdata(pdev); + if (!dd) { + dev_err(&pdev->dev, + "Driver private datastructure is NULL\n"); + return -EFAULT; + } + + /* Move the device to active State */ + pci_set_power_state(pdev, PCI_D0); + + /* Restore PCI configuration space */ + pci_restore_state(pdev); + + /* Enable the PCI device*/ + rv = pcim_enable_device(pdev); + if (rv < 0) { + dev_err(&pdev->dev, + "Failed to enable card during resume\n"); + goto err; + } + pci_set_master(pdev); + + /* + * Calls hbaReset, initPort, & startPort function + * then enables interrupts + */ + rv = mtip_block_resume(dd); + if (rv < 0) + dev_err(&pdev->dev, "Unable to resume\n"); + +err: + atomic_set(&dd->resumeflag, false); + + return rv; +} + +/* + * Shutdown routine + * + * return value + * None + */ +static void mtip_pci_shutdown(struct pci_dev *pdev) +{ + struct driver_data *dd = pci_get_drvdata(pdev); + if (dd) + mtip_block_shutdown(dd); +} + +/* Table of device ids supported by this driver. */ +static DEFINE_PCI_DEVICE_TABLE(mtip_pci_tbl) = { + { PCI_DEVICE(PCI_VENDOR_ID_MICRON, P320_DEVICE_ID) }, + { 0 } +}; + +/* Structure that describes the PCI driver functions. */ +static struct pci_driver mtip_pci_driver = { + .name = MTIP_DRV_NAME, + .id_table = mtip_pci_tbl, + .probe = mtip_pci_probe, + .remove = mtip_pci_remove, + .suspend = mtip_pci_suspend, + .resume = mtip_pci_resume, + .shutdown = mtip_pci_shutdown, +}; + +MODULE_DEVICE_TABLE(pci, mtip_pci_tbl); + +/* + * Module initialization function. + * + * Called once when the module is loaded. This function allocates a major + * block device number to the Cyclone devices and registers the PCI layer + * of the driver. + * + * Return value + * 0 on success else error code. + */ +static int __init mtip_init(void) +{ + printk(KERN_INFO MTIP_DRV_NAME " Version " MTIP_DRV_VERSION "\n"); + + /* Allocate a major block device number to use with this driver. */ + mtip_major = register_blkdev(0, MTIP_DRV_NAME); + if (mtip_major < 0) { + printk(KERN_ERR "Unable to register block device (%d)\n", + mtip_major); + return -EBUSY; + } + + /* Register our PCI operations. */ + return pci_register_driver(&mtip_pci_driver); +} + +/* + * Module de-initialization function. + * + * Called once when the module is unloaded. This function deallocates + * the major block device number allocated by mtip_init() and + * unregisters the PCI layer of the driver. + * + * Return value + * none + */ +static void __exit mtip_exit(void) +{ + /* Release the allocated major block device number. */ + unregister_blkdev(mtip_major, MTIP_DRV_NAME); + + /* Unregister the PCI driver. */ + pci_unregister_driver(&mtip_pci_driver); +} + +MODULE_AUTHOR("Micron Technology, Inc"); +MODULE_DESCRIPTION("Micron RealSSD PCIe Block Driver"); +MODULE_LICENSE("GPL"); +MODULE_VERSION(MTIP_DRV_VERSION); + +module_init(mtip_init); +module_exit(mtip_exit); --- linux-3.2.0.orig/drivers/block/mtip32xx/mtip32xx.h +++ linux-3.2.0/drivers/block/mtip32xx/mtip32xx.h @@ -0,0 +1,423 @@ +/* + * mtip32xx.h - Header file for the P320 SSD Block Driver + * Copyright (C) 2011 Micron Technology, Inc. + * + * Portions of this code were derived from works subjected to the + * following copyright: + * Copyright (C) 2009 Integrated Device Technology, Inc. + * + * 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 __MTIP32XX_H__ +#define __MTIP32XX_H__ + +#include +#include +#include +#include +#include +#include + +/* Offset of Subsystem Device ID in pci confoguration space */ +#define PCI_SUBSYSTEM_DEVICEID 0x2E + +/* offset of Device Control register in PCIe extended capabilites space */ +#define PCIE_CONFIG_EXT_DEVICE_CONTROL_OFFSET 0x48 + +/* # of times to retry timed out IOs */ +#define MTIP_MAX_RETRIES 5 + +/* Various timeout values in ms */ +#define MTIP_NCQ_COMMAND_TIMEOUT_MS 5000 +#define MTIP_IOCTL_COMMAND_TIMEOUT_MS 5000 +#define MTIP_INTERNAL_COMMAND_TIMEOUT_MS 5000 + +/* check for timeouts every 500ms */ +#define MTIP_TIMEOUT_CHECK_PERIOD 500 + +/* ftl rebuild */ +#define MTIP_FTL_REBUILD_OFFSET 142 +#define MTIP_FTL_REBUILD_MAGIC 0xED51 +#define MTIP_FTL_REBUILD_TIMEOUT_MS 2400000 + +/* Macro to extract the tag bit number from a tag value. */ +#define MTIP_TAG_BIT(tag) (tag & 0x1F) + +/* + * Macro to extract the tag index from a tag value. The index + * is used to access the correct s_active/Command Issue register based + * on the tag value. + */ +#define MTIP_TAG_INDEX(tag) (tag >> 5) + +/* + * Maximum number of scatter gather entries + * a single command may have. + */ +#define MTIP_MAX_SG 128 + +/* + * Maximum number of slot groups (Command Issue & s_active registers) + * NOTE: This is the driver maximum; check dd->slot_groups for actual value. + */ +#define MTIP_MAX_SLOT_GROUPS 8 + +/* Internal command tag. */ +#define MTIP_TAG_INTERNAL 0 + +/* Micron Vendor ID & P320x SSD Device ID */ +#define PCI_VENDOR_ID_MICRON 0x1344 +#define P320_DEVICE_ID 0x5150 + +/* Driver name and version strings */ +#define MTIP_DRV_NAME "mtip32xx" +#define MTIP_DRV_VERSION "1.2.6os3" + +/* Maximum number of minor device numbers per device. */ +#define MTIP_MAX_MINORS 16 + +/* Maximum number of supported command slots. */ +#define MTIP_MAX_COMMAND_SLOTS (MTIP_MAX_SLOT_GROUPS * 32) + +/* + * Per-tag bitfield size in longs. + * Linux bit manipulation functions + * (i.e. test_and_set_bit, find_next_zero_bit) + * manipulate memory in longs, so we try to make the math work. + * take the slot groups and find the number of longs, rounding up. + * Careful! i386 and x86_64 use different size longs! + */ +#define U32_PER_LONG (sizeof(long) / sizeof(u32)) +#define SLOTBITS_IN_LONGS ((MTIP_MAX_SLOT_GROUPS + \ + (U32_PER_LONG-1))/U32_PER_LONG) + +/* BAR number used to access the HBA registers. */ +#define MTIP_ABAR 5 + +/* Forced Unit Access Bit */ +#define FUA_BIT 0x80 + +#ifdef DEBUG + #define dbg_printk(format, arg...) \ + printk(pr_fmt(format), ##arg); +#else + #define dbg_printk(format, arg...) +#endif + +#define __force_bit2int (unsigned int __force) + +/* below are bit numbers in 'flags' defined in mtip_port */ +#define MTIP_FLAG_IC_ACTIVE_BIT 0 +#define MTIP_FLAG_EH_ACTIVE_BIT 1 +#define MTIP_FLAG_SVC_THD_ACTIVE_BIT 2 +#define MTIP_FLAG_ISSUE_CMDS_BIT 4 +#define MTIP_FLAG_REBUILD_BIT 5 +#define MTIP_FLAG_SVC_THD_SHOULD_STOP_BIT 8 + +/* Register Frame Information Structure (FIS), host to device. */ +struct host_to_dev_fis { + /* + * FIS type. + * - 27h Register FIS, host to device. + * - 34h Register FIS, device to host. + * - 39h DMA Activate FIS, device to host. + * - 41h DMA Setup FIS, bi-directional. + * - 46h Data FIS, bi-directional. + * - 58h BIST Activate FIS, bi-directional. + * - 5Fh PIO Setup FIS, device to host. + * - A1h Set Device Bits FIS, device to host. + */ + unsigned char type; + unsigned char opts; + unsigned char command; + unsigned char features; + + union { + unsigned char lba_low; + unsigned char sector; + }; + union { + unsigned char lba_mid; + unsigned char cyl_low; + }; + union { + unsigned char lba_hi; + unsigned char cyl_hi; + }; + union { + unsigned char device; + unsigned char head; + }; + + union { + unsigned char lba_low_ex; + unsigned char sector_ex; + }; + union { + unsigned char lba_mid_ex; + unsigned char cyl_low_ex; + }; + union { + unsigned char lba_hi_ex; + unsigned char cyl_hi_ex; + }; + unsigned char features_ex; + + unsigned char sect_count; + unsigned char sect_cnt_ex; + unsigned char res2; + unsigned char control; + + unsigned int res3; +}; + +/* Command header structure. */ +struct mtip_cmd_hdr { + /* + * Command options. + * - Bits 31:16 Number of PRD entries. + * - Bits 15:8 Unused in this implementation. + * - Bit 7 Prefetch bit, informs the drive to prefetch PRD entries. + * - Bit 6 Write bit, should be set when writing data to the device. + * - Bit 5 Unused in this implementation. + * - Bits 4:0 Length of the command FIS in DWords (DWord = 4 bytes). + */ + unsigned int opts; + /* This field is unsed when using NCQ. */ + union { + unsigned int byte_count; + unsigned int status; + }; + /* + * Lower 32 bits of the command table address associated with this + * header. The command table addresses must be 128 byte aligned. + */ + unsigned int ctba; + /* + * If 64 bit addressing is used this field is the upper 32 bits + * of the command table address associated with this command. + */ + unsigned int ctbau; + /* Reserved and unused. */ + unsigned int res[4]; +}; + +/* Command scatter gather structure (PRD). */ +struct mtip_cmd_sg { + /* + * Low 32 bits of the data buffer address. For P320 this + * address must be 8 byte aligned signified by bits 2:0 being + * set to 0. + */ + unsigned int dba; + /* + * When 64 bit addressing is used this field is the upper + * 32 bits of the data buffer address. + */ + unsigned int dba_upper; + /* Unused. */ + unsigned int reserved; + /* + * Bit 31: interrupt when this data block has been transferred. + * Bits 30..22: reserved + * Bits 21..0: byte count (minus 1). For P320 the byte count must be + * 8 byte aligned signified by bits 2:0 being set to 1. + */ + unsigned int info; +}; +struct mtip_port; + +/* Structure used to describe a command. */ +struct mtip_cmd { + + struct mtip_cmd_hdr *command_header; /* ptr to command header entry */ + + dma_addr_t command_header_dma; /* corresponding physical address */ + + void *command; /* ptr to command table entry */ + + dma_addr_t command_dma; /* corresponding physical address */ + + void *comp_data; /* data passed to completion function comp_func() */ + /* + * Completion function called by the ISR upon completion of + * a command. + */ + void (*comp_func)(struct mtip_port *port, + int tag, + void *data, + int status); + /* Additional callback function that may be called by comp_func() */ + void (*async_callback)(void *data, int status); + + void *async_data; /* Addl. data passed to async_callback() */ + + int scatter_ents; /* Number of scatter list entries used */ + + struct scatterlist sg[MTIP_MAX_SG]; /* Scatter list entries */ + + int retries; /* The number of retries left for this command. */ + + int direction; /* Data transfer direction */ + + unsigned long comp_time; /* command completion time, in jiffies */ + + atomic_t active; /* declares if this command sent to the drive. */ +}; + +/* Structure used to describe a port. */ +struct mtip_port { + /* Pointer back to the driver data for this port. */ + struct driver_data *dd; + /* + * Used to determine if the data pointed to by the + * identify field is valid. + */ + unsigned long identify_valid; + /* Base address of the memory mapped IO for the port. */ + void __iomem *mmio; + /* Array of pointers to the memory mapped s_active registers. */ + void __iomem *s_active[MTIP_MAX_SLOT_GROUPS]; + /* Array of pointers to the memory mapped completed registers. */ + void __iomem *completed[MTIP_MAX_SLOT_GROUPS]; + /* Array of pointers to the memory mapped Command Issue registers. */ + void __iomem *cmd_issue[MTIP_MAX_SLOT_GROUPS]; + /* + * Pointer to the beginning of the command header memory as used + * by the driver. + */ + void *command_list; + /* + * Pointer to the beginning of the command header memory as used + * by the DMA. + */ + dma_addr_t command_list_dma; + /* + * Pointer to the beginning of the RX FIS memory as used + * by the driver. + */ + void *rxfis; + /* + * Pointer to the beginning of the RX FIS memory as used + * by the DMA. + */ + dma_addr_t rxfis_dma; + /* + * Pointer to the beginning of the command table memory as used + * by the driver. + */ + void *command_table; + /* + * Pointer to the beginning of the command table memory as used + * by the DMA. + */ + dma_addr_t command_tbl_dma; + /* + * Pointer to the beginning of the identify data memory as used + * by the driver. + */ + u16 *identify; + /* + * Pointer to the beginning of the identify data memory as used + * by the DMA. + */ + dma_addr_t identify_dma; + /* + * Pointer to the beginning of a sector buffer that is used + * by the driver when issuing internal commands. + */ + u16 *sector_buffer; + /* + * Pointer to the beginning of a sector buffer that is used + * by the DMA when the driver issues internal commands. + */ + dma_addr_t sector_buffer_dma; + /* + * Bit significant, used to determine if a command slot has + * been allocated. i.e. the slot is in use. Bits are cleared + * when the command slot and all associated data structures + * are no longer needed. + */ + unsigned long allocated[SLOTBITS_IN_LONGS]; + /* + * used to queue commands when an internal command is in progress + * or error handling is active + */ + unsigned long cmds_to_issue[SLOTBITS_IN_LONGS]; + /* + * Array of command slots. Structure includes pointers to the + * command header and command table, and completion function and data + * pointers. + */ + struct mtip_cmd commands[MTIP_MAX_COMMAND_SLOTS]; + /* Used by mtip_service_thread to wait for an event */ + wait_queue_head_t svc_wait; + /* + * indicates the state of the port. Also, helps the service thread + * to determine its action on wake up. + */ + unsigned long flags; + /* + * Timer used to complete commands that have been active for too long. + */ + struct timer_list cmd_timer; + /* + * Semaphore used to block threads if there are no + * command slots available. + */ + struct semaphore cmd_slot; + /* Spinlock for working around command-issue bug. */ + spinlock_t cmd_issue_lock; +}; + +/* + * Driver private data structure. + * + * One structure is allocated per probed device. + */ +struct driver_data { + void __iomem *mmio; /* Base address of the HBA registers. */ + + int major; /* Major device number. */ + + int instance; /* Instance number. First device probed is 0, ... */ + + struct gendisk *disk; /* Pointer to our gendisk structure. */ + + struct pci_dev *pdev; /* Pointer to the PCI device structure. */ + + struct request_queue *queue; /* Our request queue. */ + + struct mtip_port *port; /* Pointer to the port data structure. */ + + /* Tasklet used to process the bottom half of the ISR. */ + struct tasklet_struct tasklet; + + unsigned product_type; /* magic value declaring the product type */ + + unsigned slot_groups; /* number of slot groups the product supports */ + + atomic_t drv_cleanup_done; /* Atomic variable for SRSI */ + + unsigned long index; /* Index to determine the disk name */ + + unsigned int ftlrebuildflag; /* FTL rebuild flag */ + + atomic_t resumeflag; /* Atomic variable to track suspend/resume */ + + atomic_t eh_active; /* Flag for error handling tracking */ + + struct task_struct *mtip_svc_handler; /* task_struct of svc thd */ +}; + +#endif --- linux-3.2.0.orig/drivers/block/aoe/aoeblk.c +++ linux-3.2.0/drivers/block/aoe/aoeblk.c @@ -276,8 +276,6 @@ goto err_mempool; blk_queue_make_request(d->blkq, aoeblk_make_request); d->blkq->backing_dev_info.name = "aoe"; - if (bdi_init(&d->blkq->backing_dev_info)) - goto err_blkq; spin_lock_irqsave(&d->lock, flags); gd->major = AOE_MAJOR; gd->first_minor = d->sysminor * AOE_PARTITIONS; @@ -298,9 +296,6 @@ aoedisk_add_sysfs(d); return; -err_blkq: - blk_cleanup_queue(d->blkq); - d->blkq = NULL; err_mempool: mempool_destroy(d->bufpool); err_disk: --- linux-3.2.0.orig/drivers/block/aoe/aoecmd.c +++ linux-3.2.0/drivers/block/aoe/aoecmd.c @@ -30,11 +30,13 @@ { struct sk_buff *skb; - skb = alloc_skb(len, GFP_ATOMIC); + skb = alloc_skb(len + MAX_HEADER, GFP_ATOMIC); if (skb) { + skb_reserve(skb, MAX_HEADER); skb_reset_mac_header(skb); skb_reset_network_header(skb); skb->protocol = __constant_htons(ETH_P_AOE); + skb_checksum_none_assert(skb); } return skb; } --- linux-3.2.0.orig/drivers/block/aoe/aoe.h +++ linux-3.2.0/drivers/block/aoe/aoe.h @@ -1,5 +1,5 @@ /* Copyright (c) 2007 Coraid, Inc. See COPYING for GPL terms. */ -#define VERSION "47" +#define VERSION "47q" #define AOE_MAJOR 152 #define DEVICE_NAME "aoe" --- linux-3.2.0.orig/drivers/eisa/pci_eisa.c +++ linux-3.2.0/drivers/eisa/pci_eisa.c @@ -19,8 +19,7 @@ /* There is only *one* pci_eisa device per machine, right ? */ static struct eisa_root_device pci_eisa_root; -static int __init pci_eisa_init(struct pci_dev *pdev, - const struct pci_device_id *ent) +static int __init pci_eisa_init(struct pci_dev *pdev) { int rc; @@ -45,22 +44,26 @@ return 0; } -static struct pci_device_id pci_eisa_pci_tbl[] = { - { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, - PCI_CLASS_BRIDGE_EISA << 8, 0xffff00, 0 }, - { 0, } -}; - -static struct pci_driver __refdata pci_eisa_driver = { - .name = "pci_eisa", - .id_table = pci_eisa_pci_tbl, - .probe = pci_eisa_init, -}; - -static int __init pci_eisa_init_module (void) +/* + * We have to call pci_eisa_init_early() before pnpacpi_init()/isapnp_init(). + * Otherwise pnp resource will get enabled early and could prevent eisa + * to be initialized. + * Also need to make sure pci_eisa_init_early() is called after + * x86/pci_subsys_init(). + * So need to use subsys_initcall_sync with it. + */ +static int __init pci_eisa_init_early(void) { - return pci_register_driver (&pci_eisa_driver); -} + struct pci_dev *dev = NULL; + int ret; + + for_each_pci_dev(dev) + if ((dev->class >> 8) == PCI_CLASS_BRIDGE_EISA) { + ret = pci_eisa_init(dev); + if (ret) + return ret; + } -device_initcall(pci_eisa_init_module); -MODULE_DEVICE_TABLE(pci, pci_eisa_pci_tbl); + return 0; +} +subsys_initcall_sync(pci_eisa_init_early); --- linux-3.2.0.orig/drivers/regulator/core.c +++ linux-3.2.0/drivers/regulator/core.c @@ -2765,6 +2765,8 @@ unset_regulator_supplies(rdev); scrub: + if (rdev->supply) + regulator_put(rdev->supply); kfree(rdev->constraints); device_unregister(&rdev->dev); /* device core frees rdev */ --- linux-3.2.0.orig/drivers/regulator/max8998.c +++ linux-3.2.0/drivers/regulator/max8998.c @@ -497,7 +497,7 @@ difference = desc->min + desc->step*i - previous_vol/1000; if (difference > 0) - udelay(difference / ((val & 0x0f) + 1)); + udelay(DIV_ROUND_UP(difference, (val & 0x0f) + 1)); return ret; } --- linux-3.2.0.orig/drivers/regulator/tps6524x-regulator.c +++ linux-3.2.0/drivers/regulator/tps6524x-regulator.c @@ -481,7 +481,7 @@ if (i >= info->n_voltages) i = info->n_voltages - 1; - *selector = info->voltages[i]; + *selector = i; return write_field(hw, &info->voltage, i); } --- linux-3.2.0.orig/drivers/regulator/max8997.c +++ linux-3.2.0/drivers/regulator/max8997.c @@ -71,26 +71,26 @@ unsigned int n_bits; }; -/* Voltage maps in mV */ +/* Voltage maps in uV */ static const struct voltage_map_desc ldo_voltage_map_desc = { - .min = 800, .max = 3950, .step = 50, .n_bits = 6, + .min = 800000, .max = 3950000, .step = 50000, .n_bits = 6, }; /* LDO1 ~ 18, 21 all */ static const struct voltage_map_desc buck1245_voltage_map_desc = { - .min = 650, .max = 2225, .step = 25, .n_bits = 6, + .min = 650000, .max = 2225000, .step = 25000, .n_bits = 6, }; /* Buck1, 2, 4, 5 */ static const struct voltage_map_desc buck37_voltage_map_desc = { - .min = 750, .max = 3900, .step = 50, .n_bits = 6, + .min = 750000, .max = 3900000, .step = 50000, .n_bits = 6, }; /* Buck3, 7 */ -/* current map in mA */ +/* current map in uA */ static const struct voltage_map_desc charger_current_map_desc = { - .min = 200, .max = 950, .step = 50, .n_bits = 4, + .min = 200000, .max = 950000, .step = 50000, .n_bits = 4, }; static const struct voltage_map_desc topoff_current_map_desc = { - .min = 50, .max = 200, .step = 10, .n_bits = 4, + .min = 50000, .max = 200000, .step = 10000, .n_bits = 4, }; static const struct voltage_map_desc *reg_voltage_map[] = { @@ -199,7 +199,7 @@ if (val > desc->max) return -EINVAL; - return val * 1000; + return val; } static int max8997_get_enable_register(struct regulator_dev *rdev, @@ -501,7 +501,6 @@ { struct max8997_data *max8997 = rdev_get_drvdata(rdev); struct i2c_client *i2c = max8997->iodev->i2c; - int min_vol = min_uV / 1000, max_vol = max_uV / 1000; const struct voltage_map_desc *desc; int rid = max8997_get_rid(rdev); int reg, shift = 0, mask, ret; @@ -527,7 +526,7 @@ desc = reg_voltage_map[rid]; - i = max8997_get_voltage_proper_val(desc, min_vol, max_vol); + i = max8997_get_voltage_proper_val(desc, min_uV, max_uV); if (i < 0) return i; @@ -546,7 +545,7 @@ /* If the voltage is increasing */ if (org < i) udelay(DIV_ROUND_UP(desc->step * (i - org), - max8997->ramp_delay)); + max8997->ramp_delay * 1000)); } return ret; @@ -645,7 +644,6 @@ const struct voltage_map_desc *desc; int new_val, new_idx, damage, tmp_val, tmp_idx, tmp_dmg; bool gpio_dvs_mode = false; - int min_vol = min_uV / 1000, max_vol = max_uV / 1000; if (rid < MAX8997_BUCK1 || rid > MAX8997_BUCK7) return -EINVAL; @@ -670,7 +668,7 @@ selector); desc = reg_voltage_map[rid]; - new_val = max8997_get_voltage_proper_val(desc, min_vol, max_vol); + new_val = max8997_get_voltage_proper_val(desc, min_uV, max_uV); if (new_val < 0) return new_val; @@ -689,7 +687,7 @@ } new_val++; - } while (desc->min + desc->step + new_val <= desc->max); + } while (desc->min + desc->step * new_val <= desc->max); new_idx = tmp_idx; new_val = tmp_val; @@ -1002,8 +1000,8 @@ max8997->buck1_vol[i] = ret = max8997_get_voltage_proper_val( &buck1245_voltage_map_desc, - pdata->buck1_voltage[i] / 1000, - pdata->buck1_voltage[i] / 1000 + + pdata->buck1_voltage[i], + pdata->buck1_voltage[i] + buck1245_voltage_map_desc.step); if (ret < 0) goto err_alloc; @@ -1011,8 +1009,8 @@ max8997->buck2_vol[i] = ret = max8997_get_voltage_proper_val( &buck1245_voltage_map_desc, - pdata->buck2_voltage[i] / 1000, - pdata->buck2_voltage[i] / 1000 + + pdata->buck2_voltage[i], + pdata->buck2_voltage[i] + buck1245_voltage_map_desc.step); if (ret < 0) goto err_alloc; @@ -1020,8 +1018,8 @@ max8997->buck5_vol[i] = ret = max8997_get_voltage_proper_val( &buck1245_voltage_map_desc, - pdata->buck5_voltage[i] / 1000, - pdata->buck5_voltage[i] / 1000 + + pdata->buck5_voltage[i], + pdata->buck5_voltage[i] + buck1245_voltage_map_desc.step); if (ret < 0) goto err_alloc; --- linux-3.2.0.orig/drivers/regulator/wm831x-dcdc.c +++ linux-3.2.0/drivers/regulator/wm831x-dcdc.c @@ -330,7 +330,7 @@ if (vsel > dcdc->dvs_vsel) { ret = wm831x_set_bits(wm831x, dvs_reg, WM831X_DC1_DVS_VSEL_MASK, - dcdc->dvs_vsel); + vsel); if (ret == 0) dcdc->dvs_vsel = vsel; else --- linux-3.2.0.orig/drivers/regulator/88pm8607.c +++ linux-3.2.0/drivers/regulator/88pm8607.c @@ -196,7 +196,7 @@ }; static const unsigned int LDO13_table[] = { - 1300000, 1800000, 2000000, 2500000, 2800000, 3000000, 0, 0, + 1200000, 1300000, 1800000, 2000000, 2500000, 2800000, 3000000, 0, }; static const unsigned int LDO13_suspend_table[] = { @@ -389,10 +389,10 @@ PM8607_LDO( 7, LDO7, 0, 3, SUPPLIES_EN12, 1), PM8607_LDO( 8, LDO8, 0, 3, SUPPLIES_EN12, 2), PM8607_LDO( 9, LDO9, 0, 3, SUPPLIES_EN12, 3), - PM8607_LDO(10, LDO10, 0, 3, SUPPLIES_EN12, 4), + PM8607_LDO(10, LDO10, 0, 4, SUPPLIES_EN12, 4), PM8607_LDO(12, LDO12, 0, 4, SUPPLIES_EN12, 5), PM8607_LDO(13, VIBRATOR_SET, 1, 3, VIBRATOR_SET, 0), - PM8607_LDO(14, LDO14, 0, 4, SUPPLIES_EN12, 6), + PM8607_LDO(14, LDO14, 0, 3, SUPPLIES_EN12, 6), }; static int __devinit pm8607_regulator_probe(struct platform_device *pdev) --- linux-3.2.0.orig/drivers/staging/Kconfig +++ linux-3.2.0/drivers/staging/Kconfig @@ -80,8 +80,6 @@ source "drivers/staging/vt6656/Kconfig" -source "drivers/staging/hv/Kconfig" - source "drivers/staging/vme/Kconfig" source "drivers/staging/sep/Kconfig" --- linux-3.2.0.orig/drivers/staging/Makefile +++ linux-3.2.0/drivers/staging/Makefile @@ -30,8 +30,7 @@ obj-$(CONFIG_USB_SERIAL_QUATECH_USB2) += quatech_usb2/ obj-$(CONFIG_OCTEON_ETHERNET) += octeon/ obj-$(CONFIG_VT6655) += vt6655/ -obj-$(CONFIG_VT6656) += vt6656/ -obj-$(CONFIG_HYPERV) += hv/ +#obj-$(CONFIG_VT6656) += vt6656/ obj-$(CONFIG_VME_BUS) += vme/ obj-$(CONFIG_DX_SEP) += sep/ obj-$(CONFIG_IIO) += iio/ --- linux-3.2.0.orig/drivers/staging/iio/magnetometer/hmc5843.c +++ linux-3.2.0/drivers/staging/iio/magnetometer/hmc5843.c @@ -521,7 +521,9 @@ /* Called when we have found a new HMC5843. */ static void hmc5843_init_client(struct i2c_client *client) { - struct hmc5843_data *data = i2c_get_clientdata(client); + struct iio_dev *indio_dev = i2c_get_clientdata(client); + struct hmc5843_data *data = iio_priv(indio_dev); + hmc5843_set_meas_conf(client, data->meas_conf); hmc5843_set_rate(client, data->rate); hmc5843_configure(client, data->operating_mode); --- linux-3.2.0.orig/drivers/staging/iio/adc/ad7606_core.c +++ linux-3.2.0/drivers/staging/iio/adc/ad7606_core.c @@ -241,6 +241,7 @@ .indexed = 1, \ .channel = num, \ .address = num, \ + .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), \ .scan_index = num, \ .scan_type = IIO_ST('s', 16, 16, 0), \ } --- linux-3.2.0.orig/drivers/staging/zram/zram_sysfs.c +++ linux-3.2.0/drivers/staging/zram/zram_sysfs.c @@ -186,10 +186,12 @@ u64 val = 0; struct zram *zram = dev_to_zram(dev); + down_read(&zram->init_lock); if (zram->init_done) { val = xv_get_total_size_bytes(zram->mem_pool) + ((u64)(zram->stats.pages_expand) << PAGE_SHIFT); } + up_read(&zram->init_lock); return sprintf(buf, "%llu\n", val); } --- linux-3.2.0.orig/drivers/staging/zram/zram_drv.c +++ linux-3.2.0/drivers/staging/zram/zram_drv.c @@ -242,7 +242,7 @@ if (is_partial_io(bvec)) { /* Use a temporary buffer to decompress the page */ - uncmem = kmalloc(PAGE_SIZE, GFP_KERNEL); + uncmem = kmalloc(PAGE_SIZE, GFP_NOIO); if (!uncmem) { pr_info("Error allocating temp memory!\n"); return -ENOMEM; @@ -338,7 +338,7 @@ * This is a partial IO. We need to read the full page * before to write the changes. */ - uncmem = kmalloc(PAGE_SIZE, GFP_KERNEL); + uncmem = kmalloc(PAGE_SIZE, GFP_NOIO); if (!uncmem) { pr_info("Error allocating temp memory!\n"); ret = -ENOMEM; @@ -541,13 +541,20 @@ */ static inline int valid_io_request(struct zram *zram, struct bio *bio) { - if (unlikely( - (bio->bi_sector >= (zram->disksize >> SECTOR_SHIFT)) || - (bio->bi_sector & (ZRAM_SECTOR_PER_LOGICAL_BLOCK - 1)) || - (bio->bi_size & (ZRAM_LOGICAL_BLOCK_SIZE - 1)))) { + u64 start, end, bound; + + /* unaligned request */ + if (unlikely(bio->bi_sector & (ZRAM_SECTOR_PER_LOGICAL_BLOCK - 1))) + return 0; + if (unlikely(bio->bi_size & (ZRAM_LOGICAL_BLOCK_SIZE - 1))) + return 0; + start = bio->bi_sector; + end = start + (bio->bi_size >> SECTOR_SHIFT); + bound = zram->disksize >> SECTOR_SHIFT; + /* out of range range */ + if (unlikely(start >= bound || end >= bound || start > end)) return 0; - } /* I/O request is valid */ return 1; @@ -713,7 +720,7 @@ static int create_device(struct zram *zram, int device_id) { - int ret = 0; + int ret = -ENOMEM; init_rwsem(&zram->lock); init_rwsem(&zram->init_lock); @@ -723,7 +730,6 @@ if (!zram->queue) { pr_err("Error allocating disk queue for device %d\n", device_id); - ret = -ENOMEM; goto out; } @@ -733,11 +739,9 @@ /* gendisk structure */ zram->disk = alloc_disk(1); if (!zram->disk) { - blk_cleanup_queue(zram->queue); pr_warning("Error allocating disk structure for device %d\n", device_id); - ret = -ENOMEM; - goto out; + goto out_free_queue; } zram->disk->major = zram_major; @@ -766,11 +770,17 @@ &zram_disk_attr_group); if (ret < 0) { pr_warning("Error creating sysfs group"); - goto out; + goto out_free_disk; } zram->init_done = 0; + return 0; +out_free_disk: + del_gendisk(zram->disk); + put_disk(zram->disk); +out_free_queue: + blk_cleanup_queue(zram->queue); out: return ret; } @@ -846,9 +856,11 @@ for (i = 0; i < zram_num_devices; i++) { zram = &zram_devices[i]; + get_disk(zram->disk); destroy_device(zram); if (zram->init_done) zram_reset_device(zram); + put_disk(zram->disk); } unregister_blkdev(zram_major, "zram"); --- linux-3.2.0.orig/drivers/staging/speakup/main.c +++ linux-3.2.0/drivers/staging/speakup/main.c @@ -1854,7 +1854,7 @@ static int handle_goto(struct vc_data *vc, u_char type, u_char ch, u_short key) { - static u_char *goto_buf = "\0\0\0\0\0\0"; + static u_char goto_buf[8]; static int num; int maxlen, go_pos; char *cp; --- linux-3.2.0.orig/drivers/staging/speakup/synth.c +++ linux-3.2.0/drivers/staging/speakup/synth.c @@ -342,7 +342,7 @@ mutex_lock(&spk_mutex); /* First, check if we already have it loaded. */ - for (i = 0; synths[i] != NULL && i < MAXSYNTHS; i++) + for (i = 0; i < MAXSYNTHS && synths[i] != NULL; i++) if (strcmp(synths[i]->name, synth_name) == 0) synth = synths[i]; @@ -423,7 +423,7 @@ int i; int status = 0; mutex_lock(&spk_mutex); - for (i = 0; synths[i] != NULL && i < MAXSYNTHS; i++) + for (i = 0; i < MAXSYNTHS && synths[i] != NULL; i++) /* synth_remove() is responsible for rotating the array down */ if (in_synth == synths[i]) { mutex_unlock(&spk_mutex); --- linux-3.2.0.orig/drivers/staging/speakup/speakup_soft.c +++ linux-3.2.0/drivers/staging/speakup/speakup_soft.c @@ -40,13 +40,13 @@ static unsigned char get_index(void); static struct miscdevice synth_device; -static int initialized; +static int init_pos; static int misc_registered; static struct var_t vars[] = { { CAPS_START, .u.s = {"\x01+3p" } }, { CAPS_STOP, .u.s = {"\x01-3p" } }, - { RATE, .u.n = {"\x01%ds", 5, 0, 9, 0, 0, NULL } }, + { RATE, .u.n = {"\x01%ds", 2, 0, 9, 0, 0, NULL } }, { PITCH, .u.n = {"\x01%dp", 5, 0, 9, 0, 0, NULL } }, { VOL, .u.n = {"\x01%dv", 5, 0, 9, 0, 0, NULL } }, { TONE, .u.n = {"\x01%dx", 1, 0, 2, 0, 0, NULL } }, @@ -194,7 +194,7 @@ unsigned long flags; spk_lock(flags); synth_soft.alive = 0; - initialized = 0; + init_pos = 0; spk_unlock(flags); /* Make sure we let applications go before leaving */ speakup_start_ttys(); @@ -239,13 +239,8 @@ ch = '\x18'; } else if (synth_buffer_empty()) { break; - } else if (!initialized) { - if (*init) { - ch = *init; - init++; - } else { - initialized = 1; - } + } else if (init[init_pos]) { + ch = init[init_pos++]; } else { ch = synth_buffer_getc(); } --- linux-3.2.0.orig/drivers/staging/rts_pstor/rtsx_transport.c +++ linux-3.2.0/drivers/staging/rts_pstor/rtsx_transport.c @@ -335,6 +335,7 @@ int sg_cnt, i, resid; int err = 0; long timeleft; + struct scatterlist *sg_ptr; u32 val = TRIG_DMA; if ((sg == NULL) || (num_sg <= 0) || !offset || !index) @@ -371,7 +372,7 @@ sg_cnt = dma_map_sg(&(rtsx->pci->dev), sg, num_sg, dma_dir); resid = size; - + sg_ptr = sg; chip->sgi = 0; /* Usually the next entry will be @sg@ + 1, but if this sg element * is part of a chained scatterlist, it could jump to the start of @@ -379,14 +380,14 @@ * the proper sg */ for (i = 0; i < *index; i++) - sg = sg_next(sg); + sg_ptr = sg_next(sg_ptr); for (i = *index; i < sg_cnt; i++) { dma_addr_t addr; unsigned int len; u8 option; - addr = sg_dma_address(sg); - len = sg_dma_len(sg); + addr = sg_dma_address(sg_ptr); + len = sg_dma_len(sg_ptr); RTSX_DEBUGP("DMA addr: 0x%x, Len: 0x%x\n", (unsigned int)addr, len); @@ -415,7 +416,7 @@ if (!resid) break; - sg = sg_next(sg); + sg_ptr = sg_next(sg_ptr); } RTSX_DEBUGP("SG table count = %d\n", chip->sgi); --- linux-3.2.0.orig/drivers/staging/zcache/zcache-main.c +++ linux-3.2.0/drivers/staging/zcache/zcache-main.c @@ -299,10 +299,12 @@ struct zbud_page *zbpg = container_of(zh, struct zbud_page, buddy[budnum]); + spin_lock(&zbud_budlists_spinlock); spin_lock(&zbpg->lock); if (list_empty(&zbpg->bud_list)) { /* ignore zombie page... see zbud_evict_pages() */ spin_unlock(&zbpg->lock); + spin_unlock(&zbud_budlists_spinlock); return; } size = zbud_free(zh); @@ -310,7 +312,6 @@ zh_other = &zbpg->buddy[(budnum == 0) ? 1 : 0]; if (zh_other->size == 0) { /* was unbuddied: unlist and free */ chunks = zbud_size_to_chunks(size) ; - spin_lock(&zbud_budlists_spinlock); BUG_ON(list_empty(&zbud_unbuddied[chunks].list)); list_del_init(&zbpg->bud_list); zbud_unbuddied[chunks].count--; @@ -318,7 +319,6 @@ zbud_free_raw_page(zbpg); } else { /* was buddied: move remaining buddy to unbuddied list */ chunks = zbud_size_to_chunks(zh_other->size) ; - spin_lock(&zbud_budlists_spinlock); list_del_init(&zbpg->bud_list); zcache_zbud_buddied_count--; list_add_tail(&zbpg->bud_list, &zbud_unbuddied[chunks].list); @@ -358,8 +358,8 @@ if (unlikely(zbpg == NULL)) goto out; /* ok, have a page, now compress the data before taking locks */ - spin_lock(&zbpg->lock); spin_lock(&zbud_budlists_spinlock); + spin_lock(&zbpg->lock); list_add_tail(&zbpg->bud_list, &zbud_unbuddied[nchunks].list); zbud_unbuddied[nchunks].count++; zh = &zbpg->buddy[0]; @@ -389,12 +389,11 @@ zh->oid = *oid; zh->pool_id = pool_id; zh->client_id = client_id; - /* can wait to copy the data until the list locks are dropped */ - spin_unlock(&zbud_budlists_spinlock); - to = zbud_data(zh, size); memcpy(to, cdata, size); spin_unlock(&zbpg->lock); + spin_unlock(&zbud_budlists_spinlock); + zbud_cumul_chunk_counts[nchunks]++; atomic_inc(&zcache_zbud_curr_zpages); zcache_zbud_cumul_zpages++; @@ -1224,13 +1223,12 @@ void *pampd, struct tmem_pool *pool, struct tmem_oid *oid, uint32_t index) { - int ret = 0; - BUG_ON(!is_ephemeral(pool)); - zbud_decompress((struct page *)(data), pampd); + if (zbud_decompress((struct page *)(data), pampd) < 0) + return -EINVAL; zbud_free_and_delist((struct zbud_hdr *)pampd); atomic_dec(&zcache_curr_eph_pampd_count); - return ret; + return 0; } /* @@ -1782,9 +1780,9 @@ * Swizzling increases objects per swaptype, increasing tmem concurrency * for heavy swaploads. Later, larger nr_cpus -> larger SWIZ_BITS * Setting SWIZ_BITS to 27 basically reconstructs the swap entry from - * frontswap_get_page() + * frontswap_get_page(), but has side-effects. Hence using 8. */ -#define SWIZ_BITS 27 +#define SWIZ_BITS 8 #define SWIZ_MASK ((1 << SWIZ_BITS) - 1) #define _oswiz(_type, _ind) ((_type << SWIZ_BITS) | (_ind & SWIZ_MASK)) #define iswiz(_ind) (_ind >> SWIZ_BITS) --- linux-3.2.0.orig/drivers/staging/bcm/InterfaceInit.h +++ linux-3.2.0/drivers/staging/bcm/InterfaceInit.h @@ -8,10 +8,11 @@ #define BCM_USB_PRODUCT_ID_T3 0x0300 #define BCM_USB_PRODUCT_ID_T3B 0x0210 #define BCM_USB_PRODUCT_ID_T3L 0x0220 -#define BCM_USB_PRODUCT_ID_SM250 0xbccd #define BCM_USB_PRODUCT_ID_SYM 0x15E #define BCM_USB_PRODUCT_ID_1901 0xe017 -#define BCM_USB_PRODUCT_ID_226 0x0132 +#define BCM_USB_PRODUCT_ID_226 0x0132 /* not sure if this is valid */ +#define BCM_USB_PRODUCT_ID_ZTE_226 0x172 +#define BCM_USB_PRODUCT_ID_ZTE_326 0x173 /* ZTE AX326 */ #define BCM_USB_PRODUCT_ID_ZTE_TU25 0x0007 #define BCM_USB_MINOR_BASE 192 --- linux-3.2.0.orig/drivers/staging/bcm/InterfaceInit.c +++ linux-3.2.0/drivers/staging/bcm/InterfaceInit.c @@ -4,10 +4,12 @@ { USB_DEVICE(BCM_USB_VENDOR_ID_T3, BCM_USB_PRODUCT_ID_T3) }, { USB_DEVICE(BCM_USB_VENDOR_ID_T3, BCM_USB_PRODUCT_ID_T3B) }, { USB_DEVICE(BCM_USB_VENDOR_ID_T3, BCM_USB_PRODUCT_ID_T3L) }, - { USB_DEVICE(BCM_USB_VENDOR_ID_T3, BCM_USB_PRODUCT_ID_SM250) }, + { USB_DEVICE(BCM_USB_VENDOR_ID_T3, BCM_USB_PRODUCT_ID_SYM) }, { USB_DEVICE(BCM_USB_VENDOR_ID_ZTE, BCM_USB_PRODUCT_ID_226) }, { USB_DEVICE(BCM_USB_VENDOR_ID_FOXCONN, BCM_USB_PRODUCT_ID_1901) }, { USB_DEVICE(BCM_USB_VENDOR_ID_ZTE, BCM_USB_PRODUCT_ID_ZTE_TU25) }, + { USB_DEVICE(BCM_USB_VENDOR_ID_ZTE, BCM_USB_PRODUCT_ID_ZTE_226) }, + { USB_DEVICE(BCM_USB_VENDOR_ID_ZTE, BCM_USB_PRODUCT_ID_ZTE_326) }, { } }; MODULE_DEVICE_TABLE(usb, InterfaceUsbtable); --- linux-3.2.0.orig/drivers/staging/rtl8192e/rtl_dm.c +++ linux-3.2.0/drivers/staging/rtl8192e/rtl_dm.c @@ -208,7 +208,7 @@ if (priv->rtllib->state != RTLLIB_LINKED) return; - call_usermodehelper(ac_dc_check_script_path, argv, envp, 1); + call_usermodehelper(ac_dc_check_script_path, argv, envp, UMH_WAIT_PROC); return; }; @@ -2296,7 +2296,7 @@ argv[0] = RadioPowerPath; argv[2] = NULL; - call_usermodehelper(RadioPowerPath, argv, envp, 1); + call_usermodehelper(RadioPowerPath, argv, envp, UMH_WAIT_PROC); } } --- linux-3.2.0.orig/drivers/staging/mei/main.c +++ linux-3.2.0/drivers/staging/mei/main.c @@ -106,6 +106,27 @@ static DEFINE_MUTEX(mei_mutex); /** + * mei_quirk_probe - probe for devices that doesn't valid ME interface + * @pdev: PCI device structure + * @ent: entry into pci_device_table + * + * returns true if ME Interface is valid, false otherwise + */ +static bool __devinit mei_quirk_probe(struct pci_dev *pdev, + const struct pci_device_id *ent) +{ + u32 reg; + if (ent->device == MEI_DEV_ID_PBG_1) { + pci_read_config_dword(pdev, 0x48, ®); + /* make sure that bit 9 is up and bit 10 is down */ + if ((reg & 0x600) == 0x200) { + dev_info(&pdev->dev, "Device doesn't have valid ME Interface\n"); + return false; + } + } + return true; +} +/** * mei_probe - Device Initialization Routine * * @pdev: PCI device structure @@ -120,6 +141,12 @@ int err; mutex_lock(&mei_mutex); + + if (!mei_quirk_probe(pdev, ent)) { + err = -ENODEV; + goto end; + } + if (mei_device) { err = -EEXIST; goto end; --- linux-3.2.0.orig/drivers/staging/comedi/Kconfig +++ linux-3.2.0/drivers/staging/comedi/Kconfig @@ -14,6 +14,26 @@ This is an option for use by developers; most people should say N here. This enables comedi core and driver debugging. +config COMEDI_DEFAULT_BUF_SIZE_KB + int "Comedi default initial asynchronous buffer size in KiB" + default "2048" + depends on COMEDI != n + ---help--- + This is the default asynchronous buffer size which is used for + commands running in the background in kernel space. This + defaults to 2048 KiB of memory so that a 16 channel card + running at 10 kHz has of 2-4 seconds of buffer. + +config COMEDI_DEFAULT_BUF_MAXSIZE_KB + int "Comedi default maximum asynchronous buffer size in KiB" + default "20480" + depends on COMEDI != n + ---help--- + This is the default maximum asynchronous buffer size which can + be requested by a userspace program without root privileges. + This is set to 20480 KiB so that a fast I/O card with 16 + channels running at 100 kHz has 2-4 seconds of buffer. + menuconfig COMEDI_MISC_DRIVERS tristate "Comedi misc drivers" depends on COMEDI @@ -424,6 +444,7 @@ config COMEDI_NI_AT_A2150 tristate "NI AT-A2150 ISA card support" + select COMEDI_FC depends on COMEDI_NI_COMMON depends on VIRT_TO_BUS default N --- linux-3.2.0.orig/drivers/staging/comedi/drivers.c +++ linux-3.2.0/drivers/staging/comedi/drivers.c @@ -243,6 +243,8 @@ s->len_chanlist = 1; if (s->do_cmd) { + unsigned int buf_size; + BUG_ON((s->subdev_flags & (SDF_CMD_READ | SDF_CMD_WRITE)) == 0); BUG_ON(!s->do_cmdtest); @@ -258,19 +260,20 @@ async->subdevice = s; s->async = async; -#define DEFAULT_BUF_MAXSIZE (64*1024) -#define DEFAULT_BUF_SIZE (64*1024) - - async->max_bufsize = DEFAULT_BUF_MAXSIZE; + async->max_bufsize = + comedi_default_buf_maxsize_kb * 1024; + buf_size = comedi_default_buf_size_kb * 1024; + if (buf_size > async->max_bufsize) + buf_size = async->max_bufsize; async->prealloc_buf = NULL; async->prealloc_bufsz = 0; - if (comedi_buf_alloc(dev, s, DEFAULT_BUF_SIZE) < 0) { + if (comedi_buf_alloc(dev, s, buf_size) < 0) { printk(KERN_INFO "Buffer allocation failed\n"); return -ENOMEM; } if (s->buf_change) { - ret = s->buf_change(dev, s, DEFAULT_BUF_SIZE); + ret = s->buf_change(dev, s, buf_size); if (ret < 0) return ret; } @@ -823,25 +826,14 @@ int minor; struct comedi_device_file_info *dev_file_info; int retval; - unsigned *private_data = NULL; - if (!comedi_autoconfig) { - dev_set_drvdata(hardware_device, NULL); + if (!comedi_autoconfig) return 0; - } minor = comedi_alloc_board_minor(hardware_device); if (minor < 0) return minor; - private_data = kmalloc(sizeof(unsigned), GFP_KERNEL); - if (private_data == NULL) { - retval = -ENOMEM; - goto cleanup; - } - *private_data = minor; - dev_set_drvdata(hardware_device, private_data); - dev_file_info = comedi_get_device_file_info(minor); memset(&it, 0, sizeof(it)); @@ -854,25 +846,22 @@ retval = comedi_device_attach(dev_file_info->device, &it); mutex_unlock(&dev_file_info->device->mutex); -cleanup: - if (retval < 0) { - kfree(private_data); + if (retval < 0) comedi_free_board_minor(minor); - } return retval; } static void comedi_auto_unconfig(struct device *hardware_device) { - unsigned *minor = (unsigned *)dev_get_drvdata(hardware_device); - if (minor == NULL) - return; - - BUG_ON(*minor >= COMEDI_NUM_BOARD_MINORS); + int minor; - comedi_free_board_minor(*minor); - dev_set_drvdata(hardware_device, NULL); - kfree(minor); + if (hardware_device == NULL) + return; + minor = comedi_find_board_minor(hardware_device); + if (minor < 0) + return; + BUG_ON(minor >= COMEDI_NUM_BOARD_MINORS); + comedi_free_board_minor(minor); } int comedi_pci_auto_config(struct pci_dev *pcidev, const char *board_name) --- linux-3.2.0.orig/drivers/staging/comedi/comedi_fops.c +++ linux-3.2.0/drivers/staging/comedi/comedi_fops.c @@ -58,14 +58,35 @@ #ifdef CONFIG_COMEDI_DEBUG int comedi_debug; EXPORT_SYMBOL(comedi_debug); -module_param(comedi_debug, int, 0644); +module_param(comedi_debug, int, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(comedi_debug, + "enable comedi core and driver debugging if non-zero (default 0)" + ); #endif int comedi_autoconfig = 1; -module_param(comedi_autoconfig, bool, 0444); +module_param(comedi_autoconfig, bool, S_IRUGO); +MODULE_PARM_DESC(comedi_autoconfig, + "enable drivers to auto-configure comedi devices (default 1)"); static int comedi_num_legacy_minors; -module_param(comedi_num_legacy_minors, int, 0444); +module_param(comedi_num_legacy_minors, int, S_IRUGO); +MODULE_PARM_DESC(comedi_num_legacy_minors, + "number of comedi minor devices to reserve for non-auto-configured devices (default 0)" + ); + +unsigned int comedi_default_buf_size_kb = CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB; +module_param(comedi_default_buf_size_kb, uint, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(comedi_default_buf_size_kb, + "default asynchronous buffer size in KiB (default " + __MODULE_STRING(CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB) ")"); + +unsigned int comedi_default_buf_maxsize_kb + = CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB; +module_param(comedi_default_buf_maxsize_kb, uint, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(comedi_default_buf_maxsize_kb, + "default maximum size of asynchronous buffer in KiB (default " + __MODULE_STRING(CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB) ")"); static DEFINE_SPINLOCK(comedi_file_info_table_lock); static struct comedi_device_file_info @@ -136,8 +157,16 @@ /* Device config is special, because it must work on * an unconfigured device. */ if (cmd == COMEDI_DEVCONFIG) { + if (minor >= COMEDI_NUM_BOARD_MINORS) { + /* Device config not appropriate on non-board minors. */ + rc = -ENOTTY; + goto done; + } rc = do_devconfig_ioctl(dev, (struct comedi_devconfig __user *)arg); + if (rc == 0) + /* Evade comedi_auto_unconfig(). */ + dev_file_info->hardware_device = NULL; goto done; } @@ -280,7 +309,7 @@ if (ret == 0) { if (!try_module_get(dev->driver->module)) { comedi_device_detach(dev); - return -ENOSYS; + ret = -ENOSYS; } } @@ -843,7 +872,7 @@ ret = -EAGAIN; break; } - ret = s->async->inttrig(dev, s, insn->data[0]); + ret = s->async->inttrig(dev, s, data[0]); if (ret >= 0) ret = 1; break; @@ -1070,25 +1099,21 @@ DPRINTK("subdevice busy\n"); return -EBUSY; } - s->busy = file; /* make sure channel/gain list isn't too long */ if (user_cmd.chanlist_len > s->len_chanlist) { DPRINTK("channel/gain list too long %u > %d\n", user_cmd.chanlist_len, s->len_chanlist); - ret = -EINVAL; - goto cleanup; + return -EINVAL; } /* make sure channel/gain list isn't too short */ if (user_cmd.chanlist_len < 1) { DPRINTK("channel/gain list too short %u < 1\n", user_cmd.chanlist_len); - ret = -EINVAL; - goto cleanup; + return -EINVAL; } - kfree(async->cmd.chanlist); async->cmd = user_cmd; async->cmd.data = NULL; /* load channel/gain list */ @@ -1096,8 +1121,7 @@ kmalloc(async->cmd.chanlist_len * sizeof(int), GFP_KERNEL); if (!async->cmd.chanlist) { DPRINTK("allocation failed\n"); - ret = -ENOMEM; - goto cleanup; + return -ENOMEM; } if (copy_from_user(async->cmd.chanlist, user_cmd.chanlist, @@ -1149,6 +1173,9 @@ comedi_set_subdevice_runflags(s, ~0, SRF_USER | SRF_RUNNING); + /* set s->busy _after_ setting SRF_RUNNING flag to avoid race with + * comedi_read() or comedi_write() */ + s->busy = file; ret = s->do_cmd(dev, s); if (ret == 0) return 0; @@ -1363,6 +1390,7 @@ void *file) { struct comedi_subdevice *s; + int ret; if (arg >= dev->n_subdevices) return -EINVAL; @@ -1379,7 +1407,11 @@ if (s->busy != file) return -EBUSY; - return do_cancel(dev, s); + ret = do_cancel(dev, s); + if (comedi_get_subdevice_runflags(s) & SRF_USER) + wake_up_interruptible(&s->async->wait_head); + + return ret; } /* @@ -1570,7 +1602,7 @@ mask = 0; read_subdev = comedi_get_read_subdevice(dev_file_info); - if (read_subdev) { + if (read_subdev && read_subdev->async) { poll_wait(file, &read_subdev->async->wait_head, wait); if (!read_subdev->busy || comedi_buf_read_n_available(read_subdev->async) > 0 @@ -1580,7 +1612,7 @@ } } write_subdev = comedi_get_write_subdevice(dev_file_info); - if (write_subdev) { + if (write_subdev && write_subdev->async) { poll_wait(file, &write_subdev->async->wait_head, wait); comedi_buf_write_alloc(write_subdev->async, write_subdev->async->prealloc_bufsz); @@ -1622,7 +1654,7 @@ } s = comedi_get_write_subdevice(dev_file_info); - if (s == NULL) { + if (s == NULL || s->async == NULL) { retval = -EIO; goto done; } @@ -1646,6 +1678,7 @@ if (!(comedi_get_subdevice_runflags(s) & SRF_RUNNING)) { if (count == 0) { + mutex_lock(&dev->mutex); if (comedi_get_subdevice_runflags(s) & SRF_ERROR) { retval = -EPIPE; @@ -1653,6 +1686,7 @@ retval = 0; } do_become_nonbusy(dev, s); + mutex_unlock(&dev->mutex); } break; } @@ -1733,7 +1767,7 @@ } s = comedi_get_read_subdevice(dev_file_info); - if (s == NULL) { + if (s == NULL || s->async == NULL) { retval = -EIO; goto done; } @@ -1767,6 +1801,7 @@ if (n == 0) { if (!(comedi_get_subdevice_runflags(s) & SRF_RUNNING)) { + mutex_lock(&dev->mutex); do_become_nonbusy(dev, s); if (comedi_get_subdevice_runflags(s) & SRF_ERROR) { @@ -1774,6 +1809,7 @@ } else { retval = 0; } + mutex_unlock(&dev->mutex); break; } if (file->f_flags & O_NONBLOCK) { @@ -1811,9 +1847,11 @@ buf += n; break; /* makes device work like a pipe */ } - if (!(comedi_get_subdevice_runflags(s) & (SRF_ERROR | SRF_RUNNING)) && - async->buf_read_count - async->buf_write_count == 0) { - do_become_nonbusy(dev, s); + if (!(comedi_get_subdevice_runflags(s) & (SRF_ERROR | SRF_RUNNING))) { + mutex_lock(&dev->mutex); + if (async->buf_read_count - async->buf_write_count == 0) + do_become_nonbusy(dev, s); + mutex_unlock(&dev->mutex); } set_current_state(TASK_RUNNING); remove_wait_queue(&async->wait_head, &wait); @@ -1833,6 +1871,8 @@ if (async) { comedi_reset_async_buf(async); async->inttrig = NULL; + kfree(async->cmd.chanlist); + async->cmd.chanlist = NULL; } else { printk(KERN_ERR "BUG: (?) do_become_nonbusy called with async=0\n"); @@ -2206,6 +2246,7 @@ kfree(info); return -ENOMEM; } + info->hardware_device = hardware_device; comedi_device_init(info->device); spin_lock_irqsave(&comedi_file_info_table_lock, flags); for (i = 0; i < COMEDI_NUM_BOARD_MINORS; ++i) { @@ -2294,6 +2335,23 @@ } } +int comedi_find_board_minor(struct device *hardware_device) +{ + int minor; + struct comedi_device_file_info *info; + + for (minor = 0; minor < COMEDI_NUM_BOARD_MINORS; minor++) { + spin_lock(&comedi_file_info_table_lock); + info = comedi_file_info_table[minor]; + if (info && info->hardware_device == hardware_device) { + spin_unlock(&comedi_file_info_table_lock); + return minor; + } + spin_unlock(&comedi_file_info_table_lock); + } + return -ENODEV; +} + int comedi_alloc_subdevice_minor(struct comedi_device *dev, struct comedi_subdevice *s) { --- linux-3.2.0.orig/drivers/staging/comedi/internal.h +++ linux-3.2.0/drivers/staging/comedi/internal.h @@ -1,5 +1,5 @@ /* - * various internal comedi functions + * various internal comedi stuff */ int do_rangeinfo_ioctl(struct comedi_device *dev, struct comedi_rangeinfo __user *arg); @@ -7,6 +7,10 @@ struct comedi_insn *insn, unsigned int *data); int comedi_alloc_board_minor(struct device *hardware_device); void comedi_free_board_minor(unsigned minor); +int comedi_find_board_minor(struct device *hardware_device); void comedi_reset_async_buf(struct comedi_async *async); int comedi_buf_alloc(struct comedi_device *dev, struct comedi_subdevice *s, unsigned long new_size); + +extern unsigned int comedi_default_buf_size_kb; +extern unsigned int comedi_default_buf_maxsize_kb; --- linux-3.2.0.orig/drivers/staging/comedi/comedidev.h +++ linux-3.2.0/drivers/staging/comedi/comedidev.h @@ -234,6 +234,7 @@ struct comedi_device *device; struct comedi_subdevice *read_subdevice; struct comedi_subdevice *write_subdevice; + struct device *hardware_device; }; #ifdef CONFIG_COMEDI_DEBUG --- linux-3.2.0.orig/drivers/staging/comedi/drivers/ni_pcimio.c +++ linux-3.2.0/drivers/staging/comedi/drivers/ni_pcimio.c @@ -1021,7 +1021,7 @@ .ao_range_table = &range_ni_M_625x_ao, .reg_type = ni_reg_625x, .ao_unipolar = 0, - .ao_speed = 357, + .ao_speed = 350, .num_p0_dio_channels = 8, .caldac = {caldac_none}, .has_8255 = 0, @@ -1040,7 +1040,7 @@ .ao_range_table = &range_ni_M_625x_ao, .reg_type = ni_reg_625x, .ao_unipolar = 0, - .ao_speed = 357, + .ao_speed = 350, .num_p0_dio_channels = 8, .caldac = {caldac_none}, .has_8255 = 0, @@ -1076,7 +1076,7 @@ .ao_range_table = &range_ni_M_625x_ao, .reg_type = ni_reg_625x, .ao_unipolar = 0, - .ao_speed = 357, + .ao_speed = 350, .num_p0_dio_channels = 32, .caldac = {caldac_none}, .has_8255 = 0, @@ -1095,7 +1095,7 @@ .ao_range_table = &range_ni_M_625x_ao, .reg_type = ni_reg_625x, .ao_unipolar = 0, - .ao_speed = 357, + .ao_speed = 350, .num_p0_dio_channels = 32, .caldac = {caldac_none}, .has_8255 = 0, @@ -1131,7 +1131,7 @@ .ao_range_table = &range_ni_M_628x_ao, .reg_type = ni_reg_628x, .ao_unipolar = 1, - .ao_speed = 357, + .ao_speed = 350, .num_p0_dio_channels = 8, .caldac = {caldac_none}, .has_8255 = 0, @@ -1150,7 +1150,7 @@ .ao_range_table = &range_ni_M_628x_ao, .reg_type = ni_reg_628x, .ao_unipolar = 1, - .ao_speed = 357, + .ao_speed = 350, .num_p0_dio_channels = 8, .caldac = {caldac_none}, .has_8255 = 0, @@ -1186,7 +1186,7 @@ .ao_range_table = &range_ni_M_628x_ao, .reg_type = ni_reg_628x, .ao_unipolar = 1, - .ao_speed = 357, + .ao_speed = 350, .num_p0_dio_channels = 32, .caldac = {caldac_none}, .has_8255 = 0, --- linux-3.2.0.orig/drivers/staging/comedi/drivers/s626.c +++ linux-3.2.0/drivers/staging/comedi/drivers/s626.c @@ -1882,7 +1882,7 @@ case TRIG_NONE: /* continous acquisition */ devpriv->ai_continous = 1; - devpriv->ai_sample_count = 0; + devpriv->ai_sample_count = 1; break; } @@ -2370,7 +2370,7 @@ /* (data==NULL) ? (Preloadvalue=0) : (Preloadvalue=data[0]); */ k->SetMode(dev, k, Setup, TRUE); - Preload(dev, k, *(insn->data)); + Preload(dev, k, data[0]); k->PulseIndex(dev, k); SetLatchSource(dev, k, valueSrclatch); k->SetEnable(dev, k, (uint16_t) (enab != 0)); --- linux-3.2.0.orig/drivers/staging/comedi/drivers/ni_labpc.c +++ linux-3.2.0/drivers/staging/comedi/drivers/ni_labpc.c @@ -1264,7 +1264,9 @@ else channel = CR_CHAN(cmd->chanlist[0]); /* munge channel bits for differential / scan disabled mode */ - if (labpc_ai_scan_mode(cmd) != MODE_SINGLE_CHAN && aref == AREF_DIFF) + if ((labpc_ai_scan_mode(cmd) == MODE_SINGLE_CHAN || + labpc_ai_scan_mode(cmd) == MODE_SINGLE_CHAN_INTERVAL) && + aref == AREF_DIFF) channel *= 2; devpriv->command1_bits |= ADC_CHAN_BITS(channel); devpriv->command1_bits |= thisboard->ai_range_code[range]; @@ -1280,21 +1282,6 @@ devpriv->write_byte(devpriv->command1_bits, dev->iobase + COMMAND1_REG); } - /* setup any external triggering/pacing (command4 register) */ - devpriv->command4_bits = 0; - if (cmd->convert_src != TRIG_EXT) - devpriv->command4_bits |= EXT_CONVERT_DISABLE_BIT; - /* XXX should discard first scan when using interval scanning - * since manual says it is not synced with scan clock */ - if (labpc_use_continuous_mode(cmd) == 0) { - devpriv->command4_bits |= INTERVAL_SCAN_EN_BIT; - if (cmd->scan_begin_src == TRIG_EXT) - devpriv->command4_bits |= EXT_SCAN_EN_BIT; - } - /* single-ended/differential */ - if (aref == AREF_DIFF) - devpriv->command4_bits |= ADC_DIFF_BIT; - devpriv->write_byte(devpriv->command4_bits, dev->iobase + COMMAND4_REG); devpriv->write_byte(cmd->chanlist_len, dev->iobase + INTERVAL_COUNT_REG); @@ -1374,6 +1361,22 @@ devpriv->command3_bits &= ~ADC_FNE_INTR_EN_BIT; devpriv->write_byte(devpriv->command3_bits, dev->iobase + COMMAND3_REG); + /* setup any external triggering/pacing (command4 register) */ + devpriv->command4_bits = 0; + if (cmd->convert_src != TRIG_EXT) + devpriv->command4_bits |= EXT_CONVERT_DISABLE_BIT; + /* XXX should discard first scan when using interval scanning + * since manual says it is not synced with scan clock */ + if (labpc_use_continuous_mode(cmd) == 0) { + devpriv->command4_bits |= INTERVAL_SCAN_EN_BIT; + if (cmd->scan_begin_src == TRIG_EXT) + devpriv->command4_bits |= EXT_SCAN_EN_BIT; + } + /* single-ended/differential */ + if (aref == AREF_DIFF) + devpriv->command4_bits |= ADC_DIFF_BIT; + devpriv->write_byte(devpriv->command4_bits, dev->iobase + COMMAND4_REG); + /* startup acquisition */ /* command2 reg */ --- linux-3.2.0.orig/drivers/staging/comedi/drivers/jr3_pci.c +++ linux-3.2.0/drivers/staging/comedi/drivers/jr3_pci.c @@ -913,7 +913,7 @@ } /* Reset DSP card */ - devpriv->iobase->channel[0].reset = 0; + writel(0, &devpriv->iobase->channel[0].reset); result = comedi_load_firmware(dev, "jr3pci.idm", jr3_download_firmware); printk("Firmare load %d\n", result); --- linux-3.2.0.orig/drivers/staging/comedi/drivers/amplc_pc236.c +++ linux-3.2.0/drivers/staging/comedi/drivers/amplc_pc236.c @@ -470,7 +470,7 @@ { printk(KERN_DEBUG "comedi%d: %s: detach\n", dev->minor, PC236_DRIVER_NAME); - if (devpriv) + if (dev->iobase) pc236_intr_disable(dev); if (dev->irq) --- linux-3.2.0.orig/drivers/staging/comedi/drivers/das08.c +++ linux-3.2.0/drivers/staging/comedi/drivers/das08.c @@ -385,7 +385,7 @@ .ai = das08_ai_rinsn, .ai_nbits = 16, .ai_pg = das08_pg_none, - .ai_encoding = das08_encode12, + .ai_encoding = das08_encode16, .ao = das08jr_ao_winsn, .ao_nbits = 16, .di = das08jr_di_rbits, @@ -655,7 +655,7 @@ int chan; lsb = data[0] & 0xff; - msb = (data[0] >> 8) & 0xf; + msb = (data[0] >> 8) & 0xff; chan = CR_CHAN(insn->chanspec); --- linux-3.2.0.orig/drivers/staging/comedi/drivers/comedi_test.c +++ linux-3.2.0/drivers/staging/comedi/drivers/comedi_test.c @@ -461,7 +461,7 @@ struct comedi_subdevice *s) { devpriv->timer_running = 0; - del_timer(&devpriv->timer); + del_timer_sync(&devpriv->timer); return 0; } --- linux-3.2.0.orig/drivers/staging/gma500/cdv_intel_display.c +++ linux-3.2.0/drivers/staging/gma500/cdv_intel_display.c @@ -1457,6 +1457,19 @@ kfree(psb_intel_crtc); } +static void cdv_intel_crtc_disable(struct drm_crtc *crtc) +{ + struct gtt_range *gt; + struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private; + + crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF); + + if (crtc->fb) { + gt = to_psb_fb(crtc->fb)->gtt; + psb_gtt_unpin(gt); + } +} + const struct drm_crtc_helper_funcs cdv_intel_helper_funcs = { .dpms = cdv_intel_crtc_dpms, .mode_fixup = cdv_intel_crtc_mode_fixup, @@ -1464,6 +1477,7 @@ .mode_set_base = cdv_intel_pipe_set_base, .prepare = cdv_intel_crtc_prepare, .commit = cdv_intel_crtc_commit, + .disable = cdv_intel_crtc_disable, }; const struct drm_crtc_funcs cdv_intel_crtc_funcs = { --- linux-3.2.0.orig/drivers/staging/gma500/framebuffer.c +++ linux-3.2.0/drivers/staging/gma500/framebuffer.c @@ -831,8 +831,8 @@ for (i = 0; i < dev_priv->num_pipe; i++) psb_intel_crtc_init(dev, i, mode_dev); - dev->mode_config.max_width = 2048; - dev->mode_config.max_height = 2048; + dev->mode_config.max_width = 4096; + dev->mode_config.max_height = 4096; psb_setup_outputs(dev); } --- linux-3.2.0.orig/drivers/staging/gma500/psb_intel_display.c +++ linux-3.2.0/drivers/staging/gma500/psb_intel_display.c @@ -1255,6 +1255,19 @@ kfree(psb_intel_crtc); } +static void psb_intel_crtc_disable(struct drm_crtc *crtc) +{ + struct gtt_range *gt; + struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private; + + crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF); + + if (crtc->fb) { + gt = to_psb_fb(crtc->fb)->gtt; + psb_gtt_unpin(gt); + } +} + const struct drm_crtc_helper_funcs psb_intel_helper_funcs = { .dpms = psb_intel_crtc_dpms, .mode_fixup = psb_intel_crtc_mode_fixup, @@ -1262,6 +1275,7 @@ .mode_set_base = psb_intel_pipe_set_base, .prepare = psb_intel_crtc_prepare, .commit = psb_intel_crtc_commit, + .disable = psb_intel_crtc_disable, }; const struct drm_crtc_funcs psb_intel_crtc_funcs = { --- linux-3.2.0.orig/drivers/staging/line6/pcm.c +++ linux-3.2.0/drivers/staging/line6/pcm.c @@ -360,8 +360,11 @@ */ static void pcm_disconnect_substream(struct snd_pcm_substream *substream) { - if (substream->runtime && snd_pcm_running(substream)) + if (substream->runtime && snd_pcm_running(substream)) { + snd_pcm_stream_lock_irq(substream); snd_pcm_stop(substream, SNDRV_PCM_STATE_DISCONNECTED); + snd_pcm_stream_unlock_irq(substream); + } } /* --- linux-3.2.0.orig/drivers/staging/media/lirc/lirc_sir.c +++ linux-3.2.0/drivers/staging/media/lirc/lirc_sir.c @@ -53,6 +53,7 @@ #include #include #include +#include #ifdef LIRC_ON_SA1100 #include #ifdef CONFIG_SA1100_COLLIE @@ -488,9 +489,11 @@ .owner = THIS_MODULE, }; +static struct platform_device *lirc_sir_dev; static int init_chrdev(void) { + driver.dev = &lirc_sir_dev->dev; driver.minor = lirc_register_driver(&driver); if (driver.minor < 0) { printk(KERN_ERR LIRC_DRIVER_NAME ": init_chrdev() failed.\n"); @@ -1216,20 +1219,71 @@ return 0; } +static int __devinit lirc_sir_probe(struct platform_device *dev) +{ + return 0; +} + +static int __devexit lirc_sir_remove(struct platform_device *dev) +{ + return 0; +} + +static struct platform_driver lirc_sir_driver = { + .probe = lirc_sir_probe, + .remove = __devexit_p(lirc_sir_remove), + .driver = { + .name = "lirc_sir", + .owner = THIS_MODULE, + }, +}; static int __init lirc_sir_init(void) { int retval; + retval = platform_driver_register(&lirc_sir_driver); + if (retval) { + printk(KERN_ERR LIRC_DRIVER_NAME ": Platform driver register " + "failed!\n"); + return -ENODEV; + } + + lirc_sir_dev = platform_device_alloc("lirc_dev", 0); + if (!lirc_sir_dev) { + printk(KERN_ERR LIRC_DRIVER_NAME ": Platform device alloc " + "failed!\n"); + retval = -ENOMEM; + goto pdev_alloc_fail; + } + + retval = platform_device_add(lirc_sir_dev); + if (retval) { + printk(KERN_ERR LIRC_DRIVER_NAME ": Platform device add " + "failed!\n"); + retval = -ENODEV; + goto pdev_add_fail; + } + retval = init_chrdev(); if (retval < 0) - return retval; + goto fail; + retval = init_lirc_sir(); if (retval) { drop_chrdev(); - return retval; + goto fail; } + return 0; + +fail: + platform_device_del(lirc_sir_dev); +pdev_add_fail: + platform_device_put(lirc_sir_dev); +pdev_alloc_fail: + platform_driver_unregister(&lirc_sir_driver); + return retval; } static void __exit lirc_sir_exit(void) @@ -1237,6 +1291,8 @@ drop_hardware(); drop_chrdev(); drop_port(); + platform_device_unregister(lirc_sir_dev); + platform_driver_unregister(&lirc_sir_driver); printk(KERN_INFO LIRC_DRIVER_NAME ": Uninstalled.\n"); } --- linux-3.2.0.orig/drivers/staging/media/lirc/lirc_serial.c +++ linux-3.2.0/drivers/staging/media/lirc/lirc_serial.c @@ -836,25 +836,22 @@ return 0; } -static int init_port(void) +static int __devinit lirc_serial_probe(struct platform_device *dev) { int i, nlow, nhigh, result; result = request_irq(irq, irq_handler, (share_irq ? IRQF_SHARED : 0), LIRC_DRIVER_NAME, (void *)&hardware); - - switch (result) { - case -EBUSY: - printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n", irq); - return -EBUSY; - case -EINVAL: - printk(KERN_ERR LIRC_DRIVER_NAME - ": Bad irq number or handler\n"); - return -EINVAL; - default: - break; - }; + if (result < 0) { + if (result == -EBUSY) + printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n", + irq); + else if (result == -EINVAL) + printk(KERN_ERR LIRC_DRIVER_NAME + ": Bad irq number or handler\n"); + return result; + } /* Reserve io region. */ /* @@ -875,11 +872,14 @@ ": or compile the serial port driver as module and\n"); printk(KERN_WARNING LIRC_DRIVER_NAME ": make sure this module is loaded first\n"); - return -EBUSY; + result = -EBUSY; + goto exit_free_irq; } - if (hardware_init_port() < 0) - return -EINVAL; + if (hardware_init_port() < 0) { + result = -EINVAL; + goto exit_release_region; + } /* Initialize pulse/space widths */ init_timing_params(duty_cycle, freq); @@ -911,6 +911,28 @@ dprintk("Interrupt %d, port %04x obtained\n", irq, io); return 0; + +exit_release_region: + if (iommap != 0) + release_mem_region(iommap, 8 << ioshift); + else + release_region(io, 8); +exit_free_irq: + free_irq(irq, (void *)&hardware); + + return result; +} + +static int __devexit lirc_serial_remove(struct platform_device *dev) +{ + free_irq(irq, (void *)&hardware); + + if (iommap != 0) + release_mem_region(iommap, 8 << ioshift); + else + release_region(io, 8); + + return 0; } static int set_use_inc(void *data) @@ -1076,16 +1098,6 @@ static struct platform_device *lirc_serial_dev; -static int __devinit lirc_serial_probe(struct platform_device *dev) -{ - return 0; -} - -static int __devexit lirc_serial_remove(struct platform_device *dev) -{ - return 0; -} - static int lirc_serial_suspend(struct platform_device *dev, pm_message_t state) { @@ -1112,10 +1124,8 @@ { unsigned long flags; - if (hardware_init_port() < 0) { - lirc_serial_exit(); + if (hardware_init_port() < 0) return -EINVAL; - } spin_lock_irqsave(&hardware[type].lock, flags); /* Enable Interrupt */ @@ -1188,10 +1198,6 @@ { int result; - result = lirc_serial_init(); - if (result) - return result; - switch (type) { case LIRC_HOMEBREW: case LIRC_IRDEO: @@ -1211,8 +1217,7 @@ break; #endif default: - result = -EINVAL; - goto exit_serial_exit; + return -EINVAL; } if (!softcarrier) { switch (type) { @@ -1228,37 +1233,26 @@ } } - result = init_port(); - if (result < 0) - goto exit_serial_exit; + result = lirc_serial_init(); + if (result) + return result; + driver.features = hardware[type].features; driver.dev = &lirc_serial_dev->dev; driver.minor = lirc_register_driver(&driver); if (driver.minor < 0) { printk(KERN_ERR LIRC_DRIVER_NAME ": register_chrdev failed!\n"); - result = -EIO; - goto exit_release; + lirc_serial_exit(); + return -EIO; } return 0; -exit_release: - release_region(io, 8); -exit_serial_exit: - lirc_serial_exit(); - return result; } static void __exit lirc_serial_exit_module(void) { - lirc_serial_exit(); - - free_irq(irq, (void *)&hardware); - - if (iommap != 0) - release_mem_region(iommap, 8 << ioshift); - else - release_region(io, 8); lirc_unregister_driver(driver.minor); + lirc_serial_exit(); dprintk("cleaned up module\n"); } --- linux-3.2.0.orig/drivers/staging/rtl8712/os_intfs.c +++ linux-3.2.0/drivers/staging/rtl8712/os_intfs.c @@ -31,6 +31,7 @@ #include #include #include +#include #include "osdep_service.h" #include "drv_types.h" #include "xmit_osdep.h" @@ -264,12 +265,12 @@ void r8712_stop_drv_timers(struct _adapter *padapter) { _cancel_timer_ex(&padapter->mlmepriv.assoc_timer); - _cancel_timer_ex(&padapter->mlmepriv.sitesurveyctrl. - sitesurvey_ctrl_timer); _cancel_timer_ex(&padapter->securitypriv.tkip_timer); _cancel_timer_ex(&padapter->mlmepriv.scan_to_timer); _cancel_timer_ex(&padapter->mlmepriv.dhcp_timer); _cancel_timer_ex(&padapter->mlmepriv.wdg_timer); + _cancel_timer_ex(&padapter->mlmepriv.sitesurveyctrl. + sitesurvey_ctrl_timer); } static u8 init_default_value(struct _adapter *padapter) @@ -347,7 +348,8 @@ r8712_free_mlme_priv(&padapter->mlmepriv); r8712_free_io_queue(padapter); _free_xmit_priv(&padapter->xmitpriv); - _r8712_free_sta_priv(&padapter->stapriv); + if (padapter->fw_found) + _r8712_free_sta_priv(&padapter->stapriv); _r8712_free_recv_priv(&padapter->recvpriv); mp871xdeinit(padapter); if (pnetdev) @@ -388,6 +390,7 @@ { struct _adapter *padapter = (struct _adapter *)netdev_priv(pnetdev); + mutex_lock(&padapter->mutex_start); if (padapter->bup == false) { padapter->bDriverStopped = false; padapter->bSurpriseRemoved = false; @@ -435,11 +438,13 @@ /* start driver mlme relation timer */ start_drv_timers(padapter); padapter->ledpriv.LedControlHandler(padapter, LED_CTL_NO_LINK); + mutex_unlock(&padapter->mutex_start); return 0; netdev_open_error: padapter->bup = false; netif_carrier_off(pnetdev); netif_stop_queue(pnetdev); + mutex_unlock(&padapter->mutex_start); return -1; } @@ -471,8 +476,6 @@ r8712_free_assoc_resources(padapter); /*s2-4.*/ r8712_free_network_queue(padapter); - /* The interface is no longer Up: */ - padapter->bup = false; return 0; } --- linux-3.2.0.orig/drivers/staging/rtl8712/Kconfig +++ linux-3.2.0/drivers/staging/rtl8712/Kconfig @@ -9,13 +9,6 @@ This option adds the Realtek RTL8712 USB device such as the D-Link DWA-130. If built as a module, it will be called r8712u. -config R8712_AP - bool "Realtek RTL8712U AP code" - depends on R8712U - default N - ---help--- - This option allows the Realtek RTL8712 USB device to be an Access Point. - config R8712_TX_AGGR bool "Realtek RTL8712U Transmit Aggregation code" depends on R8712U && BROKEN --- linux-3.2.0.orig/drivers/staging/rtl8712/sta_info.h +++ linux-3.2.0/drivers/staging/rtl8712/sta_info.h @@ -90,7 +90,6 @@ * curr_network(mlme_priv/security_priv/qos/ht) : AP CAP/INFO * sta_info: (AP & STA) CAP/INFO */ -#ifdef CONFIG_R8712_AP struct list_head asoc_list; struct list_head auth_list; unsigned int expire_to; @@ -98,7 +97,6 @@ unsigned int authalg; unsigned char chg_txt[128]; unsigned int tx_ra_bitmap; -#endif }; struct sta_priv { @@ -111,13 +109,11 @@ struct __queue sleep_q; struct __queue wakeup_q; struct _adapter *padapter; -#ifdef CONFIG_R8712_AP struct list_head asoc_list; struct list_head auth_list; unsigned int auth_to; /* sec, time to expire in authenticating. */ unsigned int assoc_to; /* sec, time to expire before associating. */ unsigned int expire_to; /* sec , time to expire after associated. */ -#endif }; static inline u32 wifi_mac_hash(u8 *mac) --- linux-3.2.0.orig/drivers/staging/rtl8712/recv_linux.c +++ linux-3.2.0/drivers/staging/rtl8712/recv_linux.c @@ -117,13 +117,8 @@ if (skb == NULL) goto _recv_indicatepkt_drop; skb->data = precv_frame->u.hdr.rx_data; -#ifdef NET_SKBUFF_DATA_USES_OFFSET - skb->tail = (sk_buff_data_t)(precv_frame->u.hdr.rx_tail - - precv_frame->u.hdr.rx_head); -#else - skb->tail = (sk_buff_data_t)precv_frame->u.hdr.rx_tail; -#endif skb->len = precv_frame->u.hdr.len; + skb_set_tail_pointer(skb, skb->len); if ((pattrib->tcpchk_valid == 1) && (pattrib->tcp_chkrpt == 1)) skb->ip_summed = CHECKSUM_UNNECESSARY; else --- linux-3.2.0.orig/drivers/staging/rtl8712/drv_types.h +++ linux-3.2.0/drivers/staging/rtl8712/drv_types.h @@ -37,6 +37,8 @@ #include "wlan_bssdef.h" #include "rtl8712_spec.h" #include "rtl8712_hal.h" +#include +#include enum _NIC_VERSION { RTL8711_NIC, @@ -168,6 +170,7 @@ s32 bSurpriseRemoved; u32 IsrContent; u32 ImrContent; + bool fw_found; u8 EepromAddressSize; u8 hw_init_completed; struct task_struct *cmdThread; @@ -184,6 +187,10 @@ _workitem wkFilterRxFF0; u8 blnEnableRxFF0Filter; spinlock_t lockRxFF0Filter; + const struct firmware *fw; + struct usb_interface *pusb_intf; + struct mutex mutex_start; + struct completion rtl8712_fw_ready; }; static inline u8 *myid(struct eeprom_priv *peepriv) --- linux-3.2.0.orig/drivers/staging/rtl8712/rtl8712_hal.h +++ linux-3.2.0/drivers/staging/rtl8712/rtl8712_hal.h @@ -145,5 +145,6 @@ }; uint rtl8712_hal_init(struct _adapter *padapter); +int rtl871x_load_fw(struct _adapter *padapter); #endif --- linux-3.2.0.orig/drivers/staging/rtl8712/hal_init.c +++ linux-3.2.0/drivers/staging/rtl8712/hal_init.c @@ -42,29 +42,56 @@ #define FWBUFF_ALIGN_SZ 512 #define MAX_DUMP_FWSZ 49152 /*default = 49152 (48k)*/ -static u32 rtl871x_open_fw(struct _adapter *padapter, void **pphfwfile_hdl, - const u8 **ppmappedfw) +static void rtl871x_load_fw_cb(const struct firmware *firmware, void *context) { + struct _adapter *padapter = context; + + complete(&padapter->rtl8712_fw_ready); + if (!firmware) { + struct usb_device *udev = padapter->dvobjpriv.pusbdev; + struct usb_interface *pusb_intf = padapter->pusb_intf; + printk(KERN_ERR "r8712u: Firmware request failed\n"); + padapter->fw_found = false; + usb_put_dev(udev); + usb_set_intfdata(pusb_intf, NULL); + return; + } + padapter->fw = firmware; + padapter->fw_found = true; + /* firmware available - start netdev */ + register_netdev(padapter->pnetdev); +} + +static const char firmware_file[] = "rtlwifi/rtl8712u.bin"; + +int rtl871x_load_fw(struct _adapter *padapter) +{ + struct device *dev = &padapter->dvobjpriv.pusbdev->dev; int rc; - const char firmware_file[] = "rtlwifi/rtl8712u.bin"; - const struct firmware **praw = (const struct firmware **) - (pphfwfile_hdl); - struct dvobj_priv *pdvobjpriv = (struct dvobj_priv *) - (&padapter->dvobjpriv); - struct usb_device *pusbdev = pdvobjpriv->pusbdev; + init_completion(&padapter->rtl8712_fw_ready); printk(KERN_INFO "r8712u: Loading firmware from \"%s\"\n", firmware_file); - rc = request_firmware(praw, firmware_file, &pusbdev->dev); - if (rc < 0) { - printk(KERN_ERR "r8712u: Unable to load firmware\n"); - printk(KERN_ERR "r8712u: Install latest linux-firmware\n"); + rc = request_firmware_nowait(THIS_MODULE, 1, firmware_file, dev, + GFP_KERNEL, padapter, rtl871x_load_fw_cb); + if (rc) + printk(KERN_ERR "r8712u: Firmware request error %d\n", rc); + return rc; +} +MODULE_FIRMWARE("rtlwifi/rtl8712u.bin"); + +static u32 rtl871x_open_fw(struct _adapter *padapter, const u8 **ppmappedfw) +{ + const struct firmware **praw = &padapter->fw; + + if (padapter->fw->size > 200000) { + printk(KERN_ERR "r8172u: Badfw->size of %d\n", + (int)padapter->fw->size); return 0; } *ppmappedfw = (u8 *)((*praw)->data); return (*praw)->size; } -MODULE_FIRMWARE("rtlwifi/rtl8712u.bin"); static void fill_fwpriv(struct _adapter *padapter, struct fw_priv *pfwpriv) { @@ -142,18 +169,17 @@ uint dump_imem_sz, imem_sz, dump_emem_sz, emem_sz; /* max = 49152; */ struct fw_hdr fwhdr; u32 ulfilelength; /* FW file size */ - void *phfwfile_hdl = NULL; const u8 *pmappedfw = NULL; u8 *ptmpchar = NULL, *ppayload, *ptr; struct tx_desc *ptx_desc; u32 txdscp_sz = sizeof(struct tx_desc); u8 ret = _FAIL; - ulfilelength = rtl871x_open_fw(padapter, &phfwfile_hdl, &pmappedfw); + ulfilelength = rtl871x_open_fw(padapter, &pmappedfw); if (pmappedfw && (ulfilelength > 0)) { update_fwhdr(&fwhdr, pmappedfw); if (chk_fwhdr(&fwhdr, ulfilelength) == _FAIL) - goto firmware_rel; + return ret; fill_fwpriv(padapter, &fwhdr.fwpriv); /* firmware check ok */ maxlen = (fwhdr.img_IMEM_size > fwhdr.img_SRAM_size) ? @@ -161,7 +187,7 @@ maxlen += txdscp_sz; ptmpchar = _malloc(maxlen + FWBUFF_ALIGN_SZ); if (ptmpchar == NULL) - goto firmware_rel; + return ret; ptx_desc = (struct tx_desc *)(ptmpchar + FWBUFF_ALIGN_SZ - ((addr_t)(ptmpchar) & (FWBUFF_ALIGN_SZ - 1))); @@ -297,8 +323,6 @@ exit_fail: kfree(ptmpchar); -firmware_rel: - release_firmware((struct firmware *)phfwfile_hdl); return ret; } --- linux-3.2.0.orig/drivers/staging/rtl8712/rtl871x_sta_mgt.c +++ linux-3.2.0/drivers/staging/rtl8712/rtl871x_sta_mgt.c @@ -42,9 +42,8 @@ _init_listhead(&psta->hash_list); _r8712_init_sta_xmit_priv(&psta->sta_xmitpriv); _r8712_init_sta_recv_priv(&psta->sta_recvpriv); -#ifdef CONFIG_R8712_AP + _init_listhead(&psta->asoc_list); _init_listhead(&psta->auth_list); -#endif } u32 _r8712_init_sta_priv(struct sta_priv *pstapriv) @@ -71,10 +70,8 @@ get_list_head(&pstapriv->free_sta_queue)); psta++; } -#ifdef CONFIG_R8712_AP _init_listhead(&pstapriv->asoc_list); _init_listhead(&pstapriv->auth_list); -#endif return _SUCCESS; } --- linux-3.2.0.orig/drivers/staging/rtl8712/usb_intf.c +++ linux-3.2.0/drivers/staging/rtl8712/usb_intf.c @@ -30,6 +30,7 @@ #include #include +#include #include "osdep_service.h" #include "drv_types.h" @@ -65,6 +66,8 @@ {USB_DEVICE(0x0B05, 0x1791)}, /* 11n mode disable */ /* Belkin */ {USB_DEVICE(0x050D, 0x945A)}, + /* ISY IWL - Belkin clone */ + {USB_DEVICE(0x050D, 0x11F1)}, /* Corega */ {USB_DEVICE(0x07AA, 0x0047)}, /* D-Link */ @@ -89,6 +92,7 @@ {USB_DEVICE(0x0DF6, 0x0045)}, {USB_DEVICE(0x0DF6, 0x0059)}, /* 11n mode disable */ {USB_DEVICE(0x0DF6, 0x004B)}, + {USB_DEVICE(0x0DF6, 0x005B)}, {USB_DEVICE(0x0DF6, 0x005D)}, {USB_DEVICE(0x0DF6, 0x0063)}, /* Sweex */ @@ -100,6 +104,8 @@ /* - */ {USB_DEVICE(0x20F4, 0x646B)}, {USB_DEVICE(0x083A, 0xC512)}, + {USB_DEVICE(0x25D4, 0x4CA1)}, + {USB_DEVICE(0x25D4, 0x4CAB)}, /* RTL8191SU */ /* Realtek */ @@ -389,6 +395,7 @@ pdvobjpriv = &padapter->dvobjpriv; pdvobjpriv->padapter = padapter; padapter->dvobjpriv.pusbdev = udev; + padapter->pusb_intf = pusb_intf; usb_set_intfdata(pusb_intf, pnetdev); SET_NETDEV_DEV(pnetdev, &pusb_intf->dev); /* step 2. */ @@ -595,10 +602,11 @@ "%pM\n", mac); memcpy(pnetdev->dev_addr, mac, ETH_ALEN); } - /* step 6. Tell the network stack we exist */ - if (register_netdev(pnetdev) != 0) + /* step 6. Load the firmware asynchronously */ + if (rtl871x_load_fw(padapter)) goto error; spin_lock_init(&padapter->lockRxFF0Filter); + mutex_init(&padapter->mutex_start); return 0; error: usb_put_dev(udev); @@ -618,6 +626,10 @@ struct _adapter *padapter = netdev_priv(pnetdev); struct usb_device *udev = interface_to_usbdev(pusb_intf); + if (padapter->fw_found) + release_firmware(padapter->fw); + /* never exit with a firmware callback pending */ + wait_for_completion(&padapter->rtl8712_fw_ready); usb_set_intfdata(pusb_intf, NULL); if (padapter) { if (drvpriv.drv_registered == true) @@ -629,7 +641,8 @@ flush_scheduled_work(); udelay(1); /*Stop driver mlme relation timer */ - r8712_stop_drv_timers(padapter); + if (padapter->fw_found) + r8712_stop_drv_timers(padapter); r871x_dev_unload(padapter); r8712_free_drv_sw(padapter); } --- linux-3.2.0.orig/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ linux-3.2.0/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -2380,13 +2380,7 @@ tmp_qual = padapter->recvpriv.signal; tmp_noise = padapter->recvpriv.noise; piwstats->qual.level = tmp_level; - /*piwstats->qual.qual = tmp_qual; - * The NetworkManager of Fedora 10, 13 will use the link - * quality for its display. - * So, use the fw_rssi on link quality variable because - * fw_rssi will be updated per 2 seconds. - */ - piwstats->qual.qual = tmp_level; + piwstats->qual.qual = tmp_qual; piwstats->qual.noise = tmp_noise; } piwstats->qual.updated = IW_QUAL_ALL_UPDATED; --- linux-3.2.0.orig/drivers/staging/vt6656/wpa2.h +++ linux-3.2.0/drivers/staging/vt6656/wpa2.h @@ -45,8 +45,8 @@ } PMKIDInfo, *PPMKIDInfo; typedef struct tagSPMKIDCache { - unsigned long BSSIDInfoCount; - PMKIDInfo BSSIDInfo[MAX_PMKID_CACHE]; + u32 BSSIDInfoCount; + PMKIDInfo BSSIDInfo[MAX_PMKID_CACHE]; } SPMKIDCache, *PSPMKIDCache; --- linux-3.2.0.orig/drivers/staging/vt6656/key.h +++ linux-3.2.0/drivers/staging/vt6656/key.h @@ -58,7 +58,7 @@ typedef struct tagSKeyItem { BOOL bKeyValid; - unsigned long uKeyLength; + u32 uKeyLength; BYTE abyKey[MAX_KEY_LEN]; QWORD KeyRSC; DWORD dwTSC47_16; @@ -107,7 +107,7 @@ PSKeyManagement pTable, PBYTE pbyBSSID, DWORD dwKeyIndex, - unsigned long uKeyLength, + u32 uKeyLength, PQWORD pKeyRSC, PBYTE pbyKey, BYTE byKeyDecMode @@ -146,7 +146,7 @@ void *pDeviceHandler, PSKeyManagement pTable, DWORD dwKeyIndex, - unsigned long uKeyLength, + u32 uKeyLength, PQWORD pKeyRSC, PBYTE pbyKey, BYTE byKeyDecMode @@ -156,7 +156,7 @@ void *pDeviceHandler, PSKeyManagement pTable, DWORD dwKeyIndex, - unsigned long uKeyLength, + u32 uKeyLength, PQWORD pKeyRSC, PBYTE pbyKey, BYTE byKeyDecMode --- linux-3.2.0.orig/drivers/staging/vt6656/bssdb.h +++ linux-3.2.0/drivers/staging/vt6656/bssdb.h @@ -92,7 +92,6 @@ } SRSNCapObject, *PSRSNCapObject; // BSS info(AP) -#pragma pack(1) typedef struct tagKnownBSS { // BSS info BOOL bActive; --- linux-3.2.0.orig/drivers/staging/vt6656/key.c +++ linux-3.2.0/drivers/staging/vt6656/key.c @@ -223,7 +223,7 @@ PSKeyManagement pTable, PBYTE pbyBSSID, DWORD dwKeyIndex, - unsigned long uKeyLength, + u32 uKeyLength, PQWORD pKeyRSC, PBYTE pbyKey, BYTE byKeyDecMode @@ -235,7 +235,8 @@ PSKeyItem pKey; unsigned int uKeyIdx; - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Enter KeybSetKey: %lX\n", dwKeyIndex); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO + "Enter KeybSetKey: %X\n", dwKeyIndex); j = (MAX_KEY_TABLE-1); for (i=0;i<(MAX_KEY_TABLE-1);i++) { @@ -261,7 +262,9 @@ if ((dwKeyIndex & TRANSMIT_KEY) != 0) { // Group transmit key pTable->KeyTable[i].dwGTKeyIndex = dwKeyIndex; - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Group transmit key(R)[%lX]: %d\n", pTable->KeyTable[i].dwGTKeyIndex, i); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO + "Group transmit key(R)[%X]: %d\n", + pTable->KeyTable[i].dwGTKeyIndex, i); } pTable->KeyTable[i].wKeyCtl &= 0xFF0F; // clear group key control filed pTable->KeyTable[i].wKeyCtl |= (byKeyDecMode << 4); @@ -302,9 +305,12 @@ } DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"\n"); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwTSC47_16: %lx\n ", pKey->dwTSC47_16); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->wTSC15_0: %x\n ", pKey->wTSC15_0); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwKeyIndex: %lx\n ", pKey->dwKeyIndex); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwTSC47_16: %x\n ", + pKey->dwTSC47_16); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->wTSC15_0: %x\n ", + pKey->wTSC15_0); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwKeyIndex: %x\n ", + pKey->dwKeyIndex); return (TRUE); } @@ -326,7 +332,9 @@ if ((dwKeyIndex & TRANSMIT_KEY) != 0) { // Group transmit key pTable->KeyTable[j].dwGTKeyIndex = dwKeyIndex; - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Group transmit key(N)[%lX]: %d\n", pTable->KeyTable[j].dwGTKeyIndex, j); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO + "Group transmit key(N)[%X]: %d\n", + pTable->KeyTable[j].dwGTKeyIndex, j); } pTable->KeyTable[j].wKeyCtl &= 0xFF0F; // clear group key control filed pTable->KeyTable[j].wKeyCtl |= (byKeyDecMode << 4); @@ -367,9 +375,11 @@ } DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"\n"); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwTSC47_16: %lx\n ", pKey->dwTSC47_16); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwTSC47_16: %x\n ", + pKey->dwTSC47_16); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->wTSC15_0: %x\n ", pKey->wTSC15_0); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwKeyIndex: %lx\n ", pKey->dwKeyIndex); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwKeyIndex: %x\n ", + pKey->dwKeyIndex); return (TRUE); } @@ -597,7 +607,8 @@ DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"%x ", pTable->KeyTable[i].abyBSSID[ii]); } DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"\n"); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"dwGTKeyIndex: %lX\n", pTable->KeyTable[i].dwGTKeyIndex); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"dwGTKeyIndex: %X\n", + pTable->KeyTable[i].dwGTKeyIndex); return (TRUE); } @@ -664,7 +675,7 @@ void *pDeviceHandler, PSKeyManagement pTable, DWORD dwKeyIndex, - unsigned long uKeyLength, + u32 uKeyLength, PQWORD pKeyRSC, PBYTE pbyKey, BYTE byKeyDecMode @@ -693,7 +704,10 @@ if ((dwKeyIndex & TRANSMIT_KEY) != 0) { // Group transmit key pTable->KeyTable[MAX_KEY_TABLE-1].dwGTKeyIndex = dwKeyIndex; - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Group transmit key(R)[%lX]: %d\n", pTable->KeyTable[MAX_KEY_TABLE-1].dwGTKeyIndex, MAX_KEY_TABLE-1); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO + "Group transmit key(R)[%X]: %d\n", + pTable->KeyTable[MAX_KEY_TABLE-1].dwGTKeyIndex, + MAX_KEY_TABLE-1); } pTable->KeyTable[MAX_KEY_TABLE-1].wKeyCtl &= 0x7F00; // clear all key control filed @@ -744,9 +758,11 @@ } DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"\n"); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwTSC47_16: %lx\n", pKey->dwTSC47_16); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwTSC47_16: %x\n", + pKey->dwTSC47_16); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->wTSC15_0: %x\n", pKey->wTSC15_0); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwKeyIndex: %lx\n", pKey->dwKeyIndex); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pKey->dwKeyIndex: %x\n", + pKey->dwKeyIndex); return (TRUE); } @@ -772,7 +788,7 @@ void *pDeviceHandler, PSKeyManagement pTable, DWORD dwKeyIndex, - unsigned long uKeyLength, + u32 uKeyLength, PQWORD pKeyRSC, PBYTE pbyKey, BYTE byKeyDecMode @@ -784,7 +800,8 @@ PSKeyItem pKey; unsigned int uKeyIdx; - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Enter KeybSetAllGroupKey: %lX\n", dwKeyIndex); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Enter KeybSetAllGroupKey: %X\n", + dwKeyIndex); if ((dwKeyIndex & PAIRWISE_KEY) != 0) { // Pairwise key @@ -801,7 +818,9 @@ if ((dwKeyIndex & TRANSMIT_KEY) != 0) { // Group transmit key pTable->KeyTable[i].dwGTKeyIndex = dwKeyIndex; - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Group transmit key(R)[%lX]: %d\n", pTable->KeyTable[i].dwGTKeyIndex, i); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO + "Group transmit key(R)[%X]: %d\n", + pTable->KeyTable[i].dwGTKeyIndex, i); } pTable->KeyTable[i].wKeyCtl &= 0xFF0F; // clear group key control filed --- linux-3.2.0.orig/drivers/staging/vt6656/wcmd.c +++ linux-3.2.0/drivers/staging/vt6656/wcmd.c @@ -316,17 +316,19 @@ return pTxPacket; } -void vCommandTimerWait(void *hDeviceContext, unsigned int MSecond) +void vCommandTimerWait(void *hDeviceContext, unsigned long MSecond) { - PSDevice pDevice = (PSDevice)hDeviceContext; + PSDevice pDevice = (PSDevice)hDeviceContext; - init_timer(&pDevice->sTimerCommand); - pDevice->sTimerCommand.data = (unsigned long)pDevice; - pDevice->sTimerCommand.function = (TimerFunction)vRunCommand; - // RUN_AT :1 msec ~= (HZ/1024) - pDevice->sTimerCommand.expires = (unsigned int)RUN_AT((MSecond * HZ) >> 10); - add_timer(&pDevice->sTimerCommand); - return; + init_timer(&pDevice->sTimerCommand); + + pDevice->sTimerCommand.data = (unsigned long)pDevice; + pDevice->sTimerCommand.function = (TimerFunction)vRunCommand; + pDevice->sTimerCommand.expires = RUN_AT((MSecond * HZ) / 1000); + + add_timer(&pDevice->sTimerCommand); + + return; } void vRunCommand(void *hDeviceContext) --- linux-3.2.0.orig/drivers/staging/vt6656/iowpa.h +++ linux-3.2.0/drivers/staging/vt6656/iowpa.h @@ -67,12 +67,11 @@ -#pragma pack(1) typedef struct viawget_wpa_header { u8 type; u16 req_ie_len; u16 resp_ie_len; -} viawget_wpa_header; +} __packed viawget_wpa_header; struct viawget_wpa_param { u32 cmd; @@ -113,9 +112,8 @@ u8 *buf; } scan_results; } u; -}; +} __packed; -#pragma pack(1) struct viawget_scan_result { u8 bssid[6]; u8 ssid[32]; @@ -130,7 +128,7 @@ int noise; int level; int maxrate; -}; +} __packed; /*--------------------- Export Classes ----------------------------*/ --- linux-3.2.0.orig/drivers/staging/vt6656/rxtx.c +++ linux-3.2.0/drivers/staging/vt6656/rxtx.c @@ -377,7 +377,8 @@ *(pbyIVHead+3) = (BYTE)(((pDevice->byKeyIndex << 6) & 0xc0) | 0x20); // 0x20 is ExtIV // Append IV&ExtIV after Mac Header *pdwExtIV = cpu_to_le32(pTransmitKey->dwTSC47_16); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"vFillTxKey()---- pdwExtIV: %lx\n", *pdwExtIV); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"vFillTxKey()---- pdwExtIV: %x\n", + *pdwExtIV); } else if (pTransmitKey->byCipherSuite == KEY_CTL_CCMP) { pTransmitKey->wTSC15_0++; @@ -1701,7 +1702,7 @@ // 802.1H if (ntohs(psEthHeader->wType) > ETH_DATA_LEN) { if (pDevice->dwDiagRefCount == 0) { - if ((psEthHeader->wType == cpu_to_le16(ETH_P_IPX)) || + if ((psEthHeader->wType == cpu_to_be16(ETH_P_IPX)) || (psEthHeader->wType == cpu_to_le16(0xF380))) { memcpy((PBYTE) (pbyPayloadHead), abySNAP_Bridgetunnel, 6); @@ -1753,7 +1754,8 @@ MIC_vAppend((PBYTE)&(psEthHeader->abyDstAddr[0]), 12); dwMIC_Priority = 0; MIC_vAppend((PBYTE)&dwMIC_Priority, 4); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"MIC KEY: %lX, %lX\n", dwMICKey0, dwMICKey1); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"MIC KEY: %X, %X\n", + dwMICKey0, dwMICKey1); /////////////////////////////////////////////////////////////////// @@ -2635,7 +2637,8 @@ MIC_vAppend((PBYTE)&(sEthHeader.abyDstAddr[0]), 12); dwMIC_Priority = 0; MIC_vAppend((PBYTE)&dwMIC_Priority, 4); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"DMA0_tx_8021:MIC KEY: %lX, %lX\n", dwMICKey0, dwMICKey1); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"DMA0_tx_8021:MIC KEY:"\ + " %X, %X\n", dwMICKey0, dwMICKey1); uLength = cbHeaderSize + cbMacHdLen + uPadding + cbIVlen; @@ -2655,7 +2658,8 @@ DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"uLength: %d, %d\n", uLength, cbFrameBodySize); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"cbReqCount:%d, %d, %d, %d\n", cbReqCount, cbHeaderSize, uPadding, cbIVlen); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"MIC:%lx, %lx\n", *pdwMIC_L, *pdwMIC_R); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"MIC:%x, %x\n", + *pdwMIC_L, *pdwMIC_R); } @@ -2840,10 +2844,10 @@ Packet_Type = skb->data[ETH_HLEN+1]; Descriptor_type = skb->data[ETH_HLEN+1+1+2]; Key_info = (skb->data[ETH_HLEN+1+1+2+1] << 8)|(skb->data[ETH_HLEN+1+1+2+2]); - if (pDevice->sTxEthHeader.wType == cpu_to_le16(ETH_P_PAE)) { - /* 802.1x OR eapol-key challenge frame transfer */ - if (((Protocol_Version == 1) || (Protocol_Version == 2)) && - (Packet_Type == 3)) { + if (pDevice->sTxEthHeader.wType == cpu_to_be16(ETH_P_PAE)) { + /* 802.1x OR eapol-key challenge frame transfer */ + if (((Protocol_Version == 1) || (Protocol_Version == 2)) && + (Packet_Type == 3)) { bTxeapol_key = TRUE; if(!(Key_info & BIT3) && //WPA or RSN group-key challenge (Key_info & BIT8) && (Key_info & BIT9)) { //send 2/2 key @@ -2989,19 +2993,19 @@ } } - if (pDevice->sTxEthHeader.wType == cpu_to_le16(ETH_P_PAE)) { - if (pDevice->byBBType != BB_TYPE_11A) { - pDevice->wCurrentRate = RATE_1M; - pDevice->byACKRate = RATE_1M; - pDevice->byTopCCKBasicRate = RATE_1M; - pDevice->byTopOFDMBasicRate = RATE_6M; - } else { - pDevice->wCurrentRate = RATE_6M; - pDevice->byACKRate = RATE_6M; - pDevice->byTopCCKBasicRate = RATE_1M; - pDevice->byTopOFDMBasicRate = RATE_6M; - } - } + if (pDevice->sTxEthHeader.wType == cpu_to_be16(ETH_P_PAE)) { + if (pDevice->byBBType != BB_TYPE_11A) { + pDevice->wCurrentRate = RATE_1M; + pDevice->byACKRate = RATE_1M; + pDevice->byTopCCKBasicRate = RATE_1M; + pDevice->byTopOFDMBasicRate = RATE_6M; + } else { + pDevice->wCurrentRate = RATE_6M; + pDevice->byACKRate = RATE_6M; + pDevice->byTopCCKBasicRate = RATE_1M; + pDevice->byTopOFDMBasicRate = RATE_6M; + } + } DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dma_tx: pDevice->wCurrentRate = %d\n", @@ -3017,7 +3021,7 @@ if (bNeedEncryption == TRUE) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ntohs Pkt Type=%04x\n", ntohs(pDevice->sTxEthHeader.wType)); - if ((pDevice->sTxEthHeader.wType) == cpu_to_le16(ETH_P_PAE)) { + if ((pDevice->sTxEthHeader.wType) == cpu_to_be16(ETH_P_PAE)) { bNeedEncryption = FALSE; DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Pkt Type=%04x\n", (pDevice->sTxEthHeader.wType)); if ((pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && (pMgmt->eCurrState == WMAC_STATE_ASSOC)) { @@ -3029,7 +3033,8 @@ DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"error: KEY is GTK!!~~\n"); } else { - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Find PTK [%lX]\n", pTransmitKey->dwKeyIndex); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Find PTK [%X]\n", + pTransmitKey->dwKeyIndex); bNeedEncryption = TRUE; } } @@ -3043,7 +3048,8 @@ if (pDevice->bEnableHostWEP) { if ((uNodeIndex != 0) && (pMgmt->sNodeDBTable[uNodeIndex].dwKeyIndex & PAIRWISE_KEY)) { - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Find PTK [%lX]\n", pTransmitKey->dwKeyIndex); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Find PTK [%X]\n", + pTransmitKey->dwKeyIndex); bNeedEncryption = TRUE; } } --- linux-3.2.0.orig/drivers/staging/vt6656/main_usb.c +++ linux-3.2.0/drivers/staging/vt6656/main_usb.c @@ -222,7 +222,7 @@ // Static vars definitions // -static struct usb_device_id vt6656_table[] __devinitdata = { +static struct usb_device_id vt6656_table[] = { {USB_DEVICE(VNT_USB_VENDOR_ID, VNT_USB_PRODUCT_ID)}, {} }; @@ -718,8 +718,6 @@ if (device->flags & DEVICE_FLAGS_OPENED) device_close(device->dev); - usb_put_dev(interface_to_usbdev(intf)); - return 0; } @@ -730,8 +728,6 @@ if (!device || !device->dev) return -ENODEV; - usb_get_dev(interface_to_usbdev(intf)); - if (!(device->flags & DEVICE_FLAGS_OPENED)) device_open(device->dev); --- linux-3.2.0.orig/drivers/staging/vt6656/dpc.c +++ linux-3.2.0/drivers/staging/vt6656/dpc.c @@ -200,7 +200,7 @@ } else if (!compare_ether_addr(pbyRxBuffer, &pDevice->abySNAP_RFC1042[0])) { cbHeaderSize += 6; pwType = (PWORD) (pbyRxBufferAddr + cbHeaderSize); - if ((*pwType == cpu_to_le16(ETH_P_IPX)) || + if ((*pwType == cpu_to_be16(ETH_P_IPX)) || (*pwType == cpu_to_le16(0xF380))) { cbHeaderSize -= 8; pwType = (PWORD) (pbyRxBufferAddr + cbHeaderSize); @@ -1238,7 +1238,7 @@ PayloadLen -= (WLAN_HDR_ADDR3_LEN + 8 + 4); // 24 is 802.11 header, 8 is IV&ExtIV, 4 is crc *pdwRxTSC47_16 = cpu_to_le32(*(PDWORD)(pbyIV + 4)); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ExtIV: %lx\n",*pdwRxTSC47_16); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ExtIV: %x\n", *pdwRxTSC47_16); if (byDecMode == KEY_CTL_TKIP) { *pwRxTSC15_0 = cpu_to_le16(MAKEWORD(*(pbyIV+2), *pbyIV)); } else { @@ -1349,7 +1349,7 @@ PayloadLen -= (WLAN_HDR_ADDR3_LEN + 8 + 4); // 24 is 802.11 header, 8 is IV&ExtIV, 4 is crc *pdwRxTSC47_16 = cpu_to_le32(*(PDWORD)(pbyIV + 4)); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ExtIV: %lx\n",*pdwRxTSC47_16); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ExtIV: %x\n", *pdwRxTSC47_16); if (byDecMode == KEY_CTL_TKIP) { *pwRxTSC15_0 = cpu_to_le16(MAKEWORD(*(pbyIV+2), *pbyIV)); --- linux-3.2.0.orig/drivers/staging/vt6656/ttype.h +++ linux-3.2.0/drivers/staging/vt6656/ttype.h @@ -29,6 +29,8 @@ #ifndef __TTYPE_H__ #define __TTYPE_H__ +#include + /******* Common definitions and typedefs ***********************************/ typedef int BOOL; @@ -42,17 +44,17 @@ /****** Simple typedefs ***************************************************/ -typedef unsigned char BYTE; // 8-bit -typedef unsigned short WORD; // 16-bit -typedef unsigned long DWORD; // 32-bit +typedef u8 BYTE; +typedef u16 WORD; +typedef u32 DWORD; // QWORD is for those situation that we want // an 8-byte-aligned 8 byte long structure // which is NOT really a floating point number. typedef union tagUQuadWord { struct { - DWORD dwLowDword; - DWORD dwHighDword; + u32 dwLowDword; + u32 dwHighDword; } u; double DoNotUseThisField; } UQuadWord; @@ -60,8 +62,8 @@ /****** Common pointer types ***********************************************/ -typedef unsigned long ULONG_PTR; // 32-bit -typedef unsigned long DWORD_PTR; // 32-bit +typedef u32 ULONG_PTR; +typedef u32 DWORD_PTR; // boolean pointer --- linux-3.2.0.orig/drivers/staging/vt6656/rf.c +++ linux-3.2.0/drivers/staging/vt6656/rf.c @@ -769,6 +769,9 @@ return TRUE; } + if (uCH == 0) + return -EINVAL; + switch (uRATE) { case RATE_1M: case RATE_2M: --- linux-3.2.0.orig/drivers/staging/vt6656/hostap.c +++ linux-3.2.0/drivers/staging/vt6656/hostap.c @@ -153,7 +153,7 @@ DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%s: Netdevice %s unregistered\n", pDevice->dev->name, pDevice->apdev->name); } - kfree(pDevice->apdev); + free_netdev(pDevice->apdev); pDevice->apdev = NULL; pDevice->bEnable8021x = FALSE; pDevice->bEnableHostWEP = FALSE; --- linux-3.2.0.orig/drivers/staging/vt6656/mac.c +++ linux-3.2.0/drivers/staging/vt6656/mac.c @@ -262,7 +262,8 @@ dwData1 <<= 16; dwData1 |= MAKEWORD(*(pbyAddr+4), *(pbyAddr+5)); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"1. wOffset: %d, Data: %lX, KeyCtl:%X\n", wOffset, dwData1, wKeyCtl); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"1. wOffset: %d, Data: %X,"\ + " KeyCtl:%X\n", wOffset, dwData1, wKeyCtl); //VNSvOutPortW(dwIoBase + MAC_REG_MISCFFNDEX, wOffset); //VNSvOutPortD(dwIoBase + MAC_REG_MISCFFDATA, dwData); @@ -279,7 +280,8 @@ dwData2 <<= 8; dwData2 |= *(pbyAddr+0); - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"2. wOffset: %d, Data: %lX\n", wOffset, dwData2); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"2. wOffset: %d, Data: %X\n", + wOffset, dwData2); //VNSvOutPortW(dwIoBase + MAC_REG_MISCFFNDEX, wOffset); //VNSvOutPortD(dwIoBase + MAC_REG_MISCFFDATA, dwData); --- linux-3.2.0.orig/drivers/staging/vt6656/iocmd.h +++ linux-3.2.0/drivers/staging/vt6656/iocmd.h @@ -95,13 +95,12 @@ // Ioctl interface structure // Command structure // -#pragma pack(1) typedef struct tagSCmdRequest { u8 name[16]; void *data; u16 wResult; u16 wCmdCode; -} SCmdRequest, *PSCmdRequest; +} __packed SCmdRequest, *PSCmdRequest; // // Scan @@ -111,7 +110,7 @@ u8 ssid[SSID_MAXLEN + 2]; -} SCmdScan, *PSCmdScan; +} __packed SCmdScan, *PSCmdScan; // // BSS Join @@ -126,7 +125,7 @@ BOOL bPSEnable; BOOL bShareKeyAuth; -} SCmdBSSJoin, *PSCmdBSSJoin; +} __packed SCmdBSSJoin, *PSCmdBSSJoin; // // Zonetype Setting @@ -137,7 +136,7 @@ BOOL bWrite; WZONETYPE ZoneType; -} SCmdZoneTypeSet, *PSCmdZoneTypeSet; +} __packed SCmdZoneTypeSet, *PSCmdZoneTypeSet; typedef struct tagSWPAResult { char ifname[100]; @@ -145,7 +144,7 @@ u8 key_mgmt; u8 eap_type; BOOL authenticated; -} SWPAResult, *PSWPAResult; +} __packed SWPAResult, *PSWPAResult; typedef struct tagSCmdStartAP { @@ -157,7 +156,7 @@ BOOL bShareKeyAuth; u8 byBasicRate; -} SCmdStartAP, *PSCmdStartAP; +} __packed SCmdStartAP, *PSCmdStartAP; typedef struct tagSCmdSetWEP { @@ -167,7 +166,7 @@ BOOL bWepKeyAvailable[WEP_NKEYS]; u32 auWepKeyLength[WEP_NKEYS]; -} SCmdSetWEP, *PSCmdSetWEP; +} __packed SCmdSetWEP, *PSCmdSetWEP; typedef struct tagSBSSIDItem { @@ -180,14 +179,14 @@ BOOL bWEPOn; u32 uRSSI; -} SBSSIDItem; +} __packed SBSSIDItem; typedef struct tagSBSSIDList { u32 uItem; SBSSIDItem sBSSIDList[0]; -} SBSSIDList, *PSBSSIDList; +} __packed SBSSIDList, *PSBSSIDList; typedef struct tagSNodeItem { @@ -208,7 +207,7 @@ u32 uTxAttempts; u16 wFailureRatio; -} SNodeItem; +} __packed SNodeItem; typedef struct tagSNodeList { @@ -216,7 +215,7 @@ u32 uItem; SNodeItem sNodeList[0]; -} SNodeList, *PSNodeList; +} __packed SNodeList, *PSNodeList; typedef struct tagSCmdLinkStatus { @@ -229,7 +228,7 @@ u32 uChannel; u32 uLinkRate; -} SCmdLinkStatus, *PSCmdLinkStatus; +} __packed SCmdLinkStatus, *PSCmdLinkStatus; // // 802.11 counter @@ -247,7 +246,7 @@ u32 ReceivedFragmentCount; u32 MulticastReceivedFrameCount; u32 FCSErrorCount; -} SDot11MIBCount, *PSDot11MIBCount; +} __packed SDot11MIBCount, *PSDot11MIBCount; @@ -355,13 +354,13 @@ u32 ullTxBroadcastBytes[2]; u32 ullTxMulticastBytes[2]; u32 ullTxDirectedBytes[2]; -} SStatMIBCount, *PSStatMIBCount; +} __packed SStatMIBCount, *PSStatMIBCount; typedef struct tagSCmdValue { u32 dwValue; -} SCmdValue, *PSCmdValue; +} __packed SCmdValue, *PSCmdValue; // // hostapd & viawget ioctl related @@ -431,7 +430,7 @@ u8 ssid[32]; } scan_req; } u; -}; +} __packed; /*--------------------- Export Classes ----------------------------*/ --- linux-3.2.0.orig/drivers/staging/vt6656/int.h +++ linux-3.2.0/drivers/staging/vt6656/int.h @@ -34,7 +34,6 @@ #include "device.h" /*--------------------- Export Definitions -------------------------*/ -#pragma pack(1) typedef struct tagSINTData { BYTE byTSR0; BYTE byPkt0; --- linux-3.2.0.orig/drivers/staging/winbond/wbusb.c +++ linux-3.2.0/drivers/staging/winbond/wbusb.c @@ -25,7 +25,7 @@ MODULE_LICENSE("GPL"); MODULE_VERSION("0.1"); -static const struct usb_device_id wb35_table[] __devinitconst = { +static const struct usb_device_id wb35_table[] = { { USB_DEVICE(0x0416, 0x0035) }, { USB_DEVICE(0x18E8, 0x6201) }, { USB_DEVICE(0x18E8, 0x6206) }, --- linux-3.2.0.orig/drivers/staging/rtl8187se/r8180_core.c +++ linux-3.2.0/drivers/staging/rtl8187se/r8180_core.c @@ -4144,7 +4144,7 @@ argv[0] = RadioPowerPath; argv[2] = NULL; - call_usermodehelper(RadioPowerPath, argv, envp, 1); + call_usermodehelper(RadioPowerPath, argv, envp, UMH_WAIT_PROC); } } --- linux-3.2.0.orig/drivers/staging/usbip/usbip_common.c +++ linux-3.2.0/drivers/staging/usbip/usbip_common.c @@ -761,26 +761,25 @@ * buffer and iso packets need to be stored and be in propeper endian in urb * before calling this function */ -int usbip_pad_iso(struct usbip_device *ud, struct urb *urb) +void usbip_pad_iso(struct usbip_device *ud, struct urb *urb) { int np = urb->number_of_packets; int i; - int ret; int actualoffset = urb->actual_length; if (!usb_pipeisoc(urb->pipe)) - return 0; + return; /* if no packets or length of data is 0, then nothing to unpack */ if (np == 0 || urb->actual_length == 0) - return 0; + return; /* * if actual_length is transfer_buffer_length then no padding is * present. */ if (urb->actual_length == urb->transfer_buffer_length) - return 0; + return; /* * loop over all packets from last to first (to prevent overwritting @@ -792,8 +791,6 @@ urb->transfer_buffer + actualoffset, urb->iso_frame_desc[i].actual_length); } - - return ret; } EXPORT_SYMBOL_GPL(usbip_pad_iso); --- linux-3.2.0.orig/drivers/staging/usbip/vhci_rx.c +++ linux-3.2.0/drivers/staging/usbip/vhci_rx.c @@ -94,8 +94,7 @@ return; /* restore the padding in iso packets */ - if (usbip_pad_iso(ud, urb) < 0) - return; + usbip_pad_iso(ud, urb); if (usbip_dbg_flag_vhci_rx) usbip_dump_urb(urb); --- linux-3.2.0.orig/drivers/staging/usbip/usbip_common.h +++ linux-3.2.0/drivers/staging/usbip/usbip_common.h @@ -316,7 +316,7 @@ void *usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen); /* some members of urb must be substituted before. */ int usbip_recv_iso(struct usbip_device *ud, struct urb *urb); -int usbip_pad_iso(struct usbip_device *ud, struct urb *urb); +void usbip_pad_iso(struct usbip_device *ud, struct urb *urb); int usbip_recv_xbuff(struct usbip_device *ud, struct urb *urb); /* usbip_event.c */ --- linux-3.2.0.orig/drivers/staging/asus_oled/asus_oled.c +++ linux-3.2.0/drivers/staging/asus_oled/asus_oled.c @@ -355,7 +355,14 @@ static int append_values(struct asus_oled_dev *odev, uint8_t val, size_t count) { - while (count-- > 0 && val) { + odev->last_val = val; + + if (val == 0) { + odev->buf_offs += count; + return 0; + } + + while (count-- > 0) { size_t x = odev->buf_offs % odev->width; size_t y = odev->buf_offs / odev->width; size_t i; @@ -406,7 +413,6 @@ ; } - odev->last_val = val; odev->buf_offs++; } @@ -805,10 +811,9 @@ static void __exit asus_oled_exit(void) { + usb_deregister(&oled_driver); class_remove_file(oled_class, &class_attr_version.attr); class_destroy(oled_class); - - usb_deregister(&oled_driver); } module_init(asus_oled_init); --- linux-3.2.0.orig/drivers/md/dm-thin.c +++ linux-3.2.0/drivers/md/dm-thin.c @@ -19,7 +19,7 @@ /* * Tunable constants */ -#define ENDIO_HOOK_POOL_SIZE 10240 +#define ENDIO_HOOK_POOL_SIZE 1024 #define DEFERRED_SET_SIZE 64 #define MAPPING_POOL_SIZE 1024 #define PRISON_CELLS 1024 @@ -124,7 +124,7 @@ struct hlist_node list; struct bio_prison *prison; struct cell_key key; - unsigned count; + struct bio *holder; struct bio_list bios; }; @@ -220,54 +220,59 @@ * This may block if a new cell needs allocating. You must ensure that * cells will be unlocked even if the calling thread is blocked. * - * Returns the number of entries in the cell prior to the new addition - * or < 0 on failure. + * Returns 1 if the cell was already held, 0 if @inmate is the new holder. */ static int bio_detain(struct bio_prison *prison, struct cell_key *key, struct bio *inmate, struct cell **ref) { - int r; + int r = 1; unsigned long flags; uint32_t hash = hash_key(prison, key); - struct cell *uninitialized_var(cell), *cell2 = NULL; + struct cell *cell, *cell2; BUG_ON(hash > prison->nr_buckets); spin_lock_irqsave(&prison->lock, flags); - cell = __search_bucket(prison->cells + hash, key); - - if (!cell) { - /* - * Allocate a new cell - */ - spin_unlock_irqrestore(&prison->lock, flags); - cell2 = mempool_alloc(prison->cell_pool, GFP_NOIO); - spin_lock_irqsave(&prison->lock, flags); - /* - * We've been unlocked, so we have to double check that - * nobody else has inserted this cell in the meantime. - */ - cell = __search_bucket(prison->cells + hash, key); - - if (!cell) { - cell = cell2; - cell2 = NULL; - - cell->prison = prison; - memcpy(&cell->key, key, sizeof(cell->key)); - cell->count = 0; - bio_list_init(&cell->bios); - hlist_add_head(&cell->list, prison->cells + hash); - } + cell = __search_bucket(prison->cells + hash, key); + if (cell) { + bio_list_add(&cell->bios, inmate); + goto out; } - r = cell->count++; - bio_list_add(&cell->bios, inmate); + /* + * Allocate a new cell + */ spin_unlock_irqrestore(&prison->lock, flags); + cell2 = mempool_alloc(prison->cell_pool, GFP_NOIO); + spin_lock_irqsave(&prison->lock, flags); - if (cell2) + /* + * We've been unlocked, so we have to double check that + * nobody else has inserted this cell in the meantime. + */ + cell = __search_bucket(prison->cells + hash, key); + if (cell) { mempool_free(cell2, prison->cell_pool); + bio_list_add(&cell->bios, inmate); + goto out; + } + + /* + * Use new cell. + */ + cell = cell2; + + cell->prison = prison; + memcpy(&cell->key, key, sizeof(cell->key)); + cell->holder = inmate; + bio_list_init(&cell->bios); + hlist_add_head(&cell->list, prison->cells + hash); + + r = 0; + +out: + spin_unlock_irqrestore(&prison->lock, flags); *ref = cell; @@ -283,8 +288,10 @@ hlist_del(&cell->list); - if (inmates) + if (inmates) { + bio_list_add(inmates, cell->holder); bio_list_merge(inmates, &cell->bios); + } mempool_free(cell, prison->cell_pool); } @@ -305,22 +312,45 @@ * bio may be in the cell. This function releases the cell, and also does * a sanity check. */ +static void __cell_release_singleton(struct cell *cell, struct bio *bio) +{ + BUG_ON(cell->holder != bio); + BUG_ON(!bio_list_empty(&cell->bios)); + + __cell_release(cell, NULL); +} + static void cell_release_singleton(struct cell *cell, struct bio *bio) { - struct bio_prison *prison = cell->prison; - struct bio_list bios; - struct bio *b; unsigned long flags; - - bio_list_init(&bios); + struct bio_prison *prison = cell->prison; spin_lock_irqsave(&prison->lock, flags); - __cell_release(cell, &bios); + __cell_release_singleton(cell, bio); spin_unlock_irqrestore(&prison->lock, flags); +} + +/* + * Sometimes we don't want the holder, just the additional bios. + */ +static void __cell_release_no_holder(struct cell *cell, struct bio_list *inmates) +{ + struct bio_prison *prison = cell->prison; + + hlist_del(&cell->list); + bio_list_merge(inmates, &cell->bios); + + mempool_free(cell, prison->cell_pool); +} - b = bio_list_pop(&bios); - BUG_ON(b != bio); - BUG_ON(!bio_list_empty(&bios)); +static void cell_release_no_holder(struct cell *cell, struct bio_list *inmates) +{ + unsigned long flags; + struct bio_prison *prison = cell->prison; + + spin_lock_irqsave(&prison->lock, flags); + __cell_release_no_holder(cell, inmates); + spin_unlock_irqrestore(&prison->lock, flags); } static void cell_error(struct cell *cell) @@ -800,21 +830,16 @@ * Same as cell_defer above, except it omits one particular detainee, * a write bio that covers the block and has already been processed. */ -static void cell_defer_except(struct thin_c *tc, struct cell *cell, - struct bio *exception) +static void cell_defer_except(struct thin_c *tc, struct cell *cell) { struct bio_list bios; - struct bio *bio; struct pool *pool = tc->pool; unsigned long flags; bio_list_init(&bios); - cell_release(cell, &bios); spin_lock_irqsave(&pool->lock, flags); - while ((bio = bio_list_pop(&bios))) - if (bio != exception) - bio_list_add(&pool->deferred_bios, bio); + cell_release_no_holder(cell, &pool->deferred_bios); spin_unlock_irqrestore(&pool->lock, flags); wake_worker(pool); @@ -832,7 +857,7 @@ if (m->err) { cell_error(m->cell); - return; + goto out; } /* @@ -844,7 +869,7 @@ if (r) { DMERR("dm_thin_insert_block() failed"); cell_error(m->cell); - return; + goto out; } /* @@ -854,11 +879,12 @@ * the bios in the cell. */ if (bio) { - cell_defer_except(tc, m->cell, bio); + cell_defer_except(tc, m->cell); bio_endio(bio, 0); } else cell_defer(tc, m->cell, m->data_block); +out: list_del(&m->list); mempool_free(m, tc->pool->mapping_pool); } @@ -2064,8 +2090,8 @@ * / * / */ -static int pool_status(struct dm_target *ti, status_type_t type, - char *result, unsigned maxlen) +static void pool_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { int r; unsigned sz = 0; @@ -2082,32 +2108,41 @@ switch (type) { case STATUSTYPE_INFO: - r = dm_pool_get_metadata_transaction_id(pool->pmd, - &transaction_id); - if (r) - return r; + r = dm_pool_get_metadata_transaction_id(pool->pmd, &transaction_id); + if (r) { + DMERR("dm_pool_get_metadata_transaction_id returned %d", r); + goto err; + } - r = dm_pool_get_free_metadata_block_count(pool->pmd, - &nr_free_blocks_metadata); - if (r) - return r; + r = dm_pool_get_free_metadata_block_count(pool->pmd, &nr_free_blocks_metadata); + if (r) { + DMERR("dm_pool_get_free_metadata_block_count returned %d", r); + goto err; + } r = dm_pool_get_metadata_dev_size(pool->pmd, &nr_blocks_metadata); - if (r) - return r; + if (r) { + DMERR("dm_pool_get_metadata_dev_size returned %d", r); + goto err; + } - r = dm_pool_get_free_block_count(pool->pmd, - &nr_free_blocks_data); - if (r) - return r; + r = dm_pool_get_free_block_count(pool->pmd, &nr_free_blocks_data); + if (r) { + DMERR("dm_pool_get_free_block_count returned %d", r); + goto err; + } r = dm_pool_get_data_dev_size(pool->pmd, &nr_blocks_data); - if (r) - return r; + if (r) { + DMERR("dm_pool_get_data_dev_size returned %d", r); + goto err; + } r = dm_pool_get_held_metadata_root(pool->pmd, &held_root); - if (r) - return r; + if (r) { + DMERR("dm_pool_get_held_metadata_root returned %d", r); + goto err; + } DMEMIT("%llu %llu/%llu %llu/%llu ", (unsigned long long)transaction_id, @@ -2136,8 +2171,10 @@ DMEMIT("skip_block_zeroing "); break; } + return; - return 0; +err: + DMEMIT("Error"); } static int pool_iterate_devices(struct dm_target *ti, @@ -2175,7 +2212,7 @@ .name = "thin-pool", .features = DM_TARGET_SINGLETON | DM_TARGET_ALWAYS_WRITEABLE | DM_TARGET_IMMUTABLE, - .version = {1, 0, 0}, + .version = {1, 0, 2}, .module = THIS_MODULE, .ctr = pool_ctr, .dtr = pool_dtr, @@ -2313,8 +2350,8 @@ /* * */ -static int thin_status(struct dm_target *ti, status_type_t type, - char *result, unsigned maxlen) +static void thin_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { int r; ssize_t sz = 0; @@ -2328,12 +2365,16 @@ switch (type) { case STATUSTYPE_INFO: r = dm_thin_get_mapped_count(tc->td, &mapped); - if (r) - return r; + if (r) { + DMERR("dm_thin_get_mapped_count returned %d", r); + goto err; + } r = dm_thin_get_highest_mapped_block(tc->td, &highest); - if (r < 0) - return r; + if (r < 0) { + DMERR("dm_thin_get_highest_mapped_block returned %d", r); + goto err; + } DMEMIT("%llu ", mapped * tc->pool->sectors_per_block); if (r) @@ -2351,7 +2392,10 @@ } } - return 0; + return; + +err: + DMEMIT("Error"); } static int thin_iterate_devices(struct dm_target *ti, @@ -2384,7 +2428,7 @@ static struct target_type thin_target = { .name = "thin", - .version = {1, 0, 0}, + .version = {1, 0, 2}, .module = THIS_MODULE, .ctr = thin_ctr, .dtr = thin_dtr, --- linux-3.2.0.orig/drivers/md/dm-crypt.c +++ linux-3.2.0/drivers/md/dm-crypt.c @@ -176,7 +176,6 @@ #define MIN_IOS 16 #define MIN_POOL_PAGES 32 -#define MIN_BIO_PAGES 8 static struct kmem_cache *_crypt_io_pool; @@ -848,12 +847,11 @@ } /* - * if additional pages cannot be allocated without waiting, - * return a partially allocated bio, the caller will then try - * to allocate additional bios while submitting this partial bio + * If additional pages cannot be allocated without waiting, + * return a partially-allocated bio. The caller will then try + * to allocate more bios while submitting this partial bio. */ - if (i == (MIN_BIO_PAGES - 1)) - gfp_mask = (gfp_mask | __GFP_NOWARN) & ~__GFP_WAIT; + gfp_mask = (gfp_mask | __GFP_NOWARN) & ~__GFP_WAIT; len = (size > PAGE_SIZE) ? PAGE_SIZE : size; @@ -1046,16 +1044,14 @@ queue_work(cc->io_queue, &io->work); } -static void kcryptd_crypt_write_io_submit(struct dm_crypt_io *io, - int error, int async) +static void kcryptd_crypt_write_io_submit(struct dm_crypt_io *io, int async) { struct bio *clone = io->ctx.bio_out; struct crypt_config *cc = io->target->private; - if (unlikely(error < 0)) { + if (unlikely(io->error < 0)) { crypt_free_buffer_pages(cc, clone); bio_put(clone); - io->error = -EIO; crypt_dec_pending(io); return; } @@ -1106,12 +1102,16 @@ sector += bio_sectors(clone); crypt_inc_pending(io); + r = crypt_convert(cc, &io->ctx); + if (r < 0) + io->error = -EIO; + crypt_finished = atomic_dec_and_test(&io->ctx.pending); /* Encryption was already finished, submit io now */ if (crypt_finished) { - kcryptd_crypt_write_io_submit(io, r, 0); + kcryptd_crypt_write_io_submit(io, 0); /* * If there was an error, do not try next fragments. @@ -1162,11 +1162,8 @@ crypt_dec_pending(io); } -static void kcryptd_crypt_read_done(struct dm_crypt_io *io, int error) +static void kcryptd_crypt_read_done(struct dm_crypt_io *io) { - if (unlikely(error < 0)) - io->error = -EIO; - crypt_dec_pending(io); } @@ -1181,9 +1178,11 @@ io->sector); r = crypt_convert(cc, &io->ctx); + if (r < 0) + io->error = -EIO; if (atomic_dec_and_test(&io->ctx.pending)) - kcryptd_crypt_read_done(io, r); + kcryptd_crypt_read_done(io); crypt_dec_pending(io); } @@ -1204,15 +1203,18 @@ if (!error && cc->iv_gen_ops && cc->iv_gen_ops->post) error = cc->iv_gen_ops->post(cc, iv_of_dmreq(cc, dmreq), dmreq); + if (error < 0) + io->error = -EIO; + mempool_free(req_of_dmreq(cc, dmreq), cc->req_pool); if (!atomic_dec_and_test(&ctx->pending)) return; if (bio_data_dir(io->base_bio) == READ) - kcryptd_crypt_read_done(io, error); + kcryptd_crypt_read_done(io); else - kcryptd_crypt_write_io_submit(io, error, 1); + kcryptd_crypt_write_io_submit(io, 1); } static void kcryptd_crypt(struct work_struct *work) @@ -1260,20 +1262,6 @@ return 0; } -/* - * Encode key into its hex representation - */ -static void crypt_encode_key(char *hex, u8 *key, unsigned int size) -{ - unsigned int i; - - for (i = 0; i < size; i++) { - sprintf(hex, "%02x", *key); - hex += 2; - key++; - } -} - static void crypt_free_tfms(struct crypt_config *cc, int cpu) { struct crypt_cpu *cpu_cc = per_cpu_ptr(cc->cpu, cpu); @@ -1737,11 +1725,11 @@ return DM_MAPIO_SUBMITTED; } -static int crypt_status(struct dm_target *ti, status_type_t type, - char *result, unsigned int maxlen) +static void crypt_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { struct crypt_config *cc = ti->private; - unsigned int sz = 0; + unsigned i, sz = 0; switch (type) { case STATUSTYPE_INFO: @@ -1751,17 +1739,11 @@ case STATUSTYPE_TABLE: DMEMIT("%s ", cc->cipher_string); - if (cc->key_size > 0) { - if ((maxlen - sz) < ((cc->key_size << 1) + 1)) - return -ENOMEM; - - crypt_encode_key(result + sz, cc->key, cc->key_size); - sz += cc->key_size << 1; - } else { - if (sz >= maxlen) - return -ENOMEM; - result[sz++] = '-'; - } + if (cc->key_size > 0) + for (i = 0; i < cc->key_size; i++) + DMEMIT("%02x", cc->key[i]); + else + DMEMIT("-"); DMEMIT(" %llu %s %llu", (unsigned long long)cc->iv_offset, cc->dev->name, (unsigned long long)cc->start); @@ -1771,7 +1753,6 @@ break; } - return 0; } static void crypt_postsuspend(struct dm_target *ti) @@ -1865,7 +1846,7 @@ static struct target_type crypt_target = { .name = "crypt", - .version = {1, 11, 0}, + .version = {1, 11, 1}, .module = THIS_MODULE, .ctr = crypt_ctr, .dtr = crypt_dtr, --- linux-3.2.0.orig/drivers/md/dm-raid1.c +++ linux-3.2.0/drivers/md/dm-raid1.c @@ -1080,6 +1080,7 @@ ti->split_io = dm_rh_get_region_size(ms->rh); ti->num_flush_requests = 1; ti->num_discard_requests = 1; + ti->discard_zeroes_data_unsupported = 1; ms->kmirrord_wq = alloc_workqueue("kmirrord", WQ_NON_REENTRANT | WQ_MEM_RECLAIM, 0); @@ -1210,7 +1211,7 @@ * We need to dec pending if this was a write. */ if (rw == WRITE) { - if (!(bio->bi_rw & REQ_FLUSH)) + if (!(bio->bi_rw & (REQ_FLUSH | REQ_DISCARD))) dm_rh_dec(ms->rh, map_context->ll); return error; } @@ -1357,8 +1358,8 @@ } -static int mirror_status(struct dm_target *ti, status_type_t type, - char *result, unsigned int maxlen) +static void mirror_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { unsigned int m, sz = 0; struct mirror_set *ms = (struct mirror_set *) ti->private; @@ -1393,8 +1394,6 @@ if (ms->features & DM_RAID1_HANDLE_ERRORS) DMEMIT(" 1 handle_errors"); } - - return 0; } static int mirror_iterate_devices(struct dm_target *ti, @@ -1413,7 +1412,7 @@ static struct target_type mirror_target = { .name = "mirror", - .version = {1, 12, 1}, + .version = {1, 12, 2}, .module = THIS_MODULE, .ctr = mirror_ctr, .dtr = mirror_dtr, --- linux-3.2.0.orig/drivers/md/dm-flakey.c +++ linux-3.2.0/drivers/md/dm-flakey.c @@ -323,7 +323,7 @@ * Corrupt successful READs while in down state. * If flags were specified, only corrupt those that match. */ - if (!error && bio_submitted_while_down && + if (fc->corrupt_bio_byte && !error && bio_submitted_while_down && (bio_data_dir(bio) == READ) && (fc->corrupt_bio_rw == READ) && all_corrupt_bio_flags_match(bio, fc)) corrupt_bio_data(bio, fc); @@ -331,8 +331,8 @@ return error; } -static int flakey_status(struct dm_target *ti, status_type_t type, - char *result, unsigned int maxlen) +static void flakey_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { unsigned sz = 0; struct flakey_c *fc = ti->private; @@ -362,14 +362,22 @@ break; } - return 0; } static int flakey_ioctl(struct dm_target *ti, unsigned int cmd, unsigned long arg) { struct flakey_c *fc = ti->private; + struct dm_dev *dev = fc->dev; + int r = 0; - return __blkdev_driver_ioctl(fc->dev->bdev, fc->dev->mode, cmd, arg); + /* + * Only pass ioctls through if the device sizes match exactly. + */ + if (fc->start || + ti->len != i_size_read(dev->bdev->bd_inode) >> SECTOR_SHIFT) + r = scsi_verify_blk_ioctl(NULL, cmd); + + return r ? : __blkdev_driver_ioctl(dev->bdev, dev->mode, cmd, arg); } static int flakey_merge(struct dm_target *ti, struct bvec_merge_data *bvm, @@ -396,7 +404,7 @@ static struct target_type flakey_target = { .name = "flakey", - .version = {1, 2, 0}, + .version = {1, 2, 1}, .module = THIS_MODULE, .ctr = flakey_ctr, .dtr = flakey_dtr, --- linux-3.2.0.orig/drivers/md/dm-table.c +++ linux-3.2.0/drivers/md/dm-table.c @@ -1350,17 +1350,25 @@ return q && blk_queue_nonrot(q); } -static bool dm_table_is_nonrot(struct dm_table *t) +static int device_is_not_random(struct dm_target *ti, struct dm_dev *dev, + sector_t start, sector_t len, void *data) +{ + struct request_queue *q = bdev_get_queue(dev->bdev); + + return q && !blk_queue_add_random(q); +} + +static bool dm_table_all_devices_attribute(struct dm_table *t, + iterate_devices_callout_fn func) { struct dm_target *ti; unsigned i = 0; - /* Ensure that all underlying device are non-rotational. */ while (i < dm_table_get_num_targets(t)) { ti = dm_table_get_target(t, i++); if (!ti->type->iterate_devices || - !ti->type->iterate_devices(ti, device_is_nonrot, NULL)) + !ti->type->iterate_devices(ti, func, NULL)) return 0; } @@ -1392,7 +1400,8 @@ if (!dm_table_discard_zeroes_data(t)) q->limits.discard_zeroes_data = 0; - if (dm_table_is_nonrot(t)) + /* Ensure that all underlying devices are non-rotational. */ + if (dm_table_all_devices_attribute(t, device_is_nonrot)) queue_flag_set_unlocked(QUEUE_FLAG_NONROT, q); else queue_flag_clear_unlocked(QUEUE_FLAG_NONROT, q); @@ -1400,6 +1409,15 @@ dm_table_set_integrity(t); /* + * Determine whether or not this queue's I/O timings contribute + * to the entropy pool, Only request-based targets use this. + * Clear QUEUE_FLAG_ADD_RANDOM if any underlying device does not + * have it set. + */ + if (blk_queue_add_random(q) && dm_table_all_devices_attribute(t, device_is_not_random)) + queue_flag_clear_unlocked(QUEUE_FLAG_ADD_RANDOM, q); + + /* * QUEUE_FLAG_STACKABLE must be set after all queue settings are * visible to other CPUs because, once the flag is set, incoming bios * are processed by request-based dm, which refers to the queue --- linux-3.2.0.orig/drivers/md/dm-delay.c +++ linux-3.2.0/drivers/md/dm-delay.c @@ -293,8 +293,8 @@ return delay_bio(dc, dc->read_delay, bio); } -static int delay_status(struct dm_target *ti, status_type_t type, - char *result, unsigned maxlen) +static void delay_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { struct delay_c *dc = ti->private; int sz = 0; @@ -314,8 +314,6 @@ dc->write_delay); break; } - - return 0; } static int delay_iterate_devices(struct dm_target *ti, @@ -337,7 +335,7 @@ static struct target_type delay_target = { .name = "delay", - .version = {1, 1, 0}, + .version = {1, 1, 1}, .module = THIS_MODULE, .ctr = delay_ctr, .dtr = delay_dtr, --- linux-3.2.0.orig/drivers/md/dm-ioctl.c +++ linux-3.2.0/drivers/md/dm-ioctl.c @@ -1065,6 +1065,7 @@ num_targets = dm_table_get_num_targets(table); for (i = 0; i < num_targets; i++) { struct dm_target *ti = dm_table_get_target(table, i); + size_t l; remaining = len - (outptr - outbuf); if (remaining <= sizeof(struct dm_target_spec)) { @@ -1089,14 +1090,17 @@ /* Get the status/table string from the target driver */ if (ti->type->status) { - if (ti->type->status(ti, type, outptr, remaining)) { - param->flags |= DM_BUFFER_FULL_FLAG; - break; - } + ti->type->status(ti, type, outptr, remaining); } else outptr[0] = '\0'; - outptr += strlen(outptr) + 1; + l = strlen(outptr) + 1; + if (l == remaining) { + param->flags |= DM_BUFFER_FULL_FLAG; + break; + } + + outptr += l; used = param->data_start + (outptr - outbuf); outptr = align_ptr(outptr); @@ -1437,7 +1441,7 @@ if (!argc) { DMWARN("Empty message received."); - goto out; + goto out_argv; } table = dm_get_live_table(md); @@ -1562,6 +1566,14 @@ if (copy_from_user(dmi, user, tmp.data_size)) goto bad; + /* + * Abort if something changed the ioctl data while it was being copied. + */ + if (dmi->data_size != tmp.data_size) { + DMERR("rejecting ioctl: data size modified while processing parameters"); + goto bad; + } + /* Wipe the user buffer so we do not return it to userspace */ if (secure_data && clear_user(user, tmp.data_size)) goto bad; --- linux-3.2.0.orig/drivers/md/raid0.c +++ linux-3.2.0/drivers/md/raid0.c @@ -286,7 +286,7 @@ kfree(conf->strip_zone); kfree(conf->devlist); kfree(conf); - *private_conf = NULL; + *private_conf = ERR_PTR(err); return err; } @@ -330,7 +330,8 @@ "%s does not support generic reshape\n", __func__); list_for_each_entry(rdev, &mddev->disks, same_set) - array_sectors += rdev->sectors; + array_sectors += (rdev->sectors & + ~(sector_t)(mddev->chunk_sectors-1)); return array_sectors; } --- linux-3.2.0.orig/drivers/md/dm-raid.c +++ linux-3.2.0/drivers/md/dm-raid.c @@ -667,7 +667,14 @@ return ret; sb = page_address(rdev->sb_page); - if (sb->magic != cpu_to_le32(DM_RAID_MAGIC)) { + + /* + * Two cases that we want to write new superblocks and rebuild: + * 1) New device (no matching magic number) + * 2) Device specified for rebuild (!In_sync w/ offset == 0) + */ + if ((sb->magic != cpu_to_le32(DM_RAID_MAGIC)) || + (!test_bit(In_sync, &rdev->flags) && !rdev->recovery_offset)) { super_sync(rdev->mddev, rdev); set_bit(FirstUse, &rdev->flags); @@ -744,11 +751,8 @@ */ rdev_for_each(r, t, mddev) { if (!test_bit(In_sync, &r->flags)) { - if (!test_bit(FirstUse, &r->flags)) - DMERR("Superblock area of " - "rebuild device %d should have been " - "cleared.", r->raid_disk); - set_bit(FirstUse, &r->flags); + DMINFO("Device %d specified for rebuild: " + "Clearing superblock", r->raid_disk); rebuilds++; } else if (test_bit(FirstUse, &r->flags)) new_devs++; @@ -970,6 +974,7 @@ INIT_WORK(&rs->md.event_work, do_table_event); ti->private = rs; + ti->num_flush_requests = 1; mutex_lock(&rs->md.reconfig_mutex); ret = md_run(&rs->md); @@ -1012,8 +1017,8 @@ return DM_MAPIO_SUBMITTED; } -static int raid_status(struct dm_target *ti, status_type_t type, - char *result, unsigned maxlen) +static void raid_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { struct raid_set *rs = ti->private; unsigned raid_param_cnt = 1; /* at least 1 for chunksize */ @@ -1148,8 +1153,6 @@ DMEMIT(" -"); } } - - return 0; } static int raid_iterate_devices(struct dm_target *ti, iterate_devices_callout_fn fn, void *data) @@ -1203,7 +1206,7 @@ static struct target_type raid_target = { .name = "raid", - .version = {1, 1, 0}, + .version = {1, 1, 1}, .module = THIS_MODULE, .ctr = raid_ctr, .dtr = raid_dtr, --- linux-3.2.0.orig/drivers/md/dm-io.c +++ linux-3.2.0/drivers/md/dm-io.c @@ -296,6 +296,8 @@ unsigned offset; unsigned num_bvecs; sector_t remaining = where->count; + struct request_queue *q = bdev_get_queue(where->bdev); + sector_t discard_sectors; /* * where->count may be zero if rw holds a flush and we need to @@ -305,9 +307,12 @@ /* * Allocate a suitably sized-bio. */ - num_bvecs = dm_sector_div_up(remaining, - (PAGE_SIZE >> SECTOR_SHIFT)); - num_bvecs = min_t(int, bio_get_nr_vecs(where->bdev), num_bvecs); + if (rw & REQ_DISCARD) + num_bvecs = 1; + else + num_bvecs = min_t(int, bio_get_nr_vecs(where->bdev), + dm_sector_div_up(remaining, (PAGE_SIZE >> SECTOR_SHIFT))); + bio = bio_alloc_bioset(GFP_NOIO, num_bvecs, io->client->bios); bio->bi_sector = where->sector + (where->count - remaining); bio->bi_bdev = where->bdev; @@ -315,10 +320,14 @@ bio->bi_destructor = dm_bio_destructor; store_io_and_region_in_bio(bio, io, region); - /* - * Try and add as many pages as possible. - */ - while (remaining) { + if (rw & REQ_DISCARD) { + discard_sectors = min_t(sector_t, q->limits.max_discard_sectors, remaining); + bio->bi_size = discard_sectors << SECTOR_SHIFT; + remaining -= discard_sectors; + } else while (remaining) { + /* + * Try and add as many pages as possible. + */ dp->get_page(dp, &page, &len, &offset); len = min(len, to_bytes(remaining)); if (!bio_add_page(bio, page, len, offset)) --- linux-3.2.0.orig/drivers/md/dm-snap.c +++ linux-3.2.0/drivers/md/dm-snap.c @@ -1117,6 +1117,7 @@ s->pending_pool = mempool_create_slab_pool(MIN_IOS, pending_cache); if (!s->pending_pool) { ti->error = "Could not allocate mempool for pending exceptions"; + r = -ENOMEM; goto bad_pending_pool; } @@ -1845,8 +1846,8 @@ start_merge(s); } -static int snapshot_status(struct dm_target *ti, status_type_t type, - char *result, unsigned int maxlen) +static void snapshot_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { unsigned sz = 0; struct dm_snapshot *snap = ti->private; @@ -1892,8 +1893,6 @@ maxlen - sz); break; } - - return 0; } static int snapshot_iterate_devices(struct dm_target *ti, @@ -2148,8 +2147,8 @@ ti->split_io = get_origin_minimum_chunksize(dev->bdev); } -static int origin_status(struct dm_target *ti, status_type_t type, char *result, - unsigned int maxlen) +static void origin_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { struct dm_dev *dev = ti->private; @@ -2162,8 +2161,6 @@ snprintf(result, maxlen, "%s", dev->name); break; } - - return 0; } static int origin_merge(struct dm_target *ti, struct bvec_merge_data *bvm, @@ -2191,7 +2188,7 @@ static struct target_type origin_target = { .name = "snapshot-origin", - .version = {1, 7, 1}, + .version = {1, 7, 2}, .module = THIS_MODULE, .ctr = origin_ctr, .dtr = origin_dtr, @@ -2204,7 +2201,7 @@ static struct target_type snapshot_target = { .name = "snapshot", - .version = {1, 10, 0}, + .version = {1, 10, 1}, .module = THIS_MODULE, .ctr = snapshot_ctr, .dtr = snapshot_dtr, @@ -2327,3 +2324,5 @@ MODULE_DESCRIPTION(DM_NAME " snapshot target"); MODULE_AUTHOR("Joe Thornber"); MODULE_LICENSE("GPL"); +MODULE_ALIAS("dm-snapshot-origin"); +MODULE_ALIAS("dm-snapshot-merge"); --- linux-3.2.0.orig/drivers/md/dm-exception-store.c +++ linux-3.2.0/drivers/md/dm-exception-store.c @@ -283,7 +283,7 @@ return 0; persistent_fail: - dm_persistent_snapshot_exit(); + dm_transient_snapshot_exit(); transient_fail: return r; } --- linux-3.2.0.orig/drivers/md/raid5.c +++ linux-3.2.0/drivers/md/raid5.c @@ -196,12 +196,14 @@ BUG_ON(!list_empty(&sh->lru)); BUG_ON(atomic_read(&conf->active_stripes)==0); if (test_bit(STRIPE_HANDLE, &sh->state)) { - if (test_bit(STRIPE_DELAYED, &sh->state)) + if (test_bit(STRIPE_DELAYED, &sh->state) && + !test_bit(STRIPE_PREREAD_ACTIVE, &sh->state)) list_add_tail(&sh->lru, &conf->delayed_list); else if (test_bit(STRIPE_BIT_DELAY, &sh->state) && sh->bm_seq - conf->seq_write > 0) list_add_tail(&sh->lru, &conf->bitmap_list); else { + clear_bit(STRIPE_DELAYED, &sh->state); clear_bit(STRIPE_BIT_DELAY, &sh->state); list_add_tail(&sh->lru, &conf->handle_list); } @@ -542,6 +544,12 @@ * a chance*/ md_check_recovery(conf->mddev); } + /* + * Because md_wait_for_blocked_rdev + * will dec nr_pending, we must + * increment it first. + */ + atomic_inc(&rdev->nr_pending); md_wait_for_blocked_rdev(rdev, conf->mddev); } else { /* Acknowledged bad block - skip the write */ @@ -3621,7 +3629,6 @@ raid_bio->bi_next = (void*)rdev; align_bi->bi_bdev = rdev->bdev; align_bi->bi_flags &= ~(1 << BIO_SEG_VALID); - align_bi->bi_sector += rdev->data_offset; if (!bio_fits_rdev(align_bi) || is_badblock(rdev, align_bi->bi_sector, align_bi->bi_size>>9, @@ -3632,6 +3639,9 @@ return 0; } + /* No reshape active, so we can trust rdev->data_offset */ + align_bi->bi_sector += rdev->data_offset; + spin_lock_irq(&conf->device_lock); wait_event_lock_irq(conf->wait_for_stripe, conf->quiesce == 0, --- linux-3.2.0.orig/drivers/md/bitmap.c +++ linux-3.2.0/drivers/md/bitmap.c @@ -1819,7 +1819,9 @@ * re-add of a missing device */ start = mddev->recovery_cp; + mutex_lock(&mddev->bitmap_info.mutex); err = bitmap_init_from_disk(bitmap, start); + mutex_unlock(&mddev->bitmap_info.mutex); if (err) goto out; @@ -1904,6 +1906,8 @@ if (mddev->pers) { mddev->pers->quiesce(mddev, 1); rv = bitmap_create(mddev); + if (!rv) + rv = bitmap_load(mddev); if (rv) { bitmap_destroy(mddev); mddev->bitmap_info.offset = 0; --- linux-3.2.0.orig/drivers/md/dm-mpath.c +++ linux-3.2.0/drivers/md/dm-mpath.c @@ -698,8 +698,8 @@ return 0; m->hw_handler_name = kstrdup(dm_shift_arg(as), GFP_KERNEL); - request_module("scsi_dh_%s", m->hw_handler_name); - if (scsi_dh_handler_exist(m->hw_handler_name) == 0) { + if (!try_then_request_module(scsi_dh_handler_exist(m->hw_handler_name), + "scsi_dh_%s", m->hw_handler_name)) { ti->error = "unknown hardware handler type"; ret = -EINVAL; goto fail; @@ -1323,8 +1323,8 @@ * [priority selector-name num_ps_args [ps_args]* * num_paths num_selector_args [path_dev [selector_args]* ]+ ]+ */ -static int multipath_status(struct dm_target *ti, status_type_t type, - char *result, unsigned int maxlen) +static void multipath_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { int sz = 0; unsigned long flags; @@ -1427,8 +1427,6 @@ } spin_unlock_irqrestore(&m->lock, flags); - - return 0; } static int multipath_message(struct dm_target *ti, unsigned argc, char **argv) @@ -1520,6 +1518,12 @@ spin_unlock_irqrestore(&m->lock, flags); + /* + * Only pass ioctls through if the device sizes match exactly. + */ + if (!r && ti->len != i_size_read(bdev->bd_inode) >> SECTOR_SHIFT) + r = scsi_verify_blk_ioctl(NULL, cmd); + return r ? : __blkdev_driver_ioctl(bdev, mode, cmd, arg); } @@ -1617,7 +1621,7 @@ *---------------------------------------------------------------*/ static struct target_type multipath_target = { .name = "multipath", - .version = {1, 3, 0}, + .version = {1, 3, 1}, .module = THIS_MODULE, .ctr = multipath_ctr, .dtr = multipath_dtr, --- linux-3.2.0.orig/drivers/md/dm.c +++ linux-3.2.0/drivers/md/dm.c @@ -755,8 +755,14 @@ if (!md_in_flight(md)) wake_up(&md->wait); + /* + * Run this off this callpath, as drivers could invoke end_io while + * inside their request_fn (and holding the queue lock). Calling + * back into ->request_fn() could deadlock attempting to grab the + * queue lock again. + */ if (run_queue) - blk_run_queue(md->queue); + blk_run_queue_async(md->queue); /* * dm_put() must be at the end of this function. See the comment above @@ -866,10 +872,14 @@ { int r = error; struct dm_rq_target_io *tio = clone->end_io_data; - dm_request_endio_fn rq_end_io = tio->ti->type->rq_end_io; + dm_request_endio_fn rq_end_io = NULL; - if (mapped && rq_end_io) - r = rq_end_io(tio->ti, clone, error, &tio->info); + if (tio->ti) { + rq_end_io = tio->ti->type->rq_end_io; + + if (mapped && rq_end_io) + r = rq_end_io(tio->ti, clone, error, &tio->info); + } if (r <= 0) /* The target wants to complete the I/O */ @@ -1566,15 +1576,6 @@ int r, requeued = 0; struct dm_rq_target_io *tio = clone->end_io_data; - /* - * Hold the md reference here for the in-flight I/O. - * We can't rely on the reference count by device opener, - * because the device may be closed during the request completion - * when all bios are completed. - * See the comment in rq_completed() too. - */ - dm_get(md); - tio->ti = ti; r = ti->type->map_rq(ti, clone, &tio->info); switch (r) { @@ -1606,6 +1607,26 @@ return requeued; } +static struct request *dm_start_request(struct mapped_device *md, struct request *orig) +{ + struct request *clone; + + blk_start_request(orig); + clone = orig->special; + atomic_inc(&md->pending[rq_data_dir(clone)]); + + /* + * Hold the md reference here for the in-flight I/O. + * We can't rely on the reference count by device opener, + * because the device may be closed during the request completion + * when all bios are completed. + * See the comment in rq_completed() too. + */ + dm_get(md); + + return clone; +} + /* * q->request_fn for request-based dm. * Called with the queue lock held. @@ -1635,14 +1656,21 @@ pos = blk_rq_pos(rq); ti = dm_table_find_target(map, pos); - BUG_ON(!dm_target_is_valid(ti)); + if (!dm_target_is_valid(ti)) { + /* + * Must perform setup, that dm_done() requires, + * before calling dm_kill_unmapped_request + */ + DMERR_LIMIT("request attempted access beyond the end of device"); + clone = dm_start_request(md, rq); + dm_kill_unmapped_request(clone, -EIO); + continue; + } if (ti->type->busy && ti->type->busy(ti)) goto delay_and_out; - blk_start_request(rq); - clone = rq->special; - atomic_inc(&md->pending[rq_data_dir(clone)]); + clone = dm_start_request(md, rq); spin_unlock(q->queue_lock); if (map_request(ti, clone, md)) @@ -1662,8 +1690,6 @@ blk_delay_queue(q, HZ / 10); out: dm_table_put(map); - - return; } int dm_underlying_device_busy(struct request_queue *q) @@ -2653,6 +2679,7 @@ { return md->disk; } +EXPORT_SYMBOL_GPL(dm_disk); struct kobject *dm_kobject(struct mapped_device *md) { --- linux-3.2.0.orig/drivers/md/raid10.c +++ linux-3.2.0/drivers/md/raid10.c @@ -390,7 +390,17 @@ sector_t first_bad; int bad_sectors; - set_bit(R10BIO_Uptodate, &r10_bio->state); + /* + * Do not set R10BIO_Uptodate if the current device is + * rebuilding or Faulty. This is because we cannot use + * such device for properly reading the data back (we could + * potentially use it, if the current write would have felt + * before rdev->recovery_offset, but for simplicity we don't + * check this here. + */ + if (test_bit(In_sync, &conf->mirrors[dev].rdev->flags) && + !test_bit(Faulty, &conf->mirrors[dev].rdev->flags)) + set_bit(R10BIO_Uptodate, &r10_bio->state); /* Maybe we can clear some bad blocks. */ if (is_badblock(conf->mirrors[dev].rdev, @@ -790,9 +800,22 @@ spin_lock_irq(&conf->resync_lock); if (conf->barrier) { conf->nr_waiting++; - wait_event_lock_irq(conf->wait_barrier, !conf->barrier, + /* Wait for the barrier to drop. + * However if there are already pending + * requests (preventing the barrier from + * rising completely), and the + * pre-process bio queue isn't empty, + * then don't wait, as we need to empty + * that queue to get the nr_pending + * count down. + */ + wait_event_lock_irq(conf->wait_barrier, + !conf->barrier || + (conf->nr_pending && + current->bio_list && + !bio_list_empty(current->bio_list)), conf->resync_lock, - ); + ); conf->nr_waiting--; } conf->nr_pending++; @@ -1213,14 +1236,16 @@ do { int n = conf->copies; int cnt = 0; + int this = first; while (n--) { - if (conf->mirrors[first].rdev && - first != ignore) + if (conf->mirrors[this].rdev && + this != ignore) cnt++; - first = (first+1) % conf->raid_disks; + this = (this+1) % conf->raid_disks; } if (cnt == 0) return 0; + first = (first + conf->near_copies) % conf->raid_disks; } while (first != 0); return 1; } @@ -1906,7 +1931,7 @@ if (r10_sync_page_io(rdev, r10_bio->devs[sl].addr + sect, - s<<9, conf->tmppage, WRITE) + s, conf->tmppage, WRITE) == 0) { /* Well, this device is dead */ printk(KERN_NOTICE @@ -1943,7 +1968,7 @@ switch (r10_sync_page_io(rdev, r10_bio->devs[sl].addr + sect, - s<<9, conf->tmppage, + s, conf->tmppage, READ)) { case 0: /* Well, this device is dead */ @@ -2106,7 +2131,7 @@ rdev = conf->mirrors[mirror].rdev; printk_ratelimited( KERN_ERR - "md/raid10:%s: %s: redirecting" + "md/raid10:%s: %s: redirecting " "sector %llu to another mirror\n", mdname(mddev), bdevname(rdev->bdev, b), @@ -2423,6 +2448,12 @@ /* want to reconstruct this device */ rb2 = r10_bio; sect = raid10_find_virt(conf, sector_nr, i); + if (sect >= mddev->resync_max_sectors) { + /* last stripe is not complete - don't + * try to recover this sector. + */ + continue; + } /* Unless we are doing a full sync, we only need * to recover the block if it is set in the bitmap */ @@ -2620,7 +2651,7 @@ else { bad_sectors -= (sector - first_bad); if (max_sync > bad_sectors) - max_sync = max_sync; + max_sync = bad_sectors; continue; } } --- linux-3.2.0.orig/drivers/md/dm-stripe.c +++ linux-3.2.0/drivers/md/dm-stripe.c @@ -301,8 +301,8 @@ * */ -static int stripe_status(struct dm_target *ti, - status_type_t type, char *result, unsigned int maxlen) +static void stripe_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { struct stripe_c *sc = (struct stripe_c *) ti->private; char buffer[sc->stripes + 1]; @@ -329,7 +329,6 @@ (unsigned long long)sc->stripe[i].physical_start); break; } - return 0; } static int stripe_end_io(struct dm_target *ti, struct bio *bio, @@ -418,7 +417,7 @@ static struct target_type stripe_target = { .name = "striped", - .version = {1, 4, 0}, + .version = {1, 4, 1}, .module = THIS_MODULE, .ctr = stripe_ctr, .dtr = stripe_dtr, --- linux-3.2.0.orig/drivers/md/md.c +++ linux-3.2.0/drivers/md/md.c @@ -345,6 +345,10 @@ bio_io_error(bio); return; } + if (mddev->ro == 1 && unlikely(rw == WRITE)) { + bio_endio(bio, bio_sectors(bio) == 0 ? 0 : -EROFS); + return; + } smp_rmb(); /* Ensure implications of 'active' are visible */ rcu_read_lock(); if (mddev->suspended) { @@ -392,6 +396,8 @@ synchronize_rcu(); wait_event(mddev->sb_wait, atomic_read(&mddev->active_io) == 0); mddev->pers->quiesce(mddev, 1); + + del_timer_sync(&mddev->safemode_timer); } EXPORT_SYMBOL_GPL(mddev_suspend); @@ -451,7 +457,7 @@ atomic_inc(&rdev->nr_pending); atomic_inc(&rdev->nr_pending); rcu_read_unlock(); - bi = bio_alloc_mddev(GFP_KERNEL, 0, mddev); + bi = bio_alloc_mddev(GFP_NOIO, 0, mddev); bi->bi_end_io = md_end_flush; bi->bi_private = rdev; bi->bi_bdev = rdev->bdev; @@ -1142,8 +1148,11 @@ ret = 0; } rdev->sectors = rdev->sb_start; - /* Limit to 4TB as metadata cannot record more than that */ - if (rdev->sectors >= (2ULL << 32)) + /* Limit to 4TB as metadata cannot record more than that. + * (not needed for Linear and RAID0 as metadata doesn't + * record this size) + */ + if (rdev->sectors >= (2ULL << 32) && sb->level >= 1) rdev->sectors = (2ULL << 32) - 2; if (rdev->sectors < ((sector_t)sb->size) * 2 && sb->level >= 1) @@ -1425,7 +1434,7 @@ /* Limit to 4TB as metadata cannot record more than that. * 4TB == 2^32 KB, or 2*2^32 sectors. */ - if (num_sectors >= (2ULL << 32)) + if (num_sectors >= (2ULL << 32) && rdev->mddev->level >= 1) num_sectors = (2ULL << 32) - 2; md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size, rdev->sb_page); @@ -1579,8 +1588,8 @@ sector, count, 1) == 0) return -EINVAL; } - } else if (sb->bblog_offset == 0) - rdev->badblocks.shift = -1; + } else if (sb->bblog_offset != 0) + rdev->badblocks.shift = 0; if (!refdev) { ret = 1; @@ -1796,18 +1805,18 @@ memset(bbp, 0xff, PAGE_SIZE); for (i = 0 ; i < bb->count ; i++) { - u64 internal_bb = *p++; + u64 internal_bb = p[i]; u64 store_bb = ((BB_OFFSET(internal_bb) << 10) | BB_LEN(internal_bb)); - *bbp++ = cpu_to_le64(store_bb); + bbp[i] = cpu_to_le64(store_bb); } + bb->changed = 0; if (read_seqretry(&bb->lock, seq)) goto retry; bb->sector = (rdev->sb_start + (int)le32_to_cpu(sb->bblog_offset)); bb->size = le16_to_cpu(sb->bblog_size); - bb->changed = 0; } } @@ -2362,6 +2371,7 @@ clear_bit(MD_CHANGE_PENDING, &mddev->flags); list_for_each_entry(rdev, &mddev->disks, same_set) { if (rdev->badblocks.changed) { + rdev->badblocks.changed = 0; md_ack_all_badblocks(&rdev->badblocks); md_error(mddev, rdev); } @@ -2832,6 +2842,9 @@ } else if (!sectors) sectors = (i_size_read(rdev->bdev->bd_inode) >> 9) - rdev->data_offset; + if (!my_mddev->pers->resize) + /* Cannot change size for RAID0 or Linear etc */ + return -EINVAL; } if (sectors < my_mddev->dev_sectors) return -EINVAL; /* component must fit device */ @@ -3050,7 +3063,7 @@ * be used - I wonder if that matters */ rdev->badblocks.count = 0; - rdev->badblocks.shift = 0; + rdev->badblocks.shift = -1; /* disabled until explicitly enabled */ rdev->badblocks.page = kmalloc(PAGE_SIZE, GFP_KERNEL); seqlock_init(&rdev->badblocks.lock); if (rdev->badblocks.page == NULL) @@ -3122,9 +3135,6 @@ goto abort_free; } } - if (super_format == -1) - /* hot-add for 0.90, or non-persistent: so no badblocks */ - rdev->badblocks.shift = -1; return rdev; @@ -3697,8 +3707,8 @@ return sprintf(page, "%s\n", array_states[st]); } -static int do_md_stop(struct mddev * mddev, int ro, int is_open); -static int md_set_readonly(struct mddev * mddev, int is_open); +static int do_md_stop(struct mddev * mddev, int ro, struct block_device *bdev); +static int md_set_readonly(struct mddev * mddev, struct block_device *bdev); static int do_md_run(struct mddev * mddev); static int restart_array(struct mddev *mddev); @@ -3714,14 +3724,14 @@ /* stopping an active array */ if (atomic_read(&mddev->openers) > 0) return -EBUSY; - err = do_md_stop(mddev, 0, 0); + err = do_md_stop(mddev, 0, NULL); break; case inactive: /* stopping an active array */ if (mddev->pers) { if (atomic_read(&mddev->openers) > 0) return -EBUSY; - err = do_md_stop(mddev, 2, 0); + err = do_md_stop(mddev, 2, NULL); } else err = 0; /* already inactive */ break; @@ -3729,7 +3739,7 @@ break; /* not supported yet */ case readonly: if (mddev->pers) - err = md_set_readonly(mddev, 0); + err = md_set_readonly(mddev, NULL); else { mddev->ro = 1; set_disk_ro(mddev->gendisk, 1); @@ -3739,7 +3749,7 @@ case read_auto: if (mddev->pers) { if (mddev->ro == 0) - err = md_set_readonly(mddev, 0); + err = md_set_readonly(mddev, NULL); else if (mddev->ro == 1) err = restart_array(mddev); if (err == 0) { @@ -5075,15 +5085,17 @@ } EXPORT_SYMBOL_GPL(md_stop); -static int md_set_readonly(struct mddev *mddev, int is_open) +static int md_set_readonly(struct mddev *mddev, struct block_device *bdev) { int err = 0; mutex_lock(&mddev->open_mutex); - if (atomic_read(&mddev->openers) > is_open) { + if (atomic_read(&mddev->openers) > !!bdev) { printk("md: %s still in use.\n",mdname(mddev)); err = -EBUSY; goto out; } + if (bdev) + sync_blockdev(bdev); if (mddev->pers) { __md_stop_writes(mddev); @@ -5105,18 +5117,26 @@ * 0 - completely stop and dis-assemble array * 2 - stop but do not disassemble array */ -static int do_md_stop(struct mddev * mddev, int mode, int is_open) +static int do_md_stop(struct mddev * mddev, int mode, + struct block_device *bdev) { struct gendisk *disk = mddev->gendisk; struct md_rdev *rdev; mutex_lock(&mddev->open_mutex); - if (atomic_read(&mddev->openers) > is_open || + if (atomic_read(&mddev->openers) > !!bdev || mddev->sysfs_active) { printk("md: %s still in use.\n",mdname(mddev)); mutex_unlock(&mddev->open_mutex); return -EBUSY; } + if (bdev) + /* It is possible IO was issued on some other + * open file which was closed before we took ->open_mutex. + * As that was not the last close __blkdev_put will not + * have called sync_blockdev, so we must. + */ + sync_blockdev(bdev); if (mddev->pers) { if (mddev->ro) @@ -5190,7 +5210,7 @@ err = do_md_run(mddev); if (err) { printk(KERN_WARNING "md: do_md_run() returned %d\n", err); - do_md_stop(mddev, 0, 0); + do_md_stop(mddev, 0, NULL); } } @@ -6181,11 +6201,11 @@ goto done_unlock; case STOP_ARRAY: - err = do_md_stop(mddev, 0, 1); + err = do_md_stop(mddev, 0, bdev); goto done_unlock; case STOP_ARRAY_RO: - err = md_set_readonly(mddev, 1); + err = md_set_readonly(mddev, bdev); goto done_unlock; case BLKROSET: @@ -7634,9 +7654,9 @@ sector_t *first_bad, int *bad_sectors) { int hi; - int lo = 0; + int lo; u64 *p = bb->page; - int rv = 0; + int rv; sector_t target = s + sectors; unsigned seq; @@ -7651,7 +7671,8 @@ retry: seq = read_seqbegin(&bb->lock); - + lo = 0; + rv = 0; hi = bb->count; /* Binary search between lo and hi for 'target' @@ -8097,30 +8118,24 @@ struct mddev *mddev; int need_delay = 0; - if ((code == SYS_DOWN) || (code == SYS_HALT) || (code == SYS_POWER_OFF)) { - - printk(KERN_INFO "md: stopping all md devices.\n"); - - for_each_mddev(mddev, tmp) { - if (mddev_trylock(mddev)) { - /* Force a switch to readonly even array - * appears to still be in use. Hence - * the '100'. - */ - md_set_readonly(mddev, 100); - mddev_unlock(mddev); - } - need_delay = 1; + for_each_mddev(mddev, tmp) { + if (mddev_trylock(mddev)) { + if (mddev->pers) + __md_stop_writes(mddev); + mddev->safemode = 2; + mddev_unlock(mddev); } - /* - * certain more exotic SCSI devices are known to be - * volatile wrt too early system reboots. While the - * right place to handle this issue is the given - * driver, we do want to have a safe RAID driver ... - */ - if (need_delay) - mdelay(1000*1); + need_delay = 1; } + /* + * certain more exotic SCSI devices are known to be + * volatile wrt too early system reboots. While the + * right place to handle this issue is the given + * driver, we do want to have a safe RAID driver ... + */ + if (need_delay) + mdelay(1000*1); + return NOTIFY_DONE; } --- linux-3.2.0.orig/drivers/md/dm-bufio.c +++ linux-3.2.0/drivers/md/dm-bufio.c @@ -322,6 +322,9 @@ static void *alloc_buffer_data(struct dm_bufio_client *c, gfp_t gfp_mask, enum data_mode *data_mode) { + unsigned noio_flag; + void *ptr; + if (c->block_size <= DM_BUFIO_BLOCK_SIZE_SLAB_LIMIT) { *data_mode = DATA_MODE_SLAB; return kmem_cache_alloc(DM_BUFIO_CACHE(c), gfp_mask); @@ -335,7 +338,28 @@ } *data_mode = DATA_MODE_VMALLOC; - return __vmalloc(c->block_size, gfp_mask, PAGE_KERNEL); + + /* + * __vmalloc allocates the data pages and auxiliary structures with + * gfp_flags that were specified, but pagetables are always allocated + * with GFP_KERNEL, no matter what was specified as gfp_mask. + * + * Consequently, we must set per-process flag PF_MEMALLOC_NOIO so that + * all allocations done by this process (including pagetables) are done + * as if GFP_NOIO was specified. + */ + + if (gfp_mask & __GFP_NORETRY) { + noio_flag = current->flags & PF_MEMALLOC; + current->flags |= PF_MEMALLOC; + } + + ptr = __vmalloc(c->block_size, gfp_mask, PAGE_KERNEL); + + if (gfp_mask & __GFP_NORETRY) + current->flags = (current->flags & ~PF_MEMALLOC) | noio_flag; + + return ptr; } /* --- linux-3.2.0.orig/drivers/md/dm-region-hash.c +++ linux-3.2.0/drivers/md/dm-region-hash.c @@ -404,6 +404,9 @@ return; } + if (bio->bi_rw & REQ_DISCARD) + return; + /* We must inform the log that the sync count has changed. */ log->type->set_region_sync(log, region, 0); @@ -524,7 +527,7 @@ struct bio *bio; for (bio = bios->head; bio; bio = bio->bi_next) { - if (bio->bi_rw & REQ_FLUSH) + if (bio->bi_rw & (REQ_FLUSH | REQ_DISCARD)) continue; rh_inc(rh, dm_rh_bio_to_region(rh, bio)); } --- linux-3.2.0.orig/drivers/md/dm-thin-metadata.c +++ linux-3.2.0/drivers/md/dm-thin-metadata.c @@ -385,6 +385,7 @@ data_sm = dm_sm_disk_create(tm, nr_blocks); if (IS_ERR(data_sm)) { DMERR("sm_disk_create failed"); + dm_tm_unlock(tm, sblock); r = PTR_ERR(data_sm); goto bad; } @@ -789,6 +790,11 @@ return 0; } +/* + * __open_device: Returns @td corresponding to device with id @dev, + * creating it if @create is set and incrementing @td->open_count. + * On failure, @td is undefined. + */ static int __open_device(struct dm_pool_metadata *pmd, dm_thin_id dev, int create, struct dm_thin_device **td) @@ -799,10 +805,16 @@ struct disk_device_details details_le; /* - * Check the device isn't already open. + * If the device is already open, return it. */ list_for_each_entry(td2, &pmd->thin_devices, list) if (td2->id == dev) { + /* + * May not create an already-open device. + */ + if (create) + return -EEXIST; + td2->open_count++; *td = td2; return 0; @@ -817,6 +829,9 @@ if (r != -ENODATA || !create) return r; + /* + * Create new device. + */ changed = 1; details_le.mapped_blocks = 0; details_le.transaction_id = cpu_to_le64(pmd->trans_id); @@ -882,12 +897,10 @@ r = __open_device(pmd, dev, 1, &td); if (r) { - __close_device(td); dm_btree_remove(&pmd->tl_info, pmd->root, &key, &pmd->root); dm_btree_del(&pmd->bl_info, dev_root); return r; } - td->changed = 1; __close_device(td); return r; @@ -967,14 +980,14 @@ goto bad; r = __set_snapshot_details(pmd, td, origin, pmd->time); + __close_device(td); + if (r) goto bad; - __close_device(td); return 0; bad: - __close_device(td); dm_btree_remove(&pmd->tl_info, pmd->root, &key, &pmd->root); dm_btree_remove(&pmd->details_info, pmd->details_root, &key, &pmd->details_root); @@ -1211,6 +1224,8 @@ if (r) return r; + td->mapped_blocks--; + td->changed = 1; pmd->need_commit = 1; return 0; --- linux-3.2.0.orig/drivers/md/dm-linear.c +++ linux-3.2.0/drivers/md/dm-linear.c @@ -94,8 +94,8 @@ return DM_MAPIO_REMAPPED; } -static int linear_status(struct dm_target *ti, status_type_t type, - char *result, unsigned int maxlen) +static void linear_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) { struct linear_c *lc = (struct linear_c *) ti->private; @@ -109,14 +109,23 @@ (unsigned long long)lc->start); break; } - return 0; } static int linear_ioctl(struct dm_target *ti, unsigned int cmd, unsigned long arg) { struct linear_c *lc = (struct linear_c *) ti->private; - return __blkdev_driver_ioctl(lc->dev->bdev, lc->dev->mode, cmd, arg); + struct dm_dev *dev = lc->dev; + int r = 0; + + /* + * Only pass ioctls through if the device sizes match exactly. + */ + if (lc->start || + ti->len != i_size_read(dev->bdev->bd_inode) >> SECTOR_SHIFT) + r = scsi_verify_blk_ioctl(NULL, cmd); + + return r ? : __blkdev_driver_ioctl(dev->bdev, dev->mode, cmd, arg); } static int linear_merge(struct dm_target *ti, struct bvec_merge_data *bvm, @@ -144,7 +153,7 @@ static struct target_type linear_target = { .name = "linear", - .version = {1, 1, 0}, + .version = {1, 1, 1}, .module = THIS_MODULE, .ctr = linear_ctr, .dtr = linear_dtr, --- linux-3.2.0.orig/drivers/md/raid1.c +++ linux-3.2.0/drivers/md/raid1.c @@ -407,7 +407,17 @@ r1_bio->bios[mirror] = NULL; to_put = bio; - set_bit(R1BIO_Uptodate, &r1_bio->state); + /* + * Do not set R1BIO_Uptodate if the current device is + * rebuilding or Faulty. This is because we cannot use + * such device for properly reading the data back (we could + * potentially use it, if the current write would have felt + * before rdev->recovery_offset, but for simplicity we don't + * check this here. + */ + if (test_bit(In_sync, &conf->mirrors[mirror].rdev->flags) && + !test_bit(Faulty, &conf->mirrors[mirror].rdev->flags)) + set_bit(R1BIO_Uptodate, &r1_bio->state); /* Maybe we can clear some bad blocks. */ if (is_badblock(conf->mirrors[mirror].rdev, @@ -525,8 +535,17 @@ if (test_bit(WriteMostly, &rdev->flags)) { /* Don't balance among write-mostly, just * use the first as a last resort */ - if (best_disk < 0) + if (best_disk < 0) { + if (is_badblock(rdev, this_sector, sectors, + &first_bad, &bad_sectors)) { + if (first_bad < this_sector) + /* Cannot use this */ + continue; + best_good_sectors = first_bad - this_sector; + } else + best_good_sectors = sectors; best_disk = disk; + } continue; } /* This is a reasonable device to use. It might @@ -722,9 +741,22 @@ spin_lock_irq(&conf->resync_lock); if (conf->barrier) { conf->nr_waiting++; - wait_event_lock_irq(conf->wait_barrier, !conf->barrier, + /* Wait for the barrier to drop. + * However if there are already pending + * requests (preventing the barrier from + * rising completely), and the + * pre-process bio queue isn't empty, + * then don't wait, as we need to empty + * that queue to get the nr_pending + * count down. + */ + wait_event_lock_irq(conf->wait_barrier, + !conf->barrier || + (conf->nr_pending && + current->bio_list && + !bio_list_empty(current->bio_list)), conf->resync_lock, - ); + ); conf->nr_waiting--; } conf->nr_pending++; @@ -1691,8 +1723,14 @@ if (atomic_dec_and_test(&r1_bio->remaining)) { /* if we're here, all write(s) have completed, so clean up */ - md_done_sync(mddev, r1_bio->sectors, 1); - put_buf(r1_bio); + int s = r1_bio->sectors; + if (test_bit(R1BIO_MadeGood, &r1_bio->state) || + test_bit(R1BIO_WriteError, &r1_bio->state)) + reschedule_retry(r1_bio); + else { + put_buf(r1_bio); + md_done_sync(mddev, s, 1); + } } } @@ -2293,7 +2331,10 @@ /* There is nowhere to write, so all non-sync * drives must be failed - so we are finished */ - sector_t rv = max_sector - sector_nr; + sector_t rv; + if (min_bad > 0) + max_sector = sector_nr + min_bad; + rv = max_sector - sector_nr; *skipped = 1; put_buf(r1_bio); return rv; @@ -2356,9 +2397,10 @@ */ if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) { atomic_set(&r1_bio->remaining, read_targets); - for (i=0; iraid_disks; i++) { + for (i = 0; i < conf->raid_disks && read_targets; i++) { bio = r1_bio->bios[i]; if (bio->bi_end_io == end_sync_read) { + read_targets--; md_sync_acct(bio->bi_bdev, nr_sectors); generic_make_request(bio); } --- linux-3.2.0.orig/drivers/md/persistent-data/dm-btree.c +++ linux-3.2.0/drivers/md/persistent-data/dm-btree.c @@ -38,7 +38,7 @@ /*----------------------------------------------------------------*/ /* makes the assumption that no two keys are the same. */ -static int bsearch(struct node *n, uint64_t key, int want_hi) +static int bsearch(struct btree_node *n, uint64_t key, int want_hi) { int lo = -1, hi = le32_to_cpu(n->header.nr_entries); @@ -58,12 +58,12 @@ return want_hi ? hi : lo; } -int lower_bound(struct node *n, uint64_t key) +int lower_bound(struct btree_node *n, uint64_t key) { return bsearch(n, key, 0); } -void inc_children(struct dm_transaction_manager *tm, struct node *n, +void inc_children(struct dm_transaction_manager *tm, struct btree_node *n, struct dm_btree_value_type *vt) { unsigned i; @@ -78,7 +78,7 @@ value_ptr(n, i, vt->size)); } -static int insert_at(size_t value_size, struct node *node, unsigned index, +static int insert_at(size_t value_size, struct btree_node *node, unsigned index, uint64_t key, void *value) __dm_written_to_disk(value) { @@ -123,7 +123,7 @@ { int r; struct dm_block *b; - struct node *n; + struct btree_node *n; size_t block_size; uint32_t max_entries; @@ -155,7 +155,7 @@ #define MAX_SPINE_DEPTH 64 struct frame { struct dm_block *b; - struct node *n; + struct btree_node *n; unsigned level; unsigned nr_children; unsigned current_child; @@ -296,7 +296,7 @@ /*----------------------------------------------------------------*/ static int btree_lookup_raw(struct ro_spine *s, dm_block_t block, uint64_t key, - int (*search_fn)(struct node *, uint64_t), + int (*search_fn)(struct btree_node *, uint64_t), uint64_t *result_key, void *v, size_t value_size) { int i, r; @@ -407,7 +407,7 @@ size_t size; unsigned nr_left, nr_right; struct dm_block *left, *right, *parent; - struct node *ln, *rn, *pn; + struct btree_node *ln, *rn, *pn; __le64 location; left = shadow_current(s); @@ -492,7 +492,7 @@ size_t size; unsigned nr_left, nr_right; struct dm_block *left, *right, *new_parent; - struct node *pn, *ln, *rn; + struct btree_node *pn, *ln, *rn; __le64 val; new_parent = shadow_current(s); @@ -577,7 +577,7 @@ uint64_t key, unsigned *index) { int r, i = *index, top = 1; - struct node *node; + struct btree_node *node; for (;;) { r = shadow_step(s, root, vt); @@ -644,7 +644,7 @@ unsigned level, index = -1, last_level = info->levels - 1; dm_block_t block = root; struct shadow_spine spine; - struct node *n; + struct btree_node *n; struct dm_btree_value_type le64_type; le64_type.context = NULL; --- linux-3.2.0.orig/drivers/md/persistent-data/dm-btree-spine.c +++ linux-3.2.0/drivers/md/persistent-data/dm-btree-spine.c @@ -23,7 +23,7 @@ struct dm_block *b, size_t block_size) { - struct node *n = dm_block_data(b); + struct btree_node *n = dm_block_data(b); struct node_header *h = &n->header; h->blocknr = cpu_to_le64(dm_block_location(b)); @@ -38,7 +38,7 @@ struct dm_block *b, size_t block_size) { - struct node *n = dm_block_data(b); + struct btree_node *n = dm_block_data(b); struct node_header *h = &n->header; size_t value_size; __le32 csum_disk; @@ -164,7 +164,7 @@ return r; } -struct node *ro_node(struct ro_spine *s) +struct btree_node *ro_node(struct ro_spine *s) { struct dm_block *block; --- linux-3.2.0.orig/drivers/md/persistent-data/dm-space-map-checker.c +++ linux-3.2.0/drivers/md/persistent-data/dm-space-map-checker.c @@ -8,6 +8,7 @@ #include #include +#include #ifdef CONFIG_DM_DEBUG_SPACE_MAPS @@ -89,13 +90,23 @@ ca->nr = nr_blocks; ca->nr_free = nr_blocks; - ca->counts = kzalloc(sizeof(*ca->counts) * nr_blocks, GFP_KERNEL); - if (!ca->counts) - return -ENOMEM; + + if (!nr_blocks) + ca->counts = NULL; + else { + ca->counts = vzalloc(sizeof(*ca->counts) * nr_blocks); + if (!ca->counts) + return -ENOMEM; + } return 0; } +static void ca_destroy(struct count_array *ca) +{ + vfree(ca->counts); +} + static int ca_load(struct count_array *ca, struct dm_space_map *sm) { int r; @@ -126,12 +137,14 @@ static int ca_extend(struct count_array *ca, dm_block_t extra_blocks) { dm_block_t nr_blocks = ca->nr + extra_blocks; - uint32_t *counts = kzalloc(sizeof(*counts) * nr_blocks, GFP_KERNEL); + uint32_t *counts = vzalloc(sizeof(*counts) * nr_blocks); if (!counts) return -ENOMEM; - memcpy(counts, ca->counts, sizeof(*counts) * ca->nr); - kfree(ca->counts); + if (ca->counts) { + memcpy(counts, ca->counts, sizeof(*counts) * ca->nr); + ca_destroy(ca); + } ca->nr = nr_blocks; ca->nr_free += extra_blocks; ca->counts = counts; @@ -151,11 +164,6 @@ return 0; } -static void ca_destroy(struct count_array *ca) -{ - kfree(ca->counts); -} - /*----------------------------------------------------------------*/ struct sm_checker { @@ -343,25 +351,25 @@ int r; struct sm_checker *smc; - if (!sm) - return NULL; + if (IS_ERR_OR_NULL(sm)) + return ERR_PTR(-EINVAL); smc = kmalloc(sizeof(*smc), GFP_KERNEL); if (!smc) - return NULL; + return ERR_PTR(-ENOMEM); memcpy(&smc->sm, &ops_, sizeof(smc->sm)); r = ca_create(&smc->old_counts, sm); if (r) { kfree(smc); - return NULL; + return ERR_PTR(r); } r = ca_create(&smc->counts, sm); if (r) { ca_destroy(&smc->old_counts); kfree(smc); - return NULL; + return ERR_PTR(r); } smc->real_sm = sm; @@ -371,7 +379,7 @@ ca_destroy(&smc->counts); ca_destroy(&smc->old_counts); kfree(smc); - return NULL; + return ERR_PTR(r); } r = ca_commit(&smc->old_counts, &smc->counts); @@ -379,7 +387,7 @@ ca_destroy(&smc->counts); ca_destroy(&smc->old_counts); kfree(smc); - return NULL; + return ERR_PTR(r); } return &smc->sm; @@ -391,25 +399,25 @@ int r; struct sm_checker *smc; - if (!sm) - return NULL; + if (IS_ERR_OR_NULL(sm)) + return ERR_PTR(-EINVAL); smc = kmalloc(sizeof(*smc), GFP_KERNEL); if (!smc) - return NULL; + return ERR_PTR(-ENOMEM); memcpy(&smc->sm, &ops_, sizeof(smc->sm)); r = ca_create(&smc->old_counts, sm); if (r) { kfree(smc); - return NULL; + return ERR_PTR(r); } r = ca_create(&smc->counts, sm); if (r) { ca_destroy(&smc->old_counts); kfree(smc); - return NULL; + return ERR_PTR(r); } smc->real_sm = sm; --- linux-3.2.0.orig/drivers/md/persistent-data/dm-btree-remove.c +++ linux-3.2.0/drivers/md/persistent-data/dm-btree-remove.c @@ -53,7 +53,7 @@ /* * Some little utilities for moving node data around. */ -static void node_shift(struct node *n, int shift) +static void node_shift(struct btree_node *n, int shift) { uint32_t nr_entries = le32_to_cpu(n->header.nr_entries); uint32_t value_size = le32_to_cpu(n->header.value_size); @@ -79,7 +79,7 @@ } } -static void node_copy(struct node *left, struct node *right, int shift) +static void node_copy(struct btree_node *left, struct btree_node *right, int shift) { uint32_t nr_left = le32_to_cpu(left->header.nr_entries); uint32_t value_size = le32_to_cpu(left->header.value_size); @@ -108,7 +108,7 @@ /* * Delete a specific entry from a leaf node. */ -static void delete_at(struct node *n, unsigned index) +static void delete_at(struct btree_node *n, unsigned index) { unsigned nr_entries = le32_to_cpu(n->header.nr_entries); unsigned nr_to_copy = nr_entries - (index + 1); @@ -128,35 +128,19 @@ n->header.nr_entries = cpu_to_le32(nr_entries - 1); } -static unsigned del_threshold(struct node *n) +static unsigned merge_threshold(struct btree_node *n) { return le32_to_cpu(n->header.max_entries) / 3; } -static unsigned merge_threshold(struct node *n) -{ - /* - * The extra one is because we know we're potentially going to - * delete an entry. - */ - return 2 * (le32_to_cpu(n->header.max_entries) / 3) + 1; -} - struct child { unsigned index; struct dm_block *block; - struct node *n; + struct btree_node *n; }; -static struct dm_btree_value_type le64_type = { - .context = NULL, - .size = sizeof(__le64), - .inc = NULL, - .dec = NULL, - .equal = NULL -}; - -static int init_child(struct dm_btree_info *info, struct node *parent, +static int init_child(struct dm_btree_info *info, struct dm_btree_value_type *vt, + struct btree_node *parent, unsigned index, struct child *result) { int r, inc; @@ -173,7 +157,7 @@ result->n = dm_block_data(result->block); if (inc) - inc_children(info->tm, result->n, &le64_type); + inc_children(info->tm, result->n, vt); *((__le64 *) value_ptr(parent, index, sizeof(__le64))) = cpu_to_le64(dm_block_location(result->block)); @@ -186,8 +170,17 @@ return dm_tm_unlock(info->tm, c->block); } -static void shift(struct node *left, struct node *right, int count) +static void shift(struct btree_node *left, struct btree_node *right, int count) { + uint32_t nr_left = le32_to_cpu(left->header.nr_entries); + uint32_t nr_right = le32_to_cpu(right->header.nr_entries); + uint32_t max_entries = le32_to_cpu(left->header.max_entries); + uint32_t r_max_entries = le32_to_cpu(right->header.max_entries); + + BUG_ON(max_entries != r_max_entries); + BUG_ON(nr_left - count > max_entries); + BUG_ON(nr_right + count > max_entries); + if (!count) return; @@ -199,24 +192,20 @@ node_shift(right, count); } - left->header.nr_entries = - cpu_to_le32(le32_to_cpu(left->header.nr_entries) - count); - BUG_ON(le32_to_cpu(left->header.nr_entries) > le32_to_cpu(left->header.max_entries)); - - right->header.nr_entries = - cpu_to_le32(le32_to_cpu(right->header.nr_entries) + count); - BUG_ON(le32_to_cpu(right->header.nr_entries) > le32_to_cpu(right->header.max_entries)); + left->header.nr_entries = cpu_to_le32(nr_left - count); + right->header.nr_entries = cpu_to_le32(nr_right + count); } -static void __rebalance2(struct dm_btree_info *info, struct node *parent, +static void __rebalance2(struct dm_btree_info *info, struct btree_node *parent, struct child *l, struct child *r) { - struct node *left = l->n; - struct node *right = r->n; + struct btree_node *left = l->n; + struct btree_node *right = r->n; uint32_t nr_left = le32_to_cpu(left->header.nr_entries); uint32_t nr_right = le32_to_cpu(right->header.nr_entries); + unsigned threshold = 2 * merge_threshold(left) + 1; - if (nr_left + nr_right <= merge_threshold(left)) { + if (nr_left + nr_right < threshold) { /* * Merge */ @@ -234,28 +223,25 @@ * Rebalance. */ unsigned target_left = (nr_left + nr_right) / 2; - unsigned shift_ = nr_left - target_left; - BUG_ON(le32_to_cpu(left->header.max_entries) <= nr_left - shift_); - BUG_ON(le32_to_cpu(right->header.max_entries) <= nr_right + shift_); shift(left, right, nr_left - target_left); *key_ptr(parent, r->index) = right->keys[0]; } } static int rebalance2(struct shadow_spine *s, struct dm_btree_info *info, - unsigned left_index) + struct dm_btree_value_type *vt, unsigned left_index) { int r; - struct node *parent; + struct btree_node *parent; struct child left, right; parent = dm_block_data(shadow_current(s)); - r = init_child(info, parent, left_index, &left); + r = init_child(info, vt, parent, left_index, &left); if (r) return r; - r = init_child(info, parent, left_index + 1, &right); + r = init_child(info, vt, parent, left_index + 1, &right); if (r) { exit_child(info, &left); return r; @@ -272,95 +258,129 @@ return exit_child(info, &right); } -static void __rebalance3(struct dm_btree_info *info, struct node *parent, - struct child *l, struct child *c, struct child *r) +/* + * We dump as many entries from center as possible into left, then the rest + * in right, then rebalance2. This wastes some cpu, but I want something + * simple atm. + */ +static void delete_center_node(struct dm_btree_info *info, struct btree_node *parent, + struct child *l, struct child *c, struct child *r, + struct btree_node *left, struct btree_node *center, struct btree_node *right, + uint32_t nr_left, uint32_t nr_center, uint32_t nr_right) { - struct node *left = l->n; - struct node *center = c->n; - struct node *right = r->n; - - uint32_t nr_left = le32_to_cpu(left->header.nr_entries); - uint32_t nr_center = le32_to_cpu(center->header.nr_entries); - uint32_t nr_right = le32_to_cpu(right->header.nr_entries); uint32_t max_entries = le32_to_cpu(left->header.max_entries); + unsigned shift = min(max_entries - nr_left, nr_center); - unsigned target; + BUG_ON(nr_left + shift > max_entries); + node_copy(left, center, -shift); + left->header.nr_entries = cpu_to_le32(nr_left + shift); + + if (shift != nr_center) { + shift = nr_center - shift; + BUG_ON((nr_right + shift) > max_entries); + node_shift(right, shift); + node_copy(center, right, shift); + right->header.nr_entries = cpu_to_le32(nr_right + shift); + } + *key_ptr(parent, r->index) = right->keys[0]; - BUG_ON(left->header.max_entries != center->header.max_entries); - BUG_ON(center->header.max_entries != right->header.max_entries); + delete_at(parent, c->index); + r->index--; - if (((nr_left + nr_center + nr_right) / 2) < merge_threshold(center)) { - /* - * Delete center node: - * - * We dump as many entries from center as possible into - * left, then the rest in right, then rebalance2. This - * wastes some cpu, but I want something simple atm. - */ - unsigned shift = min(max_entries - nr_left, nr_center); + dm_tm_dec(info->tm, dm_block_location(c->block)); + __rebalance2(info, parent, l, r); +} - BUG_ON(nr_left + shift > max_entries); - node_copy(left, center, -shift); - left->header.nr_entries = cpu_to_le32(nr_left + shift); - - if (shift != nr_center) { - shift = nr_center - shift; - BUG_ON((nr_right + shift) >= max_entries); - node_shift(right, shift); - node_copy(center, right, shift); - right->header.nr_entries = cpu_to_le32(nr_right + shift); - } - *key_ptr(parent, r->index) = right->keys[0]; +/* + * Redistributes entries among 3 sibling nodes. + */ +static void redistribute3(struct dm_btree_info *info, struct btree_node *parent, + struct child *l, struct child *c, struct child *r, + struct btree_node *left, struct btree_node *center, struct btree_node *right, + uint32_t nr_left, uint32_t nr_center, uint32_t nr_right) +{ + int s; + uint32_t max_entries = le32_to_cpu(left->header.max_entries); + unsigned target = (nr_left + nr_center + nr_right) / 3; + BUG_ON(target > max_entries); - delete_at(parent, c->index); - r->index--; + if (nr_left < nr_right) { + s = nr_left - target; - dm_tm_dec(info->tm, dm_block_location(c->block)); - __rebalance2(info, parent, l, r); + if (s < 0 && nr_center < -s) { + /* not enough in central node */ + shift(left, center, nr_center); + s = nr_center - target; + shift(left, right, s); + nr_right += s; + } else + shift(left, center, s); - return; - } + shift(center, right, target - nr_right); - /* - * Rebalance - */ - target = (nr_left + nr_center + nr_right) / 3; - BUG_ON(target > max_entries); + } else { + s = target - nr_right; + if (s > 0 && nr_center < s) { + /* not enough in central node */ + shift(center, right, nr_center); + s = target - nr_center; + shift(left, right, s); + nr_left -= s; + } else + shift(center, right, s); - /* - * Adjust the left node - */ - shift(left, center, nr_left - target); + shift(left, center, nr_left - target); + } - /* - * Adjust the right node - */ - shift(center, right, target - nr_right); *key_ptr(parent, c->index) = center->keys[0]; *key_ptr(parent, r->index) = right->keys[0]; } +static void __rebalance3(struct dm_btree_info *info, struct btree_node *parent, + struct child *l, struct child *c, struct child *r) +{ + struct btree_node *left = l->n; + struct btree_node *center = c->n; + struct btree_node *right = r->n; + + uint32_t nr_left = le32_to_cpu(left->header.nr_entries); + uint32_t nr_center = le32_to_cpu(center->header.nr_entries); + uint32_t nr_right = le32_to_cpu(right->header.nr_entries); + + unsigned threshold = merge_threshold(left) * 4 + 1; + + BUG_ON(left->header.max_entries != center->header.max_entries); + BUG_ON(center->header.max_entries != right->header.max_entries); + + if ((nr_left + nr_center + nr_right) < threshold) + delete_center_node(info, parent, l, c, r, left, center, right, + nr_left, nr_center, nr_right); + else + redistribute3(info, parent, l, c, r, left, center, right, + nr_left, nr_center, nr_right); +} + static int rebalance3(struct shadow_spine *s, struct dm_btree_info *info, - unsigned left_index) + struct dm_btree_value_type *vt, unsigned left_index) { int r; - struct node *parent = dm_block_data(shadow_current(s)); + struct btree_node *parent = dm_block_data(shadow_current(s)); struct child left, center, right; /* * FIXME: fill out an array? */ - r = init_child(info, parent, left_index, &left); + r = init_child(info, vt, parent, left_index, &left); if (r) return r; - r = init_child(info, parent, left_index + 1, ¢er); + r = init_child(info, vt, parent, left_index + 1, ¢er); if (r) { exit_child(info, &left); return r; } - r = init_child(info, parent, left_index + 2, &right); + r = init_child(info, vt, parent, left_index + 2, &right); if (r) { exit_child(info, &left); exit_child(info, ¢er); @@ -394,7 +414,7 @@ { int r; struct dm_block *block; - struct node *n; + struct btree_node *n; r = dm_tm_read_lock(tm, b, &btree_node_validator, &block); if (r) @@ -407,11 +427,12 @@ } static int rebalance_children(struct shadow_spine *s, - struct dm_btree_info *info, uint64_t key) + struct dm_btree_info *info, + struct dm_btree_value_type *vt, uint64_t key) { int i, r, has_left_sibling, has_right_sibling; uint32_t child_entries; - struct node *n; + struct btree_node *n; n = dm_block_data(shadow_current(s)); @@ -441,25 +462,22 @@ if (r) return r; - if (child_entries > del_threshold(n)) - return 0; - has_left_sibling = i > 0; has_right_sibling = i < (le32_to_cpu(n->header.nr_entries) - 1); if (!has_left_sibling) - r = rebalance2(s, info, i); + r = rebalance2(s, info, vt, i); else if (!has_right_sibling) - r = rebalance2(s, info, i - 1); + r = rebalance2(s, info, vt, i - 1); else - r = rebalance3(s, info, i - 1); + r = rebalance3(s, info, vt, i - 1); return r; } -static int do_leaf(struct node *n, uint64_t key, unsigned *index) +static int do_leaf(struct btree_node *n, uint64_t key, unsigned *index) { int i = lower_bound(n, key); @@ -482,7 +500,7 @@ uint64_t key, unsigned *index) { int i = *index, r; - struct node *n; + struct btree_node *n; for (;;) { r = shadow_step(s, root, vt); @@ -505,7 +523,7 @@ if (le32_to_cpu(n->header.flags) & LEAF_NODE) return do_leaf(n, key, index); - r = rebalance_children(s, info, key); + r = rebalance_children(s, info, vt, key); if (r) break; @@ -526,13 +544,21 @@ return r; } +static struct dm_btree_value_type le64_type = { + .context = NULL, + .size = sizeof(__le64), + .inc = NULL, + .dec = NULL, + .equal = NULL +}; + int dm_btree_remove(struct dm_btree_info *info, dm_block_t root, uint64_t *keys, dm_block_t *new_root) { unsigned level, last_level = info->levels - 1; int index = 0, r = 0; struct shadow_spine spine; - struct node *n; + struct btree_node *n; init_shadow_spine(&spine, info); for (level = 0; level < info->levels; level++) { --- linux-3.2.0.orig/drivers/md/persistent-data/dm-transaction-manager.c +++ linux-3.2.0/drivers/md/persistent-data/dm-transaction-manager.c @@ -138,6 +138,9 @@ void dm_tm_destroy(struct dm_transaction_manager *tm) { + if (!tm->is_clone) + wipe_shadow_table(tm); + kfree(tm); } EXPORT_SYMBOL_GPL(dm_tm_destroy); @@ -342,8 +345,10 @@ } *sm = dm_sm_checker_create(inner); - if (!*sm) + if (IS_ERR(*sm)) { + r = PTR_ERR(*sm); goto bad2; + } } else { r = dm_bm_write_lock(dm_tm_get_bm(*tm), sb_location, @@ -362,8 +367,10 @@ } *sm = dm_sm_checker_create(inner); - if (!*sm) + if (IS_ERR(*sm)) { + r = PTR_ERR(*sm); goto bad2; + } } return 0; --- linux-3.2.0.orig/drivers/md/persistent-data/dm-btree-internal.h +++ linux-3.2.0/drivers/md/persistent-data/dm-btree-internal.h @@ -36,13 +36,13 @@ __le32 padding; } __packed; -struct node { +struct btree_node { struct node_header header; __le64 keys[0]; } __packed; -void inc_children(struct dm_transaction_manager *tm, struct node *n, +void inc_children(struct dm_transaction_manager *tm, struct btree_node *n, struct dm_btree_value_type *vt); int new_block(struct dm_btree_info *info, struct dm_block **result); @@ -64,7 +64,7 @@ void init_ro_spine(struct ro_spine *s, struct dm_btree_info *info); int exit_ro_spine(struct ro_spine *s); int ro_step(struct ro_spine *s, dm_block_t new_child); -struct node *ro_node(struct ro_spine *s); +struct btree_node *ro_node(struct ro_spine *s); struct shadow_spine { struct dm_btree_info *info; @@ -98,12 +98,12 @@ /* * Some inlines. */ -static inline __le64 *key_ptr(struct node *n, uint32_t index) +static inline __le64 *key_ptr(struct btree_node *n, uint32_t index) { return n->keys + index; } -static inline void *value_base(struct node *n) +static inline void *value_base(struct btree_node *n) { return &n->keys[le32_to_cpu(n->header.max_entries)]; } @@ -111,7 +111,7 @@ /* * FIXME: Now that value size is stored in node we don't need the third parm. */ -static inline void *value_ptr(struct node *n, uint32_t index, size_t value_size) +static inline void *value_ptr(struct btree_node *n, uint32_t index, size_t value_size) { BUG_ON(value_size != le32_to_cpu(n->header.value_size)); return value_base(n) + (value_size * index); @@ -120,7 +120,7 @@ /* * Assumes the values are suitably-aligned and converts to core format. */ -static inline uint64_t value64(struct node *n, uint32_t index) +static inline uint64_t value64(struct btree_node *n, uint32_t index) { __le64 *values_le = value_base(n); @@ -130,7 +130,7 @@ /* * Searching for a key within a single node. */ -int lower_bound(struct node *n, uint64_t key); +int lower_bound(struct btree_node *n, uint64_t key); extern struct dm_block_validator btree_node_validator; --- linux-3.2.0.orig/drivers/md/persistent-data/dm-space-map-disk.c +++ linux-3.2.0/drivers/md/persistent-data/dm-space-map-disk.c @@ -290,7 +290,16 @@ dm_block_t nr_blocks) { struct dm_space_map *sm = dm_sm_disk_create_real(tm, nr_blocks); - return dm_sm_checker_create_fresh(sm); + struct dm_space_map *smc; + + if (IS_ERR_OR_NULL(sm)) + return sm; + + smc = dm_sm_checker_create_fresh(sm); + if (IS_ERR(smc)) + dm_sm_destroy(sm); + + return smc; } EXPORT_SYMBOL_GPL(dm_sm_disk_create); --- linux-3.2.0.orig/drivers/firewire/ohci.c +++ linux-3.2.0/drivers/firewire/ohci.c @@ -263,6 +263,7 @@ static char ohci_driver_name[] = KBUILD_MODNAME; #define PCI_DEVICE_ID_AGERE_FW643 0x5901 +#define PCI_DEVICE_ID_CREATIVE_SB1394 0x4001 #define PCI_DEVICE_ID_JMICRON_JMB38X_FW 0x2380 #define PCI_DEVICE_ID_TI_TSB12LV22 0x8009 #define PCI_DEVICE_ID_TI_TSB12LV26 0x8020 @@ -289,6 +290,9 @@ {PCI_VENDOR_ID_ATT, PCI_DEVICE_ID_AGERE_FW643, 6, QUIRK_NO_MSI}, + {PCI_VENDOR_ID_CREATIVE, PCI_DEVICE_ID_CREATIVE_SB1394, PCI_ANY_ID, + QUIRK_RESET_PACKET}, + {PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB38X_FW, PCI_ANY_ID, QUIRK_NO_MSI}, @@ -299,7 +303,7 @@ QUIRK_NO_MSI}, {PCI_VENDOR_ID_RICOH, PCI_ANY_ID, PCI_ANY_ID, - QUIRK_CYCLE_TIMER}, + QUIRK_CYCLE_TIMER | QUIRK_NO_MSI}, {PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_TSB12LV22, PCI_ANY_ID, QUIRK_CYCLE_TIMER | QUIRK_RESET_PACKET | QUIRK_NO_1394A}, @@ -2744,7 +2748,7 @@ container_of(context, struct iso_context, context); u32 buffer_dma; - if (!last->transfer_status) + if (last->res_count != 0) /* Descriptor(s) not done yet, stop iteration */ return 0; @@ -2758,8 +2762,7 @@ if (le16_to_cpu(last->control) & DESCRIPTOR_IRQ_ALWAYS) ctx->base.callback.mc(&ctx->base, le32_to_cpu(last->data_address) + - le16_to_cpu(last->req_count) - - le16_to_cpu(last->res_count), + le16_to_cpu(last->req_count), ctx->base.callback_data); return 1; --- linux-3.2.0.orig/drivers/firewire/net.c +++ linux-3.2.0/drivers/firewire/net.c @@ -860,8 +860,8 @@ if (specifier_id == IANA_SPECIFIER_ID && ver == RFC2734_SW_VERSION) { buf_ptr += 2; length -= IEEE1394_GASP_HDR_SIZE; - fwnet_incoming_packet(dev, buf_ptr, length, - source_node_id, -1, true); + fwnet_incoming_packet(dev, buf_ptr, length, source_node_id, + context->card->generation, true); } packet.payload_length = dev->rcv_buffer_size; @@ -956,7 +956,12 @@ break; } - skb_pull(skb, ptask->max_payload); + if (ptask->dest_node == IEEE1394_ALL_NODES) { + skb_pull(skb, + ptask->max_payload + IEEE1394_GASP_HDR_SIZE); + } else { + skb_pull(skb, ptask->max_payload); + } if (ptask->outstanding_pkts > 1) { fwnet_make_sf_hdr(&ptask->hdr, RFC2374_HDR_INTFRAG, dg_size, fg_off, datagram_label); @@ -1059,7 +1064,7 @@ smp_rmb(); node_id = dev->card->node_id; - p = skb_push(ptask->skb, 8); + p = skb_push(ptask->skb, IEEE1394_GASP_HDR_SIZE); put_unaligned_be32(node_id << 16 | IANA_SPECIFIER_ID >> 8, p); put_unaligned_be32((IANA_SPECIFIER_ID & 0xff) << 24 | RFC2734_SW_VERSION, &p[4]); --- linux-3.2.0.orig/drivers/firewire/core-device.c +++ linux-3.2.0/drivers/firewire/core-device.c @@ -995,6 +995,10 @@ ret = idr_pre_get(&fw_device_idr, GFP_KERNEL) ? idr_get_new(&fw_device_idr, device, &minor) : -ENOMEM; + if (minor >= 1 << MINORBITS) { + idr_remove(&fw_device_idr, minor); + minor = -ENOSPC; + } up_write(&fw_device_rwsem); if (ret < 0) --- linux-3.2.0.orig/drivers/firewire/core-cdev.c +++ linux-3.2.0/drivers/firewire/core-cdev.c @@ -471,8 +471,8 @@ client->bus_reset_closure = a->bus_reset_closure; if (a->bus_reset != 0) { fill_bus_reset_event(&bus_reset, client); - ret = copy_to_user(u64_to_uptr(a->bus_reset), - &bus_reset, sizeof(bus_reset)); + /* unaligned size of bus_reset is 36 bytes */ + ret = copy_to_user(u64_to_uptr(a->bus_reset), &bus_reset, 36); } if (ret == 0 && list_empty(&client->link)) list_add_tail(&client->link, &client->device->client_list); --- linux-3.2.0.orig/drivers/hwmon/applesmc.c +++ linux-3.2.0/drivers/hwmon/applesmc.c @@ -215,7 +215,7 @@ int i; if (send_command(cmd) || send_argument(key)) { - pr_warn("%s: read arg fail\n", key); + pr_warn("%.4s: read arg fail\n", key); return -EIO; } @@ -223,7 +223,7 @@ for (i = 0; i < len; i++) { if (__wait_status(0x05)) { - pr_warn("%s: read data fail\n", key); + pr_warn("%.4s: read data fail\n", key); return -EIO; } buffer[i] = inb(APPLESMC_DATA_PORT); --- linux-3.2.0.orig/drivers/hwmon/lineage-pem.c +++ linux-3.2.0/drivers/hwmon/lineage-pem.c @@ -421,6 +421,7 @@ &sensor_dev_attr_in2_input.dev_attr.attr, &sensor_dev_attr_curr1_input.dev_attr.attr, &sensor_dev_attr_power1_input.dev_attr.attr, + NULL }; static const struct attribute_group pem_input_group = { @@ -431,6 +432,7 @@ &sensor_dev_attr_fan1_input.dev_attr.attr, &sensor_dev_attr_fan2_input.dev_attr.attr, &sensor_dev_attr_fan3_input.dev_attr.attr, + NULL }; static const struct attribute_group pem_fan_group = { --- linux-3.2.0.orig/drivers/hwmon/Kconfig +++ linux-3.2.0/drivers/hwmon/Kconfig @@ -253,7 +253,8 @@ If you say yes here you get support for the temperature sensor(s) inside your CPU. Supported are later revisions of the AMD Family 10h and all revisions of the AMD Family 11h, - 12h (Llano), 14h (Brazos) and 15h (Bulldozer) microarchitectures. + 12h (Llano), 14h (Brazos) and 15h (Bulldozer/Trinity) + microarchitectures. This driver can also be built as a module. If so, the module will be called k10temp. @@ -497,8 +498,9 @@ If you say yes here, you get support for JEDEC JC42.4 compliant temperature sensors, which are used on many DDR3 memory modules for mobile devices and servers. Support will include, but not be limited - to, ADT7408, CAT34TS02, CAT6095, MAX6604, MCP9805, MCP98242, MCP98243, - MCP9843, SE97, SE98, STTS424(E), TSE2002B3, and TS3000B3. + to, ADT7408, AT30TS00, CAT34TS02, CAT6095, MAX6604, MCP9804, MCP9805, + MCP98242, MCP98243, MCP9843, SE97, SE98, STTS424(E), STTS2002, + STTS3000, TSE2002B3, TSE2002GB2, TS3000B3, and TS3000GB2. This driver can also be built as a module. If so, the module will be called jc42. --- linux-3.2.0.orig/drivers/hwmon/jc42.c +++ linux-3.2.0/drivers/hwmon/jc42.c @@ -64,6 +64,7 @@ /* Manufacturer IDs */ #define ADT_MANID 0x11d4 /* Analog Devices */ +#define ATMEL_MANID 0x001f /* Atmel */ #define MAX_MANID 0x004d /* Maxim */ #define IDT_MANID 0x00b3 /* IDT */ #define MCP_MANID 0x0054 /* Microchip */ @@ -77,15 +78,25 @@ #define ADT7408_DEVID 0x0801 #define ADT7408_DEVID_MASK 0xffff +/* Atmel */ +#define AT30TS00_DEVID 0x8201 +#define AT30TS00_DEVID_MASK 0xffff + /* IDT */ #define TS3000B3_DEVID 0x2903 /* Also matches TSE2002B3 */ #define TS3000B3_DEVID_MASK 0xffff +#define TS3000GB2_DEVID 0x2912 /* Also matches TSE2002GB2 */ +#define TS3000GB2_DEVID_MASK 0xffff + /* Maxim */ #define MAX6604_DEVID 0x3e00 #define MAX6604_DEVID_MASK 0xffff /* Microchip */ +#define MCP9804_DEVID 0x0200 +#define MCP9804_DEVID_MASK 0xfffc + #define MCP98242_DEVID 0x2000 #define MCP98242_DEVID_MASK 0xfffc @@ -113,6 +124,12 @@ #define STTS424E_DEVID 0x0000 #define STTS424E_DEVID_MASK 0xfffe +#define STTS2002_DEVID 0x0300 +#define STTS2002_DEVID_MASK 0xffff + +#define STTS3000_DEVID 0x0200 +#define STTS3000_DEVID_MASK 0xffff + static u16 jc42_hysteresis[] = { 0, 1500, 3000, 6000 }; struct jc42_chips { @@ -123,8 +140,11 @@ static struct jc42_chips jc42_chips[] = { { ADT_MANID, ADT7408_DEVID, ADT7408_DEVID_MASK }, + { ATMEL_MANID, AT30TS00_DEVID, AT30TS00_DEVID_MASK }, { IDT_MANID, TS3000B3_DEVID, TS3000B3_DEVID_MASK }, + { IDT_MANID, TS3000GB2_DEVID, TS3000GB2_DEVID_MASK }, { MAX_MANID, MAX6604_DEVID, MAX6604_DEVID_MASK }, + { MCP_MANID, MCP9804_DEVID, MCP9804_DEVID_MASK }, { MCP_MANID, MCP98242_DEVID, MCP98242_DEVID_MASK }, { MCP_MANID, MCP98243_DEVID, MCP98243_DEVID_MASK }, { MCP_MANID, MCP9843_DEVID, MCP9843_DEVID_MASK }, @@ -133,6 +153,8 @@ { NXP_MANID, SE98_DEVID, SE98_DEVID_MASK }, { STM_MANID, STTS424_DEVID, STTS424_DEVID_MASK }, { STM_MANID, STTS424E_DEVID, STTS424E_DEVID_MASK }, + { STM_MANID, STTS2002_DEVID, STTS2002_DEVID_MASK }, + { STM_MANID, STTS3000_DEVID, STTS3000_DEVID_MASK }, }; /* Each client has this additional data */ @@ -159,10 +181,12 @@ static const struct i2c_device_id jc42_id[] = { { "adt7408", 0 }, + { "at30ts00", 0 }, { "cat94ts02", 0 }, { "cat6095", 0 }, { "jc42", 0 }, { "max6604", 0 }, + { "mcp9804", 0 }, { "mcp9805", 0 }, { "mcp98242", 0 }, { "mcp98243", 0 }, @@ -171,8 +195,10 @@ { "se97b", 0 }, { "se98", 0 }, { "stts424", 0 }, - { "tse2002b3", 0 }, - { "ts3000b3", 0 }, + { "stts2002", 0 }, + { "stts3000", 0 }, + { "tse2002", 0 }, + { "ts3000", 0 }, { } }; MODULE_DEVICE_TABLE(i2c, jc42_id); --- linux-3.2.0.orig/drivers/hwmon/sht15.c +++ linux-3.2.0/drivers/hwmon/sht15.c @@ -883,7 +883,7 @@ static int __devinit sht15_probe(struct platform_device *pdev) { - int ret = 0; + int ret; struct sht15_data *data = kzalloc(sizeof(*data), GFP_KERNEL); u8 status = 0; @@ -901,6 +901,7 @@ init_waitqueue_head(&data->wait_queue); if (pdev->dev.platform_data == NULL) { + ret = -EINVAL; dev_err(&pdev->dev, "no platform data supplied\n"); goto err_free_data; } @@ -925,7 +926,13 @@ if (voltage) data->supply_uV = voltage; - regulator_enable(data->reg); + ret = regulator_enable(data->reg); + if (ret != 0) { + dev_err(&pdev->dev, + "failed to enable regulator: %d\n", ret); + goto err_free_data; + } + /* * Setup a notifier block to update this if another device * causes the voltage to change --- linux-3.2.0.orig/drivers/hwmon/abituguru.c +++ linux-3.2.0/drivers/hwmon/abituguru.c @@ -1280,14 +1280,18 @@ pr_info("found Abit uGuru\n"); /* Register sysfs hooks */ - for (i = 0; i < sysfs_attr_i; i++) - if (device_create_file(&pdev->dev, - &data->sysfs_attr[i].dev_attr)) + for (i = 0; i < sysfs_attr_i; i++) { + res = device_create_file(&pdev->dev, + &data->sysfs_attr[i].dev_attr); + if (res) goto abituguru_probe_error; - for (i = 0; i < ARRAY_SIZE(abituguru_sysfs_attr); i++) - if (device_create_file(&pdev->dev, - &abituguru_sysfs_attr[i].dev_attr)) + } + for (i = 0; i < ARRAY_SIZE(abituguru_sysfs_attr); i++) { + res = device_create_file(&pdev->dev, + &abituguru_sysfs_attr[i].dev_attr); + if (res) goto abituguru_probe_error; + } data->hwmon_dev = hwmon_device_register(&pdev->dev); if (!IS_ERR(data->hwmon_dev)) --- linux-3.2.0.orig/drivers/hwmon/twl4030-madc-hwmon.c +++ linux-3.2.0/drivers/hwmon/twl4030-madc-hwmon.c @@ -44,12 +44,13 @@ struct device_attribute *devattr, char *buf) { struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); - struct twl4030_madc_request req; + struct twl4030_madc_request req = { + .channels = 1 << attr->index, + .method = TWL4030_MADC_SW2, + .type = TWL4030_MADC_WAIT, + }; long val; - req.channels = (1 << attr->index); - req.method = TWL4030_MADC_SW2; - req.func_cb = NULL; val = twl4030_madc_conversion(&req); if (val < 0) return val; --- linux-3.2.0.orig/drivers/hwmon/asus_atk0110.c +++ linux-3.2.0/drivers/hwmon/asus_atk0110.c @@ -34,6 +34,12 @@ .matches = { DMI_MATCH(DMI_BOARD_NAME, "SABERTOOTH X58") } + }, { + /* Old interface reads the same sensor for fan0 and fan1 */ + .ident = "Asus M5A78L", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "M5A78L") + } }, { } }; --- linux-3.2.0.orig/drivers/hwmon/lm73.c +++ linux-3.2.0/drivers/hwmon/lm73.c @@ -49,6 +49,7 @@ struct i2c_client *client = to_i2c_client(dev); long temp; short value; + s32 err; int status = strict_strtol(buf, 10, &temp); if (status < 0) @@ -57,8 +58,8 @@ /* Write value */ value = (short) SENSORS_LIMIT(temp/250, (LM73_TEMP_MIN*4), (LM73_TEMP_MAX*4)) << 5; - i2c_smbus_write_word_swapped(client, attr->index, value); - return count; + err = i2c_smbus_write_word_swapped(client, attr->index, value); + return (err < 0) ? err : count; } static ssize_t show_temp(struct device *dev, struct device_attribute *da, @@ -66,11 +67,16 @@ { struct sensor_device_attribute *attr = to_sensor_dev_attr(da); struct i2c_client *client = to_i2c_client(dev); + int temp; + + s32 err = i2c_smbus_read_word_swapped(client, attr->index); + if (err < 0) + return err; + /* use integer division instead of equivalent right shift to guarantee arithmetic shift and preserve the sign */ - int temp = ((s16) (i2c_smbus_read_word_swapped(client, - attr->index))*250) / 32; - return sprintf(buf, "%d\n", temp); + temp = (((s16) err) * 250) / 32; + return scnprintf(buf, PAGE_SIZE, "%d\n", temp); } --- linux-3.2.0.orig/drivers/hwmon/ads1015.c +++ linux-3.2.0/drivers/hwmon/ads1015.c @@ -271,7 +271,7 @@ continue; err = device_create_file(&client->dev, &ads1015_in[k].dev_attr); if (err) - goto exit_free; + goto exit_remove; } data->hwmon_dev = hwmon_device_register(&client->dev); @@ -285,7 +285,6 @@ exit_remove: for (k = 0; k < ADS1015_CHANNELS; ++k) device_remove_file(&client->dev, &ads1015_in[k].dev_attr); -exit_free: kfree(data); exit: return err; --- linux-3.2.0.orig/drivers/hwmon/f75375s.c +++ linux-3.2.0/drivers/hwmon/f75375s.c @@ -159,7 +159,7 @@ static inline void f75375_write16(struct i2c_client *client, u8 reg, u16 value) { - int err = i2c_smbus_write_byte_data(client, reg, (value << 8)); + int err = i2c_smbus_write_byte_data(client, reg, (value >> 8)); if (err) return; i2c_smbus_write_byte_data(client, reg + 1, (value & 0xFF)); @@ -304,20 +304,21 @@ case 0: /* Full speed */ fanmode |= (3 << FAN_CTRL_MODE(nr)); data->pwm[nr] = 255; - f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr), - data->pwm[nr]); break; case 1: /* PWM */ fanmode |= (3 << FAN_CTRL_MODE(nr)); break; case 2: /* AUTOMATIC*/ - fanmode |= (2 << FAN_CTRL_MODE(nr)); + fanmode |= (1 << FAN_CTRL_MODE(nr)); break; case 3: /* fan speed */ break; } f75375_write8(client, F75375_REG_FAN_TIMER, fanmode); data->pwm_enable[nr] = val; + if (val == 0) + f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr), + data->pwm[nr]); return 0; } --- linux-3.2.0.orig/drivers/hwmon/k10temp.c +++ linux-3.2.0/drivers/hwmon/k10temp.c @@ -33,6 +33,9 @@ module_param(force, bool, 0444); MODULE_PARM_DESC(force, "force loading on processors with erratum 319"); +/* PCI-IDs for Northbridge devices not used anywhere else */ +#define PCI_DEVICE_ID_AMD_15H_M10H_NB_F3 0x1403 + /* CPUID function 0x80000001, ebx */ #define CPUID_PKGTYPE_MASK 0xf0000000 #define CPUID_PKGTYPE_F 0x00000000 @@ -210,6 +213,7 @@ { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_11H_NB_MISC) }, { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_CNB17H_F3) }, { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_NB_F3) }, + { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_M10H_NB_F3) }, {} }; MODULE_DEVICE_TABLE(pci, k10temp_id_table); --- linux-3.2.0.orig/drivers/hwmon/adm1021.c +++ linux-3.2.0/drivers/hwmon/adm1021.c @@ -311,26 +311,68 @@ man_id = i2c_smbus_read_byte_data(client, ADM1021_REG_MAN_ID); dev_id = i2c_smbus_read_byte_data(client, ADM1021_REG_DEV_ID); + if (man_id < 0 || dev_id < 0) + return -ENODEV; + if (man_id == 0x4d && dev_id == 0x01) type_name = "max1617a"; else if (man_id == 0x41) { if ((dev_id & 0xF0) == 0x30) type_name = "adm1023"; - else + else if ((dev_id & 0xF0) == 0x00) type_name = "adm1021"; + else + return -ENODEV; } else if (man_id == 0x49) type_name = "thmc10"; else if (man_id == 0x23) type_name = "gl523sm"; else if (man_id == 0x54) type_name = "mc1066"; - /* LM84 Mfr ID in a different place, and it has more unused bits */ - else if (conv_rate == 0x00 - && (config & 0x7F) == 0x00 - && (status & 0xAB) == 0x00) - type_name = "lm84"; - else - type_name = "max1617"; + else { + int lte, rte, lhi, rhi, llo, rlo; + + /* extra checks for LM84 and MAX1617 to avoid misdetections */ + + llo = i2c_smbus_read_byte_data(client, ADM1021_REG_THYST_R(0)); + rlo = i2c_smbus_read_byte_data(client, ADM1021_REG_THYST_R(1)); + + /* fail if any of the additional register reads failed */ + if (llo < 0 || rlo < 0) + return -ENODEV; + + lte = i2c_smbus_read_byte_data(client, ADM1021_REG_TEMP(0)); + rte = i2c_smbus_read_byte_data(client, ADM1021_REG_TEMP(1)); + lhi = i2c_smbus_read_byte_data(client, ADM1021_REG_TOS_R(0)); + rhi = i2c_smbus_read_byte_data(client, ADM1021_REG_TOS_R(1)); + + /* + * Fail for negative temperatures and negative high limits. + * This check also catches read errors on the tested registers. + */ + if ((s8)lte < 0 || (s8)rte < 0 || (s8)lhi < 0 || (s8)rhi < 0) + return -ENODEV; + + /* fail if all registers hold the same value */ + if (lte == rte && lte == lhi && lte == rhi && lte == llo + && lte == rlo) + return -ENODEV; + + /* + * LM84 Mfr ID is in a different place, + * and it has more unused bits. + */ + if (conv_rate == 0x00 + && (config & 0x7F) == 0x00 + && (status & 0xAB) == 0x00) { + type_name = "lm84"; + } else { + /* fail if low limits are larger than high limits */ + if ((s8)llo > lhi || (s8)rlo > rhi) + return -ENODEV; + type_name = "max1617"; + } + } pr_debug("adm1021: Detected chip %s at adapter %d, address 0x%02x.\n", type_name, i2c_adapter_id(adapter), client->addr); --- linux-3.2.0.orig/drivers/hwmon/fam15h_power.c +++ linux-3.2.0/drivers/hwmon/fam15h_power.c @@ -31,6 +31,9 @@ MODULE_AUTHOR("Andreas Herrmann "); MODULE_LICENSE("GPL"); +/* Family 16h Northbridge's function 4 PCI ID */ +#define PCI_DEVICE_ID_AMD_16H_NB_F4 0x1534 + /* D18F3 */ #define REG_NORTHBRIDGE_CAP 0xe8 @@ -60,15 +63,15 @@ pci_bus_read_config_dword(f4->bus, PCI_DEVFN(PCI_SLOT(f4->devfn), 5), REG_TDP_RUNNING_AVERAGE, &val); running_avg_capture = (val >> 4) & 0x3fffff; - running_avg_capture = sign_extend32(running_avg_capture, 22); - running_avg_range = val & 0xf; + running_avg_capture = sign_extend32(running_avg_capture, 21); + running_avg_range = (val & 0xf) + 1; pci_bus_read_config_dword(f4->bus, PCI_DEVFN(PCI_SLOT(f4->devfn), 5), REG_TDP_LIMIT3, &val); tdp_limit = val >> 16; - curr_pwr_watts = tdp_limit + data->base_tdp - - (s32)(running_avg_capture >> (running_avg_range + 1)); + curr_pwr_watts = (tdp_limit + data->base_tdp) << running_avg_range; + curr_pwr_watts -= running_avg_capture; curr_pwr_watts *= data->tdp_to_watts; /* @@ -78,7 +81,7 @@ * scaling factor 1/(2^16). For conversion we use * (10^6)/(2^16) = 15625/(2^10) */ - curr_pwr_watts = (curr_pwr_watts * 15625) >> 10; + curr_pwr_watts = (curr_pwr_watts * 15625) >> (10 + running_avg_range); return sprintf(buf, "%u\n", (unsigned int) curr_pwr_watts); } static DEVICE_ATTR(power1_input, S_IRUGO, show_power, NULL); @@ -122,6 +125,51 @@ return true; } +/* + * Newer BKDG versions have an updated recommendation on how to properly + * initialize the running average range (was: 0xE, now: 0x9). This avoids + * counter saturations resulting in bogus power readings. + * We correct this value ourselves to cope with older BIOSes. + */ +static const struct pci_device_id affected_device[] = { + { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_NB_F4) }, + { 0 } +}; + +static void tweak_runavg_range(struct pci_dev *pdev) +{ + u32 val; + + /* + * let this quirk apply only to the current version of the + * northbridge, since future versions may change the behavior + */ + if (!pci_match_id(affected_device, pdev)) + return; + + pci_bus_read_config_dword(pdev->bus, + PCI_DEVFN(PCI_SLOT(pdev->devfn), 5), + REG_TDP_RUNNING_AVERAGE, &val); + if ((val & 0xf) != 0xe) + return; + + val &= ~0xf; + val |= 0x9; + pci_bus_write_config_dword(pdev->bus, + PCI_DEVFN(PCI_SLOT(pdev->devfn), 5), + REG_TDP_RUNNING_AVERAGE, val); +} + +#ifdef CONFIG_PM +static int fam15h_power_resume(struct pci_dev *pdev) +{ + tweak_runavg_range(pdev); + return 0; +} +#else +#define fam15h_power_resume NULL +#endif + static void __devinit fam15h_power_init_data(struct pci_dev *f4, struct fam15h_power_data *data) { @@ -155,6 +203,13 @@ struct device *dev; int err; + /* + * though we ignore every other northbridge, we still have to + * do the tweaking on _each_ node in MCM processors as the counters + * are working hand-in-hand + */ + tweak_runavg_range(pdev); + if (!fam15h_power_is_internal_node0(pdev)) { err = -ENODEV; goto exit; @@ -204,6 +259,7 @@ static DEFINE_PCI_DEVICE_TABLE(fam15h_power_id_table) = { { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_NB_F4) }, + { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_16H_NB_F4) }, {} }; MODULE_DEVICE_TABLE(pci, fam15h_power_id_table); @@ -213,6 +269,7 @@ .id_table = fam15h_power_id_table, .probe = fam15h_power_probe, .remove = __devexit_p(fam15h_power_remove), + .resume = fam15h_power_resume, }; static int __init fam15h_power_init(void) --- linux-3.2.0.orig/drivers/hwmon/max6639.c +++ linux-3.2.0/drivers/hwmon/max6639.c @@ -72,8 +72,8 @@ static const int rpm_ranges[] = { 2000, 4000, 8000, 16000 }; -#define FAN_FROM_REG(val, div, rpm_range) ((val) == 0 ? -1 : \ - (val) == 255 ? 0 : (rpm_ranges[rpm_range] * 30) / ((div + 1) * (val))) +#define FAN_FROM_REG(val, rpm_range) ((val) == 0 || (val) == 255 ? \ + 0 : (rpm_ranges[rpm_range] * 30) / (val)) #define TEMP_LIMIT_TO_REG(val) SENSORS_LIMIT((val) / 1000, 0, 255) /* @@ -333,7 +333,7 @@ return PTR_ERR(data); return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[attr->index], - data->ppr, data->rpm_range)); + data->rpm_range)); } static ssize_t show_alarm(struct device *dev, @@ -429,9 +429,9 @@ struct max6639_data *data = i2c_get_clientdata(client); struct max6639_platform_data *max6639_info = client->dev.platform_data; - int i = 0; + int i; int rpm_range = 1; /* default: 4000 RPM */ - int err = 0; + int err; /* Reset chip to default values, see below for GCONFIG setup */ err = i2c_smbus_write_byte_data(client, MAX6639_REG_GCONFIG, @@ -446,11 +446,6 @@ else data->ppr = 2; data->ppr -= 1; - err = i2c_smbus_write_byte_data(client, - MAX6639_REG_FAN_PPR(i), - data->ppr << 5); - if (err) - goto exit; if (max6639_info) rpm_range = rpm_range_to_reg(max6639_info->rpm_range); @@ -458,6 +453,13 @@ for (i = 0; i < 2; i++) { + /* Set Fan pulse per revolution */ + err = i2c_smbus_write_byte_data(client, + MAX6639_REG_FAN_PPR(i), + data->ppr << 6); + if (err) + goto exit; + /* Fans config PWM, RPM */ err = i2c_smbus_write_byte_data(client, MAX6639_REG_FAN_CONFIG1(i), --- linux-3.2.0.orig/drivers/hwmon/coretemp.c +++ linux-3.2.0/drivers/hwmon/coretemp.c @@ -51,22 +51,21 @@ MODULE_PARM_DESC(tjmax, "TjMax value in degrees Celsius"); #define BASE_SYSFS_ATTR_NO 2 /* Sysfs Base attr no for coretemp */ -#define NUM_REAL_CORES 16 /* Number of Real cores per cpu */ +#define NUM_REAL_CORES 32 /* Number of Real cores per cpu */ #define CORETEMP_NAME_LENGTH 17 /* String Length of attrs */ #define MAX_CORE_ATTRS 4 /* Maximum no of basic attrs */ #define TOTAL_ATTRS (MAX_CORE_ATTRS + 1) #define MAX_CORE_DATA (NUM_REAL_CORES + BASE_SYSFS_ATTR_NO) -#ifdef CONFIG_SMP #define TO_PHYS_ID(cpu) cpu_data(cpu).phys_proc_id #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, cpu_sibling_mask(cpu)) #else -#define TO_PHYS_ID(cpu) (cpu) -#define TO_CORE_ID(cpu) (cpu) #define for_each_sibling(i, cpu) for (i = 0; false; ) #endif -#define TO_ATTR_NO(cpu) (TO_CORE_ID(cpu) + BASE_SYSFS_ATTR_NO) /* * Per-Core Temperature Data @@ -191,6 +190,27 @@ return tdata->valid ? sprintf(buf, "%d\n", tdata->temp) : -EAGAIN; } +struct tjmax { + char const *id; + int tjmax; +}; + +static struct tjmax __cpuinitconst tjmax_table[] = { + { "CPU D410", 100000 }, + { "CPU D425", 100000 }, + { "CPU D510", 100000 }, + { "CPU D525", 100000 }, + { "CPU N450", 100000 }, + { "CPU N455", 100000 }, + { "CPU N470", 100000 }, + { "CPU N475", 100000 }, + { "CPU 230", 100000 }, /* Model 0x1c, stepping 2 */ + { "CPU 330", 125000 }, /* Model 0x1c, stepping 2 */ + { "CPU CE4110", 110000 }, /* Model 0x1c, stepping 10 */ + { "CPU CE4150", 110000 }, /* Model 0x1c, stepping 10 */ + { "CPU CE4170", 110000 }, /* Model 0x1c, stepping 10 */ +}; + static int adjust_tjmax(struct cpuinfo_x86 *c, u32 id, struct device *dev) { /* The 100C is default for both mobile and non mobile CPUs */ @@ -201,6 +221,13 @@ int err; u32 eax, edx; struct pci_dev *host_bridge; + int i; + + /* explicit tjmax table entries override heuristics */ + for (i = 0; i < ARRAY_SIZE(tjmax_table); i++) { + if (strstr(c->x86_model_id, tjmax_table[i].id)) + return tjmax_table[i].tjmax; + } /* Early chips have no MSR for TjMax */ @@ -209,7 +236,8 @@ /* Atom CPUs */ - if (c->x86_model == 0x1c) { + if (c->x86_model == 0x1c || c->x86_model == 0x26 + || c->x86_model == 0x27) { usemsr_ee = 0; host_bridge = pci_get_bus_and_slot(0, PCI_DEVFN(0, 0)); @@ -222,6 +250,9 @@ tjmax = 90000; pci_dev_put(host_bridge); + } else if (c->x86_model == 0x36) { + usemsr_ee = 0; + tjmax = 100000; } if (c->x86_model > 0xe && usemsr_ee) { @@ -660,7 +691,7 @@ * sensors. We check this bit only, all the early CPUs * without thermal sensors will be filtered out. */ - if (!cpu_has(c, X86_FEATURE_DTS)) + if (!cpu_has(c, X86_FEATURE_DTHERM)) return; if (!pdev) { @@ -705,6 +736,10 @@ indx = TO_ATTR_NO(cpu); + /* The core id is too big, just return */ + if (indx > MAX_CORE_DATA - 1) + return; + if (pdata->core_data[indx] && pdata->core_data[indx]->cpu == cpu) coretemp_remove_core(pdata, &pdev->dev, indx); --- linux-3.2.0.orig/drivers/hwmon/w83627ehf.c +++ linux-3.2.0/drivers/hwmon/w83627ehf.c @@ -39,7 +39,7 @@ 0x8860 0xa1 w83627dhg 9 5 4 3 0xa020 0xc1 0x5ca3 w83627dhg-p 9 5 4 3 0xb070 0xc1 0x5ca3 - w83627uhg 8 2 2 2 0xa230 0xc1 0x5ca3 + w83627uhg 8 2 2 3 0xa230 0xc1 0x5ca3 w83667hg 9 5 3 3 0xa510 0xc1 0x5ca3 w83667hg-b 9 5 3 4 0xb350 0xc1 0x5ca3 nct6775f 9 4 3 9 0xb470 0xc1 0x5ca3 @@ -1319,6 +1319,7 @@ { struct w83627ehf_data *data = dev_get_drvdata(dev); struct sensor_device_attribute *sensor_attr = to_sensor_dev_attr(attr); + struct w83627ehf_sio_data *sio_data = dev->platform_data; int nr = sensor_attr->index; unsigned long val; int err; @@ -1330,6 +1331,11 @@ if (val > 1) return -EINVAL; + + /* On NCT67766F, DC mode is only supported for pwm1 */ + if (sio_data->kind == nct6776 && nr && val != 1) + return -EINVAL; + mutex_lock(&data->update_lock); reg = w83627ehf_read_value(data, W83627EHF_REG_PWM_ENABLE[nr]); data->pwm_mode[nr] = val; @@ -1601,7 +1607,7 @@ val = step_time_to_reg(val, data->pwm_mode[nr]); \ mutex_lock(&data->update_lock); \ data->reg[nr] = val; \ - w83627ehf_write_value(data, W83627EHF_REG_##REG[nr], val); \ + w83627ehf_write_value(data, data->REG_##REG[nr], val); \ mutex_unlock(&data->update_lock); \ return count; \ } \ @@ -1914,9 +1920,26 @@ fan4min = 0; fan5pin = 0; } else if (sio_data->kind == nct6776) { - fan3pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x40); - fan4pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x01); - fan5pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x02); + bool gpok = superio_inb(sio_data->sioreg, 0x27) & 0x80; + + superio_select(sio_data->sioreg, W83627EHF_LD_HWM); + regval = superio_inb(sio_data->sioreg, SIO_REG_ENABLE); + + if (regval & 0x80) + fan3pin = gpok; + else + fan3pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x40); + + if (regval & 0x40) + fan4pin = gpok; + else + fan4pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x01); + + if (regval & 0x20) + fan5pin = gpok; + else + fan5pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x02); + fan4min = fan4pin; } else if (sio_data->kind == w83667hg || sio_data->kind == w83667hg_b) { fan3pin = 1; @@ -1981,7 +2004,8 @@ goto exit; } - data = kzalloc(sizeof(struct w83627ehf_data), GFP_KERNEL); + data = devm_kzalloc(&pdev->dev, sizeof(struct w83627ehf_data), + GFP_KERNEL); if (!data) { err = -ENOMEM; goto exit_release; @@ -1991,6 +2015,7 @@ mutex_init(&data->lock); mutex_init(&data->update_lock); data->name = w83627ehf_device_names[sio_data->kind]; + data->bank = 0xff; /* Force initial bank selection */ platform_set_drvdata(pdev, data); /* 627EHG and 627EHF have 10 voltage inputs; 627DHG and 667HG have 9 */ @@ -2134,16 +2159,16 @@ w83627ehf_set_temp_reg_ehf(data, 3); /* - * Temperature sources for temp1 and temp2 are selected with + * Temperature sources for temp2 and temp3 are selected with * bank 0, registers 0x49 and 0x4a. */ data->temp_src[0] = 0; /* SYSTIN */ reg = w83627ehf_read_value(data, 0x49) & 0x07; /* Adjust to have the same mapping as other source registers */ if (reg == 0) - data->temp_src[1]++; + data->temp_src[1] = 1; else if (reg >= 2 && reg <= 5) - data->temp_src[1] += 2; + data->temp_src[1] = reg + 2; else /* should never happen */ data->have_temp &= ~(1 << 1); reg = w83627ehf_read_value(data, 0x4a); @@ -2475,9 +2500,8 @@ exit_remove: w83627ehf_device_remove_files(dev); - kfree(data); - platform_set_drvdata(pdev, NULL); exit_release: + platform_set_drvdata(pdev, NULL); release_region(res->start, IOREGION_LENGTH); exit: return err; @@ -2491,7 +2515,6 @@ w83627ehf_device_remove_files(&pdev->dev); release_region(data->addr, IOREGION_LENGTH); platform_set_drvdata(pdev, NULL); - kfree(data); return 0; } --- linux-3.2.0.orig/drivers/hwmon/ad7314.c +++ linux-3.2.0/drivers/hwmon/ad7314.c @@ -96,10 +96,18 @@ } } +static ssize_t ad7314_show_name(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + return sprintf(buf, "%s\n", to_spi_device(dev)->modalias); +} + +static DEVICE_ATTR(name, S_IRUGO, ad7314_show_name, NULL); static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, ad7314_show_temperature, NULL, 0); static struct attribute *ad7314_attributes[] = { + &dev_attr_name.attr, &sensor_dev_attr_temp1_input.dev_attr.attr, NULL, }; --- linux-3.2.0.orig/drivers/hwmon/f71805f.c +++ linux-3.2.0/drivers/hwmon/f71805f.c @@ -283,11 +283,11 @@ static inline u8 temp_to_reg(long val) { - if (val < 0) - val = 0; - else if (val > 1000 * 0xff) - val = 0xff; - return ((val + 500) / 1000); + if (val <= 0) + return 0; + if (val >= 1000 * 0xff) + return 0xff; + return (val + 500) / 1000; } /* --- linux-3.2.0.orig/drivers/hwmon/it87.c +++ linux-3.2.0/drivers/hwmon/it87.c @@ -2086,7 +2086,7 @@ /* Start monitoring */ it87_write_value(data, IT87_REG_CONFIG, - (it87_read_value(data, IT87_REG_CONFIG) & 0x36) + (it87_read_value(data, IT87_REG_CONFIG) & 0x3e) | (update_vbat ? 0x41 : 0x01)); } --- linux-3.2.0.orig/drivers/hwmon/ads7871.c +++ linux-3.2.0/drivers/hwmon/ads7871.c @@ -133,6 +133,12 @@ } } +static ssize_t ads7871_show_name(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + return sprintf(buf, "%s\n", to_spi_device(dev)->modalias); +} + static SENSOR_DEVICE_ATTR(in0_input, S_IRUGO, show_voltage, NULL, 0); static SENSOR_DEVICE_ATTR(in1_input, S_IRUGO, show_voltage, NULL, 1); static SENSOR_DEVICE_ATTR(in2_input, S_IRUGO, show_voltage, NULL, 2); @@ -142,6 +148,8 @@ static SENSOR_DEVICE_ATTR(in6_input, S_IRUGO, show_voltage, NULL, 6); static SENSOR_DEVICE_ATTR(in7_input, S_IRUGO, show_voltage, NULL, 7); +static DEVICE_ATTR(name, S_IRUGO, ads7871_show_name, NULL); + static struct attribute *ads7871_attributes[] = { &sensor_dev_attr_in0_input.dev_attr.attr, &sensor_dev_attr_in1_input.dev_attr.attr, @@ -151,6 +159,7 @@ &sensor_dev_attr_in5_input.dev_attr.attr, &sensor_dev_attr_in6_input.dev_attr.attr, &sensor_dev_attr_in7_input.dev_attr.attr, + &dev_attr_name.attr, NULL }; --- linux-3.2.0.orig/drivers/hwmon/pmbus/pmbus_core.c +++ linux-3.2.0/drivers/hwmon/pmbus/pmbus_core.c @@ -54,7 +54,8 @@ lcrit_alarm, crit_alarm */ #define PMBUS_IOUT_BOOLEANS_PER_PAGE 3 /* alarm, lcrit_alarm, crit_alarm */ -#define PMBUS_POUT_BOOLEANS_PER_PAGE 2 /* alarm, crit_alarm */ +#define PMBUS_POUT_BOOLEANS_PER_PAGE 3 /* cap_alarm, alarm, crit_alarm + */ #define PMBUS_MAX_BOOLEANS_PER_FAN 2 /* alarm, fault */ #define PMBUS_MAX_BOOLEANS_PER_TEMP 4 /* min_alarm, max_alarm, lcrit_alarm, crit_alarm */ --- linux-3.2.0.orig/drivers/hwmon/pmbus/ltc2978.c +++ linux-3.2.0/drivers/hwmon/pmbus/ltc2978.c @@ -59,10 +59,10 @@ struct ltc2978_data { enum chips id; int vin_min, vin_max; - int temp_min, temp_max; + int temp_min, temp_max[2]; int vout_min[8], vout_max[8]; int iout_max[2]; - int temp2_max[2]; + int temp2_max; struct pmbus_driver_info info; }; @@ -113,9 +113,10 @@ ret = pmbus_read_word_data(client, page, LTC2978_MFR_TEMPERATURE_PEAK); if (ret >= 0) { - if (lin11_to_val(ret) > lin11_to_val(data->temp_max)) - data->temp_max = ret; - ret = data->temp_max; + if (lin11_to_val(ret) + > lin11_to_val(data->temp_max[page])) + data->temp_max[page] = ret; + ret = data->temp_max[page]; } break; case PMBUS_VIRT_RESET_VOUT_HISTORY: @@ -204,10 +205,9 @@ ret = pmbus_read_word_data(client, page, LTC3880_MFR_TEMPERATURE2_PEAK); if (ret >= 0) { - if (lin11_to_val(ret) - > lin11_to_val(data->temp2_max[page])) - data->temp2_max[page] = ret; - ret = data->temp2_max[page]; + if (lin11_to_val(ret) > lin11_to_val(data->temp2_max)) + data->temp2_max = ret; + ret = data->temp2_max; } break; case PMBUS_VIRT_READ_VIN_MIN: @@ -248,11 +248,11 @@ switch (reg) { case PMBUS_VIRT_RESET_IOUT_HISTORY: - data->iout_max[page] = 0x7fff; + data->iout_max[page] = 0x7c00; ret = ltc2978_clear_peaks(client, page, data->id); break; case PMBUS_VIRT_RESET_TEMP2_HISTORY: - data->temp2_max[page] = 0x7fff; + data->temp2_max = 0x7c00; ret = ltc2978_clear_peaks(client, page, data->id); break; case PMBUS_VIRT_RESET_VOUT_HISTORY: @@ -262,12 +262,12 @@ break; case PMBUS_VIRT_RESET_VIN_HISTORY: data->vin_min = 0x7bff; - data->vin_max = 0; + data->vin_max = 0x7c00; ret = ltc2978_clear_peaks(client, page, data->id); break; case PMBUS_VIRT_RESET_TEMP_HISTORY: data->temp_min = 0x7bff; - data->temp_max = 0x7fff; + data->temp_max[page] = 0x7c00; ret = ltc2978_clear_peaks(client, page, data->id); break; default: @@ -323,12 +323,14 @@ info = &data->info; info->write_word_data = ltc2978_write_word_data; - data->vout_min[0] = 0xffff; data->vin_min = 0x7bff; + data->vin_max = 0x7c00; data->temp_min = 0x7bff; - data->temp_max = 0x7fff; + for (i = 0; i < ARRAY_SIZE(data->temp_max); i++) + data->temp_max[i] = 0x7c00; + data->temp2_max = 0x7c00; - switch (id->driver_data) { + switch (data->id) { case ltc2978: info->read_word_data = ltc2978_read_word_data; info->pages = 8; @@ -338,7 +340,6 @@ for (i = 1; i < 8; i++) { info->func[i] = PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; - data->vout_min[i] = 0xffff; } break; case ltc3880: @@ -354,12 +355,15 @@ | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_POUT | PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; - data->vout_min[1] = 0xffff; + data->iout_max[0] = 0x7c00; + data->iout_max[1] = 0x7c00; break; default: ret = -ENODEV; goto err_mem; } + for (i = 0; i < info->pages; i++) + data->vout_min[i] = 0xffff; ret = pmbus_do_probe(client, id, info); if (ret) --- linux-3.2.0.orig/drivers/hwmon/pmbus/zl6100.c +++ linux-3.2.0/drivers/hwmon/pmbus/zl6100.c @@ -33,6 +33,7 @@ struct zl6100_data { int id; ktime_t access; /* chip access time */ + int delay; /* Delay between chip accesses in uS */ struct pmbus_driver_info info; }; @@ -49,10 +50,10 @@ /* Some chips need a delay between accesses */ static inline void zl6100_wait(const struct zl6100_data *data) { - if (delay) { + if (data->delay) { s64 delta = ktime_us_delta(ktime_get(), data->access); - if (delta < delay) - udelay(delay - delta); + if (delta < data->delay) + udelay(data->delay - delta); } } @@ -177,15 +178,11 @@ data->id = mid->driver_data; /* - * ZL2008, ZL2105, and ZL6100 are known to require a wait time - * between I2C accesses. ZL2004 and ZL6105 are known to be safe. - * - * Only clear the wait time for chips known to be safe. The wait time - * can be cleared later for additional chips if tests show that it - * is not needed (in other words, better be safe than sorry). + * According to information from the chip vendor, all currently + * supported chips are known to require a wait time between I2C + * accesses. */ - if (data->id == zl2004 || data->id == zl6105) - delay = 0; + data->delay = delay; /* * Since there was a direct I2C device access above, wait before --- linux-3.2.0.orig/drivers/video/Kconfig +++ linux-3.2.0/drivers/video/Kconfig @@ -753,8 +753,8 @@ If unsure, say N. config FB_VESA - bool "VESA VGA graphics support" - depends on (FB = y) && X86 + tristate "VESA VGA graphics support" + depends on FB && X86 select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT --- linux-3.2.0.orig/drivers/video/vesafb.c +++ linux-3.2.0/drivers/video/vesafb.c @@ -27,6 +27,12 @@ #define dac_reg (0x3c8) #define dac_val (0x3c9) +struct vesafb_info +{ + u32 pseudo_palette[256]; + int mtrr_hdl; +}; + /* --------------------------------------------------------------------- */ static struct fb_var_screeninfo vesafb_defined __initdata = { @@ -40,22 +46,43 @@ .vmode = FB_VMODE_NONINTERLACED, }; -static struct fb_fix_screeninfo vesafb_fix __initdata = { +static struct fb_fix_screeninfo vesafb_fix = { .id = "VESA VGA", .type = FB_TYPE_PACKED_PIXELS, .accel = FB_ACCEL_NONE, }; +#ifndef MODULE static int inverse __read_mostly; -static int mtrr __read_mostly; /* disable mtrr */ +#endif +static int mtrr __read_mostly = 3; /* disable mtrr */ static int vram_remap __initdata; /* Set amount of memory to be used */ static int vram_total __initdata; /* Set total amount of memory */ static int pmi_setpal __read_mostly = 1; /* pmi for palette changes ??? */ +static int redraw __read_mostly; static int ypan __read_mostly; /* 0..nothing, 1..ypan, 2..ywrap */ +static int ywrap __read_mostly; static void (*pmi_start)(void) __read_mostly; static void (*pmi_pal) (void) __read_mostly; static int depth __read_mostly; static int vga_compat __read_mostly; + +module_param(redraw, bool, 0); +module_param(ypan, bool, 0); +module_param(ywrap, bool, 0); +module_param_named(vgapal, pmi_setpal, invbool, 0); +MODULE_PARM_DESC(vgapal, "Use VGA for setting palette (default)"); +module_param_named(pmipal, pmi_setpal, bool, 0); +MODULE_PARM_DESC(pmipal, "Use PMI for setting palette"); +module_param(mtrr, uint, 0); +MODULE_PARM_DESC(mtrr, "Enable MTRR support (default)"); +module_param_named(nomtrr, mtrr, invbool, 0); +MODULE_PARM_DESC(nomtrr, "Disable MTRR support"); +module_param(vram_remap, int, 0); +MODULE_PARM_DESC(vram_remap, "Set total amount of memory to be used"); +module_param(vram_total, int, 0); +MODULE_PARM_DESC(vram_total, "Total amount of memory"); + /* --------------------------------------------------------------------- */ static int vesafb_pan_display(struct fb_var_screeninfo *var, @@ -192,6 +219,7 @@ .fb_imageblit = cfb_imageblit, }; +#ifndef MODULE static int __init vesafb_setup(char *options) { char *this_opt; @@ -225,10 +253,12 @@ } return 0; } +#endif static int __init vesafb_probe(struct platform_device *dev) { struct fb_info *info; + struct vesafb_info *vfb_info; int i, err; unsigned int size_vmode; unsigned int size_remap; @@ -287,13 +317,14 @@ spaces our resource handlers simply don't know about */ } - info = framebuffer_alloc(sizeof(u32) * 256, &dev->dev); + info = framebuffer_alloc(sizeof(struct vesafb_info), &dev->dev); if (!info) { release_mem_region(vesafb_fix.smem_start, size_total); return -ENOMEM; } - info->pseudo_palette = info->par; - info->par = NULL; + vfb_info = (struct vesafb_info *) info->par; + vfb_info->mtrr_hdl = -1; + info->pseudo_palette = vfb_info->pseudo_palette; /* set vesafb aperture size for generic probing */ info->apertures = alloc_apertures(1); @@ -423,17 +454,15 @@ } if (type) { - int rc; - /* Find the largest power-of-two */ temp_size = roundup_pow_of_two(temp_size); /* Try and find a power of two to add */ do { - rc = mtrr_add(vesafb_fix.smem_start, temp_size, + vfb_info->mtrr_hdl = mtrr_add(vesafb_fix.smem_start, temp_size, type, 1); temp_size >>= 1; - } while (temp_size >= PAGE_SIZE && rc == -EINVAL); + } while (temp_size >= PAGE_SIZE && vfb_info->mtrr_hdl == -EINVAL); } } #endif @@ -495,7 +524,27 @@ return err; } +static int __exit vesafb_remove(struct platform_device *device) +{ + struct fb_info *info = dev_get_drvdata(&device->dev); + + unregister_framebuffer(info); +#ifdef CONFIG_MTRR + { + struct vesafb_info *vfb_info = (struct vesafb_info *) info->par; + if (vfb_info->mtrr_hdl >= 0) + mtrr_del(vfb_info->mtrr_hdl, 0, 0); + } +#endif + iounmap(info->screen_base); + framebuffer_release(info); + release_mem_region(vesafb_fix.smem_start, vesafb_fix.smem_len); + + return 0; +} + static struct platform_driver vesafb_driver = { + .remove = vesafb_remove, .driver = { .name = "vesafb", }, @@ -506,11 +555,18 @@ static int __init vesafb_init(void) { int ret; +#ifndef MODULE char *option = NULL; /* ignore error return of fb_get_options */ fb_get_options("vesafb", &option); vesafb_setup(option); +#else + if (redraw) + ypan = 0; + if (ywrap) + ypan = 2; +#endif vesafb_device = platform_device_alloc("vesafb", 0); if (!vesafb_device) @@ -530,6 +586,14 @@ return ret; } + +static void __exit vesafb_exit(void) +{ + platform_device_unregister(vesafb_device); + platform_driver_unregister(&vesafb_driver); +} + module_init(vesafb_init); +module_exit(vesafb_exit); MODULE_LICENSE("GPL"); --- linux-3.2.0.orig/drivers/video/udlfb.c +++ linux-3.2.0/drivers/video/udlfb.c @@ -646,7 +646,7 @@ result = fb_sys_write(info, buf, count, ppos); if (result > 0) { - int start = max((int)(offset / info->fix.line_length) - 1, 0); + int start = max((int)(offset / info->fix.line_length), 0); int lines = min((u32)((result / info->fix.line_length) + 1), (u32)info->var.yres); @@ -1739,7 +1739,7 @@ for (i = 0; i < ARRAY_SIZE(fb_device_attrs); i++) device_remove_file(info->dev, &fb_device_attrs[i]); device_remove_bin_file(info->dev, &edid_attr); - + unlink_framebuffer(info); usb_set_intfdata(interface, NULL); /* if clients still have us open, will be freed on last close */ --- linux-3.2.0.orig/drivers/video/uvesafb.c +++ linux-3.2.0/drivers/video/uvesafb.c @@ -121,7 +121,7 @@ NULL, }; - return call_usermodehelper(v86d_path, argv, envp, 1); + return call_usermodehelper(v86d_path, argv, envp, UMH_WAIT_PROC); } /* @@ -815,8 +815,15 @@ par->pmi_setpal = pmi_setpal; par->ypan = ypan; - if (par->pmi_setpal || par->ypan) - uvesafb_vbe_getpmi(task, par); + if (par->pmi_setpal || par->ypan) { + if (__supported_pte_mask & _PAGE_NX) { + par->pmi_setpal = par->ypan = 0; + printk(KERN_WARNING "uvesafb: NX protection is actively." + "We have better not to use the PMI.\n"); + } else { + uvesafb_vbe_getpmi(task, par); + } + } #else /* The protected mode interface is not available on non-x86. */ par->pmi_setpal = par->ypan = 0; --- linux-3.2.0.orig/drivers/video/fbsysfs.c +++ linux-3.2.0/drivers/video/fbsysfs.c @@ -175,6 +175,8 @@ if (i * sizeof(struct fb_videomode) != count) return -EINVAL; + if (!lock_fb_info(fb_info)) + return -ENODEV; console_lock(); list_splice(&fb_info->modelist, &old_list); fb_videomode_to_modelist((const struct fb_videomode *)buf, i, @@ -186,6 +188,7 @@ fb_destroy_modelist(&old_list); console_unlock(); + unlock_fb_info(fb_info); return 0; } --- linux-3.2.0.orig/drivers/video/offb.c +++ linux-3.2.0/drivers/video/offb.c @@ -100,36 +100,32 @@ u_int transp, struct fb_info *info) { struct offb_par *par = (struct offb_par *) info->par; - int i, depth; - u32 *pal = info->pseudo_palette; - depth = info->var.bits_per_pixel; - if (depth == 16) - depth = (info->var.green.length == 5) ? 15 : 16; - - if (regno > 255 || - (depth == 16 && regno > 63) || - (depth == 15 && regno > 31)) - return 1; - - if (regno < 16) { - switch (depth) { - case 15: - pal[regno] = (regno << 10) | (regno << 5) | regno; - break; - case 16: - pal[regno] = (regno << 11) | (regno << 5) | regno; - break; - case 24: - pal[regno] = (regno << 16) | (regno << 8) | regno; - break; - case 32: - i = (regno << 8) | regno; - pal[regno] = (i << 16) | i; - break; + if (info->fix.visual == FB_VISUAL_TRUECOLOR) { + u32 *pal = info->pseudo_palette; + u32 cr = red >> (16 - info->var.red.length); + u32 cg = green >> (16 - info->var.green.length); + u32 cb = blue >> (16 - info->var.blue.length); + u32 value; + + if (regno >= 16) + return -EINVAL; + + value = (cr << info->var.red.offset) | + (cg << info->var.green.offset) | + (cb << info->var.blue.offset); + if (info->var.transp.length > 0) { + u32 mask = (1 << info->var.transp.length) - 1; + mask <<= info->var.transp.offset; + value |= mask; } + pal[regno] = value; + return 0; } + if (regno > 255) + return -EINVAL; + red >>= 8; green >>= 8; blue >>= 8; @@ -381,7 +377,7 @@ int pitch, unsigned long address, int foreign_endian, struct device_node *dp) { - unsigned long res_size = pitch * height * (depth + 7) / 8; + unsigned long res_size = pitch * height; struct offb_par *par = &default_par; unsigned long res_start = address; struct fb_fix_screeninfo *fix; --- linux-3.2.0.orig/drivers/video/atmel_lcdfb.c +++ linux-3.2.0/drivers/video/atmel_lcdfb.c @@ -1089,7 +1089,7 @@ */ lcdc_writel(sinfo, ATMEL_LCDC_IDR, ~0UL); - sinfo->saved_lcdcon = lcdc_readl(sinfo, ATMEL_LCDC_CONTRAST_VAL); + sinfo->saved_lcdcon = lcdc_readl(sinfo, ATMEL_LCDC_CONTRAST_CTR); lcdc_writel(sinfo, ATMEL_LCDC_CONTRAST_CTR, 0); if (sinfo->atmel_lcdfb_power_control) sinfo->atmel_lcdfb_power_control(0); --- linux-3.2.0.orig/drivers/video/fbmem.c +++ linux-3.2.0/drivers/video/fbmem.c @@ -1154,8 +1154,10 @@ event.data = &con2fb; if (!lock_fb_info(info)) return -ENODEV; + console_lock(); event.info = info; ret = fb_notifier_call_chain(FB_EVENT_SET_CONSOLE_MAP, &event); + console_unlock(); unlock_fb_info(info); break; case FBIOBLANK: @@ -1348,15 +1350,12 @@ { struct fb_info *info = file_fb_info(file); struct fb_ops *fb; - unsigned long off; + unsigned long mmio_pgoff; unsigned long start; u32 len; if (!info) return -ENODEV; - if (vma->vm_pgoff > (~0UL >> PAGE_SHIFT)) - return -EINVAL; - off = vma->vm_pgoff << PAGE_SHIFT; fb = info->fbops; if (!fb) return -ENODEV; @@ -1368,33 +1367,24 @@ return res; } - /* frame buffer memory */ + /* + * Ugh. This can be either the frame buffer mapping, or + * if pgoff points past it, the mmio mapping. + */ start = info->fix.smem_start; - len = PAGE_ALIGN((start & ~PAGE_MASK) + info->fix.smem_len); - if (off >= len) { - /* memory mapped io */ - off -= len; - if (info->var.accel_flags) { - mutex_unlock(&info->mm_lock); - return -EINVAL; - } + len = info->fix.smem_len; + mmio_pgoff = PAGE_ALIGN((start & ~PAGE_MASK) + len) >> PAGE_SHIFT; + if (vma->vm_pgoff >= mmio_pgoff) { + vma->vm_pgoff -= mmio_pgoff; start = info->fix.mmio_start; - len = PAGE_ALIGN((start & ~PAGE_MASK) + info->fix.mmio_len); + len = info->fix.mmio_len; } mutex_unlock(&info->mm_lock); - start &= PAGE_MASK; - if ((vma->vm_end - vma->vm_start + off) > len) - return -EINVAL; - off += start; - vma->vm_pgoff = off >> PAGE_SHIFT; - /* This is an IO map - tell maydump to skip this VMA */ - vma->vm_flags |= VM_IO | VM_RESERVED; + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); - fb_pgprotect(file, vma, off); - if (io_remap_pfn_range(vma, vma->vm_start, off >> PAGE_SHIFT, - vma->vm_end - vma->vm_start, vma->vm_page_prot)) - return -EAGAIN; - return 0; + fb_pgprotect(file, vma, start); + + return vm_iomap_memory(vma, start, len); } static int @@ -1628,7 +1618,9 @@ event.info = fb_info; if (!lock_fb_info(fb_info)) return -ENODEV; + console_lock(); fb_notifier_call_chain(FB_EVENT_FB_REGISTERED, &event); + console_unlock(); unlock_fb_info(fb_info); return 0; } @@ -1644,13 +1636,16 @@ if (!lock_fb_info(fb_info)) return -ENODEV; + console_lock(); event.info = fb_info; ret = fb_notifier_call_chain(FB_EVENT_FB_UNBIND, &event); + console_unlock(); unlock_fb_info(fb_info); if (ret) return -EINVAL; + unlink_framebuffer(fb_info); if (fb_info->pixmap.addr && (fb_info->pixmap.flags & FB_PIXMAP_DEFAULT)) kfree(fb_info->pixmap.addr); @@ -1658,15 +1653,32 @@ registered_fb[i] = NULL; num_registered_fb--; fb_cleanup_device(fb_info); - device_destroy(fb_class, MKDEV(FB_MAJOR, i)); event.info = fb_info; + console_lock(); fb_notifier_call_chain(FB_EVENT_FB_UNREGISTERED, &event); + console_unlock(); /* this may free fb info */ put_fb_info(fb_info); return 0; } +int unlink_framebuffer(struct fb_info *fb_info) +{ + int i; + + i = fb_info->node; + if (i < 0 || i >= FB_MAX || registered_fb[i] != fb_info) + return -EINVAL; + + if (fb_info->dev) { + device_destroy(fb_class, MKDEV(FB_MAJOR, i)); + fb_info->dev = NULL; + } + return 0; +} +EXPORT_SYMBOL(unlink_framebuffer); + void remove_conflicting_framebuffers(struct apertures_struct *a, const char *name, bool primary) { @@ -1815,11 +1827,8 @@ err = 1; if (!list_empty(&info->modelist)) { - if (!lock_fb_info(info)) - return -ENODEV; event.info = info; err = fb_notifier_call_chain(FB_EVENT_NEW_MODELIST, &event); - unlock_fb_info(info); } return err; --- linux-3.2.0.orig/drivers/video/mxsfb.c +++ linux-3.2.0/drivers/video/mxsfb.c @@ -366,7 +366,8 @@ loop--; } - writel(VDCTRL4_SYNC_SIGNALS_ON, host->base + LCDC_VDCTRL4 + REG_CLR); + reg = readl(host->base + LCDC_VDCTRL4); + writel(reg & ~VDCTRL4_SYNC_SIGNALS_ON, host->base + LCDC_VDCTRL4); clk_disable(host->clk); --- linux-3.2.0.orig/drivers/video/smscufx.c +++ linux-3.2.0/drivers/video/smscufx.c @@ -904,7 +904,7 @@ result = fb_sys_write(info, buf, count, ppos); if (result > 0) { - int start = max((int)(offset / info->fix.line_length) - 1, 0); + int start = max((int)(offset / info->fix.line_length), 0); int lines = min((u32)((result / info->fix.line_length) + 1), (u32)info->var.yres); --- linux-3.2.0.orig/drivers/video/omap2/omapfb/omapfb-main.c +++ linux-3.2.0/drivers/video/omap2/omapfb/omapfb-main.c @@ -1183,7 +1183,7 @@ break; if (regno < 16) { - u16 pal; + u32 pal; pal = ((red >> (16 - var->red.length)) << var->red.offset) | ((green >> (16 - var->green.length)) << --- linux-3.2.0.orig/drivers/video/omap2/dss/venc.c +++ linux-3.2.0/drivers/video/omap2/dss/venc.c @@ -679,6 +679,11 @@ { #define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, venc_read_reg(r)) + if (cpu_is_omap44xx()) { + seq_printf(s, "VENC currently disabled on OMAP44xx\n"); + return; + } + if (venc_runtime_get()) return; --- linux-3.2.0.orig/drivers/video/omap2/dss/hdmi.c +++ linux-3.2.0/drivers/video/omap2/dss/hdmi.c @@ -490,6 +490,7 @@ int omapdss_hdmi_display_enable(struct omap_dss_device *dssdev) { + struct omap_dss_hdmi_data *priv = dssdev->data; int r = 0; DSSDBG("ENTER hdmi_display_enable\n"); @@ -502,6 +503,8 @@ goto err0; } + hdmi.ip_data.hpd_gpio = priv->hpd_gpio; + r = omap_dss_start_device(dssdev); if (r) { DSSERR("failed to start device\n"); --- linux-3.2.0.orig/drivers/video/omap2/dss/dpi.c +++ linux-3.2.0/drivers/video/omap2/dss/dpi.c @@ -180,6 +180,11 @@ { int r; + if (cpu_is_omap34xx() && !dpi.vdds_dsi_reg) { + DSSERR("no VDSS_DSI regulator\n"); + return -ENODEV; + } + if (dssdev->manager == NULL) { DSSERR("failed to enable display: no manager\n"); return -ENODEV; --- linux-3.2.0.orig/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c +++ linux-3.2.0/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "ti_hdmi_4xxx_ip.h" #include "dss.h" @@ -223,6 +224,49 @@ hdmi_set_pll_pwr(ip_data, HDMI_PLLPWRCMD_ALLOFF); } +static int hdmi_check_hpd_state(struct hdmi_ip_data *ip_data) +{ + unsigned long flags; + bool hpd; + int r; + /* this should be in ti_hdmi_4xxx_ip private data */ + static DEFINE_SPINLOCK(phy_tx_lock); + + spin_lock_irqsave(&phy_tx_lock, flags); + + hpd = gpio_get_value(ip_data->hpd_gpio); + + if (hpd == ip_data->phy_tx_enabled) { + spin_unlock_irqrestore(&phy_tx_lock, flags); + return 0; + } + + if (hpd) + r = hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_TXON); + else + r = hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_LDOON); + + if (r) { + DSSERR("Failed to %s PHY TX power\n", + hpd ? "enable" : "disable"); + goto err; + } + + ip_data->phy_tx_enabled = hpd; +err: + spin_unlock_irqrestore(&phy_tx_lock, flags); + return r; +} + +static irqreturn_t hpd_irq_handler(int irq, void *data) +{ + struct hdmi_ip_data *ip_data = data; + + hdmi_check_hpd_state(ip_data); + + return IRQ_HANDLED; +} + int ti_hdmi_4xxx_phy_enable(struct hdmi_ip_data *ip_data) { u16 r = 0; @@ -232,10 +276,6 @@ if (r) return r; - r = hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_TXON); - if (r) - return r; - /* * Read address 0 in order to get the SCP reset done completed * Dummy access performed to make sure reset is done @@ -257,12 +297,32 @@ /* Write to phy address 3 to change the polarity control */ REG_FLD_MOD(phy_base, HDMI_TXPHY_PAD_CFG_CTRL, 0x1, 27, 27); + r = request_threaded_irq(gpio_to_irq(ip_data->hpd_gpio), + NULL, hpd_irq_handler, + IRQF_DISABLED | IRQF_TRIGGER_RISING | + IRQF_TRIGGER_FALLING, "hpd", ip_data); + if (r) { + DSSERR("HPD IRQ request failed\n"); + hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_OFF); + return r; + } + + r = hdmi_check_hpd_state(ip_data); + if (r) { + free_irq(gpio_to_irq(ip_data->hpd_gpio), ip_data); + hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_OFF); + return r; + } + return 0; } void ti_hdmi_4xxx_phy_disable(struct hdmi_ip_data *ip_data) { + free_irq(gpio_to_irq(ip_data->hpd_gpio), ip_data); + hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_OFF); + ip_data->phy_tx_enabled = false; } static int hdmi_core_ddc_init(struct hdmi_ip_data *ip_data) @@ -419,14 +479,7 @@ bool ti_hdmi_4xxx_detect(struct hdmi_ip_data *ip_data) { - int r; - - void __iomem *base = hdmi_core_sys_base(ip_data); - - /* HPD */ - r = REG_GET(base, HDMI_CORE_SYS_SYS_STAT, 1, 1); - - return r == 1; + return gpio_get_value(ip_data->hpd_gpio); } static void hdmi_core_init(struct hdmi_core_video_config *video_cfg, --- linux-3.2.0.orig/drivers/video/omap2/dss/ti_hdmi.h +++ linux-3.2.0/drivers/video/omap2/dss/ti_hdmi.h @@ -121,6 +121,10 @@ const struct ti_hdmi_ip_ops *ops; struct hdmi_config cfg; struct hdmi_pll_info pll_data; + + /* ti_hdmi_4xxx_ip private data. These should be in a separate struct */ + int hpd_gpio; + bool phy_tx_enabled; }; int ti_hdmi_4xxx_phy_enable(struct hdmi_ip_data *ip_data); void ti_hdmi_4xxx_phy_disable(struct hdmi_ip_data *ip_data); --- linux-3.2.0.orig/drivers/video/backlight/apple_bl.c +++ linux-3.2.0/drivers/video/backlight/apple_bl.c @@ -24,6 +24,7 @@ #include #include #include +#include static struct backlight_device *apple_backlight_device; @@ -221,14 +222,32 @@ }, }; +static atomic_t apple_bl_registered = ATOMIC_INIT(0); + +int apple_bl_register(void) +{ + if (atomic_xchg(&apple_bl_registered, 1) == 0) + return acpi_bus_register_driver(&apple_bl_driver); + + return 0; +} +EXPORT_SYMBOL_GPL(apple_bl_register); + +void apple_bl_unregister(void) +{ + if (atomic_xchg(&apple_bl_registered, 0) == 1) + acpi_bus_unregister_driver(&apple_bl_driver); +} +EXPORT_SYMBOL_GPL(apple_bl_unregister); + static int __init apple_bl_init(void) { - return acpi_bus_register_driver(&apple_bl_driver); + return apple_bl_register(); } static void __exit apple_bl_exit(void) { - acpi_bus_unregister_driver(&apple_bl_driver); + apple_bl_unregister(); } module_init(apple_bl_init); --- linux-3.2.0.orig/drivers/video/backlight/adp8860_bl.c +++ linux-3.2.0/drivers/video/backlight/adp8860_bl.c @@ -791,7 +791,7 @@ static int adp8860_i2c_resume(struct i2c_client *client) { - adp8860_set_bits(client, ADP8860_MDCR, NSTBY); + adp8860_set_bits(client, ADP8860_MDCR, NSTBY | BLEN); return 0; } --- linux-3.2.0.orig/drivers/video/backlight/tosa_lcd.c +++ linux-3.2.0/drivers/video/backlight/tosa_lcd.c @@ -271,7 +271,7 @@ } #else #define tosa_lcd_suspend NULL -#define tosa_lcd_reume NULL +#define tosa_lcd_resume NULL #endif static struct spi_driver tosa_lcd_driver = { --- linux-3.2.0.orig/drivers/video/backlight/adp8870_bl.c +++ linux-3.2.0/drivers/video/backlight/adp8870_bl.c @@ -965,7 +965,7 @@ static int adp8870_i2c_resume(struct i2c_client *client) { - adp8870_set_bits(client, ADP8870_MDCR, NSTBY); + adp8870_set_bits(client, ADP8870_MDCR, NSTBY | BLEN); return 0; } --- linux-3.2.0.orig/drivers/video/via/via_clock.c +++ linux-3.2.0/drivers/video/via/via_clock.c @@ -25,6 +25,7 @@ #include #include +#include #include "via_clock.h" #include "global.h" #include "debug.h" @@ -289,6 +290,10 @@ printk(KERN_INFO "Using undocumented set PLL.\n%s", via_slap); } +static void noop_set_clock_state(u8 state) +{ +} + void via_clock_init(struct via_clock *clock, int gfx_chip) { switch (gfx_chip) { @@ -346,4 +351,18 @@ break; } + + if (machine_is_olpc()) { + /* The OLPC XO-1.5 cannot suspend/resume reliably if the + * IGA1/IGA2 clocks are set as on or off (memory rot + * occasionally happens during suspend under such + * configurations). + * + * The only known stable scenario is to leave this bits as-is, + * which in their default states are documented to enable the + * clock only when it is needed. + */ + clock->set_primary_clock_state = noop_set_clock_state; + clock->set_secondary_clock_state = noop_set_clock_state; + } } --- linux-3.2.0.orig/drivers/video/via/hw.c +++ linux-3.2.0/drivers/video/via/hw.c @@ -1810,7 +1810,11 @@ break; } + /* magic required on VX900 for correct modesetting on IGA1 */ + via_write_reg_mask(VIACR, 0x45, 0x00, 0x01); + /* probably this should go to the scaling code one day */ + via_write_reg_mask(VIACR, 0xFD, 0, 0x80); /* VX900 hw scale on IGA2 */ viafb_write_regx(scaling_parameters, ARRAY_SIZE(scaling_parameters)); /* Fill VPIT Parameters */ --- linux-3.2.0.orig/drivers/video/console/vgacon.c +++ linux-3.2.0/drivers/video/console/vgacon.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -1064,7 +1065,7 @@ unsigned short video_port_status = vga_video_port_reg + 6; int font_select = 0x00, beg, i; char *charmap; - + bool clear_attribs = false; if (vga_video_type != VIDEO_TYPE_EGAM) { charmap = (char *) VGA_MAP_MEM(colourmap, 0); beg = 0x0e; @@ -1124,11 +1125,15 @@ if (arg) { if (set) - for (i = 0; i < cmapsz; i++) + for (i = 0; i < cmapsz; i++) { vga_writeb(arg[i], charmap + i); + cond_resched(); + } else - for (i = 0; i < cmapsz; i++) + for (i = 0; i < cmapsz; i++) { arg[i] = vga_readb(charmap + i); + cond_resched(); + } /* * In 512-character mode, the character map is not contiguous if @@ -1139,11 +1144,15 @@ charmap += 2 * cmapsz; arg += cmapsz; if (set) - for (i = 0; i < cmapsz; i++) + for (i = 0; i < cmapsz; i++) { vga_writeb(arg[i], charmap + i); + cond_resched(); + } else - for (i = 0; i < cmapsz; i++) + for (i = 0; i < cmapsz; i++) { arg[i] = vga_readb(charmap + i); + cond_resched(); + } } } @@ -1169,12 +1178,6 @@ /* if 512 char mode is already enabled don't re-enable it. */ if ((set) && (ch512 != vga_512_chars)) { - /* attribute controller */ - for (i = 0; i < MAX_NR_CONSOLES; i++) { - struct vc_data *c = vc_cons[i].d; - if (c && c->vc_sw == &vga_con) - c->vc_hi_font_mask = ch512 ? 0x0800 : 0; - } vga_512_chars = ch512; /* 256-char: enable intensity bit 512-char: disable intensity bit */ @@ -1185,8 +1188,22 @@ it means, but it works, and it appears necessary */ inb_p(video_port_status); vga_wattr(state->vgabase, VGA_AR_ENABLE_DISPLAY, 0); + clear_attribs = true; } raw_spin_unlock_irq(&vga_lock); + + if (clear_attribs) { + for (i = 0; i < MAX_NR_CONSOLES; i++) { + struct vc_data *c = vc_cons[i].d; + if (c && c->vc_sw == &vga_con) { + /* force hi font mask to 0, so we always clear + the bit on either transition */ + c->vc_hi_font_mask = 0x00; + clear_buffer_attributes(c); + c->vc_hi_font_mask = ch512 ? 0x0800 : 0; + } + } + } return 0; } --- linux-3.2.0.orig/drivers/video/console/fbcon.c +++ linux-3.2.0/drivers/video/console/fbcon.c @@ -373,8 +373,15 @@ struct vc_data *vc = NULL; int c; int mode; + int ret; + + /* FIXME: we should sort out the unbind locking instead */ + /* instead we just fail to flash the cursor if we can't get + * the lock instead of blocking fbcon deinit */ + ret = console_trylock(); + if (ret == 0) + return; - console_lock(); if (ops && ops->currcon != -1) vc = vc_cons[ops->currcon].d; @@ -523,6 +530,33 @@ return retval; } +static int do_fbcon_takeover(int show_logo) +{ + int err, i; + + if (!num_registered_fb) + return -ENODEV; + + if (!show_logo) + logo_shown = FBCON_LOGO_DONTSHOW; + + for (i = first_fb_vc; i <= last_fb_vc; i++) + con2fb_map[i] = info_idx; + + err = do_take_over_console(&fb_con, first_fb_vc, last_fb_vc, + fbcon_is_default); + + if (err) { + for (i = first_fb_vc; i <= last_fb_vc; i++) + con2fb_map[i] = -1; + info_idx = -1; + } else { + fbcon_has_console_bind = 1; + } + + return err; +} + static int fbcon_takeover(int show_logo) { int err, i; @@ -809,6 +843,8 @@ * * Maps a virtual console @unit to a frame buffer device * @newidx. + * + * This should be called with the console lock held. */ static int set_con2fb_map(int unit, int newidx, int user) { @@ -826,7 +862,7 @@ if (!search_for_mapped_con() || !con_is_bound(&fb_con)) { info_idx = newidx; - return fbcon_takeover(0); + return do_fbcon_takeover(0); } if (oldidx != -1) @@ -834,7 +870,6 @@ found = search_fb_in_map(newidx); - console_lock(); con2fb_map[unit] = newidx; if (!err && !found) err = con2fb_acquire_newinfo(vc, info, unit, oldidx); @@ -861,7 +896,6 @@ if (!search_fb_in_map(info_idx)) info_idx = newidx; - console_unlock(); return err; } @@ -984,7 +1018,7 @@ } /* Setup default font */ - if (!p->fontdata) { + if (!p->fontdata && !vc->vc_font.data) { if (!fontname[0] || !(font = find_font(fontname))) font = get_default_font(info->var.xres, info->var.yres, @@ -994,6 +1028,8 @@ vc->vc_font.height = font->height; vc->vc_font.data = (void *)(p->fontdata = font->data); vc->vc_font.charcount = 256; /* FIXME Need to support more fonts */ + } else { + p->fontdata = vc->vc_font.data; } cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); @@ -1153,9 +1189,9 @@ ops->p = &fb_display[fg_console]; } -static void fbcon_free_font(struct display *p) +static void fbcon_free_font(struct display *p, bool freefont) { - if (p->userfont && p->fontdata && (--REFCOUNT(p->fontdata) == 0)) + if (freefont && p->userfont && p->fontdata && (--REFCOUNT(p->fontdata) == 0)) kfree(p->fontdata - FONT_EXTRA_WORDS * sizeof(int)); p->fontdata = NULL; p->userfont = 0; @@ -1167,8 +1203,8 @@ struct fb_info *info; struct fbcon_ops *ops; int idx; + bool free_font = true; - fbcon_free_font(p); idx = con2fb_map[vc->vc_num]; if (idx == -1) @@ -1179,6 +1215,8 @@ if (!info) goto finished; + if (info->flags & FBINFO_MISC_FIRMWARE) + free_font = false; ops = info->fbcon_par; if (!ops) @@ -1190,6 +1228,10 @@ ops->flags &= ~FBCON_FLAGS_INIT; finished: + fbcon_free_font(p, free_font); + if (free_font) + vc->vc_font.data = NULL; + if (!con_is_bound(&fb_con)) fbcon_exit(); @@ -2971,7 +3013,7 @@ { int ret; - ret = unbind_con_driver(&fb_con, first_fb_vc, last_fb_vc, + ret = do_unbind_con_driver(&fb_con, first_fb_vc, last_fb_vc, fbcon_is_default); if (!ret) @@ -2986,6 +3028,7 @@ } #endif /* CONFIG_VT_HW_CONSOLE_BINDING */ +/* called with console_lock held */ static int fbcon_fb_unbind(int idx) { int i, new_idx = -1, ret = 0; @@ -3012,6 +3055,7 @@ return ret; } +/* called with console_lock held */ static int fbcon_fb_unregistered(struct fb_info *info) { int i, idx; @@ -3044,11 +3088,12 @@ primary_device = -1; if (!num_registered_fb) - unregister_con_driver(&fb_con); + do_unregister_con_driver(&fb_con); return 0; } +/* called with console_lock held */ static void fbcon_remap_all(int idx) { int i; @@ -3093,6 +3138,7 @@ } #endif /* CONFIG_FRAMEBUFFER_DETECT_PRIMARY */ +/* called with console_lock held */ static int fbcon_fb_registered(struct fb_info *info) { int ret = 0, i, idx; @@ -3109,7 +3155,7 @@ } if (info_idx != -1) - ret = fbcon_takeover(1); + ret = do_fbcon_takeover(1); } else { for (i = first_fb_vc; i <= last_fb_vc; i++) { if (con2fb_map_boot[i] == idx) @@ -3245,6 +3291,7 @@ ret = fbcon_fb_unregistered(info); break; case FB_EVENT_SET_CONSOLE_MAP: + /* called with console lock held */ con2fb = event->data; ret = set_con2fb_map(con2fb->console - 1, con2fb->framebuffer, 1); --- linux-3.2.0.orig/drivers/base/Kconfig +++ linux-3.2.0/drivers/base/Kconfig @@ -174,4 +174,12 @@ source "drivers/base/regmap/Kconfig" +config SR_REPORT_TIME_LIMIT + int "Default low threshold" + depends on PM + default 100 + help + Print suspend/resume information for driver/device for time greater + then default msec, ie 100 msec. + endmenu --- linux-3.2.0.orig/drivers/base/bus.c +++ linux-3.2.0/drivers/base/bus.c @@ -289,7 +289,7 @@ struct device *dev; int error = 0; - if (!bus) + if (!bus || !bus->p) return -EINVAL; klist_iter_init_node(&bus->p->klist_devices, &i, @@ -323,7 +323,7 @@ struct klist_iter i; struct device *dev; - if (!bus) + if (!bus || !bus->p) return NULL; klist_iter_init_node(&bus->p->klist_devices, &i, --- linux-3.2.0.orig/drivers/base/firmware_class.c +++ linux-3.2.0/drivers/base/firmware_class.c @@ -226,13 +226,13 @@ int loading = simple_strtol(buf, NULL, 10); int i; + mutex_lock(&fw_lock); + + if (!fw_priv->fw) + goto out; + switch (loading) { case 1: - mutex_lock(&fw_lock); - if (!fw_priv->fw) { - mutex_unlock(&fw_lock); - break; - } firmware_free_data(fw_priv->fw); memset(fw_priv->fw, 0, sizeof(struct firmware)); /* If the pages are not owned by 'struct firmware' */ @@ -243,7 +243,6 @@ fw_priv->page_array_size = 0; fw_priv->nr_pages = 0; set_bit(FW_STATUS_LOADING, &fw_priv->status); - mutex_unlock(&fw_lock); break; case 0: if (test_bit(FW_STATUS_LOADING, &fw_priv->status)) { @@ -274,7 +273,8 @@ fw_load_abort(fw_priv); break; } - +out: + mutex_unlock(&fw_lock); return count; } --- linux-3.2.0.orig/drivers/base/power/runtime.c +++ linux-3.2.0/drivers/base/power/runtime.c @@ -385,7 +385,6 @@ goto repeat; } - dev->power.deferred_resume = false; if (dev->power.no_callbacks) goto no_callback; /* Assume success. */ @@ -446,6 +445,7 @@ wake_up_all(&dev->power.wait_queue); if (dev->power.deferred_resume) { + dev->power.deferred_resume = false; rpm_resume(dev, 0); retval = -EAGAIN; goto out; @@ -568,6 +568,7 @@ || dev->parent->power.runtime_status == RPM_ACTIVE) { atomic_inc(&dev->parent->power.child_count); spin_unlock(&dev->parent->power.lock); + retval = 1; goto no_callback; /* Assume success. */ } spin_unlock(&dev->parent->power.lock); @@ -645,7 +646,7 @@ } wake_up_all(&dev->power.wait_queue); - if (!retval) + if (retval >= 0) rpm_idle(dev, RPM_ASYNC); out: --- linux-3.2.0.orig/drivers/base/power/main.c +++ linux-3.2.0/drivers/base/power/main.c @@ -396,6 +396,24 @@ dev_name(dev), pm_verb(state.event), info, error); } +static void device_show_time(struct device *dev, ktime_t starttime, pm_message_t state, char *info) +{ + ktime_t calltime; + s64 usecs64; + int usecs; + + calltime = ktime_get(); + usecs64 = ktime_to_ns(ktime_sub(calltime, starttime)); + do_div(usecs64, NSEC_PER_USEC); + usecs = usecs64; + if (usecs == 0) + usecs = 1; + if ((usecs / USEC_PER_MSEC) > CONFIG_SR_REPORT_TIME_LIMIT) + pr_info("PM: %s%s%s of drv:%s dev:%s complete after %ld.%03ld msecs\n", info ?: "", info ? " " : "", pm_verb(state.event), + dev_driver_string(dev), dev_name(dev), usecs / USEC_PER_MSEC, + usecs % USEC_PER_MSEC); +} + static void dpm_show_time(ktime_t starttime, pm_message_t state, char *info) { ktime_t calltime; @@ -426,6 +444,7 @@ static int device_resume_noirq(struct device *dev, pm_message_t state) { int error = 0; + ktime_t starttime = ktime_get(); TRACE_DEVICE(dev); TRACE_RESUME(0); @@ -433,6 +452,7 @@ if (dev->pm_domain) { pm_dev_dbg(dev, state, "EARLY power domain "); error = pm_noirq_op(dev, &dev->pm_domain->ops, state); + device_show_time(dev, starttime, state, "early"); } else if (dev->type && dev->type->pm) { pm_dev_dbg(dev, state, "EARLY type "); error = pm_noirq_op(dev, dev->type->pm, state); @@ -515,6 +535,7 @@ { int error = 0; bool put = false; + ktime_t starttime = ktime_get(); TRACE_DEVICE(dev); TRACE_RESUME(0); @@ -568,6 +589,7 @@ } } + device_show_time(dev, starttime, state, NULL); End: dev->power.is_suspended = false; @@ -764,6 +786,7 @@ static int device_suspend_noirq(struct device *dev, pm_message_t state) { int error; + ktime_t starttime = ktime_get(); if (dev->pm_domain) { pm_dev_dbg(dev, state, "LATE power domain "); @@ -785,6 +808,7 @@ error = pm_noirq_op(dev, dev->bus->pm, state); if (error) return error; + device_show_time(dev, starttime, state, "late"); } return 0; @@ -865,11 +889,12 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async) { int error = 0; + ktime_t starttime = ktime_get(); dpm_wait_for_children(dev, async); if (async_error) - return 0; + goto Complete; pm_runtime_get_noresume(dev); if (pm_runtime_barrier(dev) && device_may_wakeup(dev)) @@ -878,7 +903,7 @@ if (pm_wakeup_pending()) { pm_runtime_put_sync(dev); async_error = -EBUSY; - return 0; + goto Complete; } device_lock(dev); @@ -917,6 +942,7 @@ } } + device_show_time(dev, starttime, state, NULL); End: if (!error) { dev->power.is_suspended = true; @@ -926,6 +952,8 @@ } device_unlock(dev); + + Complete: complete_all(&dev->power.completion); if (error) { --- linux-3.2.0.orig/drivers/base/power/domain.c +++ linux-3.2.0/drivers/base/power/domain.c @@ -751,7 +751,8 @@ if (IS_ERR(genpd)) return -EINVAL; - if (genpd->suspend_power_off) + if (genpd->suspend_power_off + || (dev->power.wakeup_path && genpd_dev_active_wakeup(genpd, dev))) return 0; /* --- linux-3.2.0.orig/drivers/base/regmap/regcache.c +++ linux-3.2.0/drivers/base/regmap/regcache.c @@ -54,7 +54,7 @@ for (count = 0, i = 0; i < map->num_reg_defaults_raw; i++) { val = regcache_get_val(map->reg_defaults_raw, i, map->cache_word_size); - if (!val) + if (regmap_volatile(map, i)) continue; count++; } @@ -69,7 +69,7 @@ for (i = 0, j = 0; i < map->num_reg_defaults_raw; i++) { val = regcache_get_val(map->reg_defaults_raw, i, map->cache_word_size); - if (!val) + if (regmap_volatile(map, i)) continue; map->reg_defaults[j].reg = i; map->reg_defaults[j].def = val; --- linux-3.2.0.orig/drivers/base/regmap/regmap-debugfs.c +++ linux-3.2.0/drivers/base/regmap/regmap-debugfs.c @@ -67,7 +67,7 @@ /* If we're in the region the user is trying to read */ if (p >= *ppos) { /* ...but not beyond it */ - if (buf_pos >= count - 1 - tot_len) + if (buf_pos + 1 + tot_len >= count) break; /* Format the register */ --- linux-3.2.0.orig/drivers/dca/dca-core.c +++ linux-3.2.0/drivers/dca/dca-core.c @@ -420,6 +420,11 @@ raw_spin_lock_irqsave(&dca_lock, flags); + if (list_empty(&dca_domains)) { + raw_spin_unlock_irqrestore(&dca_lock, flags); + return; + } + list_del(&dca->node); pci_rc = dca_pci_rc_from_dev(dev); --- linux-3.2.0.orig/drivers/pci/pci.c +++ linux-3.2.0/drivers/pci/pci.c @@ -664,15 +664,11 @@ error = platform_pci_set_power_state(dev, state); if (!error) pci_update_current_state(dev, state); - /* Fall back to PCI_D0 if native PM is not supported */ - if (!dev->pm_cap) - dev->current_state = PCI_D0; - } else { + } else error = -ENODEV; - /* Fall back to PCI_D0 if native PM is not supported */ - if (!dev->pm_cap) - dev->current_state = PCI_D0; - } + + if (error && !dev->pm_cap) /* Fall back to PCI_D0 */ + dev->current_state = PCI_D0; return error; } --- linux-3.2.0.orig/drivers/pci/remove.c +++ linux-3.2.0/drivers/pci/remove.c @@ -19,6 +19,8 @@ static void pci_stop_dev(struct pci_dev *dev) { + pci_pme_active(dev, false); + if (dev->is_added) { pci_proc_detach_device(dev); pci_remove_sysfs_dev_files(dev); --- linux-3.2.0.orig/drivers/pci/setup-bus.c +++ linux-3.2.0/drivers/pci/setup-bus.c @@ -612,7 +612,7 @@ if (children_add_size > add_size) add_size = children_add_size; size1 = (!realloc_head || (realloc_head && !add_size)) ? size0 : - calculate_iosize(size, min_size+add_size, size1, + calculate_iosize(size, min_size, add_size + size1, resource_size(b_res), 4096); if (!size0 && !size1) { if (b_res->start || b_res->end) @@ -726,7 +726,7 @@ if (children_add_size > add_size) add_size = children_add_size; size1 = (!realloc_head || (realloc_head && !add_size)) ? size0 : - calculate_memsize(size, min_size+add_size, 0, + calculate_memsize(size, min_size, add_size, resource_size(b_res), min_align); if (!size0 && !size1) { if (b_res->start || b_res->end) --- linux-3.2.0.orig/drivers/pci/pci-acpi.c +++ linux-3.2.0/drivers/pci/pci-acpi.c @@ -395,7 +395,6 @@ if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_ASPM) { printk(KERN_INFO"ACPI FADT declares the system doesn't support PCIe ASPM, so disable it\n"); - pcie_clear_aspm(); pcie_no_aspm(); } --- linux-3.2.0.orig/drivers/pci/setup-res.c +++ linux-3.2.0/drivers/pci/setup-res.c @@ -233,11 +233,12 @@ return -EINVAL; } - new_size = resource_size(res) + addsize + min_align; + /* already aligned with min_align */ + new_size = resource_size(res) + addsize; ret = _pci_assign_resource(dev, resno, new_size, min_align); if (!ret) { res->flags &= ~IORESOURCE_STARTALIGN; - dev_info(&dev->dev, "BAR %d: assigned %pR\n", resno, res); + dev_info(&dev->dev, "BAR %d: reassigned %pR\n", resno, res); if (resno < PCI_BRIDGE_RESOURCES) pci_update_resource(dev, resno); } --- linux-3.2.0.orig/drivers/pci/pci-driver.c +++ linux-3.2.0/drivers/pci/pci-driver.c @@ -742,6 +742,18 @@ pci_pm_set_unknown_state(pci_dev); + /* + * Some BIOSes from ASUS have a bug: If a USB EHCI host controller's + * PCI COMMAND register isn't 0, the BIOS assumes that the controller + * hasn't been quiesced and tries to turn it off. If the controller + * is already in D3, this can hang or cause memory corruption. + * + * Since the value of the COMMAND register doesn't matter once the + * device has been suspended, we can safely set it to 0 here. + */ + if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) + pci_write_config_word(pci_dev, PCI_COMMAND, 0); + return 0; } @@ -940,6 +952,13 @@ if (!pci_dev->state_saved && !pci_is_bridge(pci_dev)) pci_prepare_to_sleep(pci_dev); + /* + * The reason for doing this here is the same as for the analogous code + * in pci_pm_suspend_noirq(). + */ + if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) + pci_write_config_word(pci_dev, PCI_COMMAND, 0); + return 0; } --- linux-3.2.0.orig/drivers/pci/probe.c +++ linux-3.2.0/drivers/pci/probe.c @@ -651,10 +651,17 @@ dev_dbg(&dev->dev, "scanning [bus %02x-%02x] behind bridge, pass %d\n", secondary, subordinate, pass); + if (!primary && (primary != bus->number) && secondary && subordinate) { + dev_warn(&dev->dev, "Primary bus is hard wired to 0\n"); + primary = bus->number; + } + /* Check if setup is sensible at all */ if (!pass && - (primary != bus->number || secondary <= bus->number)) { - dev_dbg(&dev->dev, "bus configuration invalid, reconfiguring\n"); + (primary != bus->number || secondary <= bus->number || + secondary > subordinate)) { + dev_info(&dev->dev, "bridge configuration invalid ([bus %02x-%02x]), reconfiguring\n", + secondary, subordinate); broken = 1; } --- linux-3.2.0.orig/drivers/pci/quirks.c +++ linux-3.2.0/drivers/pci/quirks.c @@ -105,6 +105,21 @@ } DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, quirk_mmio_always_on); +/* The BAR0 ~ BAR4 of Marvell 9125 device can't be accessed +* by IO resource file, and need to skip the files +*/ +static void quirk_marvell_mask_bar(struct pci_dev *dev) +{ + int i; + + for (i = 0; i < 5; i++) + if (dev->resource[i].start) + dev->resource[i].start = + dev->resource[i].end = 0; +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9125, + quirk_marvell_mask_bar); + /* The Mellanox Tavor device gives false positive parity errors * Mark this device with a broken_parity_status, to allow * PCI scanning code to "skip" this now blacklisted device. @@ -1123,6 +1138,8 @@ DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP700_SATA, quirk_amd_ide_mode); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_HUDSON2_SATA_IDE, quirk_amd_ide_mode); DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_HUDSON2_SATA_IDE, quirk_amd_ide_mode); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x7900, quirk_amd_ide_mode); +DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_AMD, 0x7900, quirk_amd_ide_mode); /* * Serverworks CSB5 IDE does not fully support native mode @@ -2161,6 +2178,24 @@ PCI_DEVICE_ID_NX2_5709S, quirk_brcm_570x_limit_vpd); +static void __devinit quirk_brcm_5719_limit_mrrs(struct pci_dev *dev) +{ + u32 rev; + + pci_read_config_dword(dev, 0xf4, &rev); + + /* Only CAP the MRRS if the device is a 5719 A0 */ + if (rev == 0x05719000) { + int readrq = pcie_get_readrq(dev); + if (readrq > 2048) + pcie_set_readrq(dev, 2048); + } +} + +DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_BROADCOM, + PCI_DEVICE_ID_TIGON3_5719, + quirk_brcm_5719_limit_mrrs); + /* Originally in EDAC sources for i82875P: * Intel tells BIOS developers to hide device 6 which * configures the overflow device access containing @@ -2747,7 +2782,7 @@ if (PCI_FUNC(dev->devfn)) return; /* - * RICOH 0xe823 SD/MMC card reader fails to recognize + * RICOH 0xe822 and 0xe823 SD/MMC card readers fail to recognize * certain types of SD/MMC cards. Lowering the SD base * clock frequency from 200Mhz to 50Mhz fixes this issue. * @@ -2758,7 +2793,8 @@ * 0xf9 - Key register for 0x150 * 0xfc - key register for 0xe1 */ - if (dev->device == PCI_DEVICE_ID_RICOH_R5CE823) { + if (dev->device == PCI_DEVICE_ID_RICOH_R5CE822 || + dev->device == PCI_DEVICE_ID_RICOH_R5CE823) { pci_write_config_byte(dev, 0xf9, 0xfc); pci_write_config_byte(dev, 0x150, 0x10); pci_write_config_byte(dev, 0xf9, 0x00); @@ -2785,6 +2821,8 @@ } DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832); DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5CE822, ricoh_mmc_fixup_r5c832); +DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5CE822, ricoh_mmc_fixup_r5c832); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5CE823, ricoh_mmc_fixup_r5c832); DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5CE823, ricoh_mmc_fixup_r5c832); #endif /*CONFIG_MMC_RICOH_MMC*/ @@ -2906,6 +2944,40 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata); +/* + * Some BIOS implementations leave the Intel GPU interrupts enabled, + * even though no one is handling them (f.e. i915 driver is never loaded). + * Additionally the interrupt destination is not set up properly + * and the interrupt ends up -somewhere-. + * + * These spurious interrupts are "sticky" and the kernel disables + * the (shared) interrupt line after 100.000+ generated interrupts. + * + * Fix it by disabling the still enabled interrupts. + * This resolves crashes often seen on monitor unplug. + */ +#define I915_DEIER_REG 0x4400c +static void __devinit disable_igfx_irq(struct pci_dev *dev) +{ + void __iomem *regs = pci_iomap(dev, 0, 0); + if (regs == NULL) { + dev_warn(&dev->dev, "igfx quirk: Can't iomap PCI device\n"); + return; + } + + /* Check if any interrupt line is still enabled */ + if (readl(regs + I915_DEIER_REG) != 0) { + dev_warn(&dev->dev, "BIOS left Intel GPU interrupts enabled; " + "disabling\n"); + + writel(0, regs + I915_DEIER_REG); + } + + pci_iounmap(dev, regs); +} +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); + static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) { --- linux-3.2.0.orig/drivers/pci/msi.c +++ linux-3.2.0/drivers/pci/msi.c @@ -870,5 +870,15 @@ void pci_msi_init_pci_dev(struct pci_dev *dev) { + int pos; INIT_LIST_HEAD(&dev->msi_list); + + /* Disable the msi hardware to avoid screaming interrupts + * during boot. This is the power on reset default so + * usually this should be a noop. + */ + pos = pci_find_capability(dev, PCI_CAP_ID_MSI); + if (pos) + msi_set_enable(dev, pos, 0); + msix_set_enable(dev, 0); } --- linux-3.2.0.orig/drivers/pci/hotplug/shpchp.h +++ linux-3.2.0/drivers/pci/hotplug/shpchp.h @@ -46,8 +46,6 @@ extern int shpchp_poll_mode; extern int shpchp_poll_time; extern int shpchp_debug; -extern struct workqueue_struct *shpchp_wq; -extern struct workqueue_struct *shpchp_ordered_wq; #define dbg(format, arg...) \ do { \ @@ -91,6 +89,7 @@ struct list_head slot_list; struct delayed_work work; /* work for button event */ struct mutex lock; + struct workqueue_struct *wq; u8 hp_slot; }; --- linux-3.2.0.orig/drivers/pci/hotplug/pciehp_core.c +++ linux-3.2.0/drivers/pci/hotplug/pciehp_core.c @@ -42,8 +42,6 @@ int pciehp_poll_mode; int pciehp_poll_time; int pciehp_force; -struct workqueue_struct *pciehp_wq; -struct workqueue_struct *pciehp_ordered_wq; #define DRIVER_VERSION "0.4" #define DRIVER_AUTHOR "Dan Zink , Greg Kroah-Hartman , Dely Sy " @@ -341,33 +339,19 @@ { int retval = 0; - pciehp_wq = alloc_workqueue("pciehp", 0, 0); - if (!pciehp_wq) - return -ENOMEM; - - pciehp_ordered_wq = alloc_ordered_workqueue("pciehp_ordered", 0); - if (!pciehp_ordered_wq) { - destroy_workqueue(pciehp_wq); - return -ENOMEM; - } - pciehp_firmware_init(); retval = pcie_port_service_register(&hpdriver_portdrv); dbg("pcie_port_service_register = %d\n", retval); info(DRIVER_DESC " version: " DRIVER_VERSION "\n"); - if (retval) { - destroy_workqueue(pciehp_ordered_wq); - destroy_workqueue(pciehp_wq); + if (retval) dbg("Failure to register service\n"); - } + return retval; } static void __exit pcied_cleanup(void) { dbg("unload_pciehpd()\n"); - destroy_workqueue(pciehp_ordered_wq); - destroy_workqueue(pciehp_wq); pcie_port_service_unregister(&hpdriver_portdrv); info(DRIVER_DESC " version: " DRIVER_VERSION " unloaded\n"); } --- linux-3.2.0.orig/drivers/pci/hotplug/acpiphp_glue.c +++ linux-3.2.0/drivers/pci/hotplug/acpiphp_glue.c @@ -132,6 +132,15 @@ if (!acpi_pci_check_ejectable(pbus, handle) && !is_dock_device(handle)) return AE_OK; + status = acpi_evaluate_integer(handle, "_ADR", NULL, &adr); + if (ACPI_FAILURE(status)) { + warn("can't evaluate _ADR (%#x)\n", status); + return AE_OK; + } + + device = (adr >> 16) & 0xffff; + function = adr & 0xffff; + pdev = pbus->self; if (pdev && pci_is_pcie(pdev)) { tmp = acpi_find_root_bridge_handle(pdev); @@ -144,10 +153,6 @@ } } - acpi_evaluate_integer(handle, "_ADR", NULL, &adr); - device = (adr >> 16) & 0xffff; - function = adr & 0xffff; - newfunc = kzalloc(sizeof(struct acpiphp_func), GFP_KERNEL); if (!newfunc) return AE_NO_MEMORY; --- linux-3.2.0.orig/drivers/pci/hotplug/pciehp_ctrl.c +++ linux-3.2.0/drivers/pci/hotplug/pciehp_ctrl.c @@ -49,7 +49,7 @@ info->p_slot = p_slot; INIT_WORK(&info->work, interrupt_event_handler); - queue_work(pciehp_wq, &info->work); + queue_work(p_slot->wq, &info->work); return 0; } @@ -344,7 +344,7 @@ kfree(info); goto out; } - queue_work(pciehp_ordered_wq, &info->work); + queue_work(p_slot->wq, &info->work); out: mutex_unlock(&p_slot->lock); } @@ -377,7 +377,7 @@ if (ATTN_LED(ctrl)) pciehp_set_attention_status(p_slot, 0); - queue_delayed_work(pciehp_wq, &p_slot->work, 5*HZ); + queue_delayed_work(p_slot->wq, &p_slot->work, 5*HZ); break; case BLINKINGOFF_STATE: case BLINKINGON_STATE: @@ -439,7 +439,7 @@ else p_slot->state = POWERON_STATE; - queue_work(pciehp_ordered_wq, &info->work); + queue_work(p_slot->wq, &info->work); } static void interrupt_event_handler(struct work_struct *work) --- linux-3.2.0.orig/drivers/pci/hotplug/pciehp_hpc.c +++ linux-3.2.0/drivers/pci/hotplug/pciehp_hpc.c @@ -789,24 +789,32 @@ static int pcie_init_slot(struct controller *ctrl) { struct slot *slot; + char name[32]; slot = kzalloc(sizeof(*slot), GFP_KERNEL); if (!slot) return -ENOMEM; + snprintf(name, sizeof(name), "pciehp-%u", PSN(ctrl)); + slot->wq = alloc_workqueue(name, 0, 0); + if (!slot->wq) + goto abort; + slot->ctrl = ctrl; mutex_init(&slot->lock); INIT_DELAYED_WORK(&slot->work, pciehp_queue_pushbutton_work); ctrl->slot = slot; return 0; +abort: + kfree(slot); + return -ENOMEM; } static void pcie_cleanup_slot(struct controller *ctrl) { struct slot *slot = ctrl->slot; cancel_delayed_work(&slot->work); - flush_workqueue(pciehp_wq); - flush_workqueue(pciehp_ordered_wq); + destroy_workqueue(slot->wq); kfree(slot); } --- linux-3.2.0.orig/drivers/pci/hotplug/shpchp_ctrl.c +++ linux-3.2.0/drivers/pci/hotplug/shpchp_ctrl.c @@ -51,7 +51,7 @@ info->p_slot = p_slot; INIT_WORK(&info->work, interrupt_event_handler); - queue_work(shpchp_wq, &info->work); + queue_work(p_slot->wq, &info->work); return 0; } @@ -456,7 +456,7 @@ kfree(info); goto out; } - queue_work(shpchp_ordered_wq, &info->work); + queue_work(p_slot->wq, &info->work); out: mutex_unlock(&p_slot->lock); } @@ -504,7 +504,7 @@ p_slot->hpc_ops->green_led_blink(p_slot); p_slot->hpc_ops->set_attention_status(p_slot, 0); - queue_delayed_work(shpchp_wq, &p_slot->work, 5*HZ); + queue_delayed_work(p_slot->wq, &p_slot->work, 5*HZ); break; case BLINKINGOFF_STATE: case BLINKINGON_STATE: --- linux-3.2.0.orig/drivers/pci/hotplug/pciehp.h +++ linux-3.2.0/drivers/pci/hotplug/pciehp.h @@ -44,8 +44,6 @@ extern int pciehp_poll_time; extern int pciehp_debug; extern int pciehp_force; -extern struct workqueue_struct *pciehp_wq; -extern struct workqueue_struct *pciehp_ordered_wq; #define dbg(format, arg...) \ do { \ @@ -79,6 +77,7 @@ struct hotplug_slot *hotplug_slot; struct delayed_work work; /* work for button event */ struct mutex lock; + struct workqueue_struct *wq; }; struct event_info { --- linux-3.2.0.orig/drivers/pci/hotplug/shpchp_core.c +++ linux-3.2.0/drivers/pci/hotplug/shpchp_core.c @@ -39,8 +39,6 @@ int shpchp_debug; int shpchp_poll_mode; int shpchp_poll_time; -struct workqueue_struct *shpchp_wq; -struct workqueue_struct *shpchp_ordered_wq; #define DRIVER_VERSION "0.4" #define DRIVER_AUTHOR "Dan Zink , Greg Kroah-Hartman , Dely Sy " @@ -123,6 +121,14 @@ slot->device = ctrl->slot_device_offset + i; slot->hpc_ops = ctrl->hpc_ops; slot->number = ctrl->first_slot + (ctrl->slot_num_inc * i); + + snprintf(name, sizeof(name), "shpchp-%d", slot->number); + slot->wq = alloc_workqueue(name, 0, 0); + if (!slot->wq) { + retval = -ENOMEM; + goto error_info; + } + mutex_init(&slot->lock); INIT_DELAYED_WORK(&slot->work, shpchp_queue_pushbutton_work); @@ -142,7 +148,7 @@ if (retval) { ctrl_err(ctrl, "pci_hp_register failed with error %d\n", retval); - goto error_info; + goto error_slotwq; } get_power_status(hotplug_slot, &info->power_status); @@ -154,6 +160,8 @@ } return 0; +error_slotwq: + destroy_workqueue(slot->wq); error_info: kfree(info); error_hpslot: @@ -174,8 +182,7 @@ slot = list_entry(tmp, struct slot, slot_list); list_del(&slot->slot_list); cancel_delayed_work(&slot->work); - flush_workqueue(shpchp_wq); - flush_workqueue(shpchp_ordered_wq); + destroy_workqueue(slot->wq); pci_hp_deregister(slot->hotplug_slot); } } @@ -358,25 +365,12 @@ static int __init shpcd_init(void) { - int retval = 0; - - shpchp_wq = alloc_ordered_workqueue("shpchp", 0); - if (!shpchp_wq) - return -ENOMEM; - - shpchp_ordered_wq = alloc_ordered_workqueue("shpchp_ordered", 0); - if (!shpchp_ordered_wq) { - destroy_workqueue(shpchp_wq); - return -ENOMEM; - } + int retval; retval = pci_register_driver(&shpc_driver); dbg("%s: pci_register_driver = %d\n", __func__, retval); info(DRIVER_DESC " version: " DRIVER_VERSION "\n"); - if (retval) { - destroy_workqueue(shpchp_ordered_wq); - destroy_workqueue(shpchp_wq); - } + return retval; } @@ -384,8 +378,6 @@ { dbg("unload_shpchpd()\n"); pci_unregister_driver(&shpc_driver); - destroy_workqueue(shpchp_ordered_wq); - destroy_workqueue(shpchp_wq); info(DRIVER_DESC " version: " DRIVER_VERSION " unloaded\n"); } --- linux-3.2.0.orig/drivers/pci/pcie/aspm.c +++ linux-3.2.0/drivers/pci/pcie/aspm.c @@ -68,7 +68,7 @@ struct aspm_latency acceptable[8]; }; -static int aspm_disabled, aspm_force, aspm_clear_state; +static int aspm_disabled, aspm_force; static bool aspm_support_enabled = true; static DEFINE_MUTEX(aspm_lock); static LIST_HEAD(link_list); @@ -500,9 +500,6 @@ int pos; u32 reg32; - if (aspm_clear_state) - return -EINVAL; - /* * Some functions in a slot might not all be PCIe functions, * very strange. Disable ASPM for the whole slot @@ -511,6 +508,16 @@ pos = pci_pcie_cap(child); if (!pos) return -EINVAL; + + /* + * If ASPM is disabled then we're not going to change + * the BIOS state. It's safe to continue even if it's a + * pre-1.1 device + */ + + if (aspm_disabled) + continue; + /* * Disable ASPM for pre-1.1 PCIe device, we follow MS to use * RBER bit to determine if a function is 1.1 version device @@ -574,9 +581,6 @@ pdev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM) return; - if (aspm_disabled && !aspm_clear_state) - return; - /* VIA has a strange chipset, root port is under a bridge */ if (pdev->pcie_type == PCI_EXP_TYPE_ROOT_PORT && pdev->bus->self) @@ -608,7 +612,7 @@ * the BIOS's expectation, we'll do so once pci_enable_device() is * called. */ - if (aspm_policy != POLICY_POWERSAVE || aspm_clear_state) { + if (aspm_policy != POLICY_POWERSAVE) { pcie_config_aspm_path(link); pcie_set_clkpm(link, policy_to_clkpm_state(link)); } @@ -649,8 +653,7 @@ struct pci_dev *parent = pdev->bus->self; struct pcie_link_state *link, *root, *parent_link; - if ((aspm_disabled && !aspm_clear_state) || !pci_is_pcie(pdev) || - !parent || !parent->link_state) + if (!pci_is_pcie(pdev) || !parent || !parent->link_state) return; if ((parent->pcie_type != PCI_EXP_TYPE_ROOT_PORT) && (parent->pcie_type != PCI_EXP_TYPE_DOWNSTREAM)) @@ -734,13 +737,18 @@ * pci_disable_link_state - disable pci device's link state, so the link will * never enter specific states */ -static void __pci_disable_link_state(struct pci_dev *pdev, int state, bool sem) +static void __pci_disable_link_state(struct pci_dev *pdev, int state, bool sem, + bool force) { struct pci_dev *parent = pdev->bus->self; struct pcie_link_state *link; - if (aspm_disabled || !pci_is_pcie(pdev)) + if (aspm_disabled && !force) + return; + + if (!pci_is_pcie(pdev)) return; + if (pdev->pcie_type == PCI_EXP_TYPE_ROOT_PORT || pdev->pcie_type == PCI_EXP_TYPE_DOWNSTREAM) parent = pdev; @@ -768,16 +776,34 @@ void pci_disable_link_state_locked(struct pci_dev *pdev, int state) { - __pci_disable_link_state(pdev, state, false); + __pci_disable_link_state(pdev, state, false, false); } EXPORT_SYMBOL(pci_disable_link_state_locked); void pci_disable_link_state(struct pci_dev *pdev, int state) { - __pci_disable_link_state(pdev, state, true); + __pci_disable_link_state(pdev, state, true, false); } EXPORT_SYMBOL(pci_disable_link_state); +void pcie_clear_aspm(struct pci_bus *bus) +{ + struct pci_dev *child; + + if (aspm_force) + return; + + /* + * Clear any ASPM setup that the firmware has carried out on this bus + */ + list_for_each_entry(child, &bus->devices, bus_list) { + __pci_disable_link_state(child, PCIE_LINK_STATE_L0S | + PCIE_LINK_STATE_L1 | + PCIE_LINK_STATE_CLKPM, + false, true); + } +} + static int pcie_aspm_set_policy(const char *val, struct kernel_param *kp) { int i; @@ -935,6 +961,7 @@ static int __init pcie_aspm_disable(char *str) { if (!strcmp(str, "off")) { + aspm_policy = POLICY_DEFAULT; aspm_disabled = 1; aspm_support_enabled = false; printk(KERN_INFO "PCIe ASPM is disabled\n"); @@ -947,16 +974,18 @@ __setup("pcie_aspm=", pcie_aspm_disable); -void pcie_clear_aspm(void) -{ - if (!aspm_force) - aspm_clear_state = 1; -} - void pcie_no_aspm(void) { - if (!aspm_force) + /* + * Disabling ASPM is intended to prevent the kernel from modifying + * existing hardware state, not to clear existing state. To that end: + * (a) set policy to POLICY_DEFAULT in order to avoid changing state + * (b) prevent userspace from changing policy + */ + if (!aspm_force) { + aspm_policy = POLICY_DEFAULT; aspm_disabled = 1; + } } /** --- linux-3.2.0.orig/drivers/pci/pcie/aer/aerdrv_core.c +++ linux-3.2.0/drivers/pci/pcie/aer/aerdrv_core.c @@ -637,6 +637,7 @@ continue; } do_recovery(pdev, entry.severity); + pci_dev_put(pdev); } } #endif --- linux-3.2.0.orig/drivers/hid/hid-input.c +++ linux-3.2.0/drivers/hid/hid-input.c @@ -648,6 +648,15 @@ } break; + case HID_UP_HPVENDOR2: + set_bit(EV_REP, input->evbit); + switch (usage->hid & HID_USAGE) { + case 0x003: map_key_clear(KEY_BRIGHTNESSDOWN); break; + case 0x004: map_key_clear(KEY_BRIGHTNESSUP); break; + default: goto ignore; + } + break; + case HID_UP_MSVENDOR: goto ignore; --- linux-3.2.0.orig/drivers/hid/Kconfig +++ linux-3.2.0/drivers/hid/Kconfig @@ -335,6 +335,7 @@ Say Y here if you have one of the following devices: - 3M PCT touch screens - ActionStar dual touch panels + - Atmel panels - Cando dual touch panels - Chunghwa panels - CVTouch panels @@ -349,12 +350,15 @@ - Lumio CrystalTouch panels - MosArt dual-touch panels - PenMount dual touch panels + - PixArt optical touch screen - Pixcir dual touch panels + - Quanta panels - eGalax dual-touch panels, including the Joojoo and Wetab tablets - Stantum multitouch panels - Touch International Panels - Unitec Panels - XAT optical touch panels + - Xiroku optical touch panels If unsure, say N. @@ -466,12 +470,6 @@ Support for Primax devices that are not fully compliant with the HID standard. -config HID_QUANTA - tristate "Quanta Optical Touch panels" - depends on USB_HID - ---help--- - Support for Quanta Optical Touch dual-touch panels. - config HID_ROCCAT tristate "Roccat special event support" depends on USB_HID @@ -620,6 +618,7 @@ depends on BT_HIDP depends on LEDS_CLASS select POWER_SUPPLY + select INPUT_FF_MEMLESS ---help--- Support for the Nintendo Wii Remote bluetooth device. @@ -643,6 +642,12 @@ ---help--- Support for Zydacron remote control. +config HYPERV_MOUSE + tristate "Microsoft Hyper-V mouse driver" + depends on HYPERV + ---help--- + Select this option to enable the Hyper-V mouse driver. + endmenu endif # HID_SUPPORT --- linux-3.2.0.orig/drivers/hid/hid-cypress.c +++ linux-3.2.0/drivers/hid/hid-cypress.c @@ -129,6 +129,8 @@ .driver_data = CP_RDESC_SWAPPED_MIN_MAX }, { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_3), .driver_data = CP_RDESC_SWAPPED_MIN_MAX }, + { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_4), + .driver_data = CP_RDESC_SWAPPED_MIN_MAX }, { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_MOUSE), .driver_data = CP_2WHEEL_MOUSE_HACK }, { } --- linux-3.2.0.orig/drivers/hid/hid-logitech-dj.h +++ linux-3.2.0/drivers/hid/hid-logitech-dj.h @@ -101,6 +101,7 @@ struct work_struct work; struct kfifo notif_fifo; spinlock_t lock; + bool querying_devices; }; struct dj_device { --- linux-3.2.0.orig/drivers/hid/hid-logitech-dj.c +++ linux-3.2.0/drivers/hid/hid-logitech-dj.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "usbhid/usbhid.h" #include "hid-ids.h" #include "hid-logitech-dj.h" @@ -184,6 +185,7 @@ static int logi_dj_output_hidraw_report(struct hid_device *hid, u8 * buf, size_t count, unsigned char report_type); +static int logi_dj_recv_query_paired_devices(struct dj_receiver_dev *djrcv_dev); static void logi_dj_recv_destroy_djhid_device(struct dj_receiver_dev *djrcv_dev, struct dj_report *dj_report) @@ -224,6 +226,7 @@ if (dj_report->report_params[DEVICE_PAIRED_PARAM_SPFUNCTION] & SPFUNCTION_DEVICE_LIST_EMPTY) { dbg_hid("%s: device list is empty\n", __func__); + djrcv_dev->querying_devices = false; return; } @@ -234,6 +237,12 @@ return; } + if (djrcv_dev->paired_dj_devices[dj_report->device_index]) { + /* The device is already known. No need to reallocate it. */ + dbg_hid("%s: device is already known\n", __func__); + return; + } + dj_hiddev = hid_allocate_device(); if (IS_ERR(dj_hiddev)) { dev_err(&djrcv_hdev->dev, "%s: hid_allocate_device failed\n", @@ -265,8 +274,8 @@ goto dj_device_allocate_fail; } - dj_dev->reports_supported = le32_to_cpu( - dj_report->report_params[DEVICE_PAIRED_RF_REPORT_TYPE]); + dj_dev->reports_supported = get_unaligned_le32( + dj_report->report_params + DEVICE_PAIRED_RF_REPORT_TYPE); dj_dev->hdev = dj_hiddev; dj_dev->dj_receiver_dev = djrcv_dev; dj_dev->device_index = dj_report->device_index; @@ -297,6 +306,7 @@ struct dj_report dj_report; unsigned long flags; int count; + int retval; dbg_hid("%s\n", __func__); @@ -329,6 +339,25 @@ logi_dj_recv_destroy_djhid_device(djrcv_dev, &dj_report); break; default: + /* A normal report (i. e. not belonging to a pair/unpair notification) + * arriving here, means that the report arrived but we did not have a + * paired dj_device associated to the report's device_index, this + * means that the original "device paired" notification corresponding + * to this dj_device never arrived to this driver. The reason is that + * hid-core discards all packets coming from a device while probe() is + * executing. */ + if (!djrcv_dev->paired_dj_devices[dj_report.device_index]) { + /* ok, we don't know the device, just re-ask the + * receiver for the list of connected devices. */ + retval = logi_dj_recv_query_paired_devices(djrcv_dev); + if (!retval) { + /* everything went fine, so just leave */ + break; + } + dev_err(&djrcv_dev->hdev->dev, + "%s:logi_dj_recv_query_paired_devices " + "error:%d\n", __func__, retval); + } dbg_hid("%s: unexpected report type\n", __func__); } } @@ -359,6 +388,12 @@ if (!djdev) { dbg_hid("djrcv_dev->paired_dj_devices[dj_report->device_index]" " is NULL, index %d\n", dj_report->device_index); + kfifo_in(&djrcv_dev->notif_fifo, dj_report, sizeof(struct dj_report)); + + if (schedule_work(&djrcv_dev->work) == 0) { + dbg_hid("%s: did not schedule the work item, was already " + "queued\n", __func__); + } return; } @@ -389,6 +424,12 @@ if (dj_device == NULL) { dbg_hid("djrcv_dev->paired_dj_devices[dj_report->device_index]" " is NULL, index %d\n", dj_report->device_index); + kfifo_in(&djrcv_dev->notif_fifo, dj_report, sizeof(struct dj_report)); + + if (schedule_work(&djrcv_dev->work) == 0) { + dbg_hid("%s: did not schedule the work item, was already " + "queued\n", __func__); + } return; } @@ -427,27 +468,42 @@ static int logi_dj_recv_query_paired_devices(struct dj_receiver_dev *djrcv_dev) { - struct dj_report dj_report; + struct dj_report *dj_report; + int retval; - memset(&dj_report, 0, sizeof(dj_report)); - dj_report.report_id = REPORT_ID_DJ_SHORT; - dj_report.device_index = 0xFF; - dj_report.report_type = REPORT_TYPE_CMD_GET_PAIRED_DEVICES; - return logi_dj_recv_send_report(djrcv_dev, &dj_report); + /* no need to protect djrcv_dev->querying_devices */ + if (djrcv_dev->querying_devices) + return 0; + + dj_report = kzalloc(sizeof(struct dj_report), GFP_KERNEL); + if (!dj_report) + return -ENOMEM; + dj_report->report_id = REPORT_ID_DJ_SHORT; + dj_report->device_index = 0xFF; + dj_report->report_type = REPORT_TYPE_CMD_GET_PAIRED_DEVICES; + retval = logi_dj_recv_send_report(djrcv_dev, dj_report); + kfree(dj_report); + return retval; } + static int logi_dj_recv_switch_to_dj_mode(struct dj_receiver_dev *djrcv_dev, unsigned timeout) { - struct dj_report dj_report; + struct dj_report *dj_report; + int retval; - memset(&dj_report, 0, sizeof(dj_report)); - dj_report.report_id = REPORT_ID_DJ_SHORT; - dj_report.device_index = 0xFF; - dj_report.report_type = REPORT_TYPE_CMD_SWITCH; - dj_report.report_params[CMD_SWITCH_PARAM_DEVBITFIELD] = 0x1F; - dj_report.report_params[CMD_SWITCH_PARAM_TIMEOUT_SECONDS] = (u8)timeout; - return logi_dj_recv_send_report(djrcv_dev, &dj_report); + dj_report = kzalloc(sizeof(struct dj_report), GFP_KERNEL); + if (!dj_report) + return -ENOMEM; + dj_report->report_id = REPORT_ID_DJ_SHORT; + dj_report->device_index = 0xFF; + dj_report->report_type = REPORT_TYPE_CMD_SWITCH; + dj_report->report_params[CMD_SWITCH_PARAM_DEVBITFIELD] = 0x3F; + dj_report->report_params[CMD_SWITCH_PARAM_TIMEOUT_SECONDS] = (u8)timeout; + retval = logi_dj_recv_send_report(djrcv_dev, dj_report); + kfree(dj_report); + return retval; } --- linux-3.2.0.orig/drivers/hid/hid-wacom.c +++ linux-3.2.0/drivers/hid/hid-wacom.c @@ -9,6 +9,7 @@ * Copyright (c) 2008 Jiri Slaby * Copyright (c) 2006 Andrew Zabolotny * Copyright (c) 2009 Bastien Nocera + * Copyright (c) 2011 PrzemysÅ‚aw Firszt */ /* @@ -33,6 +34,7 @@ struct wacom_data { __u16 tool; unsigned char butstate; + __u8 features; unsigned char high_speed; #ifdef CONFIG_HID_WACOM_POWER_SUPPLY int battery_capacity; @@ -107,6 +109,19 @@ } #endif +static void wacom_set_features(struct hid_device *hdev) +{ + int ret; + __u8 rep_data[2]; + + /*set high speed, tablet mode*/ + rep_data[0] = 0x03; + rep_data[1] = 0x20; + ret = hdev->hid_output_raw_report(hdev, rep_data, 2, + HID_FEATURE_REPORT); + return; +} + static void wacom_poke(struct hid_device *hdev, u8 speed) { struct wacom_data *wdata = hid_get_drvdata(hdev); @@ -177,26 +192,13 @@ static DEVICE_ATTR(speed, S_IRUGO | S_IWUSR | S_IWGRP, wacom_show_speed, wacom_store_speed); -static int wacom_raw_event(struct hid_device *hdev, struct hid_report *report, - u8 *raw_data, int size) +static int wacom_gr_parse_report(struct hid_device *hdev, + struct wacom_data *wdata, + struct input_dev *input, unsigned char *data) { - struct wacom_data *wdata = hid_get_drvdata(hdev); - struct hid_input *hidinput; - struct input_dev *input; - unsigned char *data = (unsigned char *) raw_data; int tool, x, y, rw; - if (!(hdev->claimed & HID_CLAIMED_INPUT)) - return 0; - tool = 0; - hidinput = list_entry(hdev->inputs.next, struct hid_input, list); - input = hidinput->input; - - /* Check if this is a tablet report */ - if (data[0] != 0x03) - return 0; - /* Get X & Y positions */ x = le16_to_cpu(*(__le16 *) &data[2]); y = le16_to_cpu(*(__le16 *) &data[4]); @@ -304,6 +306,121 @@ return 1; } +static void wacom_i4_parse_pen_report(struct wacom_data *wdata, + struct input_dev *input, unsigned char *data) +{ + __u16 x, y, pressure; + __u32 id; + + switch (data[1]) { + case 0x80: /* Out of proximity report */ + wdata->tool = 0; + input_report_key(input, BTN_TOUCH, 0); + input_report_abs(input, ABS_PRESSURE, 0); + input_report_key(input, wdata->tool, 0); + input_sync(input); + break; + case 0xC2: /* Tool report */ + id = ((data[2] << 4) | (data[3] >> 4) | + ((data[7] & 0x0f) << 20) | + ((data[8] & 0xf0) << 12)) & 0xfffff; + + switch (id) { + case 0x802: + wdata->tool = BTN_TOOL_PEN; + break; + case 0x80A: + wdata->tool = BTN_TOOL_RUBBER; + break; + } + break; + default: /* Position/pressure report */ + x = data[2] << 9 | data[3] << 1 | ((data[9] & 0x02) >> 1); + y = data[4] << 9 | data[5] << 1 | (data[9] & 0x01); + pressure = (data[6] << 3) | ((data[7] & 0xC0) >> 5) + | (data[1] & 0x01); + + input_report_key(input, BTN_TOUCH, pressure > 1); + + input_report_key(input, BTN_STYLUS, data[1] & 0x02); + input_report_key(input, BTN_STYLUS2, data[1] & 0x04); + input_report_key(input, wdata->tool, 1); + input_report_abs(input, ABS_X, x); + input_report_abs(input, ABS_Y, y); + input_report_abs(input, ABS_PRESSURE, pressure); + input_sync(input); + break; + } + + return; +} + +static void wacom_i4_parse_report(struct hid_device *hdev, + struct wacom_data *wdata, + struct input_dev *input, unsigned char *data) +{ + switch (data[0]) { + case 0x00: /* Empty report */ + break; + case 0x02: /* Pen report */ + wacom_i4_parse_pen_report(wdata, input, data); + break; + case 0x03: /* Features Report */ + wdata->features = data[2]; + break; + case 0x0C: /* Button report */ + break; + default: + hid_err(hdev, "Unknown report: %d,%d\n", data[0], data[1]); + break; + } +} + +static int wacom_raw_event(struct hid_device *hdev, struct hid_report *report, + u8 *raw_data, int size) +{ + struct wacom_data *wdata = hid_get_drvdata(hdev); + struct hid_input *hidinput; + struct input_dev *input; + unsigned char *data = (unsigned char *) raw_data; + int i; + + if (!(hdev->claimed & HID_CLAIMED_INPUT)) + return 0; + + hidinput = list_entry(hdev->inputs.next, struct hid_input, list); + input = hidinput->input; + + /* Check if this is a tablet report */ + if (data[0] != 0x03) + return 0; + + switch (hdev->product) { + case USB_DEVICE_ID_WACOM_GRAPHIRE_BLUETOOTH: + return wacom_gr_parse_report(hdev, wdata, input, data); + break; + case USB_DEVICE_ID_WACOM_INTUOS4_BLUETOOTH: + i = 1; + + switch (data[0]) { + case 0x04: + wacom_i4_parse_report(hdev, wdata, input, data + i); + i += 10; + /* fall through */ + case 0x03: + wacom_i4_parse_report(hdev, wdata, input, data + i); + i += 10; + wacom_i4_parse_report(hdev, wdata, input, data + i); + break; + default: + hid_err(hdev, "Unknown report: %d,%d size:%d\n", + data[0], data[1], size); + return 0; + } + } + return 1; +} + static int wacom_input_mapped(struct hid_device *hdev, struct hid_input *hi, struct hid_field *field, struct hid_usage *usage, unsigned long **bit, int *max) @@ -338,10 +455,19 @@ __set_bit(BTN_TOOL_RUBBER, input->keybit); __set_bit(BTN_TOOL_MOUSE, input->keybit); - input_set_abs_params(input, ABS_X, 0, 16704, 4, 0); - input_set_abs_params(input, ABS_Y, 0, 12064, 4, 0); - input_set_abs_params(input, ABS_PRESSURE, 0, 511, 0, 0); - input_set_abs_params(input, ABS_DISTANCE, 0, 32, 0, 0); + switch (hdev->product) { + case USB_DEVICE_ID_WACOM_GRAPHIRE_BLUETOOTH: + input_set_abs_params(input, ABS_X, 0, 16704, 4, 0); + input_set_abs_params(input, ABS_Y, 0, 12064, 4, 0); + input_set_abs_params(input, ABS_PRESSURE, 0, 511, 0, 0); + input_set_abs_params(input, ABS_DISTANCE, 0, 32, 0, 0); + break; + case USB_DEVICE_ID_WACOM_INTUOS4_BLUETOOTH: + input_set_abs_params(input, ABS_X, 0, 40640, 4, 0); + input_set_abs_params(input, ABS_Y, 0, 25400, 4, 0); + input_set_abs_params(input, ABS_PRESSURE, 0, 2047, 0, 0); + break; + } return 0; } @@ -378,8 +504,16 @@ hid_warn(hdev, "can't create sysfs speed attribute err: %d\n", ret); - /* Set Wacom mode 2 with high reporting speed */ - wacom_poke(hdev, 1); + switch (hdev->product) { + case USB_DEVICE_ID_WACOM_GRAPHIRE_BLUETOOTH: + /* Set Wacom mode 2 with high reporting speed */ + wacom_poke(hdev, 1); + break; + case USB_DEVICE_ID_WACOM_INTUOS4_BLUETOOTH: + wdata->features = 0; + wacom_set_features(hdev); + break; + } #ifdef CONFIG_HID_WACOM_POWER_SUPPLY wdata->battery.properties = wacom_battery_props; @@ -389,6 +523,8 @@ wdata->battery.type = POWER_SUPPLY_TYPE_BATTERY; wdata->battery.use_for_apm = 0; + power_supply_powers(&wdata->battery, &hdev->dev); + ret = power_supply_register(&hdev->dev, &wdata->battery); if (ret) { hid_warn(hdev, "can't create sysfs battery attribute, err: %d\n", @@ -396,6 +532,8 @@ goto err_battery; } + power_supply_powers(&wdata->battery, &hdev->dev); + wdata->ac.properties = wacom_ac_props; wdata->ac.num_properties = ARRAY_SIZE(wacom_ac_props); wdata->ac.get_property = wacom_ac_get_property; @@ -403,12 +541,16 @@ wdata->ac.type = POWER_SUPPLY_TYPE_MAINS; wdata->ac.use_for_apm = 0; + power_supply_powers(&wdata->battery, &hdev->dev); + ret = power_supply_register(&hdev->dev, &wdata->ac); if (ret) { hid_warn(hdev, "can't create ac battery attribute, err: %d\n", ret); goto err_ac; } + + power_supply_powers(&wdata->ac, &hdev->dev); #endif return 0; @@ -441,6 +583,7 @@ static const struct hid_device_id wacom_devices[] = { { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_GRAPHIRE_BLUETOOTH) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS4_BLUETOOTH) }, { } }; --- linux-3.2.0.orig/drivers/hid/Makefile +++ linux-3.2.0/drivers/hid/Makefile @@ -51,7 +51,6 @@ obj-$(CONFIG_HID_NTRIG) += hid-ntrig.o obj-$(CONFIG_HID_ORTEK) += hid-ortek.o obj-$(CONFIG_HID_PRODIKEYS) += hid-prodikeys.o -obj-$(CONFIG_HID_QUANTA) += hid-quanta.o obj-$(CONFIG_HID_PANTHERLORD) += hid-pl.o obj-$(CONFIG_HID_PETALYNX) += hid-petalynx.o obj-$(CONFIG_HID_PICOLCD) += hid-picolcd.o @@ -78,6 +77,7 @@ obj-$(CONFIG_HID_WACOM) += hid-wacom.o obj-$(CONFIG_HID_WALTOP) += hid-waltop.o obj-$(CONFIG_HID_WIIMOTE) += hid-wiimote.o +obj-$(CONFIG_HYPERV_MOUSE) += hid-hyperv.o obj-$(CONFIG_USB_HID) += usbhid/ obj-$(CONFIG_USB_MOUSE) += usbhid/ --- linux-3.2.0.orig/drivers/hid/hid-ntrig.c +++ linux-3.2.0/drivers/hid/hid-ntrig.c @@ -882,10 +882,10 @@ nd->activate_slack = activate_slack; nd->act_state = activate_slack; nd->deactivate_slack = -deactivate_slack; - nd->sensor_logical_width = 0; - nd->sensor_logical_height = 0; - nd->sensor_physical_width = 0; - nd->sensor_physical_height = 0; + nd->sensor_logical_width = 1; + nd->sensor_logical_height = 1; + nd->sensor_physical_width = 1; + nd->sensor_physical_height = 1; hid_set_drvdata(hdev, nd); --- linux-3.2.0.orig/drivers/hid/hid-magicmouse.c +++ linux-3.2.0/drivers/hid/hid-magicmouse.c @@ -418,6 +418,8 @@ __set_bit(BTN_TOOL_TRIPLETAP, input->keybit); __set_bit(BTN_TOOL_QUADTAP, input->keybit); __set_bit(BTN_TOUCH, input->keybit); + __set_bit(INPUT_PROP_POINTER, input->propbit); + __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); } if (report_touches) { --- linux-3.2.0.orig/drivers/hid/hid-apple.c +++ linux-3.2.0/drivers/hid/hid-apple.c @@ -458,6 +458,9 @@ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO), .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN | APPLE_ISO_KEYBOARD }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, + USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI), + .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS), .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI), @@ -514,6 +517,12 @@ .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS), .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI), + .driver_data = APPLE_HAS_FN }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ISO), + .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_JIS), + .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI), .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO), --- linux-3.2.0.orig/drivers/hid/hid-wiimote.c +++ linux-3.2.0/drivers/hid/hid-wiimote.c @@ -829,7 +829,7 @@ /* * Basic IR data is encoded into 3 bytes. The first two bytes are the - * upper 8 bit of the X/Y data, the 3rd byte contains the lower 2 bits + * lower 8 bit of the X/Y data, the 3rd byte contains the upper 2 bits * of both. * If data is packed, then the 3rd byte is put first and slightly * reordered. This allows to interleave packed and non-packed data to @@ -838,17 +838,11 @@ */ if (packed) { - x = ir[1] << 2; - y = ir[2] << 2; - - x |= ir[0] & 0x3; - y |= (ir[0] >> 2) & 0x3; + x = ir[1] | ((ir[0] & 0x03) << 8); + y = ir[2] | ((ir[0] & 0x0c) << 6); } else { - x = ir[0] << 2; - y = ir[1] << 2; - - x |= (ir[2] >> 4) & 0x3; - y |= (ir[2] >> 6) & 0x3; + x = ir[0] | ((ir[2] & 0x30) << 4); + y = ir[1] | ((ir[2] & 0xc0) << 2); } input_report_abs(wdata->ir, xid, x); @@ -1263,6 +1257,8 @@ goto err_battery; } + power_supply_powers(&wdata->battery, &hdev->dev); + ret = wiimote_leds_create(wdata); if (ret) goto err_free; --- linux-3.2.0.orig/drivers/hid/hid-core.c +++ linux-3.2.0/drivers/hid/hid-core.c @@ -362,7 +362,7 @@ case HID_GLOBAL_ITEM_TAG_REPORT_SIZE: parser->global.report_size = item_udata(item); - if (parser->global.report_size > 32) { + if (parser->global.report_size > 96) { dbg_hid("invalid report_size %d\n", parser->global.report_size); return -1; @@ -1026,7 +1026,7 @@ return report; } -void hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size, +int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size, int interrupt) { struct hid_report_enum *report_enum = hid->report_enum + type; @@ -1034,10 +1034,11 @@ unsigned int a; int rsize, csize = size; u8 *cdata = data; + int ret = 0; report = hid_get_report(report_enum, data); if (!report) - return; + goto out; if (report_enum->numbered) { cdata++; @@ -1057,14 +1058,19 @@ if ((hid->claimed & HID_CLAIMED_HIDDEV) && hid->hiddev_report_event) hid->hiddev_report_event(hid, report); - if (hid->claimed & HID_CLAIMED_HIDRAW) - hidraw_report_event(hid, data, size); + if (hid->claimed & HID_CLAIMED_HIDRAW) { + ret = hidraw_report_event(hid, data, size); + if (ret) + goto out; + } for (a = 0; a < report->maxfield; a++) hid_input_field(hid, report->field[a], cdata, interrupt); if (hid->claimed & HID_CLAIMED_INPUT) hidinput_report_event(hid, report); +out: + return ret; } EXPORT_SYMBOL_GPL(hid_report_raw_event); @@ -1141,7 +1147,7 @@ } } - hid_report_raw_event(hid, type, data, size, interrupt); + ret = hid_report_raw_event(hid, type, data, size, interrupt); unlock: up(&hid->driver_lock); @@ -1374,9 +1380,13 @@ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ISO) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_JIS) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, @@ -1394,21 +1404,28 @@ { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR) }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS) }, + { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS2) }, + { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_AK1D) }, { HID_USB_DEVICE(USB_VENDOR_ID_CHUNGHWAT, USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH) }, { HID_USB_DEVICE(USB_VENDOR_ID_CREATIVELABS, USB_DEVICE_ID_PRODIKEYS_PCMIDI) }, { HID_USB_DEVICE(USB_VENDOR_ID_CVTOUCH, USB_DEVICE_ID_CVTOUCH_SCREEN) }, { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1) }, { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_2) }, { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_3) }, + { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_4) }, { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_MOUSE) }, { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_TRUETOUCH) }, { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, 0x0006) }, { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, 0x0011) }, - { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH) }, - { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH1) }, - { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH2) }, - { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3) }, - { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4) }, + { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D) }, + { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E) }, + { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C) }, + { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224) }, + { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_725E) }, + { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B) }, + { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1) }, + { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302) }, + { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_BM084) }, { HID_USB_DEVICE(USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2515) }, { HID_USB_DEVICE(USB_VENDOR_ID_EMS, USB_DEVICE_ID_EMS_TRIO_LINKER_PLUS_II) }, @@ -1423,6 +1440,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE_2) }, { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE_3) }, { HID_USB_DEVICE(USB_VENDOR_ID_HANVON, USB_DEVICE_ID_HANVON_MULTITOUCH) }, + { HID_USB_DEVICE(USB_VENDOR_ID_HANVON_ALT, USB_DEVICE_ID_HANVON_ALT_MULTITOUCH) }, { HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM, USB_DEVICE_ID_IDEACOM_IDC6650) }, { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK, USB_DEVICE_ID_HOLTEK_ON_LINE_GRIP) }, { HID_USB_DEVICE(USB_VENDOR_ID_ILITEK, USB_DEVICE_ID_ILITEK_MULTITOUCH) }, @@ -1498,6 +1516,9 @@ { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) }, { HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, USB_DEVICE_ID_PENMOUNT_PCI) }, { HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) }, + { HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN) }, + { HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1) }, + { HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2) }, { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) }, { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) }, { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN) }, @@ -1514,6 +1535,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) }, { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE) }, + { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE) }, { HID_USB_DEVICE(USB_VENDOR_ID_STANTUM, USB_DEVICE_ID_MTP) }, { HID_USB_DEVICE(USB_VENDOR_ID_STANTUM_STM, USB_DEVICE_ID_MTP_STM) }, { HID_USB_DEVICE(USB_VENDOR_ID_STANTUM_SITRONIX, USB_DEVICE_ID_MTP_SITRONIX) }, @@ -1544,11 +1566,21 @@ { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD, USB_DEVICE_ID_SUPER_DUAL_BOX_PRO) }, { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD, USB_DEVICE_ID_SUPER_JOY_BOX_5_PRO) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_GRAPHIRE_BLUETOOTH) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS4_BLUETOOTH) }, { HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_SLIM_TABLET_5_8_INCH) }, { HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_SLIM_TABLET_12_1_INCH) }, { HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_MEDIA_TABLET_10_6_INCH) }, { HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_MEDIA_TABLET_14_1_INCH) }, { HID_USB_DEVICE(USB_VENDOR_ID_XAT, USB_DEVICE_ID_XAT_CSR) }, + { HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_SPX) }, + { HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_MPX) }, + { HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_CSR) }, + { HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_SPX1) }, + { HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_MPX1) }, + { HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_CSR1) }, + { HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_SPX2) }, + { HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_MPX2) }, + { HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_CSR2) }, { HID_USB_DEVICE(USB_VENDOR_ID_X_TENSIONS, USB_DEVICE_ID_SPEEDLINK_VAD_CEZANNE) }, { HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0005) }, { HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0030) }, @@ -1871,6 +1903,8 @@ { HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_MCT) }, { HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_HYBRID) }, { HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_HEATCONTROL) }, + { HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_BEATPAD) }, + { HID_USB_DEVICE(USB_VENDOR_ID_MASTERKIT, USB_DEVICE_ID_MASTERKIT_MA901RADIO) }, { HID_USB_DEVICE(USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1024LS) }, { HID_USB_DEVICE(USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1208LS) }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROCHIP, USB_DEVICE_ID_PICKIT1) }, @@ -1955,6 +1989,9 @@ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ISO) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_JIS) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, { } --- linux-3.2.0.orig/drivers/hid/hid-microsoft.c +++ linux-3.2.0/drivers/hid/hid-microsoft.c @@ -29,22 +29,30 @@ #define MS_RDESC 0x08 #define MS_NOGET 0x10 #define MS_DUPLICATE_USAGES 0x20 +#define MS_RDESC_3K 0x40 -/* - * Microsoft Wireless Desktop Receiver (Model 1028) has - * 'Usage Min/Max' where it ought to have 'Physical Min/Max' - */ static __u8 *ms_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { unsigned long quirks = (unsigned long)hid_get_drvdata(hdev); + /* + * Microsoft Wireless Desktop Receiver (Model 1028) has + * 'Usage Min/Max' where it ought to have 'Physical Min/Max' + */ if ((quirks & MS_RDESC) && *rsize == 571 && rdesc[557] == 0x19 && rdesc[559] == 0x29) { hid_info(hdev, "fixing up Microsoft Wireless Receiver Model 1028 report descriptor\n"); rdesc[557] = 0x35; rdesc[559] = 0x45; } + /* the same as above (s/usage/physical/) */ + if ((quirks & MS_RDESC_3K) && *rsize == 106 && rdesc[94] == 0x19 && + rdesc[95] == 0x00 && rdesc[96] == 0x29 && + rdesc[97] == 0xff) { + rdesc[94] = 0x35; + rdesc[96] = 0x45; + } return rdesc; } @@ -193,7 +201,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_USB), .driver_data = MS_PRESENTER }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K), - .driver_data = MS_ERGONOMY }, + .driver_data = MS_ERGONOMY | MS_RDESC_3K }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0), .driver_data = MS_NOGET }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_MOUSE_4500), --- linux-3.2.0.orig/drivers/hid/hid-hyperv.c +++ linux-3.2.0/drivers/hid/hid-hyperv.c @@ -0,0 +1,587 @@ +/* + * Copyright (c) 2009, Citrix Systems, Inc. + * Copyright (c) 2010, Microsoft Corporation. + * Copyright (c) 2011, Novell Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope 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 + + +struct hv_input_dev_info { + unsigned int size; + unsigned short vendor; + unsigned short product; + unsigned short version; + unsigned short reserved[11]; +}; + +/* The maximum size of a synthetic input message. */ +#define SYNTHHID_MAX_INPUT_REPORT_SIZE 16 + +/* + * Current version + * + * History: + * Beta, RC < 2008/1/22 1,0 + * RC > 2008/1/22 2,0 + */ +#define SYNTHHID_INPUT_VERSION_MAJOR 2 +#define SYNTHHID_INPUT_VERSION_MINOR 0 +#define SYNTHHID_INPUT_VERSION (SYNTHHID_INPUT_VERSION_MINOR | \ + (SYNTHHID_INPUT_VERSION_MAJOR << 16)) + + +#pragma pack(push, 1) +/* + * Message types in the synthetic input protocol + */ +enum synthhid_msg_type { + SYNTH_HID_PROTOCOL_REQUEST, + SYNTH_HID_PROTOCOL_RESPONSE, + SYNTH_HID_INITIAL_DEVICE_INFO, + SYNTH_HID_INITIAL_DEVICE_INFO_ACK, + SYNTH_HID_INPUT_REPORT, + SYNTH_HID_MAX +}; + +/* + * Basic message structures. + */ +struct synthhid_msg_hdr { + enum synthhid_msg_type type; + u32 size; +}; + +struct synthhid_msg { + struct synthhid_msg_hdr header; + char data[1]; /* Enclosed message */ +}; + +union synthhid_version { + struct { + u16 minor_version; + u16 major_version; + }; + u32 version; +}; + +/* + * Protocol messages + */ +struct synthhid_protocol_request { + struct synthhid_msg_hdr header; + union synthhid_version version_requested; +}; + +struct synthhid_protocol_response { + struct synthhid_msg_hdr header; + union synthhid_version version_requested; + unsigned char approved; +}; + +struct synthhid_device_info { + struct synthhid_msg_hdr header; + struct hv_input_dev_info hid_dev_info; + struct hid_descriptor hid_descriptor; +}; + +struct synthhid_device_info_ack { + struct synthhid_msg_hdr header; + unsigned char reserved; +}; + +struct synthhid_input_report { + struct synthhid_msg_hdr header; + char buffer[1]; +}; + +#pragma pack(pop) + +#define INPUTVSC_SEND_RING_BUFFER_SIZE (10*PAGE_SIZE) +#define INPUTVSC_RECV_RING_BUFFER_SIZE (10*PAGE_SIZE) + + +enum pipe_prot_msg_type { + PIPE_MESSAGE_INVALID, + PIPE_MESSAGE_DATA, + PIPE_MESSAGE_MAXIMUM +}; + + +struct pipe_prt_msg { + enum pipe_prot_msg_type type; + u32 size; + char data[1]; +}; + +struct mousevsc_prt_msg { + enum pipe_prot_msg_type type; + u32 size; + union { + struct synthhid_protocol_request request; + struct synthhid_protocol_response response; + struct synthhid_device_info_ack ack; + }; +}; + +/* + * Represents an mousevsc device + */ +struct mousevsc_dev { + struct hv_device *device; + bool init_complete; + bool connected; + struct mousevsc_prt_msg protocol_req; + struct mousevsc_prt_msg protocol_resp; + /* Synchronize the request/response if needed */ + struct completion wait_event; + int dev_info_status; + + struct hid_descriptor *hid_desc; + unsigned char *report_desc; + u32 report_desc_size; + struct hv_input_dev_info hid_dev_info; + struct hid_device *hid_device; +}; + + +static struct mousevsc_dev *mousevsc_alloc_device(struct hv_device *device) +{ + struct mousevsc_dev *input_dev; + + input_dev = kzalloc(sizeof(struct mousevsc_dev), GFP_KERNEL); + + if (!input_dev) + return NULL; + + input_dev->device = device; + hv_set_drvdata(device, input_dev); + init_completion(&input_dev->wait_event); + input_dev->init_complete = false; + + return input_dev; +} + +static void mousevsc_free_device(struct mousevsc_dev *device) +{ + kfree(device->hid_desc); + kfree(device->report_desc); + hv_set_drvdata(device->device, NULL); + kfree(device); +} + +static void mousevsc_on_receive_device_info(struct mousevsc_dev *input_device, + struct synthhid_device_info *device_info) +{ + int ret = 0; + struct hid_descriptor *desc; + struct mousevsc_prt_msg ack; + + input_device->dev_info_status = -ENOMEM; + + input_device->hid_dev_info = device_info->hid_dev_info; + desc = &device_info->hid_descriptor; + if (desc->bLength == 0) + goto cleanup; + + input_device->hid_desc = kzalloc(desc->bLength, GFP_ATOMIC); + + if (!input_device->hid_desc) + goto cleanup; + + memcpy(input_device->hid_desc, desc, desc->bLength); + + input_device->report_desc_size = desc->desc[0].wDescriptorLength; + if (input_device->report_desc_size == 0) { + input_device->dev_info_status = -EINVAL; + goto cleanup; + } + + input_device->report_desc = kzalloc(input_device->report_desc_size, + GFP_ATOMIC); + + if (!input_device->report_desc) { + input_device->dev_info_status = -ENOMEM; + goto cleanup; + } + + memcpy(input_device->report_desc, + ((unsigned char *)desc) + desc->bLength, + desc->desc[0].wDescriptorLength); + + /* Send the ack */ + memset(&ack, 0, sizeof(struct mousevsc_prt_msg)); + + ack.type = PIPE_MESSAGE_DATA; + ack.size = sizeof(struct synthhid_device_info_ack); + + ack.ack.header.type = SYNTH_HID_INITIAL_DEVICE_INFO_ACK; + ack.ack.header.size = 1; + ack.ack.reserved = 0; + + ret = vmbus_sendpacket(input_device->device->channel, + &ack, + sizeof(struct pipe_prt_msg) - sizeof(unsigned char) + + sizeof(struct synthhid_device_info_ack), + (unsigned long)&ack, + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + + if (!ret) + input_device->dev_info_status = 0; + +cleanup: + complete(&input_device->wait_event); + + return; +} + +static void mousevsc_on_receive(struct hv_device *device, + struct vmpacket_descriptor *packet) +{ + struct pipe_prt_msg *pipe_msg; + struct synthhid_msg *hid_msg; + struct mousevsc_dev *input_dev = hv_get_drvdata(device); + struct synthhid_input_report *input_report; + + pipe_msg = (struct pipe_prt_msg *)((unsigned long)packet + + (packet->offset8 << 3)); + + if (pipe_msg->type != PIPE_MESSAGE_DATA) + return; + + hid_msg = (struct synthhid_msg *)pipe_msg->data; + + switch (hid_msg->header.type) { + case SYNTH_HID_PROTOCOL_RESPONSE: + /* + * While it will be impossible for us to protect against + * malicious/buggy hypervisor/host, add a check here to + * ensure we don't corrupt memory. + */ + if ((pipe_msg->size + sizeof(struct pipe_prt_msg) + - sizeof(unsigned char)) + > sizeof(struct mousevsc_prt_msg)) { + WARN_ON(1); + break; + } + + memcpy(&input_dev->protocol_resp, pipe_msg, + pipe_msg->size + sizeof(struct pipe_prt_msg) - + sizeof(unsigned char)); + complete(&input_dev->wait_event); + break; + + case SYNTH_HID_INITIAL_DEVICE_INFO: + WARN_ON(pipe_msg->size < sizeof(struct hv_input_dev_info)); + + /* + * Parse out the device info into device attr, + * hid desc and report desc + */ + mousevsc_on_receive_device_info(input_dev, + (struct synthhid_device_info *)pipe_msg->data); + break; + case SYNTH_HID_INPUT_REPORT: + input_report = + (struct synthhid_input_report *)pipe_msg->data; + if (!input_dev->init_complete) + break; + hid_input_report(input_dev->hid_device, + HID_INPUT_REPORT, input_report->buffer, + input_report->header.size, 1); + break; + default: + pr_err("unsupported hid msg type - type %d len %d", + hid_msg->header.type, hid_msg->header.size); + break; + } + +} + +static void mousevsc_on_channel_callback(void *context) +{ + const int packet_size = 0x100; + int ret; + struct hv_device *device = context; + u32 bytes_recvd; + u64 req_id; + struct vmpacket_descriptor *desc; + unsigned char *buffer; + int bufferlen = packet_size; + + buffer = kmalloc(bufferlen, GFP_ATOMIC); + if (!buffer) + return; + + do { + ret = vmbus_recvpacket_raw(device->channel, buffer, + bufferlen, &bytes_recvd, &req_id); + + switch (ret) { + case 0: + if (bytes_recvd <= 0) { + kfree(buffer); + return; + } + desc = (struct vmpacket_descriptor *)buffer; + + switch (desc->type) { + case VM_PKT_COMP: + break; + + case VM_PKT_DATA_INBAND: + mousevsc_on_receive(device, desc); + break; + + default: + pr_err("unhandled packet type %d, tid %llx len %d\n", + desc->type, req_id, bytes_recvd); + break; + } + + break; + + case -ENOBUFS: + kfree(buffer); + /* Handle large packet */ + bufferlen = bytes_recvd; + buffer = kmalloc(bytes_recvd, GFP_ATOMIC); + + if (!buffer) + return; + + break; + } + } while (1); + +} + +static int mousevsc_connect_to_vsp(struct hv_device *device) +{ + int ret = 0; + int t; + struct mousevsc_dev *input_dev = hv_get_drvdata(device); + struct mousevsc_prt_msg *request; + struct mousevsc_prt_msg *response; + + request = &input_dev->protocol_req; + memset(request, 0, sizeof(struct mousevsc_prt_msg)); + + request->type = PIPE_MESSAGE_DATA; + request->size = sizeof(struct synthhid_protocol_request); + request->request.header.type = SYNTH_HID_PROTOCOL_REQUEST; + request->request.header.size = sizeof(unsigned int); + request->request.version_requested.version = SYNTHHID_INPUT_VERSION; + + ret = vmbus_sendpacket(device->channel, request, + sizeof(struct pipe_prt_msg) - + sizeof(unsigned char) + + sizeof(struct synthhid_protocol_request), + (unsigned long)request, + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + if (ret) + goto cleanup; + + t = wait_for_completion_timeout(&input_dev->wait_event, 5*HZ); + if (!t) { + ret = -ETIMEDOUT; + goto cleanup; + } + + response = &input_dev->protocol_resp; + + if (!response->response.approved) { + pr_err("synthhid protocol request failed (version %d)\n", + SYNTHHID_INPUT_VERSION); + ret = -ENODEV; + goto cleanup; + } + + t = wait_for_completion_timeout(&input_dev->wait_event, 5*HZ); + if (!t) { + ret = -ETIMEDOUT; + goto cleanup; + } + + /* + * We should have gotten the device attr, hid desc and report + * desc at this point + */ + ret = input_dev->dev_info_status; + +cleanup: + return ret; +} + +static int mousevsc_hid_open(struct hid_device *hid) +{ + return 0; +} + +static int mousevsc_hid_start(struct hid_device *hid) +{ + return 0; +} + +static void mousevsc_hid_close(struct hid_device *hid) +{ +} + +static void mousevsc_hid_stop(struct hid_device *hid) +{ +} + +static struct hid_ll_driver mousevsc_ll_driver = { + .open = mousevsc_hid_open, + .close = mousevsc_hid_close, + .start = mousevsc_hid_start, + .stop = mousevsc_hid_stop, +}; + +static struct hid_driver mousevsc_hid_driver; + +static int mousevsc_probe(struct hv_device *device, + const struct hv_vmbus_device_id *dev_id) +{ + int ret; + struct mousevsc_dev *input_dev; + struct hid_device *hid_dev; + + input_dev = mousevsc_alloc_device(device); + + if (!input_dev) + return -ENOMEM; + + ret = vmbus_open(device->channel, + INPUTVSC_SEND_RING_BUFFER_SIZE, + INPUTVSC_RECV_RING_BUFFER_SIZE, + NULL, + 0, + mousevsc_on_channel_callback, + device + ); + + if (ret) + goto probe_err0; + + ret = mousevsc_connect_to_vsp(device); + + if (ret) + goto probe_err1; + + /* workaround SA-167 */ + if (input_dev->report_desc[14] == 0x25) + input_dev->report_desc[14] = 0x29; + + hid_dev = hid_allocate_device(); + if (IS_ERR(hid_dev)) { + ret = PTR_ERR(hid_dev); + goto probe_err1; + } + + hid_dev->ll_driver = &mousevsc_ll_driver; + hid_dev->driver = &mousevsc_hid_driver; + hid_dev->bus = BUS_VIRTUAL; + hid_dev->vendor = input_dev->hid_dev_info.vendor; + hid_dev->product = input_dev->hid_dev_info.product; + hid_dev->version = input_dev->hid_dev_info.version; + input_dev->hid_device = hid_dev; + + sprintf(hid_dev->name, "%s", "Microsoft Vmbus HID-compliant Mouse"); + + ret = hid_add_device(hid_dev); + if (ret) + goto probe_err1; + + ret = hid_parse_report(hid_dev, input_dev->report_desc, + input_dev->report_desc_size); + + if (ret) { + hid_err(hid_dev, "parse failed\n"); + goto probe_err2; + } + + ret = hid_hw_start(hid_dev, HID_CONNECT_HIDINPUT | HID_CONNECT_HIDDEV); + + if (ret) { + hid_err(hid_dev, "hw start failed\n"); + goto probe_err2; + } + + input_dev->connected = true; + input_dev->init_complete = true; + + return ret; + +probe_err2: + hid_destroy_device(hid_dev); + +probe_err1: + vmbus_close(device->channel); + +probe_err0: + mousevsc_free_device(input_dev); + + return ret; +} + + +static int mousevsc_remove(struct hv_device *dev) +{ + struct mousevsc_dev *input_dev = hv_get_drvdata(dev); + + vmbus_close(dev->channel); + hid_hw_stop(input_dev->hid_device); + hid_destroy_device(input_dev->hid_device); + mousevsc_free_device(input_dev); + + return 0; +} + +static const struct hv_vmbus_device_id id_table[] = { + /* Mouse guid */ + { VMBUS_DEVICE(0x9E, 0xB6, 0xA8, 0xCF, 0x4A, 0x5B, 0xc0, 0x4c, + 0xB9, 0x8B, 0x8B, 0xA1, 0xA1, 0xF3, 0xF9, 0x5A) }, + { }, +}; + +MODULE_DEVICE_TABLE(vmbus, id_table); + +static struct hv_driver mousevsc_drv = { + .name = KBUILD_MODNAME, + .id_table = id_table, + .probe = mousevsc_probe, + .remove = mousevsc_remove, +}; + +static int __init mousevsc_init(void) +{ + return vmbus_driver_register(&mousevsc_drv); +} + +static void __exit mousevsc_exit(void) +{ + vmbus_driver_unregister(&mousevsc_drv); +} + +MODULE_LICENSE("GPL"); +MODULE_VERSION(HV_DRV_VERSION); +module_init(mousevsc_init); +module_exit(mousevsc_exit); --- linux-3.2.0.orig/drivers/hid/hid-ids.h +++ linux-3.2.0/drivers/hid/hid-ids.h @@ -21,6 +21,7 @@ #define USB_VENDOR_ID_3M 0x0596 #define USB_DEVICE_ID_3M1968 0x0500 #define USB_DEVICE_ID_3M2256 0x0502 +#define USB_DEVICE_ID_3M3266 0x0506 #define USB_VENDOR_ID_A4TECH 0x09da #define USB_DEVICE_ID_A4TECH_WCP32PU 0x0006 @@ -58,6 +59,9 @@ #define USB_VENDOR_ID_AIRCABLE 0x16CA #define USB_DEVICE_ID_AIRCABLE1 0x1502 +#define USB_VENDOR_ID_AIREN 0x1a2c +#define USB_DEVICE_ID_AIREN_SLIMPLUS 0x0002 + #define USB_VENDOR_ID_ALCOR 0x058f #define USB_DEVICE_ID_ALCOR_USBRS232 0x9720 @@ -121,9 +125,13 @@ #define USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI 0x024c #define USB_DEVICE_ID_APPLE_WELLSPRING6_ISO 0x024d #define USB_DEVICE_ID_APPLE_WELLSPRING6_JIS 0x024e +#define USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI 0x0262 +#define USB_DEVICE_ID_APPLE_WELLSPRING7_ISO 0x0263 +#define USB_DEVICE_ID_APPLE_WELLSPRING7_JIS 0x0264 #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI 0x0239 #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO 0x023a #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b +#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI 0x0255 #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO 0x0256 #define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a #define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b @@ -145,6 +153,9 @@ #define USB_DEVICE_ID_ATEN_4PORTKVM 0x2205 #define USB_DEVICE_ID_ATEN_4PORTKVMC 0x2208 +#define USB_VENDOR_ID_ATMEL 0x03eb +#define USB_DEVICE_ID_ATMEL_MULTITOUCH 0x211c + #define USB_VENDOR_ID_AVERMEDIA 0x07ca #define USB_DEVICE_ID_AVER_FM_MR800 0xb800 @@ -185,6 +196,8 @@ #define USB_DEVICE_ID_CHICONY_TACTICAL_PAD 0x0418 #define USB_DEVICE_ID_CHICONY_MULTI_TOUCH 0xb19d #define USB_DEVICE_ID_CHICONY_WIRELESS 0x0618 +#define USB_DEVICE_ID_CHICONY_WIRELESS2 0x1123 +#define USB_DEVICE_ID_CHICONY_AK1D 0x1125 #define USB_VENDOR_ID_CHUNGHWAT 0x2247 #define USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH 0x0001 @@ -214,6 +227,7 @@ #define USB_DEVICE_ID_CYPRESS_BARCODE_1 0xde61 #define USB_DEVICE_ID_CYPRESS_BARCODE_2 0xde64 #define USB_DEVICE_ID_CYPRESS_BARCODE_3 0xbca1 +#define USB_DEVICE_ID_CYPRESS_BARCODE_4 0xed81 #define USB_DEVICE_ID_CYPRESS_TRUETOUCH 0xc001 #define USB_VENDOR_ID_DEALEXTREAME 0x10c5 @@ -230,11 +244,21 @@ #define USB_VENDOR_ID_DWAV 0x0eef #define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER 0x0001 -#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH 0x480d -#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH1 0x720c -#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH2 0x72a1 -#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3 0x480e -#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4 0x726b +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D 0x480d +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E 0x480e +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7207 0x7207 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C 0x720c +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224 0x7224 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_722A 0x722A +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_725E 0x725e +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7262 0x7262 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B 0x726b +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72AA 0x72aa +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1 0x72a1 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72FA 0x72fa +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302 0x7302 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349 0x7349 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001 0xa001 #define USB_VENDOR_ID_ELECOM 0x056e #define USB_DEVICE_ID_ELECOM_BM084 0x0061 @@ -261,6 +285,12 @@ #define USB_VENDOR_ID_EZKEY 0x0518 #define USB_DEVICE_ID_BTC_8193 0x0002 +#define USB_VENDOR_ID_FORMOSA 0x147a +#define USB_DEVICE_ID_FORMOSA_IR_RECEIVER 0xe03e + +#define USB_VENDOR_ID_FREESCALE 0x15A2 +#define USB_DEVICE_ID_FREESCALE_MX28 0x004F + #define USB_VENDOR_ID_GAMERON 0x0810 #define USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR 0x0001 #define USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR 0x0002 @@ -356,6 +386,9 @@ #define USB_VENDOR_ID_HANVON 0x20b3 #define USB_DEVICE_ID_HANVON_MULTITOUCH 0x0a18 +#define USB_VENDOR_ID_HANVON_ALT 0x22ed +#define USB_DEVICE_ID_HANVON_ALT_MULTITOUCH 0x1010 + #define USB_VENDOR_ID_HAPP 0x078b #define USB_DEVICE_ID_UGCI_DRIVING 0x0010 #define USB_DEVICE_ID_UGCI_FLYING 0x0020 @@ -363,6 +396,7 @@ #define USB_VENDOR_ID_IDEACOM 0x1cb6 #define USB_DEVICE_ID_IDEACOM_IDC6650 0x6650 +#define USB_DEVICE_ID_IDEACOM_IDC6651 0x6651 #define USB_VENDOR_ID_ILITEK 0x222a #define USB_DEVICE_ID_ILITEK_MULTITOUCH 0x0001 @@ -477,6 +511,12 @@ #define USB_DEVICE_ID_CRYSTALTOUCH 0x0006 #define USB_DEVICE_ID_CRYSTALTOUCH_DUAL 0x0007 +#define USB_VENDOR_ID_MADCATZ 0x0738 +#define USB_DEVICE_ID_MADCATZ_BEATPAD 0x4540 + +#define USB_VENDOR_ID_MASTERKIT 0x16c0 +#define USB_DEVICE_ID_MASTERKIT_MA901RADIO 0x05df + #define USB_VENDOR_ID_MCC 0x09db #define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 #define USB_DEVICE_ID_MCC_PMD1208LS 0x007a @@ -507,6 +547,9 @@ #define USB_VENDOR_ID_MONTEREY 0x0566 #define USB_DEVICE_ID_GENIUS_KB29E 0x3004 +#define USB_VENDOR_ID_MSI 0x1770 +#define USB_DEVICE_ID_MSI_GX680R_LED_PANEL 0xff00 + #define USB_VENDOR_ID_NATIONAL_SEMICONDUCTOR 0x0400 #define USB_DEVICE_ID_N_S_HARMONY 0xc359 @@ -571,6 +614,11 @@ #define USB_VENDOR_ID_PI_ENGINEERING 0x05f3 #define USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL 0xff +#define USB_VENDOR_ID_PIXART 0x093a +#define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN 0x8001 +#define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1 0x8002 +#define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2 0x8003 + #define USB_VENDOR_ID_PLAYDOTCOM 0x0b43 #define USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII 0x0003 @@ -581,9 +629,14 @@ #define USB_DEVICE_ID_PRODIGE_CORDLESS 0x3062 #define USB_VENDOR_ID_QUANTA 0x0408 -#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH 0x3000 +#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH 0x3000 +#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001 0x3001 +#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008 0x3008 #define USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN 0x3001 +#define USB_VENDOR_ID_REALTEK 0x0bda +#define USB_DEVICE_ID_REALTEK_READER 0x0152 + #define USB_VENDOR_ID_ROCCAT 0x1e7d #define USB_DEVICE_ID_ROCCAT_ARVO 0x30d4 #define USB_DEVICE_ID_ROCCAT_KONE 0x2ced @@ -607,6 +660,7 @@ #define USB_VENDOR_ID_SONY 0x054c #define USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE 0x024b +#define USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE 0x0374 #define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268 #define USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER 0x042f @@ -679,6 +733,7 @@ #define USB_VENDOR_ID_WACOM 0x056a #define USB_DEVICE_ID_WACOM_GRAPHIRE_BLUETOOTH 0x81 +#define USB_DEVICE_ID_WACOM_INTUOS4_BLUETOOTH 0x00BD #define USB_VENDOR_ID_WALTOP 0x172f #define USB_DEVICE_ID_WALTOP_SLIM_TABLET_5_8_INCH 0x0032 @@ -707,6 +762,17 @@ #define USB_VENDOR_ID_XAT 0x2505 #define USB_DEVICE_ID_XAT_CSR 0x0220 +#define USB_VENDOR_ID_XIROKU 0x1477 +#define USB_DEVICE_ID_XIROKU_SPX 0x1006 +#define USB_DEVICE_ID_XIROKU_MPX 0x1007 +#define USB_DEVICE_ID_XIROKU_CSR 0x100e +#define USB_DEVICE_ID_XIROKU_SPX1 0x1021 +#define USB_DEVICE_ID_XIROKU_CSR1 0x1022 +#define USB_DEVICE_ID_XIROKU_MPX1 0x1023 +#define USB_DEVICE_ID_XIROKU_SPX2 0x1024 +#define USB_DEVICE_ID_XIROKU_CSR2 0x1025 +#define USB_DEVICE_ID_XIROKU_MPX2 0x1026 + #define USB_VENDOR_ID_YEALINK 0x6993 #define USB_DEVICE_ID_YEALINK_P1K_P4K_B2K 0xb001 --- linux-3.2.0.orig/drivers/hid/hidraw.c +++ linux-3.2.0/drivers/hid/hidraw.c @@ -42,6 +42,7 @@ static struct class *hidraw_class; static struct hidraw *hidraw_table[HIDRAW_MAX_DEVICES]; static DEFINE_MUTEX(minors_lock); +static void drop_ref(struct hidraw *hid, int exists_bit); static ssize_t hidraw_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos) { @@ -87,13 +88,16 @@ len = list->buffer[list->tail].len > count ? count : list->buffer[list->tail].len; - if (copy_to_user(buffer, list->buffer[list->tail].value, len)) { - ret = -EFAULT; - goto out; + if (list->buffer[list->tail].value) { + if (copy_to_user(buffer, list->buffer[list->tail].value, len)) { + ret = -EFAULT; + goto out; + } + ret = len; } - ret = len; kfree(list->buffer[list->tail].value); + list->buffer[list->tail].value = NULL; list->tail = (list->tail + 1) & (HIDRAW_BUFFER_SIZE - 1); } out: @@ -110,7 +114,7 @@ __u8 *buf; int ret = 0; - if (!hidraw_table[minor]) { + if (!hidraw_table[minor] || !hidraw_table[minor]->exist) { ret = -ENODEV; goto out; } @@ -258,7 +262,7 @@ } mutex_lock(&minors_lock); - if (!hidraw_table[minor]) { + if (!hidraw_table[minor] || !hidraw_table[minor]->exist) { err = -ENODEV; goto out_unlock; } @@ -295,32 +299,12 @@ static int hidraw_release(struct inode * inode, struct file * file) { unsigned int minor = iminor(inode); - struct hidraw *dev; struct hidraw_list *list = file->private_data; - int ret; - - mutex_lock(&minors_lock); - if (!hidraw_table[minor]) { - ret = -ENODEV; - goto unlock; - } + drop_ref(hidraw_table[minor], 0); list_del(&list->node); - dev = hidraw_table[minor]; - if (!--dev->open) { - if (list->hidraw->exist) { - hid_hw_power(dev->hid, PM_HINT_NORMAL); - hid_hw_close(dev->hid); - } else { - kfree(list->hidraw); - } - } kfree(list); - ret = 0; -unlock: - mutex_unlock(&minors_lock); - - return ret; + return 0; } static long hidraw_ioctl(struct file *file, unsigned int cmd, @@ -437,19 +421,29 @@ .llseek = noop_llseek, }; -void hidraw_report_event(struct hid_device *hid, u8 *data, int len) +int hidraw_report_event(struct hid_device *hid, u8 *data, int len) { struct hidraw *dev = hid->hidraw; struct hidraw_list *list; + int ret = 0; list_for_each_entry(list, &dev->list, node) { - list->buffer[list->head].value = kmemdup(data, len, GFP_ATOMIC); + int new_head = (list->head + 1) & (HIDRAW_BUFFER_SIZE - 1); + + if (new_head == list->tail) + continue; + + if (!(list->buffer[list->head].value = kmemdup(data, len, GFP_ATOMIC))) { + ret = -ENOMEM; + break; + } list->buffer[list->head].len = len; - list->head = (list->head + 1) & (HIDRAW_BUFFER_SIZE - 1); + list->head = new_head; kill_fasync(&list->fasync, SIGIO, POLL_IN); } wake_up_interruptible(&dev->wait); + return ret; } EXPORT_SYMBOL_GPL(hidraw_report_event); @@ -512,21 +506,7 @@ void hidraw_disconnect(struct hid_device *hid) { struct hidraw *hidraw = hid->hidraw; - - mutex_lock(&minors_lock); - hidraw->exist = 0; - - device_destroy(hidraw_class, MKDEV(hidraw_major, hidraw->minor)); - - hidraw_table[hidraw->minor] = NULL; - - if (hidraw->open) { - hid_hw_close(hid); - wake_up_interruptible(&hidraw->wait); - } else { - kfree(hidraw); - } - mutex_unlock(&minors_lock); + drop_ref(hidraw, 1); } EXPORT_SYMBOL_GPL(hidraw_disconnect); @@ -542,21 +522,28 @@ if (result < 0) { pr_warn("can't get major number\n"); - result = 0; goto out; } hidraw_class = class_create(THIS_MODULE, "hidraw"); if (IS_ERR(hidraw_class)) { result = PTR_ERR(hidraw_class); - unregister_chrdev(hidraw_major, "hidraw"); - goto out; + goto error_cdev; } cdev_init(&hidraw_cdev, &hidraw_ops); - cdev_add(&hidraw_cdev, dev_id, HIDRAW_MAX_DEVICES); + result = cdev_add(&hidraw_cdev, dev_id, HIDRAW_MAX_DEVICES); + if (result < 0) + goto error_class; + out: return result; + +error_class: + class_destroy(hidraw_class); +error_cdev: + unregister_chrdev_region(dev_id, HIDRAW_MAX_DEVICES); + goto out; } void hidraw_exit(void) @@ -568,3 +555,23 @@ unregister_chrdev_region(dev_id, HIDRAW_MAX_DEVICES); } + +static void drop_ref(struct hidraw *hidraw, int exists_bit) +{ + mutex_lock(&minors_lock); + if (exists_bit) { + hid_hw_close(hidraw->hid); + hidraw->exist = 0; + if (hidraw->open) + wake_up_interruptible(&hidraw->wait); + } else { + --hidraw->open; + } + + if (!hidraw->open && !hidraw->exist) { + device_destroy(hidraw_class, MKDEV(hidraw_major, hidraw->minor)); + hidraw_table[hidraw->minor] = NULL; + kfree(hidraw); + } + mutex_unlock(&minors_lock); +} --- linux-3.2.0.orig/drivers/hid/hid-chicony.c +++ linux-3.2.0/drivers/hid/hid-chicony.c @@ -45,6 +45,12 @@ case 0xff09: ch_map_key_clear(BTN_9); break; case 0xff0a: ch_map_key_clear(BTN_A); break; case 0xff0b: ch_map_key_clear(BTN_B); break; + case 0x00f1: ch_map_key_clear(KEY_WLAN); break; + case 0x00f2: ch_map_key_clear(KEY_BRIGHTNESSDOWN); break; + case 0x00f3: ch_map_key_clear(KEY_BRIGHTNESSUP); break; + case 0x00f4: ch_map_key_clear(KEY_DISPLAY_OFF); break; + case 0x00f7: ch_map_key_clear(KEY_CAMERA); break; + case 0x00f8: ch_map_key_clear(KEY_PROG1); break; default: return 0; } @@ -53,6 +59,8 @@ static const struct hid_device_id ch_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) }, + { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS2) }, + { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_AK1D) }, { } }; MODULE_DEVICE_TABLE(hid, ch_devices); --- linux-3.2.0.orig/drivers/hid/hid-multitouch.c +++ linux-3.2.0/drivers/hid/hid-multitouch.c @@ -89,15 +89,18 @@ #define MT_CLS_SERIAL 0x0002 #define MT_CLS_CONFIDENCE 0x0003 -#define MT_CLS_CONFIDENCE_MINUS_ONE 0x0004 -#define MT_CLS_DUAL_INRANGE_CONTACTID 0x0005 -#define MT_CLS_DUAL_INRANGE_CONTACTNUMBER 0x0006 -#define MT_CLS_DUAL_NSMU_CONTACTID 0x0007 +#define MT_CLS_CONFIDENCE_CONTACT_ID 0x0004 +#define MT_CLS_CONFIDENCE_MINUS_ONE 0x0005 +#define MT_CLS_DUAL_INRANGE_CONTACTID 0x0006 +#define MT_CLS_DUAL_INRANGE_CONTACTNUMBER 0x0007 +#define MT_CLS_DUAL_NSMU_CONTACTID 0x0008 +#define MT_CLS_INRANGE_CONTACTNUMBER 0x0009 /* vendor specific classes */ #define MT_CLS_3M 0x0101 #define MT_CLS_CYPRESS 0x0102 #define MT_CLS_EGALAX 0x0103 +#define MT_CLS_EGALAX_SERIAL 0x0104 #define MT_DEFAULT_MAXCONTACT 10 @@ -140,6 +143,9 @@ .quirks = MT_QUIRK_ALWAYS_VALID}, { .name = MT_CLS_CONFIDENCE, .quirks = MT_QUIRK_VALID_IS_CONFIDENCE }, + { .name = MT_CLS_CONFIDENCE_CONTACT_ID, + .quirks = MT_QUIRK_VALID_IS_CONFIDENCE | + MT_QUIRK_SLOT_IS_CONTACTID }, { .name = MT_CLS_CONFIDENCE_MINUS_ONE, .quirks = MT_QUIRK_VALID_IS_CONFIDENCE | MT_QUIRK_SLOT_IS_CONTACTID_MINUS_ONE }, @@ -155,6 +161,9 @@ .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP | MT_QUIRK_SLOT_IS_CONTACTID, .maxcontacts = 2 }, + { .name = MT_CLS_INRANGE_CONTACTNUMBER, + .quirks = MT_QUIRK_VALID_IS_INRANGE | + MT_QUIRK_SLOT_IS_CONTACTNUMBER }, /* * vendor specific classes @@ -177,6 +186,12 @@ .sn_move = 4096, .sn_pressure = 32, }, + { .name = MT_CLS_EGALAX_SERIAL, + .quirks = MT_QUIRK_SLOT_IS_CONTACTID | + MT_QUIRK_ALWAYS_VALID, + .sn_move = 4096, + .sn_pressure = 32, + }, { } }; @@ -609,12 +624,20 @@ { .driver_data = MT_CLS_3M, HID_USB_DEVICE(USB_VENDOR_ID_3M, USB_DEVICE_ID_3M2256) }, + { .driver_data = MT_CLS_3M, + HID_USB_DEVICE(USB_VENDOR_ID_3M, + USB_DEVICE_ID_3M3266) }, /* ActionStar panels */ { .driver_data = MT_CLS_DEFAULT, HID_USB_DEVICE(USB_VENDOR_ID_ACTIONSTAR, USB_DEVICE_ID_ACTIONSTAR_1011) }, + /* Atmel panels */ + { .driver_data = MT_CLS_SERIAL, + HID_USB_DEVICE(USB_VENDOR_ID_ATMEL, + USB_DEVICE_ID_ATMEL_MULTITOUCH) }, + /* Cando panels */ { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, HID_USB_DEVICE(USB_VENDOR_ID_CANDO, @@ -645,23 +668,53 @@ USB_DEVICE_ID_CYPRESS_TRUETOUCH) }, /* eGalax devices (resistive) */ - { .driver_data = MT_CLS_EGALAX, + { .driver_data = MT_CLS_EGALAX, HID_USB_DEVICE(USB_VENDOR_ID_DWAV, - USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH) }, - { .driver_data = MT_CLS_EGALAX, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D) }, + { .driver_data = MT_CLS_EGALAX, HID_USB_DEVICE(USB_VENDOR_ID_DWAV, - USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3) }, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E) }, /* eGalax devices (capacitive) */ - { .driver_data = MT_CLS_EGALAX, + { .driver_data = MT_CLS_EGALAX, + HID_USB_DEVICE(USB_VENDOR_ID_DWAV, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C) }, + { .driver_data = MT_CLS_EGALAX_SERIAL, + HID_USB_DEVICE(USB_VENDOR_ID_DWAV, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7207) }, + { .driver_data = MT_CLS_EGALAX_SERIAL, + HID_USB_DEVICE(USB_VENDOR_ID_DWAV, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_725E) }, + { .driver_data = MT_CLS_EGALAX_SERIAL, + HID_USB_DEVICE(USB_VENDOR_ID_DWAV, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224) }, + { .driver_data = MT_CLS_EGALAX_SERIAL, + HID_USB_DEVICE(USB_VENDOR_ID_DWAV, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_722A) }, + { .driver_data = MT_CLS_EGALAX, + HID_USB_DEVICE(USB_VENDOR_ID_DWAV, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B) }, + { .driver_data = MT_CLS_EGALAX_SERIAL, + HID_USB_DEVICE(USB_VENDOR_ID_DWAV, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7262) }, + { .driver_data = MT_CLS_EGALAX, + HID_USB_DEVICE(USB_VENDOR_ID_DWAV, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1) }, + { .driver_data = MT_CLS_EGALAX_SERIAL, HID_USB_DEVICE(USB_VENDOR_ID_DWAV, - USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH1) }, - { .driver_data = MT_CLS_EGALAX, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72AA) }, + { .driver_data = MT_CLS_EGALAX, HID_USB_DEVICE(USB_VENDOR_ID_DWAV, - USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH2) }, - { .driver_data = MT_CLS_EGALAX, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72FA) }, + { .driver_data = MT_CLS_EGALAX, HID_USB_DEVICE(USB_VENDOR_ID_DWAV, - USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4) }, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302) }, + { .driver_data = MT_CLS_EGALAX_SERIAL, + HID_USB_DEVICE(USB_VENDOR_ID_DWAV, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349) }, + { .driver_data = MT_CLS_EGALAX_SERIAL, + HID_USB_DEVICE(USB_VENDOR_ID_DWAV, + USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) }, /* Elo TouchSystems IntelliTouch Plus panel */ { .driver_data = MT_CLS_DUAL_NSMU_CONTACTID, @@ -678,10 +731,18 @@ HID_USB_DEVICE(USB_VENDOR_ID_GOODTOUCH, USB_DEVICE_ID_GOODTOUCH_000f) }, + /* Hanvon panels */ + { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, + HID_USB_DEVICE(USB_VENDOR_ID_HANVON_ALT, + USB_DEVICE_ID_HANVON_ALT_MULTITOUCH) }, + /* Ideacom panel */ { .driver_data = MT_CLS_SERIAL, HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM, USB_DEVICE_ID_IDEACOM_IDC6650) }, + { .driver_data = MT_CLS_SERIAL, + HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM, + USB_DEVICE_ID_IDEACOM_IDC6651) }, /* Ilitek dual touch panel */ { .driver_data = MT_CLS_DEFAULT, @@ -722,6 +783,17 @@ HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, USB_DEVICE_ID_PENMOUNT_PCI) }, + /* PixArt optical touch screen */ + { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER, + HID_USB_DEVICE(USB_VENDOR_ID_PIXART, + USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN) }, + { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER, + HID_USB_DEVICE(USB_VENDOR_ID_PIXART, + USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1) }, + { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER, + HID_USB_DEVICE(USB_VENDOR_ID_PIXART, + USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2) }, + /* PixCir-based panels */ { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, HID_USB_DEVICE(USB_VENDOR_ID_HANVON, @@ -730,6 +802,17 @@ HID_USB_DEVICE(USB_VENDOR_ID_CANDO, USB_DEVICE_ID_CANDO_PIXCIR_MULTI_TOUCH) }, + /* Quanta-based panels */ + { .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID, + HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, + USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) }, + { .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID, + HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, + USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001) }, + { .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID, + HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, + USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008) }, + /* Stantum panels */ { .driver_data = MT_CLS_CONFIDENCE, HID_USB_DEVICE(USB_VENDOR_ID_STANTUM, @@ -758,6 +841,35 @@ HID_USB_DEVICE(USB_VENDOR_ID_XAT, USB_DEVICE_ID_XAT_CSR) }, + /* Xiroku */ + { .driver_data = MT_CLS_DEFAULT, + HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, + USB_DEVICE_ID_XIROKU_SPX) }, + { .driver_data = MT_CLS_DEFAULT, + HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, + USB_DEVICE_ID_XIROKU_MPX) }, + { .driver_data = MT_CLS_DEFAULT, + HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, + USB_DEVICE_ID_XIROKU_CSR) }, + { .driver_data = MT_CLS_DEFAULT, + HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, + USB_DEVICE_ID_XIROKU_SPX1) }, + { .driver_data = MT_CLS_DEFAULT, + HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, + USB_DEVICE_ID_XIROKU_MPX1) }, + { .driver_data = MT_CLS_DEFAULT, + HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, + USB_DEVICE_ID_XIROKU_CSR1) }, + { .driver_data = MT_CLS_DEFAULT, + HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, + USB_DEVICE_ID_XIROKU_SPX2) }, + { .driver_data = MT_CLS_DEFAULT, + HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, + USB_DEVICE_ID_XIROKU_MPX2) }, + { .driver_data = MT_CLS_DEFAULT, + HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, + USB_DEVICE_ID_XIROKU_CSR2) }, + { } }; MODULE_DEVICE_TABLE(hid, mt_devices); --- linux-3.2.0.orig/drivers/hid/hid-sony.c +++ linux-3.2.0/drivers/hid/hid-sony.c @@ -44,9 +44,19 @@ { struct sony_sc *sc = hid_get_drvdata(hdev); - if ((sc->quirks & VAIO_RDESC_CONSTANT) && - *rsize >= 56 && rdesc[54] == 0x81 && rdesc[55] == 0x07) { - hid_info(hdev, "Fixing up Sony Vaio VGX report descriptor\n"); + /* + * Some Sony RF receivers wrongly declare the mouse pointer as a + * a constant non-data variable. + */ + if ((sc->quirks & VAIO_RDESC_CONSTANT) && *rsize >= 56 && + /* usage page: generic desktop controls */ + /* rdesc[0] == 0x05 && rdesc[1] == 0x01 && */ + /* usage: mouse */ + rdesc[2] == 0x09 && rdesc[3] == 0x02 && + /* input (usage page for x,y axes): constant, variable, relative */ + rdesc[54] == 0x81 && rdesc[55] == 0x07) { + hid_info(hdev, "Fixing up Sony RF Receiver report descriptor\n"); + /* input: data, variable, relative */ rdesc[55] = 0x06; } @@ -218,6 +228,8 @@ .driver_data = SIXAXIS_CONTROLLER_BT }, { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE), .driver_data = VAIO_RDESC_CONSTANT }, + { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE), + .driver_data = VAIO_RDESC_CONSTANT }, { } }; MODULE_DEVICE_TABLE(hid, sony_devices); --- linux-3.2.0.orig/drivers/hid/usbhid/hid-quirks.c +++ linux-3.2.0/drivers/hid/usbhid/hid-quirks.c @@ -53,6 +53,7 @@ { USB_VENDOR_ID_PLAYDOTCOM, USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII, HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS, HID_QUIRK_MULTI_INPUT }, + { USB_VENDOR_ID_AIREN, USB_DEVICE_ID_AIREN_SLIMPLUS, HID_QUIRK_NOGET }, { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM, HID_QUIRK_NOGET }, { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS124U, HID_QUIRK_NOGET }, { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET }, @@ -67,8 +68,17 @@ { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET }, { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET }, { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, + { USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER, HID_QUIRK_NO_INIT_REPORTS }, + { USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28, HID_QUIRK_NOGET }, + { USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET }, + { USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GX680R_LED_PANEL, HID_QUIRK_NO_INIT_REPORTS }, + { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NO_INIT_REPORTS }, + { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1, HID_QUIRK_NO_INIT_REPORTS }, + { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2, HID_QUIRK_NO_INIT_REPORTS }, { USB_VENDOR_ID_PRODIGE, USB_DEVICE_ID_PRODIGE_CORDLESS, HID_QUIRK_NOGET }, { USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NOGET }, + { USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008, HID_QUIRK_NOGET }, + { USB_VENDOR_ID_REALTEK, USB_DEVICE_ID_REALTEK_READER, HID_QUIRK_NO_INIT_REPORTS }, { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET }, { USB_VENDOR_ID_SYMBOL, USB_DEVICE_ID_SYMBOL_SCANNER_1, HID_QUIRK_NOGET }, { USB_VENDOR_ID_SYMBOL, USB_DEVICE_ID_SYMBOL_SCANNER_2, HID_QUIRK_NOGET }, --- linux-3.2.0.orig/drivers/scsi/Kconfig +++ linux-3.2.0/drivers/scsi/Kconfig @@ -662,6 +662,13 @@ To compile this driver as a module, choose M here: the module will be called vmw_pvscsi. +config HYPERV_STORAGE + tristate "Microsoft Hyper-V virtual storage driver" + depends on SCSI && HYPERV + default HYPERV + help + Select this option to enable the Hyper-V virtual storage driver. + config LIBFC tristate "LibFC module" select SCSI_FC_ATTRS --- linux-3.2.0.orig/drivers/scsi/dc395x.c +++ linux-3.2.0/drivers/scsi/dc395x.c @@ -3747,13 +3747,13 @@ dcb->max_command = 1; dcb->target_id = target; dcb->target_lun = lun; + dcb->dev_mode = eeprom->target[target].cfg0; #ifndef DC395x_NO_DISCONNECT dcb->identify_msg = IDENTIFY(dcb->dev_mode & NTC_DO_DISCONNECT, lun); #else dcb->identify_msg = IDENTIFY(0, lun); #endif - dcb->dev_mode = eeprom->target[target].cfg0; dcb->inquiry7 = 0; dcb->sync_mode = 0; dcb->min_nego_period = clock_period[period_index]; --- linux-3.2.0.orig/drivers/scsi/scsi_wait_scan.c +++ linux-3.2.0/drivers/scsi/scsi_wait_scan.c @@ -12,7 +12,7 @@ #include #include -#include +#include "scsi_priv.h" static int __init wait_scan_init(void) { --- linux-3.2.0.orig/drivers/scsi/atp870u.c +++ linux-3.2.0/drivers/scsi/atp870u.c @@ -1174,7 +1174,16 @@ outw(val, tmport); outb(2, 0x80); TCM_SYNC: - udelay(0x800); + /* + * The funny division into multiple delays is to accomodate + * arches like ARM where udelay() multiplies its argument by + * a large number to initialize a loop counter. To avoid + * overflow, the maximum supported udelay is 2000 microseconds. + * + * XXX it would be more polite to find a way to use msleep() + */ + mdelay(2); + udelay(48); if ((inb(tmport) & 0x80) == 0x00) { /* bsy ? */ outw(0, tmport--); outb(0, tmport); --- linux-3.2.0.orig/drivers/scsi/scsi_lib.c +++ linux-3.2.0/drivers/scsi/scsi_lib.c @@ -406,10 +406,6 @@ LIST_HEAD(starved_list); unsigned long flags; - /* if the device is dead, sdev will be NULL, so no queue to run */ - if (!sdev) - return; - shost = sdev->host; if (scsi_target(sdev)->single_lun) scsi_single_lun_run(sdev); @@ -483,15 +479,26 @@ */ static void scsi_requeue_command(struct request_queue *q, struct scsi_cmnd *cmd) { + struct scsi_device *sdev = cmd->device; struct request *req = cmd->request; unsigned long flags; + /* + * We need to hold a reference on the device to avoid the queue being + * killed after the unlock and before scsi_run_queue is invoked which + * may happen because scsi_unprep_request() puts the command which + * releases its reference on the device. + */ + get_device(&sdev->sdev_gendev); + spin_lock_irqsave(q->queue_lock, flags); scsi_unprep_request(req); blk_requeue_request(q, req); spin_unlock_irqrestore(q->queue_lock, flags); scsi_run_queue(q); + + put_device(&sdev->sdev_gendev); } void scsi_next_command(struct scsi_cmnd *cmd) @@ -1374,24 +1381,27 @@ * may be changed after request stacking drivers call the function, * regardless of taking lock or not. * - * When scsi can't dispatch I/Os anymore and needs to kill I/Os - * (e.g. !sdev), scsi needs to return 'not busy'. - * Otherwise, request stacking drivers may hold requests forever. + * When scsi can't dispatch I/Os anymore and needs to kill I/Os scsi + * needs to return 'not busy'. Otherwise, request stacking drivers + * may hold requests forever. */ static int scsi_lld_busy(struct request_queue *q) { struct scsi_device *sdev = q->queuedata; struct Scsi_Host *shost; - struct scsi_target *starget; - if (!sdev) + if (blk_queue_dead(q)) return 0; shost = sdev->host; - starget = scsi_target(sdev); - if (scsi_host_in_recovery(shost) || scsi_host_is_busy(shost) || - scsi_target_is_busy(starget) || scsi_device_is_busy(sdev)) + /* + * Ignore host/starget busy state. + * Since block layer does not have a concept of fairness across + * multiple queues, congestion of host/starget needs to be handled + * in SCSI layer. + */ + if (scsi_host_in_recovery(shost) || scsi_device_is_busy(sdev)) return 1; return 0; @@ -1491,12 +1501,6 @@ struct scsi_cmnd *cmd; struct request *req; - if (!sdev) { - while ((req = blk_peek_request(q)) != NULL) - scsi_kill_request(req, q); - return; - } - if(!get_device(&sdev->sdev_gendev)) /* We must be tearing the block queue down already */ return; @@ -1698,20 +1702,6 @@ return q; } -void scsi_free_queue(struct request_queue *q) -{ - unsigned long flags; - - WARN_ON(q->queuedata); - - /* cause scsi_request_fn() to kill all non-finished requests */ - spin_lock_irqsave(q->queue_lock, flags); - q->request_fn(q); - spin_unlock_irqrestore(q->queue_lock, flags); - - blk_cleanup_queue(q); -} - /* * Function: scsi_block_requests() * --- linux-3.2.0.orig/drivers/scsi/scsi.c +++ linux-3.2.0/drivers/scsi/scsi.c @@ -785,7 +785,13 @@ /* Move this to a header if it becomes more generally useful */ static struct scsi_driver *scsi_cmd_to_driver(struct scsi_cmnd *cmd) { - return *(struct scsi_driver **)cmd->request->rq_disk->private_data; + struct scsi_driver **sdp; + + sdp = (struct scsi_driver **)cmd->request->rq_disk->private_data; + if (!sdp) + return NULL; + + return *sdp; } /** --- linux-3.2.0.orig/drivers/scsi/scsi_scan.c +++ linux-3.2.0/drivers/scsi/scsi_scan.c @@ -776,6 +776,16 @@ sdev->model = (char *) (sdev->inquiry + 16); sdev->rev = (char *) (sdev->inquiry + 32); + if (strncmp(sdev->vendor, "ATA ", 8) == 0) { + /* + * sata emulation layer device. This is a hack to work around + * the SATL power management specifications which state that + * when the SATL detects the device has gone into standby + * mode, it shall respond with NOT READY. + */ + sdev->allow_restart = 1; + } + if (*bflags & BLIST_ISROM) { sdev->type = TYPE_ROM; sdev->removable = 1; @@ -1710,6 +1720,9 @@ { struct scsi_device *sdev; shost_for_each_device(sdev, shost) { + /* target removed before the device could be added */ + if (sdev->sdev_state == SDEV_DEL) + continue; if (!scsi_host_scan_allowed(shost) || scsi_sysfs_add_sdev(sdev) != 0) __scsi_remove_device(sdev); @@ -1815,6 +1828,7 @@ } spin_unlock(&async_scan_lock); + scsi_autopm_put_host(shost); scsi_host_put(shost); kfree(data); } @@ -1841,7 +1855,6 @@ do_scsi_scan_host(shost); scsi_finish_async_scan(data); - scsi_autopm_put_host(shost); return 0; } @@ -1869,7 +1882,7 @@ p = kthread_run(do_scan_async, data, "scsi_scan_%d", shost->host_no); if (IS_ERR(p)) do_scan_async(data); - /* scsi_autopm_put_host(shost) is called in do_scan_async() */ + /* scsi_autopm_put_host(shost) is called in scsi_finish_async_scan() */ } EXPORT_SYMBOL(scsi_scan_host); --- linux-3.2.0.orig/drivers/scsi/Makefile +++ linux-3.2.0/drivers/scsi/Makefile @@ -142,6 +142,7 @@ obj-$(CONFIG_BE2ISCSI) += libiscsi.o be2iscsi/ obj-$(CONFIG_SCSI_PMCRAID) += pmcraid.o obj-$(CONFIG_VMWARE_PVSCSI) += vmw_pvscsi.o +obj-$(CONFIG_HYPERV_STORAGE) += hv_storvsc.o obj-$(CONFIG_ARM) += arm/ @@ -170,6 +171,8 @@ scsi_mod-y += scsi_trace.o scsi_mod-$(CONFIG_PM) += scsi_pm.o +hv_storvsc-y := storvsc_drv.o + scsi_tgt-y += scsi_tgt_lib.o scsi_tgt_if.o sd_mod-objs := sd.o --- linux-3.2.0.orig/drivers/scsi/scsi_error.c +++ linux-3.2.0/drivers/scsi/scsi_error.c @@ -41,6 +41,8 @@ #include +static void scsi_eh_done(struct scsi_cmnd *scmd); + #define SENSE_TIMEOUT (10*HZ) /* @@ -240,6 +242,14 @@ if (! scsi_command_normalize_sense(scmd, &sshdr)) return FAILED; /* no valid sense data */ + if (scmd->cmnd[0] == TEST_UNIT_READY && scmd->scsi_done != scsi_eh_done) + /* + * nasty: for mid-layer issued TURs, we need to return the + * actual sense data without any recovery attempt. For eh + * issued ones, we need to try to recover and interpret + */ + return SUCCESS; + if (scsi_sense_is_deferred(&sshdr)) return NEEDS_RETRY; @@ -1673,6 +1683,20 @@ * requests are started. */ scsi_run_host_queues(shost); + + /* + * if eh is active and host_eh_scheduled is pending we need to re-run + * recovery. we do this check after scsi_run_host_queues() to allow + * everything pent up since the last eh run a chance to make forward + * progress before we sync again. Either we'll immediately re-run + * recovery or scsi_device_unbusy() will wake us again when these + * pending commands complete. + */ + spin_lock_irqsave(shost->host_lock, flags); + if (shost->host_eh_scheduled) + if (scsi_host_set_state(shost, SHOST_RECOVERY)) + WARN_ON(scsi_host_set_state(shost, SHOST_CANCEL_RECOVERY)); + spin_unlock_irqrestore(shost->host_lock, flags); } /** --- linux-3.2.0.orig/drivers/scsi/scsi_priv.h +++ linux-3.2.0/drivers/scsi/scsi_priv.h @@ -85,7 +85,6 @@ extern void scsi_io_completion(struct scsi_cmnd *, unsigned int); extern void scsi_run_host_queues(struct Scsi_Host *shost); extern struct request_queue *scsi_alloc_queue(struct scsi_device *sdev); -extern void scsi_free_queue(struct request_queue *q); extern int scsi_init_queue(void); extern void scsi_exit_queue(void); struct request_queue; @@ -110,6 +109,7 @@ #endif /* CONFIG_PROC_FS */ /* scsi_scan.c */ +extern int scsi_complete_async_scans(void); extern int scsi_scan_host_selected(struct Scsi_Host *, unsigned int, unsigned int, unsigned int, int); extern void scsi_forget_host(struct Scsi_Host *); --- linux-3.2.0.orig/drivers/scsi/hpsa_cmd.h +++ linux-3.2.0/drivers/scsi/hpsa_cmd.h @@ -163,6 +163,7 @@ #define BMIC_WRITE 0x27 #define BMIC_CACHE_FLUSH 0xc2 #define HPSA_CACHE_FLUSH 0x01 /* C2 was already being used by HPSA */ +#define BMIC_FLASH_FIRMWARE 0xF7 /* Command List Structure */ union SCSI3Addr { --- linux-3.2.0.orig/drivers/scsi/storvsc_drv.c +++ linux-3.2.0/drivers/scsi/storvsc_drv.c @@ -0,0 +1,1566 @@ +/* + * Copyright (c) 2009, Microsoft Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope 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., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * + * Authors: + * Haiyang Zhang + * Hank Janssen + * K. Y. Srinivasan + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * All wire protocol details (storage protocol between the guest and the host) + * are consolidated here. + * + * Begin protocol definitions. + */ + +/* + * Version history: + * V1 Beta: 0.1 + * V1 RC < 2008/1/31: 1.0 + * V1 RC > 2008/1/31: 2.0 + * Win7: 4.2 + */ + +#define VMSTOR_CURRENT_MAJOR 4 +#define VMSTOR_CURRENT_MINOR 2 + + +/* Packet structure describing virtual storage requests. */ +enum vstor_packet_operation { + VSTOR_OPERATION_COMPLETE_IO = 1, + VSTOR_OPERATION_REMOVE_DEVICE = 2, + VSTOR_OPERATION_EXECUTE_SRB = 3, + VSTOR_OPERATION_RESET_LUN = 4, + VSTOR_OPERATION_RESET_ADAPTER = 5, + VSTOR_OPERATION_RESET_BUS = 6, + VSTOR_OPERATION_BEGIN_INITIALIZATION = 7, + VSTOR_OPERATION_END_INITIALIZATION = 8, + VSTOR_OPERATION_QUERY_PROTOCOL_VERSION = 9, + VSTOR_OPERATION_QUERY_PROPERTIES = 10, + VSTOR_OPERATION_ENUMERATE_BUS = 11, + VSTOR_OPERATION_MAXIMUM = 11 +}; + +/* + * Platform neutral description of a scsi request - + * this remains the same across the write regardless of 32/64 bit + * note: it's patterned off the SCSI_PASS_THROUGH structure + */ +#define STORVSC_MAX_CMD_LEN 0x10 +#define STORVSC_SENSE_BUFFER_SIZE 0x12 +#define STORVSC_MAX_BUF_LEN_WITH_PADDING 0x14 + +struct vmscsi_request { + u16 length; + u8 srb_status; + u8 scsi_status; + + u8 port_number; + u8 path_id; + u8 target_id; + u8 lun; + + u8 cdb_length; + u8 sense_info_length; + u8 data_in; + u8 reserved; + + u32 data_transfer_length; + + union { + u8 cdb[STORVSC_MAX_CMD_LEN]; + u8 sense_data[STORVSC_SENSE_BUFFER_SIZE]; + u8 reserved_array[STORVSC_MAX_BUF_LEN_WITH_PADDING]; + }; +} __attribute((packed)); + + +/* + * This structure is sent during the intialization phase to get the different + * properties of the channel. + */ +struct vmstorage_channel_properties { + u16 protocol_version; + u8 path_id; + u8 target_id; + + /* Note: port number is only really known on the client side */ + u32 port_number; + u32 flags; + u32 max_transfer_bytes; + + /* + * This id is unique for each channel and will correspond with + * vendor specific data in the inquiry data. + */ + + u64 unique_id; +} __packed; + +/* This structure is sent during the storage protocol negotiations. */ +struct vmstorage_protocol_version { + /* Major (MSW) and minor (LSW) version numbers. */ + u16 major_minor; + + /* + * Revision number is auto-incremented whenever this file is changed + * (See FILL_VMSTOR_REVISION macro above). Mismatch does not + * definitely indicate incompatibility--but it does indicate mismatched + * builds. + * This is only used on the windows side. Just set it to 0. + */ + u16 revision; +} __packed; + +/* Channel Property Flags */ +#define STORAGE_CHANNEL_REMOVABLE_FLAG 0x1 +#define STORAGE_CHANNEL_EMULATED_IDE_FLAG 0x2 + +struct vstor_packet { + /* Requested operation type */ + enum vstor_packet_operation operation; + + /* Flags - see below for values */ + u32 flags; + + /* Status of the request returned from the server side. */ + u32 status; + + /* Data payload area */ + union { + /* + * Structure used to forward SCSI commands from the + * client to the server. + */ + struct vmscsi_request vm_srb; + + /* Structure used to query channel properties. */ + struct vmstorage_channel_properties storage_channel_properties; + + /* Used during version negotiations. */ + struct vmstorage_protocol_version version; + }; +} __packed; + +/* + * Packet Flags: + * + * This flag indicates that the server should send back a completion for this + * packet. + */ + +#define REQUEST_COMPLETION_FLAG 0x1 + +/* Matches Windows-end */ +enum storvsc_request_type { + WRITE_TYPE = 0, + READ_TYPE, + UNKNOWN_TYPE, +}; + +/* + * SRB status codes and masks; a subset of the codes used here. + */ + +#define SRB_STATUS_AUTOSENSE_VALID 0x80 +#define SRB_STATUS_INVALID_LUN 0x20 +#define SRB_STATUS_SUCCESS 0x01 +#define SRB_STATUS_ERROR 0x04 + +/* + * This is the end of Protocol specific defines. + */ + + +/* + * We setup a mempool to allocate request structures for this driver + * on a per-lun basis. The following define specifies the number of + * elements in the pool. + */ + +#define STORVSC_MIN_BUF_NR 64 +static int storvsc_ringbuffer_size = (20 * PAGE_SIZE); + +module_param(storvsc_ringbuffer_size, int, S_IRUGO); +MODULE_PARM_DESC(storvsc_ringbuffer_size, "Ring buffer size (bytes)"); + +#define STORVSC_MAX_IO_REQUESTS 128 + +/* + * In Hyper-V, each port/path/target maps to 1 scsi host adapter. In + * reality, the path/target is not used (ie always set to 0) so our + * scsi host adapter essentially has 1 bus with 1 target that contains + * up to 256 luns. + */ +#define STORVSC_MAX_LUNS_PER_TARGET 64 +#define STORVSC_MAX_TARGETS 1 +#define STORVSC_MAX_CHANNELS 1 + + + +struct storvsc_cmd_request { + struct list_head entry; + struct scsi_cmnd *cmd; + + unsigned int bounce_sgl_count; + struct scatterlist *bounce_sgl; + + struct hv_device *device; + + /* Synchronize the request/response if needed */ + struct completion wait_event; + + unsigned char *sense_buffer; + struct hv_multipage_buffer data_buffer; + struct vstor_packet vstor_packet; +}; + + +/* A storvsc device is a device object that contains a vmbus channel */ +struct storvsc_device { + struct hv_device *device; + + bool destroy; + bool drain_notify; + atomic_t num_outstanding_req; + struct Scsi_Host *host; + + wait_queue_head_t waiting_to_drain; + + /* + * Each unique Port/Path/Target represents 1 channel ie scsi + * controller. In reality, the pathid, targetid is always 0 + * and the port is set by us + */ + unsigned int port_number; + unsigned char path_id; + unsigned char target_id; + + /* Used for vsc/vsp channel reset process */ + struct storvsc_cmd_request init_request; + struct storvsc_cmd_request reset_request; +}; + +struct stor_mem_pools { + struct kmem_cache *request_pool; + mempool_t *request_mempool; +}; + +struct hv_host_device { + struct hv_device *dev; + unsigned int port; + unsigned char path; + unsigned char target; +}; + +struct storvsc_scan_work { + struct work_struct work; + struct Scsi_Host *host; + uint lun; +}; + +static void storvsc_bus_scan(struct work_struct *work) +{ + struct storvsc_scan_work *wrk; + int id, order_id; + + wrk = container_of(work, struct storvsc_scan_work, work); + for (id = 0; id < wrk->host->max_id; ++id) { + if (wrk->host->reverse_ordering) + order_id = wrk->host->max_id - id - 1; + else + order_id = id; + + scsi_scan_target(&wrk->host->shost_gendev, 0, + order_id, SCAN_WILD_CARD, 1); + } + kfree(wrk); +} + +static void storvsc_remove_lun(struct work_struct *work) +{ + struct storvsc_scan_work *wrk; + struct scsi_device *sdev; + + wrk = container_of(work, struct storvsc_scan_work, work); + if (!scsi_host_get(wrk->host)) + goto done; + + sdev = scsi_device_lookup(wrk->host, 0, 0, wrk->lun); + + if (sdev) { + scsi_remove_device(sdev); + scsi_device_put(sdev); + } + scsi_host_put(wrk->host); + +done: + kfree(wrk); +} + +/* + * Major/minor macros. Minor version is in LSB, meaning that earlier flat + * version numbers will be interpreted as "0.x" (i.e., 1 becomes 0.1). + */ + +static inline u16 storvsc_get_version(u8 major, u8 minor) +{ + u16 version; + + version = ((major << 8) | minor); + return version; +} + +/* + * We can get incoming messages from the host that are not in response to + * messages that we have sent out. An example of this would be messages + * received by the guest to notify dynamic addition/removal of LUNs. To + * deal with potential race conditions where the driver may be in the + * midst of being unloaded when we might receive an unsolicited message + * from the host, we have implemented a mechanism to gurantee sequential + * consistency: + * + * 1) Once the device is marked as being destroyed, we will fail all + * outgoing messages. + * 2) We permit incoming messages when the device is being destroyed, + * only to properly account for messages already sent out. + */ + +static inline struct storvsc_device *get_out_stor_device( + struct hv_device *device) +{ + struct storvsc_device *stor_device; + + stor_device = hv_get_drvdata(device); + + if (stor_device && stor_device->destroy) + stor_device = NULL; + + return stor_device; +} + + +static inline void storvsc_wait_to_drain(struct storvsc_device *dev) +{ + dev->drain_notify = true; + wait_event(dev->waiting_to_drain, + atomic_read(&dev->num_outstanding_req) == 0); + dev->drain_notify = false; +} + +static inline struct storvsc_device *get_in_stor_device( + struct hv_device *device) +{ + struct storvsc_device *stor_device; + + stor_device = hv_get_drvdata(device); + + if (!stor_device) + goto get_in_err; + + /* + * If the device is being destroyed; allow incoming + * traffic only to cleanup outstanding requests. + */ + + if (stor_device->destroy && + (atomic_read(&stor_device->num_outstanding_req) == 0)) + stor_device = NULL; + +get_in_err: + return stor_device; + +} + +static void destroy_bounce_buffer(struct scatterlist *sgl, + unsigned int sg_count) +{ + int i; + struct page *page_buf; + + for (i = 0; i < sg_count; i++) { + page_buf = sg_page((&sgl[i])); + if (page_buf != NULL) + __free_page(page_buf); + } + + kfree(sgl); +} + +static int do_bounce_buffer(struct scatterlist *sgl, unsigned int sg_count) +{ + int i; + + /* No need to check */ + if (sg_count < 2) + return -1; + + /* We have at least 2 sg entries */ + for (i = 0; i < sg_count; i++) { + if (i == 0) { + /* make sure 1st one does not have hole */ + if (sgl[i].offset + sgl[i].length != PAGE_SIZE) + return i; + } else if (i == sg_count - 1) { + /* make sure last one does not have hole */ + if (sgl[i].offset != 0) + return i; + } else { + /* make sure no hole in the middle */ + if (sgl[i].length != PAGE_SIZE || sgl[i].offset != 0) + return i; + } + } + return -1; +} + +static struct scatterlist *create_bounce_buffer(struct scatterlist *sgl, + unsigned int sg_count, + unsigned int len, + int write) +{ + int i; + int num_pages; + struct scatterlist *bounce_sgl; + struct page *page_buf; + unsigned int buf_len = ((write == WRITE_TYPE) ? 0 : PAGE_SIZE); + + num_pages = ALIGN(len, PAGE_SIZE) >> PAGE_SHIFT; + + bounce_sgl = kcalloc(num_pages, sizeof(struct scatterlist), GFP_ATOMIC); + if (!bounce_sgl) + return NULL; + + sg_init_table(bounce_sgl, num_pages); + for (i = 0; i < num_pages; i++) { + page_buf = alloc_page(GFP_ATOMIC); + if (!page_buf) + goto cleanup; + sg_set_page(&bounce_sgl[i], page_buf, buf_len, 0); + } + + return bounce_sgl; + +cleanup: + destroy_bounce_buffer(bounce_sgl, num_pages); + return NULL; +} + +/* Assume the original sgl has enough room */ +static unsigned int copy_from_bounce_buffer(struct scatterlist *orig_sgl, + struct scatterlist *bounce_sgl, + unsigned int orig_sgl_count, + unsigned int bounce_sgl_count) +{ + int i; + int j = 0; + unsigned long src, dest; + unsigned int srclen, destlen, copylen; + unsigned int total_copied = 0; + unsigned long bounce_addr = 0; + unsigned long dest_addr = 0; + unsigned long flags; + + local_irq_save(flags); + + for (i = 0; i < orig_sgl_count; i++) { + dest_addr = (unsigned long)kmap_atomic(sg_page((&orig_sgl[i])), + KM_IRQ0) + orig_sgl[i].offset; + dest = dest_addr; + destlen = orig_sgl[i].length; + + if (bounce_addr == 0) + bounce_addr = + (unsigned long)kmap_atomic(sg_page((&bounce_sgl[j])), + KM_IRQ0); + + while (destlen) { + src = bounce_addr + bounce_sgl[j].offset; + srclen = bounce_sgl[j].length - bounce_sgl[j].offset; + + copylen = min(srclen, destlen); + memcpy((void *)dest, (void *)src, copylen); + + total_copied += copylen; + bounce_sgl[j].offset += copylen; + destlen -= copylen; + dest += copylen; + + if (bounce_sgl[j].offset == bounce_sgl[j].length) { + /* full */ + kunmap_atomic((void *)bounce_addr, KM_IRQ0); + j++; + + /* + * It is possible that the number of elements + * in the bounce buffer may not be equal to + * the number of elements in the original + * scatter list. Handle this correctly. + */ + + if (j == bounce_sgl_count) { + /* + * We are done; cleanup and return. + */ + kunmap_atomic((void *)(dest_addr - + orig_sgl[i].offset), + KM_IRQ0); + local_irq_restore(flags); + return total_copied; + } + + /* if we need to use another bounce buffer */ + if (destlen || i != orig_sgl_count - 1) + bounce_addr = + (unsigned long)kmap_atomic( + sg_page((&bounce_sgl[j])), KM_IRQ0); + } else if (destlen == 0 && i == orig_sgl_count - 1) { + /* unmap the last bounce that is < PAGE_SIZE */ + kunmap_atomic((void *)bounce_addr, KM_IRQ0); + } + } + + kunmap_atomic((void *)(dest_addr - orig_sgl[i].offset), + KM_IRQ0); + } + + local_irq_restore(flags); + + return total_copied; +} + +/* Assume the bounce_sgl has enough room ie using the create_bounce_buffer() */ +static unsigned int copy_to_bounce_buffer(struct scatterlist *orig_sgl, + struct scatterlist *bounce_sgl, + unsigned int orig_sgl_count) +{ + int i; + int j = 0; + unsigned long src, dest; + unsigned int srclen, destlen, copylen; + unsigned int total_copied = 0; + unsigned long bounce_addr = 0; + unsigned long src_addr = 0; + unsigned long flags; + + local_irq_save(flags); + + for (i = 0; i < orig_sgl_count; i++) { + src_addr = (unsigned long)kmap_atomic(sg_page((&orig_sgl[i])), + KM_IRQ0) + orig_sgl[i].offset; + src = src_addr; + srclen = orig_sgl[i].length; + + if (bounce_addr == 0) + bounce_addr = + (unsigned long)kmap_atomic(sg_page((&bounce_sgl[j])), + KM_IRQ0); + + while (srclen) { + /* assume bounce offset always == 0 */ + dest = bounce_addr + bounce_sgl[j].length; + destlen = PAGE_SIZE - bounce_sgl[j].length; + + copylen = min(srclen, destlen); + memcpy((void *)dest, (void *)src, copylen); + + total_copied += copylen; + bounce_sgl[j].length += copylen; + srclen -= copylen; + src += copylen; + + if (bounce_sgl[j].length == PAGE_SIZE) { + /* full..move to next entry */ + kunmap_atomic((void *)bounce_addr, KM_IRQ0); + j++; + + /* if we need to use another bounce buffer */ + if (srclen || i != orig_sgl_count - 1) + bounce_addr = + (unsigned long)kmap_atomic( + sg_page((&bounce_sgl[j])), KM_IRQ0); + + } else if (srclen == 0 && i == orig_sgl_count - 1) { + /* unmap the last bounce that is < PAGE_SIZE */ + kunmap_atomic((void *)bounce_addr, KM_IRQ0); + } + } + + kunmap_atomic((void *)(src_addr - orig_sgl[i].offset), KM_IRQ0); + } + + local_irq_restore(flags); + + return total_copied; +} + +static int storvsc_channel_init(struct hv_device *device) +{ + struct storvsc_device *stor_device; + struct storvsc_cmd_request *request; + struct vstor_packet *vstor_packet; + int ret, t; + + stor_device = get_out_stor_device(device); + if (!stor_device) + return -ENODEV; + + request = &stor_device->init_request; + vstor_packet = &request->vstor_packet; + + /* + * Now, initiate the vsc/vsp initialization protocol on the open + * channel + */ + memset(request, 0, sizeof(struct storvsc_cmd_request)); + init_completion(&request->wait_event); + vstor_packet->operation = VSTOR_OPERATION_BEGIN_INITIALIZATION; + vstor_packet->flags = REQUEST_COMPLETION_FLAG; + + ret = vmbus_sendpacket(device->channel, vstor_packet, + sizeof(struct vstor_packet), + (unsigned long)request, + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + if (ret != 0) + goto cleanup; + + t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; + } + + if (vstor_packet->operation != VSTOR_OPERATION_COMPLETE_IO || + vstor_packet->status != 0) + goto cleanup; + + + /* reuse the packet for version range supported */ + memset(vstor_packet, 0, sizeof(struct vstor_packet)); + vstor_packet->operation = VSTOR_OPERATION_QUERY_PROTOCOL_VERSION; + vstor_packet->flags = REQUEST_COMPLETION_FLAG; + + vstor_packet->version.major_minor = + storvsc_get_version(VMSTOR_CURRENT_MAJOR, VMSTOR_CURRENT_MINOR); + + /* + * The revision number is only used in Windows; set it to 0. + */ + vstor_packet->version.revision = 0; + + ret = vmbus_sendpacket(device->channel, vstor_packet, + sizeof(struct vstor_packet), + (unsigned long)request, + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + if (ret != 0) + goto cleanup; + + t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; + } + + if (vstor_packet->operation != VSTOR_OPERATION_COMPLETE_IO || + vstor_packet->status != 0) + goto cleanup; + + + memset(vstor_packet, 0, sizeof(struct vstor_packet)); + vstor_packet->operation = VSTOR_OPERATION_QUERY_PROPERTIES; + vstor_packet->flags = REQUEST_COMPLETION_FLAG; + vstor_packet->storage_channel_properties.port_number = + stor_device->port_number; + + ret = vmbus_sendpacket(device->channel, vstor_packet, + sizeof(struct vstor_packet), + (unsigned long)request, + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + + if (ret != 0) + goto cleanup; + + t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; + } + + if (vstor_packet->operation != VSTOR_OPERATION_COMPLETE_IO || + vstor_packet->status != 0) + goto cleanup; + + stor_device->path_id = vstor_packet->storage_channel_properties.path_id; + stor_device->target_id + = vstor_packet->storage_channel_properties.target_id; + + memset(vstor_packet, 0, sizeof(struct vstor_packet)); + vstor_packet->operation = VSTOR_OPERATION_END_INITIALIZATION; + vstor_packet->flags = REQUEST_COMPLETION_FLAG; + + ret = vmbus_sendpacket(device->channel, vstor_packet, + sizeof(struct vstor_packet), + (unsigned long)request, + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + + if (ret != 0) + goto cleanup; + + t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; + } + + if (vstor_packet->operation != VSTOR_OPERATION_COMPLETE_IO || + vstor_packet->status != 0) + goto cleanup; + + +cleanup: + return ret; +} + + +static void storvsc_command_completion(struct storvsc_cmd_request *cmd_request) +{ + struct scsi_cmnd *scmnd = cmd_request->cmd; + struct hv_host_device *host_dev = shost_priv(scmnd->device->host); + void (*scsi_done_fn)(struct scsi_cmnd *); + struct scsi_sense_hdr sense_hdr; + struct vmscsi_request *vm_srb; + struct storvsc_scan_work *wrk; + struct stor_mem_pools *memp = scmnd->device->hostdata; + + vm_srb = &cmd_request->vstor_packet.vm_srb; + if (cmd_request->bounce_sgl_count) { + if (vm_srb->data_in == READ_TYPE) + copy_from_bounce_buffer(scsi_sglist(scmnd), + cmd_request->bounce_sgl, + scsi_sg_count(scmnd), + cmd_request->bounce_sgl_count); + destroy_bounce_buffer(cmd_request->bounce_sgl, + cmd_request->bounce_sgl_count); + } + + /* + * If there is an error; offline the device since all + * error recovery strategies would have already been + * deployed on the host side. However, if the command + * were a pass-through command deal with it appropriately. + */ + switch (vm_srb->srb_status) { + case SRB_STATUS_ERROR: + switch (scmnd->cmnd[0]) { + case ATA_16: + case ATA_12: + scmnd->result = DID_PASSTHROUGH << 16; + break; + default: + scmnd->result = DID_TARGET_FAILURE << 16; + } + break; + default: + scmnd->result = vm_srb->scsi_status; + } + + + /* + * If the LUN is invalid; remove the device. + */ + if (vm_srb->srb_status == SRB_STATUS_INVALID_LUN) { + struct storvsc_device *stor_dev; + struct hv_device *dev = host_dev->dev; + struct Scsi_Host *host; + + stor_dev = get_in_stor_device(dev); + host = stor_dev->host; + + wrk = kmalloc(sizeof(struct storvsc_scan_work), + GFP_ATOMIC); + if (!wrk) { + scmnd->result = DID_TARGET_FAILURE << 16; + } else { + wrk->host = host; + wrk->lun = vm_srb->lun; + INIT_WORK(&wrk->work, storvsc_remove_lun); + schedule_work(&wrk->work); + } + } + + if (scmnd->result) { + if (scsi_normalize_sense(scmnd->sense_buffer, + SCSI_SENSE_BUFFERSIZE, &sense_hdr)) + scsi_print_sense_hdr("storvsc", &sense_hdr); + } + + scsi_set_resid(scmnd, + cmd_request->data_buffer.len - + vm_srb->data_transfer_length); + + scsi_done_fn = scmnd->scsi_done; + + scmnd->host_scribble = NULL; + scmnd->scsi_done = NULL; + + scsi_done_fn(scmnd); + + mempool_free(cmd_request, memp->request_mempool); +} + +static void storvsc_on_io_completion(struct hv_device *device, + struct vstor_packet *vstor_packet, + struct storvsc_cmd_request *request) +{ + struct storvsc_device *stor_device; + struct vstor_packet *stor_pkt; + + stor_device = hv_get_drvdata(device); + stor_pkt = &request->vstor_packet; + + /* + * The current SCSI handling on the host side does + * not correctly handle: + * INQUIRY command with page code parameter set to 0x80 + * MODE_SENSE command with cmd[2] == 0x1c + * + * Setup srb and scsi status so this won't be fatal. + * We do this so we can distinguish truly fatal failues + * (srb status == 0x4) and off-line the device in that case. + */ + + if ((stor_pkt->vm_srb.cdb[0] == INQUIRY) || + (stor_pkt->vm_srb.cdb[0] == MODE_SENSE)) { + vstor_packet->vm_srb.scsi_status = 0; + vstor_packet->vm_srb.srb_status = SRB_STATUS_SUCCESS; + } + + + /* Copy over the status...etc */ + stor_pkt->vm_srb.scsi_status = vstor_packet->vm_srb.scsi_status; + stor_pkt->vm_srb.srb_status = vstor_packet->vm_srb.srb_status; + stor_pkt->vm_srb.sense_info_length = + vstor_packet->vm_srb.sense_info_length; + + if (vstor_packet->vm_srb.scsi_status != 0 || + vstor_packet->vm_srb.srb_status != SRB_STATUS_SUCCESS){ + dev_warn(&device->device, + "cmd 0x%x scsi status 0x%x srb status 0x%x\n", + stor_pkt->vm_srb.cdb[0], + vstor_packet->vm_srb.scsi_status, + vstor_packet->vm_srb.srb_status); + } + + if ((vstor_packet->vm_srb.scsi_status & 0xFF) == 0x02) { + /* CHECK_CONDITION */ + if (vstor_packet->vm_srb.srb_status & + SRB_STATUS_AUTOSENSE_VALID) { + /* autosense data available */ + dev_warn(&device->device, + "stor pkt %p autosense data valid - len %d\n", + request, + vstor_packet->vm_srb.sense_info_length); + + memcpy(request->sense_buffer, + vstor_packet->vm_srb.sense_data, + vstor_packet->vm_srb.sense_info_length); + + } + } + + stor_pkt->vm_srb.data_transfer_length = + vstor_packet->vm_srb.data_transfer_length; + + storvsc_command_completion(request); + + if (atomic_dec_and_test(&stor_device->num_outstanding_req) && + stor_device->drain_notify) + wake_up(&stor_device->waiting_to_drain); + + +} + +static void storvsc_on_receive(struct hv_device *device, + struct vstor_packet *vstor_packet, + struct storvsc_cmd_request *request) +{ + struct storvsc_scan_work *work; + struct storvsc_device *stor_device; + + switch (vstor_packet->operation) { + case VSTOR_OPERATION_COMPLETE_IO: + storvsc_on_io_completion(device, vstor_packet, request); + break; + + case VSTOR_OPERATION_REMOVE_DEVICE: + case VSTOR_OPERATION_ENUMERATE_BUS: + stor_device = get_in_stor_device(device); + work = kmalloc(sizeof(struct storvsc_scan_work), GFP_ATOMIC); + if (!work) + return; + + INIT_WORK(&work->work, storvsc_bus_scan); + work->host = stor_device->host; + schedule_work(&work->work); + break; + + default: + break; + } +} + +static void storvsc_on_channel_callback(void *context) +{ + struct hv_device *device = (struct hv_device *)context; + struct storvsc_device *stor_device; + u32 bytes_recvd; + u64 request_id; + unsigned char packet[ALIGN(sizeof(struct vstor_packet), 8)]; + struct storvsc_cmd_request *request; + int ret; + + + stor_device = get_in_stor_device(device); + if (!stor_device) + return; + + do { + ret = vmbus_recvpacket(device->channel, packet, + ALIGN(sizeof(struct vstor_packet), 8), + &bytes_recvd, &request_id); + if (ret == 0 && bytes_recvd > 0) { + + request = (struct storvsc_cmd_request *) + (unsigned long)request_id; + + if ((request == &stor_device->init_request) || + (request == &stor_device->reset_request)) { + + memcpy(&request->vstor_packet, packet, + sizeof(struct vstor_packet)); + complete(&request->wait_event); + } else { + storvsc_on_receive(device, + (struct vstor_packet *)packet, + request); + } + } else { + break; + } + } while (1); + + return; +} + +static int storvsc_connect_to_vsp(struct hv_device *device, u32 ring_size) +{ + struct vmstorage_channel_properties props; + int ret; + + memset(&props, 0, sizeof(struct vmstorage_channel_properties)); + + ret = vmbus_open(device->channel, + ring_size, + ring_size, + (void *)&props, + sizeof(struct vmstorage_channel_properties), + storvsc_on_channel_callback, device); + + if (ret != 0) + return ret; + + ret = storvsc_channel_init(device); + + return ret; +} + +static int storvsc_dev_remove(struct hv_device *device) +{ + struct storvsc_device *stor_device; + unsigned long flags; + + stor_device = hv_get_drvdata(device); + + spin_lock_irqsave(&device->channel->inbound_lock, flags); + stor_device->destroy = true; + spin_unlock_irqrestore(&device->channel->inbound_lock, flags); + + /* + * At this point, all outbound traffic should be disable. We + * only allow inbound traffic (responses) to proceed so that + * outstanding requests can be completed. + */ + + storvsc_wait_to_drain(stor_device); + + /* + * Since we have already drained, we don't need to busy wait + * as was done in final_release_stor_device() + * Note that we cannot set the ext pointer to NULL until + * we have drained - to drain the outgoing packets, we need to + * allow incoming packets. + */ + spin_lock_irqsave(&device->channel->inbound_lock, flags); + hv_set_drvdata(device, NULL); + spin_unlock_irqrestore(&device->channel->inbound_lock, flags); + + /* Close the channel */ + vmbus_close(device->channel); + + kfree(stor_device); + return 0; +} + +static int storvsc_do_io(struct hv_device *device, + struct storvsc_cmd_request *request) +{ + struct storvsc_device *stor_device; + struct vstor_packet *vstor_packet; + int ret = 0; + + vstor_packet = &request->vstor_packet; + stor_device = get_out_stor_device(device); + + if (!stor_device) + return -ENODEV; + + + request->device = device; + + + vstor_packet->flags |= REQUEST_COMPLETION_FLAG; + + vstor_packet->vm_srb.length = sizeof(struct vmscsi_request); + + + vstor_packet->vm_srb.sense_info_length = STORVSC_SENSE_BUFFER_SIZE; + + + vstor_packet->vm_srb.data_transfer_length = + request->data_buffer.len; + + vstor_packet->operation = VSTOR_OPERATION_EXECUTE_SRB; + + if (request->data_buffer.len) { + ret = vmbus_sendpacket_multipagebuffer(device->channel, + &request->data_buffer, + vstor_packet, + sizeof(struct vstor_packet), + (unsigned long)request); + } else { + ret = vmbus_sendpacket(device->channel, vstor_packet, + sizeof(struct vstor_packet), + (unsigned long)request, + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + } + + if (ret != 0) + return ret; + + atomic_inc(&stor_device->num_outstanding_req); + + return ret; +} + +static int storvsc_device_alloc(struct scsi_device *sdevice) +{ + struct stor_mem_pools *memp; + int number = STORVSC_MIN_BUF_NR; + + memp = kzalloc(sizeof(struct stor_mem_pools), GFP_KERNEL); + if (!memp) + return -ENOMEM; + + memp->request_pool = + kmem_cache_create(dev_name(&sdevice->sdev_dev), + sizeof(struct storvsc_cmd_request), 0, + SLAB_HWCACHE_ALIGN, NULL); + + if (!memp->request_pool) + goto err0; + + memp->request_mempool = mempool_create(number, mempool_alloc_slab, + mempool_free_slab, + memp->request_pool); + + if (!memp->request_mempool) + goto err1; + + sdevice->hostdata = memp; + + return 0; + +err1: + kmem_cache_destroy(memp->request_pool); + +err0: + kfree(memp); + return -ENOMEM; +} + +static void storvsc_device_destroy(struct scsi_device *sdevice) +{ + struct stor_mem_pools *memp = sdevice->hostdata; + + mempool_destroy(memp->request_mempool); + kmem_cache_destroy(memp->request_pool); + kfree(memp); + sdevice->hostdata = NULL; +} + +static int storvsc_device_configure(struct scsi_device *sdevice) +{ + scsi_adjust_queue_depth(sdevice, MSG_SIMPLE_TAG, + STORVSC_MAX_IO_REQUESTS); + + blk_queue_max_segment_size(sdevice->request_queue, PAGE_SIZE); + + blk_queue_bounce_limit(sdevice->request_queue, BLK_BOUNCE_ANY); + + return 0; +} + +static int storvsc_get_chs(struct scsi_device *sdev, struct block_device * bdev, + sector_t capacity, int *info) +{ + sector_t nsect = capacity; + sector_t cylinders = nsect; + int heads, sectors_pt; + + /* + * We are making up these values; let us keep it simple. + */ + heads = 0xff; + sectors_pt = 0x3f; /* Sectors per track */ + sector_div(cylinders, heads * sectors_pt); + if ((sector_t)(cylinders + 1) * heads * sectors_pt < nsect) + cylinders = 0xffff; + + info[0] = heads; + info[1] = sectors_pt; + info[2] = (int)cylinders; + + return 0; +} + +static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd) +{ + struct hv_host_device *host_dev = shost_priv(scmnd->device->host); + struct hv_device *device = host_dev->dev; + + struct storvsc_device *stor_device; + struct storvsc_cmd_request *request; + struct vstor_packet *vstor_packet; + int ret, t; + + + stor_device = get_out_stor_device(device); + if (!stor_device) + return FAILED; + + request = &stor_device->reset_request; + vstor_packet = &request->vstor_packet; + + init_completion(&request->wait_event); + + vstor_packet->operation = VSTOR_OPERATION_RESET_BUS; + vstor_packet->flags = REQUEST_COMPLETION_FLAG; + vstor_packet->vm_srb.path_id = stor_device->path_id; + + ret = vmbus_sendpacket(device->channel, vstor_packet, + sizeof(struct vstor_packet), + (unsigned long)&stor_device->reset_request, + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + if (ret != 0) + return FAILED; + + t = wait_for_completion_timeout(&request->wait_event, 5*HZ); + if (t == 0) + return TIMEOUT_ERROR; + + + /* + * At this point, all outstanding requests in the adapter + * should have been flushed out and return to us + * There is a potential race here where the host may be in + * the process of responding when we return from here. + * Just wait for all in-transit packets to be accounted for + * before we return from here. + */ + storvsc_wait_to_drain(stor_device); + + return SUCCESS; +} + +static bool storvsc_scsi_cmd_ok(struct scsi_cmnd *scmnd) +{ + bool allowed = true; + u8 scsi_op = scmnd->cmnd[0]; + + switch (scsi_op) { + /* + * smartd sends this command and the host does not handle + * this. So, don't send it. + */ + case SET_WINDOW: + scmnd->result = ILLEGAL_REQUEST << 16; + allowed = false; + break; + default: + break; + } + return allowed; +} + +static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd) +{ + int ret; + struct hv_host_device *host_dev = shost_priv(host); + struct hv_device *dev = host_dev->dev; + struct storvsc_cmd_request *cmd_request; + unsigned int request_size = 0; + int i; + struct scatterlist *sgl; + unsigned int sg_count = 0; + struct vmscsi_request *vm_srb; + struct stor_mem_pools *memp = scmnd->device->hostdata; + + if (!storvsc_scsi_cmd_ok(scmnd)) { + scmnd->scsi_done(scmnd); + return 0; + } + + request_size = sizeof(struct storvsc_cmd_request); + + cmd_request = mempool_alloc(memp->request_mempool, + GFP_ATOMIC); + + /* + * We might be invoked in an interrupt context; hence + * mempool_alloc() can fail. + */ + if (!cmd_request) + return SCSI_MLQUEUE_DEVICE_BUSY; + + memset(cmd_request, 0, sizeof(struct storvsc_cmd_request)); + + /* Setup the cmd request */ + cmd_request->cmd = scmnd; + + scmnd->host_scribble = (unsigned char *)cmd_request; + + vm_srb = &cmd_request->vstor_packet.vm_srb; + + + /* Build the SRB */ + switch (scmnd->sc_data_direction) { + case DMA_TO_DEVICE: + vm_srb->data_in = WRITE_TYPE; + break; + case DMA_FROM_DEVICE: + vm_srb->data_in = READ_TYPE; + break; + default: + vm_srb->data_in = UNKNOWN_TYPE; + break; + } + + + vm_srb->port_number = host_dev->port; + vm_srb->path_id = scmnd->device->channel; + vm_srb->target_id = scmnd->device->id; + vm_srb->lun = scmnd->device->lun; + + vm_srb->cdb_length = scmnd->cmd_len; + + memcpy(vm_srb->cdb, scmnd->cmnd, vm_srb->cdb_length); + + cmd_request->sense_buffer = scmnd->sense_buffer; + + + cmd_request->data_buffer.len = scsi_bufflen(scmnd); + if (scsi_sg_count(scmnd)) { + sgl = (struct scatterlist *)scsi_sglist(scmnd); + sg_count = scsi_sg_count(scmnd); + + /* check if we need to bounce the sgl */ + if (do_bounce_buffer(sgl, scsi_sg_count(scmnd)) != -1) { + cmd_request->bounce_sgl = + create_bounce_buffer(sgl, scsi_sg_count(scmnd), + scsi_bufflen(scmnd), + vm_srb->data_in); + if (!cmd_request->bounce_sgl) { + ret = SCSI_MLQUEUE_HOST_BUSY; + goto queue_error; + } + + cmd_request->bounce_sgl_count = + ALIGN(scsi_bufflen(scmnd), PAGE_SIZE) >> + PAGE_SHIFT; + + if (vm_srb->data_in == WRITE_TYPE) + copy_to_bounce_buffer(sgl, + cmd_request->bounce_sgl, + scsi_sg_count(scmnd)); + + sgl = cmd_request->bounce_sgl; + sg_count = cmd_request->bounce_sgl_count; + } + + cmd_request->data_buffer.offset = sgl[0].offset; + + for (i = 0; i < sg_count; i++) + cmd_request->data_buffer.pfn_array[i] = + page_to_pfn(sg_page((&sgl[i]))); + + } else if (scsi_sglist(scmnd)) { + cmd_request->data_buffer.offset = + virt_to_phys(scsi_sglist(scmnd)) & (PAGE_SIZE-1); + cmd_request->data_buffer.pfn_array[0] = + virt_to_phys(scsi_sglist(scmnd)) >> PAGE_SHIFT; + } + + /* Invokes the vsc to start an IO */ + ret = storvsc_do_io(dev, cmd_request); + + if (ret == -EAGAIN) { + /* no more space */ + + if (cmd_request->bounce_sgl_count) { + destroy_bounce_buffer(cmd_request->bounce_sgl, + cmd_request->bounce_sgl_count); + + ret = SCSI_MLQUEUE_DEVICE_BUSY; + goto queue_error; + } + } + + return 0; + +queue_error: + mempool_free(cmd_request, memp->request_mempool); + scmnd->host_scribble = NULL; + return ret; +} + +static struct scsi_host_template scsi_driver = { + .module = THIS_MODULE, + .name = "storvsc_host_t", + .bios_param = storvsc_get_chs, + .queuecommand = storvsc_queuecommand, + .eh_host_reset_handler = storvsc_host_reset_handler, + .slave_alloc = storvsc_device_alloc, + .slave_destroy = storvsc_device_destroy, + .slave_configure = storvsc_device_configure, + .cmd_per_lun = 1, + /* 64 max_queue * 1 target */ + .can_queue = STORVSC_MAX_IO_REQUESTS*STORVSC_MAX_TARGETS, + .this_id = -1, + /* no use setting to 0 since ll_blk_rw reset it to 1 */ + /* currently 32 */ + .sg_tablesize = MAX_MULTIPAGE_BUFFER_COUNT, + .use_clustering = DISABLE_CLUSTERING, + /* Make sure we dont get a sg segment crosses a page boundary */ + .dma_boundary = PAGE_SIZE-1, +}; + +enum { + SCSI_GUID, + IDE_GUID, +}; + +static const struct hv_vmbus_device_id id_table[] = { + /* SCSI guid */ + { VMBUS_DEVICE(0xd9, 0x63, 0x61, 0xba, 0xa1, 0x04, 0x29, 0x4d, + 0xb6, 0x05, 0x72, 0xe2, 0xff, 0xb1, 0xdc, 0x7f) + .driver_data = SCSI_GUID }, + /* IDE guid */ + { VMBUS_DEVICE(0x32, 0x26, 0x41, 0x32, 0xcb, 0x86, 0xa2, 0x44, + 0x9b, 0x5c, 0x50, 0xd1, 0x41, 0x73, 0x54, 0xf5) + .driver_data = IDE_GUID }, + { }, +}; + +MODULE_DEVICE_TABLE(vmbus, id_table); + +static int storvsc_probe(struct hv_device *device, + const struct hv_vmbus_device_id *dev_id) +{ + int ret; + struct Scsi_Host *host; + struct hv_host_device *host_dev; + bool dev_is_ide = ((dev_id->driver_data == IDE_GUID) ? true : false); + int target = 0; + struct storvsc_device *stor_device; + + host = scsi_host_alloc(&scsi_driver, + sizeof(struct hv_host_device)); + if (!host) + return -ENOMEM; + + host_dev = shost_priv(host); + memset(host_dev, 0, sizeof(struct hv_host_device)); + + host_dev->port = host->host_no; + host_dev->dev = device; + + + stor_device = kzalloc(sizeof(struct storvsc_device), GFP_KERNEL); + if (!stor_device) { + ret = -ENOMEM; + goto err_out0; + } + + stor_device->destroy = false; + init_waitqueue_head(&stor_device->waiting_to_drain); + stor_device->device = device; + stor_device->host = host; + hv_set_drvdata(device, stor_device); + + stor_device->port_number = host->host_no; + ret = storvsc_connect_to_vsp(device, storvsc_ringbuffer_size); + if (ret) + goto err_out1; + + host_dev->path = stor_device->path_id; + host_dev->target = stor_device->target_id; + + /* max # of devices per target */ + host->max_lun = STORVSC_MAX_LUNS_PER_TARGET; + /* max # of targets per channel */ + host->max_id = STORVSC_MAX_TARGETS; + /* max # of channels */ + host->max_channel = STORVSC_MAX_CHANNELS - 1; + /* max cmd length */ + host->max_cmd_len = STORVSC_MAX_CMD_LEN; + + /* Register the HBA and start the scsi bus scan */ + ret = scsi_add_host(host, &device->device); + if (ret != 0) + goto err_out2; + + if (!dev_is_ide) { + scsi_scan_host(host); + } else { + target = (device->dev_instance.b[5] << 8 | + device->dev_instance.b[4]); + ret = scsi_add_device(host, 0, target, 0); + if (ret) { + scsi_remove_host(host); + goto err_out2; + } + } + return 0; + +err_out2: + /* + * Once we have connected with the host, we would need to + * to invoke storvsc_dev_remove() to rollback this state and + * this call also frees up the stor_device; hence the jump around + * err_out1 label. + */ + storvsc_dev_remove(device); + goto err_out0; + +err_out1: + kfree(stor_device); + +err_out0: + scsi_host_put(host); + return ret; +} + +static int storvsc_remove(struct hv_device *dev) +{ + struct storvsc_device *stor_device = hv_get_drvdata(dev); + struct Scsi_Host *host = stor_device->host; + + scsi_remove_host(host); + storvsc_dev_remove(dev); + scsi_host_put(host); + + return 0; +} + +static struct hv_driver storvsc_drv = { + .name = KBUILD_MODNAME, + .id_table = id_table, + .probe = storvsc_probe, + .remove = storvsc_remove, +}; + +static int __init storvsc_drv_init(void) +{ + u32 max_outstanding_req_per_channel; + + /* + * Divide the ring buffer data size (which is 1 page less + * than the ring buffer size since that page is reserved for + * the ring buffer indices) by the max request size (which is + * vmbus_channel_packet_multipage_buffer + struct vstor_packet + u64) + */ + max_outstanding_req_per_channel = + ((storvsc_ringbuffer_size - PAGE_SIZE) / + ALIGN(MAX_MULTIPAGE_BUFFER_PACKET + + sizeof(struct vstor_packet) + sizeof(u64), + sizeof(u64))); + + if (max_outstanding_req_per_channel < + STORVSC_MAX_IO_REQUESTS) + return -EINVAL; + + return vmbus_driver_register(&storvsc_drv); +} + +static void __exit storvsc_drv_exit(void) +{ + vmbus_driver_unregister(&storvsc_drv); +} + +MODULE_LICENSE("GPL"); +MODULE_VERSION(HV_DRV_VERSION); +MODULE_DESCRIPTION("Microsoft Hyper-V virtual storage driver"); +module_init(storvsc_drv_init); +module_exit(storvsc_drv_exit); --- linux-3.2.0.orig/drivers/scsi/hosts.c +++ linux-3.2.0/drivers/scsi/hosts.c @@ -287,6 +287,7 @@ struct Scsi_Host *shost = dev_to_shost(dev); struct device *parent = dev->parent; struct request_queue *q; + void *queuedata; scsi_proc_hostdir_rm(shost->hostt); @@ -296,9 +297,9 @@ destroy_workqueue(shost->work_q); q = shost->uspace_req_q; if (q) { - kfree(q->queuedata); - q->queuedata = NULL; - scsi_free_queue(q); + queuedata = q->queuedata; + blk_cleanup_queue(q); + kfree(queuedata); } scsi_destroy_command_freelist(shost); --- linux-3.2.0.orig/drivers/scsi/scsi_debug.c +++ linux-3.2.0/drivers/scsi/scsi_debug.c @@ -2045,8 +2045,7 @@ block = lba + alignment; rem = do_div(block, granularity); - if (rem == 0 && lba + granularity <= end && - block < map_size) + if (rem == 0 && lba + granularity < end && block < map_size) clear_bit(block, map_storep); lba += granularity - rem; --- linux-3.2.0.orig/drivers/scsi/aha152x.c +++ linux-3.2.0/drivers/scsi/aha152x.c @@ -2985,8 +2985,8 @@ char *start = pos; int i; - SPRINTF("0x%08x: target=%d; lun=%d; cmnd=( ", - (unsigned int) ptr, ptr->device->id, ptr->device->lun); + SPRINTF("%p: target=%d; lun=%d; cmnd=( ", + ptr, ptr->device->id, ptr->device->lun); for (i = 0; i < COMMAND_SIZE(ptr->cmnd[0]); i++) SPRINTF("0x%02x ", ptr->cmnd[i]); --- linux-3.2.0.orig/drivers/scsi/scsi_sysfs.c +++ linux-3.2.0/drivers/scsi/scsi_sysfs.c @@ -246,11 +246,11 @@ static DEVICE_ATTR(active_mode, S_IRUGO | S_IWUSR, show_shost_active_mode, NULL); -static int check_reset_type(char *str) +static int check_reset_type(const char *str) { - if (strncmp(str, "adapter", 10) == 0) + if (sysfs_streq(str, "adapter")) return SCSI_ADAPTER_RESET; - else if (strncmp(str, "firmware", 10) == 0) + else if (sysfs_streq(str, "firmware")) return SCSI_FIRMWARE_RESET; else return 0; @@ -263,12 +263,9 @@ struct Scsi_Host *shost = class_to_shost(dev); struct scsi_host_template *sht = shost->hostt; int ret = -EINVAL; - char str[10]; int type; - sscanf(buf, "%s", str); - type = check_reset_type(str); - + type = check_reset_type(buf); if (!type) goto exit_store_host_reset; @@ -971,11 +968,8 @@ sdev->host->hostt->slave_destroy(sdev); transport_destroy_device(dev); - /* cause the request function to reject all I/O requests */ - sdev->request_queue->queuedata = NULL; - /* Freeing the queue signals to block that we're done */ - scsi_free_queue(sdev->request_queue); + blk_cleanup_queue(sdev->request_queue); put_device(dev); } @@ -1000,7 +994,6 @@ struct scsi_device *sdev; spin_lock_irqsave(shost->host_lock, flags); - starget->reap_ref++; restart: list_for_each_entry(sdev, &shost->__devices, siblings) { if (sdev->channel != starget->channel || @@ -1014,14 +1007,6 @@ goto restart; } spin_unlock_irqrestore(shost->host_lock, flags); - scsi_target_reap(starget); -} - -static int __remove_child (struct device * dev, void * data) -{ - if (scsi_is_target_device(dev)) - __scsi_remove_target(to_scsi_target(dev)); - return 0; } /** @@ -1034,14 +1019,32 @@ */ void scsi_remove_target(struct device *dev) { - if (scsi_is_target_device(dev)) { - __scsi_remove_target(to_scsi_target(dev)); - return; + struct Scsi_Host *shost = dev_to_shost(dev->parent); + struct scsi_target *starget, *last = NULL; + unsigned long flags; + + /* remove targets being careful to lookup next entry before + * deleting the last + */ + spin_lock_irqsave(shost->host_lock, flags); + list_for_each_entry(starget, &shost->__targets, siblings) { + if (starget->state == STARGET_DEL) + continue; + if (starget->dev.parent == dev || &starget->dev == dev) { + /* assuming new targets arrive at the end */ + starget->reap_ref++; + spin_unlock_irqrestore(shost->host_lock, flags); + if (last) + scsi_target_reap(last); + last = starget; + __scsi_remove_target(starget); + spin_lock_irqsave(shost->host_lock, flags); + } } + spin_unlock_irqrestore(shost->host_lock, flags); - get_device(dev); - device_for_each_child(dev, NULL, __remove_child); - put_device(dev); + if (last) + scsi_target_reap(last); } EXPORT_SYMBOL(scsi_remove_target); --- linux-3.2.0.orig/drivers/scsi/hpsa.c +++ linux-3.2.0/drivers/scsi/hpsa.c @@ -98,6 +98,15 @@ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSF, 0x103C, 0x3354}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSF, 0x103C, 0x3355}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSF, 0x103C, 0x3356}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSH, 0x103C, 0x1920}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSH, 0x103C, 0x1921}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSH, 0x103C, 0x1922}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSH, 0x103C, 0x1923}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSH, 0x103C, 0x1924}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSH, 0x103C, 0x1925}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSH, 0x103C, 0x1926}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSH, 0x103C, 0x1928}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSF, 0x103C, 0x334d}, {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, {0,} @@ -117,13 +126,22 @@ {0x3249103C, "Smart Array P812", &SA5_access}, {0x324a103C, "Smart Array P712m", &SA5_access}, {0x324b103C, "Smart Array P711m", &SA5_access}, - {0x3350103C, "Smart Array", &SA5_access}, - {0x3351103C, "Smart Array", &SA5_access}, - {0x3352103C, "Smart Array", &SA5_access}, - {0x3353103C, "Smart Array", &SA5_access}, - {0x3354103C, "Smart Array", &SA5_access}, - {0x3355103C, "Smart Array", &SA5_access}, - {0x3356103C, "Smart Array", &SA5_access}, + {0x3350103C, "Smart Array P222", &SA5_access}, + {0x3351103C, "Smart Array P420", &SA5_access}, + {0x3352103C, "Smart Array P421", &SA5_access}, + {0x3353103C, "Smart Array P822", &SA5_access}, + {0x3354103C, "Smart Array P420i", &SA5_access}, + {0x3355103C, "Smart Array P220i", &SA5_access}, + {0x3356103C, "Smart Array P721m", &SA5_access}, + {0x1920103C, "Smart Array", &SA5_access}, + {0x1921103C, "Smart Array", &SA5_access}, + {0x1922103C, "Smart Array", &SA5_access}, + {0x1923103C, "Smart Array", &SA5_access}, + {0x1924103C, "Smart Array", &SA5_access}, + {0x1925103C, "Smart Array", &SA5_access}, + {0x1926103C, "Smart Array", &SA5_access}, + {0x1928103C, "Smart Array", &SA5_access}, + {0x334d103C, "Smart Array P822se", &SA5_access}, {0xFFFF103C, "Unknown Smart Array", &SA5_access}, }; @@ -532,12 +550,42 @@ c->busaddr |= 1 | (h->blockFetchTable[c->Header.SGList] << 1); } +static int is_firmware_flash_cmd(u8 *cdb) +{ + return cdb[0] == BMIC_WRITE && cdb[6] == BMIC_FLASH_FIRMWARE; +} + +/* + * During firmware flash, the heartbeat register may not update as frequently + * as it should. So we dial down lockup detection during firmware flash. and + * dial it back up when firmware flash completes. + */ +#define HEARTBEAT_SAMPLE_INTERVAL_DURING_FLASH (240 * HZ) +#define HEARTBEAT_SAMPLE_INTERVAL (30 * HZ) +static void dial_down_lockup_detection_during_fw_flash(struct ctlr_info *h, + struct CommandList *c) +{ + if (!is_firmware_flash_cmd(c->Request.CDB)) + return; + atomic_inc(&h->firmware_flash_in_progress); + h->heartbeat_sample_interval = HEARTBEAT_SAMPLE_INTERVAL_DURING_FLASH; +} + +static void dial_up_lockup_detection_on_fw_flash_complete(struct ctlr_info *h, + struct CommandList *c) +{ + if (is_firmware_flash_cmd(c->Request.CDB) && + atomic_dec_and_test(&h->firmware_flash_in_progress)) + h->heartbeat_sample_interval = HEARTBEAT_SAMPLE_INTERVAL; +} + static void enqueue_cmd_and_start_io(struct ctlr_info *h, struct CommandList *c) { unsigned long flags; set_performant_mode(h, c); + dial_down_lockup_detection_during_fw_flash(h, c); spin_lock_irqsave(&h->lock, flags); addQ(&h->reqQ, c); h->Qdepth++; @@ -1213,8 +1261,9 @@ } break; case CMD_PROTOCOL_ERR: + cmd->result = DID_ERROR << 16; dev_warn(&h->pdev->dev, "cp %p has " - "protocol error \n", cp); + "protocol error\n", cp); break; case CMD_HARDWARE_ERR: cmd->result = DID_ERROR << 16; @@ -1674,30 +1723,26 @@ if (is_logical_dev_addr_mode(lunaddrbytes)) { /* logical device */ - if (unlikely(is_scsi_rev_5(h))) { - /* p1210m, logical drives lun assignments - * match SCSI REPORT LUNS data. + lunid = le32_to_cpu(*((__le32 *) lunaddrbytes)); + if (is_msa2xxx(h, device)) { + /* msa2xxx way, put logicals on bus 1 + * and match target/lun numbers box + * reports. */ - lunid = le32_to_cpu(*((__le32 *) lunaddrbytes)); - *bus = 0; - *target = 0; - *lun = (lunid & 0x3fff) + 1; + *bus = 1; + *target = (lunid >> 16) & 0x3fff; + *lun = lunid & 0x00ff; } else { - /* not p1210m... */ - lunid = le32_to_cpu(*((__le32 *) lunaddrbytes)); - if (is_msa2xxx(h, device)) { - /* msa2xxx way, put logicals on bus 1 - * and match target/lun numbers box - * reports. - */ - *bus = 1; - *target = (lunid >> 16) & 0x3fff; - *lun = lunid & 0x00ff; + if (likely(is_scsi_rev_5(h))) { + /* All current smart arrays (circa 2011) */ + *bus = 0; + *target = 0; + *lun = (lunid & 0x3fff) + 1; } else { - /* Traditional smart array way. */ + /* Traditional old smart array way. */ *bus = 0; - *lun = 0; *target = lunid & 0x3fff; + *lun = 0; } } } else { @@ -2929,7 +2974,7 @@ c->Request.Timeout = 0; /* Don't time out */ memset(&c->Request.CDB[0], 0, sizeof(c->Request.CDB)); c->Request.CDB[0] = cmd; - c->Request.CDB[1] = 0x03; /* Reset target above */ + c->Request.CDB[1] = HPSA_RESET_TYPE_LUN; /* If bytes 4-7 are zero, it means reset the */ /* LunID device */ c->Request.CDB[4] = 0x00; @@ -3035,6 +3080,7 @@ static inline void finish_cmd(struct CommandList *c, u32 raw_tag) { removeQ(c); + dial_up_lockup_detection_on_fw_flash_complete(c->h, c); if (likely(c->cmd_type == CMD_SCSI)) complete_scsi_command(c); else if (c->cmd_type == CMD_IOCTL_PEND) @@ -4072,10 +4118,10 @@ if (h->msix_vector || h->msi_vector) rc = request_irq(h->intr[h->intr_mode], msixhandler, - IRQF_DISABLED, h->devname, h); + 0, h->devname, h); else rc = request_irq(h->intr[h->intr_mode], intxhandler, - IRQF_DISABLED, h->devname, h); + IRQF_SHARED, h->devname, h); if (rc) { dev_err(&h->pdev->dev, "unable to get irq %d for %s\n", h->intr[h->intr_mode], h->devname); @@ -4175,9 +4221,6 @@ spin_unlock_irqrestore(&h->lock, flags); } -#define HEARTBEAT_SAMPLE_INTERVAL (10 * HZ) -#define HEARTBEAT_CHECK_MINIMUM_INTERVAL (HEARTBEAT_SAMPLE_INTERVAL / 2) - static void detect_controller_lockup(struct ctlr_info *h) { u64 now; @@ -4188,7 +4231,7 @@ now = get_jiffies_64(); /* If we've received an interrupt recently, we're ok. */ if (time_after64(h->last_intr_timestamp + - (HEARTBEAT_CHECK_MINIMUM_INTERVAL), now)) + (h->heartbeat_sample_interval), now)) return; /* @@ -4197,7 +4240,7 @@ * otherwise don't care about signals in this thread. */ if (time_after64(h->last_heartbeat_timestamp + - (HEARTBEAT_CHECK_MINIMUM_INTERVAL), now)) + (h->heartbeat_sample_interval), now)) return; /* If heartbeat has not changed since we last looked, we're not ok. */ @@ -4239,6 +4282,7 @@ { unsigned long flags; + h->heartbeat_sample_interval = HEARTBEAT_SAMPLE_INTERVAL; spin_lock_irqsave(&lockup_detector_lock, flags); list_add_tail(&h->lockup_list, &hpsa_ctlr_list); spin_unlock_irqrestore(&lockup_detector_lock, flags); --- linux-3.2.0.orig/drivers/scsi/hpsa.h +++ linux-3.2.0/drivers/scsi/hpsa.h @@ -124,6 +124,8 @@ u64 last_intr_timestamp; u32 last_heartbeat; u64 last_heartbeat_timestamp; + u32 heartbeat_sample_interval; + atomic_t firmware_flash_in_progress; u32 lockup_detected; struct list_head lockup_list; }; --- linux-3.2.0.orig/drivers/scsi/scsi_pm.c +++ linux-3.2.0/drivers/scsi/scsi_pm.c @@ -7,6 +7,7 @@ #include #include +#include #include #include @@ -69,6 +70,19 @@ return err; } +static int scsi_bus_prepare(struct device *dev) +{ + if (scsi_is_sdev_device(dev)) { + /* sd probing uses async_schedule. Wait until it finishes. */ + async_synchronize_full(); + + } else if (scsi_is_host_device(dev)) { + /* Wait until async scanning is finished */ + scsi_complete_async_scans(); + } + return 0; +} + static int scsi_bus_suspend(struct device *dev) { return scsi_bus_suspend_common(dev, PMSG_SUSPEND); @@ -87,6 +101,7 @@ #else /* CONFIG_PM_SLEEP */ #define scsi_bus_resume_common NULL +#define scsi_bus_prepare NULL #define scsi_bus_suspend NULL #define scsi_bus_freeze NULL #define scsi_bus_poweroff NULL @@ -195,6 +210,7 @@ #endif /* CONFIG_PM_RUNTIME */ const struct dev_pm_ops scsi_bus_pm_ops = { + .prepare = scsi_bus_prepare, .suspend = scsi_bus_suspend, .resume = scsi_bus_resume_common, .freeze = scsi_bus_freeze, --- linux-3.2.0.orig/drivers/scsi/sd.c +++ linux-3.2.0/drivers/scsi/sd.c @@ -138,6 +138,7 @@ char *buffer_data; struct scsi_mode_data data; struct scsi_sense_hdr sshdr; + static const char temp[] = "temporary "; int len; if (sdp->type != TYPE_DISK) @@ -146,6 +147,13 @@ * it's not worth the risk */ return -EINVAL; + if (strncmp(buf, temp, sizeof(temp) - 1) == 0) { + buf += sizeof(temp) - 1; + sdkp->cache_override = 1; + } else { + sdkp->cache_override = 0; + } + for (i = 0; i < ARRAY_SIZE(sd_cache_types); i++) { len = strlen(sd_cache_types[i]); if (strncmp(sd_cache_types[i], buf, len) == 0 && @@ -158,6 +166,13 @@ return -EINVAL; rcd = ct & 0x01 ? 1 : 0; wce = ct & 0x02 ? 1 : 0; + + if (sdkp->cache_override) { + sdkp->WCE = wce; + sdkp->RCD = rcd; + return count; + } + if (scsi_mode_sense(sdp, 0x08, 8, buffer, sizeof(buffer), SD_TIMEOUT, SD_MAX_RETRIES, &data, NULL)) return -EINVAL; @@ -626,10 +641,17 @@ static void sd_unprep_fn(struct request_queue *q, struct request *rq) { + struct scsi_cmnd *SCpnt = rq->special; + if (rq->cmd_flags & REQ_DISCARD) { free_page((unsigned long)rq->buffer); rq->buffer = NULL; } + if (SCpnt->cmnd != rq->cmd) { + mempool_free(SCpnt->cmnd, sd_cdb_pool); + SCpnt->cmnd = NULL; + SCpnt->cmd_len = 0; + } } /** @@ -1074,6 +1096,10 @@ SCSI_LOG_IOCTL(1, sd_printk(KERN_INFO, sdkp, "sd_ioctl: disk=%s, " "cmd=0x%x\n", disk->disk_name, cmd)); + error = scsi_verify_blk_ioctl(bdev, cmd); + if (error < 0) + return error; + /* * If we are in the middle of error recovery, don't let anyone * else try and use this device. Also, if error recovery fails, it @@ -1096,7 +1122,7 @@ error = scsi_ioctl(sdp, cmd, p); break; default: - error = scsi_cmd_ioctl(disk->queue, disk, mode, cmd, p); + error = scsi_cmd_blk_ioctl(bdev, mode, cmd, p); if (error != -ENOTTY) break; error = scsi_ioctl(sdp, cmd, p); @@ -1266,6 +1292,11 @@ unsigned int cmd, unsigned long arg) { struct scsi_device *sdev = scsi_disk(bdev->bd_disk)->device; + int ret; + + ret = scsi_verify_blk_ioctl(bdev, cmd); + if (ret < 0) + return -ENOIOCTLCMD; /* * If we are in the middle of error recovery, don't let anyone @@ -1277,8 +1308,6 @@ return -ENODEV; if (sdev->host->hostt->compat_ioctl) { - int ret; - ret = sdev->host->hostt->compat_ioctl(sdev, cmd, (void __user *)arg); return ret; @@ -1430,21 +1459,6 @@ if (rq_data_dir(SCpnt->request) == READ && scsi_prot_sg_count(SCpnt)) sd_dif_complete(SCpnt, good_bytes); - if (scsi_host_dif_capable(sdkp->device->host, sdkp->protection_type) - == SD_DIF_TYPE2_PROTECTION && SCpnt->cmnd != SCpnt->request->cmd) { - - /* We have to print a failed command here as the - * extended CDB gets freed before scsi_io_completion() - * is called. - */ - if (result) - scsi_print_command(SCpnt); - - mempool_free(SCpnt->cmnd, sd_cdb_pool); - SCpnt->cmnd = NULL; - SCpnt->cmd_len = 0; - } - return good_bytes; } @@ -2030,6 +2044,10 @@ int old_rcd = sdkp->RCD; int old_dpofua = sdkp->DPOFUA; + + if (sdkp->cache_override) + return; + first_len = 4; if (sdp->skip_ms_page_8) { if (sdp->type == TYPE_RBC) @@ -2511,6 +2529,7 @@ sdkp->capacity = 0; sdkp->media_present = 1; sdkp->write_prot = 0; + sdkp->cache_override = 0; sdkp->WCE = 0; sdkp->RCD = 0; sdkp->ATO = 0; @@ -2818,10 +2837,6 @@ if (err) goto err_out; - err = scsi_register_driver(&sd_template.gendrv); - if (err) - goto err_out_class; - sd_cdb_cache = kmem_cache_create("sd_ext_cdb", SD_EXT_CDB_SIZE, 0, 0, NULL); if (!sd_cdb_cache) { @@ -2835,8 +2850,15 @@ goto err_out_cache; } + err = scsi_register_driver(&sd_template.gendrv); + if (err) + goto err_out_driver; + return 0; +err_out_driver: + mempool_destroy(sd_cdb_pool); + err_out_cache: kmem_cache_destroy(sd_cdb_cache); @@ -2859,10 +2881,10 @@ SCSI_LOG_HLQUEUE(3, printk("exit_sd: exiting sd driver\n")); + scsi_unregister_driver(&sd_template.gendrv); mempool_destroy(sd_cdb_pool); kmem_cache_destroy(sd_cdb_cache); - scsi_unregister_driver(&sd_template.gendrv); class_unregister(&sd_disk_class); for (i = 0; i < SD_MAJORS; i++) --- linux-3.2.0.orig/drivers/scsi/sd.h +++ linux-3.2.0/drivers/scsi/sd.h @@ -64,6 +64,7 @@ u8 protection_type;/* Data Integrity Field */ u8 provisioning_mode; unsigned ATO : 1; /* state of disk ATO bit */ + unsigned cache_override : 1; /* temp override of WCE,RCD */ unsigned WCE : 1; /* state of disk WCE bit */ unsigned RCD : 1; /* state of disk RCD bit, unused */ unsigned DPOFUA : 1; /* state of disk DPOFUA bit */ --- linux-3.2.0.orig/drivers/scsi/bnx2fc/bnx2fc_io.c +++ linux-3.2.0/drivers/scsi/bnx2fc/bnx2fc_io.c @@ -1788,7 +1788,7 @@ fcp_sns_len = SCSI_SENSE_BUFFERSIZE; } - memset(sc_cmd->sense_buffer, 0, sizeof(sc_cmd->sense_buffer)); + memset(sc_cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE); if (fcp_sns_len) memcpy(sc_cmd->sense_buffer, rq_data, fcp_sns_len); --- linux-3.2.0.orig/drivers/scsi/ibmvscsi/ibmvscsi.c +++ linux-3.2.0/drivers/scsi/ibmvscsi/ibmvscsi.c @@ -1547,6 +1547,9 @@ host_config = &evt_struct->iu.mad.host_config; + /* The transport length field is only 16-bit */ + length = min(0xffff, length); + /* Set up a lun reset SRP command */ memset(host_config, 0x00, sizeof(*host_config)); host_config->common.type = VIOSRP_HOST_CONFIG_TYPE; --- linux-3.2.0.orig/drivers/scsi/megaraid/megaraid_sas_base.c +++ linux-3.2.0/drivers/scsi/megaraid/megaraid_sas_base.c @@ -4125,7 +4125,6 @@ spin_lock_init(&instance->cmd_pool_lock); spin_lock_init(&instance->hba_lock); spin_lock_init(&instance->completion_lock); - spin_lock_init(&poll_aen_lock); mutex_init(&instance->aen_mutex); mutex_init(&instance->reset_mutex); @@ -4887,10 +4886,12 @@ sense, sense_handle); } - for (i = 0; i < ioc->sge_count && kbuff_arr[i]; i++) { - dma_free_coherent(&instance->pdev->dev, - kern_sge32[i].length, - kbuff_arr[i], kern_sge32[i].phys_addr); + for (i = 0; i < ioc->sge_count; i++) { + if (kbuff_arr[i]) + dma_free_coherent(&instance->pdev->dev, + kern_sge32[i].length, + kbuff_arr[i], + kern_sge32[i].phys_addr); } megasas_return_cmd(instance, cmd); @@ -5520,6 +5521,8 @@ printk(KERN_INFO "megasas: %s %s\n", MEGASAS_VERSION, MEGASAS_EXT_VERSION); + spin_lock_init(&poll_aen_lock); + support_poll_for_event = 2; support_device_change = 1; --- linux-3.2.0.orig/drivers/scsi/mvsas/mv_94xx.h +++ linux-3.2.0/drivers/scsi/mvsas/mv_94xx.h @@ -258,21 +258,11 @@ #define SPI_ADDR_VLD_94XX (1U << 1) #define SPI_CTRL_SpiStart_94XX (1U << 0) -#define mv_ffc(x) ffz(x) - static inline int mv_ffc64(u64 v) { - int i; - i = mv_ffc((u32)v); - if (i >= 0) - return i; - i = mv_ffc((u32)(v>>32)); - - if (i != 0) - return 32 + i; - - return -1; + u64 x = ~v; + return x ? __ffs64(x) : -1; } #define r_reg_set_enable(i) \ --- linux-3.2.0.orig/drivers/scsi/mvsas/mv_sas.c +++ linux-3.2.0/drivers/scsi/mvsas/mv_sas.c @@ -1635,7 +1635,7 @@ mv_dprintk("mvs_abort_task() mvi=%p task=%p " "slot=%p slot_idx=x%x\n", mvi, task, slot, slot_idx); - mvs_tmf_timedout((unsigned long)task); + task->task_state_flags |= SAS_TASK_STATE_ABORTED; mvs_slot_task_free(mvi, task, slot, slot_idx); rc = TMF_RESP_FUNC_COMPLETE; goto out; --- linux-3.2.0.orig/drivers/scsi/mvsas/mv_sas.h +++ linux-3.2.0/drivers/scsi/mvsas/mv_sas.h @@ -69,7 +69,7 @@ #define DEV_IS_EXPANDER(type) \ ((type == EDGE_DEV) || (type == FANOUT_DEV)) -#define bit(n) ((u32)1 << n) +#define bit(n) ((u64)1 << n) #define for_each_phy(__lseq_mask, __mc, __lseq) \ for ((__mc) = (__lseq_mask), (__lseq) = 0; \ --- linux-3.2.0.orig/drivers/scsi/mpt2sas/mpt2sas_base.h +++ linux-3.2.0/drivers/scsi/mpt2sas/mpt2sas_base.h @@ -1029,6 +1029,9 @@ void mpt2sas_halt_firmware(struct MPT2SAS_ADAPTER *ioc); +void mpt2sas_base_update_missing_delay(struct MPT2SAS_ADAPTER *ioc, + u16 device_missing_delay, u8 io_missing_delay); + int mpt2sas_port_enable(struct MPT2SAS_ADAPTER *ioc); /* scsih shared API */ --- linux-3.2.0.orig/drivers/scsi/mpt2sas/mpt2sas_base.c +++ linux-3.2.0/drivers/scsi/mpt2sas/mpt2sas_base.c @@ -65,6 +65,8 @@ #define FAULT_POLLING_INTERVAL 1000 /* in milliseconds */ +#define MAX_HBA_QUEUE_DEPTH 30000 +#define MAX_CHAIN_DEPTH 100000 static int max_queue_depth = -1; module_param(max_queue_depth, int, 0); MODULE_PARM_DESC(max_queue_depth, " max controller queue depth "); @@ -77,10 +79,6 @@ module_param(msix_disable, int, 0); MODULE_PARM_DESC(msix_disable, " disable msix routed interrupts (default=0)"); -static int missing_delay[2] = {-1, -1}; -module_param_array(missing_delay, int, NULL, 0); -MODULE_PARM_DESC(missing_delay, " device missing delay , io missing delay"); - static int mpt2sas_fwfault_debug; MODULE_PARM_DESC(mpt2sas_fwfault_debug, " enable detection of firmware fault " "and halt firmware - (default=0)"); @@ -1154,6 +1152,13 @@ u16 message_control; + /* Check whether controller SAS2008 B0 controller, + if it is SAS2008 B0 controller use IO-APIC instead of MSIX */ + if (ioc->pdev->device == MPI2_MFGPAGE_DEVID_SAS2008 && + ioc->pdev->revision == 0x01) { + return -EINVAL; + } + base = pci_find_capability(ioc->pdev, PCI_CAP_ID_MSIX); if (!base) { dfailprintk(ioc, printk(MPT2SAS_INFO_FMT "msix not " @@ -1737,7 +1742,7 @@ static inline u8 _base_get_msix_index(struct MPT2SAS_ADAPTER *ioc) { - return ioc->cpu_msix_table[smp_processor_id()]; + return ioc->cpu_msix_table[raw_smp_processor_id()]; } /** @@ -2095,7 +2100,7 @@ } /** - * _base_update_missing_delay - change the missing delay timers + * mpt2sas_base_update_missing_delay - change the missing delay timers * @ioc: per adapter object * @device_missing_delay: amount of time till device is reported missing * @io_missing_delay: interval IO is returned when there is a missing device @@ -2106,8 +2111,8 @@ * delay, as well as the io missing delay. This should be called at driver * load time. */ -static void -_base_update_missing_delay(struct MPT2SAS_ADAPTER *ioc, +void +mpt2sas_base_update_missing_delay(struct MPT2SAS_ADAPTER *ioc, u16 device_missing_delay, u8 io_missing_delay) { u16 dmd, dmd_new, dmd_orignal; @@ -2311,8 +2316,6 @@ } if (ioc->chain_dma_pool) pci_pool_destroy(ioc->chain_dma_pool); - } - if (ioc->chain_lookup) { free_pages((ulong)ioc->chain_lookup, ioc->chain_pages); ioc->chain_lookup = NULL; } @@ -2330,9 +2333,7 @@ _base_allocate_memory_pools(struct MPT2SAS_ADAPTER *ioc, int sleep_flag) { struct mpt2sas_facts *facts; - u32 queue_size, queue_diff; u16 max_sge_elements; - u16 num_of_reply_frames; u16 chains_needed_per_io; u32 sz, total_sz, reply_post_free_sz; u32 retry_sz; @@ -2355,11 +2356,15 @@ } /* command line tunables for max controller queue depth */ - if (max_queue_depth != -1) - max_request_credit = (max_queue_depth < facts->RequestCredit) - ? max_queue_depth : facts->RequestCredit; - else - max_request_credit = facts->RequestCredit; + if (max_queue_depth != -1 && max_queue_depth != 0) { + max_request_credit = min_t(u16, max_queue_depth + + ioc->hi_priority_depth + ioc->internal_depth, + facts->RequestCredit); + if (max_request_credit > MAX_HBA_QUEUE_DEPTH) + max_request_credit = MAX_HBA_QUEUE_DEPTH; + } else + max_request_credit = min_t(u16, facts->RequestCredit, + MAX_HBA_QUEUE_DEPTH); ioc->hba_queue_depth = max_request_credit; ioc->hi_priority_depth = facts->HighPriorityCredit; @@ -2400,50 +2405,25 @@ } ioc->chains_needed_per_io = chains_needed_per_io; - /* reply free queue sizing - taking into account for events */ - num_of_reply_frames = ioc->hba_queue_depth + 32; - - /* number of replies frames can't be a multiple of 16 */ - /* decrease number of reply frames by 1 */ - if (!(num_of_reply_frames % 16)) - num_of_reply_frames--; - - /* calculate number of reply free queue entries - * (must be multiple of 16) - */ - - /* (we know reply_free_queue_depth is not a multiple of 16) */ - queue_size = num_of_reply_frames; - queue_size += 16 - (queue_size % 16); - ioc->reply_free_queue_depth = queue_size; - - /* reply descriptor post queue sizing */ - /* this size should be the number of request frames + number of reply - * frames - */ - - queue_size = ioc->hba_queue_depth + num_of_reply_frames + 1; - /* round up to 16 byte boundary */ - if (queue_size % 16) - queue_size += 16 - (queue_size % 16); - - /* check against IOC maximum reply post queue depth */ - if (queue_size > facts->MaxReplyDescriptorPostQueueDepth) { - queue_diff = queue_size - - facts->MaxReplyDescriptorPostQueueDepth; - - /* round queue_diff up to multiple of 16 */ - if (queue_diff % 16) - queue_diff += 16 - (queue_diff % 16); + /* reply free queue sizing - taking into account for 64 FW events */ + ioc->reply_free_queue_depth = ioc->hba_queue_depth + 64; - /* adjust hba_queue_depth, reply_free_queue_depth, - * and queue_size - */ - ioc->hba_queue_depth -= (queue_diff / 2); - ioc->reply_free_queue_depth -= (queue_diff / 2); - queue_size = facts->MaxReplyDescriptorPostQueueDepth; + /* align the reply post queue on the next 16 count boundary */ + if (!ioc->reply_free_queue_depth % 16) + ioc->reply_post_queue_depth = ioc->reply_free_queue_depth + 16; + else + ioc->reply_post_queue_depth = ioc->reply_free_queue_depth + + 32 - (ioc->reply_free_queue_depth % 16); + if (ioc->reply_post_queue_depth > + facts->MaxReplyDescriptorPostQueueDepth) { + ioc->reply_post_queue_depth = min_t(u16, + (facts->MaxReplyDescriptorPostQueueDepth - + (facts->MaxReplyDescriptorPostQueueDepth % 16)), + (ioc->hba_queue_depth - (ioc->hba_queue_depth % 16))); + ioc->reply_free_queue_depth = ioc->reply_post_queue_depth - 16; + ioc->hba_queue_depth = ioc->reply_free_queue_depth - 64; } - ioc->reply_post_queue_depth = queue_size; + dinitprintk(ioc, printk(MPT2SAS_INFO_FMT "scatter gather: " "sge_in_main_msg(%d), sge_per_chain(%d), sge_per_io(%d), " @@ -2457,7 +2437,7 @@ /* set the scsi host can_queue depth * with some internal commands that could be outstanding */ - ioc->shost->can_queue = ioc->scsiio_depth - (2); + ioc->shost->can_queue = ioc->scsiio_depth; dinitprintk(ioc, printk(MPT2SAS_INFO_FMT "scsi host: " "can_queue depth (%d)\n", ioc->name, ioc->shost->can_queue)); @@ -2529,15 +2509,12 @@ "depth(%d)\n", ioc->name, ioc->request, ioc->scsiio_depth)); - /* loop till the allocation succeeds */ - do { - sz = ioc->chain_depth * sizeof(struct chain_tracker); - ioc->chain_pages = get_order(sz); - ioc->chain_lookup = (struct chain_tracker *)__get_free_pages( - GFP_KERNEL, ioc->chain_pages); - if (ioc->chain_lookup == NULL) - ioc->chain_depth -= 100; - } while (ioc->chain_lookup == NULL); + ioc->chain_depth = min_t(u32, ioc->chain_depth, MAX_CHAIN_DEPTH); + sz = ioc->chain_depth * sizeof(struct chain_tracker); + ioc->chain_pages = get_order(sz); + + ioc->chain_lookup = (struct chain_tracker *)__get_free_pages( + GFP_KERNEL, ioc->chain_pages); ioc->chain_dma_pool = pci_pool_create("chain pool", ioc->pdev, ioc->request_sz, 16, 0); if (!ioc->chain_dma_pool) { @@ -3303,7 +3280,7 @@ } pfacts = &ioc->pfacts[port]; - memset(pfacts, 0, sizeof(Mpi2PortFactsReply_t)); + memset(pfacts, 0, sizeof(struct mpt2sas_port_facts)); pfacts->PortNumber = mpi_reply.PortNumber; pfacts->VP_ID = mpi_reply.VP_ID; pfacts->VF_ID = mpi_reply.VF_ID; @@ -3345,7 +3322,7 @@ } facts = &ioc->facts; - memset(facts, 0, sizeof(Mpi2IOCFactsReply_t)); + memset(facts, 0, sizeof(struct mpt2sas_facts)); facts->MsgVersion = le16_to_cpu(mpi_reply.MsgVersion); facts->HeaderVersion = le16_to_cpu(mpi_reply.HeaderVersion); facts->VP_ID = mpi_reply.VP_ID; @@ -4062,7 +4039,8 @@ ioc->reply_free[i] = cpu_to_le32(reply_address); /* initialize reply queues */ - _base_assign_reply_queues(ioc); + if (ioc->is_driver_loading) + _base_assign_reply_queues(ioc); /* initialize Reply Post Free Queue */ reply_post_free = (long)ioc->reply_post_free; @@ -4110,24 +4088,17 @@ if (ioc->is_driver_loading) { - - - - ioc->wait_for_discovery_to_complete = - _base_determine_wait_on_discovery(ioc); - return r; /* scan_start and scan_finished support */ - } - - - if (ioc->wait_for_discovery_to_complete && ioc->is_warpdrive) { - if (ioc->manu_pg10.OEMIdentifier == 0x80) { + if (ioc->is_warpdrive && ioc->manu_pg10.OEMIdentifier + == 0x80) { hide_flag = (u8) (ioc->manu_pg10.OEMSpecificFlags0 & MFG_PAGE10_HIDE_SSDS_MASK); if (hide_flag != MFG_PAGE10_HIDE_SSDS_MASK) ioc->mfg_pg10_hide_flag = hide_flag; } + ioc->wait_for_discovery_to_complete = + _base_determine_wait_on_discovery(ioc); + return r; /* scan_start and scan_finished support */ } - r = _base_send_port_enable(ioc, sleep_flag); if (r) return r; @@ -4228,7 +4199,7 @@ goto out_free_resources; ioc->pfacts = kcalloc(ioc->facts.NumberOfPorts, - sizeof(Mpi2PortFactsReply_t), GFP_KERNEL); + sizeof(struct mpt2sas_port_facts), GFP_KERNEL); if (!ioc->pfacts) { r = -ENOMEM; goto out_free_resources; @@ -4327,9 +4298,6 @@ if (r) goto out_free_resources; - if (missing_delay[0] != -1 && missing_delay[1] != -1) - _base_update_missing_delay(ioc, missing_delay[0], - missing_delay[1]); return 0; --- linux-3.2.0.orig/drivers/scsi/mpt2sas/mpt2sas_scsih.c +++ linux-3.2.0/drivers/scsi/mpt2sas/mpt2sas_scsih.c @@ -101,6 +101,10 @@ module_param(max_sectors, ushort, 0); MODULE_PARM_DESC(max_sectors, "max sectors, range 64 to 8192 default=8192"); +static int missing_delay[2] = {-1, -1}; +module_param_array(missing_delay, int, NULL, 0); +MODULE_PARM_DESC(missing_delay, " device missing delay , io missing delay"); + /* scsi-mid layer global parmeter is max_report_luns, which is 511 */ #define MPT2SAS_MAX_LUN (16895) static int max_lun = MPT2SAS_MAX_LUN; @@ -1007,8 +1011,8 @@ spin_lock_irqsave(&ioc->scsi_lookup_lock, flags); if (list_empty(&ioc->free_chain_list)) { spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags); - printk(MPT2SAS_WARN_FMT "chain buffers not available\n", - ioc->name); + dfailprintk(ioc, printk(MPT2SAS_WARN_FMT "chain buffers not " + "available\n", ioc->name)); return NULL; } chain_req = list_entry(ioc->free_chain_list.next, @@ -3930,11 +3934,7 @@ else mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ; } else -/* MPI Revision I (UNIT = 0xA) - removed MPI2_SCSIIO_CONTROL_UNTAGGED */ -/* mpi_control |= MPI2_SCSIIO_CONTROL_UNTAGGED; - */ - mpi_control |= (0x500); - + mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ; } else mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ; /* Make sure Device is not raid volume. @@ -6714,6 +6714,7 @@ } else sas_target_priv_data = NULL; raid_device->responding = 1; + spin_unlock_irqrestore(&ioc->raid_device_lock, flags); starget_printk(KERN_INFO, raid_device->starget, "handle(0x%04x), wwid(0x%016llx)\n", handle, (unsigned long long)raid_device->wwid); @@ -6724,16 +6725,16 @@ */ _scsih_init_warpdrive_properties(ioc, raid_device); if (raid_device->handle == handle) - goto out; + return; printk(KERN_INFO "\thandle changed from(0x%04x)!!!\n", raid_device->handle); raid_device->handle = handle; if (sas_target_priv_data) sas_target_priv_data->handle = handle; - goto out; + return; } } - out: + spin_unlock_irqrestore(&ioc->raid_device_lock, flags); } @@ -7005,11 +7006,14 @@ struct _sas_device *sas_device; struct _sas_node *expander_device; static struct _raid_device *raid_device; + u8 retry_count; printk(MPT2SAS_INFO_FMT "scan devices: start\n", ioc->name); _scsih_sas_host_refresh(ioc); + printk(MPT2SAS_INFO_FMT "\tscan devices: expanders start\n", + ioc->name); /* expanders */ handle = 0xFFFF; while (!(mpt2sas_config_get_expander_pg0(ioc, &mpi_reply, &expander_pg0, @@ -7018,19 +7022,39 @@ MPI2_IOCSTATUS_MASK; if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE) break; + if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { + printk(MPT2SAS_INFO_FMT "\tbreak from expander scan: " + "ioc_status(0x%04x), loginfo(0x%08x)\n", + ioc->name, ioc_status, + le32_to_cpu(mpi_reply.IOCLogInfo)); + break; + } handle = le16_to_cpu(expander_pg0.DevHandle); expander_device = mpt2sas_scsih_expander_find_by_sas_address( ioc, le64_to_cpu(expander_pg0.SASAddress)); if (expander_device) _scsih_refresh_expander_links(ioc, expander_device, handle); - else + else { + printk(MPT2SAS_INFO_FMT "\tBEFORE adding expander: " + "handle (0x%04x), sas_addr(0x%016llx)\n", + ioc->name, handle, (unsigned long long) + le64_to_cpu(expander_pg0.SASAddress)); _scsih_expander_add(ioc, handle); + printk(MPT2SAS_INFO_FMT "\tAFTER adding expander: " + "handle (0x%04x), sas_addr(0x%016llx)\n", + ioc->name, handle, (unsigned long long) + le64_to_cpu(expander_pg0.SASAddress)); + } } + printk(MPT2SAS_INFO_FMT "\tscan devices: expanders complete\n", + ioc->name); + if (!ioc->ir_firmware) goto skip_to_sas; + printk(MPT2SAS_INFO_FMT "\tscan devices phys disk start\n", ioc->name); /* phys disk */ phys_disk_num = 0xFF; while (!(mpt2sas_config_get_phys_disk_pg0(ioc, &mpi_reply, @@ -7040,6 +7064,13 @@ MPI2_IOCSTATUS_MASK; if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE) break; + if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { + printk(MPT2SAS_INFO_FMT "\tbreak from phys disk scan:" + "ioc_status(0x%04x), loginfo(0x%08x)\n", + ioc->name, ioc_status, + le32_to_cpu(mpi_reply.IOCLogInfo)); + break; + } phys_disk_num = pd_pg0.PhysDiskNum; handle = le16_to_cpu(pd_pg0.DevHandle); sas_device = _scsih_sas_device_find_by_handle(ioc, handle); @@ -7049,17 +7080,46 @@ &sas_device_pg0, MPI2_SAS_DEVICE_PGAD_FORM_HANDLE, handle) != 0) continue; + ioc_status = le16_to_cpu(mpi_reply.IOCStatus) & + MPI2_IOCSTATUS_MASK; + if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { + printk(MPT2SAS_INFO_FMT "\tbreak from phys disk scan " + "ioc_status(0x%04x), loginfo(0x%08x)\n", + ioc->name, ioc_status, + le32_to_cpu(mpi_reply.IOCLogInfo)); + break; + } parent_handle = le16_to_cpu(sas_device_pg0.ParentDevHandle); if (!_scsih_get_sas_address(ioc, parent_handle, &sas_address)) { + printk(MPT2SAS_INFO_FMT "\tBEFORE adding phys disk: " + " handle (0x%04x), sas_addr(0x%016llx)\n", + ioc->name, handle, (unsigned long long) + le64_to_cpu(sas_device_pg0.SASAddress)); mpt2sas_transport_update_links(ioc, sas_address, handle, sas_device_pg0.PhyNum, MPI2_SAS_NEG_LINK_RATE_1_5); set_bit(handle, ioc->pd_handles); - _scsih_add_device(ioc, handle, 0, 1); + retry_count = 0; + /* This will retry adding the end device. + * _scsih_add_device() will decide on retries and + * return "1" when it should be retried + */ + while (_scsih_add_device(ioc, handle, retry_count++, + 1)) { + ssleep(1); + } + printk(MPT2SAS_INFO_FMT "\tAFTER adding phys disk: " + " handle (0x%04x), sas_addr(0x%016llx)\n", + ioc->name, handle, (unsigned long long) + le64_to_cpu(sas_device_pg0.SASAddress)); } } + printk(MPT2SAS_INFO_FMT "\tscan devices: phys disk complete\n", + ioc->name); + + printk(MPT2SAS_INFO_FMT "\tscan devices: volumes start\n", ioc->name); /* volumes */ handle = 0xFFFF; while (!(mpt2sas_config_get_raid_volume_pg1(ioc, &mpi_reply, @@ -7068,6 +7128,13 @@ MPI2_IOCSTATUS_MASK; if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE) break; + if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { + printk(MPT2SAS_INFO_FMT "\tbreak from volume scan: " + "ioc_status(0x%04x), loginfo(0x%08x)\n", + ioc->name, ioc_status, + le32_to_cpu(mpi_reply.IOCLogInfo)); + break; + } handle = le16_to_cpu(volume_pg1.DevHandle); raid_device = _scsih_raid_device_find_by_wwid(ioc, le64_to_cpu(volume_pg1.WWID)); @@ -7077,18 +7144,38 @@ &volume_pg0, MPI2_RAID_VOLUME_PGAD_FORM_HANDLE, handle, sizeof(Mpi2RaidVolPage0_t))) continue; + ioc_status = le16_to_cpu(mpi_reply.IOCStatus) & + MPI2_IOCSTATUS_MASK; + if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { + printk(MPT2SAS_INFO_FMT "\tbreak from volume scan: " + "ioc_status(0x%04x), loginfo(0x%08x)\n", + ioc->name, ioc_status, + le32_to_cpu(mpi_reply.IOCLogInfo)); + break; + } if (volume_pg0.VolumeState == MPI2_RAID_VOL_STATE_OPTIMAL || volume_pg0.VolumeState == MPI2_RAID_VOL_STATE_ONLINE || volume_pg0.VolumeState == MPI2_RAID_VOL_STATE_DEGRADED) { memset(&element, 0, sizeof(Mpi2EventIrConfigElement_t)); element.ReasonCode = MPI2_EVENT_IR_CHANGE_RC_ADDED; element.VolDevHandle = volume_pg1.DevHandle; + printk(MPT2SAS_INFO_FMT "\tBEFORE adding volume: " + " handle (0x%04x)\n", ioc->name, + volume_pg1.DevHandle); _scsih_sas_volume_add(ioc, &element); + printk(MPT2SAS_INFO_FMT "\tAFTER adding volume: " + " handle (0x%04x)\n", ioc->name, + volume_pg1.DevHandle); } } + printk(MPT2SAS_INFO_FMT "\tscan devices: volumes complete\n", + ioc->name); + skip_to_sas: + printk(MPT2SAS_INFO_FMT "\tscan devices: end devices start\n", + ioc->name); /* sas devices */ handle = 0xFFFF; while (!(mpt2sas_config_get_sas_device_pg0(ioc, &mpi_reply, @@ -7098,6 +7185,13 @@ MPI2_IOCSTATUS_MASK; if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE) break; + if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { + printk(MPT2SAS_INFO_FMT "\tbreak from end device scan:" + " ioc_status(0x%04x), loginfo(0x%08x)\n", + ioc->name, ioc_status, + le32_to_cpu(mpi_reply.IOCLogInfo)); + break; + } handle = le16_to_cpu(sas_device_pg0.DevHandle); if (!(_scsih_is_end_device( le32_to_cpu(sas_device_pg0.DeviceInfo)))) @@ -7108,12 +7202,31 @@ continue; parent_handle = le16_to_cpu(sas_device_pg0.ParentDevHandle); if (!_scsih_get_sas_address(ioc, parent_handle, &sas_address)) { + printk(MPT2SAS_INFO_FMT "\tBEFORE adding end device: " + "handle (0x%04x), sas_addr(0x%016llx)\n", + ioc->name, handle, (unsigned long long) + le64_to_cpu(sas_device_pg0.SASAddress)); mpt2sas_transport_update_links(ioc, sas_address, handle, sas_device_pg0.PhyNum, MPI2_SAS_NEG_LINK_RATE_1_5); - _scsih_add_device(ioc, handle, 0, 0); + retry_count = 0; + /* This will retry adding the end device. + * _scsih_add_device() will decide on retries and + * return "1" when it should be retried + */ + while (_scsih_add_device(ioc, handle, retry_count++, + 0)) { + ssleep(1); + } + printk(MPT2SAS_INFO_FMT "\tAFTER adding end device: " + "handle (0x%04x), sas_addr(0x%016llx)\n", + ioc->name, handle, (unsigned long long) + le64_to_cpu(sas_device_pg0.SASAddress)); } } + printk(MPT2SAS_INFO_FMT "\tscan devices: end devices complete\n", + ioc->name); + printk(MPT2SAS_INFO_FMT "scan devices: complete\n", ioc->name); } @@ -7205,7 +7318,9 @@ case MPT2SAS_PORT_ENABLE_COMPLETE: ioc->start_scan = 0; - + if (missing_delay[0] != -1 && missing_delay[1] != -1) + mpt2sas_base_update_missing_delay(ioc, missing_delay[0], + missing_delay[1]); dewtprintk(ioc, printk(MPT2SAS_INFO_FMT "port enable: complete " "from worker thread\n", ioc->name)); @@ -8000,7 +8115,6 @@ goto out_attach_fail; } - scsi_scan_host(shost); if (ioc->is_warpdrive) { if (ioc->mfg_pg10_hide_flag == MFG_PAGE10_EXPOSE_ALL_DISKS) ioc->hide_drives = 0; @@ -8014,8 +8128,8 @@ } } else ioc->hide_drives = 0; + scsi_scan_host(shost); - _scsih_probe_devices(ioc); return 0; out_attach_fail: --- linux-3.2.0.orig/drivers/scsi/libsas/sas_expander.c +++ linux-3.2.0/drivers/scsi/libsas/sas_expander.c @@ -192,7 +192,14 @@ phy->attached_sata_ps = dr->attached_sata_ps; phy->attached_iproto = dr->iproto << 1; phy->attached_tproto = dr->tproto << 1; - memcpy(phy->attached_sas_addr, dr->attached_sas_addr, SAS_ADDR_SIZE); + /* help some expanders that fail to zero sas_address in the 'no + * device' case + */ + if (phy->attached_dev_type == NO_DEVICE || + phy->linkrate < SAS_LINK_RATE_1_5_GBPS) + memset(phy->attached_sas_addr, 0, SAS_ADDR_SIZE); + else + memcpy(phy->attached_sas_addr, dr->attached_sas_addr, SAS_ADDR_SIZE); phy->attached_phy_id = dr->attached_phy_id; phy->phy_change_count = dr->change_count; phy->routing_attr = dr->routing_attr; @@ -767,7 +774,7 @@ } /* See if this phy is part of a wide port */ -static int sas_ex_join_wide_port(struct domain_device *parent, int phy_id) +static bool sas_ex_join_wide_port(struct domain_device *parent, int phy_id) { struct ex_phy *phy = &parent->ex_dev.ex_phy[phy_id]; int i; @@ -783,11 +790,11 @@ sas_port_add_phy(ephy->port, phy->phy); phy->port = ephy->port; phy->phy_state = PHY_DEVICE_DISCOVERED; - return 0; + return true; } } - return -ENODEV; + return false; } static struct domain_device *sas_ex_discover_expander( @@ -925,8 +932,7 @@ return res; } - res = sas_ex_join_wide_port(dev, phy_id); - if (!res) { + if (sas_ex_join_wide_port(dev, phy_id)) { SAS_DPRINTK("Attaching ex phy%d to wide port %016llx\n", phy_id, SAS_ADDR(ex_phy->attached_sas_addr)); return res; @@ -971,8 +977,7 @@ if (SAS_ADDR(ex->ex_phy[i].attached_sas_addr) == SAS_ADDR(child->sas_addr)) { ex->ex_phy[i].phy_state= PHY_DEVICE_DISCOVERED; - res = sas_ex_join_wide_port(dev, i); - if (!res) + if (sas_ex_join_wide_port(dev, i)) SAS_DPRINTK("Attaching ex phy%d to wide port %016llx\n", i, SAS_ADDR(ex->ex_phy[i].attached_sas_addr)); @@ -1643,9 +1648,17 @@ int phy_change_count = 0; res = sas_get_phy_change_count(dev, i, &phy_change_count); - if (res) - goto out; - else if (phy_change_count != ex->ex_phy[i].phy_change_count) { + switch (res) { + case SMP_RESP_PHY_VACANT: + case SMP_RESP_NO_PHY: + continue; + case SMP_RESP_FUNC_ACC: + break; + default: + return res; + } + + if (phy_change_count != ex->ex_phy[i].phy_change_count) { if (update) ex->ex_phy[i].phy_change_count = phy_change_count; @@ -1653,8 +1666,7 @@ return 0; } } -out: - return res; + return 0; } static int sas_get_ex_change_count(struct domain_device *dev, int *ecc) @@ -1835,32 +1847,20 @@ { struct ex_phy *ex_phy = &dev->ex_dev.ex_phy[phy_id]; struct domain_device *child; - bool found = false; - int res, i; + int res; SAS_DPRINTK("ex %016llx phy%d new device attached\n", SAS_ADDR(dev->sas_addr), phy_id); res = sas_ex_phy_discover(dev, phy_id); if (res) - goto out; - /* to support the wide port inserted */ - for (i = 0; i < dev->ex_dev.num_phys; i++) { - struct ex_phy *ex_phy_temp = &dev->ex_dev.ex_phy[i]; - if (i == phy_id) - continue; - if (SAS_ADDR(ex_phy_temp->attached_sas_addr) == - SAS_ADDR(ex_phy->attached_sas_addr)) { - found = true; - break; - } - } - if (found) { - sas_ex_join_wide_port(dev, phy_id); + return res; + + if (sas_ex_join_wide_port(dev, phy_id)) return 0; - } + res = sas_ex_discover_devices(dev, phy_id); - if (!res) - goto out; + if (res) + return res; list_for_each_entry(child, &dev->ex_dev.children, siblings) { if (SAS_ADDR(child->sas_addr) == SAS_ADDR(ex_phy->attached_sas_addr)) { @@ -1870,7 +1870,6 @@ break; } } -out: return res; } @@ -1969,9 +1968,7 @@ struct domain_device *dev = NULL; res = sas_find_bcast_dev(port_dev, &dev); - if (res) - goto out; - if (dev) { + while (res == 0 && dev) { struct expander_device *ex = &dev->ex_dev; int i = 0, phy_id; @@ -1983,8 +1980,10 @@ res = sas_rediscover(dev, phy_id); i = phy_id + 1; } while (i < ex->num_phys); + + dev = NULL; + res = sas_find_bcast_dev(port_dev, &dev); } -out: return res; } --- linux-3.2.0.orig/drivers/scsi/libsas/sas_ata.c +++ linux-3.2.0/drivers/scsi/libsas/sas_ata.c @@ -112,12 +112,12 @@ if (stat->stat == SAS_PROTO_RESPONSE || stat->stat == SAM_STAT_GOOD || ((stat->stat == SAM_STAT_CHECK_CONDITION && dev->sata_dev.command_set == ATAPI_COMMAND_SET))) { - ata_tf_from_fis(resp->ending_fis, &dev->sata_dev.tf); + memcpy(dev->sata_dev.fis, resp->ending_fis, ATA_RESP_FIS_SIZE); if (!link->sactive) { - qc->err_mask |= ac_err_mask(dev->sata_dev.tf.command); + qc->err_mask |= ac_err_mask(dev->sata_dev.fis[2]); } else { - link->eh_info.err_mask |= ac_err_mask(dev->sata_dev.tf.command); + link->eh_info.err_mask |= ac_err_mask(dev->sata_dev.fis[2]); if (unlikely(link->eh_info.err_mask)) qc->flags |= ATA_QCFLAG_FAILED; } @@ -138,8 +138,8 @@ qc->flags |= ATA_QCFLAG_FAILED; } - dev->sata_dev.tf.feature = 0x04; /* status err */ - dev->sata_dev.tf.command = ATA_ERR; + dev->sata_dev.fis[3] = 0x04; /* status err */ + dev->sata_dev.fis[2] = ATA_ERR; } } @@ -252,7 +252,7 @@ { struct domain_device *dev = qc->ap->private_data; - memcpy(&qc->result_tf, &dev->sata_dev.tf, sizeof(qc->result_tf)); + ata_tf_from_fis(dev->sata_dev.fis, &qc->result_tf); return true; } --- linux-3.2.0.orig/drivers/scsi/aic94xx/aic94xx_task.c +++ linux-3.2.0/drivers/scsi/aic94xx/aic94xx_task.c @@ -201,7 +201,7 @@ if (SAS_STATUS_BUF_SIZE >= sizeof(*resp)) { resp->frame_len = le16_to_cpu(*(__le16 *)(r+6)); - memcpy(&resp->ending_fis[0], r+16, 24); + memcpy(&resp->ending_fis[0], r+16, ATA_RESP_FIS_SIZE); ts->buf_valid_size = sizeof(*resp); } } --- linux-3.2.0.orig/drivers/scsi/sym53c8xx_2/sym_glue.c +++ linux-3.2.0/drivers/scsi/sym53c8xx_2/sym_glue.c @@ -839,6 +839,10 @@ struct sym_lcb *lp = sym_lp(tp, sdev->lun); unsigned long flags; + /* if slave_alloc returned before allocating a sym_lcb, return */ + if (!lp) + return; + spin_lock_irqsave(np->s.host->host_lock, flags); if (lp->busy_itlq || lp->busy_itl) { --- linux-3.2.0.orig/drivers/scsi/device_handler/scsi_dh_alua.c +++ linux-3.2.0/drivers/scsi/device_handler/scsi_dh_alua.c @@ -578,8 +578,7 @@ h->state = TPGS_STATE_STANDBY; break; case TPGS_STATE_OFFLINE: - case TPGS_STATE_UNAVAILABLE: - /* Path unusable for unavailable/offline */ + /* Path unusable */ err = SCSI_DH_DEV_OFFLINED; break; default: --- linux-3.2.0.orig/drivers/scsi/isci/request.c +++ linux-3.2.0/drivers/scsi/isci/request.c @@ -1849,7 +1849,7 @@ frame_index, (void **)&frame_buffer); - sci_controller_copy_sata_response(&ireq->stp.req, + sci_controller_copy_sata_response(&ireq->stp.rsp, frame_header, frame_buffer); --- linux-3.2.0.orig/drivers/scsi/isci/probe_roms.c +++ linux-3.2.0/drivers/scsi/isci/probe_roms.c @@ -104,7 +104,6 @@ if (i >= len) { dev_err(&pdev->dev, "oprom parse error\n"); - devm_kfree(&pdev->dev, rom); rom = NULL; } pci_unmap_biosrom(oprom); --- linux-3.2.0.orig/drivers/scsi/isci/init.c +++ linux-3.2.0/drivers/scsi/isci/init.c @@ -459,17 +459,16 @@ return -ENOMEM; pci_set_drvdata(pdev, pci_info); - if (efi_enabled) + if (efi_enabled(EFI_RUNTIME_SERVICES)) orom = isci_get_efi_var(pdev); if (!orom) orom = isci_request_oprom(pdev); - for (i = 0; orom && i < ARRAY_SIZE(orom->ctrl); i++) { + for (i = 0; orom && i < num_controllers(pdev); i++) { if (sci_oem_parameters_validate(&orom->ctrl[i])) { dev_warn(&pdev->dev, "[%d]: invalid oem parameters detected, falling back to firmware\n", i); - devm_kfree(&pdev->dev, orom); orom = NULL; break; } --- linux-3.2.0.orig/drivers/scsi/isci/task.c +++ linux-3.2.0/drivers/scsi/isci/task.c @@ -1038,6 +1038,7 @@ int ret = TMF_RESP_FUNC_FAILED; unsigned long flags; int perform_termination = 0; + int target_done_already = 0; /* Get the isci_request reference from the task. Note that * this check does not depend on the pending request list @@ -1052,9 +1053,11 @@ /* If task is already done, the request isn't valid */ if (!(task->task_state_flags & SAS_TASK_STATE_DONE) && (task->task_state_flags & SAS_TASK_AT_INITIATOR) && - old_request) + old_request) { isci_device = isci_lookup_device(task->dev); - + target_done_already = test_bit(IREQ_COMPLETE_IN_TARGET, + &old_request->flags); + } spin_unlock(&task->task_state_lock); spin_unlock_irqrestore(&isci_host->scic_lock, flags); @@ -1116,7 +1119,7 @@ } if (task->task_proto == SAS_PROTOCOL_SMP || sas_protocol_ata(task->task_proto) || - test_bit(IREQ_COMPLETE_IN_TARGET, &old_request->flags)) { + target_done_already) { spin_unlock_irqrestore(&isci_host->scic_lock, flags); --- linux-3.2.0.orig/drivers/scsi/bnx2i/bnx2i_hwi.c +++ linux-3.2.0/drivers/scsi/bnx2i/bnx2i_hwi.c @@ -1264,6 +1264,9 @@ int rc = 0; u64 mask64; + memset(&iscsi_init, 0x00, sizeof(struct iscsi_kwqe_init1)); + memset(&iscsi_init2, 0x00, sizeof(struct iscsi_kwqe_init2)); + bnx2i_adjust_qp_size(hba); iscsi_init.flags = --- linux-3.2.0.orig/drivers/scsi/osd/osd_uld.c +++ linux-3.2.0/drivers/scsi/osd/osd_uld.c @@ -69,10 +69,10 @@ #ifndef SCSI_OSD_MAJOR # define SCSI_OSD_MAJOR 260 #endif -#define SCSI_OSD_MAX_MINOR 64 +#define SCSI_OSD_MAX_MINOR MINORMASK static const char osd_name[] = "osd"; -static const char *osd_version_string = "open-osd 0.2.0"; +static const char *osd_version_string = "open-osd 0.2.1"; MODULE_AUTHOR("Boaz Harrosh "); MODULE_DESCRIPTION("open-osd Upper-Layer-Driver osd.ko"); @@ -465,7 +465,7 @@ oud->class_dev.class = &osd_uld_class; oud->class_dev.parent = dev; oud->class_dev.release = __remove; - error = dev_set_name(&oud->class_dev, disk->disk_name); + error = dev_set_name(&oud->class_dev, "%s", disk->disk_name); if (error) { OSD_ERR("dev_set_name failed => %d\n", error); goto err_put_cdev; --- linux-3.2.0.orig/drivers/scsi/qla2xxx/qla_iocb.c +++ linux-3.2.0/drivers/scsi/qla2xxx/qla_iocb.c @@ -423,6 +423,8 @@ __constant_cpu_to_le16(CF_SIMPLE_TAG); break; } + } else { + cmd_pkt->control_flags = __constant_cpu_to_le16(CF_SIMPLE_TAG); } /* Load SCSI command packet. */ @@ -1244,11 +1246,11 @@ fcp_cmnd->task_attribute = TSK_ORDERED; break; default: - fcp_cmnd->task_attribute = 0; + fcp_cmnd->task_attribute = TSK_SIMPLE; break; } } else { - fcp_cmnd->task_attribute = 0; + fcp_cmnd->task_attribute = TSK_SIMPLE; } cmd_pkt->fcp_rsp_dseg_len = 0; /* Let response come in status iocb */ @@ -1454,7 +1456,12 @@ case ORDERED_QUEUE_TAG: cmd_pkt->task = TSK_ORDERED; break; + default: + cmd_pkt->task = TSK_SIMPLE; + break; } + } else { + cmd_pkt->task = TSK_SIMPLE; } /* Load SCSI command packet. */ --- linux-3.2.0.orig/drivers/scsi/qla2xxx/qla_os.c +++ linux-3.2.0/drivers/scsi/qla2xxx/qla_os.c @@ -3541,9 +3541,9 @@ "ISP abort end.\n"); } - if (test_bit(FCPORT_UPDATE_NEEDED, &base_vha->dpc_flags)) { + if (test_and_clear_bit(FCPORT_UPDATE_NEEDED, + &base_vha->dpc_flags)) { qla2x00_update_fcports(base_vha); - clear_bit(FCPORT_UPDATE_NEEDED, &base_vha->dpc_flags); } if (test_bit(ISP_QUIESCE_NEEDED, &base_vha->dpc_flags)) { --- linux-3.2.0.orig/drivers/iommu/amd_iommu_types.h +++ linux-3.2.0/drivers/iommu/amd_iommu_types.h @@ -385,6 +385,9 @@ /* Pointer to PCI device of this IOMMU */ struct pci_dev *dev; + /* Cache pdev to root device for resume quirks */ + struct pci_dev *root_pdev; + /* physical address of MMIO space */ u64 mmio_phys; /* virtual address of MMIO space */ --- linux-3.2.0.orig/drivers/iommu/intel-iommu.c +++ linux-3.2.0/drivers/iommu/intel-iommu.c @@ -563,7 +563,9 @@ { int i; - domain->iommu_coherency = 1; + i = find_first_bit(&domain->iommu_bmp, g_num_of_iommus); + + domain->iommu_coherency = i < g_num_of_iommus ? 1 : 0; for_each_set_bit(i, &domain->iommu_bmp, g_num_of_iommus) { if (!ecap_coherent(g_iommus[i]->ecap)) { @@ -1799,10 +1801,17 @@ if (!pte) return -ENOMEM; /* It is large page*/ - if (largepage_lvl > 1) + if (largepage_lvl > 1) { pteval |= DMA_PTE_LARGE_PAGE; - else + /* Ensure that old small page tables are removed to make room + for superpage, if they exist. */ + dma_pte_clear_range(domain, iov_pfn, + iov_pfn + lvl_to_nr_pages(largepage_lvl) - 1); + dma_pte_free_pagetable(domain, iov_pfn, + iov_pfn + lvl_to_nr_pages(largepage_lvl) - 1); + } else { pteval &= ~(uint64_t)DMA_PTE_LARGE_PAGE; + } } /* We don't need lock here, nobody else @@ -2267,12 +2276,6 @@ if (!info) return -ENOMEM; - ret = domain_context_mapping(domain, pdev, translation); - if (ret) { - free_devinfo_mem(info); - return ret; - } - info->segment = pci_domain_nr(pdev->bus); info->bus = pdev->bus->number; info->devfn = pdev->devfn; @@ -2285,11 +2288,53 @@ pdev->dev.archdata.iommu = info; spin_unlock_irqrestore(&device_domain_lock, flags); + ret = domain_context_mapping(domain, pdev, translation); + if (ret) { + spin_lock_irqsave(&device_domain_lock, flags); + list_del(&info->link); + list_del(&info->global); + pdev->dev.archdata.iommu = NULL; + spin_unlock_irqrestore(&device_domain_lock, flags); + free_devinfo_mem(info); + return ret; + } + return 0; } +static bool device_has_rmrr(struct pci_dev *dev) +{ + struct dmar_rmrr_unit *rmrr; + int i; + + for_each_rmrr_units(rmrr) { + for (i = 0; i < rmrr->devices_cnt; i++) { + /* + * Return TRUE if this RMRR contains the device that + * is passed in. + */ + if (rmrr->devices[i] == dev) + return true; + } + } + return false; +} + static int iommu_should_identity_map(struct pci_dev *pdev, int startup) { + + /* + * We want to prevent any device associated with an RMRR from + * getting placed into the SI Domain. This is done because + * problems exist when devices are moved in and out of domains + * and their respective RMRR info is lost. We exempt USB devices + * from this process due to their usage of RMRRs that are known + * to not be needed after BIOS hand-off to OS. + */ + if (device_has_rmrr(pdev) && + (pdev->class >> 8) != PCI_CLASS_SERIAL_USB) + return 0; + if ((iommu_identity_mapping & IDENTMAP_AZALIA) && IS_AZALIA(pdev)) return 1; @@ -4076,23 +4121,38 @@ .domain_has_cap = intel_iommu_domain_has_cap, }; +static void quirk_iommu_g4x_gfx(struct pci_dev *dev) +{ + /* G4x/GM45 integrated gfx dmar support is totally busted. */ + printk(KERN_INFO "DMAR: Disabling IOMMU for graphics on this chipset\n"); + dmar_map_gfx = 0; +} + +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e10, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e20, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e30, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e40, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e90, quirk_iommu_g4x_gfx); + static void __devinit quirk_iommu_rwbf(struct pci_dev *dev) { /* * Mobile 4 Series Chipset neglects to set RWBF capability, - * but needs it: + * but needs it. Same seems to hold for the desktop versions. */ printk(KERN_INFO "DMAR: Forcing write-buffer flush capability\n"); rwbf_quirk = 1; - - /* https://bugzilla.redhat.com/show_bug.cgi?id=538163 */ - if (dev->revision == 0x07) { - printk(KERN_INFO "DMAR: Disabling IOMMU for graphics on this chipset\n"); - dmar_map_gfx = 0; - } } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_rwbf); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e10, quirk_iommu_rwbf); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e20, quirk_iommu_rwbf); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e30, quirk_iommu_rwbf); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e40, quirk_iommu_rwbf); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e90, quirk_iommu_rwbf); #define GGC 0x52 #define GGC_MEMORY_SIZE_MASK (0xf << 8) --- linux-3.2.0.orig/drivers/iommu/dmar.c +++ linux-3.2.0/drivers/iommu/dmar.c @@ -1056,8 +1056,8 @@ const char *dmar_get_fault_reason(u8 fault_reason, int *fault_type) { - if (fault_reason >= 0x20 && (fault_reason <= 0x20 + - ARRAY_SIZE(intr_remap_fault_reasons))) { + if (fault_reason >= 0x20 && (fault_reason - 0x20 < + ARRAY_SIZE(intr_remap_fault_reasons))) { *fault_type = INTR_REMAP; return intr_remap_fault_reasons[fault_reason - 0x20]; } else if (fault_reason < ARRAY_SIZE(dma_remap_fault_reasons)) { --- linux-3.2.0.orig/drivers/iommu/omap-iommu.c +++ linux-3.2.0/drivers/iommu/omap-iommu.c @@ -1229,7 +1229,8 @@ return platform_driver_register(&omap_iommu_driver); } -module_init(omap_iommu_init); +/* must be ready before omap3isp is probed */ +subsys_initcall(omap_iommu_init); static void __exit omap_iommu_exit(void) { --- linux-3.2.0.orig/drivers/iommu/intr_remapping.c +++ linux-3.2.0/drivers/iommu/intr_remapping.c @@ -752,6 +752,7 @@ { struct dmar_drhd_unit *drhd; int ir_supported = 0; + int ioapic_idx; for_each_drhd_unit(drhd) { struct intel_iommu *iommu = drhd->iommu; @@ -764,13 +765,20 @@ } } - if (ir_supported && ir_ioapic_num != nr_ioapics) { - printk(KERN_WARNING - "Not all IO-APIC's listed under remapping hardware\n"); - return -1; + if (!ir_supported) + return 0; + + for (ioapic_idx = 0; ioapic_idx < nr_ioapics; ioapic_idx++) { + int ioapic_id = mpc_ioapic_id(ioapic_idx); + if (!map_ioapic_to_ir(ioapic_id)) { + pr_err(FW_BUG "ioapic %d has no mapping iommu, " + "interrupt remapping will be disabled\n", + ioapic_id); + return -1; + } } - return ir_supported; + return 1; } int __init ir_dev_scope_init(void) --- linux-3.2.0.orig/drivers/iommu/msm_iommu.c +++ linux-3.2.0/drivers/iommu/msm_iommu.c @@ -481,23 +481,19 @@ priv = domain->priv; - if (!priv) { - ret = -ENODEV; + if (!priv) goto fail; - } fl_table = priv->pgtable; if (len != SZ_16M && len != SZ_1M && len != SZ_64K && len != SZ_4K) { pr_debug("Bad length: %d\n", len); - ret = -EINVAL; goto fail; } if (!fl_table) { pr_debug("Null page table\n"); - ret = -EINVAL; goto fail; } @@ -506,7 +502,6 @@ if (*fl_pte == 0) { pr_debug("First level PTE is 0\n"); - ret = -ENODEV; goto fail; } --- linux-3.2.0.orig/drivers/iommu/amd_iommu.c +++ linux-3.2.0/drivers/iommu/amd_iommu.c @@ -59,6 +59,8 @@ static struct iommu_ops amd_iommu_ops; +static struct dma_map_ops amd_iommu_dma_ops; + /* * general struct to manage commands send to an IOMMU */ @@ -381,12 +383,27 @@ static void iommu_print_event(struct amd_iommu *iommu, void *__evt) { - u32 *event = __evt; - int type = (event[1] >> EVENT_TYPE_SHIFT) & EVENT_TYPE_MASK; - int devid = (event[0] >> EVENT_DEVID_SHIFT) & EVENT_DEVID_MASK; - int domid = (event[1] >> EVENT_DOMID_SHIFT) & EVENT_DOMID_MASK; - int flags = (event[1] >> EVENT_FLAGS_SHIFT) & EVENT_FLAGS_MASK; - u64 address = (u64)(((u64)event[3]) << 32) | event[2]; + int type, devid, domid, flags; + volatile u32 *event = __evt; + int count = 0; + u64 address; + +retry: + type = (event[1] >> EVENT_TYPE_SHIFT) & EVENT_TYPE_MASK; + devid = (event[0] >> EVENT_DEVID_SHIFT) & EVENT_DEVID_MASK; + domid = (event[1] >> EVENT_DOMID_SHIFT) & EVENT_DOMID_MASK; + flags = (event[1] >> EVENT_FLAGS_SHIFT) & EVENT_FLAGS_MASK; + address = (u64)(((u64)event[3]) << 32) | event[2]; + + if (type == 0) { + /* Did we hit the erratum? */ + if (++count == LOOP_TIMEOUT) { + pr_err("AMD-Vi: No event written to event log\n"); + return; + } + udelay(1); + goto retry; + } printk(KERN_ERR "AMD-Vi: Event logged ["); @@ -439,6 +456,8 @@ default: printk(KERN_ERR "UNKNOWN type=0x%02x]\n", type); } + + memset(__evt, 0, 4 * sizeof(u32)); } static void iommu_poll_events(struct amd_iommu *iommu) @@ -1057,6 +1076,10 @@ /* Large PTE found which maps this address */ unmap_size = PTE_PAGE_SIZE(*pte); + + /* Only unmap from the first pte in the page */ + if ((unmap_size - 1) & bus_addr) + break; count = PAGE_SIZE_PTE_COUNT(unmap_size); for (i = 0; i < count; i++) pte[i] = 0ULL; @@ -1066,7 +1089,7 @@ unmapped += unmap_size; } - BUG_ON(!is_power_of_2(unmapped)); + BUG_ON(unmapped && !is_power_of_2(unmapped)); return unmapped; } @@ -1846,20 +1869,27 @@ iommu_init_device(dev); + if (iommu_pass_through) { + attach_device(dev, pt_domain); + break; + } + domain = domain_for_device(dev); /* allocate a protection domain if a device is added */ dma_domain = find_protection_domain(devid); - if (dma_domain) - goto out; - dma_domain = dma_ops_domain_alloc(); - if (!dma_domain) - goto out; - dma_domain->target_dev = devid; + if (!dma_domain) { + dma_domain = dma_ops_domain_alloc(); + if (!dma_domain) + goto out; + dma_domain->target_dev = devid; + + spin_lock_irqsave(&iommu_pd_list_lock, flags); + list_add_tail(&dma_domain->list, &iommu_pd_list); + spin_unlock_irqrestore(&iommu_pd_list_lock, flags); + } - spin_lock_irqsave(&iommu_pd_list_lock, flags); - list_add_tail(&dma_domain->list, &iommu_pd_list); - spin_unlock_irqrestore(&iommu_pd_list_lock, flags); + dev->archdata.dma_ops = &amd_iommu_dma_ops; break; case BUS_NOTIFY_DEL_DEVICE: @@ -2432,7 +2462,7 @@ * we don't need to preallocate the protection domains anymore. * For now we have to. */ -static void prealloc_protection_domains(void) +static void __init prealloc_protection_domains(void) { struct pci_dev *dev = NULL; struct dma_ops_domain *dma_dom; @@ -2479,6 +2509,9 @@ for_each_pci_dev(pdev) { if (!check_device(&pdev->dev)) { + + iommu_ignore_device(&pdev->dev); + unhandled += 1; continue; } --- linux-3.2.0.orig/drivers/iommu/amd_iommu_init.c +++ linux-3.2.0/drivers/iommu/amd_iommu_init.c @@ -268,7 +268,7 @@ } /* Programs the physical address of the device table into the IOMMU hardware */ -static void __init iommu_set_device_table(struct amd_iommu *iommu) +static void iommu_set_device_table(struct amd_iommu *iommu) { u64 entry; @@ -916,6 +916,38 @@ } /* + * Family15h Model 10h-1fh erratum 746 (IOMMU Logging May Stall Translations) + * Workaround: + * BIOS should disable L2B micellaneous clock gating by setting + * L2_L2B_CK_GATE_CONTROL[CKGateL2BMiscDisable](D0F2xF4_x90[2]) = 1b + */ +static void __init amd_iommu_erratum_746_workaround(struct amd_iommu *iommu) +{ + u32 value; + + if ((boot_cpu_data.x86 != 0x15) || + (boot_cpu_data.x86_model < 0x10) || + (boot_cpu_data.x86_model > 0x1f)) + return; + + pci_write_config_dword(iommu->dev, 0xf0, 0x90); + pci_read_config_dword(iommu->dev, 0xf4, &value); + + if (value & BIT(2)) + return; + + /* Select NB indirect register 0x90 and enable writing */ + pci_write_config_dword(iommu->dev, 0xf0, 0x90 | (1 << 8)); + + pci_write_config_dword(iommu->dev, 0xf4, value | 0x4); + pr_info("AMD-Vi: Applying erratum 746 workaround for IOMMU at %s\n", + dev_name(&iommu->dev->dev)); + + /* Clear the enable writing bit */ + pci_write_config_dword(iommu->dev, 0xf0, 0x90); +} + +/* * This function clues the initialization function for one IOMMU * together and also allocates the command buffer and programs the * hardware. It does NOT enable the IOMMU. This is done afterwards. @@ -943,6 +975,9 @@ if (!iommu->dev) return 1; + iommu->root_pdev = pci_get_bus_and_slot(iommu->dev->bus->number, + PCI_DEVFN(0, 0)); + iommu->cap_ptr = h->cap_ptr; iommu->pci_seg = h->pci_seg; iommu->mmio_phys = h->mmio_phys; @@ -967,6 +1002,8 @@ if (iommu->cap & (1UL << IOMMU_CAP_NPCACHE)) amd_iommu_np_cache = true; + amd_iommu_erratum_746_workaround(iommu); + return pci_enable_device(iommu->dev); } @@ -1033,8 +1070,9 @@ { int r; - if (pci_enable_msi(iommu->dev)) - return 1; + r = pci_enable_msi(iommu->dev); + if (r) + return r; r = request_threaded_irq(iommu->dev->irq, amd_iommu_int_handler, @@ -1044,24 +1082,33 @@ if (r) { pci_disable_msi(iommu->dev); - return 1; + return r; } iommu->int_enabled = true; - iommu_feature_enable(iommu, CONTROL_EVT_INT_EN); return 0; } static int iommu_init_msi(struct amd_iommu *iommu) { + int ret; + if (iommu->int_enabled) - return 0; + goto enable_faults; if (pci_find_capability(iommu->dev, PCI_CAP_ID_MSI)) - return iommu_setup_msi(iommu); + ret = iommu_setup_msi(iommu); + else + ret = -ENODEV; - return 1; + if (ret) + return ret; + +enable_faults: + iommu_feature_enable(iommu, CONTROL_EVT_INT_EN); + + return 0; } /**************************************************************************** @@ -1215,20 +1262,16 @@ { int i, j; u32 ioc_feature_control; - struct pci_dev *pdev = NULL; + struct pci_dev *pdev = iommu->root_pdev; /* RD890 BIOSes may not have completely reconfigured the iommu */ - if (!is_rd890_iommu(iommu->dev)) + if (!is_rd890_iommu(iommu->dev) || !pdev) return; /* * First, we need to ensure that the iommu is enabled. This is * controlled by a register in the northbridge */ - pdev = pci_get_bus_and_slot(iommu->dev->bus->number, PCI_DEVFN(0, 0)); - - if (!pdev) - return; /* Select Northbridge indirect register 0x75 and enable writing */ pci_write_config_dword(pdev, 0x60, 0x75 | (1 << 7)); @@ -1238,8 +1281,6 @@ if (!(ioc_feature_control & 0x1)) pci_write_config_dword(pdev, 0x64, ioc_feature_control | 1); - pci_dev_put(pdev); - /* Restore the iommu BAR */ pci_write_config_dword(iommu->dev, iommu->cap_ptr + 4, iommu->stored_addr_lo); @@ -1355,6 +1396,7 @@ */ static int __init amd_iommu_init(void) { + struct amd_iommu *iommu; int i, ret = 0; /* @@ -1403,9 +1445,6 @@ if (amd_iommu_pd_alloc_bitmap == NULL) goto free; - /* init the device table */ - init_device_table(); - /* * let all alias entries point to itself */ @@ -1455,12 +1494,20 @@ if (ret) goto free_disable; + /* init the device table */ + init_device_table(); + + for_each_iommu(iommu) + iommu_flush_all_caches(iommu); + amd_iommu_init_api(); amd_iommu_init_notifier(); register_syscore_ops(&amd_iommu_syscore_ops); + x86_platform.iommu_shutdown = disable_iommus; + if (iommu_pass_through) goto out; @@ -1469,7 +1516,6 @@ else printk(KERN_INFO "AMD-Vi: Lazy IO/TLB flushing enabled\n"); - x86_platform.iommu_shutdown = disable_iommus; out: return ret; --- linux-3.2.0.orig/drivers/media/rc/ite-cir.c +++ linux-3.2.0/drivers/media/rc/ite-cir.c @@ -1473,6 +1473,7 @@ rdev = rc_allocate_device(); if (!rdev) goto failure; + itdev->rdev = rdev; ret = -ENODEV; @@ -1515,16 +1516,6 @@ /* initialize raw event */ init_ir_raw_event(&itdev->rawir); - ret = -EBUSY; - /* now claim resources */ - if (!request_region(itdev->cir_addr, - dev_desc->io_region_size, ITE_DRIVER_NAME)) - goto failure; - - if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED, - ITE_DRIVER_NAME, (void *)itdev)) - goto failure; - /* set driver data into the pnp device */ pnp_set_drvdata(pdev, itdev); itdev->pdev = pdev; @@ -1600,11 +1591,20 @@ rdev->driver_name = ITE_DRIVER_NAME; rdev->map_name = RC_MAP_RC6_MCE; + ret = -EBUSY; + /* now claim resources */ + if (!request_region(itdev->cir_addr, + dev_desc->io_region_size, ITE_DRIVER_NAME)) + goto failure; + + if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED, + ITE_DRIVER_NAME, (void *)itdev)) + goto failure; + ret = rc_register_device(rdev); if (ret) goto failure; - itdev->rdev = rdev; ite_pr(KERN_NOTICE, "driver has been successfully loaded\n"); return 0; --- linux-3.2.0.orig/drivers/media/rc/imon.c +++ linux-3.2.0/drivers/media/rc/imon.c @@ -47,7 +47,7 @@ #define MOD_AUTHOR "Jarod Wilson " #define MOD_DESC "Driver for SoundGraph iMON MultiMedia IR/Display" #define MOD_NAME "imon" -#define MOD_VERSION "0.9.3" +#define MOD_VERSION "0.9.4" #define DISPLAY_MINOR_BASE 144 #define DEVICE_NAME "lcd%d" @@ -1658,9 +1658,17 @@ return; ictx = (struct imon_context *)urb->context; - if (!ictx || !ictx->dev_present_intf0) + if (!ictx) return; + /* + * if we get a callback before we're done configuring the hardware, we + * can't yet process the data, as there's nowhere to send it, but we + * still need to submit a new rx URB to avoid wedging the hardware + */ + if (!ictx->dev_present_intf0) + goto out; + switch (urb->status) { case -ENOENT: /* usbcore unlink successful! */ return; @@ -1678,6 +1686,7 @@ break; } +out: usb_submit_urb(ictx->rx_urb_intf0, GFP_ATOMIC); } @@ -1690,9 +1699,17 @@ return; ictx = (struct imon_context *)urb->context; - if (!ictx || !ictx->dev_present_intf1) + if (!ictx) return; + /* + * if we get a callback before we're done configuring the hardware, we + * can't yet process the data, as there's nowhere to send it, but we + * still need to submit a new rx URB to avoid wedging the hardware + */ + if (!ictx->dev_present_intf1) + goto out; + switch (urb->status) { case -ENOENT: /* usbcore unlink successful! */ return; @@ -1710,6 +1727,7 @@ break; } +out: usb_submit_urb(ictx->rx_urb_intf1, GFP_ATOMIC); } @@ -2242,7 +2260,7 @@ mutex_unlock(&ictx->lock); usb_free_urb(rx_urb); rx_urb_alloc_failed: - dev_err(ictx->dev, "unable to initialize intf0, err %d\n", ret); + dev_err(ictx->dev, "unable to initialize intf1, err %d\n", ret); return NULL; } --- linux-3.2.0.orig/drivers/media/rc/fintek-cir.c +++ linux-3.2.0/drivers/media/rc/fintek-cir.c @@ -504,16 +504,6 @@ spin_lock_init(&fintek->fintek_lock); - ret = -EBUSY; - /* now claim resources */ - if (!request_region(fintek->cir_addr, - fintek->cir_port_len, FINTEK_DRIVER_NAME)) - goto failure; - - if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED, - FINTEK_DRIVER_NAME, (void *)fintek)) - goto failure; - pnp_set_drvdata(pdev, fintek); fintek->pdev = pdev; @@ -548,6 +538,16 @@ /* rx resolution is hardwired to 50us atm, 1, 25, 100 also possible */ rdev->rx_resolution = US_TO_NS(CIR_SAMPLE_PERIOD); + ret = -EBUSY; + /* now claim resources */ + if (!request_region(fintek->cir_addr, + fintek->cir_port_len, FINTEK_DRIVER_NAME)) + goto failure; + + if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED, + FINTEK_DRIVER_NAME, (void *)fintek)) + goto failure; + ret = rc_register_device(rdev); if (ret) goto failure; --- linux-3.2.0.orig/drivers/media/rc/rc-main.c +++ linux-3.2.0/drivers/media/rc/rc-main.c @@ -774,11 +774,13 @@ if (dev->driver_type == RC_DRIVER_SCANCODE) { enabled = dev->rc_map.rc_type; allowed = dev->allowed_protos; - } else { + } else if (dev->raw) { enabled = dev->raw->enabled_protocols; allowed = ir_raw_get_allowed_protocols(); + } else { + mutex_unlock(&dev->lock); + return -ENODEV; } - IR_dprintk(1, "allowed - 0x%llx, enabled - 0x%llx\n", (long long)allowed, (long long)enabled); --- linux-3.2.0.orig/drivers/media/rc/winbond-cir.c +++ linux-3.2.0/drivers/media/rc/winbond-cir.c @@ -991,39 +991,10 @@ "(w: 0x%lX, e: 0x%lX, s: 0x%lX, i: %u)\n", data->wbase, data->ebase, data->sbase, data->irq); - if (!request_region(data->wbase, WAKEUP_IOMEM_LEN, DRVNAME)) { - dev_err(dev, "Region 0x%lx-0x%lx already in use!\n", - data->wbase, data->wbase + WAKEUP_IOMEM_LEN - 1); - err = -EBUSY; - goto exit_free_data; - } - - if (!request_region(data->ebase, EHFUNC_IOMEM_LEN, DRVNAME)) { - dev_err(dev, "Region 0x%lx-0x%lx already in use!\n", - data->ebase, data->ebase + EHFUNC_IOMEM_LEN - 1); - err = -EBUSY; - goto exit_release_wbase; - } - - if (!request_region(data->sbase, SP_IOMEM_LEN, DRVNAME)) { - dev_err(dev, "Region 0x%lx-0x%lx already in use!\n", - data->sbase, data->sbase + SP_IOMEM_LEN - 1); - err = -EBUSY; - goto exit_release_ebase; - } - - err = request_irq(data->irq, wbcir_irq_handler, - IRQF_DISABLED, DRVNAME, device); - if (err) { - dev_err(dev, "Failed to claim IRQ %u\n", data->irq); - err = -EBUSY; - goto exit_release_sbase; - } - led_trigger_register_simple("cir-tx", &data->txtrigger); if (!data->txtrigger) { err = -ENOMEM; - goto exit_free_irq; + goto exit_free_data; } led_trigger_register_simple("cir-rx", &data->rxtrigger); @@ -1046,6 +1017,7 @@ goto exit_unregister_led; } + data->dev->driver_type = RC_DRIVER_IR_RAW; data->dev->driver_name = WBCIR_NAME; data->dev->input_name = WBCIR_NAME; data->dev->input_phys = "wbcir/cir0"; @@ -1061,9 +1033,38 @@ data->dev->priv = data; data->dev->dev.parent = &device->dev; + if (!request_region(data->wbase, WAKEUP_IOMEM_LEN, DRVNAME)) { + dev_err(dev, "Region 0x%lx-0x%lx already in use!\n", + data->wbase, data->wbase + WAKEUP_IOMEM_LEN - 1); + err = -EBUSY; + goto exit_free_rc; + } + + if (!request_region(data->ebase, EHFUNC_IOMEM_LEN, DRVNAME)) { + dev_err(dev, "Region 0x%lx-0x%lx already in use!\n", + data->ebase, data->ebase + EHFUNC_IOMEM_LEN - 1); + err = -EBUSY; + goto exit_release_wbase; + } + + if (!request_region(data->sbase, SP_IOMEM_LEN, DRVNAME)) { + dev_err(dev, "Region 0x%lx-0x%lx already in use!\n", + data->sbase, data->sbase + SP_IOMEM_LEN - 1); + err = -EBUSY; + goto exit_release_ebase; + } + + err = request_irq(data->irq, wbcir_irq_handler, + IRQF_DISABLED, DRVNAME, device); + if (err) { + dev_err(dev, "Failed to claim IRQ %u\n", data->irq); + err = -EBUSY; + goto exit_release_sbase; + } + err = rc_register_device(data->dev); if (err) - goto exit_free_rc; + goto exit_free_irq; device_init_wakeup(&device->dev, 1); @@ -1071,14 +1072,6 @@ return 0; -exit_free_rc: - rc_free_device(data->dev); -exit_unregister_led: - led_classdev_unregister(&data->led); -exit_unregister_rxtrigger: - led_trigger_unregister_simple(data->rxtrigger); -exit_unregister_txtrigger: - led_trigger_unregister_simple(data->txtrigger); exit_free_irq: free_irq(data->irq, device); exit_release_sbase: @@ -1087,6 +1080,14 @@ release_region(data->ebase, EHFUNC_IOMEM_LEN); exit_release_wbase: release_region(data->wbase, WAKEUP_IOMEM_LEN); +exit_free_rc: + rc_free_device(data->dev); +exit_unregister_led: + led_classdev_unregister(&data->led); +exit_unregister_rxtrigger: + led_trigger_unregister_simple(data->rxtrigger); +exit_unregister_txtrigger: + led_trigger_unregister_simple(data->txtrigger); exit_free_data: kfree(data); pnp_set_drvdata(device, NULL); --- linux-3.2.0.orig/drivers/media/rc/nuvoton-cir.c +++ linux-3.2.0/drivers/media/rc/nuvoton-cir.c @@ -1021,24 +1021,6 @@ spin_lock_init(&nvt->nvt_lock); spin_lock_init(&nvt->tx.lock); - ret = -EBUSY; - /* now claim resources */ - if (!request_region(nvt->cir_addr, - CIR_IOREG_LENGTH, NVT_DRIVER_NAME)) - goto failure; - - if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED, - NVT_DRIVER_NAME, (void *)nvt)) - goto failure; - - if (!request_region(nvt->cir_wake_addr, - CIR_IOREG_LENGTH, NVT_DRIVER_NAME)) - goto failure; - - if (request_irq(nvt->cir_wake_irq, nvt_cir_wake_isr, IRQF_SHARED, - NVT_DRIVER_NAME, (void *)nvt)) - goto failure; - pnp_set_drvdata(pdev, nvt); nvt->pdev = pdev; @@ -1085,6 +1067,24 @@ rdev->tx_resolution = XYZ; #endif + ret = -EBUSY; + /* now claim resources */ + if (!request_region(nvt->cir_addr, + CIR_IOREG_LENGTH, NVT_DRIVER_NAME)) + goto failure; + + if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED, + NVT_DRIVER_NAME, (void *)nvt)) + goto failure; + + if (!request_region(nvt->cir_wake_addr, + CIR_IOREG_LENGTH, NVT_DRIVER_NAME)) + goto failure; + + if (request_irq(nvt->cir_wake_irq, nvt_cir_wake_isr, IRQF_SHARED, + NVT_DRIVER_NAME, (void *)nvt)) + goto failure; + ret = rc_register_device(rdev); if (ret) goto failure; --- linux-3.2.0.orig/drivers/media/rc/ene_ir.c +++ linux-3.2.0/drivers/media/rc/ene_ir.c @@ -1018,21 +1018,7 @@ spin_lock_init(&dev->hw_lock); - /* claim the resources */ - error = -EBUSY; dev->hw_io = pnp_port_start(pnp_dev, 0); - if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) { - dev->hw_io = -1; - dev->irq = -1; - goto error; - } - - dev->irq = pnp_irq(pnp_dev, 0); - if (request_irq(dev->irq, ene_isr, - IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) { - dev->irq = -1; - goto error; - } pnp_set_drvdata(pnp_dev, dev); dev->pnp_dev = pnp_dev; @@ -1086,6 +1072,21 @@ device_set_wakeup_capable(&pnp_dev->dev, true); device_set_wakeup_enable(&pnp_dev->dev, true); + /* claim the resources */ + error = -EBUSY; + if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) { + dev->hw_io = -1; + dev->irq = -1; + goto error; + } + + dev->irq = pnp_irq(pnp_dev, 0); + if (request_irq(dev->irq, ene_isr, + IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) { + dev->irq = -1; + goto error; + } + error = rc_register_device(rdev); if (error < 0) goto error; --- linux-3.2.0.orig/drivers/media/dvb/frontends/lgdt330x.c +++ linux-3.2.0/drivers/media/dvb/frontends/lgdt330x.c @@ -104,8 +104,8 @@ * then reads the data returned for (len) bytes. */ -static u8 i2c_read_demod_bytes (struct lgdt330x_state* state, - enum I2C_REG reg, u8* buf, int len) +static int i2c_read_demod_bytes(struct lgdt330x_state *state, + enum I2C_REG reg, u8 *buf, int len) { u8 wr [] = { reg }; struct i2c_msg msg [] = { @@ -118,6 +118,8 @@ ret = i2c_transfer(state->i2c, msg, 2); if (ret != 2) { printk(KERN_WARNING "lgdt330x: %s: addr 0x%02x select 0x%02x error (ret == %i)\n", __func__, state->config->demod_address, reg, ret); + if (ret >= 0) + ret = -EIO; } else { ret = 0; } --- linux-3.2.0.orig/drivers/media/dvb/frontends/drxk_hard.c +++ linux-3.2.0/drivers/media/dvb/frontends/drxk_hard.c @@ -1523,8 +1523,10 @@ dprintk(1, "\n"); if ((cmd == 0) || ((parameterLen > 0) && (parameter == NULL)) || - ((resultLen > 0) && (result == NULL))) - goto error; + ((resultLen > 0) && (result == NULL))) { + printk(KERN_ERR "drxk: Error %d on %s\n", status, __func__); + return status; + } mutex_lock(&state->mutex); --- linux-3.2.0.orig/drivers/media/dvb/mantis/mantis_dvb.c +++ linux-3.2.0/drivers/media/dvb/mantis/mantis_dvb.c @@ -248,8 +248,10 @@ err5: tasklet_kill(&mantis->tasklet); dvb_net_release(&mantis->dvbnet); - dvb_unregister_frontend(mantis->fe); - dvb_frontend_detach(mantis->fe); + if (mantis->fe) { + dvb_unregister_frontend(mantis->fe); + dvb_frontend_detach(mantis->fe); + } err4: mantis->demux.dmx.remove_frontend(&mantis->demux.dmx, &mantis->fe_mem); --- linux-3.2.0.orig/drivers/media/dvb/siano/smsusb.c +++ linux-3.2.0/drivers/media/dvb/siano/smsusb.c @@ -481,7 +481,7 @@ return 0; } -static const struct usb_device_id smsusb_id_table[] __devinitconst = { +static const struct usb_device_id smsusb_id_table[] = { { USB_DEVICE(0x187f, 0x0010), .driver_info = SMS1XXX_BOARD_SIANO_STELLAR }, { USB_DEVICE(0x187f, 0x0100), @@ -542,6 +542,10 @@ .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM }, { USB_DEVICE(0x2040, 0xc090), .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM }, + { USB_DEVICE(0x2040, 0xc0a0), + .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM }, + { USB_DEVICE(0x2040, 0xf5a0), + .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM }, { } /* Terminating entry */ }; --- linux-3.2.0.orig/drivers/media/dvb/dvb-core/dvbdev.c +++ linux-3.2.0/drivers/media/dvb/dvb-core/dvbdev.c @@ -243,6 +243,7 @@ if (minor == MAX_DVB_MINORS) { kfree(dvbdevfops); kfree(dvbdev); + up_write(&minor_rwsem); mutex_unlock(&dvbdev_register_lock); return -EINVAL; } --- linux-3.2.0.orig/drivers/media/dvb/dvb-core/dmxdev.c +++ linux-3.2.0/drivers/media/dvb/dvb-core/dmxdev.c @@ -380,10 +380,8 @@ ret = dvb_dmxdev_buffer_write(&dmxdevfilter->buffer, buffer2, buffer2_len); } - if (ret < 0) { - dvb_ringbuffer_flush(&dmxdevfilter->buffer); + if (ret < 0) dmxdevfilter->buffer.error = ret; - } if (dmxdevfilter->params.sec.flags & DMX_ONESHOT) dmxdevfilter->state = DMXDEV_STATE_DONE; spin_unlock(&dmxdevfilter->dev->lock); @@ -419,10 +417,8 @@ ret = dvb_dmxdev_buffer_write(buffer, buffer1, buffer1_len); if (ret == buffer1_len) ret = dvb_dmxdev_buffer_write(buffer, buffer2, buffer2_len); - if (ret < 0) { - dvb_ringbuffer_flush(buffer); + if (ret < 0) buffer->error = ret; - } spin_unlock(&dmxdevfilter->dev->lock); wake_up(&buffer->queue); return 0; --- linux-3.2.0.orig/drivers/media/dvb/dvb-usb/mxl111sf.c +++ linux-3.2.0/drivers/media/dvb/dvb-usb/mxl111sf.c @@ -351,15 +351,13 @@ adap_state->ep6_clockphase, 0, 0); mxl_fail(ret); +#if 0 } else { ret = mxl111sf_disable_656_port(state); mxl_fail(ret); +#endif } - mxl111sf_read_reg(state, 0x12, &tmp); - tmp &= ~0x04; - mxl111sf_write_reg(state, 0x12, tmp); - return ret; } --- linux-3.2.0.orig/drivers/media/video/v4l2-device.c +++ linux-3.2.0/drivers/media/video/v4l2-device.c @@ -159,31 +159,21 @@ sd->v4l2_dev = v4l2_dev; if (sd->internal_ops && sd->internal_ops->registered) { err = sd->internal_ops->registered(sd); - if (err) { - module_put(sd->owner); - return err; - } + if (err) + goto error_module; } /* This just returns 0 if either of the two args is NULL */ err = v4l2_ctrl_add_handler(v4l2_dev->ctrl_handler, sd->ctrl_handler); - if (err) { - if (sd->internal_ops && sd->internal_ops->unregistered) - sd->internal_ops->unregistered(sd); - module_put(sd->owner); - return err; - } + if (err) + goto error_unregister; #if defined(CONFIG_MEDIA_CONTROLLER) /* Register the entity. */ if (v4l2_dev->mdev) { err = media_device_register_entity(v4l2_dev->mdev, entity); - if (err < 0) { - if (sd->internal_ops && sd->internal_ops->unregistered) - sd->internal_ops->unregistered(sd); - module_put(sd->owner); - return err; - } + if (err < 0) + goto error_unregister; } #endif @@ -192,6 +182,14 @@ spin_unlock(&v4l2_dev->lock); return 0; + +error_unregister: + if (sd->internal_ops && sd->internal_ops->unregistered) + sd->internal_ops->unregistered(sd); +error_module: + module_put(sd->owner); + sd->v4l2_dev = NULL; + return err; } EXPORT_SYMBOL_GPL(v4l2_device_register_subdev); --- linux-3.2.0.orig/drivers/media/video/v4l2-ioctl.c +++ linux-3.2.0/drivers/media/video/v4l2-ioctl.c @@ -2226,6 +2226,10 @@ struct v4l2_ext_controls *ctrls = parg; if (ctrls->count != 0) { + if (ctrls->count > V4L2_CID_MAX_CTRLS) { + ret = -EINVAL; + break; + } *user_ptr = (void __user *)ctrls->controls; *kernel_ptr = (void *)&ctrls->controls; *array_size = sizeof(struct v4l2_ext_control) --- linux-3.2.0.orig/drivers/media/video/au0828/au0828-video.c +++ linux-3.2.0/drivers/media/video/au0828/au0828-video.c @@ -1692,14 +1692,18 @@ (AUVI_INPUT(i).audio_setup)(dev, 0); } - videobuf_streamoff(&fh->vb_vidq); - res_free(fh, AU0828_RESOURCE_VIDEO); + if (res_check(fh, AU0828_RESOURCE_VIDEO)) { + videobuf_streamoff(&fh->vb_vidq); + res_free(fh, AU0828_RESOURCE_VIDEO); + } } else if (fh->type == V4L2_BUF_TYPE_VBI_CAPTURE) { dev->vbi_timeout_running = 0; del_timer_sync(&dev->vbi_timeout); - videobuf_streamoff(&fh->vb_vbiq); - res_free(fh, AU0828_RESOURCE_VBI); + if (res_check(fh, AU0828_RESOURCE_VBI)) { + videobuf_streamoff(&fh->vb_vbiq); + res_free(fh, AU0828_RESOURCE_VBI); + } } return 0; --- linux-3.2.0.orig/drivers/media/video/gspca/spca506.c +++ linux-3.2.0/drivers/media/video/gspca/spca506.c @@ -685,7 +685,7 @@ }; /* -- module initialisation -- */ -static const struct usb_device_id device_table[] __devinitconst = { +static const struct usb_device_id device_table[] = { {USB_DEVICE(0x06e1, 0xa190)}, /*fixme: may be IntelPCCameraPro BRIDGE_SPCA505 {USB_DEVICE(0x0733, 0x0430)}, */ --- linux-3.2.0.orig/drivers/media/video/gspca/gspca.c +++ linux-3.2.0/drivers/media/video/gspca/gspca.c @@ -1697,7 +1697,7 @@ enum v4l2_buf_type buf_type) { struct gspca_dev *gspca_dev = priv; - int ret; + int i, ret; if (buf_type != V4L2_BUF_TYPE_VIDEO_CAPTURE) return -EINVAL; @@ -1728,6 +1728,8 @@ wake_up_interruptible(&gspca_dev->wq); /* empty the transfer queues */ + for (i = 0; i < gspca_dev->nframes; i++) + gspca_dev->frame[i].v4l2_buf.flags &= ~BUF_ALL_FLAGS; atomic_set(&gspca_dev->fr_q, 0); atomic_set(&gspca_dev->fr_i, 0); gspca_dev->fr_o = 0; --- linux-3.2.0.orig/drivers/media/video/gspca/kinect.c +++ linux-3.2.0/drivers/media/video/gspca/kinect.c @@ -390,6 +390,7 @@ /* -- module initialisation -- */ static const struct usb_device_id device_table[] = { {USB_DEVICE(0x045e, 0x02ae)}, + {USB_DEVICE(0x045e, 0x02bf)}, {} }; --- linux-3.2.0.orig/drivers/media/video/gspca/pac7302.c +++ linux-3.2.0/drivers/media/video/gspca/pac7302.c @@ -1197,6 +1197,8 @@ {USB_DEVICE(0x093a, 0x2629), .driver_info = FL_VFLIP}, {USB_DEVICE(0x093a, 0x262a)}, {USB_DEVICE(0x093a, 0x262c)}, + {USB_DEVICE(0x145f, 0x013c)}, + {USB_DEVICE(0x1ae7, 0x2001)}, /* SpeedLink Snappy Mic SL-6825-SBK */ {} }; MODULE_DEVICE_TABLE(usb, device_table); --- linux-3.2.0.orig/drivers/media/video/cx88/cx88-cards.c +++ linux-3.2.0/drivers/media/video/cx88/cx88-cards.c @@ -1573,8 +1573,8 @@ .name = "Pinnacle Hybrid PCTV", .tuner_type = TUNER_XC2028, .tuner_addr = 0x61, - .radio_type = TUNER_XC2028, - .radio_addr = 0x61, + .radio_type = UNSET, + .radio_addr = ADDR_UNSET, .input = { { .type = CX88_VMUX_TELEVISION, .vmux = 0, @@ -1611,8 +1611,8 @@ .name = "Leadtek TV2000 XP Global", .tuner_type = TUNER_XC2028, .tuner_addr = 0x61, - .radio_type = TUNER_XC2028, - .radio_addr = 0x61, + .radio_type = UNSET, + .radio_addr = ADDR_UNSET, .input = { { .type = CX88_VMUX_TELEVISION, .vmux = 0, @@ -2043,8 +2043,8 @@ .name = "Terratec Cinergy HT PCI MKII", .tuner_type = TUNER_XC2028, .tuner_addr = 0x61, - .radio_type = TUNER_XC2028, - .radio_addr = 0x61, + .radio_type = UNSET, + .radio_addr = ADDR_UNSET, .input = { { .type = CX88_VMUX_TELEVISION, .vmux = 0, @@ -2082,9 +2082,9 @@ [CX88_BOARD_WINFAST_DTV1800H] = { .name = "Leadtek WinFast DTV1800 Hybrid", .tuner_type = TUNER_XC2028, - .radio_type = TUNER_XC2028, + .radio_type = UNSET, .tuner_addr = 0x61, - .radio_addr = 0x61, + .radio_addr = ADDR_UNSET, /* * GPIO setting * @@ -2123,9 +2123,9 @@ [CX88_BOARD_WINFAST_DTV1800H_XC4000] = { .name = "Leadtek WinFast DTV1800 H (XC4000)", .tuner_type = TUNER_XC4000, - .radio_type = TUNER_XC4000, + .radio_type = UNSET, .tuner_addr = 0x61, - .radio_addr = 0x61, + .radio_addr = ADDR_UNSET, /* * GPIO setting * @@ -2164,9 +2164,9 @@ [CX88_BOARD_WINFAST_DTV2000H_PLUS] = { .name = "Leadtek WinFast DTV2000 H PLUS", .tuner_type = TUNER_XC4000, - .radio_type = TUNER_XC4000, + .radio_type = UNSET, .tuner_addr = 0x61, - .radio_addr = 0x61, + .radio_addr = ADDR_UNSET, /* * GPIO * 2: 1: mute audio --- linux-3.2.0.orig/drivers/media/video/cx25821/cx25821-core.c +++ linux-3.2.0/drivers/media/video/cx25821/cx25821-core.c @@ -914,9 +914,6 @@ list_add_tail(&dev->devlist, &cx25821_devlist); mutex_unlock(&cx25821_devlist_mutex); - strcpy(cx25821_boards[UNKNOWN_BOARD].name, "unknown"); - strcpy(cx25821_boards[CX25821_BOARD].name, "cx25821"); - if (dev->pci->device != 0x8210) { pr_info("%s(): Exiting. Incorrect Hardware device = 0x%02x\n", __func__, dev->pci->device); --- linux-3.2.0.orig/drivers/media/video/cx25821/cx25821.h +++ linux-3.2.0/drivers/media/video/cx25821/cx25821.h @@ -187,7 +187,7 @@ }; struct cx25821_board { - char *name; + const char *name; enum port porta; enum port portb; enum port portc; --- linux-3.2.0.orig/drivers/media/video/pvrusb2/pvrusb2-devattr.c +++ linux-3.2.0/drivers/media/video/pvrusb2/pvrusb2-devattr.c @@ -320,7 +320,17 @@ .probe_tuner = TDA829X_DONT_PROBE, }; +static struct tda18271_std_map hauppauge_tda18271_dvbt_std_map = { + .dvbt_6 = { .if_freq = 3300, .agc_mode = 3, .std = 4, + .if_lvl = 1, .rfagc_top = 0x37, }, + .dvbt_7 = { .if_freq = 3800, .agc_mode = 3, .std = 5, + .if_lvl = 1, .rfagc_top = 0x37, }, + .dvbt_8 = { .if_freq = 4300, .agc_mode = 3, .std = 6, + .if_lvl = 1, .rfagc_top = 0x37, }, +}; + static struct tda18271_config hauppauge_tda18271_dvb_config = { + .std_map = &hauppauge_tda18271_dvbt_std_map, .gate = TDA18271_GATE_ANALOG, .output_opt = TDA18271_OUTPUT_LT_OFF, }; --- linux-3.2.0.orig/drivers/media/video/uvc/uvcvideo.h +++ linux-3.2.0/drivers/media/video/uvc/uvcvideo.h @@ -113,6 +113,7 @@ /* Maximum allowed number of control mappings per device */ #define UVC_MAX_CONTROL_MAPPINGS 1024 +#define UVC_MAX_CONTROL_MENU_ENTRIES 32 /* Devices quirks */ #define UVC_QUIRK_STATUS_INTERVAL 0x00000001 --- linux-3.2.0.orig/drivers/media/video/uvc/uvc_v4l2.c +++ linux-3.2.0/drivers/media/video/uvc/uvc_v4l2.c @@ -58,6 +58,15 @@ break; case V4L2_CTRL_TYPE_MENU: + /* Prevent excessive memory consumption, as well as integer + * overflows. + */ + if (xmap->menu_count == 0 || + xmap->menu_count > UVC_MAX_CONTROL_MENU_ENTRIES) { + ret = -EINVAL; + goto done; + } + size = xmap->menu_count * sizeof(*map->menu_info); map->menu_info = kmalloc(size, GFP_KERNEL); if (map->menu_info == NULL) { @@ -680,7 +689,7 @@ break; } pin = iterm->id; - } else if (pin < selector->bNrInPins) { + } else if (index < selector->bNrInPins) { pin = selector->baSourceID[index]; list_for_each_entry(iterm, &chain->entities, chain) { if (!UVC_ENTITY_IS_ITERM(iterm)) --- linux-3.2.0.orig/drivers/media/video/cx23885/cx23885-dvb.c +++ linux-3.2.0/drivers/media/video/cx23885/cx23885-dvb.c @@ -940,6 +940,11 @@ fe = dvb_attach(xc4000_attach, fe0->dvb.frontend, &dev->i2c_bus[1].i2c_adap, &cfg); + if (!fe) { + printk(KERN_ERR "%s/2: xc4000 attach failed\n", + dev->name); + goto frontend_detach; + } } break; case CX23885_BOARD_TBS_6920: --- linux-3.2.0.orig/drivers/media/video/marvell-ccic/mmp-driver.c +++ linux-3.2.0/drivers/media/video/marvell-ccic/mmp-driver.c @@ -175,7 +175,6 @@ INIT_LIST_HEAD(&cam->devlist); mcam = &cam->mcam; - mcam->platform = MHP_Armada610; mcam->plat_power_up = mmpcam_power_up; mcam->plat_power_down = mmpcam_power_down; mcam->dev = &pdev->dev; --- linux-3.2.0.orig/drivers/media/video/s5p-fimc/fimc-capture.c +++ linux-3.2.0/drivers/media/video/s5p-fimc/fimc-capture.c @@ -1304,7 +1304,7 @@ fimc_capture_try_crop(ctx, r, crop->pad); if (crop->which == V4L2_SUBDEV_FORMAT_TRY) { - mutex_lock(&fimc->lock); + mutex_unlock(&fimc->lock); *v4l2_subdev_get_try_crop(fh, crop->pad) = *r; return 0; } --- linux-3.2.0.orig/drivers/media/video/hdpvr/hdpvr-video.c +++ linux-3.2.0/drivers/media/video/hdpvr/hdpvr-video.c @@ -283,12 +283,13 @@ hdpvr_config_call(dev, CTRL_START_STREAMING_VALUE, 0x00); + dev->status = STATUS_STREAMING; + INIT_WORK(&dev->worker, hdpvr_transmit_buffers); queue_work(dev->workqueue, &dev->worker); v4l2_dbg(MSG_BUFFER, hdpvr_debug, &dev->v4l2_dev, "streaming started\n"); - dev->status = STATUS_STREAMING; return 0; } --- linux-3.2.0.orig/drivers/media/video/omap3isp/ispccdc.c +++ linux-3.2.0/drivers/media/video/omap3isp/ispccdc.c @@ -1406,8 +1406,7 @@ static void ccdc_hs_vs_isr(struct isp_ccdc_device *ccdc) { - struct isp_pipeline *pipe = - to_isp_pipeline(&ccdc->video_out.video.entity); + struct isp_pipeline *pipe = to_isp_pipeline(&ccdc->subdev.entity); struct video_device *vdev = ccdc->subdev.devnode; struct v4l2_event event; --- linux-3.2.0.orig/drivers/media/video/omap/omap_vout.c +++ linux-3.2.0/drivers/media/video/omap/omap_vout.c @@ -206,19 +206,21 @@ struct vm_area_struct *vma; struct mm_struct *mm = current->mm; - vma = find_vma(mm, virtp); /* For kernel direct-mapped memory, take the easy way */ - if (virtp >= PAGE_OFFSET) { - physp = virt_to_phys((void *) virtp); - } else if (vma && (vma->vm_flags & VM_IO) && vma->vm_pgoff) { + if (virtp >= PAGE_OFFSET) + return virt_to_phys((void *) virtp); + + down_read(¤t->mm->mmap_sem); + vma = find_vma(mm, virtp); + if (vma && (vma->vm_flags & VM_IO) && vma->vm_pgoff) { /* this will catch, kernel-allocated, mmaped-to-usermode addresses */ physp = (vma->vm_pgoff << PAGE_SHIFT) + (virtp - vma->vm_start); + up_read(¤t->mm->mmap_sem); } else { /* otherwise, use get_user_pages() for general userland pages */ int res, nr_pages = 1; struct page *pages; - down_read(¤t->mm->mmap_sem); res = get_user_pages(current, current->mm, virtp, nr_pages, 1, 0, &pages, NULL); --- linux-3.2.0.orig/drivers/thermal/thermal_sys.c +++ linux-3.2.0/drivers/thermal/thermal_sys.c @@ -1399,6 +1399,7 @@ idr_destroy(&thermal_cdev_idr); mutex_destroy(&thermal_idr_lock); mutex_destroy(&thermal_list_lock); + return result; } result = genetlink_init(); return result; --- linux-3.2.0.orig/drivers/i2c/algos/i2c-algo-bit.c +++ linux-3.2.0/drivers/i2c/algos/i2c-algo-bit.c @@ -103,8 +103,14 @@ * chips may hold it low ("clock stretching") while they * are processing data internally. */ - if (time_after(jiffies, start + adap->timeout)) + if (time_after(jiffies, start + adap->timeout)) { + /* Test one last time, as we may have been preempted + * between last check and timeout test. + */ + if (getscl(adap)) + break; return -ETIMEDOUT; + } cond_resched(); } #ifdef DEBUG --- linux-3.2.0.orig/drivers/i2c/busses/i2c-omap.c +++ linux-3.2.0/drivers/i2c/busses/i2c-omap.c @@ -235,7 +235,7 @@ [OMAP_I2C_BUF_REG] = 0x94, [OMAP_I2C_CNT_REG] = 0x98, [OMAP_I2C_DATA_REG] = 0x9c, - [OMAP_I2C_SYSC_REG] = 0x20, + [OMAP_I2C_SYSC_REG] = 0x10, [OMAP_I2C_CON_REG] = 0xa4, [OMAP_I2C_OA_REG] = 0xa8, [OMAP_I2C_SA_REG] = 0xac, --- linux-3.2.0.orig/drivers/i2c/busses/Kconfig +++ linux-3.2.0/drivers/i2c/busses/Kconfig @@ -103,6 +103,8 @@ Patsburg (PCH) DH89xxCC (PCH) Panther Point (PCH) + Lynx Point (PCH) + Lynx Point-LP (PCH) This driver can also be built as a module. If so, the module will be called i2c-i801. @@ -135,6 +137,7 @@ ATI SB700 ATI SB800 AMD Hudson-2 + AMD CZ Serverworks OSB4 Serverworks CSB5 Serverworks CSB6 @@ -349,9 +352,13 @@ devices such as DaVinci NIC. For details please see http://www.ti.com/davinci +config I2C_DESIGNWARE_CORE + tristate + config I2C_DESIGNWARE_PLATFORM tristate "Synopsys DesignWare Platfrom" depends on HAVE_CLK + select I2C_DESIGNWARE_CORE help If you say yes to this option, support will be included for the Synopsys DesignWare I2C adapter. Only master mode is supported. @@ -362,6 +369,7 @@ config I2C_DESIGNWARE_PCI tristate "Synopsys DesignWare PCI" depends on PCI + select I2C_DESIGNWARE_CORE help If you say yes to this option, support will be included for the Synopsys DesignWare I2C adapter. Only master mode is supported. --- linux-3.2.0.orig/drivers/i2c/busses/i2c-pnx.c +++ linux-3.2.0/drivers/i2c/busses/i2c-pnx.c @@ -546,8 +546,7 @@ { struct i2c_pnx_algo_data *alg_data = platform_get_drvdata(pdev); - /* FIXME: shouldn't this be clk_disable? */ - clk_enable(alg_data->clk); + clk_disable(alg_data->clk); return 0; } --- linux-3.2.0.orig/drivers/i2c/busses/i2c-nforce2.c +++ linux-3.2.0/drivers/i2c/busses/i2c-nforce2.c @@ -356,7 +356,7 @@ error = acpi_check_region(smbus->base, smbus->size, nforce2_driver.name); if (error) - return -1; + return error; if (!request_region(smbus->base, smbus->size, nforce2_driver.name)) { dev_err(&smbus->adapter.dev, "Error requesting region %02x .. %02X for %s\n", --- linux-3.2.0.orig/drivers/i2c/busses/i2c-sis5595.c +++ linux-3.2.0/drivers/i2c/busses/i2c-sis5595.c @@ -147,7 +147,7 @@ u16 a; u8 val; int *i; - int retval = -ENODEV; + int retval; /* Look for imposters */ for (i = blacklist; *i != 0; i++) { @@ -223,7 +223,7 @@ error: release_region(sis5595_base + SMB_INDEX, 2); - return retval; + return -ENODEV; } static int sis5595_transaction(struct i2c_adapter *adap) --- linux-3.2.0.orig/drivers/i2c/busses/i2c-i801.c +++ linux-3.2.0/drivers/i2c/busses/i2c-i801.c @@ -51,6 +51,8 @@ Patsburg (PCH) IDF 0x1d72 32 hard yes yes yes DH89xxCC (PCH) 0x2330 32 hard yes yes yes Panther Point (PCH) 0x1e22 32 hard yes yes yes + Lynx Point (PCH) 0x8c22 32 hard yes yes yes + Lynx Point-LP (PCH) 0x9c22 32 hard yes yes yes Features supported by this driver: Software PEC no @@ -145,6 +147,8 @@ #define PCI_DEVICE_ID_INTEL_PANTHERPOINT_SMBUS 0x1e22 #define PCI_DEVICE_ID_INTEL_DH89XXCC_SMBUS 0x2330 #define PCI_DEVICE_ID_INTEL_5_3400_SERIES_SMBUS 0x3b30 +#define PCI_DEVICE_ID_INTEL_LYNXPOINT_SMBUS 0x8c22 +#define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_SMBUS 0x9c22 struct i801_priv { struct i2c_adapter adapter; @@ -633,6 +637,8 @@ { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF2) }, { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_DH89XXCC_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PANTHERPOINT_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LYNXPOINT_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_SMBUS) }, { 0, } }; --- linux-3.2.0.orig/drivers/i2c/busses/i2c-sis630.c +++ linux-3.2.0/drivers/i2c/busses/i2c-sis630.c @@ -393,7 +393,7 @@ { unsigned char b; struct pci_dev *dummy = NULL; - int retval = -ENODEV, i; + int retval, i; /* check for supported SiS devices */ for (i=0; supported[i] > 0 ; i++) { @@ -418,18 +418,21 @@ */ if (pci_read_config_byte(sis630_dev, SIS630_BIOS_CTL_REG,&b)) { dev_err(&sis630_dev->dev, "Error: Can't read bios ctl reg\n"); + retval = -ENODEV; goto exit; } /* if ACPI already enabled , do nothing */ if (!(b & 0x80) && pci_write_config_byte(sis630_dev, SIS630_BIOS_CTL_REG, b | 0x80)) { dev_err(&sis630_dev->dev, "Error: Can't enable ACPI\n"); + retval = -ENODEV; goto exit; } /* Determine the ACPI base address */ if (pci_read_config_word(sis630_dev,SIS630_ACPI_BASE_REG,&acpi_base)) { dev_err(&sis630_dev->dev, "Error: Can't determine ACPI base address\n"); + retval = -ENODEV; goto exit; } @@ -445,6 +448,7 @@ sis630_driver.name)) { dev_err(&sis630_dev->dev, "SMBus registers 0x%04x-0x%04x already " "in use!\n", acpi_base + SMB_STS, acpi_base + SMB_SAA); + retval = -EBUSY; goto exit; } --- linux-3.2.0.orig/drivers/i2c/busses/Makefile +++ linux-3.2.0/drivers/i2c/busses/Makefile @@ -33,10 +33,11 @@ obj-$(CONFIG_I2C_BLACKFIN_TWI) += i2c-bfin-twi.o obj-$(CONFIG_I2C_CPM) += i2c-cpm.o obj-$(CONFIG_I2C_DAVINCI) += i2c-davinci.o +obj-$(CONFIG_I2C_DESIGNWARE_CORE) += i2c-designware-core.o obj-$(CONFIG_I2C_DESIGNWARE_PLATFORM) += i2c-designware-platform.o -i2c-designware-platform-objs := i2c-designware-platdrv.o i2c-designware-core.o +i2c-designware-platform-objs := i2c-designware-platdrv.o obj-$(CONFIG_I2C_DESIGNWARE_PCI) += i2c-designware-pci.o -i2c-designware-pci-objs := i2c-designware-pcidrv.o i2c-designware-core.o +i2c-designware-pci-objs := i2c-designware-pcidrv.o obj-$(CONFIG_I2C_GPIO) += i2c-gpio.o obj-$(CONFIG_I2C_HIGHLANDER) += i2c-highlander.o obj-$(CONFIG_I2C_IBM_IIC) += i2c-ibm_iic.o --- linux-3.2.0.orig/drivers/i2c/busses/i2c-viapro.c +++ linux-3.2.0/drivers/i2c/busses/i2c-viapro.c @@ -324,7 +324,7 @@ const struct pci_device_id *id) { unsigned char temp; - int error = -ENODEV; + int error; /* Determine the address of the SMBus areas */ if (force_addr) { @@ -390,6 +390,7 @@ dev_err(&pdev->dev, "SMBUS: Error: Host SMBus " "controller not enabled! - upgrade BIOS or " "use force=1\n"); + error = -ENODEV; goto release_region; } } @@ -422,9 +423,11 @@ "SMBus Via Pro adapter at %04x", vt596_smba); vt596_pdev = pci_dev_get(pdev); - if (i2c_add_adapter(&vt596_adapter)) { + error = i2c_add_adapter(&vt596_adapter); + if (error) { pci_dev_put(vt596_pdev); vt596_pdev = NULL; + goto release_region; } /* Always return failure here. This is to allow other drivers to bind --- linux-3.2.0.orig/drivers/i2c/busses/i2c-piix4.c +++ linux-3.2.0/drivers/i2c/busses/i2c-piix4.c @@ -22,7 +22,7 @@ Intel PIIX4, 440MX Serverworks OSB4, CSB5, CSB6, HT-1000, HT-1100 ATI IXP200, IXP300, IXP400, SB600, SB700, SB800 - AMD Hudson-2 + AMD Hudson-2, CZ SMSC Victory66 Note: we assume there can only be one device, with one SMBus interface. @@ -481,6 +481,7 @@ { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_HUDSON2_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, 0x790b) }, { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_OSB4) }, { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS, --- linux-3.2.0.orig/drivers/i2c/busses/i2c-tegra.c +++ linux-3.2.0/drivers/i2c/busses/i2c-tegra.c @@ -341,7 +341,11 @@ u32 val; int err = 0; - clk_enable(i2c_dev->clk); + err = clk_enable(i2c_dev->clk); + if (err < 0) { + dev_err(i2c_dev->dev, "Clock enable failed %d\n", err); + return err; + } tegra_periph_reset_assert(i2c_dev->clk); udelay(2); @@ -401,8 +405,6 @@ disable_irq_nosync(i2c_dev->irq); i2c_dev->irq_disabled = 1; } - - complete(&i2c_dev->msg_complete); goto err; } @@ -411,7 +413,6 @@ i2c_dev->msg_err |= I2C_ERR_NO_ACK; if (status & I2C_INT_ARBITRATION_LOST) i2c_dev->msg_err |= I2C_ERR_ARBITRATION_LOST; - complete(&i2c_dev->msg_complete); goto err; } @@ -429,14 +430,14 @@ tegra_i2c_mask_irq(i2c_dev, I2C_INT_TX_FIFO_DATA_REQ); } + i2c_writel(i2c_dev, status, I2C_INT_STATUS); + if (i2c_dev->is_dvc) + dvc_writel(i2c_dev, DVC_STATUS_I2C_DONE_INTR, DVC_STATUS); + if (status & I2C_INT_PACKET_XFER_COMPLETE) { BUG_ON(i2c_dev->msg_buf_remaining); complete(&i2c_dev->msg_complete); } - - i2c_writel(i2c_dev, status, I2C_INT_STATUS); - if (i2c_dev->is_dvc) - dvc_writel(i2c_dev, DVC_STATUS_I2C_DONE_INTR, DVC_STATUS); return IRQ_HANDLED; err: /* An error occurred, mask all interrupts */ @@ -446,6 +447,8 @@ i2c_writel(i2c_dev, status, I2C_INT_STATUS); if (i2c_dev->is_dvc) dvc_writel(i2c_dev, DVC_STATUS_I2C_DONE_INTR, DVC_STATUS); + + complete(&i2c_dev->msg_complete); return IRQ_HANDLED; } @@ -537,7 +540,12 @@ if (i2c_dev->is_suspended) return -EBUSY; - clk_enable(i2c_dev->clk); + ret = clk_enable(i2c_dev->clk); + if (ret < 0) { + dev_err(i2c_dev->dev, "Clock enable failed %d\n", ret); + return ret; + } + for (i = 0; i < num; i++) { int stop = (i == (num - 1)) ? 1 : 0; ret = tegra_i2c_xfer_msg(i2c_dev, &msgs[i], stop); --- linux-3.2.0.orig/drivers/i2c/busses/i2c-ali1535.c +++ linux-3.2.0/drivers/i2c/busses/i2c-ali1535.c @@ -140,7 +140,7 @@ defined to make the transition easier. */ static int __devinit ali1535_setup(struct pci_dev *dev) { - int retval = -ENODEV; + int retval; unsigned char temp; /* Check the following things: @@ -155,6 +155,7 @@ if (ali1535_smba == 0) { dev_warn(&dev->dev, "ALI1535_smb region uninitialized - upgrade BIOS?\n"); + retval = -ENODEV; goto exit; } @@ -167,6 +168,7 @@ ali1535_driver.name)) { dev_err(&dev->dev, "ALI1535_smb region 0x%x already in use!\n", ali1535_smba); + retval = -EBUSY; goto exit; } @@ -174,6 +176,7 @@ pci_read_config_byte(dev, SMBCFG, &temp); if ((temp & ALI1535_SMBIO_EN) == 0) { dev_err(&dev->dev, "SMB device not enabled - upgrade BIOS?\n"); + retval = -ENODEV; goto exit_free; } @@ -181,6 +184,7 @@ pci_read_config_byte(dev, SMBHSTCFG, &temp); if ((temp & 1) == 0) { dev_err(&dev->dev, "SMBus controller not enabled - upgrade BIOS?\n"); + retval = -ENODEV; goto exit_free; } @@ -198,12 +202,11 @@ dev_dbg(&dev->dev, "SMBREV = 0x%X\n", temp); dev_dbg(&dev->dev, "ALI1535_smba = 0x%X\n", ali1535_smba); - retval = 0; -exit: - return retval; + return 0; exit_free: release_region(ali1535_smba, ALI1535_SMB_IOSIZE); +exit: return retval; } --- linux-3.2.0.orig/drivers/i2c/busses/i2c-mxs.c +++ linux-3.2.0/drivers/i2c/busses/i2c-mxs.c @@ -72,6 +72,7 @@ #define MXS_I2C_QUEUESTAT (0x70) #define MXS_I2C_QUEUESTAT_RD_QUEUE_EMPTY 0x00002000 +#define MXS_I2C_QUEUESTAT_WRITE_QUEUE_CNT_MASK 0x0000001F #define MXS_I2C_QUEUECMD (0x80) @@ -219,14 +220,14 @@ int ret; int flags; - init_completion(&i2c->cmd_complete); - dev_dbg(i2c->dev, "addr: 0x%04x, len: %d, flags: 0x%x, stop: %d\n", msg->addr, msg->len, msg->flags, stop); if (msg->len == 0) return -EINVAL; + init_completion(&i2c->cmd_complete); + flags = stop ? MXS_I2C_CTRL0_POST_SEND_STOP : 0; if (msg->flags & I2C_M_RD) @@ -286,6 +287,7 @@ { struct mxs_i2c_dev *i2c = dev_id; u32 stat = readl(i2c->regs + MXS_I2C_CTRL1) & MXS_I2C_IRQ_MASK; + bool is_last_cmd; if (!stat) return IRQ_NONE; @@ -300,9 +302,14 @@ else i2c->cmd_err = 0; - complete(&i2c->cmd_complete); + is_last_cmd = (readl(i2c->regs + MXS_I2C_QUEUESTAT) & + MXS_I2C_QUEUESTAT_WRITE_QUEUE_CNT_MASK) == 0; + + if (is_last_cmd || i2c->cmd_err) + complete(&i2c->cmd_complete); writel(stat, i2c->regs + MXS_I2C_CTRL1_CLR); + return IRQ_HANDLED; } --- linux-3.2.0.orig/drivers/i2c/busses/i2c-xiic.c +++ linux-3.2.0/drivers/i2c/busses/i2c-xiic.c @@ -311,10 +311,8 @@ /* last message in transfer -> STOP */ data |= XIIC_TX_DYN_STOP_MASK; dev_dbg(i2c->adap.dev.parent, "%s TX STOP\n", __func__); - - xiic_setreg16(i2c, XIIC_DTR_REG_OFFSET, data); - } else - xiic_setreg8(i2c, XIIC_DTR_REG_OFFSET, data); + } + xiic_setreg16(i2c, XIIC_DTR_REG_OFFSET, data); } } --- linux-3.2.0.orig/drivers/i2c/busses/i2c-davinci.c +++ linux-3.2.0/drivers/i2c/busses/i2c-davinci.c @@ -755,7 +755,7 @@ dev->clk = NULL; davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, 0); - free_irq(IRQ_I2C, dev); + free_irq(dev->irq, dev); iounmap(dev->base); kfree(dev); --- linux-3.2.0.orig/drivers/i2c/busses/i2c-eg20t.c +++ linux-3.2.0/drivers/i2c/busses/i2c-eg20t.c @@ -243,7 +243,7 @@ if (pch_clk > PCH_MAX_CLK) pch_clk = 62500; - pch_i2cbc = (pch_clk + (pch_i2c_speed * 4)) / pch_i2c_speed * 8; + pch_i2cbc = (pch_clk + (pch_i2c_speed * 4)) / (pch_i2c_speed * 8); /* Set transfer speed in I2CBC */ iowrite32(pch_i2cbc, p + PCH_I2CBC); @@ -315,7 +315,7 @@ { long ret; ret = wait_event_timeout(pch_event, - (adap->pch_event_flag != 0), msecs_to_jiffies(50)); + (adap->pch_event_flag != 0), msecs_to_jiffies(1000)); if (ret == 0) { pch_err(adap, "timeout: %x\n", adap->pch_event_flag); --- linux-3.2.0.orig/drivers/i2c/busses/i2c-designware-core.c +++ linux-3.2.0/drivers/i2c/busses/i2c-designware-core.c @@ -25,6 +25,7 @@ * ---------------------------------------------------------------------------- * */ +#include #include #include #include @@ -305,6 +306,7 @@ dw_writel(dev, dev->master_cfg , DW_IC_CON); return 0; } +EXPORT_SYMBOL_GPL(i2c_dw_init); /* * Waiting for bus not busy @@ -347,7 +349,8 @@ /* Enable the adapter */ dw_writel(dev, 1, DW_IC_ENABLE); - /* Enable interrupts */ + /* Clear and enable interrupts */ + i2c_dw_clear_int(dev); dw_writel(dev, DW_IC_INTR_DEFAULT_MASK, DW_IC_INTR_MASK); } @@ -557,12 +560,14 @@ return ret; } +EXPORT_SYMBOL_GPL(i2c_dw_xfer); u32 i2c_dw_func(struct i2c_adapter *adap) { struct dw_i2c_dev *dev = i2c_get_adapdata(adap); return dev->functionality; } +EXPORT_SYMBOL_GPL(i2c_dw_func); static u32 i2c_dw_read_clear_intrbits(struct dw_i2c_dev *dev) { @@ -667,17 +672,20 @@ return IRQ_HANDLED; } +EXPORT_SYMBOL_GPL(i2c_dw_isr); void i2c_dw_enable(struct dw_i2c_dev *dev) { /* Enable the adapter */ dw_writel(dev, 1, DW_IC_ENABLE); } +EXPORT_SYMBOL_GPL(i2c_dw_enable); u32 i2c_dw_is_enabled(struct dw_i2c_dev *dev) { return dw_readl(dev, DW_IC_ENABLE); } +EXPORT_SYMBOL_GPL(i2c_dw_is_enabled); void i2c_dw_disable(struct dw_i2c_dev *dev) { @@ -688,18 +696,22 @@ dw_writel(dev, 0, DW_IC_INTR_MASK); dw_readl(dev, DW_IC_CLR_INTR); } +EXPORT_SYMBOL_GPL(i2c_dw_disable); void i2c_dw_clear_int(struct dw_i2c_dev *dev) { dw_readl(dev, DW_IC_CLR_INTR); } +EXPORT_SYMBOL_GPL(i2c_dw_clear_int); void i2c_dw_disable_int(struct dw_i2c_dev *dev) { dw_writel(dev, 0, DW_IC_INTR_MASK); } +EXPORT_SYMBOL_GPL(i2c_dw_disable_int); u32 i2c_dw_read_comp_param(struct dw_i2c_dev *dev) { return dw_readl(dev, DW_IC_COMP_PARAM_1); } +EXPORT_SYMBOL_GPL(i2c_dw_read_comp_param); --- linux-3.2.0.orig/drivers/ide/ide-floppy_ioctl.c +++ linux-3.2.0/drivers/ide/ide-floppy_ioctl.c @@ -292,8 +292,7 @@ * and CDROM_SEND_PACKET (legacy) ioctls */ if (cmd != CDROM_SEND_PACKET && cmd != SCSI_IOCTL_SEND_COMMAND) - err = scsi_cmd_ioctl(bdev->bd_disk->queue, bdev->bd_disk, - mode, cmd, argp); + err = scsi_cmd_blk_ioctl(bdev, mode, cmd, argp); if (err == -ENOTTY) err = generic_ide_ioctl(drive, bdev, cmd, arg); --- linux-3.2.0.orig/drivers/idle/intel_idle.c +++ linux-3.2.0/drivers/idle/intel_idle.c @@ -163,6 +163,38 @@ .enter = &intel_idle }, }; +static struct cpuidle_state ivb_cstates[MWAIT_MAX_NUM_CSTATES] = { + { /* MWAIT C0 */ }, + { /* MWAIT C1 */ + .name = "C1-IVB", + .desc = "MWAIT 0x00", + .flags = CPUIDLE_FLAG_TIME_VALID, + .exit_latency = 1, + .target_residency = 1, + .enter = &intel_idle }, + { /* MWAIT C2 */ + .name = "C3-IVB", + .desc = "MWAIT 0x10", + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency = 59, + .target_residency = 156, + .enter = &intel_idle }, + { /* MWAIT C3 */ + .name = "C6-IVB", + .desc = "MWAIT 0x20", + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency = 80, + .target_residency = 300, + .enter = &intel_idle }, + { /* MWAIT C4 */ + .name = "C7-IVB", + .desc = "MWAIT 0x30", + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency = 87, + .target_residency = 300, + .enter = &intel_idle }, +}; + static struct cpuidle_state atom_cstates[MWAIT_MAX_NUM_CSTATES] = { { /* MWAIT C0 */ }, { /* MWAIT C1 */ @@ -348,7 +380,8 @@ cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &mwait_substates); if (!(ecx & CPUID5_ECX_EXTENSIONS_SUPPORTED) || - !(ecx & CPUID5_ECX_INTERRUPT_BREAK)) + !(ecx & CPUID5_ECX_INTERRUPT_BREAK) || + !mwait_substates) return -ENODEV; pr_debug(PREFIX "MWAIT substates: 0x%x\n", mwait_substates); @@ -385,6 +418,11 @@ cpuidle_state_table = snb_cstates; break; + case 0x3A: /* IVB */ + case 0x3E: /* IVB Xeon */ + cpuidle_state_table = ivb_cstates; + break; + default: pr_debug(PREFIX "does not run on family %d model %d\n", boot_cpu_data.x86, boot_cpu_data.x86_model); @@ -393,10 +431,8 @@ if (boot_cpu_has(X86_FEATURE_ARAT)) /* Always Reliable APIC Timer */ lapic_timer_reliable_states = LAPIC_TIMER_ALWAYS_RELIABLE; - else { - smp_call_function(__setup_broadcast_timer, (void *)true, 1); - register_cpu_notifier(&setup_broadcast_notifier); - } + else + on_each_cpu(__setup_broadcast_timer, (void *)true, 1); pr_debug(PREFIX "v" INTEL_IDLE_VERSION " model 0x%X\n", boot_cpu_data.x86_model); @@ -471,7 +507,7 @@ } if (auto_demotion_disable_flags) - smp_call_function(auto_demotion_disable, NULL, 1); + on_each_cpu(auto_demotion_disable, NULL, 1); return 0; } @@ -559,6 +595,9 @@ return retval; } + if (lapic_timer_reliable_states != LAPIC_TIMER_ALWAYS_RELIABLE) + register_cpu_notifier(&setup_broadcast_notifier); + return 0; } @@ -568,7 +607,7 @@ cpuidle_unregister_driver(&intel_idle_driver); if (lapic_timer_reliable_states != LAPIC_TIMER_ALWAYS_RELIABLE) { - smp_call_function(__setup_broadcast_timer, (void *)false, 1); + on_each_cpu(__setup_broadcast_timer, (void *)false, 1); unregister_cpu_notifier(&setup_broadcast_notifier); } --- linux-3.2.0.orig/drivers/pcmcia/pxa2xx_sharpsl.c +++ linux-3.2.0/drivers/pcmcia/pxa2xx_sharpsl.c @@ -219,7 +219,7 @@ sharpsl_pcmcia_init_reset(skt); } -static struct pcmcia_low_level sharpsl_pcmcia_ops __initdata = { +static struct pcmcia_low_level sharpsl_pcmcia_ops = { .owner = THIS_MODULE, .hw_init = sharpsl_pcmcia_hw_init, .hw_shutdown = sharpsl_pcmcia_hw_shutdown, --- linux-3.2.0.orig/drivers/pcmcia/vrc4171_card.c +++ linux-3.2.0/drivers/pcmcia/vrc4171_card.c @@ -246,6 +246,7 @@ socket = &vrc4171_sockets[slot]; socket->csc_irq = search_nonuse_irq(); socket->io_irq = search_nonuse_irq(); + spin_lock_init(&socket->lock); return 0; } --- linux-3.2.0.orig/drivers/pcmcia/ds.c +++ linux-3.2.0/drivers/pcmcia/ds.c @@ -1269,10 +1269,8 @@ static int pcmcia_bus_early_resume(struct pcmcia_socket *skt) { - if (!verify_cis_cache(skt)) { - pcmcia_put_socket(skt); + if (!verify_cis_cache(skt)) return 0; - } dev_dbg(&skt->dev, "cis mismatch - different card\n"); --- linux-3.2.0.orig/drivers/rapidio/devices/tsi721.c +++ linux-3.2.0/drivers/rapidio/devices/tsi721.c @@ -410,13 +410,14 @@ */ mport = priv->mport; - wr_ptr = ioread32(priv->regs + TSI721_IDQ_WP(IDB_QUEUE)); - rd_ptr = ioread32(priv->regs + TSI721_IDQ_RP(IDB_QUEUE)); + wr_ptr = ioread32(priv->regs + TSI721_IDQ_WP(IDB_QUEUE)) % IDB_QSIZE; + rd_ptr = ioread32(priv->regs + TSI721_IDQ_RP(IDB_QUEUE)) % IDB_QSIZE; while (wr_ptr != rd_ptr) { idb_entry = (u64 *)(priv->idb_base + (TSI721_IDB_ENTRY_SIZE * rd_ptr)); rd_ptr++; + rd_ptr %= IDB_QSIZE; idb.msg = *idb_entry; *idb_entry = 0; @@ -438,6 +439,9 @@ " info %4.4x\n", DBELL_SID(idb.bytes), DBELL_TID(idb.bytes), DBELL_INF(idb.bytes)); } + + wr_ptr = ioread32(priv->regs + + TSI721_IDQ_WP(IDB_QUEUE)) % IDB_QSIZE; } iowrite32(rd_ptr & (IDB_QSIZE - 1), @@ -448,6 +452,10 @@ regval |= TSI721_SR_CHINT_IDBQRCV; iowrite32(regval, priv->regs + TSI721_SR_CHINTE(IDB_QUEUE)); + + wr_ptr = ioread32(priv->regs + TSI721_IDQ_WP(IDB_QUEUE)) % IDB_QSIZE; + if (wr_ptr != rd_ptr) + schedule_work(&priv->idb_work); } /** @@ -467,6 +475,10 @@ u32 intval; u32 ch_inte; + /* For MSI mode disable all device-level interrupts */ + if (priv->flags & TSI721_USING_MSI) + iowrite32(0, priv->regs + TSI721_DEV_INTE); + dev_int = ioread32(priv->regs + TSI721_DEV_INT); if (!dev_int) return IRQ_NONE; @@ -540,6 +552,13 @@ tsi721_pw_handler(mport); } + /* For MSI mode re-enable device-level interrupts */ + if (priv->flags & TSI721_USING_MSI) { + dev_int = TSI721_DEV_INT_SR2PC_CH | TSI721_DEV_INT_SRIO | + TSI721_DEV_INT_SMSG_CH; + iowrite32(dev_int, priv->regs + TSI721_DEV_INTE); + } + return IRQ_HANDLED; } @@ -2154,7 +2173,7 @@ const struct pci_device_id *id) { struct tsi721_device *priv; - int i, cap; + int cap; int err; u32 regval; @@ -2174,12 +2193,15 @@ priv->pdev = pdev; #ifdef DEBUG + { + int i; for (i = 0; i <= PCI_STD_RESOURCE_END; i++) { dev_dbg(&pdev->dev, "res[%d] @ 0x%llx (0x%lx, 0x%lx)\n", i, (unsigned long long)pci_resource_start(pdev, i), (unsigned long)pci_resource_len(pdev, i), pci_resource_flags(pdev, i)); } + } #endif /* * Verify BAR configuration --- linux-3.2.0.orig/drivers/rapidio/devices/tsi721.h +++ linux-3.2.0/drivers/rapidio/devices/tsi721.h @@ -118,34 +118,34 @@ #define TSI721_IDB_ENTRY_SIZE 64 -#define TSI721_IDQ_CTL(x) (0x20000 + (x) * 1000) +#define TSI721_IDQ_CTL(x) (0x20000 + (x) * 0x1000) #define TSI721_IDQ_SUSPEND 0x00000002 #define TSI721_IDQ_INIT 0x00000001 -#define TSI721_IDQ_STS(x) (0x20004 + (x) * 1000) +#define TSI721_IDQ_STS(x) (0x20004 + (x) * 0x1000) #define TSI721_IDQ_RUN 0x00200000 -#define TSI721_IDQ_MASK(x) (0x20008 + (x) * 1000) +#define TSI721_IDQ_MASK(x) (0x20008 + (x) * 0x1000) #define TSI721_IDQ_MASK_MASK 0xffff0000 #define TSI721_IDQ_MASK_PATT 0x0000ffff -#define TSI721_IDQ_RP(x) (0x2000c + (x) * 1000) +#define TSI721_IDQ_RP(x) (0x2000c + (x) * 0x1000) #define TSI721_IDQ_RP_PTR 0x0007ffff -#define TSI721_IDQ_WP(x) (0x20010 + (x) * 1000) +#define TSI721_IDQ_WP(x) (0x20010 + (x) * 0x1000) #define TSI721_IDQ_WP_PTR 0x0007ffff -#define TSI721_IDQ_BASEL(x) (0x20014 + (x) * 1000) +#define TSI721_IDQ_BASEL(x) (0x20014 + (x) * 0x1000) #define TSI721_IDQ_BASEL_ADDR 0xffffffc0 -#define TSI721_IDQ_BASEU(x) (0x20018 + (x) * 1000) -#define TSI721_IDQ_SIZE(x) (0x2001c + (x) * 1000) +#define TSI721_IDQ_BASEU(x) (0x20018 + (x) * 0x1000) +#define TSI721_IDQ_SIZE(x) (0x2001c + (x) * 0x1000) #define TSI721_IDQ_SIZE_VAL(size) (__fls(size) - 4) #define TSI721_IDQ_SIZE_MIN 512 #define TSI721_IDQ_SIZE_MAX (512 * 1024) -#define TSI721_SR_CHINT(x) (0x20040 + (x) * 1000) -#define TSI721_SR_CHINTE(x) (0x20044 + (x) * 1000) -#define TSI721_SR_CHINTSET(x) (0x20048 + (x) * 1000) +#define TSI721_SR_CHINT(x) (0x20040 + (x) * 0x1000) +#define TSI721_SR_CHINTE(x) (0x20044 + (x) * 0x1000) +#define TSI721_SR_CHINTSET(x) (0x20048 + (x) * 0x1000) #define TSI721_SR_CHINT_ODBOK 0x00000020 #define TSI721_SR_CHINT_IDBQRCV 0x00000010 #define TSI721_SR_CHINT_SUSP 0x00000008 @@ -156,7 +156,7 @@ #define TSI721_IBWIN_NUM 8 -#define TSI721_IBWINLB(x) (0x29000 + (x) * 20) +#define TSI721_IBWINLB(x) (0x29000 + (x) * 0x20) #define TSI721_IBWINLB_BA 0xfffff000 #define TSI721_IBWINLB_WEN 0x00000001 @@ -187,13 +187,13 @@ */ #define TSI721_OBWIN_NUM TSI721_PC2SR_WINS -#define TSI721_OBWINLB(x) (0x40000 + (x) * 20) +#define TSI721_OBWINLB(x) (0x40000 + (x) * 0x20) #define TSI721_OBWINLB_BA 0xffff8000 #define TSI721_OBWINLB_WEN 0x00000001 -#define TSI721_OBWINUB(x) (0x40004 + (x) * 20) +#define TSI721_OBWINUB(x) (0x40004 + (x) * 0x20) -#define TSI721_OBWINSZ(x) (0x40008 + (x) * 20) +#define TSI721_OBWINSZ(x) (0x40008 + (x) * 0x20) #define TSI721_OBWINSZ_SIZE 0x00001f00 #define TSI721_OBWIN_SIZE(size) (__fls(size) - 15) --- linux-3.2.0.orig/drivers/w1/w1.c +++ linux-3.2.0/drivers/w1/w1.c @@ -918,7 +918,8 @@ tmp64 = (triplet_ret >> 2); rn |= (tmp64 << i); - if (kthread_should_stop()) { + /* ensure we're called from kthread and not by netlink callback */ + if (!dev->priv && kthread_should_stop()) { dev_dbg(&dev->dev, "Abort w1_search\n"); return; } --- linux-3.2.0.orig/drivers/edac/i7300_edac.c +++ linux-3.2.0/drivers/edac/i7300_edac.c @@ -215,8 +215,8 @@ [0] = "Memory Write error on non-redundant retry or " "FBD configuration Write error on retry", }; -#define GET_FBD_FAT_IDX(fbderr) (fbderr & (3 << 28)) -#define FERR_FAT_FBD_ERR_MASK ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3)) +#define GET_FBD_FAT_IDX(fbderr) (((fbderr) >> 28) & 3) +#define FERR_FAT_FBD_ERR_MASK ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 22)) #define FERR_NF_FBD 0xa0 static const char *ferr_nf_fbd_name[] = { @@ -243,7 +243,7 @@ [1] = "Aliased Uncorrectable Non-Mirrored Demand Data ECC", [0] = "Uncorrectable Data ECC on Replay", }; -#define GET_FBD_NF_IDX(fbderr) (fbderr & (3 << 28)) +#define GET_FBD_NF_IDX(fbderr) (((fbderr) >> 28) & 3) #define FERR_NF_FBD_ERR_MASK ((1 << 24) | (1 << 23) | (1 << 22) | (1 << 21) |\ (1 << 18) | (1 << 17) | (1 << 16) | (1 << 15) |\ (1 << 14) | (1 << 13) | (1 << 11) | (1 << 10) |\ @@ -485,7 +485,7 @@ errnum = find_first_bit(&errors, ARRAY_SIZE(ferr_nf_fbd_name)); specific = GET_ERR_FROM_TABLE(ferr_nf_fbd_name, errnum); - branch = (GET_FBD_FAT_IDX(error_reg) == 2) ? 1 : 0; + branch = (GET_FBD_NF_IDX(error_reg) == 2) ? 1 : 0; pci_read_config_dword(pvt->pci_dev_16_1_fsb_addr_map, REDMEMA, &syndrome); --- linux-3.2.0.orig/drivers/edac/amd64_edac.c +++ linux-3.2.0/drivers/edac/amd64_edac.c @@ -170,8 +170,11 @@ * memory controller and apply to register. Search for the first * bandwidth entry that is greater or equal than the setting requested * and program that. If at last entry, turn off DRAM scrubbing. + * + * If no suitable bandwidth is found, turn off DRAM scrubbing entirely + * by falling back to the last element in scrubrates[]. */ - for (i = 0; i < ARRAY_SIZE(scrubrates); i++) { + for (i = 0; i < ARRAY_SIZE(scrubrates) - 1; i++) { /* * skip scrub rates which aren't recommended * (see F10 BKDG, F3x58) @@ -181,12 +184,6 @@ if (scrubrates[i].bandwidth <= new_bw) break; - - /* - * if no suitable bandwidth found, turn off DRAM scrubbing - * entirely by falling back to the last element in the - * scrubrates array. - */ } scrubval = scrubrates[i].scrubval; --- linux-3.2.0.orig/drivers/edac/Kconfig +++ linux-3.2.0/drivers/edac/Kconfig @@ -7,7 +7,7 @@ menuconfig EDAC bool "EDAC (Error Detection And Correction) reporting" depends on HAS_IOMEM - depends on X86 || PPC || TILE + depends on X86 || PPC || TILE || ARCH_HIGHBANK help EDAC is designed to report errors in the core system. These are low-level errors that are reported in the CPU or @@ -294,4 +294,18 @@ Support for error detection and correction on the Tilera memory controller. +config EDAC_HIGHBANK_MC + tristate "Highbank Memory Controller" + depends on EDAC_MM_EDAC && ARCH_HIGHBANK + help + Support for error detection and correction on the + Calxeda Highbank memory controller. + +config EDAC_HIGHBANK_L2 + tristate "Highbank L2 Cache" + depends on ARCH_HIGHBANK + help + Support for error detection and correction on the + Calxeda Highbank memory controller. + endif # EDAC --- linux-3.2.0.orig/drivers/edac/Makefile +++ linux-3.2.0/drivers/edac/Makefile @@ -55,3 +55,7 @@ obj-$(CONFIG_EDAC_AMD8131) += amd8131_edac.o obj-$(CONFIG_EDAC_TILE) += tile_edac.o + +obj-$(CONFIG_EDAC_HIGHBANK_MC) += highbank_mc_edac.o +obj-$(CONFIG_EDAC_HIGHBANK_L2) += highbank_l2_edac.o + --- linux-3.2.0.orig/drivers/edac/i82975x_edac.c +++ linux-3.2.0/drivers/edac/i82975x_edac.c @@ -355,10 +355,6 @@ static void i82975x_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev, void __iomem *mch_window) { - static const char *labels[4] = { - "DIMM A1", "DIMM A2", - "DIMM B1", "DIMM B2" - }; struct csrow_info *csrow; unsigned long last_cumul_size; u8 value; @@ -399,9 +395,10 @@ * [0-3] for dual-channel; i.e. csrow->nr_channels = 2 */ for (chan = 0; chan < csrow->nr_channels; chan++) - strncpy(csrow->channels[chan].label, - labels[(index >> 1) + (chan * 2)], - EDAC_MC_LABEL_LEN); + + snprintf(csrow->channels[chan].label, EDAC_MC_LABEL_LEN, "DIMM %c%d", + (chan == 0) ? 'A' : 'B', + index); if (cumul_size == last_cumul_size) continue; /* not populated */ --- linux-3.2.0.orig/drivers/edac/highbank_mc_edac.c +++ linux-3.2.0/drivers/edac/highbank_mc_edac.c @@ -0,0 +1,223 @@ +/* + * Copyright 2011 Calxeda, Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +#include +#include +#include +#include +#include +#include +#include + +#include "edac_core.h" +#include "edac_module.h" + +/* DDR Ctrlr Error Registers */ +#define HB_DDR_ECC_OPT 0x128 +#define HB_DDR_ECC_U_ERR_ADDR 0x130 +#define HB_DDR_ECC_U_ERR_STAT 0x134 +#define HB_DDR_ECC_U_ERR_DATAL 0x138 +#define HB_DDR_ECC_U_ERR_DATAH 0x13c +#define HB_DDR_ECC_C_ERR_ADDR 0x140 +#define HB_DDR_ECC_C_ERR_STAT 0x144 +#define HB_DDR_ECC_C_ERR_DATAL 0x148 +#define HB_DDR_ECC_C_ERR_DATAH 0x14c +#define HB_DDR_ECC_INT_STATUS 0x180 +#define HB_DDR_ECC_INT_ACK 0x184 +#define HB_DDR_ECC_U_ERR_ID 0x424 +#define HB_DDR_ECC_C_ERR_ID 0x428 + +#define HB_DDR_ECC_INT_STAT_CE 0x8 +#define HB_DDR_ECC_INT_STAT_DOUBLE_CE 0x10 +#define HB_DDR_ECC_INT_STAT_UE 0x20 +#define HB_DDR_ECC_INT_STAT_DOUBLE_UE 0x40 + +struct hb_mc_drvdata { + void __iomem *mc_vbase; +}; + +static irqreturn_t highbank_mc_err_handler(int irq, void *dev_id) +{ + struct mem_ctl_info *mci = dev_id; + struct hb_mc_drvdata *drvdata = mci->pvt_info; + u32 status, err_addr; + + /* Read the interrupt status register */ + status = readl(drvdata->mc_vbase + HB_DDR_ECC_INT_STATUS); + + if (status & HB_DDR_ECC_INT_STAT_UE) { + err_addr = readl(drvdata->mc_vbase + HB_DDR_ECC_U_ERR_ADDR); + edac_mc_handle_ue(mci, err_addr >> PAGE_SHIFT, + err_addr & ~PAGE_MASK, 0, mci->ctl_name); + } + if (status & HB_DDR_ECC_INT_STAT_CE) { + u32 syndrome = readl(drvdata->mc_vbase + HB_DDR_ECC_C_ERR_STAT); + syndrome = (syndrome >> 8) & 0xff; + err_addr = readl(drvdata->mc_vbase + HB_DDR_ECC_C_ERR_ADDR); + edac_mc_handle_ce(mci, err_addr >> PAGE_SHIFT, + err_addr & ~PAGE_MASK, syndrome, 0, 0, + mci->ctl_name); + } + + /* clear the error, clears the interrupt */ + writel(status, drvdata->mc_vbase + HB_DDR_ECC_INT_ACK); + return IRQ_HANDLED; +} + +static ssize_t highbank_mc_inject_ctrl_store(struct mem_ctl_info *mci, + const char *data, size_t count) +{ + struct hb_mc_drvdata *pdata = mci->pvt_info; + u32 reg; + if (!isdigit(*data)) + return 0; + + reg = readl(pdata->mc_vbase + HB_DDR_ECC_OPT) & 0x3; + reg |= simple_strtoul(data, NULL, 0) << 16; + reg |= 0x100; + writel(reg, pdata->mc_vbase + HB_DDR_ECC_OPT); + return count; +} + +static struct mcidev_sysfs_attribute highbank_mc_sysfs_attributes[] = { + { + .attr = { + .name = "inject_ctrl", + .mode = (S_IRUGO | S_IWUSR) + }, + .store = highbank_mc_inject_ctrl_store + }, + { + .attr = {.name = NULL} /* End of list */ + } +}; + +static int __devinit highbank_mc_probe(struct platform_device *pdev) +{ + struct mem_ctl_info *mci; + struct hb_mc_drvdata *drvdata; + struct csrow_info *csi; + struct resource *r; + u32 control; + int irq; + int res = 0; + + mci = edac_mc_alloc(sizeof(struct hb_mc_drvdata), 1, 1, 0); + if (!mci) + return -ENOMEM; + + drvdata = mci->pvt_info; + mci->dev = &pdev->dev; + platform_set_drvdata(pdev, mci); + + if (!devres_open_group(&pdev->dev, NULL, GFP_KERNEL)) + return -ENOMEM; + + r = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!r) { + dev_err(&pdev->dev, "Unable to get mem resource\n"); + res = -ENODEV; + goto err; + } + + if (!devm_request_mem_region(&pdev->dev, r->start, + resource_size(r), dev_name(&pdev->dev))) { + dev_err(&pdev->dev, "Error while requesting mem region\n"); + res = -EBUSY; + goto err; + } + + drvdata->mc_vbase = devm_ioremap(&pdev->dev, + r->start, resource_size(r)); + if (!drvdata->mc_vbase) { + dev_err(&pdev->dev, "Unable to map regs\n"); + res = -ENOMEM; + goto err; + } + + control = readl(drvdata->mc_vbase + HB_DDR_ECC_OPT) & 0x3; + if (!control || (control == 0x2)) { + dev_err(&pdev->dev, "No ECC present, or ECC disabled\n"); + res = -ENODEV; + goto err; + } + + irq = platform_get_irq(pdev, 0); + res = devm_request_irq(&pdev->dev, irq, highbank_mc_err_handler, + 0, dev_name(&pdev->dev), mci); + if (res < 0) { + dev_err(&pdev->dev, "Unable to request irq %d\n", irq); + goto err; + } + + mci->mtype_cap = MEM_FLAG_DDR3; + mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED; + mci->edac_cap = EDAC_FLAG_SECDED; + mci->mod_name = dev_name(&pdev->dev); + mci->mod_ver = "1"; + mci->ctl_name = dev_name(&pdev->dev); + mci->scrub_mode = SCRUB_SW_SRC; + mci->mc_driver_sysfs_attributes = highbank_mc_sysfs_attributes; + + csi = mci->csrows; + csi->edac_mode = EDAC_SECDED; + csi->mtype = MEM_DDR3; + csi->first_page = 0; + csi->nr_pages = (~0UL >> PAGE_SHIFT) + 1; + csi->last_page = csi->first_page + csi->nr_pages - 1; + csi->grain = 8; + csi->dtype = DEV_UNKNOWN; + + res = edac_mc_add_mc(mci); + if (res < 0) + goto err; + + devres_close_group(&pdev->dev, NULL); + return 0; +err: + devres_release_group(&pdev->dev, NULL); + edac_mc_free(mci); + return res; +} + +static int highbank_mc_remove(struct platform_device *pdev) +{ + struct mem_ctl_info *mci = platform_get_drvdata(pdev); + + edac_mc_del_mc(&pdev->dev); + edac_mc_free(mci); + return 0; +} + +static const struct of_device_id hb_ddr_ctrl_of_match[] = { + { .compatible = "calxeda,hb-ddr-ctrl", }, + {}, +}; +MODULE_DEVICE_TABLE(of, hb_ddr_ctrl_of_match); + +static struct platform_driver highbank_mc_edac_driver = { + .probe = highbank_mc_probe, + .remove = highbank_mc_remove, + .driver = { + .name = "hb_mc_edac", + .of_match_table = hb_ddr_ctrl_of_match, + }, +}; + +module_platform_driver(highbank_mc_edac_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Calxeda, Inc."); +MODULE_DESCRIPTION("EDAC Driver for Highbank"); --- linux-3.2.0.orig/drivers/edac/highbank_l2_edac.c +++ linux-3.2.0/drivers/edac/highbank_l2_edac.c @@ -0,0 +1,149 @@ +/* + * Copyright 2011 Calxeda, Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +#include +#include +#include +#include +#include +#include +#include + +#include "edac_core.h" +#include "edac_module.h" + +#define SR_CLR_SB_ECC_INTR 0x0 +#define SR_CLR_DB_ECC_INTR 0x4 + +struct hb_l2_drvdata { + void __iomem *base; + int sb_irq; + int db_irq; +}; + +static irqreturn_t highbank_l2_err_handler(int irq, void *dev_id) +{ + struct edac_device_ctl_info *dci = dev_id; + struct hb_l2_drvdata *drvdata = dci->pvt_info; + + if (irq == drvdata->sb_irq) { + writel(1, drvdata->base + SR_CLR_SB_ECC_INTR); + edac_device_handle_ce(dci, 0, 0, dci->ctl_name); + } + if (irq == drvdata->db_irq) { + writel(1, drvdata->base + SR_CLR_DB_ECC_INTR); + edac_device_handle_ue(dci, 0, 0, dci->ctl_name); + } + + return IRQ_HANDLED; +} + +static int __devinit highbank_l2_err_probe(struct platform_device *pdev) +{ + struct edac_device_ctl_info *dci; + struct hb_l2_drvdata *drvdata; + struct resource *r; + int res = 0; + + dci = edac_device_alloc_ctl_info(sizeof(*drvdata), "cpu", + 1, "L", 1, 2, NULL, 0, 0); + if (!dci) + return -ENOMEM; + + drvdata = dci->pvt_info; + dci->dev = &pdev->dev; + platform_set_drvdata(pdev, dci); + + if (!devres_open_group(&pdev->dev, NULL, GFP_KERNEL)) + return -ENOMEM; + + r = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!r) { + dev_err(&pdev->dev, "Unable to get mem resource\n"); + res = -ENODEV; + goto err; + } + + if (!devm_request_mem_region(&pdev->dev, r->start, + resource_size(r), dev_name(&pdev->dev))) { + dev_err(&pdev->dev, "Error while requesting mem region\n"); + res = -EBUSY; + goto err; + } + + drvdata->base = devm_ioremap(&pdev->dev, r->start, resource_size(r)); + if (!drvdata->base) { + dev_err(&pdev->dev, "Unable to map regs\n"); + res = -ENOMEM; + goto err; + } + + drvdata->db_irq = platform_get_irq(pdev, 0); + res = devm_request_irq(&pdev->dev, drvdata->db_irq, + highbank_l2_err_handler, + 0, dev_name(&pdev->dev), dci); + if (res < 0) + goto err; + + drvdata->sb_irq = platform_get_irq(pdev, 1); + res = devm_request_irq(&pdev->dev, drvdata->sb_irq, + highbank_l2_err_handler, + 0, dev_name(&pdev->dev), dci); + if (res < 0) + goto err; + + dci->mod_name = dev_name(&pdev->dev); + dci->dev_name = dev_name(&pdev->dev); + + if (edac_device_add_device(dci)) + goto err; + + devres_close_group(&pdev->dev, NULL); + return 0; +err: + devres_release_group(&pdev->dev, NULL); + edac_device_free_ctl_info(dci); + return res; +} + +static int highbank_l2_err_remove(struct platform_device *pdev) +{ + struct edac_device_ctl_info *dci = platform_get_drvdata(pdev); + + edac_device_del_device(&pdev->dev); + edac_device_free_ctl_info(dci); + return 0; +} + +static const struct of_device_id hb_l2_err_of_match[] = { + { .compatible = "calxeda,hb-sregs-l2-ecc", }, + {}, +}; +MODULE_DEVICE_TABLE(of, hb_l2_err_of_match); + +static struct platform_driver highbank_l2_edac_driver = { + .probe = highbank_l2_err_probe, + .remove = highbank_l2_err_remove, + .driver = { + .name = "hb_l2_edac", + .of_match_table = hb_l2_err_of_match, + }, +}; + +module_platform_driver(highbank_l2_edac_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Calxeda, Inc."); +MODULE_DESCRIPTION("EDAC Driver for Highbank L2 Cache"); --- linux-3.2.0.orig/drivers/edac/edac_pci_sysfs.c +++ linux-3.2.0/drivers/edac/edac_pci_sysfs.c @@ -257,7 +257,7 @@ struct edac_pci_dev_attribute *edac_pci_dev; edac_pci_dev = (struct edac_pci_dev_attribute *)attr; - if (edac_pci_dev->show) + if (edac_pci_dev->store) return edac_pci_dev->store(edac_pci_dev->value, buffer, count); return -EIO; } --- linux-3.2.0.orig/drivers/edac/sb_edac.c +++ linux-3.2.0/drivers/edac/sb_edac.c @@ -554,7 +554,8 @@ { struct sbridge_pvt *pvt = mci->pvt_info; struct csrow_info *csr; - int i, j, banks, ranks, rows, cols, size, npages; + unsigned i, j, banks, ranks, rows, cols, npages; + u64 size; int csrow = 0; unsigned long last_page = 0; u32 reg; @@ -626,10 +627,10 @@ cols = numcol(mtr); /* DDR3 has 8 I/O banks */ - size = (rows * cols * banks * ranks) >> (20 - 3); + size = ((u64)rows * cols * banks * ranks) >> (20 - 3); npages = MiB_TO_PAGES(size); - debugf0("mc#%d: channel %d, dimm %d, %d Mb (%d pages) bank: %d, rank: %d, row: %#x, col: %#x\n", + debugf0("mc#%d: channel %d, dimm %d, %Ld Mb (%d pages) bank: %d, rank: %d, row: %#x, col: %#x\n", pvt->sbridge_dev->mc, i, j, size, npages, banks, ranks, rows, cols); @@ -1609,11 +1610,9 @@ mce->cpuvendor, mce->cpuid, mce->time, mce->socketid, mce->apicid); -#ifdef CONFIG_SMP /* Only handle if it is the right mc controller */ if (cpu_data(mce->cpu).phys_proc_id != pvt->sbridge_dev->mc) return NOTIFY_DONE; -#endif smp_rmb(); if ((pvt->mce_out + 1) % MCE_LOG_LEN == pvt->mce_in) { @@ -1661,9 +1660,6 @@ debugf0("MC: " __FILE__ ": %s(): mci = %p, dev = %p\n", __func__, mci, &sbridge_dev->pdev[0]->dev); - atomic_notifier_chain_unregister(&x86_mce_decoder_chain, - &sbridge_mce_dec); - /* Remove MC sysfs nodes */ edac_mc_del_mc(mci->dev); @@ -1731,8 +1727,6 @@ goto fail0; } - atomic_notifier_chain_register(&x86_mce_decoder_chain, - &sbridge_mce_dec); return 0; fail0: @@ -1861,8 +1855,10 @@ pci_rc = pci_register_driver(&sbridge_driver); - if (pci_rc >= 0) + if (pci_rc >= 0) { + atomic_notifier_chain_register(&x86_mce_decoder_chain, &sbridge_mce_dec); return 0; + } sbridge_printk(KERN_ERR, "Failed to register device with error %d.\n", pci_rc); @@ -1878,6 +1874,7 @@ { debugf2("MC: " __FILE__ ": %s()\n", __func__); pci_unregister_driver(&sbridge_driver); + atomic_notifier_chain_unregister(&x86_mce_decoder_chain, &sbridge_mce_dec); } module_init(sbridge_init); --- linux-3.2.0.orig/drivers/edac/i7core_edac.c +++ linux-3.2.0/drivers/edac/i7core_edac.c @@ -1932,12 +1932,6 @@ if (mce->bank != 8) return NOTIFY_DONE; -#ifdef CONFIG_SMP - /* Only handle if it is the right mc controller */ - if (mce->socketid != pvt->i7core_dev->socket) - return NOTIFY_DONE; -#endif - smp_rmb(); if ((pvt->mce_out + 1) % MCE_LOG_LEN == pvt->mce_in) { smp_wmb(); @@ -2234,8 +2228,6 @@ if (pvt->enable_scrub) disable_sdram_scrub_setting(mci); - atomic_notifier_chain_unregister(&x86_mce_decoder_chain, &i7_mce_dec); - /* Disable EDAC polling */ i7core_pci_ctl_release(pvt); @@ -2336,8 +2328,6 @@ /* DCLK for scrub rate setting */ pvt->dclk_freq = get_dclk_freq(); - atomic_notifier_chain_register(&x86_mce_decoder_chain, &i7_mce_dec); - return 0; fail0: @@ -2481,8 +2471,10 @@ pci_rc = pci_register_driver(&i7core_driver); - if (pci_rc >= 0) + if (pci_rc >= 0) { + atomic_notifier_chain_register(&x86_mce_decoder_chain, &i7_mce_dec); return 0; + } i7core_printk(KERN_ERR, "Failed to register device with error %d.\n", pci_rc); @@ -2498,6 +2490,7 @@ { debugf2("MC: " __FILE__ ": %s()\n", __func__); pci_unregister_driver(&i7core_driver); + atomic_notifier_chain_unregister(&x86_mce_decoder_chain, &i7_mce_dec); } module_init(i7core_init); --- linux-3.2.0.orig/drivers/mtd/Kconfig +++ linux-3.2.0/drivers/mtd/Kconfig @@ -128,7 +128,7 @@ config MTD_OF_PARTS tristate "OpenFirmware partitioning information support" - default Y + default y depends on OF help This provides a partition parsing function which derives --- linux-3.2.0.orig/drivers/mtd/mtdpart.c +++ linux-3.2.0/drivers/mtd/mtdpart.c @@ -748,6 +748,8 @@ * partition parsers, specified in @types. However, if @types is %NULL, then * the default list of parsers is used. The default list contains only the * "cmdlinepart" and "ofpart" parsers ATM. + * Note: If there are more then one parser in @types, the kernel only takes the + * partitions parsed out by the first parser. * * This function may return: * o a negative error code in case of failure @@ -772,11 +774,12 @@ if (!parser) continue; ret = (*parser->parse_fn)(master, pparts, data); + put_partition_parser(parser); if (ret > 0) { printk(KERN_NOTICE "%d %s partitions found on MTD device %s\n", ret, parser->name, master->name); + break; } - put_partition_parser(parser); } return ret; } --- linux-3.2.0.orig/drivers/mtd/mtdchar.c +++ linux-3.2.0/drivers/mtd/mtdchar.c @@ -1154,7 +1154,11 @@ unsigned long off; u32 len; - if (mtd->type == MTD_RAM || mtd->type == MTD_ROM) { + /* This is broken because it assumes the MTD device is map-based + and that mtd->priv is a valid struct map_info. It should be + replaced with something that uses the mtd_get_unmapped_area() + operation properly. */ + if (0 /*mtd->type == MTD_RAM || mtd->type == MTD_ROM*/) { off = vma->vm_pgoff << PAGE_SHIFT; start = map->phys; len = PAGE_ALIGN((start & ~PAGE_MASK) + map->size); --- linux-3.2.0.orig/drivers/mtd/mtd_blkdevs.c +++ linux-3.2.0/drivers/mtd/mtd_blkdevs.c @@ -215,7 +215,7 @@ mutex_lock(&dev->lock); - if (dev->open++) + if (dev->open) goto unlock; kref_get(&dev->ref); @@ -235,6 +235,7 @@ goto error_release; unlock: + dev->open++; mutex_unlock(&dev->lock); blktrans_dev_put(dev); return ret; --- linux-3.2.0.orig/drivers/mtd/mtdoops.c +++ linux-3.2.0/drivers/mtd/mtdoops.c @@ -253,6 +253,9 @@ size_t retlen; for (page = 0; page < cxt->oops_pages; page++) { + if (mtd->block_isbad && + mtd->block_isbad(mtd, page * record_size)) + continue; /* Assume the page is used */ mark_page_used(cxt, page); ret = mtd->read(mtd, page * record_size, MTDOOPS_HEADER_SIZE, @@ -308,8 +311,7 @@ char *dst; if (reason != KMSG_DUMP_OOPS && - reason != KMSG_DUMP_PANIC && - reason != KMSG_DUMP_KEXEC) + reason != KMSG_DUMP_PANIC) return; /* Only dump oopses if dump_oops is set */ @@ -369,7 +371,7 @@ /* oops_page_used is a bit field */ cxt->oops_page_used = vmalloc(DIV_ROUND_UP(mtdoops_pages, - BITS_PER_LONG)); + BITS_PER_LONG) * sizeof(unsigned long)); if (!cxt->oops_page_used) { printk(KERN_ERR "mtdoops: could not allocate page array\n"); return; --- linux-3.2.0.orig/drivers/mtd/ofpart.c +++ linux-3.2.0/drivers/mtd/ofpart.c @@ -121,7 +121,7 @@ nr_parts = plen / sizeof(part[0]); *pparts = kzalloc(nr_parts * sizeof(*(*pparts)), GFP_KERNEL); - if (!pparts) + if (!*pparts) return -ENOMEM; names = of_get_property(dp, "partition-names", &plen); --- linux-3.2.0.orig/drivers/mtd/sm_ftl.c +++ linux-3.2.0/drivers/mtd/sm_ftl.c @@ -1256,7 +1256,7 @@ static struct mtd_blktrans_ops sm_ftl_ops = { .name = "smblk", - .major = -1, + .major = 0, .part_bits = SM_FTL_PARTN_BITS, .blksize = SM_SECTOR_SIZE, .getgeo = sm_getgeo, --- linux-3.2.0.orig/drivers/mtd/devices/m25p80.c +++ linux-3.2.0/drivers/mtd/devices/m25p80.c @@ -932,6 +932,7 @@ ppdata.of_node = spi->dev.of_node; flash->mtd.dev.parent = &spi->dev; flash->page_size = info->page_size; + flash->mtd.writebufsize = flash->page_size; if (info->addr_width) flash->addr_width = info->addr_width; --- linux-3.2.0.orig/drivers/mtd/devices/sst25l.c +++ linux-3.2.0/drivers/mtd/devices/sst25l.c @@ -402,6 +402,7 @@ flash->mtd.flags = MTD_CAP_NORFLASH; flash->mtd.erasesize = flash_info->erase_size; flash->mtd.writesize = flash_info->page_size; + flash->mtd.writebufsize = flash_info->page_size; flash->mtd.size = flash_info->page_size * flash_info->nr_pages; flash->mtd.erase = sst25l_erase; flash->mtd.read = sst25l_read; --- linux-3.2.0.orig/drivers/mtd/devices/lart.c +++ linux-3.2.0/drivers/mtd/devices/lart.c @@ -630,6 +630,7 @@ mtd.name = module_name; mtd.type = MTD_NORFLASH; mtd.writesize = 1; + mtd.writebufsize = 4; mtd.flags = MTD_CAP_NORFLASH; mtd.size = FLASH_BLOCKSIZE_PARAM * FLASH_NUMBLOCKS_16m_PARAM + FLASH_BLOCKSIZE_MAIN * FLASH_NUMBLOCKS_16m_MAIN; mtd.erasesize = FLASH_BLOCKSIZE_MAIN; --- linux-3.2.0.orig/drivers/mtd/devices/slram.c +++ linux-3.2.0/drivers/mtd/devices/slram.c @@ -266,7 +266,7 @@ if (*(szlength) != '+') { devlength = simple_strtoul(szlength, &buffer, 0); - devlength = handle_unit(devlength, buffer) - devstart; + devlength = handle_unit(devlength, buffer); if (devlength < devstart) goto err_out; --- linux-3.2.0.orig/drivers/mtd/devices/block2mtd.c +++ linux-3.2.0/drivers/mtd/devices/block2mtd.c @@ -284,6 +284,7 @@ dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK; dev->mtd.erasesize = erase_size; dev->mtd.writesize = 1; + dev->mtd.writebufsize = PAGE_SIZE; dev->mtd.type = MTD_RAM; dev->mtd.flags = MTD_CAP_RAM; dev->mtd.erase = block2mtd_erase; --- linux-3.2.0.orig/drivers/mtd/maps/lantiq-flash.c +++ linux-3.2.0/drivers/mtd/maps/lantiq-flash.c @@ -45,6 +45,7 @@ }; static char ltq_map_name[] = "ltq_nor"; +static const char *ltq_probe_types[] __devinitconst = { "cmdlinepart", NULL }; static map_word ltq_read16(struct map_info *map, unsigned long adr) @@ -168,7 +169,7 @@ cfi->addr_unlock1 ^= 1; cfi->addr_unlock2 ^= 1; - err = mtd_device_parse_register(ltq_mtd->mtd, NULL, 0, + err = mtd_device_parse_register(ltq_mtd->mtd, ltq_probe_types, 0, ltq_mtd_data->parts, ltq_mtd_data->nr_parts); if (err) { dev_err(&pdev->dev, "failed to add partitions\n"); --- linux-3.2.0.orig/drivers/mtd/maps/ixp4xx.c +++ linux-3.2.0/drivers/mtd/maps/ixp4xx.c @@ -182,6 +182,9 @@ { struct flash_platform_data *plat = dev->dev.platform_data; struct ixp4xx_flash_info *info; + struct mtd_part_parser_data ppdata = { + .origin = dev->resource->start, + }; int err = -1; if (!plat) @@ -247,7 +250,7 @@ /* Use the fast version */ info->map.write = ixp4xx_write16; - err = mtd_device_parse_register(info->mtd, probes, dev->resource->start, + err = mtd_device_parse_register(info->mtd, probes, &ppdata, plat->parts, plat->nr_parts); if (err) { printk(KERN_ERR "Could not parse partitions\n"); --- linux-3.2.0.orig/drivers/mtd/maps/autcpu12-nvram.c +++ linux-3.2.0/drivers/mtd/maps/autcpu12-nvram.c @@ -43,7 +43,8 @@ static int __init init_autcpu12_sram (void) { - int err, save0, save1; + map_word tmp, save0, save1; + int err; autcpu12_sram_map.virt = ioremap(0x12000000, SZ_128K); if (!autcpu12_sram_map.virt) { @@ -51,7 +52,7 @@ err = -EIO; goto out; } - simple_map_init(&autcpu_sram_map); + simple_map_init(&autcpu12_sram_map); /* * Check for 32K/128K @@ -61,20 +62,22 @@ * Read and check result on ofs 0x0 * Restore contents */ - save0 = map_read32(&autcpu12_sram_map,0); - save1 = map_read32(&autcpu12_sram_map,0x10000); - map_write32(&autcpu12_sram_map,~save0,0x10000); + save0 = map_read(&autcpu12_sram_map, 0); + save1 = map_read(&autcpu12_sram_map, 0x10000); + tmp.x[0] = ~save0.x[0]; + map_write(&autcpu12_sram_map, tmp, 0x10000); /* if we find this pattern on 0x0, we have 32K size * restore contents and exit */ - if ( map_read32(&autcpu12_sram_map,0) != save0) { - map_write32(&autcpu12_sram_map,save0,0x0); + tmp = map_read(&autcpu12_sram_map, 0); + if (!map_word_equal(&autcpu12_sram_map, tmp, save0)) { + map_write(&autcpu12_sram_map, save0, 0x0); goto map; } /* We have a 128K found, restore 0x10000 and set size * to 128K */ - map_write32(&autcpu12_sram_map,save1,0x10000); + map_write(&autcpu12_sram_map, save1, 0x10000); autcpu12_sram_map.size = SZ_128K; map: --- linux-3.2.0.orig/drivers/mtd/nand/cafe_nand.c +++ linux-3.2.0/drivers/mtd/nand/cafe_nand.c @@ -102,7 +102,7 @@ static int cafe_device_ready(struct mtd_info *mtd) { struct cafe_priv *cafe = mtd->priv; - int result = !!(cafe_readl(cafe, NAND_STATUS) | 0x40000000); + int result = !!(cafe_readl(cafe, NAND_STATUS) & 0x40000000); uint32_t irqs = cafe_readl(cafe, NAND_IRQ); cafe_writel(cafe, irqs, NAND_IRQ); --- linux-3.2.0.orig/drivers/mtd/nand/nand_base.c +++ linux-3.2.0/drivers/mtd/nand/nand_base.c @@ -2903,9 +2903,7 @@ if (le16_to_cpu(p->features) & 1) *busw = NAND_BUSWIDTH_16; - chip->options &= ~NAND_CHIPOPTIONS_MSK; - chip->options |= (NAND_NO_READRDY | - NAND_NO_AUTOINCR) & NAND_CHIPOPTIONS_MSK; + chip->options |= NAND_NO_READRDY | NAND_NO_AUTOINCR; return 1; } @@ -3069,9 +3067,8 @@ mtd->erasesize <<= ((id_data[3] & 0x03) << 1); } } - /* Get chip options, preserve non chip based options */ - chip->options &= ~NAND_CHIPOPTIONS_MSK; - chip->options |= type->options & NAND_CHIPOPTIONS_MSK; + /* Get chip options */ + chip->options |= type->options; /* * Check if chip is not a Samsung device. Do not clear the --- linux-3.2.0.orig/drivers/mtd/nand/atmel_nand.c +++ linux-3.2.0/drivers/mtd/nand/atmel_nand.c @@ -161,6 +161,37 @@ !!host->board->rdy_pin_active_low; } +/* + * Minimal-overhead PIO for data access. + */ +static void atmel_read_buf8(struct mtd_info *mtd, u8 *buf, int len) +{ + struct nand_chip *nand_chip = mtd->priv; + + __raw_readsb(nand_chip->IO_ADDR_R, buf, len); +} + +static void atmel_read_buf16(struct mtd_info *mtd, u8 *buf, int len) +{ + struct nand_chip *nand_chip = mtd->priv; + + __raw_readsw(nand_chip->IO_ADDR_R, buf, len / 2); +} + +static void atmel_write_buf8(struct mtd_info *mtd, const u8 *buf, int len) +{ + struct nand_chip *nand_chip = mtd->priv; + + __raw_writesb(nand_chip->IO_ADDR_W, buf, len); +} + +static void atmel_write_buf16(struct mtd_info *mtd, const u8 *buf, int len) +{ + struct nand_chip *nand_chip = mtd->priv; + + __raw_writesw(nand_chip->IO_ADDR_W, buf, len / 2); +} + static void dma_complete_func(void *completion) { complete(completion); @@ -235,27 +266,33 @@ static void atmel_read_buf(struct mtd_info *mtd, u8 *buf, int len) { struct nand_chip *chip = mtd->priv; + struct atmel_nand_host *host = chip->priv; if (use_dma && len > mtd->oobsize) /* only use DMA for bigger than oob size: better performances */ if (atmel_nand_dma_op(mtd, buf, len, 1) == 0) return; - /* if no DMA operation possible, use PIO */ - memcpy_fromio(buf, chip->IO_ADDR_R, len); + if (host->board->bus_width_16) + atmel_read_buf16(mtd, buf, len); + else + atmel_read_buf8(mtd, buf, len); } static void atmel_write_buf(struct mtd_info *mtd, const u8 *buf, int len) { struct nand_chip *chip = mtd->priv; + struct atmel_nand_host *host = chip->priv; if (use_dma && len > mtd->oobsize) /* only use DMA for bigger than oob size: better performances */ if (atmel_nand_dma_op(mtd, (void *)buf, len, 0) == 0) return; - /* if no DMA operation possible, use PIO */ - memcpy_toio(chip->IO_ADDR_W, buf, len); + if (host->board->bus_width_16) + atmel_write_buf16(mtd, buf, len); + else + atmel_write_buf8(mtd, buf, len); } /* --- linux-3.2.0.orig/drivers/mtd/nand/omap2.c +++ linux-3.2.0/drivers/mtd/nand/omap2.c @@ -1132,7 +1132,8 @@ /* Release NAND device, its internal structures and partitions */ nand_release(&info->mtd); iounmap(info->nand.IO_ADDR_R); - kfree(&info->mtd); + release_mem_region(info->phys_base, NAND_IO_SIZE); + kfree(info); return 0; } --- linux-3.2.0.orig/drivers/mtd/nand/nand_bbt.c +++ linux-3.2.0/drivers/mtd/nand/nand_bbt.c @@ -324,6 +324,7 @@ buf += mtd->oobsize + mtd->writesize; len -= mtd->writesize; + offs += mtd->writesize; } return 0; } @@ -389,7 +390,7 @@ /* Read the mirror version, if available */ if (md && (md->options & NAND_BBT_VERSION)) { scan_read_raw(mtd, buf, (loff_t)md->pages[0] << this->page_shift, - mtd->writesize, td); + mtd->writesize, md); md->version[0] = buf[bbt_get_ver_offs(mtd, md)]; pr_info("Bad block table at page %d, version 0x%02X\n", md->pages[0], md->version[0]); --- linux-3.2.0.orig/drivers/mtd/nand/nandsim.c +++ linux-3.2.0/drivers/mtd/nand/nandsim.c @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include #include @@ -547,12 +547,6 @@ return kstrdup(buf, GFP_KERNEL); } -static uint64_t divide(uint64_t n, uint32_t d) -{ - do_div(n, d); - return n; -} - /* * Initialize the nandsim structure. * @@ -581,7 +575,7 @@ ns->geom.oobsz = mtd->oobsize; ns->geom.secsz = mtd->erasesize; ns->geom.pgszoob = ns->geom.pgsz + ns->geom.oobsz; - ns->geom.pgnum = divide(ns->geom.totsz, ns->geom.pgsz); + ns->geom.pgnum = div_u64(ns->geom.totsz, ns->geom.pgsz); ns->geom.totszoob = ns->geom.totsz + (uint64_t)ns->geom.pgnum * ns->geom.oobsz; ns->geom.secshift = ffs(ns->geom.secsz) - 1; ns->geom.pgshift = chip->page_shift; @@ -924,7 +918,7 @@ if (!rptwear) return 0; - wear_eb_count = divide(mtd->size, mtd->erasesize); + wear_eb_count = div_u64(mtd->size, mtd->erasesize); mem = wear_eb_count * sizeof(unsigned long); if (mem / sizeof(unsigned long) != wear_eb_count) { NS_ERR("Too many erase blocks for wear reporting\n"); @@ -2361,6 +2355,7 @@ uint64_t new_size = (uint64_t)nsmtd->erasesize << overridesize; if (new_size >> overridesize != nsmtd->erasesize) { NS_ERR("overridesize is too big\n"); + retval = -EINVAL; goto err_exit; } /* N.B. This relies on nand_scan not doing anything with the size before we change it */ --- linux-3.2.0.orig/drivers/mtd/nand/gpmi-nand/gpmi-nand.c +++ linux-3.2.0/drivers/mtd/nand/gpmi-nand/gpmi-nand.c @@ -1124,7 +1124,7 @@ chip->bbt[block >> 2] |= 0x01 << ((block & 0x03) << 1); /* Do we have a flash based bad block table ? */ - if (chip->options & NAND_BBT_USE_FLASH) + if (chip->bbt_options & NAND_BBT_USE_FLASH) ret = nand_update_bbt(mtd, ofs); else { chipnr = (int)(ofs >> chip->chip_shift); --- linux-3.2.0.orig/drivers/mtd/nand/gpmi-nand/gpmi-lib.c +++ linux-3.2.0/drivers/mtd/nand/gpmi-nand/gpmi-lib.c @@ -69,17 +69,19 @@ * [1] enable the module. * [2] reset the module. * - * In most of the cases, it's ok. But there is a hardware bug in the BCH block. + * In most of the cases, it's ok. + * But in MX23, there is a hardware bug in the BCH block (see erratum #2847). * If you try to soft reset the BCH block, it becomes unusable until * the next hard reset. This case occurs in the NAND boot mode. When the board * boots by NAND, the ROM of the chip will initialize the BCH blocks itself. * So If the driver tries to reset the BCH again, the BCH will not work anymore. - * You will see a DMA timeout in this case. + * You will see a DMA timeout in this case. The bug has been fixed + * in the following chips, such as MX28. * * To avoid this bug, just add a new parameter `just_enable` for * the mxs_reset_block(), and rewrite it here. */ -int gpmi_reset_block(void __iomem *reset_addr, bool just_enable) +static int gpmi_reset_block(void __iomem *reset_addr, bool just_enable) { int ret; int timeout = 0x400; @@ -133,6 +135,15 @@ if (ret) goto err_out; + /* + * Reset BCH here, too. We got failures otherwise :( + * See later BCH reset for explanation of MX23 handling + */ + ret = gpmi_reset_block(r->bch_regs, GPMI_IS_MX23(this)); + if (ret) + goto err_out; + + /* Choose NAND mode. */ writel(BM_GPMI_CTRL1_GPMI_MODE, r->gpmi_regs + HW_GPMI_CTRL1_CLR); @@ -206,7 +217,15 @@ if (ret) goto err_out; - ret = gpmi_reset_block(r->bch_regs, true); + /* + * Due to erratum #2847 of the MX23, the BCH cannot be soft reset on this + * chip, otherwise it will lock up. So we skip resetting BCH on the MX23. + * On the other hand, the MX28 needs the reset, because one case has been + * seen where the BCH produced ECC errors constantly after 10000 + * consecutive reboots. The latter case has not been seen on the MX23 yet, + * still we don't know if it could happen there as well. + */ + ret = gpmi_reset_block(r->bch_regs, GPMI_IS_MX23(this)); if (ret) goto err_out; --- linux-3.2.0.orig/drivers/mtd/tests/mtd_stresstest.c +++ linux-3.2.0/drivers/mtd/tests/mtd_stresstest.c @@ -284,6 +284,12 @@ (unsigned long long)mtd->size, mtd->erasesize, pgsize, ebcnt, pgcnt, mtd->oobsize); + if (ebcnt < 2) { + printk(PRINT_PREF "error: need at least 2 eraseblocks\n"); + err = -ENOSPC; + goto out_put_mtd; + } + /* Read or write up 2 eraseblocks at a time */ bufsize = mtd->erasesize * 2; @@ -322,6 +328,7 @@ kfree(bbt); vfree(writebuf); vfree(readbuf); +out_put_mtd: put_mtd_device(mtd); if (err) printk(PRINT_PREF "error %d occurred\n", err); --- linux-3.2.0.orig/drivers/mtd/ubi/cdev.c +++ linux-3.2.0/drivers/mtd/ubi/cdev.c @@ -632,6 +632,9 @@ if (req->alignment != 1 && n) goto bad; + if (!req->name[0] || !req->name_len) + goto bad; + if (req->name_len > UBI_VOL_NAME_MAX) { err = -ENAMETOOLONG; goto bad; --- linux-3.2.0.orig/drivers/mtd/ubi/ubi.h +++ linux-3.2.0/drivers/mtd/ubi/ubi.h @@ -120,6 +120,7 @@ * PEB * MOVE_CANCEL_BITFLIPS: canceled because a bit-flip was detected in the * target PEB + * MOVE_RETRY: retry scrubbing the PEB */ enum { MOVE_CANCEL_RACE = 1, @@ -127,6 +128,7 @@ MOVE_TARGET_RD_ERR, MOVE_TARGET_WR_ERR, MOVE_CANCEL_BITFLIPS, + MOVE_RETRY, }; /** --- linux-3.2.0.orig/drivers/mtd/ubi/scan.c +++ linux-3.2.0/drivers/mtd/ubi/scan.c @@ -997,7 +997,7 @@ return err; goto adjust_mean_ec; case UBI_IO_FF: - if (ec_err) + if (ec_err || bitflips) err = add_to_list(si, pnum, ec, 1, &si->erase); else err = add_to_list(si, pnum, ec, 0, &si->free); @@ -1174,7 +1174,7 @@ ech = kzalloc(ubi->ec_hdr_alsize, GFP_KERNEL); if (!ech) - goto out_slab; + goto out_si; vidh = ubi_zalloc_vid_hdr(ubi, GFP_KERNEL); if (!vidh) @@ -1235,8 +1235,6 @@ ubi_free_vid_hdr(ubi, vidh); out_ech: kfree(ech); -out_slab: - kmem_cache_destroy(si->scan_leb_slab); out_si: ubi_scan_destroy_si(si); return ERR_PTR(err); @@ -1325,7 +1323,9 @@ } } - kmem_cache_destroy(si->scan_leb_slab); + if (si->scan_leb_slab) + kmem_cache_destroy(si->scan_leb_slab); + kfree(si); } --- linux-3.2.0.orig/drivers/mtd/ubi/wl.c +++ linux-3.2.0/drivers/mtd/ubi/wl.c @@ -389,7 +389,7 @@ */ int ubi_wl_get_peb(struct ubi_device *ubi, int dtype) { - int err, medium_ec; + int err; struct ubi_wl_entry *e, *first, *last; ubi_assert(dtype == UBI_LONGTERM || dtype == UBI_SHORTTERM || @@ -427,7 +427,7 @@ * For unknown data we pick a physical eraseblock with medium * erase counter. But we by no means can pick a physical * eraseblock with erase counter greater or equivalent than the - * lowest erase counter plus %WL_FREE_MAX_DIFF. + * lowest erase counter plus %WL_FREE_MAX_DIFF/2. */ first = rb_entry(rb_first(&ubi->free), struct ubi_wl_entry, u.rb); @@ -436,10 +436,8 @@ if (last->ec - first->ec < WL_FREE_MAX_DIFF) e = rb_entry(ubi->free.rb_node, struct ubi_wl_entry, u.rb); - else { - medium_ec = (first->ec + WL_FREE_MAX_DIFF)/2; - e = find_wl_entry(&ubi->free, medium_ec); - } + else + e = find_wl_entry(&ubi->free, WL_FREE_MAX_DIFF/2); break; case UBI_SHORTTERM: /* @@ -795,7 +793,10 @@ protect = 1; goto out_not_moved; } - + if (err == MOVE_RETRY) { + scrubbing = 1; + goto out_not_moved; + } if (err == MOVE_CANCEL_BITFLIPS || err == MOVE_TARGET_WR_ERR || err == MOVE_TARGET_RD_ERR) { /* @@ -1049,7 +1050,6 @@ ubi_err("failed to erase PEB %d, error %d", pnum, err); kfree(wl_wrk); - kmem_cache_free(ubi_wl_entry_slab, e); if (err == -EINTR || err == -ENOMEM || err == -EAGAIN || err == -EBUSY) { @@ -1062,14 +1062,16 @@ goto out_ro; } return err; - } else if (err != -EIO) { + } + + kmem_cache_free(ubi_wl_entry_slab, e); + if (err != -EIO) /* * If this is not %-EIO, we have no idea what to do. Scheduling * this physical eraseblock for erasure again would cause * errors again and again. Well, lets switch to R/O mode. */ goto out_ro; - } /* It is %-EIO, the PEB went bad */ --- linux-3.2.0.orig/drivers/mtd/ubi/debug.h +++ linux-3.2.0/drivers/mtd/ubi/debug.h @@ -43,7 +43,10 @@ pr_debug("UBI DBG " type ": " fmt "\n", ##__VA_ARGS__) /* Just a debugging messages not related to any specific UBI subsystem */ -#define dbg_msg(fmt, ...) ubi_dbg_msg("msg", fmt, ##__VA_ARGS__) +#define dbg_msg(fmt, ...) \ + printk(KERN_DEBUG "UBI DBG (pid %d): %s: " fmt "\n", \ + current->pid, __func__, ##__VA_ARGS__) + /* General debugging messages */ #define dbg_gen(fmt, ...) ubi_dbg_msg("gen", fmt, ##__VA_ARGS__) /* Messages from the eraseblock association sub-system */ --- linux-3.2.0.orig/drivers/mtd/ubi/build.c +++ linux-3.2.0/drivers/mtd/ubi/build.c @@ -816,6 +816,11 @@ struct ubi_volume *vol = ubi->volumes[vol_id]; int err, old_reserved_pebs = vol->reserved_pebs; + if (ubi->ro_mode) { + ubi_warn("skip auto-resize because of R/O mode"); + return 0; + } + /* * Clear the auto-resize flag in the volume in-memory copy of the * volume table, and 'ubi_resize_volume()' will propagate this change --- linux-3.2.0.orig/drivers/mtd/ubi/vtbl.c +++ linux-3.2.0/drivers/mtd/ubi/vtbl.c @@ -306,7 +306,7 @@ int copy, void *vtbl) { int err, tries = 0; - static struct ubi_vid_hdr *vid_hdr; + struct ubi_vid_hdr *vid_hdr; struct ubi_scan_leb *new_seb; ubi_msg("create volume table (copy #%d)", copy + 1); @@ -346,7 +346,7 @@ */ err = ubi_scan_add_used(ubi, si, new_seb->pnum, new_seb->ec, vid_hdr, 0); - kfree(new_seb); + kmem_cache_free(si->scan_leb_slab, new_seb); ubi_free_vid_hdr(ubi, vid_hdr); return err; @@ -359,7 +359,7 @@ list_add(&new_seb->u.list, &si->erase); goto retry; } - kfree(new_seb); + kmem_cache_free(si->scan_leb_slab, new_seb); out_free: ubi_free_vid_hdr(ubi, vid_hdr); return err; --- linux-3.2.0.orig/drivers/mtd/ubi/eba.c +++ linux-3.2.0/drivers/mtd/ubi/eba.c @@ -1028,12 +1028,14 @@ * 'ubi_wl_put_peb()' function on the @ubi->move_mutex. In turn, we are * holding @ubi->move_mutex and go sleep on the LEB lock. So, if the * LEB is already locked, we just do not move it and return - * %MOVE_CANCEL_RACE, which means that UBI will re-try, but later. + * %MOVE_RETRY. Note, we do not return %MOVE_CANCEL_RACE here because + * we do not know the reasons of the contention - it may be just a + * normal I/O on this LEB, so we want to re-try. */ err = leb_write_trylock(ubi, vol_id, lnum); if (err) { dbg_wl("contention on LEB %d:%d, cancel", vol_id, lnum); - return MOVE_CANCEL_RACE; + return MOVE_RETRY; } /* --- linux-3.2.0.orig/drivers/input/touchscreen/eeti_ts.c +++ linux-3.2.0/drivers/input/touchscreen/eeti_ts.c @@ -48,7 +48,7 @@ struct input_dev *input; struct work_struct work; struct mutex mutex; - int irq, irq_active_high; + int irq_gpio, irq, irq_active_high; }; #define EETI_TS_BITDEPTH (11) @@ -62,7 +62,7 @@ static inline int eeti_ts_irq_active(struct eeti_ts_priv *priv) { - return gpio_get_value(irq_to_gpio(priv->irq)) == priv->irq_active_high; + return gpio_get_value(priv->irq_gpio) == priv->irq_active_high; } static void eeti_ts_read(struct work_struct *work) @@ -157,7 +157,7 @@ static int __devinit eeti_ts_probe(struct i2c_client *client, const struct i2c_device_id *idp) { - struct eeti_ts_platform_data *pdata; + struct eeti_ts_platform_data *pdata = client->dev.platform_data; struct eeti_ts_priv *priv; struct input_dev *input; unsigned int irq_flags; @@ -199,9 +199,12 @@ priv->client = client; priv->input = input; - priv->irq = client->irq; + priv->irq_gpio = pdata->irq_gpio; + priv->irq = gpio_to_irq(pdata->irq_gpio); - pdata = client->dev.platform_data; + err = gpio_request_one(pdata->irq_gpio, GPIOF_IN, client->name); + if (err < 0) + goto err1; if (pdata) priv->irq_active_high = pdata->irq_active_high; @@ -215,13 +218,13 @@ err = input_register_device(input); if (err) - goto err1; + goto err2; err = request_irq(priv->irq, eeti_ts_isr, irq_flags, client->name, priv); if (err) { dev_err(&client->dev, "Unable to request touchscreen IRQ.\n"); - goto err2; + goto err3; } /* @@ -233,9 +236,11 @@ device_init_wakeup(&client->dev, 0); return 0; -err2: +err3: input_unregister_device(input); input = NULL; /* so we dont try to free it below */ +err2: + gpio_free(pdata->irq_gpio); err1: input_free_device(input); kfree(priv); --- linux-3.2.0.orig/drivers/input/touchscreen/tsc40.c +++ linux-3.2.0/drivers/input/touchscreen/tsc40.c @@ -107,7 +107,6 @@ __set_bit(BTN_TOUCH, input_dev->keybit); input_set_abs_params(ptsc->dev, ABS_X, 0, 0x3ff, 0, 0); input_set_abs_params(ptsc->dev, ABS_Y, 0, 0x3ff, 0, 0); - input_set_abs_params(ptsc->dev, ABS_PRESSURE, 0, 0, 0, 0); serio_set_drvdata(serio, ptsc); --- linux-3.2.0.orig/drivers/input/joystick/walkera0701.c +++ linux-3.2.0/drivers/input/joystick/walkera0701.c @@ -196,6 +196,7 @@ struct walkera_dev *w = input_get_drvdata(dev); parport_disable_irq(w->parport); + hrtimer_cancel(&w->timer); } static int walkera0701_connect(struct walkera_dev *w, int parport) @@ -224,6 +225,9 @@ if (parport_claim(w->pardevice)) goto init_err1; + hrtimer_init(&w->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + w->timer.function = timer_handler; + w->input_dev = input_allocate_device(); if (!w->input_dev) goto init_err2; @@ -254,8 +258,6 @@ if (err) goto init_err3; - hrtimer_init(&w->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); - w->timer.function = timer_handler; return 0; init_err3: @@ -271,7 +273,6 @@ static void walkera0701_disconnect(struct walkera_dev *w) { - hrtimer_cancel(&w->timer); input_unregister_device(w->input_dev); parport_release(w->pardevice); parport_unregister_device(w->pardevice); --- linux-3.2.0.orig/drivers/input/joystick/xpad.c +++ linux-3.2.0/drivers/input/joystick/xpad.c @@ -142,6 +142,7 @@ { 0x0c12, 0x880a, "Pelican Eclipse PL-2023", 0, XTYPE_XBOX }, { 0x0c12, 0x8810, "Zeroplus Xbox Controller", 0, XTYPE_XBOX }, { 0x0c12, 0x9902, "HAMA VibraX - *FAULTY HARDWARE*", 0, XTYPE_XBOX }, + { 0x0d2f, 0x0002, "Andamiro Pump It Up pad", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX }, { 0x0e4c, 0x1097, "Radica Gamester Controller", 0, XTYPE_XBOX }, { 0x0e4c, 0x2390, "Radica Games Jtech Controller", 0, XTYPE_XBOX }, { 0x0e6f, 0x0003, "Logic3 Freebird wireless Controller", 0, XTYPE_XBOX }, @@ -164,6 +165,7 @@ { 0x1bad, 0x0003, "Harmonix Rock Band Drumkit", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360 }, { 0x0f0d, 0x0016, "Hori Real Arcade Pro.EX", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, { 0x0f0d, 0x000d, "Hori Fighting Stick EX2", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, + { 0x1689, 0xfd00, "Razer Onza Tournament Edition", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360 }, { 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX }, { 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN } }; @@ -238,12 +240,14 @@ XPAD_XBOX360_VENDOR(0x045e), /* Microsoft X-Box 360 controllers */ XPAD_XBOX360_VENDOR(0x046d), /* Logitech X-Box 360 style controllers */ XPAD_XBOX360_VENDOR(0x0738), /* Mad Catz X-Box 360 controllers */ + { USB_DEVICE(0x0738, 0x4540) }, /* Mad Catz Beat Pad */ XPAD_XBOX360_VENDOR(0x0e6f), /* 0x0e6f X-Box 360 controllers */ XPAD_XBOX360_VENDOR(0x12ab), /* X-Box 360 dance pads */ XPAD_XBOX360_VENDOR(0x1430), /* RedOctane X-Box 360 controllers */ XPAD_XBOX360_VENDOR(0x146b), /* BigBen Interactive Controllers */ XPAD_XBOX360_VENDOR(0x1bad), /* Harminix Rock Band Guitar and Drums */ - XPAD_XBOX360_VENDOR(0x0f0d), /* Hori Controllers */ + XPAD_XBOX360_VENDOR(0x0f0d), /* Hori Controllers */ + XPAD_XBOX360_VENDOR(0x1689), /* Razer Onza */ { } }; --- linux-3.2.0.orig/drivers/input/keyboard/Kconfig +++ linux-3.2.0/drivers/input/keyboard/Kconfig @@ -203,6 +203,17 @@ To compile this driver as a module, choose M here: the module will be called gpio_keys_polled. +config KEYBOARD_HIGHBANK + tristate "Calxeda Highbank Virtual Keys" + depends on ARCH_HIGHBANK + default y + help + This driver implements support for virtual power keys on Calxeda + Highbank systems. + + To compile this driver as a module, choose M here: the + module will be called highbank_keys. + config KEYBOARD_TCA6416 tristate "TCA6416/TCA6408A Keypad Support" depends on I2C --- linux-3.2.0.orig/drivers/input/keyboard/highbank_keys.c +++ linux-3.2.0/drivers/input/keyboard/highbank_keys.c @@ -0,0 +1,141 @@ +/* + * Copyright 2011 Calxeda, Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +struct hb_keys_drvdata { + struct input_dev *input; + struct notifier_block nb; +}; + +int hb_keys_notifier(struct notifier_block *nb, unsigned long event, void *data) +{ + struct hb_keys_drvdata *ddata = container_of(nb, struct hb_keys_drvdata, nb); + struct input_dev *input = ddata->input; + u32 *d = data; + u32 key = d[0]; + + if (event != 0x1000 /*HB_IPC_KEY*/) + return 0; + + input_event(input, EV_KEY, key, 1); + input_event(input, EV_KEY, key, 0); + input_sync(input); + return 0; +} + +static int hb_keys_open(struct input_dev *input) +{ + struct hb_keys_drvdata *ddata = input_get_drvdata(input); + return pl320_ipc_register_notifier(&ddata->nb); +} + +static void hb_keys_close(struct input_dev *input) +{ + struct hb_keys_drvdata *ddata = input_get_drvdata(input); + pl320_ipc_unregister_notifier(&ddata->nb); +} + +static int __devinit hb_keys_probe(struct platform_device *pdev) +{ + struct hb_keys_drvdata *ddata; + struct device *dev = &pdev->dev; + struct input_dev *input; + int error; + + ddata = kzalloc(sizeof(*ddata), GFP_KERNEL); + if (!ddata) + return -ENOMEM; + + input = input_allocate_device(); + if (!input) { + dev_err(dev, "failed to allocate state\n"); + error = -ENOMEM; + goto fail1; + } + + platform_set_drvdata(pdev, ddata); + input_set_drvdata(input, ddata); + + ddata->input = input; + ddata->nb.notifier_call = hb_keys_notifier; + + input->name = pdev->name; + input->phys = "highbank/input0"; + input->dev.parent = &pdev->dev; + input->open = hb_keys_open; + input->close = hb_keys_close; + + input->id.bustype = BUS_HOST; + input->id.vendor = 0x0001; + input->id.product = 0x0001; + input->id.version = 0x0100; + + input_set_capability(input, EV_KEY, KEY_POWER); + input_set_capability(input, EV_KEY, KEY_SLEEP); + + error = input_register_device(input); + if (error) { + dev_err(dev, "Unable to register input device, error: %d\n", + error); + goto fail2; + } + + return 0; + + fail2: + input_free_device(input); + fail1: + kfree(ddata); + return error; +} + +static int __devexit hb_keys_remove(struct platform_device *pdev) +{ + struct hb_keys_drvdata *ddata = platform_get_drvdata(pdev); + input_unregister_device(ddata->input); + kfree(ddata); + return 0; +} + +static struct of_device_id hb_keys_of_match[] = { + { .compatible = "calxeda,hb-keys", }, + { }, +}; +MODULE_DEVICE_TABLE(of, hb_keys_of_match); + +static struct platform_driver hb_keys_driver = { + .probe = hb_keys_probe, + .remove = __devexit_p(hb_keys_remove), + .driver = { + .name = "hb-keys", + .of_match_table = hb_keys_of_match, + } +}; + +module_platform_driver(hb_keys_driver); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Calxeda, Inc."); +MODULE_DESCRIPTION("Keys driver for Calxeda Highbank"); --- linux-3.2.0.orig/drivers/input/keyboard/Makefile +++ linux-3.2.0/drivers/input/keyboard/Makefile @@ -15,6 +15,7 @@ obj-$(CONFIG_KEYBOARD_EP93XX) += ep93xx_keypad.o obj-$(CONFIG_KEYBOARD_GPIO) += gpio_keys.o obj-$(CONFIG_KEYBOARD_GPIO_POLLED) += gpio_keys_polled.o +obj-$(CONFIG_KEYBOARD_HIGHBANK) += highbank_keys.o obj-$(CONFIG_KEYBOARD_TCA6416) += tca6416-keypad.o obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o --- linux-3.2.0.orig/drivers/input/tablet/Kconfig +++ linux-3.2.0/drivers/input/tablet/Kconfig @@ -76,7 +76,10 @@ config TABLET_USB_WACOM tristate "Wacom Intuos/Graphire tablet support (USB)" depends on USB_ARCH_HAS_HCD + select POWER_SUPPLY select USB + select NEW_LEDS + select LEDS_CLASS help Say Y here if you want to use the USB version of the Wacom Intuos or Graphire tablet. Make sure to say Y to "Mouse support" --- linux-3.2.0.orig/drivers/input/tablet/wacom_sys.c +++ linux-3.2.0/drivers/input/tablet/wacom_sys.c @@ -28,7 +28,9 @@ #define HID_USAGE_Y_TILT 0x3e #define HID_USAGE_FINGER 0x22 #define HID_USAGE_STYLUS 0x20 -#define HID_COLLECTION 0xc0 +#define HID_COLLECTION 0xa1 +#define HID_COLLECTION_LOGICAL 0x02 +#define HID_COLLECTION_END 0xc0 enum { WCM_UNDEFINED = 0, @@ -66,7 +68,8 @@ do { retval = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), USB_REQ_GET_REPORT, - USB_TYPE_CLASS | USB_RECIP_INTERFACE, + USB_DIR_IN | USB_TYPE_CLASS | + USB_RECIP_INTERFACE, (type << 8) + id, intf->altsetting[0].desc.bInterfaceNumber, buf, size, 100); @@ -164,7 +167,78 @@ usb_autopm_put_interface(wacom->intf); } -static int wacom_parse_hid(struct usb_interface *intf, struct hid_descriptor *hid_desc, +/* + * Static values for max X/Y and resolution of Pen interface is stored in + * features. This mean physical size of active area can be computed. + * This is useful to do when Pen and Touch have same active area of tablet. + * This means for Touch device, we only need to find max X/Y value and we + * have enough information to compute resolution of touch. + */ +static void wacom_set_phy_from_res(struct wacom_features *features) +{ + features->x_phy = (features->x_max * 100) / features->x_resolution; + features->y_phy = (features->y_max * 100) / features->y_resolution; +} + +static int wacom_parse_logical_collection(unsigned char *report, + struct wacom_features *features) +{ + int length = 0; + + if (features->type == BAMBOO_PT) { + + /* Logical collection is only used by 3rd gen Bamboo Touch */ + features->pktlen = WACOM_PKGLEN_BBTOUCH3; + features->device_type = BTN_TOOL_FINGER; + + wacom_set_phy_from_res(features); + + features->x_max = features->y_max = + get_unaligned_le16(&report[10]); + + length = 11; + } + return length; +} + +/* + * Interface Descriptor of wacom devices can be incomplete and + * inconsistent so wacom_features table is used to store stylus + * device's packet lengths, various maximum values, and tablet + * resolution based on product ID's. + * + * For devices that contain 2 interfaces, wacom_features table is + * inaccurate for the touch interface. Since the Interface Descriptor + * for touch interfaces has pretty complete data, this function exists + * to query tablet for this missing information instead of hard coding in + * an additional table. + * + * A typical Interface Descriptor for a stylus will contain a + * boot mouse application collection that is not of interest and this + * function will ignore it. + * + * It also contains a digitizer application collection that also is not + * of interest since any information it contains would be duplicate + * of what is in wacom_features. Usually it defines a report of an array + * of bytes that could be used as max length of the stylus packet returned. + * If it happens to define a Digitizer-Stylus Physical Collection then + * the X and Y logical values contain valid data but it is ignored. + * + * A typical Interface Descriptor for a touch interface will contain a + * Digitizer-Finger Physical Collection which will define both logical + * X/Y maximum as well as the physical size of tablet. Since touch + * interfaces haven't supported pressure or distance, this is enough + * information to override invalid values in the wacom_features table. + * + * 3rd gen Bamboo Touch no longer define a Digitizer-Finger Pysical + * Collection. Instead they define a Logical Collection with a single + * Logical Maximum for both X and Y. + * + * Intuos5 touch interface does not contain useful data. We deal with + * this after returning from this function. + */ +static int wacom_parse_hid(struct usb_interface *intf, + struct hid_descriptor *hid_desc, struct wacom_features *features) { struct usb_device *dev = interface_to_usbdev(intf); @@ -220,12 +294,10 @@ if (features->type == TABLETPC2FG) { /* need to reset back */ features->pktlen = WACOM_PKGLEN_TPC2FG; - features->device_type = BTN_TOOL_DOUBLETAP; } if (features->type == BAMBOO_PT) { /* need to reset back */ features->pktlen = WACOM_PKGLEN_BBTOUCH; - features->device_type = BTN_TOOL_DOUBLETAP; features->x_phy = get_unaligned_le16(&report[i + 5]); features->x_max = @@ -244,8 +316,6 @@ /* penabled only accepts exact bytes of data */ if (features->type == TABLETPC2FG) features->pktlen = WACOM_PKGLEN_GRAPHIRE; - if (features->type == BAMBOO_PT) - features->pktlen = WACOM_PKGLEN_BBFUN; features->device_type = BTN_TOOL_PEN; features->x_max = get_unaligned_le16(&report[i + 3]); @@ -261,7 +331,6 @@ if (features->type == TABLETPC2FG) { /* need to reset back */ features->pktlen = WACOM_PKGLEN_TPC2FG; - features->device_type = BTN_TOOL_DOUBLETAP; features->y_max = get_unaligned_le16(&report[i + 3]); features->y_phy = @@ -270,7 +339,6 @@ } else if (features->type == BAMBOO_PT) { /* need to reset back */ features->pktlen = WACOM_PKGLEN_BBTOUCH; - features->device_type = BTN_TOOL_DOUBLETAP; features->y_phy = get_unaligned_le16(&report[i + 3]); features->y_max = @@ -287,8 +355,6 @@ /* penabled only accepts exact bytes of data */ if (features->type == TABLETPC2FG) features->pktlen = WACOM_PKGLEN_GRAPHIRE; - if (features->type == BAMBOO_PT) - features->pktlen = WACOM_PKGLEN_BBFUN; features->device_type = BTN_TOOL_PEN; features->y_max = get_unaligned_le16(&report[i + 3]); @@ -302,6 +368,11 @@ i++; break; + /* + * Requiring Stylus Usage will ignore boot mouse + * X/Y values and some cases of invalid Digitizer X/Y + * values commonly reported. + */ case HID_USAGE_STYLUS: pen = 1; i++; @@ -309,10 +380,20 @@ } break; - case HID_COLLECTION: + case HID_COLLECTION_END: /* reset UsagePage and Finger */ finger = usage = 0; break; + + case HID_COLLECTION: + i++; + switch (report[i]) { + case HID_COLLECTION_LOGICAL: + i += wacom_parse_logical_collection(&report[i], + features); + break; + } + break; } } @@ -348,7 +429,9 @@ WAC_HID_FEATURE_REPORT, report_id, rep_data, 4, 1); } while ((error < 0 || rep_data[1] != 4) && limit++ < WAC_MSG_RETRIES); - } else if (features->type != TABLETPC) { + } else if (features->type != TABLETPC && + features->type != WIRELESS && + features->device_type == BTN_TOOL_PEN) { do { rep_data[0] = 2; rep_data[1] = 2; @@ -380,6 +463,21 @@ features->pressure_fuzz = 0; features->distance_fuzz = 0; + /* + * The wireless device HID is basic and layout conflicts with + * other tablets (monitor and touch interface can look like pen). + * Skip the query for this type and modify defaults based on + * interface number. + */ + if (features->type == WIRELESS) { + if (intf->cur_altsetting->desc.bInterfaceNumber == 0) { + features->device_type = 0; + } else if (intf->cur_altsetting->desc.bInterfaceNumber == 2) { + features->device_type = BTN_TOOL_DOUBLETAP; + features->pktlen = WACOM_PKGLEN_BBTOUCH3; + } + } + /* only Tablet PCs and Bamboo P&T need to retrieve the info */ if ((features->type != TABLETPC) && (features->type != TABLETPC2FG) && (features->type != BAMBOO_PT)) @@ -479,22 +577,39 @@ static int wacom_led_control(struct wacom *wacom) { unsigned char *buf; - int retval, led = 0; + int retval; buf = kzalloc(9, GFP_KERNEL); if (!buf) return -ENOMEM; - if (wacom->wacom_wac.features.type == WACOM_21UX2) - led = (wacom->led.select[1] << 4) | 0x40; + if (wacom->wacom_wac.features.type >= INTUOS5S && + wacom->wacom_wac.features.type <= INTUOS5L) { + /* + * Touch Ring and crop mark LED luminance may take on + * one of four values: + * 0 = Low; 1 = Medium; 2 = High; 3 = Off + */ + int ring_led = wacom->led.select[0] & 0x03; + int ring_lum = (((wacom->led.llv & 0x60) >> 5) - 1) & 0x03; + int crop_lum = 0; - led |= wacom->led.select[0] | 0x4; + buf[0] = WAC_CMD_LED_CONTROL; + buf[1] = (crop_lum << 4) | (ring_lum << 2) | (ring_led); + } + else { + int led = wacom->led.select[0] | 0x4; - buf[0] = WAC_CMD_LED_CONTROL; - buf[1] = led; - buf[2] = wacom->led.llv; - buf[3] = wacom->led.hlv; - buf[4] = wacom->led.img_lum; + if (wacom->wacom_wac.features.type == WACOM_21UX2 || + wacom->wacom_wac.features.type == WACOM_24HD) + led |= (wacom->led.select[1] << 4) | 0x40; + + buf[0] = WAC_CMD_LED_CONTROL; + buf[1] = led; + buf[2] = wacom->led.llv; + buf[3] = wacom->led.hlv; + buf[4] = wacom->led.img_lum; + } retval = wacom_set_report(wacom->intf, 0x03, WAC_CMD_LED_CONTROL, buf, 9, WAC_CMD_RETRIES); @@ -687,6 +802,17 @@ .attrs = intuos4_led_attrs, }; +static struct attribute *intuos5_led_attrs[] = { + &dev_attr_status0_luminance.attr, + &dev_attr_status_led0_select.attr, + NULL +}; + +static struct attribute_group intuos5_led_attr_group = { + .name = "wacom_led", + .attrs = intuos5_led_attrs, +}; + static int wacom_initialize_leds(struct wacom *wacom) { int error; @@ -704,6 +830,7 @@ &intuos4_led_attr_group); break; + case WACOM_24HD: case WACOM_21UX2: wacom->led.select[0] = 0; wacom->led.select[1] = 0; @@ -715,6 +842,19 @@ &cintiq_led_attr_group); break; + case INTUOS5S: + case INTUOS5: + case INTUOS5L: + wacom->led.select[0] = 0; + wacom->led.select[1] = 0; + wacom->led.llv = 32; + wacom->led.hlv = 0; + wacom->led.img_lum = 0; + + error = sysfs_create_group(&wacom->intf->dev.kobj, + &intuos5_led_attr_group); + break; + default: return 0; } @@ -738,10 +878,164 @@ &intuos4_led_attr_group); break; + case WACOM_24HD: case WACOM_21UX2: sysfs_remove_group(&wacom->intf->dev.kobj, &cintiq_led_attr_group); break; + + case INTUOS5S: + case INTUOS5: + case INTUOS5L: + sysfs_remove_group(&wacom->intf->dev.kobj, + &intuos5_led_attr_group); + break; + } +} + +static enum power_supply_property wacom_battery_props[] = { + POWER_SUPPLY_PROP_CAPACITY +}; + +static int wacom_battery_get_property(struct power_supply *psy, + enum power_supply_property psp, + union power_supply_propval *val) +{ + struct wacom *wacom = container_of(psy, struct wacom, battery); + int ret = 0; + + switch (psp) { + case POWER_SUPPLY_PROP_CAPACITY: + val->intval = + wacom->wacom_wac.battery_capacity * 100 / 31; + break; + default: + ret = -EINVAL; + break; + } + + return ret; +} + +static int wacom_initialize_battery(struct wacom *wacom) +{ + int error = 0; + + if (wacom->wacom_wac.features.quirks & WACOM_QUIRK_MONITOR) { + wacom->battery.properties = wacom_battery_props; + wacom->battery.num_properties = ARRAY_SIZE(wacom_battery_props); + wacom->battery.get_property = wacom_battery_get_property; + wacom->battery.name = "wacom_battery"; + wacom->battery.type = POWER_SUPPLY_TYPE_BATTERY; + wacom->battery.use_for_apm = 0; + + error = power_supply_register(&wacom->usbdev->dev, + &wacom->battery); + } + + return error; +} + +static void wacom_destroy_battery(struct wacom *wacom) +{ + if (wacom->wacom_wac.features.quirks & WACOM_QUIRK_MONITOR) + power_supply_unregister(&wacom->battery); +} + +static int wacom_register_input(struct wacom *wacom) +{ + struct input_dev *input_dev; + struct usb_interface *intf = wacom->intf; + struct usb_device *dev = interface_to_usbdev(intf); + struct wacom_wac *wacom_wac = &(wacom->wacom_wac); + int error; + + input_dev = input_allocate_device(); + if (!input_dev) + return -ENOMEM; + + input_dev->name = wacom_wac->name; + input_dev->dev.parent = &intf->dev; + input_dev->open = wacom_open; + input_dev->close = wacom_close; + usb_to_input_id(dev, &input_dev->id); + input_set_drvdata(input_dev, wacom); + + wacom_wac->input = input_dev; + wacom_setup_input_capabilities(input_dev, wacom_wac); + + error = input_register_device(input_dev); + if (error) { + input_free_device(input_dev); + wacom_wac->input = NULL; + } + + return error; +} + +static void wacom_wireless_work(struct work_struct *work) +{ + struct wacom *wacom = container_of(work, struct wacom, work); + struct usb_device *usbdev = wacom->usbdev; + struct wacom_wac *wacom_wac = &wacom->wacom_wac; + + /* + * Regardless if this is a disconnect or a new tablet, + * remove any existing input devices. + */ + + /* Stylus interface */ + wacom = usb_get_intfdata(usbdev->config->interface[1]); + if (wacom->wacom_wac.input) + input_unregister_device(wacom->wacom_wac.input); + wacom->wacom_wac.input = 0; + + /* Touch interface */ + wacom = usb_get_intfdata(usbdev->config->interface[2]); + if (wacom->wacom_wac.input) + input_unregister_device(wacom->wacom_wac.input); + wacom->wacom_wac.input = 0; + + if (wacom_wac->pid == 0) { + printk(KERN_INFO "wacom: wireless tablet disconnected\n"); + } else { + const struct usb_device_id *id = wacom_ids; + + printk(KERN_INFO + "wacom: wireless tablet connected with PID %x\n", + wacom_wac->pid); + + while (id->match_flags) { + if (id->idVendor == USB_VENDOR_ID_WACOM && + id->idProduct == wacom_wac->pid) + break; + id++; + } + + if (!id->match_flags) { + printk(KERN_INFO + "wacom: ignorning unknown PID.\n"); + return; + } + + /* Stylus interface */ + wacom = usb_get_intfdata(usbdev->config->interface[1]); + wacom_wac = &wacom->wacom_wac; + wacom_wac->features = + *((struct wacom_features *)id->driver_info); + wacom_wac->features.device_type = BTN_TOOL_PEN; + wacom_register_input(wacom); + + /* Touch interface */ + wacom = usb_get_intfdata(usbdev->config->interface[2]); + wacom_wac = &wacom->wacom_wac; + wacom_wac->features = + *((struct wacom_features *)id->driver_info); + wacom_wac->features.pktlen = WACOM_PKGLEN_BBTOUCH3; + wacom_wac->features.device_type = BTN_TOOL_FINGER; + wacom_set_phy_from_res(&wacom_wac->features); + wacom_wac->features.x_max = wacom_wac->features.y_max = 4096; + wacom_register_input(wacom); } } @@ -752,18 +1046,14 @@ struct wacom *wacom; struct wacom_wac *wacom_wac; struct wacom_features *features; - struct input_dev *input_dev; int error; if (!id->driver_info) return -EINVAL; wacom = kzalloc(sizeof(struct wacom), GFP_KERNEL); - input_dev = input_allocate_device(); - if (!wacom || !input_dev) { - error = -ENOMEM; - goto fail1; - } + if (!wacom) + return -ENOMEM; wacom_wac = &wacom->wacom_wac; wacom_wac->features = *((struct wacom_features *)id->driver_info); @@ -789,11 +1079,10 @@ wacom->usbdev = dev; wacom->intf = intf; mutex_init(&wacom->lock); + INIT_WORK(&wacom->work, wacom_wireless_work); usb_make_path(dev, wacom->phys, sizeof(wacom->phys)); strlcat(wacom->phys, "/input0", sizeof(wacom->phys)); - wacom_wac->input = input_dev; - endpoint = &intf->cur_altsetting->endpoint[0].desc; /* Retrieve the physical and logical size for OEM devices */ @@ -801,6 +1090,28 @@ if (error) goto fail3; + /* + * Intuos5 has no useful data about its touch interface in its + * HID descriptor. If this is the touch interface (wMaxPacketSize + * of WACOM_PKGLEN_BBTOUCH3), override the table values. + */ + if (features->type >= INTUOS5S && features->type <= INTUOS5L) { + if (endpoint->wMaxPacketSize == WACOM_PKGLEN_BBTOUCH3) { + features->device_type = BTN_TOOL_FINGER; + features->pktlen = WACOM_PKGLEN_BBTOUCH3; + + features->x_phy = + (features->x_max * 100) / features->x_resolution; + features->y_phy = + (features->y_max * 100) / features->y_resolution; + + features->x_max = 4096; + features->y_max = 4096; + } else { + features->device_type = BTN_TOOL_PEN; + } + } + wacom_setup_device_quirks(features); strlcpy(wacom_wac->name, features->name, sizeof(wacom_wac->name)); @@ -817,15 +1128,6 @@ goto fail3; } - input_dev->name = wacom_wac->name; - input_dev->dev.parent = &intf->dev; - input_dev->open = wacom_open; - input_dev->close = wacom_close; - usb_to_input_id(dev, &input_dev->id); - input_set_drvdata(input_dev, wacom); - - wacom_setup_input_capabilities(input_dev, wacom_wac); - usb_fill_int_urb(wacom->irq, dev, usb_rcvintpipe(dev, endpoint->bEndpointAddress), wacom_wac->data, features->pktlen, @@ -837,22 +1139,34 @@ if (error) goto fail4; - error = input_register_device(input_dev); + error = wacom_initialize_battery(wacom); if (error) goto fail5; + if (!(features->quirks & WACOM_QUIRK_NO_INPUT)) { + error = wacom_register_input(wacom); + if (error) + goto fail6; + } + /* Note that if query fails it is not a hard failure */ wacom_query_tablet_data(intf, features); usb_set_intfdata(intf, wacom); + + if (features->quirks & WACOM_QUIRK_MONITOR) { + if (usb_submit_urb(wacom->irq, GFP_KERNEL)) + goto fail5; + } + return 0; + fail6: wacom_destroy_battery(wacom); fail5: wacom_destroy_leds(wacom); fail4: wacom_remove_shared_data(wacom_wac); fail3: usb_free_urb(wacom->irq); fail2: usb_free_coherent(dev, WACOM_PKGLEN_MAX, wacom_wac->data, wacom->data_dma); - fail1: input_free_device(input_dev); - kfree(wacom); + fail1: kfree(wacom); return error; } @@ -863,7 +1177,10 @@ usb_set_intfdata(intf, NULL); usb_kill_urb(wacom->irq); - input_unregister_device(wacom->wacom_wac.input); + cancel_work_sync(&wacom->work); + if (wacom->wacom_wac.input) + input_unregister_device(wacom->wacom_wac.input); + wacom_destroy_battery(wacom); wacom_destroy_leds(wacom); usb_free_urb(wacom->irq); usb_free_coherent(interface_to_usbdev(intf), WACOM_PKGLEN_MAX, @@ -895,7 +1212,8 @@ wacom_query_tablet_data(intf, features); wacom_led_control(wacom); - if (wacom->open && usb_submit_urb(wacom->irq, GFP_NOIO) < 0) + if ((wacom->open || features->quirks & WACOM_QUIRK_MONITOR) + && usb_submit_urb(wacom->irq, GFP_NOIO) < 0) rv = -EIO; mutex_unlock(&wacom->lock); --- linux-3.2.0.orig/drivers/input/tablet/wacom_wac.h +++ linux-3.2.0/drivers/input/tablet/wacom_wac.h @@ -12,7 +12,7 @@ #include /* maximum packet length for USB devices */ -#define WACOM_PKGLEN_MAX 32 +#define WACOM_PKGLEN_MAX 64 /* packet length for individual models */ #define WACOM_PKGLEN_PENPRTN 7 @@ -22,6 +22,9 @@ #define WACOM_PKGLEN_TPC1FG 5 #define WACOM_PKGLEN_TPC2FG 14 #define WACOM_PKGLEN_BBTOUCH 20 +#define WACOM_PKGLEN_BBTOUCH3 64 +#define WACOM_PKGLEN_BBPEN 10 +#define WACOM_PKGLEN_WIRELESS 32 /* device IDs */ #define STYLUS_DEVICE_ID 0x02 @@ -35,12 +38,17 @@ #define WACOM_REPORT_INTUOSREAD 5 #define WACOM_REPORT_INTUOSWRITE 6 #define WACOM_REPORT_INTUOSPAD 12 +#define WACOM_REPORT_INTUOS5PAD 3 #define WACOM_REPORT_TPC1FG 6 #define WACOM_REPORT_TPC2FG 13 +#define WACOM_REPORT_TPCHID 15 +#define WACOM_REPORT_TPCST 16 /* device quirks */ #define WACOM_QUIRK_MULTI_INPUT 0x0001 #define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002 +#define WACOM_QUIRK_NO_INPUT 0x0004 +#define WACOM_QUIRK_MONITOR 0x0008 enum { PENPARTNER = 0, @@ -50,6 +58,7 @@ PL, DTU, BAMBOO_PT, + WIRELESS, INTUOS, INTUOS3S, INTUOS3, @@ -57,6 +66,10 @@ INTUOS4S, INTUOS4, INTUOS4L, + INTUOS5S, + INTUOS5, + INTUOS5L, + WACOM_24HD, WACOM_21UX2, CINTIQ, WACOM_BEE, @@ -102,6 +115,8 @@ struct wacom_features features; struct wacom_shared *shared; struct input_dev *input; + int pid; + int battery_capacity; }; #endif --- linux-3.2.0.orig/drivers/input/tablet/wacom_wac.c +++ linux-3.2.0/drivers/input/tablet/wacom_wac.c @@ -321,6 +321,9 @@ /* Enter report */ if ((data[1] & 0xfc) == 0xc0) { + if (features->type >= INTUOS5S && features->type <= INTUOS5L) + wacom->shared->stylus_in_proximity = true; + /* serial number of the tool */ wacom->serial[idx] = ((data[3] & 0x0f) << 28) + (data[4] << 20) + (data[5] << 12) + @@ -406,6 +409,9 @@ /* Exit report */ if ((data[1] & 0xfe) == 0x80) { + if (features->type >= INTUOS5S && features->type <= INTUOS5L) + wacom->shared->stylus_in_proximity = false; + /* * Reset all states otherwise we lose the initial states * when in-prox next time @@ -452,7 +458,8 @@ if ((data[1] & 0xb8) == 0xa0) { t = (data[6] << 2) | ((data[7] >> 6) & 3); if ((features->type >= INTUOS4S && features->type <= INTUOS4L) || - features->type == WACOM_21UX2) { + (features->type >= INTUOS5S && features->type <= INTUOS5L) || + features->type == WACOM_21UX2 || features->type == WACOM_24HD) { t = (t << 1) | (data[1] & 1); } input_report_abs(input, ABS_PRESSURE, t); @@ -483,7 +490,8 @@ int idx = 0, result; if (data[0] != WACOM_REPORT_PENABLED && data[0] != WACOM_REPORT_INTUOSREAD - && data[0] != WACOM_REPORT_INTUOSWRITE && data[0] != WACOM_REPORT_INTUOSPAD) { + && data[0] != WACOM_REPORT_INTUOSWRITE && data[0] != WACOM_REPORT_INTUOSPAD + && data[0] != WACOM_REPORT_INTUOS5PAD) { dbg("wacom_intuos_irq: received unknown report #%d", data[0]); return 0; } @@ -493,7 +501,7 @@ idx = data[1] & 0x01; /* pad packets. Works as a second tool and is always in prox */ - if (data[0] == WACOM_REPORT_INTUOSPAD) { + if (data[0] == WACOM_REPORT_INTUOSPAD || data[0] == WACOM_REPORT_INTUOS5PAD) { if (features->type >= INTUOS4S && features->type <= INTUOS4L) { input_report_key(input, BTN_0, (data[2] & 0x01)); input_report_key(input, BTN_1, (data[3] & 0x01)); @@ -519,6 +527,84 @@ input_report_key(input, wacom->tool[1], 0); input_report_abs(input, ABS_MISC, 0); } + } else if (features->type == WACOM_24HD) { + input_report_key(input, BTN_0, (data[6] & 0x01)); + input_report_key(input, BTN_1, (data[6] & 0x02)); + input_report_key(input, BTN_2, (data[6] & 0x04)); + input_report_key(input, BTN_3, (data[6] & 0x08)); + input_report_key(input, BTN_4, (data[6] & 0x10)); + input_report_key(input, BTN_5, (data[6] & 0x20)); + input_report_key(input, BTN_6, (data[6] & 0x40)); + input_report_key(input, BTN_7, (data[6] & 0x80)); + input_report_key(input, BTN_8, (data[8] & 0x01)); + input_report_key(input, BTN_9, (data[8] & 0x02)); + input_report_key(input, BTN_A, (data[8] & 0x04)); + input_report_key(input, BTN_B, (data[8] & 0x08)); + input_report_key(input, BTN_C, (data[8] & 0x10)); + input_report_key(input, BTN_X, (data[8] & 0x20)); + input_report_key(input, BTN_Y, (data[8] & 0x40)); + input_report_key(input, BTN_Z, (data[8] & 0x80)); + + /* + * Three "buttons" are available on the 24HD which are + * physically implemented as a touchstrip. Each button + * is approximately 3 bits wide with a 2 bit spacing. + * The raw touchstrip bits are stored at: + * ((data[3] & 0x1f) << 8) | data[4]) + */ + input_report_key(input, KEY_PROG1, data[4] & 0x07); + input_report_key(input, KEY_PROG2, data[4] & 0xE0); + input_report_key(input, KEY_PROG3, data[3] & 0x1C); + + if (data[1] & 0x80) { + input_report_abs(input, ABS_WHEEL, (data[1] & 0x7f)); + } else { + /* Out of proximity, clear wheel value. */ + input_report_abs(input, ABS_WHEEL, 0); + } + + if (data[2] & 0x80) { + input_report_abs(input, ABS_THROTTLE, (data[2] & 0x7f)); + } else { + /* Out of proximity, clear second wheel value. */ + input_report_abs(input, ABS_THROTTLE, 0); + } + + if (data[1] | data[2] | (data[3] & 0x1f) | data[4] | data[6] | data[8]) { + input_report_key(input, wacom->tool[1], 1); + input_report_abs(input, ABS_MISC, PAD_DEVICE_ID); + } else { + input_report_key(input, wacom->tool[1], 0); + input_report_abs(input, ABS_MISC, 0); + } + } else if (features->type >= INTUOS5S && features->type <= INTUOS5L) { + int i; + + /* Touch ring mode switch has no capacitive sensor */ + input_report_key(input, BTN_0, (data[3] & 0x01)); + + /* + * ExpressKeys on Intuos5 have a capacitive sensor in + * addition to the mechanical switch. Switch data is + * stored in data[4], capacitive data in data[5]. + */ + for (i = 0; i < 8; i++) + input_report_key(input, BTN_1 + i, data[4] & (1 << i)); + + if (data[2] & 0x80) { + input_report_abs(input, ABS_WHEEL, (data[2] & 0x7f)); + } else { + /* Out of proximity, clear wheel value. */ + input_report_abs(input, ABS_WHEEL, 0); + } + + if (data[2] | (data[3] & 0x01) | data[4]) { + input_report_key(input, wacom->tool[1], 1); + input_report_abs(input, ABS_MISC, PAD_DEVICE_ID); + } else { + input_report_key(input, wacom->tool[1], 0); + input_report_abs(input, ABS_MISC, 0); + } } else { if (features->type == WACOM_21UX2) { input_report_key(input, BTN_0, (data[5] & 0x01)); @@ -582,7 +668,9 @@ (features->type == INTUOS3 || features->type == INTUOS3S || features->type == INTUOS4 || - features->type == INTUOS4S)) { + features->type == INTUOS4S || + features->type == INTUOS5 || + features->type == INTUOS5S)) { return 0; } @@ -635,7 +723,8 @@ } else if (wacom->tool[idx] == BTN_TOOL_MOUSE) { /* I4 mouse */ - if (features->type >= INTUOS4S && features->type <= INTUOS4L) { + if ((features->type >= INTUOS4S && features->type <= INTUOS4L) || + (features->type >= INTUOS5S && features->type <= INTUOS5L)) { input_report_key(input, BTN_LEFT, data[6] & 0x01); input_report_key(input, BTN_MIDDLE, data[6] & 0x02); input_report_key(input, BTN_RIGHT, data[6] & 0x04); @@ -662,7 +751,7 @@ } } } else if ((features->type < INTUOS3S || features->type == INTUOS3L || - features->type == INTUOS4L) && + features->type == INTUOS4L || features->type == INTUOS5L) && wacom->tool[idx] == BTN_TOOL_LENS) { /* Lens cursor packets */ input_report_key(input, BTN_LEFT, data[8] & 0x01); @@ -782,12 +871,24 @@ dbg("wacom_tpc_irq: received report #%d", data[0]); - if (len == WACOM_PKGLEN_TPC1FG || data[0] == WACOM_REPORT_TPC1FG) - return wacom_tpc_single_touch(wacom, len); - else if (data[0] == WACOM_REPORT_TPC2FG) - return wacom_tpc_mt_touch(wacom); - else if (data[0] == WACOM_REPORT_PENABLED) - return wacom_tpc_pen(wacom); + switch (len) { + case WACOM_PKGLEN_TPC1FG: + return wacom_tpc_single_touch(wacom, len); + + case WACOM_PKGLEN_TPC2FG: + return wacom_tpc_mt_touch(wacom); + + default: + switch (data[0]) { + case WACOM_REPORT_TPC1FG: + case WACOM_REPORT_TPCHID: + case WACOM_REPORT_TPCST: + return wacom_tpc_single_touch(wacom, len); + + case WACOM_REPORT_PENABLED: + return wacom_tpc_pen(wacom); + } + } return 0; } @@ -799,6 +900,9 @@ unsigned char *data = wacom->data; int i; + if (data[0] != 0x02) + return 0; + for (i = 0; i < 2; i++) { int offset = (data[1] & 0x80) ? (8 * i) : (9 * i); bool touch = data[offset + 3] & 0x80; @@ -837,18 +941,77 @@ return 0; } +static void wacom_bpt3_touch_msg(struct wacom_wac *wacom, unsigned char *data) +{ + struct input_dev *input = wacom->input; + int slot_id = data[0] - 2; /* data[0] is between 2 and 17 */ + bool touch = data[1] & 0x80; + + touch = touch && !wacom->shared->stylus_in_proximity; + + input_mt_slot(input, slot_id); + input_mt_report_slot_state(input, MT_TOOL_FINGER, touch); + + if (touch) { + int x = (data[2] << 4) | (data[4] >> 4); + int y = (data[3] << 4) | (data[4] & 0x0f); + int w = data[6]; + + input_report_abs(input, ABS_MT_POSITION_X, x); + input_report_abs(input, ABS_MT_POSITION_Y, y); + input_report_abs(input, ABS_MT_TOUCH_MAJOR, w); + } +} + +static void wacom_bpt3_button_msg(struct wacom_wac *wacom, unsigned char *data) +{ + struct input_dev *input = wacom->input; + + input_report_key(input, BTN_LEFT, (data[1] & 0x08) != 0); + input_report_key(input, BTN_FORWARD, (data[1] & 0x04) != 0); + input_report_key(input, BTN_BACK, (data[1] & 0x02) != 0); + input_report_key(input, BTN_RIGHT, (data[1] & 0x01) != 0); +} + +static int wacom_bpt3_touch(struct wacom_wac *wacom) +{ + struct input_dev *input = wacom->input; + unsigned char *data = wacom->data; + int count = data[1] & 0x07; + int i; + + if (data[0] != 0x02) + return 0; + + /* data has up to 7 fixed sized 8-byte messages starting at data[2] */ + for (i = 0; i < count; i++) { + int offset = (8 * i) + 2; + int msg_id = data[offset]; + + if (msg_id >= 2 && msg_id <= 17) + wacom_bpt3_touch_msg(wacom, data + offset); + else if (msg_id == 128) + wacom_bpt3_button_msg(wacom, data + offset); + + } + + input_mt_report_pointer_emulation(input, true); + + input_sync(input); + + return 0; +} + static int wacom_bpt_pen(struct wacom_wac *wacom) { struct input_dev *input = wacom->input; unsigned char *data = wacom->data; int prox = 0, x = 0, y = 0, p = 0, d = 0, pen = 0, btn1 = 0, btn2 = 0; - /* - * Similar to Graphire protocol, data[1] & 0x20 is proximity and - * data[1] & 0x18 is tool ID. 0x30 is safety check to ignore - * 2 unused tool ID's. - */ - prox = (data[1] & 0x30) == 0x30; + if (data[0] != 0x02) + return 0; + + prox = (data[1] & 0x20) == 0x20; /* * All reports shared between PEN and RUBBER tool must be @@ -912,12 +1075,43 @@ { if (len == WACOM_PKGLEN_BBTOUCH) return wacom_bpt_touch(wacom); - else if (len == WACOM_PKGLEN_BBFUN) + else if (len == WACOM_PKGLEN_BBTOUCH3) + return wacom_bpt3_touch(wacom); + else if (len == WACOM_PKGLEN_BBFUN || len == WACOM_PKGLEN_BBPEN) return wacom_bpt_pen(wacom); return 0; } +static int wacom_wireless_irq(struct wacom_wac *wacom, size_t len) +{ + unsigned char *data = wacom->data; + int connected; + + if (len != WACOM_PKGLEN_WIRELESS || data[0] != 0x80) + return 0; + + connected = data[1] & 0x01; + if (connected) { + int pid, battery; + + pid = get_unaligned_be16(&data[6]); + battery = data[5] & 0x3f; + if (wacom->pid != pid) { + wacom->pid = pid; + wacom_schedule_work(wacom); + } + wacom->battery_capacity = battery; + } else if (wacom->pid != 0) { + /* disconnected while previously connected */ + wacom->pid = 0; + wacom_schedule_work(wacom); + wacom->battery_capacity = 0; + } + + return 0; +} + void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len) { bool sync; @@ -955,9 +1149,19 @@ case CINTIQ: case WACOM_BEE: case WACOM_21UX2: + case WACOM_24HD: sync = wacom_intuos_irq(wacom_wac); break; + case INTUOS5S: + case INTUOS5: + case INTUOS5L: + if (len == WACOM_PKGLEN_BBTOUCH3) + sync = wacom_bpt3_touch(wacom_wac); + else + sync = wacom_intuos_irq(wacom_wac); + break; + case TABLETPC: case TABLETPC2FG: sync = wacom_tpc_irq(wacom_wac, len); @@ -967,6 +1171,10 @@ sync = wacom_bpt_irq(wacom_wac, len); break; + case WIRELESS: + sync = wacom_wireless_irq(wacom_wac, len); + break; + default: sync = false; break; @@ -1028,18 +1236,29 @@ /* these device have multiple inputs */ if (features->type == TABLETPC || features->type == TABLETPC2FG || - features->type == BAMBOO_PT) + features->type == BAMBOO_PT || features->type == WIRELESS || + (features->type >= INTUOS5S && features->type <= INTUOS5L)) features->quirks |= WACOM_QUIRK_MULTI_INPUT; - /* quirks for bamboo touch */ + /* quirk for bamboo touch with 2 low res touches */ if (features->type == BAMBOO_PT && - features->device_type == BTN_TOOL_DOUBLETAP) { + features->pktlen == WACOM_PKGLEN_BBTOUCH) { features->x_max <<= 5; features->y_max <<= 5; features->x_fuzz <<= 5; features->y_fuzz <<= 5; features->quirks |= WACOM_QUIRK_BBTOUCH_LOWRES; } + + if (features->type == WIRELESS) { + + /* monitor never has input and pen/touch have delayed create */ + features->quirks |= WACOM_QUIRK_NO_INPUT; + + /* must be monitor interface if no device_type set */ + if (!features->device_type) + features->quirks |= WACOM_QUIRK_MONITOR; + } } static unsigned int wacom_calculate_touch_res(unsigned int logical_max, @@ -1110,6 +1329,26 @@ __set_bit(INPUT_PROP_POINTER, input_dev->propbit); break; + case WACOM_24HD: + __set_bit(BTN_A, input_dev->keybit); + __set_bit(BTN_B, input_dev->keybit); + __set_bit(BTN_C, input_dev->keybit); + __set_bit(BTN_X, input_dev->keybit); + __set_bit(BTN_Y, input_dev->keybit); + __set_bit(BTN_Z, input_dev->keybit); + + for (i = 0; i < 10; i++) + __set_bit(BTN_0 + i, input_dev->keybit); + + __set_bit(KEY_PROG1, input_dev->keybit); + __set_bit(KEY_PROG2, input_dev->keybit); + __set_bit(KEY_PROG3, input_dev->keybit); + + input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0); + input_set_abs_params(input_dev, ABS_THROTTLE, 0, 71, 0, 0); + wacom_setup_cintiq(wacom_wac); + break; + case WACOM_21UX2: __set_bit(BTN_A, input_dev->keybit); __set_bit(BTN_B, input_dev->keybit); @@ -1165,6 +1404,50 @@ wacom_setup_intuos(wacom_wac); break; + case INTUOS5: + case INTUOS5L: + if (features->device_type == BTN_TOOL_PEN) { + __set_bit(BTN_7, input_dev->keybit); + __set_bit(BTN_8, input_dev->keybit); + } + /* fall through */ + + case INTUOS5S: + __set_bit(INPUT_PROP_POINTER, input_dev->propbit); + + if (features->device_type == BTN_TOOL_PEN) { + for (i = 0; i < 7; i++) + __set_bit(BTN_0 + i, input_dev->keybit); + + input_set_abs_params(input_dev, ABS_DISTANCE, 0, + features->distance_max, + 0, 0); + + input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0); + + wacom_setup_intuos(wacom_wac); + } else if (features->device_type == BTN_TOOL_FINGER) { + __clear_bit(ABS_MISC, input_dev->absbit); + + __set_bit(BTN_TOOL_FINGER, input_dev->keybit); + __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); + __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit); + __set_bit(BTN_TOOL_QUADTAP, input_dev->keybit); + + input_mt_init_slots(input_dev, 16); + + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, + 0, 255, 0, 0); + + input_set_abs_params(input_dev, ABS_MT_POSITION_X, + 0, features->x_max, + features->x_fuzz, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, + 0, features->y_max, + features->y_fuzz, 0); + } + break; + case INTUOS4: case INTUOS4L: __set_bit(BTN_7, input_dev->keybit); @@ -1182,7 +1465,7 @@ break; case TABLETPC2FG: - if (features->device_type == BTN_TOOL_DOUBLETAP) { + if (features->device_type == BTN_TOOL_FINGER) { input_mt_init_slots(input_dev, 2); input_set_abs_params(input_dev, ABS_MT_TOOL_TYPE, @@ -1231,7 +1514,7 @@ __set_bit(INPUT_PROP_POINTER, input_dev->propbit); - if (features->device_type == BTN_TOOL_DOUBLETAP) { + if (features->device_type == BTN_TOOL_FINGER) { __set_bit(BTN_LEFT, input_dev->keybit); __set_bit(BTN_FORWARD, input_dev->keybit); __set_bit(BTN_BACK, input_dev->keybit); @@ -1240,7 +1523,21 @@ __set_bit(BTN_TOOL_FINGER, input_dev->keybit); __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); - input_mt_init_slots(input_dev, 2); + if (features->pktlen == WACOM_PKGLEN_BBTOUCH3) { + __set_bit(BTN_TOOL_TRIPLETAP, + input_dev->keybit); + __set_bit(BTN_TOOL_QUADTAP, + input_dev->keybit); + + input_mt_init_slots(input_dev, 16); + + input_set_abs_params(input_dev, + ABS_MT_TOUCH_MAJOR, + 0, 255, 0, 0); + } else { + input_mt_init_slots(input_dev, 2); + } + input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, features->x_max, features->x_fuzz, 0); @@ -1425,6 +1722,24 @@ static const struct wacom_features wacom_features_0xBC = { "Wacom Intuos4 WL", WACOM_PKGLEN_INTUOS, 40840, 25400, 2047, 63, INTUOS4, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES }; +static const struct wacom_features wacom_features_0x26 = + { "Wacom Intuos5 touch S", WACOM_PKGLEN_INTUOS, 31496, 19685, 2047, + 63, INTUOS5S, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES }; +static const struct wacom_features wacom_features_0x27 = + { "Wacom Intuos5 touch M", WACOM_PKGLEN_INTUOS, 44704, 27940, 2047, + 63, INTUOS5, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES }; +static const struct wacom_features wacom_features_0x28 = + { "Wacom Intuos5 touch L", WACOM_PKGLEN_INTUOS, 65024, 40640, 2047, + 63, INTUOS5L, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES }; +static const struct wacom_features wacom_features_0x29 = + { "Wacom Intuos5 S", WACOM_PKGLEN_INTUOS, 31496, 19685, 2047, + 63, INTUOS5S, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES }; +static const struct wacom_features wacom_features_0x2A = + { "Wacom Intuos5 M", WACOM_PKGLEN_INTUOS, 44704, 27940, 2047, + 63, INTUOS5, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES }; +static const struct wacom_features wacom_features_0xF4 = + { "Wacom Cintiq 24HD", WACOM_PKGLEN_INTUOS, 104480, 65600, 2047, + 63, WACOM_24HD, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES }; static const struct wacom_features wacom_features_0x3F = { "Wacom Cintiq 21UX", WACOM_PKGLEN_INTUOS, 87200, 65600, 1023, 63, CINTIQ, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES }; @@ -1476,6 +1791,9 @@ static const struct wacom_features wacom_features_0x47 = { "Wacom Intuos2 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023, 31, INTUOS, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; +static const struct wacom_features wacom_features_0x84 = + { "Wacom Wireless Receiver", WACOM_PKGLEN_WIRELESS, 0, 0, 0, + 0, WIRELESS, 0, 0 }; static const struct wacom_features wacom_features_0xD0 = { "Wacom Bamboo 2FG", WACOM_PKGLEN_BBFUN, 14720, 9200, 1023, 31, BAMBOO_PT, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; @@ -1509,6 +1827,15 @@ static struct wacom_features wacom_features_0xDB = { "Wacom Bamboo 2FG 6x8 SE", WACOM_PKGLEN_BBFUN, 21648, 13700, 1023, 31, BAMBOO_PT, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; +static const struct wacom_features wacom_features_0xDD = + { "Wacom Bamboo Connect", WACOM_PKGLEN_BBPEN, 14720, 9200, 1023, + 31, BAMBOO_PT, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; +static const struct wacom_features wacom_features_0xDE = + { "Wacom Bamboo 16FG 4x5", WACOM_PKGLEN_BBPEN, 14720, 9200, 1023, + 31, BAMBOO_PT, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; +static const struct wacom_features wacom_features_0xDF = + { "Wacom Bamboo 16FG 6x8", WACOM_PKGLEN_BBPEN, 21648, 13700, 1023, + 31, BAMBOO_PT, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; static const struct wacom_features wacom_features_0x6004 = { "ISD-V4", WACOM_PKGLEN_GRAPHIRE, 12800, 8000, 255, 0, TABLETPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; @@ -1582,6 +1909,11 @@ { USB_DEVICE_WACOM(0xBA) }, { USB_DEVICE_WACOM(0xBB) }, { USB_DEVICE_WACOM(0xBC) }, + { USB_DEVICE_WACOM(0x26) }, + { USB_DEVICE_WACOM(0x27) }, + { USB_DEVICE_WACOM(0x28) }, + { USB_DEVICE_WACOM(0x29) }, + { USB_DEVICE_WACOM(0x2A) }, { USB_DEVICE_WACOM(0x3F) }, { USB_DEVICE_WACOM(0xC5) }, { USB_DEVICE_WACOM(0xC6) }, @@ -1593,6 +1925,7 @@ { USB_DEVICE_DETAILED(0xCE, USB_CLASS_HID, USB_INTERFACE_SUBCLASS_BOOT, USB_INTERFACE_PROTOCOL_MOUSE) }, + { USB_DEVICE_WACOM(0x84) }, { USB_DEVICE_WACOM(0xD0) }, { USB_DEVICE_WACOM(0xD1) }, { USB_DEVICE_WACOM(0xD2) }, @@ -1604,6 +1937,9 @@ { USB_DEVICE_WACOM(0xD8) }, { USB_DEVICE_WACOM(0xDA) }, { USB_DEVICE_WACOM(0xDB) }, + { USB_DEVICE_WACOM(0xDD) }, + { USB_DEVICE_WACOM(0xDE) }, + { USB_DEVICE_WACOM(0xDF) }, { USB_DEVICE_WACOM(0xF0) }, { USB_DEVICE_WACOM(0xCC) }, { USB_DEVICE_WACOM(0x90) }, @@ -1616,6 +1952,7 @@ { USB_DEVICE_WACOM(0xE6) }, { USB_DEVICE_WACOM(0xEC) }, { USB_DEVICE_WACOM(0x47) }, + { USB_DEVICE_WACOM(0xF4) }, { USB_DEVICE_LENOVO(0x6004) }, { } }; --- linux-3.2.0.orig/drivers/input/tablet/wacom.h +++ linux-3.2.0/drivers/input/tablet/wacom.h @@ -88,6 +88,7 @@ #include #include #include +#include #include /* @@ -112,6 +113,7 @@ struct urb *irq; struct wacom_wac wacom_wac; struct mutex lock; + struct work_struct work; bool open; char phys[32]; struct wacom_led { @@ -120,8 +122,15 @@ u8 hlv; /* status led brightness button pressed (1..127) */ u8 img_lum; /* OLED matrix display brightness */ } led; + struct power_supply battery; }; +static inline void wacom_schedule_work(struct wacom_wac *wacom_wac) +{ + struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac); + schedule_work(&wacom->work); +} + extern const struct usb_device_id wacom_ids[]; void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len); --- linux-3.2.0.orig/drivers/input/serio/i8042-x86ia64io.h +++ linux-3.2.0/drivers/input/serio/i8042-x86ia64io.h @@ -177,6 +177,20 @@ }, }, { + /* Gigabyte T1005 - defines wrong chassis type ("Other") */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"), + DMI_MATCH(DMI_PRODUCT_NAME, "T1005"), + }, + }, + { + /* Gigabyte T1005M/P - defines wrong chassis type ("Other") */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"), + DMI_MATCH(DMI_PRODUCT_NAME, "T1005M/P"), + }, + }, + { .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv9700"), @@ -321,6 +335,12 @@ }, { .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE C850D"), + }, + }, + { + .matches = { DMI_MATCH(DMI_SYS_VENDOR, "ALIENWARE"), DMI_MATCH(DMI_PRODUCT_NAME, "Sentia"), }, @@ -894,6 +914,7 @@ int retval; #ifdef CONFIG_X86 + u8 a20_on = 0xdf; /* Just return if pre-detection shows no i8042 controller exist */ if (!x86_platform.i8042_detect()) return -ENODEV; @@ -933,6 +954,14 @@ if (dmi_check_system(i8042_dmi_dritek_table)) i8042_dritek = true; + + /* + * A20 was already enabled during early kernel init. But some buggy + * BIOSes (in MSI Laptops) require A20 to be enabled using 8042 to + * resume from S3. So we do it here and hope that nothing breaks. + */ + i8042_command(&a20_on, 0x10d1); + i8042_command(NULL, 0x00ff); /* Null command for SMM firmware */ #endif /* CONFIG_X86 */ return retval; --- linux-3.2.0.orig/drivers/input/serio/i8042.c +++ linux-3.2.0/drivers/input/serio/i8042.c @@ -991,7 +991,7 @@ * Reset the controller and reset CRT to the original value set by BIOS. */ -static void i8042_controller_reset(void) +static void i8042_controller_reset(bool force_reset) { i8042_flush(); @@ -1016,7 +1016,7 @@ * Reset the controller if requested. */ - if (i8042_reset) + if (i8042_reset || force_reset) i8042_controller_selftest(); /* @@ -1139,9 +1139,9 @@ * upsetting it. */ -static int i8042_pm_reset(struct device *dev) +static int i8042_pm_suspend(struct device *dev) { - i8042_controller_reset(); + i8042_controller_reset(true); return 0; } @@ -1163,13 +1163,20 @@ return 0; } +static int i8042_pm_reset(struct device *dev) +{ + i8042_controller_reset(false); + + return 0; +} + static int i8042_pm_restore(struct device *dev) { return i8042_controller_resume(false); } static const struct dev_pm_ops i8042_pm_ops = { - .suspend = i8042_pm_reset, + .suspend = i8042_pm_suspend, .resume = i8042_pm_resume, .thaw = i8042_pm_thaw, .poweroff = i8042_pm_reset, @@ -1185,7 +1192,7 @@ static void i8042_shutdown(struct platform_device *dev) { - i8042_controller_reset(); + i8042_controller_reset(false); } static int __init i8042_create_kbd_port(void) @@ -1424,7 +1431,7 @@ out_fail: i8042_free_aux_ports(); /* in case KBD failed but AUX not */ i8042_free_irqs(); - i8042_controller_reset(); + i8042_controller_reset(false); i8042_platform_device = NULL; return error; @@ -1434,7 +1441,7 @@ { i8042_unregister_ports(); i8042_free_irqs(); - i8042_controller_reset(); + i8042_controller_reset(false); i8042_platform_device = NULL; return 0; --- linux-3.2.0.orig/drivers/input/mouse/cypress_ps2.c +++ linux-3.2.0/drivers/input/mouse/cypress_ps2.c @@ -0,0 +1,965 @@ +/* + * Cypress Trackpad PS/2 mouse driver + * + * Copyright (c) 2012 Cypress Semiconductor Corporation. + * + * Additional contributors include: + * Kamal Mostafa + * Kyle Fazzari + * + * 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 + +#include "cypress_ps2.h" + +#define CYTP_DBG 1 +#if CYTP_DBG +static int debug_level; +module_param_named(cy_debug, debug_level, int, 0644); +MODULE_PARM_DESC(cy_debug, "Set CyPS/2 debug output level (0, 1, or 2)"); +#define cytp_dbg(fmt, ...) \ + do { \ + if (cytp && debug_level) \ + pr_err(pr_fmt(fmt), ##__VA_ARGS__); \ + } while (0) +#define cytp_dbg_dump(fmt, ...) \ + do { \ + if (cytp && debug_level > 1) \ + pr_err(pr_fmt(fmt), ##__VA_ARGS__); \ + } while (0) +#else +#define cytp_dbg(fmt, ...) do { cytp = cytp; } while (0) +#define cytp_dbg_dump(fmt, ...) do { cytp = cytp; } while (0) +#endif + +static int read_timeout = 200; +module_param_named(cy_read_timeout, read_timeout, int, 0644); +MODULE_PARM_DESC(cy_read_timeout, "Set CyPS/2 cmd read timeout (default 200 msec)"); + + +/* p is a pointer points to the buffer containing Cypress Keys. */ +#define IS_CYPRESS_KEY(p) ((p[0] == CYPRESS_KEY_1) && (p[1] == CYPRESS_KEY_2)) +#define CYTP_SET_PACKET_SIZE(n) { psmouse->pktsize = cytp->pkt_size = (n); } +#define CYTP_SET_MODE_BIT(x) \ + do { \ + if ((x) & CYTP_BIT_ABS_REL_MASK) \ + cytp->mode = (cytp->mode & ~CYTP_BIT_ABS_REL_MASK) | (x); \ + else \ + cytp->mode |= (x); \ + } while (0) +#define CYTP_CLEAR_MODE_BIT(x) { cytp->mode &= ~(x); } + +#define CYTP_SUPPORT_ABS + +static unsigned char cytp_rate[] = {10, 20, 40, 60, 100, 200}; +static unsigned char cytp_resolution[] = {0x00, 0x01, 0x02, 0x03}; + +static int cypress_ps2_sendbyte(struct psmouse *psmouse, int value) +{ + struct cytp_data *cytp = psmouse->private; + struct ps2dev *ps2dev = &psmouse->ps2dev; + + if (ps2_sendbyte(ps2dev, value & 0xff, CYTP_CMD_TIMEOUT) < 0) { + cytp_dbg("send command 0x%02x failed, resp 0x%02x\n", + value & 0xff, ps2dev->nak); + if (ps2dev->nak == CYTP_PS2_RETRY) + return CYTP_PS2_RETRY; + else + return CYTP_PS2_ERROR; + } + + cytp_dbg("send command 0x%02x success, resp 0xfa\n", value & 0xff); + + return 0; +} + +static int cypress_ps2_ext_cmd(struct psmouse *psmouse, unsigned short cmd, + unsigned char data) +{ + struct ps2dev *ps2dev = &psmouse->ps2dev; + int tries = CYTP_PS2_CMD_TRIES; + int rc; + + ps2_begin_command(ps2dev); + + do { + /* + * send extension command 0xE8 or 0xF3, + * if send extension command failed, + * try to send recovery command to make + * trackpad device return to ready wait command state. + * It alwasy success based on this recovery commands. + */ + rc = cypress_ps2_sendbyte(psmouse, cmd & 0xff); + if (rc == CYTP_PS2_RETRY) { + rc = cypress_ps2_sendbyte(psmouse, 0x00); + if (rc == CYTP_PS2_RETRY) + rc = cypress_ps2_sendbyte(psmouse, 0x0a); + } + if (rc == CYTP_PS2_ERROR) + continue; + + rc = cypress_ps2_sendbyte(psmouse, data); + if (rc == CYTP_PS2_RETRY) + rc = cypress_ps2_sendbyte(psmouse, data); + if (rc == CYTP_PS2_ERROR) + continue; + else + break; + } while (--tries > 0); + + ps2_end_command(ps2dev); + + return rc; +} + +static int cypress_ps2_read_cmd_status(struct psmouse *psmouse, + unsigned char cmd, + unsigned char *param) +{ + int i; + int rc; + struct ps2dev *ps2dev = &psmouse->ps2dev; + struct cytp_data *cytp = psmouse->private; + enum psmouse_state old_state; + unsigned char old_pktsize; + + ps2_begin_command(&psmouse->ps2dev); + + old_state = psmouse->state; + psmouse->state = PSMOUSE_CMD_CYTP; + psmouse->pktcnt = 0; + old_pktsize = psmouse->pktsize; + psmouse->pktsize = 3; + if (cmd == CYTP_CMD_READ_VITAL_STATISTICS) + psmouse->pktsize = 8; + memset(param, 0, psmouse->pktsize); + + rc = cypress_ps2_sendbyte(psmouse, 0xe9); + if (rc < 0) + goto out; + + wait_event_timeout(ps2dev->wait, + (psmouse->pktcnt >= psmouse->pktsize), msecs_to_jiffies(read_timeout)); + + memcpy(param, psmouse->packet, psmouse->pktsize); + + cytp_dbg("Command 0x%02x response data: (0x)", cmd); + for (i = 0; i < psmouse->pktsize; i++) + cytp_dbg(" %02x", param[i]); + cytp_dbg("\n"); + +out: + psmouse->state = old_state; + psmouse->pktcnt = 0; + psmouse->pktsize = old_pktsize; + + ps2_end_command(&psmouse->ps2dev); + + return rc; +} + +static int cypress_verify_cmd_state(struct psmouse *psmouse, + unsigned char cmd, unsigned char *param) +{ + struct cytp_data *cytp = psmouse->private; + bool rate_match = 0; + bool resolution_match = 0; + int i; + + /* callers will do further checking. */ + if ((cmd == CYTP_CMD_READ_CYPRESS_ID) || + (cmd == CYTP_CMD_STANDARD_MODE) || + (cmd == CYTP_CMD_READ_VITAL_STATISTICS)) + return 0; + if (((~param[0] & DFLT_RESP_BITS_VALID) == DFLT_RESP_BITS_VALID) && + ((param[0] & DFLT_RESP_BIT_MODE) == DFLT_RESP_STREAM_MODE)) { + for (i = 0; i < sizeof(cytp_resolution); i++) + if (cytp_resolution[i] == param[1]) + resolution_match = 1; + + for (i = 0; i < sizeof(cytp_rate); i++) + if (cytp_rate[i] == param[2]) + rate_match = 1; + + if (resolution_match && rate_match) + return 0; + } + + cytp_dbg("verify cmd state failed.\n"); + return -1; +} + +static int cypress_send_ext_cmd(struct psmouse *psmouse, unsigned char cmd, + unsigned char *param) +{ + struct cytp_data *cytp = psmouse->private; + int tries = CYTP_PS2_CMD_TRIES; + int rc; + + cytp_dbg("send extension cmd 0x%02x, [%d %d %d %d]\n", + cmd, DECODE_CMD_AA(cmd), DECODE_CMD_BB(cmd), + DECODE_CMD_CC(cmd), DECODE_CMD_DD(cmd)); + do { + cypress_ps2_ext_cmd(psmouse, + PSMOUSE_CMD_SETRES, DECODE_CMD_DD(cmd)); + cypress_ps2_ext_cmd(psmouse, + PSMOUSE_CMD_SETRES, DECODE_CMD_CC(cmd)); + cypress_ps2_ext_cmd(psmouse, + PSMOUSE_CMD_SETRES, DECODE_CMD_BB(cmd)); + cypress_ps2_ext_cmd(psmouse, + PSMOUSE_CMD_SETRES, DECODE_CMD_AA(cmd)); + + rc = cypress_ps2_read_cmd_status(psmouse, cmd, param); + if ((rc == 0) && + (cypress_verify_cmd_state(psmouse, cmd, param) == 0)) + break; + } while (--tries > 0); + + + if (tries <= 0) + return -1; + + return 0; + +} + +int cypress_detect(struct psmouse *psmouse, bool set_properties) +{ + unsigned char param[3]; + + if (cypress_send_ext_cmd(psmouse, CYTP_CMD_READ_CYPRESS_ID, param)) + return -1; + + if (!IS_CYPRESS_KEY(param)) + return -ENODEV; + + if (set_properties) { + psmouse->vendor = "Cypress"; + psmouse->name = "Trackpad"; + } + + return 0; +} + +static int cypress_read_fw_version(struct psmouse *psmouse) +{ + struct cytp_data *cytp = psmouse->private; + unsigned char param[3]; + + if (cypress_send_ext_cmd(psmouse, CYTP_CMD_READ_CYPRESS_ID, param)) + return -1; + + if (!IS_CYPRESS_KEY(param)) + return -ENODEV; + + cytp->fw_version = param[2] & FW_VERSION_MASX; + cytp->vital_statics_supported = (param[2] & VITAL_STATICS_MASK) ? 1 : 0; + + /* + * Trackpad fw_version 11 (in Dell XPS12) yields a bogus response to + * CYTP_CMD_READ_VITAL_STATISTICS so do not try to use it. LP: #1103594. + */ + if (cytp->fw_version >= 11) + cytp->vital_statics_supported = 0; + + cytp_dbg("cytp->fw_version = %d\n", cytp->fw_version); + cytp_dbg("cytp->vital_statics_supported = %d\n", + cytp->vital_statics_supported); + return 0; +} + +static int cypress_read_vital_statistics(struct psmouse *psmouse) +{ + struct cytp_data *cytp = psmouse->private; + unsigned char param[8]; + + /* set default values for vital statistics not supported trackpad. */ + cytp->tp_width = CYTP_DEFAULT_WIDTH; + cytp->tp_high = CYTP_DEFAULT_HIGH; + cytp->tp_max_abs_x = CYTP_ABS_MAX_X; + cytp->tp_max_abs_y = CYTP_ABS_MAX_Y; + cytp->tp_min_pressure = CYTP_MIN_PRESSURE; + cytp->tp_max_pressure = CYTP_MAX_PRESSURE; + cytp->tp_res_x = cytp->tp_max_abs_x / cytp->tp_width; + cytp->tp_res_y = cytp->tp_max_abs_y / cytp->tp_high; + + if (!cytp->vital_statics_supported) + return 0; + + memset(param, 0, sizeof(param)); + if (cypress_send_ext_cmd(psmouse, CYTP_CMD_READ_VITAL_STATISTICS, param) == 0) { + /* Update trackpad parameters. */ + cytp->tp_max_abs_x = (param[1] << 8) | param[0]; + cytp->tp_max_abs_y = (param[3] << 8) | param[2]; + cytp->tp_min_pressure = param[4]; + cytp->tp_max_pressure = param[5]; + + if (param[6] & VITAL_BIT_APA) + cytp->tp_type = CYTP_APA; + else if (param[6] & VITAL_BIT_MTG) + cytp->tp_type = CYTP_MTG; + else + cytp->tp_type = CYTP_STG; + cytp->tp_palm = (param[6] & VITAL_BIT_PALM) ? 1 : 0; + cytp->tp_stubborn = (param[6] & VITAL_BIT_STUBBORN) ? 1 : 0; + cytp->tp_2f_jitter = (param[6] & VITAL_BIT_2F_JITTER) >> 4; + cytp->tp_1f_jitter = (param[6] & VITAL_BIT_1F_JITTER) >> 2; + cytp->tp_abs_packet_format_set = + (param[7] & VITAL_BIT_ABS_PKT_FORMAT_SET) >> 4; + cytp->tp_2f_spike = (param[7] & VITAL_BIT_2F_SPIKE) >> 2; + cytp->tp_1f_spike = (param[7] & VITAL_BIT_1F_SPIKE); + + } + + if (!cytp->tp_max_pressure || + (cytp->tp_max_pressure < cytp->tp_min_pressure) || + (!cytp->tp_width || !cytp->tp_high) || + (!cytp->tp_max_abs_x) || + (cytp->tp_max_abs_x < cytp->tp_width) || + (!cytp->tp_max_abs_y) || + (cytp->tp_max_abs_y < cytp->tp_high)) + return -1; + + cytp->tp_res_x = cytp->tp_max_abs_x / cytp->tp_width; + cytp->tp_res_y = cytp->tp_max_abs_y / cytp->tp_high; + + cytp_dbg_dump("Dump trackpad hardware configuration as below:\n"); + cytp_dbg_dump("cytp->tp_width = %d\n", cytp->tp_width); + cytp_dbg_dump("cytp->tp_high = %d\n", cytp->tp_high); + cytp_dbg_dump("cytp->tp_max_abs_x = %d\n", cytp->tp_max_abs_x); + cytp_dbg_dump("cytp->tp_max_abs_y = %d\n", cytp->tp_max_abs_y); + cytp_dbg_dump("cytp->tp_min_pressure = %d\n", cytp->tp_min_pressure); + cytp_dbg_dump("cytp->tp_max_pressure = %d\n", cytp->tp_max_pressure); + cytp_dbg_dump("cytp->tp_res_x = %d\n", cytp->tp_res_x); + cytp_dbg_dump("cytp->tp_res_y = %d\n", cytp->tp_res_y); + cytp_dbg_dump("cytp->tp_type = %d\n", cytp->tp_type); + cytp_dbg_dump("cytp->tp_palm = %d\n", cytp->tp_palm); + cytp_dbg_dump("cytp->tp_stubborn = %d\n", cytp->tp_stubborn); + cytp_dbg_dump("cytp->tp_1f_jitter = %d\n", cytp->tp_1f_jitter); + cytp_dbg_dump("cytp->tp_2f_jitter = %d\n", cytp->tp_2f_jitter); + cytp_dbg_dump("cytp->tp_1f_spike = %d\n", cytp->tp_1f_spike); + cytp_dbg_dump("cytp->tp_2f_spike = %d\n", cytp->tp_2f_spike); + cytp_dbg_dump("cytp->tp_abs_packet_format_set = %d\n", + cytp->tp_abs_packet_format_set); + + return 0; +} + +static int cypress_query_hardware(struct psmouse *psmouse) +{ + int ret; + + if (cypress_read_fw_version(psmouse)) + return -1; + + ret = cypress_read_vital_statistics(psmouse); + if (ret) + return -1; + + return 0; +} + +static int cypress_set_absolute_mode(struct psmouse *psmouse) +{ + struct cytp_data *cytp = psmouse->private; + unsigned char param[3]; + + if (cypress_send_ext_cmd(psmouse, CYTP_CMD_ABS_WITH_PRESSURE_MODE, param) < 0) + return -1; + + CYTP_SET_MODE_BIT(CYTP_BIT_ABS_PRESSURE); + CYTP_SET_PACKET_SIZE(5); + + return 0; +} + +/* + * reset trackpad device to standard relative mode. + * This is also the defalut mode when trackpad powered on. + */ +static void cypress_reset(struct psmouse *psmouse) +{ + struct cytp_data *cytp = psmouse->private; + + psmouse_reset(psmouse); + + CYTP_SET_MODE_BIT(CYTP_BIT_STANDARD_REL); + CYTP_SET_PACKET_SIZE(3); + + cytp->prev_contact_cnt = 0; +} + +static int cypress_set_input_params(struct input_dev *input, + struct cytp_data *cytp) +{ + int ret; + + if (cytp->mode & CYTP_BIT_ABS_MASK) { + __set_bit(EV_ABS, input->evbit); + input_set_abs_params(input, ABS_X, 0, cytp->tp_max_abs_x, 0, 0); + input_set_abs_params(input, ABS_Y, 0, cytp->tp_max_abs_y, 0, 0); + input_set_abs_params(input, ABS_PRESSURE, + cytp->tp_min_pressure, cytp->tp_max_pressure, 0, 0); + input_set_abs_params(input, ABS_TOOL_WIDTH, 0, 255, 0, 0); + + /* finger position */ + input_set_abs_params(input, ABS_MT_POSITION_X, 0, cytp->tp_max_abs_x, 0, 0); + input_set_abs_params(input, ABS_MT_POSITION_Y, 0, cytp->tp_max_abs_y, 0, 0); + input_set_abs_params(input, ABS_MT_PRESSURE, 0, 255, 0, 0); + + ret = input_mt_init_slots(input, CYTP_MAX_MT_SLOTS); + if (ret < 0) { + return ret; + } + + if (cytp->tp_res_x && cytp->tp_res_x) { + input_abs_set_res(input, ABS_X, cytp->tp_res_x); + input_abs_set_res(input, ABS_Y, cytp->tp_res_y); + + input_abs_set_res(input, ABS_MT_POSITION_X, + cytp->tp_res_x); + input_abs_set_res(input, ABS_MT_POSITION_Y, + cytp->tp_res_y); + + } + + __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); + __set_bit(EV_KEY, input->evbit); + __set_bit(BTN_TOUCH, input->keybit); + __set_bit(BTN_TOOL_FINGER, input->keybit); + __set_bit(BTN_TOOL_DOUBLETAP, input->keybit); + __set_bit(BTN_TOOL_TRIPLETAP, input->keybit); + __set_bit(BTN_TOOL_QUADTAP, input->keybit); + __set_bit(BTN_TOOL_QUINTTAP, input->keybit); + + __set_bit(BTN_LEFT, input->keybit); + __set_bit(BTN_RIGHT, input->keybit); + __set_bit(BTN_MIDDLE, input->keybit); + + __clear_bit(EV_REL, input->evbit); + __clear_bit(REL_X, input->relbit); + __clear_bit(REL_Y, input->relbit); + } else { + __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); + __set_bit(EV_REL, input->evbit); + __set_bit(REL_X, input->relbit); + __set_bit(REL_Y, input->relbit); + __set_bit(REL_WHEEL, input->relbit); + __set_bit(REL_HWHEEL, input->relbit); + + __set_bit(EV_KEY, input->evbit); + __set_bit(BTN_LEFT, input->keybit); + __set_bit(BTN_RIGHT, input->keybit); + __set_bit(BTN_MIDDLE, input->keybit); + + __clear_bit(EV_ABS, input->evbit); + } + + input_set_drvdata(input, cytp); + + return 0; +} + +static int cypress_get_finger_count(unsigned char header_byte) +{ + unsigned char bits6_7; + int finger_count; + + bits6_7 = header_byte >> 6; + finger_count = bits6_7 & 0x03; + + if (finger_count != 1) { + if (header_byte & ABS_HSCROLL_BIT) { + if (finger_count == 0) { + /* HSCROLL gets added on to 0 finger count. */ + finger_count = 4; + /* should remove HSCROLL bit. */ + } else { + if (finger_count == 2) { + finger_count = 5; + } else { + /* Invalid contact (e.g. palm). Ignore it. */ + finger_count = 0; + } + } + } + } + + return finger_count; +} + +static int new_slot_id(void) +{ + static int id = -1; + + id++; + if (id >= CYTP_MAX_MT_SLOTS) + id = 0; + + return id; +} + +#define FINGER_MAX_JITTER_DISTANCE 25 +static inline bool same_finger(struct cytp_contact *prev_contact, + struct cytp_contact *contact) +{ + if (abs(prev_contact->x - contact->x) < FINGER_MAX_JITTER_DISTANCE) { + if (abs(prev_contact->y - contact->y) < FINGER_MAX_JITTER_DISTANCE) { + return true; + } + } + + return false; +} + +#define ID_NULL ((unsigned char)0x00) +#define ID_NEW ((unsigned char)0x01) +#define ID_KEEP ((unsigned char)0x02) +#define ID_UPDATE ((unsigned char)0x03) +static const unsigned char +new_slot_id_flags[CYTP_MAX_CONTACTS+1][CYTP_MAX_CONTACTS+1] = { + /* previous contact_cnt = 0. */ + { ID_NULL, ID_NEW, ID_NEW, ID_NEW, ID_NEW, ID_NEW }, + + /* previous contact_cnt = 1. */ + { ID_NULL, ID_KEEP, ID_UPDATE, ID_NEW, ID_NEW, ID_NEW }, + + /* previous contact_cnt = 2. */ + { ID_NULL, ID_UPDATE, ID_KEEP, ID_NEW, ID_NEW, ID_NEW }, + + /* previous contact_cnt = 3. */ + { ID_NULL, ID_NEW, ID_NEW, ID_KEEP, ID_NEW, ID_NEW }, + + /* previous contact_cnt = 4. */ + { ID_NULL, ID_NEW, ID_NEW, ID_NEW, ID_KEEP, ID_NEW }, + + /* previous contact_cnt = 5. */ + { ID_NULL, ID_NEW, ID_NEW, ID_NEW, ID_NEW, ID_KEEP }, +}; + +static int cypress_cal_finger_id(struct cytp_data *cytp, + struct cytp_report_data *new_report) +{ + int i, j; + bool slot_id_updated; + struct cytp_report_data *prev_report = &cytp->prev_report_data; + unsigned char flag = + new_slot_id_flags[prev_report->contact_cnt][new_report->contact_cnt]; + + if (flag == ID_NEW) { + for (i = 0; i < new_report->contact_cnt; i++) { + new_report->contacts[i].id = new_slot_id(); + } + + } else if (flag == ID_KEEP) { + /* firmware will ensure that the finger id is report in same order. */ + for (i = 0; i < new_report->contact_cnt; i++) { + new_report->contacts[i].id = prev_report->contacts[i].id; + } + + } else if (flag == ID_UPDATE) { + for (i = 0; i < new_report->contact_cnt; i++) { + slot_id_updated = false; + for (j = 0; j < prev_report->contact_cnt; j++) { + if (same_finger(&new_report->contacts[i], + &prev_report->contacts[j])) { + new_report->contacts[i].id = prev_report->contacts[j].id; + slot_id_updated = true; + break; + } + } + + if (!slot_id_updated) + new_report->contacts[i].id = new_slot_id(); + } + } + + if (new_report->contact_cnt == 0) + cytp->zero_packet_cnt++; + else + cytp->zero_packet_cnt = 0; + cytp->prev_report_data = *new_report; + + return 0; +} + +static int position_adjust_array[4] = { + 50, -50, 100, -100 +}; +static void cypress_simulate_fingers(struct cytp_data *cytp, + struct cytp_report_data *report_data) +{ + int i; + + if (report_data->contact_cnt >= 3) { + for (i = 1; i < report_data->contact_cnt; i++) { + report_data->contacts[i].x = + report_data->contacts[0].x + position_adjust_array[i - 1]; + report_data->contacts[i].y = report_data->contacts[0].y; + report_data->contacts[i].z = report_data->contacts[0].z; + + if (report_data->contacts[i].x < 0) + report_data->contacts[i].x = 0; + if (report_data->contacts[i].x > cytp->tp_max_abs_x) + report_data->contacts[i].x = cytp->tp_max_abs_x; + } + } +} + +static int cypress_parse_packet(const unsigned char packet[], + struct cytp_data *cytp, struct cytp_report_data *report_data) +{ + int i; + unsigned char header_byte = packet[0]; + + memset(report_data, 0, sizeof(struct cytp_report_data)); + if (cytp->mode & CYTP_BIT_ABS_MASK) { + report_data->contact_cnt = cypress_get_finger_count(header_byte); + + if (report_data->contact_cnt > CYTP_MAX_CONTACTS) { + /* report invalid data as zero package except the button data. */ + report_data->contact_cnt = 0; + cytp_dbg("cypress_parse_packet: received invalid packet.\n"); + } + + report_data->tap = (header_byte & ABS_MULTIFINGER_TAP) ? 1 : 0; + + /* Remove HSCROLL bit */ + if (report_data->contact_cnt == 4) + header_byte &= ~(ABS_HSCROLL_BIT); + + if (report_data->contact_cnt == 1) { + report_data->contacts[0].x = + ((packet[1] & 0x70) << 4) | packet[2]; + report_data->contacts[0].y = + ((packet[1] & 0x07) << 8) | packet[3]; + if (cytp->mode & CYTP_BIT_ABS_PRESSURE) + report_data->contacts[0].z = packet[4]; + + if ((packet[1] & ABS_EDGE_MOTION_MASK) != ABS_EDGE_MOTION_MASK) { + report_data->vscroll = (header_byte & ABS_VSCROLL_BIT) ? 1 : 0; + report_data->hscroll = (header_byte & ABS_HSCROLL_BIT) ? 1 : 0; + } + + } else if (report_data->contact_cnt == 2) { + report_data->contacts[0].x = + ((packet[1] & 0x70) << 4) | packet[2]; + report_data->contacts[0].y = + ((packet[1] & 0x07) << 8) | packet[3]; + if (cytp->mode & CYTP_BIT_ABS_PRESSURE) + report_data->contacts[0].z = packet[4]; + + report_data->contacts[1].x = + ((packet[5] & 0xf0) << 4) | packet[6]; + report_data->contacts[1].y = + ((packet[5] & 0x0f) << 8) | packet[7]; + if (cytp->mode & CYTP_BIT_ABS_PRESSURE) + report_data->contacts[1].z = report_data->contacts[0].z; + + } else if (report_data->contact_cnt >= 3) { + report_data->contacts[0].x = + ((packet[1] & 0xf0) << 4) | packet[2]; + report_data->contacts[0].y = + ((packet[1] & 0x0f) << 8) | packet[3]; + if (cytp->mode & CYTP_BIT_ABS_PRESSURE) + report_data->contacts[0].z = packet[4]; + + cypress_simulate_fingers(cytp, report_data); + + report_data->vscroll = (header_byte & ABS_VSCROLL_BIT) ? 1 : 0; + } + + cypress_cal_finger_id(cytp, report_data); + + report_data->left = (header_byte & BTN_LEFT_BIT) ? 1 : 0; + report_data->right = (header_byte & BTN_RIGHT_BIT) ? 1 : 0; + + } else { + report_data->contact_cnt = 1; + report_data->contacts[0].x = + (packet[0] & REL_X_SIGN_BIT) ? -packet[1] : packet[1]; + report_data->contacts[0].y = + (packet[0] & REL_Y_SIGN_BIT) ? -packet[2] : packet[2]; + report_data->vscroll = packet[3]; + report_data->left = (packet[0] & BTN_LEFT_BIT) ? 1 : 0; + report_data->right = (packet[0] & BTN_RIGHT_BIT) ? 1 : 0; + + if (cytp->mode & CYTP_BIT_STANDARD_REL) + report_data->middle = + (packet[0] & BTN_MIDDLE_BIT) ? 1 : 0; + if (cytp->mode & CYTP_BIT_CYPRESS_REL) { + report_data->left = + (packet[0] & BTN_MIDDLE_BIT) ? 1 : 0; + report_data->hscroll = packet[4]; + } + } + + /* This is only true if one of the mouse buttons were tapped. + * Make sure it doesn't turn into a click. The regular tap-to- + * click functionality will handle that on its own. If we don't + * do this, disabling tap-to-click won't affect the mouse button + * zones. */ + if (report_data->tap) + report_data->left = 0; + + if (report_data->contact_cnt <= 0) + return 0; + + cytp_dbg_dump("cypress_parse_packet cytp->zero_packet_cnt = %d\n", cytp->zero_packet_cnt); + cytp_dbg_dump("Dump parsed report data as below:\n"); + cytp_dbg_dump("contact_cnt = %d\n", report_data->contact_cnt); + for (i = 0; i < report_data->contact_cnt; i++) { + cytp_dbg_dump("contacts[%d].x = %d\n", i, report_data->contacts[i].x); + cytp_dbg_dump("contacts[%d].y = %d\n", i, report_data->contacts[i].y); + cytp_dbg_dump("contacts[%d].z = %d\n", i, report_data->contacts[i].z); + cytp_dbg_dump("contacts[%d].id = %d\n", i, report_data->contacts[i].id); + } + cytp_dbg_dump("vscroll = %d\n", report_data->vscroll); + cytp_dbg_dump("hscroll = %d\n", report_data->hscroll); + cytp_dbg_dump("left = %d\n", report_data->left); + cytp_dbg_dump("right = %d\n", report_data->right); + cytp_dbg_dump("middle = %d\n", report_data->middle); + + return 0; +} + +static void cypress_process_packet(struct psmouse *psmouse, bool zero_pkt) +{ + int i; + struct input_dev *input = psmouse->dev; + struct cytp_data *cytp = psmouse->private; + struct cytp_report_data report_data; + unsigned int mask; + struct cytp_contact *contact; + int slot; + + if (cypress_parse_packet(psmouse->packet, cytp, &report_data)) + return; + + if (cytp->mode & CYTP_BIT_ABS_MASK) { + mask = 0; + for (i = 0; i < report_data.contact_cnt; i++) { + contact = &report_data.contacts[i]; + slot = contact->id; + + mask |= (1 << slot); + input_mt_slot(input, slot); + input_mt_report_slot_state(input, MT_TOOL_FINGER, true); + input_report_abs(input, ABS_MT_POSITION_X, contact->x); + input_report_abs(input, ABS_MT_POSITION_Y, contact->y); + input_report_abs(input, ABS_MT_PRESSURE, contact->z); + } + + /* Invalidate all unreported slots */ + for (i = 0; i < CYTP_MAX_MT_SLOTS; i++) { + if (mask & (1 << i)) + continue; + + input_mt_slot(input, i); + input_mt_report_slot_state(input, MT_TOOL_FINGER, false); + } + + input_mt_report_pointer_emulation(input, true); + + input_report_key(input, BTN_LEFT, report_data.left); + input_report_key(input, BTN_RIGHT, report_data.right); + input_report_key(input, BTN_MIDDLE, report_data.middle); + + input_sync(input); + + } else { + if (report_data.contact_cnt == 1) { + input_report_rel(input, REL_X, report_data.contacts[0].x); + input_report_rel(input, REL_Y, report_data.contacts[0].y); + } + + input_report_rel(input, REL_WHEEL, report_data.vscroll); + if (cytp->mode & CYTP_BIT_CYPRESS_REL) + input_report_rel(input, REL_HWHEEL, report_data.hscroll); + + input_report_key(input, BTN_LEFT, report_data.left); + input_report_key(input, BTN_RIGHT, report_data.right); + input_report_key(input, BTN_MIDDLE, report_data.middle); + + input_sync(input); + } +} + +static psmouse_ret_t cypress_validate_byte(struct psmouse *psmouse) +{ + int contact_cnt; + int index = psmouse->pktcnt - 1; + unsigned char *packet = psmouse->packet; + struct cytp_data *cytp = psmouse->private; + + if (index < 0 || index > cytp->pkt_size) + return PSMOUSE_BAD_DATA; + + if ((index == 0) && ((packet[0] & 0xfc) == 0)) { + /* call packet process for reporting finger leave. */ + cypress_process_packet(psmouse, 1); + return PSMOUSE_FULL_PACKET; + } + + if (cytp->mode & CYTP_BIT_ABS_MASK) { + if (index == 0) { + if ((packet[0] & 0x08) == 0x08) + return PSMOUSE_BAD_DATA; + + contact_cnt = cypress_get_finger_count(packet[0]); + + if (contact_cnt > 5) + return PSMOUSE_BAD_DATA; + + if (cytp->mode & CYTP_BIT_ABS_NO_PRESSURE) { + CYTP_SET_PACKET_SIZE(4); + if (contact_cnt == 2) + CYTP_SET_PACKET_SIZE(7); + } else { + CYTP_SET_PACKET_SIZE(5); + if (contact_cnt == 2) + CYTP_SET_PACKET_SIZE(8); + } + } + + return PSMOUSE_GOOD_DATA; + } else { + if (index == 0) { + if ((packet[0] & 0x08) != 0x08) + return PSMOUSE_BAD_DATA; + + CYTP_SET_PACKET_SIZE(3); + if (cytp->mode & CYTP_BIT_CYPRESS_REL) + CYTP_SET_PACKET_SIZE(5); + } + + return PSMOUSE_GOOD_DATA; + } +} + +static psmouse_ret_t cypress_protocol_handler(struct psmouse *psmouse) +{ + struct cytp_data *cytp = psmouse->private; + + if (psmouse->pktcnt >= cytp->pkt_size) { + cypress_process_packet(psmouse, 0); + return PSMOUSE_FULL_PACKET; + } + + return cypress_validate_byte(psmouse); +} + +static void cypress_set_rate(struct psmouse *psmouse, unsigned int rate) +{ + struct cytp_data *cytp = psmouse->private; + + if (rate >= 80) { + psmouse->rate = 80; + CYTP_SET_MODE_BIT(CYTP_BIT_HIGH_RATE); + } else { + psmouse->rate = 40; + CYTP_CLEAR_MODE_BIT(CYTP_BIT_HIGH_RATE); + } + + ps2_command(&psmouse->ps2dev, (unsigned char *)&psmouse->rate, + PSMOUSE_CMD_SETRATE); +} + +static void cypress_disconnect(struct psmouse *psmouse) +{ + cypress_reset(psmouse); + kfree(psmouse->private); + psmouse->private = NULL; +} + +static int cypress_reconnect(struct psmouse *psmouse) +{ + int tries = CYTP_PS2_CMD_TRIES; + int rc; + + do { + cypress_reset(psmouse); + rc = cypress_detect(psmouse, false); + } while (rc && (--tries > 0)); + + if (rc) + return -1; + + if (cypress_query_hardware(psmouse)) { + pr_err("Reconnect: unable to query Trackpad hardware.\n"); + return -1; + } + + if (cypress_set_absolute_mode(psmouse)) { + pr_err("Reconnect: Unable to initialize Cypress absolute mode.\n"); + return -1; + } + + return 0; +} + +int cypress_init(struct psmouse *psmouse) +{ + struct cytp_data *cytp; + + cytp = (struct cytp_data *)kzalloc(sizeof(struct cytp_data), GFP_KERNEL); + psmouse->private = (void *)cytp; + if (cytp == NULL) + return -ENOMEM; + + cypress_reset(psmouse); + + if (cypress_query_hardware(psmouse)) { + pr_err("Unable to query Trackpad hardware.\n"); + goto err_exit; + } + + if (cypress_set_absolute_mode(psmouse)) { + pr_err("Reconnect: Unable to initialize Cypress absolute mode.\n"); + goto err_exit; + } + + if (cypress_set_input_params(psmouse->dev, cytp) < 0) + return -1; + + psmouse->model = 1; + psmouse->protocol_handler = cypress_protocol_handler; + psmouse->set_rate = cypress_set_rate; + psmouse->disconnect = cypress_disconnect; + psmouse->reconnect = cypress_reconnect; + psmouse->cleanup = cypress_reset; + psmouse->pktsize = 8; + psmouse->resync_time = 0; + + return 0; + +err_exit: + /* + * Reset Cypress Trackpad as a standard mouse. Then + * let psmouse driver commmunicating with it as default PS2 mouse. + */ + cypress_reset(psmouse); + + psmouse->private = NULL; + kfree(cytp); + + return -1; +} + +bool cypress_supported(void) +{ + return true; +} --- linux-3.2.0.orig/drivers/input/mouse/psmouse-base.c +++ linux-3.2.0/drivers/input/mouse/psmouse-base.c @@ -23,6 +23,7 @@ #include #include #include +#include #include "psmouse.h" #include "synaptics.h" @@ -34,6 +35,7 @@ #include "touchkit_ps2.h" #include "elantech.h" #include "sentelic.h" +#include "cypress_ps2.h" #define DRIVER_DESC "PS/2 mouse driver" @@ -321,6 +323,13 @@ if (psmouse->state <= PSMOUSE_RESYNCING) goto out; + /* For Cypress Trackpad to read some special data more than 6 bytes. */ + if (psmouse->state == PSMOUSE_CMD_CYTP) { + psmouse->packet[psmouse->pktcnt++] = data; + wake_up(&psmouse->ps2dev.wait); + goto out; + } + if (psmouse->state == PSMOUSE_ACTIVATED && psmouse->pktcnt && time_after(jiffies, psmouse->last + HZ/2)) { psmouse_info(psmouse, "%s at %s lost synchronization, throwing %d bytes away.\n", @@ -663,6 +672,28 @@ } /* + * Try Cypress Trackpad. + * Must try it before Finger Sensing Pad because Finger Sensing Pad probe + * upsets some modules of Cypress Trackpads. + */ + if (max_proto > PSMOUSE_IMEX && + cypress_detect(psmouse, set_properties) == 0) { + if (cypress_supported()) { + if (cypress_init(psmouse) == 0) + return PSMOUSE_CYPRESS; + + /* + * Finger Sensing Pad probe upsets some modules of + * Cypress Trackpad, must avoid Finger Sensing Pad + * probe if Cypress Trackpad device detected. + */ + return PSMOUSE_PS2; + } + + max_proto = PSMOUSE_IMEX; + } + +/* * Try ALPS TouchPad */ if (max_proto > PSMOUSE_IMEX) { @@ -789,6 +820,15 @@ .alias = "thinkps", .detect = thinking_detect, }, +#ifdef CONFIG_MOUSE_PS2_CYPRESS + { + .type = PSMOUSE_CYPRESS, + .name = "CyPS/2", + .alias = "cypress", + .detect = cypress_detect, + .init = cypress_init, + }, +#endif { .type = PSMOUSE_GENPS, .name = "GenPS/2", @@ -1011,28 +1051,33 @@ * psmouse_activate() enables the mouse so that we get motion reports from it. */ -static void psmouse_activate(struct psmouse *psmouse) +int psmouse_activate(struct psmouse *psmouse) { - if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_ENABLE)) + if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_ENABLE)) { psmouse_warn(psmouse, "Failed to enable mouse on %s\n", psmouse->ps2dev.serio->phys); + return -1; + } psmouse_set_state(psmouse, PSMOUSE_ACTIVATED); + return 0; } - /* * psmouse_deactivate() puts the mouse into poll mode so that we don't get motion * reports from it unless we explicitly request it. */ -static void psmouse_deactivate(struct psmouse *psmouse) +int psmouse_deactivate(struct psmouse *psmouse) { - if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_DISABLE)) + if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_DISABLE)) { psmouse_warn(psmouse, "Failed to deactivate mouse on %s\n", psmouse->ps2dev.serio->phys); + return -1; + } psmouse_set_state(psmouse, PSMOUSE_CMD_MODE); + return 0; } /* --- linux-3.2.0.orig/drivers/input/mouse/elantech.h +++ linux-3.2.0/drivers/input/mouse/elantech.h @@ -20,6 +20,7 @@ #define ETP_FW_VERSION_QUERY 0x01 #define ETP_CAPABILITIES_QUERY 0x02 #define ETP_SAMPLE_QUERY 0x03 +#define ETP_RESOLUTION_QUERY 0x04 /* * Command values for register reading or writing @@ -135,6 +136,7 @@ unsigned int width; struct finger_pos mt[ETP_MAX_FINGERS]; unsigned char parity[256]; + int (*send_cmd)(struct psmouse *psmouse, unsigned char c, unsigned char *param); }; #ifdef CONFIG_MOUSE_PS2_ELANTECH --- linux-3.2.0.orig/drivers/input/mouse/Kconfig +++ linux-3.2.0/drivers/input/mouse/Kconfig @@ -68,6 +68,16 @@ If unsure, say Y. +config MOUSE_PS2_CYPRESS + bool "Cypress PS/2 mouse protocol extension" if EXPERT + default y + depends on MOUSE_PS2 + help + Say Y here if you have a Cypress PS/2 Trackpad connected to + your system. + + If unsure, say Y. + config MOUSE_PS2_LIFEBOOK bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EXPERT default y --- linux-3.2.0.orig/drivers/input/mouse/synaptics.h +++ linux-3.2.0/drivers/input/mouse/synaptics.h @@ -80,6 +80,7 @@ */ #define SYN_CAP_CLICKPAD(ex0c) ((ex0c) & 0x100000) /* 1-button ClickPad */ #define SYN_CAP_CLICKPAD2BTN(ex0c) ((ex0c) & 0x000100) /* 2-button ClickPad */ +#define SYN_CAP_CLICKPAD2BTN2(ex0c) ((ex0c) & 0x200000) /* 2-button ClickPad */ #define SYN_CAP_MAX_DIMENSIONS(ex0c) ((ex0c) & 0x020000) #define SYN_CAP_MIN_DIMENSIONS(ex0c) ((ex0c) & 0x002000) #define SYN_CAP_ADV_GESTURE(ex0c) ((ex0c) & 0x080000) --- linux-3.2.0.orig/drivers/input/mouse/elantech.c +++ linux-3.2.0/drivers/input/mouse/elantech.c @@ -43,6 +43,24 @@ } /* + * V3 and later support this fast command + */ +static int elantech_send_cmd(struct psmouse *psmouse, unsigned char c, + unsigned char *param) +{ + struct ps2dev *ps2dev = &psmouse->ps2dev; + + if (ps2_command(ps2dev, NULL, ETP_PS2_CUSTOM_COMMAND) || + ps2_command(ps2dev, NULL, c) || + ps2_command(ps2dev, param, PSMOUSE_CMD_GETINFO)) { + psmouse_err(psmouse, "%s query 0x%02x failed.\n", __func__, c); + return -1; + } + + return 0; +} + +/* * A retrying version of ps2_command */ static int elantech_ps2_command(struct psmouse *psmouse, @@ -468,7 +486,6 @@ unsigned char *packet = psmouse->packet; input_report_key(dev, BTN_LEFT, packet[0] & 0x01); - input_report_key(dev, BTN_RIGHT, packet[0] & 0x02); input_mt_report_pointer_emulation(dev, true); input_sync(dev); } @@ -677,18 +694,18 @@ static int elantech_packet_check_v4(struct psmouse *psmouse) { unsigned char *packet = psmouse->packet; + unsigned char packet_type = packet[3] & 0x03; + + switch (packet_type) { + case 0: + return PACKET_V4_STATUS; - if ((packet[0] & 0x0c) == 0x04 && - (packet[3] & 0x1f) == 0x11) + case 1: return PACKET_V4_HEAD; - if ((packet[0] & 0x0c) == 0x04 && - (packet[3] & 0x1f) == 0x12) + case 2: return PACKET_V4_MOTION; - - if ((packet[0] & 0x0c) == 0x04 && - (packet[3] & 0x1f) == 0x10) - return PACKET_V4_STATUS; + } return PACKET_UNKNOWN; } @@ -863,13 +880,13 @@ i = (etd->fw_version > 0x020800 && etd->fw_version < 0x020900) ? 1 : 2; - if (synaptics_send_cmd(psmouse, ETP_FW_ID_QUERY, param)) + if (etd->send_cmd(psmouse, ETP_FW_ID_QUERY, param)) return -1; fixed_dpi = param[1] & 0x10; if (((etd->fw_version >> 16) == 0x14) && fixed_dpi) { - if (synaptics_send_cmd(psmouse, ETP_SAMPLE_QUERY, param)) + if (etd->send_cmd(psmouse, ETP_SAMPLE_QUERY, param)) return -1; *x_max = (etd->capabilities[1] - i) * param[1] / 2; @@ -888,7 +905,7 @@ break; case 3: - if (synaptics_send_cmd(psmouse, ETP_FW_ID_QUERY, param)) + if (etd->send_cmd(psmouse, ETP_FW_ID_QUERY, param)) return -1; *x_max = (0x0f & param[0]) << 8 | param[1]; @@ -896,7 +913,7 @@ break; case 4: - if (synaptics_send_cmd(psmouse, ETP_FW_ID_QUERY, param)) + if (etd->send_cmd(psmouse, ETP_FW_ID_QUERY, param)) return -1; *x_max = (0x0f & param[0]) << 8 | param[1]; @@ -913,6 +930,30 @@ } /* + * (value from firmware) * 10 + 790 = dpi + * we also have to convert dpi to dots/mm (*10/254 to avoid floating point) + */ +static unsigned int elantech_convert_res(unsigned int val) +{ + return (val * 10 + 790) * 10 / 254; +} + +static int elantech_get_resolution_v4(struct psmouse *psmouse, + unsigned int *x_res, + unsigned int *y_res) +{ + unsigned char param[3]; + + if (elantech_send_cmd(psmouse, ETP_RESOLUTION_QUERY, param)) + return -1; + + *x_res = elantech_convert_res(param[1] & 0x0f); + *y_res = elantech_convert_res((param[1] & 0xf0) >> 4); + + return 0; +} + +/* * Set the appropriate event bits for the input subsystem */ static int elantech_set_input_params(struct psmouse *psmouse) @@ -920,10 +961,12 @@ struct input_dev *dev = psmouse->dev; struct elantech_data *etd = psmouse->private; unsigned int x_min = 0, y_min = 0, x_max = 0, y_max = 0, width = 0; + unsigned int x_res = 0, y_res = 0; if (elantech_set_range(psmouse, &x_min, &y_min, &x_max, &y_max, &width)) return -1; + __set_bit(INPUT_PROP_POINTER, dev->propbit); __set_bit(EV_KEY, dev->evbit); __set_bit(EV_ABS, dev->evbit); __clear_bit(EV_REL, dev->evbit); @@ -967,10 +1010,22 @@ break; case 4: + if (elantech_get_resolution_v4(psmouse, &x_res, &y_res)) { + /* + * if query failed, print a warning and leave the values + * zero to resemble synaptics.c behavior. + */ + psmouse_warn(psmouse, "couldn't query resolution data.\n"); + } + /* v4 is clickpad, with only one button. */ + __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit); + __clear_bit(BTN_RIGHT, dev->keybit); __set_bit(BTN_TOOL_QUADTAP, dev->keybit); /* For X to recognize me as touchpad. */ input_set_abs_params(dev, ABS_X, x_min, x_max, 0, 0); input_set_abs_params(dev, ABS_Y, y_min, y_max, 0, 0); + input_abs_set_res(dev, ABS_X, x_res); + input_abs_set_res(dev, ABS_Y, y_res); /* * range of pressure and width is the same as v2, * report ABS_PRESSURE, ABS_TOOL_WIDTH for compatibility. @@ -983,6 +1038,8 @@ input_mt_init_slots(dev, ETP_MAX_FINGERS); input_set_abs_params(dev, ABS_MT_POSITION_X, x_min, x_max, 0, 0); input_set_abs_params(dev, ABS_MT_POSITION_Y, y_min, y_max, 0, 0); + input_abs_set_res(dev, ABS_MT_POSITION_X, x_res); + input_abs_set_res(dev, ABS_MT_POSITION_Y, y_res); input_set_abs_params(dev, ABS_MT_PRESSURE, ETP_PMIN_V2, ETP_PMAX_V2, 0, 0); /* @@ -1226,6 +1283,7 @@ etd->hw_version = 3; break; case 6: + case 7: etd->hw_version = 4; break; default: @@ -1233,9 +1291,11 @@ } } - /* - * Turn on packet checking by default. - */ + /* decide which send_cmd we're gonna use early */ + etd->send_cmd = etd->hw_version >= 3 ? elantech_send_cmd : + synaptics_send_cmd; + + /* Turn on packet checking by default */ etd->paritycheck = 1; /* @@ -1291,7 +1351,7 @@ "assuming hardware version %d (with firmware version 0x%02x%02x%02x)\n", etd->hw_version, param[0], param[1], param[2]); - if (synaptics_send_cmd(psmouse, ETP_CAPABILITIES_QUERY, + if (etd->send_cmd(psmouse, ETP_CAPABILITIES_QUERY, etd->capabilities)) { psmouse_err(psmouse, "failed to query capabilities.\n"); goto init_fail; --- linux-3.2.0.orig/drivers/input/mouse/sentelic.c +++ linux-3.2.0/drivers/input/mouse/sentelic.c @@ -2,7 +2,7 @@ * Finger Sensing Pad PS/2 mouse driver. * * Copyright (C) 2005-2007 Asia Vital Components Co., Ltd. - * Copyright (C) 2005-2011 Tai-hwa Liang, Sentelic Corporation. + * Copyright (C) 2005-2012 Tai-hwa Liang, Sentelic Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -36,6 +37,9 @@ #define FSP_CMD_TIMEOUT 200 #define FSP_CMD_TIMEOUT2 30 +#define GET_ABS_X(packet) ((packet[1] << 2) | ((packet[3] >> 2) & 0x03)) +#define GET_ABS_Y(packet) ((packet[2] << 2) | (packet[3] & 0x03)) + /** Driver version. */ static const char fsp_drv_ver[] = "1.0.0-K"; @@ -90,8 +94,7 @@ * to do that for writes because sysfs set helper does this for * us. */ - ps2_command(ps2dev, NULL, PSMOUSE_CMD_DISABLE); - psmouse_set_state(psmouse, PSMOUSE_CMD_MODE); + psmouse_deactivate(psmouse); ps2_begin_command(ps2dev); @@ -128,10 +131,10 @@ out: ps2_end_command(ps2dev); - ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE); - psmouse_set_state(psmouse, PSMOUSE_ACTIVATED); - dev_dbg(&ps2dev->serio->dev, "READ REG: 0x%02x is 0x%02x (rc = %d)\n", - reg_addr, *reg_val, rc); + psmouse_activate(psmouse); + psmouse_dbg(psmouse, + "READ REG: 0x%02x is 0x%02x (rc = %d)\n", + reg_addr, *reg_val, rc); return rc; } @@ -181,8 +184,9 @@ out: ps2_end_command(ps2dev); - dev_dbg(&ps2dev->serio->dev, "WRITE REG: 0x%02x to 0x%02x (rc = %d)\n", - reg_addr, reg_val, rc); + psmouse_dbg(psmouse, + "WRITE REG: 0x%02x to 0x%02x (rc = %d)\n", + reg_addr, reg_val, rc); return rc; } @@ -213,8 +217,7 @@ unsigned char param[3]; int rc = -1; - ps2_command(ps2dev, NULL, PSMOUSE_CMD_DISABLE); - psmouse_set_state(psmouse, PSMOUSE_CMD_MODE); + psmouse_deactivate(psmouse); ps2_begin_command(ps2dev); @@ -239,10 +242,10 @@ out: ps2_end_command(ps2dev); - ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE); - psmouse_set_state(psmouse, PSMOUSE_ACTIVATED); - dev_dbg(&ps2dev->serio->dev, "READ PAGE REG: 0x%02x (rc = %d)\n", - *reg_val, rc); + psmouse_activate(psmouse); + psmouse_dbg(psmouse, + "READ PAGE REG: 0x%02x (rc = %d)\n", + *reg_val, rc); return rc; } @@ -278,8 +281,9 @@ out: ps2_end_command(ps2dev); - dev_dbg(&ps2dev->serio->dev, "WRITE PAGE REG: to 0x%02x (rc = %d)\n", - reg_val, rc); + psmouse_dbg(psmouse, + "WRITE PAGE REG: to 0x%02x (rc = %d)\n", + reg_val, rc); return rc; } @@ -323,7 +327,7 @@ int res = 0; if (fsp_reg_read(psmouse, FSP_REG_OPC_QDOWN, &v) == -1) { - dev_err(&psmouse->ps2dev.serio->dev, "Unable get OPC state.\n"); + psmouse_err(psmouse, "Unable get OPC state.\n"); return -EIO; } @@ -340,8 +344,7 @@ } if (res != 0) { - dev_err(&psmouse->ps2dev.serio->dev, - "Unable to enable OPC tag.\n"); + psmouse_err(psmouse, "Unable to enable OPC tag.\n"); res = -EIO; } @@ -598,18 +601,40 @@ .attrs = fsp_attributes, }; -#ifdef FSP_DEBUG -static void fsp_packet_debug(unsigned char packet[]) +#ifdef FSP_DEBUG +static void fsp_packet_debug(struct psmouse *psmouse, unsigned char packet[]) { static unsigned int ps2_packet_cnt; static unsigned int ps2_last_second; unsigned int jiffies_msec; + const char *packet_type = "UNKNOWN"; + unsigned short abs_x = 0, abs_y = 0; + + /* Interpret & dump the packet data. */ + switch (packet[0] >> FSP_PKT_TYPE_SHIFT) { + case FSP_PKT_TYPE_ABS: + packet_type = "Absolute"; + abs_x = GET_ABS_X(packet); + abs_y = GET_ABS_Y(packet); + break; + case FSP_PKT_TYPE_NORMAL: + packet_type = "Normal"; + break; + case FSP_PKT_TYPE_NOTIFY: + packet_type = "Notify"; + break; + case FSP_PKT_TYPE_NORMAL_OPC: + packet_type = "Normal-OPC"; + break; + } ps2_packet_cnt++; jiffies_msec = jiffies_to_msecs(jiffies); psmouse_dbg(psmouse, - "%08dms PS/2 packets: %02x, %02x, %02x, %02x\n", - jiffies_msec, packet[0], packet[1], packet[2], packet[3]); + "%08dms %s packets: %02x, %02x, %02x, %02x; " + "abs_x: %d, abs_y: %d\n", + jiffies_msec, packet_type, + packet[0], packet[1], packet[2], packet[3], abs_x, abs_y); if (jiffies_msec - ps2_last_second > 1000) { psmouse_dbg(psmouse, "PS/2 packets/sec = %d\n", ps2_packet_cnt); @@ -618,17 +643,29 @@ } } #else -static void fsp_packet_debug(unsigned char packet[]) +static void fsp_packet_debug(struct psmouse *psmouse, unsigned char packet[]) { } #endif +static void fsp_set_slot(struct input_dev *dev, int slot, bool active, + unsigned int x, unsigned int y) +{ + input_mt_slot(dev, slot); + input_mt_report_slot_state(dev, MT_TOOL_FINGER, active); + if (active) { + input_report_abs(dev, ABS_MT_POSITION_X, x); + input_report_abs(dev, ABS_MT_POSITION_Y, y); + } +} + static psmouse_ret_t fsp_process_byte(struct psmouse *psmouse) { struct input_dev *dev = psmouse->dev; struct fsp_data *ad = psmouse->private; unsigned char *packet = psmouse->packet; unsigned char button_status = 0, lscroll = 0, rscroll = 0; + unsigned short abs_x, abs_y, fgrs = 0; int rel_x, rel_y; if (psmouse->pktcnt < 4) @@ -638,16 +675,84 @@ * Full packet accumulated, process it */ + fsp_packet_debug(psmouse, packet); + switch (psmouse->packet[0] >> FSP_PKT_TYPE_SHIFT) { case FSP_PKT_TYPE_ABS: - dev_warn(&psmouse->ps2dev.serio->dev, - "Unexpected absolute mode packet, ignored.\n"); + abs_x = GET_ABS_X(packet); + abs_y = GET_ABS_Y(packet); + + if (packet[0] & FSP_PB0_MFMC) { + /* + * MFMC packet: assume that there are two fingers on + * pad + */ + fgrs = 2; + + /* MFMC packet */ + if (packet[0] & FSP_PB0_MFMC_FGR2) { + /* 2nd finger */ + if (ad->last_mt_fgr == 2) { + /* + * workaround for buggy firmware + * which doesn't clear MFMC bit if + * the 1st finger is up + */ + fgrs = 1; + fsp_set_slot(dev, 0, false, 0, 0); + } + ad->last_mt_fgr = 2; + + fsp_set_slot(dev, 1, fgrs == 2, abs_x, abs_y); + } else { + /* 1st finger */ + if (ad->last_mt_fgr == 1) { + /* + * workaround for buggy firmware + * which doesn't clear MFMC bit if + * the 2nd finger is up + */ + fgrs = 1; + fsp_set_slot(dev, 1, false, 0, 0); + } + ad->last_mt_fgr = 1; + fsp_set_slot(dev, 0, fgrs != 0, abs_x, abs_y); + } + } else { + /* SFAC packet */ + if ((packet[0] & (FSP_PB0_LBTN|FSP_PB0_PHY_BTN)) == + FSP_PB0_LBTN) { + /* On-pad click in SFAC mode should be handled + * by userspace. On-pad clicks in MFMC mode + * are real clickpad clicks, and not ignored. + */ + packet[0] &= ~FSP_PB0_LBTN; + } + + /* no multi-finger information */ + ad->last_mt_fgr = 0; + + if (abs_x != 0 && abs_y != 0) + fgrs = 1; + + fsp_set_slot(dev, 0, fgrs > 0, abs_x, abs_y); + fsp_set_slot(dev, 1, false, 0, 0); + } + if (fgrs > 0) { + input_report_abs(dev, ABS_X, abs_x); + input_report_abs(dev, ABS_Y, abs_y); + } + input_report_key(dev, BTN_LEFT, packet[0] & 0x01); + input_report_key(dev, BTN_RIGHT, packet[0] & 0x02); + input_report_key(dev, BTN_TOUCH, fgrs); + input_report_key(dev, BTN_TOOL_FINGER, fgrs == 1); + input_report_key(dev, BTN_TOOL_DOUBLETAP, fgrs == 2); break; case FSP_PKT_TYPE_NORMAL_OPC: /* on-pad click, filter it if necessary */ if ((ad->flags & FSPDRV_FLAG_EN_OPC) != FSPDRV_FLAG_EN_OPC) - packet[0] &= ~BIT(0); + packet[0] &= ~FSP_PB0_LBTN; /* fall through */ case FSP_PKT_TYPE_NORMAL: @@ -694,8 +799,6 @@ input_sync(dev); - fsp_packet_debug(packet); - return PSMOUSE_FULL_PACKET; } @@ -719,42 +822,106 @@ ps2_command(ps2dev, param, PSMOUSE_CMD_GETID); if (param[0] != 0x04) { - dev_err(&psmouse->ps2dev.serio->dev, - "Unable to enable 4 bytes packet format.\n"); + psmouse_err(psmouse, + "Unable to enable 4 bytes packet format.\n"); return -EIO; } - if (fsp_reg_read(psmouse, FSP_REG_SYSCTL5, &val)) { - dev_err(&psmouse->ps2dev.serio->dev, - "Unable to read SYSCTL5 register.\n"); - return -EIO; - } + if (pad->ver < FSP_VER_STL3888_C0) { + /* Preparing relative coordinates output for older hardware */ + if (fsp_reg_read(psmouse, FSP_REG_SYSCTL5, &val)) { + psmouse_err(psmouse, + "Unable to read SYSCTL5 register.\n"); + return -EIO; + } - val &= ~(FSP_BIT_EN_MSID7 | FSP_BIT_EN_MSID8 | FSP_BIT_EN_AUTO_MSID8); - /* Ensure we are not in absolute mode */ - val &= ~FSP_BIT_EN_PKT_G0; - if (pad->buttons == 0x06) { - /* Left/Middle/Right & Scroll Up/Down/Right/Left */ - val |= FSP_BIT_EN_MSID6; - } + if (fsp_get_buttons(psmouse, &pad->buttons)) { + psmouse_err(psmouse, + "Unable to retrieve number of buttons.\n"); + return -EIO; + } - if (fsp_reg_write(psmouse, FSP_REG_SYSCTL5, val)) { - dev_err(&psmouse->ps2dev.serio->dev, - "Unable to set up required mode bits.\n"); - return -EIO; + val &= ~(FSP_BIT_EN_MSID7 | FSP_BIT_EN_MSID8 | FSP_BIT_EN_AUTO_MSID8); + /* Ensure we are not in absolute mode */ + val &= ~FSP_BIT_EN_PKT_G0; + if (pad->buttons == 0x06) { + /* Left/Middle/Right & Scroll Up/Down/Right/Left */ + val |= FSP_BIT_EN_MSID6; + } + + if (fsp_reg_write(psmouse, FSP_REG_SYSCTL5, val)) { + psmouse_err(psmouse, + "Unable to set up required mode bits.\n"); + return -EIO; + } + + /* + * Enable OPC tags such that driver can tell the difference + * between on-pad and real button click + */ + if (fsp_opc_tag_enable(psmouse, true)) + psmouse_warn(psmouse, + "Failed to enable OPC tag mode.\n"); + /* enable on-pad click by default */ + pad->flags |= FSPDRV_FLAG_EN_OPC; + + /* Enable on-pad vertical and horizontal scrolling */ + fsp_onpad_vscr(psmouse, true); + fsp_onpad_hscr(psmouse, true); + } else { + /* Enable absolute coordinates output for Cx/Dx hardware */ + if (fsp_reg_write(psmouse, FSP_REG_SWC1, + FSP_BIT_SWC1_EN_ABS_1F | + FSP_BIT_SWC1_EN_ABS_2F | + FSP_BIT_SWC1_EN_FUP_OUT | + FSP_BIT_SWC1_EN_ABS_CON)) { + psmouse_err(psmouse, + "Unable to enable absolute coordinates output.\n"); + return -EIO; + } } - /* - * Enable OPC tags such that driver can tell the difference between - * on-pad and real button click - */ - if (fsp_opc_tag_enable(psmouse, true)) - dev_warn(&psmouse->ps2dev.serio->dev, - "Failed to enable OPC tag mode.\n"); - - /* Enable on-pad vertical and horizontal scrolling */ - fsp_onpad_vscr(psmouse, true); - fsp_onpad_hscr(psmouse, true); + return 0; +} + +static int fsp_set_input_params(struct psmouse *psmouse) +{ + struct input_dev *dev = psmouse->dev; + struct fsp_data *pad = psmouse->private; + + if (pad->ver < FSP_VER_STL3888_C0) { + __set_bit(BTN_MIDDLE, dev->keybit); + __set_bit(BTN_BACK, dev->keybit); + __set_bit(BTN_FORWARD, dev->keybit); + __set_bit(REL_WHEEL, dev->relbit); + __set_bit(REL_HWHEEL, dev->relbit); + } else { + /* + * Hardware prior to Cx performs much better in relative mode; + * hence, only enable absolute coordinates output as well as + * multi-touch output for the newer hardware. + * + * Maximum coordinates can be computed as: + * + * number of scanlines * 64 - 57 + * + * where number of X/Y scanline lines are 16/12. + */ + int abs_x = 967, abs_y = 711; + + __set_bit(EV_ABS, dev->evbit); + __clear_bit(EV_REL, dev->evbit); + __set_bit(BTN_TOUCH, dev->keybit); + __set_bit(BTN_TOOL_FINGER, dev->keybit); + __set_bit(BTN_TOOL_DOUBLETAP, dev->keybit); + __set_bit(INPUT_PROP_SEMI_MT, dev->propbit); + + input_set_abs_params(dev, ABS_X, 0, abs_x, 0, 0); + input_set_abs_params(dev, ABS_Y, 0, abs_y, 0, 0); + input_mt_init_slots(dev, 2); + input_set_abs_params(dev, ABS_MT_POSITION_X, 0, abs_x, 0, 0); + input_set_abs_params(dev, ABS_MT_POSITION_Y, 0, abs_y, 0, 0); + } return 0; } @@ -812,18 +979,16 @@ int fsp_init(struct psmouse *psmouse) { struct fsp_data *priv; - int ver, rev, buttons; + int ver, rev; int error; if (fsp_get_version(psmouse, &ver) || - fsp_get_revision(psmouse, &rev) || - fsp_get_buttons(psmouse, &buttons)) { + fsp_get_revision(psmouse, &rev)) { return -ENODEV; } - psmouse_info(psmouse, - "Finger Sensing Pad, hw: %d.%d.%d, sw: %s, buttons: %d\n", - ver >> 4, ver & 0x0F, rev, fsp_drv_ver, buttons & 7); + psmouse_info(psmouse, "Finger Sensing Pad, hw: %d.%d.%d, sw: %s\n", + ver >> 4, ver & 0x0F, rev, fsp_drv_ver); psmouse->private = priv = kzalloc(sizeof(struct fsp_data), GFP_KERNEL); if (!priv) @@ -831,17 +996,6 @@ priv->ver = ver; priv->rev = rev; - priv->buttons = buttons; - - /* enable on-pad click by default */ - priv->flags |= FSPDRV_FLAG_EN_OPC; - - /* Set up various supported input event bits */ - __set_bit(BTN_MIDDLE, psmouse->dev->keybit); - __set_bit(BTN_BACK, psmouse->dev->keybit); - __set_bit(BTN_FORWARD, psmouse->dev->keybit); - __set_bit(REL_WHEEL, psmouse->dev->relbit); - __set_bit(REL_HWHEEL, psmouse->dev->relbit); psmouse->protocol_handler = fsp_process_byte; psmouse->disconnect = fsp_disconnect; @@ -849,16 +1003,20 @@ psmouse->cleanup = fsp_reset; psmouse->pktsize = 4; - /* set default packet output based on number of buttons we found */ error = fsp_activate_protocol(psmouse); if (error) goto err_out; + /* Set up various supported input event bits */ + error = fsp_set_input_params(psmouse); + if (error) + goto err_out; + error = sysfs_create_group(&psmouse->ps2dev.serio->dev.kobj, &fsp_attribute_group); if (error) { - dev_err(&psmouse->ps2dev.serio->dev, - "Failed to create sysfs attributes (%d)", error); + psmouse_err(psmouse, + "Failed to create sysfs attributes (%d)", error); goto err_out; } --- linux-3.2.0.orig/drivers/input/mouse/Makefile +++ linux-3.2.0/drivers/input/mouse/Makefile @@ -30,3 +30,4 @@ psmouse-$(CONFIG_MOUSE_PS2_SENTELIC) += sentelic.o psmouse-$(CONFIG_MOUSE_PS2_TRACKPOINT) += trackpoint.o psmouse-$(CONFIG_MOUSE_PS2_TOUCHKIT) += touchkit_ps2.o +psmouse-$(CONFIG_MOUSE_PS2_CYPRESS) += cypress_ps2.o --- linux-3.2.0.orig/drivers/input/mouse/sentelic.h +++ linux-3.2.0/drivers/input/mouse/sentelic.h @@ -2,7 +2,7 @@ * Finger Sensing Pad PS/2 mouse driver. * * Copyright (C) 2005-2007 Asia Vital Components Co., Ltd. - * Copyright (C) 2005-2011 Tai-hwa Liang, Sentelic Corporation. + * Copyright (C) 2005-2012 Tai-hwa Liang, Sentelic Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -55,6 +55,16 @@ #define FSP_BIT_FIX_HSCR BIT(5) #define FSP_BIT_DRAG_LOCK BIT(6) +#define FSP_REG_SWC1 (0x90) +#define FSP_BIT_SWC1_EN_ABS_1F BIT(0) +#define FSP_BIT_SWC1_EN_GID BIT(1) +#define FSP_BIT_SWC1_EN_ABS_2F BIT(2) +#define FSP_BIT_SWC1_EN_FUP_OUT BIT(3) +#define FSP_BIT_SWC1_EN_ABS_CON BIT(4) +#define FSP_BIT_SWC1_GST_GRP0 BIT(5) +#define FSP_BIT_SWC1_GST_GRP1 BIT(6) +#define FSP_BIT_SWC1_BX_COMPAT BIT(7) + /* Finger-sensing Pad packet formating related definitions */ /* absolute packet type */ @@ -64,12 +74,32 @@ #define FSP_PKT_TYPE_NORMAL_OPC (0x03) #define FSP_PKT_TYPE_SHIFT (6) +/* bit definitions for the first byte of report packet */ +#define FSP_PB0_LBTN BIT(0) +#define FSP_PB0_RBTN BIT(1) +#define FSP_PB0_MBTN BIT(2) +#define FSP_PB0_MFMC_FGR2 FSP_PB0_MBTN +#define FSP_PB0_MUST_SET BIT(3) +#define FSP_PB0_PHY_BTN BIT(4) +#define FSP_PB0_MFMC BIT(5) + +/* hardware revisions */ +#define FSP_VER_STL3888_A4 (0xC1) +#define FSP_VER_STL3888_B0 (0xD0) +#define FSP_VER_STL3888_B1 (0xD1) +#define FSP_VER_STL3888_B2 (0xD2) +#define FSP_VER_STL3888_C0 (0xE0) +#define FSP_VER_STL3888_C1 (0xE1) +#define FSP_VER_STL3888_D0 (0xE2) +#define FSP_VER_STL3888_D1 (0xE3) +#define FSP_VER_STL3888_E0 (0xE4) + #ifdef __KERNEL__ struct fsp_data { unsigned char ver; /* hardware version */ unsigned char rev; /* hardware revison */ - unsigned char buttons; /* Number of buttons */ + unsigned int buttons; /* Number of buttons */ unsigned int flags; #define FSPDRV_FLAG_EN_OPC (0x001) /* enable on-pad clicking */ @@ -78,6 +108,7 @@ unsigned char last_reg; /* Last register we requested read from */ unsigned char last_val; + unsigned int last_mt_fgr; /* Last seen finger(multitouch) */ }; #ifdef CONFIG_MOUSE_PS2_SENTELIC --- linux-3.2.0.orig/drivers/input/mouse/synaptics.c +++ linux-3.2.0/drivers/input/mouse/synaptics.c @@ -40,11 +40,33 @@ * Note that newer firmware allows querying device for maximum useable * coordinates. */ +#define XMIN 0 +#define XMAX 6143 +#define YMIN 0 +#define YMAX 6143 #define XMIN_NOMINAL 1472 #define XMAX_NOMINAL 5472 #define YMIN_NOMINAL 1408 #define YMAX_NOMINAL 4448 +/* Size in bits of absolute position values reported by the hardware */ +#define ABS_POS_BITS 13 + +/* + * These values should represent the absolute maximum value that will + * be reported for a positive position value. Some Synaptics firmware + * uses this value to indicate a finger near the edge of the touchpad + * whose precise position cannot be determined. + * + * At least one touchpad is known to report positions in excess of this + * value which are actually negative values truncated to the 13-bit + * reporting range. These values have never been observed to be lower + * than 8184 (i.e. -8), so we treat all values greater than 8176 as + * negative and any other value as positive. + */ +#define X_MAX_POSITIVE 8176 +#define Y_MAX_POSITIVE 8176 + /* * Synaptics touchpads report the y coordinate from bottom to top, which is * opposite from what userspace expects. @@ -544,6 +566,22 @@ hw->right = (buf[0] & 0x02) ? 1 : 0; } + /* + * Convert wrap-around values to negative. (X|Y)_MAX_POSITIVE + * is used by some firmware to indicate a finger at the edge of + * the touchpad whose precise position cannot be determined, so + * convert these values to the maximum axis value. + */ + if (hw->x > X_MAX_POSITIVE) + hw->x -= 1 << ABS_POS_BITS; + else if (hw->x == X_MAX_POSITIVE) + hw->x = XMAX; + + if (hw->y > Y_MAX_POSITIVE) + hw->y -= 1 << ABS_POS_BITS; + else if (hw->y == Y_MAX_POSITIVE) + hw->y = YMAX; + return 0; } @@ -1202,7 +1240,9 @@ /* Clickpads report only left button */ __clear_bit(BTN_RIGHT, dev->keybit); __clear_bit(BTN_MIDDLE, dev->keybit); - } + } else if (SYN_CAP_CLICKPAD2BTN(priv->ext_cap_0c) || + SYN_CAP_CLICKPAD2BTN2(priv->ext_cap_0c)) + __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit); } static void synaptics_disconnect(struct psmouse *psmouse) @@ -1216,6 +1256,7 @@ { struct synaptics_data *priv = psmouse->private; struct synaptics_data old_priv = *priv; + unsigned char param[2]; int retry = 0; int error; @@ -1231,6 +1272,7 @@ */ ssleep(1); } + ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETID); error = synaptics_detect(psmouse, 0); } while (error && ++retry < 3); --- linux-3.2.0.orig/drivers/input/mouse/cypress_ps2.h +++ linux-3.2.0/drivers/input/mouse/cypress_ps2.h @@ -0,0 +1,220 @@ +#ifndef _CYPRESS_PS2_H +#define _CYPRESS_PS2_H + +#include "psmouse.h" + +#define CMD_BITS_MASK 0x03 +#define COMPOSIT(x, s) (((x) & CMD_BITS_MASK) << (s)) + +#define ENCODE_CMD(aa, bb, cc, dd) \ + (COMPOSIT((aa), 6) | COMPOSIT((bb), 4) | COMPOSIT((cc), 2) | COMPOSIT((dd), 0)) +#define CYTP_CMD_ABS_NO_PRESSURE_MODE ENCODE_CMD(0, 1, 0, 0) +#define CYTP_CMD_ABS_WITH_PRESSURE_MODE ENCODE_CMD(0, 1, 0, 1) +#define CYTP_CMD_SMBUS_MODE ENCODE_CMD(0, 1, 1, 0) +#define CYTP_CMD_STANDARD_MODE ENCODE_CMD(0, 2, 0, 0) /* not implemented yet. */ +#define CYTP_CMD_CYPRESS_REL_MODE ENCODE_CMD(1, 1, 1, 1) /* not implemented yet. */ +#define CYTP_CMD_READ_CYPRESS_ID ENCODE_CMD(0, 0, 0, 0) +#define CYTP_CMD_READ_VITAL_STATISTICS ENCODE_CMD(0, 0, 0, 1) +#define CYTP_CMD_SET_HSCROLL_WIDTH(w) ENCODE_CMD(1, 1, 0, (w)) +#define CYTP_CMD_SET_HSCROLL_MASK ENCODE_CMD(1, 1, 0, 0) +#define CYTP_CMD_SET_VSCROLL_WIDTH(w) ENCODE_CMD(1, 2, 0, (w)) +#define CYTP_CMD_SET_VSCROLL_MASK ENCODE_CMD(1, 2, 0, 0) +#define CYTP_CMD_SET_PALM_GEOMETRY(e) ENCODE_CMD(1, 2, 1, (e)) +#define CYTP_CMD_PALM_GEMMETRY_MASK ENCODE_CMD(1, 2, 1, 0) +#define CYTP_CMD_SET_PALM_SENSITIVITY(s) ENCODE_CMD(1, 2, 2, (s)) +#define CYTP_CMD_PALM_SENSITIVITY_MASK ENCODE_CMD(1, 2, 2, 0) +#define CYTP_CMD_SET_MOUSE_SENSITIVITY(s) ENCODE_CMD(1, 3, ((s) >> 2), (s)) +#define CYTP_CMD_MOUSE_SENSITIVITY_MASK ENCODE_CMD(1, 3, 0, 0) +#define CYTP_CMD_REQUEST_BASELINE_STATUS ENCODE_CMD(2, 0, 0, 1) +#define CYTP_CMD_REQUEST_RECALIBRATION ENCODE_CMD(2, 0, 0, 3) + +#define DECODE_CMD_AA(x) (((x) >> 6) & CMD_BITS_MASK) +#define DECODE_CMD_BB(x) (((x) >> 4) & CMD_BITS_MASK) +#define DECODE_CMD_CC(x) (((x) >> 2) & CMD_BITS_MASK) +#define DECODE_CMD_DD(x) ((x) & CMD_BITS_MASK) + +/* Cypress trackpad working mode. */ +#define CYTP_BIT_ABS_PRESSURE (1 << 3) +#define CYTP_BIT_ABS_NO_PRESSURE (1 << 2) +#define CYTP_BIT_CYPRESS_REL (1 << 1) +#define CYTP_BIT_STANDARD_REL (1 << 0) +#define CYTP_BIT_REL_MASK (CYTP_BIT_CYPRESS_REL | CYTP_BIT_STANDARD_REL) +#define CYTP_BIT_ABS_MASK (CYTP_BIT_ABS_PRESSURE | CYTP_BIT_ABS_NO_PRESSURE) +#define CYTP_BIT_ABS_REL_MASK (CYTP_BIT_ABS_MASK | CYTP_BIT_REL_MASK) + +#define CYTP_BIT_HIGH_RATE (1 << 4) +/* + * report mode bit is set, firmware working in Remote Mode. + * report mode bit is cleared, firmware working in Stream Mode. + */ +#define CYTP_BIT_REPORT_MODE (1 << 5) + +/* scrolling width values for set HSCROLL and VSCROLL width command. */ +#define SCROLL_WIDTH_NARROW 1 +#define SCROLL_WIDTH_NORMAL 2 +#define SCROLL_WIDTH_WIDE 3 + +#define PALM_GEOMETRY_ENABLE 1 +#define PALM_GEOMETRY_DISABLE 0 + +#define CYPRESS_KEY_1 0x33 +#define CYPRESS_KEY_2 0xCC + +#define VITAL_STATICS_MASK 0x80 +#define FW_VERSION_MASX 0x7f +#define FW_VER_HIGH_MASK 0x70 +#define FW_VER_LOW_MASK 0x0f + +/* Times to retry a ps2_command and millisecond delay between tries. */ +#define CYTP_PS2_CMD_TRIES 3 +#define CYTP_PS2_CMD_DELAY 500 + +/* time out for PS/2 command only in milliseconds. */ +#define CYTP_CMD_TIMEOUT 200 +#define CYTP_DATA_TIMEOUT 30 + +#define CYTP_EXT_CMD 0xe8 +#define CYTP_PS2_RETRY 0xfe +#define CYTP_PS2_ERROR 0xfc + +#define CYTP_RESP_RETRY 0x01 +#define CYTP_RESP_ERROR 0xfe + + +#define CYTP_105001_WIDTH 97 /* Dell XPS 13 */ +#define CYTP_105001_HIGH 59 +#define CYTP_DEFAULT_WIDTH (CYTP_105001_WIDTH) +#define CYTP_DEFAULT_HIGH (CYTP_105001_HIGH) + +#define CYTP_ABS_MAX_X 1600 +#define CYTP_ABS_MAX_Y 900 +#define CYTP_MAX_PRESSURE 255 +#define CYTP_MIN_PRESSURE 0 + +/* header byte bits of relative package. */ +#define BTN_LEFT_BIT 0x01 +#define BTN_RIGHT_BIT 0x02 +#define BTN_MIDDLE_BIT 0x04 +#define REL_X_SIGN_BIT 0x10 +#define REL_Y_SIGN_BIT 0x20 + +/* header byte bits of absolute package. */ +#define ABS_VSCROLL_BIT 0x10 +#define ABS_HSCROLL_BIT 0x20 +#define ABS_MULTIFINGER_TAP 0x04 +#define ABS_EDGE_MOTION_MASK 0x80 + +#define DFLT_RESP_BITS_VALID 0x88 /* SMBus bit should not be set. */ +#define DFLT_RESP_SMBUS_BIT 0x80 +#define DFLT_SMBUS_MODE 0x80 +#define DFLT_PS2_MODE 0x00 +#define DFLT_RESP_BIT_MODE 0x40 +#define DFLT_RESP_REMOTE_MODE 0x40 +#define DFLT_RESP_STREAM_MODE 0x00 +#define DFLT_RESP_BIT_REPORTING 0x20 +#define DFLT_RESP_BIT_SCALING 0x10 + +#define VITAL_BIT_PALM 0x80 +#define VITAL_BIT_STUBBORN 0x40 +#define VITAL_BIT_2F_JITTER 0x30 +#define VITAL_BIT_1F_JITTER 0x0c +#define VITAL_BIT_APA 0x02 +#define VITAL_BIT_MTG 0x01 +#define VITAL_BIT_ABS_PKT_FORMAT_SET 0xf0 +#define VITAL_BIT_2F_SPIKE 0x0c +#define VITAL_BIT_1F_SPIKE 0x03 + +/* bits of first byte response of E9h-Status Request command. */ +#define RESP_BTN_RIGHT_BIT 0x01 +#define RESP_BTN_MIDDLE_BIT 0x02 +#define RESP_BTN_LEFT_BIT 0x04 +#define RESP_SCALING_BIT 0x10 +#define RESP_ENABLE_BIT 0x20 +#define RESP_REMOTE_BIT 0x40 +#define RESP_SMBUS_BIT 0x80 + +#define CYTP_MAX_CONTACTS 5 +#define CYTP_MAX_MT_SLOTS 16 + +enum cytp_type { + CYTP_STG, + CYTP_MTG, + CYTP_APA, +}; + +struct cytp_contact { + int x; + int y; + int z; /* also named as touch pressure. */ + int id; /* It's incremented with every new touch. */ +}; + +/* The structure of */ +struct cytp_report_data { + int contact_cnt; + struct cytp_contact contacts[CYTP_MAX_CONTACTS]; + unsigned int left:1; + unsigned int right:1; + unsigned int middle:1; + unsigned int tap:1; /* multi-finger tap detected. */ + signed char vscroll; + signed char hscroll; +}; + +/* The structure of Cypress Trackpad device private data. */ +struct cytp_data { + int fw_version; + + int pkt_size; + int mode; + + int scaling; + int reporting; + + int tp_min_pressure; + int tp_max_pressure; + int tp_width; /* X direction physical size in mm. */ + int tp_high; /* Y direction physical size in mm. */ + int tp_max_abs_x; /* Max X absolution units can be reported. */ + int tp_max_abs_y; /* Max Y absolution units can be reported. */ + + int tp_res_x; /* X resolution in units/mm. */ + int tp_res_y; /* Y resolution in units/mm. */ + + enum cytp_type tp_type; + unsigned char tp_palm; + unsigned char tp_stubborn; + unsigned char tp_2f_jitter; + unsigned char tp_1f_jitter; + unsigned char tp_abs_packet_format_set; + unsigned char tp_2f_spike; + unsigned char tp_1f_spike; + + int vital_statics_supported; + + int prev_contact_cnt; + int zero_packet_cnt; + struct cytp_report_data prev_report_data; +}; + + +#ifdef CONFIG_MOUSE_PS2_CYPRESS +int cypress_detect(struct psmouse *psmouse, bool set_properties); +int cypress_init(struct psmouse *psmouse); +bool cypress_supported(void); +#else +inline int cypress_detect(struct psmouse *psmouse, bool set_properties) +{ + return -ENOSYS; +} +inline int cypress_init(struct psmouse *psmouse) +{ + return -ENOSYS; +} +inline bool cypress_supported(void) +{ + return 0; +} +#endif /* CONFIG_MOUSE_PS2_CYPRESS */ + +#endif /* _CYPRESS_PS2_H */ --- linux-3.2.0.orig/drivers/input/mouse/alps.c +++ linux-3.2.0/drivers/input/mouse/alps.c @@ -17,13 +17,63 @@ #include #include +#include #include #include #include "psmouse.h" #include "alps.h" -#define ALPS_OLDPROTO 0x01 /* old style input */ +/* + * Definitions for ALPS version 3 and 4 command mode protocol + */ +#define ALPS_V3_X_MAX 2000 +#define ALPS_V3_Y_MAX 1400 + +#define ALPS_BITMAP_X_BITS 15 +#define ALPS_BITMAP_Y_BITS 11 + +#define ALPS_CMD_NIBBLE_10 0x01f2 + +static const struct alps_nibble_commands alps_v3_nibble_commands[] = { + { PSMOUSE_CMD_SETPOLL, 0x00 }, /* 0 */ + { PSMOUSE_CMD_RESET_DIS, 0x00 }, /* 1 */ + { PSMOUSE_CMD_SETSCALE21, 0x00 }, /* 2 */ + { PSMOUSE_CMD_SETRATE, 0x0a }, /* 3 */ + { PSMOUSE_CMD_SETRATE, 0x14 }, /* 4 */ + { PSMOUSE_CMD_SETRATE, 0x28 }, /* 5 */ + { PSMOUSE_CMD_SETRATE, 0x3c }, /* 6 */ + { PSMOUSE_CMD_SETRATE, 0x50 }, /* 7 */ + { PSMOUSE_CMD_SETRATE, 0x64 }, /* 8 */ + { PSMOUSE_CMD_SETRATE, 0xc8 }, /* 9 */ + { ALPS_CMD_NIBBLE_10, 0x00 }, /* a */ + { PSMOUSE_CMD_SETRES, 0x00 }, /* b */ + { PSMOUSE_CMD_SETRES, 0x01 }, /* c */ + { PSMOUSE_CMD_SETRES, 0x02 }, /* d */ + { PSMOUSE_CMD_SETRES, 0x03 }, /* e */ + { PSMOUSE_CMD_SETSCALE11, 0x00 }, /* f */ +}; + +static const struct alps_nibble_commands alps_v4_nibble_commands[] = { + { PSMOUSE_CMD_ENABLE, 0x00 }, /* 0 */ + { PSMOUSE_CMD_RESET_DIS, 0x00 }, /* 1 */ + { PSMOUSE_CMD_SETSCALE21, 0x00 }, /* 2 */ + { PSMOUSE_CMD_SETRATE, 0x0a }, /* 3 */ + { PSMOUSE_CMD_SETRATE, 0x14 }, /* 4 */ + { PSMOUSE_CMD_SETRATE, 0x28 }, /* 5 */ + { PSMOUSE_CMD_SETRATE, 0x3c }, /* 6 */ + { PSMOUSE_CMD_SETRATE, 0x50 }, /* 7 */ + { PSMOUSE_CMD_SETRATE, 0x64 }, /* 8 */ + { PSMOUSE_CMD_SETRATE, 0xc8 }, /* 9 */ + { ALPS_CMD_NIBBLE_10, 0x00 }, /* a */ + { PSMOUSE_CMD_SETRES, 0x00 }, /* b */ + { PSMOUSE_CMD_SETRES, 0x01 }, /* c */ + { PSMOUSE_CMD_SETRES, 0x02 }, /* d */ + { PSMOUSE_CMD_SETRES, 0x03 }, /* e */ + { PSMOUSE_CMD_SETSCALE11, 0x00 }, /* f */ +}; + + #define ALPS_DUALPOINT 0x02 /* touchpad has trackstick */ #define ALPS_PASS 0x04 /* device has a pass-through port */ @@ -35,30 +85,33 @@ 6-byte ALPS packet */ static const struct alps_model_info alps_model_data[] = { - { { 0x32, 0x02, 0x14 }, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* Toshiba Salellite Pro M10 */ - { { 0x33, 0x02, 0x0a }, 0x88, 0xf8, ALPS_OLDPROTO }, /* UMAX-530T */ - { { 0x53, 0x02, 0x0a }, 0xf8, 0xf8, 0 }, - { { 0x53, 0x02, 0x14 }, 0xf8, 0xf8, 0 }, - { { 0x60, 0x03, 0xc8 }, 0xf8, 0xf8, 0 }, /* HP ze1115 */ - { { 0x63, 0x02, 0x0a }, 0xf8, 0xf8, 0 }, - { { 0x63, 0x02, 0x14 }, 0xf8, 0xf8, 0 }, - { { 0x63, 0x02, 0x28 }, 0xf8, 0xf8, ALPS_FW_BK_2 }, /* Fujitsu Siemens S6010 */ - { { 0x63, 0x02, 0x3c }, 0x8f, 0x8f, ALPS_WHEEL }, /* Toshiba Satellite S2400-103 */ - { { 0x63, 0x02, 0x50 }, 0xef, 0xef, ALPS_FW_BK_1 }, /* NEC Versa L320 */ - { { 0x63, 0x02, 0x64 }, 0xf8, 0xf8, 0 }, - { { 0x63, 0x03, 0xc8 }, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude D800 */ - { { 0x73, 0x00, 0x0a }, 0xf8, 0xf8, ALPS_DUALPOINT }, /* ThinkPad R61 8918-5QG */ - { { 0x73, 0x02, 0x0a }, 0xf8, 0xf8, 0 }, - { { 0x73, 0x02, 0x14 }, 0xf8, 0xf8, ALPS_FW_BK_2 }, /* Ahtec Laptop */ - { { 0x20, 0x02, 0x0e }, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* XXX */ - { { 0x22, 0x02, 0x0a }, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, - { { 0x22, 0x02, 0x14 }, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude D600 */ + { { 0x32, 0x02, 0x14 }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* Toshiba Salellite Pro M10 */ + { { 0x33, 0x02, 0x0a }, 0x00, ALPS_PROTO_V1, 0x88, 0xf8, 0 }, /* UMAX-530T */ + { { 0x53, 0x02, 0x0a }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, 0 }, + { { 0x53, 0x02, 0x14 }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, 0 }, + { { 0x60, 0x03, 0xc8 }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, 0 }, /* HP ze1115 */ + { { 0x63, 0x02, 0x0a }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, 0 }, + { { 0x63, 0x02, 0x14 }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, 0 }, + { { 0x63, 0x02, 0x28 }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_FW_BK_2 }, /* Fujitsu Siemens S6010 */ + { { 0x63, 0x02, 0x3c }, 0x00, ALPS_PROTO_V2, 0x8f, 0x8f, ALPS_WHEEL }, /* Toshiba Satellite S2400-103 */ + { { 0x63, 0x02, 0x50 }, 0x00, ALPS_PROTO_V2, 0xef, 0xef, ALPS_FW_BK_1 }, /* NEC Versa L320 */ + { { 0x63, 0x02, 0x64 }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, 0 }, + { { 0x63, 0x03, 0xc8 }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude D800 */ + { { 0x73, 0x00, 0x0a }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_DUALPOINT }, /* ThinkPad R61 8918-5QG */ + { { 0x73, 0x02, 0x0a }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, 0 }, + { { 0x73, 0x02, 0x14 }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_FW_BK_2 }, /* Ahtec Laptop */ + { { 0x20, 0x02, 0x0e }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* XXX */ + { { 0x22, 0x02, 0x0a }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, + { { 0x22, 0x02, 0x14 }, 0x00, ALPS_PROTO_V2, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude D600 */ /* Dell Latitude E5500, E6400, E6500, Precision M4400 */ - { { 0x62, 0x02, 0x14 }, 0xcf, 0xcf, + { { 0x62, 0x02, 0x14 }, 0x00, ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, - { { 0x73, 0x02, 0x50 }, 0xcf, 0xcf, ALPS_FOUR_BUTTONS }, /* Dell Vostro 1400 */ - { { 0x52, 0x01, 0x14 }, 0xff, 0xff, - ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, /* Toshiba Tecra A11-11L */ + { { 0x73, 0x02, 0x50 }, 0x00, ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_FOUR_BUTTONS }, /* Dell Vostro 1400 */ + { { 0x52, 0x01, 0x14 }, 0x00, ALPS_PROTO_V2, 0xff, 0xff, + ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, /* Toshiba Tecra A11-11L */ + { { 0x73, 0x02, 0x64 }, 0x9b, ALPS_PROTO_V3, 0x8f, 0x8f, ALPS_DUALPOINT }, + { { 0x73, 0x02, 0x64 }, 0x9d, ALPS_PROTO_V3, 0x8f, 0x8f, ALPS_DUALPOINT }, + { { 0x73, 0x02, 0x64 }, 0x8a, ALPS_PROTO_V4, 0x8f, 0x8f, 0 }, }; /* @@ -67,42 +120,7 @@ * isn't valid per PS/2 spec. */ -/* - * PS/2 packet format - * - * byte 0: 0 0 YSGN XSGN 1 M R L - * byte 1: X7 X6 X5 X4 X3 X2 X1 X0 - * byte 2: Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 - * - * Note that the device never signals overflow condition. - * - * ALPS absolute Mode - new format - * - * byte 0: 1 ? ? ? 1 ? ? ? - * byte 1: 0 x6 x5 x4 x3 x2 x1 x0 - * byte 2: 0 x10 x9 x8 x7 ? fin ges - * byte 3: 0 y9 y8 y7 1 M R L - * byte 4: 0 y6 y5 y4 y3 y2 y1 y0 - * byte 5: 0 z6 z5 z4 z3 z2 z1 z0 - * - * Dualpoint device -- interleaved packet format - * - * byte 0: 1 1 0 0 1 1 1 1 - * byte 1: 0 x6 x5 x4 x3 x2 x1 x0 - * byte 2: 0 x10 x9 x8 x7 0 fin ges - * byte 3: 0 0 YSGN XSGN 1 1 1 1 - * byte 4: X7 X6 X5 X4 X3 X2 X1 X0 - * byte 5: Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 - * byte 6: 0 y9 y8 y7 1 m r l - * byte 7: 0 y6 y5 y4 y3 y2 y1 y0 - * byte 8: 0 z6 z5 z4 z3 z2 z1 z0 - * - * CAPITALS = stick, miniscules = touchpad - * - * ?'s can have different meanings on different models, - * such as wheel rotation, extra buttons, stick buttons - * on a dualpoint, etc. - */ +/* Packet formats are described in Documentation/input/alps.txt */ static bool alps_is_valid_first_byte(const struct alps_model_info *model, unsigned char data) @@ -137,7 +155,7 @@ input_sync(dev2); } -static void alps_process_packet(struct psmouse *psmouse) +static void alps_process_packet_v1_v2(struct psmouse *psmouse) { struct alps_data *priv = psmouse->private; const struct alps_model_info *model = priv->i; @@ -147,7 +165,7 @@ int x, y, z, ges, fin, left, right, middle; int back = 0, forward = 0; - if (model->flags & ALPS_OLDPROTO) { + if (model->proto_version == ALPS_PROTO_V1) { left = packet[2] & 0x10; right = packet[2] & 0x08; middle = 0; @@ -239,6 +257,403 @@ input_sync(dev); } +/* + * Process bitmap data from v3 and v4 protocols. Returns the number of + * fingers detected. A return value of 0 means at least one of the + * bitmaps was empty. + * + * The bitmaps don't have enough data to track fingers, so this function + * only generates points representing a bounding box of all contacts. + * These points are returned in x1, y1, x2, and y2 when the return value + * is greater than 0. + */ +static int alps_process_bitmap(unsigned int x_map, unsigned int y_map, + int *x1, int *y1, int *x2, int *y2) +{ + struct alps_bitmap_point { + int start_bit; + int num_bits; + }; + + int fingers_x = 0, fingers_y = 0, fingers; + int i, bit, prev_bit; + struct alps_bitmap_point x_low = {0,}, x_high = {0,}; + struct alps_bitmap_point y_low = {0,}, y_high = {0,}; + struct alps_bitmap_point *point; + + if (!x_map || !y_map) + return 0; + + *x1 = *y1 = *x2 = *y2 = 0; + + prev_bit = 0; + point = &x_low; + for (i = 0; x_map != 0; i++, x_map >>= 1) { + bit = x_map & 1; + if (bit) { + if (!prev_bit) { + point->start_bit = i; + fingers_x++; + } + point->num_bits++; + } else { + if (prev_bit) + point = &x_high; + else + point->num_bits = 0; + } + prev_bit = bit; + } + + /* + * y bitmap is reversed for what we need (lower positions are in + * higher bits), so we process from the top end. + */ + y_map = y_map << (sizeof(y_map) * BITS_PER_BYTE - ALPS_BITMAP_Y_BITS); + prev_bit = 0; + point = &y_low; + for (i = 0; y_map != 0; i++, y_map <<= 1) { + bit = y_map & (1 << (sizeof(y_map) * BITS_PER_BYTE - 1)); + if (bit) { + if (!prev_bit) { + point->start_bit = i; + fingers_y++; + } + point->num_bits++; + } else { + if (prev_bit) + point = &y_high; + else + point->num_bits = 0; + } + prev_bit = bit; + } + + /* + * Fingers can overlap, so we use the maximum count of fingers + * on either axis as the finger count. + */ + fingers = max(fingers_x, fingers_y); + + /* + * If total fingers is > 1 but either axis reports only a single + * contact, we have overlapping or adjacent fingers. For the + * purposes of creating a bounding box, divide the single contact + * (roughly) equally between the two points. + */ + if (fingers > 1) { + if (fingers_x == 1) { + i = x_low.num_bits / 2; + x_low.num_bits = x_low.num_bits - i; + x_high.start_bit = x_low.start_bit + i; + x_high.num_bits = max(i, 1); + } else if (fingers_y == 1) { + i = y_low.num_bits / 2; + y_low.num_bits = y_low.num_bits - i; + y_high.start_bit = y_low.start_bit + i; + y_high.num_bits = max(i, 1); + } + } + + *x1 = (ALPS_V3_X_MAX * (2 * x_low.start_bit + x_low.num_bits - 1)) / + (2 * (ALPS_BITMAP_X_BITS - 1)); + *y1 = (ALPS_V3_Y_MAX * (2 * y_low.start_bit + y_low.num_bits - 1)) / + (2 * (ALPS_BITMAP_Y_BITS - 1)); + + if (fingers > 1) { + *x2 = (ALPS_V3_X_MAX * (2 * x_high.start_bit + x_high.num_bits - 1)) / + (2 * (ALPS_BITMAP_X_BITS - 1)); + *y2 = (ALPS_V3_Y_MAX * (2 * y_high.start_bit + y_high.num_bits - 1)) / + (2 * (ALPS_BITMAP_Y_BITS - 1)); + } + + return fingers; +} + +static void alps_set_slot(struct input_dev *dev, int slot, bool active, + int x, int y) +{ + input_mt_slot(dev, slot); + input_mt_report_slot_state(dev, MT_TOOL_FINGER, active); + if (active) { + input_report_abs(dev, ABS_MT_POSITION_X, x); + input_report_abs(dev, ABS_MT_POSITION_Y, y); + } +} + +static void alps_report_semi_mt_data(struct input_dev *dev, int num_fingers, + int x1, int y1, int x2, int y2) +{ + alps_set_slot(dev, 0, num_fingers != 0, x1, y1); + alps_set_slot(dev, 1, num_fingers == 2, x2, y2); +} + +static void alps_process_trackstick_packet_v3(struct psmouse *psmouse) +{ + struct alps_data *priv = psmouse->private; + unsigned char *packet = psmouse->packet; + struct input_dev *dev = priv->dev2; + int x, y, z, left, right, middle; + + /* Sanity check packet */ + if (!(packet[0] & 0x40)) { + psmouse_dbg(psmouse, "Bad trackstick packet, discarding\n"); + return; + } + + /* + * There's a special packet that seems to indicate the end + * of a stream of trackstick data. Filter these out. + */ + if (packet[1] == 0x7f && packet[2] == 0x7f && packet[4] == 0x7f) + return; + + x = (s8)(((packet[0] & 0x20) << 2) | (packet[1] & 0x7f)); + y = (s8)(((packet[0] & 0x10) << 3) | (packet[2] & 0x7f)); + z = (packet[4] & 0x7c) >> 2; + + /* + * The x and y values tend to be quite large, and when used + * alone the trackstick is difficult to use. Scale them down + * to compensate. + */ + x /= 8; + y /= 8; + + input_report_rel(dev, REL_X, x); + input_report_rel(dev, REL_Y, -y); + + /* + * Most ALPS models report the trackstick buttons in the touchpad + * packets, but a few report them here. No reliable way has been + * found to differentiate between the models upfront, so we enable + * the quirk in response to seeing a button press in the trackstick + * packet. + */ + left = packet[3] & 0x01; + right = packet[3] & 0x02; + middle = packet[3] & 0x04; + + if (!(priv->quirks & ALPS_QUIRK_TRACKSTICK_BUTTONS) && + (left || right || middle)) + priv->quirks |= ALPS_QUIRK_TRACKSTICK_BUTTONS; + + if (priv->quirks & ALPS_QUIRK_TRACKSTICK_BUTTONS) { + input_report_key(dev, BTN_LEFT, left); + input_report_key(dev, BTN_RIGHT, right); + input_report_key(dev, BTN_MIDDLE, middle); + } + + input_sync(dev); + return; +} + +static void alps_process_touchpad_packet_v3(struct psmouse *psmouse) +{ + struct alps_data *priv = psmouse->private; + unsigned char *packet = psmouse->packet; + struct input_dev *dev = psmouse->dev; + struct input_dev *dev2 = priv->dev2; + int x, y, z; + int left, right, middle; + int x1 = 0, y1 = 0, x2 = 0, y2 = 0; + int fingers = 0, bmap_fingers; + unsigned int x_bitmap, y_bitmap; + + /* + * There's no single feature of touchpad position and bitmap packets + * that can be used to distinguish between them. We rely on the fact + * that a bitmap packet should always follow a position packet with + * bit 6 of packet[4] set. + */ + if (priv->multi_packet) { + /* + * Sometimes a position packet will indicate a multi-packet + * sequence, but then what follows is another position + * packet. Check for this, and when it happens process the + * position packet as usual. + */ + if (packet[0] & 0x40) { + fingers = (packet[5] & 0x3) + 1; + x_bitmap = ((packet[4] & 0x7e) << 8) | + ((packet[1] & 0x7f) << 2) | + ((packet[0] & 0x30) >> 4); + y_bitmap = ((packet[3] & 0x70) << 4) | + ((packet[2] & 0x7f) << 1) | + (packet[4] & 0x01); + + bmap_fingers = alps_process_bitmap(x_bitmap, y_bitmap, + &x1, &y1, &x2, &y2); + + /* + * We shouldn't report more than one finger if + * we don't have two coordinates. + */ + if (fingers > 1 && bmap_fingers < 2) + fingers = bmap_fingers; + + /* Now process position packet */ + packet = priv->multi_data; + } else { + priv->multi_packet = 0; + } + } + + /* + * Bit 6 of byte 0 is not usually set in position packets. The only + * times it seems to be set is in situations where the data is + * suspect anyway, e.g. a palm resting flat on the touchpad. Given + * this combined with the fact that this bit is useful for filtering + * out misidentified bitmap packets, we reject anything with this + * bit set. + */ + if (packet[0] & 0x40) + return; + + if (!priv->multi_packet && (packet[4] & 0x40)) { + priv->multi_packet = 1; + memcpy(priv->multi_data, packet, sizeof(priv->multi_data)); + return; + } + + priv->multi_packet = 0; + + left = packet[3] & 0x01; + right = packet[3] & 0x02; + middle = packet[3] & 0x04; + + x = ((packet[1] & 0x7f) << 4) | ((packet[4] & 0x30) >> 2) | + ((packet[0] & 0x30) >> 4); + y = ((packet[2] & 0x7f) << 4) | (packet[4] & 0x0f); + z = packet[5] & 0x7f; + + /* + * Sometimes the hardware sends a single packet with z = 0 + * in the middle of a stream. Real releases generate packets + * with x, y, and z all zero, so these seem to be flukes. + * Ignore them. + */ + if (x && y && !z) + return; + + /* + * If we don't have MT data or the bitmaps were empty, we have + * to rely on ST data. + */ + if (!fingers) { + x1 = x; + y1 = y; + fingers = z > 0 ? 1 : 0; + } + + if (z >= 64) + input_report_key(dev, BTN_TOUCH, 1); + else + input_report_key(dev, BTN_TOUCH, 0); + + alps_report_semi_mt_data(dev, fingers, x1, y1, x2, y2); + + input_report_key(dev, BTN_TOOL_FINGER, fingers == 1); + input_report_key(dev, BTN_TOOL_DOUBLETAP, fingers == 2); + input_report_key(dev, BTN_TOOL_TRIPLETAP, fingers == 3); + input_report_key(dev, BTN_TOOL_QUADTAP, fingers == 4); + + input_report_key(dev, BTN_LEFT, left); + input_report_key(dev, BTN_RIGHT, right); + input_report_key(dev, BTN_MIDDLE, middle); + + if (z > 0) { + input_report_abs(dev, ABS_X, x); + input_report_abs(dev, ABS_Y, y); + } + input_report_abs(dev, ABS_PRESSURE, z); + + input_sync(dev); + + if (!(priv->quirks & ALPS_QUIRK_TRACKSTICK_BUTTONS)) { + left = packet[3] & 0x10; + right = packet[3] & 0x20; + middle = packet[3] & 0x40; + + input_report_key(dev2, BTN_LEFT, left); + input_report_key(dev2, BTN_RIGHT, right); + input_report_key(dev2, BTN_MIDDLE, middle); + input_sync(dev2); + } +} + +static void alps_process_packet_v3(struct psmouse *psmouse) +{ + unsigned char *packet = psmouse->packet; + + /* + * v3 protocol packets come in three types, two representing + * touchpad data and one representing trackstick data. + * Trackstick packets seem to be distinguished by always + * having 0x3f in the last byte. This value has never been + * observed in the last byte of either of the other types + * of packets. + */ + if (packet[5] == 0x3f) { + alps_process_trackstick_packet_v3(psmouse); + return; + } + + alps_process_touchpad_packet_v3(psmouse); +} + +static void alps_process_packet_v4(struct psmouse *psmouse) +{ + unsigned char *packet = psmouse->packet; + struct input_dev *dev = psmouse->dev; + int x, y, z; + int left, right; + + left = packet[4] & 0x01; + right = packet[4] & 0x02; + + x = ((packet[1] & 0x7f) << 4) | ((packet[3] & 0x30) >> 2) | + ((packet[0] & 0x30) >> 4); + y = ((packet[2] & 0x7f) << 4) | (packet[3] & 0x0f); + z = packet[5] & 0x7f; + + if (z >= 64) + input_report_key(dev, BTN_TOUCH, 1); + else + input_report_key(dev, BTN_TOUCH, 0); + + if (z > 0) { + input_report_abs(dev, ABS_X, x); + input_report_abs(dev, ABS_Y, y); + } + input_report_abs(dev, ABS_PRESSURE, z); + + input_report_key(dev, BTN_TOOL_FINGER, z > 0); + input_report_key(dev, BTN_LEFT, left); + input_report_key(dev, BTN_RIGHT, right); + + input_sync(dev); +} + +static void alps_process_packet(struct psmouse *psmouse) +{ + struct alps_data *priv = psmouse->private; + const struct alps_model_info *model = priv->i; + + switch (model->proto_version) { + case ALPS_PROTO_V1: + case ALPS_PROTO_V2: + alps_process_packet_v1_v2(psmouse); + break; + case ALPS_PROTO_V3: + alps_process_packet_v3(psmouse); + break; + case ALPS_PROTO_V4: + alps_process_packet_v4(psmouse); + break; + } +} + static void alps_report_bare_ps2_packet(struct psmouse *psmouse, unsigned char packet[], bool report_buttons) @@ -344,7 +759,7 @@ serio_pause_rx(psmouse->ps2dev.serio); - if (psmouse->pktcnt == 6) { + if (psmouse->pktcnt == psmouse->pktsize) { /* * We did not any more data in reasonable amount of time. @@ -395,8 +810,8 @@ return PSMOUSE_BAD_DATA; } - /* Bytes 2 - 6 should have 0 in the highest bit */ - if (psmouse->pktcnt >= 2 && psmouse->pktcnt <= 6 && + /* Bytes 2 - pktsize should have 0 in the highest bit */ + if (psmouse->pktcnt >= 2 && psmouse->pktcnt <= psmouse->pktsize && (psmouse->packet[psmouse->pktcnt - 1] & 0x80)) { psmouse_dbg(psmouse, "refusing packet[%i] = %x\n", psmouse->pktcnt - 1, @@ -404,7 +819,7 @@ return PSMOUSE_BAD_DATA; } - if (psmouse->pktcnt == 6) { + if (psmouse->pktcnt == psmouse->pktsize) { alps_process_packet(psmouse); return PSMOUSE_FULL_PACKET; } @@ -412,16 +827,134 @@ return PSMOUSE_GOOD_DATA; } +static int alps_command_mode_send_nibble(struct psmouse *psmouse, int nibble) +{ + struct ps2dev *ps2dev = &psmouse->ps2dev; + struct alps_data *priv = psmouse->private; + int command; + unsigned char *param; + unsigned char dummy[4]; + + BUG_ON(nibble > 0xf); + + command = priv->nibble_commands[nibble].command; + param = (command & 0x0f00) ? + dummy : (unsigned char *)&priv->nibble_commands[nibble].data; + + if (ps2_command(ps2dev, param, command)) + return -1; + + return 0; +} + +static int alps_command_mode_set_addr(struct psmouse *psmouse, int addr) +{ + struct ps2dev *ps2dev = &psmouse->ps2dev; + struct alps_data *priv = psmouse->private; + int i, nibble; + + if (ps2_command(ps2dev, NULL, priv->addr_command)) + return -1; + + for (i = 12; i >= 0; i -= 4) { + nibble = (addr >> i) & 0xf; + if (alps_command_mode_send_nibble(psmouse, nibble)) + return -1; + } + + return 0; +} + +static int __alps_command_mode_read_reg(struct psmouse *psmouse, int addr) +{ + struct ps2dev *ps2dev = &psmouse->ps2dev; + unsigned char param[4]; + + if (ps2_command(ps2dev, param, PSMOUSE_CMD_GETINFO)) + return -1; + + /* + * The address being read is returned in the first two bytes + * of the result. Check that this address matches the expected + * address. + */ + if (addr != ((param[0] << 8) | param[1])) + return -1; + + return param[2]; +} + +static int alps_command_mode_read_reg(struct psmouse *psmouse, int addr) +{ + if (alps_command_mode_set_addr(psmouse, addr)) + return -1; + return __alps_command_mode_read_reg(psmouse, addr); +} + +static int __alps_command_mode_write_reg(struct psmouse *psmouse, u8 value) +{ + if (alps_command_mode_send_nibble(psmouse, (value >> 4) & 0xf)) + return -1; + if (alps_command_mode_send_nibble(psmouse, value & 0xf)) + return -1; + return 0; +} + +static int alps_command_mode_write_reg(struct psmouse *psmouse, int addr, + u8 value) +{ + if (alps_command_mode_set_addr(psmouse, addr)) + return -1; + return __alps_command_mode_write_reg(psmouse, value); +} + +static int alps_enter_command_mode(struct psmouse *psmouse, + unsigned char *resp) +{ + unsigned char param[4]; + struct ps2dev *ps2dev = &psmouse->ps2dev; + + if (ps2_command(ps2dev, NULL, PSMOUSE_CMD_RESET_WRAP) || + ps2_command(ps2dev, NULL, PSMOUSE_CMD_RESET_WRAP) || + ps2_command(ps2dev, NULL, PSMOUSE_CMD_RESET_WRAP) || + ps2_command(ps2dev, param, PSMOUSE_CMD_GETINFO)) { + psmouse_err(psmouse, "failed to enter command mode\n"); + return -1; + } + + if (param[0] != 0x88 && param[1] != 0x07) { + psmouse_dbg(psmouse, + "unknown response while entering command mode: %2.2x %2.2x %2.2x\n", + param[0], param[1], param[2]); + return -1; + } + + if (resp) + *resp = param[2]; + return 0; +} + +static inline int alps_exit_command_mode(struct psmouse *psmouse) +{ + struct ps2dev *ps2dev = &psmouse->ps2dev; + if (ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSTREAM)) + return -1; + return 0; +} + static const struct alps_model_info *alps_get_model(struct psmouse *psmouse, int *version) { struct ps2dev *ps2dev = &psmouse->ps2dev; static const unsigned char rates[] = { 0, 10, 20, 40, 60, 80, 100, 200 }; unsigned char param[4]; + const struct alps_model_info *model = NULL; int i; /* * First try "E6 report". - * ALPS should return 0,0,10 or 0,0,100 + * ALPS should return 0,0,10 or 0,0,100 if no buttons are pressed. + * The bits 0-2 of the first byte will be 1s if some buttons are + * pressed. */ param[0] = 0; if (ps2_command(ps2dev, param, PSMOUSE_CMD_SETRES) || @@ -437,7 +970,8 @@ psmouse_dbg(psmouse, "E6 report: %2.2x %2.2x %2.2x", param[0], param[1], param[2]); - if (param[0] != 0 || param[1] != 0 || (param[2] != 10 && param[2] != 100)) + if ((param[0] & 0xf8) != 0 || param[1] != 0 || + (param[2] != 10 && param[2] != 100)) return NULL; /* @@ -464,12 +998,41 @@ *version = (param[0] << 8) | (param[1] << 4) | i; } - for (i = 0; i < ARRAY_SIZE(alps_model_data); i++) + for (i = 0; i < ARRAY_SIZE(alps_model_data); i++) { if (!memcmp(param, alps_model_data[i].signature, - sizeof(alps_model_data[i].signature))) - return alps_model_data + i; + sizeof(alps_model_data[i].signature))) { + model = alps_model_data + i; + break; + } + } + + if (model && model->proto_version > ALPS_PROTO_V2) { + /* + * Need to check command mode response to identify + * model + */ + model = NULL; + if (alps_enter_command_mode(psmouse, param)) { + psmouse_warn(psmouse, + "touchpad failed to enter command mode\n"); + } else { + for (i = 0; i < ARRAY_SIZE(alps_model_data); i++) { + if (alps_model_data[i].proto_version > ALPS_PROTO_V2 && + alps_model_data[i].command_mode_resp == param[0]) { + model = alps_model_data + i; + break; + } + } + alps_exit_command_mode(psmouse); + + if (!model) + psmouse_dbg(psmouse, + "Unknown command mode response %2.2x\n", + param[0]); + } + } - return NULL; + return model; } /* @@ -477,7 +1040,7 @@ * subsequent commands. It looks like glidepad is behind stickpointer, * I'd thought it would be other way around... */ -static int alps_passthrough_mode(struct psmouse *psmouse, bool enable) +static int alps_passthrough_mode_v2(struct psmouse *psmouse, bool enable) { struct ps2dev *ps2dev = &psmouse->ps2dev; int cmd = enable ? PSMOUSE_CMD_SETSCALE21 : PSMOUSE_CMD_SETSCALE11; @@ -494,7 +1057,7 @@ return 0; } -static int alps_absolute_mode(struct psmouse *psmouse) +static int alps_absolute_mode_v1_v2(struct psmouse *psmouse) { struct ps2dev *ps2dev = &psmouse->ps2dev; @@ -565,17 +1128,17 @@ static int alps_poll(struct psmouse *psmouse) { struct alps_data *priv = psmouse->private; - unsigned char buf[6]; + unsigned char buf[sizeof(psmouse->packet)]; bool poll_failed; if (priv->i->flags & ALPS_PASS) - alps_passthrough_mode(psmouse, true); + alps_passthrough_mode_v2(psmouse, true); poll_failed = ps2_command(&psmouse->ps2dev, buf, PSMOUSE_CMD_POLL | (psmouse->pktsize << 8)) < 0; if (priv->i->flags & ALPS_PASS) - alps_passthrough_mode(psmouse, false); + alps_passthrough_mode_v2(psmouse, false); if (poll_failed || (buf[0] & priv->i->mask0) != priv->i->byte0) return -1; @@ -592,13 +1155,13 @@ return 0; } -static int alps_hw_init(struct psmouse *psmouse) +static int alps_hw_init_v1_v2(struct psmouse *psmouse) { struct alps_data *priv = psmouse->private; const struct alps_model_info *model = priv->i; if ((model->flags & ALPS_PASS) && - alps_passthrough_mode(psmouse, true)) { + alps_passthrough_mode_v2(psmouse, true)) { return -1; } @@ -607,13 +1170,13 @@ return -1; } - if (alps_absolute_mode(psmouse)) { + if (alps_absolute_mode_v1_v2(psmouse)) { psmouse_err(psmouse, "Failed to enable absolute mode\n"); return -1; } if ((model->flags & ALPS_PASS) && - alps_passthrough_mode(psmouse, false)) { + alps_passthrough_mode_v2(psmouse, false)) { return -1; } @@ -626,6 +1189,297 @@ return 0; } +/* + * Enable or disable passthrough mode to the trackstick. Must be in + * command mode when calling this function. + */ +static int alps_passthrough_mode_v3(struct psmouse *psmouse, bool enable) +{ + int reg_val; + + reg_val = alps_command_mode_read_reg(psmouse, 0x0008); + if (reg_val == -1) + return -1; + + if (enable) + reg_val |= 0x01; + else + reg_val &= ~0x01; + + if (__alps_command_mode_write_reg(psmouse, reg_val)) + return -1; + + return 0; +} + +/* Must be in command mode when calling this function */ +static int alps_absolute_mode_v3(struct psmouse *psmouse) +{ + int reg_val; + + reg_val = alps_command_mode_read_reg(psmouse, 0x0004); + if (reg_val == -1) + return -1; + + reg_val |= 0x06; + if (__alps_command_mode_write_reg(psmouse, reg_val)) + return -1; + + return 0; +} + +static int alps_hw_init_v3(struct psmouse *psmouse) +{ + struct alps_data *priv = psmouse->private; + struct ps2dev *ps2dev = &psmouse->ps2dev; + int reg_val; + unsigned char param[4]; + + priv->nibble_commands = alps_v3_nibble_commands; + priv->addr_command = PSMOUSE_CMD_RESET_WRAP; + + if (alps_enter_command_mode(psmouse, NULL)) + goto error; + + /* Check for trackstick */ + reg_val = alps_command_mode_read_reg(psmouse, 0x0008); + if (reg_val == -1) + goto error; + if (reg_val & 0x80) { + if (alps_passthrough_mode_v3(psmouse, true)) + goto error; + if (alps_exit_command_mode(psmouse)) + goto error; + + /* + * E7 report for the trackstick + * + * There have been reports of failures to seem to trace back + * to the above trackstick check failing. When these occur + * this E7 report fails, so when that happens we continue + * with the assumption that there isn't a trackstick after + * all. + */ + param[0] = 0x64; + if (ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE21) || + ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE21) || + ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE21) || + ps2_command(ps2dev, param, PSMOUSE_CMD_GETINFO)) { + psmouse_warn(psmouse, "trackstick E7 report failed\n"); + } else { + psmouse_dbg(psmouse, + "trackstick E7 report: %2.2x %2.2x %2.2x\n", + param[0], param[1], param[2]); + + /* + * Not sure what this does, but it is absolutely + * essential. Without it, the touchpad does not + * work at all and the trackstick just emits normal + * PS/2 packets. + */ + if (ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE11) || + ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE11) || + ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE11) || + alps_command_mode_send_nibble(psmouse, 0x9) || + alps_command_mode_send_nibble(psmouse, 0x4)) { + psmouse_err(psmouse, + "Error sending magic E6 sequence\n"); + goto error_passthrough; + } + } + + if (alps_enter_command_mode(psmouse, NULL)) + goto error_passthrough; + if (alps_passthrough_mode_v3(psmouse, false)) + goto error; + } + + if (alps_absolute_mode_v3(psmouse)) { + psmouse_err(psmouse, "Failed to enter absolute mode\n"); + goto error; + } + + reg_val = alps_command_mode_read_reg(psmouse, 0x0006); + if (reg_val == -1) + goto error; + if (__alps_command_mode_write_reg(psmouse, reg_val | 0x01)) + goto error; + + reg_val = alps_command_mode_read_reg(psmouse, 0x0007); + if (reg_val == -1) + goto error; + if (__alps_command_mode_write_reg(psmouse, reg_val | 0x01)) + goto error; + + if (alps_command_mode_read_reg(psmouse, 0x0144) == -1) + goto error; + if (__alps_command_mode_write_reg(psmouse, 0x04)) + goto error; + + if (alps_command_mode_read_reg(psmouse, 0x0159) == -1) + goto error; + if (__alps_command_mode_write_reg(psmouse, 0x03)) + goto error; + + if (alps_command_mode_read_reg(psmouse, 0x0163) == -1) + goto error; + if (alps_command_mode_write_reg(psmouse, 0x0163, 0x03)) + goto error; + + if (alps_command_mode_read_reg(psmouse, 0x0162) == -1) + goto error; + if (alps_command_mode_write_reg(psmouse, 0x0162, 0x04)) + goto error; + + /* + * This ensures the trackstick packets are in the format + * supported by this driver. If bit 1 isn't set the packet + * format is different. + */ + if (alps_command_mode_write_reg(psmouse, 0x0008, 0x82)) + goto error; + + alps_exit_command_mode(psmouse); + + /* Set rate and enable data reporting */ + param[0] = 0x64; + if (ps2_command(ps2dev, param, PSMOUSE_CMD_SETRATE) || + ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE)) { + psmouse_err(psmouse, "Failed to enable data reporting\n"); + return -1; + } + + return 0; + +error_passthrough: + /* Something failed while in passthrough mode, so try to get out */ + if (!alps_enter_command_mode(psmouse, NULL)) + alps_passthrough_mode_v3(psmouse, false); +error: + /* + * Leaving the touchpad in command mode will essentially render + * it unusable until the machine reboots, so exit it here just + * to be safe + */ + alps_exit_command_mode(psmouse); + return -1; +} + +/* Must be in command mode when calling this function */ +static int alps_absolute_mode_v4(struct psmouse *psmouse) +{ + int reg_val; + + reg_val = alps_command_mode_read_reg(psmouse, 0x0004); + if (reg_val == -1) + return -1; + + reg_val |= 0x02; + if (__alps_command_mode_write_reg(psmouse, reg_val)) + return -1; + + return 0; +} + +static int alps_hw_init_v4(struct psmouse *psmouse) +{ + struct alps_data *priv = psmouse->private; + struct ps2dev *ps2dev = &psmouse->ps2dev; + unsigned char param[4]; + + priv->nibble_commands = alps_v4_nibble_commands; + priv->addr_command = PSMOUSE_CMD_DISABLE; + + if (alps_enter_command_mode(psmouse, NULL)) + goto error; + + if (alps_absolute_mode_v4(psmouse)) { + psmouse_err(psmouse, "Failed to enter absolute mode\n"); + goto error; + } + + if (alps_command_mode_write_reg(psmouse, 0x0007, 0x8c)) + goto error; + + if (alps_command_mode_write_reg(psmouse, 0x0149, 0x03)) + goto error; + + if (alps_command_mode_write_reg(psmouse, 0x0160, 0x03)) + goto error; + + if (alps_command_mode_write_reg(psmouse, 0x017f, 0x15)) + goto error; + + if (alps_command_mode_write_reg(psmouse, 0x0151, 0x01)) + goto error; + + if (alps_command_mode_write_reg(psmouse, 0x0168, 0x03)) + goto error; + + if (alps_command_mode_write_reg(psmouse, 0x014a, 0x03)) + goto error; + + if (alps_command_mode_write_reg(psmouse, 0x0161, 0x03)) + goto error; + + alps_exit_command_mode(psmouse); + + /* + * This sequence changes the output from a 9-byte to an + * 8-byte format. All the same data seems to be present, + * just in a more compact format. + */ + param[0] = 0xc8; + param[1] = 0x64; + param[2] = 0x50; + if (ps2_command(ps2dev, ¶m[0], PSMOUSE_CMD_SETRATE) || + ps2_command(ps2dev, ¶m[1], PSMOUSE_CMD_SETRATE) || + ps2_command(ps2dev, ¶m[2], PSMOUSE_CMD_SETRATE) || + ps2_command(ps2dev, param, PSMOUSE_CMD_GETID)) + return -1; + + /* Set rate and enable data reporting */ + param[0] = 0x64; + if (ps2_command(ps2dev, param, PSMOUSE_CMD_SETRATE) || + ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE)) { + psmouse_err(psmouse, "Failed to enable data reporting\n"); + return -1; + } + + return 0; + +error: + /* + * Leaving the touchpad in command mode will essentially render + * it unusable until the machine reboots, so exit it here just + * to be safe + */ + alps_exit_command_mode(psmouse); + return -1; +} + +static int alps_hw_init(struct psmouse *psmouse) +{ + struct alps_data *priv = psmouse->private; + const struct alps_model_info *model = priv->i; + int ret = -1; + + switch (model->proto_version) { + case ALPS_PROTO_V1: + case ALPS_PROTO_V2: + ret = alps_hw_init_v1_v2(psmouse); + break; + case ALPS_PROTO_V3: + ret = alps_hw_init_v3(psmouse); + break; + case ALPS_PROTO_V4: + ret = alps_hw_init_v4(psmouse); + break; + } + + return ret; +} + static int alps_reconnect(struct psmouse *psmouse) { const struct alps_model_info *model; @@ -666,6 +1520,8 @@ psmouse->private = priv; + psmouse_reset(psmouse); + model = alps_get_model(psmouse, &version); if (!model) goto init_fail; @@ -693,8 +1549,29 @@ BIT_MASK(BTN_LEFT) | BIT_MASK(BTN_RIGHT); dev1->evbit[BIT_WORD(EV_ABS)] |= BIT_MASK(EV_ABS); - input_set_abs_params(dev1, ABS_X, 0, 1023, 0, 0); - input_set_abs_params(dev1, ABS_Y, 0, 767, 0, 0); + + switch (model->proto_version) { + case ALPS_PROTO_V1: + case ALPS_PROTO_V2: + input_set_abs_params(dev1, ABS_X, 0, 1023, 0, 0); + input_set_abs_params(dev1, ABS_Y, 0, 767, 0, 0); + break; + case ALPS_PROTO_V3: + set_bit(INPUT_PROP_SEMI_MT, dev1->propbit); + input_mt_init_slots(dev1, 2); + input_set_abs_params(dev1, ABS_MT_POSITION_X, 0, ALPS_V3_X_MAX, 0, 0); + input_set_abs_params(dev1, ABS_MT_POSITION_Y, 0, ALPS_V3_Y_MAX, 0, 0); + + set_bit(BTN_TOOL_DOUBLETAP, dev1->keybit); + set_bit(BTN_TOOL_TRIPLETAP, dev1->keybit); + set_bit(BTN_TOOL_QUADTAP, dev1->keybit); + /* fall through */ + case ALPS_PROTO_V4: + input_set_abs_params(dev1, ABS_X, 0, ALPS_V3_X_MAX, 0, 0); + input_set_abs_params(dev1, ABS_Y, 0, ALPS_V3_Y_MAX, 0, 0); + break; + } + input_set_abs_params(dev1, ABS_PRESSURE, 0, 127, 0, 0); if (model->flags & ALPS_WHEEL) { @@ -737,7 +1614,7 @@ psmouse->poll = alps_poll; psmouse->disconnect = alps_disconnect; psmouse->reconnect = alps_reconnect; - psmouse->pktsize = 6; + psmouse->pktsize = model->proto_version == ALPS_PROTO_V4 ? 8 : 6; /* We are having trouble resyncing ALPS touchpads so disable it for now */ psmouse->resync_time = 0; --- linux-3.2.0.orig/drivers/input/mouse/psmouse.h +++ linux-3.2.0/drivers/input/mouse/psmouse.h @@ -8,6 +8,7 @@ #define PSMOUSE_CMD_SETSTREAM 0x00ea #define PSMOUSE_CMD_SETPOLL 0x00f0 #define PSMOUSE_CMD_POLL 0x00eb /* caller sets number of bytes to receive */ +#define PSMOUSE_CMD_RESET_WRAP 0x00ec #define PSMOUSE_CMD_GETID 0x02f2 #define PSMOUSE_CMD_SETRATE 0x10f3 #define PSMOUSE_CMD_ENABLE 0x00f4 @@ -25,6 +26,7 @@ PSMOUSE_INITIALIZING, PSMOUSE_RESYNCING, PSMOUSE_CMD_MODE, + PSMOUSE_CMD_CYTP, /* Cypress Trackpad detecting and initializing state. */ PSMOUSE_ACTIVATED, }; @@ -77,6 +79,9 @@ }; enum psmouse_type { + /* IMPORTANT! src/eventcomm.c in x-x-i-s uses the hard-coded values + * of some of these (awful!), so never insert new entries to the + * middle of the list! */ PSMOUSE_NONE, PSMOUSE_PS2, PSMOUSE_PS2PP, @@ -93,6 +98,7 @@ PSMOUSE_HGPK, PSMOUSE_ELANTECH, PSMOUSE_FSP, + PSMOUSE_CYPRESS, PSMOUSE_AUTO /* This one should always be last */ }; @@ -102,6 +108,8 @@ int psmouse_reset(struct psmouse *psmouse); void psmouse_set_state(struct psmouse *psmouse, enum psmouse_state new_state); void psmouse_set_resolution(struct psmouse *psmouse, unsigned int resolution); +int psmouse_activate(struct psmouse *psmouse); +int psmouse_deactivate(struct psmouse *psmouse); struct psmouse_attribute { struct device_attribute dattr; --- linux-3.2.0.orig/drivers/input/mouse/bcm5974.c +++ linux-3.2.0/drivers/input/mouse/bcm5974.c @@ -79,6 +79,10 @@ #define USB_DEVICE_ID_APPLE_WELLSPRING5A_ANSI 0x0252 #define USB_DEVICE_ID_APPLE_WELLSPRING5A_ISO 0x0253 #define USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS 0x0254 +/* MacbookPro10,1 (unibody, June 2012) */ +#define USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI 0x0262 +#define USB_DEVICE_ID_APPLE_WELLSPRING7_ISO 0x0263 +#define USB_DEVICE_ID_APPLE_WELLSPRING7_JIS 0x0264 #define BCM5974_DEVICE(prod) { \ .match_flags = (USB_DEVICE_ID_MATCH_DEVICE | \ @@ -128,6 +132,10 @@ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5A_ANSI), BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5A_ISO), BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS), + /* MacbookPro10,1 */ + BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI), + BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7_ISO), + BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7_JIS), /* Terminating entry */ {} }; @@ -354,6 +362,18 @@ { DIM_X, DIM_X / SN_COORD, -4620, 5140 }, { DIM_Y, DIM_Y / SN_COORD, -150, 6600 } }, + { + USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI, + USB_DEVICE_ID_APPLE_WELLSPRING7_ISO, + USB_DEVICE_ID_APPLE_WELLSPRING7_JIS, + HAS_INTEGRATED_BUTTON, + 0x84, sizeof(struct bt_data), + 0x81, TYPE2, FINGER_TYPE2, FINGER_TYPE2 + SIZEOF_ALL_FINGERS, + { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 300 }, + { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 }, + { DIM_X, DIM_X / SN_COORD, -4750, 5280 }, + { DIM_Y, DIM_Y / SN_COORD, -150, 6730 } + }, {} }; @@ -433,6 +453,9 @@ __set_bit(BTN_TOOL_QUADTAP, input_dev->keybit); __set_bit(BTN_LEFT, input_dev->keybit); + if (cfg->caps & HAS_INTEGRATED_BUTTON) + __set_bit(INPUT_PROP_BUTTONPAD, input_dev->propbit); + input_set_events_per_packet(input_dev, 60); } --- linux-3.2.0.orig/drivers/input/mouse/hgpk.c +++ linux-3.2.0/drivers/input/mouse/hgpk.c @@ -640,7 +640,6 @@ static int hgpk_force_recalibrate(struct psmouse *psmouse) { - struct ps2dev *ps2dev = &psmouse->ps2dev; struct hgpk_data *priv = psmouse->private; int err; @@ -669,12 +668,9 @@ * we don't have a good way to deal with it. The 2s window stuff * (below) is our best option for now. */ - - if (ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE)) + if (psmouse_activate(psmouse)) return -1; - psmouse_set_state(psmouse, PSMOUSE_ACTIVATED); - if (tpdebug) psmouse_dbg(psmouse, "touchpad reactivated\n"); @@ -733,8 +729,7 @@ } /* should be all set, enable the touchpad */ - ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_ENABLE); - psmouse_set_state(psmouse, PSMOUSE_ACTIVATED); + psmouse_activate(psmouse); psmouse_dbg(psmouse, "Touchpad powered up.\n"); } else { psmouse_dbg(psmouse, "Powering off touchpad.\n"); --- linux-3.2.0.orig/drivers/input/mouse/alps.h +++ linux-3.2.0/drivers/input/mouse/alps.h @@ -12,20 +12,39 @@ #ifndef _ALPS_H #define _ALPS_H +#define ALPS_PROTO_V1 0 +#define ALPS_PROTO_V2 1 +#define ALPS_PROTO_V3 2 +#define ALPS_PROTO_V4 3 + struct alps_model_info { unsigned char signature[3]; + unsigned char command_mode_resp; /* v3/v4 only */ + unsigned char proto_version; unsigned char byte0, mask0; unsigned char flags; }; +struct alps_nibble_commands { + int command; + unsigned char data; +}; + struct alps_data { struct input_dev *dev2; /* Relative device */ char phys[32]; /* Phys */ const struct alps_model_info *i;/* Info */ + const struct alps_nibble_commands *nibble_commands; + int addr_command; /* Command to set register address */ int prev_fin; /* Finger bit from previous packet */ + int multi_packet; /* Multi-packet data in progress */ + unsigned char multi_data[6]; /* Saved multi-packet data */ + u8 quirks; struct timer_list timer; }; +#define ALPS_QUIRK_TRACKSTICK_BUTTONS 1 /* trakcstick buttons in trackstick packet */ + #ifdef CONFIG_MOUSE_PS2_ALPS int alps_detect(struct psmouse *psmouse, bool set_properties); int alps_init(struct psmouse *psmouse); --- linux-3.2.0.orig/drivers/infiniband/ulp/iser/iscsi_iser.c +++ linux-3.2.0/drivers/infiniband/ulp/iser/iscsi_iser.c @@ -364,6 +364,9 @@ } ib_conn = ep->dd_data; + if (iser_alloc_rx_descriptors(ib_conn)) + return -ENOMEM; + /* binds the iSER connection retrieved from the previously * connected ep_handle to the iSCSI layer connection. exchanges * connection pointers */ @@ -398,19 +401,6 @@ iser_conn->ib_conn = NULL; } -static int -iscsi_iser_conn_start(struct iscsi_cls_conn *cls_conn) -{ - struct iscsi_conn *conn = cls_conn->dd_data; - int err; - - err = iser_conn_set_full_featured_mode(conn); - if (err) - return err; - - return iscsi_conn_start(cls_conn); -} - static void iscsi_iser_session_destroy(struct iscsi_cls_session *cls_session) { struct Scsi_Host *shost = iscsi_session_to_shost(cls_session); @@ -724,7 +714,7 @@ .get_conn_param = iscsi_conn_get_param, .get_ep_param = iscsi_iser_get_ep_param, .get_session_param = iscsi_session_get_param, - .start_conn = iscsi_iser_conn_start, + .start_conn = iscsi_conn_start, .stop_conn = iscsi_iser_conn_stop, /* iscsi host params */ .get_host_param = iscsi_host_get_param, --- linux-3.2.0.orig/drivers/infiniband/ulp/iser/iscsi_iser.h +++ linux-3.2.0/drivers/infiniband/ulp/iser/iscsi_iser.h @@ -366,4 +366,5 @@ void iser_dma_unmap_task_data(struct iscsi_iser_task *iser_task); int iser_initialize_task_headers(struct iscsi_task *task, struct iser_tx_desc *tx_desc); +int iser_alloc_rx_descriptors(struct iser_conn *ib_conn); #endif --- linux-3.2.0.orig/drivers/infiniband/ulp/iser/iser_initiator.c +++ linux-3.2.0/drivers/infiniband/ulp/iser/iser_initiator.c @@ -170,7 +170,7 @@ } -static int iser_alloc_rx_descriptors(struct iser_conn *ib_conn) +int iser_alloc_rx_descriptors(struct iser_conn *ib_conn) { int i, j; u64 dma_addr; @@ -242,23 +242,24 @@ kfree(ib_conn->rx_descs); } -/** - * iser_conn_set_full_featured_mode - (iSER API) - */ -int iser_conn_set_full_featured_mode(struct iscsi_conn *conn) +static int iser_post_rx_bufs(struct iscsi_conn *conn, struct iscsi_hdr *req) { struct iscsi_iser_conn *iser_conn = conn->dd_data; - iser_dbg("Initially post: %d\n", ISER_MIN_POSTED_RX); + iser_dbg("req op %x flags %x\n", req->opcode, req->flags); + /* check if this is the last login - going to full feature phase */ + if ((req->flags & ISCSI_FULL_FEATURE_PHASE) != ISCSI_FULL_FEATURE_PHASE) + return 0; - /* Check that there is no posted recv or send buffers left - */ - /* they must be consumed during the login phase */ - BUG_ON(iser_conn->ib_conn->post_recv_buf_count != 0); - BUG_ON(atomic_read(&iser_conn->ib_conn->post_send_buf_count) != 0); - - if (iser_alloc_rx_descriptors(iser_conn->ib_conn)) - return -ENOMEM; + /* + * Check that there is one posted recv buffer (for the last login + * response) and no posted send buffers left - they must have been + * consumed during previous login phases. + */ + WARN_ON(iser_conn->ib_conn->post_recv_buf_count != 1); + WARN_ON(atomic_read(&iser_conn->ib_conn->post_send_buf_count) != 0); + iser_dbg("Initially post: %d\n", ISER_MIN_POSTED_RX); /* Initial post receive buffers */ if (iser_post_recvm(iser_conn->ib_conn, ISER_MIN_POSTED_RX)) return -ENOMEM; @@ -438,6 +439,9 @@ err = iser_post_recvl(iser_conn->ib_conn); if (err) goto send_control_error; + err = iser_post_rx_bufs(conn, task->hdr); + if (err) + goto send_control_error; } err = iser_post_send(iser_conn->ib_conn, mdesc); --- linux-3.2.0.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c +++ linux-3.2.0/drivers/infiniband/ulp/ipoib/ipoib_multicast.c @@ -190,7 +190,9 @@ mcast->mcmember = *mcmember; - /* Set the cached Q_Key before we attach if it's the broadcast group */ + /* Set the multicast MTU and cached Q_Key before we attach if it's + * the broadcast group. + */ if (!memcmp(mcast->mcmember.mgid.raw, priv->dev->broadcast + 4, sizeof (union ib_gid))) { spin_lock_irq(&priv->lock); @@ -198,10 +200,17 @@ spin_unlock_irq(&priv->lock); return -EAGAIN; } + priv->mcast_mtu = IPOIB_UD_MTU(ib_mtu_enum_to_int(priv->broadcast->mcmember.mtu)); priv->qkey = be32_to_cpu(priv->broadcast->mcmember.qkey); spin_unlock_irq(&priv->lock); priv->tx_wr.wr.ud.remote_qkey = priv->qkey; set_qkey = 1; + + if (!ipoib_cm_admin_enabled(dev)) { + rtnl_lock(); + dev_set_mtu(dev, min(priv->mcast_mtu, priv->admin_mtu)); + rtnl_unlock(); + } } if (!test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags)) { @@ -262,21 +271,14 @@ netif_tx_lock_bh(dev); while (!skb_queue_empty(&mcast->pkt_queue)) { struct sk_buff *skb = skb_dequeue(&mcast->pkt_queue); - struct dst_entry *dst = skb_dst(skb); - struct neighbour *n = NULL; netif_tx_unlock_bh(dev); skb->dev = dev; - if (dst) - n = dst_get_neighbour_raw(dst); - if (!dst || !n) { - /* put pseudoheader back on for next time */ - skb_push(skb, sizeof (struct ipoib_pseudoheader)); - } if (dev_queue_xmit(skb)) ipoib_warn(priv, "dev_queue_xmit failed to requeue packet\n"); + netif_tx_lock_bh(dev); } netif_tx_unlock_bh(dev); @@ -597,14 +599,6 @@ return; } - priv->mcast_mtu = IPOIB_UD_MTU(ib_mtu_enum_to_int(priv->broadcast->mcmember.mtu)); - - if (!ipoib_cm_admin_enabled(dev)) { - rtnl_lock(); - dev_set_mtu(dev, min(priv->mcast_mtu, priv->admin_mtu)); - rtnl_unlock(); - } - ipoib_dbg_mcast(priv, "successfully joined all multicast groups\n"); clear_bit(IPOIB_MCAST_RUN, &priv->flags); --- linux-3.2.0.orig/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ linux-3.2.0/drivers/infiniband/ulp/ipoib/ipoib_cm.c @@ -755,9 +755,13 @@ if (++priv->tx_outstanding == ipoib_sendq_size) { ipoib_dbg(priv, "TX ring 0x%x full, stopping kernel net queue\n", tx->qp->qp_num); - if (ib_req_notify_cq(priv->send_cq, IB_CQ_NEXT_COMP)) - ipoib_warn(priv, "request notify on send CQ failed\n"); netif_stop_queue(dev); + rc = ib_req_notify_cq(priv->send_cq, + IB_CQ_NEXT_COMP | IB_CQ_REPORT_MISSED_EVENTS); + if (rc < 0) + ipoib_warn(priv, "request notify on send CQ failed\n"); + else if (rc) + ipoib_send_comp_handler(priv->send_cq, dev); } } } --- linux-3.2.0.orig/drivers/infiniband/ulp/ipoib/ipoib.h +++ linux-3.2.0/drivers/infiniband/ulp/ipoib/ipoib.h @@ -44,6 +44,7 @@ #include #include +#include #include @@ -117,8 +118,9 @@ u16 reserved; }; -struct ipoib_pseudoheader { - u8 hwaddr[INFINIBAND_ALEN]; +struct ipoib_cb { + struct qdisc_skb_cb qdisc_cb; + u8 hwaddr[INFINIBAND_ALEN]; }; /* Used for all multicast joins (broadcast, IPv4 mcast and IPv6 mcast) */ --- linux-3.2.0.orig/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ linux-3.2.0/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -148,7 +148,7 @@ netif_stop_queue(dev); - ipoib_ib_dev_down(dev, 0); + ipoib_ib_dev_down(dev, 1); ipoib_ib_dev_stop(dev, 0); if (!test_bit(IPOIB_FLAG_SUBINTERFACE, &priv->flags)) { @@ -658,7 +658,7 @@ } static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev, - struct ipoib_pseudoheader *phdr) + struct ipoib_cb *cb) { struct ipoib_dev_priv *priv = netdev_priv(dev); struct ipoib_path *path; @@ -666,17 +666,15 @@ spin_lock_irqsave(&priv->lock, flags); - path = __path_find(dev, phdr->hwaddr + 4); + path = __path_find(dev, cb->hwaddr + 4); if (!path || !path->valid) { int new_path = 0; if (!path) { - path = path_rec_create(dev, phdr->hwaddr + 4); + path = path_rec_create(dev, cb->hwaddr + 4); new_path = 1; } if (path) { - /* put pseudoheader back on for next time */ - skb_push(skb, sizeof *phdr); __skb_queue_tail(&path->queue, skb); if (!path->query && path_rec_start(dev, path)) { @@ -700,12 +698,10 @@ be16_to_cpu(path->pathrec.dlid)); spin_unlock_irqrestore(&priv->lock, flags); - ipoib_send(dev, skb, path->ah, IPOIB_QPN(phdr->hwaddr)); + ipoib_send(dev, skb, path->ah, IPOIB_QPN(cb->hwaddr)); return; } else if ((path->query || !path_rec_start(dev, path)) && skb_queue_len(&path->queue) < IPOIB_MAX_PATH_REC_QUEUE) { - /* put pseudoheader back on for next time */ - skb_push(skb, sizeof *phdr); __skb_queue_tail(&path->queue, skb); } else { ++dev->stats.tx_dropped; @@ -774,16 +770,14 @@ dev_kfree_skb_any(skb); } } else { - struct ipoib_pseudoheader *phdr = - (struct ipoib_pseudoheader *) skb->data; - skb_pull(skb, sizeof *phdr); + struct ipoib_cb *cb = (struct ipoib_cb *) skb->cb; - if (phdr->hwaddr[4] == 0xff) { + if (cb->hwaddr[4] == 0xff) { /* Add in the P_Key for multicast*/ - phdr->hwaddr[8] = (priv->pkey >> 8) & 0xff; - phdr->hwaddr[9] = priv->pkey & 0xff; + cb->hwaddr[8] = (priv->pkey >> 8) & 0xff; + cb->hwaddr[9] = priv->pkey & 0xff; - ipoib_mcast_send(dev, phdr->hwaddr + 4, skb); + ipoib_mcast_send(dev, cb->hwaddr + 4, skb); } else { /* unicast GID -- should be ARP or RARP reply */ @@ -792,14 +786,14 @@ ipoib_warn(priv, "Unicast, no %s: type %04x, QPN %06x %pI6\n", skb_dst(skb) ? "neigh" : "dst", be16_to_cpup((__be16 *) skb->data), - IPOIB_QPN(phdr->hwaddr), - phdr->hwaddr + 4); + IPOIB_QPN(cb->hwaddr), + cb->hwaddr + 4); dev_kfree_skb_any(skb); ++dev->stats.tx_dropped; goto unlock; } - unicast_arp_send(skb, dev, phdr); + unicast_arp_send(skb, dev, cb); } } unlock: @@ -825,8 +819,6 @@ const void *daddr, const void *saddr, unsigned len) { struct ipoib_header *header; - struct dst_entry *dst; - struct neighbour *n; header = (struct ipoib_header *) skb_push(skb, sizeof *header); @@ -834,18 +826,13 @@ header->reserved = 0; /* - * If we don't have a neighbour structure, stuff the - * destination address onto the front of the skb so we can - * figure out where to send the packet later. + * If we don't have a dst_entry structure, stuff the + * destination address into skb->cb so we can figure out where + * to send the packet later. */ - dst = skb_dst(skb); - n = NULL; - if (dst) - n = dst_get_neighbour_raw(dst); - if ((!dst || !n) && daddr) { - struct ipoib_pseudoheader *phdr = - (struct ipoib_pseudoheader *) skb_push(skb, sizeof *phdr); - memcpy(phdr->hwaddr, daddr, INFINIBAND_ALEN); + if (!skb_dst(skb)) { + struct ipoib_cb *cb = (struct ipoib_cb *) skb->cb; + memcpy(cb->hwaddr, daddr, INFINIBAND_ALEN); } return 0; @@ -1021,11 +1008,7 @@ dev->flags |= IFF_BROADCAST | IFF_MULTICAST; - /* - * We add in INFINIBAND_ALEN to allow for the destination - * address "pseudoheader" for skbs without neighbour struct. - */ - dev->hard_header_len = IPOIB_ENCAP_LEN + INFINIBAND_ALEN; + dev->hard_header_len = IPOIB_ENCAP_LEN; dev->addr_len = INFINIBAND_ALEN; dev->type = ARPHRD_INFINIBAND; dev->tx_queue_len = ipoib_sendq_size * 2; --- linux-3.2.0.orig/drivers/infiniband/ulp/srp/ib_srp.c +++ linux-3.2.0/drivers/infiniband/ulp/srp/ib_srp.c @@ -568,24 +568,62 @@ scmnd->sc_data_direction); } -static void srp_remove_req(struct srp_target_port *target, - struct srp_request *req, s32 req_lim_delta) +/** + * srp_claim_req - Take ownership of the scmnd associated with a request. + * @target: SRP target port. + * @req: SRP request. + * @scmnd: If NULL, take ownership of @req->scmnd. If not NULL, only take + * ownership of @req->scmnd if it equals @scmnd. + * + * Return value: + * Either NULL or a pointer to the SCSI command the caller became owner of. + */ +static struct scsi_cmnd *srp_claim_req(struct srp_target_port *target, + struct srp_request *req, + struct scsi_cmnd *scmnd) { unsigned long flags; - srp_unmap_data(req->scmnd, target, req); + spin_lock_irqsave(&target->lock, flags); + if (!scmnd) { + scmnd = req->scmnd; + req->scmnd = NULL; + } else if (req->scmnd == scmnd) { + req->scmnd = NULL; + } else { + scmnd = NULL; + } + spin_unlock_irqrestore(&target->lock, flags); + + return scmnd; +} + +/** + * srp_free_req() - Unmap data and add request to the free request list. + */ +static void srp_free_req(struct srp_target_port *target, + struct srp_request *req, struct scsi_cmnd *scmnd, + s32 req_lim_delta) +{ + unsigned long flags; + + srp_unmap_data(scmnd, target, req); + spin_lock_irqsave(&target->lock, flags); target->req_lim += req_lim_delta; - req->scmnd = NULL; list_add_tail(&req->list, &target->free_reqs); spin_unlock_irqrestore(&target->lock, flags); } static void srp_reset_req(struct srp_target_port *target, struct srp_request *req) { - req->scmnd->result = DID_RESET << 16; - req->scmnd->scsi_done(req->scmnd); - srp_remove_req(target, req, 0); + struct scsi_cmnd *scmnd = srp_claim_req(target, req, NULL); + + if (scmnd) { + srp_free_req(target, req, scmnd, 0); + scmnd->result = DID_RESET << 16; + scmnd->scsi_done(scmnd); + } } static int srp_reconnect_target(struct srp_target_port *target) @@ -1055,11 +1093,18 @@ complete(&target->tsk_mgmt_done); } else { req = &target->req_ring[rsp->tag]; - scmnd = req->scmnd; - if (!scmnd) + scmnd = srp_claim_req(target, req, NULL); + if (!scmnd) { shost_printk(KERN_ERR, target->scsi_host, "Null scmnd for RSP w/tag %016llx\n", (unsigned long long) rsp->tag); + + spin_lock_irqsave(&target->lock, flags); + target->req_lim += be32_to_cpu(rsp->req_lim_delta); + spin_unlock_irqrestore(&target->lock, flags); + + return; + } scmnd->result = rsp->status; if (rsp->flags & SRP_RSP_FLAG_SNSVALID) { @@ -1074,7 +1119,9 @@ else if (rsp->flags & (SRP_RSP_FLAG_DIOVER | SRP_RSP_FLAG_DIUNDER)) scsi_set_resid(scmnd, be32_to_cpu(rsp->data_in_res_cnt)); - srp_remove_req(target, req, be32_to_cpu(rsp->req_lim_delta)); + srp_free_req(target, req, scmnd, + be32_to_cpu(rsp->req_lim_delta)); + scmnd->host_scribble = NULL; scmnd->scsi_done(scmnd); } @@ -1613,25 +1660,18 @@ { struct srp_target_port *target = host_to_target(scmnd->device->host); struct srp_request *req = (struct srp_request *) scmnd->host_scribble; - int ret = SUCCESS; shost_printk(KERN_ERR, target->scsi_host, "SRP abort called\n"); - if (!req || target->qp_in_error) - return FAILED; - if (srp_send_tsk_mgmt(target, req->index, scmnd->device->lun, - SRP_TSK_ABORT_TASK)) + if (!req || target->qp_in_error || !srp_claim_req(target, req, scmnd)) return FAILED; + srp_send_tsk_mgmt(target, req->index, scmnd->device->lun, + SRP_TSK_ABORT_TASK); + srp_free_req(target, req, scmnd, 0); + scmnd->result = DID_ABORT << 16; + scmnd->scsi_done(scmnd); - if (req->scmnd) { - if (!target->tsk_mgmt_status) { - srp_remove_req(target, req, 0); - scmnd->result = DID_ABORT << 16; - } else - ret = FAILED; - } - - return ret; + return SUCCESS; } static int srp_reset_device(struct scsi_cmnd *scmnd) --- linux-3.2.0.orig/drivers/infiniband/core/uverbs_cmd.c +++ linux-3.2.0/drivers/infiniband/core/uverbs_cmd.c @@ -241,11 +241,24 @@ return idr_read_obj(&ib_uverbs_qp_idr, qp_handle, context, 0); } +static struct ib_qp *idr_write_qp(int qp_handle, struct ib_ucontext *context) +{ + struct ib_uobject *uobj; + + uobj = idr_write_uobj(&ib_uverbs_qp_idr, qp_handle, context); + return uobj ? uobj->object : NULL; +} + static void put_qp_read(struct ib_qp *qp) { put_uobj_read(qp->uobject); } +static void put_qp_write(struct ib_qp *qp) +{ + put_uobj_write(qp->uobject); +} + static struct ib_srq *idr_read_srq(int srq_handle, struct ib_ucontext *context) { return idr_read_obj(&ib_uverbs_srq_idr, srq_handle, context, 0); @@ -1472,6 +1485,7 @@ qp->event_handler = attr.event_handler; qp->qp_context = attr.qp_context; qp->qp_type = attr.qp_type; + atomic_set(&qp->usecnt, 0); atomic_inc(&pd->usecnt); atomic_inc(&attr.send_cq->usecnt); if (attr.recv_cq) @@ -2375,7 +2389,7 @@ if (copy_from_user(&cmd, buf, sizeof cmd)) return -EFAULT; - qp = idr_read_qp(cmd.qp_handle, file->ucontext); + qp = idr_write_qp(cmd.qp_handle, file->ucontext); if (!qp) return -EINVAL; @@ -2404,7 +2418,7 @@ kfree(mcast); out_put: - put_qp_read(qp); + put_qp_write(qp); return ret ? ret : in_len; } @@ -2422,7 +2436,7 @@ if (copy_from_user(&cmd, buf, sizeof cmd)) return -EFAULT; - qp = idr_read_qp(cmd.qp_handle, file->ucontext); + qp = idr_write_qp(cmd.qp_handle, file->ucontext); if (!qp) return -EINVAL; @@ -2441,7 +2455,7 @@ } out_put: - put_qp_read(qp); + put_qp_write(qp); return ret ? ret : in_len; } --- linux-3.2.0.orig/drivers/infiniband/core/umem.c +++ linux-3.2.0/drivers/infiniband/core/umem.c @@ -269,7 +269,7 @@ } else down_write(&mm->mmap_sem); - current->mm->locked_vm -= diff; + current->mm->pinned_vm -= diff; up_write(&mm->mmap_sem); mmput(mm); kfree(umem); --- linux-3.2.0.orig/drivers/infiniband/core/verbs.c +++ linux-3.2.0/drivers/infiniband/core/verbs.c @@ -421,6 +421,7 @@ qp->uobject = NULL; qp->qp_type = qp_init_attr->qp_type; + atomic_set(&qp->usecnt, 0); if (qp_init_attr->qp_type == IB_QPT_XRC_TGT) { qp->event_handler = __ib_shared_qp_event_handler; qp->qp_context = qp; @@ -430,7 +431,6 @@ qp->xrcd = qp_init_attr->xrcd; atomic_inc(&qp_init_attr->xrcd->usecnt); INIT_LIST_HEAD(&qp->open_list); - atomic_set(&qp->usecnt, 0); real_qp = qp; qp = __ib_open_qp(real_qp, qp_init_attr->event_handler, --- linux-3.2.0.orig/drivers/infiniband/hw/nes/nes.h +++ linux-3.2.0/drivers/infiniband/hw/nes/nes.h @@ -524,6 +524,7 @@ int nes_destroy_cqp(struct nes_device *); int nes_nic_cm_xmit(struct sk_buff *, struct net_device *); void nes_recheck_link_status(struct work_struct *work); +void nes_terminate_timeout(unsigned long context); /* nes_nic.c */ struct net_device *nes_netdev_init(struct nes_device *, void __iomem *); --- linux-3.2.0.orig/drivers/infiniband/hw/nes/nes_verbs.c +++ linux-3.2.0/drivers/infiniband/hw/nes/nes_verbs.c @@ -1404,6 +1404,9 @@ } nesqp->sig_all = (init_attr->sq_sig_type == IB_SIGNAL_ALL_WR); + init_timer(&nesqp->terminate_timer); + nesqp->terminate_timer.function = nes_terminate_timeout; + nesqp->terminate_timer.data = (unsigned long)nesqp; /* update the QP table */ nesdev->nesadapter->qp_table[nesqp->hwqp.qp_id-NES_FIRST_QPN] = nesqp; @@ -1413,7 +1416,6 @@ return &nesqp->ibqp; } - /** * nes_clean_cq */ @@ -2559,6 +2561,11 @@ return ibmr; case IWNES_MEMREG_TYPE_QP: case IWNES_MEMREG_TYPE_CQ: + if (!region->length) { + nes_debug(NES_DBG_MR, "Unable to register zero length region for CQ\n"); + ib_umem_release(region); + return ERR_PTR(-EINVAL); + } nespbl = kzalloc(sizeof(*nespbl), GFP_KERNEL); if (!nespbl) { nes_debug(NES_DBG_MR, "Unable to allocate PBL\n"); --- linux-3.2.0.orig/drivers/infiniband/hw/nes/nes_hw.c +++ linux-3.2.0/drivers/infiniband/hw/nes/nes_hw.c @@ -75,7 +75,6 @@ static void process_critical_error(struct nes_device *nesdev); static void nes_process_mac_intr(struct nes_device *nesdev, u32 mac_number); static unsigned int nes_reset_adapter_ne020(struct nes_device *nesdev, u8 *OneG_Mode); -static void nes_terminate_timeout(unsigned long context); static void nes_terminate_start_timer(struct nes_qp *nesqp); #ifdef CONFIG_INFINIBAND_NES_DEBUG @@ -3522,7 +3521,7 @@ } /* Timeout routine in case terminate fails to complete */ -static void nes_terminate_timeout(unsigned long context) +void nes_terminate_timeout(unsigned long context) { struct nes_qp *nesqp = (struct nes_qp *)(unsigned long)context; @@ -3532,11 +3531,7 @@ /* Set a timer in case hw cannot complete the terminate sequence */ static void nes_terminate_start_timer(struct nes_qp *nesqp) { - init_timer(&nesqp->terminate_timer); - nesqp->terminate_timer.function = nes_terminate_timeout; - nesqp->terminate_timer.expires = jiffies + HZ; - nesqp->terminate_timer.data = (unsigned long)nesqp; - add_timer(&nesqp->terminate_timer); + mod_timer(&nesqp->terminate_timer, (jiffies + HZ)); } /** --- linux-3.2.0.orig/drivers/infiniband/hw/mlx4/mad.c +++ linux-3.2.0/drivers/infiniband/hw/mlx4/mad.c @@ -256,12 +256,9 @@ return IB_MAD_RESULT_SUCCESS; /* - * Don't process SMInfo queries or vendor-specific - * MADs -- the SMA can't handle them. + * Don't process SMInfo queries -- the SMA can't handle them. */ - if (in_mad->mad_hdr.attr_id == IB_SMP_ATTR_SM_INFO || - ((in_mad->mad_hdr.attr_id & IB_SMP_ATTR_VENDOR_MASK) == - IB_SMP_ATTR_VENDOR_MASK)) + if (in_mad->mad_hdr.attr_id == IB_SMP_ATTR_SM_INFO) return IB_MAD_RESULT_SUCCESS; } else if (in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_PERF_MGMT || in_mad->mad_hdr.mgmt_class == MLX4_IB_VENDOR_CLASS1 || --- linux-3.2.0.orig/drivers/infiniband/hw/qib/qib_iba7322.c +++ linux-3.2.0/drivers/infiniband/hw/qib/qib_iba7322.c @@ -4082,10 +4082,12 @@ */ if (hd >> IBA7322_HDRHEAD_PKTINT_SHIFT) adjust_rcv_timeout(rcd, npkts); - qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt); - qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt); if (updegr) qib_write_ureg(rcd->dd, ur_rcvegrindexhead, egrhd, rcd->ctxt); + mmiowb(); + qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt); + qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt); + mmiowb(); } static u32 qib_7322_hdrqempty(struct qib_ctxtdata *rcd) --- linux-3.2.0.orig/drivers/infiniband/hw/qib/qib_iba6120.c +++ linux-3.2.0/drivers/infiniband/hw/qib/qib_iba6120.c @@ -2076,9 +2076,11 @@ static void qib_update_6120_usrhead(struct qib_ctxtdata *rcd, u64 hd, u32 updegr, u32 egrhd, u32 npkts) { - qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt); if (updegr) qib_write_ureg(rcd->dd, ur_rcvegrindexhead, egrhd, rcd->ctxt); + mmiowb(); + qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt); + mmiowb(); } static u32 qib_6120_hdrqempty(struct qib_ctxtdata *rcd) --- linux-3.2.0.orig/drivers/infiniband/hw/qib/qib_iba7220.c +++ linux-3.2.0/drivers/infiniband/hw/qib/qib_iba7220.c @@ -2725,9 +2725,11 @@ static void qib_update_7220_usrhead(struct qib_ctxtdata *rcd, u64 hd, u32 updegr, u32 egrhd, u32 npkts) { - qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt); if (updegr) qib_write_ureg(rcd->dd, ur_rcvegrindexhead, egrhd, rcd->ctxt); + mmiowb(); + qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt); + mmiowb(); } static u32 qib_7220_hdrqempty(struct qib_ctxtdata *rcd) --- linux-3.2.0.orig/drivers/infiniband/hw/cxgb4/cm.c +++ linux-3.2.0/drivers/infiniband/hw/cxgb4/cm.c @@ -2714,6 +2714,12 @@ unsigned int tid = GET_TID(req); ep = lookup_tid(t, tid); + if (!ep) { + printk(KERN_WARNING MOD + "Abort on non-existent endpoint, tid %d\n", tid); + kfree_skb(skb); + return 0; + } if (is_neg_adv_abort(req->status)) { PDBG("%s neg_adv_abort ep %p tid %u\n", __func__, ep, ep->hwtid); @@ -2725,11 +2731,8 @@ /* * Wake up any threads in rdma_init() or rdma_fini(). - * However, this is not needed if com state is just - * MPA_REQ_SENT */ - if (ep->com.state != MPA_REQ_SENT) - c4iw_wake_up(&ep->com.wr_wait, -ECONNRESET); + c4iw_wake_up(&ep->com.wr_wait, -ECONNRESET); sched(dev, skb); return 0; } --- linux-3.2.0.orig/drivers/tty/Kconfig +++ linux-3.2.0/drivers/tty/Kconfig @@ -365,7 +365,7 @@ config PPC_EARLY_DEBUG_EHV_BC bool "Early console (udbg) support for ePAPR hypervisors" - depends on PPC_EPAPR_HV_BYTECHAN + depends on PPC_EPAPR_HV_BYTECHAN=y help Select this option to enable early console (a.k.a. "udbg") support via an ePAPR byte channel. You also need to choose the byte channel --- linux-3.2.0.orig/drivers/tty/tty_io.c +++ linux-3.2.0/drivers/tty/tty_io.c @@ -940,6 +940,14 @@ EXPORT_SYMBOL(start_tty); +/* We limit tty time update visibility to every 8 seconds or so. */ +static void tty_update_time(struct timespec *time) +{ + unsigned long sec = get_seconds() & ~7; + if ((long)(sec - time->tv_sec) > 0) + time->tv_sec = sec; +} + /** * tty_read - read method for tty device files * @file: pointer to tty file @@ -976,8 +984,10 @@ else i = -EIO; tty_ldisc_deref(ld); + if (i > 0) - inode->i_atime = current_fs_time(inode->i_sb); + tty_update_time(&inode->i_atime); + return i; } @@ -1079,8 +1089,8 @@ cond_resched(); } if (written) { - struct inode *inode = file->f_path.dentry->d_inode; - inode->i_mtime = current_fs_time(inode->i_sb); + struct inode *inode = file->f_path.dentry->d_inode; + tty_update_time(&inode->i_mtime); ret = written; } out: --- linux-3.2.0.orig/drivers/tty/n_gsm.c +++ linux-3.2.0/drivers/tty/n_gsm.c @@ -108,7 +108,7 @@ */ struct gsm_msg { - struct gsm_msg *next; + struct list_head list; u8 addr; /* DLCI address + flags */ u8 ctrl; /* Control byte + flags */ unsigned int len; /* Length of data block (can be zero) */ @@ -245,8 +245,7 @@ unsigned int tx_bytes; /* TX data outstanding */ #define TX_THRESH_HI 8192 #define TX_THRESH_LO 2048 - struct gsm_msg *tx_head; /* Pending data packets */ - struct gsm_msg *tx_tail; + struct list_head tx_list; /* Pending data packets */ /* Control messages */ struct timer_list t2_timer; /* Retransmit timer for commands */ @@ -663,7 +662,7 @@ m->len = len; m->addr = addr; m->ctrl = ctrl; - m->next = NULL; + INIT_LIST_HEAD(&m->list); return m; } @@ -673,22 +672,21 @@ * * 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 * * FIXME: lock against link layer control transmissions */ static void gsm_data_kick(struct gsm_mux *gsm) { - struct gsm_msg *msg = gsm->tx_head; + struct gsm_msg *msg, *nmsg; int len; int skip_sof = 0; - /* FIXME: We need to apply this solely to data messages */ - if (gsm->constipated) - return; - - while (gsm->tx_head != NULL) { - msg = gsm->tx_head; + 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, @@ -711,14 +709,13 @@ len - skip_sof) < 0) break; /* FIXME: Can eliminate one SOF in many more cases */ - gsm->tx_head = msg->next; - if (gsm->tx_head == NULL) - gsm->tx_tail = NULL; gsm->tx_bytes -= msg->len; - kfree(msg); /* For a burst of frames skip the extra SOF within the burst */ skip_sof = 1; + + list_del(&msg->list); + kfree(msg); } } @@ -768,11 +765,7 @@ msg->data = dp; /* Add to the actual output queue */ - if (gsm->tx_tail) - gsm->tx_tail->next = msg; - else - gsm->tx_head = msg; - gsm->tx_tail = msg; + list_add_tail(&msg->list, &gsm->tx_list); gsm->tx_bytes += msg->len; gsm_data_kick(gsm); } @@ -875,7 +868,7 @@ /* dlci->skb is locked by tx_lock */ if (dlci->skb == NULL) { - dlci->skb = skb_dequeue(&dlci->skb_list); + dlci->skb = skb_dequeue_tail(&dlci->skb_list); if (dlci->skb == NULL) return 0; first = 1; @@ -886,7 +879,7 @@ if (len > gsm->mtu) { if (dlci->adaption == 3) { /* Over long frame, bin it */ - kfree_skb(dlci->skb); + dev_kfree_skb_any(dlci->skb); dlci->skb = NULL; return 0; } @@ -899,8 +892,11 @@ /* 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) + if (msg == NULL) { + skb_queue_tail(&dlci->skb_list, dlci->skb); + dlci->skb = NULL; return -ENOMEM; + } dp = msg->data; if (dlci->adaption == 4) { /* Interruptible framed (Packetised Data) */ @@ -912,7 +908,7 @@ skb_pull(dlci->skb, len); __gsm_data_queue(dlci, msg); if (last) { - kfree_skb(dlci->skb); + dev_kfree_skb_any(dlci->skb); dlci->skb = NULL; } return size; @@ -971,16 +967,22 @@ static void gsm_dlci_data_kick(struct gsm_dlci *dlci) { unsigned long flags; + int sweep; + + if (dlci->constipated) + return; spin_lock_irqsave(&dlci->gsm->tx_lock, flags); /* If we have nothing running then we need to fire up */ + sweep = (dlci->gsm->tx_bytes < TX_THRESH_LO); if (dlci->gsm->tx_bytes == 0) { if (dlci->net) gsm_dlci_data_output_framed(dlci->gsm, dlci); else gsm_dlci_data_output(dlci->gsm, dlci); - } else if (dlci->gsm->tx_bytes < TX_THRESH_LO) - gsm_dlci_data_sweep(dlci->gsm); + } + if (sweep) + gsm_dlci_data_sweep(dlci->gsm); spin_unlock_irqrestore(&dlci->gsm->tx_lock, flags); } @@ -1027,6 +1029,7 @@ { int mlines = 0; u8 brk = 0; + int fc; /* The modem status command can either contain one octet (v.24 signals) or two octets (v.24 signals + break signals). The length field will @@ -1038,19 +1041,21 @@ else { brk = modem & 0x7f; modem = (modem >> 7) & 0x7f; - }; + } /* Flow control/ready to communicate */ - if (modem & MDM_FC) { + fc = (modem & MDM_FC) || !(modem & MDM_RTR); + if (fc && !dlci->constipated) { /* Need to throttle our output on this device */ dlci->constipated = 1; - } - if (modem & MDM_RTC) { - mlines |= TIOCM_DSR | TIOCM_DTR; + } else if (!fc && dlci->constipated) { dlci->constipated = 0; gsm_dlci_data_kick(dlci); } + /* Map modem bits */ + if (modem & MDM_RTC) + mlines |= TIOCM_DSR | TIOCM_DTR; if (modem & MDM_RTR) mlines |= TIOCM_RTS | TIOCM_CTS; if (modem & MDM_IC) @@ -1190,6 +1195,8 @@ u8 *data, int clen) { u8 buf[1]; + unsigned long flags; + switch (command) { case CMD_CLD: { struct gsm_dlci *dlci = gsm->dlci[0]; @@ -1206,16 +1213,18 @@ gsm_control_reply(gsm, CMD_TEST, data, clen); break; case CMD_FCON: - /* Modem wants us to STFU */ - gsm->constipated = 1; - gsm_control_reply(gsm, CMD_FCON, NULL, 0); - break; - case CMD_FCOFF: /* Modem can accept data again */ gsm->constipated = 0; - gsm_control_reply(gsm, CMD_FCOFF, NULL, 0); + 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); + spin_unlock_irqrestore(&gsm->tx_lock, flags); + break; + case CMD_FCOFF: + /* Modem wants us to STFU */ + gsm->constipated = 1; + gsm_control_reply(gsm, CMD_FCOFF, NULL, 0); break; case CMD_MSC: /* Out of band modem line change indicator for a DLCI */ @@ -1668,7 +1677,7 @@ dlci->gsm->dlci[dlci->addr] = NULL; kfifo_free(dlci->fifo); while ((dlci->skb = skb_dequeue(&dlci->skb_list))) - kfree_skb(dlci->skb); + dev_kfree_skb(dlci->skb); kfree(dlci); } @@ -2007,7 +2016,7 @@ { int i; struct gsm_dlci *dlci = gsm->dlci[0]; - struct gsm_msg *txq; + struct gsm_msg *txq, *ntxq; struct gsm_control *gc; gsm->dead = 1; @@ -2042,11 +2051,9 @@ if (gsm->dlci[i]) gsm_dlci_release(gsm->dlci[i]); /* Now wipe the queues */ - for (txq = gsm->tx_head; txq != NULL; txq = gsm->tx_head) { - gsm->tx_head = txq->next; + list_for_each_entry_safe(txq, ntxq, &gsm->tx_list, list) kfree(txq); - } - gsm->tx_tail = NULL; + INIT_LIST_HEAD(&gsm->tx_list); } EXPORT_SYMBOL_GPL(gsm_cleanup_mux); @@ -2157,6 +2164,7 @@ } spin_lock_init(&gsm->lock); kref_init(&gsm->ref); + INIT_LIST_HEAD(&gsm->tx_list); gsm->t1 = T1; gsm->t2 = T2; @@ -2273,7 +2281,7 @@ gsm->error(gsm, *dp, flags); break; default: - WARN_ONCE("%s: unknown flag %d\n", + WARN_ONCE(1, "%s: unknown flag %d\n", tty_name(tty, buf), flags); break; } @@ -2377,12 +2385,12 @@ /* Queue poll */ clear_bit(TTY_DO_WRITE_WAKEUP, &tty->flags); + spin_lock_irqsave(&gsm->tx_lock, flags); gsm_data_kick(gsm); if (gsm->tx_bytes < TX_THRESH_LO) { - spin_lock_irqsave(&gsm->tx_lock, flags); gsm_dlci_data_sweep(gsm); - spin_unlock_irqrestore(&gsm->tx_lock, flags); } + spin_unlock_irqrestore(&gsm->tx_lock, flags); } /** @@ -2889,6 +2897,10 @@ gsm = gsm_mux[mux]; if (gsm->dead) return -EL2HLT; + /* If DLCI 0 is not yet fully open return an error. This is ok from a locking + perspective as we don't have to worry about this if DLCI0 is lost */ + if (gsm->dlci[0] && gsm->dlci[0]->state != DLCI_OPEN) + return -EL2NSYNC; dlci = gsm->dlci[line]; if (dlci == NULL) dlci = gsm_dlci_alloc(gsm, line); --- linux-3.2.0.orig/drivers/tty/pty.c +++ linux-3.2.0/drivers/tty/pty.c @@ -49,7 +49,6 @@ tty->packet = 0; if (!tty->link) return; - tty->link->packet = 0; set_bit(TTY_OTHER_CLOSED, &tty->link->flags); wake_up_interruptible(&tty->link->read_wait); wake_up_interruptible(&tty->link->write_wait); @@ -670,6 +669,9 @@ nonseekable_open(inode, filp); + /* We refuse fsnotify events on ptmx, since it's a shared resource */ + filp->f_mode |= FMODE_NONOTIFY; + retval = tty_alloc_file(filp); if (retval) return retval; --- linux-3.2.0.orig/drivers/tty/moxa.c +++ linux-3.2.0/drivers/tty/moxa.c @@ -1331,7 +1331,7 @@ if (ch == NULL) return; - if (!(ch->statusflags & TXSTOPPED)) + if (!test_bit(TXSTOPPED, &ch->statusflags)) return; MoxaPortTxEnable(ch); --- linux-3.2.0.orig/drivers/tty/tty_buffer.c +++ linux-3.2.0/drivers/tty/tty_buffer.c @@ -114,11 +114,14 @@ { struct tty_buffer *thead; - while ((thead = tty->buf.head) != NULL) { - tty->buf.head = thead->next; - tty_buffer_free(tty, thead); + if (tty->buf.head == NULL) + return; + while ((thead = tty->buf.head->next) != NULL) { + tty_buffer_free(tty, tty->buf.head); + tty->buf.head = thead; } - tty->buf.tail = NULL; + WARN_ON(tty->buf.head != tty->buf.tail); + tty->buf.head->read = tty->buf.head->commit; } /** --- linux-3.2.0.orig/drivers/tty/amiserial.c +++ linux-3.2.0/drivers/tty/amiserial.c @@ -1113,8 +1113,10 @@ (new_serial.close_delay != state->close_delay) || (new_serial.xmit_fifo_size != state->xmit_fifo_size) || ((new_serial.flags & ~ASYNC_USR_MASK) != - (state->flags & ~ASYNC_USR_MASK))) + (state->flags & ~ASYNC_USR_MASK))) { + tty_unlock(); return -EPERM; + } state->flags = ((state->flags & ~ASYNC_USR_MASK) | (new_serial.flags & ASYNC_USR_MASK)); info->flags = ((info->flags & ~ASYNC_USR_MASK) | --- linux-3.2.0.orig/drivers/tty/n_tty.c +++ linux-3.2.0/drivers/tty/n_tty.c @@ -1530,6 +1530,14 @@ tty->real_raw = 0; } n_tty_set_room(tty); + /* + * Fix tty hang when I_IXON(tty) is cleared, but the tty + * been stopped by STOP_CHAR(tty) before it. + */ + if (!I_IXON(tty) && old && (old->c_iflag & IXON) && !tty->flow_stopped) { + start_tty(tty); + } + /* The termios change make the tty ready for I/O */ wake_up_interruptible(&tty->write_wait); wake_up_interruptible(&tty->read_wait); @@ -1728,7 +1736,8 @@ do_it_again: - BUG_ON(!tty->read_buf); + if (WARN_ON(!tty->read_buf)) + return -EAGAIN; c = job_control(tty, file); if (c < 0) --- linux-3.2.0.orig/drivers/tty/tty_ioctl.c +++ linux-3.2.0/drivers/tty/tty_ioctl.c @@ -618,7 +618,7 @@ if (opt & TERMIOS_WAIT) { tty_wait_until_sent(tty, 0); if (signal_pending(current)) - return -EINTR; + return -ERESTARTSYS; } tty_set_termios(tty, &tmp_termios); @@ -685,7 +685,7 @@ if (opt & TERMIOS_WAIT) { tty_wait_until_sent(tty, 0); if (signal_pending(current)) - return -EINTR; + return -ERESTARTSYS; } mutex_lock(&tty->termios_mutex); --- linux-3.2.0.orig/drivers/tty/tty_port.c +++ linux-3.2.0/drivers/tty/tty_port.c @@ -227,7 +227,6 @@ int do_clocal = 0, retval; unsigned long flags; DEFINE_WAIT(wait); - int cd; /* block if port is in the process of being closed */ if (tty_hung_up_p(filp) || port->flags & ASYNC_CLOSING) { @@ -284,11 +283,14 @@ retval = -ERESTARTSYS; break; } - /* Probe the carrier. For devices with no carrier detect this - will always return true */ - cd = tty_port_carrier_raised(port); + /* + * Probe the carrier. For devices with no carrier detect + * tty_port_carrier_raised will always return true. + * Never ask drivers if CLOCAL is set, this causes troubles + * on some hardware. + */ if (!(port->flags & ASYNC_CLOSING) && - (do_clocal || cd)) + (do_clocal || tty_port_carrier_raised(port))) break; if (signal_pending(current)) { retval = -ERESTARTSYS; --- linux-3.2.0.orig/drivers/tty/serial/8250_pci.c +++ linux-3.2.0/drivers/tty/serial/8250_pci.c @@ -1077,6 +1077,18 @@ return setup_port(priv, port, 2, idx * 8, 0); } +static int +pci_brcm_trumanage_setup(struct serial_private *priv, + const struct pciserial_board *board, + struct uart_port *port, int idx) +{ + int ret = pci_default_setup(priv, board, port, idx); + + port->type = PORT_BRCM_TRUMANAGE; + port->flags = (port->flags | UPF_FIXED_PORT | UPF_FIXED_TYPE); + return ret; +} + static int skip_tx_en_setup(struct serial_private *priv, const struct pciserial_board *board, struct uart_port *port, int idx) @@ -1118,6 +1130,8 @@ #define PCI_SUBDEVICE_ID_OCTPRO422 0x0208 #define PCI_SUBDEVICE_ID_POCTAL232 0x0308 #define PCI_SUBDEVICE_ID_POCTAL422 0x0408 +#define PCI_SUBDEVICE_ID_SIIG_DUAL_00 0x2500 +#define PCI_SUBDEVICE_ID_SIIG_DUAL_30 0x2530 #define PCI_VENDOR_ID_ADVANTECH 0x13fe #define PCI_DEVICE_ID_INTEL_CE4100_UART 0x2e66 #define PCI_DEVICE_ID_ADVANTECH_PCI3620 0x3620 @@ -1136,9 +1150,11 @@ #define PCI_DEVICE_ID_OXSEMI_16PCI958 0x9538 #define PCIE_DEVICE_ID_NEO_2_OX_IBM 0x00F6 #define PCI_DEVICE_ID_PLX_CRONYX_OMEGA 0xc001 +#define PCI_DEVICE_ID_BROADCOM_TRUMANAGE 0x160a /* Unknown vendors/cards - this should not be in linux/pci_ids.h */ #define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584 +#define PCI_SUBDEVICE_ID_UNKNOWN_0x1588 0x1588 /* * Master list of serial port init/setup/exit quirks. @@ -1403,15 +1419,6 @@ }, { .vendor = PCI_VENDOR_ID_PLX, - .device = PCI_DEVICE_ID_PLX_9050, - .subvendor = PCI_VENDOR_ID_PLX, - .subdevice = PCI_SUBDEVICE_ID_UNKNOWN_0x1584, - .init = pci_plx9050_init, - .setup = pci_default_setup, - .exit = __devexit_p(pci_plx9050_exit), - }, - { - .vendor = PCI_VENDOR_ID_PLX, .device = PCI_DEVICE_ID_PLX_ROMULUS, .subvendor = PCI_VENDOR_ID_PLX, .subdevice = PCI_DEVICE_ID_PLX_ROMULUS, @@ -1590,54 +1597,72 @@ { .vendor = PCI_VENDOR_ID_INTEL, .device = 0x8811, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, .init = pci_eg20t_init, .setup = pci_default_setup, }, { .vendor = PCI_VENDOR_ID_INTEL, .device = 0x8812, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, .init = pci_eg20t_init, .setup = pci_default_setup, }, { .vendor = PCI_VENDOR_ID_INTEL, .device = 0x8813, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, .init = pci_eg20t_init, .setup = pci_default_setup, }, { .vendor = PCI_VENDOR_ID_INTEL, .device = 0x8814, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, .init = pci_eg20t_init, .setup = pci_default_setup, }, { .vendor = 0x10DB, .device = 0x8027, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, .init = pci_eg20t_init, .setup = pci_default_setup, }, { .vendor = 0x10DB, .device = 0x8028, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, .init = pci_eg20t_init, .setup = pci_default_setup, }, { .vendor = 0x10DB, .device = 0x8029, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, .init = pci_eg20t_init, .setup = pci_default_setup, }, { .vendor = 0x10DB, .device = 0x800C, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, .init = pci_eg20t_init, .setup = pci_default_setup, }, { .vendor = 0x10DB, .device = 0x800D, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, .init = pci_eg20t_init, .setup = pci_default_setup, }, @@ -1652,6 +1677,17 @@ .setup = pci_omegapci_setup, }, /* + * Broadcom TruManage (NetXtreme) + */ + { + .vendor = PCI_VENDOR_ID_BROADCOM, + .device = PCI_DEVICE_ID_BROADCOM_TRUMANAGE, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .setup = pci_brcm_trumanage_setup, + }, + + /* * Default "match everything" terminator entry */ { @@ -1840,6 +1876,7 @@ pbn_ce4100_1_115200, pbn_omegapci, pbn_NETMOS9900_2s_115200, + pbn_brcm_trumanage, }; /* @@ -2546,6 +2583,12 @@ .num_ports = 2, .base_baud = 115200, }, + [pbn_brcm_trumanage] = { + .flags = FL_BASE0, + .num_ports = 1, + .reg_shift = 2, + .base_baud = 115200, + }, }; static const struct pci_device_id softmodem_blacklist[] = { @@ -3069,7 +3112,12 @@ { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050, PCI_VENDOR_ID_PLX, PCI_SUBDEVICE_ID_UNKNOWN_0x1584, 0, 0, - pbn_b0_4_115200 }, + pbn_b2_4_115200 }, + /* Unknown card - subdevice 0x1588 */ + { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050, + PCI_VENDOR_ID_PLX, + PCI_SUBDEVICE_ID_UNKNOWN_0x1588, 0, 0, + pbn_b2_8_115200 }, { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050, PCI_SUBVENDOR_ID_KEYSPAN, PCI_SUBDEVICE_ID_KEYSPAN_SX2, 0, 0, @@ -3150,8 +3198,11 @@ * For now just used the hex ID 0x950a. */ { PCI_VENDOR_ID_OXSEMI, 0x950a, - PCI_SUBVENDOR_ID_SIIG, PCI_SUBDEVICE_ID_SIIG_DUAL_SERIAL, 0, 0, - pbn_b0_2_115200 }, + PCI_SUBVENDOR_ID_SIIG, PCI_SUBDEVICE_ID_SIIG_DUAL_00, + 0, 0, pbn_b0_2_115200 }, + { PCI_VENDOR_ID_OXSEMI, 0x950a, + PCI_SUBVENDOR_ID_SIIG, PCI_SUBDEVICE_ID_SIIG_DUAL_30, + 0, 0, pbn_b0_2_115200 }, { PCI_VENDOR_ID_OXSEMI, 0x950a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b0_2_1130000 }, @@ -4085,6 +4136,13 @@ pbn_omegapci }, /* + * Broadcom TruManage + */ + { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_BROADCOM_TRUMANAGE, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, + pbn_brcm_trumanage }, + + /* * These entries match devices with class COMMUNICATION_SERIAL, * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL */ --- linux-3.2.0.orig/drivers/tty/serial/Kconfig +++ linux-3.2.0/drivers/tty/serial/Kconfig @@ -464,7 +464,7 @@ config SERIAL_SAMSUNG_UARTS int depends on ARM && PLAT_SAMSUNG - default 6 if ARCH_S5P6450 + default 6 if CPU_S5P6450 default 4 if SERIAL_SAMSUNG_UARTS_4 default 3 help --- linux-3.2.0.orig/drivers/tty/serial/8250.h +++ linux-3.2.0/drivers/tty/serial/8250.h @@ -43,6 +43,7 @@ #define UART_CAP_AFE (1 << 11) /* MCR-based hw flow control */ #define UART_CAP_UUE (1 << 12) /* UART needs IER bit 6 set (Xscale) */ #define UART_CAP_RTOIE (1 << 13) /* UART needs IER bit 4 set (Xscale, Tegra) */ +#define UART_CAP_HFIFO (1 << 14) /* UART has a "hidden" FIFO */ #define UART_BUG_QUOT (1 << 0) /* UART has buggy quot LSB */ #define UART_BUG_TXEN (1 << 1) /* UART has buggy TX IIR status */ --- linux-3.2.0.orig/drivers/tty/serial/8250.c +++ linux-3.2.0/drivers/tty/serial/8250.c @@ -316,6 +316,33 @@ .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, .flags = UART_CAP_FIFO | UART_CAP_AFE | UART_CAP_EFR, }, + [PORT_BRCM_TRUMANAGE] = { + .name = "TruManage", + .fifo_size = 1, + .tx_loadsz = 1024, + .flags = UART_CAP_HFIFO, + }, + [PORT_ALTR_16550_F32] = { + .name = "Altera 16550 FIFO32", + .fifo_size = 32, + .tx_loadsz = 32, + .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, + .flags = UART_CAP_FIFO | UART_CAP_AFE, + }, + [PORT_ALTR_16550_F64] = { + .name = "Altera 16550 FIFO64", + .fifo_size = 64, + .tx_loadsz = 64, + .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, + .flags = UART_CAP_FIFO | UART_CAP_AFE, + }, + [PORT_ALTR_16550_F128] = { + .name = "Altera 16550 FIFO128", + .fifo_size = 128, + .tx_loadsz = 128, + .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, + .flags = UART_CAP_FIFO | UART_CAP_AFE, + }, }; #if defined(CONFIG_MIPS_ALCHEMY) @@ -1511,6 +1538,11 @@ up->port.icount.tx++; if (uart_circ_empty(xmit)) break; + if (up->capabilities & UART_CAP_HFIFO) { + if ((serial_in(up, UART_LSR) & BOTH_EMPTY) != + BOTH_EMPTY) + break; + } } while (--count > 0); if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) @@ -2327,10 +2359,11 @@ quot++; if (up->capabilities & UART_CAP_FIFO && up->port.fifosize > 1) { - if (baud < 2400) - fcr = UART_FCR_ENABLE_FIFO | UART_FCR_TRIGGER_1; - else - fcr = uart_config[up->port.type].fcr; + fcr = uart_config[up->port.type].fcr; + if (baud < 2400) { + fcr &= ~UART_FCR_TRIGGER_MASK; + fcr |= UART_FCR_TRIGGER_1; + } } /* @@ -2683,7 +2716,7 @@ if (ser->irq >= nr_irqs || ser->irq < 0 || ser->baud_base < 9600 || ser->type < PORT_UNKNOWN || ser->type >= ARRAY_SIZE(uart_config) || ser->type == PORT_CIRRUS || - ser->type == PORT_STARTECH) + ser->type == PORT_STARTECH || uart_config[ser->type].name == NULL) return -EINVAL; return 0; } @@ -2693,7 +2726,7 @@ { int type = port->type; - if (type >= ARRAY_SIZE(uart_config)) + if (type >= ARRAY_SIZE(uart_config) || uart_config[type].name == NULL) type = 0; return uart_config[type].name; } --- linux-3.2.0.orig/drivers/tty/serial/atmel_serial.c +++ linux-3.2.0/drivers/tty/serial/atmel_serial.c @@ -159,7 +159,7 @@ }; static struct atmel_uart_port atmel_ports[ATMEL_MAX_UART]; -static unsigned long atmel_ports_in_use; +static DECLARE_BITMAP(atmel_ports_in_use, ATMEL_MAX_UART); #ifdef SUPPORT_SYSRQ static struct console atmel_console; @@ -212,8 +212,9 @@ { struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); unsigned int mode; + unsigned long flags; - spin_lock(&port->lock); + spin_lock_irqsave(&port->lock, flags); /* Disable interrupts */ UART_PUT_IDR(port, atmel_port->tx_done_mask); @@ -244,7 +245,7 @@ /* Enable interrupts */ UART_PUT_IER(port, atmel_port->tx_done_mask); - spin_unlock(&port->lock); + spin_unlock_irqrestore(&port->lock, flags); } @@ -1783,15 +1784,14 @@ if (ret < 0) /* port id not found in platform data nor device-tree aliases: * auto-enumerate it */ - ret = find_first_zero_bit(&atmel_ports_in_use, - sizeof(atmel_ports_in_use)); + ret = find_first_zero_bit(atmel_ports_in_use, ATMEL_MAX_UART); - if (ret > ATMEL_MAX_UART) { + if (ret >= ATMEL_MAX_UART) { ret = -ENODEV; goto err; } - if (test_and_set_bit(ret, &atmel_ports_in_use)) { + if (test_and_set_bit(ret, atmel_ports_in_use)) { /* port already in use */ ret = -EBUSY; goto err; @@ -1865,7 +1865,7 @@ /* "port" is allocated statically, so we shouldn't free it */ - clear_bit(port->line, &atmel_ports_in_use); + clear_bit(port->line, atmel_ports_in_use); clk_put(atmel_port->clk); --- linux-3.2.0.orig/drivers/tty/serial/altera_uart.c +++ linux-3.2.0/drivers/tty/serial/altera_uart.c @@ -555,7 +555,7 @@ res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (res_mem) port->mapbase = res_mem->start; - else if (platp->mapbase) + else if (platp) port->mapbase = platp->mapbase; else return -EINVAL; @@ -563,7 +563,7 @@ res_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); if (res_irq) port->irq = res_irq->start; - else if (platp->irq) + else if (platp) port->irq = platp->irq; /* Check platform data first so we can override device node data */ --- linux-3.2.0.orig/drivers/tty/serial/pch_uart.c +++ linux-3.2.0/drivers/tty/serial/pch_uart.c @@ -236,6 +236,9 @@ int tx_dma_use; void *rx_buf_virt; dma_addr_t rx_buf_dma; + + /* protect the eg20t_port private structure and io access to membase */ + spinlock_t lock; }; /** @@ -660,7 +663,8 @@ tty_flip_buffer_push(tty); tty_kref_put(tty); async_tx_ack(priv->desc_rx); - pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT); + pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT | + PCH_UART_HAL_RX_ERR_INT); } static void pch_dma_tx_complete(void *arg) @@ -715,7 +719,8 @@ int rx_size; int ret; if (!priv->start_rx) { - pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT); + pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT | + PCH_UART_HAL_RX_ERR_INT); return 0; } buf = &priv->rxbuf; @@ -935,22 +940,37 @@ static void pch_uart_err_ir(struct eg20t_port *priv, unsigned int lsr) { u8 fcr = ioread8(priv->membase + UART_FCR); + struct uart_port *port = &priv->port; + struct tty_struct *tty = tty_port_tty_get(&port->state->port); + char *error_msg[5] = {}; + int i = 0; /* Reset FIFO */ fcr |= UART_FCR_CLEAR_RCVR; iowrite8(fcr, priv->membase + UART_FCR); if (lsr & PCH_UART_LSR_ERR) - dev_err(&priv->pdev->dev, "Error data in FIFO\n"); + error_msg[i++] = "Error data in FIFO\n"; - if (lsr & UART_LSR_FE) - dev_err(&priv->pdev->dev, "Framing Error\n"); + if (lsr & UART_LSR_FE) { + port->icount.frame++; + error_msg[i++] = " Framing Error\n"; + } + + if (lsr & UART_LSR_PE) { + port->icount.parity++; + error_msg[i++] = " Parity Error\n"; + } - if (lsr & UART_LSR_PE) - dev_err(&priv->pdev->dev, "Parity Error\n"); + if (lsr & UART_LSR_OE) { + port->icount.overrun++; + error_msg[i++] = " Overrun Error\n"; + } - if (lsr & UART_LSR_OE) - dev_err(&priv->pdev->dev, "Overrun Error\n"); + if (tty == NULL) { + for (i = 0; error_msg[i] != NULL; i++) + dev_err(&priv->pdev->dev, error_msg[i]); + } } static irqreturn_t pch_uart_interrupt(int irq, void *dev_id) @@ -962,7 +982,7 @@ unsigned int iid; unsigned long flags; - spin_lock_irqsave(&priv->port.lock, flags); + spin_lock_irqsave(&priv->lock, flags); handled = 0; while ((iid = pch_uart_hal_get_iid(priv)) > 1) { switch (iid) { @@ -977,11 +997,13 @@ case PCH_UART_IID_RDR: /* Received Data Ready */ if (priv->use_dma) { pch_uart_hal_disable_interrupt(priv, - PCH_UART_HAL_RX_INT); + PCH_UART_HAL_RX_INT | + PCH_UART_HAL_RX_ERR_INT); ret = dma_handle_rx(priv); if (!ret) pch_uart_hal_enable_interrupt(priv, - PCH_UART_HAL_RX_INT); + PCH_UART_HAL_RX_INT | + PCH_UART_HAL_RX_ERR_INT); } else { ret = handle_rx(priv); } @@ -1013,7 +1035,7 @@ priv->int_dis_flag = 0; } - spin_unlock_irqrestore(&priv->port.lock, flags); + spin_unlock_irqrestore(&priv->lock, flags); return IRQ_RETVAL(handled); } @@ -1107,7 +1129,8 @@ struct eg20t_port *priv; priv = container_of(port, struct eg20t_port, port); priv->start_rx = 0; - pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT); + pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT | + PCH_UART_HAL_RX_ERR_INT); priv->int_dis_flag = 1; } @@ -1126,9 +1149,9 @@ unsigned long flags; priv = container_of(port, struct eg20t_port, port); - spin_lock_irqsave(&port->lock, flags); + spin_lock_irqsave(&priv->lock, flags); pch_uart_hal_set_break(priv, ctl); - spin_unlock_irqrestore(&port->lock, flags); + spin_unlock_irqrestore(&priv->lock, flags); } /* Grab any interrupt resources and initialise any low level driver state. */ @@ -1163,6 +1186,7 @@ break; case 16: fifo_size = PCH_UART_HAL_FIFO16; + break; case 1: default: fifo_size = PCH_UART_HAL_FIFO_DIS; @@ -1200,7 +1224,8 @@ pch_request_dma(port); priv->start_rx = 1; - pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT); + pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT | + PCH_UART_HAL_RX_ERR_INT); uart_update_timeout(port, CS8, default_baud); return 0; @@ -1258,7 +1283,7 @@ stb = PCH_UART_HAL_STB1; if (termios->c_cflag & PARENB) { - if (!(termios->c_cflag & PARODD)) + if (termios->c_cflag & PARODD) parity = PCH_UART_HAL_PARITY_ODD; else parity = PCH_UART_HAL_PARITY_EVEN; @@ -1277,7 +1302,8 @@ baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk / 16); - spin_lock_irqsave(&port->lock, flags); + spin_lock_irqsave(&priv->lock, flags); + spin_lock(&port->lock); uart_update_timeout(port, termios->c_cflag, baud); rtn = pch_uart_hal_set_line(priv, baud, parity, bits, stb); @@ -1290,7 +1316,8 @@ tty_termios_encode_baud_rate(termios, baud, baud); out: - spin_unlock_irqrestore(&port->lock, flags); + spin_unlock(&port->lock); + spin_unlock_irqrestore(&priv->lock, flags); } static const char *pch_uart_type(struct uart_port *port) @@ -1356,9 +1383,11 @@ __func__); return -EOPNOTSUPP; #endif - priv->use_dma = 1; priv->use_dma_flag = 1; dev_info(priv->port.dev, "PCH UART : Use DMA Mode\n"); + if (!priv->use_dma) + pch_request_dma(port); + priv->use_dma = 1; } return 0; @@ -1438,6 +1467,9 @@ } pci_enable_msi(pdev); + pci_set_master(pdev); + + spin_lock_init(&priv->lock); iobase = pci_resource_start(pdev, 0); mapbase = pci_resource_start(pdev, 1); --- linux-3.2.0.orig/drivers/tty/serial/of_serial.c +++ linux-3.2.0/drivers/tty/serial/of_serial.c @@ -182,6 +182,12 @@ { .compatible = "ns16750", .data = (void *)PORT_16750, }, { .compatible = "ns16850", .data = (void *)PORT_16850, }, { .compatible = "nvidia,tegra20-uart", .data = (void *)PORT_TEGRA, }, + { .compatible = "altr,16550-FIFO32", + .data = (void *)PORT_ALTR_16550_F32, }, + { .compatible = "altr,16550-FIFO64", + .data = (void *)PORT_ALTR_16550_F64, }, + { .compatible = "altr,16550-FIFO128", + .data = (void *)PORT_ALTR_16550_F128, }, #ifdef CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL { .compatible = "ibm,qpace-nwp-serial", .data = (void *)PORT_NWPSERIAL, }, --- linux-3.2.0.orig/drivers/tty/serial/imx.c +++ linux-3.2.0/drivers/tty/serial/imx.c @@ -130,6 +130,7 @@ #define UCR4_OREN (1<<1) /* Receiver overrun interrupt enable */ #define UCR4_DREN (1<<0) /* Recv data ready interrupt enable */ #define UFCR_RXTL_SHF 0 /* Receiver trigger level shift */ +#define UFCR_DCEDTE (1<<6) /* DCE/DTE mode select */ #define UFCR_RFDIV (7<<7) /* Reference freq divider mask */ #define UFCR_RFDIV_REG(x) (((x) < 7 ? 6 - (x) : 6) << 7) #define UFCR_TXTL_SHF 10 /* Transmitter trigger level shift */ @@ -635,22 +636,11 @@ static int imx_setup_ufcr(struct imx_port *sport, unsigned int mode) { unsigned int val; - unsigned int ufcr_rfdiv; - - /* set receiver / transmitter trigger level. - * RFDIV is set such way to satisfy requested uartclk value - */ - val = TXTL << 10 | RXTL; - ufcr_rfdiv = (clk_get_rate(sport->clk) + sport->port.uartclk / 2) - / sport->port.uartclk; - - if(!ufcr_rfdiv) - ufcr_rfdiv = 1; - - val |= UFCR_RFDIV_REG(ufcr_rfdiv); + /* set receiver / transmitter trigger level */ + val = readl(sport->port.membase + UFCR) & (UFCR_RFDIV | UFCR_DCEDTE); + val |= TXTL << UFCR_TXTL_SHF | RXTL; writel(val, sport->port.membase + UFCR); - return 0; } @@ -725,6 +715,7 @@ } } + spin_lock_irqsave(&sport->port.lock, flags); /* * Finally, clear and enable interrupts */ @@ -778,7 +769,6 @@ /* * Enable modem status interrupts */ - spin_lock_irqsave(&sport->port.lock,flags); imx_enable_ms(&sport->port); spin_unlock_irqrestore(&sport->port.lock,flags); @@ -808,10 +798,13 @@ { struct imx_port *sport = (struct imx_port *)port; unsigned long temp; + unsigned long flags; + spin_lock_irqsave(&sport->port.lock, flags); temp = readl(sport->port.membase + UCR2); temp &= ~(UCR2_TXEN); writel(temp, sport->port.membase + UCR2); + spin_unlock_irqrestore(&sport->port.lock, flags); if (USE_IRDA(sport)) { struct imxuart_platform_data *pdata; @@ -840,12 +833,14 @@ * Disable all interrupts, port and break condition. */ + spin_lock_irqsave(&sport->port.lock, flags); temp = readl(sport->port.membase + UCR1); temp &= ~(UCR1_TXMPTYEN | UCR1_RRDYEN | UCR1_RTSDEN | UCR1_UARTEN); if (USE_IRDA(sport)) temp &= ~(UCR1_IREN); writel(temp, sport->port.membase + UCR1); + spin_unlock_irqrestore(&sport->port.lock, flags); } static void @@ -1119,6 +1114,9 @@ { struct imx_port *sport = imx_ports[co->index]; unsigned int old_ucr1, old_ucr2, ucr1; + unsigned long flags; + + spin_lock_irqsave(&sport->port.lock, flags); /* * First, save UCR1/2 and then disable interrupts @@ -1145,6 +1143,8 @@ writel(old_ucr1, sport->port.membase + UCR1); writel(old_ucr2, sport->port.membase + UCR2); + + spin_unlock_irqrestore(&sport->port.lock, flags); } /* --- linux-3.2.0.orig/drivers/tty/serial/8250_dw.c +++ linux-3.2.0/drivers/tty/serial/8250_dw.c @@ -79,7 +79,7 @@ } else if ((iir & UART_IIR_BUSY) == UART_IIR_BUSY) { /* Clear the USR and write the LCR again. */ (void)p->serial_in(p, UART_USR); - p->serial_out(p, d->last_lcr, UART_LCR); + p->serial_out(p, UART_LCR, d->last_lcr); return 1; } --- linux-3.2.0.orig/drivers/tty/serial/ifx6x60.c +++ linux-3.2.0/drivers/tty/serial/ifx6x60.c @@ -552,6 +552,7 @@ container_of(port, struct ifx_spi_device, tty_port); mrdy_set_low(ifx_dev); + del_timer(&ifx_dev->spi_timer); clear_bit(IFX_SPI_STATE_TIMER_PENDING, &ifx_dev->flags); tasklet_kill(&ifx_dev->io_work_tasklet); } --- linux-3.2.0.orig/drivers/tty/serial/serial_core.c +++ linux-3.2.0/drivers/tty/serial/serial_core.c @@ -1901,6 +1901,8 @@ mutex_unlock(&port->mutex); return 0; } + put_device(tty_dev); + if (console_suspend_enabled || !uart_console(uport)) uport->suspended = 1; @@ -1966,9 +1968,11 @@ disable_irq_wake(uport->irq); uport->irq_wake = 0; } + put_device(tty_dev); mutex_unlock(&port->mutex); return 0; } + put_device(tty_dev); uport->suspended = 0; /* @@ -2305,6 +2309,7 @@ tty_unregister_driver(p); put_tty_driver(p); kfree(drv->state); + drv->state = NULL; drv->tty_driver = NULL; } --- linux-3.2.0.orig/drivers/tty/serial/sh-sci.c +++ linux-3.2.0/drivers/tty/serial/sh-sci.c @@ -1123,17 +1123,20 @@ port->icount.tx += sg_dma_len(&s->sg_tx); async_tx_ack(s->desc_tx); - s->cookie_tx = -EINVAL; s->desc_tx = NULL; if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) uart_write_wakeup(port); if (!uart_circ_empty(xmit)) { + s->cookie_tx = 0; schedule_work(&s->work_tx); - } else if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) { - u16 ctrl = sci_in(port, SCSCR); - sci_out(port, SCSCR, ctrl & ~SCSCR_TIE); + } else { + s->cookie_tx = -EINVAL; + if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) { + u16 ctrl = sci_in(port, SCSCR); + sci_out(port, SCSCR, ctrl & ~SCSCR_TIE); + } } spin_unlock_irqrestore(&port->lock, flags); @@ -1395,8 +1398,10 @@ } if (s->chan_tx && !uart_circ_empty(&s->port.state->xmit) && - s->cookie_tx < 0) + s->cookie_tx < 0) { + s->cookie_tx = 0; schedule_work(&s->work_tx); + } #endif if (!s->chan_tx || port->type == PORT_SCIFA || port->type == PORT_SCIFB) { --- linux-3.2.0.orig/drivers/tty/serial/sunsu.c +++ linux-3.2.0/drivers/tty/serial/sunsu.c @@ -968,6 +968,7 @@ #define UART_NR 4 static struct uart_sunsu_port sunsu_ports[UART_NR]; +static int nr_inst; /* Number of already registered ports */ #ifdef CONFIG_SERIO @@ -1337,13 +1338,8 @@ printk("Console: ttyS%d (SU)\n", (sunsu_reg.minor - 64) + co->index); - /* - * Check whether an invalid uart number has been specified, and - * if so, search for the first available port that does have - * console support. - */ - if (co->index >= UART_NR) - co->index = 0; + if (co->index > nr_inst) + return -ENODEV; port = &sunsu_ports[co->index].port; /* @@ -1408,7 +1404,6 @@ static int __devinit su_probe(struct platform_device *op) { - static int inst; struct device_node *dp = op->dev.of_node; struct uart_sunsu_port *up; struct resource *rp; @@ -1418,16 +1413,16 @@ type = su_get_type(dp); if (type == SU_PORT_PORT) { - if (inst >= UART_NR) + if (nr_inst >= UART_NR) return -EINVAL; - up = &sunsu_ports[inst]; + up = &sunsu_ports[nr_inst]; } else { up = kzalloc(sizeof(*up), GFP_KERNEL); if (!up) return -ENOMEM; } - up->port.line = inst; + up->port.line = nr_inst; spin_lock_init(&up->port.lock); @@ -1461,6 +1456,8 @@ } dev_set_drvdata(&op->dev, up); + nr_inst++; + return 0; } @@ -1488,7 +1485,7 @@ dev_set_drvdata(&op->dev, up); - inst++; + nr_inst++; return 0; --- linux-3.2.0.orig/drivers/tty/serial/amba-pl011.c +++ linux-3.2.0/drivers/tty/serial/amba-pl011.c @@ -1380,6 +1380,10 @@ uap->port.uartclk = clk_get_rate(uap->clk); + /* Clear pending error and receive interrupts */ + writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS | + UART011_RTIS | UART011_RXIS, uap->port.membase + UART011_ICR); + /* * Allocate the IRQ */ @@ -1414,10 +1418,6 @@ cr = UART01x_CR_UARTEN | UART011_CR_RXE | UART011_CR_TXE; writew(cr, uap->port.membase + UART011_CR); - /* Clear pending error interrupts */ - writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS, - uap->port.membase + UART011_ICR); - /* * initialise the old status of the modem signals */ @@ -1432,6 +1432,9 @@ * as well. */ spin_lock_irq(&uap->port.lock); + /* Clear out any spuriously appearing RX interrupts */ + writew(UART011_RTIS | UART011_RXIS, + uap->port.membase + UART011_ICR); uap->im = UART011_RTIM; if (!pl011_dma_rx_running(uap)) uap->im |= UART011_RXIM; @@ -1624,13 +1627,26 @@ old_cr &= ~ST_UART011_CR_OVSFACT; } + /* + * Workaround for the ST Micro oversampling variants to + * increase the bitrate slightly, by lowering the divisor, + * to avoid delayed sampling of start bit at high speeds, + * else we see data corruption. + */ + if (uap->vendor->oversampling) { + if ((baud >= 3000000) && (baud < 3250000) && (quot > 1)) + quot -= 1; + else if ((baud > 3250000) && (quot > 2)) + quot -= 2; + } /* Set baud rate */ writew(quot & 0x3f, port->membase + UART011_FBRD); writew(quot >> 6, port->membase + UART011_IBRD); /* * ----------v----------v----------v----------v----- - * NOTE: MUST BE WRITTEN AFTER UARTLCR_M & UARTLCR_L + * NOTE: lcrh_tx and lcrh_rx MUST BE WRITTEN AFTER + * UART011_FBRD & UART011_IBRD. * ----------^----------^----------^----------^----- */ writew(lcr_h, port->membase + uap->lcrh_rx); @@ -1740,9 +1756,19 @@ { struct uart_amba_port *uap = amba_ports[co->index]; unsigned int status, old_cr, new_cr; + unsigned long flags; + int locked = 1; clk_enable(uap->clk); + local_irq_save(flags); + if (uap->port.sysrq) + locked = 0; + else if (oops_in_progress) + locked = spin_trylock(&uap->port.lock); + else + spin_lock(&uap->port.lock); + /* * First save the CR then disable the interrupts */ @@ -1762,6 +1788,10 @@ } while (status & UART01x_FR_BUSY); writew(old_cr, uap->port.membase + UART011_CR); + if (locked) + spin_unlock(&uap->port.lock); + local_irq_restore(flags); + clk_disable(uap->clk); } @@ -1918,6 +1948,10 @@ uap->port.line = i; pl011_dma_probe(uap); + /* Ensure interrupts from this UART are masked and cleared */ + writew(0, uap->port.membase + UART011_IMSC); + writew(0xffff, uap->port.membase + UART011_ICR); + snprintf(uap->type, sizeof(uap->type), "PL011 rev%u", amba_rev(dev)); amba_ports[i] = uap; --- linux-3.2.0.orig/drivers/tty/serial/pmac_zilog.c +++ linux-3.2.0/drivers/tty/serial/pmac_zilog.c @@ -1407,10 +1407,16 @@ static int pmz_poll_get_char(struct uart_port *port) { struct uart_pmac_port *uap = (struct uart_pmac_port *)port; + int tries = 2; - while ((read_zsreg(uap, R0) & Rx_CH_AV) == 0) - udelay(5); - return read_zsdata(uap); + while (tries) { + if ((read_zsreg(uap, R0) & Rx_CH_AV) != 0) + return read_zsdata(uap); + if (tries--) + udelay(5); + } + + return NO_POLL_CHAR; } static void pmz_poll_put_char(struct uart_port *port, unsigned char c) --- linux-3.2.0.orig/drivers/tty/serial/mxs-auart.c +++ linux-3.2.0/drivers/tty/serial/mxs-auart.c @@ -368,6 +368,8 @@ writel(ctrl, u->membase + AUART_LINECTRL); writel(ctrl2, u->membase + AUART_CTRL2); + + uart_update_timeout(u, termios->c_cflag, baud); } static irqreturn_t mxs_auart_irq_handle(int irq, void *context) --- linux-3.2.0.orig/drivers/tty/serial/clps711x.c +++ linux-3.2.0/drivers/tty/serial/clps711x.c @@ -154,10 +154,9 @@ port->x_char = 0; return IRQ_HANDLED; } - if (uart_circ_empty(xmit) || uart_tx_stopped(port)) { - clps711xuart_stop_tx(port); - return IRQ_HANDLED; - } + + if (uart_circ_empty(xmit) || uart_tx_stopped(port)) + goto disable_tx_irq; count = port->fifosize >> 1; do { @@ -171,8 +170,11 @@ if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) uart_write_wakeup(port); - if (uart_circ_empty(xmit)) - clps711xuart_stop_tx(port); + if (uart_circ_empty(xmit)) { + disable_tx_irq: + disable_irq_nosync(TX_IRQ(port)); + tx_enabled(port) = 0; + } return IRQ_HANDLED; } --- linux-3.2.0.orig/drivers/tty/serial/jsm/jsm_driver.c +++ linux-3.2.0/drivers/tty/serial/jsm/jsm_driver.c @@ -251,6 +251,7 @@ struct jsm_board *brd = pci_get_drvdata(pdev); pci_restore_state(pdev); + pci_save_state(pdev); jsm_uart_port_init(brd); } --- linux-3.2.0.orig/drivers/tty/vt/vt_ioctl.c +++ linux-3.2.0/drivers/tty/vt/vt_ioctl.c @@ -1358,9 +1358,9 @@ goto out; } -void reset_vc(struct vc_data *vc) +void reset_vc(struct vc_data *vc, int mode) { - vc->vc_mode = KD_TEXT; + vc->vc_mode = mode; kbd_table[vc->vc_num].kbdmode = default_utf8 ? VC_UNICODE : VC_XLATE; vc->vt_mode.mode = VT_AUTO; vc->vt_mode.waitv = 0; @@ -1391,7 +1391,7 @@ */ if (tty) __do_SAK(tty); - reset_vc(vc); + reset_vc(vc, KD_TEXT); } console_unlock(); } @@ -1463,7 +1463,6 @@ if (!perm && op->op != KD_FONT_OP_GET) return -EPERM; op->data = compat_ptr(((struct compat_console_font_op *)op)->data); - op->flags |= KD_FONT_FLAG_OLD; i = con_font_op(vc, op); if (i) return i; @@ -1653,7 +1652,7 @@ * this outside of VT_PROCESS but there is no single process * to account for and tracking tty count may be undesirable. */ - reset_vc(vc); + reset_vc(vc, KD_TEXT); if (old_vc_mode != vc->vc_mode) { if (vc->vc_mode == KD_TEXT) @@ -1725,7 +1724,7 @@ * this outside of VT_PROCESS but there is no single process * to account for and tracking tty count may be undesirable. */ - reset_vc(vc); + reset_vc(vc, KD_TEXT); /* * Fall through to normal (VT_AUTO) handling of the switch... --- linux-3.2.0.orig/drivers/tty/vt/vc_screen.c +++ linux-3.2.0/drivers/tty/vt/vc_screen.c @@ -93,7 +93,7 @@ static struct vcs_poll_data * vcs_poll_data_get(struct file *file) { - struct vcs_poll_data *poll = file->private_data; + struct vcs_poll_data *poll = file->private_data, *kill = NULL; if (poll) return poll; @@ -122,10 +122,12 @@ file->private_data = poll; } else { /* someone else raced ahead of us */ - vcs_poll_data_free(poll); + kill = poll; poll = file->private_data; } spin_unlock(&file->f_lock); + if (kill) + vcs_poll_data_free(kill); return poll; } --- linux-3.2.0.orig/drivers/tty/vt/consolemap.c +++ linux-3.2.0/drivers/tty/vt/consolemap.c @@ -516,6 +516,7 @@ int err = 0, err1, i; struct uni_pagedir *p, *q; + /* Save original vc_unipagdir_loc in case we allocate a new one */ p = (struct uni_pagedir *)*vc->vc_uni_pagedir_loc; if (p->readonly) return -EIO; @@ -528,26 +529,57 @@ err1 = con_clear_unimap(vc, NULL); if (err1) return err1; + /* + * Since refcount was > 1, con_clear_unimap() allocated a + * a new uni_pagedir for this vc. Re: p != q + */ q = (struct uni_pagedir *)*vc->vc_uni_pagedir_loc; - for (i = 0, l = 0; i < 32; i++) + + /* + * uni_pgdir is a 32*32*64 table with rows allocated + * when its first entry is added. The unicode value must + * still be incremented for empty rows. We are copying + * entries from "p" (old) to "q" (new). + */ + l = 0; /* unicode value */ + for (i = 0; i < 32; i++) if ((p1 = p->uni_pgdir[i])) for (j = 0; j < 32; j++) - if ((p2 = p1[j])) + if ((p2 = p1[j])) { for (k = 0; k < 64; k++, l++) if (p2[k] != 0xffff) { + /* + * Found one, copy entry for unicode + * l with fontpos value p2[k]. + */ err1 = con_insert_unipair(q, l, p2[k]); if (err1) { p->refcount++; *vc->vc_uni_pagedir_loc = (unsigned long)p; con_release_unimap(q); kfree(q); - return err1; + return err1; } - } - p = q; - } else if (p == dflt) + } + } else { + /* Account for row of 64 empty entries */ + l += 64; + } + else + /* Account for empty table */ + l += 32 * 64; + + /* + * Finished copying font table, set vc_uni_pagedir to new table + */ + p = q; + } else if (p == dflt) { dflt = NULL; - + } + + /* + * Insert user specified unicode pairs into new table. + */ while (ct--) { unsigned short unicode, fontpos; __get_user(unicode, &list->unicode); @@ -557,11 +589,14 @@ list++; } + /* + * Merge with fontmaps of any other virtual consoles. + */ if (con_unify_unimap(vc, p)) return err; for (i = 0; i <= 3; i++) - set_inverse_transl(vc, p, i); /* Update all inverse translations */ + set_inverse_transl(vc, p, i); /* Update inverse translations */ set_inverse_trans_unicode(vc, p); return err; --- linux-3.2.0.orig/drivers/tty/vt/vt.c +++ linux-3.2.0/drivers/tty/vt/vt.c @@ -103,6 +103,7 @@ #include #include #include +#include #define MAX_NR_CON_DRIVER 16 @@ -145,7 +146,7 @@ static int con_open(struct tty_struct *, struct file *); static void vc_init(struct vc_data *vc, unsigned int rows, - unsigned int cols, int do_clear); + unsigned int cols, int do_clear, int mode); static void gotoxy(struct vc_data *vc, int new_x, int new_y); static void save_cur(struct vc_data *vc); static void reset_terminal(struct vc_data *vc, int do_clear); @@ -166,6 +167,9 @@ static int cur_default = CUR_DEFAULT; module_param(cur_default, int, S_IRUGO | S_IWUSR); +int vt_handoff = 0; +module_param_named(handoff, vt_handoff, int, S_IRUGO | S_IWUSR); + /* * ignore_poke: don't unblank the screen when things are typed. This is * mainly for the privacy of braille terminal users. @@ -657,7 +661,7 @@ * Redrawing of screen */ -static void clear_buffer_attributes(struct vc_data *vc) +void clear_buffer_attributes(struct vc_data *vc) { unsigned short *p = (unsigned short *)vc->vc_origin; int count = vc->vc_screenbuf_size / 2; @@ -695,6 +699,13 @@ } if (tty0dev) sysfs_notify(&tty0dev->kobj, NULL, "active"); + /* + * If we are switching away from a transparent VT the contents + * will be lost, convert it into a blank text console then + * it will be repainted blank if we ever switch back. + */ + if (old_vc->vc_mode == KD_TRANSPARENT) + old_vc->vc_mode = KD_TEXT; } else { hide_cursor(vc); redraw = 1; @@ -808,7 +819,7 @@ if (global_cursor_default == -1) global_cursor_default = 1; - vc_init(vc, vc->vc_rows, vc->vc_cols, 1); + vc_init(vc, vc->vc_rows, vc->vc_cols, 1, KD_TEXT); vcs_make_sysfs(currcons); atomic_notifier_call_chain(&vt_notifier_list, VT_ALLOCATE, ¶m); } @@ -2846,7 +2857,7 @@ module_param_named(underline, default_underline_color, int, S_IRUGO | S_IWUSR); static void vc_init(struct vc_data *vc, unsigned int rows, - unsigned int cols, int do_clear) + unsigned int cols, int do_clear, int mode) { int j, k ; @@ -2857,7 +2868,7 @@ set_origin(vc); vc->vc_pos = vc->vc_origin; - reset_vc(vc); + reset_vc(vc, mode); for (j=k=0; j<16; j++) { vc->vc_palette[k++] = default_red[j] ; vc->vc_palette[k++] = default_grn[j] ; @@ -2883,6 +2894,13 @@ struct vc_data *vc; unsigned int currcons = 0, i; + if (screen_info.flags & VIDEO_FLAGS_HANDOFF) { + if (vt_handoff == 0) + vt_handoff = 8; + printk(KERN_INFO "vt handoff: grub requested handoff (vt#%d)\n", + vt_handoff); + } + console_lock(); if (conswitchp) @@ -2914,16 +2932,31 @@ mod_timer(&console_timer, jiffies + (blankinterval * HZ)); } + if (vt_handoff > 0 && vt_handoff <= MAX_NR_CONSOLES) { + currcons = vt_handoff - 1; + vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT); + INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK); + visual_init(vc, currcons, 1); + vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT); + vc_init(vc, vc->vc_rows, vc->vc_cols, 0, KD_TRANSPARENT); + } for (currcons = 0; currcons < MIN_NR_CONSOLES; currcons++) { + if (currcons == vt_handoff - 1) + continue; vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT); INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK); tty_port_init(&vc->port); visual_init(vc, currcons, 1); vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT); vc_init(vc, vc->vc_rows, vc->vc_cols, - currcons || !vc->vc_sw->con_save_screen); + currcons || !vc->vc_sw->con_save_screen, KD_TEXT); } currcons = fg_console = 0; + if (vt_handoff > 0) { + printk(KERN_INFO "vt handoff: transparent VT on vt#%d\n", + vt_handoff); + currcons = fg_console = vt_handoff - 1; + } master_display_fg = vc = vc_cons[currcons].d; set_origin(vc); save_screen(vc); @@ -3016,7 +3049,7 @@ static struct class *vtconsole_class; -static int bind_con_driver(const struct consw *csw, int first, int last, +static int do_bind_con_driver(const struct consw *csw, int first, int last, int deflt) { struct module *owner = csw->owner; @@ -3027,7 +3060,7 @@ if (!try_module_get(owner)) return -ENODEV; - console_lock(); + WARN_CONSOLE_UNLOCKED(); /* check if driver is registered */ for (i = 0; i < MAX_NR_CON_DRIVER; i++) { @@ -3112,11 +3145,22 @@ retval = 0; err: - console_unlock(); module_put(owner); return retval; }; + +static int bind_con_driver(const struct consw *csw, int first, int last, + int deflt) +{ + int ret; + + console_lock(); + ret = do_bind_con_driver(csw, first, last, deflt); + console_unlock(); + return ret; +} + #ifdef CONFIG_VT_HW_CONSOLE_BINDING static int con_is_graphics(const struct consw *csw, int first, int last) { @@ -3153,6 +3197,18 @@ */ int unbind_con_driver(const struct consw *csw, int first, int last, int deflt) { + int retval; + + console_lock(); + retval = do_unbind_con_driver(csw, first, last, deflt); + console_unlock(); + return retval; +} +EXPORT_SYMBOL(unbind_con_driver); + +/* unlocked version of unbind_con_driver() */ +int do_unbind_con_driver(const struct consw *csw, int first, int last, int deflt) +{ struct module *owner = csw->owner; const struct consw *defcsw = NULL; struct con_driver *con_driver = NULL, *con_back = NULL; @@ -3161,7 +3217,7 @@ if (!try_module_get(owner)) return -ENODEV; - console_lock(); + WARN_CONSOLE_UNLOCKED(); /* check if driver is registered and if it is unbindable */ for (i = 0; i < MAX_NR_CON_DRIVER; i++) { @@ -3174,10 +3230,8 @@ } } - if (retval) { - console_unlock(); + if (retval) goto err; - } retval = -ENODEV; @@ -3193,15 +3247,11 @@ } } - if (retval) { - console_unlock(); + if (retval) goto err; - } - if (!con_is_bound(csw)) { - console_unlock(); + if (!con_is_bound(csw)) goto err; - } first = max(first, con_driver->first); last = min(last, con_driver->last); @@ -3228,15 +3278,14 @@ if (!con_is_bound(csw)) con_driver->flag &= ~CON_DRIVER_FLAG_INIT; - console_unlock(); /* ignore return value, binding should not fail */ - bind_con_driver(defcsw, first, last, deflt); + do_bind_con_driver(defcsw, first, last, deflt); err: module_put(owner); return retval; } -EXPORT_SYMBOL(unbind_con_driver); +EXPORT_SYMBOL_GPL(do_unbind_con_driver); static int vt_bind(struct con_driver *con) { @@ -3508,28 +3557,18 @@ } EXPORT_SYMBOL_GPL(con_debug_leave); -/** - * register_con_driver - register console driver to console layer - * @csw: console driver - * @first: the first console to take over, minimum value is 0 - * @last: the last console to take over, maximum value is MAX_NR_CONSOLES -1 - * - * DESCRIPTION: This function registers a console driver which can later - * bind to a range of consoles specified by @first and @last. It will - * also initialize the console driver by calling con_startup(). - */ -int register_con_driver(const struct consw *csw, int first, int last) +static int do_register_con_driver(const struct consw *csw, int first, int last) { struct module *owner = csw->owner; struct con_driver *con_driver; const char *desc; int i, retval = 0; + WARN_CONSOLE_UNLOCKED(); + if (!try_module_get(owner)) return -ENODEV; - console_lock(); - for (i = 0; i < MAX_NR_CON_DRIVER; i++) { con_driver = ®istered_con_driver[i]; @@ -3582,10 +3621,29 @@ } err: - console_unlock(); module_put(owner); return retval; } + +/** + * register_con_driver - register console driver to console layer + * @csw: console driver + * @first: the first console to take over, minimum value is 0 + * @last: the last console to take over, maximum value is MAX_NR_CONSOLES -1 + * + * DESCRIPTION: This function registers a console driver which can later + * bind to a range of consoles specified by @first and @last. It will + * also initialize the console driver by calling con_startup(). + */ +int register_con_driver(const struct consw *csw, int first, int last) +{ + int retval; + + console_lock(); + retval = do_register_con_driver(csw, first, last); + console_unlock(); + return retval; +} EXPORT_SYMBOL(register_con_driver); /** @@ -3601,9 +3659,18 @@ */ int unregister_con_driver(const struct consw *csw) { - int i, retval = -ENODEV; + int retval; console_lock(); + retval = do_unregister_con_driver(csw); + console_unlock(); + return retval; +} +EXPORT_SYMBOL(unregister_con_driver); + +int do_unregister_con_driver(const struct consw *csw) +{ + int i, retval = -ENODEV; /* cannot unregister a bound driver */ if (con_is_bound(csw)) @@ -3629,27 +3696,53 @@ } } err: - console_unlock(); return retval; } -EXPORT_SYMBOL(unregister_con_driver); +EXPORT_SYMBOL_GPL(do_unregister_con_driver); + +/* + * If we support more console drivers, this function is used + * when a driver wants to take over some existing consoles + * and become default driver for newly opened ones. + * + * take_over_console is basically a register followed by unbind + */ +int do_take_over_console(const struct consw *csw, int first, int last, int deflt) +{ + int err; + + err = do_register_con_driver(csw, first, last); + /* + * If we get an busy error we still want to bind the console driver + * and return success, as we may have unbound the console driver + * but not unregistered it. + */ + if (err == -EBUSY) + err = 0; + if (!err) + do_bind_con_driver(csw, first, last, deflt); + + return err; +} +EXPORT_SYMBOL_GPL(do_take_over_console); /* * If we support more console drivers, this function is used * when a driver wants to take over some existing consoles * and become default driver for newly opened ones. * - * take_over_console is basically a register followed by unbind + * take_over_console is basically a register followed by unbind */ int take_over_console(const struct consw *csw, int first, int last, int deflt) { int err; err = register_con_driver(csw, first, last); - /* if we get an busy error we still want to bind the console driver + /* + * If we get an busy error we still want to bind the console driver * and return success, as we may have unbound the console driver -  * but not unregistered it. - */ + * but not unregistered it. + */ if (err == -EBUSY) err = 0; if (!err) --- linux-3.2.0.orig/drivers/amba/bus.c +++ linux-3.2.0/drivers/amba/bus.c @@ -52,6 +52,10 @@ int retval = 0; retval = add_uevent_var(env, "AMBA_ID=%08x", pcdev->periphid); + if (retval) + return retval; + + retval = add_uevent_var(env, "MODALIAS=amba:d%08X", pcdev->periphid); return retval; } #else --- linux-3.2.0.orig/drivers/oprofile/oprofile_perf.c +++ linux-3.2.0/drivers/oprofile/oprofile_perf.c @@ -25,7 +25,7 @@ static DEFINE_MUTEX(oprofile_perf_mutex); static struct op_counter_config *counter_config; -static struct perf_event **perf_events[nr_cpumask_bits]; +static struct perf_event **perf_events[NR_CPUS]; static int num_counters; /* --- linux-3.2.0.orig/drivers/telephony/ixj.c +++ linux-3.2.0/drivers/telephony/ixj.c @@ -3190,12 +3190,12 @@ ixj_fsk_alloc(j); - strcpy(sdmf1, j->cid_send.month); - strcat(sdmf1, j->cid_send.day); - strcat(sdmf1, j->cid_send.hour); - strcat(sdmf1, j->cid_send.min); - strcpy(sdmf2, j->cid_send.number); - strcpy(sdmf3, j->cid_send.name); + strlcpy(sdmf1, j->cid_send.month, sizeof(sdmf1)); + strlcat(sdmf1, j->cid_send.day, sizeof(sdmf1)); + strlcat(sdmf1, j->cid_send.hour, sizeof(sdmf1)); + strlcat(sdmf1, j->cid_send.min, sizeof(sdmf1)); + strlcpy(sdmf2, j->cid_send.number, sizeof(sdmf2)); + strlcpy(sdmf3, j->cid_send.name, sizeof(sdmf3)); len1 = strlen(sdmf1); len2 = strlen(sdmf2); @@ -3340,12 +3340,12 @@ ixj_pre_cid(j); } j->flags.cidcw_ack = 0; - strcpy(sdmf1, j->cid_send.month); - strcat(sdmf1, j->cid_send.day); - strcat(sdmf1, j->cid_send.hour); - strcat(sdmf1, j->cid_send.min); - strcpy(sdmf2, j->cid_send.number); - strcpy(sdmf3, j->cid_send.name); + strlcpy(sdmf1, j->cid_send.month, sizeof(sdmf1)); + strlcat(sdmf1, j->cid_send.day, sizeof(sdmf1)); + strlcat(sdmf1, j->cid_send.hour, sizeof(sdmf1)); + strlcat(sdmf1, j->cid_send.min, sizeof(sdmf1)); + strlcpy(sdmf2, j->cid_send.number, sizeof(sdmf2)); + strlcpy(sdmf3, j->cid_send.name, sizeof(sdmf3)); len1 = strlen(sdmf1); len2 = strlen(sdmf2); --- linux-3.2.0.orig/drivers/spi/Kconfig +++ linux-3.2.0/drivers/spi/Kconfig @@ -346,14 +346,14 @@ serial port. config SPI_TOPCLIFF_PCH - tristate "Intel EG20T PCH/OKI SEMICONDUCTOR ML7213 IOH SPI controller" + tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI" depends on PCI help SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus used in some x86 embedded processors. - This driver also supports the ML7213, a companion chip for the - Atom E6xx series and compatible with the Intel EG20T PCH. + This driver also supports the ML7213/ML7223/ML7831, a companion chip + for the Atom E6xx series and compatible with the Intel EG20T PCH. config SPI_TXX9 tristate "Toshiba TXx9 SPI controller" --- linux-3.2.0.orig/drivers/spi/spi-topcliff-pch.c +++ linux-3.2.0/drivers/spi/spi-topcliff-pch.c @@ -95,16 +95,18 @@ #define PCH_CLOCK_HZ 50000000 #define PCH_MAX_SPBR 1023 -/* Definition for ML7213 by OKI SEMICONDUCTOR */ +/* Definition for ML7213/ML7831 by OKI SEMICONDUCTOR */ #define PCI_VENDOR_ID_ROHM 0x10DB #define PCI_DEVICE_ID_ML7213_SPI 0x802c #define PCI_DEVICE_ID_ML7223_SPI 0x800F +#define PCI_DEVICE_ID_ML7831_SPI 0x8816 /* * Set the number of SPI instance max * Intel EG20T PCH : 1ch * OKI SEMICONDUCTOR ML7213 IOH : 2ch * OKI SEMICONDUCTOR ML7223 IOH : 1ch + * OKI SEMICONDUCTOR ML7831 IOH : 1ch */ #define PCH_SPI_MAX_DEV 2 @@ -194,6 +196,7 @@ struct pch_spi_dma_ctrl dma; int use_dma; u8 irq_reg_sts; + int save_total_len; }; /** @@ -218,6 +221,7 @@ { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_GE_SPI), 1, }, { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7213_SPI), 2, }, { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7223_SPI), 1, }, + { PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7831_SPI), 1, }, { } }; @@ -315,22 +319,23 @@ data->tx_index = tx_index; data->rx_index = rx_index; - } - - /* if transfer complete interrupt */ - if (reg_spsr_val & SPSR_FI_BIT) { - if ((tx_index == bpw_len) && (rx_index == tx_index)) { - /* disable interrupts */ - pch_spi_setclr_reg(data->master, PCH_SPCR, 0, PCH_ALL); - - /* transfer is completed; - inform pch_spi_process_messages */ - data->transfer_complete = true; - data->transfer_active = false; - wake_up(&data->wait); - } else { - dev_err(&data->master->dev, - "%s : Transfer is not completed", __func__); + /* if transfer complete interrupt */ + if (reg_spsr_val & SPSR_FI_BIT) { + if ((tx_index == bpw_len) && (rx_index == tx_index)) { + /* disable interrupts */ + pch_spi_setclr_reg(data->master, PCH_SPCR, 0, + PCH_ALL); + + /* transfer is completed; + inform pch_spi_process_messages */ + data->transfer_complete = true; + data->transfer_active = false; + wake_up(&data->wait); + } else { + dev_err(&data->master->dev, + "%s : Transfer is not completed", + __func__); + } } } } @@ -819,11 +824,13 @@ rx_dma_buf = data->dma.rx_buf_virt; for (j = 0; j < data->bpw_len; j++) *rx_buf++ = *rx_dma_buf++ & 0xFF; + data->cur_trans->rx_buf = rx_buf; } else { rx_sbuf = data->cur_trans->rx_buf; rx_dma_sbuf = data->dma.rx_buf_virt; for (j = 0; j < data->bpw_len; j++) *rx_sbuf++ = *rx_dma_sbuf++; + data->cur_trans->rx_buf = rx_sbuf; } } @@ -849,6 +856,9 @@ rtn = wait_event_interruptible_timeout(data->wait, data->transfer_complete, msecs_to_jiffies(2 * HZ)); + if (!rtn) + dev_err(&data->master->dev, + "%s wait-event timeout\n", __func__); dma_sync_sg_for_cpu(&data->master->dev, dma->sg_rx_p, dma->nent, DMA_FROM_DEVICE); @@ -920,7 +930,8 @@ dma_cap_set(DMA_SLAVE, mask); /* Get DMA's dev information */ - dma_dev = pci_get_bus_and_slot(2, PCI_DEVFN(12, 0)); + dma_dev = pci_get_bus_and_slot(data->board_dat->pdev->bus->number, + PCI_DEVFN(12, 0)); /* Set Tx DMA */ param = &dma->param_tx; @@ -984,6 +995,7 @@ int i; int size; int rem; + int head; unsigned long flags; struct pch_spi_dma_ctrl *dma; @@ -1012,6 +1024,11 @@ } data->bpw_len = data->cur_trans->len / (*bpw / 8); + if (data->bpw_len > PCH_BUF_SIZE) { + data->bpw_len = PCH_BUF_SIZE; + data->cur_trans->len -= PCH_BUF_SIZE; + } + /* copy Tx Data */ if (data->cur_trans->tx_buf != NULL) { if (*bpw == 8) { @@ -1026,10 +1043,17 @@ *tx_dma_sbuf++ = *tx_sbuf++; } } + + /* Calculate Rx parameter for DMA transmitting */ if (data->bpw_len > PCH_DMA_TRANS_SIZE) { - num = data->bpw_len / PCH_DMA_TRANS_SIZE + 1; + if (data->bpw_len % PCH_DMA_TRANS_SIZE) { + num = data->bpw_len / PCH_DMA_TRANS_SIZE + 1; + rem = data->bpw_len % PCH_DMA_TRANS_SIZE; + } else { + num = data->bpw_len / PCH_DMA_TRANS_SIZE; + rem = PCH_DMA_TRANS_SIZE; + } size = PCH_DMA_TRANS_SIZE; - rem = data->bpw_len % PCH_DMA_TRANS_SIZE; } else { num = 1; size = data->bpw_len; @@ -1089,15 +1113,23 @@ dma->nent = num; dma->desc_rx = desc_rx; - /* TX */ - if (data->bpw_len > PCH_DMA_TRANS_SIZE) { - num = data->bpw_len / PCH_DMA_TRANS_SIZE; + /* Calculate Tx parameter for DMA transmitting */ + if (data->bpw_len > PCH_MAX_FIFO_DEPTH) { + head = PCH_MAX_FIFO_DEPTH - PCH_DMA_TRANS_SIZE; + if (data->bpw_len % PCH_DMA_TRANS_SIZE > 4) { + num = data->bpw_len / PCH_DMA_TRANS_SIZE + 1; + rem = data->bpw_len % PCH_DMA_TRANS_SIZE - head; + } else { + num = data->bpw_len / PCH_DMA_TRANS_SIZE; + rem = data->bpw_len % PCH_DMA_TRANS_SIZE + + PCH_DMA_TRANS_SIZE - head; + } size = PCH_DMA_TRANS_SIZE; - rem = 16; } else { num = 1; size = data->bpw_len; rem = data->bpw_len; + head = 0; } dma->sg_tx_p = kzalloc(sizeof(struct scatterlist)*num, GFP_ATOMIC); @@ -1107,11 +1139,17 @@ for (i = 0; i < num; i++, sg++) { if (i == 0) { sg->offset = 0; + sg_set_page(sg, virt_to_page(dma->tx_buf_virt), size + head, + sg->offset); + sg_dma_len(sg) = size + head; + } else if (i == (num - 1)) { + sg->offset = head + size * i; + sg->offset = sg->offset * (*bpw / 8); sg_set_page(sg, virt_to_page(dma->tx_buf_virt), rem, sg->offset); sg_dma_len(sg) = rem; } else { - sg->offset = rem + size * (i - 1); + sg->offset = head + size * i; sg->offset = sg->offset * (*bpw / 8); sg_set_page(sg, virt_to_page(dma->tx_buf_virt), size, sg->offset); @@ -1199,6 +1237,7 @@ data->current_msg->spi->bits_per_word); pch_spi_writereg(data->master, PCH_SSNXCR, SSN_NO_CONTROL); do { + int cnt; /* If we are already processing a message get the next transfer structure from the message otherwise retrieve the 1st transfer request from the message. */ @@ -1218,11 +1257,28 @@ } spin_unlock(&data->lock); + if (!data->cur_trans->len) + goto out; + cnt = (data->cur_trans->len - 1) / PCH_BUF_SIZE + 1; + data->save_total_len = data->cur_trans->len; if (data->use_dma) { - pch_spi_handle_dma(data, &bpw); - if (!pch_spi_start_transfer(data)) - goto out; - pch_spi_copy_rx_data_for_dma(data, bpw); + int i; + char *save_rx_buf = data->cur_trans->rx_buf; + for (i = 0; i < cnt; i ++) { + pch_spi_handle_dma(data, &bpw); + if (!pch_spi_start_transfer(data)) { + data->transfer_complete = true; + data->current_msg->status = -EIO; + data->current_msg->complete + (data->current_msg->context); + data->bcurrent_msg_processing = false; + data->current_msg = NULL; + data->cur_trans = NULL; + goto out; + } + pch_spi_copy_rx_data_for_dma(data, bpw); + } + data->cur_trans->rx_buf = save_rx_buf; } else { pch_spi_set_tx(data, &bpw); pch_spi_set_ir(data); @@ -1233,6 +1289,7 @@ data->pkt_tx_buff = NULL; } /* increment message count */ + data->cur_trans->len = data->save_total_len; data->current_msg->actual_length += data->cur_trans->len; dev_dbg(&data->master->dev, @@ -1385,6 +1442,7 @@ master->num_chipselect = PCH_MAX_CS; master->setup = pch_spi_setup; master->transfer = pch_spi_transfer; + master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST; data->board_dat = board_dat; data->plat_dev = plat_dev; @@ -1717,7 +1775,7 @@ #endif -static struct pci_driver pch_spi_pcidev = { +static struct pci_driver pch_spi_pcidev_driver = { .name = "pch_spi", .id_table = pch_spi_pcidev_id, .probe = pch_spi_probe, @@ -1733,7 +1791,7 @@ if (ret) return ret; - ret = pci_register_driver(&pch_spi_pcidev); + ret = pci_register_driver(&pch_spi_pcidev_driver); if (ret) return ret; @@ -1743,7 +1801,7 @@ static void __exit pch_spi_exit(void) { - pci_unregister_driver(&pch_spi_pcidev); + pci_unregister_driver(&pch_spi_pcidev_driver); platform_driver_unregister(&pch_spi_pd_driver); } module_exit(pch_spi_exit); --- linux-3.2.0.orig/drivers/spi/spi-mpc512x-psc.c +++ linux-3.2.0/drivers/spi/spi-mpc512x-psc.c @@ -164,7 +164,7 @@ for (i = count; i > 0; i--) { data = tx_buf ? *tx_buf++ : 0; - if (len == EOFBYTE) + if (len == EOFBYTE && t->cs_change) setbits32(&fifo->txcmd, MPC512x_PSC_FIFO_EOF); out_8(&fifo->txdata_8, data); len--; --- linux-3.2.0.orig/drivers/spi/spi-fsl-spi.c +++ linux-3.2.0/drivers/spi/spi-fsl-spi.c @@ -139,10 +139,12 @@ static void fsl_spi_chipselect(struct spi_device *spi, int value) { struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(spi->master); - struct fsl_spi_platform_data *pdata = spi->dev.parent->platform_data; + struct fsl_spi_platform_data *pdata; bool pol = spi->mode & SPI_CS_HIGH; struct spi_mpc8xxx_cs *cs = spi->controller_state; + pdata = spi->dev.parent->parent->platform_data; + if (value == BITBANG_CS_INACTIVE) { if (pdata->cs_control) pdata->cs_control(spi, !pol); @@ -931,7 +933,7 @@ static void fsl_spi_cs_control(struct spi_device *spi, bool on) { - struct device *dev = spi->dev.parent; + struct device *dev = spi->dev.parent->parent; struct mpc8xxx_spi_probe_info *pinfo = to_of_pinfo(dev->platform_data); u16 cs = spi->chip_select; int gpio = pinfo->gpios[cs]; --- linux-3.2.0.orig/drivers/spi/spi.c +++ linux-3.2.0/drivers/spi/spi.c @@ -319,7 +319,7 @@ } spi->master = master; - spi->dev.parent = dev; + spi->dev.parent = &master->dev; spi->dev.bus = &spi_bus_type; spi->dev.release = spidev_release; device_initialize(&spi->dev); --- linux-3.2.0.orig/drivers/hv/Kconfig +++ linux-3.2.0/drivers/hv/Kconfig @@ -1,3 +1,5 @@ +menu "Microsoft Hyper-V guest support" + config HYPERV tristate "Microsoft Hyper-V client drivers" depends on X86 && ACPI && PCI @@ -11,4 +13,4 @@ help Select this option to enable the Hyper-V Utilities. - +endmenu --- linux-3.2.0.orig/drivers/hv/hv.c +++ linux-3.2.0/drivers/hv/hv.c @@ -155,20 +155,15 @@ union hv_x64_msr_hypercall_contents hypercall_msr; void *virtaddr = NULL; - memset(hv_context.synic_event_page, 0, sizeof(void *) * MAX_NUM_CPUS); + memset(hv_context.synic_event_page, 0, sizeof(void *) * NR_CPUS); memset(hv_context.synic_message_page, 0, - sizeof(void *) * MAX_NUM_CPUS); + sizeof(void *) * NR_CPUS); if (!query_hypervisor_presence()) goto cleanup; max_leaf = query_hypervisor_info(); - rdmsrl(HV_X64_MSR_GUEST_OS_ID, hv_context.guestid); - - if (hv_context.guestid != 0) - goto cleanup; - /* Write our OS info */ wrmsrl(HV_X64_MSR_GUEST_OS_ID, HV_LINUX_GUEST_ID); hv_context.guestid = HV_LINUX_GUEST_ID; @@ -237,6 +232,9 @@ { union hv_x64_msr_hypercall_contents hypercall_msr; + /* Reset our OS id */ + wrmsrl(HV_X64_MSR_GUEST_OS_ID, 0); + kfree(hv_context.signal_event_buffer); hv_context.signal_event_buffer = NULL; hv_context.signal_event_param = NULL; --- linux-3.2.0.orig/drivers/hv/hv_util.c +++ linux-3.2.0/drivers/hv/hv_util.c @@ -28,9 +28,6 @@ #include #include -#include "hv_kvp.h" - - static void shutdown_onchannelcallback(void *context); static struct hv_util_service util_shutdown = { .util_cb = shutdown_onchannelcallback, --- linux-3.2.0.orig/drivers/hv/hv_kvp.c +++ linux-3.2.0/drivers/hv/hv_kvp.c @@ -28,8 +28,6 @@ #include #include -#include "hv_kvp.h" - /* @@ -44,9 +42,10 @@ static struct { bool active; /* transaction status - active or not */ int recv_len; /* number of bytes received. */ - int index; /* current index */ + struct hv_kvp_msg *kvp_msg; /* current message */ struct vmbus_channel *recv_channel; /* chn we got the request */ u64 recv_req_id; /* request ID. */ + void *kvp_context; /* for the channel callback */ } kvp_transaction; static void kvp_send_key(struct work_struct *dummy); @@ -73,15 +72,20 @@ { struct cn_msg *msg; + struct hv_kvp_msg *kvp_msg; + char *version; - msg = kzalloc(sizeof(*msg) + strlen(HV_DRV_VERSION) + 1 , GFP_ATOMIC); + msg = kzalloc(sizeof(*msg) + sizeof(struct hv_kvp_msg), GFP_ATOMIC); if (msg) { + kvp_msg = (struct hv_kvp_msg *)msg->data; + version = kvp_msg->body.kvp_register.version; msg->id.idx = CN_KVP_IDX; msg->id.val = CN_KVP_VAL; - msg->seq = KVP_REGISTER; - strcpy(msg->data, HV_DRV_VERSION); - msg->len = strlen(HV_DRV_VERSION) + 1; + + kvp_msg->kvp_hdr.operation = KVP_OP_REGISTER; + strcpy(version, HV_DRV_VERSION); + msg->len = sizeof(struct hv_kvp_msg); cn_netlink_send(msg, 0, GFP_ATOMIC); kfree(msg); } @@ -103,23 +107,28 @@ static void kvp_cn_callback(struct cn_msg *msg, struct netlink_skb_parms *nsp) { - struct hv_ku_msg *message; + struct hv_kvp_msg *message; + struct hv_kvp_msg_enumerate *data; - message = (struct hv_ku_msg *)msg->data; - if (msg->seq == KVP_REGISTER) { + message = (struct hv_kvp_msg *)msg->data; + switch (message->kvp_hdr.operation) { + case KVP_OP_REGISTER: pr_info("KVP: user-mode registering done.\n"); kvp_register(); - } + kvp_transaction.active = false; + hv_kvp_onchannelcallback(kvp_transaction.kvp_context); + break; - if (msg->seq == KVP_USER_SET) { + default: + data = &message->body.kvp_enum_data; /* * Complete the transaction by forwarding the key value * to the host. But first, cancel the timeout. */ if (cancel_delayed_work_sync(&kvp_work)) - kvp_respond_to_host(message->kvp_key, - message->kvp_value, - !strlen(message->kvp_key)); + kvp_respond_to_host(data->data.key, + data->data.value, + !strlen(data->data.key)); } } @@ -127,19 +136,105 @@ kvp_send_key(struct work_struct *dummy) { struct cn_msg *msg; - int index = kvp_transaction.index; + struct hv_kvp_msg *message; + struct hv_kvp_msg *in_msg; + __u8 operation = kvp_transaction.kvp_msg->kvp_hdr.operation; + __u8 pool = kvp_transaction.kvp_msg->kvp_hdr.pool; + __u32 val32; + __u64 val64; msg = kzalloc(sizeof(*msg) + sizeof(struct hv_kvp_msg) , GFP_ATOMIC); + if (!msg) + return; - if (msg) { - msg->id.idx = CN_KVP_IDX; - msg->id.val = CN_KVP_VAL; - msg->seq = KVP_KERNEL_GET; - ((struct hv_ku_msg *)msg->data)->kvp_index = index; - msg->len = sizeof(struct hv_ku_msg); - cn_netlink_send(msg, 0, GFP_ATOMIC); - kfree(msg); + msg->id.idx = CN_KVP_IDX; + msg->id.val = CN_KVP_VAL; + + message = (struct hv_kvp_msg *)msg->data; + message->kvp_hdr.operation = operation; + message->kvp_hdr.pool = pool; + in_msg = kvp_transaction.kvp_msg; + + /* + * The key/value strings sent from the host are encoded in + * in utf16; convert it to utf8 strings. + * The host assures us that the utf16 strings will not exceed + * the max lengths specified. We will however, reserve room + * for the string terminating character - in the utf16s_utf8s() + * function we limit the size of the buffer where the converted + * string is placed to HV_KVP_EXCHANGE_MAX_*_SIZE -1 to gaurantee + * that the strings can be properly terminated! + */ + + switch (message->kvp_hdr.operation) { + case KVP_OP_SET: + switch (in_msg->body.kvp_set.data.value_type) { + case REG_SZ: + /* + * The value is a string - utf16 encoding. + */ + message->body.kvp_set.data.value_size = + utf16s_to_utf8s( + (wchar_t *)in_msg->body.kvp_set.data.value, + in_msg->body.kvp_set.data.value_size, + UTF16_LITTLE_ENDIAN, + message->body.kvp_set.data.value, + HV_KVP_EXCHANGE_MAX_VALUE_SIZE - 1) + 1; + break; + + case REG_U32: + /* + * The value is a 32 bit scalar. + * We save this as a utf8 string. + */ + val32 = in_msg->body.kvp_set.data.value_u32; + message->body.kvp_set.data.value_size = + sprintf(message->body.kvp_set.data.value, + "%d", val32) + 1; + break; + + case REG_U64: + /* + * The value is a 64 bit scalar. + * We save this as a utf8 string. + */ + val64 = in_msg->body.kvp_set.data.value_u64; + message->body.kvp_set.data.value_size = + sprintf(message->body.kvp_set.data.value, + "%llu", val64) + 1; + break; + + } + case KVP_OP_GET: + message->body.kvp_set.data.key_size = + utf16s_to_utf8s( + (wchar_t *)in_msg->body.kvp_set.data.key, + in_msg->body.kvp_set.data.key_size, + UTF16_LITTLE_ENDIAN, + message->body.kvp_set.data.key, + HV_KVP_EXCHANGE_MAX_KEY_SIZE - 1) + 1; + break; + + case KVP_OP_DELETE: + message->body.kvp_delete.key_size = + utf16s_to_utf8s( + (wchar_t *)in_msg->body.kvp_delete.key, + in_msg->body.kvp_delete.key_size, + UTF16_LITTLE_ENDIAN, + message->body.kvp_delete.key, + HV_KVP_EXCHANGE_MAX_KEY_SIZE - 1) + 1; + break; + + case KVP_OP_ENUMERATE: + message->body.kvp_enum_data.index = + in_msg->body.kvp_enum_data.index; + break; } + + msg->len = sizeof(struct hv_kvp_msg); + cn_netlink_send(msg, 0, GFP_ATOMIC); + kfree(msg); + return; } @@ -151,10 +246,11 @@ kvp_respond_to_host(char *key, char *value, int error) { struct hv_kvp_msg *kvp_msg; - struct hv_kvp_msg_enumerate *kvp_data; + struct hv_kvp_exchg_msg_value *kvp_data; char *key_name; struct icmsg_hdr *icmsghdrp; - int keylen, valuelen; + int keylen = 0; + int valuelen = 0; u32 buf_len; struct vmbus_channel *channel; u64 req_id; @@ -181,6 +277,9 @@ kvp_transaction.active = false; + icmsghdrp = (struct icmsg_hdr *) + &recv_buffer[sizeof(struct vmbuspipe_hdr)]; + if (channel->onchannel_callback == NULL) /* * We have raced with util driver being unloaded; @@ -188,39 +287,67 @@ */ return; - icmsghdrp = (struct icmsg_hdr *) - &recv_buffer[sizeof(struct vmbuspipe_hdr)]; - kvp_msg = (struct hv_kvp_msg *) - &recv_buffer[sizeof(struct vmbuspipe_hdr) + - sizeof(struct icmsg_hdr)]; - kvp_data = &kvp_msg->kvp_data; - key_name = key; /* - * If the error parameter is set, terminate the host's enumeration. + * If the error parameter is set, terminate the host's enumeration + * on this pool. */ if (error) { /* - * We don't support this index or the we have timedout; - * terminate the host-side iteration by returning an error. + * Something failed or the we have timedout; + * terminate the current host-side iteration. */ - icmsghdrp->status = HV_E_FAIL; + icmsghdrp->status = HV_S_CONT; goto response_done; } + icmsghdrp->status = HV_S_OK; + + kvp_msg = (struct hv_kvp_msg *) + &recv_buffer[sizeof(struct vmbuspipe_hdr) + + sizeof(struct icmsg_hdr)]; + + switch (kvp_transaction.kvp_msg->kvp_hdr.operation) { + case KVP_OP_GET: + kvp_data = &kvp_msg->body.kvp_get.data; + goto copy_value; + + case KVP_OP_SET: + case KVP_OP_DELETE: + goto response_done; + + default: + break; + } + + kvp_data = &kvp_msg->body.kvp_enum_data.data; + key_name = key; + /* * The windows host expects the key/value pair to be encoded - * in utf16. + * in utf16. Ensure that the key/value size reported to the host + * will be less than or equal to the MAX size (including the + * terminating character). */ - keylen = utf8s_to_utf16s(key_name, strlen(key_name), - (wchar_t *)kvp_data->data.key); - kvp_data->data.key_size = 2*(keylen + 1); /* utf16 encoding */ - valuelen = utf8s_to_utf16s(value, strlen(value), - (wchar_t *)kvp_data->data.value); - kvp_data->data.value_size = 2*(valuelen + 1); /* utf16 encoding */ + keylen = utf8s_to_utf16s(key_name, strlen(key_name), UTF16_HOST_ENDIAN, + (wchar_t *) kvp_data->key, + (HV_KVP_EXCHANGE_MAX_KEY_SIZE / 2) - 2); + kvp_data->key_size = 2*(keylen + 1); /* utf16 encoding */ + +copy_value: + valuelen = utf8s_to_utf16s(value, strlen(value), UTF16_HOST_ENDIAN, + (wchar_t *) kvp_data->value, + (HV_KVP_EXCHANGE_MAX_VALUE_SIZE / 2) - 2); + kvp_data->value_size = 2*(valuelen + 1); /* utf16 encoding */ - kvp_data->data.value_type = REG_SZ; /* all our values are strings */ - icmsghdrp->status = HV_S_OK; + /* + * If the utf8s to utf16s conversion failed; notify host + * of the error. + */ + if ((keylen < 0) || (valuelen < 0)) + icmsghdrp->status = HV_E_FAIL; + + kvp_data->value_type = REG_SZ; /* all our values are strings */ response_done: icmsghdrp->icflags = ICMSGHDRFLAG_TRANSACTION | ICMSGHDRFLAG_RESPONSE; @@ -247,11 +374,18 @@ u64 requestid; struct hv_kvp_msg *kvp_msg; - struct hv_kvp_msg_enumerate *kvp_data; struct icmsg_hdr *icmsghdrp; struct icmsg_negotiate *negop = NULL; + if (kvp_transaction.active) { + /* + * We will defer processing this callback once + * the current transaction is complete. + */ + kvp_transaction.kvp_context = context; + return; + } vmbus_recvpacket(channel, recv_buffer, PAGE_SIZE, &recvlen, &requestid); @@ -266,29 +400,16 @@ sizeof(struct vmbuspipe_hdr) + sizeof(struct icmsg_hdr)]; - kvp_data = &kvp_msg->kvp_data; - - /* - * We only support the "get" operation on - * "KVP_POOL_AUTO" pool. - */ - - if ((kvp_msg->kvp_hdr.pool != KVP_POOL_AUTO) || - (kvp_msg->kvp_hdr.operation != - KVP_OP_ENUMERATE)) { - icmsghdrp->status = HV_E_FAIL; - goto callback_done; - } - /* * Stash away this global state for completing the * transaction; note transactions are serialized. */ + kvp_transaction.recv_len = recvlen; kvp_transaction.recv_channel = channel; kvp_transaction.recv_req_id = requestid; kvp_transaction.active = true; - kvp_transaction.index = kvp_data->index; + kvp_transaction.kvp_msg = kvp_msg; /* * Get the information from the @@ -306,8 +427,6 @@ } -callback_done: - icmsghdrp->icflags = ICMSGHDRFLAG_TRANSACTION | ICMSGHDRFLAG_RESPONSE; @@ -328,6 +447,14 @@ return err; recv_buffer = srv->recv_buffer; + /* + * When this driver loads, the user level daemon that + * processes the host requests may not yet be running. + * Defer processing channel callbacks until the daemon + * has registered. + */ + kvp_transaction.active = true; + return 0; } --- linux-3.2.0.orig/drivers/hv/hyperv_vmbus.h +++ linux-3.2.0/drivers/hv/hyperv_vmbus.h @@ -457,7 +457,6 @@ }, }; -#define MAX_NUM_CPUS 32 struct hv_input_signal_event_buffer { @@ -483,8 +482,8 @@ /* 8-bytes aligned of the buffer above */ struct hv_input_signal_event *signal_event_param; - void *synic_message_page[MAX_NUM_CPUS]; - void *synic_event_page[MAX_NUM_CPUS]; + void *synic_message_page[NR_CPUS]; + void *synic_event_page[NR_CPUS]; }; extern struct hv_context hv_context; @@ -611,6 +610,7 @@ struct vmbus_channel *relid2channel(u32 relid); +void vmbus_free_channels(void); /* Connection interface */ --- linux-3.2.0.orig/drivers/hv/channel_mgmt.c +++ linux-3.2.0/drivers/hv/channel_mgmt.c @@ -37,81 +37,6 @@ void (*message_handler)(struct vmbus_channel_message_header *msg); }; -#define MAX_MSG_TYPES 4 -#define MAX_NUM_DEVICE_CLASSES_SUPPORTED 8 - -static const uuid_le - supported_device_classes[MAX_NUM_DEVICE_CLASSES_SUPPORTED] = { - /* {ba6163d9-04a1-4d29-b605-72e2ffb1dc7f} */ - /* Storage - SCSI */ - { - .b = { - 0xd9, 0x63, 0x61, 0xba, 0xa1, 0x04, 0x29, 0x4d, - 0xb6, 0x05, 0x72, 0xe2, 0xff, 0xb1, 0xdc, 0x7f - } - }, - - /* {F8615163-DF3E-46c5-913F-F2D2F965ED0E} */ - /* Network */ - { - .b = { - 0x63, 0x51, 0x61, 0xF8, 0x3E, 0xDF, 0xc5, 0x46, - 0x91, 0x3F, 0xF2, 0xD2, 0xF9, 0x65, 0xED, 0x0E - } - }, - - /* {CFA8B69E-5B4A-4cc0-B98B-8BA1A1F3F95A} */ - /* Input */ - { - .b = { - 0x9E, 0xB6, 0xA8, 0xCF, 0x4A, 0x5B, 0xc0, 0x4c, - 0xB9, 0x8B, 0x8B, 0xA1, 0xA1, 0xF3, 0xF9, 0x5A - } - }, - - /* {32412632-86cb-44a2-9b5c-50d1417354f5} */ - /* IDE */ - { - .b = { - 0x32, 0x26, 0x41, 0x32, 0xcb, 0x86, 0xa2, 0x44, - 0x9b, 0x5c, 0x50, 0xd1, 0x41, 0x73, 0x54, 0xf5 - } - }, - /* 0E0B6031-5213-4934-818B-38D90CED39DB */ - /* Shutdown */ - { - .b = { - 0x31, 0x60, 0x0B, 0X0E, 0x13, 0x52, 0x34, 0x49, - 0x81, 0x8B, 0x38, 0XD9, 0x0C, 0xED, 0x39, 0xDB - } - }, - /* {9527E630-D0AE-497b-ADCE-E80AB0175CAF} */ - /* TimeSync */ - { - .b = { - 0x30, 0xe6, 0x27, 0x95, 0xae, 0xd0, 0x7b, 0x49, - 0xad, 0xce, 0xe8, 0x0a, 0xb0, 0x17, 0x5c, 0xaf - } - }, - /* {57164f39-9115-4e78-ab55-382f3bd5422d} */ - /* Heartbeat */ - { - .b = { - 0x39, 0x4f, 0x16, 0x57, 0x15, 0x91, 0x78, 0x4e, - 0xab, 0x55, 0x38, 0x2f, 0x3b, 0xd5, 0x42, 0x2d - } - }, - /* {A9A0F4E7-5A45-4d96-B827-8A841E8C03E6} */ - /* KVP */ - { - .b = { - 0xe7, 0xf4, 0xa0, 0xa9, 0x45, 0x5a, 0x96, 0x4d, - 0xb8, 0x27, 0x8a, 0x84, 0x1e, 0x8c, 0x3, 0xe6 - } - }, - -}; - /** * vmbus_prep_negotiate_resp() - Create default response for Hyper-V Negotiate message @@ -223,6 +148,17 @@ vmbus_device_unregister(channel->device_obj); } +void vmbus_free_channels(void) +{ + struct vmbus_channel *channel; + + list_for_each_entry(channel, &vmbus_connection.chn_list, listentry) { + vmbus_device_unregister(channel->device_obj); + kfree(channel->device_obj); + free_channel(channel); + } +} + /* * vmbus_process_offer - Process the offer by creating a channel/device * associated with this offer @@ -287,6 +223,7 @@ spin_lock_irqsave(&vmbus_connection.channel_lock, flags); list_del(&newchannel->listentry); spin_unlock_irqrestore(&vmbus_connection.channel_lock, flags); + kfree(newchannel->device_obj); free_channel(newchannel); } else { @@ -309,20 +246,8 @@ struct vmbus_channel *newchannel; uuid_le *guidtype; uuid_le *guidinstance; - int i; - int fsupported = 0; offer = (struct vmbus_channel_offer_channel *)hdr; - for (i = 0; i < MAX_NUM_DEVICE_CLASSES_SUPPORTED; i++) { - if (!uuid_le_cmp(offer->offer.if_type, - supported_device_classes[i])) { - fsupported = 1; - break; - } - } - - if (!fsupported) - return; guidtype = &offer->offer.if_type; guidinstance = &offer->offer.if_instance; --- linux-3.2.0.orig/drivers/hv/vmbus_drv.c +++ linux-3.2.0/drivers/hv/vmbus_drv.c @@ -62,6 +62,14 @@ struct hv_dev_port_info outbound; }; +static int vmbus_exists(void) +{ + if (hv_acpi_dev == NULL) + return -ENODEV; + + return 0; +} + static void get_channel_info(struct hv_device *device, struct hv_device_info *info) @@ -458,7 +466,7 @@ * will not deliver any more messages since there is * no empty slot */ - smp_mb(); + mb(); if (msg->header.message_flags.msg_pending) { /* @@ -590,6 +598,10 @@ pr_info("registering driver %s\n", hv_driver->name); + ret = vmbus_exists(); + if (ret < 0) + return ret; + hv_driver->driver.name = hv_driver->name; hv_driver->driver.owner = owner; hv_driver->driver.mod_name = mod_name; @@ -614,8 +626,8 @@ { pr_info("unregistering driver %s\n", hv_driver->name); - driver_unregister(&hv_driver->driver); - + if (!vmbus_exists()) + driver_unregister(&hv_driver->driver); } EXPORT_SYMBOL_GPL(vmbus_driver_unregister); @@ -776,11 +788,23 @@ cleanup: acpi_bus_unregister_driver(&vmbus_acpi_driver); + hv_acpi_dev = NULL; return ret; } +static void __exit vmbus_exit(void) +{ + + free_irq(irq, hv_acpi_dev); + vmbus_free_channels(); + bus_unregister(&hv_bus); + hv_cleanup(); + acpi_bus_unregister_driver(&vmbus_acpi_driver); +} + MODULE_LICENSE("GPL"); MODULE_VERSION(HV_DRV_VERSION); -module_init(hv_acpi_init); +subsys_initcall(hv_acpi_init); +module_exit(vmbus_exit); --- linux-3.2.0.orig/drivers/hv/channel.c +++ linux-3.2.0/drivers/hv/channel.c @@ -146,14 +146,14 @@ if (ret != 0) { err = ret; - goto errorout; + goto error0; } ret = hv_ringbuffer_init( &newchannel->inbound, in, recv_ringbuffer_size); if (ret != 0) { err = ret; - goto errorout; + goto error0; } @@ -168,7 +168,7 @@ if (ret != 0) { err = ret; - goto errorout; + goto error0; } /* Create and init the channel open message */ @@ -177,7 +177,7 @@ GFP_KERNEL); if (!open_info) { err = -ENOMEM; - goto errorout; + goto error0; } init_completion(&open_info->waitevent); @@ -193,7 +193,7 @@ if (userdatalen > MAX_USER_DEFINED_BYTES) { err = -EINVAL; - goto errorout; + goto error0; } if (userdatalen) @@ -208,19 +208,18 @@ sizeof(struct vmbus_channel_open_channel)); if (ret != 0) - goto cleanup; + goto error1; t = wait_for_completion_timeout(&open_info->waitevent, 5*HZ); if (t == 0) { err = -ETIMEDOUT; - goto errorout; + goto error1; } if (open_info->response.open_result.status) err = open_info->response.open_result.status; -cleanup: spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags); list_del(&open_info->msglistentry); spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags); @@ -228,9 +227,12 @@ kfree(open_info); return err; -errorout: - hv_ringbuffer_cleanup(&newchannel->outbound); - hv_ringbuffer_cleanup(&newchannel->inbound); +error1: + spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags); + list_del(&open_info->msglistentry); + spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags); + +error0: free_pages((unsigned long)out, get_order(send_ringbuffer_size + recv_ringbuffer_size)); kfree(open_info); --- linux-3.2.0.orig/drivers/hv/ring_buffer.c +++ linux-3.2.0/drivers/hv/ring_buffer.c @@ -383,7 +383,7 @@ sizeof(u64)); /* Make sure we flush all writes before updating the writeIndex */ - smp_wmb(); + wmb(); /* Now, update the write location */ hv_set_next_write_location(outring_info, next_write_location); --- linux-3.2.0.orig/drivers/leds/leds-lp5521.c +++ linux-3.2.0/drivers/leds/leds-lp5521.c @@ -198,9 +198,14 @@ /* move current engine to direct mode and remember the state */ ret = lp5521_set_engine_mode(eng, LP5521_CMD_DIRECT); + if (ret) + return ret; + /* Mode change requires min 500 us delay. 1 - 2 ms with margin */ usleep_range(1000, 2000); - ret |= lp5521_read(client, LP5521_REG_OP_MODE, &mode); + ret = lp5521_read(client, LP5521_REG_OP_MODE, &mode); + if (ret) + return ret; /* For loading, all the engines to load mode */ lp5521_write(client, LP5521_REG_OP_MODE, LP5521_CMD_DIRECT); @@ -216,8 +221,7 @@ LP5521_PROG_MEM_SIZE, pattern); - ret |= lp5521_write(client, LP5521_REG_OP_MODE, mode); - return ret; + return lp5521_write(client, LP5521_REG_OP_MODE, mode); } static int lp5521_set_led_current(struct lp5521_chip *chip, int led, u8 curr) @@ -692,9 +696,9 @@ * otherwise further access to the R G B channels in the * LP5521_REG_ENABLE register will not have any effect - strange! */ - lp5521_read(client, LP5521_REG_R_CURRENT, &buf); - if (buf != LP5521_REG_R_CURR_DEFAULT) { - dev_err(&client->dev, "error in reseting chip\n"); + ret = lp5521_read(client, LP5521_REG_R_CURRENT, &buf); + if (ret || buf != LP5521_REG_R_CURR_DEFAULT) { + dev_err(&client->dev, "error in resetting chip\n"); goto fail2; } usleep_range(10000, 20000); --- linux-3.2.0.orig/drivers/platform/x86/asus-nb-wmi.c +++ linux-3.2.0/drivers/platform/x86/asus-nb-wmi.c @@ -51,9 +51,13 @@ module_param(wapf, uint, 0444); MODULE_PARM_DESC(wapf, "WAPF value"); +static struct quirk_entry quirk_asus_unknown = { +}; + static void asus_nb_wmi_quirks(struct asus_wmi_driver *driver) { - driver->wapf = wapf; + driver->quirks = &quirk_asus_unknown; + driver->quirks->wapf = wapf; } static const struct key_entry asus_nb_wmi_keymap[] = { @@ -86,6 +90,10 @@ { KE_KEY, 0x8A, { KEY_PROG1 } }, { KE_KEY, 0x95, { KEY_MEDIA } }, { KE_KEY, 0x99, { KEY_PHONE } }, + { KE_KEY, 0xA0, { KEY_SWITCHVIDEOMODE } }, /* SDSP HDMI only */ + { KE_KEY, 0xA1, { KEY_SWITCHVIDEOMODE } }, /* SDSP LCD + HDMI */ + { KE_KEY, 0xA2, { KEY_SWITCHVIDEOMODE } }, /* SDSP CRT + HDMI */ + { KE_KEY, 0xA3, { KEY_SWITCHVIDEOMODE } }, /* SDSP TV + HDMI */ { KE_KEY, 0xb5, { KEY_CALC } }, { KE_KEY, 0xc4, { KEY_KBDILLUMUP } }, { KE_KEY, 0xc5, { KEY_KBDILLUMDOWN } }, @@ -99,7 +107,7 @@ .keymap = asus_nb_wmi_keymap, .input_name = "Asus WMI hotkeys", .input_phys = ASUS_NB_WMI_FILE "/input0", - .quirks = asus_nb_wmi_quirks, + .detect_quirks = asus_nb_wmi_quirks, }; --- linux-3.2.0.orig/drivers/platform/x86/Kconfig +++ linux-3.2.0/drivers/platform/x86/Kconfig @@ -580,6 +580,7 @@ config ACPI_TOSHIBA tristate "Toshiba Laptop Extras" depends on ACPI + depends on ACPI_WMI select LEDS_CLASS select NEW_LEDS depends on BACKLIGHT_CLASS_DEVICE @@ -779,4 +780,14 @@ This driver provides support for backlight control on Samsung Q10 and related laptops, including Dell Latitude X200. +config APPLE_GMUX + tristate "Apple Gmux Driver" + depends on PNP + select BACKLIGHT_CLASS_DEVICE + ---help--- + This driver provides support for the gmux device found on many + Apple laptops, which controls the display mux for the hybrid + graphics as well as the backlight. Currently only backlight + control is supported by the driver. + endif # X86_PLATFORM_DEVICES --- linux-3.2.0.orig/drivers/platform/x86/hp_accel.c +++ linux-3.2.0/drivers/platform/x86/hp_accel.c @@ -362,7 +362,8 @@ static int lis3lv02d_resume(struct acpi_device *device) { - return lis3lv02d_poweron(&lis3_dev); + lis3lv02d_poweron(&lis3_dev); + return 0; } #else #define lis3lv02d_suspend NULL --- linux-3.2.0.orig/drivers/platform/x86/sony-laptop.c +++ linux-3.2.0/drivers/platform/x86/sony-laptop.c @@ -127,7 +127,7 @@ "default is -1 (automatic)"); #endif -static int kbd_backlight; /* = 1 */ +static int kbd_backlight = 1; module_param(kbd_backlight, int, 0444); MODULE_PARM_DESC(kbd_backlight, "set this to 0 to disable keyboard backlight, " @@ -1879,6 +1879,10 @@ struct sonypi_event *events; }; +struct sony_pic_quirk_entry { + u8 set_wwan_power; +}; + struct sony_pic_dev { struct acpi_device *acpi_dev; struct sony_pic_irq *cur_irq; @@ -1889,6 +1893,7 @@ struct sonypi_eventtypes *event_types; int (*handle_irq)(const u8, const u8); int model; + struct sony_pic_quirk_entry *quirks; u16 evport_offset; u8 camera_power; u8 bluetooth_power; @@ -3315,6 +3320,12 @@ if (result) goto err_remove_pf; + if (spic_dev.quirks && spic_dev.quirks->set_wwan_power) { + /* + * Power isn't enabled by default. + */ + __sony_pic_set_wwanpower(1); + } return 0; err_remove_pf: @@ -3385,6 +3396,16 @@ }, }; +static struct sony_pic_quirk_entry sony_pic_vaio_vgn = { + .set_wwan_power = 1, +}; + +static int dmi_matched(const struct dmi_system_id *dmi) +{ + spic_dev.quirks = dmi->driver_data; + return 0; +} + static struct dmi_system_id __initdata sonypi_dmi_table[] = { { .ident = "Sony Vaio", @@ -3399,6 +3420,8 @@ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), DMI_MATCH(DMI_PRODUCT_NAME, "VGN-"), }, + .callback = dmi_matched, + .driver_data = &sony_pic_vaio_vgn, }, { } }; --- linux-3.2.0.orig/drivers/platform/x86/asus-wmi.c +++ linux-3.2.0/drivers/platform/x86/asus-wmi.c @@ -784,7 +784,8 @@ arfkill->dev_id = dev_id; arfkill->asus = asus; - if (dev_id == ASUS_WMI_DEVID_WLAN && asus->driver->hotplug_wireless) + if (dev_id == ASUS_WMI_DEVID_WLAN && + asus->driver->quirks->hotplug_wireless) *rfkill = rfkill_alloc(name, &asus->platform_device->dev, type, &asus_rfkill_wlan_ops, arfkill); else @@ -895,7 +896,7 @@ if (result && result != -ENODEV) goto exit; - if (!asus->driver->hotplug_wireless) + if (!asus->driver->quirks->hotplug_wireless) goto exit; result = asus_setup_pci_hotplug(asus); @@ -1075,7 +1076,12 @@ */ static int read_backlight_power(struct asus_wmi *asus) { - int ret = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_BACKLIGHT); + int ret; + if (asus->driver->quirks->store_backlight_power) + ret = !asus->driver->panel_power; + else + ret = asus_wmi_get_devstate_simple(asus, + ASUS_WMI_DEVID_BACKLIGHT); if (ret < 0) return ret; @@ -1116,25 +1122,44 @@ return retval & ASUS_WMI_DSTS_BRIGHTNESS_MASK; } -static int update_bl_status(struct backlight_device *bd) +static u32 get_scalar_command(struct backlight_device *bd) { struct asus_wmi *asus = bl_get_data(bd); - u32 ctrl_param; - int power, err; + u32 ctrl_param = 0; - ctrl_param = bd->props.brightness; + if ((asus->driver->brightness < bd->props.brightness) || + bd->props.brightness == bd->props.max_brightness) + ctrl_param = 0x00008001; + else if ((asus->driver->brightness > bd->props.brightness) || + bd->props.brightness == 0) + ctrl_param = 0x00008000; - err = asus_wmi_set_devstate(ASUS_WMI_DEVID_BRIGHTNESS, - ctrl_param, NULL); + asus->driver->brightness = bd->props.brightness; - if (err < 0) - return err; + return ctrl_param; +} + +static int update_bl_status(struct backlight_device *bd) +{ + struct asus_wmi *asus = bl_get_data(bd); + u32 ctrl_param; + int power, err = 0; power = read_backlight_power(asus); if (power != -ENODEV && bd->props.power != power) { ctrl_param = !!(bd->props.power == FB_BLANK_UNBLANK); err = asus_wmi_set_devstate(ASUS_WMI_DEVID_BACKLIGHT, ctrl_param, NULL); + if (asus->driver->quirks->store_backlight_power) + asus->driver->panel_power = bd->props.power; + } else { + if (asus->driver->quirks->scalar_panel_brightness) + ctrl_param = get_scalar_command(bd); + else + ctrl_param = bd->props.brightness; + + err = asus_wmi_set_devstate(ASUS_WMI_DEVID_BRIGHTNESS, + ctrl_param, NULL); } return err; } @@ -1196,10 +1221,15 @@ asus->backlight_device = bd; + if (asus->driver->quirks->store_backlight_power) + asus->driver->panel_power = power; + bd->props.brightness = read_brightness(bd); bd->props.power = power; backlight_update_status(bd); + asus->driver->brightness = bd->props.brightness; + return 0; } @@ -1431,19 +1461,14 @@ */ if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS, 0, 0, NULL)) asus->dsts_id = ASUS_WMI_METHODID_DSTS; - else if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL)) + else asus->dsts_id = ASUS_WMI_METHODID_DSTS2; - if (!asus->dsts_id) { - pr_err("Can't find DSTS"); - return -ENODEV; - } - /* CWAP allow to define the behavior of the Fn+F2 key, * this method doesn't seems to be present on Eee PCs */ - if (asus->driver->wapf >= 0) + if (asus->driver->quirks->wapf >= 0) asus_wmi_set_devstate(ASUS_WMI_DEVID_CWAP, - asus->driver->wapf, NULL); + asus->driver->quirks->wapf, NULL); return asus_wmi_sysfs_init(asus->platform_device); } @@ -1622,8 +1647,8 @@ wdrv->platform_device = pdev; platform_set_drvdata(asus->platform_device, asus); - if (wdrv->quirks) - wdrv->quirks(asus->driver); + if (wdrv->detect_quirks) + wdrv->detect_quirks(asus->driver); err = asus_wmi_platform_init(asus); if (err) --- linux-3.2.0.orig/drivers/platform/x86/eeepc-wmi.c +++ linux-3.2.0/drivers/platform/x86/eeepc-wmi.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include "asus-wmi.h" @@ -87,6 +88,69 @@ { KE_END, 0}, }; +static struct quirk_entry quirk_asus_unknown = { +}; + +static struct quirk_entry quirk_asus_1000h = { + .hotplug_wireless = true, +}; + +static struct quirk_entry quirk_asus_et2012_type1 = { + .store_backlight_power = true, +}; + +static struct quirk_entry quirk_asus_et2012_type3 = { + .scalar_panel_brightness = true, + .store_backlight_power = true, +}; + +static struct quirk_entry *quirks; + +static int dmi_matched(const struct dmi_system_id *dmi) +{ + char *model; + quirks = dmi->driver_data; + + model = (char *)dmi->matches[1].substr; + if (unlikely(strncmp(model, "ET2012", 6) == 0)) { + const struct dmi_device *dev = NULL; + char oemstring[30]; + while ((dev = dmi_find_device(DMI_DEV_TYPE_OEM_STRING, + NULL, dev))) { + if (sscanf(dev->name, "AEMS%24c", oemstring) == 1) { + if (oemstring[18] == '1') + quirks = &quirk_asus_et2012_type1; + else if (oemstring[18] == '3') + quirks = &quirk_asus_et2012_type3; + break; + } + } + } + return 1; +} + +static struct dmi_system_id asus_quirks[] = { + { + .callback = dmi_matched, + .ident = "ASUSTeK Computer INC. 1000H", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "1000H"), + }, + .driver_data = &quirk_asus_1000h, + }, + { + .callback = dmi_matched, + .ident = "ASUSTeK Computer INC. ET2012E/I", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "ET2012"), + }, + .driver_data = &quirk_asus_unknown, + }, + {}, +}; + static void eeepc_wmi_key_filter(struct asus_wmi_driver *asus_wmi, int *code, unsigned int *value, bool *autorelease) { @@ -141,33 +205,16 @@ return 0; } -static void eeepc_dmi_check(struct asus_wmi_driver *driver) +static void eeepc_wmi_quirks(struct asus_wmi_driver *driver) { - const char *model; + quirks = &quirk_asus_unknown; + quirks->hotplug_wireless = hotplug_wireless; - model = dmi_get_system_info(DMI_PRODUCT_NAME); - if (!model) - return; - - /* - * Whitelist for wlan hotplug - * - * Asus 1000H needs the current hotplug code to handle - * Fn+F2 correctly. We may add other Asus here later, but - * it seems that most of the laptops supported by asus-wmi - * don't need to be on this list - */ - if (strcmp(model, "1000H") == 0) { - driver->hotplug_wireless = true; - pr_info("wlan hotplug enabled\n"); - } -} + dmi_check_system(asus_quirks); -static void eeepc_wmi_quirks(struct asus_wmi_driver *driver) -{ - driver->hotplug_wireless = hotplug_wireless; - driver->wapf = -1; - eeepc_dmi_check(driver); + driver->quirks = quirks; + driver->quirks->wapf = -1; + driver->panel_power = FB_BLANK_UNBLANK; } static struct asus_wmi_driver asus_wmi_driver = { @@ -179,7 +226,7 @@ .input_phys = EEEPC_WMI_FILE "/input0", .key_filter = eeepc_wmi_key_filter, .probe = eeepc_wmi_probe, - .quirks = eeepc_wmi_quirks, + .detect_quirks = eeepc_wmi_quirks, }; --- linux-3.2.0.orig/drivers/platform/x86/dell-laptop.c +++ linux-3.2.0/drivers/platform/x86/dell-laptop.c @@ -119,6 +119,29 @@ }; static struct dmi_system_id __devinitdata dell_blacklist[] = { + /* dell_laptop breaks rfkill behavior (LP: #901410) */ + { + .ident = "Dell XPS 13z", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Dell System XPS L321X"), + }, + }, + /* dell_laptop breaks rfkill behavior (LP: #1030957) */ + { + .ident = "Dell XPS 13z", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Dell System XPS L322X"), + }, + }, + { + .ident = "Dell XPS 15", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Dell System XPS L502X"), + }, + }, /* Supported by compal-laptop */ { .ident = "Dell Mini 9", @@ -184,6 +207,34 @@ }, .driver_data = &quirk_dell_vostro_v130, }, + { + .callback = dmi_matched, + .ident = "Dell Vostro 3555", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3555"), + }, + .driver_data = &quirk_dell_vostro_v130, + }, + { + .callback = dmi_matched, + .ident = "Dell Inspiron N311z", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron N311z"), + }, + .driver_data = &quirk_dell_vostro_v130, + }, + { + .callback = dmi_matched, + .ident = "Dell Inspiron M5110", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron M5110"), + }, + .driver_data = &quirk_dell_vostro_v130, + }, + { } }; static struct calling_interface_buffer *buffer; @@ -615,6 +666,7 @@ static struct led_classdev touchpad_led = { .name = "dell-laptop::touchpad", .brightness_set = touchpad_led_set, + .flags = LED_CORE_SUSPENDRESUME, }; static int __devinit touchpad_led_init(struct device *dev) --- linux-3.2.0.orig/drivers/platform/x86/samsung-laptop.c +++ linux-3.2.0/drivers/platform/x86/samsung-laptop.c @@ -21,6 +21,8 @@ #include #include #include +#include +#include /* * This driver is needed because a number of Samsung laptops do not hook @@ -226,6 +228,7 @@ static struct mutex sabi_mutex; static struct platform_device *sdev; static struct rfkill *rfk; +static bool handle_backlight; static bool has_stepping_quirk; static int force; @@ -579,6 +582,16 @@ .callback = dmi_check_cb, }, { + .ident = "N150P", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, + "SAMSUNG ELECTRONICS CO., LTD."), + DMI_MATCH(DMI_PRODUCT_NAME, "N150P"), + DMI_MATCH(DMI_BOARD_NAME, "N150P"), + }, + .callback = dmi_check_cb, + }, + { .ident = "X125", .matches = { DMI_MATCH(DMI_SYS_VENDOR, @@ -812,7 +825,17 @@ int loca; int retval; + if (efi_enabled(EFI_BOOT)) + return -ENODEV; + mutex_init(&sabi_mutex); + handle_backlight = true; + +#ifdef CONFIG_ACPI + /* Don't handle backlight here if the acpi video already handle it */ + if (acpi_video_backlight_support()) + handle_backlight = false; +#endif if (!force && !dmi_check_system(samsung_dmi_table)) return -ENODEV; @@ -870,7 +893,8 @@ printk(KERN_DEBUG "ifaceP = 0x%08x\n", ifaceP); printk(KERN_DEBUG "sabi_iface = %p\n", sabi_iface); - test_backlight(); + if (handle_backlight) + test_backlight(); test_wireless(); retval = sabi_get_command(sabi_config->commands.get_brightness, @@ -889,13 +913,23 @@ } /* Check for stepping quirk */ - check_for_stepping_quirk(); + if (handle_backlight) + check_for_stepping_quirk(); + +#ifdef CONFIG_ACPI + /* Only log that if we are really on a sabi platform */ + if (acpi_video_backlight_support()) + pr_info("Backlight controlled by ACPI video driver\n"); +#endif /* knock up a platform device to hang stuff off of */ sdev = platform_device_register_simple("samsung", -1, NULL, 0); if (IS_ERR(sdev)) goto error_no_platform; + if (!handle_backlight) + goto skip_backlight; + /* create a backlight device to talk to this one */ memset(&props, 0, sizeof(struct backlight_properties)); props.type = BACKLIGHT_PLATFORM; @@ -911,6 +945,7 @@ backlight_device->props.power = FB_BLANK_UNBLANK; backlight_update_status(backlight_device); +skip_backlight: retval = init_wireless(sdev); if (retval) goto error_no_rfk; --- linux-3.2.0.orig/drivers/platform/x86/Makefile +++ linux-3.2.0/drivers/platform/x86/Makefile @@ -29,7 +29,11 @@ obj-$(CONFIG_MSI_WMI) += msi-wmi.o obj-$(CONFIG_ACPI_ASUS) += asus_acpi.o obj-$(CONFIG_TOPSTAR_LAPTOP) += topstar-laptop.o + +# toshiba_acpi must link after wmi to ensure that wmi devices are found +# before toshiba_acpi initializes obj-$(CONFIG_ACPI_TOSHIBA) += toshiba_acpi.o + obj-$(CONFIG_TOSHIBA_BT_RFKILL) += toshiba_bluetooth.o obj-$(CONFIG_INTEL_SCU_IPC) += intel_scu_ipc.o obj-$(CONFIG_INTEL_SCU_IPC_UTIL) += intel_scu_ipcutil.o @@ -45,3 +49,4 @@ obj-$(CONFIG_INTEL_MID_POWER_BUTTON) += intel_mid_powerbtn.o obj-$(CONFIG_INTEL_OAKTRAIL) += intel_oaktrail.o obj-$(CONFIG_SAMSUNG_Q10) += samsung-q10.o +obj-$(CONFIG_APPLE_GMUX) += apple-gmux.o --- linux-3.2.0.orig/drivers/platform/x86/dell-wmi.c +++ linux-3.2.0/drivers/platform/x86/dell-wmi.c @@ -165,7 +165,7 @@ u16 *buffer_entry = (u16 *)obj->buffer.pointer; if (dell_new_hk_type && (buffer_entry[1] != 0x10)) { - pr_info("Received unknown WMI event (0x%x)\n", + pr_debug("Received unknown WMI event (0x%x)\n", buffer_entry[1]); kfree(obj); return; --- linux-3.2.0.orig/drivers/platform/x86/asus-laptop.c +++ linux-3.2.0/drivers/platform/x86/asus-laptop.c @@ -820,12 +820,14 @@ /* * The HWRS method return informations about the hardware. * 0x80 bit is for WLAN, 0x100 for Bluetooth. + * 0x40 for WWAN, 0x10 for WIMAX. * The significance of others is yet to be found. - * If we don't find the method, we assume the device are present. + * We don't currently use this for device detection, and it + * takes several seconds to run on some systems. */ - rv = acpi_evaluate_integer(asus->handle, "HRWS", NULL, &temp); + rv = acpi_evaluate_integer(asus->handle, "HWRS", NULL, &temp); if (!ACPI_FAILURE(rv)) - len += sprintf(page + len, "HRWS value : %#x\n", + len += sprintf(page + len, "HWRS value : %#x\n", (uint) temp); /* * Another value for userspace: the ASYM method returns 0x02 for @@ -1591,7 +1593,7 @@ { struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; union acpi_object *model = NULL; - unsigned long long bsts_result, hwrs_result; + unsigned long long bsts_result; char *string = NULL; acpi_status status; @@ -1653,17 +1655,6 @@ if (*string) pr_notice(" %s model detected\n", string); - /* - * The HWRS method return informations about the hardware. - * 0x80 bit is for WLAN, 0x100 for Bluetooth, - * 0x40 for WWAN, 0x10 for WIMAX. - * The significance of others is yet to be found. - */ - status = - acpi_evaluate_integer(asus->handle, "HRWS", NULL, &hwrs_result); - if (!ACPI_FAILURE(status)) - pr_notice(" HRWS returned %x", (int)hwrs_result); - if (!acpi_check_handle(asus->handle, METHOD_WL_STATUS, NULL)) asus->have_rsts = true; --- linux-3.2.0.orig/drivers/platform/x86/thinkpad_acpi.c +++ linux-3.2.0/drivers/platform/x86/thinkpad_acpi.c @@ -3405,7 +3405,7 @@ /* Do not issue duplicate brightness change events to * userspace. tpacpi_detect_brightness_capabilities() must have * been called before this point */ - if (tp_features.bright_acpimode && acpi_video_backlight_support()) { + if (acpi_video_backlight_support()) { pr_info("This ThinkPad has standard ACPI backlight " "brightness control, supported by the ACPI " "video driver\n"); @@ -8661,10 +8661,17 @@ } s = dmi_get_system_info(DMI_PRODUCT_VERSION); - if (s && !strnicmp(s, "ThinkPad", 8)) { + if (s && !(strnicmp(s, "ThinkPad", 8) && strnicmp(s, "Lenovo", 6))) { tp->model_str = kstrdup(s, GFP_KERNEL); if (!tp->model_str) return -ENOMEM; + } else { + s = dmi_get_system_info(DMI_BIOS_VENDOR); + if (s && !(strnicmp(s, "Lenovo", 6))) { + tp->model_str = kstrdup(s, GFP_KERNEL); + if (!tp->model_str) + return -ENOMEM; + } } s = dmi_get_system_info(DMI_PRODUCT_NAME); --- linux-3.2.0.orig/drivers/platform/x86/ideapad-laptop.c +++ linux-3.2.0/drivers/platform/x86/ideapad-laptop.c @@ -785,6 +785,10 @@ case 9: ideapad_sync_rfk_state(priv); break; + case 13: + case 6: + ideapad_input_report(priv, vpc_bit); + break; case 4: ideapad_backlight_notify_brightness(priv); break; @@ -795,7 +799,7 @@ ideapad_backlight_notify_power(priv); break; default: - ideapad_input_report(priv, vpc_bit); + pr_info("Unknown event: %lu\n", vpc_bit); } } } --- linux-3.2.0.orig/drivers/platform/x86/acer-wmi.c +++ linux-3.2.0/drivers/platform/x86/acer-wmi.c @@ -105,6 +105,7 @@ {KE_KEY, 0x22, {KEY_PROG2} }, /* Arcade */ {KE_KEY, 0x23, {KEY_PROG3} }, /* P_Key */ {KE_KEY, 0x24, {KEY_PROG4} }, /* Social networking_Key */ + {KE_KEY, 0x29, {KEY_PROG3} }, /* P_Key for TM8372 */ {KE_IGNORE, 0x41, {KEY_MUTE} }, {KE_IGNORE, 0x42, {KEY_PREVIOUSSONG} }, {KE_IGNORE, 0x43, {KEY_NEXTSONG} }, @@ -679,6 +680,33 @@ return AE_OK; } +static int AMW0_set_cap_acpi_check_device_found; + +static acpi_status AMW0_set_cap_acpi_check_device_cb(acpi_handle handle, + u32 level, void *context, void **retval) +{ + AMW0_set_cap_acpi_check_device_found = 1; + return AE_OK; +} + +static const struct acpi_device_id norfkill_ids[] = { + { "VPC2004", 0}, + { "IBM0068", 0}, + { "LEN0068", 0}, + { "SNY5001", 0}, /* sony-laptop in charge */ + { "", 0}, +}; + +static int AMW0_set_cap_acpi_check_device(void) +{ + const struct acpi_device_id *id; + + for (id = norfkill_ids; id->id[0]; id++) + acpi_get_devices(id->id, AMW0_set_cap_acpi_check_device_cb, + NULL, NULL); + return AMW0_set_cap_acpi_check_device_found; +} + static acpi_status AMW0_set_capabilities(void) { struct wmab_args args; @@ -692,7 +720,9 @@ * work. */ if (wmi_has_guid(AMW0_GUID2)) { - interface->capability |= ACER_CAP_WIRELESS; + if ((quirks != &quirk_unknown) || + !AMW0_set_cap_acpi_check_device()) + interface->capability |= ACER_CAP_WIRELESS; return AE_OK; } --- linux-3.2.0.orig/drivers/platform/x86/apple-gmux.c +++ linux-3.2.0/drivers/platform/x86/apple-gmux.c @@ -0,0 +1,242 @@ +/* + * Gmux driver for Apple laptops + * + * Copyright (C) Canonical Ltd. + * + * 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. + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include +#include +#include +#include +#include +#include + +struct apple_gmux_data { + unsigned long iostart; + unsigned long iolen; + + struct backlight_device *bdev; +}; + +/* + * gmux port offsets. Many of these are not yet used, but may be in the + * future, and it's useful to have them documented here anyhow. + */ +#define GMUX_PORT_VERSION_MAJOR 0x04 +#define GMUX_PORT_VERSION_MINOR 0x05 +#define GMUX_PORT_VERSION_RELEASE 0x06 +#define GMUX_PORT_SWITCH_DISPLAY 0x10 +#define GMUX_PORT_SWITCH_GET_DISPLAY 0x11 +#define GMUX_PORT_INTERRUPT_ENABLE 0x14 +#define GMUX_PORT_INTERRUPT_STATUS 0x16 +#define GMUX_PORT_SWITCH_DDC 0x28 +#define GMUX_PORT_SWITCH_EXTERNAL 0x40 +#define GMUX_PORT_SWITCH_GET_EXTERNAL 0x41 +#define GMUX_PORT_DISCRETE_POWER 0x50 +#define GMUX_PORT_MAX_BRIGHTNESS 0x70 +#define GMUX_PORT_BRIGHTNESS 0x74 + +#define GMUX_MIN_IO_LEN (GMUX_PORT_BRIGHTNESS + 4) + +#define GMUX_INTERRUPT_ENABLE 0xff +#define GMUX_INTERRUPT_DISABLE 0x00 + +#define GMUX_INTERRUPT_STATUS_ACTIVE 0 +#define GMUX_INTERRUPT_STATUS_DISPLAY (1 << 0) +#define GMUX_INTERRUPT_STATUS_POWER (1 << 2) +#define GMUX_INTERRUPT_STATUS_HOTPLUG (1 << 3) + +#define GMUX_BRIGHTNESS_MASK 0x00ffffff +#define GMUX_MAX_BRIGHTNESS GMUX_BRIGHTNESS_MASK + +static inline u8 gmux_read8(struct apple_gmux_data *gmux_data, int port) +{ + return inb(gmux_data->iostart + port); +} + +static inline void gmux_write8(struct apple_gmux_data *gmux_data, int port, + u8 val) +{ + outb(val, gmux_data->iostart + port); +} + +static inline u32 gmux_read32(struct apple_gmux_data *gmux_data, int port) +{ + return inl(gmux_data->iostart + port); +} + +static int gmux_get_brightness(struct backlight_device *bd) +{ + struct apple_gmux_data *gmux_data = bl_get_data(bd); + return gmux_read32(gmux_data, GMUX_PORT_BRIGHTNESS) & + GMUX_BRIGHTNESS_MASK; +} + +static int gmux_update_status(struct backlight_device *bd) +{ + struct apple_gmux_data *gmux_data = bl_get_data(bd); + u32 brightness = bd->props.brightness; + + /* + * Older gmux versions require writing out lower bytes first then + * setting the upper byte to 0 to flush the values. Newer versions + * accept a single u32 write, but the old method also works, so we + * just use the old method for all gmux versions. + */ + gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS, brightness); + gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 1, brightness >> 8); + gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 2, brightness >> 16); + gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 3, 0); + + return 0; +} + +static const struct backlight_ops gmux_bl_ops = { + .get_brightness = gmux_get_brightness, + .update_status = gmux_update_status, +}; + +static int __devinit gmux_probe(struct pnp_dev *pnp, + const struct pnp_device_id *id) +{ + struct apple_gmux_data *gmux_data; + struct resource *res; + struct backlight_properties props; + struct backlight_device *bdev; + u8 ver_major, ver_minor, ver_release; + int ret = -ENXIO; + + gmux_data = kzalloc(sizeof(*gmux_data), GFP_KERNEL); + if (!gmux_data) + return -ENOMEM; + pnp_set_drvdata(pnp, gmux_data); + + res = pnp_get_resource(pnp, IORESOURCE_IO, 0); + if (!res) { + pr_err("Failed to find gmux I/O resource\n"); + goto err_free; + } + + gmux_data->iostart = res->start; + gmux_data->iolen = res->end - res->start; + + if (gmux_data->iolen < GMUX_MIN_IO_LEN) { + pr_err("gmux I/O region too small (%lu < %u)\n", + gmux_data->iolen, GMUX_MIN_IO_LEN); + goto err_free; + } + + if (!request_region(gmux_data->iostart, gmux_data->iolen, + "Apple gmux")) { + pr_err("gmux I/O already in use\n"); + goto err_free; + } + + /* + * On some machines the gmux is in ACPI even thought the machine + * doesn't really have a gmux. Check for invalid version information + * to detect this. + */ + ver_major = gmux_read8(gmux_data, GMUX_PORT_VERSION_MAJOR); + ver_minor = gmux_read8(gmux_data, GMUX_PORT_VERSION_MINOR); + ver_release = gmux_read8(gmux_data, GMUX_PORT_VERSION_RELEASE); + if (ver_major == 0xff && ver_minor == 0xff && ver_release == 0xff) { + pr_info("gmux device not present\n"); + ret = -ENODEV; + goto err_release; + } + + pr_info("Found gmux version %d.%d.%d\n", ver_major, ver_minor, + ver_release); + + memset(&props, 0, sizeof(props)); + props.type = BACKLIGHT_PLATFORM; + props.max_brightness = gmux_read32(gmux_data, GMUX_PORT_MAX_BRIGHTNESS); + + /* + * Currently it's assumed that the maximum brightness is less than + * 2^24 for compatibility with old gmux versions. Cap the max + * brightness at this value, but print a warning if the hardware + * reports something higher so that it can be fixed. + */ + if (WARN_ON(props.max_brightness > GMUX_MAX_BRIGHTNESS)) + props.max_brightness = GMUX_MAX_BRIGHTNESS; + + bdev = backlight_device_register("gmux_backlight", &pnp->dev, + gmux_data, &gmux_bl_ops, &props); + if (IS_ERR(bdev)) { + ret = PTR_ERR(bdev); + goto err_release; + } + + gmux_data->bdev = bdev; + bdev->props.brightness = gmux_get_brightness(bdev); + backlight_update_status(bdev); + + /* + * The backlight situation on Macs is complicated. If the gmux is + * present it's the best choice, because it always works for + * backlight control and supports more levels than other options. + * Disable the other backlight choices. + */ + acpi_video_unregister(); + apple_bl_unregister(); + + return 0; + +err_release: + release_region(gmux_data->iostart, gmux_data->iolen); +err_free: + kfree(gmux_data); + return ret; +} + +static void __devexit gmux_remove(struct pnp_dev *pnp) +{ + struct apple_gmux_data *gmux_data = pnp_get_drvdata(pnp); + + backlight_device_unregister(gmux_data->bdev); + release_region(gmux_data->iostart, gmux_data->iolen); + kfree(gmux_data); + + acpi_video_register(); + apple_bl_register(); +} + +static const struct pnp_device_id gmux_device_ids[] = { + {"APP000B", 0}, + {"", 0} +}; + +static struct pnp_driver gmux_pnp_driver = { + .name = "apple-gmux", + .probe = gmux_probe, + .remove = __devexit_p(gmux_remove), + .id_table = gmux_device_ids, +}; + +static int __init apple_gmux_init(void) +{ + return pnp_register_driver(&gmux_pnp_driver); +} + +static void __exit apple_gmux_exit(void) +{ + pnp_unregister_driver(&gmux_pnp_driver); +} + +module_init(apple_gmux_init); +module_exit(apple_gmux_exit); + +MODULE_AUTHOR("Seth Forshee "); +MODULE_DESCRIPTION("Apple Gmux Driver"); +MODULE_LICENSE("GPL"); +MODULE_DEVICE_TABLE(pnp, gmux_device_ids); --- linux-3.2.0.orig/drivers/platform/x86/intel_ips.c +++ linux-3.2.0/drivers/platform/x86/intel_ips.c @@ -72,6 +72,7 @@ #include #include #include +#include #include #include #include @@ -1505,6 +1506,32 @@ MODULE_DEVICE_TABLE(pci, ips_id_table); +static int ips_blacklist_callback(const struct dmi_system_id *id) +{ + pr_info("Blacklisted intel_ips for %s\n", id->ident); + return 1; +} + +static const struct dmi_system_id ips_blacklist[] = { + { + .callback = ips_blacklist_callback, + .ident = "HP ProBook", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + 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 */ +}; + static int ips_probe(struct pci_dev *dev, const struct pci_device_id *id) { u64 platform_info; @@ -1514,6 +1541,9 @@ u16 htshi, trc, trc_required_mask; u8 tse; + if (dmi_check_system(ips_blacklist)) + return -ENODEV; + ips = kzalloc(sizeof(struct ips_driver), GFP_KERNEL); if (!ips) return -ENOMEM; --- linux-3.2.0.orig/drivers/platform/x86/asus-wmi.h +++ linux-3.2.0/drivers/platform/x86/asus-wmi.h @@ -35,9 +35,16 @@ struct key_entry; struct asus_wmi; +struct quirk_entry { + bool hotplug_wireless; + bool scalar_panel_brightness; + bool store_backlight_power; + int wapf; +}; + struct asus_wmi_driver { - bool hotplug_wireless; - int wapf; + int brightness; + int panel_power; const char *name; struct module *owner; @@ -47,13 +54,14 @@ const struct key_entry *keymap; const char *input_name; const char *input_phys; + struct quirk_entry *quirks; /* Returns new code, value, and autorelease values in arguments. * Return ASUS_WMI_KEY_IGNORE in code if event should be ignored. */ void (*key_filter) (struct asus_wmi_driver *driver, int *code, unsigned int *value, bool *autorelease); int (*probe) (struct platform_device *device); - void (*quirks) (struct asus_wmi_driver *driver); + void (*detect_quirks) (struct asus_wmi_driver *driver); struct platform_driver platform_driver; struct platform_device *platform_device; --- linux-3.2.0.orig/drivers/platform/x86/ibm_rtl.c +++ linux-3.2.0/drivers/platform/x86/ibm_rtl.c @@ -255,7 +255,7 @@ if (force) pr_warn("module loaded by force\n"); /* first ensure that we are running on IBM HW */ - else if (efi_enabled || !dmi_check_system(ibm_rtl_dmi_table)) + else if (efi_enabled(EFI_BOOT) || !dmi_check_system(ibm_rtl_dmi_table)) return -ENODEV; /* Get the address for the Extended BIOS Data Area */ --- linux-3.2.0.orig/drivers/platform/x86/toshiba_acpi.c +++ linux-3.2.0/drivers/platform/x86/toshiba_acpi.c @@ -52,6 +52,8 @@ #include #include #include +#include +#include #include @@ -61,6 +63,11 @@ MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver"); MODULE_LICENSE("GPL"); +#define TOSHIBA_WMI_EVENT_GUID "59142400-C6A3-40FA-BADB-8A2652834100" + +/* Scan code for Fn key on TOS1900 models */ +#define TOS1900_FN_SCAN 0x6e + /* Toshiba ACPI method paths */ #define METHOD_VIDEO_OUT "\\_SB_.VALX.DSSX" @@ -95,6 +102,8 @@ #define HCI_WIRELESS 0x0056 /* field definitions */ +#define HCI_HOTKEY_DISABLE 0x0b +#define HCI_HOTKEY_ENABLE 0x09 #define HCI_LCD_BRIGHTNESS_BITS 3 #define HCI_LCD_BRIGHTNESS_SHIFT (16-HCI_LCD_BRIGHTNESS_BITS) #define HCI_LCD_BRIGHTNESS_LEVELS (1 << HCI_LCD_BRIGHTNESS_BITS) @@ -111,6 +120,7 @@ const char *method_hci; struct rfkill *bt_rfk; struct input_dev *hotkey_dev; + struct work_struct hotkey_work; struct backlight_device *backlight_dev; struct led_classdev led_dev; @@ -118,14 +128,18 @@ int last_key_event; int key_event_valid; - int illumination_supported:1; - int video_supported:1; - int fan_supported:1; - int system_event_supported:1; + unsigned int illumination_supported:1; + unsigned int video_supported:1; + unsigned int fan_supported:1; + unsigned int system_event_supported:1; + unsigned int ntfy_supported:1; + unsigned int info_supported:1; struct mutex mutex; }; +static struct toshiba_acpi_dev *toshiba_acpi; + static const struct acpi_device_id toshiba_device_ids[] = { {"TOS6200", 0}, {"TOS6208", 0}, @@ -138,6 +152,8 @@ { KE_KEY, 0x101, { KEY_MUTE } }, { KE_KEY, 0x102, { KEY_ZOOMOUT } }, { KE_KEY, 0x103, { KEY_ZOOMIN } }, + { KE_KEY, 0x12c, { KEY_KBDILLUMTOGGLE } }, + { KE_KEY, 0x139, { KEY_ZOOMRESET } }, { KE_KEY, 0x13b, { KEY_COFFEE } }, { KE_KEY, 0x13c, { KEY_BATTERY } }, { KE_KEY, 0x13d, { KEY_SLEEP } }, @@ -146,7 +162,7 @@ { KE_KEY, 0x140, { KEY_BRIGHTNESSDOWN } }, { KE_KEY, 0x141, { KEY_BRIGHTNESSUP } }, { KE_KEY, 0x142, { KEY_WLAN } }, - { KE_KEY, 0x143, { KEY_PROG1 } }, + { KE_KEY, 0x143, { KEY_TOUCHPAD_TOGGLE } }, { KE_KEY, 0x17f, { KEY_FN } }, { KE_KEY, 0xb05, { KEY_PROG2 } }, { KE_KEY, 0xb06, { KEY_WWW } }, @@ -156,6 +172,7 @@ { KE_KEY, 0xb32, { KEY_NEXTSONG } }, { KE_KEY, 0xb33, { KEY_PLAYPAUSE } }, { KE_KEY, 0xb5a, { KEY_MEDIA } }, + { KE_IGNORE, 0x1430, { KEY_RESERVED } }, { KE_END, 0 }, }; @@ -847,10 +864,78 @@ .update_status = set_lcd_status, }; +static bool toshiba_acpi_i8042_filter(unsigned char data, unsigned char str, + struct serio *port) +{ + if (str & 0x20) + return false; + + if (unlikely(data == 0xe0)) + return false; + + if ((data & 0x7f) == TOS1900_FN_SCAN) { + schedule_work(&toshiba_acpi->hotkey_work); + return true; + } + + return false; +} + +static void toshiba_acpi_hotkey_work(struct work_struct *work) +{ + acpi_handle ec_handle = ec_get_handle(); + acpi_status status; + + if (!ec_handle) + return; + + status = acpi_evaluate_object(ec_handle, "NTFY", NULL, NULL); + if (ACPI_FAILURE(status)) + pr_err("ACPI NTFY method execution failed\n"); +} + +/* + * Returns hotkey scancode, or < 0 on failure. + */ +static int toshiba_acpi_query_hotkey(struct toshiba_acpi_dev *dev) +{ + struct acpi_buffer buf; + union acpi_object out_obj; + acpi_status status; + + buf.pointer = &out_obj; + buf.length = sizeof(out_obj); + + status = acpi_evaluate_object(dev->acpi_dev->handle, "INFO", + NULL, &buf); + if (ACPI_FAILURE(status) || out_obj.type != ACPI_TYPE_INTEGER) { + pr_err("ACPI INFO method execution failed\n"); + return -EIO; + } + + return out_obj.integer.value; +} + +static void toshiba_acpi_report_hotkey(struct toshiba_acpi_dev *dev, + int scancode) +{ + if (scancode == 0x100) + return; + + /* act on key press; ignore key release */ + if (scancode & 0x80) + return; + + if (!sparse_keymap_report_event(dev->hotkey_dev, scancode, 1, true)) + pr_info("Unknown key %x\n", scancode); +} + static int __devinit toshiba_acpi_setup_keyboard(struct toshiba_acpi_dev *dev) { acpi_status status; + acpi_handle ec_handle, handle; int error; + u32 hci_result; dev->hotkey_dev = input_allocate_device(); if (!dev->hotkey_dev) { @@ -866,21 +951,67 @@ if (error) goto err_free_dev; + /* + * For some machines the SCI responsible for providing hotkey + * notification doesn't fire. We can trigger the notification + * whenever the Fn key is pressed using the NTFY method, if + * supported, so if it's present set up an i8042 key filter + * for this purpose. + */ + status = AE_ERROR; + ec_handle = ec_get_handle(); + if (ec_handle) + status = acpi_get_handle(ec_handle, "NTFY", &handle); + + if (ACPI_SUCCESS(status)) { + INIT_WORK(&dev->hotkey_work, toshiba_acpi_hotkey_work); + + error = i8042_install_filter(toshiba_acpi_i8042_filter); + if (error) { + pr_err("Error installing key filter\n"); + goto err_free_keymap; + } + + dev->ntfy_supported = 1; + } + + /* + * Determine hotkey query interface. Prefer using the INFO + * method when it is available. + */ + status = acpi_get_handle(dev->acpi_dev->handle, "INFO", &handle); + if (ACPI_SUCCESS(status)) { + dev->info_supported = 1; + } else { + hci_write1(dev, HCI_SYSTEM_EVENT, 1, &hci_result); + if (hci_result == HCI_SUCCESS) + dev->system_event_supported = 1; + } + + if (!dev->info_supported && !dev->system_event_supported) { + pr_warn("No hotkey query interface found\n"); + goto err_remove_filter; + } + status = acpi_evaluate_object(dev->acpi_dev->handle, "ENAB", NULL, NULL); if (ACPI_FAILURE(status)) { pr_info("Unable to enable hotkeys\n"); error = -ENODEV; - goto err_free_keymap; + goto err_remove_filter; } error = input_register_device(dev->hotkey_dev); if (error) { pr_info("Unable to register input device\n"); - goto err_free_keymap; + goto err_remove_filter; } + hci_write1(dev, HCI_HOTKEY_EVENT, HCI_HOTKEY_ENABLE, &hci_result); return 0; + err_remove_filter: + if (dev->ntfy_supported) + i8042_remove_filter(toshiba_acpi_i8042_filter); err_free_keymap: sparse_keymap_free(dev->hotkey_dev); err_free_dev: @@ -895,6 +1026,11 @@ remove_toshiba_proc_entries(dev); + if (dev->ntfy_supported) { + i8042_remove_filter(toshiba_acpi_i8042_filter); + cancel_work_sync(&dev->hotkey_work); + } + if (dev->hotkey_dev) { input_unregister_device(dev->hotkey_dev); sparse_keymap_free(dev->hotkey_dev); @@ -911,6 +1047,9 @@ if (dev->illumination_supported) led_classdev_unregister(&dev->led_dev); + if (toshiba_acpi) + toshiba_acpi = NULL; + kfree(dev); return 0; @@ -936,12 +1075,14 @@ { struct toshiba_acpi_dev *dev; const char *hci_method; - u32 hci_result; u32 dummy; bool bt_present; int ret = 0; struct backlight_properties props; + if (toshiba_acpi) + return -EBUSY; + pr_info("Toshiba Laptop ACPI Extras version %s\n", TOSHIBA_ACPI_VERSION); @@ -963,11 +1104,6 @@ mutex_init(&dev->mutex); - /* enable event fifo */ - hci_write1(dev, HCI_SYSTEM_EVENT, 1, &hci_result); - if (hci_result == HCI_SUCCESS) - dev->system_event_supported = 1; - props.type = BACKLIGHT_PLATFORM; props.max_brightness = HCI_LCD_BRIGHTNESS_LEVELS - 1; dev->backlight_dev = backlight_device_register("toshiba", @@ -1024,6 +1160,8 @@ create_toshiba_proc_entries(dev); + toshiba_acpi = dev; + return 0; error: @@ -1036,40 +1174,64 @@ struct toshiba_acpi_dev *dev = acpi_driver_data(acpi_dev); u32 hci_result, value; int retries = 3; + int scancode; - if (!dev->system_event_supported || event != 0x80) + if (event != 0x80) return; - do { - hci_read1(dev, HCI_SYSTEM_EVENT, &value, &hci_result); - switch (hci_result) { - case HCI_SUCCESS: - if (value == 0x100) - continue; - /* act on key press; ignore key release */ - if (value & 0x80) - continue; - - if (!sparse_keymap_report_event(dev->hotkey_dev, - value, 1, true)) { - pr_info("Unknown key %x\n", - value); + if (dev->info_supported) { + scancode = toshiba_acpi_query_hotkey(dev); + if (scancode < 0) + pr_err("Failed to query hotkey event\n"); + else if (scancode != 0) + toshiba_acpi_report_hotkey(dev, scancode); + } else if (dev->system_event_supported) { + do { + hci_read1(dev, HCI_SYSTEM_EVENT, &value, &hci_result); + switch (hci_result) { + case HCI_SUCCESS: + toshiba_acpi_report_hotkey(dev, (int)value); + break; + case HCI_NOT_SUPPORTED: + /* + * This is a workaround for an unresolved + * issue on some machines where system events + * sporadically become disabled. + */ + hci_write1(dev, HCI_SYSTEM_EVENT, 1, + &hci_result); + pr_notice("Re-enabled hotkeys\n"); + /* fall through */ + default: + retries--; + break; } - break; - case HCI_NOT_SUPPORTED: - /* This is a workaround for an unresolved issue on - * some machines where system events sporadically - * become disabled. */ - hci_write1(dev, HCI_SYSTEM_EVENT, 1, &hci_result); - pr_notice("Re-enabled hotkeys\n"); - /* fall through */ - default: - retries--; - break; - } - } while (retries && hci_result != HCI_EMPTY); + } while (retries && hci_result != HCI_EMPTY); + } +} + +static int toshiba_acpi_suspend(struct acpi_device *acpi_dev, + pm_message_t state) +{ + struct toshiba_acpi_dev *dev = acpi_driver_data(acpi_dev); + u32 result; + + if (dev->hotkey_dev) + hci_write1(dev, HCI_HOTKEY_EVENT, HCI_HOTKEY_DISABLE, &result); + + return 0; } +static int toshiba_acpi_resume(struct acpi_device *acpi_dev) +{ + struct toshiba_acpi_dev *dev = acpi_driver_data(acpi_dev); + u32 result; + + if (dev->hotkey_dev) + hci_write1(dev, HCI_HOTKEY_EVENT, HCI_HOTKEY_ENABLE, &result); + + return 0; +} static struct acpi_driver toshiba_acpi_driver = { .name = "Toshiba ACPI driver", @@ -1080,6 +1242,8 @@ .add = toshiba_acpi_add, .remove = toshiba_acpi_remove, .notify = toshiba_acpi_notify, + .suspend = toshiba_acpi_suspend, + .resume = toshiba_acpi_resume, }, }; @@ -1087,6 +1251,14 @@ { int ret; + /* + * Machines with this WMI guid aren't supported due to bugs in + * their AML. This check relies on wmi initializing before + * toshiba_acpi to guarantee guids have been identified. + */ + if (wmi_has_guid(TOSHIBA_WMI_EVENT_GUID)) + return -ENODEV; + toshiba_proc_dir = proc_mkdir(PROC_TOSHIBA, acpi_root_dir); if (!toshiba_proc_dir) { pr_err("Unable to create proc dir " PROC_TOSHIBA "\n"); --- linux-3.2.0.orig/drivers/platform/x86/msi-wmi.c +++ linux-3.2.0/drivers/platform/x86/msi-wmi.c @@ -176,7 +176,7 @@ pr_debug("Suppressed key event 0x%X - " "Last press was %lld us ago\n", key->code, ktime_to_us(diff)); - return; + goto msi_wmi_notify_exit; } last_pressed[key->code - SCANCODE_BASE] = cur; @@ -195,6 +195,8 @@ pr_info("Unknown key pressed - %x\n", eventcode); } else pr_info("Unknown event received\n"); + +msi_wmi_notify_exit: kfree(response.pointer); } --- linux-3.2.0.orig/drivers/virtio/virtio_ring.c +++ linux-3.2.0/drivers/virtio/virtio_ring.c @@ -121,6 +121,13 @@ unsigned head; int i; + /* + * We require lowmem mappings for the descriptors because + * otherwise virt_to_phys will give us bogus addresses in the + * virtqueue. + */ + gfp &= ~(__GFP_HIGHMEM | __GFP_HIGH); + desc = kmalloc((out + in) * sizeof(struct vring_desc), gfp); if (!desc) return -ENOMEM; @@ -353,9 +360,22 @@ } EXPORT_SYMBOL_GPL(virtqueue_disable_cb); -bool virtqueue_enable_cb(struct virtqueue *_vq) +/** + * virtqueue_enable_cb_prepare - restart callbacks after disable_cb + * @vq: the struct virtqueue we're talking about. + * + * This re-enables callbacks; it returns current queue state + * in an opaque unsigned value. This value should be later tested by + * virtqueue_poll, to detect a possible race between the driver checking for + * more work, and enabling callbacks. + * + * Caller must ensure we don't call this with other virtqueue + * operations at the same time (except where noted). + */ +unsigned virtqueue_enable_cb_prepare(struct virtqueue *_vq) { struct vring_virtqueue *vq = to_vvq(_vq); + u16 last_used_idx; START_USE(vq); @@ -365,15 +385,45 @@ * either clear the flags bit or point the event index at the next * entry. Always do both to keep code simple. */ vq->vring.avail->flags &= ~VRING_AVAIL_F_NO_INTERRUPT; - vring_used_event(&vq->vring) = vq->last_used_idx; + vring_used_event(&vq->vring) = last_used_idx = vq->last_used_idx; + END_USE(vq); + return last_used_idx; +} +EXPORT_SYMBOL_GPL(virtqueue_enable_cb_prepare); + +/** + * virtqueue_poll - query pending used buffers + * @vq: the struct virtqueue we're talking about. + * @last_used_idx: virtqueue state (from call to virtqueue_enable_cb_prepare). + * + * Returns "true" if there are pending used buffers in the queue. + * + * This does not need to be serialized. + */ +bool virtqueue_poll(struct virtqueue *_vq, unsigned last_used_idx) +{ + struct vring_virtqueue *vq = to_vvq(_vq); + virtio_mb(); - if (unlikely(more_used(vq))) { - END_USE(vq); - return false; - } + return (u16)last_used_idx != vq->vring.used->idx; +} +EXPORT_SYMBOL_GPL(virtqueue_poll); - END_USE(vq); - return true; +/** + * virtqueue_enable_cb - restart callbacks after disable_cb. + * @vq: the struct virtqueue we're talking about. + * + * This re-enables callbacks; it returns "false" if there are pending + * buffers in the queue, to detect a possible race between the driver + * checking for more work, and enabling callbacks. + * + * Caller must ensure we don't call this with other virtqueue + * operations at the same time (except where noted). + */ +bool virtqueue_enable_cb(struct virtqueue *_vq) +{ + unsigned last_used_idx = virtqueue_enable_cb_prepare(_vq); + return !virtqueue_poll(_vq, last_used_idx); } EXPORT_SYMBOL_GPL(virtqueue_enable_cb); --- linux-3.2.0.orig/drivers/crypto/Kconfig +++ linux-3.2.0/drivers/crypto/Kconfig @@ -173,6 +173,7 @@ select CRYPTO_ALGAPI select CRYPTO_AES select CRYPTO_BLKCIPHER2 + select CRYPTO_HASH help This driver allows you to utilize the Cryptographic Engines and Security Accelerator (CESA) which can be found on the Marvell Orion --- linux-3.2.0.orig/drivers/crypto/mv_cesa.c +++ linux-3.2.0/drivers/crypto/mv_cesa.c @@ -714,6 +714,7 @@ { struct mv_req_hash_ctx *ctx = ahash_request_ctx(req); + ahash_request_set_crypt(req, NULL, req->result, 0); mv_update_hash_req_ctx(ctx, 1, 0); return mv_handle_req(&req->base); } --- linux-3.2.0.orig/drivers/pnp/quirks.c +++ linux-3.2.0/drivers/pnp/quirks.c @@ -295,6 +295,45 @@ } } +#ifdef CONFIG_AMD_NB + +#include + +static void quirk_amd_mmconfig_area(struct pnp_dev *dev) +{ + resource_size_t start, end; + struct pnp_resource *pnp_res; + struct resource *res; + struct resource mmconfig_res, *mmconfig; + + mmconfig = amd_get_mmconfig_range(&mmconfig_res); + if (!mmconfig) + return; + + list_for_each_entry(pnp_res, &dev->resources, list) { + res = &pnp_res->res; + if (res->end < mmconfig->start || res->start > mmconfig->end || + (res->start == mmconfig->start && res->end == mmconfig->end)) + continue; + + dev_info(&dev->dev, FW_BUG + "%pR covers only part of AMD MMCONFIG area %pR; adding more reservations\n", + res, mmconfig); + if (mmconfig->start < res->start) { + start = mmconfig->start; + end = res->start - 1; + pnp_add_mem_resource(dev, start, end, 0); + } + if (mmconfig->end > res->end) { + start = res->end + 1; + end = mmconfig->end; + pnp_add_mem_resource(dev, start, end, 0); + } + break; + } +} +#endif + /* * PnP Quirks * Cards or devices that need some tweaking due to incomplete resource info @@ -322,6 +361,9 @@ /* PnP resources that might overlap PCI BARs */ {"PNP0c01", quirk_system_pci_resources}, {"PNP0c02", quirk_system_pci_resources}, +#ifdef CONFIG_AMD_NB + {"PNP0c01", quirk_amd_mmconfig_area}, +#endif {""} }; --- linux-3.2.0.orig/drivers/pnp/pnpacpi/core.c +++ linux-3.2.0/drivers/pnp/pnpacpi/core.c @@ -58,7 +58,7 @@ if (!(('0' <= (c) && (c) <= '9') || ('A' <= (c) && (c) <= 'F'))) \ return 0 #define TEST_ALPHA(c) \ - if (!('@' <= (c) || (c) <= 'Z')) \ + if (!('A' <= (c) && (c) <= 'Z')) \ return 0 static int __init ispnpidacpi(const char *id) { @@ -95,6 +95,9 @@ return -ENODEV; } + if (WARN_ON_ONCE(acpi_dev != dev->data)) + dev->data = acpi_dev; + ret = pnpacpi_build_resource_template(dev, &buffer); if (ret) return ret; @@ -321,9 +324,14 @@ { struct acpi_device *acpi = to_acpi_device(dev); struct pnp_dev *pnp = _pnp; + struct device *physical_device; + + physical_device = acpi_get_physical_device(acpi->handle); + if (physical_device) + put_device(physical_device); /* true means it matched */ - return !acpi_get_physical_device(acpi->handle) + return !physical_device && compare_pnp_id(pnp->id, acpi_device_hid(acpi)); } --- linux-3.2.0.orig/drivers/pnp/isapnp/core.c +++ linux-3.2.0/drivers/pnp/isapnp/core.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include "../base.h" @@ -1001,7 +1002,7 @@ .disable = isapnp_disable_resources, }; -static int __init isapnp_init(void) +static int __init real_isapnp_init(void) { int cards; struct pnp_card *card; @@ -1095,6 +1096,15 @@ 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); +} device_initcall(isapnp_init); /* format is: noisapnp */ --- linux-3.2.0.orig/drivers/parport/Kconfig +++ linux-3.2.0/drivers/parport/Kconfig @@ -36,7 +36,7 @@ config PARPORT_PC tristate "PC-style hardware" depends on (!SPARC64 || PCI) && !SPARC32 && !M32R && !FRV && \ - (!M68K || ISA) && !MN10300 && !AVR32 && !BLACKFIN + (!M68K || ISA) && !MN10300 && !AVR32 && !BLACKFIN && !ARCH_OMAP ---help--- You should say Y here if you have a PC-style parallel port. All IBM PC compatible computers and some Alphas have PC-style --- linux-3.2.0.orig/drivers/atm/solos-pci.c +++ linux-3.2.0/drivers/atm/solos-pci.c @@ -967,10 +967,11 @@ for (port = 0; tx_pending; tx_pending >>= 1, port++) { if (tx_pending & 1) { struct sk_buff *oldskb = card->tx_skb[port]; - if (oldskb) + if (oldskb) { pci_unmap_single(card->dev, SKB_CB(oldskb)->dma_addr, oldskb->len, PCI_DMA_TODEVICE); - + card->tx_skb[port] = NULL; + } spin_lock(&card->tx_queue_lock); skb = skb_dequeue(&card->tx_queue[port]); if (!skb) @@ -984,6 +985,7 @@ } else if (skb && card->using_dma) { SKB_CB(skb)->dma_addr = pci_map_single(card->dev, skb->data, skb->len, PCI_DMA_TODEVICE); + card->tx_skb[port] = skb; iowrite32(SKB_CB(skb)->dma_addr, card->config_regs + TX_DMA_ADDR(port)); } @@ -1152,7 +1154,8 @@ db_fpga_upgrade = db_firmware_upgrade = 0; } - if (card->fpga_version >= DMA_SUPPORTED){ + if (card->fpga_version >= DMA_SUPPORTED) { + pci_set_master(dev); card->using_dma = 1; } else { card->using_dma = 0; --- linux-3.2.0.orig/drivers/atm/iphase.h +++ linux-3.2.0/drivers/atm/iphase.h @@ -636,82 +636,82 @@ #define SEG_BASE IPHASE5575_FRAG_CONTROL_REG_BASE #define REASS_BASE IPHASE5575_REASS_CONTROL_REG_BASE -typedef volatile u_int freg_t; +typedef volatile u_int ffreg_t; typedef u_int rreg_t; typedef struct _ffredn_t { - freg_t idlehead_high; /* Idle cell header (high) */ - freg_t idlehead_low; /* Idle cell header (low) */ - freg_t maxrate; /* Maximum rate */ - freg_t stparms; /* Traffic Management Parameters */ - freg_t abrubr_abr; /* ABRUBR Priority Byte 1, TCR Byte 0 */ - freg_t rm_type; /* */ - u_int filler5[0x17 - 0x06]; - freg_t cmd_reg; /* Command register */ - u_int filler18[0x20 - 0x18]; - freg_t cbr_base; /* CBR Pointer Base */ - freg_t vbr_base; /* VBR Pointer Base */ - freg_t abr_base; /* ABR Pointer Base */ - freg_t ubr_base; /* UBR Pointer Base */ - u_int filler24; - freg_t vbrwq_base; /* VBR Wait Queue Base */ - freg_t abrwq_base; /* ABR Wait Queue Base */ - freg_t ubrwq_base; /* UBR Wait Queue Base */ - freg_t vct_base; /* Main VC Table Base */ - freg_t vcte_base; /* Extended Main VC Table Base */ - u_int filler2a[0x2C - 0x2A]; - freg_t cbr_tab_beg; /* CBR Table Begin */ - freg_t cbr_tab_end; /* CBR Table End */ - freg_t cbr_pointer; /* CBR Pointer */ - u_int filler2f[0x30 - 0x2F]; - freg_t prq_st_adr; /* Packet Ready Queue Start Address */ - freg_t prq_ed_adr; /* Packet Ready Queue End Address */ - freg_t prq_rd_ptr; /* Packet Ready Queue read pointer */ - freg_t prq_wr_ptr; /* Packet Ready Queue write pointer */ - freg_t tcq_st_adr; /* Transmit Complete Queue Start Address*/ - freg_t tcq_ed_adr; /* Transmit Complete Queue End Address */ - freg_t tcq_rd_ptr; /* Transmit Complete Queue read pointer */ - freg_t tcq_wr_ptr; /* Transmit Complete Queue write pointer*/ - u_int filler38[0x40 - 0x38]; - freg_t queue_base; /* Base address for PRQ and TCQ */ - freg_t desc_base; /* Base address of descriptor table */ - u_int filler42[0x45 - 0x42]; - freg_t mode_reg_0; /* Mode register 0 */ - freg_t mode_reg_1; /* Mode register 1 */ - freg_t intr_status_reg;/* Interrupt Status register */ - freg_t mask_reg; /* Mask Register */ - freg_t cell_ctr_high1; /* Total cell transfer count (high) */ - freg_t cell_ctr_lo1; /* Total cell transfer count (low) */ - freg_t state_reg; /* Status register */ - u_int filler4c[0x58 - 0x4c]; - freg_t curr_desc_num; /* Contains the current descriptor num */ - freg_t next_desc; /* Next descriptor */ - freg_t next_vc; /* Next VC */ - u_int filler5b[0x5d - 0x5b]; - freg_t present_slot_cnt;/* Present slot count */ - u_int filler5e[0x6a - 0x5e]; - freg_t new_desc_num; /* New descriptor number */ - freg_t new_vc; /* New VC */ - freg_t sched_tbl_ptr; /* Schedule table pointer */ - freg_t vbrwq_wptr; /* VBR wait queue write pointer */ - freg_t vbrwq_rptr; /* VBR wait queue read pointer */ - freg_t abrwq_wptr; /* ABR wait queue write pointer */ - freg_t abrwq_rptr; /* ABR wait queue read pointer */ - freg_t ubrwq_wptr; /* UBR wait queue write pointer */ - freg_t ubrwq_rptr; /* UBR wait queue read pointer */ - freg_t cbr_vc; /* CBR VC */ - freg_t vbr_sb_vc; /* VBR SB VC */ - freg_t abr_sb_vc; /* ABR SB VC */ - freg_t ubr_sb_vc; /* UBR SB VC */ - freg_t vbr_next_link; /* VBR next link */ - freg_t abr_next_link; /* ABR next link */ - freg_t ubr_next_link; /* UBR next link */ - u_int filler7a[0x7c-0x7a]; - freg_t out_rate_head; /* Out of rate head */ - u_int filler7d[0xca-0x7d]; /* pad out to full address space */ - freg_t cell_ctr_high1_nc;/* Total cell transfer count (high) */ - freg_t cell_ctr_lo1_nc;/* Total cell transfer count (low) */ - u_int fillercc[0x100-0xcc]; /* pad out to full address space */ + ffreg_t idlehead_high; /* Idle cell header (high) */ + ffreg_t idlehead_low; /* Idle cell header (low) */ + ffreg_t maxrate; /* Maximum rate */ + ffreg_t stparms; /* Traffic Management Parameters */ + ffreg_t abrubr_abr; /* ABRUBR Priority Byte 1, TCR Byte 0 */ + ffreg_t rm_type; /* */ + u_int filler5[0x17 - 0x06]; + ffreg_t cmd_reg; /* Command register */ + u_int filler18[0x20 - 0x18]; + ffreg_t cbr_base; /* CBR Pointer Base */ + ffreg_t vbr_base; /* VBR Pointer Base */ + ffreg_t abr_base; /* ABR Pointer Base */ + ffreg_t ubr_base; /* UBR Pointer Base */ + u_int filler24; + ffreg_t vbrwq_base; /* VBR Wait Queue Base */ + ffreg_t abrwq_base; /* ABR Wait Queue Base */ + ffreg_t ubrwq_base; /* UBR Wait Queue Base */ + ffreg_t vct_base; /* Main VC Table Base */ + ffreg_t vcte_base; /* Extended Main VC Table Base */ + u_int filler2a[0x2C - 0x2A]; + ffreg_t cbr_tab_beg; /* CBR Table Begin */ + ffreg_t cbr_tab_end; /* CBR Table End */ + ffreg_t cbr_pointer; /* CBR Pointer */ + u_int filler2f[0x30 - 0x2F]; + ffreg_t prq_st_adr; /* Packet Ready Queue Start Address */ + ffreg_t prq_ed_adr; /* Packet Ready Queue End Address */ + ffreg_t prq_rd_ptr; /* Packet Ready Queue read pointer */ + ffreg_t prq_wr_ptr; /* Packet Ready Queue write pointer */ + ffreg_t tcq_st_adr; /* Transmit Complete Queue Start Address*/ + ffreg_t tcq_ed_adr; /* Transmit Complete Queue End Address */ + ffreg_t tcq_rd_ptr; /* Transmit Complete Queue read pointer */ + ffreg_t tcq_wr_ptr; /* Transmit Complete Queue write pointer*/ + u_int filler38[0x40 - 0x38]; + ffreg_t queue_base; /* Base address for PRQ and TCQ */ + ffreg_t desc_base; /* Base address of descriptor table */ + u_int filler42[0x45 - 0x42]; + ffreg_t mode_reg_0; /* Mode register 0 */ + ffreg_t mode_reg_1; /* Mode register 1 */ + ffreg_t intr_status_reg;/* Interrupt Status register */ + ffreg_t mask_reg; /* Mask Register */ + ffreg_t cell_ctr_high1; /* Total cell transfer count (high) */ + ffreg_t cell_ctr_lo1; /* Total cell transfer count (low) */ + ffreg_t state_reg; /* Status register */ + u_int filler4c[0x58 - 0x4c]; + ffreg_t curr_desc_num; /* Contains the current descriptor num */ + ffreg_t next_desc; /* Next descriptor */ + ffreg_t next_vc; /* Next VC */ + u_int filler5b[0x5d - 0x5b]; + ffreg_t present_slot_cnt;/* Present slot count */ + u_int filler5e[0x6a - 0x5e]; + ffreg_t new_desc_num; /* New descriptor number */ + ffreg_t new_vc; /* New VC */ + ffreg_t sched_tbl_ptr; /* Schedule table pointer */ + ffreg_t vbrwq_wptr; /* VBR wait queue write pointer */ + ffreg_t vbrwq_rptr; /* VBR wait queue read pointer */ + ffreg_t abrwq_wptr; /* ABR wait queue write pointer */ + ffreg_t abrwq_rptr; /* ABR wait queue read pointer */ + ffreg_t ubrwq_wptr; /* UBR wait queue write pointer */ + ffreg_t ubrwq_rptr; /* UBR wait queue read pointer */ + ffreg_t cbr_vc; /* CBR VC */ + ffreg_t vbr_sb_vc; /* VBR SB VC */ + ffreg_t abr_sb_vc; /* ABR SB VC */ + ffreg_t ubr_sb_vc; /* UBR SB VC */ + ffreg_t vbr_next_link; /* VBR next link */ + ffreg_t abr_next_link; /* ABR next link */ + ffreg_t ubr_next_link; /* UBR next link */ + u_int filler7a[0x7c-0x7a]; + ffreg_t out_rate_head; /* Out of rate head */ + u_int filler7d[0xca-0x7d]; /* pad out to full address space */ + ffreg_t cell_ctr_high1_nc;/* Total cell transfer count (high) */ + ffreg_t cell_ctr_lo1_nc;/* Total cell transfer count (low) */ + u_int fillercc[0x100-0xcc]; /* pad out to full address space */ } ffredn_t; typedef struct _rfredn_t { --- linux-3.2.0.orig/drivers/s390/cio/qdio_main.c +++ linux-3.2.0/drivers/s390/cio/qdio_main.c @@ -167,7 +167,7 @@ DBF_ERROR("%4x EQBS ERROR", SCH_NO(q)); DBF_ERROR("%3d%3d%2d", count, tmp_count, nr); q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION, - 0, -1, -1, q->irq_ptr->int_parm); + q->nr, q->first_to_kick, count, q->irq_ptr->int_parm); return 0; } @@ -215,7 +215,7 @@ DBF_ERROR("%4x SQBS ERROR", SCH_NO(q)); DBF_ERROR("%3d%3d%2d", count, tmp_count, nr); q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION, - 0, -1, -1, q->irq_ptr->int_parm); + q->nr, q->first_to_kick, count, q->irq_ptr->int_parm); return 0; } --- linux-3.2.0.orig/drivers/s390/cio/chsc_sch.c +++ linux-3.2.0/drivers/s390/cio/chsc_sch.c @@ -8,6 +8,7 @@ */ #include +#include #include #include #include --- linux-3.2.0.orig/drivers/s390/cio/device_pgid.c +++ linux-3.2.0/drivers/s390/cio/device_pgid.c @@ -234,7 +234,7 @@ * Determine pathgroup state from PGID data. */ static void pgid_analyze(struct ccw_device *cdev, struct pgid **p, - int *mismatch, int *reserved, u8 *reset) + int *mismatch, u8 *reserved, u8 *reset) { struct pgid *pgid = &cdev->private->pgid[0]; struct pgid *first = NULL; @@ -248,7 +248,7 @@ if ((cdev->private->pgid_valid_mask & lpm) == 0) continue; if (pgid->inf.ps.state2 == SNID_STATE2_RESVD_ELSE) - *reserved = 1; + *reserved |= lpm; if (pgid_is_reset(pgid)) { *reset |= lpm; continue; @@ -316,14 +316,14 @@ struct subchannel *sch = to_subchannel(cdev->dev.parent); struct pgid *pgid; int mismatch = 0; - int reserved = 0; + u8 reserved = 0; u8 reset = 0; u8 donepm; if (rc) goto out; pgid_analyze(cdev, &pgid, &mismatch, &reserved, &reset); - if (reserved) + if (reserved == cdev->private->pgid_valid_mask) rc = -EUSERS; else if (mismatch) rc = -EOPNOTSUPP; @@ -336,7 +336,7 @@ } out: CIO_MSG_EVENT(2, "snid: device 0.%x.%04x: rc=%d pvm=%02x vpm=%02x " - "todo=%02x mism=%d rsvd=%d reset=%02x\n", id->ssid, + "todo=%02x mism=%d rsvd=%02x reset=%02x\n", id->ssid, id->devno, rc, cdev->private->pgid_valid_mask, sch->vpm, cdev->private->pgid_todo_mask, mismatch, reserved, reset); switch (rc) { --- linux-3.2.0.orig/drivers/s390/char/vmcp.c +++ linux-3.2.0/drivers/s390/char/vmcp.c @@ -13,6 +13,7 @@ #include #include +#include #include #include #include --- linux-3.2.0.orig/drivers/s390/char/fs3270.c +++ linux-3.2.0/drivers/s390/char/fs3270.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include --- linux-3.2.0.orig/drivers/s390/char/sclp_cmd.c +++ linux-3.2.0/drivers/s390/char/sclp_cmd.c @@ -509,6 +509,8 @@ add_memory_merged(0); } +#define MEM_SCT_SIZE (1UL << SECTION_SIZE_BITS) + static void __init insert_increment(u16 rn, int standby, int assigned) { struct memory_increment *incr, *new_incr; @@ -521,7 +523,7 @@ new_incr->rn = rn; new_incr->standby = standby; if (!standby) - new_incr->usecount = 1; + new_incr->usecount = rzm > MEM_SCT_SIZE ? rzm/MEM_SCT_SIZE : 1; last_rn = 0; prev = &sclp_mem_list; list_for_each_entry(incr, &sclp_mem_list, list) { --- linux-3.2.0.orig/drivers/s390/kvm/kvm_virtio.c +++ linux-3.2.0/drivers/s390/kvm/kvm_virtio.c @@ -414,6 +414,26 @@ } /* + * For s390-virtio, we expect a page above main storage containing + * the virtio configuration. Try to actually load from this area + * in order to figure out if the host provides this page. + */ +static int __init test_devices_support(unsigned long addr) +{ + int ret = -EIO; + + asm volatile( + "0: lura 0,%1\n" + "1: xgr %0,%0\n" + "2:\n" + EX_TABLE(0b,2b) + EX_TABLE(1b,2b) + : "+d" (ret) + : "a" (addr) + : "0", "cc"); + return ret; +} +/* * Init function for virtio * devices are in a single page above top of "normal" mem */ @@ -424,21 +444,23 @@ if (!MACHINE_IS_KVM) return -ENODEV; + if (test_devices_support(real_memory_size) < 0) + return -ENODEV; + + rc = vmem_add_mapping(real_memory_size, PAGE_SIZE); + if (rc) + return rc; + + kvm_devices = (void *) real_memory_size; + kvm_root = root_device_register("kvm_s390"); if (IS_ERR(kvm_root)) { rc = PTR_ERR(kvm_root); printk(KERN_ERR "Could not register kvm_s390 root device"); + vmem_remove_mapping(real_memory_size, PAGE_SIZE); return rc; } - rc = vmem_add_mapping(real_memory_size, PAGE_SIZE); - if (rc) { - root_device_unregister(kvm_root); - return rc; - } - - kvm_devices = (void *) real_memory_size; - INIT_WORK(&hotplug_work, hotplug_devices); service_subclass_irq_register(); --- linux-3.2.0.orig/drivers/s390/block/dasd_ioctl.c +++ linux-3.2.0/drivers/s390/block/dasd_ioctl.c @@ -13,6 +13,7 @@ #define KMSG_COMPONENT "dasd" #include +#include #include #include #include --- linux-3.2.0.orig/drivers/s390/block/dasd_eckd.c +++ linux-3.2.0/drivers/s390/block/dasd_eckd.c @@ -18,12 +18,12 @@ #include /* HDIO_GETGEO */ #include #include +#include #include #include #include #include -#include #include #include #include --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_ext.h +++ linux-3.2.0/drivers/s390/scsi/zfcp_ext.h @@ -54,6 +54,7 @@ extern void zfcp_dbf_hba_bit_err(char *, struct zfcp_fsf_req *); extern void zfcp_dbf_hba_berr(struct zfcp_dbf *, struct zfcp_fsf_req *); extern void zfcp_dbf_hba_def_err(struct zfcp_adapter *, u64, u16, void **); +extern void zfcp_dbf_hba_basic(char *, struct zfcp_adapter *); extern void zfcp_dbf_san_req(char *, struct zfcp_fsf_req *, u32); extern void zfcp_dbf_san_res(char *, struct zfcp_fsf_req *); extern void zfcp_dbf_san_in_els(char *, struct zfcp_fsf_req *); @@ -158,6 +159,7 @@ extern struct attribute_group zfcp_sysfs_unit_attrs; extern struct attribute_group zfcp_sysfs_adapter_attrs; extern struct attribute_group zfcp_sysfs_port_attrs; +extern struct mutex zfcp_sysfs_port_units_mutex; extern struct device_attribute *zfcp_sysfs_sdev_attrs[]; extern struct device_attribute *zfcp_sysfs_shost_attrs[]; --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_unit.c +++ linux-3.2.0/drivers/s390/scsi/zfcp_unit.c @@ -104,7 +104,7 @@ { struct zfcp_unit *unit = container_of(dev, struct zfcp_unit, dev); - put_device(&unit->port->dev); + atomic_dec(&unit->port->units); kfree(unit); } @@ -119,16 +119,27 @@ int zfcp_unit_add(struct zfcp_port *port, u64 fcp_lun) { struct zfcp_unit *unit; + int retval = 0; + + mutex_lock(&zfcp_sysfs_port_units_mutex); + if (atomic_read(&port->units) == -1) { + /* port is already gone */ + retval = -ENODEV; + goto out; + } unit = zfcp_unit_find(port, fcp_lun); if (unit) { put_device(&unit->dev); - return -EEXIST; + retval = -EEXIST; + goto out; } unit = kzalloc(sizeof(struct zfcp_unit), GFP_KERNEL); - if (!unit) - return -ENOMEM; + if (!unit) { + retval = -ENOMEM; + goto out; + } unit->port = port; unit->fcp_lun = fcp_lun; @@ -139,28 +150,33 @@ if (dev_set_name(&unit->dev, "0x%016llx", (unsigned long long) fcp_lun)) { kfree(unit); - return -ENOMEM; + retval = -ENOMEM; + goto out; } - get_device(&port->dev); - if (device_register(&unit->dev)) { put_device(&unit->dev); - return -ENOMEM; + retval = -ENOMEM; + goto out; } if (sysfs_create_group(&unit->dev.kobj, &zfcp_sysfs_unit_attrs)) { device_unregister(&unit->dev); - return -EINVAL; + retval = -EINVAL; + goto out; } + atomic_inc(&port->units); /* under zfcp_sysfs_port_units_mutex ! */ + write_lock_irq(&port->unit_list_lock); list_add_tail(&unit->list, &port->unit_list); write_unlock_irq(&port->unit_list_lock); zfcp_unit_scsi_scan(unit); - return 0; +out: + mutex_unlock(&zfcp_sysfs_port_units_mutex); + return retval; } /** --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_fsf.c +++ linux-3.2.0/drivers/s390/scsi/zfcp_fsf.c @@ -3,7 +3,7 @@ * * Implementation of FSF commands. * - * Copyright IBM Corporation 2002, 2010 + * Copyright IBM Corp. 2002, 2013 */ #define KMSG_COMPONENT "zfcp" @@ -219,7 +219,7 @@ return; } - zfcp_dbf_hba_fsf_uss("fssrh_2", req); + zfcp_dbf_hba_fsf_uss("fssrh_4", req); switch (sr_buf->status_type) { case FSF_STATUS_READ_PORT_CLOSED: @@ -455,11 +455,8 @@ fc_host_port_name(shost) = nsp->fl_wwpn; fc_host_node_name(shost) = nsp->fl_wwnn; - fc_host_port_id(shost) = ntoh24(bottom->s_id); - fc_host_speed(shost) = bottom->fc_link_speed; fc_host_supported_classes(shost) = FC_COS_CLASS2 | FC_COS_CLASS3; - adapter->hydra_version = bottom->adapter_type; adapter->timer_ticks = bottom->timer_interval & ZFCP_FSF_TIMER_INT_MASK; adapter->stat_read_buf_num = max(bottom->status_read_buf_num, (u16)FSF_STATUS_READS_RECOM); @@ -467,6 +464,18 @@ if (fc_host_permanent_port_name(shost) == -1) fc_host_permanent_port_name(shost) = fc_host_port_name(shost); + zfcp_scsi_set_prot(adapter); + + /* no error return above here, otherwise must fix call chains */ + /* do not evaluate invalid fields */ + if (req->qtcb->header.fsf_status == FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE) + return 0; + + fc_host_port_id(shost) = ntoh24(bottom->s_id); + fc_host_speed(shost) = bottom->fc_link_speed; + + adapter->hydra_version = bottom->adapter_type; + switch (bottom->fc_topology) { case FSF_TOPO_P2P: adapter->peer_d_id = ntoh24(bottom->peer_d_id); @@ -488,8 +497,6 @@ return -EIO; } - zfcp_scsi_set_prot(adapter); - return 0; } @@ -534,8 +541,14 @@ fc_host_port_type(shost) = FC_PORTTYPE_UNKNOWN; adapter->hydra_version = 0; + /* avoids adapter shutdown to be able to recognize + * events such as LINK UP */ + atomic_set_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK, + &adapter->status); zfcp_fsf_link_down_info_eval(req, &qtcb->header.fsf_status_qual.link_down_info); + if (zfcp_fsf_exchange_config_evaluate(req)) + return; break; default: zfcp_erp_adapter_shutdown(adapter, 0, "fsecdh3"); @@ -771,12 +784,14 @@ static void zfcp_fsf_abort_fcp_command_handler(struct zfcp_fsf_req *req) { struct scsi_device *sdev = req->data; - struct zfcp_scsi_dev *zfcp_sdev = sdev_to_zfcp(sdev); + struct zfcp_scsi_dev *zfcp_sdev; union fsf_status_qual *fsq = &req->qtcb->header.fsf_status_qual; if (req->status & ZFCP_STATUS_FSFREQ_ERROR) return; + zfcp_sdev = sdev_to_zfcp(sdev); + switch (req->qtcb->header.fsf_status) { case FSF_PORT_HANDLE_NOT_VALID: if (fsq->word[0] == fsq->word[1]) { @@ -885,7 +900,7 @@ switch (header->fsf_status) { case FSF_GOOD: - zfcp_dbf_san_res("fsscth1", req); + zfcp_dbf_san_res("fsscth2", req); ct->status = 0; break; case FSF_SERVICE_CLASS_NOT_SUPPORTED: @@ -1739,13 +1754,15 @@ { struct zfcp_adapter *adapter = req->adapter; struct scsi_device *sdev = req->data; - struct zfcp_scsi_dev *zfcp_sdev = sdev_to_zfcp(sdev); + struct zfcp_scsi_dev *zfcp_sdev; struct fsf_qtcb_header *header = &req->qtcb->header; struct fsf_qtcb_bottom_support *bottom = &req->qtcb->bottom.support; if (req->status & ZFCP_STATUS_FSFREQ_ERROR) return; + zfcp_sdev = sdev_to_zfcp(sdev); + atomic_clear_mask(ZFCP_STATUS_COMMON_ACCESS_DENIED | ZFCP_STATUS_COMMON_ACCESS_BOXED | ZFCP_STATUS_LUN_SHARED | @@ -1856,11 +1873,13 @@ static void zfcp_fsf_close_lun_handler(struct zfcp_fsf_req *req) { struct scsi_device *sdev = req->data; - struct zfcp_scsi_dev *zfcp_sdev = sdev_to_zfcp(sdev); + struct zfcp_scsi_dev *zfcp_sdev; if (req->status & ZFCP_STATUS_FSFREQ_ERROR) return; + zfcp_sdev = sdev_to_zfcp(sdev); + switch (req->qtcb->header.fsf_status) { case FSF_PORT_HANDLE_NOT_VALID: zfcp_erp_adapter_reopen(zfcp_sdev->port->adapter, 0, "fscuh_1"); @@ -1950,7 +1969,7 @@ { struct fsf_qual_latency_info *lat_in; struct latency_cont *lat = NULL; - struct zfcp_scsi_dev *zfcp_sdev = sdev_to_zfcp(scsi->device); + struct zfcp_scsi_dev *zfcp_sdev; struct zfcp_blk_drv_data blktrc; int ticks = req->adapter->timer_ticks; @@ -1965,6 +1984,7 @@ if (req->adapter->adapter_features & FSF_FEATURE_MEASUREMENT_DATA && !(req->status & ZFCP_STATUS_FSFREQ_ERROR)) { + zfcp_sdev = sdev_to_zfcp(scsi->device); blktrc.flags |= ZFCP_BLK_LAT_VALID; blktrc.channel_lat = lat_in->channel_lat * ticks; blktrc.fabric_lat = lat_in->fabric_lat * ticks; @@ -2002,12 +2022,14 @@ { struct scsi_cmnd *scmnd = req->data; struct scsi_device *sdev = scmnd->device; - struct zfcp_scsi_dev *zfcp_sdev = sdev_to_zfcp(sdev); + struct zfcp_scsi_dev *zfcp_sdev; struct fsf_qtcb_header *header = &req->qtcb->header; if (unlikely(req->status & ZFCP_STATUS_FSFREQ_ERROR)) return; + zfcp_sdev = sdev_to_zfcp(sdev); + switch (header->fsf_status) { case FSF_HANDLE_MISMATCH: case FSF_PORT_HANDLE_NOT_VALID: --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_ccw.c +++ linux-3.2.0/drivers/s390/scsi/zfcp_ccw.c @@ -39,17 +39,23 @@ spin_unlock_irqrestore(&zfcp_ccw_adapter_ref_lock, flags); } -static int zfcp_ccw_activate(struct ccw_device *cdev) - +/** + * zfcp_ccw_activate - activate adapter and wait for it to finish + * @cdev: pointer to belonging ccw device + * @clear: Status flags to clear. + * @tag: s390dbf trace record tag + */ +static int zfcp_ccw_activate(struct ccw_device *cdev, int clear, char *tag) { struct zfcp_adapter *adapter = zfcp_ccw_adapter_by_cdev(cdev); if (!adapter) return 0; + zfcp_erp_clear_adapter_status(adapter, clear); zfcp_erp_set_adapter_status(adapter, ZFCP_STATUS_COMMON_RUNNING); zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, - "ccresu2"); + tag); zfcp_erp_wait(adapter); flush_work(&adapter->scan_work); @@ -164,26 +170,29 @@ BUG_ON(!zfcp_reqlist_isempty(adapter->req_list)); adapter->req_no = 0; - zfcp_ccw_activate(cdev); + zfcp_ccw_activate(cdev, 0, "ccsonl1"); zfcp_ccw_adapter_put(adapter); return 0; } /** - * zfcp_ccw_set_offline - set_offline function of zfcp driver + * zfcp_ccw_offline_sync - shut down adapter and wait for it to finish * @cdev: pointer to belonging ccw device + * @set: Status flags to set. + * @tag: s390dbf trace record tag * * This function gets called by the common i/o layer and sets an adapter * into state offline. */ -static int zfcp_ccw_set_offline(struct ccw_device *cdev) +static int zfcp_ccw_offline_sync(struct ccw_device *cdev, int set, char *tag) { struct zfcp_adapter *adapter = zfcp_ccw_adapter_by_cdev(cdev); if (!adapter) return 0; - zfcp_erp_adapter_shutdown(adapter, 0, "ccsoff1"); + zfcp_erp_set_adapter_status(adapter, set); + zfcp_erp_adapter_shutdown(adapter, 0, tag); zfcp_erp_wait(adapter); zfcp_ccw_adapter_put(adapter); @@ -191,6 +200,18 @@ } /** + * zfcp_ccw_set_offline - set_offline function of zfcp driver + * @cdev: pointer to belonging ccw device + * + * This function gets called by the common i/o layer and sets an adapter + * into state offline. + */ +static int zfcp_ccw_set_offline(struct ccw_device *cdev) +{ + return zfcp_ccw_offline_sync(cdev, 0, "ccsoff1"); +} + +/** * zfcp_ccw_notify - ccw notify function * @cdev: pointer to belonging ccw device * @event: indicates if adapter was detached or attached @@ -207,6 +228,11 @@ switch (event) { case CIO_GONE: + if (atomic_read(&adapter->status) & + ZFCP_STATUS_ADAPTER_SUSPENDED) { /* notification ignore */ + zfcp_dbf_hba_basic("ccnigo1", adapter); + break; + } dev_warn(&cdev->dev, "The FCP device has been detached\n"); zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti1"); break; @@ -216,6 +242,11 @@ zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti2"); break; case CIO_OPER: + if (atomic_read(&adapter->status) & + ZFCP_STATUS_ADAPTER_SUSPENDED) { /* notification ignore */ + zfcp_dbf_hba_basic("ccniop1", adapter); + break; + } dev_info(&cdev->dev, "The FCP device is operational again\n"); zfcp_erp_set_adapter_status(adapter, ZFCP_STATUS_COMMON_RUNNING); @@ -251,6 +282,28 @@ zfcp_ccw_adapter_put(adapter); } +static int zfcp_ccw_suspend(struct ccw_device *cdev) +{ + zfcp_ccw_offline_sync(cdev, ZFCP_STATUS_ADAPTER_SUSPENDED, "ccsusp1"); + return 0; +} + +static int zfcp_ccw_thaw(struct ccw_device *cdev) +{ + /* trace records for thaw and final shutdown during suspend + can only be found in system dump until the end of suspend + but not after resume because it's based on the memory image + right after the very first suspend (freeze) callback */ + zfcp_ccw_activate(cdev, 0, "ccthaw1"); + return 0; +} + +static int zfcp_ccw_resume(struct ccw_device *cdev) +{ + zfcp_ccw_activate(cdev, ZFCP_STATUS_ADAPTER_SUSPENDED, "ccresu1"); + return 0; +} + struct ccw_driver zfcp_ccw_driver = { .driver = { .owner = THIS_MODULE, @@ -263,7 +316,7 @@ .set_offline = zfcp_ccw_set_offline, .notify = zfcp_ccw_notify, .shutdown = zfcp_ccw_shutdown, - .freeze = zfcp_ccw_set_offline, - .thaw = zfcp_ccw_activate, - .restore = zfcp_ccw_activate, + .freeze = zfcp_ccw_suspend, + .thaw = zfcp_ccw_thaw, + .restore = zfcp_ccw_resume, }; --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_aux.c +++ linux-3.2.0/drivers/s390/scsi/zfcp_aux.c @@ -3,7 +3,7 @@ * * Module interface and handling of zfcp data structures. * - * Copyright IBM Corporation 2002, 2010 + * Copyright IBM Corp. 2002, 2013 */ /* @@ -23,6 +23,7 @@ * Christof Schmitt * Martin Petermann * Sven Schuetz + * Steffen Maier */ #define KMSG_COMPONENT "zfcp" @@ -415,6 +416,8 @@ adapter->dma_parms.max_segment_size = ZFCP_QDIO_SBALE_LEN; adapter->ccw_device->dev.dma_parms = &adapter->dma_parms; + adapter->stat_read_buf_num = FSF_STATUS_READS_RECOM; + if (!zfcp_scsi_adapter_register(adapter)) return adapter; @@ -519,6 +522,7 @@ rwlock_init(&port->unit_list_lock); INIT_LIST_HEAD(&port->unit_list); + atomic_set(&port->units, 0); INIT_WORK(&port->gid_pn_work, zfcp_fc_port_did_lookup); INIT_WORK(&port->test_link_work, zfcp_fc_link_test_work); --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_scsi.c +++ linux-3.2.0/drivers/s390/scsi/zfcp_scsi.c @@ -3,7 +3,7 @@ * * Interface to Linux SCSI midlayer. * - * Copyright IBM Corporation 2002, 2010 + * Copyright IBM Corp. 2002, 2013 */ #define KMSG_COMPONENT "zfcp" @@ -311,8 +311,12 @@ .proc_name = "zfcp", .can_queue = 4096, .this_id = -1, - .sg_tablesize = 1, /* adjusted later */ - .max_sectors = 8, /* adjusted later */ + .sg_tablesize = (((QDIO_MAX_ELEMENTS_PER_BUFFER - 1) + * ZFCP_QDIO_MAX_SBALS_PER_REQ) - 2), + /* GCD, adjusted later */ + .max_sectors = (((QDIO_MAX_ELEMENTS_PER_BUFFER - 1) + * ZFCP_QDIO_MAX_SBALS_PER_REQ) - 2) * 8, + /* GCD, adjusted later */ .dma_boundary = ZFCP_QDIO_SBALE_LEN - 1, .cmd_per_lun = 1, .use_clustering = 1, --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_dbf.c +++ linux-3.2.0/drivers/s390/scsi/zfcp_dbf.c @@ -191,7 +191,7 @@ length = min((u16)sizeof(struct qdio_buffer), (u16)ZFCP_DBF_PAY_MAX_REC); - while ((char *)pl[payload->counter] && payload->counter < scount) { + while (payload->counter < scount && (char *)pl[payload->counter]) { memcpy(payload->data, (char *)pl[payload->counter], length); debug_event(dbf->pay, 1, payload, zfcp_dbf_plen(length)); payload->counter++; @@ -200,6 +200,26 @@ spin_unlock_irqrestore(&dbf->pay_lock, flags); } +/** + * zfcp_dbf_hba_basic - trace event for basic adapter events + * @adapter: pointer to struct zfcp_adapter + */ +void zfcp_dbf_hba_basic(char *tag, struct zfcp_adapter *adapter) +{ + struct zfcp_dbf *dbf = adapter->dbf; + struct zfcp_dbf_hba *rec = &dbf->hba_buf; + unsigned long flags; + + spin_lock_irqsave(&dbf->hba_lock, flags); + memset(rec, 0, sizeof(*rec)); + + memcpy(rec->tag, tag, ZFCP_DBF_TAG_LEN); + rec->id = ZFCP_DBF_HBA_BASIC; + + debug_event(dbf->hba, 1, rec, sizeof(*rec)); + spin_unlock_irqrestore(&dbf->hba_lock, flags); +} + static void zfcp_dbf_set_common(struct zfcp_dbf_rec *rec, struct zfcp_adapter *adapter, struct zfcp_port *port, --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_qdio.c +++ linux-3.2.0/drivers/s390/scsi/zfcp_qdio.c @@ -102,18 +102,22 @@ { struct zfcp_qdio *qdio = (struct zfcp_qdio *) parm; struct zfcp_adapter *adapter = qdio->adapter; - struct qdio_buffer_element *sbale; int sbal_no, sbal_idx; - void *pl[ZFCP_QDIO_MAX_SBALS_PER_REQ + 1]; - u64 req_id; - u8 scount; if (unlikely(qdio_err)) { - memset(pl, 0, ZFCP_QDIO_MAX_SBALS_PER_REQ * sizeof(void *)); if (zfcp_adapter_multi_buffer_active(adapter)) { + void *pl[ZFCP_QDIO_MAX_SBALS_PER_REQ + 1]; + struct qdio_buffer_element *sbale; + u64 req_id; + u8 scount; + + memset(pl, 0, + ZFCP_QDIO_MAX_SBALS_PER_REQ * sizeof(void *)); sbale = qdio->res_q[idx]->element; req_id = (u64) sbale->addr; - scount = sbale->scount + 1; /* incl. signaling SBAL */ + scount = min(sbale->scount + 1, + ZFCP_QDIO_MAX_SBALS_PER_REQ + 1); + /* incl. signaling SBAL */ for (sbal_no = 0; sbal_no < scount; sbal_no++) { sbal_idx = (idx + sbal_no) % --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_cfdc.c +++ linux-3.2.0/drivers/s390/scsi/zfcp_cfdc.c @@ -11,6 +11,7 @@ #define KMSG_COMPONENT "zfcp" #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt +#include #include #include #include @@ -292,7 +293,7 @@ } read_unlock_irqrestore(&adapter->port_list_lock, flags); - shost_for_each_device(sdev, port->adapter->scsi_host) { + shost_for_each_device(sdev, adapter->scsi_host) { zfcp_sdev = sdev_to_zfcp(sdev); status = atomic_read(&zfcp_sdev->status); if ((status & ZFCP_STATUS_COMMON_ACCESS_DENIED) || --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_dbf.h +++ linux-3.2.0/drivers/s390/scsi/zfcp_dbf.h @@ -154,6 +154,7 @@ ZFCP_DBF_HBA_RES = 1, ZFCP_DBF_HBA_USS = 2, ZFCP_DBF_HBA_BIT = 3, + ZFCP_DBF_HBA_BASIC = 4, }; /** --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_sysfs.c +++ linux-3.2.0/drivers/s390/scsi/zfcp_sysfs.c @@ -227,6 +227,8 @@ static ZFCP_DEV_ATTR(adapter, port_rescan, S_IWUSR, NULL, zfcp_sysfs_port_rescan_store); +DEFINE_MUTEX(zfcp_sysfs_port_units_mutex); + static ssize_t zfcp_sysfs_port_remove_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) @@ -249,6 +251,16 @@ else retval = 0; + mutex_lock(&zfcp_sysfs_port_units_mutex); + if (atomic_read(&port->units) > 0) { + retval = -EBUSY; + mutex_unlock(&zfcp_sysfs_port_units_mutex); + goto out; + } + /* port is about to be removed, so no more unit_add */ + atomic_set(&port->units, -1); + mutex_unlock(&zfcp_sysfs_port_units_mutex); + write_lock_irq(&adapter->port_list_lock); list_del(&port->list); write_unlock_irq(&adapter->port_list_lock); @@ -289,12 +301,14 @@ { struct zfcp_port *port = container_of(dev, struct zfcp_port, dev); u64 fcp_lun; + int retval; if (strict_strtoull(buf, 0, (unsigned long long *) &fcp_lun)) return -EINVAL; - if (zfcp_unit_add(port, fcp_lun)) - return -EINVAL; + retval = zfcp_unit_add(port, fcp_lun); + if (retval) + return retval; return count; } --- linux-3.2.0.orig/drivers/s390/scsi/zfcp_def.h +++ linux-3.2.0/drivers/s390/scsi/zfcp_def.h @@ -77,6 +77,7 @@ #define ZFCP_STATUS_ADAPTER_SIOSL_ISSUED 0x00000004 #define ZFCP_STATUS_ADAPTER_XCONFIG_OK 0x00000008 #define ZFCP_STATUS_ADAPTER_HOST_CON_INIT 0x00000010 +#define ZFCP_STATUS_ADAPTER_SUSPENDED 0x00000040 #define ZFCP_STATUS_ADAPTER_ERP_PENDING 0x00000100 #define ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED 0x00000200 #define ZFCP_STATUS_ADAPTER_DATA_DIV_ENABLED 0x00000400 @@ -204,6 +205,7 @@ struct zfcp_adapter *adapter; /* adapter used to access port */ struct list_head unit_list; /* head of logical unit list */ rwlock_t unit_list_lock; /* unit list lock */ + atomic_t units; /* zfcp_unit count */ atomic_t status; /* status of this remote port */ u64 wwnn; /* WWNN if known */ u64 wwpn; /* WWPN */ --- linux-3.2.0.orig/drivers/uwb/neh.c +++ linux-3.2.0/drivers/uwb/neh.c @@ -107,6 +107,7 @@ u8 evt_type; __le16 evt; u8 context; + u8 completed; uwb_rc_cmd_cb_f cb; void *arg; @@ -409,6 +410,7 @@ struct device *dev = &rc->uwb_dev.dev; struct uwb_rc_neh *neh; struct uwb_rceb *notif; + unsigned long flags; if (rceb->bEventContext == 0) { notif = kmalloc(size, GFP_ATOMIC); @@ -422,7 +424,11 @@ } else { neh = uwb_rc_neh_lookup(rc, rceb); if (neh) { - del_timer_sync(&neh->timer); + spin_lock_irqsave(&rc->neh_lock, flags); + /* to guard against a timeout */ + neh->completed = 1; + del_timer(&neh->timer); + spin_unlock_irqrestore(&rc->neh_lock, flags); uwb_rc_neh_cb(neh, rceb, size); } else dev_warn(dev, "event 0x%02x/%04x/%02x (%zu bytes): nobody cared\n", @@ -568,6 +574,10 @@ unsigned long flags; spin_lock_irqsave(&rc->neh_lock, flags); + if (neh->completed) { + spin_unlock_irqrestore(&rc->neh_lock, flags); + return; + } if (neh->context) __uwb_rc_neh_rm(rc, neh); else --- linux-3.2.0.orig/drivers/uwb/hwa-rc.c +++ linux-3.2.0/drivers/uwb/hwa-rc.c @@ -645,7 +645,8 @@ dev_err(dev, "NEEP: URB error %d\n", urb->status); } result = usb_submit_urb(urb, GFP_ATOMIC); - if (result < 0) { + if (result < 0 && result != -ENODEV && result != -EPERM) { + /* ignoring unrecoverable errors */ dev_err(dev, "NEEP: Can't resubmit URB (%d) resetting device\n", result); goto error; --- linux-3.2.0.orig/drivers/rtc/rtc-cmos.c +++ linux-3.2.0/drivers/rtc/rtc-cmos.c @@ -805,9 +805,8 @@ mask = RTC_IRQMASK; tmp &= ~mask; CMOS_WRITE(tmp, RTC_CONTROL); + hpet_mask_rtc_irq_bit(mask); - /* shut down hpet emulation - we don't need it for alarm */ - hpet_mask_rtc_irq_bit(RTC_PIE|RTC_AIE|RTC_UIE); cmos_checkintr(cmos, tmp); } spin_unlock_irq(&rtc_lock); @@ -872,6 +871,7 @@ rtc_update_irq(cmos->rtc, 1, mask); tmp &= ~RTC_AIE; hpet_mask_rtc_irq_bit(RTC_AIE); + hpet_rtc_timer_init(); } while (mask & RTC_AIE); spin_unlock_irq(&rtc_lock); } --- linux-3.2.0.orig/drivers/rtc/rtc-wm831x.c +++ linux-3.2.0/drivers/rtc/rtc-wm831x.c @@ -24,7 +24,7 @@ #include #include #include - +#include /* * R16416 (0x4020) - RTC Write Counter @@ -96,6 +96,26 @@ unsigned int alarm_enabled:1; }; +static void wm831x_rtc_add_randomness(struct wm831x *wm831x) +{ + int ret; + u16 reg; + + /* + * The write counter contains a pseudo-random number which is + * regenerated every time we set the RTC so it should be a + * useful per-system source of entropy. + */ + ret = wm831x_reg_read(wm831x, WM831X_RTC_WRITE_COUNTER); + if (ret >= 0) { + reg = ret; + add_device_randomness(®, sizeof(reg)); + } else { + dev_warn(wm831x->dev, "Failed to read RTC write counter: %d\n", + ret); + } +} + /* * Read current time and date in RTC */ @@ -449,6 +469,8 @@ alm_irq, ret); } + wm831x_rtc_add_randomness(wm831x); + return 0; err: --- linux-3.2.0.orig/drivers/rtc/rtc-pcf2123.c +++ linux-3.2.0/drivers/rtc/rtc-pcf2123.c @@ -264,6 +264,7 @@ if (!(rxbuf[0] & 0x20)) { dev_err(&spi->dev, "chip not found\n"); + ret = -ENODEV; goto kfree_exit; } --- linux-3.2.0.orig/drivers/rtc/rtc-vt8500.c +++ linux-3.2.0/drivers/rtc/rtc-vt8500.c @@ -69,7 +69,7 @@ | ALARM_SEC_BIT) #define VT8500_RTC_CR_ENABLE (1 << 0) /* Enable RTC */ -#define VT8500_RTC_CR_24H (1 << 1) /* 24h time format */ +#define VT8500_RTC_CR_12H (1 << 1) /* 12h time format */ #define VT8500_RTC_CR_SM_ENABLE (1 << 2) /* Enable periodic irqs */ #define VT8500_RTC_CR_SM_SEC (1 << 3) /* 0: 1Hz/60, 1: 1Hz */ #define VT8500_RTC_CR_CALIB (1 << 4) /* Enable calibration */ @@ -118,7 +118,7 @@ tm->tm_min = bcd2bin((time & TIME_MIN_MASK) >> TIME_MIN_S); tm->tm_hour = bcd2bin((time & TIME_HOUR_MASK) >> TIME_HOUR_S); tm->tm_mday = bcd2bin(date & DATE_DAY_MASK); - tm->tm_mon = bcd2bin((date & DATE_MONTH_MASK) >> DATE_MONTH_S); + tm->tm_mon = bcd2bin((date & DATE_MONTH_MASK) >> DATE_MONTH_S) - 1; tm->tm_year = bcd2bin((date & DATE_YEAR_MASK) >> DATE_YEAR_S) + ((date >> DATE_CENTURY_S) & 1 ? 200 : 100); tm->tm_wday = (time & TIME_DOW_MASK) >> TIME_DOW_S; @@ -137,8 +137,9 @@ } writel((bin2bcd(tm->tm_year - 100) << DATE_YEAR_S) - | (bin2bcd(tm->tm_mon) << DATE_MONTH_S) - | (bin2bcd(tm->tm_mday)), + | (bin2bcd(tm->tm_mon + 1) << DATE_MONTH_S) + | (bin2bcd(tm->tm_mday)) + | ((tm->tm_year >= 200) << DATE_CENTURY_S), vt8500_rtc->regbase + VT8500_RTC_DS); writel((bin2bcd(tm->tm_wday) << TIME_DOW_S) | (bin2bcd(tm->tm_hour) << TIME_HOUR_S) @@ -248,7 +249,7 @@ } /* Enable RTC and set it to 24-hour mode */ - writel(VT8500_RTC_CR_ENABLE | VT8500_RTC_CR_24H, + writel(VT8500_RTC_CR_ENABLE, vt8500_rtc->regbase + VT8500_RTC_CR); vt8500_rtc->rtc = rtc_device_register("vt8500-rtc", &pdev->dev, --- linux-3.2.0.orig/drivers/rtc/rtc-rv3029c2.c +++ linux-3.2.0/drivers/rtc/rtc-rv3029c2.c @@ -310,7 +310,7 @@ dev_dbg(&client->dev, "alarm IRQ armed\n"); } else { /* disable AIE irq */ - ret = rv3029c2_rtc_i2c_alarm_set_irq(client, 1); + ret = rv3029c2_rtc_i2c_alarm_set_irq(client, 0); if (ret) return ret; --- linux-3.2.0.orig/drivers/rtc/interface.c +++ linux-3.2.0/drivers/rtc/interface.c @@ -228,11 +228,11 @@ alarm->time.tm_hour = now.tm_hour; /* For simplicity, only support date rollover for now */ - if (alarm->time.tm_mday == -1) { + if (alarm->time.tm_mday < 1 || alarm->time.tm_mday > 31) { alarm->time.tm_mday = now.tm_mday; missing = day; } - if (alarm->time.tm_mon == -1) { + if ((unsigned)alarm->time.tm_mon >= 12) { alarm->time.tm_mon = now.tm_mon; if (missing == none) missing = month; @@ -445,6 +445,11 @@ if (rtc->uie_rtctimer.enabled == enabled) goto out; + if (rtc->uie_unsupported) { + err = -EINVAL; + goto out; + } + if (enabled) { struct rtc_time tm; ktime_t now, onesec; @@ -763,6 +768,14 @@ return 0; } +static void rtc_alarm_disable(struct rtc_device *rtc) +{ + if (!rtc->ops || !rtc->ops->alarm_irq_enable) + return; + + rtc->ops->alarm_irq_enable(rtc->dev.parent, false); +} + /** * rtc_timer_remove - Removes a rtc_timer from the rtc_device timerqueue * @rtc rtc device @@ -784,8 +797,10 @@ struct rtc_wkalrm alarm; int err; next = timerqueue_getnext(&rtc->timerqueue); - if (!next) + if (!next) { + rtc_alarm_disable(rtc); return; + } alarm.time = rtc_ktime_to_tm(next->expires); alarm.enabled = 1; err = __rtc_set_alarm(rtc, &alarm); @@ -847,7 +862,8 @@ err = __rtc_set_alarm(rtc, &alarm); if (err == -ETIME) goto again; - } + } else + rtc_alarm_disable(rtc); mutex_unlock(&rtc->ops_lock); } --- linux-3.2.0.orig/drivers/rtc/rtc-isl1208.c +++ linux-3.2.0/drivers/rtc/rtc-isl1208.c @@ -494,6 +494,7 @@ { unsigned long timeout = jiffies + msecs_to_jiffies(1000); struct i2c_client *client = data; + struct rtc_device *rtc = i2c_get_clientdata(client); int handled = 0, sr, err; /* @@ -516,6 +517,8 @@ if (sr & ISL1208_REG_SR_ALM) { dev_dbg(&client->dev, "alarm!\n"); + rtc_update_irq(rtc, 1, RTC_IRQF | RTC_AF); + /* Clear the alarm */ sr &= ~ISL1208_REG_SR_ALM; sr = i2c_smbus_write_byte_data(client, ISL1208_REG_SR, sr); --- linux-3.2.0.orig/drivers/rtc/rtc-rs5c348.c +++ linux-3.2.0/drivers/rtc/rtc-rs5c348.c @@ -122,9 +122,12 @@ tm->tm_min = bcd2bin(rxbuf[RS5C348_REG_MINS] & RS5C348_MINS_MASK); tm->tm_hour = bcd2bin(rxbuf[RS5C348_REG_HOURS] & RS5C348_HOURS_MASK); if (!pdata->rtc_24h) { - tm->tm_hour %= 12; - if (rxbuf[RS5C348_REG_HOURS] & RS5C348_BIT_PM) + if (rxbuf[RS5C348_REG_HOURS] & RS5C348_BIT_PM) { + tm->tm_hour -= 20; + tm->tm_hour %= 12; tm->tm_hour += 12; + } else + tm->tm_hour %= 12; } tm->tm_wday = bcd2bin(rxbuf[RS5C348_REG_WDAY] & RS5C348_WDAY_MASK); tm->tm_mday = bcd2bin(rxbuf[RS5C348_REG_DAY] & RS5C348_DAY_MASK); --- linux-3.2.0.orig/drivers/rtc/rtc-mpc5121.c +++ linux-3.2.0/drivers/rtc/rtc-mpc5121.c @@ -360,6 +360,8 @@ &mpc5200_rtc_ops, THIS_MODULE); } + rtc->rtc->uie_unsupported = 1; + if (IS_ERR(rtc->rtc)) { err = PTR_ERR(rtc->rtc); goto out_free_irq; --- linux-3.2.0.orig/drivers/rtc/rtc-mxc.c +++ linux-3.2.0/drivers/rtc/rtc-mxc.c @@ -191,10 +191,11 @@ struct platform_device *pdev = dev_id; struct rtc_plat_data *pdata = platform_get_drvdata(pdev); void __iomem *ioaddr = pdata->ioaddr; + unsigned long flags; u32 status; u32 events = 0; - spin_lock_irq(&pdata->rtc->irq_lock); + spin_lock_irqsave(&pdata->rtc->irq_lock, flags); status = readw(ioaddr + RTC_RTCISR) & readw(ioaddr + RTC_RTCIENR); /* clear interrupt sources */ writew(status, ioaddr + RTC_RTCISR); @@ -217,7 +218,7 @@ rtc_update_alarm(&pdev->dev, &pdata->g_rtc_alarm); rtc_update_irq(pdata->rtc, 1, events); - spin_unlock_irq(&pdata->rtc->irq_lock); + spin_unlock_irqrestore(&pdata->rtc->irq_lock, flags); return IRQ_HANDLED; } --- linux-3.2.0.orig/drivers/rtc/rtc-imxdi.c +++ linux-3.2.0/drivers/rtc/rtc-imxdi.c @@ -392,6 +392,8 @@ if (imxdi->ioaddr == NULL) return -ENOMEM; + spin_lock_init(&imxdi->irq_lock); + imxdi->irq = platform_get_irq(pdev, 0); if (imxdi->irq < 0) return imxdi->irq; --- linux-3.2.0.orig/drivers/rtc/rtc-pl031.c +++ linux-3.2.0/drivers/rtc/rtc-pl031.c @@ -44,6 +44,7 @@ #define RTC_YMR 0x34 /* Year match register */ #define RTC_YLR 0x38 /* Year data load register */ +#define RTC_CR_EN (1 << 0) /* counter enable bit */ #define RTC_CR_CWEN (1 << 26) /* Clockwatch enable bit */ #define RTC_TCR_EN (1 << 1) /* Periodic timer enable bit */ @@ -312,6 +313,7 @@ int ret; struct pl031_local *ldata; struct rtc_class_ops *ops = id->data; + unsigned long time, data; ret = amba_request_regions(adev, NULL); if (ret) @@ -338,11 +340,30 @@ dev_dbg(&adev->dev, "designer ID = 0x%02x\n", ldata->hw_designer); dev_dbg(&adev->dev, "revision = 0x%01x\n", ldata->hw_revision); + data = readl(ldata->base + RTC_CR); /* Enable the clockwatch on ST Variants */ - if ((ldata->hw_designer == AMBA_VENDOR_ST) && - (ldata->hw_revision > 1)) - writel(readl(ldata->base + RTC_CR) | RTC_CR_CWEN, - ldata->base + RTC_CR); + if (ldata->hw_designer == AMBA_VENDOR_ST) + data |= RTC_CR_CWEN; + else + data |= RTC_CR_EN; + writel(data, ldata->base + RTC_CR); + + /* + * On ST PL031 variants, the RTC reset value does not provide correct + * weekday for 2000-01-01. Correct the erroneous sunday to saturday. + */ + if (ldata->hw_designer == AMBA_VENDOR_ST) { + if (readl(ldata->base + RTC_YDR) == 0x2000) { + time = readl(ldata->base + RTC_DR); + if ((time & + (RTC_MON_MASK | RTC_MDAY_MASK | RTC_WDAY_MASK)) + == 0x02120000) { + time = time | (0x7 << RTC_WDAY_SHIFT); + writel(0x2000, ldata->base + RTC_YLR); + writel(time, ldata->base + RTC_LR); + } + } + } ldata->rtc = rtc_device_register("pl031", &adev->dev, ops, THIS_MODULE); @@ -420,6 +441,8 @@ {0, 0}, }; +MODULE_DEVICE_TABLE(amba, pl031_ids); + static struct amba_driver pl031_driver = { .drv = { .name = "rtc-pl031", --- linux-3.2.0.orig/drivers/rtc/rtc-twl.c +++ linux-3.2.0/drivers/rtc/rtc-twl.c @@ -462,6 +462,11 @@ goto out1; } + /* ensure interrupts are disabled, bootloaders can be strange */ + ret = twl_rtc_write_u8(0, REG_RTC_INTERRUPTS_REG); + if (ret < 0) + dev_warn(&pdev->dev, "unable to disable interrupt\n"); + /* init cached IRQ enable bits */ ret = twl_rtc_read_u8(&rtc_irq_bits, REG_RTC_INTERRUPTS_REG); if (ret < 0) @@ -485,6 +490,7 @@ } platform_set_drvdata(pdev, rtc); + device_init_wakeup(&pdev->dev, 1); return 0; out2: --- linux-3.2.0.orig/drivers/misc/cs5535-mfgpt.c +++ linux-3.2.0/drivers/misc/cs5535-mfgpt.c @@ -262,7 +262,7 @@ * In other cases (such as with VSAless OpenFirmware), the system firmware * leaves timers available for us to use. */ -static int __init scan_timers(struct cs5535_mfgpt_chip *mfgpt) +static int __devinit scan_timers(struct cs5535_mfgpt_chip *mfgpt) { struct cs5535_mfgpt_timer timer = { .chip = mfgpt }; unsigned long flags; --- linux-3.2.0.orig/drivers/misc/hpilo.c +++ linux-3.2.0/drivers/misc/hpilo.c @@ -735,7 +735,14 @@ free_irq(pdev->irq, ilo_hw); ilo_unmap_device(pdev, ilo_hw); pci_release_regions(pdev); - pci_disable_device(pdev); + /* + * pci_disable_device(pdev) used to be here. But this PCI device has + * two functions with interrupt lines connected to a single pin. The + * other one is a USB host controller. So when we disable the PIN here + * e.g. by rmmod hpilo, the controller stops working. It is because + * the interrupt link is disabled in ACPI since it is not refcounted + * yet. See acpi_pci_link_free_irq called from acpi_pci_irq_disable. + */ kfree(ilo_hw); ilo_hwdev[(minor / MAX_CCB)] = 0; } @@ -820,7 +827,7 @@ free_regions: pci_release_regions(pdev); disable: - pci_disable_device(pdev); +/* pci_disable_device(pdev); see comment in ilo_remove */ free: kfree(ilo_hw); out: --- linux-3.2.0.orig/drivers/misc/kgdbts.c +++ linux-3.2.0/drivers/misc/kgdbts.c @@ -134,12 +134,17 @@ static int hwbreaks_ok; static int hw_break_val; static int hw_break_val2; +static int cont_instead_of_sstep; +static unsigned long cont_thread_id; +static unsigned long sstep_thread_id; #if defined(CONFIG_ARM) || defined(CONFIG_MIPS) || defined(CONFIG_SPARC) static int arch_needs_sstep_emulation = 1; #else static int arch_needs_sstep_emulation; #endif +static unsigned long cont_addr; static unsigned long sstep_addr; +static int restart_from_top_after_write; static int sstep_state; /* Storage for the registers, in GDB format. */ @@ -187,7 +192,8 @@ */ while (!final_ack) msleep_interruptible(1500); - + /* Pause for any other threads to exit after final ack. */ + msleep_interruptible(1000); if (configured) kgdb_unregister_io_module(&kgdbts_io_ops); configured = 0; @@ -211,7 +217,7 @@ if (!strcmp(arg, "kgdbts_break_test")) addr = (unsigned long)kgdbts_break_test; else if (!strcmp(arg, "sys_open")) - addr = (unsigned long)sys_open; + addr = (unsigned long)do_sys_open; else if (!strcmp(arg, "do_fork")) addr = (unsigned long)do_fork; else if (!strcmp(arg, "hw_break_val")) @@ -283,6 +289,16 @@ hw_break_val++; } +static int get_thread_id_continue(char *put_str, char *arg) +{ + char *ptr = &put_str[11]; + + if (put_str[1] != 'T' || put_str[2] != '0') + return 1; + kgdb_hex2long(&ptr, &cont_thread_id); + return 0; +} + static int check_and_rewind_pc(char *put_str, char *arg) { unsigned long addr = lookup_addr(arg); @@ -299,13 +315,21 @@ if (addr + BREAK_INSTR_SIZE == ip) offset = -BREAK_INSTR_SIZE; #endif - if (strcmp(arg, "silent") && ip + offset != addr) { + + if (arch_needs_sstep_emulation && sstep_addr && + ip + offset == sstep_addr && + ((!strcmp(arg, "sys_open") || !strcmp(arg, "do_fork")))) { + /* This is special case for emulated single step */ + v2printk("Emul: rewind hit single step bp\n"); + restart_from_top_after_write = 1; + } else if (strcmp(arg, "silent") && ip + offset != addr) { eprintk("kgdbts: BP mismatch %lx expected %lx\n", ip + offset, addr); return 1; } /* Readjust the instruction pointer if needed */ ip += offset; + cont_addr = ip; #ifdef GDB_ADJUSTS_BREAK_OFFSET instruction_pointer_set(&kgdbts_regs, ip); #endif @@ -315,6 +339,8 @@ static int check_single_step(char *put_str, char *arg) { unsigned long addr = lookup_addr(arg); + static int matched_id; + /* * From an arch indepent point of view the instruction pointer * should be on a different instruction @@ -324,6 +350,29 @@ gdb_regs_to_pt_regs(kgdbts_gdb_regs, &kgdbts_regs); v2printk("Singlestep stopped at IP: %lx\n", instruction_pointer(&kgdbts_regs)); + + if (sstep_thread_id != cont_thread_id) { + /* + * Ensure we stopped in the same thread id as before, else the + * debugger should continue until the original thread that was + * single stepped is scheduled again, emulating gdb's behavior. + */ + v2printk("ThrID does not match: %lx\n", cont_thread_id); + if (arch_needs_sstep_emulation) { + if (matched_id && + instruction_pointer(&kgdbts_regs) != addr) + goto continue_test; + matched_id++; + ts.idx -= 2; + sstep_state = 0; + return 0; + } + cont_instead_of_sstep = 1; + ts.idx -= 4; + return 0; + } +continue_test: + matched_id = 0; if (instruction_pointer(&kgdbts_regs) == addr) { eprintk("kgdbts: SingleStep failed at %lx\n", instruction_pointer(&kgdbts_regs)); @@ -365,10 +414,40 @@ return 1; } +static void get_cont_catch(char *arg) +{ + /* Always send detach because the test is completed at this point */ + fill_get_buf("D"); +} + +static int put_cont_catch(char *put_str, char *arg) +{ + /* This is at the end of the test and we catch any and all input */ + v2printk("kgdbts: cleanup task: %lx\n", sstep_thread_id); + ts.idx--; + return 0; +} + +static int emul_reset(char *put_str, char *arg) +{ + if (strncmp(put_str, "$OK", 3)) + return 1; + if (restart_from_top_after_write) { + restart_from_top_after_write = 0; + ts.idx = -1; + } + return 0; +} + static void emul_sstep_get(char *arg) { if (!arch_needs_sstep_emulation) { - fill_get_buf(arg); + if (cont_instead_of_sstep) { + cont_instead_of_sstep = 0; + fill_get_buf("c"); + } else { + fill_get_buf(arg); + } return; } switch (sstep_state) { @@ -398,9 +477,11 @@ static int emul_sstep_put(char *put_str, char *arg) { if (!arch_needs_sstep_emulation) { - if (!strncmp(put_str+1, arg, 2)) - return 0; - return 1; + char *ptr = &put_str[11]; + if (put_str[1] != 'T' || put_str[2] != '0') + return 1; + kgdb_hex2long(&ptr, &sstep_thread_id); + return 0; } switch (sstep_state) { case 1: @@ -411,8 +492,7 @@ v2printk("Stopped at IP: %lx\n", instruction_pointer(&kgdbts_regs)); /* Want to stop at IP + break instruction size by default */ - sstep_addr = instruction_pointer(&kgdbts_regs) + - BREAK_INSTR_SIZE; + sstep_addr = cont_addr + BREAK_INSTR_SIZE; break; case 2: if (strncmp(put_str, "$OK", 3)) { @@ -424,6 +504,9 @@ if (strncmp(put_str, "$T0", 3)) { eprintk("kgdbts: failed continue sstep\n"); return 1; + } else { + char *ptr = &put_str[11]; + kgdb_hex2long(&ptr, &sstep_thread_id); } break; case 4: @@ -502,10 +585,10 @@ static struct test_struct singlestep_break_test[] = { { "?", "S0*" }, /* Clear break points */ { "kgdbts_break_test", "OK", sw_break, }, /* set sw breakpoint */ - { "c", "T0*", }, /* Continue */ + { "c", "T0*", NULL, get_thread_id_continue }, /* Continue */ + { "kgdbts_break_test", "OK", sw_rem_break }, /*remove breakpoint */ { "g", "kgdbts_break_test", NULL, check_and_rewind_pc }, { "write", "OK", write_regs }, /* Write registers */ - { "kgdbts_break_test", "OK", sw_rem_break }, /*remove breakpoint */ { "s", "T0*", emul_sstep_get, emul_sstep_put }, /* Single step */ { "g", "kgdbts_break_test", NULL, check_single_step }, { "kgdbts_break_test", "OK", sw_break, }, /* set sw breakpoint */ @@ -523,16 +606,16 @@ static struct test_struct do_fork_test[] = { { "?", "S0*" }, /* Clear break points */ { "do_fork", "OK", sw_break, }, /* set sw breakpoint */ - { "c", "T0*", }, /* Continue */ - { "g", "do_fork", NULL, check_and_rewind_pc }, /* check location */ - { "write", "OK", write_regs }, /* Write registers */ + { "c", "T0*", NULL, get_thread_id_continue }, /* Continue */ { "do_fork", "OK", sw_rem_break }, /*remove breakpoint */ + { "g", "do_fork", NULL, check_and_rewind_pc }, /* check location */ + { "write", "OK", write_regs, emul_reset }, /* Write registers */ { "s", "T0*", emul_sstep_get, emul_sstep_put }, /* Single step */ { "g", "do_fork", NULL, check_single_step }, { "do_fork", "OK", sw_break, }, /* set sw breakpoint */ { "7", "T0*", skip_back_repeat_test }, /* Loop based on repeat_test */ { "D", "OK", NULL, final_ack_set }, /* detach and unregister I/O */ - { "", "" }, + { "", "", get_cont_catch, put_cont_catch }, }; /* Test for hitting a breakpoint at sys_open for what ever the number @@ -541,16 +624,16 @@ static struct test_struct sys_open_test[] = { { "?", "S0*" }, /* Clear break points */ { "sys_open", "OK", sw_break, }, /* set sw breakpoint */ - { "c", "T0*", }, /* Continue */ - { "g", "sys_open", NULL, check_and_rewind_pc }, /* check location */ - { "write", "OK", write_regs }, /* Write registers */ + { "c", "T0*", NULL, get_thread_id_continue }, /* Continue */ { "sys_open", "OK", sw_rem_break }, /*remove breakpoint */ + { "g", "sys_open", NULL, check_and_rewind_pc }, /* check location */ + { "write", "OK", write_regs, emul_reset }, /* Write registers */ { "s", "T0*", emul_sstep_get, emul_sstep_put }, /* Single step */ { "g", "sys_open", NULL, check_single_step }, { "sys_open", "OK", sw_break, }, /* set sw breakpoint */ { "7", "T0*", skip_back_repeat_test }, /* Loop based on repeat_test */ { "D", "OK", NULL, final_ack_set }, /* detach and unregister I/O */ - { "", "" }, + { "", "", get_cont_catch, put_cont_catch }, }; /* @@ -693,8 +776,8 @@ /* This callback is a put char which is when kgdb sends data to * this I/O module. */ - if (ts.tst[ts.idx].get[0] == '\0' && - ts.tst[ts.idx].put[0] == '\0') { + if (ts.tst[ts.idx].get[0] == '\0' && ts.tst[ts.idx].put[0] == '\0' && + !ts.tst[ts.idx].get_handler) { eprintk("kgdbts: ERROR: beyond end of test on" " '%s' line %i\n", ts.name, ts.idx); return 0; @@ -907,6 +990,17 @@ if (ptr) sstep_test = simple_strtol(ptr+1, NULL, 10); + /* All HW break point tests */ + if (arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT) { + hwbreaks_ok = 1; + v1printk("kgdbts:RUN hw breakpoint test\n"); + run_breakpoint_test(1); + v1printk("kgdbts:RUN hw write breakpoint test\n"); + run_hw_break_test(1); + v1printk("kgdbts:RUN access write breakpoint test\n"); + run_hw_break_test(0); + } + /* required internal KGDB tests */ v1printk("kgdbts:RUN plant and detach test\n"); run_plant_and_detach_test(0); @@ -924,35 +1018,11 @@ /* ===Optional tests=== */ - /* All HW break point tests */ - if (arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT) { - hwbreaks_ok = 1; - v1printk("kgdbts:RUN hw breakpoint test\n"); - run_breakpoint_test(1); - v1printk("kgdbts:RUN hw write breakpoint test\n"); - run_hw_break_test(1); - v1printk("kgdbts:RUN access write breakpoint test\n"); - run_hw_break_test(0); - } - if (nmi_sleep) { v1printk("kgdbts:RUN NMI sleep %i seconds test\n", nmi_sleep); run_nmi_sleep_test(nmi_sleep); } -#ifdef CONFIG_DEBUG_RODATA - /* Until there is an api to write to read-only text segments, use - * HW breakpoints for the remainder of any tests, else print a - * failure message if hw breakpoints do not work. - */ - if (!(arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT && hwbreaks_ok)) { - eprintk("kgdbts: HW breakpoints do not work," - "skipping remaining tests\n"); - return; - } - force_hwbrks = 1; -#endif /* CONFIG_DEBUG_RODATA */ - /* If the do_fork test is run it will be the last test that is * executed because a kernel thread will be spawned at the very * end to unregister the debug hooks. --- linux-3.2.0.orig/drivers/misc/sgi-xp/xpc_main.c +++ linux-3.2.0/drivers/misc/sgi-xp/xpc_main.c @@ -53,6 +53,10 @@ #include #include "xpc.h" +#ifdef CONFIG_X86_64 +#include +#endif + /* define two XPC debug device structures to be used with dev_dbg() et al */ struct device_driver xpc_dbg_name = { @@ -1079,6 +1083,9 @@ return NOTIFY_DONE; } +/* Used to only allow one cpu to complete disconnect */ +static unsigned int xpc_die_disconnecting; + /* * Notify other partitions to deactivate from us by first disengaging from all * references to our memory. @@ -1092,6 +1099,9 @@ long keep_waiting; long wait_to_print; + if (cmpxchg(&xpc_die_disconnecting, 0, 1)) + return; + /* keep xpc_hb_checker thread from doing anything (just in case) */ xpc_exiting = 1; @@ -1159,7 +1169,7 @@ * about the lack of a heartbeat. */ static int -xpc_system_die(struct notifier_block *nb, unsigned long event, void *unused) +xpc_system_die(struct notifier_block *nb, unsigned long event, void *_die_args) { #ifdef CONFIG_IA64 /* !!! temporary kludge */ switch (event) { @@ -1191,7 +1201,27 @@ break; } #else - xpc_die_deactivate(); + struct die_args *die_args = _die_args; + + switch (event) { + case DIE_TRAP: + if (die_args->trapnr == X86_TRAP_DF) + xpc_die_deactivate(); + + if (((die_args->trapnr == X86_TRAP_MF) || + (die_args->trapnr == X86_TRAP_XF)) && + !user_mode_vm(die_args->regs)) + xpc_die_deactivate(); + + break; + case DIE_INT3: + case DIE_DEBUG: + break; + case DIE_OOPS: + case DIE_GPF: + default: + xpc_die_deactivate(); + } #endif return NOTIFY_DONE; --- linux-3.2.0.orig/drivers/misc/sgi-xp/xpc_uv.c +++ linux-3.2.0/drivers/misc/sgi-xp/xpc_uv.c @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include #include #include @@ -59,6 +61,8 @@ XPC_NOTIFY_MSG_SIZE_UV) #define XPC_NOTIFY_IRQ_NAME "xpc_notify" +static int xpc_mq_node = -1; + static struct xpc_gru_mq_uv *xpc_activate_mq_uv; static struct xpc_gru_mq_uv *xpc_notify_mq_uv; @@ -109,11 +113,8 @@ #if defined CONFIG_X86_64 mq->irq = uv_setup_irq(irq_name, cpu, mq->mmr_blade, mq->mmr_offset, UV_AFFINITY_CPU); - if (mq->irq < 0) { - dev_err(xpc_part, "uv_setup_irq() returned error=%d\n", - -mq->irq); + if (mq->irq < 0) return mq->irq; - } mq->mmr_value = uv_read_global_mmr64(mmr_pnode, mq->mmr_offset); @@ -238,8 +239,9 @@ mq->mmr_blade = uv_cpu_to_blade_id(cpu); nid = cpu_to_node(cpu); - page = alloc_pages_exact_node(nid, GFP_KERNEL | __GFP_ZERO | GFP_THISNODE, - pg_order); + page = alloc_pages_exact_node(nid, + GFP_KERNEL | __GFP_ZERO | GFP_THISNODE, + pg_order); if (page == NULL) { dev_err(xpc_part, "xpc_create_gru_mq_uv() failed to alloc %d " "bytes of memory on nid=%d for GRU mq\n", mq_size, nid); @@ -1731,9 +1733,50 @@ .notify_senders_of_disconnect = xpc_notify_senders_of_disconnect_uv, }; +static int +xpc_init_mq_node(int nid) +{ + int cpu; + + get_online_cpus(); + + for_each_cpu(cpu, cpumask_of_node(nid)) { + xpc_activate_mq_uv = + xpc_create_gru_mq_uv(XPC_ACTIVATE_MQ_SIZE_UV, nid, + XPC_ACTIVATE_IRQ_NAME, + xpc_handle_activate_IRQ_uv); + if (!IS_ERR(xpc_activate_mq_uv)) + break; + } + if (IS_ERR(xpc_activate_mq_uv)) { + put_online_cpus(); + return PTR_ERR(xpc_activate_mq_uv); + } + + for_each_cpu(cpu, cpumask_of_node(nid)) { + xpc_notify_mq_uv = + xpc_create_gru_mq_uv(XPC_NOTIFY_MQ_SIZE_UV, nid, + XPC_NOTIFY_IRQ_NAME, + xpc_handle_notify_IRQ_uv); + if (!IS_ERR(xpc_notify_mq_uv)) + break; + } + if (IS_ERR(xpc_notify_mq_uv)) { + xpc_destroy_gru_mq_uv(xpc_activate_mq_uv); + put_online_cpus(); + return PTR_ERR(xpc_notify_mq_uv); + } + + put_online_cpus(); + return 0; +} + int xpc_init_uv(void) { + int nid; + int ret = 0; + xpc_arch_ops = xpc_arch_ops_uv; if (sizeof(struct xpc_notify_mq_msghdr_uv) > XPC_MSG_HDR_MAX_SIZE) { @@ -1742,21 +1785,21 @@ return -E2BIG; } - xpc_activate_mq_uv = xpc_create_gru_mq_uv(XPC_ACTIVATE_MQ_SIZE_UV, 0, - XPC_ACTIVATE_IRQ_NAME, - xpc_handle_activate_IRQ_uv); - if (IS_ERR(xpc_activate_mq_uv)) - return PTR_ERR(xpc_activate_mq_uv); + if (xpc_mq_node < 0) + for_each_online_node(nid) { + ret = xpc_init_mq_node(nid); - xpc_notify_mq_uv = xpc_create_gru_mq_uv(XPC_NOTIFY_MQ_SIZE_UV, 0, - XPC_NOTIFY_IRQ_NAME, - xpc_handle_notify_IRQ_uv); - if (IS_ERR(xpc_notify_mq_uv)) { - xpc_destroy_gru_mq_uv(xpc_activate_mq_uv); - return PTR_ERR(xpc_notify_mq_uv); - } + if (!ret) + break; + } + else + ret = xpc_init_mq_node(xpc_mq_node); - return 0; + if (ret < 0) + dev_err(xpc_part, "xpc_init_mq_node() returned error=%d\n", + -ret); + + return ret; } void @@ -1765,3 +1808,6 @@ xpc_destroy_gru_mq_uv(xpc_notify_mq_uv); xpc_destroy_gru_mq_uv(xpc_activate_mq_uv); } + +module_param(xpc_mq_node, int, 0); +MODULE_PARM_DESC(xpc_mq_node, "Node number on which to allocate message queues."); --- linux-3.2.0.orig/drivers/misc/cb710/core.c +++ linux-3.2.0/drivers/misc/cb710/core.c @@ -245,6 +245,7 @@ if (err) return err; + spin_lock_init(&chip->irq_lock); chip->pdev = pdev; chip->iobase = pcim_iomap_table(pdev)[0]; --- linux-3.2.0.orig/drivers/cpufreq/cpufreq.c +++ linux-3.2.0/drivers/cpufreq/cpufreq.c @@ -126,6 +126,15 @@ } pure_initcall(init_cpufreq_transition_notifier_list); +static int off __read_mostly; +int cpufreq_disabled(void) +{ + return off; +} +void disable_cpufreq(void) +{ + off = 1; +} static LIST_HEAD(cpufreq_governor_list); static DEFINE_MUTEX(cpufreq_governor_mutex); @@ -1440,6 +1449,9 @@ { int retval = -EINVAL; + if (cpufreq_disabled()) + return -ENODEV; + pr_debug("target for CPU %u: %u kHz, relation %u\n", policy->cpu, target_freq, relation); if (cpu_online(policy->cpu) && cpufreq_driver->target) @@ -1548,6 +1560,9 @@ if (!governor) return -EINVAL; + if (cpufreq_disabled()) + return -ENODEV; + mutex_lock(&cpufreq_governor_mutex); err = -EBUSY; @@ -1571,6 +1586,9 @@ if (!governor) return; + if (cpufreq_disabled()) + return; + #ifdef CONFIG_HOTPLUG_CPU for_each_present_cpu(cpu) { if (cpu_online(cpu)) @@ -1798,6 +1816,20 @@ * REGISTER / UNREGISTER CPUFREQ DRIVER * *********************************************************************/ +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# @@ -1813,11 +1845,20 @@ unsigned long flags; int ret; + if (cpufreq_disabled()) + return -ENODEV; + if (!driver_data || !driver_data->verify || !driver_data->init || ((!driver_data->setpolicy) && (!driver_data->target))) 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; if (driver_data->setpolicy) driver_data->flags |= CPUFREQ_CONST_LOOPS; @@ -1902,6 +1943,9 @@ { int cpu; + if (cpufreq_disabled()) + return -ENODEV; + for_each_possible_cpu(cpu) { per_cpu(cpufreq_policy_cpu, cpu) = -1; init_rwsem(&per_cpu(cpu_policy_rwsem, cpu)); --- linux-3.2.0.orig/drivers/cpufreq/cpufreq_stats.c +++ linux-3.2.0/drivers/cpufreq/cpufreq_stats.c @@ -330,6 +330,7 @@ cpufreq_update_policy(cpu); break; case CPU_DOWN_PREPARE: + case CPU_DOWN_PREPARE_FROZEN: cpufreq_stats_free_sysfs(cpu); break; case CPU_DEAD: --- linux-3.2.0.orig/drivers/cpufreq/powernow-k8.c +++ linux-3.2.0/drivers/cpufreq/powernow-k8.c @@ -32,7 +32,6 @@ #include #include #include -#include /* for current / set_cpus_allowed() */ #include #include @@ -54,6 +53,9 @@ static int cpu_family = CPU_OPTERON; +/* array to map SW pstate number to acpi state */ +static u32 ps_to_as[8]; + /* core performance boost */ static bool cpb_capable, cpb_enabled; static struct msr __percpu *msrs; @@ -80,9 +82,9 @@ } static u32 find_khz_freq_from_pstate(struct cpufreq_frequency_table *data, - u32 pstate) + u32 pstate) { - return data[pstate].frequency; + return data[ps_to_as[pstate]].frequency; } /* Return the vco fid for an input fid @@ -926,23 +928,27 @@ invalidate_entry(powernow_table, i); continue; } - rdmsr(MSR_PSTATE_DEF_BASE + index, lo, hi); - if (!(hi & HW_PSTATE_VALID_MASK)) { - pr_debug("invalid pstate %d, ignoring\n", index); - invalidate_entry(powernow_table, i); - continue; - } - powernow_table[i].index = index; + ps_to_as[index] = i; /* Frequency may be rounded for these */ if ((boot_cpu_data.x86 == 0x10 && boot_cpu_data.x86_model < 10) || boot_cpu_data.x86 == 0x11) { + + rdmsr(MSR_PSTATE_DEF_BASE + index, lo, hi); + if (!(hi & HW_PSTATE_VALID_MASK)) { + pr_debug("invalid pstate %d, ignoring\n", index); + invalidate_entry(powernow_table, i); + continue; + } + powernow_table[i].frequency = freq_from_fid_did(lo & 0x3f, (lo >> 6) & 7); } else powernow_table[i].frequency = data->acpi_data.states[i].core_frequency * 1000; + + powernow_table[i].index = index; } return 0; } @@ -1125,16 +1131,23 @@ return res; } -/* Driver entry point to switch to the target frequency */ -static int powernowk8_target(struct cpufreq_policy *pol, - unsigned targfreq, unsigned relation) -{ - cpumask_var_t oldmask; +struct powernowk8_target_arg { + struct cpufreq_policy *pol; + unsigned targfreq; + unsigned relation; +}; + +static long powernowk8_target_fn(void *arg) +{ + struct powernowk8_target_arg *pta = arg; + struct cpufreq_policy *pol = pta->pol; + unsigned targfreq = pta->targfreq; + unsigned relation = pta->relation; struct powernow_k8_data *data = per_cpu(powernow_data, pol->cpu); u32 checkfid; u32 checkvid; unsigned int newstate; - int ret = -EIO; + int ret; if (!data) return -EINVAL; @@ -1142,29 +1155,16 @@ checkfid = data->currfid; checkvid = data->currvid; - /* only run on specific CPU from here on. */ - /* This is poor form: use a workqueue or smp_call_function_single */ - if (!alloc_cpumask_var(&oldmask, GFP_KERNEL)) - return -ENOMEM; - - cpumask_copy(oldmask, tsk_cpus_allowed(current)); - set_cpus_allowed_ptr(current, cpumask_of(pol->cpu)); - - if (smp_processor_id() != pol->cpu) { - printk(KERN_ERR PFX "limiting to cpu %u failed\n", pol->cpu); - goto err_out; - } - if (pending_bit_stuck()) { printk(KERN_ERR PFX "failing targ, change pending bit set\n"); - goto err_out; + return -EIO; } pr_debug("targ: cpu %d, %d kHz, min %d, max %d, relation %d\n", pol->cpu, targfreq, pol->min, pol->max, relation); if (query_current_values_with_pending_wait(data)) - goto err_out; + return -EIO; if (cpu_family != CPU_HW_PSTATE) { pr_debug("targ: curr fid 0x%x, vid 0x%x\n", @@ -1182,35 +1182,41 @@ if (cpufreq_frequency_table_target(pol, data->powernow_table, targfreq, relation, &newstate)) - goto err_out; + return -EIO; mutex_lock(&fidvid_mutex); powernow_k8_acpi_pst_values(data, newstate); if (cpu_family == CPU_HW_PSTATE) - ret = transition_frequency_pstate(data, newstate); + ret = transition_frequency_pstate(data, + data->powernow_table[newstate].index); else ret = transition_frequency_fidvid(data, newstate); if (ret) { printk(KERN_ERR PFX "transition frequency failed\n"); - ret = 1; mutex_unlock(&fidvid_mutex); - goto err_out; + return 1; } mutex_unlock(&fidvid_mutex); if (cpu_family == CPU_HW_PSTATE) pol->cur = find_khz_freq_from_pstate(data->powernow_table, - newstate); + data->powernow_table[newstate].index); else pol->cur = find_khz_freq_from_fid(data->currfid); - ret = 0; -err_out: - set_cpus_allowed_ptr(current, oldmask); - free_cpumask_var(oldmask); - return ret; + return 0; +} + +/* Driver entry point to switch to the target frequency */ +static int powernowk8_target(struct cpufreq_policy *pol, + unsigned targfreq, unsigned relation) +{ + struct powernowk8_target_arg pta = { .pol = pol, .targfreq = targfreq, + .relation = relation }; + + return work_on_cpu(pol->cpu, powernowk8_target_fn, &pta); } /* Driver entry point to verify the policy and range of frequencies */ --- linux-3.2.0.orig/drivers/vhost/vhost.c +++ linux-3.2.0/drivers/vhost/vhost.c @@ -222,6 +222,8 @@ if (work) { __set_current_state(TASK_RUNNING); work->fn(work); + if (need_resched()) + schedule(); } else schedule(); @@ -1071,7 +1073,7 @@ } _iov = iov + ret; size = reg->memory_size - addr + reg->guest_phys_addr; - _iov->iov_len = min((u64)len, size); + _iov->iov_len = min((u64)len - s, size); _iov->iov_base = (void __user *)(unsigned long) (reg->userspace_addr + addr - reg->guest_phys_addr); s += size; --- linux-3.2.0.orig/drivers/vhost/net.c +++ linux-3.2.0/drivers/vhost/net.c @@ -234,7 +234,8 @@ msg.msg_controllen = 0; ubufs = NULL; } else { - struct ubuf_info *ubuf = &vq->ubuf_info[head]; + struct ubuf_info *ubuf; + ubuf = vq->ubuf_info + vq->upend_idx; vq->heads[vq->upend_idx].len = len; ubuf->callback = vhost_zerocopy_callback; @@ -371,7 +372,8 @@ .hdr.gso_type = VIRTIO_NET_HDR_GSO_NONE }; size_t total_len = 0; - int err, headcount, mergeable; + int err, mergeable; + s16 headcount; size_t vhost_hlen, sock_hlen; size_t vhost_len, sock_len; /* TODO: check that we are running from vhost_worker? */ --- linux-3.2.0.orig/drivers/gpu/vga/vga_switcheroo.c +++ linux-3.2.0/drivers/gpu/vga/vga_switcheroo.c @@ -26,6 +26,7 @@ #include #include +#include #include struct vga_switcheroo_client { @@ -256,8 +257,10 @@ if (new_client->fb_info) { struct fb_event event; + console_lock(); event.info = new_client->fb_info; fb_notifier_call_chain(FB_EVENT_REMAP_ALL_CONSOLE, &event); + console_unlock(); } ret = vgasr_priv.handler->switchto(new_client->id); --- linux-3.2.0.orig/drivers/gpu/drm/drm_auth.c +++ linux-3.2.0/drivers/gpu/drm/drm_auth.c @@ -101,7 +101,7 @@ * Searches and unlinks the entry in drm_device::magiclist with the magic * number hash key, while holding the drm_device::struct_mutex lock. */ -static int drm_remove_magic(struct drm_master *master, drm_magic_t magic) +int drm_remove_magic(struct drm_master *master, drm_magic_t magic) { struct drm_magic_entry *pt; struct drm_hash_item *hash; @@ -136,6 +136,8 @@ * If there is a magic number in drm_file::magic then use it, otherwise * searches an unique non-zero magic number and add it associating it with \p * file_priv. + * This ioctl needs protection by the drm_global_mutex, which protects + * struct drm_file::magic and struct drm_magic_entry::priv. */ int drm_getmagic(struct drm_device *dev, void *data, struct drm_file *file_priv) { @@ -173,6 +175,8 @@ * \return zero if authentication successed, or a negative number otherwise. * * Checks if \p file_priv is associated with the magic number passed in \arg. + * This ioctl needs protection by the drm_global_mutex, which protects + * struct drm_file::magic and struct drm_magic_entry::priv. */ int drm_authmagic(struct drm_device *dev, void *data, struct drm_file *file_priv) --- linux-3.2.0.orig/drivers/gpu/drm/drm_crtc.c +++ linux-3.2.0/drivers/gpu/drm/drm_crtc.c @@ -1625,10 +1625,8 @@ if (!drm_core_check_feature(dev, DRIVER_MODESET)) return -EINVAL; - if (!req->flags) { - DRM_ERROR("no operation set\n"); + if (!req->flags || (~DRM_MODE_CURSOR_FLAGS & req->flags)) return -EINVAL; - } mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, req->crtc_id, DRM_MODE_OBJECT_CRTC); @@ -1641,7 +1639,6 @@ if (req->flags & DRM_MODE_CURSOR_BO) { if (!crtc->funcs->cursor_set) { - DRM_ERROR("crtc does not support cursor\n"); ret = -ENXIO; goto out; } @@ -1654,7 +1651,6 @@ if (crtc->funcs->cursor_move) { ret = crtc->funcs->cursor_move(crtc, req->x, req->y); } else { - DRM_ERROR("crtc does not support cursor\n"); ret = -EFAULT; goto out; } @@ -1692,14 +1688,11 @@ if (!drm_core_check_feature(dev, DRIVER_MODESET)) return -EINVAL; - if ((config->min_width > r->width) || (r->width > config->max_width)) { - DRM_ERROR("mode new framebuffer width not within limits\n"); + if ((config->min_width > r->width) || (r->width > config->max_width)) return -EINVAL; - } - if ((config->min_height > r->height) || (r->height > config->max_height)) { - DRM_ERROR("mode new framebuffer height not within limits\n"); + + if ((config->min_height > r->height) || (r->height > config->max_height)) return -EINVAL; - } mutex_lock(&dev->mode_config.mutex); @@ -1756,7 +1749,6 @@ obj = drm_mode_object_find(dev, *id, DRM_MODE_OBJECT_FB); /* TODO check that we really get a framebuffer back. */ if (!obj) { - DRM_ERROR("mode invalid framebuffer id\n"); ret = -EINVAL; goto out; } @@ -1767,7 +1759,6 @@ found = 1; if (!found) { - DRM_ERROR("tried to remove a fb that we didn't own\n"); ret = -EINVAL; goto out; } @@ -1814,7 +1805,6 @@ mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, r->fb_id, DRM_MODE_OBJECT_FB); if (!obj) { - DRM_ERROR("invalid framebuffer id\n"); ret = -EINVAL; goto out; } @@ -1850,7 +1840,6 @@ mutex_lock(&dev->mode_config.mutex); obj = drm_mode_object_find(dev, r->fb_id, DRM_MODE_OBJECT_FB); if (!obj) { - DRM_ERROR("invalid framebuffer id\n"); ret = -EINVAL; goto out_err1; } --- linux-3.2.0.orig/drivers/gpu/drm/Kconfig +++ linux-3.2.0/drivers/gpu/drm/Kconfig @@ -27,6 +27,18 @@ help FB and CRTC helpers for KMS drivers. +config DRM_LOAD_EDID_FIRMWARE + bool "Allow to specify an EDID data set instead of probing for it" + depends on DRM_KMS_HELPER + help + Say Y here, if you want to use EDID data to be loaded from the + /lib/firmware directory or one of the provided built-in + data sets. This may be necessary, if the graphics adapter or + monitor are unable to provide appropriate EDID data. Since this + feature is provided as a workaround for broken hardware, the + default case is N. Details and instructions how to build your own + EDID data are given in Documentation/EDID/HOWTO.txt. + config DRM_TTM tristate depends on DRM --- linux-3.2.0.orig/drivers/gpu/drm/drm_crtc_helper.c +++ linux-3.2.0/drivers/gpu/drm/drm_crtc_helper.c @@ -36,6 +36,7 @@ #include "drm_crtc.h" #include "drm_crtc_helper.h" #include "drm_fb_helper.h" +#include "drm_edid.h" static bool drm_kms_helper_poll = true; module_param_named(poll, drm_kms_helper_poll, bool, 0600); @@ -117,7 +118,12 @@ goto prune; } - count = (*connector_funcs->get_modes)(connector); +#ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE + count = drm_load_edid_firmware(connector); + if (count == 0) +#endif + count = (*connector_funcs->get_modes)(connector); + if (count == 0 && connector->status == connector_status_connected) count = drm_add_modes_noedid(connector, 1024, 768); if (count == 0) @@ -321,8 +327,8 @@ * drm_crtc_set_mode - set a mode * @crtc: CRTC to program * @mode: mode to use - * @x: width of mode - * @y: height of mode + * @x: horizontal offset into the surface + * @y: vertical offset into the surface * * LOCKING: * Caller must hold mode config lock. --- linux-3.2.0.orig/drivers/gpu/drm/drm_fb_helper.c +++ linux-3.2.0/drivers/gpu/drm/drm_fb_helper.c @@ -610,9 +610,13 @@ return -EINVAL; /* Need to resize the fb object !!! */ - if (var->bits_per_pixel > fb->bits_per_pixel || var->xres > fb->width || var->yres > fb->height) { + if (var->bits_per_pixel > fb->bits_per_pixel || + var->xres > fb->width || var->yres > fb->height || + var->xres_virtual > fb->width || var->yres_virtual > fb->height) { DRM_DEBUG("fb userspace requested width/height/bpp is greater than current fb " - "object %dx%d-%d > %dx%d-%d\n", var->xres, var->yres, var->bits_per_pixel, + "request %dx%d-%d (virtual %dx%d) > %dx%d-%d\n", + var->xres, var->yres, var->bits_per_pixel, + var->xres_virtual, var->yres_virtual, fb->width, fb->height, fb->bits_per_pixel); return -EINVAL; } --- linux-3.2.0.orig/drivers/gpu/drm/Makefile +++ linux-3.2.0/drivers/gpu/drm/Makefile @@ -17,6 +17,7 @@ drm-$(CONFIG_COMPAT) += drm_ioc32.o drm_kms_helper-y := drm_fb_helper.o drm_crtc_helper.o drm_dp_i2c_helper.o +drm_kms_helper-$(CONFIG_DRM_LOAD_EDID_FIRMWARE) += drm_edid_load.o obj-$(CONFIG_DRM_KMS_HELPER) += drm_kms_helper.o --- linux-3.2.0.orig/drivers/gpu/drm/drm_pci.c +++ linux-3.2.0/drivers/gpu/drm/drm_pci.c @@ -369,6 +369,10 @@ list_add_tail(&dev->driver_item, &driver->device_list); + if (drm_core_check_feature(dev, DRIVER_MODESET)) + idr_replace(&drm_minors_idr, dev->control, dev->control->index); + idr_replace(&drm_minors_idr, dev->primary, dev->primary->index); + DRM_INFO("Initialized %s %d.%d.%d %s for %s on minor %d\n", driver->name, driver->major, driver->minor, driver->patchlevel, driver->date, pci_name(pdev), dev->primary->index); --- linux-3.2.0.orig/drivers/gpu/drm/drm_edid_load.c +++ linux-3.2.0/drivers/gpu/drm/drm_edid_load.c @@ -0,0 +1,250 @@ +/* + drm_edid_load.c: use a built-in EDID data set or load it via the firmware + interface + + Copyright (C) 2012 Carsten Emde + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#include +#include +#include "drmP.h" +#include "drm_crtc.h" +#include "drm_crtc_helper.h" +#include "drm_edid.h" + +static char edid_firmware[PATH_MAX]; +module_param_string(edid_firmware, edid_firmware, sizeof(edid_firmware), 0644); +MODULE_PARM_DESC(edid_firmware, "Do not probe monitor, use specified EDID blob " + "from built-in data or /lib/firmware instead. "); + +#define GENERIC_EDIDS 4 +static char *generic_edid_name[GENERIC_EDIDS] = { + "edid/1024x768.bin", + "edid/1280x1024.bin", + "edid/1680x1050.bin", + "edid/1920x1080.bin", +}; + +static u8 generic_edid[GENERIC_EDIDS][128] = { + { + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x31, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x16, 0x01, 0x03, 0x6d, 0x23, 0x1a, 0x78, + 0xea, 0x5e, 0xc0, 0xa4, 0x59, 0x4a, 0x98, 0x25, + 0x20, 0x50, 0x54, 0x00, 0x08, 0x00, 0x61, 0x40, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x64, 0x19, + 0x00, 0x40, 0x41, 0x00, 0x26, 0x30, 0x08, 0x90, + 0x36, 0x00, 0x63, 0x0a, 0x11, 0x00, 0x00, 0x18, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x4c, 0x69, 0x6e, + 0x75, 0x78, 0x20, 0x23, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x3b, + 0x3d, 0x2f, 0x31, 0x07, 0x00, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc, + 0x00, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x20, 0x58, + 0x47, 0x41, 0x0a, 0x20, 0x20, 0x20, 0x00, 0x55, + }, + { + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x31, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x16, 0x01, 0x03, 0x6d, 0x2c, 0x23, 0x78, + 0xea, 0x5e, 0xc0, 0xa4, 0x59, 0x4a, 0x98, 0x25, + 0x20, 0x50, 0x54, 0x00, 0x00, 0x00, 0x81, 0x80, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x30, 0x2a, + 0x00, 0x98, 0x51, 0x00, 0x2a, 0x40, 0x30, 0x70, + 0x13, 0x00, 0xbc, 0x63, 0x11, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x4c, 0x69, 0x6e, + 0x75, 0x78, 0x20, 0x23, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x3b, + 0x3d, 0x3e, 0x40, 0x0b, 0x00, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc, + 0x00, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x20, 0x53, + 0x58, 0x47, 0x41, 0x0a, 0x20, 0x20, 0x00, 0xa0, + }, + { + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x31, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x16, 0x01, 0x03, 0x6d, 0x2b, 0x1b, 0x78, + 0xea, 0x5e, 0xc0, 0xa4, 0x59, 0x4a, 0x98, 0x25, + 0x20, 0x50, 0x54, 0x00, 0x00, 0x00, 0xb3, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x21, 0x39, + 0x90, 0x30, 0x62, 0x1a, 0x27, 0x40, 0x68, 0xb0, + 0x36, 0x00, 0xb5, 0x11, 0x11, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x4c, 0x69, 0x6e, + 0x75, 0x78, 0x20, 0x23, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x3b, + 0x3d, 0x40, 0x42, 0x0f, 0x00, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc, + 0x00, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x20, 0x57, + 0x53, 0x58, 0x47, 0x41, 0x0a, 0x20, 0x00, 0x26, + }, + { + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x31, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x16, 0x01, 0x03, 0x6d, 0x32, 0x1c, 0x78, + 0xea, 0x5e, 0xc0, 0xa4, 0x59, 0x4a, 0x98, 0x25, + 0x20, 0x50, 0x54, 0x00, 0x00, 0x00, 0xd1, 0xc0, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x3a, + 0x80, 0x18, 0x71, 0x38, 0x2d, 0x40, 0x58, 0x2c, + 0x45, 0x00, 0xf4, 0x19, 0x11, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x4c, 0x69, 0x6e, + 0x75, 0x78, 0x20, 0x23, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x3b, + 0x3d, 0x42, 0x44, 0x0f, 0x00, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc, + 0x00, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x20, 0x46, + 0x48, 0x44, 0x0a, 0x20, 0x20, 0x20, 0x00, 0x05, + }, +}; + +static int edid_load(struct drm_connector *connector, char *name, + char *connector_name) +{ + const struct firmware *fw; + struct platform_device *pdev; + u8 *fwdata = NULL, *edid; + int fwsize, expected; + int builtin = 0, err = 0; + int i, valid_extensions = 0; + + pdev = platform_device_register_simple(connector_name, -1, NULL, 0); + if (IS_ERR(pdev)) { + DRM_ERROR("Failed to register EDID firmware platform device " + "for connector \"%s\"\n", connector_name); + err = -EINVAL; + goto out; + } + + err = request_firmware(&fw, name, &pdev->dev); + platform_device_unregister(pdev); + + if (err) { + i = 0; + while (i < GENERIC_EDIDS && strcmp(name, generic_edid_name[i])) + i++; + if (i < GENERIC_EDIDS) { + err = 0; + builtin = 1; + fwdata = generic_edid[i]; + fwsize = sizeof(generic_edid[i]); + } + } + + if (err) { + DRM_ERROR("Requesting EDID firmware \"%s\" failed (err=%d)\n", + name, err); + goto out; + } + + if (fwdata == NULL) { + fwdata = (u8 *) fw->data; + fwsize = fw->size; + } + + expected = (fwdata[0x7e] + 1) * EDID_LENGTH; + if (expected != fwsize) { + DRM_ERROR("Size of EDID firmware \"%s\" is invalid " + "(expected %d, got %d)\n", name, expected, (int) fwsize); + err = -EINVAL; + goto relfw_out; + } + + edid = kmalloc(fwsize, GFP_KERNEL); + if (edid == NULL) { + err = -ENOMEM; + goto relfw_out; + } + memcpy(edid, fwdata, fwsize); + + if (!drm_edid_block_valid(edid)) { + DRM_ERROR("Base block of EDID firmware \"%s\" is invalid ", + name); + kfree(edid); + err = -EINVAL; + goto relfw_out; + } + + for (i = 1; i <= edid[0x7e]; i++) { + if (i != valid_extensions + 1) + memcpy(edid + (valid_extensions + 1) * EDID_LENGTH, + edid + i * EDID_LENGTH, EDID_LENGTH); + if (drm_edid_block_valid(edid + i * EDID_LENGTH)) + valid_extensions++; + } + + if (valid_extensions != edid[0x7e]) { + edid[EDID_LENGTH-1] += edid[0x7e] - valid_extensions; + DRM_INFO("Found %d valid extensions instead of %d in EDID data " + "\"%s\" for connector \"%s\"\n", valid_extensions, + edid[0x7e], name, connector_name); + edid[0x7e] = valid_extensions; + edid = krealloc(edid, (valid_extensions + 1) * EDID_LENGTH, + GFP_KERNEL); + if (edid == NULL) { + err = -ENOMEM; + goto relfw_out; + } + } + + connector->display_info.raw_edid = edid; + DRM_INFO("Got %s EDID base block and %d extension%s from " + "\"%s\" for connector \"%s\"\n", builtin ? "built-in" : + "external", valid_extensions, valid_extensions == 1 ? "" : "s", + name, connector_name); + +relfw_out: + release_firmware(fw); + +out: + return err; +} + +int drm_load_edid_firmware(struct drm_connector *connector) +{ + char *connector_name = drm_get_connector_name(connector); + char *edidname = edid_firmware, *last, *colon; + int ret = 0; + + if (*edidname == '\0') + return ret; + + colon = strchr(edidname, ':'); + if (colon != NULL) { + if (strncmp(connector_name, edidname, colon - edidname)) + return ret; + edidname = colon + 1; + if (*edidname == '\0') + return ret; + } + + last = edidname + strlen(edidname) - 1; + if (*last == '\n') + *last = '\0'; + + ret = edid_load(connector, edidname, connector_name); + if (ret) + return 0; + + drm_mode_connector_update_edid_property(connector, + (struct edid *) connector->display_info.raw_edid); + + return drm_add_edid_modes(connector, (struct edid *) + connector->display_info.raw_edid); +} --- linux-3.2.0.orig/drivers/gpu/drm/drm_stub.c +++ linux-3.2.0/drivers/gpu/drm/drm_stub.c @@ -356,7 +356,7 @@ new_minor->index = minor_id; INIT_LIST_HEAD(&new_minor->master_list); - idr_replace(&drm_minors_idr, new_minor, minor_id); + idr_replace(&drm_minors_idr, ERR_PTR(-EAGAIN), minor_id); if (type == DRM_MINOR_LEGACY) { ret = drm_proc_init(new_minor, minor_id, drm_proc_root); --- linux-3.2.0.orig/drivers/gpu/drm/drm_platform.c +++ linux-3.2.0/drivers/gpu/drm/drm_platform.c @@ -90,6 +90,10 @@ list_add_tail(&dev->driver_item, &driver->device_list); + if (drm_core_check_feature(dev, DRIVER_MODESET)) + idr_replace(&drm_minors_idr, dev->control, dev->control->index); + idr_replace(&drm_minors_idr, dev->primary, dev->primary->index); + mutex_unlock(&drm_global_mutex); DRM_INFO("Initialized %s %d.%d.%d %s on minor %d\n", --- linux-3.2.0.orig/drivers/gpu/drm/drm_irq.c +++ linux-3.2.0/drivers/gpu/drm/drm_irq.c @@ -981,7 +981,7 @@ */ void drm_vblank_pre_modeset(struct drm_device *dev, int crtc) { - /* vblank is not initialized (IRQ not installed ?) */ + /* vblank is not initialized (IRQ not installed ?), or has been freed */ if (!dev->num_crtcs) return; /* @@ -1003,6 +1003,10 @@ { unsigned long irqflags; + /* vblank is not initialized (IRQ not installed ?), or has been freed */ + if (!dev->num_crtcs) + return; + if (dev->vblank_inmodeset[crtc]) { spin_lock_irqsave(&dev->vbl_lock, irqflags); dev->vblank_disable_allowed = 1; --- linux-3.2.0.orig/drivers/gpu/drm/drm_usb.c +++ linux-3.2.0/drivers/gpu/drm/drm_usb.c @@ -19,7 +19,7 @@ usbdev = interface_to_usbdev(interface); dev->usbdev = usbdev; - dev->dev = &usbdev->dev; + dev->dev = &interface->dev; mutex_lock(&drm_global_mutex); --- linux-3.2.0.orig/drivers/gpu/drm/drm_fops.c +++ linux-3.2.0/drivers/gpu/drm/drm_fops.c @@ -129,15 +129,19 @@ minor = idr_find(&drm_minors_idr, minor_id); if (!minor) return -ENODEV; - + if (IS_ERR(minor)) + return PTR_ERR(minor); if (!(dev = minor->dev)) return -ENODEV; retcode = drm_open_helper(inode, filp, dev); if (!retcode) { atomic_inc(&dev->counts[_DRM_STAT_OPENS]); - if (!dev->open_count++) + if (!dev->open_count++) { retcode = drm_setup(dev); + if (retcode) + dev->open_count--; + } } if (!retcode) { mutex_lock(&dev->struct_mutex); @@ -177,7 +181,10 @@ minor = idr_find(&drm_minors_idr, minor_id); if (!minor) goto out; - + if (IS_ERR(minor)) { + err = PTR_ERR(minor); + goto out; + } if (!(dev = minor->dev)) goto out; @@ -487,6 +494,11 @@ (long)old_encode_dev(file_priv->minor->device), dev->open_count); + /* Release any auth tokens that might point to this file_priv, + (do that under the drm_global_mutex) */ + if (file_priv->magic) + (void) drm_remove_magic(file_priv->master, file_priv->magic); + /* if the master has gone away we can't do anything with the lock */ if (file_priv->minor->master) drm_master_release(dev, filp); --- linux-3.2.0.orig/drivers/gpu/drm/drm_edid.c +++ linux-3.2.0/drivers/gpu/drm/drm_edid.c @@ -66,6 +66,8 @@ #define EDID_QUIRK_FIRST_DETAILED_PREFERRED (1 << 5) /* use +hsync +vsync for detailed mode */ #define EDID_QUIRK_DETAILED_SYNC_PP (1 << 6) +/* Force reduced-blanking timings for detailed modes */ +#define EDID_QUIRK_FORCE_REDUCED_BLANKING (1 << 7) struct detailed_mode_closure { struct drm_connector *connector; @@ -120,6 +122,9 @@ /* Samsung SyncMaster 22[5-6]BW */ { "SAM", 596, EDID_QUIRK_PREFER_LARGE_60 }, { "SAM", 638, EDID_QUIRK_PREFER_LARGE_60 }, + + /* ViewSonic VA2026w */ + { "VSC", 5020, EDID_QUIRK_FORCE_REDUCED_BLANKING }, }; /*** DDC fetch and block validation ***/ @@ -149,8 +154,7 @@ * Sanity check the EDID block (base or extension). Return 0 if the block * doesn't check out, or 1 if it's valid. */ -static bool -drm_edid_block_valid(u8 *raw_edid) +bool drm_edid_block_valid(u8 *raw_edid) { int i; u8 csum = 0; @@ -203,6 +207,7 @@ } return 0; } +EXPORT_SYMBOL(drm_edid_block_valid); /** * drm_edid_is_valid - sanity check EDID data @@ -266,6 +271,11 @@ } }; ret = i2c_transfer(adapter, msgs, 2); + if (ret == -ENXIO) { + DRM_DEBUG_KMS("drm: skipping non-existent adapter %s\n", + adapter->name); + break; + } } while (ret != 2 && --retries); return ret == 2 ? 0 : -1; @@ -585,7 +595,7 @@ drm_monitor_supports_rb(struct edid *edid) { if (edid->revision >= 4) { - bool ret; + bool ret = false; drm_for_each_detailed_block((u8 *)edid, is_rb, &ret); return ret; } @@ -842,7 +852,7 @@ unsigned vblank = (pt->vactive_vblank_hi & 0xf) << 8 | pt->vblank_lo; unsigned hsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc0) << 2 | pt->hsync_offset_lo; unsigned hsync_pulse_width = (pt->hsync_vsync_offset_pulse_width_hi & 0x30) << 4 | pt->hsync_pulse_width_lo; - unsigned vsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc) >> 2 | pt->vsync_offset_pulse_width_lo >> 4; + unsigned vsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc) << 2 | pt->vsync_offset_pulse_width_lo >> 4; unsigned vsync_pulse_width = (pt->hsync_vsync_offset_pulse_width_hi & 0x3) << 4 | (pt->vsync_offset_pulse_width_lo & 0xf); /* ignore tiny modes */ @@ -863,12 +873,19 @@ "Wrong Hsync/Vsync pulse width\n"); return NULL; } + + if (quirks & EDID_QUIRK_FORCE_REDUCED_BLANKING) { + mode = drm_cvt_mode(dev, hactive, vactive, 60, true, false, false); + if (!mode) + return NULL; + + goto set_size; + } + mode = drm_mode_create(dev); if (!mode) return NULL; - mode->type = DRM_MODE_TYPE_DRIVER; - if (quirks & EDID_QUIRK_135_CLOCK_TOO_HIGH) timing->pixel_clock = cpu_to_le16(1088); @@ -892,8 +909,6 @@ drm_mode_do_interlace_quirk(mode, pt); - drm_mode_set_name(mode); - if (quirks & EDID_QUIRK_DETAILED_SYNC_PP) { pt->misc |= DRM_EDID_PT_HSYNC_POSITIVE | DRM_EDID_PT_VSYNC_POSITIVE; } @@ -903,6 +918,7 @@ mode->flags |= (pt->misc & DRM_EDID_PT_VSYNC_POSITIVE) ? DRM_MODE_FLAG_PVSYNC : DRM_MODE_FLAG_NVSYNC; +set_size: mode->width_mm = pt->width_mm_lo | (pt->width_height_mm_hi & 0xf0) << 4; mode->height_mm = pt->height_mm_lo | (pt->width_height_mm_hi & 0xf) << 8; @@ -916,6 +932,10 @@ mode->height_mm = edid->height_cm * 10; } + mode->type = DRM_MODE_TYPE_DRIVER; + mode->vrefresh = drm_mode_vrefresh(mode); + drm_mode_set_name(mode); + return mode; } @@ -1721,7 +1741,8 @@ num_modes += add_cvt_modes(connector, edid); num_modes += add_standard_modes(connector, edid); num_modes += add_established_modes(connector, edid); - num_modes += add_inferred_modes(connector, edid); + if (edid->features & DRM_EDID_FEATURE_DEFAULT_GTF) + num_modes += add_inferred_modes(connector, edid); if (quirks & (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_LARGE_75)) edid_fixup_preferred(connector, quirks); --- linux-3.2.0.orig/drivers/gpu/drm/ttm/ttm_page_alloc.c +++ linux-3.2.0/drivers/gpu/drm/ttm/ttm_page_alloc.c @@ -708,7 +708,10 @@ /* clear the pages coming from the pool if requested */ if (flags & TTM_PAGE_FLAG_ZERO_ALLOC) { list_for_each_entry(p, pages, lru) { - clear_page(page_address(p)); + if (PageHighMem(p)) + clear_highpage(p); + else + clear_page(page_address(p)); } } --- linux-3.2.0.orig/drivers/gpu/drm/ttm/ttm_bo.c +++ linux-3.2.0/drivers/gpu/drm/ttm/ttm_bo.c @@ -1816,6 +1816,7 @@ spin_unlock(&glob->lru_lock); (void) ttm_bo_cleanup_refs(bo, false, false, false); kref_put(&bo->list_kref, ttm_bo_release_list); + spin_lock(&glob->lru_lock); continue; } --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_display.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_display.c @@ -25,6 +25,7 @@ */ #include +#include #include #include #include @@ -138,8 +139,8 @@ .vco = { .min = 1400000, .max = 2800000 }, .n = { .min = 1, .max = 6 }, .m = { .min = 70, .max = 120 }, - .m1 = { .min = 10, .max = 22 }, - .m2 = { .min = 5, .max = 9 }, + .m1 = { .min = 8, .max = 18 }, + .m2 = { .min = 3, .max = 7 }, .p = { .min = 5, .max = 80 }, .p1 = { .min = 1, .max = 8 }, .p2 = { .dot_limit = 200000, @@ -356,6 +357,27 @@ .find_pll = intel_find_pll_ironlake_dp, }; +static bool is_dual_link_lvds(struct drm_i915_private *dev_priv, + unsigned int reg) +{ + unsigned int val; + + if (dev_priv->lvds_val) + val = dev_priv->lvds_val; + else { + /* BIOS should set the proper LVDS register value at boot, but + * in reality, it doesn't set the value when the lid is closed; + * we need to check "the value to be set" in VBT when LVDS + * register is uninitialized. + */ + val = I915_READ(reg); + if (!(val & ~LVDS_DETECTED)) + val = dev_priv->bios_lvds_val; + dev_priv->lvds_val = val; + } + return (val & LVDS_CLKB_POWER_MASK) == LVDS_CLKB_POWER_UP; +} + static const intel_limit_t *intel_ironlake_limit(struct drm_crtc *crtc, int refclk) { @@ -364,8 +386,7 @@ const intel_limit_t *limit; if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) { - if ((I915_READ(PCH_LVDS) & LVDS_CLKB_POWER_MASK) == - LVDS_CLKB_POWER_UP) { + if (is_dual_link_lvds(dev_priv, PCH_LVDS)) { /* LVDS dual channel */ if (refclk == 100000) limit = &intel_limits_ironlake_dual_lvds_100m; @@ -393,8 +414,7 @@ const intel_limit_t *limit; if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) { - if ((I915_READ(LVDS) & LVDS_CLKB_POWER_MASK) == - LVDS_CLKB_POWER_UP) + if (is_dual_link_lvds(dev_priv, LVDS)) /* LVDS with dual channel */ limit = &intel_limits_g4x_dual_channel_lvds; else @@ -531,8 +551,7 @@ * reliably set up different single/dual channel state, if we * even can. */ - if ((I915_READ(LVDS) & LVDS_CLKB_POWER_MASK) == - LVDS_CLKB_POWER_UP) + if (is_dual_link_lvds(dev_priv, LVDS)) clock.p2 = limit->p2.p2_fast; else clock.p2 = limit->p2.p2_slow; @@ -1072,8 +1091,8 @@ enum pipe pipe, int reg) { u32 val = I915_READ(reg); - WARN(hdmi_pipe_enabled(dev_priv, val, pipe), - "PCH DP (0x%08x) enabled on transcoder %c, should be disabled\n", + WARN(hdmi_pipe_enabled(dev_priv, pipe, val), + "PCH HDMI (0x%08x) enabled on transcoder %c, should be disabled\n", reg, pipe_name(pipe)); } @@ -1089,13 +1108,13 @@ reg = PCH_ADPA; val = I915_READ(reg); - WARN(adpa_pipe_enabled(dev_priv, val, pipe), + WARN(adpa_pipe_enabled(dev_priv, pipe, val), "PCH VGA enabled on transcoder %c, should be disabled\n", pipe_name(pipe)); reg = PCH_LVDS; val = I915_READ(reg); - WARN(lvds_pipe_enabled(dev_priv, val, pipe), + WARN(lvds_pipe_enabled(dev_priv, pipe, val), "PCH LVDS enabled on transcoder %c, should be disabled\n", pipe_name(pipe)); @@ -1437,7 +1456,7 @@ enum pipe pipe, int reg) { u32 val = I915_READ(reg); - if (hdmi_pipe_enabled(dev_priv, val, pipe)) { + if (hdmi_pipe_enabled(dev_priv, pipe, val)) { DRM_DEBUG_KMS("Disabling pch HDMI %x on pipe %d\n", reg, pipe); I915_WRITE(reg, val & ~PORT_ENABLE); @@ -1459,12 +1478,12 @@ reg = PCH_ADPA; val = I915_READ(reg); - if (adpa_pipe_enabled(dev_priv, val, pipe)) + if (adpa_pipe_enabled(dev_priv, pipe, val)) I915_WRITE(reg, val & ~ADPA_DAC_ENABLE); reg = PCH_LVDS; val = I915_READ(reg); - if (lvds_pipe_enabled(dev_priv, val, pipe)) { + if (lvds_pipe_enabled(dev_priv, pipe, val)) { DRM_DEBUG_KMS("disable lvds on pipe %d val 0x%08x\n", pipe, val); I915_WRITE(reg, val & ~LVDS_PORT_EN); POSTING_READ(reg); @@ -1864,7 +1883,7 @@ if (enable_fbc < 0) { DRM_DEBUG_KMS("fbc set to per-chip default\n"); enable_fbc = 1; - if (INTEL_INFO(dev)->gen <= 5) + if (INTEL_INFO(dev)->gen <= 6) enable_fbc = 0; } if (!enable_fbc) { @@ -2187,6 +2206,33 @@ } static int +intel_finish_fb(struct drm_framebuffer *old_fb) +{ + struct drm_i915_gem_object *obj = to_intel_framebuffer(old_fb)->obj; + struct drm_i915_private *dev_priv = obj->base.dev->dev_private; + bool was_interruptible = dev_priv->mm.interruptible; + int ret; + + wait_event(dev_priv->pending_flip_queue, + atomic_read(&dev_priv->mm.wedged) || + atomic_read(&obj->pending_flip) == 0); + + /* Big Hammer, we also need to ensure that any pending + * MI_WAIT_FOR_EVENT inside a user batch buffer on the + * current scanout is retired before unpinning the old + * framebuffer. + * + * This should only fail upon a hung GPU, in which case we + * can safely continue. + */ + dev_priv->mm.interruptible = false; + ret = i915_gem_object_finish_gpu(obj); + dev_priv->mm.interruptible = was_interruptible; + + return ret; +} + +static int intel_pipe_set_base(struct drm_crtc *crtc, int x, int y, struct drm_framebuffer *old_fb) { @@ -2224,25 +2270,8 @@ return ret; } - if (old_fb) { - struct drm_i915_private *dev_priv = dev->dev_private; - struct drm_i915_gem_object *obj = to_intel_framebuffer(old_fb)->obj; - - wait_event(dev_priv->pending_flip_queue, - atomic_read(&dev_priv->mm.wedged) || - atomic_read(&obj->pending_flip) == 0); - - /* Big Hammer, we also need to ensure that any pending - * MI_WAIT_FOR_EVENT inside a user batch buffer on the - * current scanout is retired before unpinning the old - * framebuffer. - * - * This should only fail upon a hung GPU, in which case we - * can safely continue. - */ - ret = i915_gem_object_finish_gpu(obj); - (void) ret; - } + if (old_fb) + intel_finish_fb(old_fb); ret = intel_pipe_set_base_atomic(crtc, crtc->fb, x, y, LEAVE_ATOMIC_MODE_SET); @@ -2356,18 +2385,6 @@ FDI_FE_ERRC_ENABLE); } -static void cpt_phase_pointer_enable(struct drm_device *dev, int pipe) -{ - struct drm_i915_private *dev_priv = dev->dev_private; - u32 flags = I915_READ(SOUTH_CHICKEN1); - - flags |= FDI_PHASE_SYNC_OVR(pipe); - I915_WRITE(SOUTH_CHICKEN1, flags); /* once to unlock... */ - flags |= FDI_PHASE_SYNC_EN(pipe); - I915_WRITE(SOUTH_CHICKEN1, flags); /* then again to enable */ - POSTING_READ(SOUTH_CHICKEN1); -} - /* The FDI link training functions for ILK/Ibexpeak. */ static void ironlake_fdi_link_train(struct drm_crtc *crtc) { @@ -2411,11 +2428,9 @@ udelay(150); /* Ironlake workaround, enable clock pointer after FDI enable*/ - if (HAS_PCH_IBX(dev)) { - I915_WRITE(FDI_RX_CHICKEN(pipe), FDI_RX_PHASE_SYNC_POINTER_OVR); - I915_WRITE(FDI_RX_CHICKEN(pipe), FDI_RX_PHASE_SYNC_POINTER_OVR | - FDI_RX_PHASE_SYNC_POINTER_EN); - } + I915_WRITE(FDI_RX_CHICKEN(pipe), FDI_RX_PHASE_SYNC_POINTER_OVR); + I915_WRITE(FDI_RX_CHICKEN(pipe), FDI_RX_PHASE_SYNC_POINTER_OVR | + FDI_RX_PHASE_SYNC_POINTER_EN); reg = FDI_RX_IIR(pipe); for (tries = 0; tries < 5; tries++) { @@ -2518,9 +2533,6 @@ POSTING_READ(reg); udelay(150); - if (HAS_PCH_CPT(dev)) - cpt_phase_pointer_enable(dev, pipe); - for (i = 0; i < 4; i++) { reg = FDI_TX_CTL(pipe); temp = I915_READ(reg); @@ -2639,9 +2651,6 @@ POSTING_READ(reg); udelay(150); - if (HAS_PCH_CPT(dev)) - cpt_phase_pointer_enable(dev, pipe); - for (i = 0; i < 4; i++) { reg = FDI_TX_CTL(pipe); temp = I915_READ(reg); @@ -2751,17 +2760,6 @@ } } -static void cpt_phase_pointer_disable(struct drm_device *dev, int pipe) -{ - struct drm_i915_private *dev_priv = dev->dev_private; - u32 flags = I915_READ(SOUTH_CHICKEN1); - - flags &= ~(FDI_PHASE_SYNC_EN(pipe)); - I915_WRITE(SOUTH_CHICKEN1, flags); /* once to disable... */ - flags &= ~(FDI_PHASE_SYNC_OVR(pipe)); - I915_WRITE(SOUTH_CHICKEN1, flags); /* then again to lock */ - POSTING_READ(SOUTH_CHICKEN1); -} static void ironlake_fdi_disable(struct drm_crtc *crtc) { struct drm_device *dev = crtc->dev; @@ -2791,8 +2789,6 @@ I915_WRITE(FDI_RX_CHICKEN(pipe), I915_READ(FDI_RX_CHICKEN(pipe) & ~FDI_RX_PHASE_SYNC_POINTER_EN)); - } else if (HAS_PCH_CPT(dev)) { - cpt_phase_pointer_disable(dev, pipe); } /* still set train pattern 1 */ @@ -2840,18 +2836,37 @@ I915_WRITE_CTL(ring, tmp); } +static bool intel_crtc_has_pending_flip(struct drm_crtc *crtc) +{ + struct drm_device *dev = crtc->dev; + struct drm_i915_private *dev_priv = dev->dev_private; + unsigned long flags; + bool pending; + + if (atomic_read(&dev_priv->mm.wedged)) + return false; + + spin_lock_irqsave(&dev->event_lock, flags); + pending = to_intel_crtc(crtc)->unpin_work != NULL; + spin_unlock_irqrestore(&dev->event_lock, flags); + + return pending; +} + static void intel_crtc_wait_for_pending_flips(struct drm_crtc *crtc) { - struct drm_i915_gem_object *obj; - struct drm_i915_private *dev_priv; + struct drm_device *dev = crtc->dev; + struct drm_i915_private *dev_priv = dev->dev_private; if (crtc->fb == NULL) return; - obj = to_intel_framebuffer(crtc->fb)->obj; - dev_priv = crtc->dev->dev_private; wait_event(dev_priv->pending_flip_queue, - atomic_read(&obj->pending_flip) == 0); + !intel_crtc_has_pending_flip(crtc)); + + mutex_lock(&dev->struct_mutex); + intel_finish_fb(crtc->fb); + mutex_unlock(&dev->struct_mutex); } static bool intel_crtc_driving_pch(struct drm_crtc *crtc) @@ -3026,7 +3041,11 @@ * as some pre-programmed values are broken, * e.g. x201. */ - I915_WRITE(PF_CTL(pipe), PF_ENABLE | PF_FILTER_MED_3x3); + if (IS_IVYBRIDGE(dev)) + I915_WRITE(PF_CTL(pipe), PF_ENABLE | PF_FILTER_MED_3x3 | + PF_PIPE_SEL_IVB(pipe)); + else + I915_WRITE(PF_CTL(pipe), PF_ENABLE | PF_FILTER_MED_3x3); I915_WRITE(PF_WIN_POS(pipe), dev_priv->pch_pf_pos); I915_WRITE(PF_WIN_SZ(pipe), dev_priv->pch_pf_size); } @@ -3224,6 +3243,7 @@ struct intel_crtc *intel_crtc = to_intel_crtc(crtc); int pipe = intel_crtc->pipe; int plane = intel_crtc->plane; + u32 pctl; if (!intel_crtc->active) return; @@ -3239,6 +3259,13 @@ intel_disable_plane(dev_priv, plane, pipe); intel_disable_pipe(dev_priv, pipe); + + /* Disable pannel fitter if it is on this pipe. */ + pctl = I915_READ(PFIT_CONTROL); + if ((pctl & PFIT_ENABLE) && + ((pctl & PFIT_PIPE_MASK) >> PFIT_PIPE_SHIFT) == pipe) + I915_WRITE(PFIT_CONTROL, 0); + intel_disable_pll(dev_priv, pipe); intel_crtc->active = false; @@ -4721,17 +4748,6 @@ continue; } - if (intel_encoder->type == INTEL_OUTPUT_EDP) { - /* Use VBT settings if we have an eDP panel */ - unsigned int edp_bpc = dev_priv->edp.bpp / 3; - - if (edp_bpc < display_bpc) { - DRM_DEBUG_KMS("clamping display bpc (was %d) to eDP (%d)\n", display_bpc, edp_bpc); - display_bpc = edp_bpc; - } - continue; - } - /* Not one of the known troublemakers, check the EDID */ list_for_each_entry(connector, &dev->mode_config.connector_list, head) { @@ -4746,6 +4762,17 @@ } } + if (intel_encoder->type == INTEL_OUTPUT_EDP) { + /* Use VBT settings if we have an eDP panel */ + unsigned int edp_bpc = dev_priv->edp.bpp / 3; + + if (edp_bpc && edp_bpc < display_bpc) { + DRM_DEBUG_KMS("clamping display bpc (was %d) to eDP (%d)\n", display_bpc, edp_bpc); + display_bpc = edp_bpc; + } + continue; + } + /* * HDMI is either 12 or 8, so if the display lets 10bpc sneak * through, clamp it down. (Note: >12bpc will be caught below.) @@ -5030,7 +5057,7 @@ /* default to 8bpc */ pipeconf &= ~(PIPECONF_BPP_MASK | PIPECONF_DITHER_EN); if (is_dp) { - if (mode->private_flags & INTEL_MODE_DP_FORCE_6BPC) { + if (adjusted_mode->private_flags & INTEL_MODE_DP_FORCE_6BPC) { pipeconf |= PIPECONF_BPP_6 | PIPECONF_DITHER_EN | PIPECONF_DITHER_TYPE_SP; @@ -5195,7 +5222,6 @@ I915_WRITE(DSPCNTR(plane), dspcntr); POSTING_READ(DSPCNTR(plane)); - intel_enable_plane(dev_priv, plane, pipe); ret = intel_pipe_set_base(crtc, x, y, old_fb); @@ -5498,7 +5524,7 @@ /* determine panel color depth */ temp = I915_READ(PIPECONF(pipe)); temp &= ~PIPE_BPC_MASK; - dither = intel_choose_pipe_bpp_dither(crtc, &pipe_bpp, mode); + dither = intel_choose_pipe_bpp_dither(crtc, &pipe_bpp, adjusted_mode); switch (pipe_bpp) { case 18: temp |= PIPE_6BPC; @@ -5646,12 +5672,15 @@ if (is_lvds) { temp = I915_READ(PCH_LVDS); temp |= LVDS_PORT_EN | LVDS_A0A2_CLKA_POWER_UP; - if (HAS_PCH_CPT(dev)) + if (HAS_PCH_CPT(dev)) { + temp &= ~PORT_TRANS_SEL_MASK; temp |= PORT_TRANS_SEL_CPT(pipe); - else if (pipe == 1) - temp |= LVDS_PIPEB_SELECT; - else - temp &= ~LVDS_PIPEB_SELECT; + } else { + if (pipe == 1) + temp |= LVDS_PIPEB_SELECT; + else + temp &= ~LVDS_PIPEB_SELECT; + } /* set the corresponsding LVDS_BORDER bit */ temp |= dev_priv->lvds_border_bits; @@ -5876,14 +5905,14 @@ int aud_cntl_st; int aud_cntrl_st2; - if (IS_IVYBRIDGE(connector->dev)) { - hdmiw_hdmiedid = GEN7_HDMIW_HDMIEDID_A; - aud_cntl_st = GEN7_AUD_CNTRL_ST_A; - aud_cntrl_st2 = GEN7_AUD_CNTRL_ST2; - } else { + if (HAS_PCH_IBX(connector->dev)) { hdmiw_hdmiedid = GEN5_HDMIW_HDMIEDID_A; aud_cntl_st = GEN5_AUD_CNTL_ST_A; aud_cntrl_st2 = GEN5_AUD_CNTL_ST2; + } else { + hdmiw_hdmiedid = GEN7_HDMIW_HDMIEDID_A; + aud_cntl_st = GEN7_AUD_CNTRL_ST_A; + aud_cntrl_st2 = GEN7_AUD_CNTRL_ST2; } i = to_intel_crtc(crtc)->pipe; @@ -5965,7 +5994,7 @@ int i; /* The clocks have to be on to load the palette. */ - if (!crtc->enabled) + if (!crtc->enabled || !intel_crtc->active) return; /* use legacy palette for Ironlake */ @@ -6824,9 +6853,10 @@ if (!drm_core_check_feature(dev, DRIVER_MODESET)) return; - if (!dev_priv->busy) + if (!dev_priv->busy) { + intel_sanitize_pm(dev); dev_priv->busy = true; - else + } else mod_timer(&dev_priv->idle_timer, jiffies + msecs_to_jiffies(GPU_IDLE_TIMEOUT)); @@ -6906,11 +6936,18 @@ spin_lock_irqsave(&dev->event_lock, flags); work = intel_crtc->unpin_work; - if (work == NULL || !work->pending) { + + /* Ensure we don't miss a work->pending update ... */ + smp_rmb(); + + if (work == NULL || atomic_read(&work->pending) < INTEL_FLIP_COMPLETE) { spin_unlock_irqrestore(&dev->event_lock, flags); return; } + /* and that the unpin work is consistent wrt ->pending. */ + smp_rmb(); + intel_crtc->unpin_work = NULL; if (work->event) { @@ -6952,9 +6989,8 @@ atomic_clear_mask(1 << intel_crtc->plane, &obj->pending_flip.counter); - if (atomic_read(&obj->pending_flip) == 0) - wake_up(&dev_priv->pending_flip_queue); + wake_up(&dev_priv->pending_flip_queue); schedule_work(&work->work); trace_i915_flip_complete(intel_crtc->plane, work->pending_flip_obj); @@ -6983,16 +7019,25 @@ to_intel_crtc(dev_priv->plane_to_crtc_mapping[plane]); unsigned long flags; + /* NB: An MMIO update of the plane base pointer will also + * generate a page-flip completion irq, i.e. every modeset + * is also accompanied by a spurious intel_prepare_page_flip(). + */ spin_lock_irqsave(&dev->event_lock, flags); - if (intel_crtc->unpin_work) { - if ((++intel_crtc->unpin_work->pending) > 1) - DRM_ERROR("Prepared flip multiple times\n"); - } else { - DRM_DEBUG_DRIVER("preparing flip with no unpin work?\n"); - } + if (intel_crtc->unpin_work) + atomic_inc_not_zero(&intel_crtc->unpin_work->pending); spin_unlock_irqrestore(&dev->event_lock, flags); } +inline static void intel_mark_page_flip_active(struct intel_crtc *intel_crtc) +{ + /* Ensure that the work item is consistent when activating it ... */ + smp_wmb(); + atomic_set(&intel_crtc->unpin_work->pending, INTEL_FLIP_PENDING); + /* and that it is marked active as soon as the irq could fire. */ + smp_wmb(); +} + static int intel_gen2_queue_flip(struct drm_device *dev, struct drm_crtc *crtc, struct drm_framebuffer *fb, @@ -7006,14 +7051,14 @@ ret = intel_pin_and_fence_fb_obj(dev, obj, LP_RING(dev_priv)); if (ret) - goto out; + goto err; /* Offset into the new buffer for cases of shared fbs between CRTCs */ offset = crtc->y * fb->pitch + crtc->x * fb->bits_per_pixel/8; ret = BEGIN_LP_RING(6); if (ret) - goto out; + goto err_unpin; /* Can't queue multiple flips, so wait for the previous * one to finish before executing the next. @@ -7029,8 +7074,14 @@ OUT_RING(fb->pitch); OUT_RING(obj->gtt_offset + offset); OUT_RING(MI_NOOP); + + intel_mark_page_flip_active(intel_crtc); ADVANCE_LP_RING(); -out: + return 0; + +err_unpin: + i915_gem_object_unpin(obj); +err: return ret; } @@ -7047,14 +7098,14 @@ ret = intel_pin_and_fence_fb_obj(dev, obj, LP_RING(dev_priv)); if (ret) - goto out; + goto err; /* Offset into the new buffer for cases of shared fbs between CRTCs */ offset = crtc->y * fb->pitch + crtc->x * fb->bits_per_pixel/8; ret = BEGIN_LP_RING(6); if (ret) - goto out; + goto err_unpin; if (intel_crtc->plane) flip_mask = MI_WAIT_FOR_PLANE_B_FLIP; @@ -7068,8 +7119,13 @@ OUT_RING(obj->gtt_offset + offset); OUT_RING(MI_NOOP); + intel_mark_page_flip_active(intel_crtc); ADVANCE_LP_RING(); -out: + return 0; + +err_unpin: + i915_gem_object_unpin(obj); +err: return ret; } @@ -7085,11 +7141,11 @@ ret = intel_pin_and_fence_fb_obj(dev, obj, LP_RING(dev_priv)); if (ret) - goto out; + goto err; ret = BEGIN_LP_RING(4); if (ret) - goto out; + goto err_unpin; /* i965+ uses the linear or tiled offsets from the * Display Registers (which do not change across a page-flip) @@ -7107,8 +7163,14 @@ pf = 0; pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff; OUT_RING(pf | pipesrc); + + intel_mark_page_flip_active(intel_crtc); ADVANCE_LP_RING(); -out: + return 0; + +err_unpin: + i915_gem_object_unpin(obj); +err: return ret; } @@ -7124,11 +7186,11 @@ ret = intel_pin_and_fence_fb_obj(dev, obj, LP_RING(dev_priv)); if (ret) - goto out; + goto err; ret = BEGIN_LP_RING(4); if (ret) - goto out; + goto err_unpin; OUT_RING(MI_DISPLAY_FLIP | MI_DISPLAY_FLIP_PLANE(intel_crtc->plane)); @@ -7138,8 +7200,14 @@ pf = I915_READ(PF_CTL(intel_crtc->pipe)) & PF_ENABLE; pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff; OUT_RING(pf | pipesrc); + + intel_mark_page_flip_active(intel_crtc); ADVANCE_LP_RING(); -out: + return 0; + +err_unpin: + i915_gem_object_unpin(obj); +err: return ret; } @@ -7157,22 +7225,45 @@ struct drm_i915_private *dev_priv = dev->dev_private; struct intel_crtc *intel_crtc = to_intel_crtc(crtc); struct intel_ring_buffer *ring = &dev_priv->ring[BCS]; + uint32_t plane_bit = 0; int ret; ret = intel_pin_and_fence_fb_obj(dev, obj, ring); if (ret) - goto out; + goto err; + + switch(intel_crtc->plane) { + case PLANE_A: + plane_bit = MI_DISPLAY_FLIP_IVB_PLANE_A; + break; + case PLANE_B: + plane_bit = MI_DISPLAY_FLIP_IVB_PLANE_B; + break; + case PLANE_C: + plane_bit = MI_DISPLAY_FLIP_IVB_PLANE_C; + break; + default: + WARN_ONCE(1, "unknown plane in flip command\n"); + ret = -ENODEV; + goto err_unpin; + } ret = intel_ring_begin(ring, 4); if (ret) - goto out; + goto err_unpin; - intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | (intel_crtc->plane << 19)); + intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | plane_bit); intel_ring_emit(ring, (fb->pitch | obj->tiling_mode)); intel_ring_emit(ring, (obj->gtt_offset)); intel_ring_emit(ring, (MI_NOOP)); + + intel_mark_page_flip_active(intel_crtc); intel_ring_advance(ring); -out: + return 0; + +err_unpin: + i915_gem_object_unpin(obj); +err: return ret; } @@ -7190,8 +7281,8 @@ { struct drm_device *dev = crtc->dev; struct drm_i915_private *dev_priv = dev->dev_private; - struct intel_framebuffer *intel_fb; - struct drm_i915_gem_object *obj; + struct drm_framebuffer *old_fb = crtc->fb; + struct drm_i915_gem_object *obj = to_intel_framebuffer(fb)->obj; struct intel_crtc *intel_crtc = to_intel_crtc(crtc); struct intel_unpin_work *work; unsigned long flags; @@ -7203,8 +7294,7 @@ work->event = event; work->dev = crtc->dev; - intel_fb = to_intel_framebuffer(crtc->fb); - work->old_fb_obj = intel_fb->obj; + work->old_fb_obj = to_intel_framebuffer(old_fb)->obj; INIT_WORK(&work->work, intel_unpin_work_fn); ret = drm_vblank_get(dev, intel_crtc->pipe); @@ -7224,9 +7314,6 @@ intel_crtc->unpin_work = work; spin_unlock_irqrestore(&dev->event_lock, flags); - intel_fb = to_intel_framebuffer(fb); - obj = intel_fb->obj; - mutex_lock(&dev->struct_mutex); /* Reference the objects for the scheduled work. */ @@ -7257,6 +7344,7 @@ cleanup_pending: atomic_sub(1 << intel_crtc->plane, &work->old_fb_obj->pending_flip); + crtc->fb = old_fb; drm_gem_object_unreference(&work->old_fb_obj->base); drm_gem_object_unreference(&obj->base); mutex_unlock(&dev->struct_mutex); @@ -7277,6 +7365,13 @@ { struct drm_i915_private *dev_priv = dev->dev_private; u32 reg, val; + int i; + + /* Clear any frame start delays used for debugging left by the BIOS */ + for_each_pipe(i) { + reg = PIPECONF(i); + I915_WRITE(reg, I915_READ(reg) & ~PIPECONF_FRAME_START_DELAY_MASK); + } if (HAS_PCH_SPLIT(dev)) return; @@ -7909,25 +8004,23 @@ static bool intel_enable_rc6(struct drm_device *dev) { + struct drm_i915_private *dev_priv = dev->dev_private; + /* * Respect the kernel parameter if it is set */ if (i915_enable_rc6 >= 0) return i915_enable_rc6; + if (dev_priv->quirks & QUIRK_RC6_DISABLE) + return 0; + /* * Disable RC6 on Ironlake */ if (INTEL_INFO(dev)->gen == 5) return 0; - /* - * Disable rc6 on Sandybridge - */ - if (INTEL_INFO(dev)->gen == 6) { - DRM_DEBUG_DRIVER("Sandybridge: RC6 disabled\n"); - return 0; - } DRM_DEBUG_DRIVER("RC6 enabled\n"); return 1; } @@ -7965,12 +8058,12 @@ I915_WRITE(GEN6_RC_SLEEP, 0); I915_WRITE(GEN6_RC1e_THRESHOLD, 1000); I915_WRITE(GEN6_RC6_THRESHOLD, 50000); - I915_WRITE(GEN6_RC6p_THRESHOLD, 100000); + I915_WRITE(GEN6_RC6p_THRESHOLD, 150000); I915_WRITE(GEN6_RC6pp_THRESHOLD, 64000); /* unused */ if (intel_enable_rc6(dev_priv->dev)) - rc6_mask = GEN6_RC_CTL_RC6p_ENABLE | - GEN6_RC_CTL_RC6_ENABLE; + rc6_mask = GEN6_RC_CTL_RC6_ENABLE | + ((IS_GEN7(dev_priv->dev)) ? GEN6_RC_CTL_RC6p_ENABLE : 0); I915_WRITE(GEN6_RC_CONTROL, rc6_mask | @@ -7995,7 +8088,7 @@ I915_WRITE(GEN6_RP_IDLE_HYSTERSIS, 10); I915_WRITE(GEN6_RP_CONTROL, GEN6_RP_MEDIA_TURBO | - GEN6_RP_USE_NORMAL_FREQ | + GEN6_RP_MEDIA_HW_NORMAL_MODE | GEN6_RP_MEDIA_IS_GFX | GEN6_RP_ENABLE | GEN6_RP_UP_BUSY_AVG | @@ -8190,6 +8283,10 @@ I915_READ(ILK_DISPLAY_CHICKEN2) | ILK_ELPIN_409_SELECT); + /* WaDisableHiZPlanesWhenMSAAEnabled */ + I915_WRITE(_3D_CHICKEN, + _MASKED_BIT_ENABLE(_3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB)); + I915_WRITE(WM3_LP_ILK, 0); I915_WRITE(WM2_LP_ILK, 0); I915_WRITE(WM1_LP_ILK, 0); @@ -8234,6 +8331,23 @@ DISPPLANE_TRICKLE_FEED_DISABLE); intel_flush_display_plane(dev_priv, pipe); } + + /* The default value should be 0x200 according to docs, but the two + * platforms I checked have a 0 for this. (Maybe BIOS overrides?) */ + I915_WRITE(GEN6_GT_MODE, 0xffff << 16); + I915_WRITE(GEN6_GT_MODE, GEN6_GT_MODE_HI << 16 | GEN6_GT_MODE_HI); +} + +static void gen7_setup_fixed_func_scheduler(struct drm_i915_private *dev_priv) +{ + uint32_t reg = I915_READ(GEN7_FF_THREAD_MODE); + + reg &= ~GEN7_FF_SCHED_MASK; + reg |= GEN7_FF_TS_SCHED_HW; + reg |= GEN7_FF_VS_SCHED_HW; + reg |= GEN7_FF_DS_SCHED_HW; + + I915_WRITE(GEN7_FF_THREAD_MODE, reg); } static void ivybridge_init_clock_gating(struct drm_device *dev) @@ -8248,14 +8362,36 @@ I915_WRITE(WM2_LP_ILK, 0); I915_WRITE(WM1_LP_ILK, 0); + /* According to the spec, bit 13 (RCZUNIT) must be set on IVB. + * This implements the WaDisableRCZUnitClockGating workaround. + */ + I915_WRITE(GEN6_UCGCTL2, GEN6_RCZUNIT_CLOCK_GATE_DISABLE); + I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE); + /* Apply the WaDisableRHWOOptimizationForRenderHang workaround. */ + I915_WRITE(GEN7_COMMON_SLICE_CHICKEN1, + GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC); + + /* WaApplyL3ControlAndL3ChickenMode requires those two on Ivy Bridge */ + I915_WRITE(GEN7_L3CNTLREG1, + GEN7_WA_FOR_GEN7_L3_CONTROL); + I915_WRITE(GEN7_L3_CHICKEN_MODE_REGISTER, + GEN7_WA_L3_CHICKEN_MODE); + + /* This is required by WaCatErrorRejectionIssue */ + I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG, + I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) | + GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB); + for_each_pipe(pipe) { I915_WRITE(DSPCNTR(pipe), I915_READ(DSPCNTR(pipe)) | DISPPLANE_TRICKLE_FEED_DISABLE); intel_flush_display_plane(dev_priv, pipe); } + + gen7_setup_fixed_func_scheduler(dev_priv); } static void g4x_init_clock_gating(struct drm_device *dev) @@ -8478,6 +8614,42 @@ dev_priv->display.init_pch_clock_gating(dev); } +static void gen6_sanitize_pm(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + u32 limits, delay, old; + + gen6_gt_force_wake_get(dev_priv); + + old = limits = I915_READ(GEN6_RP_INTERRUPT_LIMITS); + /* Make sure we continue to get interrupts + * until we hit the minimum or maximum frequencies. + */ + limits &= ~(0x3f << 16 | 0x3f << 24); + delay = dev_priv->cur_delay; + if (delay < dev_priv->max_delay) + limits |= (dev_priv->max_delay & 0x3f) << 24; + if (delay > dev_priv->min_delay) + limits |= (dev_priv->min_delay & 0x3f) << 16; + + if (old != limits) { + DRM_ERROR("Power management discrepancy: GEN6_RP_INTERRUPT_LIMITS expected %08x, was %08x\n", + limits, old); + I915_WRITE(GEN6_RP_INTERRUPT_LIMITS, limits); + } + + gen6_gt_force_wake_put(dev_priv); +} + +void intel_sanitize_pm(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + + if (dev_priv->display.sanitize_pm) + dev_priv->display.sanitize_pm(dev); +} + + /* Set up chip specific display functions */ static void intel_init_display(struct drm_device *dev) { @@ -8584,6 +8756,7 @@ } dev_priv->display.fdi_link_train = gen6_fdi_link_train; dev_priv->display.init_clock_gating = gen6_init_clock_gating; + dev_priv->display.sanitize_pm = gen6_sanitize_pm; dev_priv->display.write_eld = ironlake_write_eld; } else if (IS_IVYBRIDGE(dev)) { /* FIXME: detect B0+ stepping and use auto training */ @@ -8596,6 +8769,7 @@ dev_priv->display.update_wm = NULL; } dev_priv->display.init_clock_gating = ivybridge_init_clock_gating; + dev_priv->display.sanitize_pm = gen6_sanitize_pm; dev_priv->display.write_eld = ironlake_write_eld; } else dev_priv->display.update_wm = NULL; @@ -8694,6 +8868,23 @@ dev_priv->quirks |= QUIRK_LVDS_SSC_DISABLE; } +static void quirk_rc6_force_disable(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + dev_priv->quirks |= QUIRK_RC6_DISABLE; + DRM_INFO("applying RC6 disable quirk\n"); +} + +/* + * A machine (e.g. Acer Aspire 5734Z) may need to invert the panel backlight + * brightness value + */ +static void quirk_invert_brightness(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + dev_priv->quirks |= QUIRK_INVERT_BRIGHTNESS; +} + struct intel_quirk { int device; int subsystem_vendor; @@ -8701,9 +8892,35 @@ void (*hook)(struct drm_device *dev); }; +/* For systems that don't have a meaningful PCI subdevice/subvendor ID */ +struct intel_dmi_quirk { + void (*hook)(struct drm_device *dev); + const struct dmi_system_id (*dmi_id_list)[]; +}; + +static int intel_dmi_reverse_brightness(const struct dmi_system_id *id) +{ + DRM_INFO("Backlight polarity reversed on %s\n", id->ident); + return 1; +} + +static const struct intel_dmi_quirk intel_dmi_quirks[] = { + { + .dmi_id_list = &(const struct dmi_system_id[]) { + { + .callback = intel_dmi_reverse_brightness, + .ident = "NCR Corporation", + .matches = {DMI_MATCH(DMI_SYS_VENDOR, "NCR Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, ""), + }, + }, + { } /* terminating entry */ + }, + .hook = quirk_invert_brightness, + }, +}; + struct intel_quirk intel_quirks[] = { - /* HP Compaq 2730p needs pipe A force quirk (LP: #291555) */ - { 0x2a42, 0x103c, 0x30eb, quirk_pipea_force }, /* HP Mini needs pipe A force quirk (LP: #322104) */ { 0x27ae, 0x103c, 0x361a, quirk_pipea_force }, @@ -8728,6 +8945,24 @@ /* Sony Vaio Y cannot use SSC on LVDS */ { 0x0046, 0x104d, 0x9076, quirk_ssc_force_disable }, + + /* Acer Aspire 5734Z must invert backlight brightness */ + { 0x2a42, 0x1025, 0x0459, quirk_invert_brightness }, + + /* Acer/eMachines G725 */ + { 0x2a42, 0x1025, 0x0210, quirk_invert_brightness }, + + /* Acer/eMachines e725 */ + { 0x2a42, 0x1025, 0x0212, quirk_invert_brightness }, + + /* Acer/Packard Bell NCL20 */ + { 0x2a42, 0x1025, 0x034b, quirk_invert_brightness }, + + /* Asus ET2012E may fail to resume from S3 if RC6 is enabled */ + { 0x0102, 0x1043, 0x844d, quirk_rc6_force_disable }, + + /* Lenovo ThinkCentre S510 may hang after idle for a long time */ + { 0x0102, 0x17aa, 0x307b, quirk_rc6_force_disable }, }; static void intel_init_quirks(struct drm_device *dev) @@ -8745,6 +8980,10 @@ q->subsystem_device == PCI_ANY_ID)) q->hook(dev); } + for (i = 0; i < ARRAY_SIZE(intel_dmi_quirks); i++) { + if (dmi_check_system(*intel_dmi_quirks[i].dmi_id_list) != 0) + intel_dmi_quirks[i].hook(dev); + } } /* Disable the VGA plane that we never use */ @@ -8770,6 +9009,23 @@ POSTING_READ(vga_reg); } +void i915_redisable_vga(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + u32 vga_reg; + + if (HAS_PCH_SPLIT(dev)) + vga_reg = CPU_VGACNTRL; + else + vga_reg = VGACNTRL; + + if (I915_READ(vga_reg) != VGA_DISP_DISABLE) { + DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n"); + I915_WRITE(vga_reg, VGA_DISP_DISABLE); + POSTING_READ(vga_reg); + } +} + void intel_modeset_init(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -8884,6 +9140,9 @@ del_timer_sync(&dev_priv->idle_timer); cancel_work_sync(&dev_priv->idle_work); + /* destroy backlight, if any, before the connectors */ + intel_panel_destroy_backlight(dev); + drm_mode_config_cleanup(dev); } --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_fb.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_fb.c @@ -257,6 +257,16 @@ kfree(dev_priv->fbdev); dev_priv->fbdev = NULL; } + +void intel_fbdev_set_suspend(struct drm_device *dev, int state) +{ + drm_i915_private_t *dev_priv = dev->dev_private; + if (!dev_priv->fbdev) + return; + + fb_set_suspend(dev_priv->fbdev->helper.fbdev, state); +} + MODULE_LICENSE("GPL and additional rights"); void intel_fb_output_poll_changed(struct drm_device *dev) --- linux-3.2.0.orig/drivers/gpu/drm/i915/i915_reg.h +++ linux-3.2.0/drivers/gpu/drm/i915/i915_reg.h @@ -27,6 +27,8 @@ #define _PIPE(pipe, a, b) ((a) + (pipe)*((b)-(a))) +#define _MASKED_BIT_ENABLE(a) (((a) << 16) | (a)) + /* * The Bridge device's PCI config space has information about the * fb aperture size and the amount of pre-reserved memory. @@ -164,6 +166,14 @@ #define MI_DISPLAY_FLIP MI_INSTR(0x14, 2) #define MI_DISPLAY_FLIP_I915 MI_INSTR(0x14, 1) #define MI_DISPLAY_FLIP_PLANE(n) ((n) << 20) +/* IVB has funny definitions for which plane to flip. */ +#define MI_DISPLAY_FLIP_IVB_PLANE_A (0 << 19) +#define MI_DISPLAY_FLIP_IVB_PLANE_B (1 << 19) +#define MI_DISPLAY_FLIP_IVB_SPRITE_A (2 << 19) +#define MI_DISPLAY_FLIP_IVB_SPRITE_B (3 << 19) +#define MI_DISPLAY_FLIP_IVB_PLANE_C (4 << 19) +#define MI_DISPLAY_FLIP_IVB_SPRITE_C (5 << 19) + #define MI_SET_CONTEXT MI_INSTR(0x18, 0) #define MI_MM_SPACE_GTT (1<<8) #define MI_MM_SPACE_PHYSICAL (0<<8) @@ -183,8 +193,12 @@ */ #define MI_LOAD_REGISTER_IMM(x) MI_INSTR(0x22, 2*x-1) #define MI_FLUSH_DW MI_INSTR(0x26, 1) /* for GEN6 */ -#define MI_INVALIDATE_TLB (1<<18) -#define MI_INVALIDATE_BSD (1<<7) +#define MI_FLUSH_DW_STORE_INDEX (1<<21) +#define MI_INVALIDATE_TLB (1<<18) +#define MI_FLUSH_DW_OP_STOREDW (1<<14) +#define MI_INVALIDATE_BSD (1<<7) +#define MI_FLUSH_DW_USE_GTT (1<<2) +#define MI_FLUSH_DW_USE_PPGTT (0<<2) #define MI_BATCH_BUFFER MI_INSTR(0x30, 1) #define MI_BATCH_NON_SECURE (1) #define MI_BATCH_NON_SECURE_I965 (1<<8) @@ -244,6 +258,7 @@ #define DISPLAY_PLANE_B (1<<20) #define GFX_OP_PIPE_CONTROL(len) ((0x3<<29)|(0x3<<27)|(0x2<<24)|(len-2)) #define PIPE_CONTROL_CS_STALL (1<<20) +#define PIPE_CONTROL_TLB_INVALIDATE (1<<18) #define PIPE_CONTROL_QW_WRITE (1<<14) #define PIPE_CONTROL_DEPTH_STALL (1<<13) #define PIPE_CONTROL_WRITE_FLUSH (1<<12) @@ -381,6 +396,7 @@ * the enables for writing to the corresponding low bit. */ #define _3D_CHICKEN 0x02084 +#define _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB (1 << 10) #define _3D_CHICKEN2 0x0208c /* Disables pipelining of read flushes past the SF-WIZ interface. * Required on all Ironlake steppings according to the B-Spec, but the @@ -391,7 +407,11 @@ #define MI_MODE 0x0209c # define VS_TIMER_DISPATCH (1 << 6) -# define MI_FLUSH_ENABLE (1 << 11) +# define MI_FLUSH_ENABLE (1 << 12) +# define ASYNC_FLIP_PERF_DISABLE (1 << 14) + +#define GEN6_GT_MODE 0x20d0 +#define GEN6_GT_MODE_HI (1 << 9) #define GFX_MODE 0x02520 #define GFX_MODE_GEN7 0x0229c @@ -442,6 +462,7 @@ #define INSTPM_AGPBUSY_DIS (1<<11) /* gen3: when disabled, pending interrupts will not assert AGPBUSY# and will only be delivered when out of C3. */ +#define INSTPM_FORCE_ORDERING (1<<7) /* GEN6+ */ #define ACTHD 0x020c8 #define FW_BLC 0x020d8 #define FW_BLC2 0x020dc @@ -522,6 +543,7 @@ #define CM0_MASK_SHIFT 16 #define CM0_IZ_OPT_DISABLE (1<<6) #define CM0_ZR_OPT_DISABLE (1<<5) +#define CM0_STC_EVICT_DISABLE_LRA_SNB (1<<5) #define CM0_DEPTH_EVICT_DISABLE (1<<4) #define CM0_COLOR_EVICT_DISABLE (1<<3) #define CM0_DEPTH_WRITE_DISABLE (1<<1) @@ -568,6 +590,21 @@ #define GEN6_BSD_RNCID 0x12198 +#define GEN7_FF_THREAD_MODE 0x20a0 +#define GEN7_FF_SCHED_MASK 0x0077070 +#define GEN7_FF_TS_SCHED_HS1 (0x5<<16) +#define GEN7_FF_TS_SCHED_HS0 (0x3<<16) +#define GEN7_FF_TS_SCHED_LOAD_BALANCE (0x1<<16) +#define GEN7_FF_TS_SCHED_HW (0x0<<16) /* Default */ +#define GEN7_FF_VS_SCHED_HS1 (0x5<<12) +#define GEN7_FF_VS_SCHED_HS0 (0x3<<12) +#define GEN7_FF_VS_SCHED_LOAD_BALANCE (0x1<<12) /* Default */ +#define GEN7_FF_VS_SCHED_HW (0x0<<12) +#define GEN7_FF_DS_SCHED_HS1 (0x5<<4) +#define GEN7_FF_DS_SCHED_HS0 (0x3<<4) +#define GEN7_FF_DS_SCHED_LOAD_BALANCE (0x1<<4) /* Default */ +#define GEN7_FF_DS_SCHED_HW (0x0<<4) + /* * Framebuffer compression (915+ only) */ @@ -1394,14 +1431,20 @@ #define DPC_HOTPLUG_INT_STATUS (1 << 28) #define HDMID_HOTPLUG_INT_STATUS (1 << 27) #define DPD_HOTPLUG_INT_STATUS (1 << 27) +/* CRT/TV common between gen3+ */ #define CRT_HOTPLUG_INT_STATUS (1 << 11) #define TV_HOTPLUG_INT_STATUS (1 << 10) #define CRT_HOTPLUG_MONITOR_MASK (3 << 8) #define CRT_HOTPLUG_MONITOR_COLOR (3 << 8) #define CRT_HOTPLUG_MONITOR_MONO (2 << 8) #define CRT_HOTPLUG_MONITOR_NONE (0 << 8) -#define SDVOC_HOTPLUG_INT_STATUS (1 << 7) -#define SDVOB_HOTPLUG_INT_STATUS (1 << 6) +/* SDVO is different across gen3/4 */ +#define SDVOC_HOTPLUG_INT_STATUS_G4X (1 << 3) +#define SDVOB_HOTPLUG_INT_STATUS_G4X (1 << 2) +#define SDVOC_HOTPLUG_INT_STATUS_I965 (3 << 4) +#define SDVOB_HOTPLUG_INT_STATUS_I965 (3 << 2) +#define SDVOC_HOTPLUG_INT_STATUS_I915 (1 << 7) +#define SDVOB_HOTPLUG_INT_STATUS_I915 (1 << 6) /* SDVO port control */ #define SDVOB 0x61140 @@ -1526,6 +1569,10 @@ /* Video Data Island Packet control */ #define VIDEO_DIP_DATA 0x61178 +/* Read the description of VIDEO_DIP_DATA (before Haswel) or VIDEO_DIP_ECC + * (Haswell and newer) to see which VIDEO_DIP_DATA byte corresponds to each byte + * of the infoframe structure specified by CEA-861. */ +#define VIDEO_DIP_DATA_SIZE 32 #define VIDEO_DIP_CTL 0x61170 #define VIDEO_DIP_ENABLE (1 << 31) #define VIDEO_DIP_PORT_B (1 << 29) @@ -2312,6 +2359,7 @@ #define PIPECONF_DISABLE 0 #define PIPECONF_DOUBLE_WIDE (1<<30) #define I965_PIPECONF_ACTIVE (1<<30) +#define PIPECONF_FRAME_START_DELAY_MASK (3<<27) #define PIPECONF_SINGLE_WIDE 0 #define PIPECONF_PIPE_UNLOCKED 0 #define PIPECONF_PIPE_LOCKED (1<<25) @@ -2777,6 +2825,8 @@ #define _PFA_CTL_1 0x68080 #define _PFB_CTL_1 0x68880 #define PF_ENABLE (1<<31) +#define PF_PIPE_SEL_MASK_IVB (3<<29) +#define PF_PIPE_SEL_IVB(pipe) ((pipe)<<29) #define PF_FILTER_MASK (3<<23) #define PF_FILTER_PROGRAMMED (0<<23) #define PF_FILTER_MED_3x3 (1<<23) @@ -2886,9 +2936,23 @@ #define DISP_TILE_SURFACE_SWIZZLING (1<<13) #define DISP_FBC_WM_DIS (1<<15) +/* GEN7 chicken */ +#define GEN7_COMMON_SLICE_CHICKEN1 0x7010 +# define GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC ((1<<10) | (1<<26)) + +#define GEN7_L3CNTLREG1 0xB01C +#define GEN7_WA_FOR_GEN7_L3_CONTROL 0x3C4FFF8C + +#define GEN7_L3_CHICKEN_MODE_REGISTER 0xB030 +#define GEN7_WA_L3_CHICKEN_MODE 0x20000000 + +/* WaCatErrorRejectionIssue */ +#define GEN7_SQ_CHICKEN_MBCUNIT_CONFIG 0x9030 +#define GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB (1<<11) + /* PCH */ -/* south display engine interrupt */ +/* south display engine interrupt: IBX */ #define SDE_AUDIO_POWER_D (1 << 27) #define SDE_AUDIO_POWER_C (1 << 26) #define SDE_AUDIO_POWER_B (1 << 25) @@ -2924,15 +2988,44 @@ #define SDE_TRANSA_CRC_ERR (1 << 1) #define SDE_TRANSA_FIFO_UNDER (1 << 0) #define SDE_TRANS_MASK (0x3f) -/* CPT */ -#define SDE_CRT_HOTPLUG_CPT (1 << 19) + +/* south display engine interrupt: CPT/PPT */ +#define SDE_AUDIO_POWER_D_CPT (1 << 31) +#define SDE_AUDIO_POWER_C_CPT (1 << 30) +#define SDE_AUDIO_POWER_B_CPT (1 << 29) +#define SDE_AUDIO_POWER_SHIFT_CPT 29 +#define SDE_AUDIO_POWER_MASK_CPT (7 << 29) +#define SDE_AUXD_CPT (1 << 27) +#define SDE_AUXC_CPT (1 << 26) +#define SDE_AUXB_CPT (1 << 25) +#define SDE_AUX_MASK_CPT (7 << 25) #define SDE_PORTD_HOTPLUG_CPT (1 << 23) #define SDE_PORTC_HOTPLUG_CPT (1 << 22) #define SDE_PORTB_HOTPLUG_CPT (1 << 21) +#define SDE_CRT_HOTPLUG_CPT (1 << 19) #define SDE_HOTPLUG_MASK_CPT (SDE_CRT_HOTPLUG_CPT | \ SDE_PORTD_HOTPLUG_CPT | \ SDE_PORTC_HOTPLUG_CPT | \ SDE_PORTB_HOTPLUG_CPT) +#define SDE_GMBUS_CPT (1 << 17) +#define SDE_AUDIO_CP_REQ_C_CPT (1 << 10) +#define SDE_AUDIO_CP_CHG_C_CPT (1 << 9) +#define SDE_FDI_RXC_CPT (1 << 8) +#define SDE_AUDIO_CP_REQ_B_CPT (1 << 6) +#define SDE_AUDIO_CP_CHG_B_CPT (1 << 5) +#define SDE_FDI_RXB_CPT (1 << 4) +#define SDE_AUDIO_CP_REQ_A_CPT (1 << 2) +#define SDE_AUDIO_CP_CHG_A_CPT (1 << 1) +#define SDE_FDI_RXA_CPT (1 << 0) +#define SDE_AUDIO_CP_REQ_CPT (SDE_AUDIO_CP_REQ_C_CPT | \ + SDE_AUDIO_CP_REQ_B_CPT | \ + SDE_AUDIO_CP_REQ_A_CPT) +#define SDE_AUDIO_CP_CHG_CPT (SDE_AUDIO_CP_CHG_C_CPT | \ + SDE_AUDIO_CP_CHG_B_CPT | \ + SDE_AUDIO_CP_CHG_A_CPT) +#define SDE_FDI_MASK_CPT (SDE_FDI_RXC_CPT | \ + SDE_FDI_RXB_CPT | \ + SDE_FDI_RXA_CPT) #define SDEISR 0xc4000 #define SDEIMR 0xc4004 @@ -3476,6 +3569,7 @@ #define GT_FIFO_NUM_RESERVED_ENTRIES 20 #define GEN6_UCGCTL2 0x9404 +# define GEN6_RCZUNIT_CLOCK_GATE_DISABLE (1 << 13) # define GEN6_RCPBUNIT_CLOCK_GATE_DISABLE (1 << 12) # define GEN6_RCCUNIT_CLOCK_GATE_DISABLE (1 << 11) @@ -3500,7 +3594,11 @@ #define GEN6_CAGF_MASK (0x7f << GEN6_CAGF_SHIFT) #define GEN6_RP_CONTROL 0xA024 #define GEN6_RP_MEDIA_TURBO (1<<11) -#define GEN6_RP_USE_NORMAL_FREQ (1<<9) +#define GEN6_RP_MEDIA_MODE_MASK (3<<9) +#define GEN6_RP_MEDIA_HW_TURBO_MODE (3<<9) +#define GEN6_RP_MEDIA_HW_NORMAL_MODE (2<<9) +#define GEN6_RP_MEDIA_HW_MODE (1<<9) +#define GEN6_RP_MEDIA_SW_MODE (0<<9) #define GEN6_RP_MEDIA_IS_GFX (1<<8) #define GEN6_RP_ENABLE (1<<7) #define GEN6_RP_UP_IDLE_MIN (0x1<<3) @@ -3582,4 +3680,10 @@ #define GEN7_AUD_CNTRL_ST_A 0xE50B4 #define GEN7_AUD_CNTRL_ST2 0xE50C0 +/* These are the 4 32-bit write offset registers for each stream + * output buffer. It determines the offset from the + * 3DSTATE_SO_BUFFERs that the next streamed vertex output goes to. + */ +#define GEN7_SO_WRITE_OFFSET(n) (0x5280 + (n) * 4) + #endif /* _I915_REG_H_ */ --- linux-3.2.0.orig/drivers/gpu/drm/i915/i915_irq.c +++ linux-3.2.0/drivers/gpu/drm/i915/i915_irq.c @@ -424,14 +424,35 @@ mutex_unlock(&dev_priv->dev->struct_mutex); } -static void pch_irq_handler(struct drm_device *dev) +static void gen6_queue_rps_work(struct drm_i915_private *dev_priv, + u32 pm_iir) +{ + unsigned long flags; + + /* + * IIR bits should never already be set because IMR should + * prevent an interrupt from being shown in IIR. The warning + * displays a case where we've unsafely cleared + * dev_priv->pm_iir. Although missing an interrupt of the same + * type is not a problem, it displays a problem in the logic. + * + * The mask bit in IMR is cleared by rps_work. + */ + + spin_lock_irqsave(&dev_priv->rps_lock, flags); + dev_priv->pm_iir |= pm_iir; + I915_WRITE(GEN6_PMIMR, dev_priv->pm_iir); + POSTING_READ(GEN6_PMIMR); + spin_unlock_irqrestore(&dev_priv->rps_lock, flags); + + queue_work(dev_priv->wq, &dev_priv->rps_work); +} + +static void ibx_irq_handler(struct drm_device *dev, u32 pch_iir) { drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; - u32 pch_iir; int pipe; - pch_iir = I915_READ(SDEIIR); - if (pch_iir & SDE_AUDIO_POWER_MASK) DRM_DEBUG_DRIVER("PCH audio power change on port %d\n", (pch_iir & SDE_AUDIO_POWER_MASK) >> @@ -467,6 +488,35 @@ DRM_DEBUG_DRIVER("PCH transcoder A underrun interrupt\n"); } +static void cpt_irq_handler(struct drm_device *dev, u32 pch_iir) +{ + drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; + int pipe; + + if (pch_iir & SDE_AUDIO_POWER_MASK_CPT) + DRM_DEBUG_DRIVER("PCH audio power change on port %d\n", + (pch_iir & SDE_AUDIO_POWER_MASK_CPT) >> + SDE_AUDIO_POWER_SHIFT_CPT); + + if (pch_iir & SDE_AUX_MASK_CPT) + DRM_DEBUG_DRIVER("AUX channel interrupt\n"); + + if (pch_iir & SDE_GMBUS_CPT) + DRM_DEBUG_DRIVER("PCH GMBUS interrupt\n"); + + if (pch_iir & SDE_AUDIO_CP_REQ_CPT) + DRM_DEBUG_DRIVER("Audio CP request interrupt\n"); + + if (pch_iir & SDE_AUDIO_CP_CHG_CPT) + DRM_DEBUG_DRIVER("Audio CP change interrupt\n"); + + if (pch_iir & SDE_FDI_MASK_CPT) + for_each_pipe(pipe) + DRM_DEBUG_DRIVER(" pipe %c FDI IIR: 0x%08x\n", + pipe_name(pipe), + I915_READ(FDI_RX_IIR(pipe))); +} + static irqreturn_t ivybridge_irq_handler(DRM_IRQ_ARGS) { struct drm_device *dev = (struct drm_device *) arg; @@ -509,6 +559,12 @@ if (de_iir & DE_GSE_IVB) intel_opregion_gse_intr(dev); + if (de_iir & DE_PIPEA_VBLANK_IVB) + drm_handle_vblank(dev, 0); + + if (de_iir & DE_PIPEB_VBLANK_IVB) + drm_handle_vblank(dev, 1); + if (de_iir & DE_PLANEA_FLIP_DONE_IVB) { intel_prepare_page_flip(dev, 0); intel_finish_page_flip_plane(dev, 0); @@ -519,29 +575,15 @@ intel_finish_page_flip_plane(dev, 1); } - if (de_iir & DE_PIPEA_VBLANK_IVB) - drm_handle_vblank(dev, 0); - - if (de_iir & DE_PIPEB_VBLANK_IVB) - drm_handle_vblank(dev, 1); - /* check event from PCH */ if (de_iir & DE_PCH_EVENT_IVB) { if (pch_iir & SDE_HOTPLUG_MASK_CPT) queue_work(dev_priv->wq, &dev_priv->hotplug_work); - pch_irq_handler(dev); + cpt_irq_handler(dev, pch_iir); } - if (pm_iir & GEN6_PM_DEFERRED_EVENTS) { - unsigned long flags; - spin_lock_irqsave(&dev_priv->rps_lock, flags); - WARN(dev_priv->pm_iir & pm_iir, "Missed a PM interrupt\n"); - dev_priv->pm_iir |= pm_iir; - I915_WRITE(GEN6_PMIMR, dev_priv->pm_iir); - POSTING_READ(GEN6_PMIMR); - spin_unlock_irqrestore(&dev_priv->rps_lock, flags); - queue_work(dev_priv->wq, &dev_priv->rps_work); - } + if (pm_iir & GEN6_PM_DEFERRED_EVENTS) + gen6_queue_rps_work(dev_priv, pm_iir); /* should clear PCH hotplug event before clear CPU irq */ I915_WRITE(SDEIIR, pch_iir); @@ -609,6 +651,12 @@ if (de_iir & DE_GSE) intel_opregion_gse_intr(dev); + if (de_iir & DE_PIPEA_VBLANK) + drm_handle_vblank(dev, 0); + + if (de_iir & DE_PIPEB_VBLANK) + drm_handle_vblank(dev, 1); + if (de_iir & DE_PLANEA_FLIP_DONE) { intel_prepare_page_flip(dev, 0); intel_finish_page_flip_plane(dev, 0); @@ -619,17 +667,14 @@ intel_finish_page_flip_plane(dev, 1); } - if (de_iir & DE_PIPEA_VBLANK) - drm_handle_vblank(dev, 0); - - if (de_iir & DE_PIPEB_VBLANK) - drm_handle_vblank(dev, 1); - /* check event from PCH */ if (de_iir & DE_PCH_EVENT) { if (pch_iir & hotplug_mask) queue_work(dev_priv->wq, &dev_priv->hotplug_work); - pch_irq_handler(dev); + if (HAS_PCH_CPT(dev)) + cpt_irq_handler(dev, pch_iir); + else + ibx_irq_handler(dev, pch_iir); } if (de_iir & DE_PCU_EVENT) { @@ -637,25 +682,8 @@ i915_handle_rps_change(dev); } - if (IS_GEN6(dev) && pm_iir & GEN6_PM_DEFERRED_EVENTS) { - /* - * IIR bits should never already be set because IMR should - * prevent an interrupt from being shown in IIR. The warning - * displays a case where we've unsafely cleared - * dev_priv->pm_iir. Although missing an interrupt of the same - * type is not a problem, it displays a problem in the logic. - * - * The mask bit in IMR is cleared by rps_work. - */ - unsigned long flags; - spin_lock_irqsave(&dev_priv->rps_lock, flags); - WARN(dev_priv->pm_iir & pm_iir, "Missed a PM interrupt\n"); - dev_priv->pm_iir |= pm_iir; - I915_WRITE(GEN6_PMIMR, dev_priv->pm_iir); - POSTING_READ(GEN6_PMIMR); - spin_unlock_irqrestore(&dev_priv->rps_lock, flags); - queue_work(dev_priv->wq, &dev_priv->rps_work); - } + if (IS_GEN6(dev) && pm_iir & GEN6_PM_DEFERRED_EVENTS) + gen6_queue_rps_work(dev_priv, pm_iir); /* should clear PCH hotplug event before clear CPU irq */ I915_WRITE(SDEIIR, pch_iir); @@ -1191,7 +1219,9 @@ spin_lock_irqsave(&dev->event_lock, flags); work = intel_crtc->unpin_work; - if (work == NULL || work->pending || !work->enable_stall_check) { + if (work == NULL || + atomic_read(&work->pending) >= INTEL_FLIP_COMPLETE || + !work->enable_stall_check) { /* Either the pending flip IRQ arrived, or we're too early. Don't check */ spin_unlock_irqrestore(&dev->event_lock, flags); return; @@ -1669,7 +1699,7 @@ { struct drm_device *dev = (struct drm_device *)data; drm_i915_private_t *dev_priv = dev->dev_private; - uint32_t acthd, instdone, instdone1; + uint32_t acthd, instdone, instdone1, acthd_bsd, acthd_blt; bool err = false; if (!i915_enable_hangcheck) @@ -1686,16 +1716,21 @@ } if (INTEL_INFO(dev)->gen < 4) { - acthd = I915_READ(ACTHD); instdone = I915_READ(INSTDONE); instdone1 = 0; } else { - acthd = I915_READ(ACTHD_I965); instdone = I915_READ(INSTDONE_I965); instdone1 = I915_READ(INSTDONE1); } + acthd = intel_ring_get_active_head(&dev_priv->ring[RCS]); + acthd_bsd = HAS_BSD(dev) ? + intel_ring_get_active_head(&dev_priv->ring[VCS]) : 0; + acthd_blt = HAS_BLT(dev) ? + intel_ring_get_active_head(&dev_priv->ring[BCS]) : 0; if (dev_priv->last_acthd == acthd && + dev_priv->last_acthd_bsd == acthd_bsd && + dev_priv->last_acthd_blt == acthd_blt && dev_priv->last_instdone == instdone && dev_priv->last_instdone1 == instdone1) { if (dev_priv->hangcheck_count++ > 1) { @@ -1727,6 +1762,8 @@ dev_priv->hangcheck_count = 0; dev_priv->last_acthd = acthd; + dev_priv->last_acthd_bsd = acthd_bsd; + dev_priv->last_acthd_blt = acthd_blt; dev_priv->last_instdone = instdone; dev_priv->last_instdone1 = instdone1; } @@ -2003,10 +2040,22 @@ hotplug_en |= HDMIC_HOTPLUG_INT_EN; if (dev_priv->hotplug_supported_mask & HDMID_HOTPLUG_INT_STATUS) hotplug_en |= HDMID_HOTPLUG_INT_EN; - if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS) - hotplug_en |= SDVOC_HOTPLUG_INT_EN; - if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS) - hotplug_en |= SDVOB_HOTPLUG_INT_EN; + if (IS_G4X(dev)) { + if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS_G4X) + hotplug_en |= SDVOC_HOTPLUG_INT_EN; + if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS_G4X) + hotplug_en |= SDVOB_HOTPLUG_INT_EN; + } else if (IS_GEN4(dev)) { + if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS_I965) + hotplug_en |= SDVOC_HOTPLUG_INT_EN; + if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS_I965) + hotplug_en |= SDVOB_HOTPLUG_INT_EN; + } else { + if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS_I915) + hotplug_en |= SDVOC_HOTPLUG_INT_EN; + if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS_I915) + hotplug_en |= SDVOB_HOTPLUG_INT_EN; + } if (dev_priv->hotplug_supported_mask & CRT_HOTPLUG_INT_STATUS) { hotplug_en |= CRT_HOTPLUG_INT_EN; --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_dvo.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_dvo.c @@ -371,6 +371,7 @@ const struct intel_dvo_device *dvo = &intel_dvo_devices[i]; struct i2c_adapter *i2c; int gpio; + bool dvoinit; /* Allow the I2C driver info to specify the GPIO to be used in * special cases, but otherwise default to what's defined @@ -390,7 +391,17 @@ i2c = &dev_priv->gmbus[gpio].adapter; intel_dvo->dev = *dvo; - if (!dvo->dev_ops->init(&intel_dvo->dev, i2c)) + + /* GMBUS NAK handling seems to be unstable, hence let the + * transmitter detection run in bit banging mode for now. + */ + intel_gmbus_force_bit(i2c, true); + + dvoinit = dvo->dev_ops->init(&intel_dvo->dev, i2c); + + intel_gmbus_force_bit(i2c, false); + + if (!dvoinit) continue; intel_encoder->type = INTEL_OUTPUT_DVO; --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_drv.h +++ linux-3.2.0/drivers/gpu/drm/i915/intel_drv.h @@ -227,12 +227,12 @@ uint16_t bottom_bar_start; uint16_t left_bar_end; uint16_t right_bar_start; - } avi; + } __attribute__ ((packed)) avi; struct { uint8_t vn[8]; uint8_t pd[16]; uint8_t sdi; - } spd; + } __attribute__ ((packed)) spd; uint8_t payload[27]; } __attribute__ ((packed)) body; } __attribute__((packed)); @@ -257,7 +257,10 @@ struct drm_i915_gem_object *old_fb_obj; struct drm_i915_gem_object *pending_flip_obj; struct drm_pending_vblank_event *event; - int pending; + atomic_t pending; +#define INTEL_FLIP_INACTIVE 0 +#define INTEL_FLIP_PENDING 1 +#define INTEL_FLIP_COMPLETE 2 bool enable_stall_check; }; @@ -364,7 +367,7 @@ struct drm_i915_gem_object *obj); extern int intel_fbdev_init(struct drm_device *dev); extern void intel_fbdev_fini(struct drm_device *dev); - +extern void intel_fbdev_set_suspend(struct drm_device *dev, int state); extern void intel_prepare_page_flip(struct drm_device *dev, int plane); extern void intel_finish_page_flip(struct drm_device *dev, int pipe); extern void intel_finish_page_flip_plane(struct drm_device *dev, int plane); --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_sdvo_regs.h +++ linux-3.2.0/drivers/gpu/drm/i915/intel_sdvo_regs.h @@ -61,6 +61,11 @@ u16 output_flags; } __attribute__((packed)); +/* Note: SDVO detailed timing flags match EDID misc flags. */ +#define DTD_FLAG_HSYNC_POSITIVE (1 << 1) +#define DTD_FLAG_VSYNC_POSITIVE (1 << 2) +#define DTD_FLAG_INTERLACE (1 << 7) + /** This matches the EDID DTD structure, more or less */ struct intel_sdvo_dtd { struct { @@ -703,6 +708,8 @@ #define SDVO_CMD_SET_AUDIO_STAT 0x91 #define SDVO_CMD_GET_AUDIO_STAT 0x92 #define SDVO_CMD_SET_HBUF_INDEX 0x93 + #define SDVO_HBUF_INDEX_ELD 0 + #define SDVO_HBUF_INDEX_AVI_IF 1 #define SDVO_CMD_GET_HBUF_INDEX 0x94 #define SDVO_CMD_GET_HBUF_INFO 0x95 #define SDVO_CMD_SET_HBUF_AV_SPLIT 0x96 --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_dp.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_dp.c @@ -208,17 +208,8 @@ */ static int -intel_dp_link_required(struct intel_dp *intel_dp, int pixel_clock, int check_bpp) +intel_dp_link_required(int pixel_clock, int bpp) { - struct drm_crtc *crtc = intel_dp->base.base.crtc; - struct intel_crtc *intel_crtc = to_intel_crtc(crtc); - int bpp = 24; - - if (check_bpp) - bpp = check_bpp; - else if (intel_crtc) - bpp = intel_crtc->bpp; - return (pixel_clock * bpp + 9) / 10; } @@ -228,14 +219,38 @@ return (max_link_clock * max_lanes * 8) / 10; } +static bool +intel_dp_adjust_dithering(struct intel_dp *intel_dp, + struct drm_display_mode *mode, + struct drm_display_mode *adjusted_mode) +{ + int max_link_clock = intel_dp_link_clock(intel_dp_max_link_bw(intel_dp)); + int max_lanes = intel_dp_max_lane_count(intel_dp); + int max_rate, mode_rate; + + mode_rate = intel_dp_link_required(mode->clock, 24); + max_rate = intel_dp_max_data_rate(max_link_clock, max_lanes); + + if (mode_rate > max_rate) { + mode_rate = intel_dp_link_required(mode->clock, 18); + if (mode_rate > max_rate) + return false; + + if (adjusted_mode) + adjusted_mode->private_flags + |= INTEL_MODE_DP_FORCE_6BPC; + + return true; + } + + return true; +} + static int intel_dp_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { struct intel_dp *intel_dp = intel_attached_dp(connector); - int max_link_clock = intel_dp_link_clock(intel_dp_max_link_bw(intel_dp)); - int max_lanes = intel_dp_max_lane_count(intel_dp); - int max_rate, mode_rate; if (is_edp(intel_dp) && intel_dp->panel_fixed_mode) { if (mode->hdisplay > intel_dp->panel_fixed_mode->hdisplay) @@ -245,17 +260,8 @@ return MODE_PANEL; } - mode_rate = intel_dp_link_required(intel_dp, mode->clock, 0); - max_rate = intel_dp_max_data_rate(max_link_clock, max_lanes); - - if (mode_rate > max_rate) { - mode_rate = intel_dp_link_required(intel_dp, - mode->clock, 18); - if (mode_rate > max_rate) - return MODE_CLOCK_HIGH; - else - mode->private_flags |= INTEL_MODE_DP_FORCE_6BPC; - } + if (!intel_dp_adjust_dithering(intel_dp, mode, NULL)) + return MODE_CLOCK_HIGH; if (mode->clock < 10000) return MODE_CLOCK_LOW; @@ -683,7 +689,7 @@ int lane_count, clock; int max_lane_count = intel_dp_max_lane_count(intel_dp); int max_clock = intel_dp_max_link_bw(intel_dp) == DP_LINK_BW_2_7 ? 1 : 0; - int bpp = mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 0; + int bpp; static int bws[2] = { DP_LINK_BW_1_62, DP_LINK_BW_2_7 }; if (is_edp(intel_dp) && intel_dp->panel_fixed_mode) { @@ -697,11 +703,16 @@ mode->clock = intel_dp->panel_fixed_mode->clock; } - for (lane_count = 1; lane_count <= max_lane_count; lane_count <<= 1) { - for (clock = 0; clock <= max_clock; clock++) { + if (!intel_dp_adjust_dithering(intel_dp, mode, adjusted_mode)) + return false; + + bpp = adjusted_mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 24; + + for (clock = 0; clock <= max_clock; clock++) { + for (lane_count = 1; lane_count <= max_lane_count; lane_count <<= 1) { int link_avail = intel_dp_max_data_rate(intel_dp_link_clock(bws[clock]), lane_count); - if (intel_dp_link_required(intel_dp, mode->clock, bpp) + if (intel_dp_link_required(mode->clock, bpp) <= link_avail) { intel_dp->link_bw = bws[clock]; intel_dp->lane_count = lane_count; @@ -1138,13 +1149,17 @@ DRM_DEBUG_KMS("Turn eDP power off\n"); - WARN(intel_dp->want_panel_vdd, "Cannot turn power off while VDD is on\n"); + WARN(!intel_dp->want_panel_vdd, "Need VDD to turn off panel\n"); pp = ironlake_get_pp_control(dev_priv); + /* We need to switch off panel power _and_ force vdd, for otherwise some + * panels get very unhappy and cease to work. */ pp &= ~(POWER_TARGET_ON | EDP_FORCE_VDD | PANEL_POWER_RESET | EDP_BLC_ENABLE); I915_WRITE(PCH_PP_CONTROL, pp); POSTING_READ(PCH_PP_CONTROL); + intel_dp->want_panel_vdd = false; + ironlake_wait_panel_off(intel_dp); } @@ -1249,18 +1264,14 @@ { struct intel_dp *intel_dp = enc_to_intel_dp(encoder); - ironlake_edp_backlight_off(intel_dp); - ironlake_edp_panel_off(intel_dp); - /* Wake up the sink first */ + /* Make sure the panel is off before trying to change the mode. But also + * ensure that we have vdd while we switch off the panel. */ ironlake_edp_panel_vdd_on(intel_dp); + ironlake_edp_backlight_off(intel_dp); intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON); + ironlake_edp_panel_off(intel_dp); intel_dp_link_down(intel_dp); - ironlake_edp_panel_vdd_off(intel_dp, false); - - /* Make sure the panel is off before trying to - * change the mode - */ } static void intel_dp_commit(struct drm_encoder *encoder) @@ -1292,13 +1303,12 @@ uint32_t dp_reg = I915_READ(intel_dp->output_reg); if (mode != DRM_MODE_DPMS_ON) { - ironlake_edp_backlight_off(intel_dp); - ironlake_edp_panel_off(intel_dp); - + /* Switching the panel off requires vdd. */ ironlake_edp_panel_vdd_on(intel_dp); + ironlake_edp_backlight_off(intel_dp); intel_dp_sink_dpms(intel_dp, mode); + ironlake_edp_panel_off(intel_dp); intel_dp_link_down(intel_dp); - ironlake_edp_panel_vdd_off(intel_dp, false); if (is_cpu_edp(intel_dp)) ironlake_edp_pll_off(encoder); @@ -1926,6 +1936,7 @@ intel_wait_for_vblank(dev, to_intel_crtc(crtc)->pipe); } + DP &= ~DP_AUDIO_OUTPUT_ENABLE; I915_WRITE(intel_dp->output_reg, DP & ~DP_PORT_EN); POSTING_READ(intel_dp->output_reg); msleep(intel_dp->panel_power_down_delay); @@ -2263,11 +2274,6 @@ static void intel_dp_destroy(struct drm_connector *connector) { - struct drm_device *dev = connector->dev; - - if (intel_dpd_is_edp(dev)) - intel_panel_destroy_backlight(dev); - drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(connector); --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_ringbuffer.h +++ linux-3.2.0/drivers/gpu/drm/i915/intel_ringbuffer.h @@ -164,6 +164,8 @@ #define READ_BREADCRUMB(dev_priv) READ_HWSP(dev_priv, I915_BREADCRUMB_INDEX) #define I915_GEM_HWS_INDEX 0x20 #define I915_BREADCRUMB_INDEX 0x21 +#define I915_GEM_HWS_SCRATCH_INDEX 0x30 +#define I915_GEM_HWS_SCRATCH_ADDR (I915_GEM_HWS_SCRATCH_INDEX << MI_STORE_DWORD_INDEX_SHIFT) void intel_cleanup_ring_buffer(struct intel_ring_buffer *ring); --- linux-3.2.0.orig/drivers/gpu/drm/i915/i915_gem_tiling.c +++ linux-3.2.0/drivers/gpu/drm/i915/i915_gem_tiling.c @@ -107,10 +107,10 @@ */ swizzle_x = I915_BIT_6_SWIZZLE_NONE; swizzle_y = I915_BIT_6_SWIZZLE_NONE; - } else if (IS_MOBILE(dev)) { + } else if (IS_MOBILE(dev) || (IS_GEN3(dev) && !IS_G33(dev))) { uint32_t dcc; - /* On mobile 9xx chipsets, channel interleave by the CPU is + /* On 9xx chipsets, channel interleave by the CPU is * determined by DCC. For single-channel, neither the CPU * nor the GPU do swizzling. For dual channel interleaved, * the GPU's interleave is bit 9 and 10 for X tiled, and bit --- linux-3.2.0.orig/drivers/gpu/drm/i915/i915_drv.c +++ linux-3.2.0/drivers/gpu/drm/i915/i915_drv.c @@ -64,7 +64,7 @@ "Use semaphores for inter-ring sync (default: -1 (use per-chip defaults))"); int i915_enable_rc6 __read_mostly = -1; -module_param_named(i915_enable_rc6, i915_enable_rc6, int, 0600); +module_param_named(i915_enable_rc6, i915_enable_rc6, int, 0400); MODULE_PARM_DESC(i915_enable_rc6, "Enable power-saving render C-state 6 (default: -1 (use per-chip default)"); @@ -214,6 +214,7 @@ .need_gfx_hws = 1, .has_hotplug = 1, .has_bsd_ring = 1, .has_blt_ring = 1, + .has_force_wake = 1, }; static const struct intel_device_info intel_sandybridge_m_info = { @@ -222,6 +223,7 @@ .has_fbc = 1, .has_bsd_ring = 1, .has_blt_ring = 1, + .has_force_wake = 1, }; static const struct intel_device_info intel_ivybridge_d_info = { @@ -229,6 +231,7 @@ .need_gfx_hws = 1, .has_hotplug = 1, .has_bsd_ring = 1, .has_blt_ring = 1, + .has_force_wake = 1, }; static const struct intel_device_info intel_ivybridge_m_info = { @@ -237,6 +240,7 @@ .has_fbc = 0, /* FBC is not enabled on Ivybridge mobile yet */ .has_bsd_ring = 1, .has_blt_ring = 1, + .has_force_wake = 1, }; static const struct pci_device_id pciidlist[] = { /* aka */ @@ -283,6 +287,7 @@ INTEL_VGA_DEVICE(0x0152, &intel_ivybridge_d_info), /* GT1 desktop */ INTEL_VGA_DEVICE(0x0162, &intel_ivybridge_d_info), /* GT2 desktop */ INTEL_VGA_DEVICE(0x015a, &intel_ivybridge_d_info), /* GT1 server */ + INTEL_VGA_DEVICE(0x016a, &intel_ivybridge_d_info), /* GT2 server */ {0, 0, 0} }; @@ -368,11 +373,12 @@ */ void gen6_gt_force_wake_get(struct drm_i915_private *dev_priv) { - WARN_ON(!mutex_is_locked(&dev_priv->dev->struct_mutex)); + unsigned long irqflags; - /* Forcewake is atomic in case we get in here without the lock */ - if (atomic_add_return(1, &dev_priv->forcewake_count) == 1) + spin_lock_irqsave(&dev_priv->gt_lock, irqflags); + if (dev_priv->forcewake_count++ == 0) dev_priv->display.force_wake_get(dev_priv); + spin_unlock_irqrestore(&dev_priv->gt_lock, irqflags); } void __gen6_gt_force_wake_put(struct drm_i915_private *dev_priv) @@ -392,10 +398,12 @@ */ void gen6_gt_force_wake_put(struct drm_i915_private *dev_priv) { - WARN_ON(!mutex_is_locked(&dev_priv->dev->struct_mutex)); + unsigned long irqflags; - if (atomic_dec_and_test(&dev_priv->forcewake_count)) + spin_lock_irqsave(&dev_priv->gt_lock, irqflags); + if (--dev_priv->forcewake_count == 0) dev_priv->display.force_wake_put(dev_priv); + spin_unlock_irqrestore(&dev_priv->gt_lock, irqflags); } void __gen6_gt_wait_for_fifo(struct drm_i915_private *dev_priv) @@ -439,6 +447,10 @@ /* Modeset on resume, not lid events */ dev_priv->modeset_on_lid = 0; + console_lock(); + intel_fbdev_set_suspend(dev, 1); + console_unlock(); + return 0; } @@ -501,7 +513,9 @@ drm_irq_install(dev); /* Resume the modeset for every activated CRTC */ + mutex_lock(&dev->mode_config.mutex); drm_helper_resume_force_mode(dev); + mutex_unlock(&dev->mode_config.mutex); if (IS_IRONLAKE_M(dev)) ironlake_enable_rc6(dev); @@ -511,6 +525,9 @@ dev_priv->modeset_on_lid = 0; + console_lock(); + intel_fbdev_set_suspend(dev, 0); + console_unlock(); return error; } @@ -626,6 +643,7 @@ * need to */ bool need_display = true; + unsigned long irqflags; int ret; if (!i915_try_reset) @@ -644,8 +662,10 @@ case 6: ret = gen6_do_reset(dev, flags); /* If reset with a user forcewake, try to restore */ - if (atomic_read(&dev_priv->forcewake_count)) - __gen6_gt_force_wake_get(dev_priv); + spin_lock_irqsave(&dev_priv->gt_lock, irqflags); + if (dev_priv->forcewake_count) + dev_priv->display.force_wake_get(dev_priv); + spin_unlock_irqrestore(&dev_priv->gt_lock, irqflags); break; case 5: ret = ironlake_do_reset(dev, flags); @@ -924,7 +944,7 @@ /* We give fast paths for the really cool registers */ #define NEEDS_FORCE_WAKE(dev_priv, reg) \ - (((dev_priv)->info->gen >= 6) && \ + ((HAS_FORCE_WAKE((dev_priv)->dev)) && \ ((reg) < 0x40000) && \ ((reg) != FORCEWAKE) && \ ((reg) != ECOBUS)) --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_opregion.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_opregion.c @@ -419,6 +419,25 @@ goto end; } +static void intel_setup_cadls(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + struct intel_opregion *opregion = &dev_priv->opregion; + int i = 0; + u32 disp_id; + + /* Initialize the CADL field by duplicating the DIDL values. + * Technically, this is not always correct as display outputs may exist, + * but not active. This initialization is necessary for some Clevo + * laptops that check this field before processing the brightness and + * display switching hotkeys. Just like DIDL, CADL is NULL-terminated if + * there are less than eight devices. */ + do { + disp_id = ioread32(&opregion->acpi->didl[i]); + iowrite32(disp_id, &opregion->acpi->cadl[i]); + } while (++i < 8 && disp_id != 0); +} + void intel_opregion_init(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -428,8 +447,10 @@ return; if (opregion->acpi) { - if (drm_core_check_feature(dev, DRIVER_MODESET)) + if (drm_core_check_feature(dev, DRIVER_MODESET)) { intel_didl_outputs(dev); + intel_setup_cadls(dev); + } /* Notify BIOS we are ready to handle ACPI video ext notifs. * Right now, all the events are handled by the ACPI video module. --- linux-3.2.0.orig/drivers/gpu/drm/i915/i915_suspend.c +++ linux-3.2.0/drivers/gpu/drm/i915/i915_suspend.c @@ -34,6 +34,10 @@ struct drm_i915_private *dev_priv = dev->dev_private; u32 dpll_reg; + /* On IVB, 3rd pipe shares PLL with another one */ + if (pipe > 1) + return false; + if (HAS_PCH_SPLIT(dev)) dpll_reg = (pipe == PIPE_A) ? _PCH_DPLL_A : _PCH_DPLL_B; else @@ -735,8 +739,11 @@ if (HAS_PCH_SPLIT(dev)) { I915_WRITE(BLC_PWM_PCH_CTL1, dev_priv->saveBLC_PWM_CTL); I915_WRITE(BLC_PWM_PCH_CTL2, dev_priv->saveBLC_PWM_CTL2); - I915_WRITE(BLC_PWM_CPU_CTL, dev_priv->saveBLC_CPU_PWM_CTL); + /* NOTE: BLC_PWM_CPU_CTL must be written after BLC_PWM_CPU_CTL2; + * otherwise we get blank eDP screen after S3 on some machines + */ I915_WRITE(BLC_PWM_CPU_CTL2, dev_priv->saveBLC_CPU_PWM_CTL2); + I915_WRITE(BLC_PWM_CPU_CTL, dev_priv->saveBLC_CPU_PWM_CTL); I915_WRITE(PCH_PP_ON_DELAYS, dev_priv->savePP_ON_DELAYS); I915_WRITE(PCH_PP_OFF_DELAYS, dev_priv->savePP_OFF_DELAYS); I915_WRITE(PCH_PP_DIVISOR, dev_priv->savePP_DIVISOR); @@ -822,7 +829,7 @@ if (IS_IRONLAKE_M(dev)) ironlake_disable_drps(dev); - if (IS_GEN6(dev)) + if (INTEL_INFO(dev)->gen >= 6) gen6_disable_rps(dev); /* Cache mode state */ @@ -881,7 +888,7 @@ intel_init_emon(dev); } - if (IS_GEN6(dev)) { + if (INTEL_INFO(dev)->gen >= 6) { gen6_enable_rps(dev_priv); gen6_update_ring_freq(dev_priv); } --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_overlay.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_overlay.c @@ -428,9 +428,17 @@ OUT_RING(flip_addr); OUT_RING(MI_WAIT_FOR_EVENT | MI_WAIT_FOR_OVERLAY_FLIP); /* turn overlay off */ - OUT_RING(MI_OVERLAY_FLIP | MI_OVERLAY_OFF); - OUT_RING(flip_addr); - OUT_RING(MI_WAIT_FOR_EVENT | MI_WAIT_FOR_OVERLAY_FLIP); + if (IS_I830(dev)) { + /* Workaround: Don't disable the overlay fully, since otherwise + * it dies on the next OVERLAY_ON cmd. */ + OUT_RING(MI_NOOP); + OUT_RING(MI_NOOP); + OUT_RING(MI_NOOP); + } else { + OUT_RING(MI_OVERLAY_FLIP | MI_OVERLAY_OFF); + OUT_RING(flip_addr); + OUT_RING(MI_WAIT_FOR_EVENT | MI_WAIT_FOR_OVERLAY_FLIP); + } ADVANCE_LP_RING(); return intel_overlay_do_wait_request(overlay, request, --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_tv.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_tv.c @@ -417,7 +417,7 @@ { .name = "NTSC-M", .clock = 108000, - .refresh = 29970, + .refresh = 59940, .oversample = TV_OVERSAMPLE_8X, .component_only = 0, /* 525 Lines, 60 Fields, 15.734KHz line, Sub-Carrier 3.580MHz */ @@ -460,7 +460,7 @@ { .name = "NTSC-443", .clock = 108000, - .refresh = 29970, + .refresh = 59940, .oversample = TV_OVERSAMPLE_8X, .component_only = 0, /* 525 Lines, 60 Fields, 15.734KHz line, Sub-Carrier 4.43MHz */ @@ -502,7 +502,7 @@ { .name = "NTSC-J", .clock = 108000, - .refresh = 29970, + .refresh = 59940, .oversample = TV_OVERSAMPLE_8X, .component_only = 0, @@ -545,7 +545,7 @@ { .name = "PAL-M", .clock = 108000, - .refresh = 29970, + .refresh = 59940, .oversample = TV_OVERSAMPLE_8X, .component_only = 0, @@ -589,7 +589,7 @@ /* 625 Lines, 50 Fields, 15.625KHz line, Sub-Carrier 4.434MHz */ .name = "PAL-N", .clock = 108000, - .refresh = 25000, + .refresh = 50000, .oversample = TV_OVERSAMPLE_8X, .component_only = 0, @@ -634,7 +634,7 @@ /* 625 Lines, 50 Fields, 15.625KHz line, Sub-Carrier 4.434MHz */ .name = "PAL", .clock = 108000, - .refresh = 25000, + .refresh = 50000, .oversample = TV_OVERSAMPLE_8X, .component_only = 0, @@ -821,7 +821,7 @@ { .name = "1080i@50Hz", .clock = 148800, - .refresh = 25000, + .refresh = 50000, .oversample = TV_OVERSAMPLE_2X, .component_only = 1, @@ -847,7 +847,7 @@ { .name = "1080i@60Hz", .clock = 148800, - .refresh = 30000, + .refresh = 60000, .oversample = TV_OVERSAMPLE_2X, .component_only = 1, @@ -1275,6 +1275,15 @@ DAC_B_0_7_V | DAC_C_0_7_V); + + /* + * The TV sense state should be cleared to zero on cantiga platform. Otherwise + * the TV is misdetected. This is hardware requirement. + */ + if (IS_GM45(dev)) + tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL | + TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL); + I915_WRITE(TV_CTL, tv_ctl); I915_WRITE(TV_DAC, tv_dac); POSTING_READ(TV_DAC); @@ -1307,6 +1316,11 @@ I915_WRITE(TV_DAC, save_tv_dac & ~TVDAC_STATE_CHG_EN); I915_WRITE(TV_CTL, save_tv_ctl); + POSTING_READ(TV_CTL); + + /* For unknown reasons the hw barfs if we don't do this vblank wait. */ + intel_wait_for_vblank(intel_tv->base.base.dev, + to_intel_crtc(intel_tv->base.base.crtc)->pipe); /* Restore interrupt config */ if (connector->polled & DRM_CONNECTOR_POLL_HPD) { --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_sdvo.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_sdvo.c @@ -731,6 +731,7 @@ uint16_t width, height; uint16_t h_blank_len, h_sync_len, v_blank_len, v_sync_len; uint16_t h_sync_offset, v_sync_offset; + int mode_clock; width = mode->crtc_hdisplay; height = mode->crtc_vdisplay; @@ -745,7 +746,11 @@ h_sync_offset = mode->crtc_hsync_start - mode->crtc_hblank_start; v_sync_offset = mode->crtc_vsync_start - mode->crtc_vblank_start; - dtd->part1.clock = mode->clock / 10; + mode_clock = mode->clock; + mode_clock /= intel_mode_get_pixel_multiplier(mode) ?: 1; + mode_clock /= 10; + dtd->part1.clock = mode_clock; + dtd->part1.h_active = width & 0xff; dtd->part1.h_blank = h_blank_len & 0xff; dtd->part1.h_high = (((width >> 8) & 0xf) << 4) | @@ -764,10 +769,12 @@ ((v_sync_len & 0x30) >> 4); dtd->part2.dtd_flags = 0x18; + if (mode->flags & DRM_MODE_FLAG_INTERLACE) + dtd->part2.dtd_flags |= DTD_FLAG_INTERLACE; if (mode->flags & DRM_MODE_FLAG_PHSYNC) - dtd->part2.dtd_flags |= 0x2; + dtd->part2.dtd_flags |= DTD_FLAG_HSYNC_POSITIVE; if (mode->flags & DRM_MODE_FLAG_PVSYNC) - dtd->part2.dtd_flags |= 0x4; + dtd->part2.dtd_flags |= DTD_FLAG_VSYNC_POSITIVE; dtd->part2.sdvo_flags = 0; dtd->part2.v_sync_off_high = v_sync_offset & 0xc0; @@ -801,9 +808,11 @@ mode->clock = dtd->part1.clock * 10; mode->flags &= ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC); - if (dtd->part2.dtd_flags & 0x2) + if (dtd->part2.dtd_flags & DTD_FLAG_INTERLACE) + mode->flags |= DRM_MODE_FLAG_INTERLACE; + if (dtd->part2.dtd_flags & DTD_FLAG_HSYNC_POSITIVE) mode->flags |= DRM_MODE_FLAG_PHSYNC; - if (dtd->part2.dtd_flags & 0x4) + if (dtd->part2.dtd_flags & DTD_FLAG_VSYNC_POSITIVE) mode->flags |= DRM_MODE_FLAG_PVSYNC; } @@ -859,31 +868,38 @@ } #endif -static bool intel_sdvo_set_avi_infoframe(struct intel_sdvo *intel_sdvo) +static bool intel_sdvo_write_infoframe(struct intel_sdvo *intel_sdvo, + unsigned if_index, uint8_t tx_rate, + uint8_t *data, unsigned length) { - struct dip_infoframe avi_if = { - .type = DIP_TYPE_AVI, - .ver = DIP_VERSION_AVI, - .len = DIP_LEN_AVI, - }; - uint8_t tx_rate = SDVO_HBUF_TX_VSYNC; - uint8_t set_buf_index[2] = { 1, 0 }; - uint64_t *data = (uint64_t *)&avi_if; - unsigned i; - - intel_dip_infoframe_csum(&avi_if); + uint8_t set_buf_index[2] = { if_index, 0 }; + uint8_t hbuf_size, tmp[8]; + int i; if (!intel_sdvo_set_value(intel_sdvo, SDVO_CMD_SET_HBUF_INDEX, set_buf_index, 2)) return false; - for (i = 0; i < sizeof(avi_if); i += 8) { + if (!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_HBUF_INFO, + &hbuf_size, 1)) + return false; + + /* Buffer size is 0 based, hooray! */ + hbuf_size++; + + DRM_DEBUG_KMS("writing sdvo hbuf: %i, hbuf_size %i, hbuf_size: %i\n", + if_index, length, hbuf_size); + + for (i = 0; i < hbuf_size; i += 8) { + memset(tmp, 0, 8); + if (i < length) + memcpy(tmp, data + i, min_t(unsigned, 8, length - i)); + if (!intel_sdvo_set_value(intel_sdvo, SDVO_CMD_SET_HBUF_DATA, - data, 8)) + tmp, 8)) return false; - data++; } return intel_sdvo_set_value(intel_sdvo, @@ -891,6 +907,28 @@ &tx_rate, 1); } +static bool intel_sdvo_set_avi_infoframe(struct intel_sdvo *intel_sdvo) +{ + struct dip_infoframe avi_if = { + .type = DIP_TYPE_AVI, + .ver = DIP_VERSION_AVI, + .len = DIP_LEN_AVI, + }; + uint8_t sdvo_data[4 + sizeof(avi_if.body.avi)]; + + intel_dip_infoframe_csum(&avi_if); + + /* sdvo spec says that the ecc is handled by the hw, and it looks like + * we must not send the ecc field, either. */ + memcpy(sdvo_data, &avi_if, 3); + sdvo_data[3] = avi_if.checksum; + memcpy(&sdvo_data[4], &avi_if.body, sizeof(avi_if.body.avi)); + + return intel_sdvo_write_infoframe(intel_sdvo, SDVO_HBUF_INDEX_AVI_IF, + SDVO_HBUF_TX_VSYNC, + sdvo_data, sizeof(sdvo_data)); +} + static bool intel_sdvo_set_tv_format(struct intel_sdvo *intel_sdvo) { struct intel_sdvo_tv_format format; @@ -997,7 +1035,7 @@ struct intel_sdvo *intel_sdvo = to_intel_sdvo(encoder); u32 sdvox; struct intel_sdvo_in_out_map in_out; - struct intel_sdvo_dtd input_dtd; + struct intel_sdvo_dtd input_dtd, output_dtd; int pixel_multiplier = intel_mode_get_pixel_multiplier(adjusted_mode); int rate; @@ -1022,20 +1060,13 @@ intel_sdvo->attached_output)) return; - /* We have tried to get input timing in mode_fixup, and filled into - * adjusted_mode. - */ - if (intel_sdvo->is_tv || intel_sdvo->is_lvds) { - input_dtd = intel_sdvo->input_dtd; - } else { - /* Set the output timing to the screen */ - if (!intel_sdvo_set_target_output(intel_sdvo, - intel_sdvo->attached_output)) - return; - - intel_sdvo_get_dtd_from_mode(&input_dtd, adjusted_mode); - (void) intel_sdvo_set_output_timing(intel_sdvo, &input_dtd); - } + /* lvds has a special fixed output timing. */ + if (intel_sdvo->is_lvds) + intel_sdvo_get_dtd_from_mode(&output_dtd, + intel_sdvo->sdvo_lvds_fixed_mode); + else + intel_sdvo_get_dtd_from_mode(&output_dtd, mode); + (void) intel_sdvo_set_output_timing(intel_sdvo, &output_dtd); /* Set the input timing to the screen. Assume always input 0. */ if (!intel_sdvo_set_target_input(intel_sdvo)) @@ -1053,6 +1084,10 @@ !intel_sdvo_set_tv_format(intel_sdvo)) return; + /* We have tried to get input timing in mode_fixup, and filled into + * adjusted_mode. + */ + intel_sdvo_get_dtd_from_mode(&input_dtd, adjusted_mode); (void) intel_sdvo_set_input_timing(intel_sdvo, &input_dtd); switch (pixel_multiplier) { @@ -1066,15 +1101,13 @@ /* Set the SDVO control regs. */ if (INTEL_INFO(dev)->gen >= 4) { - sdvox = 0; + /* The real mode polarity is set by the SDVO commands, using + * struct intel_sdvo_dtd. */ + sdvox = SDVO_VSYNC_ACTIVE_HIGH | SDVO_HSYNC_ACTIVE_HIGH; if (intel_sdvo->is_hdmi) sdvox |= intel_sdvo->color_range; if (INTEL_INFO(dev)->gen < 5) sdvox |= SDVO_BORDER_ENABLE; - if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC) - sdvox |= SDVO_VSYNC_ACTIVE_HIGH; - if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC) - sdvox |= SDVO_HSYNC_ACTIVE_HIGH; } else { sdvox = I915_READ(intel_sdvo->sdvo_reg); switch (intel_sdvo->sdvo_reg) { @@ -1221,8 +1254,14 @@ static int intel_sdvo_supports_hotplug(struct intel_sdvo *intel_sdvo) { + struct drm_device *dev = intel_sdvo->base.base.dev; u8 response[2]; + /* HW Erratum: SDVO Hotplug is broken on all i945G chips, there's noise + * on the line. */ + if (IS_I945G(dev) || IS_I945GM(dev)) + return false; + return intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_HOT_PLUG_SUPPORT, &response, 2) && response[0]; } @@ -1543,11 +1582,14 @@ * Assume that the preferred modes are * arranged in priority order. */ - intel_ddc_get_modes(connector, intel_sdvo->i2c); - if (list_empty(&connector->probed_modes) == false) - goto end; + intel_ddc_get_modes(connector, &intel_sdvo->ddc); - /* Fetch modes from VBT */ + /* + * Fetch modes from VBT. For SDVO prefer the VBT mode since some + * SDVO->LVDS transcoders can't cope with the EDID mode. Since + * drm_mode_probed_add adds the mode at the head of the list we add it + * last. + */ if (dev_priv->sdvo_lvds_vbt_mode != NULL) { newmode = drm_mode_duplicate(connector->dev, dev_priv->sdvo_lvds_vbt_mode); @@ -1559,7 +1601,6 @@ } } -end: list_for_each_entry(newmode, &connector->probed_modes, head) { if (newmode->type & DRM_MODE_TYPE_PREFERRED) { intel_sdvo->sdvo_lvds_fixed_mode = @@ -2225,6 +2266,18 @@ return true; } +static void intel_sdvo_output_cleanup(struct intel_sdvo *intel_sdvo) +{ + struct drm_device *dev = intel_sdvo->base.base.dev; + struct drm_connector *connector, *tmp; + + list_for_each_entry_safe(connector, tmp, + &dev->mode_config.connector_list, head) { + if (intel_attached_encoder(connector) == &intel_sdvo->base) + intel_sdvo_destroy(connector); + } +} + static bool intel_sdvo_tv_create_property(struct intel_sdvo *intel_sdvo, struct intel_sdvo_connector *intel_sdvo_connector, int type) @@ -2504,6 +2557,7 @@ struct drm_i915_private *dev_priv = dev->dev_private; struct intel_encoder *intel_encoder; struct intel_sdvo *intel_sdvo; + u32 hotplug_mask; int i; intel_sdvo = kzalloc(sizeof(struct intel_sdvo), GFP_KERNEL); @@ -2534,10 +2588,17 @@ } } - if (IS_SDVOB(sdvo_reg)) - dev_priv->hotplug_supported_mask |= SDVOB_HOTPLUG_INT_STATUS; - else - dev_priv->hotplug_supported_mask |= SDVOC_HOTPLUG_INT_STATUS; + hotplug_mask = 0; + if (IS_G4X(dev)) { + hotplug_mask = IS_SDVOB(sdvo_reg) ? + SDVOB_HOTPLUG_INT_STATUS_G4X : SDVOC_HOTPLUG_INT_STATUS_G4X; + } else if (IS_GEN4(dev)) { + hotplug_mask = IS_SDVOB(sdvo_reg) ? + SDVOB_HOTPLUG_INT_STATUS_I965 : SDVOC_HOTPLUG_INT_STATUS_I965; + } else { + hotplug_mask = IS_SDVOB(sdvo_reg) ? + SDVOB_HOTPLUG_INT_STATUS_I915 : SDVOC_HOTPLUG_INT_STATUS_I915; + } drm_encoder_helper_add(&intel_encoder->base, &intel_sdvo_helper_funcs); @@ -2545,31 +2606,30 @@ if (!intel_sdvo_get_capabilities(intel_sdvo, &intel_sdvo->caps)) goto err; - /* Set up hotplug command - note paranoia about contents of reply. - * We assume that the hardware is in a sane state, and only touch - * the bits we think we understand. - */ - intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_ACTIVE_HOT_PLUG, - &intel_sdvo->hotplug_active, 2); - intel_sdvo->hotplug_active[0] &= ~0x3; - if (intel_sdvo_output_setup(intel_sdvo, intel_sdvo->caps.output_flags) != true) { DRM_DEBUG_KMS("SDVO output failed to setup on SDVO%c\n", IS_SDVOB(sdvo_reg) ? 'B' : 'C'); - goto err; + /* Output_setup can leave behind connectors! */ + goto err_output; } + /* Only enable the hotplug irq if we need it, to work around noisy + * hotplug lines. + */ + if (intel_sdvo->hotplug_active[0]) + dev_priv->hotplug_supported_mask |= hotplug_mask; + intel_sdvo_select_ddc_bus(dev_priv, intel_sdvo, sdvo_reg); /* Set the input timing to the screen. Assume always input 0. */ if (!intel_sdvo_set_target_input(intel_sdvo)) - goto err; + goto err_output; if (!intel_sdvo_get_input_pixel_clock_range(intel_sdvo, &intel_sdvo->pixel_clock_min, &intel_sdvo->pixel_clock_max)) - goto err; + goto err_output; DRM_DEBUG_KMS("%s device VID/DID: %02X:%02X.%02X, " "clock range %dMHz - %dMHz, " @@ -2589,6 +2649,9 @@ (SDVO_OUTPUT_TMDS1 | SDVO_OUTPUT_RGB1) ? 'Y' : 'N'); return true; +err_output: + intel_sdvo_output_cleanup(intel_sdvo); + err: drm_encoder_cleanup(&intel_encoder->base); i2c_del_adapter(&intel_sdvo->ddc); --- linux-3.2.0.orig/drivers/gpu/drm/i915/i915_debugfs.c +++ linux-3.2.0/drivers/gpu/drm/i915/i915_debugfs.c @@ -30,6 +30,7 @@ #include #include #include +#include #include "drmP.h" #include "drm.h" #include "intel_drv.h" @@ -121,7 +122,7 @@ static void describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj) { - seq_printf(m, "%p: %s%s %8zd %04x %04x %d %d%s%s%s", + seq_printf(m, "%pK: %s%s %8zd %04x %04x %d %d%s%s%s", &obj->base, get_pin_flag(obj), get_tiling_flag(obj), @@ -339,7 +340,7 @@ seq_printf(m, "No flip due on pipe %c (plane %c)\n", pipe, plane); } else { - if (!work->pending) { + if (atomic_read(&work->pending) < INTEL_FLIP_COMPLETE) { seq_printf(m, "Flip queued on pipe %c (plane %c)\n", pipe, plane); } else { @@ -350,7 +351,7 @@ seq_printf(m, "Stall check enabled, "); else seq_printf(m, "Stall check waiting for page flip ioctl, "); - seq_printf(m, "%d prepares\n", work->pending); + seq_printf(m, "%d prepares\n", atomic_read(&work->pending)); if (work->old_fb_obj) { struct drm_i915_gem_object *obj = work->old_fb_obj; @@ -755,6 +756,7 @@ seq_printf(m, "Time: %ld s %ld us\n", error->time.tv_sec, error->time.tv_usec); + seq_printf(m, "Kernel: " UTS_RELEASE "\n"); seq_printf(m, "PCI ID: 0x%04x\n", dev->pci_device); seq_printf(m, "EIR: 0x%08x\n", error->eir); seq_printf(m, "PGTBL_ER: 0x%08x\n", error->pgtbl_er); @@ -1314,9 +1316,13 @@ struct drm_info_node *node = (struct drm_info_node *) m->private; struct drm_device *dev = node->minor->dev; struct drm_i915_private *dev_priv = dev->dev_private; + unsigned forcewake_count; - seq_printf(m, "forcewake count = %d\n", - atomic_read(&dev_priv->forcewake_count)); + spin_lock_irq(&dev_priv->gt_lock); + forcewake_count = dev_priv->forcewake_count; + spin_unlock_irq(&dev_priv->gt_lock); + + seq_printf(m, "forcewake count = %u\n", forcewake_count); return 0; } --- linux-3.2.0.orig/drivers/gpu/drm/i915/i915_dma.c +++ linux-3.2.0/drivers/gpu/drm/i915/i915_dma.c @@ -781,6 +781,9 @@ case I915_PARAM_HAS_RELAXED_DELTA: value = 1; break; + case I915_PARAM_HAS_GEN7_SOL_RESET: + value = 1; + break; default: DRM_DEBUG_DRIVER("Unknown parameter %d\n", param->param); @@ -1890,6 +1893,27 @@ } } +static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) +{ + struct apertures_struct *ap; + struct pci_dev *pdev = dev_priv->dev->pdev; + bool primary; + + ap = alloc_apertures(1); + if (!ap) + return; + + ap->ranges[0].base = dev_priv->dev->agp->base; + ap->ranges[0].size = + dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT; + primary = + pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW; + + remove_conflicting_framebuffers(ap, "inteldrmfb", primary); + + kfree(ap); +} + /** * i915_driver_load - setup chip and create an initial config * @dev: DRM device @@ -1927,6 +1951,15 @@ goto free_priv; } + dev_priv->mm.gtt = intel_gtt_get(); + if (!dev_priv->mm.gtt) { + DRM_ERROR("Failed to initialize GTT\n"); + ret = -ENODEV; + goto put_bridge; + } + + i915_kick_out_firmware_fb(dev_priv); + /* overlay on gen2 is broken and can't address above 1G */ if (IS_GEN2(dev)) dma_set_coherent_mask(&dev->pdev->dev, DMA_BIT_MASK(30)); @@ -1950,13 +1983,6 @@ goto put_bridge; } - dev_priv->mm.gtt = intel_gtt_get(); - if (!dev_priv->mm.gtt) { - DRM_ERROR("Failed to initialize GTT\n"); - ret = -ENODEV; - goto out_rmmap; - } - agp_size = dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT; dev_priv->mm.gtt_mapping = @@ -2042,6 +2068,7 @@ if (!IS_I945G(dev) && !IS_I945GM(dev)) pci_enable_msi(dev->pdev); + spin_lock_init(&dev_priv->gt_lock); spin_lock_init(&dev_priv->irq_lock); spin_lock_init(&dev_priv->error_lock); spin_lock_init(&dev_priv->rps_lock); --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_panel.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_panel.c @@ -28,6 +28,7 @@ * Chris Wilson */ +#include #include "intel_drv.h" #define PCI_LBPC 0xf4 /* legacy/combination backlight modes */ @@ -191,6 +192,27 @@ return max; } +static int i915_panel_invert_brightness; +MODULE_PARM_DESC(invert_brightness, "Invert backlight brightness " + "(-1 force normal, 0 machine defaults, 1 force inversion), please " + "report PCI device ID, subsystem vendor and subsystem device ID " + "to dri-devel@lists.freedesktop.org, if your machine needs it. " + "It will then be included in an upcoming module version."); +module_param_named(invert_brightness, i915_panel_invert_brightness, int, 0600); +static u32 intel_panel_compute_brightness(struct drm_device *dev, u32 val) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + + if (i915_panel_invert_brightness < 0) + return val; + + if (i915_panel_invert_brightness > 0 || + dev_priv->quirks & QUIRK_INVERT_BRIGHTNESS) + return intel_panel_get_max_backlight(dev) - val; + + return val; +} + u32 intel_panel_get_backlight(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -211,6 +233,7 @@ } } + val = intel_panel_compute_brightness(dev, val); DRM_DEBUG_DRIVER("get backlight PWM = %d\n", val); return val; } @@ -228,6 +251,7 @@ u32 tmp; DRM_DEBUG_DRIVER("set backlight PWM = %d\n", level); + level = intel_panel_compute_brightness(dev, level); if (HAS_PCH_SPLIT(dev)) return intel_pch_panel_set_backlight(dev, level); @@ -337,6 +361,9 @@ intel_panel_init_backlight(dev); + if (WARN_ON(dev_priv->backlight)) + return -ENODEV; + if (dev_priv->int_lvds_connector) connector = dev_priv->int_lvds_connector; else if (dev_priv->int_edp_connector) @@ -364,8 +391,10 @@ void intel_panel_destroy_backlight(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; - if (dev_priv->backlight) + if (dev_priv->backlight) { backlight_device_unregister(dev_priv->backlight); + dev_priv->backlight = NULL; + } } #else int intel_panel_setup_backlight(struct drm_device *dev) --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_ringbuffer.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -52,20 +52,6 @@ return space; } -static u32 i915_gem_get_seqno(struct drm_device *dev) -{ - drm_i915_private_t *dev_priv = dev->dev_private; - u32 seqno; - - seqno = dev_priv->next_seqno; - - /* reserve 0 for non-seqno */ - if (++dev_priv->next_seqno == 0) - dev_priv->next_seqno = 1; - - return seqno; -} - static int render_ring_flush(struct intel_ring_buffer *ring, u32 invalidate_domains, @@ -216,30 +202,44 @@ int ret; /* Force SNB workarounds for PIPE_CONTROL flushes */ - intel_emit_post_sync_nonzero_flush(ring); + ret = intel_emit_post_sync_nonzero_flush(ring); + if (ret) + return ret; /* Just flush everything. Experiments have shown that reducing the * number of bits based on the write domains has little performance * impact. */ - flags |= PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH; - flags |= PIPE_CONTROL_INSTRUCTION_CACHE_INVALIDATE; - flags |= PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE; - flags |= PIPE_CONTROL_DEPTH_CACHE_FLUSH; - flags |= PIPE_CONTROL_VF_CACHE_INVALIDATE; - flags |= PIPE_CONTROL_CONST_CACHE_INVALIDATE; - flags |= PIPE_CONTROL_STATE_CACHE_INVALIDATE; + if (flush_domains) { + flags |= PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH; + flags |= PIPE_CONTROL_DEPTH_CACHE_FLUSH; + /* + * Ensure that any following seqno writes only happen + * when the render cache is indeed flushed. + */ + flags |= PIPE_CONTROL_CS_STALL; + } + if (invalidate_domains) { + flags |= PIPE_CONTROL_TLB_INVALIDATE; + flags |= PIPE_CONTROL_INSTRUCTION_CACHE_INVALIDATE; + flags |= PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE; + flags |= PIPE_CONTROL_VF_CACHE_INVALIDATE; + flags |= PIPE_CONTROL_CONST_CACHE_INVALIDATE; + flags |= PIPE_CONTROL_STATE_CACHE_INVALIDATE; + /* + * TLB invalidate requires a post-sync write. + */ + flags |= PIPE_CONTROL_QW_WRITE | PIPE_CONTROL_CS_STALL; + } - ret = intel_ring_begin(ring, 6); + ret = intel_ring_begin(ring, 4); if (ret) return ret; - intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(5)); + intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(4)); intel_ring_emit(ring, flags); intel_ring_emit(ring, scratch_addr | PIPE_CONTROL_GLOBAL_GTT); - intel_ring_emit(ring, 0); /* lower dword */ - intel_ring_emit(ring, 0); /* uppwer dword */ - intel_ring_emit(ring, MI_NOOP); + intel_ring_emit(ring, 0); intel_ring_advance(ring); return 0; @@ -263,17 +263,20 @@ static int init_ring_common(struct intel_ring_buffer *ring) { - drm_i915_private_t *dev_priv = ring->dev->dev_private; + struct drm_device *dev = ring->dev; + drm_i915_private_t *dev_priv = dev->dev_private; struct drm_i915_gem_object *obj = ring->obj; + int ret = 0; u32 head; + if (HAS_FORCE_WAKE(dev)) + gen6_gt_force_wake_get(dev_priv); + /* Stop the ring if it's running. */ I915_WRITE_CTL(ring, 0); I915_WRITE_HEAD(ring, 0); ring->write_tail(ring, 0); - /* Initialize the ring. */ - I915_WRITE_START(ring, obj->gtt_offset); head = I915_READ_HEAD(ring) & HEAD_ADDR; /* G45 ring initialization fails to reset head to zero */ @@ -299,14 +302,19 @@ } } + /* Initialize the ring. This must happen _after_ we've cleared the ring + * registers with the above sequence (the readback of the HEAD registers + * also enforces ordering), otherwise the hw might lose the new ring + * register values. */ + I915_WRITE_START(ring, obj->gtt_offset); I915_WRITE_CTL(ring, ((ring->size - PAGE_SIZE) & RING_NR_PAGES) - | RING_REPORT_64K | RING_VALID); + | RING_VALID); /* If the head is still not zero, the ring is dead */ - if ((I915_READ_CTL(ring) & RING_VALID) == 0 || - I915_READ_START(ring) != obj->gtt_offset || - (I915_READ_HEAD(ring) & HEAD_ADDR) != 0) { + if (wait_for((I915_READ_CTL(ring) & RING_VALID) != 0 && + I915_READ_START(ring) == obj->gtt_offset && + (I915_READ_HEAD(ring) & HEAD_ADDR) == 0, 50)) { DRM_ERROR("%s initialization failed " "ctl %08x head %08x tail %08x start %08x\n", ring->name, @@ -314,7 +322,8 @@ I915_READ_HEAD(ring), I915_READ_TAIL(ring), I915_READ_START(ring)); - return -EIO; + ret = -EIO; + goto out; } if (!drm_core_check_feature(ring->dev, DRIVER_MODESET)) @@ -325,7 +334,11 @@ ring->space = ring_space(ring); } - return 0; +out: + if (HAS_FORCE_WAKE(dev)) + gen6_gt_force_wake_put(dev_priv); + + return ret; } static int @@ -399,21 +412,43 @@ if (INTEL_INFO(dev)->gen > 3) { int mode = VS_TIMER_DISPATCH << 16 | VS_TIMER_DISPATCH; - if (IS_GEN6(dev) || IS_GEN7(dev)) - mode |= MI_FLUSH_ENABLE << 16 | MI_FLUSH_ENABLE; I915_WRITE(MI_MODE, mode); - if (IS_GEN7(dev)) - I915_WRITE(GFX_MODE_GEN7, - GFX_MODE_DISABLE(GFX_TLB_INVALIDATE_ALWAYS) | - GFX_MODE_ENABLE(GFX_REPLAY_MODE)); } + /* We need to disable the AsyncFlip performance optimisations in order + * to use MI_WAIT_FOR_EVENT within the CS. It should already be + * programmed to '1' on all products. + */ + if (INTEL_INFO(dev)->gen >= 6) + I915_WRITE(MI_MODE, GFX_MODE_ENABLE(ASYNC_FLIP_PERF_DISABLE)); + + if (IS_GEN7(dev)) + I915_WRITE(GFX_MODE_GEN7, + GFX_MODE_DISABLE(GFX_TLB_INVALIDATE_ALWAYS) | + GFX_MODE_ENABLE(GFX_REPLAY_MODE)); + if (INTEL_INFO(dev)->gen >= 5) { ret = init_pipe_control(ring); if (ret) return ret; } + + if (IS_GEN6(dev)) { + /* From the Sandybridge PRM, volume 1 part 3, page 24: + * "If this bit is set, STCunit will have LRA as replacement + * policy. [...] This bit must be reset. LRA replacement + * policy is not supported." + */ + I915_WRITE(CACHE_MODE_0, + CM0_STC_EVICT_DISABLE_LRA_SNB << CM0_MASK_SHIFT); + } + + if (INTEL_INFO(dev)->gen >= 6) { + I915_WRITE(INSTPM, + INSTPM_FORCE_ORDERING << 16 | INSTPM_FORCE_ORDERING); + } + return ret; } @@ -462,7 +497,7 @@ mbox1_reg = ring->signal_mbox[0]; mbox2_reg = ring->signal_mbox[1]; - *seqno = i915_gem_get_seqno(ring->dev); + *seqno = i915_gem_next_request_seqno(ring); update_mboxes(ring, *seqno, mbox1_reg); update_mboxes(ring, *seqno, mbox2_reg); @@ -560,8 +595,7 @@ pc_render_add_request(struct intel_ring_buffer *ring, u32 *result) { - struct drm_device *dev = ring->dev; - u32 seqno = i915_gem_get_seqno(dev); + u32 seqno = i915_gem_next_request_seqno(ring); struct pipe_control *pc = ring->private; u32 scratch_addr = pc->gtt_offset + 128; int ret; @@ -612,8 +646,7 @@ render_ring_add_request(struct intel_ring_buffer *ring, u32 *result) { - struct drm_device *dev = ring->dev; - u32 seqno = i915_gem_get_seqno(dev); + u32 seqno = i915_gem_next_request_seqno(ring); int ret; ret = intel_ring_begin(ring, 4); @@ -631,6 +664,19 @@ } static u32 +gen6_ring_get_seqno(struct intel_ring_buffer *ring) +{ + struct drm_device *dev = ring->dev; + + /* Workaround to force correct ordering between irq and seqno writes on + * ivb (and maybe also on snb) by reading from a CS register (like + * ACTHD) before reading the status page. */ + if (IS_GEN7(dev)) + intel_ring_get_active_head(ring); + return intel_read_status_page(ring, I915_GEM_HWS_INDEX); +} + +static u32 ring_get_seqno(struct intel_ring_buffer *ring) { return intel_read_status_page(ring, I915_GEM_HWS_INDEX); @@ -774,7 +820,7 @@ if (ret) return ret; - seqno = i915_gem_get_seqno(ring->dev); + seqno = i915_gem_next_request_seqno(ring); intel_ring_emit(ring, MI_STORE_DWORD_INDEX); intel_ring_emit(ring, I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT); @@ -795,6 +841,12 @@ if (!dev->irq_enabled) return false; + /* It looks like we need to prevent the gt from suspending while waiting + * for an notifiy irq, otherwise irqs seem to get lost on at least the + * blt/bsd rings on ivb. */ + if (IS_GEN7(dev)) + gen6_gt_force_wake_get(dev_priv); + spin_lock(&ring->irq_lock); if (ring->irq_refcount++ == 0) { ring->irq_mask &= ~rflag; @@ -819,6 +871,9 @@ ironlake_disable_irq(dev_priv, gflag); } spin_unlock(&ring->irq_lock); + + if (IS_GEN7(dev)) + gen6_gt_force_wake_put(dev_priv); } static bool @@ -1007,6 +1062,10 @@ if (ret) goto err_unref; + ret = i915_gem_object_set_to_gtt_domain(obj, true); + if (ret) + goto err_unpin; + ring->map.size = ring->size; ring->map.offset = dev->agp->base + obj->gtt_offset; ring->map.type = 0; @@ -1030,7 +1089,7 @@ * of the buffer. */ ring->effective_size = ring->size; - if (IS_I830(ring->dev)) + if (IS_I830(ring->dev) || IS_845G(ring->dev)) ring->effective_size -= 128; return 0; @@ -1105,18 +1164,6 @@ struct drm_device *dev = ring->dev; struct drm_i915_private *dev_priv = dev->dev_private; unsigned long end; - u32 head; - - /* If the reported head position has wrapped or hasn't advanced, - * fallback to the slow and accurate path. - */ - head = intel_read_status_page(ring, 4); - if (head > ring->head) { - ring->head = head; - ring->space = ring_space(ring); - if (ring->space >= n) - return 0; - } trace_i915_ring_wait_begin(ring); end = jiffies + 3 * HZ; @@ -1246,10 +1293,17 @@ return ret; cmd = MI_FLUSH_DW; + /* + * Bspec vol 1c.5 - video engine command streamer: + * "If ENABLED, all TLBs will be invalidated once the flush + * operation is complete. This bit is only valid when the + * Post-Sync Operation field is a value of 1h or 3h." + */ if (invalidate & I915_GEM_GPU_DOMAINS) - cmd |= MI_INVALIDATE_TLB | MI_INVALIDATE_BSD; + cmd |= MI_INVALIDATE_TLB | MI_INVALIDATE_BSD | + MI_FLUSH_DW_STORE_INDEX | MI_FLUSH_DW_OP_STOREDW; intel_ring_emit(ring, cmd); - intel_ring_emit(ring, 0); + intel_ring_emit(ring, I915_GEM_HWS_SCRATCH_ADDR | MI_FLUSH_DW_USE_GTT); intel_ring_emit(ring, 0); intel_ring_emit(ring, MI_NOOP); intel_ring_advance(ring); @@ -1316,7 +1370,7 @@ .write_tail = gen6_bsd_ring_write_tail, .flush = gen6_ring_flush, .add_request = gen6_add_request, - .get_seqno = ring_get_seqno, + .get_seqno = gen6_ring_get_seqno, .irq_get = gen6_bsd_ring_get_irq, .irq_put = gen6_bsd_ring_put_irq, .dispatch_execbuffer = gen6_ring_dispatch_execbuffer, @@ -1422,10 +1476,17 @@ return ret; cmd = MI_FLUSH_DW; + /* + * Bspec vol 1c.3 - blitter engine command streamer: + * "If ENABLED, all TLBs will be invalidated once the flush + * operation is complete. This bit is only valid when the + * Post-Sync Operation field is a value of 1h or 3h." + */ if (invalidate & I915_GEM_DOMAIN_RENDER) - cmd |= MI_INVALIDATE_TLB; + cmd |= MI_INVALIDATE_TLB | MI_FLUSH_DW_STORE_INDEX | + MI_FLUSH_DW_OP_STOREDW | MI_FLUSH_DW_OP_STOREDW; intel_ring_emit(ring, cmd); - intel_ring_emit(ring, 0); + intel_ring_emit(ring, I915_GEM_HWS_SCRATCH_ADDR | MI_FLUSH_DW_USE_GTT); intel_ring_emit(ring, 0); intel_ring_emit(ring, MI_NOOP); intel_ring_advance(ring); @@ -1451,7 +1512,7 @@ .write_tail = ring_write_tail, .flush = blt_ring_flush, .add_request = gen6_add_request, - .get_seqno = ring_get_seqno, + .get_seqno = gen6_ring_get_seqno, .irq_get = blt_ring_get_irq, .irq_put = blt_ring_put_irq, .dispatch_execbuffer = gen6_ring_dispatch_execbuffer, @@ -1474,6 +1535,7 @@ ring->flush = gen6_render_ring_flush; ring->irq_get = gen6_render_ring_get_irq; ring->irq_put = gen6_render_ring_put_irq; + ring->get_seqno = gen6_ring_get_seqno; } else if (IS_GEN5(dev)) { ring->add_request = pc_render_add_request; ring->get_seqno = pc_render_get_seqno; --- linux-3.2.0.orig/drivers/gpu/drm/i915/i915_drv.h +++ linux-3.2.0/drivers/gpu/drm/i915/i915_drv.h @@ -207,6 +207,7 @@ int (*get_display_clock_speed)(struct drm_device *dev); int (*get_fifo_size)(struct drm_device *dev, int plane); void (*update_wm)(struct drm_device *dev); + void (*sanitize_pm)(struct drm_device *dev); int (*crtc_mode_set)(struct drm_crtc *crtc, struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode, @@ -244,6 +245,7 @@ u8 is_broadwater:1; u8 is_crestline:1; u8 is_ivybridge:1; + u8 has_force_wake:1; u8 has_fbc:1; u8 has_pipe_cxsr:1; u8 has_hotplug:1; @@ -273,6 +275,8 @@ #define QUIRK_PIPEA_FORCE (1<<0) #define QUIRK_LVDS_SSC_DISABLE (1<<1) +#define QUIRK_INVERT_BRIGHTNESS (1<<2) +#define QUIRK_RC6_DISABLE (1<<3) struct intel_fbdev; struct intel_fbc_work; @@ -286,7 +290,13 @@ int relative_constants_mode; void __iomem *regs; - u32 gt_fifo_count; + /** gt_fifo_count and the subsequent register write are synchronized + * with dev->struct_mutex. */ + unsigned gt_fifo_count; + /** forcewake_count is protected by gt_lock */ + unsigned forcewake_count; + /** gt_lock is also taken in irq contexts. */ + struct spinlock gt_lock; struct intel_gmbus { struct i2c_adapter adapter; @@ -337,6 +347,8 @@ struct timer_list hangcheck_timer; int hangcheck_count; uint32_t last_acthd; + uint32_t last_acthd_bsd; + uint32_t last_acthd_blt; uint32_t last_instdone; uint32_t last_instdone1; @@ -365,6 +377,8 @@ unsigned int lvds_use_ssc:1; unsigned int display_clock_mode:1; int lvds_ssc_freq; + unsigned int bios_lvds_val; /* initial [PCH_]LVDS reg val in VBIOS */ + unsigned int lvds_val; /* used for checking LVDS channel mode */ struct { int rate; int lanes; @@ -736,8 +750,6 @@ struct drm_property *broadcast_rgb_property; struct drm_property *force_audio_property; - - atomic_t forcewake_count; } drm_i915_private_t; enum i915_cache_level { @@ -995,6 +1007,8 @@ #define HAS_PCH_CPT(dev) (INTEL_PCH_TYPE(dev) == PCH_CPT) #define HAS_PCH_IBX(dev) (INTEL_PCH_TYPE(dev) == PCH_IBX) +#define HAS_FORCE_WAKE(dev) (INTEL_INFO(dev)->has_force_wake) + #include "i915_trace.h" extern struct drm_ioctl_desc i915_ioctls[]; @@ -1161,12 +1175,7 @@ return (int32_t)(seq1 - seq2) >= 0; } -static inline u32 -i915_gem_next_request_seqno(struct intel_ring_buffer *ring) -{ - drm_i915_private_t *dev_priv = ring->dev->dev_private; - return ring->outstanding_lazy_request = dev_priv->next_seqno; -} +u32 i915_gem_next_request_seqno(struct intel_ring_buffer *ring); int __must_check i915_gem_object_get_fence(struct drm_i915_gem_object *obj, struct intel_ring_buffer *pipelined); @@ -1299,6 +1308,7 @@ #endif /* CONFIG_ACPI */ /* modesetting */ +extern void i915_redisable_vga(struct drm_device *dev); extern void intel_modeset_init(struct drm_device *dev); extern void intel_modeset_gem_init(struct drm_device *dev); extern void intel_modeset_cleanup(struct drm_device *dev); @@ -1358,6 +1368,8 @@ void gen6_gt_force_wake_put(struct drm_i915_private *dev_priv); void __gen6_gt_wait_for_fifo(struct drm_i915_private *dev_priv); +void intel_sanitize_pm(struct drm_device *dev); + /* We give fast paths for the really cool registers */ #define NEEDS_FORCE_WAKE(dev_priv, reg) \ (((dev_priv)->info->gen >= 6) && \ --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_lvds.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_lvds.c @@ -535,6 +535,7 @@ mutex_lock(&dev->mode_config.mutex); drm_helper_resume_force_mode(dev); + i915_redisable_vga(dev); mutex_unlock(&dev->mode_config.mutex); return NOTIFY_OK; @@ -552,8 +553,6 @@ struct drm_device *dev = connector->dev; struct drm_i915_private *dev_priv = dev->dev_private; - intel_panel_destroy_backlight(dev); - if (dev_priv->lid_notifier.notifier_call) acpi_lid_notifier_unregister(&dev_priv->lid_notifier); drm_sysfs_connector_remove(connector); @@ -694,6 +693,14 @@ }, { .callback = intel_no_lvds_dmi_callback, + .ident = "AOpen i45GMx-I", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "AOpen"), + DMI_MATCH(DMI_BOARD_NAME, "i45GMx-I"), + }, + }, + { + .callback = intel_no_lvds_dmi_callback, .ident = "Aopen i945GTt-VFA", .matches = { DMI_MATCH(DMI_PRODUCT_VERSION, "AO00001JW"), @@ -708,6 +715,14 @@ }, }, { + .callback = intel_no_lvds_dmi_callback, + .ident = "Clientron E830", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Clientron"), + DMI_MATCH(DMI_PRODUCT_NAME, "E830"), + }, + }, + { .callback = intel_no_lvds_dmi_callback, .ident = "Asus EeeBox PC EB1007", .matches = { @@ -723,6 +738,78 @@ DMI_MATCH(DMI_BOARD_NAME, "AT5NM10T-I"), }, }, + { + .callback = intel_no_lvds_dmi_callback, + .ident = "Hewlett-Packard HP t5740", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, " t5740"), + }, + }, + { + .callback = intel_no_lvds_dmi_callback, + .ident = "Hewlett-Packard t5745", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "hp t5745"), + }, + }, + { + .callback = intel_no_lvds_dmi_callback, + .ident = "Hewlett-Packard st5747", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "hp st5747"), + }, + }, + { + .callback = intel_no_lvds_dmi_callback, + .ident = "Hewlett-Packard t5745", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "hp t5745"), + }, + }, + { + .callback = intel_no_lvds_dmi_callback, + .ident = "Hewlett-Packard st5747", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "hp st5747"), + }, + }, + { + .callback = intel_no_lvds_dmi_callback, + .ident = "MSI Wind Box DC500", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), + DMI_MATCH(DMI_BOARD_NAME, "MS-7469"), + }, + }, + { + .callback = intel_no_lvds_dmi_callback, + .ident = "Gigabyte GA-D525TUD", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co., Ltd."), + DMI_MATCH(DMI_BOARD_NAME, "D525TUD"), + }, + }, + { + .callback = intel_no_lvds_dmi_callback, + .ident = "Supermicro X7SPA-H", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Supermicro"), + DMI_MATCH(DMI_PRODUCT_NAME, "X7SPA-H"), + }, + }, + { + .callback = intel_no_lvds_dmi_callback, + .ident = "Fujitsu Esprimo Q900", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), + DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO Q900"), + }, + }, { } /* terminating entry */ }; --- linux-3.2.0.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ linux-3.2.0/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -574,7 +574,8 @@ if (ret) break; } - obj->pending_fenced_gpu_access = need_fence; + obj->pending_fenced_gpu_access = + !!(entry->flags & EXEC_OBJECT_NEEDS_FENCE); } entry->offset = obj->gtt_offset; @@ -656,6 +657,8 @@ total = 0; for (i = 0; i < count; i++) { struct drm_i915_gem_relocation_entry __user *user_relocs; + u64 invalid_offset = (u64)-1; + int j; user_relocs = (void __user *)(uintptr_t)exec[i].relocs_ptr; @@ -666,6 +669,25 @@ goto err; } + /* As we do not update the known relocation offsets after + * relocating (due to the complexities in lock handling), + * we need to mark them as invalid now so that we force the + * relocation processing next time. Just in case the target + * object is evicted and then rebound into its old + * presumed_offset before the next execbuffer - if that + * happened we would make the mistake of assuming that the + * relocations were valid. + */ + for (j = 0; j < exec[i].relocation_count; j++) { + if (copy_to_user(&user_relocs[j].presumed_offset, + &invalid_offset, + sizeof(invalid_offset))) { + ret = -EFAULT; + mutex_lock(&dev->struct_mutex); + goto err; + } + } + reloc_offset[i] = total; total += exec[i].relocation_count; } @@ -885,15 +907,20 @@ int count) { int i; + int relocs_total = 0; + int relocs_max = INT_MAX / sizeof(struct drm_i915_gem_relocation_entry); for (i = 0; i < count; i++) { char __user *ptr = (char __user *)(uintptr_t)exec[i].relocs_ptr; int length; /* limited by fault_in_pages_readable() */ - /* First check for malicious input causing overflow */ - if (exec[i].relocation_count > - INT_MAX / sizeof(struct drm_i915_gem_relocation_entry)) + /* First check for malicious input causing overflow in + * the worst case where we need to allocate the entire + * relocation tree as a single array. + */ + if (exec[i].relocation_count > relocs_max - relocs_total) return -EINVAL; + relocs_total += exec[i].relocation_count; length = exec[i].relocation_count * sizeof(struct drm_i915_gem_relocation_entry); @@ -971,6 +998,31 @@ } static int +i915_reset_gen7_sol_offsets(struct drm_device *dev, + struct intel_ring_buffer *ring) +{ + drm_i915_private_t *dev_priv = dev->dev_private; + int ret, i; + + if (!IS_GEN7(dev) || ring != &dev_priv->ring[RCS]) + return 0; + + ret = intel_ring_begin(ring, 4 * 3); + if (ret) + return ret; + + for (i = 0; i < 4; i++) { + intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1)); + intel_ring_emit(ring, GEN7_SO_WRITE_OFFSET(i)); + intel_ring_emit(ring, 0); + } + + intel_ring_advance(ring); + + return 0; +} + +static int i915_gem_do_execbuffer(struct drm_device *dev, void *data, struct drm_file *file, struct drm_i915_gem_execbuffer2 *args, @@ -984,6 +1036,7 @@ struct intel_ring_buffer *ring; u32 exec_start, exec_len; u32 seqno; + u32 mask; int ret, mode, i; if (!i915_gem_check_execbuffer(args)) { @@ -1021,6 +1074,7 @@ } mode = args->flags & I915_EXEC_CONSTANTS_MASK; + mask = I915_EXEC_CONSTANTS_MASK; switch (mode) { case I915_EXEC_CONSTANTS_REL_GENERAL: case I915_EXEC_CONSTANTS_ABSOLUTE: @@ -1034,18 +1088,9 @@ mode == I915_EXEC_CONSTANTS_REL_SURFACE) return -EINVAL; - ret = intel_ring_begin(ring, 4); - if (ret) - return ret; - - intel_ring_emit(ring, MI_NOOP); - intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1)); - intel_ring_emit(ring, INSTPM); - intel_ring_emit(ring, - I915_EXEC_CONSTANTS_MASK << 16 | mode); - intel_ring_advance(ring); - - dev_priv->relative_constants_mode = mode; + /* The HW changed the meaning on this bit on gen6 */ + if (INTEL_INFO(dev)->gen >= 6) + mask &= ~I915_EXEC_CONSTANTS_REL_SURFACE; } break; default: @@ -1064,6 +1109,11 @@ return -EINVAL; } + if (args->num_cliprects > UINT_MAX / sizeof(*cliprects)) { + DRM_DEBUG("execbuf with %u cliprects\n", + args->num_cliprects); + return -EINVAL; + } cliprects = kmalloc(args->num_cliprects * sizeof(*cliprects), GFP_KERNEL); if (cliprects == NULL) { @@ -1176,6 +1226,27 @@ } } + if (ring == &dev_priv->ring[RCS] && + mode != dev_priv->relative_constants_mode) { + ret = intel_ring_begin(ring, 4); + if (ret) + goto err; + + intel_ring_emit(ring, MI_NOOP); + intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1)); + intel_ring_emit(ring, INSTPM); + intel_ring_emit(ring, mask << 16 | mode); + intel_ring_advance(ring); + + dev_priv->relative_constants_mode = mode; + } + + if (args->flags & I915_EXEC_GEN7_SOL_RESET) { + ret = i915_reset_gen7_sol_offsets(dev, ring); + if (ret) + goto err; + } + trace_i915_gem_ring_dispatch(ring, seqno); exec_start = batch_obj->gtt_offset + args->batch_start_offset; @@ -1314,7 +1385,8 @@ struct drm_i915_gem_exec_object2 *exec2_list = NULL; int ret; - if (args->buffer_count < 1) { + if (args->buffer_count < 1 || + args->buffer_count > UINT_MAX / sizeof(*exec2_list)) { DRM_ERROR("execbuf2 with %d buffers\n", args->buffer_count); return -EINVAL; } --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_hdmi.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_hdmi.c @@ -136,16 +136,22 @@ val &= ~VIDEO_DIP_SELECT_MASK; - I915_WRITE(VIDEO_DIP_CTL, val | port | flags); + I915_WRITE(VIDEO_DIP_CTL, VIDEO_DIP_ENABLE | val | port | flags); + mmiowb(); for (i = 0; i < len; i += 4) { I915_WRITE(VIDEO_DIP_DATA, *data); data++; } + /* Write every possible data byte to force correct ECC calculation. */ + for (; i < VIDEO_DIP_DATA_SIZE; i += 4) + I915_WRITE(VIDEO_DIP_DATA, 0); + mmiowb(); flags |= intel_infoframe_flags(frame); I915_WRITE(VIDEO_DIP_CTL, VIDEO_DIP_ENABLE | val | port | flags); + POSTING_READ(VIDEO_DIP_CTL); } static void ironlake_write_infoframe(struct drm_encoder *encoder, @@ -168,14 +174,20 @@ I915_WRITE(reg, VIDEO_DIP_ENABLE | val | flags); + mmiowb(); for (i = 0; i < len; i += 4) { I915_WRITE(TVIDEO_DIP_DATA(intel_crtc->pipe), *data); data++; } + /* Write every possible data byte to force correct ECC calculation. */ + for (; i < VIDEO_DIP_DATA_SIZE; i += 4) + I915_WRITE(TVIDEO_DIP_DATA(intel_crtc->pipe), 0); + mmiowb(); flags |= intel_infoframe_flags(frame); I915_WRITE(reg, VIDEO_DIP_ENABLE | val | flags); + POSTING_READ(reg); } static void intel_set_infoframe(struct drm_encoder *encoder, struct dip_infoframe *frame) @@ -269,6 +281,10 @@ struct drm_i915_private *dev_priv = dev->dev_private; struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder); u32 temp; + u32 enable_bits = SDVO_ENABLE; + + if (intel_hdmi->has_audio || mode != DRM_MODE_DPMS_ON) + enable_bits |= SDVO_AUDIO_ENABLE; temp = I915_READ(intel_hdmi->sdvox_reg); @@ -281,9 +297,9 @@ } if (mode != DRM_MODE_DPMS_ON) { - temp &= ~SDVO_ENABLE; + temp &= ~enable_bits; } else { - temp |= SDVO_ENABLE; + temp |= enable_bits; } I915_WRITE(intel_hdmi->sdvox_reg, temp); @@ -542,10 +558,13 @@ if (!HAS_PCH_SPLIT(dev)) { intel_hdmi->write_infoframe = i9xx_write_infoframe; I915_WRITE(VIDEO_DIP_CTL, 0); + POSTING_READ(VIDEO_DIP_CTL); } else { intel_hdmi->write_infoframe = ironlake_write_infoframe; - for_each_pipe(i) + for_each_pipe(i) { I915_WRITE(TVIDEO_DIP_CTL(i), 0); + POSTING_READ(TVIDEO_DIP_CTL(i)); + } } drm_encoder_helper_add(&intel_encoder->base, &intel_hdmi_helper_funcs); --- linux-3.2.0.orig/drivers/gpu/drm/i915/i915_gem.c +++ linux-3.2.0/drivers/gpu/drm/i915/i915_gem.c @@ -999,6 +999,7 @@ if (obj->phys_obj) ret = i915_gem_phys_pwrite(dev, obj, args, file); else if (obj->gtt_space && + obj->tiling_mode == I915_TILING_NONE && obj->base.write_domain != I915_GEM_DOMAIN_CPU) { ret = i915_gem_object_pin(obj, 0, true); if (ret) @@ -1258,6 +1259,11 @@ case 0: case -ERESTARTSYS: case -EINTR: + case -EBUSY: + /* + * EBUSY is ok: this just means that another thread + * already did the job. + */ return VM_FAULT_NOPAGE; case -ENOMEM: return VM_FAULT_OOM; @@ -1543,16 +1549,19 @@ list_move_tail(&obj->ring_list, &ring->active_list); obj->last_rendering_seqno = seqno; - if (obj->fenced_gpu_access) { - struct drm_i915_fence_reg *reg; - - BUG_ON(obj->fence_reg == I915_FENCE_REG_NONE); + if (obj->fenced_gpu_access) { obj->last_fenced_seqno = seqno; obj->last_fenced_ring = ring; - reg = &dev_priv->fence_regs[obj->fence_reg]; - list_move_tail(®->lru_list, &dev_priv->mm.fence_list); + /* Bump MRU to take account of the delayed flush */ + if (obj->fence_reg != I915_FENCE_REG_NONE) { + struct drm_i915_fence_reg *reg; + + reg = &dev_priv->fence_regs[obj->fence_reg]; + list_move_tail(®->lru_list, + &dev_priv->mm.fence_list); + } } } @@ -1561,6 +1570,7 @@ { list_del_init(&obj->ring_list); obj->last_rendering_seqno = 0; + obj->last_fenced_seqno = 0; } static void @@ -1589,6 +1599,7 @@ BUG_ON(!list_empty(&obj->gpu_write_list)); BUG_ON(!obj->active); obj->ring = NULL; + obj->last_fenced_ring = NULL; i915_gem_object_move_off_active(obj); obj->fenced_gpu_access = false; @@ -1647,6 +1658,28 @@ } } +static u32 +i915_gem_get_seqno(struct drm_device *dev) +{ + drm_i915_private_t *dev_priv = dev->dev_private; + u32 seqno = dev_priv->next_seqno; + + /* reserve 0 for non-seqno */ + if (++dev_priv->next_seqno == 0) + dev_priv->next_seqno = 1; + + return seqno; +} + +u32 +i915_gem_next_request_seqno(struct intel_ring_buffer *ring) +{ + if (ring->outstanding_lazy_request == 0) + ring->outstanding_lazy_request = i915_gem_get_seqno(ring->dev); + + return ring->outstanding_lazy_request; +} + int i915_add_request(struct intel_ring_buffer *ring, struct drm_file *file, @@ -1658,6 +1691,7 @@ int ret; BUG_ON(request == NULL); + seqno = i915_gem_next_request_seqno(ring); ret = ring->add_request(ring, &seqno); if (ret) @@ -2486,6 +2520,11 @@ return avail; } +static void i915_gem_write_fence__ipi(void *data) +{ + wbinvd(); +} + /** * i915_gem_object_get_fence - set up a fence reg for an object * @obj: object to map through a fence reg @@ -2606,6 +2645,17 @@ switch (INTEL_INFO(dev)->gen) { case 7: case 6: + /* In order to fully serialize access to the fenced region and + * the update to the fence register we need to take extreme + * measures on SNB+. In theory, the write to the fence register + * flushes all memory transactions before, and coupled with the + * mb() placed around the register write we serialise all memory + * operations with respect to the changes in the tiler. Yet, on + * SNB+ we need to take a step further and emit an explicit wbinvd() + * on each processor in order to manually flush all memory + * transactions before updating the fence register. + */ + on_each_cpu(i915_gem_write_fence__ipi, NULL, 1); ret = sandybridge_write_fence_reg(obj, pipelined); break; case 5: @@ -3084,10 +3134,13 @@ return ret; } + ret = i915_gem_object_wait_rendering(obj); + if (ret) + return ret; + /* Ensure that we invalidate the GPU's caches and TLBs. */ obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS; - - return i915_gem_object_wait_rendering(obj); + return 0; } /** @@ -3309,6 +3362,10 @@ if (ret == 0 && atomic_read(&dev_priv->mm.wedged)) ret = -EIO; + } else if (wait_for(i915_seqno_passed(ring->get_seqno(ring), + seqno) || + atomic_read(&dev_priv->mm.wedged), 3000)) { + ret = -EBUSY; } } @@ -3327,7 +3384,8 @@ struct drm_i915_private *dev_priv = dev->dev_private; int ret; - BUG_ON(obj->pin_count == DRM_I915_GEM_OBJECT_MAX_PIN_COUNT); + if (WARN_ON(obj->pin_count == DRM_I915_GEM_OBJECT_MAX_PIN_COUNT)) + return -EBUSY; WARN_ON(i915_verify_lists(dev)); if (obj->gtt_space != NULL) { @@ -3414,14 +3472,15 @@ goto out; } - obj->user_pin_count++; - obj->pin_filp = file; - if (obj->user_pin_count == 1) { + if (obj->user_pin_count == 0) { ret = i915_gem_object_pin(obj, args->alignment, true); if (ret) goto out; } + obj->user_pin_count++; + obj->pin_filp = file; + /* XXX - flush the CPU caches for pinned objects * as the X server doesn't manage domains yet */ --- linux-3.2.0.orig/drivers/gpu/drm/i915/intel_bios.c +++ linux-3.2.0/drivers/gpu/drm/i915/intel_bios.c @@ -24,6 +24,7 @@ * Eric Anholt * */ +#include #include #include "drmP.h" #include "drm.h" @@ -173,6 +174,28 @@ return (struct lvds_dvo_timing *)(entry + dvo_timing_offset); } +/* get lvds_fp_timing entry + * this function may return NULL if the corresponding entry is invalid + */ +static const struct lvds_fp_timing * +get_lvds_fp_timing(const struct bdb_header *bdb, + const struct bdb_lvds_lfp_data *data, + const struct bdb_lvds_lfp_data_ptrs *ptrs, + int index) +{ + size_t data_ofs = (const u8 *)data - (const u8 *)bdb; + u16 data_size = ((const u16 *)data)[-1]; /* stored in header */ + size_t ofs; + + if (index >= ARRAY_SIZE(ptrs->ptr)) + return NULL; + ofs = ptrs->ptr[index].fp_timing_offset; + if (ofs < data_ofs || + ofs + sizeof(struct lvds_fp_timing) > data_ofs + data_size) + return NULL; + return (const struct lvds_fp_timing *)((const u8 *)bdb + ofs); +} + /* Try to find integrated panel data */ static void parse_lfp_panel_data(struct drm_i915_private *dev_priv, @@ -182,6 +205,7 @@ const struct bdb_lvds_lfp_data *lvds_lfp_data; const struct bdb_lvds_lfp_data_ptrs *lvds_lfp_data_ptrs; const struct lvds_dvo_timing *panel_dvo_timing; + const struct lvds_fp_timing *fp_timing; struct drm_display_mode *panel_fixed_mode; int i, downclock; @@ -243,6 +267,19 @@ "Normal Clock %dKHz, downclock %dKHz\n", panel_fixed_mode->clock, 10*downclock); } + + fp_timing = get_lvds_fp_timing(bdb, lvds_lfp_data, + lvds_lfp_data_ptrs, + lvds_options->panel_type); + if (fp_timing) { + /* check the resolution, just to be sure */ + if (fp_timing->x_res == panel_fixed_mode->hdisplay && + fp_timing->y_res == panel_fixed_mode->vdisplay) { + dev_priv->bios_lvds_val = fp_timing->lvds_reg_val; + DRM_DEBUG_KMS("VBT initial LVDS value %x\n", + dev_priv->bios_lvds_val); + } + } } /* Try to find sdvo panel data */ @@ -458,12 +495,8 @@ edp = find_section(bdb, BDB_EDP); if (!edp) { - if (SUPPORTS_EDP(dev_priv->dev) && dev_priv->edp.support) { - DRM_DEBUG_KMS("No eDP BDB found but eDP panel " - "supported, assume %dbpp panel color " - "depth.\n", - dev_priv->edp.bpp); - } + if (SUPPORTS_EDP(dev_priv->dev) && dev_priv->edp.support) + DRM_DEBUG_KMS("No eDP BDB found but eDP panel supported.\n"); return; } @@ -616,11 +649,28 @@ dev_priv->lvds_use_ssc = 1; dev_priv->lvds_ssc_freq = intel_bios_ssc_frequency(dev, 1); DRM_DEBUG_KMS("Set default to SSC at %dMHz\n", dev_priv->lvds_ssc_freq); - - /* eDP data */ - dev_priv->edp.bpp = 18; } +static int __init intel_no_opregion_vbt_callback(const struct dmi_system_id *id) +{ + DRM_DEBUG_KMS("Falling back to manually reading VBT from " + "VBIOS ROM for %s\n", + id->ident); + return 1; +} + +static const struct dmi_system_id intel_no_opregion_vbt[] = { + { + .callback = intel_no_opregion_vbt_callback, + .ident = "ThinkCentre A57", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "97027RG"), + }, + }, + { } +}; + /** * intel_parse_bios - find VBT and initialize settings from the BIOS * @dev: DRM device @@ -641,7 +691,7 @@ init_vbt_defaults(dev_priv); /* XXX Should this validation be moved to intel_opregion.c? */ - if (dev_priv->opregion.vbt) { + if (!dmi_check_system(intel_no_opregion_vbt) && dev_priv->opregion.vbt) { struct vbt_header *vbt = dev_priv->opregion.vbt; if (memcmp(vbt->signature, "$VBT", 4) == 0) { DRM_DEBUG_KMS("Using VBT from OpRegion: %20s\n", --- linux-3.2.0.orig/drivers/gpu/drm/radeon/atom.c +++ linux-3.2.0/drivers/gpu/drm/radeon/atom.c @@ -1304,8 +1304,11 @@ int atom_asic_init(struct atom_context *ctx) { + struct radeon_device *rdev = ctx->card->dev->dev_private; int hwi = CU16(ctx->data_table + ATOM_DATA_FWI_PTR); uint32_t ps[16]; + int ret; + memset(ps, 0, 64); ps[0] = cpu_to_le32(CU32(hwi + ATOM_FWI_DEFSCLK_PTR)); @@ -1315,7 +1318,17 @@ if (!CU16(ctx->cmd_table + 4 + 2 * ATOM_CMD_INIT)) return 1; - return atom_execute_table(ctx, ATOM_CMD_INIT, ps); + ret = atom_execute_table(ctx, ATOM_CMD_INIT, ps); + if (ret) + return ret; + + memset(ps, 0, 64); + + if (rdev->family < CHIP_R600) { + if (CU16(ctx->cmd_table + 4 + 2 * ATOM_CMD_SPDFANCNTL)) + atom_execute_table(ctx, ATOM_CMD_SPDFANCNTL, ps); + } + return ret; } void atom_destroy(struct atom_context *ctx) @@ -1374,10 +1387,10 @@ firmware_usage = (struct _ATOM_VRAM_USAGE_BY_FIRMWARE *)(ctx->bios + data_offset); DRM_DEBUG("atom firmware requested %08x %dkb\n", - firmware_usage->asFirmwareVramReserveInfo[0].ulStartAddrUsedByFirmware, - firmware_usage->asFirmwareVramReserveInfo[0].usFirmwareUseInKb); + le32_to_cpu(firmware_usage->asFirmwareVramReserveInfo[0].ulStartAddrUsedByFirmware), + le16_to_cpu(firmware_usage->asFirmwareVramReserveInfo[0].usFirmwareUseInKb)); - usage_bytes = firmware_usage->asFirmwareVramReserveInfo[0].usFirmwareUseInKb * 1024; + usage_bytes = le16_to_cpu(firmware_usage->asFirmwareVramReserveInfo[0].usFirmwareUseInKb) * 1024; } ctx->scratch_size_bytes = 0; if (usage_bytes == 0) --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_connectors.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_connectors.c @@ -64,14 +64,33 @@ /* just deal with DP (not eDP) here. */ if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { - int saved_dpms = connector->dpms; + struct radeon_connector_atom_dig *dig_connector = + radeon_connector->con_priv; - /* Only turn off the display it it's physically disconnected */ - if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) - drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); - else if (radeon_dp_needs_link_train(radeon_connector)) - drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); - connector->dpms = saved_dpms; + /* if existing sink type was not DP no need to retrain */ + if (dig_connector->dp_sink_type != CONNECTOR_OBJECT_ID_DISPLAYPORT) + return; + + /* first get sink type as it may be reset after (un)plug */ + dig_connector->dp_sink_type = radeon_dp_getsinktype(radeon_connector); + /* don't do anything if sink is not display port, i.e., + * passive dp->(dvi|hdmi) adaptor + */ + if (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) { + int saved_dpms = connector->dpms; + /* Only turn off the display if it's physically disconnected */ + if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) { + drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); + } else if (radeon_dp_needs_link_train(radeon_connector)) { + /* set it to OFF so that drm_helper_connector_dpms() + * won't return immediately since the current state + * is ON at this point. + */ + connector->dpms = DRM_MODE_DPMS_OFF; + drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); + } + connector->dpms = saved_dpms; + } } } @@ -670,7 +689,7 @@ ret = connector_status_disconnected; if (radeon_connector->ddc_bus) - dret = radeon_ddc_probe(radeon_connector); + dret = radeon_ddc_probe(radeon_connector, false); if (dret) { radeon_connector->detected_by_load = false; if (radeon_connector->edid) { @@ -852,7 +871,7 @@ bool dret = false; if (radeon_connector->ddc_bus) - dret = radeon_ddc_probe(radeon_connector); + dret = radeon_ddc_probe(radeon_connector, false); if (dret) { radeon_connector->detected_by_load = false; if (radeon_connector->edid) { @@ -946,6 +965,10 @@ encoder = obj_to_encoder(obj); + if (encoder->encoder_type != DRM_MODE_ENCODER_DAC && + encoder->encoder_type != DRM_MODE_ENCODER_TVDAC) + continue; + encoder_funcs = encoder->helper_private; if (encoder_funcs->detect) { if (ret != connector_status_connected) { @@ -972,6 +995,7 @@ * cases the DVI port is actually a virtual KVM port connected to the service * processor. */ +out: if ((!rdev->is_atom_bios) && (ret == connector_status_disconnected) && rdev->mode_info.bios_hardcoded_edid_size) { @@ -979,7 +1003,6 @@ ret = connector_status_connected; } -out: /* updated in get modes as well since we need to know if it's analog or digital */ radeon_connector_update_scratch_regs(connector, ret); return ret; @@ -1276,7 +1299,8 @@ if (encoder) { /* setup ddc on the bridge */ radeon_atom_ext_encoder_setup_ddc(encoder); - if (radeon_ddc_probe(radeon_connector)) /* try DDC */ + /* bridge chips are always aux */ + if (radeon_ddc_probe(radeon_connector, true)) /* try DDC */ ret = connector_status_connected; else if (radeon_connector->dac_load_detect) { /* try load detection */ struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private; @@ -1294,7 +1318,8 @@ if (radeon_dp_getdpcd(radeon_connector)) ret = connector_status_connected; } else { - if (radeon_ddc_probe(radeon_connector)) + /* try non-aux ddc (DP to DVI/HMDI/etc. adapter) */ + if (radeon_ddc_probe(radeon_connector, false)) ret = connector_status_connected; } } --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_combios.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_combios.c @@ -147,7 +147,7 @@ enum radeon_combios_table_offset table) { struct radeon_device *rdev = dev->dev_private; - int rev; + int rev, size; uint16_t offset = 0, check_offset; if (!rdev->bios) @@ -156,174 +156,106 @@ switch (table) { /* absolute offset tables */ case COMBIOS_ASIC_INIT_1_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0xc); - if (check_offset) - offset = check_offset; + check_offset = 0xc; break; case COMBIOS_BIOS_SUPPORT_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x14); - if (check_offset) - offset = check_offset; + check_offset = 0x14; break; case COMBIOS_DAC_PROGRAMMING_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x2a); - if (check_offset) - offset = check_offset; + check_offset = 0x2a; break; case COMBIOS_MAX_COLOR_DEPTH_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x2c); - if (check_offset) - offset = check_offset; + check_offset = 0x2c; break; case COMBIOS_CRTC_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x2e); - if (check_offset) - offset = check_offset; + check_offset = 0x2e; break; case COMBIOS_PLL_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x30); - if (check_offset) - offset = check_offset; + check_offset = 0x30; break; case COMBIOS_TV_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x32); - if (check_offset) - offset = check_offset; + check_offset = 0x32; break; case COMBIOS_DFP_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x34); - if (check_offset) - offset = check_offset; + check_offset = 0x34; break; case COMBIOS_HW_CONFIG_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x36); - if (check_offset) - offset = check_offset; + check_offset = 0x36; break; case COMBIOS_MULTIMEDIA_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x38); - if (check_offset) - offset = check_offset; + check_offset = 0x38; break; case COMBIOS_TV_STD_PATCH_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x3e); - if (check_offset) - offset = check_offset; + check_offset = 0x3e; break; case COMBIOS_LCD_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x40); - if (check_offset) - offset = check_offset; + check_offset = 0x40; break; case COMBIOS_MOBILE_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x42); - if (check_offset) - offset = check_offset; + check_offset = 0x42; break; case COMBIOS_PLL_INIT_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x46); - if (check_offset) - offset = check_offset; + check_offset = 0x46; break; case COMBIOS_MEM_CONFIG_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x48); - if (check_offset) - offset = check_offset; + check_offset = 0x48; break; case COMBIOS_SAVE_MASK_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x4a); - if (check_offset) - offset = check_offset; + check_offset = 0x4a; break; case COMBIOS_HARDCODED_EDID_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x4c); - if (check_offset) - offset = check_offset; + check_offset = 0x4c; break; case COMBIOS_ASIC_INIT_2_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x4e); - if (check_offset) - offset = check_offset; + check_offset = 0x4e; break; case COMBIOS_CONNECTOR_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x50); - if (check_offset) - offset = check_offset; + check_offset = 0x50; break; case COMBIOS_DYN_CLK_1_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x52); - if (check_offset) - offset = check_offset; + check_offset = 0x52; break; case COMBIOS_RESERVED_MEM_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x54); - if (check_offset) - offset = check_offset; + check_offset = 0x54; break; case COMBIOS_EXT_TMDS_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x58); - if (check_offset) - offset = check_offset; + check_offset = 0x58; break; case COMBIOS_MEM_CLK_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x5a); - if (check_offset) - offset = check_offset; + check_offset = 0x5a; break; case COMBIOS_EXT_DAC_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x5c); - if (check_offset) - offset = check_offset; + check_offset = 0x5c; break; case COMBIOS_MISC_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x5e); - if (check_offset) - offset = check_offset; + check_offset = 0x5e; break; case COMBIOS_CRT_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x60); - if (check_offset) - offset = check_offset; + check_offset = 0x60; break; case COMBIOS_INTEGRATED_SYSTEM_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x62); - if (check_offset) - offset = check_offset; + check_offset = 0x62; break; case COMBIOS_COMPONENT_VIDEO_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x64); - if (check_offset) - offset = check_offset; + check_offset = 0x64; break; case COMBIOS_FAN_SPEED_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x66); - if (check_offset) - offset = check_offset; + check_offset = 0x66; break; case COMBIOS_OVERDRIVE_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x68); - if (check_offset) - offset = check_offset; + check_offset = 0x68; break; case COMBIOS_OEM_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x6a); - if (check_offset) - offset = check_offset; + check_offset = 0x6a; break; case COMBIOS_DYN_CLK_2_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x6c); - if (check_offset) - offset = check_offset; + check_offset = 0x6c; break; case COMBIOS_POWER_CONNECTOR_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x6e); - if (check_offset) - offset = check_offset; + check_offset = 0x6e; break; case COMBIOS_I2C_INFO_TABLE: - check_offset = RBIOS16(rdev->bios_header_start + 0x70); - if (check_offset) - offset = check_offset; + check_offset = 0x70; break; /* relative offset tables */ case COMBIOS_ASIC_INIT_3_TABLE: /* offset from misc info */ @@ -439,11 +371,16 @@ } break; default: + check_offset = 0; break; } - return offset; + size = RBIOS8(rdev->bios_header_start + 0x6); + /* check absolute offset tables */ + if (table < COMBIOS_ASIC_INIT_3_TABLE && check_offset && check_offset < size) + offset = RBIOS16(rdev->bios_header_start + check_offset); + return offset; } bool radeon_combios_check_hardcoded_edid(struct radeon_device *rdev) @@ -953,11 +890,26 @@ dac = RBIOS8(dac_info + 0x3) & 0xf; p_dac->ps2_pdac_adj = (bg << 8) | (dac); } - /* if the values are all zeros, use the table */ - if (p_dac->ps2_pdac_adj) + /* if the values are zeros, use the table */ + if ((dac == 0) || (bg == 0)) + found = 0; + else found = 1; } + /* quirks */ + /* Radeon 7000 (RV100) */ + if (((dev->pdev->device == 0x5159) && + (dev->pdev->subsystem_vendor == 0x174B) && + (dev->pdev->subsystem_device == 0x7c28)) || + /* Radeon 9100 (R200) */ + ((dev->pdev->device == 0x514D) && + (dev->pdev->subsystem_vendor == 0x174B) && + (dev->pdev->subsystem_device == 0x7149))) { + /* vbios value is bad, use the default */ + found = 0; + } + if (!found) /* fallback to defaults */ radeon_legacy_get_primary_dac_info_from_table(rdev, p_dac); @@ -1536,6 +1488,9 @@ of_machine_is_compatible("PowerBook6,7")) { /* ibook */ rdev->mode_info.connector_table = CT_IBOOK; + } else if (of_machine_is_compatible("PowerMac3,5")) { + /* PowerMac G4 Silver radeon 7500 */ + rdev->mode_info.connector_table = CT_MAC_G4_SILVER; } else if (of_machine_is_compatible("PowerMac4,4")) { /* emac */ rdev->mode_info.connector_table = CT_EMAC; @@ -1561,6 +1516,11 @@ (rdev->pdev->subsystem_device == 0x4150)) { /* Mac G5 tower 9600 */ rdev->mode_info.connector_table = CT_MAC_G5_9600; + } else if ((rdev->pdev->device == 0x4c66) && + (rdev->pdev->subsystem_vendor == 0x1002) && + (rdev->pdev->subsystem_device == 0x4c66)) { + /* SAM440ep RV250 embedded board */ + rdev->mode_info.connector_table = CT_SAM440EP; } else #endif /* CONFIG_PPC_PMAC */ #ifdef CONFIG_PPC64 @@ -2134,6 +2094,115 @@ CONNECTOR_OBJECT_ID_SVIDEO, &hpd); break; + case CT_SAM440EP: + DRM_INFO("Connector Table: %d (SAM440ep embedded board)\n", + rdev->mode_info.connector_table); + /* LVDS */ + ddc_i2c = combios_setup_i2c_bus(rdev, DDC_NONE_DETECTED, 0, 0); + hpd.hpd = RADEON_HPD_NONE; + radeon_add_legacy_encoder(dev, + radeon_get_encoder_enum(dev, + ATOM_DEVICE_LCD1_SUPPORT, + 0), + ATOM_DEVICE_LCD1_SUPPORT); + radeon_add_legacy_connector(dev, 0, ATOM_DEVICE_LCD1_SUPPORT, + DRM_MODE_CONNECTOR_LVDS, &ddc_i2c, + CONNECTOR_OBJECT_ID_LVDS, + &hpd); + /* DVI-I - secondary dac, int tmds */ + ddc_i2c = combios_setup_i2c_bus(rdev, DDC_DVI, 0, 0); + hpd.hpd = RADEON_HPD_1; /* ??? */ + radeon_add_legacy_encoder(dev, + radeon_get_encoder_enum(dev, + ATOM_DEVICE_DFP1_SUPPORT, + 0), + ATOM_DEVICE_DFP1_SUPPORT); + radeon_add_legacy_encoder(dev, + radeon_get_encoder_enum(dev, + ATOM_DEVICE_CRT2_SUPPORT, + 2), + ATOM_DEVICE_CRT2_SUPPORT); + radeon_add_legacy_connector(dev, 1, + ATOM_DEVICE_DFP1_SUPPORT | + ATOM_DEVICE_CRT2_SUPPORT, + DRM_MODE_CONNECTOR_DVII, &ddc_i2c, + CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I, + &hpd); + /* VGA - primary dac */ + ddc_i2c = combios_setup_i2c_bus(rdev, DDC_VGA, 0, 0); + hpd.hpd = RADEON_HPD_NONE; + radeon_add_legacy_encoder(dev, + radeon_get_encoder_enum(dev, + ATOM_DEVICE_CRT1_SUPPORT, + 1), + ATOM_DEVICE_CRT1_SUPPORT); + radeon_add_legacy_connector(dev, 2, + ATOM_DEVICE_CRT1_SUPPORT, + DRM_MODE_CONNECTOR_VGA, &ddc_i2c, + CONNECTOR_OBJECT_ID_VGA, + &hpd); + /* TV - TV DAC */ + ddc_i2c.valid = false; + hpd.hpd = RADEON_HPD_NONE; + radeon_add_legacy_encoder(dev, + radeon_get_encoder_enum(dev, + ATOM_DEVICE_TV1_SUPPORT, + 2), + ATOM_DEVICE_TV1_SUPPORT); + radeon_add_legacy_connector(dev, 3, ATOM_DEVICE_TV1_SUPPORT, + DRM_MODE_CONNECTOR_SVIDEO, + &ddc_i2c, + CONNECTOR_OBJECT_ID_SVIDEO, + &hpd); + break; + case CT_MAC_G4_SILVER: + DRM_INFO("Connector Table: %d (mac g4 silver)\n", + rdev->mode_info.connector_table); + /* DVI-I - tv dac, int tmds */ + ddc_i2c = combios_setup_i2c_bus(rdev, DDC_DVI, 0, 0); + hpd.hpd = RADEON_HPD_1; /* ??? */ + radeon_add_legacy_encoder(dev, + radeon_get_encoder_enum(dev, + ATOM_DEVICE_DFP1_SUPPORT, + 0), + ATOM_DEVICE_DFP1_SUPPORT); + radeon_add_legacy_encoder(dev, + radeon_get_encoder_enum(dev, + ATOM_DEVICE_CRT2_SUPPORT, + 2), + ATOM_DEVICE_CRT2_SUPPORT); + radeon_add_legacy_connector(dev, 0, + ATOM_DEVICE_DFP1_SUPPORT | + ATOM_DEVICE_CRT2_SUPPORT, + DRM_MODE_CONNECTOR_DVII, &ddc_i2c, + CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I, + &hpd); + /* VGA - primary dac */ + ddc_i2c = combios_setup_i2c_bus(rdev, DDC_VGA, 0, 0); + hpd.hpd = RADEON_HPD_NONE; + radeon_add_legacy_encoder(dev, + radeon_get_encoder_enum(dev, + ATOM_DEVICE_CRT1_SUPPORT, + 1), + ATOM_DEVICE_CRT1_SUPPORT); + radeon_add_legacy_connector(dev, 1, ATOM_DEVICE_CRT1_SUPPORT, + DRM_MODE_CONNECTOR_VGA, &ddc_i2c, + CONNECTOR_OBJECT_ID_VGA, + &hpd); + /* TV - TV DAC */ + ddc_i2c.valid = false; + hpd.hpd = RADEON_HPD_NONE; + radeon_add_legacy_encoder(dev, + radeon_get_encoder_enum(dev, + ATOM_DEVICE_TV1_SUPPORT, + 2), + ATOM_DEVICE_TV1_SUPPORT); + radeon_add_legacy_connector(dev, 2, ATOM_DEVICE_TV1_SUPPORT, + DRM_MODE_CONNECTOR_SVIDEO, + &ddc_i2c, + CONNECTOR_OBJECT_ID_SVIDEO, + &hpd); + break; default: DRM_INFO("Connector table: %d (invalid)\n", rdev->mode_info.connector_table); @@ -2338,6 +2407,14 @@ 1), ATOM_DEVICE_CRT1_SUPPORT); } + /* RV100 board with external TDMS bit mis-set. + * Actually uses internal TMDS, clear the bit. + */ + if (dev->pdev->device == 0x5159 && + dev->pdev->subsystem_vendor == 0x1014 && + dev->pdev->subsystem_device == 0x029A) { + tmp &= ~(1 << 4); + } if ((tmp >> 4) & 0x1) { devices |= ATOM_DEVICE_DFP2_SUPPORT; radeon_add_legacy_encoder(dev, --- linux-3.2.0.orig/drivers/gpu/drm/radeon/r300.c +++ linux-3.2.0/drivers/gpu/drm/radeon/r300.c @@ -1397,6 +1397,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + r100_irq_set(rdev); rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); /* 1M ring buffer */ @@ -1521,9 +1527,6 @@ r = radeon_fence_driver_init(rdev); if (r) return r; - r = radeon_irq_kms_init(rdev); - if (r) - return r; /* Memory manager */ r = radeon_bo_init(rdev); if (r) --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_irq_kms.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_irq_kms.c @@ -134,9 +134,31 @@ /* Dell RS690 only seems to work with MSIs. */ if ((rdev->pdev->device == 0x791f) && (rdev->pdev->subsystem_vendor == 0x1028) && + (rdev->pdev->subsystem_device == 0x01fc)) + return true; + + /* Dell RS690 only seems to work with MSIs. */ + if ((rdev->pdev->device == 0x791f) && + (rdev->pdev->subsystem_vendor == 0x1028) && (rdev->pdev->subsystem_device == 0x01fd)) return true; + /* Gateway RS690 only seems to work with MSIs. */ + if ((rdev->pdev->device == 0x791f) && + (rdev->pdev->subsystem_vendor == 0x107b) && + (rdev->pdev->subsystem_device == 0x0185)) + return true; + + /* try and enable MSIs by default on all RS690s */ + if (rdev->family == CHIP_RS690) + return true; + + /* RV515 seems to have MSI issues where it loses + * MSI rearms occasionally. This leads to lockups and freezes. + * disable it by default. + */ + if (rdev->family == CHIP_RV515) + return false; if (rdev->flags & RADEON_IS_IGP) { /* APUs work fine with MSIs */ if (rdev->family >= CHIP_PALM) --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_legacy_encoders.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_legacy_encoders.c @@ -617,6 +617,14 @@ enum drm_connector_status found = connector_status_disconnected; bool color = true; + /* just don't bother on RN50 those chip are often connected to remoting + * console hw and often we get failure to load detect those. So to make + * everyone happy report the encoder as always connected. + */ + if (ASIC_IS_RN50(rdev)) { + return connector_status_connected; + } + /* save the regs we need */ vclk_ecp_cntl = RREG32_PLL(RADEON_VCLK_ECP_CNTL); crtc_ext_cntl = RREG32(RADEON_CRTC_EXT_CNTL); @@ -650,6 +658,7 @@ tmp |= RADEON_DAC_RANGE_CNTL_PS2 | RADEON_DAC_CMP_EN; WREG32(RADEON_DAC_CNTL, tmp); + tmp = dac_macro_cntl; tmp &= ~(RADEON_DAC_PDWN_R | RADEON_DAC_PDWN_G | RADEON_DAC_PDWN_B); @@ -973,11 +982,7 @@ static void radeon_ext_tmds_enc_destroy(struct drm_encoder *encoder) { struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); - struct radeon_encoder_ext_tmds *tmds = radeon_encoder->enc_priv; - if (tmds) { - if (tmds->i2c_bus) - radeon_i2c_destroy(tmds->i2c_bus); - } + /* don't destroy the i2c bus record here, this will be done in radeon_i2c_fini */ kfree(radeon_encoder->enc_priv); drm_encoder_cleanup(encoder); kfree(radeon_encoder); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_device.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_device.c @@ -224,8 +224,11 @@ if (radeon_no_wb == 1) rdev->wb.enabled = false; else { - /* often unreliable on AGP */ if (rdev->flags & RADEON_IS_AGP) { + /* often unreliable on AGP */ + rdev->wb.enabled = false; + } else if (rdev->family < CHIP_R300) { + /* often unreliable on pre-r300 */ rdev->wb.enabled = false; } else { rdev->wb.enabled = true; @@ -351,22 +354,22 @@ { uint32_t reg; - if (efi_enabled && rdev->pdev->subsystem_vendor == PCI_VENDOR_ID_APPLE) + if (efi_enabled(EFI_BOOT) && + rdev->pdev->subsystem_vendor == PCI_VENDOR_ID_APPLE) return false; /* first check CRTCs */ - if (ASIC_IS_DCE41(rdev)) { + if (ASIC_IS_DCE4(rdev)) { reg = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET) | RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET); - if (reg & EVERGREEN_CRTC_MASTER_EN) - return true; - } else if (ASIC_IS_DCE4(rdev)) { - reg = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET) | - RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET) | - RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET) | - RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET) | - RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET) | - RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET); + if (rdev->num_crtc >= 4) { + reg |= RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET) | + RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET); + } + if (rdev->num_crtc >= 6) { + reg |= RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET) | + RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET); + } if (reg & EVERGREEN_CRTC_MASTER_EN) return true; } else if (ASIC_IS_AVIVO(rdev)) { @@ -758,7 +761,7 @@ if (rdev->flags & RADEON_IS_AGP) rdev->need_dma32 = true; if ((rdev->flags & RADEON_IS_PCI) && - (rdev->family < CHIP_RS400)) + (rdev->family <= CHIP_RS740)) rdev->need_dma32 = true; dma_bits = rdev->need_dma32 ? 32 : 40; @@ -861,6 +864,8 @@ if (dev->switch_power_state == DRM_SWITCH_POWER_OFF) return 0; + drm_kms_helper_poll_disable(dev); + /* turn off display hw */ list_for_each_entry(connector, &dev->mode_config.connector_list, head) { drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); @@ -947,6 +952,8 @@ list_for_each_entry(connector, &dev->mode_config.connector_list, head) { drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); } + + drm_kms_helper_poll_enable(dev); return 0; } --- linux-3.2.0.orig/drivers/gpu/drm/radeon/r520.c +++ linux-3.2.0/drivers/gpu/drm/radeon/r520.c @@ -188,6 +188,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + rs600_irq_set(rdev); rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); /* 1M ring buffer */ @@ -281,9 +287,6 @@ r = radeon_fence_driver_init(rdev); if (r) return r; - r = radeon_irq_kms_init(rdev); - if (r) - return r; /* Memory manager */ r = radeon_bo_init(rdev); if (r) --- linux-3.2.0.orig/drivers/gpu/drm/radeon/atombios_crtc.c +++ linux-3.2.0/drivers/gpu/drm/radeon/atombios_crtc.c @@ -541,6 +541,14 @@ if (rdev->family < CHIP_RV770) pll->flags |= RADEON_PLL_PREFER_MINM_OVER_MAXP; + /* use frac fb div on APUs */ + if (ASIC_IS_DCE41(rdev)) + pll->flags |= RADEON_PLL_USE_FRAC_FB_DIV; + /* use frac fb div on RS780/RS880 */ + if ((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880)) + pll->flags |= RADEON_PLL_USE_FRAC_FB_DIV; + if (ASIC_IS_DCE32(rdev) && mode->clock > 165000) + pll->flags |= RADEON_PLL_USE_FRAC_FB_DIV; } else { pll->flags |= RADEON_PLL_LEGACY; @@ -917,8 +925,8 @@ break; } - if (radeon_encoder->active_device & - (ATOM_DEVICE_LCD_SUPPORT | ATOM_DEVICE_DFP_SUPPORT)) { + if ((radeon_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT | ATOM_DEVICE_DFP_SUPPORT)) || + (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE)) { struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); @@ -1189,7 +1197,7 @@ WREG32(EVERGREEN_GRPH_ENABLE + radeon_crtc->crtc_offset, 1); WREG32(EVERGREEN_DESKTOP_HEIGHT + radeon_crtc->crtc_offset, - crtc->mode.vdisplay); + target_fb->height); x &= ~3; y &= ~1; WREG32(EVERGREEN_VIEWPORT_START + radeon_crtc->crtc_offset, @@ -1358,7 +1366,7 @@ WREG32(AVIVO_D1GRPH_ENABLE + radeon_crtc->crtc_offset, 1); WREG32(AVIVO_D1MODE_DESKTOP_HEIGHT + radeon_crtc->crtc_offset, - crtc->mode.vdisplay); + target_fb->height); x &= ~3; y &= ~1; WREG32(AVIVO_D1MODE_VIEWPORT_START + radeon_crtc->crtc_offset, @@ -1468,8 +1476,10 @@ * crtc virtual pixel clock. */ if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(test_encoder))) { - if (ASIC_IS_DCE5(rdev) || rdev->clock.dp_extclk) + if (rdev->clock.dp_extclk) return ATOM_PPLL_INVALID; + else if (ASIC_IS_DCE5(rdev)) + return ATOM_DCPLL; } } } @@ -1578,10 +1588,25 @@ static void atombios_crtc_disable(struct drm_crtc *crtc) { struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); + struct drm_device *dev = crtc->dev; + struct radeon_device *rdev = dev->dev_private; struct radeon_atom_ss ss; + int i; atombios_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); + for (i = 0; i < rdev->num_crtc; i++) { + if (rdev->mode_info.crtcs[i] && + rdev->mode_info.crtcs[i]->enabled && + i != radeon_crtc->crtc_id && + radeon_crtc->pll_id == rdev->mode_info.crtcs[i]->pll_id) { + /* one other crtc is using this pll don't turn + * off the pll + */ + goto done; + } + } + switch (radeon_crtc->pll_id) { case ATOM_PPLL1: case ATOM_PPLL2: @@ -1592,6 +1617,7 @@ default: break; } +done: radeon_crtc->pll_id = -1; } --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_display.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_display.c @@ -701,10 +701,15 @@ if (radeon_connector->router.ddc_valid) radeon_router_select_ddc_port(radeon_connector); - if ((radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_DisplayPort) || - (radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_eDP) || - (radeon_connector_encoder_get_dp_bridge_encoder_id(&radeon_connector->base) != - ENCODER_OBJECT_ID_NONE)) { + if (radeon_connector_encoder_get_dp_bridge_encoder_id(&radeon_connector->base) != + ENCODER_OBJECT_ID_NONE) { + struct radeon_connector_atom_dig *dig = radeon_connector->con_priv; + + if (dig->dp_i2c_bus) + radeon_connector->edid = drm_get_edid(&radeon_connector->base, + &dig->dp_i2c_bus->adapter); + } else if ((radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_DisplayPort) || + (radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_eDP)) { struct radeon_connector_atom_dig *dig = radeon_connector->con_priv; if ((dig->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT || @@ -1105,8 +1110,10 @@ } radeon_fb = kzalloc(sizeof(*radeon_fb), GFP_KERNEL); - if (radeon_fb == NULL) + if (radeon_fb == NULL) { + drm_gem_object_unreference_unlocked(obj); return ERR_PTR(-ENOMEM); + } radeon_framebuffer_init(dev, radeon_fb, mode_cmd, obj); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/r600.c +++ linux-3.2.0/drivers/gpu/drm/radeon/r600.c @@ -1905,6 +1905,7 @@ WREG32(PA_CL_ENHANCE, (CLIP_VTX_REORDER_ENA | NUM_CLIP_SEQ(3))); WREG32(PA_SC_ENHANCE, FORCE_EOV_MAX_CLK_CNT(4095)); + WREG32(VC_ENHANCE, 0); } @@ -2448,6 +2449,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + r = r600_irq_init(rdev); if (r) { DRM_ERROR("radeon: IH init failed (%d).\n", r); @@ -2591,10 +2598,6 @@ if (r) return r; - r = radeon_irq_kms_init(rdev); - if (r) - return r; - rdev->cp.ring_obj = NULL; r600_ring_init(rdev, 1024 * 1024); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_kms.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_kms.c @@ -39,8 +39,12 @@ if (rdev == NULL) return 0; + if (rdev->rmmio == NULL) + goto done_free; radeon_modeset_fini(rdev); radeon_device_fini(rdev); + +done_free: kfree(rdev); dev->dev_private = NULL; return 0; --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_cs.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_cs.c @@ -168,6 +168,8 @@ if (p->chunks[i].kpage[0] == NULL || p->chunks[i].kpage[1] == NULL) { kfree(p->chunks[i].kpage[0]); kfree(p->chunks[i].kpage[1]); + p->chunks[i].kpage[0] = NULL; + p->chunks[i].kpage[1] = NULL; return -ENOMEM; } p->chunks[i].kpage_idx[0] = -1; --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_pm.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_pm.c @@ -553,7 +553,9 @@ void radeon_pm_resume(struct radeon_device *rdev) { /* set up the default clocks if the MC ucode is loaded */ - if (ASIC_IS_DCE5(rdev) && rdev->mc_fw) { + if ((rdev->family >= CHIP_BARTS) && + (rdev->family <= CHIP_CAYMAN) && + rdev->mc_fw) { if (rdev->pm.default_vddc) radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, SET_VOLTAGE_TYPE_ASIC_VDDC); @@ -608,7 +610,9 @@ radeon_pm_print_states(rdev); radeon_pm_init_profile(rdev); /* set up the default clocks if the MC ucode is loaded */ - if (ASIC_IS_DCE5(rdev) && rdev->mc_fw) { + if ((rdev->family >= CHIP_BARTS) && + (rdev->family <= CHIP_CAYMAN) && + rdev->mc_fw) { if (rdev->pm.default_vddc) radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, SET_VOLTAGE_TYPE_ASIC_VDDC); @@ -859,7 +863,11 @@ struct radeon_device *rdev = dev->dev_private; seq_printf(m, "default engine clock: %u0 kHz\n", rdev->pm.default_sclk); - seq_printf(m, "current engine clock: %u0 kHz\n", radeon_get_engine_clock(rdev)); + /* radeon_get_engine_clock is not reliable on APUs so just print the current clock */ + if ((rdev->family >= CHIP_PALM) && (rdev->flags & RADEON_IS_IGP)) + seq_printf(m, "current engine clock: %u0 kHz\n", rdev->pm.current_sclk); + else + seq_printf(m, "current engine clock: %u0 kHz\n", radeon_get_engine_clock(rdev)); seq_printf(m, "default memory clock: %u0 kHz\n", rdev->pm.default_mclk); if (rdev->asic->get_memory_clock) seq_printf(m, "current memory clock: %u0 kHz\n", radeon_get_memory_clock(rdev)); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/rv515.c +++ linux-3.2.0/drivers/gpu/drm/radeon/rv515.c @@ -281,12 +281,8 @@ void rv515_mc_stop(struct radeon_device *rdev, struct rv515_mc_save *save) { - save->d1vga_control = RREG32(R_000330_D1VGA_CONTROL); - save->d2vga_control = RREG32(R_000338_D2VGA_CONTROL); save->vga_render_control = RREG32(R_000300_VGA_RENDER_CONTROL); save->vga_hdp_control = RREG32(R_000328_VGA_HDP_CONTROL); - save->d1crtc_control = RREG32(R_006080_D1CRTC_CONTROL); - save->d2crtc_control = RREG32(R_006880_D2CRTC_CONTROL); /* Stop all video */ WREG32(R_0068E8_D2CRTC_UPDATE_LOCK, 0); @@ -311,15 +307,6 @@ /* Unlock host access */ WREG32(R_000328_VGA_HDP_CONTROL, save->vga_hdp_control); mdelay(1); - /* Restore video state */ - WREG32(R_000330_D1VGA_CONTROL, save->d1vga_control); - WREG32(R_000338_D2VGA_CONTROL, save->d2vga_control); - WREG32(R_0060E8_D1CRTC_UPDATE_LOCK, 1); - WREG32(R_0068E8_D2CRTC_UPDATE_LOCK, 1); - WREG32(R_006080_D1CRTC_CONTROL, save->d1crtc_control); - WREG32(R_006880_D2CRTC_CONTROL, save->d2crtc_control); - WREG32(R_0060E8_D1CRTC_UPDATE_LOCK, 0); - WREG32(R_0068E8_D2CRTC_UPDATE_LOCK, 0); WREG32(R_000300_VGA_RENDER_CONTROL, save->vga_render_control); } @@ -393,6 +380,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + rs600_irq_set(rdev); rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); /* 1M ring buffer */ @@ -513,9 +506,6 @@ r = radeon_fence_driver_init(rdev); if (r) return r; - r = radeon_irq_kms_init(rdev); - if (r) - return r; /* Memory manager */ r = radeon_bo_init(rdev); if (r) --- linux-3.2.0.orig/drivers/gpu/drm/radeon/r100.c +++ linux-3.2.0/drivers/gpu/drm/radeon/r100.c @@ -789,9 +789,7 @@ WREG32(RADEON_AIC_CNTL, msi_rearm | RS400_MSI_REARM); break; default: - msi_rearm = RREG32(RADEON_MSI_REARM_EN) & ~RV370_MSI_REARM_EN; - WREG32(RADEON_MSI_REARM_EN, msi_rearm); - WREG32(RADEON_MSI_REARM_EN, msi_rearm | RV370_MSI_REARM_EN); + WREG32(RADEON_MSI_REARM_EN, RV370_MSI_REARM_EN); break; } } @@ -2177,6 +2175,7 @@ void r100_bm_disable(struct radeon_device *rdev) { u32 tmp; + u16 tmp16; /* disable bus mastering */ tmp = RREG32(R_000030_BUS_CNTL); @@ -2187,8 +2186,8 @@ WREG32(R_000030_BUS_CNTL, (tmp & 0xFFFFFFFF) | 0x00000040); tmp = RREG32(RADEON_BUS_CNTL); mdelay(1); - pci_read_config_word(rdev->pdev, 0x4, (u16*)&tmp); - pci_write_config_word(rdev->pdev, 0x4, tmp & 0xFFFB); + pci_read_config_word(rdev->pdev, 0x4, &tmp16); + pci_write_config_word(rdev->pdev, 0x4, tmp16 & 0xFFFB); mdelay(1); } @@ -3906,6 +3905,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + r100_irq_set(rdev); rdev->config.r100.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); /* 1M ring buffer */ @@ -4051,9 +4056,6 @@ r = radeon_fence_driver_init(rdev); if (r) return r; - r = radeon_irq_kms_init(rdev); - if (r) - return r; /* Memory manager */ r = radeon_bo_init(rdev); if (r) --- linux-3.2.0.orig/drivers/gpu/drm/radeon/rv770.c +++ linux-3.2.0/drivers/gpu/drm/radeon/rv770.c @@ -151,6 +151,8 @@ WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp); WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp); WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp); + if (rdev->family == CHIP_RV740) + WREG32(MC_VM_MD_L1_TLB3_CNTL, tmp); WREG32(MC_VM_MB_L1_TLB0_CNTL, tmp); WREG32(MC_VM_MB_L1_TLB1_CNTL, tmp); WREG32(MC_VM_MB_L1_TLB2_CNTL, tmp); @@ -689,8 +691,12 @@ if (rdev->family == CHIP_RV770) gb_tiling_config |= BANK_TILING(1); - else - gb_tiling_config |= BANK_TILING((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT); + else { + if ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) + gb_tiling_config |= BANK_TILING(1); + else + gb_tiling_config |= BANK_TILING(0); + } rdev->config.rv770.tiling_nbanks = 4 << ((gb_tiling_config >> 4) & 0x3); gb_tiling_config |= GROUP_SIZE((mc_arb_ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT); if ((mc_arb_ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT) @@ -776,6 +782,9 @@ ACK_FLUSH_CTL(3) | SYNC_FLUSH_CTL)); + if (rdev->family != CHIP_RV770) + WREG32(SMX_SAR_CTL0, 0x00003f3f); + db_debug3 = RREG32(DB_DEBUG3); db_debug3 &= ~DB_CLK_OFF_DELAY(0x1f); switch (rdev->family) { @@ -954,7 +963,7 @@ WREG32(PA_CL_ENHANCE, (CLIP_VTX_REORDER_ENA | NUM_CLIP_SEQ(3))); - + WREG32(VC_ENHANCE, 0); } void r700_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc) @@ -1083,6 +1092,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + r = r600_irq_init(rdev); if (r) { DRM_ERROR("radeon: IH init failed (%d).\n", r); @@ -1211,10 +1226,6 @@ if (r) return r; - r = radeon_irq_kms_init(rdev); - if (r) - return r; - rdev->cp.ring_obj = NULL; r600_ring_init(rdev, 1024 * 1024); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_ring.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_ring.c @@ -306,6 +306,9 @@ { int r; + /* make sure we aren't trying to allocate more space than there is on the ring */ + if (ndw > (rdev->cp.ring_size / 4)) + return -ENOMEM; /* Align requested size with padding so unlock_commit can * pad safely */ ndw = (ndw + rdev->cp.align_mask) & ~rdev->cp.align_mask; --- linux-3.2.0.orig/drivers/gpu/drm/radeon/rs400.c +++ linux-3.2.0/drivers/gpu/drm/radeon/rs400.c @@ -411,6 +411,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + r100_irq_set(rdev); rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); /* 1M ring buffer */ @@ -519,9 +525,6 @@ r = radeon_fence_driver_init(rdev); if (r) return r; - r = radeon_irq_kms_init(rdev); - if (r) - return r; /* Memory manager */ r = radeon_bo_init(rdev); if (r) --- linux-3.2.0.orig/drivers/gpu/drm/radeon/rs690.c +++ linux-3.2.0/drivers/gpu/drm/radeon/rs690.c @@ -622,6 +622,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + rs600_irq_set(rdev); rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); /* 1M ring buffer */ @@ -738,9 +744,6 @@ r = radeon_fence_driver_init(rdev); if (r) return r; - r = radeon_irq_kms_init(rdev); - if (r) - return r; /* Memory manager */ r = radeon_bo_init(rdev); if (r) --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_object.h +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_object.h @@ -108,6 +108,8 @@ extern void radeon_bo_kunmap(struct radeon_bo *bo); extern void radeon_bo_unref(struct radeon_bo **bo); extern int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr); +extern int radeon_bo_pin_restricted(struct radeon_bo *bo, u32 domain, + u64 max_offset, u64 *gpu_addr); extern int radeon_bo_unpin(struct radeon_bo *bo); extern int radeon_bo_evict_vram(struct radeon_device *rdev); extern void radeon_bo_force_delete(struct radeon_device *rdev); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_agp.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_agp.c @@ -70,9 +70,12 @@ /* Intel 82830 830 Chipset Host Bridge / Mobility M6 LY Needs AGPMode 2 (fdo #17360)*/ { PCI_VENDOR_ID_INTEL, 0x3575, PCI_VENDOR_ID_ATI, 0x4c59, PCI_VENDOR_ID_DELL, 0x00e3, 2}, - /* Intel 82852/82855 host bridge / Mobility FireGL 9000 R250 Needs AGPMode 1 (lp #296617) */ + /* Intel 82852/82855 host bridge / Mobility FireGL 9000 RV250 Needs AGPMode 1 (lp #296617) */ { PCI_VENDOR_ID_INTEL, 0x3580, PCI_VENDOR_ID_ATI, 0x4c66, PCI_VENDOR_ID_DELL, 0x0149, 1}, + /* Intel 82855PM host bridge / Mobility FireGL 9000 RV250 Needs AGPMode 1 for suspend/resume */ + { PCI_VENDOR_ID_INTEL, 0x3340, PCI_VENDOR_ID_ATI, 0x4c66, + PCI_VENDOR_ID_IBM, 0x0531, 1}, /* Intel 82852/82855 host bridge / Mobility 9600 M10 RV350 Needs AGPMode 1 (deb #467460) */ { PCI_VENDOR_ID_INTEL, 0x3580, PCI_VENDOR_ID_ATI, 0x4e50, 0x1025, 0x0061, 1}, --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_object.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_object.c @@ -204,7 +204,8 @@ *bo = NULL; } -int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr) +int radeon_bo_pin_restricted(struct radeon_bo *bo, u32 domain, u64 max_offset, + u64 *gpu_addr) { int r, i; @@ -212,6 +213,7 @@ bo->pin_count++; if (gpu_addr) *gpu_addr = radeon_bo_gpu_offset(bo); + WARN_ON_ONCE(max_offset != 0); return 0; } radeon_ttm_placement_from_domain(bo, domain); @@ -219,6 +221,15 @@ /* force to pin into visible video ram */ bo->placement.lpfn = bo->rdev->mc.visible_vram_size >> PAGE_SHIFT; } + if (max_offset) { + u64 lpfn = max_offset >> PAGE_SHIFT; + + if (!bo->placement.lpfn) + bo->placement.lpfn = bo->rdev->mc.gtt_size >> PAGE_SHIFT; + + if (lpfn < bo->placement.lpfn) + bo->placement.lpfn = lpfn; + } for (i = 0; i < bo->placement.num_placement; i++) bo->placements[i] |= TTM_PL_FLAG_NO_EVICT; r = ttm_bo_validate(&bo->tbo, &bo->placement, false, false, false); @@ -232,6 +243,11 @@ return r; } +int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr) +{ + return radeon_bo_pin_restricted(bo, domain, 0, gpu_addr); +} + int radeon_bo_unpin(struct radeon_bo *bo) { int r, i; --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_i2c.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_i2c.c @@ -34,7 +34,7 @@ * radeon_ddc_probe * */ -bool radeon_ddc_probe(struct radeon_connector *radeon_connector) +bool radeon_ddc_probe(struct radeon_connector *radeon_connector, bool use_aux) { u8 out = 0x0; u8 buf[8]; @@ -58,7 +58,13 @@ if (radeon_connector->router.ddc_valid) radeon_router_select_ddc_port(radeon_connector); - ret = i2c_transfer(&radeon_connector->ddc_bus->adapter, msgs, 2); + if (use_aux) { + struct radeon_connector_atom_dig *dig = radeon_connector->con_priv; + ret = i2c_transfer(&dig->dp_i2c_bus->adapter, msgs, 2); + } else { + ret = i2c_transfer(&radeon_connector->ddc_bus->adapter, msgs, 2); + } + if (ret != 2) /* Couldn't find an accessible DDC on this connector */ return false; @@ -890,6 +896,10 @@ struct radeon_i2c_chan *i2c; int ret; + /* don't add the mm_i2c bus unless hw_i2c is enabled */ + if (rec->mm_i2c && (radeon_hw_i2c == 0)) + return NULL; + i2c = kzalloc(sizeof(struct radeon_i2c_chan), GFP_KERNEL); if (i2c == NULL) return NULL; --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_atombios.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_atombios.c @@ -438,10 +438,26 @@ */ if ((dev->pdev->device == 0x9498) && (dev->pdev->subsystem_vendor == 0x1682) && - (dev->pdev->subsystem_device == 0x2452)) { + (dev->pdev->subsystem_device == 0x2452) && + (i2c_bus->valid == false) && + !(supported_device & (ATOM_DEVICE_TV_SUPPORT | ATOM_DEVICE_CV_SUPPORT))) { struct radeon_device *rdev = dev->dev_private; *i2c_bus = radeon_lookup_i2c_gpio(rdev, 0x93); } + + /* Fujitsu D3003-S2 board lists DVI-I as DVI-D and VGA */ + if (((dev->pdev->device == 0x9802) || (dev->pdev->device == 0x9806)) && + (dev->pdev->subsystem_vendor == 0x1734) && + (dev->pdev->subsystem_device == 0x11bd)) { + if (*connector_type == DRM_MODE_CONNECTOR_VGA) { + *connector_type = DRM_MODE_CONNECTOR_DVII; + *line_mux = 0x3103; + } else if (*connector_type == DRM_MODE_CONNECTOR_DVID) { + *connector_type = DRM_MODE_CONNECTOR_DVII; + } + } + + return true; } @@ -1973,6 +1989,8 @@ num_modes = power_info->info.ucNumOfPowerModeEntries; if (num_modes > ATOM_MAX_NUMBEROF_POWER_BLOCK) num_modes = ATOM_MAX_NUMBEROF_POWER_BLOCK; + if (num_modes == 0) + return state_index; rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state) * num_modes, GFP_KERNEL); if (!rdev->pm.power_state) return state_index; @@ -2345,6 +2363,8 @@ power_info = (union power_info *)(mode_info->atom_context->bios + data_offset); radeon_atombios_add_pplib_thermal_controller(rdev, &power_info->pplib.sThermalController); + if (power_info->pplib.ucNumStates == 0) + return state_index; rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state) * power_info->pplib.ucNumStates, GFP_KERNEL); if (!rdev->pm.power_state) @@ -2427,6 +2447,7 @@ int index = GetIndexIntoMasterTable(DATA, PowerPlayInfo); u16 data_offset; u8 frev, crev; + u8 *power_state_offset; if (!atom_parse_data_header(mode_info->atom_context, index, NULL, &frev, &crev, &data_offset)) @@ -2443,15 +2464,17 @@ non_clock_info_array = (struct NonClockInfoArray *) (mode_info->atom_context->bios + data_offset + le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset)); + if (state_array->ucNumEntries == 0) + return state_index; rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state) * state_array->ucNumEntries, GFP_KERNEL); if (!rdev->pm.power_state) return state_index; + power_state_offset = (u8 *)state_array->states; for (i = 0; i < state_array->ucNumEntries; i++) { mode_index = 0; - power_state = (union pplib_power_state *)&state_array->states[i]; - /* XXX this might be an inagua bug... */ - non_clock_array_index = i; /* power_state->v2.nonClockInfoIndex */ + power_state = (union pplib_power_state *)power_state_offset; + non_clock_array_index = power_state->v2.nonClockInfoIndex; non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *) &non_clock_info_array->nonClockInfo[non_clock_array_index]; rdev->pm.power_state[i].clock_info = kzalloc(sizeof(struct radeon_pm_clock_info) * @@ -2463,9 +2486,6 @@ if (power_state->v2.ucNumDPMLevels) { for (j = 0; j < power_state->v2.ucNumDPMLevels; j++) { clock_array_index = power_state->v2.clockInfoIndex[j]; - /* XXX this might be an inagua bug... */ - if (clock_array_index >= clock_info_array->ucNumEntries) - continue; clock_info = (union pplib_clock_info *) &clock_info_array->clockInfo[clock_array_index]; valid = radeon_atombios_parse_pplib_clock_info(rdev, @@ -2487,6 +2507,7 @@ non_clock_info); state_index++; } + power_state_offset += 2 + power_state->v2.ucNumDPMLevels; } /* if multiple clock modes, mark the lowest as no display */ for (i = 0; i < state_index; i++) { @@ -2533,7 +2554,9 @@ default: break; } - } else { + } + + if (state_index == 0) { rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL); if (rdev->pm.power_state) { rdev->pm.power_state[0].clock_info = --- linux-3.2.0.orig/drivers/gpu/drm/radeon/atombios.h +++ linux-3.2.0/drivers/gpu/drm/radeon/atombios.h @@ -101,6 +101,7 @@ #define ATOM_LCD_SELFTEST_START (ATOM_DISABLE+5) #define ATOM_LCD_SELFTEST_STOP (ATOM_ENABLE+5) #define ATOM_ENCODER_INIT (ATOM_DISABLE+7) +#define ATOM_INIT (ATOM_DISABLE+7) #define ATOM_GET_STATUS (ATOM_DISABLE+8) #define ATOM_BLANKING 1 @@ -251,25 +252,25 @@ USHORT SetEngineClock; //Function Table,directly used by various SW components,latest version 1.1 USHORT SetMemoryClock; //Function Table,directly used by various SW components,latest version 1.1 USHORT SetPixelClock; //Function Table,directly used by various SW components,latest version 1.2 - USHORT DynamicClockGating; //Atomic Table, indirectly used by various SW components,called from ASIC_Init + USHORT EnableDispPowerGating; //Atomic Table, indirectly used by various SW components,called from ASIC_Init USHORT ResetMemoryDLL; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock USHORT ResetMemoryDevice; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock - USHORT MemoryPLLInit; - USHORT AdjustDisplayPll; //only used by Bios + USHORT MemoryPLLInit; //Atomic Table, used only by Bios + USHORT AdjustDisplayPll; //Atomic Table, used by various SW componentes. USHORT AdjustMemoryController; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock USHORT EnableASIC_StaticPwrMgt; //Atomic Table, only used by Bios USHORT ASIC_StaticPwrMgtStatusChange; //Obsolete , only used by Bios USHORT DAC_LoadDetection; //Atomic Table, directly used by various SW components,latest version 1.2 USHORT LVTMAEncoderControl; //Atomic Table,directly used by various SW components,latest version 1.3 - USHORT LCD1OutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 + USHORT HW_Misc_Operation; //Atomic Table, directly used by various SW components,latest version 1.1 USHORT DAC1EncoderControl; //Atomic Table, directly used by various SW components,latest version 1.1 USHORT DAC2EncoderControl; //Atomic Table, directly used by various SW components,latest version 1.1 USHORT DVOOutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 USHORT CV1OutputControl; //Atomic Table, Atomic Table, Obsolete from Ry6xx, use DAC2 Output instead - USHORT GetConditionalGoldenSetting; //only used by Bios + USHORT GetConditionalGoldenSetting; //Only used by Bios USHORT TVEncoderControl; //Function Table,directly used by various SW components,latest version 1.1 - USHORT TMDSAEncoderControl; //Atomic Table, directly used by various SW components,latest version 1.3 - USHORT LVDSEncoderControl; //Atomic Table, directly used by various SW components,latest version 1.3 + USHORT PatchMCSetting; //only used by BIOS + USHORT MC_SEQ_Control; //only used by BIOS USHORT TV1OutputControl; //Atomic Table, Obsolete from Ry6xx, use DAC2 Output instead USHORT EnableScaler; //Atomic Table, used only by Bios USHORT BlankCRTC; //Atomic Table, directly used by various SW components,latest version 1.1 @@ -282,7 +283,7 @@ USHORT SetCRTC_Replication; //Atomic Table, used only by Bios USHORT SelectCRTC_Source; //Atomic Table, directly used by various SW components,latest version 1.1 USHORT EnableGraphSurfaces; //Atomic Table, used only by Bios - USHORT UpdateCRTC_DoubleBufferRegisters; + USHORT UpdateCRTC_DoubleBufferRegisters; //Atomic Table, used only by Bios USHORT LUT_AutoFill; //Atomic Table, only used by Bios USHORT EnableHW_IconCursor; //Atomic Table, only used by Bios USHORT GetMemoryClock; //Atomic Table, directly used by various SW components,latest version 1.1 @@ -308,27 +309,36 @@ USHORT SetVoltage; //Function Table,directly and/or indirectly used by various SW components,latest version 1.1 USHORT DAC1OutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 USHORT DAC2OutputControl; //Atomic Table, directly used by various SW components,latest version 1.1 - USHORT SetupHWAssistedI2CStatus; //Function Table,only used by Bios, obsolete soon.Switch to use "ReadEDIDFromHWAssistedI2C" + USHORT ComputeMemoryClockParam; //Function Table,only used by Bios, obsolete soon.Switch to use "ReadEDIDFromHWAssistedI2C" USHORT ClockSource; //Atomic Table, indirectly used by various SW components,called from ASIC_Init USHORT MemoryDeviceInit; //Atomic Table, indirectly used by various SW components,called from SetMemoryClock - USHORT EnableYUV; //Atomic Table, indirectly used by various SW components,called from EnableVGARender + USHORT GetDispObjectInfo; //Atomic Table, indirectly used by various SW components,called from EnableVGARender USHORT DIG1EncoderControl; //Atomic Table,directly used by various SW components,latest version 1.1 USHORT DIG2EncoderControl; //Atomic Table,directly used by various SW components,latest version 1.1 USHORT DIG1TransmitterControl; //Atomic Table,directly used by various SW components,latest version 1.1 USHORT DIG2TransmitterControl; //Atomic Table,directly used by various SW components,latest version 1.1 USHORT ProcessAuxChannelTransaction; //Function Table,only used by Bios USHORT DPEncoderService; //Function Table,only used by Bios + USHORT GetVoltageInfo; //Function Table,only used by Bios since SI }ATOM_MASTER_LIST_OF_COMMAND_TABLES; // For backward compatible #define ReadEDIDFromHWAssistedI2C ProcessI2cChannelTransaction -#define UNIPHYTransmitterControl DIG1TransmitterControl -#define LVTMATransmitterControl DIG2TransmitterControl +#define DPTranslatorControl DIG2EncoderControl +#define UNIPHYTransmitterControl DIG1TransmitterControl +#define LVTMATransmitterControl DIG2TransmitterControl #define SetCRTC_DPM_State GetConditionalGoldenSetting #define SetUniphyInstance ASIC_StaticPwrMgtStatusChange #define HPDInterruptService ReadHWAssistedI2CStatus #define EnableVGA_Access GetSCLKOverMCLKRatio -#define GetDispObjectInfo EnableYUV +#define EnableYUV GetDispObjectInfo +#define DynamicClockGating EnableDispPowerGating +#define SetupHWAssistedI2CStatus ComputeMemoryClockParam + +#define TMDSAEncoderControl PatchMCSetting +#define LVDSEncoderControl MC_SEQ_Control +#define LCD1OutputControl HW_Misc_Operation + typedef struct _ATOM_MASTER_COMMAND_TABLE { @@ -495,6 +505,34 @@ // ucInputFlag #define ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN 1 // 1-StrobeMode, 0-PerformanceMode +// use for ComputeMemoryClockParamTable +typedef struct _COMPUTE_MEMORY_CLOCK_PARAM_PARAMETERS_V2_1 +{ + union + { + ULONG ulClock; + ATOM_S_MPLL_FB_DIVIDER ulFbDiv; //Output:UPPER_WORD=FB_DIV_INTEGER, LOWER_WORD=FB_DIV_FRAC shl (16-FB_FRACTION_BITS) + }; + UCHAR ucDllSpeed; //Output + UCHAR ucPostDiv; //Output + union{ + UCHAR ucInputFlag; //Input : ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN: 1-StrobeMode, 0-PerformanceMode + UCHAR ucPllCntlFlag; //Output: + }; + UCHAR ucBWCntl; +}COMPUTE_MEMORY_CLOCK_PARAM_PARAMETERS_V2_1; + +// definition of ucInputFlag +#define MPLL_INPUT_FLAG_STROBE_MODE_EN 0x01 +// definition of ucPllCntlFlag +#define MPLL_CNTL_FLAG_VCO_MODE_MASK 0x03 +#define MPLL_CNTL_FLAG_BYPASS_DQ_PLL 0x04 +#define MPLL_CNTL_FLAG_QDR_ENABLE 0x08 +#define MPLL_CNTL_FLAG_AD_HALF_RATE 0x10 + +//MPLL_CNTL_FLAG_BYPASS_AD_PLL has a wrong name, should be BYPASS_DQ_PLL +#define MPLL_CNTL_FLAG_BYPASS_AD_PLL 0x04 + typedef struct _DYNAMICE_MEMORY_SETTINGS_PARAMETER { ATOM_COMPUTE_CLOCK_FREQ ulClock; @@ -562,6 +600,16 @@ #define DYNAMIC_CLOCK_GATING_PS_ALLOCATION DYNAMIC_CLOCK_GATING_PARAMETERS /****************************************************************************/ +// Structure used by EnableDispPowerGatingTable.ctb +/****************************************************************************/ +typedef struct _ENABLE_DISP_POWER_GATING_PARAMETERS_V2_1 +{ + UCHAR ucDispPipeId; // ATOM_CRTC1, ATOM_CRTC2, ... + UCHAR ucEnable; // ATOM_ENABLE or ATOM_DISABLE + UCHAR ucPadding[2]; +}ENABLE_DISP_POWER_GATING_PARAMETERS_V2_1; + +/****************************************************************************/ // Structure used by EnableASIC_StaticPwrMgtTable.ctb /****************************************************************************/ typedef struct _ENABLE_ASIC_STATIC_PWR_MGT_PARAMETERS @@ -807,6 +855,7 @@ #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_1_62GHZ 0x00 #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_2_70GHZ 0x01 #define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_5_40GHZ 0x02 +#define ATOM_ENCODER_CONFIG_V4_DPLINKRATE_3_24GHZ 0x03 #define ATOM_ENCODER_CONFIG_V4_ENCODER_SEL 0x70 #define ATOM_ENCODER_CONFIG_V4_DIG0_ENCODER 0x00 #define ATOM_ENCODER_CONFIG_V4_DIG1_ENCODER 0x10 @@ -814,6 +863,7 @@ #define ATOM_ENCODER_CONFIG_V4_DIG3_ENCODER 0x30 #define ATOM_ENCODER_CONFIG_V4_DIG4_ENCODER 0x40 #define ATOM_ENCODER_CONFIG_V4_DIG5_ENCODER 0x50 +#define ATOM_ENCODER_CONFIG_V4_DIG6_ENCODER 0x60 typedef struct _DIG_ENCODER_CONTROL_PARAMETERS_V4 { @@ -1171,6 +1221,106 @@ #define ATOM_TRANSMITTER_CONFIG_V4_TRANSMITTER3 0x80 //EF +typedef struct _ATOM_DIG_TRANSMITTER_CONFIG_V5 +{ +#if ATOM_BIG_ENDIAN + UCHAR ucReservd1:1; + UCHAR ucHPDSel:3; + UCHAR ucPhyClkSrcId:2; + UCHAR ucCoherentMode:1; + UCHAR ucReserved:1; +#else + UCHAR ucReserved:1; + UCHAR ucCoherentMode:1; + UCHAR ucPhyClkSrcId:2; + UCHAR ucHPDSel:3; + UCHAR ucReservd1:1; +#endif +}ATOM_DIG_TRANSMITTER_CONFIG_V5; + +typedef struct _DIG_TRANSMITTER_CONTROL_PARAMETERS_V1_5 +{ + USHORT usSymClock; // Encoder Clock in 10kHz,(DP mode)= linkclock/10, (TMDS/LVDS/HDMI)= pixel clock, (HDMI deep color), =pixel clock * deep_color_ratio + UCHAR ucPhyId; // 0=UNIPHYA, 1=UNIPHYB, 2=UNIPHYC, 3=UNIPHYD, 4= UNIPHYE 5=UNIPHYF + UCHAR ucAction; // define as ATOM_TRANSMITER_ACTION_xxx + UCHAR ucLaneNum; // indicate lane number 1-8 + UCHAR ucConnObjId; // Connector Object Id defined in ObjectId.h + UCHAR ucDigMode; // indicate DIG mode + union{ + ATOM_DIG_TRANSMITTER_CONFIG_V5 asConfig; + UCHAR ucConfig; + }; + UCHAR ucDigEncoderSel; // indicate DIG front end encoder + UCHAR ucDPLaneSet; + UCHAR ucReserved; + UCHAR ucReserved1; +}DIG_TRANSMITTER_CONTROL_PARAMETERS_V1_5; + +//ucPhyId +#define ATOM_PHY_ID_UNIPHYA 0 +#define ATOM_PHY_ID_UNIPHYB 1 +#define ATOM_PHY_ID_UNIPHYC 2 +#define ATOM_PHY_ID_UNIPHYD 3 +#define ATOM_PHY_ID_UNIPHYE 4 +#define ATOM_PHY_ID_UNIPHYF 5 +#define ATOM_PHY_ID_UNIPHYG 6 + +// ucDigEncoderSel +#define ATOM_TRANMSITTER_V5__DIGA_SEL 0x01 +#define ATOM_TRANMSITTER_V5__DIGB_SEL 0x02 +#define ATOM_TRANMSITTER_V5__DIGC_SEL 0x04 +#define ATOM_TRANMSITTER_V5__DIGD_SEL 0x08 +#define ATOM_TRANMSITTER_V5__DIGE_SEL 0x10 +#define ATOM_TRANMSITTER_V5__DIGF_SEL 0x20 +#define ATOM_TRANMSITTER_V5__DIGG_SEL 0x40 + +// ucDigMode +#define ATOM_TRANSMITTER_DIGMODE_V5_DP 0 +#define ATOM_TRANSMITTER_DIGMODE_V5_LVDS 1 +#define ATOM_TRANSMITTER_DIGMODE_V5_DVI 2 +#define ATOM_TRANSMITTER_DIGMODE_V5_HDMI 3 +#define ATOM_TRANSMITTER_DIGMODE_V5_SDVO 4 +#define ATOM_TRANSMITTER_DIGMODE_V5_DP_MST 5 + +// ucDPLaneSet +#define DP_LANE_SET__0DB_0_4V 0x00 +#define DP_LANE_SET__0DB_0_6V 0x01 +#define DP_LANE_SET__0DB_0_8V 0x02 +#define DP_LANE_SET__0DB_1_2V 0x03 +#define DP_LANE_SET__3_5DB_0_4V 0x08 +#define DP_LANE_SET__3_5DB_0_6V 0x09 +#define DP_LANE_SET__3_5DB_0_8V 0x0a +#define DP_LANE_SET__6DB_0_4V 0x10 +#define DP_LANE_SET__6DB_0_6V 0x11 +#define DP_LANE_SET__9_5DB_0_4V 0x18 + +// ATOM_DIG_TRANSMITTER_CONFIG_V5 asConfig; +// Bit1 +#define ATOM_TRANSMITTER_CONFIG_V5_COHERENT 0x02 + +// Bit3:2 +#define ATOM_TRANSMITTER_CONFIG_V5_REFCLK_SEL_MASK 0x0c +#define ATOM_TRANSMITTER_CONFIG_V5_REFCLK_SEL_SHIFT 0x02 + +#define ATOM_TRANSMITTER_CONFIG_V5_P1PLL 0x00 +#define ATOM_TRANSMITTER_CONFIG_V5_P2PLL 0x04 +#define ATOM_TRANSMITTER_CONFIG_V5_P0PLL 0x08 +#define ATOM_TRANSMITTER_CONFIG_V5_REFCLK_SRC_EXT 0x0c +// Bit6:4 +#define ATOM_TRANSMITTER_CONFIG_V5_HPD_SEL_MASK 0x70 +#define ATOM_TRANSMITTER_CONFIG_V5_HPD_SEL_SHIFT 0x04 + +#define ATOM_TRANSMITTER_CONFIG_V5_NO_HPD_SEL 0x00 +#define ATOM_TRANSMITTER_CONFIG_V5_HPD1_SEL 0x10 +#define ATOM_TRANSMITTER_CONFIG_V5_HPD2_SEL 0x20 +#define ATOM_TRANSMITTER_CONFIG_V5_HPD3_SEL 0x30 +#define ATOM_TRANSMITTER_CONFIG_V5_HPD4_SEL 0x40 +#define ATOM_TRANSMITTER_CONFIG_V5_HPD5_SEL 0x50 +#define ATOM_TRANSMITTER_CONFIG_V5_HPD6_SEL 0x60 + +#define DIG_TRANSMITTER_CONTROL_PS_ALLOCATION_V1_5 DIG_TRANSMITTER_CONTROL_PARAMETERS_V1_5 + + /****************************************************************************/ // Structures used by ExternalEncoderControlTable V1.3 // ASIC Families: Evergreen, Llano, NI @@ -1793,6 +1943,7 @@ #define ATOM_PPLL_SS_TYPE_V3_P1PLL 0x00 #define ATOM_PPLL_SS_TYPE_V3_P2PLL 0x04 #define ATOM_PPLL_SS_TYPE_V3_DCPLL 0x08 +#define ATOM_PPLL_SS_TYPE_V3_P0PLL ATOM_PPLL_SS_TYPE_V3_DCPLL #define ATOM_PPLL_SS_AMOUNT_V3_FBDIV_MASK 0x00FF #define ATOM_PPLL_SS_AMOUNT_V3_FBDIV_SHIFT 0 #define ATOM_PPLL_SS_AMOUNT_V3_NFRAC_MASK 0x0F00 @@ -2030,12 +2181,77 @@ USHORT usVoltageLevel; // real voltage level }SET_VOLTAGE_PARAMETERS_V2; + +typedef struct _SET_VOLTAGE_PARAMETERS_V1_3 +{ + UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ/VDDCI + UCHAR ucVoltageMode; // Indicate action: Set voltage level + USHORT usVoltageLevel; // real voltage level in unit of mv or Voltage Phase (0, 1, 2, .. ) +}SET_VOLTAGE_PARAMETERS_V1_3; + +//ucVoltageType +#define VOLTAGE_TYPE_VDDC 1 +#define VOLTAGE_TYPE_MVDDC 2 +#define VOLTAGE_TYPE_MVDDQ 3 +#define VOLTAGE_TYPE_VDDCI 4 + +//SET_VOLTAGE_PARAMETERS_V3.ucVoltageMode +#define ATOM_SET_VOLTAGE 0 //Set voltage Level +#define ATOM_INIT_VOLTAGE_REGULATOR 3 //Init Regulator +#define ATOM_SET_VOLTAGE_PHASE 4 //Set Vregulator Phase +#define ATOM_GET_MAX_VOLTAGE 6 //Get Max Voltage, not used in SetVoltageTable v1.3 +#define ATOM_GET_VOLTAGE_LEVEL 6 //Get Voltage level from vitual voltage ID + +// define vitual voltage id in usVoltageLevel +#define ATOM_VIRTUAL_VOLTAGE_ID0 0xff01 +#define ATOM_VIRTUAL_VOLTAGE_ID1 0xff02 +#define ATOM_VIRTUAL_VOLTAGE_ID2 0xff03 +#define ATOM_VIRTUAL_VOLTAGE_ID3 0xff04 + typedef struct _SET_VOLTAGE_PS_ALLOCATION { SET_VOLTAGE_PARAMETERS sASICSetVoltage; WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION sReserved; }SET_VOLTAGE_PS_ALLOCATION; +// New Added from SI for GetVoltageInfoTable, input parameter structure +typedef struct _GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_1 +{ + UCHAR ucVoltageType; // Input: To tell which voltage to set up, VDDC/MVDDC/MVDDQ/VDDCI + UCHAR ucVoltageMode; // Input: Indicate action: Get voltage info + USHORT usVoltageLevel; // Input: real voltage level in unit of mv or Voltage Phase (0, 1, 2, .. ) or Leakage Id + ULONG ulReserved; +}GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_1; + +// New Added from SI for GetVoltageInfoTable, output parameter structure when ucVotlageMode == ATOM_GET_VOLTAGE_VID +typedef struct _GET_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_1 +{ + ULONG ulVotlageGpioState; + ULONG ulVoltageGPioMask; +}GET_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_1; + +// New Added from SI for GetVoltageInfoTable, output parameter structure when ucVotlageMode == ATOM_GET_VOLTAGE_STATEx_LEAKAGE_VID +typedef struct _GET_LEAKAGE_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_1 +{ + USHORT usVoltageLevel; + USHORT usVoltageId; // Voltage Id programmed in Voltage Regulator + ULONG ulReseved; +}GET_LEAKAGE_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_1; + + +// GetVoltageInfo v1.1 ucVoltageMode +#define ATOM_GET_VOLTAGE_VID 0x00 +#define ATOM_GET_VOTLAGE_INIT_SEQ 0x03 +#define ATOM_GET_VOLTTAGE_PHASE_PHASE_VID 0x04 +// for SI, this state map to 0xff02 voltage state in Power Play table, which is power boost state +#define ATOM_GET_VOLTAGE_STATE0_LEAKAGE_VID 0x10 + +// for SI, this state map to 0xff01 voltage state in Power Play table, which is performance state +#define ATOM_GET_VOLTAGE_STATE1_LEAKAGE_VID 0x11 +// undefined power state +#define ATOM_GET_VOLTAGE_STATE2_LEAKAGE_VID 0x12 +#define ATOM_GET_VOLTAGE_STATE3_LEAKAGE_VID 0x13 + /****************************************************************************/ // Structures used by TVEncoderControlTable /****************************************************************************/ @@ -2065,9 +2281,9 @@ USHORT MultimediaConfigInfo; // Only used by MM Lib,latest version 2.1, not configuable from Bios, need to include the table to build Bios USHORT StandardVESA_Timing; // Only used by Bios USHORT FirmwareInfo; // Shared by various SW components,latest version 1.4 - USHORT DAC_Info; // Will be obsolete from R600 + USHORT PaletteData; // Only used by BIOS USHORT LCD_Info; // Shared by various SW components,latest version 1.3, was called LVDS_Info - USHORT TMDS_Info; // Will be obsolete from R600 + USHORT DIGTransmitterInfo; // Internal used by VBIOS only version 3.1 USHORT AnalogTV_Info; // Shared by various SW components,latest version 1.1 USHORT SupportedDevicesInfo; // Will be obsolete from R600 USHORT GPIO_I2C_Info; // Shared by various SW components,latest version 1.2 will be used from R600 @@ -2096,15 +2312,16 @@ USHORT PowerSourceInfo; // Shared by various SW components, latest versoin 1.1 }ATOM_MASTER_LIST_OF_DATA_TABLES; -// For backward compatible -#define LVDS_Info LCD_Info - typedef struct _ATOM_MASTER_DATA_TABLE { ATOM_COMMON_TABLE_HEADER sHeader; ATOM_MASTER_LIST_OF_DATA_TABLES ListOfDataTables; }ATOM_MASTER_DATA_TABLE; +// For backward compatible +#define LVDS_Info LCD_Info +#define DAC_Info PaletteData +#define TMDS_Info DIGTransmitterInfo /****************************************************************************/ // Structure used in MultimediaCapabilityInfoTable @@ -2171,7 +2388,9 @@ typedef struct _ATOM_FIRMWARE_CAPABILITY { #if ATOM_BIG_ENDIAN - USHORT Reserved:3; + USHORT Reserved:1; + USHORT SCL2Redefined:1; + USHORT PostWithoutModeSet:1; USHORT HyperMemory_Size:4; USHORT HyperMemory_Support:1; USHORT PPMode_Assigned:1; @@ -2193,7 +2412,9 @@ USHORT PPMode_Assigned:1; USHORT HyperMemory_Support:1; USHORT HyperMemory_Size:4; - USHORT Reserved:3; + USHORT PostWithoutModeSet:1; + USHORT SCL2Redefined:1; + USHORT Reserved:1; #endif }ATOM_FIRMWARE_CAPABILITY; @@ -2418,7 +2639,8 @@ USHORT usLcdMaxPixelClockPLL_Output; // In MHz unit ULONG ulReserved4; //Was ulAsicMaximumVoltage ULONG ulMinPixelClockPLL_Output; //In 10Khz unit - ULONG ulReserved5; //Was usMinEngineClockPLL_Input and usMaxEngineClockPLL_Input + UCHAR ucRemoteDisplayConfig; + UCHAR ucReserved5[3]; //Was usMinEngineClockPLL_Input and usMaxEngineClockPLL_Input ULONG ulReserved6; //Was usMinEngineClockPLL_Output and usMinMemoryClockPLL_Input ULONG ulReserved7; //Was usMaxMemoryClockPLL_Input and usMinMemoryClockPLL_Output USHORT usReserved11; //Was usMaxPixelClock; //In 10Khz unit, Max. Pclk used only for DAC @@ -2438,6 +2660,11 @@ #define ATOM_FIRMWARE_INFO_LAST ATOM_FIRMWARE_INFO_V2_2 + +// definition of ucRemoteDisplayConfig +#define REMOTE_DISPLAY_DISABLE 0x00 +#define REMOTE_DISPLAY_ENABLE 0x01 + /****************************************************************************/ // Structures used in IntegratedSystemInfoTable /****************************************************************************/ @@ -2660,8 +2887,9 @@ #define INTEGRATED_SYSTEM_INFO__AMD_CPU__GREYHOUND 2 #define INTEGRATED_SYSTEM_INFO__AMD_CPU__K8 3 #define INTEGRATED_SYSTEM_INFO__AMD_CPU__PHARAOH 4 +#define INTEGRATED_SYSTEM_INFO__AMD_CPU__OROCHI 5 -#define INTEGRATED_SYSTEM_INFO__AMD_CPU__MAX_CODE INTEGRATED_SYSTEM_INFO__AMD_CPU__PHARAOH // this deff reflects max defined CPU code +#define INTEGRATED_SYSTEM_INFO__AMD_CPU__MAX_CODE INTEGRATED_SYSTEM_INFO__AMD_CPU__OROCHI // this deff reflects max defined CPU code #define SYSTEM_CONFIG_POWEREXPRESS_ENABLE 0x00000001 #define SYSTEM_CONFIG_RUN_AT_OVERDRIVE_ENGINE 0x00000002 @@ -2753,6 +2981,7 @@ #define ASIC_INT_DIG4_ENCODER_ID 0x0b #define ASIC_INT_DIG5_ENCODER_ID 0x0c #define ASIC_INT_DIG6_ENCODER_ID 0x0d +#define ASIC_INT_DIG7_ENCODER_ID 0x0e //define Encoder attribute #define ATOM_ANALOG_ENCODER 0 @@ -3226,15 +3455,23 @@ UCHAR ucPowerSequenceDIGONtoDE_in4Ms; UCHAR ucPowerSequenceDEtoVARY_BL_in4Ms; - UCHAR ucPowerSequenceDEtoDIGON_in4Ms; UCHAR ucPowerSequenceVARY_BLtoDE_in4Ms; + UCHAR ucPowerSequenceDEtoDIGON_in4Ms; UCHAR ucOffDelay_in4Ms; UCHAR ucPowerSequenceVARY_BLtoBLON_in4Ms; UCHAR ucPowerSequenceBLONtoVARY_BL_in4Ms; UCHAR ucReserved1; - ULONG ulReserved[4]; + UCHAR ucDPCD_eDP_CONFIGURATION_CAP; // dpcd 0dh + UCHAR ucDPCD_MAX_LINK_RATE; // dpcd 01h + UCHAR ucDPCD_MAX_LANE_COUNT; // dpcd 02h + UCHAR ucDPCD_MAX_DOWNSPREAD; // dpcd 03h + + USHORT usMaxPclkFreqInSingleLink; // Max PixelClock frequency in single link mode. + UCHAR uceDPToLVDSRxId; + UCHAR ucLcdReservd; + ULONG ulReserved[2]; }ATOM_LCD_INFO_V13; #define ATOM_LCD_INFO_LAST ATOM_LCD_INFO_V13 @@ -3273,6 +3510,11 @@ //Use this cap bit for a quick reference whether an embadded panel (LCD1 ) is LVDS or eDP. #define LCDPANEL_CAP_V13_eDP 0x4 // = LCDPANEL_CAP_eDP no change comparing to previous version +//uceDPToLVDSRxId +#define eDP_TO_LVDS_RX_DISABLE 0x00 // no eDP->LVDS translator chip +#define eDP_TO_LVDS_COMMON_ID 0x01 // common eDP->LVDS translator chip without AMD SW init +#define eDP_TO_LVDS_RT_ID 0x02 // RT tanslator which require AMD SW init + typedef struct _ATOM_PATCH_RECORD_MODE { UCHAR ucRecordType; @@ -3317,6 +3559,7 @@ #define LCD_CAP_RECORD_TYPE 3 #define LCD_FAKE_EDID_PATCH_RECORD_TYPE 4 #define LCD_PANEL_RESOLUTION_RECORD_TYPE 5 +#define LCD_EDID_OFFSET_PATCH_RECORD_TYPE 6 #define ATOM_RECORD_END_TYPE 0xFF /****************************Spread Spectrum Info Table Definitions **********************/ @@ -3528,6 +3771,7 @@ CAIL needs to claim an reserved area defined by FBAccessAreaOffset and usFBUsedbyDrvInKB in non VGA case.*/ +/***********************************************************************************/ #define ATOM_MAX_FIRMWARE_VRAM_USAGE_INFO 1 typedef struct _ATOM_FIRMWARE_VRAM_RESERVE_INFO @@ -3818,13 +4062,17 @@ ATOM_DP_CONN_CHANNEL_MAPPING asDPMapping; ATOM_DVI_CONN_CHANNEL_MAPPING asDVIMapping; }; - UCHAR ucReserved; - USHORT usReserved[2]; + UCHAR ucChPNInvert; // bit vector for up to 8 lanes, =0: P and N is not invert, =1 P and N is inverted + USHORT usCaps; + USHORT usReserved; }EXT_DISPLAY_PATH; #define NUMBER_OF_UCHAR_FOR_GUID 16 #define MAX_NUMBER_OF_EXT_DISPLAY_PATH 7 +//usCaps +#define EXT_DISPLAY_PATH_CAPS__HBR2_DISABLE 0x01 + typedef struct _ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO { ATOM_COMMON_TABLE_HEADER sHeader; @@ -3832,7 +4080,9 @@ EXT_DISPLAY_PATH sPath[MAX_NUMBER_OF_EXT_DISPLAY_PATH]; // total of fixed 7 entries. UCHAR ucChecksum; // a simple Checksum of the sum of whole structure equal to 0x0. UCHAR uc3DStereoPinId; // use for eDP panel - UCHAR Reserved [6]; // for potential expansion + UCHAR ucRemoteDisplayConfig; + UCHAR uceDPToLVDSRxId; + UCHAR Reserved[4]; // for potential expansion }ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO; //Related definitions, all records are different but they have a commond header @@ -3977,6 +4227,7 @@ #define GPIO_PIN_STATE_ACTIVE_HIGH 0x1 // Indexes to GPIO array in GLSync record +// GLSync record is for Frame Lock/Gen Lock feature. #define ATOM_GPIO_INDEX_GLSYNC_REFCLK 0 #define ATOM_GPIO_INDEX_GLSYNC_HSYNC 1 #define ATOM_GPIO_INDEX_GLSYNC_VSYNC 2 @@ -3984,7 +4235,9 @@ #define ATOM_GPIO_INDEX_GLSYNC_SWAP_GNT 4 #define ATOM_GPIO_INDEX_GLSYNC_INTERRUPT 5 #define ATOM_GPIO_INDEX_GLSYNC_V_RESET 6 -#define ATOM_GPIO_INDEX_GLSYNC_MAX 7 +#define ATOM_GPIO_INDEX_GLSYNC_SWAP_CNTL 7 +#define ATOM_GPIO_INDEX_GLSYNC_SWAP_SEL 8 +#define ATOM_GPIO_INDEX_GLSYNC_MAX 9 typedef struct _ATOM_ENCODER_DVO_CF_RECORD { @@ -3994,7 +4247,8 @@ }ATOM_ENCODER_DVO_CF_RECORD; // Bit maps for ATOM_ENCODER_CAP_RECORD.ucEncoderCap -#define ATOM_ENCODER_CAP_RECORD_HBR2 0x01 // DP1.2 HBR2 is supported by this path +#define ATOM_ENCODER_CAP_RECORD_HBR2 0x01 // DP1.2 HBR2 is supported by HW encoder +#define ATOM_ENCODER_CAP_RECORD_HBR2_EN 0x02 // DP1.2 HBR2 setting is qualified and HBR2 can be enabled typedef struct _ATOM_ENCODER_CAP_RECORD { @@ -4003,11 +4257,13 @@ USHORT usEncoderCap; struct { #if ATOM_BIG_ENDIAN - USHORT usReserved:15; // Bit1-15 may be defined for other capability in future + USHORT usReserved:14; // Bit1-15 may be defined for other capability in future + USHORT usHBR2En:1; // Bit1 is for DP1.2 HBR2 enable USHORT usHBR2Cap:1; // Bit0 is for DP1.2 HBR2 capability. #else USHORT usHBR2Cap:1; // Bit0 is for DP1.2 HBR2 capability. - USHORT usReserved:15; // Bit1-15 may be defined for other capability in future + USHORT usHBR2En:1; // Bit1 is for DP1.2 HBR2 enable + USHORT usReserved:14; // Bit1-15 may be defined for other capability in future #endif }; }; @@ -4157,6 +4413,7 @@ #define VOLTAGE_CONTROL_ID_VT1556M 0x07 #define VOLTAGE_CONTROL_ID_CHL822x 0x08 #define VOLTAGE_CONTROL_ID_VT1586M 0x09 +#define VOLTAGE_CONTROL_ID_UP1637 0x0A typedef struct _ATOM_VOLTAGE_OBJECT { @@ -4193,6 +4450,69 @@ USHORT usVoltage; }ATOM_LEAKID_VOLTAGE; +typedef struct _ATOM_VOLTAGE_OBJECT_HEADER_V3{ + UCHAR ucVoltageType; //Indicate Voltage Source: VDDC, MVDDC, MVDDQ or MVDDCI + UCHAR ucVoltageMode; //Indicate voltage control mode: Init/Set/Leakage/Set phase + USHORT usSize; //Size of Object +}ATOM_VOLTAGE_OBJECT_HEADER_V3; + +typedef struct _VOLTAGE_LUT_ENTRY_V2 +{ + ULONG ulVoltageId; // The Voltage ID which is used to program GPIO register + USHORT usVoltageValue; // The corresponding Voltage Value, in mV +}VOLTAGE_LUT_ENTRY_V2; + +typedef struct _LEAKAGE_VOLTAGE_LUT_ENTRY_V2 +{ + USHORT usVoltageLevel; // The Voltage ID which is used to program GPIO register + USHORT usVoltageId; + USHORT usLeakageId; // The corresponding Voltage Value, in mV +}LEAKAGE_VOLTAGE_LUT_ENTRY_V2; + +typedef struct _ATOM_I2C_VOLTAGE_OBJECT_V3 +{ + ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; + UCHAR ucVoltageRegulatorId; //Indicate Voltage Regulator Id + UCHAR ucVoltageControlI2cLine; + UCHAR ucVoltageControlAddress; + UCHAR ucVoltageControlOffset; + ULONG ulReserved; + VOLTAGE_LUT_ENTRY asVolI2cLut[1]; // end with 0xff +}ATOM_I2C_VOLTAGE_OBJECT_V3; + +typedef struct _ATOM_GPIO_VOLTAGE_OBJECT_V3 +{ + ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; + UCHAR ucVoltageGpioCntlId; // default is 0 which indicate control through CG VID mode + UCHAR ucGpioEntryNum; // indiate the entry numbers of Votlage/Gpio value Look up table + UCHAR ucPhaseDelay; // phase delay in unit of micro second + UCHAR ucReserved; + ULONG ulGpioMaskVal; // GPIO Mask value + VOLTAGE_LUT_ENTRY_V2 asVolGpioLut[1]; +}ATOM_GPIO_VOLTAGE_OBJECT_V3; + +typedef struct _ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 +{ + ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; + UCHAR ucLeakageCntlId; // default is 0 + UCHAR ucLeakageEntryNum; // indicate the entry number of LeakageId/Voltage Lut table + UCHAR ucReserved[2]; + ULONG ulMaxVoltageLevel; + LEAKAGE_VOLTAGE_LUT_ENTRY_V2 asLeakageIdLut[1]; +}ATOM_LEAKAGE_VOLTAGE_OBJECT_V3; + +typedef union _ATOM_VOLTAGE_OBJECT_V3{ + ATOM_GPIO_VOLTAGE_OBJECT_V3 asGpioVoltageObj; + ATOM_I2C_VOLTAGE_OBJECT_V3 asI2cVoltageObj; + ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 asLeakageObj; +}ATOM_VOLTAGE_OBJECT_V3; + +typedef struct _ATOM_VOLTAGE_OBJECT_INFO_V3_1 +{ + ATOM_COMMON_TABLE_HEADER sHeader; + ATOM_VOLTAGE_OBJECT_V3 asVoltageObj[3]; //Info for Voltage control +}ATOM_VOLTAGE_OBJECT_INFO_V3_1; + typedef struct _ATOM_ASIC_PROFILE_VOLTAGE { UCHAR ucProfileId; @@ -4305,7 +4625,18 @@ USHORT usHDMISSpreadRateIn10Hz; USHORT usDVISSPercentage; USHORT usDVISSpreadRateIn10Hz; - ULONG ulReserved3[21]; + ULONG SclkDpmBoostMargin; + ULONG SclkDpmThrottleMargin; + USHORT SclkDpmTdpLimitPG; + USHORT SclkDpmTdpLimitBoost; + ULONG ulBoostEngineCLock; + UCHAR ulBoostVid_2bit; + UCHAR EnableBoost; + USHORT GnbTdpLimit; + USHORT usMaxLVDSPclkFreqInSingleLink; + UCHAR ucLvdsMisc; + UCHAR ucLVDSReserved; + ULONG ulReserved3[15]; ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO sExtDispConnInfo; }ATOM_INTEGRATED_SYSTEM_INFO_V6; @@ -4313,9 +4644,16 @@ #define INTEGRATED_SYSTEM_INFO_V6_GPUCAPINFO__TMDSHDMI_COHERENT_SINGLEPLL_MODE 0x01 #define INTEGRATED_SYSTEM_INFO_V6_GPUCAPINFO__DISABLE_AUX_HW_MODE_DETECTION 0x08 -// ulOtherDisplayMisc -#define INTEGRATED_SYSTEM_INFO__GET_EDID_CALLBACK_FUNC_SUPPORT 0x01 - +//ucLVDSMisc: +#define SYS_INFO_LVDSMISC__888_FPDI_MODE 0x01 +#define SYS_INFO_LVDSMISC__DL_CH_SWAP 0x02 +#define SYS_INFO_LVDSMISC__888_BPC 0x04 +#define SYS_INFO_LVDSMISC__OVERRIDE_EN 0x08 +#define SYS_INFO_LVDSMISC__BLON_ACTIVE_LOW 0x10 + +// not used any more +#define SYS_INFO_LVDSMISC__VSYNC_ACTIVE_LOW 0x04 +#define SYS_INFO_LVDSMISC__HSYNC_ACTIVE_LOW 0x08 /********************************************************************************************************************** ATOM_INTEGRATED_SYSTEM_INFO_V6 Description @@ -4384,7 +4722,208 @@ ulCSR_M3_ARB_CNTL_DEFAULT[10]: Arrays with values for CSR M3 arbiter for default ulCSR_M3_ARB_CNTL_UVD[10]: Arrays with values for CSR M3 arbiter for UVD playback. ulCSR_M3_ARB_CNTL_FS3D[10]: Arrays with values for CSR M3 arbiter for Full Screen 3D applications. -sAvail_SCLK[5]: Arrays to provide available list of SLCK and corresponding voltage, order from low to high +sAvail_SCLK[5]: Arrays to provide availabe list of SLCK and corresponding voltage, order from low to high +ulGMCRestoreResetTime: GMC power restore and GMC reset time to calculate data reconnection latency. Unit in ns. +ulMinimumNClk: Minimum NCLK speed among all NB-Pstates to calcualte data reconnection latency. Unit in 10kHz. +ulIdleNClk: NCLK speed while memory runs in self-refresh state. Unit in 10kHz. +ulDDR_DLL_PowerUpTime: DDR PHY DLL power up time. Unit in ns. +ulDDR_PLL_PowerUpTime: DDR PHY PLL power up time. Unit in ns. +usPCIEClkSSPercentage: PCIE Clock Spred Spectrum Percentage in unit 0.01%; 100 mean 1%. +usPCIEClkSSType: PCIE Clock Spred Spectrum Type. 0 for Down spread(default); 1 for Center spread. +usLvdsSSPercentage: LVDS panel ( not include eDP ) Spread Spectrum Percentage in unit of 0.01%, =0, use VBIOS default setting. +usLvdsSSpreadRateIn10Hz: LVDS panel ( not include eDP ) Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. +usHDMISSPercentage: HDMI Spread Spectrum Percentage in unit 0.01%; 100 mean 1%, =0, use VBIOS default setting. +usHDMISSpreadRateIn10Hz: HDMI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. +usDVISSPercentage: DVI Spread Spectrum Percentage in unit 0.01%; 100 mean 1%, =0, use VBIOS default setting. +usDVISSpreadRateIn10Hz: DVI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. +usMaxLVDSPclkFreqInSingleLink: Max pixel clock LVDS panel single link, if=0 means VBIOS use default threhold, right now it is 85Mhz +ucLVDSMisc: [bit0] LVDS 888bit panel mode =0: LVDS 888 panel in LDI mode, =1: LVDS 888 panel in FPDI mode + [bit1] LVDS panel lower and upper link mapping =0: lower link and upper link not swap, =1: lower link and upper link are swapped + [bit2] LVDS 888bit per color mode =0: 666 bit per color =1:888 bit per color + [bit3] LVDS parameter override enable =0: ucLvdsMisc parameter are not used =1: ucLvdsMisc parameter should be used + [bit4] Polarity of signal sent to digital BLON output pin. =0: not inverted(active high) =1: inverted ( active low ) +**********************************************************************************************************************/ + +// this Table is used for Liano/Ontario APU +typedef struct _ATOM_FUSION_SYSTEM_INFO_V1 +{ + ATOM_INTEGRATED_SYSTEM_INFO_V6 sIntegratedSysInfo; + ULONG ulPowerplayTable[128]; +}ATOM_FUSION_SYSTEM_INFO_V1; +/********************************************************************************************************************** + ATOM_FUSION_SYSTEM_INFO_V1 Description +sIntegratedSysInfo: refer to ATOM_INTEGRATED_SYSTEM_INFO_V6 definition. +ulPowerplayTable[128]: This 512 bytes memory is used to save ATOM_PPLIB_POWERPLAYTABLE3, starting form ulPowerplayTable[0] +**********************************************************************************************************************/ + +// this IntegrateSystemInfoTable is used for Trinity APU +typedef struct _ATOM_INTEGRATED_SYSTEM_INFO_V1_7 +{ + ATOM_COMMON_TABLE_HEADER sHeader; + ULONG ulBootUpEngineClock; + ULONG ulDentistVCOFreq; + ULONG ulBootUpUMAClock; + ATOM_CLK_VOLT_CAPABILITY sDISPCLK_Voltage[4]; + ULONG ulBootUpReqDisplayVector; + ULONG ulOtherDisplayMisc; + ULONG ulGPUCapInfo; + ULONG ulSB_MMIO_Base_Addr; + USHORT usRequestedPWMFreqInHz; + UCHAR ucHtcTmpLmt; + UCHAR ucHtcHystLmt; + ULONG ulMinEngineClock; + ULONG ulSystemConfig; + ULONG ulCPUCapInfo; + USHORT usNBP0Voltage; + USHORT usNBP1Voltage; + USHORT usBootUpNBVoltage; + USHORT usExtDispConnInfoOffset; + USHORT usPanelRefreshRateRange; + UCHAR ucMemoryType; + UCHAR ucUMAChannelNumber; + UCHAR strVBIOSMsg[40]; + ULONG ulReserved[20]; + ATOM_AVAILABLE_SCLK_LIST sAvail_SCLK[5]; + ULONG ulGMCRestoreResetTime; + ULONG ulMinimumNClk; + ULONG ulIdleNClk; + ULONG ulDDR_DLL_PowerUpTime; + ULONG ulDDR_PLL_PowerUpTime; + USHORT usPCIEClkSSPercentage; + USHORT usPCIEClkSSType; + USHORT usLvdsSSPercentage; + USHORT usLvdsSSpreadRateIn10Hz; + USHORT usHDMISSPercentage; + USHORT usHDMISSpreadRateIn10Hz; + USHORT usDVISSPercentage; + USHORT usDVISSpreadRateIn10Hz; + ULONG SclkDpmBoostMargin; + ULONG SclkDpmThrottleMargin; + USHORT SclkDpmTdpLimitPG; + USHORT SclkDpmTdpLimitBoost; + ULONG ulBoostEngineCLock; + UCHAR ulBoostVid_2bit; + UCHAR EnableBoost; + USHORT GnbTdpLimit; + USHORT usMaxLVDSPclkFreqInSingleLink; + UCHAR ucLvdsMisc; + UCHAR ucLVDSReserved; + UCHAR ucLVDSPwrOnSeqDIGONtoDE_in4Ms; + UCHAR ucLVDSPwrOnSeqDEtoVARY_BL_in4Ms; + UCHAR ucLVDSPwrOffSeqVARY_BLtoDE_in4Ms; + UCHAR ucLVDSPwrOffSeqDEtoDIGON_in4Ms; + UCHAR ucLVDSOffToOnDelay_in4Ms; + UCHAR ucLVDSPwrOnSeqVARY_BLtoBLON_in4Ms; + UCHAR ucLVDSPwrOffSeqBLONtoVARY_BL_in4Ms; + UCHAR ucLVDSReserved1; + ULONG ulLCDBitDepthControlVal; + ULONG ulNbpStateMemclkFreq[4]; + USHORT usNBP2Voltage; + USHORT usNBP3Voltage; + ULONG ulNbpStateNClkFreq[4]; + UCHAR ucNBDPMEnable; + UCHAR ucReserved[3]; + UCHAR ucDPMState0VclkFid; + UCHAR ucDPMState0DclkFid; + UCHAR ucDPMState1VclkFid; + UCHAR ucDPMState1DclkFid; + UCHAR ucDPMState2VclkFid; + UCHAR ucDPMState2DclkFid; + UCHAR ucDPMState3VclkFid; + UCHAR ucDPMState3DclkFid; + ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO sExtDispConnInfo; +}ATOM_INTEGRATED_SYSTEM_INFO_V1_7; + +// ulOtherDisplayMisc +#define INTEGRATED_SYSTEM_INFO__GET_EDID_CALLBACK_FUNC_SUPPORT 0x01 +#define INTEGRATED_SYSTEM_INFO__GET_BOOTUP_DISPLAY_CALLBACK_FUNC_SUPPORT 0x02 +#define INTEGRATED_SYSTEM_INFO__GET_EXPANSION_CALLBACK_FUNC_SUPPORT 0x04 +#define INTEGRATED_SYSTEM_INFO__FAST_BOOT_SUPPORT 0x08 + +// ulGPUCapInfo +#define SYS_INFO_GPUCAPS__TMDSHDMI_COHERENT_SINGLEPLL_MODE 0x01 +#define SYS_INFO_GPUCAPS__DP_SINGLEPLL_MODE 0x02 +#define SYS_INFO_GPUCAPS__DISABLE_AUX_MODE_DETECT 0x08 + +/********************************************************************************************************************** + ATOM_INTEGRATED_SYSTEM_INFO_V1_7 Description +ulBootUpEngineClock: VBIOS bootup Engine clock frequency, in 10kHz unit. if it is equal 0, then VBIOS use pre-defined bootup engine clock +ulDentistVCOFreq: Dentist VCO clock in 10kHz unit. +ulBootUpUMAClock: System memory boot up clock frequency in 10Khz unit. +sDISPCLK_Voltage: Report Display clock voltage requirement. + +ulBootUpReqDisplayVector: VBIOS boot up display IDs, following are supported devices in Trinity projects: + ATOM_DEVICE_CRT1_SUPPORT 0x0001 + ATOM_DEVICE_DFP1_SUPPORT 0x0008 + ATOM_DEVICE_DFP6_SUPPORT 0x0040 + ATOM_DEVICE_DFP2_SUPPORT 0x0080 + ATOM_DEVICE_DFP3_SUPPORT 0x0200 + ATOM_DEVICE_DFP4_SUPPORT 0x0400 + ATOM_DEVICE_DFP5_SUPPORT 0x0800 + ATOM_DEVICE_LCD1_SUPPORT 0x0002 +ulOtherDisplayMisc: bit[0]=0: INT15 callback function Get LCD EDID ( ax=4e08, bl=1b ) is not supported by SBIOS. + =1: INT15 callback function Get LCD EDID ( ax=4e08, bl=1b ) is supported by SBIOS. + bit[1]=0: INT15 callback function Get boot display( ax=4e08, bl=01h) is not supported by SBIOS + =1: INT15 callback function Get boot display( ax=4e08, bl=01h) is supported by SBIOS + bit[2]=0: INT15 callback function Get panel Expansion ( ax=4e08, bl=02h) is not supported by SBIOS + =1: INT15 callback function Get panel Expansion ( ax=4e08, bl=02h) is supported by SBIOS + bit[3]=0: VBIOS fast boot is disable + =1: VBIOS fast boot is enable. ( VBIOS skip display device detection in every set mode if LCD panel is connect and LID is open) +ulGPUCapInfo: bit[0]=0: TMDS/HDMI Coherent Mode use cascade PLL mode. + =1: TMDS/HDMI Coherent Mode use signel PLL mode. + bit[1]=0: DP mode use cascade PLL mode ( New for Trinity ) + =1: DP mode use single PLL mode + bit[3]=0: Enable AUX HW mode detection logic + =1: Disable AUX HW mode detection logic + +ulSB_MMIO_Base_Addr: Physical Base address to SB MMIO space. Driver needs to initialize it for SMU usage. + +usRequestedPWMFreqInHz: When it's set to 0x0 by SBIOS: the LCD BackLight is not controlled by GPU(SW). + Any attempt to change BL using VBIOS function or enable VariBri from PP table is not effective since ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU==0; + + When it's set to a non-zero frequency, the BackLight is controlled by GPU (SW) in one of two ways below: + 1. SW uses the GPU BL PWM output to control the BL, in chis case, this non-zero frequency determines what freq GPU should use; + VBIOS will set up proper PWM frequency and ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU==1,as the result, + Changing BL using VBIOS function is functional in both driver and non-driver present environment; + and enabling VariBri under the driver environment from PP table is optional. + + 2. SW uses other means to control BL (like DPCD),this non-zero frequency serves as a flag only indicating + that BL control from GPU is expected. + VBIOS will NOT set up PWM frequency but make ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU==1 + Changing BL using VBIOS function could be functional in both driver and non-driver present environment,but + it's per platform + and enabling VariBri under the driver environment from PP table is optional. + +ucHtcTmpLmt: Refer to D18F3x64 bit[22:16], HtcTmpLmt. + Threshold on value to enter HTC_active state. +ucHtcHystLmt: Refer to D18F3x64 bit[27:24], HtcHystLmt. + To calculate threshold off value to exit HTC_active state, which is Threshold on vlaue minus ucHtcHystLmt. +ulMinEngineClock: Minimum SCLK allowed in 10kHz unit. This is calculated based on WRCK Fuse settings. +ulSystemConfig: Bit[0]=0: PCIE Power Gating Disabled + =1: PCIE Power Gating Enabled + Bit[1]=0: DDR-DLL shut-down feature disabled. + 1: DDR-DLL shut-down feature enabled. + Bit[2]=0: DDR-PLL Power down feature disabled. + 1: DDR-PLL Power down feature enabled. +ulCPUCapInfo: TBD +usNBP0Voltage: VID for voltage on NB P0 State +usNBP1Voltage: VID for voltage on NB P1 State +usNBP2Voltage: VID for voltage on NB P2 State +usNBP3Voltage: VID for voltage on NB P3 State +usBootUpNBVoltage: Voltage Index of GNB voltage configured by SBIOS, which is suffcient to support VBIOS DISPCLK requirement. +usExtDispConnInfoOffset: Offset to sExtDispConnInfo inside the structure +usPanelRefreshRateRange: Bit vector for LCD supported refresh rate range. If DRR is requestd by the platform, at least two bits need to be set + to indicate a range. + SUPPORTED_LCD_REFRESHRATE_30Hz 0x0004 + SUPPORTED_LCD_REFRESHRATE_40Hz 0x0008 + SUPPORTED_LCD_REFRESHRATE_50Hz 0x0010 + SUPPORTED_LCD_REFRESHRATE_60Hz 0x0020 +ucMemoryType: [3:0]=1:DDR1;=2:DDR2;=3:DDR3.[7:4] is reserved. +ucUMAChannelNumber: System memory channel numbers. +ulCSR_M3_ARB_CNTL_DEFAULT[10]: Arrays with values for CSR M3 arbiter for default +ulCSR_M3_ARB_CNTL_UVD[10]: Arrays with values for CSR M3 arbiter for UVD playback. +ulCSR_M3_ARB_CNTL_FS3D[10]: Arrays with values for CSR M3 arbiter for Full Screen 3D applications. +sAvail_SCLK[5]: Arrays to provide availabe list of SLCK and corresponding voltage, order from low to high ulGMCRestoreResetTime: GMC power restore and GMC reset time to calculate data reconnection latency. Unit in ns. ulMinimumNClk: Minimum NCLK speed among all NB-Pstates to calcualte data reconnection latency. Unit in 10kHz. ulIdleNClk: NCLK speed while memory runs in self-refresh state. Unit in 10kHz. @@ -4398,6 +4937,41 @@ usHDMISSpreadRateIn10Hz: HDMI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. usDVISSPercentage: DVI Spread Spectrum Percentage in unit 0.01%; 100 mean 1%, =0, use VBIOS default setting. usDVISSpreadRateIn10Hz: DVI Spread Spectrum frequency in unit of 10Hz, =0, use VBIOS default setting. +usMaxLVDSPclkFreqInSingleLink: Max pixel clock LVDS panel single link, if=0 means VBIOS use default threhold, right now it is 85Mhz +ucLVDSMisc: [bit0] LVDS 888bit panel mode =0: LVDS 888 panel in LDI mode, =1: LVDS 888 panel in FPDI mode + [bit1] LVDS panel lower and upper link mapping =0: lower link and upper link not swap, =1: lower link and upper link are swapped + [bit2] LVDS 888bit per color mode =0: 666 bit per color =1:888 bit per color + [bit3] LVDS parameter override enable =0: ucLvdsMisc parameter are not used =1: ucLvdsMisc parameter should be used + [bit4] Polarity of signal sent to digital BLON output pin. =0: not inverted(active high) =1: inverted ( active low ) +ucLVDSPwrOnSeqDIGONtoDE_in4Ms: LVDS power up sequence time in unit of 4ms, time delay from DIGON signal active to data enable signal active( DE ). + =0 mean use VBIOS default which is 8 ( 32ms ). The LVDS power up sequence is as following: DIGON->DE->VARY_BL->BLON. + This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. +ucLVDSPwrOnDEtoVARY_BL_in4Ms: LVDS power up sequence time in unit of 4ms., time delay from DE( data enable ) active to Vary Brightness enable signal active( VARY_BL ). + =0 mean use VBIOS default which is 90 ( 360ms ). The LVDS power up sequence is as following: DIGON->DE->VARY_BL->BLON. + This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. + +ucLVDSPwrOffVARY_BLtoDE_in4Ms: LVDS power down sequence time in unit of 4ms, time delay from data enable ( DE ) signal off to LCDVCC (DIGON) off. + =0 mean use VBIOS default delay which is 8 ( 32ms ). The LVDS power down sequence is as following: BLON->VARY_BL->DE->DIGON + This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. + +ucLVDSPwrOffDEtoDIGON_in4Ms: LVDS power down sequence time in unit of 4ms, time delay from vary brightness enable signal( VARY_BL) off to data enable ( DE ) signal off. + =0 mean use VBIOS default which is 90 ( 360ms ). The LVDS power down sequence is as following: BLON->VARY_BL->DE->DIGON + This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. + +ucLVDSOffToOnDelay_in4Ms: LVDS power down sequence time in unit of 4ms. Time delay from DIGON signal off to DIGON signal active. + =0 means to use VBIOS default delay which is 125 ( 500ms ). + This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. + +ucLVDSPwrOnVARY_BLtoBLON_in4Ms: LVDS power up sequence time in unit of 4ms. Time delay from VARY_BL signal on to DLON signal active. + =0 means to use VBIOS default delay which is 0 ( 0ms ). + This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. + +ucLVDSPwrOffBLONtoVARY_BL_in4Ms: LVDS power down sequence time in unit of 4ms. Time delay from BLON signal off to VARY_BL signal off. + =0 means to use VBIOS default delay which is 0 ( 0ms ). + This parameter is used by VBIOS only. VBIOS will patch LVDS_InfoTable. + +ulNbpStateMemclkFreq[4]: system memory clock frequncey in unit of 10Khz in different NB pstate. + **********************************************************************************************************************/ /**************************************************************************/ @@ -4459,6 +5033,7 @@ #define ASIC_INTERNAL_SS_ON_DP 7 #define ASIC_INTERNAL_SS_ON_DCPLL 8 #define ASIC_EXTERNAL_SS_ON_DP_CLOCK 9 +#define ASIC_INTERNAL_VCE_SS 10 typedef struct _ATOM_ASIC_SS_ASSIGNMENT_V2 { @@ -4520,7 +5095,7 @@ #define ATOM_DOS_MODE_INFO_DEF 7 #define ATOM_I2C_CHANNEL_STATUS_DEF 8 #define ATOM_I2C_CHANNEL_STATUS1_DEF 9 - +#define ATOM_INTERNAL_TIMER_DEF 10 // BIOS_0_SCRATCH Definition #define ATOM_S0_CRT1_MONO 0x00000001L @@ -4648,6 +5223,7 @@ #define ATOM_S2_DEVICE_DPMS_MASKw1 0x3FF #define ATOM_S2_FORCEDLOWPWRMODE_STATE_MASKb3 0x0C #define ATOM_S2_FORCEDLOWPWRMODE_STATE_CHANGEb3 0x10 +#define ATOM_S2_TMDS_COHERENT_MODEb3 0x10 // used by VBIOS code only, use coherent mode for TMDS/HDMI mode #define ATOM_S2_VRI_BRIGHT_ENABLEb3 0x20 #define ATOM_S2_ROTATION_STATE_MASKb3 0xC0 @@ -5038,6 +5614,23 @@ USHORT usDeviceId; // Active Device Id for this surface. If no device, set to 0. }ENABLE_GRAPH_SURFACE_PARAMETERS_V1_3; +typedef struct _ENABLE_GRAPH_SURFACE_PARAMETERS_V1_4 +{ + USHORT usHight; // Image Hight + USHORT usWidth; // Image Width + USHORT usGraphPitch; + UCHAR ucColorDepth; + UCHAR ucPixelFormat; + UCHAR ucSurface; // Surface 1 or 2 + UCHAR ucEnable; // ATOM_ENABLE or ATOM_DISABLE + UCHAR ucModeType; + UCHAR ucReserved; +}ENABLE_GRAPH_SURFACE_PARAMETERS_V1_4; + +// ucEnable +#define ATOM_GRAPH_CONTROL_SET_PITCH 0x0f +#define ATOM_GRAPH_CONTROL_SET_DISP_START 0x10 + typedef struct _ENABLE_GRAPH_SURFACE_PS_ALLOCATION { ENABLE_GRAPH_SURFACE_PARAMETERS sSetSurface; @@ -5057,6 +5650,58 @@ USHORT usY_Size; }GET_DISPLAY_SURFACE_SIZE_PARAMETERS; +typedef struct _GET_DISPLAY_SURFACE_SIZE_PARAMETERS_V2 +{ + union{ + USHORT usX_Size; //When use as input parameter, usX_Size indicates which CRTC + USHORT usSurface; + }; + USHORT usY_Size; + USHORT usDispXStart; + USHORT usDispYStart; +}GET_DISPLAY_SURFACE_SIZE_PARAMETERS_V2; + + +typedef struct _PALETTE_DATA_CONTROL_PARAMETERS_V3 +{ + UCHAR ucLutId; + UCHAR ucAction; + USHORT usLutStartIndex; + USHORT usLutLength; + USHORT usLutOffsetInVram; +}PALETTE_DATA_CONTROL_PARAMETERS_V3; + +// ucAction: +#define PALETTE_DATA_AUTO_FILL 1 +#define PALETTE_DATA_READ 2 +#define PALETTE_DATA_WRITE 3 + + +typedef struct _INTERRUPT_SERVICE_PARAMETERS_V2 +{ + UCHAR ucInterruptId; + UCHAR ucServiceId; + UCHAR ucStatus; + UCHAR ucReserved; +}INTERRUPT_SERVICE_PARAMETER_V2; + +// ucInterruptId +#define HDP1_INTERRUPT_ID 1 +#define HDP2_INTERRUPT_ID 2 +#define HDP3_INTERRUPT_ID 3 +#define HDP4_INTERRUPT_ID 4 +#define HDP5_INTERRUPT_ID 5 +#define HDP6_INTERRUPT_ID 6 +#define SW_INTERRUPT_ID 11 + +// ucAction +#define INTERRUPT_SERVICE_GEN_SW_INT 1 +#define INTERRUPT_SERVICE_GET_STATUS 2 + + // ucStatus +#define INTERRUPT_STATUS__INT_TRIGGER 1 +#define INTERRUPT_STATUS__HPD_HIGH 2 + typedef struct _INDIRECT_IO_ACCESS { ATOM_COMMON_TABLE_HEADER sHeader; @@ -5189,7 +5834,7 @@ #define END_OF_REG_INDEX_BLOCK 0x0ffff #define END_OF_REG_DATA_BLOCK 0x00000000 -#define ATOM_INIT_REG_MASK_FLAG 0x80 +#define ATOM_INIT_REG_MASK_FLAG 0x80 //Not used in BIOS #define CLOCK_RANGE_HIGHEST 0x00ffffff #define VALUE_DWORD SIZEOF ULONG @@ -5229,6 +5874,7 @@ #define _128Mx8 0x51 #define _128Mx16 0x52 #define _256Mx8 0x61 +#define _256Mx16 0x62 #define SAMSUNG 0x1 #define INFINEON 0x2 @@ -5585,7 +6231,7 @@ ULONG ulChannelMapCfg; // mmMC_SHARED_CHREMAP USHORT usModuleSize; // Size of ATOM_VRAM_MODULE_V7 USHORT usPrivateReserved; // MC_ARB_RAMCFG (includes NOOFBANK,NOOFRANKS,NOOFROWS,NOOFCOLS) - USHORT usReserved; + USHORT usEnableChannels; // bit vector which indicate which channels are enabled UCHAR ucExtMemoryID; // Current memory module ID UCHAR ucMemoryType; // MEM_TYPE_DDR2/DDR3/GDDR3/GDDR5 UCHAR ucChannelNum; // Number of mem. channels supported in this module @@ -5597,7 +6243,8 @@ UCHAR ucNPL_RT; // Round trip delay (MC_SEQ_CAS_TIMING [28:24]:TCL=CL+NPL_RT-2). Always 2. UCHAR ucPreamble; // [7:4] Write Preamble, [3:0] Read Preamble UCHAR ucMemorySize; // Total memory size in unit of 16MB for CONFIG_MEMSIZE - bit[23:0] zeros - UCHAR ucReserved[3]; + USHORT usSEQSettingOffset; + UCHAR ucReserved; // Memory Module specific values USHORT usEMRS2Value; // EMRS2/MR2 Value. USHORT usEMRS3Value; // EMRS3/MR3 Value. @@ -5633,10 +6280,10 @@ typedef struct _ATOM_VRAM_INFO_V4 { ATOM_COMMON_TABLE_HEADER sHeader; - USHORT usMemAdjustTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory vendor specific MC adjust setting - USHORT usMemClkPatchTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory clock specific MC setting - USHORT usRerseved; - UCHAR ucMemDQ7_0ByteRemap; // DQ line byte remap, =0: Memory Data line BYTE0, =1: BYTE1, =2: BYTE2, =3: BYTE3 + USHORT usMemAdjustTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory vendor specific MC adjust setting + USHORT usMemClkPatchTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory clock specific MC setting + USHORT usRerseved; + UCHAR ucMemDQ7_0ByteRemap; // DQ line byte remap, =0: Memory Data line BYTE0, =1: BYTE1, =2: BYTE2, =3: BYTE3 ULONG ulMemDQ7_0BitRemap; // each DQ line ( 7~0) use 3bits, like: DQ0=Bit[2:0], DQ1:[5:3], ... DQ7:[23:21] UCHAR ucReservde[4]; UCHAR ucNumOfVRAMModule; @@ -5648,9 +6295,10 @@ typedef struct _ATOM_VRAM_INFO_HEADER_V2_1 { ATOM_COMMON_TABLE_HEADER sHeader; - USHORT usMemAdjustTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory vendor specific MC adjust setting - USHORT usMemClkPatchTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory clock specific MC setting - USHORT usReserved[4]; + USHORT usMemAdjustTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory vendor specific MC adjust setting + USHORT usMemClkPatchTblOffset; // offset of ATOM_INIT_REG_BLOCK structure for memory clock specific MC setting + USHORT usPerBytePresetOffset; // offset of ATOM_INIT_REG_BLOCK structure for Per Byte Offset Preset Settings + USHORT usReserved[3]; UCHAR ucNumOfVRAMModule; // indicate number of VRAM module UCHAR ucMemoryClkPatchTblVer; // version of memory AC timing register list UCHAR ucVramModuleVer; // indicate ATOM_VRAM_MODUE version @@ -5935,6 +6583,52 @@ ASIC_ENCODER_INFO asEncoderInfo[1]; }ATOM_DISP_OUT_INFO_V2; + +typedef struct _ATOM_DISP_CLOCK_ID { + UCHAR ucPpllId; + UCHAR ucPpllAttribute; +}ATOM_DISP_CLOCK_ID; + +// ucPpllAttribute +#define CLOCK_SOURCE_SHAREABLE 0x01 +#define CLOCK_SOURCE_DP_MODE 0x02 +#define CLOCK_SOURCE_NONE_DP_MODE 0x04 + +//DispOutInfoTable +typedef struct _ASIC_TRANSMITTER_INFO_V2 +{ + USHORT usTransmitterObjId; + USHORT usDispClkIdOffset; // point to clock source id list supported by Encoder Object + UCHAR ucTransmitterCmdTblId; + UCHAR ucConfig; + UCHAR ucEncoderID; // available 1st encoder ( default ) + UCHAR ucOptionEncoderID; // available 2nd encoder ( optional ) + UCHAR uc2ndEncoderID; + UCHAR ucReserved; +}ASIC_TRANSMITTER_INFO_V2; + +typedef struct _ATOM_DISP_OUT_INFO_V3 +{ + ATOM_COMMON_TABLE_HEADER sHeader; + USHORT ptrTransmitterInfo; + USHORT ptrEncoderInfo; + USHORT ptrMainCallParserFar; // direct address of main parser call in VBIOS binary. + USHORT usReserved; + UCHAR ucDCERevision; + UCHAR ucMaxDispEngineNum; + UCHAR ucMaxActiveDispEngineNum; + UCHAR ucMaxPPLLNum; + UCHAR ucCoreRefClkSource; // value of CORE_REF_CLK_SOURCE + UCHAR ucReserved[3]; + ASIC_TRANSMITTER_INFO_V2 asTransmitterInfo[1]; // for alligment only +}ATOM_DISP_OUT_INFO_V3; + +typedef enum CORE_REF_CLK_SOURCE{ + CLOCK_SRC_XTALIN=0, + CLOCK_SRC_XO_IN=1, + CLOCK_SRC_XO_IN2=2, +}CORE_REF_CLK_SOURCE; + // DispDevicePriorityInfo typedef struct _ATOM_DISPLAY_DEVICE_PRIORITY_INFO { @@ -6070,6 +6764,39 @@ #define HW_I2C_READ 0 #define I2C_2BYTE_ADDR 0x02 +/****************************************************************************/ +// Structures used by HW_Misc_OperationTable +/****************************************************************************/ +typedef struct _ATOM_HW_MISC_OPERATION_INPUT_PARAMETER_V1_1 +{ + UCHAR ucCmd; // Input: To tell which action to take + UCHAR ucReserved[3]; + ULONG ulReserved; +}ATOM_HW_MISC_OPERATION_INPUT_PARAMETER_V1_1; + +typedef struct _ATOM_HW_MISC_OPERATION_OUTPUT_PARAMETER_V1_1 +{ + UCHAR ucReturnCode; // Output: Return value base on action was taken + UCHAR ucReserved[3]; + ULONG ulReserved; +}ATOM_HW_MISC_OPERATION_OUTPUT_PARAMETER_V1_1; + +// Actions code +#define ATOM_GET_SDI_SUPPORT 0xF0 + +// Return code +#define ATOM_UNKNOWN_CMD 0 +#define ATOM_FEATURE_NOT_SUPPORTED 1 +#define ATOM_FEATURE_SUPPORTED 2 + +typedef struct _ATOM_HW_MISC_OPERATION_PS_ALLOCATION +{ + ATOM_HW_MISC_OPERATION_INPUT_PARAMETER_V1_1 sInput_Output; + PROCESS_I2C_CHANNEL_TRANSACTION_PARAMETERS sReserved; +}ATOM_HW_MISC_OPERATION_PS_ALLOCATION; + +/****************************************************************************/ + typedef struct _SET_HWBLOCK_INSTANCE_PARAMETER_V2 { UCHAR ucHWBlkInst; // HW block instance, 0, 1, 2, ... @@ -6090,6 +6817,52 @@ #define SELECT_CRTC_PIXEL_RATE 7 #define SELECT_VGA_BLK 8 +// DIGTransmitterInfoTable structure used to program UNIPHY settings +typedef struct _DIG_TRANSMITTER_INFO_HEADER_V3_1{ + ATOM_COMMON_TABLE_HEADER sHeader; + USHORT usDPVsPreEmphSettingOffset; // offset of PHY_ANALOG_SETTING_INFO * with DP Voltage Swing and Pre-Emphasis for each Link clock + USHORT usPhyAnalogRegListOffset; // offset of CLOCK_CONDITION_REGESTER_INFO* with None-DP mode Analog Setting's register Info + USHORT usPhyAnalogSettingOffset; // offset of CLOCK_CONDITION_SETTING_ENTRY* with None-DP mode Analog Setting for each link clock range + USHORT usPhyPllRegListOffset; // offset of CLOCK_CONDITION_REGESTER_INFO* with Phy Pll register Info + USHORT usPhyPllSettingOffset; // offset of CLOCK_CONDITION_SETTING_ENTRY* with Phy Pll Settings +}DIG_TRANSMITTER_INFO_HEADER_V3_1; + +typedef struct _CLOCK_CONDITION_REGESTER_INFO{ + USHORT usRegisterIndex; + UCHAR ucStartBit; + UCHAR ucEndBit; +}CLOCK_CONDITION_REGESTER_INFO; + +typedef struct _CLOCK_CONDITION_SETTING_ENTRY{ + USHORT usMaxClockFreq; + UCHAR ucEncodeMode; + UCHAR ucPhySel; + ULONG ulAnalogSetting[1]; +}CLOCK_CONDITION_SETTING_ENTRY; + +typedef struct _CLOCK_CONDITION_SETTING_INFO{ + USHORT usEntrySize; + CLOCK_CONDITION_SETTING_ENTRY asClkCondSettingEntry[1]; +}CLOCK_CONDITION_SETTING_INFO; + +typedef struct _PHY_CONDITION_REG_VAL{ + ULONG ulCondition; + ULONG ulRegVal; +}PHY_CONDITION_REG_VAL; + +typedef struct _PHY_CONDITION_REG_INFO{ + USHORT usRegIndex; + USHORT usSize; + PHY_CONDITION_REG_VAL asRegVal[1]; +}PHY_CONDITION_REG_INFO; + +typedef struct _PHY_ANALOG_SETTING_INFO{ + UCHAR ucEncodeMode; + UCHAR ucPhySel; + USHORT usSize; + PHY_CONDITION_REG_INFO asAnalogSetting[1]; +}PHY_ANALOG_SETTING_INFO; + /****************************************************************************/ //Portion VI: Definitinos for vbios MC scratch registers that driver used /****************************************************************************/ @@ -7020,4 +7793,68 @@ #pragma pack() // BIOS data must use byte aligment +// +// AMD ACPI Table +// +#pragma pack(1) + +typedef struct { + ULONG Signature; + ULONG TableLength; //Length + UCHAR Revision; + UCHAR Checksum; + UCHAR OemId[6]; + UCHAR OemTableId[8]; //UINT64 OemTableId; + ULONG OemRevision; + ULONG CreatorId; + ULONG CreatorRevision; +} AMD_ACPI_DESCRIPTION_HEADER; +/* +//EFI_ACPI_DESCRIPTION_HEADER from AcpiCommon.h +typedef struct { + UINT32 Signature; //0x0 + UINT32 Length; //0x4 + UINT8 Revision; //0x8 + UINT8 Checksum; //0x9 + UINT8 OemId[6]; //0xA + UINT64 OemTableId; //0x10 + UINT32 OemRevision; //0x18 + UINT32 CreatorId; //0x1C + UINT32 CreatorRevision; //0x20 +}EFI_ACPI_DESCRIPTION_HEADER; +*/ +typedef struct { + AMD_ACPI_DESCRIPTION_HEADER SHeader; + UCHAR TableUUID[16]; //0x24 + ULONG VBIOSImageOffset; //0x34. Offset to the first GOP_VBIOS_CONTENT block from the beginning of the stucture. + ULONG Lib1ImageOffset; //0x38. Offset to the first GOP_LIB1_CONTENT block from the beginning of the stucture. + ULONG Reserved[4]; //0x3C +}UEFI_ACPI_VFCT; + +typedef struct { + ULONG PCIBus; //0x4C + ULONG PCIDevice; //0x50 + ULONG PCIFunction; //0x54 + USHORT VendorID; //0x58 + USHORT DeviceID; //0x5A + USHORT SSVID; //0x5C + USHORT SSID; //0x5E + ULONG Revision; //0x60 + ULONG ImageLength; //0x64 +}VFCT_IMAGE_HEADER; + + +typedef struct { + VFCT_IMAGE_HEADER VbiosHeader; + UCHAR VbiosContent[1]; +}GOP_VBIOS_CONTENT; + +typedef struct { + VFCT_IMAGE_HEADER Lib1Header; + UCHAR Lib1Content[1]; +}GOP_LIB1_CONTENT; + +#pragma pack() + + #endif /* _ATOMBIOS_H */ --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_benchmark.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_benchmark.c @@ -139,13 +139,15 @@ sdomain, ddomain, "dma"); } - time = radeon_benchmark_do_move(rdev, size, saddr, daddr, - RADEON_BENCHMARK_COPY_BLIT, n); - if (time < 0) - goto out_cleanup; - if (time > 0) - radeon_benchmark_log_results(n, size, time, - sdomain, ddomain, "blit"); + if (rdev->asic->copy_blit) { + time = radeon_benchmark_do_move(rdev, size, saddr, daddr, + RADEON_BENCHMARK_COPY_BLIT, n); + if (time < 0) + goto out_cleanup; + if (time > 0) + radeon_benchmark_log_results(n, size, time, + sdomain, ddomain, "blit"); + } out_cleanup: if (sobj) { --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_bios.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_bios.c @@ -32,6 +32,7 @@ #include #include +#include /* * BIOS. */ @@ -98,16 +99,81 @@ return true; } +#ifdef CONFIG_ACPI /* ATRM is used to get the BIOS on the discrete cards in * dual-gpu systems. */ +/* retrieve the ROM in 4k blocks */ +#define ATRM_BIOS_PAGE 4096 +/** + * radeon_atrm_call - fetch a chunk of the vbios + * + * @atrm_handle: acpi ATRM handle + * @bios: vbios image pointer + * @offset: offset of vbios image data to fetch + * @len: length of vbios image data to fetch + * + * Executes ATRM to fetch a chunk of the discrete + * vbios image on PX systems (all asics). + * Returns the length of the buffer fetched. + */ +static int radeon_atrm_call(acpi_handle atrm_handle, uint8_t *bios, + int offset, int len) +{ + acpi_status status; + union acpi_object atrm_arg_elements[2], *obj; + struct acpi_object_list atrm_arg; + struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL}; + + atrm_arg.count = 2; + atrm_arg.pointer = &atrm_arg_elements[0]; + + atrm_arg_elements[0].type = ACPI_TYPE_INTEGER; + atrm_arg_elements[0].integer.value = offset; + + atrm_arg_elements[1].type = ACPI_TYPE_INTEGER; + atrm_arg_elements[1].integer.value = len; + + status = acpi_evaluate_object(atrm_handle, NULL, &atrm_arg, &buffer); + if (ACPI_FAILURE(status)) { + printk("failed to evaluate ATRM got %s\n", acpi_format_exception(status)); + return -ENODEV; + } + + obj = (union acpi_object *)buffer.pointer; + memcpy(bios+offset, obj->buffer.pointer, obj->buffer.length); + len = obj->buffer.length; + kfree(buffer.pointer); + return len; +} + static bool radeon_atrm_get_bios(struct radeon_device *rdev) { int ret; int size = 256 * 1024; int i; + struct pci_dev *pdev = NULL; + acpi_handle dhandle, atrm_handle; + acpi_status status; + bool found = false; - if (!radeon_atrm_supported(rdev->pdev)) + /* ATRM is for the discrete card only */ + if (rdev->flags & RADEON_IS_IGP) + return false; + + while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev)) != NULL) { + dhandle = DEVICE_ACPI_HANDLE(&pdev->dev); + if (!dhandle) + continue; + + status = acpi_get_handle(dhandle, "ATRM", &atrm_handle); + if (!ACPI_FAILURE(status)) { + found = true; + break; + } + } + + if (!found) return false; rdev->bios = kmalloc(size, GFP_KERNEL); @@ -117,10 +183,11 @@ } for (i = 0; i < size / ATRM_BIOS_PAGE; i++) { - ret = radeon_atrm_get_bios_chunk(rdev->bios, - (i * ATRM_BIOS_PAGE), - ATRM_BIOS_PAGE); - if (ret <= 0) + ret = radeon_atrm_call(atrm_handle, + rdev->bios, + (i * ATRM_BIOS_PAGE), + ATRM_BIOS_PAGE); + if (ret < ATRM_BIOS_PAGE) break; } @@ -130,6 +197,12 @@ } return true; } +#else +static inline bool radeon_atrm_get_bios(struct radeon_device *rdev) +{ + return false; +} +#endif static bool ni_read_disabled_bios(struct radeon_device *rdev) { @@ -476,6 +549,61 @@ return legacy_read_disabled_bios(rdev); } +#ifdef CONFIG_ACPI +static bool radeon_acpi_vfct_bios(struct radeon_device *rdev) +{ + bool ret = false; + struct acpi_table_header *hdr; + acpi_size tbl_size; + UEFI_ACPI_VFCT *vfct; + GOP_VBIOS_CONTENT *vbios; + VFCT_IMAGE_HEADER *vhdr; + + if (!ACPI_SUCCESS(acpi_get_table_with_size("VFCT", 1, &hdr, &tbl_size))) + return false; + if (tbl_size < sizeof(UEFI_ACPI_VFCT)) { + DRM_ERROR("ACPI VFCT table present but broken (too short #1)\n"); + goto out_unmap; + } + + vfct = (UEFI_ACPI_VFCT *)hdr; + if (vfct->VBIOSImageOffset + sizeof(VFCT_IMAGE_HEADER) > tbl_size) { + DRM_ERROR("ACPI VFCT table present but broken (too short #2)\n"); + goto out_unmap; + } + + vbios = (GOP_VBIOS_CONTENT *)((char *)hdr + vfct->VBIOSImageOffset); + vhdr = &vbios->VbiosHeader; + DRM_INFO("ACPI VFCT contains a BIOS for %02x:%02x.%d %04x:%04x, size %d\n", + vhdr->PCIBus, vhdr->PCIDevice, vhdr->PCIFunction, + vhdr->VendorID, vhdr->DeviceID, vhdr->ImageLength); + + if (vhdr->PCIBus != rdev->pdev->bus->number || + vhdr->PCIDevice != PCI_SLOT(rdev->pdev->devfn) || + vhdr->PCIFunction != PCI_FUNC(rdev->pdev->devfn) || + vhdr->VendorID != rdev->pdev->vendor || + vhdr->DeviceID != rdev->pdev->device) { + DRM_INFO("ACPI VFCT table is not for this card\n"); + goto out_unmap; + }; + + if (vfct->VBIOSImageOffset + sizeof(VFCT_IMAGE_HEADER) + vhdr->ImageLength > tbl_size) { + DRM_ERROR("ACPI VFCT image truncated\n"); + goto out_unmap; + } + + rdev->bios = kmemdup(&vbios->VbiosContent, vhdr->ImageLength, GFP_KERNEL); + ret = !!rdev->bios; + +out_unmap: + return ret; +} +#else +static inline bool radeon_acpi_vfct_bios(struct radeon_device *rdev) +{ + return false; +} +#endif bool radeon_get_bios(struct radeon_device *rdev) { @@ -484,6 +612,8 @@ r = radeon_atrm_get_bios(rdev); if (r == false) + r = radeon_acpi_vfct_bios(rdev); + if (r == false) r = igp_read_bios_from_vram(rdev); if (r == false) r = radeon_read_bios(rdev); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/atombios_encoders.c +++ linux-3.2.0/drivers/gpu/drm/radeon/atombios_encoders.c @@ -111,7 +111,7 @@ ((radeon_encoder->active_device & (ATOM_DEVICE_DFP_SUPPORT | ATOM_DEVICE_LCD_SUPPORT)) || (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE))) { struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); - radeon_dp_set_link_config(connector, mode); + radeon_dp_set_link_config(connector, adjusted_mode); } return true; @@ -246,6 +246,10 @@ if (!atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, &crev)) return; + /* some R4xx chips have the wrong frev */ + if (rdev->family <= CHIP_RV410) + frev = 1; + switch (frev) { case 1: switch (crev) { @@ -1340,6 +1344,8 @@ struct drm_device *dev = encoder->dev; struct radeon_device *rdev = dev->dev_private; struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); + struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); + struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); struct radeon_connector *radeon_connector = NULL; struct radeon_connector_atom_dig *radeon_dig_connector = NULL; @@ -1351,19 +1357,44 @@ switch (mode) { case DRM_MODE_DPMS_ON: - /* some early dce3.2 boards have a bug in their transmitter control table */ - if ((rdev->family == CHIP_RV710) || (rdev->family == CHIP_RV730)) + if (ASIC_IS_DCE41(rdev) || ASIC_IS_DCE5(rdev)) { + if (!connector) + dig->panel_mode = DP_PANEL_MODE_EXTERNAL_DP_MODE; + else + dig->panel_mode = radeon_dp_get_panel_mode(encoder, connector); + + /* setup and enable the encoder */ + atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0); + atombios_dig_encoder_setup(encoder, + ATOM_ENCODER_CMD_SETUP_PANEL_MODE, + dig->panel_mode); + if (ext_encoder) { + if (ASIC_IS_DCE41(rdev)) + atombios_external_encoder_setup(encoder, ext_encoder, + EXTERNAL_ENCODER_ACTION_V3_ENCODER_SETUP); + } + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0); + } else if (ASIC_IS_DCE4(rdev)) { + /* setup and enable the encoder */ + atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0); + /* enable the transmitter */ atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0); - else atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE_OUTPUT, 0, 0); + } else { + /* setup and enable the encoder and transmitter */ + atombios_dig_encoder_setup(encoder, ATOM_ENABLE, 0); + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_SETUP, 0, 0); + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0); + /* some early dce3.2 boards have a bug in their transmitter control table */ + if ((rdev->family != CHIP_RV710) && (rdev->family != CHIP_RV730)) + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE_OUTPUT, 0, 0); + } if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { atombios_set_edp_panel_power(connector, ATOM_TRANSMITTER_ACTION_POWER_ON); radeon_dig_connector->edp_on = true; } - if (ASIC_IS_DCE4(rdev)) - atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0); radeon_dp_link_train(encoder, connector); if (ASIC_IS_DCE4(rdev)) atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0); @@ -1374,7 +1405,19 @@ case DRM_MODE_DPMS_STANDBY: case DRM_MODE_DPMS_SUSPEND: case DRM_MODE_DPMS_OFF: - atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE_OUTPUT, 0, 0); + if (ASIC_IS_DCE41(rdev) || ASIC_IS_DCE5(rdev)) { + /* disable the transmitter */ + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0); + } else if (ASIC_IS_DCE4(rdev)) { + /* disable the transmitter */ + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE_OUTPUT, 0, 0); + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0); + } else { + /* disable the encoder and transmitter */ + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE_OUTPUT, 0, 0); + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0); + atombios_dig_encoder_setup(encoder, ATOM_DISABLE, 0); + } if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { if (ASIC_IS_DCE4(rdev)) atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0); @@ -1799,10 +1842,12 @@ struct drm_device *dev = encoder->dev; struct radeon_device *rdev = dev->dev_private; struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); - struct drm_encoder *ext_encoder = radeon_get_external_encoder(encoder); radeon_encoder->pixel_clock = adjusted_mode->clock; + /* need to call this here rather than in prepare() since we need some crtc info */ + radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); + if (ASIC_IS_AVIVO(rdev) && !ASIC_IS_DCE4(rdev)) { if (radeon_encoder->active_device & (ATOM_DEVICE_CV_SUPPORT | ATOM_DEVICE_TV_SUPPORT)) atombios_yuv_setup(encoder, true); @@ -1821,24 +1866,7 @@ case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: - if (ASIC_IS_DCE4(rdev)) { - /* disable the transmitter */ - atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0); - /* setup and enable the encoder */ - atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0); - - /* enable the transmitter */ - atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0); - } else { - /* disable the encoder and transmitter */ - atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0); - atombios_dig_encoder_setup(encoder, ATOM_DISABLE, 0); - - /* setup and enable the encoder and transmitter */ - atombios_dig_encoder_setup(encoder, ATOM_ENABLE, 0); - atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_SETUP, 0, 0); - atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0); - } + /* handled in dpms */ break; case ENCODER_OBJECT_ID_INTERNAL_DDI: case ENCODER_OBJECT_ID_INTERNAL_DVO1: @@ -1859,14 +1887,6 @@ break; } - if (ext_encoder) { - if (ASIC_IS_DCE41(rdev)) - atombios_external_encoder_setup(encoder, ext_encoder, - EXTERNAL_ENCODER_ACTION_V3_ENCODER_SETUP); - else - atombios_external_encoder_setup(encoder, ext_encoder, ATOM_ENABLE); - } - atombios_apply_encoder_quirks(encoder, adjusted_mode); if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) { @@ -2039,7 +2059,6 @@ } radeon_atom_output_lock(encoder, true); - radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); if (connector) { struct radeon_connector *radeon_connector = to_radeon_connector(connector); @@ -2060,6 +2079,7 @@ static void radeon_atom_encoder_commit(struct drm_encoder *encoder) { + /* need to call this here as we need the crtc set up */ radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_ON); radeon_atom_output_lock(encoder, false); } @@ -2100,14 +2120,7 @@ case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: - if (ASIC_IS_DCE4(rdev)) - /* disable the transmitter */ - atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0); - else { - /* disable the encoder and transmitter */ - atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0); - atombios_dig_encoder_setup(encoder, ATOM_DISABLE, 0); - } + /* handled in dpms */ break; case ENCODER_OBJECT_ID_INTERNAL_DDI: case ENCODER_OBJECT_ID_INTERNAL_DVO1: --- linux-3.2.0.orig/drivers/gpu/drm/radeon/r600_hdmi.c +++ linux-3.2.0/drivers/gpu/drm/radeon/r600_hdmi.c @@ -196,6 +196,13 @@ frame[0xD] = (right_bar >> 8); r600_hdmi_infoframe_checksum(0x82, 0x02, 0x0D, frame); + /* Our header values (type, version, length) should be alright, Intel + * is using the same. Checksum function also seems to be OK, it works + * fine for audio infoframe. However calculated value is always lower + * by 2 in comparison to fglrx. It breaks displaying anything in case + * of TVs that strictly check the checksum. Hack it manually here to + * workaround this issue. */ + frame[0x0] += 2; WREG32(offset+R600_HDMI_VIDEOINFOFRAME_0, frame[0x0] | (frame[0x1] << 8) | (frame[0x2] << 16) | (frame[0x3] << 24)); @@ -499,7 +506,7 @@ offset = radeon_encoder->hdmi_offset; if (ASIC_IS_DCE32(rdev) && !ASIC_IS_DCE4(rdev)) { WREG32_P(radeon_encoder->hdmi_config_offset + 0x4, 0x1, ~0x1); - } else if (rdev->family >= CHIP_R600 && !ASIC_IS_DCE3(rdev)) { + } else if (ASIC_IS_DCE2(rdev) && !ASIC_IS_DCE3(rdev)) { switch (radeon_encoder->encoder_id) { case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1: WREG32_P(AVIVO_TMDSA_CNTL, 0x4, ~0x4); @@ -565,7 +572,7 @@ if (ASIC_IS_DCE32(rdev) && !ASIC_IS_DCE4(rdev)) { WREG32_P(radeon_encoder->hdmi_config_offset + 0x4, 0, ~0x1); - } else if (rdev->family >= CHIP_R600 && !ASIC_IS_DCE3(rdev)) { + } else if (ASIC_IS_DCE2(rdev) && !ASIC_IS_DCE3(rdev)) { switch (radeon_encoder->encoder_id) { case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1: WREG32_P(AVIVO_TMDSA_CNTL, 0, ~0x4); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_atpx_handler.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_atpx_handler.c @@ -30,56 +30,8 @@ /* handle for device - and atpx */ acpi_handle dhandle; acpi_handle atpx_handle; - acpi_handle atrm_handle; } radeon_atpx_priv; -/* retrieve the ROM in 4k blocks */ -static int radeon_atrm_call(acpi_handle atrm_handle, uint8_t *bios, - int offset, int len) -{ - acpi_status status; - union acpi_object atrm_arg_elements[2], *obj; - struct acpi_object_list atrm_arg; - struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL}; - - atrm_arg.count = 2; - atrm_arg.pointer = &atrm_arg_elements[0]; - - atrm_arg_elements[0].type = ACPI_TYPE_INTEGER; - atrm_arg_elements[0].integer.value = offset; - - atrm_arg_elements[1].type = ACPI_TYPE_INTEGER; - atrm_arg_elements[1].integer.value = len; - - status = acpi_evaluate_object(atrm_handle, NULL, &atrm_arg, &buffer); - if (ACPI_FAILURE(status)) { - printk("failed to evaluate ATRM got %s\n", acpi_format_exception(status)); - return -ENODEV; - } - - obj = (union acpi_object *)buffer.pointer; - memcpy(bios+offset, obj->buffer.pointer, len); - kfree(buffer.pointer); - return len; -} - -bool radeon_atrm_supported(struct pci_dev *pdev) -{ - /* get the discrete ROM only via ATRM */ - if (!radeon_atpx_priv.atpx_detected) - return false; - - if (radeon_atpx_priv.dhandle == DEVICE_ACPI_HANDLE(&pdev->dev)) - return false; - return true; -} - - -int radeon_atrm_get_bios_chunk(uint8_t *bios, int offset, int len) -{ - return radeon_atrm_call(radeon_atpx_priv.atrm_handle, bios, offset, len); -} - static int radeon_atpx_get_version(acpi_handle handle) { acpi_status status; @@ -197,7 +149,7 @@ static bool radeon_atpx_pci_probe_handle(struct pci_dev *pdev) { - acpi_handle dhandle, atpx_handle, atrm_handle; + acpi_handle dhandle, atpx_handle; acpi_status status; dhandle = DEVICE_ACPI_HANDLE(&pdev->dev); @@ -208,13 +160,8 @@ if (ACPI_FAILURE(status)) return false; - status = acpi_get_handle(dhandle, "ATRM", &atrm_handle); - if (ACPI_FAILURE(status)) - return false; - radeon_atpx_priv.dhandle = dhandle; radeon_atpx_priv.atpx_handle = atpx_handle; - radeon_atpx_priv.atrm_handle = atrm_handle; return true; } --- linux-3.2.0.orig/drivers/gpu/drm/radeon/atombios_dp.c +++ linux-3.2.0/drivers/gpu/drm/radeon/atombios_dp.c @@ -22,6 +22,7 @@ * * Authors: Dave Airlie * Alex Deucher + * Jerome Glisse */ #include "drmP.h" #include "radeon_drm.h" @@ -549,8 +550,8 @@ return false; } -static void radeon_dp_set_panel_mode(struct drm_encoder *encoder, - struct drm_connector *connector) +int radeon_dp_get_panel_mode(struct drm_encoder *encoder, + struct drm_connector *connector) { struct drm_device *dev = encoder->dev; struct radeon_device *rdev = dev->dev_private; @@ -558,28 +559,33 @@ int panel_mode = DP_PANEL_MODE_EXTERNAL_DP_MODE; if (!ASIC_IS_DCE4(rdev)) - return; + return panel_mode; if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) == ENCODER_OBJECT_ID_NUTMEG) panel_mode = DP_PANEL_MODE_INTERNAL_DP1_MODE; else if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) == - ENCODER_OBJECT_ID_TRAVIS) - panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE; - else if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { + ENCODER_OBJECT_ID_TRAVIS) { + u8 id[6]; + int i; + for (i = 0; i < 6; i++) + id[i] = radeon_read_dpcd_reg(radeon_connector, 0x503 + i); + if (id[0] == 0x73 && + id[1] == 0x69 && + id[2] == 0x76 && + id[3] == 0x61 && + id[4] == 0x72 && + id[5] == 0x54) + panel_mode = DP_PANEL_MODE_INTERNAL_DP1_MODE; + else + panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE; + } else if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { u8 tmp = radeon_read_dpcd_reg(radeon_connector, DP_EDP_CONFIGURATION_CAP); if (tmp & 1) panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE; } - atombios_dig_encoder_setup(encoder, - ATOM_ENCODER_CMD_SETUP_PANEL_MODE, - panel_mode); - - if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) && - (panel_mode == DP_PANEL_MODE_INTERNAL_DP2_MODE)) { - radeon_write_dpcd_reg(radeon_connector, DP_EDP_CONFIGURATION_SET, 1); - } + return panel_mode; } void radeon_dp_set_link_config(struct drm_connector *connector, @@ -629,7 +635,6 @@ ret = radeon_dp_aux_native_read(radeon_connector, DP_LANE0_1_STATUS, link_status, DP_LINK_STATUS_SIZE, 100); if (ret <= 0) { - DRM_ERROR("displayport link status failed\n"); return false; } @@ -717,6 +722,8 @@ static int radeon_dp_link_train_init(struct radeon_dp_link_train_info *dp_info) { + struct radeon_encoder *radeon_encoder = to_radeon_encoder(dp_info->encoder); + struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; u8 tmp; /* power up the sink */ @@ -732,7 +739,10 @@ radeon_write_dpcd_reg(dp_info->radeon_connector, DP_DOWNSPREAD_CTRL, 0); - radeon_dp_set_panel_mode(dp_info->encoder, dp_info->connector); + if ((dp_info->connector->connector_type == DRM_MODE_CONNECTOR_eDP) && + (dig->panel_mode == DP_PANEL_MODE_INTERNAL_DP2_MODE)) { + radeon_write_dpcd_reg(dp_info->radeon_connector, DP_EDP_CONFIGURATION_SET, 1); + } /* set the lane count on the sink */ tmp = dp_info->dp_lane_count; @@ -802,8 +812,10 @@ else mdelay(dp_info->rd_interval * 4); - if (!radeon_dp_get_link_status(dp_info->radeon_connector, dp_info->link_status)) + if (!radeon_dp_get_link_status(dp_info->radeon_connector, dp_info->link_status)) { + DRM_ERROR("displayport link status failed\n"); break; + } if (dp_clock_recovery_ok(dp_info->link_status, dp_info->dp_lane_count)) { clock_recovery = true; @@ -865,8 +877,10 @@ else mdelay(dp_info->rd_interval * 4); - if (!radeon_dp_get_link_status(dp_info->radeon_connector, dp_info->link_status)) + if (!radeon_dp_get_link_status(dp_info->radeon_connector, dp_info->link_status)) { + DRM_ERROR("displayport link status failed\n"); break; + } if (dp_channel_eq_ok(dp_info->link_status, dp_info->dp_lane_count)) { channel_eq = true; --- linux-3.2.0.orig/drivers/gpu/drm/radeon/evergreen_reg.h +++ linux-3.2.0/drivers/gpu/drm/radeon/evergreen_reg.h @@ -210,7 +210,10 @@ #define EVERGREEN_CRTC_CONTROL 0x6e70 # define EVERGREEN_CRTC_MASTER_EN (1 << 0) # define EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE (1 << 24) +#define EVERGREEN_CRTC_BLANK_CONTROL 0x6e74 +# define EVERGREEN_CRTC_BLANK_DATA_EN (1 << 8) #define EVERGREEN_CRTC_STATUS 0x6e8c +# define EVERGREEN_CRTC_V_BLANK (1 << 0) #define EVERGREEN_CRTC_STATUS_POSITION 0x6e90 #define EVERGREEN_MASTER_UPDATE_MODE 0x6ef8 #define EVERGREEN_CRTC_UPDATE_LOCK 0x6ed4 --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_cursor.c +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_cursor.c @@ -151,7 +151,9 @@ uint32_t height) { struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); + struct radeon_device *rdev = crtc->dev->dev_private; struct drm_gem_object *obj; + struct radeon_bo *robj; uint64_t gpu_addr; int ret; @@ -173,7 +175,15 @@ return -ENOENT; } - ret = radeon_gem_object_pin(obj, RADEON_GEM_DOMAIN_VRAM, &gpu_addr); + robj = gem_to_radeon_bo(obj); + ret = radeon_bo_reserve(robj, false); + if (unlikely(ret != 0)) + goto fail; + /* Only 27 bit offset for legacy cursor */ + ret = radeon_bo_pin_restricted(robj, RADEON_GEM_DOMAIN_VRAM, + ASIC_IS_AVIVO(rdev) ? 0 : 1 << 27, + &gpu_addr); + radeon_bo_unreserve(robj); if (ret) goto fail; @@ -181,7 +191,6 @@ radeon_crtc->cursor_height = height; radeon_lock_cursor(crtc, true); - /* XXX only 27 bit offset for legacy cursor */ radeon_set_cursor(crtc, obj, gpu_addr); radeon_show_cursor(crtc); radeon_lock_cursor(crtc, false); @@ -248,8 +257,14 @@ if (!(cursor_end & 0x7f)) w--; } - if (w <= 0) + if (w <= 0) { w = 1; + cursor_end = x - xorigin + w; + if (!(cursor_end & 0x7f)) { + x--; + WARN_ON_ONCE(x < 0); + } + } } } --- linux-3.2.0.orig/drivers/gpu/drm/radeon/evergreen.c +++ linux-3.2.0/drivers/gpu/drm/radeon/evergreen.c @@ -37,6 +37,16 @@ #define EVERGREEN_PFP_UCODE_SIZE 1120 #define EVERGREEN_PM4_UCODE_SIZE 1376 +static const u32 crtc_offsets[6] = +{ + EVERGREEN_CRTC0_REGISTER_OFFSET, + EVERGREEN_CRTC1_REGISTER_OFFSET, + EVERGREEN_CRTC2_REGISTER_OFFSET, + EVERGREEN_CRTC3_REGISTER_OFFSET, + EVERGREEN_CRTC4_REGISTER_OFFSET, + EVERGREEN_CRTC5_REGISTER_OFFSET +}; + static void evergreen_gpu_init(struct radeon_device *rdev); void evergreen_fini(struct radeon_device *rdev); void evergreen_pcie_gen2_enable(struct radeon_device *rdev); @@ -66,6 +76,27 @@ } } +void dce4_wait_for_vblank(struct radeon_device *rdev, int crtc) +{ + int i; + + if (crtc >= rdev->num_crtc) + return; + + if (RREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[crtc]) & EVERGREEN_CRTC_MASTER_EN) { + for (i = 0; i < rdev->usec_timeout; i++) { + if (!(RREG32(EVERGREEN_CRTC_STATUS + crtc_offsets[crtc]) & EVERGREEN_CRTC_V_BLANK)) + break; + udelay(1); + } + for (i = 0; i < rdev->usec_timeout; i++) { + if (RREG32(EVERGREEN_CRTC_STATUS + crtc_offsets[crtc]) & EVERGREEN_CRTC_V_BLANK) + break; + udelay(1); + } + } +} + void evergreen_pre_page_flip(struct radeon_device *rdev, int crtc) { /* enable the pflip int */ @@ -381,6 +412,16 @@ list_for_each_entry(connector, &dev->mode_config.connector_list, head) { struct radeon_connector *radeon_connector = to_radeon_connector(connector); + + if (connector->connector_type == DRM_MODE_CONNECTOR_eDP || + connector->connector_type == DRM_MODE_CONNECTOR_LVDS) { + /* don't try to enable hpd on eDP or LVDS avoid breaking the + * aux dp channel on imac and help (but not completely fix) + * https://bugzilla.redhat.com/show_bug.cgi?id=726143 + * also avoid interrupt storms during dpms. + */ + continue; + } switch (radeon_connector->hpd.hpd) { case RADEON_HPD_1: WREG32(DC_HPD1_CONTROL, tmp); @@ -977,6 +1018,11 @@ WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp); WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp); WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp); + if ((rdev->family == CHIP_JUNIPER) || + (rdev->family == CHIP_CYPRESS) || + (rdev->family == CHIP_HEMLOCK) || + (rdev->family == CHIP_BARTS)) + WREG32(MC_VM_MD_L1_TLB3_CNTL, tmp); } WREG32(MC_VM_MB_L1_TLB0_CNTL, tmp); WREG32(MC_VM_MB_L1_TLB1_CNTL, tmp); @@ -1060,175 +1106,94 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *save) { - save->vga_control[0] = RREG32(D1VGA_CONTROL); - save->vga_control[1] = RREG32(D2VGA_CONTROL); + u32 crtc_enabled, tmp, frame_count, blackout; + int i, j; + save->vga_render_control = RREG32(VGA_RENDER_CONTROL); save->vga_hdp_control = RREG32(VGA_HDP_CONTROL); - save->crtc_control[0] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET); - save->crtc_control[1] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET); - if (rdev->num_crtc >= 4) { - save->vga_control[2] = RREG32(EVERGREEN_D3VGA_CONTROL); - save->vga_control[3] = RREG32(EVERGREEN_D4VGA_CONTROL); - save->crtc_control[2] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET); - save->crtc_control[3] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET); - } - if (rdev->num_crtc >= 6) { - save->vga_control[4] = RREG32(EVERGREEN_D5VGA_CONTROL); - save->vga_control[5] = RREG32(EVERGREEN_D6VGA_CONTROL); - save->crtc_control[4] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET); - save->crtc_control[5] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET); - } - /* Stop all video */ + /* disable VGA render */ WREG32(VGA_RENDER_CONTROL, 0); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC0_REGISTER_OFFSET, 1); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC1_REGISTER_OFFSET, 1); - if (rdev->num_crtc >= 4) { - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC2_REGISTER_OFFSET, 1); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC3_REGISTER_OFFSET, 1); - } - if (rdev->num_crtc >= 6) { - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC4_REGISTER_OFFSET, 1); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC5_REGISTER_OFFSET, 1); - } - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, 0); - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, 0); - if (rdev->num_crtc >= 4) { - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, 0); - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, 0); - } - if (rdev->num_crtc >= 6) { - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, 0); - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, 0); - } - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC0_REGISTER_OFFSET, 0); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC1_REGISTER_OFFSET, 0); - if (rdev->num_crtc >= 4) { - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC2_REGISTER_OFFSET, 0); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC3_REGISTER_OFFSET, 0); - } - if (rdev->num_crtc >= 6) { - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC4_REGISTER_OFFSET, 0); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC5_REGISTER_OFFSET, 0); + /* blank the display controllers */ + for (i = 0; i < rdev->num_crtc; i++) { + crtc_enabled = RREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i]) & EVERGREEN_CRTC_MASTER_EN; + if (crtc_enabled) { + save->crtc_enabled[i] = true; + tmp = RREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i]); + if (!(tmp & EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE)) { + dce4_wait_for_vblank(rdev, i); + tmp |= EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE; + WREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i], tmp); + } + /* wait for the next frame */ + frame_count = radeon_get_vblank_counter(rdev, i); + for (j = 0; j < rdev->usec_timeout; j++) { + if (radeon_get_vblank_counter(rdev, i) != frame_count) + break; + udelay(1); + } + } else { + save->crtc_enabled[i] = false; + } } - WREG32(D1VGA_CONTROL, 0); - WREG32(D2VGA_CONTROL, 0); - if (rdev->num_crtc >= 4) { - WREG32(EVERGREEN_D3VGA_CONTROL, 0); - WREG32(EVERGREEN_D4VGA_CONTROL, 0); - } - if (rdev->num_crtc >= 6) { - WREG32(EVERGREEN_D5VGA_CONTROL, 0); - WREG32(EVERGREEN_D6VGA_CONTROL, 0); + evergreen_mc_wait_for_idle(rdev); + + blackout = RREG32(MC_SHARED_BLACKOUT_CNTL); + if ((blackout & BLACKOUT_MODE_MASK) != 1) { + /* Block CPU access */ + WREG32(BIF_FB_EN, 0); + /* blackout the MC */ + blackout &= ~BLACKOUT_MODE_MASK; + WREG32(MC_SHARED_BLACKOUT_CNTL, blackout | 1); } + /* wait for the MC to settle */ + udelay(100); } void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *save) { - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC0_REGISTER_OFFSET, - upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC0_REGISTER_OFFSET, - upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS + EVERGREEN_CRTC0_REGISTER_OFFSET, - (u32)rdev->mc.vram_start); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS + EVERGREEN_CRTC0_REGISTER_OFFSET, - (u32)rdev->mc.vram_start); - - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC1_REGISTER_OFFSET, - upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC1_REGISTER_OFFSET, - upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS + EVERGREEN_CRTC1_REGISTER_OFFSET, - (u32)rdev->mc.vram_start); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS + EVERGREEN_CRTC1_REGISTER_OFFSET, - (u32)rdev->mc.vram_start); - - if (rdev->num_crtc >= 4) { - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC2_REGISTER_OFFSET, - upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC2_REGISTER_OFFSET, - upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS + EVERGREEN_CRTC2_REGISTER_OFFSET, - (u32)rdev->mc.vram_start); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS + EVERGREEN_CRTC2_REGISTER_OFFSET, - (u32)rdev->mc.vram_start); - - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC3_REGISTER_OFFSET, - upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC3_REGISTER_OFFSET, - upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS + EVERGREEN_CRTC3_REGISTER_OFFSET, - (u32)rdev->mc.vram_start); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS + EVERGREEN_CRTC3_REGISTER_OFFSET, - (u32)rdev->mc.vram_start); - } - if (rdev->num_crtc >= 6) { - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC4_REGISTER_OFFSET, - upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC4_REGISTER_OFFSET, - upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS + EVERGREEN_CRTC4_REGISTER_OFFSET, - (u32)rdev->mc.vram_start); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS + EVERGREEN_CRTC4_REGISTER_OFFSET, - (u32)rdev->mc.vram_start); + u32 tmp, frame_count; + int i, j; - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC5_REGISTER_OFFSET, + /* update crtc base addresses */ + for (i = 0; i < rdev->num_crtc; i++) { + WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS_HIGH + crtc_offsets[i], upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS_HIGH + EVERGREEN_CRTC5_REGISTER_OFFSET, + WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS_HIGH + crtc_offsets[i], upper_32_bits(rdev->mc.vram_start)); - WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS + EVERGREEN_CRTC5_REGISTER_OFFSET, + WREG32(EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS + crtc_offsets[i], (u32)rdev->mc.vram_start); - WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS + EVERGREEN_CRTC5_REGISTER_OFFSET, + WREG32(EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS + crtc_offsets[i], (u32)rdev->mc.vram_start); } - WREG32(EVERGREEN_VGA_MEMORY_BASE_ADDRESS_HIGH, upper_32_bits(rdev->mc.vram_start)); WREG32(EVERGREEN_VGA_MEMORY_BASE_ADDRESS, (u32)rdev->mc.vram_start); - /* Unlock host access */ + + /* unblackout the MC */ + tmp = RREG32(MC_SHARED_BLACKOUT_CNTL); + tmp &= ~BLACKOUT_MODE_MASK; + WREG32(MC_SHARED_BLACKOUT_CNTL, tmp); + /* allow CPU access */ + WREG32(BIF_FB_EN, FB_READ_EN | FB_WRITE_EN); + + for (i = 0; i < rdev->num_crtc; i++) { + if (save->crtc_enabled[i]) { + tmp = RREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i]); + tmp &= ~EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE; + WREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i], tmp); + /* wait for the next frame */ + frame_count = radeon_get_vblank_counter(rdev, i); + for (j = 0; j < rdev->usec_timeout; j++) { + if (radeon_get_vblank_counter(rdev, i) != frame_count) + break; + udelay(1); + } + } + } + /* Unlock vga access */ WREG32(VGA_HDP_CONTROL, save->vga_hdp_control); mdelay(1); - /* Restore video state */ - WREG32(D1VGA_CONTROL, save->vga_control[0]); - WREG32(D2VGA_CONTROL, save->vga_control[1]); - if (rdev->num_crtc >= 4) { - WREG32(EVERGREEN_D3VGA_CONTROL, save->vga_control[2]); - WREG32(EVERGREEN_D4VGA_CONTROL, save->vga_control[3]); - } - if (rdev->num_crtc >= 6) { - WREG32(EVERGREEN_D5VGA_CONTROL, save->vga_control[4]); - WREG32(EVERGREEN_D6VGA_CONTROL, save->vga_control[5]); - } - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC0_REGISTER_OFFSET, 1); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC1_REGISTER_OFFSET, 1); - if (rdev->num_crtc >= 4) { - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC2_REGISTER_OFFSET, 1); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC3_REGISTER_OFFSET, 1); - } - if (rdev->num_crtc >= 6) { - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC4_REGISTER_OFFSET, 1); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC5_REGISTER_OFFSET, 1); - } - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, save->crtc_control[0]); - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, save->crtc_control[1]); - if (rdev->num_crtc >= 4) { - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, save->crtc_control[2]); - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, save->crtc_control[3]); - } - if (rdev->num_crtc >= 6) { - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, save->crtc_control[4]); - WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, save->crtc_control[5]); - } - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC0_REGISTER_OFFSET, 0); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC1_REGISTER_OFFSET, 0); - if (rdev->num_crtc >= 4) { - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC2_REGISTER_OFFSET, 0); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC3_REGISTER_OFFSET, 0); - } - if (rdev->num_crtc >= 6) { - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC4_REGISTER_OFFSET, 0); - WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC5_REGISTER_OFFSET, 0); - } WREG32(VGA_RENDER_CONTROL, save->vga_render_control); } @@ -1777,7 +1742,7 @@ case CHIP_SUMO: rdev->config.evergreen.num_ses = 1; rdev->config.evergreen.max_pipes = 4; - rdev->config.evergreen.max_tile_pipes = 2; + rdev->config.evergreen.max_tile_pipes = 4; if (rdev->pdev->device == 0x9648) rdev->config.evergreen.max_simds = 3; else if ((rdev->pdev->device == 0x9647) || @@ -1866,7 +1831,7 @@ break; case CHIP_CAICOS: rdev->config.evergreen.num_ses = 1; - rdev->config.evergreen.max_pipes = 4; + rdev->config.evergreen.max_pipes = 2; rdev->config.evergreen.max_tile_pipes = 2; rdev->config.evergreen.max_simds = 2; rdev->config.evergreen.max_backends = 1 * rdev->config.evergreen.num_ses; @@ -2074,9 +2039,20 @@ /* num banks is 8 on all fusion asics. 0 = 4, 1 = 8, 2 = 16 */ if (rdev->flags & RADEON_IS_IGP) rdev->config.evergreen.tile_config |= 1 << 4; - else - rdev->config.evergreen.tile_config |= - ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) << 4; + else { + switch ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) { + case 0: /* four banks */ + rdev->config.evergreen.tile_config |= 0 << 4; + break; + case 1: /* eight banks */ + rdev->config.evergreen.tile_config |= 1 << 4; + break; + case 2: /* sixteen banks */ + default: + rdev->config.evergreen.tile_config |= 2 << 4; + break; + } + } rdev->config.evergreen.tile_config |= ((mc_arb_ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT) << 8; rdev->config.evergreen.tile_config |= @@ -2108,9 +2084,9 @@ WREG32(CC_SYS_RB_BACKEND_DISABLE, rb); WREG32(GC_USER_RB_BACKEND_DISABLE, rb); WREG32(CC_GC_SHADER_PIPE_CONFIG, sp); - } + } - grbm_gfx_index |= SE_BROADCAST_WRITES; + grbm_gfx_index = INSTANCE_BROADCAST_WRITES | SE_BROADCAST_WRITES; WREG32(GRBM_GFX_INDEX, grbm_gfx_index); WREG32(RLC_GFX_INDEX, grbm_gfx_index); @@ -2140,6 +2116,9 @@ smx_dc_ctl0 |= NUMBER_OF_SETS(rdev->config.evergreen.sx_num_of_sets); WREG32(SMX_DC_CTL0, smx_dc_ctl0); + if (rdev->family <= CHIP_SUMO2) + WREG32(SMX_SAR_CTL0, 0x00010000); + WREG32(SX_EXPORT_BUFFER_SIZES, (COLOR_BUFFER_SIZE((rdev->config.evergreen.sx_max_export_size / 4) - 1) | POSITION_BUFFER_SIZE((rdev->config.evergreen.sx_max_export_pos_size / 4) - 1) | SMX_BUFFER_SIZE((rdev->config.evergreen.sx_max_export_smx_size / 4) - 1))); @@ -3107,6 +3086,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + r = r600_irq_init(rdev); if (r) { DRM_ERROR("radeon: IH init failed (%d).\n", r); @@ -3239,10 +3224,6 @@ if (r) return r; - r = radeon_irq_kms_init(rdev); - if (r) - return r; - rdev->cp.ring_obj = NULL; r600_ring_init(rdev, 1024 * 1024); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/evergreend.h +++ linux-3.2.0/drivers/gpu/drm/radeon/evergreend.h @@ -77,6 +77,10 @@ #define CONFIG_MEMSIZE 0x5428 +#define BIF_FB_EN 0x5490 +#define FB_READ_EN (1 << 0) +#define FB_WRITE_EN (1 << 1) + #define CP_ME_CNTL 0x86D8 #define CP_ME_HALT (1 << 28) #define CP_PFP_HALT (1 << 26) @@ -194,6 +198,9 @@ #define NOOFCHAN_MASK 0x00003000 #define MC_SHARED_CHREMAP 0x2008 +#define MC_SHARED_BLACKOUT_CNTL 0x20ac +#define BLACKOUT_MODE_MASK 0x00000007 + #define MC_ARB_RAMCFG 0x2760 #define NOOFBANK_SHIFT 0 #define NOOFBANK_MASK 0x00000003 @@ -230,6 +237,7 @@ #define MC_VM_MD_L1_TLB0_CNTL 0x2654 #define MC_VM_MD_L1_TLB1_CNTL 0x2658 #define MC_VM_MD_L1_TLB2_CNTL 0x265C +#define MC_VM_MD_L1_TLB3_CNTL 0x2698 #define FUS_MC_VM_MD_L1_TLB0_CNTL 0x265C #define FUS_MC_VM_MD_L1_TLB1_CNTL 0x2660 @@ -269,6 +277,7 @@ #define SCRATCH_UMSK 0x8540 #define SCRATCH_ADDR 0x8544 +#define SMX_SAR_CTL0 0xA008 #define SMX_DC_CTL0 0xA020 #define USE_HASH_FUNCTION (1 << 0) #define NUMBER_OF_SETS(x) ((x) << 1) --- linux-3.2.0.orig/drivers/gpu/drm/radeon/rs600.c +++ linux-3.2.0/drivers/gpu/drm/radeon/rs600.c @@ -324,10 +324,10 @@ void rs600_bm_disable(struct radeon_device *rdev) { - u32 tmp; + u16 tmp; /* disable bus mastering */ - pci_read_config_word(rdev->pdev, 0x4, (u16*)&tmp); + pci_read_config_word(rdev->pdev, 0x4, &tmp); pci_write_config_word(rdev->pdev, 0x4, tmp & 0xFFFB); mdelay(1); } @@ -693,9 +693,7 @@ WREG32(RADEON_BUS_CNTL, msi_rearm | RS600_MSI_REARM); break; default: - msi_rearm = RREG32(RADEON_MSI_REARM_EN) & ~RV370_MSI_REARM_EN; - WREG32(RADEON_MSI_REARM_EN, msi_rearm); - WREG32(RADEON_MSI_REARM_EN, msi_rearm | RV370_MSI_REARM_EN); + WREG32(RADEON_MSI_REARM_EN, RV370_MSI_REARM_EN); break; } } @@ -850,6 +848,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + rs600_irq_set(rdev); rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); /* 1M ring buffer */ @@ -965,9 +969,6 @@ r = radeon_fence_driver_init(rdev); if (r) return r; - r = radeon_irq_kms_init(rdev); - if (r) - return r; /* Memory manager */ r = radeon_bo_init(rdev); if (r) --- linux-3.2.0.orig/drivers/gpu/drm/radeon/r600d.h +++ linux-3.2.0/drivers/gpu/drm/radeon/r600d.h @@ -461,6 +461,7 @@ #define TC_L2_SIZE(x) ((x)<<5) #define L2_DISABLE_LATE_HIT (1<<9) +#define VC_ENHANCE 0x9714 #define VGT_CACHE_INVALIDATION 0x88C4 #define CACHE_INVALIDATION(x) ((x)<<0) --- linux-3.2.0.orig/drivers/gpu/drm/radeon/r420.c +++ linux-3.2.0/drivers/gpu/drm/radeon/r420.c @@ -255,6 +255,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + r100_irq_set(rdev); rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); /* 1M ring buffer */ @@ -391,10 +397,6 @@ if (r) { return r; } - r = radeon_irq_kms_init(rdev); - if (r) { - return r; - } /* Memory manager */ r = radeon_bo_init(rdev); if (r) { --- linux-3.2.0.orig/drivers/gpu/drm/radeon/r600_blit_shaders.c +++ linux-3.2.0/drivers/gpu/drm/radeon/r600_blit_shaders.c @@ -314,6 +314,10 @@ 0x00000000, /* VGT_VTX_CNT_EN */ 0xc0016900, + 0x000000d4, + 0x00000000, /* SX_MISC */ + + 0xc0016900, 0x000002c8, 0x00000000, /* VGT_STRMOUT_BUFFER_EN */ @@ -626,6 +630,10 @@ 0x00000000, /* VGT_VTX_CNT_EN */ 0xc0016900, + 0x000000d4, + 0x00000000, /* SX_MISC */ + + 0xc0016900, 0x000002c8, 0x00000000, /* VGT_STRMOUT_BUFFER_EN */ --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon.h +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon.h @@ -123,21 +123,6 @@ /* * BIOS. */ -#define ATRM_BIOS_PAGE 4096 - -#if defined(CONFIG_VGA_SWITCHEROO) -bool radeon_atrm_supported(struct pci_dev *pdev); -int radeon_atrm_get_bios_chunk(uint8_t *bios, int offset, int len); -#else -static inline bool radeon_atrm_supported(struct pci_dev *pdev) -{ - return false; -} - -static inline int radeon_atrm_get_bios_chunk(uint8_t *bios, int offset, int len){ - return -EINVAL; -} -#endif bool radeon_get_bios(struct radeon_device *rdev); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/ni.c +++ linux-3.2.0/drivers/gpu/drm/radeon/ni.c @@ -804,8 +804,18 @@ rdev->config.cayman.tile_config |= (3 << 0); break; } - rdev->config.cayman.tile_config |= - ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) << 4; + switch ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) { + case 0: /* four banks */ + rdev->config.cayman.tile_config |= 0 << 4; + break; + case 1: /* eight banks */ + rdev->config.cayman.tile_config |= 1 << 4; + break; + case 2: /* sixteen banks */ + default: + rdev->config.cayman.tile_config |= 2 << 4; + break; + } rdev->config.cayman.tile_config |= ((gb_addr_config & PIPE_INTERLEAVE_SIZE_MASK) >> PIPE_INTERLEAVE_SIZE_SHIFT) << 8; rdev->config.cayman.tile_config |= @@ -1379,6 +1389,12 @@ return r; /* Enable IRQ */ + if (!rdev->irq.installed) { + r = radeon_irq_kms_init(rdev); + if (r) + return r; + } + r = r600_irq_init(rdev); if (r) { DRM_ERROR("radeon: IH init failed (%d).\n", r); @@ -1496,10 +1512,6 @@ if (r) return r; - r = radeon_irq_kms_init(rdev); - if (r) - return r; - rdev->cp.ring_obj = NULL; r600_ring_init(rdev, 1024 * 1024); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_asic.h +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_asic.h @@ -253,13 +253,10 @@ * rv515 */ struct rv515_mc_save { - u32 d1vga_control; - u32 d2vga_control; u32 vga_render_control; u32 vga_hdp_control; - u32 d1crtc_control; - u32 d2crtc_control; }; + int rv515_init(struct radeon_device *rdev); void rv515_fini(struct radeon_device *rdev); uint32_t rv515_mc_rreg(struct radeon_device *rdev, uint32_t reg); @@ -387,11 +384,11 @@ * evergreen */ struct evergreen_mc_save { - u32 vga_control[6]; u32 vga_render_control; u32 vga_hdp_control; - u32 crtc_control[6]; + bool crtc_enabled[RADEON_MAX_CRTCS]; }; + void evergreen_pcie_gart_tlb_flush(struct radeon_device *rdev); int evergreen_init(struct radeon_device *rdev); void evergreen_fini(struct radeon_device *rdev); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/rv770d.h +++ linux-3.2.0/drivers/gpu/drm/radeon/rv770d.h @@ -174,6 +174,7 @@ #define MC_VM_MD_L1_TLB0_CNTL 0x2654 #define MC_VM_MD_L1_TLB1_CNTL 0x2658 #define MC_VM_MD_L1_TLB2_CNTL 0x265C +#define MC_VM_MD_L1_TLB3_CNTL 0x2698 #define MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR 0x203C #define MC_VM_SYSTEM_APERTURE_HIGH_ADDR 0x2038 #define MC_VM_SYSTEM_APERTURE_LOW_ADDR 0x2034 @@ -207,6 +208,7 @@ #define SCRATCH_UMSK 0x8540 #define SCRATCH_ADDR 0x8544 +#define SMX_SAR_CTL0 0xA008 #define SMX_DC_CTL0 0xA020 #define USE_HASH_FUNCTION (1 << 0) #define CACHE_DEPTH(x) ((x) << 1) @@ -306,6 +308,8 @@ #define TCP_CNTL 0x9610 #define TCP_CHAN_STEER 0x9614 +#define VC_ENHANCE 0x9714 + #define VGT_CACHE_INVALIDATION 0x88C4 #define CACHE_INVALIDATION(x) ((x)<<0) #define VC_ONLY 0 --- linux-3.2.0.orig/drivers/gpu/drm/radeon/atom.h +++ linux-3.2.0/drivers/gpu/drm/radeon/atom.h @@ -44,6 +44,7 @@ #define ATOM_CMD_SETSCLK 0x0A #define ATOM_CMD_SETMCLK 0x0B #define ATOM_CMD_SETPCLK 0x0C +#define ATOM_CMD_SPDFANCNTL 0x39 #define ATOM_DATA_FWI_PTR 0xC #define ATOM_DATA_IIO_PTR 0x32 --- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_mode.h +++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_mode.h @@ -210,6 +210,8 @@ CT_RN50_POWER, CT_MAC_X800, CT_MAC_G5_9600, + CT_SAM440EP, + CT_MAC_G4_SILVER }; enum radeon_dvo_chip { @@ -362,6 +364,7 @@ struct backlight_device *bl_dev; int dpms_mode; uint8_t backlight_level; + int panel_mode; }; struct radeon_encoder_atom_dac { @@ -482,6 +485,8 @@ extern bool radeon_dp_needs_link_train(struct radeon_connector *radeon_connector); extern u8 radeon_dp_getsinktype(struct radeon_connector *radeon_connector); extern bool radeon_dp_getdpcd(struct radeon_connector *radeon_connector); +extern int radeon_dp_get_panel_mode(struct drm_encoder *encoder, + struct drm_connector *connector); extern void atombios_dig_encoder_setup(struct drm_encoder *encoder, int action, int panel_mode); extern void radeon_atom_encoder_init(struct radeon_device *rdev); extern void atombios_dig_transmitter_setup(struct drm_encoder *encoder, @@ -518,7 +523,7 @@ u8 val); extern void radeon_router_select_ddc_port(struct radeon_connector *radeon_connector); extern void radeon_router_select_cd_port(struct radeon_connector *radeon_connector); -extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector); +extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector, bool use_aux); extern int radeon_ddc_get_modes(struct radeon_connector *radeon_connector); extern struct drm_encoder *radeon_best_encoder(struct drm_connector *connector); --- linux-3.2.0.orig/drivers/gpu/drm/radeon/r300_cmdbuf.c +++ linux-3.2.0/drivers/gpu/drm/radeon/r300_cmdbuf.c @@ -74,7 +74,7 @@ OUT_RING(CP_PACKET0(R300_RE_CLIPRECT_TL_0, nr * 2 - 1)); for (i = 0; i < nr; ++i) { - if (DRM_COPY_FROM_USER_UNCHECKED + if (DRM_COPY_FROM_USER (&box, &cmdbuf->boxes[n + i], sizeof(box))) { DRM_ERROR("copy cliprect faulted\n"); return -EFAULT; --- linux-3.2.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h +++ linux-3.2.0/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h @@ -641,6 +641,16 @@ int vmw_kms_update_layout_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); +int vmw_dumb_create(struct drm_file *file_priv, + struct drm_device *dev, + struct drm_mode_create_dumb *args); + +int vmw_dumb_map_offset(struct drm_file *file_priv, + struct drm_device *dev, uint32_t handle, + uint64_t *offset); +int vmw_dumb_destroy(struct drm_file *file_priv, + struct drm_device *dev, + uint32_t handle); /** * Overlay control - vmwgfx_overlay.c */ --- linux-3.2.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c +++ linux-3.2.0/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c @@ -66,7 +66,7 @@ cmd += sizeof(remap_cmd) / sizeof(uint32); for (i = 0; i < num_pages; ++i) { - if (VMW_PPN_SIZE > 4) + if (VMW_PPN_SIZE <= 4) *cmd = page_to_pfn(*pages++); else *((uint64_t *)cmd) = page_to_pfn(*pages++); --- linux-3.2.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c +++ linux-3.2.0/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c @@ -306,7 +306,7 @@ BUG_ON(!atomic_read(&bo->reserved)); BUG_ON(old_mem_type != TTM_PL_VRAM && - old_mem_type != VMW_PL_FLAG_GMR); + old_mem_type != VMW_PL_GMR); pl_flags = TTM_PL_FLAG_VRAM | VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED; if (pin) --- linux-3.2.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c +++ linux-3.2.0/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c @@ -1950,3 +1950,76 @@ vmw_resource_unreference(&res); return ret; } + + +int vmw_dumb_create(struct drm_file *file_priv, + struct drm_device *dev, + struct drm_mode_create_dumb *args) +{ + struct vmw_private *dev_priv = vmw_priv(dev); + struct vmw_master *vmaster = vmw_master(file_priv->master); + struct vmw_user_dma_buffer *vmw_user_bo; + struct ttm_buffer_object *tmp; + int ret; + + args->pitch = args->width * ((args->bpp + 7) / 8); + args->size = args->pitch * args->height; + + vmw_user_bo = kzalloc(sizeof(*vmw_user_bo), GFP_KERNEL); + if (vmw_user_bo == NULL) + return -ENOMEM; + + ret = ttm_read_lock(&vmaster->lock, true); + if (ret != 0) { + kfree(vmw_user_bo); + return ret; + } + + ret = vmw_dmabuf_init(dev_priv, &vmw_user_bo->dma, args->size, + &vmw_vram_sys_placement, true, + &vmw_user_dmabuf_destroy); + if (ret != 0) + goto out_no_dmabuf; + + tmp = ttm_bo_reference(&vmw_user_bo->dma.base); + ret = ttm_base_object_init(vmw_fpriv(file_priv)->tfile, + &vmw_user_bo->base, + false, + ttm_buffer_type, + &vmw_user_dmabuf_release, NULL); + if (unlikely(ret != 0)) + goto out_no_base_object; + + args->handle = vmw_user_bo->base.hash.key; + +out_no_base_object: + ttm_bo_unref(&tmp); +out_no_dmabuf: + ttm_read_unlock(&vmaster->lock); + return ret; +} + +int vmw_dumb_map_offset(struct drm_file *file_priv, + struct drm_device *dev, uint32_t handle, + uint64_t *offset) +{ + struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmw_dma_buffer *out_buf; + int ret; + + ret = vmw_user_dmabuf_lookup(tfile, handle, &out_buf); + if (ret != 0) + return -EINVAL; + + *offset = out_buf->base.addr_space_offset; + vmw_dmabuf_unreference(&out_buf); + return 0; +} + +int vmw_dumb_destroy(struct drm_file *file_priv, + struct drm_device *dev, + uint32_t handle) +{ + return ttm_ref_object_base_unref(vmw_fpriv(file_priv)->tfile, + handle, TTM_REF_USAGE); +} --- linux-3.2.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ linux-3.2.0/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -178,6 +178,7 @@ {0x15ad, 0x0405, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VMWGFX_CHIP_SVGAII}, {0, 0, 0} }; +MODULE_DEVICE_TABLE(pci, vmw_pci_id_list); static int enable_fbdev; @@ -1047,6 +1048,11 @@ struct drm_device *dev = pci_get_drvdata(pdev); struct vmw_private *dev_priv = vmw_priv(dev); + mutex_lock(&dev_priv->hw_mutex); + vmw_write(dev_priv, SVGA_REG_ID, SVGA_ID_2); + (void) vmw_read(dev_priv, SVGA_REG_ID); + mutex_unlock(&dev_priv->hw_mutex); + /** * Reclaim 3d reference held by fbdev and potentially * start fifo. @@ -1088,6 +1094,11 @@ .master_drop = vmw_master_drop, .open = vmw_driver_open, .postclose = vmw_postclose, + + .dumb_create = vmw_dumb_create, + .dumb_map_offset = vmw_dumb_map_offset, + .dumb_destroy = vmw_dumb_destroy, + .fops = { .owner = THIS_MODULE, .open = drm_open, --- linux-3.2.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ linux-3.2.0/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -378,7 +378,7 @@ unsigned int *handle) { if (handle) - handle = 0; + *handle = 0; return 0; } --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nouveau_gem.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -380,6 +380,25 @@ } static int +validate_sync(struct nouveau_channel *chan, struct nouveau_bo *nvbo) +{ + struct nouveau_fence *fence = NULL; + int ret = 0; + + spin_lock(&nvbo->bo.bdev->fence_lock); + if (nvbo->bo.sync_obj) + fence = nouveau_fence_ref(nvbo->bo.sync_obj); + spin_unlock(&nvbo->bo.bdev->fence_lock); + + if (fence) { + ret = nouveau_fence_sync(fence, chan); + nouveau_fence_unref(&fence); + } + + return ret; +} + +static int validate_list(struct nouveau_channel *chan, struct list_head *list, struct drm_nouveau_gem_pushbuf_bo *pbbo, uint64_t user_pbbo_ptr) { @@ -393,7 +412,7 @@ list_for_each_entry(nvbo, list, entry) { struct drm_nouveau_gem_pushbuf_bo *b = &pbbo[nvbo->pbbo_index]; - ret = nouveau_fence_sync(nvbo->bo.sync_obj, chan); + ret = validate_sync(chan, nvbo); if (unlikely(ret)) { NV_ERROR(dev, "fail pre-validate sync\n"); return ret; @@ -416,7 +435,7 @@ return ret; } - ret = nouveau_fence_sync(nvbo->bo.sync_obj, chan); + ret = validate_sync(chan, nvbo); if (unlikely(ret)) { NV_ERROR(dev, "fail post-validate sync\n"); return ret; --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nvc0_copy.fuc.h +++ linux-3.2.0/drivers/gpu/drm/nouveau/nvc0_copy.fuc.h @@ -1,34 +1,65 @@ -uint32_t nvc0_pcopy_data[] = { +u32 nvc0_pcopy_data[] = { +/* 0x0000: ctx_object */ 0x00000000, +/* 0x0004: ctx_query_address_high */ 0x00000000, +/* 0x0008: ctx_query_address_low */ 0x00000000, +/* 0x000c: ctx_query_counter */ 0x00000000, +/* 0x0010: ctx_src_address_high */ 0x00000000, +/* 0x0014: ctx_src_address_low */ 0x00000000, +/* 0x0018: ctx_src_pitch */ 0x00000000, +/* 0x001c: ctx_src_tile_mode */ 0x00000000, +/* 0x0020: ctx_src_xsize */ 0x00000000, +/* 0x0024: ctx_src_ysize */ 0x00000000, +/* 0x0028: ctx_src_zsize */ 0x00000000, +/* 0x002c: ctx_src_zoff */ 0x00000000, +/* 0x0030: ctx_src_xoff */ 0x00000000, +/* 0x0034: ctx_src_yoff */ 0x00000000, +/* 0x0038: ctx_src_cpp */ 0x00000000, +/* 0x003c: ctx_dst_address_high */ 0x00000000, +/* 0x0040: ctx_dst_address_low */ 0x00000000, +/* 0x0044: ctx_dst_pitch */ 0x00000000, +/* 0x0048: ctx_dst_tile_mode */ 0x00000000, +/* 0x004c: ctx_dst_xsize */ 0x00000000, +/* 0x0050: ctx_dst_ysize */ 0x00000000, +/* 0x0054: ctx_dst_zsize */ 0x00000000, +/* 0x0058: ctx_dst_zoff */ 0x00000000, +/* 0x005c: ctx_dst_xoff */ 0x00000000, +/* 0x0060: ctx_dst_yoff */ 0x00000000, +/* 0x0064: ctx_dst_cpp */ 0x00000000, +/* 0x0068: ctx_format */ 0x00000000, +/* 0x006c: ctx_swz_const0 */ 0x00000000, +/* 0x0070: ctx_swz_const1 */ 0x00000000, +/* 0x0074: ctx_xcnt */ 0x00000000, +/* 0x0078: ctx_ycnt */ 0x00000000, 0x00000000, 0x00000000, @@ -63,6 +94,7 @@ 0x00000000, 0x00000000, 0x00000000, +/* 0x0100: dispatch_table */ 0x00010000, 0x00000000, 0x00000000, @@ -111,11 +143,11 @@ 0x00000010, 0xffffff00, 0x00000014, - 0x0000000f, + 0x00000000, 0x0000003c, 0xffffff00, 0x00000040, - 0x0000000f, + 0x00000000, 0x00000018, 0xfff80000, 0x00000044, @@ -139,7 +171,8 @@ 0x00000800, }; -uint32_t nvc0_pcopy_code[] = { +u32 nvc0_pcopy_code[] = { +/* 0x0000: main */ 0x04fe04bd, 0x3517f000, 0xf10010fe, @@ -151,15 +184,20 @@ 0x17f11031, 0x27f01200, 0x0012d003, +/* 0x002f: spin */ 0xf40031f4, 0x0ef40028, +/* 0x0035: ih */ 0x8001cffd, 0xf40812c4, 0x21f4060b, +/* 0x0041: ih_no_chsw */ 0x0412c4ca, 0xf5070bf4, +/* 0x004b: ih_no_cmd */ 0xc4010221, 0x01d00c11, +/* 0x0053: swctx */ 0xf101f840, 0xfe770047, 0x47f1004b, @@ -188,8 +226,11 @@ 0xf00204b9, 0x01f40643, 0x0604fa09, +/* 0x00c3: swctx_load */ 0xfa060ef4, +/* 0x00c6: swctx_done */ 0x03f80504, +/* 0x00ca: chsw */ 0x27f100f8, 0x23cf1400, 0x1e3fc800, @@ -198,18 +239,22 @@ 0x1e3af053, 0xf00023d0, 0x24d00147, +/* 0x00eb: chsw_no_unload */ 0xcf00f880, 0x3dc84023, 0x090bf41e, 0xf40131f4, +/* 0x00fa: chsw_finish_load */ 0x37f05321, 0x8023d002, +/* 0x0102: dispatch */ 0x37f100f8, 0x32cf1900, 0x0033cf40, 0x07ff24e4, 0xf11024b6, 0xbd010057, +/* 0x011b: dispatch_loop */ 0x5874bd64, 0x57580056, 0x0450b601, @@ -219,6 +264,7 @@ 0xbb0f08f4, 0x74b60276, 0x0057bb03, +/* 0x013f: dispatch_valid_mthd */ 0xbbdf0ef4, 0x44b60246, 0x0045bb03, @@ -229,24 +275,33 @@ 0x64b00146, 0x091bf400, 0xf4005380, +/* 0x0166: dispatch_cmd */ 0x32f4300e, 0xf455f901, 0x0ef40c01, +/* 0x0171: dispatch_invalid_bitfield */ 0x0225f025, +/* 0x0174: dispatch_illegal_mthd */ +/* 0x0177: dispatch_error */ 0xf10125f0, 0xd0100047, 0x43d00042, 0x4027f040, +/* 0x0187: hostirq_wait */ 0xcf0002d0, 0x24f08002, 0x0024b040, +/* 0x0193: dispatch_done */ 0xf1f71bf4, 0xf01d0027, 0x23d00137, +/* 0x019f: cmd_nop */ 0xf800f800, +/* 0x01a1: cmd_pm_trigger */ 0x0027f100, 0xf034bd22, 0x23d00233, +/* 0x01af: cmd_exec_set_format */ 0xf400f800, 0x01b0f030, 0x0101b000, @@ -258,20 +313,26 @@ 0x3847c701, 0xf40170b6, 0x84bd0232, +/* 0x01da: ncomp_loop */ 0x4ac494bd, 0x0445b60f, +/* 0x01e2: bpc_loop */ 0xa430b4bd, 0x0f18f404, 0xbbc0a5ff, 0x31f400cb, 0x220ef402, +/* 0x01f4: cmp_c0 */ 0xf00c1bf4, 0xcbbb10c7, 0x160ef400, +/* 0x0200: cmp_c1 */ 0xf406a430, 0xc7f00c18, 0x00cbbb14, +/* 0x020f: cmp_zero */ 0xf1070ef4, +/* 0x0213: bpc_next */ 0x380080c7, 0x80b601c8, 0x01b0b601, @@ -283,6 +344,7 @@ 0x1d08980e, 0xf40068fd, 0x64bd0502, +/* 0x023c: dst_xcnt */ 0x800075fd, 0x78fd1907, 0x1057f100, @@ -307,15 +369,18 @@ 0x1c069800, 0xf44056d0, 0x00f81030, +/* 0x029c: cmd_exec_set_surface_tiled */ 0xc7075798, 0x78c76879, 0x0380b664, 0xb06077c7, 0x1bf40e76, 0x0477f009, +/* 0x02b7: xtile64 */ 0xf00f0ef4, 0x70b6027c, 0x0947fd11, +/* 0x02c3: xtileok */ 0x980677f0, 0x5b980c5a, 0x00abfd0e, @@ -374,6 +439,7 @@ 0xb70067d0, 0xd0040060, 0x00f80068, +/* 0x03a8: cmd_exec_set_surface_linear */ 0xb7026cf0, 0xb6020260, 0x57980864, @@ -384,12 +450,15 @@ 0x0060b700, 0x06579804, 0xf80067d0, +/* 0x03d1: cmd_exec_wait */ 0xf900f900, 0x0007f110, 0x0604b608, +/* 0x03dc: loop */ 0xf00001cf, 0x1bf40114, 0xfc10fcfa, +/* 0x03eb: cmd_exec_query */ 0xc800f800, 0x1bf40d34, 0xd121f570, @@ -419,6 +488,7 @@ 0x0153f026, 0x080047f1, 0xd00644b6, +/* 0x045e: query_counter */ 0x21f50045, 0x47f103d1, 0x44b6080c, @@ -442,11 +512,13 @@ 0x080047f1, 0xd00644b6, 0x00f80045, +/* 0x04b8: cmd_exec */ 0x03d121f5, 0xf4003fc8, 0x21f50e0b, 0x47f101af, 0x0ef40200, +/* 0x04cd: cmd_exec_no_format */ 0x1067f11e, 0x0664b608, 0x800177f0, @@ -454,18 +526,23 @@ 0x1d079819, 0xd00067d0, 0x44bd4067, +/* 0x04e8: cmd_exec_init_src_surface */ 0xbd0232f4, 0x043fc854, 0xf50a0bf4, 0xf403a821, +/* 0x04fa: src_tiled */ 0x21f50a0e, 0x49f0029c, +/* 0x0501: cmd_exec_init_dst_surface */ 0x0231f407, 0xc82c57f0, 0x0bf4083f, 0xa821f50a, 0x0a0ef403, +/* 0x0514: dst_tiled */ 0x029c21f5, +/* 0x051b: cmd_exec_kick */ 0xf10849f0, 0xb6080057, 0x06980654, @@ -475,7 +552,9 @@ 0x54d00546, 0x0c3fc800, 0xf5070bf4, +/* 0x053f: cmd_exec_done */ 0xf803eb21, +/* 0x0541: cmd_wrcache_flush */ 0x0027f100, 0xf034bd22, 0x23d00133, --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nv04_dac.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nv04_dac.c @@ -209,7 +209,7 @@ NVWriteVgaCrtc(dev, 0, NV_CIO_CR_MODE_INDEX, saved_cr_mode); if (blue == 0x18) { - NV_INFO(dev, "Load detected on head A\n"); + NV_DEBUG(dev, "Load detected on head A\n"); return connector_status_connected; } @@ -323,7 +323,7 @@ if (nv17_dac_sample_load(encoder) & NV_PRAMDAC_TEST_CONTROL_SENSEB_ALLHI) { - NV_INFO(dev, "Load detected on output %c\n", + NV_DEBUG(dev, "Load detected on output %c\n", '@' + ffs(dcb->or)); return connector_status_connected; } else { @@ -398,7 +398,7 @@ helper->dpms(encoder, DRM_MODE_DPMS_ON); - NV_INFO(dev, "Output %s is running on CRTC %d using output %c\n", + NV_DEBUG(dev, "Output %s is running on CRTC %d using output %c\n", drm_get_connector_name(&nouveau_encoder_connector_get(nv_encoder)->base), nv_crtc->index, '@' + ffs(nv_encoder->dcb->or)); } @@ -447,7 +447,7 @@ return; nv_encoder->last_dpms = mode; - NV_INFO(dev, "Setting dpms mode %d on vga encoder (output %d)\n", + NV_DEBUG(dev, "Setting dpms mode %d on vga encoder (output %d)\n", mode, nv_encoder->dcb->index); nv04_dac_update_dacclk(encoder, mode == DRM_MODE_DPMS_ON); --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nouveau_bo.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -940,7 +940,7 @@ if (dev_priv->gart_info.type == NOUVEAU_GART_AGP) { mem->bus.offset = mem->start << PAGE_SHIFT; mem->bus.base = dev_priv->gart_info.aper_base; - mem->bus.is_iomem = true; + mem->bus.is_iomem = !dev->agp->cant_use_aperture; } #endif break; @@ -1024,7 +1024,7 @@ nvbo->placement.fpfn = 0; nvbo->placement.lpfn = dev_priv->fb_mappable_pages; - nouveau_bo_placement_set(nvbo, TTM_PL_VRAM, 0); + nouveau_bo_placement_set(nvbo, TTM_PL_FLAG_VRAM, 0); return nouveau_bo_validate(nvbo, false, true, false); } --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nv04_dfp.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nv04_dfp.c @@ -468,7 +468,7 @@ helper->dpms(encoder, DRM_MODE_DPMS_ON); - NV_INFO(dev, "Output %s is running on CRTC %d using output %c\n", + NV_DEBUG(dev, "Output %s is running on CRTC %d using output %c\n", drm_get_connector_name(&nouveau_encoder_connector_get(nv_encoder)->base), nv_crtc->index, '@' + ffs(nv_encoder->dcb->or)); } @@ -511,7 +511,7 @@ return; nv_encoder->last_dpms = mode; - NV_INFO(dev, "Setting dpms mode %d on lvds encoder (output %d)\n", + NV_DEBUG(dev, "Setting dpms mode %d on lvds encoder (output %d)\n", mode, nv_encoder->dcb->index); if (was_powersaving && is_powersaving_dpms(mode)) @@ -556,7 +556,7 @@ return; nv_encoder->last_dpms = mode; - NV_INFO(dev, "Setting dpms mode %d on tmds encoder (output %d)\n", + NV_DEBUG(dev, "Setting dpms mode %d on tmds encoder (output %d)\n", mode, nv_encoder->dcb->index); nv04_dfp_update_backlight(encoder, mode); --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nva3_copy.fuc.h +++ linux-3.2.0/drivers/gpu/drm/nouveau/nva3_copy.fuc.h @@ -1,37 +1,72 @@ -uint32_t nva3_pcopy_data[] = { +u32 nva3_pcopy_data[] = { +/* 0x0000: ctx_object */ 0x00000000, +/* 0x0004: ctx_dma */ +/* 0x0004: ctx_dma_query */ 0x00000000, +/* 0x0008: ctx_dma_src */ 0x00000000, +/* 0x000c: ctx_dma_dst */ 0x00000000, +/* 0x0010: ctx_query_address_high */ 0x00000000, +/* 0x0014: ctx_query_address_low */ 0x00000000, +/* 0x0018: ctx_query_counter */ 0x00000000, +/* 0x001c: ctx_src_address_high */ 0x00000000, +/* 0x0020: ctx_src_address_low */ 0x00000000, +/* 0x0024: ctx_src_pitch */ 0x00000000, +/* 0x0028: ctx_src_tile_mode */ 0x00000000, +/* 0x002c: ctx_src_xsize */ 0x00000000, +/* 0x0030: ctx_src_ysize */ 0x00000000, +/* 0x0034: ctx_src_zsize */ 0x00000000, +/* 0x0038: ctx_src_zoff */ 0x00000000, +/* 0x003c: ctx_src_xoff */ 0x00000000, +/* 0x0040: ctx_src_yoff */ 0x00000000, +/* 0x0044: ctx_src_cpp */ 0x00000000, +/* 0x0048: ctx_dst_address_high */ 0x00000000, +/* 0x004c: ctx_dst_address_low */ 0x00000000, +/* 0x0050: ctx_dst_pitch */ 0x00000000, +/* 0x0054: ctx_dst_tile_mode */ 0x00000000, +/* 0x0058: ctx_dst_xsize */ 0x00000000, +/* 0x005c: ctx_dst_ysize */ 0x00000000, +/* 0x0060: ctx_dst_zsize */ 0x00000000, +/* 0x0064: ctx_dst_zoff */ 0x00000000, +/* 0x0068: ctx_dst_xoff */ 0x00000000, +/* 0x006c: ctx_dst_yoff */ 0x00000000, +/* 0x0070: ctx_dst_cpp */ 0x00000000, +/* 0x0074: ctx_format */ 0x00000000, +/* 0x0078: ctx_swz_const0 */ 0x00000000, +/* 0x007c: ctx_swz_const1 */ 0x00000000, +/* 0x0080: ctx_xcnt */ 0x00000000, +/* 0x0084: ctx_ycnt */ 0x00000000, 0x00000000, 0x00000000, @@ -63,6 +98,7 @@ 0x00000000, 0x00000000, 0x00000000, +/* 0x0100: dispatch_table */ 0x00010000, 0x00000000, 0x00000000, @@ -73,6 +109,7 @@ 0x00010162, 0x00000000, 0x00030060, +/* 0x0128: dispatch_dma */ 0x00010170, 0x00000000, 0x00010170, @@ -118,11 +155,11 @@ 0x0000001c, 0xffffff00, 0x00000020, - 0x0000000f, + 0x00000000, 0x00000048, 0xffffff00, 0x0000004c, - 0x0000000f, + 0x00000000, 0x00000024, 0xfff80000, 0x00000050, @@ -146,7 +183,8 @@ 0x00000800, }; -uint32_t nva3_pcopy_code[] = { +u32 nva3_pcopy_code[] = { +/* 0x0000: main */ 0x04fe04bd, 0x3517f000, 0xf10010fe, @@ -158,23 +196,31 @@ 0x17f11031, 0x27f01200, 0x0012d003, +/* 0x002f: spin */ 0xf40031f4, 0x0ef40028, +/* 0x0035: ih */ 0x8001cffd, 0xf40812c4, 0x21f4060b, +/* 0x0041: ih_no_chsw */ 0x0412c472, 0xf4060bf4, +/* 0x004a: ih_no_cmd */ 0x11c4c321, 0x4001d00c, +/* 0x0052: swctx */ 0x47f101f8, 0x4bfe7700, 0x0007fe00, 0xf00204b9, 0x01f40643, 0x0604fa09, +/* 0x006b: swctx_load */ 0xfa060ef4, +/* 0x006e: swctx_done */ 0x03f80504, +/* 0x0072: chsw */ 0x27f100f8, 0x23cf1400, 0x1e3fc800, @@ -183,18 +229,22 @@ 0x1e3af052, 0xf00023d0, 0x24d00147, +/* 0x0093: chsw_no_unload */ 0xcf00f880, 0x3dc84023, 0x220bf41e, 0xf40131f4, 0x57f05221, 0x0367f004, +/* 0x00a8: chsw_load_ctx_dma */ 0xa07856bc, 0xb6018068, 0x87d00884, 0x0162b600, +/* 0x00bb: chsw_finish_load */ 0xf0f018f4, 0x23d00237, +/* 0x00c3: dispatch */ 0xf100f880, 0xcf190037, 0x33cf4032, @@ -202,6 +252,7 @@ 0x1024b607, 0x010057f1, 0x74bd64bd, +/* 0x00dc: dispatch_loop */ 0x58005658, 0x50b60157, 0x0446b804, @@ -211,6 +262,7 @@ 0xb60276bb, 0x57bb0374, 0xdf0ef400, +/* 0x0100: dispatch_valid_mthd */ 0xb60246bb, 0x45bb0344, 0x01459800, @@ -220,31 +272,41 @@ 0xb0014658, 0x1bf40064, 0x00538009, +/* 0x0127: dispatch_cmd */ 0xf4300ef4, 0x55f90132, 0xf40c01f4, +/* 0x0132: dispatch_invalid_bitfield */ 0x25f0250e, +/* 0x0135: dispatch_illegal_mthd */ 0x0125f002, +/* 0x0138: dispatch_error */ 0x100047f1, 0xd00042d0, 0x27f04043, 0x0002d040, +/* 0x0148: hostirq_wait */ 0xf08002cf, 0x24b04024, 0xf71bf400, +/* 0x0154: dispatch_done */ 0x1d0027f1, 0xd00137f0, 0x00f80023, +/* 0x0160: cmd_nop */ +/* 0x0162: cmd_pm_trigger */ 0x27f100f8, 0x34bd2200, 0xd00233f0, 0x00f80023, +/* 0x0170: cmd_dma */ 0x012842b7, 0xf00145b6, 0x43801e39, 0x0040b701, 0x0644b606, 0xf80043d0, +/* 0x0189: cmd_exec_set_format */ 0xf030f400, 0xb00001b0, 0x01b00101, @@ -256,20 +318,26 @@ 0x70b63847, 0x0232f401, 0x94bd84bd, +/* 0x01b4: ncomp_loop */ 0xb60f4ac4, 0xb4bd0445, +/* 0x01bc: bpc_loop */ 0xf404a430, 0xa5ff0f18, 0x00cbbbc0, 0xf40231f4, +/* 0x01ce: cmp_c0 */ 0x1bf4220e, 0x10c7f00c, 0xf400cbbb, +/* 0x01da: cmp_c1 */ 0xa430160e, 0x0c18f406, 0xbb14c7f0, 0x0ef400cb, +/* 0x01e9: cmp_zero */ 0x80c7f107, +/* 0x01ed: bpc_next */ 0x01c83800, 0xb60180b6, 0xb5b801b0, @@ -280,6 +348,7 @@ 0x98110680, 0x68fd2008, 0x0502f400, +/* 0x0216: dst_xcnt */ 0x75fd64bd, 0x1c078000, 0xf10078fd, @@ -304,6 +373,7 @@ 0x980056d0, 0x56d01f06, 0x1030f440, +/* 0x0276: cmd_exec_set_surface_tiled */ 0x579800f8, 0x6879c70a, 0xb66478c7, @@ -311,9 +381,11 @@ 0x0e76b060, 0xf0091bf4, 0x0ef40477, +/* 0x0291: xtile64 */ 0x027cf00f, 0xfd1170b6, 0x77f00947, +/* 0x029d: xtileok */ 0x0f5a9806, 0xfd115b98, 0xb7f000ab, @@ -371,6 +443,7 @@ 0x67d00600, 0x0060b700, 0x0068d004, +/* 0x0382: cmd_exec_set_surface_linear */ 0x6cf000f8, 0x0260b702, 0x0864b602, @@ -381,13 +454,16 @@ 0xb70067d0, 0x98040060, 0x67d00957, +/* 0x03ab: cmd_exec_wait */ 0xf900f800, 0xf110f900, 0xb6080007, +/* 0x03b6: loop */ 0x01cf0604, 0x0114f000, 0xfcfa1bf4, 0xf800fc10, +/* 0x03c5: cmd_exec_query */ 0x0d34c800, 0xf5701bf4, 0xf103ab21, @@ -417,6 +493,7 @@ 0x47f10153, 0x44b60800, 0x0045d006, +/* 0x0438: query_counter */ 0x03ab21f5, 0x080c47f1, 0x980644b6, @@ -439,11 +516,13 @@ 0x47f10153, 0x44b60800, 0x0045d006, +/* 0x0492: cmd_exec */ 0x21f500f8, 0x3fc803ab, 0x0e0bf400, 0x018921f5, 0x020047f1, +/* 0x04a7: cmd_exec_no_format */ 0xf11e0ef4, 0xb6081067, 0x77f00664, @@ -451,19 +530,24 @@ 0x981c0780, 0x67d02007, 0x4067d000, +/* 0x04c2: cmd_exec_init_src_surface */ 0x32f444bd, 0xc854bd02, 0x0bf4043f, 0x8221f50a, 0x0a0ef403, +/* 0x04d4: src_tiled */ 0x027621f5, +/* 0x04db: cmd_exec_init_dst_surface */ 0xf40749f0, 0x57f00231, 0x083fc82c, 0xf50a0bf4, 0xf4038221, +/* 0x04ee: dst_tiled */ 0x21f50a0e, 0x49f00276, +/* 0x04f5: cmd_exec_kick */ 0x0057f108, 0x0654b608, 0xd0210698, @@ -473,6 +557,8 @@ 0xc80054d0, 0x0bf40c3f, 0xc521f507, +/* 0x0519: cmd_exec_done */ +/* 0x051b: cmd_wrcache_flush */ 0xf100f803, 0xbd220027, 0x0133f034, --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nouveau_acpi.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nouveau_acpi.c @@ -18,12 +18,6 @@ #include -#define NOUVEAU_DSM_SUPPORTED 0x00 -#define NOUVEAU_DSM_SUPPORTED_FUNCTIONS 0x00 - -#define NOUVEAU_DSM_ACTIVE 0x01 -#define NOUVEAU_DSM_ACTIVE_QUERY 0x00 - #define NOUVEAU_DSM_LED 0x02 #define NOUVEAU_DSM_LED_STATE 0x00 #define NOUVEAU_DSM_LED_OFF 0x10 @@ -35,6 +29,9 @@ #define NOUVEAU_DSM_POWER_SPEED 0x01 #define NOUVEAU_DSM_POWER_STAMINA 0x02 +#define NOUVEAU_DSM_OPTIMUS_FN 0x1A +#define NOUVEAU_DSM_OPTIMUS_ARGS 0x03000001 + static struct nouveau_dsm_priv { bool dsm_detected; bool optimus_detected; @@ -61,7 +58,8 @@ struct acpi_object_list input; union acpi_object params[4]; union acpi_object *obj; - int err; + int i, err; + char args_buff[4]; input.count = 4; input.pointer = params; @@ -73,7 +71,11 @@ params[2].type = ACPI_TYPE_INTEGER; params[2].integer.value = func; params[3].type = ACPI_TYPE_BUFFER; - params[3].buffer.length = 0; + params[3].buffer.length = 4; + /* ACPI is little endian, AABBCCDD becomes {DD,CC,BB,AA} */ + for (i = 0; i < 4; i++) + args_buff[i] = (arg >> i * 8) & 0xFF; + params[3].buffer.pointer = args_buff; err = acpi_evaluate_object(handle, "_DSM", &input, &output); if (err) { @@ -148,6 +150,23 @@ return 0; } +/* Returns 1 if a DSM function is usable and 0 otherwise */ +static int nouveau_test_dsm(acpi_handle test_handle, + int (*dsm_func)(acpi_handle, int, int, uint32_t *), + int sfnc) +{ + u32 result = 0; + + /* Function 0 returns a Buffer containing available functions. The args + * parameter is ignored for function 0, so just put 0 in it */ + if (dsm_func(test_handle, 0, 0, &result)) + return 0; + + /* ACPI Spec v4 9.14.1: if bit 0 is zero, no function is supported. If + * the n-th bit is enabled, function n is supported */ + return result & 1 && result & (1 << sfnc); +} + static int nouveau_dsm_switch_mux(acpi_handle handle, int mux_id) { mxm_wmi_call_mxmx(mux_id == NOUVEAU_DSM_LED_STAMINA ? MXM_MXDS_ADAPTER_IGD : MXM_MXDS_ADAPTER_0); @@ -168,6 +187,10 @@ static int nouveau_dsm_switchto(enum vga_switcheroo_client_id id) { + /* perhaps the _DSM functions are mutually exclusive, but prepare for + * the future */ + if (!nouveau_dsm_priv.dsm_detected && nouveau_dsm_priv.optimus_detected) + return 0; if (id == VGA_SWITCHEROO_IGD) return nouveau_dsm_switch_mux(nouveau_dsm_priv.dhandle, NOUVEAU_DSM_LED_STAMINA); else @@ -180,6 +203,11 @@ if (id == VGA_SWITCHEROO_IGD) return 0; + /* Optimus laptops have the card already disabled in + * nouveau_switcheroo_set_state */ + if (!nouveau_dsm_priv.dsm_detected && nouveau_dsm_priv.optimus_detected) + return 0; + return nouveau_dsm_set_discrete_state(nouveau_dsm_priv.dhandle, state); } @@ -212,8 +240,7 @@ { acpi_handle dhandle, nvidia_handle; acpi_status status; - int ret, retval = 0; - uint32_t result; + int retval = 0; dhandle = DEVICE_ACPI_HANDLE(&pdev->dev); if (!dhandle) @@ -224,13 +251,11 @@ return false; } - ret = nouveau_dsm(dhandle, NOUVEAU_DSM_SUPPORTED, - NOUVEAU_DSM_SUPPORTED_FUNCTIONS, &result); - if (ret == 0) + if (nouveau_test_dsm(dhandle, nouveau_dsm, NOUVEAU_DSM_POWER)) retval |= NOUVEAU_DSM_HAS_MUX; - ret = nouveau_optimus_dsm(dhandle, 0, 0, &result); - if (ret == 0) + if (nouveau_test_dsm(dhandle, nouveau_optimus_dsm, + NOUVEAU_DSM_OPTIMUS_FN)) retval |= NOUVEAU_DSM_HAS_OPT; if (retval) @@ -245,7 +270,7 @@ struct acpi_buffer buffer = {sizeof(acpi_method_name), acpi_method_name}; struct pci_dev *pdev = NULL; int has_dsm = 0; - int has_optimus; + int has_optimus = 0; int vga_count = 0; bool guid_valid; int retval; @@ -269,15 +294,22 @@ } if (vga_count == 2 && has_dsm && guid_valid) { - acpi_get_name(nouveau_dsm_priv.dhandle, ACPI_FULL_PATHNAME, &buffer); + acpi_get_name(nouveau_dsm_priv.dhandle, ACPI_FULL_PATHNAME, + &buffer); printk(KERN_INFO "VGA switcheroo: detected DSM switching method %s handle\n", - acpi_method_name); + acpi_method_name); nouveau_dsm_priv.dsm_detected = true; ret = true; } - if (has_optimus == 1) + if (has_optimus == 1) { + acpi_get_name(nouveau_dsm_priv.dhandle, ACPI_FULL_PATHNAME, + &buffer); + printk(KERN_INFO "VGA switcheroo: detected Optimus DSM method %s handle\n", + acpi_method_name); nouveau_dsm_priv.optimus_detected = true; + ret = true; + } return ret; } @@ -293,6 +325,17 @@ vga_switcheroo_register_handler(&nouveau_dsm_handler); } +/* Must be called for Optimus models before the card can be turned off */ +void nouveau_switcheroo_optimus_dsm(void) +{ + u32 result = 0; + if (!nouveau_dsm_priv.optimus_detected) + return; + + nouveau_optimus_dsm(nouveau_dsm_priv.dhandle, NOUVEAU_DSM_OPTIMUS_FN, + NOUVEAU_DSM_OPTIMUS_ARGS, &result); +} + void nouveau_unregister_dsm_handler(void) { vga_switcheroo_unregister_handler(); --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nouveau_fbcon.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nouveau_fbcon.c @@ -499,7 +499,7 @@ nfbdev->helper.funcs = &nouveau_fbcon_helper_funcs; ret = drm_fb_helper_init(dev, &nfbdev->helper, - nv_two_heads(dev) ? 2 : 1, 4); + dev->mode_config.num_crtc, 4); if (ret) { kfree(nfbdev); return ret; --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nouveau_display.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nouveau_display.c @@ -381,7 +381,7 @@ args->size = args->pitch * args->height; args->size = roundup(args->size, PAGE_SIZE); - ret = nouveau_gem_new(dev, args->size, 0, TTM_PL_FLAG_VRAM, 0, 0, &bo); + ret = nouveau_gem_new(dev, args->size, 0, NOUVEAU_GEM_DOMAIN_VRAM, 0, 0, &bo); if (ret) return ret; --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nv04_tv.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nv04_tv.c @@ -69,7 +69,7 @@ struct nv04_mode_state *state = &dev_priv->mode_reg; uint8_t crtc1A; - NV_INFO(dev, "Setting dpms mode %d on TV encoder (output %d)\n", + NV_DEBUG(dev, "Setting dpms mode %d on TV encoder (output %d)\n", mode, nv_encoder->dcb->index); state->pllsel &= ~(PLLSEL_TV_CRTC1_MASK | PLLSEL_TV_CRTC2_MASK); @@ -162,7 +162,7 @@ helper->dpms(encoder, DRM_MODE_DPMS_ON); - NV_INFO(dev, "Output %s is running on CRTC %d using output %c\n", + NV_DEBUG(dev, "Output %s is running on CRTC %d using output %c\n", drm_get_connector_name(&nouveau_encoder_connector_get(nv_encoder)->base), nv_crtc->index, '@' + ffs(nv_encoder->dcb->or)); } --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nvd0_display.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nvd0_display.c @@ -472,7 +472,7 @@ nvd0_crtc_cursor_move(struct drm_crtc *crtc, int x, int y) { struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - const u32 data = (y << 16) | x; + const u32 data = (y << 16) | (x & 0xffff); nv_wr32(crtc->dev, 0x64d084 + (nv_crtc->index * 0x1000), data); nv_wr32(crtc->dev, 0x64d080 + (nv_crtc->index * 0x1000), 0x00000000); --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nva3_copy.fuc +++ linux-3.2.0/drivers/gpu/drm/nouveau/nva3_copy.fuc @@ -118,9 +118,9 @@ // mthd 0x030c-0x0340, various stuff .b16 0xc3 14 .b32 ctx_src_address_high ~0x000000ff -.b32 ctx_src_address_low ~0xfffffff0 +.b32 ctx_src_address_low ~0xffffffff .b32 ctx_dst_address_high ~0x000000ff -.b32 ctx_dst_address_low ~0xfffffff0 +.b32 ctx_dst_address_low ~0xffffffff .b32 ctx_src_pitch ~0x0007ffff .b32 ctx_dst_pitch ~0x0007ffff .b32 ctx_xcnt ~0x0000ffff --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nouveau_connector.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -602,6 +602,55 @@ return modes; } +static void +nouveau_connector_detect_depth(struct drm_connector *connector) +{ + struct drm_nouveau_private *dev_priv = connector->dev->dev_private; + struct nouveau_connector *nv_connector = nouveau_connector(connector); + struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder; + struct nvbios *bios = &dev_priv->vbios; + struct drm_display_mode *mode = nv_connector->native_mode; + bool duallink; + + /* if the edid is feeling nice enough to provide this info, use it */ + if (nv_connector->edid && connector->display_info.bpc) + return; + + /* EDID 1.4 is *supposed* to be supported on eDP, but, Apple... */ + if (nv_connector->dcb->type == DCB_CONNECTOR_eDP) { + connector->display_info.bpc = 6; + return; + } + + /* we're out of options unless we're LVDS, default to 8bpc */ + if (nv_encoder->dcb->type != OUTPUT_LVDS) { + connector->display_info.bpc = 8; + return; + } + + connector->display_info.bpc = 6; + + /* LVDS: panel straps */ + if (bios->fp_no_ddc) { + if (bios->fp.if_is_24bit) + connector->display_info.bpc = 8; + return; + } + + /* LVDS: DDC panel, need to first determine the number of links to + * know which if_is_24bit flag to check... + */ + if (nv_connector->edid && + nv_connector->dcb->type == DCB_CONNECTOR_LVDS_SPWG) + duallink = ((u8 *)nv_connector->edid)[121] == 2; + else + duallink = mode->clock >= bios->fp.duallink_transition_clk; + + if ((!duallink && (bios->fp.strapless_is_24bit & 1)) || + ( duallink && (bios->fp.strapless_is_24bit & 2))) + connector->display_info.bpc = 8; +} + static int nouveau_connector_get_modes(struct drm_connector *connector) { @@ -646,6 +695,12 @@ ret = 1; } + /* Attempt to determine display colour depth, this has to happen after + * we've determined the "native" mode for LVDS, as the VBIOS tables + * require us to compare against a pixel clock in some cases.. + */ + nouveau_connector_detect_depth(connector); + if (nv_encoder->dcb->type == OUTPUT_TV) ret = get_slave_funcs(encoder)->get_modes(encoder, connector); --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nouveau_drv.h +++ linux-3.2.0/drivers/gpu/drm/nouveau/nouveau_drv.h @@ -1041,12 +1041,14 @@ #if defined(CONFIG_ACPI) void nouveau_register_dsm_handler(void); void nouveau_unregister_dsm_handler(void); +void nouveau_switcheroo_optimus_dsm(void); int nouveau_acpi_get_bios_chunk(uint8_t *bios, int offset, int len); bool nouveau_acpi_rom_supported(struct pci_dev *pdev); int nouveau_acpi_edid(struct drm_device *, struct drm_connector *); #else static inline void nouveau_register_dsm_handler(void) {} static inline void nouveau_unregister_dsm_handler(void) {} +static inline void nouveau_switcheroo_optimus_dsm(void) {} static inline bool nouveau_acpi_rom_supported(struct pci_dev *pdev) { return false; } static inline int nouveau_acpi_get_bios_chunk(uint8_t *bios, int offset, int len) { return -EINVAL; } static inline int nouveau_acpi_edid(struct drm_device *dev, struct drm_connector *connector) { return -EINVAL; } --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nouveau_drv.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nouveau_drv.c @@ -178,8 +178,10 @@ if (dev->switch_power_state == DRM_SWITCH_POWER_OFF) return 0; - NV_INFO(dev, "Disabling fbcon acceleration...\n"); - nouveau_fbcon_save_disable_accel(dev); + if (dev->mode_config.num_crtc) { + NV_INFO(dev, "Disabling fbcon acceleration...\n"); + nouveau_fbcon_save_disable_accel(dev); + } NV_INFO(dev, "Unpinning framebuffer(s)...\n"); list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { @@ -246,10 +248,12 @@ pci_set_power_state(pdev, PCI_D3hot); } - console_lock(); - nouveau_fbcon_set_suspend(dev, 1); - console_unlock(); - nouveau_fbcon_restore_accel(dev); + if (dev->mode_config.num_crtc) { + console_lock(); + nouveau_fbcon_set_suspend(dev, 1); + console_unlock(); + nouveau_fbcon_restore_accel(dev); + } return 0; out_abort: @@ -275,7 +279,8 @@ if (dev->switch_power_state == DRM_SWITCH_POWER_OFF) return 0; - nouveau_fbcon_save_disable_accel(dev); + if (dev->mode_config.num_crtc) + nouveau_fbcon_save_disable_accel(dev); NV_INFO(dev, "We're back, enabling device...\n"); pci_set_power_state(pdev, PCI_D0); @@ -376,15 +381,18 @@ nv_crtc->lut.depth = 0; } - console_lock(); - nouveau_fbcon_set_suspend(dev, 0); - console_unlock(); + if (dev->mode_config.num_crtc) { + console_lock(); + nouveau_fbcon_set_suspend(dev, 0); + console_unlock(); - nouveau_fbcon_zfill_all(dev); + nouveau_fbcon_zfill_all(dev); + } drm_helper_resume_force_mode(dev); - nouveau_fbcon_restore_accel(dev); + if (dev->mode_config.num_crtc) + nouveau_fbcon_restore_accel(dev); return 0; } @@ -466,9 +474,7 @@ #ifdef CONFIG_VGA_CONSOLE if (vgacon_text_force()) nouveau_modeset = 0; - else #endif - nouveau_modeset = 1; } if (!nouveau_modeset) --- linux-3.2.0.orig/drivers/gpu/drm/nouveau/nouveau_state.c +++ linux-3.2.0/drivers/gpu/drm/nouveau/nouveau_state.c @@ -46,6 +46,7 @@ { struct drm_nouveau_private *dev_priv = dev->dev_private; struct nouveau_engine *engine = &dev_priv->engine; + u32 pclass = dev->pdev->class >> 8; switch (dev_priv->chipset & 0xf0) { case 0x00: @@ -481,7 +482,8 @@ } /* headless mode */ - if (nouveau_modeset == 2) { + if (nouveau_modeset == 2 || + (nouveau_modeset < 0 && pclass != PCI_CLASS_DISPLAY_VGA)) { engine->display.early_init = nouveau_stub_init; engine->display.late_takedown = nouveau_stub_takedown; engine->display.create = nouveau_stub_init; @@ -525,6 +527,7 @@ printk(KERN_ERR "VGA switcheroo: switched nouveau off\n"); dev->switch_power_state = DRM_SWITCH_POWER_CHANGING; drm_kms_helper_poll_disable(dev); + nouveau_switcheroo_optimus_dsm(); nouveau_pci_suspend(pdev, pmm); dev->switch_power_state = DRM_SWITCH_POWER_OFF; } --- linux-3.2.0.orig/drivers/firmware/Kconfig +++ linux-3.2.0/drivers/firmware/Kconfig @@ -53,6 +53,24 @@ Subsequent efibootmgr releases may be found at: +config EFI_VARS_PSTORE + bool "Register efivars backend for pstore" + depends on EFI_VARS && PSTORE + default y + help + Say Y here to enable use efivars as a backend to pstore. This + will allow writing console messages, crash dumps, or anything + else supported by pstore to EFI variables. + +config EFI_VARS_PSTORE_DEFAULT_DISABLE + bool "Disable using efivars as a pstore backend by default" + depends on EFI_VARS_PSTORE + default n + help + Saying Y here will disable the use of efivars as a storage + backend for pstore by default. This setting can be overridden + using the efivars module's pstore_disable parameter. + config EFI_PCDP bool "Console device selection via EFI PCDP or HCDP table" depends on ACPI && EFI && IA64 --- linux-3.2.0.orig/drivers/firmware/pcdp.c +++ linux-3.2.0/drivers/firmware/pcdp.c @@ -95,7 +95,7 @@ if (efi.hcdp == EFI_INVALID_TABLE_ADDR) return -ENODEV; - pcdp = ioremap(efi.hcdp, 4096); + pcdp = early_ioremap(efi.hcdp, 4096); printk(KERN_INFO "PCDP: v%d at 0x%lx\n", pcdp->rev, efi.hcdp); if (strstr(cmdline, "console=hcdp")) { @@ -131,6 +131,6 @@ } out: - iounmap(pcdp); + early_iounmap(pcdp, 4096); return rc; } --- linux-3.2.0.orig/drivers/firmware/dmi_scan.c +++ linux-3.2.0/drivers/firmware/dmi_scan.c @@ -6,6 +6,7 @@ #include #include #include +#include #include /* @@ -15,6 +16,7 @@ */ static char dmi_empty_string[] = " "; +static u16 __initdata dmi_ver; /* * Catch too early calls to dmi_check_system(): */ @@ -111,16 +113,18 @@ dmi_table(buf, dmi_len, dmi_num, decode, NULL); + add_device_randomness(buf, dmi_len); + dmi_iounmap(buf, dmi_len); return 0; } -static int __init dmi_checksum(const u8 *buf) +static int __init dmi_checksum(const u8 *buf, u8 len) { u8 sum = 0; int a; - for (a = 0; a < 15; a++) + for (a = 0; a < len; a++) sum += buf[a]; return sum == 0; @@ -158,8 +162,10 @@ return; for (i = 0; i < 16 && (is_ff || is_00); i++) { - if(d[i] != 0x00) is_ff = 0; - if(d[i] != 0xFF) is_00 = 0; + if (d[i] != 0x00) + is_00 = 0; + if (d[i] != 0xFF) + is_ff = 0; } if (is_ff || is_00) @@ -169,7 +175,15 @@ if (!s) return; - sprintf(s, "%pUB", d); + /* + * As of version 2.6 of the SMBIOS specification, the first 3 fields of + * the UUID are supposed to be little-endian encoded. The specification + * says that this is the defacto standard. + */ + if (dmi_ver >= 0x0206) + sprintf(s, "%pUL", d); + else + sprintf(s, "%pUB", d); dmi_ident[slot] = s; } @@ -401,26 +415,53 @@ u8 buf[15]; memcpy_fromio(buf, p, 15); - if ((memcmp(buf, "_DMI_", 5) == 0) && dmi_checksum(buf)) { + if (dmi_checksum(buf, 15)) { dmi_num = (buf[13] << 8) | buf[12]; dmi_len = (buf[7] << 8) | buf[6]; dmi_base = (buf[11] << 24) | (buf[10] << 16) | (buf[9] << 8) | buf[8]; - /* - * DMI version 0.0 means that the real version is taken from - * the SMBIOS version, which we don't know at this point. - */ - if (buf[14] != 0) - printk(KERN_INFO "DMI %d.%d present.\n", - buf[14] >> 4, buf[14] & 0xF); - else - printk(KERN_INFO "DMI present.\n"); if (dmi_walk_early(dmi_decode) == 0) { + if (dmi_ver) + pr_info("SMBIOS %d.%d present.\n", + dmi_ver >> 8, dmi_ver & 0xFF); + else { + dmi_ver = (buf[14] & 0xF0) << 4 | + (buf[14] & 0x0F); + pr_info("Legacy DMI %d.%d present.\n", + dmi_ver >> 8, dmi_ver & 0xFF); + } dmi_dump_ids(); return 0; } } + dmi_ver = 0; + return 1; +} + +static int __init smbios_present(const char __iomem *p) +{ + u8 buf[32]; + + memcpy_fromio(buf, p, 32); + if ((buf[5] < 32) && dmi_checksum(buf, buf[5])) { + dmi_ver = (buf[6] << 8) + buf[7]; + + /* Some BIOS report weird SMBIOS version, fix that up */ + switch (dmi_ver) { + case 0x021F: + case 0x0221: + pr_debug("SMBIOS version fixup(2.%d->2.%d)\n", + dmi_ver & 0xFF, 3); + dmi_ver = 0x0203; + break; + case 0x0233: + pr_debug("SMBIOS version fixup(2.%d->2.%d)\n", 51, 6); + dmi_ver = 0x0206; + break; + } + return memcmp(p + 16, "_DMI_", 5) || dmi_present(p + 16); + } return 1; } @@ -429,7 +470,7 @@ char __iomem *p, *q; int rc; - if (efi_enabled) { + if (efi_enabled(EFI_CONFIG_TABLES)) { if (efi.smbios == EFI_INVALID_TABLE_ADDR) goto error; @@ -441,7 +482,7 @@ if (p == NULL) goto error; - rc = dmi_present(p + 0x10); /* offset of _DMI_ string */ + rc = smbios_present(p); dmi_iounmap(p, 32); if (!rc) { dmi_available = 1; @@ -459,7 +500,12 @@ goto error; for (q = p; q < p + 0x10000; q += 16) { - rc = dmi_present(q); + if (memcmp(q, "_SM_", 4) == 0 && q - p <= 0xFFE0) + rc = smbios_present(q); + else if (memcmp(q, "_DMI_", 5) == 0) + rc = dmi_present(q); + else + continue; if (!rc) { dmi_available = 1; dmi_iounmap(p, 0x10000); --- linux-3.2.0.orig/drivers/firmware/iscsi_ibft_find.c +++ linux-3.2.0/drivers/firmware/iscsi_ibft_find.c @@ -99,7 +99,7 @@ /* iBFT 1.03 section 1.4.3.1 mandates that UEFI machines will * only use ACPI for this */ - if (!efi_enabled) + if (!efi_enabled(EFI_BOOT)) find_ibft_in_mem(); if (ibft_addr) { --- linux-3.2.0.orig/drivers/firmware/efivars.c +++ linux-3.2.0/drivers/firmware/efivars.c @@ -92,6 +92,11 @@ #define DUMP_NAME_LEN 52 +static bool efivars_pstore_disable = + IS_ENABLED(CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE); + +module_param_named(pstore_disable, efivars_pstore_disable, bool, 0644); + /* * The maximum size of VariableName + Data = 1024 * Therefore, it's reasonable to save that much @@ -122,6 +127,8 @@ ssize_t (*store)(struct efivar_entry *entry, const char *buf, size_t count); }; +static struct efivars __efivars; + #define PSTORE_EFI_ATTRIBUTES \ (EFI_VARIABLE_NON_VOLATILE | \ EFI_VARIABLE_BOOTSERVICE_ACCESS | \ @@ -146,6 +153,14 @@ efi_char16_t *variable_name, efi_guid_t *vendor_guid); +/* + * Prototype for workqueue functions updating sysfs entry + */ + +static void efivar_update_sysfs_entries(struct work_struct *); +static DECLARE_WORK(efivar_work, efivar_update_sysfs_entries); +static bool efivar_wq_enabled = true; + /* Return the number of unicode characters in data */ static unsigned long utf16_strnlen(efi_char16_t *s, size_t maxlength) @@ -191,6 +206,190 @@ } } +static bool +validate_device_path(struct efi_variable *var, int match, u8 *buffer, + unsigned long len) +{ + struct efi_generic_dev_path *node; + int offset = 0; + + node = (struct efi_generic_dev_path *)buffer; + + if (len < sizeof(*node)) + return false; + + while (offset <= len - sizeof(*node) && + node->length >= sizeof(*node) && + node->length <= len - offset) { + offset += node->length; + + if ((node->type == EFI_DEV_END_PATH || + node->type == EFI_DEV_END_PATH2) && + node->sub_type == EFI_DEV_END_ENTIRE) + return true; + + node = (struct efi_generic_dev_path *)(buffer + offset); + } + + /* + * If we're here then either node->length pointed past the end + * of the buffer or we reached the end of the buffer without + * finding a device path end node. + */ + return false; +} + +static bool +validate_boot_order(struct efi_variable *var, int match, u8 *buffer, + unsigned long len) +{ + /* An array of 16-bit integers */ + if ((len % 2) != 0) + return false; + + return true; +} + +static bool +validate_load_option(struct efi_variable *var, int match, u8 *buffer, + unsigned long len) +{ + u16 filepathlength; + int i, desclength = 0, namelen; + + namelen = utf16_strnlen(var->VariableName, sizeof(var->VariableName)); + + /* Either "Boot" or "Driver" followed by four digits of hex */ + for (i = match; i < match+4; i++) { + if (var->VariableName[i] > 127 || + hex_to_bin(var->VariableName[i] & 0xff) < 0) + return true; + } + + /* Reject it if there's 4 digits of hex and then further content */ + if (namelen > match + 4) + return false; + + /* A valid entry must be at least 8 bytes */ + if (len < 8) + return false; + + filepathlength = buffer[4] | buffer[5] << 8; + + /* + * There's no stored length for the description, so it has to be + * found by hand + */ + desclength = utf16_strsize((efi_char16_t *)(buffer + 6), len - 6) + 2; + + /* Each boot entry must have a descriptor */ + if (!desclength) + return false; + + /* + * If the sum of the length of the description, the claimed filepath + * length and the original header are greater than the length of the + * variable, it's malformed + */ + if ((desclength + filepathlength + 6) > len) + return false; + + /* + * And, finally, check the filepath + */ + return validate_device_path(var, match, buffer + desclength + 6, + filepathlength); +} + +static bool +validate_uint16(struct efi_variable *var, int match, u8 *buffer, + unsigned long len) +{ + /* A single 16-bit integer */ + if (len != 2) + return false; + + return true; +} + +static bool +validate_ascii_string(struct efi_variable *var, int match, u8 *buffer, + unsigned long len) +{ + int i; + + for (i = 0; i < len; i++) { + if (buffer[i] > 127) + return false; + + if (buffer[i] == 0) + return true; + } + + return false; +} + +struct variable_validate { + char *name; + bool (*validate)(struct efi_variable *var, int match, u8 *data, + unsigned long len); +}; + +static const struct variable_validate variable_validate[] = { + { "BootNext", validate_uint16 }, + { "BootOrder", validate_boot_order }, + { "DriverOrder", validate_boot_order }, + { "Boot*", validate_load_option }, + { "Driver*", validate_load_option }, + { "ConIn", validate_device_path }, + { "ConInDev", validate_device_path }, + { "ConOut", validate_device_path }, + { "ConOutDev", validate_device_path }, + { "ErrOut", validate_device_path }, + { "ErrOutDev", validate_device_path }, + { "Timeout", validate_uint16 }, + { "Lang", validate_ascii_string }, + { "PlatformLang", validate_ascii_string }, + { "", NULL }, +}; + +static bool +validate_var(struct efi_variable *var, u8 *data, unsigned long len) +{ + int i; + u16 *unicode_name = var->VariableName; + + for (i = 0; variable_validate[i].validate != NULL; i++) { + const char *name = variable_validate[i].name; + int match; + + for (match = 0; ; match++) { + char c = name[match]; + u16 u = unicode_name[match]; + + /* All special variables are plain ascii */ + if (u > 127) + return true; + + /* Wildcard in the matching name means we've matched */ + if (c == '*') + return variable_validate[i].validate(var, + match, data, len); + + /* Case sensitive match */ + if (c != u) + break; + + /* Reached the end of the string while matching */ + if (!c) + return variable_validate[i].validate(var, + match, data, len); + } + } + + return true; +} + static efi_status_t get_var_data_locked(struct efivars *efivars, struct efi_variable *var) { @@ -209,10 +408,11 @@ get_var_data(struct efivars *efivars, struct efi_variable *var) { efi_status_t status; + unsigned long flags; - spin_lock(&efivars->lock); + spin_lock_irqsave(&efivars->lock, flags); status = get_var_data_locked(efivars, var); - spin_unlock(&efivars->lock); + spin_unlock_irqrestore(&efivars->lock, flags); if (status != EFI_SUCCESS) { printk(KERN_WARNING "efivars: get_variable() failed 0x%lx!\n", @@ -221,6 +421,18 @@ return status; } +static efi_status_t +check_var_size_locked(struct efivars *efivars, u32 attributes, + unsigned long size) +{ + const struct efivar_operations *fops = efivars->ops; + + if (!efivars->ops->query_variable_store) + return EFI_UNSUPPORTED; + + return fops->query_variable_store(attributes, size); +} + static ssize_t efivar_guid_read(struct efivar_entry *entry, char *buf) { @@ -251,12 +463,23 @@ if (status != EFI_SUCCESS) return -EIO; - if (var->Attributes & 0x1) + if (var->Attributes & EFI_VARIABLE_NON_VOLATILE) str += sprintf(str, "EFI_VARIABLE_NON_VOLATILE\n"); - if (var->Attributes & 0x2) + if (var->Attributes & EFI_VARIABLE_BOOTSERVICE_ACCESS) str += sprintf(str, "EFI_VARIABLE_BOOTSERVICE_ACCESS\n"); - if (var->Attributes & 0x4) + if (var->Attributes & EFI_VARIABLE_RUNTIME_ACCESS) str += sprintf(str, "EFI_VARIABLE_RUNTIME_ACCESS\n"); + if (var->Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) + str += sprintf(str, "EFI_VARIABLE_HARDWARE_ERROR_RECORD\n"); + if (var->Attributes & EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS) + str += sprintf(str, + "EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS\n"); + if (var->Attributes & + EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) + str += sprintf(str, + "EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS\n"); + if (var->Attributes & EFI_VARIABLE_APPEND_WRITE) + str += sprintf(str, "EFI_VARIABLE_APPEND_WRITE\n"); return str - buf; } @@ -324,14 +547,25 @@ return -EINVAL; } - spin_lock(&efivars->lock); - status = efivars->ops->set_variable(new_var->VariableName, - &new_var->VendorGuid, - new_var->Attributes, - new_var->DataSize, - new_var->Data); + if ((new_var->Attributes & ~EFI_VARIABLE_MASK) != 0 || + validate_var(new_var, new_var->Data, new_var->DataSize) == false) { + printk(KERN_ERR "efivars: Malformed variable content\n"); + return -EINVAL; + } + + spin_lock_irq(&efivars->lock); + + status = check_var_size_locked(efivars, new_var->Attributes, + new_var->DataSize + utf16_strsize(new_var->VariableName, 1024)); - spin_unlock(&efivars->lock); + if (status == EFI_SUCCESS || status == EFI_UNSUPPORTED) + status = efivars->ops->set_variable(new_var->VariableName, + &new_var->VendorGuid, + new_var->Attributes, + new_var->DataSize, + new_var->Data); + + spin_unlock_irq(&efivars->lock); if (status != EFI_SUCCESS) { printk(KERN_WARNING "efivars: set_variable() failed: status=%lx\n", @@ -428,21 +662,49 @@ .default_attrs = def_attrs, }; -static struct pstore_info efi_pstore_info; - static inline void efivar_unregister(struct efivar_entry *var) { kobject_put(&var->kobj); } -#ifdef CONFIG_PSTORE +static int efi_status_to_err(efi_status_t status) +{ + int err; + + switch (status) { + 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; + default: + err = -EINVAL; + } + + return err; +} + +#ifdef CONFIG_EFI_VARS_PSTORE static int efi_pstore_open(struct pstore_info *psi) { struct efivars *efivars = psi->data; - spin_lock(&efivars->lock); + spin_lock_irq(&efivars->lock); efivars->walk_entry = list_first_entry(&efivars->list, struct efivar_entry, list); return 0; @@ -452,7 +714,7 @@ { struct efivars *efivars = psi->data; - spin_unlock(&efivars->lock); + spin_unlock_irq(&efivars->lock); return 0; } @@ -505,11 +767,30 @@ struct efivars *efivars = psi->data; struct efivar_entry *entry, *found = NULL; int i, ret = 0; + efi_status_t status = EFI_NOT_FOUND; + unsigned long flags; sprintf(stub_name, "dump-type%u-%u-", type, part); sprintf(name, "%s%lu", stub_name, get_seconds()); - spin_lock(&efivars->lock); + spin_lock_irqsave(&efivars->lock, flags); + + if (size) { + /* + * Check if there is a space enough to log. + * size: a size of logging data + * DUMP_NAME_LEN * 2: a maximum size of variable name + */ + + status = check_var_size_locked(efivars, PSTORE_EFI_ATTRIBUTES, + size + DUMP_NAME_LEN * 2); + + if (status) { + spin_unlock_irqrestore(&efivars->lock, flags); + *id = part; + return -ENOSPC; + } + } for (i = 0; i < DUMP_NAME_LEN; i++) efi_name[i] = stub_name[i]; @@ -547,16 +828,13 @@ efivars->ops->set_variable(efi_name, &vendor, PSTORE_EFI_ATTRIBUTES, size, psi->buf); - spin_unlock(&efivars->lock); + spin_unlock_irqrestore(&efivars->lock, flags); if (found) efivar_unregister(found); - if (size) - ret = efivar_create_sysfs_entry(efivars, - utf16_strsize(efi_name, - DUMP_NAME_LEN * 2), - efi_name, &vendor); + if (efivar_wq_enabled) + schedule_work(&efivar_work); *id = part; return ret; @@ -569,36 +847,6 @@ return 0; } -#else -static int efi_pstore_open(struct pstore_info *psi) -{ - return 0; -} - -static int efi_pstore_close(struct pstore_info *psi) -{ - return 0; -} - -static ssize_t efi_pstore_read(u64 *id, enum pstore_type_id *type, - struct timespec *timespec, - char **buf, struct pstore_info *psi) -{ - return -1; -} - -static int efi_pstore_write(enum pstore_type_id type, u64 *id, - unsigned int part, size_t size, struct pstore_info *psi) -{ - return 0; -} - -static int efi_pstore_erase(enum pstore_type_id type, u64 id, - struct pstore_info *psi) -{ - return 0; -} -#endif static struct pstore_info efi_pstore_info = { .owner = THIS_MODULE, @@ -610,6 +858,24 @@ .erase = efi_pstore_erase, }; +static void efivar_pstore_register(struct efivars *efivars) +{ + efivars->efi_pstore_info = efi_pstore_info; + efivars->efi_pstore_info.buf = kmalloc(4096, GFP_KERNEL); + if (efivars->efi_pstore_info.buf) { + efivars->efi_pstore_info.bufsize = 1024; + efivars->efi_pstore_info.data = efivars; + spin_lock_init(&efivars->efi_pstore_info.buf_lock); + pstore_register(&efivars->efi_pstore_info); + } +} +#else +static void efivar_pstore_register(struct efivars *efivars) +{ + return; +} +#endif + static ssize_t efivar_create(struct file *filp, struct kobject *kobj, struct bin_attribute *bin_attr, char *buf, loff_t pos, size_t count) @@ -624,7 +890,13 @@ if (!capable(CAP_SYS_ADMIN)) return -EACCES; - spin_lock(&efivars->lock); + if ((new_var->Attributes & ~EFI_VARIABLE_MASK) != 0 || + validate_var(new_var, new_var->Data, new_var->DataSize) == false) { + printk(KERN_ERR "efivars: Malformed variable content\n"); + return -EINVAL; + } + + spin_lock_irq(&efivars->lock); /* * Does this variable already exist? @@ -642,10 +914,18 @@ } } if (found) { - spin_unlock(&efivars->lock); + spin_unlock_irq(&efivars->lock); return -EINVAL; } + status = check_var_size_locked(efivars, new_var->Attributes, + new_var->DataSize + utf16_strsize(new_var->VariableName, 1024)); + + if (status && status != EFI_UNSUPPORTED) { + spin_unlock_irq(&efivars->lock); + return efi_status_to_err(status); + } + /* now *really* create the variable via EFI */ status = efivars->ops->set_variable(new_var->VariableName, &new_var->VendorGuid, @@ -656,10 +936,10 @@ if (status != EFI_SUCCESS) { printk(KERN_WARNING "efivars: set_variable() failed: status=%lx\n", status); - spin_unlock(&efivars->lock); + spin_unlock_irq(&efivars->lock); return -EIO; } - spin_unlock(&efivars->lock); + spin_unlock_irq(&efivars->lock); /* Create the entry in sysfs. Locking is not required here */ status = efivar_create_sysfs_entry(efivars, @@ -687,7 +967,7 @@ if (!capable(CAP_SYS_ADMIN)) return -EACCES; - spin_lock(&efivars->lock); + spin_lock_irq(&efivars->lock); /* * Does this variable already exist? @@ -705,7 +985,7 @@ } } if (!found) { - spin_unlock(&efivars->lock); + spin_unlock_irq(&efivars->lock); return -EINVAL; } /* force the Attributes/DataSize to 0 to ensure deletion */ @@ -721,18 +1001,115 @@ if (status != EFI_SUCCESS) { printk(KERN_WARNING "efivars: set_variable() failed: status=%lx\n", status); - spin_unlock(&efivars->lock); + spin_unlock_irq(&efivars->lock); return -EIO; } list_del(&search_efivar->list); /* We need to release this lock before unregistering. */ - spin_unlock(&efivars->lock); + spin_unlock_irq(&efivars->lock); efivar_unregister(search_efivar); /* It's dead Jim.... */ return count; } +static bool variable_is_present(efi_char16_t *variable_name, efi_guid_t *vendor) +{ + struct efivar_entry *entry, *n; + struct efivars *efivars = &__efivars; + unsigned long strsize1, strsize2; + bool found = false; + + strsize1 = utf16_strsize(variable_name, 1024); + list_for_each_entry_safe(entry, n, &efivars->list, list) { + strsize2 = utf16_strsize(entry->var.VariableName, 1024); + if (strsize1 == strsize2 && + !memcmp(variable_name, &(entry->var.VariableName), + strsize2) && + !efi_guidcmp(entry->var.VendorGuid, + *vendor)) { + found = true; + break; + } + } + return found; +} + +/* + * Returns the size of variable_name, in bytes, including the + * terminating NULL character, or variable_name_size if no NULL + * character is found among the first variable_name_size bytes. + */ +static unsigned long var_name_strnsize(efi_char16_t *variable_name, + unsigned long variable_name_size) +{ + unsigned long len; + efi_char16_t c; + + /* + * The variable name is, by definition, a NULL-terminated + * string, so make absolutely sure that variable_name_size is + * the value we expect it to be. If not, return the real size. + */ + for (len = 2; len <= variable_name_size; len += sizeof(c)) { + c = variable_name[(len / sizeof(c)) - 1]; + if (!c) + break; + } + + return min(len, variable_name_size); +} + +static void efivar_update_sysfs_entries(struct work_struct *work) +{ + struct efivars *efivars = &__efivars; + efi_guid_t vendor; + efi_char16_t *variable_name; + unsigned long variable_name_size = 1024; + efi_status_t status = EFI_NOT_FOUND; + bool found; + + /* Add new sysfs entries */ + while (1) { + variable_name = kzalloc(variable_name_size, GFP_KERNEL); + if (!variable_name) { + pr_err("efivars: Memory allocation failed.\n"); + return; + } + + spin_lock_irq(&efivars->lock); + found = false; + while (1) { + variable_name_size = 1024; + status = efivars->ops->get_next_variable( + &variable_name_size, + variable_name, + &vendor); + if (status != EFI_SUCCESS) { + break; + } else { + if (!variable_is_present(variable_name, + &vendor)) { + found = true; + break; + } + } + } + spin_unlock_irq(&efivars->lock); + + if (!found) { + kfree(variable_name); + break; + } else { + variable_name_size = var_name_strnsize(variable_name, + variable_name_size); + efivar_create_sysfs_entry(efivars, + variable_name_size, + variable_name, &vendor); + } + } +} + /* * Let's not leave out systab information that snuck into * the efivars driver @@ -834,9 +1211,9 @@ kfree(short_name); short_name = NULL; - spin_lock(&efivars->lock); + spin_lock_irq(&efivars->lock); list_add(&new_efivar->list, &efivars->list); - spin_unlock(&efivars->lock); + spin_unlock_irq(&efivars->lock); return 0; } @@ -905,9 +1282,9 @@ struct efivar_entry *entry, *n; list_for_each_entry_safe(entry, n, &efivars->list, list) { - spin_lock(&efivars->lock); + spin_lock_irq(&efivars->lock); list_del(&entry->list); - spin_unlock(&efivars->lock); + spin_unlock_irq(&efivars->lock); efivar_unregister(entry); } if (efivars->new_var) @@ -920,6 +1297,35 @@ } EXPORT_SYMBOL_GPL(unregister_efivars); +/* + * Print a warning when duplicate EFI variables are encountered and + * disable the sysfs workqueue since the firmware is buggy. + */ +static void dup_variable_bug(efi_char16_t *s16, efi_guid_t *vendor_guid, + unsigned long len16) +{ + size_t i, len8 = len16 / sizeof(efi_char16_t); + char *s8; + + /* + * Disable the workqueue since the algorithm it uses for + * detecting new variables won't work with this buggy + * implementation of GetNextVariableName(). + */ + efivar_wq_enabled = false; + + s8 = kzalloc(len8, GFP_KERNEL); + if (!s8) + return; + + for (i = 0; i < len8; i++) + s8[i] = s16[i]; + + printk(KERN_WARNING "efivars: duplicate variable: %s-%pUl\n", + s8, vendor_guid); + kfree(s8); +} + int register_efivars(struct efivars *efivars, const struct efivar_operations *ops, struct kobject *parent_kobj) @@ -960,6 +1366,24 @@ &vendor_guid); switch (status) { case EFI_SUCCESS: + variable_name_size = var_name_strnsize(variable_name, + variable_name_size); + + /* + * Some firmware implementations return the + * same variable name on multiple calls to + * get_next_variable(). Terminate the loop + * immediately as there is no guarantee that + * we'll ever see a different variable name, + * and may end up looping here forever. + */ + if (variable_is_present(variable_name, &vendor_guid)) { + dup_variable_bug(variable_name, &vendor_guid, + variable_name_size); + status = EFI_NOT_FOUND; + break; + } + efivar_create_sysfs_entry(efivars, variable_name_size, variable_name, @@ -979,15 +1403,8 @@ if (error) unregister_efivars(efivars); - efivars->efi_pstore_info = efi_pstore_info; - - efivars->efi_pstore_info.buf = kmalloc(4096, GFP_KERNEL); - if (efivars->efi_pstore_info.buf) { - efivars->efi_pstore_info.bufsize = 1024; - efivars->efi_pstore_info.data = efivars; - spin_lock_init(&efivars->efi_pstore_info.buf_lock); - pstore_register(&efivars->efi_pstore_info); - } + if (!efivars_pstore_disable) + efivar_pstore_register(efivars); out: kfree(variable_name); @@ -996,7 +1413,6 @@ } EXPORT_SYMBOL_GPL(register_efivars); -static struct efivars __efivars; static struct efivar_operations ops; /* @@ -1015,7 +1431,7 @@ printk(KERN_INFO "EFI Variables Facility v%s %s\n", EFIVARS_VERSION, EFIVARS_DATE); - if (!efi_enabled) + if (!efi_enabled(EFI_RUNTIME_SERVICES)) return 0; /* For now we'll register the efi directory at /sys/firmware/efi */ @@ -1028,6 +1444,7 @@ ops.get_variable = efi.get_variable; ops.set_variable = efi.set_variable; ops.get_next_variable = efi.get_next_variable; + ops.query_variable_store = efi_query_variable_store; error = register_efivars(&__efivars, &ops, efi_kobj); if (error) goto err_put; @@ -1053,7 +1470,9 @@ static void __exit efivars_exit(void) { - if (efi_enabled) { + cancel_work_sync(&efivar_work); + + if (efi_enabled(EFI_RUNTIME_SERVICES)) { unregister_efivars(&__efivars); kobject_put(efi_kobj); } --- linux-3.2.0.orig/ubuntu/Kconfig +++ linux-3.2.0/ubuntu/Kconfig @@ -0,0 +1,34 @@ +menu "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. +# + +## +## +## +source "ubuntu/dm-raid4-5/Kconfig" +## +## +## +source "ubuntu/rfkill/Kconfig" +## +## +## +source "ubuntu/fsam7400/Kconfig" +## +## +## +source "ubuntu/omnibook/Kconfig" +## +## +## +source "ubuntu/aufs/Kconfig" +## +## +## + +endmenu --- linux-3.2.0.orig/ubuntu/Makefile +++ linux-3.2.0/ubuntu/Makefile @@ -0,0 +1,37 @@ +# +# 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_DM_RAID45) += dm-raid4-5/ +## +## +## +#obj-m += rfkill/ +## +## +## +obj-$(CONFIG_FSAM7400) += fsam7400/ +## +## +## +#obj-$(CONFIG_OMNIBOOK) += omnibook/ +## +## +## +obj-$(CONFIG_AUFS_FS) += aufs/ +## +## +## + +# This is a stupid trick to get kbuild to create ubuntu/built-in.o +obj- += foo.o --- linux-3.2.0.orig/ubuntu/aufs-update +++ linux-3.2.0/ubuntu/aufs-update @@ -0,0 +1,51 @@ +#!/bin/bash +# +# NOTE: See aufs/BOM.UPDATING for instructions on how to use this updater. +# + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi +aufs="$1" + +# Get the current tip name +{ + read x url + read x o_log_sha1 + read x o_tip_sha1 +} + + Based on: + pbe5.c by Pedro Ramalhais + + Many thanks to: + Pedro Ramalhais for spending several nights with me on IRC + +*******************************************************************************/ + +#ifdef CONFIG_X86 +#include +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) +#include +#else +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRV_NAME "fsam7400" +#define DRV_VERSION "0.5.2" +#define DRV_DESCRIPTION "SW RF kill switch for Fujitsu Siemens Amilo M 7400 / Maxdata 7000DX" +#define DRV_COPYRIGHT "Copyright(c) 2004 zwobbl" +#define DRV_AUTHOR "Marcel Naziri" +#define DRV_LICENSE "GPL" + +MODULE_DESCRIPTION(DRV_DESCRIPTION); +MODULE_AUTHOR(DRV_AUTHOR); +MODULE_LICENSE(DRV_LICENSE); + +#define RADIO_NONE 0xFFFFFFFF +#define RADIO_OFF 0x00000000 +#define RADIO_ON 0x00000010 + +static int radio = RADIO_NONE; +static int autooff = 1; +static int autoload = 0; +static int uid = 0; +static int gid = 0; +static int debug = 0; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) +module_param(radio, int, 0444); +module_param(autooff, int, 0444); +module_param(autoload, int, 0444); +module_param(uid, int, 0444); +module_param(gid, int, 0444); +module_param(debug, int, 0444); +#else +MODULE_PARM(radio, "i"); +MODULE_PARM(autooff, "i"); +MODULE_PARM(autoload, "i"); +MODULE_PARM(uid, "i"); +MODULE_PARM(gid, "i"); +MODULE_PARM(debug, "i"); +#endif + +MODULE_PARM_DESC(radio, "desired radio state when loading module"); +MODULE_PARM_DESC(autooff, "turns radio off when unloading module (default)"); +MODULE_PARM_DESC(autoload, "load/unloads ipw2100 driver when toggling radio"); +MODULE_PARM_DESC(uid, "user ID for proc entry"); +MODULE_PARM_DESC(gid, "group ID for proc entry"); +MODULE_PARM_DESC(debug, "enables debug output on syslog"); + +/* some more or less useful macros */ + +#define DEBUG if (debug) +#define DEBUG_OUT0(a) DEBUG printk(KERN_INFO DRV_NAME ": " a) +#define DEBUG_OUT1(a,b) DEBUG printk(KERN_INFO DRV_NAME ": " a,b) +#define DEBUG_OUT2(a,b,c) DEBUG printk(KERN_INFO DRV_NAME ": " a,b,c) +#define DEBUG_OUT3(a,b,c,d) DEBUG printk(KERN_INFO DRV_NAME ": " a,b,c,d) + +#define ONOFF(x) (x) ? "ON" : "OFF" +#define RADIO_ONOFF(x) (x) == RADIO_ON ? "ON" : "OFF" +#define TOUL(x) (unsigned long) (x) + +/* + * NOTE: These values were obtained from disassembling the wbutton.sys driver + * installed in the Fujitsu Siemens Amilo M 7400 laptop. The names were guessed, + * so don't rely on them. + */ + +/*** hardware dependant stuff ***/ + +#define BIOS_CODE_ADDR 0x000F0000 +#define BIOS_CODE_ALT_MASK 0xFFFFC000 + +#define BIOS_CODE_MAPSIZE 0x010000 +#define BIOS_CODE_ALT_MAPSIZE 0x004000 + +#define BIOS_MAGIC_COMMAND 0x9610 +#define BIOS_MAGIC_OFF 0x0035 +#define BIOS_MAGIC_ON 0x0135 +#define BIOS_MAGIC_CHECK 0x0235 + +#define PTR_POSITION 5 +#define ALLIGNED_STEP 0x10 + +#define BIOS_SIGN_SIZE 4 +static const char bios_sign[] = { + 0x42, 0x21, 0x55, 0x30 +}; + +#define WLAN_DISABLED_IN_BIOS 0x01 +#define WLAN_ENABLED_IN_BIOS 0x03 + +static unsigned long bios_code = 0; + +static int fsam_bios_routine(int eax, int ebx) +{ + __asm__ __volatile__( + "call *%3 \t\n" + : "=a"(eax) + : "a"(eax), "b"(ebx), "c"(bios_code) + ); + return (eax & 0xFF); +} + +static int fsam_call_bios(int value) +{ + if (bios_code) { + int command = BIOS_MAGIC_COMMAND; + DEBUG_OUT2("bios routine gets parameter eax=%X and ebx=%X\n", + command, value); + value = fsam_bios_routine(command, value); + DEBUG_OUT1("bios routine results %X\n", value); + return value; + } + return ~0; +} + +/* pointer to mapped memory*/ +static void *mem_code = NULL; + +static inline void fsam_unmap_memory(void) +{ + bios_code = 0; + if (mem_code) { + iounmap(mem_code); + } +} + +static inline int fsam_map_memory(void) +{ + const unsigned long max_offset = BIOS_CODE_MAPSIZE - BIOS_SIGN_SIZE - PTR_POSITION; + unsigned long offset; + unsigned int addr; + mem_code = ioremap(BIOS_CODE_ADDR, BIOS_CODE_MAPSIZE); + if (!mem_code) + goto fail; + DEBUG_OUT3("physical memory %x-%x mapped to virtual address %p\n", + BIOS_CODE_ADDR, BIOS_CODE_ADDR+BIOS_CODE_MAPSIZE, mem_code); + for ( offset = 0; offset < max_offset; offset += ALLIGNED_STEP ) + if (check_signature((void*)TOUL(mem_code) + offset, bios_sign, BIOS_SIGN_SIZE)) + break; + if (offset >= max_offset) + goto fail; + DEBUG_OUT1("bios signature found at offset %lx\n", offset); + addr = readl((void*)TOUL(mem_code) + offset + PTR_POSITION); + if (addr < BIOS_CODE_ADDR) { + DEBUG_OUT0("bios routine out of memory range, " + "doing some new memory mapping...\n"); + iounmap(mem_code); + mem_code = NULL; + addr &= BIOS_CODE_ALT_MASK; + mem_code = ioremap(addr, BIOS_CODE_ALT_MAPSIZE); + if (!mem_code) + goto fail; + DEBUG_OUT3("physical memory %x-%x mapped to virtual address %p\n", + addr, addr+BIOS_CODE_ALT_MAPSIZE, mem_code); + addr &= 0x3FFF; + } else + addr &= 0xFFFF; + + bios_code = addr + TOUL(mem_code); + DEBUG_OUT1("supposed address of bios routine is %lx\n", bios_code); + return 1; + fail: + fsam_unmap_memory(); + return 0; +} + +/*** ipw2100 loading ***/ + +static inline void do_ipw2100_loading(int state) +{ + int status; + char *mode; + char *envp[] = { "HOME=/", + "TERM=linux", + "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL }; + if (state == RADIO_ON) { + char *argv[] = { "/sbin/modprobe", "-s", "-k", "ipw2100", NULL }; + mode = "loading"; + status = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC); + } else { + char *argv[] = { "/sbin/rmmod", "ipw2100", NULL }; + mode = "removing"; + status = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC); + } + DEBUG_OUT2("%s of ipw2100 module %s\n", mode, status == 0 ? "successful" : "FAILED"); +} + +/*** interface stuff ***/ + +static void rfkill_set_radio(int value) +{ + radio = value == RADIO_ON ? fsam_call_bios(BIOS_MAGIC_ON) : + fsam_call_bios(BIOS_MAGIC_OFF); + if (autoload) do_ipw2100_loading(radio); +} + +static inline int rfkill_get_radio(void) +{ + return radio; +} + +static inline int rfkill_supported(void) +{ + return bios_code != 0; +} + +static inline void rfkill_initialize(void) { + fsam_map_memory(); + if (rfkill_supported()) { + radio = radio != RADIO_NONE + ? ( radio ? RADIO_ON : RADIO_OFF ) /*module parameter*/ + : ( fsam_call_bios(BIOS_MAGIC_CHECK) == WLAN_ENABLED_IN_BIOS + ? RADIO_ON : RADIO_OFF ); + } +} + +static inline void rfkill_uninitialize(void) { + fsam_unmap_memory(); +} + +/*** proc stuff ***/ + +static inline int common_proc_set_radio(struct file *file, const char *buffer, + unsigned long count, void *data) +{ + unsigned long len = 7; + char newstate[len]; + len = count < len ? count : len; + if ( copy_from_user(newstate, buffer, len) != 0 ) + return -EFAULT; + if ( (*newstate == '1' || *newstate == '0') && + (count == 1 || isspace(newstate[1])) ) + rfkill_set_radio(*newstate == '1' ? RADIO_ON : RADIO_OFF); + else + if ( !strncmp(newstate, "on", 2) && + (count == 2 || isspace(newstate[2])) ) + rfkill_set_radio(RADIO_ON); + else + if ( !strncmp(newstate, "off", 3) && + (count == 3 || isspace(newstate[3])) ) + rfkill_set_radio(RADIO_OFF); + else + if ( !strncmp(newstate, "resume", 6) && + (count == 6 || isspace(newstate[6])) ) + rfkill_set_radio(radio); + return count; +} + +static inline int common_proc_get_radio(char *page, char **start, off_t offset, + int count, int *eof, void *data) +{ + int len = snprintf(page, count, DRV_DESCRIPTION ", v" DRV_VERSION "\n" + " auto-off is %s, auto-load is %s\n", + ONOFF(autooff), ONOFF(autoload)); + len += snprintf(page+len, count-len, " radio state is %s\n", + RADIO_ONOFF(rfkill_get_radio())); + *eof = 1; + return len; +} + +#define PROC_DIR "driver/wireless" +#define PROC_RADIO "radio" + +static struct proc_dir_entry *dir_base = NULL; + +static inline void common_proc_cleanup(void) +{ + if (dir_base) { + remove_proc_entry(PROC_RADIO, dir_base); + remove_proc_entry(PROC_DIR, NULL); + dir_base = NULL; + } +} + +static inline int common_proc_init(void) +{ + struct proc_dir_entry *ent; + int err = 0; + dir_base = proc_mkdir(PROC_DIR, NULL); + if (dir_base == NULL) { + printk(KERN_ERR DRV_NAME ": Unable to initialize /proc/" PROC_DIR "\n"); + err = -ENOMEM; + goto fail; + } + ent = create_proc_entry(PROC_RADIO, + S_IFREG | S_IRUGO | S_IWUSR | S_IWGRP, + dir_base); + if (ent) { + ent->uid = uid; + ent->gid = gid; + ent->read_proc = common_proc_get_radio; + ent->write_proc = common_proc_set_radio; + } else { + printk(KERN_ERR DRV_NAME ": Unable to initialize /proc/" + PROC_DIR "/" PROC_RADIO "\n"); + err = -ENOMEM; + goto fail; + } + return 0; + fail: + common_proc_cleanup(); + return err; +} + +/*** module stuff ***/ + +static int __init common_init(void) +{ + printk(KERN_INFO DRV_NAME ": " DRV_DESCRIPTION ", v" DRV_VERSION "\n"); + printk(KERN_INFO DRV_NAME ": " DRV_COPYRIGHT "\n"); + rfkill_initialize(); + if (rfkill_supported()) { + common_proc_init(); + if (radio != RADIO_NONE) + rfkill_set_radio(radio); + } else + printk(KERN_INFO DRV_NAME ": no supported wireless hardware found\n"); + return 0; +} + +static void __exit common_exit(void) +{ + if (rfkill_supported() && autooff) + rfkill_set_radio(RADIO_OFF); + common_proc_cleanup(); + rfkill_uninitialize(); + printk(KERN_INFO DRV_NAME ": module removed successfully\n"); +} + +module_init(common_init); +module_exit(common_exit); + +#else +#error This driver is only available for X86 architecture +#endif + +/* + 1 2 3 4 5 6 7 +12345678901234567890123456789012345678901234567890123456789012345678901234567890 +*/ --- linux-3.2.0.orig/ubuntu/fsam7400/FILES +++ linux-3.2.0/ubuntu/fsam7400/FILES @@ -0,0 +1,6 @@ +CHANGELOG Recently changes logged +FILES This file +fsam7400.c The source code, what else... :) +INSTALL Installation instructions +Makefile Makefile to build, install, uninstall the module +README don't forget to read it --- linux-3.2.0.orig/ubuntu/fsam7400/README +++ linux-3.2.0/ubuntu/fsam7400/README @@ -0,0 +1,60 @@ +SW RF kill switch for Fujitsu Siemens Amilo M 7400 / Maxdata 7000DX +and compatible hardware. + +Please be sure that CONFIG_CHECK_SIGNATURE=y in your kernel configuration! +Otherwise this module will not compile. + +Nov 22, 2008 - Release 0.5.2 + +This package, with minor modifications from zwobbl's 0.5.1, was created +by legolas558. + +More information at: +http://legolas558.iragan.com/fsam7400 + +Sep 24, 2006 - Release 0.5.1 +------------ ----- ----- ---- --- -- - + +* Fix: possible null pointer dereference in proc code + +* Fix: module exit code was mistakenly disabled + + +for prior changes see CHANGELOG + + +TODO +------------ ----- ----- ---- --- -- - + +* Fix bugs (if there are any ;)) + + +------------ ----- ----- ---- --- -- - + +Have a look in INSTALL for further details to get things working! + + +License +------------ ----- ----- ---- --- -- - + + Copyright(c) 2006 zwobbl. All rights reserved. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program; if not, write to the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + The full GNU General Public License is included in this distribution in the + file called LICENSE. + + Contact Information: + Marcel Naziri --- linux-3.2.0.orig/ubuntu/fsam7400/INSTALL +++ linux-3.2.0/ubuntu/fsam7400/INSTALL @@ -0,0 +1,110 @@ +SW RF kill switch for Fujitsu Siemens Amilo M 7400 +Copyright (C) 2006, zwobbl +For additional information, contact Marcel Naziri + +COMPILER REQUIREMENTS +--------- ------ ---- --- -- -- - - + +You need to be using GCC v3.0 or higher in order to build the fsam7400 module. +Using older versions will result in several compilation errors. + + +INSTALLING THE BITS +------------ ----- ----- ---- --- -- - + +# Unpack the source tarball + +% tar xvzf fsam7400-0.x.y.tgz +% cd fsam7400-0.x.y + +Make sure to be root when performing the following operations. Also you must +have a kernel source tree installed under /usr/src/linux + +# Build the kernel module + +% make + +Debug output is enabled by default. This is a good idea if you use the fsam module for +the first time, so you get some nice information printed on kernel log. If you don't +need the messages anymore, you have to comment out the line CONFIG_IPW2100_DEBUG=y in +the Makefile. + +# Install the kernel module + +% make install + +Now you are ready for... + + +LOADING THE DRIVER +------------ ----- ----- ---- --- -- - + +Also easy to go... :) + +% modprobe fsam7400 + +If you have set "wireless device" enabled in your "Advanced" bios settings of +your Amilo M 7400 radio should be turned on at this point. So you're done! +Watch out your kernel log if supported hardware was found. :) + + +RADIO STATE AT LOADING + +You can override the wireless bios setting with + +% modprobe fsam7400 radio=[0|1] + + +PROC FILESYSTEM + +If your hardware is supported by the driver you will get an entry in /proc +called driver/wireless/radio which will give you state information by typing + +% cat /proc/driver/wireless/radio + +You can turn the radio on and off at your will with + +% echo [1|on] > /proc/driver/wireless/radio +% echo [0|off] > /proc/driver/wireless/radio + +The module also recognizes parameters to set the user- and/or group-ID to +something other than root, so you don't have to adjust it by hand. +Just select your favourite IDs and type + +% modprobe fsam7400 uid=1000 gid=500 + +Note, that /proc/driver/wireless/radio will only be read- and writeable by +user & group and only readable by others. + +If you want to see debug output on syslog use the following parameter when +loading the module + +% modprobe fsam7400 debug=1 + + +AUTOMATION FEATURES + +By default the driver will turn off the radio automatically short before the +module is unloaded. To override this behaviour load the module adding the +following parameter + +% modprobe fsam7400 autooff=0 + +Also since 0.4.0 the driver can automatically modprobe the ipw2100 module when +radio state changes to on and rmmods it when radio is turned off by fsam7400. +To enable autoload support, use + +% modprobe fsam7400 autoload=1 + + +HIBERNATION SUPPORT + +After hibernation and boot up of the system the wireless radio might be disabled +again. To revert to the radio state before hibernation just put the following +in the wakeup script + +% echo resume > /proc/driver/wireless/radio + + + +That's all for now. Have fun with the driver! --- linux-3.2.0.orig/ubuntu/fsam7400/BOM +++ linux-3.2.0/ubuntu/fsam7400/BOM @@ -0,0 +1,2 @@ +Downloaded from: http://www.iragan.com/linux/fsam7400/ +Current Version: 0.5.2 (2008 Nov 22) --- linux-3.2.0.orig/ubuntu/fsam7400/LICENSE +++ linux-3.2.0/ubuntu/fsam7400/LICENSE @@ -0,0 +1,338 @@ +"This software program is licensed subject to the GNU General Public License +(GPL). Version 2, June 1991, available at +" + +GNU General Public License + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to +share and change it. By contrast, the GNU General Public License is intended +to guarantee your freedom to share and change free software--to make sure +the software is free for all its users. This General Public License applies +to most of the Free Software Foundation's software and to any other program +whose authors commit to using it. (Some other Free Software Foundation +software is covered by the GNU Library General Public License instead.) You +can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom +to distribute copies of free software (and charge for this service if you +wish), that you receive source code or can get it if you want it, that you +can change the software or use pieces of it in new free programs; and that +you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to +deny you these rights or to ask you to surrender the rights. These +restrictions translate to certain responsibilities for you if you distribute +copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or +for a fee, you must give the recipients all the rights that you have. You +must make sure that they, too, receive or can get the source code. And you +must show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If +the software is modified by someone else and passed on, we want its +recipients to know that what they have is not the original, so that any +problems introduced by others will not reflect on the original authors' +reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program +proprietary. To prevent this, we have made it clear that any patent must be +licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice + placed by the copyright holder saying it may be distributed under the + terms of this General Public License. The "Program", below, refers to any + such program or work, and a "work based on the Program" means either the + Program or any derivative work under copyright law: that is to say, a + work containing the Program or a portion of it, either verbatim or with + modifications and/or translated into another language. (Hereinafter, + translation is included without limitation in the term "modification".) + Each licensee is addressed as "you". + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of running + the Program is not restricted, and the output from the Program is covered + only if its contents constitute a work based on the Program (independent + of having been made by running the Program). Whether that is true depends + on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code + as you receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice and + disclaimer of warranty; keep intact all the notices that refer to this + License and to the absence of any warranty; and give any other recipients + of the Program a copy of this License along with the Program. + + You may charge a fee for the physical act of transferring a copy, and you + may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, + thus forming a work based on the Program, and copy and distribute such + modifications or work under the terms of Section 1 above, provided that + you also meet all of these conditions: + + * a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + * b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any part + thereof, to be licensed as a whole at no charge to all third parties + under the terms of this License. + + * c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive + use in the most ordinary way, to print or display an announcement + including an appropriate copyright notice and a notice that there is + no warranty (or else, saying that you provide a warranty) and that + users may redistribute the program under these conditions, and + telling the user how to view a copy of this License. (Exception: if + the Program itself is interactive but does not normally print such + an announcement, your work based on the Program is not required to + print an announcement.) + + These requirements apply to the modified work as a whole. If identifiable + sections of that work are not derived from the Program, and can be + reasonably considered independent and separate works in themselves, then + this License, and its terms, do not apply to those sections when you + distribute them as separate works. But when you distribute the same + sections as part of a whole which is a work based on the Program, the + distribution of the whole must be on the terms of this License, whose + permissions for other licensees extend to the entire whole, and thus to + each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of a + storage or distribution medium does not bring the other work under the + scope of this License. + +3. You may copy and distribute the Program (or a work based on it, under + Section 2) in object code or executable form under the terms of Sections + 1 and 2 above provided that you also do one of the following: + + * a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 + above on a medium customarily used for software interchange; or, + + * b) Accompany it with a written offer, valid for at least three years, + to give any third party, for a charge no more than your cost of + physically performing source distribution, a complete machine- + readable copy of the corresponding source code, to be distributed + under the terms of Sections 1 and 2 above on a medium customarily + used for software interchange; or, + + * c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed + only for noncommercial distribution and only if you received the + program in object code or executable form with such an offer, in + accord with Subsection b above.) + + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source code + means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to control + compilation and installation of the executable. However, as a special + exception, the source code distributed need not include anything that is + normally distributed (in either source or binary form) with the major + components (compiler, kernel, and so on) of the operating system on which + the executable runs, unless that component itself accompanies the + executable. + + If distribution of executable or object code is made by offering access + to copy from a designated place, then offering equivalent access to copy + the source code from the same place counts as distribution of the source + code, even though third parties are not compelled to copy the source + along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as + expressly provided under this License. Any attempt otherwise to copy, + modify, sublicense or distribute the Program is void, and will + automatically terminate your rights under this License. However, parties + who have received copies, or rights, from you under this License will not + have their licenses terminated so long as such parties remain in full + compliance. + +5. You are not required to accept this License, since you have not signed + it. However, nothing else grants you permission to modify or distribute + the Program or its derivative works. These actions are prohibited by law + if you do not accept this License. Therefore, by modifying or + distributing the Program (or any work based on the Program), you + indicate your acceptance of this License to do so, and all its terms and + conditions for copying, distributing or modifying the Program or works + based on it. + +6. Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further restrictions + on the recipients' exercise of the rights granted herein. You are not + responsible for enforcing compliance by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot distribute + so as to satisfy simultaneously your obligations under this License and + any other pertinent obligations, then as a consequence you may not + distribute the Program at all. For example, if a patent license would + not permit royalty-free redistribution of the Program by all those who + receive copies directly or indirectly through you, then the only way you + could satisfy both it and this License would be to refrain entirely from + distribution of the Program. + + If any portion of this section is held invalid or unenforceable under any + particular circumstance, the balance of the section is intended to apply + and the section as a whole is intended to apply in other circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is implemented + by public license practices. Many people have made generous contributions + to the wide range of software distributed through that system in + reliance on consistent application of that system; it is up to the + author/donor to decide if he or she is willing to distribute software + through any other system and a licensee cannot impose that choice. + + This section is intended to make thoroughly clear what is believed to be + a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain + countries either by patents or by copyrighted interfaces, the original + copyright holder who places the Program under this License may add an + explicit geographical distribution limitation excluding those countries, + so that distribution is permitted only in or among countries not thus + excluded. In such case, this License incorporates the limitation as if + written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new versions of + the General Public License from time to time. Such new versions will be + similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and "any + later version", you have the option of following the terms and + conditions either of that version or of any later version published by + the Free Software Foundation. If the Program does not specify a version + number of this License, you may choose any version ever published by the + Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs + whose distribution conditions are different, write to the author to ask + for permission. For software which is copyrighted by the Free Software + Foundation, write to the Free Software Foundation; we sometimes make + exceptions for this. Our decision will be guided by the two goals of + preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + + NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY + FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN + OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES + PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER + EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE + ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH + YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL + NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR + DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL + DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM + (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED + INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF + THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR + OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it free +software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey the +exclusion of warranty; and each file should have at least the "copyright" +line and a pointer to where the full notice is found. + +one line to give the program's name and an idea of what it does. +Copyright (C) yyyy name of author + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2 of the License, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 59 +Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when +it starts in an interactive mode: + +Gnomovision version 69, Copyright (C) year name of author Gnomovision comes +with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free +software, and you are welcome to redistribute it under certain conditions; +type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright interest in the program +'Gnomovision' (which makes passes at compilers) written by James Hacker. + +signature of Ty Coon, 1 April 1989 +Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. --- linux-3.2.0.orig/ubuntu/include/Kbuild +++ linux-3.2.0/ubuntu/include/Kbuild @@ -0,0 +1 @@ +header-y += linux/ --- linux-3.2.0.orig/ubuntu/include/README +++ linux-3.2.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-3.2.0.orig/ubuntu/include/linux/Kbuild +++ linux-3.2.0/ubuntu/include/linux/Kbuild @@ -0,0 +1 @@ +header-y += aufs_type.h --- linux-3.2.0.orig/ubuntu/include/linux/aufs_type.h +++ linux-3.2.0/ubuntu/include/linux/aufs_type.h @@ -0,0 +1,233 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __AUFS_TYPE_H__ +#define __AUFS_TYPE_H__ + +#define AUFS_NAME "aufs" + +#ifdef __KERNEL__ +/* + * define it before including all other headers. + * sched.h may use pr_* macros before defining "current", so define the + * no-current version first, and re-define later. + */ +#define pr_fmt(fmt) AUFS_NAME " %s:%d: " fmt, __func__, __LINE__ +#include +#undef pr_fmt +#define pr_fmt(fmt) AUFS_NAME " %s:%d:%s[%d]: " fmt, \ + __func__, __LINE__, current->comm, current->pid +#else +#include +#include +#endif /* __KERNEL__ */ + +#include + +#define AUFS_VERSION "3.2-20120109" + +/* todo? move this to linux-2.6.19/include/magic.h */ +#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's') + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_BRANCH_MAX_127 +typedef int8_t aufs_bindex_t; +#define AUFS_BRANCH_MAX 127 +#else +typedef int16_t aufs_bindex_t; +#ifdef CONFIG_AUFS_BRANCH_MAX_511 +#define AUFS_BRANCH_MAX 511 +#elif defined(CONFIG_AUFS_BRANCH_MAX_1023) +#define AUFS_BRANCH_MAX 1023 +#elif defined(CONFIG_AUFS_BRANCH_MAX_32767) +#define AUFS_BRANCH_MAX 32767 +#endif +#endif + +#ifdef __KERNEL__ +#ifndef AUFS_BRANCH_MAX +#error unknown CONFIG_AUFS_BRANCH_MAX value +#endif +#endif /* __KERNEL__ */ + +/* ---------------------------------------------------------------------- */ + +#define AUFS_FSTYPE AUFS_NAME + +#define AUFS_ROOT_INO 2 +#define AUFS_FIRST_INO 11 + +#define AUFS_WH_PFX ".wh." +#define AUFS_WH_PFX_LEN ((int)sizeof(AUFS_WH_PFX) - 1) +#define AUFS_WH_TMP_LEN 4 +/* a limit for rmdir/rename a dir */ +#define AUFS_MAX_NAMELEN (NAME_MAX \ + - AUFS_WH_PFX_LEN * 2 /* doubly whiteouted */\ + - 1 /* dot */\ + - AUFS_WH_TMP_LEN) /* hex */ +#define AUFS_XINO_FNAME "." AUFS_NAME ".xino" +#define AUFS_XINO_DEFPATH "/tmp/" AUFS_XINO_FNAME +#define AUFS_XINO_TRUNC_INIT 64 /* blocks */ +#define AUFS_XINO_TRUNC_STEP 4 /* blocks */ +#define AUFS_DIRWH_DEF 3 +#define AUFS_RDCACHE_DEF 10 /* seconds */ +#define AUFS_RDCACHE_MAX 3600 /* seconds */ +#define AUFS_RDBLK_DEF 512 /* bytes */ +#define AUFS_RDHASH_DEF 32 +#define AUFS_WKQ_NAME AUFS_NAME "d" +#define AUFS_MFS_DEF_SEC 30 /* seconds */ +#define AUFS_MFS_MAX_SEC 3600 /* seconds */ +#define AUFS_PLINK_WARN 100 /* number of plinks */ + +/* pseudo-link maintenace under /proc */ +#define AUFS_PLINK_MAINT_NAME "plink_maint" +#define AUFS_PLINK_MAINT_DIR "fs/" AUFS_NAME +#define AUFS_PLINK_MAINT_PATH AUFS_PLINK_MAINT_DIR "/" AUFS_PLINK_MAINT_NAME + +#define AUFS_DIROPQ_NAME AUFS_WH_PFX ".opq" /* whiteouted doubly */ +#define AUFS_WH_DIROPQ AUFS_WH_PFX AUFS_DIROPQ_NAME + +#define AUFS_BASE_NAME AUFS_WH_PFX AUFS_NAME +#define AUFS_PLINKDIR_NAME AUFS_WH_PFX "plnk" +#define AUFS_ORPHDIR_NAME AUFS_WH_PFX "orph" + +/* doubly whiteouted */ +#define AUFS_WH_BASE AUFS_WH_PFX AUFS_BASE_NAME +#define AUFS_WH_PLINKDIR AUFS_WH_PFX AUFS_PLINKDIR_NAME +#define AUFS_WH_ORPHDIR AUFS_WH_PFX AUFS_ORPHDIR_NAME + +/* branch permissions and attributes */ +#define AUFS_BRPERM_RW "rw" +#define AUFS_BRPERM_RO "ro" +#define AUFS_BRPERM_RR "rr" +#define AUFS_BRRATTR_WH "wh" +#define AUFS_BRWATTR_NLWH "nolwh" + +/* ---------------------------------------------------------------------- */ + +/* ioctl */ +enum { + /* readdir in userspace */ + AuCtl_RDU, + AuCtl_RDU_INO, + + /* pathconf wrapper */ + AuCtl_WBR_FD, + + /* busy inode */ + AuCtl_IBUSY +}; + +/* borrowed from linux/include/linux/kernel.h */ +#ifndef ALIGN +#define ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a)-1) +#define __ALIGN_MASK(x, mask) (((x)+(mask))&~(mask)) +#endif + +/* borrowed from linux/include/linux/compiler-gcc3.h */ +#ifndef __aligned +#define __aligned(x) __attribute__((aligned(x))) +#endif + +#ifdef __KERNEL__ +#ifndef __packed +#define __packed __attribute__((packed)) +#endif +#endif + +struct au_rdu_cookie { + uint64_t h_pos; + int16_t bindex; + uint8_t flags; + uint8_t pad; + uint32_t generation; +} __aligned(8); + +struct au_rdu_ent { + uint64_t ino; + int16_t bindex; + uint8_t type; + uint8_t nlen; + uint8_t wh; + char name[0]; +} __aligned(8); + +static inline int au_rdu_len(int nlen) +{ + /* include the terminating NULL */ + return ALIGN(sizeof(struct au_rdu_ent) + nlen + 1, + sizeof(uint64_t)); +} + +union au_rdu_ent_ul { + struct au_rdu_ent __user *e; + uint64_t ul; +}; + +enum { + AufsCtlRduV_SZ, + AufsCtlRduV_End +}; + +struct aufs_rdu { + /* input */ + union { + uint64_t sz; /* AuCtl_RDU */ + uint64_t nent; /* AuCtl_RDU_INO */ + }; + union au_rdu_ent_ul ent; + uint16_t verify[AufsCtlRduV_End]; + + /* input/output */ + uint32_t blk; + + /* output */ + union au_rdu_ent_ul tail; + /* number of entries which were added in a single call */ + uint64_t rent; + uint8_t full; + uint8_t shwh; + + struct au_rdu_cookie cookie; +} __aligned(8); + +/* ---------------------------------------------------------------------- */ + +struct aufs_wbr_fd { + uint32_t oflags; + int16_t brid; +} __aligned(8); + +/* ---------------------------------------------------------------------- */ + +struct aufs_ibusy { + uint64_t ino, h_ino; + int16_t bindex; +} __aligned(8); + +/* ---------------------------------------------------------------------- */ + +#define AuCtlType 'A' +#define AUFS_CTL_RDU _IOWR(AuCtlType, AuCtl_RDU, struct aufs_rdu) +#define AUFS_CTL_RDU_INO _IOWR(AuCtlType, AuCtl_RDU_INO, struct aufs_rdu) +#define AUFS_CTL_WBR_FD _IOW(AuCtlType, AuCtl_WBR_FD, \ + struct aufs_wbr_fd) +#define AUFS_CTL_IBUSY _IOWR(AuCtlType, AuCtl_IBUSY, struct aufs_ibusy) + +#endif /* __AUFS_TYPE_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/poll.c +++ linux-3.2.0/ubuntu/aufs/poll.c @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * poll operation + * There is only one filesystem which implements ->poll operation, currently. + */ + +#include "aufs.h" + +unsigned int aufs_poll(struct file *file, poll_table *wait) +{ + unsigned int mask; + int err; + struct file *h_file; + struct dentry *dentry; + struct super_block *sb; + + /* We should pretend an error happened. */ + mask = POLLERR /* | POLLIN | POLLOUT */; + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0); + if (unlikely(err)) + goto out; + + /* it is not an error if h_file has no operation */ + mask = DEFAULT_POLLMASK; + h_file = au_hf_top(file); + if (h_file->f_op && h_file->f_op->poll) + mask = h_file->f_op->poll(h_file, wait); + + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + +out: + si_read_unlock(sb); + AuTraceErr((int)mask); + return mask; +} --- linux-3.2.0.orig/ubuntu/aufs/wbr_policy.c +++ linux-3.2.0/ubuntu/aufs/wbr_policy.c @@ -0,0 +1,700 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * policies for selecting one among multiple writable branches + */ + +#include +#include "aufs.h" + +/* subset of cpup_attr() */ +static noinline_for_stack +int au_cpdown_attr(struct path *h_path, struct dentry *h_src) +{ + int err, sbits; + struct iattr ia; + struct inode *h_isrc; + + h_isrc = h_src->d_inode; + ia.ia_valid = ATTR_FORCE | ATTR_MODE | ATTR_UID | ATTR_GID; + ia.ia_mode = h_isrc->i_mode; + ia.ia_uid = h_isrc->i_uid; + ia.ia_gid = h_isrc->i_gid; + sbits = !!(ia.ia_mode & (S_ISUID | S_ISGID)); + au_cpup_attr_flags(h_path->dentry->d_inode, h_isrc); + err = vfsub_sio_notify_change(h_path, &ia); + + /* is this nfs only? */ + if (!err && sbits && au_test_nfs(h_path->dentry->d_sb)) { + ia.ia_valid = ATTR_FORCE | ATTR_MODE; + ia.ia_mode = h_isrc->i_mode; + err = vfsub_sio_notify_change(h_path, &ia); + } + + return err; +} + +#define AuCpdown_PARENT_OPQ 1 +#define AuCpdown_WHED (1 << 1) +#define AuCpdown_MADE_DIR (1 << 2) +#define AuCpdown_DIROPQ (1 << 3) +#define au_ftest_cpdown(flags, name) ((flags) & AuCpdown_##name) +#define au_fset_cpdown(flags, name) \ + do { (flags) |= AuCpdown_##name; } while (0) +#define au_fclr_cpdown(flags, name) \ + do { (flags) &= ~AuCpdown_##name; } while (0) + +struct au_cpdown_dir_args { + struct dentry *parent; + unsigned int flags; +}; + +static int au_cpdown_dir_opq(struct dentry *dentry, aufs_bindex_t bdst, + struct au_cpdown_dir_args *a) +{ + int err; + struct dentry *opq_dentry; + + opq_dentry = au_diropq_create(dentry, bdst); + err = PTR_ERR(opq_dentry); + if (IS_ERR(opq_dentry)) + goto out; + dput(opq_dentry); + au_fset_cpdown(a->flags, DIROPQ); + +out: + return err; +} + +static int au_cpdown_dir_wh(struct dentry *dentry, struct dentry *h_parent, + struct inode *dir, aufs_bindex_t bdst) +{ + int err; + struct path h_path; + struct au_branch *br; + + br = au_sbr(dentry->d_sb, bdst); + h_path.dentry = au_wh_lkup(h_parent, &dentry->d_name, br); + err = PTR_ERR(h_path.dentry); + if (IS_ERR(h_path.dentry)) + goto out; + + err = 0; + if (h_path.dentry->d_inode) { + h_path.mnt = br->br_mnt; + err = au_wh_unlink_dentry(au_h_iptr(dir, bdst), &h_path, + dentry); + } + dput(h_path.dentry); + +out: + return err; +} + +static int au_cpdown_dir(struct dentry *dentry, aufs_bindex_t bdst, + struct dentry *h_parent, void *arg) +{ + int err, rerr; + aufs_bindex_t bopq, bstart; + struct path h_path; + struct dentry *parent; + struct inode *h_dir, *h_inode, *inode, *dir; + struct au_cpdown_dir_args *args = arg; + + bstart = au_dbstart(dentry); + /* dentry is di-locked */ + parent = dget_parent(dentry); + dir = parent->d_inode; + h_dir = h_parent->d_inode; + AuDebugOn(h_dir != au_h_iptr(dir, bdst)); + IMustLock(h_dir); + + err = au_lkup_neg(dentry, bdst); + if (unlikely(err < 0)) + goto out; + h_path.dentry = au_h_dptr(dentry, bdst); + h_path.mnt = au_sbr_mnt(dentry->d_sb, bdst); + err = vfsub_sio_mkdir(au_h_iptr(dir, bdst), &h_path, + S_IRWXU | S_IRUGO | S_IXUGO); + if (unlikely(err)) + goto out_put; + au_fset_cpdown(args->flags, MADE_DIR); + + bopq = au_dbdiropq(dentry); + au_fclr_cpdown(args->flags, WHED); + au_fclr_cpdown(args->flags, DIROPQ); + if (au_dbwh(dentry) == bdst) + au_fset_cpdown(args->flags, WHED); + if (!au_ftest_cpdown(args->flags, PARENT_OPQ) && bopq <= bdst) + au_fset_cpdown(args->flags, PARENT_OPQ); + h_inode = h_path.dentry->d_inode; + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + if (au_ftest_cpdown(args->flags, WHED)) { + err = au_cpdown_dir_opq(dentry, bdst, args); + if (unlikely(err)) { + mutex_unlock(&h_inode->i_mutex); + goto out_dir; + } + } + + err = au_cpdown_attr(&h_path, au_h_dptr(dentry, bstart)); + mutex_unlock(&h_inode->i_mutex); + if (unlikely(err)) + goto out_opq; + + if (au_ftest_cpdown(args->flags, WHED)) { + err = au_cpdown_dir_wh(dentry, h_parent, dir, bdst); + if (unlikely(err)) + goto out_opq; + } + + inode = dentry->d_inode; + if (au_ibend(inode) < bdst) + au_set_ibend(inode, bdst); + au_set_h_iptr(inode, bdst, au_igrab(h_inode), + au_hi_flags(inode, /*isdir*/1)); + goto out; /* success */ + + /* revert */ +out_opq: + if (au_ftest_cpdown(args->flags, DIROPQ)) { + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + rerr = au_diropq_remove(dentry, bdst); + mutex_unlock(&h_inode->i_mutex); + if (unlikely(rerr)) { + AuIOErr("failed removing diropq for %.*s b%d (%d)\n", + AuDLNPair(dentry), bdst, rerr); + err = -EIO; + goto out; + } + } +out_dir: + if (au_ftest_cpdown(args->flags, MADE_DIR)) { + rerr = vfsub_sio_rmdir(au_h_iptr(dir, bdst), &h_path); + if (unlikely(rerr)) { + AuIOErr("failed removing %.*s b%d (%d)\n", + AuDLNPair(dentry), bdst, rerr); + err = -EIO; + } + } +out_put: + au_set_h_dptr(dentry, bdst, NULL); + if (au_dbend(dentry) == bdst) + au_update_dbend(dentry); +out: + dput(parent); + return err; +} + +int au_cpdown_dirs(struct dentry *dentry, aufs_bindex_t bdst) +{ + int err; + struct au_cpdown_dir_args args = { + .parent = dget_parent(dentry), + .flags = 0 + }; + + err = au_cp_dirs(dentry, bdst, au_cpdown_dir, &args); + dput(args.parent); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* policies for create */ + +static int au_wbr_nonopq(struct dentry *dentry, aufs_bindex_t bindex) +{ + int err, i, j, ndentry; + aufs_bindex_t bopq; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry **dentries, *parent, *d; + + err = au_dpages_init(&dpages, GFP_NOFS); + if (unlikely(err)) + goto out; + parent = dget_parent(dentry); + err = au_dcsub_pages_rev_aufs(&dpages, parent, /*do_include*/0); + if (unlikely(err)) + goto out_free; + + err = bindex; + for (i = 0; i < dpages.ndpage; i++) { + dpage = dpages.dpages + i; + dentries = dpage->dentries; + ndentry = dpage->ndentry; + for (j = 0; j < ndentry; j++) { + d = dentries[j]; + di_read_lock_parent2(d, !AuLock_IR); + bopq = au_dbdiropq(d); + di_read_unlock(d, !AuLock_IR); + if (bopq >= 0 && bopq < err) + err = bopq; + } + } + +out_free: + dput(parent); + au_dpages_free(&dpages); +out: + return err; +} + +static int au_wbr_bu(struct super_block *sb, aufs_bindex_t bindex) +{ + for (; bindex >= 0; bindex--) + if (!au_br_rdonly(au_sbr(sb, bindex))) + return bindex; + return -EROFS; +} + +/* top down parent */ +static int au_wbr_create_tdp(struct dentry *dentry, int isdir __maybe_unused) +{ + int err; + aufs_bindex_t bstart, bindex; + struct super_block *sb; + struct dentry *parent, *h_parent; + + sb = dentry->d_sb; + bstart = au_dbstart(dentry); + err = bstart; + if (!au_br_rdonly(au_sbr(sb, bstart))) + goto out; + + err = -EROFS; + parent = dget_parent(dentry); + for (bindex = au_dbstart(parent); bindex < bstart; bindex++) { + h_parent = au_h_dptr(parent, bindex); + if (!h_parent || !h_parent->d_inode) + continue; + + if (!au_br_rdonly(au_sbr(sb, bindex))) { + err = bindex; + break; + } + } + dput(parent); + + /* bottom up here */ + if (unlikely(err < 0)) { + err = au_wbr_bu(sb, bstart - 1); + if (err >= 0) + err = au_wbr_nonopq(dentry, err); + } + +out: + AuDbg("b%d\n", err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* an exception for the policy other than tdp */ +static int au_wbr_create_exp(struct dentry *dentry) +{ + int err; + aufs_bindex_t bwh, bdiropq; + struct dentry *parent; + + err = -1; + bwh = au_dbwh(dentry); + parent = dget_parent(dentry); + bdiropq = au_dbdiropq(parent); + if (bwh >= 0) { + if (bdiropq >= 0) + err = min(bdiropq, bwh); + else + err = bwh; + AuDbg("%d\n", err); + } else if (bdiropq >= 0) { + err = bdiropq; + AuDbg("%d\n", err); + } + dput(parent); + + if (err >= 0) + err = au_wbr_nonopq(dentry, err); + + if (err >= 0 && au_br_rdonly(au_sbr(dentry->d_sb, err))) + err = -1; + + AuDbg("%d\n", err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* round robin */ +static int au_wbr_create_init_rr(struct super_block *sb) +{ + int err; + + err = au_wbr_bu(sb, au_sbend(sb)); + atomic_set(&au_sbi(sb)->si_wbr_rr_next, -err); /* less important */ + /* smp_mb(); */ + + AuDbg("b%d\n", err); + return err; +} + +static int au_wbr_create_rr(struct dentry *dentry, int isdir) +{ + int err, nbr; + unsigned int u; + aufs_bindex_t bindex, bend; + struct super_block *sb; + atomic_t *next; + + err = au_wbr_create_exp(dentry); + if (err >= 0) + goto out; + + sb = dentry->d_sb; + next = &au_sbi(sb)->si_wbr_rr_next; + bend = au_sbend(sb); + nbr = bend + 1; + for (bindex = 0; bindex <= bend; bindex++) { + if (!isdir) { + err = atomic_dec_return(next) + 1; + /* modulo for 0 is meaningless */ + if (unlikely(!err)) + err = atomic_dec_return(next) + 1; + } else + err = atomic_read(next); + AuDbg("%d\n", err); + u = err; + err = u % nbr; + AuDbg("%d\n", err); + if (!au_br_rdonly(au_sbr(sb, err))) + break; + err = -EROFS; + } + + if (err >= 0) + err = au_wbr_nonopq(dentry, err); + +out: + AuDbg("%d\n", err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* most free space */ +static void au_mfs(struct dentry *dentry) +{ + struct super_block *sb; + struct au_branch *br; + struct au_wbr_mfs *mfs; + aufs_bindex_t bindex, bend; + int err; + unsigned long long b, bavail; + struct path h_path; + /* reduce the stack usage */ + struct kstatfs *st; + + st = kmalloc(sizeof(*st), GFP_NOFS); + if (unlikely(!st)) { + AuWarn1("failed updating mfs(%d), ignored\n", -ENOMEM); + return; + } + + bavail = 0; + sb = dentry->d_sb; + mfs = &au_sbi(sb)->si_wbr_mfs; + MtxMustLock(&mfs->mfs_lock); + mfs->mfs_bindex = -EROFS; + mfs->mfsrr_bytes = 0; + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + if (au_br_rdonly(br)) + continue; + + /* sb->s_root for NFS is unreliable */ + h_path.mnt = br->br_mnt; + h_path.dentry = h_path.mnt->mnt_root; + err = vfs_statfs(&h_path, st); + if (unlikely(err)) { + AuWarn1("failed statfs, b%d, %d\n", bindex, err); + continue; + } + + /* when the available size is equal, select the lower one */ + BUILD_BUG_ON(sizeof(b) < sizeof(st->f_bavail) + || sizeof(b) < sizeof(st->f_bsize)); + b = st->f_bavail * st->f_bsize; + br->br_wbr->wbr_bytes = b; + if (b >= bavail) { + bavail = b; + mfs->mfs_bindex = bindex; + mfs->mfs_jiffy = jiffies; + } + } + + mfs->mfsrr_bytes = bavail; + AuDbg("b%d\n", mfs->mfs_bindex); + kfree(st); +} + +static int au_wbr_create_mfs(struct dentry *dentry, int isdir __maybe_unused) +{ + int err; + struct super_block *sb; + struct au_wbr_mfs *mfs; + + err = au_wbr_create_exp(dentry); + if (err >= 0) + goto out; + + sb = dentry->d_sb; + mfs = &au_sbi(sb)->si_wbr_mfs; + mutex_lock(&mfs->mfs_lock); + if (time_after(jiffies, mfs->mfs_jiffy + mfs->mfs_expire) + || mfs->mfs_bindex < 0 + || au_br_rdonly(au_sbr(sb, mfs->mfs_bindex))) + au_mfs(dentry); + mutex_unlock(&mfs->mfs_lock); + err = mfs->mfs_bindex; + + if (err >= 0) + err = au_wbr_nonopq(dentry, err); + +out: + AuDbg("b%d\n", err); + return err; +} + +static int au_wbr_create_init_mfs(struct super_block *sb) +{ + struct au_wbr_mfs *mfs; + + mfs = &au_sbi(sb)->si_wbr_mfs; + mutex_init(&mfs->mfs_lock); + mfs->mfs_jiffy = 0; + mfs->mfs_bindex = -EROFS; + + return 0; +} + +static int au_wbr_create_fin_mfs(struct super_block *sb __maybe_unused) +{ + mutex_destroy(&au_sbi(sb)->si_wbr_mfs.mfs_lock); + return 0; +} + +/* ---------------------------------------------------------------------- */ + +/* most free space and then round robin */ +static int au_wbr_create_mfsrr(struct dentry *dentry, int isdir) +{ + int err; + struct au_wbr_mfs *mfs; + + err = au_wbr_create_mfs(dentry, isdir); + if (err >= 0) { + mfs = &au_sbi(dentry->d_sb)->si_wbr_mfs; + mutex_lock(&mfs->mfs_lock); + if (mfs->mfsrr_bytes < mfs->mfsrr_watermark) + err = au_wbr_create_rr(dentry, isdir); + mutex_unlock(&mfs->mfs_lock); + } + + AuDbg("b%d\n", err); + return err; +} + +static int au_wbr_create_init_mfsrr(struct super_block *sb) +{ + int err; + + au_wbr_create_init_mfs(sb); /* ignore */ + err = au_wbr_create_init_rr(sb); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* top down parent and most free space */ +static int au_wbr_create_pmfs(struct dentry *dentry, int isdir) +{ + int err, e2; + unsigned long long b; + aufs_bindex_t bindex, bstart, bend; + struct super_block *sb; + struct dentry *parent, *h_parent; + struct au_branch *br; + + err = au_wbr_create_tdp(dentry, isdir); + if (unlikely(err < 0)) + goto out; + parent = dget_parent(dentry); + bstart = au_dbstart(parent); + bend = au_dbtaildir(parent); + if (bstart == bend) + goto out_parent; /* success */ + + e2 = au_wbr_create_mfs(dentry, isdir); + if (e2 < 0) + goto out_parent; /* success */ + + /* when the available size is equal, select upper one */ + sb = dentry->d_sb; + br = au_sbr(sb, err); + b = br->br_wbr->wbr_bytes; + AuDbg("b%d, %llu\n", err, b); + + for (bindex = bstart; bindex <= bend; bindex++) { + h_parent = au_h_dptr(parent, bindex); + if (!h_parent || !h_parent->d_inode) + continue; + + br = au_sbr(sb, bindex); + if (!au_br_rdonly(br) && br->br_wbr->wbr_bytes > b) { + b = br->br_wbr->wbr_bytes; + err = bindex; + AuDbg("b%d, %llu\n", err, b); + } + } + + if (err >= 0) + err = au_wbr_nonopq(dentry, err); + +out_parent: + dput(parent); +out: + AuDbg("b%d\n", err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* policies for copyup */ + +/* top down parent */ +static int au_wbr_copyup_tdp(struct dentry *dentry) +{ + return au_wbr_create_tdp(dentry, /*isdir, anything is ok*/0); +} + +/* bottom up parent */ +static int au_wbr_copyup_bup(struct dentry *dentry) +{ + int err; + aufs_bindex_t bindex, bstart; + struct dentry *parent, *h_parent; + struct super_block *sb; + + err = -EROFS; + sb = dentry->d_sb; + parent = dget_parent(dentry); + bstart = au_dbstart(parent); + for (bindex = au_dbstart(dentry); bindex >= bstart; bindex--) { + h_parent = au_h_dptr(parent, bindex); + if (!h_parent || !h_parent->d_inode) + continue; + + if (!au_br_rdonly(au_sbr(sb, bindex))) { + err = bindex; + break; + } + } + dput(parent); + + /* bottom up here */ + if (unlikely(err < 0)) + err = au_wbr_bu(sb, bstart - 1); + + AuDbg("b%d\n", err); + return err; +} + +/* bottom up */ +static int au_wbr_copyup_bu(struct dentry *dentry) +{ + int err; + aufs_bindex_t bstart; + + bstart = au_dbstart(dentry); + err = au_wbr_bu(dentry->d_sb, bstart); + AuDbg("b%d\n", err); + if (err > bstart) + err = au_wbr_nonopq(dentry, err); + + AuDbg("b%d\n", err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct au_wbr_copyup_operations au_wbr_copyup_ops[] = { + [AuWbrCopyup_TDP] = { + .copyup = au_wbr_copyup_tdp + }, + [AuWbrCopyup_BUP] = { + .copyup = au_wbr_copyup_bup + }, + [AuWbrCopyup_BU] = { + .copyup = au_wbr_copyup_bu + } +}; + +struct au_wbr_create_operations au_wbr_create_ops[] = { + [AuWbrCreate_TDP] = { + .create = au_wbr_create_tdp + }, + [AuWbrCreate_RR] = { + .create = au_wbr_create_rr, + .init = au_wbr_create_init_rr + }, + [AuWbrCreate_MFS] = { + .create = au_wbr_create_mfs, + .init = au_wbr_create_init_mfs, + .fin = au_wbr_create_fin_mfs + }, + [AuWbrCreate_MFSV] = { + .create = au_wbr_create_mfs, + .init = au_wbr_create_init_mfs, + .fin = au_wbr_create_fin_mfs + }, + [AuWbrCreate_MFSRR] = { + .create = au_wbr_create_mfsrr, + .init = au_wbr_create_init_mfsrr, + .fin = au_wbr_create_fin_mfs + }, + [AuWbrCreate_MFSRRV] = { + .create = au_wbr_create_mfsrr, + .init = au_wbr_create_init_mfsrr, + .fin = au_wbr_create_fin_mfs + }, + [AuWbrCreate_PMFS] = { + .create = au_wbr_create_pmfs, + .init = au_wbr_create_init_mfs, + .fin = au_wbr_create_fin_mfs + }, + [AuWbrCreate_PMFSV] = { + .create = au_wbr_create_pmfs, + .init = au_wbr_create_init_mfs, + .fin = au_wbr_create_fin_mfs + } +}; --- linux-3.2.0.orig/ubuntu/aufs/conf.mk +++ linux-3.2.0/ubuntu/aufs/conf.mk @@ -0,0 +1,38 @@ + +AuConfStr = CONFIG_AUFS_FS=${CONFIG_AUFS_FS} + +define AuConf +ifdef ${1} +AuConfStr += ${1}=${${1}} +endif +endef + +AuConfAll = BRANCH_MAX_127 BRANCH_MAX_511 BRANCH_MAX_1023 BRANCH_MAX_32767 \ + SBILIST \ + HNOTIFY HFSNOTIFY \ + EXPORT INO_T_64 \ + RDU \ + PROC_MAP \ + SP_IATTR \ + SHWH \ + BR_RAMFS \ + BR_FUSE POLL \ + BR_HFSPLUS \ + BDEV_LOOP \ + DEBUG MAGIC_SYSRQ +$(foreach i, ${AuConfAll}, \ + $(eval $(call AuConf,CONFIG_AUFS_${i}))) + +AuConfName = ${obj}/conf.str +${AuConfName}.tmp: FORCE + @echo ${AuConfStr} | tr ' ' '\n' | sed -e 's/^/"/' -e 's/$$/\\n"/' > $@ +${AuConfName}: ${AuConfName}.tmp + @diff -q $< $@ > /dev/null 2>&1 || { \ + echo ' GEN ' $@; \ + cp -p $< $@; \ + } +FORCE: +clean-files += ${AuConfName} ${AuConfName}.tmp +${obj}/sysfs.o: ${AuConfName} + +-include ${srctree}/${src}/conf_priv.mk --- linux-3.2.0.orig/ubuntu/aufs/hfsnotify.c +++ linux-3.2.0/ubuntu/aufs/hfsnotify.c @@ -0,0 +1,247 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * fsnotify for the lower directories + */ + +#include "aufs.h" + +/* FS_IN_IGNORED is unnecessary */ +static const __u32 AuHfsnMask = (FS_MOVED_TO | FS_MOVED_FROM | FS_DELETE + | FS_CREATE | FS_EVENT_ON_CHILD); +static DECLARE_WAIT_QUEUE_HEAD(au_hfsn_wq); + +static void au_hfsn_free_mark(struct fsnotify_mark *mark) +{ + struct au_hnotify *hn = container_of(mark, struct au_hnotify, + hn_mark); + AuDbg("here\n"); + hn->hn_mark_dead = 1; + smp_mb(); + wake_up_all(&au_hfsn_wq); +} + +static int au_hfsn_alloc(struct au_hinode *hinode) +{ + struct au_hnotify *hn; + struct super_block *sb; + struct au_branch *br; + struct fsnotify_mark *mark; + aufs_bindex_t bindex; + + hn = hinode->hi_notify; + sb = hn->hn_aufs_inode->i_sb; + bindex = au_br_index(sb, hinode->hi_id); + br = au_sbr(sb, bindex); + hn->hn_mark_dead = 0; + mark = &hn->hn_mark; + fsnotify_init_mark(mark, au_hfsn_free_mark); + mark->mask = AuHfsnMask; + /* + * by udba rename or rmdir, aufs assign a new inode to the known + * h_inode, so specify 1 to allow dups. + */ + return fsnotify_add_mark(mark, br->br_hfsn_group, hinode->hi_inode, + /*mnt*/NULL, /*allow_dups*/1); +} + +static void au_hfsn_free(struct au_hinode *hinode) +{ + struct au_hnotify *hn; + struct fsnotify_mark *mark; + + hn = hinode->hi_notify; + mark = &hn->hn_mark; + fsnotify_destroy_mark(mark); + fsnotify_put_mark(mark); + + /* TODO: bad approach */ + wait_event(au_hfsn_wq, hn->hn_mark_dead); +} + +/* ---------------------------------------------------------------------- */ + +static void au_hfsn_ctl(struct au_hinode *hinode, int do_set) +{ + struct fsnotify_mark *mark; + + mark = &hinode->hi_notify->hn_mark; + spin_lock(&mark->lock); + if (do_set) { + AuDebugOn(mark->mask & AuHfsnMask); + mark->mask |= AuHfsnMask; + } else { + AuDebugOn(!(mark->mask & AuHfsnMask)); + mark->mask &= ~AuHfsnMask; + } + spin_unlock(&mark->lock); + /* fsnotify_recalc_inode_mask(hinode->hi_inode); */ +} + +/* ---------------------------------------------------------------------- */ + +/* #define AuDbgHnotify */ +#ifdef AuDbgHnotify +static char *au_hfsn_name(u32 mask) +{ +#ifdef CONFIG_AUFS_DEBUG +#define test_ret(flag) if (mask & flag) \ + return #flag; + test_ret(FS_ACCESS); + test_ret(FS_MODIFY); + test_ret(FS_ATTRIB); + test_ret(FS_CLOSE_WRITE); + test_ret(FS_CLOSE_NOWRITE); + test_ret(FS_OPEN); + test_ret(FS_MOVED_FROM); + test_ret(FS_MOVED_TO); + test_ret(FS_CREATE); + test_ret(FS_DELETE); + test_ret(FS_DELETE_SELF); + test_ret(FS_MOVE_SELF); + test_ret(FS_UNMOUNT); + test_ret(FS_Q_OVERFLOW); + test_ret(FS_IN_IGNORED); + test_ret(FS_IN_ISDIR); + test_ret(FS_IN_ONESHOT); + test_ret(FS_EVENT_ON_CHILD); + return ""; +#undef test_ret +#else + return "??"; +#endif +} +#endif + +/* ---------------------------------------------------------------------- */ + +static int au_hfsn_handle_event(struct fsnotify_group *group, + struct fsnotify_mark *inode_mark, + struct fsnotify_mark *vfsmount_mark, + struct fsnotify_event *event) +{ + int err; + struct au_hnotify *hnotify; + struct inode *h_dir, *h_inode; + __u32 mask; + struct qstr h_child_qstr = { + .name = event->file_name, + .len = event->name_len + }; + + AuDebugOn(event->data_type != FSNOTIFY_EVENT_INODE); + + err = 0; + /* if FS_UNMOUNT happens, there must be another bug */ + mask = event->mask; + AuDebugOn(mask & FS_UNMOUNT); + if (mask & (FS_IN_IGNORED | FS_UNMOUNT)) + goto out; + + h_dir = event->to_tell; + h_inode = event->inode; +#ifdef AuDbgHnotify + au_debug(1); + if (1 || h_child_qstr.len != sizeof(AUFS_XINO_FNAME) - 1 + || strncmp(h_child_qstr.name, AUFS_XINO_FNAME, h_child_qstr.len)) { + AuDbg("i%lu, mask 0x%x %s, hcname %.*s, hi%lu\n", + h_dir->i_ino, mask, au_hfsn_name(mask), + AuLNPair(&h_child_qstr), h_inode ? h_inode->i_ino : 0); + /* WARN_ON(1); */ + } + au_debug(0); +#endif + + AuDebugOn(!inode_mark); + hnotify = container_of(inode_mark, struct au_hnotify, hn_mark); + err = au_hnotify(h_dir, hnotify, mask, &h_child_qstr, h_inode); + +out: + return err; +} + +/* isn't it waste to ask every registered 'group'? */ +/* copied from linux/fs/notify/inotify/inotify_fsnotiry.c */ +/* it should be exported to modules */ +static bool au_hfsn_should_send_event(struct fsnotify_group *group, + struct inode *h_inode, + struct fsnotify_mark *inode_mark, + struct fsnotify_mark *vfsmount_mark, + __u32 mask, void *data, int data_type) +{ + mask = (mask & ~FS_EVENT_ON_CHILD); + return inode_mark->mask & mask; +} + +static struct fsnotify_ops au_hfsn_ops = { + .should_send_event = au_hfsn_should_send_event, + .handle_event = au_hfsn_handle_event +}; + +/* ---------------------------------------------------------------------- */ + +static void au_hfsn_fin_br(struct au_branch *br) +{ + if (br->br_hfsn_group) + fsnotify_put_group(br->br_hfsn_group); +} + +static int au_hfsn_init_br(struct au_branch *br, int perm) +{ + br->br_hfsn_group = NULL; + br->br_hfsn_ops = au_hfsn_ops; + return 0; +} + +static int au_hfsn_reset_br(unsigned int udba, struct au_branch *br, int perm) +{ + int err; + + err = 0; + if (udba != AuOpt_UDBA_HNOTIFY + || !au_br_hnotifyable(perm)) { + au_hfsn_fin_br(br); + br->br_hfsn_group = NULL; + goto out; + } + + if (br->br_hfsn_group) + goto out; + + br->br_hfsn_group = fsnotify_alloc_group(&br->br_hfsn_ops); + if (IS_ERR(br->br_hfsn_group)) { + err = PTR_ERR(br->br_hfsn_group); + pr_err("fsnotify_alloc_group() failed, %d\n", err); + br->br_hfsn_group = NULL; + } + +out: + AuTraceErr(err); + return err; +} + +const struct au_hnotify_op au_hnotify_op = { + .ctl = au_hfsn_ctl, + .alloc = au_hfsn_alloc, + .free = au_hfsn_free, + + .reset_br = au_hfsn_reset_br, + .fin_br = au_hfsn_fin_br, + .init_br = au_hfsn_init_br +}; --- linux-3.2.0.orig/ubuntu/aufs/whout.h +++ linux-3.2.0/ubuntu/aufs/whout.h @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * whiteout for logical deletion and opaque directory + */ + +#ifndef __AUFS_WHOUT_H__ +#define __AUFS_WHOUT_H__ + +#ifdef __KERNEL__ + +#include "dir.h" + +/* whout.c */ +int au_wh_name_alloc(struct qstr *wh, const struct qstr *name); +struct au_branch; +int au_wh_test(struct dentry *h_parent, struct qstr *wh_name, + struct au_branch *br, int try_sio); +int au_diropq_test(struct dentry *h_dentry, struct au_branch *br); +struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct au_branch *br, + struct qstr *prefix); +int au_whtmp_ren(struct dentry *h_dentry, struct au_branch *br); +int au_wh_unlink_dentry(struct inode *h_dir, struct path *h_path, + struct dentry *dentry); +int au_wh_init(struct dentry *h_parent, struct au_branch *br, + struct super_block *sb); + +/* diropq flags */ +#define AuDiropq_CREATE 1 +#define au_ftest_diropq(flags, name) ((flags) & AuDiropq_##name) +#define au_fset_diropq(flags, name) \ + do { (flags) |= AuDiropq_##name; } while (0) +#define au_fclr_diropq(flags, name) \ + do { (flags) &= ~AuDiropq_##name; } while (0) + +struct dentry *au_diropq_sio(struct dentry *dentry, aufs_bindex_t bindex, + unsigned int flags); +struct dentry *au_wh_lkup(struct dentry *h_parent, struct qstr *base_name, + struct au_branch *br); +struct dentry *au_wh_create(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent); + +/* real rmdir for the whiteout-ed dir */ +struct au_whtmp_rmdir { + struct inode *dir; + struct au_branch *br; + struct dentry *wh_dentry; + struct au_nhash whlist; +}; + +struct au_whtmp_rmdir *au_whtmp_rmdir_alloc(struct super_block *sb, gfp_t gfp); +void au_whtmp_rmdir_free(struct au_whtmp_rmdir *whtmp); +int au_whtmp_rmdir(struct inode *dir, aufs_bindex_t bindex, + struct dentry *wh_dentry, struct au_nhash *whlist); +void au_whtmp_kick_rmdir(struct inode *dir, aufs_bindex_t bindex, + struct dentry *wh_dentry, struct au_whtmp_rmdir *args); + +/* ---------------------------------------------------------------------- */ + +static inline struct dentry *au_diropq_create(struct dentry *dentry, + aufs_bindex_t bindex) +{ + return au_diropq_sio(dentry, bindex, AuDiropq_CREATE); +} + +static inline int au_diropq_remove(struct dentry *dentry, aufs_bindex_t bindex) +{ + return PTR_ERR(au_diropq_sio(dentry, bindex, !AuDiropq_CREATE)); +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_WHOUT_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/Kconfig +++ linux-3.2.0/ubuntu/aufs/Kconfig @@ -0,0 +1,203 @@ +config AUFS_FS + tristate "Aufs (Advanced multi layered unification filesystem) support" + depends on EXPERIMENTAL + help + Aufs is a stackable unification filesystem such as Unionfs, + which unifies several directories and provides a merged single + directory. + In the early days, aufs was entirely re-designed and + re-implemented Unionfs Version 1.x series. Introducing many + original ideas, approaches and improvements, it becomes totally + different from Unionfs while keeping the basic features. + +if AUFS_FS +choice + prompt "Maximum number of branches" + default AUFS_BRANCH_MAX_127 + help + Specifies the maximum number of branches (or member directories) + in a single aufs. The larger value consumes more system + resources and has a minor impact to performance. +config AUFS_BRANCH_MAX_127 + bool "127" + help + Specifies the maximum number of branches (or member directories) + in a single aufs. The larger value consumes more system + resources and has a minor impact to performance. +config AUFS_BRANCH_MAX_511 + bool "511" + help + Specifies the maximum number of branches (or member directories) + in a single aufs. The larger value consumes more system + resources and has a minor impact to performance. +config AUFS_BRANCH_MAX_1023 + bool "1023" + help + Specifies the maximum number of branches (or member directories) + in a single aufs. The larger value consumes more system + resources and has a minor impact to performance. +config AUFS_BRANCH_MAX_32767 + bool "32767" + help + Specifies the maximum number of branches (or member directories) + in a single aufs. The larger value consumes more system + resources and has a minor impact to performance. +endchoice + +config AUFS_SBILIST + bool + depends on AUFS_MAGIC_SYSRQ || PROC_FS + default y + help + Automatic configuration for internal use. + When aufs supports Magic SysRq or /proc, enabled automatically. + +config AUFS_HNOTIFY + bool "Detect direct branch access (bypassing aufs)" + help + If you want to modify files on branches directly, eg. bypassing aufs, + and want aufs to detect the changes of them fully, then enable this + option and use 'udba=notify' mount option. + Currently there is only one available configuration, "fsnotify". + It will have a negative impact to the performance. + See detail in aufs.5. + +choice + prompt "method" if AUFS_HNOTIFY + default AUFS_HFSNOTIFY +config AUFS_HFSNOTIFY + bool "fsnotify" + select FSNOTIFY +endchoice + +config AUFS_EXPORT + bool "NFS-exportable aufs" + depends on EXPORTFS + help + If you want to export your mounted aufs via NFS, then enable this + option. There are several requirements for this configuration. + See detail in aufs.5. + +config AUFS_INO_T_64 + bool + depends on AUFS_EXPORT + depends on 64BIT && !(ALPHA || S390) + default y + help + Automatic configuration for internal use. + /* typedef unsigned long/int __kernel_ino_t */ + /* alpha and s390x are int */ + +config AUFS_RDU + bool "Readdir in userspace" + help + Aufs has two methods to provide a merged view for a directory, + by a user-space library and by kernel-space natively. The latter + is always enabled but sometimes large and slow. + If you enable this option, install the library in aufs2-util + package, and set some environment variables for your readdir(3), + then the work will be handled in user-space which generally + shows better performance in most cases. + See detail in aufs.5. + +config AUFS_PROC_MAP + bool "support for /proc/maps and lsof(1)" + depends on PROC_FS + help + When you issue mmap(2) in aufs, it is actually a direct mmap(2) + call to the file on the branch fs since the file in aufs is + purely virtual. And the file path printed in /proc/maps (and + others) will be the path on the branch fs. In most cases, it + does no harm. But some utilities like lsof(1) may confuse since + the utility or user may expect the file path in aufs to be + printed. + To address this issue, aufs provides a patch which introduces a + new member called vm_prfile into struct vm_are_struct. The patch + is meaningless without enabling this configuration since nobody + sets the new vm_prfile member. + If you don't apply the patch, then enabling this configuration + will cause a compile error. + This approach is fragile since if someone else make some changes + around vm_file, then vm_prfile may not work anymore. As a + workaround such case, aufs provides this configuration. If you + disable it, then lsof(1) may produce incorrect result but the + problem will be gone even if the aufs patch is applied (I hope). + +config AUFS_SP_IATTR + bool "Respect the attributes (mtime/ctime mainly) of special files" + help + When you write something to a special file, some attributes of it + (mtime/ctime mainly) may be updated. Generally such updates are + less important (actually some device drivers and NFS ignore + it). But some applications (such like test program) requires + such updates. If you need these updates, then enable this + configuration which introduces some overhead. + Currently this configuration handles FIFO only. + +config AUFS_SHWH + bool "Show whiteouts" + help + If you want to make the whiteouts in aufs visible, then enable + this option and specify 'shwh' mount option. Although it may + sounds like philosophy or something, but in technically it + simply shows the name of whiteout with keeping its behaviour. + +config AUFS_BR_RAMFS + bool "Ramfs (initramfs/rootfs) as an aufs branch" + help + If you want to use ramfs as an aufs branch fs, then enable this + option. Generally tmpfs is recommended. + Aufs prohibited them to be a branch fs by default, because + initramfs becomes unusable after switch_root or something + generally. If you sets initramfs as an aufs branch and boot your + system by switch_root, you will meet a problem easily since the + files in initramfs may be inaccessible. + Unless you are going to use ramfs as an aufs branch fs without + switch_root or something, leave it N. + +config AUFS_BR_FUSE + bool "Fuse fs as an aufs branch" + depends on FUSE_FS + select AUFS_POLL + help + If you want to use fuse-based userspace filesystem as an aufs + branch fs, then enable this option. + It implements the internal poll(2) operation which is + implemented by fuse only (curretnly). + +config AUFS_POLL + bool + help + Automatic configuration for internal use. + +config AUFS_BR_HFSPLUS + bool "Hfsplus as an aufs branch" + depends on HFSPLUS_FS + default y + help + If you want to use hfsplus fs as an aufs branch fs, then enable + this option. This option introduces a small overhead at + copying-up a file on hfsplus. + +config AUFS_BDEV_LOOP + bool + depends on BLK_DEV_LOOP + default y + help + Automatic configuration for internal use. + Convert =[ym] into =y. + +config AUFS_DEBUG + bool "Debug aufs" + help + Enable this to compile aufs internal debug code. + It will have a negative impact to the performance. + +config AUFS_MAGIC_SYSRQ + bool + depends on AUFS_DEBUG && MAGIC_SYSRQ + default y + help + Automatic configuration for internal use. + When aufs supports Magic SysRq, enabled automatically. +endif --- linux-3.2.0.orig/ubuntu/aufs/cpup.c +++ linux-3.2.0/ubuntu/aufs/cpup.c @@ -0,0 +1,1079 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * copy-up functions, see wbr_policy.c for copy-down + */ + +#include +#include +#include "aufs.h" + +void au_cpup_attr_flags(struct inode *dst, struct inode *src) +{ + const unsigned int mask = S_DEAD | S_SWAPFILE | S_PRIVATE + | S_NOATIME | S_NOCMTIME; + + dst->i_flags |= src->i_flags & ~mask; + if (au_test_fs_notime(dst->i_sb)) + dst->i_flags |= S_NOATIME | S_NOCMTIME; +} + +void au_cpup_attr_timesizes(struct inode *inode) +{ + struct inode *h_inode; + + h_inode = au_h_iptr(inode, au_ibstart(inode)); + fsstack_copy_attr_times(inode, h_inode); + fsstack_copy_inode_size(inode, h_inode); +} + +void au_cpup_attr_nlink(struct inode *inode, int force) +{ + struct inode *h_inode; + struct super_block *sb; + aufs_bindex_t bindex, bend; + + sb = inode->i_sb; + bindex = au_ibstart(inode); + h_inode = au_h_iptr(inode, bindex); + if (!force + && !S_ISDIR(h_inode->i_mode) + && au_opt_test(au_mntflags(sb), PLINK) + && au_plink_test(inode)) + return; + + set_nlink(inode, h_inode->i_nlink); + + /* + * fewer nlink makes find(1) noisy, but larger nlink doesn't. + * it may includes whplink directory. + */ + if (S_ISDIR(h_inode->i_mode)) { + bend = au_ibend(inode); + for (bindex++; bindex <= bend; bindex++) { + h_inode = au_h_iptr(inode, bindex); + if (h_inode) + au_add_nlink(inode, h_inode); + } + } +} + +void au_cpup_attr_changeable(struct inode *inode) +{ + struct inode *h_inode; + + h_inode = au_h_iptr(inode, au_ibstart(inode)); + inode->i_mode = h_inode->i_mode; + inode->i_uid = h_inode->i_uid; + inode->i_gid = h_inode->i_gid; + au_cpup_attr_timesizes(inode); + au_cpup_attr_flags(inode, h_inode); +} + +void au_cpup_igen(struct inode *inode, struct inode *h_inode) +{ + struct au_iinfo *iinfo = au_ii(inode); + + IiMustWriteLock(inode); + + iinfo->ii_higen = h_inode->i_generation; + iinfo->ii_hsb1 = h_inode->i_sb; +} + +void au_cpup_attr_all(struct inode *inode, int force) +{ + struct inode *h_inode; + + h_inode = au_h_iptr(inode, au_ibstart(inode)); + au_cpup_attr_changeable(inode); + if (inode->i_nlink > 0) + au_cpup_attr_nlink(inode, force); + inode->i_rdev = h_inode->i_rdev; + inode->i_blkbits = h_inode->i_blkbits; + au_cpup_igen(inode, h_inode); +} + +/* ---------------------------------------------------------------------- */ + +/* Note: dt_dentry and dt_h_dentry are not dget/dput-ed */ + +/* keep the timestamps of the parent dir when cpup */ +void au_dtime_store(struct au_dtime *dt, struct dentry *dentry, + struct path *h_path) +{ + struct inode *h_inode; + + dt->dt_dentry = dentry; + dt->dt_h_path = *h_path; + h_inode = h_path->dentry->d_inode; + dt->dt_atime = h_inode->i_atime; + dt->dt_mtime = h_inode->i_mtime; + /* smp_mb(); */ +} + +void au_dtime_revert(struct au_dtime *dt) +{ + struct iattr attr; + int err; + + attr.ia_atime = dt->dt_atime; + attr.ia_mtime = dt->dt_mtime; + attr.ia_valid = ATTR_FORCE | ATTR_MTIME | ATTR_MTIME_SET + | ATTR_ATIME | ATTR_ATIME_SET; + + err = vfsub_notify_change(&dt->dt_h_path, &attr); + if (unlikely(err)) + pr_warning("restoring timestamps failed(%d). ignored\n", err); +} + +/* ---------------------------------------------------------------------- */ + +static noinline_for_stack +int cpup_iattr(struct dentry *dst, aufs_bindex_t bindex, struct dentry *h_src) +{ + int err, sbits; + struct iattr ia; + struct path h_path; + struct inode *h_isrc, *h_idst; + + h_path.dentry = au_h_dptr(dst, bindex); + h_idst = h_path.dentry->d_inode; + h_path.mnt = au_sbr_mnt(dst->d_sb, bindex); + h_isrc = h_src->d_inode; + ia.ia_valid = ATTR_FORCE | ATTR_UID | ATTR_GID + | ATTR_ATIME | ATTR_MTIME + | ATTR_ATIME_SET | ATTR_MTIME_SET; + ia.ia_uid = h_isrc->i_uid; + ia.ia_gid = h_isrc->i_gid; + ia.ia_atime = h_isrc->i_atime; + ia.ia_mtime = h_isrc->i_mtime; + if (h_idst->i_mode != h_isrc->i_mode + && !S_ISLNK(h_idst->i_mode)) { + ia.ia_valid |= ATTR_MODE; + ia.ia_mode = h_isrc->i_mode; + } + sbits = !!(h_isrc->i_mode & (S_ISUID | S_ISGID)); + au_cpup_attr_flags(h_idst, h_isrc); + err = vfsub_notify_change(&h_path, &ia); + + /* is this nfs only? */ + if (!err && sbits && au_test_nfs(h_path.dentry->d_sb)) { + ia.ia_valid = ATTR_FORCE | ATTR_MODE; + ia.ia_mode = h_isrc->i_mode; + err = vfsub_notify_change(&h_path, &ia); + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_do_copy_file(struct file *dst, struct file *src, loff_t len, + char *buf, unsigned long blksize) +{ + int err; + size_t sz, rbytes, wbytes; + unsigned char all_zero; + char *p, *zp; + struct mutex *h_mtx; + /* reduce stack usage */ + struct iattr *ia; + + zp = page_address(ZERO_PAGE(0)); + if (unlikely(!zp)) + return -ENOMEM; /* possible? */ + + err = 0; + all_zero = 0; + while (len) { + AuDbg("len %lld\n", len); + sz = blksize; + if (len < blksize) + sz = len; + + rbytes = 0; + /* todo: signal_pending? */ + while (!rbytes || err == -EAGAIN || err == -EINTR) { + rbytes = vfsub_read_k(src, buf, sz, &src->f_pos); + err = rbytes; + } + if (unlikely(err < 0)) + break; + + all_zero = 0; + if (len >= rbytes && rbytes == blksize) + all_zero = !memcmp(buf, zp, rbytes); + if (!all_zero) { + wbytes = rbytes; + p = buf; + while (wbytes) { + size_t b; + + b = vfsub_write_k(dst, p, wbytes, &dst->f_pos); + err = b; + /* todo: signal_pending? */ + if (unlikely(err == -EAGAIN || err == -EINTR)) + continue; + if (unlikely(err < 0)) + break; + wbytes -= b; + p += b; + } + } else { + loff_t res; + + AuLabel(hole); + res = vfsub_llseek(dst, rbytes, SEEK_CUR); + err = res; + if (unlikely(res < 0)) + break; + } + len -= rbytes; + err = 0; + } + + /* the last block may be a hole */ + if (!err && all_zero) { + AuLabel(last hole); + + err = 1; + if (au_test_nfs(dst->f_dentry->d_sb)) { + /* nfs requires this step to make last hole */ + /* is this only nfs? */ + do { + /* todo: signal_pending? */ + err = vfsub_write_k(dst, "\0", 1, &dst->f_pos); + } while (err == -EAGAIN || err == -EINTR); + if (err == 1) + dst->f_pos--; + } + + if (err == 1) { + ia = (void *)buf; + ia->ia_size = dst->f_pos; + ia->ia_valid = ATTR_SIZE | ATTR_FILE; + ia->ia_file = dst; + h_mtx = &dst->f_dentry->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_CHILD2); + err = vfsub_notify_change(&dst->f_path, ia); + mutex_unlock(h_mtx); + } + } + + return err; +} + +int au_copy_file(struct file *dst, struct file *src, loff_t len) +{ + int err; + unsigned long blksize; + unsigned char do_kfree; + char *buf; + + err = -ENOMEM; + blksize = dst->f_dentry->d_sb->s_blocksize; + if (!blksize || PAGE_SIZE < blksize) + blksize = PAGE_SIZE; + AuDbg("blksize %lu\n", blksize); + do_kfree = (blksize != PAGE_SIZE && blksize >= sizeof(struct iattr *)); + if (do_kfree) + buf = kmalloc(blksize, GFP_NOFS); + else + buf = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!buf)) + goto out; + + if (len > (1 << 22)) + AuDbg("copying a large file %lld\n", (long long)len); + + src->f_pos = 0; + dst->f_pos = 0; + err = au_do_copy_file(dst, src, len, buf, blksize); + if (do_kfree) + kfree(buf); + else + free_page((unsigned long)buf); + +out: + return err; +} + +/* + * to support a sparse file which is opened with O_APPEND, + * we need to close the file. + */ +static int au_cp_regular(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len) +{ + int err, i; + enum { SRC, DST }; + struct { + aufs_bindex_t bindex; + unsigned int flags; + struct dentry *dentry; + struct file *file; + void *label, *label_file; + } *f, file[] = { + { + .bindex = bsrc, + .flags = O_RDONLY | O_NOATIME | O_LARGEFILE, + .file = NULL, + .label = &&out, + .label_file = &&out_src + }, + { + .bindex = bdst, + .flags = O_WRONLY | O_NOATIME | O_LARGEFILE, + .file = NULL, + .label = &&out_src, + .label_file = &&out_dst + } + }; + struct super_block *sb; + + /* bsrc branch can be ro/rw. */ + sb = dentry->d_sb; + f = file; + for (i = 0; i < 2; i++, f++) { + f->dentry = au_h_dptr(dentry, f->bindex); + f->file = au_h_open(dentry, f->bindex, f->flags, /*file*/NULL); + err = PTR_ERR(f->file); + if (IS_ERR(f->file)) + goto *f->label; + err = -EINVAL; + if (unlikely(!f->file->f_op)) + goto *f->label_file; + } + + /* try stopping to update while we copyup */ + IMustLock(file[SRC].dentry->d_inode); + err = au_copy_file(file[DST].file, file[SRC].file, len); + +out_dst: + fput(file[DST].file); + au_sbr_put(sb, file[DST].bindex); +out_src: + fput(file[SRC].file); + au_sbr_put(sb, file[SRC].bindex); +out: + return err; +} + +static int au_do_cpup_regular(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len, + struct inode *h_dir, struct path *h_path) +{ + int err, rerr; + loff_t l; + + err = 0; + l = i_size_read(au_h_iptr(dentry->d_inode, bsrc)); + if (len == -1 || l < len) + len = l; + if (len) + err = au_cp_regular(dentry, bdst, bsrc, len); + if (!err) + goto out; /* success */ + + rerr = vfsub_unlink(h_dir, h_path, /*force*/0); + if (rerr) { + AuIOErr("failed unlinking cpup-ed %.*s(%d, %d)\n", + AuDLNPair(h_path->dentry), err, rerr); + err = -EIO; + } + +out: + return err; +} + +static int au_do_cpup_symlink(struct path *h_path, struct dentry *h_src, + struct inode *h_dir) +{ + int err, symlen; + mm_segment_t old_fs; + union { + char *k; + char __user *u; + } sym; + + err = -ENOSYS; + if (unlikely(!h_src->d_inode->i_op->readlink)) + goto out; + + err = -ENOMEM; + sym.k = __getname_gfp(GFP_NOFS); + if (unlikely(!sym.k)) + goto out; + + /* unnecessary to support mmap_sem since symlink is not mmap-able */ + old_fs = get_fs(); + set_fs(KERNEL_DS); + symlen = h_src->d_inode->i_op->readlink(h_src, sym.u, PATH_MAX); + err = symlen; + set_fs(old_fs); + + if (symlen > 0) { + sym.k[symlen] = 0; + err = vfsub_symlink(h_dir, h_path, sym.k); + } + __putname(sym.k); + +out: + return err; +} + +/* return with the lower dst inode is locked */ +static noinline_for_stack +int cpup_entry(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len, unsigned int flags, + struct dentry *dst_parent) +{ + int err; + umode_t mode; + unsigned int mnt_flags; + unsigned char isdir; + const unsigned char do_dt = !!au_ftest_cpup(flags, DTIME); + struct au_dtime dt; + struct path h_path; + struct dentry *h_src, *h_dst, *h_parent; + struct inode *h_inode, *h_dir; + struct super_block *sb; + + /* bsrc branch can be ro/rw. */ + h_src = au_h_dptr(dentry, bsrc); + h_inode = h_src->d_inode; + AuDebugOn(h_inode != au_h_iptr(dentry->d_inode, bsrc)); + + /* try stopping to be referenced while we are creating */ + h_dst = au_h_dptr(dentry, bdst); + h_parent = h_dst->d_parent; /* dir inode is locked */ + h_dir = h_parent->d_inode; + IMustLock(h_dir); + AuDebugOn(h_parent != h_dst->d_parent); + + sb = dentry->d_sb; + h_path.mnt = au_sbr_mnt(sb, bdst); + if (do_dt) { + h_path.dentry = h_parent; + au_dtime_store(&dt, dst_parent, &h_path); + } + h_path.dentry = h_dst; + + isdir = 0; + mode = h_inode->i_mode; + switch (mode & S_IFMT) { + case S_IFREG: + /* try stopping to update while we are referencing */ + IMustLock(h_inode); + err = vfsub_create(h_dir, &h_path, mode | S_IWUSR); + if (!err) + err = au_do_cpup_regular + (dentry, bdst, bsrc, len, + au_h_iptr(dst_parent->d_inode, bdst), &h_path); + break; + case S_IFDIR: + isdir = 1; + err = vfsub_mkdir(h_dir, &h_path, mode); + if (!err) { + /* + * strange behaviour from the users view, + * particularry setattr case + */ + if (au_ibstart(dst_parent->d_inode) == bdst) + au_cpup_attr_nlink(dst_parent->d_inode, + /*force*/1); + au_cpup_attr_nlink(dentry->d_inode, /*force*/1); + } + break; + case S_IFLNK: + err = au_do_cpup_symlink(&h_path, h_src, h_dir); + break; + case S_IFCHR: + case S_IFBLK: + AuDebugOn(!capable(CAP_MKNOD)); + /*FALLTHROUGH*/ + case S_IFIFO: + case S_IFSOCK: + err = vfsub_mknod(h_dir, &h_path, mode, h_inode->i_rdev); + break; + default: + AuIOErr("Unknown inode type 0%o\n", mode); + err = -EIO; + } + + mnt_flags = au_mntflags(sb); + if (!au_opt_test(mnt_flags, UDBA_NONE) + && !isdir + && au_opt_test(mnt_flags, XINO) + && h_inode->i_nlink == 1 + /* todo: unnecessary? */ + /* && dentry->d_inode->i_nlink == 1 */ + && bdst < bsrc + && !au_ftest_cpup(flags, KEEPLINO)) + au_xino_write(sb, bsrc, h_inode->i_ino, /*ino*/0); + /* ignore this error */ + + if (do_dt) + au_dtime_revert(&dt); + return err; +} + +/* + * copyup the @dentry from @bsrc to @bdst. + * the caller must set the both of lower dentries. + * @len is for truncating when it is -1 copyup the entire file. + * in link/rename cases, @dst_parent may be different from the real one. + */ +static int au_cpup_single(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len, unsigned int flags, + struct dentry *dst_parent) +{ + int err, rerr; + aufs_bindex_t old_ibstart; + unsigned char isdir, plink; + struct au_dtime dt; + struct path h_path; + struct dentry *h_src, *h_dst, *h_parent; + struct inode *dst_inode, *h_dir, *inode; + struct super_block *sb; + + AuDebugOn(bsrc <= bdst); + + sb = dentry->d_sb; + h_path.mnt = au_sbr_mnt(sb, bdst); + h_dst = au_h_dptr(dentry, bdst); + h_parent = h_dst->d_parent; /* dir inode is locked */ + h_dir = h_parent->d_inode; + IMustLock(h_dir); + + h_src = au_h_dptr(dentry, bsrc); + inode = dentry->d_inode; + + if (!dst_parent) + dst_parent = dget_parent(dentry); + else + dget(dst_parent); + + plink = !!au_opt_test(au_mntflags(sb), PLINK); + dst_inode = au_h_iptr(inode, bdst); + if (dst_inode) { + if (unlikely(!plink)) { + err = -EIO; + AuIOErr("hi%lu(i%lu) exists on b%d " + "but plink is disabled\n", + dst_inode->i_ino, inode->i_ino, bdst); + goto out; + } + + if (dst_inode->i_nlink) { + const int do_dt = au_ftest_cpup(flags, DTIME); + + h_src = au_plink_lkup(inode, bdst); + err = PTR_ERR(h_src); + if (IS_ERR(h_src)) + goto out; + if (unlikely(!h_src->d_inode)) { + err = -EIO; + AuIOErr("i%lu exists on a upper branch " + "but not pseudo-linked\n", + inode->i_ino); + dput(h_src); + goto out; + } + + if (do_dt) { + h_path.dentry = h_parent; + au_dtime_store(&dt, dst_parent, &h_path); + } + h_path.dentry = h_dst; + err = vfsub_link(h_src, h_dir, &h_path); + if (do_dt) + au_dtime_revert(&dt); + dput(h_src); + goto out; + } else + /* todo: cpup_wh_file? */ + /* udba work */ + au_update_ibrange(inode, /*do_put_zero*/1); + } + + old_ibstart = au_ibstart(inode); + err = cpup_entry(dentry, bdst, bsrc, len, flags, dst_parent); + if (unlikely(err)) + goto out; + dst_inode = h_dst->d_inode; + mutex_lock_nested(&dst_inode->i_mutex, AuLsc_I_CHILD2); + + err = cpup_iattr(dentry, bdst, h_src); + isdir = S_ISDIR(dst_inode->i_mode); + if (!err) { + if (bdst < old_ibstart) { + if (S_ISREG(inode->i_mode)) { + err = au_dy_iaop(inode, bdst, dst_inode); + if (unlikely(err)) + goto out_rev; + } + au_set_ibstart(inode, bdst); + } + au_set_h_iptr(inode, bdst, au_igrab(dst_inode), + au_hi_flags(inode, isdir)); + mutex_unlock(&dst_inode->i_mutex); + if (!isdir + && h_src->d_inode->i_nlink > 1 + && plink) + au_plink_append(inode, bdst, h_dst); + goto out; /* success */ + } + + /* revert */ +out_rev: + h_path.dentry = h_parent; + mutex_unlock(&dst_inode->i_mutex); + au_dtime_store(&dt, dst_parent, &h_path); + h_path.dentry = h_dst; + if (!isdir) + rerr = vfsub_unlink(h_dir, &h_path, /*force*/0); + else + rerr = vfsub_rmdir(h_dir, &h_path); + au_dtime_revert(&dt); + if (rerr) { + AuIOErr("failed removing broken entry(%d, %d)\n", err, rerr); + err = -EIO; + } + +out: + dput(dst_parent); + return err; +} + +struct au_cpup_single_args { + int *errp; + struct dentry *dentry; + aufs_bindex_t bdst, bsrc; + loff_t len; + unsigned int flags; + struct dentry *dst_parent; +}; + +static void au_call_cpup_single(void *args) +{ + struct au_cpup_single_args *a = args; + *a->errp = au_cpup_single(a->dentry, a->bdst, a->bsrc, a->len, + a->flags, a->dst_parent); +} + +/* + * prevent SIGXFSZ in copy-up. + * testing CAP_MKNOD is for generic fs, + * but CAP_FSETID is for xfs only, currently. + */ +static int au_cpup_sio_test(struct super_block *sb, umode_t mode) +{ + int do_sio; + + do_sio = 0; + if (!au_wkq_test() + && (!au_sbi(sb)->si_plink_maint_pid + || au_plink_maint(sb, AuLock_NOPLM))) { + switch (mode & S_IFMT) { + case S_IFREG: + /* no condition about RLIMIT_FSIZE and the file size */ + do_sio = 1; + break; + case S_IFCHR: + case S_IFBLK: + do_sio = !capable(CAP_MKNOD); + break; + } + if (!do_sio) + do_sio = ((mode & (S_ISUID | S_ISGID)) + && !capable(CAP_FSETID)); + } + + return do_sio; +} + +int au_sio_cpup_single(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len, unsigned int flags, + struct dentry *dst_parent) +{ + int err, wkq_err; + struct dentry *h_dentry; + + h_dentry = au_h_dptr(dentry, bsrc); + if (!au_cpup_sio_test(dentry->d_sb, h_dentry->d_inode->i_mode)) + err = au_cpup_single(dentry, bdst, bsrc, len, flags, + dst_parent); + else { + struct au_cpup_single_args args = { + .errp = &err, + .dentry = dentry, + .bdst = bdst, + .bsrc = bsrc, + .len = len, + .flags = flags, + .dst_parent = dst_parent + }; + wkq_err = au_wkq_wait(au_call_cpup_single, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + return err; +} + +/* + * copyup the @dentry from the first active lower branch to @bdst, + * using au_cpup_single(). + */ +static int au_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + unsigned int flags) +{ + int err; + aufs_bindex_t bsrc, bend; + + bend = au_dbend(dentry); + for (bsrc = bdst + 1; bsrc <= bend; bsrc++) + if (au_h_dptr(dentry, bsrc)) + break; + + err = au_lkup_neg(dentry, bdst); + if (!err) { + err = au_cpup_single(dentry, bdst, bsrc, len, flags, NULL); + if (!err) + return 0; /* success */ + + /* revert */ + au_set_h_dptr(dentry, bdst, NULL); + au_set_dbstart(dentry, bsrc); + } + + return err; +} + +struct au_cpup_simple_args { + int *errp; + struct dentry *dentry; + aufs_bindex_t bdst; + loff_t len; + unsigned int flags; +}; + +static void au_call_cpup_simple(void *args) +{ + struct au_cpup_simple_args *a = args; + *a->errp = au_cpup_simple(a->dentry, a->bdst, a->len, a->flags); +} + +int au_sio_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + unsigned int flags) +{ + int err, wkq_err; + struct dentry *parent; + struct inode *h_dir; + + parent = dget_parent(dentry); + h_dir = au_h_iptr(parent->d_inode, bdst); + if (!au_test_h_perm_sio(h_dir, MAY_EXEC | MAY_WRITE) + && !au_cpup_sio_test(dentry->d_sb, dentry->d_inode->i_mode)) + err = au_cpup_simple(dentry, bdst, len, flags); + else { + struct au_cpup_simple_args args = { + .errp = &err, + .dentry = dentry, + .bdst = bdst, + .len = len, + .flags = flags + }; + wkq_err = au_wkq_wait(au_call_cpup_simple, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + dput(parent); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * copyup the deleted file for writing. + */ +static int au_do_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, + struct dentry *wh_dentry, struct file *file, + loff_t len) +{ + int err; + aufs_bindex_t bstart; + struct au_dinfo *dinfo; + struct dentry *h_d_dst, *h_d_start; + struct au_hdentry *hdp; + + dinfo = au_di(dentry); + AuRwMustWriteLock(&dinfo->di_rwsem); + + bstart = dinfo->di_bstart; + hdp = dinfo->di_hdentry; + h_d_dst = hdp[0 + bdst].hd_dentry; + dinfo->di_bstart = bdst; + hdp[0 + bdst].hd_dentry = wh_dentry; + if (file) { + h_d_start = hdp[0 + bstart].hd_dentry; + hdp[0 + bstart].hd_dentry = au_hf_top(file)->f_dentry; + } + err = au_cpup_single(dentry, bdst, bstart, len, !AuCpup_DTIME, + /*h_parent*/NULL); + if (file) { + if (!err) + err = au_reopen_nondir(file); + hdp[0 + bstart].hd_dentry = h_d_start; + } + hdp[0 + bdst].hd_dentry = h_d_dst; + dinfo->di_bstart = bstart; + + return err; +} + +static int au_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + struct file *file) +{ + int err; + struct au_dtime dt; + struct dentry *parent, *h_parent, *wh_dentry; + struct au_branch *br; + struct path h_path; + + br = au_sbr(dentry->d_sb, bdst); + parent = dget_parent(dentry); + h_parent = au_h_dptr(parent, bdst); + wh_dentry = au_whtmp_lkup(h_parent, br, &dentry->d_name); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out; + + h_path.dentry = h_parent; + h_path.mnt = br->br_mnt; + au_dtime_store(&dt, parent, &h_path); + err = au_do_cpup_wh(dentry, bdst, wh_dentry, file, len); + if (unlikely(err)) + goto out_wh; + + dget(wh_dentry); + h_path.dentry = wh_dentry; + if (!S_ISDIR(wh_dentry->d_inode->i_mode)) + err = vfsub_unlink(h_parent->d_inode, &h_path, /*force*/0); + else + err = vfsub_rmdir(h_parent->d_inode, &h_path); + if (unlikely(err)) { + AuIOErr("failed remove copied-up tmp file %.*s(%d)\n", + AuDLNPair(wh_dentry), err); + err = -EIO; + } + au_dtime_revert(&dt); + au_set_hi_wh(dentry->d_inode, bdst, wh_dentry); + +out_wh: + dput(wh_dentry); +out: + dput(parent); + return err; +} + +struct au_cpup_wh_args { + int *errp; + struct dentry *dentry; + aufs_bindex_t bdst; + loff_t len; + struct file *file; +}; + +static void au_call_cpup_wh(void *args) +{ + struct au_cpup_wh_args *a = args; + *a->errp = au_cpup_wh(a->dentry, a->bdst, a->len, a->file); +} + +int au_sio_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + struct file *file) +{ + int err, wkq_err; + struct dentry *parent, *h_orph, *h_parent, *h_dentry; + struct inode *dir, *h_dir, *h_tmpdir, *h_inode; + struct au_wbr *wbr; + + parent = dget_parent(dentry); + dir = parent->d_inode; + h_orph = NULL; + h_parent = NULL; + h_dir = au_igrab(au_h_iptr(dir, bdst)); + h_tmpdir = h_dir; + if (!h_dir->i_nlink) { + wbr = au_sbr(dentry->d_sb, bdst)->br_wbr; + h_orph = wbr->wbr_orph; + + h_parent = dget(au_h_dptr(parent, bdst)); + au_set_h_dptr(parent, bdst, dget(h_orph)); + h_tmpdir = h_orph->d_inode; + au_set_h_iptr(dir, bdst, au_igrab(h_tmpdir), /*flags*/0); + + /* this temporary unlock is safe */ + if (file) + h_dentry = au_hf_top(file)->f_dentry; + else + h_dentry = au_h_dptr(dentry, au_dbstart(dentry)); + h_inode = h_dentry->d_inode; + IMustLock(h_inode); + mutex_unlock(&h_inode->i_mutex); + mutex_lock_nested(&h_tmpdir->i_mutex, AuLsc_I_PARENT3); + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + /* todo: au_h_open_pre()? */ + } + + if (!au_test_h_perm_sio(h_tmpdir, MAY_EXEC | MAY_WRITE) + && !au_cpup_sio_test(dentry->d_sb, dentry->d_inode->i_mode)) + err = au_cpup_wh(dentry, bdst, len, file); + else { + struct au_cpup_wh_args args = { + .errp = &err, + .dentry = dentry, + .bdst = bdst, + .len = len, + .file = file + }; + wkq_err = au_wkq_wait(au_call_cpup_wh, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + if (h_orph) { + mutex_unlock(&h_tmpdir->i_mutex); + /* todo: au_h_open_post()? */ + au_set_h_iptr(dir, bdst, au_igrab(h_dir), /*flags*/0); + au_set_h_dptr(parent, bdst, h_parent); + } + iput(h_dir); + dput(parent); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * generic routine for both of copy-up and copy-down. + */ +/* cf. revalidate function in file.c */ +int au_cp_dirs(struct dentry *dentry, aufs_bindex_t bdst, + int (*cp)(struct dentry *dentry, aufs_bindex_t bdst, + struct dentry *h_parent, void *arg), + void *arg) +{ + int err; + struct au_pin pin; + struct dentry *d, *parent, *h_parent, *real_parent; + + err = 0; + parent = dget_parent(dentry); + if (IS_ROOT(parent)) + goto out; + + au_pin_init(&pin, dentry, bdst, AuLsc_DI_PARENT2, AuLsc_I_PARENT2, + au_opt_udba(dentry->d_sb), AuPin_MNT_WRITE); + + /* do not use au_dpage */ + real_parent = parent; + while (1) { + dput(parent); + parent = dget_parent(dentry); + h_parent = au_h_dptr(parent, bdst); + if (h_parent) + goto out; /* success */ + + /* find top dir which is necessary to cpup */ + do { + d = parent; + dput(parent); + parent = dget_parent(d); + di_read_lock_parent3(parent, !AuLock_IR); + h_parent = au_h_dptr(parent, bdst); + di_read_unlock(parent, !AuLock_IR); + } while (!h_parent); + + if (d != real_parent) + di_write_lock_child3(d); + + /* somebody else might create while we were sleeping */ + if (!au_h_dptr(d, bdst) || !au_h_dptr(d, bdst)->d_inode) { + if (au_h_dptr(d, bdst)) + au_update_dbstart(d); + + au_pin_set_dentry(&pin, d); + err = au_do_pin(&pin); + if (!err) { + err = cp(d, bdst, h_parent, arg); + au_unpin(&pin); + } + } + + if (d != real_parent) + di_write_unlock(d); + if (unlikely(err)) + break; + } + +out: + dput(parent); + return err; +} + +static int au_cpup_dir(struct dentry *dentry, aufs_bindex_t bdst, + struct dentry *h_parent __maybe_unused , + void *arg __maybe_unused) +{ + return au_sio_cpup_simple(dentry, bdst, -1, AuCpup_DTIME); +} + +int au_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst) +{ + return au_cp_dirs(dentry, bdst, au_cpup_dir, NULL); +} + +int au_test_and_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst) +{ + int err; + struct dentry *parent; + struct inode *dir; + + parent = dget_parent(dentry); + dir = parent->d_inode; + err = 0; + if (au_h_iptr(dir, bdst)) + goto out; + + di_read_unlock(parent, AuLock_IR); + di_write_lock_parent(parent); + /* someone else might change our inode while we were sleeping */ + if (!au_h_iptr(dir, bdst)) + err = au_cpup_dirs(dentry, bdst); + di_downgrade_lock(parent, AuLock_IR); + +out: + dput(parent); + return err; +} --- linux-3.2.0.orig/ubuntu/aufs/module.h +++ linux-3.2.0/ubuntu/aufs/module.h @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * module initialization and module-global + */ + +#ifndef __AUFS_MODULE_H__ +#define __AUFS_MODULE_H__ + +#ifdef __KERNEL__ + +#include + +struct path; +struct seq_file; + +/* module parameters */ +extern int sysaufs_brs; + +/* ---------------------------------------------------------------------- */ + +extern int au_dir_roflags; + +enum { + AuLcNonDir_FIINFO, + AuLcNonDir_DIINFO, + AuLcNonDir_IIINFO, + + AuLcDir_FIINFO, + AuLcDir_DIINFO, + AuLcDir_IIINFO, + + AuLcSymlink_DIINFO, + AuLcSymlink_IIINFO, + + AuLcKey_Last +}; +extern struct lock_class_key au_lc_key[AuLcKey_Last]; + +void *au_kzrealloc(void *p, unsigned int nused, unsigned int new_sz, gfp_t gfp); +int au_seq_path(struct seq_file *seq, struct path *path); + +#ifdef CONFIG_PROC_FS +/* procfs.c */ +int __init au_procfs_init(void); +void au_procfs_fin(void); +#else +AuStubInt0(au_procfs_init, void); +AuStubVoid(au_procfs_fin, void); +#endif + +/* ---------------------------------------------------------------------- */ + +/* kmem cache */ +enum { + AuCache_DINFO, + AuCache_ICNTNR, + AuCache_FINFO, + AuCache_VDIR, + AuCache_DEHSTR, +#ifdef CONFIG_AUFS_HNOTIFY + AuCache_HNOTIFY, +#endif + AuCache_Last +}; + +#define AuCacheFlags (SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD) +#define AuCache(type) KMEM_CACHE(type, AuCacheFlags) +#define AuCacheCtor(type, ctor) \ + kmem_cache_create(#type, sizeof(struct type), \ + __alignof__(struct type), AuCacheFlags, ctor) + +extern struct kmem_cache *au_cachep[]; + +#define AuCacheFuncs(name, index) \ +static inline struct au_##name *au_cache_alloc_##name(void) \ +{ return kmem_cache_alloc(au_cachep[AuCache_##index], GFP_NOFS); } \ +static inline void au_cache_free_##name(struct au_##name *p) \ +{ kmem_cache_free(au_cachep[AuCache_##index], p); } + +AuCacheFuncs(dinfo, DINFO); +AuCacheFuncs(icntnr, ICNTNR); +AuCacheFuncs(finfo, FINFO); +AuCacheFuncs(vdir, VDIR); +AuCacheFuncs(vdir_dehstr, DEHSTR); +#ifdef CONFIG_AUFS_HNOTIFY +AuCacheFuncs(hnotify, HNOTIFY); +#endif + +#endif /* __KERNEL__ */ +#endif /* __AUFS_MODULE_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/fstype.h +++ linux-3.2.0/ubuntu/aufs/fstype.h @@ -0,0 +1,496 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * judging filesystem type + */ + +#ifndef __AUFS_FSTYPE_H__ +#define __AUFS_FSTYPE_H__ + +#ifdef __KERNEL__ + +#include +#include +#include + +static inline int au_test_aufs(struct super_block *sb) +{ + return sb->s_magic == AUFS_SUPER_MAGIC; +} + +static inline const char *au_sbtype(struct super_block *sb) +{ + return sb->s_type->name; +} + +static inline int au_test_iso9660(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_ROMFS_FS) || defined(CONFIG_ROMFS_FS_MODULE) + return sb->s_magic == ROMFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_romfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_ISO9660_FS) || defined(CONFIG_ISO9660_FS_MODULE) + return sb->s_magic == ISOFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_cramfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_CRAMFS) || defined(CONFIG_CRAMFS_MODULE) + return sb->s_magic == CRAMFS_MAGIC; +#endif + return 0; +} + +static inline int au_test_nfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_NFS_FS) || defined(CONFIG_NFS_FS_MODULE) + return sb->s_magic == NFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_fuse(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_FUSE_FS) || defined(CONFIG_FUSE_FS_MODULE) + return sb->s_magic == FUSE_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_xfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_XFS_FS) || defined(CONFIG_XFS_FS_MODULE) + return sb->s_magic == XFS_SB_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_tmpfs(struct super_block *sb __maybe_unused) +{ +#ifdef CONFIG_TMPFS + return sb->s_magic == TMPFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_ecryptfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_ECRYPT_FS) || defined(CONFIG_ECRYPT_FS_MODULE) + return !strcmp(au_sbtype(sb), "ecryptfs"); +#else + return 0; +#endif +} + +static inline int au_test_smbfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_SMB_FS) || defined(CONFIG_SMB_FS_MODULE) + return sb->s_magic == SMB_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_ocfs2(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_OCFS2_FS) || defined(CONFIG_OCFS2_FS_MODULE) + return sb->s_magic == OCFS2_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_ocfs2_dlmfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_OCFS2_FS_O2CB) || defined(CONFIG_OCFS2_FS_O2CB_MODULE) + return sb->s_magic == DLMFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_coda(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_CODA_FS) || defined(CONFIG_CODA_FS_MODULE) + return sb->s_magic == CODA_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_v9fs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_9P_FS) || defined(CONFIG_9P_FS_MODULE) + return sb->s_magic == V9FS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_ext4(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_EXT4DEV_FS) || defined(CONFIG_EXT4DEV_FS_MODULE) + return sb->s_magic == EXT4_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_sysv(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_SYSV_FS) || defined(CONFIG_SYSV_FS_MODULE) + return !strcmp(au_sbtype(sb), "sysv"); +#else + return 0; +#endif +} + +static inline int au_test_ramfs(struct super_block *sb) +{ + return sb->s_magic == RAMFS_MAGIC; +} + +static inline int au_test_ubifs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_UBIFS_FS) || defined(CONFIG_UBIFS_FS_MODULE) + return sb->s_magic == UBIFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_procfs(struct super_block *sb __maybe_unused) +{ +#ifdef CONFIG_PROC_FS + return sb->s_magic == PROC_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_sysfs(struct super_block *sb __maybe_unused) +{ +#ifdef CONFIG_SYSFS + return sb->s_magic == SYSFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_configfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_CONFIGFS_FS) || defined(CONFIG_CONFIGFS_FS_MODULE) + return sb->s_magic == CONFIGFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_minix(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_MINIX_FS) || defined(CONFIG_MINIX_FS_MODULE) + return sb->s_magic == MINIX3_SUPER_MAGIC + || sb->s_magic == MINIX2_SUPER_MAGIC + || sb->s_magic == MINIX2_SUPER_MAGIC2 + || sb->s_magic == MINIX_SUPER_MAGIC + || sb->s_magic == MINIX_SUPER_MAGIC2; +#else + return 0; +#endif +} + +static inline int au_test_cifs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_CIFS_FS) || defined(CONFIGCIFS_FS_MODULE) + return sb->s_magic == CIFS_MAGIC_NUMBER; +#else + return 0; +#endif +} + +static inline int au_test_fat(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_FAT_FS) || defined(CONFIG_FAT_FS_MODULE) + return sb->s_magic == MSDOS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_msdos(struct super_block *sb) +{ + return au_test_fat(sb); +} + +static inline int au_test_vfat(struct super_block *sb) +{ + return au_test_fat(sb); +} + +static inline int au_test_securityfs(struct super_block *sb __maybe_unused) +{ +#ifdef CONFIG_SECURITYFS + return sb->s_magic == SECURITYFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_squashfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_SQUASHFS) || defined(CONFIG_SQUASHFS_MODULE) + return sb->s_magic == SQUASHFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_btrfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE) + return sb->s_magic == BTRFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_xenfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_XENFS) || defined(CONFIG_XENFS_MODULE) + return sb->s_magic == XENFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_debugfs(struct super_block *sb __maybe_unused) +{ +#ifdef CONFIG_DEBUG_FS + return sb->s_magic == DEBUGFS_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_nilfs(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_NILFS) || defined(CONFIG_NILFS_MODULE) + return sb->s_magic == NILFS_SUPER_MAGIC; +#else + return 0; +#endif +} + +static inline int au_test_hfsplus(struct super_block *sb __maybe_unused) +{ +#if defined(CONFIG_HFSPLUS_FS) || defined(CONFIG_HFSPLUS_FS_MODULE) + return sb->s_magic == HFSPLUS_SUPER_MAGIC; +#else + return 0; +#endif +} + +/* ---------------------------------------------------------------------- */ +/* + * they can't be an aufs branch. + */ +static inline int au_test_fs_unsuppoted(struct super_block *sb) +{ + return +#ifndef CONFIG_AUFS_BR_RAMFS + au_test_ramfs(sb) || +#endif + au_test_procfs(sb) + || au_test_sysfs(sb) + || au_test_configfs(sb) + || au_test_debugfs(sb) + || au_test_securityfs(sb) + || au_test_xenfs(sb) + || au_test_ecryptfs(sb) + /* || !strcmp(au_sbtype(sb), "unionfs") */ + || au_test_aufs(sb); /* will be supported in next version */ +} + +/* + * If the filesystem supports NFS-export, then it has to support NULL as + * a nameidata parameter for ->create(), ->lookup() and ->d_revalidate(). + * We can apply this principle when we handle a lower filesystem. + */ +static inline int au_test_fs_null_nd(struct super_block *sb) +{ + return !!sb->s_export_op; +} + +static inline int au_test_fs_remote(struct super_block *sb) +{ + return !au_test_tmpfs(sb) +#ifdef CONFIG_AUFS_BR_RAMFS + && !au_test_ramfs(sb) +#endif + && !(sb->s_type->fs_flags & FS_REQUIRES_DEV); +} + +/* ---------------------------------------------------------------------- */ + +/* + * Note: these functions (below) are created after reading ->getattr() in all + * filesystems under linux/fs. it means we have to do so in every update... + */ + +/* + * some filesystems require getattr to refresh the inode attributes before + * referencing. + * in most cases, we can rely on the inode attribute in NFS (or every remote fs) + * and leave the work for d_revalidate() + */ +static inline int au_test_fs_refresh_iattr(struct super_block *sb) +{ + return au_test_nfs(sb) + || au_test_fuse(sb) + /* || au_test_smbfs(sb) */ /* untested */ + /* || au_test_ocfs2(sb) */ /* untested */ + /* || au_test_btrfs(sb) */ /* untested */ + /* || au_test_coda(sb) */ /* untested */ + /* || au_test_v9fs(sb) */ /* untested */ + ; +} + +/* + * filesystems which don't maintain i_size or i_blocks. + */ +static inline int au_test_fs_bad_iattr_size(struct super_block *sb) +{ + return au_test_xfs(sb) + || au_test_btrfs(sb) + || au_test_ubifs(sb) + || au_test_hfsplus(sb) /* maintained, but incorrect */ + /* || au_test_ext4(sb) */ /* untested */ + /* || au_test_ocfs2(sb) */ /* untested */ + /* || au_test_ocfs2_dlmfs(sb) */ /* untested */ + /* || au_test_sysv(sb) */ /* untested */ + /* || au_test_minix(sb) */ /* untested */ + ; +} + +/* + * filesystems which don't store the correct value in some of their inode + * attributes. + */ +static inline int au_test_fs_bad_iattr(struct super_block *sb) +{ + return au_test_fs_bad_iattr_size(sb) + /* || au_test_cifs(sb) */ /* untested */ + || au_test_fat(sb) + || au_test_msdos(sb) + || au_test_vfat(sb); +} + +/* they don't check i_nlink in link(2) */ +static inline int au_test_fs_no_limit_nlink(struct super_block *sb) +{ + return au_test_tmpfs(sb) +#ifdef CONFIG_AUFS_BR_RAMFS + || au_test_ramfs(sb) +#endif + || au_test_ubifs(sb) + || au_test_btrfs(sb) + || au_test_hfsplus(sb); +} + +/* + * filesystems which sets S_NOATIME and S_NOCMTIME. + */ +static inline int au_test_fs_notime(struct super_block *sb) +{ + return au_test_nfs(sb) + || au_test_fuse(sb) + || au_test_ubifs(sb) + /* || au_test_cifs(sb) */ /* untested */ + ; +} + +/* + * filesystems which requires replacing i_mapping. + */ +static inline int au_test_fs_bad_mapping(struct super_block *sb) +{ + return au_test_fuse(sb) + || au_test_ubifs(sb); +} + +/* temporary support for i#1 in cramfs */ +static inline int au_test_fs_unique_ino(struct inode *inode) +{ + if (au_test_cramfs(inode->i_sb)) + return inode->i_ino != 1; + return 1; +} + +/* ---------------------------------------------------------------------- */ + +/* + * the filesystem where the xino files placed must support i/o after unlink and + * maintain i_size and i_blocks. + */ +static inline int au_test_fs_bad_xino(struct super_block *sb) +{ + return au_test_fs_remote(sb) + || au_test_fs_bad_iattr_size(sb) +#ifdef CONFIG_AUFS_BR_RAMFS + || !(au_test_ramfs(sb) || au_test_fs_null_nd(sb)) +#else + || !au_test_fs_null_nd(sb) /* to keep xino code simple */ +#endif + /* don't want unnecessary work for xino */ + || au_test_aufs(sb) + || au_test_ecryptfs(sb) + || au_test_nilfs(sb); +} + +static inline int au_test_fs_trunc_xino(struct super_block *sb) +{ + return au_test_tmpfs(sb) + || au_test_ramfs(sb); +} + +/* + * test if the @sb is real-readonly. + */ +static inline int au_test_fs_rr(struct super_block *sb) +{ + return au_test_squashfs(sb) + || au_test_iso9660(sb) + || au_test_cramfs(sb) + || au_test_romfs(sb); +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_FSTYPE_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/plink.c +++ linux-3.2.0/ubuntu/aufs/plink.c @@ -0,0 +1,515 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * pseudo-link + */ + +#include "aufs.h" + +/* + * the pseudo-link maintenance mode. + * during a user process maintains the pseudo-links, + * prohibit adding a new plink and branch manipulation. + * + * Flags + * NOPLM: + * For entry functions which will handle plink, and i_mutex is already held + * in VFS. + * They cannot wait and should return an error at once. + * Callers has to check the error. + * NOPLMW: + * For entry functions which will handle plink, but i_mutex is not held + * in VFS. + * They can wait the plink maintenance mode to finish. + * + * They behave like F_SETLK and F_SETLKW. + * If the caller never handle plink, then both flags are unnecessary. + */ + +int au_plink_maint(struct super_block *sb, int flags) +{ + int err; + pid_t pid, ppid; + struct au_sbinfo *sbi; + + SiMustAnyLock(sb); + + err = 0; + if (!au_opt_test(au_mntflags(sb), PLINK)) + goto out; + + sbi = au_sbi(sb); + pid = sbi->si_plink_maint_pid; + if (!pid || pid == current->pid) + goto out; + + /* todo: it highly depends upon /sbin/mount.aufs */ + rcu_read_lock(); + ppid = task_pid_vnr(rcu_dereference(current->real_parent)); + rcu_read_unlock(); + if (pid == ppid) + goto out; + + if (au_ftest_lock(flags, NOPLMW)) { + /* if there is no i_mutex lock in VFS, we don't need to wait */ + /* AuDebugOn(!lockdep_depth(current)); */ + while (sbi->si_plink_maint_pid) { + si_read_unlock(sb); + /* gave up wake_up_bit() */ + wait_event(sbi->si_plink_wq, !sbi->si_plink_maint_pid); + + if (au_ftest_lock(flags, FLUSH)) + au_nwt_flush(&sbi->si_nowait); + si_noflush_read_lock(sb); + } + } else if (au_ftest_lock(flags, NOPLM)) { + AuDbg("ppid %d, pid %d\n", ppid, pid); + err = -EAGAIN; + } + +out: + return err; +} + +void au_plink_maint_leave(struct au_sbinfo *sbinfo) +{ + spin_lock(&sbinfo->si_plink_maint_lock); + sbinfo->si_plink_maint_pid = 0; + spin_unlock(&sbinfo->si_plink_maint_lock); + wake_up_all(&sbinfo->si_plink_wq); +} + +int au_plink_maint_enter(struct super_block *sb) +{ + int err; + struct au_sbinfo *sbinfo; + + err = 0; + sbinfo = au_sbi(sb); + /* make sure i am the only one in this fs */ + si_write_lock(sb, AuLock_FLUSH); + if (au_opt_test(au_mntflags(sb), PLINK)) { + spin_lock(&sbinfo->si_plink_maint_lock); + if (!sbinfo->si_plink_maint_pid) + sbinfo->si_plink_maint_pid = current->pid; + else + err = -EBUSY; + spin_unlock(&sbinfo->si_plink_maint_lock); + } + si_write_unlock(sb); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct pseudo_link { + union { + struct list_head list; + struct rcu_head rcu; + }; + struct inode *inode; +}; + +#ifdef CONFIG_AUFS_DEBUG +void au_plink_list(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + struct list_head *plink_list; + struct pseudo_link *plink; + + SiMustAnyLock(sb); + + sbinfo = au_sbi(sb); + AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK)); + AuDebugOn(au_plink_maint(sb, AuLock_NOPLM)); + + plink_list = &sbinfo->si_plink.head; + rcu_read_lock(); + list_for_each_entry_rcu(plink, plink_list, list) + AuDbg("%lu\n", plink->inode->i_ino); + rcu_read_unlock(); +} +#endif + +/* is the inode pseudo-linked? */ +int au_plink_test(struct inode *inode) +{ + int found; + struct au_sbinfo *sbinfo; + struct list_head *plink_list; + struct pseudo_link *plink; + + sbinfo = au_sbi(inode->i_sb); + AuRwMustAnyLock(&sbinfo->si_rwsem); + AuDebugOn(!au_opt_test(au_mntflags(inode->i_sb), PLINK)); + AuDebugOn(au_plink_maint(inode->i_sb, AuLock_NOPLM)); + + found = 0; + plink_list = &sbinfo->si_plink.head; + rcu_read_lock(); + list_for_each_entry_rcu(plink, plink_list, list) + if (plink->inode == inode) { + found = 1; + break; + } + rcu_read_unlock(); + return found; +} + +/* ---------------------------------------------------------------------- */ + +/* + * generate a name for plink. + * the file will be stored under AUFS_WH_PLINKDIR. + */ +/* 20 is max digits length of ulong 64 */ +#define PLINK_NAME_LEN ((20 + 1) * 2) + +static int plink_name(char *name, int len, struct inode *inode, + aufs_bindex_t bindex) +{ + int rlen; + struct inode *h_inode; + + h_inode = au_h_iptr(inode, bindex); + rlen = snprintf(name, len, "%lu.%lu", inode->i_ino, h_inode->i_ino); + return rlen; +} + +struct au_do_plink_lkup_args { + struct dentry **errp; + struct qstr *tgtname; + struct dentry *h_parent; + struct au_branch *br; +}; + +static struct dentry *au_do_plink_lkup(struct qstr *tgtname, + struct dentry *h_parent, + struct au_branch *br) +{ + struct dentry *h_dentry; + struct mutex *h_mtx; + + h_mtx = &h_parent->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_CHILD2); + h_dentry = au_lkup_one(tgtname, h_parent, br, /*nd*/NULL); + mutex_unlock(h_mtx); + return h_dentry; +} + +static void au_call_do_plink_lkup(void *args) +{ + struct au_do_plink_lkup_args *a = args; + *a->errp = au_do_plink_lkup(a->tgtname, a->h_parent, a->br); +} + +/* lookup the plink-ed @inode under the branch at @bindex */ +struct dentry *au_plink_lkup(struct inode *inode, aufs_bindex_t bindex) +{ + struct dentry *h_dentry, *h_parent; + struct au_branch *br; + struct inode *h_dir; + int wkq_err; + char a[PLINK_NAME_LEN]; + struct qstr tgtname = { + .name = a + }; + + AuDebugOn(au_plink_maint(inode->i_sb, AuLock_NOPLM)); + + br = au_sbr(inode->i_sb, bindex); + h_parent = br->br_wbr->wbr_plink; + h_dir = h_parent->d_inode; + tgtname.len = plink_name(a, sizeof(a), inode, bindex); + + if (current_fsuid()) { + struct au_do_plink_lkup_args args = { + .errp = &h_dentry, + .tgtname = &tgtname, + .h_parent = h_parent, + .br = br + }; + + wkq_err = au_wkq_wait(au_call_do_plink_lkup, &args); + if (unlikely(wkq_err)) + h_dentry = ERR_PTR(wkq_err); + } else + h_dentry = au_do_plink_lkup(&tgtname, h_parent, br); + + return h_dentry; +} + +/* create a pseudo-link */ +static int do_whplink(struct qstr *tgt, struct dentry *h_parent, + struct dentry *h_dentry, struct au_branch *br) +{ + int err; + struct path h_path = { + .mnt = br->br_mnt + }; + struct inode *h_dir; + + h_dir = h_parent->d_inode; + mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_CHILD2); +again: + h_path.dentry = au_lkup_one(tgt, h_parent, br, /*nd*/NULL); + err = PTR_ERR(h_path.dentry); + if (IS_ERR(h_path.dentry)) + goto out; + + err = 0; + /* wh.plink dir is not monitored */ + /* todo: is it really safe? */ + if (h_path.dentry->d_inode + && h_path.dentry->d_inode != h_dentry->d_inode) { + err = vfsub_unlink(h_dir, &h_path, /*force*/0); + dput(h_path.dentry); + h_path.dentry = NULL; + if (!err) + goto again; + } + if (!err && !h_path.dentry->d_inode) + err = vfsub_link(h_dentry, h_dir, &h_path); + dput(h_path.dentry); + +out: + mutex_unlock(&h_dir->i_mutex); + return err; +} + +struct do_whplink_args { + int *errp; + struct qstr *tgt; + struct dentry *h_parent; + struct dentry *h_dentry; + struct au_branch *br; +}; + +static void call_do_whplink(void *args) +{ + struct do_whplink_args *a = args; + *a->errp = do_whplink(a->tgt, a->h_parent, a->h_dentry, a->br); +} + +static int whplink(struct dentry *h_dentry, struct inode *inode, + aufs_bindex_t bindex, struct au_branch *br) +{ + int err, wkq_err; + struct au_wbr *wbr; + struct dentry *h_parent; + struct inode *h_dir; + char a[PLINK_NAME_LEN]; + struct qstr tgtname = { + .name = a + }; + + wbr = au_sbr(inode->i_sb, bindex)->br_wbr; + h_parent = wbr->wbr_plink; + h_dir = h_parent->d_inode; + tgtname.len = plink_name(a, sizeof(a), inode, bindex); + + /* always superio. */ + if (current_fsuid()) { + struct do_whplink_args args = { + .errp = &err, + .tgt = &tgtname, + .h_parent = h_parent, + .h_dentry = h_dentry, + .br = br + }; + wkq_err = au_wkq_wait(call_do_whplink, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } else + err = do_whplink(&tgtname, h_parent, h_dentry, br); + + return err; +} + +/* free a single plink */ +static void do_put_plink(struct pseudo_link *plink, int do_del) +{ + if (do_del) + list_del(&plink->list); + iput(plink->inode); + kfree(plink); +} + +static void do_put_plink_rcu(struct rcu_head *rcu) +{ + struct pseudo_link *plink; + + plink = container_of(rcu, struct pseudo_link, rcu); + iput(plink->inode); + kfree(plink); +} + +/* + * create a new pseudo-link for @h_dentry on @bindex. + * the linked inode is held in aufs @inode. + */ +void au_plink_append(struct inode *inode, aufs_bindex_t bindex, + struct dentry *h_dentry) +{ + struct super_block *sb; + struct au_sbinfo *sbinfo; + struct list_head *plink_list; + struct pseudo_link *plink, *tmp; + int found, err, cnt; + + sb = inode->i_sb; + sbinfo = au_sbi(sb); + AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK)); + AuDebugOn(au_plink_maint(sb, AuLock_NOPLM)); + + cnt = 0; + found = 0; + plink_list = &sbinfo->si_plink.head; + rcu_read_lock(); + list_for_each_entry_rcu(plink, plink_list, list) { + cnt++; + if (plink->inode == inode) { + found = 1; + break; + } + } + rcu_read_unlock(); + if (found) + return; + + tmp = kmalloc(sizeof(*plink), GFP_NOFS); + if (tmp) + tmp->inode = au_igrab(inode); + else { + err = -ENOMEM; + goto out; + } + + spin_lock(&sbinfo->si_plink.spin); + list_for_each_entry(plink, plink_list, list) { + if (plink->inode == inode) { + found = 1; + break; + } + } + if (!found) + list_add_rcu(&tmp->list, plink_list); + spin_unlock(&sbinfo->si_plink.spin); + if (!found) { + cnt++; +// WARN_ONCE(cnt > AUFS_PLINK_WARN, +// "unexpectedly many pseudo links, %d\n", cnt); + err = whplink(h_dentry, inode, bindex, au_sbr(sb, bindex)); + } else { + do_put_plink(tmp, 0); + return; + } + +out: + if (unlikely(err)) { + pr_warning("err %d, damaged pseudo link.\n", err); + if (tmp) { + au_spl_del_rcu(&tmp->list, &sbinfo->si_plink); + call_rcu(&tmp->rcu, do_put_plink_rcu); + } + } +} + +/* free all plinks */ +void au_plink_put(struct super_block *sb, int verbose) +{ + struct au_sbinfo *sbinfo; + struct list_head *plink_list; + struct pseudo_link *plink, *tmp; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK)); + AuDebugOn(au_plink_maint(sb, AuLock_NOPLM)); + + plink_list = &sbinfo->si_plink.head; + /* no spin_lock since sbinfo is write-locked */ + WARN(verbose && !list_empty(plink_list), "pseudo-link is not flushed"); + list_for_each_entry_safe(plink, tmp, plink_list, list) + do_put_plink(plink, 0); + INIT_LIST_HEAD(plink_list); +} + +void au_plink_clean(struct super_block *sb, int verbose) +{ + struct dentry *root; + + root = sb->s_root; + aufs_write_lock(root); + if (au_opt_test(au_mntflags(sb), PLINK)) + au_plink_put(sb, verbose); + aufs_write_unlock(root); +} + +/* free the plinks on a branch specified by @br_id */ +void au_plink_half_refresh(struct super_block *sb, aufs_bindex_t br_id) +{ + struct au_sbinfo *sbinfo; + struct list_head *plink_list; + struct pseudo_link *plink, *tmp; + struct inode *inode; + aufs_bindex_t bstart, bend, bindex; + unsigned char do_put; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK)); + AuDebugOn(au_plink_maint(sb, AuLock_NOPLM)); + + plink_list = &sbinfo->si_plink.head; + /* no spin_lock since sbinfo is write-locked */ + list_for_each_entry_safe(plink, tmp, plink_list, list) { + do_put = 0; + inode = au_igrab(plink->inode); + ii_write_lock_child(inode); + bstart = au_ibstart(inode); + bend = au_ibend(inode); + if (bstart >= 0) { + for (bindex = bstart; bindex <= bend; bindex++) { + if (!au_h_iptr(inode, bindex) + || au_ii_br_id(inode, bindex) != br_id) + continue; + au_set_h_iptr(inode, bindex, NULL, 0); + do_put = 1; + break; + } + } else + do_put_plink(plink, 1); + + if (do_put) { + for (bindex = bstart; bindex <= bend; bindex++) + if (au_h_iptr(inode, bindex)) { + do_put = 0; + break; + } + if (do_put) + do_put_plink(plink, 1); + } + ii_write_unlock(inode); + iput(inode); + } +} --- linux-3.2.0.orig/ubuntu/aufs/rwsem.h +++ linux-3.2.0/ubuntu/aufs/rwsem.h @@ -0,0 +1,188 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * simple read-write semaphore wrappers + */ + +#ifndef __AUFS_RWSEM_H__ +#define __AUFS_RWSEM_H__ + +#ifdef __KERNEL__ + +#include "debug.h" + +struct au_rwsem { + struct rw_semaphore rwsem; +#ifdef CONFIG_AUFS_DEBUG + /* just for debugging, not almighty counter */ + atomic_t rcnt, wcnt; +#endif +}; + +#ifdef CONFIG_AUFS_DEBUG +#define AuDbgCntInit(rw) do { \ + atomic_set(&(rw)->rcnt, 0); \ + atomic_set(&(rw)->wcnt, 0); \ + smp_mb(); /* atomic set */ \ +} while (0) + +#define AuDbgRcntInc(rw) atomic_inc(&(rw)->rcnt) +#define AuDbgRcntDec(rw) WARN_ON(atomic_dec_return(&(rw)->rcnt) < 0) +#define AuDbgWcntInc(rw) atomic_inc(&(rw)->wcnt) +#define AuDbgWcntDec(rw) WARN_ON(atomic_dec_return(&(rw)->wcnt) < 0) +#else +#define AuDbgCntInit(rw) do {} while (0) +#define AuDbgRcntInc(rw) do {} while (0) +#define AuDbgRcntDec(rw) do {} while (0) +#define AuDbgWcntInc(rw) do {} while (0) +#define AuDbgWcntDec(rw) do {} while (0) +#endif /* CONFIG_AUFS_DEBUG */ + +/* to debug easier, do not make them inlined functions */ +#define AuRwMustNoWaiters(rw) AuDebugOn(!list_empty(&(rw)->rwsem.wait_list)) +/* rwsem_is_locked() is unusable */ +#define AuRwMustReadLock(rw) AuDebugOn(atomic_read(&(rw)->rcnt) <= 0) +#define AuRwMustWriteLock(rw) AuDebugOn(atomic_read(&(rw)->wcnt) <= 0) +#define AuRwMustAnyLock(rw) AuDebugOn(atomic_read(&(rw)->rcnt) <= 0 \ + && atomic_read(&(rw)->wcnt) <= 0) +#define AuRwDestroy(rw) AuDebugOn(atomic_read(&(rw)->rcnt) \ + || atomic_read(&(rw)->wcnt)) + +#define au_rw_class(rw, key) lockdep_set_class(&(rw)->rwsem, key) + +static inline void au_rw_init(struct au_rwsem *rw) +{ + AuDbgCntInit(rw); + init_rwsem(&rw->rwsem); +} + +static inline void au_rw_init_wlock(struct au_rwsem *rw) +{ + au_rw_init(rw); + down_write(&rw->rwsem); + AuDbgWcntInc(rw); +} + +static inline void au_rw_init_wlock_nested(struct au_rwsem *rw, + unsigned int lsc) +{ + au_rw_init(rw); + down_write_nested(&rw->rwsem, lsc); + AuDbgWcntInc(rw); +} + +static inline void au_rw_read_lock(struct au_rwsem *rw) +{ + down_read(&rw->rwsem); + AuDbgRcntInc(rw); +} + +static inline void au_rw_read_lock_nested(struct au_rwsem *rw, unsigned int lsc) +{ + down_read_nested(&rw->rwsem, lsc); + AuDbgRcntInc(rw); +} + +static inline void au_rw_read_unlock(struct au_rwsem *rw) +{ + AuRwMustReadLock(rw); + AuDbgRcntDec(rw); + up_read(&rw->rwsem); +} + +static inline void au_rw_dgrade_lock(struct au_rwsem *rw) +{ + AuRwMustWriteLock(rw); + AuDbgRcntInc(rw); + AuDbgWcntDec(rw); + downgrade_write(&rw->rwsem); +} + +static inline void au_rw_write_lock(struct au_rwsem *rw) +{ + down_write(&rw->rwsem); + AuDbgWcntInc(rw); +} + +static inline void au_rw_write_lock_nested(struct au_rwsem *rw, + unsigned int lsc) +{ + down_write_nested(&rw->rwsem, lsc); + AuDbgWcntInc(rw); +} + +static inline void au_rw_write_unlock(struct au_rwsem *rw) +{ + AuRwMustWriteLock(rw); + AuDbgWcntDec(rw); + up_write(&rw->rwsem); +} + +/* why is not _nested version defined */ +static inline int au_rw_read_trylock(struct au_rwsem *rw) +{ + int ret = down_read_trylock(&rw->rwsem); + if (ret) + AuDbgRcntInc(rw); + return ret; +} + +static inline int au_rw_write_trylock(struct au_rwsem *rw) +{ + int ret = down_write_trylock(&rw->rwsem); + if (ret) + AuDbgWcntInc(rw); + return ret; +} + +#undef AuDbgCntInit +#undef AuDbgRcntInc +#undef AuDbgRcntDec +#undef AuDbgWcntInc +#undef AuDbgWcntDec + +#define AuSimpleLockRwsemFuncs(prefix, param, rwsem) \ +static inline void prefix##_read_lock(param) \ +{ au_rw_read_lock(rwsem); } \ +static inline void prefix##_write_lock(param) \ +{ au_rw_write_lock(rwsem); } \ +static inline int prefix##_read_trylock(param) \ +{ return au_rw_read_trylock(rwsem); } \ +static inline int prefix##_write_trylock(param) \ +{ return au_rw_write_trylock(rwsem); } +/* why is not _nested version defined */ +/* static inline void prefix##_read_trylock_nested(param, lsc) +{ au_rw_read_trylock_nested(rwsem, lsc)); } +static inline void prefix##_write_trylock_nestd(param, lsc) +{ au_rw_write_trylock_nested(rwsem, lsc); } */ + +#define AuSimpleUnlockRwsemFuncs(prefix, param, rwsem) \ +static inline void prefix##_read_unlock(param) \ +{ au_rw_read_unlock(rwsem); } \ +static inline void prefix##_write_unlock(param) \ +{ au_rw_write_unlock(rwsem); } \ +static inline void prefix##_downgrade_lock(param) \ +{ au_rw_dgrade_lock(rwsem); } + +#define AuSimpleRwsemFuncs(prefix, param, rwsem) \ + AuSimpleLockRwsemFuncs(prefix, param, rwsem) \ + AuSimpleUnlockRwsemFuncs(prefix, param, rwsem) + +#endif /* __KERNEL__ */ +#endif /* __AUFS_RWSEM_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/rdu.c +++ linux-3.2.0/ubuntu/aufs/rdu.c @@ -0,0 +1,383 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * readdir in userspace. + */ + +#include +#include +#include +#include "aufs.h" + +/* bits for struct aufs_rdu.flags */ +#define AuRdu_CALLED 1 +#define AuRdu_CONT (1 << 1) +#define AuRdu_FULL (1 << 2) +#define au_ftest_rdu(flags, name) ((flags) & AuRdu_##name) +#define au_fset_rdu(flags, name) \ + do { (flags) |= AuRdu_##name; } while (0) +#define au_fclr_rdu(flags, name) \ + do { (flags) &= ~AuRdu_##name; } while (0) + +struct au_rdu_arg { + struct aufs_rdu *rdu; + union au_rdu_ent_ul ent; + unsigned long end; + + struct super_block *sb; + int err; +}; + +static int au_rdu_fill(void *__arg, const char *name, int nlen, + loff_t offset, u64 h_ino, unsigned int d_type) +{ + int err, len; + struct au_rdu_arg *arg = __arg; + struct aufs_rdu *rdu = arg->rdu; + struct au_rdu_ent ent; + + err = 0; + arg->err = 0; + au_fset_rdu(rdu->cookie.flags, CALLED); + len = au_rdu_len(nlen); + if (arg->ent.ul + len < arg->end) { + ent.ino = h_ino; + ent.bindex = rdu->cookie.bindex; + ent.type = d_type; + ent.nlen = nlen; + if (unlikely(nlen > AUFS_MAX_NAMELEN)) + ent.type = DT_UNKNOWN; + + /* unnecessary to support mmap_sem since this is a dir */ + err = -EFAULT; + if (copy_to_user(arg->ent.e, &ent, sizeof(ent))) + goto out; + if (copy_to_user(arg->ent.e->name, name, nlen)) + goto out; + /* the terminating NULL */ + if (__put_user(0, arg->ent.e->name + nlen)) + goto out; + err = 0; + /* AuDbg("%p, %.*s\n", arg->ent.p, nlen, name); */ + arg->ent.ul += len; + rdu->rent++; + } else { + err = -EFAULT; + au_fset_rdu(rdu->cookie.flags, FULL); + rdu->full = 1; + rdu->tail = arg->ent; + } + +out: + /* AuTraceErr(err); */ + return err; +} + +static int au_rdu_do(struct file *h_file, struct au_rdu_arg *arg) +{ + int err; + loff_t offset; + struct au_rdu_cookie *cookie = &arg->rdu->cookie; + + offset = vfsub_llseek(h_file, cookie->h_pos, SEEK_SET); + err = offset; + if (unlikely(offset != cookie->h_pos)) + goto out; + + err = 0; + do { + arg->err = 0; + au_fclr_rdu(cookie->flags, CALLED); + /* smp_mb(); */ + err = vfsub_readdir(h_file, au_rdu_fill, arg); + if (err >= 0) + err = arg->err; + } while (!err + && au_ftest_rdu(cookie->flags, CALLED) + && !au_ftest_rdu(cookie->flags, FULL)); + cookie->h_pos = h_file->f_pos; + +out: + AuTraceErr(err); + return err; +} + +static int au_rdu(struct file *file, struct aufs_rdu *rdu) +{ + int err; + aufs_bindex_t bend; + struct au_rdu_arg arg; + struct dentry *dentry; + struct inode *inode; + struct file *h_file; + struct au_rdu_cookie *cookie = &rdu->cookie; + + err = !access_ok(VERIFY_WRITE, rdu->ent.e, rdu->sz); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + goto out; + } + rdu->rent = 0; + rdu->tail = rdu->ent; + rdu->full = 0; + arg.rdu = rdu; + arg.ent = rdu->ent; + arg.end = arg.ent.ul; + arg.end += rdu->sz; + + err = -ENOTDIR; + if (unlikely(!file->f_op || !file->f_op->readdir)) + goto out; + + err = security_file_permission(file, MAY_READ); + AuTraceErr(err); + if (unlikely(err)) + goto out; + + dentry = file->f_dentry; + inode = dentry->d_inode; +#if 1 + mutex_lock(&inode->i_mutex); +#else + err = mutex_lock_killable(&inode->i_mutex); + AuTraceErr(err); + if (unlikely(err)) + goto out; +#endif + + arg.sb = inode->i_sb; + err = si_read_lock(arg.sb, AuLock_FLUSH | AuLock_NOPLM); + if (unlikely(err)) + goto out_mtx; + err = au_alive_dir(dentry); + if (unlikely(err)) + goto out_si; + /* todo: reval? */ + fi_read_lock(file); + + err = -EAGAIN; + if (unlikely(au_ftest_rdu(cookie->flags, CONT) + && cookie->generation != au_figen(file))) + goto out_unlock; + + err = 0; + if (!rdu->blk) { + rdu->blk = au_sbi(arg.sb)->si_rdblk; + if (!rdu->blk) + rdu->blk = au_dir_size(file, /*dentry*/NULL); + } + bend = au_fbstart(file); + if (cookie->bindex < bend) + cookie->bindex = bend; + bend = au_fbend_dir(file); + /* AuDbg("b%d, b%d\n", cookie->bindex, bend); */ + for (; !err && cookie->bindex <= bend; + cookie->bindex++, cookie->h_pos = 0) { + h_file = au_hf_dir(file, cookie->bindex); + if (!h_file) + continue; + + au_fclr_rdu(cookie->flags, FULL); + err = au_rdu_do(h_file, &arg); + AuTraceErr(err); + if (unlikely(au_ftest_rdu(cookie->flags, FULL) || err)) + break; + } + AuDbg("rent %llu\n", rdu->rent); + + if (!err && !au_ftest_rdu(cookie->flags, CONT)) { + rdu->shwh = !!au_opt_test(au_sbi(arg.sb)->si_mntflags, SHWH); + au_fset_rdu(cookie->flags, CONT); + cookie->generation = au_figen(file); + } + + ii_read_lock_child(inode); + fsstack_copy_attr_atime(inode, au_h_iptr(inode, au_ibstart(inode))); + ii_read_unlock(inode); + +out_unlock: + fi_read_unlock(file); +out_si: + si_read_unlock(arg.sb); +out_mtx: + mutex_unlock(&inode->i_mutex); +out: + AuTraceErr(err); + return err; +} + +static int au_rdu_ino(struct file *file, struct aufs_rdu *rdu) +{ + int err; + ino_t ino; + unsigned long long nent; + union au_rdu_ent_ul *u; + struct au_rdu_ent ent; + struct super_block *sb; + + err = 0; + nent = rdu->nent; + u = &rdu->ent; + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + while (nent-- > 0) { + /* unnecessary to support mmap_sem since this is a dir */ + err = copy_from_user(&ent, u->e, sizeof(ent)); + if (!err) + err = !access_ok(VERIFY_WRITE, &u->e->ino, sizeof(ino)); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + break; + } + + /* AuDbg("b%d, i%llu\n", ent.bindex, ent.ino); */ + if (!ent.wh) + err = au_ino(sb, ent.bindex, ent.ino, ent.type, &ino); + else + err = au_wh_ino(sb, ent.bindex, ent.ino, ent.type, + &ino); + if (unlikely(err)) { + AuTraceErr(err); + break; + } + + err = __put_user(ino, &u->e->ino); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + break; + } + u->ul += au_rdu_len(ent.nlen); + } + si_read_unlock(sb); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_rdu_verify(struct aufs_rdu *rdu) +{ + AuDbg("rdu{%llu, %p, %u | %u | %llu, %u, %u | " + "%llu, b%d, 0x%x, g%u}\n", + rdu->sz, rdu->ent.e, rdu->verify[AufsCtlRduV_SZ], + rdu->blk, + rdu->rent, rdu->shwh, rdu->full, + rdu->cookie.h_pos, rdu->cookie.bindex, rdu->cookie.flags, + rdu->cookie.generation); + + if (rdu->verify[AufsCtlRduV_SZ] == sizeof(*rdu)) + return 0; + + AuDbg("%u:%u\n", + rdu->verify[AufsCtlRduV_SZ], (unsigned int)sizeof(*rdu)); + return -EINVAL; +} + +long au_rdu_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + long err, e; + struct aufs_rdu rdu; + void __user *p = (void __user *)arg; + + err = copy_from_user(&rdu, p, sizeof(rdu)); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + goto out; + } + err = au_rdu_verify(&rdu); + if (unlikely(err)) + goto out; + + switch (cmd) { + case AUFS_CTL_RDU: + err = au_rdu(file, &rdu); + if (unlikely(err)) + break; + + e = copy_to_user(p, &rdu, sizeof(rdu)); + if (unlikely(e)) { + err = -EFAULT; + AuTraceErr(err); + } + break; + case AUFS_CTL_RDU_INO: + err = au_rdu_ino(file, &rdu); + break; + + default: + /* err = -ENOTTY; */ + err = -EINVAL; + } + +out: + AuTraceErr(err); + return err; +} + +#ifdef CONFIG_COMPAT +long au_rdu_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + long err, e; + struct aufs_rdu rdu; + void __user *p = compat_ptr(arg); + + /* todo: get_user()? */ + err = copy_from_user(&rdu, p, sizeof(rdu)); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + goto out; + } + rdu.ent.e = compat_ptr(rdu.ent.ul); + err = au_rdu_verify(&rdu); + if (unlikely(err)) + goto out; + + switch (cmd) { + case AUFS_CTL_RDU: + err = au_rdu(file, &rdu); + if (unlikely(err)) + break; + + rdu.ent.ul = ptr_to_compat(rdu.ent.e); + rdu.tail.ul = ptr_to_compat(rdu.tail.e); + e = copy_to_user(p, &rdu, sizeof(rdu)); + if (unlikely(e)) { + err = -EFAULT; + AuTraceErr(err); + } + break; + case AUFS_CTL_RDU_INO: + err = au_rdu_ino(file, &rdu); + break; + + default: + /* err = -ENOTTY; */ + err = -EINVAL; + } + +out: + AuTraceErr(err); + return err; +} +#endif --- linux-3.2.0.orig/ubuntu/aufs/whout.c +++ linux-3.2.0/ubuntu/aufs/whout.c @@ -0,0 +1,1049 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * whiteout for logical deletion and opaque directory + */ + +#include "aufs.h" + +#define WH_MASK S_IRUGO + +/* + * If a directory contains this file, then it is opaque. We start with the + * .wh. flag so that it is blocked by lookup. + */ +static struct qstr diropq_name = { + .name = AUFS_WH_DIROPQ, + .len = sizeof(AUFS_WH_DIROPQ) - 1 +}; + +/* + * generate whiteout name, which is NOT terminated by NULL. + * @name: original d_name.name + * @len: original d_name.len + * @wh: whiteout qstr + * returns zero when succeeds, otherwise error. + * succeeded value as wh->name should be freed by kfree(). + */ +int au_wh_name_alloc(struct qstr *wh, const struct qstr *name) +{ + char *p; + + if (unlikely(name->len > PATH_MAX - AUFS_WH_PFX_LEN)) + return -ENAMETOOLONG; + + wh->len = name->len + AUFS_WH_PFX_LEN; + p = kmalloc(wh->len, GFP_NOFS); + wh->name = p; + if (p) { + memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN); + memcpy(p + AUFS_WH_PFX_LEN, name->name, name->len); + /* smp_mb(); */ + return 0; + } + return -ENOMEM; +} + +/* ---------------------------------------------------------------------- */ + +/* + * test if the @wh_name exists under @h_parent. + * @try_sio specifies the necessary of super-io. + */ +int au_wh_test(struct dentry *h_parent, struct qstr *wh_name, + struct au_branch *br, int try_sio) +{ + int err; + struct dentry *wh_dentry; + + if (!try_sio) + wh_dentry = au_lkup_one(wh_name, h_parent, br, /*nd*/NULL); + else + wh_dentry = au_sio_lkup_one(wh_name, h_parent, br); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out; + + err = 0; + if (!wh_dentry->d_inode) + goto out_wh; /* success */ + + err = 1; + if (S_ISREG(wh_dentry->d_inode->i_mode)) + goto out_wh; /* success */ + + err = -EIO; + AuIOErr("%.*s Invalid whiteout entry type 0%o.\n", + AuDLNPair(wh_dentry), wh_dentry->d_inode->i_mode); + +out_wh: + dput(wh_dentry); +out: + return err; +} + +/* + * test if the @h_dentry sets opaque or not. + */ +int au_diropq_test(struct dentry *h_dentry, struct au_branch *br) +{ + int err; + struct inode *h_dir; + + h_dir = h_dentry->d_inode; + err = au_wh_test(h_dentry, &diropq_name, br, + au_test_h_perm_sio(h_dir, MAY_EXEC)); + return err; +} + +/* + * returns a negative dentry whose name is unique and temporary. + */ +struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct au_branch *br, + struct qstr *prefix) +{ + struct dentry *dentry; + int i; + char defname[NAME_MAX - AUFS_MAX_NAMELEN + DNAME_INLINE_LEN + 1], + *name, *p; + /* strict atomic_t is unnecessary here */ + static unsigned short cnt; + struct qstr qs; + + BUILD_BUG_ON(sizeof(cnt) * 2 > AUFS_WH_TMP_LEN); + + name = defname; + qs.len = sizeof(defname) - DNAME_INLINE_LEN + prefix->len - 1; + if (unlikely(prefix->len > DNAME_INLINE_LEN)) { + dentry = ERR_PTR(-ENAMETOOLONG); + if (unlikely(qs.len > NAME_MAX)) + goto out; + dentry = ERR_PTR(-ENOMEM); + name = kmalloc(qs.len + 1, GFP_NOFS); + if (unlikely(!name)) + goto out; + } + + /* doubly whiteout-ed */ + memcpy(name, AUFS_WH_PFX AUFS_WH_PFX, AUFS_WH_PFX_LEN * 2); + p = name + AUFS_WH_PFX_LEN * 2; + memcpy(p, prefix->name, prefix->len); + p += prefix->len; + *p++ = '.'; + AuDebugOn(name + qs.len + 1 - p <= AUFS_WH_TMP_LEN); + + qs.name = name; + for (i = 0; i < 3; i++) { + sprintf(p, "%.*x", AUFS_WH_TMP_LEN, cnt++); + dentry = au_sio_lkup_one(&qs, h_parent, br); + if (IS_ERR(dentry) || !dentry->d_inode) + goto out_name; + dput(dentry); + } + /* pr_warning("could not get random name\n"); */ + dentry = ERR_PTR(-EEXIST); + AuDbg("%.*s\n", AuLNPair(&qs)); + BUG(); + +out_name: + if (name != defname) + kfree(name); +out: + AuTraceErrPtr(dentry); + return dentry; +} + +/* + * rename the @h_dentry on @br to the whiteouted temporary name. + */ +int au_whtmp_ren(struct dentry *h_dentry, struct au_branch *br) +{ + int err; + struct path h_path = { + .mnt = br->br_mnt + }; + struct inode *h_dir; + struct dentry *h_parent; + + h_parent = h_dentry->d_parent; /* dir inode is locked */ + h_dir = h_parent->d_inode; + IMustLock(h_dir); + + h_path.dentry = au_whtmp_lkup(h_parent, br, &h_dentry->d_name); + err = PTR_ERR(h_path.dentry); + if (IS_ERR(h_path.dentry)) + goto out; + + /* under the same dir, no need to lock_rename() */ + err = vfsub_rename(h_dir, h_dentry, h_dir, &h_path); + AuTraceErr(err); + dput(h_path.dentry); + +out: + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ +/* + * functions for removing a whiteout + */ + +static int do_unlink_wh(struct inode *h_dir, struct path *h_path) +{ + int force; + + /* + * forces superio when the dir has a sticky bit. + * this may be a violation of unix fs semantics. + */ + force = (h_dir->i_mode & S_ISVTX) + && h_path->dentry->d_inode->i_uid != current_fsuid(); + return vfsub_unlink(h_dir, h_path, force); +} + +int au_wh_unlink_dentry(struct inode *h_dir, struct path *h_path, + struct dentry *dentry) +{ + int err; + + err = do_unlink_wh(h_dir, h_path); + if (!err && dentry) + au_set_dbwh(dentry, -1); + + return err; +} + +static int unlink_wh_name(struct dentry *h_parent, struct qstr *wh, + struct au_branch *br) +{ + int err; + struct path h_path = { + .mnt = br->br_mnt + }; + + err = 0; + h_path.dentry = au_lkup_one(wh, h_parent, br, /*nd*/NULL); + if (IS_ERR(h_path.dentry)) + err = PTR_ERR(h_path.dentry); + else { + if (h_path.dentry->d_inode + && S_ISREG(h_path.dentry->d_inode->i_mode)) + err = do_unlink_wh(h_parent->d_inode, &h_path); + dput(h_path.dentry); + } + + return err; +} + +/* ---------------------------------------------------------------------- */ +/* + * initialize/clean whiteout for a branch + */ + +static void au_wh_clean(struct inode *h_dir, struct path *whpath, + const int isdir) +{ + int err; + + if (!whpath->dentry->d_inode) + return; + + err = mnt_want_write(whpath->mnt); + if (!err) { + if (isdir) + err = vfsub_rmdir(h_dir, whpath); + else + err = vfsub_unlink(h_dir, whpath, /*force*/0); + mnt_drop_write(whpath->mnt); + } + if (unlikely(err)) + pr_warning("failed removing %.*s (%d), ignored.\n", + AuDLNPair(whpath->dentry), err); +} + +static int test_linkable(struct dentry *h_root) +{ + struct inode *h_dir = h_root->d_inode; + + if (h_dir->i_op->link) + return 0; + + pr_err("%.*s (%s) doesn't support link(2), use noplink and rw+nolwh\n", + AuDLNPair(h_root), au_sbtype(h_root->d_sb)); + return -ENOSYS; +} + +/* todo: should this mkdir be done in /sbin/mount.aufs helper? */ +static int au_whdir(struct inode *h_dir, struct path *path) +{ + int err; + + err = -EEXIST; + if (!path->dentry->d_inode) { + int mode = S_IRWXU; + + if (au_test_nfs(path->dentry->d_sb)) + mode |= S_IXUGO; + err = mnt_want_write(path->mnt); + if (!err) { + err = vfsub_mkdir(h_dir, path, mode); + mnt_drop_write(path->mnt); + } + } else if (S_ISDIR(path->dentry->d_inode->i_mode)) + err = 0; + else + pr_err("unknown %.*s exists\n", AuDLNPair(path->dentry)); + + return err; +} + +struct au_wh_base { + const struct qstr *name; + struct dentry *dentry; +}; + +static void au_wh_init_ro(struct inode *h_dir, struct au_wh_base base[], + struct path *h_path) +{ + h_path->dentry = base[AuBrWh_BASE].dentry; + au_wh_clean(h_dir, h_path, /*isdir*/0); + h_path->dentry = base[AuBrWh_PLINK].dentry; + au_wh_clean(h_dir, h_path, /*isdir*/1); + h_path->dentry = base[AuBrWh_ORPH].dentry; + au_wh_clean(h_dir, h_path, /*isdir*/1); +} + +/* + * returns tri-state, + * minus: error, caller should print the mesage + * zero: succuess + * plus: error, caller should NOT print the mesage + */ +static int au_wh_init_rw_nolink(struct dentry *h_root, struct au_wbr *wbr, + int do_plink, struct au_wh_base base[], + struct path *h_path) +{ + int err; + struct inode *h_dir; + + h_dir = h_root->d_inode; + h_path->dentry = base[AuBrWh_BASE].dentry; + au_wh_clean(h_dir, h_path, /*isdir*/0); + h_path->dentry = base[AuBrWh_PLINK].dentry; + if (do_plink) { + err = test_linkable(h_root); + if (unlikely(err)) { + err = 1; + goto out; + } + + err = au_whdir(h_dir, h_path); + if (unlikely(err)) + goto out; + wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry); + } else + au_wh_clean(h_dir, h_path, /*isdir*/1); + h_path->dentry = base[AuBrWh_ORPH].dentry; + err = au_whdir(h_dir, h_path); + if (unlikely(err)) + goto out; + wbr->wbr_orph = dget(base[AuBrWh_ORPH].dentry); + +out: + return err; +} + +/* + * for the moment, aufs supports the branch filesystem which does not support + * link(2). testing on FAT which does not support i_op->setattr() fully either, + * copyup failed. finally, such filesystem will not be used as the writable + * branch. + * + * returns tri-state, see above. + */ +static int au_wh_init_rw(struct dentry *h_root, struct au_wbr *wbr, + int do_plink, struct au_wh_base base[], + struct path *h_path) +{ + int err; + struct inode *h_dir; + + WbrWhMustWriteLock(wbr); + + err = test_linkable(h_root); + if (unlikely(err)) { + err = 1; + goto out; + } + + /* + * todo: should this create be done in /sbin/mount.aufs helper? + */ + err = -EEXIST; + h_dir = h_root->d_inode; + if (!base[AuBrWh_BASE].dentry->d_inode) { + err = mnt_want_write(h_path->mnt); + if (!err) { + h_path->dentry = base[AuBrWh_BASE].dentry; + err = vfsub_create(h_dir, h_path, WH_MASK); + mnt_drop_write(h_path->mnt); + } + } else if (S_ISREG(base[AuBrWh_BASE].dentry->d_inode->i_mode)) + err = 0; + else + pr_err("unknown %.*s/%.*s exists\n", + AuDLNPair(h_root), AuDLNPair(base[AuBrWh_BASE].dentry)); + if (unlikely(err)) + goto out; + + h_path->dentry = base[AuBrWh_PLINK].dentry; + if (do_plink) { + err = au_whdir(h_dir, h_path); + if (unlikely(err)) + goto out; + wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry); + } else + au_wh_clean(h_dir, h_path, /*isdir*/1); + wbr->wbr_whbase = dget(base[AuBrWh_BASE].dentry); + + h_path->dentry = base[AuBrWh_ORPH].dentry; + err = au_whdir(h_dir, h_path); + if (unlikely(err)) + goto out; + wbr->wbr_orph = dget(base[AuBrWh_ORPH].dentry); + +out: + return err; +} + +/* + * initialize the whiteout base file/dir for @br. + */ +int au_wh_init(struct dentry *h_root, struct au_branch *br, + struct super_block *sb) +{ + int err, i; + const unsigned char do_plink + = !!au_opt_test(au_mntflags(sb), PLINK); + struct path path = { + .mnt = br->br_mnt + }; + struct inode *h_dir; + struct au_wbr *wbr = br->br_wbr; + static const struct qstr base_name[] = { + [AuBrWh_BASE] = { + .name = AUFS_BASE_NAME, + .len = sizeof(AUFS_BASE_NAME) - 1 + }, + [AuBrWh_PLINK] = { + .name = AUFS_PLINKDIR_NAME, + .len = sizeof(AUFS_PLINKDIR_NAME) - 1 + }, + [AuBrWh_ORPH] = { + .name = AUFS_ORPHDIR_NAME, + .len = sizeof(AUFS_ORPHDIR_NAME) - 1 + } + }; + struct au_wh_base base[] = { + [AuBrWh_BASE] = { + .name = base_name + AuBrWh_BASE, + .dentry = NULL + }, + [AuBrWh_PLINK] = { + .name = base_name + AuBrWh_PLINK, + .dentry = NULL + }, + [AuBrWh_ORPH] = { + .name = base_name + AuBrWh_ORPH, + .dentry = NULL + } + }; + + if (wbr) + WbrWhMustWriteLock(wbr); + + for (i = 0; i < AuBrWh_Last; i++) { + /* doubly whiteouted */ + struct dentry *d; + + d = au_wh_lkup(h_root, (void *)base[i].name, br); + err = PTR_ERR(d); + if (IS_ERR(d)) + goto out; + + base[i].dentry = d; + AuDebugOn(wbr + && wbr->wbr_wh[i] + && wbr->wbr_wh[i] != base[i].dentry); + } + + if (wbr) + for (i = 0; i < AuBrWh_Last; i++) { + dput(wbr->wbr_wh[i]); + wbr->wbr_wh[i] = NULL; + } + + err = 0; + if (!au_br_writable(br->br_perm)) { + h_dir = h_root->d_inode; + au_wh_init_ro(h_dir, base, &path); + } else if (!au_br_wh_linkable(br->br_perm)) { + err = au_wh_init_rw_nolink(h_root, wbr, do_plink, base, &path); + if (err > 0) + goto out; + else if (err) + goto out_err; + } else { + err = au_wh_init_rw(h_root, wbr, do_plink, base, &path); + if (err > 0) + goto out; + else if (err) + goto out_err; + } + goto out; /* success */ + +out_err: + pr_err("an error(%d) on the writable branch %.*s(%s)\n", + err, AuDLNPair(h_root), au_sbtype(h_root->d_sb)); +out: + for (i = 0; i < AuBrWh_Last; i++) + dput(base[i].dentry); + return err; +} + +/* ---------------------------------------------------------------------- */ +/* + * whiteouts are all hard-linked usually. + * when its link count reaches a ceiling, we create a new whiteout base + * asynchronously. + */ + +struct reinit_br_wh { + struct super_block *sb; + struct au_branch *br; +}; + +static void reinit_br_wh(void *arg) +{ + int err; + aufs_bindex_t bindex; + struct path h_path; + struct reinit_br_wh *a = arg; + struct au_wbr *wbr; + struct inode *dir; + struct dentry *h_root; + struct au_hinode *hdir; + + err = 0; + wbr = a->br->br_wbr; + /* big aufs lock */ + si_noflush_write_lock(a->sb); + if (!au_br_writable(a->br->br_perm)) + goto out; + bindex = au_br_index(a->sb, a->br->br_id); + if (unlikely(bindex < 0)) + goto out; + + di_read_lock_parent(a->sb->s_root, AuLock_IR); + dir = a->sb->s_root->d_inode; + hdir = au_hi(dir, bindex); + h_root = au_h_dptr(a->sb->s_root, bindex); + + au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT); + wbr_wh_write_lock(wbr); + err = au_h_verify(wbr->wbr_whbase, au_opt_udba(a->sb), hdir->hi_inode, + h_root, a->br); + if (!err) { + err = mnt_want_write(a->br->br_mnt); + if (!err) { + h_path.dentry = wbr->wbr_whbase; + h_path.mnt = a->br->br_mnt; + err = vfsub_unlink(hdir->hi_inode, &h_path, /*force*/0); + mnt_drop_write(a->br->br_mnt); + } + } else { + pr_warning("%.*s is moved, ignored\n", + AuDLNPair(wbr->wbr_whbase)); + err = 0; + } + dput(wbr->wbr_whbase); + wbr->wbr_whbase = NULL; + if (!err) + err = au_wh_init(h_root, a->br, a->sb); + wbr_wh_write_unlock(wbr); + au_hn_imtx_unlock(hdir); + di_read_unlock(a->sb->s_root, AuLock_IR); + +out: + if (wbr) + atomic_dec(&wbr->wbr_wh_running); + atomic_dec(&a->br->br_count); + si_write_unlock(a->sb); + au_nwt_done(&au_sbi(a->sb)->si_nowait); + kfree(arg); + if (unlikely(err)) + AuIOErr("err %d\n", err); +} + +static void kick_reinit_br_wh(struct super_block *sb, struct au_branch *br) +{ + int do_dec, wkq_err; + struct reinit_br_wh *arg; + + do_dec = 1; + if (atomic_inc_return(&br->br_wbr->wbr_wh_running) != 1) + goto out; + + /* ignore ENOMEM */ + arg = kmalloc(sizeof(*arg), GFP_NOFS); + if (arg) { + /* + * dec(wh_running), kfree(arg) and dec(br_count) + * in reinit function + */ + arg->sb = sb; + arg->br = br; + atomic_inc(&br->br_count); + wkq_err = au_wkq_nowait(reinit_br_wh, arg, sb, /*flags*/0); + if (unlikely(wkq_err)) { + atomic_dec(&br->br_wbr->wbr_wh_running); + atomic_dec(&br->br_count); + kfree(arg); + } + do_dec = 0; + } + +out: + if (do_dec) + atomic_dec(&br->br_wbr->wbr_wh_running); +} + +/* ---------------------------------------------------------------------- */ + +/* + * create the whiteout @wh. + */ +static int link_or_create_wh(struct super_block *sb, aufs_bindex_t bindex, + struct dentry *wh) +{ + int err; + struct path h_path = { + .dentry = wh + }; + struct au_branch *br; + struct au_wbr *wbr; + struct dentry *h_parent; + struct inode *h_dir; + + h_parent = wh->d_parent; /* dir inode is locked */ + h_dir = h_parent->d_inode; + IMustLock(h_dir); + + br = au_sbr(sb, bindex); + h_path.mnt = br->br_mnt; + wbr = br->br_wbr; + wbr_wh_read_lock(wbr); + if (wbr->wbr_whbase) { + err = vfsub_link(wbr->wbr_whbase, h_dir, &h_path); + if (!err || err != -EMLINK) + goto out; + + /* link count full. re-initialize br_whbase. */ + kick_reinit_br_wh(sb, br); + } + + /* return this error in this context */ + err = vfsub_create(h_dir, &h_path, WH_MASK); + +out: + wbr_wh_read_unlock(wbr); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * create or remove the diropq. + */ +static struct dentry *do_diropq(struct dentry *dentry, aufs_bindex_t bindex, + unsigned int flags) +{ + struct dentry *opq_dentry, *h_dentry; + struct super_block *sb; + struct au_branch *br; + int err; + + sb = dentry->d_sb; + br = au_sbr(sb, bindex); + h_dentry = au_h_dptr(dentry, bindex); + opq_dentry = au_lkup_one(&diropq_name, h_dentry, br, /*nd*/NULL); + if (IS_ERR(opq_dentry)) + goto out; + + if (au_ftest_diropq(flags, CREATE)) { + err = link_or_create_wh(sb, bindex, opq_dentry); + if (!err) { + au_set_dbdiropq(dentry, bindex); + goto out; /* success */ + } + } else { + struct path tmp = { + .dentry = opq_dentry, + .mnt = br->br_mnt + }; + err = do_unlink_wh(au_h_iptr(dentry->d_inode, bindex), &tmp); + if (!err) + au_set_dbdiropq(dentry, -1); + } + dput(opq_dentry); + opq_dentry = ERR_PTR(err); + +out: + return opq_dentry; +} + +struct do_diropq_args { + struct dentry **errp; + struct dentry *dentry; + aufs_bindex_t bindex; + unsigned int flags; +}; + +static void call_do_diropq(void *args) +{ + struct do_diropq_args *a = args; + *a->errp = do_diropq(a->dentry, a->bindex, a->flags); +} + +struct dentry *au_diropq_sio(struct dentry *dentry, aufs_bindex_t bindex, + unsigned int flags) +{ + struct dentry *diropq, *h_dentry; + + h_dentry = au_h_dptr(dentry, bindex); + if (!au_test_h_perm_sio(h_dentry->d_inode, MAY_EXEC | MAY_WRITE)) + diropq = do_diropq(dentry, bindex, flags); + else { + int wkq_err; + struct do_diropq_args args = { + .errp = &diropq, + .dentry = dentry, + .bindex = bindex, + .flags = flags + }; + + wkq_err = au_wkq_wait(call_do_diropq, &args); + if (unlikely(wkq_err)) + diropq = ERR_PTR(wkq_err); + } + + return diropq; +} + +/* ---------------------------------------------------------------------- */ + +/* + * lookup whiteout dentry. + * @h_parent: lower parent dentry which must exist and be locked + * @base_name: name of dentry which will be whiteouted + * returns dentry for whiteout. + */ +struct dentry *au_wh_lkup(struct dentry *h_parent, struct qstr *base_name, + struct au_branch *br) +{ + int err; + struct qstr wh_name; + struct dentry *wh_dentry; + + err = au_wh_name_alloc(&wh_name, base_name); + wh_dentry = ERR_PTR(err); + if (!err) { + wh_dentry = au_lkup_one(&wh_name, h_parent, br, /*nd*/NULL); + kfree(wh_name.name); + } + return wh_dentry; +} + +/* + * link/create a whiteout for @dentry on @bindex. + */ +struct dentry *au_wh_create(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent) +{ + struct dentry *wh_dentry; + struct super_block *sb; + int err; + + sb = dentry->d_sb; + wh_dentry = au_wh_lkup(h_parent, &dentry->d_name, au_sbr(sb, bindex)); + if (!IS_ERR(wh_dentry) && !wh_dentry->d_inode) { + err = link_or_create_wh(sb, bindex, wh_dentry); + if (!err) + au_set_dbwh(dentry, bindex); + else { + dput(wh_dentry); + wh_dentry = ERR_PTR(err); + } + } + + return wh_dentry; +} + +/* ---------------------------------------------------------------------- */ + +/* Delete all whiteouts in this directory on branch bindex. */ +static int del_wh_children(struct dentry *h_dentry, struct au_nhash *whlist, + aufs_bindex_t bindex, struct au_branch *br) +{ + int err; + unsigned long ul, n; + struct qstr wh_name; + char *p; + struct hlist_head *head; + struct au_vdir_wh *tpos; + struct hlist_node *pos; + struct au_vdir_destr *str; + + err = -ENOMEM; + p = __getname_gfp(GFP_NOFS); + wh_name.name = p; + if (unlikely(!wh_name.name)) + goto out; + + err = 0; + memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN); + p += AUFS_WH_PFX_LEN; + n = whlist->nh_num; + head = whlist->nh_head; + for (ul = 0; !err && ul < n; ul++, head++) { + hlist_for_each_entry(tpos, pos, head, wh_hash) { + if (tpos->wh_bindex != bindex) + continue; + + str = &tpos->wh_str; + if (str->len + AUFS_WH_PFX_LEN <= PATH_MAX) { + memcpy(p, str->name, str->len); + wh_name.len = AUFS_WH_PFX_LEN + str->len; + err = unlink_wh_name(h_dentry, &wh_name, br); + if (!err) + continue; + break; + } + AuIOErr("whiteout name too long %.*s\n", + str->len, str->name); + err = -EIO; + break; + } + } + __putname(wh_name.name); + +out: + return err; +} + +struct del_wh_children_args { + int *errp; + struct dentry *h_dentry; + struct au_nhash *whlist; + aufs_bindex_t bindex; + struct au_branch *br; +}; + +static void call_del_wh_children(void *args) +{ + struct del_wh_children_args *a = args; + *a->errp = del_wh_children(a->h_dentry, a->whlist, a->bindex, a->br); +} + +/* ---------------------------------------------------------------------- */ + +struct au_whtmp_rmdir *au_whtmp_rmdir_alloc(struct super_block *sb, gfp_t gfp) +{ + struct au_whtmp_rmdir *whtmp; + int err; + unsigned int rdhash; + + SiMustAnyLock(sb); + + whtmp = kmalloc(sizeof(*whtmp), gfp); + if (unlikely(!whtmp)) { + whtmp = ERR_PTR(-ENOMEM); + goto out; + } + + whtmp->dir = NULL; + whtmp->br = NULL; + whtmp->wh_dentry = NULL; + /* no estimation for dir size */ + rdhash = au_sbi(sb)->si_rdhash; + if (!rdhash) + rdhash = AUFS_RDHASH_DEF; + err = au_nhash_alloc(&whtmp->whlist, rdhash, gfp); + if (unlikely(err)) { + kfree(whtmp); + whtmp = ERR_PTR(err); + } + +out: + return whtmp; +} + +void au_whtmp_rmdir_free(struct au_whtmp_rmdir *whtmp) +{ + if (whtmp->br) + atomic_dec(&whtmp->br->br_count); + dput(whtmp->wh_dentry); + iput(whtmp->dir); + au_nhash_wh_free(&whtmp->whlist); + kfree(whtmp); +} + +/* + * rmdir the whiteouted temporary named dir @h_dentry. + * @whlist: whiteouted children. + */ +int au_whtmp_rmdir(struct inode *dir, aufs_bindex_t bindex, + struct dentry *wh_dentry, struct au_nhash *whlist) +{ + int err; + struct path h_tmp; + struct inode *wh_inode, *h_dir; + struct au_branch *br; + + h_dir = wh_dentry->d_parent->d_inode; /* dir inode is locked */ + IMustLock(h_dir); + + br = au_sbr(dir->i_sb, bindex); + wh_inode = wh_dentry->d_inode; + mutex_lock_nested(&wh_inode->i_mutex, AuLsc_I_CHILD); + + /* + * someone else might change some whiteouts while we were sleeping. + * it means this whlist may have an obsoleted entry. + */ + if (!au_test_h_perm_sio(wh_inode, MAY_EXEC | MAY_WRITE)) + err = del_wh_children(wh_dentry, whlist, bindex, br); + else { + int wkq_err; + struct del_wh_children_args args = { + .errp = &err, + .h_dentry = wh_dentry, + .whlist = whlist, + .bindex = bindex, + .br = br + }; + + wkq_err = au_wkq_wait(call_del_wh_children, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + mutex_unlock(&wh_inode->i_mutex); + + if (!err) { + h_tmp.dentry = wh_dentry; + h_tmp.mnt = br->br_mnt; + err = vfsub_rmdir(h_dir, &h_tmp); + } + + if (!err) { + if (au_ibstart(dir) == bindex) { + /* todo: dir->i_mutex is necessary */ + au_cpup_attr_timesizes(dir); + vfsub_drop_nlink(dir); + } + return 0; /* success */ + } + + pr_warning("failed removing %.*s(%d), ignored\n", + AuDLNPair(wh_dentry), err); + return err; +} + +static void call_rmdir_whtmp(void *args) +{ + int err; + aufs_bindex_t bindex; + struct au_whtmp_rmdir *a = args; + struct super_block *sb; + struct dentry *h_parent; + struct inode *h_dir; + struct au_hinode *hdir; + + /* rmdir by nfsd may cause deadlock with this i_mutex */ + /* mutex_lock(&a->dir->i_mutex); */ + err = -EROFS; + sb = a->dir->i_sb; + si_read_lock(sb, !AuLock_FLUSH); + if (!au_br_writable(a->br->br_perm)) + goto out; + bindex = au_br_index(sb, a->br->br_id); + if (unlikely(bindex < 0)) + goto out; + + err = -EIO; + ii_write_lock_parent(a->dir); + h_parent = dget_parent(a->wh_dentry); + h_dir = h_parent->d_inode; + hdir = au_hi(a->dir, bindex); + au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT); + err = au_h_verify(a->wh_dentry, au_opt_udba(sb), h_dir, h_parent, + a->br); + if (!err) { + err = mnt_want_write(a->br->br_mnt); + if (!err) { + err = au_whtmp_rmdir(a->dir, bindex, a->wh_dentry, + &a->whlist); + mnt_drop_write(a->br->br_mnt); + } + } + au_hn_imtx_unlock(hdir); + dput(h_parent); + ii_write_unlock(a->dir); + +out: + /* mutex_unlock(&a->dir->i_mutex); */ + au_whtmp_rmdir_free(a); + si_read_unlock(sb); + au_nwt_done(&au_sbi(sb)->si_nowait); + if (unlikely(err)) + AuIOErr("err %d\n", err); +} + +void au_whtmp_kick_rmdir(struct inode *dir, aufs_bindex_t bindex, + struct dentry *wh_dentry, struct au_whtmp_rmdir *args) +{ + int wkq_err; + struct super_block *sb; + + IMustLock(dir); + + /* all post-process will be done in do_rmdir_whtmp(). */ + sb = dir->i_sb; + args->dir = au_igrab(dir); + args->br = au_sbr(sb, bindex); + atomic_inc(&args->br->br_count); + args->wh_dentry = dget(wh_dentry); + wkq_err = au_wkq_nowait(call_rmdir_whtmp, args, sb, /*flags*/0); + if (unlikely(wkq_err)) { + pr_warning("rmdir error %.*s (%d), ignored\n", + AuDLNPair(wh_dentry), wkq_err); + au_whtmp_rmdir_free(args); + } +} --- linux-3.2.0.orig/ubuntu/aufs/sbinfo.c +++ linux-3.2.0/ubuntu/aufs/sbinfo.c @@ -0,0 +1,343 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * superblock private data + */ + +#include "aufs.h" + +/* + * they are necessary regardless sysfs is disabled. + */ +void au_si_free(struct kobject *kobj) +{ + struct au_sbinfo *sbinfo; + char *locked __maybe_unused; /* debug only */ + + sbinfo = container_of(kobj, struct au_sbinfo, si_kobj); + AuDebugOn(!list_empty(&sbinfo->si_plink.head)); + AuDebugOn(atomic_read(&sbinfo->si_nowait.nw_len)); + + au_rw_write_lock(&sbinfo->si_rwsem); + au_br_free(sbinfo); + au_rw_write_unlock(&sbinfo->si_rwsem); + + AuDebugOn(radix_tree_gang_lookup + (&sbinfo->au_si_pid.tree, (void **)&locked, + /*first_index*/PID_MAX_DEFAULT - 1, + /*max_items*/sizeof(locked)/sizeof(*locked))); + + kfree(sbinfo->si_branch); + kfree(sbinfo->au_si_pid.bitmap); + mutex_destroy(&sbinfo->si_xib_mtx); + AuRwDestroy(&sbinfo->si_rwsem); + + kfree(sbinfo); +} + +int au_si_alloc(struct super_block *sb) +{ + int err; + struct au_sbinfo *sbinfo; + static struct lock_class_key aufs_si; + + err = -ENOMEM; + sbinfo = kzalloc(sizeof(*sbinfo), GFP_NOFS); + if (unlikely(!sbinfo)) + goto out; + + BUILD_BUG_ON(sizeof(unsigned long) != + sizeof(*sbinfo->au_si_pid.bitmap)); + sbinfo->au_si_pid.bitmap = kcalloc(BITS_TO_LONGS(PID_MAX_DEFAULT), + sizeof(*sbinfo->au_si_pid.bitmap), + GFP_NOFS); + if (unlikely(!sbinfo->au_si_pid.bitmap)) + goto out_sbinfo; + + /* will be reallocated separately */ + sbinfo->si_branch = kzalloc(sizeof(*sbinfo->si_branch), GFP_NOFS); + if (unlikely(!sbinfo->si_branch)) + goto out_pidmap; + + err = sysaufs_si_init(sbinfo); + if (unlikely(err)) + goto out_br; + + au_nwt_init(&sbinfo->si_nowait); + au_rw_init_wlock(&sbinfo->si_rwsem); + au_rw_class(&sbinfo->si_rwsem, &aufs_si); + spin_lock_init(&sbinfo->au_si_pid.tree_lock); + INIT_RADIX_TREE(&sbinfo->au_si_pid.tree, GFP_ATOMIC | __GFP_NOFAIL); + + atomic_long_set(&sbinfo->si_ninodes, 0); + atomic_long_set(&sbinfo->si_nfiles, 0); + + sbinfo->si_bend = -1; + + sbinfo->si_wbr_copyup = AuWbrCopyup_Def; + sbinfo->si_wbr_create = AuWbrCreate_Def; + sbinfo->si_wbr_copyup_ops = au_wbr_copyup_ops + sbinfo->si_wbr_copyup; + sbinfo->si_wbr_create_ops = au_wbr_create_ops + sbinfo->si_wbr_create; + + sbinfo->si_mntflags = au_opts_plink(AuOpt_Def); + + mutex_init(&sbinfo->si_xib_mtx); + sbinfo->si_xino_brid = -1; + /* leave si_xib_last_pindex and si_xib_next_bit */ + + sbinfo->si_rdcache = msecs_to_jiffies(AUFS_RDCACHE_DEF * MSEC_PER_SEC); + sbinfo->si_rdblk = AUFS_RDBLK_DEF; + sbinfo->si_rdhash = AUFS_RDHASH_DEF; + sbinfo->si_dirwh = AUFS_DIRWH_DEF; + + au_spl_init(&sbinfo->si_plink); + init_waitqueue_head(&sbinfo->si_plink_wq); + spin_lock_init(&sbinfo->si_plink_maint_lock); + + /* leave other members for sysaufs and si_mnt. */ + sbinfo->si_sb = sb; + sb->s_fs_info = sbinfo; + si_pid_set(sb); + au_debug_sbinfo_init(sbinfo); + return 0; /* success */ + +out_br: + kfree(sbinfo->si_branch); +out_pidmap: + kfree(sbinfo->au_si_pid.bitmap); +out_sbinfo: + kfree(sbinfo); +out: + return err; +} + +int au_sbr_realloc(struct au_sbinfo *sbinfo, int nbr) +{ + int err, sz; + struct au_branch **brp; + + AuRwMustWriteLock(&sbinfo->si_rwsem); + + err = -ENOMEM; + sz = sizeof(*brp) * (sbinfo->si_bend + 1); + if (unlikely(!sz)) + sz = sizeof(*brp); + brp = au_kzrealloc(sbinfo->si_branch, sz, sizeof(*brp) * nbr, GFP_NOFS); + if (brp) { + sbinfo->si_branch = brp; + err = 0; + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +unsigned int au_sigen_inc(struct super_block *sb) +{ + unsigned int gen; + + SiMustWriteLock(sb); + + gen = ++au_sbi(sb)->si_generation; + au_update_digen(sb->s_root); + au_update_iigen(sb->s_root->d_inode); + sb->s_root->d_inode->i_version++; + return gen; +} + +aufs_bindex_t au_new_br_id(struct super_block *sb) +{ + aufs_bindex_t br_id; + int i; + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + for (i = 0; i <= AUFS_BRANCH_MAX; i++) { + br_id = ++sbinfo->si_last_br_id; + AuDebugOn(br_id < 0); + if (br_id && au_br_index(sb, br_id) < 0) + return br_id; + } + + return -1; +} + +/* ---------------------------------------------------------------------- */ + +/* it is ok that new 'nwt' tasks are appended while we are sleeping */ +int si_read_lock(struct super_block *sb, int flags) +{ + int err; + + err = 0; + if (au_ftest_lock(flags, FLUSH)) + au_nwt_flush(&au_sbi(sb)->si_nowait); + + si_noflush_read_lock(sb); + err = au_plink_maint(sb, flags); + if (unlikely(err)) + si_read_unlock(sb); + + return err; +} + +int si_write_lock(struct super_block *sb, int flags) +{ + int err; + + if (au_ftest_lock(flags, FLUSH)) + au_nwt_flush(&au_sbi(sb)->si_nowait); + + si_noflush_write_lock(sb); + err = au_plink_maint(sb, flags); + if (unlikely(err)) + si_write_unlock(sb); + + return err; +} + +/* dentry and super_block lock. call at entry point */ +int aufs_read_lock(struct dentry *dentry, int flags) +{ + int err; + struct super_block *sb; + + sb = dentry->d_sb; + err = si_read_lock(sb, flags); + if (unlikely(err)) + goto out; + + if (au_ftest_lock(flags, DW)) + di_write_lock_child(dentry); + else + di_read_lock_child(dentry, flags); + + if (au_ftest_lock(flags, GEN)) { + err = au_digen_test(dentry, au_sigen(sb)); + AuDebugOn(!err && au_dbrange_test(dentry)); + if (unlikely(err)) + aufs_read_unlock(dentry, flags); + } + +out: + return err; +} + +void aufs_read_unlock(struct dentry *dentry, int flags) +{ + if (au_ftest_lock(flags, DW)) + di_write_unlock(dentry); + else + di_read_unlock(dentry, flags); + si_read_unlock(dentry->d_sb); +} + +void aufs_write_lock(struct dentry *dentry) +{ + si_write_lock(dentry->d_sb, AuLock_FLUSH | AuLock_NOPLMW); + di_write_lock_child(dentry); +} + +void aufs_write_unlock(struct dentry *dentry) +{ + di_write_unlock(dentry); + si_write_unlock(dentry->d_sb); +} + +int aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int flags) +{ + int err; + unsigned int sigen; + struct super_block *sb; + + sb = d1->d_sb; + err = si_read_lock(sb, flags); + if (unlikely(err)) + goto out; + + di_write_lock2_child(d1, d2, au_ftest_lock(flags, DIR)); + + if (au_ftest_lock(flags, GEN)) { + sigen = au_sigen(sb); + err = au_digen_test(d1, sigen); + AuDebugOn(!err && au_dbrange_test(d1)); + if (!err) { + err = au_digen_test(d2, sigen); + AuDebugOn(!err && au_dbrange_test(d2)); + } + if (unlikely(err)) + aufs_read_and_write_unlock2(d1, d2); + } + +out: + return err; +} + +void aufs_read_and_write_unlock2(struct dentry *d1, struct dentry *d2) +{ + di_write_unlock2(d1, d2); + si_read_unlock(d1->d_sb); +} + +/* ---------------------------------------------------------------------- */ + +int si_pid_test_slow(struct super_block *sb) +{ + void *p; + + rcu_read_lock(); + p = radix_tree_lookup(&au_sbi(sb)->au_si_pid.tree, current->pid); + rcu_read_unlock(); + + return (long)!!p; +} + +void si_pid_set_slow(struct super_block *sb) +{ + int err; + struct au_sbinfo *sbinfo; + + AuDebugOn(si_pid_test_slow(sb)); + + sbinfo = au_sbi(sb); + err = radix_tree_preload(GFP_NOFS | __GFP_NOFAIL); + AuDebugOn(err); + spin_lock(&sbinfo->au_si_pid.tree_lock); + err = radix_tree_insert(&sbinfo->au_si_pid.tree, current->pid, + /*any valid ptr*/sb); + spin_unlock(&sbinfo->au_si_pid.tree_lock); + AuDebugOn(err); + radix_tree_preload_end(); +} + +void si_pid_clr_slow(struct super_block *sb) +{ + void *p; + struct au_sbinfo *sbinfo; + + AuDebugOn(!si_pid_test_slow(sb)); + + sbinfo = au_sbi(sb); + spin_lock(&sbinfo->au_si_pid.tree_lock); + p = radix_tree_delete(&sbinfo->au_si_pid.tree, current->pid); + spin_unlock(&sbinfo->au_si_pid.tree_lock); +} --- linux-3.2.0.orig/ubuntu/aufs/i_op_del.c +++ linux-3.2.0/ubuntu/aufs/i_op_del.c @@ -0,0 +1,478 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode operations (del entry) + */ + +#include "aufs.h" + +/* + * decide if a new whiteout for @dentry is necessary or not. + * when it is necessary, prepare the parent dir for the upper branch whose + * branch index is @bcpup for creation. the actual creation of the whiteout will + * be done by caller. + * return value: + * 0: wh is unnecessary + * plus: wh is necessary + * minus: error + */ +int au_wr_dir_need_wh(struct dentry *dentry, int isdir, aufs_bindex_t *bcpup) +{ + int need_wh, err; + aufs_bindex_t bstart; + struct super_block *sb; + + sb = dentry->d_sb; + bstart = au_dbstart(dentry); + if (*bcpup < 0) { + *bcpup = bstart; + if (au_test_ro(sb, bstart, dentry->d_inode)) { + err = AuWbrCopyup(au_sbi(sb), dentry); + *bcpup = err; + if (unlikely(err < 0)) + goto out; + } + } else + AuDebugOn(bstart < *bcpup + || au_test_ro(sb, *bcpup, dentry->d_inode)); + AuDbg("bcpup %d, bstart %d\n", *bcpup, bstart); + + if (*bcpup != bstart) { + err = au_cpup_dirs(dentry, *bcpup); + if (unlikely(err)) + goto out; + need_wh = 1; + } else { + struct au_dinfo *dinfo, *tmp; + + need_wh = -ENOMEM; + dinfo = au_di(dentry); + tmp = au_di_alloc(sb, AuLsc_DI_TMP); + if (tmp) { + au_di_cp(tmp, dinfo); + au_di_swap(tmp, dinfo); + /* returns the number of positive dentries */ + need_wh = au_lkup_dentry(dentry, bstart + 1, /*type*/0, + /*nd*/NULL); + au_di_swap(tmp, dinfo); + au_rw_write_unlock(&tmp->di_rwsem); + au_di_free(tmp); + } + } + AuDbg("need_wh %d\n", need_wh); + err = need_wh; + +out: + return err; +} + +/* + * simple tests for the del-entry operations. + * following the checks in vfs, plus the parent-child relationship. + */ +int au_may_del(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent, int isdir) +{ + int err; + umode_t h_mode; + struct dentry *h_dentry, *h_latest; + struct inode *h_inode; + + h_dentry = au_h_dptr(dentry, bindex); + h_inode = h_dentry->d_inode; + if (dentry->d_inode) { + err = -ENOENT; + if (unlikely(!h_inode || !h_inode->i_nlink)) + goto out; + + h_mode = h_inode->i_mode; + if (!isdir) { + err = -EISDIR; + if (unlikely(S_ISDIR(h_mode))) + goto out; + } else if (unlikely(!S_ISDIR(h_mode))) { + err = -ENOTDIR; + goto out; + } + } else { + /* rename(2) case */ + err = -EIO; + if (unlikely(h_inode)) + goto out; + } + + err = -ENOENT; + /* expected parent dir is locked */ + if (unlikely(h_parent != h_dentry->d_parent)) + goto out; + err = 0; + + /* + * rmdir a dir may break the consistency on some filesystem. + * let's try heavy test. + */ + err = -EACCES; + if (unlikely(au_test_h_perm(h_parent->d_inode, MAY_EXEC | MAY_WRITE))) + goto out; + + h_latest = au_sio_lkup_one(&dentry->d_name, h_parent, + au_sbr(dentry->d_sb, bindex)); + err = -EIO; + if (IS_ERR(h_latest)) + goto out; + if (h_latest == h_dentry) + err = 0; + dput(h_latest); + +out: + return err; +} + +/* + * decide the branch where we operate for @dentry. the branch index will be set + * @rbcpup. after diciding it, 'pin' it and store the timestamps of the parent + * dir for reverting. + * when a new whiteout is necessary, create it. + */ +static struct dentry* +lock_hdir_create_wh(struct dentry *dentry, int isdir, aufs_bindex_t *rbcpup, + struct au_dtime *dt, struct au_pin *pin) +{ + struct dentry *wh_dentry; + struct super_block *sb; + struct path h_path; + int err, need_wh; + unsigned int udba; + aufs_bindex_t bcpup; + + need_wh = au_wr_dir_need_wh(dentry, isdir, rbcpup); + wh_dentry = ERR_PTR(need_wh); + if (unlikely(need_wh < 0)) + goto out; + + sb = dentry->d_sb; + udba = au_opt_udba(sb); + bcpup = *rbcpup; + err = au_pin(pin, dentry, bcpup, udba, + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + wh_dentry = ERR_PTR(err); + if (unlikely(err)) + goto out; + + h_path.dentry = au_pinned_h_parent(pin); + if (udba != AuOpt_UDBA_NONE + && au_dbstart(dentry) == bcpup) { + err = au_may_del(dentry, bcpup, h_path.dentry, isdir); + wh_dentry = ERR_PTR(err); + if (unlikely(err)) + goto out_unpin; + } + + h_path.mnt = au_sbr_mnt(sb, bcpup); + au_dtime_store(dt, au_pinned_parent(pin), &h_path); + wh_dentry = NULL; + if (!need_wh) + goto out; /* success, no need to create whiteout */ + + wh_dentry = au_wh_create(dentry, bcpup, h_path.dentry); + if (IS_ERR(wh_dentry)) + goto out_unpin; + + /* returns with the parent is locked and wh_dentry is dget-ed */ + goto out; /* success */ + +out_unpin: + au_unpin(pin); +out: + return wh_dentry; +} + +/* + * when removing a dir, rename it to a unique temporary whiteout-ed name first + * in order to be revertible and save time for removing many child whiteouts + * under the dir. + * returns 1 when there are too many child whiteout and caller should remove + * them asynchronously. returns 0 when the number of children is enough small to + * remove now or the branch fs is a remote fs. + * otherwise return an error. + */ +static int renwh_and_rmdir(struct dentry *dentry, aufs_bindex_t bindex, + struct au_nhash *whlist, struct inode *dir) +{ + int rmdir_later, err, dirwh; + struct dentry *h_dentry; + struct super_block *sb; + + sb = dentry->d_sb; + SiMustAnyLock(sb); + h_dentry = au_h_dptr(dentry, bindex); + err = au_whtmp_ren(h_dentry, au_sbr(sb, bindex)); + if (unlikely(err)) + goto out; + + /* stop monitoring */ + au_hn_free(au_hi(dentry->d_inode, bindex)); + + if (!au_test_fs_remote(h_dentry->d_sb)) { + dirwh = au_sbi(sb)->si_dirwh; + rmdir_later = (dirwh <= 1); + if (!rmdir_later) + rmdir_later = au_nhash_test_longer_wh(whlist, bindex, + dirwh); + if (rmdir_later) + return rmdir_later; + } + + err = au_whtmp_rmdir(dir, bindex, h_dentry, whlist); + if (unlikely(err)) { + AuIOErr("rmdir %.*s, b%d failed, %d. ignored\n", + AuDLNPair(h_dentry), bindex, err); + err = 0; + } + +out: + AuTraceErr(err); + return err; +} + +/* + * final procedure for deleting a entry. + * maintain dentry and iattr. + */ +static void epilog(struct inode *dir, struct dentry *dentry, + aufs_bindex_t bindex) +{ + struct inode *inode; + + inode = dentry->d_inode; + d_drop(dentry); + inode->i_ctime = dir->i_ctime; + + if (au_ibstart(dir) == bindex) + au_cpup_attr_timesizes(dir); + dir->i_version++; +} + +/* + * when an error happened, remove the created whiteout and revert everything. + */ +static int do_revert(int err, struct inode *dir, aufs_bindex_t bindex, + aufs_bindex_t bwh, struct dentry *wh_dentry, + struct dentry *dentry, struct au_dtime *dt) +{ + int rerr; + struct path h_path = { + .dentry = wh_dentry, + .mnt = au_sbr_mnt(dir->i_sb, bindex) + }; + + rerr = au_wh_unlink_dentry(au_h_iptr(dir, bindex), &h_path, dentry); + if (!rerr) { + au_set_dbwh(dentry, bwh); + au_dtime_revert(dt); + return 0; + } + + AuIOErr("%.*s reverting whiteout failed(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + return -EIO; +} + +/* ---------------------------------------------------------------------- */ + +int aufs_unlink(struct inode *dir, struct dentry *dentry) +{ + int err; + aufs_bindex_t bwh, bindex, bstart; + struct au_dtime dt; + struct au_pin pin; + struct path h_path; + struct inode *inode, *h_dir; + struct dentry *parent, *wh_dentry; + + IMustLock(dir); + + err = aufs_read_lock(dentry, AuLock_DW | AuLock_GEN); + if (unlikely(err)) + goto out; + err = au_d_hashed_positive(dentry); + if (unlikely(err)) + goto out_unlock; + inode = dentry->d_inode; + IMustLock(inode); + err = -EISDIR; + if (unlikely(S_ISDIR(inode->i_mode))) + goto out_unlock; /* possible? */ + + bstart = au_dbstart(dentry); + bwh = au_dbwh(dentry); + bindex = -1; + parent = dentry->d_parent; /* dir inode is locked */ + di_write_lock_parent(parent); + wh_dentry = lock_hdir_create_wh(dentry, /*isdir*/0, &bindex, &dt, &pin); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out_parent; + + h_path.mnt = au_sbr_mnt(dentry->d_sb, bstart); + h_path.dentry = au_h_dptr(dentry, bstart); + dget(h_path.dentry); + if (bindex == bstart) { + h_dir = au_pinned_h_dir(&pin); + err = vfsub_unlink(h_dir, &h_path, /*force*/0); + } else { + /* dir inode is locked */ + h_dir = wh_dentry->d_parent->d_inode; + IMustLock(h_dir); + err = 0; + } + + if (!err) { + vfsub_drop_nlink(inode); + epilog(dir, dentry, bindex); + + /* update target timestamps */ + if (bindex == bstart) { + vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/ + inode->i_ctime = h_path.dentry->d_inode->i_ctime; + } else + /* todo: this timestamp may be reverted later */ + inode->i_ctime = h_dir->i_ctime; + goto out_unpin; /* success */ + } + + /* revert */ + if (wh_dentry) { + int rerr; + + rerr = do_revert(err, dir, bindex, bwh, wh_dentry, dentry, &dt); + if (rerr) + err = rerr; + } + +out_unpin: + au_unpin(&pin); + dput(wh_dentry); + dput(h_path.dentry); +out_parent: + di_write_unlock(parent); +out_unlock: + aufs_read_unlock(dentry, AuLock_DW); +out: + return err; +} + +int aufs_rmdir(struct inode *dir, struct dentry *dentry) +{ + int err, rmdir_later; + aufs_bindex_t bwh, bindex, bstart; + struct au_dtime dt; + struct au_pin pin; + struct inode *inode; + struct dentry *parent, *wh_dentry, *h_dentry; + struct au_whtmp_rmdir *args; + + IMustLock(dir); + + err = aufs_read_lock(dentry, AuLock_DW | AuLock_FLUSH | AuLock_GEN); + if (unlikely(err)) + goto out; + err = au_alive_dir(dentry); + if (unlikely(err)) + goto out_unlock; + inode = dentry->d_inode; + IMustLock(inode); + err = -ENOTDIR; + if (unlikely(!S_ISDIR(inode->i_mode))) + goto out_unlock; /* possible? */ + + err = -ENOMEM; + args = au_whtmp_rmdir_alloc(dir->i_sb, GFP_NOFS); + if (unlikely(!args)) + goto out_unlock; + + parent = dentry->d_parent; /* dir inode is locked */ + di_write_lock_parent(parent); + err = au_test_empty(dentry, &args->whlist); + if (unlikely(err)) + goto out_parent; + + bstart = au_dbstart(dentry); + bwh = au_dbwh(dentry); + bindex = -1; + wh_dentry = lock_hdir_create_wh(dentry, /*isdir*/1, &bindex, &dt, &pin); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out_parent; + + h_dentry = au_h_dptr(dentry, bstart); + dget(h_dentry); + rmdir_later = 0; + if (bindex == bstart) { + err = renwh_and_rmdir(dentry, bstart, &args->whlist, dir); + if (err > 0) { + rmdir_later = err; + err = 0; + } + } else { + /* stop monitoring */ + au_hn_free(au_hi(inode, bstart)); + + /* dir inode is locked */ + IMustLock(wh_dentry->d_parent->d_inode); + err = 0; + } + + if (!err) { + vfsub_dead_dir(inode); + au_set_dbdiropq(dentry, -1); + epilog(dir, dentry, bindex); + + if (rmdir_later) { + au_whtmp_kick_rmdir(dir, bstart, h_dentry, args); + args = NULL; + } + + goto out_unpin; /* success */ + } + + /* revert */ + AuLabel(revert); + if (wh_dentry) { + int rerr; + + rerr = do_revert(err, dir, bindex, bwh, wh_dentry, dentry, &dt); + if (rerr) + err = rerr; + } + +out_unpin: + au_unpin(&pin); + dput(wh_dentry); + dput(h_dentry); +out_parent: + di_write_unlock(parent); + if (args) + au_whtmp_rmdir_free(args); +out_unlock: + aufs_read_unlock(dentry, AuLock_DW); +out: + AuTraceErr(err); + return err; +} --- linux-3.2.0.orig/ubuntu/aufs/super.h +++ linux-3.2.0/ubuntu/aufs/super.h @@ -0,0 +1,546 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * super_block operations + */ + +#ifndef __AUFS_SUPER_H__ +#define __AUFS_SUPER_H__ + +#ifdef __KERNEL__ + +#include +#include "rwsem.h" +#include "spl.h" +#include "wkq.h" + +typedef ssize_t (*au_readf_t)(struct file *, char __user *, size_t, loff_t *); +typedef ssize_t (*au_writef_t)(struct file *, const char __user *, size_t, + loff_t *); + +/* policies to select one among multiple writable branches */ +struct au_wbr_copyup_operations { + int (*copyup)(struct dentry *dentry); +}; + +struct au_wbr_create_operations { + int (*create)(struct dentry *dentry, int isdir); + int (*init)(struct super_block *sb); + int (*fin)(struct super_block *sb); +}; + +struct au_wbr_mfs { + struct mutex mfs_lock; /* protect this structure */ + unsigned long mfs_jiffy; + unsigned long mfs_expire; + aufs_bindex_t mfs_bindex; + + unsigned long long mfsrr_bytes; + unsigned long long mfsrr_watermark; +}; + +struct au_branch; +struct au_sbinfo { + /* nowait tasks in the system-wide workqueue */ + struct au_nowait_tasks si_nowait; + + /* + * tried sb->s_umount, but failed due to the dependecy between i_mutex. + * rwsem for au_sbinfo is necessary. + */ + struct au_rwsem si_rwsem; + + /* prevent recursive locking in deleting inode */ + struct { + unsigned long *bitmap; + spinlock_t tree_lock; + struct radix_tree_root tree; + } au_si_pid; + + /* + * dirty approach to protect sb->sb_inodes and ->s_files from remount. + */ + atomic_long_t si_ninodes, si_nfiles; + + /* branch management */ + unsigned int si_generation; + + /* see above flags */ + unsigned char au_si_status; + + aufs_bindex_t si_bend; + + /* dirty trick to keep br_id plus */ + unsigned int si_last_br_id : + sizeof(aufs_bindex_t) * BITS_PER_BYTE - 1; + struct au_branch **si_branch; + + /* policy to select a writable branch */ + unsigned char si_wbr_copyup; + unsigned char si_wbr_create; + struct au_wbr_copyup_operations *si_wbr_copyup_ops; + struct au_wbr_create_operations *si_wbr_create_ops; + + /* round robin */ + atomic_t si_wbr_rr_next; + + /* most free space */ + struct au_wbr_mfs si_wbr_mfs; + + /* mount flags */ + /* include/asm-ia64/siginfo.h defines a macro named si_flags */ + unsigned int si_mntflags; + + /* external inode number (bitmap and translation table) */ + au_readf_t si_xread; + au_writef_t si_xwrite; + struct file *si_xib; + struct mutex si_xib_mtx; /* protect xib members */ + unsigned long *si_xib_buf; + unsigned long si_xib_last_pindex; + int si_xib_next_bit; + aufs_bindex_t si_xino_brid; + /* reserved for future use */ + /* unsigned long long si_xib_limit; */ /* Max xib file size */ + +#ifdef CONFIG_AUFS_EXPORT + /* i_generation */ + struct file *si_xigen; + atomic_t si_xigen_next; +#endif + + /* vdir parameters */ + unsigned long si_rdcache; /* max cache time in jiffies */ + unsigned int si_rdblk; /* deblk size */ + unsigned int si_rdhash; /* hash size */ + + /* + * If the number of whiteouts are larger than si_dirwh, leave all of + * them after au_whtmp_ren to reduce the cost of rmdir(2). + * future fsck.aufs or kernel thread will remove them later. + * Otherwise, remove all whiteouts and the dir in rmdir(2). + */ + unsigned int si_dirwh; + + /* + * rename(2) a directory with all children. + */ + /* reserved for future use */ + /* int si_rendir; */ + + /* pseudo_link list */ + struct au_splhead si_plink; + wait_queue_head_t si_plink_wq; + spinlock_t si_plink_maint_lock; + pid_t si_plink_maint_pid; + + /* + * sysfs and lifetime management. + * this is not a small structure and it may be a waste of memory in case + * of sysfs is disabled, particulary when many aufs-es are mounted. + * but using sysfs is majority. + */ + struct kobject si_kobj; +#ifdef CONFIG_DEBUG_FS + struct dentry *si_dbgaufs, *si_dbgaufs_xib; +#ifdef CONFIG_AUFS_EXPORT + struct dentry *si_dbgaufs_xigen; +#endif +#endif + +#ifdef CONFIG_AUFS_SBILIST + struct list_head si_list; +#endif + + /* dirty, necessary for unmounting, sysfs and sysrq */ + struct super_block *si_sb; +}; + +/* sbinfo status flags */ +/* + * set true when refresh_dirs() failed at remount time. + * then try refreshing dirs at access time again. + * if it is false, refreshing dirs at access time is unnecesary + */ +#define AuSi_FAILED_REFRESH_DIR 1 +static inline unsigned char au_do_ftest_si(struct au_sbinfo *sbi, + unsigned int flag) +{ + AuRwMustAnyLock(&sbi->si_rwsem); + return sbi->au_si_status & flag; +} +#define au_ftest_si(sbinfo, name) au_do_ftest_si(sbinfo, AuSi_##name) +#define au_fset_si(sbinfo, name) do { \ + AuRwMustWriteLock(&(sbinfo)->si_rwsem); \ + (sbinfo)->au_si_status |= AuSi_##name; \ +} while (0) +#define au_fclr_si(sbinfo, name) do { \ + AuRwMustWriteLock(&(sbinfo)->si_rwsem); \ + (sbinfo)->au_si_status &= ~AuSi_##name; \ +} while (0) + +/* ---------------------------------------------------------------------- */ + +/* policy to select one among writable branches */ +#define AuWbrCopyup(sbinfo, ...) \ + ((sbinfo)->si_wbr_copyup_ops->copyup(__VA_ARGS__)) +#define AuWbrCreate(sbinfo, ...) \ + ((sbinfo)->si_wbr_create_ops->create(__VA_ARGS__)) + +/* flags for si_read_lock()/aufs_read_lock()/di_read_lock() */ +#define AuLock_DW 1 /* write-lock dentry */ +#define AuLock_IR (1 << 1) /* read-lock inode */ +#define AuLock_IW (1 << 2) /* write-lock inode */ +#define AuLock_FLUSH (1 << 3) /* wait for 'nowait' tasks */ +#define AuLock_DIR (1 << 4) /* target is a dir */ +#define AuLock_NOPLM (1 << 5) /* return err in plm mode */ +#define AuLock_NOPLMW (1 << 6) /* wait for plm mode ends */ +#define AuLock_GEN (1 << 7) /* test digen/iigen */ +#define au_ftest_lock(flags, name) ((flags) & AuLock_##name) +#define au_fset_lock(flags, name) \ + do { (flags) |= AuLock_##name; } while (0) +#define au_fclr_lock(flags, name) \ + do { (flags) &= ~AuLock_##name; } while (0) + +/* ---------------------------------------------------------------------- */ + +/* super.c */ +extern struct file_system_type aufs_fs_type; +struct inode *au_iget_locked(struct super_block *sb, ino_t ino); +typedef unsigned long long (*au_arraycb_t)(void *array, unsigned long long max, + void *arg); +void au_array_free(void *array); +void *au_array_alloc(unsigned long long *hint, au_arraycb_t cb, void *arg); +struct inode **au_iarray_alloc(struct super_block *sb, unsigned long long *max); +void au_iarray_free(struct inode **a, unsigned long long max); + +/* sbinfo.c */ +void au_si_free(struct kobject *kobj); +int au_si_alloc(struct super_block *sb); +int au_sbr_realloc(struct au_sbinfo *sbinfo, int nbr); + +unsigned int au_sigen_inc(struct super_block *sb); +aufs_bindex_t au_new_br_id(struct super_block *sb); + +int si_read_lock(struct super_block *sb, int flags); +int si_write_lock(struct super_block *sb, int flags); +int aufs_read_lock(struct dentry *dentry, int flags); +void aufs_read_unlock(struct dentry *dentry, int flags); +void aufs_write_lock(struct dentry *dentry); +void aufs_write_unlock(struct dentry *dentry); +int aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int flags); +void aufs_read_and_write_unlock2(struct dentry *d1, struct dentry *d2); + +int si_pid_test_slow(struct super_block *sb); +void si_pid_set_slow(struct super_block *sb); +void si_pid_clr_slow(struct super_block *sb); + +/* wbr_policy.c */ +extern struct au_wbr_copyup_operations au_wbr_copyup_ops[]; +extern struct au_wbr_create_operations au_wbr_create_ops[]; +int au_cpdown_dirs(struct dentry *dentry, aufs_bindex_t bdst); + +/* ---------------------------------------------------------------------- */ + +static inline struct au_sbinfo *au_sbi(struct super_block *sb) +{ + return sb->s_fs_info; +} + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_EXPORT +void au_export_init(struct super_block *sb); + +static inline int au_test_nfsd(void) +{ + struct task_struct *tsk = current; + + return (tsk->flags & PF_KTHREAD) + && !strcmp(tsk->comm, "nfsd"); +} + +void au_xigen_inc(struct inode *inode); +int au_xigen_new(struct inode *inode); +int au_xigen_set(struct super_block *sb, struct file *base); +void au_xigen_clr(struct super_block *sb); + +static inline int au_busy_or_stale(void) +{ + if (!au_test_nfsd()) + return -EBUSY; + return -ESTALE; +} +#else +AuStubVoid(au_export_init, struct super_block *sb) +AuStubInt0(au_test_nfsd, void) +AuStubVoid(au_xigen_inc, struct inode *inode) +AuStubInt0(au_xigen_new, struct inode *inode) +AuStubInt0(au_xigen_set, struct super_block *sb, struct file *base) +AuStubVoid(au_xigen_clr, struct super_block *sb) +static inline int au_busy_or_stale(void) +{ + return -EBUSY; +} +#endif /* CONFIG_AUFS_EXPORT */ + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_SBILIST +/* module.c */ +extern struct au_splhead au_sbilist; + +static inline void au_sbilist_init(void) +{ + au_spl_init(&au_sbilist); +} + +static inline void au_sbilist_add(struct super_block *sb) +{ + au_spl_add(&au_sbi(sb)->si_list, &au_sbilist); +} + +static inline void au_sbilist_del(struct super_block *sb) +{ + au_spl_del(&au_sbi(sb)->si_list, &au_sbilist); +} + +#ifdef CONFIG_AUFS_MAGIC_SYSRQ +static inline void au_sbilist_lock(void) +{ + spin_lock(&au_sbilist.spin); +} + +static inline void au_sbilist_unlock(void) +{ + spin_unlock(&au_sbilist.spin); +} +#define AuGFP_SBILIST GFP_ATOMIC +#else +AuStubVoid(au_sbilist_lock, void) +AuStubVoid(au_sbilist_unlock, void) +#define AuGFP_SBILIST GFP_NOFS +#endif /* CONFIG_AUFS_MAGIC_SYSRQ */ +#else +AuStubVoid(au_sbilist_init, void) +AuStubVoid(au_sbilist_add, struct super_block*) +AuStubVoid(au_sbilist_del, struct super_block*) +AuStubVoid(au_sbilist_lock, void) +AuStubVoid(au_sbilist_unlock, void) +#define AuGFP_SBILIST GFP_NOFS +#endif + +/* ---------------------------------------------------------------------- */ + +static inline void dbgaufs_si_null(struct au_sbinfo *sbinfo) +{ + /* + * This function is a dynamic '__init' fucntion actually, + * so the tiny check for si_rwsem is unnecessary. + */ + /* AuRwMustWriteLock(&sbinfo->si_rwsem); */ +#ifdef CONFIG_DEBUG_FS + sbinfo->si_dbgaufs = NULL; + sbinfo->si_dbgaufs_xib = NULL; +#ifdef CONFIG_AUFS_EXPORT + sbinfo->si_dbgaufs_xigen = NULL; +#endif +#endif +} + +/* ---------------------------------------------------------------------- */ + +static inline pid_t si_pid_bit(void) +{ + /* the origin of pid is 1, but the bitmap's is 0 */ + return current->pid - 1; +} + +static inline int si_pid_test(struct super_block *sb) +{ + pid_t bit = si_pid_bit(); + if (bit < PID_MAX_DEFAULT) + return test_bit(bit, au_sbi(sb)->au_si_pid.bitmap); + else + return si_pid_test_slow(sb); +} + +static inline void si_pid_set(struct super_block *sb) +{ + pid_t bit = si_pid_bit(); + if (bit < PID_MAX_DEFAULT) { + AuDebugOn(test_bit(bit, au_sbi(sb)->au_si_pid.bitmap)); + set_bit(bit, au_sbi(sb)->au_si_pid.bitmap); + /* smp_mb(); */ + } else + si_pid_set_slow(sb); +} + +static inline void si_pid_clr(struct super_block *sb) +{ + pid_t bit = si_pid_bit(); + if (bit < PID_MAX_DEFAULT) { + AuDebugOn(!test_bit(bit, au_sbi(sb)->au_si_pid.bitmap)); + clear_bit(bit, au_sbi(sb)->au_si_pid.bitmap); + /* smp_mb(); */ + } else + si_pid_clr_slow(sb); +} + +/* ---------------------------------------------------------------------- */ + +/* lock superblock. mainly for entry point functions */ +/* + * __si_read_lock, __si_write_lock, + * __si_read_unlock, __si_write_unlock, __si_downgrade_lock + */ +AuSimpleRwsemFuncs(__si, struct super_block *sb, &au_sbi(sb)->si_rwsem); + +#define SiMustNoWaiters(sb) AuRwMustNoWaiters(&au_sbi(sb)->si_rwsem) +#define SiMustAnyLock(sb) AuRwMustAnyLock(&au_sbi(sb)->si_rwsem) +#define SiMustWriteLock(sb) AuRwMustWriteLock(&au_sbi(sb)->si_rwsem) + +static inline void si_noflush_read_lock(struct super_block *sb) +{ + __si_read_lock(sb); + si_pid_set(sb); +} + +static inline int si_noflush_read_trylock(struct super_block *sb) +{ + int locked = __si_read_trylock(sb); + if (locked) + si_pid_set(sb); + return locked; +} + +static inline void si_noflush_write_lock(struct super_block *sb) +{ + __si_write_lock(sb); + si_pid_set(sb); +} + +static inline int si_noflush_write_trylock(struct super_block *sb) +{ + int locked = __si_write_trylock(sb); + if (locked) + si_pid_set(sb); + return locked; +} + +#if 0 /* unused */ +static inline int si_read_trylock(struct super_block *sb, int flags) +{ + if (au_ftest_lock(flags, FLUSH)) + au_nwt_flush(&au_sbi(sb)->si_nowait); + return si_noflush_read_trylock(sb); +} +#endif + +static inline void si_read_unlock(struct super_block *sb) +{ + si_pid_clr(sb); + __si_read_unlock(sb); +} + +#if 0 /* unused */ +static inline int si_write_trylock(struct super_block *sb, int flags) +{ + if (au_ftest_lock(flags, FLUSH)) + au_nwt_flush(&au_sbi(sb)->si_nowait); + return si_noflush_write_trylock(sb); +} +#endif + +static inline void si_write_unlock(struct super_block *sb) +{ + si_pid_clr(sb); + __si_write_unlock(sb); +} + +#if 0 /* unused */ +static inline void si_downgrade_lock(struct super_block *sb) +{ + __si_downgrade_lock(sb); +} +#endif + +/* ---------------------------------------------------------------------- */ + +static inline aufs_bindex_t au_sbend(struct super_block *sb) +{ + SiMustAnyLock(sb); + return au_sbi(sb)->si_bend; +} + +static inline unsigned int au_mntflags(struct super_block *sb) +{ + SiMustAnyLock(sb); + return au_sbi(sb)->si_mntflags; +} + +static inline unsigned int au_sigen(struct super_block *sb) +{ + SiMustAnyLock(sb); + return au_sbi(sb)->si_generation; +} + +static inline void au_ninodes_inc(struct super_block *sb) +{ + atomic_long_inc(&au_sbi(sb)->si_ninodes); +} + +static inline void au_ninodes_dec(struct super_block *sb) +{ + AuDebugOn(!atomic_long_read(&au_sbi(sb)->si_ninodes)); + atomic_long_dec(&au_sbi(sb)->si_ninodes); +} + +static inline void au_nfiles_inc(struct super_block *sb) +{ + atomic_long_inc(&au_sbi(sb)->si_nfiles); +} + +static inline void au_nfiles_dec(struct super_block *sb) +{ + AuDebugOn(!atomic_long_read(&au_sbi(sb)->si_nfiles)); + atomic_long_dec(&au_sbi(sb)->si_nfiles); +} + +static inline struct au_branch *au_sbr(struct super_block *sb, + aufs_bindex_t bindex) +{ + SiMustAnyLock(sb); + return au_sbi(sb)->si_branch[0 + bindex]; +} + +static inline void au_xino_brid_set(struct super_block *sb, aufs_bindex_t brid) +{ + SiMustWriteLock(sb); + au_sbi(sb)->si_xino_brid = brid; +} + +static inline aufs_bindex_t au_xino_brid(struct super_block *sb) +{ + SiMustAnyLock(sb); + return au_sbi(sb)->si_xino_brid; +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_SUPER_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/wkq.c +++ linux-3.2.0/ubuntu/aufs/wkq.c @@ -0,0 +1,214 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * workqueue for asynchronous/super-io operations + * todo: try new dredential scheme + */ + +#include +#include "aufs.h" + +/* internal workqueue named AUFS_WKQ_NAME */ + +static struct workqueue_struct *au_wkq; + +struct au_wkinfo { + struct work_struct wk; + struct kobject *kobj; + + unsigned int flags; /* see wkq.h */ + + au_wkq_func_t func; + void *args; + + struct completion *comp; +}; + +/* ---------------------------------------------------------------------- */ + +static void wkq_func(struct work_struct *wk) +{ + struct au_wkinfo *wkinfo = container_of(wk, struct au_wkinfo, wk); + + AuDebugOn(current_fsuid()); + AuDebugOn(rlimit(RLIMIT_FSIZE) != RLIM_INFINITY); + + wkinfo->func(wkinfo->args); + if (au_ftest_wkq(wkinfo->flags, WAIT)) + complete(wkinfo->comp); + else { + kobject_put(wkinfo->kobj); + module_put(THIS_MODULE); /* todo: ?? */ + kfree(wkinfo); + } +} + +/* + * Since struct completion is large, try allocating it dynamically. + */ +#if defined(CONFIG_4KSTACKS) || defined(AuTest4KSTACKS) +#define AuWkqCompDeclare(name) struct completion *comp = NULL + +static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp) +{ + *comp = kmalloc(sizeof(**comp), GFP_NOFS); + if (*comp) { + init_completion(*comp); + wkinfo->comp = *comp; + return 0; + } + return -ENOMEM; +} + +static void au_wkq_comp_free(struct completion *comp) +{ + kfree(comp); +} + +#else + +/* no braces */ +#define AuWkqCompDeclare(name) \ + DECLARE_COMPLETION_ONSTACK(_ ## name); \ + struct completion *comp = &_ ## name + +static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp) +{ + wkinfo->comp = *comp; + return 0; +} + +static void au_wkq_comp_free(struct completion *comp __maybe_unused) +{ + /* empty */ +} +#endif /* 4KSTACKS */ + +static void au_wkq_run(struct au_wkinfo *wkinfo) +{ + if (au_ftest_wkq(wkinfo->flags, NEST)) { + if (au_wkq_test()) { + AuWarn1("wkq from wkq, due to a dead dir by UDBA?\n"); + AuDebugOn(au_ftest_wkq(wkinfo->flags, WAIT)); + } + } else + au_dbg_verify_kthread(); + + if (au_ftest_wkq(wkinfo->flags, WAIT)) { + INIT_WORK_ONSTACK(&wkinfo->wk, wkq_func); + queue_work(au_wkq, &wkinfo->wk); + } else { + INIT_WORK(&wkinfo->wk, wkq_func); + schedule_work(&wkinfo->wk); + } +} + +/* + * Be careful. It is easy to make deadlock happen. + * processA: lock, wkq and wait + * processB: wkq and wait, lock in wkq + * --> deadlock + */ +int au_wkq_do_wait(unsigned int flags, au_wkq_func_t func, void *args) +{ + int err; + AuWkqCompDeclare(comp); + struct au_wkinfo wkinfo = { + .flags = flags, + .func = func, + .args = args + }; + + err = au_wkq_comp_alloc(&wkinfo, &comp); + if (!err) { + au_wkq_run(&wkinfo); + /* no timeout, no interrupt */ + wait_for_completion(wkinfo.comp); + au_wkq_comp_free(comp); + destroy_work_on_stack(&wkinfo.wk); + } + + return err; + +} + +/* + * Note: dget/dput() in func for aufs dentries are not supported. It will be a + * problem in a concurrent umounting. + */ +int au_wkq_nowait(au_wkq_func_t func, void *args, struct super_block *sb, + unsigned int flags) +{ + int err; + struct au_wkinfo *wkinfo; + + atomic_inc(&au_sbi(sb)->si_nowait.nw_len); + + /* + * wkq_func() must free this wkinfo. + * it highly depends upon the implementation of workqueue. + */ + err = 0; + wkinfo = kmalloc(sizeof(*wkinfo), GFP_NOFS); + if (wkinfo) { + wkinfo->kobj = &au_sbi(sb)->si_kobj; + wkinfo->flags = flags & ~AuWkq_WAIT; + wkinfo->func = func; + wkinfo->args = args; + wkinfo->comp = NULL; + kobject_get(wkinfo->kobj); + __module_get(THIS_MODULE); /* todo: ?? */ + + au_wkq_run(wkinfo); + } else { + err = -ENOMEM; + au_nwt_done(&au_sbi(sb)->si_nowait); + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +void au_nwt_init(struct au_nowait_tasks *nwt) +{ + atomic_set(&nwt->nw_len, 0); + /* smp_mb(); */ /* atomic_set */ + init_waitqueue_head(&nwt->nw_wq); +} + +void au_wkq_fin(void) +{ + destroy_workqueue(au_wkq); +} + +int __init au_wkq_init(void) +{ + int err; + + err = 0; + BUILD_BUG_ON(!WQ_RESCUER); + au_wkq = alloc_workqueue(AUFS_WKQ_NAME, !WQ_RESCUER, WQ_DFL_ACTIVE); + if (IS_ERR(au_wkq)) + err = PTR_ERR(au_wkq); + else if (!au_wkq) + err = -ENOMEM; + + return err; +} --- linux-3.2.0.orig/ubuntu/aufs/super.c +++ linux-3.2.0/ubuntu/aufs/super.c @@ -0,0 +1,938 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * mount and super_block operations + */ + +#include +#include +#include +#include +#include +#include +#include "aufs.h" + +/* + * super_operations + */ +static struct inode *aufs_alloc_inode(struct super_block *sb __maybe_unused) +{ + struct au_icntnr *c; + + c = au_cache_alloc_icntnr(); + if (c) { + au_icntnr_init(c); + c->vfs_inode.i_version = 1; /* sigen(sb); */ + c->iinfo.ii_hinode = NULL; + return &c->vfs_inode; + } + return NULL; +} + +static void aufs_destroy_inode_cb(struct rcu_head *head) +{ + struct inode *inode = container_of(head, struct inode, i_rcu); + + INIT_LIST_HEAD(&inode->i_dentry); + au_cache_free_icntnr(container_of(inode, struct au_icntnr, vfs_inode)); +} + +static void aufs_destroy_inode(struct inode *inode) +{ + au_iinfo_fin(inode); + call_rcu(&inode->i_rcu, aufs_destroy_inode_cb); +} + +struct inode *au_iget_locked(struct super_block *sb, ino_t ino) +{ + struct inode *inode; + int err; + + inode = iget_locked(sb, ino); + if (unlikely(!inode)) { + inode = ERR_PTR(-ENOMEM); + goto out; + } + if (!(inode->i_state & I_NEW)) + goto out; + + err = au_xigen_new(inode); + if (!err) + err = au_iinfo_init(inode); + if (!err) + inode->i_version++; + else { + iget_failed(inode); + inode = ERR_PTR(err); + } + +out: + /* never return NULL */ + AuDebugOn(!inode); + AuTraceErrPtr(inode); + return inode; +} + +/* lock free root dinfo */ +static int au_show_brs(struct seq_file *seq, struct super_block *sb) +{ + int err; + aufs_bindex_t bindex, bend; + struct path path; + struct au_hdentry *hdp; + struct au_branch *br; + char *perm; + + err = 0; + bend = au_sbend(sb); + hdp = au_di(sb->s_root)->di_hdentry; + for (bindex = 0; !err && bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + path.mnt = br->br_mnt; + path.dentry = hdp[bindex].hd_dentry; + err = au_seq_path(seq, &path); + if (err > 0) { + perm = au_optstr_br_perm(br->br_perm); + if (perm) { + err = seq_printf(seq, "=%s", perm); + kfree(perm); + if (err == -1) + err = -E2BIG; + } else + err = -ENOMEM; + } + if (!err && bindex != bend) + err = seq_putc(seq, ':'); + } + + return err; +} + +static void au_show_wbr_create(struct seq_file *m, int v, + struct au_sbinfo *sbinfo) +{ + const char *pat; + + AuRwMustAnyLock(&sbinfo->si_rwsem); + + seq_printf(m, ",create="); + pat = au_optstr_wbr_create(v); + switch (v) { + case AuWbrCreate_TDP: + case AuWbrCreate_RR: + case AuWbrCreate_MFS: + case AuWbrCreate_PMFS: + seq_printf(m, pat); + break; + case AuWbrCreate_MFSV: + seq_printf(m, /*pat*/"mfs:%lu", + jiffies_to_msecs(sbinfo->si_wbr_mfs.mfs_expire) + / MSEC_PER_SEC); + break; + case AuWbrCreate_PMFSV: + seq_printf(m, /*pat*/"pmfs:%lu", + jiffies_to_msecs(sbinfo->si_wbr_mfs.mfs_expire) + / MSEC_PER_SEC); + break; + case AuWbrCreate_MFSRR: + seq_printf(m, /*pat*/"mfsrr:%llu", + sbinfo->si_wbr_mfs.mfsrr_watermark); + break; + case AuWbrCreate_MFSRRV: + seq_printf(m, /*pat*/"mfsrr:%llu:%lu", + sbinfo->si_wbr_mfs.mfsrr_watermark, + jiffies_to_msecs(sbinfo->si_wbr_mfs.mfs_expire) + / MSEC_PER_SEC); + break; + } +} + +static int au_show_xino(struct seq_file *seq, struct vfsmount *mnt) +{ +#ifdef CONFIG_SYSFS + return 0; +#else + int err; + const int len = sizeof(AUFS_XINO_FNAME) - 1; + aufs_bindex_t bindex, brid; + struct super_block *sb; + struct qstr *name; + struct file *f; + struct dentry *d, *h_root; + struct au_hdentry *hdp; + + AuRwMustAnyLock(&sbinfo->si_rwsem); + + err = 0; + sb = mnt->mnt_sb; + f = au_sbi(sb)->si_xib; + if (!f) + goto out; + + /* stop printing the default xino path on the first writable branch */ + h_root = NULL; + brid = au_xino_brid(sb); + if (brid >= 0) { + bindex = au_br_index(sb, brid); + hdp = au_di(sb->s_root)->di_hdentry; + h_root = hdp[0 + bindex].hd_dentry; + } + d = f->f_dentry; + name = &d->d_name; + /* safe ->d_parent because the file is unlinked */ + if (d->d_parent == h_root + && name->len == len + && !memcmp(name->name, AUFS_XINO_FNAME, len)) + goto out; + + seq_puts(seq, ",xino="); + err = au_xino_path(seq, f); + +out: + return err; +#endif +} + +/* seq_file will re-call me in case of too long string */ +static int aufs_show_options(struct seq_file *m, struct vfsmount *mnt) +{ + int err; + unsigned int mnt_flags, v; + struct super_block *sb; + struct au_sbinfo *sbinfo; + +#define AuBool(name, str) do { \ + v = au_opt_test(mnt_flags, name); \ + if (v != au_opt_test(AuOpt_Def, name)) \ + seq_printf(m, ",%s" #str, v ? "" : "no"); \ +} while (0) + +#define AuStr(name, str) do { \ + v = mnt_flags & AuOptMask_##name; \ + if (v != (AuOpt_Def & AuOptMask_##name)) \ + seq_printf(m, "," #str "=%s", au_optstr_##str(v)); \ +} while (0) + +#define AuUInt(name, str, val) do { \ + if (val != AUFS_##name##_DEF) \ + seq_printf(m, "," #str "=%u", val); \ +} while (0) + + /* lock free root dinfo */ + sb = mnt->mnt_sb; + si_noflush_read_lock(sb); + sbinfo = au_sbi(sb); + seq_printf(m, ",si=%lx", sysaufs_si_id(sbinfo)); + + mnt_flags = au_mntflags(sb); + if (au_opt_test(mnt_flags, XINO)) { + err = au_show_xino(m, mnt); + if (unlikely(err)) + goto out; + } else + seq_puts(m, ",noxino"); + + AuBool(TRUNC_XINO, trunc_xino); + AuStr(UDBA, udba); + AuBool(SHWH, shwh); + AuBool(PLINK, plink); + AuBool(DIO, dio); + /* AuBool(DIRPERM1, dirperm1); */ + /* AuBool(REFROF, refrof); */ + + v = sbinfo->si_wbr_create; + if (v != AuWbrCreate_Def) + au_show_wbr_create(m, v, sbinfo); + + v = sbinfo->si_wbr_copyup; + if (v != AuWbrCopyup_Def) + seq_printf(m, ",cpup=%s", au_optstr_wbr_copyup(v)); + + v = au_opt_test(mnt_flags, ALWAYS_DIROPQ); + if (v != au_opt_test(AuOpt_Def, ALWAYS_DIROPQ)) + seq_printf(m, ",diropq=%c", v ? 'a' : 'w'); + + AuUInt(DIRWH, dirwh, sbinfo->si_dirwh); + + v = jiffies_to_msecs(sbinfo->si_rdcache) / MSEC_PER_SEC; + AuUInt(RDCACHE, rdcache, v); + + AuUInt(RDBLK, rdblk, sbinfo->si_rdblk); + AuUInt(RDHASH, rdhash, sbinfo->si_rdhash); + + AuBool(SUM, sum); + /* AuBool(SUM_W, wsum); */ + AuBool(WARN_PERM, warn_perm); + AuBool(VERBOSE, verbose); + +out: + /* be sure to print "br:" last */ + if (!sysaufs_brs) { + seq_puts(m, ",br:"); + au_show_brs(m, sb); + } + si_read_unlock(sb); + return 0; + +#undef AuBool +#undef AuStr +#undef AuUInt +} + +/* ---------------------------------------------------------------------- */ + +/* sum mode which returns the summation for statfs(2) */ + +static u64 au_add_till_max(u64 a, u64 b) +{ + u64 old; + + old = a; + a += b; + if (old < a) + return a; + return ULLONG_MAX; +} + +static int au_statfs_sum(struct super_block *sb, struct kstatfs *buf) +{ + int err; + u64 blocks, bfree, bavail, files, ffree; + aufs_bindex_t bend, bindex, i; + unsigned char shared; + struct path h_path; + struct super_block *h_sb; + + blocks = 0; + bfree = 0; + bavail = 0; + files = 0; + ffree = 0; + + err = 0; + bend = au_sbend(sb); + for (bindex = bend; bindex >= 0; bindex--) { + h_path.mnt = au_sbr_mnt(sb, bindex); + h_sb = h_path.mnt->mnt_sb; + shared = 0; + for (i = bindex + 1; !shared && i <= bend; i++) + shared = (au_sbr_sb(sb, i) == h_sb); + if (shared) + continue; + + /* sb->s_root for NFS is unreliable */ + h_path.dentry = h_path.mnt->mnt_root; + err = vfs_statfs(&h_path, buf); + if (unlikely(err)) + goto out; + + blocks = au_add_till_max(blocks, buf->f_blocks); + bfree = au_add_till_max(bfree, buf->f_bfree); + bavail = au_add_till_max(bavail, buf->f_bavail); + files = au_add_till_max(files, buf->f_files); + ffree = au_add_till_max(ffree, buf->f_ffree); + } + + buf->f_blocks = blocks; + buf->f_bfree = bfree; + buf->f_bavail = bavail; + buf->f_files = files; + buf->f_ffree = ffree; + +out: + return err; +} + +static int aufs_statfs(struct dentry *dentry, struct kstatfs *buf) +{ + int err; + struct path h_path; + struct super_block *sb; + + /* lock free root dinfo */ + sb = dentry->d_sb; + si_noflush_read_lock(sb); + if (!au_opt_test(au_mntflags(sb), SUM)) { + /* sb->s_root for NFS is unreliable */ + h_path.mnt = au_sbr_mnt(sb, 0); + h_path.dentry = h_path.mnt->mnt_root; + err = vfs_statfs(&h_path, buf); + } else + err = au_statfs_sum(sb, buf); + si_read_unlock(sb); + + if (!err) { + buf->f_type = AUFS_SUPER_MAGIC; + buf->f_namelen = AUFS_MAX_NAMELEN; + memset(&buf->f_fsid, 0, sizeof(buf->f_fsid)); + } + /* buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1; */ + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* final actions when unmounting a file system */ +static void aufs_put_super(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + + sbinfo = au_sbi(sb); + if (!sbinfo) + return; + + dbgaufs_si_fin(sbinfo); + kobject_put(&sbinfo->si_kobj); +} + +/* ---------------------------------------------------------------------- */ + +void au_array_free(void *array) +{ + if (array) { + if (!is_vmalloc_addr(array)) + kfree(array); + else + vfree(array); + } +} + +void *au_array_alloc(unsigned long long *hint, au_arraycb_t cb, void *arg) +{ + void *array; + unsigned long long n; + + array = NULL; + n = 0; + if (!*hint) + goto out; + + if (*hint > ULLONG_MAX / sizeof(array)) { + array = ERR_PTR(-EMFILE); + pr_err("hint %llu\n", *hint); + goto out; + } + + array = kmalloc(sizeof(array) * *hint, GFP_NOFS); + if (unlikely(!array)) + array = vmalloc(sizeof(array) * *hint); + if (unlikely(!array)) { + array = ERR_PTR(-ENOMEM); + goto out; + } + + n = cb(array, *hint, arg); + AuDebugOn(n > *hint); + +out: + *hint = n; + return array; +} + +static unsigned long long au_iarray_cb(void *a, + unsigned long long max __maybe_unused, + void *arg) +{ + unsigned long long n; + struct inode **p, *inode; + struct list_head *head; + + n = 0; + p = a; + head = arg; + spin_lock(&inode_sb_list_lock); + list_for_each_entry(inode, head, i_sb_list) { + if (!is_bad_inode(inode) + && au_ii(inode)->ii_bstart >= 0) { + spin_lock(&inode->i_lock); + if (atomic_read(&inode->i_count)) { + au_igrab(inode); + *p++ = inode; + n++; + AuDebugOn(n > max); + } + spin_unlock(&inode->i_lock); + } + } + spin_unlock(&inode_sb_list_lock); + + return n; +} + +struct inode **au_iarray_alloc(struct super_block *sb, unsigned long long *max) +{ + *max = atomic_long_read(&au_sbi(sb)->si_ninodes); + return au_array_alloc(max, au_iarray_cb, &sb->s_inodes); +} + +void au_iarray_free(struct inode **a, unsigned long long max) +{ + unsigned long long ull; + + for (ull = 0; ull < max; ull++) + iput(a[ull]); + au_array_free(a); +} + +/* ---------------------------------------------------------------------- */ + +/* + * refresh dentry and inode at remount time. + */ +/* todo: consolidate with simple_reval_dpath() and au_reval_for_attr() */ +static int au_do_refresh(struct dentry *dentry, unsigned int dir_flags, + struct dentry *parent) +{ + int err; + + di_write_lock_child(dentry); + di_read_lock_parent(parent, AuLock_IR); + err = au_refresh_dentry(dentry, parent); + if (!err && dir_flags) + au_hn_reset(dentry->d_inode, dir_flags); + di_read_unlock(parent, AuLock_IR); + di_write_unlock(dentry); + + return err; +} + +static int au_do_refresh_d(struct dentry *dentry, unsigned int sigen, + struct au_sbinfo *sbinfo, + const unsigned int dir_flags) +{ + int err; + struct dentry *parent; + struct inode *inode; + + err = 0; + parent = dget_parent(dentry); + if (!au_digen_test(parent, sigen) && au_digen_test(dentry, sigen)) { + inode = dentry->d_inode; + if (inode) { + if (!S_ISDIR(inode->i_mode)) + err = au_do_refresh(dentry, /*dir_flags*/0, + parent); + else { + err = au_do_refresh(dentry, dir_flags, parent); + if (unlikely(err)) + au_fset_si(sbinfo, FAILED_REFRESH_DIR); + } + } else + err = au_do_refresh(dentry, /*dir_flags*/0, parent); + AuDbgDentry(dentry); + } + dput(parent); + + AuTraceErr(err); + return err; +} + +static int au_refresh_d(struct super_block *sb) +{ + int err, i, j, ndentry, e; + unsigned int sigen; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry **dentries, *d; + struct au_sbinfo *sbinfo; + struct dentry *root = sb->s_root; + const unsigned int dir_flags = au_hi_flags(root->d_inode, /*isdir*/1); + + err = au_dpages_init(&dpages, GFP_NOFS); + if (unlikely(err)) + goto out; + err = au_dcsub_pages(&dpages, root, NULL, NULL); + if (unlikely(err)) + goto out_dpages; + + sigen = au_sigen(sb); + sbinfo = au_sbi(sb); + for (i = 0; i < dpages.ndpage; i++) { + dpage = dpages.dpages + i; + dentries = dpage->dentries; + ndentry = dpage->ndentry; + for (j = 0; j < ndentry; j++) { + d = dentries[j]; + e = au_do_refresh_d(d, sigen, sbinfo, dir_flags); + if (unlikely(e && !err)) + err = e; + /* go on even err */ + } + } + +out_dpages: + au_dpages_free(&dpages); +out: + return err; +} + +static int au_refresh_i(struct super_block *sb) +{ + int err, e; + unsigned int sigen; + unsigned long long max, ull; + struct inode *inode, **array; + + array = au_iarray_alloc(sb, &max); + err = PTR_ERR(array); + if (IS_ERR(array)) + goto out; + + err = 0; + sigen = au_sigen(sb); + for (ull = 0; ull < max; ull++) { + inode = array[ull]; + if (au_iigen(inode) != sigen) { + ii_write_lock_child(inode); + e = au_refresh_hinode_self(inode); + ii_write_unlock(inode); + if (unlikely(e)) { + pr_err("error %d, i%lu\n", e, inode->i_ino); + if (!err) + err = e; + /* go on even if err */ + } + } + } + + au_iarray_free(array, max); + +out: + return err; +} + +static void au_remount_refresh(struct super_block *sb) +{ + int err, e; + unsigned int udba; + aufs_bindex_t bindex, bend; + struct dentry *root; + struct inode *inode; + struct au_branch *br; + + au_sigen_inc(sb); + au_fclr_si(au_sbi(sb), FAILED_REFRESH_DIR); + + root = sb->s_root; + DiMustNoWaiters(root); + inode = root->d_inode; + IiMustNoWaiters(inode); + + udba = au_opt_udba(sb); + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + err = au_hnotify_reset_br(udba, br, br->br_perm); + if (unlikely(err)) + AuIOErr("hnotify failed on br %d, %d, ignored\n", + bindex, err); + /* go on even if err */ + } + au_hn_reset(inode, au_hi_flags(inode, /*isdir*/1)); + + di_write_unlock(root); + err = au_refresh_d(sb); + e = au_refresh_i(sb); + if (unlikely(e && !err)) + err = e; + /* aufs_write_lock() calls ..._child() */ + di_write_lock_child(root); + + au_cpup_attr_all(inode, /*force*/1); + + if (unlikely(err)) + AuIOErr("refresh failed, ignored, %d\n", err); +} + +/* stop extra interpretation of errno in mount(8), and strange error messages */ +static int cvt_err(int err) +{ + AuTraceErr(err); + + switch (err) { + case -ENOENT: + case -ENOTDIR: + case -EEXIST: + case -EIO: + err = -EINVAL; + } + return err; +} + +static int aufs_remount_fs(struct super_block *sb, int *flags, char *data) +{ + int err, do_dx; + unsigned int mntflags; + struct au_opts opts; + struct dentry *root; + struct inode *inode; + struct au_sbinfo *sbinfo; + + err = 0; + root = sb->s_root; + if (!data || !*data) { + err = si_write_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (!err) { + di_write_lock_child(root); + err = au_opts_verify(sb, *flags, /*pending*/0); + aufs_write_unlock(root); + } + goto out; + } + + err = -ENOMEM; + memset(&opts, 0, sizeof(opts)); + opts.opt = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!opts.opt)) + goto out; + opts.max_opt = PAGE_SIZE / sizeof(*opts.opt); + opts.flags = AuOpts_REMOUNT; + opts.sb_flags = *flags; + + /* parse it before aufs lock */ + err = au_opts_parse(sb, data, &opts); + if (unlikely(err)) + goto out_opts; + + sbinfo = au_sbi(sb); + inode = root->d_inode; + mutex_lock(&inode->i_mutex); + err = si_write_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (unlikely(err)) + goto out_mtx; + di_write_lock_child(root); + + /* au_opts_remount() may return an error */ + err = au_opts_remount(sb, &opts); + au_opts_free(&opts); + + if (au_ftest_opts(opts.flags, REFRESH)) + au_remount_refresh(sb); + + if (au_ftest_opts(opts.flags, REFRESH_DYAOP)) { + mntflags = au_mntflags(sb); + do_dx = !!au_opt_test(mntflags, DIO); + au_dy_arefresh(do_dx); + } + + aufs_write_unlock(root); + +out_mtx: + mutex_unlock(&inode->i_mutex); +out_opts: + free_page((unsigned long)opts.opt); +out: + err = cvt_err(err); + AuTraceErr(err); + return err; +} + +static const struct super_operations aufs_sop = { + .alloc_inode = aufs_alloc_inode, + .destroy_inode = aufs_destroy_inode, + /* always deleting, no clearing */ + .drop_inode = generic_delete_inode, + .show_options = aufs_show_options, + .statfs = aufs_statfs, + .put_super = aufs_put_super, + .remount_fs = aufs_remount_fs +}; + +/* ---------------------------------------------------------------------- */ + +static int alloc_root(struct super_block *sb) +{ + int err; + struct inode *inode; + struct dentry *root; + + err = -ENOMEM; + inode = au_iget_locked(sb, AUFS_ROOT_INO); + err = PTR_ERR(inode); + if (IS_ERR(inode)) + goto out; + + inode->i_op = &aufs_dir_iop; + inode->i_fop = &aufs_dir_fop; + inode->i_mode = S_IFDIR; + set_nlink(inode, 2); + unlock_new_inode(inode); + + root = d_alloc_root(inode); + if (unlikely(!root)) + goto out_iput; + err = PTR_ERR(root); + if (IS_ERR(root)) + goto out_iput; + + err = au_di_init(root); + if (!err) { + sb->s_root = root; + return 0; /* success */ + } + dput(root); + goto out; /* do not iput */ + +out_iput: + iget_failed(inode); +out: + return err; + +} + +static int aufs_fill_super(struct super_block *sb, void *raw_data, + int silent __maybe_unused) +{ + int err; + struct au_opts opts; + struct dentry *root; + struct inode *inode; + char *arg = raw_data; + + if (unlikely(!arg || !*arg)) { + err = -EINVAL; + pr_err("no arg\n"); + goto out; + } + + err = -ENOMEM; + memset(&opts, 0, sizeof(opts)); + opts.opt = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!opts.opt)) + goto out; + opts.max_opt = PAGE_SIZE / sizeof(*opts.opt); + opts.sb_flags = sb->s_flags; + + err = au_si_alloc(sb); + if (unlikely(err)) + goto out_opts; + + /* all timestamps always follow the ones on the branch */ + sb->s_flags |= MS_NOATIME | MS_NODIRATIME; + sb->s_op = &aufs_sop; + sb->s_d_op = &aufs_dop; + sb->s_magic = AUFS_SUPER_MAGIC; + sb->s_maxbytes = 0; + au_export_init(sb); + + err = alloc_root(sb); + if (unlikely(err)) { + si_write_unlock(sb); + goto out_info; + } + root = sb->s_root; + inode = root->d_inode; + + /* + * actually we can parse options regardless aufs lock here. + * but at remount time, parsing must be done before aufs lock. + * so we follow the same rule. + */ + ii_write_lock_parent(inode); + aufs_write_unlock(root); + err = au_opts_parse(sb, arg, &opts); + if (unlikely(err)) + goto out_root; + + /* lock vfs_inode first, then aufs. */ + mutex_lock(&inode->i_mutex); + aufs_write_lock(root); + err = au_opts_mount(sb, &opts); + au_opts_free(&opts); + aufs_write_unlock(root); + mutex_unlock(&inode->i_mutex); + if (!err) + goto out_opts; /* success */ + +out_root: + dput(root); + sb->s_root = NULL; +out_info: + dbgaufs_si_fin(au_sbi(sb)); + kobject_put(&au_sbi(sb)->si_kobj); + sb->s_fs_info = NULL; +out_opts: + free_page((unsigned long)opts.opt); +out: + AuTraceErr(err); + err = cvt_err(err); + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static struct dentry *aufs_mount(struct file_system_type *fs_type, int flags, + const char *dev_name __maybe_unused, + void *raw_data) +{ + struct dentry *root; + struct super_block *sb; + + /* all timestamps always follow the ones on the branch */ + /* mnt->mnt_flags |= MNT_NOATIME | MNT_NODIRATIME; */ + root = mount_nodev(fs_type, flags, raw_data, aufs_fill_super); + if (IS_ERR(root)) + goto out; + + sb = root->d_sb; + si_write_lock(sb, !AuLock_FLUSH); + sysaufs_brs_add(sb, 0); + si_write_unlock(sb); + au_sbilist_add(sb); + +out: + return root; +} + +static void aufs_kill_sb(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + + sbinfo = au_sbi(sb); + if (sbinfo) { + au_sbilist_del(sb); + aufs_write_lock(sb->s_root); + if (sbinfo->si_wbr_create_ops->fin) + sbinfo->si_wbr_create_ops->fin(sb); + if (au_opt_test(sbinfo->si_mntflags, UDBA_HNOTIFY)) { + au_opt_set_udba(sbinfo->si_mntflags, UDBA_NONE); + au_remount_refresh(sb); + } + if (au_opt_test(sbinfo->si_mntflags, PLINK)) + au_plink_put(sb, /*verbose*/1); + au_xino_clr(sb); + sbinfo->si_sb = NULL; + aufs_write_unlock(sb->s_root); + au_nwt_flush(&sbinfo->si_nowait); + } + generic_shutdown_super(sb); +} + +struct file_system_type aufs_fs_type = { + .name = AUFS_FSTYPE, + .fs_flags = + FS_RENAME_DOES_D_MOVE /* a race between rename and others */ + | FS_REVAL_DOT, /* for NFS branch and udba */ + .mount = aufs_mount, + .kill_sb = aufs_kill_sb, + /* no need to __module_get() and module_put(). */ + .owner = THIS_MODULE, +}; --- linux-3.2.0.orig/ubuntu/aufs/file.h +++ linux-3.2.0/ubuntu/aufs/file.h @@ -0,0 +1,298 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * file operations + */ + +#ifndef __AUFS_FILE_H__ +#define __AUFS_FILE_H__ + +#ifdef __KERNEL__ + +#include +#include +#include +#include "rwsem.h" + +struct au_branch; +struct au_hfile { + struct file *hf_file; + struct au_branch *hf_br; +}; + +struct au_vdir; +struct au_fidir { + aufs_bindex_t fd_bbot; + aufs_bindex_t fd_nent; + struct au_vdir *fd_vdir_cache; + struct au_hfile fd_hfile[]; +}; + +static inline int au_fidir_sz(int nent) +{ + AuDebugOn(nent < 0); + return sizeof(struct au_fidir) + sizeof(struct au_hfile) * nent; +} + +struct au_finfo { + atomic_t fi_generation; + + struct au_rwsem fi_rwsem; + aufs_bindex_t fi_btop; + + /* do not union them */ + struct { /* for non-dir */ + struct au_hfile fi_htop; + atomic_t fi_mmapped; + }; + struct au_fidir *fi_hdir; /* for dir only */ +} ____cacheline_aligned_in_smp; + +/* ---------------------------------------------------------------------- */ + +/* file.c */ +extern const struct address_space_operations aufs_aop; +unsigned int au_file_roflags(unsigned int flags); +struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags, + struct file *file); +int au_do_open(struct file *file, int (*open)(struct file *file, int flags), + struct au_fidir *fidir); +int au_reopen_nondir(struct file *file); +struct au_pin; +int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin); +int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file), + int wlock); +int au_do_flush(struct file *file, fl_owner_t id, + int (*flush)(struct file *file, fl_owner_t id)); + +/* poll.c */ +#ifdef CONFIG_AUFS_POLL +unsigned int aufs_poll(struct file *file, poll_table *wait); +#endif + +#ifdef CONFIG_AUFS_BR_HFSPLUS +/* hfsplus.c */ +struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex); +void au_h_open_post(struct dentry *dentry, aufs_bindex_t bindex, + struct file *h_file); +#else +static inline +struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex) +{ + return NULL; +} + +AuStubVoid(au_h_open_post, struct dentry *dentry, aufs_bindex_t bindex, + struct file *h_file); +#endif + +/* f_op.c */ +extern const struct file_operations aufs_file_fop; +int au_do_open_nondir(struct file *file, int flags); +int aufs_release_nondir(struct inode *inode __maybe_unused, struct file *file); + +#ifdef CONFIG_AUFS_SP_IATTR +/* f_op_sp.c */ +int au_special_file(umode_t mode); +void au_init_special_fop(struct inode *inode, umode_t mode, dev_t rdev); +#else +AuStubInt0(au_special_file, umode_t mode) +static inline void au_init_special_fop(struct inode *inode, umode_t mode, + dev_t rdev) +{ + init_special_inode(inode, mode, rdev); +} +#endif + +/* finfo.c */ +void au_hfput(struct au_hfile *hf, struct file *file); +void au_set_h_fptr(struct file *file, aufs_bindex_t bindex, + struct file *h_file); + +void au_update_figen(struct file *file); +struct au_fidir *au_fidir_alloc(struct super_block *sb); +int au_fidir_realloc(struct au_finfo *finfo, int nbr); + +void au_fi_init_once(void *_fi); +void au_finfo_fin(struct file *file); +int au_finfo_init(struct file *file, struct au_fidir *fidir); + +/* ioctl.c */ +long aufs_ioctl_nondir(struct file *file, unsigned int cmd, unsigned long arg); +#ifdef CONFIG_COMPAT +long aufs_compat_ioctl_dir(struct file *file, unsigned int cmd, + unsigned long arg); +#endif + +/* ---------------------------------------------------------------------- */ + +static inline struct au_finfo *au_fi(struct file *file) +{ + return file->private_data; +} + +/* ---------------------------------------------------------------------- */ + +/* + * fi_read_lock, fi_write_lock, + * fi_read_unlock, fi_write_unlock, fi_downgrade_lock + */ +AuSimpleRwsemFuncs(fi, struct file *f, &au_fi(f)->fi_rwsem); + +#define FiMustNoWaiters(f) AuRwMustNoWaiters(&au_fi(f)->fi_rwsem) +#define FiMustAnyLock(f) AuRwMustAnyLock(&au_fi(f)->fi_rwsem) +#define FiMustWriteLock(f) AuRwMustWriteLock(&au_fi(f)->fi_rwsem) + +/* ---------------------------------------------------------------------- */ + +/* todo: hard/soft set? */ +static inline aufs_bindex_t au_fbstart(struct file *file) +{ + FiMustAnyLock(file); + return au_fi(file)->fi_btop; +} + +static inline aufs_bindex_t au_fbend_dir(struct file *file) +{ + FiMustAnyLock(file); + AuDebugOn(!au_fi(file)->fi_hdir); + return au_fi(file)->fi_hdir->fd_bbot; +} + +static inline struct au_vdir *au_fvdir_cache(struct file *file) +{ + FiMustAnyLock(file); + AuDebugOn(!au_fi(file)->fi_hdir); + return au_fi(file)->fi_hdir->fd_vdir_cache; +} + +static inline void au_set_fbstart(struct file *file, aufs_bindex_t bindex) +{ + FiMustWriteLock(file); + au_fi(file)->fi_btop = bindex; +} + +static inline void au_set_fbend_dir(struct file *file, aufs_bindex_t bindex) +{ + FiMustWriteLock(file); + AuDebugOn(!au_fi(file)->fi_hdir); + au_fi(file)->fi_hdir->fd_bbot = bindex; +} + +static inline void au_set_fvdir_cache(struct file *file, + struct au_vdir *vdir_cache) +{ + FiMustWriteLock(file); + AuDebugOn(!au_fi(file)->fi_hdir); + au_fi(file)->fi_hdir->fd_vdir_cache = vdir_cache; +} + +static inline struct file *au_hf_top(struct file *file) +{ + FiMustAnyLock(file); + AuDebugOn(au_fi(file)->fi_hdir); + return au_fi(file)->fi_htop.hf_file; +} + +static inline struct file *au_hf_dir(struct file *file, aufs_bindex_t bindex) +{ + FiMustAnyLock(file); + AuDebugOn(!au_fi(file)->fi_hdir); + return au_fi(file)->fi_hdir->fd_hfile[0 + bindex].hf_file; +} + +/* todo: memory barrier? */ +static inline unsigned int au_figen(struct file *f) +{ + return atomic_read(&au_fi(f)->fi_generation); +} + +static inline void au_set_mmapped(struct file *f) +{ + if (atomic_inc_return(&au_fi(f)->fi_mmapped)) + return; + pr_warning("fi_mmapped wrapped around\n"); + while (!atomic_inc_return(&au_fi(f)->fi_mmapped)) + ; +} + +static inline void au_unset_mmapped(struct file *f) +{ + atomic_dec(&au_fi(f)->fi_mmapped); +} + +static inline int au_test_mmapped(struct file *f) +{ + return atomic_read(&au_fi(f)->fi_mmapped); +} + +/* customize vma->vm_file */ + +static inline void au_do_vm_file_reset(struct vm_area_struct *vma, + struct file *file) +{ + struct file *f; + + f = vma->vm_file; + get_file(file); + vma->vm_file = file; + fput(f); +} + +#ifdef CONFIG_MMU +#define AuDbgVmRegion(file, vma) do {} while (0) + +static inline void au_vm_file_reset(struct vm_area_struct *vma, + struct file *file) +{ + au_do_vm_file_reset(vma, file); +} +#else +#define AuDbgVmRegion(file, vma) \ + AuDebugOn((vma)->vm_region && (vma)->vm_region->vm_file != (file)) + +static inline void au_vm_file_reset(struct vm_area_struct *vma, + struct file *file) +{ + struct file *f; + + au_do_vm_file_reset(vma, file); + f = vma->vm_region->vm_file; + get_file(file); + vma->vm_region->vm_file = file; + fput(f); +} +#endif /* CONFIG_MMU */ + +/* handle vma->vm_prfile */ +static inline void au_vm_prfile_set(struct vm_area_struct *vma, + struct file *file) +{ +#ifdef CONFIG_AUFS_PROC_MAP + get_file(file); + vma->vm_prfile = file; +#ifndef CONFIG_MMU + get_file(file); + vma->vm_region->vm_prfile = file; +#endif +#endif +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_FILE_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/aufs.h +++ linux-3.2.0/ubuntu/aufs/aufs.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * all header files + */ + +#ifndef __AUFS_H__ +#define __AUFS_H__ + +#ifdef __KERNEL__ + +#define AuStub(type, name, body, ...) \ + static inline type name(__VA_ARGS__) { body; } + +#define AuStubVoid(name, ...) \ + AuStub(void, name, , __VA_ARGS__) +#define AuStubInt0(name, ...) \ + AuStub(int, name, return 0, __VA_ARGS__) + +#include "debug.h" + +#include "branch.h" +#include "cpup.h" +#include "dcsub.h" +#include "dbgaufs.h" +#include "dentry.h" +#include "dir.h" +#include "dynop.h" +#include "file.h" +#include "fstype.h" +#include "inode.h" +#include "loop.h" +#include "module.h" +#include "opts.h" +#include "rwsem.h" +#include "spl.h" +#include "super.h" +#include "sysaufs.h" +#include "vfsub.h" +#include "whout.h" +#include "wkq.h" + +#endif /* __KERNEL__ */ +#endif /* __AUFS_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/i_op.c +++ linux-3.2.0/ubuntu/aufs/i_op.c @@ -0,0 +1,991 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode operations (except add/del/rename) + */ + +#include +#include +#include +#include +#include "aufs.h" + +static int h_permission(struct inode *h_inode, int mask, + struct vfsmount *h_mnt, int brperm) +{ + int err; + const unsigned char write_mask = !!(mask & (MAY_WRITE | MAY_APPEND)); + + err = -EACCES; + if ((write_mask && IS_IMMUTABLE(h_inode)) + || ((mask & MAY_EXEC) + && S_ISREG(h_inode->i_mode) + && ((h_mnt->mnt_flags & MNT_NOEXEC) + || !(h_inode->i_mode & S_IXUGO)))) + goto out; + + /* + * - skip the lower fs test in the case of write to ro branch. + * - nfs dir permission write check is optimized, but a policy for + * link/rename requires a real check. + */ + if ((write_mask && !au_br_writable(brperm)) + || (au_test_nfs(h_inode->i_sb) && S_ISDIR(h_inode->i_mode) + && write_mask && !(mask & MAY_READ)) + || !h_inode->i_op->permission) { + /* AuLabel(generic_permission); */ + err = generic_permission(h_inode, mask); + } else { + /* AuLabel(h_inode->permission); */ + err = h_inode->i_op->permission(h_inode, mask); + AuTraceErr(err); + } + + if (!err) + err = devcgroup_inode_permission(h_inode, mask); + if (!err) + err = security_inode_permission(h_inode, mask); + +#if 0 + if (!err) { + /* todo: do we need to call ima_path_check()? */ + struct path h_path = { + .dentry = + .mnt = h_mnt + }; + err = ima_path_check(&h_path, + mask & (MAY_READ | MAY_WRITE | MAY_EXEC), + IMA_COUNT_LEAVE); + } +#endif + +out: + return err; +} + +static int aufs_permission(struct inode *inode, int mask) +{ + int err; + aufs_bindex_t bindex, bend; + const unsigned char isdir = !!S_ISDIR(inode->i_mode), + write_mask = !!(mask & (MAY_WRITE | MAY_APPEND)); + struct inode *h_inode; + struct super_block *sb; + struct au_branch *br; + + /* todo: support rcu-walk? */ + if (mask & MAY_NOT_BLOCK) + return -ECHILD; + + sb = inode->i_sb; + si_read_lock(sb, AuLock_FLUSH); + ii_read_lock_child(inode); +#if 0 + err = au_iigen_test(inode, au_sigen(sb)); + if (unlikely(err)) + goto out; +#endif + + if (!isdir || write_mask) { + err = au_busy_or_stale(); + h_inode = au_h_iptr(inode, au_ibstart(inode)); + if (unlikely(!h_inode + || (h_inode->i_mode & S_IFMT) + != (inode->i_mode & S_IFMT))) + goto out; + + err = 0; + bindex = au_ibstart(inode); + br = au_sbr(sb, bindex); + err = h_permission(h_inode, mask, br->br_mnt, br->br_perm); + if (write_mask + && !err + && !special_file(h_inode->i_mode)) { + /* test whether the upper writable branch exists */ + err = -EROFS; + for (; bindex >= 0; bindex--) + if (!au_br_rdonly(au_sbr(sb, bindex))) { + err = 0; + break; + } + } + goto out; + } + + /* non-write to dir */ + err = 0; + bend = au_ibend(inode); + for (bindex = au_ibstart(inode); !err && bindex <= bend; bindex++) { + h_inode = au_h_iptr(inode, bindex); + if (h_inode) { + err = au_busy_or_stale(); + if (unlikely(!S_ISDIR(h_inode->i_mode))) + break; + + br = au_sbr(sb, bindex); + err = h_permission(h_inode, mask, br->br_mnt, + br->br_perm); + } + } + +out: + ii_read_unlock(inode); + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static struct dentry *aufs_lookup(struct inode *dir, struct dentry *dentry, + struct nameidata *nd) +{ + struct dentry *ret, *parent; + struct inode *inode; + struct super_block *sb; + int err, npositive, lc_idx; + + IMustLock(dir); + + sb = dir->i_sb; + err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + ret = ERR_PTR(err); + if (unlikely(err)) + goto out; + + ret = ERR_PTR(-ENAMETOOLONG); + if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN)) + goto out_si; + err = au_di_init(dentry); + ret = ERR_PTR(err); + if (unlikely(err)) + goto out_si; + + inode = NULL; + npositive = 0; /* suppress a warning */ + parent = dentry->d_parent; /* dir inode is locked */ + di_read_lock_parent(parent, AuLock_IR); + err = au_alive_dir(parent); + if (!err) + err = au_digen_test(parent, au_sigen(sb)); + if (!err) { + npositive = au_lkup_dentry(dentry, au_dbstart(parent), + /*type*/0, nd); + err = npositive; + } + di_read_unlock(parent, AuLock_IR); + ret = ERR_PTR(err); + if (unlikely(err < 0)) + goto out_unlock; + + if (npositive) { + inode = au_new_inode(dentry, /*must_new*/0); + ret = (void *)inode; + } + if (IS_ERR(inode)) { + inode = NULL; + goto out_unlock; + } + + ret = d_splice_alias(inode, dentry); + if (unlikely(IS_ERR(ret) && inode)) { + ii_write_unlock(inode); + lc_idx = AuLcNonDir_IIINFO; + if (S_ISLNK(inode->i_mode)) + lc_idx = AuLcSymlink_IIINFO; + else if (S_ISDIR(inode->i_mode)) + lc_idx = AuLcDir_IIINFO; + au_rw_class(&au_ii(inode)->ii_rwsem, au_lc_key + lc_idx); + iput(inode); + } + +out_unlock: + di_write_unlock(dentry); + if (unlikely(IS_ERR(ret) && inode)) { + lc_idx = AuLcNonDir_DIINFO; + if (S_ISLNK(inode->i_mode)) + lc_idx = AuLcSymlink_DIINFO; + else if (S_ISDIR(inode->i_mode)) + lc_idx = AuLcDir_DIINFO; + au_rw_class(&au_di(dentry)->di_rwsem, au_lc_key + lc_idx); + } +out_si: + si_read_unlock(sb); +out: + return ret; +} + +/* ---------------------------------------------------------------------- */ + +static int au_wr_dir_cpup(struct dentry *dentry, struct dentry *parent, + const unsigned char add_entry, aufs_bindex_t bcpup, + aufs_bindex_t bstart) +{ + int err; + struct dentry *h_parent; + struct inode *h_dir; + + if (add_entry) + IMustLock(parent->d_inode); + else + di_write_lock_parent(parent); + + err = 0; + if (!au_h_dptr(parent, bcpup)) { + if (bstart < bcpup) + err = au_cpdown_dirs(dentry, bcpup); + else + err = au_cpup_dirs(dentry, bcpup); + } + if (!err && add_entry) { + h_parent = au_h_dptr(parent, bcpup); + h_dir = h_parent->d_inode; + mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_PARENT); + err = au_lkup_neg(dentry, bcpup); + /* todo: no unlock here */ + mutex_unlock(&h_dir->i_mutex); + + AuDbg("bcpup %d\n", bcpup); + if (!err) { + if (!dentry->d_inode) + au_set_h_dptr(dentry, bstart, NULL); + au_update_dbrange(dentry, /*do_put_zero*/0); + } + } + + if (!add_entry) + di_write_unlock(parent); + if (!err) + err = bcpup; /* success */ + + AuTraceErr(err); + return err; +} + +/* + * decide the branch and the parent dir where we will create a new entry. + * returns new bindex or an error. + * copyup the parent dir if needed. + */ +int au_wr_dir(struct dentry *dentry, struct dentry *src_dentry, + struct au_wr_dir_args *args) +{ + int err; + aufs_bindex_t bcpup, bstart, src_bstart; + const unsigned char add_entry = !!au_ftest_wrdir(args->flags, + ADD_ENTRY); + struct super_block *sb; + struct dentry *parent; + struct au_sbinfo *sbinfo; + + sb = dentry->d_sb; + sbinfo = au_sbi(sb); + parent = dget_parent(dentry); + bstart = au_dbstart(dentry); + bcpup = bstart; + if (args->force_btgt < 0) { + if (src_dentry) { + src_bstart = au_dbstart(src_dentry); + if (src_bstart < bstart) + bcpup = src_bstart; + } else if (add_entry) { + err = AuWbrCreate(sbinfo, dentry, + au_ftest_wrdir(args->flags, ISDIR)); + bcpup = err; + } + + if (bcpup < 0 || au_test_ro(sb, bcpup, dentry->d_inode)) { + if (add_entry) + err = AuWbrCopyup(sbinfo, dentry); + else { + if (!IS_ROOT(dentry)) { + di_read_lock_parent(parent, !AuLock_IR); + err = AuWbrCopyup(sbinfo, dentry); + di_read_unlock(parent, !AuLock_IR); + } else + err = AuWbrCopyup(sbinfo, dentry); + } + bcpup = err; + if (unlikely(err < 0)) + goto out; + } + } else { + bcpup = args->force_btgt; + AuDebugOn(au_test_ro(sb, bcpup, dentry->d_inode)); + } + + AuDbg("bstart %d, bcpup %d\n", bstart, bcpup); + err = bcpup; + if (bcpup == bstart) + goto out; /* success */ + + /* copyup the new parent into the branch we process */ + err = au_wr_dir_cpup(dentry, parent, add_entry, bcpup, bstart); + if (err >= 0) { + if (!dentry->d_inode) { + au_set_h_dptr(dentry, bstart, NULL); + au_set_dbstart(dentry, bcpup); + au_set_dbend(dentry, bcpup); + } + AuDebugOn(add_entry && !au_h_dptr(dentry, bcpup)); + } + +out: + dput(parent); + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct dentry *au_pinned_h_parent(struct au_pin *pin) +{ + if (pin && pin->parent) + return au_h_dptr(pin->parent, pin->bindex); + return NULL; +} + +void au_unpin(struct au_pin *p) +{ + if (p->h_mnt && au_ftest_pin(p->flags, MNT_WRITE)) + mnt_drop_write(p->h_mnt); + if (!p->hdir) + return; + + au_hn_imtx_unlock(p->hdir); + if (!au_ftest_pin(p->flags, DI_LOCKED)) + di_read_unlock(p->parent, AuLock_IR); + iput(p->hdir->hi_inode); + dput(p->parent); + p->parent = NULL; + p->hdir = NULL; + p->h_mnt = NULL; +} + +int au_do_pin(struct au_pin *p) +{ + int err; + struct super_block *sb; + struct dentry *h_dentry, *h_parent; + struct au_branch *br; + struct inode *h_dir; + + err = 0; + sb = p->dentry->d_sb; + br = au_sbr(sb, p->bindex); + if (IS_ROOT(p->dentry)) { + if (au_ftest_pin(p->flags, MNT_WRITE)) { + p->h_mnt = br->br_mnt; + err = mnt_want_write(p->h_mnt); + if (unlikely(err)) { + au_fclr_pin(p->flags, MNT_WRITE); + goto out_err; + } + } + goto out; + } + + h_dentry = NULL; + if (p->bindex <= au_dbend(p->dentry)) + h_dentry = au_h_dptr(p->dentry, p->bindex); + + p->parent = dget_parent(p->dentry); + if (!au_ftest_pin(p->flags, DI_LOCKED)) + di_read_lock(p->parent, AuLock_IR, p->lsc_di); + + h_dir = NULL; + h_parent = au_h_dptr(p->parent, p->bindex); + p->hdir = au_hi(p->parent->d_inode, p->bindex); + if (p->hdir) + h_dir = p->hdir->hi_inode; + + /* + * udba case, or + * if DI_LOCKED is not set, then p->parent may be different + * and h_parent can be NULL. + */ + if (unlikely(!p->hdir || !h_dir || !h_parent)) { + err = -EBUSY; + if (!au_ftest_pin(p->flags, DI_LOCKED)) + di_read_unlock(p->parent, AuLock_IR); + dput(p->parent); + p->parent = NULL; + goto out_err; + } + + au_igrab(h_dir); + au_hn_imtx_lock_nested(p->hdir, p->lsc_hi); + + if (unlikely(p->hdir->hi_inode != h_parent->d_inode)) { + err = -EBUSY; + goto out_unpin; + } + if (h_dentry) { + err = au_h_verify(h_dentry, p->udba, h_dir, h_parent, br); + if (unlikely(err)) { + au_fclr_pin(p->flags, MNT_WRITE); + goto out_unpin; + } + } + + if (au_ftest_pin(p->flags, MNT_WRITE)) { + p->h_mnt = br->br_mnt; + err = mnt_want_write(p->h_mnt); + if (unlikely(err)) { + au_fclr_pin(p->flags, MNT_WRITE); + goto out_unpin; + } + } + goto out; /* success */ + +out_unpin: + au_unpin(p); +out_err: + pr_err("err %d\n", err); + err = au_busy_or_stale(); +out: + return err; +} + +void au_pin_init(struct au_pin *p, struct dentry *dentry, + aufs_bindex_t bindex, int lsc_di, int lsc_hi, + unsigned int udba, unsigned char flags) +{ + p->dentry = dentry; + p->udba = udba; + p->lsc_di = lsc_di; + p->lsc_hi = lsc_hi; + p->flags = flags; + p->bindex = bindex; + + p->parent = NULL; + p->hdir = NULL; + p->h_mnt = NULL; +} + +int au_pin(struct au_pin *pin, struct dentry *dentry, aufs_bindex_t bindex, + unsigned int udba, unsigned char flags) +{ + au_pin_init(pin, dentry, bindex, AuLsc_DI_PARENT, AuLsc_I_PARENT2, + udba, flags); + return au_do_pin(pin); +} + +/* ---------------------------------------------------------------------- */ + +/* + * ->setattr() and ->getattr() are called in various cases. + * chmod, stat: dentry is revalidated. + * fchmod, fstat: file and dentry are not revalidated, additionally they may be + * unhashed. + * for ->setattr(), ia->ia_file is passed from ftruncate only. + */ +/* todo: consolidate with do_refresh() and simple_reval_dpath() */ +static int au_reval_for_attr(struct dentry *dentry, unsigned int sigen) +{ + int err; + struct inode *inode; + struct dentry *parent; + + err = 0; + inode = dentry->d_inode; + if (au_digen_test(dentry, sigen)) { + parent = dget_parent(dentry); + di_read_lock_parent(parent, AuLock_IR); + err = au_refresh_dentry(dentry, parent); + di_read_unlock(parent, AuLock_IR); + dput(parent); + } + + AuTraceErr(err); + return err; +} + +#define AuIcpup_DID_CPUP 1 +#define au_ftest_icpup(flags, name) ((flags) & AuIcpup_##name) +#define au_fset_icpup(flags, name) \ + do { (flags) |= AuIcpup_##name; } while (0) +#define au_fclr_icpup(flags, name) \ + do { (flags) &= ~AuIcpup_##name; } while (0) + +struct au_icpup_args { + unsigned char flags; + unsigned char pin_flags; + aufs_bindex_t btgt; + unsigned int udba; + struct au_pin pin; + struct path h_path; + struct inode *h_inode; +}; + +static int au_pin_and_icpup(struct dentry *dentry, struct iattr *ia, + struct au_icpup_args *a) +{ + int err; + loff_t sz; + aufs_bindex_t bstart, ibstart; + struct dentry *hi_wh, *parent; + struct inode *inode; + struct file *h_file; + struct au_wr_dir_args wr_dir_args = { + .force_btgt = -1, + .flags = 0 + }; + + bstart = au_dbstart(dentry); + inode = dentry->d_inode; + if (S_ISDIR(inode->i_mode)) + au_fset_wrdir(wr_dir_args.flags, ISDIR); + /* plink or hi_wh() case */ + ibstart = au_ibstart(inode); + if (bstart != ibstart && !au_test_ro(inode->i_sb, ibstart, inode)) + wr_dir_args.force_btgt = ibstart; + err = au_wr_dir(dentry, /*src_dentry*/NULL, &wr_dir_args); + if (unlikely(err < 0)) + goto out; + a->btgt = err; + if (err != bstart) + au_fset_icpup(a->flags, DID_CPUP); + + err = 0; + a->pin_flags = AuPin_MNT_WRITE; + parent = NULL; + if (!IS_ROOT(dentry)) { + au_fset_pin(a->pin_flags, DI_LOCKED); + parent = dget_parent(dentry); + di_write_lock_parent(parent); + } + + err = au_pin(&a->pin, dentry, a->btgt, a->udba, a->pin_flags); + if (unlikely(err)) + goto out_parent; + + a->h_path.dentry = au_h_dptr(dentry, bstart); + a->h_inode = a->h_path.dentry->d_inode; + mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD); + sz = -1; + if ((ia->ia_valid & ATTR_SIZE) && ia->ia_size < i_size_read(a->h_inode)) + sz = ia->ia_size; + + h_file = NULL; + hi_wh = NULL; + if (au_ftest_icpup(a->flags, DID_CPUP) && d_unlinked(dentry)) { + hi_wh = au_hi_wh(inode, a->btgt); + if (!hi_wh) { + err = au_sio_cpup_wh(dentry, a->btgt, sz, /*file*/NULL); + if (unlikely(err)) + goto out_unlock; + hi_wh = au_hi_wh(inode, a->btgt); + /* todo: revalidate hi_wh? */ + } + } + + if (parent) { + au_pin_set_parent_lflag(&a->pin, /*lflag*/0); + di_downgrade_lock(parent, AuLock_IR); + dput(parent); + parent = NULL; + } + if (!au_ftest_icpup(a->flags, DID_CPUP)) + goto out; /* success */ + + if (!d_unhashed(dentry)) { + h_file = au_h_open_pre(dentry, bstart); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else + err = au_sio_cpup_simple(dentry, a->btgt, sz, + AuCpup_DTIME); + if (!err) + a->h_path.dentry = au_h_dptr(dentry, a->btgt); + } else if (!hi_wh) + a->h_path.dentry = au_h_dptr(dentry, a->btgt); + else + a->h_path.dentry = hi_wh; /* do not dget here */ + +out_unlock: + mutex_unlock(&a->h_inode->i_mutex); + au_h_open_post(dentry, bstart, h_file); + a->h_inode = a->h_path.dentry->d_inode; + if (!err) { + mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD); + goto out; /* success */ + } + + au_unpin(&a->pin); +out_parent: + if (parent) { + di_write_unlock(parent); + dput(parent); + } +out: + return err; +} + +static int aufs_setattr(struct dentry *dentry, struct iattr *ia) +{ + int err; + struct inode *inode; + struct super_block *sb; + struct file *file; + struct au_icpup_args *a; + + inode = dentry->d_inode; + IMustLock(inode); + + err = -ENOMEM; + a = kzalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + if (ia->ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID)) + ia->ia_valid &= ~ATTR_MODE; + + file = NULL; + sb = dentry->d_sb; + err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (unlikely(err)) + goto out_kfree; + + if (ia->ia_valid & ATTR_FILE) { + /* currently ftruncate(2) only */ + AuDebugOn(!S_ISREG(inode->i_mode)); + file = ia->ia_file; + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out_si; + ia->ia_file = au_hf_top(file); + a->udba = AuOpt_UDBA_NONE; + } else { + /* fchmod() doesn't pass ia_file */ + a->udba = au_opt_udba(sb); + di_write_lock_child(dentry); + /* no d_unlinked(), to set UDBA_NONE for root */ + if (d_unhashed(dentry)) + a->udba = AuOpt_UDBA_NONE; + if (a->udba != AuOpt_UDBA_NONE) { + AuDebugOn(IS_ROOT(dentry)); + err = au_reval_for_attr(dentry, au_sigen(sb)); + if (unlikely(err)) + goto out_dentry; + } + } + + err = au_pin_and_icpup(dentry, ia, a); + if (unlikely(err < 0)) + goto out_dentry; + if (au_ftest_icpup(a->flags, DID_CPUP)) { + ia->ia_file = NULL; + ia->ia_valid &= ~ATTR_FILE; + } + + a->h_path.mnt = au_sbr_mnt(sb, a->btgt); + if ((ia->ia_valid & (ATTR_MODE | ATTR_CTIME)) + == (ATTR_MODE | ATTR_CTIME)) { + err = security_path_chmod(&a->h_path, ia->ia_mode); + if (unlikely(err)) + goto out_unlock; + } else if ((ia->ia_valid & (ATTR_UID | ATTR_GID)) + && (ia->ia_valid & ATTR_CTIME)) { + err = security_path_chown(&a->h_path, ia->ia_uid, ia->ia_gid); + if (unlikely(err)) + goto out_unlock; + } + + if (ia->ia_valid & ATTR_SIZE) { + struct file *f; + + if (ia->ia_size < i_size_read(inode)) + /* unmap only */ + truncate_setsize(inode, ia->ia_size); + + f = NULL; + if (ia->ia_valid & ATTR_FILE) + f = ia->ia_file; + mutex_unlock(&a->h_inode->i_mutex); + err = vfsub_trunc(&a->h_path, ia->ia_size, ia->ia_valid, f); + mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD); + } else + err = vfsub_notify_change(&a->h_path, ia); + if (!err) + au_cpup_attr_changeable(inode); + +out_unlock: + mutex_unlock(&a->h_inode->i_mutex); + au_unpin(&a->pin); + if (unlikely(err)) + au_update_dbstart(dentry); +out_dentry: + di_write_unlock(dentry); + if (file) { + fi_write_unlock(file); + ia->ia_file = file; + ia->ia_valid |= ATTR_FILE; + } +out_si: + si_read_unlock(sb); +out_kfree: + kfree(a); +out: + AuTraceErr(err); + return err; +} + +static void au_refresh_iattr(struct inode *inode, struct kstat *st, + unsigned int nlink) +{ + unsigned int n; + + inode->i_mode = st->mode; + inode->i_uid = st->uid; + inode->i_gid = st->gid; + inode->i_atime = st->atime; + inode->i_mtime = st->mtime; + inode->i_ctime = st->ctime; + + au_cpup_attr_nlink(inode, /*force*/0); + if (S_ISDIR(inode->i_mode)) { + n = inode->i_nlink; + n -= nlink; + n += st->nlink; + set_nlink(inode, n); + } + + spin_lock(&inode->i_lock); + inode->i_blocks = st->blocks; + i_size_write(inode, st->size); + spin_unlock(&inode->i_lock); +} + +static int aufs_getattr(struct vfsmount *mnt __maybe_unused, + struct dentry *dentry, struct kstat *st) +{ + int err; + unsigned int mnt_flags; + aufs_bindex_t bindex; + unsigned char udba_none, positive; + struct super_block *sb, *h_sb; + struct inode *inode; + struct vfsmount *h_mnt; + struct dentry *h_dentry; + + sb = dentry->d_sb; + inode = dentry->d_inode; + err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (unlikely(err)) + goto out; + mnt_flags = au_mntflags(sb); + udba_none = !!au_opt_test(mnt_flags, UDBA_NONE); + + /* support fstat(2) */ + if (!d_unlinked(dentry) && !udba_none) { + unsigned int sigen = au_sigen(sb); + err = au_digen_test(dentry, sigen); + if (!err) { + di_read_lock_child(dentry, AuLock_IR); + err = au_dbrange_test(dentry); + if (unlikely(err)) + goto out_unlock; + } else { + AuDebugOn(IS_ROOT(dentry)); + di_write_lock_child(dentry); + err = au_dbrange_test(dentry); + if (!err) + err = au_reval_for_attr(dentry, sigen); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + } + } else + di_read_lock_child(dentry, AuLock_IR); + + bindex = au_ibstart(inode); + h_mnt = au_sbr_mnt(sb, bindex); + h_sb = h_mnt->mnt_sb; + if (!au_test_fs_bad_iattr(h_sb) && udba_none) + goto out_fill; /* success */ + + h_dentry = NULL; + if (au_dbstart(dentry) == bindex) + h_dentry = dget(au_h_dptr(dentry, bindex)); + else if (au_opt_test(mnt_flags, PLINK) && au_plink_test(inode)) { + h_dentry = au_plink_lkup(inode, bindex); + if (IS_ERR(h_dentry)) + goto out_fill; /* pretending success */ + } + /* illegally overlapped or something */ + if (unlikely(!h_dentry)) + goto out_fill; /* pretending success */ + + positive = !!h_dentry->d_inode; + if (positive) + err = vfs_getattr(h_mnt, h_dentry, st); + dput(h_dentry); + if (!err) { + if (positive) + au_refresh_iattr(inode, st, h_dentry->d_inode->i_nlink); + goto out_fill; /* success */ + } + AuTraceErr(err); + goto out_unlock; + +out_fill: + generic_fillattr(inode, st); +out_unlock: + di_read_unlock(dentry, AuLock_IR); + si_read_unlock(sb); +out: + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int h_readlink(struct dentry *dentry, int bindex, char __user *buf, + int bufsiz) +{ + int err; + struct super_block *sb; + struct dentry *h_dentry; + + err = -EINVAL; + h_dentry = au_h_dptr(dentry, bindex); + if (unlikely(!h_dentry->d_inode->i_op->readlink)) + goto out; + + err = security_inode_readlink(h_dentry); + if (unlikely(err)) + goto out; + + sb = dentry->d_sb; + if (!au_test_ro(sb, bindex, dentry->d_inode)) { + vfsub_touch_atime(au_sbr_mnt(sb, bindex), h_dentry); + fsstack_copy_attr_atime(dentry->d_inode, h_dentry->d_inode); + } + err = h_dentry->d_inode->i_op->readlink(h_dentry, buf, bufsiz); + +out: + return err; +} + +static int aufs_readlink(struct dentry *dentry, char __user *buf, int bufsiz) +{ + int err; + + err = aufs_read_lock(dentry, AuLock_IR | AuLock_GEN); + if (unlikely(err)) + goto out; + err = au_d_hashed_positive(dentry); + if (!err) + err = h_readlink(dentry, au_dbstart(dentry), buf, bufsiz); + aufs_read_unlock(dentry, AuLock_IR); + +out: + return err; +} + +static void *aufs_follow_link(struct dentry *dentry, struct nameidata *nd) +{ + int err; + mm_segment_t old_fs; + union { + char *k; + char __user *u; + } buf; + + err = -ENOMEM; + buf.k = __getname_gfp(GFP_NOFS); + if (unlikely(!buf.k)) + goto out; + + err = aufs_read_lock(dentry, AuLock_IR | AuLock_GEN); + if (unlikely(err)) + goto out_name; + + err = au_d_hashed_positive(dentry); + if (!err) { + old_fs = get_fs(); + set_fs(KERNEL_DS); + err = h_readlink(dentry, au_dbstart(dentry), buf.u, PATH_MAX); + set_fs(old_fs); + } + aufs_read_unlock(dentry, AuLock_IR); + + if (err >= 0) { + buf.k[err] = 0; + /* will be freed by put_link */ + nd_set_link(nd, buf.k); + return NULL; /* success */ + } + +out_name: + __putname(buf.k); +out: + path_put(&nd->path); + AuTraceErr(err); + return ERR_PTR(err); +} + +static void aufs_put_link(struct dentry *dentry __maybe_unused, + struct nameidata *nd, void *cookie __maybe_unused) +{ + __putname(nd_get_link(nd)); +} + +/* ---------------------------------------------------------------------- */ + +static void aufs_truncate_range(struct inode *inode __maybe_unused, + loff_t start __maybe_unused, + loff_t end __maybe_unused) +{ + AuUnsupport(); +} + +/* ---------------------------------------------------------------------- */ + +struct inode_operations aufs_symlink_iop = { + .permission = aufs_permission, + .setattr = aufs_setattr, + .getattr = aufs_getattr, + .readlink = aufs_readlink, + .follow_link = aufs_follow_link, + .put_link = aufs_put_link +}; + +struct inode_operations aufs_dir_iop = { + .create = aufs_create, + .lookup = aufs_lookup, + .link = aufs_link, + .unlink = aufs_unlink, + .symlink = aufs_symlink, + .mkdir = aufs_mkdir, + .rmdir = aufs_rmdir, + .mknod = aufs_mknod, + .rename = aufs_rename, + + .permission = aufs_permission, + .setattr = aufs_setattr, + .getattr = aufs_getattr +}; + +struct inode_operations aufs_iop = { + .permission = aufs_permission, + .setattr = aufs_setattr, + .getattr = aufs_getattr, + .truncate_range = aufs_truncate_range +}; --- linux-3.2.0.orig/ubuntu/aufs/inode.h +++ linux-3.2.0/ubuntu/aufs/inode.h @@ -0,0 +1,554 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode operations + */ + +#ifndef __AUFS_INODE_H__ +#define __AUFS_INODE_H__ + +#ifdef __KERNEL__ + +#include +#include "rwsem.h" + +struct vfsmount; + +struct au_hnotify { +#ifdef CONFIG_AUFS_HNOTIFY +#ifdef CONFIG_AUFS_HFSNOTIFY + /* never use fsnotify_add_vfsmount_mark() */ + struct fsnotify_mark hn_mark; + int hn_mark_dead; +#endif + struct inode *hn_aufs_inode; /* no get/put */ +#endif +} ____cacheline_aligned_in_smp; + +struct au_hinode { + struct inode *hi_inode; + aufs_bindex_t hi_id; +#ifdef CONFIG_AUFS_HNOTIFY + struct au_hnotify *hi_notify; +#endif + + /* reference to the copied-up whiteout with get/put */ + struct dentry *hi_whdentry; +}; + +struct au_vdir; +struct au_iinfo { + atomic_t ii_generation; + struct super_block *ii_hsb1; /* no get/put */ + + struct au_rwsem ii_rwsem; + aufs_bindex_t ii_bstart, ii_bend; + __u32 ii_higen; + struct au_hinode *ii_hinode; + struct au_vdir *ii_vdir; +}; + +struct au_icntnr { + struct au_iinfo iinfo; + struct inode vfs_inode; +} ____cacheline_aligned_in_smp; + +/* au_pin flags */ +#define AuPin_DI_LOCKED 1 +#define AuPin_MNT_WRITE (1 << 1) +#define au_ftest_pin(flags, name) ((flags) & AuPin_##name) +#define au_fset_pin(flags, name) \ + do { (flags) |= AuPin_##name; } while (0) +#define au_fclr_pin(flags, name) \ + do { (flags) &= ~AuPin_##name; } while (0) + +struct au_pin { + /* input */ + struct dentry *dentry; + unsigned int udba; + unsigned char lsc_di, lsc_hi, flags; + aufs_bindex_t bindex; + + /* output */ + struct dentry *parent; + struct au_hinode *hdir; + struct vfsmount *h_mnt; +}; + +/* ---------------------------------------------------------------------- */ + +static inline struct au_iinfo *au_ii(struct inode *inode) +{ + struct au_iinfo *iinfo; + + iinfo = &(container_of(inode, struct au_icntnr, vfs_inode)->iinfo); + if (iinfo->ii_hinode) + return iinfo; + return NULL; /* debugging bad_inode case */ +} + +/* ---------------------------------------------------------------------- */ + +/* inode.c */ +struct inode *au_igrab(struct inode *inode); +int au_refresh_hinode_self(struct inode *inode); +int au_refresh_hinode(struct inode *inode, struct dentry *dentry); +int au_ino(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + unsigned int d_type, ino_t *ino); +struct inode *au_new_inode(struct dentry *dentry, int must_new); +int au_test_ro(struct super_block *sb, aufs_bindex_t bindex, + struct inode *inode); +int au_test_h_perm(struct inode *h_inode, int mask); +int au_test_h_perm_sio(struct inode *h_inode, int mask); + +static inline int au_wh_ino(struct super_block *sb, aufs_bindex_t bindex, + ino_t h_ino, unsigned int d_type, ino_t *ino) +{ +#ifdef CONFIG_AUFS_SHWH + return au_ino(sb, bindex, h_ino, d_type, ino); +#else + return 0; +#endif +} + +/* i_op.c */ +extern struct inode_operations aufs_iop, aufs_symlink_iop, aufs_dir_iop; + +/* au_wr_dir flags */ +#define AuWrDir_ADD_ENTRY 1 +#define AuWrDir_ISDIR (1 << 1) +#define au_ftest_wrdir(flags, name) ((flags) & AuWrDir_##name) +#define au_fset_wrdir(flags, name) \ + do { (flags) |= AuWrDir_##name; } while (0) +#define au_fclr_wrdir(flags, name) \ + do { (flags) &= ~AuWrDir_##name; } while (0) + +struct au_wr_dir_args { + aufs_bindex_t force_btgt; + unsigned char flags; +}; +int au_wr_dir(struct dentry *dentry, struct dentry *src_dentry, + struct au_wr_dir_args *args); + +struct dentry *au_pinned_h_parent(struct au_pin *pin); +void au_pin_init(struct au_pin *pin, struct dentry *dentry, + aufs_bindex_t bindex, int lsc_di, int lsc_hi, + unsigned int udba, unsigned char flags); +int au_pin(struct au_pin *pin, struct dentry *dentry, aufs_bindex_t bindex, + unsigned int udba, unsigned char flags) __must_check; +int au_do_pin(struct au_pin *pin) __must_check; +void au_unpin(struct au_pin *pin); + +/* i_op_add.c */ +int au_may_add(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent, int isdir); +int aufs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev); +int aufs_symlink(struct inode *dir, struct dentry *dentry, const char *symname); +int aufs_create(struct inode *dir, struct dentry *dentry, int mode, + struct nameidata *nd); +int aufs_link(struct dentry *src_dentry, struct inode *dir, + struct dentry *dentry); +int aufs_mkdir(struct inode *dir, struct dentry *dentry, int mode); + +/* i_op_del.c */ +int au_wr_dir_need_wh(struct dentry *dentry, int isdir, aufs_bindex_t *bcpup); +int au_may_del(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent, int isdir); +int aufs_unlink(struct inode *dir, struct dentry *dentry); +int aufs_rmdir(struct inode *dir, struct dentry *dentry); + +/* i_op_ren.c */ +int au_wbr(struct dentry *dentry, aufs_bindex_t btgt); +int aufs_rename(struct inode *src_dir, struct dentry *src_dentry, + struct inode *dir, struct dentry *dentry); + +/* iinfo.c */ +struct inode *au_h_iptr(struct inode *inode, aufs_bindex_t bindex); +void au_hiput(struct au_hinode *hinode); +void au_set_hi_wh(struct inode *inode, aufs_bindex_t bindex, + struct dentry *h_wh); +unsigned int au_hi_flags(struct inode *inode, int isdir); + +/* hinode flags */ +#define AuHi_XINO 1 +#define AuHi_HNOTIFY (1 << 1) +#define au_ftest_hi(flags, name) ((flags) & AuHi_##name) +#define au_fset_hi(flags, name) \ + do { (flags) |= AuHi_##name; } while (0) +#define au_fclr_hi(flags, name) \ + do { (flags) &= ~AuHi_##name; } while (0) + +#ifndef CONFIG_AUFS_HNOTIFY +#undef AuHi_HNOTIFY +#define AuHi_HNOTIFY 0 +#endif + +void au_set_h_iptr(struct inode *inode, aufs_bindex_t bindex, + struct inode *h_inode, unsigned int flags); + +void au_update_iigen(struct inode *inode); +void au_update_ibrange(struct inode *inode, int do_put_zero); + +void au_icntnr_init_once(void *_c); +int au_iinfo_init(struct inode *inode); +void au_iinfo_fin(struct inode *inode); +int au_ii_realloc(struct au_iinfo *iinfo, int nbr); + +#ifdef CONFIG_PROC_FS +/* plink.c */ +int au_plink_maint(struct super_block *sb, int flags); +void au_plink_maint_leave(struct au_sbinfo *sbinfo); +int au_plink_maint_enter(struct super_block *sb); +#ifdef CONFIG_AUFS_DEBUG +void au_plink_list(struct super_block *sb); +#else +AuStubVoid(au_plink_list, struct super_block *sb) +#endif +int au_plink_test(struct inode *inode); +struct dentry *au_plink_lkup(struct inode *inode, aufs_bindex_t bindex); +void au_plink_append(struct inode *inode, aufs_bindex_t bindex, + struct dentry *h_dentry); +void au_plink_put(struct super_block *sb, int verbose); +void au_plink_clean(struct super_block *sb, int verbose); +void au_plink_half_refresh(struct super_block *sb, aufs_bindex_t br_id); +#else +AuStubInt0(au_plink_maint, struct super_block *sb, int flags); +AuStubVoid(au_plink_maint_leave, struct au_sbinfo *sbinfo); +AuStubInt0(au_plink_maint_enter, struct super_block *sb); +AuStubVoid(au_plink_list, struct super_block *sb); +AuStubInt0(au_plink_test, struct inode *inode); +AuStub(struct dentry *, au_plink_lkup, return NULL, + struct inode *inode, aufs_bindex_t bindex); +AuStubVoid(au_plink_append, struct inode *inode, aufs_bindex_t bindex, + struct dentry *h_dentry); +AuStubVoid(au_plink_put, struct super_block *sb, int verbose); +AuStubVoid(au_plink_clean, struct super_block *sb, int verbose); +AuStubVoid(au_plink_half_refresh, struct super_block *sb, aufs_bindex_t br_id); +#endif /* CONFIG_PROC_FS */ + +/* ---------------------------------------------------------------------- */ + +/* lock subclass for iinfo */ +enum { + AuLsc_II_CHILD, /* child first */ + AuLsc_II_CHILD2, /* rename(2), link(2), and cpup at hnotify */ + AuLsc_II_CHILD3, /* copyup dirs */ + AuLsc_II_PARENT, /* see AuLsc_I_PARENT in vfsub.h */ + AuLsc_II_PARENT2, + AuLsc_II_PARENT3, /* copyup dirs */ + AuLsc_II_NEW_CHILD +}; + +/* + * ii_read_lock_child, ii_write_lock_child, + * ii_read_lock_child2, ii_write_lock_child2, + * ii_read_lock_child3, ii_write_lock_child3, + * ii_read_lock_parent, ii_write_lock_parent, + * ii_read_lock_parent2, ii_write_lock_parent2, + * ii_read_lock_parent3, ii_write_lock_parent3, + * ii_read_lock_new_child, ii_write_lock_new_child, + */ +#define AuReadLockFunc(name, lsc) \ +static inline void ii_read_lock_##name(struct inode *i) \ +{ \ + au_rw_read_lock_nested(&au_ii(i)->ii_rwsem, AuLsc_II_##lsc); \ +} + +#define AuWriteLockFunc(name, lsc) \ +static inline void ii_write_lock_##name(struct inode *i) \ +{ \ + au_rw_write_lock_nested(&au_ii(i)->ii_rwsem, AuLsc_II_##lsc); \ +} + +#define AuRWLockFuncs(name, lsc) \ + AuReadLockFunc(name, lsc) \ + AuWriteLockFunc(name, lsc) + +AuRWLockFuncs(child, CHILD); +AuRWLockFuncs(child2, CHILD2); +AuRWLockFuncs(child3, CHILD3); +AuRWLockFuncs(parent, PARENT); +AuRWLockFuncs(parent2, PARENT2); +AuRWLockFuncs(parent3, PARENT3); +AuRWLockFuncs(new_child, NEW_CHILD); + +#undef AuReadLockFunc +#undef AuWriteLockFunc +#undef AuRWLockFuncs + +/* + * ii_read_unlock, ii_write_unlock, ii_downgrade_lock + */ +AuSimpleUnlockRwsemFuncs(ii, struct inode *i, &au_ii(i)->ii_rwsem); + +#define IiMustNoWaiters(i) AuRwMustNoWaiters(&au_ii(i)->ii_rwsem) +#define IiMustAnyLock(i) AuRwMustAnyLock(&au_ii(i)->ii_rwsem) +#define IiMustWriteLock(i) AuRwMustWriteLock(&au_ii(i)->ii_rwsem) + +/* ---------------------------------------------------------------------- */ + +static inline void au_icntnr_init(struct au_icntnr *c) +{ +#ifdef CONFIG_AUFS_DEBUG + c->vfs_inode.i_mode = 0; +#endif +} + +static inline unsigned int au_iigen(struct inode *inode) +{ + return atomic_read(&au_ii(inode)->ii_generation); +} + +/* tiny test for inode number */ +/* tmpfs generation is too rough */ +static inline int au_test_higen(struct inode *inode, struct inode *h_inode) +{ + struct au_iinfo *iinfo; + + iinfo = au_ii(inode); + AuRwMustAnyLock(&iinfo->ii_rwsem); + return !(iinfo->ii_hsb1 == h_inode->i_sb + && iinfo->ii_higen == h_inode->i_generation); +} + +static inline void au_iigen_dec(struct inode *inode) +{ + atomic_dec(&au_ii(inode)->ii_generation); +} + +static inline int au_iigen_test(struct inode *inode, unsigned int sigen) +{ + int err; + + err = 0; + if (unlikely(inode && au_iigen(inode) != sigen)) + err = -EIO; + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static inline aufs_bindex_t au_ii_br_id(struct inode *inode, + aufs_bindex_t bindex) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_hinode[0 + bindex].hi_id; +} + +static inline aufs_bindex_t au_ibstart(struct inode *inode) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_bstart; +} + +static inline aufs_bindex_t au_ibend(struct inode *inode) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_bend; +} + +static inline struct au_vdir *au_ivdir(struct inode *inode) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_vdir; +} + +static inline struct dentry *au_hi_wh(struct inode *inode, aufs_bindex_t bindex) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_hinode[0 + bindex].hi_whdentry; +} + +static inline void au_set_ibstart(struct inode *inode, aufs_bindex_t bindex) +{ + IiMustWriteLock(inode); + au_ii(inode)->ii_bstart = bindex; +} + +static inline void au_set_ibend(struct inode *inode, aufs_bindex_t bindex) +{ + IiMustWriteLock(inode); + au_ii(inode)->ii_bend = bindex; +} + +static inline void au_set_ivdir(struct inode *inode, struct au_vdir *vdir) +{ + IiMustWriteLock(inode); + au_ii(inode)->ii_vdir = vdir; +} + +static inline struct au_hinode *au_hi(struct inode *inode, aufs_bindex_t bindex) +{ + IiMustAnyLock(inode); + return au_ii(inode)->ii_hinode + bindex; +} + +/* ---------------------------------------------------------------------- */ + +static inline struct dentry *au_pinned_parent(struct au_pin *pin) +{ + if (pin) + return pin->parent; + return NULL; +} + +static inline struct inode *au_pinned_h_dir(struct au_pin *pin) +{ + if (pin && pin->hdir) + return pin->hdir->hi_inode; + return NULL; +} + +static inline struct au_hinode *au_pinned_hdir(struct au_pin *pin) +{ + if (pin) + return pin->hdir; + return NULL; +} + +static inline void au_pin_set_dentry(struct au_pin *pin, struct dentry *dentry) +{ + if (pin) + pin->dentry = dentry; +} + +static inline void au_pin_set_parent_lflag(struct au_pin *pin, + unsigned char lflag) +{ + if (pin) { + if (lflag) + au_fset_pin(pin->flags, DI_LOCKED); + else + au_fclr_pin(pin->flags, DI_LOCKED); + } +} + +static inline void au_pin_set_parent(struct au_pin *pin, struct dentry *parent) +{ + if (pin) { + dput(pin->parent); + pin->parent = dget(parent); + } +} + +/* ---------------------------------------------------------------------- */ + +struct au_branch; +#ifdef CONFIG_AUFS_HNOTIFY +struct au_hnotify_op { + void (*ctl)(struct au_hinode *hinode, int do_set); + int (*alloc)(struct au_hinode *hinode); + void (*free)(struct au_hinode *hinode); + + void (*fin)(void); + int (*init)(void); + + int (*reset_br)(unsigned int udba, struct au_branch *br, int perm); + void (*fin_br)(struct au_branch *br); + int (*init_br)(struct au_branch *br, int perm); +}; + +/* hnotify.c */ +int au_hn_alloc(struct au_hinode *hinode, struct inode *inode); +void au_hn_free(struct au_hinode *hinode); +void au_hn_ctl(struct au_hinode *hinode, int do_set); +void au_hn_reset(struct inode *inode, unsigned int flags); +int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask, + struct qstr *h_child_qstr, struct inode *h_child_inode); +int au_hnotify_reset_br(unsigned int udba, struct au_branch *br, int perm); +int au_hnotify_init_br(struct au_branch *br, int perm); +void au_hnotify_fin_br(struct au_branch *br); +int __init au_hnotify_init(void); +void au_hnotify_fin(void); + +/* hfsnotify.c */ +extern const struct au_hnotify_op au_hnotify_op; + +static inline +void au_hn_init(struct au_hinode *hinode) +{ + hinode->hi_notify = NULL; +} + +static inline struct au_hnotify *au_hn(struct au_hinode *hinode) +{ + return hinode->hi_notify; +} + +#else +static inline +int au_hn_alloc(struct au_hinode *hinode __maybe_unused, + struct inode *inode __maybe_unused) +{ + return -EOPNOTSUPP; +} + +static inline struct au_hnotify *au_hn(struct au_hinode *hinode) +{ + return NULL; +} + +AuStubVoid(au_hn_free, struct au_hinode *hinode __maybe_unused) +AuStubVoid(au_hn_ctl, struct au_hinode *hinode __maybe_unused, + int do_set __maybe_unused) +AuStubVoid(au_hn_reset, struct inode *inode __maybe_unused, + unsigned int flags __maybe_unused) +AuStubInt0(au_hnotify_reset_br, unsigned int udba __maybe_unused, + struct au_branch *br __maybe_unused, + int perm __maybe_unused) +AuStubInt0(au_hnotify_init_br, struct au_branch *br __maybe_unused, + int perm __maybe_unused) +AuStubVoid(au_hnotify_fin_br, struct au_branch *br __maybe_unused) +AuStubInt0(__init au_hnotify_init, void) +AuStubVoid(au_hnotify_fin, void) +AuStubVoid(au_hn_init, struct au_hinode *hinode __maybe_unused) +#endif /* CONFIG_AUFS_HNOTIFY */ + +static inline void au_hn_suspend(struct au_hinode *hdir) +{ + au_hn_ctl(hdir, /*do_set*/0); +} + +static inline void au_hn_resume(struct au_hinode *hdir) +{ + au_hn_ctl(hdir, /*do_set*/1); +} + +static inline void au_hn_imtx_lock(struct au_hinode *hdir) +{ + mutex_lock(&hdir->hi_inode->i_mutex); + au_hn_suspend(hdir); +} + +static inline void au_hn_imtx_lock_nested(struct au_hinode *hdir, + unsigned int sc __maybe_unused) +{ + mutex_lock_nested(&hdir->hi_inode->i_mutex, sc); + au_hn_suspend(hdir); +} + +static inline void au_hn_imtx_unlock(struct au_hinode *hdir) +{ + au_hn_resume(hdir); + mutex_unlock(&hdir->hi_inode->i_mutex); +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_INODE_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/dcsub.c +++ linux-3.2.0/ubuntu/aufs/dcsub.c @@ -0,0 +1,243 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sub-routines for dentry cache + */ + +#include "aufs.h" + +static void au_dpage_free(struct au_dpage *dpage) +{ + int i; + struct dentry **p; + + p = dpage->dentries; + for (i = 0; i < dpage->ndentry; i++) + dput(*p++); + free_page((unsigned long)dpage->dentries); +} + +int au_dpages_init(struct au_dcsub_pages *dpages, gfp_t gfp) +{ + int err; + void *p; + + err = -ENOMEM; + dpages->dpages = kmalloc(sizeof(*dpages->dpages), gfp); + if (unlikely(!dpages->dpages)) + goto out; + + p = (void *)__get_free_page(gfp); + if (unlikely(!p)) + goto out_dpages; + + dpages->dpages[0].ndentry = 0; + dpages->dpages[0].dentries = p; + dpages->ndpage = 1; + return 0; /* success */ + +out_dpages: + kfree(dpages->dpages); +out: + return err; +} + +void au_dpages_free(struct au_dcsub_pages *dpages) +{ + int i; + struct au_dpage *p; + + p = dpages->dpages; + for (i = 0; i < dpages->ndpage; i++) + au_dpage_free(p++); + kfree(dpages->dpages); +} + +static int au_dpages_append(struct au_dcsub_pages *dpages, + struct dentry *dentry, gfp_t gfp) +{ + int err, sz; + struct au_dpage *dpage; + void *p; + + dpage = dpages->dpages + dpages->ndpage - 1; + sz = PAGE_SIZE / sizeof(dentry); + if (unlikely(dpage->ndentry >= sz)) { + AuLabel(new dpage); + err = -ENOMEM; + sz = dpages->ndpage * sizeof(*dpages->dpages); + p = au_kzrealloc(dpages->dpages, sz, + sz + sizeof(*dpages->dpages), gfp); + if (unlikely(!p)) + goto out; + + dpages->dpages = p; + dpage = dpages->dpages + dpages->ndpage; + p = (void *)__get_free_page(gfp); + if (unlikely(!p)) + goto out; + + dpage->ndentry = 0; + dpage->dentries = p; + dpages->ndpage++; + } + + AuDebugOn(!dentry->d_count); + dpage->dentries[dpage->ndentry++] = dget_dlock(dentry); + return 0; /* success */ + +out: + return err; +} + +int au_dcsub_pages(struct au_dcsub_pages *dpages, struct dentry *root, + au_dpages_test test, void *arg) +{ + int err; + struct dentry *this_parent; + struct list_head *next; + struct super_block *sb = root->d_sb; + + err = 0; + write_seqlock(&rename_lock); + this_parent = root; + spin_lock(&this_parent->d_lock); +repeat: + next = this_parent->d_subdirs.next; +resume: + if (this_parent->d_sb == sb + && !IS_ROOT(this_parent) + && au_di(this_parent) + && this_parent->d_count + && (!test || test(this_parent, arg))) { + err = au_dpages_append(dpages, this_parent, GFP_ATOMIC); + if (unlikely(err)) + goto out; + } + + while (next != &this_parent->d_subdirs) { + struct list_head *tmp = next; + struct dentry *dentry = list_entry(tmp, struct dentry, + d_u.d_child); + + next = tmp->next; + spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED); + if (dentry->d_count) { + if (!list_empty(&dentry->d_subdirs)) { + spin_unlock(&this_parent->d_lock); + spin_release(&dentry->d_lock.dep_map, 1, + _RET_IP_); + this_parent = dentry; + spin_acquire(&this_parent->d_lock.dep_map, 0, 1, + _RET_IP_); + goto repeat; + } + if (dentry->d_sb == sb + && au_di(dentry) + && (!test || test(dentry, arg))) + err = au_dpages_append(dpages, dentry, + GFP_ATOMIC); + } + spin_unlock(&dentry->d_lock); + if (unlikely(err)) + goto out; + } + + if (this_parent != root) { + struct dentry *tmp; + struct dentry *child; + + tmp = this_parent->d_parent; + rcu_read_lock(); + spin_unlock(&this_parent->d_lock); + child = this_parent; + this_parent = tmp; + spin_lock(&this_parent->d_lock); + rcu_read_unlock(); + next = child->d_u.d_child.next; + goto resume; + } + +out: + spin_unlock(&this_parent->d_lock); + write_sequnlock(&rename_lock); + return err; +} + +int au_dcsub_pages_rev(struct au_dcsub_pages *dpages, struct dentry *dentry, + int do_include, au_dpages_test test, void *arg) +{ + int err; + + err = 0; + write_seqlock(&rename_lock); + spin_lock(&dentry->d_lock); + if (do_include + && dentry->d_count + && (!test || test(dentry, arg))) + err = au_dpages_append(dpages, dentry, GFP_ATOMIC); + spin_unlock(&dentry->d_lock); + if (unlikely(err)) + goto out; + + /* + * vfsmount_lock is unnecessary since this is a traverse in a single + * mount + */ + while (!IS_ROOT(dentry)) { + dentry = dentry->d_parent; /* rename_lock is locked */ + spin_lock(&dentry->d_lock); + if (dentry->d_count + && (!test || test(dentry, arg))) + err = au_dpages_append(dpages, dentry, GFP_ATOMIC); + spin_unlock(&dentry->d_lock); + if (unlikely(err)) + break; + } + +out: + write_sequnlock(&rename_lock); + return err; +} + +static inline int au_dcsub_dpages_aufs(struct dentry *dentry, void *arg) +{ + return au_di(dentry) && dentry->d_sb == arg; +} + +int au_dcsub_pages_rev_aufs(struct au_dcsub_pages *dpages, + struct dentry *dentry, int do_include) +{ + return au_dcsub_pages_rev(dpages, dentry, do_include, + au_dcsub_dpages_aufs, dentry->d_sb); +} + +int au_test_subdir(struct dentry *d1, struct dentry *d2) +{ + struct path path[2] = { + { + .dentry = d1 + }, + { + .dentry = d2 + } + }; + + return path_is_under(path + 0, path + 1); +} --- linux-3.2.0.orig/ubuntu/aufs/xino.c +++ linux-3.2.0/ubuntu/aufs/xino.c @@ -0,0 +1,1264 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * external inode number translation table and bitmap + */ + +#include +#include "aufs.h" + +/* todo: unnecessary to support mmap_sem since kernel-space? */ +ssize_t xino_fread(au_readf_t func, struct file *file, void *kbuf, size_t size, + loff_t *pos) +{ + ssize_t err; + mm_segment_t oldfs; + union { + void *k; + char __user *u; + } buf; + + buf.k = kbuf; + oldfs = get_fs(); + set_fs(KERNEL_DS); + do { + /* todo: signal_pending? */ + err = func(file, buf.u, size, pos); + } while (err == -EAGAIN || err == -EINTR); + set_fs(oldfs); + +#if 0 /* reserved for future use */ + if (err > 0) + fsnotify_access(file->f_dentry); +#endif + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static ssize_t do_xino_fwrite(au_writef_t func, struct file *file, void *kbuf, + size_t size, loff_t *pos) +{ + ssize_t err; + mm_segment_t oldfs; + union { + void *k; + const char __user *u; + } buf; + + buf.k = kbuf; + oldfs = get_fs(); + set_fs(KERNEL_DS); + do { + /* todo: signal_pending? */ + err = func(file, buf.u, size, pos); + } while (err == -EAGAIN || err == -EINTR); + set_fs(oldfs); + +#if 0 /* reserved for future use */ + if (err > 0) + fsnotify_modify(file->f_dentry); +#endif + + return err; +} + +struct do_xino_fwrite_args { + ssize_t *errp; + au_writef_t func; + struct file *file; + void *buf; + size_t size; + loff_t *pos; +}; + +static void call_do_xino_fwrite(void *args) +{ + struct do_xino_fwrite_args *a = args; + *a->errp = do_xino_fwrite(a->func, a->file, a->buf, a->size, a->pos); +} + +ssize_t xino_fwrite(au_writef_t func, struct file *file, void *buf, size_t size, + loff_t *pos) +{ + ssize_t err; + + /* todo: signal block and no wkq? */ + if (rlimit(RLIMIT_FSIZE) == RLIM_INFINITY) { + lockdep_off(); + err = do_xino_fwrite(func, file, buf, size, pos); + lockdep_on(); + } else { + /* + * it breaks RLIMIT_FSIZE and normal user's limit, + * users should care about quota and real 'filesystem full.' + */ + int wkq_err; + struct do_xino_fwrite_args args = { + .errp = &err, + .func = func, + .file = file, + .buf = buf, + .size = size, + .pos = pos + }; + + wkq_err = au_wkq_wait(call_do_xino_fwrite, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * create a new xinofile at the same place/path as @base_file. + */ +struct file *au_xino_create2(struct file *base_file, struct file *copy_src) +{ + struct file *file; + struct dentry *base, *parent; + struct inode *dir; + struct qstr *name; + struct path path; + int err; + + base = base_file->f_dentry; + parent = base->d_parent; /* dir inode is locked */ + dir = parent->d_inode; + IMustLock(dir); + + file = ERR_PTR(-EINVAL); + name = &base->d_name; + path.dentry = vfsub_lookup_one_len(name->name, parent, name->len); + if (IS_ERR(path.dentry)) { + file = (void *)path.dentry; + pr_err("%.*s lookup err %ld\n", + AuLNPair(name), PTR_ERR(path.dentry)); + goto out; + } + + /* no need to mnt_want_write() since we call dentry_open() later */ + err = vfs_create(dir, path.dentry, S_IRUGO | S_IWUGO, NULL); + if (unlikely(err)) { + file = ERR_PTR(err); + pr_err("%.*s create err %d\n", AuLNPair(name), err); + goto out_dput; + } + + path.mnt = base_file->f_vfsmnt; + file = vfsub_dentry_open(&path, + O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE + /* | __FMODE_NONOTIFY */); + if (IS_ERR(file)) { + pr_err("%.*s open err %ld\n", AuLNPair(name), PTR_ERR(file)); + goto out_dput; + } + + err = vfsub_unlink(dir, &file->f_path, /*force*/0); + if (unlikely(err)) { + pr_err("%.*s unlink err %d\n", AuLNPair(name), err); + goto out_fput; + } + + if (copy_src) { + /* no one can touch copy_src xino */ + err = au_copy_file(file, copy_src, + i_size_read(copy_src->f_dentry->d_inode)); + if (unlikely(err)) { + pr_err("%.*s copy err %d\n", AuLNPair(name), err); + goto out_fput; + } + } + goto out_dput; /* success */ + +out_fput: + fput(file); + file = ERR_PTR(err); +out_dput: + dput(path.dentry); +out: + return file; +} + +struct au_xino_lock_dir { + struct au_hinode *hdir; + struct dentry *parent; + struct mutex *mtx; +}; + +static void au_xino_lock_dir(struct super_block *sb, struct file *xino, + struct au_xino_lock_dir *ldir) +{ + aufs_bindex_t brid, bindex; + + ldir->hdir = NULL; + bindex = -1; + brid = au_xino_brid(sb); + if (brid >= 0) + bindex = au_br_index(sb, brid); + if (bindex >= 0) { + ldir->hdir = au_hi(sb->s_root->d_inode, bindex); + au_hn_imtx_lock_nested(ldir->hdir, AuLsc_I_PARENT); + } else { + ldir->parent = dget_parent(xino->f_dentry); + ldir->mtx = &ldir->parent->d_inode->i_mutex; + mutex_lock_nested(ldir->mtx, AuLsc_I_PARENT); + } +} + +static void au_xino_unlock_dir(struct au_xino_lock_dir *ldir) +{ + if (ldir->hdir) + au_hn_imtx_unlock(ldir->hdir); + else { + mutex_unlock(ldir->mtx); + dput(ldir->parent); + } +} + +/* ---------------------------------------------------------------------- */ + +/* trucate xino files asynchronously */ + +int au_xino_trunc(struct super_block *sb, aufs_bindex_t bindex) +{ + int err; + aufs_bindex_t bi, bend; + struct au_branch *br; + struct file *new_xino, *file; + struct super_block *h_sb; + struct au_xino_lock_dir ldir; + + err = -EINVAL; + bend = au_sbend(sb); + if (unlikely(bindex < 0 || bend < bindex)) + goto out; + br = au_sbr(sb, bindex); + file = br->br_xino.xi_file; + if (!file) + goto out; + + au_xino_lock_dir(sb, file, &ldir); + /* mnt_want_write() is unnecessary here */ + new_xino = au_xino_create2(file, file); + au_xino_unlock_dir(&ldir); + err = PTR_ERR(new_xino); + if (IS_ERR(new_xino)) + goto out; + err = 0; + fput(file); + br->br_xino.xi_file = new_xino; + + h_sb = br->br_mnt->mnt_sb; + for (bi = 0; bi <= bend; bi++) { + if (unlikely(bi == bindex)) + continue; + br = au_sbr(sb, bi); + if (br->br_mnt->mnt_sb != h_sb) + continue; + + fput(br->br_xino.xi_file); + br->br_xino.xi_file = new_xino; + get_file(new_xino); + } + +out: + return err; +} + +struct xino_do_trunc_args { + struct super_block *sb; + struct au_branch *br; +}; + +static void xino_do_trunc(void *_args) +{ + struct xino_do_trunc_args *args = _args; + struct super_block *sb; + struct au_branch *br; + struct inode *dir; + int err; + aufs_bindex_t bindex; + + err = 0; + sb = args->sb; + dir = sb->s_root->d_inode; + br = args->br; + + si_noflush_write_lock(sb); + ii_read_lock_parent(dir); + bindex = au_br_index(sb, br->br_id); + err = au_xino_trunc(sb, bindex); + if (!err + && br->br_xino.xi_file->f_dentry->d_inode->i_blocks + >= br->br_xino_upper) + br->br_xino_upper += AUFS_XINO_TRUNC_STEP; + + ii_read_unlock(dir); + if (unlikely(err)) + pr_warning("err b%d, (%d)\n", bindex, err); + atomic_dec(&br->br_xino_running); + atomic_dec(&br->br_count); + si_write_unlock(sb); + au_nwt_done(&au_sbi(sb)->si_nowait); + kfree(args); +} + +static void xino_try_trunc(struct super_block *sb, struct au_branch *br) +{ + struct xino_do_trunc_args *args; + int wkq_err; + + if (br->br_xino.xi_file->f_dentry->d_inode->i_blocks + < br->br_xino_upper) + return; + + if (atomic_inc_return(&br->br_xino_running) > 1) + goto out; + + /* lock and kfree() will be called in trunc_xino() */ + args = kmalloc(sizeof(*args), GFP_NOFS); + if (unlikely(!args)) { + AuErr1("no memory\n"); + goto out_args; + } + + atomic_inc(&br->br_count); + args->sb = sb; + args->br = br; + wkq_err = au_wkq_nowait(xino_do_trunc, args, sb, /*flags*/0); + if (!wkq_err) + return; /* success */ + + pr_err("wkq %d\n", wkq_err); + atomic_dec(&br->br_count); + +out_args: + kfree(args); +out: + atomic_dec(&br->br_xino_running); +} + +/* ---------------------------------------------------------------------- */ + +static int au_xino_do_write(au_writef_t write, struct file *file, + ino_t h_ino, ino_t ino) +{ + loff_t pos; + ssize_t sz; + + pos = h_ino; + if (unlikely(au_loff_max / sizeof(ino) - 1 < pos)) { + AuIOErr1("too large hi%lu\n", (unsigned long)h_ino); + return -EFBIG; + } + pos *= sizeof(ino); + sz = xino_fwrite(write, file, &ino, sizeof(ino), &pos); + if (sz == sizeof(ino)) + return 0; /* success */ + + AuIOErr("write failed (%zd)\n", sz); + return -EIO; +} + +/* + * write @ino to the xinofile for the specified branch{@sb, @bindex} + * at the position of @h_ino. + * even if @ino is zero, it is written to the xinofile and means no entry. + * if the size of the xino file on a specific filesystem exceeds the watermark, + * try truncating it. + */ +int au_xino_write(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + ino_t ino) +{ + int err; + unsigned int mnt_flags; + struct au_branch *br; + + BUILD_BUG_ON(sizeof(long long) != sizeof(au_loff_max) + || ((loff_t)-1) > 0); + SiMustAnyLock(sb); + + mnt_flags = au_mntflags(sb); + if (!au_opt_test(mnt_flags, XINO)) + return 0; + + br = au_sbr(sb, bindex); + err = au_xino_do_write(au_sbi(sb)->si_xwrite, br->br_xino.xi_file, + h_ino, ino); + if (!err) { + if (au_opt_test(mnt_flags, TRUNC_XINO) + && au_test_fs_trunc_xino(br->br_mnt->mnt_sb)) + xino_try_trunc(sb, br); + return 0; /* success */ + } + + AuIOErr("write failed (%d)\n", err); + return -EIO; +} + +/* ---------------------------------------------------------------------- */ + +/* aufs inode number bitmap */ + +static const int page_bits = (int)PAGE_SIZE * BITS_PER_BYTE; +static ino_t xib_calc_ino(unsigned long pindex, int bit) +{ + ino_t ino; + + AuDebugOn(bit < 0 || page_bits <= bit); + ino = AUFS_FIRST_INO + pindex * page_bits + bit; + return ino; +} + +static void xib_calc_bit(ino_t ino, unsigned long *pindex, int *bit) +{ + AuDebugOn(ino < AUFS_FIRST_INO); + ino -= AUFS_FIRST_INO; + *pindex = ino / page_bits; + *bit = ino % page_bits; +} + +static int xib_pindex(struct super_block *sb, unsigned long pindex) +{ + int err; + loff_t pos; + ssize_t sz; + struct au_sbinfo *sbinfo; + struct file *xib; + unsigned long *p; + + sbinfo = au_sbi(sb); + MtxMustLock(&sbinfo->si_xib_mtx); + AuDebugOn(pindex > ULONG_MAX / PAGE_SIZE + || !au_opt_test(sbinfo->si_mntflags, XINO)); + + if (pindex == sbinfo->si_xib_last_pindex) + return 0; + + xib = sbinfo->si_xib; + p = sbinfo->si_xib_buf; + pos = sbinfo->si_xib_last_pindex; + pos *= PAGE_SIZE; + sz = xino_fwrite(sbinfo->si_xwrite, xib, p, PAGE_SIZE, &pos); + if (unlikely(sz != PAGE_SIZE)) + goto out; + + pos = pindex; + pos *= PAGE_SIZE; + if (i_size_read(xib->f_dentry->d_inode) >= pos + PAGE_SIZE) + sz = xino_fread(sbinfo->si_xread, xib, p, PAGE_SIZE, &pos); + else { + memset(p, 0, PAGE_SIZE); + sz = xino_fwrite(sbinfo->si_xwrite, xib, p, PAGE_SIZE, &pos); + } + if (sz == PAGE_SIZE) { + sbinfo->si_xib_last_pindex = pindex; + return 0; /* success */ + } + +out: + AuIOErr1("write failed (%zd)\n", sz); + err = sz; + if (sz >= 0) + err = -EIO; + return err; +} + +/* ---------------------------------------------------------------------- */ + +static void au_xib_clear_bit(struct inode *inode) +{ + int err, bit; + unsigned long pindex; + struct super_block *sb; + struct au_sbinfo *sbinfo; + + AuDebugOn(inode->i_nlink); + + sb = inode->i_sb; + xib_calc_bit(inode->i_ino, &pindex, &bit); + AuDebugOn(page_bits <= bit); + sbinfo = au_sbi(sb); + mutex_lock(&sbinfo->si_xib_mtx); + err = xib_pindex(sb, pindex); + if (!err) { + clear_bit(bit, sbinfo->si_xib_buf); + sbinfo->si_xib_next_bit = bit; + } + mutex_unlock(&sbinfo->si_xib_mtx); +} + +/* for s_op->delete_inode() */ +void au_xino_delete_inode(struct inode *inode, const int unlinked) +{ + int err; + unsigned int mnt_flags; + aufs_bindex_t bindex, bend, bi; + unsigned char try_trunc; + struct au_iinfo *iinfo; + struct super_block *sb; + struct au_hinode *hi; + struct inode *h_inode; + struct au_branch *br; + au_writef_t xwrite; + + sb = inode->i_sb; + mnt_flags = au_mntflags(sb); + if (!au_opt_test(mnt_flags, XINO) + || inode->i_ino == AUFS_ROOT_INO) + return; + + if (unlinked) { + au_xigen_inc(inode); + au_xib_clear_bit(inode); + } + + iinfo = au_ii(inode); + if (!iinfo) + return; + + bindex = iinfo->ii_bstart; + if (bindex < 0) + return; + + xwrite = au_sbi(sb)->si_xwrite; + try_trunc = !!au_opt_test(mnt_flags, TRUNC_XINO); + hi = iinfo->ii_hinode + bindex; + bend = iinfo->ii_bend; + for (; bindex <= bend; bindex++, hi++) { + h_inode = hi->hi_inode; + if (!h_inode + || (!unlinked && h_inode->i_nlink)) + continue; + + /* inode may not be revalidated */ + bi = au_br_index(sb, hi->hi_id); + if (bi < 0) + continue; + + br = au_sbr(sb, bi); + err = au_xino_do_write(xwrite, br->br_xino.xi_file, + h_inode->i_ino, /*ino*/0); + if (!err && try_trunc + && au_test_fs_trunc_xino(br->br_mnt->mnt_sb)) + xino_try_trunc(sb, br); + } +} + +/* get an unused inode number from bitmap */ +ino_t au_xino_new_ino(struct super_block *sb) +{ + ino_t ino; + unsigned long *p, pindex, ul, pend; + struct au_sbinfo *sbinfo; + struct file *file; + int free_bit, err; + + if (!au_opt_test(au_mntflags(sb), XINO)) + return iunique(sb, AUFS_FIRST_INO); + + sbinfo = au_sbi(sb); + mutex_lock(&sbinfo->si_xib_mtx); + p = sbinfo->si_xib_buf; + free_bit = sbinfo->si_xib_next_bit; + if (free_bit < page_bits && !test_bit(free_bit, p)) + goto out; /* success */ + free_bit = find_first_zero_bit(p, page_bits); + if (free_bit < page_bits) + goto out; /* success */ + + pindex = sbinfo->si_xib_last_pindex; + for (ul = pindex - 1; ul < ULONG_MAX; ul--) { + err = xib_pindex(sb, ul); + if (unlikely(err)) + goto out_err; + free_bit = find_first_zero_bit(p, page_bits); + if (free_bit < page_bits) + goto out; /* success */ + } + + file = sbinfo->si_xib; + pend = i_size_read(file->f_dentry->d_inode) / PAGE_SIZE; + for (ul = pindex + 1; ul <= pend; ul++) { + err = xib_pindex(sb, ul); + if (unlikely(err)) + goto out_err; + free_bit = find_first_zero_bit(p, page_bits); + if (free_bit < page_bits) + goto out; /* success */ + } + BUG(); + +out: + set_bit(free_bit, p); + sbinfo->si_xib_next_bit = free_bit + 1; + pindex = sbinfo->si_xib_last_pindex; + mutex_unlock(&sbinfo->si_xib_mtx); + ino = xib_calc_ino(pindex, free_bit); + AuDbg("i%lu\n", (unsigned long)ino); + return ino; +out_err: + mutex_unlock(&sbinfo->si_xib_mtx); + AuDbg("i0\n"); + return 0; +} + +/* + * read @ino from xinofile for the specified branch{@sb, @bindex} + * at the position of @h_ino. + * if @ino does not exist and @do_new is true, get new one. + */ +int au_xino_read(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + ino_t *ino) +{ + int err; + ssize_t sz; + loff_t pos; + struct file *file; + struct au_sbinfo *sbinfo; + + *ino = 0; + if (!au_opt_test(au_mntflags(sb), XINO)) + return 0; /* no xino */ + + err = 0; + sbinfo = au_sbi(sb); + pos = h_ino; + if (unlikely(au_loff_max / sizeof(*ino) - 1 < pos)) { + AuIOErr1("too large hi%lu\n", (unsigned long)h_ino); + return -EFBIG; + } + pos *= sizeof(*ino); + + file = au_sbr(sb, bindex)->br_xino.xi_file; + if (i_size_read(file->f_dentry->d_inode) < pos + sizeof(*ino)) + return 0; /* no ino */ + + sz = xino_fread(sbinfo->si_xread, file, ino, sizeof(*ino), &pos); + if (sz == sizeof(*ino)) + return 0; /* success */ + + err = sz; + if (unlikely(sz >= 0)) { + err = -EIO; + AuIOErr("xino read error (%zd)\n", sz); + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* create and set a new xino file */ + +struct file *au_xino_create(struct super_block *sb, char *fname, int silent) +{ + struct file *file; + struct dentry *h_parent, *d; + struct inode *h_dir; + int err; + + /* + * at mount-time, and the xino file is the default path, + * hnotify is disabled so we have no notify events to ignore. + * when a user specified the xino, we cannot get au_hdir to be ignored. + */ + file = vfsub_filp_open(fname, O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE + /* | __FMODE_NONOTIFY */, + S_IRUGO | S_IWUGO); + if (IS_ERR(file)) { + if (!silent) + pr_err("open %s(%ld)\n", fname, PTR_ERR(file)); + return file; + } + + /* keep file count */ + h_parent = dget_parent(file->f_dentry); + h_dir = h_parent->d_inode; + mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_PARENT); + /* mnt_want_write() is unnecessary here */ + err = vfsub_unlink(h_dir, &file->f_path, /*force*/0); + mutex_unlock(&h_dir->i_mutex); + dput(h_parent); + if (unlikely(err)) { + if (!silent) + pr_err("unlink %s(%d)\n", fname, err); + goto out; + } + + err = -EINVAL; + d = file->f_dentry; + if (unlikely(sb == d->d_sb)) { + if (!silent) + pr_err("%s must be outside\n", fname); + goto out; + } + if (unlikely(au_test_fs_bad_xino(d->d_sb))) { + if (!silent) + pr_err("xino doesn't support %s(%s)\n", + fname, au_sbtype(d->d_sb)); + goto out; + } + return file; /* success */ + +out: + fput(file); + file = ERR_PTR(err); + return file; +} + +/* + * find another branch who is on the same filesystem of the specified + * branch{@btgt}. search until @bend. + */ +static int is_sb_shared(struct super_block *sb, aufs_bindex_t btgt, + aufs_bindex_t bend) +{ + aufs_bindex_t bindex; + struct super_block *tgt_sb = au_sbr_sb(sb, btgt); + + for (bindex = 0; bindex < btgt; bindex++) + if (unlikely(tgt_sb == au_sbr_sb(sb, bindex))) + return bindex; + for (bindex++; bindex <= bend; bindex++) + if (unlikely(tgt_sb == au_sbr_sb(sb, bindex))) + return bindex; + return -1; +} + +/* ---------------------------------------------------------------------- */ + +/* + * initialize the xinofile for the specified branch @br + * at the place/path where @base_file indicates. + * test whether another branch is on the same filesystem or not, + * if @do_test is true. + */ +int au_xino_br(struct super_block *sb, struct au_branch *br, ino_t h_ino, + struct file *base_file, int do_test) +{ + int err; + ino_t ino; + aufs_bindex_t bend, bindex; + struct au_branch *shared_br, *b; + struct file *file; + struct super_block *tgt_sb; + + shared_br = NULL; + bend = au_sbend(sb); + if (do_test) { + tgt_sb = br->br_mnt->mnt_sb; + for (bindex = 0; bindex <= bend; bindex++) { + b = au_sbr(sb, bindex); + if (tgt_sb == b->br_mnt->mnt_sb) { + shared_br = b; + break; + } + } + } + + if (!shared_br || !shared_br->br_xino.xi_file) { + struct au_xino_lock_dir ldir; + + au_xino_lock_dir(sb, base_file, &ldir); + /* mnt_want_write() is unnecessary here */ + file = au_xino_create2(base_file, NULL); + au_xino_unlock_dir(&ldir); + err = PTR_ERR(file); + if (IS_ERR(file)) + goto out; + br->br_xino.xi_file = file; + } else { + br->br_xino.xi_file = shared_br->br_xino.xi_file; + get_file(br->br_xino.xi_file); + } + + ino = AUFS_ROOT_INO; + err = au_xino_do_write(au_sbi(sb)->si_xwrite, br->br_xino.xi_file, + h_ino, ino); + if (unlikely(err)) { + fput(br->br_xino.xi_file); + br->br_xino.xi_file = NULL; + } + +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* trucate a xino bitmap file */ + +/* todo: slow */ +static int do_xib_restore(struct super_block *sb, struct file *file, void *page) +{ + int err, bit; + ssize_t sz; + unsigned long pindex; + loff_t pos, pend; + struct au_sbinfo *sbinfo; + au_readf_t func; + ino_t *ino; + unsigned long *p; + + err = 0; + sbinfo = au_sbi(sb); + MtxMustLock(&sbinfo->si_xib_mtx); + p = sbinfo->si_xib_buf; + func = sbinfo->si_xread; + pend = i_size_read(file->f_dentry->d_inode); + pos = 0; + while (pos < pend) { + sz = xino_fread(func, file, page, PAGE_SIZE, &pos); + err = sz; + if (unlikely(sz <= 0)) + goto out; + + err = 0; + for (ino = page; sz > 0; ino++, sz -= sizeof(ino)) { + if (unlikely(*ino < AUFS_FIRST_INO)) + continue; + + xib_calc_bit(*ino, &pindex, &bit); + AuDebugOn(page_bits <= bit); + err = xib_pindex(sb, pindex); + if (!err) + set_bit(bit, p); + else + goto out; + } + } + +out: + return err; +} + +static int xib_restore(struct super_block *sb) +{ + int err; + aufs_bindex_t bindex, bend; + void *page; + + err = -ENOMEM; + page = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!page)) + goto out; + + err = 0; + bend = au_sbend(sb); + for (bindex = 0; !err && bindex <= bend; bindex++) + if (!bindex || is_sb_shared(sb, bindex, bindex - 1) < 0) + err = do_xib_restore + (sb, au_sbr(sb, bindex)->br_xino.xi_file, page); + else + AuDbg("b%d\n", bindex); + free_page((unsigned long)page); + +out: + return err; +} + +int au_xib_trunc(struct super_block *sb) +{ + int err; + ssize_t sz; + loff_t pos; + struct au_xino_lock_dir ldir; + struct au_sbinfo *sbinfo; + unsigned long *p; + struct file *file; + + SiMustWriteLock(sb); + + err = 0; + sbinfo = au_sbi(sb); + if (!au_opt_test(sbinfo->si_mntflags, XINO)) + goto out; + + file = sbinfo->si_xib; + if (i_size_read(file->f_dentry->d_inode) <= PAGE_SIZE) + goto out; + + au_xino_lock_dir(sb, file, &ldir); + /* mnt_want_write() is unnecessary here */ + file = au_xino_create2(sbinfo->si_xib, NULL); + au_xino_unlock_dir(&ldir); + err = PTR_ERR(file); + if (IS_ERR(file)) + goto out; + fput(sbinfo->si_xib); + sbinfo->si_xib = file; + + p = sbinfo->si_xib_buf; + memset(p, 0, PAGE_SIZE); + pos = 0; + sz = xino_fwrite(sbinfo->si_xwrite, sbinfo->si_xib, p, PAGE_SIZE, &pos); + if (unlikely(sz != PAGE_SIZE)) { + err = sz; + AuIOErr("err %d\n", err); + if (sz >= 0) + err = -EIO; + goto out; + } + + mutex_lock(&sbinfo->si_xib_mtx); + /* mnt_want_write() is unnecessary here */ + err = xib_restore(sb); + mutex_unlock(&sbinfo->si_xib_mtx); + +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * xino mount option handlers + */ +static au_readf_t find_readf(struct file *h_file) +{ + const struct file_operations *fop = h_file->f_op; + + if (fop) { + if (fop->read) + return fop->read; + if (fop->aio_read) + return do_sync_read; + } + return ERR_PTR(-ENOSYS); +} + +static au_writef_t find_writef(struct file *h_file) +{ + const struct file_operations *fop = h_file->f_op; + + if (fop) { + if (fop->write) + return fop->write; + if (fop->aio_write) + return do_sync_write; + } + return ERR_PTR(-ENOSYS); +} + +/* xino bitmap */ +static void xino_clear_xib(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + sbinfo->si_xread = NULL; + sbinfo->si_xwrite = NULL; + if (sbinfo->si_xib) + fput(sbinfo->si_xib); + sbinfo->si_xib = NULL; + free_page((unsigned long)sbinfo->si_xib_buf); + sbinfo->si_xib_buf = NULL; +} + +static int au_xino_set_xib(struct super_block *sb, struct file *base) +{ + int err; + loff_t pos; + struct au_sbinfo *sbinfo; + struct file *file; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + file = au_xino_create2(base, sbinfo->si_xib); + err = PTR_ERR(file); + if (IS_ERR(file)) + goto out; + if (sbinfo->si_xib) + fput(sbinfo->si_xib); + sbinfo->si_xib = file; + sbinfo->si_xread = find_readf(file); + sbinfo->si_xwrite = find_writef(file); + + err = -ENOMEM; + if (!sbinfo->si_xib_buf) + sbinfo->si_xib_buf = (void *)get_zeroed_page(GFP_NOFS); + if (unlikely(!sbinfo->si_xib_buf)) + goto out_unset; + + sbinfo->si_xib_last_pindex = 0; + sbinfo->si_xib_next_bit = 0; + if (i_size_read(file->f_dentry->d_inode) < PAGE_SIZE) { + pos = 0; + err = xino_fwrite(sbinfo->si_xwrite, file, sbinfo->si_xib_buf, + PAGE_SIZE, &pos); + if (unlikely(err != PAGE_SIZE)) + goto out_free; + } + err = 0; + goto out; /* success */ + +out_free: + free_page((unsigned long)sbinfo->si_xib_buf); + sbinfo->si_xib_buf = NULL; + if (err >= 0) + err = -EIO; +out_unset: + fput(sbinfo->si_xib); + sbinfo->si_xib = NULL; + sbinfo->si_xread = NULL; + sbinfo->si_xwrite = NULL; +out: + return err; +} + +/* xino for each branch */ +static void xino_clear_br(struct super_block *sb) +{ + aufs_bindex_t bindex, bend; + struct au_branch *br; + + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + if (!br || !br->br_xino.xi_file) + continue; + + fput(br->br_xino.xi_file); + br->br_xino.xi_file = NULL; + } +} + +static int au_xino_set_br(struct super_block *sb, struct file *base) +{ + int err; + ino_t ino; + aufs_bindex_t bindex, bend, bshared; + struct { + struct file *old, *new; + } *fpair, *p; + struct au_branch *br; + struct inode *inode; + au_writef_t writef; + + SiMustWriteLock(sb); + + err = -ENOMEM; + bend = au_sbend(sb); + fpair = kcalloc(bend + 1, sizeof(*fpair), GFP_NOFS); + if (unlikely(!fpair)) + goto out; + + inode = sb->s_root->d_inode; + ino = AUFS_ROOT_INO; + writef = au_sbi(sb)->si_xwrite; + for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++) { + br = au_sbr(sb, bindex); + bshared = is_sb_shared(sb, bindex, bindex - 1); + if (bshared >= 0) { + /* shared xino */ + *p = fpair[bshared]; + get_file(p->new); + } + + if (!p->new) { + /* new xino */ + p->old = br->br_xino.xi_file; + p->new = au_xino_create2(base, br->br_xino.xi_file); + err = PTR_ERR(p->new); + if (IS_ERR(p->new)) { + p->new = NULL; + goto out_pair; + } + } + + err = au_xino_do_write(writef, p->new, + au_h_iptr(inode, bindex)->i_ino, ino); + if (unlikely(err)) + goto out_pair; + } + + for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++) { + br = au_sbr(sb, bindex); + if (br->br_xino.xi_file) + fput(br->br_xino.xi_file); + get_file(p->new); + br->br_xino.xi_file = p->new; + } + +out_pair: + for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++) + if (p->new) + fput(p->new); + else + break; + kfree(fpair); +out: + return err; +} + +void au_xino_clr(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + + au_xigen_clr(sb); + xino_clear_xib(sb); + xino_clear_br(sb); + sbinfo = au_sbi(sb); + /* lvalue, do not call au_mntflags() */ + au_opt_clr(sbinfo->si_mntflags, XINO); +} + +int au_xino_set(struct super_block *sb, struct au_opt_xino *xino, int remount) +{ + int err, skip; + struct dentry *parent, *cur_parent; + struct qstr *dname, *cur_name; + struct file *cur_xino; + struct inode *dir; + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + err = 0; + sbinfo = au_sbi(sb); + parent = dget_parent(xino->file->f_dentry); + if (remount) { + skip = 0; + dname = &xino->file->f_dentry->d_name; + cur_xino = sbinfo->si_xib; + if (cur_xino) { + cur_parent = dget_parent(cur_xino->f_dentry); + cur_name = &cur_xino->f_dentry->d_name; + skip = (cur_parent == parent + && dname->len == cur_name->len + && !memcmp(dname->name, cur_name->name, + dname->len)); + dput(cur_parent); + } + if (skip) + goto out; + } + + au_opt_set(sbinfo->si_mntflags, XINO); + dir = parent->d_inode; + mutex_lock_nested(&dir->i_mutex, AuLsc_I_PARENT); + /* mnt_want_write() is unnecessary here */ + err = au_xino_set_xib(sb, xino->file); + if (!err) + err = au_xigen_set(sb, xino->file); + if (!err) + err = au_xino_set_br(sb, xino->file); + mutex_unlock(&dir->i_mutex); + if (!err) + goto out; /* success */ + + /* reset all */ + AuIOErr("failed creating xino(%d).\n", err); + +out: + dput(parent); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * create a xinofile at the default place/path. + */ +struct file *au_xino_def(struct super_block *sb) +{ + struct file *file; + char *page, *p; + struct au_branch *br; + struct super_block *h_sb; + struct path path; + aufs_bindex_t bend, bindex, bwr; + + br = NULL; + bend = au_sbend(sb); + bwr = -1; + for (bindex = 0; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + if (au_br_writable(br->br_perm) + && !au_test_fs_bad_xino(br->br_mnt->mnt_sb)) { + bwr = bindex; + break; + } + } + + if (bwr >= 0) { + file = ERR_PTR(-ENOMEM); + page = __getname_gfp(GFP_NOFS); + if (unlikely(!page)) + goto out; + path.mnt = br->br_mnt; + path.dentry = au_h_dptr(sb->s_root, bwr); + p = d_path(&path, page, PATH_MAX - sizeof(AUFS_XINO_FNAME)); + file = (void *)p; + if (!IS_ERR(p)) { + strcat(p, "/" AUFS_XINO_FNAME); + AuDbg("%s\n", p); + file = au_xino_create(sb, p, /*silent*/0); + if (!IS_ERR(file)) + au_xino_brid_set(sb, br->br_id); + } + __putname(page); + } else { + file = au_xino_create(sb, AUFS_XINO_DEFPATH, /*silent*/0); + if (IS_ERR(file)) + goto out; + h_sb = file->f_dentry->d_sb; + if (unlikely(au_test_fs_bad_xino(h_sb))) { + pr_err("xino doesn't support %s(%s)\n", + AUFS_XINO_DEFPATH, au_sbtype(h_sb)); + fput(file); + file = ERR_PTR(-EINVAL); + } + if (!IS_ERR(file)) + au_xino_brid_set(sb, -1); + } + +out: + return file; +} + +/* ---------------------------------------------------------------------- */ + +int au_xino_path(struct seq_file *seq, struct file *file) +{ + int err; + + err = au_seq_path(seq, &file->f_path); + if (unlikely(err < 0)) + goto out; + + err = 0; +#define Deleted "\\040(deleted)" + seq->count -= sizeof(Deleted) - 1; + AuDebugOn(memcmp(seq->buf + seq->count, Deleted, + sizeof(Deleted) - 1)); +#undef Deleted + +out: + return err; +} --- linux-3.2.0.orig/ubuntu/aufs/procfs.c +++ linux-3.2.0/ubuntu/aufs/procfs.c @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2010-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * procfs interfaces + */ + +#include +#include "aufs.h" + +static int au_procfs_plm_release(struct inode *inode, struct file *file) +{ + struct au_sbinfo *sbinfo; + + sbinfo = file->private_data; + if (sbinfo) { + au_plink_maint_leave(sbinfo); + kobject_put(&sbinfo->si_kobj); + } + + return 0; +} + +static void au_procfs_plm_write_clean(struct file *file) +{ + struct au_sbinfo *sbinfo; + + sbinfo = file->private_data; + if (sbinfo) + au_plink_clean(sbinfo->si_sb, /*verbose*/0); +} + +static int au_procfs_plm_write_si(struct file *file, unsigned long id) +{ + int err; + struct super_block *sb; + struct au_sbinfo *sbinfo; + + err = -EBUSY; + if (unlikely(file->private_data)) + goto out; + + sb = NULL; + /* don't use au_sbilist_lock() here */ + spin_lock(&au_sbilist.spin); + list_for_each_entry(sbinfo, &au_sbilist.head, si_list) + if (id == sysaufs_si_id(sbinfo)) { + kobject_get(&sbinfo->si_kobj); + sb = sbinfo->si_sb; + break; + } + spin_unlock(&au_sbilist.spin); + + err = -EINVAL; + if (unlikely(!sb)) + goto out; + + err = au_plink_maint_enter(sb); + if (!err) + /* keep kobject_get() */ + file->private_data = sbinfo; + else + kobject_put(&sbinfo->si_kobj); +out: + return err; +} + +/* + * Accept a valid "si=xxxx" only. + * Once it is accepted successfully, accept "clean" too. + */ +static ssize_t au_procfs_plm_write(struct file *file, const char __user *ubuf, + size_t count, loff_t *ppos) +{ + ssize_t err; + unsigned long id; + /* last newline is allowed */ + char buf[3 + sizeof(unsigned long) * 2 + 1]; + + err = -EACCES; + if (unlikely(!capable(CAP_SYS_ADMIN))) + goto out; + + err = -EINVAL; + if (unlikely(count > sizeof(buf))) + goto out; + + err = copy_from_user(buf, ubuf, count); + if (unlikely(err)) { + err = -EFAULT; + goto out; + } + buf[count] = 0; + + err = -EINVAL; + if (!strcmp("clean", buf)) { + au_procfs_plm_write_clean(file); + goto out_success; + } else if (unlikely(strncmp("si=", buf, 3))) + goto out; + + err = kstrtoul(buf + 3, 16, &id); + if (unlikely(err)) + goto out; + + err = au_procfs_plm_write_si(file, id); + if (unlikely(err)) + goto out; + +out_success: + err = count; /* success */ +out: + return err; +} + +static const struct file_operations au_procfs_plm_fop = { + .write = au_procfs_plm_write, + .release = au_procfs_plm_release, + .owner = THIS_MODULE +}; + +/* ---------------------------------------------------------------------- */ + +static struct proc_dir_entry *au_procfs_dir; + +void au_procfs_fin(void) +{ + remove_proc_entry(AUFS_PLINK_MAINT_NAME, au_procfs_dir); + remove_proc_entry(AUFS_PLINK_MAINT_DIR, NULL); +} + +int __init au_procfs_init(void) +{ + int err; + struct proc_dir_entry *entry; + + err = -ENOMEM; + au_procfs_dir = proc_mkdir(AUFS_PLINK_MAINT_DIR, NULL); + if (unlikely(!au_procfs_dir)) + goto out; + + entry = proc_create(AUFS_PLINK_MAINT_NAME, S_IFREG | S_IWUSR, + au_procfs_dir, &au_procfs_plm_fop); + if (unlikely(!entry)) + goto out_dir; + + err = 0; + goto out; /* success */ + + +out_dir: + remove_proc_entry(AUFS_PLINK_MAINT_DIR, NULL); +out: + return err; +} --- linux-3.2.0.orig/ubuntu/aufs/dynop.c +++ linux-3.2.0/ubuntu/aufs/dynop.c @@ -0,0 +1,377 @@ +/* + * Copyright (C) 2010-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * dynamically customizable operations for regular files + */ + +#include "aufs.h" + +#define DyPrSym(key) AuDbgSym(key->dk_op.dy_hop) + +/* + * How large will these lists be? + * Usually just a few elements, 20-30 at most for each, I guess. + */ +static struct au_splhead dynop[AuDyLast]; + +static struct au_dykey *dy_gfind_get(struct au_splhead *spl, const void *h_op) +{ + struct au_dykey *key, *tmp; + struct list_head *head; + + key = NULL; + head = &spl->head; + rcu_read_lock(); + list_for_each_entry_rcu(tmp, head, dk_list) + if (tmp->dk_op.dy_hop == h_op) { + key = tmp; + kref_get(&key->dk_kref); + break; + } + rcu_read_unlock(); + + return key; +} + +static struct au_dykey *dy_bradd(struct au_branch *br, struct au_dykey *key) +{ + struct au_dykey **k, *found; + const void *h_op = key->dk_op.dy_hop; + int i; + + found = NULL; + k = br->br_dykey; + for (i = 0; i < AuBrDynOp; i++) + if (k[i]) { + if (k[i]->dk_op.dy_hop == h_op) { + found = k[i]; + break; + } + } else + break; + if (!found) { + spin_lock(&br->br_dykey_lock); + for (; i < AuBrDynOp; i++) + if (k[i]) { + if (k[i]->dk_op.dy_hop == h_op) { + found = k[i]; + break; + } + } else { + k[i] = key; + break; + } + spin_unlock(&br->br_dykey_lock); + BUG_ON(i == AuBrDynOp); /* expand the array */ + } + + return found; +} + +/* kref_get() if @key is already added */ +static struct au_dykey *dy_gadd(struct au_splhead *spl, struct au_dykey *key) +{ + struct au_dykey *tmp, *found; + struct list_head *head; + const void *h_op = key->dk_op.dy_hop; + + found = NULL; + head = &spl->head; + spin_lock(&spl->spin); + list_for_each_entry(tmp, head, dk_list) + if (tmp->dk_op.dy_hop == h_op) { + kref_get(&tmp->dk_kref); + found = tmp; + break; + } + if (!found) + list_add_rcu(&key->dk_list, head); + spin_unlock(&spl->spin); + + if (!found) + DyPrSym(key); + return found; +} + +static void dy_free_rcu(struct rcu_head *rcu) +{ + struct au_dykey *key; + + key = container_of(rcu, struct au_dykey, dk_rcu); + DyPrSym(key); + kfree(key); +} + +static void dy_free(struct kref *kref) +{ + struct au_dykey *key; + struct au_splhead *spl; + + key = container_of(kref, struct au_dykey, dk_kref); + spl = dynop + key->dk_op.dy_type; + au_spl_del_rcu(&key->dk_list, spl); + call_rcu(&key->dk_rcu, dy_free_rcu); +} + +void au_dy_put(struct au_dykey *key) +{ + kref_put(&key->dk_kref, dy_free); +} + +/* ---------------------------------------------------------------------- */ + +#define DyDbgSize(cnt, op) AuDebugOn(cnt != sizeof(op)/sizeof(void *)) + +#ifdef CONFIG_AUFS_DEBUG +#define DyDbgDeclare(cnt) unsigned int cnt = 0 +#define DyDbgInc(cnt) do { cnt++; } while (0) +#else +#define DyDbgDeclare(cnt) do {} while (0) +#define DyDbgInc(cnt) do {} while (0) +#endif + +#define DySet(func, dst, src, h_op, h_sb) do { \ + DyDbgInc(cnt); \ + if (h_op->func) { \ + if (src.func) \ + dst.func = src.func; \ + else \ + AuDbg("%s %s\n", au_sbtype(h_sb), #func); \ + } \ +} while (0) + +#define DySetForce(func, dst, src) do { \ + AuDebugOn(!src.func); \ + DyDbgInc(cnt); \ + dst.func = src.func; \ +} while (0) + +#define DySetAop(func) \ + DySet(func, dyaop->da_op, aufs_aop, h_aop, h_sb) +#define DySetAopForce(func) \ + DySetForce(func, dyaop->da_op, aufs_aop) + +static void dy_aop(struct au_dykey *key, const void *h_op, + struct super_block *h_sb __maybe_unused) +{ + struct au_dyaop *dyaop = (void *)key; + const struct address_space_operations *h_aop = h_op; + DyDbgDeclare(cnt); + + AuDbg("%s\n", au_sbtype(h_sb)); + + DySetAop(writepage); + DySetAopForce(readpage); /* force */ + DySetAop(writepages); + DySetAop(set_page_dirty); + DySetAop(readpages); + DySetAop(write_begin); + DySetAop(write_end); + DySetAop(bmap); + DySetAop(invalidatepage); + DySetAop(releasepage); + DySetAop(freepage); + /* these two will be changed according to an aufs mount option */ + DySetAop(direct_IO); + DySetAop(get_xip_mem); + DySetAop(migratepage); + DySetAop(launder_page); + DySetAop(is_partially_uptodate); + DySetAop(error_remove_page); + + DyDbgSize(cnt, *h_aop); + dyaop->da_get_xip_mem = h_aop->get_xip_mem; +} + +/* ---------------------------------------------------------------------- */ + +static void dy_bug(struct kref *kref) +{ + BUG(); +} + +static struct au_dykey *dy_get(struct au_dynop *op, struct au_branch *br) +{ + struct au_dykey *key, *old; + struct au_splhead *spl; + struct op { + unsigned int sz; + void (*set)(struct au_dykey *key, const void *h_op, + struct super_block *h_sb __maybe_unused); + }; + static const struct op a[] = { + [AuDy_AOP] = { + .sz = sizeof(struct au_dyaop), + .set = dy_aop + } + }; + const struct op *p; + + spl = dynop + op->dy_type; + key = dy_gfind_get(spl, op->dy_hop); + if (key) + goto out_add; /* success */ + + p = a + op->dy_type; + key = kzalloc(p->sz, GFP_NOFS); + if (unlikely(!key)) { + key = ERR_PTR(-ENOMEM); + goto out; + } + + key->dk_op.dy_hop = op->dy_hop; + kref_init(&key->dk_kref); + p->set(key, op->dy_hop, br->br_mnt->mnt_sb); + old = dy_gadd(spl, key); + if (old) { + kfree(key); + key = old; + } + +out_add: + old = dy_bradd(br, key); + if (old) + /* its ref-count should never be zero here */ + kref_put(&key->dk_kref, dy_bug); +out: + return key; +} + +/* ---------------------------------------------------------------------- */ +/* + * Aufs prohibits O_DIRECT by defaut even if the branch supports it. + * This behaviour is neccessary to return an error from open(O_DIRECT) instead + * of the succeeding I/O. The dio mount option enables O_DIRECT and makes + * open(O_DIRECT) always succeed, but the succeeding I/O may return an error. + * See the aufs manual in detail. + * + * To keep this behaviour, aufs has to set NULL to ->get_xip_mem too, and the + * performance of fadvise() and madvise() may be affected. + */ +static void dy_adx(struct au_dyaop *dyaop, int do_dx) +{ + if (!do_dx) { + dyaop->da_op.direct_IO = NULL; + dyaop->da_op.get_xip_mem = NULL; + } else { + dyaop->da_op.direct_IO = aufs_aop.direct_IO; + dyaop->da_op.get_xip_mem = aufs_aop.get_xip_mem; + if (!dyaop->da_get_xip_mem) + dyaop->da_op.get_xip_mem = NULL; + } +} + +static struct au_dyaop *dy_aget(struct au_branch *br, + const struct address_space_operations *h_aop, + int do_dx) +{ + struct au_dyaop *dyaop; + struct au_dynop op; + + op.dy_type = AuDy_AOP; + op.dy_haop = h_aop; + dyaop = (void *)dy_get(&op, br); + if (IS_ERR(dyaop)) + goto out; + dy_adx(dyaop, do_dx); + +out: + return dyaop; +} + +int au_dy_iaop(struct inode *inode, aufs_bindex_t bindex, + struct inode *h_inode) +{ + int err, do_dx; + struct super_block *sb; + struct au_branch *br; + struct au_dyaop *dyaop; + + AuDebugOn(!S_ISREG(h_inode->i_mode)); + IiMustWriteLock(inode); + + sb = inode->i_sb; + br = au_sbr(sb, bindex); + do_dx = !!au_opt_test(au_mntflags(sb), DIO); + dyaop = dy_aget(br, h_inode->i_mapping->a_ops, do_dx); + err = PTR_ERR(dyaop); + if (IS_ERR(dyaop)) + /* unnecessary to call dy_fput() */ + goto out; + + err = 0; + inode->i_mapping->a_ops = &dyaop->da_op; + +out: + return err; +} + +/* + * Is it safe to replace a_ops during the inode/file is in operation? + * Yes, I hope so. + */ +int au_dy_irefresh(struct inode *inode) +{ + int err; + aufs_bindex_t bstart; + struct inode *h_inode; + + err = 0; + if (S_ISREG(inode->i_mode)) { + bstart = au_ibstart(inode); + h_inode = au_h_iptr(inode, bstart); + err = au_dy_iaop(inode, bstart, h_inode); + } + return err; +} + +void au_dy_arefresh(int do_dx) +{ + struct au_splhead *spl; + struct list_head *head; + struct au_dykey *key; + + spl = dynop + AuDy_AOP; + head = &spl->head; + spin_lock(&spl->spin); + list_for_each_entry(key, head, dk_list) + dy_adx((void *)key, do_dx); + spin_unlock(&spl->spin); +} + +/* ---------------------------------------------------------------------- */ + +void __init au_dy_init(void) +{ + int i; + + /* make sure that 'struct au_dykey *' can be any type */ + BUILD_BUG_ON(offsetof(struct au_dyaop, da_key)); + + for (i = 0; i < AuDyLast; i++) + au_spl_init(dynop + i); +} + +void au_dy_fin(void) +{ + int i; + + for (i = 0; i < AuDyLast; i++) + WARN_ON(!list_empty(&dynop[i].head)); +} --- linux-3.2.0.orig/ubuntu/aufs/Makefile +++ linux-3.2.0/ubuntu/aufs/Makefile @@ -0,0 +1,42 @@ + +include ${src}/magic.mk +ifeq (${CONFIG_AUFS_FS},m) +include ${src}/conf.mk +endif +-include ${src}/priv_def.mk + +# cf. include/linux/kernel.h +# enable pr_debug +ccflags-y += -DDEBUG +# sparse requires the full pathname +ifdef M +ccflags-y += -include ${M}/../../ubuntu/include/linux/aufs_type.h +else +ccflags-y += -include ${srctree}/ubuntu/include/linux/aufs_type.h +endif + +obj-$(CONFIG_AUFS_FS) += aufs.o +aufs-y := module.o sbinfo.o super.o branch.o xino.o sysaufs.o opts.o \ + wkq.o vfsub.o dcsub.o \ + cpup.o whout.o wbr_policy.o \ + dinfo.o dentry.o \ + dynop.o \ + finfo.o file.o f_op.o \ + dir.o vdir.o \ + iinfo.o inode.o i_op.o i_op_add.o i_op_del.o i_op_ren.o \ + ioctl.o + +# all are boolean +aufs-$(CONFIG_PROC_FS) += procfs.o plink.o +aufs-$(CONFIG_SYSFS) += sysfs.o +aufs-$(CONFIG_DEBUG_FS) += dbgaufs.o +aufs-$(CONFIG_AUFS_BDEV_LOOP) += loop.o +aufs-$(CONFIG_AUFS_HNOTIFY) += hnotify.o +aufs-$(CONFIG_AUFS_HFSNOTIFY) += hfsnotify.o +aufs-$(CONFIG_AUFS_EXPORT) += export.o +aufs-$(CONFIG_AUFS_POLL) += poll.o +aufs-$(CONFIG_AUFS_RDU) += rdu.o +aufs-$(CONFIG_AUFS_SP_IATTR) += f_op_sp.o +aufs-$(CONFIG_AUFS_BR_HFSPLUS) += hfsplus.o +aufs-$(CONFIG_AUFS_DEBUG) += debug.o +aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o --- linux-3.2.0.orig/ubuntu/aufs/inode.c +++ linux-3.2.0/ubuntu/aufs/inode.c @@ -0,0 +1,471 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode functions + */ + +#include "aufs.h" + +struct inode *au_igrab(struct inode *inode) +{ + if (inode) { + AuDebugOn(!atomic_read(&inode->i_count)); + ihold(inode); + } + return inode; +} + +static void au_refresh_hinode_attr(struct inode *inode, int do_version) +{ + au_cpup_attr_all(inode, /*force*/0); + au_update_iigen(inode); + if (do_version) + inode->i_version++; +} + +static int au_ii_refresh(struct inode *inode, int *update) +{ + int err, e; + umode_t type; + aufs_bindex_t bindex, new_bindex; + struct super_block *sb; + struct au_iinfo *iinfo; + struct au_hinode *p, *q, tmp; + + IiMustWriteLock(inode); + + *update = 0; + sb = inode->i_sb; + type = inode->i_mode & S_IFMT; + iinfo = au_ii(inode); + err = au_ii_realloc(iinfo, au_sbend(sb) + 1); + if (unlikely(err)) + goto out; + + AuDebugOn(iinfo->ii_bstart < 0); + p = iinfo->ii_hinode + iinfo->ii_bstart; + for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend; + bindex++, p++) { + if (!p->hi_inode) + continue; + + AuDebugOn(type != (p->hi_inode->i_mode & S_IFMT)); + new_bindex = au_br_index(sb, p->hi_id); + if (new_bindex == bindex) + continue; + + if (new_bindex < 0) { + *update = 1; + au_hiput(p); + p->hi_inode = NULL; + continue; + } + + if (new_bindex < iinfo->ii_bstart) + iinfo->ii_bstart = new_bindex; + if (iinfo->ii_bend < new_bindex) + iinfo->ii_bend = new_bindex; + /* swap two lower inode, and loop again */ + q = iinfo->ii_hinode + new_bindex; + tmp = *q; + *q = *p; + *p = tmp; + if (tmp.hi_inode) { + bindex--; + p--; + } + } + au_update_ibrange(inode, /*do_put_zero*/0); + e = au_dy_irefresh(inode); + if (unlikely(e && !err)) + err = e; + +out: + AuTraceErr(err); + return err; +} + +int au_refresh_hinode_self(struct inode *inode) +{ + int err, update; + + err = au_ii_refresh(inode, &update); + if (!err) + au_refresh_hinode_attr(inode, update && S_ISDIR(inode->i_mode)); + + AuTraceErr(err); + return err; +} + +int au_refresh_hinode(struct inode *inode, struct dentry *dentry) +{ + int err, e, update; + unsigned int flags; + umode_t mode; + aufs_bindex_t bindex, bend; + unsigned char isdir; + struct au_hinode *p; + struct au_iinfo *iinfo; + + err = au_ii_refresh(inode, &update); + if (unlikely(err)) + goto out; + + update = 0; + iinfo = au_ii(inode); + p = iinfo->ii_hinode + iinfo->ii_bstart; + mode = (inode->i_mode & S_IFMT); + isdir = S_ISDIR(mode); + flags = au_hi_flags(inode, isdir); + bend = au_dbend(dentry); + for (bindex = au_dbstart(dentry); bindex <= bend; bindex++) { + struct inode *h_i; + struct dentry *h_d; + + h_d = au_h_dptr(dentry, bindex); + if (!h_d || !h_d->d_inode) + continue; + + AuDebugOn(mode != (h_d->d_inode->i_mode & S_IFMT)); + if (iinfo->ii_bstart <= bindex && bindex <= iinfo->ii_bend) { + h_i = au_h_iptr(inode, bindex); + if (h_i) { + if (h_i == h_d->d_inode) + continue; + err = -EIO; + break; + } + } + if (bindex < iinfo->ii_bstart) + iinfo->ii_bstart = bindex; + if (iinfo->ii_bend < bindex) + iinfo->ii_bend = bindex; + au_set_h_iptr(inode, bindex, au_igrab(h_d->d_inode), flags); + update = 1; + } + au_update_ibrange(inode, /*do_put_zero*/0); + e = au_dy_irefresh(inode); + if (unlikely(e && !err)) + err = e; + if (!err) + au_refresh_hinode_attr(inode, update && isdir); + +out: + AuTraceErr(err); + return err; +} + +static int set_inode(struct inode *inode, struct dentry *dentry) +{ + int err; + unsigned int flags; + umode_t mode; + aufs_bindex_t bindex, bstart, btail; + unsigned char isdir; + struct dentry *h_dentry; + struct inode *h_inode; + struct au_iinfo *iinfo; + + IiMustWriteLock(inode); + + err = 0; + isdir = 0; + bstart = au_dbstart(dentry); + h_inode = au_h_dptr(dentry, bstart)->d_inode; + mode = h_inode->i_mode; + switch (mode & S_IFMT) { + case S_IFREG: + btail = au_dbtail(dentry); + inode->i_op = &aufs_iop; + inode->i_fop = &aufs_file_fop; + err = au_dy_iaop(inode, bstart, h_inode); + if (unlikely(err)) + goto out; + break; + case S_IFDIR: + isdir = 1; + btail = au_dbtaildir(dentry); + inode->i_op = &aufs_dir_iop; + inode->i_fop = &aufs_dir_fop; + break; + case S_IFLNK: + btail = au_dbtail(dentry); + inode->i_op = &aufs_symlink_iop; + break; + case S_IFBLK: + case S_IFCHR: + case S_IFIFO: + case S_IFSOCK: + btail = au_dbtail(dentry); + inode->i_op = &aufs_iop; + au_init_special_fop(inode, mode, h_inode->i_rdev); + break; + default: + AuIOErr("Unknown file type 0%o\n", mode); + err = -EIO; + goto out; + } + + /* do not set hnotify for whiteouted dirs (SHWH mode) */ + flags = au_hi_flags(inode, isdir); + if (au_opt_test(au_mntflags(dentry->d_sb), SHWH) + && au_ftest_hi(flags, HNOTIFY) + && dentry->d_name.len > AUFS_WH_PFX_LEN + && !memcmp(dentry->d_name.name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) + au_fclr_hi(flags, HNOTIFY); + iinfo = au_ii(inode); + iinfo->ii_bstart = bstart; + iinfo->ii_bend = btail; + for (bindex = bstart; bindex <= btail; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry) + au_set_h_iptr(inode, bindex, + au_igrab(h_dentry->d_inode), flags); + } + au_cpup_attr_all(inode, /*force*/1); + +out: + return err; +} + +/* + * successful returns with iinfo write_locked + * minus: errno + * zero: success, matched + * plus: no error, but unmatched + */ +static int reval_inode(struct inode *inode, struct dentry *dentry) +{ + int err; + aufs_bindex_t bindex, bend; + struct inode *h_inode, *h_dinode; + + /* + * before this function, if aufs got any iinfo lock, it must be only + * one, the parent dir. + * it can happen by UDBA and the obsoleted inode number. + */ + err = -EIO; + if (unlikely(inode->i_ino == parent_ino(dentry))) + goto out; + + err = 1; + ii_write_lock_new_child(inode); + h_dinode = au_h_dptr(dentry, au_dbstart(dentry))->d_inode; + bend = au_ibend(inode); + for (bindex = au_ibstart(inode); bindex <= bend; bindex++) { + h_inode = au_h_iptr(inode, bindex); + if (h_inode && h_inode == h_dinode) { + err = 0; + if (au_iigen_test(inode, au_digen(dentry))) + err = au_refresh_hinode(inode, dentry); + break; + } + } + + if (unlikely(err)) + ii_write_unlock(inode); +out: + return err; +} + +int au_ino(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + unsigned int d_type, ino_t *ino) +{ + int err; + struct mutex *mtx; + + /* prevent hardlinked inode number from race condition */ + mtx = NULL; + if (d_type != DT_DIR) { + mtx = &au_sbr(sb, bindex)->br_xino.xi_nondir_mtx; + mutex_lock(mtx); + } + err = au_xino_read(sb, bindex, h_ino, ino); + if (unlikely(err)) + goto out; + + if (!*ino) { + err = -EIO; + *ino = au_xino_new_ino(sb); + if (unlikely(!*ino)) + goto out; + err = au_xino_write(sb, bindex, h_ino, *ino); + if (unlikely(err)) + goto out; + } + +out: + if (mtx) + mutex_unlock(mtx); + return err; +} + +/* successful returns with iinfo write_locked */ +/* todo: return with unlocked? */ +struct inode *au_new_inode(struct dentry *dentry, int must_new) +{ + struct inode *inode, *h_inode; + struct dentry *h_dentry; + struct super_block *sb; + struct mutex *mtx; + ino_t h_ino, ino; + int err; + aufs_bindex_t bstart; + + sb = dentry->d_sb; + bstart = au_dbstart(dentry); + h_dentry = au_h_dptr(dentry, bstart); + h_inode = h_dentry->d_inode; + h_ino = h_inode->i_ino; + + /* + * stop 'race'-ing between hardlinks under different + * parents. + */ + mtx = NULL; + if (!S_ISDIR(h_inode->i_mode)) + mtx = &au_sbr(sb, bstart)->br_xino.xi_nondir_mtx; + +new_ino: + if (mtx) + mutex_lock(mtx); + err = au_xino_read(sb, bstart, h_ino, &ino); + inode = ERR_PTR(err); + if (unlikely(err)) + goto out; + + if (!ino) { + ino = au_xino_new_ino(sb); + if (unlikely(!ino)) { + inode = ERR_PTR(-EIO); + goto out; + } + } + + AuDbg("i%lu\n", (unsigned long)ino); + inode = au_iget_locked(sb, ino); + err = PTR_ERR(inode); + if (IS_ERR(inode)) + goto out; + + AuDbg("%lx, new %d\n", inode->i_state, !!(inode->i_state & I_NEW)); + if (inode->i_state & I_NEW) { + ii_write_lock_new_child(inode); + err = set_inode(inode, dentry); + if (!err) { + unlock_new_inode(inode); + goto out; /* success */ + } + + /* + * iget_failed() calls iput(), but we need to call + * ii_write_unlock() after iget_failed(). so dirty hack for + * i_count. + */ + atomic_inc(&inode->i_count); + iget_failed(inode); + ii_write_unlock(inode); + au_xino_write(sb, bstart, h_ino, /*ino*/0); + /* ignore this error */ + goto out_iput; + } else if (!must_new && !IS_DEADDIR(inode) && inode->i_nlink) { + /* + * horrible race condition between lookup, readdir and copyup + * (or something). + */ + if (mtx) + mutex_unlock(mtx); + err = reval_inode(inode, dentry); + if (unlikely(err < 0)) { + mtx = NULL; + goto out_iput; + } + + if (!err) { + mtx = NULL; + goto out; /* success */ + } else if (mtx) + mutex_lock(mtx); + } + + if (unlikely(au_test_fs_unique_ino(h_dentry->d_inode))) + AuWarn1("Warning: Un-notified UDBA or repeatedly renamed dir," + " b%d, %s, %.*s, hi%lu, i%lu.\n", + bstart, au_sbtype(h_dentry->d_sb), AuDLNPair(dentry), + (unsigned long)h_ino, (unsigned long)ino); + ino = 0; + err = au_xino_write(sb, bstart, h_ino, /*ino*/0); + if (!err) { + iput(inode); + if (mtx) + mutex_unlock(mtx); + goto new_ino; + } + +out_iput: + iput(inode); + inode = ERR_PTR(err); +out: + if (mtx) + mutex_unlock(mtx); + return inode; +} + +/* ---------------------------------------------------------------------- */ + +int au_test_ro(struct super_block *sb, aufs_bindex_t bindex, + struct inode *inode) +{ + int err; + + err = au_br_rdonly(au_sbr(sb, bindex)); + + /* pseudo-link after flushed may happen out of bounds */ + if (!err + && inode + && au_ibstart(inode) <= bindex + && bindex <= au_ibend(inode)) { + /* + * permission check is unnecessary since vfsub routine + * will be called later + */ + struct inode *hi = au_h_iptr(inode, bindex); + if (hi) + err = IS_IMMUTABLE(hi) ? -EROFS : 0; + } + + return err; +} + +int au_test_h_perm(struct inode *h_inode, int mask) +{ + if (!current_fsuid()) + return 0; + return inode_permission(h_inode, mask); +} + +int au_test_h_perm_sio(struct inode *h_inode, int mask) +{ + if (au_test_nfs(h_inode->i_sb) + && (mask & MAY_WRITE) + && S_ISDIR(h_inode->i_mode)) + mask |= MAY_READ; /* force permission check */ + return au_test_h_perm(h_inode, mask); +} --- linux-3.2.0.orig/ubuntu/aufs/dir.c +++ linux-3.2.0/ubuntu/aufs/dir.c @@ -0,0 +1,634 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * directory operations + */ + +#include +#include "aufs.h" + +void au_add_nlink(struct inode *dir, struct inode *h_dir) +{ + unsigned int nlink; + + AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode)); + + nlink = dir->i_nlink; + nlink += h_dir->i_nlink - 2; + if (h_dir->i_nlink < 2) + nlink += 2; + set_nlink(dir, nlink); +} + +void au_sub_nlink(struct inode *dir, struct inode *h_dir) +{ + unsigned int nlink; + + AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode)); + + nlink = dir->i_nlink; + nlink -= h_dir->i_nlink - 2; + if (h_dir->i_nlink < 2) + nlink -= 2; + set_nlink(dir, nlink); +} + +loff_t au_dir_size(struct file *file, struct dentry *dentry) +{ + loff_t sz; + aufs_bindex_t bindex, bend; + struct file *h_file; + struct dentry *h_dentry; + + sz = 0; + if (file) { + AuDebugOn(!file->f_dentry); + AuDebugOn(!file->f_dentry->d_inode); + AuDebugOn(!S_ISDIR(file->f_dentry->d_inode->i_mode)); + + bend = au_fbend_dir(file); + for (bindex = au_fbstart(file); + bindex <= bend && sz < KMALLOC_MAX_SIZE; + bindex++) { + h_file = au_hf_dir(file, bindex); + if (h_file + && h_file->f_dentry + && h_file->f_dentry->d_inode) + sz += i_size_read(h_file->f_dentry->d_inode); + } + } else { + AuDebugOn(!dentry); + AuDebugOn(!dentry->d_inode); + AuDebugOn(!S_ISDIR(dentry->d_inode->i_mode)); + + bend = au_dbtaildir(dentry); + for (bindex = au_dbstart(dentry); + bindex <= bend && sz < KMALLOC_MAX_SIZE; + bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry && h_dentry->d_inode) + sz += i_size_read(h_dentry->d_inode); + } + } + if (sz < KMALLOC_MAX_SIZE) + sz = roundup_pow_of_two(sz); + if (sz > KMALLOC_MAX_SIZE) + sz = KMALLOC_MAX_SIZE; + else if (sz < NAME_MAX) { + BUILD_BUG_ON(AUFS_RDBLK_DEF < NAME_MAX); + sz = AUFS_RDBLK_DEF; + } + return sz; +} + +/* ---------------------------------------------------------------------- */ + +static int reopen_dir(struct file *file) +{ + int err; + unsigned int flags; + aufs_bindex_t bindex, btail, bstart; + struct dentry *dentry, *h_dentry; + struct file *h_file; + + /* open all lower dirs */ + dentry = file->f_dentry; + bstart = au_dbstart(dentry); + for (bindex = au_fbstart(file); bindex < bstart; bindex++) + au_set_h_fptr(file, bindex, NULL); + au_set_fbstart(file, bstart); + + btail = au_dbtaildir(dentry); + for (bindex = au_fbend_dir(file); btail < bindex; bindex--) + au_set_h_fptr(file, bindex, NULL); + au_set_fbend_dir(file, btail); + + flags = vfsub_file_flags(file); + for (bindex = bstart; bindex <= btail; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + h_file = au_hf_dir(file, bindex); + if (h_file) + continue; + + h_file = au_h_open(dentry, bindex, flags, file); + err = PTR_ERR(h_file); + if (IS_ERR(h_file)) + goto out; /* close all? */ + au_set_h_fptr(file, bindex, h_file); + } + au_update_figen(file); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + err = 0; + +out: + return err; +} + +static int do_open_dir(struct file *file, int flags) +{ + int err; + aufs_bindex_t bindex, btail; + struct dentry *dentry, *h_dentry; + struct file *h_file; + + FiMustWriteLock(file); + + dentry = file->f_dentry; + err = au_alive_dir(dentry); + if (unlikely(err)) + goto out; + + file->f_version = dentry->d_inode->i_version; + bindex = au_dbstart(dentry); + au_set_fbstart(file, bindex); + btail = au_dbtaildir(dentry); + au_set_fbend_dir(file, btail); + for (; !err && bindex <= btail; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + + h_file = au_h_open(dentry, bindex, flags, file); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + break; + } + au_set_h_fptr(file, bindex, h_file); + } + au_update_figen(file); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + if (!err) + return 0; /* success */ + + /* close all */ + for (bindex = au_fbstart(file); bindex <= btail; bindex++) + au_set_h_fptr(file, bindex, NULL); + au_set_fbstart(file, -1); + au_set_fbend_dir(file, -1); + +out: + return err; +} + +static int aufs_open_dir(struct inode *inode __maybe_unused, + struct file *file) +{ + int err; + struct super_block *sb; + struct au_fidir *fidir; + + err = -ENOMEM; + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + fidir = au_fidir_alloc(sb); + if (fidir) { + err = au_do_open(file, do_open_dir, fidir); + if (unlikely(err)) + kfree(fidir); + } + si_read_unlock(sb); + return err; +} + +static int aufs_release_dir(struct inode *inode __maybe_unused, + struct file *file) +{ + struct au_vdir *vdir_cache; + struct au_finfo *finfo; + struct au_fidir *fidir; + aufs_bindex_t bindex, bend; + + finfo = au_fi(file); + fidir = finfo->fi_hdir; + if (fidir) { + /* remove me from sb->s_files */ + file_sb_list_del(file); + + vdir_cache = fidir->fd_vdir_cache; /* lock-free */ + if (vdir_cache) + au_vdir_free(vdir_cache); + + bindex = finfo->fi_btop; + if (bindex >= 0) { + /* + * calls fput() instead of filp_close(), + * since no dnotify or lock for the lower file. + */ + bend = fidir->fd_bbot; + for (; bindex <= bend; bindex++) + au_set_h_fptr(file, bindex, NULL); + } + kfree(fidir); + finfo->fi_hdir = NULL; + } + au_finfo_fin(file); + return 0; +} + +/* ---------------------------------------------------------------------- */ + +static int au_do_flush_dir(struct file *file, fl_owner_t id) +{ + int err; + aufs_bindex_t bindex, bend; + struct file *h_file; + + err = 0; + bend = au_fbend_dir(file); + for (bindex = au_fbstart(file); !err && bindex <= bend; bindex++) { + h_file = au_hf_dir(file, bindex); + if (h_file) + err = vfsub_flush(h_file, id); + } + return err; +} + +static int aufs_flush_dir(struct file *file, fl_owner_t id) +{ + return au_do_flush(file, id, au_do_flush_dir); +} + +/* ---------------------------------------------------------------------- */ + +static int au_do_fsync_dir_no_file(struct dentry *dentry, int datasync) +{ + int err; + aufs_bindex_t bend, bindex; + struct inode *inode; + struct super_block *sb; + + err = 0; + sb = dentry->d_sb; + inode = dentry->d_inode; + IMustLock(inode); + bend = au_dbend(dentry); + for (bindex = au_dbstart(dentry); !err && bindex <= bend; bindex++) { + struct path h_path; + + if (au_test_ro(sb, bindex, inode)) + continue; + h_path.dentry = au_h_dptr(dentry, bindex); + if (!h_path.dentry) + continue; + + h_path.mnt = au_sbr_mnt(sb, bindex); + err = vfsub_fsync(NULL, &h_path, datasync); + } + + return err; +} + +static int au_do_fsync_dir(struct file *file, int datasync) +{ + int err; + aufs_bindex_t bend, bindex; + struct file *h_file; + struct super_block *sb; + struct inode *inode; + + err = au_reval_and_lock_fdi(file, reopen_dir, /*wlock*/1); + if (unlikely(err)) + goto out; + + sb = file->f_dentry->d_sb; + inode = file->f_dentry->d_inode; + bend = au_fbend_dir(file); + for (bindex = au_fbstart(file); !err && bindex <= bend; bindex++) { + h_file = au_hf_dir(file, bindex); + if (!h_file || au_test_ro(sb, bindex, inode)) + continue; + + err = vfsub_fsync(h_file, &h_file->f_path, datasync); + } + +out: + return err; +} + +/* + * @file may be NULL + */ +static int aufs_fsync_dir(struct file *file, loff_t start, loff_t end, + int datasync) +{ + int err; + struct dentry *dentry; + struct super_block *sb; + struct mutex *mtx; + + err = 0; + dentry = file->f_dentry; + mtx = &dentry->d_inode->i_mutex; + mutex_lock(mtx); + sb = dentry->d_sb; + si_noflush_read_lock(sb); + if (file) + err = au_do_fsync_dir(file, datasync); + else { + di_write_lock_child(dentry); + err = au_do_fsync_dir_no_file(dentry, datasync); + } + au_cpup_attr_timesizes(dentry->d_inode); + di_write_unlock(dentry); + if (file) + fi_write_unlock(file); + + si_read_unlock(sb); + mutex_unlock(mtx); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_readdir(struct file *file, void *dirent, filldir_t filldir) +{ + int err; + struct dentry *dentry; + struct inode *inode, *h_inode; + struct super_block *sb; + + dentry = file->f_dentry; + inode = dentry->d_inode; + IMustLock(inode); + + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + err = au_reval_and_lock_fdi(file, reopen_dir, /*wlock*/1); + if (unlikely(err)) + goto out; + err = au_alive_dir(dentry); + if (!err) + err = au_vdir_init(file); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + + h_inode = au_h_iptr(inode, au_ibstart(inode)); + if (!au_test_nfsd()) { + err = au_vdir_fill_de(file, dirent, filldir); + fsstack_copy_attr_atime(inode, h_inode); + } else { + /* + * nfsd filldir may call lookup_one_len(), vfs_getattr(), + * encode_fh() and others. + */ + atomic_inc(&h_inode->i_count); + di_read_unlock(dentry, AuLock_IR); + si_read_unlock(sb); + err = au_vdir_fill_de(file, dirent, filldir); + fsstack_copy_attr_atime(inode, h_inode); + fi_write_unlock(file); + iput(h_inode); + + AuTraceErr(err); + return err; + } + +out_unlock: + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); +out: + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +#define AuTestEmpty_WHONLY 1 +#define AuTestEmpty_CALLED (1 << 1) +#define AuTestEmpty_SHWH (1 << 2) +#define au_ftest_testempty(flags, name) ((flags) & AuTestEmpty_##name) +#define au_fset_testempty(flags, name) \ + do { (flags) |= AuTestEmpty_##name; } while (0) +#define au_fclr_testempty(flags, name) \ + do { (flags) &= ~AuTestEmpty_##name; } while (0) + +#ifndef CONFIG_AUFS_SHWH +#undef AuTestEmpty_SHWH +#define AuTestEmpty_SHWH 0 +#endif + +struct test_empty_arg { + struct au_nhash *whlist; + unsigned int flags; + int err; + aufs_bindex_t bindex; +}; + +static int test_empty_cb(void *__arg, const char *__name, int namelen, + loff_t offset __maybe_unused, u64 ino, + unsigned int d_type) +{ + struct test_empty_arg *arg = __arg; + char *name = (void *)__name; + + arg->err = 0; + au_fset_testempty(arg->flags, CALLED); + /* smp_mb(); */ + if (name[0] == '.' + && (namelen == 1 || (name[1] == '.' && namelen == 2))) + goto out; /* success */ + + if (namelen <= AUFS_WH_PFX_LEN + || memcmp(name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) { + if (au_ftest_testempty(arg->flags, WHONLY) + && !au_nhash_test_known_wh(arg->whlist, name, namelen)) + arg->err = -ENOTEMPTY; + goto out; + } + + name += AUFS_WH_PFX_LEN; + namelen -= AUFS_WH_PFX_LEN; + if (!au_nhash_test_known_wh(arg->whlist, name, namelen)) + arg->err = au_nhash_append_wh + (arg->whlist, name, namelen, ino, d_type, arg->bindex, + au_ftest_testempty(arg->flags, SHWH)); + +out: + /* smp_mb(); */ + AuTraceErr(arg->err); + return arg->err; +} + +static int do_test_empty(struct dentry *dentry, struct test_empty_arg *arg) +{ + int err; + struct file *h_file; + + h_file = au_h_open(dentry, arg->bindex, + O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_LARGEFILE, + /*file*/NULL); + err = PTR_ERR(h_file); + if (IS_ERR(h_file)) + goto out; + + err = 0; + if (!au_opt_test(au_mntflags(dentry->d_sb), UDBA_NONE) + && !h_file->f_dentry->d_inode->i_nlink) + goto out_put; + + do { + arg->err = 0; + au_fclr_testempty(arg->flags, CALLED); + /* smp_mb(); */ + err = vfsub_readdir(h_file, test_empty_cb, arg); + if (err >= 0) + err = arg->err; + } while (!err && au_ftest_testempty(arg->flags, CALLED)); + +out_put: + fput(h_file); + au_sbr_put(dentry->d_sb, arg->bindex); +out: + return err; +} + +struct do_test_empty_args { + int *errp; + struct dentry *dentry; + struct test_empty_arg *arg; +}; + +static void call_do_test_empty(void *args) +{ + struct do_test_empty_args *a = args; + *a->errp = do_test_empty(a->dentry, a->arg); +} + +static int sio_test_empty(struct dentry *dentry, struct test_empty_arg *arg) +{ + int err, wkq_err; + struct dentry *h_dentry; + struct inode *h_inode; + + h_dentry = au_h_dptr(dentry, arg->bindex); + h_inode = h_dentry->d_inode; + /* todo: i_mode changes anytime? */ + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + err = au_test_h_perm_sio(h_inode, MAY_EXEC | MAY_READ); + mutex_unlock(&h_inode->i_mutex); + if (!err) + err = do_test_empty(dentry, arg); + else { + struct do_test_empty_args args = { + .errp = &err, + .dentry = dentry, + .arg = arg + }; + unsigned int flags = arg->flags; + + wkq_err = au_wkq_wait(call_do_test_empty, &args); + if (unlikely(wkq_err)) + err = wkq_err; + arg->flags = flags; + } + + return err; +} + +int au_test_empty_lower(struct dentry *dentry) +{ + int err; + unsigned int rdhash; + aufs_bindex_t bindex, bstart, btail; + struct au_nhash whlist; + struct test_empty_arg arg; + + SiMustAnyLock(dentry->d_sb); + + rdhash = au_sbi(dentry->d_sb)->si_rdhash; + if (!rdhash) + rdhash = au_rdhash_est(au_dir_size(/*file*/NULL, dentry)); + err = au_nhash_alloc(&whlist, rdhash, GFP_NOFS); + if (unlikely(err)) + goto out; + + arg.flags = 0; + arg.whlist = &whlist; + bstart = au_dbstart(dentry); + if (au_opt_test(au_mntflags(dentry->d_sb), SHWH)) + au_fset_testempty(arg.flags, SHWH); + arg.bindex = bstart; + err = do_test_empty(dentry, &arg); + if (unlikely(err)) + goto out_whlist; + + au_fset_testempty(arg.flags, WHONLY); + btail = au_dbtaildir(dentry); + for (bindex = bstart + 1; !err && bindex <= btail; bindex++) { + struct dentry *h_dentry; + + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry && h_dentry->d_inode) { + arg.bindex = bindex; + err = do_test_empty(dentry, &arg); + } + } + +out_whlist: + au_nhash_wh_free(&whlist); +out: + return err; +} + +int au_test_empty(struct dentry *dentry, struct au_nhash *whlist) +{ + int err; + struct test_empty_arg arg; + aufs_bindex_t bindex, btail; + + err = 0; + arg.whlist = whlist; + arg.flags = AuTestEmpty_WHONLY; + if (au_opt_test(au_mntflags(dentry->d_sb), SHWH)) + au_fset_testempty(arg.flags, SHWH); + btail = au_dbtaildir(dentry); + for (bindex = au_dbstart(dentry); !err && bindex <= btail; bindex++) { + struct dentry *h_dentry; + + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry && h_dentry->d_inode) { + arg.bindex = bindex; + err = sio_test_empty(dentry, &arg); + } + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +const struct file_operations aufs_dir_fop = { + .owner = THIS_MODULE, + .llseek = default_llseek, + .read = generic_read_dir, + .readdir = aufs_readdir, + .unlocked_ioctl = aufs_ioctl_dir, +#ifdef CONFIG_COMPAT + .compat_ioctl = aufs_compat_ioctl_dir, +#endif + .open = aufs_open_dir, + .release = aufs_release_dir, + .flush = aufs_flush_dir, + .fsync = aufs_fsync_dir +}; --- linux-3.2.0.orig/ubuntu/aufs/dynop.h +++ linux-3.2.0/ubuntu/aufs/dynop.h @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2010-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * dynamically customizable operations (for regular files only) + */ + +#ifndef __AUFS_DYNOP_H__ +#define __AUFS_DYNOP_H__ + +#ifdef __KERNEL__ + +#include "inode.h" + +enum {AuDy_AOP, AuDyLast}; + +struct au_dynop { + int dy_type; + union { + const void *dy_hop; + const struct address_space_operations *dy_haop; + }; +}; + +struct au_dykey { + union { + struct list_head dk_list; + struct rcu_head dk_rcu; + }; + struct au_dynop dk_op; + + /* + * during I am in the branch local array, kref is gotten. when the + * branch is removed, kref is put. + */ + struct kref dk_kref; +}; + +/* stop unioning since their sizes are very different from each other */ +struct au_dyaop { + struct au_dykey da_key; + struct address_space_operations da_op; /* not const */ + int (*da_get_xip_mem)(struct address_space *, pgoff_t, int, + void **, unsigned long *); +}; + +/* ---------------------------------------------------------------------- */ + +/* dynop.c */ +struct au_branch; +void au_dy_put(struct au_dykey *key); +int au_dy_iaop(struct inode *inode, aufs_bindex_t bindex, + struct inode *h_inode); +int au_dy_irefresh(struct inode *inode); +void au_dy_arefresh(int do_dio); + +void __init au_dy_init(void); +void au_dy_fin(void); + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DYNOP_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/finfo.c +++ linux-3.2.0/ubuntu/aufs/finfo.c @@ -0,0 +1,156 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * file private data + */ + +#include "aufs.h" + +void au_hfput(struct au_hfile *hf, struct file *file) +{ + /* todo: direct access f_flags */ + if (vfsub_file_flags(file) & __FMODE_EXEC) + allow_write_access(hf->hf_file); + fput(hf->hf_file); + hf->hf_file = NULL; + atomic_dec(&hf->hf_br->br_count); + hf->hf_br = NULL; +} + +void au_set_h_fptr(struct file *file, aufs_bindex_t bindex, struct file *val) +{ + struct au_finfo *finfo = au_fi(file); + struct au_hfile *hf; + struct au_fidir *fidir; + + fidir = finfo->fi_hdir; + if (!fidir) { + AuDebugOn(finfo->fi_btop != bindex); + hf = &finfo->fi_htop; + } else + hf = fidir->fd_hfile + bindex; + + if (hf && hf->hf_file) + au_hfput(hf, file); + if (val) { + FiMustWriteLock(file); + hf->hf_file = val; + hf->hf_br = au_sbr(file->f_dentry->d_sb, bindex); + } +} + +void au_update_figen(struct file *file) +{ + atomic_set(&au_fi(file)->fi_generation, au_digen(file->f_dentry)); + /* smp_mb(); */ /* atomic_set */ +} + +/* ---------------------------------------------------------------------- */ + +struct au_fidir *au_fidir_alloc(struct super_block *sb) +{ + struct au_fidir *fidir; + int nbr; + + nbr = au_sbend(sb) + 1; + if (nbr < 2) + nbr = 2; /* initial allocate for 2 branches */ + fidir = kzalloc(au_fidir_sz(nbr), GFP_NOFS); + if (fidir) { + fidir->fd_bbot = -1; + fidir->fd_nent = nbr; + fidir->fd_vdir_cache = NULL; + } + + return fidir; +} + +int au_fidir_realloc(struct au_finfo *finfo, int nbr) +{ + int err; + struct au_fidir *fidir, *p; + + AuRwMustWriteLock(&finfo->fi_rwsem); + fidir = finfo->fi_hdir; + AuDebugOn(!fidir); + + err = -ENOMEM; + p = au_kzrealloc(fidir, au_fidir_sz(fidir->fd_nent), au_fidir_sz(nbr), + GFP_NOFS); + if (p) { + p->fd_nent = nbr; + finfo->fi_hdir = p; + err = 0; + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +void au_finfo_fin(struct file *file) +{ + struct au_finfo *finfo; + + au_nfiles_dec(file->f_dentry->d_sb); + + finfo = au_fi(file); + AuDebugOn(finfo->fi_hdir); + AuRwDestroy(&finfo->fi_rwsem); + au_cache_free_finfo(finfo); +} + +void au_fi_init_once(void *_finfo) +{ + struct au_finfo *finfo = _finfo; + static struct lock_class_key aufs_fi; + + au_rw_init(&finfo->fi_rwsem); + au_rw_class(&finfo->fi_rwsem, &aufs_fi); +} + +int au_finfo_init(struct file *file, struct au_fidir *fidir) +{ + int err, lc_idx; + struct au_finfo *finfo; + struct dentry *dentry; + + err = -ENOMEM; + dentry = file->f_dentry; + finfo = au_cache_alloc_finfo(); + if (unlikely(!finfo)) + goto out; + + err = 0; + au_nfiles_inc(dentry->d_sb); + lc_idx = AuLcNonDir_FIINFO; + if (fidir) + lc_idx = AuLcDir_FIINFO; + au_rw_class(&finfo->fi_rwsem, au_lc_key + lc_idx); + au_rw_write_lock(&finfo->fi_rwsem); + finfo->fi_btop = -1; + finfo->fi_hdir = fidir; + atomic_set(&finfo->fi_generation, au_digen(dentry)); + /* smp_mb(); */ /* atomic_set */ + + file->private_data = finfo; + +out: + return err; +} --- linux-3.2.0.orig/ubuntu/aufs/module.c +++ linux-3.2.0/ubuntu/aufs/module.c @@ -0,0 +1,195 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * module global variables and operations + */ + +#include +#include +#include "aufs.h" + +void *au_kzrealloc(void *p, unsigned int nused, unsigned int new_sz, gfp_t gfp) +{ + if (new_sz <= nused) + return p; + + p = krealloc(p, new_sz, gfp); + if (p) + memset(p + nused, 0, new_sz - nused); + return p; +} + +/* ---------------------------------------------------------------------- */ + +/* + * aufs caches + */ +struct kmem_cache *au_cachep[AuCache_Last]; +static int __init au_cache_init(void) +{ + au_cachep[AuCache_DINFO] = AuCacheCtor(au_dinfo, au_di_init_once); + if (au_cachep[AuCache_DINFO]) + /* SLAB_DESTROY_BY_RCU */ + au_cachep[AuCache_ICNTNR] = AuCacheCtor(au_icntnr, + au_icntnr_init_once); + if (au_cachep[AuCache_ICNTNR]) + au_cachep[AuCache_FINFO] = AuCacheCtor(au_finfo, + au_fi_init_once); + if (au_cachep[AuCache_FINFO]) + au_cachep[AuCache_VDIR] = AuCache(au_vdir); + if (au_cachep[AuCache_VDIR]) + au_cachep[AuCache_DEHSTR] = AuCache(au_vdir_dehstr); + if (au_cachep[AuCache_DEHSTR]) + return 0; + + return -ENOMEM; +} + +static void au_cache_fin(void) +{ + int i; + + /* including AuCache_HNOTIFY */ + for (i = 0; i < AuCache_Last; i++) + if (au_cachep[i]) { + kmem_cache_destroy(au_cachep[i]); + au_cachep[i] = NULL; + } +} + +/* ---------------------------------------------------------------------- */ + +int au_dir_roflags; + +#ifdef CONFIG_AUFS_SBILIST +/* + * iterate_supers_type() doesn't protect us from + * remounting (branch management) + */ +struct au_splhead au_sbilist; +#endif + +struct lock_class_key au_lc_key[AuLcKey_Last]; + +/* + * functions for module interface. + */ +MODULE_LICENSE("GPL"); +/* MODULE_LICENSE("GPL v2"); */ +MODULE_AUTHOR("Junjiro R. Okajima "); +MODULE_DESCRIPTION(AUFS_NAME + " -- Advanced multi layered unification filesystem"); +MODULE_VERSION(AUFS_VERSION); + +/* this module parameter has no meaning when SYSFS is disabled */ +int sysaufs_brs = 1; +MODULE_PARM_DESC(brs, "use /fs/aufs/si_*/brN"); +module_param_named(brs, sysaufs_brs, int, S_IRUGO); + +/* ---------------------------------------------------------------------- */ + +static char au_esc_chars[0x20 + 3]; /* 0x01-0x20, backslash, del, and NULL */ + +int au_seq_path(struct seq_file *seq, struct path *path) +{ + return seq_path(seq, path, au_esc_chars); +} + +/* ---------------------------------------------------------------------- */ + +static int __init aufs_init(void) +{ + int err, i; + char *p; + + p = au_esc_chars; + for (i = 1; i <= ' '; i++) + *p++ = i; + *p++ = '\\'; + *p++ = '\x7f'; + *p = 0; + + au_dir_roflags = au_file_roflags(O_DIRECTORY | O_LARGEFILE); + + au_sbilist_init(); + sysaufs_brs_init(); + au_debug_init(); + au_dy_init(); + err = sysaufs_init(); + if (unlikely(err)) + goto out; + err = au_procfs_init(); + if (unlikely(err)) + goto out_sysaufs; + err = au_wkq_init(); + if (unlikely(err)) + goto out_procfs; + err = au_loopback_init(); + if (unlikely(err)) + goto out_wkq; + err = au_hnotify_init(); + if (unlikely(err)) + goto out_loopback; + err = au_sysrq_init(); + if (unlikely(err)) + goto out_hin; + err = au_cache_init(); + if (unlikely(err)) + goto out_sysrq; + err = register_filesystem(&aufs_fs_type); + if (unlikely(err)) + goto out_cache; + /* since we define pr_fmt, call printk directly */ + printk(KERN_INFO AUFS_NAME " " AUFS_VERSION "\n"); + goto out; /* success */ + +out_cache: + au_cache_fin(); +out_sysrq: + au_sysrq_fin(); +out_hin: + au_hnotify_fin(); +out_loopback: + au_loopback_fin(); +out_wkq: + au_wkq_fin(); +out_procfs: + au_procfs_fin(); +out_sysaufs: + sysaufs_fin(); + au_dy_fin(); +out: + return err; +} + +static void __exit aufs_exit(void) +{ + unregister_filesystem(&aufs_fs_type); + au_cache_fin(); + au_sysrq_fin(); + au_hnotify_fin(); + au_loopback_fin(); + au_wkq_fin(); + au_procfs_fin(); + sysaufs_fin(); + au_dy_fin(); +} + +module_init(aufs_init); +module_exit(aufs_exit); --- linux-3.2.0.orig/ubuntu/aufs/file.c +++ linux-3.2.0/ubuntu/aufs/file.c @@ -0,0 +1,673 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * handling file/dir, and address_space operation + */ + +#include +#include "aufs.h" + +/* drop flags for writing */ +unsigned int au_file_roflags(unsigned int flags) +{ + flags &= ~(O_WRONLY | O_RDWR | O_APPEND | O_CREAT | O_TRUNC); + flags |= O_RDONLY | O_NOATIME; + return flags; +} + +/* common functions to regular file and dir */ +struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags, + struct file *file) +{ + struct file *h_file; + struct dentry *h_dentry; + struct inode *h_inode; + struct super_block *sb; + struct au_branch *br; + struct path h_path; + int err, exec_flag; + + /* a race condition can happen between open and unlink/rmdir */ + h_file = ERR_PTR(-ENOENT); + h_dentry = au_h_dptr(dentry, bindex); + if (au_test_nfsd() && !h_dentry) + goto out; + h_inode = h_dentry->d_inode; + if (au_test_nfsd() && !h_inode) + goto out; + spin_lock(&h_dentry->d_lock); + err = (!d_unhashed(dentry) && d_unlinked(h_dentry)) + || !h_inode + /* || !dentry->d_inode->i_nlink */ + ; + spin_unlock(&h_dentry->d_lock); + if (unlikely(err)) + goto out; + + sb = dentry->d_sb; + br = au_sbr(sb, bindex); + h_file = ERR_PTR(-EACCES); + exec_flag = flags & __FMODE_EXEC; + if (exec_flag && (br->br_mnt->mnt_flags & MNT_NOEXEC)) + goto out; + + /* drop flags for writing */ + if (au_test_ro(sb, bindex, dentry->d_inode)) + flags = au_file_roflags(flags); + flags &= ~O_CREAT; + atomic_inc(&br->br_count); + h_path.dentry = h_dentry; + h_path.mnt = br->br_mnt; + if (!au_special_file(h_inode->i_mode)) + h_file = vfsub_dentry_open(&h_path, flags); + else { + /* this block depends upon the configuration */ + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + si_read_unlock(sb); + h_file = vfsub_dentry_open(&h_path, flags); + si_noflush_read_lock(sb); + fi_write_lock(file); + di_read_lock_child(dentry, AuLock_IR); + } + if (IS_ERR(h_file)) + goto out_br; + + if (exec_flag) { + err = deny_write_access(h_file); + if (unlikely(err)) { + fput(h_file); + h_file = ERR_PTR(err); + goto out_br; + } + } + fsnotify_open(h_file); + goto out; /* success */ + +out_br: + atomic_dec(&br->br_count); +out: + return h_file; +} + +int au_do_open(struct file *file, int (*open)(struct file *file, int flags), + struct au_fidir *fidir) +{ + int err; + struct dentry *dentry; + + err = au_finfo_init(file, fidir); + if (unlikely(err)) + goto out; + + dentry = file->f_dentry; + di_read_lock_child(dentry, AuLock_IR); + err = open(file, vfsub_file_flags(file)); + di_read_unlock(dentry, AuLock_IR); + + fi_write_unlock(file); + if (unlikely(err)) { + au_fi(file)->fi_hdir = NULL; + au_finfo_fin(file); + } + +out: + return err; +} + +int au_reopen_nondir(struct file *file) +{ + int err; + aufs_bindex_t bstart; + struct dentry *dentry; + struct file *h_file, *h_file_tmp; + + dentry = file->f_dentry; + AuDebugOn(au_special_file(dentry->d_inode->i_mode)); + bstart = au_dbstart(dentry); + h_file_tmp = NULL; + if (au_fbstart(file) == bstart) { + h_file = au_hf_top(file); + if (file->f_mode == h_file->f_mode) + return 0; /* success */ + h_file_tmp = h_file; + get_file(h_file_tmp); + au_set_h_fptr(file, bstart, NULL); + } + AuDebugOn(au_fi(file)->fi_hdir); + AuDebugOn(au_fbstart(file) < bstart); + + h_file = au_h_open(dentry, bstart, vfsub_file_flags(file) & ~O_TRUNC, + file); + err = PTR_ERR(h_file); + if (IS_ERR(h_file)) + goto out; /* todo: close all? */ + + err = 0; + au_set_fbstart(file, bstart); + au_set_h_fptr(file, bstart, h_file); + au_update_figen(file); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + +out: + if (h_file_tmp) + fput(h_file_tmp); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_reopen_wh(struct file *file, aufs_bindex_t btgt, + struct dentry *hi_wh) +{ + int err; + aufs_bindex_t bstart; + struct au_dinfo *dinfo; + struct dentry *h_dentry; + struct au_hdentry *hdp; + + dinfo = au_di(file->f_dentry); + AuRwMustWriteLock(&dinfo->di_rwsem); + + bstart = dinfo->di_bstart; + dinfo->di_bstart = btgt; + hdp = dinfo->di_hdentry; + h_dentry = hdp[0 + btgt].hd_dentry; + hdp[0 + btgt].hd_dentry = hi_wh; + err = au_reopen_nondir(file); + hdp[0 + btgt].hd_dentry = h_dentry; + dinfo->di_bstart = bstart; + + return err; +} + +static int au_ready_to_write_wh(struct file *file, loff_t len, + aufs_bindex_t bcpup) +{ + int err; + struct inode *inode, *h_inode; + struct dentry *dentry, *h_dentry, *hi_wh; + + dentry = file->f_dentry; + au_update_dbstart(dentry); + inode = dentry->d_inode; + h_inode = NULL; + if (au_dbstart(dentry) <= bcpup && au_dbend(dentry) >= bcpup) { + h_dentry = au_h_dptr(dentry, bcpup); + if (h_dentry) + h_inode = h_dentry->d_inode; + } + hi_wh = au_hi_wh(inode, bcpup); + if (!hi_wh && !h_inode) + err = au_sio_cpup_wh(dentry, bcpup, len, file); + else + /* already copied-up after unlink */ + err = au_reopen_wh(file, bcpup, hi_wh); + + if (!err + && inode->i_nlink > 1 + && au_opt_test(au_mntflags(dentry->d_sb), PLINK)) + au_plink_append(inode, bcpup, au_h_dptr(dentry, bcpup)); + + return err; +} + +/* + * prepare the @file for writing. + */ +int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin) +{ + int err; + aufs_bindex_t bstart, bcpup, dbstart; + struct dentry *dentry, *parent, *h_dentry; + struct inode *h_inode, *inode; + struct super_block *sb; + struct file *h_file; + + dentry = file->f_dentry; + sb = dentry->d_sb; + inode = dentry->d_inode; + AuDebugOn(au_special_file(inode->i_mode)); + bstart = au_fbstart(file); + err = au_test_ro(sb, bstart, inode); + if (!err && (au_hf_top(file)->f_mode & FMODE_WRITE)) { + err = au_pin(pin, dentry, bstart, AuOpt_UDBA_NONE, /*flags*/0); + goto out; + } + + /* need to cpup or reopen */ + parent = dget_parent(dentry); + di_write_lock_parent(parent); + err = AuWbrCopyup(au_sbi(sb), dentry); + bcpup = err; + if (unlikely(err < 0)) + goto out_dgrade; + err = 0; + + if (!d_unhashed(dentry) && !au_h_dptr(parent, bcpup)) { + err = au_cpup_dirs(dentry, bcpup); + if (unlikely(err)) + goto out_dgrade; + } + + err = au_pin(pin, dentry, bcpup, AuOpt_UDBA_NONE, + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + if (unlikely(err)) + goto out_dgrade; + + h_dentry = au_hf_top(file)->f_dentry; + h_inode = h_dentry->d_inode; + dbstart = au_dbstart(dentry); + if (dbstart <= bcpup) { + h_dentry = au_h_dptr(dentry, bcpup); + AuDebugOn(!h_dentry); + h_inode = h_dentry->d_inode; + AuDebugOn(!h_inode); + bstart = bcpup; + } + + if (dbstart <= bcpup /* just reopen */ + || !d_unhashed(dentry) /* copyup and reopen */ + ) { + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + h_file = au_h_open_pre(dentry, bstart); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else { + di_downgrade_lock(parent, AuLock_IR); + if (dbstart > bcpup) + err = au_sio_cpup_simple(dentry, bcpup, len, + AuCpup_DTIME); + if (!err) + err = au_reopen_nondir(file); + } + mutex_unlock(&h_inode->i_mutex); + au_h_open_post(dentry, bstart, h_file); + } else { /* copyup as wh and reopen */ + /* + * since writable hfsplus branch is not supported, + * h_open_pre/post() are unnecessary. + */ + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + err = au_ready_to_write_wh(file, len, bcpup); + di_downgrade_lock(parent, AuLock_IR); + mutex_unlock(&h_inode->i_mutex); + } + + if (!err) { + au_pin_set_parent_lflag(pin, /*lflag*/0); + goto out_dput; /* success */ + } + au_unpin(pin); + goto out_unlock; + +out_dgrade: + di_downgrade_lock(parent, AuLock_IR); +out_unlock: + di_read_unlock(parent, AuLock_IR); +out_dput: + dput(parent); +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +int au_do_flush(struct file *file, fl_owner_t id, + int (*flush)(struct file *file, fl_owner_t id)) +{ + int err; + struct dentry *dentry; + struct super_block *sb; + struct inode *inode; + + dentry = file->f_dentry; + sb = dentry->d_sb; + inode = dentry->d_inode; + si_noflush_read_lock(sb); + fi_read_lock(file); + ii_read_lock_child(inode); + + err = flush(file, id); + au_cpup_attr_timesizes(inode); + + ii_read_unlock(inode); + fi_read_unlock(file); + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_file_refresh_by_inode(struct file *file, int *need_reopen) +{ + int err; + aufs_bindex_t bstart; + struct au_pin pin; + struct au_finfo *finfo; + struct dentry *dentry, *parent, *hi_wh; + struct inode *inode; + struct super_block *sb; + + FiMustWriteLock(file); + + err = 0; + finfo = au_fi(file); + dentry = file->f_dentry; + sb = dentry->d_sb; + inode = dentry->d_inode; + bstart = au_ibstart(inode); + if (bstart == finfo->fi_btop || IS_ROOT(dentry)) + goto out; + + parent = dget_parent(dentry); + if (au_test_ro(sb, bstart, inode)) { + di_read_lock_parent(parent, !AuLock_IR); + err = AuWbrCopyup(au_sbi(sb), dentry); + bstart = err; + di_read_unlock(parent, !AuLock_IR); + if (unlikely(err < 0)) + goto out_parent; + err = 0; + } + + di_read_lock_parent(parent, AuLock_IR); + hi_wh = au_hi_wh(inode, bstart); + if (!S_ISDIR(inode->i_mode) + && au_opt_test(au_mntflags(sb), PLINK) + && au_plink_test(inode) + && !d_unhashed(dentry)) { + err = au_test_and_cpup_dirs(dentry, bstart); + if (unlikely(err)) + goto out_unlock; + + /* always superio. */ + err = au_pin(&pin, dentry, bstart, AuOpt_UDBA_NONE, + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + if (!err) + err = au_sio_cpup_simple(dentry, bstart, -1, + AuCpup_DTIME); + au_unpin(&pin); + } else if (hi_wh) { + /* already copied-up after unlink */ + err = au_reopen_wh(file, bstart, hi_wh); + *need_reopen = 0; + } + +out_unlock: + di_read_unlock(parent, AuLock_IR); +out_parent: + dput(parent); +out: + return err; +} + +static void au_do_refresh_dir(struct file *file) +{ + aufs_bindex_t bindex, bend, new_bindex, brid; + struct au_hfile *p, tmp, *q; + struct au_finfo *finfo; + struct super_block *sb; + struct au_fidir *fidir; + + FiMustWriteLock(file); + + sb = file->f_dentry->d_sb; + finfo = au_fi(file); + fidir = finfo->fi_hdir; + AuDebugOn(!fidir); + p = fidir->fd_hfile + finfo->fi_btop; + brid = p->hf_br->br_id; + bend = fidir->fd_bbot; + for (bindex = finfo->fi_btop; bindex <= bend; bindex++, p++) { + if (!p->hf_file) + continue; + + new_bindex = au_br_index(sb, p->hf_br->br_id); + if (new_bindex == bindex) + continue; + if (new_bindex < 0) { + au_set_h_fptr(file, bindex, NULL); + continue; + } + + /* swap two lower inode, and loop again */ + q = fidir->fd_hfile + new_bindex; + tmp = *q; + *q = *p; + *p = tmp; + if (tmp.hf_file) { + bindex--; + p--; + } + } + + p = fidir->fd_hfile; + if (!au_test_mmapped(file) && !d_unlinked(file->f_dentry)) { + bend = au_sbend(sb); + for (finfo->fi_btop = 0; finfo->fi_btop <= bend; + finfo->fi_btop++, p++) + if (p->hf_file) { + if (p->hf_file->f_dentry + && p->hf_file->f_dentry->d_inode) + break; + else + au_hfput(p, file); + } + } else { + bend = au_br_index(sb, brid); + for (finfo->fi_btop = 0; finfo->fi_btop < bend; + finfo->fi_btop++, p++) + if (p->hf_file) + au_hfput(p, file); + bend = au_sbend(sb); + } + + p = fidir->fd_hfile + bend; + for (fidir->fd_bbot = bend; fidir->fd_bbot >= finfo->fi_btop; + fidir->fd_bbot--, p--) + if (p->hf_file) { + if (p->hf_file->f_dentry + && p->hf_file->f_dentry->d_inode) + break; + else + au_hfput(p, file); + } + AuDebugOn(fidir->fd_bbot < finfo->fi_btop); +} + +/* + * after branch manipulating, refresh the file. + */ +static int refresh_file(struct file *file, int (*reopen)(struct file *file)) +{ + int err, need_reopen; + aufs_bindex_t bend, bindex; + struct dentry *dentry; + struct au_finfo *finfo; + struct au_hfile *hfile; + + dentry = file->f_dentry; + finfo = au_fi(file); + if (!finfo->fi_hdir) { + hfile = &finfo->fi_htop; + AuDebugOn(!hfile->hf_file); + bindex = au_br_index(dentry->d_sb, hfile->hf_br->br_id); + AuDebugOn(bindex < 0); + if (bindex != finfo->fi_btop) + au_set_fbstart(file, bindex); + } else { + err = au_fidir_realloc(finfo, au_sbend(dentry->d_sb) + 1); + if (unlikely(err)) + goto out; + au_do_refresh_dir(file); + } + + err = 0; + need_reopen = 1; + if (!au_test_mmapped(file)) + err = au_file_refresh_by_inode(file, &need_reopen); + if (!err && need_reopen && !d_unlinked(dentry)) + err = reopen(file); + if (!err) { + au_update_figen(file); + goto out; /* success */ + } + + /* error, close all lower files */ + if (finfo->fi_hdir) { + bend = au_fbend_dir(file); + for (bindex = au_fbstart(file); bindex <= bend; bindex++) + au_set_h_fptr(file, bindex, NULL); + } + +out: + return err; +} + +/* common function to regular file and dir */ +int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file), + int wlock) +{ + int err; + unsigned int sigen, figen; + aufs_bindex_t bstart; + unsigned char pseudo_link; + struct dentry *dentry; + struct inode *inode; + + err = 0; + dentry = file->f_dentry; + inode = dentry->d_inode; + AuDebugOn(au_special_file(inode->i_mode)); + sigen = au_sigen(dentry->d_sb); + fi_write_lock(file); + figen = au_figen(file); + di_write_lock_child(dentry); + bstart = au_dbstart(dentry); + pseudo_link = (bstart != au_ibstart(inode)); + if (sigen == figen && !pseudo_link && au_fbstart(file) == bstart) { + if (!wlock) { + di_downgrade_lock(dentry, AuLock_IR); + fi_downgrade_lock(file); + } + goto out; /* success */ + } + + AuDbg("sigen %d, figen %d\n", sigen, figen); + if (au_digen_test(dentry, sigen)) { + err = au_reval_dpath(dentry, sigen); + AuDebugOn(!err && au_digen_test(dentry, sigen)); + } + + if (!err) + err = refresh_file(file, reopen); + if (!err) { + if (!wlock) { + di_downgrade_lock(dentry, AuLock_IR); + fi_downgrade_lock(file); + } + } else { + di_write_unlock(dentry); + fi_write_unlock(file); + } + +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* cf. aufs_nopage() */ +/* for madvise(2) */ +static int aufs_readpage(struct file *file __maybe_unused, struct page *page) +{ + unlock_page(page); + return 0; +} + +/* it will never be called, but necessary to support O_DIRECT */ +static ssize_t aufs_direct_IO(int rw, struct kiocb *iocb, + const struct iovec *iov, loff_t offset, + unsigned long nr_segs) +{ BUG(); return 0; } + +/* + * it will never be called, but madvise and fadvise behaves differently + * when get_xip_mem is defined + */ +static int aufs_get_xip_mem(struct address_space *mapping, pgoff_t pgoff, + int create, void **kmem, unsigned long *pfn) +{ BUG(); return 0; } + +/* they will never be called. */ +#ifdef CONFIG_AUFS_DEBUG +static int aufs_write_begin(struct file *file, struct address_space *mapping, + loff_t pos, unsigned len, unsigned flags, + struct page **pagep, void **fsdata) +{ AuUnsupport(); return 0; } +static int aufs_write_end(struct file *file, struct address_space *mapping, + loff_t pos, unsigned len, unsigned copied, + struct page *page, void *fsdata) +{ AuUnsupport(); return 0; } +static int aufs_writepage(struct page *page, struct writeback_control *wbc) +{ AuUnsupport(); return 0; } + +static int aufs_set_page_dirty(struct page *page) +{ AuUnsupport(); return 0; } +static void aufs_invalidatepage(struct page *page, unsigned long offset) +{ AuUnsupport(); } +static int aufs_releasepage(struct page *page, gfp_t gfp) +{ AuUnsupport(); return 0; } +static int aufs_migratepage(struct address_space *mapping, struct page *newpage, + struct page *page) +{ AuUnsupport(); return 0; } +static int aufs_launder_page(struct page *page) +{ AuUnsupport(); return 0; } +static int aufs_is_partially_uptodate(struct page *page, + read_descriptor_t *desc, + unsigned long from) +{ AuUnsupport(); return 0; } +static int aufs_error_remove_page(struct address_space *mapping, + struct page *page) +{ AuUnsupport(); return 0; } +#endif /* CONFIG_AUFS_DEBUG */ + +const struct address_space_operations aufs_aop = { + .readpage = aufs_readpage, + .direct_IO = aufs_direct_IO, + .get_xip_mem = aufs_get_xip_mem, +#ifdef CONFIG_AUFS_DEBUG + .writepage = aufs_writepage, + /* no writepages, because of writepage */ + .set_page_dirty = aufs_set_page_dirty, + /* no readpages, because of readpage */ + .write_begin = aufs_write_begin, + .write_end = aufs_write_end, + /* no bmap, no block device */ + .invalidatepage = aufs_invalidatepage, + .releasepage = aufs_releasepage, + .migratepage = aufs_migratepage, + .launder_page = aufs_launder_page, + .is_partially_uptodate = aufs_is_partially_uptodate, + .error_remove_page = aufs_error_remove_page +#endif /* CONFIG_AUFS_DEBUG */ +}; --- linux-3.2.0.orig/ubuntu/aufs/sysaufs.c +++ linux-3.2.0/ubuntu/aufs/sysaufs.c @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sysfs interface and lifetime management + * they are necessary regardless sysfs is disabled. + */ + +#include +#include "aufs.h" + +unsigned long sysaufs_si_mask; +struct kset *sysaufs_kset; + +#define AuSiAttr(_name) { \ + .attr = { .name = __stringify(_name), .mode = 0444 }, \ + .show = sysaufs_si_##_name, \ +} + +static struct sysaufs_si_attr sysaufs_si_attr_xi_path = AuSiAttr(xi_path); +struct attribute *sysaufs_si_attrs[] = { + &sysaufs_si_attr_xi_path.attr, + NULL, +}; + +static const struct sysfs_ops au_sbi_ops = { + .show = sysaufs_si_show +}; + +static struct kobj_type au_sbi_ktype = { + .release = au_si_free, + .sysfs_ops = &au_sbi_ops, + .default_attrs = sysaufs_si_attrs +}; + +/* ---------------------------------------------------------------------- */ + +int sysaufs_si_init(struct au_sbinfo *sbinfo) +{ + int err; + + sbinfo->si_kobj.kset = sysaufs_kset; + /* cf. sysaufs_name() */ + err = kobject_init_and_add + (&sbinfo->si_kobj, &au_sbi_ktype, /*&sysaufs_kset->kobj*/NULL, + SysaufsSiNamePrefix "%lx", sysaufs_si_id(sbinfo)); + + dbgaufs_si_null(sbinfo); + if (!err) { + err = dbgaufs_si_init(sbinfo); + if (unlikely(err)) + kobject_put(&sbinfo->si_kobj); + } + return err; +} + +void sysaufs_fin(void) +{ + dbgaufs_fin(); + sysfs_remove_group(&sysaufs_kset->kobj, sysaufs_attr_group); + kset_unregister(sysaufs_kset); +} + +int __init sysaufs_init(void) +{ + int err; + + do { + get_random_bytes(&sysaufs_si_mask, sizeof(sysaufs_si_mask)); + } while (!sysaufs_si_mask); + + err = -EINVAL; + sysaufs_kset = kset_create_and_add(AUFS_NAME, NULL, fs_kobj); + if (unlikely(!sysaufs_kset)) + goto out; + err = PTR_ERR(sysaufs_kset); + if (IS_ERR(sysaufs_kset)) + goto out; + err = sysfs_create_group(&sysaufs_kset->kobj, sysaufs_attr_group); + if (unlikely(err)) { + kset_unregister(sysaufs_kset); + goto out; + } + + err = dbgaufs_init(); + if (unlikely(err)) + sysaufs_fin(); +out: + return err; +} --- linux-3.2.0.orig/ubuntu/aufs/hfsplus.c +++ linux-3.2.0/ubuntu/aufs/hfsplus.c @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2010-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * special support for filesystems which aqucires an inode mutex + * at final closing a file, eg, hfsplus. + * + * This trick is very simple and stupid, just to open the file before really + * neceeary open to tell hfsplus that this is not the final closing. + * The caller should call au_h_open_pre() after acquiring the inode mutex, + * and au_h_open_post() after releasing it. + */ + +#include "aufs.h" + +struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex) +{ + struct file *h_file; + struct dentry *h_dentry; + + h_dentry = au_h_dptr(dentry, bindex); + AuDebugOn(!h_dentry); + AuDebugOn(!h_dentry->d_inode); + IMustLock(h_dentry->d_inode); + + h_file = NULL; + if (au_test_hfsplus(h_dentry->d_sb) + && S_ISREG(h_dentry->d_inode->i_mode)) + h_file = au_h_open(dentry, bindex, + O_RDONLY | O_NOATIME | O_LARGEFILE, + /*file*/NULL); + return h_file; +} + +void au_h_open_post(struct dentry *dentry, aufs_bindex_t bindex, + struct file *h_file) +{ + if (h_file) { + fput(h_file); + au_sbr_put(dentry->d_sb, bindex); + } +} --- linux-3.2.0.orig/ubuntu/aufs/f_op_sp.c +++ linux-3.2.0/ubuntu/aufs/f_op_sp.c @@ -0,0 +1,298 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * file operations for special files. + * while they exist in aufs virtually, + * their file I/O is handled out of aufs. + */ + +#include "aufs.h" + +static ssize_t aufs_aio_read_sp(struct kiocb *kio, const struct iovec *iov, + unsigned long nv, loff_t pos) +{ + ssize_t err; + aufs_bindex_t bstart; + unsigned char wbr; + struct file *file, *h_file; + struct super_block *sb; + + file = kio->ki_filp; + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + fi_read_lock(file); + bstart = au_fbstart(file); + h_file = au_hf_top(file); + fi_read_unlock(file); + wbr = !!au_br_writable(au_sbr(sb, bstart)->br_perm); + si_read_unlock(sb); + + /* do not change the file in kio */ + AuDebugOn(!h_file->f_op || !h_file->f_op->aio_read); + err = h_file->f_op->aio_read(kio, iov, nv, pos); + if (err > 0 && wbr) + file_accessed(h_file); + + return err; +} + +static ssize_t aufs_aio_write_sp(struct kiocb *kio, const struct iovec *iov, + unsigned long nv, loff_t pos) +{ + ssize_t err; + aufs_bindex_t bstart; + unsigned char wbr; + struct super_block *sb; + struct file *file, *h_file; + + file = kio->ki_filp; + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + fi_read_lock(file); + bstart = au_fbstart(file); + h_file = au_hf_top(file); + fi_read_unlock(file); + wbr = !!au_br_writable(au_sbr(sb, bstart)->br_perm); + si_read_unlock(sb); + + /* do not change the file in kio */ + AuDebugOn(!h_file->f_op || !h_file->f_op->aio_write); + err = h_file->f_op->aio_write(kio, iov, nv, pos); + if (err > 0 && wbr) + file_update_time(h_file); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_release_sp(struct inode *inode, struct file *file) +{ + int err; + struct file *h_file; + + fi_read_lock(file); + h_file = au_hf_top(file); + fi_read_unlock(file); + /* close this fifo in aufs */ + err = h_file->f_op->release(inode, file); /* ignore */ + aufs_release_nondir(inode, file); /* ignore */ + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* currently, support only FIFO */ +enum { + AuSp_FIFO, AuSp_FIFO_R, AuSp_FIFO_W, AuSp_FIFO_RW, + /* AuSp_SOCK, AuSp_CHR, AuSp_BLK, */ + AuSp_Last +}; +static int aufs_open_sp(struct inode *inode, struct file *file); +static struct au_sp_fop { + int done; + struct file_operations fop; /* not 'const' */ + spinlock_t spin; +} au_sp_fop[AuSp_Last] = { + [AuSp_FIFO] = { + .fop = { + .owner = THIS_MODULE, + .open = aufs_open_sp + } + } +}; + +static void au_init_fop_sp(struct file *file) +{ + struct au_sp_fop *p; + int i; + struct file *h_file; + + p = au_sp_fop; + if (unlikely(!p->done)) { + /* initialize first time only */ + static DEFINE_SPINLOCK(spin); + + spin_lock(&spin); + if (!p->done) { + BUILD_BUG_ON(sizeof(au_sp_fop)/sizeof(*au_sp_fop) + != AuSp_Last); + for (i = 0; i < AuSp_Last; i++) + spin_lock_init(&p[i].spin); + p->done = 1; + } + spin_unlock(&spin); + } + + switch (file->f_mode & (FMODE_READ | FMODE_WRITE)) { + case FMODE_READ: + i = AuSp_FIFO_R; + break; + case FMODE_WRITE: + i = AuSp_FIFO_W; + break; + case FMODE_READ | FMODE_WRITE: + i = AuSp_FIFO_RW; + break; + default: + BUG(); + } + + p += i; + if (unlikely(!p->done)) { + /* initialize first time only */ + h_file = au_hf_top(file); + spin_lock(&p->spin); + if (!p->done) { + p->fop = *h_file->f_op; + p->fop.owner = THIS_MODULE; + if (p->fop.aio_read) + p->fop.aio_read = aufs_aio_read_sp; + if (p->fop.aio_write) + p->fop.aio_write = aufs_aio_write_sp; + p->fop.release = aufs_release_sp; + p->done = 1; + } + spin_unlock(&p->spin); + } + file->f_op = &p->fop; +} + +static int au_cpup_sp(struct dentry *dentry) +{ + int err; + aufs_bindex_t bcpup; + struct au_pin pin; + struct au_wr_dir_args wr_dir_args = { + .force_btgt = -1, + .flags = 0 + }; + + AuDbg("%.*s\n", AuDLNPair(dentry)); + + di_read_unlock(dentry, AuLock_IR); + di_write_lock_child(dentry); + err = au_wr_dir(dentry, /*src_dentry*/NULL, &wr_dir_args); + if (unlikely(err < 0)) + goto out; + bcpup = err; + err = 0; + if (bcpup == au_dbstart(dentry)) + goto out; /* success */ + + err = au_pin(&pin, dentry, bcpup, au_opt_udba(dentry->d_sb), + AuPin_MNT_WRITE); + if (!err) { + err = au_sio_cpup_simple(dentry, bcpup, -1, AuCpup_DTIME); + au_unpin(&pin); + } + +out: + di_downgrade_lock(dentry, AuLock_IR); + return err; +} + +static int au_do_open_sp(struct file *file, int flags) +{ + int err; + struct dentry *dentry; + struct super_block *sb; + struct file *h_file; + struct inode *h_inode; + + dentry = file->f_dentry; + AuDbg("%.*s\n", AuDLNPair(dentry)); + + /* + * try copying-up. + * operate on the ro branch is not an error. + */ + au_cpup_sp(dentry); /* ignore */ + + /* prepare h_file */ + err = au_do_open_nondir(file, vfsub_file_flags(file)); + if (unlikely(err)) + goto out; + + sb = dentry->d_sb; + h_file = au_hf_top(file); + h_inode = h_file->f_dentry->d_inode; + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + si_read_unlock(sb); + /* open this fifo in aufs */ + err = h_inode->i_fop->open(file->f_dentry->d_inode, file); + si_noflush_read_lock(sb); + fi_write_lock(file); + di_read_lock_child(dentry, AuLock_IR); + if (!err) + au_init_fop_sp(file); + +out: + return err; +} + +static int aufs_open_sp(struct inode *inode, struct file *file) +{ + int err; + struct super_block *sb; + + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + err = au_do_open(file, au_do_open_sp, /*fidir*/NULL); + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +void au_init_special_fop(struct inode *inode, umode_t mode, dev_t rdev) +{ + init_special_inode(inode, mode, rdev); + + switch (mode & S_IFMT) { + case S_IFIFO: + inode->i_fop = &au_sp_fop[AuSp_FIFO].fop; + /*FALLTHROUGH*/ + case S_IFCHR: + case S_IFBLK: + case S_IFSOCK: + break; + default: + AuDebugOn(1); + } +} + +int au_special_file(umode_t mode) +{ + int ret; + + ret = 0; + switch (mode & S_IFMT) { + case S_IFIFO: +#if 0 + case S_IFCHR: + case S_IFBLK: + case S_IFSOCK: +#endif + ret = 1; + } + + return ret; +} --- linux-3.2.0.orig/ubuntu/aufs/dentry.h +++ linux-3.2.0/ubuntu/aufs/dentry.h @@ -0,0 +1,237 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * lookup and dentry operations + */ + +#ifndef __AUFS_DENTRY_H__ +#define __AUFS_DENTRY_H__ + +#ifdef __KERNEL__ + +#include +#include "rwsem.h" + +struct au_hdentry { + struct dentry *hd_dentry; + aufs_bindex_t hd_id; +}; + +struct au_dinfo { + atomic_t di_generation; + + struct au_rwsem di_rwsem; + aufs_bindex_t di_bstart, di_bend, di_bwh, di_bdiropq; + struct au_hdentry *di_hdentry; +} ____cacheline_aligned_in_smp; + +/* ---------------------------------------------------------------------- */ + +/* dentry.c */ +extern const struct dentry_operations aufs_dop; +struct au_branch; +struct dentry *au_lkup_one(struct qstr *name, struct dentry *h_parent, + struct au_branch *br, struct nameidata *nd); +struct dentry *au_sio_lkup_one(struct qstr *name, struct dentry *parent, + struct au_branch *br); +int au_h_verify(struct dentry *h_dentry, unsigned int udba, struct inode *h_dir, + struct dentry *h_parent, struct au_branch *br); + +int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type, + struct nameidata *nd); +int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex); +int au_refresh_dentry(struct dentry *dentry, struct dentry *parent); +int au_reval_dpath(struct dentry *dentry, unsigned int sigen); + +/* dinfo.c */ +void au_di_init_once(void *_di); +struct au_dinfo *au_di_alloc(struct super_block *sb, unsigned int lsc); +void au_di_free(struct au_dinfo *dinfo); +void au_di_swap(struct au_dinfo *a, struct au_dinfo *b); +void au_di_cp(struct au_dinfo *dst, struct au_dinfo *src); +int au_di_init(struct dentry *dentry); +void au_di_fin(struct dentry *dentry); +int au_di_realloc(struct au_dinfo *dinfo, int nbr); + +void di_read_lock(struct dentry *d, int flags, unsigned int lsc); +void di_read_unlock(struct dentry *d, int flags); +void di_downgrade_lock(struct dentry *d, int flags); +void di_write_lock(struct dentry *d, unsigned int lsc); +void di_write_unlock(struct dentry *d); +void di_write_lock2_child(struct dentry *d1, struct dentry *d2, int isdir); +void di_write_lock2_parent(struct dentry *d1, struct dentry *d2, int isdir); +void di_write_unlock2(struct dentry *d1, struct dentry *d2); + +struct dentry *au_h_dptr(struct dentry *dentry, aufs_bindex_t bindex); +struct dentry *au_h_d_alias(struct dentry *dentry, aufs_bindex_t bindex); +aufs_bindex_t au_dbtail(struct dentry *dentry); +aufs_bindex_t au_dbtaildir(struct dentry *dentry); + +void au_set_h_dptr(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_dentry); +int au_digen_test(struct dentry *dentry, unsigned int sigen); +int au_dbrange_test(struct dentry *dentry); +void au_update_digen(struct dentry *dentry); +void au_update_dbrange(struct dentry *dentry, int do_put_zero); +void au_update_dbstart(struct dentry *dentry); +void au_update_dbend(struct dentry *dentry); +int au_find_dbindex(struct dentry *dentry, struct dentry *h_dentry); + +/* ---------------------------------------------------------------------- */ + +static inline struct au_dinfo *au_di(struct dentry *dentry) +{ + return dentry->d_fsdata; +} + +/* ---------------------------------------------------------------------- */ + +/* lock subclass for dinfo */ +enum { + AuLsc_DI_CHILD, /* child first */ + AuLsc_DI_CHILD2, /* rename(2), link(2), and cpup at hnotify */ + AuLsc_DI_CHILD3, /* copyup dirs */ + AuLsc_DI_PARENT, + AuLsc_DI_PARENT2, + AuLsc_DI_PARENT3, + AuLsc_DI_TMP /* temp for replacing dinfo */ +}; + +/* + * di_read_lock_child, di_write_lock_child, + * di_read_lock_child2, di_write_lock_child2, + * di_read_lock_child3, di_write_lock_child3, + * di_read_lock_parent, di_write_lock_parent, + * di_read_lock_parent2, di_write_lock_parent2, + * di_read_lock_parent3, di_write_lock_parent3, + */ +#define AuReadLockFunc(name, lsc) \ +static inline void di_read_lock_##name(struct dentry *d, int flags) \ +{ di_read_lock(d, flags, AuLsc_DI_##lsc); } + +#define AuWriteLockFunc(name, lsc) \ +static inline void di_write_lock_##name(struct dentry *d) \ +{ di_write_lock(d, AuLsc_DI_##lsc); } + +#define AuRWLockFuncs(name, lsc) \ + AuReadLockFunc(name, lsc) \ + AuWriteLockFunc(name, lsc) + +AuRWLockFuncs(child, CHILD); +AuRWLockFuncs(child2, CHILD2); +AuRWLockFuncs(child3, CHILD3); +AuRWLockFuncs(parent, PARENT); +AuRWLockFuncs(parent2, PARENT2); +AuRWLockFuncs(parent3, PARENT3); + +#undef AuReadLockFunc +#undef AuWriteLockFunc +#undef AuRWLockFuncs + +#define DiMustNoWaiters(d) AuRwMustNoWaiters(&au_di(d)->di_rwsem) +#define DiMustAnyLock(d) AuRwMustAnyLock(&au_di(d)->di_rwsem) +#define DiMustWriteLock(d) AuRwMustWriteLock(&au_di(d)->di_rwsem) + +/* ---------------------------------------------------------------------- */ + +/* todo: memory barrier? */ +static inline unsigned int au_digen(struct dentry *d) +{ + return atomic_read(&au_di(d)->di_generation); +} + +static inline void au_h_dentry_init(struct au_hdentry *hdentry) +{ + hdentry->hd_dentry = NULL; +} + +static inline void au_hdput(struct au_hdentry *hd) +{ + if (hd) + dput(hd->hd_dentry); +} + +static inline aufs_bindex_t au_dbstart(struct dentry *dentry) +{ + DiMustAnyLock(dentry); + return au_di(dentry)->di_bstart; +} + +static inline aufs_bindex_t au_dbend(struct dentry *dentry) +{ + DiMustAnyLock(dentry); + return au_di(dentry)->di_bend; +} + +static inline aufs_bindex_t au_dbwh(struct dentry *dentry) +{ + DiMustAnyLock(dentry); + return au_di(dentry)->di_bwh; +} + +static inline aufs_bindex_t au_dbdiropq(struct dentry *dentry) +{ + DiMustAnyLock(dentry); + return au_di(dentry)->di_bdiropq; +} + +/* todo: hard/soft set? */ +static inline void au_set_dbstart(struct dentry *dentry, aufs_bindex_t bindex) +{ + DiMustWriteLock(dentry); + au_di(dentry)->di_bstart = bindex; +} + +static inline void au_set_dbend(struct dentry *dentry, aufs_bindex_t bindex) +{ + DiMustWriteLock(dentry); + au_di(dentry)->di_bend = bindex; +} + +static inline void au_set_dbwh(struct dentry *dentry, aufs_bindex_t bindex) +{ + DiMustWriteLock(dentry); + /* dbwh can be outside of bstart - bend range */ + au_di(dentry)->di_bwh = bindex; +} + +static inline void au_set_dbdiropq(struct dentry *dentry, aufs_bindex_t bindex) +{ + DiMustWriteLock(dentry); + au_di(dentry)->di_bdiropq = bindex; +} + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_HNOTIFY +static inline void au_digen_dec(struct dentry *d) +{ + atomic_dec(&au_di(d)->di_generation); +} + +static inline void au_hn_di_reinit(struct dentry *dentry) +{ + dentry->d_fsdata = NULL; +} +#else +AuStubVoid(au_hn_di_reinit, struct dentry *dentry __maybe_unused) +#endif /* CONFIG_AUFS_HNOTIFY */ + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DENTRY_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/dbgaufs.h +++ linux-3.2.0/ubuntu/aufs/dbgaufs.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * debugfs interface + */ + +#ifndef __DBGAUFS_H__ +#define __DBGAUFS_H__ + +#ifdef __KERNEL__ + +struct super_block; +struct au_sbinfo; + +#ifdef CONFIG_DEBUG_FS +/* dbgaufs.c */ +void dbgaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex); +void dbgaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex); +void dbgaufs_si_fin(struct au_sbinfo *sbinfo); +int dbgaufs_si_init(struct au_sbinfo *sbinfo); +void dbgaufs_fin(void); +int __init dbgaufs_init(void); +#else +AuStubVoid(dbgaufs_brs_del, struct super_block *sb, aufs_bindex_t bindex) +AuStubVoid(dbgaufs_brs_add, struct super_block *sb, aufs_bindex_t bindex) +AuStubVoid(dbgaufs_si_fin, struct au_sbinfo *sbinfo) +AuStubInt0(dbgaufs_si_init, struct au_sbinfo *sbinfo) +AuStubVoid(dbgaufs_fin, void) +AuStubInt0(__init dbgaufs_init, void) +#endif /* CONFIG_DEBUG_FS */ + +#endif /* __KERNEL__ */ +#endif /* __DBGAUFS_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/loop.c +++ linux-3.2.0/ubuntu/aufs/loop.c @@ -0,0 +1,133 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * support for loopback block device as a branch + */ + +#include +#include "aufs.h" + +/* + * test if two lower dentries have overlapping branches. + */ +int au_test_loopback_overlap(struct super_block *sb, struct dentry *h_adding) +{ + struct super_block *h_sb; + struct loop_device *l; + + h_sb = h_adding->d_sb; + if (MAJOR(h_sb->s_dev) != LOOP_MAJOR) + return 0; + + l = h_sb->s_bdev->bd_disk->private_data; + h_adding = l->lo_backing_file->f_dentry; + /* + * h_adding can be local NFS. + * in this case aufs cannot detect the loop. + */ + if (unlikely(h_adding->d_sb == sb)) + return 1; + return !!au_test_subdir(h_adding, sb->s_root); +} + +/* true if a kernel thread named 'loop[0-9].*' accesses a file */ +int au_test_loopback_kthread(void) +{ + int ret; + struct task_struct *tsk = current; + + ret = 0; + if (tsk->flags & PF_KTHREAD) { + const char c = tsk->comm[4]; + ret = ('0' <= c && c <= '9' + && !strncmp(tsk->comm, "loop", 4)); + } + + return ret; +} + +/* ---------------------------------------------------------------------- */ + +#define au_warn_loopback_step 16 +static int au_warn_loopback_nelem = au_warn_loopback_step; +static unsigned long *au_warn_loopback_array; + +void au_warn_loopback(struct super_block *h_sb) +{ + int i, new_nelem; + unsigned long *a, magic; + static DEFINE_SPINLOCK(spin); + + magic = h_sb->s_magic; + spin_lock(&spin); + a = au_warn_loopback_array; + for (i = 0; i < au_warn_loopback_nelem && *a; i++) + if (a[i] == magic) { + spin_unlock(&spin); + return; + } + + /* h_sb is new to us, print it */ + if (i < au_warn_loopback_nelem) { + a[i] = magic; + goto pr; + } + + /* expand the array */ + new_nelem = au_warn_loopback_nelem + au_warn_loopback_step; + a = au_kzrealloc(au_warn_loopback_array, + au_warn_loopback_nelem * sizeof(unsigned long), + new_nelem * sizeof(unsigned long), GFP_ATOMIC); + if (a) { + au_warn_loopback_nelem = new_nelem; + au_warn_loopback_array = a; + a[i] = magic; + goto pr; + } + + spin_unlock(&spin); + AuWarn1("realloc failed, ignored\n"); + return; + +pr: + spin_unlock(&spin); + pr_warning("you may want to try another patch for loopback file " + "on %s(0x%lx) branch\n", au_sbtype(h_sb), magic); +} + +int au_loopback_init(void) +{ + int err; + struct super_block *sb __maybe_unused; + + AuDebugOn(sizeof(sb->s_magic) != sizeof(unsigned long)); + + err = 0; + au_warn_loopback_array = kcalloc(au_warn_loopback_step, + sizeof(unsigned long), GFP_NOFS); + if (unlikely(!au_warn_loopback_array)) + err = -ENOMEM; + + return err; +} + +void au_loopback_fin(void) +{ + kfree(au_warn_loopback_array); +} --- linux-3.2.0.orig/ubuntu/aufs/f_op.c +++ linux-3.2.0/ubuntu/aufs/f_op.c @@ -0,0 +1,729 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * file and vm operations + */ + +#include +#include +#include +#include "aufs.h" + +int au_do_open_nondir(struct file *file, int flags) +{ + int err; + aufs_bindex_t bindex; + struct file *h_file; + struct dentry *dentry; + struct au_finfo *finfo; + + FiMustWriteLock(file); + + dentry = file->f_dentry; + err = au_d_alive(dentry); + if (unlikely(err)) + goto out; + + finfo = au_fi(file); + memset(&finfo->fi_htop, 0, sizeof(finfo->fi_htop)); + atomic_set(&finfo->fi_mmapped, 0); + bindex = au_dbstart(dentry); + h_file = au_h_open(dentry, bindex, flags, file); + if (IS_ERR(h_file)) + err = PTR_ERR(h_file); + else { + au_set_fbstart(file, bindex); + au_set_h_fptr(file, bindex, h_file); + au_update_figen(file); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + } + +out: + return err; +} + +static int aufs_open_nondir(struct inode *inode __maybe_unused, + struct file *file) +{ + int err; + struct super_block *sb; + + AuDbg("%.*s, f_flags 0x%x, f_mode 0x%x\n", + AuDLNPair(file->f_dentry), vfsub_file_flags(file), + file->f_mode); + + sb = file->f_dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH); + err = au_do_open(file, au_do_open_nondir, /*fidir*/NULL); + si_read_unlock(sb); + return err; +} + +int aufs_release_nondir(struct inode *inode __maybe_unused, struct file *file) +{ + struct au_finfo *finfo; + aufs_bindex_t bindex; + + finfo = au_fi(file); + bindex = finfo->fi_btop; + if (bindex >= 0) { + /* remove me from sb->s_files */ + file_sb_list_del(file); + au_set_h_fptr(file, bindex, NULL); + } + + au_finfo_fin(file); + return 0; +} + +/* ---------------------------------------------------------------------- */ + +static int au_do_flush_nondir(struct file *file, fl_owner_t id) +{ + int err; + struct file *h_file; + + err = 0; + h_file = au_hf_top(file); + if (h_file) + err = vfsub_flush(h_file, id); + return err; +} + +static int aufs_flush_nondir(struct file *file, fl_owner_t id) +{ + return au_do_flush(file, id, au_do_flush_nondir); +} + +/* ---------------------------------------------------------------------- */ +/* + * read and write functions acquire [fdi]_rwsem once, but release before + * mmap_sem. This is because to stop a race condition between mmap(2). + * Releasing these aufs-rwsem should be safe, no branch-mamagement (by keeping + * si_rwsem), no harmful copy-up should happen. Actually copy-up may happen in + * read functions after [fdi]_rwsem are released, but it should be harmless. + */ + +static ssize_t aufs_read(struct file *file, char __user *buf, size_t count, + loff_t *ppos) +{ + ssize_t err; + struct dentry *dentry; + struct file *h_file; + struct super_block *sb; + + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0); + if (unlikely(err)) + goto out; + + h_file = au_hf_top(file); + get_file(h_file); + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + + /* filedata may be obsoleted by concurrent copyup, but no problem */ + err = vfsub_read_u(h_file, buf, count, ppos); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + /* update without lock, I don't think it a problem */ + fsstack_copy_attr_atime(dentry->d_inode, h_file->f_dentry->d_inode); + fput(h_file); + +out: + si_read_unlock(sb); + return err; +} + +/* + * todo: very ugly + * it locks both of i_mutex and si_rwsem for read in safe. + * if the plink maintenance mode continues forever (that is the problem), + * may loop forever. + */ +static void au_mtx_and_read_lock(struct inode *inode) +{ + int err; + struct super_block *sb = inode->i_sb; + + while (1) { + mutex_lock(&inode->i_mutex); + err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (!err) + break; + mutex_unlock(&inode->i_mutex); + si_read_lock(sb, AuLock_NOPLMW); + si_read_unlock(sb); + } +} + +static ssize_t aufs_write(struct file *file, const char __user *ubuf, + size_t count, loff_t *ppos) +{ + ssize_t err; + struct au_pin pin; + struct dentry *dentry; + struct super_block *sb; + struct inode *inode; + struct file *h_file; + char __user *buf = (char __user *)ubuf; + + dentry = file->f_dentry; + sb = dentry->d_sb; + inode = dentry->d_inode; + au_mtx_and_read_lock(inode); + + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + err = au_ready_to_write(file, -1, &pin); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) { + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + goto out; + } + + h_file = au_hf_top(file); + get_file(h_file); + au_unpin(&pin); + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + + err = vfsub_write_u(h_file, buf, count, ppos); + ii_write_lock_child(inode); + au_cpup_attr_timesizes(inode); + inode->i_mode = h_file->f_dentry->d_inode->i_mode; + ii_write_unlock(inode); + fput(h_file); + +out: + si_read_unlock(sb); + mutex_unlock(&inode->i_mutex); + return err; +} + +static ssize_t au_do_aio(struct file *h_file, int rw, struct kiocb *kio, + const struct iovec *iov, unsigned long nv, loff_t pos) +{ + ssize_t err; + struct file *file; + ssize_t (*func)(struct kiocb *, const struct iovec *, unsigned long, + loff_t); + + err = security_file_permission(h_file, rw); + if (unlikely(err)) + goto out; + + err = -ENOSYS; + func = NULL; + if (rw == MAY_READ) + func = h_file->f_op->aio_read; + else if (rw == MAY_WRITE) + func = h_file->f_op->aio_write; + if (func) { + file = kio->ki_filp; + kio->ki_filp = h_file; + lockdep_off(); + err = func(kio, iov, nv, pos); + lockdep_on(); + kio->ki_filp = file; + } else + /* currently there is no such fs */ + WARN_ON_ONCE(1); + +out: + return err; +} + +static ssize_t aufs_aio_read(struct kiocb *kio, const struct iovec *iov, + unsigned long nv, loff_t pos) +{ + ssize_t err; + struct file *file, *h_file; + struct dentry *dentry; + struct super_block *sb; + + file = kio->ki_filp; + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0); + if (unlikely(err)) + goto out; + + h_file = au_hf_top(file); + get_file(h_file); + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + + err = au_do_aio(h_file, MAY_READ, kio, iov, nv, pos); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + /* update without lock, I don't think it a problem */ + fsstack_copy_attr_atime(dentry->d_inode, h_file->f_dentry->d_inode); + fput(h_file); + +out: + si_read_unlock(sb); + return err; +} + +static ssize_t aufs_aio_write(struct kiocb *kio, const struct iovec *iov, + unsigned long nv, loff_t pos) +{ + ssize_t err; + struct au_pin pin; + struct dentry *dentry; + struct inode *inode; + struct file *file, *h_file; + struct super_block *sb; + + file = kio->ki_filp; + dentry = file->f_dentry; + sb = dentry->d_sb; + inode = dentry->d_inode; + au_mtx_and_read_lock(inode); + + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + err = au_ready_to_write(file, -1, &pin); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) { + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + goto out; + } + + h_file = au_hf_top(file); + get_file(h_file); + au_unpin(&pin); + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + + err = au_do_aio(h_file, MAY_WRITE, kio, iov, nv, pos); + ii_write_lock_child(inode); + au_cpup_attr_timesizes(inode); + inode->i_mode = h_file->f_dentry->d_inode->i_mode; + ii_write_unlock(inode); + fput(h_file); + +out: + si_read_unlock(sb); + mutex_unlock(&inode->i_mutex); + return err; +} + +static ssize_t aufs_splice_read(struct file *file, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) +{ + ssize_t err; + struct file *h_file; + struct dentry *dentry; + struct super_block *sb; + + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0); + if (unlikely(err)) + goto out; + + err = -EINVAL; + h_file = au_hf_top(file); + get_file(h_file); + if (au_test_loopback_kthread()) { + au_warn_loopback(h_file->f_dentry->d_sb); + if (file->f_mapping != h_file->f_mapping) { + file->f_mapping = h_file->f_mapping; + smp_mb(); /* unnecessary? */ + } + } + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + + err = vfsub_splice_to(h_file, ppos, pipe, len, flags); + /* todo: necessasry? */ + /* file->f_ra = h_file->f_ra; */ + /* update without lock, I don't think it a problem */ + fsstack_copy_attr_atime(dentry->d_inode, h_file->f_dentry->d_inode); + fput(h_file); + +out: + si_read_unlock(sb); + return err; +} + +static ssize_t +aufs_splice_write(struct pipe_inode_info *pipe, struct file *file, loff_t *ppos, + size_t len, unsigned int flags) +{ + ssize_t err; + struct au_pin pin; + struct dentry *dentry; + struct inode *inode; + struct file *h_file; + struct super_block *sb; + + dentry = file->f_dentry; + sb = dentry->d_sb; + inode = dentry->d_inode; + au_mtx_and_read_lock(inode); + + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + err = au_ready_to_write(file, -1, &pin); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) { + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + goto out; + } + + h_file = au_hf_top(file); + get_file(h_file); + au_unpin(&pin); + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + + err = vfsub_splice_from(pipe, h_file, ppos, len, flags); + ii_write_lock_child(inode); + au_cpup_attr_timesizes(inode); + inode->i_mode = h_file->f_dentry->d_inode->i_mode; + ii_write_unlock(inode); + fput(h_file); + +out: + si_read_unlock(sb); + mutex_unlock(&inode->i_mutex); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * The locking order around current->mmap_sem. + * - in most and regular cases + * file I/O syscall -- aufs_read() or something + * -- si_rwsem for read -- mmap_sem + * (Note that [fdi]i_rwsem are released before mmap_sem). + * - in mmap case + * mmap(2) -- mmap_sem -- aufs_mmap() -- si_rwsem for read -- [fdi]i_rwsem + * This AB-BA order is definitly bad, but is not a problem since "si_rwsem for + * read" allows muliple processes to acquire it and [fdi]i_rwsem are not held in + * file I/O. Aufs needs to stop lockdep in aufs_mmap() though. + * It means that when aufs acquires si_rwsem for write, the process should never + * acquire mmap_sem. + * + * Actually aufs_readdir() holds [fdi]i_rwsem before mmap_sem, but this is not a + * problem either since any directory is not able to be mmap-ed. + * The similar scenario is applied to aufs_readlink() too. + */ + +/* cf. linux/include/linux/mman.h: calc_vm_prot_bits() */ +#define AuConv_VM_PROT(f, b) _calc_vm_trans(f, VM_##b, PROT_##b) + +static unsigned long au_arch_prot_conv(unsigned long flags) +{ + /* currently ppc64 only */ +#ifdef CONFIG_PPC64 + /* cf. linux/arch/powerpc/include/asm/mman.h */ + AuDebugOn(arch_calc_vm_prot_bits(-1) != VM_SAO); + return AuConv_VM_PROT(flags, SAO); +#else + AuDebugOn(arch_calc_vm_prot_bits(-1)); + return 0; +#endif +} + +static unsigned long au_prot_conv(unsigned long flags) +{ + return AuConv_VM_PROT(flags, READ) + | AuConv_VM_PROT(flags, WRITE) + | AuConv_VM_PROT(flags, EXEC) + | au_arch_prot_conv(flags); +} + +/* cf. linux/include/linux/mman.h: calc_vm_flag_bits() */ +#define AuConv_VM_MAP(f, b) _calc_vm_trans(f, VM_##b, MAP_##b) + +static unsigned long au_flag_conv(unsigned long flags) +{ + return AuConv_VM_MAP(flags, GROWSDOWN) + | AuConv_VM_MAP(flags, DENYWRITE) + | AuConv_VM_MAP(flags, EXECUTABLE) + | AuConv_VM_MAP(flags, LOCKED); +} + +static int aufs_mmap(struct file *file, struct vm_area_struct *vma) +{ + int err; + unsigned long prot; + aufs_bindex_t bstart; + const unsigned char wlock + = (file->f_mode & FMODE_WRITE) && (vma->vm_flags & VM_SHARED); + struct dentry *dentry; + struct super_block *sb; + struct file *h_file; + struct au_branch *br; + struct au_pin pin; + + AuDbgVmRegion(file, vma); + + dentry = file->f_dentry; + sb = dentry->d_sb; + lockdep_off(); + si_read_lock(sb, AuLock_NOPLMW); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + if (wlock) { + err = au_ready_to_write(file, -1, &pin); + di_write_unlock(dentry); + if (unlikely(err)) { + fi_write_unlock(file); + goto out; + } + au_unpin(&pin); + } else + di_write_unlock(dentry); + + bstart = au_fbstart(file); + br = au_sbr(sb, bstart); + h_file = au_hf_top(file); + get_file(h_file); + au_set_mmapped(file); + fi_write_unlock(file); + lockdep_on(); + + au_vm_file_reset(vma, h_file); + prot = au_prot_conv(vma->vm_flags); + err = security_file_mmap(h_file, /*reqprot*/prot, prot, + au_flag_conv(vma->vm_flags), vma->vm_start, 0); + if (!err) + err = h_file->f_op->mmap(h_file, vma); + if (unlikely(err)) + goto out_reset; + + au_vm_prfile_set(vma, file); + /* update without lock, I don't think it a problem */ + fsstack_copy_attr_atime(file->f_dentry->d_inode, + h_file->f_dentry->d_inode); + goto out_fput; /* success */ + +out_reset: + au_unset_mmapped(file); + au_vm_file_reset(vma, file); +out_fput: + fput(h_file); + lockdep_off(); +out: + si_read_unlock(sb); + lockdep_on(); + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_fsync_nondir(struct file *file, loff_t start, loff_t end, + int datasync) +{ + int err; + struct au_pin pin; + struct dentry *dentry; + struct inode *inode; + struct file *h_file; + struct super_block *sb; + + dentry = file->f_dentry; + inode = dentry->d_inode; + sb = dentry->d_sb; + mutex_lock(&inode->i_mutex); + err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + if (unlikely(err)) + goto out; + + err = 0; /* -EBADF; */ /* posix? */ + if (unlikely(!(file->f_mode & FMODE_WRITE))) + goto out_si; + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out_si; + + err = au_ready_to_write(file, -1, &pin); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + au_unpin(&pin); + + err = -EINVAL; + h_file = au_hf_top(file); + err = vfsub_fsync(h_file, &h_file->f_path, datasync); + au_cpup_attr_timesizes(inode); + +out_unlock: + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); +out_si: + si_read_unlock(sb); +out: + mutex_unlock(&inode->i_mutex); + return err; +} + +/* no one supports this operation, currently */ +#if 0 +static int aufs_aio_fsync_nondir(struct kiocb *kio, int datasync) +{ + int err; + struct au_pin pin; + struct dentry *dentry; + struct inode *inode; + struct file *file, *h_file; + + file = kio->ki_filp; + dentry = file->f_dentry; + inode = dentry->d_inode; + au_mtx_and_read_lock(inode); + + err = 0; /* -EBADF; */ /* posix? */ + if (unlikely(!(file->f_mode & FMODE_WRITE))) + goto out; + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + err = au_ready_to_write(file, -1, &pin); + di_downgrade_lock(dentry, AuLock_IR); + if (unlikely(err)) + goto out_unlock; + au_unpin(&pin); + + err = -ENOSYS; + h_file = au_hf_top(file); + if (h_file->f_op && h_file->f_op->aio_fsync) { + struct dentry *h_d; + struct mutex *h_mtx; + + h_d = h_file->f_dentry; + h_mtx = &h_d->d_inode->i_mutex; + if (!is_sync_kiocb(kio)) { + get_file(h_file); + fput(file); + } + kio->ki_filp = h_file; + err = h_file->f_op->aio_fsync(kio, datasync); + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + if (!err) + vfsub_update_h_iattr(&h_file->f_path, /*did*/NULL); + /*ignore*/ + au_cpup_attr_timesizes(inode); + mutex_unlock(h_mtx); + } + +out_unlock: + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); +out: + si_read_unlock(inode->sb); + mutex_unlock(&inode->i_mutex); + return err; +} +#endif + +static int aufs_fasync(int fd, struct file *file, int flag) +{ + int err; + struct file *h_file; + struct dentry *dentry; + struct super_block *sb; + + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0); + if (unlikely(err)) + goto out; + + h_file = au_hf_top(file); + if (h_file->f_op && h_file->f_op->fasync) + err = h_file->f_op->fasync(fd, h_file, flag); + + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + +out: + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* no one supports this operation, currently */ +#if 0 +static ssize_t aufs_sendpage(struct file *file, struct page *page, int offset, + size_t len, loff_t *pos , int more) +{ +} +#endif + +/* ---------------------------------------------------------------------- */ + +const struct file_operations aufs_file_fop = { + .owner = THIS_MODULE, + + .llseek = default_llseek, + + .read = aufs_read, + .write = aufs_write, + .aio_read = aufs_aio_read, + .aio_write = aufs_aio_write, +#ifdef CONFIG_AUFS_POLL + .poll = aufs_poll, +#endif + .unlocked_ioctl = aufs_ioctl_nondir, +#ifdef CONFIG_COMPAT + .compat_ioctl = aufs_ioctl_nondir, /* same */ +#endif + .mmap = aufs_mmap, + .open = aufs_open_nondir, + .flush = aufs_flush_nondir, + .release = aufs_release_nondir, + .fsync = aufs_fsync_nondir, + /* .aio_fsync = aufs_aio_fsync_nondir, */ + .fasync = aufs_fasync, + /* .sendpage = aufs_sendpage, */ + .splice_write = aufs_splice_write, + .splice_read = aufs_splice_read, +#if 0 + .aio_splice_write = aufs_aio_splice_write, + .aio_splice_read = aufs_aio_splice_read +#endif +}; --- linux-3.2.0.orig/ubuntu/aufs/dinfo.c +++ linux-3.2.0/ubuntu/aufs/dinfo.c @@ -0,0 +1,543 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * dentry private data + */ + +#include "aufs.h" + +void au_di_init_once(void *_dinfo) +{ + struct au_dinfo *dinfo = _dinfo; + static struct lock_class_key aufs_di; + + au_rw_init(&dinfo->di_rwsem); + au_rw_class(&dinfo->di_rwsem, &aufs_di); +} + +struct au_dinfo *au_di_alloc(struct super_block *sb, unsigned int lsc) +{ + struct au_dinfo *dinfo; + int nbr, i; + + dinfo = au_cache_alloc_dinfo(); + if (unlikely(!dinfo)) + goto out; + + nbr = au_sbend(sb) + 1; + if (nbr <= 0) + nbr = 1; + dinfo->di_hdentry = kcalloc(nbr, sizeof(*dinfo->di_hdentry), GFP_NOFS); + if (dinfo->di_hdentry) { + au_rw_write_lock_nested(&dinfo->di_rwsem, lsc); + dinfo->di_bstart = -1; + dinfo->di_bend = -1; + dinfo->di_bwh = -1; + dinfo->di_bdiropq = -1; + for (i = 0; i < nbr; i++) + dinfo->di_hdentry[i].hd_id = -1; + goto out; + } + + au_cache_free_dinfo(dinfo); + dinfo = NULL; + +out: + return dinfo; +} + +void au_di_free(struct au_dinfo *dinfo) +{ + struct au_hdentry *p; + aufs_bindex_t bend, bindex; + + /* dentry may not be revalidated */ + bindex = dinfo->di_bstart; + if (bindex >= 0) { + bend = dinfo->di_bend; + p = dinfo->di_hdentry + bindex; + while (bindex++ <= bend) + au_hdput(p++); + } + kfree(dinfo->di_hdentry); + au_cache_free_dinfo(dinfo); +} + +void au_di_swap(struct au_dinfo *a, struct au_dinfo *b) +{ + struct au_hdentry *p; + aufs_bindex_t bi; + + AuRwMustWriteLock(&a->di_rwsem); + AuRwMustWriteLock(&b->di_rwsem); + +#define DiSwap(v, name) \ + do { \ + v = a->di_##name; \ + a->di_##name = b->di_##name; \ + b->di_##name = v; \ + } while (0) + + DiSwap(p, hdentry); + DiSwap(bi, bstart); + DiSwap(bi, bend); + DiSwap(bi, bwh); + DiSwap(bi, bdiropq); + /* smp_mb(); */ + +#undef DiSwap +} + +void au_di_cp(struct au_dinfo *dst, struct au_dinfo *src) +{ + AuRwMustWriteLock(&dst->di_rwsem); + AuRwMustWriteLock(&src->di_rwsem); + + dst->di_bstart = src->di_bstart; + dst->di_bend = src->di_bend; + dst->di_bwh = src->di_bwh; + dst->di_bdiropq = src->di_bdiropq; + /* smp_mb(); */ +} + +int au_di_init(struct dentry *dentry) +{ + int err; + struct super_block *sb; + struct au_dinfo *dinfo; + + err = 0; + sb = dentry->d_sb; + dinfo = au_di_alloc(sb, AuLsc_DI_CHILD); + if (dinfo) { + atomic_set(&dinfo->di_generation, au_sigen(sb)); + /* smp_mb(); */ /* atomic_set */ + dentry->d_fsdata = dinfo; + } else + err = -ENOMEM; + + return err; +} + +void au_di_fin(struct dentry *dentry) +{ + struct au_dinfo *dinfo; + + dinfo = au_di(dentry); + AuRwDestroy(&dinfo->di_rwsem); + au_di_free(dinfo); +} + +int au_di_realloc(struct au_dinfo *dinfo, int nbr) +{ + int err, sz; + struct au_hdentry *hdp; + + AuRwMustWriteLock(&dinfo->di_rwsem); + + err = -ENOMEM; + sz = sizeof(*hdp) * (dinfo->di_bend + 1); + if (!sz) + sz = sizeof(*hdp); + hdp = au_kzrealloc(dinfo->di_hdentry, sz, sizeof(*hdp) * nbr, GFP_NOFS); + if (hdp) { + dinfo->di_hdentry = hdp; + err = 0; + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static void do_ii_write_lock(struct inode *inode, unsigned int lsc) +{ + switch (lsc) { + case AuLsc_DI_CHILD: + ii_write_lock_child(inode); + break; + case AuLsc_DI_CHILD2: + ii_write_lock_child2(inode); + break; + case AuLsc_DI_CHILD3: + ii_write_lock_child3(inode); + break; + case AuLsc_DI_PARENT: + ii_write_lock_parent(inode); + break; + case AuLsc_DI_PARENT2: + ii_write_lock_parent2(inode); + break; + case AuLsc_DI_PARENT3: + ii_write_lock_parent3(inode); + break; + default: + BUG(); + } +} + +static void do_ii_read_lock(struct inode *inode, unsigned int lsc) +{ + switch (lsc) { + case AuLsc_DI_CHILD: + ii_read_lock_child(inode); + break; + case AuLsc_DI_CHILD2: + ii_read_lock_child2(inode); + break; + case AuLsc_DI_CHILD3: + ii_read_lock_child3(inode); + break; + case AuLsc_DI_PARENT: + ii_read_lock_parent(inode); + break; + case AuLsc_DI_PARENT2: + ii_read_lock_parent2(inode); + break; + case AuLsc_DI_PARENT3: + ii_read_lock_parent3(inode); + break; + default: + BUG(); + } +} + +void di_read_lock(struct dentry *d, int flags, unsigned int lsc) +{ + au_rw_read_lock_nested(&au_di(d)->di_rwsem, lsc); + if (d->d_inode) { + if (au_ftest_lock(flags, IW)) + do_ii_write_lock(d->d_inode, lsc); + else if (au_ftest_lock(flags, IR)) + do_ii_read_lock(d->d_inode, lsc); + } +} + +void di_read_unlock(struct dentry *d, int flags) +{ + if (d->d_inode) { + if (au_ftest_lock(flags, IW)) { + au_dbg_verify_dinode(d); + ii_write_unlock(d->d_inode); + } else if (au_ftest_lock(flags, IR)) { + au_dbg_verify_dinode(d); + ii_read_unlock(d->d_inode); + } + } + au_rw_read_unlock(&au_di(d)->di_rwsem); +} + +void di_downgrade_lock(struct dentry *d, int flags) +{ + if (d->d_inode && au_ftest_lock(flags, IR)) + ii_downgrade_lock(d->d_inode); + au_rw_dgrade_lock(&au_di(d)->di_rwsem); +} + +void di_write_lock(struct dentry *d, unsigned int lsc) +{ + au_rw_write_lock_nested(&au_di(d)->di_rwsem, lsc); + if (d->d_inode) + do_ii_write_lock(d->d_inode, lsc); +} + +void di_write_unlock(struct dentry *d) +{ + au_dbg_verify_dinode(d); + if (d->d_inode) + ii_write_unlock(d->d_inode); + au_rw_write_unlock(&au_di(d)->di_rwsem); +} + +void di_write_lock2_child(struct dentry *d1, struct dentry *d2, int isdir) +{ + AuDebugOn(d1 == d2 + || d1->d_inode == d2->d_inode + || d1->d_sb != d2->d_sb); + + if (isdir && au_test_subdir(d1, d2)) { + di_write_lock_child(d1); + di_write_lock_child2(d2); + } else { + /* there should be no races */ + di_write_lock_child(d2); + di_write_lock_child2(d1); + } +} + +void di_write_lock2_parent(struct dentry *d1, struct dentry *d2, int isdir) +{ + AuDebugOn(d1 == d2 + || d1->d_inode == d2->d_inode + || d1->d_sb != d2->d_sb); + + if (isdir && au_test_subdir(d1, d2)) { + di_write_lock_parent(d1); + di_write_lock_parent2(d2); + } else { + /* there should be no races */ + di_write_lock_parent(d2); + di_write_lock_parent2(d1); + } +} + +void di_write_unlock2(struct dentry *d1, struct dentry *d2) +{ + di_write_unlock(d1); + if (d1->d_inode == d2->d_inode) + au_rw_write_unlock(&au_di(d2)->di_rwsem); + else + di_write_unlock(d2); +} + +/* ---------------------------------------------------------------------- */ + +struct dentry *au_h_dptr(struct dentry *dentry, aufs_bindex_t bindex) +{ + struct dentry *d; + + DiMustAnyLock(dentry); + + if (au_dbstart(dentry) < 0 || bindex < au_dbstart(dentry)) + return NULL; + AuDebugOn(bindex < 0); + d = au_di(dentry)->di_hdentry[0 + bindex].hd_dentry; + AuDebugOn(d && d->d_count <= 0); + return d; +} + +/* + * extended version of au_h_dptr(). + * returns a hashed and positive h_dentry in bindex, NULL, or error. + */ +struct dentry *au_h_d_alias(struct dentry *dentry, aufs_bindex_t bindex) +{ + struct dentry *h_dentry; + struct inode *inode, *h_inode; + + inode = dentry->d_inode; + AuDebugOn(!inode); + + h_dentry = NULL; + if (au_dbstart(dentry) <= bindex + && bindex <= au_dbend(dentry)) + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry && !au_d_hashed_positive(h_dentry)) { + dget(h_dentry); + goto out; /* success */ + } + + AuDebugOn(bindex < au_ibstart(inode)); + AuDebugOn(au_ibend(inode) < bindex); + h_inode = au_h_iptr(inode, bindex); + h_dentry = d_find_alias(h_inode); + if (h_dentry) { + if (!IS_ERR(h_dentry)) { + if (!au_d_hashed_positive(h_dentry)) + goto out; /* success */ + dput(h_dentry); + } else + goto out; + } + + if (au_opt_test(au_mntflags(dentry->d_sb), PLINK)) { + h_dentry = au_plink_lkup(inode, bindex); + AuDebugOn(!h_dentry); + if (!IS_ERR(h_dentry)) { + if (!au_d_hashed_positive(h_dentry)) + goto out; /* success */ + dput(h_dentry); + h_dentry = NULL; + } + } + +out: + AuDbgDentry(h_dentry); + return h_dentry; +} + +aufs_bindex_t au_dbtail(struct dentry *dentry) +{ + aufs_bindex_t bend, bwh; + + bend = au_dbend(dentry); + if (0 <= bend) { + bwh = au_dbwh(dentry); + if (!bwh) + return bwh; + if (0 < bwh && bwh < bend) + return bwh - 1; + } + return bend; +} + +aufs_bindex_t au_dbtaildir(struct dentry *dentry) +{ + aufs_bindex_t bend, bopq; + + bend = au_dbtail(dentry); + if (0 <= bend) { + bopq = au_dbdiropq(dentry); + if (0 <= bopq && bopq < bend) + bend = bopq; + } + return bend; +} + +/* ---------------------------------------------------------------------- */ + +void au_set_h_dptr(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_dentry) +{ + struct au_hdentry *hd = au_di(dentry)->di_hdentry + bindex; + struct au_branch *br; + + DiMustWriteLock(dentry); + + au_hdput(hd); + hd->hd_dentry = h_dentry; + if (h_dentry) { + br = au_sbr(dentry->d_sb, bindex); + hd->hd_id = br->br_id; + } +} + +int au_dbrange_test(struct dentry *dentry) +{ + int err; + aufs_bindex_t bstart, bend; + + err = 0; + bstart = au_dbstart(dentry); + bend = au_dbend(dentry); + if (bstart >= 0) + AuDebugOn(bend < 0 && bstart > bend); + else { + err = -EIO; + AuDebugOn(bend >= 0); + } + + return err; +} + +int au_digen_test(struct dentry *dentry, unsigned int sigen) +{ + int err; + + err = 0; + if (unlikely(au_digen(dentry) != sigen + || au_iigen_test(dentry->d_inode, sigen))) + err = -EIO; + + return err; +} + +void au_update_digen(struct dentry *dentry) +{ + atomic_set(&au_di(dentry)->di_generation, au_sigen(dentry->d_sb)); + /* smp_mb(); */ /* atomic_set */ +} + +void au_update_dbrange(struct dentry *dentry, int do_put_zero) +{ + struct au_dinfo *dinfo; + struct dentry *h_d; + struct au_hdentry *hdp; + + DiMustWriteLock(dentry); + + dinfo = au_di(dentry); + if (!dinfo || dinfo->di_bstart < 0) + return; + + hdp = dinfo->di_hdentry; + if (do_put_zero) { + aufs_bindex_t bindex, bend; + + bend = dinfo->di_bend; + for (bindex = dinfo->di_bstart; bindex <= bend; bindex++) { + h_d = hdp[0 + bindex].hd_dentry; + if (h_d && !h_d->d_inode) + au_set_h_dptr(dentry, bindex, NULL); + } + } + + dinfo->di_bstart = -1; + while (++dinfo->di_bstart <= dinfo->di_bend) + if (hdp[0 + dinfo->di_bstart].hd_dentry) + break; + if (dinfo->di_bstart > dinfo->di_bend) { + dinfo->di_bstart = -1; + dinfo->di_bend = -1; + return; + } + + dinfo->di_bend++; + while (0 <= --dinfo->di_bend) + if (hdp[0 + dinfo->di_bend].hd_dentry) + break; + AuDebugOn(dinfo->di_bstart > dinfo->di_bend || dinfo->di_bend < 0); +} + +void au_update_dbstart(struct dentry *dentry) +{ + aufs_bindex_t bindex, bend; + struct dentry *h_dentry; + + bend = au_dbend(dentry); + for (bindex = au_dbstart(dentry); bindex <= bend; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + if (h_dentry->d_inode) { + au_set_dbstart(dentry, bindex); + return; + } + au_set_h_dptr(dentry, bindex, NULL); + } +} + +void au_update_dbend(struct dentry *dentry) +{ + aufs_bindex_t bindex, bstart; + struct dentry *h_dentry; + + bstart = au_dbstart(dentry); + for (bindex = au_dbend(dentry); bindex >= bstart; bindex--) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + if (h_dentry->d_inode) { + au_set_dbend(dentry, bindex); + return; + } + au_set_h_dptr(dentry, bindex, NULL); + } +} + +int au_find_dbindex(struct dentry *dentry, struct dentry *h_dentry) +{ + aufs_bindex_t bindex, bend; + + bend = au_dbend(dentry); + for (bindex = au_dbstart(dentry); bindex <= bend; bindex++) + if (au_h_dptr(dentry, bindex) == h_dentry) + return bindex; + return -1; +} --- linux-3.2.0.orig/ubuntu/aufs/BOM.UPDATING +++ linux-3.2.0/ubuntu/aufs/BOM.UPDATING @@ -0,0 +1,80 @@ += How to update AUFS2 = + +This document covers the process for updating aufs2 within the Ubuntu +drivers directory. + +== Background == + +Upstream aufs2 is maintained in a git tree as below (which is _not_ used +when updating Ubuntu). This represents the primary upstream source tree: + + http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-2.6.git + +However this is on an http: transport and incredibly slow. It is advisable +to also add the gitorius mirror to your tree, fetching that before origin +to reduce the objects you need from the main tree: + + git://gitorious.org/aufs2/aufs2.git + +Ubuntu updates are actually taken from the aufs2-standalone tree, somewhat +similar to the compat-wireless tree. The version in this tree is based on +the mainline tree above but is modularisable, a key requirement for Ubuntu. +This tree is found at the git tree below (check the BOM for the definative +location): + + http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git + +This tree contains a set of branches, one per upstream release. The +aufs2.1 branch represents the mainline tracking branch, with aufs-2.1-38 +representing the delta to mainline 2.6.38. Each branch contains a set +of patches which affect the core enabling the application of aufs2, plus +an open tree for the fs/aufs tree. The core patches tend to be static +from early in the line of an upstream release, and thus generally do not +need updating as often. + +== Updating the core patches == + +Ubuntu uses two of the core enablement patches, which are applied in the +order below. The remaining changes required to enable aufs are Ubuntu +specific and static: + + aufs2-base.patch + aufs2-standalone.patch + +In order to update these patches it is simplest to simply revert the +existing pair and apply these as two commit. This allows us to more +easily drop aufs in the future should that be required. + +As these core enablement patches are very slow in changing we normally +do not need to update these more than once per upstream mainline release +though sometimes changes do affect these. + +== Updating aufs2 == + +Once the enablement patches are updated we can simply use the aufs-update +script in the ubuntu/ directory to update the existing source. There are +regular updates to the aufs2 upstream and it is likely we will see updates +there more than once a month. + +Firstly checkout the upstream standalone tree (see the BOM for the +location) and checkout an appropriate branch for the release you are +updating. Then simply run the aufs-update command from within the ubuntu/ +drivers directory, supplying the location of the local aufs2-standalone tree +on the command line: + + cd ubuntu + sh aufs-update ../../aufs2-standalone + +This will result in an update commit containing the updated code and +also updating the BOM. Note that any local modifications are now lost. +Where those exist they should be cherry-picked and then squashed into +the update commit to ensure we retain them. + +== Ubuntu modifications == + +We carry a very small delta to the upstream aufs2 source. Any such changes +need to be cherry-picked from the history and squashed into any update +commit in order to prevent regression. Any current patches are listed below: + +Lucid/Maverick/Natty/Oneiric: + UBUNTU: ubuntu: AUFS -- suppress benign plink warning messages --- linux-3.2.0.orig/ubuntu/aufs/cpup.h +++ linux-3.2.0/ubuntu/aufs/cpup.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * copy-up/down functions + */ + +#ifndef __AUFS_CPUP_H__ +#define __AUFS_CPUP_H__ + +#ifdef __KERNEL__ + +#include + +struct inode; +struct file; + +void au_cpup_attr_flags(struct inode *dst, struct inode *src); +void au_cpup_attr_timesizes(struct inode *inode); +void au_cpup_attr_nlink(struct inode *inode, int force); +void au_cpup_attr_changeable(struct inode *inode); +void au_cpup_igen(struct inode *inode, struct inode *h_inode); +void au_cpup_attr_all(struct inode *inode, int force); + +/* ---------------------------------------------------------------------- */ + +/* cpup flags */ +#define AuCpup_DTIME 1 /* do dtime_store/revert */ +#define AuCpup_KEEPLINO (1 << 1) /* do not clear the lower xino, + for link(2) */ +#define au_ftest_cpup(flags, name) ((flags) & AuCpup_##name) +#define au_fset_cpup(flags, name) \ + do { (flags) |= AuCpup_##name; } while (0) +#define au_fclr_cpup(flags, name) \ + do { (flags) &= ~AuCpup_##name; } while (0) + +int au_copy_file(struct file *dst, struct file *src, loff_t len); +int au_sio_cpup_single(struct dentry *dentry, aufs_bindex_t bdst, + aufs_bindex_t bsrc, loff_t len, unsigned int flags, + struct dentry *dst_parent); +int au_sio_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + unsigned int flags); +int au_sio_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len, + struct file *file); + +int au_cp_dirs(struct dentry *dentry, aufs_bindex_t bdst, + int (*cp)(struct dentry *dentry, aufs_bindex_t bdst, + struct dentry *h_parent, void *arg), + void *arg); +int au_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst); +int au_test_and_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst); + +/* ---------------------------------------------------------------------- */ + +/* keep timestamps when copyup */ +struct au_dtime { + struct dentry *dt_dentry; + struct path dt_h_path; + struct timespec dt_atime, dt_mtime; +}; +void au_dtime_store(struct au_dtime *dt, struct dentry *dentry, + struct path *h_path); +void au_dtime_revert(struct au_dtime *dt); + +#endif /* __KERNEL__ */ +#endif /* __AUFS_CPUP_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/opts.h +++ linux-3.2.0/ubuntu/aufs/opts.h @@ -0,0 +1,209 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * mount options/flags + */ + +#ifndef __AUFS_OPTS_H__ +#define __AUFS_OPTS_H__ + +#ifdef __KERNEL__ + +#include + +struct file; +struct super_block; + +/* ---------------------------------------------------------------------- */ + +/* mount flags */ +#define AuOpt_XINO 1 /* external inode number bitmap + and translation table */ +#define AuOpt_TRUNC_XINO (1 << 1) /* truncate xino files */ +#define AuOpt_UDBA_NONE (1 << 2) /* users direct branch access */ +#define AuOpt_UDBA_REVAL (1 << 3) +#define AuOpt_UDBA_HNOTIFY (1 << 4) +#define AuOpt_SHWH (1 << 5) /* show whiteout */ +#define AuOpt_PLINK (1 << 6) /* pseudo-link */ +#define AuOpt_DIRPERM1 (1 << 7) /* unimplemented */ +#define AuOpt_REFROF (1 << 8) /* unimplemented */ +#define AuOpt_ALWAYS_DIROPQ (1 << 9) /* policy to creating diropq */ +#define AuOpt_SUM (1 << 10) /* summation for statfs(2) */ +#define AuOpt_SUM_W (1 << 11) /* unimplemented */ +#define AuOpt_WARN_PERM (1 << 12) /* warn when add-branch */ +#define AuOpt_VERBOSE (1 << 13) /* busy inode when del-branch */ +#define AuOpt_DIO (1 << 14) /* direct io */ + +#ifndef CONFIG_AUFS_HNOTIFY +#undef AuOpt_UDBA_HNOTIFY +#define AuOpt_UDBA_HNOTIFY 0 +#endif +#ifndef CONFIG_AUFS_SHWH +#undef AuOpt_SHWH +#define AuOpt_SHWH 0 +#endif + +#define AuOpt_Def (AuOpt_XINO \ + | AuOpt_UDBA_REVAL \ + | AuOpt_PLINK \ + /* | AuOpt_DIRPERM1 */ \ + | AuOpt_WARN_PERM) +#define AuOptMask_UDBA (AuOpt_UDBA_NONE \ + | AuOpt_UDBA_REVAL \ + | AuOpt_UDBA_HNOTIFY) + +#define au_opt_test(flags, name) (flags & AuOpt_##name) +#define au_opt_set(flags, name) do { \ + BUILD_BUG_ON(AuOpt_##name & AuOptMask_UDBA); \ + ((flags) |= AuOpt_##name); \ +} while (0) +#define au_opt_set_udba(flags, name) do { \ + (flags) &= ~AuOptMask_UDBA; \ + ((flags) |= AuOpt_##name); \ +} while (0) +#define au_opt_clr(flags, name) do { \ + ((flags) &= ~AuOpt_##name); \ +} while (0) + +static inline unsigned int au_opts_plink(unsigned int mntflags) +{ +#ifdef CONFIG_PROC_FS + return mntflags; +#else + return mntflags & ~AuOpt_PLINK; +#endif +} + +/* ---------------------------------------------------------------------- */ + +/* policies to select one among multiple writable branches */ +enum { + AuWbrCreate_TDP, /* top down parent */ + AuWbrCreate_RR, /* round robin */ + AuWbrCreate_MFS, /* most free space */ + AuWbrCreate_MFSV, /* mfs with seconds */ + AuWbrCreate_MFSRR, /* mfs then rr */ + AuWbrCreate_MFSRRV, /* mfs then rr with seconds */ + AuWbrCreate_PMFS, /* parent and mfs */ + AuWbrCreate_PMFSV, /* parent and mfs with seconds */ + + AuWbrCreate_Def = AuWbrCreate_TDP +}; + +enum { + AuWbrCopyup_TDP, /* top down parent */ + AuWbrCopyup_BUP, /* bottom up parent */ + AuWbrCopyup_BU, /* bottom up */ + + AuWbrCopyup_Def = AuWbrCopyup_TDP +}; + +/* ---------------------------------------------------------------------- */ + +struct au_opt_add { + aufs_bindex_t bindex; + char *pathname; + int perm; + struct path path; +}; + +struct au_opt_del { + char *pathname; + struct path h_path; +}; + +struct au_opt_mod { + char *path; + int perm; + struct dentry *h_root; +}; + +struct au_opt_xino { + char *path; + struct file *file; +}; + +struct au_opt_xino_itrunc { + aufs_bindex_t bindex; +}; + +struct au_opt_wbr_create { + int wbr_create; + int mfs_second; + unsigned long long mfsrr_watermark; +}; + +struct au_opt { + int type; + union { + struct au_opt_xino xino; + struct au_opt_xino_itrunc xino_itrunc; + struct au_opt_add add; + struct au_opt_del del; + struct au_opt_mod mod; + int dirwh; + int rdcache; + unsigned int rdblk; + unsigned int rdhash; + int udba; + struct au_opt_wbr_create wbr_create; + int wbr_copyup; + }; +}; + +/* opts flags */ +#define AuOpts_REMOUNT 1 +#define AuOpts_REFRESH (1 << 1) +#define AuOpts_TRUNC_XIB (1 << 2) +#define AuOpts_REFRESH_DYAOP (1 << 3) +#define au_ftest_opts(flags, name) ((flags) & AuOpts_##name) +#define au_fset_opts(flags, name) \ + do { (flags) |= AuOpts_##name; } while (0) +#define au_fclr_opts(flags, name) \ + do { (flags) &= ~AuOpts_##name; } while (0) + +struct au_opts { + struct au_opt *opt; + int max_opt; + + unsigned int given_udba; + unsigned int flags; + unsigned long sb_flags; +}; + +/* ---------------------------------------------------------------------- */ + +char *au_optstr_br_perm(int brperm); +const char *au_optstr_udba(int udba); +const char *au_optstr_wbr_copyup(int wbr_copyup); +const char *au_optstr_wbr_create(int wbr_create); + +void au_opts_free(struct au_opts *opts); +int au_opts_parse(struct super_block *sb, char *str, struct au_opts *opts); +int au_opts_verify(struct super_block *sb, unsigned long sb_flags, + unsigned int pending); +int au_opts_mount(struct super_block *sb, struct au_opts *opts); +int au_opts_remount(struct super_block *sb, struct au_opts *opts); + +unsigned int au_opt_udba(struct super_block *sb); + +/* ---------------------------------------------------------------------- */ + +#endif /* __KERNEL__ */ +#endif /* __AUFS_OPTS_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/export.c +++ linux-3.2.0/ubuntu/aufs/export.c @@ -0,0 +1,804 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * export via nfs + */ + +#include +#include +#include +#include +#include +#include +#include "aufs.h" + +union conv { +#ifdef CONFIG_AUFS_INO_T_64 + __u32 a[2]; +#else + __u32 a[1]; +#endif + ino_t ino; +}; + +static ino_t decode_ino(__u32 *a) +{ + union conv u; + + BUILD_BUG_ON(sizeof(u.ino) != sizeof(u.a)); + u.a[0] = a[0]; +#ifdef CONFIG_AUFS_INO_T_64 + u.a[1] = a[1]; +#endif + return u.ino; +} + +static void encode_ino(__u32 *a, ino_t ino) +{ + union conv u; + + u.ino = ino; + a[0] = u.a[0]; +#ifdef CONFIG_AUFS_INO_T_64 + a[1] = u.a[1]; +#endif +} + +/* NFS file handle */ +enum { + Fh_br_id, + Fh_sigen, +#ifdef CONFIG_AUFS_INO_T_64 + /* support 64bit inode number */ + Fh_ino1, + Fh_ino2, + Fh_dir_ino1, + Fh_dir_ino2, +#else + Fh_ino1, + Fh_dir_ino1, +#endif + Fh_igen, + Fh_h_type, + Fh_tail, + + Fh_ino = Fh_ino1, + Fh_dir_ino = Fh_dir_ino1 +}; + +static int au_test_anon(struct dentry *dentry) +{ + /* note: read d_flags without d_lock */ + return !!(dentry->d_flags & DCACHE_DISCONNECTED); +} + +/* ---------------------------------------------------------------------- */ +/* inode generation external table */ + +void au_xigen_inc(struct inode *inode) +{ + loff_t pos; + ssize_t sz; + __u32 igen; + struct super_block *sb; + struct au_sbinfo *sbinfo; + + sb = inode->i_sb; + AuDebugOn(!au_opt_test(au_mntflags(sb), XINO)); + + sbinfo = au_sbi(sb); + pos = inode->i_ino; + pos *= sizeof(igen); + igen = inode->i_generation + 1; + sz = xino_fwrite(sbinfo->si_xwrite, sbinfo->si_xigen, &igen, + sizeof(igen), &pos); + if (sz == sizeof(igen)) + return; /* success */ + + if (unlikely(sz >= 0)) + AuIOErr("xigen error (%zd)\n", sz); +} + +int au_xigen_new(struct inode *inode) +{ + int err; + loff_t pos; + ssize_t sz; + struct super_block *sb; + struct au_sbinfo *sbinfo; + struct file *file; + + err = 0; + /* todo: dirty, at mount time */ + if (inode->i_ino == AUFS_ROOT_INO) + goto out; + sb = inode->i_sb; + SiMustAnyLock(sb); + if (unlikely(!au_opt_test(au_mntflags(sb), XINO))) + goto out; + + err = -EFBIG; + pos = inode->i_ino; + if (unlikely(au_loff_max / sizeof(inode->i_generation) - 1 < pos)) { + AuIOErr1("too large i%lld\n", pos); + goto out; + } + pos *= sizeof(inode->i_generation); + + err = 0; + sbinfo = au_sbi(sb); + file = sbinfo->si_xigen; + BUG_ON(!file); + + if (i_size_read(file->f_dentry->d_inode) + < pos + sizeof(inode->i_generation)) { + inode->i_generation = atomic_inc_return(&sbinfo->si_xigen_next); + sz = xino_fwrite(sbinfo->si_xwrite, file, &inode->i_generation, + sizeof(inode->i_generation), &pos); + } else + sz = xino_fread(sbinfo->si_xread, file, &inode->i_generation, + sizeof(inode->i_generation), &pos); + if (sz == sizeof(inode->i_generation)) + goto out; /* success */ + + err = sz; + if (unlikely(sz >= 0)) { + err = -EIO; + AuIOErr("xigen error (%zd)\n", sz); + } + +out: + return err; +} + +int au_xigen_set(struct super_block *sb, struct file *base) +{ + int err; + struct au_sbinfo *sbinfo; + struct file *file; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + file = au_xino_create2(base, sbinfo->si_xigen); + err = PTR_ERR(file); + if (IS_ERR(file)) + goto out; + err = 0; + if (sbinfo->si_xigen) + fput(sbinfo->si_xigen); + sbinfo->si_xigen = file; + +out: + return err; +} + +void au_xigen_clr(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + if (sbinfo->si_xigen) { + fput(sbinfo->si_xigen); + sbinfo->si_xigen = NULL; + } +} + +/* ---------------------------------------------------------------------- */ + +static struct dentry *decode_by_ino(struct super_block *sb, ino_t ino, + ino_t dir_ino) +{ + struct dentry *dentry, *d; + struct inode *inode; + unsigned int sigen; + + dentry = NULL; + inode = ilookup(sb, ino); + if (!inode) + goto out; + + dentry = ERR_PTR(-ESTALE); + sigen = au_sigen(sb); + if (unlikely(is_bad_inode(inode) + || IS_DEADDIR(inode) + || sigen != au_iigen(inode))) + goto out_iput; + + dentry = NULL; + if (!dir_ino || S_ISDIR(inode->i_mode)) + dentry = d_find_alias(inode); + else { + spin_lock(&inode->i_lock); + list_for_each_entry(d, &inode->i_dentry, d_alias) { + spin_lock(&d->d_lock); + if (!au_test_anon(d) + && d->d_parent->d_inode->i_ino == dir_ino) { + dentry = dget_dlock(d); + spin_unlock(&d->d_lock); + break; + } + spin_unlock(&d->d_lock); + } + spin_unlock(&inode->i_lock); + } + if (unlikely(dentry && au_digen_test(dentry, sigen))) { + /* need to refresh */ + dput(dentry); + dentry = NULL; + } + +out_iput: + iput(inode); +out: + AuTraceErrPtr(dentry); + return dentry; +} + +/* ---------------------------------------------------------------------- */ + +/* todo: dirty? */ +/* if exportfs_decode_fh() passed vfsmount*, we could be happy */ + +struct au_compare_mnt_args { + /* input */ + struct super_block *sb; + + /* output */ + struct vfsmount *mnt; +}; + +static int au_compare_mnt(struct vfsmount *mnt, void *arg) +{ + struct au_compare_mnt_args *a = arg; + + if (mnt->mnt_sb != a->sb) + return 0; + a->mnt = mntget(mnt); + return 1; +} + +static struct vfsmount *au_mnt_get(struct super_block *sb) +{ + int err; + struct au_compare_mnt_args args = { + .sb = sb + }; + struct mnt_namespace *ns; + + br_read_lock(vfsmount_lock); + /* no get/put ?? */ + AuDebugOn(!current->nsproxy); + ns = current->nsproxy->mnt_ns; + AuDebugOn(!ns); + err = iterate_mounts(au_compare_mnt, &args, ns->root); + br_read_unlock(vfsmount_lock); + AuDebugOn(!err); + AuDebugOn(!args.mnt); + return args.mnt; +} + +struct au_nfsd_si_lock { + unsigned int sigen; + aufs_bindex_t bindex, br_id; + unsigned char force_lock; +}; + +static int si_nfsd_read_lock(struct super_block *sb, + struct au_nfsd_si_lock *nsi_lock) +{ + int err; + aufs_bindex_t bindex; + + si_read_lock(sb, AuLock_FLUSH); + + /* branch id may be wrapped around */ + err = 0; + bindex = au_br_index(sb, nsi_lock->br_id); + if (bindex >= 0 && nsi_lock->sigen + AUFS_BRANCH_MAX > au_sigen(sb)) + goto out; /* success */ + + err = -ESTALE; + bindex = -1; + if (!nsi_lock->force_lock) + si_read_unlock(sb); + +out: + nsi_lock->bindex = bindex; + return err; +} + +struct find_name_by_ino { + int called, found; + ino_t ino; + char *name; + int namelen; +}; + +static int +find_name_by_ino(void *arg, const char *name, int namelen, loff_t offset, + u64 ino, unsigned int d_type) +{ + struct find_name_by_ino *a = arg; + + a->called++; + if (a->ino != ino) + return 0; + + memcpy(a->name, name, namelen); + a->namelen = namelen; + a->found = 1; + return 1; +} + +static struct dentry *au_lkup_by_ino(struct path *path, ino_t ino, + struct au_nfsd_si_lock *nsi_lock) +{ + struct dentry *dentry, *parent; + struct file *file; + struct inode *dir; + struct find_name_by_ino arg; + int err; + + parent = path->dentry; + if (nsi_lock) + si_read_unlock(parent->d_sb); + file = vfsub_dentry_open(path, au_dir_roflags); + dentry = (void *)file; + if (IS_ERR(file)) + goto out; + + dentry = ERR_PTR(-ENOMEM); + arg.name = __getname_gfp(GFP_NOFS); + if (unlikely(!arg.name)) + goto out_file; + arg.ino = ino; + arg.found = 0; + do { + arg.called = 0; + /* smp_mb(); */ + err = vfsub_readdir(file, find_name_by_ino, &arg); + } while (!err && !arg.found && arg.called); + dentry = ERR_PTR(err); + if (unlikely(err)) + goto out_name; + dentry = ERR_PTR(-ENOENT); + if (!arg.found) + goto out_name; + + /* do not call au_lkup_one() */ + dir = parent->d_inode; + mutex_lock(&dir->i_mutex); + dentry = vfsub_lookup_one_len(arg.name, parent, arg.namelen); + mutex_unlock(&dir->i_mutex); + AuTraceErrPtr(dentry); + if (IS_ERR(dentry)) + goto out_name; + AuDebugOn(au_test_anon(dentry)); + if (unlikely(!dentry->d_inode)) { + dput(dentry); + dentry = ERR_PTR(-ENOENT); + } + +out_name: + __putname(arg.name); +out_file: + fput(file); +out: + if (unlikely(nsi_lock + && si_nfsd_read_lock(parent->d_sb, nsi_lock) < 0)) + if (!IS_ERR(dentry)) { + dput(dentry); + dentry = ERR_PTR(-ESTALE); + } + AuTraceErrPtr(dentry); + return dentry; +} + +static struct dentry *decode_by_dir_ino(struct super_block *sb, ino_t ino, + ino_t dir_ino, + struct au_nfsd_si_lock *nsi_lock) +{ + struct dentry *dentry; + struct path path; + + if (dir_ino != AUFS_ROOT_INO) { + path.dentry = decode_by_ino(sb, dir_ino, 0); + dentry = path.dentry; + if (!path.dentry || IS_ERR(path.dentry)) + goto out; + AuDebugOn(au_test_anon(path.dentry)); + } else + path.dentry = dget(sb->s_root); + + path.mnt = au_mnt_get(sb); + dentry = au_lkup_by_ino(&path, ino, nsi_lock); + path_put(&path); + +out: + AuTraceErrPtr(dentry); + return dentry; +} + +/* ---------------------------------------------------------------------- */ + +static int h_acceptable(void *expv, struct dentry *dentry) +{ + return 1; +} + +static char *au_build_path(struct dentry *h_parent, struct path *h_rootpath, + char *buf, int len, struct super_block *sb) +{ + char *p; + int n; + struct path path; + + p = d_path(h_rootpath, buf, len); + if (IS_ERR(p)) + goto out; + n = strlen(p); + + path.mnt = h_rootpath->mnt; + path.dentry = h_parent; + p = d_path(&path, buf, len); + if (IS_ERR(p)) + goto out; + if (n != 1) + p += n; + + path.mnt = au_mnt_get(sb); + path.dentry = sb->s_root; + p = d_path(&path, buf, len - strlen(p)); + mntput(path.mnt); + if (IS_ERR(p)) + goto out; + if (n != 1) + p[strlen(p)] = '/'; + +out: + AuTraceErrPtr(p); + return p; +} + +static +struct dentry *decode_by_path(struct super_block *sb, ino_t ino, __u32 *fh, + int fh_len, struct au_nfsd_si_lock *nsi_lock) +{ + struct dentry *dentry, *h_parent, *root; + struct super_block *h_sb; + char *pathname, *p; + struct vfsmount *h_mnt; + struct au_branch *br; + int err; + struct path path; + + br = au_sbr(sb, nsi_lock->bindex); + h_mnt = br->br_mnt; + h_sb = h_mnt->mnt_sb; + /* todo: call lower fh_to_dentry()? fh_to_parent()? */ + h_parent = exportfs_decode_fh(h_mnt, (void *)(fh + Fh_tail), + fh_len - Fh_tail, fh[Fh_h_type], + h_acceptable, /*context*/NULL); + dentry = h_parent; + if (unlikely(!h_parent || IS_ERR(h_parent))) { + AuWarn1("%s decode_fh failed, %ld\n", + au_sbtype(h_sb), PTR_ERR(h_parent)); + goto out; + } + dentry = NULL; + if (unlikely(au_test_anon(h_parent))) { + AuWarn1("%s decode_fh returned a disconnected dentry\n", + au_sbtype(h_sb)); + goto out_h_parent; + } + + dentry = ERR_PTR(-ENOMEM); + pathname = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!pathname)) + goto out_h_parent; + + root = sb->s_root; + path.mnt = h_mnt; + di_read_lock_parent(root, !AuLock_IR); + path.dentry = au_h_dptr(root, nsi_lock->bindex); + di_read_unlock(root, !AuLock_IR); + p = au_build_path(h_parent, &path, pathname, PAGE_SIZE, sb); + dentry = (void *)p; + if (IS_ERR(p)) + goto out_pathname; + + si_read_unlock(sb); + err = vfsub_kern_path(p, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &path); + dentry = ERR_PTR(err); + if (unlikely(err)) + goto out_relock; + + dentry = ERR_PTR(-ENOENT); + AuDebugOn(au_test_anon(path.dentry)); + if (unlikely(!path.dentry->d_inode)) + goto out_path; + + if (ino != path.dentry->d_inode->i_ino) + dentry = au_lkup_by_ino(&path, ino, /*nsi_lock*/NULL); + else + dentry = dget(path.dentry); + +out_path: + path_put(&path); +out_relock: + if (unlikely(si_nfsd_read_lock(sb, nsi_lock) < 0)) + if (!IS_ERR(dentry)) { + dput(dentry); + dentry = ERR_PTR(-ESTALE); + } +out_pathname: + free_page((unsigned long)pathname); +out_h_parent: + dput(h_parent); +out: + AuTraceErrPtr(dentry); + return dentry; +} + +/* ---------------------------------------------------------------------- */ + +static struct dentry * +aufs_fh_to_dentry(struct super_block *sb, struct fid *fid, int fh_len, + int fh_type) +{ + struct dentry *dentry; + __u32 *fh = fid->raw; + struct au_branch *br; + ino_t ino, dir_ino; + struct au_nfsd_si_lock nsi_lock = { + .force_lock = 0 + }; + + dentry = ERR_PTR(-ESTALE); + /* it should never happen, but the file handle is unreliable */ + if (unlikely(fh_len < Fh_tail)) + goto out; + nsi_lock.sigen = fh[Fh_sigen]; + nsi_lock.br_id = fh[Fh_br_id]; + + /* branch id may be wrapped around */ + br = NULL; + if (unlikely(si_nfsd_read_lock(sb, &nsi_lock))) + goto out; + nsi_lock.force_lock = 1; + + /* is this inode still cached? */ + ino = decode_ino(fh + Fh_ino); + /* it should never happen */ + if (unlikely(ino == AUFS_ROOT_INO)) + goto out; + + dir_ino = decode_ino(fh + Fh_dir_ino); + dentry = decode_by_ino(sb, ino, dir_ino); + if (IS_ERR(dentry)) + goto out_unlock; + if (dentry) + goto accept; + + /* is the parent dir cached? */ + br = au_sbr(sb, nsi_lock.bindex); + atomic_inc(&br->br_count); + dentry = decode_by_dir_ino(sb, ino, dir_ino, &nsi_lock); + if (IS_ERR(dentry)) + goto out_unlock; + if (dentry) + goto accept; + + /* lookup path */ + dentry = decode_by_path(sb, ino, fh, fh_len, &nsi_lock); + if (IS_ERR(dentry)) + goto out_unlock; + if (unlikely(!dentry)) + /* todo?: make it ESTALE */ + goto out_unlock; + +accept: + if (!au_digen_test(dentry, au_sigen(sb)) + && dentry->d_inode->i_generation == fh[Fh_igen]) + goto out_unlock; /* success */ + + dput(dentry); + dentry = ERR_PTR(-ESTALE); +out_unlock: + if (br) + atomic_dec(&br->br_count); + si_read_unlock(sb); +out: + AuTraceErrPtr(dentry); + return dentry; +} + +#if 0 /* reserved for future use */ +/* support subtreecheck option */ +static struct dentry *aufs_fh_to_parent(struct super_block *sb, struct fid *fid, + int fh_len, int fh_type) +{ + struct dentry *parent; + __u32 *fh = fid->raw; + ino_t dir_ino; + + dir_ino = decode_ino(fh + Fh_dir_ino); + parent = decode_by_ino(sb, dir_ino, 0); + if (IS_ERR(parent)) + goto out; + if (!parent) + parent = decode_by_path(sb, au_br_index(sb, fh[Fh_br_id]), + dir_ino, fh, fh_len); + +out: + AuTraceErrPtr(parent); + return parent; +} +#endif + +/* ---------------------------------------------------------------------- */ + +static int aufs_encode_fh(struct dentry *dentry, __u32 *fh, int *max_len, + int connectable) +{ + int err; + aufs_bindex_t bindex, bend; + struct super_block *sb, *h_sb; + struct inode *inode; + struct dentry *parent, *h_parent; + struct au_branch *br; + + AuDebugOn(au_test_anon(dentry)); + + parent = NULL; + err = -ENOSPC; + if (unlikely(*max_len <= Fh_tail)) { + AuWarn1("NFSv2 client (max_len %d)?\n", *max_len); + goto out; + } + + err = FILEID_ROOT; + if (IS_ROOT(dentry)) { + AuDebugOn(dentry->d_inode->i_ino != AUFS_ROOT_INO); + goto out; + } + + h_parent = NULL; + err = aufs_read_lock(dentry, AuLock_FLUSH | AuLock_IR | AuLock_GEN); + if (unlikely(err)) + goto out; + + inode = dentry->d_inode; + AuDebugOn(!inode); + sb = dentry->d_sb; +#ifdef CONFIG_AUFS_DEBUG + if (unlikely(!au_opt_test(au_mntflags(sb), XINO))) + AuWarn1("NFS-exporting requires xino\n"); +#endif + err = -EIO; + parent = dget_parent(dentry); + di_read_lock_parent(parent, !AuLock_IR); + bend = au_dbtaildir(parent); + for (bindex = au_dbstart(parent); bindex <= bend; bindex++) { + h_parent = au_h_dptr(parent, bindex); + if (h_parent) { + dget(h_parent); + break; + } + } + if (unlikely(!h_parent)) + goto out_unlock; + + err = -EPERM; + br = au_sbr(sb, bindex); + h_sb = br->br_mnt->mnt_sb; + if (unlikely(!h_sb->s_export_op)) { + AuErr1("%s branch is not exportable\n", au_sbtype(h_sb)); + goto out_dput; + } + + fh[Fh_br_id] = br->br_id; + fh[Fh_sigen] = au_sigen(sb); + encode_ino(fh + Fh_ino, inode->i_ino); + encode_ino(fh + Fh_dir_ino, parent->d_inode->i_ino); + fh[Fh_igen] = inode->i_generation; + + *max_len -= Fh_tail; + fh[Fh_h_type] = exportfs_encode_fh(h_parent, (void *)(fh + Fh_tail), + max_len, + /*connectable or subtreecheck*/0); + err = fh[Fh_h_type]; + *max_len += Fh_tail; + /* todo: macros? */ + if (err != 255) + err = 99; + else + AuWarn1("%s encode_fh failed\n", au_sbtype(h_sb)); + +out_dput: + dput(h_parent); +out_unlock: + di_read_unlock(parent, !AuLock_IR); + dput(parent); + aufs_read_unlock(dentry, AuLock_IR); +out: + if (unlikely(err < 0)) + err = 255; + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_commit_metadata(struct inode *inode) +{ + int err; + aufs_bindex_t bindex; + struct super_block *sb; + struct inode *h_inode; + int (*f)(struct inode *inode); + + sb = inode->i_sb; + si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW); + ii_write_lock_child(inode); + bindex = au_ibstart(inode); + AuDebugOn(bindex < 0); + h_inode = au_h_iptr(inode, bindex); + + f = h_inode->i_sb->s_export_op->commit_metadata; + if (f) + err = f(h_inode); + else { + struct writeback_control wbc = { + .sync_mode = WB_SYNC_ALL, + .nr_to_write = 0 /* metadata only */ + }; + + err = sync_inode(h_inode, &wbc); + } + + au_cpup_attr_timesizes(inode); + ii_write_unlock(inode); + si_read_unlock(sb); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static struct export_operations aufs_export_op = { + .fh_to_dentry = aufs_fh_to_dentry, + /* .fh_to_parent = aufs_fh_to_parent, */ + .encode_fh = aufs_encode_fh, + .commit_metadata = aufs_commit_metadata +}; + +void au_export_init(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + __u32 u; + + sb->s_export_op = &aufs_export_op; + sbinfo = au_sbi(sb); + sbinfo->si_xigen = NULL; + get_random_bytes(&u, sizeof(u)); + BUILD_BUG_ON(sizeof(u) != sizeof(int)); + atomic_set(&sbinfo->si_xigen_next, u); +} --- linux-3.2.0.orig/ubuntu/aufs/dbgaufs.c +++ linux-3.2.0/ubuntu/aufs/dbgaufs.c @@ -0,0 +1,334 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * debugfs interface + */ + +#include +#include "aufs.h" + +#ifndef CONFIG_SYSFS +#error DEBUG_FS depends upon SYSFS +#endif + +static struct dentry *dbgaufs; +static const mode_t dbgaufs_mode = S_IRUSR | S_IRGRP | S_IROTH; + +/* 20 is max digits length of ulong 64 */ +struct dbgaufs_arg { + int n; + char a[20 * 4]; +}; + +/* + * common function for all XINO files + */ +static int dbgaufs_xi_release(struct inode *inode __maybe_unused, + struct file *file) +{ + kfree(file->private_data); + return 0; +} + +static int dbgaufs_xi_open(struct file *xf, struct file *file, int do_fcnt) +{ + int err; + struct kstat st; + struct dbgaufs_arg *p; + + err = -ENOMEM; + p = kmalloc(sizeof(*p), GFP_NOFS); + if (unlikely(!p)) + goto out; + + err = 0; + p->n = 0; + file->private_data = p; + if (!xf) + goto out; + + err = vfs_getattr(xf->f_vfsmnt, xf->f_dentry, &st); + if (!err) { + if (do_fcnt) + p->n = snprintf + (p->a, sizeof(p->a), "%ld, %llux%lu %lld\n", + (long)file_count(xf), st.blocks, st.blksize, + (long long)st.size); + else + p->n = snprintf(p->a, sizeof(p->a), "%llux%lu %lld\n", + st.blocks, st.blksize, + (long long)st.size); + AuDebugOn(p->n >= sizeof(p->a)); + } else { + p->n = snprintf(p->a, sizeof(p->a), "err %d\n", err); + err = 0; + } + +out: + return err; + +} + +static ssize_t dbgaufs_xi_read(struct file *file, char __user *buf, + size_t count, loff_t *ppos) +{ + struct dbgaufs_arg *p; + + p = file->private_data; + return simple_read_from_buffer(buf, count, ppos, p->a, p->n); +} + +/* ---------------------------------------------------------------------- */ + +static int dbgaufs_xib_open(struct inode *inode, struct file *file) +{ + int err; + struct au_sbinfo *sbinfo; + struct super_block *sb; + + sbinfo = inode->i_private; + sb = sbinfo->si_sb; + si_noflush_read_lock(sb); + err = dbgaufs_xi_open(sbinfo->si_xib, file, /*do_fcnt*/0); + si_read_unlock(sb); + return err; +} + +static const struct file_operations dbgaufs_xib_fop = { + .owner = THIS_MODULE, + .open = dbgaufs_xib_open, + .release = dbgaufs_xi_release, + .read = dbgaufs_xi_read +}; + +/* ---------------------------------------------------------------------- */ + +#define DbgaufsXi_PREFIX "xi" + +static int dbgaufs_xino_open(struct inode *inode, struct file *file) +{ + int err; + long l; + struct au_sbinfo *sbinfo; + struct super_block *sb; + struct file *xf; + struct qstr *name; + + err = -ENOENT; + xf = NULL; + name = &file->f_dentry->d_name; + if (unlikely(name->len < sizeof(DbgaufsXi_PREFIX) + || memcmp(name->name, DbgaufsXi_PREFIX, + sizeof(DbgaufsXi_PREFIX) - 1))) + goto out; + err = kstrtol(name->name + sizeof(DbgaufsXi_PREFIX) - 1, 10, &l); + if (unlikely(err)) + goto out; + + sbinfo = inode->i_private; + sb = sbinfo->si_sb; + si_noflush_read_lock(sb); + if (l <= au_sbend(sb)) { + xf = au_sbr(sb, (aufs_bindex_t)l)->br_xino.xi_file; + err = dbgaufs_xi_open(xf, file, /*do_fcnt*/1); + } else + err = -ENOENT; + si_read_unlock(sb); + +out: + return err; +} + +static const struct file_operations dbgaufs_xino_fop = { + .owner = THIS_MODULE, + .open = dbgaufs_xino_open, + .release = dbgaufs_xi_release, + .read = dbgaufs_xi_read +}; + +void dbgaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex) +{ + aufs_bindex_t bend; + struct au_branch *br; + struct au_xino_file *xi; + + if (!au_sbi(sb)->si_dbgaufs) + return; + + bend = au_sbend(sb); + for (; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + xi = &br->br_xino; + if (xi->xi_dbgaufs) { + debugfs_remove(xi->xi_dbgaufs); + xi->xi_dbgaufs = NULL; + } + } +} + +void dbgaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex) +{ + struct au_sbinfo *sbinfo; + struct dentry *parent; + struct au_branch *br; + struct au_xino_file *xi; + aufs_bindex_t bend; + char name[sizeof(DbgaufsXi_PREFIX) + 5]; /* "xi" bindex NULL */ + + sbinfo = au_sbi(sb); + parent = sbinfo->si_dbgaufs; + if (!parent) + return; + + bend = au_sbend(sb); + for (; bindex <= bend; bindex++) { + snprintf(name, sizeof(name), DbgaufsXi_PREFIX "%d", bindex); + br = au_sbr(sb, bindex); + xi = &br->br_xino; + AuDebugOn(xi->xi_dbgaufs); + xi->xi_dbgaufs = debugfs_create_file(name, dbgaufs_mode, parent, + sbinfo, &dbgaufs_xino_fop); + /* ignore an error */ + if (unlikely(!xi->xi_dbgaufs)) + AuWarn1("failed %s under debugfs\n", name); + } +} + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_EXPORT +static int dbgaufs_xigen_open(struct inode *inode, struct file *file) +{ + int err; + struct au_sbinfo *sbinfo; + struct super_block *sb; + + sbinfo = inode->i_private; + sb = sbinfo->si_sb; + si_noflush_read_lock(sb); + err = dbgaufs_xi_open(sbinfo->si_xigen, file, /*do_fcnt*/0); + si_read_unlock(sb); + return err; +} + +static const struct file_operations dbgaufs_xigen_fop = { + .owner = THIS_MODULE, + .open = dbgaufs_xigen_open, + .release = dbgaufs_xi_release, + .read = dbgaufs_xi_read +}; + +static int dbgaufs_xigen_init(struct au_sbinfo *sbinfo) +{ + int err; + + /* + * This function is a dynamic '__init' fucntion actually, + * so the tiny check for si_rwsem is unnecessary. + */ + /* AuRwMustWriteLock(&sbinfo->si_rwsem); */ + + err = -EIO; + sbinfo->si_dbgaufs_xigen = debugfs_create_file + ("xigen", dbgaufs_mode, sbinfo->si_dbgaufs, sbinfo, + &dbgaufs_xigen_fop); + if (sbinfo->si_dbgaufs_xigen) + err = 0; + + return err; +} +#else +static int dbgaufs_xigen_init(struct au_sbinfo *sbinfo) +{ + return 0; +} +#endif /* CONFIG_AUFS_EXPORT */ + +/* ---------------------------------------------------------------------- */ + +void dbgaufs_si_fin(struct au_sbinfo *sbinfo) +{ + /* + * This function is a dynamic '__init' fucntion actually, + * so the tiny check for si_rwsem is unnecessary. + */ + /* AuRwMustWriteLock(&sbinfo->si_rwsem); */ + + debugfs_remove_recursive(sbinfo->si_dbgaufs); + sbinfo->si_dbgaufs = NULL; + kobject_put(&sbinfo->si_kobj); +} + +int dbgaufs_si_init(struct au_sbinfo *sbinfo) +{ + int err; + char name[SysaufsSiNameLen]; + + /* + * This function is a dynamic '__init' fucntion actually, + * so the tiny check for si_rwsem is unnecessary. + */ + /* AuRwMustWriteLock(&sbinfo->si_rwsem); */ + + err = -ENOENT; + if (!dbgaufs) { + AuErr1("/debug/aufs is uninitialized\n"); + goto out; + } + + err = -EIO; + sysaufs_name(sbinfo, name); + sbinfo->si_dbgaufs = debugfs_create_dir(name, dbgaufs); + if (unlikely(!sbinfo->si_dbgaufs)) + goto out; + kobject_get(&sbinfo->si_kobj); + + sbinfo->si_dbgaufs_xib = debugfs_create_file + ("xib", dbgaufs_mode, sbinfo->si_dbgaufs, sbinfo, + &dbgaufs_xib_fop); + if (unlikely(!sbinfo->si_dbgaufs_xib)) + goto out_dir; + + err = dbgaufs_xigen_init(sbinfo); + if (!err) + goto out; /* success */ + +out_dir: + dbgaufs_si_fin(sbinfo); +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +void dbgaufs_fin(void) +{ + debugfs_remove(dbgaufs); +} + +int __init dbgaufs_init(void) +{ + int err; + + err = -EIO; + dbgaufs = debugfs_create_dir(AUFS_NAME, NULL); + if (dbgaufs) + err = 0; + return err; +} --- linux-3.2.0.orig/ubuntu/aufs/magic.mk +++ linux-3.2.0/ubuntu/aufs/magic.mk @@ -0,0 +1,54 @@ + +# defined in ${srctree}/fs/fuse/inode.c +# tristate +ifdef CONFIG_FUSE_FS +ccflags-y += -DFUSE_SUPER_MAGIC=0x65735546 +endif + +# defined in ${srctree}/fs/ocfs2/ocfs2_fs.h +# tristate +ifdef CONFIG_OCFS2_FS +ccflags-y += -DOCFS2_SUPER_MAGIC=0x7461636f +endif + +# defined in ${srctree}/fs/ocfs2/dlm/userdlm.h +# tristate +ifdef CONFIG_OCFS2_FS_O2CB +ccflags-y += -DDLMFS_MAGIC=0x76a9f425 +endif + +# defined in ${srctree}/fs/cifs/cifsfs.c +# tristate +ifdef CONFIG_CIFS_FS +ccflags-y += -DCIFS_MAGIC_NUMBER=0xFF534D42 +endif + +# defined in ${srctree}/fs/xfs/xfs_sb.h +# tristate +ifdef CONFIG_XFS_FS +ccflags-y += -DXFS_SB_MAGIC=0x58465342 +endif + +# defined in ${srctree}/fs/configfs/mount.c +# tristate +ifdef CONFIG_CONFIGFS_FS +ccflags-y += -DCONFIGFS_MAGIC=0x62656570 +endif + +# defined in ${srctree}/fs/9p/v9fs.h +# tristate +ifdef CONFIG_9P_FS +ccflags-y += -DV9FS_MAGIC=0x01021997 +endif + +# defined in ${srctree}/fs/ubifs/ubifs.h +# tristate +ifdef CONFIG_UBIFS_FS +ccflags-y += -DUBIFS_SUPER_MAGIC=0x24051905 +endif + +# defined in ${srctree}/fs/hfsplus/hfsplus_raw.h +# tristate +ifdef CONFIG_HFSPLUS_FS +ccflags-y += -DHFSPLUS_SUPER_MAGIC=0x482b +endif --- linux-3.2.0.orig/ubuntu/aufs/branch.h +++ linux-3.2.0/ubuntu/aufs/branch.h @@ -0,0 +1,230 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * branch filesystems and xino for them + */ + +#ifndef __AUFS_BRANCH_H__ +#define __AUFS_BRANCH_H__ + +#ifdef __KERNEL__ + +#include +#include "dynop.h" +#include "rwsem.h" +#include "super.h" + +/* ---------------------------------------------------------------------- */ + +/* a xino file */ +struct au_xino_file { + struct file *xi_file; + struct mutex xi_nondir_mtx; + + /* todo: make xino files an array to support huge inode number */ + +#ifdef CONFIG_DEBUG_FS + struct dentry *xi_dbgaufs; +#endif +}; + +/* members for writable branch only */ +enum {AuBrWh_BASE, AuBrWh_PLINK, AuBrWh_ORPH, AuBrWh_Last}; +struct au_wbr { + struct au_rwsem wbr_wh_rwsem; + struct dentry *wbr_wh[AuBrWh_Last]; + atomic_t wbr_wh_running; +#define wbr_whbase wbr_wh[AuBrWh_BASE] /* whiteout base */ +#define wbr_plink wbr_wh[AuBrWh_PLINK] /* pseudo-link dir */ +#define wbr_orph wbr_wh[AuBrWh_ORPH] /* dir for orphans */ + + /* mfs mode */ + unsigned long long wbr_bytes; +}; + +/* ext2 has 3 types of operations at least, ext3 has 4 */ +#define AuBrDynOp (AuDyLast * 4) + +/* protected by superblock rwsem */ +struct au_branch { + struct au_xino_file br_xino; + + aufs_bindex_t br_id; + + int br_perm; + struct vfsmount *br_mnt; + spinlock_t br_dykey_lock; + struct au_dykey *br_dykey[AuBrDynOp]; + atomic_t br_count; + + struct au_wbr *br_wbr; + + /* xino truncation */ + blkcnt_t br_xino_upper; /* watermark in blocks */ + atomic_t br_xino_running; + +#ifdef CONFIG_AUFS_HFSNOTIFY + struct fsnotify_group *br_hfsn_group; + struct fsnotify_ops br_hfsn_ops; +#endif + +#ifdef CONFIG_SYSFS + /* an entry under sysfs per mount-point */ + char br_name[8]; + struct attribute br_attr; +#endif +}; + +/* ---------------------------------------------------------------------- */ + +/* branch permissions and attributes */ +#define AuBrPerm_RW 1 /* writable, hardlinkable wh */ +#define AuBrPerm_RO (1 << 1) /* readonly */ +#define AuBrPerm_RR (1 << 2) /* natively readonly */ +#define AuBrPerm_Mask (AuBrPerm_RW | AuBrPerm_RO | AuBrPerm_RR) + +#define AuBrRAttr_WH (1 << 3) /* whiteout-able */ + +#define AuBrWAttr_NoLinkWH (1 << 4) /* un-hardlinkable whiteouts */ + +static inline int au_br_writable(int brperm) +{ + return brperm & AuBrPerm_RW; +} + +static inline int au_br_whable(int brperm) +{ + return brperm & (AuBrPerm_RW | AuBrRAttr_WH); +} + +static inline int au_br_wh_linkable(int brperm) +{ + return !(brperm & AuBrWAttr_NoLinkWH); +} + +static inline int au_br_rdonly(struct au_branch *br) +{ + return ((br->br_mnt->mnt_sb->s_flags & MS_RDONLY) + || !au_br_writable(br->br_perm)) + ? -EROFS : 0; +} + +static inline int au_br_hnotifyable(int brperm __maybe_unused) +{ +#ifdef CONFIG_AUFS_HNOTIFY + return !(brperm & AuBrPerm_RR); +#else + return 0; +#endif +} + +/* ---------------------------------------------------------------------- */ + +/* branch.c */ +struct au_sbinfo; +void au_br_free(struct au_sbinfo *sinfo); +int au_br_index(struct super_block *sb, aufs_bindex_t br_id); +struct au_opt_add; +int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount); +struct au_opt_del; +int au_br_del(struct super_block *sb, struct au_opt_del *del, int remount); +long au_ibusy_ioctl(struct file *file, unsigned long arg); +#ifdef CONFIG_COMPAT +long au_ibusy_compat_ioctl(struct file *file, unsigned long arg); +#endif +struct au_opt_mod; +int au_br_mod(struct super_block *sb, struct au_opt_mod *mod, int remount, + int *do_refresh); + +/* xino.c */ +static const loff_t au_loff_max = LLONG_MAX; + +int au_xib_trunc(struct super_block *sb); +ssize_t xino_fread(au_readf_t func, struct file *file, void *buf, size_t size, + loff_t *pos); +ssize_t xino_fwrite(au_writef_t func, struct file *file, void *buf, size_t size, + loff_t *pos); +struct file *au_xino_create2(struct file *base_file, struct file *copy_src); +struct file *au_xino_create(struct super_block *sb, char *fname, int silent); +ino_t au_xino_new_ino(struct super_block *sb); +void au_xino_delete_inode(struct inode *inode, const int unlinked); +int au_xino_write(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + ino_t ino); +int au_xino_read(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino, + ino_t *ino); +int au_xino_br(struct super_block *sb, struct au_branch *br, ino_t hino, + struct file *base_file, int do_test); +int au_xino_trunc(struct super_block *sb, aufs_bindex_t bindex); + +struct au_opt_xino; +int au_xino_set(struct super_block *sb, struct au_opt_xino *xino, int remount); +void au_xino_clr(struct super_block *sb); +struct file *au_xino_def(struct super_block *sb); +int au_xino_path(struct seq_file *seq, struct file *file); + +/* ---------------------------------------------------------------------- */ + +/* Superblock to branch */ +static inline +aufs_bindex_t au_sbr_id(struct super_block *sb, aufs_bindex_t bindex) +{ + return au_sbr(sb, bindex)->br_id; +} + +static inline +struct vfsmount *au_sbr_mnt(struct super_block *sb, aufs_bindex_t bindex) +{ + return au_sbr(sb, bindex)->br_mnt; +} + +static inline +struct super_block *au_sbr_sb(struct super_block *sb, aufs_bindex_t bindex) +{ + return au_sbr_mnt(sb, bindex)->mnt_sb; +} + +static inline void au_sbr_put(struct super_block *sb, aufs_bindex_t bindex) +{ + atomic_dec(&au_sbr(sb, bindex)->br_count); +} + +static inline int au_sbr_perm(struct super_block *sb, aufs_bindex_t bindex) +{ + return au_sbr(sb, bindex)->br_perm; +} + +static inline int au_sbr_whable(struct super_block *sb, aufs_bindex_t bindex) +{ + return au_br_whable(au_sbr_perm(sb, bindex)); +} + +/* ---------------------------------------------------------------------- */ + +/* + * wbr_wh_read_lock, wbr_wh_write_lock + * wbr_wh_read_unlock, wbr_wh_write_unlock, wbr_wh_downgrade_lock + */ +AuSimpleRwsemFuncs(wbr_wh, struct au_wbr *wbr, &wbr->wbr_wh_rwsem); + +#define WbrWhMustNoWaiters(wbr) AuRwMustNoWaiters(&wbr->wbr_wh_rwsem) +#define WbrWhMustAnyLock(wbr) AuRwMustAnyLock(&wbr->wbr_wh_rwsem) +#define WbrWhMustWriteLock(wbr) AuRwMustWriteLock(&wbr->wbr_wh_rwsem) + +#endif /* __KERNEL__ */ +#endif /* __AUFS_BRANCH_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/debug.h +++ linux-3.2.0/ubuntu/aufs/debug.h @@ -0,0 +1,243 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * debug print functions + */ + +#ifndef __AUFS_DEBUG_H__ +#define __AUFS_DEBUG_H__ + +#ifdef __KERNEL__ + +#include +#include +#include +#include + +#ifdef CONFIG_AUFS_DEBUG +#define AuDebugOn(a) BUG_ON(a) + +/* module parameter */ +extern int aufs_debug; +static inline void au_debug(int n) +{ + aufs_debug = n; + smp_mb(); +} + +static inline int au_debug_test(void) +{ + return aufs_debug; +} +#else +#define AuDebugOn(a) do {} while (0) +AuStubVoid(au_debug, int n) +AuStubInt0(au_debug_test, void) +#endif /* CONFIG_AUFS_DEBUG */ + +/* ---------------------------------------------------------------------- */ + +/* debug print */ + +#define AuDbg(fmt, ...) do { \ + if (au_debug_test()) \ + pr_debug("DEBUG: " fmt, ##__VA_ARGS__); \ +} while (0) +#define AuLabel(l) AuDbg(#l "\n") +#define AuIOErr(fmt, ...) pr_err("I/O Error, " fmt, ##__VA_ARGS__) +#define AuWarn1(fmt, ...) do { \ + static unsigned char _c; \ + if (!_c++) \ + pr_warning(fmt, ##__VA_ARGS__); \ +} while (0) + +#define AuErr1(fmt, ...) do { \ + static unsigned char _c; \ + if (!_c++) \ + pr_err(fmt, ##__VA_ARGS__); \ +} while (0) + +#define AuIOErr1(fmt, ...) do { \ + static unsigned char _c; \ + if (!_c++) \ + AuIOErr(fmt, ##__VA_ARGS__); \ +} while (0) + +#define AuUnsupportMsg "This operation is not supported." \ + " Please report this application to aufs-users ML." +#define AuUnsupport(fmt, ...) do { \ + pr_err(AuUnsupportMsg "\n" fmt, ##__VA_ARGS__); \ + dump_stack(); \ +} while (0) + +#define AuTraceErr(e) do { \ + if (unlikely((e) < 0)) \ + AuDbg("err %d\n", (int)(e)); \ +} while (0) + +#define AuTraceErrPtr(p) do { \ + if (IS_ERR(p)) \ + AuDbg("err %ld\n", PTR_ERR(p)); \ +} while (0) + +/* dirty macros for debug print, use with "%.*s" and caution */ +#define AuLNPair(qstr) (qstr)->len, (qstr)->name +#define AuDLNPair(d) AuLNPair(&(d)->d_name) + +/* ---------------------------------------------------------------------- */ + +struct au_sbinfo; +struct au_finfo; +struct dentry; +#ifdef CONFIG_AUFS_DEBUG +extern char *au_plevel; +struct au_nhash; +void au_dpri_whlist(struct au_nhash *whlist); +struct au_vdir; +void au_dpri_vdir(struct au_vdir *vdir); +struct inode; +void au_dpri_inode(struct inode *inode); +void au_dpri_dalias(struct inode *inode); +void au_dpri_dentry(struct dentry *dentry); +struct file; +void au_dpri_file(struct file *filp); +struct super_block; +void au_dpri_sb(struct super_block *sb); + +void au_dbg_sleep_jiffy(int jiffy); +struct iattr; +void au_dbg_iattr(struct iattr *ia); + +#define au_dbg_verify_dinode(d) __au_dbg_verify_dinode(d, __func__, __LINE__) +void __au_dbg_verify_dinode(struct dentry *dentry, const char *func, int line); +void au_dbg_verify_dir_parent(struct dentry *dentry, unsigned int sigen); +void au_dbg_verify_nondir_parent(struct dentry *dentry, unsigned int sigen); +void au_dbg_verify_gen(struct dentry *parent, unsigned int sigen); +void au_dbg_verify_kthread(void); + +int __init au_debug_init(void); +void au_debug_sbinfo_init(struct au_sbinfo *sbinfo); +#define AuDbgWhlist(w) do { \ + AuDbg(#w "\n"); \ + au_dpri_whlist(w); \ +} while (0) + +#define AuDbgVdir(v) do { \ + AuDbg(#v "\n"); \ + au_dpri_vdir(v); \ +} while (0) + +#define AuDbgInode(i) do { \ + AuDbg(#i "\n"); \ + au_dpri_inode(i); \ +} while (0) + +#define AuDbgDAlias(i) do { \ + AuDbg(#i "\n"); \ + au_dpri_dalias(i); \ +} while (0) + +#define AuDbgDentry(d) do { \ + AuDbg(#d "\n"); \ + au_dpri_dentry(d); \ +} while (0) + +#define AuDbgFile(f) do { \ + AuDbg(#f "\n"); \ + au_dpri_file(f); \ +} while (0) + +#define AuDbgSb(sb) do { \ + AuDbg(#sb "\n"); \ + au_dpri_sb(sb); \ +} while (0) + +#define AuDbgSleep(sec) do { \ + AuDbg("sleep %d sec\n", sec); \ + ssleep(sec); \ +} while (0) + +#define AuDbgSleepJiffy(jiffy) do { \ + AuDbg("sleep %d jiffies\n", jiffy); \ + au_dbg_sleep_jiffy(jiffy); \ +} while (0) + +#define AuDbgIAttr(ia) do { \ + AuDbg("ia_valid 0x%x\n", (ia)->ia_valid); \ + au_dbg_iattr(ia); \ +} while (0) + +#define AuDbgSym(addr) do { \ + char sym[KSYM_SYMBOL_LEN]; \ + sprint_symbol(sym, (unsigned long)addr); \ + AuDbg("%s\n", sym); \ +} while (0) + +#define AuInfoSym(addr) do { \ + char sym[KSYM_SYMBOL_LEN]; \ + sprint_symbol(sym, (unsigned long)addr); \ + AuInfo("%s\n", sym); \ +} while (0) +#else +AuStubVoid(au_dbg_verify_dinode, struct dentry *dentry) +AuStubVoid(au_dbg_verify_dir_parent, struct dentry *dentry, unsigned int sigen) +AuStubVoid(au_dbg_verify_nondir_parent, struct dentry *dentry, + unsigned int sigen) +AuStubVoid(au_dbg_verify_gen, struct dentry *parent, unsigned int sigen) +AuStubVoid(au_dbg_verify_kthread, void) +AuStubInt0(__init au_debug_init, void) +AuStubVoid(au_debug_sbinfo_init, struct au_sbinfo *sbinfo) + +#define AuDbgWhlist(w) do {} while (0) +#define AuDbgVdir(v) do {} while (0) +#define AuDbgInode(i) do {} while (0) +#define AuDbgDAlias(i) do {} while (0) +#define AuDbgDentry(d) do {} while (0) +#define AuDbgFile(f) do {} while (0) +#define AuDbgSb(sb) do {} while (0) +#define AuDbgSleep(sec) do {} while (0) +#define AuDbgSleepJiffy(jiffy) do {} while (0) +#define AuDbgIAttr(ia) do {} while (0) +#define AuDbgSym(addr) do {} while (0) +#define AuInfoSym(addr) do {} while (0) +#endif /* CONFIG_AUFS_DEBUG */ + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_MAGIC_SYSRQ +int __init au_sysrq_init(void); +void au_sysrq_fin(void); + +#ifdef CONFIG_HW_CONSOLE +#define au_dbg_blocked() do { \ + WARN_ON(1); \ + handle_sysrq('w'); \ +} while (0) +#else +AuStubVoid(au_dbg_blocked, void) +#endif + +#else +AuStubInt0(__init au_sysrq_init, void) +AuStubVoid(au_sysrq_fin, void) +AuStubVoid(au_dbg_blocked, void) +#endif /* CONFIG_AUFS_MAGIC_SYSRQ */ + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DEBUG_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/dentry.c +++ linux-3.2.0/ubuntu/aufs/dentry.c @@ -0,0 +1,1140 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * lookup and dentry operations + */ + +#include +#include "aufs.h" + +static void au_h_nd(struct nameidata *h_nd, struct nameidata *nd) +{ + if (nd) { + *h_nd = *nd; + + /* + * gave up supporting LOOKUP_CREATE/OPEN for lower fs, + * due to whiteout and branch permission. + */ + h_nd->flags &= ~(/*LOOKUP_PARENT |*/ LOOKUP_OPEN | LOOKUP_CREATE + | LOOKUP_FOLLOW | LOOKUP_EXCL); + /* unnecessary? */ + h_nd->intent.open.file = NULL; + } else + memset(h_nd, 0, sizeof(*h_nd)); +} + +struct au_lkup_one_args { + struct dentry **errp; + struct qstr *name; + struct dentry *h_parent; + struct au_branch *br; + struct nameidata *nd; +}; + +struct dentry *au_lkup_one(struct qstr *name, struct dentry *h_parent, + struct au_branch *br, struct nameidata *nd) +{ + struct dentry *h_dentry; + int err; + struct nameidata h_nd; + + if (au_test_fs_null_nd(h_parent->d_sb)) + return vfsub_lookup_one_len(name->name, h_parent, name->len); + + au_h_nd(&h_nd, nd); + h_nd.path.dentry = h_parent; + h_nd.path.mnt = br->br_mnt; + + err = vfsub_name_hash(name->name, &h_nd.last, name->len); + h_dentry = ERR_PTR(err); + if (!err) { + path_get(&h_nd.path); + h_dentry = vfsub_lookup_hash(&h_nd); + path_put(&h_nd.path); + } + + AuTraceErrPtr(h_dentry); + return h_dentry; +} + +static void au_call_lkup_one(void *args) +{ + struct au_lkup_one_args *a = args; + *a->errp = au_lkup_one(a->name, a->h_parent, a->br, a->nd); +} + +#define AuLkup_ALLOW_NEG 1 +#define au_ftest_lkup(flags, name) ((flags) & AuLkup_##name) +#define au_fset_lkup(flags, name) \ + do { (flags) |= AuLkup_##name; } while (0) +#define au_fclr_lkup(flags, name) \ + do { (flags) &= ~AuLkup_##name; } while (0) + +struct au_do_lookup_args { + unsigned int flags; + mode_t type; + struct nameidata *nd; +}; + +/* + * returns positive/negative dentry, NULL or an error. + * NULL means whiteout-ed or not-found. + */ +static struct dentry* +au_do_lookup(struct dentry *h_parent, struct dentry *dentry, + aufs_bindex_t bindex, struct qstr *wh_name, + struct au_do_lookup_args *args) +{ + struct dentry *h_dentry; + struct inode *h_inode, *inode; + struct au_branch *br; + int wh_found, opq; + unsigned char wh_able; + const unsigned char allow_neg = !!au_ftest_lkup(args->flags, ALLOW_NEG); + + wh_found = 0; + br = au_sbr(dentry->d_sb, bindex); + wh_able = !!au_br_whable(br->br_perm); + if (wh_able) + wh_found = au_wh_test(h_parent, wh_name, br, /*try_sio*/0); + h_dentry = ERR_PTR(wh_found); + if (!wh_found) + goto real_lookup; + if (unlikely(wh_found < 0)) + goto out; + + /* We found a whiteout */ + /* au_set_dbend(dentry, bindex); */ + au_set_dbwh(dentry, bindex); + if (!allow_neg) + return NULL; /* success */ + +real_lookup: + h_dentry = au_lkup_one(&dentry->d_name, h_parent, br, args->nd); + if (IS_ERR(h_dentry)) + goto out; + + h_inode = h_dentry->d_inode; + if (!h_inode) { + if (!allow_neg) + goto out_neg; + } else if (wh_found + || (args->type && args->type != (h_inode->i_mode & S_IFMT))) + goto out_neg; + + if (au_dbend(dentry) <= bindex) + au_set_dbend(dentry, bindex); + if (au_dbstart(dentry) < 0 || bindex < au_dbstart(dentry)) + au_set_dbstart(dentry, bindex); + au_set_h_dptr(dentry, bindex, h_dentry); + + inode = dentry->d_inode; + if (!h_inode || !S_ISDIR(h_inode->i_mode) || !wh_able + || (inode && !S_ISDIR(inode->i_mode))) + goto out; /* success */ + + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + opq = au_diropq_test(h_dentry, br); + mutex_unlock(&h_inode->i_mutex); + if (opq > 0) + au_set_dbdiropq(dentry, bindex); + else if (unlikely(opq < 0)) { + au_set_h_dptr(dentry, bindex, NULL); + h_dentry = ERR_PTR(opq); + } + goto out; + +out_neg: + dput(h_dentry); + h_dentry = NULL; +out: + return h_dentry; +} + +static int au_test_shwh(struct super_block *sb, const struct qstr *name) +{ + if (unlikely(!au_opt_test(au_mntflags(sb), SHWH) + && !strncmp(name->name, AUFS_WH_PFX, AUFS_WH_PFX_LEN))) + return -EPERM; + return 0; +} + +/* + * returns the number of lower positive dentries, + * otherwise an error. + * can be called at unlinking with @type is zero. + */ +int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type, + struct nameidata *nd) +{ + int npositive, err; + aufs_bindex_t bindex, btail, bdiropq; + unsigned char isdir; + struct qstr whname; + struct au_do_lookup_args args = { + .flags = 0, + .type = type, + .nd = nd + }; + const struct qstr *name = &dentry->d_name; + struct dentry *parent; + struct inode *inode; + + err = au_test_shwh(dentry->d_sb, name); + if (unlikely(err)) + goto out; + + err = au_wh_name_alloc(&whname, name); + if (unlikely(err)) + goto out; + + inode = dentry->d_inode; + isdir = !!(inode && S_ISDIR(inode->i_mode)); + if (!type) + au_fset_lkup(args.flags, ALLOW_NEG); + + npositive = 0; + parent = dget_parent(dentry); + btail = au_dbtaildir(parent); + for (bindex = bstart; bindex <= btail; bindex++) { + struct dentry *h_parent, *h_dentry; + struct inode *h_inode, *h_dir; + + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry) { + if (h_dentry->d_inode) + npositive++; + if (type != S_IFDIR) + break; + continue; + } + h_parent = au_h_dptr(parent, bindex); + if (!h_parent) + continue; + h_dir = h_parent->d_inode; + if (!h_dir || !S_ISDIR(h_dir->i_mode)) + continue; + + mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_PARENT); + h_dentry = au_do_lookup(h_parent, dentry, bindex, &whname, + &args); + mutex_unlock(&h_dir->i_mutex); + err = PTR_ERR(h_dentry); + if (IS_ERR(h_dentry)) + goto out_parent; + au_fclr_lkup(args.flags, ALLOW_NEG); + + if (au_dbwh(dentry) >= 0) + break; + if (!h_dentry) + continue; + h_inode = h_dentry->d_inode; + if (!h_inode) + continue; + npositive++; + if (!args.type) + args.type = h_inode->i_mode & S_IFMT; + if (args.type != S_IFDIR) + break; + else if (isdir) { + /* the type of lower may be different */ + bdiropq = au_dbdiropq(dentry); + if (bdiropq >= 0 && bdiropq <= bindex) + break; + } + } + + if (npositive) { + AuLabel(positive); + au_update_dbstart(dentry); + } + err = npositive; + if (unlikely(!au_opt_test(au_mntflags(dentry->d_sb), UDBA_NONE) + && au_dbstart(dentry) < 0)) { + err = -EIO; + AuIOErr("both of real entry and whiteout found, %.*s, err %d\n", + AuDLNPair(dentry), err); + } + +out_parent: + dput(parent); + kfree(whname.name); +out: + return err; +} + +struct dentry *au_sio_lkup_one(struct qstr *name, struct dentry *parent, + struct au_branch *br) +{ + struct dentry *dentry; + int wkq_err; + + if (!au_test_h_perm_sio(parent->d_inode, MAY_EXEC)) + dentry = au_lkup_one(name, parent, br, /*nd*/NULL); + else { + struct au_lkup_one_args args = { + .errp = &dentry, + .name = name, + .h_parent = parent, + .br = br, + .nd = NULL + }; + + wkq_err = au_wkq_wait(au_call_lkup_one, &args); + if (unlikely(wkq_err)) + dentry = ERR_PTR(wkq_err); + } + + return dentry; +} + +/* + * lookup @dentry on @bindex which should be negative. + */ +int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex) +{ + int err; + struct dentry *parent, *h_parent, *h_dentry; + + parent = dget_parent(dentry); + h_parent = au_h_dptr(parent, bindex); + h_dentry = au_sio_lkup_one(&dentry->d_name, h_parent, + au_sbr(dentry->d_sb, bindex)); + err = PTR_ERR(h_dentry); + if (IS_ERR(h_dentry)) + goto out; + if (unlikely(h_dentry->d_inode)) { + err = -EIO; + AuIOErr("%.*s should be negative on b%d.\n", + AuDLNPair(h_dentry), bindex); + dput(h_dentry); + goto out; + } + + err = 0; + if (bindex < au_dbstart(dentry)) + au_set_dbstart(dentry, bindex); + if (au_dbend(dentry) < bindex) + au_set_dbend(dentry, bindex); + au_set_h_dptr(dentry, bindex, h_dentry); + +out: + dput(parent); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* subset of struct inode */ +struct au_iattr { + unsigned long i_ino; + /* unsigned int i_nlink; */ + uid_t i_uid; + gid_t i_gid; + u64 i_version; +/* + loff_t i_size; + blkcnt_t i_blocks; +*/ + umode_t i_mode; +}; + +static void au_iattr_save(struct au_iattr *ia, struct inode *h_inode) +{ + ia->i_ino = h_inode->i_ino; + /* ia->i_nlink = h_inode->i_nlink; */ + ia->i_uid = h_inode->i_uid; + ia->i_gid = h_inode->i_gid; + ia->i_version = h_inode->i_version; +/* + ia->i_size = h_inode->i_size; + ia->i_blocks = h_inode->i_blocks; +*/ + ia->i_mode = (h_inode->i_mode & S_IFMT); +} + +static int au_iattr_test(struct au_iattr *ia, struct inode *h_inode) +{ + return ia->i_ino != h_inode->i_ino + /* || ia->i_nlink != h_inode->i_nlink */ + || ia->i_uid != h_inode->i_uid + || ia->i_gid != h_inode->i_gid + || ia->i_version != h_inode->i_version +/* + || ia->i_size != h_inode->i_size + || ia->i_blocks != h_inode->i_blocks +*/ + || ia->i_mode != (h_inode->i_mode & S_IFMT); +} + +static int au_h_verify_dentry(struct dentry *h_dentry, struct dentry *h_parent, + struct au_branch *br) +{ + int err; + struct au_iattr ia; + struct inode *h_inode; + struct dentry *h_d; + struct super_block *h_sb; + + err = 0; + memset(&ia, -1, sizeof(ia)); + h_sb = h_dentry->d_sb; + h_inode = h_dentry->d_inode; + if (h_inode) + au_iattr_save(&ia, h_inode); + else if (au_test_nfs(h_sb) || au_test_fuse(h_sb)) + /* nfs d_revalidate may return 0 for negative dentry */ + /* fuse d_revalidate always return 0 for negative dentry */ + goto out; + + /* main purpose is namei.c:cached_lookup() and d_revalidate */ + h_d = au_lkup_one(&h_dentry->d_name, h_parent, br, /*nd*/NULL); + err = PTR_ERR(h_d); + if (IS_ERR(h_d)) + goto out; + + err = 0; + if (unlikely(h_d != h_dentry + || h_d->d_inode != h_inode + || (h_inode && au_iattr_test(&ia, h_inode)))) + err = au_busy_or_stale(); + dput(h_d); + +out: + AuTraceErr(err); + return err; +} + +int au_h_verify(struct dentry *h_dentry, unsigned int udba, struct inode *h_dir, + struct dentry *h_parent, struct au_branch *br) +{ + int err; + + err = 0; + if (udba == AuOpt_UDBA_REVAL + && !au_test_fs_remote(h_dentry->d_sb)) { + IMustLock(h_dir); + err = (h_dentry->d_parent->d_inode != h_dir); + } else if (udba != AuOpt_UDBA_NONE) + err = au_h_verify_dentry(h_dentry, h_parent, br); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_do_refresh_hdentry(struct dentry *dentry, struct dentry *parent) +{ + int err; + aufs_bindex_t new_bindex, bindex, bend, bwh, bdiropq; + struct au_hdentry tmp, *p, *q; + struct au_dinfo *dinfo; + struct super_block *sb; + + DiMustWriteLock(dentry); + + sb = dentry->d_sb; + dinfo = au_di(dentry); + bend = dinfo->di_bend; + bwh = dinfo->di_bwh; + bdiropq = dinfo->di_bdiropq; + p = dinfo->di_hdentry + dinfo->di_bstart; + for (bindex = dinfo->di_bstart; bindex <= bend; bindex++, p++) { + if (!p->hd_dentry) + continue; + + new_bindex = au_br_index(sb, p->hd_id); + if (new_bindex == bindex) + continue; + + if (dinfo->di_bwh == bindex) + bwh = new_bindex; + if (dinfo->di_bdiropq == bindex) + bdiropq = new_bindex; + if (new_bindex < 0) { + au_hdput(p); + p->hd_dentry = NULL; + continue; + } + + /* swap two lower dentries, and loop again */ + q = dinfo->di_hdentry + new_bindex; + tmp = *q; + *q = *p; + *p = tmp; + if (tmp.hd_dentry) { + bindex--; + p--; + } + } + + dinfo->di_bwh = -1; + if (bwh >= 0 && bwh <= au_sbend(sb) && au_sbr_whable(sb, bwh)) + dinfo->di_bwh = bwh; + + dinfo->di_bdiropq = -1; + if (bdiropq >= 0 + && bdiropq <= au_sbend(sb) + && au_sbr_whable(sb, bdiropq)) + dinfo->di_bdiropq = bdiropq; + + err = -EIO; + dinfo->di_bstart = -1; + dinfo->di_bend = -1; + bend = au_dbend(parent); + p = dinfo->di_hdentry; + for (bindex = 0; bindex <= bend; bindex++, p++) + if (p->hd_dentry) { + dinfo->di_bstart = bindex; + break; + } + + if (dinfo->di_bstart >= 0) { + p = dinfo->di_hdentry + bend; + for (bindex = bend; bindex >= 0; bindex--, p--) + if (p->hd_dentry) { + dinfo->di_bend = bindex; + err = 0; + break; + } + } + + return err; +} + +static void au_do_hide(struct dentry *dentry) +{ + struct inode *inode; + + inode = dentry->d_inode; + if (inode) { + if (!S_ISDIR(inode->i_mode)) { + if (inode->i_nlink && !d_unhashed(dentry)) + drop_nlink(inode); + } else { + clear_nlink(inode); + /* stop next lookup */ + inode->i_flags |= S_DEAD; + } + smp_mb(); /* necessary? */ + } + d_drop(dentry); +} + +static int au_hide_children(struct dentry *parent) +{ + int err, i, j, ndentry; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry *dentry; + + err = au_dpages_init(&dpages, GFP_NOFS); + if (unlikely(err)) + goto out; + err = au_dcsub_pages(&dpages, parent, NULL, NULL); + if (unlikely(err)) + goto out_dpages; + + /* in reverse order */ + for (i = dpages.ndpage - 1; i >= 0; i--) { + dpage = dpages.dpages + i; + ndentry = dpage->ndentry; + for (j = ndentry - 1; j >= 0; j--) { + dentry = dpage->dentries[j]; + if (dentry != parent) + au_do_hide(dentry); + } + } + +out_dpages: + au_dpages_free(&dpages); +out: + return err; +} + +static void au_hide(struct dentry *dentry) +{ + int err; + struct inode *inode; + + AuDbgDentry(dentry); + inode = dentry->d_inode; + if (inode && S_ISDIR(inode->i_mode)) { + /* shrink_dcache_parent(dentry); */ + err = au_hide_children(dentry); + if (unlikely(err)) + AuIOErr("%.*s, failed hiding children, ignored %d\n", + AuDLNPair(dentry), err); + } + au_do_hide(dentry); +} + +/* + * By adding a dirty branch, a cached dentry may be affected in various ways. + * + * a dirty branch is added + * - on the top of layers + * - in the middle of layers + * - to the bottom of layers + * + * on the added branch there exists + * - a whiteout + * - a diropq + * - a same named entry + * + exist + * * negative --> positive + * * positive --> positive + * - type is unchanged + * - type is changed + * + doesn't exist + * * negative --> negative + * * positive --> negative (rejected by au_br_del() for non-dir case) + * - none + */ +static int au_refresh_by_dinfo(struct dentry *dentry, struct au_dinfo *dinfo, + struct au_dinfo *tmp) +{ + int err; + aufs_bindex_t bindex, bend; + struct { + struct dentry *dentry; + struct inode *inode; + mode_t mode; + } orig_h, tmp_h; + struct au_hdentry *hd; + struct inode *inode, *h_inode; + struct dentry *h_dentry; + + err = 0; + AuDebugOn(dinfo->di_bstart < 0); + orig_h.dentry = dinfo->di_hdentry[dinfo->di_bstart].hd_dentry; + orig_h.inode = orig_h.dentry->d_inode; + orig_h.mode = 0; + if (orig_h.inode) + orig_h.mode = orig_h.inode->i_mode & S_IFMT; + memset(&tmp_h, 0, sizeof(tmp_h)); + if (tmp->di_bstart >= 0) { + tmp_h.dentry = tmp->di_hdentry[tmp->di_bstart].hd_dentry; + tmp_h.inode = tmp_h.dentry->d_inode; + if (tmp_h.inode) + tmp_h.mode = tmp_h.inode->i_mode & S_IFMT; + } + + inode = dentry->d_inode; + if (!orig_h.inode) { + AuDbg("nagative originally\n"); + if (inode) { + au_hide(dentry); + goto out; + } + AuDebugOn(inode); + AuDebugOn(dinfo->di_bstart != dinfo->di_bend); + AuDebugOn(dinfo->di_bdiropq != -1); + + if (!tmp_h.inode) { + AuDbg("negative --> negative\n"); + /* should have only one negative lower */ + if (tmp->di_bstart >= 0 + && tmp->di_bstart < dinfo->di_bstart) { + AuDebugOn(tmp->di_bstart != tmp->di_bend); + AuDebugOn(dinfo->di_bstart != dinfo->di_bend); + au_set_h_dptr(dentry, dinfo->di_bstart, NULL); + au_di_cp(dinfo, tmp); + hd = tmp->di_hdentry + tmp->di_bstart; + au_set_h_dptr(dentry, tmp->di_bstart, + dget(hd->hd_dentry)); + } + au_dbg_verify_dinode(dentry); + } else { + AuDbg("negative --> positive\n"); + /* + * similar to the behaviour of creating with bypassing + * aufs. + * unhash it in order to force an error in the + * succeeding create operation. + * we should not set S_DEAD here. + */ + d_drop(dentry); + /* au_di_swap(tmp, dinfo); */ + au_dbg_verify_dinode(dentry); + } + } else { + AuDbg("positive originally\n"); + /* inode may be NULL */ + AuDebugOn(inode && (inode->i_mode & S_IFMT) != orig_h.mode); + if (!tmp_h.inode) { + AuDbg("positive --> negative\n"); + /* or bypassing aufs */ + au_hide(dentry); + if (tmp->di_bwh >= 0 && tmp->di_bwh <= dinfo->di_bstart) + dinfo->di_bwh = tmp->di_bwh; + if (inode) + err = au_refresh_hinode_self(inode); + au_dbg_verify_dinode(dentry); + } else if (orig_h.mode == tmp_h.mode) { + AuDbg("positive --> positive, same type\n"); + if (!S_ISDIR(orig_h.mode) + && dinfo->di_bstart > tmp->di_bstart) { + /* + * similar to the behaviour of removing and + * creating. + */ + au_hide(dentry); + if (inode) + err = au_refresh_hinode_self(inode); + au_dbg_verify_dinode(dentry); + } else { + /* fill empty slots */ + if (dinfo->di_bstart > tmp->di_bstart) + dinfo->di_bstart = tmp->di_bstart; + if (dinfo->di_bend < tmp->di_bend) + dinfo->di_bend = tmp->di_bend; + dinfo->di_bwh = tmp->di_bwh; + dinfo->di_bdiropq = tmp->di_bdiropq; + hd = tmp->di_hdentry; + bend = dinfo->di_bend; + for (bindex = tmp->di_bstart; bindex <= bend; + bindex++) { + if (au_h_dptr(dentry, bindex)) + continue; + h_dentry = hd[bindex].hd_dentry; + if (!h_dentry) + continue; + h_inode = h_dentry->d_inode; + AuDebugOn(!h_inode); + AuDebugOn(orig_h.mode + != (h_inode->i_mode + & S_IFMT)); + au_set_h_dptr(dentry, bindex, + dget(h_dentry)); + } + err = au_refresh_hinode(inode, dentry); + au_dbg_verify_dinode(dentry); + } + } else { + AuDbg("positive --> positive, different type\n"); + /* similar to the behaviour of removing and creating */ + au_hide(dentry); + if (inode) + err = au_refresh_hinode_self(inode); + au_dbg_verify_dinode(dentry); + } + } + +out: + return err; +} + +int au_refresh_dentry(struct dentry *dentry, struct dentry *parent) +{ + int err, ebrange; + unsigned int sigen; + struct au_dinfo *dinfo, *tmp; + struct super_block *sb; + struct inode *inode; + + DiMustWriteLock(dentry); + AuDebugOn(IS_ROOT(dentry)); + AuDebugOn(!parent->d_inode); + + sb = dentry->d_sb; + inode = dentry->d_inode; + sigen = au_sigen(sb); + err = au_digen_test(parent, sigen); + if (unlikely(err)) + goto out; + + dinfo = au_di(dentry); + err = au_di_realloc(dinfo, au_sbend(sb) + 1); + if (unlikely(err)) + goto out; + ebrange = au_dbrange_test(dentry); + if (!ebrange) + ebrange = au_do_refresh_hdentry(dentry, parent); + + if (d_unhashed(dentry) || ebrange) { + AuDebugOn(au_dbstart(dentry) < 0 && au_dbend(dentry) >= 0); + if (inode) + err = au_refresh_hinode_self(inode); + au_dbg_verify_dinode(dentry); + if (!err) + goto out_dgen; /* success */ + goto out; + } + + /* temporary dinfo */ + AuDbgDentry(dentry); + err = -ENOMEM; + tmp = au_di_alloc(sb, AuLsc_DI_TMP); + if (unlikely(!tmp)) + goto out; + au_di_swap(tmp, dinfo); + /* returns the number of positive dentries */ + /* + * if current working dir is removed, it returns an error. + * but the dentry is legal. + */ + err = au_lkup_dentry(dentry, /*bstart*/0, /*type*/0, /*nd*/NULL); + AuDbgDentry(dentry); + au_di_swap(tmp, dinfo); + if (err == -ENOENT) + err = 0; + if (err >= 0) { + /* compare/refresh by dinfo */ + AuDbgDentry(dentry); + err = au_refresh_by_dinfo(dentry, dinfo, tmp); + au_dbg_verify_dinode(dentry); + AuTraceErr(err); + } + au_rw_write_unlock(&tmp->di_rwsem); + au_di_free(tmp); + if (unlikely(err)) + goto out; + +out_dgen: + au_update_digen(dentry); +out: + if (unlikely(err && !(dentry->d_flags & DCACHE_NFSFS_RENAMED))) { + AuIOErr("failed refreshing %.*s, %d\n", + AuDLNPair(dentry), err); + AuDbgDentry(dentry); + } + AuTraceErr(err); + return err; +} + +static noinline_for_stack +int au_do_h_d_reval(struct dentry *h_dentry, struct nameidata *nd, + struct dentry *dentry, aufs_bindex_t bindex) +{ + int err, valid; + int (*reval)(struct dentry *, struct nameidata *); + + err = 0; + if (!(h_dentry->d_flags & DCACHE_OP_REVALIDATE)) + goto out; + reval = h_dentry->d_op->d_revalidate; + + AuDbg("b%d\n", bindex); + if (au_test_fs_null_nd(h_dentry->d_sb)) + /* it may return tri-state */ + valid = reval(h_dentry, NULL); + else { + struct nameidata h_nd; + int locked; + struct dentry *parent; + + au_h_nd(&h_nd, nd); + parent = nd->path.dentry; + locked = (nd && nd->path.dentry != dentry); + if (locked) + di_read_lock_parent(parent, AuLock_IR); + BUG_ON(bindex > au_dbend(parent)); + h_nd.path.dentry = au_h_dptr(parent, bindex); + BUG_ON(!h_nd.path.dentry); + h_nd.path.mnt = au_sbr(parent->d_sb, bindex)->br_mnt; + path_get(&h_nd.path); + valid = reval(h_dentry, &h_nd); + path_put(&h_nd.path); + if (locked) + di_read_unlock(parent, AuLock_IR); + } + + if (unlikely(valid < 0)) + err = valid; + else if (!valid) + err = -EINVAL; + +out: + AuTraceErr(err); + return err; +} + +/* todo: remove this */ +static int h_d_revalidate(struct dentry *dentry, struct inode *inode, + struct nameidata *nd, int do_udba) +{ + int err; + umode_t mode, h_mode; + aufs_bindex_t bindex, btail, bstart, ibs, ibe; + unsigned char plus, unhashed, is_root, h_plus; + struct inode *h_inode, *h_cached_inode; + struct dentry *h_dentry; + struct qstr *name, *h_name; + + err = 0; + plus = 0; + mode = 0; + ibs = -1; + ibe = -1; + unhashed = !!d_unhashed(dentry); + is_root = !!IS_ROOT(dentry); + name = &dentry->d_name; + + /* + * Theoretically, REVAL test should be unnecessary in case of + * {FS,I}NOTIFY. + * But {fs,i}notify doesn't fire some necessary events, + * IN_ATTRIB for atime/nlink/pageio + * IN_DELETE for NFS dentry + * Let's do REVAL test too. + */ + if (do_udba && inode) { + mode = (inode->i_mode & S_IFMT); + plus = (inode->i_nlink > 0); + ibs = au_ibstart(inode); + ibe = au_ibend(inode); + } + + bstart = au_dbstart(dentry); + btail = bstart; + if (inode && S_ISDIR(inode->i_mode)) + btail = au_dbtaildir(dentry); + for (bindex = bstart; bindex <= btail; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + + AuDbg("b%d, %.*s\n", bindex, AuDLNPair(h_dentry)); + spin_lock(&h_dentry->d_lock); + h_name = &h_dentry->d_name; + if (unlikely(do_udba + && !is_root + && (unhashed != !!d_unhashed(h_dentry) + || name->len != h_name->len + || memcmp(name->name, h_name->name, name->len)) + )) { + AuDbg("unhash 0x%x 0x%x, %.*s %.*s\n", + unhashed, d_unhashed(h_dentry), + AuDLNPair(dentry), AuDLNPair(h_dentry)); + spin_unlock(&h_dentry->d_lock); + goto err; + } + spin_unlock(&h_dentry->d_lock); + + err = au_do_h_d_reval(h_dentry, nd, dentry, bindex); + if (unlikely(err)) + /* do not goto err, to keep the errno */ + break; + + /* todo: plink too? */ + if (!do_udba) + continue; + + /* UDBA tests */ + h_inode = h_dentry->d_inode; + if (unlikely(!!inode != !!h_inode)) + goto err; + + h_plus = plus; + h_mode = mode; + h_cached_inode = h_inode; + if (h_inode) { + h_mode = (h_inode->i_mode & S_IFMT); + h_plus = (h_inode->i_nlink > 0); + } + if (inode && ibs <= bindex && bindex <= ibe) + h_cached_inode = au_h_iptr(inode, bindex); + + if (unlikely(plus != h_plus + || mode != h_mode + || h_cached_inode != h_inode)) + goto err; + continue; + + err: + err = -EINVAL; + break; + } + + return err; +} + +/* todo: consolidate with do_refresh() and au_reval_for_attr() */ +static int simple_reval_dpath(struct dentry *dentry, unsigned int sigen) +{ + int err; + struct dentry *parent; + + if (!au_digen_test(dentry, sigen)) + return 0; + + parent = dget_parent(dentry); + di_read_lock_parent(parent, AuLock_IR); + AuDebugOn(au_digen_test(parent, sigen)); + au_dbg_verify_gen(parent, sigen); + err = au_refresh_dentry(dentry, parent); + di_read_unlock(parent, AuLock_IR); + dput(parent); + AuTraceErr(err); + return err; +} + +int au_reval_dpath(struct dentry *dentry, unsigned int sigen) +{ + int err; + struct dentry *d, *parent; + struct inode *inode; + + if (!au_ftest_si(au_sbi(dentry->d_sb), FAILED_REFRESH_DIR)) + return simple_reval_dpath(dentry, sigen); + + /* slow loop, keep it simple and stupid */ + /* cf: au_cpup_dirs() */ + err = 0; + parent = NULL; + while (au_digen_test(dentry, sigen)) { + d = dentry; + while (1) { + dput(parent); + parent = dget_parent(d); + if (!au_digen_test(parent, sigen)) + break; + d = parent; + } + + inode = d->d_inode; + if (d != dentry) + di_write_lock_child2(d); + + /* someone might update our dentry while we were sleeping */ + if (au_digen_test(d, sigen)) { + /* + * todo: consolidate with simple_reval_dpath(), + * do_refresh() and au_reval_for_attr(). + */ + di_read_lock_parent(parent, AuLock_IR); + err = au_refresh_dentry(d, parent); + di_read_unlock(parent, AuLock_IR); + } + + if (d != dentry) + di_write_unlock(d); + dput(parent); + if (unlikely(err)) + break; + } + + return err; +} + +/* + * if valid returns 1, otherwise 0. + */ +static int aufs_d_revalidate(struct dentry *dentry, struct nameidata *nd) +{ + int valid, err; + unsigned int sigen; + unsigned char do_udba; + struct super_block *sb; + struct inode *inode; + + /* todo: support rcu-walk? */ + if (nd && (nd->flags & LOOKUP_RCU)) + return -ECHILD; + + valid = 0; + if (unlikely(!au_di(dentry))) + goto out; + + inode = dentry->d_inode; + if (inode && is_bad_inode(inode)) + goto out; + + valid = 1; + sb = dentry->d_sb; + /* + * todo: very ugly + * i_mutex of parent dir may be held, + * but we should not return 'invalid' due to busy. + */ + err = aufs_read_lock(dentry, AuLock_FLUSH | AuLock_DW | AuLock_NOPLM); + if (unlikely(err)) { + valid = err; + AuTraceErr(err); + goto out; + } + if (unlikely(au_dbrange_test(dentry))) { + err = -EINVAL; + AuTraceErr(err); + goto out_dgrade; + } + + sigen = au_sigen(sb); + if (au_digen_test(dentry, sigen)) { + AuDebugOn(IS_ROOT(dentry)); + err = au_reval_dpath(dentry, sigen); + if (unlikely(err)) { + AuTraceErr(err); + goto out_dgrade; + } + } + di_downgrade_lock(dentry, AuLock_IR); + + err = -EINVAL; + if (inode && (IS_DEADDIR(inode) || !inode->i_nlink)) + goto out_inval; + + do_udba = !au_opt_test(au_mntflags(sb), UDBA_NONE); + if (do_udba && inode) { + aufs_bindex_t bstart = au_ibstart(inode); + struct inode *h_inode; + + if (bstart >= 0) { + h_inode = au_h_iptr(inode, bstart); + if (h_inode && au_test_higen(inode, h_inode)) + goto out_inval; + } + } + + err = h_d_revalidate(dentry, inode, nd, do_udba); + if (unlikely(!err && do_udba && au_dbstart(dentry) < 0)) { + err = -EIO; + AuDbg("both of real entry and whiteout found, %.*s, err %d\n", + AuDLNPair(dentry), err); + } + goto out_inval; + +out_dgrade: + di_downgrade_lock(dentry, AuLock_IR); +out_inval: + aufs_read_unlock(dentry, AuLock_IR); + AuTraceErr(err); + valid = !err; +out: + if (!valid) { + AuDbg("%.*s invalid, %d\n", AuDLNPair(dentry), valid); + d_drop(dentry); + } + return valid; +} + +static void aufs_d_release(struct dentry *dentry) +{ + if (au_di(dentry)) { + au_di_fin(dentry); + au_hn_di_reinit(dentry); + } +} + +const struct dentry_operations aufs_dop = { + .d_revalidate = aufs_d_revalidate, + .d_release = aufs_d_release +}; --- linux-3.2.0.orig/ubuntu/aufs/dcsub.h +++ linux-3.2.0/ubuntu/aufs/dcsub.h @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sub-routines for dentry cache + */ + +#ifndef __AUFS_DCSUB_H__ +#define __AUFS_DCSUB_H__ + +#ifdef __KERNEL__ + +#include +#include + +struct dentry; + +struct au_dpage { + int ndentry; + struct dentry **dentries; +}; + +struct au_dcsub_pages { + int ndpage; + struct au_dpage *dpages; +}; + +/* ---------------------------------------------------------------------- */ + +/* dcsub.c */ +int au_dpages_init(struct au_dcsub_pages *dpages, gfp_t gfp); +void au_dpages_free(struct au_dcsub_pages *dpages); +typedef int (*au_dpages_test)(struct dentry *dentry, void *arg); +int au_dcsub_pages(struct au_dcsub_pages *dpages, struct dentry *root, + au_dpages_test test, void *arg); +int au_dcsub_pages_rev(struct au_dcsub_pages *dpages, struct dentry *dentry, + int do_include, au_dpages_test test, void *arg); +int au_dcsub_pages_rev_aufs(struct au_dcsub_pages *dpages, + struct dentry *dentry, int do_include); +int au_test_subdir(struct dentry *d1, struct dentry *d2); + +/* ---------------------------------------------------------------------- */ + +static inline int au_d_hashed_positive(struct dentry *d) +{ + int err; + struct inode *inode = d->d_inode; + err = 0; + if (unlikely(d_unhashed(d) || !inode || !inode->i_nlink)) + err = -ENOENT; + return err; +} + +static inline int au_d_alive(struct dentry *d) +{ + int err; + struct inode *inode; + err = 0; + if (!IS_ROOT(d)) + err = au_d_hashed_positive(d); + else { + inode = d->d_inode; + if (unlikely(d_unlinked(d) || !inode || !inode->i_nlink)) + err = -ENOENT; + } + return err; +} + +static inline int au_alive_dir(struct dentry *d) +{ + int err; + err = au_d_alive(d); + if (unlikely(err || IS_DEADDIR(d->d_inode))) + err = -ENOENT; + return err; +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DCSUB_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/vdir.c +++ linux-3.2.0/ubuntu/aufs/vdir.c @@ -0,0 +1,885 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * virtual or vertical directory + */ + +#include "aufs.h" + +static unsigned int calc_size(int nlen) +{ + return ALIGN(sizeof(struct au_vdir_de) + nlen, sizeof(ino_t)); +} + +static int set_deblk_end(union au_vdir_deblk_p *p, + union au_vdir_deblk_p *deblk_end) +{ + if (calc_size(0) <= deblk_end->deblk - p->deblk) { + p->de->de_str.len = 0; + /* smp_mb(); */ + return 0; + } + return -1; /* error */ +} + +/* returns true or false */ +static int is_deblk_end(union au_vdir_deblk_p *p, + union au_vdir_deblk_p *deblk_end) +{ + if (calc_size(0) <= deblk_end->deblk - p->deblk) + return !p->de->de_str.len; + return 1; +} + +static unsigned char *last_deblk(struct au_vdir *vdir) +{ + return vdir->vd_deblk[vdir->vd_nblk - 1]; +} + +/* ---------------------------------------------------------------------- */ + +/* estimate the apropriate size for name hash table */ +unsigned int au_rdhash_est(loff_t sz) +{ + unsigned int n; + + n = UINT_MAX; + sz >>= 10; + if (sz < n) + n = sz; + if (sz < AUFS_RDHASH_DEF) + n = AUFS_RDHASH_DEF; + /* pr_info("n %u\n", n); */ + return n; +} + +/* + * the allocated memory has to be freed by + * au_nhash_wh_free() or au_nhash_de_free(). + */ +int au_nhash_alloc(struct au_nhash *nhash, unsigned int num_hash, gfp_t gfp) +{ + struct hlist_head *head; + unsigned int u; + + head = kmalloc(sizeof(*nhash->nh_head) * num_hash, gfp); + if (head) { + nhash->nh_num = num_hash; + nhash->nh_head = head; + for (u = 0; u < num_hash; u++) + INIT_HLIST_HEAD(head++); + return 0; /* success */ + } + + return -ENOMEM; +} + +static void nhash_count(struct hlist_head *head) +{ +#if 0 + unsigned long n; + struct hlist_node *pos; + + n = 0; + hlist_for_each(pos, head) + n++; + pr_info("%lu\n", n); +#endif +} + +static void au_nhash_wh_do_free(struct hlist_head *head) +{ + struct au_vdir_wh *tpos; + struct hlist_node *pos, *node; + + hlist_for_each_entry_safe(tpos, pos, node, head, wh_hash) { + /* hlist_del(pos); */ + kfree(tpos); + } +} + +static void au_nhash_de_do_free(struct hlist_head *head) +{ + struct au_vdir_dehstr *tpos; + struct hlist_node *pos, *node; + + hlist_for_each_entry_safe(tpos, pos, node, head, hash) { + /* hlist_del(pos); */ + au_cache_free_vdir_dehstr(tpos); + } +} + +static void au_nhash_do_free(struct au_nhash *nhash, + void (*free)(struct hlist_head *head)) +{ + unsigned int n; + struct hlist_head *head; + + n = nhash->nh_num; + if (!n) + return; + + head = nhash->nh_head; + while (n-- > 0) { + nhash_count(head); + free(head++); + } + kfree(nhash->nh_head); +} + +void au_nhash_wh_free(struct au_nhash *whlist) +{ + au_nhash_do_free(whlist, au_nhash_wh_do_free); +} + +static void au_nhash_de_free(struct au_nhash *delist) +{ + au_nhash_do_free(delist, au_nhash_de_do_free); +} + +/* ---------------------------------------------------------------------- */ + +int au_nhash_test_longer_wh(struct au_nhash *whlist, aufs_bindex_t btgt, + int limit) +{ + int num; + unsigned int u, n; + struct hlist_head *head; + struct au_vdir_wh *tpos; + struct hlist_node *pos; + + num = 0; + n = whlist->nh_num; + head = whlist->nh_head; + for (u = 0; u < n; u++, head++) + hlist_for_each_entry(tpos, pos, head, wh_hash) + if (tpos->wh_bindex == btgt && ++num > limit) + return 1; + return 0; +} + +static struct hlist_head *au_name_hash(struct au_nhash *nhash, + unsigned char *name, + unsigned int len) +{ + unsigned int v; + /* const unsigned int magic_bit = 12; */ + + AuDebugOn(!nhash->nh_num || !nhash->nh_head); + + v = 0; + while (len--) + v += *name++; + /* v = hash_long(v, magic_bit); */ + v %= nhash->nh_num; + return nhash->nh_head + v; +} + +static int au_nhash_test_name(struct au_vdir_destr *str, const char *name, + int nlen) +{ + return str->len == nlen && !memcmp(str->name, name, nlen); +} + +/* returns found or not */ +int au_nhash_test_known_wh(struct au_nhash *whlist, char *name, int nlen) +{ + struct hlist_head *head; + struct au_vdir_wh *tpos; + struct hlist_node *pos; + struct au_vdir_destr *str; + + head = au_name_hash(whlist, name, nlen); + hlist_for_each_entry(tpos, pos, head, wh_hash) { + str = &tpos->wh_str; + AuDbg("%.*s\n", str->len, str->name); + if (au_nhash_test_name(str, name, nlen)) + return 1; + } + return 0; +} + +/* returns found(true) or not */ +static int test_known(struct au_nhash *delist, char *name, int nlen) +{ + struct hlist_head *head; + struct au_vdir_dehstr *tpos; + struct hlist_node *pos; + struct au_vdir_destr *str; + + head = au_name_hash(delist, name, nlen); + hlist_for_each_entry(tpos, pos, head, hash) { + str = tpos->str; + AuDbg("%.*s\n", str->len, str->name); + if (au_nhash_test_name(str, name, nlen)) + return 1; + } + return 0; +} + +static void au_shwh_init_wh(struct au_vdir_wh *wh, ino_t ino, + unsigned char d_type) +{ +#ifdef CONFIG_AUFS_SHWH + wh->wh_ino = ino; + wh->wh_type = d_type; +#endif +} + +/* ---------------------------------------------------------------------- */ + +int au_nhash_append_wh(struct au_nhash *whlist, char *name, int nlen, ino_t ino, + unsigned int d_type, aufs_bindex_t bindex, + unsigned char shwh) +{ + int err; + struct au_vdir_destr *str; + struct au_vdir_wh *wh; + + AuDbg("%.*s\n", nlen, name); + AuDebugOn(!whlist->nh_num || !whlist->nh_head); + + err = -ENOMEM; + wh = kmalloc(sizeof(*wh) + nlen, GFP_NOFS); + if (unlikely(!wh)) + goto out; + + err = 0; + wh->wh_bindex = bindex; + if (shwh) + au_shwh_init_wh(wh, ino, d_type); + str = &wh->wh_str; + str->len = nlen; + memcpy(str->name, name, nlen); + hlist_add_head(&wh->wh_hash, au_name_hash(whlist, name, nlen)); + /* smp_mb(); */ + +out: + return err; +} + +static int append_deblk(struct au_vdir *vdir) +{ + int err; + unsigned long ul; + const unsigned int deblk_sz = vdir->vd_deblk_sz; + union au_vdir_deblk_p p, deblk_end; + unsigned char **o; + + err = -ENOMEM; + o = krealloc(vdir->vd_deblk, sizeof(*o) * (vdir->vd_nblk + 1), + GFP_NOFS); + if (unlikely(!o)) + goto out; + + vdir->vd_deblk = o; + p.deblk = kmalloc(deblk_sz, GFP_NOFS); + if (p.deblk) { + ul = vdir->vd_nblk++; + vdir->vd_deblk[ul] = p.deblk; + vdir->vd_last.ul = ul; + vdir->vd_last.p.deblk = p.deblk; + deblk_end.deblk = p.deblk + deblk_sz; + err = set_deblk_end(&p, &deblk_end); + } + +out: + return err; +} + +static int append_de(struct au_vdir *vdir, char *name, int nlen, ino_t ino, + unsigned int d_type, struct au_nhash *delist) +{ + int err; + unsigned int sz; + const unsigned int deblk_sz = vdir->vd_deblk_sz; + union au_vdir_deblk_p p, *room, deblk_end; + struct au_vdir_dehstr *dehstr; + + p.deblk = last_deblk(vdir); + deblk_end.deblk = p.deblk + deblk_sz; + room = &vdir->vd_last.p; + AuDebugOn(room->deblk < p.deblk || deblk_end.deblk <= room->deblk + || !is_deblk_end(room, &deblk_end)); + + sz = calc_size(nlen); + if (unlikely(sz > deblk_end.deblk - room->deblk)) { + err = append_deblk(vdir); + if (unlikely(err)) + goto out; + + p.deblk = last_deblk(vdir); + deblk_end.deblk = p.deblk + deblk_sz; + /* smp_mb(); */ + AuDebugOn(room->deblk != p.deblk); + } + + err = -ENOMEM; + dehstr = au_cache_alloc_vdir_dehstr(); + if (unlikely(!dehstr)) + goto out; + + dehstr->str = &room->de->de_str; + hlist_add_head(&dehstr->hash, au_name_hash(delist, name, nlen)); + room->de->de_ino = ino; + room->de->de_type = d_type; + room->de->de_str.len = nlen; + memcpy(room->de->de_str.name, name, nlen); + + err = 0; + room->deblk += sz; + if (unlikely(set_deblk_end(room, &deblk_end))) + err = append_deblk(vdir); + /* smp_mb(); */ + +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +void au_vdir_free(struct au_vdir *vdir) +{ + unsigned char **deblk; + + deblk = vdir->vd_deblk; + while (vdir->vd_nblk--) + kfree(*deblk++); + kfree(vdir->vd_deblk); + au_cache_free_vdir(vdir); +} + +static struct au_vdir *alloc_vdir(struct file *file) +{ + struct au_vdir *vdir; + struct super_block *sb; + int err; + + sb = file->f_dentry->d_sb; + SiMustAnyLock(sb); + + err = -ENOMEM; + vdir = au_cache_alloc_vdir(); + if (unlikely(!vdir)) + goto out; + + vdir->vd_deblk = kzalloc(sizeof(*vdir->vd_deblk), GFP_NOFS); + if (unlikely(!vdir->vd_deblk)) + goto out_free; + + vdir->vd_deblk_sz = au_sbi(sb)->si_rdblk; + if (!vdir->vd_deblk_sz) { + /* estimate the apropriate size for deblk */ + vdir->vd_deblk_sz = au_dir_size(file, /*dentry*/NULL); + /* pr_info("vd_deblk_sz %u\n", vdir->vd_deblk_sz); */ + } + vdir->vd_nblk = 0; + vdir->vd_version = 0; + vdir->vd_jiffy = 0; + err = append_deblk(vdir); + if (!err) + return vdir; /* success */ + + kfree(vdir->vd_deblk); + +out_free: + au_cache_free_vdir(vdir); +out: + vdir = ERR_PTR(err); + return vdir; +} + +static int reinit_vdir(struct au_vdir *vdir) +{ + int err; + union au_vdir_deblk_p p, deblk_end; + + while (vdir->vd_nblk > 1) { + kfree(vdir->vd_deblk[vdir->vd_nblk - 1]); + /* vdir->vd_deblk[vdir->vd_nblk - 1] = NULL; */ + vdir->vd_nblk--; + } + p.deblk = vdir->vd_deblk[0]; + deblk_end.deblk = p.deblk + vdir->vd_deblk_sz; + err = set_deblk_end(&p, &deblk_end); + /* keep vd_dblk_sz */ + vdir->vd_last.ul = 0; + vdir->vd_last.p.deblk = vdir->vd_deblk[0]; + vdir->vd_version = 0; + vdir->vd_jiffy = 0; + /* smp_mb(); */ + return err; +} + +/* ---------------------------------------------------------------------- */ + +#define AuFillVdir_CALLED 1 +#define AuFillVdir_WHABLE (1 << 1) +#define AuFillVdir_SHWH (1 << 2) +#define au_ftest_fillvdir(flags, name) ((flags) & AuFillVdir_##name) +#define au_fset_fillvdir(flags, name) \ + do { (flags) |= AuFillVdir_##name; } while (0) +#define au_fclr_fillvdir(flags, name) \ + do { (flags) &= ~AuFillVdir_##name; } while (0) + +#ifndef CONFIG_AUFS_SHWH +#undef AuFillVdir_SHWH +#define AuFillVdir_SHWH 0 +#endif + +struct fillvdir_arg { + struct file *file; + struct au_vdir *vdir; + struct au_nhash delist; + struct au_nhash whlist; + aufs_bindex_t bindex; + unsigned int flags; + int err; +}; + +static int fillvdir(void *__arg, const char *__name, int nlen, + loff_t offset __maybe_unused, u64 h_ino, + unsigned int d_type) +{ + struct fillvdir_arg *arg = __arg; + char *name = (void *)__name; + struct super_block *sb; + ino_t ino; + const unsigned char shwh = !!au_ftest_fillvdir(arg->flags, SHWH); + + arg->err = 0; + sb = arg->file->f_dentry->d_sb; + au_fset_fillvdir(arg->flags, CALLED); + /* smp_mb(); */ + if (nlen <= AUFS_WH_PFX_LEN + || memcmp(name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) { + if (test_known(&arg->delist, name, nlen) + || au_nhash_test_known_wh(&arg->whlist, name, nlen)) + goto out; /* already exists or whiteouted */ + + sb = arg->file->f_dentry->d_sb; + arg->err = au_ino(sb, arg->bindex, h_ino, d_type, &ino); + if (!arg->err) { + if (unlikely(nlen > AUFS_MAX_NAMELEN)) + d_type = DT_UNKNOWN; + arg->err = append_de(arg->vdir, name, nlen, ino, + d_type, &arg->delist); + } + } else if (au_ftest_fillvdir(arg->flags, WHABLE)) { + name += AUFS_WH_PFX_LEN; + nlen -= AUFS_WH_PFX_LEN; + if (au_nhash_test_known_wh(&arg->whlist, name, nlen)) + goto out; /* already whiteouted */ + + if (shwh) + arg->err = au_wh_ino(sb, arg->bindex, h_ino, d_type, + &ino); + if (!arg->err) { + if (nlen <= AUFS_MAX_NAMELEN + AUFS_WH_PFX_LEN) + d_type = DT_UNKNOWN; + arg->err = au_nhash_append_wh + (&arg->whlist, name, nlen, ino, d_type, + arg->bindex, shwh); + } + } + +out: + if (!arg->err) + arg->vdir->vd_jiffy = jiffies; + /* smp_mb(); */ + AuTraceErr(arg->err); + return arg->err; +} + +static int au_handle_shwh(struct super_block *sb, struct au_vdir *vdir, + struct au_nhash *whlist, struct au_nhash *delist) +{ +#ifdef CONFIG_AUFS_SHWH + int err; + unsigned int nh, u; + struct hlist_head *head; + struct au_vdir_wh *tpos; + struct hlist_node *pos, *n; + char *p, *o; + struct au_vdir_destr *destr; + + AuDebugOn(!au_opt_test(au_mntflags(sb), SHWH)); + + err = -ENOMEM; + o = p = __getname_gfp(GFP_NOFS); + if (unlikely(!p)) + goto out; + + err = 0; + nh = whlist->nh_num; + memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN); + p += AUFS_WH_PFX_LEN; + for (u = 0; u < nh; u++) { + head = whlist->nh_head + u; + hlist_for_each_entry_safe(tpos, pos, n, head, wh_hash) { + destr = &tpos->wh_str; + memcpy(p, destr->name, destr->len); + err = append_de(vdir, o, destr->len + AUFS_WH_PFX_LEN, + tpos->wh_ino, tpos->wh_type, delist); + if (unlikely(err)) + break; + } + } + + __putname(o); + +out: + AuTraceErr(err); + return err; +#else + return 0; +#endif +} + +static int au_do_read_vdir(struct fillvdir_arg *arg) +{ + int err; + unsigned int rdhash; + loff_t offset; + aufs_bindex_t bend, bindex, bstart; + unsigned char shwh; + struct file *hf, *file; + struct super_block *sb; + + file = arg->file; + sb = file->f_dentry->d_sb; + SiMustAnyLock(sb); + + rdhash = au_sbi(sb)->si_rdhash; + if (!rdhash) + rdhash = au_rdhash_est(au_dir_size(file, /*dentry*/NULL)); + err = au_nhash_alloc(&arg->delist, rdhash, GFP_NOFS); + if (unlikely(err)) + goto out; + err = au_nhash_alloc(&arg->whlist, rdhash, GFP_NOFS); + if (unlikely(err)) + goto out_delist; + + err = 0; + arg->flags = 0; + shwh = 0; + if (au_opt_test(au_mntflags(sb), SHWH)) { + shwh = 1; + au_fset_fillvdir(arg->flags, SHWH); + } + bstart = au_fbstart(file); + bend = au_fbend_dir(file); + for (bindex = bstart; !err && bindex <= bend; bindex++) { + hf = au_hf_dir(file, bindex); + if (!hf) + continue; + + offset = vfsub_llseek(hf, 0, SEEK_SET); + err = offset; + if (unlikely(offset)) + break; + + arg->bindex = bindex; + au_fclr_fillvdir(arg->flags, WHABLE); + if (shwh + || (bindex != bend + && au_br_whable(au_sbr_perm(sb, bindex)))) + au_fset_fillvdir(arg->flags, WHABLE); + do { + arg->err = 0; + au_fclr_fillvdir(arg->flags, CALLED); + /* smp_mb(); */ + err = vfsub_readdir(hf, fillvdir, arg); + if (err >= 0) + err = arg->err; + } while (!err && au_ftest_fillvdir(arg->flags, CALLED)); + } + + if (!err && shwh) + err = au_handle_shwh(sb, arg->vdir, &arg->whlist, &arg->delist); + + au_nhash_wh_free(&arg->whlist); + +out_delist: + au_nhash_de_free(&arg->delist); +out: + return err; +} + +static int read_vdir(struct file *file, int may_read) +{ + int err; + unsigned long expire; + unsigned char do_read; + struct fillvdir_arg arg; + struct inode *inode; + struct au_vdir *vdir, *allocated; + + err = 0; + inode = file->f_dentry->d_inode; + IMustLock(inode); + SiMustAnyLock(inode->i_sb); + + allocated = NULL; + do_read = 0; + expire = au_sbi(inode->i_sb)->si_rdcache; + vdir = au_ivdir(inode); + if (!vdir) { + do_read = 1; + vdir = alloc_vdir(file); + err = PTR_ERR(vdir); + if (IS_ERR(vdir)) + goto out; + err = 0; + allocated = vdir; + } else if (may_read + && (inode->i_version != vdir->vd_version + || time_after(jiffies, vdir->vd_jiffy + expire))) { + do_read = 1; + err = reinit_vdir(vdir); + if (unlikely(err)) + goto out; + } + + if (!do_read) + return 0; /* success */ + + arg.file = file; + arg.vdir = vdir; + err = au_do_read_vdir(&arg); + if (!err) { + /* file->f_pos = 0; */ + vdir->vd_version = inode->i_version; + vdir->vd_last.ul = 0; + vdir->vd_last.p.deblk = vdir->vd_deblk[0]; + if (allocated) + au_set_ivdir(inode, allocated); + } else if (allocated) + au_vdir_free(allocated); + +out: + return err; +} + +static int copy_vdir(struct au_vdir *tgt, struct au_vdir *src) +{ + int err, rerr; + unsigned long ul, n; + const unsigned int deblk_sz = src->vd_deblk_sz; + + AuDebugOn(tgt->vd_nblk != 1); + + err = -ENOMEM; + if (tgt->vd_nblk < src->vd_nblk) { + unsigned char **p; + + p = krealloc(tgt->vd_deblk, sizeof(*p) * src->vd_nblk, + GFP_NOFS); + if (unlikely(!p)) + goto out; + tgt->vd_deblk = p; + } + + if (tgt->vd_deblk_sz != deblk_sz) { + unsigned char *p; + + tgt->vd_deblk_sz = deblk_sz; + p = krealloc(tgt->vd_deblk[0], deblk_sz, GFP_NOFS); + if (unlikely(!p)) + goto out; + tgt->vd_deblk[0] = p; + } + memcpy(tgt->vd_deblk[0], src->vd_deblk[0], deblk_sz); + tgt->vd_version = src->vd_version; + tgt->vd_jiffy = src->vd_jiffy; + + n = src->vd_nblk; + for (ul = 1; ul < n; ul++) { + tgt->vd_deblk[ul] = kmemdup(src->vd_deblk[ul], deblk_sz, + GFP_NOFS); + if (unlikely(!tgt->vd_deblk[ul])) + goto out; + tgt->vd_nblk++; + } + tgt->vd_nblk = n; + tgt->vd_last.ul = tgt->vd_last.ul; + tgt->vd_last.p.deblk = tgt->vd_deblk[tgt->vd_last.ul]; + tgt->vd_last.p.deblk += src->vd_last.p.deblk + - src->vd_deblk[src->vd_last.ul]; + /* smp_mb(); */ + return 0; /* success */ + +out: + rerr = reinit_vdir(tgt); + BUG_ON(rerr); + return err; +} + +int au_vdir_init(struct file *file) +{ + int err; + struct inode *inode; + struct au_vdir *vdir_cache, *allocated; + + err = read_vdir(file, !file->f_pos); + if (unlikely(err)) + goto out; + + allocated = NULL; + vdir_cache = au_fvdir_cache(file); + if (!vdir_cache) { + vdir_cache = alloc_vdir(file); + err = PTR_ERR(vdir_cache); + if (IS_ERR(vdir_cache)) + goto out; + allocated = vdir_cache; + } else if (!file->f_pos && vdir_cache->vd_version != file->f_version) { + err = reinit_vdir(vdir_cache); + if (unlikely(err)) + goto out; + } else + return 0; /* success */ + + inode = file->f_dentry->d_inode; + err = copy_vdir(vdir_cache, au_ivdir(inode)); + if (!err) { + file->f_version = inode->i_version; + if (allocated) + au_set_fvdir_cache(file, allocated); + } else if (allocated) + au_vdir_free(allocated); + +out: + return err; +} + +static loff_t calc_offset(struct au_vdir *vdir) +{ + loff_t offset; + union au_vdir_deblk_p p; + + p.deblk = vdir->vd_deblk[vdir->vd_last.ul]; + offset = vdir->vd_last.p.deblk - p.deblk; + offset += vdir->vd_deblk_sz * vdir->vd_last.ul; + return offset; +} + +/* returns true or false */ +static int seek_vdir(struct file *file) +{ + int valid; + unsigned int deblk_sz; + unsigned long ul, n; + loff_t offset; + union au_vdir_deblk_p p, deblk_end; + struct au_vdir *vdir_cache; + + valid = 1; + vdir_cache = au_fvdir_cache(file); + offset = calc_offset(vdir_cache); + AuDbg("offset %lld\n", offset); + if (file->f_pos == offset) + goto out; + + vdir_cache->vd_last.ul = 0; + vdir_cache->vd_last.p.deblk = vdir_cache->vd_deblk[0]; + if (!file->f_pos) + goto out; + + valid = 0; + deblk_sz = vdir_cache->vd_deblk_sz; + ul = div64_u64(file->f_pos, deblk_sz); + AuDbg("ul %lu\n", ul); + if (ul >= vdir_cache->vd_nblk) + goto out; + + n = vdir_cache->vd_nblk; + for (; ul < n; ul++) { + p.deblk = vdir_cache->vd_deblk[ul]; + deblk_end.deblk = p.deblk + deblk_sz; + offset = ul; + offset *= deblk_sz; + while (!is_deblk_end(&p, &deblk_end) && offset < file->f_pos) { + unsigned int l; + + l = calc_size(p.de->de_str.len); + offset += l; + p.deblk += l; + } + if (!is_deblk_end(&p, &deblk_end)) { + valid = 1; + vdir_cache->vd_last.ul = ul; + vdir_cache->vd_last.p = p; + break; + } + } + +out: + /* smp_mb(); */ + AuTraceErr(!valid); + return valid; +} + +int au_vdir_fill_de(struct file *file, void *dirent, filldir_t filldir) +{ + int err; + unsigned int l, deblk_sz; + union au_vdir_deblk_p deblk_end; + struct au_vdir *vdir_cache; + struct au_vdir_de *de; + + vdir_cache = au_fvdir_cache(file); + if (!seek_vdir(file)) + return 0; + + deblk_sz = vdir_cache->vd_deblk_sz; + while (1) { + deblk_end.deblk = vdir_cache->vd_deblk[vdir_cache->vd_last.ul]; + deblk_end.deblk += deblk_sz; + while (!is_deblk_end(&vdir_cache->vd_last.p, &deblk_end)) { + de = vdir_cache->vd_last.p.de; + AuDbg("%.*s, off%lld, i%lu, dt%d\n", + de->de_str.len, de->de_str.name, file->f_pos, + (unsigned long)de->de_ino, de->de_type); + err = filldir(dirent, de->de_str.name, de->de_str.len, + file->f_pos, de->de_ino, de->de_type); + if (unlikely(err)) { + AuTraceErr(err); + /* todo: ignore the error caused by udba? */ + /* return err; */ + return 0; + } + + l = calc_size(de->de_str.len); + vdir_cache->vd_last.p.deblk += l; + file->f_pos += l; + } + if (vdir_cache->vd_last.ul < vdir_cache->vd_nblk - 1) { + vdir_cache->vd_last.ul++; + vdir_cache->vd_last.p.deblk + = vdir_cache->vd_deblk[vdir_cache->vd_last.ul]; + file->f_pos = deblk_sz * vdir_cache->vd_last.ul; + continue; + } + break; + } + + /* smp_mb(); */ + return 0; +} --- linux-3.2.0.orig/ubuntu/aufs/ioctl.c +++ linux-3.2.0/ubuntu/aufs/ioctl.c @@ -0,0 +1,196 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * ioctl + * plink-management and readdir in userspace. + * assist the pathconf(3) wrapper library. + */ + +#include "aufs.h" + +static int au_wbr_fd(struct path *path, struct aufs_wbr_fd __user *arg) +{ + int err, fd; + aufs_bindex_t wbi, bindex, bend; + struct file *h_file; + struct super_block *sb; + struct dentry *root; + struct au_branch *br; + struct aufs_wbr_fd wbrfd = { + .oflags = au_dir_roflags, + .brid = -1 + }; + const int valid = O_RDONLY | O_NONBLOCK | O_LARGEFILE | O_DIRECTORY + | O_NOATIME | O_CLOEXEC; + + AuDebugOn(wbrfd.oflags & ~valid); + + if (arg) { + err = copy_from_user(&wbrfd, arg, sizeof(wbrfd)); + if (unlikely(err)) { + err = -EFAULT; + goto out; + } + + err = -EINVAL; + AuDbg("wbrfd{0%o, %d}\n", wbrfd.oflags, wbrfd.brid); + wbrfd.oflags |= au_dir_roflags; + AuDbg("0%o\n", wbrfd.oflags); + if (unlikely(wbrfd.oflags & ~valid)) + goto out; + } + + fd = get_unused_fd(); + err = fd; + if (unlikely(fd < 0)) + goto out; + + h_file = ERR_PTR(-EINVAL); + wbi = 0; + br = NULL; + sb = path->dentry->d_sb; + root = sb->s_root; + aufs_read_lock(root, AuLock_IR); + bend = au_sbend(sb); + if (wbrfd.brid >= 0) { + wbi = au_br_index(sb, wbrfd.brid); + if (unlikely(wbi < 0 || wbi > bend)) + goto out_unlock; + } + + h_file = ERR_PTR(-ENOENT); + br = au_sbr(sb, wbi); + if (!au_br_writable(br->br_perm)) { + if (arg) + goto out_unlock; + + bindex = wbi + 1; + wbi = -1; + for (; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + if (au_br_writable(br->br_perm)) { + wbi = bindex; + br = au_sbr(sb, wbi); + break; + } + } + } + AuDbg("wbi %d\n", wbi); + if (wbi >= 0) + h_file = au_h_open(root, wbi, wbrfd.oflags, NULL); + +out_unlock: + aufs_read_unlock(root, AuLock_IR); + err = PTR_ERR(h_file); + if (IS_ERR(h_file)) + goto out_fd; + + atomic_dec(&br->br_count); /* cf. au_h_open() */ + fd_install(fd, h_file); + err = fd; + goto out; /* success */ + +out_fd: + put_unused_fd(fd); +out: + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +long aufs_ioctl_dir(struct file *file, unsigned int cmd, unsigned long arg) +{ + long err; + + switch (cmd) { + case AUFS_CTL_RDU: + case AUFS_CTL_RDU_INO: + err = au_rdu_ioctl(file, cmd, arg); + break; + + case AUFS_CTL_WBR_FD: + err = au_wbr_fd(&file->f_path, (void __user *)arg); + break; + + case AUFS_CTL_IBUSY: + err = au_ibusy_ioctl(file, arg); + break; + + default: + /* do not call the lower */ + AuDbg("0x%x\n", cmd); + err = -ENOTTY; + } + + AuTraceErr(err); + return err; +} + +long aufs_ioctl_nondir(struct file *file, unsigned int cmd, unsigned long arg) +{ + long err; + + switch (cmd) { + case AUFS_CTL_WBR_FD: + err = au_wbr_fd(&file->f_path, (void __user *)arg); + break; + + default: + /* do not call the lower */ + AuDbg("0x%x\n", cmd); + err = -ENOTTY; + } + + AuTraceErr(err); + return err; +} + +#ifdef CONFIG_COMPAT +long aufs_compat_ioctl_dir(struct file *file, unsigned int cmd, + unsigned long arg) +{ + long err; + + switch (cmd) { + case AUFS_CTL_RDU: + case AUFS_CTL_RDU_INO: + err = au_rdu_compat_ioctl(file, cmd, arg); + break; + + case AUFS_CTL_IBUSY: + err = au_ibusy_compat_ioctl(file, arg); + break; + + default: + err = aufs_ioctl_dir(file, cmd, arg); + } + + AuTraceErr(err); + return err; +} + +#if 0 /* unused yet */ +long aufs_compat_ioctl_nondir(struct file *file, unsigned int cmd, + unsigned long arg) +{ + return aufs_ioctl_nondir(file, cmd, (unsigned long)compat_ptr(arg)); +} +#endif +#endif --- linux-3.2.0.orig/ubuntu/aufs/i_op_ren.c +++ linux-3.2.0/ubuntu/aufs/i_op_ren.c @@ -0,0 +1,1017 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode operation (rename entry) + * todo: this is crazy monster + */ + +#include "aufs.h" + +enum { AuSRC, AuDST, AuSrcDst }; +enum { AuPARENT, AuCHILD, AuParentChild }; + +#define AuRen_ISDIR 1 +#define AuRen_ISSAMEDIR (1 << 1) +#define AuRen_WHSRC (1 << 2) +#define AuRen_WHDST (1 << 3) +#define AuRen_MNT_WRITE (1 << 4) +#define AuRen_DT_DSTDIR (1 << 5) +#define AuRen_DIROPQ (1 << 6) +#define AuRen_CPUP (1 << 7) +#define au_ftest_ren(flags, name) ((flags) & AuRen_##name) +#define au_fset_ren(flags, name) \ + do { (flags) |= AuRen_##name; } while (0) +#define au_fclr_ren(flags, name) \ + do { (flags) &= ~AuRen_##name; } while (0) + +struct au_ren_args { + struct { + struct dentry *dentry, *h_dentry, *parent, *h_parent, + *wh_dentry; + struct inode *dir, *inode; + struct au_hinode *hdir; + struct au_dtime dt[AuParentChild]; + aufs_bindex_t bstart; + } sd[AuSrcDst]; + +#define src_dentry sd[AuSRC].dentry +#define src_dir sd[AuSRC].dir +#define src_inode sd[AuSRC].inode +#define src_h_dentry sd[AuSRC].h_dentry +#define src_parent sd[AuSRC].parent +#define src_h_parent sd[AuSRC].h_parent +#define src_wh_dentry sd[AuSRC].wh_dentry +#define src_hdir sd[AuSRC].hdir +#define src_h_dir sd[AuSRC].hdir->hi_inode +#define src_dt sd[AuSRC].dt +#define src_bstart sd[AuSRC].bstart + +#define dst_dentry sd[AuDST].dentry +#define dst_dir sd[AuDST].dir +#define dst_inode sd[AuDST].inode +#define dst_h_dentry sd[AuDST].h_dentry +#define dst_parent sd[AuDST].parent +#define dst_h_parent sd[AuDST].h_parent +#define dst_wh_dentry sd[AuDST].wh_dentry +#define dst_hdir sd[AuDST].hdir +#define dst_h_dir sd[AuDST].hdir->hi_inode +#define dst_dt sd[AuDST].dt +#define dst_bstart sd[AuDST].bstart + + struct dentry *h_trap; + struct au_branch *br; + struct au_hinode *src_hinode; + struct path h_path; + struct au_nhash whlist; + aufs_bindex_t btgt, src_bwh, src_bdiropq; + + unsigned int flags; + + struct au_whtmp_rmdir *thargs; + struct dentry *h_dst; +}; + +/* ---------------------------------------------------------------------- */ + +/* + * functions for reverting. + * when an error happened in a single rename systemcall, we should revert + * everything as if nothing happend. + * we don't need to revert the copied-up/down the parent dir since they are + * harmless. + */ + +#define RevertFailure(fmt, ...) do { \ + AuIOErr("revert failure: " fmt " (%d, %d)\n", \ + ##__VA_ARGS__, err, rerr); \ + err = -EIO; \ +} while (0) + +static void au_ren_rev_diropq(int err, struct au_ren_args *a) +{ + int rerr; + + au_hn_imtx_lock_nested(a->src_hinode, AuLsc_I_CHILD); + rerr = au_diropq_remove(a->src_dentry, a->btgt); + au_hn_imtx_unlock(a->src_hinode); + au_set_dbdiropq(a->src_dentry, a->src_bdiropq); + if (rerr) + RevertFailure("remove diropq %.*s", AuDLNPair(a->src_dentry)); +} + +static void au_ren_rev_rename(int err, struct au_ren_args *a) +{ + int rerr; + + a->h_path.dentry = au_lkup_one(&a->src_dentry->d_name, a->src_h_parent, + a->br, /*nd*/NULL); + rerr = PTR_ERR(a->h_path.dentry); + if (IS_ERR(a->h_path.dentry)) { + RevertFailure("au_lkup_one %.*s", AuDLNPair(a->src_dentry)); + return; + } + + rerr = vfsub_rename(a->dst_h_dir, + au_h_dptr(a->src_dentry, a->btgt), + a->src_h_dir, &a->h_path); + d_drop(a->h_path.dentry); + dput(a->h_path.dentry); + /* au_set_h_dptr(a->src_dentry, a->btgt, NULL); */ + if (rerr) + RevertFailure("rename %.*s", AuDLNPair(a->src_dentry)); +} + +static void au_ren_rev_cpup(int err, struct au_ren_args *a) +{ + int rerr; + + a->h_path.dentry = a->dst_h_dentry; + rerr = vfsub_unlink(a->dst_h_dir, &a->h_path, /*force*/0); + au_set_h_dptr(a->src_dentry, a->btgt, NULL); + au_set_dbstart(a->src_dentry, a->src_bstart); + if (rerr) + RevertFailure("unlink %.*s", AuDLNPair(a->dst_h_dentry)); +} + +static void au_ren_rev_whtmp(int err, struct au_ren_args *a) +{ + int rerr; + + a->h_path.dentry = au_lkup_one(&a->dst_dentry->d_name, a->dst_h_parent, + a->br, /*nd*/NULL); + rerr = PTR_ERR(a->h_path.dentry); + if (IS_ERR(a->h_path.dentry)) { + RevertFailure("lookup %.*s", AuDLNPair(a->dst_dentry)); + return; + } + if (a->h_path.dentry->d_inode) { + d_drop(a->h_path.dentry); + dput(a->h_path.dentry); + return; + } + + rerr = vfsub_rename(a->dst_h_dir, a->h_dst, a->dst_h_dir, &a->h_path); + d_drop(a->h_path.dentry); + dput(a->h_path.dentry); + if (!rerr) + au_set_h_dptr(a->dst_dentry, a->btgt, dget(a->h_dst)); + else + RevertFailure("rename %.*s", AuDLNPair(a->h_dst)); +} + +static void au_ren_rev_whsrc(int err, struct au_ren_args *a) +{ + int rerr; + + a->h_path.dentry = a->src_wh_dentry; + rerr = au_wh_unlink_dentry(a->src_h_dir, &a->h_path, a->src_dentry); + au_set_dbwh(a->src_dentry, a->src_bwh); + if (rerr) + RevertFailure("unlink %.*s", AuDLNPair(a->src_wh_dentry)); +} +#undef RevertFailure + +/* ---------------------------------------------------------------------- */ + +/* + * when we have to copyup the renaming entry, do it with the rename-target name + * in order to minimize the cost (the later actual rename is unnecessary). + * otherwise rename it on the target branch. + */ +static int au_ren_or_cpup(struct au_ren_args *a) +{ + int err; + struct dentry *d; + + d = a->src_dentry; + if (au_dbstart(d) == a->btgt) { + a->h_path.dentry = a->dst_h_dentry; + if (au_ftest_ren(a->flags, DIROPQ) + && au_dbdiropq(d) == a->btgt) + au_fclr_ren(a->flags, DIROPQ); + AuDebugOn(au_dbstart(d) != a->btgt); + err = vfsub_rename(a->src_h_dir, au_h_dptr(d, a->btgt), + a->dst_h_dir, &a->h_path); + } else { + struct mutex *h_mtx = &a->src_h_dentry->d_inode->i_mutex; + struct file *h_file; + + au_fset_ren(a->flags, CPUP); + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + au_set_dbstart(d, a->btgt); + au_set_h_dptr(d, a->btgt, dget(a->dst_h_dentry)); + h_file = au_h_open_pre(d, a->src_bstart); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else + err = au_sio_cpup_single(d, a->btgt, a->src_bstart, -1, + !AuCpup_DTIME, a->dst_parent); + mutex_unlock(h_mtx); + au_h_open_post(d, a->src_bstart, h_file); + if (!err) { + d = a->dst_dentry; + au_set_h_dptr(d, a->btgt, NULL); + au_update_dbstart(d); + } else { + au_set_h_dptr(d, a->btgt, NULL); + au_set_dbstart(d, a->src_bstart); + } + } + if (!err && a->h_dst) + /* it will be set to dinfo later */ + dget(a->h_dst); + + return err; +} + +/* cf. aufs_rmdir() */ +static int au_ren_del_whtmp(struct au_ren_args *a) +{ + int err; + struct inode *dir; + + dir = a->dst_dir; + SiMustAnyLock(dir->i_sb); + if (!au_nhash_test_longer_wh(&a->whlist, a->btgt, + au_sbi(dir->i_sb)->si_dirwh) + || au_test_fs_remote(a->h_dst->d_sb)) { + err = au_whtmp_rmdir(dir, a->btgt, a->h_dst, &a->whlist); + if (unlikely(err)) + pr_warning("failed removing whtmp dir %.*s (%d), " + "ignored.\n", AuDLNPair(a->h_dst), err); + } else { + au_nhash_wh_free(&a->thargs->whlist); + a->thargs->whlist = a->whlist; + a->whlist.nh_num = 0; + au_whtmp_kick_rmdir(dir, a->btgt, a->h_dst, a->thargs); + dput(a->h_dst); + a->thargs = NULL; + } + + return 0; +} + +/* make it 'opaque' dir. */ +static int au_ren_diropq(struct au_ren_args *a) +{ + int err; + struct dentry *diropq; + + err = 0; + a->src_bdiropq = au_dbdiropq(a->src_dentry); + a->src_hinode = au_hi(a->src_inode, a->btgt); + au_hn_imtx_lock_nested(a->src_hinode, AuLsc_I_CHILD); + diropq = au_diropq_create(a->src_dentry, a->btgt); + au_hn_imtx_unlock(a->src_hinode); + if (IS_ERR(diropq)) + err = PTR_ERR(diropq); + dput(diropq); + + return err; +} + +static int do_rename(struct au_ren_args *a) +{ + int err; + struct dentry *d, *h_d; + + /* prepare workqueue args for asynchronous rmdir */ + h_d = a->dst_h_dentry; + if (au_ftest_ren(a->flags, ISDIR) && h_d->d_inode) { + err = -ENOMEM; + a->thargs = au_whtmp_rmdir_alloc(a->src_dentry->d_sb, GFP_NOFS); + if (unlikely(!a->thargs)) + goto out; + a->h_dst = dget(h_d); + } + + /* create whiteout for src_dentry */ + if (au_ftest_ren(a->flags, WHSRC)) { + a->src_bwh = au_dbwh(a->src_dentry); + AuDebugOn(a->src_bwh >= 0); + a->src_wh_dentry + = au_wh_create(a->src_dentry, a->btgt, a->src_h_parent); + err = PTR_ERR(a->src_wh_dentry); + if (IS_ERR(a->src_wh_dentry)) + goto out_thargs; + } + + /* lookup whiteout for dentry */ + if (au_ftest_ren(a->flags, WHDST)) { + h_d = au_wh_lkup(a->dst_h_parent, &a->dst_dentry->d_name, + a->br); + err = PTR_ERR(h_d); + if (IS_ERR(h_d)) + goto out_whsrc; + if (!h_d->d_inode) + dput(h_d); + else + a->dst_wh_dentry = h_d; + } + + /* rename dentry to tmpwh */ + if (a->thargs) { + err = au_whtmp_ren(a->dst_h_dentry, a->br); + if (unlikely(err)) + goto out_whdst; + + d = a->dst_dentry; + au_set_h_dptr(d, a->btgt, NULL); + err = au_lkup_neg(d, a->btgt); + if (unlikely(err)) + goto out_whtmp; + a->dst_h_dentry = au_h_dptr(d, a->btgt); + } + + /* cpup src */ + if (a->dst_h_dentry->d_inode && a->src_bstart != a->btgt) { + struct mutex *h_mtx = &a->src_h_dentry->d_inode->i_mutex; + struct file *h_file; + + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + AuDebugOn(au_dbstart(a->src_dentry) != a->src_bstart); + h_file = au_h_open_pre(a->src_dentry, a->src_bstart); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else + err = au_sio_cpup_simple(a->src_dentry, a->btgt, -1, + !AuCpup_DTIME); + mutex_unlock(h_mtx); + au_h_open_post(a->src_dentry, a->src_bstart, h_file); + if (unlikely(err)) + goto out_whtmp; + } + + /* rename by vfs_rename or cpup */ + d = a->dst_dentry; + if (au_ftest_ren(a->flags, ISDIR) + && (a->dst_wh_dentry + || au_dbdiropq(d) == a->btgt + /* hide the lower to keep xino */ + || a->btgt < au_dbend(d) + || au_opt_test(au_mntflags(d->d_sb), ALWAYS_DIROPQ))) + au_fset_ren(a->flags, DIROPQ); + err = au_ren_or_cpup(a); + if (unlikely(err)) + /* leave the copied-up one */ + goto out_whtmp; + + /* make dir opaque */ + if (au_ftest_ren(a->flags, DIROPQ)) { + err = au_ren_diropq(a); + if (unlikely(err)) + goto out_rename; + } + + /* update target timestamps */ + AuDebugOn(au_dbstart(a->src_dentry) != a->btgt); + a->h_path.dentry = au_h_dptr(a->src_dentry, a->btgt); + vfsub_update_h_iattr(&a->h_path, /*did*/NULL); /*ignore*/ + a->src_inode->i_ctime = a->h_path.dentry->d_inode->i_ctime; + + /* remove whiteout for dentry */ + if (a->dst_wh_dentry) { + a->h_path.dentry = a->dst_wh_dentry; + err = au_wh_unlink_dentry(a->dst_h_dir, &a->h_path, + a->dst_dentry); + if (unlikely(err)) + goto out_diropq; + } + + /* remove whtmp */ + if (a->thargs) + au_ren_del_whtmp(a); /* ignore this error */ + + err = 0; + goto out_success; + +out_diropq: + if (au_ftest_ren(a->flags, DIROPQ)) + au_ren_rev_diropq(err, a); +out_rename: + if (!au_ftest_ren(a->flags, CPUP)) + au_ren_rev_rename(err, a); + else + au_ren_rev_cpup(err, a); + dput(a->h_dst); +out_whtmp: + if (a->thargs) + au_ren_rev_whtmp(err, a); +out_whdst: + dput(a->dst_wh_dentry); + a->dst_wh_dentry = NULL; +out_whsrc: + if (a->src_wh_dentry) + au_ren_rev_whsrc(err, a); +out_success: + dput(a->src_wh_dentry); + dput(a->dst_wh_dentry); +out_thargs: + if (a->thargs) { + dput(a->h_dst); + au_whtmp_rmdir_free(a->thargs); + a->thargs = NULL; + } +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * test if @dentry dir can be rename destination or not. + * success means, it is a logically empty dir. + */ +static int may_rename_dstdir(struct dentry *dentry, struct au_nhash *whlist) +{ + return au_test_empty(dentry, whlist); +} + +/* + * test if @dentry dir can be rename source or not. + * if it can, return 0 and @children is filled. + * success means, + * - it is a logically empty dir. + * - or, it exists on writable branch and has no children including whiteouts + * on the lower branch. + */ +static int may_rename_srcdir(struct dentry *dentry, aufs_bindex_t btgt) +{ + int err; + unsigned int rdhash; + aufs_bindex_t bstart; + + bstart = au_dbstart(dentry); + if (bstart != btgt) { + struct au_nhash whlist; + + SiMustAnyLock(dentry->d_sb); + rdhash = au_sbi(dentry->d_sb)->si_rdhash; + if (!rdhash) + rdhash = au_rdhash_est(au_dir_size(/*file*/NULL, + dentry)); + err = au_nhash_alloc(&whlist, rdhash, GFP_NOFS); + if (unlikely(err)) + goto out; + err = au_test_empty(dentry, &whlist); + au_nhash_wh_free(&whlist); + goto out; + } + + if (bstart == au_dbtaildir(dentry)) + return 0; /* success */ + + err = au_test_empty_lower(dentry); + +out: + if (err == -ENOTEMPTY) { + AuWarn1("renaming dir who has child(ren) on multiple branches," + " is not supported\n"); + err = -EXDEV; + } + return err; +} + +/* side effect: sets whlist and h_dentry */ +static int au_ren_may_dir(struct au_ren_args *a) +{ + int err; + unsigned int rdhash; + struct dentry *d; + + d = a->dst_dentry; + SiMustAnyLock(d->d_sb); + + err = 0; + if (au_ftest_ren(a->flags, ISDIR) && a->dst_inode) { + rdhash = au_sbi(d->d_sb)->si_rdhash; + if (!rdhash) + rdhash = au_rdhash_est(au_dir_size(/*file*/NULL, d)); + err = au_nhash_alloc(&a->whlist, rdhash, GFP_NOFS); + if (unlikely(err)) + goto out; + + au_set_dbstart(d, a->dst_bstart); + err = may_rename_dstdir(d, &a->whlist); + au_set_dbstart(d, a->btgt); + } + a->dst_h_dentry = au_h_dptr(d, au_dbstart(d)); + if (unlikely(err)) + goto out; + + d = a->src_dentry; + a->src_h_dentry = au_h_dptr(d, au_dbstart(d)); + if (au_ftest_ren(a->flags, ISDIR)) { + err = may_rename_srcdir(d, a->btgt); + if (unlikely(err)) { + au_nhash_wh_free(&a->whlist); + a->whlist.nh_num = 0; + } + } +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * simple tests for rename. + * following the checks in vfs, plus the parent-child relationship. + */ +static int au_may_ren(struct au_ren_args *a) +{ + int err, isdir; + struct inode *h_inode; + + if (a->src_bstart == a->btgt) { + err = au_may_del(a->src_dentry, a->btgt, a->src_h_parent, + au_ftest_ren(a->flags, ISDIR)); + if (unlikely(err)) + goto out; + err = -EINVAL; + if (unlikely(a->src_h_dentry == a->h_trap)) + goto out; + } + + err = 0; + if (a->dst_bstart != a->btgt) + goto out; + + err = -ENOTEMPTY; + if (unlikely(a->dst_h_dentry == a->h_trap)) + goto out; + + err = -EIO; + h_inode = a->dst_h_dentry->d_inode; + isdir = !!au_ftest_ren(a->flags, ISDIR); + if (!a->dst_dentry->d_inode) { + if (unlikely(h_inode)) + goto out; + err = au_may_add(a->dst_dentry, a->btgt, a->dst_h_parent, + isdir); + } else { + if (unlikely(!h_inode || !h_inode->i_nlink)) + goto out; + err = au_may_del(a->dst_dentry, a->btgt, a->dst_h_parent, + isdir); + if (unlikely(err)) + goto out; + } + +out: + if (unlikely(err == -ENOENT || err == -EEXIST)) + err = -EIO; + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * locking order + * (VFS) + * - src_dir and dir by lock_rename() + * - inode if exitsts + * (aufs) + * - lock all + * + src_dentry and dentry by aufs_read_and_write_lock2() which calls, + * + si_read_lock + * + di_write_lock2_child() + * + di_write_lock_child() + * + ii_write_lock_child() + * + di_write_lock_child2() + * + ii_write_lock_child2() + * + src_parent and parent + * + di_write_lock_parent() + * + ii_write_lock_parent() + * + di_write_lock_parent2() + * + ii_write_lock_parent2() + * + lower src_dir and dir by vfsub_lock_rename() + * + verify the every relationships between child and parent. if any + * of them failed, unlock all and return -EBUSY. + */ +static void au_ren_unlock(struct au_ren_args *a) +{ + struct super_block *sb; + + sb = a->dst_dentry->d_sb; + if (au_ftest_ren(a->flags, MNT_WRITE)) + mnt_drop_write(a->br->br_mnt); + vfsub_unlock_rename(a->src_h_parent, a->src_hdir, + a->dst_h_parent, a->dst_hdir); +} + +static int au_ren_lock(struct au_ren_args *a) +{ + int err; + unsigned int udba; + + err = 0; + a->src_h_parent = au_h_dptr(a->src_parent, a->btgt); + a->src_hdir = au_hi(a->src_dir, a->btgt); + a->dst_h_parent = au_h_dptr(a->dst_parent, a->btgt); + a->dst_hdir = au_hi(a->dst_dir, a->btgt); + a->h_trap = vfsub_lock_rename(a->src_h_parent, a->src_hdir, + a->dst_h_parent, a->dst_hdir); + udba = au_opt_udba(a->src_dentry->d_sb); + if (unlikely(a->src_hdir->hi_inode != a->src_h_parent->d_inode + || a->dst_hdir->hi_inode != a->dst_h_parent->d_inode)) + err = au_busy_or_stale(); + if (!err && au_dbstart(a->src_dentry) == a->btgt) + err = au_h_verify(a->src_h_dentry, udba, + a->src_h_parent->d_inode, a->src_h_parent, + a->br); + if (!err && au_dbstart(a->dst_dentry) == a->btgt) + err = au_h_verify(a->dst_h_dentry, udba, + a->dst_h_parent->d_inode, a->dst_h_parent, + a->br); + if (!err) { + err = mnt_want_write(a->br->br_mnt); + if (unlikely(err)) + goto out_unlock; + au_fset_ren(a->flags, MNT_WRITE); + goto out; /* success */ + } + + err = au_busy_or_stale(); + +out_unlock: + au_ren_unlock(a); +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +static void au_ren_refresh_dir(struct au_ren_args *a) +{ + struct inode *dir; + + dir = a->dst_dir; + dir->i_version++; + if (au_ftest_ren(a->flags, ISDIR)) { + /* is this updating defined in POSIX? */ + au_cpup_attr_timesizes(a->src_inode); + au_cpup_attr_nlink(dir, /*force*/1); + } + + if (au_ibstart(dir) == a->btgt) + au_cpup_attr_timesizes(dir); + + if (au_ftest_ren(a->flags, ISSAMEDIR)) + return; + + dir = a->src_dir; + dir->i_version++; + if (au_ftest_ren(a->flags, ISDIR)) + au_cpup_attr_nlink(dir, /*force*/1); + if (au_ibstart(dir) == a->btgt) + au_cpup_attr_timesizes(dir); +} + +static void au_ren_refresh(struct au_ren_args *a) +{ + aufs_bindex_t bend, bindex; + struct dentry *d, *h_d; + struct inode *i, *h_i; + struct super_block *sb; + + d = a->dst_dentry; + d_drop(d); + if (a->h_dst) + /* already dget-ed by au_ren_or_cpup() */ + au_set_h_dptr(d, a->btgt, a->h_dst); + + i = a->dst_inode; + if (i) { + if (!au_ftest_ren(a->flags, ISDIR)) + vfsub_drop_nlink(i); + else { + vfsub_dead_dir(i); + au_cpup_attr_timesizes(i); + } + au_update_dbrange(d, /*do_put_zero*/1); + } else { + bend = a->btgt; + for (bindex = au_dbstart(d); bindex < bend; bindex++) + au_set_h_dptr(d, bindex, NULL); + bend = au_dbend(d); + for (bindex = a->btgt + 1; bindex <= bend; bindex++) + au_set_h_dptr(d, bindex, NULL); + au_update_dbrange(d, /*do_put_zero*/0); + } + + d = a->src_dentry; + au_set_dbwh(d, -1); + bend = au_dbend(d); + for (bindex = a->btgt + 1; bindex <= bend; bindex++) { + h_d = au_h_dptr(d, bindex); + if (h_d) + au_set_h_dptr(d, bindex, NULL); + } + au_set_dbend(d, a->btgt); + + sb = d->d_sb; + i = a->src_inode; + if (au_opt_test(au_mntflags(sb), PLINK) && au_plink_test(i)) + return; /* success */ + + bend = au_ibend(i); + for (bindex = a->btgt + 1; bindex <= bend; bindex++) { + h_i = au_h_iptr(i, bindex); + if (h_i) { + au_xino_write(sb, bindex, h_i->i_ino, /*ino*/0); + /* ignore this error */ + au_set_h_iptr(i, bindex, NULL, 0); + } + } + au_set_ibend(i, a->btgt); +} + +/* ---------------------------------------------------------------------- */ + +/* mainly for link(2) and rename(2) */ +int au_wbr(struct dentry *dentry, aufs_bindex_t btgt) +{ + aufs_bindex_t bdiropq, bwh; + struct dentry *parent; + struct au_branch *br; + + parent = dentry->d_parent; + IMustLock(parent->d_inode); /* dir is locked */ + + bdiropq = au_dbdiropq(parent); + bwh = au_dbwh(dentry); + br = au_sbr(dentry->d_sb, btgt); + if (au_br_rdonly(br) + || (0 <= bdiropq && bdiropq < btgt) + || (0 <= bwh && bwh < btgt)) + btgt = -1; + + AuDbg("btgt %d\n", btgt); + return btgt; +} + +/* sets src_bstart, dst_bstart and btgt */ +static int au_ren_wbr(struct au_ren_args *a) +{ + int err; + struct au_wr_dir_args wr_dir_args = { + /* .force_btgt = -1, */ + .flags = AuWrDir_ADD_ENTRY + }; + + a->src_bstart = au_dbstart(a->src_dentry); + a->dst_bstart = au_dbstart(a->dst_dentry); + if (au_ftest_ren(a->flags, ISDIR)) + au_fset_wrdir(wr_dir_args.flags, ISDIR); + wr_dir_args.force_btgt = a->src_bstart; + if (a->dst_inode && a->dst_bstart < a->src_bstart) + wr_dir_args.force_btgt = a->dst_bstart; + wr_dir_args.force_btgt = au_wbr(a->dst_dentry, wr_dir_args.force_btgt); + err = au_wr_dir(a->dst_dentry, a->src_dentry, &wr_dir_args); + a->btgt = err; + + return err; +} + +static void au_ren_dt(struct au_ren_args *a) +{ + a->h_path.dentry = a->src_h_parent; + au_dtime_store(a->src_dt + AuPARENT, a->src_parent, &a->h_path); + if (!au_ftest_ren(a->flags, ISSAMEDIR)) { + a->h_path.dentry = a->dst_h_parent; + au_dtime_store(a->dst_dt + AuPARENT, a->dst_parent, &a->h_path); + } + + au_fclr_ren(a->flags, DT_DSTDIR); + if (!au_ftest_ren(a->flags, ISDIR)) + return; + + a->h_path.dentry = a->src_h_dentry; + au_dtime_store(a->src_dt + AuCHILD, a->src_dentry, &a->h_path); + if (a->dst_h_dentry->d_inode) { + au_fset_ren(a->flags, DT_DSTDIR); + a->h_path.dentry = a->dst_h_dentry; + au_dtime_store(a->dst_dt + AuCHILD, a->dst_dentry, &a->h_path); + } +} + +static void au_ren_rev_dt(int err, struct au_ren_args *a) +{ + struct dentry *h_d; + struct mutex *h_mtx; + + au_dtime_revert(a->src_dt + AuPARENT); + if (!au_ftest_ren(a->flags, ISSAMEDIR)) + au_dtime_revert(a->dst_dt + AuPARENT); + + if (au_ftest_ren(a->flags, ISDIR) && err != -EIO) { + h_d = a->src_dt[AuCHILD].dt_h_path.dentry; + h_mtx = &h_d->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + au_dtime_revert(a->src_dt + AuCHILD); + mutex_unlock(h_mtx); + + if (au_ftest_ren(a->flags, DT_DSTDIR)) { + h_d = a->dst_dt[AuCHILD].dt_h_path.dentry; + h_mtx = &h_d->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + au_dtime_revert(a->dst_dt + AuCHILD); + mutex_unlock(h_mtx); + } + } +} + +/* ---------------------------------------------------------------------- */ + +int aufs_rename(struct inode *_src_dir, struct dentry *_src_dentry, + struct inode *_dst_dir, struct dentry *_dst_dentry) +{ + int err, flags; + /* reduce stack space */ + struct au_ren_args *a; + + AuDbg("%.*s, %.*s\n", AuDLNPair(_src_dentry), AuDLNPair(_dst_dentry)); + IMustLock(_src_dir); + IMustLock(_dst_dir); + + err = -ENOMEM; + BUILD_BUG_ON(sizeof(*a) > PAGE_SIZE); + a = kzalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + a->src_dir = _src_dir; + a->src_dentry = _src_dentry; + a->src_inode = a->src_dentry->d_inode; + a->src_parent = a->src_dentry->d_parent; /* dir inode is locked */ + a->dst_dir = _dst_dir; + a->dst_dentry = _dst_dentry; + a->dst_inode = a->dst_dentry->d_inode; + a->dst_parent = a->dst_dentry->d_parent; /* dir inode is locked */ + if (a->dst_inode) { + IMustLock(a->dst_inode); + au_igrab(a->dst_inode); + } + + err = -ENOTDIR; + flags = AuLock_FLUSH | AuLock_NOPLM | AuLock_GEN; + if (S_ISDIR(a->src_inode->i_mode)) { + au_fset_ren(a->flags, ISDIR); + if (unlikely(a->dst_inode && !S_ISDIR(a->dst_inode->i_mode))) + goto out_free; + err = aufs_read_and_write_lock2(a->dst_dentry, a->src_dentry, + AuLock_DIR | flags); + } else + err = aufs_read_and_write_lock2(a->dst_dentry, a->src_dentry, + flags); + if (unlikely(err)) + goto out_free; + + err = au_d_hashed_positive(a->src_dentry); + if (unlikely(err)) + goto out_unlock; + err = -ENOENT; + if (a->dst_inode) { + /* + * If it is a dir, VFS unhash dst_dentry before this + * function. It means we cannot rely upon d_unhashed(). + */ + if (unlikely(!a->dst_inode->i_nlink)) + goto out_unlock; + if (!S_ISDIR(a->dst_inode->i_mode)) { + err = au_d_hashed_positive(a->dst_dentry); + if (unlikely(err)) + goto out_unlock; + } else if (unlikely(IS_DEADDIR(a->dst_inode))) + goto out_unlock; + } else if (unlikely(d_unhashed(a->dst_dentry))) + goto out_unlock; + + au_fset_ren(a->flags, ISSAMEDIR); /* temporary */ + di_write_lock_parent(a->dst_parent); + + /* which branch we process */ + err = au_ren_wbr(a); + if (unlikely(err < 0)) + goto out_parent; + a->br = au_sbr(a->dst_dentry->d_sb, a->btgt); + a->h_path.mnt = a->br->br_mnt; + + /* are they available to be renamed */ + err = au_ren_may_dir(a); + if (unlikely(err)) + goto out_children; + + /* prepare the writable parent dir on the same branch */ + if (a->dst_bstart == a->btgt) { + au_fset_ren(a->flags, WHDST); + } else { + err = au_cpup_dirs(a->dst_dentry, a->btgt); + if (unlikely(err)) + goto out_children; + } + + if (a->src_dir != a->dst_dir) { + /* + * this temporary unlock is safe, + * because both dir->i_mutex are locked. + */ + di_write_unlock(a->dst_parent); + di_write_lock_parent(a->src_parent); + err = au_wr_dir_need_wh(a->src_dentry, + au_ftest_ren(a->flags, ISDIR), + &a->btgt); + di_write_unlock(a->src_parent); + di_write_lock2_parent(a->src_parent, a->dst_parent, /*isdir*/1); + au_fclr_ren(a->flags, ISSAMEDIR); + } else + err = au_wr_dir_need_wh(a->src_dentry, + au_ftest_ren(a->flags, ISDIR), + &a->btgt); + if (unlikely(err < 0)) + goto out_children; + if (err) + au_fset_ren(a->flags, WHSRC); + + /* lock them all */ + err = au_ren_lock(a); + if (unlikely(err)) + goto out_children; + + if (!au_opt_test(au_mntflags(a->dst_dir->i_sb), UDBA_NONE)) + err = au_may_ren(a); + else if (unlikely(a->dst_dentry->d_name.len > AUFS_MAX_NAMELEN)) + err = -ENAMETOOLONG; + if (unlikely(err)) + goto out_hdir; + + /* store timestamps to be revertible */ + au_ren_dt(a); + + /* here we go */ + err = do_rename(a); + if (unlikely(err)) + goto out_dt; + + /* update dir attributes */ + au_ren_refresh_dir(a); + + /* dput/iput all lower dentries */ + au_ren_refresh(a); + + goto out_hdir; /* success */ + +out_dt: + au_ren_rev_dt(err, a); +out_hdir: + au_ren_unlock(a); +out_children: + au_nhash_wh_free(&a->whlist); + if (err && a->dst_inode && a->dst_bstart != a->btgt) { + AuDbg("bstart %d, btgt %d\n", a->dst_bstart, a->btgt); + au_set_h_dptr(a->dst_dentry, a->btgt, NULL); + au_set_dbstart(a->dst_dentry, a->dst_bstart); + } +out_parent: + if (!err) + d_move(a->src_dentry, a->dst_dentry); + else { + au_update_dbstart(a->dst_dentry); + if (!a->dst_inode) + d_drop(a->dst_dentry); + } + if (au_ftest_ren(a->flags, ISSAMEDIR)) + di_write_unlock(a->dst_parent); + else + di_write_unlock2(a->src_parent, a->dst_parent); +out_unlock: + aufs_read_and_write_unlock2(a->dst_dentry, a->src_dentry); +out_free: + iput(a->dst_inode); + if (a->thargs) + au_whtmp_rmdir_free(a->thargs); + kfree(a); +out: + AuTraceErr(err); + return err; +} --- linux-3.2.0.orig/ubuntu/aufs/sysaufs.h +++ linux-3.2.0/ubuntu/aufs/sysaufs.h @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sysfs interface and mount lifetime management + */ + +#ifndef __SYSAUFS_H__ +#define __SYSAUFS_H__ + +#ifdef __KERNEL__ + +#include +#include "module.h" + +struct super_block; +struct au_sbinfo; + +struct sysaufs_si_attr { + struct attribute attr; + int (*show)(struct seq_file *seq, struct super_block *sb); +}; + +/* ---------------------------------------------------------------------- */ + +/* sysaufs.c */ +extern unsigned long sysaufs_si_mask; +extern struct kset *sysaufs_kset; +extern struct attribute *sysaufs_si_attrs[]; +int sysaufs_si_init(struct au_sbinfo *sbinfo); +int __init sysaufs_init(void); +void sysaufs_fin(void); + +/* ---------------------------------------------------------------------- */ + +/* some people doesn't like to show a pointer in kernel */ +static inline unsigned long sysaufs_si_id(struct au_sbinfo *sbinfo) +{ + return sysaufs_si_mask ^ (unsigned long)sbinfo; +} + +#define SysaufsSiNamePrefix "si_" +#define SysaufsSiNameLen (sizeof(SysaufsSiNamePrefix) + 16) +static inline void sysaufs_name(struct au_sbinfo *sbinfo, char *name) +{ + snprintf(name, SysaufsSiNameLen, SysaufsSiNamePrefix "%lx", + sysaufs_si_id(sbinfo)); +} + +struct au_branch; +#ifdef CONFIG_SYSFS +/* sysfs.c */ +extern struct attribute_group *sysaufs_attr_group; + +int sysaufs_si_xi_path(struct seq_file *seq, struct super_block *sb); +ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr, + char *buf); + +void sysaufs_br_init(struct au_branch *br); +void sysaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex); +void sysaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex); + +#define sysaufs_brs_init() do {} while (0) + +#else +#define sysaufs_attr_group NULL + +AuStubInt0(sysaufs_si_xi_path, struct seq_file *seq, struct super_block *sb) + +static inline +ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr, + char *buf) +{ + return 0; +} + +AuStubVoid(sysaufs_br_init, struct au_branch *br) +AuStubVoid(sysaufs_brs_add, struct super_block *sb, aufs_bindex_t bindex) +AuStubVoid(sysaufs_brs_del, struct super_block *sb, aufs_bindex_t bindex) + +static inline void sysaufs_brs_init(void) +{ + sysaufs_brs = 0; +} + +#endif /* CONFIG_SYSFS */ + +#endif /* __KERNEL__ */ +#endif /* __SYSAUFS_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/debug.c +++ linux-3.2.0/ubuntu/aufs/debug.c @@ -0,0 +1,489 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * debug print functions + */ + +#include +#include "aufs.h" + +int aufs_debug; +MODULE_PARM_DESC(debug, "debug print"); +module_param_named(debug, aufs_debug, int, S_IRUGO | S_IWUSR | S_IWGRP); + +char *au_plevel = KERN_DEBUG; +#define dpri(fmt, ...) do { \ + if ((au_plevel \ + && strcmp(au_plevel, KERN_DEBUG)) \ + || au_debug_test()) \ + printk("%s" fmt, au_plevel, ##__VA_ARGS__); \ +} while (0) + +/* ---------------------------------------------------------------------- */ + +void au_dpri_whlist(struct au_nhash *whlist) +{ + unsigned long ul, n; + struct hlist_head *head; + struct au_vdir_wh *tpos; + struct hlist_node *pos; + + n = whlist->nh_num; + head = whlist->nh_head; + for (ul = 0; ul < n; ul++) { + hlist_for_each_entry(tpos, pos, head, wh_hash) + dpri("b%d, %.*s, %d\n", + tpos->wh_bindex, + tpos->wh_str.len, tpos->wh_str.name, + tpos->wh_str.len); + head++; + } +} + +void au_dpri_vdir(struct au_vdir *vdir) +{ + unsigned long ul; + union au_vdir_deblk_p p; + unsigned char *o; + + if (!vdir || IS_ERR(vdir)) { + dpri("err %ld\n", PTR_ERR(vdir)); + return; + } + + dpri("deblk %u, nblk %lu, deblk %p, last{%lu, %p}, ver %lu\n", + vdir->vd_deblk_sz, vdir->vd_nblk, vdir->vd_deblk, + vdir->vd_last.ul, vdir->vd_last.p.deblk, vdir->vd_version); + for (ul = 0; ul < vdir->vd_nblk; ul++) { + p.deblk = vdir->vd_deblk[ul]; + o = p.deblk; + dpri("[%lu]: %p\n", ul, o); + } +} + +static int do_pri_inode(aufs_bindex_t bindex, struct inode *inode, int hn, + struct dentry *wh) +{ + char *n = NULL; + int l = 0; + + if (!inode || IS_ERR(inode)) { + dpri("i%d: err %ld\n", bindex, PTR_ERR(inode)); + return -1; + } + + /* the type of i_blocks depends upon CONFIG_LSF */ + BUILD_BUG_ON(sizeof(inode->i_blocks) != sizeof(unsigned long) + && sizeof(inode->i_blocks) != sizeof(u64)); + if (wh) { + n = (void *)wh->d_name.name; + l = wh->d_name.len; + } + + dpri("i%d: %p, i%lu, %s, cnt %d, nl %u, 0%o, sz %llu, blk %llu," + " hn %d, ct %lld, np %lu, st 0x%lx, f 0x%x, v %llu, g %x%s%.*s\n", + bindex, inode, + inode->i_ino, inode->i_sb ? au_sbtype(inode->i_sb) : "??", + atomic_read(&inode->i_count), inode->i_nlink, inode->i_mode, + i_size_read(inode), (unsigned long long)inode->i_blocks, + hn, (long long)timespec_to_ns(&inode->i_ctime) & 0x0ffff, + inode->i_mapping ? inode->i_mapping->nrpages : 0, + inode->i_state, inode->i_flags, inode->i_version, + inode->i_generation, + l ? ", wh " : "", l, n); + return 0; +} + +void au_dpri_inode(struct inode *inode) +{ + struct au_iinfo *iinfo; + aufs_bindex_t bindex; + int err, hn; + + err = do_pri_inode(-1, inode, -1, NULL); + if (err || !au_test_aufs(inode->i_sb)) + return; + + iinfo = au_ii(inode); + if (!iinfo) + return; + dpri("i-1: bstart %d, bend %d, gen %d\n", + iinfo->ii_bstart, iinfo->ii_bend, au_iigen(inode)); + if (iinfo->ii_bstart < 0) + return; + hn = 0; + for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend; bindex++) { + hn = !!au_hn(iinfo->ii_hinode + bindex); + do_pri_inode(bindex, iinfo->ii_hinode[0 + bindex].hi_inode, hn, + iinfo->ii_hinode[0 + bindex].hi_whdentry); + } +} + +void au_dpri_dalias(struct inode *inode) +{ + struct dentry *d; + + spin_lock(&inode->i_lock); + list_for_each_entry(d, &inode->i_dentry, d_alias) + au_dpri_dentry(d); + spin_unlock(&inode->i_lock); +} + +static int do_pri_dentry(aufs_bindex_t bindex, struct dentry *dentry) +{ + struct dentry *wh = NULL; + int hn; + + if (!dentry || IS_ERR(dentry)) { + dpri("d%d: err %ld\n", bindex, PTR_ERR(dentry)); + return -1; + } + /* do not call dget_parent() here */ + /* note: access d_xxx without d_lock */ + dpri("d%d: %.*s?/%.*s, %s, cnt %d, flags 0x%x\n", + bindex, + AuDLNPair(dentry->d_parent), AuDLNPair(dentry), + dentry->d_sb ? au_sbtype(dentry->d_sb) : "??", + dentry->d_count, dentry->d_flags); + hn = -1; + if (bindex >= 0 && dentry->d_inode && au_test_aufs(dentry->d_sb)) { + struct au_iinfo *iinfo = au_ii(dentry->d_inode); + if (iinfo) { + hn = !!au_hn(iinfo->ii_hinode + bindex); + wh = iinfo->ii_hinode[0 + bindex].hi_whdentry; + } + } + do_pri_inode(bindex, dentry->d_inode, hn, wh); + return 0; +} + +void au_dpri_dentry(struct dentry *dentry) +{ + struct au_dinfo *dinfo; + aufs_bindex_t bindex; + int err; + struct au_hdentry *hdp; + + err = do_pri_dentry(-1, dentry); + if (err || !au_test_aufs(dentry->d_sb)) + return; + + dinfo = au_di(dentry); + if (!dinfo) + return; + dpri("d-1: bstart %d, bend %d, bwh %d, bdiropq %d, gen %d\n", + dinfo->di_bstart, dinfo->di_bend, + dinfo->di_bwh, dinfo->di_bdiropq, au_digen(dentry)); + if (dinfo->di_bstart < 0) + return; + hdp = dinfo->di_hdentry; + for (bindex = dinfo->di_bstart; bindex <= dinfo->di_bend; bindex++) + do_pri_dentry(bindex, hdp[0 + bindex].hd_dentry); +} + +static int do_pri_file(aufs_bindex_t bindex, struct file *file) +{ + char a[32]; + + if (!file || IS_ERR(file)) { + dpri("f%d: err %ld\n", bindex, PTR_ERR(file)); + return -1; + } + a[0] = 0; + if (bindex < 0 + && file->f_dentry + && au_test_aufs(file->f_dentry->d_sb) + && au_fi(file)) + snprintf(a, sizeof(a), ", gen %d, mmapped %d", + au_figen(file), atomic_read(&au_fi(file)->fi_mmapped)); + dpri("f%d: mode 0x%x, flags 0%o, cnt %ld, v %llu, pos %llu%s\n", + bindex, file->f_mode, file->f_flags, (long)file_count(file), + file->f_version, file->f_pos, a); + if (file->f_dentry) + do_pri_dentry(bindex, file->f_dentry); + return 0; +} + +void au_dpri_file(struct file *file) +{ + struct au_finfo *finfo; + struct au_fidir *fidir; + struct au_hfile *hfile; + aufs_bindex_t bindex; + int err; + + err = do_pri_file(-1, file); + if (err || !file->f_dentry || !au_test_aufs(file->f_dentry->d_sb)) + return; + + finfo = au_fi(file); + if (!finfo) + return; + if (finfo->fi_btop < 0) + return; + fidir = finfo->fi_hdir; + if (!fidir) + do_pri_file(finfo->fi_btop, finfo->fi_htop.hf_file); + else + for (bindex = finfo->fi_btop; + bindex >= 0 && bindex <= fidir->fd_bbot; + bindex++) { + hfile = fidir->fd_hfile + bindex; + do_pri_file(bindex, hfile ? hfile->hf_file : NULL); + } +} + +static int do_pri_br(aufs_bindex_t bindex, struct au_branch *br) +{ + struct vfsmount *mnt; + struct super_block *sb; + + if (!br || IS_ERR(br)) + goto out; + mnt = br->br_mnt; + if (!mnt || IS_ERR(mnt)) + goto out; + sb = mnt->mnt_sb; + if (!sb || IS_ERR(sb)) + goto out; + + dpri("s%d: {perm 0x%x, id %d, cnt %d, wbr %p}, " + "%s, dev 0x%02x%02x, flags 0x%lx, cnt %d, active %d, " + "xino %d\n", + bindex, br->br_perm, br->br_id, atomic_read(&br->br_count), + br->br_wbr, au_sbtype(sb), MAJOR(sb->s_dev), MINOR(sb->s_dev), + sb->s_flags, sb->s_count, + atomic_read(&sb->s_active), !!br->br_xino.xi_file); + return 0; + +out: + dpri("s%d: err %ld\n", bindex, PTR_ERR(br)); + return -1; +} + +void au_dpri_sb(struct super_block *sb) +{ + struct au_sbinfo *sbinfo; + aufs_bindex_t bindex; + int err; + /* to reuduce stack size */ + struct { + struct vfsmount mnt; + struct au_branch fake; + } *a; + + /* this function can be called from magic sysrq */ + a = kzalloc(sizeof(*a), GFP_ATOMIC); + if (unlikely(!a)) { + dpri("no memory\n"); + return; + } + + a->mnt.mnt_sb = sb; + a->fake.br_perm = 0; + a->fake.br_mnt = &a->mnt; + a->fake.br_xino.xi_file = NULL; + atomic_set(&a->fake.br_count, 0); + smp_mb(); /* atomic_set */ + err = do_pri_br(-1, &a->fake); + kfree(a); + dpri("dev 0x%x\n", sb->s_dev); + if (err || !au_test_aufs(sb)) + return; + + sbinfo = au_sbi(sb); + if (!sbinfo) + return; + dpri("nw %d, gen %u, kobj %d\n", + atomic_read(&sbinfo->si_nowait.nw_len), sbinfo->si_generation, + atomic_read(&sbinfo->si_kobj.kref.refcount)); + for (bindex = 0; bindex <= sbinfo->si_bend; bindex++) + do_pri_br(bindex, sbinfo->si_branch[0 + bindex]); +} + +/* ---------------------------------------------------------------------- */ + +void au_dbg_sleep_jiffy(int jiffy) +{ + while (jiffy) + jiffy = schedule_timeout_uninterruptible(jiffy); +} + +void au_dbg_iattr(struct iattr *ia) +{ +#define AuBit(name) if (ia->ia_valid & ATTR_ ## name) \ + dpri(#name "\n") + AuBit(MODE); + AuBit(UID); + AuBit(GID); + AuBit(SIZE); + AuBit(ATIME); + AuBit(MTIME); + AuBit(CTIME); + AuBit(ATIME_SET); + AuBit(MTIME_SET); + AuBit(FORCE); + AuBit(ATTR_FLAG); + AuBit(KILL_SUID); + AuBit(KILL_SGID); + AuBit(FILE); + AuBit(KILL_PRIV); + AuBit(OPEN); + AuBit(TIMES_SET); +#undef AuBit + dpri("ia_file %p\n", ia->ia_file); +} + +/* ---------------------------------------------------------------------- */ + +void __au_dbg_verify_dinode(struct dentry *dentry, const char *func, int line) +{ + struct inode *h_inode, *inode = dentry->d_inode; + struct dentry *h_dentry; + aufs_bindex_t bindex, bend, bi; + + if (!inode /* || au_di(dentry)->di_lsc == AuLsc_DI_TMP */) + return; + + bend = au_dbend(dentry); + bi = au_ibend(inode); + if (bi < bend) + bend = bi; + bindex = au_dbstart(dentry); + bi = au_ibstart(inode); + if (bi > bindex) + bindex = bi; + + for (; bindex <= bend; bindex++) { + h_dentry = au_h_dptr(dentry, bindex); + if (!h_dentry) + continue; + h_inode = au_h_iptr(inode, bindex); + if (unlikely(h_inode != h_dentry->d_inode)) { + int old = au_debug_test(); + if (!old) + au_debug(1); + AuDbg("b%d, %s:%d\n", bindex, func, line); + AuDbgDentry(dentry); + AuDbgInode(inode); + if (!old) + au_debug(0); + BUG(); + } + } +} + +void au_dbg_verify_dir_parent(struct dentry *dentry, unsigned int sigen) +{ + struct dentry *parent; + + parent = dget_parent(dentry); + AuDebugOn(!S_ISDIR(dentry->d_inode->i_mode)); + AuDebugOn(IS_ROOT(dentry)); + AuDebugOn(au_digen_test(parent, sigen)); + dput(parent); +} + +void au_dbg_verify_nondir_parent(struct dentry *dentry, unsigned int sigen) +{ + struct dentry *parent; + struct inode *inode; + + parent = dget_parent(dentry); + inode = dentry->d_inode; + AuDebugOn(inode && S_ISDIR(dentry->d_inode->i_mode)); + AuDebugOn(au_digen_test(parent, sigen)); + dput(parent); +} + +void au_dbg_verify_gen(struct dentry *parent, unsigned int sigen) +{ + int err, i, j; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry **dentries; + + err = au_dpages_init(&dpages, GFP_NOFS); + AuDebugOn(err); + err = au_dcsub_pages_rev_aufs(&dpages, parent, /*do_include*/1); + AuDebugOn(err); + for (i = dpages.ndpage - 1; !err && i >= 0; i--) { + dpage = dpages.dpages + i; + dentries = dpage->dentries; + for (j = dpage->ndentry - 1; !err && j >= 0; j--) + AuDebugOn(au_digen_test(dentries[j], sigen)); + } + au_dpages_free(&dpages); +} + +void au_dbg_verify_kthread(void) +{ + if (au_wkq_test()) { + au_dbg_blocked(); + /* + * It may be recursive, but udba=notify between two aufs mounts, + * where a single ro branch is shared, is not a problem. + */ + /* WARN_ON(1); */ + } +} + +/* ---------------------------------------------------------------------- */ + +void au_debug_sbinfo_init(struct au_sbinfo *sbinfo __maybe_unused) +{ +#ifdef AuForceNoPlink + au_opt_clr(sbinfo->si_mntflags, PLINK); +#endif +#ifdef AuForceNoXino + au_opt_clr(sbinfo->si_mntflags, XINO); +#endif +#ifdef AuForceNoRefrof + au_opt_clr(sbinfo->si_mntflags, REFROF); +#endif +#ifdef AuForceHnotify + au_opt_set_udba(sbinfo->si_mntflags, UDBA_HNOTIFY); +#endif +#ifdef AuForceRd0 + sbinfo->si_rdblk = 0; + sbinfo->si_rdhash = 0; +#endif +} + +int __init au_debug_init(void) +{ + aufs_bindex_t bindex; + struct au_vdir_destr destr; + + bindex = -1; + AuDebugOn(bindex >= 0); + + destr.len = -1; + AuDebugOn(destr.len < NAME_MAX); + +#ifdef CONFIG_4KSTACKS + pr_warning("CONFIG_4KSTACKS is defined.\n"); +#endif + +#ifdef AuForceNoBrs + sysaufs_brs = 0; +#endif + + return 0; +} --- linux-3.2.0.orig/ubuntu/aufs/spl.h +++ linux-3.2.0/ubuntu/aufs/spl.h @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * simple list protected by a spinlock + */ + +#ifndef __AUFS_SPL_H__ +#define __AUFS_SPL_H__ + +#ifdef __KERNEL__ + +struct au_splhead { + spinlock_t spin; + struct list_head head; +}; + +static inline void au_spl_init(struct au_splhead *spl) +{ + spin_lock_init(&spl->spin); + INIT_LIST_HEAD(&spl->head); +} + +static inline void au_spl_add(struct list_head *list, struct au_splhead *spl) +{ + spin_lock(&spl->spin); + list_add(list, &spl->head); + spin_unlock(&spl->spin); +} + +static inline void au_spl_del(struct list_head *list, struct au_splhead *spl) +{ + spin_lock(&spl->spin); + list_del(list); + spin_unlock(&spl->spin); +} + +static inline void au_spl_del_rcu(struct list_head *list, + struct au_splhead *spl) +{ + spin_lock(&spl->spin); + list_del_rcu(list); + spin_unlock(&spl->spin); +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_SPL_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/loop.h +++ linux-3.2.0/ubuntu/aufs/loop.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * support for loopback mount as a branch + */ + +#ifndef __AUFS_LOOP_H__ +#define __AUFS_LOOP_H__ + +#ifdef __KERNEL__ + +struct dentry; +struct super_block; + +#ifdef CONFIG_AUFS_BDEV_LOOP +/* loop.c */ +int au_test_loopback_overlap(struct super_block *sb, struct dentry *h_adding); +int au_test_loopback_kthread(void); +void au_warn_loopback(struct super_block *h_sb); + +int au_loopback_init(void); +void au_loopback_fin(void); +#else +AuStubInt0(au_test_loopback_overlap, struct super_block *sb, + struct dentry *h_adding) +AuStubInt0(au_test_loopback_kthread, void) +AuStubVoid(au_warn_loopback, struct super_block *h_sb) + +AuStubInt0(au_loopback_init, void) +AuStubVoid(au_loopback_fin, void) +#endif /* BLK_DEV_LOOP */ + +#endif /* __KERNEL__ */ +#endif /* __AUFS_LOOP_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/dir.h +++ linux-3.2.0/ubuntu/aufs/dir.h @@ -0,0 +1,137 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * directory operations + */ + +#ifndef __AUFS_DIR_H__ +#define __AUFS_DIR_H__ + +#ifdef __KERNEL__ + +#include + +/* ---------------------------------------------------------------------- */ + +/* need to be faster and smaller */ + +struct au_nhash { + unsigned int nh_num; + struct hlist_head *nh_head; +}; + +struct au_vdir_destr { + unsigned char len; + unsigned char name[0]; +} __packed; + +struct au_vdir_dehstr { + struct hlist_node hash; + struct au_vdir_destr *str; +} ____cacheline_aligned_in_smp; + +struct au_vdir_de { + ino_t de_ino; + unsigned char de_type; + /* caution: packed */ + struct au_vdir_destr de_str; +} __packed; + +struct au_vdir_wh { + struct hlist_node wh_hash; +#ifdef CONFIG_AUFS_SHWH + ino_t wh_ino; + aufs_bindex_t wh_bindex; + unsigned char wh_type; +#else + aufs_bindex_t wh_bindex; +#endif + /* caution: packed */ + struct au_vdir_destr wh_str; +} __packed; + +union au_vdir_deblk_p { + unsigned char *deblk; + struct au_vdir_de *de; +}; + +struct au_vdir { + unsigned char **vd_deblk; + unsigned long vd_nblk; + struct { + unsigned long ul; + union au_vdir_deblk_p p; + } vd_last; + + unsigned long vd_version; + unsigned int vd_deblk_sz; + unsigned long vd_jiffy; +} ____cacheline_aligned_in_smp; + +/* ---------------------------------------------------------------------- */ + +/* dir.c */ +extern const struct file_operations aufs_dir_fop; +void au_add_nlink(struct inode *dir, struct inode *h_dir); +void au_sub_nlink(struct inode *dir, struct inode *h_dir); +loff_t au_dir_size(struct file *file, struct dentry *dentry); +int au_test_empty_lower(struct dentry *dentry); +int au_test_empty(struct dentry *dentry, struct au_nhash *whlist); + +/* vdir.c */ +unsigned int au_rdhash_est(loff_t sz); +int au_nhash_alloc(struct au_nhash *nhash, unsigned int num_hash, gfp_t gfp); +void au_nhash_wh_free(struct au_nhash *whlist); +int au_nhash_test_longer_wh(struct au_nhash *whlist, aufs_bindex_t btgt, + int limit); +int au_nhash_test_known_wh(struct au_nhash *whlist, char *name, int nlen); +int au_nhash_append_wh(struct au_nhash *whlist, char *name, int nlen, ino_t ino, + unsigned int d_type, aufs_bindex_t bindex, + unsigned char shwh); +void au_vdir_free(struct au_vdir *vdir); +int au_vdir_init(struct file *file); +int au_vdir_fill_de(struct file *file, void *dirent, filldir_t filldir); + +/* ioctl.c */ +long aufs_ioctl_dir(struct file *file, unsigned int cmd, unsigned long arg); + +#ifdef CONFIG_AUFS_RDU +/* rdu.c */ +long au_rdu_ioctl(struct file *file, unsigned int cmd, unsigned long arg); +#ifdef CONFIG_COMPAT +long au_rdu_compat_ioctl(struct file *file, unsigned int cmd, + unsigned long arg); +#endif +#else +static inline long au_rdu_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + return -EINVAL; +} +#ifdef CONFIG_COMPAT +static inline long au_rdu_compat_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + return -EINVAL; +} +#endif +#endif + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DIR_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/i_op_add.c +++ linux-3.2.0/ubuntu/aufs/i_op_add.c @@ -0,0 +1,711 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode operations (add entry) + */ + +#include "aufs.h" + +/* + * final procedure of adding a new entry, except link(2). + * remove whiteout, instantiate, copyup the parent dir's times and size + * and update version. + * if it failed, re-create the removed whiteout. + */ +static int epilog(struct inode *dir, aufs_bindex_t bindex, + struct dentry *wh_dentry, struct dentry *dentry) +{ + int err, rerr; + aufs_bindex_t bwh; + struct path h_path; + struct inode *inode, *h_dir; + struct dentry *wh; + + bwh = -1; + if (wh_dentry) { + h_dir = wh_dentry->d_parent->d_inode; /* dir inode is locked */ + IMustLock(h_dir); + AuDebugOn(au_h_iptr(dir, bindex) != h_dir); + bwh = au_dbwh(dentry); + h_path.dentry = wh_dentry; + h_path.mnt = au_sbr_mnt(dir->i_sb, bindex); + err = au_wh_unlink_dentry(au_h_iptr(dir, bindex), &h_path, + dentry); + if (unlikely(err)) + goto out; + } + + inode = au_new_inode(dentry, /*must_new*/1); + if (!IS_ERR(inode)) { + d_instantiate(dentry, inode); + dir = dentry->d_parent->d_inode; /* dir inode is locked */ + IMustLock(dir); + if (au_ibstart(dir) == au_dbstart(dentry)) + au_cpup_attr_timesizes(dir); + dir->i_version++; + return 0; /* success */ + } + + err = PTR_ERR(inode); + if (!wh_dentry) + goto out; + + /* revert */ + /* dir inode is locked */ + wh = au_wh_create(dentry, bwh, wh_dentry->d_parent); + rerr = PTR_ERR(wh); + if (IS_ERR(wh)) { + AuIOErr("%.*s reverting whiteout failed(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + } else + dput(wh); + +out: + return err; +} + +static int au_d_may_add(struct dentry *dentry) +{ + int err; + + err = 0; + if (unlikely(d_unhashed(dentry))) + err = -ENOENT; + if (unlikely(dentry->d_inode)) + err = -EEXIST; + return err; +} + +/* + * simple tests for the adding inode operations. + * following the checks in vfs, plus the parent-child relationship. + */ +int au_may_add(struct dentry *dentry, aufs_bindex_t bindex, + struct dentry *h_parent, int isdir) +{ + int err; + umode_t h_mode; + struct dentry *h_dentry; + struct inode *h_inode; + + err = -ENAMETOOLONG; + if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN)) + goto out; + + h_dentry = au_h_dptr(dentry, bindex); + h_inode = h_dentry->d_inode; + if (!dentry->d_inode) { + err = -EEXIST; + if (unlikely(h_inode)) + goto out; + } else { + /* rename(2) case */ + err = -EIO; + if (unlikely(!h_inode || !h_inode->i_nlink)) + goto out; + + h_mode = h_inode->i_mode; + if (!isdir) { + err = -EISDIR; + if (unlikely(S_ISDIR(h_mode))) + goto out; + } else if (unlikely(!S_ISDIR(h_mode))) { + err = -ENOTDIR; + goto out; + } + } + + err = 0; + /* expected parent dir is locked */ + if (unlikely(h_parent != h_dentry->d_parent)) + err = -EIO; + +out: + AuTraceErr(err); + return err; +} + +/* + * initial procedure of adding a new entry. + * prepare writable branch and the parent dir, lock it, + * and lookup whiteout for the new entry. + */ +static struct dentry* +lock_hdir_lkup_wh(struct dentry *dentry, struct au_dtime *dt, + struct dentry *src_dentry, struct au_pin *pin, + struct au_wr_dir_args *wr_dir_args) +{ + struct dentry *wh_dentry, *h_parent; + struct super_block *sb; + struct au_branch *br; + int err; + unsigned int udba; + aufs_bindex_t bcpup; + + AuDbg("%.*s\n", AuDLNPair(dentry)); + + err = au_wr_dir(dentry, src_dentry, wr_dir_args); + bcpup = err; + wh_dentry = ERR_PTR(err); + if (unlikely(err < 0)) + goto out; + + sb = dentry->d_sb; + udba = au_opt_udba(sb); + err = au_pin(pin, dentry, bcpup, udba, + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + wh_dentry = ERR_PTR(err); + if (unlikely(err)) + goto out; + + h_parent = au_pinned_h_parent(pin); + if (udba != AuOpt_UDBA_NONE + && au_dbstart(dentry) == bcpup) + err = au_may_add(dentry, bcpup, h_parent, + au_ftest_wrdir(wr_dir_args->flags, ISDIR)); + else if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN)) + err = -ENAMETOOLONG; + wh_dentry = ERR_PTR(err); + if (unlikely(err)) + goto out_unpin; + + br = au_sbr(sb, bcpup); + if (dt) { + struct path tmp = { + .dentry = h_parent, + .mnt = br->br_mnt + }; + au_dtime_store(dt, au_pinned_parent(pin), &tmp); + } + + wh_dentry = NULL; + if (bcpup != au_dbwh(dentry)) + goto out; /* success */ + + wh_dentry = au_wh_lkup(h_parent, &dentry->d_name, br); + +out_unpin: + if (IS_ERR(wh_dentry)) + au_unpin(pin); +out: + return wh_dentry; +} + +/* ---------------------------------------------------------------------- */ + +enum { Mknod, Symlink, Creat }; +struct simple_arg { + int type; + union { + struct { + int mode; + struct nameidata *nd; + } c; + struct { + const char *symname; + } s; + struct { + int mode; + dev_t dev; + } m; + } u; +}; + +static int add_simple(struct inode *dir, struct dentry *dentry, + struct simple_arg *arg) +{ + int err; + aufs_bindex_t bstart; + unsigned char created; + struct au_dtime dt; + struct au_pin pin; + struct path h_path; + struct dentry *wh_dentry, *parent; + struct inode *h_dir; + struct au_wr_dir_args wr_dir_args = { + .force_btgt = -1, + .flags = AuWrDir_ADD_ENTRY + }; + + AuDbg("%.*s\n", AuDLNPair(dentry)); + IMustLock(dir); + + parent = dentry->d_parent; /* dir inode is locked */ + err = aufs_read_lock(dentry, AuLock_DW | AuLock_GEN); + if (unlikely(err)) + goto out; + err = au_d_may_add(dentry); + if (unlikely(err)) + goto out_unlock; + di_write_lock_parent(parent); + wh_dentry = lock_hdir_lkup_wh(dentry, &dt, /*src_dentry*/NULL, &pin, + &wr_dir_args); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out_parent; + + bstart = au_dbstart(dentry); + h_path.dentry = au_h_dptr(dentry, bstart); + h_path.mnt = au_sbr_mnt(dentry->d_sb, bstart); + h_dir = au_pinned_h_dir(&pin); + switch (arg->type) { + case Creat: + err = vfsub_create(h_dir, &h_path, arg->u.c.mode); + break; + case Symlink: + err = vfsub_symlink(h_dir, &h_path, arg->u.s.symname); + break; + case Mknod: + err = vfsub_mknod(h_dir, &h_path, arg->u.m.mode, arg->u.m.dev); + break; + default: + BUG(); + } + created = !err; + if (!err) + err = epilog(dir, bstart, wh_dentry, dentry); + + /* revert */ + if (unlikely(created && err && h_path.dentry->d_inode)) { + int rerr; + rerr = vfsub_unlink(h_dir, &h_path, /*force*/0); + if (rerr) { + AuIOErr("%.*s revert failure(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + } + au_dtime_revert(&dt); + } + + au_unpin(&pin); + dput(wh_dentry); + +out_parent: + di_write_unlock(parent); +out_unlock: + if (unlikely(err)) { + au_update_dbstart(dentry); + d_drop(dentry); + } + aufs_read_unlock(dentry, AuLock_DW); +out: + return err; +} + +int aufs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev) +{ + struct simple_arg arg = { + .type = Mknod, + .u.m = { + .mode = mode, + .dev = dev + } + }; + return add_simple(dir, dentry, &arg); +} + +int aufs_symlink(struct inode *dir, struct dentry *dentry, const char *symname) +{ + struct simple_arg arg = { + .type = Symlink, + .u.s.symname = symname + }; + return add_simple(dir, dentry, &arg); +} + +int aufs_create(struct inode *dir, struct dentry *dentry, int mode, + struct nameidata *nd) +{ + struct simple_arg arg = { + .type = Creat, + .u.c = { + .mode = mode, + .nd = nd + } + }; + return add_simple(dir, dentry, &arg); +} + +/* ---------------------------------------------------------------------- */ + +struct au_link_args { + aufs_bindex_t bdst, bsrc; + struct au_pin pin; + struct path h_path; + struct dentry *src_parent, *parent; +}; + +static int au_cpup_before_link(struct dentry *src_dentry, + struct au_link_args *a) +{ + int err; + struct dentry *h_src_dentry; + struct mutex *h_mtx; + struct file *h_file; + + di_read_lock_parent(a->src_parent, AuLock_IR); + err = au_test_and_cpup_dirs(src_dentry, a->bdst); + if (unlikely(err)) + goto out; + + h_src_dentry = au_h_dptr(src_dentry, a->bsrc); + h_mtx = &h_src_dentry->d_inode->i_mutex; + err = au_pin(&a->pin, src_dentry, a->bdst, + au_opt_udba(src_dentry->d_sb), + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + if (unlikely(err)) + goto out; + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + h_file = au_h_open_pre(src_dentry, a->bsrc); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else + err = au_sio_cpup_simple(src_dentry, a->bdst, -1, + AuCpup_DTIME /* | AuCpup_KEEPLINO */); + mutex_unlock(h_mtx); + au_h_open_post(src_dentry, a->bsrc, h_file); + au_unpin(&a->pin); + +out: + di_read_unlock(a->src_parent, AuLock_IR); + return err; +} + +static int au_cpup_or_link(struct dentry *src_dentry, struct au_link_args *a) +{ + int err; + unsigned char plink; + struct inode *h_inode, *inode; + struct dentry *h_src_dentry; + struct super_block *sb; + struct file *h_file; + + plink = 0; + h_inode = NULL; + sb = src_dentry->d_sb; + inode = src_dentry->d_inode; + if (au_ibstart(inode) <= a->bdst) + h_inode = au_h_iptr(inode, a->bdst); + if (!h_inode || !h_inode->i_nlink) { + /* copyup src_dentry as the name of dentry. */ + au_set_dbstart(src_dentry, a->bdst); + au_set_h_dptr(src_dentry, a->bdst, dget(a->h_path.dentry)); + h_inode = au_h_dptr(src_dentry, a->bsrc)->d_inode; + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + h_file = au_h_open_pre(src_dentry, a->bsrc); + if (IS_ERR(h_file)) { + err = PTR_ERR(h_file); + h_file = NULL; + } else + err = au_sio_cpup_single(src_dentry, a->bdst, a->bsrc, + -1, AuCpup_KEEPLINO, + a->parent); + mutex_unlock(&h_inode->i_mutex); + au_h_open_post(src_dentry, a->bsrc, h_file); + au_set_h_dptr(src_dentry, a->bdst, NULL); + au_set_dbstart(src_dentry, a->bsrc); + } else { + /* the inode of src_dentry already exists on a.bdst branch */ + h_src_dentry = d_find_alias(h_inode); + if (!h_src_dentry && au_plink_test(inode)) { + plink = 1; + h_src_dentry = au_plink_lkup(inode, a->bdst); + err = PTR_ERR(h_src_dentry); + if (IS_ERR(h_src_dentry)) + goto out; + + if (unlikely(!h_src_dentry->d_inode)) { + dput(h_src_dentry); + h_src_dentry = NULL; + } + + } + if (h_src_dentry) { + err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin), + &a->h_path); + dput(h_src_dentry); + } else { + AuIOErr("no dentry found for hi%lu on b%d\n", + h_inode->i_ino, a->bdst); + err = -EIO; + } + } + + if (!err && !plink) + au_plink_append(inode, a->bdst, a->h_path.dentry); + +out: + AuTraceErr(err); + return err; +} + +int aufs_link(struct dentry *src_dentry, struct inode *dir, + struct dentry *dentry) +{ + int err, rerr; + struct au_dtime dt; + struct au_link_args *a; + struct dentry *wh_dentry, *h_src_dentry; + struct inode *inode; + struct super_block *sb; + struct au_wr_dir_args wr_dir_args = { + /* .force_btgt = -1, */ + .flags = AuWrDir_ADD_ENTRY + }; + + IMustLock(dir); + inode = src_dentry->d_inode; + IMustLock(inode); + + err = -ENOMEM; + a = kzalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + a->parent = dentry->d_parent; /* dir inode is locked */ + err = aufs_read_and_write_lock2(dentry, src_dentry, + AuLock_NOPLM | AuLock_GEN); + if (unlikely(err)) + goto out_kfree; + err = au_d_hashed_positive(src_dentry); + if (unlikely(err)) + goto out_unlock; + err = au_d_may_add(dentry); + if (unlikely(err)) + goto out_unlock; + + a->src_parent = dget_parent(src_dentry); + wr_dir_args.force_btgt = au_ibstart(inode); + + di_write_lock_parent(a->parent); + wr_dir_args.force_btgt = au_wbr(dentry, wr_dir_args.force_btgt); + wh_dentry = lock_hdir_lkup_wh(dentry, &dt, src_dentry, &a->pin, + &wr_dir_args); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out_parent; + + err = 0; + sb = dentry->d_sb; + a->bdst = au_dbstart(dentry); + a->h_path.dentry = au_h_dptr(dentry, a->bdst); + a->h_path.mnt = au_sbr_mnt(sb, a->bdst); + a->bsrc = au_ibstart(inode); + h_src_dentry = au_h_d_alias(src_dentry, a->bsrc); + if (!h_src_dentry) { + a->bsrc = au_dbstart(src_dentry); + h_src_dentry = au_h_d_alias(src_dentry, a->bsrc); + AuDebugOn(!h_src_dentry); + } else if (IS_ERR(h_src_dentry)) + goto out_parent; + + if (au_opt_test(au_mntflags(sb), PLINK)) { + if (a->bdst < a->bsrc + /* && h_src_dentry->d_sb != a->h_path.dentry->d_sb */) + err = au_cpup_or_link(src_dentry, a); + else + err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin), + &a->h_path); + dput(h_src_dentry); + } else { + /* + * copyup src_dentry to the branch we process, + * and then link(2) to it. + */ + dput(h_src_dentry); + if (a->bdst < a->bsrc + /* && h_src_dentry->d_sb != a->h_path.dentry->d_sb */) { + au_unpin(&a->pin); + di_write_unlock(a->parent); + err = au_cpup_before_link(src_dentry, a); + di_write_lock_parent(a->parent); + if (!err) + err = au_pin(&a->pin, dentry, a->bdst, + au_opt_udba(sb), + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + if (unlikely(err)) + goto out_wh; + } + if (!err) { + h_src_dentry = au_h_dptr(src_dentry, a->bdst); + err = -ENOENT; + if (h_src_dentry && h_src_dentry->d_inode) + err = vfsub_link(h_src_dentry, + au_pinned_h_dir(&a->pin), + &a->h_path); + } + } + if (unlikely(err)) + goto out_unpin; + + if (wh_dentry) { + a->h_path.dentry = wh_dentry; + err = au_wh_unlink_dentry(au_pinned_h_dir(&a->pin), &a->h_path, + dentry); + if (unlikely(err)) + goto out_revert; + } + + dir->i_version++; + if (au_ibstart(dir) == au_dbstart(dentry)) + au_cpup_attr_timesizes(dir); + inc_nlink(inode); + inode->i_ctime = dir->i_ctime; + d_instantiate(dentry, au_igrab(inode)); + if (d_unhashed(a->h_path.dentry)) + /* some filesystem calls d_drop() */ + d_drop(dentry); + goto out_unpin; /* success */ + +out_revert: + rerr = vfsub_unlink(au_pinned_h_dir(&a->pin), &a->h_path, /*force*/0); + if (unlikely(rerr)) { + AuIOErr("%.*s reverting failed(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + } + au_dtime_revert(&dt); +out_unpin: + au_unpin(&a->pin); +out_wh: + dput(wh_dentry); +out_parent: + di_write_unlock(a->parent); + dput(a->src_parent); +out_unlock: + if (unlikely(err)) { + au_update_dbstart(dentry); + d_drop(dentry); + } + aufs_read_and_write_unlock2(dentry, src_dentry); +out_kfree: + kfree(a); +out: + return err; +} + +int aufs_mkdir(struct inode *dir, struct dentry *dentry, int mode) +{ + int err, rerr; + aufs_bindex_t bindex; + unsigned char diropq; + struct path h_path; + struct dentry *wh_dentry, *parent, *opq_dentry; + struct mutex *h_mtx; + struct super_block *sb; + struct { + struct au_pin pin; + struct au_dtime dt; + } *a; /* reduce the stack usage */ + struct au_wr_dir_args wr_dir_args = { + .force_btgt = -1, + .flags = AuWrDir_ADD_ENTRY | AuWrDir_ISDIR + }; + + IMustLock(dir); + + err = -ENOMEM; + a = kmalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + err = aufs_read_lock(dentry, AuLock_DW | AuLock_GEN); + if (unlikely(err)) + goto out_free; + err = au_d_may_add(dentry); + if (unlikely(err)) + goto out_unlock; + + parent = dentry->d_parent; /* dir inode is locked */ + di_write_lock_parent(parent); + wh_dentry = lock_hdir_lkup_wh(dentry, &a->dt, /*src_dentry*/NULL, + &a->pin, &wr_dir_args); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out_parent; + + sb = dentry->d_sb; + bindex = au_dbstart(dentry); + h_path.dentry = au_h_dptr(dentry, bindex); + h_path.mnt = au_sbr_mnt(sb, bindex); + err = vfsub_mkdir(au_pinned_h_dir(&a->pin), &h_path, mode); + if (unlikely(err)) + goto out_unpin; + + /* make the dir opaque */ + diropq = 0; + h_mtx = &h_path.dentry->d_inode->i_mutex; + if (wh_dentry + || au_opt_test(au_mntflags(sb), ALWAYS_DIROPQ)) { + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + opq_dentry = au_diropq_create(dentry, bindex); + mutex_unlock(h_mtx); + err = PTR_ERR(opq_dentry); + if (IS_ERR(opq_dentry)) + goto out_dir; + dput(opq_dentry); + diropq = 1; + } + + err = epilog(dir, bindex, wh_dentry, dentry); + if (!err) { + inc_nlink(dir); + goto out_unpin; /* success */ + } + + /* revert */ + if (diropq) { + AuLabel(revert opq); + mutex_lock_nested(h_mtx, AuLsc_I_CHILD); + rerr = au_diropq_remove(dentry, bindex); + mutex_unlock(h_mtx); + if (rerr) { + AuIOErr("%.*s reverting diropq failed(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + } + } + +out_dir: + AuLabel(revert dir); + rerr = vfsub_rmdir(au_pinned_h_dir(&a->pin), &h_path); + if (rerr) { + AuIOErr("%.*s reverting dir failed(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + } + au_dtime_revert(&a->dt); +out_unpin: + au_unpin(&a->pin); + dput(wh_dentry); +out_parent: + di_write_unlock(parent); +out_unlock: + if (unlikely(err)) { + au_update_dbstart(dentry); + d_drop(dentry); + } + aufs_read_unlock(dentry, AuLock_DW); +out_free: + kfree(a); +out: + return err; +} --- linux-3.2.0.orig/ubuntu/aufs/BOM +++ linux-3.2.0/ubuntu/aufs/BOM @@ -0,0 +1,3 @@ +URL: git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git +CHANGELOG: +COMMIT: d266b0c5d0693d6383976ee54b9e2c0fa9a3f5b0 --- linux-3.2.0.orig/ubuntu/aufs/sysrq.c +++ linux-3.2.0/ubuntu/aufs/sysrq.c @@ -0,0 +1,148 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * magic sysrq hanlder + */ + +/* #include */ +#include +#include "aufs.h" + +/* ---------------------------------------------------------------------- */ + +static void sysrq_sb(struct super_block *sb) +{ + char *plevel; + struct au_sbinfo *sbinfo; + struct file *file; + + plevel = au_plevel; + au_plevel = KERN_WARNING; + + sbinfo = au_sbi(sb); + /* since we define pr_fmt, call printk directly */ + printk(KERN_WARNING "si=%lx\n", sysaufs_si_id(sbinfo)); + printk(KERN_WARNING AUFS_NAME ": superblock\n"); + au_dpri_sb(sb); + +#if 0 + printk(KERN_WARNING AUFS_NAME ": root dentry\n"); + au_dpri_dentry(sb->s_root); + printk(KERN_WARNING AUFS_NAME ": root inode\n"); + au_dpri_inode(sb->s_root->d_inode); +#endif + +#if 0 + do { + int err, i, j, ndentry; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + + err = au_dpages_init(&dpages, GFP_ATOMIC); + if (unlikely(err)) + break; + err = au_dcsub_pages(&dpages, sb->s_root, NULL, NULL); + if (!err) + for (i = 0; i < dpages.ndpage; i++) { + dpage = dpages.dpages + i; + ndentry = dpage->ndentry; + for (j = 0; j < ndentry; j++) + au_dpri_dentry(dpage->dentries[j]); + } + au_dpages_free(&dpages); + } while (0); +#endif + +#if 1 + { + struct inode *i; + printk(KERN_WARNING AUFS_NAME ": isolated inode\n"); + spin_lock(&inode_sb_list_lock); + list_for_each_entry(i, &sb->s_inodes, i_sb_list) { + spin_lock(&i->i_lock); + if (1 || list_empty(&i->i_dentry)) + au_dpri_inode(i); + spin_unlock(&i->i_lock); + } + spin_unlock(&inode_sb_list_lock); + } +#endif + printk(KERN_WARNING AUFS_NAME ": files\n"); + lg_global_lock(files_lglock); + do_file_list_for_each_entry(sb, file) { + umode_t mode; + mode = file->f_dentry->d_inode->i_mode; + if (!special_file(mode) || au_special_file(mode)) + au_dpri_file(file); + } while_file_list_for_each_entry; + lg_global_unlock(files_lglock); + printk(KERN_WARNING AUFS_NAME ": done\n"); + + au_plevel = plevel; +} + +/* ---------------------------------------------------------------------- */ + +/* module parameter */ +static char *aufs_sysrq_key = "a"; +module_param_named(sysrq, aufs_sysrq_key, charp, S_IRUGO); +MODULE_PARM_DESC(sysrq, "MagicSysRq key for " AUFS_NAME); + +static void au_sysrq(int key __maybe_unused) +{ + struct au_sbinfo *sbinfo; + + lockdep_off(); + au_sbilist_lock(); + list_for_each_entry(sbinfo, &au_sbilist.head, si_list) + sysrq_sb(sbinfo->si_sb); + au_sbilist_unlock(); + lockdep_on(); +} + +static struct sysrq_key_op au_sysrq_op = { + .handler = au_sysrq, + .help_msg = "Aufs", + .action_msg = "Aufs", + .enable_mask = SYSRQ_ENABLE_DUMP +}; + +/* ---------------------------------------------------------------------- */ + +int __init au_sysrq_init(void) +{ + int err; + char key; + + err = -1; + key = *aufs_sysrq_key; + if ('a' <= key && key <= 'z') + err = register_sysrq_key(key, &au_sysrq_op); + if (unlikely(err)) + pr_err("err %d, sysrq=%c\n", err, key); + return err; +} + +void au_sysrq_fin(void) +{ + int err; + err = unregister_sysrq_key(*aufs_sysrq_key, &au_sysrq_op); + if (unlikely(err)) + pr_err("err %d (ignored)\n", err); +} --- linux-3.2.0.orig/ubuntu/aufs/hnotify.c +++ linux-3.2.0/ubuntu/aufs/hnotify.c @@ -0,0 +1,712 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * abstraction to notify the direct changes on lower directories + */ + +#include "aufs.h" + +int au_hn_alloc(struct au_hinode *hinode, struct inode *inode) +{ + int err; + struct au_hnotify *hn; + + err = -ENOMEM; + hn = au_cache_alloc_hnotify(); + if (hn) { + hn->hn_aufs_inode = inode; + hinode->hi_notify = hn; + err = au_hnotify_op.alloc(hinode); + AuTraceErr(err); + if (unlikely(err)) { + hinode->hi_notify = NULL; + au_cache_free_hnotify(hn); + /* + * The upper dir was removed by udba, but the same named + * dir left. In this case, aufs assignes a new inode + * number and set the monitor again. + * For the lower dir, the old monitnor is still left. + */ + if (err == -EEXIST) + err = 0; + } + } + + AuTraceErr(err); + return err; +} + +void au_hn_free(struct au_hinode *hinode) +{ + struct au_hnotify *hn; + + hn = hinode->hi_notify; + if (hn) { + au_hnotify_op.free(hinode); + au_cache_free_hnotify(hn); + hinode->hi_notify = NULL; + } +} + +/* ---------------------------------------------------------------------- */ + +void au_hn_ctl(struct au_hinode *hinode, int do_set) +{ + if (hinode->hi_notify) + au_hnotify_op.ctl(hinode, do_set); +} + +void au_hn_reset(struct inode *inode, unsigned int flags) +{ + aufs_bindex_t bindex, bend; + struct inode *hi; + struct dentry *iwhdentry; + + bend = au_ibend(inode); + for (bindex = au_ibstart(inode); bindex <= bend; bindex++) { + hi = au_h_iptr(inode, bindex); + if (!hi) + continue; + + /* mutex_lock_nested(&hi->i_mutex, AuLsc_I_CHILD); */ + iwhdentry = au_hi_wh(inode, bindex); + if (iwhdentry) + dget(iwhdentry); + au_igrab(hi); + au_set_h_iptr(inode, bindex, NULL, 0); + au_set_h_iptr(inode, bindex, au_igrab(hi), + flags & ~AuHi_XINO); + iput(hi); + dput(iwhdentry); + /* mutex_unlock(&hi->i_mutex); */ + } +} + +/* ---------------------------------------------------------------------- */ + +static int hn_xino(struct inode *inode, struct inode *h_inode) +{ + int err; + aufs_bindex_t bindex, bend, bfound, bstart; + struct inode *h_i; + + err = 0; + if (unlikely(inode->i_ino == AUFS_ROOT_INO)) { + pr_warning("branch root dir was changed\n"); + goto out; + } + + bfound = -1; + bend = au_ibend(inode); + bstart = au_ibstart(inode); +#if 0 /* reserved for future use */ + if (bindex == bend) { + /* keep this ino in rename case */ + goto out; + } +#endif + for (bindex = bstart; bindex <= bend; bindex++) + if (au_h_iptr(inode, bindex) == h_inode) { + bfound = bindex; + break; + } + if (bfound < 0) + goto out; + + for (bindex = bstart; bindex <= bend; bindex++) { + h_i = au_h_iptr(inode, bindex); + if (!h_i) + continue; + + err = au_xino_write(inode->i_sb, bindex, h_i->i_ino, /*ino*/0); + /* ignore this error */ + /* bad action? */ + } + + /* children inode number will be broken */ + +out: + AuTraceErr(err); + return err; +} + +static int hn_gen_tree(struct dentry *dentry) +{ + int err, i, j, ndentry; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry **dentries; + + err = au_dpages_init(&dpages, GFP_NOFS); + if (unlikely(err)) + goto out; + err = au_dcsub_pages(&dpages, dentry, NULL, NULL); + if (unlikely(err)) + goto out_dpages; + + for (i = 0; i < dpages.ndpage; i++) { + dpage = dpages.dpages + i; + dentries = dpage->dentries; + ndentry = dpage->ndentry; + for (j = 0; j < ndentry; j++) { + struct dentry *d; + + d = dentries[j]; + if (IS_ROOT(d)) + continue; + + au_digen_dec(d); + if (d->d_inode) + /* todo: reset children xino? + cached children only? */ + au_iigen_dec(d->d_inode); + } + } + +out_dpages: + au_dpages_free(&dpages); + +#if 0 + /* discard children */ + dentry_unhash(dentry); + dput(dentry); +#endif +out: + return err; +} + +/* + * return 0 if processed. + */ +static int hn_gen_by_inode(char *name, unsigned int nlen, struct inode *inode, + const unsigned int isdir) +{ + int err; + struct dentry *d; + struct qstr *dname; + + err = 1; + if (unlikely(inode->i_ino == AUFS_ROOT_INO)) { + pr_warning("branch root dir was changed\n"); + err = 0; + goto out; + } + + if (!isdir) { + AuDebugOn(!name); + au_iigen_dec(inode); + spin_lock(&inode->i_lock); + list_for_each_entry(d, &inode->i_dentry, d_alias) { + spin_lock(&d->d_lock); + dname = &d->d_name; + if (dname->len != nlen + && memcmp(dname->name, name, nlen)) { + spin_unlock(&d->d_lock); + continue; + } + err = 0; + au_digen_dec(d); + spin_unlock(&d->d_lock); + break; + } + spin_unlock(&inode->i_lock); + } else { + au_fset_si(au_sbi(inode->i_sb), FAILED_REFRESH_DIR); + d = d_find_alias(inode); + if (!d) { + au_iigen_dec(inode); + goto out; + } + + spin_lock(&d->d_lock); + dname = &d->d_name; + if (dname->len == nlen && !memcmp(dname->name, name, nlen)) { + spin_unlock(&d->d_lock); + err = hn_gen_tree(d); + spin_lock(&d->d_lock); + } + spin_unlock(&d->d_lock); + dput(d); + } + +out: + AuTraceErr(err); + return err; +} + +static int hn_gen_by_name(struct dentry *dentry, const unsigned int isdir) +{ + int err; + struct inode *inode; + + inode = dentry->d_inode; + if (IS_ROOT(dentry) + /* || (inode && inode->i_ino == AUFS_ROOT_INO) */ + ) { + pr_warning("branch root dir was changed\n"); + return 0; + } + + err = 0; + if (!isdir) { + au_digen_dec(dentry); + if (inode) + au_iigen_dec(inode); + } else { + au_fset_si(au_sbi(dentry->d_sb), FAILED_REFRESH_DIR); + if (inode) + err = hn_gen_tree(dentry); + } + + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* hnotify job flags */ +#define AuHnJob_XINO0 1 +#define AuHnJob_GEN (1 << 1) +#define AuHnJob_DIRENT (1 << 2) +#define AuHnJob_ISDIR (1 << 3) +#define AuHnJob_TRYXINO0 (1 << 4) +#define AuHnJob_MNTPNT (1 << 5) +#define au_ftest_hnjob(flags, name) ((flags) & AuHnJob_##name) +#define au_fset_hnjob(flags, name) \ + do { (flags) |= AuHnJob_##name; } while (0) +#define au_fclr_hnjob(flags, name) \ + do { (flags) &= ~AuHnJob_##name; } while (0) + +enum { + AuHn_CHILD, + AuHn_PARENT, + AuHnLast +}; + +struct au_hnotify_args { + struct inode *h_dir, *dir, *h_child_inode; + u32 mask; + unsigned int flags[AuHnLast]; + unsigned int h_child_nlen; + char h_child_name[]; +}; + +struct hn_job_args { + unsigned int flags; + struct inode *inode, *h_inode, *dir, *h_dir; + struct dentry *dentry; + char *h_name; + int h_nlen; +}; + +static int hn_job(struct hn_job_args *a) +{ + const unsigned int isdir = au_ftest_hnjob(a->flags, ISDIR); + + /* reset xino */ + if (au_ftest_hnjob(a->flags, XINO0) && a->inode) + hn_xino(a->inode, a->h_inode); /* ignore this error */ + + if (au_ftest_hnjob(a->flags, TRYXINO0) + && a->inode + && a->h_inode) { + mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD); + if (!a->h_inode->i_nlink) + hn_xino(a->inode, a->h_inode); /* ignore this error */ + mutex_unlock(&a->h_inode->i_mutex); + } + + /* make the generation obsolete */ + if (au_ftest_hnjob(a->flags, GEN)) { + int err = -1; + if (a->inode) + err = hn_gen_by_inode(a->h_name, a->h_nlen, a->inode, + isdir); + if (err && a->dentry) + hn_gen_by_name(a->dentry, isdir); + /* ignore this error */ + } + + /* make dir entries obsolete */ + if (au_ftest_hnjob(a->flags, DIRENT) && a->inode) { + struct au_vdir *vdir; + + vdir = au_ivdir(a->inode); + if (vdir) + vdir->vd_jiffy = 0; + /* IMustLock(a->inode); */ + /* a->inode->i_version++; */ + } + + /* can do nothing but warn */ + if (au_ftest_hnjob(a->flags, MNTPNT) + && a->dentry + && d_mountpoint(a->dentry)) + pr_warning("mount-point %.*s is removed or renamed\n", + AuDLNPair(a->dentry)); + + return 0; +} + +/* ---------------------------------------------------------------------- */ + +static struct dentry *lookup_wlock_by_name(char *name, unsigned int nlen, + struct inode *dir) +{ + struct dentry *dentry, *d, *parent; + struct qstr *dname; + + parent = d_find_alias(dir); + if (!parent) + return NULL; + + dentry = NULL; + spin_lock(&parent->d_lock); + list_for_each_entry(d, &parent->d_subdirs, d_u.d_child) { + /* AuDbg("%.*s\n", AuDLNPair(d)); */ + spin_lock_nested(&d->d_lock, DENTRY_D_LOCK_NESTED); + dname = &d->d_name; + if (dname->len != nlen || memcmp(dname->name, name, nlen)) + goto cont_unlock; + if (au_di(d)) + au_digen_dec(d); + else + goto cont_unlock; + if (d->d_count) { + dentry = dget_dlock(d); + spin_unlock(&d->d_lock); + break; + } + + cont_unlock: + spin_unlock(&d->d_lock); + } + spin_unlock(&parent->d_lock); + dput(parent); + + if (dentry) + di_write_lock_child(dentry); + + return dentry; +} + +static struct inode *lookup_wlock_by_ino(struct super_block *sb, + aufs_bindex_t bindex, ino_t h_ino) +{ + struct inode *inode; + ino_t ino; + int err; + + inode = NULL; + err = au_xino_read(sb, bindex, h_ino, &ino); + if (!err && ino) + inode = ilookup(sb, ino); + if (!inode) + goto out; + + if (unlikely(inode->i_ino == AUFS_ROOT_INO)) { + pr_warning("wrong root branch\n"); + iput(inode); + inode = NULL; + goto out; + } + + ii_write_lock_child(inode); + +out: + return inode; +} + +static void au_hn_bh(void *_args) +{ + struct au_hnotify_args *a = _args; + struct super_block *sb; + aufs_bindex_t bindex, bend, bfound; + unsigned char xino, try_iput; + int err; + struct inode *inode; + ino_t h_ino; + struct hn_job_args args; + struct dentry *dentry; + struct au_sbinfo *sbinfo; + + AuDebugOn(!_args); + AuDebugOn(!a->h_dir); + AuDebugOn(!a->dir); + AuDebugOn(!a->mask); + AuDbg("mask 0x%x, i%lu, hi%lu, hci%lu\n", + a->mask, a->dir->i_ino, a->h_dir->i_ino, + a->h_child_inode ? a->h_child_inode->i_ino : 0); + + inode = NULL; + dentry = NULL; + /* + * do not lock a->dir->i_mutex here + * because of d_revalidate() may cause a deadlock. + */ + sb = a->dir->i_sb; + AuDebugOn(!sb); + sbinfo = au_sbi(sb); + AuDebugOn(!sbinfo); + si_write_lock(sb, AuLock_NOPLMW); + + ii_read_lock_parent(a->dir); + bfound = -1; + bend = au_ibend(a->dir); + for (bindex = au_ibstart(a->dir); bindex <= bend; bindex++) + if (au_h_iptr(a->dir, bindex) == a->h_dir) { + bfound = bindex; + break; + } + ii_read_unlock(a->dir); + if (unlikely(bfound < 0)) + goto out; + + xino = !!au_opt_test(au_mntflags(sb), XINO); + h_ino = 0; + if (a->h_child_inode) + h_ino = a->h_child_inode->i_ino; + + if (a->h_child_nlen + && (au_ftest_hnjob(a->flags[AuHn_CHILD], GEN) + || au_ftest_hnjob(a->flags[AuHn_CHILD], MNTPNT))) + dentry = lookup_wlock_by_name(a->h_child_name, a->h_child_nlen, + a->dir); + try_iput = 0; + if (dentry) + inode = dentry->d_inode; + if (xino && !inode && h_ino + && (au_ftest_hnjob(a->flags[AuHn_CHILD], XINO0) + || au_ftest_hnjob(a->flags[AuHn_CHILD], TRYXINO0) + || au_ftest_hnjob(a->flags[AuHn_CHILD], GEN))) { + inode = lookup_wlock_by_ino(sb, bfound, h_ino); + try_iput = 1; + } + + args.flags = a->flags[AuHn_CHILD]; + args.dentry = dentry; + args.inode = inode; + args.h_inode = a->h_child_inode; + args.dir = a->dir; + args.h_dir = a->h_dir; + args.h_name = a->h_child_name; + args.h_nlen = a->h_child_nlen; + err = hn_job(&args); + if (dentry) { + if (au_di(dentry)) + di_write_unlock(dentry); + dput(dentry); + } + if (inode && try_iput) { + ii_write_unlock(inode); + iput(inode); + } + + ii_write_lock_parent(a->dir); + args.flags = a->flags[AuHn_PARENT]; + args.dentry = NULL; + args.inode = a->dir; + args.h_inode = a->h_dir; + args.dir = NULL; + args.h_dir = NULL; + args.h_name = NULL; + args.h_nlen = 0; + err = hn_job(&args); + ii_write_unlock(a->dir); + +out: + iput(a->h_child_inode); + iput(a->h_dir); + iput(a->dir); + si_write_unlock(sb); + au_nwt_done(&sbinfo->si_nowait); + kfree(a); +} + +/* ---------------------------------------------------------------------- */ + +int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask, + struct qstr *h_child_qstr, struct inode *h_child_inode) +{ + int err, len; + unsigned int flags[AuHnLast], f; + unsigned char isdir, isroot, wh; + struct inode *dir; + struct au_hnotify_args *args; + char *p, *h_child_name; + + err = 0; + AuDebugOn(!hnotify || !hnotify->hn_aufs_inode); + dir = igrab(hnotify->hn_aufs_inode); + if (!dir) + goto out; + + isroot = (dir->i_ino == AUFS_ROOT_INO); + wh = 0; + h_child_name = (void *)h_child_qstr->name; + len = h_child_qstr->len; + if (h_child_name) { + if (len > AUFS_WH_PFX_LEN + && !memcmp(h_child_name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) { + h_child_name += AUFS_WH_PFX_LEN; + len -= AUFS_WH_PFX_LEN; + wh = 1; + } + } + + isdir = 0; + if (h_child_inode) + isdir = !!S_ISDIR(h_child_inode->i_mode); + flags[AuHn_PARENT] = AuHnJob_ISDIR; + flags[AuHn_CHILD] = 0; + if (isdir) + flags[AuHn_CHILD] = AuHnJob_ISDIR; + au_fset_hnjob(flags[AuHn_PARENT], DIRENT); + au_fset_hnjob(flags[AuHn_CHILD], GEN); + switch (mask & FS_EVENTS_POSS_ON_CHILD) { + case FS_MOVED_FROM: + case FS_MOVED_TO: + au_fset_hnjob(flags[AuHn_CHILD], XINO0); + au_fset_hnjob(flags[AuHn_CHILD], MNTPNT); + /*FALLTHROUGH*/ + case FS_CREATE: + AuDebugOn(!h_child_name || !h_child_inode); + break; + + case FS_DELETE: + /* + * aufs never be able to get this child inode. + * revalidation should be in d_revalidate() + * by checking i_nlink, i_generation or d_unhashed(). + */ + AuDebugOn(!h_child_name); + au_fset_hnjob(flags[AuHn_CHILD], TRYXINO0); + au_fset_hnjob(flags[AuHn_CHILD], MNTPNT); + break; + + default: + AuDebugOn(1); + } + + if (wh) + h_child_inode = NULL; + + err = -ENOMEM; + /* iput() and kfree() will be called in au_hnotify() */ + args = kmalloc(sizeof(*args) + len + 1, GFP_NOFS); + if (unlikely(!args)) { + AuErr1("no memory\n"); + iput(dir); + goto out; + } + args->flags[AuHn_PARENT] = flags[AuHn_PARENT]; + args->flags[AuHn_CHILD] = flags[AuHn_CHILD]; + args->mask = mask; + args->dir = dir; + args->h_dir = igrab(h_dir); + if (h_child_inode) + h_child_inode = igrab(h_child_inode); /* can be NULL */ + args->h_child_inode = h_child_inode; + args->h_child_nlen = len; + if (len) { + p = (void *)args; + p += sizeof(*args); + memcpy(p, h_child_name, len); + p[len] = 0; + } + + f = 0; + if (!dir->i_nlink) + f = AuWkq_NEST; + err = au_wkq_nowait(au_hn_bh, args, dir->i_sb, f); + if (unlikely(err)) { + pr_err("wkq %d\n", err); + iput(args->h_child_inode); + iput(args->h_dir); + iput(args->dir); + kfree(args); + } + +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +int au_hnotify_reset_br(unsigned int udba, struct au_branch *br, int perm) +{ + int err; + + AuDebugOn(!(udba & AuOptMask_UDBA)); + + err = 0; + if (au_hnotify_op.reset_br) + err = au_hnotify_op.reset_br(udba, br, perm); + + return err; +} + +int au_hnotify_init_br(struct au_branch *br, int perm) +{ + int err; + + err = 0; + if (au_hnotify_op.init_br) + err = au_hnotify_op.init_br(br, perm); + + return err; +} + +void au_hnotify_fin_br(struct au_branch *br) +{ + if (au_hnotify_op.fin_br) + au_hnotify_op.fin_br(br); +} + +static void au_hn_destroy_cache(void) +{ + kmem_cache_destroy(au_cachep[AuCache_HNOTIFY]); + au_cachep[AuCache_HNOTIFY] = NULL; +} + +int __init au_hnotify_init(void) +{ + int err; + + err = -ENOMEM; + au_cachep[AuCache_HNOTIFY] = AuCache(au_hnotify); + if (au_cachep[AuCache_HNOTIFY]) { + err = 0; + if (au_hnotify_op.init) + err = au_hnotify_op.init(); + if (unlikely(err)) + au_hn_destroy_cache(); + } + AuTraceErr(err); + return err; +} + +void au_hnotify_fin(void) +{ + if (au_hnotify_op.fin) + au_hnotify_op.fin(); + /* cf. au_cache_fin() */ + if (au_cachep[AuCache_HNOTIFY]) + au_hn_destroy_cache(); +} --- linux-3.2.0.orig/ubuntu/aufs/opts.c +++ linux-3.2.0/ubuntu/aufs/opts.c @@ -0,0 +1,1677 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * mount options/flags + */ + +#include +#include /* a distribution requires */ +#include +#include "aufs.h" + +/* ---------------------------------------------------------------------- */ + +enum { + Opt_br, + Opt_add, Opt_del, Opt_mod, Opt_reorder, Opt_append, Opt_prepend, + Opt_idel, Opt_imod, Opt_ireorder, + Opt_dirwh, Opt_rdcache, Opt_rdblk, Opt_rdhash, Opt_rendir, + Opt_rdblk_def, Opt_rdhash_def, + Opt_xino, Opt_zxino, Opt_noxino, + Opt_trunc_xino, Opt_trunc_xino_v, Opt_notrunc_xino, + Opt_trunc_xino_path, Opt_itrunc_xino, + Opt_trunc_xib, Opt_notrunc_xib, + Opt_shwh, Opt_noshwh, + Opt_plink, Opt_noplink, Opt_list_plink, + Opt_udba, + Opt_dio, Opt_nodio, + /* Opt_lock, Opt_unlock, */ + Opt_cmd, Opt_cmd_args, + Opt_diropq_a, Opt_diropq_w, + Opt_warn_perm, Opt_nowarn_perm, + Opt_wbr_copyup, Opt_wbr_create, + Opt_refrof, Opt_norefrof, + Opt_verbose, Opt_noverbose, + Opt_sum, Opt_nosum, Opt_wsum, + Opt_tail, Opt_ignore, Opt_ignore_silent, Opt_err +}; + +static match_table_t options = { + {Opt_br, "br=%s"}, + {Opt_br, "br:%s"}, + + {Opt_add, "add=%d:%s"}, + {Opt_add, "add:%d:%s"}, + {Opt_add, "ins=%d:%s"}, + {Opt_add, "ins:%d:%s"}, + {Opt_append, "append=%s"}, + {Opt_append, "append:%s"}, + {Opt_prepend, "prepend=%s"}, + {Opt_prepend, "prepend:%s"}, + + {Opt_del, "del=%s"}, + {Opt_del, "del:%s"}, + /* {Opt_idel, "idel:%d"}, */ + {Opt_mod, "mod=%s"}, + {Opt_mod, "mod:%s"}, + /* {Opt_imod, "imod:%d:%s"}, */ + + {Opt_dirwh, "dirwh=%d"}, + + {Opt_xino, "xino=%s"}, + {Opt_noxino, "noxino"}, + {Opt_trunc_xino, "trunc_xino"}, + {Opt_trunc_xino_v, "trunc_xino_v=%d:%d"}, + {Opt_notrunc_xino, "notrunc_xino"}, + {Opt_trunc_xino_path, "trunc_xino=%s"}, + {Opt_itrunc_xino, "itrunc_xino=%d"}, + /* {Opt_zxino, "zxino=%s"}, */ + {Opt_trunc_xib, "trunc_xib"}, + {Opt_notrunc_xib, "notrunc_xib"}, + +#ifdef CONFIG_PROC_FS + {Opt_plink, "plink"}, +#else + {Opt_ignore_silent, "plink"}, +#endif + + {Opt_noplink, "noplink"}, + +#ifdef CONFIG_AUFS_DEBUG + {Opt_list_plink, "list_plink"}, +#endif + + {Opt_udba, "udba=%s"}, + + {Opt_dio, "dio"}, + {Opt_nodio, "nodio"}, + + {Opt_diropq_a, "diropq=always"}, + {Opt_diropq_a, "diropq=a"}, + {Opt_diropq_w, "diropq=whiteouted"}, + {Opt_diropq_w, "diropq=w"}, + + {Opt_warn_perm, "warn_perm"}, + {Opt_nowarn_perm, "nowarn_perm"}, + + /* keep them temporary */ + {Opt_ignore_silent, "coo=%s"}, + {Opt_ignore_silent, "nodlgt"}, + {Opt_ignore_silent, "nodirperm1"}, + {Opt_ignore_silent, "clean_plink"}, + +#ifdef CONFIG_AUFS_SHWH + {Opt_shwh, "shwh"}, +#endif + {Opt_noshwh, "noshwh"}, + + {Opt_rendir, "rendir=%d"}, + + {Opt_refrof, "refrof"}, + {Opt_norefrof, "norefrof"}, + + {Opt_verbose, "verbose"}, + {Opt_verbose, "v"}, + {Opt_noverbose, "noverbose"}, + {Opt_noverbose, "quiet"}, + {Opt_noverbose, "q"}, + {Opt_noverbose, "silent"}, + + {Opt_sum, "sum"}, + {Opt_nosum, "nosum"}, + {Opt_wsum, "wsum"}, + + {Opt_rdcache, "rdcache=%d"}, + {Opt_rdblk, "rdblk=%d"}, + {Opt_rdblk_def, "rdblk=def"}, + {Opt_rdhash, "rdhash=%d"}, + {Opt_rdhash_def, "rdhash=def"}, + + {Opt_wbr_create, "create=%s"}, + {Opt_wbr_create, "create_policy=%s"}, + {Opt_wbr_copyup, "cpup=%s"}, + {Opt_wbr_copyup, "copyup=%s"}, + {Opt_wbr_copyup, "copyup_policy=%s"}, + + /* internal use for the scripts */ + {Opt_ignore_silent, "si=%s"}, + + {Opt_br, "dirs=%s"}, + {Opt_ignore, "debug=%d"}, + {Opt_ignore, "delete=whiteout"}, + {Opt_ignore, "delete=all"}, + {Opt_ignore, "imap=%s"}, + + /* temporary workaround, due to old mount(8)? */ + {Opt_ignore_silent, "relatime"}, + + {Opt_err, NULL} +}; + +/* ---------------------------------------------------------------------- */ + +static const char *au_parser_pattern(int val, struct match_token *token) +{ + while (token->pattern) { + if (token->token == val) + return token->pattern; + token++; + } + BUG(); + return "??"; +} + +/* ---------------------------------------------------------------------- */ + +static match_table_t brperm = { + {AuBrPerm_RO, AUFS_BRPERM_RO}, + {AuBrPerm_RR, AUFS_BRPERM_RR}, + {AuBrPerm_RW, AUFS_BRPERM_RW}, + {0, NULL} +}; + +static match_table_t brrattr = { + {AuBrRAttr_WH, AUFS_BRRATTR_WH}, + {0, NULL} +}; + +static match_table_t brwattr = { + {AuBrWAttr_NoLinkWH, AUFS_BRWATTR_NLWH}, + {0, NULL} +}; + +#define AuBrStr_LONGEST AUFS_BRPERM_RW "+" AUFS_BRWATTR_NLWH + +static int br_attr_val(char *str, match_table_t table, substring_t args[]) +{ + int attr, v; + char *p; + + attr = 0; + do { + p = strchr(str, '+'); + if (p) + *p = 0; + v = match_token(str, table, args); + if (v) + attr |= v; + else { + if (p) + *p = '+'; + pr_warning("ignored branch attribute %s\n", str); + break; + } + if (p) + str = p + 1; + } while (p); + + return attr; +} + +static int noinline_for_stack br_perm_val(char *perm) +{ + int val; + char *p; + substring_t args[MAX_OPT_ARGS]; + + p = strchr(perm, '+'); + if (p) + *p = 0; + val = match_token(perm, brperm, args); + if (!val) { + if (p) + *p = '+'; + pr_warning("ignored branch permission %s\n", perm); + val = AuBrPerm_RO; + goto out; + } + if (!p) + goto out; + + switch (val) { + case AuBrPerm_RO: + case AuBrPerm_RR: + val |= br_attr_val(p + 1, brrattr, args); + break; + case AuBrPerm_RW: + val |= br_attr_val(p + 1, brwattr, args); + break; + } + +out: + return val; +} + +/* Caller should free the return value */ +char *au_optstr_br_perm(int brperm) +{ + char *p, a[sizeof(AuBrStr_LONGEST)]; + int sz; + +#define SetPerm(str) do { \ + sz = sizeof(str); \ + memcpy(a, str, sz); \ + p = a + sz - 1; \ + } while (0) + +#define AppendAttr(flag, str) do { \ + if (brperm & flag) { \ + sz = sizeof(str); \ + *p++ = '+'; \ + memcpy(p, str, sz); \ + p += sz - 1; \ + } \ + } while (0) + + switch (brperm & AuBrPerm_Mask) { + case AuBrPerm_RO: + SetPerm(AUFS_BRPERM_RO); + break; + case AuBrPerm_RR: + SetPerm(AUFS_BRPERM_RR); + break; + case AuBrPerm_RW: + SetPerm(AUFS_BRPERM_RW); + break; + default: + AuDebugOn(1); + } + + AppendAttr(AuBrRAttr_WH, AUFS_BRRATTR_WH); + AppendAttr(AuBrWAttr_NoLinkWH, AUFS_BRWATTR_NLWH); + + AuDebugOn(strlen(a) >= sizeof(a)); + return kstrdup(a, GFP_NOFS); +#undef SetPerm +#undef AppendAttr +} + +/* ---------------------------------------------------------------------- */ + +static match_table_t udbalevel = { + {AuOpt_UDBA_REVAL, "reval"}, + {AuOpt_UDBA_NONE, "none"}, +#ifdef CONFIG_AUFS_HNOTIFY + {AuOpt_UDBA_HNOTIFY, "notify"}, /* abstraction */ +#ifdef CONFIG_AUFS_HFSNOTIFY + {AuOpt_UDBA_HNOTIFY, "fsnotify"}, +#endif +#endif + {-1, NULL} +}; + +static int noinline_for_stack udba_val(char *str) +{ + substring_t args[MAX_OPT_ARGS]; + + return match_token(str, udbalevel, args); +} + +const char *au_optstr_udba(int udba) +{ + return au_parser_pattern(udba, (void *)udbalevel); +} + +/* ---------------------------------------------------------------------- */ + +static match_table_t au_wbr_create_policy = { + {AuWbrCreate_TDP, "tdp"}, + {AuWbrCreate_TDP, "top-down-parent"}, + {AuWbrCreate_RR, "rr"}, + {AuWbrCreate_RR, "round-robin"}, + {AuWbrCreate_MFS, "mfs"}, + {AuWbrCreate_MFS, "most-free-space"}, + {AuWbrCreate_MFSV, "mfs:%d"}, + {AuWbrCreate_MFSV, "most-free-space:%d"}, + + {AuWbrCreate_MFSRR, "mfsrr:%d"}, + {AuWbrCreate_MFSRRV, "mfsrr:%d:%d"}, + {AuWbrCreate_PMFS, "pmfs"}, + {AuWbrCreate_PMFSV, "pmfs:%d"}, + + {-1, NULL} +}; + +/* + * cf. linux/lib/parser.c and cmdline.c + * gave up calling memparse() since it uses simple_strtoull() instead of + * kstrto...(). + */ +static int noinline_for_stack +au_match_ull(substring_t *s, unsigned long long *result) +{ + int err; + unsigned int len; + char a[32]; + + err = -ERANGE; + len = s->to - s->from; + if (len + 1 <= sizeof(a)) { + memcpy(a, s->from, len); + a[len] = '\0'; + err = kstrtoull(a, 0, result); + } + return err; +} + +static int au_wbr_mfs_wmark(substring_t *arg, char *str, + struct au_opt_wbr_create *create) +{ + int err; + unsigned long long ull; + + err = 0; + if (!au_match_ull(arg, &ull)) + create->mfsrr_watermark = ull; + else { + pr_err("bad integer in %s\n", str); + err = -EINVAL; + } + + return err; +} + +static int au_wbr_mfs_sec(substring_t *arg, char *str, + struct au_opt_wbr_create *create) +{ + int n, err; + + err = 0; + if (!match_int(arg, &n) && 0 <= n && n <= AUFS_MFS_MAX_SEC) + create->mfs_second = n; + else { + pr_err("bad integer in %s\n", str); + err = -EINVAL; + } + + return err; +} + +static int noinline_for_stack +au_wbr_create_val(char *str, struct au_opt_wbr_create *create) +{ + int err, e; + substring_t args[MAX_OPT_ARGS]; + + err = match_token(str, au_wbr_create_policy, args); + create->wbr_create = err; + switch (err) { + case AuWbrCreate_MFSRRV: + e = au_wbr_mfs_wmark(&args[0], str, create); + if (!e) + e = au_wbr_mfs_sec(&args[1], str, create); + if (unlikely(e)) + err = e; + break; + case AuWbrCreate_MFSRR: + e = au_wbr_mfs_wmark(&args[0], str, create); + if (unlikely(e)) { + err = e; + break; + } + /*FALLTHROUGH*/ + case AuWbrCreate_MFS: + case AuWbrCreate_PMFS: + create->mfs_second = AUFS_MFS_DEF_SEC; + break; + case AuWbrCreate_MFSV: + case AuWbrCreate_PMFSV: + e = au_wbr_mfs_sec(&args[0], str, create); + if (unlikely(e)) + err = e; + break; + } + + return err; +} + +const char *au_optstr_wbr_create(int wbr_create) +{ + return au_parser_pattern(wbr_create, (void *)au_wbr_create_policy); +} + +static match_table_t au_wbr_copyup_policy = { + {AuWbrCopyup_TDP, "tdp"}, + {AuWbrCopyup_TDP, "top-down-parent"}, + {AuWbrCopyup_BUP, "bup"}, + {AuWbrCopyup_BUP, "bottom-up-parent"}, + {AuWbrCopyup_BU, "bu"}, + {AuWbrCopyup_BU, "bottom-up"}, + {-1, NULL} +}; + +static int noinline_for_stack au_wbr_copyup_val(char *str) +{ + substring_t args[MAX_OPT_ARGS]; + + return match_token(str, au_wbr_copyup_policy, args); +} + +const char *au_optstr_wbr_copyup(int wbr_copyup) +{ + return au_parser_pattern(wbr_copyup, (void *)au_wbr_copyup_policy); +} + +/* ---------------------------------------------------------------------- */ + +static const int lkup_dirflags = LOOKUP_FOLLOW | LOOKUP_DIRECTORY; + +static void dump_opts(struct au_opts *opts) +{ +#ifdef CONFIG_AUFS_DEBUG + /* reduce stack space */ + union { + struct au_opt_add *add; + struct au_opt_del *del; + struct au_opt_mod *mod; + struct au_opt_xino *xino; + struct au_opt_xino_itrunc *xino_itrunc; + struct au_opt_wbr_create *create; + } u; + struct au_opt *opt; + + opt = opts->opt; + while (opt->type != Opt_tail) { + switch (opt->type) { + case Opt_add: + u.add = &opt->add; + AuDbg("add {b%d, %s, 0x%x, %p}\n", + u.add->bindex, u.add->pathname, u.add->perm, + u.add->path.dentry); + break; + case Opt_del: + case Opt_idel: + u.del = &opt->del; + AuDbg("del {%s, %p}\n", + u.del->pathname, u.del->h_path.dentry); + break; + case Opt_mod: + case Opt_imod: + u.mod = &opt->mod; + AuDbg("mod {%s, 0x%x, %p}\n", + u.mod->path, u.mod->perm, u.mod->h_root); + break; + case Opt_append: + u.add = &opt->add; + AuDbg("append {b%d, %s, 0x%x, %p}\n", + u.add->bindex, u.add->pathname, u.add->perm, + u.add->path.dentry); + break; + case Opt_prepend: + u.add = &opt->add; + AuDbg("prepend {b%d, %s, 0x%x, %p}\n", + u.add->bindex, u.add->pathname, u.add->perm, + u.add->path.dentry); + break; + case Opt_dirwh: + AuDbg("dirwh %d\n", opt->dirwh); + break; + case Opt_rdcache: + AuDbg("rdcache %d\n", opt->rdcache); + break; + case Opt_rdblk: + AuDbg("rdblk %u\n", opt->rdblk); + break; + case Opt_rdblk_def: + AuDbg("rdblk_def\n"); + break; + case Opt_rdhash: + AuDbg("rdhash %u\n", opt->rdhash); + break; + case Opt_rdhash_def: + AuDbg("rdhash_def\n"); + break; + case Opt_xino: + u.xino = &opt->xino; + AuDbg("xino {%s %.*s}\n", + u.xino->path, + AuDLNPair(u.xino->file->f_dentry)); + break; + case Opt_trunc_xino: + AuLabel(trunc_xino); + break; + case Opt_notrunc_xino: + AuLabel(notrunc_xino); + break; + case Opt_trunc_xino_path: + case Opt_itrunc_xino: + u.xino_itrunc = &opt->xino_itrunc; + AuDbg("trunc_xino %d\n", u.xino_itrunc->bindex); + break; + + case Opt_noxino: + AuLabel(noxino); + break; + case Opt_trunc_xib: + AuLabel(trunc_xib); + break; + case Opt_notrunc_xib: + AuLabel(notrunc_xib); + break; + case Opt_shwh: + AuLabel(shwh); + break; + case Opt_noshwh: + AuLabel(noshwh); + break; + case Opt_plink: + AuLabel(plink); + break; + case Opt_noplink: + AuLabel(noplink); + break; + case Opt_list_plink: + AuLabel(list_plink); + break; + case Opt_udba: + AuDbg("udba %d, %s\n", + opt->udba, au_optstr_udba(opt->udba)); + break; + case Opt_dio: + AuLabel(dio); + break; + case Opt_nodio: + AuLabel(nodio); + break; + case Opt_diropq_a: + AuLabel(diropq_a); + break; + case Opt_diropq_w: + AuLabel(diropq_w); + break; + case Opt_warn_perm: + AuLabel(warn_perm); + break; + case Opt_nowarn_perm: + AuLabel(nowarn_perm); + break; + case Opt_refrof: + AuLabel(refrof); + break; + case Opt_norefrof: + AuLabel(norefrof); + break; + case Opt_verbose: + AuLabel(verbose); + break; + case Opt_noverbose: + AuLabel(noverbose); + break; + case Opt_sum: + AuLabel(sum); + break; + case Opt_nosum: + AuLabel(nosum); + break; + case Opt_wsum: + AuLabel(wsum); + break; + case Opt_wbr_create: + u.create = &opt->wbr_create; + AuDbg("create %d, %s\n", u.create->wbr_create, + au_optstr_wbr_create(u.create->wbr_create)); + switch (u.create->wbr_create) { + case AuWbrCreate_MFSV: + case AuWbrCreate_PMFSV: + AuDbg("%d sec\n", u.create->mfs_second); + break; + case AuWbrCreate_MFSRR: + AuDbg("%llu watermark\n", + u.create->mfsrr_watermark); + break; + case AuWbrCreate_MFSRRV: + AuDbg("%llu watermark, %d sec\n", + u.create->mfsrr_watermark, + u.create->mfs_second); + break; + } + break; + case Opt_wbr_copyup: + AuDbg("copyup %d, %s\n", opt->wbr_copyup, + au_optstr_wbr_copyup(opt->wbr_copyup)); + break; + default: + BUG(); + } + opt++; + } +#endif +} + +void au_opts_free(struct au_opts *opts) +{ + struct au_opt *opt; + + opt = opts->opt; + while (opt->type != Opt_tail) { + switch (opt->type) { + case Opt_add: + case Opt_append: + case Opt_prepend: + path_put(&opt->add.path); + break; + case Opt_del: + case Opt_idel: + path_put(&opt->del.h_path); + break; + case Opt_mod: + case Opt_imod: + dput(opt->mod.h_root); + break; + case Opt_xino: + fput(opt->xino.file); + break; + } + opt++; + } +} + +static int opt_add(struct au_opt *opt, char *opt_str, unsigned long sb_flags, + aufs_bindex_t bindex) +{ + int err; + struct au_opt_add *add = &opt->add; + char *p; + + add->bindex = bindex; + add->perm = AuBrPerm_RO; + add->pathname = opt_str; + p = strchr(opt_str, '='); + if (p) { + *p++ = 0; + if (*p) + add->perm = br_perm_val(p); + } + + err = vfsub_kern_path(add->pathname, lkup_dirflags, &add->path); + if (!err) { + if (!p) { + add->perm = AuBrPerm_RO; + if (au_test_fs_rr(add->path.dentry->d_sb)) + add->perm = AuBrPerm_RR; + else if (!bindex && !(sb_flags & MS_RDONLY)) + add->perm = AuBrPerm_RW; + } + opt->type = Opt_add; + goto out; + } + pr_err("lookup failed %s (%d)\n", add->pathname, err); + err = -EINVAL; + +out: + return err; +} + +static int au_opts_parse_del(struct au_opt_del *del, substring_t args[]) +{ + int err; + + del->pathname = args[0].from; + AuDbg("del path %s\n", del->pathname); + + err = vfsub_kern_path(del->pathname, lkup_dirflags, &del->h_path); + if (unlikely(err)) + pr_err("lookup failed %s (%d)\n", del->pathname, err); + + return err; +} + +#if 0 /* reserved for future use */ +static int au_opts_parse_idel(struct super_block *sb, aufs_bindex_t bindex, + struct au_opt_del *del, substring_t args[]) +{ + int err; + struct dentry *root; + + err = -EINVAL; + root = sb->s_root; + aufs_read_lock(root, AuLock_FLUSH); + if (bindex < 0 || au_sbend(sb) < bindex) { + pr_err("out of bounds, %d\n", bindex); + goto out; + } + + err = 0; + del->h_path.dentry = dget(au_h_dptr(root, bindex)); + del->h_path.mnt = mntget(au_sbr_mnt(sb, bindex)); + +out: + aufs_read_unlock(root, !AuLock_IR); + return err; +} +#endif + +static int noinline_for_stack +au_opts_parse_mod(struct au_opt_mod *mod, substring_t args[]) +{ + int err; + struct path path; + char *p; + + err = -EINVAL; + mod->path = args[0].from; + p = strchr(mod->path, '='); + if (unlikely(!p)) { + pr_err("no permssion %s\n", args[0].from); + goto out; + } + + *p++ = 0; + err = vfsub_kern_path(mod->path, lkup_dirflags, &path); + if (unlikely(err)) { + pr_err("lookup failed %s (%d)\n", mod->path, err); + goto out; + } + + mod->perm = br_perm_val(p); + AuDbg("mod path %s, perm 0x%x, %s\n", mod->path, mod->perm, p); + mod->h_root = dget(path.dentry); + path_put(&path); + +out: + return err; +} + +#if 0 /* reserved for future use */ +static int au_opts_parse_imod(struct super_block *sb, aufs_bindex_t bindex, + struct au_opt_mod *mod, substring_t args[]) +{ + int err; + struct dentry *root; + + err = -EINVAL; + root = sb->s_root; + aufs_read_lock(root, AuLock_FLUSH); + if (bindex < 0 || au_sbend(sb) < bindex) { + pr_err("out of bounds, %d\n", bindex); + goto out; + } + + err = 0; + mod->perm = br_perm_val(args[1].from); + AuDbg("mod path %s, perm 0x%x, %s\n", + mod->path, mod->perm, args[1].from); + mod->h_root = dget(au_h_dptr(root, bindex)); + +out: + aufs_read_unlock(root, !AuLock_IR); + return err; +} +#endif + +static int au_opts_parse_xino(struct super_block *sb, struct au_opt_xino *xino, + substring_t args[]) +{ + int err; + struct file *file; + + file = au_xino_create(sb, args[0].from, /*silent*/0); + err = PTR_ERR(file); + if (IS_ERR(file)) + goto out; + + err = -EINVAL; + if (unlikely(file->f_dentry->d_sb == sb)) { + fput(file); + pr_err("%s must be outside\n", args[0].from); + goto out; + } + + err = 0; + xino->file = file; + xino->path = args[0].from; + +out: + return err; +} + +static int noinline_for_stack +au_opts_parse_xino_itrunc_path(struct super_block *sb, + struct au_opt_xino_itrunc *xino_itrunc, + substring_t args[]) +{ + int err; + aufs_bindex_t bend, bindex; + struct path path; + struct dentry *root; + + err = vfsub_kern_path(args[0].from, lkup_dirflags, &path); + if (unlikely(err)) { + pr_err("lookup failed %s (%d)\n", args[0].from, err); + goto out; + } + + xino_itrunc->bindex = -1; + root = sb->s_root; + aufs_read_lock(root, AuLock_FLUSH); + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + if (au_h_dptr(root, bindex) == path.dentry) { + xino_itrunc->bindex = bindex; + break; + } + } + aufs_read_unlock(root, !AuLock_IR); + path_put(&path); + + if (unlikely(xino_itrunc->bindex < 0)) { + pr_err("no such branch %s\n", args[0].from); + err = -EINVAL; + } + +out: + return err; +} + +/* called without aufs lock */ +int au_opts_parse(struct super_block *sb, char *str, struct au_opts *opts) +{ + int err, n, token; + aufs_bindex_t bindex; + unsigned char skipped; + struct dentry *root; + struct au_opt *opt, *opt_tail; + char *opt_str; + /* reduce the stack space */ + union { + struct au_opt_xino_itrunc *xino_itrunc; + struct au_opt_wbr_create *create; + } u; + struct { + substring_t args[MAX_OPT_ARGS]; + } *a; + + err = -ENOMEM; + a = kmalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + root = sb->s_root; + err = 0; + bindex = 0; + opt = opts->opt; + opt_tail = opt + opts->max_opt - 1; + opt->type = Opt_tail; + while (!err && (opt_str = strsep(&str, ",")) && *opt_str) { + err = -EINVAL; + skipped = 0; + token = match_token(opt_str, options, a->args); + switch (token) { + case Opt_br: + err = 0; + while (!err && (opt_str = strsep(&a->args[0].from, ":")) + && *opt_str) { + err = opt_add(opt, opt_str, opts->sb_flags, + bindex++); + if (unlikely(!err && ++opt > opt_tail)) { + err = -E2BIG; + break; + } + opt->type = Opt_tail; + skipped = 1; + } + break; + case Opt_add: + if (unlikely(match_int(&a->args[0], &n))) { + pr_err("bad integer in %s\n", opt_str); + break; + } + bindex = n; + err = opt_add(opt, a->args[1].from, opts->sb_flags, + bindex); + if (!err) + opt->type = token; + break; + case Opt_append: + err = opt_add(opt, a->args[0].from, opts->sb_flags, + /*dummy bindex*/1); + if (!err) + opt->type = token; + break; + case Opt_prepend: + err = opt_add(opt, a->args[0].from, opts->sb_flags, + /*bindex*/0); + if (!err) + opt->type = token; + break; + case Opt_del: + err = au_opts_parse_del(&opt->del, a->args); + if (!err) + opt->type = token; + break; +#if 0 /* reserved for future use */ + case Opt_idel: + del->pathname = "(indexed)"; + if (unlikely(match_int(&args[0], &n))) { + pr_err("bad integer in %s\n", opt_str); + break; + } + err = au_opts_parse_idel(sb, n, &opt->del, a->args); + if (!err) + opt->type = token; + break; +#endif + case Opt_mod: + err = au_opts_parse_mod(&opt->mod, a->args); + if (!err) + opt->type = token; + break; +#ifdef IMOD /* reserved for future use */ + case Opt_imod: + u.mod->path = "(indexed)"; + if (unlikely(match_int(&a->args[0], &n))) { + pr_err("bad integer in %s\n", opt_str); + break; + } + err = au_opts_parse_imod(sb, n, &opt->mod, a->args); + if (!err) + opt->type = token; + break; +#endif + case Opt_xino: + err = au_opts_parse_xino(sb, &opt->xino, a->args); + if (!err) + opt->type = token; + break; + + case Opt_trunc_xino_path: + err = au_opts_parse_xino_itrunc_path + (sb, &opt->xino_itrunc, a->args); + if (!err) + opt->type = token; + break; + + case Opt_itrunc_xino: + u.xino_itrunc = &opt->xino_itrunc; + if (unlikely(match_int(&a->args[0], &n))) { + pr_err("bad integer in %s\n", opt_str); + break; + } + u.xino_itrunc->bindex = n; + aufs_read_lock(root, AuLock_FLUSH); + if (n < 0 || au_sbend(sb) < n) { + pr_err("out of bounds, %d\n", n); + aufs_read_unlock(root, !AuLock_IR); + break; + } + aufs_read_unlock(root, !AuLock_IR); + err = 0; + opt->type = token; + break; + + case Opt_dirwh: + if (unlikely(match_int(&a->args[0], &opt->dirwh))) + break; + err = 0; + opt->type = token; + break; + + case Opt_rdcache: + if (unlikely(match_int(&a->args[0], &n))) { + pr_err("bad integer in %s\n", opt_str); + break; + } + if (unlikely(n > AUFS_RDCACHE_MAX)) { + pr_err("rdcache must be smaller than %d\n", + AUFS_RDCACHE_MAX); + break; + } + opt->rdcache = n; + err = 0; + opt->type = token; + break; + case Opt_rdblk: + if (unlikely(match_int(&a->args[0], &n) + || n < 0 + || n > KMALLOC_MAX_SIZE)) { + pr_err("bad integer in %s\n", opt_str); + break; + } + if (unlikely(n && n < NAME_MAX)) { + pr_err("rdblk must be larger than %d\n", + NAME_MAX); + break; + } + opt->rdblk = n; + err = 0; + opt->type = token; + break; + case Opt_rdhash: + if (unlikely(match_int(&a->args[0], &n) + || n < 0 + || n * sizeof(struct hlist_head) + > KMALLOC_MAX_SIZE)) { + pr_err("bad integer in %s\n", opt_str); + break; + } + opt->rdhash = n; + err = 0; + opt->type = token; + break; + + case Opt_trunc_xino: + case Opt_notrunc_xino: + case Opt_noxino: + case Opt_trunc_xib: + case Opt_notrunc_xib: + case Opt_shwh: + case Opt_noshwh: + case Opt_plink: + case Opt_noplink: + case Opt_list_plink: + case Opt_dio: + case Opt_nodio: + case Opt_diropq_a: + case Opt_diropq_w: + case Opt_warn_perm: + case Opt_nowarn_perm: + case Opt_refrof: + case Opt_norefrof: + case Opt_verbose: + case Opt_noverbose: + case Opt_sum: + case Opt_nosum: + case Opt_wsum: + case Opt_rdblk_def: + case Opt_rdhash_def: + err = 0; + opt->type = token; + break; + + case Opt_udba: + opt->udba = udba_val(a->args[0].from); + if (opt->udba >= 0) { + err = 0; + opt->type = token; + } else + pr_err("wrong value, %s\n", opt_str); + break; + + case Opt_wbr_create: + u.create = &opt->wbr_create; + u.create->wbr_create + = au_wbr_create_val(a->args[0].from, u.create); + if (u.create->wbr_create >= 0) { + err = 0; + opt->type = token; + } else + pr_err("wrong value, %s\n", opt_str); + break; + case Opt_wbr_copyup: + opt->wbr_copyup = au_wbr_copyup_val(a->args[0].from); + if (opt->wbr_copyup >= 0) { + err = 0; + opt->type = token; + } else + pr_err("wrong value, %s\n", opt_str); + break; + + case Opt_ignore: + pr_warning("ignored %s\n", opt_str); + /*FALLTHROUGH*/ + case Opt_ignore_silent: + skipped = 1; + err = 0; + break; + case Opt_err: + pr_err("unknown option %s\n", opt_str); + break; + } + + if (!err && !skipped) { + if (unlikely(++opt > opt_tail)) { + err = -E2BIG; + opt--; + opt->type = Opt_tail; + break; + } + opt->type = Opt_tail; + } + } + + kfree(a); + dump_opts(opts); + if (unlikely(err)) + au_opts_free(opts); + +out: + return err; +} + +static int au_opt_wbr_create(struct super_block *sb, + struct au_opt_wbr_create *create) +{ + int err; + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + err = 1; /* handled */ + sbinfo = au_sbi(sb); + if (sbinfo->si_wbr_create_ops->fin) { + err = sbinfo->si_wbr_create_ops->fin(sb); + if (!err) + err = 1; + } + + sbinfo->si_wbr_create = create->wbr_create; + sbinfo->si_wbr_create_ops = au_wbr_create_ops + create->wbr_create; + switch (create->wbr_create) { + case AuWbrCreate_MFSRRV: + case AuWbrCreate_MFSRR: + sbinfo->si_wbr_mfs.mfsrr_watermark = create->mfsrr_watermark; + /*FALLTHROUGH*/ + case AuWbrCreate_MFS: + case AuWbrCreate_MFSV: + case AuWbrCreate_PMFS: + case AuWbrCreate_PMFSV: + sbinfo->si_wbr_mfs.mfs_expire + = msecs_to_jiffies(create->mfs_second * MSEC_PER_SEC); + break; + } + + if (sbinfo->si_wbr_create_ops->init) + sbinfo->si_wbr_create_ops->init(sb); /* ignore */ + + return err; +} + +/* + * returns, + * plus: processed without an error + * zero: unprocessed + */ +static int au_opt_simple(struct super_block *sb, struct au_opt *opt, + struct au_opts *opts) +{ + int err; + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + err = 1; /* handled */ + sbinfo = au_sbi(sb); + switch (opt->type) { + case Opt_udba: + sbinfo->si_mntflags &= ~AuOptMask_UDBA; + sbinfo->si_mntflags |= opt->udba; + opts->given_udba |= opt->udba; + break; + + case Opt_plink: + au_opt_set(sbinfo->si_mntflags, PLINK); + break; + case Opt_noplink: + if (au_opt_test(sbinfo->si_mntflags, PLINK)) + au_plink_put(sb, /*verbose*/1); + au_opt_clr(sbinfo->si_mntflags, PLINK); + break; + case Opt_list_plink: + if (au_opt_test(sbinfo->si_mntflags, PLINK)) + au_plink_list(sb); + break; + + case Opt_dio: + au_opt_set(sbinfo->si_mntflags, DIO); + au_fset_opts(opts->flags, REFRESH_DYAOP); + break; + case Opt_nodio: + au_opt_clr(sbinfo->si_mntflags, DIO); + au_fset_opts(opts->flags, REFRESH_DYAOP); + break; + + case Opt_diropq_a: + au_opt_set(sbinfo->si_mntflags, ALWAYS_DIROPQ); + break; + case Opt_diropq_w: + au_opt_clr(sbinfo->si_mntflags, ALWAYS_DIROPQ); + break; + + case Opt_warn_perm: + au_opt_set(sbinfo->si_mntflags, WARN_PERM); + break; + case Opt_nowarn_perm: + au_opt_clr(sbinfo->si_mntflags, WARN_PERM); + break; + + case Opt_refrof: + au_opt_set(sbinfo->si_mntflags, REFROF); + break; + case Opt_norefrof: + au_opt_clr(sbinfo->si_mntflags, REFROF); + break; + + case Opt_verbose: + au_opt_set(sbinfo->si_mntflags, VERBOSE); + break; + case Opt_noverbose: + au_opt_clr(sbinfo->si_mntflags, VERBOSE); + break; + + case Opt_sum: + au_opt_set(sbinfo->si_mntflags, SUM); + break; + case Opt_wsum: + au_opt_clr(sbinfo->si_mntflags, SUM); + au_opt_set(sbinfo->si_mntflags, SUM_W); + case Opt_nosum: + au_opt_clr(sbinfo->si_mntflags, SUM); + au_opt_clr(sbinfo->si_mntflags, SUM_W); + break; + + case Opt_wbr_create: + err = au_opt_wbr_create(sb, &opt->wbr_create); + break; + case Opt_wbr_copyup: + sbinfo->si_wbr_copyup = opt->wbr_copyup; + sbinfo->si_wbr_copyup_ops = au_wbr_copyup_ops + opt->wbr_copyup; + break; + + case Opt_dirwh: + sbinfo->si_dirwh = opt->dirwh; + break; + + case Opt_rdcache: + sbinfo->si_rdcache + = msecs_to_jiffies(opt->rdcache * MSEC_PER_SEC); + break; + case Opt_rdblk: + sbinfo->si_rdblk = opt->rdblk; + break; + case Opt_rdblk_def: + sbinfo->si_rdblk = AUFS_RDBLK_DEF; + break; + case Opt_rdhash: + sbinfo->si_rdhash = opt->rdhash; + break; + case Opt_rdhash_def: + sbinfo->si_rdhash = AUFS_RDHASH_DEF; + break; + + case Opt_shwh: + au_opt_set(sbinfo->si_mntflags, SHWH); + break; + case Opt_noshwh: + au_opt_clr(sbinfo->si_mntflags, SHWH); + break; + + case Opt_trunc_xino: + au_opt_set(sbinfo->si_mntflags, TRUNC_XINO); + break; + case Opt_notrunc_xino: + au_opt_clr(sbinfo->si_mntflags, TRUNC_XINO); + break; + + case Opt_trunc_xino_path: + case Opt_itrunc_xino: + err = au_xino_trunc(sb, opt->xino_itrunc.bindex); + if (!err) + err = 1; + break; + + case Opt_trunc_xib: + au_fset_opts(opts->flags, TRUNC_XIB); + break; + case Opt_notrunc_xib: + au_fclr_opts(opts->flags, TRUNC_XIB); + break; + + default: + err = 0; + break; + } + + return err; +} + +/* + * returns tri-state. + * plus: processed without an error + * zero: unprocessed + * minus: error + */ +static int au_opt_br(struct super_block *sb, struct au_opt *opt, + struct au_opts *opts) +{ + int err, do_refresh; + + err = 0; + switch (opt->type) { + case Opt_append: + opt->add.bindex = au_sbend(sb) + 1; + if (opt->add.bindex < 0) + opt->add.bindex = 0; + goto add; + case Opt_prepend: + opt->add.bindex = 0; + add: + case Opt_add: + err = au_br_add(sb, &opt->add, + au_ftest_opts(opts->flags, REMOUNT)); + if (!err) { + err = 1; + au_fset_opts(opts->flags, REFRESH); + } + break; + + case Opt_del: + case Opt_idel: + err = au_br_del(sb, &opt->del, + au_ftest_opts(opts->flags, REMOUNT)); + if (!err) { + err = 1; + au_fset_opts(opts->flags, TRUNC_XIB); + au_fset_opts(opts->flags, REFRESH); + } + break; + + case Opt_mod: + case Opt_imod: + err = au_br_mod(sb, &opt->mod, + au_ftest_opts(opts->flags, REMOUNT), + &do_refresh); + if (!err) { + err = 1; + if (do_refresh) + au_fset_opts(opts->flags, REFRESH); + } + break; + } + + return err; +} + +static int au_opt_xino(struct super_block *sb, struct au_opt *opt, + struct au_opt_xino **opt_xino, + struct au_opts *opts) +{ + int err; + aufs_bindex_t bend, bindex; + struct dentry *root, *parent, *h_root; + + err = 0; + switch (opt->type) { + case Opt_xino: + err = au_xino_set(sb, &opt->xino, + !!au_ftest_opts(opts->flags, REMOUNT)); + if (unlikely(err)) + break; + + *opt_xino = &opt->xino; + au_xino_brid_set(sb, -1); + + /* safe d_parent access */ + parent = opt->xino.file->f_dentry->d_parent; + root = sb->s_root; + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + h_root = au_h_dptr(root, bindex); + if (h_root == parent) { + au_xino_brid_set(sb, au_sbr_id(sb, bindex)); + break; + } + } + break; + + case Opt_noxino: + au_xino_clr(sb); + au_xino_brid_set(sb, -1); + *opt_xino = (void *)-1; + break; + } + + return err; +} + +int au_opts_verify(struct super_block *sb, unsigned long sb_flags, + unsigned int pending) +{ + int err; + aufs_bindex_t bindex, bend; + unsigned char do_plink, skip, do_free; + struct au_branch *br; + struct au_wbr *wbr; + struct dentry *root; + struct inode *dir, *h_dir; + struct au_sbinfo *sbinfo; + struct au_hinode *hdir; + + SiMustAnyLock(sb); + + sbinfo = au_sbi(sb); + AuDebugOn(!(sbinfo->si_mntflags & AuOptMask_UDBA)); + + if (!(sb_flags & MS_RDONLY)) { + if (unlikely(!au_br_writable(au_sbr_perm(sb, 0)))) + pr_warning("first branch should be rw\n"); + if (unlikely(au_opt_test(sbinfo->si_mntflags, SHWH))) + pr_warning("shwh should be used with ro\n"); + } + + if (au_opt_test((sbinfo->si_mntflags | pending), UDBA_HNOTIFY) + && !au_opt_test(sbinfo->si_mntflags, XINO)) + pr_warning("udba=*notify requires xino\n"); + + err = 0; + root = sb->s_root; + dir = root->d_inode; + do_plink = !!au_opt_test(sbinfo->si_mntflags, PLINK); + bend = au_sbend(sb); + for (bindex = 0; !err && bindex <= bend; bindex++) { + skip = 0; + h_dir = au_h_iptr(dir, bindex); + br = au_sbr(sb, bindex); + do_free = 0; + + wbr = br->br_wbr; + if (wbr) + wbr_wh_read_lock(wbr); + + if (!au_br_writable(br->br_perm)) { + do_free = !!wbr; + skip = (!wbr + || (!wbr->wbr_whbase + && !wbr->wbr_plink + && !wbr->wbr_orph)); + } else if (!au_br_wh_linkable(br->br_perm)) { + /* skip = (!br->br_whbase && !br->br_orph); */ + skip = (!wbr || !wbr->wbr_whbase); + if (skip && wbr) { + if (do_plink) + skip = !!wbr->wbr_plink; + else + skip = !wbr->wbr_plink; + } + } else { + /* skip = (br->br_whbase && br->br_ohph); */ + skip = (wbr && wbr->wbr_whbase); + if (skip) { + if (do_plink) + skip = !!wbr->wbr_plink; + else + skip = !wbr->wbr_plink; + } + } + if (wbr) + wbr_wh_read_unlock(wbr); + + if (skip) + continue; + + hdir = au_hi(dir, bindex); + au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT); + if (wbr) + wbr_wh_write_lock(wbr); + err = au_wh_init(au_h_dptr(root, bindex), br, sb); + if (wbr) + wbr_wh_write_unlock(wbr); + au_hn_imtx_unlock(hdir); + + if (!err && do_free) { + kfree(wbr); + br->br_wbr = NULL; + } + } + + return err; +} + +int au_opts_mount(struct super_block *sb, struct au_opts *opts) +{ + int err; + unsigned int tmp; + aufs_bindex_t bindex, bend; + struct au_opt *opt; + struct au_opt_xino *opt_xino, xino; + struct au_sbinfo *sbinfo; + struct au_branch *br; + + SiMustWriteLock(sb); + + err = 0; + opt_xino = NULL; + opt = opts->opt; + while (err >= 0 && opt->type != Opt_tail) + err = au_opt_simple(sb, opt++, opts); + if (err > 0) + err = 0; + else if (unlikely(err < 0)) + goto out; + + /* disable xino and udba temporary */ + sbinfo = au_sbi(sb); + tmp = sbinfo->si_mntflags; + au_opt_clr(sbinfo->si_mntflags, XINO); + au_opt_set_udba(sbinfo->si_mntflags, UDBA_REVAL); + + opt = opts->opt; + while (err >= 0 && opt->type != Opt_tail) + err = au_opt_br(sb, opt++, opts); + if (err > 0) + err = 0; + else if (unlikely(err < 0)) + goto out; + + bend = au_sbend(sb); + if (unlikely(bend < 0)) { + err = -EINVAL; + pr_err("no branches\n"); + goto out; + } + + if (au_opt_test(tmp, XINO)) + au_opt_set(sbinfo->si_mntflags, XINO); + opt = opts->opt; + while (!err && opt->type != Opt_tail) + err = au_opt_xino(sb, opt++, &opt_xino, opts); + if (unlikely(err)) + goto out; + + err = au_opts_verify(sb, sb->s_flags, tmp); + if (unlikely(err)) + goto out; + + /* restore xino */ + if (au_opt_test(tmp, XINO) && !opt_xino) { + xino.file = au_xino_def(sb); + err = PTR_ERR(xino.file); + if (IS_ERR(xino.file)) + goto out; + + err = au_xino_set(sb, &xino, /*remount*/0); + fput(xino.file); + if (unlikely(err)) + goto out; + } + + /* restore udba */ + tmp &= AuOptMask_UDBA; + sbinfo->si_mntflags &= ~AuOptMask_UDBA; + sbinfo->si_mntflags |= tmp; + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + err = au_hnotify_reset_br(tmp, br, br->br_perm); + if (unlikely(err)) + AuIOErr("hnotify failed on br %d, %d, ignored\n", + bindex, err); + /* go on even if err */ + } + if (au_opt_test(tmp, UDBA_HNOTIFY)) { + struct inode *dir = sb->s_root->d_inode; + au_hn_reset(dir, au_hi_flags(dir, /*isdir*/1) & ~AuHi_XINO); + } + +out: + return err; +} + +int au_opts_remount(struct super_block *sb, struct au_opts *opts) +{ + int err, rerr; + struct inode *dir; + struct au_opt_xino *opt_xino; + struct au_opt *opt; + struct au_sbinfo *sbinfo; + + SiMustWriteLock(sb); + + dir = sb->s_root->d_inode; + sbinfo = au_sbi(sb); + err = 0; + opt_xino = NULL; + opt = opts->opt; + while (err >= 0 && opt->type != Opt_tail) { + err = au_opt_simple(sb, opt, opts); + if (!err) + err = au_opt_br(sb, opt, opts); + if (!err) + err = au_opt_xino(sb, opt, &opt_xino, opts); + opt++; + } + if (err > 0) + err = 0; + AuTraceErr(err); + /* go on even err */ + + rerr = au_opts_verify(sb, opts->sb_flags, /*pending*/0); + if (unlikely(rerr && !err)) + err = rerr; + + if (au_ftest_opts(opts->flags, TRUNC_XIB)) { + rerr = au_xib_trunc(sb); + if (unlikely(rerr && !err)) + err = rerr; + } + + /* will be handled by the caller */ + if (!au_ftest_opts(opts->flags, REFRESH) + && (opts->given_udba || au_opt_test(sbinfo->si_mntflags, XINO))) + au_fset_opts(opts->flags, REFRESH); + + AuDbg("status 0x%x\n", opts->flags); + return err; +} + +/* ---------------------------------------------------------------------- */ + +unsigned int au_opt_udba(struct super_block *sb) +{ + return au_mntflags(sb) & AuOptMask_UDBA; +} --- linux-3.2.0.orig/ubuntu/aufs/iinfo.c +++ linux-3.2.0/ubuntu/aufs/iinfo.c @@ -0,0 +1,264 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * inode private data + */ + +#include "aufs.h" + +struct inode *au_h_iptr(struct inode *inode, aufs_bindex_t bindex) +{ + struct inode *h_inode; + + IiMustAnyLock(inode); + + h_inode = au_ii(inode)->ii_hinode[0 + bindex].hi_inode; + AuDebugOn(h_inode && atomic_read(&h_inode->i_count) <= 0); + return h_inode; +} + +/* todo: hard/soft set? */ +void au_hiput(struct au_hinode *hinode) +{ + au_hn_free(hinode); + dput(hinode->hi_whdentry); + iput(hinode->hi_inode); +} + +unsigned int au_hi_flags(struct inode *inode, int isdir) +{ + unsigned int flags; + const unsigned int mnt_flags = au_mntflags(inode->i_sb); + + flags = 0; + if (au_opt_test(mnt_flags, XINO)) + au_fset_hi(flags, XINO); + if (isdir && au_opt_test(mnt_flags, UDBA_HNOTIFY)) + au_fset_hi(flags, HNOTIFY); + return flags; +} + +void au_set_h_iptr(struct inode *inode, aufs_bindex_t bindex, + struct inode *h_inode, unsigned int flags) +{ + struct au_hinode *hinode; + struct inode *hi; + struct au_iinfo *iinfo = au_ii(inode); + + IiMustWriteLock(inode); + + hinode = iinfo->ii_hinode + bindex; + hi = hinode->hi_inode; + AuDebugOn(h_inode && atomic_read(&h_inode->i_count) <= 0); + + if (hi) + au_hiput(hinode); + hinode->hi_inode = h_inode; + if (h_inode) { + int err; + struct super_block *sb = inode->i_sb; + struct au_branch *br; + + AuDebugOn(inode->i_mode + && (h_inode->i_mode & S_IFMT) + != (inode->i_mode & S_IFMT)); + if (bindex == iinfo->ii_bstart) + au_cpup_igen(inode, h_inode); + br = au_sbr(sb, bindex); + hinode->hi_id = br->br_id; + if (au_ftest_hi(flags, XINO)) { + err = au_xino_write(sb, bindex, h_inode->i_ino, + inode->i_ino); + if (unlikely(err)) + AuIOErr1("failed au_xino_write() %d\n", err); + } + + if (au_ftest_hi(flags, HNOTIFY) + && au_br_hnotifyable(br->br_perm)) { + err = au_hn_alloc(hinode, inode); + if (unlikely(err)) + AuIOErr1("au_hn_alloc() %d\n", err); + } + } +} + +void au_set_hi_wh(struct inode *inode, aufs_bindex_t bindex, + struct dentry *h_wh) +{ + struct au_hinode *hinode; + + IiMustWriteLock(inode); + + hinode = au_ii(inode)->ii_hinode + bindex; + AuDebugOn(hinode->hi_whdentry); + hinode->hi_whdentry = h_wh; +} + +void au_update_iigen(struct inode *inode) +{ + atomic_set(&au_ii(inode)->ii_generation, au_sigen(inode->i_sb)); + /* smp_mb(); */ /* atomic_set */ +} + +/* it may be called at remount time, too */ +void au_update_ibrange(struct inode *inode, int do_put_zero) +{ + struct au_iinfo *iinfo; + aufs_bindex_t bindex, bend; + + iinfo = au_ii(inode); + if (!iinfo) + return; + + IiMustWriteLock(inode); + + if (do_put_zero && iinfo->ii_bstart >= 0) { + for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend; + bindex++) { + struct inode *h_i; + + h_i = iinfo->ii_hinode[0 + bindex].hi_inode; + if (h_i && !h_i->i_nlink) + au_set_h_iptr(inode, bindex, NULL, 0); + } + } + + iinfo->ii_bstart = -1; + iinfo->ii_bend = -1; + bend = au_sbend(inode->i_sb); + for (bindex = 0; bindex <= bend; bindex++) + if (iinfo->ii_hinode[0 + bindex].hi_inode) { + iinfo->ii_bstart = bindex; + break; + } + if (iinfo->ii_bstart >= 0) + for (bindex = bend; bindex >= iinfo->ii_bstart; bindex--) + if (iinfo->ii_hinode[0 + bindex].hi_inode) { + iinfo->ii_bend = bindex; + break; + } + AuDebugOn(iinfo->ii_bstart > iinfo->ii_bend); +} + +/* ---------------------------------------------------------------------- */ + +void au_icntnr_init_once(void *_c) +{ + struct au_icntnr *c = _c; + struct au_iinfo *iinfo = &c->iinfo; + static struct lock_class_key aufs_ii; + + au_rw_init(&iinfo->ii_rwsem); + au_rw_class(&iinfo->ii_rwsem, &aufs_ii); + inode_init_once(&c->vfs_inode); +} + +int au_iinfo_init(struct inode *inode) +{ + struct au_iinfo *iinfo; + struct super_block *sb; + int nbr, i; + + sb = inode->i_sb; + iinfo = &(container_of(inode, struct au_icntnr, vfs_inode)->iinfo); + nbr = au_sbend(sb) + 1; + if (unlikely(nbr <= 0)) + nbr = 1; + iinfo->ii_hinode = kcalloc(nbr, sizeof(*iinfo->ii_hinode), GFP_NOFS); + if (iinfo->ii_hinode) { + au_ninodes_inc(sb); + for (i = 0; i < nbr; i++) + iinfo->ii_hinode[i].hi_id = -1; + + atomic_set(&iinfo->ii_generation, au_sigen(sb)); + /* smp_mb(); */ /* atomic_set */ + iinfo->ii_bstart = -1; + iinfo->ii_bend = -1; + iinfo->ii_vdir = NULL; + return 0; + } + return -ENOMEM; +} + +int au_ii_realloc(struct au_iinfo *iinfo, int nbr) +{ + int err, sz; + struct au_hinode *hip; + + AuRwMustWriteLock(&iinfo->ii_rwsem); + + err = -ENOMEM; + sz = sizeof(*hip) * (iinfo->ii_bend + 1); + if (!sz) + sz = sizeof(*hip); + hip = au_kzrealloc(iinfo->ii_hinode, sz, sizeof(*hip) * nbr, GFP_NOFS); + if (hip) { + iinfo->ii_hinode = hip; + err = 0; + } + + return err; +} + +void au_iinfo_fin(struct inode *inode) +{ + struct au_iinfo *iinfo; + struct au_hinode *hi; + struct super_block *sb; + aufs_bindex_t bindex, bend; + const unsigned char unlinked = !inode->i_nlink; + + iinfo = au_ii(inode); + /* bad_inode case */ + if (!iinfo) + return; + + sb = inode->i_sb; + au_ninodes_dec(sb); + if (si_pid_test(sb)) + au_xino_delete_inode(inode, unlinked); + else { + /* + * it is safe to hide the dependency between sbinfo and + * sb->s_umount. + */ + lockdep_off(); + si_noflush_read_lock(sb); + au_xino_delete_inode(inode, unlinked); + si_read_unlock(sb); + lockdep_on(); + } + + if (iinfo->ii_vdir) + au_vdir_free(iinfo->ii_vdir); + + bindex = iinfo->ii_bstart; + if (bindex >= 0) { + hi = iinfo->ii_hinode + bindex; + bend = iinfo->ii_bend; + while (bindex++ <= bend) { + if (hi->hi_inode) + au_hiput(hi); + hi++; + } + } + kfree(iinfo->ii_hinode); + iinfo->ii_hinode = NULL; + AuRwDestroy(&iinfo->ii_rwsem); +} --- linux-3.2.0.orig/ubuntu/aufs/vfsub.h +++ linux-3.2.0/ubuntu/aufs/vfsub.h @@ -0,0 +1,232 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sub-routines for VFS + */ + +#ifndef __AUFS_VFSUB_H__ +#define __AUFS_VFSUB_H__ + +#ifdef __KERNEL__ + +#include +#include +#include "debug.h" + +/* copied from linux/fs/internal.h */ +/* todo: BAD approach!! */ +DECLARE_BRLOCK(vfsmount_lock); +extern void file_sb_list_del(struct file *f); +extern spinlock_t inode_sb_list_lock; + +/* copied from linux/fs/file_table.c */ +DECLARE_LGLOCK(files_lglock); +#ifdef CONFIG_SMP +/* + * These macros iterate all files on all CPUs for a given superblock. + * files_lglock must be held globally. + */ +#define do_file_list_for_each_entry(__sb, __file) \ +{ \ + int i; \ + for_each_possible_cpu(i) { \ + struct list_head *list; \ + list = per_cpu_ptr((__sb)->s_files, i); \ + list_for_each_entry((__file), list, f_u.fu_list) + +#define while_file_list_for_each_entry \ + } \ +} + +#else + +#define do_file_list_for_each_entry(__sb, __file) \ +{ \ + struct list_head *list; \ + list = &(sb)->s_files; \ + list_for_each_entry((__file), list, f_u.fu_list) + +#define while_file_list_for_each_entry \ +} +#endif + +/* ---------------------------------------------------------------------- */ + +/* lock subclass for lower inode */ +/* default MAX_LOCKDEP_SUBCLASSES(8) is not enough */ +/* reduce? gave up. */ +enum { + AuLsc_I_Begin = I_MUTEX_QUOTA, /* 4 */ + AuLsc_I_PARENT, /* lower inode, parent first */ + AuLsc_I_PARENT2, /* copyup dirs */ + AuLsc_I_PARENT3, /* copyup wh */ + AuLsc_I_CHILD, + AuLsc_I_CHILD2, + AuLsc_I_End +}; + +/* to debug easier, do not make them inlined functions */ +#define MtxMustLock(mtx) AuDebugOn(!mutex_is_locked(mtx)) +#define IMustLock(i) MtxMustLock(&(i)->i_mutex) + +/* ---------------------------------------------------------------------- */ + +static inline void vfsub_drop_nlink(struct inode *inode) +{ + AuDebugOn(!inode->i_nlink); + drop_nlink(inode); +} + +static inline void vfsub_dead_dir(struct inode *inode) +{ + AuDebugOn(!S_ISDIR(inode->i_mode)); + inode->i_flags |= S_DEAD; + clear_nlink(inode); +} + +/* ---------------------------------------------------------------------- */ + +int vfsub_update_h_iattr(struct path *h_path, int *did); +struct file *vfsub_dentry_open(struct path *path, int flags); +struct file *vfsub_filp_open(const char *path, int oflags, int mode); +int vfsub_kern_path(const char *name, unsigned int flags, struct path *path); +struct dentry *vfsub_lookup_one_len(const char *name, struct dentry *parent, + int len); +struct dentry *vfsub_lookup_hash(struct nameidata *nd); +int vfsub_name_hash(const char *name, struct qstr *this, int len); + +/* ---------------------------------------------------------------------- */ + +struct au_hinode; +struct dentry *vfsub_lock_rename(struct dentry *d1, struct au_hinode *hdir1, + struct dentry *d2, struct au_hinode *hdir2); +void vfsub_unlock_rename(struct dentry *d1, struct au_hinode *hdir1, + struct dentry *d2, struct au_hinode *hdir2); + +int vfsub_create(struct inode *dir, struct path *path, int mode); +int vfsub_symlink(struct inode *dir, struct path *path, + const char *symname); +int vfsub_mknod(struct inode *dir, struct path *path, int mode, dev_t dev); +int vfsub_link(struct dentry *src_dentry, struct inode *dir, + struct path *path); +int vfsub_rename(struct inode *src_hdir, struct dentry *src_dentry, + struct inode *hdir, struct path *path); +int vfsub_mkdir(struct inode *dir, struct path *path, int mode); +int vfsub_rmdir(struct inode *dir, struct path *path); + +/* ---------------------------------------------------------------------- */ + +ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count, + loff_t *ppos); +ssize_t vfsub_read_k(struct file *file, void *kbuf, size_t count, + loff_t *ppos); +ssize_t vfsub_write_u(struct file *file, const char __user *ubuf, size_t count, + loff_t *ppos); +ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count, + loff_t *ppos); +int vfsub_flush(struct file *file, fl_owner_t id); +int vfsub_readdir(struct file *file, filldir_t filldir, void *arg); + +static inline unsigned int vfsub_file_flags(struct file *file) +{ + unsigned int flags; + + spin_lock(&file->f_lock); + flags = file->f_flags; + spin_unlock(&file->f_lock); + + return flags; +} + +static inline void vfsub_file_accessed(struct file *h_file) +{ + file_accessed(h_file); + vfsub_update_h_iattr(&h_file->f_path, /*did*/NULL); /*ignore*/ +} + +static inline void vfsub_touch_atime(struct vfsmount *h_mnt, + struct dentry *h_dentry) +{ + struct path h_path = { + .dentry = h_dentry, + .mnt = h_mnt + }; + touch_atime(h_mnt, h_dentry); + vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/ +} + +long vfsub_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags); +long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags); +int vfsub_trunc(struct path *h_path, loff_t length, unsigned int attr, + struct file *h_file); +int vfsub_fsync(struct file *file, struct path *path, int datasync); + +/* ---------------------------------------------------------------------- */ + +static inline loff_t vfsub_llseek(struct file *file, loff_t offset, int origin) +{ + loff_t err; + + lockdep_off(); + err = vfs_llseek(file, offset, origin); + lockdep_on(); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* dirty workaround for strict type of fmode_t */ +union vfsub_fmu { + fmode_t fm; + unsigned int ui; +}; + +static inline unsigned int vfsub_fmode_to_uint(fmode_t fm) +{ + union vfsub_fmu u = { + .fm = fm + }; + + BUILD_BUG_ON(sizeof(u.fm) != sizeof(u.ui)); + + return u.ui; +} + +static inline fmode_t vfsub_uint_to_fmode(unsigned int ui) +{ + union vfsub_fmu u = { + .ui = ui + }; + + return u.fm; +} + +/* ---------------------------------------------------------------------- */ + +int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode); +int vfsub_sio_rmdir(struct inode *dir, struct path *path); +int vfsub_sio_notify_change(struct path *path, struct iattr *ia); +int vfsub_notify_change(struct path *path, struct iattr *ia); +int vfsub_unlink(struct inode *dir, struct path *path, int force); + +#endif /* __KERNEL__ */ +#endif /* __AUFS_VFSUB_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/vfsub.c +++ linux-3.2.0/ubuntu/aufs/vfsub.c @@ -0,0 +1,835 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sub-routines for VFS + */ + +#include +#include +#include +#include +#include "aufs.h" + +int vfsub_update_h_iattr(struct path *h_path, int *did) +{ + int err; + struct kstat st; + struct super_block *h_sb; + + /* for remote fs, leave work for its getattr or d_revalidate */ + /* for bad i_attr fs, handle them in aufs_getattr() */ + /* still some fs may acquire i_mutex. we need to skip them */ + err = 0; + if (!did) + did = &err; + h_sb = h_path->dentry->d_sb; + *did = (!au_test_fs_remote(h_sb) && au_test_fs_refresh_iattr(h_sb)); + if (*did) + err = vfs_getattr(h_path->mnt, h_path->dentry, &st); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct file *vfsub_dentry_open(struct path *path, int flags) +{ + struct file *file; + + path_get(path); + file = dentry_open(path->dentry, path->mnt, + flags /* | __FMODE_NONOTIFY */, + current_cred()); + if (!IS_ERR_OR_NULL(file) + && (file->f_mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) + i_readcount_inc(path->dentry->d_inode); + + return file; +} + +struct file *vfsub_filp_open(const char *path, int oflags, int mode) +{ + struct file *file; + + lockdep_off(); + file = filp_open(path, + oflags /* | __FMODE_NONOTIFY */, + mode); + lockdep_on(); + if (IS_ERR(file)) + goto out; + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/ + +out: + return file; +} + +int vfsub_kern_path(const char *name, unsigned int flags, struct path *path) +{ + int err; + + err = kern_path(name, flags, path); + if (!err && path->dentry->d_inode) + vfsub_update_h_iattr(path, /*did*/NULL); /*ignore*/ + return err; +} + +struct dentry *vfsub_lookup_one_len(const char *name, struct dentry *parent, + int len) +{ + struct path path = { + .mnt = NULL + }; + + /* VFS checks it too, but by WARN_ON_ONCE() */ + IMustLock(parent->d_inode); + + path.dentry = lookup_one_len(name, parent, len); + if (IS_ERR(path.dentry)) + goto out; + if (path.dentry->d_inode) + vfsub_update_h_iattr(&path, /*did*/NULL); /*ignore*/ + +out: + AuTraceErrPtr(path.dentry); + return path.dentry; +} + +struct dentry *vfsub_lookup_hash(struct nameidata *nd) +{ + struct path path = { + .mnt = nd->path.mnt + }; + + IMustLock(nd->path.dentry->d_inode); + + path.dentry = lookup_hash(nd); + if (IS_ERR(path.dentry)) + goto out; + if (path.dentry->d_inode) + vfsub_update_h_iattr(&path, /*did*/NULL); /*ignore*/ + +out: + AuTraceErrPtr(path.dentry); + return path.dentry; +} + +/* + * this is "VFS:__lookup_one_len()" which was removed and merged into + * VFS:lookup_one_len() by the commit. + * 6a96ba5 2011-03-14 kill __lookup_one_len() + * this function should always be equivalent to the corresponding part in + * VFS:lookup_one_len(). + */ +int vfsub_name_hash(const char *name, struct qstr *this, int len) +{ + unsigned long hash; + unsigned int c; + + this->name = name; + this->len = len; + if (!len) + return -EACCES; + + hash = init_name_hash(); + while (len--) { + c = *(const unsigned char *)name++; + if (c == '/' || c == '\0') + return -EACCES; + hash = partial_name_hash(c, hash); + } + this->hash = end_name_hash(hash); + return 0; +} + +/* ---------------------------------------------------------------------- */ + +struct dentry *vfsub_lock_rename(struct dentry *d1, struct au_hinode *hdir1, + struct dentry *d2, struct au_hinode *hdir2) +{ + struct dentry *d; + + lockdep_off(); + d = lock_rename(d1, d2); + lockdep_on(); + au_hn_suspend(hdir1); + if (hdir1 != hdir2) + au_hn_suspend(hdir2); + + return d; +} + +void vfsub_unlock_rename(struct dentry *d1, struct au_hinode *hdir1, + struct dentry *d2, struct au_hinode *hdir2) +{ + au_hn_resume(hdir1); + if (hdir1 != hdir2) + au_hn_resume(hdir2); + lockdep_off(); + unlock_rename(d1, d2); + lockdep_on(); +} + +/* ---------------------------------------------------------------------- */ + +int vfsub_create(struct inode *dir, struct path *path, int mode) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_mknod(path, d, mode, 0); + path->dentry = d; + if (unlikely(err)) + goto out; + + if (au_test_fs_null_nd(dir->i_sb)) + err = vfs_create(dir, path->dentry, mode, NULL); + else { + struct nameidata h_nd; + + memset(&h_nd, 0, sizeof(h_nd)); + h_nd.flags = LOOKUP_CREATE; + h_nd.intent.open.flags = O_CREAT + | vfsub_fmode_to_uint(FMODE_READ); + h_nd.intent.open.create_mode = mode; + h_nd.path.dentry = path->dentry->d_parent; + h_nd.path.mnt = path->mnt; + path_get(&h_nd.path); + err = vfs_create(dir, path->dentry, mode, &h_nd); + path_put(&h_nd.path); + } + + if (!err) { + struct path tmp = *path; + int did; + + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = path->dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + +out: + return err; +} + +int vfsub_symlink(struct inode *dir, struct path *path, const char *symname) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_symlink(path, d, symname); + path->dentry = d; + if (unlikely(err)) + goto out; + + err = vfs_symlink(dir, path->dentry, symname); + if (!err) { + struct path tmp = *path; + int did; + + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = path->dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + +out: + return err; +} + +int vfsub_mknod(struct inode *dir, struct path *path, int mode, dev_t dev) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_mknod(path, d, mode, new_encode_dev(dev)); + path->dentry = d; + if (unlikely(err)) + goto out; + + err = vfs_mknod(dir, path->dentry, mode, dev); + if (!err) { + struct path tmp = *path; + int did; + + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = path->dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + +out: + return err; +} + +static int au_test_nlink(struct inode *inode) +{ + const unsigned int link_max = UINT_MAX >> 1; /* rough margin */ + + if (!au_test_fs_no_limit_nlink(inode->i_sb) + || inode->i_nlink < link_max) + return 0; + return -EMLINK; +} + +int vfsub_link(struct dentry *src_dentry, struct inode *dir, struct path *path) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + err = au_test_nlink(src_dentry->d_inode); + if (unlikely(err)) + return err; + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_link(src_dentry, path, d); + path->dentry = d; + if (unlikely(err)) + goto out; + + lockdep_off(); + err = vfs_link(src_dentry, dir, path->dentry); + lockdep_on(); + if (!err) { + struct path tmp = *path; + int did; + + /* fuse has different memory inode for the same inumber */ + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = path->dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + tmp.dentry = src_dentry; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + +out: + return err; +} + +int vfsub_rename(struct inode *src_dir, struct dentry *src_dentry, + struct inode *dir, struct path *path) +{ + int err; + struct path tmp = { + .mnt = path->mnt + }; + struct dentry *d; + + IMustLock(dir); + IMustLock(src_dir); + + d = path->dentry; + path->dentry = d->d_parent; + tmp.dentry = src_dentry->d_parent; + err = security_path_rename(&tmp, src_dentry, path, d); + path->dentry = d; + if (unlikely(err)) + goto out; + + lockdep_off(); + err = vfs_rename(src_dir, src_dentry, dir, path->dentry); + lockdep_on(); + if (!err) { + int did; + + tmp.dentry = d->d_parent; + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = src_dentry; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + tmp.dentry = src_dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + +out: + return err; +} + +int vfsub_mkdir(struct inode *dir, struct path *path, int mode) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_mkdir(path, d, mode); + path->dentry = d; + if (unlikely(err)) + goto out; + + err = vfs_mkdir(dir, path->dentry, mode); + if (!err) { + struct path tmp = *path; + int did; + + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = path->dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + +out: + return err; +} + +int vfsub_rmdir(struct inode *dir, struct path *path) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_rmdir(path, d); + path->dentry = d; + if (unlikely(err)) + goto out; + + lockdep_off(); + err = vfs_rmdir(dir, path->dentry); + lockdep_on(); + if (!err) { + struct path tmp = { + .dentry = path->dentry->d_parent, + .mnt = path->mnt + }; + + vfsub_update_h_iattr(&tmp, /*did*/NULL); /*ignore*/ + } + +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* todo: support mmap_sem? */ +ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count, + loff_t *ppos) +{ + ssize_t err; + + lockdep_off(); + err = vfs_read(file, ubuf, count, ppos); + lockdep_on(); + if (err >= 0) + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +/* todo: kernel_read()? */ +ssize_t vfsub_read_k(struct file *file, void *kbuf, size_t count, + loff_t *ppos) +{ + ssize_t err; + mm_segment_t oldfs; + union { + void *k; + char __user *u; + } buf; + + buf.k = kbuf; + oldfs = get_fs(); + set_fs(KERNEL_DS); + err = vfsub_read_u(file, buf.u, count, ppos); + set_fs(oldfs); + return err; +} + +ssize_t vfsub_write_u(struct file *file, const char __user *ubuf, size_t count, + loff_t *ppos) +{ + ssize_t err; + + lockdep_off(); + err = vfs_write(file, ubuf, count, ppos); + lockdep_on(); + if (err >= 0) + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count, loff_t *ppos) +{ + ssize_t err; + mm_segment_t oldfs; + union { + void *k; + const char __user *u; + } buf; + + buf.k = kbuf; + oldfs = get_fs(); + set_fs(KERNEL_DS); + err = vfsub_write_u(file, buf.u, count, ppos); + set_fs(oldfs); + return err; +} + +int vfsub_flush(struct file *file, fl_owner_t id) +{ + int err; + + err = 0; + if (file->f_op && file->f_op->flush) { + if (!au_test_nfs(file->f_dentry->d_sb)) + err = file->f_op->flush(file, id); + else { + lockdep_off(); + err = file->f_op->flush(file, id); + lockdep_on(); + } + if (!err) + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); + /*ignore*/ + } + return err; +} + +int vfsub_readdir(struct file *file, filldir_t filldir, void *arg) +{ + int err; + + lockdep_off(); + err = vfs_readdir(file, filldir, arg); + lockdep_on(); + if (err >= 0) + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +long vfsub_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) +{ + long err; + + lockdep_off(); + err = do_splice_to(in, ppos, pipe, len, flags); + lockdep_on(); + file_accessed(in); + if (err >= 0) + vfsub_update_h_iattr(&in->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags) +{ + long err; + + lockdep_off(); + err = do_splice_from(pipe, out, ppos, len, flags); + lockdep_on(); + if (err >= 0) + vfsub_update_h_iattr(&out->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +int vfsub_fsync(struct file *file, struct path *path, int datasync) +{ + int err; + + /* file can be NULL */ + lockdep_off(); + err = vfs_fsync(file, datasync); + lockdep_on(); + if (!err) { + if (!path) { + AuDebugOn(!file); + path = &file->f_path; + } + vfsub_update_h_iattr(path, /*did*/NULL); /*ignore*/ + } + return err; +} + +/* cf. open.c:do_sys_truncate() and do_sys_ftruncate() */ +int vfsub_trunc(struct path *h_path, loff_t length, unsigned int attr, + struct file *h_file) +{ + int err; + struct inode *h_inode; + + h_inode = h_path->dentry->d_inode; + if (!h_file) { + err = mnt_want_write(h_path->mnt); + if (err) + goto out; + err = inode_permission(h_inode, MAY_WRITE); + if (err) + goto out_mnt; + err = get_write_access(h_inode); + if (err) + goto out_mnt; + err = break_lease(h_inode, O_WRONLY); + if (err) + goto out_inode; + } + + err = locks_verify_truncate(h_inode, h_file, length); + if (!err) + err = security_path_truncate(h_path); + if (!err) { + lockdep_off(); + err = do_truncate(h_path->dentry, length, attr, h_file); + lockdep_on(); + } + +out_inode: + if (!h_file) + put_write_access(h_inode); +out_mnt: + if (!h_file) + mnt_drop_write(h_path->mnt); +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct au_vfsub_mkdir_args { + int *errp; + struct inode *dir; + struct path *path; + int mode; +}; + +static void au_call_vfsub_mkdir(void *args) +{ + struct au_vfsub_mkdir_args *a = args; + *a->errp = vfsub_mkdir(a->dir, a->path, a->mode); +} + +int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode) +{ + int err, do_sio, wkq_err; + + do_sio = au_test_h_perm_sio(dir, MAY_EXEC | MAY_WRITE); + if (!do_sio) + err = vfsub_mkdir(dir, path, mode); + else { + struct au_vfsub_mkdir_args args = { + .errp = &err, + .dir = dir, + .path = path, + .mode = mode + }; + wkq_err = au_wkq_wait(au_call_vfsub_mkdir, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + return err; +} + +struct au_vfsub_rmdir_args { + int *errp; + struct inode *dir; + struct path *path; +}; + +static void au_call_vfsub_rmdir(void *args) +{ + struct au_vfsub_rmdir_args *a = args; + *a->errp = vfsub_rmdir(a->dir, a->path); +} + +int vfsub_sio_rmdir(struct inode *dir, struct path *path) +{ + int err, do_sio, wkq_err; + + do_sio = au_test_h_perm_sio(dir, MAY_EXEC | MAY_WRITE); + if (!do_sio) + err = vfsub_rmdir(dir, path); + else { + struct au_vfsub_rmdir_args args = { + .errp = &err, + .dir = dir, + .path = path + }; + wkq_err = au_wkq_wait(au_call_vfsub_rmdir, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct notify_change_args { + int *errp; + struct path *path; + struct iattr *ia; +}; + +static void call_notify_change(void *args) +{ + struct notify_change_args *a = args; + struct inode *h_inode; + + h_inode = a->path->dentry->d_inode; + IMustLock(h_inode); + + *a->errp = -EPERM; + if (!IS_IMMUTABLE(h_inode) && !IS_APPEND(h_inode)) { + *a->errp = notify_change(a->path->dentry, a->ia); + if (!*a->errp) + vfsub_update_h_iattr(a->path, /*did*/NULL); /*ignore*/ + } + AuTraceErr(*a->errp); +} + +int vfsub_notify_change(struct path *path, struct iattr *ia) +{ + int err; + struct notify_change_args args = { + .errp = &err, + .path = path, + .ia = ia + }; + + call_notify_change(&args); + + return err; +} + +int vfsub_sio_notify_change(struct path *path, struct iattr *ia) +{ + int err, wkq_err; + struct notify_change_args args = { + .errp = &err, + .path = path, + .ia = ia + }; + + wkq_err = au_wkq_wait(call_notify_change, &args); + if (unlikely(wkq_err)) + err = wkq_err; + + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct unlink_args { + int *errp; + struct inode *dir; + struct path *path; +}; + +static void call_unlink(void *args) +{ + struct unlink_args *a = args; + struct dentry *d = a->path->dentry; + struct inode *h_inode; + const int stop_sillyrename = (au_test_nfs(d->d_sb) + && d->d_count == 1); + + IMustLock(a->dir); + + a->path->dentry = d->d_parent; + *a->errp = security_path_unlink(a->path, d); + a->path->dentry = d; + if (unlikely(*a->errp)) + return; + + if (!stop_sillyrename) + dget(d); + h_inode = d->d_inode; + if (h_inode) + ihold(h_inode); + + lockdep_off(); + *a->errp = vfs_unlink(a->dir, d); + lockdep_on(); + if (!*a->errp) { + struct path tmp = { + .dentry = d->d_parent, + .mnt = a->path->mnt + }; + vfsub_update_h_iattr(&tmp, /*did*/NULL); /*ignore*/ + } + + if (!stop_sillyrename) + dput(d); + if (h_inode) + iput(h_inode); + + AuTraceErr(*a->errp); +} + +/* + * @dir: must be locked. + * @dentry: target dentry. + */ +int vfsub_unlink(struct inode *dir, struct path *path, int force) +{ + int err; + struct unlink_args args = { + .errp = &err, + .dir = dir, + .path = path + }; + + if (!force) + call_unlink(&args); + else { + int wkq_err; + + wkq_err = au_wkq_wait(call_unlink, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + return err; +} --- linux-3.2.0.orig/ubuntu/aufs/sysfs.c +++ linux-3.2.0/ubuntu/aufs/sysfs.c @@ -0,0 +1,257 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * sysfs interface + */ + +#include +#include "aufs.h" + +#ifdef CONFIG_AUFS_FS_MODULE +/* this entry violates the "one line per file" policy of sysfs */ +static ssize_t config_show(struct kobject *kobj, struct kobj_attribute *attr, + char *buf) +{ + ssize_t err; + static char *conf = +/* this file is generated at compiling */ +#include "conf.str" + ; + + err = snprintf(buf, PAGE_SIZE, conf); + if (unlikely(err >= PAGE_SIZE)) + err = -EFBIG; + return err; +} + +static struct kobj_attribute au_config_attr = __ATTR_RO(config); +#endif + +static struct attribute *au_attr[] = { +#ifdef CONFIG_AUFS_FS_MODULE + &au_config_attr.attr, +#endif + NULL, /* need to NULL terminate the list of attributes */ +}; + +static struct attribute_group sysaufs_attr_group_body = { + .attrs = au_attr +}; + +struct attribute_group *sysaufs_attr_group = &sysaufs_attr_group_body; + +/* ---------------------------------------------------------------------- */ + +int sysaufs_si_xi_path(struct seq_file *seq, struct super_block *sb) +{ + int err; + + SiMustAnyLock(sb); + + err = 0; + if (au_opt_test(au_mntflags(sb), XINO)) { + err = au_xino_path(seq, au_sbi(sb)->si_xib); + seq_putc(seq, '\n'); + } + return err; +} + +/* + * the lifetime of branch is independent from the entry under sysfs. + * sysfs handles the lifetime of the entry, and never call ->show() after it is + * unlinked. + */ +static int sysaufs_si_br(struct seq_file *seq, struct super_block *sb, + aufs_bindex_t bindex) +{ + int err; + struct path path; + struct dentry *root; + struct au_branch *br; + char *perm; + + AuDbg("b%d\n", bindex); + + err = 0; + root = sb->s_root; + di_read_lock_parent(root, !AuLock_IR); + br = au_sbr(sb, bindex); + path.mnt = br->br_mnt; + path.dentry = au_h_dptr(root, bindex); + au_seq_path(seq, &path); + di_read_unlock(root, !AuLock_IR); + perm = au_optstr_br_perm(br->br_perm); + if (perm) { + err = seq_printf(seq, "=%s\n", perm); + kfree(perm); + if (err == -1) + err = -E2BIG; + } else + err = -ENOMEM; + return err; +} + +/* ---------------------------------------------------------------------- */ + +static struct seq_file *au_seq(char *p, ssize_t len) +{ + struct seq_file *seq; + + seq = kzalloc(sizeof(*seq), GFP_NOFS); + if (seq) { + /* mutex_init(&seq.lock); */ + seq->buf = p; + seq->size = len; + return seq; /* success */ + } + + seq = ERR_PTR(-ENOMEM); + return seq; +} + +#define SysaufsBr_PREFIX "br" + +/* todo: file size may exceed PAGE_SIZE */ +ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr, + char *buf) +{ + ssize_t err; + long l; + aufs_bindex_t bend; + struct au_sbinfo *sbinfo; + struct super_block *sb; + struct seq_file *seq; + char *name; + struct attribute **cattr; + + sbinfo = container_of(kobj, struct au_sbinfo, si_kobj); + sb = sbinfo->si_sb; + + /* + * prevent a race condition between sysfs and aufs. + * for instance, sysfs_file_read() calls sysfs_get_active_two() which + * prohibits maintaining the sysfs entries. + * hew we acquire read lock after sysfs_get_active_two(). + * on the other hand, the remount process may maintain the sysfs/aufs + * entries after acquiring write lock. + * it can cause a deadlock. + * simply we gave up processing read here. + */ + err = -EBUSY; + if (unlikely(!si_noflush_read_trylock(sb))) + goto out; + + seq = au_seq(buf, PAGE_SIZE); + err = PTR_ERR(seq); + if (IS_ERR(seq)) + goto out_unlock; + + name = (void *)attr->name; + cattr = sysaufs_si_attrs; + while (*cattr) { + if (!strcmp(name, (*cattr)->name)) { + err = container_of(*cattr, struct sysaufs_si_attr, attr) + ->show(seq, sb); + goto out_seq; + } + cattr++; + } + + bend = au_sbend(sb); + if (!strncmp(name, SysaufsBr_PREFIX, sizeof(SysaufsBr_PREFIX) - 1)) { + name += sizeof(SysaufsBr_PREFIX) - 1; + err = kstrtol(name, 10, &l); + if (!err) { + if (l <= bend) + err = sysaufs_si_br(seq, sb, (aufs_bindex_t)l); + else + err = -ENOENT; + } + goto out_seq; + } + BUG(); + +out_seq: + if (!err) { + err = seq->count; + /* sysfs limit */ + if (unlikely(err == PAGE_SIZE)) + err = -EFBIG; + } + kfree(seq); +out_unlock: + si_read_unlock(sb); +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +void sysaufs_br_init(struct au_branch *br) +{ + struct attribute *attr = &br->br_attr; + + sysfs_attr_init(attr); + attr->name = br->br_name; + attr->mode = S_IRUGO; +} + +void sysaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex) +{ + struct au_branch *br; + struct kobject *kobj; + aufs_bindex_t bend; + + dbgaufs_brs_del(sb, bindex); + + if (!sysaufs_brs) + return; + + kobj = &au_sbi(sb)->si_kobj; + bend = au_sbend(sb); + for (; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + sysfs_remove_file(kobj, &br->br_attr); + } +} + +void sysaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex) +{ + int err; + aufs_bindex_t bend; + struct kobject *kobj; + struct au_branch *br; + + dbgaufs_brs_add(sb, bindex); + + if (!sysaufs_brs) + return; + + kobj = &au_sbi(sb)->si_kobj; + bend = au_sbend(sb); + for (; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + snprintf(br->br_name, sizeof(br->br_name), SysaufsBr_PREFIX + "%d", bindex); + err = sysfs_create_file(kobj, &br->br_attr); + if (unlikely(err)) + pr_warning("failed %s under sysfs(%d)\n", + br->br_name, err); + } +} --- linux-3.2.0.orig/ubuntu/aufs/wkq.h +++ linux-3.2.0/ubuntu/aufs/wkq.h @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * workqueue for asynchronous/super-io operations + * todo: try new credentials management scheme + */ + +#ifndef __AUFS_WKQ_H__ +#define __AUFS_WKQ_H__ + +#ifdef __KERNEL__ + +struct super_block; + +/* ---------------------------------------------------------------------- */ + +/* + * in the next operation, wait for the 'nowait' tasks in system-wide workqueue + */ +struct au_nowait_tasks { + atomic_t nw_len; + wait_queue_head_t nw_wq; +}; + +/* ---------------------------------------------------------------------- */ + +typedef void (*au_wkq_func_t)(void *args); + +/* wkq flags */ +#define AuWkq_WAIT 1 +#define AuWkq_NEST (1 << 1) +#define au_ftest_wkq(flags, name) ((flags) & AuWkq_##name) +#define au_fset_wkq(flags, name) \ + do { (flags) |= AuWkq_##name; } while (0) +#define au_fclr_wkq(flags, name) \ + do { (flags) &= ~AuWkq_##name; } while (0) + +#ifndef CONFIG_AUFS_HNOTIFY +#undef AuWkq_NEST +#define AuWkq_NEST 0 +#endif + +/* wkq.c */ +int au_wkq_do_wait(unsigned int flags, au_wkq_func_t func, void *args); +int au_wkq_nowait(au_wkq_func_t func, void *args, struct super_block *sb, + unsigned int flags); +void au_nwt_init(struct au_nowait_tasks *nwt); +int __init au_wkq_init(void); +void au_wkq_fin(void); + +/* ---------------------------------------------------------------------- */ + +static inline int au_wkq_test(void) +{ + return current->flags & PF_WQ_WORKER; +} + +static inline int au_wkq_wait(au_wkq_func_t func, void *args) +{ + return au_wkq_do_wait(AuWkq_WAIT, func, args); +} + +static inline void au_nwt_done(struct au_nowait_tasks *nwt) +{ + if (atomic_dec_and_test(&nwt->nw_len)) + wake_up_all(&nwt->nw_wq); +} + +static inline int au_nwt_flush(struct au_nowait_tasks *nwt) +{ + wait_event(nwt->nw_wq, !atomic_read(&nwt->nw_len)); + return 0; +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_WKQ_H__ */ --- linux-3.2.0.orig/ubuntu/aufs/branch.c +++ linux-3.2.0/ubuntu/aufs/branch.c @@ -0,0 +1,1169 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * branch management + */ + +#include +#include +#include "aufs.h" + +/* + * free a single branch + */ +static void au_br_do_free(struct au_branch *br) +{ + int i; + struct au_wbr *wbr; + struct au_dykey **key; + + au_hnotify_fin_br(br); + + if (br->br_xino.xi_file) + fput(br->br_xino.xi_file); + mutex_destroy(&br->br_xino.xi_nondir_mtx); + + AuDebugOn(atomic_read(&br->br_count)); + + wbr = br->br_wbr; + if (wbr) { + for (i = 0; i < AuBrWh_Last; i++) + dput(wbr->wbr_wh[i]); + AuDebugOn(atomic_read(&wbr->wbr_wh_running)); + AuRwDestroy(&wbr->wbr_wh_rwsem); + } + + key = br->br_dykey; + for (i = 0; i < AuBrDynOp; i++, key++) + if (*key) + au_dy_put(*key); + else + break; + + mntput(br->br_mnt); + kfree(wbr); + kfree(br); +} + +/* + * frees all branches + */ +void au_br_free(struct au_sbinfo *sbinfo) +{ + aufs_bindex_t bmax; + struct au_branch **br; + + AuRwMustWriteLock(&sbinfo->si_rwsem); + + bmax = sbinfo->si_bend + 1; + br = sbinfo->si_branch; + while (bmax--) + au_br_do_free(*br++); +} + +/* + * find the index of a branch which is specified by @br_id. + */ +int au_br_index(struct super_block *sb, aufs_bindex_t br_id) +{ + aufs_bindex_t bindex, bend; + + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) + if (au_sbr_id(sb, bindex) == br_id) + return bindex; + return -1; +} + +/* ---------------------------------------------------------------------- */ + +/* + * add a branch + */ + +static int test_overlap(struct super_block *sb, struct dentry *h_adding, + struct dentry *h_root) +{ + if (unlikely(h_adding == h_root + || au_test_loopback_overlap(sb, h_adding))) + return 1; + if (h_adding->d_sb != h_root->d_sb) + return 0; + return au_test_subdir(h_adding, h_root) + || au_test_subdir(h_root, h_adding); +} + +/* + * returns a newly allocated branch. @new_nbranch is a number of branches + * after adding a branch. + */ +static struct au_branch *au_br_alloc(struct super_block *sb, int new_nbranch, + int perm) +{ + struct au_branch *add_branch; + struct dentry *root; + int err; + + err = -ENOMEM; + root = sb->s_root; + add_branch = kmalloc(sizeof(*add_branch), GFP_NOFS); + if (unlikely(!add_branch)) + goto out; + + err = au_hnotify_init_br(add_branch, perm); + if (unlikely(err)) + goto out_br; + + add_branch->br_wbr = NULL; + if (au_br_writable(perm)) { + /* may be freed separately at changing the branch permission */ + add_branch->br_wbr = kmalloc(sizeof(*add_branch->br_wbr), + GFP_NOFS); + if (unlikely(!add_branch->br_wbr)) + goto out_hnotify; + } + + err = au_sbr_realloc(au_sbi(sb), new_nbranch); + if (!err) + err = au_di_realloc(au_di(root), new_nbranch); + if (!err) + err = au_ii_realloc(au_ii(root->d_inode), new_nbranch); + if (!err) + return add_branch; /* success */ + + kfree(add_branch->br_wbr); + +out_hnotify: + au_hnotify_fin_br(add_branch); +out_br: + kfree(add_branch); +out: + return ERR_PTR(err); +} + +/* + * test if the branch permission is legal or not. + */ +static int test_br(struct inode *inode, int brperm, char *path) +{ + int err; + + err = (au_br_writable(brperm) && IS_RDONLY(inode)); + if (!err) + goto out; + + err = -EINVAL; + pr_err("write permission for readonly mount or inode, %s\n", path); + +out: + return err; +} + +/* + * returns: + * 0: success, the caller will add it + * plus: success, it is already unified, the caller should ignore it + * minus: error + */ +static int test_add(struct super_block *sb, struct au_opt_add *add, int remount) +{ + int err; + aufs_bindex_t bend, bindex; + struct dentry *root; + struct inode *inode, *h_inode; + + root = sb->s_root; + bend = au_sbend(sb); + if (unlikely(bend >= 0 + && au_find_dbindex(root, add->path.dentry) >= 0)) { + err = 1; + if (!remount) { + err = -EINVAL; + pr_err("%s duplicated\n", add->pathname); + } + goto out; + } + + err = -ENOSPC; /* -E2BIG; */ + if (unlikely(AUFS_BRANCH_MAX <= add->bindex + || AUFS_BRANCH_MAX - 1 <= bend)) { + pr_err("number of branches exceeded %s\n", add->pathname); + goto out; + } + + err = -EDOM; + if (unlikely(add->bindex < 0 || bend + 1 < add->bindex)) { + pr_err("bad index %d\n", add->bindex); + goto out; + } + + inode = add->path.dentry->d_inode; + err = -ENOENT; + if (unlikely(!inode->i_nlink)) { + pr_err("no existence %s\n", add->pathname); + goto out; + } + + err = -EINVAL; + if (unlikely(inode->i_sb == sb)) { + pr_err("%s must be outside\n", add->pathname); + goto out; + } + + if (unlikely(au_test_fs_unsuppoted(inode->i_sb))) { + pr_err("unsupported filesystem, %s (%s)\n", + add->pathname, au_sbtype(inode->i_sb)); + goto out; + } + + err = test_br(add->path.dentry->d_inode, add->perm, add->pathname); + if (unlikely(err)) + goto out; + + if (bend < 0) + return 0; /* success */ + + err = -EINVAL; + for (bindex = 0; bindex <= bend; bindex++) + if (unlikely(test_overlap(sb, add->path.dentry, + au_h_dptr(root, bindex)))) { + pr_err("%s is overlapped\n", add->pathname); + goto out; + } + + err = 0; + if (au_opt_test(au_mntflags(sb), WARN_PERM)) { + h_inode = au_h_dptr(root, 0)->d_inode; + if ((h_inode->i_mode & S_IALLUGO) != (inode->i_mode & S_IALLUGO) + || h_inode->i_uid != inode->i_uid + || h_inode->i_gid != inode->i_gid) + pr_warning("uid/gid/perm %s %u/%u/0%o, %u/%u/0%o\n", + add->pathname, + inode->i_uid, inode->i_gid, + (inode->i_mode & S_IALLUGO), + h_inode->i_uid, h_inode->i_gid, + (h_inode->i_mode & S_IALLUGO)); + } + +out: + return err; +} + +/* + * initialize or clean the whiteouts for an adding branch + */ +static int au_br_init_wh(struct super_block *sb, struct au_branch *br, + int new_perm, struct dentry *h_root) +{ + int err, old_perm; + aufs_bindex_t bindex; + struct mutex *h_mtx; + struct au_wbr *wbr; + struct au_hinode *hdir; + + wbr = br->br_wbr; + old_perm = br->br_perm; + br->br_perm = new_perm; + hdir = NULL; + h_mtx = NULL; + bindex = au_br_index(sb, br->br_id); + if (0 <= bindex) { + hdir = au_hi(sb->s_root->d_inode, bindex); + au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT); + } else { + h_mtx = &h_root->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_PARENT); + } + if (!wbr) + err = au_wh_init(h_root, br, sb); + else { + wbr_wh_write_lock(wbr); + err = au_wh_init(h_root, br, sb); + wbr_wh_write_unlock(wbr); + } + if (hdir) + au_hn_imtx_unlock(hdir); + else + mutex_unlock(h_mtx); + br->br_perm = old_perm; + + if (!err && wbr && !au_br_writable(new_perm)) { + kfree(wbr); + br->br_wbr = NULL; + } + + return err; +} + +static int au_wbr_init(struct au_branch *br, struct super_block *sb, + int perm, struct path *path) +{ + int err; + struct kstatfs kst; + struct au_wbr *wbr; + struct dentry *h_dentry; + + wbr = br->br_wbr; + au_rw_init(&wbr->wbr_wh_rwsem); + memset(wbr->wbr_wh, 0, sizeof(wbr->wbr_wh)); + atomic_set(&wbr->wbr_wh_running, 0); + wbr->wbr_bytes = 0; + + /* + * a limit for rmdir/rename a dir + * cf. AUFS_MAX_NAMELEN in include/linux/aufs_type.h + */ + err = vfs_statfs(path, &kst); + if (unlikely(err)) + goto out; + err = -EINVAL; + h_dentry = path->dentry; + if (kst.f_namelen >= NAME_MAX) + err = au_br_init_wh(sb, br, perm, h_dentry); + else + pr_err("%.*s(%s), unsupported namelen %ld\n", + AuDLNPair(h_dentry), au_sbtype(h_dentry->d_sb), + kst.f_namelen); + +out: + return err; +} + +/* intialize a new branch */ +static int au_br_init(struct au_branch *br, struct super_block *sb, + struct au_opt_add *add) +{ + int err; + + err = 0; + memset(&br->br_xino, 0, sizeof(br->br_xino)); + mutex_init(&br->br_xino.xi_nondir_mtx); + br->br_perm = add->perm; + br->br_mnt = add->path.mnt; /* set first, mntget() later */ + spin_lock_init(&br->br_dykey_lock); + memset(br->br_dykey, 0, sizeof(br->br_dykey)); + atomic_set(&br->br_count, 0); + br->br_xino_upper = AUFS_XINO_TRUNC_INIT; + atomic_set(&br->br_xino_running, 0); + br->br_id = au_new_br_id(sb); + AuDebugOn(br->br_id < 0); + + if (au_br_writable(add->perm)) { + err = au_wbr_init(br, sb, add->perm, &add->path); + if (unlikely(err)) + goto out_err; + } + + if (au_opt_test(au_mntflags(sb), XINO)) { + err = au_xino_br(sb, br, add->path.dentry->d_inode->i_ino, + au_sbr(sb, 0)->br_xino.xi_file, /*do_test*/1); + if (unlikely(err)) { + AuDebugOn(br->br_xino.xi_file); + goto out_err; + } + } + + sysaufs_br_init(br); + mntget(add->path.mnt); + goto out; /* success */ + +out_err: + br->br_mnt = NULL; +out: + return err; +} + +static void au_br_do_add_brp(struct au_sbinfo *sbinfo, aufs_bindex_t bindex, + struct au_branch *br, aufs_bindex_t bend, + aufs_bindex_t amount) +{ + struct au_branch **brp; + + AuRwMustWriteLock(&sbinfo->si_rwsem); + + brp = sbinfo->si_branch + bindex; + memmove(brp + 1, brp, sizeof(*brp) * amount); + *brp = br; + sbinfo->si_bend++; + if (unlikely(bend < 0)) + sbinfo->si_bend = 0; +} + +static void au_br_do_add_hdp(struct au_dinfo *dinfo, aufs_bindex_t bindex, + aufs_bindex_t bend, aufs_bindex_t amount) +{ + struct au_hdentry *hdp; + + AuRwMustWriteLock(&dinfo->di_rwsem); + + hdp = dinfo->di_hdentry + bindex; + memmove(hdp + 1, hdp, sizeof(*hdp) * amount); + au_h_dentry_init(hdp); + dinfo->di_bend++; + if (unlikely(bend < 0)) + dinfo->di_bstart = 0; +} + +static void au_br_do_add_hip(struct au_iinfo *iinfo, aufs_bindex_t bindex, + aufs_bindex_t bend, aufs_bindex_t amount) +{ + struct au_hinode *hip; + + AuRwMustWriteLock(&iinfo->ii_rwsem); + + hip = iinfo->ii_hinode + bindex; + memmove(hip + 1, hip, sizeof(*hip) * amount); + hip->hi_inode = NULL; + au_hn_init(hip); + iinfo->ii_bend++; + if (unlikely(bend < 0)) + iinfo->ii_bstart = 0; +} + +static void au_br_do_add(struct super_block *sb, struct dentry *h_dentry, + struct au_branch *br, aufs_bindex_t bindex) +{ + struct dentry *root; + struct inode *root_inode; + aufs_bindex_t bend, amount; + + root = sb->s_root; + root_inode = root->d_inode; + bend = au_sbend(sb); + amount = bend + 1 - bindex; + au_sbilist_lock(); + au_br_do_add_brp(au_sbi(sb), bindex, br, bend, amount); + au_br_do_add_hdp(au_di(root), bindex, bend, amount); + au_br_do_add_hip(au_ii(root_inode), bindex, bend, amount); + au_set_h_dptr(root, bindex, dget(h_dentry)); + au_set_h_iptr(root_inode, bindex, au_igrab(h_dentry->d_inode), + /*flags*/0); + au_sbilist_unlock(); +} + +int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount) +{ + int err; + aufs_bindex_t bend, add_bindex; + struct dentry *root, *h_dentry; + struct inode *root_inode; + struct au_branch *add_branch; + + root = sb->s_root; + root_inode = root->d_inode; + IMustLock(root_inode); + err = test_add(sb, add, remount); + if (unlikely(err < 0)) + goto out; + if (err) { + err = 0; + goto out; /* success */ + } + + bend = au_sbend(sb); + add_branch = au_br_alloc(sb, bend + 2, add->perm); + err = PTR_ERR(add_branch); + if (IS_ERR(add_branch)) + goto out; + + err = au_br_init(add_branch, sb, add); + if (unlikely(err)) { + au_br_do_free(add_branch); + goto out; + } + + add_bindex = add->bindex; + h_dentry = add->path.dentry; + if (!remount) + au_br_do_add(sb, h_dentry, add_branch, add_bindex); + else { + sysaufs_brs_del(sb, add_bindex); + au_br_do_add(sb, h_dentry, add_branch, add_bindex); + sysaufs_brs_add(sb, add_bindex); + } + + if (!add_bindex) { + au_cpup_attr_all(root_inode, /*force*/1); + sb->s_maxbytes = h_dentry->d_sb->s_maxbytes; + } else + au_add_nlink(root_inode, h_dentry->d_inode); + + /* + * this test/set prevents aufs from handling unnecesary notify events + * of xino files, in case of re-adding a writable branch which was + * once detached from aufs. + */ + if (au_xino_brid(sb) < 0 + && au_br_writable(add_branch->br_perm) + && !au_test_fs_bad_xino(h_dentry->d_sb) + && add_branch->br_xino.xi_file + && add_branch->br_xino.xi_file->f_dentry->d_parent == h_dentry) + au_xino_brid_set(sb, add_branch->br_id); + +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * delete a branch + */ + +/* to show the line number, do not make it inlined function */ +#define AuVerbose(do_info, fmt, ...) do { \ + if (do_info) \ + pr_info(fmt, ##__VA_ARGS__); \ +} while (0) + +static int au_test_ibusy(struct inode *inode, aufs_bindex_t bstart, + aufs_bindex_t bend) +{ + return (inode && !S_ISDIR(inode->i_mode)) || bstart == bend; +} + +static int au_test_dbusy(struct dentry *dentry, aufs_bindex_t bstart, + aufs_bindex_t bend) +{ + return au_test_ibusy(dentry->d_inode, bstart, bend); +} + +/* + * test if the branch is deletable or not. + */ +static int test_dentry_busy(struct dentry *root, aufs_bindex_t bindex, + unsigned int sigen, const unsigned int verbose) +{ + int err, i, j, ndentry; + aufs_bindex_t bstart, bend; + struct au_dcsub_pages dpages; + struct au_dpage *dpage; + struct dentry *d; + + err = au_dpages_init(&dpages, GFP_NOFS); + if (unlikely(err)) + goto out; + err = au_dcsub_pages(&dpages, root, NULL, NULL); + if (unlikely(err)) + goto out_dpages; + + for (i = 0; !err && i < dpages.ndpage; i++) { + dpage = dpages.dpages + i; + ndentry = dpage->ndentry; + for (j = 0; !err && j < ndentry; j++) { + d = dpage->dentries[j]; + AuDebugOn(!d->d_count); + if (!au_digen_test(d, sigen)) { + di_read_lock_child(d, AuLock_IR); + if (unlikely(au_dbrange_test(d))) { + di_read_unlock(d, AuLock_IR); + continue; + } + } else { + di_write_lock_child(d); + if (unlikely(au_dbrange_test(d))) { + di_write_unlock(d); + continue; + } + err = au_reval_dpath(d, sigen); + if (!err) + di_downgrade_lock(d, AuLock_IR); + else { + di_write_unlock(d); + break; + } + } + + /* AuDbgDentry(d); */ + bstart = au_dbstart(d); + bend = au_dbend(d); + if (bstart <= bindex + && bindex <= bend + && au_h_dptr(d, bindex) + && au_test_dbusy(d, bstart, bend)) { + err = -EBUSY; + AuVerbose(verbose, "busy %.*s\n", AuDLNPair(d)); + AuDbgDentry(d); + } + di_read_unlock(d, AuLock_IR); + } + } + +out_dpages: + au_dpages_free(&dpages); +out: + return err; +} + +static int test_inode_busy(struct super_block *sb, aufs_bindex_t bindex, + unsigned int sigen, const unsigned int verbose) +{ + int err; + unsigned long long max, ull; + struct inode *i, **array; + aufs_bindex_t bstart, bend; + + array = au_iarray_alloc(sb, &max); + err = PTR_ERR(array); + if (IS_ERR(array)) + goto out; + + err = 0; + AuDbg("b%d\n", bindex); + for (ull = 0; !err && ull < max; ull++) { + i = array[ull]; + if (i->i_ino == AUFS_ROOT_INO) + continue; + + /* AuDbgInode(i); */ + if (au_iigen(i) == sigen) + ii_read_lock_child(i); + else { + ii_write_lock_child(i); + err = au_refresh_hinode_self(i); + au_iigen_dec(i); + if (!err) + ii_downgrade_lock(i); + else { + ii_write_unlock(i); + break; + } + } + + bstart = au_ibstart(i); + bend = au_ibend(i); + if (bstart <= bindex + && bindex <= bend + && au_h_iptr(i, bindex) + && au_test_ibusy(i, bstart, bend)) { + err = -EBUSY; + AuVerbose(verbose, "busy i%lu\n", i->i_ino); + AuDbgInode(i); + } + ii_read_unlock(i); + } + au_iarray_free(array, max); + +out: + return err; +} + +static int test_children_busy(struct dentry *root, aufs_bindex_t bindex, + const unsigned int verbose) +{ + int err; + unsigned int sigen; + + sigen = au_sigen(root->d_sb); + DiMustNoWaiters(root); + IiMustNoWaiters(root->d_inode); + di_write_unlock(root); + err = test_dentry_busy(root, bindex, sigen, verbose); + if (!err) + err = test_inode_busy(root->d_sb, bindex, sigen, verbose); + di_write_lock_child(root); /* aufs_write_lock() calls ..._child() */ + + return err; +} + +static void au_br_do_del_brp(struct au_sbinfo *sbinfo, + const aufs_bindex_t bindex, + const aufs_bindex_t bend) +{ + struct au_branch **brp, **p; + + AuRwMustWriteLock(&sbinfo->si_rwsem); + + brp = sbinfo->si_branch + bindex; + if (bindex < bend) + memmove(brp, brp + 1, sizeof(*brp) * (bend - bindex)); + sbinfo->si_branch[0 + bend] = NULL; + sbinfo->si_bend--; + + p = krealloc(sbinfo->si_branch, sizeof(*p) * bend, AuGFP_SBILIST); + if (p) + sbinfo->si_branch = p; + /* harmless error */ +} + +static void au_br_do_del_hdp(struct au_dinfo *dinfo, const aufs_bindex_t bindex, + const aufs_bindex_t bend) +{ + struct au_hdentry *hdp, *p; + + AuRwMustWriteLock(&dinfo->di_rwsem); + + hdp = dinfo->di_hdentry; + if (bindex < bend) + memmove(hdp + bindex, hdp + bindex + 1, + sizeof(*hdp) * (bend - bindex)); + hdp[0 + bend].hd_dentry = NULL; + dinfo->di_bend--; + + p = krealloc(hdp, sizeof(*p) * bend, AuGFP_SBILIST); + if (p) + dinfo->di_hdentry = p; + /* harmless error */ +} + +static void au_br_do_del_hip(struct au_iinfo *iinfo, const aufs_bindex_t bindex, + const aufs_bindex_t bend) +{ + struct au_hinode *hip, *p; + + AuRwMustWriteLock(&iinfo->ii_rwsem); + + hip = iinfo->ii_hinode + bindex; + if (bindex < bend) + memmove(hip, hip + 1, sizeof(*hip) * (bend - bindex)); + iinfo->ii_hinode[0 + bend].hi_inode = NULL; + au_hn_init(iinfo->ii_hinode + bend); + iinfo->ii_bend--; + + p = krealloc(iinfo->ii_hinode, sizeof(*p) * bend, AuGFP_SBILIST); + if (p) + iinfo->ii_hinode = p; + /* harmless error */ +} + +static void au_br_do_del(struct super_block *sb, aufs_bindex_t bindex, + struct au_branch *br) +{ + aufs_bindex_t bend; + struct au_sbinfo *sbinfo; + struct dentry *root, *h_root; + struct inode *inode, *h_inode; + struct au_hinode *hinode; + + SiMustWriteLock(sb); + + root = sb->s_root; + inode = root->d_inode; + sbinfo = au_sbi(sb); + bend = sbinfo->si_bend; + + h_root = au_h_dptr(root, bindex); + hinode = au_hi(inode, bindex); + h_inode = au_igrab(hinode->hi_inode); + au_hiput(hinode); + + au_sbilist_lock(); + au_br_do_del_brp(sbinfo, bindex, bend); + au_br_do_del_hdp(au_di(root), bindex, bend); + au_br_do_del_hip(au_ii(inode), bindex, bend); + au_sbilist_unlock(); + + dput(h_root); + iput(h_inode); + au_br_do_free(br); +} + +int au_br_del(struct super_block *sb, struct au_opt_del *del, int remount) +{ + int err, rerr, i; + unsigned int mnt_flags; + aufs_bindex_t bindex, bend, br_id; + unsigned char do_wh, verbose; + struct au_branch *br; + struct au_wbr *wbr; + + err = 0; + bindex = au_find_dbindex(sb->s_root, del->h_path.dentry); + if (bindex < 0) { + if (remount) + goto out; /* success */ + err = -ENOENT; + pr_err("%s no such branch\n", del->pathname); + goto out; + } + AuDbg("bindex b%d\n", bindex); + + err = -EBUSY; + mnt_flags = au_mntflags(sb); + verbose = !!au_opt_test(mnt_flags, VERBOSE); + bend = au_sbend(sb); + if (unlikely(!bend)) { + AuVerbose(verbose, "no more branches left\n"); + goto out; + } + br = au_sbr(sb, bindex); + i = atomic_read(&br->br_count); + if (unlikely(i)) { + AuVerbose(verbose, "%d file(s) opened\n", i); + goto out; + } + + wbr = br->br_wbr; + do_wh = wbr && (wbr->wbr_whbase || wbr->wbr_plink || wbr->wbr_orph); + if (do_wh) { + /* instead of WbrWhMustWriteLock(wbr) */ + SiMustWriteLock(sb); + for (i = 0; i < AuBrWh_Last; i++) { + dput(wbr->wbr_wh[i]); + wbr->wbr_wh[i] = NULL; + } + } + + err = test_children_busy(sb->s_root, bindex, verbose); + if (unlikely(err)) { + if (do_wh) + goto out_wh; + goto out; + } + + err = 0; + br_id = br->br_id; + if (!remount) + au_br_do_del(sb, bindex, br); + else { + sysaufs_brs_del(sb, bindex); + au_br_do_del(sb, bindex, br); + sysaufs_brs_add(sb, bindex); + } + + if (!bindex) { + au_cpup_attr_all(sb->s_root->d_inode, /*force*/1); + sb->s_maxbytes = au_sbr_sb(sb, 0)->s_maxbytes; + } else + au_sub_nlink(sb->s_root->d_inode, del->h_path.dentry->d_inode); + if (au_opt_test(mnt_flags, PLINK)) + au_plink_half_refresh(sb, br_id); + + if (au_xino_brid(sb) == br_id) + au_xino_brid_set(sb, -1); + goto out; /* success */ + +out_wh: + /* revert */ + rerr = au_br_init_wh(sb, br, br->br_perm, del->h_path.dentry); + if (rerr) + pr_warning("failed re-creating base whiteout, %s. (%d)\n", + del->pathname, rerr); +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_ibusy(struct super_block *sb, struct aufs_ibusy __user *arg) +{ + int err; + aufs_bindex_t bstart, bend; + struct aufs_ibusy ibusy; + struct inode *inode, *h_inode; + + err = -EPERM; + if (unlikely(!capable(CAP_SYS_ADMIN))) + goto out; + + err = copy_from_user(&ibusy, arg, sizeof(ibusy)); + if (!err) + err = !access_ok(VERIFY_WRITE, &arg->h_ino, sizeof(arg->h_ino)); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + goto out; + } + + err = -EINVAL; + si_read_lock(sb, AuLock_FLUSH); + if (unlikely(ibusy.bindex < 0 || ibusy.bindex > au_sbend(sb))) + goto out_unlock; + + err = 0; + ibusy.h_ino = 0; /* invalid */ + inode = ilookup(sb, ibusy.ino); + if (!inode + || inode->i_ino == AUFS_ROOT_INO + || is_bad_inode(inode)) + goto out_unlock; + + ii_read_lock_child(inode); + bstart = au_ibstart(inode); + bend = au_ibend(inode); + if (bstart <= ibusy.bindex && ibusy.bindex <= bend) { + h_inode = au_h_iptr(inode, ibusy.bindex); + if (h_inode && au_test_ibusy(inode, bstart, bend)) + ibusy.h_ino = h_inode->i_ino; + } + ii_read_unlock(inode); + iput(inode); + +out_unlock: + si_read_unlock(sb); + if (!err) { + err = __put_user(ibusy.h_ino, &arg->h_ino); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + } + } +out: + return err; +} + +long au_ibusy_ioctl(struct file *file, unsigned long arg) +{ + return au_ibusy(file->f_dentry->d_sb, (void __user *)arg); +} + +#ifdef CONFIG_COMPAT +long au_ibusy_compat_ioctl(struct file *file, unsigned long arg) +{ + return au_ibusy(file->f_dentry->d_sb, compat_ptr(arg)); +} +#endif + +/* ---------------------------------------------------------------------- */ + +/* + * change a branch permission + */ + +static void au_warn_ima(void) +{ +#ifdef CONFIG_IMA + /* since it doesn't support mark_files_ro() */ + AuWarn1("RW -> RO makes IMA to produce wrong message\n"); +#endif +} + +static int do_need_sigen_inc(int a, int b) +{ + return au_br_whable(a) && !au_br_whable(b); +} + +static int need_sigen_inc(int old, int new) +{ + return do_need_sigen_inc(old, new) + || do_need_sigen_inc(new, old); +} + +static unsigned long long au_farray_cb(void *a, + unsigned long long max __maybe_unused, + void *arg) +{ + unsigned long long n; + struct file **p, *f; + struct super_block *sb = arg; + + n = 0; + p = a; + lg_global_lock(files_lglock); + do_file_list_for_each_entry(sb, f) { + if (au_fi(f) + && file_count(f) + && !special_file(f->f_dentry->d_inode->i_mode)) { + get_file(f); + *p++ = f; + n++; + AuDebugOn(n > max); + } + } while_file_list_for_each_entry; + lg_global_unlock(files_lglock); + + return n; +} + +static struct file **au_farray_alloc(struct super_block *sb, + unsigned long long *max) +{ + *max = atomic_long_read(&au_sbi(sb)->si_nfiles); + return au_array_alloc(max, au_farray_cb, sb); +} + +static void au_farray_free(struct file **a, unsigned long long max) +{ + unsigned long long ull; + + for (ull = 0; ull < max; ull++) + if (a[ull]) + fput(a[ull]); + au_array_free(a); +} + +static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex) +{ + int err, do_warn; + unsigned int mnt_flags; + unsigned long long ull, max; + aufs_bindex_t br_id; + unsigned char verbose; + struct file *file, *hf, **array; + struct inode *inode; + struct au_hfile *hfile; + + mnt_flags = au_mntflags(sb); + verbose = !!au_opt_test(mnt_flags, VERBOSE); + + array = au_farray_alloc(sb, &max); + err = PTR_ERR(array); + if (IS_ERR(array)) + goto out; + + do_warn = 0; + br_id = au_sbr_id(sb, bindex); + for (ull = 0; ull < max; ull++) { + file = array[ull]; + + /* AuDbg("%.*s\n", AuDLNPair(file->f_dentry)); */ + fi_read_lock(file); + if (unlikely(au_test_mmapped(file))) { + err = -EBUSY; + AuVerbose(verbose, "mmapped %.*s\n", + AuDLNPair(file->f_dentry)); + AuDbgFile(file); + FiMustNoWaiters(file); + fi_read_unlock(file); + goto out_array; + } + + inode = file->f_dentry->d_inode; + hfile = &au_fi(file)->fi_htop; + hf = hfile->hf_file; + if (!S_ISREG(inode->i_mode) + || !(file->f_mode & FMODE_WRITE) + || hfile->hf_br->br_id != br_id + || !(hf->f_mode & FMODE_WRITE)) + array[ull] = NULL; + else { + do_warn = 1; + get_file(file); + } + + FiMustNoWaiters(file); + fi_read_unlock(file); + fput(file); + } + + err = 0; + if (do_warn) + au_warn_ima(); + + for (ull = 0; ull < max; ull++) { + file = array[ull]; + if (!file) + continue; + + /* todo: already flushed? */ + /* cf. fs/super.c:mark_files_ro() */ + /* fi_read_lock(file); */ + hfile = &au_fi(file)->fi_htop; + hf = hfile->hf_file; + /* fi_read_unlock(file); */ + spin_lock(&hf->f_lock); + hf->f_mode &= ~FMODE_WRITE; + spin_unlock(&hf->f_lock); + if (!file_check_writeable(hf)) { + file_release_write(hf); + mnt_drop_write(hf->f_vfsmnt); + } + } + +out_array: + au_farray_free(array, max); +out: + AuTraceErr(err); + return err; +} + +int au_br_mod(struct super_block *sb, struct au_opt_mod *mod, int remount, + int *do_refresh) +{ + int err, rerr; + aufs_bindex_t bindex; + struct path path; + struct dentry *root; + struct au_branch *br; + + root = sb->s_root; + bindex = au_find_dbindex(root, mod->h_root); + if (bindex < 0) { + if (remount) + return 0; /* success */ + err = -ENOENT; + pr_err("%s no such branch\n", mod->path); + goto out; + } + AuDbg("bindex b%d\n", bindex); + + err = test_br(mod->h_root->d_inode, mod->perm, mod->path); + if (unlikely(err)) + goto out; + + br = au_sbr(sb, bindex); + if (br->br_perm == mod->perm) + return 0; /* success */ + + if (au_br_writable(br->br_perm)) { + /* remove whiteout base */ + err = au_br_init_wh(sb, br, mod->perm, mod->h_root); + if (unlikely(err)) + goto out; + + if (!au_br_writable(mod->perm)) { + /* rw --> ro, file might be mmapped */ + DiMustNoWaiters(root); + IiMustNoWaiters(root->d_inode); + di_write_unlock(root); + err = au_br_mod_files_ro(sb, bindex); + /* aufs_write_lock() calls ..._child() */ + di_write_lock_child(root); + + if (unlikely(err)) { + rerr = -ENOMEM; + br->br_wbr = kmalloc(sizeof(*br->br_wbr), + GFP_NOFS); + if (br->br_wbr) { + path.mnt = br->br_mnt; + path.dentry = mod->h_root; + rerr = au_wbr_init(br, sb, br->br_perm, + &path); + } + if (unlikely(rerr)) { + AuIOErr("nested error %d (%d)\n", + rerr, err); + br->br_perm = mod->perm; + } + } + } + } else if (au_br_writable(mod->perm)) { + /* ro --> rw */ + err = -ENOMEM; + br->br_wbr = kmalloc(sizeof(*br->br_wbr), GFP_NOFS); + if (br->br_wbr) { + path.mnt = br->br_mnt; + path.dentry = mod->h_root; + err = au_wbr_init(br, sb, mod->perm, &path); + if (unlikely(err)) { + kfree(br->br_wbr); + br->br_wbr = NULL; + } + } + } + + if (!err) { + *do_refresh |= need_sigen_inc(br->br_perm, mod->perm); + br->br_perm = mod->perm; + } + +out: + AuTraceErr(err); + return err; +} --- linux-3.2.0.orig/ubuntu/rfkill/Kconfig +++ linux-3.2.0/ubuntu/rfkill/Kconfig @@ -0,0 +1,9 @@ +config AVERATEC_5100P + tristate "Software kill switch for Averatec 5100P" + depends on X86 + default m + +config PACKARDBELL_E5 + tristate "Software kill switch for Packard Bell EasyNote E5" + depends on X86 + default m --- linux-3.2.0.orig/ubuntu/rfkill/Makefile +++ linux-3.2.0/ubuntu/rfkill/Makefile @@ -0,0 +1,6 @@ +# +# Makefile for Ubuntu additional drivers +# + +obj-$(CONFIG_AVERATEC_5100P) += av5100.o +obj-$(CONFIG_PACKARDBELL_E5) += pbe5.o --- linux-3.2.0.orig/ubuntu/rfkill/av5100.c +++ linux-3.2.0/ubuntu/rfkill/av5100.c @@ -0,0 +1,174 @@ +/******************************************************************************* + + Copyright(c) 2003 - 2004 Intel Corporation. All rights reserved. + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + 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., 59 + Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + The full GNU General Public License is included in this distribution in the + file called LICENSE. + + Contact Information: + James P. Ketrenos + Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + +*******************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define DRV_NAME "av5100" +#define DRV_VERSION "1.3" +#define DRV_DESCRIPTION "SW RF kill switch for Averatec 5100P" +#define DRV_COPYRIGHT "Copyright(c) 2003-2004 Intel Corporation" + +static int radio = 1; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + +MODULE_PARM(radio, "i"); + +#else /* LINUX_VERSION_CODE < 2.6.0 */ + +#include +module_param(radio, int, 1); + +#endif /* LINUX_VERSION_CODE < 2.6.0 */ + +MODULE_PARM_DESC(radio, "controls state of radio (1=on, 0=off)"); + +MODULE_DESCRIPTION(DRV_DESCRIPTION); +MODULE_AUTHOR(DRV_COPYRIGHT); +MODULE_LICENSE("GPL"); + +#define AV5100_RADIO_ON (0xe0) +#define AV5100_RADIO_OFF (0xe1) + +static int av5100_radio = AV5100_RADIO_OFF; + +static void av5100_set_radio(int state) +{ + printk(KERN_INFO DRV_NAME ": Radio being turned %s\n", + (state == AV5100_RADIO_ON) ? "ON" : "OFF"); + outl(0x80020800, 0xcf8); + outb(0x6f, 0x0072); + outl(0x1800ffff, 0x1184); + outb(state, 0x00b2); + av5100_radio = state; +} + + +/* + * proc stuff + */ +static struct proc_dir_entry *dir_base = NULL; + +static int proc_set_radio(struct file *file, const char *buffer, + unsigned long count, void *data) +{ + av5100_set_radio(buffer[0] == '0' ? AV5100_RADIO_OFF : AV5100_RADIO_ON); + + return count; +} + +static int proc_get_radio(char *page, char **start, off_t offset, + int count, int *eof, void *data) +{ + int len = 0; + + len += snprintf(page, count, DRV_NAME ": %d\n", + av5100_radio == AV5100_RADIO_OFF ? 0 : 1); + + *eof = 1; + return len; +} + + +static void av5100_proc_cleanup(void) +{ + if (dir_base) { + remove_proc_entry("radio", dir_base); + remove_proc_entry(DRV_NAME, NULL); + dir_base = NULL; + } +} + + +static int av5100_proc_init(void) +{ + struct proc_dir_entry *ent; + int err = 0; + + dir_base = create_proc_entry(DRV_NAME, S_IFDIR, NULL); + if (dir_base == NULL) { + printk(KERN_ERR DRV_NAME ": Unable to initialise /proc/" + DRV_NAME "\n"); + err = -ENOMEM; + goto fail; + } + + + ent = create_proc_entry("radio", S_IFREG | S_IRUGO | S_IWUSR, + dir_base); + if (ent) { + ent->read_proc = proc_get_radio; + ent->write_proc = proc_set_radio; + } else { + printk(KERN_ERR + "Unable to initialize /proc/" DRV_NAME "/radio\n"); + err = -ENOMEM; + goto fail; + } + + return 0; + + fail: + av5100_proc_cleanup(); + return err; +} + +/* + * module stuff + */ +static int __init av5100_init(void) +{ + av5100_proc_init(); + + av5100_set_radio((radio == 1) ? AV5100_RADIO_ON : AV5100_RADIO_OFF); + + return 0; +} + +static void __exit av5100_exit(void) +{ + av5100_set_radio(AV5100_RADIO_OFF); + + av5100_proc_cleanup(); +} + +module_init(av5100_init); +module_exit(av5100_exit); + +/* + 1 2 3 4 5 6 7 +12345678901234567890123456789012345678901234567890123456789012345678901234567890 +*/ --- linux-3.2.0.orig/ubuntu/rfkill/BOM +++ linux-3.2.0/ubuntu/rfkill/BOM @@ -0,0 +1,6 @@ +Downloaded from: http://sourceforge.net/project/showfiles.php?group_id=108766 +Current Version: 1.3 +Comments: + +Had to change &proc_root to NULL due to changes in create/remove proc +entry usage. --- linux-3.2.0.orig/ubuntu/rfkill/pbe5.c +++ linux-3.2.0/ubuntu/rfkill/pbe5.c @@ -0,0 +1,205 @@ +/******************************************************************************* + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + 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., 59 + Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + The full GNU General Public License is included in this distribution in the + file called LICENSE. + + Author: + Pedro Ramalhais + + Based on: + av5100.c from http://ipw2100.sourceforge.net/ + +*******************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRV_NAME "pbe5" +#define DRV_VERSION "1.3" +#define DRV_DESCRIPTION "SW RF kill switch for Packard Bell EasyNote E5" +#define DRV_AUTHOR "Pedro Ramalhais" +#define DRV_LICENSE "GPL" + +static int radio = 1; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + +MODULE_PARM(radio, "i"); + +#else /* LINUX_VERSION_CODE < 2.6.0 */ + +#include +module_param(radio, int, 1); + +#endif /* LINUX_VERSION_CODE < 2.6.0 */ + +MODULE_PARM_DESC(radio, "controls state of radio (1=on, 0=off)"); + +MODULE_DESCRIPTION(DRV_DESCRIPTION); +MODULE_AUTHOR(DRV_AUTHOR); +MODULE_LICENSE(DRV_LICENSE); + +/* + * NOTE: These values were obtained from disassembling the Icon.exe program + * installed in the Packard Bell EasyNote E5 laptop. The names were guessed, + * so don't rely on them. + */ +#define PBE5_PORT_TOGGLE 0x0b3 +#define PBE5_VALUE_TOGGLE_ON 0x01 +#define PBE5_VALUE_TOGGLE_OFF 0x00 +#define PBE5_PORT_APPLY 0x0b2 +#define PBE5_VALUE_APPLY 0xef + +// Some "booleans" =;-) +#define PBE5_RADIO_OFF 0 +#define PBE5_RADIO_ON 1 + +static int pbe5_radio_status = PBE5_RADIO_ON; + +unsigned char pbe5_get_radio(void) +{ + unsigned char val = 0x00; + + val = inb(PBE5_PORT_TOGGLE); + + return val; +} + +static void pbe5_set_radio(int state_set) +{ + pbe5_radio_status = pbe5_get_radio(); + + if (pbe5_radio_status != state_set) { + // Set the radio toggle register + outb(PBE5_VALUE_TOGGLE_ON, PBE5_PORT_TOGGLE); + // Commit the radio toggle register value + outb(PBE5_VALUE_APPLY, PBE5_PORT_APPLY); + // Update the radio status + pbe5_radio_status = pbe5_get_radio(); + + printk(KERN_INFO DRV_NAME ": Radio turned %s\n", + (state_set == PBE5_RADIO_ON) ? "ON" : "OFF"); + } else { + printk(KERN_INFO DRV_NAME ": Radio already %s\n", + (state_set == PBE5_RADIO_ON) ? "ON" : "OFF"); + } +} + + +/* + * proc stuff + */ +static struct proc_dir_entry *dir_base = NULL; + +static int proc_set_radio(struct file *file, const char *buffer, + unsigned long count, void *data) +{ + pbe5_set_radio(buffer[0] == '0' ? PBE5_RADIO_OFF : PBE5_RADIO_ON); + + return count; +} + +static int proc_get_radio(char *page, char **start, off_t offset, + int count, int *eof, void *data) +{ + int len = 0; + + len += snprintf(page, count, DRV_NAME ": %d\n", + pbe5_radio_status == PBE5_RADIO_OFF ? 0 : 1); + + *eof = 1; + return len; +} + + +static void pbe5_proc_cleanup(void) +{ + if (dir_base) { + remove_proc_entry("radio", dir_base); + remove_proc_entry(DRV_NAME, NULL); + dir_base = NULL; + } +} + + +static int pbe5_proc_init(void) +{ + struct proc_dir_entry *ent; + int err = 0; + + dir_base = create_proc_entry(DRV_NAME, S_IFDIR, NULL); + if (dir_base == NULL) { + printk(KERN_ERR DRV_NAME ": Unable to initialise /proc/" + DRV_NAME "\n"); + err = -ENOMEM; + goto fail; + } + + + ent = create_proc_entry("radio", S_IFREG | S_IRUGO | S_IWUSR, + dir_base); + if (ent) { + ent->read_proc = proc_get_radio; + ent->write_proc = proc_set_radio; + } else { + printk(KERN_ERR + "Unable to initialize /proc/" DRV_NAME "/radio\n"); + err = -ENOMEM; + goto fail; + } + + return 0; + + fail: + pbe5_proc_cleanup(); + return err; +} + +/* + * module stuff + */ +static int __init pbe5_init(void) +{ + pbe5_proc_init(); + + pbe5_set_radio((radio == 1) ? PBE5_RADIO_ON : PBE5_RADIO_OFF); + + return 0; +} + +static void __exit pbe5_exit(void) +{ + pbe5_set_radio(PBE5_RADIO_OFF); + + pbe5_proc_cleanup(); +} + +module_init(pbe5_init); +module_exit(pbe5_exit); + +/* + 1 2 3 4 5 6 7 +12345678901234567890123456789012345678901234567890123456789012345678901234567890 +*/ --- linux-3.2.0.orig/ubuntu/omnibook/dock.c +++ linux-3.2.0/ubuntu/omnibook/dock.c @@ -0,0 +1,84 @@ +/* + * dock.c -- docking station/port replicator support + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_dock_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + u8 dock; + int retval; + + if ((retval = backend_byte_read(io_op, &dock))) + return retval; + + len += sprintf(buffer + len, "Laptop is %s\n", (dock) ? "docked" : "undocked"); + + return len; +} + +static int omnibook_dock_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + + switch (*buffer) { + case '0': + retval = backend_byte_write(io_op, 0); + break; + case '1': + retval = backend_byte_write(io_op, 1); + break; + default: + retval = -EINVAL; + } + + return retval; +} + +static struct omnibook_feature dock_driver; + +static int __init omnibook_dock_init(struct omnibook_operation *io_op) +{ + /* writing is only supported on ectype 13 */ + if(!(omnibook_ectype & TSM40)) + dock_driver.write = NULL; + + return 0; +} + +static struct omnibook_tbl dock_table[] __initdata = { + {XE3GF, SIMPLE_BYTE(EC, XE3GF_CSPR, XE3GF_CSPR_MASK)}, + {OB500 | OB510 | OB6000 | OB6100, SIMPLE_BYTE(EC, OB500_STA1, OB500_DCKS_MASK)}, + {OB4150, SIMPLE_BYTE(EC, OB4150_DCID, 0)}, + {TSM40, {SMI, SMI_GET_DOCK, SMI_SET_DOCK, 0, 0, 0}}, + {0,} +}; + +static struct omnibook_feature __declared_feature dock_driver = { + .name = "dock", + .enabled = 0, + .init = omnibook_dock_init, + .read = omnibook_dock_read, + .write = omnibook_dock_write, + .ectypes = XE3GF | OB500 | OB510 | OB6000 | OB6100 | OB4150 | TSM40, + .tbl = dock_table, +}; + +module_param_named(dock, dock_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(dock, "Use 0 to disable, 1 to enable docking station support"); +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/Kconfig +++ linux-3.2.0/ubuntu/omnibook/Kconfig @@ -0,0 +1,5 @@ +config OMNIBOOK + tristate "Kernel module for HP and Toshiba laptops" + depends on X86 + default m + ---help--- --- linux-3.2.0.orig/ubuntu/omnibook/wireless.c +++ linux-3.2.0/ubuntu/omnibook/wireless.c @@ -0,0 +1,108 @@ +/* + * wireless.c Wifi feature + * + * 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, 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. + * + * Written by Mathieu Bérard , 2006 + * + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_wifi_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int retval; + unsigned int state; + + if ((retval = backend_aerial_get(io_op, &state))) + return retval; + + len += + sprintf(buffer + len, "Wifi adapter is %s", (state & WIFI_EX) ? "present" : "absent"); + if (state & WIFI_EX) + len += + sprintf(buffer + len, " and %s", (state & WIFI_STA) ? "enabled" : "disabled"); + len += sprintf(buffer + len, ".\n"); + len += + sprintf(buffer + len, "Wifi Kill switch is %s.\n", (state & KILLSWITCH) ? "on" : "off"); + + return len; + +} + +static int omnibook_wifi_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval = 0; + unsigned int state; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if ((retval = __backend_aerial_get(io_op, &state))) + goto out; + + if (*buffer == '0') + state &= ~WIFI_STA; + else if (*buffer == '1') + state |= WIFI_STA; + else { + retval = -EINVAL; + goto out; + } + + if ((retval = __backend_aerial_set(io_op, state))) + return retval; + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static struct omnibook_feature wifi_driver; + +static int __init omnibook_wifi_init(struct omnibook_operation *io_op) +{ + int retval = 0; + unsigned int state; + +/* + * Refuse enabling/disabling a non-existent device + */ + + if ((retval = backend_aerial_get(io_op, &state))) + return retval; + + if (!(state & WIFI_EX)) + wifi_driver.write = NULL; + + return retval; +} + +static struct omnibook_tbl wireless_table[] __initdata = { + {TSM70 | TSX205, {ACPI,}}, /* stubs to select backend */ + {TSM40, {SMI,}}, /* stubs to select backend */ + {0,} +}; + +static struct omnibook_feature __declared_feature wifi_driver = { + .name = "wifi", + .enabled = 1, + .read = omnibook_wifi_read, + .write = omnibook_wifi_write, + .init = omnibook_wifi_init, + .ectypes = TSM70 | TSM40 | TSX205, + .tbl = wireless_table, +}; + +module_param_named(wifi, wifi_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(wifi, "Use 0 to disable, 1 to enable Wifi adapter control"); --- linux-3.2.0.orig/ubuntu/omnibook/polling.c +++ linux-3.2.0/ubuntu/omnibook/polling.c @@ -0,0 +1,259 @@ +/* + * polling.c -- scancode emulation for volume buttons + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" +#include +#include + +/* + * XE3GC type key_polling polling: + * + * Polling interval for keys (100 ms) + */ + +#define OMNIBOOK_POLL msecs_to_jiffies(100) + +/* + * workqueue manipulations are mutex protected and thus kept in sync with key_polling_enabled + */ +static struct workqueue_struct *omnibook_wq; +static int key_polling_enabled; +static DEFINE_MUTEX(poll_mutex); + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) +static void omnibook_key_poller(struct work_struct *work); +DECLARE_DELAYED_WORK(omnibook_poll_work, *omnibook_key_poller); +#else +static void omnibook_key_poller(void *data); +DECLARE_WORK(omnibook_poll_work, *omnibook_key_poller, NULL); +#endif + +static struct omnibook_feature key_polling_driver; +static struct input_dev *poll_input_dev; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) + static void omnibook_key_poller(struct work_struct *work) +#else + static void omnibook_key_poller(void *data) +#endif +{ + u8 q0a; + int retval; + + mutex_lock(&key_polling_driver.io_op->backend->mutex); + __backend_byte_read(key_polling_driver.io_op, &q0a); + __backend_byte_write(key_polling_driver.io_op, 0); + mutex_unlock(&key_polling_driver.io_op->backend->mutex); + +#ifdef CONFIG_OMNIBOOK_DEBUG + if (unlikely(q0a & XE3GC_SLPB_MASK)) + dprintk("Sleep button pressed.\n"); + if (unlikely(q0a & XE3GC_F5_MASK)) + dprintk("Fn-F5 - LCD/CRT switch pressed.\n"); + if (unlikely(q0a & XE3GC_CNTR_MASK)) + dprintk("Fn+F3/Fn+F4 - Contrast up or down pressed.\n"); + if (unlikely(q0a & XE3GC_BRGT_MASK)) + dprintk("Fn+F1/Fn+F2 - Brightness up or down pressed.\n"); +#endif + + /* + * Volume button scancode emulaton + * It emulates a key press and a release without repeat as other OneTouch buttons do. + */ + + if (unlikely(q0a & XE3GC_VOLD_MASK)) { + dprintk("Fn-down arrow or Volume down pressed.\n"); + omnibook_report_key(poll_input_dev, KEY_VOLUMEDOWN); + } + if (unlikely(q0a & XE3GC_VOLU_MASK)) { + dprintk("Fn-up arrow or Volume up pressed.\n"); + omnibook_report_key(poll_input_dev, KEY_VOLUMEUP); + } + if (unlikely(q0a & XE3GC_MUTE_MASK)) { + dprintk("Fn+F7 - Volume mute pressed.\n"); + omnibook_report_key(poll_input_dev, KEY_MUTE); + } + + retval = queue_delayed_work(omnibook_wq, &omnibook_poll_work, OMNIBOOK_POLL); + if(unlikely(!retval)) /* here non-zero on success */ + printk(O_ERR "Key_poller failed to rearm.\n"); +} + +static int omnibook_key_polling_enable(void) +{ + int retval = 0; + + if(mutex_lock_interruptible(&poll_mutex)) + return -ERESTARTSYS; + + if(key_polling_enabled) + goto out; + + retval = !queue_delayed_work(omnibook_wq, &omnibook_poll_work, OMNIBOOK_POLL); + if(retval) + printk(O_ERR "Key_poller enabling failed.\n"); + else { + dprintk("Scancode emulation for volume buttons enabled.\n"); + key_polling_enabled = 1; + } + + out: + mutex_unlock(&poll_mutex); + return retval; +} + +static int omnibook_key_polling_disable(void) +{ + if(mutex_lock_interruptible(&poll_mutex)) + return -ERESTARTSYS; + + if(!key_polling_enabled) + goto out; + + cancel_rearming_delayed_workqueue(omnibook_wq, &omnibook_poll_work); + dprintk("Scancode emulation for volume buttons disabled.\n"); + key_polling_enabled = 0; + + out: + mutex_unlock(&poll_mutex); + return 0; +} + + +static int omnibook_key_polling_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + if(mutex_lock_interruptible(&poll_mutex)) + return -ERESTARTSYS; + + len += sprintf(buffer + len, "Volume buttons polling is %s.\n", + (key_polling_enabled) ? "enabled" : "disabled"); +#ifdef CONFIG_OMNIBOOK_DEBUG + if(key_polling_enabled) + len += sprintf(buffer + len, "Will poll in %i msec.\n", + jiffies_to_msecs(omnibook_poll_work.timer.expires - jiffies)); +#endif + mutex_unlock(&poll_mutex); + return len; +} + +static int omnibook_key_polling_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + switch (*buffer) { + case '0': + retval = omnibook_key_polling_disable(); + break; + case '1': + retval = omnibook_key_polling_enable(); + break; + default: + retval = -EINVAL; + } + return retval; +} + + +/* + * Stop polling upon suspend an restore it upon resume + */ +static int omnibook_key_polling_resume(struct omnibook_operation *io_op) +{ + int retval = 0; + + mutex_lock(&poll_mutex); + if(key_polling_enabled) + retval = !queue_delayed_work(omnibook_wq, &omnibook_poll_work, OMNIBOOK_POLL); + mutex_unlock(&poll_mutex); + return retval; +} + +static int omnibook_key_polling_suspend(struct omnibook_operation *io_op) +{ + mutex_lock(&poll_mutex); + if(key_polling_enabled) + cancel_rearming_delayed_workqueue(omnibook_wq, &omnibook_poll_work); + mutex_unlock(&poll_mutex); + return 0; +} + +static int __init omnibook_key_polling_init(struct omnibook_operation *io_op) +{ + int retval = 0; + + poll_input_dev = input_allocate_device(); + if (!poll_input_dev) { + retval = -ENOMEM; + goto out; + } + + poll_input_dev->name = "Omnibook legacy laptop scancode generator"; + poll_input_dev->phys = "omnibook/input0"; + poll_input_dev->id.bustype = BUS_HOST; + + /* this device has three keys */ + set_bit(EV_KEY, poll_input_dev->evbit); + set_bit(KEY_VOLUMEDOWN, poll_input_dev->keybit); + set_bit(KEY_VOLUMEUP, poll_input_dev->keybit); + set_bit(KEY_MUTE, poll_input_dev->keybit); + + retval = input_register_device(poll_input_dev); + if (retval) { + input_free_device(poll_input_dev); + goto out; + } + + omnibook_wq = create_singlethread_workqueue("omnibook"); + if(!omnibook_wq) + retval = -ENOMEM; + else + retval = omnibook_key_polling_enable(); + +out: + return retval; +} + +static void __exit omnibook_key_polling_cleanup(struct omnibook_operation *io_op) +{ + omnibook_key_polling_disable(); + destroy_workqueue(omnibook_wq); + input_unregister_device(poll_input_dev); +} + +static struct omnibook_tbl key_polling_table[] __initdata = { + {XE3GC, SIMPLE_BYTE(EC, XE3GC_Q0A, 0)}, + {0,} +}; + +static struct omnibook_feature __declared_feature key_polling_driver = { + .name = "key_polling", + .enabled = 0, /* dangerous */ + .read = omnibook_key_polling_read, + .write = omnibook_key_polling_write, + .init = omnibook_key_polling_init, + .exit = omnibook_key_polling_cleanup, + .suspend = omnibook_key_polling_suspend, + .resume = omnibook_key_polling_resume, + .ectypes = XE3GC, + .tbl = key_polling_table, +}; + +module_param_named(key_polling, key_polling_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(key_polling, "Use 0 to disable, 1 to enable key polling"); +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/battery.c +++ linux-3.2.0/ubuntu/omnibook/battery.c @@ -0,0 +1,557 @@ +/* + * battery.c -- battery related functions + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +struct omnibook_battery_info { + u8 type; /* 1 - Li-Ion, 2 NiMH */ + u16 sn; /* Serial number */ + u16 dv; /* Design Voltage */ + u16 dc; /* Design Capacity */ +}; + +struct omnibook_battery_state { + u16 pv; /* Present Voltage */ + u16 rc; /* Remaining Capacity */ + u16 lc; /* Last Full Capacity */ + u8 gauge; /* Gauge in % */ + u8 status; /* 0 - unknown, 1 - charged, 2 - discharging, 3 - charging, 4 - critical) */ +}; + +enum { + OMNIBOOK_BATTSTAT_UNKNOWN, + OMNIBOOK_BATTSTAT_CHARGED, + OMNIBOOK_BATTSTAT_DISCHARGING, + OMNIBOOK_BATTSTAT_CHARGING, + OMNIBOOK_BATTSTAT_CRITICAL +}; + +#define BAT_OFFSET 0x10 + +static int __backend_u16_read(struct omnibook_operation *io_op, u16 *data) +{ + int retval; + u8 byte; + + retval = __backend_byte_read(io_op, &byte); + if (retval) + return retval; + *data = byte; + io_op->read_addr += 1; + retval = __backend_byte_read(io_op, &byte); + *data += (byte << 8); + return retval; +} + +static int omnibook_battery_present(struct omnibook_operation *io_op, int num) +{ + int retval; + u8 bat; + int i; + + /* + * XE3GF + * TSP10 + * TSM30X + * TSM70 + */ + if (omnibook_ectype & (XE3GF | TSP10 | TSM70 | TSM30X)) { + io_op->read_addr = XE3GF_BAL; + io_op->read_mask = XE3GF_BAL0_MASK; + for (i = 0; i < num; i++) + io_op->read_mask = io_op->read_mask << 1; + retval = __backend_byte_read(io_op, &bat); + /* + * XE3GC + * AMILOD + */ + } else if (omnibook_ectype & (XE3GC | AMILOD)) { + io_op->read_addr = XE3GC_BAT; + io_op->read_mask = XE3GC_BAT0_MASK; + for (i = 0; i < num; i++) + io_op->read_mask = io_op->read_mask << 1; + retval = __backend_byte_read(io_op, &bat); + } else + retval = -ENODEV; + + /* restore default read_mask */ + io_op->read_mask = 0; + + return !!bat; +} + +/* + * Get static battery information + * All info have to be reread every time because battery sould be cahnged + * when laptop is on AC power + * return values: + * < 0 - ERROR + * 0 - OK + * 1 - Battery is not present + * 2 - Not supported + */ +static int omnibook_get_battery_info(struct omnibook_operation *io_op, + int num, + struct omnibook_battery_info *battinfo) +{ + int retval; + /* + * XE3GF + * TSP10 + * TSM70 + * TSM30X + */ + if (omnibook_ectype & (XE3GF | TSP10 | TSM70 | TSM30X)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = XE3GF_BTY0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &(*battinfo).type))) + return retval; + io_op->read_addr = XE3GF_BSN0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).sn))) + return retval; + io_op->read_addr = XE3GF_BDV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dv))) + return retval; + io_op->read_addr = XE3GF_BDC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dc))) + return retval; + + (*battinfo).type = ((*battinfo).type & XE3GF_BTY_MASK) ? 1 : 0; + } else + return 1; + /* + * XE3GC + */ + } else if (omnibook_ectype & (XE3GC)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = XE3GC_BDV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dv))) + return retval; + io_op->read_addr = XE3GC_BDC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dc))) + return retval; + io_op->read_addr = XE3GC_BTY0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &(*battinfo).type))) + return retval; + + (*battinfo).type = ((*battinfo).type & XE3GC_BTY_MASK) ? 1 : 0; + (*battinfo).sn = 0; /* Unknown */ + } else + return 1; + /* + * AMILOD + */ + } else if (omnibook_ectype & (AMILOD)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = AMILOD_BDV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dv))) + return retval; + io_op->read_addr = AMILOD_BDC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battinfo).dc))) + return retval; + io_op->read_addr = AMILOD_BTY0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &(*battinfo).type))) + return retval; + + (*battinfo).type = ((*battinfo).type & AMILOD_BTY_MASK) ? 1 : 0; + (*battinfo).sn = 0; /* Unknown */ + } else + return 1; + /* + * FIXME + * OB500 + * OB510 + */ + } else if (omnibook_ectype & (OB500 | OB510)) { + switch (num) { + case 0: + case 1: + case 2: + break; + default: + return -EINVAL; + } + /* + * OB6000 + * OB6100 + * XE4500 + */ + } else if (omnibook_ectype & (OB6000 | OB6100 | XE4500)) { + switch (num) { + case 0: + case 1: + break; + default: + return -EINVAL; + } + } else + return 2; + + return 0; +} + +/* + * Get battery status + * return values: + * < 0 - ERROR + * 0 - OK + * 1 - Battery is not present + * 2 - Not supported + */ +static int omnibook_get_battery_status(struct omnibook_operation *io_op, + int num, + struct omnibook_battery_state *battstat) +{ + int retval; + u8 status; + u16 dc; + int gauge; + + /* + * XE3GF + * TSP10 + * TSM70 + */ + if (omnibook_ectype & (XE3GF | TSP10 | TSM70 | TSM30X)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = XE3GF_BST0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = XE3GF_BRC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = XE3GF_BPV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + io_op->read_addr = XE3GF_BFC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).lc))) + return retval; + io_op->read_addr = XE3GF_GAU0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &(*battstat).gauge))) + return retval; + + if (status & XE3GF_BST_MASK_CRT) + (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL; + else if (status & XE3GF_BST_MASK_CHR) + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING; + else if (status & XE3GF_BST_MASK_DSC) + (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING; + else if (status & (XE3GF_BST_MASK_CHR | XE3GF_BST_MASK_DSC)) + (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN; + else { + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED; + } + } else + return 1; + /* + * XE3GC + */ + } else if (omnibook_ectype & (XE3GC)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = XE3GC_BST0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = XE3GC_BRC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = XE3GC_BPV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + io_op->read_addr = XE3GC_BDC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &dc))) + return retval; + + if (status & XE3GC_BST_MASK_CRT) + (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL; + else if (status & XE3GC_BST_MASK_CHR) + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING; + else if (status & XE3GC_BST_MASK_DSC) + (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING; + else if (status & (XE3GC_BST_MASK_CHR | XE3GC_BST_MASK_DSC)) + (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN; + else { + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED; + } + gauge = ((*battstat).rc * 100) / dc; + (*battstat).gauge = gauge; + (*battstat).lc = 0; /* Unknown */ + } else + return 1; + /* + * AMILOD + */ + } else if (omnibook_ectype & (AMILOD)) { + retval = omnibook_battery_present(io_op, num); + if (retval < 0) + return retval; + if (retval) { + io_op->read_addr = AMILOD_BST0 + (BAT_OFFSET * num); + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = AMILOD_BRC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = AMILOD_BPV0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + io_op->read_addr = AMILOD_BDC0 + (BAT_OFFSET * num); + if ((retval = __backend_u16_read(io_op, &dc))) + return retval; + + if (status & AMILOD_BST_MASK_CRT) + (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL; + else if (status & AMILOD_BST_MASK_CHR) + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING; + else if (status & AMILOD_BST_MASK_DSC) + (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING; + else if (status & (AMILOD_BST_MASK_CHR | AMILOD_BST_MASK_DSC)) + (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN; + else { + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED; + } + gauge = ((*battstat).rc * 100) / dc; + (*battstat).gauge = gauge; + (*battstat).lc = 0; /* Unknown */ + } else + return 1; + /* + * OB500 + * OB510 + */ + } else if (omnibook_ectype & (OB500 | OB510)) { + switch (num) { + case 0: + io_op->read_addr = OB500_BT1S; + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = OB500_BT1C; + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = OB500_BT1V; + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + break; + case 1: + io_op->read_addr = OB500_BT2S; + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = OB500_BT2C; + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = OB500_BT2V; + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + break; + case 2: + io_op->read_addr = OB500_BT3S; + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = OB500_BT3C; + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = OB500_BT3V; + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + break; + default: + return -EINVAL; + } + if (status & OB500_BST_MASK_CRT) + (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL; + else if (status & OB500_BST_MASK_CHR) + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING; + else if (status & OB500_BST_MASK_DSC) + (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING; + else if (status & (OB500_BST_MASK_CHR | OB500_BST_MASK_DSC)) + (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN; + else { + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED; + } + /* + * OB6000 + * OB6100 + * XE4500 + */ + } else if (omnibook_ectype & (OB6000 | OB6100 | XE4500)) { + switch (num) { + case 0: + io_op->read_addr = OB500_BT1S; + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = OB500_BT1C; + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = OB500_BT1V; + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + break; + case 1: + io_op->read_addr = OB500_BT3S; + if ((retval = __backend_byte_read(io_op, &status))) + return retval; + io_op->read_addr = OB500_BT3C; + if ((retval = __backend_u16_read(io_op, &(*battstat).rc))) + return retval; + io_op->read_addr = OB500_BT3V; + if ((retval = __backend_u16_read(io_op, &(*battstat).pv))) + return retval; + break; + default: + return -EINVAL; + } + if (status & OB500_BST_MASK_CRT) + (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL; + else if (status & OB500_BST_MASK_CHR) + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING; + else if (status & OB500_BST_MASK_DSC) + (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING; + else if (status & (OB500_BST_MASK_CHR | OB500_BST_MASK_DSC)) + (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN; + else { + (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED; + } + } else { + return 2; + } + return 0; +} + +static int omnibook_battery_read(char *buffer, struct omnibook_operation *io_op) +{ + char *statustr; + char *typestr; + int max = 0; + int num = 0; + int len = 0; + int retval; + int i; + struct omnibook_battery_info battinfo; + struct omnibook_battery_state battstat; + /* + * XE3GF + * XE3GC + * 0B6000 + * 0B6100 + * XE4500 + * AMILOD + * TSP10 + */ + if (omnibook_ectype & (XE3GF | XE3GC | OB6000 | OB6100 | XE4500 | AMILOD | TSP10)) + max = 2; + /* + * OB500 + * 0B510 + */ + else if (omnibook_ectype & (OB500 | OB510)) + max = 3; + /* + * TSM30X + * TSM70 + */ + else if (omnibook_ectype & (TSM70 | TSM30X)) + max = 1; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + for (i = 0; i < max; i++) { + retval = omnibook_get_battery_info(io_op, i, &battinfo); + if (retval == 0) { + num++; + omnibook_get_battery_status(io_op, i, &battstat); + typestr = (battinfo.type) ? "Li-Ion" : "NiMH"; + switch (battstat.status) { + case OMNIBOOK_BATTSTAT_CHARGED: + statustr = "charged"; + break; + case OMNIBOOK_BATTSTAT_DISCHARGING: + statustr = "discharging"; + break; + case OMNIBOOK_BATTSTAT_CHARGING: + statustr = "charging"; + break; + case OMNIBOOK_BATTSTAT_CRITICAL: + statustr = "critical"; + break; + default: + statustr = "unknown"; + } + + len += sprintf(buffer + len, "Battery: %11d\n", i); + len += sprintf(buffer + len, "Type: %11s\n", typestr); + if (battinfo.sn) + len += + sprintf(buffer + len, "Serial Number: %11d\n", + battinfo.sn); + len += sprintf(buffer + len, "Present Voltage: %11d mV\n", battstat.pv); + len += sprintf(buffer + len, "Design Voltage: %11d mV\n", battinfo.dv); + len += sprintf(buffer + len, "Remaining Capacity: %11d mAh\n", battstat.rc); + if (battstat.lc) + len += + sprintf(buffer + len, "Last Full Capacity: %11d mAh\n", + battstat.lc); + len += sprintf(buffer + len, "Design Capacity: %11d mAh\n", battinfo.dc); + len += + sprintf(buffer + len, "Gauge: %11d %%\n", battstat.gauge); + len += sprintf(buffer + len, "Status: %11s\n", statustr); + len += sprintf(buffer + len, "\n"); + } + } + if (num == 0) + len += sprintf(buffer + len, "No battery present\n"); + + mutex_unlock(&io_op->backend->mutex); + + return len; +} + +static struct omnibook_tbl battery_table[] __initdata = { + {XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X, {EC,}}, + {0,} +}; + +static struct omnibook_feature __declared_feature battery_driver = { + .name = "battery", +#ifdef CONFIG_OMNIBOOK_LEGACY + .enabled = 1, +#else + .enabled = 0, +#endif + .read = omnibook_battery_read, + .ectypes = XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X, /* FIXME: OB500|OB6000|OB6100|XE4500 */ + .tbl = battery_table, +}; + +module_param_named(battery, battery_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(battery, "Use 0 to disable, 1 to enable battery status monitoring"); +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/compal.c +++ linux-3.2.0/ubuntu/omnibook/compal.c @@ -0,0 +1,526 @@ +/* + * compal.c -- EC PIO Command/Data/Index mode low-level access code + * + * 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, 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. + * + * Written by Mathieu Bérard , 2006 + * + */ + +#include "omnibook.h" + +#include +#include +#include +#include + +#include +#include "hardware.h" + +/* + * ATI's IXP PCI-LPC bridge + */ +#define PCI_DEVICE_ID_ATI_SB400 0x4377 + +/* + * PCI Config space regiser + * Laptop with Intel ICH Chipset + * See ICH6M and ICH7M spec + */ +#define INTEL_LPC_GEN1_DEC 0x84 +#define INTEL_LPC_GEN4_DEC 0x90 +#define INTEL_IOPORT_BASE 0xff2c + +/* + * PCI Config space regiser + * Laptop with ATI Chipset + * FIXME Untested, name unknown + */ +#define ATI_LPC_REG 0x4a +#define ATI_IOPORT_BASE 0xfd60 + +/* + *This interface uses 2 ports for command and 1 port for data + *These are relative to the ioport_base address + */ + +#define PIO_PORT_COMMAND1 0x1 +#define PIO_PORT_COMMAND2 0x2 +#define PIO_PORT_DATA 0x3 + +/* + * Private data of this backend + */ +static struct pci_dev *lpc_bridge; /* Southbridge chip ISA bridge/LPC interface PCI device */ +static u32 ioport_base; /* PIO base adress */ +static union { + u16 word; + u32 dword; +} pci_reg_state; /* Saved state of register in PCI config spave */ + +/* + * Possible list of supported southbridges + * Here mostly to implement a more or less clean PCI probing + * Works only because of previous DMI probing. + * Shared with nbsmi backend + */ +const struct pci_device_id lpc_bridge_table[] = { + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AA_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AB_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_10, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_12, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801E_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_30, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_31, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_4, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SB400, PCI_ANY_ID, PCI_ANY_ID, 0, 0,}, + {0,}, /* End of list */ +}; + +/* + * Low-level Read function: + * Write a 2-bytes wide command to the COMMAND ports + * Read the result in the DATA port + */ +static unsigned char lowlevel_read(u16 command) +{ + unsigned char data; + outb((command & 0xff00) >> 8, ioport_base + PIO_PORT_COMMAND1); + outb(command & 0x00ff, ioport_base + PIO_PORT_COMMAND2); + data = inb(ioport_base + PIO_PORT_DATA); + return data; +} + +/* + * Low-level Write function: + * Write a 2-bytes wide command to the COMMAND ports + * Write the result in the DATA port + */ +static void lowlevel_write(u16 command, u8 data) +{ + outb((command & 0xff00) >> 8, ioport_base + PIO_PORT_COMMAND1); + outb(command & 0x00ff, ioport_base + PIO_PORT_COMMAND2); + outb(data, ioport_base + PIO_PORT_DATA); +} + +/* + * Probe for a state of the PIO Command/Data/Index interface + * Give some time for the controler to settle in the desired state + * mode significance: + * 0: Waiting for command + * 1,2,3: I am confused FIXME + */ +static int check_cdimode_flag(unsigned int mode) +{ + int i; + int retval; + + /*dprintk("Index mode:");*/ + for (i = 1; i <= 250; i++) { + retval = lowlevel_read(0xfbfc); + /*dprintk_simple(" [%i]", retval);*/ + if (retval == mode) { + /*dprintk_simple(".\n"); + dprintk("Index Mode Ok (%i) after %i iter\n", mode, i);*/ + return 0; + } + udelay(100); + } + printk(O_ERR "check_cdimode_flag timeout.\n"); + return -ETIME; +} + +/* + * Check for conventional default (0xf432) state in Commad ports + */ +static int check_default_state(void) +{ + int i; + + for (i = 1; i <= 250; i++) { + if ((inb(ioport_base + PIO_PORT_COMMAND1) == 0xf4) + && (inb(ioport_base + PIO_PORT_COMMAND2) == 0x32)) + return 0; + udelay(100); + } + printk(O_ERR "check_default_state timeout.\n"); + return -ETIME; +} + +/* + * Enable EC Command/Data/Index PIO Access and then check EC state. + * Enabling is done in PCI config space of the LPC bridge. + * + * Just after Enabling, the EC should be in a precisly defined state: + * - PIO should be in a conventional default state (0xf432 in the Command ports) + * - Command/Data/Index interface waiting for command + * The EC is expected to be in that state prior to any attempt to use the interface. + * + */ +static int enable_cdimode(void) +{ + union { + u16 word; + u32 dword; + } value; + + switch (lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + switch (lpc_bridge->device) { + case PCI_DEVICE_ID_INTEL_ICH7_0: /* ICH7 */ + case PCI_DEVICE_ID_INTEL_ICH7_1: + case PCI_DEVICE_ID_INTEL_ICH7_30: + case PCI_DEVICE_ID_INTEL_ICH7_31: + case PCI_DEVICE_ID_INTEL_ICH8_4: /* ICH8 */ + pci_read_config_dword(lpc_bridge, INTEL_LPC_GEN4_DEC, &(value.dword)); + pci_reg_state.dword = value.dword; + value.dword = 0x3CFF21; + pci_write_config_dword(lpc_bridge, INTEL_LPC_GEN4_DEC, value.dword); + break; + default: /* All other Intel chipset */ + pci_read_config_word(lpc_bridge, INTEL_LPC_GEN1_DEC, &(value.word)); + pci_reg_state.word = value.word; + value.word = (INTEL_IOPORT_BASE & 0xfff1) | 0x1; + pci_write_config_word(lpc_bridge, INTEL_LPC_GEN1_DEC, value.word); + } + break; + case PCI_VENDOR_ID_ATI: + pci_read_config_dword(lpc_bridge, ATI_LPC_REG, &(value.dword)); + pci_reg_state.dword = value.dword; + value.dword = ((pci_reg_state.dword & 0x7f) | 0x80) << 0x10; + pci_write_config_dword(lpc_bridge, ATI_LPC_REG, value.dword); + break; + default: + BUG(); + } + dprintk("Saved state of PCI register: [%x].\n", pci_reg_state.dword); + + if (check_default_state() || check_cdimode_flag(0)) { + printk(O_ERR "EC state check failure, please report.\n"); + return -EIO; + } + + return 0; + +} + +/* + * Send a write command and associated data code to be written + * Known commands an associated code significance: + * 0xfbfd: Select Index with 'code' ordinal + * 0xfbfe: Set to 'code' a previously selected Index + * 0xfbfc: Set CDI mode flag + */ +static int send_ec_cmd(unsigned int command, u8 code) +{ + lowlevel_write(0xfbfc, 0x2); + lowlevel_write(command, code); + lowlevel_write(0xfbfc, 0x1); + if (check_cdimode_flag(2)) + return -ETIME; + return 0; +} + +/* + * Send a read command + * Known commands an associated code significance: + * 0xfbfe: Read a previously selected Index + * 0xfbfc: Set CDI mode flag + */ +static int read_ec_cmd(unsigned int command, u8 * value) +{ + *value = lowlevel_read(command); + lowlevel_write(0xfbfc, 0x1); + if (check_cdimode_flag(2)) + return -ETIME; + return 0; +} + +/* + * Disable EC Command/Data/Index PIO Access + * Step 1: clear_cdimode + * Send Disable command + * Revert PIO interface to conventional default state (0xf432 in the Command ports) + * Step 2: clear_cdimode_pci + * Disable the interface in the PCI config space of the Southbridge + * These steps are separated due to constrains in error path treatement + */ +static void clear_cdimode(void) +{ + lowlevel_write(0xfbfc, 0x0); + outb(0xf4, ioport_base + PIO_PORT_COMMAND1); + outb(0x32, ioport_base + PIO_PORT_COMMAND2); +} + +static void clear_cdimode_pci(void) +{ + switch (lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + switch (lpc_bridge->device) { + case PCI_DEVICE_ID_INTEL_ICH7_0: /* ICH7 */ + case PCI_DEVICE_ID_INTEL_ICH7_1: + case PCI_DEVICE_ID_INTEL_ICH7_30: + case PCI_DEVICE_ID_INTEL_ICH7_31: + case PCI_DEVICE_ID_INTEL_ICH8_4: /* ICH8 */ + pci_write_config_dword(lpc_bridge, INTEL_LPC_GEN4_DEC, pci_reg_state.dword); + break; + default: /* All other Intel chipset */ + pci_write_config_word(lpc_bridge, INTEL_LPC_GEN1_DEC, pci_reg_state.word); + } + break; + case PCI_VENDOR_ID_ATI: + pci_write_config_dword(lpc_bridge, ATI_LPC_REG, pci_reg_state.dword); + break; + default: + BUG(); + } +} + +/* + * Try to init the backend + * This function can be called blindly as it use a kref + * to check if the init sequence was already done. + */ +static int omnibook_cdimode_init(const struct omnibook_operation *io_op) +{ + int retval = 0; + int i; + + /* ectypes other than TSM70 have no business with this backend */ + if (!(omnibook_ectype & (TSM70 | TSX205))) + return -ENODEV; + + if (io_op->backend->already_failed) { + dprintk("CDI backend init already failed, skipping.\n"); + return -ENODEV; + } + + if (!lpc_bridge) { + /* Fist use of the backend */ + dprintk("Try to init cdimode\n"); + mutex_init(&io_op->backend->mutex); + mutex_lock(&io_op->backend->mutex); + kref_init(&io_op->backend->kref); + + /* PCI probing: find the LPC Super I/O bridge PCI device */ + for (i = 0; !lpc_bridge && lpc_bridge_table[i].vendor; ++i) + lpc_bridge = + pci_get_device(lpc_bridge_table[i].vendor, lpc_bridge_table[i].device, + NULL); + + if (!lpc_bridge) { + printk(O_ERR "Fail to find a supported LPC I/O bridge, please report\n"); + retval = -ENODEV; + goto error1; + } + + if ((retval = pci_enable_device(lpc_bridge))) { + printk(O_ERR "Unable to enable PCI device.\n"); + goto error2; + } + + switch (lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + ioport_base = INTEL_IOPORT_BASE; + break; + case PCI_VENDOR_ID_ATI: + ioport_base = ATI_IOPORT_BASE; + break; + default: + BUG(); + } + + if (!request_region(ioport_base, 4, OMNIBOOK_MODULE_NAME)) { + printk(O_ERR "Request I/O region error\n"); + retval = -ENODEV; + goto error2; + } + + /* + * Make an enable-check disable cycle for testing purpose + */ + + retval = enable_cdimode(); + if (retval) + goto error3; + + clear_cdimode(); + clear_cdimode_pci(); + + dprintk("Cdimode init ok\n"); + mutex_unlock(&io_op->backend->mutex); + return 0; + } else { + dprintk("Cdimode has already been initialized\n"); + kref_get(&io_op->backend->kref); + return 0; + } + + error3: + clear_cdimode_pci(); + release_region(ioport_base, 4); + error2: + pci_dev_put(lpc_bridge); + lpc_bridge = NULL; + error1: + io_op->backend->already_failed = 1; + mutex_unlock(&io_op->backend->mutex); + mutex_destroy(&io_op->backend->mutex); + return retval; +} + +static void cdimode_free(struct kref *ref) +{ + struct omnibook_backend *backend; + + dprintk("Cdimode not used anymore: disposing\n"); + + backend = container_of(ref, struct omnibook_backend, kref); + + mutex_lock(&backend->mutex); + pci_dev_put(lpc_bridge); + release_region(ioport_base, 4); + lpc_bridge = NULL; + mutex_unlock(&backend->mutex); + mutex_destroy(&backend->mutex); +} + +static void omnibook_cdimode_exit(const struct omnibook_operation *io_op) +{ + /* ectypes other than TSM70 have no business with this backend */ + BUG_ON(!(omnibook_ectype & (TSM70 | TSX205))); + dprintk("Trying to dispose cdimode\n"); + kref_put(&io_op->backend->kref, cdimode_free); +} + +/* + * Read EC index and write result to value + * 'EC index' here is unrelated to an index in the EC registers + */ +static int omnibook_cdimode_read(const struct omnibook_operation *io_op, u8 * value) +{ + int retval = 0; + + if (!lpc_bridge) + return -ENODEV; + + retval = enable_cdimode(); + if (retval) + goto out; + retval = send_ec_cmd(0xfbfd, (unsigned int)io_op->read_addr); + if (retval) + goto error; + retval = read_ec_cmd(0xfbfe, value); + + if (io_op->read_mask) + *value &= io_op->read_mask; + + error: + clear_cdimode(); + out: + clear_cdimode_pci(); + return retval; +} + +/* + * Write value + * 'EC index' here is unrelated to an index in the EC registers + */ +static int omnibook_cdimode_write(const struct omnibook_operation *io_op, u8 value) +{ + int retval = 0; + + if (!lpc_bridge) + return -ENODEV; + + retval = enable_cdimode(); + if (retval) + goto out; + retval = send_ec_cmd(0xfbfd, (unsigned int)io_op->write_addr); + if (retval) + goto error; + retval = send_ec_cmd(0xfbfe, value); + error: + clear_cdimode(); + out: + clear_cdimode_pci(); + return retval; + +} + +/* + * Fn+foo and multimedia hotkeys handling + */ +static int omnibook_cdimode_hotkeys(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval; + + struct omnibook_operation hotkeys_op = + { CDI, 0, TSM70_FN_INDEX, 0, TSM70_FN_ENABLE, TSM70_FN_DISABLE}; + + /* Fn+foo handling */ + retval = __omnibook_toggle(&hotkeys_op, !!(state & HKEY_FN)); + if (retval < 0) + return retval; + + /* Multimedia keys handling */ + hotkeys_op.write_addr = TSM70_HOTKEYS_INDEX; + hotkeys_op.on_mask = TSM70_HOTKEYS_ENABLE; + hotkeys_op.off_mask = TSM70_HOTKEYS_DISABLE; + retval = __omnibook_toggle(&hotkeys_op, !!(state & HKEY_MULTIMEDIA)); + + return retval; +} + +/* Scan index space, this hard locks my machine */ +#if 0 +static int compal_scan(char *buffer) +{ + int len = 0; + int i, j; + u8 v; + + for (i = 0; i < 255; i += 16) { + for (j = 0; j < 16; j++) { + omnibook_compal_read(i + j, &v); + len += sprintf(buffer + len, "Read index %02x: %02x\n", i + j, v); + mdelay(500); + } + if (j != 16) + break; + } + + return len; +} +#endif + +struct omnibook_backend compal_backend = { + .name = "compal", + .hotkeys_write_cap = HKEY_MULTIMEDIA | HKEY_FN, + .init = omnibook_cdimode_init, + .exit = omnibook_cdimode_exit, + .byte_read = omnibook_cdimode_read, + .byte_write = omnibook_cdimode_write, + .hotkeys_set = omnibook_cdimode_hotkeys, +}; + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/Makefile +++ linux-3.2.0/ubuntu/omnibook/Makefile @@ -0,0 +1,171 @@ +# +# Makefile -- makefile for the HP OmniBook support module +# +# 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, 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. +# +# Written by Soós Péter , 2002-2004 +# Modified by Mathieu Bérard , 2006-2007 +# + +#Module informations + +MODULE_NAME = omnibook +MODULE_VERSION = 2.20090707 +MODULE_BRANCH = trunk + +# Out-of-tree configuration +ifndef CONFIG_OMNIBOOK +OMNIBOOK_STANDALONE=y +CONFIG_OMNIBOOK=m + +#Uncomment and set to force debug behavior +#NOTE: Default (commented) behavior is to enable debug in trunk or branch svn +# snapshot and to disable it for release +#OMNIBOOK_WANT_DEBUG=n + +#comment to disable backlight device support +OMNIBOOK_WANT_BACKLIGHT=y + +#Uncomment to force legacy (pre-ACPI system) features support +#OMNIBOOK_WANT_LEGACY=y + +endif + +ifeq ($(KERNELRELEASE),) +# Support for direct Makefile invocation + +DESTDIR = +MODDIR = $(DESTDIR)/lib/modules +KVERS = $(shell uname -r) +KVER = $(KVERS) +VMODDIR = $(MODDIR)/$(KVER) +INSTDIR = extra +#KSRC = /usr/src/linux +KSRC = $(VMODDIR)/build +KMODDIR = $(KSRC)/drivers/misc/omnibook +KDOCDIR = $(KSRC)/Documentation/omnibook +PWD = $(shell pwd) +TODAY = $(shell date +%Y%m%d) +DEPMOD = /sbin/depmod -aq +RMMOD = /sbin/modprobe -r +INSMOD = /sbin/modprobe +INSTALL = install -m 644 +MKDIR = mkdir -p +RM = rm -f +FIND = find + +all: $(MODULE_NAME).ko + +clean: + make -C $(KSRC) M=$(PWD) clean + $(RM) -r *~ "#*#" .swp + $(RM) -r debian/omnibook-source *-stamp + $(RM) -r Module.symvers Modules.symvers + +install: all + # Removing module from locations used by previous versions + $(RM) $(VMODDIR)/kernel/drivers/char/$(MODULE_NAME).ko + $(RM) $(VMODDIR)/kernel/drivers/misc/$(MODULE_NAME).ko + make INSTALL_MOD_PATH=$(DESTDIR) INSTALL_MOD_DIR=$(INSTDIR) -C $(KSRC) M=$(PWD) modules_install + +unload: + $(RMMOD) $(MODULE_NAME) || : + +load: install unload + $(DEPMOD) + $(INSMOD) $(MODULE_NAME) + +uninstall: unload + $(FIND) $(VMODDIR) -name "$(MODULE_NAME).ko" -exec $(RM) {} \; + $(DEPMOD) + +$(MODULE_NAME).ko: + $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules + +kinstall: + $(RM) -r $(KMODDIR) + $(MKDIR) $(KMODDIR) + $(INSTALL) *.h *.c sections.lds $(KMODDIR) + $(MKDIR) $(KDOCDIR) + $(INSTALL) doc/README $(KDOCDIR) + +kpatch: kinstall + (cd $(KSRC); patch -p1 < $(PWD)/misc/omnibook-integration.patch) + +version: + sed -i "s|^\(MODULE_VERSION = \).*|\1 2.$(TODAY)|" Makefile + sed -i "s|^\(MODULE_BRANCH = \).*|\1 release|" Makefile + sed -i "s|^\(2\.\)X\{8\}|\1$(TODAY)|" doc/ChangeLog + + +release: clean version + mkdir -p ../$(MODULE_NAME)-2.$(TODAY) + cp -a *.h *.c *.lds Makefile doc misc ../$(MODULE_NAME)-2.$(TODAY) + rm -f ../$(MODULE_NAME)-2.$(TODAY).tar ../$(MODULE_NAME)-2.$(TODAY).tar.gz + (cd ..; tar cvf $(MODULE_NAME)-2.$(TODAY).tar $(MODULE_NAME)-2.$(TODAY); gzip -9 $(MODULE_NAME)-2.$(TODAY).tar) + +else +# Support for kernel build system invocation + +ifneq ($(MODULE_BRANCH), release) +EXTRA_CFLAGS += -DOMNIBOOK_MODULE_VERSION='"$(MODULE_VERSION)-$(MODULE_BRANCH)"' +else +EXTRA_CFLAGS += -DOMNIBOOK_MODULE_VERSION='"$(MODULE_VERSION)"' +endif + +ifeq ($(OMNIBOOK_STANDALONE),y) + +ifeq ($(OMNIBOOK_WANT_BACKLIGHT),y) +ifdef CONFIG_BACKLIGHT_CLASS_DEVICE +# we support backlight interface only after 2.6.16 +ifeq ($(shell if [ $(SUBLEVEL) -gt 16 ] ; then echo -n 'y'; fi),y) +EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_BACKLIGHT +else +$(warning "Backlight support in only supported for kernel version newer than 2.6.16") +$(warning "Disabling backlight sysfs interface") +endif +endif +endif + +ifeq ($(OMNIBOOK_WANT_LEGACY),y) +EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_LEGACY +endif + +ifndef CONFIG_ACPI_EC +EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_LEGACY +endif + +ifneq ($(MODULE_BRANCH), release) +ifneq ($(OMNIBOOK_WANT_DEBUG),n) +EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_DEBUG # -Wa -g0 +endif +else +ifeq ($(OMNIBOOK_WANT_DEBUG),y) +EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_DEBUG # -Wa -g0 +endif + +endif + +endif + +EXTRA_CFLAGS += -DOMNIBOOK_MODULE_NAME='"$(MODULE_NAME)"' +#EXTRA_LDFLAGS += $(src)/sections.lds +EXTRA_LDFLAGS += $(PWD)/ubuntu/omnibook/sections.lds + +obj-$(CONFIG_OMNIBOOK) += $(MODULE_NAME).o +omnibook-objs := init.o lib.o ec.o kbc.o pio.o compal.o acpi.o nbsmi.o \ + ac.o battery.o blank.o bluetooth.o cooling.o display.o dock.o \ + dump.o fan.o fan_policy.o hotkeys.o info.o lcd.o muteled.o \ + polling.o temperature.o touchpad.o wireless.o throttling.o + +endif # End of kernel build system part + +# End of file --- linux-3.2.0.orig/ubuntu/omnibook/ec.c +++ linux-3.2.0/ubuntu/omnibook/ec.c @@ -0,0 +1,188 @@ +/* + * ec.c -- low level functions to access Embedded Controller, + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include +#include +#include +#include + +#include +#include "hardware.h" + +/* + * Interrupt control + */ + +static DEFINE_SPINLOCK(omnibook_ec_lock); + +/* + * Registers of the embedded controller + */ + +#define OMNIBOOK_EC_DATA 0x62 +#define OMNIBOOK_EC_SC 0x66 + +/* + * Embedded controller status register bits + */ + +#define OMNIBOOK_EC_STAT_OBF 0x01 /* Output buffer full */ +#define OMNIBOOK_EC_STAT_IBF 0x02 /* Input buffer full */ + + +/* + * Embedded controller commands + */ + +#define OMNIBOOK_EC_CMD_READ 0x80 +#define OMNIBOOK_EC_CMD_WRITE 0x81 + +/* + * Wait for embedded controller buffer + */ + +static int omnibook_ec_wait(u8 event) +{ + int timeout = OMNIBOOK_TIMEOUT; + + switch (event) { + case OMNIBOOK_EC_STAT_OBF: + while (!(inb(OMNIBOOK_EC_SC) & event) && timeout--) + mdelay(1); + break; + case OMNIBOOK_EC_STAT_IBF: + while ((inb(OMNIBOOK_EC_SC) & event) && timeout--) + mdelay(1); + break; + default: + return -EINVAL; + } + if (timeout > 0) + return 0; + return -ETIME; +} + +/* + * Read from the embedded controller + * Decide at run-time if we can use the much cleaner ACPI EC driver instead of + * this implementation, this is the case if ACPI has been compiled and is not + * disabled. + */ + +static int omnibook_ec_read(const struct omnibook_operation *io_op, u8 * data) +{ + int retval; + +#ifdef CONFIG_ACPI_EC + if (likely(!acpi_disabled)) { + retval = ec_read((u8) io_op->read_addr, data); + if (io_op->read_mask) + *data &= io_op->read_mask; +// dprintk("ACPI EC read at %lx success %i.\n", io_op->read_addr, retval); + return retval; + } +#endif + spin_lock_irq(&omnibook_ec_lock); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF); + if (retval) + goto end; + outb(OMNIBOOK_EC_CMD_READ, OMNIBOOK_EC_SC); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF); + if (retval) + goto end; + outb((u8) io_op->read_addr, OMNIBOOK_EC_DATA); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_OBF); + if (retval) + goto end; + *data = inb(OMNIBOOK_EC_DATA); + if (io_op->read_mask) + *data &= io_op->read_mask; + end: + spin_unlock_irq(&omnibook_ec_lock); +// dprintk("Custom EC read at %lx success %i.\n", io_op->read_addr, retval); + return retval; +} + +/* + * Write to the embedded controller: + * If OMNIBOOK_LEGACY is set, decide at run-time if we can use the much cleaner + * ACPI EC driver instead of this legacy implementation. + * This is the case if ACPI has been compiled and is not + * disabled. + * If OMNIBOOK_LEGACY is unset, we drop our custoim implementation + */ + +static int omnibook_ec_write(const struct omnibook_operation *io_op, u8 data) +{ + int retval; + +#ifdef CONFIG_ACPI_EC + if (likely(!acpi_disabled)) { + retval = ec_write((u8) io_op->write_addr, data); +// dprintk("ACPI EC write at %lx success %i.\n", io_op->write_addr, retval); + return retval; + } +#endif + + spin_lock_irq(&omnibook_ec_lock); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF); + if (retval) + goto end; + outb(OMNIBOOK_EC_CMD_WRITE, OMNIBOOK_EC_SC); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF); + if (retval) + goto end; + outb((u8) io_op->write_addr, OMNIBOOK_EC_DATA); + retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF); + if (retval) + goto end; + outb(data, OMNIBOOK_EC_DATA); + end: + spin_unlock_irq(&omnibook_ec_lock); +// dprintk("Custom EC write at %lx success %i.\n", io_op->write_addr, retval); + return retval; +} + +static int omnibook_ec_display(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval; + u8 raw_state; + + retval = __backend_byte_read(io_op, &raw_state); + if (retval < 0) + return retval; + + *state = !!(raw_state) & DISPLAY_CRT_DET; + + return DISPLAY_CRT_DET; +} + +/* + * Backend interface declarations + */ + +struct omnibook_backend ec_backend = { + .name = "ec", + .byte_read = omnibook_ec_read, + .byte_write = omnibook_ec_write, + .display_get = omnibook_ec_display, +}; + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/cooling.c +++ linux-3.2.0/ubuntu/omnibook/cooling.c @@ -0,0 +1,97 @@ +/* + * colling.c -- cooling methods feature + * + * 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, 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. + * + * Written by Mathieu Bérard , 2007 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_cooling_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + len += sprintf(buffer + len, "Cooling method : %s\n", + io_op->backend->cooling_state ? "Performance" : "Powersave" ); + + mutex_unlock(&io_op->backend->mutex); + return len; +} + +static int omnibook_cooling_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + + if (*buffer == '0') { + retval = __backend_byte_write(io_op, + TSM70_COOLING_OFFSET + TSM70_COOLING_POWERSAVE); + } else if (*buffer == '1') { + retval = __backend_byte_write(io_op, + TSM70_COOLING_OFFSET + TSM70_COOLING_PERF); + } else { + retval = -EINVAL; + goto out; + } + + /* *buffer is either '0' or '1' here */ + if (!retval) + io_op->backend->cooling_state = *buffer - '0' ; + + mutex_unlock(&io_op->backend->mutex); + + out: + return retval; +} + +static int __init omnibook_cooling_init(struct omnibook_operation *io_op) +{ + mutex_lock(&io_op->backend->mutex); + /* XXX: Assumed default cooling method: performance */ + io_op->backend->cooling_state = TSM70_COOLING_PERF; + mutex_unlock(&io_op->backend->mutex); + return 0; +} + +static void __exit omnibook_cooling_exit(struct omnibook_operation *io_op) +{ + /* Set back cooling method to performance */ + backend_byte_write(io_op, TSM70_COOLING_OFFSET + TSM70_COOLING_PERF); +} + +static struct omnibook_tbl cooling_table[] __initdata = { + {TSM70 | TSX205, {CDI, 0, TSM70_FN_INDEX, 0, 0, 0 }}, + {0,} +}; + +struct omnibook_feature __declared_feature cooling_driver = { + .name = "cooling", + .enabled = 1, + .read = omnibook_cooling_read, + .write = omnibook_cooling_write, + .init = omnibook_cooling_init, + .exit = omnibook_cooling_exit, + .ectypes = TSM70 | TSX205, + .tbl = cooling_table, +}; + +module_param_named(cooling, cooling_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(cooling, "Use 0 to disable, 1 to enable CPU cooling method control"); + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/pio.c +++ linux-3.2.0/ubuntu/omnibook/pio.c @@ -0,0 +1,173 @@ +/* + * pio.c -- low level functions I/O ports + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include +#include +#include +#include + +#include +#include "hardware.h" + +/* + * IO port backend. Only support single or dual ports operations + * private data structure: it's the linked list of requested ports + * + * Race condition issue: omnibook_pio_init/exit functions are only called from + * omnibook_backend_match and omnibook_remove from init.c, this should happen + * only at module init/exit time so there is no need for a lock. + */ + +struct pio_priv_data_t { + unsigned long addr; + struct kref refcount; + struct list_head list; +}; + +static struct pio_priv_data_t pio_priv_data = { + .addr = 0, + .list = LIST_HEAD_INIT(pio_priv_data.list), +}; + +/* + * Match an entry in the linked list helper function: see if we have and entry + * whose addr field match maddr + */ +static struct pio_priv_data_t *omnibook_match_port(struct pio_priv_data_t *data, + unsigned long maddr) +{ + struct pio_priv_data_t *cursor; + + list_for_each_entry(cursor, &data->list, list) { + if (cursor->addr == maddr) { + return cursor; + } + } + return NULL; +} + +/* + * See if we have to request raddr + */ +static int omnibook_claim_port(struct pio_priv_data_t *data, unsigned long raddr) +{ + struct pio_priv_data_t *match, *new; + + match = omnibook_match_port(data, raddr); + if (match) { + /* Already requested by us: increment kref and quit */ + kref_get(&match->refcount); + return 0; + } + + /* there was no match: request the region and add to list */ + if (!request_region(raddr, 1, OMNIBOOK_MODULE_NAME)) { + printk(O_ERR "Request I/O port error\n"); + return -ENODEV; + } + + new = kmalloc(sizeof(struct pio_priv_data_t), GFP_KERNEL); + if (!new) { + release_region(raddr, 1); + return -ENOMEM; + } + + kref_init(&new->refcount); + new->addr = raddr; + list_add(&new->list, &data->list); + + return 0; +} + +/* + * Register read_addr and write_addr + */ +static int omnibook_pio_init(const struct omnibook_operation *io_op) +{ + int retval = 0; + + if (io_op->read_addr + && (retval = omnibook_claim_port(io_op->backend->data, io_op->read_addr))) + goto out; + + if (io_op->write_addr && (io_op->write_addr != io_op->read_addr)) + retval = omnibook_claim_port(io_op->backend->data, io_op->write_addr); + + out: + return retval; +} + +/* + * REALLY release a port + */ +static void omnibook_free_port(struct kref *ref) +{ + struct pio_priv_data_t *data; + + data = container_of(ref, struct pio_priv_data_t, refcount); + release_region(data->addr, 1); + list_del(&data->list); + kfree(data); +} + +/* + * Unregister read_addr and write_addr + */ +static void omnibook_pio_exit(const struct omnibook_operation *io_op) +{ + struct pio_priv_data_t *match; + + match = omnibook_match_port(io_op->backend->data, io_op->read_addr); + if (match) + kref_put(&match->refcount, omnibook_free_port); + + match = omnibook_match_port(io_op->backend->data, io_op->write_addr); + if (match) + kref_put(&match->refcount, omnibook_free_port); + +} + +static int omnibook_io_read(const struct omnibook_operation *io_op, u8 * value) +{ + *value = inb(io_op->read_addr); + if (io_op->read_mask) + *value &= io_op->read_mask; + return 0; +} + +static int omnibook_io_write(const struct omnibook_operation *io_op, u8 value) +{ + outb(io_op->write_addr, value); + return 0; +} + +/* + * Backend interface declarations + */ +struct omnibook_backend pio_backend = { + .name = "pio", + .data = &pio_priv_data, + .init = omnibook_pio_init, + .exit = omnibook_pio_exit, + .byte_read = omnibook_io_read, + .byte_write = omnibook_io_write, +}; + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/touchpad.c +++ linux-3.2.0/ubuntu/omnibook/touchpad.c @@ -0,0 +1,126 @@ +/* + * touchpad.c -- enable/disable touchpad + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_touchpad_set(struct omnibook_operation *io_op, int status) +{ + int retval = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if ((retval = __omnibook_toggle(io_op, !!status))) { + printk(O_ERR "Failed touchpad %sable command.\n", status ? "en" : "dis"); + goto out; + } + + io_op->backend->touchpad_state = !!status; + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Power management handlers: redisable touchpad on resume (if necessary) + */ +static int omnibook_touchpad_resume(struct omnibook_operation *io_op) +{ + int retval; + mutex_lock(&io_op->backend->mutex); + retval = __omnibook_toggle(io_op, !!io_op->backend->touchpad_state); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Hardware query is unsupported, so reading is unreliable. + */ +static int omnibook_touchpad_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + len += + sprintf(buffer + len, "Last touchpad action was an %s command.\n", + io_op->backend->touchpad_state ? "enable" : "disable"); + + mutex_unlock(&io_op->backend->mutex); + return len; +} + +static int omnibook_touchpad_write(char *buffer, struct omnibook_operation *io_op) +{ + int cmd; + + if (*buffer == '0' || *buffer == '1') { + cmd = *buffer - '0'; + if (!omnibook_touchpad_set(io_op, cmd)) { + dprintk("%sabling touchpad.\n", cmd ? "En" : "Dis"); + } + } else { + return -EINVAL; + } + return 0; +} + + +static int __init omnibook_touchpad_init(struct omnibook_operation *io_op) +{ + mutex_lock(&io_op->backend->mutex); + /* Touchpad is assumed to be enabled by default */ + io_op->backend->touchpad_state = 1; + mutex_unlock(&io_op->backend->mutex); + return 0; +} + +/* + * Reenable touchpad upon exit + */ +static void __exit omnibook_touchpad_cleanup(struct omnibook_operation *io_op) +{ + omnibook_touchpad_set(io_op, 1); + printk(O_INFO "Enabling touchpad.\n"); +} + +static struct omnibook_tbl touchpad_table[] __initdata = { + {XE3GF | XE3GC | TSP10, + COMMAND(KBC, OMNIBOOK_KBC_CMD_TOUCHPAD_ENABLE, OMNIBOOK_KBC_CMD_TOUCHPAD_DISABLE)}, + {TSM70, {CDI, 0, TSM70_FN_INDEX, 0, TSM70_TOUCHPAD_ON, TSM70_TOUCHPAD_OFF}}, + {0,} +}; + +static struct omnibook_feature __declared_feature touchpad_driver = { + .name = "touchpad", + .enabled = 1, + .read = omnibook_touchpad_read, + .write = omnibook_touchpad_write, + .init = omnibook_touchpad_init, + .exit = omnibook_touchpad_cleanup, + .resume = omnibook_touchpad_resume, + .ectypes = XE3GF | XE3GC | TSP10 | TSM70, + .tbl = touchpad_table, +}; + +module_param_named(touchpad, touchpad_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(touchpad, "Use 0 to disable, 1 to enable touchpad handling"); + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/display.c +++ linux-3.2.0/ubuntu/omnibook/display.c @@ -0,0 +1,114 @@ +/* + * display.c -- External display (LCD,VGA,TV-OUT) feature + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static const char display_name[][16] = { + "Internal LCD", + "External VGA", + "External TV-OUT", + "External DVI", +}; + +static int omnibook_display_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int retval; + unsigned int sta, en_mask, det_mask; + + retval = backend_display_get(io_op, &sta); + if (retval < 0) + return retval; + + for (en_mask = DISPLAY_LCD_ON; en_mask <= DISPLAY_DVI_ON; en_mask = en_mask << 1) { + det_mask = en_mask << 4; /* see display masks in omnibook.h */ + if (!(retval & en_mask) && !(retval & det_mask)) + continue; /* not supported */ + len += sprintf(buffer + len, "%s:", display_name[ffs(en_mask) - 1]); + if (retval & det_mask) + len += + sprintf(buffer + len, " display %s", + (sta & det_mask) ? "present" : "absent"); + if (retval & en_mask) + len += + sprintf(buffer + len, " port %s", + (sta & en_mask) ? "enabled" : "disabled"); + len += sprintf(buffer + len, "\n"); + } + + return len; +} + +static int omnibook_display_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + unsigned int state; + char *endp; + + state = simple_strtoul(buffer, &endp, 16); + if (endp == buffer) + return -EINVAL; + else + retval = backend_display_set(io_op, state); + + return retval; +} + +static struct omnibook_feature display_driver; + +static int __init omnibook_display_init(struct omnibook_operation *io_op) +{ + int retval; + unsigned int state; + + /* Disable file writing if unsuported by backend */ + if (!io_op->backend->display_set) + display_driver.write = NULL; + + retval = backend_display_get(io_op, &state); + if (retval < 0) + return retval; + else + return 0; +} + +static struct omnibook_tbl display_table[] __initdata = { + {TSM70 | TSX205, {ACPI,}}, + {TSM40, {SMI, SMI_GET_DISPLAY_STATE, SMI_SET_DISPLAY_STATE, 0, 0, 0}}, + {XE3GF | TSP10 | TSM70 | TSM30X | TSM40, SIMPLE_BYTE(EC, XE3GF_STA1, XE3GF_SHDD_MASK)}, + {XE3GC, SIMPLE_BYTE(EC, XE3GC_STA1, XE3GC_CRTI_MASK)}, + {OB500 | OB510 | OB6000 | OB6100 | XE4500, SIMPLE_BYTE(EC, OB500_STA1, OB500_CRTS_MASK)}, + {OB4150, SIMPLE_BYTE(EC, OB4150_STA2, OB4150_CRST_MASK)}, + {0,} +}; + +static struct omnibook_feature __declared_feature display_driver = { + .name = "display", + .enabled = 1, + .init = omnibook_display_init, + .read = omnibook_display_read, + .write = omnibook_display_write, + .ectypes = + XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | OB4150 | TSP10 | TSM70 | TSM30X | + TSM40 | TSX205, + .tbl = display_table, +}; + +module_param_named(display, display_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(display, "Use 0 to disable, 1 to enable display status handling"); +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/lib.c +++ linux-3.2.0/ubuntu/omnibook/lib.c @@ -0,0 +1,81 @@ +/* + * lib.c -- Generic helpers functions + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include "hardware.h" +#include "compat.h" +#include + +/* + * Generic funtion for applying a mask on a value + * Hack: degenerate to omnibook_toggle if there is no read method + * of if the read address is 0, this is used in blank.c + */ +int __omnibook_apply_write_mask(const struct omnibook_operation *io_op, int toggle) +{ + int retval = 0; + int mask; + u8 data; + + if(!(io_op->backend->byte_read && io_op->read_addr)) + return __omnibook_toggle(io_op,toggle); + + if ((retval = __backend_byte_read(io_op, &data))) + return retval; + + if (toggle == 1) + mask = io_op->on_mask; + else if (toggle == 0) + mask = io_op->off_mask; + else + return -EINVAL; + + if (mask > 0) + data |= (u8) mask; + else if (mask < 0) + data &= ~((u8) (-mask)); + else + return -EINVAL; + + retval = __backend_byte_write(io_op, data); + + return retval; +} + +/* + * Helper for toggle like operations + */ +int __omnibook_toggle(const struct omnibook_operation *io_op, int toggle) +{ + int retval; + u8 data; + + data = toggle ? io_op->on_mask : io_op->off_mask; + retval = __backend_byte_write(io_op, data); + return retval; +} + +void omnibook_report_key( struct input_dev *dev, unsigned int keycode) +{ + input_report_key(dev, keycode, 1); + input_sync(dev); + input_report_key(dev, keycode, 0); + input_sync(dev); +} + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/hardware.h +++ linux-3.2.0/ubuntu/omnibook/hardware.h @@ -0,0 +1,582 @@ +/* + * hardware.h -- low level definitions to access Embedded Controller and co. + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006-2007 + */ + +#include +#include "compat.h" + +/* + * Quite ugly: + * on_mask and off_maks are also used to store the i8042 data for kbc backend. + * an union seemed overkilled + */ + +struct omnibook_backend; + +struct omnibook_operation { + struct omnibook_backend *backend; + unsigned long read_addr; /* address for data reading */ + unsigned long write_addr; /* address for data writing */ + u8 read_mask; /* read mask */ + int on_mask; /* mask to set (pos value) or unset (neg value) to put feature in on state */ + int off_mask; /* mask to set (pos value) or unset (neg value) to put feature in off state */ +}; + +#define COMMAND(backend,data_on,data_off) { backend, 0, 0, 0, data_on, data_off } +#define SIMPLE_BYTE(backend,addr,mask) { backend, addr, addr, mask, 0, 0 } + +struct omnibook_tbl { + enum omnibook_ectype_t ectypes; + struct omnibook_operation io_op; +}; + +/* + * Backend interface definition + */ + +struct omnibook_backend { + const char *name; /* backend name */ + struct mutex mutex; /* serializes all access to backend functions */ + const unsigned int hotkeys_read_cap; /* hotkey probing mask */ + const unsigned int hotkeys_write_cap; /* hotkey setting mask */ + + /* Public data fields, access with mutex held */ + unsigned int hotkeys_state; /* saved hotkeys state */ + unsigned int touchpad_state; /* saved touchpad state */ + unsigned int muteled_state; /* saved muteled state */ + unsigned int cooling_state; /* saved cooling method state */ + + /* Public function pointers */ + int (*init) (const struct omnibook_operation *); + void (*exit) (const struct omnibook_operation *); + int (*byte_read) (const struct omnibook_operation *, u8 *); + int (*byte_write) (const struct omnibook_operation *, u8); + int (*aerial_get) (const struct omnibook_operation *, unsigned int *); + int (*aerial_set) (const struct omnibook_operation *, unsigned int); + int (*hotkeys_get) (const struct omnibook_operation *, unsigned int *); + int (*hotkeys_set) (const struct omnibook_operation *, unsigned int); + int (*display_get) (const struct omnibook_operation *, unsigned int *); + int (*display_set) (const struct omnibook_operation *, unsigned int); + int (*throttle_get) (const struct omnibook_operation *, unsigned int *); + int (*throttle_set) (const struct omnibook_operation *, unsigned int); + + /* Private fields, never to be accessed outside backend code */ + struct kref kref; /* Reference counter of this backend */ + void *data; /* private data pointer */ + int already_failed; /* Backend init already failed at least once */ +}; + +extern struct omnibook_backend kbc_backend; +extern struct omnibook_backend pio_backend; +extern struct omnibook_backend ec_backend; +extern struct omnibook_backend acpi_backend; +extern struct omnibook_backend nbsmi_backend; +extern struct omnibook_backend compal_backend; + +#define KBC &kbc_backend +#define PIO &pio_backend +#define EC &ec_backend +#define ACPI &acpi_backend +#define SMI &nbsmi_backend +#define CDI &compal_backend + +int __omnibook_apply_write_mask(const struct omnibook_operation *io_op, int toggle); +int __omnibook_toggle(const struct omnibook_operation *io_op, int toggle); + +/* + * Lock helper functions. Defines locking and __prefixed non locking variants. + */ + +#define helper_func(func) \ +static inline int backend_##func##_get(const struct omnibook_operation *io_op, unsigned int *data) \ +{ \ + int retval; \ + if(mutex_lock_interruptible(&io_op->backend->mutex)) \ + return -ERESTARTSYS; \ + retval = io_op->backend->func##_get(io_op, data); \ + mutex_unlock(&io_op->backend->mutex); \ + return retval; \ +} \ +static inline int backend_##func##_set(const struct omnibook_operation *io_op, unsigned int data) \ +{ \ + int retval; \ + if(mutex_lock_interruptible(&io_op->backend->mutex)) \ + return -ERESTARTSYS; \ + retval = io_op->backend->func##_set(io_op, data); \ + mutex_unlock(&io_op->backend->mutex); \ + return retval; \ +}\ +static inline int __backend_##func##_get(const struct omnibook_operation *io_op, unsigned int *data) \ +{ \ + int retval; \ + WARN_ON(!mutex_is_locked(&io_op->backend->mutex)); \ + retval = io_op->backend->func##_get(io_op, data); \ + return retval; \ +} \ +static inline int __backend_##func##_set(const struct omnibook_operation *io_op, unsigned int data) \ +{ \ + int retval; \ + WARN_ON(!mutex_is_locked(&io_op->backend->mutex)); \ + retval = io_op->backend->func##_set(io_op, data); \ + return retval; \ +} + +helper_func(aerial) +helper_func(hotkeys) +helper_func(display) +helper_func(throttle) + +static inline int backend_byte_read(const struct omnibook_operation *io_op, u8 *data) +{ + int retval; + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + retval = io_op->backend->byte_read(io_op, data); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static inline int backend_byte_write(const struct omnibook_operation *io_op, u8 data) +{ + int retval; + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + retval = io_op->backend->byte_write(io_op, data); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static inline int __backend_byte_read(const struct omnibook_operation *io_op, u8 *data) +{ + int retval; + WARN_ON(!mutex_is_locked(&io_op->backend->mutex)); + retval = io_op->backend->byte_read(io_op, data); + return retval; +} + +static inline int __backend_byte_write(const struct omnibook_operation *io_op, u8 data) +{ + int retval; + WARN_ON(!mutex_is_locked(&io_op->backend->mutex)); + retval = io_op->backend->byte_write(io_op, data); + return retval; +} + +static inline int omnibook_apply_write_mask(const struct omnibook_operation *io_op, int toggle) +{ + int retval; + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + retval = __omnibook_apply_write_mask(io_op, toggle); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static inline int omnibook_toggle(const struct omnibook_operation *io_op, int toggle) +{ + int retval; + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + retval = __omnibook_toggle(io_op, toggle); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Timeout in ms for sending to controller + */ + +#define OMNIBOOK_TIMEOUT 250 + + +/* + * Embedded controller adresses + */ + +#define XE3GF_CHGM 0x90 /* , 16 bit */ +#define XE3GF_CHGS 0x92 /* , 16 bit */ +#define XE3GF_CHGC 0x94 /* Current charge of board, 16 bit */ +#define XE3GF_CHGV 0x96 /* Current voltage, 16 bit */ +#define XE3GF_CHGA 0x98 /* Current intensity, 16 bit */ +#define XE3GF_BAL 0x9A /* Battery present status */ +#define XE3GF_STA1 0x9C /* Various status bits */ +#define XE3GF_CSPR 0xA1 /* Port replicator status, 1 bit */ +#define XE3GF_ADP 0xA3 /* AC acapter status, 1 bit */ +#define XE3GF_FOT 0xA5 /* Fan off temperature, 8 bit */ +#define XE3GF_FSD1 0xA6 /* Fan on temperature, 8 bit */ +#define XE3GF_FSD2 0xA7 /* Fan level 2 temperature, 8 bit */ +#define XE3GF_FSD3 0xA8 /* Fan level 3 temperature, 8 bit */ +#define XE3GF_FSD4 0xA9 /* Fan level 4 temperature, 8 bit */ +#define XE3GF_FSD5 0xAA /* Fan level 5 temperature, 8 bit */ +#define XE3GF_FSD6 0xAB /* Fan level 6 temperature, 8 bit */ +#define XE3GF_FSD7 0xAC /* Fan level 7 temperature, 8 bit */ +#define XE3GF_FSRD 0xAD /* Fan status, 8 bit */ +#define XE3GF_CTMP 0xB0 /* CPU tempetature, 8 bit */ +#define XE3GF_BRTS 0xB9 /* LCD brightness, 4 bit */ +#define XE3GF_BTY0 0xC0 /* Battery 0 type, 1 bit */ +#define XE3GF_BST0 0xC1 /* Battery 0 status, 3 bit */ +#define XE3GF_BRC0 0xC2 /* Battery 0 remaining capacity, 16 bit */ +#define XE3GF_BSN0 0xC4 /* Battery 0 serial number 16 bit */ +#define XE3GF_BPV0 0xC6 /* Battery 0 present voltage, 16 bit */ +#define XE3GF_BDV0 0xC8 /* Battery 0 design voltage 16 bit */ +#define XE3GF_BDC0 0xCA /* Battery 0 design capacity 16 bit */ +#define XE3GF_BFC0 0xCC /* Battery 0 last full capacity 16 bit */ +#define XE3GF_GAU0 0xCE /* Battery 0 gauge, 8 bit */ +#define XE3GF_BTY1 0xD0 /* Battery 1 type, 1 bit */ +#define XE3GF_BST1 0xD1 /* Battery 1 status, 3 bit */ +#define XE3GF_BRC1 0xD2 /* Battery 1 remaining capacity, 16 bit */ +#define XE3GF_BSN1 0xD4 /* Battery 1 serial number, 16 bit */ +#define XE3GF_BPV1 0xD6 /* Battery 1 present voltage, 16 bit */ +#define XE3GF_BDV1 0xD8 /* Battery 1 design voltage 16 bit */ +#define XE3GF_BDC1 0xDA /* Battery 1 design capacity 16 bit */ +#define XE3GF_BFC1 0xDC /* Battery 1 last full capacity 16 bit */ +#define XE3GF_GAU1 0xDE /* Battery 1 gauge, 8 bit */ + +/* + * Bitmasks for sub byte values + */ + +#define XE3GF_SHDD_MASK 0x40 /* External display status */ +#define XE3GF_CSPR_MASK 0x01 /* Port replicator status */ +#define XE3GF_ADP_MASK 0x20 /* AC acapter status */ +#define XE3GF_BAL0_MASK 0x01 /* Battery 0 present */ +#define XE3GF_BAL1_MASK 0x02 /* Battery 1 present */ +#define XE3GF_BMF_MASK 0x70 /* Model code */ +#define XE3GF_BTY_MASK 0x80 /* Type: Ni-MH or Li-Ion */ +#define XE3GF_BST_MASK_DSC 0x01 /* Discarging */ +#define XE3GF_BST_MASK_CHR 0x02 /* Charging */ +#define XE3GF_BST_MASK_CRT 0x04 /* Critical */ +#define XE3GF_FSRD_MASK_S1 0x01 /* Fan level 1 */ +#define XE3GF_FSRD_MASK_S2 0x02 /* Fan level 2 */ +#define XE3GF_FSRD_MASK_S3 0x04 /* Fan level 3 */ +#define XE3GF_FSRD_MASK_S4 0x08 /* Fan level 4 */ +#define XE3GF_FSRD_MASK_S5 0x10 /* Fan level 5 */ +#define XE3GF_FSRD_MASK_S6 0x20 /* Fan level 6 */ +#define XE3GF_FSRD_MASK_S7 0x40 /* Fan level 7 */ +#define XE3GF_BRTS_MASK 0x0F /* LCD brightness */ +#define XE3GF_FAN_ON_MASK 0x02 /* Fan on */ + +/* + * OmniBook XE3 GC values + */ + +#define XE3GC_CTMP 0x28 /* CPU tempetature, 8 bit */ +#define XE3GC_STA1 0x30 /* Various status bits */ +#define XE3GC_Q0A 0x31 /* Various status bits */ +#define XE3GC_CCUR 0x38 /* Current charge of board, 16 bit ? */ +#define XE3GC_CVOL 0x3A /* Current voltage, 16 bit ? */ +#define XE3GC_CARM 0x3C /* Current intensity, 16 bit ? */ +#define XE3GC_BAT 0x3E /* Battery present status */ +#define XE3GC_BST0 0x40 /* Battery 0 status, 3 bit */ +#define XE3GC_BPR0 0x41 /* Battery 0 present rate, 16 bit ? */ +#define XE3GC_BRC0 0x43 /* Battery 0 remaining capacity, 16 bit */ +#define XE3GC_BPV0 0x45 /* Battery 0 present voltage, 16 bit */ +#define XE3GC_BDV0 0x47 /* Battery 0 design voltage 16 bit */ +#define XE3GC_BDC0 0x49 /* Battery 0 design capacity 16 bit */ +#define XE3GC_BTY0 0x4A /* Battery 0 type, 1 bit ? */ +#define XE3GC_BTP0 0x4B /* Battery 0 ?, 1 bit */ +#define XE3GC_BSN0 0x4C /* Battery 0 serial number, 8 bit ? */ +#define XE3GC_BMF0 0x4D /* Battery 0 ?,8 bit */ +#define XE3GC_BST1 0x50 /* Battery 1 status, 3 bit */ +#define XE3GC_BPR1 0x51 /* Battery 1 present rate, 16 bit ? */ +#define XE3GC_BRC1 0x53 /* Battery 1 remaining capacity, 16 bit */ +#define XE3GC_BPV1 0x55 /* Battery 1 present voltage, 16 bit */ +#define XE3GC_BDV1 0x57 /* Battery 1 design voltage 16 bit */ +#define XE3GC_BDC1 0x59 /* Battery 1 design capacity 16 bit */ +#define XE3GC_BTY1 0x5A /* Battery 1 type, 1 bit ? */ +#define XE3GC_BTP1 0x5B /* Battery 1 ?, 1 bit */ +#define XE3GC_BSN1 0x5C /* Battery 1 serial number, 8 bit ? */ +#define XE3GC_BMF1 0x5D /* Battery 1 ?,8 bit */ +#define XE3GC_STA2 0x61 /* Various status bits */ +#define XE3GC_BTVL 0x6A /* LCD brightness, 4 bit */ + +/* + * Bitmasks for sub byte values + */ + +#define XE3GC_ADP_MASK 0x40 /* AC acapter status */ +#define XE3GC_BAT0_MASK 0x01 /* Battery 0 present */ +#define XE3GC_BAT1_MASK 0x02 /* Battery 1 present */ +#define XE3GC_BTY_MASK 0x01 /* Type: Ni-MH or Li-Ion */ +#define XE3GC_BST_MASK_DSC 0x01 /* Discarging */ +#define XE3GC_BST_MASK_CHR 0x02 /* Charging */ +#define XE3GC_BST_MASK_CRT 0x04 /* Critical */ +#define XE3GC_CRTI_MASK 0x04 /* External display status */ +#define XE3GC_SLPB_MASK 0x01 /* Sleep button pressed */ +#define XE3GC_F5_MASK 0x02 /* Fn-F5 - LCD/CRT switch pressed */ +#define XE3GC_VOLD_MASK 0x04 /* Fn-down arrow or Volume down pressed */ +#define XE3GC_VOLU_MASK 0x08 /* Fn-up arrow or Volume up pressed */ +#define XE3GC_MUTE_MASK 0x10 /* Fn+F7 - Volume mute pressed */ +#define XE3GC_CNTR_MASK 0x20 /* Fn+F3/Fn+F4 - Contrast up or down pressed */ +#define XE3GC_BRGT_MASK 0x40 /* Fn+F1/Fn+F2 - Brightness up or down pressed */ +#define XE3GC_BTVL_MASK 0x0F /* LCD brightness */ + +/* + * Toshiba Satellite A105 values and mask + */ + +#define A105_BNDT 0xA3 /* LCD brightness */ +#define A105_BNDT_MASK 0x0F + +/* + * Fujitsu Amilo D values + */ + +#define AMILOD_TMP 0x28 /* CPU tempetature, 8 bit */ +#define AMILOD_STA1 0x30 /* Various status bits */ +#define AMILOD_BAT 0x3E /* Battery present status */ +#define AMILOD_BDC0 0x40 /* Battery 0 design capacity 16 bit */ +#define AMILOD_BDV0 0x42 /* Battery 0 design voltage 16 bit */ +#define AMILOD_BTY0 0x44 /* Battery 0 type, 1 bit ? */ +#define AMILOD_BST0 0x45 /* Battery 0 status, 3 bit */ +#define AMILOD_BPR0 0x46 /* Battery 0 present rate, 16 bit ? */ +#define AMILOD_BRC0 0x48 /* Battery 0 remaining capacity, 16 bit */ +#define AMILOD_BPV0 0x4A /* Battery 0 present voltage, 16 bit */ +#define AMILOD_BTP0 0x4C /* Battery 0 ?, 1 bit */ +#define AMILOD_BDC1 0x50 /* Battery 1 design capacity 16 bit */ +#define AMILOD_BDV1 0x52 /* Battery 1 design voltage 16 bit */ +#define AMILOD_BTY1 0x54 /* Battery 1 type, 1 bit ? */ +#define AMILOD_BST1 0x55 /* Battery 1 status, 3 bit */ +#define AMILOD_BPR1 0x56 /* Battery 1 present rate, 16 bit ? */ +#define AMILOD_BRC1 0x58 /* Battery 1 remaining capacity, 16 bit */ +#define AMILOD_BPV1 0x5A /* Battery 1 present voltage, 16 bit */ +#define AMILOD_BTP1 0x5C /* Battery 1 ?, 1 bit */ +#define AMILOD_CBRG 0x6F /* LCD brightness, 4 bit */ + +/* + * Bitmasks for sub byte values + */ + +#define AMILOD_ADP_MASK 0x40 /* AC acapter status */ +#define AMILOD_BAT0_MASK 0x01 /* Battery 0 present */ +#define AMILOD_BAT1_MASK 0x02 /* Battery 1 present */ +#define AMILOD_BTY_MASK 0x01 /* Type: Ni-MH or Li-Ion */ +#define AMILOD_BST_MASK_DSC 0x01 /* Discarging */ +#define AMILOD_BST_MASK_CHR 0x02 /* Charging */ +#define AMILOD_BST_MASK_CRT 0x04 /* Critical */ +#define AMILOD_CBRG_MASK 0x0F /* LCD brightness */ + +/* + * OmniBook 500, 510, 6000, 6100, XE2 values + */ + +#define OB500_STA1 0x44 /* Various status bits */ +#define OB500_STA2 0x50 /* Various status bits */ +#define OB500_CTMP 0x55 /* CPU tempetature, 8 bit */ +#define OB500_BT1I 0x58 /* Battery 1 ? 16 bit */ +#define OB500_BT1C 0x5A /* Battery 1 remaining capacity 16 bit ? */ +#define OB500_BT1V 0x5C /* Battery 1 present voltage 16 bit ? */ +#define OB500_BT1S 0x5E /* Battery 1 status 3 bit ? */ +#define OB500_BT2I 0x6A /* Battery 2 ? 16 bit */ +#define OB500_BT2C 0x6C /* Battery 2 remaining capacity 16 bit ? */ +#define OB500_BT2V 0x6E /* Battery 2 present voltage 16 bit ? */ +#define OB500_BT2S 0x70 /* Battery 2 status 3 bit ? */ +#define OB500_BT3I 0x5F /* Battery 3 ? 16 bit */ +#define OB500_BT3C 0x61 /* Battery 3 remaining capacity 16 bit ? */ +#define OB500_BT3V 0x63 /* Battery 3 present voltage 16 bit ? */ +#define OB500_BT3S 0x65 /* Battery 3 status 3 bit ? */ + +#define OB6000_STA1 0x77 /* Various status bits */ + +#define XE2_STA1 0x50 /* Various status bits */ + +/* + * Bitmasks for sub byte values + */ + +#define OB500_LIDS_MASK 0x01 /* LID status */ +#define OB500_CRTS_MASK 0x20 /* External display status */ +#define OB500_SLPS_MASK 0x40 /* Sleep button status */ +#define OB500_DCKS_MASK 0x80 /* Docking status */ +#define OB500_ADP_MASK 0x02 /* AC acapter status */ +#define OB500_BST_MASK_DSC 0x01 /* Discarging */ +#define OB500_BST_MASK_CHR 0x02 /* Charging */ +#define OB500_BST_MASK_CRT 0x04 /* Critical */ + +#define OB6000_FAN_MASK 0x10 /* Fan status */ + +#define XE2_ADP_MASK 0x02 /* AC acapter status */ + +/* + * OmniBook 4150 + */ + +#define OB4150_TMP 0x28 /* CPU tempetature, 8 bit */ +#define OB4150_STA1 0x2E /* Various status bits */ +#define OB4150_STA2 0x2F /* Various status bits */ +#define OB4150_ADP 0x30 /* AC acapter status, 1 bit */ +#define OB4150_DCID 0x2C /* Port replicator */ + +/* + * Bitmasks for sub byte values + */ + +#define OB4150_FAN_MASK 0x01 /* Fan status */ +#define OB4150_ADP_MASK 0x40 /* AC acapter status */ +#define OB4150_CRST_MASK 0x20 /* External display status */ + +/* + * Keyboard controller command for some laptop functions + */ + +#define OMNIBOOK_KBC_CONTROL_CMD 0x59 + +/* + * Keyboard controller command parameters for functions available via kbc + */ + +#define OMNIBOOK_KBC_CMD_ONETOUCH_ENABLE 0x90 /* Enables OneTouch buttons */ +#define OMNIBOOK_KBC_CMD_ONETOUCH_DISABLE 0x91 /* Disables OneTouch buttons */ +#define OMNIBOOK_KBC_CMD_TOUCHPAD_ENABLE 0xAA /* Enables touchpad */ +#define OMNIBOOK_KBC_CMD_TOUCHPAD_DISABLE 0xA9 /* Disables touchpad */ +#define OMNIBOOK_KBC_CMD_LCD_ON 0xE1 /* Turns LCD display on */ +#define OMNIBOOK_KBC_CMD_LCD_OFF 0xE2 /* Turns LCD display off */ +#define OMNIBOOK_KBC_CMD_MUTELED_ON 0x94 /* Turns (xe4500) Mute LED on */ +#define OMNIBOOK_KBC_CMD_MUTELED_OFF 0x95 /* Turns (xe4500) Mute LED off */ +#define OMNIBOOK_KBC_CMD_AC_POWER_ENABLE 0xC2 /* Enable AC power */ +#define OMNIBOOK_KBC_CMD_AC_POWER_DISABLE 0xC1 /* Disable AC power */ + +/* + * Other I/O ports + */ + +#define ACL00_AC_STAT 0x11B9 /* AC adapter status on ACL00 */ +#define ACL00_AC_MASK 0x04 /* Bitmask for AC adapter status on ACL00 */ +#define TOSH3K_AC_STAT 0x102D /* AC adapter status on Toshiba 3000 */ +#define TOSH3K_AC_MASK 0x08 /* Bitmask for AC adapter status on Toshiba 3000 */ +#define XE3GF_AC_STAT 0x11B9 /* AC adapter status on XE3 GF */ +#define XE3GF_AC_MASK 0x04 /* Bitmask for AC adapter status on XE3 GF */ +#define XE3GF_LID_STAT 0x11AD /* LID switch status on XE3 GF */ +#define XE3GF_LID_MASK 0x20 /* Bitmask for LID switch status on XE3 GF */ +#define XE3GC_SMIC 0xFE00 + +#define OB500_GPO1 0x8034 /* Fan control */ +#define OB510_GPO2 0x11B9 /* LCD backlight */ +#define OB510_GPIO 0x118F /* Fan control */ + +#define OB500_FAN_ON_MASK 0x0A /* Turn fan on with zero bits */ +#define OB500_FAN_OFF_MASK 0x08 /* Fan status/off */ +#define OB500_BKLT_MASK 0x40 /* LCD backlight */ +#define OB510_FAN_ON_MASK 0x18 /* Turn fan on with zero bits */ +#define OB510_FAN_OFF_MASK 0x10 /* Turn fan on */ +#define OB510_BKLT_MASK 0x01 /* LCD backlight */ + +#define XE2_FAN_MASK 0x02 /* Turn fan on with zero bit */ + +/* + * Memory adresses + */ + +#define XE3GC_BCMD 0xFFFFEBC + +/* + * Toshiba Satellite A105 values and mask + */ + +#define A105_BNDT 0xA3 /* LCD brightness */ +#define A105_BNDT_MASK 0x0F + +/* + * Index and values for Command/Data/Index interface + * Notice similitudes with commands code for kbc + */ + +#define TSM70_FN_INDEX 0x45 +#define TSM70_FN_ENABLE 0x75 +#define TSM70_FN_DISABLE 0x74 +#define TSM70_HOTKEYS_INDEX 0x59 +#define TSM70_HOTKEYS_ENABLE 0x90 +#define TSM70_HOTKEYS_DISABLE 0x91 +#define TSM70_LCD_READ 0x5C +#define TSM70_LCD_WRITE 0x5D +#define TSM70_TOUCHPAD_ON 0x80 +#define TSM70_TOUCHPAD_OFF 0x81 +#define TSM100_BLANK_INDEX 0x59 +#define TSM100_LCD_ON 0xe1 +#define TSM100_LCD_OFF 0xe2 +#define TSM70_COOLING_OFFSET 0xb0 +#define TSM70_COOLING_POWERSAVE 0x0 +#define TSM70_COOLING_PERF 0x2 + +/* Toshiba SMI funtions and constants*/ +#define SMI_FN_PRESSED 0x8f +#define SMI_SET_LCD_BRIGHTNESS 0xa2 +#define SMI_GET_LCD_BRIGHTNESS 0xa3 +#define SMI_GET_KILL_SWITCH 0xa4 +#define SMI_SET_AERIAL 0xa5 +#define SMI_GET_AERIAL 0xa6 +#define SMI_SET_DISPLAY_STATE 0xa7 +#define SMI_GET_DISPLAY_STATE 0xa8 +#define SMI_SET_FN_INTERFACE 0xa9 +#define SMI_GET_FN_INTERFACE 0xaa +#define SMI_GET_FN_LAST_SCAN 0xab +#define SMI_SET_DOCK 0xac /* Undocumented */ +#define SMI_GET_DOCK 0xad /* Undocumented */ +#define SMI_SET_FN_F5_INTERFACE 0xc2 + +#define SMI_FN_KEYS_MASK 0x01 +#define SMI_STICK_KEYS_MASK 0x02 +#define SMI_FN_TWICE_LOCK_MASK 0x04 +#define SMI_FN_DOCK_MASK 0x08 + +#define SMI_FN_SCAN 0x6d /* Fn key scancode */ +#define SMI_DOCK_SCAN 0x6e /* Dock scancode */ + +/* Toshiba HCI method and constants */ +#define HCI_METHOD "SPFC" +#define HCI_WORDS 6 + +#define HCI_GET 0xfe00 +#define HCI_SET 0xff00 + +#define HCI_HOTKEY_EVENT 0x001e +#define HCI_RF_CONTROL 0x0056 + +#define HCI_ENABLE 0x0001 +#define HCI_DISABLE 0x0000 + +#define HCI_WIRELESS_CHECK 0x0001 +#define HCI_WIRELESS_POWER 0x0200 + +#define HCI_SUCCESS 0x0000 +#define HCI_FAILURE 0x1000 +#define HCI_NOT_SUPPORTED 0x8000 + +/* Toshiba Satellite X205 methods */ +#define TSX205_EVENTS_METHOD "INFO" +#define TSX205_NOTIFY_METHOD "NTFY" +#define TSX205_KILLSW_METHOD "KLSW" +#define TSX205_SLIVDO_METHOD "CSLI" + +#define ACPI_FN_MASK 0x01 +#define ACPI_FN_SCAN 0x6e /* Fn key scancode */ + +/* HCI key definitions */ +#define HCI_FN_RELEASED 0x100 +#define HCI_MUTE 0x101 +#define HCI_1 0x102 +#define HCI_2 0x103 +#define HCI_SPACE 0x139 +#define HCI_BREAK 0x13b +#define HCI_BSM 0x13c +#define HCI_SUSPEND 0x13d +#define HCI_HIBERNATE 0x13e +#define HCI_VIDEOOUT 0x13f +#define HCI_BRIGHTNESSDOWN 0x140 +#define HCI_BRIGHTNESSUP 0x141 +#define HCI_WLAN 0x142 +#define HCI_TOUCHPAD 0x143 +#define HCI_FN_PRESSED 0x17f --- linux-3.2.0.orig/ubuntu/omnibook/init.c +++ linux-3.2.0/ubuntu/omnibook/init.c @@ -0,0 +1,535 @@ +/* + * init.c -- module initialization code + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include +#include +#include + +#include "hardware.h" +#include "laptop.h" + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) +#include +#else +#include +#endif + +/* + * For compatibility with kernel older than 2.6.11 + */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)) +typedef u32 pm_message_t; +#endif + +static int __init omnibook_probe(struct platform_device *dev); +static int __exit omnibook_remove(struct platform_device *dev); +static int omnibook_suspend(struct platform_device *dev, pm_message_t state); +static int omnibook_resume(struct platform_device *dev); + +/* + * For compatibility with kernel older than 2.6.15 + */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15)) + +#define to_platform_device(x) container_of((x), struct platform_device, dev) + +static int __init compat_omnibook_probe(struct device *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + return omnibook_probe(pdev); +} + +static int __exit compat_omnibook_remove(struct device *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + return omnibook_remove(pdev); +} + +static int compat_omnibook_suspend(struct device *dev, pm_message_t state, u32 level) +{ + struct platform_device *pdev = to_platform_device(dev); + return omnibook_suspend(pdev, state); +} + +static int compat_omnibook_resume(struct device *dev, u32 level) +{ + struct platform_device *pdev = to_platform_device(dev); + return omnibook_resume(pdev); +} + +#endif + +static struct proc_dir_entry *omnibook_proc_root = NULL; + +enum omnibook_ectype_t omnibook_ectype = NONE; + +static const char *laptop_model __initdata; + +static int omnibook_userset = 0; + +/* + * The platform_driver interface was added in linux 2.6.15 + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) + +static struct platform_device *omnibook_device; + +static struct platform_driver omnibook_driver = { + .probe = omnibook_probe, + .remove = omnibook_remove, +#ifdef CONFIG_PM + .suspend = omnibook_suspend, + .resume = omnibook_resume, +#endif + .driver = { + .name = OMNIBOOK_MODULE_NAME, + .owner = THIS_MODULE, + }, +}; + +#else /* 2.6.15 */ + +static struct device_driver omnibook_driver = { + .name = OMNIBOOK_MODULE_NAME, + .bus = &platform_bus_type, + .probe = compat_omnibook_probe, + .remove = compat_omnibook_remove, +#ifdef CONFIG_PM + .suspend = compat_omnibook_suspend, + .resume = compat_omnibook_resume, +#endif +}; + +static struct platform_device omnibook_device = { + .name = OMNIBOOK_MODULE_NAME, +}; + +#endif /* 2.6.15 */ + +/* Linked list of all enabled features */ +static struct omnibook_feature *omnibook_available_feature; + +/* Delimiters of the .features section wich holds all the omnibook_feature structs */ +extern struct omnibook_feature _start_features_driver[]; +extern struct omnibook_feature _end_features_driver[]; + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) +static int __init dmi_matched(struct dmi_system_id *dmi) +#else +static int __init dmi_matched(const struct dmi_system_id *dmi) +#endif +{ + omnibook_ectype = (enum omnibook_ectype_t)dmi->driver_data; + if (dmi->ident) + laptop_model = (char *)dmi->ident; + else + laptop_model = dmi_get_system_info(DMI_PRODUCT_VERSION); + return 1; /* return non zero means we stop the parsing selecting this entry */ +} + +/* + * Callback function for procfs file reading: the name of the file read was stored in *data + */ +static int procfile_read_dispatch(char *page, char **start, off_t off, int count, int *eof, + void *data) +{ + struct omnibook_feature *feature = (struct omnibook_feature *)data; + int len = 0; + + if (!feature || !feature->read) + return -EINVAL; + + if(off) + goto out; + + len = feature->read(page, feature->io_op); + if (len < 0) + return len; + + out: + *eof = 1; + return len; +} + +/* + * Callback function for procfs file writing: the name of the file written was stored in *data + */ +static int procfile_write_dispatch(struct file *file, const char __user * userbuf, + unsigned long count, void *data) +{ + struct omnibook_feature *feature = (struct omnibook_feature *)data; + char *kernbuf; + int retval; + + if (!feature || !feature->write) + return -EINVAL; + + kernbuf = kmalloc(count + 1, GFP_KERNEL); + if (!kernbuf) + return -ENOMEM; + + if (copy_from_user(kernbuf, userbuf, count)) { + kfree(kernbuf); + return -EFAULT; + } + + /* Make sure the string is \0 terminated */ + kernbuf[count] = '\0'; + + retval = feature->write(kernbuf, feature->io_op); + if (retval == 0) + retval = count; + + kfree(kernbuf); + + return retval; +} + +/* + * Match an ectype and return pointer to corresponding omnibook_operation. + * Also make corresponding backend initialisation if necessary, and skip + * to the next entry if it fails. + */ +static struct omnibook_operation *omnibook_backend_match(struct omnibook_tbl *tbl) +{ + int i; + struct omnibook_operation *matched = NULL; + + for (i = 0; tbl[i].ectypes; i++) { + if (omnibook_ectype & tbl[i].ectypes) { + if (tbl[i].io_op.backend->init && tbl[i].io_op.backend->init(&tbl[i].io_op)) { + dprintk("Backend %s init failed, skipping entry.\n", + tbl[i].io_op.backend->name); + continue; + } + matched = &tbl[i].io_op; + dprintk("Returning table entry nr %i.\n", i); + break; + } + } + return matched; +} + +/* + * Initialise a feature and add it to the linked list of active features + */ +static int __init omnibook_init(struct omnibook_feature *feature) +{ + int retval = 0; + mode_t pmode; + struct proc_dir_entry *proc_entry; + struct omnibook_operation *op; + + if (!feature) + return -EINVAL; + +/* + * Select appropriate backend for feature operations + * We copy the io_op field so the tbl can be initdata + */ + if (feature->tbl) { + dprintk("Begin table match of %s feature.\n", feature->name); + op = omnibook_backend_match(feature->tbl); + if (!op) { + dprintk("Match failed: disabling %s.\n", feature->name); + return -ENODEV; + } + feature->io_op = kmalloc(sizeof(struct omnibook_operation), GFP_KERNEL); + if (!feature->io_op) + return -ENOMEM; + memcpy(feature->io_op, op, sizeof(struct omnibook_operation)); + } else + dprintk("%s feature has no backend table, io_op not initialized.\n", feature->name); + +/* + * Specific feature init code + */ + if (feature->init && (retval = feature->init(feature->io_op))) { + printk(O_ERR "Init function of %s failed with error %i.\n", feature->name, retval); + goto err; + } +/* + * procfs file setup + */ + if (feature->name && feature->read) { + pmode = S_IFREG | S_IRUGO; + if (feature->write) { + pmode |= S_IWUSR; + if (omnibook_userset) + pmode |= S_IWUGO; + } + + proc_entry = create_proc_entry(feature->name, pmode, omnibook_proc_root); + + if (!proc_entry) { + printk(O_ERR "Unable to create proc entry %s\n", feature->name); + if (feature->exit) + feature->exit(feature->io_op); + retval = -ENOENT; + goto err; + } + proc_entry->data = feature; + proc_entry->read_proc = &procfile_read_dispatch; + if (feature->write) + proc_entry->write_proc = &procfile_write_dispatch; + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) + proc_entry->owner = THIS_MODULE; + #endif + } + list_add_tail(&feature->list, &omnibook_available_feature->list); + return 0; + err: + if (feature->io_op && feature->io_op->backend->exit) + feature->io_op->backend->exit(feature->io_op); + kfree(feature->io_op); + return retval; +} + +/* + * Callback function for driver registering : + * Initialize the linked list of enabled features and call omnibook_init to populate it + */ +static int __init omnibook_probe(struct platform_device *dev) +{ + int i; + struct omnibook_feature *feature; + + /* temporary hack */ + mutex_init(&kbc_backend.mutex); + mutex_init(&pio_backend.mutex); + mutex_init(&ec_backend.mutex); + + omnibook_available_feature = kzalloc(sizeof(struct omnibook_feature), GFP_KERNEL); + if (!omnibook_available_feature) + return -ENOMEM; + INIT_LIST_HEAD(&omnibook_available_feature->list); + + for (i = 0; i < _end_features_driver - _start_features_driver; i++) { + + feature = &_start_features_driver[i]; + + if (!feature->enabled) + continue; + + if ((omnibook_ectype & feature->ectypes) || (!feature->ectypes)) + omnibook_init(feature); + } + + printk(O_INFO "Enabled features:"); + list_for_each_entry(feature, &omnibook_available_feature->list, list) { + if (feature->name) + printk(" %s", feature->name); + } + printk(".\n"); + + return 0; +} + +/* + * Callback function for driver removal + */ +static int __exit omnibook_remove(struct platform_device *dev) +{ + struct omnibook_feature *feature, *temp; + + list_for_each_entry_safe(feature, temp, &omnibook_available_feature->list, list) { + list_del(&feature->list); + /* Feature specific cleanup */ + if (feature->exit) + feature->exit(feature->io_op); + /* Generic backend cleanup */ + if (feature->io_op && feature->io_op->backend->exit) + feature->io_op->backend->exit(feature->io_op); + if (feature->name) + remove_proc_entry(feature->name, omnibook_proc_root); + kfree(feature->io_op); + } + kfree(omnibook_available_feature); + + return 0; +} + +/* + * Callback function for system suspend + */ +static int omnibook_suspend(struct platform_device *dev, pm_message_t state) +{ + int retval; + struct omnibook_feature *feature; + + list_for_each_entry(feature, &omnibook_available_feature->list, list) { + if (feature->suspend) { + retval = feature->suspend(feature->io_op); + if (retval) + printk(O_ERR "Unable to suspend the %s feature (error %i).\n", feature->name, retval); + } + } + return 0; +} + +/* + * Callback function for system resume + */ +static int omnibook_resume(struct platform_device *dev) +{ + int retval; + struct omnibook_feature *feature; + + list_for_each_entry(feature, &omnibook_available_feature->list, list) { + if (feature->resume) { + retval = feature->resume(feature->io_op); + if (retval) + printk(O_ERR "Unable to resume the %s feature (error %i).\n", feature->name, retval); + } + } + return 0; +} + +/* + * Find a given available feature by its name + */ +struct omnibook_feature *omnibook_find_feature(char *name) +{ + struct omnibook_feature *feature; + + list_for_each_entry(feature, &omnibook_available_feature->list, list) { + if (!strcmp(feature->name, name)) + return feature; + } + return NULL; +} + +/* + * Maintain compatibility with the old ectype numbers: + * ex: The user set/get ectype=12 for TSM70=2^(12-1) + */ +static int __init set_ectype_param(const char *val, struct kernel_param *kp) +{ + char *endp; + int value; + + if (!val) + return -EINVAL; + + value = simple_strtol(val, &endp, 10); + if (endp == val) /* No match */ + return -EINVAL; + omnibook_ectype = 1 << (value - 1); + return 0; +} + +static int get_ectype_param(char *buffer, struct kernel_param *kp) +{ + return sprintf(buffer, "%i", ffs(omnibook_ectype)); +} + +static int __init omnibook_module_init(void) +{ + int retval; + + printk(O_INFO "Driver version %s.\n", OMNIBOOK_MODULE_VERSION); + + if (omnibook_ectype != NONE) + printk(O_WARN "Forced load with EC type %i.\n", ffs(omnibook_ectype)); + else if (dmi_check_system(omnibook_ids)) + printk(O_INFO "%s detected.\n", laptop_model); + else + printk(O_INFO "Unknown model.\n"); + + omnibook_proc_root = proc_mkdir(OMNIBOOK_MODULE_NAME, NULL); + if (!omnibook_proc_root) { + printk(O_ERR "Unable to create /proc/%s.\n", OMNIBOOK_MODULE_NAME); + return -ENOENT; + } + +/* + * The platform_driver interface was added in linux 2.6.15 + */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) + + retval = platform_driver_register(&omnibook_driver); + if (retval < 0) + return retval; + + omnibook_device = platform_device_alloc(OMNIBOOK_MODULE_NAME, -1); + if (!omnibook_device) { + platform_driver_unregister(&omnibook_driver); + return -ENOMEM; + } + + retval = platform_device_add(omnibook_device); + if (retval) { + platform_device_put(omnibook_device); + platform_driver_unregister(&omnibook_driver); + return retval; + } +#else /* 2.6.15 */ + + retval = driver_register(&omnibook_driver); + if (retval < 0) + return retval; + + retval = platform_device_register(&omnibook_device); + + if (retval) { + driver_unregister(&omnibook_driver); + return retval; + } +#endif + return 0; +} + +static void __exit omnibook_module_cleanup(void) +{ + +/* + * The platform_driver interface was added in linux 2.6.15 + */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) + platform_device_unregister(omnibook_device); + platform_driver_unregister(&omnibook_driver); +#else + platform_device_unregister(&omnibook_device); + driver_unregister(&omnibook_driver); +#endif + + if (omnibook_proc_root) + remove_proc_entry("omnibook", NULL); + printk(O_INFO "Module is unloaded.\n"); +} + +module_init(omnibook_module_init); +module_exit(omnibook_module_cleanup); + +MODULE_AUTHOR("Soós Péter, Mathieu Bérard"); +MODULE_VERSION(OMNIBOOK_MODULE_VERSION); +MODULE_DESCRIPTION + ("Kernel interface for HP OmniBook, HP Pavilion, Toshiba Satellite and Compal ACL00 laptops"); +MODULE_LICENSE("GPL"); +module_param_call(ectype, set_ectype_param, get_ectype_param, NULL, S_IRUGO); +module_param_named(userset, omnibook_userset, int, S_IRUGO); +MODULE_PARM_DESC(ectype, "Type of embedded controller firmware"); +MODULE_PARM_DESC(userset, "Use 0 to disable, 1 to enable users to set parameters"); + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/ac.c +++ linux-3.2.0/ubuntu/omnibook/ac.c @@ -0,0 +1,60 @@ +/* + * ac.c -- AC adapter related functions + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_ac_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + u8 ac; + int retval; + + retval = backend_byte_read(io_op, &ac); + if (retval < 0) + return retval; + + len += sprintf(buffer + len, "AC %s\n", (!!ac) ? "on-line" : "off-line"); + + return len; +} + +static struct omnibook_tbl ac_table[] __initdata = { + {XE3GF | TSP10 | TSM30X | TSM70, SIMPLE_BYTE(EC, XE3GF_ADP, XE3GF_ADP_MASK)}, + {XE3GC | AMILOD, SIMPLE_BYTE(EC, XE3GC_STA1, XE3GC_ADP_MASK)}, + {OB500 | OB510 | OB6000 | OB6100 | XE4500, SIMPLE_BYTE(EC, OB500_STA2, OB500_ADP_MASK)}, + {OB4150, SIMPLE_BYTE(EC, OB4150_ADP, OB4150_ADP_MASK)}, + {XE2, SIMPLE_BYTE(EC, XE2_STA1, XE2_ADP_MASK)}, + {0,} +}; + +struct omnibook_feature __declared_feature ac_driver = { + .name = "ac", +#ifdef CONFIG_OMNIBOOK_LEGACY + .enabled = 1, +#else + .enabled = 0, +#endif + .read = omnibook_ac_read, + .ectypes = XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | OB4150 | XE2 | AMILOD | TSP10 | TSM70 | TSM30X, + .tbl = ac_table, +}; + +module_param_named(ac, ac_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(ac, "Use 0 to disable, 1 to enable AC adapter status monitoring"); + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/kbc.c +++ linux-3.2.0/ubuntu/omnibook/kbc.c @@ -0,0 +1,152 @@ +/* + * kbc.c -- low level functions to access Keyboard Controller + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include +#include +#include +#include + +#include +#include "hardware.h" + +extern int omnibook_key_polling_enable(void); +extern int omnibook_key_polling_disable(void); + +/* + * Registers of the keyboard controller + */ + +#define OMNIBOOK_KBC_DATA 0x60 +#define OMNIBOOK_KBC_SC 0x64 + +/* + * Keyboard controller status register bits + */ + +#define OMNIBOOK_KBC_STAT_OBF 0x01 /* Output buffer full */ +#define OMNIBOOK_KBC_STAT_IBF 0x02 /* Input buffer full */ + + +/* + * Interrupt control + */ + +static DEFINE_SPINLOCK(omnibook_kbc_lock); + +/* + * Wait for keyboard buffer + */ + +static int omnibook_kbc_wait(u8 event) +{ + int timeout = OMNIBOOK_TIMEOUT; + + switch (event) { + case OMNIBOOK_KBC_STAT_OBF: + while (!(inb(OMNIBOOK_KBC_SC) & event) && timeout--) + mdelay(1); + break; + case OMNIBOOK_KBC_STAT_IBF: + while ((inb(OMNIBOOK_KBC_SC) & event) && timeout--) + mdelay(1); + break; + default: + return -EINVAL; + } + if (timeout > 0) + return 0; + return -ETIME; +} + +/* + * Write to the keyboard command register + */ + +static int omnibook_kbc_write_command(u8 cmd) +{ + int retval; + + spin_lock_irq(&omnibook_kbc_lock); + retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF); + if (retval) + goto end; + outb(cmd, OMNIBOOK_KBC_SC); + retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF); + end: + spin_unlock_irq(&omnibook_kbc_lock); + return retval; +} + +/* + * Write to the keyboard data register + */ + +static int omnibook_kbc_write_data(u8 data) +{ + int retval; + + spin_lock_irq(&omnibook_kbc_lock); + retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF); + if (retval) + goto end; + outb(data, OMNIBOOK_KBC_DATA); + retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF); + end: + spin_unlock_irq(&omnibook_kbc_lock); + return retval; +} + +/* + * Send a command to keyboard controller + */ + +static int omnibook_kbc_command(const struct omnibook_operation *io_op, u8 data) +{ + int retval; + + if ((retval = omnibook_kbc_write_command(OMNIBOOK_KBC_CONTROL_CMD))) + return retval; + + retval = omnibook_kbc_write_data(data); + return retval; +} + +/* + * Onetouch button hotkey handler + */ +static int omnibook_kbc_hotkeys(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval; + + retval = __omnibook_toggle(io_op, !!(state & HKEY_ONETOUCH)); + return retval; +} + +/* + * Backend interface declarations + */ +struct omnibook_backend kbc_backend = { + .name = "i8042", + .hotkeys_write_cap = HKEY_ONETOUCH, + .byte_write = omnibook_kbc_command, + .hotkeys_set = omnibook_kbc_hotkeys, +}; + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/fan.c +++ linux-3.2.0/ubuntu/omnibook/fan.c @@ -0,0 +1,183 @@ +/* + * fan.c -- fan status/control + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include +#include "hardware.h" + +static const struct omnibook_operation ctmp_io_op = { EC, XE3GF_CTMP, 0, 0, 0, 0 }; +static const struct omnibook_operation fot_io_op = { EC, XE3GF_FOT, XE3GF_FOT, 0, 0, 0 }; + +static int omnibook_get_fan(struct omnibook_operation *io_op) +{ + u8 fan; + int retval; + + if ((retval = backend_byte_read(io_op, &fan))) + return retval; + + /* + * For most models the reading is a bool + * It as to be inverted on all but OB6000|OB6100|OB4150|AMILOD + * TSP10|XE3GF|TSX205 return an integer + */ + + if (omnibook_ectype & (TSP10 | XE3GF | TSX205)) + retval = fan; + else if (omnibook_ectype & (OB6000 | OB6100 | OB4150 | AMILOD)) + retval = !!fan; + else + retval = !fan; + + return retval; +} + +static int omnibook_fan_on(struct omnibook_operation *io_op) +{ + return omnibook_apply_write_mask(io_op, 1); +} + +static int omnibook_fan_off(struct omnibook_operation *io_op) +{ + int i, retval = 0; + + if (!(omnibook_ectype & (XE3GF | TSP10 | TSX205))) { + retval = omnibook_apply_write_mask(io_op, 0); + return retval; + } else { + /* + * Special handling for XE3GF & TSP10 + */ + u8 fot, temp, fan; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + retval = __backend_byte_read(io_op, &fan); + + /* error or fan is already off */ + if (retval || !fan) + goto out; + + /* now we set FOT to current temp, then reset to initial value */ + if ((retval = __backend_byte_read(&fot_io_op, &fot))) + goto out; + if ((retval = __backend_byte_read(&ctmp_io_op, &temp))) + goto out; + + /* Wait for no longer than 250ms (this is arbitrary). */ + for (i = 0; i < 250; i++) { + __backend_byte_write(&fot_io_op, temp); + mdelay(1); + __backend_byte_read(io_op, &fan); + if (!fan) /* Fan is off */ + break; + } + __backend_byte_write(&fot_io_op, fot); + + if(i == 250 ) { + printk(O_ERR "Attempt to switch off the fan failed.\n"); + retval = -EIO; + } + + out: + mutex_unlock(&io_op->backend->mutex); + } + + + return retval; +} + +static int omnibook_fan_read(char *buffer, struct omnibook_operation *io_op) +{ + int fan; + int len = 0; + char *str; + + fan = omnibook_get_fan(io_op); + if (fan < 0) + return fan; + str = (fan) ? "on" : "off"; + + if (fan > 1) + len += sprintf(buffer + len, "Fan is %s (level %d)\n", str, fan); + else + len += sprintf(buffer + len, "Fan is %s\n", str); + + return len; +} + +static int omnibook_fan_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + + switch (*buffer) { + case '0': + retval = omnibook_fan_off(io_op); + break; + case '1': + retval = omnibook_fan_on(io_op); + break; + default: + retval = -EINVAL; + } + return retval; +} + +static struct omnibook_feature fan_driver; + +static int __init omnibook_fan_init(struct omnibook_operation *io_op) +{ + /* + * OB4150 + * XE2 + * AMILOD + * They only support fan reading + */ + if (omnibook_ectype & (OB4150 | XE2 | AMILOD)) + fan_driver.write = NULL; + return 0; +} + +static struct omnibook_tbl fan_table[] __initdata = { + {XE3GF | TSP10 | TSM70 | TSX205, {EC, XE3GF_FSRD, XE3GF_FSRD, 0, XE3GF_FAN_ON_MASK, 0}}, + {OB500, + {PIO, OB500_GPO1, OB500_GPO1, OB500_FAN_OFF_MASK, -OB500_FAN_ON_MASK, OB500_FAN_OFF_MASK}}, + {OB510, + {PIO, OB510_GPIO, OB510_GPIO, OB510_FAN_OFF_MASK, -OB510_FAN_ON_MASK, OB510_FAN_OFF_MASK}}, + {OB6000 | OB6100, + {EC, OB6000_STA1, OB6000_STA1, OB6000_FAN_MASK, OB6000_FAN_MASK, -OB6000_FAN_MASK}}, + {OB4150 | AMILOD, {EC, OB4150_STA1, 0, OB4150_FAN_MASK, 0, 0}}, + {XE2, {PIO, OB500_GPO1, 0, XE2_FAN_MASK, 0, 0}}, + {0,} +}; + +static struct omnibook_feature __declared_feature fan_driver = { + .name = "fan", + .enabled = 1, + .read = omnibook_fan_read, + .write = omnibook_fan_write, + .init = omnibook_fan_init, + .ectypes = XE3GF | OB500 | OB510 | OB6000 | OB6100 | OB4150 | XE2 | AMILOD | TSP10 | TSX205, + .tbl = fan_table, +}; + +module_param_named(fan, fan_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(fan, "Use 0 to disable, 1 to enable fan status monitor and control"); +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/nbsmi.c +++ linux-3.2.0/ubuntu/omnibook/nbsmi.c @@ -0,0 +1,968 @@ +/* + * nbsmi.c -- Toshiba SMI low-level acces code + * + * 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, 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. + * + * Written by Mathieu Bérard , 2006 + * + * Sources of inspirations for this code were: + * -Toshiba via provided hardware specification + * -Thorsten Zachmann with the 's1bl' project + * -Frederico Munoz with the 'tecra_acpi' project + * Thanks to them + */ + +#include "omnibook.h" +#include "hardware.h" +#include +#include +#include +#include +#include +#include +#include + +/* copied from drivers/input/serio/i8042-io.h */ +#define I8042_KBD_PHYS_DESC "isa0060/serio0" + +/* + * ATI's IXP PCI-LPC bridge + */ +#define INTEL_PMBASE 0x40 +#define INTEL_GPE0_EN 0x2c + +#define BUFFER_SIZE 0x20 +#define INTEL_OFFSET 0x60 +#define INTEL_SMI_PORT 0xb2 /* APM_CNT port in INTEL ICH specs */ + +/* + * Toshiba Specs state 0xef here but: + * -this would overflow (ef + 19 > ff) + * -code from Toshiba use e0, which make much more sense + */ + +#define ATI_OFFSET 0xe0 +#define ATI_SMI_PORT 0xb0 + +#define EC_INDEX_PORT 0x300 +#define EC_DATA_PORT 0x301 + +/* Masks decode for GetAeral */ +#define WLEX_MASK 0x4 +#define WLAT_MASK 0x8 +#define BTEX_MASK 0x1 +#define BTAT_MASK 0x2 + +/* + * Private data of this backend + */ +struct nbsmi_backend_data { + struct pci_dev *lpc_bridge; /* Southbridge chip ISA bridge/LPC interface PCI device */ + u8 start_offset; /* Start offset in CMOS memory */ + struct input_dev *nbsmi_input_dev; + struct work_struct fnkey_work; +}; + +/* + * Possible list of supported southbridges + * Here mostly to implement a more or less clean PCI probing + * Works only because of previous DMI probing. + * It's in compal.c + */ +extern const struct pci_device_id lpc_bridge_table[]; + +/* + * Since we are going to trigger an SMI, all registers (I assume this does not + * include esp and maybe ebp) and eflags may be mangled in the + * process. + * We also disable preemtion and IRQs upon SMI call. + */ +static inline u32 ati_do_smi_call(u16 function) +{ + unsigned long flags; + u32 retval = 0; + + local_irq_save(flags); + preempt_disable(); + +/* + * eflags, eax, ebx, ecx, edx, esi and edi are clobbered upon writing to SMI_PORT + * thus the clobber list. + * + * Equivalent pseudocode: + * + * eax = function; [non null] + * outw(eax, ATI_SMI_PORT); <- This Trigger an SMI + * if( eax == 0 ) [success if eax has been cleared] + * goto out; + * if( inb(ATI_SMI_PORT + 1) == 0) [if not in eax, success maybe be stored here] + * goto out; + * retval = -EIO; [too bad] + * out: + */ + __asm__ __volatile__("outw %%ax, %2; \ + orw %%ax, %%ax; \ + jz 1f; \ + inw %3, %%ax; \ + orw %%ax, %%ax; \ + jz 1f; \ + movl %4, %0; \ + 1:;" + : "=m" (retval) + : "a"(function), "N"(ATI_SMI_PORT), "N"(ATI_SMI_PORT+1), "i"(-EIO) + : "memory", "ebx", "ecx", "edx", "esi", "edi", "cc"); + + local_irq_restore(flags); + preempt_enable_no_resched(); + return retval; +} + +static inline u32 intel_do_smi_call(u16 function, struct pci_dev *lpc_bridge) +{ + u32 state; + unsigned long flags; + u32 retval = 0; + u32 sci_en = 0; + + local_irq_save(flags); + preempt_disable(); + +/* + * We get the PMBASE offset ( bits 15:7 at 0x40 offset of PCI config space ) + * And we access offset 2c (GPE0_EN), save the state, disable all SCI + * and restore the state after the SMI call + */ + pci_read_config_dword(lpc_bridge, INTEL_PMBASE, &sci_en); + sci_en = sci_en & 0xff80; /* Keep bits 15:7 */ + sci_en += INTEL_GPE0_EN; /* GPEO_EN offset */ + state = inl(sci_en); + outl(0, sci_en); + +/* + * eflags, eax, ebx, ecx, edx, esi and edi are clobbered upon writing to SMI_PORT + * thus the clobber list. + * + * Equivalent pseudocode: + * + * eax = function; [non null] + * outw(eax, INTEL_SMI_PORT); <- This Trigger an SMI + * if( eax == 0 ) [success if eax has been cleared] + * goto out; + * retval = -EIO; [too bad] + * out: + */ + __asm__ __volatile__("outw %%ax, %2; \ + orw %%ax, %%ax; \ + jz 1f; \ + movl %3, %0; \ + 1:;" + : "=m" (retval) + : "a"(function), "N"(INTEL_SMI_PORT), "i"(-EIO) + : "memory", "ebx", "ecx", "edx", "esi", "edi", "cc"); + + outl(state, sci_en); + local_irq_restore(flags); + preempt_enable_no_resched(); + return retval; +} + +static int nbsmi_smi_command(u16 function, + const u8 * inputbuffer, + u8 * outputbuffer, + const struct nbsmi_backend_data *priv_data) +{ + int count; + u32 retval = 0; + + + for (count = 0; count < BUFFER_SIZE; count++) { + outb(count + priv_data->start_offset, RTC_PORT(2)); + outb(*(inputbuffer + count), RTC_PORT(3)); + } + +/* + * We have to write 0xe4XX to smi_port + * where XX is the SMI function code + */ + function = (function & 0xff) << 8; + function |= 0xe4; + + switch (priv_data->lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + retval = intel_do_smi_call(function, priv_data->lpc_bridge); + break; + case PCI_VENDOR_ID_ATI: + retval = ati_do_smi_call(function); + break; + default: + BUG(); + } + + if (retval) + printk(O_ERR "smi_command failed with error %u.\n", retval); + + for (count = 0; count < BUFFER_SIZE; count++) { + outb(count + priv_data->start_offset, RTC_PORT(2)); + *(outputbuffer + count) = inb(RTC_PORT(3)); + } + + return retval; +} + +static int nbsmi_smi_read_command(const struct omnibook_operation *io_op, u8 * data) +{ + int retval; + u8 *inputbuffer; + u8 *outputbuffer; + struct nbsmi_backend_data *priv_data = io_op->backend->data; + + if (!priv_data) + return -ENODEV; + + inputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL); + if (!inputbuffer) { + retval = -ENOMEM; + goto error1; + } + + outputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL); + if (!outputbuffer) { + retval = -ENOMEM; + goto error2; + } + + retval = nbsmi_smi_command((u16) io_op->read_addr, inputbuffer, outputbuffer, priv_data); + if (retval) + goto out; + + *data = outputbuffer[0]; + + if (io_op->read_mask) + *data &= io_op->read_mask; + + out: + kfree(outputbuffer); + error2: + kfree(inputbuffer); + error1: + return retval; +} + +static int nbsmi_smi_write_command(const struct omnibook_operation *io_op, u8 data) +{ + int retval; + u8 *inputbuffer; + u8 *outputbuffer; + struct nbsmi_backend_data *priv_data = io_op->backend->data; + + if (!priv_data) + return -ENODEV; + + inputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL); + if (!inputbuffer) { + retval = -ENOMEM; + goto error1; + } + + outputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL); + if (!outputbuffer) { + retval = -ENOMEM; + goto error2; + } + + inputbuffer[0] = data; + + retval = nbsmi_smi_command((u16) io_op->write_addr, inputbuffer, outputbuffer, priv_data); + + kfree(outputbuffer); + error2: + kfree(inputbuffer); + error1: + return retval; +} + +/* + * Read/Write to INDEX/DATA interface at port 0x300 (SMSC Mailbox registers) + */ +static inline void nbsmi_ec_read_command(u8 index, u8 * data) +{ + outb(index, EC_INDEX_PORT); + *data = inb(EC_DATA_PORT); +} + +#if 0 +static inline void nbsmi_ec_write_command(u8 index, u8 data) +{ + outb(index, EC_INDEX_PORT); + outb(data, EC_DATA_PORT); +} +#endif + + +/* + * Hotkeys workflow: + * 1. Fn+Foo pressed + * 2. Scancode 0x6d generated by kbd controller + * 3. Scancode 0x6d caught by omnibook input handler + * 4. SMI Call issued -> Got keycode of last actually pressed Fn key + * 5. nbsmi_scan_table used to associate a detected keycode with a generated one + * 6. Generated keycode issued using the omnibook input device + */ + +/* + * The input handler should only bind with the standard AT keyboard. + * XXX: Scancode 0x6d won't be detected if the keyboard has already been + * grabbed (the Xorg event input driver do that) + */ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) +static int hook_connect(struct input_handler *handler, + struct input_dev *dev, + const struct input_device_id *id) +#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) +static struct input_handle *hook_connect(struct input_handler *handler, + struct input_dev *dev, + const struct input_device_id *id) +#else +static struct input_handle *hook_connect(struct input_handler *handler, + struct input_dev *dev, + struct input_device_id *id) +#endif +{ + struct input_handle *handle; + int error; + + /* the 0x0001 vendor magic number is found in atkbd.c */ + if(!(dev->id.bustype == BUS_I8042 && dev->id.vendor == 0x0001)) + goto out_nobind; + + if(!strstr(dev->phys, I8042_KBD_PHYS_DESC)) + goto out_nobind; + + dprintk("hook_connect for device %s.\n", dev->name); + + if(dev->grab) + printk(O_WARN "Input device is grabbed by %s, Fn hotkeys won't work.\n", + dev->grab->name); + + handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL); + if (!handle) +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + return -ENOMEM; +#else + return NULL; +#endif + + handle->dev = dev; + handle->handler = handler; + handle->name = "omnibook_scancode_hook"; + handle->private = handler->private; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + error = input_register_handle(handle); + if (error) { + dprintk("register_handle failed\n"); + goto out_nobind_free; + } + error = input_open_device(handle); + if (error) { + dprintk("register_handle failed\n"); + input_unregister_handle(handle); + goto out_nobind_free; + } + +#else + error = input_open_device(handle); + if (error==0) dprintk("Input device opened\n"); + else { + dprintk("opening input device failed\n"); + goto out_nobind_free; + } +#endif + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + return 0; +out_nobind_free: + kfree(handle); +out_nobind: + return -ENODEV; +#else + return handle; +out_nobind_free: + kfree(handle); +out_nobind: + return NULL; +#endif +} + +static void hook_disconnect(struct input_handle *handle) +{ + dprintk("hook_disconnect.\n"); + input_close_device(handle); +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + input_unregister_handle(handle); +#endif + kfree(handle); +} + +/* + * Hook for scancode 0x6d. Actual handling is done in a workqueue as + * the nbsmi backend might sleep. + */ + +static void hook_event(struct input_handle *handle, unsigned int event_type, + unsigned int event_code, int value) +{ + if (event_type == EV_MSC && event_code == MSC_SCAN && value == SMI_FN_SCAN) + schedule_work(&((struct nbsmi_backend_data *)handle->private)->fnkey_work); +} + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) +static const struct input_device_id hook_ids[] = { +#else +static struct input_device_id hook_ids[] = { +#endif + { + .flags = INPUT_DEVICE_ID_MATCH_EVBIT, + .evbit = { BIT(EV_KEY) }, + }, + { }, /* Terminating entry */ +}; + +static struct input_handler hook_handler = { + .event = hook_event, + .connect = hook_connect, + .disconnect = hook_disconnect, + .name = OMNIBOOK_MODULE_NAME, + .id_table = hook_ids, +}; + +/* + * Define some KEY_ that may be missing in input.h for some kernel versions + */ +#ifndef KEY_WLAN +#define KEY_WLAN 238 +#endif + +/* + * Detected scancode to keycode table + */ +static const struct { + unsigned int scancode; + unsigned int keycode; +} nbsmi_scan_table[] = { + { KEY_ESC, KEY_MUTE}, + { KEY_F1, KEY_FN_F1}, + { KEY_F2, KEY_PROG1}, + { KEY_F3, KEY_SLEEP}, + { KEY_F4, KEY_SUSPEND}, + { KEY_F5, KEY_SWITCHVIDEOMODE}, + { KEY_F6, KEY_BRIGHTNESSDOWN}, + { KEY_F7, KEY_BRIGHTNESSUP}, + { KEY_F8, KEY_WLAN}, + { KEY_F9, KEY_FN_F9}, + { KEY_SPACE, KEY_ZOOM}, + { 0,0}, +}; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) +static void omnibook_handle_fnkey(struct work_struct *work); +#else +static void omnibook_handle_fnkey(void* data); +#endif + +/* + * Register the input handler and the input device in the input subsystem + */ +static int register_input_subsystem(struct nbsmi_backend_data *priv_data) +{ + int i, retval = 0; + struct input_dev *nbsmi_input_dev; + + nbsmi_input_dev = input_allocate_device(); + if (!nbsmi_input_dev) { + retval = -ENOMEM; + goto out; + } + + nbsmi_input_dev->name = "Omnibook NbSMI scancode generator"; + nbsmi_input_dev->phys = "omnibook/input0"; + nbsmi_input_dev->id.bustype = BUS_HOST; + + set_bit(EV_KEY, nbsmi_input_dev->evbit); + + for(i=0 ; i < ARRAY_SIZE(nbsmi_scan_table); i++) + set_bit(nbsmi_scan_table[i].keycode, nbsmi_input_dev->keybit); + + retval = input_register_device(nbsmi_input_dev); + if(retval) { + input_free_device(nbsmi_input_dev); + goto out; + } + + priv_data->nbsmi_input_dev = nbsmi_input_dev; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) + INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey); +#else + INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey, priv_data); +#endif + + + hook_handler.private = priv_data; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) + retval = input_register_handler(&hook_handler); +#else + input_register_handler(&hook_handler); +#endif + + out: + return retval; +} + +/* + * Try to init the backend + * This function can be called blindly as it use a kref + * to check if the init sequence was already done. + */ +static int omnibook_nbsmi_init(const struct omnibook_operation *io_op) +{ + int retval = 0; + int i; + u8 ec_data; + u32 smi_port = 0; + struct nbsmi_backend_data *priv_data; + + /* ectypes other than TSM40 have no business with this backend */ + if (!(omnibook_ectype & TSM40)) + return -ENODEV; + + if (io_op->backend->already_failed) { + dprintk("NbSmi backend init already failed, skipping.\n"); + return -ENODEV; + } + + if (!io_op->backend->data) { + /* Fist use of the backend */ + dprintk("Try to init NbSmi\n"); + mutex_init(&io_op->backend->mutex); + mutex_lock(&io_op->backend->mutex); + kref_init(&io_op->backend->kref); + + priv_data = kzalloc(sizeof(struct nbsmi_backend_data), GFP_KERNEL); + if (!priv_data) { + retval = -ENOMEM; + goto error0; + } + + /* PCI probing: find the LPC Super I/O bridge PCI device */ + for (i = 0; !priv_data->lpc_bridge && lpc_bridge_table[i].vendor; ++i) + priv_data->lpc_bridge = + pci_get_device(lpc_bridge_table[i].vendor, lpc_bridge_table[i].device, + NULL); + + if (!priv_data->lpc_bridge) { + printk(O_ERR "Fail to find a supported LPC I/O bridge, please report\n"); + retval = -ENODEV; + goto error1; + } + + if ((retval = pci_enable_device(priv_data->lpc_bridge))) { + printk(O_ERR "Unable to enable PCI device.\n"); + goto error2; + } + + switch (priv_data->lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + priv_data->start_offset = INTEL_OFFSET; + smi_port = INTEL_SMI_PORT; + break; + case PCI_VENDOR_ID_ATI: + priv_data->start_offset = ATI_OFFSET; + smi_port = ATI_SMI_PORT; + break; + default: + BUG(); + } + + if (!request_region(smi_port, 2, OMNIBOOK_MODULE_NAME)) { + printk(O_ERR "Request SMI I/O region error\n"); + retval = -ENODEV; + goto error2; + } + + if (!request_region(EC_INDEX_PORT, 2, OMNIBOOK_MODULE_NAME)) { + printk(O_ERR "Request EC I/O region error\n"); + retval = -ENODEV; + goto error3; + } + + /* + * Try some heuristic tests to avoid enabling this interface on unsuported laptops: + * See what a port 300h read index 8f gives. Guess there is nothing if read 0xff + */ + + nbsmi_ec_read_command(SMI_FN_PRESSED, &ec_data); + dprintk("NbSmi test probe read: %x\n", ec_data); + if (ec_data == 0xff) { + printk(O_ERR "Probing at SMSC Mailbox registers failed, disabling NbSmi\n"); + retval = -ENODEV; + goto error4; + } + + retval = register_input_subsystem(priv_data); + if(retval) + goto error4; + + io_op->backend->data = priv_data; + + dprintk("NbSmi init ok\n"); + mutex_unlock(&io_op->backend->mutex); + return 0; + } else { + dprintk("NbSmi has already been initialized\n"); + kref_get(&io_op->backend->kref); + return 0; + } + error4: + release_region(EC_INDEX_PORT, 2); + error3: + release_region(smi_port, 2); + error2: + pci_dev_put(priv_data->lpc_bridge); + error1: + kfree(priv_data); + io_op->backend->data = NULL; + error0: + io_op->backend->already_failed = 1; + mutex_unlock(&io_op->backend->mutex); + mutex_destroy(&io_op->backend->mutex); + return retval; +} + +/* + * Free all allocated stuff and unregister from the input subsystem + */ +static void nbsmi_free(struct kref *ref) +{ + u32 smi_port = 0; + struct omnibook_backend *backend; + struct nbsmi_backend_data *priv_data; + + dprintk("NbSmi not used anymore: disposing\n"); + + backend = container_of(ref, struct omnibook_backend, kref); + priv_data = backend->data; + + flush_scheduled_work(); + input_unregister_handler(&hook_handler); + input_unregister_device(priv_data->nbsmi_input_dev); + + mutex_lock(&backend->mutex); + + switch (priv_data->lpc_bridge->vendor) { + case PCI_VENDOR_ID_INTEL: + smi_port = INTEL_SMI_PORT; + break; + case PCI_VENDOR_ID_ATI: + smi_port = ATI_SMI_PORT; + break; + default: + BUG(); + } + + pci_dev_put(priv_data->lpc_bridge); + release_region(smi_port, 2); + release_region(EC_INDEX_PORT, 2); + kfree(priv_data); + backend->data = NULL; + mutex_unlock(&backend->mutex); + mutex_destroy(&backend->mutex); +} + +static void omnibook_nbsmi_exit(const struct omnibook_operation *io_op) +{ + /* ectypes other than TSM40 have no business with this backend */ + BUG_ON(!(omnibook_ectype & TSM40)); + dprintk("Trying to dispose NbSmi\n"); + kref_put(&io_op->backend->kref, nbsmi_free); +} + +/* + * Adjust the lcd backlight level by delta. + * Used for Fn+F6/F7 keypress + */ +static int adjust_brighness(int delta) +{ + struct omnibook_feature *lcd_feature = omnibook_find_feature("lcd"); + struct omnibook_operation *io_op; + int retval = 0; + u8 brgt; + + if(!lcd_feature) + return -ENODEV; + + io_op = lcd_feature->io_op; + + mutex_lock(&io_op->backend->mutex); + + if(( retval = __backend_byte_read(io_op, &brgt))) + goto out; + + dprintk("FnF6/F7 pressed: adjusting britghtnes.\n"); + + if (((int) brgt + delta) < 0) + brgt = 0; + else if ((brgt + delta) > omnibook_max_brightness) + brgt = omnibook_max_brightness; + else + brgt += delta; + + retval = __backend_byte_write(io_op, brgt); + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static const struct omnibook_operation last_scan_op = SIMPLE_BYTE(SMI,SMI_GET_FN_LAST_SCAN,0); + +/* + * Workqueue handler for Fn hotkeys + */ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) +static void omnibook_handle_fnkey(struct work_struct *work) +#else +static void omnibook_handle_fnkey(void* data) +#endif +{ + int i; + u8 gen_scan; + struct input_dev *input_dev; + + if(backend_byte_read(&last_scan_op, &gen_scan)) + return; + + dprintk("detected scancode %x.\n", gen_scan); + switch(gen_scan) { + case KEY_F6: + adjust_brighness(-1); + break; + case KEY_F7: + adjust_brighness(+1); + break; + } + + for(i = 0 ; i < ARRAY_SIZE(nbsmi_scan_table); i++) { + if( gen_scan == nbsmi_scan_table[i].scancode) { + dprintk("generating keycode %i.\n", nbsmi_scan_table[i].keycode); +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) + input_dev = container_of(work, struct nbsmi_backend_data, fnkey_work)->nbsmi_input_dev; +#else + input_dev = ((struct nbsmi_backend_data *) data)->nbsmi_input_dev; +#endif + omnibook_report_key(input_dev, nbsmi_scan_table[i].keycode); + break; + } + } +} + +static int omnibook_nbsmi_get_wireless(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval = 0; + struct omnibook_operation aerial_op = SIMPLE_BYTE(SMI, SMI_GET_KILL_SWITCH, 0); + u8 data; + + if ((retval = nbsmi_smi_read_command(&aerial_op, &data))) + goto out; + + dprintk("get_wireless (kill switch) raw_state: %x\n", data); + + *state = data ? KILLSWITCH : 0; + + aerial_op.read_addr = SMI_GET_AERIAL; + + if ((retval = nbsmi_smi_read_command(&aerial_op, &data))) + goto out; + + dprintk("get_wireless (aerial) raw_state: %x\n", data); + + *state |= (data & WLEX_MASK) ? WIFI_EX : 0; + *state |= (data & WLAT_MASK) ? WIFI_STA : 0; + *state |= (data & BTEX_MASK) ? BT_EX : 0; + *state |= (data & BTAT_MASK) ? BT_STA : 0; + + out: + return retval; +} + +static int omnibook_nbsmi_set_wireless(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval = 0; + u8 data; + struct omnibook_operation aerial_op = SIMPLE_BYTE(SMI, SMI_SET_AERIAL, 0); + + data = !!(state & BT_STA); + data |= !!(state & WIFI_STA) << 0x1; + + dprintk("set_wireless raw_state: %x\n", data); + + retval = nbsmi_smi_write_command(&aerial_op, data); + + return retval; +} + +static int omnibook_nbmsi_hotkeys_get(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval; + u8 data = 0; + struct omnibook_operation hotkeys_op = SIMPLE_BYTE(SMI, SMI_GET_FN_INTERFACE, 0); + + retval = nbsmi_smi_read_command(&hotkeys_op, &data); + if (retval < 0) + return retval; + + dprintk("get_hotkeys raw_state: %x\n", data); + + *state = (data & SMI_FN_KEYS_MASK) ? HKEY_FN : 0; + *state |= (data & SMI_STICK_KEYS_MASK) ? HKEY_STICK : 0; + *state |= (data & SMI_FN_TWICE_LOCK_MASK) ? HKEY_TWICE_LOCK : 0; + *state |= (data & SMI_FN_DOCK_MASK) ? HKEY_DOCK : 0; + + return 0; +} + + +static int omnibook_nbmsi_hotkeys_set(const struct omnibook_operation *io_op, unsigned int state) +{ + int i, retval; + u8 data, rdata; + struct omnibook_operation hotkeys_op = SIMPLE_BYTE(SMI, SMI_SET_FN_F5_INTERFACE, 0); + u8* data_array; + + data = !!(state & HKEY_FNF5); + + dprintk("set_hotkeys (Fn F5) raw_state: %x\n", data); + + retval = nbsmi_smi_write_command(&hotkeys_op, data); + if (retval < 0) + return retval; + + hotkeys_op.write_addr = SMI_SET_FN_INTERFACE; + hotkeys_op.read_addr = SMI_GET_FN_INTERFACE; + + data = (state & HKEY_FN) ? SMI_FN_KEYS_MASK : 0; + data |= (state & HKEY_STICK) ? SMI_STICK_KEYS_MASK : 0; + data |= (state & HKEY_TWICE_LOCK) ? SMI_FN_TWICE_LOCK_MASK : 0; + data |= (state & HKEY_DOCK) ? SMI_FN_DOCK_MASK : 0; + + dprintk("set_hotkeys (Fn interface) raw_state: %x\n", data); + + /* + * Hardware seems to be quite stubborn and multiple retries may be + * required. The criteria here is simple: retry until probed state match + * the requested one (with timeout). + */ + + data_array = kcalloc(250, sizeof(u8), GFP_KERNEL); + if(!data_array) + return -ENODEV; + + for (i = 0; i < 250; i++) { + retval = nbsmi_smi_write_command(&hotkeys_op, data); + if (retval) + goto out; + mdelay(1); + retval = nbsmi_smi_read_command(&hotkeys_op, &rdata); + if(retval) + goto out; + data_array[i] = rdata; + if(rdata == data) { + dprintk("check loop ok after %i iters\n.",i); + retval = 0; + goto out; + } + } + dprintk("error or check loop timeout !!\n"); + dprintk("forensics datas: "); + for (i = 0; i < 250; i++) + dprintk_simple("%x ", data_array[i]); + dprintk_simple("\n"); +out: + kfree(data_array); + return retval; +} + +static const unsigned int nbsmi_display_mode_list[] = { + DISPLAY_LCD_ON, + DISPLAY_LCD_ON | DISPLAY_CRT_ON, + DISPLAY_CRT_ON, + DISPLAY_LCD_ON | DISPLAY_TVO_ON, + DISPLAY_TVO_ON, +}; + +static int omnibook_nbmsi_display_get(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval = 0; + u8 data; + + retval = nbsmi_smi_read_command(io_op, &data); + if (retval < 0) + return retval; + + if (data > (ARRAY_SIZE(nbsmi_display_mode_list) - 1)) + return -EIO; + + *state = nbsmi_display_mode_list[data]; + + return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON; +} + +static int omnibook_nbmsi_display_set(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval; + int i; + u8 matched = 255; + + for (i = 0; i < ARRAY_SIZE(nbsmi_display_mode_list); i++) { + if (nbsmi_display_mode_list[i] == state) { + matched = i; + break; + } + } + + if(matched == 255) { + printk(O_ERR "Display mode %x is unsupported.\n", state); + return -EINVAL; + } + + retval = nbsmi_smi_write_command(io_op, matched); + if (retval < 0) + return retval; + + return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON; +} + +struct omnibook_backend nbsmi_backend = { + .name = "nbsmi", + .hotkeys_read_cap = HKEY_FN | HKEY_STICK | HKEY_TWICE_LOCK | HKEY_DOCK, + .hotkeys_write_cap = HKEY_FN | HKEY_STICK | HKEY_TWICE_LOCK | HKEY_DOCK | HKEY_FNF5, + .init = omnibook_nbsmi_init, + .exit = omnibook_nbsmi_exit, + .byte_read = nbsmi_smi_read_command, + .byte_write = nbsmi_smi_write_command, + .aerial_get = omnibook_nbsmi_get_wireless, + .aerial_set = omnibook_nbsmi_set_wireless, + .hotkeys_get = omnibook_nbmsi_hotkeys_get, + .hotkeys_set = omnibook_nbmsi_hotkeys_set, + .display_get = omnibook_nbmsi_display_get, + .display_set = omnibook_nbmsi_display_set, +}; --- linux-3.2.0.orig/ubuntu/omnibook/acpi.c +++ linux-3.2.0/ubuntu/omnibook/acpi.c @@ -0,0 +1,1158 @@ +/* + * acpi.c -- ACPI methods low-level access code for TSM70 class laptops + * + * 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, 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. + * + * Written by Mathieu Bérard , 2006 + * + */ + +#include "omnibook.h" +#include "hardware.h" + +#ifdef CONFIG_ACPI + +#include +#include + +/* copied from drivers/input/serio/i8042-io.h */ +#define I8042_KBD_PHYS_DESC "isa0060/serio0" + +/* + * ACPI backend masks and strings + */ + +#define GET_WIRELESS_METHOD "ANTR" +#define SET_WIRELESS_METHOD "ANTW" +#define WLEX_MASK 0x4 +#define WLAT_MASK 0x1 +#define BTEX_MASK 0x8 +#define BTAT_MASK 0x2 +#define KLSW_MASK 0x10 + +#define GET_DISPLAY_METHOD "DOSS" +#define SET_DISPLAY_METHOD "DOSW" +/* Display reading masks CADL = detected, CSTE = enabled */ +#define LCD_CADL 0x10 +#define CRT_CADL 0x20 +#define TVO_CADL 0x40 +#define DVI_CADL 0x80 +#define LCD_CSTE 0x1 +#define CRT_CSTE 0x2 +#define TVO_CSTE 0x4 +#define DVI_CSTE 0x8 + +/* TSX205 Video-Out methods and return values */ +#define TSX205_SET_DISPLAY_METHOD "STBL" +#define TSX205_SLI_DISPLAY_METHOD "SL01.VGA1.STBL" +/* NOTE: Method DSSW seems to be some sort of auto-detect method */ +#define TSX205_AUTO_DISPLAY_METHOD "DSSW" +#define TSX205_DSPY_DE 0x1F /* DE - Detected and Enabled */ +#define TSX205_DSPY_DN 0x1D /* DN - Detected and Not enabled */ +#define TSX205_DSPY_NE 0x0F /* NE - Not detected and Enabled */ +#define TSX205_DSPY_NN 0x0D /* NN - Not detected and Not enabled */ + +#define GET_THROTTLE_METHOD "THRO" +#define SET_THROTTLE_METHOD "CLCK" + +static char ec_dev_list[][20] = { + "\\_SB.PCI0.LPCB.EC0", + "\\_SB.PCI0.LPC0.EC0", +}; + +/* TSX205 HCI and display handles */ +static char tsx205_dev_list[][20] = { + "\\_SB.VALZ", + "\\_SB.PCI0.PEGP.VGA" +}; + +/* TSX205 GET video-out methods */ +static char tsx205_video_list[][20] = { + "LCD._DCS", + "CRT._DCS", + "TV._DCS", + "DVI._DCS", + "SL01.VGA1.LCD._DCS", + "SL01.VGA1.CRT._DCS", + "SL01.VGA1.TV._DCS", + "SL01.VGA1.DVI._DCS", +}; + +#define TOSHIBA_ACPI_BT_CLASS "bluetooth" +#define TOSHIBA_ACPI_DEVICE_NAME "bluetooth adapter" + +#define TOSH_BT_ACTIVATE_USB "AUSB" +#define TOSH_BT_DISABLE_USB "DUSB" +#define TOSH_BT_POWER_ON "BTPO" +#define TOSH_BT_POWER_OFF "BTPF" +#define TOSH_BT_STATUS "BTST" +#define TOSH_BT_KSST_MASK 0x1 +#define TOSH_BT_USB_MASK 0x40 +#define TOSH_BT_POWER_MASK 0x80 + +/* + * ACPI driver for Toshiba Bluetooth device + */ +static int omnibook_acpi_bt_add(struct acpi_device *device); +static int omnibook_acpi_bt_remove(struct acpi_device *device, int type); + + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) +static const struct acpi_device_id omnibook_bt_ids[] = { + {"TOS6205", 0}, + {"", 0}, +}; + +static struct acpi_driver omnibook_bt_driver = { + .name = OMNIBOOK_MODULE_NAME, + .class = TOSHIBA_ACPI_BT_CLASS, + .ids = omnibook_bt_ids, + .ops = { + .add = omnibook_acpi_bt_add, + .remove = omnibook_acpi_bt_remove, + }, +}; +#else /* 2.6.23 */ +static struct acpi_driver omnibook_bt_driver = { + .name = OMNIBOOK_MODULE_NAME, + .class = TOSHIBA_ACPI_BT_CLASS, + .ids = "TOS6205", + .ops = { + .add = omnibook_acpi_bt_add, + .remove = omnibook_acpi_bt_remove, + }, +}; +#endif /* 2.6.23 */ + + +/* + * ACPI backend private data structure + */ +struct acpi_backend_data { + acpi_handle ec_handle; /* Handle on ACPI EC device */ + acpi_handle bt_handle; /* Handle on ACPI BT device */ + acpi_handle hci_handle; /* Handle on ACPI HCI device */ + acpi_handle dis_handle; /* Handle on ACPI Display device */ + unsigned has_antr_antw:1; /* Are there ANTR/ANTW methods in the EC device ? */ + unsigned has_doss_dosw:1; /* Are there DOSS/DOSW methods in the EC device ? */ + unsigned has_sli:1; /* Does the laptop has SLI enabled ? */ + struct input_dev *acpi_input_dev; + struct work_struct fnkey_work; +}; + +/* + * Hotkeys workflow: + * 1. Fn+Foo pressed + * 2. Scancode 0x6e generated by kbd controller + * 3. Scancode 0x6e caught by omnibook input handler + * 4. INFO method has keycode of last actually pressed Fn key + * 5. acpi_scan_table used to associate a detected keycode with a generated one + * 6. Generated keycode issued using the omnibook input device + */ + +/* + * The input handler should only bind with the standard AT keyboard. + * XXX: Scancode 0x6e won't be detected if the keyboard has already been + * grabbed (the Xorg event input driver do that) + */ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) +static int hook_connect(struct input_handler *handler, + struct input_dev *dev, + const struct input_device_id *id) +#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) +static struct input_handle *hook_connect(struct input_handler *handler, + struct input_dev *dev, + const struct input_device_id *id) +#else +static struct input_handle *hook_connect(struct input_handler *handler, + struct input_dev *dev, + struct input_device_id *id) +#endif +{ + struct input_handle *handle; + int error; + + /* the 0x0001 vendor magic number is found in atkbd.c */ + if(!(dev->id.bustype == BUS_I8042 && dev->id.vendor == 0x0001)) + goto out_nobind; + + if(!strstr(dev->phys, I8042_KBD_PHYS_DESC)) + goto out_nobind; + + dprintk("hook_connect for device %s.\n", dev->name); + + if(dev->grab) + printk(O_WARN "Input device is grabbed by %s, Fn hotkeys won't work.\n", + dev->grab->name); + + handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL); + if (!handle) +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + return -ENOMEM; +#else + return NULL; +#endif + + handle->dev = dev; + handle->handler = handler; + handle->name = "omnibook_scancode_hook"; + handle->private = handler->private; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + error = input_register_handle(handle); + if (error) { + dprintk("register_handle failed\n"); + goto out_nobind_free; + } + error = input_open_device(handle); + if (error) { + dprintk("register_handle failed\n"); + input_unregister_handle(handle); + goto out_nobind_free; + } + +#else + status=input_open_device(handle); + if (error==0) dprintk("Input device opened\n"); + else { + dprintk("opening input device failed\n"); + goto out_nobind_free; + } +#endif + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + return 0; +out_nobind_free: + kfree(handle); +out_nobind: + return -ENODEV; +#else + return handle; +out_nobind_free: + kfree(handle); +out_nobind: + return NULL; +#endif +} + +static void hook_disconnect(struct input_handle *handle) +{ + dprintk("hook_disconnect.\n"); + input_close_device(handle); +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)) + input_unregister_handle(handle); +#endif + kfree(handle); +} + +/* + * Hook for scancode 0x6e. Actual handling is done in a workqueue. + */ +static void hook_event(struct input_handle *handle, unsigned int event_type, + unsigned int event_code, int value) +{ + if (event_type == EV_MSC && event_code == MSC_SCAN && value == ACPI_FN_SCAN) + schedule_work(&((struct acpi_backend_data *)handle->private)->fnkey_work); +} + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) +static const struct input_device_id hook_ids[] = { +#else +static struct input_device_id hook_ids[] = { +#endif + { + .flags = INPUT_DEVICE_ID_MATCH_EVBIT, + .evbit = { BIT(EV_KEY) }, + }, + { }, /* Terminating entry */ +}; + +static struct input_handler hook_handler = { + .event = hook_event, + .connect = hook_connect, + .disconnect = hook_disconnect, + .name = OMNIBOOK_MODULE_NAME, + .id_table = hook_ids, +}; + +/* + * Detected scancode to keycode table + */ +static const struct { + unsigned int scancode; + unsigned int keycode; +} acpi_scan_table[] = { + { HCI_FN_RELEASED, KEY_FN}, + { HCI_MUTE, KEY_MUTE}, + { HCI_BREAK, KEY_COFFEE}, + { HCI_1, KEY_ZOOMOUT}, + { HCI_2, KEY_ZOOMIN}, + { HCI_SPACE, KEY_ZOOMRESET}, + { HCI_BSM, KEY_BATTERY}, + { HCI_SUSPEND, KEY_SLEEP}, + { HCI_HIBERNATE, KEY_SUSPEND}, + { HCI_VIDEOOUT, KEY_SWITCHVIDEOMODE}, + { HCI_BRIGHTNESSDOWN, KEY_BRIGHTNESSDOWN}, + { HCI_BRIGHTNESSUP, KEY_BRIGHTNESSUP}, + { HCI_WLAN, KEY_WLAN}, + { HCI_TOUCHPAD, KEY_PROG1}, + { HCI_FN_PRESSED, KEY_FN}, + { 0, 0}, +}; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) +static void omnibook_handle_fnkey(struct work_struct *work); +#else +static void omnibook_handle_fnkey(void* data); +#endif + +/* + * Register the input handler and the input device in the input subsystem + */ +static int register_input_subsystem(struct acpi_backend_data *priv_data) +{ + int i, retval = 0; + struct input_dev *acpi_input_dev; + + acpi_input_dev = input_allocate_device(); + if (!acpi_input_dev) { + retval = -ENOMEM; + goto out; + } + + acpi_input_dev->name = "Omnibook ACPI scancode generator"; + acpi_input_dev->phys = "omnibook/input0"; + acpi_input_dev->id.bustype = BUS_HOST; + + set_bit(EV_KEY, acpi_input_dev->evbit); + + for(i=0 ; i < ARRAY_SIZE(acpi_scan_table); i++) + set_bit(acpi_scan_table[i].keycode, acpi_input_dev->keybit); + + retval = input_register_device(acpi_input_dev); + if (retval) { + input_free_device(acpi_input_dev); + goto out; + } + + priv_data->acpi_input_dev = acpi_input_dev; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) + INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey); +#else + INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey, priv_data); +#endif + + + hook_handler.private = priv_data; + +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) + retval = input_register_handler(&hook_handler); +#else + input_register_handler(&hook_handler); +#endif + + out: + return retval; +} + +/* + * Execute an ACPI method which return either an integer or nothing + * and that require 0 or 1 numerical argument + * (acpi_evaluate_object wrapper) + */ +static int omnibook_acpi_execute(acpi_handle dev_handle, char *method, const int *param, int *result) +{ + + struct acpi_object_list args_list; + struct acpi_buffer buff; + union acpi_object arg, out_objs[1]; + + if (param) { + args_list.count = 1; + args_list.pointer = &arg; + arg.type = ACPI_TYPE_INTEGER; + arg.integer.value = *param; + } else + args_list.count = 0; + + buff.length = sizeof(out_objs); + buff.pointer = out_objs; + + if (acpi_evaluate_object(dev_handle, method, &args_list, &buff) != AE_OK) { + printk(O_ERR "ACPI method execution failed\n"); + return -EIO; + } + + if (!result) /* We don't care what the method returned here */ + return 0; + + if (out_objs[0].type != ACPI_TYPE_INTEGER) { + printk(O_ERR "ACPI method result is not a number\n"); + return -EINVAL; + } + + *result = out_objs[0].integer.value; + return 0; +} + +/* + * Probe for expected ACPI devices + */ +static int omnibook_acpi_init(const struct omnibook_operation *io_op) +{ + int retval = 0; + acpi_handle dev_handle, method_handle, hci_handle, dis_handle; + int i; + int has_sli = 0; + struct acpi_backend_data *priv_data; + + if (unlikely(acpi_disabled)) { + printk(O_ERR "ACPI is disabled: feature unavailable.\n"); + return -ENODEV; + } + + if (!io_op->backend->data) { + dprintk("Try to init ACPI backend\n"); + mutex_init(&io_op->backend->mutex); + mutex_lock(&io_op->backend->mutex); + kref_init(&io_op->backend->kref); + priv_data = kzalloc(sizeof(struct acpi_backend_data), GFP_KERNEL); + if (!priv_data) { + retval = -ENOMEM; + goto error0; + } + + /* Locate ACPI EC device, acpi_get_handle set dev_handle to NULL if not found */ + for (i = 0; i < ARRAY_SIZE(ec_dev_list); i++) { + if (acpi_get_handle(NULL, ec_dev_list[i], &dev_handle) == AE_OK) { + dprintk("ACPI EC device found\n"); + priv_data->ec_handle = dev_handle; + break; + } + } + + if (!dev_handle) { + printk(O_ERR "Can't get handle on ACPI EC device.\n"); + retval = -ENODEV; + goto error1; + } + + /* Probe for HCI and Display devices only on TSX205 models */ + if (omnibook_ectype & TSX205) { + if (acpi_get_handle(NULL, tsx205_dev_list[0], &hci_handle) == AE_OK) { + dprintk("Toshiba X205 HCI device found\n"); + priv_data->hci_handle = hci_handle; + } + + if (!hci_handle) { + printk(O_ERR "Couldn't get HCI handle.\n"); + retval = -ENODEV; + goto error1; + } + + if (acpi_get_handle(NULL, tsx205_dev_list[1], &dis_handle) == AE_OK) + priv_data->dis_handle = dis_handle; + + if (!dis_handle) { + printk(O_ERR "Couldn't get X205 Display handle.\n"); + retval = -ENODEV; + goto error1; + } + + /* Does the laptop has SLI enabled? */ + omnibook_acpi_execute(dis_handle, (char *)TSX205_SLIVDO_METHOD, NULL, &has_sli); + if (has_sli) + dprintk("Toshiba X205 Display device found (SLI).\n"); + else + dprintk("Toshiba X205 Display device found.\n"); + + priv_data->has_sli = has_sli; + } + + if ((acpi_get_handle( dev_handle, GET_WIRELESS_METHOD, &method_handle) == AE_OK) && + (acpi_get_handle( dev_handle, SET_WIRELESS_METHOD, &method_handle) == AE_OK)) + priv_data->has_antr_antw = 1; + + if (omnibook_ectype & TSX205) { + if ((acpi_get_handle(dis_handle, TSX205_AUTO_DISPLAY_METHOD, &method_handle) == AE_OK) && + (acpi_get_handle(dis_handle, TSX205_AUTO_DISPLAY_METHOD, &method_handle) == AE_OK)) + priv_data->has_doss_dosw = 1; + } else { + if ((acpi_get_handle( dev_handle, GET_DISPLAY_METHOD, &method_handle) == AE_OK) && + (acpi_get_handle( dev_handle, SET_DISPLAY_METHOD, &method_handle) == AE_OK)) + priv_data->has_doss_dosw = 1; + } + + retval = register_input_subsystem(priv_data); + if(retval) + goto error1; + + io_op->backend->data = (void *) priv_data; + + mutex_unlock(&io_op->backend->mutex); + + /* attempt to register Toshiba bluetooth ACPI driver */ + acpi_bus_register_driver(&omnibook_bt_driver); + + dprintk("ACPI backend init OK\n"); + + return 0; + + } else { + dprintk("ACPI backend has already been initialized\n"); + kref_get(&io_op->backend->kref); + return 0; + } + + error1: + kfree(priv_data); + io_op->backend->data = NULL; + error0: + mutex_unlock(&io_op->backend->mutex); + mutex_destroy(&io_op->backend->mutex); + return retval; +} + +static void omnibook_acpi_free(struct kref *ref) +{ + struct omnibook_backend *backend; + struct acpi_backend_data *priv_data; + + backend = container_of(ref, struct omnibook_backend, kref); + priv_data = backend->data; + + dprintk("ACPI backend not used anymore: disposing\n"); + + + dprintk("ptr addr: %p driver name: %s\n",&omnibook_bt_driver, omnibook_bt_driver.name); + acpi_bus_unregister_driver(&omnibook_bt_driver); + + flush_scheduled_work(); + input_unregister_handler(&hook_handler); + input_unregister_device(priv_data->acpi_input_dev); + + mutex_lock(&backend->mutex); + kfree(backend->data); + backend->data = NULL; + mutex_unlock(&backend->mutex); + mutex_destroy(&backend->mutex); +} + +static void omnibook_acpi_exit(const struct omnibook_operation *io_op) +{ + dprintk("Trying to dispose ACPI backend\n"); + kref_put(&io_op->backend->kref, omnibook_acpi_free); +} + +/* forward declaration */ +struct omnibook_backend acpi_backend; + +/* Function taken from toshiba_acpi */ +static acpi_status hci_raw(const u32 in[HCI_WORDS], u32 out[HCI_WORDS]) +{ + struct acpi_backend_data *priv_data = acpi_backend.data; + struct acpi_object_list params; + union acpi_object in_objs[HCI_WORDS]; + struct acpi_buffer results; + union acpi_object out_objs[HCI_WORDS + 1]; + acpi_status status; + int i; + + params.count = HCI_WORDS; + params.pointer = in_objs; + for (i = 0; i < HCI_WORDS; ++i) { + in_objs[i].type = ACPI_TYPE_INTEGER; + in_objs[i].integer.value = in[i]; + } + + results.length = sizeof(out_objs); + results.pointer = out_objs; + + status = acpi_evaluate_object(priv_data->hci_handle, (char *)HCI_METHOD, ¶ms, + &results); + if ((status == AE_OK) && (out_objs->package.count <= HCI_WORDS)) { + for (i = 0; i < out_objs->package.count; ++i) { + out[i] = out_objs->package.elements[i].integer.value; + } + } + + return status; +} + +/* + * Set Bluetooth device state using the Toshiba BT device + */ +static int set_bt_status(const struct acpi_backend_data *priv_data, unsigned int state) +{ + int retval = 0; + + if (state) { + retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_ACTIVATE_USB, NULL, NULL); + if (retval) + goto out; + retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_POWER_ON, NULL, NULL); + if (retval) + goto out; + } else { + retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_DISABLE_USB, NULL, NULL); + if (retval) + goto out; + retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_POWER_OFF, NULL, NULL); + if (retval) + goto out; + } + out: + return retval; +} + +static int omnibook_acpi_bt_add(struct acpi_device *device) +{ + int retval; + struct acpi_backend_data *priv_data = acpi_backend.data; + + dprintk("Enabling Toshiba Bluetooth ACPI device.\n"); + strcpy(acpi_device_name(device), TOSHIBA_ACPI_DEVICE_NAME); + strcpy(acpi_device_class(device), TOSHIBA_ACPI_BT_CLASS); + + /* Save handle in backend private data structure. ugly. */ + + mutex_lock(&acpi_backend.mutex); + priv_data->bt_handle = device->handle; + retval = set_bt_status(priv_data, 1); + mutex_unlock(&acpi_backend.mutex); + + return retval; +} + +static int omnibook_acpi_bt_remove(struct acpi_device *device, int type) +{ + int retval; + struct acpi_backend_data *priv_data = acpi_backend.data; + + mutex_lock(&acpi_backend.mutex); + dprintk("Disabling Toshiba Bluetooth ACPI device.\n"); + retval = set_bt_status(priv_data, 0); + priv_data->bt_handle = NULL; + mutex_unlock(&acpi_backend.mutex); + + return retval; +} + +/* + * Get Bluetooth status using the BTST method + */ +static int get_bt_status(const struct acpi_backend_data *priv_data, unsigned int *state) +{ + int retval = 0; + int raw_state; + + if ((retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_STATUS, NULL, &raw_state))) + return retval; + + dprintk("BTST raw_state: %x\n", raw_state); + + *state = BT_EX; + *state |= ((raw_state & TOSH_BT_USB_MASK) && (raw_state & TOSH_BT_POWER_MASK)) ? BT_STA : 0; + + return retval; +} + +/* + * Get the Bluetooth + Wireless status using the ANTR method + * FIXME: what if ANTR and BTST disagree ? we thrust ANTR for now + */ +static int get_wireless_status(const struct acpi_backend_data *priv_data, unsigned int *state) +{ + int retval = 0; + int raw_state; + + if ((retval = omnibook_acpi_execute(priv_data->ec_handle, GET_WIRELESS_METHOD, NULL, &raw_state))) + return retval; + + dprintk("get_wireless raw_state: %x\n", raw_state); + + *state = (raw_state & WLEX_MASK) ? WIFI_EX : 0; + *state |= (raw_state & WLAT_MASK) ? WIFI_STA : 0; + *state |= (raw_state & KLSW_MASK) ? KILLSWITCH : 0; + *state |= (raw_state & BTEX_MASK) ? BT_EX : 0; + *state |= (raw_state & BTAT_MASK) ? BT_STA : 0; + + return retval; +} + +static int get_tsx205_wireless_status(const struct acpi_backend_data *priv_data, unsigned int *state) +{ + int retval = 0; + int raw_state; + u32 in[HCI_WORDS] = { HCI_GET, HCI_RF_CONTROL, 0, HCI_WIRELESS_CHECK, 0, 0 }; + u32 out[HCI_WORDS]; + + hci_raw(in, out); + + /* Now let's check the killswitch */ + if ((retval = omnibook_acpi_execute(priv_data->ec_handle, TSX205_KILLSW_METHOD, NULL, &raw_state))) + return retval; + + dprintk("get_wireless raw_state: %x\n", out[2]); + + *state = ((out[2] & 0xff)) ? WIFI_EX : 0; + *state |= (raw_state) ? WIFI_STA : 0; + *state |= (!raw_state) ? KILLSWITCH : 0; + + /* And finally BT */ + if ((retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_STATUS, NULL, &raw_state))) + return retval; + + *state |= BT_EX; + *state |= ((raw_state & TOSH_BT_USB_MASK) && (raw_state & TOSH_BT_POWER_MASK)) ? BT_STA : 0; + + return retval; +} + +static int omnibook_acpi_get_wireless(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval; + struct acpi_backend_data *priv_data = io_op->backend->data; + + /* use BTST (BT device) if we don't have ANTR/ANTW (EC device) */ + if (omnibook_ectype & TSX205) + retval = get_tsx205_wireless_status(priv_data, state); + else if (priv_data->has_antr_antw) + retval = get_wireless_status(priv_data, state); + else if(priv_data->bt_handle) + retval = get_bt_status(priv_data, state); + else + retval = -ENODEV; + + return retval; +} + +/* + * Set the Bluetooth + Wireless status using the ANTW method + */ +static int set_wireless_status(const struct acpi_backend_data *priv_data, unsigned int state) +{ + int retval; + int raw_state; + + raw_state = !!(state & WIFI_STA); /* bit 0 */ + raw_state |= !!(state & BT_STA) << 0x1; /* bit 1 */ + + dprintk("set_wireless raw_state: %x\n", raw_state); + + retval = omnibook_acpi_execute(priv_data->ec_handle, SET_WIRELESS_METHOD, &raw_state, NULL); + + return retval; +} + +static int set_tsx205_wireless_status(const struct acpi_backend_data *priv_data, unsigned int state) +{ + int retval; + int raw_state = !!(state & WIFI_STA); + + dprintk("set_wireless raw_state: %x\n", raw_state); + + u32 in[HCI_WORDS] = { HCI_SET, HCI_RF_CONTROL, raw_state, HCI_WIRELESS_POWER, 0, 0 }; + u32 out[HCI_WORDS]; + hci_raw(in, out); + + raw_state |= !!(state & BT_STA) << 0x1; /* bit 1 */ + + /* BT status */ + retval = set_bt_status(priv_data->bt_handle, state); + + return retval; +} + +static int omnibook_acpi_set_wireless(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval = -ENODEV; + struct acpi_backend_data *priv_data = io_op->backend->data; + + /* First try the TSX205 methods */ + if(omnibook_ectype & TSX205) + retval = set_tsx205_wireless_status(priv_data, state); + + /* Then try the ANTR/ANTW methods */ + if(priv_data->has_antr_antw) + retval = set_wireless_status(priv_data, state); + + /* Then try the bluetooth ACPI device if present */ + if(priv_data->bt_handle) + retval = set_bt_status(priv_data, (state & BT_STA)); + + return retval; +} + +static int tsx205_get_display(const struct acpi_backend_data *priv_data, unsigned int *state, unsigned int device) +{ + int retval = 0; + int raw_state = 0; + + retval = omnibook_acpi_execute(priv_data->dis_handle, tsx205_video_list[device], NULL, &raw_state); + if (retval < 0) { + dprintk(O_ERR "Failed to get video device (%d) state.\n", device); + return retval; + } + + /* Ugly, but better than nothing... */ + switch (device) { + case 0: + case 4: /* LCD device */ + dprintk("get_display LCD (%d) raw_state: %x\n", device, raw_state); + if (raw_state == TSX205_DSPY_DE) { + *state |= DISPLAY_LCD_DET; + *state |= DISPLAY_LCD_ON; + } else + if (raw_state == TSX205_DSPY_DN) + *state |= DISPLAY_LCD_DET; + else if (raw_state == TSX205_DSPY_NE) + *state |= DISPLAY_LCD_ON; + break; + case 1: + case 5: /* CRT device */ + dprintk("get_display CRT (%d) raw_state: %x\n", device, raw_state); + if (raw_state == TSX205_DSPY_DE) { + *state |= DISPLAY_CRT_DET; + *state |= DISPLAY_CRT_ON; + } else + if (raw_state == TSX205_DSPY_DN) + *state |= DISPLAY_CRT_DET; + else if (raw_state == TSX205_DSPY_NE) + *state |= DISPLAY_CRT_ON; + break; + case 2: + case 6: /* TV-OUT device */ + dprintk("get_display TV-OUT (%d) raw_state: %x\n", device, raw_state); + if (raw_state == TSX205_DSPY_DE) { + *state |= DISPLAY_TVO_DET; + *state |= DISPLAY_TVO_ON; + } else + if (raw_state == TSX205_DSPY_DN) + *state |= DISPLAY_TVO_DET; + else if (raw_state == TSX205_DSPY_NE) + *state |= DISPLAY_TVO_ON; + break; + case 3: + case 7: /* DVI device */ + dprintk("get_display DVI (%d) raw_state: %x\n", device, raw_state); + if (raw_state == TSX205_DSPY_DE) { + *state |= DISPLAY_DVI_DET; + *state |= DISPLAY_DVI_ON; + } else + if (raw_state == TSX205_DSPY_DN) + *state |= DISPLAY_DVI_DET; + else if (raw_state == TSX205_DSPY_NE) + *state |= DISPLAY_DVI_ON; + break; + } + + return retval; +} + +static int omnibook_acpi_get_display(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval = 0; + int raw_state = 0; + struct acpi_backend_data *priv_data = io_op->backend->data; + + if(!priv_data->has_doss_dosw) + return -ENODEV; + + if (omnibook_ectype & TSX205) { + int i; + + /* Loop 'tru the different Video-Out devices */ + if (priv_data->has_sli) + for (i = 4; i < ARRAY_SIZE(tsx205_video_list); i++) + retval = tsx205_get_display(priv_data, state, i); + else + for (i = 0; i < 4; i++) + retval = tsx205_get_display(priv_data, state, i); + + if (retval < 0) + return -EIO; + + goto vidout; + } + + retval = omnibook_acpi_execute(priv_data->ec_handle, GET_DISPLAY_METHOD, NULL, &raw_state); + if (retval < 0) + return retval; + + dprintk("get_display raw_state: %x\n", raw_state); + + /* Backend specific to backend-neutral conversion */ + *state = (raw_state & LCD_CSTE) ? DISPLAY_LCD_ON : 0; + *state |= (raw_state & CRT_CSTE) ? DISPLAY_CRT_ON : 0; + *state |= (raw_state & TVO_CSTE) ? DISPLAY_TVO_ON : 0; + *state |= (raw_state & DVI_CSTE) ? DISPLAY_DVI_ON : 0; + + *state |= (raw_state & LCD_CADL) ? DISPLAY_LCD_DET : 0; + *state |= (raw_state & CRT_CADL) ? DISPLAY_CRT_DET : 0; + *state |= (raw_state & TVO_CADL) ? DISPLAY_TVO_DET : 0; + *state |= (raw_state & DVI_CADL) ? DISPLAY_DVI_DET : 0; + +vidout: + return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON | DISPLAY_DVI_ON + | DISPLAY_LCD_DET | DISPLAY_CRT_DET | DISPLAY_TVO_DET | DISPLAY_DVI_DET; +} + +static const unsigned int acpi_display_mode_list[] = { + DISPLAY_LCD_ON, + DISPLAY_CRT_ON, + DISPLAY_LCD_ON | DISPLAY_CRT_ON, + DISPLAY_TVO_ON, + DISPLAY_LCD_ON | DISPLAY_TVO_ON, + DISPLAY_CRT_ON | DISPLAY_TVO_ON, + DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON, + DISPLAY_DVI_ON, + DISPLAY_LCD_ON | DISPLAY_DVI_ON, +}; + +static int omnibook_acpi_set_display(const struct omnibook_operation *io_op, unsigned int state) +{ + int retval = 0; + int i; + int matched = -1; + struct acpi_backend_data *priv_data = io_op->backend->data; + + if(!priv_data->has_doss_dosw) + return -ENODEV; + + for (i = 0; i < ARRAY_SIZE(acpi_display_mode_list); i++) { + if (acpi_display_mode_list[i] == state) { + matched = i + 1; /* raw state is array row number + 1 */ + break; + } + } + if (matched == -1) { + printk("Display mode %x is unsupported.\n", state); + return -EINVAL; + } + + dprintk("set_display raw_state: %x\n", matched); + + if (omnibook_ectype & TSX205) { + if (priv_data->has_sli) + retval = omnibook_acpi_execute(priv_data->dis_handle, TSX205_SLI_DISPLAY_METHOD, &matched, NULL); + else + retval = omnibook_acpi_execute(priv_data->dis_handle, TSX205_SET_DISPLAY_METHOD, &matched, NULL); + } else + retval = omnibook_acpi_execute(priv_data->ec_handle, SET_DISPLAY_METHOD, &matched, NULL); + if (retval < 0) + return retval; + + return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON | DISPLAY_DVI_ON; +} + +static int omnibook_acpi_get_throttle(const struct omnibook_operation *io_op, unsigned int *state) +{ + int retval; + int thtl_en = 0, thtl_dty = 0; + int param; + struct acpi_backend_data *priv_data = io_op->backend->data; + + param = 0; + /* Read THEN aka THTL_EN in ICH6M datasheets */ + retval = omnibook_acpi_execute(priv_data->ec_handle, GET_THROTTLE_METHOD, ¶m, &thtl_en); + if ( thtl_en == 0 ) { + *state = 0; + return retval; + } + param = 1; + /* Read DUTY aka THTL_DTY in ICH6M datasheets */ + retval = omnibook_acpi_execute(priv_data->ec_handle, GET_THROTTLE_METHOD, ¶m, &thtl_dty); + WARN_ON(thtl_dty > 7); /* We shouldn't encounter more than 7 throttling level */ + *state = 8 - thtl_dty; /* THTL_DTY and ACPI T-state are reverse mapped */ + return retval; +} + +static int omnibook_acpi_set_throttle(const struct omnibook_operation *io_op, unsigned int state) +{ + struct acpi_backend_data *priv_data = io_op->backend->data; + /* THTL_DTY and ACPI T-state are reverse mapped */ + /* throttling.c already clamped state between 0 and 7 */ + if (state) + state = 8 - state; + + return omnibook_acpi_execute(priv_data->ec_handle, SET_THROTTLE_METHOD, &state, NULL); +} + +/* + * Fn+foo hotkeys handling + */ +static int omnibook_hci_get_hotkeys(const struct omnibook_operation *io_op, unsigned int *state) +{ + u32 in[HCI_WORDS] = { HCI_GET, HCI_HOTKEY_EVENT, 0, 0, 0, 0 }; + u32 out[HCI_WORDS]; + acpi_status status = hci_raw(in, out); + + if (status != AE_OK) + return HCI_FAILURE; + + dprintk("get_hotkeys raw_state: %x\n", out[2]); + + *state = (out[2] & ACPI_FN_MASK) ? HKEY_FN : 0; + + return 0; +} + +static int omnibook_hci_set_hotkeys(const struct omnibook_operation *io_op, unsigned int state) +{ + u32 in[HCI_WORDS] = { 0, 0, 0, 0, 0, 0 }; + u32 out[HCI_WORDS]; + in[0] = HCI_SET; + in[1] = HCI_HOTKEY_EVENT; + in[2] = (state & HKEY_FN) ? 1 : 0; + acpi_status status = hci_raw(in, out); + + dprintk("set_hotkeys (Fn interface) raw_state: %x\n", in[2]); + + return (status == AE_OK) ? out[0] : HCI_FAILURE; +} + +static int omnibook_acpi_get_events(unsigned int *state) +{ + acpi_status status; + struct acpi_backend_data *priv_data = acpi_backend.data; + + /* We need to call the NTFY method first so it can activate the TECF variable */ + status = omnibook_acpi_execute(priv_data->ec_handle, TSX205_NOTIFY_METHOD, NULL, NULL); + if (status != AE_OK) { + dprintk(O_ERR "Failed to activate NTFY method.\n"); + return -EIO; + } + + /* Now we can poll the INFO method to get last pressed hotkey */ + status = omnibook_acpi_execute(priv_data->hci_handle, TSX205_EVENTS_METHOD, NULL, state); + if (status != AE_OK) { + dprintk(O_ERR "Failed to get Hotkey event.\n"); + return -EIO; + } + + /* We only care about a key press, so just report the Fn key Press/Release */ + if ( ((*state & ~0x80) == 0x100) || ((*state & ~0x80) == 0x17f) ) + *state &= ~0x80; + + return status; +} + +/* + * Adjust the lcd backlight level by delta. + * Used for Fn+F6/F7 keypress + */ +static int adjust_brighness(int delta) +{ + struct omnibook_feature *lcd_feature = omnibook_find_feature("lcd"); + struct omnibook_operation *io_op; + int retval = 0; + u8 brgt; + + if(!lcd_feature) + return -ENODEV; + + io_op = lcd_feature->io_op; + + mutex_lock(&io_op->backend->mutex); + + if(( retval = __backend_byte_read(io_op, &brgt))) + goto out; + + dprintk("Fn-F6/F7 pressed: adjusting brightness.\n"); + + if (((int) brgt + delta) < 0) + brgt = 0; + else if ((brgt + delta) > omnibook_max_brightness) + brgt = omnibook_max_brightness; + else + brgt += delta; + + retval = __backend_byte_write(io_op, brgt); + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Workqueue handler for Fn hotkeys + */ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) +static void omnibook_handle_fnkey(struct work_struct *work) +#else +static void omnibook_handle_fnkey(void* data) +#endif +{ + int i; + u32 gen_scan; + struct input_dev *input_dev; + acpi_status status; + + status = omnibook_acpi_get_events(&gen_scan); + if (status != AE_OK) + return; + + dprintk("detected scancode 0x%x.\n", gen_scan); + switch(gen_scan) { + case HCI_BRIGHTNESSDOWN: + adjust_brighness(-1); + break; + case HCI_BRIGHTNESSUP: + adjust_brighness(+1); + break; + } + + for (i = 0 ; i < ARRAY_SIZE(acpi_scan_table); i++) { + if (gen_scan == acpi_scan_table[i].scancode) { + dprintk("generating keycode %i.\n", acpi_scan_table[i].keycode); +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)) + input_dev = container_of(work, struct acpi_backend_data, fnkey_work)->acpi_input_dev; +#else + input_dev = ((struct acpi_backend_data *) data)->acpi_input_dev; +#endif + omnibook_report_key(input_dev, acpi_scan_table[i].keycode); + break; + } + } +} + +struct omnibook_backend acpi_backend = { + .name = "acpi", + .hotkeys_read_cap = HKEY_FN, + .hotkeys_write_cap = HKEY_FN, + .init = omnibook_acpi_init, + .exit = omnibook_acpi_exit, + .aerial_get = omnibook_acpi_get_wireless, + .aerial_set = omnibook_acpi_set_wireless, + .display_get = omnibook_acpi_get_display, + .display_set = omnibook_acpi_set_display, + .throttle_get = omnibook_acpi_get_throttle, + .throttle_set = omnibook_acpi_set_throttle, + .hotkeys_get = omnibook_hci_get_hotkeys, + .hotkeys_set = omnibook_hci_set_hotkeys, +}; + +#else /* CONFIG_ACPI */ + +/* dummy backend for non-ACPI systems */ +static int _fail_probe(const struct omnibook_operation *io_op) +{ + return -ENODEV; +} + +struct omnibook_backend acpi_backend = { + .name = "acpi", + .init = _fail_probe, +}; + +#endif /* CONFIG_ACPI */ --- linux-3.2.0.orig/ubuntu/omnibook/temperature.c +++ linux-3.2.0/ubuntu/omnibook/temperature.c @@ -0,0 +1,55 @@ +/* + * temperature.c -- CPU temprature monitoring + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_temperature_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int retval; + u8 temp; + + if ((retval = backend_byte_read(io_op, &temp))) + return retval; + + len += sprintf(buffer + len, "CPU temperature: %2d C\n", temp); + + return len; +} + +static struct omnibook_tbl temp_table[] __initdata = { + {XE3GF | TSP10 | TSM70 | TSM30X | TSX205, SIMPLE_BYTE(EC, XE3GF_CTMP, 0)}, + {XE3GC | AMILOD, SIMPLE_BYTE(EC, XE3GC_CTMP, 0)}, + {OB500 | OB510 | OB6000 | OB6100 | XE4500 | XE2, SIMPLE_BYTE(EC, OB500_CTMP, 0)}, + {OB4150, SIMPLE_BYTE(EC, OB4150_TMP, 0)}, + {0,} +}; + +static struct omnibook_feature __declared_feature temperature_driver = { + .name = "temperature", + .enabled = 1, + .read = omnibook_temperature_read, + .ectypes = + XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | OB4150 | XE2 | AMILOD | TSP10 + | TSM70 | TSM30X | TSX205, + .tbl = temp_table, +}; + +module_param_named(temperature, temperature_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(temperature, "Use 0 to disable, 1 to enable thermal status and policy support"); +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/throttling.c +++ linux-3.2.0/ubuntu/omnibook/throttling.c @@ -0,0 +1,83 @@ +/* + * throttling.c --CPU throttling control feature + * + * 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, 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. + * + * Written by Mathieu Bérard , 2007 + */ + +#include "omnibook.h" +#include "hardware.h" + +/* + * Throttling level/rate mapping found in ICH6M datasheets + * the output is set to mimic the one of /proc/acpi/cpu/CPU0/throttling + * XXX: We always assume that there are 8 T-States and one processor. + */ +static const int trate[8] = { 0, 12, 25, 37, 50, 62, 75, 87 }; + +static int omnibook_throttle_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int tstate = 0; + int retval, i; + + retval = backend_throttle_get(io_op, &tstate); + if (retval < 0) + return retval; + + len += sprintf(buffer + len, "state count: 8\n"); + len += sprintf(buffer + len, "active state: T%d\n", tstate); + for (i = 0; i < 8; i += 1) + { + len += sprintf(buffer + len, " %cT%d: %02d%%\n", + (i == tstate ? '*' : ' '), + i, + trate[i]); + } + + return len; +} + +static int omnibook_throttle_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval = 0; + int data; + char *endp; + + data = simple_strtoul(buffer, &endp, 10); + if ((endp == buffer) || (data > 7)) /* There are 8 throttling levels */ + return -EINVAL; + else + retval = backend_throttle_set(io_op, data); + + return retval; +} + + +static struct omnibook_tbl throttle_table[] __initdata = { + {TSM70 | TSX205, {ACPI,}}, + {0,} +}; + +struct omnibook_feature __declared_feature throttle_driver = { + .name = "throttling", + .enabled = 1, + .read = omnibook_throttle_read, + .write = omnibook_throttle_write, + .ectypes = TSM70 | TSX205, + .tbl = throttle_table, +}; + +module_param_named(throttle, throttle_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(throttle, "Use 0 to disable, 1 to enable CPU throttling control"); + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/muteled.c +++ linux-3.2.0/ubuntu/omnibook/muteled.c @@ -0,0 +1,109 @@ +/* + * mutled.c -- MUTE LED control + * + * 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, 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. + * + * Written by Thomas Perl , 2006 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_muteled_set(struct omnibook_operation *io_op, int status) +{ + int retval = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if((retval = __omnibook_toggle(io_op, !!status))) { + printk(O_ERR "Failed muteled %s command.\n", status ? "on" : "off"); + goto out; + } + + io_op->backend->muteled_state = !!status; + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Hardware query is unsupported, reading is unreliable. + */ +static int omnibook_muteled_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + len += + sprintf(buffer + len, "Last mute LED action was an %s command.\n", + io_op->backend->touchpad_state ? "on" : "off"); + + mutex_unlock(&io_op->backend->mutex); + return len; +} + +static int omnibook_muteled_write(char *buffer, struct omnibook_operation *io_op) +{ + int cmd; + + if (*buffer == '0' || *buffer == '1') { + cmd = *buffer - '0'; + if (!omnibook_muteled_set(io_op, cmd)) { + dprintk("Switching mute LED to %s state.\n", cmd ? "on" : "off"); + } + } else { + return -EINVAL; + } + return 0; +} + +/* + * May re-enable muteled upon resume + */ +static int omnibook_muteled_resume(struct omnibook_operation *io_op) +{ + int retval; + mutex_lock(&io_op->backend->mutex); + retval = __omnibook_toggle(io_op, !!io_op->backend->touchpad_state); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Switch muteled off upon exit + */ +static void __exit omnibook_muteled_cleanup(struct omnibook_operation *io_op) +{ + omnibook_muteled_set(io_op, 0); +} + +static struct omnibook_tbl muteled_table[] __initdata = { + {XE4500, COMMAND(KBC, OMNIBOOK_KBC_CMD_MUTELED_ON, OMNIBOOK_KBC_CMD_MUTELED_OFF)}, + {0,} +}; + +static struct omnibook_feature __declared_feature muteled_driver = { + .name = "muteled", + .enabled = 1, + .read = omnibook_muteled_read, + .write = omnibook_muteled_write, + .exit = omnibook_muteled_cleanup, + .resume = omnibook_muteled_resume, + .ectypes = XE4500, + .tbl = muteled_table, +}; + +module_param_named(muteled, muteled_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(muteled, "Use 0 to disable, 1 to enable 'Audo Mute' LED control"); --- linux-3.2.0.orig/ubuntu/omnibook/hotkeys.c +++ linux-3.2.0/ubuntu/omnibook/hotkeys.c @@ -0,0 +1,193 @@ +/* + * hotkeys.c -- code to handling Hotkey/E-Key/EasyAccess buttons + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include "hardware.h" + +/* Predefined convinient on/off states */ +#define HKEY_ON HKEY_ONETOUCH|HKEY_MULTIMEDIA|HKEY_FN|HKEY_DOCK|HKEY_FNF5 +#define HKEY_OFF 0 + +/* + * Set hotkeys status and update recorded saved state + */ +static int hotkeys_set_save(struct omnibook_operation *io_op, unsigned int state) +{ + int retval; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + retval = __backend_hotkeys_set(io_op, state); + if (retval < 0) + goto out; + + /* Update saved state */ + io_op->backend->hotkeys_state = state & io_op->backend->hotkeys_write_cap; + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Read hotkeys status, fallback to reading saved state if real probing is not + * supported. + */ +static int hotkeys_get_save(struct omnibook_operation *io_op, unsigned int *state) +{ + unsigned int read_state = 0; + int retval = 0; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if (io_op->backend->hotkeys_get) + retval = __backend_hotkeys_get(io_op, &read_state); + if (retval < 0) + goto out; + + /* Return previously set state for the fields that are write only */ + *state = (read_state & io_op->backend->hotkeys_read_cap) + + (io_op->backend->hotkeys_state & ~io_op->backend->hotkeys_read_cap); + + out: + mutex_unlock(&io_op->backend->mutex); + return 0; +} + +/* + * Power management handlers + */ + +/* + * Restore previously saved state + */ +static int omnibook_hotkeys_resume(struct omnibook_operation *io_op) +{ + int retval; + mutex_lock(&io_op->backend->mutex); + retval = __backend_hotkeys_set(io_op, io_op->backend->hotkeys_state); + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +/* + * Disable hotkeys upon suspend (FIXME is the disabling required ?) + */ +static int omnibook_hotkeys_suspend(struct omnibook_operation *io_op) +{ + int retval = 0; + retval = backend_hotkeys_set(io_op, HKEY_OFF); + return retval; +} + +static const char pretty_name[][27] = { + "Onetouch buttons are", + "Multimedia hotkeys are", + "Fn hotkeys are", + "Stick key is", + "Press Fn twice to lock is", + "Dock events are", + "Fn + F5 hotkey is", +}; + +static int omnibook_hotkeys_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int retval; + unsigned int read_state = 0; /* buggy gcc 4.1 warning fix */ + unsigned int shift, mask; + + retval = hotkeys_get_save(io_op, &read_state); + + if (retval < 0) + return retval; + + for (shift = 0; shift <= HKEY_LAST_SHIFT ; shift++) { + mask = 1 << shift; + /* we assume write capability or read capability imply support */ + if ((io_op->backend->hotkeys_read_cap | io_op->backend->hotkeys_write_cap) & mask) + len += + sprintf(buffer + len, "%s %s.\n", pretty_name[shift], + (read_state & mask) ? "enabled" : "disabled"); + } + + return len; +} + +static int omnibook_hotkeys_write(char *buffer, struct omnibook_operation *io_op) +{ + unsigned int state; + char *endp; + + if (strncmp(buffer, "off", 3) == 0) + hotkeys_set_save(io_op, HKEY_OFF); + else if (strncmp(buffer, "on", 2) == 0) + hotkeys_set_save(io_op, HKEY_ON); + else { + state = simple_strtoul(buffer, &endp, 16); + if (endp == buffer) + return -EINVAL; + else + hotkeys_set_save(io_op, state); + } + return 0; +} + +static int __init omnibook_hotkeys_init(struct omnibook_operation *io_op) +{ + int retval; + + printk(O_INFO "Enabling all hotkeys.\n"); + retval = hotkeys_set_save(io_op, HKEY_ON); + return retval < 0 ? retval : 0; +} + +static void __exit omnibook_hotkeys_cleanup(struct omnibook_operation *io_op) +{ + printk(O_INFO "Disabling all hotkeys.\n"); + hotkeys_set_save(io_op, HKEY_OFF); +} + +static struct omnibook_tbl hotkeys_table[] __initdata = { + {XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | AMILOD | TSP10 | TSM30X, + COMMAND(KBC,OMNIBOOK_KBC_CMD_ONETOUCH_ENABLE,OMNIBOOK_KBC_CMD_ONETOUCH_DISABLE)}, + {TSM70, {CDI,}}, + {TSM40, {SMI,}}, + {TSX205, {ACPI,}}, + {0,} +}; + +static struct omnibook_feature __declared_feature hotkeys_driver = { + .name = "hotkeys", + .enabled = 1, + .read = omnibook_hotkeys_read, + .write = omnibook_hotkeys_write, + .init = omnibook_hotkeys_init, + .exit = omnibook_hotkeys_cleanup, + .suspend = omnibook_hotkeys_suspend, + .resume = omnibook_hotkeys_resume, + .ectypes = + XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | AMILOD | TSP10 | TSM70 | TSM30X | + TSM40 | TSX205, + .tbl = hotkeys_table, +}; + +module_param_named(hotkeys, hotkeys_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(hotkeys, "Use 0 to disable, 1 to enable hotkeys handling"); +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/blank.c +++ linux-3.2.0/ubuntu/omnibook/blank.c @@ -0,0 +1,138 @@ +/* + * blank.c -- blanking lcd console + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include "hardware.h" + +static struct omnibook_feature blank_driver; + +/* + * console_blank_hook pointer manipulation is lock protected + */ +extern int (*console_blank_hook) (int); +static DEFINE_SPINLOCK(blank_spinlock); + + +int omnibook_lcd_blank(int blank) +{ + struct omnibook_feature *blank_feature = omnibook_find_feature("blank"); + + if(!blank_feature) + return -ENODEV; + + return omnibook_apply_write_mask(blank_feature->io_op, blank); +} + +static int console_blank_register_hook(void) +{ + spin_lock(&blank_spinlock); + if (console_blank_hook != omnibook_lcd_blank) { + if (console_blank_hook == NULL) { + console_blank_hook = omnibook_lcd_blank; + printk(O_INFO "LCD backlight turn off at console blanking is enabled.\n"); + } else + printk(O_INFO "There is a console blanking solution already registered.\n"); + } + spin_unlock(&blank_spinlock); + return 0; +} + +static int console_blank_unregister_hook(void) +{ + int retval; + spin_lock(&blank_spinlock); + if (console_blank_hook == omnibook_lcd_blank) { + console_blank_hook = NULL; + printk(O_INFO "LCD backlight turn off at console blanking is disabled.\n"); + } else if (console_blank_hook) { + printk(O_WARN "You can not disable another console blanking solution.\n"); + retval = -EBUSY; + } else { + printk(O_INFO "Console blanking already disabled.\n"); + } + spin_unlock(&blank_spinlock); + return retval; +} + +static int omnibook_console_blank_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + spin_lock(&blank_spinlock); + + len += + sprintf(buffer + len, "LCD console blanking hook is %s\n", + (console_blank_hook == omnibook_lcd_blank) ? "enabled" : "disabled"); + + spin_unlock(&blank_spinlock); + + return len; +} + +static int omnibook_console_blank_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + + switch (*buffer) { + case '0': + retval = console_blank_unregister_hook(); + break; + case '1': + retval = console_blank_register_hook(); + break; + default: + retval = -EINVAL; + } + return retval; +} + +static int __init omnibook_console_blank_init(struct omnibook_operation *io_op) +{ + return console_blank_register_hook(); +} + +static void __exit omnibook_console_blank_cleanup(struct omnibook_operation *io_op) +{ + console_blank_unregister_hook(); +} + +static struct omnibook_tbl blank_table[] __initdata = { + {TSM70 | TSX205, {CDI, 0, TSM100_BLANK_INDEX, 0, TSM100_LCD_OFF, TSM100_LCD_ON}}, + {XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X, + COMMAND(KBC, OMNIBOOK_KBC_CMD_LCD_OFF, OMNIBOOK_KBC_CMD_LCD_ON)}, + {OB500 | OB6000 | XE2, {PIO, OB500_GPO1, OB500_GPO1, 0, -OB500_BKLT_MASK, OB500_BKLT_MASK}}, + {OB510 | OB6100, {PIO, OB510_GPO2, OB510_GPO2, 0, -OB510_BKLT_MASK, OB510_BKLT_MASK}}, + {0,} +}; + +static struct omnibook_feature __declared_feature blank_driver = { + .name = "blank", + .enabled = 1, + .read = omnibook_console_blank_read, + .write = omnibook_console_blank_write, + .init = omnibook_console_blank_init, + .exit = omnibook_console_blank_cleanup, + .ectypes = + XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE2 | AMILOD | TSP10 | TSM70 | TSM30X | TSX205, + .tbl = blank_table, +}; + +module_param_named(blank, blank_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(blank, "Use 0 to disable, 1 to enable lcd console blanking"); +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/compat.h +++ linux-3.2.0/ubuntu/omnibook/compat.h @@ -0,0 +1,71 @@ +/* + * compat.h -- Older kernel (=> 2.6.11) support + * + * 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, 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. + * + * Written by Mathieu Bérard , 2006 + */ + +#include + +/* + * For compatibility with kernel older than 2.6.16 + * Mutex to Semaphore fallback + */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)) +#include +#define DEFINE_MUTEX(lock) DECLARE_MUTEX(lock) +#define mutex_init(lock) init_MUTEX(lock) +#define mutex_lock(lock) down(lock) +#define mutex_lock_interruptible(lock) down_interruptible(lock) +#define mutex_unlock(lock) up(lock) +#define mutex_destroy(lock) do { } while(0) +#else +#include +#endif + +/* + * For compatibility with kernel older than 2.6.14 + */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14)) +static void inline *kzalloc(size_t size, int flags) +{ + void *ret = kmalloc(size, flags); + if (ret) + memset(ret, 0, size); + return ret; +} +#endif + +/* + * For compatibility with kernel older than 2.6.11 + */ + +#ifndef DEFINE_SPINLOCK +#define DEFINE_SPINLOCK(s) spinlock_t s = SPIN_LOCK_UNLOCKED +#endif + +/* + * Those kernel don't have ICH7 southbridge pcids + */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)) +#define PCI_DEVICE_ID_INTEL_ICH7_0 0x27b8 +#define PCI_DEVICE_ID_INTEL_ICH7_1 0x27b9 +#define PCI_DEVICE_ID_INTEL_ICH7_30 0x27b0 +#define PCI_DEVICE_ID_INTEL_ICH7_31 0x27bd +#endif + + + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/bluetooth.c +++ linux-3.2.0/ubuntu/omnibook/bluetooth.c @@ -0,0 +1,104 @@ +/* + * wireless.c Bluetooth feature + * + * 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, 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. + * + * Written by Mathieu Bérard , 2006 + * + */ + +#include "omnibook.h" +#include "hardware.h" + +static int omnibook_bt_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int retval; + unsigned int state; + + if ((retval = backend_aerial_get(io_op, &state))) + return retval; + + len += + sprintf(buffer + len, "Bluetooth adapter is %s", + (state & BT_EX) ? "present" : "absent"); + if (state & BT_EX) + len += sprintf(buffer + len, " and %s", (state & BT_STA) ? "enabled" : "disabled"); + len += sprintf(buffer + len, ".\n"); + return len; + +} + +static int omnibook_bt_write(char *buffer, struct omnibook_operation *io_op) +{ + int retval = 0; + unsigned int state; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if ((retval = __backend_aerial_get(io_op, &state))) + goto out; + + if (*buffer == '0') + state &= ~BT_STA; + else if (*buffer == '1') + state |= BT_STA; + else { + retval = -EINVAL; + goto out; + } + + retval = __backend_aerial_set(io_op, state); + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static struct omnibook_feature bt_driver; + +static int __init omnibook_bt_init(struct omnibook_operation *io_op) +{ + int retval = 0; + unsigned int state; + +/* + * Refuse enabling/disabling a non-existent device + */ + + if ((retval = backend_aerial_get(io_op, &state))) + return retval; + + if (!(state & BT_EX)) + bt_driver.write = NULL; + + return retval; +} + +static struct omnibook_tbl wireless_table[] __initdata = { + {TSM70 | TSA105 | TSX205, {ACPI,}}, /* stubs to select backend */ + {TSM40, {SMI,}}, /* stubs to select backend */ + {0,} +}; + +static struct omnibook_feature __declared_feature bt_driver = { + .name = "bluetooth", + .enabled = 1, + .read = omnibook_bt_read, + .write = omnibook_bt_write, + .init = omnibook_bt_init, + .ectypes = TSM70 | TSM40 | TSA105 | TSX205, + .tbl = wireless_table, +}; + +module_param_named(bluetooth, bt_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(bluetooth, "Use 0 to disable, 1 to enable bluetooth adapter control"); --- linux-3.2.0.orig/ubuntu/omnibook/BOM +++ linux-3.2.0/ubuntu/omnibook/BOM @@ -0,0 +1,3 @@ +Downloaded from: git://omnibook.git.sourceforge.net/gitroot/omnibook/omnibook +Current Version: 2.20070211 +Documentation: http://sourceforge.net/apps/mediawiki/omnibook/ --- linux-3.2.0.orig/ubuntu/omnibook/omnibook.h +++ linux-3.2.0/ubuntu/omnibook/omnibook.h @@ -0,0 +1,145 @@ +/* + * omnibook.h -- High level data structures and functions of omnibook + * support code + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006-2007 + */ + +#include +#include +#include +#include + +/* + * EC types + */ + +extern enum omnibook_ectype_t { + NONE = 0, /* 0 Default/unknown EC type */ + XE3GF = (1<<0), /* 1 HP OmniBook XE3 GF, most old Toshiba Satellites */ + XE3GC = (1<<1), /* 2 HP OmniBook XE3 GC, GD, GE and compatible */ + OB500 = (1<<2), /* 3 HP OmniBook 500 and compatible */ + OB510 = (1<<3), /* 4 HP OmniBook 510 */ + OB6000 = (1<<4), /* 5 HP OmniBook 6000 */ + OB6100 = (1<<5), /* 6 HP OmniBook 6100 */ + XE4500 = (1<<6), /* 7 HP OmniBook xe4500 and compatible */ + OB4150 = (1<<7), /* 8 HP OmniBook 4150 */ + XE2 = (1<<8), /* 9 HP OmniBook XE2 */ + AMILOD = (1<<9), /* 10 Fujitsu Amilo D */ + TSP10 = (1<<10), /* 11 Toshiba Satellite P10, P15, P20 and compatible */ + TSM70 = (1<<11), /* 12 Toshiba Satellite M40X, M70 and compatible */ + TSM40 = (1<<12), /* 13 Toshiba Satellite M40, M45 and Tecra S1 */ + TSA105 = (1<<13), /* 14 Toshiba Satellite A105 and compatible (Real support is MISSING) */ + TSM30X = (1<<14), /* 15 Toshiba Stallite M30X and compatible */ + TSX205 = (1<<15) /* 16 Toshiba Stallite X205 and compatible */ +} omnibook_ectype; + +#define ALL_ECTYPES XE3GF|XE3GC|OB500|OB510|OB6000|OB6100|XE4500|OB4150|XE2|AMILOD|TSP10|TSM70|TSM40|TSA105|TSM30X|TSX205 + +/* + * This represent a feature provided by this module + */ + +struct omnibook_operation; + +struct omnibook_feature { + char *name; /* Name */ + int enabled; /* Set from module parameter */ + int (*read) (char *,struct omnibook_operation *); /* Procfile read function */ + int (*write) (char *,struct omnibook_operation *); /* Procfile write function */ + int (*init) (struct omnibook_operation *); /* Specific Initialization function */ + void (*exit) (struct omnibook_operation *); /* Specific Cleanup function */ + int (*suspend) (struct omnibook_operation *); /* PM Suspend function */ + int (*resume) (struct omnibook_operation *); /* PM Resume function */ + int ectypes; /* Type(s) of EC we support for this feature (bitmask) */ + struct omnibook_tbl *tbl; + struct omnibook_operation *io_op; + struct list_head list; +}; + +/* + * State of a Wifi/Bluetooth adapter + */ +enum { + WIFI_EX = (1<<0), /* 1 1=present 0=absent */ + WIFI_STA = (1<<1), /* 2 1=enabled 0=disabled */ + KILLSWITCH = (1<<2), /* 4 1=radio on 0=radio off */ + BT_EX = (1<<3), /* 8 1=present 0=absent */ + BT_STA = (1<<4), /* 16 1=enabled 0=disabled */ +}; + +/* + * Hotkeys state backend neutral masks + */ +enum { + HKEY_ONETOUCH = (1<<0), /* 1 Ontetouch button scancode generation */ + HKEY_MULTIMEDIA = (1<<1), /* 2 "Multimedia hotkeys" scancode generation */ + HKEY_FN = (1<<2), /* 4 Fn + foo hotkeys scancode generation */ + HKEY_STICK = (1<<3), /* 8 Stick key (Fn locked/unlocked on keypress) */ + HKEY_TWICE_LOCK = (1<<4), /* 16 Press Fn twice to lock */ + HKEY_DOCK = (1<<5), /* 32 (Un)Dock events scancode generation */ + HKEY_FNF5 = (1<<6), /* 64 Fn + F5 (toggle display) is enabled */ +}; + +#define HKEY_LAST_SHIFT 6 + +/* + * Display state backend neutral masks + * _ON masks = port is powered up and running + * _DET masks = a plugged display have been detected + */ + +enum { + DISPLAY_LCD_ON = (1<<0), /* 1 Internal LCD panel */ + DISPLAY_CRT_ON = (1<<1), /* 2 External VGA port */ + DISPLAY_TVO_ON = (1<<2), /* 4 External TV-OUT port */ + DISPLAY_DVI_ON = (1<<3), /* 8 External DVI port */ + DISPLAY_LCD_DET = (1<<4), /* 16 Internal LCD panel */ + DISPLAY_CRT_DET = (1<<5), /* 32 External VGA port */ + DISPLAY_TVO_DET = (1<<6), /* 64 External TV-OUT port */ + DISPLAY_DVI_DET = (1<<7), /* 128 External DVI port */ +}; + +extern unsigned int omnibook_max_brightness; +int set_omnibook_param(const char *val, struct kernel_param *kp); +int omnibook_lcd_blank(int blank); +struct omnibook_feature *omnibook_find_feature(char *name); +void omnibook_report_key(struct input_dev *dev, unsigned int keycode); + +/* + * __attribute_used__ is not defined anymore in 2.6.24 + * but __used appeared only in 2.6.22 + */ +#ifndef __used +#define __used __attribute_used__ +#endif + +#define __declared_feature __attribute__ (( __section__(".features"), __aligned__(__alignof__ (struct omnibook_feature)))) __used + +/* + * yet another printk wrapper + */ +#define O_INFO KERN_INFO OMNIBOOK_MODULE_NAME ": " +#define O_WARN KERN_WARNING OMNIBOOK_MODULE_NAME ": " +#define O_ERR KERN_ERR OMNIBOOK_MODULE_NAME ": " + +#ifdef CONFIG_OMNIBOOK_DEBUG +#define dprintk(fmt, args...) printk(KERN_INFO "%s: " fmt, OMNIBOOK_MODULE_NAME, ## args) +#define dprintk_simple(fmt, args...) printk(fmt, ## args) +#else +#define dprintk(fmt, args...) do { } while(0) +#define dprintk_simple(fmt, args...) do { } while(0) +#endif + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/lcd.c +++ linux-3.2.0/ubuntu/omnibook/lcd.c @@ -0,0 +1,207 @@ +/* + * lcd.c -- LCD brightness and on/off + * + * 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, 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. + * + * Written by Maciek Górniak , 2002 + * Modified by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" +#include + +#ifdef CONFIG_OMNIBOOK_BACKLIGHT +#include +#endif + +#include "hardware.h" + +unsigned int omnibook_max_brightness; + +#ifdef CONFIG_OMNIBOOK_BACKLIGHT +static struct backlight_device *omnibook_backlight_device; + +static int omnibook_get_backlight(struct backlight_device *bd); +static int omnibook_set_backlight(struct backlight_device *bd); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) +static struct backlight_ops omnibookbl_ops = { +#else /* 2.6.21 */ +static struct backlight_properties omnibookbl_data = { + .owner = THIS_MODULE, +#endif /* 2.6.21 */ + .get_brightness = omnibook_get_backlight, + .update_status = omnibook_set_backlight, +}; + +static int omnibook_get_backlight(struct backlight_device *bd) +{ + int retval = 0; + struct omnibook_operation *io_op; + u8 brgt; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) + io_op = bl_get_data(bd); +#else /* 2.6.23 */ + io_op = class_get_devdata(&bd->class_dev); +#endif /* 2.6.23 */ + retval = backend_byte_read(io_op, &brgt); + if (!retval) + retval = brgt; + + return retval; +} + +static int omnibook_set_backlight(struct backlight_device *bd) +{ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + u8 intensity = bd->props.brightness; +#else /* 2.6.21 */ + u8 intensity = bd->props->brightness; +#endif /* 2.6.21 */ + struct omnibook_operation *io_op; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) + io_op = bl_get_data(bd); +#else /* 2.6.23 */ + io_op = class_get_devdata(&bd->class_dev); +#endif /* 2.6.23 */ + return backend_byte_write(io_op, intensity); +} +#endif /* CONFIG_OMNIBOOK_BACKLIGHT */ + +static int omnibook_brightness_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + u8 brgt; + + backend_byte_read(io_op, &brgt); + + len += + sprintf(buffer + len, "LCD brightness: %2d (max value: %d)\n", brgt, + omnibook_max_brightness); + + return len; +} + +static int omnibook_brightness_write(char *buffer, struct omnibook_operation *io_op) +{ + unsigned int brgt = 0; + char *endp; + + if (strncmp(buffer, "off", 3) == 0) + omnibook_lcd_blank(1); + else if (strncmp(buffer, "on", 2) == 0) + omnibook_lcd_blank(0); + else { + brgt = simple_strtoul(buffer, &endp, 10); + if ((endp == buffer) || (brgt > omnibook_max_brightness)) + return -EINVAL; + else { + backend_byte_write(io_op, brgt); +#ifdef CONFIG_OMNIBOOK_BACKLIGHT +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + omnibook_backlight_device->props.brightness = brgt; +#else /* 2.6.21 */ + omnibookbl_data.brightness = brgt; +#endif +#endif + } + } + return 0; +} + +static int __init omnibook_brightness_init(struct omnibook_operation *io_op) +{ + /* + * FIXME: What is exactly the max value for each model ? + * I know that it's 7 for the TSM30X, TSM70, TSM40 and TSA105 + * and previous versions of this driver (wrongly) assumed it was 10 for + * all models. + * + * XE3GF + * TSM30X + * TSM70 + * TSM40 + * TSA105 + * TSX205 + */ + if (omnibook_ectype & (XE3GF | TSM70 | TSM30X | TSM40 | TSA105 | TSX205)) + omnibook_max_brightness = 7; + else { + omnibook_max_brightness = 10; + printk(O_WARN "Assuming that LCD brightness is between 0 and %i,\n", + omnibook_max_brightness); + printk(O_WARN + "please contact http://sourceforge.net/projects/omnibook to confirm.\n"); + } + +#ifdef CONFIG_OMNIBOOK_BACKLIGHT + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + omnibook_backlight_device = + backlight_device_register(OMNIBOOK_MODULE_NAME, NULL, (void *)io_op, &omnibookbl_ops); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) + omnibook_backlight_device = + backlight_device_register(OMNIBOOK_MODULE_NAME, NULL, (void *)io_op, &omnibookbl_data); +#else /* < 2.6.20 */ + omnibook_backlight_device = + backlight_device_register(OMNIBOOK_MODULE_NAME, (void *)io_op, &omnibookbl_data); +#endif + if (IS_ERR(omnibook_backlight_device)) { + printk(O_ERR "Unable to register as backlight device.\n"); + return -ENODEV; + } + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + omnibook_backlight_device->props.max_brightness = omnibook_max_brightness; + backend_byte_read(io_op, (u8*) &omnibook_backlight_device->props.brightness); +#else /* < 2.6.21 */ + omnibookbl_data.max_brightness = omnibook_max_brightness; + backend_byte_read(io_op, (u8*) &omnibookbl_data.brightness); +#endif + +#endif /* CONFIG_OMNIBOOK_BACKLIGHT */ + return 0; +} +static void __exit omnibook_brightness_cleanup(struct omnibook_operation *io_op) +{ +#ifdef CONFIG_OMNIBOOK_BACKLIGHT + backlight_device_unregister(omnibook_backlight_device); +#endif +} + +static struct omnibook_tbl lcd_table[] __initdata = { + {TSM70 | TSX205, {CDI, TSM70_LCD_READ, TSM70_LCD_WRITE, 0, 0, 0}}, + {TSM40, {SMI, SMI_GET_LCD_BRIGHTNESS, SMI_SET_LCD_BRIGHTNESS, 0, 0, 0}}, + {XE3GF | TSP10 | TSM70 | TSM30X, SIMPLE_BYTE(EC, XE3GF_BRTS, XE3GF_BRTS_MASK)}, + {XE3GC, SIMPLE_BYTE(EC, XE3GC_BTVL, XE3GC_BTVL_MASK)}, + {AMILOD, SIMPLE_BYTE(EC, AMILOD_CBRG, XE3GC_BTVL_MASK)}, + {TSA105, SIMPLE_BYTE(EC, A105_BNDT, A105_BNDT_MASK)}, + {0,} +}; + +static struct omnibook_feature __declared_feature lcd_driver = { + .name = "lcd", + .enabled = 1, + .read = omnibook_brightness_read, + .write = omnibook_brightness_write, + .init = omnibook_brightness_init, + .exit = omnibook_brightness_cleanup, + .ectypes = XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X | TSM40 | TSA105 | TSX205, + .tbl = lcd_table, +}; + +module_param_named(lcd, lcd_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(lcd, "Use 0 to disable, 1 to enable to LCD brightness support"); + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/dump.c +++ linux-3.2.0/ubuntu/omnibook/dump.c @@ -0,0 +1,107 @@ +/* + * dump.c - Raw dump of EC register, stolen from ibm_acpi.c + * + * + * Copyright (C) 2004-2005 Borislav Deianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "omnibook.h" +#include "hardware.h" + +static u8 ecdump_regs[256]; + +static int ecdump_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + int i, j; + u8 v; + + len += + sprintf(buffer + len, + "EC " " +00 +01 +02 +03 +04 +05 +06 +07" + " +08 +09 +0a +0b +0c +0d +0e +0f\n"); + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + for (i = 0; i < 255; i += 16) { + len += sprintf(buffer + len, "EC 0x%02x:", i); + for (j = 0; j < 16; j++) { + io_op->read_addr = i +j; + if (__backend_byte_read(io_op, &v)) + break; + if (v != ecdump_regs[i + j]) + len += sprintf(buffer + len, " *%02x", v); + else + len += sprintf(buffer + len, " %02x", v); + ecdump_regs[i + j] = v; + } + len += sprintf(buffer + len, "\n"); + if (j != 16) + break; + } + + mutex_unlock(&io_op->backend->mutex); + + /* These are way too dangerous to advertise openly... */ +#if 0 + len += + sprintf(buffer + len, + "commands:\t0x 0x" " ( is 00-ff, is 00-ff)\n"); + len += + sprintf(buffer + len, + "commands:\t0x " " ( is 00-ff, is 0-255)\n"); +#endif + return len; +} + +static int ecdump_write(char *buffer, struct omnibook_operation *io_op) +{ + + int i, v; + + if (sscanf(buffer, "0x%x 0x%x", &i, &v) == 2) { + /* i and v set */ + } else if (sscanf(buffer, "0x%x %u", &i, &v) == 2) { + /* i and v set */ + } else + return -EINVAL; + if (i >= 0 && i < 256 && v >= 0 && v < 256) { + io_op->write_addr = i; + return backend_byte_write(io_op, v); + } else + return -EINVAL; + + return 0; +} + +static struct omnibook_tbl dump_table[] __initdata = { + {ALL_ECTYPES, {EC,}}, + {0,} +}; + +static struct omnibook_feature __declared_feature dump_driver = { + .name = "dump", + .enabled = 0, + .read = ecdump_read, + .write = ecdump_write, + .tbl = dump_table, +}; + +module_param_named(dump, dump_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(dump, "Use 0 to disable, 1 to enable embedded controller register dump support"); +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/sections.lds +++ linux-3.2.0/ubuntu/omnibook/sections.lds @@ -0,0 +1,11 @@ +SECTIONS +{ + .data : + { + . = ALIGN(32); + _start_features_driver = .; + *(.features) + _end_features_driver = .; + *(.data) + } +} --- linux-3.2.0.orig/ubuntu/omnibook/fan_policy.c +++ linux-3.2.0/ubuntu/omnibook/fan_policy.c @@ -0,0 +1,188 @@ +/* + * fan_policy.c -- fan policy support + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include "hardware.h" + +/* + * Default temperature limits. + * Danger! You may overheat your CPU! + * Do not change these values unless you exactly know what you do. + */ + +#define OMNIBOOK_FAN_LEVELS 8 +#define OMNIBOOK_FAN_MIN 25 /* Minimal value of fan off temperature */ +#define OMNIBOOK_FOT_MAX 75 /* Maximal value of fan off temperature */ +#define OMNIBOOK_FAN_MAX 95 /* Maximal value of fan on temperature */ +#define OMNIBOOK_FOT_DEFAULT 60 /* Default value of fan off temperature */ +#define OMNIBOOK_FAN1_DEFAULT 75 /* Default value of fan on temperature */ +#define OMNIBOOK_FAN2_DEFAULT 85 /* Default value of fan level 2 temperature */ +#define OMNIBOOK_FAN3_DEFAULT 90 /* Default value of fan level 3 temperature */ +#define OMNIBOOK_FAN4_DEFAULT 95 /* Default value of fan level 4 temperature */ +#define OMNIBOOK_FAN5_DEFAULT 95 /* Default value of fan level 5 temperature */ +#define OMNIBOOK_FAN6_DEFAULT 95 /* Default value of fan level 6 temperature */ +#define OMNIBOOK_FAN7_DEFAULT 95 /* Default value of fan level 7 temperature */ + +static const u8 fan_defaults[] = { + OMNIBOOK_FOT_DEFAULT, + OMNIBOOK_FAN1_DEFAULT, + OMNIBOOK_FAN2_DEFAULT, + OMNIBOOK_FAN3_DEFAULT, + OMNIBOOK_FAN4_DEFAULT, + OMNIBOOK_FAN5_DEFAULT, + OMNIBOOK_FAN6_DEFAULT, + OMNIBOOK_FAN7_DEFAULT, +}; + +static int omnibook_get_fan_policy(struct omnibook_operation *io_op, u8 *fan_policy) +{ + int retval ; + int i; + + for (i = 0; i < OMNIBOOK_FAN_LEVELS; i++) { + io_op->read_addr = XE3GF_FOT + i; + if ((retval = __backend_byte_read(io_op, &fan_policy[i]))) + return retval; + } + + return 0; +} + +static int omnibook_set_fan_policy(struct omnibook_operation *io_op, const u8 *fan_policy) +{ + int retval; + int i; + + if (fan_policy[0] > OMNIBOOK_FOT_MAX) + return -EINVAL; + + for (i = 0; i < OMNIBOOK_FAN_LEVELS; i++) { + if ((fan_policy[i] > fan_policy[i + 1]) + || (fan_policy[i] < OMNIBOOK_FAN_MIN) + || (fan_policy[i] > OMNIBOOK_FAN_MAX)) + return -EINVAL; + } + for (i = 0; i < OMNIBOOK_FAN_LEVELS; i++) { + io_op->write_addr = XE3GF_FOT + i; + if ((retval = __backend_byte_write(io_op, fan_policy[i]))) + return retval; + } + + return 0; +} + +static int omnibook_fan_policy_read(char *buffer, struct omnibook_operation *io_op) +{ + int retval; + int len = 0; + u8 i; + u8 fan_policy[OMNIBOOK_FAN_LEVELS]; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + retval = omnibook_get_fan_policy(io_op, &fan_policy[0]); + + mutex_unlock(&io_op->backend->mutex); + + if(retval) + return retval; + + len += sprintf(buffer + len, "Fan off temperature: %2d C\n", fan_policy[0]); + len += sprintf(buffer + len, "Fan on temperature: %2d C\n", fan_policy[1]); + for (i = 2; i < OMNIBOOK_FAN_LEVELS; i++) { + len += + sprintf(buffer + len, "Fan level %1d temperature: %2d C\n", i, + fan_policy[i]); + } + len += sprintf(buffer + len, "Minimal temperature to set: %2d C\n", OMNIBOOK_FAN_MIN); + len += sprintf(buffer + len, "Maximal temperature to set: %2d C\n", OMNIBOOK_FAN_MAX); + + return len; +} + +static int omnibook_fan_policy_write(char *buffer, struct omnibook_operation *io_op) +{ + int n = 0; + char *b; + char *endp; + int retval; + int temp; + u8 fan_policy[OMNIBOOK_FAN_LEVELS]; + + if(mutex_lock_interruptible(&io_op->backend->mutex)) + return -ERESTARTSYS; + + if ((retval = omnibook_get_fan_policy(io_op, &fan_policy[0]))) + goto out; + + /* + * Could also be done much simpler using sscanf(,"%u %u ... + * but this would hardcode OMNIBOOK_FAN_LEVELS. + * The parsed format is "%u " repeated OMNIBOOK_FAN_LEVELS+1 times + */ + + b = buffer; + do { + dprintk("n=[%i] b=[%s]\n", n, b); + if (n > OMNIBOOK_FAN_LEVELS) { + retval = -EINVAL; + goto out; + } + if (!isspace(*b)) { + temp = simple_strtoul(b, &endp, 10); + if (endp != b) { /* there was a match */ + fan_policy[n++] = temp; + b = endp; + } else { + retval = -EINVAL; + goto out; + } + } else + b++; + } while ((*b != '\0') && (*b != '\n')); + + /* A zero value set the defaults */ + if ((fan_policy[0] == 0) && (n == 1)) + retval = omnibook_set_fan_policy(io_op, &fan_defaults[0]); + else + retval = omnibook_set_fan_policy(io_op, &fan_policy[0]); + + out: + mutex_unlock(&io_op->backend->mutex); + return retval; +} + +static struct omnibook_tbl fan_policy_table[] __initdata = { + {XE3GF, {EC,}}, + {0,} +}; + +static struct omnibook_feature __declared_feature fan_policy_driver = { + .name = "fan_policy", + .enabled = 1, + .read = omnibook_fan_policy_read, + .write = omnibook_fan_policy_write, + .ectypes = XE3GF, + .tbl = fan_policy_table, +}; + +module_param_named(fan_policy, fan_policy_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(fan_policy, "Use 0 to disable, 1 to enable fan control policy support"); +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/laptop.h +++ linux-3.2.0/ubuntu/omnibook/laptop.h @@ -0,0 +1,1077 @@ +/* + * laptop.h -- Various structures about supported hardware + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Written by Mathieu Bérard , 2006 + */ + + +#define HP_SIGNATURE "Hewlett-Packard" + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) +static int __init dmi_matched(struct dmi_system_id *dmi); +#else +static int __init dmi_matched(const struct dmi_system_id *dmi); +#endif + +static struct dmi_system_id omnibook_ids[] __initdata = { + { + .callback = dmi_matched, + .ident = "HP OmniBook XE3 GF", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GF"), + }, + .driver_data = (void *) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook XT1000", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XT1000"), + }, + .driver_data = (void *) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook XE2 DC", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE2 DC"), + }, + .driver_data = (void *) XE2 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook XE3 GC", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GC"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook XE3 GD / Pavilion N5430", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GD"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook XE3 GE / Pavilion N5415", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GE"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 500 FA", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 500 FA"), + }, + .driver_data = (void*) OB500 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 510 FB", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 510 FB"), + }, + .driver_data = (void*) OB510 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 4150", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 4150"), + }, + .driver_data = (void*) OB4150 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 900 B", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 900 B"), + }, + .driver_data = (void*) OB4150 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 6000 EA", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 6000 EA"), + }, + .driver_data = (void*) OB6000 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 6100 EB", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 6100 EB"), + }, + .driver_data = (void*) OB6100 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook xe4000/xe4100", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook xe4000"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook xe4400", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook xe4400"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook xe4500", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook xe4500"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP OmniBook 6200 EG / vt6200 / xt 6200", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 6200 EG"), + }, + .driver_data = (void*) XE4500 + }, + /* There are no model specific strings of some HP OmniBook XT1500 */ + { + .callback = dmi_matched, + .ident = "HP OmniBook XT1500", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ze4000 / ze4125", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP NoteBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP NoteBook ze4000"), + }, + .driver_data = (void*) XE4500 + }, + /* There are no model specific strings of some HP Pavilion xt155 and some HP Pavilion ze4100 + * There are no model specific strings of some HP nx9000 */ + { + .callback = dmi_matched, + .ident = "HP Pavilion xt155 / ze4100 / nx9000", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP NoteBook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP NoteBook PC"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ZU1000 FA / ZU1000 FA / ZU1175", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion ZU1000 FA"), + }, + .driver_data = (void*) OB500 + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion Notebook XE3 GC / N5290", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook XE3 GC"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion Notebook GD / N5441", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook Model GD"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion Notebook GE / XH545", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook Model GE"), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion Notebook ZT1000 / ZT1141", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook ZT1000"), + }, + .driver_data = (void*) XE3GF + }, + /* There are no model specific strings of some HP Pavilion ZT1175 and ZT1195 notebooks */ + { + .callback = dmi_matched, + .ident = "HP Pavilion ZT1175 / ZT1195", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ze4200 series", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze4200"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ze4300 series", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze4300"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ze4500 series", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze4500"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Pavilion ze8500 series", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze8500"), + }, + .driver_data = (void*) XE4500 + }, + /* Compaq nx9000 */ + { + .callback = dmi_matched, + .ident = "HP Compaq nx9000", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP nx9000"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Compaq nx9005", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP nx9005"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP Compaq nx9010", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP nx9010"), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1000", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1000"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1005", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1005"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1110", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1110"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1115", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1115"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1130", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1130"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1700-100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1700-100"), + }, + .driver_data = (void*) AMILOD + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1700-200", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1700-200"), + }, + .driver_data = (void*) AMILOD + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1700-300", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1700-300"), + }, + .driver_data = (void*) AMILOD + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1700-400", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1700-400"), + }, + .driver_data = (void*) AMILOD + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1700-500", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1700-500"), + }, + .driver_data = (void*) AMILOD + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1900", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1900"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1905", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1905"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1950", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1950"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1955", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S1955"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 2430", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S2430"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 2435", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S2435"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 3000", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S3000"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 3005", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "S3005"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1000", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1000"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1005", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1005"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1110", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1110"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1115", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1115"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1115", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Toshiba 1115"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1900", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1900"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1905", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1905"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1950", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1950"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 1955", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1955"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 2430", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 2430"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 2435", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 2435"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 3000", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 3000"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite 3005", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 3005"), + }, + .driver_data = (void*) XE3GF, + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite A70", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A70"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite A75", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A75"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite A80", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A80"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite A105", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A105"), + }, + .driver_data = (void*) TSA105 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite A100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A100"), + }, + .driver_data = (void*) TSA105 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite P100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P100"), + }, + .driver_data = (void*) TSA105 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite P10", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P10"), + }, + .driver_data = (void*) TSP10 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite P15", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P15"), + }, + .driver_data = (void*) TSP10 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite P20", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P20"), + }, + .driver_data = (void*) TSP10 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite P25", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P25"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M30X", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M30X"), + }, + .driver_data = (void*) TSM30X + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M35X", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M35X"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M50", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M50"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M60", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M60"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M70", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M70"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE M100"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M100"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M115", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M115"), + }, + .driver_data = (void*) TSA105 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M40X", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M40X"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M40", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M40"), + }, + .driver_data = (void*) TSM40 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite M45", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M45"), + }, + .driver_data = (void*) TSM40 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Satellite X205-S9800", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite X205"), + }, + .driver_data = (void*) TSX205 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Tecra S1", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "TECRA S1"), + }, + .driver_data = (void*) TSM40 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Tecra S1", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Tecra S1"), + }, + .driver_data = (void*) TSM40 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Tecra S2", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Tecra S2"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Tecra A4", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Tecra A4"), + }, + .driver_data = (void*) TSM40 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Tecra A6", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "TECRA A6"), + }, + .driver_data = (void*) TSM70 + }, + { + .callback = dmi_matched, + .ident = "Toshiba Equium A110", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "EQUIUM A110"), + }, + .driver_data = (void*) TSM30X /* FIXME: provisional */ + }, + { + .callback = dmi_matched, + .ident = "Compal ACL00", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"), + DMI_MATCH(DMI_BOARD_NAME, "ACL00"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Compal ACL10", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"), + DMI_MATCH(DMI_BOARD_NAME, "ACL10"), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "Fujitsu-Siemens Amilo D series", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), + DMI_MATCH(DMI_PRODUCT_NAME, "Amilo D-Series"), + }, + .driver_data = (void*) AMILOD + }, +/* HP Technology code Matching: + * Technology code appears in the first two chracters of BIOS version string + * ended by a dot, but it prefixed a space character on some models and BIOS + * versions. + * New HP/Compaq models use more characters (eg. KF_KH.). + */ + { + .callback = dmi_matched, + .ident = "HP model with technology code CI", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "CI."), + }, + .driver_data = (void*) OB4150 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code CL", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "CL."), + }, + .driver_data = (void*) OB4150 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code DC", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "DC."), + }, + .driver_data = (void*) XE2 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code EA", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "EA."), + }, + .driver_data = (void*) OB6000 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code EB", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "EB."), + }, + .driver_data = (void*) OB6100 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code EG", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "EG."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code FA", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "FA."), + }, + .driver_data = (void*) OB500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code FB", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "FB."), + }, + .driver_data = (void*) OB510 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code GC", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "GC."), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code GD", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "GD."), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code GE", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "GE."), + }, + .driver_data = (void*) XE3GC + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code GF", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "GF."), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code IB", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "IB."), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code IC", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "IC."), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code ID", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "ID."), + }, + .driver_data = (void*) XE3GF + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KA", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KA."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KB", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KB."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KC", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KC."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KD", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KD."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KE", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KE."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KE_KG", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KE_KG."), + }, + .driver_data = (void*) XE4500 + }, + { + .callback = dmi_matched, + .ident = "HP model with technology code KF_KH", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE), + DMI_MATCH(DMI_BIOS_VERSION, "KF_KH."), + }, + .driver_data = (void*) XE4500 + }, + { NULL, } +}; --- linux-3.2.0.orig/ubuntu/omnibook/info.c +++ linux-3.2.0/ubuntu/omnibook/info.c @@ -0,0 +1,68 @@ +/* + * info.c -- trivial informational features + * + * 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, 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. + * + * Written by Soós Péter , 2002-2004 + * Modified by Mathieu Bérard , 2006 + */ + +#include "omnibook.h" + +#include +#include + +static int omnibook_version_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + len += sprintf(buffer + len, "%s\n", OMNIBOOK_MODULE_VERSION); + + return len; +} + +static int omnibook_dmi_read(char *buffer, struct omnibook_operation *io_op) +{ + int len = 0; + + len += sprintf(buffer + len, "BIOS Vendor: %s\n", dmi_get_system_info(DMI_BIOS_VENDOR)); + len += sprintf(buffer + len, "BIOS Version: %s\n", dmi_get_system_info(DMI_BIOS_VERSION)); + len += sprintf(buffer + len, "BIOS Release: %s\n", dmi_get_system_info(DMI_BIOS_DATE)); + len += sprintf(buffer + len, "System Vendor: %s\n", dmi_get_system_info(DMI_SYS_VENDOR)); + len += sprintf(buffer + len, "Product Name: %s\n", dmi_get_system_info(DMI_PRODUCT_NAME)); + len += + sprintf(buffer + len, "Version: %s\n", dmi_get_system_info(DMI_PRODUCT_VERSION)); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) + len += + sprintf(buffer + len, "Serial Number: %s\n", dmi_get_system_info(DMI_PRODUCT_SERIAL)); +#endif + len += sprintf(buffer + len, "Board Vendor: %s\n", dmi_get_system_info(DMI_BOARD_VENDOR)); + len += sprintf(buffer + len, "Board Name: %s\n", dmi_get_system_info(DMI_BOARD_VERSION)); + + return len; +} + +static struct omnibook_feature __declared_feature version_driver = { + .name = "version", + .enabled = 1, + .read = omnibook_version_read, +}; + +static struct omnibook_feature __declared_feature dmi_driver = { + .name = "dmi", + .enabled = 1, + .read = omnibook_dmi_read, +}; + +module_param_named(dmi, dmi_driver.enabled, int, S_IRUGO); +MODULE_PARM_DESC(dmi, "Use 0 to disable, 1 to enable DMI informations display support"); + +/* End of file */ --- linux-3.2.0.orig/ubuntu/omnibook/debian/control +++ linux-3.2.0/ubuntu/omnibook/debian/control @@ -0,0 +1,21 @@ +Source: omnibook +Section: misc +Priority: optional +Maintainer: Julien Valroff +Build-Depends: debhelper (>> 7.0.0), dpatch, bzip2 +Standards-Version: 3.8.2 +Homepage: http://omnibook.sf.net +Vcs-Svn: https://omnibook.svn.sourceforge.net/svnroot/omnibook/omnibook/trunk +Vcs-Browser: http://omnibook.svn.sourceforge.net/viewvc/omnibook/ + +Package: omnibook-source +Architecture: all +Depends: debhelper (>= 4.0.0), make, module-assistant, kernel-package, bzip2, dpatch +Description: Source for the omnibook driver + This package contains the loadable kernel modules for the HP OmniBooks, + Pavilions, Toshiba Satellites and some other laptops manufactured by + Compal Electronics, Inc as ODM. + . + This module is only compatible with Linux kernels >= 2.6.9 + . + Kernel source is required to compile this module. --- linux-3.2.0.orig/ubuntu/omnibook/debian/copyright +++ linux-3.2.0/ubuntu/omnibook/debian/copyright @@ -0,0 +1,32 @@ +This package was debianized by Peter Soos on +Wed, 25 Jan 2006 21:06:28 +0100. +Debian package was improved by Julien Valroff + +It was downloaded from http://sourceforge.net/projects/omnibook + +Copyright Holder: 2006-2007 Mathieu Bérard + +dump.c: + Copyright (C) 2004-2005 Borislav Deianov + +License: + + This package 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 package 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. + +The Debian packaging is + Copyright (C) 2006 Peter Soos + Copyright (C) 2006-2009 Julien Valroff +It is licensed under the GPL, version 2. + +You should have received a copy of the GNU General Public License with +the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL-2; +if not, write to the Free Software Foundation, Inc., 51 Franklin St, +Fifth Floor, Boston, MA 02110-1301, USA. --- linux-3.2.0.orig/ubuntu/omnibook/debian/compat +++ linux-3.2.0/ubuntu/omnibook/debian/compat @@ -0,0 +1 @@ +7 --- linux-3.2.0.orig/ubuntu/omnibook/debian/control.modules.in +++ linux-3.2.0/ubuntu/omnibook/debian/control.modules.in @@ -0,0 +1,23 @@ +Source: omnibook +Section: misc +Priority: optional +Maintainer: Julien Valroff +Build-Depends: debhelper (>> 7.0.0) +Standards-Version: 3.8.2 + +Package: omnibook-module-_KVERS_ +Architecture: i386 amd64 +Recommends: _STEM_-image-_KVERS_ +Provides: omnibook-module +Description: omnibook module for Linux (kernel _KVERS_) + This package contains the loadable kernel modules for the HP OmniBooks, + Pavilions, Toshiba Satellites and some other laptops manufactured by + Compal Electronics, Inc as ODM. + . + This package contains the compiled kernel modules for _KVERS_ + . + If you have compiled your own kernel, you will most likely need to build + your own omnibook-module. The omnibook-source package has been + provided for use with the Debian kernel-package utility to produce a version + of omnibook-module for your kernel. + --- linux-3.2.0.orig/ubuntu/omnibook/debian/rules +++ linux-3.2.0/ubuntu/omnibook/debian/rules @@ -0,0 +1,135 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +include /usr/share/dpatch/dpatch.make + +CFLAGS = -Wall -g + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +# Name of the source package +psource := omnibook-source + +# The short upstream name, used for the module source directory +sname := omnibook + +# prefix of the target package name +PACKAGE=omnibook-module + +### end KERNEL SETUP + +configure: configure-stamp +configure-stamp: + dh_testdir + touch configure-stamp + + +build-arch: configure-stamp build-arch-stamp +build-arch-stamp: + dh_testdir + touch build-arch-stamp + +build-indep: patch configure-stamp build-indep-stamp +build-indep-stamp: + dh_testdir + + touch build-indep-stamp + +build: patch build-arch build-indep + +clean: unpatch + dh_testdir + rm -f build-arch-stamp build-indep-stamp configure-stamp + + dh_clean + +install: DH_OPTIONS= +install: patch build + dh_testdir + dh_testroot + dh_prep + dh_installdirs + + # Create the directories to install the source into + dh_installdirs -p$(psource) usr/src/modules/$(sname)/debian + cp debian/compat debian/rules debian/changelog \ + debian/control debian/copyright debian/*.modules.in \ + debian/$(psource)/usr/src/modules/$(sname)/debian + cp Makefile *.c *.h *.lds debian/$(psource)/usr/src/modules/$(sname) + + cd debian/$(psource)/usr/src && tar c modules | bzip2 -9 > $(sname).tar.bz2 && rm -rf modules + dh_install + +# Build architecture-independent files here. +# Pass -i to all debhelper commands in this target to reduce clutter. +binary-indep: build install + dh_testdir -i + dh_testroot -i + dh_installchangelogs -i doc/ChangeLog + dh_installdocs -i + dh_installexamples -i + dh_installman -i + dh_link -i + dh_compress -i + dh_fixperms -i + dh_installdeb -i + dh_installdeb -i + dh_shlibdeps -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +# Build architecture-dependent files here. +binary-arch: build install + +# modifieable for experiments or debugging m-a +MA_DIR ?= /usr/share/modass +# load generic variable handling +-include $(MA_DIR)/include/generic.make +# load default rules, including kdist, kdist_image, ... +-include $(MA_DIR)/include/common-rules.make + +ifndef KPKG_STEM +STEM:=linux +else +STEM:=${KPKG_STEM} +endif + +kdist_clean: prep-deb-files + [ ! -f Makefile ] || $(MAKE) KSRC=$(KSRC) clean + dh_clean + +kdist_config: prep-deb-files + sed -i -e 's/_STEM_/$(STEM)/g' debian/control + +binary-modules: kdist_config prep-deb-files + dh_testroot + dh_prep + dh_installdirs lib/modules/$(KVERS)/extra + + # Build the module + $(MAKE) KSRC=$(KSRC) KVERS=$(KVERS) + + # Install the module + $(MAKE) install KSRC=$(KSRC) DESTDIR=$(CURDIR)/debian/$(PKGNAME) INSTDIR=extra DEPMOD="/bin/true" + + dh_installdocs + dh_compress + dh_installmodules + dh_installchangelogs + dh_fixperms + dh_installdeb + dh_gencontrol -- -v$(VERSION) + dh_md5sums + dh_builddeb --destdir=$(DEB_DESTDIR) + dh_prep + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure binary-modules kdist kdist_config kdist_image kdist_clean --- linux-3.2.0.orig/ubuntu/omnibook/debian/docs +++ linux-3.2.0/ubuntu/omnibook/debian/docs @@ -0,0 +1,4 @@ +doc/BUGS +doc/CREDITS +doc/README +misc/hotkeys --- linux-3.2.0.orig/ubuntu/omnibook/debian/changelog +++ linux-3.2.0/ubuntu/omnibook/debian/changelog @@ -0,0 +1,170 @@ +omnibook (2:2.20070211+svn20090714b-1) unstable; urgency=low + + * New SVN snapshot: + + fix build issue induced by previous patches + + fix build with kernel >= 2.6.30 + + -- Julien Valroff Tue, 14 Jul 2009 18:17:49 +0200 + +omnibook (2:2.20070211+svn20090714-1) unstable; urgency=low + + * New SVN snapshot: + + Applied patches from Azael Avalos + to add support to Satellite X205 and other laptops based on + ICH8 + * New Standards version 3.8.2 + * Bumped DH compat to 7 + * Updated copyright information + * Now use dh_prep instead of dh_clean -k + + -- Julien Valroff Tue, 14 Jul 2009 10:03:00 +0200 + +omnibook (2:2.20070211+svn20090227-1) unstable; urgency=low + + * New SVN snapshot + + Applied patch from Danny Kukawka to + fix compiler warning about use uninitialized variable + + Applied patch from Danny Kukawka to + fix build the driver on older kernel versions + + * New Standards version 3.8.0 - no further changes needed + * Updated copryight information + + -- Julien Valroff Fri, 27 Feb 2009 19:57:35 +0100 + +omnibook (2:2.20070211+svn20071217-1) unstable; urgency=low + + * New SVN snapshot (r271) + * Added amd64 as a compatible architecture for the module + * New Standards version 3.7.3 - no further changes needed + + -- Julien Valroff Mon, 17 Dec 2007 18:00:29 +0100 + +omnibook (2:2.20070211+svn20071006-1) unstable; urgency=low + + * New SVN snapshot (r264): + + Update for acpi and backlight API changes in linux 2.6.23 + * First upload to Debian (Closes: #445602): + + Improved debian/copyright + + Bumped debhelper compat to version 5 + + Added myself as maintainer + + Updated README.Debian + * debian/control: + + Moved Homepage to own field (from pseudo-field in long description) + + Added Vcs-* fields + + -- Julien Valroff Thu, 29 Nov 2007 18:30:27 +0100 + +omnibook (2:2.20070211+svn20070905-1) unstable; urgency=low + + * Added dependency on dpatch + * [debian/rules]: + - Fixed lintian warning in the clean target + + -- Julien Valroff Wed, 05 Sep 2007 20:25:13 +0200 + +omnibook (2:2.20070211+svn20070526-1) unstable; urgency=low + + * New SVN snapshot (r259): + + Fixed compilation issue with kernel 2.6.21 + + DMI signature added: + Toshiba Satellite P25 (ectype 11) + Toshiba Satellite M60 (ectype 12) + * Added patch to disable debug for SVN snasphot + + -- Julien Valroff Sat, 26 May 2007 15:19:57 +0200 + +omnibook (2:2.20070211-1) unstable; urgency=low + + * New upstream release: + + For ectype 12 (Satellite M40X, M70, M100, ...): + - improved bluetooth control + - cooling method control + - CPU throttling ( ACPI T-States) + + Full hotkeys support for Tecra S1 + + Bluetooth control for Ectype 14 (Satellite A100, A105, M115, ...) + * Updated homepage in long description + + -- Julien Valroff Mon, 12 Feb 2007 18:50:05 +0100 + +omnibook (2:2.20060921+svn20061202-1) unstable; urgency=low + + * New SVN snapshot (r228) + + -- Julien Valroff Sat, 2 Dec 2006 10:17:07 +0100 + +omnibook (2:2.20060921+svn20061112-1) unstable; urgency=low + + * SVN snapshot: + + Disabled Acer support + + Fixed and improved bluetooth handling for TSM30X class laptop + + DMI signature added: + HP Pavilion ze4500 (ectype 7) + Toshiba Satellite 1130 (ectype 1) + Toshiba Satellite A75 (ectype 12) + Toshiba Tecra A4 (ectype 13) + + Implemented Volume down,up and Mute buttons polling for ectype 2 + + Implemented ectype 13 Fn hotkeys handling. + * changed compression of the sources in /usr/src/ to bzip2 + + -- Julien Valroff Sat, 11 Nov 2006 14:08:47 +0100 + +omnibook (2:2.20060921-1) unstable; urgency=low + + * New upstream release: + + Expand display and hotkeys features + + Added support for more laptops + + Code cleanups + + Minor bug fixes + + -- Julien Valroff Mon, 25 Sep 2006 08:14:59 +0200 + +omnibook (2:2.20060817-1) unstable; urgency=low + + * New upstream release + * [01_makfefile.dpatch] Removed - fixed upstream + * Changed defaut STEM value to linux (follows kernel-package) + * Uses dh_installmodules for maintainance scripts + + -- Julien Valroff Mon, 11 Sep 2006 18:00:50 +0200 + +omnibook (2:2.20060809-2) unstable; urgency=low + + * Include copyright and Debian changelog in omnibook-module + * Fix Makefile issue in a more elegant way + + -- Julien Valroff Thu, 10 Aug 2006 10:16:47 +0200 + +omnibook (2:2.20060809-1) unstable; urgency=low + + * New upstream release: + + Addeed autodetection of the Toshiba Satellite M40X laptop + + -- Julien Valroff Thu, 10 Aug 2006 09:40:45 +0200 + +omnibook (2:2.20060806-1) unstable; urgency=low + + * New upstream branch - Mathieu Bérard launched new project + * Added myself as co-maintainer + * Bumped upstream version and use epoch to ensure upgrades + * [debian/rules]: + + Clean-ups + + Recommends linux-image or kernel-image + * [debian/control] Improved long description + * [debian/post*.modules.in] Fixed bashisms + * Added patch to fix install target in Makefile + + -- Julien Valroff Thu, 10 Aug 2006 01:35:38 +0200 + +omnibook (20060126-1) unstable; urgency=low + + * Minor build inconveniences corrected. + + -- Daniel Gimpelevich Sun, 18 Jun 2006 12:28:55 -0700 + +omnibook (20060126-0) unstable; urgency=low + + * Locally built. + + -- Péter Soós Wed, 25 Jan 2006 21:06:28 +0100 + --- linux-3.2.0.orig/ubuntu/omnibook/debian/README.Debian +++ linux-3.2.0/ubuntu/omnibook/debian/README.Debian @@ -0,0 +1,30 @@ +omnibook for Debian +------------------- + +Please see docs/README for a description of the omnibook kernel module. + +The Debian omnibook source package provides omnibook-source, package +which provides the source for the kernel module. + +The omnibook-source package can be used in several ways, + + - Using the make-kpkg(1) command provided by the kernel-package Debian + package. This will produce a corresponding omnibook-modules package for + the Debian kernel-image package that you are using. + See the "modules_image" section of the make-kpkg(1) man page. + + - Using module-assistant. Simply issue the following command (as root): + $ module-assistant auto-install omnibook + Please see the module-assistant documentation for futher details. + + - Changing to the /usr/src/modules/omnibook/ directory and building as + the README file instructs using "make; make install". This will build + and install a module specific to the system you are building on and is + not under control of the packaging system. + +If your are not using module-assisatant, you have to unpack +/usr/src/omnibook-source.tar.bz2 to /usr/src. + + -- Peter Soos , Wed, 25 Jan 2006 21:06:28 +0100 + -- Julien Valroff Sun, 07 Oct 2007 10:38:07 +0200 + --- linux-3.2.0.orig/ubuntu/omnibook/doc/CREDITS +++ linux-3.2.0/ubuntu/omnibook/doc/CREDITS @@ -0,0 +1,39 @@ +The module was originally written by + +* Soós Péter + +Special thanks to the following persons and/or organisations (without +particular order): + +* Al Stone and Linux Systems Operation at HP for lending + an HP OmniBook 500 for the project purposes. +* Pavel Mihaylov for his omke project discovering a lot of + OmniBook features, providing some code for XE3 GC machines and testing. +* Ducrot Bruno sharing lots of information about + embedded controller and related code, added lots of Toshiba support, + writing tosh3k code, sending patches etc. + +Thanks to the following people (without particular order): + +* Al Stone for sharing some programming information. +* Guido Guenther for initial OneTouch enabling code. +* Jens Thoms Toerring for initial + OneTouch power management code. +* Maciek Gorniak for initial HP Pavilion N5415 detecting + code and initial lcd brighness code. +* Rick Richardson for some bugfixes and useful patches. +* Bob McElrath for initial Compal ACL00 + code. +* Luisimi Moya for Acer Aspire 1400 support. +* Bernhard Kaindl for bugfixes and patches +* Gabriele Vivinetto for documentation + enhancements and testing. +* Mark Chappell for building on kernel 2.6. +* Massimo Dal Zotto for his i8k code. +* Jonathan A. Buzzard for his toshiba code. +* Some others on OmniBook mailing list at + http://zurich.ai.mit.edu/mailman/listinfo/omnibook + for providing information and testing. + +Last but not least thanks to Linus Torvald and more for creating and +maintaining the Linux kernel. --- linux-3.2.0.orig/ubuntu/omnibook/doc/BUGS +++ linux-3.2.0/ubuntu/omnibook/doc/BUGS @@ -0,0 +1,17 @@ +Bugs and problems in omnibook module code +========================================= + +* Volume Control buttons on machine (not on docking station) do not generate + scancodes on OB500 style models. It is unhandled yet. +* Setting the LCD brightness on HP OmniBook XE3 GF via /proc/omnibook/lcd + is working if you press one of the brightness control keys once after + writing the value into /proc/omnibook/lcd. +* I'm not a native English speaker so text corrections are welcome. +* obtest can BADLY confuse the in-kernel ACPI code due to its racy + implementation. +* Reenabling wifi adapter after previous disabling is broken on + Toshiba Satellite M100 (ipw3945) +* Real support of ectype 14 is still missing +* See http://sourceforge.net/tracker/?atid=868542&group_id=174260&func=browse + for sf.net bug tracking system. + --- linux-3.2.0.orig/ubuntu/omnibook/doc/ChangeLog +++ linux-3.2.0/ubuntu/omnibook/doc/ChangeLog @@ -0,0 +1,521 @@ +Changelog file for omnibook package: +------------------------------------ + +2.XXXXXXXX Mathieu Bérard +* DMI signature added: + Toshiba Satellite P25 (ectype 11) + Toshiba Satellite M60 (ectype 12) +* Applied patch from Danny Kukawka to + fix compiler warning about use uninitialized variable +* Applied patch from Danny Kukawka to + fix build the driver on older kernel versions +* Applied patches from Azael Avalos + to add support to Satellite X205 and other laptops based on + ICH8 +* Fix build with kernel >= 2.6.30 + +2.20070211 Mathieu Bérard +* Disable Acer support, acerhk module should provided better + support with a far more complete autodetection database + (see http://www2.informatik.hu-berlin.de/~tauber/acerhk/) +* Fix and improve bluetooth handling for TSM30X class laptops + bluetooth now also works for TSA105 +* Implement Volume down,up and Mute buttons polling for ectype 2 + It was the last missing part from the "omke" module which never + got ported to linux 2.6 +* Implement ectype 13 Fn hotkeys handling. +* DMI signature added: + HP Pavilion ze4500 (ectype 7) + Toshiba Satellite 1130 (ectype 1) + Toshiba Satellite A75 (ectype 12) + Toshiba Tecra A4 (ectype 13) + Toshiba Satellite A80 (ectype 12) + Toshiba Satellite P100 (ectype 14) +* Split TSM30X (ectype 12) : this ectype was reimplemented and if the + new implementation works with Toshiba M40X, M70, M100... it does not + (and will never, due to hardware) with Toshiba M30X, the only way + to fix this is to split TSM30X (ectype 12) in : + -TSM70 (ectype 12) => new implementation (compal.c & acpi.c backends) + -TSM30X (ectype 15) => old implementation (legacy backends) + This is done by renaming TSM30X to TSM40 and restore old TSM30X + The state of the Toshiba M35X is unknown and is assigned to TSM70, one + should send a bug report if that fail. + Fix bugs 1617818 and 1605278 +* New features for TSM70 class laptops: + -Cooling method control (can tune fan behaviour to 'Save power' or + to 'Maximize performance') provided in /proc/omnibook/cooling + -CPU Throttling status&control (also known as ACPI T-States) should + be supported out of the box via /proc/acpi/processor/CPU0/throttling + but at least Toshiba Satellite M70 as a deficient ACPI FADT table + which prevent than, thus a custom access to ACPI Throttling is + provided in /proc/omnibook/throttling + +2.20060921 Mathieu Bérard +* The minimal required kernel version is now 2.6.9 (kref API) +* Convert semaphore to mutex with fallback for pre 2.6.16 kernel +* Kill CONFIG_OMNIBOOK_APMEMU and introduce OMNIBOOK_LEGACY: + pre-ACPI features now depends on it. + Default enabling of ac and battery features also + depends on it. It is _disabled_ by default. +* Introduce ACPI methods execution backend: TSM70 needs it + for Display and Wifi/Bluetooth features +* Expand display and hotkeys features +* Introduce experimental NbSmi backend for TSM40. It is + based on technical documentation provided by Toshiba. + Thanks Toshiba ! +* Kill unused omnibook_mem_read/write function for mmio + access +* Cleanup in blank.c fan.c temperature.c +* Unbreak Pio backend: use request/release_region +* Introduce bluetooth and wifi frontend features : they allow + adapter state querry and control (existence probing, wifi + kill switch probing and adapter enabling/disabling). + Supported by TSM30X and TSM40 +* Introduce omnibook_backend struct as a uniform way of + communication between backend and frontend, this + kill omnibook_io_{read/write} and friends. +* Modify ombibook_feature struct to incorporate pointers + to an omnibook_table table and to a omnibook_operation + struct which is picked-up from the ectype matching + omnibook_table entry upon feature initialization +* Add muteled resume handler +* Add touchpad handling for TSM30X +* Add proper display handling for TSM30X +* Change all features struct name from foo_feature to + foo_driver to kept modpost section mismatch detection + silent. Put tbl, init and exit entries to their relevant + sections. +* Many bugfix and dock support for TSM40 by Holger Nelson. +* Add DMI Signature for Toshiba Satellite 1700-Series, with ectype 10. + LCD does not work. +* Add DMI Signature for Toshiba Equium A110, added with + ectype 1, until implementation of a better backend +* Add DMI Signature for Toshiba _Satellite_ M100, Satellite A70 + and Tecra S2. added with ectype 12 +* Add DMI Signature for Toshiba Tecra S1, added with + ectype 13 + +2.200608017 Mathieu Bérard +* Fix bug un omnibook_io_match +* Fix DMI handling behaviour: we stop on the FIRST matched + DMI entry. This is restoring pre-20060806 behaviour. + Invert M40 vs. M40X entry position. + +2.20060816 Mathieu Bérard +* Merge from the new-backend branch: Add new backend code + (in compal.c) used with TSM30X class laptops: + Used for lcd access + Used for hotkeys support: now most Fn+key generate a scancode, + as well as the wifi kill switch. + Warning: tested only on TSM40X an TSM70 laptops. +* Create omnibook_io_operation struct and omnibook_io_{read/write} + funtions to simplify implementation of some simple features. + Used with ac display dock and led features. +* Rename onetouch feature to "hotkeys" which is a vendor neutral name. +* The minimal required kernel version is now 2.6.9 (kref API) +* Convert semaphore to mutex with fallback for pre 2.6.16 kernel +* Kill CONFIG_OMNIBOOK_APMEMU and introduce OMNIBOOK_LEGACY: + pre-ACPI features now depends on it. + Default enabling of ac and battery features also + depends on it. It is _disabled_ by default. +* Introduce ACPI methods execution backend: TSM70 needs it + for Display and Wifi/Bluetooth features +* Expand display and hotkeys features +* Introduce experimental NbSmi backend for TSM40. It is + based on technical documentation provided by Toshiba. + Thanks Toshiba ! +* Kill unused omnibook_mem_read/write function for mmio + access +* Cleanup in blank.c fan.c temperature.c +* Unbreak Pio backend: use request/release_region +* Introduce bluetooth and wifi frontend features : they allow + adapter state querry and control (existence probing, wifi + kill switch probing and adapter enabling/disabling). + Supported by TSM30X and TSM40 +* Introduce omnibook_backend struct as a uniform way of + communication between backend and frontend, this + kill omnibook_io_{read/write} and friends. +* Modify ombibook_feature struct to incorporate pointers + to an omnibook_table table and to a omnibook_operation + struct which is picked-up from the ectype matching + omnibook_table entry upon feature initialization +* Add muteled resume handler +* Add touchpad handling for TSM30X +* Add proper display handling for TSM30X +* Change all features struct name from foo_feature to + foo_driver to kept modpost section mismatch detection + silent. Put tbl, init and exit entries to their relevant + sections. + +2.20060809 Mathieu Bérard +* Add dmi info for Toshiba Satellite M40X (Thanks Julien Valroff) +* Fix two brown paper bag bugs in Debian/Ubuntu support + +2.20060806 Mathieu Bérard +* Make the module linux 2.6 only + Kernel versions from 2.6.8 to a least 2.6.17 are supported + Code for compatibility with kernels older than 2.6.17 is + mostly implemented in compat.h +* Integrate with Driver Model: + register as a platform device and optional + registration as a backlight device (2.6.17+ required here) +* Get rid of deprecated pm_legacy functions +* Use kernel-provided DMI information: + Use kernel-provided dmi_check_system for system identification + omnibook_tc_t and omnibook_models_t are merged and converted into a + dmi_system_id struct and moved from init.c to laptop.h +* MODULE_PARAM -> 2.6-style module_parm_* +* Move some code from "feature".c files back to init.c + Interface is provided by the new omnibook_feature struct + Enabled features are now in placed in a linked list + This eliminate util.c + Rationale: Reduce code duplication and create a standard template for features +* Move dmi and version display into their own file: info.c +* Remove all (as unneeded) EXPORT_SYMBOL +* Misc fixes in Makefile + Also make more use of Kbuild +* Use sscanf and simple_stro{u}l for strings parsing instead of custom code +* Run lindent for better conformance with kernel coding style +* Add very limited support for some Toshiba M40 (more info needed) +* Use bitmasks for EC types matching, this change is transparent for the user + (e.g. one can still use ectype=num module parameter) + Rationale: Reduce the size of the omnibook_feature struct +* Polish Debian support: Use module-assistant and fix all Lintian warning + Fix building against non-running kernel (Thanks to Daniel Gimpelevich) +* Update documentation and omnibook-integration.patch +* Fix spinlock usage: they can be used unconditionally as they are automatically + optimized out at build-time on UP. This should improve PREEMPT safety +* Spinlock protect omnibook_mem_* and use ioread8 and iowrite8 +* Fix: Custom EC access function are also used if ACPI is compiled but disabled +* Cleanup: remove lots of unneeded #ifdef +* Add a new feature for testers: dump + Dump was stolen from the ibm_acpi driver + It is disabled by default +* Bump version to 2.YYYYMMDD + +2006-05-15 Thomas Perl +* Added support for xe4500's "audio mute" led + +2006-01-26 Soós Péter +* Added support for kernels >= 2.6.15 (pm_legacy.h) +* Added Toshiba Satellite M30X +* Added support for Toshiba Satellite M70 +* Added support for HP Pavilion ze4300 series +* Fixed module unloading on 2.6 series kernels (thanks to + math_b@users.sourceforge.net) +* Changed version number to +%Y%m%d format +* Added Debian support + +2005-02-17 Soós Péter +* Fixed Makefile +* Updated Toshiba 1115 information + +2004-12-15 Scott Barnes +* Added Toshiba Satellite M35X + +2004-09-16 Soós Péter +* Added INSTALL-2.6 file +* Little spelling fixes in documentation +* Little bugfixes +* Added Compal ACL10 + +2004-07-01 Soós Péter +* Added new technology codes +* Added some new HP nx9000 detection string +* Added Toshiba Satellite P20 + +2004-06-07 Chris Green +* Added Toshiba Satellite P15 + +2004-06-01 Soós Péter +* Added Toshiba Satellite 1955 +* Added Toshiba Satellite 2435 +* Added Toshiba Satellite P10 (new ectype) +* Acer Aspire 1350 + +2004-01-23 Soós Péter +* Added HP Pavilion ze8500 (HP nx9010) +* fixed PM handler for OneTouch keys and touchpad + +2004-01-20 Soós Péter +* Only fan status supported on HP OmniBook 4150, XE2 and + Fujitsu-Siemens Amilo D, fan control is unsupported +* #include fixes in ec.c + +2004-01-16 Soós Péter +* Added fan support for Fujitsu-Siemens Amilo D series laptops + +2004-01-14 Soós Péter +* Fixed Makefile for kernels 2.6 +* Added Fujitsu-Siemens Amilo D series laptops (new ectype) + +2003-12-08 Soós Péter + +* Fixed tecnology code detection +* Added HP/Compaq nx9005 +* Fixed Makefile for kernel 2.4 + +2003-11-12 Soós Péter + +* Fixed KERNEL_WARNING in init.c + +2003-11-10 Soós Péter + +* Fixed timeout bugs in ec.c +* Fixed touchpad dependency code for kernel 2.6 +* Added Compaq nx9000 + +2003-11-10 Mark Chappell + +* Added kernel 2.6 support to Makefile + +2003-10-23 Soós Péter + +* Totally removed key polling code for kernels >= 2.5.0 but 2.5/2.6 kernels + is unsuported yet +* proc_battery is static +* Added HP OmniBook 900 B support +* Added HP OmniBook XE2 support (added new ectype value for it) +* Added Compaq nx9010 +* Reversed ChangeLog +* Some documentation changes + +2003-08-28 Soós Péter + +* Added Toshiba Satellite 2430 +* Documentation enhancements + +2003-04-03 Soós Péter + +* Really fixed __init bug in user parameter code +* Fixed omnibook_dmi_ident (it was static) + +2003-03-31 Soós Péter + +* Fixed HP technology code detection +* Key polling is disabled by default on XE3GC style machines +* Fixed PM code in polling.c +* Added util.c +* Fixed __init bug in user parameter code +* Cleaned up ec.h +* Added Toshiba Satellite 1950 detection +* Documentation enhancements + +2003-03-13 Soós Péter + +* Added HP Pavilion ZU1155 and ZU1175 detection + +2003-03-11 Soós Péter + +* Fixed bogus version information + +2003-03-06 Ducrot Bruno + +* Fan off hack for XE3GF style machines + +2003-03-04 Ducrot Bruno + +* Fixed spinlock problem + +2003-02-28 Soós Péter + +* Added /proc/omnibook/version +* Added OMNIBOOK_ prefix to MODULE_NAME and MODULE_VERSION definitions +* Fixed bugs in lcd.c (thanks to Bernhard Kaindl ) +* Some code tuning and cosmetic changes +* Fixed OmniBook 4150 support + +2003-02-26 Soós Péter + +* Fixed kernel Oops in technology code identification +* Some minor changes in logging + +2003-02-25 Soós Péter + +* Try to identify HP laptops by technology code if machine is unsupported +* Fixed dmi identification code + +2003-02-14 Soós Péter + +* Added HP Pavilion ze4100 support +* Added HP Pavilion ze4200 support +* Fixed HP Pavilion xt155 detection +* Added Acer Aspire 1400 series laptop support +* Fixed APM status detection bug +* Cleaned up dmi identification code +* Removed "Asset Tag:" field from dmi string structure + +2003-01-27 Soós Péter + +* Added HP Pavilion N5430 support +* EC functions are work even if boot parameter acpi=off is given +* Improved error handling in externally callable functions +* Fixed kernel integration patch +* Removed unreliable undocking feature for OB500 +* Fixed HP Pavilion N5415 support +* Added new format hotkeys sample files + +2003-01-09 Ducrot Bruno + +* Added to use ACPI_EC if available + +2003-01-09 Soós Péter + +* Fixed reverse console blanking bug on OB5xx and OB6xxx +* Disabled unreliable undocking feature on OB500 + +2003-01-08 Ducrot Bruno + +* Added Toshiba Satellite 3000, 3005, 1000, 1005, 1110, 1115, 1900, 1905 + support + +2003-01-08 Soós Péter + +* The ectype values changed again! See the README! +* Fixed new ectypes detection bug +* Added OmniBook xe4400 support +* Added LCD display turn off at console blanking on OB5xx and OB6xxx +* Documentation fixes + +2003-01-07 Soós Péter + +* Fixed bit level negation bug in fan.c +* Added turn fan on for Toshiba 3000 +* Corrected OmniBook 4150 support code + +2003-01-06 Soós Péter + +* Changed ectype values! See the README! +* Fixed some bugs in obtest utility +* Fixed second battery status bug in battery.c +* Added textual descriptions to some functions in /proc/omnibook +* Fix APM emulation to work when APM support is present but APM power + status reporting flagged broken +* Added docking station support +* Added fan support +* Added module parameter: user +* Added OmniBook xe155, xe4100 and ze4125 support +* Fan policy moved to /proc/omnibook/fan_policy +* Reorganized scancode emulation code for XE3 GC +* Polling of volume buttons on XE3CG style models can be enabled/disabled + via /proc/omnibook/key_polling +* Finished abstraction layer +* Some minor changes in Rick's model detection code +* New kernel integration code + +2002-12-22 Rick Richardson + +* Added on and off as valid input to /proc/omnibook/lcd, to turn + the LCD backlight on and off. + +2002-12-15 Rick Richardson + +* Reimplemented model detection so you only have to modify one file + to add a new model. features.h is now deprecated. +* Added the Toshiba Satellite 1115/S103 to the supported models +* Fixed bug in apmemu.c which caused /proc/apm to report the battery + status as critical when the battery was charging. + +2002-10-16 Soós Péter + +* Added HP Pavilion N5415 support +* Corrected HP Pavilion N5441 support +* Fix values of OB500 type machines in ec.h +* LCD brightness support added for XE3GC and XE3GF style machines +* Added HP OmniBook 510 FB support +* AC adapter status monitoring is working on all machines +* External display status monitoring is working on all machines +* CPU temperature monitoring is working on all machines +* __init functions gone to init.h +* Added an abstraction layer between the low level, hardware dependent + functions and the applications (not yet finished). See omnibook.h for + details. + +2002-09-20 Soós Péter + +* Using save_flags()/cli() instead spinlocks in ec.c because of laptops do + not have more than one CPU (yet ;)). This improves performance and + eliminates packet loss in ppp stack +* The previous version of XE3 GC scancode emulation was buggy: it worked only + when ACPI enabled. Current version is working ACPI independent way + +2002-09-05 Soós Péter + +* Added secondary battery support (untested, please report!) +* Added ectype module parameter to specify the type of embedded + controller firmware +* Added some OmniBook XE3 GC support code +* Added some OmniBook 500 style embedded controller firmware support code + (OmniBook 5xx, 6xxx and some Pavilions) +* Reorganized features matrix (again): the features depends on the embedded + controller firmware, not the model +* Added external display status monitoring on some machine +* Added scancode emulation on OmniBook XE3 GC + +2002-08-14 Soós Péter + +* Added HP OmniBook 6000 EA support (OneTouch only) +* Added HP OmniBook 6100 EB support (OneTouch only) +* Fixed Toshiba Satellite 3000-100 detection +* Fixed timeout and locking bugs in ec.c +* Added HP Pavilion Notebook ZT1141 +* Reorganized the feature matrix and parameter detection code to make easy + to add new features differents machine by machine + +2002-08-11 Soós Péter + +* Fixed removing of procfs entries +* Fixed APM detection +* Added kernel source integration +* Fixed __initdata bugs +* Handling difference between untesed and unsupported features + +2002-08-09 Soós Péter + +* Added Compal ACL00 laptop support +* Updated documentation +* Added touchpad support +* Some bugfixes +* /proc/apm emulation added + +2002-08-06 Soós Péter + +* Corrected full charged battery info +* Added OneTouch handling via procfs +* Added console blank handling via procfs +* Added temperature policy handling via procfs +* Corrected the bug in DMI code to report the serial number +* Added module parameter support +* Added HP Pavilion Notebook N5490, ZT1195 (and probably other Pavilions) + +2002-07-17 Soós Péter + +* Improved error handling +* Some text corrections +* Added Toshiba Satellite 3000-100 support +* Some code tuning +* Added omnibook prefix for variables and functions to prevent conflicts + with another code +* Added /proc filesystem support +* Added battery status monitoring +* Added CPU temperature monitoring + +2002-06-03 Soós Péter + +* Some code tuning + +2002-05-07 Soós Péter + +* Added missing #include to main.c +* Some text corrections +* Added HP OmniBook 500 FA support (OneTouch only) + +2002-05-06 Soós Péter + +* LCD display turn off at console blanking added +* Code cleanup + +2002-05-02 Soós Péter + +* The first release of omnibook module +* OneTouch button support --- linux-3.2.0.orig/ubuntu/omnibook/doc/README +++ linux-3.2.0/ubuntu/omnibook/doc/README @@ -0,0 +1,42 @@ +=============================================================== +Kernel Support for HP OmniBooks, Pavilions and Compal laptops +=============================================================== + +This package is intended to provide Linux kernel support for many laptops such as: +- HP OmniBook and Pavilion +- Toshiba Satellite and Tecra which are not supported by the toshiba_acpi module +- Compal ACL00 +- Many laptops manufactured by Compal Electronics, Inc as ODM + +Supported features depends on the exact laptop model but may include: +- Enabling hotkey buttons +- Console (LCD display) blanking +- Battery status monitoring. +- Fan and fan policy support +- Touchpad control +- AC Adapter status monitoring +- External display monitors status monitoring and control +- LCD brightness (backlight) monitoring and control +- Docking station/port replicator status +- CPU temperature monitoring +- Mute LED monitoring and control +- Wifi and Bluetooth adapters monitoring and control +- Cooling method control +- CPU Throttling control + +Useful links: + +Full documentation (HOWTO, Installation instructions, Supported laptops list... ): +http://omnibook.sourceforge.net/doku.php?id=start + +Sourceforge project page: +http://sourceforge.net/projects/omnibook + +Other links not related to the project: + +For HP Omnibook specific issues ou can see the OmniBook mailing list: +http://zurich.ai.mit.edu/mailman/listinfo/omnibook + +or the Toshiba linux mailing list: +http://linux.toshiba-dme.co.jp/linux/ + --- linux-3.2.0.orig/ubuntu/omnibook/doc/COPYING +++ linux-3.2.0/ubuntu/omnibook/doc/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. --- linux-3.2.0.orig/ubuntu/omnibook/misc/README.mmkeys +++ linux-3.2.0/ubuntu/omnibook/misc/README.mmkeys @@ -0,0 +1,9 @@ +This patch maps some extra Fn+key combinations to keycodes for multimedia +keyboards and only works for the nbsmi-backend. It might be useful if you +want to control some mediaplayer while working with other applications. + +Following combinations are mapped: +Fn+Y => Previous song +Fn+X => Play/pause +Fn+V => Stop CD +Fn+B => Next song --- linux-3.2.0.orig/ubuntu/omnibook/misc/dmi_strings.txt +++ linux-3.2.0/ubuntu/omnibook/misc/dmi_strings.txt @@ -0,0 +1,857 @@ +HP OmniBook XT1000 ------------------------- + +BIOS Vendor: Insyde Software +BIOS Version: IB.M1.05 +BIOS Release: 02/28/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XT1000 +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: HP OmniBook XT1000 + +--------------------------------------------- +HP OmniBook XT1500 -------------------------- + +BIOS Vendor: Insyde Software +BIOS Version: IC.M1.05 +BIOS Release: 08/13/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: HP OmniBook + +--------------------------------------------- +HP OmniBook XT1500 ------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: ID.M1.04 +BIOS Release: 08/14/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XE3 GF +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook Zinfandel 4.5 + +--------------------------------------------- +HP OmniBook XE3 GC -------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GC.M1.63 +BIOS Release: 01/01/1992 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XE3 GC +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-733 + +--------------------------------------------- +HP OmniBook XE3 GF -------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GF.M1.07 +BIOS Release: 03/05/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XE3 GF +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-101 + +--------------------------------------------- +HP OmniBook 500 FA -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd +BIOS Version: FA.M2.62 +BIOS Release: 11/30/1999 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 500 FA +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 500 FA + +--------------------------------------------- +HP OmniBook 510 FB -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: FB.M1.20 +BIOS Release: 04/12/02 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 510 FB +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 510FB + +--------------------------------------------- +Toshiba Satellite 3000-100 ------------------ + +BIOS Vendor: TOSHIBA +BIOS Version: V2.20 +BIOS Release: 10/12/01 +System Vendor: TOSHIBA +Product Name: S3000-100 +Version: PS300E-03EKL-FR +Board Vendor: Null +Board Name: 888M1 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite 1115-s103------------------ + +BIOS Vendor: TOSHIBA +BIOS Version: V1.20 +BIOS Release: 09/11/2002 +System Vendor: TOSHIBA +Product Name: Satellite 1115 +Version: PS111U-001FUV +Board Vendor: TOSHIBA +Board Name: BTK20 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite 1110 ---------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.20 +BIOS Release: 09/11/2002 +System Vendor: TOSHIBA +Product Name: S1110 +Version: PS111E-003DN-GR +Board Vendor: TOSHIBA +Board Name: BTK20 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite 1130 ---------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.70A +BIOS Release: 09/02/2003 +System Vendor: TOSHIBA +Product Name: Satellite 1130 +Version: PS113E-05ZYF-GR +Board Vendor: TOSHIBA +Board Name: BTW30 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite 1900-704 ------------------ + +BIOS Vendor: TOSHIBA +BIOS Version: V1.50 +BIOS Release: 11/25/2002 +System Vendor: TOSHIBA +Product Name: Satellite 1950 +Version: PS195E-008QY-DU +Board Vendor: TOSHIBA +Board Name: ATR60 + +--------------------------------------------- +Toshiba Satellite 1955-s805 ----------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.00 +BIOS Release: 01/17/2003 +System Vendor: TOSHIBA +Product Name: Satellite 1955 +Version: PS197U-000LEV +Board Vendor: TOSHIBA +Board Name: BTR80 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite A70 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.50 +BIOS Release: 11/16/2004 +System Vendor: TOSHIBA +Product Name: Satellite A70 +Version: PSA70C-KL100E +Serial Number: X4451615K +Board Vendor: TOSHIBA +Board Name: EDW10 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite A80 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V2.50 +BIOS Release: 01/11/2006 +System Vendor: TOSHIBA +Product Name: Satellite A80 +Version: PSA80E-03T00JSP +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Satellite A105 ---------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: 1.30 +BIOS Release: 02/09/2006 +System Vendor: TOSHIBA +Product Name: Satellite A105 +Version: PSAA8U-02000U +Board Vendor: Intel Corporation +Board Name: Not Applicable + +--------------------------------------------- +Toshiba Satellite P10 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.20 +BIOS Release: 09/12/2003 +System Vendor: TOSHIBA +Product Name: Satellite P10 +Version: PSP10E-34FJR +Board Vendor: TOSHIBA +Board Name: DAL00 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite P15 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.20 +BIOS Release: 09/12/2003 +System Vendor: TOSHIBA +Product Name: Satellite P15 +Version: PSP10U-0DUJPV +Board Vendor: TOSHIBA +Board Name: DAL00 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite P25 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V2.10 +BIOS Release: 12/27/2004 +System Vendor: TOSHIBA +Product Name: Satellite P25 +Version: PSP20U-19PS8R +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Satellite P100 ---------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V3.30 +BIOS Release: 12/22/2006 +System Vendor: TOSHIBA +Product Name: Satellite P100 +Version: PSPA3E-02E013G3 +Board Vendor: TOSHIBA +Board Name: Not Applicable + +--------------------------------------------- +Toshiba Satellite M40 ----------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: 1.10 +BIOS Release: 08/24/05 +System Vendor: TOSHIBA +Product Name: Satellite M40 +Version: PSM44E-00U00EFR +Board Vendor: ATI +Board Name: SB400 +Board Version: Rev0.4b + +--------------------------------------------- +Toshiba Satellite M45 (S355) ---------------- + +BIOS Vendor: TOSHIBA +BIOS Version: Version 2.00 +BIOS Release: 02/07/2006 +System Vendor: TOSHIBA +Product Name: Satellite M45 +Version: PSM40U-073001 +Board Vendor: TOSHIBA +Board Name: Version A0 + +--------------------------------------------- +Toshiba Satellite M40X (-131)---------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.60 +BIOS Release: 06/09/2005 +System Vendor: TOSHIBA +Product Name: Satellite M40X +Version: PSM4XE-01400GFR +Board Vendor: TOSHIBA +Board Name: EAL30 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite M50------------------------ + +BIOS Vendor: TOSHIBA +BIOS Version: V2.10 +BIOS Release: 05/08/2006 +System Vendor: TOSHIBA +Product Name: Satellite M50 +Version: PSM51E-01C011IT +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Satellite M60 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.60 +BIOS Release: 03/16/2006 +System Vendor: TOSHIBA +Product Name: Satellite M60 +Version: PSM60E-0CD01FIT +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Satellite M70 ----------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.10 +BIOS Release: 09/15/2005 +System Vendor: TOSHIBA +Product Name: Satellite M70 +Version: PSM71E-01100KFR +Board Vendor: TOSHIBA +Board Name: HTW00 +Board Version: Null + +--------------------------------------------- +Toshiba Satellite A75 ----------------------- + +IOS Vendor: TOSHIBA +BIOS Version: V1.50 +BIOS Release: 11/16/2004 +System Vendor: TOSHIBA +Product Name: Satellite A75 +Version: PSA70U-004004B +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Satellite M100 ---------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.90 +BIOS Release: 07/20/2006 +System Vendor: TOSHIBA +Product Name: SATELLITE M100 +Version: PSMA0E-030019TE +Board Vendor: TOSHIBA +Board Name: HAQAA +Board Version: Null + +--------------------------------------------- +Toshiba Satellite M100 ---------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.00 +BIOS Release: 03/30/2006 +System Vendor: TOSHIBA +Product Name: Satellite M100 +Version: PSMA2U-00T00G +Board Vendor: TOSHIBA +Board Name: HAWAA +Board Version: None + +--------------------------------------------- +Toshiba Satellite M115 ---------------------- + +Bios vender: Phoenix Tech. LTD +Bios version: 1.00 +Bios release: 08/31/2006 +System Vendor: Toshiba +Product Name: Satellite M115 +Version: PSMBOU-015007 +Board vendor Intel +Board name: N/a + +--------------------------------------------- +Toshiba Equium A110 ------------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V1.30 +BIOS Release: 07/20/2006 +System Vendor: TOSHIBA +Product Name: EQUIUM A110 +Version: PSAB2E-002006AV +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Tecra A4 ---------------------------- + + +BIOS Vendor: TOSHIBA +BIOS Version: Version 1.70 +BIOS Release: 10/14/2005 +System Vendor: TOSHIBA +Product Name: Tecra A4 +Version: PTA40E-0UN00FSP +Board Vendor: TOSHIBA +Board Name: Version A0 + +--------------------------------------------- +Toshiba Tecra A6 ---------------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V2.70 +BIOS Release: 04/26/2007 +System Vendor: TOSHIBA +Product Name: TECRA A6 +Version: PTA60U-0FK00D +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Toshiba Tecra S2 ---------------------------- + +BIOS Vendor: TOSHIBA +BIOS Version: V2.50 +BIOS Release: 01/11/2006 +System Vendor: TOSHIBA +Product Name: Tecra S2 +Version: PTS20E-1FE04Q8M +Board Vendor: TOSHIBA +Board Name: Null + +--------------------------------------------- +Compal ACL00 -------------------------------- + +BIOS Vendor: COMPAL +BIOS Version: V2.10C +BIOS Release: 03/25/02 +System Vendor: COMPAL +Product Name: * +Version: * +Board Vendor: Null +Board Name: ACL00 +Board Version: Null + +--------------------------------------------- +Compal ACL10 -------------------------------- + +BIOS Vendor: COMPAL +BIOS Version: V1.10 +BIOS Release: 04/12/2001 +System Vendor: * +Product Name: * +Version: * +Board Vendor: COMPAL +Board Name: ACL10 +Board Version: Null + +--------------------------------------------- +HP Pavilion ZT1195 -------------------------- + +BIOS Vendor: Insyde Software +BIOS Version: IC.M1.00 +BIOS Release: 03/20/2002 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion Notebook +Board Vendor: Hewlett-Packard +Board Name: HP Pavilion Notebook PC +Board Version: HP Pavilion Notebook + +--------------------------------------------- +HP Pavilion ZT1141 -------------------------- + +BIOS Vendor: Insyde Software +BIOS Version: IB.M1.05 +BIOS Release: 02/28/2002 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion Notebook ZT1000 +Board Vendor: Hewlett-Packard +Board Name: HP Pavilion Notebook PC +Board Version: HP Pavilion Notebook ZT1000 + +--------------------------------------------- +HP OmniBook 6100 EB ------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: EB.M2.20 +BIOS Release: 02/27/02 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 6100 EB +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 6100EB + +--------------------------------------------- +HP OmniBook 6000 EA ------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: EA.M1.81 +BIOS Release: 02/22/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 6000 EA +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 6000EA + +--------------------------------------------- +HP OmniBook xe4500 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KB.M1.30 +BIOS Release: 08/05/20022 +System Vendor: Hewlett-Packard. +Product Name: HP OmniBook PC +Version: HP OmniBook xe4500 +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: xe4500 + +--------------------------------------------- +HP Pavilion N5441 --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GD.M1.08 +BIOS Release: 09/27/2001 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion Notebook Model GD +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-736 + +--------------------------------------------- +HP Pavilion N5430 --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GD.M1.08 +BIOS Release: 09/27/2001 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XE3 GD +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-736 + +--------------------------------------------- +HP Pavilion N5415 --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GE.M1.04 +BIOS Release: 07/30/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook XE3 GE +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-736 + +--------------------------------------------- +HP Pavilion N5290 --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GC.M1.63 +BIOS Release: 01/01/1992 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion Notebook XE3 GC +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-733 + +--------------------------------------------- +HP OmniBook vt6200 ------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: EG.M2.10 +BIOS Release: 09/19/02 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 6200 EG +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 6200EG + +--------------------------------------------- +HP OmniBook 4150 ---------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: CI.M2.250 +BIOS Release: 06/10/99 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 4150 +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook TS32T2 + +--------------------------------------------- +HP OmniBook xt6200 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd +BIOS Version: EG.M2.10 +BIOS Release: 09/19/02 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 6200 EG +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 6200EG + +--------------------------------------------- +HP Pavilion ze4125 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd +BIOS Version: KA.M1.20 +BIOS Release: 09/13/2002 +System Vendor: Hewlett-Packard +Product Name: HP NoteBook PC +Version: HP NoteBook ze4000 +Board Vendor: Hewlett-Packard +Board Name: HP NoteBook PC +Board Version: HP NoteBook ze4000 + +--------------------------------------------- +HP OmniBook xt155 --------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KE.M1.40 +BIOS Release: 10/11/20022 +System Vendor: Hewlett-Packard +Product Name: HP NoteBook PC +Version: HP Notebook PC +Board Vendor: Hewlett-Packard +Board Name: HP NoteBook PC +Board Version: HP Notebook PC + +--------------------------------------------- +HP OmniBook xe4100 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KC.M1.10 +BIOS Release: 07/11/2002 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook xe4000 +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: 4000KC + +--------------------------------------------- +HP Omnibook xe4400 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KD.M1.60 +BIOS Release: 09/19/20022 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP Omnibook xe4400 +Board Vendor: Hewlett-Packard +Board Name: HP OmniBook PC +Board Version: xe4400 + +--------------------------------------------- +HP Pavilion ze4100 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KE.M1.40 +BIOS Release: 10/11/20022 +System Vendor: Hewlett-Packard +Product Name: HP NoteBook PC +Version: HP Notebook PC +Board Vendor: Hewlett-Packard +Board Name: HP NoteBook PC +Board Version: HP Notebook PC + +--------------------------------------------- +Acer Aspire 1350 ---------------------------- +BIOS Vendor: Acer +BIOS Version: 3A24 +BIOS Release: 12/01/2003 +System Vendor: Acer,Inc. +Product Name: Aspire 1350 +Version: 3A24 +Board Vendor: Acer,Inc. +Board Name: Aspire 1350 +Board Version: Rev.A + +--------------------------------------------- +Acer Aspire 1406 LC ------------------------- + +BIOS Vendor: Acer +BIOS Version: V2.30 +BIOS Release: 10/04/02 +System Vendor: Acer +Product Name: Aspire 1400 series +Version: * +Board Vendor: Null +Board Name: BR20 +Board Version: Null + +--------------------------------------------- +HP Pavilion ze4200 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KE.M1.53 +BIOS Release: 12/10/20022 +System Vendor: Hewlett-Packard +Product Name: Pavilion ze4200 +Version: KE.M1.53 +Board Vendor: Hewlett-Packard +Board Name: 002A +Board Version: NS570 Version PQ1A74 + +--------------------------------------------- +HP Pavilion ze4500 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KAM1.57 +BIOS Release: 02/19/2004 +System Vendor: Hewlett-Packard +Product Name: Pavilion ze4500 (DP793E) +Version: KAM1.57 +Board Vendor: Hewlett-Packard +Board Name: PQ1A83 + +--------------------------------------------- +HP Pavilion ZU1175 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: FA.M2.60 +BIOS Release: 11/30/1999 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion ZU1000 FA +Board Vendor: Hewlett-Packard +Board Name: HP Pavilion Notebook PC +Board Version: 1000FA + +--------------------------------------------- +HP Pavilion XH545 --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: GE.M1.03 +BIOS Release: 11/08/2001 +System Vendor: Hewlett-Packard +Product Name: HP Pavilion Notebook PC +Version: HP Pavilion Notebook Model GE +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook N32N-736 + +--------------------------------------------- +Toshiba Satellite 2430-402 ------------------ + +BIOS Vendor: TOSHIBA +BIOS Version: V1.30 +BIOS Release: 01/16/2003 +System Vendor: TOSHIBA +Product Name: Satellite 2430 +Version: PS243E-06P4S-4V +Board Vendor: TOSHIBA +Board Name: BTS88 +Board Version: Null + +--------------------------------------------- +HP OmniBook 900 B --------------------------- + +BIOS Vendor: Phoenix Technologies LTD +BIOS Version: CL.M3.13 +BIOS Release: 11/11/99 +System Vendor: Hewlett-Packard +Product Name: HP OmniBook PC +Version: HP OmniBook 900 B +Board Vendor: Hewlett-Packard +Board Name: N/A +Board Version: OmniBook TS32U2 + +--------------------------------------------- +HP Compaq nx9000 ---------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KE_KG.M1.06 +BIOS Release: 05/16/2003 +System Vendor: Hewlett-Packard +Product Name: HP nx9000 (DG223T) +Version: KG.M1.06 +Board Vendor: Hewlett-Packard +Board Name: 002A +Board Version: NS570 Version PQ1A78 + +--------------------------------------------- +HP Compaq nx9000 ---------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KE_KG.M1.15 +BIOS Release: 12/19/2003 +System Vendor: Hewlett-Packard +Product Name: HP Notebook PC +Version: HP Notebook PC +Board Vendor: +Board Name: +Board Version: + +--------------------------------------------- +HP Compaq nx9005 ---------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KAM1.46 +BIOS Release: 07/21/200392 +System Vendor: Hewlett-Packard +Product Name: HP nx9005 (DJ163A) +Version: KAM1.46 +Board Vendor: Hewlett-Packard +Board Name: 0024 +Board Version: PQ1A78 + +---------------------------------------------- +HP Compaq nx9010 ----------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KF_KH.F.08 +BIOS Release: 06/06/2003 +System Vendor: Hewlett-Packard +Product Name: HP nx9010 (DJ123A) +Version: KH.F.08 +Board Vendor: Hewlett-Packard +Board Name: 0850 +Board Version: NS570 Version PQ1B56 + +---------------------------------------------- +HP Pavilion ze8500 -------------------------- + +BIOS Vendor: Phoenix Technologies Ltd. +BIOS Version: KF_KH.F.18 +BIOS Release: 11/13/2003 +System Vendor: Hewlett-Packard +Product Name: Pavilion ze8500 (DJ317A) +Version: KH.F.18 +Board Vendor: Hewlett-Packard +Board Name: 0850 +Board Version: NS570 Version PQ1B60 + +--------------------------------------------- +Fujitsu-Siemens Amilo D --------------------- + +BIOS Vendor: Phoenix +BIOS Version: V1.20 +BIOS Release: 11/14/2001 +System Vendor: FUJITSU SIEMENS +Product Name: Amilo D-Series +Version: DESKTOP CPU ONLY +Board Vendor: CY23 +Board Name: 8606-686B +Board Version: None + +--------------------------------------------- --- linux-3.2.0.orig/ubuntu/omnibook/misc/hotkeys/xe4xxx.def +++ linux-3.2.0/ubuntu/omnibook/misc/hotkeys/xe4xxx.def @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-3.2.0.orig/ubuntu/omnibook/misc/hotkeys/README.hotkeys +++ linux-3.2.0/ubuntu/omnibook/misc/hotkeys/README.hotkeys @@ -0,0 +1,22 @@ +HotKeys is a program to use the special keys on internet/multimedia +keyboards. + +The HotKeys daemon listens for the "special" hotkeys that you won't +normally use on your Internet/Multimedia keyboards. The buttons +perform their intended behaviors, such as volume up and down, mute the +speaker, or launch applications. It has On-screen display (OSD) to +show the volume, program that's being started, etc. It features an +XML-based keycode configuration file format, which makes it possible +to define the hotkeys to launch any programs you want. + +You may reach it at http://ypwong.org/hotkeys/ + +Files in this directory provide examles for hotkeys definition files +for certain laptop models supported by omnibook module: + +ob5xx.def: HP OmniBook 5xx +xe3gc.def: HP OmniBook XE3 GC, GD, GE and HP Pavilion N5xxx +xe3gf.def: HP OmniBook XE3 GF +xe4xxx.def: HP OmniBook xe4xxx and ze4xxx +xt155.def: HP OmniBook xt155 +nx9xxx.def: HP/Compaq nx9xxx --- linux-3.2.0.orig/ubuntu/omnibook/misc/hotkeys/xe3gc.def +++ linux-3.2.0/ubuntu/omnibook/misc/hotkeys/xe3gc.def @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-3.2.0.orig/ubuntu/omnibook/misc/hotkeys/xt155.def +++ linux-3.2.0/ubuntu/omnibook/misc/hotkeys/xt155.def @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + Soos, Peter + sp@osb.hu + + --- linux-3.2.0.orig/ubuntu/omnibook/misc/hotkeys/xe3gf.def +++ linux-3.2.0/ubuntu/omnibook/misc/hotkeys/xe3gf.def @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-3.2.0.orig/ubuntu/omnibook/misc/hotkeys/nx9xxx.def +++ linux-3.2.0/ubuntu/omnibook/misc/hotkeys/nx9xxx.def @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + Sound muted + + + + + Soos, Peter + sp@osb.hu + + --- linux-3.2.0.orig/ubuntu/omnibook/misc/hotkeys/ob5xx.def +++ linux-3.2.0/ubuntu/omnibook/misc/hotkeys/ob5xx.def @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + Soos, Peter + sp@osb.hu + + --- linux-3.2.0.orig/ubuntu/dm-raid4-5/Kconfig +++ linux-3.2.0/ubuntu/dm-raid4-5/Kconfig @@ -0,0 +1,6 @@ +config DM_RAID45 + tristate "RAID 4/5 target (EXPERIMENTAL)" + depends on BLK_DEV_DM && XOR_BLOCKS && EXPERIMENTAL + default m + ---help--- + A target that supports RAID4 and RAID5 mappings. --- linux-3.2.0.orig/ubuntu/dm-raid4-5/dm-region-hash.h +++ linux-3.2.0/ubuntu/dm-raid4-5/dm-region-hash.h @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2003 Sistina Software Limited. + * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. + * + * Device-Mapper dirty region hash interface. + * + * This file is released under the GPL. + */ + +#ifndef DM_REGION_HASH_H +#define DM_REGION_HASH_H + +#include + +/*----------------------------------------------------------------- + * Region hash + *----------------------------------------------------------------*/ +struct dm_region_hash; +struct dm_region; + +/* + * States a region can have. + */ +enum dm_rh_region_states { + DM_RH_CLEAN = 0x01, /* No writes in flight. */ + DM_RH_DIRTY = 0x02, /* Writes in flight. */ + DM_RH_NOSYNC = 0x04, /* Out of sync. */ + DM_RH_RECOVERING = 0x08, /* Under resynchronization. */ +}; + +/* + * Region hash create/destroy. + */ +struct bio_list; +struct dm_region_hash *dm_region_hash_create( + void *context, void (*dispatch_bios)(void *context, + struct bio_list *bios), + void (*wakeup_workers)(void *context), + void (*wakeup_all_recovery_waiters)(void *context), + sector_t target_begin, unsigned max_recovery, + struct dm_dirty_log *log, uint32_t region_size, + region_t nr_regions); +void dm_region_hash_destroy(struct dm_region_hash *rh); + +struct dm_dirty_log *dm_rh_dirty_log(struct dm_region_hash *rh); + +/* + * Conversion functions. + */ +region_t dm_rh_bio_to_region(struct dm_region_hash *rh, struct bio *bio); +sector_t dm_rh_region_to_sector(struct dm_region_hash *rh, region_t region); +region_t dm_rh_sector_to_region(struct dm_region_hash *rh, sector_t sector); +void *dm_rh_region_context(struct dm_region *reg); + +/* + * Get region size and key (ie. number of the region). + */ +sector_t dm_rh_get_region_size(struct dm_region_hash *rh); +region_t dm_rh_get_region_key(struct dm_region *reg); + +/* + * Get/set/update region state (and dirty log). + * + */ +int dm_rh_get_state(struct dm_region_hash *rh, region_t region, int may_block); +void dm_rh_set_state(struct dm_region_hash *rh, region_t region, + enum dm_rh_region_states state, int may_block); + +/* Non-zero errors_handled leaves the state of the region NOSYNC */ +void dm_rh_update_states(struct dm_region_hash *rh, int errors_handled); + +/* Flush the region hash and dirty log. */ +int dm_rh_flush(struct dm_region_hash *rh); + +/* Inc/dec pending count on regions. */ +void dm_rh_inc(struct dm_region_hash *rh, region_t region); +void dm_rh_inc_pending(struct dm_region_hash *rh, struct bio_list *bios); +void dm_rh_dec(struct dm_region_hash *rh, region_t region); + +/* Delay bios on regions. */ +void dm_rh_delay(struct dm_region_hash *rh, struct bio *bio); +void dm_rh_delay_by_region(struct dm_region_hash *rh, struct bio *bio, + region_t region); + +void dm_rh_mark_nosync(struct dm_region_hash *rh, + struct bio *bio, unsigned done, int error); + +/* + * Region recovery control. + */ + +/* Prepare some regions for recovery by starting to quiesce them. */ +void dm_rh_recovery_prepare(struct dm_region_hash *rh); + +/* Try fetching a quiesced region for recovery. */ +struct dm_region *dm_rh_recovery_start(struct dm_region_hash *rh); + +/* Report recovery end on a region. */ +void dm_rh_recovery_end(struct dm_region *reg, int error); + +/* Returns number of regions with recovery work outstanding. */ +int dm_rh_recovery_in_flight(struct dm_region_hash *rh); + +/* Start/stop recovery. */ +void dm_rh_start_recovery(struct dm_region_hash *rh); +void dm_rh_stop_recovery(struct dm_region_hash *rh); + +#endif /* DM_REGION_HASH_H */ --- linux-3.2.0.orig/ubuntu/dm-raid4-5/dm-memcache.h +++ linux-3.2.0/ubuntu/dm-raid4-5/dm-memcache.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen + * + * Device-mapper memory object handling: + * + * o allocate/free total_pages in a per client page pool. + * + * o allocate/free memory objects with chunks (1..n) of + * pages_per_chunk pages hanging off. + * + * This file is released under the GPL. + */ + +#ifndef _DM_MEM_CACHE_H +#define _DM_MEM_CACHE_H + +#define DM_MEM_CACHE_H_VERSION "0.1" + +#include "dm.h" +#include + +static inline struct page_list *pl_elem(struct page_list *pl, unsigned p) +{ + while (pl && p--) + pl = pl->next; + + return pl; +} + +struct dm_mem_cache_object { + struct page_list *pl; /* Dynamically allocated array */ + void *private; /* Caller context reference */ +}; + +struct dm_mem_cache_client; + +/* + * Create/destroy dm memory cache client resources. + * + * On creation, a number of @objects with @chunks of + * @pages_per_chunk pages will be allocated. + */ +struct dm_mem_cache_client * +dm_mem_cache_client_create(unsigned objects, unsigned chunks, + unsigned pages_per_chunk); +void dm_mem_cache_client_destroy(struct dm_mem_cache_client *client); + +/* + * Grow/shrink a dm memory cache client resources + * by @objetcs amount of objects. + */ +int dm_mem_cache_grow(struct dm_mem_cache_client *client, unsigned objects); +int dm_mem_cache_shrink(struct dm_mem_cache_client *client, unsigned objects); + +/* + * Allocate/free a memory object + * + * On allocation one object with an amount of chunks and + * an amount of pages per chunk will be returned on success. + */ +struct dm_mem_cache_object * +dm_mem_cache_alloc(struct dm_mem_cache_client *client); +void dm_mem_cache_free(struct dm_mem_cache_client *client, + struct dm_mem_cache_object *object); + +#endif --- linux-3.2.0.orig/ubuntu/dm-raid4-5/dm-message.c +++ linux-3.2.0/ubuntu/dm-raid4-5/dm-message.c @@ -0,0 +1,184 @@ +/* + * Copyright (C) 2007,2008 Red Hat Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen + * + * General device-mapper message interface argument parser. + * + * This file is released under the GPL. + * + * device-mapper message parser. + * + */ + +#include "dm.h" +#include "dm-message.h" +#include +#include + +#define DM_MSG_PREFIX "dm_message" + +/* Basename of a path. */ +static inline char * +basename(char *s) +{ + char *p = strrchr(s, '/'); + + return p ? p + 1 : s; +} + +/* Get an argument depending on type. */ +static void +message_arguments(struct dm_msg *msg, int argc, char **argv) +{ + + if (argc) { + int i; + struct dm_message_argument *args = msg->spec->args; + + for (i = 0; i < args->num_args; i++) { + int r; + unsigned long **ptr = args->ptr; + enum dm_message_argument_type type = args->types[i]; + + switch (type) { + case dm_msg_base_t: + ((char **) ptr)[i] = basename(argv[i]); + break; + + case dm_msg_str_t: + ((char **) ptr)[i] = argv[i]; + break; + + case dm_msg_int_t: + r = sscanf(argv[i], "%d", ((int **) ptr)[i]); + goto check; + + case dm_msg_uint_t: + r = sscanf(argv[i], "%u", + ((unsigned **) ptr)[i]); + goto check; + + case dm_msg_uint64_t: + r = sscanf(argv[i], "%llu", + ((unsigned long long **) ptr)[i]); + +check: + if (r != 1) { + set_bit(dm_msg_ret_undef, &msg->ret); + set_bit(dm_msg_ret_arg, &msg->ret); + } + } + } + } +} + +/* Parse message options. */ +static void +message_options_parse(struct dm_msg *msg, int argc, char **argv) +{ + int hit = 0; + unsigned long *action; + size_t l1 = strlen(*argv), l_hit = 0; + struct dm_message_option *o = msg->spec->options; + char **option, **option_end = o->options + o->num_options; + + for (option = o->options, action = o->actions; + option < option_end; option++, action++) { + size_t l2 = strlen(*option); + + if (!strnicmp(*argv, *option, min(l1, l2))) { + hit++; + l_hit = l2; + set_bit(*action, &msg->action); + } + } + + /* Assume error. */ + msg->ret = 0; + set_bit(dm_msg_ret_option, &msg->ret); + if (!hit || l1 > l_hit) + set_bit(dm_msg_ret_undef, &msg->ret); /* Undefined option. */ + else if (hit > 1) + set_bit(dm_msg_ret_ambiguous, &msg->ret); /* Ambiguous option.*/ + else { + clear_bit(dm_msg_ret_option, &msg->ret); /* Option OK. */ + message_arguments(msg, --argc, ++argv); + } +} + +static inline void +print_ret(const char *caller, unsigned long ret) +{ + struct { + unsigned long err; + const char *err_str; + } static err_msg[] = { + { dm_msg_ret_ambiguous, "message ambiguous" }, + { dm_msg_ret_inval, "message invalid" }, + { dm_msg_ret_undef, "message undefined" }, + { dm_msg_ret_arg, "message argument" }, + { dm_msg_ret_argcount, "message argument count" }, + { dm_msg_ret_option, "option" }, + }, *e = ARRAY_END(err_msg); + + while (e-- > err_msg) { + if (test_bit(e->err, &ret)) + DMERR("%s %s", caller, e->err_str); + } +} + +/* Parse a message action. */ +int +dm_message_parse(const char *caller, struct dm_msg *msg, void *context, + int argc, char **argv) +{ + int hit = 0; + size_t l1, l_hit = 0; + struct dm_msg_spec *s, *s_hit = NULL, + *s_end = msg->specs + msg->num_specs; + + if (argc < 2) + return -EINVAL; + + l1 = strlen(*argv); + for (s = msg->specs; s < s_end; s++) { + size_t l2 = strlen(s->cmd); + + if (!strnicmp(*argv, s->cmd, min(l1, l2))) { + hit++; + l_hit = l2; + s_hit = s; + } + } + + msg->ret = 0; + if (!hit || l1 > l_hit) /* No hit or message string too long. */ + set_bit(dm_msg_ret_undef, &msg->ret); + else if (hit > 1) /* Ambiguous message. */ + set_bit(dm_msg_ret_ambiguous, &msg->ret); + else if (argc - 2 != s_hit->args->num_args) { + set_bit(dm_msg_ret_undef, &msg->ret); + set_bit(dm_msg_ret_argcount, &msg->ret); + } + + if (msg->ret) + goto bad; + + msg->action = 0; + msg->spec = s_hit; + set_bit(s_hit->action, &msg->action); + message_options_parse(msg, --argc, ++argv); + + if (!msg->ret) + return msg->spec->f(msg, context); + +bad: + print_ret(caller, msg->ret); + return -EINVAL; +} +EXPORT_SYMBOL(dm_message_parse); + +MODULE_DESCRIPTION(DM_NAME " device-mapper target message parser"); +MODULE_AUTHOR("Heinz Mauelshagen "); +MODULE_LICENSE("GPL"); --- linux-3.2.0.orig/ubuntu/dm-raid4-5/Makefile +++ linux-3.2.0/ubuntu/dm-raid4-5/Makefile @@ -0,0 +1,4 @@ +EXTRA_CFLAGS += -I$(srctree)/drivers/md + +obj-$(CONFIG_DM_RAID45) := dm-raid45.o +dm-raid45-objs := dm-raid4-5.o dm-memcache.o dm-region-hash.o dm-message.o --- linux-3.2.0.orig/ubuntu/dm-raid4-5/dm-memcache.c +++ linux-3.2.0/ubuntu/dm-raid4-5/dm-memcache.c @@ -0,0 +1,303 @@ +/* + * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen + * + * Device-mapper memory object handling: + * + * o allocate/free total_pages in a per client page pool. + * + * o allocate/free memory objects with chunks (1..n) of + * pages_per_chunk pages hanging off. + * + * This file is released under the GPL. + */ + +#define DM_MEM_CACHE_VERSION "0.2" + +#include "dm.h" +#include "dm-memcache.h" +#include +#include +#include + +struct dm_mem_cache_client { + spinlock_t lock; + mempool_t *objs_pool; + struct page_list *free_list; + unsigned objects; + unsigned chunks; + unsigned pages_per_chunk; + unsigned free_pages; + unsigned total_pages; +}; + +/* + * Free pages and page_list elements of client. + */ +static void free_cache_pages(struct page_list *list) +{ + while (list) { + struct page_list *pl = list; + + list = pl->next; + BUG_ON(!pl->page); + __free_page(pl->page); + kfree(pl); + } +} + +/* + * Alloc number of pages and page_list elements as required by client. + */ +static struct page_list *alloc_cache_pages(unsigned pages) +{ + struct page_list *pl, *ret = NULL; + struct page *page; + + while (pages--) { + page = alloc_page(GFP_NOIO); + if (!page) + goto err; + + pl = kmalloc(sizeof(*pl), GFP_NOIO); + if (!pl) { + __free_page(page); + goto err; + } + + pl->page = page; + pl->next = ret; + ret = pl; + } + + return ret; + +err: + free_cache_pages(ret); + return NULL; +} + +/* + * Allocate page_list elements from the pool to chunks of the memory object. + */ +static void alloc_chunks(struct dm_mem_cache_client *cl, + struct dm_mem_cache_object *obj) +{ + unsigned chunks = cl->chunks; + unsigned long flags; + + local_irq_save(flags); + local_irq_disable(); + while (chunks--) { + unsigned p = cl->pages_per_chunk; + + obj[chunks].pl = NULL; + + while (p--) { + struct page_list *pl; + + /* Take next element from free list */ + spin_lock(&cl->lock); + pl = cl->free_list; + BUG_ON(!pl); + cl->free_list = pl->next; + spin_unlock(&cl->lock); + + pl->next = obj[chunks].pl; + obj[chunks].pl = pl; + } + } + + local_irq_restore(flags); +} + +/* + * Free page_list elements putting them back onto free list + */ +static void free_chunks(struct dm_mem_cache_client *cl, + struct dm_mem_cache_object *obj) +{ + unsigned chunks = cl->chunks; + unsigned long flags; + struct page_list *next, *pl; + + local_irq_save(flags); + local_irq_disable(); + while (chunks--) { + for (pl = obj[chunks].pl; pl; pl = next) { + next = pl->next; + + spin_lock(&cl->lock); + pl->next = cl->free_list; + cl->free_list = pl; + cl->free_pages++; + spin_unlock(&cl->lock); + } + } + + local_irq_restore(flags); +} + +/* + * Create/destroy dm memory cache client resources. + */ +struct dm_mem_cache_client * +dm_mem_cache_client_create(unsigned objects, unsigned chunks, + unsigned pages_per_chunk) +{ + unsigned total_pages = objects * chunks * pages_per_chunk; + struct dm_mem_cache_client *client; + + BUG_ON(!total_pages); + client = kzalloc(sizeof(*client), GFP_KERNEL); + if (!client) + return ERR_PTR(-ENOMEM); + + client->objs_pool = mempool_create_kmalloc_pool(objects, + chunks * sizeof(struct dm_mem_cache_object)); + if (!client->objs_pool) + goto err; + + client->free_list = alloc_cache_pages(total_pages); + if (!client->free_list) + goto err1; + + spin_lock_init(&client->lock); + client->objects = objects; + client->chunks = chunks; + client->pages_per_chunk = pages_per_chunk; + client->free_pages = client->total_pages = total_pages; + return client; + +err1: + mempool_destroy(client->objs_pool); +err: + kfree(client); + return ERR_PTR(-ENOMEM); +} +EXPORT_SYMBOL(dm_mem_cache_client_create); + +void dm_mem_cache_client_destroy(struct dm_mem_cache_client *cl) +{ + BUG_ON(cl->free_pages != cl->total_pages); + free_cache_pages(cl->free_list); + mempool_destroy(cl->objs_pool); + kfree(cl); +} +EXPORT_SYMBOL(dm_mem_cache_client_destroy); + +/* + * Grow a clients cache by an amount of pages. + * + * Don't call from interrupt context! + */ +int dm_mem_cache_grow(struct dm_mem_cache_client *cl, unsigned objects) +{ + unsigned pages = objects * cl->chunks * cl->pages_per_chunk; + struct page_list *pl, *last; + + BUG_ON(!pages); + pl = alloc_cache_pages(pages); + if (!pl) + return -ENOMEM; + + last = pl; + while (last->next) + last = last->next; + + spin_lock_irq(&cl->lock); + last->next = cl->free_list; + cl->free_list = pl; + cl->free_pages += pages; + cl->total_pages += pages; + cl->objects++; + spin_unlock_irq(&cl->lock); + + mempool_resize(cl->objs_pool, cl->objects, GFP_NOIO); + return 0; +} +EXPORT_SYMBOL(dm_mem_cache_grow); + +/* Shrink a clients cache by an amount of pages */ +int dm_mem_cache_shrink(struct dm_mem_cache_client *cl, unsigned objects) +{ + int r; + unsigned pages = objects * cl->chunks * cl->pages_per_chunk, p = pages; + unsigned long flags; + struct page_list *last = NULL, *pl, *pos; + + BUG_ON(!pages); + + spin_lock_irqsave(&cl->lock, flags); + pl = pos = cl->free_list; + while (p-- && pos->next) { + last = pos; + pos = pos->next; + } + + if (++p) + r = -ENOMEM; + else { + r = 0; + cl->free_list = pos; + cl->free_pages -= pages; + cl->total_pages -= pages; + cl->objects--; + last->next = NULL; + } + spin_unlock_irqrestore(&cl->lock, flags); + + if (!r) { + free_cache_pages(pl); + mempool_resize(cl->objs_pool, cl->objects, GFP_NOIO); + } + + return r; +} +EXPORT_SYMBOL(dm_mem_cache_shrink); + +/* + * Allocate/free a memory object + * + * Can be called from interrupt context + */ +struct dm_mem_cache_object *dm_mem_cache_alloc(struct dm_mem_cache_client *cl) +{ + int r = 0; + unsigned pages = cl->chunks * cl->pages_per_chunk; + unsigned long flags; + struct dm_mem_cache_object *obj; + + obj = mempool_alloc(cl->objs_pool, GFP_NOIO); + if (!obj) + return ERR_PTR(-ENOMEM); + + spin_lock_irqsave(&cl->lock, flags); + if (pages > cl->free_pages) + r = -ENOMEM; + else + cl->free_pages -= pages; + spin_unlock_irqrestore(&cl->lock, flags); + + if (r) { + mempool_free(obj, cl->objs_pool); + return ERR_PTR(r); + } + + alloc_chunks(cl, obj); + return obj; +} +EXPORT_SYMBOL(dm_mem_cache_alloc); + +void dm_mem_cache_free(struct dm_mem_cache_client *cl, + struct dm_mem_cache_object *obj) +{ + free_chunks(cl, obj); + mempool_free(obj, cl->objs_pool); +} +EXPORT_SYMBOL(dm_mem_cache_free); + +MODULE_DESCRIPTION(DM_NAME " dm memory cache"); +MODULE_AUTHOR("Heinz Mauelshagen "); +MODULE_LICENSE("GPL"); --- linux-3.2.0.orig/ubuntu/dm-raid4-5/dm-raid4-5.c +++ linux-3.2.0/ubuntu/dm-raid4-5/dm-raid4-5.c @@ -0,0 +1,4535 @@ +/*[A[A + * Copyright (C) 2005-2009 Red Hat, Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen + * + * This file is released under the GPL. + * + * + * Linux 2.6 Device Mapper RAID4 and RAID5 target. + * + * Supports: + * o RAID4 with dedicated and selectable parity device + * o RAID5 with rotating parity (left+right, symmetric+asymmetric) + * o recovery of out of sync device for initial + * RAID set creation or after dead drive replacement + * o run time optimization of xor algorithm used to calculate parity + * + * + * Thanks to MD for: + * o the raid address calculation algorithm + * o the base of the biovec <-> page list copier. + * + * + * Uses region hash to keep track of how many writes are in flight to + * regions in order to use dirty log to keep state of regions to recover: + * + * o clean regions (those which are synchronized + * and don't have write io in flight) + * o dirty regions (those with write io in flight) + * + * + * On startup, any dirty regions are migrated to the + * 'nosync' state and are subject to recovery by the daemon. + * + * See raid_ctr() for table definition. + * + * FIXME: recovery bandwidth + */ + +static const char *version = "v0.2594b"; + +#include "dm.h" +#include "dm-memcache.h" +#include "dm-message.h" +#include "dm-raid45.h" + +#include +#include +#include + +#include +#include +#include +#include "dm-region-hash.h" + +#include +#include + +/* + * Configurable parameters + */ + +/* Minimum/maximum and default # of selectable stripes. */ +#define STRIPES_MIN 8 +#define STRIPES_MAX 16384 +#define STRIPES_DEFAULT 80 + +/* Maximum and default chunk size in sectors if not set in constructor. */ +#define CHUNK_SIZE_MIN 8 +#define CHUNK_SIZE_MAX 16384 +#define CHUNK_SIZE_DEFAULT 64 + +/* Default io size in sectors if not set in constructor. */ +#define IO_SIZE_MIN CHUNK_SIZE_MIN +#define IO_SIZE_DEFAULT IO_SIZE_MIN + +/* Recover io size default in sectors. */ +#define RECOVER_IO_SIZE_MIN 64 +#define RECOVER_IO_SIZE_DEFAULT 256 + +/* Default, minimum and maximum percentage of recover io bandwidth. */ +#define BANDWIDTH_DEFAULT 10 +#define BANDWIDTH_MIN 1 +#define BANDWIDTH_MAX 100 + +/* # of parallel recovered regions */ +#define RECOVERY_STRIPES_MIN 1 +#define RECOVERY_STRIPES_MAX 64 +#define RECOVERY_STRIPES_DEFAULT RECOVERY_STRIPES_MIN +/* + * END Configurable parameters + */ + +#define TARGET "dm-raid45" +#define DAEMON "kraid45d" +#define DM_MSG_PREFIX TARGET + +#define SECTORS_PER_PAGE (PAGE_SIZE >> SECTOR_SHIFT) + +/* Amount/size for __xor(). */ +#define XOR_SIZE PAGE_SIZE + +/* Check value in range. */ +#define range_ok(i, min, max) (i >= min && i <= max) + +/* Check argument is power of 2. */ +#define POWER_OF_2(a) (!(a & (a - 1))) + +/* Structure access macros. */ +/* Derive raid_set from stripe_cache pointer. */ +#define RS(x) container_of(x, struct raid_set, sc) + +/* Page reference. */ +#define PAGE(stripe, p) ((stripe)->obj[p].pl->page) + +/* Stripe chunk reference. */ +#define CHUNK(stripe, p) ((stripe)->chunk + p) + +/* Bio list reference. */ +#define BL(stripe, p, rw) (stripe->chunk[p].bl + rw) +#define BL_CHUNK(chunk, rw) (chunk->bl + rw) + +/* Page list reference. */ +#define PL(stripe, p) (stripe->obj[p].pl) +/* END: structure access macros. */ + +/* Factor out to dm-bio-list.h */ +static inline void bio_list_push(struct bio_list *bl, struct bio *bio) +{ + bio->bi_next = bl->head; + bl->head = bio; + + if (!bl->tail) + bl->tail = bio; +} + +/* Factor out to dm.h */ +#define TI_ERR_RET(str, ret) \ + do { ti->error = str; return ret; } while (0); +#define TI_ERR(str) TI_ERR_RET(str, -EINVAL) + +/* Macro to define access IO flags access inline functions. */ +#define BITOPS(name, what, var, flag) \ +static inline int TestClear ## name ## what(struct var *v) \ +{ return test_and_clear_bit(flag, &v->io.flags); } \ +static inline int TestSet ## name ## what(struct var *v) \ +{ return test_and_set_bit(flag, &v->io.flags); } \ +static inline void Clear ## name ## what(struct var *v) \ +{ clear_bit(flag, &v->io.flags); } \ +static inline void Set ## name ## what(struct var *v) \ +{ set_bit(flag, &v->io.flags); } \ +static inline int name ## what(struct var *v) \ +{ return test_bit(flag, &v->io.flags); } + +/*----------------------------------------------------------------- + * Stripe cache + * + * Cache for all reads and writes to raid sets (operational or degraded) + * + * We need to run all data to and from a RAID set through this cache, + * because parity chunks need to get calculated from data chunks + * or, in the degraded/resynchronization case, missing chunks need + * to be reconstructed using the other chunks of the stripe. + *---------------------------------------------------------------*/ +/* A chunk within a stripe (holds bios hanging off). */ +/* IO status flags for chunks of a stripe. */ +enum chunk_flags { + CHUNK_DIRTY, /* Pages of chunk dirty; need writing. */ + CHUNK_ERROR, /* IO error on any chunk page. */ + CHUNK_IO, /* Allow/prohibit IO on chunk pages. */ + CHUNK_LOCKED, /* Chunk pages locked during IO. */ + CHUNK_MUST_IO, /* Chunk must io. */ + CHUNK_UNLOCK, /* Enforce chunk unlock. */ + CHUNK_UPTODATE, /* Chunk pages are uptodate. */ +}; + +#if READ != 0 || WRITE != 1 +#error dm-raid45: READ/WRITE != 0/1 used as index!!! +#endif + +enum bl_type { + WRITE_QUEUED = WRITE + 1, + WRITE_MERGED, + NR_BL_TYPES, /* Must be last one! */ +}; +struct stripe_chunk { + atomic_t cnt; /* Reference count. */ + struct stripe *stripe; /* Backpointer to stripe for endio(). */ + /* Bio lists for reads, writes, and writes merged. */ + struct bio_list bl[NR_BL_TYPES]; + struct { + unsigned long flags; /* IO status flags. */ + } io; +}; + +/* Define chunk bit operations. */ +BITOPS(Chunk, Dirty, stripe_chunk, CHUNK_DIRTY) +BITOPS(Chunk, Error, stripe_chunk, CHUNK_ERROR) +BITOPS(Chunk, Io, stripe_chunk, CHUNK_IO) +BITOPS(Chunk, Locked, stripe_chunk, CHUNK_LOCKED) +BITOPS(Chunk, MustIo, stripe_chunk, CHUNK_MUST_IO) +BITOPS(Chunk, Unlock, stripe_chunk, CHUNK_UNLOCK) +BITOPS(Chunk, Uptodate, stripe_chunk, CHUNK_UPTODATE) + +/* + * Stripe linked list indexes. Keep order, because the stripe + * and the stripe cache rely on the first 3! + */ +enum list_types { + LIST_FLUSH, /* Stripes to flush for io. */ + LIST_ENDIO, /* Stripes to endio. */ + LIST_LRU, /* Least recently used stripes. */ + SC_NR_LISTS, /* # of lists in stripe cache. */ + LIST_HASH = SC_NR_LISTS, /* Hashed stripes. */ + LIST_RECOVER = LIST_HASH, /* For recovery type stripes only. */ + STRIPE_NR_LISTS,/* To size array in struct stripe. */ +}; + +/* Adressing region recovery. */ +struct recover_addr { + struct dm_region *reg; /* Actual region to recover. */ + sector_t pos; /* Position within region to recover. */ + sector_t end; /* End of region to recover. */ +}; + +/* A stripe: the io object to handle all reads and writes to a RAID set. */ +struct stripe { + atomic_t cnt; /* Reference count. */ + struct stripe_cache *sc; /* Backpointer to stripe cache. */ + + /* + * 4 linked lists: + * o io list to flush io + * o endio list + * o LRU list to put stripes w/o reference count on + * o stripe cache hash + */ + struct list_head lists[STRIPE_NR_LISTS]; + + sector_t key; /* Hash key. */ + region_t region; /* Region stripe is mapped to. */ + + struct { + unsigned long flags; /* Stripe state flags (see below). */ + + /* + * Pending ios in flight: + * + * used to control move of stripe to endio list + */ + atomic_t pending; + + /* Sectors to read and write for multi page stripe sets. */ + unsigned size; + } io; + + /* Address region recovery. */ + struct recover_addr *recover; + + /* Lock on stripe (Future: for clustering). */ + void *lock; + + struct { + unsigned short parity; /* Parity chunk index. */ + short recover; /* Recovery chunk index. */ + } idx; + + /* + * This stripe's memory cache object (dm-mem-cache); + * i.e. the io chunk pages. + */ + struct dm_mem_cache_object *obj; + + /* Array of stripe sets (dynamically allocated). */ + struct stripe_chunk chunk[0]; +}; + +/* States stripes can be in (flags field). */ +enum stripe_states { + STRIPE_ERROR, /* io error on stripe. */ + STRIPE_MERGED, /* Writes got merged to be written. */ + STRIPE_RBW, /* Read-before-write stripe. */ + STRIPE_RECONSTRUCT, /* Reconstruct of a missing chunk required. */ + STRIPE_RECONSTRUCTED, /* Reconstructed of a missing chunk. */ + STRIPE_RECOVER, /* Stripe used for RAID set recovery. */ +}; + +/* Define stripe bit operations. */ +BITOPS(Stripe, Error, stripe, STRIPE_ERROR) +BITOPS(Stripe, Merged, stripe, STRIPE_MERGED) +BITOPS(Stripe, RBW, stripe, STRIPE_RBW) +BITOPS(Stripe, Reconstruct, stripe, STRIPE_RECONSTRUCT) +BITOPS(Stripe, Reconstructed, stripe, STRIPE_RECONSTRUCTED) +BITOPS(Stripe, Recover, stripe, STRIPE_RECOVER) + +/* A stripe hash. */ +struct stripe_hash { + struct list_head *hash; + unsigned buckets; + unsigned mask; + unsigned prime; + unsigned shift; +}; + +enum sc_lock_types { + LOCK_ENDIO, /* Protect endio list. */ + LOCK_LRU, /* Protect LRU list. */ + NR_LOCKS, /* To size array in struct stripe_cache. */ +}; + +/* A stripe cache. */ +struct stripe_cache { + /* Stripe hash. */ + struct stripe_hash hash; + + spinlock_t locks[NR_LOCKS]; /* Locks to protect lists. */ + + /* Stripes with io to flush, stripes to endio and LRU lists. */ + struct list_head lists[SC_NR_LISTS]; + + /* Slab cache to allocate stripes from. */ + struct { + struct kmem_cache *cache; /* Cache itself. */ + char name[32]; /* Unique name. */ + } kc; + + struct dm_io_client *dm_io_client; /* dm-io client resource context. */ + + /* dm-mem-cache client resource context. */ + struct dm_mem_cache_client *mem_cache_client; + + int stripes_parm; /* # stripes parameter from constructor. */ + atomic_t stripes; /* actual # of stripes in cache. */ + atomic_t stripes_to_set; /* # of stripes to resize cache to. */ + atomic_t stripes_last; /* last # of stripes in cache. */ + atomic_t active_stripes; /* actual # of active stripes in cache. */ + + /* REMOVEME: */ + atomic_t active_stripes_max; /* actual # of active stripes in cache. */ +}; + +/* Flag specs for raid_dev */ ; +enum raid_dev_flags { + DEV_FAILED, /* Device failed. */ + DEV_IO_QUEUED, /* Io got queued to device. */ +}; + +/* The raid device in a set. */ +struct raid_dev { + struct dm_dev *dev; + sector_t start; /* Offset to map to. */ + struct { /* Using struct to be able to BITOPS(). */ + unsigned long flags; /* raid_dev_flags. */ + } io; +}; + +BITOPS(Dev, Failed, raid_dev, DEV_FAILED) +BITOPS(Dev, IoQueued, raid_dev, DEV_IO_QUEUED) + +/* Flags spec for raid_set. */ +enum raid_set_flags { + RS_CHECK_OVERWRITE, /* Check for chunk overwrites. */ + RS_DEAD, /* RAID set inoperational. */ + RS_DEGRADED, /* Io errors on RAID device. */ + RS_DEVEL_STATS, /* REMOVEME: display status information. */ + RS_RECOVER, /* Do recovery. */ + RS_RECOVERY_BANDWIDTH, /* Allow recovery bandwidth (delayed bios). */ + RS_SC_BUSY, /* Stripe cache busy -> send an event. */ + RS_SUSPEND, /* Suspend RAID set. */ +}; + +/* REMOVEME: devel stats counters. */ +enum stats_types { + S_BIOS_READ, + S_BIOS_ADDED_READ, + S_BIOS_ENDIO_READ, + S_BIOS_WRITE, + S_BIOS_ADDED_WRITE, + S_BIOS_ENDIO_WRITE, + S_CAN_MERGE, + S_CANT_MERGE, + S_CONGESTED, + S_DM_IO_READ, + S_DM_IO_WRITE, + S_BANDWIDTH, + S_BARRIER, + S_BIO_COPY_PL_NEXT, + S_DEGRADED, + S_DELAYED_BIOS, + S_FLUSHS, + S_HITS_1ST, + S_IOS_POST, + S_INSCACHE, + S_MAX_LOOKUP, + S_CHUNK_LOCKED, + S_NO_BANDWIDTH, + S_NOT_CONGESTED, + S_NO_RW, + S_NOSYNC, + S_OVERWRITE, + S_PROHIBITCHUNKIO, + S_RECONSTRUCT_EI, + S_RECONSTRUCT_DEV, + S_RECONSTRUCT_SET, + S_RECONSTRUCTED, + S_REQUEUE, + S_STRIPE_ERROR, + S_SUM_DELAYED_BIOS, + S_XORS, + S_NR_STATS, /* # of stats counters. Must be last! */ +}; + +/* Status type -> string mappings. */ +struct stats_map { + const enum stats_types type; + const char *str; +}; + +static struct stats_map stats_map[] = { + { S_BIOS_READ, "r=" }, + { S_BIOS_ADDED_READ, "/" }, + { S_BIOS_ENDIO_READ, "/" }, + { S_BIOS_WRITE, " w=" }, + { S_BIOS_ADDED_WRITE, "/" }, + { S_BIOS_ENDIO_WRITE, "/" }, + { S_DM_IO_READ, " rc=" }, + { S_DM_IO_WRITE, " wc=" }, + { S_BANDWIDTH, "\nbw=" }, + { S_NO_BANDWIDTH, " no_bw=" }, + { S_BARRIER, "\nbarrier=" }, + { S_BIO_COPY_PL_NEXT, "\nbio_cp_next=" }, + { S_CAN_MERGE, "\nmerge=" }, + { S_CANT_MERGE, "/no_merge=" }, + { S_CHUNK_LOCKED, "\nchunk_locked=" }, + { S_CONGESTED, "\ncgst=" }, + { S_NOT_CONGESTED, "/not_cgst=" }, + { S_DEGRADED, "\ndegraded=" }, + { S_DELAYED_BIOS, "\ndel_bios=" }, + { S_SUM_DELAYED_BIOS, "/sum_del_bios=" }, + { S_FLUSHS, "\nflushs=" }, + { S_HITS_1ST, "\nhits_1st=" }, + { S_IOS_POST, " ios_post=" }, + { S_INSCACHE, " inscache=" }, + { S_MAX_LOOKUP, " maxlookup=" }, + { S_NO_RW, "\nno_rw=" }, + { S_NOSYNC, " nosync=" }, + { S_OVERWRITE, " ovr=" }, + { S_PROHIBITCHUNKIO, " prhbt_io=" }, + { S_RECONSTRUCT_EI, "\nrec_ei=" }, + { S_RECONSTRUCT_DEV, " rec_dev=" }, + { S_RECONSTRUCT_SET, " rec_set=" }, + { S_RECONSTRUCTED, " rec=" }, + { S_REQUEUE, " requeue=" }, + { S_STRIPE_ERROR, " stripe_err=" }, + { S_XORS, " xors=" }, +}; + +/* + * A RAID set. + */ +#define dm_rh_client dm_region_hash +enum count_type { IO_WORK = 0, IO_RECOVER, IO_NR_COUNT }; +typedef void (*xor_function_t)(unsigned count, unsigned long **data); +struct raid_set { + struct dm_target *ti; /* Target pointer. */ + + struct { + unsigned long flags; /* State flags. */ + struct mutex in_lock; /* Protects central input list below. */ + struct bio_list in; /* Pending ios (central input list). */ + struct bio_list work; /* ios work set. */ + wait_queue_head_t suspendq; /* suspend synchronization. */ + atomic_t in_process; /* counter of queued bios (suspendq). */ + atomic_t in_process_max;/* counter of queued bios max. */ + + /* io work. */ + struct workqueue_struct *wq; + struct delayed_work dws_do_raid; /* For main worker. */ + struct work_struct ws_do_table_event; /* For event worker. */ + } io; + + /* Stripe locking abstraction. */ + struct dm_raid45_locking_type *locking; + + struct stripe_cache sc; /* Stripe cache for this set. */ + + /* Xor optimization. */ + struct { + struct xor_func *f; + unsigned chunks; + unsigned speed; + } xor; + + /* Recovery parameters. */ + struct recover { + struct dm_dirty_log *dl; /* Dirty log. */ + struct dm_rh_client *rh; /* Region hash. */ + + struct dm_io_client *dm_io_client; /* recovery dm-io client. */ + /* dm-mem-cache client resource context for recovery stripes. */ + struct dm_mem_cache_client *mem_cache_client; + + struct list_head stripes; /* List of recovery stripes. */ + + region_t nr_regions; + region_t nr_regions_to_recover; + region_t nr_regions_recovered; + unsigned long start_jiffies; + unsigned long end_jiffies; + + unsigned bandwidth; /* Recovery bandwidth [%]. */ + unsigned bandwidth_work; /* Recovery bandwidth [factor]. */ + unsigned bandwidth_parm; /* " constructor parm. */ + unsigned io_size; /* recovery io size <= region size. */ + unsigned io_size_parm; /* recovery io size ctr parameter. */ + unsigned recovery; /* Recovery allowed/prohibited. */ + unsigned recovery_stripes; /* # of parallel recovery stripes. */ + + /* recovery io throttling. */ + atomic_t io_count[IO_NR_COUNT]; /* counter recover/regular io.*/ + unsigned long last_jiffies; + } recover; + + /* RAID set parameters. */ + struct { + struct raid_type *raid_type; /* RAID type (eg, RAID4). */ + unsigned raid_parms; /* # variable raid parameters. */ + + unsigned chunk_size; /* Sectors per chunk. */ + unsigned chunk_size_parm; + unsigned chunk_shift; /* rsector chunk size shift. */ + + unsigned io_size; /* Sectors per io. */ + unsigned io_size_parm; + unsigned io_mask; /* Mask for bio_copy_page_list(). */ + unsigned io_inv_mask; /* Mask for raid_address(). */ + + sector_t sectors_per_dev; /* Sectors per device. */ + + atomic_t failed_devs; /* Amount of devices failed. */ + + /* Index of device to initialize. */ + int dev_to_init; + int dev_to_init_parm; + + /* Raid devices dynamically allocated. */ + unsigned raid_devs; /* # of RAID devices below. */ + unsigned data_devs; /* # of RAID data devices. */ + + int ei; /* index of failed RAID device. */ + + /* Index of dedicated parity device (i.e. RAID4). */ + int pi; + int pi_parm; /* constructor parm for status output. */ + } set; + + /* REMOVEME: devel stats counters. */ + atomic_t stats[S_NR_STATS]; + + /* Dynamically allocated temporary pointers for xor(). */ + unsigned long **data; + + /* Dynamically allocated RAID devices. Alignment? */ + struct raid_dev dev[0]; +}; + +/* Define RAID set bit operations. */ +BITOPS(RS, Bandwidth, raid_set, RS_RECOVERY_BANDWIDTH) +BITOPS(RS, CheckOverwrite, raid_set, RS_CHECK_OVERWRITE) +BITOPS(RS, Dead, raid_set, RS_DEAD) +BITOPS(RS, Degraded, raid_set, RS_DEGRADED) +BITOPS(RS, DevelStats, raid_set, RS_DEVEL_STATS) +BITOPS(RS, Recover, raid_set, RS_RECOVER) +BITOPS(RS, ScBusy, raid_set, RS_SC_BUSY) +BITOPS(RS, Suspend, raid_set, RS_SUSPEND) +#undef BITOPS + +/*----------------------------------------------------------------- + * Raid-4/5 set structures. + *---------------------------------------------------------------*/ +/* RAID level definitions. */ +enum raid_level { + raid4, + raid5, +}; + +/* Symmetric/Asymmetric, Left/Right parity rotating algorithms. */ +enum raid_algorithm { + none, + left_asym, + right_asym, + left_sym, + right_sym, +}; + +struct raid_type { + const char *name; /* RAID algorithm. */ + const char *descr; /* Descriptor text for logging. */ + const unsigned parity_devs; /* # of parity devices. */ + const unsigned minimal_devs; /* minimal # of devices in set. */ + const enum raid_level level; /* RAID level. */ + const enum raid_algorithm algorithm; /* RAID algorithm. */ +}; + +/* Supported raid types and properties. */ +static struct raid_type raid_types[] = { + {"raid4", "RAID4 (dedicated parity disk)", 1, 3, raid4, none}, + {"raid5_la", "RAID5 (left asymmetric)", 1, 3, raid5, left_asym}, + {"raid5_ra", "RAID5 (right asymmetric)", 1, 3, raid5, right_asym}, + {"raid5_ls", "RAID5 (left symmetric)", 1, 3, raid5, left_sym}, + {"raid5_rs", "RAID5 (right symmetric)", 1, 3, raid5, right_sym}, +}; + +/* Address as calculated by raid_address(). */ +struct raid_address { + sector_t key; /* Hash key (address of stripe % chunk_size). */ + unsigned di, pi; /* Data and parity disks index. */ +}; + +/* REMOVEME: reset statistics counters. */ +static void stats_reset(struct raid_set *rs) +{ + unsigned s = S_NR_STATS; + + while (s--) + atomic_set(rs->stats + s, 0); +} + +/*---------------------------------------------------------------- + * RAID set management routines. + *--------------------------------------------------------------*/ +/* + * Begin small helper functions. + */ +/* No need to be called from region hash indirectly at dm_rh_dec(). */ +static void wake_dummy(void *context) {} + +/* Return # of io reference. */ +static int io_ref(struct raid_set *rs) +{ + return atomic_read(&rs->io.in_process); +} + +/* Get an io reference. */ +static void io_get(struct raid_set *rs) +{ + int p = atomic_inc_return(&rs->io.in_process); + + if (p > atomic_read(&rs->io.in_process_max)) + atomic_set(&rs->io.in_process_max, p); /* REMOVEME: max. */ +} + +/* Put the io reference and conditionally wake io waiters. */ +static void io_put(struct raid_set *rs) +{ + /* Intel: rebuild data corrupter? */ + if (atomic_dec_and_test(&rs->io.in_process)) + wake_up(&rs->io.suspendq); + else + BUG_ON(io_ref(rs) < 0); +} + +/* Wait until all io has been processed. */ +static void wait_ios(struct raid_set *rs) +{ + wait_event(rs->io.suspendq, !io_ref(rs)); +} + +/* Queue (optionally delayed) io work. */ +static void wake_do_raid_delayed(struct raid_set *rs, unsigned long delay) +{ + queue_delayed_work(rs->io.wq, &rs->io.dws_do_raid, delay); +} + +/* Queue io work immediately (called from region hash too). */ +static void wake_do_raid(void *context) +{ + struct raid_set *rs = context; + + queue_work(rs->io.wq, &rs->io.dws_do_raid.work); +} + +/* Calculate device sector offset. */ +static sector_t _sector(struct raid_set *rs, struct bio *bio) +{ + sector_t sector = bio->bi_sector; + + sector_div(sector, rs->set.data_devs); + return sector; +} + +/* Return # of active stripes in stripe cache. */ +static int sc_active(struct stripe_cache *sc) +{ + return atomic_read(&sc->active_stripes); +} + +/* Stripe cache busy indicator. */ +static int sc_busy(struct raid_set *rs) +{ + return sc_active(&rs->sc) > + atomic_read(&rs->sc.stripes) - (STRIPES_MIN / 2); +} + +/* Set chunks states. */ +enum chunk_dirty_type { CLEAN, DIRTY, ERROR }; +static void chunk_set(struct stripe_chunk *chunk, enum chunk_dirty_type type) +{ + switch (type) { + case CLEAN: + ClearChunkDirty(chunk); + break; + case DIRTY: + SetChunkDirty(chunk); + break; + case ERROR: + SetChunkError(chunk); + SetStripeError(chunk->stripe); + return; + default: + BUG(); + } + + SetChunkUptodate(chunk); + SetChunkIo(chunk); + ClearChunkError(chunk); +} + +/* Return region state for a sector. */ +static int region_state(struct raid_set *rs, sector_t sector, + enum dm_rh_region_states state) +{ + struct dm_rh_client *rh = rs->recover.rh; + region_t region = dm_rh_sector_to_region(rh, sector); + + return !!(dm_rh_get_state(rh, region, 1) & state); +} + +/* + * Return true in case a chunk should be read/written + * + * Conditions to read/write: + * o chunk not uptodate + * o chunk dirty + * + * Conditios to avoid io: + * o io already ongoing on chunk + * o io explitely prohibited + */ +static int chunk_io(struct stripe_chunk *chunk) +{ + /* 2nd run optimization (flag set below on first run). */ + if (TestClearChunkMustIo(chunk)) + return 1; + + /* Avoid io if prohibited or a locked chunk. */ + if (!ChunkIo(chunk) || ChunkLocked(chunk)) + return 0; + + if (!ChunkUptodate(chunk) || ChunkDirty(chunk)) { + SetChunkMustIo(chunk); /* 2nd run optimization. */ + return 1; + } + + return 0; +} + +/* Call a function on each chunk needing io unless device failed. */ +static unsigned for_each_io_dev(struct stripe *stripe, + void (*f_io)(struct stripe *stripe, unsigned p)) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned p, r = 0; + + for (p = 0; p < rs->set.raid_devs; p++) { + if (chunk_io(CHUNK(stripe, p)) && !DevFailed(rs->dev + p)) { + f_io(stripe, p); + r++; + } + } + + return r; +} + +/* + * Index of device to calculate parity on. + * + * Either the parity device index *or* the selected + * device to init after a spare replacement. + */ +static int dev_for_parity(struct stripe *stripe, int *sync) +{ + struct raid_set *rs = RS(stripe->sc); + int r = region_state(rs, stripe->key, DM_RH_NOSYNC | DM_RH_RECOVERING); + + *sync = !r; + + /* Reconstruct a particular device ?. */ + if (r && rs->set.dev_to_init > -1) + return rs->set.dev_to_init; + else if (rs->set.raid_type->level == raid4) + return rs->set.pi; + else if (!StripeRecover(stripe)) + return stripe->idx.parity; + else + return -1; +} + +/* RAID set congested function. */ +static int rs_congested(void *congested_data, int bdi_bits) +{ + int r; + unsigned p; + struct raid_set *rs = congested_data; + + if (sc_busy(rs) || RSSuspend(rs)) + r = 1; + else for (r = 0, p = rs->set.raid_devs; !r && p--; ) { + /* If any of our component devices are overloaded. */ + struct request_queue *q = bdev_get_queue(rs->dev[p].dev->bdev); + + r |= bdi_congested(&q->backing_dev_info, bdi_bits); + } + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + (r ? S_CONGESTED : S_NOT_CONGESTED)); + return r; +} + +/* RAID device degrade check. */ +static void rs_check_degrade_dev(struct raid_set *rs, + struct stripe *stripe, unsigned p) +{ + if (TestSetDevFailed(rs->dev + p)) + return; + + /* Through an event in case of member device errors. */ + if (atomic_inc_return(&rs->set.failed_devs) > + rs->set.raid_type->parity_devs && + !TestSetRSDead(rs)) { + /* Display RAID set dead message once. */ + unsigned p; + char buf[BDEVNAME_SIZE]; + + DMERR("FATAL: too many devices failed -> RAID set broken"); + for (p = 0; p < rs->set.raid_devs; p++) { + if (DevFailed(rs->dev + p)) + DMERR("device /dev/%s failed", + bdevname(rs->dev[p].dev->bdev, buf)); + } + } + + /* Only log the first member error. */ + if (!TestSetRSDegraded(rs)) { + char buf[BDEVNAME_SIZE]; + + /* Store index for recovery. */ + rs->set.ei = p; + DMERR("CRITICAL: %sio error on device /dev/%s " + "in region=%llu; DEGRADING RAID set\n", + stripe ? "" : "FAKED ", + bdevname(rs->dev[p].dev->bdev, buf), + (unsigned long long) (stripe ? stripe->key : 0)); + DMERR("further device error messages suppressed"); + } + + schedule_work(&rs->io.ws_do_table_event); +} + +/* RAID set degrade check. */ +static void rs_check_degrade(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned p = rs->set.raid_devs; + + while (p--) { + if (ChunkError(CHUNK(stripe, p))) + rs_check_degrade_dev(rs, stripe, p); + } +} + +/* Lookup a RAID device by name or by major:minor number. */ +static int raid_dev_lookup(struct raid_set *rs, struct raid_dev *dev_lookup) +{ + unsigned p; + struct raid_dev *dev; + + /* + * Must be an incremental loop, because the device array + * can have empty slots still on calls from raid_ctr() + */ + for (dev = rs->dev, p = 0; + dev->dev && p < rs->set.raid_devs; + dev++, p++) { + if (dev_lookup->dev->bdev->bd_dev == dev->dev->bdev->bd_dev) + return p; + } + + return -ENODEV; +} +/* + * End small helper functions. + */ + +/* + * Stripe hash functions + */ +/* Initialize/destroy stripe hash. */ +static int hash_init(struct stripe_hash *hash, unsigned stripes) +{ + unsigned buckets = 2, max_buckets = stripes >> 1; + static unsigned hash_primes[] = { + /* Table of primes for hash_fn/table size optimization. */ + 1, 2, 3, 7, 13, 27, 53, 97, 193, 389, 769, + 1543, 3079, 6151, 12289, 24593, 49157, 98317, + }; + + /* Calculate number of buckets (2^^n <= stripes / 2). */ + while (buckets < max_buckets) + buckets <<= 1; + + /* Allocate stripe hash buckets. */ + hash->hash = vmalloc(buckets * sizeof(*hash->hash)); + if (!hash->hash) + return -ENOMEM; + + hash->buckets = buckets; + hash->mask = buckets - 1; + hash->shift = ffs(buckets); + if (hash->shift > ARRAY_SIZE(hash_primes)) + hash->shift = ARRAY_SIZE(hash_primes) - 1; + + BUG_ON(hash->shift < 2); + hash->prime = hash_primes[hash->shift]; + + /* Initialize buckets. */ + while (buckets--) + INIT_LIST_HEAD(hash->hash + buckets); + return 0; +} + +static void hash_exit(struct stripe_hash *hash) +{ + if (hash->hash) { + vfree(hash->hash); + hash->hash = NULL; + } +} + +static unsigned hash_fn(struct stripe_hash *hash, sector_t key) +{ + return (unsigned) (((key * hash->prime) >> hash->shift) & hash->mask); +} + +static struct list_head *hash_bucket(struct stripe_hash *hash, sector_t key) +{ + return hash->hash + hash_fn(hash, key); +} + +/* Insert an entry into a hash. */ +static void stripe_insert(struct stripe_hash *hash, struct stripe *stripe) +{ + list_add(stripe->lists + LIST_HASH, hash_bucket(hash, stripe->key)); +} + +/* Lookup an entry in the stripe hash. */ +static struct stripe *stripe_lookup(struct stripe_cache *sc, sector_t key) +{ + unsigned look = 0; + struct stripe *stripe; + struct list_head *bucket = hash_bucket(&sc->hash, key); + + list_for_each_entry(stripe, bucket, lists[LIST_HASH]) { + look++; + + if (stripe->key == key) { + /* REMOVEME: statisics. */ + if (look > atomic_read(RS(sc)->stats + S_MAX_LOOKUP)) + atomic_set(RS(sc)->stats + S_MAX_LOOKUP, look); + return stripe; + } + } + + return NULL; +} + +/* Resize the stripe cache hash on size changes. */ +static int sc_hash_resize(struct stripe_cache *sc) +{ + /* Resize indicated ? */ + if (atomic_read(&sc->stripes) != atomic_read(&sc->stripes_last)) { + int r; + struct stripe_hash hash; + + r = hash_init(&hash, atomic_read(&sc->stripes)); + if (r) + return r; + + if (sc->hash.hash) { + unsigned b = sc->hash.buckets; + struct list_head *pos, *tmp; + + /* Walk old buckets and insert into new. */ + while (b--) { + list_for_each_safe(pos, tmp, sc->hash.hash + b) + stripe_insert(&hash, + list_entry(pos, struct stripe, + lists[LIST_HASH])); + } + + } + + hash_exit(&sc->hash); + memcpy(&sc->hash, &hash, sizeof(sc->hash)); + atomic_set(&sc->stripes_last, atomic_read(&sc->stripes)); + } + + return 0; +} +/* End hash stripe hash function. */ + +/* List add, delete, push and pop functions. */ +/* Add stripe to flush list. */ +#define DEL_LIST(lh) \ + if (!list_empty(lh)) \ + list_del_init(lh); + +/* Delete stripe from hash. */ +static void stripe_hash_del(struct stripe *stripe) +{ + DEL_LIST(stripe->lists + LIST_HASH); +} + +/* Return stripe reference count. */ +static inline int stripe_ref(struct stripe *stripe) +{ + return atomic_read(&stripe->cnt); +} + +static void stripe_flush_add(struct stripe *stripe) +{ + struct stripe_cache *sc = stripe->sc; + struct list_head *lh = stripe->lists + LIST_FLUSH; + + if (!StripeReconstruct(stripe) && list_empty(lh)) + list_add_tail(lh, sc->lists + LIST_FLUSH); +} + +/* + * Add stripe to LRU (inactive) list. + * + * Need lock, because of concurrent access from message interface. + */ +static void stripe_lru_add(struct stripe *stripe) +{ + if (!StripeRecover(stripe)) { + unsigned long flags; + struct list_head *lh = stripe->lists + LIST_LRU; + spinlock_t *lock = stripe->sc->locks + LOCK_LRU; + + spin_lock_irqsave(lock, flags); + if (list_empty(lh)) + list_add_tail(lh, stripe->sc->lists + LIST_LRU); + spin_unlock_irqrestore(lock, flags); + } +} + +#define POP_LIST(list) \ + do { \ + if (list_empty(sc->lists + (list))) \ + stripe = NULL; \ + else { \ + stripe = list_first_entry(sc->lists + (list), \ + struct stripe, \ + lists[(list)]); \ + list_del_init(stripe->lists + (list)); \ + } \ + } while (0); + +/* Pop an available stripe off the LRU list. */ +static struct stripe *stripe_lru_pop(struct stripe_cache *sc) +{ + struct stripe *stripe; + spinlock_t *lock = sc->locks + LOCK_LRU; + + spin_lock_irq(lock); + POP_LIST(LIST_LRU); + spin_unlock_irq(lock); + + return stripe; +} + +/* Pop an available stripe off the io list. */ +static struct stripe *stripe_io_pop(struct stripe_cache *sc) +{ + struct stripe *stripe; + + POP_LIST(LIST_FLUSH); + return stripe; +} + +/* Push a stripe safely onto the endio list to be handled by do_endios(). */ +static void stripe_endio_push(struct stripe *stripe) +{ + unsigned long flags; + struct stripe_cache *sc = stripe->sc; + struct list_head *stripe_list = stripe->lists + LIST_ENDIO, + *sc_list = sc->lists + LIST_ENDIO; + spinlock_t *lock = sc->locks + LOCK_ENDIO; + + /* This runs in parallel with do_endios(). */ + spin_lock_irqsave(lock, flags); + if (list_empty(stripe_list)) + list_add_tail(stripe_list, sc_list); + spin_unlock_irqrestore(lock, flags); + + wake_do_raid(RS(sc)); /* Wake myself. */ +} + +/* Pop a stripe off safely off the endio list. */ +static struct stripe *stripe_endio_pop(struct stripe_cache *sc) +{ + struct stripe *stripe; + spinlock_t *lock = sc->locks + LOCK_ENDIO; + + /* This runs in parallel with endio(). */ + spin_lock_irq(lock); + POP_LIST(LIST_ENDIO) + spin_unlock_irq(lock); + return stripe; +} +#undef POP_LIST + +/* + * Stripe cache locking functions + */ +/* Dummy lock function for single host RAID4+5. */ +static void *no_lock(sector_t key, enum dm_lock_type type) +{ + return &no_lock; +} + +/* Dummy unlock function for single host RAID4+5. */ +static void no_unlock(void *lock_handle) +{ +} + +/* No locking (for single host RAID 4+5). */ +static struct dm_raid45_locking_type locking_none = { + .lock = no_lock, + .unlock = no_unlock, +}; + +/* Lock a stripe (for clustering). */ +static int +stripe_lock(struct stripe *stripe, int rw, sector_t key) +{ + stripe->lock = RS(stripe->sc)->locking->lock(key, rw == READ ? DM_RAID45_SHARED : DM_RAID45_EX); + return stripe->lock ? 0 : -EPERM; +} + +/* Unlock a stripe (for clustering). */ +static void stripe_unlock(struct stripe *stripe) +{ + RS(stripe->sc)->locking->unlock(stripe->lock); + stripe->lock = NULL; +} + +/* Test io pending on stripe. */ +static int stripe_io_ref(struct stripe *stripe) +{ + return atomic_read(&stripe->io.pending); +} + +static void stripe_io_get(struct stripe *stripe) +{ + if (atomic_inc_return(&stripe->io.pending) == 1) + /* REMOVEME: statistics */ + atomic_inc(&stripe->sc->active_stripes); + else + BUG_ON(stripe_io_ref(stripe) < 0); +} + +static void stripe_io_put(struct stripe *stripe) +{ + if (atomic_dec_and_test(&stripe->io.pending)) { + if (unlikely(StripeRecover(stripe))) + /* Don't put recovery stripe on endio list. */ + wake_do_raid(RS(stripe->sc)); + else + /* Add regular stripe to endio list and wake daemon. */ + stripe_endio_push(stripe); + + /* REMOVEME: statistics */ + atomic_dec(&stripe->sc->active_stripes); + } else + BUG_ON(stripe_io_ref(stripe) < 0); +} + +/* Take stripe reference out. */ +static int stripe_get(struct stripe *stripe) +{ + int r; + struct list_head *lh = stripe->lists + LIST_LRU; + spinlock_t *lock = stripe->sc->locks + LOCK_LRU; + + /* Delete stripe from LRU (inactive) list if on. */ + spin_lock_irq(lock); + DEL_LIST(lh); + spin_unlock_irq(lock); + + BUG_ON(stripe_ref(stripe) < 0); + + /* Lock stripe on first reference */ + r = (atomic_inc_return(&stripe->cnt) == 1) ? + stripe_lock(stripe, WRITE, stripe->key) : 0; + + return r; +} +#undef DEL_LIST + +/* Return references on a chunk. */ +static int chunk_ref(struct stripe_chunk *chunk) +{ + return atomic_read(&chunk->cnt); +} + +/* Take out reference on a chunk. */ +static int chunk_get(struct stripe_chunk *chunk) +{ + return atomic_inc_return(&chunk->cnt); +} + +/* Drop reference on a chunk. */ +static void chunk_put(struct stripe_chunk *chunk) +{ + BUG_ON(atomic_dec_return(&chunk->cnt) < 0); +} + +/* + * Drop reference on a stripe. + * + * Move it to list of LRU stripes if zero. + */ +static void stripe_put(struct stripe *stripe) +{ + if (atomic_dec_and_test(&stripe->cnt)) { + BUG_ON(stripe_io_ref(stripe)); + stripe_unlock(stripe); + } else + BUG_ON(stripe_ref(stripe) < 0); +} + +/* Helper needed by for_each_io_dev(). */ +static void stripe_get_references(struct stripe *stripe, unsigned p) +{ + + /* + * Another one to reference the stripe in + * order to protect vs. LRU list moves. + */ + io_get(RS(stripe->sc)); /* Global io references. */ + stripe_get(stripe); + stripe_io_get(stripe); /* One for each chunk io. */ +} + +/* Helper for endio() to put all take references. */ +static void stripe_put_references(struct stripe *stripe) +{ + stripe_io_put(stripe); /* One for each chunk io. */ + stripe_put(stripe); + io_put(RS(stripe->sc)); +} + +/* + * Stripe cache functions. + */ +/* + * Invalidate all chunks (i.e. their pages) of a stripe. + * + * I only keep state for the whole chunk. + */ +static inline void stripe_chunk_invalidate(struct stripe_chunk *chunk) +{ + chunk->io.flags = 0; +} + +static void +stripe_chunks_invalidate(struct stripe *stripe) +{ + unsigned p = RS(stripe->sc)->set.raid_devs; + + while (p--) + stripe_chunk_invalidate(CHUNK(stripe, p)); +} + +/* Prepare stripe for (re)use. */ +static void stripe_invalidate(struct stripe *stripe) +{ + stripe->io.flags = 0; + stripe->idx.parity = stripe->idx.recover = -1; + stripe_chunks_invalidate(stripe); +} + +/* + * Allow io on all chunks of a stripe. + * If not set, IO will not occur; i.e. it's prohibited. + * + * Actual IO submission for allowed chunks depends + * on their !uptodate or dirty state. + */ +static void stripe_allow_io(struct stripe *stripe) +{ + unsigned p = RS(stripe->sc)->set.raid_devs; + + while (p--) + SetChunkIo(CHUNK(stripe, p)); +} + +/* Initialize a stripe. */ +static void stripe_init(struct stripe_cache *sc, struct stripe *stripe) +{ + unsigned i, p = RS(sc)->set.raid_devs; + + /* Work all io chunks. */ + while (p--) { + struct stripe_chunk *chunk = CHUNK(stripe, p); + + atomic_set(&chunk->cnt, 0); + chunk->stripe = stripe; + i = ARRAY_SIZE(chunk->bl); + while (i--) + bio_list_init(chunk->bl + i); + } + + stripe->sc = sc; + + + i = ARRAY_SIZE(stripe->lists); + while (i--) + INIT_LIST_HEAD(stripe->lists + i); + + stripe->io.size = RS(sc)->set.io_size; + atomic_set(&stripe->cnt, 0); + atomic_set(&stripe->io.pending, 0); + stripe_invalidate(stripe); +} + +/* Number of pages per chunk. */ +static inline unsigned chunk_pages(unsigned sectors) +{ + return dm_div_up(sectors, SECTORS_PER_PAGE); +} + +/* Number of pages per stripe. */ +static inline unsigned stripe_pages(struct raid_set *rs, unsigned io_size) +{ + return chunk_pages(io_size) * rs->set.raid_devs; +} + +/* Initialize part of page_list (recovery). */ +static void stripe_zero_pl_part(struct stripe *stripe, int p, + unsigned start, unsigned count) +{ + unsigned o = start / SECTORS_PER_PAGE, pages = chunk_pages(count); + /* Get offset into the page_list. */ + struct page_list *pl = pl_elem(PL(stripe, p), o); + + BUG_ON(!pl); + while (pl && pages--) { + BUG_ON(!pl->page); + memset(page_address(pl->page), 0, PAGE_SIZE); + pl = pl->next; + } +} + +/* Initialize parity chunk of stripe. */ +static void stripe_zero_chunk(struct stripe *stripe, int p) +{ + if (p > -1) + stripe_zero_pl_part(stripe, p, 0, stripe->io.size); +} + +/* Return dynamic stripe structure size. */ +static size_t stripe_size(struct raid_set *rs) +{ + return sizeof(struct stripe) + + rs->set.raid_devs * sizeof(struct stripe_chunk); +} + +/* Allocate a stripe and its memory object. */ +/* XXX adjust to cope with stripe cache and recovery stripe caches. */ +enum grow { SC_GROW, SC_KEEP }; +static struct stripe *stripe_alloc(struct stripe_cache *sc, + struct dm_mem_cache_client *mc, + enum grow grow) +{ + int r; + struct stripe *stripe; + + stripe = kmem_cache_zalloc(sc->kc.cache, GFP_KERNEL); + if (stripe) { + /* Grow the dm-mem-cache by one object. */ + if (grow == SC_GROW) { + r = dm_mem_cache_grow(mc, 1); + if (r) + goto err_free; + } + + stripe->obj = dm_mem_cache_alloc(mc); + if (!stripe->obj) + goto err_shrink; + + stripe_init(sc, stripe); + } + + return stripe; + +err_shrink: + if (grow == SC_GROW) + dm_mem_cache_shrink(mc, 1); +err_free: + kmem_cache_free(sc->kc.cache, stripe); + return NULL; +} + +/* + * Free a stripes memory object, shrink the + * memory cache and free the stripe itself. + */ +static void stripe_free(struct stripe *stripe, struct dm_mem_cache_client *mc) +{ + dm_mem_cache_free(mc, stripe->obj); + dm_mem_cache_shrink(mc, 1); + kmem_cache_free(stripe->sc->kc.cache, stripe); +} + +/* Free the recovery stripe. */ +static void stripe_recover_free(struct raid_set *rs) +{ + struct recover *rec = &rs->recover; + struct dm_mem_cache_client *mc; + + mc = rec->mem_cache_client; + rec->mem_cache_client = NULL; + if (mc) { + struct stripe *stripe; + + while (!list_empty(&rec->stripes)) { + stripe = list_first_entry(&rec->stripes, struct stripe, + lists[LIST_RECOVER]); + list_del(stripe->lists + LIST_RECOVER); + kfree(stripe->recover); + stripe_free(stripe, mc); + } + + dm_mem_cache_client_destroy(mc); + dm_io_client_destroy(rec->dm_io_client); + rec->dm_io_client = NULL; + } +} + +/* Grow stripe cache. */ +static int sc_grow(struct stripe_cache *sc, unsigned stripes, enum grow grow) +{ + int r = 0; + + /* Try to allocate this many (additional) stripes. */ + while (stripes--) { + struct stripe *stripe = + stripe_alloc(sc, sc->mem_cache_client, grow); + + if (likely(stripe)) { + stripe_lru_add(stripe); + atomic_inc(&sc->stripes); + } else { + r = -ENOMEM; + break; + } + } + + return r ? r : sc_hash_resize(sc); +} + +/* Shrink stripe cache. */ +static int sc_shrink(struct stripe_cache *sc, unsigned stripes) +{ + int r = 0; + + /* Try to get unused stripe from LRU list. */ + while (stripes--) { + struct stripe *stripe; + + stripe = stripe_lru_pop(sc); + if (stripe) { + /* An LRU stripe may never have ios pending! */ + BUG_ON(stripe_io_ref(stripe)); + BUG_ON(stripe_ref(stripe)); + atomic_dec(&sc->stripes); + /* Remove from hash if on before deletion. */ + stripe_hash_del(stripe); + stripe_free(stripe, sc->mem_cache_client); + } else { + r = -ENOENT; + break; + } + } + + /* Check if stats are still sane. */ + if (atomic_read(&sc->active_stripes_max) > + atomic_read(&sc->stripes)) + atomic_set(&sc->active_stripes_max, 0); + + if (r) + return r; + + return atomic_read(&sc->stripes) ? sc_hash_resize(sc) : 0; +} + +/* Create stripe cache and recovery. */ +static int sc_init(struct raid_set *rs, unsigned stripes) +{ + unsigned i, r, rstripes; + struct stripe_cache *sc = &rs->sc; + struct stripe *stripe; + struct recover *rec = &rs->recover; + struct mapped_device *md; + struct gendisk *disk; + + /* Initialize lists and locks. */ + i = ARRAY_SIZE(sc->lists); + while (i--) + INIT_LIST_HEAD(sc->lists + i); + + INIT_LIST_HEAD(&rec->stripes); + + /* Initialize endio and LRU list locks. */ + i = NR_LOCKS; + while (i--) + spin_lock_init(sc->locks + i); + + /* Initialize atomic variables. */ + atomic_set(&sc->stripes, 0); + atomic_set(&sc->stripes_to_set, 0); + atomic_set(&sc->active_stripes, 0); + atomic_set(&sc->active_stripes_max, 0); /* REMOVEME: statistics. */ + + /* + * We need a runtime unique # to suffix the kmem cache name + * because we'll have one for each active RAID set. + */ + md = dm_table_get_md(rs->ti->table); + disk = dm_disk(md); + sprintf(sc->kc.name, "%s-%d", TARGET, disk->first_minor); + dm_put(md); + sc->kc.cache = kmem_cache_create(sc->kc.name, stripe_size(rs), + 0, 0, NULL); + if (!sc->kc.cache) + return -ENOMEM; + + /* Create memory cache client context for RAID stripe cache. */ + sc->mem_cache_client = + dm_mem_cache_client_create(stripes, rs->set.raid_devs, + chunk_pages(rs->set.io_size)); + if (IS_ERR(sc->mem_cache_client)) + return PTR_ERR(sc->mem_cache_client); + + /* Create memory cache client context for RAID recovery stripe(s). */ + rstripes = rec->recovery_stripes; + rec->mem_cache_client = + dm_mem_cache_client_create(rstripes, rs->set.raid_devs, + chunk_pages(rec->io_size)); + if (IS_ERR(rec->mem_cache_client)) + return PTR_ERR(rec->mem_cache_client); + + /* Create dm-io client context for IO stripes. */ + sc->dm_io_client = + dm_io_client_create(); + if (IS_ERR(sc->dm_io_client)) + return PTR_ERR(sc->dm_io_client); + + /* FIXME: intermingeled with stripe cache initialization. */ + /* Create dm-io client context for recovery stripes. */ + rec->dm_io_client = + dm_io_client_create(); + if (IS_ERR(rec->dm_io_client)) + return PTR_ERR(rec->dm_io_client); + + /* Allocate stripes for set recovery. */ + while (rstripes--) { + stripe = stripe_alloc(sc, rec->mem_cache_client, SC_KEEP); + if (!stripe) + return -ENOMEM; + + stripe->recover = kzalloc(sizeof(*stripe->recover), GFP_KERNEL); + if (!stripe->recover) { + stripe_free(stripe, rec->mem_cache_client); + return -ENOMEM; + } + + SetStripeRecover(stripe); + stripe->io.size = rec->io_size; + list_add_tail(stripe->lists + LIST_RECOVER, &rec->stripes); + /* Don't add recovery stripes to LRU list! */ + } + + /* + * Allocate the stripe objetcs from the + * cache and add them to the LRU list. + */ + r = sc_grow(sc, stripes, SC_KEEP); + if (!r) + atomic_set(&sc->stripes_last, stripes); + + return r; +} + +/* Destroy the stripe cache. */ +static void sc_exit(struct stripe_cache *sc) +{ + struct raid_set *rs = RS(sc); + + if (sc->kc.cache) { + stripe_recover_free(rs); + BUG_ON(sc_shrink(sc, atomic_read(&sc->stripes))); + kmem_cache_destroy(sc->kc.cache); + sc->kc.cache = NULL; + + if (sc->mem_cache_client && !IS_ERR(sc->mem_cache_client)) + dm_mem_cache_client_destroy(sc->mem_cache_client); + + if (sc->dm_io_client && !IS_ERR(sc->dm_io_client)) + dm_io_client_destroy(sc->dm_io_client); + + hash_exit(&sc->hash); + } +} + +/* + * Calculate RAID address + * + * Delivers tuple with the index of the data disk holding the chunk + * in the set, the parity disks index and the start of the stripe + * within the address space of the set (used as the stripe cache hash key). + */ +/* thx MD. */ +static struct raid_address *raid_address(struct raid_set *rs, sector_t sector, + struct raid_address *addr) +{ + sector_t stripe, tmp; + + /* + * chunk_number = sector / chunk_size + * stripe_number = chunk_number / data_devs + * di = stripe % data_devs; + */ + stripe = sector >> rs->set.chunk_shift; + addr->di = sector_div(stripe, rs->set.data_devs); + + switch (rs->set.raid_type->level) { + case raid4: + addr->pi = rs->set.pi; + goto check_shift_di; + case raid5: + tmp = stripe; + addr->pi = sector_div(tmp, rs->set.raid_devs); + + switch (rs->set.raid_type->algorithm) { + case left_asym: /* Left asymmetric. */ + addr->pi = rs->set.data_devs - addr->pi; + case right_asym: /* Right asymmetric. */ +check_shift_di: + if (addr->di >= addr->pi) + addr->di++; + break; + case left_sym: /* Left symmetric. */ + addr->pi = rs->set.data_devs - addr->pi; + case right_sym: /* Right symmetric. */ + addr->di = (addr->pi + addr->di + 1) % + rs->set.raid_devs; + break; + case none: /* Ain't happen: RAID4 algorithm placeholder. */ + BUG(); + } + } + + /* + * Start offset of the stripes chunk on any single device of the RAID + * set, adjusted in case io size differs from chunk size. + */ + addr->key = (stripe << rs->set.chunk_shift) + + (sector & rs->set.io_inv_mask); + return addr; +} + +/* + * Copy data across between stripe pages and bio vectors. + * + * Pay attention to data alignment in stripe and bio pages. + */ +static void bio_copy_page_list(int rw, struct stripe *stripe, + struct page_list *pl, struct bio *bio) +{ + unsigned i, page_offset; + void *page_addr; + struct raid_set *rs = RS(stripe->sc); + struct bio_vec *bv; + + /* Get start page in page list for this sector. */ + i = (bio->bi_sector & rs->set.io_mask) / SECTORS_PER_PAGE; + pl = pl_elem(pl, i); + BUG_ON(!pl); + BUG_ON(!pl->page); + + page_addr = page_address(pl->page); + page_offset = to_bytes(bio->bi_sector & (SECTORS_PER_PAGE - 1)); + + /* Walk all segments and copy data across between bio_vecs and pages. */ + bio_for_each_segment(bv, bio, i) { + int len = bv->bv_len, size; + unsigned bio_offset = 0; + void *bio_addr = __bio_kmap_atomic(bio, i, KM_USER0); +redo: + size = (page_offset + len > PAGE_SIZE) ? + PAGE_SIZE - page_offset : len; + + if (rw == READ) + memcpy(bio_addr + bio_offset, + page_addr + page_offset, size); + else + memcpy(page_addr + page_offset, + bio_addr + bio_offset, size); + + page_offset += size; + if (page_offset == PAGE_SIZE) { + /* + * We reached the end of the chunk page -> + * need to refer to the next one to copy more data. + */ + len -= size; + if (len) { + /* Get next page. */ + pl = pl->next; + BUG_ON(!pl); + BUG_ON(!pl->page); + page_addr = page_address(pl->page); + page_offset = 0; + bio_offset += size; + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_BIO_COPY_PL_NEXT); + goto redo; + } + } + + __bio_kunmap_atomic(bio_addr, KM_USER0); + } +} + +/* + * Xor optimization macros. + */ +/* Xor data pointer declaration and initialization macros. */ +#define DECLARE_2 unsigned long *d0 = data[0], *d1 = data[1] +#define DECLARE_3 DECLARE_2, *d2 = data[2] +#define DECLARE_4 DECLARE_3, *d3 = data[3] +#define DECLARE_5 DECLARE_4, *d4 = data[4] +#define DECLARE_6 DECLARE_5, *d5 = data[5] +#define DECLARE_7 DECLARE_6, *d6 = data[6] +#define DECLARE_8 DECLARE_7, *d7 = data[7] + +/* Xor unrole macros. */ +#define D2(n) d0[n] = d0[n] ^ d1[n] +#define D3(n) D2(n) ^ d2[n] +#define D4(n) D3(n) ^ d3[n] +#define D5(n) D4(n) ^ d4[n] +#define D6(n) D5(n) ^ d5[n] +#define D7(n) D6(n) ^ d6[n] +#define D8(n) D7(n) ^ d7[n] + +#define X_2(macro, offset) macro(offset); macro(offset + 1); +#define X_4(macro, offset) X_2(macro, offset); X_2(macro, offset + 2); +#define X_8(macro, offset) X_4(macro, offset); X_4(macro, offset + 4); +#define X_16(macro, offset) X_8(macro, offset); X_8(macro, offset + 8); +#define X_32(macro, offset) X_16(macro, offset); X_16(macro, offset + 16); +#define X_64(macro, offset) X_32(macro, offset); X_32(macro, offset + 32); + +/* Define a _xor_#chunks_#xors_per_run() function. */ +#define _XOR(chunks, xors_per_run) \ +static void _xor ## chunks ## _ ## xors_per_run(unsigned long **data) \ +{ \ + unsigned end = XOR_SIZE / sizeof(data[0]), i; \ + DECLARE_ ## chunks; \ +\ + for (i = 0; i < end; i += xors_per_run) { \ + X_ ## xors_per_run(D ## chunks, i); \ + } \ +} + +/* Define xor functions for 2 - 8 chunks and xors per run. */ +#define MAKE_XOR_PER_RUN(xors_per_run) \ + _XOR(2, xors_per_run); _XOR(3, xors_per_run); \ + _XOR(4, xors_per_run); _XOR(5, xors_per_run); \ + _XOR(6, xors_per_run); _XOR(7, xors_per_run); \ + _XOR(8, xors_per_run); + +MAKE_XOR_PER_RUN(8) /* Define _xor_*_8() functions. */ +MAKE_XOR_PER_RUN(16) /* Define _xor_*_16() functions. */ +MAKE_XOR_PER_RUN(32) /* Define _xor_*_32() functions. */ +MAKE_XOR_PER_RUN(64) /* Define _xor_*_64() functions. */ + +#define MAKE_XOR(xors_per_run) \ +struct { \ + void (*f)(unsigned long **); \ +} static xor_funcs ## xors_per_run[] = { \ + { NULL }, /* NULL pointers to optimize indexing in xor(). */ \ + { NULL }, \ + { _xor2_ ## xors_per_run }, \ + { _xor3_ ## xors_per_run }, \ + { _xor4_ ## xors_per_run }, \ + { _xor5_ ## xors_per_run }, \ + { _xor6_ ## xors_per_run }, \ + { _xor7_ ## xors_per_run }, \ + { _xor8_ ## xors_per_run }, \ +}; \ +\ +static void xor_ ## xors_per_run(unsigned n, unsigned long **data) \ +{ \ + /* Call respective function for amount of chunks. */ \ + xor_funcs ## xors_per_run[n].f(data); \ +} + +/* Define xor_8() - xor_64 functions. */ +MAKE_XOR(8) +MAKE_XOR(16) +MAKE_XOR(32) +MAKE_XOR(64) + +/* Maximum number of chunks, which can be xor'ed in one go. */ +#define XOR_CHUNKS_MAX (ARRAY_SIZE(xor_funcs8) - 1) + +static void xor_blocks_wrapper(unsigned n, unsigned long **data) +{ + BUG_ON(n < 2 || n > MAX_XOR_BLOCKS + 1); + xor_blocks(n - 1, XOR_SIZE, (void *) data[0], (void **) data + 1); +} + +struct xor_func { + xor_function_t f; + const char *name; +} static xor_funcs[] = { + { xor_8, "xor_8" }, + { xor_16, "xor_16" }, + { xor_32, "xor_32" }, + { xor_64, "xor_64" }, + { xor_blocks_wrapper, "xor_blocks" }, +}; + +/* + * Check, if chunk has to be xored in/out: + * + * o if writes are queued + * o if writes are merged + * o if stripe is to be reconstructed + * o if recovery stripe + */ +static inline int chunk_must_xor(struct stripe_chunk *chunk) +{ + if (ChunkUptodate(chunk)) { + BUG_ON(!bio_list_empty(BL_CHUNK(chunk, WRITE_QUEUED)) && + !bio_list_empty(BL_CHUNK(chunk, WRITE_MERGED))); + + if (!bio_list_empty(BL_CHUNK(chunk, WRITE_QUEUED)) || + !bio_list_empty(BL_CHUNK(chunk, WRITE_MERGED))) + return 1; + + if (StripeReconstruct(chunk->stripe) || + StripeRecover(chunk->stripe)) + return 1; + } + + return 0; +} + +/* + * Calculate crc. + * + * This indexes into the chunks of a stripe and their pages. + * + * All chunks will be xored into the indexed (@pi) + * chunk in maximum groups of xor.chunks. + * + */ +static void xor(struct stripe *stripe, unsigned pi, unsigned sector) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned max_chunks = rs->xor.chunks, n = 1, + o = sector / SECTORS_PER_PAGE, /* Offset into the page_list. */ + p = rs->set.raid_devs; + unsigned long **d = rs->data; + xor_function_t xor_f = rs->xor.f->f; + + BUG_ON(sector > stripe->io.size); + + /* Address of parity page to xor into. */ + d[0] = page_address(pl_elem(PL(stripe, pi), o)->page); + + while (p--) { + /* Preset pointers to data pages. */ + if (p != pi && chunk_must_xor(CHUNK(stripe, p))) + d[n++] = page_address(pl_elem(PL(stripe, p), o)->page); + + /* If max chunks -> xor. */ + if (n == max_chunks) { + xor_f(n, d); + n = 1; + } + } + + /* If chunks -> xor. */ + if (n > 1) + xor_f(n, d); +} + +/* Common xor loop through all stripe page lists. */ +static void common_xor(struct stripe *stripe, sector_t count, + unsigned off, unsigned pi) +{ + unsigned sector; + + BUG_ON(!count); + for (sector = off; sector < count; sector += SECTORS_PER_PAGE) + xor(stripe, pi, sector); + + /* Set parity page uptodate and clean. */ + chunk_set(CHUNK(stripe, pi), CLEAN); + atomic_inc(RS(stripe->sc)->stats + S_XORS); /* REMOVEME: statistics. */ +} + +/* + * Calculate parity sectors on intact stripes. + * + * Need to calculate raid address for recover stripe, because its + * chunk sizes differs and is typically larger than io chunk size. + */ +static void parity_xor(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned chunk_size = rs->set.chunk_size, io_size = stripe->io.size, + xor_size = chunk_size > io_size ? io_size : chunk_size; + sector_t off; + + /* This can be the recover stripe with a larger io size. */ + for (off = 0; off < io_size; off += xor_size) { + /* + * Recover stripe is likely bigger than regular io + * ones and has no precalculated parity disk index -> + * need to calculate RAID address. + */ + if (unlikely(StripeRecover(stripe))) { + struct raid_address addr; + + raid_address(rs, + (stripe->key + off) * rs->set.data_devs, + &addr); + stripe->idx.parity = addr.pi; + stripe_zero_pl_part(stripe, addr.pi, off, xor_size); + } + + common_xor(stripe, xor_size, off, stripe->idx.parity); + chunk_set(CHUNK(stripe, stripe->idx.parity), DIRTY); + } +} + +/* Reconstruct missing chunk. */ +static void stripe_reconstruct(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + int p = rs->set.raid_devs, pr = stripe->idx.recover; + + BUG_ON(pr < 0); + + /* Check if all but the chunk to be reconstructed are uptodate. */ + while (p--) + BUG_ON(p != pr && !ChunkUptodate(CHUNK(stripe, p))); + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + (RSDegraded(rs) ? S_RECONSTRUCT_EI : + S_RECONSTRUCT_DEV)); + /* Zero chunk to be reconstructed. */ + stripe_zero_chunk(stripe, pr); + common_xor(stripe, stripe->io.size, 0, pr); + stripe->idx.recover = -1; +} + +/* + * Recovery io throttling + */ +/* Conditionally reset io counters. */ +static int recover_io_reset(struct raid_set *rs) +{ + unsigned long j = jiffies; + + /* Pay attention to jiffies overflows. */ + if (j > rs->recover.last_jiffies + HZ / 20 || + j < rs->recover.last_jiffies) { + atomic_set(rs->recover.io_count + IO_WORK, 0); + atomic_set(rs->recover.io_count + IO_RECOVER, 0); + rs->recover.last_jiffies = j; + return 1; + } + + return 0; +} + +/* Count ios. */ +static void recover_io_count(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + + recover_io_reset(rs); + atomic_inc(rs->recover.io_count + + (StripeRecover(stripe) ? IO_RECOVER : IO_WORK)); +} + +/* Try getting a stripe either from the hash or from the LRU list. */ +static struct stripe *stripe_find(struct raid_set *rs, + struct raid_address *addr) +{ + int r; + struct stripe_cache *sc = &rs->sc; + struct stripe *stripe; + + /* Try stripe from hash. */ + stripe = stripe_lookup(sc, addr->key); + if (stripe) { + r = stripe_get(stripe); + if (r) + goto get_lock_failed; + + atomic_inc(rs->stats + S_HITS_1ST); /* REMOVEME: statistics. */ + } else { + /* Not in hash -> try to get an LRU stripe. */ + stripe = stripe_lru_pop(sc); + if (stripe) { + /* + * An LRU stripe may not be referenced + * and may never have ios pending! + */ + BUG_ON(stripe_ref(stripe)); + BUG_ON(stripe_io_ref(stripe)); + + /* Remove from hash if on before reuse. */ + stripe_hash_del(stripe); + + /* Invalidate before reinserting with changed key. */ + stripe_invalidate(stripe); + + stripe->key = addr->key; + stripe->region = dm_rh_sector_to_region(rs->recover.rh, + addr->key); + stripe->idx.parity = addr->pi; + r = stripe_get(stripe); + if (r) + goto get_lock_failed; + + /* Insert stripe into the stripe hash. */ + stripe_insert(&sc->hash, stripe); + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_INSCACHE); + } + } + + return stripe; + +get_lock_failed: + stripe_put(stripe); + return NULL; +} + +/* + * Process end io + * + * I need to do it here because I can't in interrupt + */ +/* End io all bios on a bio list. */ +static void bio_list_endio(struct stripe *stripe, struct bio_list *bl, + int p, int error) +{ + struct raid_set *rs = RS(stripe->sc); + struct bio *bio; + struct page_list *pl = PL(stripe, p); + struct stripe_chunk *chunk = CHUNK(stripe, p); + + /* Update region counters. */ + while ((bio = bio_list_pop(bl))) { + if (bio_data_dir(bio) == WRITE) + /* Drop io pending count for any writes. */ + dm_rh_dec(rs->recover.rh, stripe->region); + else if (!error) + /* Copy data accross. */ + bio_copy_page_list(READ, stripe, pl, bio); + + bio_endio(bio, error); + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + (bio_data_dir(bio) == READ ? + S_BIOS_ENDIO_READ : S_BIOS_ENDIO_WRITE)); + + chunk_put(chunk); + stripe_put(stripe); + io_put(rs); /* Wake any suspend waiters on last bio. */ + } +} + +/* + * End io all reads/writes on a stripe copying + * read data accross from stripe to bios and + * decrementing region counters for writes. + * + * Processing of ios depeding on state: + * o no chunk error -> endio ok + * o degraded: + * - chunk error and read -> ignore to be requeued + * - chunk error and write -> endio ok + * o dead (more than parity_devs failed) and chunk_error-> endio failed + */ +static void stripe_endio(int rw, struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned p = rs->set.raid_devs; + int write = (rw != READ); + + while (p--) { + struct stripe_chunk *chunk = CHUNK(stripe, p); + struct bio_list *bl; + + BUG_ON(ChunkLocked(chunk)); + + bl = BL_CHUNK(chunk, rw); + if (bio_list_empty(bl)) + continue; + + if (unlikely(ChunkError(chunk) || !ChunkUptodate(chunk))) { + /* RAID set dead. */ + if (unlikely(RSDead(rs))) + bio_list_endio(stripe, bl, p, -EIO); + /* RAID set degraded. */ + else if (write) + bio_list_endio(stripe, bl, p, 0); + } else { + BUG_ON(!RSDegraded(rs) && ChunkDirty(chunk)); + bio_list_endio(stripe, bl, p, 0); + } + } +} + +/* Fail all ios hanging off all bio lists of a stripe. */ +static void stripe_fail_io(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned p = rs->set.raid_devs; + + while (p--) { + struct stripe_chunk *chunk = CHUNK(stripe, p); + int i = ARRAY_SIZE(chunk->bl); + + /* Fail all bios on all bio lists of the stripe. */ + while (i--) { + struct bio_list *bl = chunk->bl + i; + + if (!bio_list_empty(bl)) + bio_list_endio(stripe, bl, p, -EIO); + } + } + + /* Put stripe on LRU list. */ + BUG_ON(stripe_io_ref(stripe)); + BUG_ON(stripe_ref(stripe)); +} + +/* Unlock all required chunks. */ +static void stripe_chunks_unlock(struct stripe *stripe) +{ + unsigned p = RS(stripe->sc)->set.raid_devs; + struct stripe_chunk *chunk; + + while (p--) { + chunk = CHUNK(stripe, p); + + if (TestClearChunkUnlock(chunk)) + ClearChunkLocked(chunk); + } +} + +/* + * Queue reads and writes to a stripe by hanging + * their bios off the stripesets read/write lists. + */ +static int stripe_queue_bio(struct raid_set *rs, struct bio *bio, + struct bio_list *reject) +{ + struct raid_address addr; + struct stripe *stripe; + + stripe = stripe_find(rs, raid_address(rs, bio->bi_sector, &addr)); + if (stripe) { + int r = 0, rw = bio_data_dir(bio); + + /* Distinguish reads and writes. */ + bio_list_add(BL(stripe, addr.di, rw), bio); + + if (rw == READ) + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_BIOS_ADDED_READ); + else { + /* Inrement pending write count on region. */ + dm_rh_inc(rs->recover.rh, stripe->region); + r = 1; + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_BIOS_ADDED_WRITE); + } + + /* + * Put on io (flush) list in case of + * initial bio queued to chunk. + */ + if (chunk_get(CHUNK(stripe, addr.di)) == 1) + stripe_flush_add(stripe); + + return r; + } + + /* Got no stripe from cache or failed to lock it -> reject bio. */ + bio_list_add(reject, bio); + atomic_inc(rs->stats + S_IOS_POST); /* REMOVEME: statistics. */ + return 0; +} + +/* + * Handle all stripes by handing them to the daemon, because we can't + * map their chunk pages to copy the data in interrupt context. + * + * We don't want to handle them here either, while interrupts are disabled. + */ + +/* Read/write endio function for dm-io (interrupt context). */ +static void endio(unsigned long error, void *context) +{ + struct stripe_chunk *chunk = context; + + if (unlikely(error)) { + chunk_set(chunk, ERROR); + /* REMOVEME: statistics. */ + atomic_inc(RS(chunk->stripe->sc)->stats + S_STRIPE_ERROR); + } else + chunk_set(chunk, CLEAN); + + /* + * For recovery stripes, I need to reset locked locked + * here, because those aren't processed in do_endios(). + */ + if (unlikely(StripeRecover(chunk->stripe))) + ClearChunkLocked(chunk); + else + SetChunkUnlock(chunk); + + /* Indirectly puts stripe on cache's endio list via stripe_io_put(). */ + stripe_put_references(chunk->stripe); +} + +/* Read/Write a chunk asynchronously. */ +static void stripe_chunk_rw(struct stripe *stripe, unsigned p) +{ + struct stripe_cache *sc = stripe->sc; + struct raid_set *rs = RS(sc); + struct dm_mem_cache_object *obj = stripe->obj + p; + struct page_list *pl = obj->pl; + struct stripe_chunk *chunk = CHUNK(stripe, p); + struct raid_dev *dev = rs->dev + p; + struct dm_io_region io = { + .bdev = dev->dev->bdev, + .sector = stripe->key, + .count = stripe->io.size, + }; + struct dm_io_request control = { + .bi_rw = ChunkDirty(chunk) ? WRITE : READ, + .mem = { + .type = DM_IO_PAGE_LIST, + .ptr.pl = pl, + .offset = 0, + }, + .notify = { + .fn = endio, + .context = chunk, + }, + .client = StripeRecover(stripe) ? rs->recover.dm_io_client : + sc->dm_io_client, + }; + + BUG_ON(ChunkLocked(chunk)); + BUG_ON(!ChunkUptodate(chunk) && ChunkDirty(chunk)); + BUG_ON(ChunkUptodate(chunk) && !ChunkDirty(chunk)); + + /* + * Don't rw past end of device, which can happen, because + * typically sectors_per_dev isn't divisible by io_size. + */ + if (unlikely(io.sector + io.count > rs->set.sectors_per_dev)) + io.count = rs->set.sectors_per_dev - io.sector; + + BUG_ON(!io.count); + io.sector += dev->start; /* Add . */ + if (RSRecover(rs)) + recover_io_count(stripe); /* Recovery io accounting. */ + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + (ChunkDirty(chunk) ? S_DM_IO_WRITE : + S_DM_IO_READ)); + SetChunkLocked(chunk); + SetDevIoQueued(dev); + BUG_ON(dm_io(&control, 1, &io, NULL)); +} + +/* + * Write dirty or read not uptodate page lists of a stripe. + */ +static int stripe_chunks_rw(struct stripe *stripe) +{ + int r; + struct raid_set *rs = RS(stripe->sc); + + /* + * Increment the pending count on the stripe + * first, so that we don't race in endio(). + * + * An inc (IO) is needed for any chunk unless !ChunkIo(chunk): + * + * o not uptodate + * o dirtied by writes merged + * o dirtied by parity calculations + */ + r = for_each_io_dev(stripe, stripe_get_references); + if (r) { + /* Io needed: chunks are either not uptodate or dirty. */ + int max; /* REMOVEME: */ + struct stripe_cache *sc = &rs->sc; + + /* Submit actual io. */ + for_each_io_dev(stripe, stripe_chunk_rw); + + /* REMOVEME: statistics */ + max = sc_active(sc); + if (atomic_read(&sc->active_stripes_max) < max) + atomic_set(&sc->active_stripes_max, max); + + atomic_inc(rs->stats + S_FLUSHS); + /* END REMOVEME: statistics */ + } + + return r; +} + +/* Merge in all writes hence dirtying respective chunks. */ +static void stripe_merge_writes(struct stripe *stripe) +{ + unsigned p = RS(stripe->sc)->set.raid_devs; + + while (p--) { + struct stripe_chunk *chunk = CHUNK(stripe, p); + struct bio_list *write = BL_CHUNK(chunk, WRITE_QUEUED); + + if (!bio_list_empty(write)) { + struct bio *bio; + struct page_list *pl = stripe->obj[p].pl; + + /* + * We can play with the lists without holding a lock, + * because it is just us accessing them anyway. + */ + bio_list_for_each(bio, write) + bio_copy_page_list(WRITE, stripe, pl, bio); + + bio_list_merge(BL_CHUNK(chunk, WRITE_MERGED), write); + bio_list_init(write); + chunk_set(chunk, DIRTY); + } + } +} + +/* Queue all writes to get merged. */ +static int stripe_queue_writes(struct stripe *stripe) +{ + int r = 0; + unsigned p = RS(stripe->sc)->set.raid_devs; + + while (p--) { + struct stripe_chunk *chunk = CHUNK(stripe, p); + struct bio_list *write = BL_CHUNK(chunk, WRITE); + + if (!bio_list_empty(write)) { + bio_list_merge(BL_CHUNK(chunk, WRITE_QUEUED), write); + bio_list_init(write); +SetChunkIo(chunk); + r = 1; + } + } + + return r; +} + + +/* Check, if a chunk gets completely overwritten. */ +static int stripe_check_chunk_overwrite(struct stripe *stripe, unsigned p) +{ + unsigned sectors = 0; + struct bio *bio; + struct bio_list *bl = BL(stripe, p, WRITE_QUEUED); + + bio_list_for_each(bio, bl) + sectors += bio_sectors(bio); + + BUG_ON(sectors > RS(stripe->sc)->set.io_size); + return sectors == RS(stripe->sc)->set.io_size; +} + +/* + * Avoid io on broken/reconstructed drive in order to + * reconstruct date on endio. + * + * (*1*) We set StripeReconstruct() in here, so that _do_endios() + * will trigger a reconstruct call before resetting it. + */ +static int stripe_chunk_set_io_flags(struct stripe *stripe, int pr) +{ + struct stripe_chunk *chunk = CHUNK(stripe, pr); + + /* + * Allow io on all chunks but the indexed one, + * because we're either degraded or prohibit it + * on the one for later reconstruction. + */ + /* Includes ClearChunkIo(), ClearChunkUptodate(). */ + stripe_chunk_invalidate(chunk); + stripe->idx.recover = pr; + SetStripeReconstruct(stripe); + + /* REMOVEME: statistics. */ + atomic_inc(RS(stripe->sc)->stats + S_PROHIBITCHUNKIO); + return -EPERM; +} + +/* Chunk locked/uptodate and device failed tests. */ +static struct stripe_chunk * +stripe_chunk_check(struct stripe *stripe, unsigned p, unsigned *chunks_uptodate) +{ + struct raid_set *rs = RS(stripe->sc); + struct stripe_chunk *chunk = CHUNK(stripe, p); + + /* Can't access active chunks. */ + if (ChunkLocked(chunk)) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_CHUNK_LOCKED); + return NULL; + } + + /* Can't access broken devive. */ + if (ChunkError(chunk) || DevFailed(rs->dev + p)) + return NULL; + + /* Can access uptodate chunks. */ + if (ChunkUptodate(chunk)) { + (*chunks_uptodate)++; + return NULL; + } + + return chunk; +} + +/* + * Degraded/reconstruction mode. + * + * Check stripe state to figure which chunks don't need IO. + * + * Returns 0 for fully operational, -EPERM for degraded/resynchronizing. + */ +static int stripe_check_reconstruct(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + + if (RSDead(rs)) { + ClearStripeReconstruct(stripe); + ClearStripeReconstructed(stripe); + stripe_allow_io(stripe); + return 0; + } + + /* Avoid further reconstruction setting, when already set. */ + if (StripeReconstruct(stripe)) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_RECONSTRUCT_SET); + return -EBUSY; + } + + /* Initially allow io on all chunks. */ + stripe_allow_io(stripe); + + /* Return if stripe is already reconstructed. */ + if (StripeReconstructed(stripe)) { + atomic_inc(rs->stats + S_RECONSTRUCTED); + return 0; + } + + /* + * Degraded/reconstruction mode (device failed) -> + * avoid io on the failed device. + */ + if (unlikely(RSDegraded(rs))) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_DEGRADED); + /* Allow IO on all devices but the dead one. */ + BUG_ON(rs->set.ei < 0); + return stripe_chunk_set_io_flags(stripe, rs->set.ei); + } else { + int sync, pi = dev_for_parity(stripe, &sync); + + /* + * Reconstruction mode (ie. a particular (replaced) device or + * some (rotating) parity chunk is being resynchronized) -> + * o make sure all needed chunks are read in + * o writes are allowed to go through + */ + if (!sync) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_NOSYNC); + /* Allow IO on all devs but the one to reconstruct. */ + return stripe_chunk_set_io_flags(stripe, pi); + } + } + + return 0; +} + +/* + * Check, if stripe is ready to merge writes. + * I.e. if all chunks present to allow to merge bios. + * + * We prohibit io on: + * + * o chunks without bios + * o chunks which get completely written over + */ +static int stripe_merge_possible(struct stripe *stripe, int nosync) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned chunks_overwrite = 0, chunks_prohibited = 0, + chunks_uptodate = 0, p = rs->set.raid_devs; + + /* Walk all chunks. */ + while (p--) { + struct stripe_chunk *chunk; + + /* Prohibit io on broken devices. */ + if (DevFailed(rs->dev + p)) { + chunk = CHUNK(stripe, p); + goto prohibit_io; + } + + /* We can't optimize any further if no chunk. */ + chunk = stripe_chunk_check(stripe, p, &chunks_uptodate); + if (!chunk || nosync) + continue; + + /* + * We have a chunk, which is not uptodate. + * + * If this is not parity and we don't have + * reads queued, we can optimize further. + */ + if (p != stripe->idx.parity && + bio_list_empty(BL_CHUNK(chunk, READ)) && + bio_list_empty(BL_CHUNK(chunk, WRITE_MERGED))) { + if (bio_list_empty(BL_CHUNK(chunk, WRITE_QUEUED))) + goto prohibit_io; + else if (RSCheckOverwrite(rs) && + stripe_check_chunk_overwrite(stripe, p)) + /* Completely overwritten chunk. */ + chunks_overwrite++; + } + + /* Allow io for chunks with bios and overwritten ones. */ + SetChunkIo(chunk); + continue; + +prohibit_io: + /* No io for broken devices or for chunks w/o bios. */ + ClearChunkIo(chunk); + chunks_prohibited++; + /* REMOVEME: statistics. */ + atomic_inc(RS(stripe->sc)->stats + S_PROHIBITCHUNKIO); + } + + /* All data chunks will get written over. */ + if (chunks_overwrite == rs->set.data_devs) + atomic_inc(rs->stats + S_OVERWRITE); /* REMOVEME: statistics.*/ + else if (chunks_uptodate + chunks_prohibited < rs->set.raid_devs) { + /* We don't have enough chunks to merge. */ + atomic_inc(rs->stats + S_CANT_MERGE); /* REMOVEME: statistics.*/ + return -EPERM; + } + + /* + * If we have all chunks up to date or overwrite them, we + * just zero the parity chunk and let stripe_rw() recreate it. + */ + if (chunks_uptodate == rs->set.raid_devs || + chunks_overwrite == rs->set.data_devs) { + stripe_zero_chunk(stripe, stripe->idx.parity); + BUG_ON(StripeReconstruct(stripe)); + SetStripeReconstruct(stripe); /* Enforce xor in caller. */ + } else { + /* + * With less chunks, we xor parity out. + * + * (*4*) We rely on !StripeReconstruct() in chunk_must_xor(), + * so that only chunks with queued or merged writes + * are being xored. + */ + parity_xor(stripe); + } + + /* + * We do have enough chunks to merge. + * All chunks are uptodate or get written over. + */ + atomic_inc(rs->stats + S_CAN_MERGE); /* REMOVEME: statistics. */ + return 0; +} + +/* + * Avoid reading chunks in case we're fully operational. + * + * We prohibit io on any chunks without bios but the parity chunk. + */ +static void stripe_avoid_reads(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + unsigned dummy = 0, p = rs->set.raid_devs; + + /* Walk all chunks. */ + while (p--) { + struct stripe_chunk *chunk = + stripe_chunk_check(stripe, p, &dummy); + + if (!chunk) + continue; + + /* If parity or any bios pending -> allow io. */ + if (chunk_ref(chunk) || p == stripe->idx.parity) + SetChunkIo(chunk); + else { + ClearChunkIo(chunk); + /* REMOVEME: statistics. */ + atomic_inc(RS(stripe->sc)->stats + S_PROHIBITCHUNKIO); + } + } +} + +/* + * Read/write a stripe. + * + * All stripe read/write activity goes through this function + * unless recovery, which has to call stripe_chunk_rw() directly. + * + * Make sure we don't try already merged stripes in order + * to avoid data corruption. + * + * Check the state of the RAID set and if degraded (or + * resynchronizing for reads), read in all other chunks but + * the one on the dead/resynchronizing device in order to be + * able to reconstruct the missing one in _do_endios(). + * + * Can be called on active stripes in order + * to dispatch new io on inactive chunks. + * + * States to cover: + * o stripe to read and/or write + * o stripe with error to reconstruct + */ +static void stripe_rw(struct stripe *stripe) +{ + int nosync, r; + struct raid_set *rs = RS(stripe->sc); + + /* + * Check, if a chunk needs to be reconstructed + * because of a degraded set or a region out of sync. + */ + nosync = stripe_check_reconstruct(stripe); + switch (nosync) { + case -EBUSY: + return; /* Wait for stripe reconstruction to finish. */ + case -EPERM: + goto io; + } + + /* + * If we don't have merged writes pending, we can schedule + * queued writes to be merged next without corrupting data. + */ + if (!StripeMerged(stripe)) { + r = stripe_queue_writes(stripe); + if (r) + /* Writes got queued -> flag RBW. */ + SetStripeRBW(stripe); + } + + /* + * Merge all writes hanging off uptodate/overwritten + * chunks of the stripe. + */ + if (StripeRBW(stripe)) { + r = stripe_merge_possible(stripe, nosync); + if (!r) { /* Merge possible. */ + struct stripe_chunk *chunk; + + /* + * I rely on valid parity in order + * to xor a fraction of chunks out + * of parity and back in. + */ + stripe_merge_writes(stripe); /* Merge writes in. */ + parity_xor(stripe); /* Update parity. */ + ClearStripeReconstruct(stripe); /* Reset xor enforce. */ + SetStripeMerged(stripe); /* Writes merged. */ + ClearStripeRBW(stripe); /* Disable RBW. */ + + /* + * REMOVEME: sanity check on parity chunk + * states after writes got merged. + */ + chunk = CHUNK(stripe, stripe->idx.parity); + BUG_ON(ChunkLocked(chunk)); + BUG_ON(!ChunkUptodate(chunk)); + BUG_ON(!ChunkDirty(chunk)); + BUG_ON(!ChunkIo(chunk)); + } + } else if (!nosync && !StripeMerged(stripe)) + /* Read avoidance if not degraded/resynchronizing/merged. */ + stripe_avoid_reads(stripe); + +io: + /* Now submit any reads/writes for non-uptodate or dirty chunks. */ + r = stripe_chunks_rw(stripe); + if (!r) { + /* + * No io submitted because of chunk io + * prohibited or locked chunks/failed devices + * -> push to end io list for processing. + */ + stripe_endio_push(stripe); + atomic_inc(rs->stats + S_NO_RW); /* REMOVEME: statistics. */ + } +} + +/* + * Recovery functions + */ +/* Read a stripe off a raid set for recovery. */ +static int stripe_recover_read(struct stripe *stripe, int pi) +{ + BUG_ON(stripe_io_ref(stripe)); + + /* Invalidate all chunks so that they get read in. */ + stripe_chunks_invalidate(stripe); + stripe_allow_io(stripe); /* Allow io on all recovery chunks. */ + + /* + * If we are reconstructing a perticular device, we can avoid + * reading the respective chunk in, because we're going to + * reconstruct it anyway. + * + * We can't do that for resynchronization of rotating parity, + * because the recovery stripe chunk size is typically larger + * than the sets chunk size. + */ + if (pi > -1) + ClearChunkIo(CHUNK(stripe, pi)); + + return stripe_chunks_rw(stripe); +} + +/* Write a stripe to a raid set for recovery. */ +static int stripe_recover_write(struct stripe *stripe, int pi) +{ + BUG_ON(stripe_io_ref(stripe)); + + /* + * If this is a reconstruct of a particular device, then + * reconstruct the respective chunk, else create parity chunk. + */ + if (pi > -1) { + stripe_zero_chunk(stripe, pi); + common_xor(stripe, stripe->io.size, 0, pi); + chunk_set(CHUNK(stripe, pi), DIRTY); + } else + parity_xor(stripe); + + return stripe_chunks_rw(stripe); +} + +/* Read/write a recovery stripe. */ +static int stripe_recover_rw(struct stripe *stripe) +{ + int r = 0, sync = 0; + + /* Read/write flip-flop. */ + if (TestClearStripeRBW(stripe)) { + SetStripeMerged(stripe); + stripe->key = stripe->recover->pos; + r = stripe_recover_read(stripe, dev_for_parity(stripe, &sync)); + BUG_ON(!r); + } else if (TestClearStripeMerged(stripe)) { + r = stripe_recover_write(stripe, dev_for_parity(stripe, &sync)); + BUG_ON(!r); + } + + BUG_ON(sync); + return r; +} + +/* Recover bandwidth available ?. */ +static int recover_bandwidth(struct raid_set *rs) +{ + int r, work; + + /* On reset or when bios delayed -> allow recovery. */ + r = recover_io_reset(rs); + if (r || RSBandwidth(rs)) + goto out; + + work = atomic_read(rs->recover.io_count + IO_WORK); + if (work) { + /* Pay attention to larger recover stripe size. */ + int recover = atomic_read(rs->recover.io_count + IO_RECOVER) * + rs->recover.io_size / rs->set.io_size; + + /* + * Don't use more than given bandwidth + * of the work io for recovery. + */ + if (recover > work / rs->recover.bandwidth_work) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_NO_BANDWIDTH); + return 0; + } + } + +out: + atomic_inc(rs->stats + S_BANDWIDTH); /* REMOVEME: statistics. */ + return 1; +} + +/* Try to get a region to recover. */ +static int stripe_recover_get_region(struct stripe *stripe) +{ + struct raid_set *rs = RS(stripe->sc); + struct recover *rec = &rs->recover; + struct recover_addr *addr = stripe->recover; + struct dm_dirty_log *dl = rec->dl; + struct dm_rh_client *rh = rec->rh; + + BUG_ON(!dl); + BUG_ON(!rh); + + /* Return, that we have region first to finish it during suspension. */ + if (addr->reg) + return 1; + + if (RSSuspend(rs)) + return -EPERM; + + if (dl->type->get_sync_count(dl) >= rec->nr_regions) + return -ENOENT; + + /* If we don't have enough bandwidth, we don't proceed recovering. */ + if (!recover_bandwidth(rs)) + return -EAGAIN; + + /* Start quiescing a region. */ + dm_rh_recovery_prepare(rh); + addr->reg = dm_rh_recovery_start(rh); + if (!addr->reg) + return -EAGAIN; + + addr->pos = dm_rh_region_to_sector(rh, dm_rh_get_region_key(addr->reg)); + addr->end = addr->pos + dm_rh_get_region_size(rh); + + /* + * Take one global io reference out for the + * whole region, which is going to be released + * when the region is completely done with. + */ + io_get(rs); + return 0; +} + +/* Update region hash state. */ +enum recover_type { REC_FAILURE = 0, REC_SUCCESS = 1 }; +static void recover_rh_update(struct stripe *stripe, enum recover_type success) +{ + struct recover_addr *addr = stripe->recover; + struct raid_set *rs = RS(stripe->sc); + struct recover *rec = &rs->recover; + + if (!addr->reg) { + DMERR("%s- Called w/o region", __func__); + return; + } + + dm_rh_recovery_end(addr->reg, success); + if (success) + rec->nr_regions_recovered++; + + addr->reg = NULL; + + /* + * Completely done with this region -> + * release the 1st io reference. + */ + io_put(rs); +} + +/* Set start of recovery state. */ +static void set_start_recovery(struct raid_set *rs) +{ + /* Initialize recovery. */ + rs->recover.start_jiffies = jiffies; + rs->recover.end_jiffies = 0; +} + +/* Set end of recovery state. */ +static void set_end_recovery(struct raid_set *rs) +{ + ClearRSRecover(rs); + rs->set.dev_to_init = -1; + + /* Check for jiffies overrun. */ + rs->recover.end_jiffies = jiffies; + if (rs->recover.end_jiffies < rs->recover.start_jiffies) + rs->recover.end_jiffies = ~0; +} + +/* Handle recovery on one recovery stripe. */ +static int _do_recovery(struct stripe *stripe) +{ + int r; + struct raid_set *rs = RS(stripe->sc); + struct recover_addr *addr = stripe->recover; + + /* If recovery is active -> return. */ + if (stripe_io_ref(stripe)) + return 1; + + /* IO error is fatal for recovery -> stop it. */ + if (unlikely(StripeError(stripe))) + goto err; + + /* Recovery end required. */ + if (!RSRecover(rs)) + goto err; + + /* Get a region to recover. */ + r = stripe_recover_get_region(stripe); + switch (r) { + case 0: /* Got a new region: flag initial read before write. */ + SetStripeRBW(stripe); + case 1: /* Have a region in the works. */ + break; + case -EAGAIN: + /* No bandwidth/quiesced region yet, try later. */ + if (!io_ref(rs)) + wake_do_raid_delayed(rs, HZ / 4); + case -EPERM: + /* Suspend. */ + return 1; + case -ENOENT: /* No more regions to recover. */ + schedule_work(&rs->io.ws_do_table_event); + return 0; + default: + BUG(); + } + + /* Read/write a recover stripe. */ + r = stripe_recover_rw(stripe); + if (r) + /* IO initiated. */ + return 1; + + /* Read and write finished-> update recovery position within region. */ + addr->pos += stripe->io.size; + + /* If we're at end of region, update region hash. */ + if (addr->pos >= addr->end || + addr->pos >= rs->set.sectors_per_dev) + recover_rh_update(stripe, REC_SUCCESS); + else + /* Prepare to read next region segment. */ + SetStripeRBW(stripe); + + /* Schedule myself for another round... */ + wake_do_raid(rs); + return 1; + +err: + /* FIXME: rather try recovering other regions on error? */ + rs_check_degrade(stripe); + recover_rh_update(stripe, REC_FAILURE); + + /* Check state of partially recovered array. */ + if (RSDegraded(rs) && !RSDead(rs) && + rs->set.dev_to_init != -1 && + rs->set.ei != rs->set.dev_to_init) + /* Broken drive != drive to recover -> FATAL. */ + SetRSDead(rs); + + if (StripeError(stripe)) { + char buf[BDEVNAME_SIZE]; + + DMERR("stopping recovery due to " + "ERROR on /dev/%s, stripe at offset %llu", + bdevname(rs->dev[rs->set.ei].dev->bdev, buf), + (unsigned long long) stripe->key); + + } + + /* Make sure, that all quiesced regions get released. */ + while (addr->reg) { + dm_rh_recovery_end(addr->reg, -EIO); + addr->reg = dm_rh_recovery_start(rs->recover.rh); + } + + return 0; +} + +/* Called by main io daemon to recover regions. */ +static void do_recovery(struct raid_set *rs) +{ + if (RSRecover(rs)) { + int r = 0; + struct stripe *stripe; + + list_for_each_entry(stripe, &rs->recover.stripes, + lists[LIST_RECOVER]) + r += _do_recovery(stripe); + + if (!r) { + set_end_recovery(rs); + stripe_recover_free(rs); + } + } +} + +/* + * END recovery functions + */ + +/* End io process all stripes handed in by endio() callback. */ +static void _do_endios(struct raid_set *rs, struct stripe *stripe, + struct list_head *flush_list) +{ + /* First unlock all required chunks. */ + stripe_chunks_unlock(stripe); + + /* + * If an io error on a stripe occured, degrade the RAID set + * and try to endio as many bios as possible. If any bios can't + * be endio processed, requeue the stripe (stripe_ref() != 0). + */ + if (TestClearStripeError(stripe)) { + /* + * FIXME: if read, rewrite the failed chunk after reconstruction + * in order to trigger disk bad sector relocation. + */ + rs_check_degrade(stripe); /* Resets ChunkError(). */ + ClearStripeReconstruct(stripe); + ClearStripeReconstructed(stripe); + } + + /* Got to reconstruct a missing chunk. */ + if (StripeReconstruct(stripe)) { + /* + * (*2*) We use StripeReconstruct() to allow for + * all chunks to be xored into the reconstructed + * one (see chunk_must_xor()). + */ + stripe_reconstruct(stripe); + + /* + * (*3*) Now we reset StripeReconstruct() and flag + * StripeReconstructed() to show to stripe_rw(), + * that we have reconstructed a missing chunk. + */ + ClearStripeReconstruct(stripe); + SetStripeReconstructed(stripe); + + /* FIXME: reschedule to be written in case of read. */ + // if (!StripeRBW(stripe)) { + // chunk_set(CHUNK(stripe, pr), DIRTY); + // stripe_chunks_rw(stripe); + // } + } + + /* + * Now that we eventually got a complete stripe, we + * can process the rest of the end ios on reads. + */ + stripe_endio(READ, stripe); + + /* End io all merged writes. */ + if (TestClearStripeMerged(stripe)) + stripe_endio(WRITE_MERGED, stripe); + + /* If RAID set is dead -> fail any ios to dead drives. */ + if (RSDead(rs)) { + DMERR_LIMIT("RAID set dead: failing ios to dead devices"); + stripe_fail_io(stripe); + } + + /* + * We have stripe references still, + * beacuse of read befeore writes or IO errors -> + * got to put on flush list for processing. + */ + if (stripe_ref(stripe)) { + BUG_ON(!list_empty(stripe->lists + LIST_LRU)); + list_add_tail(stripe->lists + LIST_FLUSH, flush_list); + atomic_inc(rs->stats + S_REQUEUE); /* REMOVEME: statistics. */ + } else + stripe_lru_add(stripe); +} + +/* Pop any endio stripes off of the endio list and belabour them. */ +static void do_endios(struct raid_set *rs) +{ + struct stripe_cache *sc = &rs->sc; + struct stripe *stripe; + /* IO flush list for sorted requeued stripes. */ + struct list_head flush_list; + + INIT_LIST_HEAD(&flush_list); + + while ((stripe = stripe_endio_pop(sc))) { + /* Avoid endio on stripes with newly io'ed chunks. */ + if (!stripe_io_ref(stripe)) + _do_endios(rs, stripe, &flush_list); + } + + /* + * Insert any requeued stripes in the proper + * order at the beginning of the io (flush) list. + */ + list_splice(&flush_list, sc->lists + LIST_FLUSH); +} + +/* Flush any stripes on the io list. */ +static void do_flush(struct raid_set *rs) +{ + struct stripe *stripe; + + while ((stripe = stripe_io_pop(&rs->sc))) + stripe_rw(stripe); /* Read/write stripe. */ +} + +/* Stripe cache resizing. */ +static void do_sc_resize(struct raid_set *rs) +{ + unsigned set = atomic_read(&rs->sc.stripes_to_set); + + if (set) { + unsigned cur = atomic_read(&rs->sc.stripes); + int r = (set > cur) ? sc_grow(&rs->sc, set - cur, SC_GROW) : + sc_shrink(&rs->sc, cur - set); + + /* Flag end of resizeing if ok. */ + if (!r) + atomic_set(&rs->sc.stripes_to_set, 0); + } +} + +/* + * Process all ios + * + * We do different things with the io depending + * on the state of the region that it is in: + * + * o reads: hang off stripe cache or postpone if full + * + * o writes: + * + * CLEAN/DIRTY/NOSYNC: increment pending and hang io off stripe's stripe set. + * In case stripe cache is full or busy, postpone the io. + * + * RECOVERING: delay the io until recovery of the region completes. + * + */ +static void do_ios(struct raid_set *rs, struct bio_list *ios) +{ + int r; + unsigned flush = 0, delay = 0; + sector_t sector; + struct dm_rh_client *rh = rs->recover.rh; + struct bio *bio; + struct bio_list reject; + + bio_list_init(&reject); + + /* + * Classify each io: + * o delay writes to recovering regions (let reads go through) + * o queue io to all other regions + */ + while ((bio = bio_list_pop(ios))) { + /* + * In case we get a barrier bio, push it back onto + * the input queue unless all work queues are empty + * and the stripe cache is inactive. + */ + if (unlikely(bio->bi_rw & REQ_FLUSH)) { + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + S_BARRIER); + if (delay || + !list_empty(rs->sc.lists + LIST_FLUSH) || + !bio_list_empty(&reject) || + sc_active(&rs->sc)) { + bio_list_push(ios, bio); + break; + } + } + + /* Check for recovering regions. */ + sector = _sector(rs, bio); + r = region_state(rs, sector, DM_RH_RECOVERING); + if (unlikely(r && bio_data_dir(bio) == WRITE)) { + delay++; + /* Wait writing to recovering regions. */ + dm_rh_delay_by_region(rh, bio, + dm_rh_sector_to_region(rh, + sector)); + /* REMOVEME: statistics.*/ + atomic_inc(rs->stats + S_DELAYED_BIOS); + atomic_inc(rs->stats + S_SUM_DELAYED_BIOS); + + /* Force bandwidth tests in recovery. */ + SetRSBandwidth(rs); + } else { + /* + * Process ios to non-recovering regions by queueing + * them to stripes (does dm_rh_inc()) for writes). + */ + flush += stripe_queue_bio(rs, bio, &reject); + } + } + + if (flush) { + /* FIXME: better error handling. */ + r = dm_rh_flush(rh); /* Writes got queued -> flush dirty log. */ + if (r) + DMERR_LIMIT("dirty log flush"); + } + + /* Merge any rejected bios back to the head of the input list. */ + bio_list_merge_head(ios, &reject); +} + +/* Send an event in case we're getting too busy. */ +static void do_busy_event(struct raid_set *rs) +{ + if (sc_busy(rs)) { + if (!TestSetRSScBusy(rs)) + schedule_work(&rs->io.ws_do_table_event); + } + + ClearRSScBusy(rs); +} + +/* Throw an event. */ +static void do_table_event(struct work_struct *ws) +{ + struct raid_set *rs = container_of(ws, struct raid_set, + io.ws_do_table_event); + dm_table_event(rs->ti->table); +} + + +/*----------------------------------------------------------------- + * RAID daemon + *---------------------------------------------------------------*/ +/* + * o belabour all end ios + * o update the region hash states + * o optionally shrink the stripe cache + * o optionally do recovery + * o unplug any component raid devices with queued bios + * o grab the input queue + * o work an all requeued or new ios and perform stripe cache flushs + * o unplug any component raid devices with queued bios + * o check, if the stripe cache gets too busy and throw an event if so + */ +static void do_raid(struct work_struct *ws) +{ + struct raid_set *rs = container_of(ws, struct raid_set, + io.dws_do_raid.work); + struct bio_list *ios = &rs->io.work, *ios_in = &rs->io.in; + struct blk_plug plug; + + /* + * We always need to end io, so that ios can get errored in + * case the set failed and the region counters get decremented + * before we update region hash states and go any further. + */ + do_endios(rs); + dm_rh_update_states(rs->recover.rh, 1); + + /* + * Now that we've end io'd, which may have put stripes on the LRU list + * to allow for shrinking, we resize the stripe cache if requested. + */ + do_sc_resize(rs); + + /* Try to recover regions. */ + blk_start_plug(&plug); + do_recovery(rs); + blk_finish_plug(&plug); /* Unplug the queue */ + + /* Quickly grab all new ios queued and add them to the work list. */ + mutex_lock(&rs->io.in_lock); + bio_list_merge(ios, ios_in); + bio_list_init(ios_in); + mutex_unlock(&rs->io.in_lock); + + blk_start_plug(&plug); + if (!bio_list_empty(ios)) + do_ios(rs, ios); /* Got ios to work into the cache. */ + + do_flush(rs); /* Flush any stripes on io list. */ + blk_finish_plug(&plug); /* Unplug the queue */ + do_busy_event(rs); /* Check if we got too busy. */ +} + +/* + * Callback for region hash to dispatch + * delayed bios queued to recovered regions + * (gets called via dm_rh_update_states()). + */ +static void dispatch_delayed_bios(void *context, struct bio_list *bl) +{ + struct raid_set *rs = context; + struct bio *bio; + + /* REMOVEME: statistics; decrement pending delayed bios counter. */ + bio_list_for_each(bio, bl) + atomic_dec(rs->stats + S_DELAYED_BIOS); + + /* Merge region hash private list to work list. */ + bio_list_merge_head(&rs->io.work, bl); + bio_list_init(bl); + ClearRSBandwidth(rs); +} + +/************************************************************* + * Constructor helpers + *************************************************************/ +/* Calculate MB/sec. */ +static unsigned mbpers(struct raid_set *rs, unsigned speed) +{ + return to_bytes(speed * rs->set.data_devs * + rs->recover.io_size * HZ >> 10) >> 10; +} + +/* + * Discover fastest xor algorithm and # of chunks combination. + */ +/* Calculate speed for algorithm and # of chunks. */ +static unsigned xor_speed(struct stripe *stripe) +{ + unsigned r = 0; + unsigned long j; + + /* Wait for next tick. */ + for (j = jiffies; j == jiffies; ) + ; + + /* Do xors for a full tick. */ + for (j = jiffies; j == jiffies; ) { + mb(); + common_xor(stripe, stripe->io.size, 0, 0); + mb(); + r++; + } + + return r; +} + +/* Optimize xor algorithm for this RAID set. */ +static unsigned xor_optimize(struct raid_set *rs) +{ + unsigned chunks_max = 2, p = rs->set.raid_devs, speed_max = 0; + struct xor_func *f = ARRAY_END(xor_funcs), *f_max = NULL; + struct stripe *stripe; + + BUG_ON(list_empty(&rs->recover.stripes)); + stripe = list_first_entry(&rs->recover.stripes, struct stripe, + lists[LIST_RECOVER]); + + /* Must set uptodate so that xor() will belabour chunks. */ + while (p--) + SetChunkUptodate(CHUNK(stripe, p)); + + /* Try all xor functions. */ + while (f-- > xor_funcs) { + unsigned speed; + + /* Set actual xor function for common_xor(). */ + rs->xor.f = f; + rs->xor.chunks = (f->f == xor_blocks_wrapper ? + (MAX_XOR_BLOCKS + 1) : XOR_CHUNKS_MAX) + 1; + + while (rs->xor.chunks-- > 2) { + speed = xor_speed(stripe); + if (speed > speed_max) { + speed_max = speed; + chunks_max = rs->xor.chunks; + f_max = f; + } + } + } + + /* Memorize optimum parameters. */ + rs->xor.f = f_max; + rs->xor.chunks = chunks_max; + return speed_max; +} + +/* + * Allocate a RAID context (a RAID set) + */ +/* Structure for variable RAID parameters. */ +struct variable_parms { + int bandwidth; + int bandwidth_parm; + int chunk_size; + int chunk_size_parm; + int io_size; + int io_size_parm; + int stripes; + int stripes_parm; + int recover_io_size; + int recover_io_size_parm; + int raid_parms; + int recovery; + int recovery_stripes; + int recovery_stripes_parm; +}; + +static struct raid_set * +context_alloc(struct raid_type *raid_type, struct variable_parms *p, + unsigned raid_devs, sector_t sectors_per_dev, + struct dm_target *ti, unsigned dl_parms, char **argv) +{ + int r; + size_t len; + sector_t region_size, ti_len; + struct raid_set *rs = NULL; + struct dm_dirty_log *dl; + struct recover *rec; + + /* + * Create the dirty log + * + * We need to change length for the dirty log constructor, + * because we want an amount of regions for all stripes derived + * from the single device size, so that we can keep region + * size = 2^^n independant of the number of devices + */ + ti_len = ti->len; + ti->len = sectors_per_dev; + dl = dm_dirty_log_create(argv[0], ti, NULL, dl_parms, argv + 2); + ti->len = ti_len; + if (!dl) + goto bad_dirty_log; + + /* Chunk size *must* be smaller than region size. */ + region_size = dl->type->get_region_size(dl); + if (p->chunk_size > region_size) + goto bad_chunk_size; + + /* Recover io size *must* be smaller than region size as well. */ + if (p->recover_io_size > region_size) + goto bad_recover_io_size; + + /* Size and allocate the RAID set structure. */ + len = sizeof(*rs->data) + sizeof(*rs->dev); + if (dm_array_too_big(sizeof(*rs), len, raid_devs)) + goto bad_array; + + len = sizeof(*rs) + raid_devs * len; + rs = kzalloc(len, GFP_KERNEL); + if (!rs) + goto bad_alloc; + + rec = &rs->recover; + atomic_set(&rs->io.in_process, 0); + atomic_set(&rs->io.in_process_max, 0); + rec->io_size = p->recover_io_size; + + /* Pointer to data array. */ + rs->data = (unsigned long **) + ((void *) rs->dev + raid_devs * sizeof(*rs->dev)); + rec->dl = dl; + rs->set.raid_devs = raid_devs; + rs->set.data_devs = raid_devs - raid_type->parity_devs; + rs->set.raid_type = raid_type; + + rs->set.raid_parms = p->raid_parms; + rs->set.chunk_size_parm = p->chunk_size_parm; + rs->set.io_size_parm = p->io_size_parm; + rs->sc.stripes_parm = p->stripes_parm; + rec->io_size_parm = p->recover_io_size_parm; + rec->bandwidth_parm = p->bandwidth_parm; + rec->recovery = p->recovery; + rec->recovery_stripes = p->recovery_stripes; + + /* + * Set chunk and io size and respective shifts + * (used to avoid divisions) + */ + rs->set.chunk_size = p->chunk_size; + rs->set.chunk_shift = ffs(p->chunk_size) - 1; + + rs->set.io_size = p->io_size; + rs->set.io_mask = p->io_size - 1; + /* Mask to adjust address key in case io_size != chunk_size. */ + rs->set.io_inv_mask = (p->chunk_size - 1) & ~rs->set.io_mask; + + rs->set.sectors_per_dev = sectors_per_dev; + + rs->set.ei = -1; /* Indicate no failed device. */ + atomic_set(&rs->set.failed_devs, 0); + + rs->ti = ti; + + atomic_set(rec->io_count + IO_WORK, 0); + atomic_set(rec->io_count + IO_RECOVER, 0); + + /* Initialize io lock and queues. */ + mutex_init(&rs->io.in_lock); + bio_list_init(&rs->io.in); + bio_list_init(&rs->io.work); + + init_waitqueue_head(&rs->io.suspendq); /* Suspend waiters (dm-io). */ + + rec->nr_regions = dm_sector_div_up(sectors_per_dev, region_size); + rec->rh = dm_region_hash_create(rs, dispatch_delayed_bios, + wake_dummy, wake_do_raid, 0, p->recovery_stripes, + dl, region_size, rec->nr_regions); + if (IS_ERR(rec->rh)) + goto bad_rh; + + /* Initialize stripe cache. */ + r = sc_init(rs, p->stripes); + if (r) + goto bad_sc; + + /* REMOVEME: statistics. */ + stats_reset(rs); + ClearRSDevelStats(rs); /* Disnable development status. */ + return rs; + +bad_dirty_log: + TI_ERR_RET("Error creating dirty log", ERR_PTR(-ENOMEM)); + +bad_chunk_size: + dm_dirty_log_destroy(dl); + TI_ERR_RET("Chunk size larger than region size", ERR_PTR(-EINVAL)); + +bad_recover_io_size: + dm_dirty_log_destroy(dl); + TI_ERR_RET("Recover stripe io size larger than region size", + ERR_PTR(-EINVAL)); + +bad_array: + dm_dirty_log_destroy(dl); + TI_ERR_RET("Arry too big", ERR_PTR(-EINVAL)); + +bad_alloc: + dm_dirty_log_destroy(dl); + TI_ERR_RET("Cannot allocate raid context", ERR_PTR(-ENOMEM)); + +bad_rh: + dm_dirty_log_destroy(dl); + ti->error = DM_MSG_PREFIX "Error creating dirty region hash"; + goto free_rs; + +bad_sc: + dm_region_hash_destroy(rec->rh); /* Destroys dirty log too. */ + sc_exit(&rs->sc); + ti->error = DM_MSG_PREFIX "Error creating stripe cache"; +free_rs: + kfree(rs); + return ERR_PTR(-ENOMEM); +} + +/* Free a RAID context (a RAID set). */ +static void context_free(struct raid_set *rs, unsigned p) +{ + while (p--) + dm_put_device(rs->ti, rs->dev[p].dev); + + sc_exit(&rs->sc); + dm_region_hash_destroy(rs->recover.rh); /* Destroys dirty log too. */ + kfree(rs); +} + +/* Create work queue and initialize delayed work. */ +static int rs_workqueue_init(struct raid_set *rs) +{ + struct dm_target *ti = rs->ti; + + rs->io.wq = create_singlethread_workqueue(DAEMON); + if (!rs->io.wq) + TI_ERR_RET("failed to create " DAEMON, -ENOMEM); + + INIT_DELAYED_WORK(&rs->io.dws_do_raid, do_raid); + INIT_WORK(&rs->io.ws_do_table_event, do_table_event); + return 0; +} + +/* Return pointer to raid_type structure for raid name. */ +static struct raid_type *get_raid_type(char *name) +{ + struct raid_type *r = ARRAY_END(raid_types); + + while (r-- > raid_types) { + if (!strcmp(r->name, name)) + return r; + } + + return NULL; +} + +/* FIXME: factor out to dm core. */ +static int multiple(sector_t a, sector_t b, sector_t *n) +{ + sector_t r = a; + + sector_div(r, b); + *n = r; + return a == r * b; +} + +/* Log RAID set information to kernel log. */ +static void rs_log(struct raid_set *rs, unsigned speed) +{ + unsigned p; + char buf[BDEVNAME_SIZE]; + + for (p = 0; p < rs->set.raid_devs; p++) + DMINFO("/dev/%s is raid disk %u%s", + bdevname(rs->dev[p].dev->bdev, buf), p, + (p == rs->set.pi) ? " (parity)" : ""); + + DMINFO("%d/%d/%d sectors chunk/io/recovery size, %u stripes\n" + "algorithm \"%s\", %u chunks with %uMB/s\n" + "%s set with net %u/%u devices", + rs->set.chunk_size, rs->set.io_size, rs->recover.io_size, + atomic_read(&rs->sc.stripes), + rs->xor.f->name, rs->xor.chunks, mbpers(rs, speed), + rs->set.raid_type->descr, rs->set.data_devs, rs->set.raid_devs); +} + +/* Get all devices and offsets. */ +static int dev_parms(struct raid_set *rs, char **argv, int *p) +{ + struct dm_target *ti = rs->ti; + + for (*p = 0; *p < rs->set.raid_devs; (*p)++, argv += 2) { + int r; + unsigned long long tmp; + struct raid_dev *dev = rs->dev + *p; + + /* Get offset and device. */ + if (sscanf(argv[1], "%llu", &tmp) != 1 || + tmp > rs->set.sectors_per_dev) + TI_ERR("Invalid RAID device offset parameter"); + + dev->start = tmp; + r = dm_get_device(ti, *argv, dm_table_get_mode(ti->table), &dev->dev); + if (r) + TI_ERR_RET("RAID device lookup failure", r); + + r = raid_dev_lookup(rs, dev); + if (r != -ENODEV && r < *p) { + (*p)++; /* Ensure dm_put_device() on actual device. */ + TI_ERR_RET("Duplicate RAID device", -ENXIO); + } + } + + return 0; +} + +/* Set recovery bandwidth. */ +static void +recover_set_bandwidth(struct raid_set *rs, unsigned bandwidth) +{ + rs->recover.bandwidth = bandwidth; + rs->recover.bandwidth_work = 100 / bandwidth; +} + +/* Handle variable number of RAID parameters. */ +static int get_raid_variable_parms(struct dm_target *ti, char **argv, + struct variable_parms *vp) +{ + int p, value; + struct { + int action; /* -1: skip, 0: no pwer2 check, 1: power2 check */ + char *errmsg; + int min, max; + int *var, *var2, *var3; + } argctr[] = { + { 1, + "Invalid chunk size; must be -1 or 2^^n and <= 16384", + IO_SIZE_MIN, CHUNK_SIZE_MAX, + &vp->chunk_size_parm, &vp->chunk_size, &vp->io_size }, + { 0, + "Invalid number of stripes: must be -1 or >= 8 and <= 16384", + STRIPES_MIN, STRIPES_MAX, + &vp->stripes_parm, &vp->stripes, NULL }, + { 1, + "Invalid io size; must -1 or >= 8, 2^^n and less equal " + "min(BIO_MAX_SECTORS/2, chunk size)", + IO_SIZE_MIN, 0, /* Needs to be updated in loop below. */ + &vp->io_size_parm, &vp->io_size, NULL }, + { 1, + "Invalid recovery io size; must be -1 or " + "2^^n and less equal BIO_MAX_SECTORS/2", + RECOVER_IO_SIZE_MIN, BIO_MAX_SECTORS / 2, + &vp->recover_io_size_parm, &vp->recover_io_size, NULL }, + { 0, + "Invalid recovery bandwidth percentage; " + "must be -1 or > 0 and <= 100", + BANDWIDTH_MIN, BANDWIDTH_MAX, + &vp->bandwidth_parm, &vp->bandwidth, NULL }, + /* Handle sync argument seperately in loop. */ + { -1, + "Invalid recovery switch; must be \"sync\" or \"nosync\"" }, + { 0, + "Invalid number of recovery stripes;" + "must be -1, > 0 and <= 16384", + RECOVERY_STRIPES_MIN, RECOVERY_STRIPES_MAX, + &vp->recovery_stripes_parm, &vp->recovery_stripes, NULL }, + }, *varp; + + /* Fetch # of variable raid parameters. */ + if (sscanf(*(argv++), "%d", &vp->raid_parms) != 1 || + !range_ok(vp->raid_parms, 0, 7)) + TI_ERR("Bad variable raid parameters number"); + + /* Preset variable RAID parameters. */ + vp->chunk_size = CHUNK_SIZE_DEFAULT; + vp->io_size = IO_SIZE_DEFAULT; + vp->stripes = STRIPES_DEFAULT; + vp->recover_io_size = RECOVER_IO_SIZE_DEFAULT; + vp->bandwidth = BANDWIDTH_DEFAULT; + vp->recovery = 1; + vp->recovery_stripes = RECOVERY_STRIPES_DEFAULT; + + /* Walk the array of argument constraints for all given ones. */ + for (p = 0, varp = argctr; p < vp->raid_parms; p++, varp++) { + BUG_ON(varp >= ARRAY_END(argctr)); + + /* Special case for "[no]sync" string argument. */ + if (varp->action < 0) { + if (!strcmp(*argv, "sync")) + ; + else if (!strcmp(*argv, "nosync")) + vp->recovery = 0; + else + TI_ERR(varp->errmsg); + + argv++; + continue; + } + + /* + * Special case for io_size depending + * on previously set chunk size. + */ + if (p == 2) + varp->max = min(BIO_MAX_SECTORS / 2, vp->chunk_size); + + if (sscanf(*(argv++), "%d", &value) != 1 || + (value != -1 && + ((varp->action && !POWER_OF_2(value)) || + !range_ok(value, varp->min, varp->max)))) + TI_ERR(varp->errmsg); + + *varp->var = value; + if (value != -1) { + if (varp->var2) + *varp->var2 = value; + if (varp->var3) + *varp->var3 = value; + } + } + + return 0; +} + +/* Parse optional locking parameters. */ +static int get_raid_locking_parms(struct dm_target *ti, char **argv, + int *locking_parms, + struct dm_raid45_locking_type **locking_type) +{ + if (!strnicmp(argv[0], "locking", strlen(argv[0]))) { + char *lckstr = argv[1]; + size_t lcksz = strlen(lckstr); + + if (!strnicmp(lckstr, "none", lcksz)) { + *locking_type = &locking_none; + *locking_parms = 2; + } else if (!strnicmp(lckstr, "cluster", lcksz)) { + DMERR("locking type \"%s\" not yet implemented", + lckstr); + return -EINVAL; + } else { + DMERR("unknown locking type \"%s\"", lckstr); + return -EINVAL; + } + } + + *locking_parms = 0; + *locking_type = &locking_none; + return 0; +} + +/* Set backing device read ahead properties of RAID set. */ +static void rs_set_read_ahead(struct raid_set *rs, + unsigned sectors, unsigned stripes) +{ + unsigned ra_pages = dm_div_up(sectors, SECTORS_PER_PAGE); + struct mapped_device *md = dm_table_get_md(rs->ti->table); + struct backing_dev_info *bdi = &dm_disk(md)->queue->backing_dev_info; + + /* Set read-ahead for the RAID set and the component devices. */ + if (ra_pages) { + unsigned p = rs->set.raid_devs; + + bdi->ra_pages = stripes * ra_pages * rs->set.data_devs; + + while (p--) { + struct request_queue *q = + bdev_get_queue(rs->dev[p].dev->bdev); + + q->backing_dev_info.ra_pages = ra_pages; + } + } + + dm_put(md); +} + +/* Set congested function. */ +static void rs_set_congested_fn(struct raid_set *rs) +{ + struct mapped_device *md = dm_table_get_md(rs->ti->table); + struct backing_dev_info *bdi = &dm_disk(md)->queue->backing_dev_info; + + /* Set congested function and data. */ + bdi->congested_fn = rs_congested; + bdi->congested_data = rs; + dm_put(md); +} + +/* + * Construct a RAID4/5 mapping: + * + * log_type #log_params \ + * raid_type [#parity_dev] #raid_variable_params \ + * [locking "none"/"cluster"] + * #raid_devs #dev_to_initialize [ ]{3,} + * + * log_type = "core"/"disk", + * #log_params = 1-3 (1-2 for core dirty log type, 3 for disk dirty log only) + * log_params = [dirty_log_path] region_size [[no]sync]) + * + * raid_type = "raid4", "raid5_la", "raid5_ra", "raid5_ls", "raid5_rs" + * + * #parity_dev = N if raid_type = "raid4" + * o N = -1: pick default = last device + * o N >= 0 and < #raid_devs: parity device index + * + * #raid_variable_params = 0-7; raid_params (-1 = default): + * [chunk_size [#stripes [io_size [recover_io_size \ + * [%recovery_bandwidth [recovery_switch [#recovery_stripes]]]]]]] + * o chunk_size (unit to calculate drive addresses; must be 2^^n, > 8 + * and <= CHUNK_SIZE_MAX) + * o #stripes is number of stripes allocated to stripe cache + * (must be > 1 and < STRIPES_MAX) + * o io_size (io unit size per device in sectors; must be 2^^n and > 8) + * o recover_io_size (io unit size per device for recovery in sectors; + must be 2^^n, > SECTORS_PER_PAGE and <= region_size) + * o %recovery_bandwith is the maximum amount spend for recovery during + * application io (1-100%) + * o recovery switch = [sync|nosync] + * o #recovery_stripes is the number of recovery stripes used for + * parallel recovery of the RAID set + * If raid_variable_params = 0, defaults will be used. + * Any raid_variable_param can be set to -1 to apply a default + * + * #raid_devs = N (N >= 3) + * + * #dev_to_initialize = N + * -1: initialize parity on all devices + * >= 0 and < #raid_devs: initialize raid_path; used to force reconstruction + * of a failed devices content after replacement + * + * = device_path (eg, /dev/sdd1) + * = begin at offset on + * + */ +#define MIN_PARMS 13 +static int raid_ctr(struct dm_target *ti, unsigned argc, char **argv) +{ + int dev_to_init, dl_parms, i, locking_parms, + parity_parm, pi = -1, r, raid_devs; + unsigned speed; + sector_t tmp, sectors_per_dev; + struct dm_raid45_locking_type *locking; + struct raid_set *rs; + struct raid_type *raid_type; + struct variable_parms parms; + + /* Ensure minimum number of parameters. */ + if (argc < MIN_PARMS) + TI_ERR("Not enough parameters"); + + /* Fetch # of dirty log parameters. */ + if (sscanf(argv[1], "%d", &dl_parms) != 1 || + !range_ok(dl_parms, 1, 4711)) /* ;-) */ + TI_ERR("Bad dirty log parameters number"); + + /* Check raid_type. */ + raid_type = get_raid_type(argv[dl_parms + 2]); + if (!raid_type) + TI_ERR("Bad raid type"); + + /* In case of RAID4, parity drive is selectable. */ + parity_parm = !!(raid_type->level == raid4); + + /* Handle variable number of RAID parameters. */ + r = get_raid_variable_parms(ti, argv + dl_parms + parity_parm + 3, + &parms); + if (r) + return r; + + /* Handle any locking parameters. */ + r = get_raid_locking_parms(ti, + argv + dl_parms + parity_parm + + parms.raid_parms + 4, + &locking_parms, &locking); + if (r) + return r; + + /* # of raid devices. */ + i = dl_parms + parity_parm + parms.raid_parms + locking_parms + 4; + if (sscanf(argv[i], "%d", &raid_devs) != 1 || + raid_devs < raid_type->minimal_devs) + TI_ERR("Invalid number of raid devices"); + + /* In case of RAID4, check parity drive index is in limits. */ + if (raid_type->level == raid4) { + /* Fetch index of parity device. */ + if (sscanf(argv[dl_parms + 3], "%d", &pi) != 1 || + (pi != -1 && !range_ok(pi, 0, raid_devs - 1))) + TI_ERR("Invalid RAID4 parity device index"); + } + + /* + * Index of device to initialize starts at 0 + * + * o -1 -> don't initialize a selected device; + * initialize parity conforming to algorithm + * o 0..raid_devs-1 -> initialize respective device + * (used for reconstruction of a replaced device) + */ + if (sscanf(argv[dl_parms + parity_parm + parms.raid_parms + + locking_parms + 5], "%d", &dev_to_init) != 1 || + !range_ok(dev_to_init, -1, raid_devs - 1)) + TI_ERR("Invalid number for raid device to initialize"); + + /* Check # of raid device arguments. */ + if (argc - dl_parms - parity_parm - parms.raid_parms - 6 != + 2 * raid_devs) + TI_ERR("Wrong number of raid device/offset arguments"); + + /* + * Check that the table length is devisable + * w/o rest by (raid_devs - parity_devs) + */ + if (!multiple(ti->len, raid_devs - raid_type->parity_devs, + §ors_per_dev)) + TI_ERR("Target length not divisible by number of data devices"); + + /* + * Check that the device size is + * devisable w/o rest by chunk size + */ + if (!multiple(sectors_per_dev, parms.chunk_size, &tmp)) + TI_ERR("Device length not divisible by chunk_size"); + + /**************************************************************** + * Now that we checked the constructor arguments -> + * let's allocate the RAID set + ****************************************************************/ + rs = context_alloc(raid_type, &parms, raid_devs, sectors_per_dev, + ti, dl_parms, argv); + if (IS_ERR(rs)) + return PTR_ERR(rs); + + + rs->set.dev_to_init = rs->set.dev_to_init_parm = dev_to_init; + rs->set.pi = rs->set.pi_parm = pi; + + /* Set RAID4 parity drive index. */ + if (raid_type->level == raid4) + rs->set.pi = (pi == -1) ? rs->set.data_devs : pi; + + recover_set_bandwidth(rs, parms.bandwidth); + + /* Use locking type to lock stripe access. */ + rs->locking = locking; + + /* Get the device/offset tupels. */ + argv += dl_parms + 6 + parity_parm + parms.raid_parms; + r = dev_parms(rs, argv, &i); + if (r) + goto err; + + /* Set backing device information (eg. read ahead). */ + rs_set_read_ahead(rs, 2 * rs->set.chunk_size, 4 /* stripes */); + rs_set_congested_fn(rs); /* Set congested function. */ + SetRSCheckOverwrite(rs); /* Allow chunk overwrite checks. */ + speed = xor_optimize(rs); /* Select best xor algorithm. */ + + /* Set for recovery of any nosync regions. */ + if (parms.recovery) + SetRSRecover(rs); + else { + /* + * Need to free recovery stripe(s) here in case + * of nosync, because xor_optimize uses one. + */ + set_start_recovery(rs); + set_end_recovery(rs); + stripe_recover_free(rs); + } + + /* + * Make sure that dm core only hands maximum io size + * length down and pays attention to io boundaries. + */ + ti->split_io = rs->set.io_size; + ti->private = rs; + + /* Initialize work queue to handle this RAID set's io. */ + r = rs_workqueue_init(rs); + if (r) + goto err; + + rs_log(rs, speed); /* Log information about RAID set. */ + return 0; + +err: + context_free(rs, i); + return r; +} + +/* + * Destruct a raid mapping + */ +static void raid_dtr(struct dm_target *ti) +{ + struct raid_set *rs = ti->private; + + destroy_workqueue(rs->io.wq); + context_free(rs, rs->set.raid_devs); +} + +/* Raid mapping function. */ +static int raid_map(struct dm_target *ti, struct bio *bio, + union map_info *map_context) +{ + /* I don't want to waste stripe cache capacity. */ + if (bio_rw(bio) == READA) + return -EIO; + else { + struct raid_set *rs = ti->private; + + /* + * Get io reference to be waiting for to drop + * to zero on device suspension/destruction. + */ + io_get(rs); + bio->bi_sector -= ti->begin; /* Remap sector. */ + + /* Queue io to RAID set. */ + mutex_lock(&rs->io.in_lock); + bio_list_add(&rs->io.in, bio); + mutex_unlock(&rs->io.in_lock); + + /* Wake daemon to process input list. */ + wake_do_raid(rs); + + /* REMOVEME: statistics. */ + atomic_inc(rs->stats + (bio_data_dir(bio) == READ ? + S_BIOS_READ : S_BIOS_WRITE)); + return DM_MAPIO_SUBMITTED; /* Handle later. */ + } +} + +/* Device suspend. */ +static void raid_presuspend(struct dm_target *ti) +{ + struct raid_set *rs = ti->private; + struct dm_dirty_log *dl = rs->recover.dl; + + SetRSSuspend(rs); + + if (RSRecover(rs)) + dm_rh_stop_recovery(rs->recover.rh); + + cancel_delayed_work(&rs->io.dws_do_raid); + flush_workqueue(rs->io.wq); + wait_ios(rs); /* Wait for completion of all ios being processed. */ + + if (dl->type->presuspend && dl->type->presuspend(dl)) + /* FIXME: need better error handling. */ + DMWARN("log presuspend failed"); +} + +static void raid_postsuspend(struct dm_target *ti) +{ + struct raid_set *rs = ti->private; + struct dm_dirty_log *dl = rs->recover.dl; + + if (dl->type->postsuspend && dl->type->postsuspend(dl)) + /* FIXME: need better error handling. */ + DMWARN("log postsuspend failed"); + +} + +/* Device resume. */ +static void raid_resume(struct dm_target *ti) +{ + struct raid_set *rs = ti->private; + struct recover *rec = &rs->recover; + struct dm_dirty_log *dl = rec->dl; + + if (dl->type->resume && dl->type->resume(dl)) + /* Resume dirty log. */ + /* FIXME: need better error handling. */ + DMWARN("log resume failed"); + + rec->nr_regions_to_recover = + rec->nr_regions - dl->type->get_sync_count(dl); + + /* Restart any unfinished recovery. */ + if (RSRecover(rs)) { + set_start_recovery(rs); + dm_rh_start_recovery(rec->rh); + } + + ClearRSSuspend(rs); + wake_do_raid(rs); +} + +/* Return stripe cache size. */ +static unsigned sc_size(struct raid_set *rs) +{ + return to_sector(atomic_read(&rs->sc.stripes) * + (sizeof(struct stripe) + + (sizeof(struct stripe_chunk) + + (sizeof(struct page_list) + + to_bytes(rs->set.io_size) * + rs->set.raid_devs)) + + (rs->recover.end_jiffies ? + 0 : rs->recover.recovery_stripes * + to_bytes(rs->set.raid_devs * rs->recover.io_size)))); +} + +/* REMOVEME: status output for development. */ +static void raid_devel_stats(struct dm_target *ti, char *result, + unsigned *size, unsigned maxlen) +{ + unsigned sz = *size; + unsigned long j; + char buf[BDEVNAME_SIZE], *p; + struct stats_map *sm; + struct raid_set *rs = ti->private; + struct recover *rec = &rs->recover; + struct timespec ts; + + DMEMIT("%s %s %u\n", version, rs->xor.f->name, rs->xor.chunks); + DMEMIT("act_ios=%d ", io_ref(rs)); + DMEMIT("act_ios_max=%d\n", atomic_read(&rs->io.in_process_max)); + DMEMIT("act_stripes=%d ", sc_active(&rs->sc)); + DMEMIT("act_stripes_max=%d\n", + atomic_read(&rs->sc.active_stripes_max)); + + for (sm = stats_map; sm < ARRAY_END(stats_map); sm++) + DMEMIT("%s%d", sm->str, atomic_read(rs->stats + sm->type)); + + DMEMIT(" checkovr=%s\n", RSCheckOverwrite(rs) ? "on" : "off"); + DMEMIT("sc=%u/%u/%u/%u/%u/%u/%u\n", rs->set.chunk_size, + atomic_read(&rs->sc.stripes), rs->set.io_size, + rec->recovery_stripes, rec->io_size, rs->sc.hash.buckets, + sc_size(rs)); + + j = (rec->end_jiffies ? rec->end_jiffies : jiffies) - + rec->start_jiffies; + jiffies_to_timespec(j, &ts); + sprintf(buf, "%ld.%ld", ts.tv_sec, ts.tv_nsec); + p = strchr(buf, '.'); + p[3] = 0; + + DMEMIT("rg=%llu/%llu/%llu/%u %s\n", + (unsigned long long) rec->nr_regions_recovered, + (unsigned long long) rec->nr_regions_to_recover, + (unsigned long long) rec->nr_regions, rec->bandwidth, buf); + + *size = sz; +} + +static int raid_status(struct dm_target *ti, status_type_t type, + char *result, unsigned maxlen) +{ + unsigned p, sz = 0; + char buf[BDEVNAME_SIZE]; + struct raid_set *rs = ti->private; + int raid_parms[] = { + rs->set.chunk_size_parm, + rs->sc.stripes_parm, + rs->set.io_size_parm, + rs->recover.io_size_parm, + rs->recover.bandwidth_parm, + -2, + rs->recover.recovery_stripes, + }; + + switch (type) { + case STATUSTYPE_INFO: + /* REMOVEME: statistics. */ + if (RSDevelStats(rs)) + raid_devel_stats(ti, result, &sz, maxlen); + + DMEMIT("%u ", rs->set.raid_devs); + + for (p = 0; p < rs->set.raid_devs; p++) + DMEMIT("%s ", + format_dev_t(buf, rs->dev[p].dev->bdev->bd_dev)); + + DMEMIT("1 "); + for (p = 0; p < rs->set.raid_devs; p++) { + DMEMIT("%c", !DevFailed(rs->dev + p) ? 'A' : 'D'); + + if (p == rs->set.pi) + DMEMIT("p"); + + if (rs->set.dev_to_init == p) + DMEMIT("i"); + } + + break; + case STATUSTYPE_TABLE: + sz = rs->recover.dl->type->status(rs->recover.dl, type, + result, maxlen); + DMEMIT("%s %u ", rs->set.raid_type->name, + rs->set.raid_parms); + + for (p = 0; p < rs->set.raid_parms; p++) { + if (raid_parms[p] > -2) + DMEMIT("%d ", raid_parms[p]); + else + DMEMIT("%s ", rs->recover.recovery ? + "sync" : "nosync"); + } + + DMEMIT("%u %d ", rs->set.raid_devs, rs->set.dev_to_init); + + for (p = 0; p < rs->set.raid_devs; p++) + DMEMIT("%s %llu ", + format_dev_t(buf, rs->dev[p].dev->bdev->bd_dev), + (unsigned long long) rs->dev[p].start); + } + + return 0; +} + +/* + * Message interface + */ +enum raid_msg_actions { + act_bw, /* Recovery bandwidth switch. */ + act_dev, /* Device failure switch. */ + act_overwrite, /* Stripe overwrite check. */ + act_stats, /* Development statistics switch. */ + act_sc, /* Stripe cache switch. */ + + act_on, /* Set entity on. */ + act_off, /* Set entity off. */ + act_reset, /* Reset entity. */ + + act_set = act_on, /* Set # absolute. */ + act_grow = act_off, /* Grow # by an amount. */ + act_shrink = act_reset, /* Shrink # by an amount. */ +}; + +/* Turn a delta into an absolute value. */ +static int _absolute(unsigned long action, int act, int r) +{ + /* Make delta absolute. */ + if (test_bit(act_set, &action)) + ; + else if (test_bit(act_grow, &action)) + r += act; + else if (test_bit(act_shrink, &action)) + r = act - r; + else + r = -EINVAL; + + return r; +} + + /* Change recovery io bandwidth. */ +static int bandwidth_change(struct dm_msg *msg, void *context) +{ + struct raid_set *rs = context; + int act = rs->recover.bandwidth; + int bandwidth = DM_MSG_INT_ARG(msg); + + if (range_ok(bandwidth, BANDWIDTH_MIN, BANDWIDTH_MAX)) { + /* Make delta bandwidth absolute. */ + bandwidth = _absolute(msg->action, act, bandwidth); + + /* Check range. */ + if (range_ok(bandwidth, BANDWIDTH_MIN, BANDWIDTH_MAX)) { + recover_set_bandwidth(rs, bandwidth); + return 0; + } + } + + set_bit(dm_msg_ret_arg, &msg->ret); + set_bit(dm_msg_ret_inval, &msg->ret); + return -EINVAL; +} + +/* Set/reset development feature flags. */ +static int devel_flags(struct dm_msg *msg, void *context) +{ + struct raid_set *rs = context; + + if (test_bit(act_on, &msg->action)) + return test_and_set_bit(msg->spec->parm, + &rs->io.flags) ? -EPERM : 0; + else if (test_bit(act_off, &msg->action)) + return test_and_clear_bit(msg->spec->parm, + &rs->io.flags) ? 0 : -EPERM; + else if (test_bit(act_reset, &msg->action)) { + if (test_bit(act_stats, &msg->action)) { + stats_reset(rs); + goto on; + } else if (test_bit(act_overwrite, &msg->action)) { +on: + set_bit(msg->spec->parm, &rs->io.flags); + return 0; + } + } + + return -EINVAL; +} + +/* Resize the stripe cache. */ +static int sc_resize(struct dm_msg *msg, void *context) +{ + int act, stripes; + struct raid_set *rs = context; + + /* Deny permission in case the daemon is still resizing!. */ + if (atomic_read(&rs->sc.stripes_to_set)) + return -EPERM; + + stripes = DM_MSG_INT_ARG(msg); + if (stripes > 0) { + act = atomic_read(&rs->sc.stripes); + + /* Make delta stripes absolute. */ + stripes = _absolute(msg->action, act, stripes); + + /* + * Check range and that the # of stripes changes. + * We leave the resizing to the wroker. + */ + if (range_ok(stripes, STRIPES_MIN, STRIPES_MAX) && + stripes != atomic_read(&rs->sc.stripes)) { + atomic_set(&rs->sc.stripes_to_set, stripes); + wake_do_raid(rs); + return 0; + } + } + + set_bit(dm_msg_ret_arg, &msg->ret); + set_bit(dm_msg_ret_inval, &msg->ret); + return -EINVAL; +} + +/* Parse the RAID message action. */ +/* + * 'ba[ndwidth] {se[t],g[row],sh[rink]} #' # e.g 'ba se 50' + * "o[verwrite] {on,of[f],r[eset]}' # e.g. 'o of' + * 'sta[tistics] {on,of[f],r[eset]}' # e.g. 'stat of' + * 'str[ipecache] {se[t],g[row],sh[rink]} #' # e.g. 'stripe set 1024' + * + */ +static int raid_message(struct dm_target *ti, unsigned argc, char **argv) +{ + /* Variables to store the parsed parameters im. */ + static int i[2]; + static unsigned long *i_arg[] = { + (unsigned long *) i + 0, + (unsigned long *) i + 1, + }; + + /* Declare all message option strings. */ + static char *str_sgs[] = { "set", "grow", "shrink" }; + static char *str_oor[] = { "on", "off", "reset" }; + + /* Declare all actions. */ + static unsigned long act_sgs[] = { act_set, act_grow, act_shrink }; + static unsigned long act_oor[] = { act_on, act_off, act_reset }; + + /* Bandwidth option. */ + static struct dm_message_option bw_opt = { 3, str_sgs, act_sgs }; + static struct dm_message_argument bw_args = { + 1, i_arg, { dm_msg_int_t } + }; + + static struct dm_message_argument null_args = { + 0, NULL, { dm_msg_int_t } + }; + + /* Overwrite and statistics option. */ + static struct dm_message_option ovr_stats_opt = { 3, str_oor, act_oor }; + + /* Sripecache option. */ + static struct dm_message_option stripe_opt = { 3, str_sgs, act_sgs }; + + /* Declare messages. */ + static struct dm_msg_spec specs[] = { + { "bandwidth", act_bw, &bw_opt, &bw_args, + 0, bandwidth_change }, + { "overwrite", act_overwrite, &ovr_stats_opt, &null_args, + RS_CHECK_OVERWRITE, devel_flags }, + { "statistics", act_stats, &ovr_stats_opt, &null_args, + RS_DEVEL_STATS, devel_flags }, + { "stripecache", act_sc, &stripe_opt, &bw_args, + 0, sc_resize }, + }; + + /* The message for the parser. */ + struct dm_msg msg = { + .num_specs = ARRAY_SIZE(specs), + .specs = specs, + }; + + return dm_message_parse(TARGET, &msg, ti->private, argc, argv); +} +/* + * END message interface + */ + +static struct target_type raid_target = { + .name = "raid45", + .version = {1, 0, 0}, + .module = THIS_MODULE, + .ctr = raid_ctr, + .dtr = raid_dtr, + .map = raid_map, + .presuspend = raid_presuspend, + .postsuspend = raid_postsuspend, + .resume = raid_resume, + .status = raid_status, + .message = raid_message, +}; + +static void init_exit(const char *bad_msg, const char *good_msg, int r) +{ + if (r) + DMERR("Failed to %sregister target [%d]", bad_msg, r); + else + DMINFO("%s %s", good_msg, version); +} + +static int __init dm_raid_init(void) +{ + int r = dm_register_target(&raid_target); + + init_exit("", "initialized", r); + return r; +} + +static void __exit dm_raid_exit(void) +{ + dm_unregister_target(&raid_target); + init_exit("un", "exit", 0); +} + +/* Module hooks. */ +module_init(dm_raid_init); +module_exit(dm_raid_exit); + +MODULE_DESCRIPTION(DM_NAME " raid4/5 target"); +MODULE_AUTHOR("Heinz Mauelshagen "); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("dm-raid4"); +MODULE_ALIAS("dm-raid5"); --- linux-3.2.0.orig/ubuntu/dm-raid4-5/dm-raid4-5.h +++ linux-3.2.0/ubuntu/dm-raid4-5/dm-raid4-5.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2006 Red Hat GmbH + * + * Module Author: Heinz Mauelshagen (Mauelshagen@RedHat.com) + * + * This file is released under the GPL. + * + */ + +#ifndef _DM_RAID45_H +#define _DM_RAID45_H + +/* Factor out to dm.h! */ +#define STR_LEN(ptr, str) ptr, str, strlen(ptr) + +enum lock_type { RAID45_EX, RAID45_SHARED }; + +struct dmraid45_locking_type { + /* Request a lock on a stripe. */ + void* (*lock)(sector_t key, enum lock_type type); + + /* Release a lock on a stripe. */ + void (*unlock)(void *lock_handle); + +}; + +#endif --- linux-3.2.0.orig/ubuntu/dm-raid4-5/BOM +++ linux-3.2.0/ubuntu/dm-raid4-5/BOM @@ -0,0 +1,3 @@ +Downloaded from: http://people.redhat.com/~heinzm/sw/dm/dm-raid45/ +Current Version: 2009.04.24 (2.6.30-rc3) +Comments: All of the patches to dmraid1/dm-log, etc are upstream. --- linux-3.2.0.orig/ubuntu/dm-raid4-5/dm-message.h +++ linux-3.2.0/ubuntu/dm-raid4-5/dm-message.h @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2007,2008 Red Hat, Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen + * + * General device-mapper message interface argument parser. + * + * This file is released under the GPL. + * + */ + +#ifndef DM_MESSAGE_H +#define DM_MESSAGE_H + +/* Factor out to dm.h. */ +/* Reference to array end. */ +#define ARRAY_END(a) ((a) + ARRAY_SIZE(a)) + +/* Message return bits. */ +enum dm_message_return { + dm_msg_ret_ambiguous, /* Action ambiguous. */ + dm_msg_ret_inval, /* Action invalid. */ + dm_msg_ret_undef, /* Action undefined. */ + + dm_msg_ret_option, /* Option error. */ + dm_msg_ret_arg, /* Argument error. */ + dm_msg_ret_argcount, /* Argument count error. */ +}; + +/* Message argument type conversions. */ +enum dm_message_argument_type { + dm_msg_base_t, /* Basename string. */ + dm_msg_str_t, /* String. */ + dm_msg_int_t, /* Signed int. */ + dm_msg_uint_t, /* Unsigned int. */ + dm_msg_uint64_t, /* Unsigned int 64. */ +}; + +/* A message option. */ +struct dm_message_option { + unsigned num_options; + char **options; + unsigned long *actions; +}; + +/* Message arguments and types. */ +struct dm_message_argument { + unsigned num_args; + unsigned long **ptr; + enum dm_message_argument_type types[]; +}; + +/* Client message. */ +struct dm_msg { + unsigned long action; /* Identified action. */ + unsigned long ret; /* Return bits. */ + unsigned num_specs; /* # of sepcifications listed. */ + struct dm_msg_spec *specs; /* Specification list. */ + struct dm_msg_spec *spec; /* Specification selected. */ +}; + +/* Secification of the message. */ +struct dm_msg_spec { + const char *cmd; /* Name of the command (i.e. 'bandwidth'). */ + unsigned long action; + struct dm_message_option *options; + struct dm_message_argument *args; + unsigned long parm; /* Parameter to pass through to callback. */ + /* Function to process for action. */ + int (*f) (struct dm_msg *msg, void *context); +}; + +/* Parameter access macros. */ +#define DM_MSG_PARM(msg) ((msg)->spec->parm) + +#define DM_MSG_STR_ARGS(msg, idx) ((char *) *(msg)->spec->args->ptr[idx]) +#define DM_MSG_INT_ARGS(msg, idx) ((int) *(msg)->spec->args->ptr[idx]) +#define DM_MSG_UINT_ARGS(msg, idx) ((unsigned) DM_MSG_INT_ARG(msg, idx)) +#define DM_MSG_UINT64_ARGS(msg, idx) ((uint64_t) *(msg)->spec->args->ptr[idx]) + +#define DM_MSG_STR_ARG(msg) DM_MSG_STR_ARGS(msg, 0) +#define DM_MSG_INT_ARG(msg) DM_MSG_INT_ARGS(msg, 0) +#define DM_MSG_UINT_ARG(msg) DM_MSG_UINT_ARGS(msg, 0) +#define DM_MSG_UINT64_ARG(msg) DM_MSG_UINT64_ARGS(msg, 0) + + +/* Parse a message and its options and optionally call a function back. */ +int dm_message_parse(const char *caller, struct dm_msg *msg, void *context, + int argc, char **argv); + +#endif --- linux-3.2.0.orig/ubuntu/dm-raid4-5/dm-region-hash.c +++ linux-3.2.0/ubuntu/dm-raid4-5/dm-region-hash.c @@ -0,0 +1,719 @@ +/* + * Copyright (C) 2003 Sistina Software Limited. + * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. + * + * This file is released under the GPL. + */ + +#include +#include "dm-region-hash.h" + +#include +#include +#include +#include +#include + +#include "dm.h" + +#define DM_MSG_PREFIX "region hash" + +/*----------------------------------------------------------------- + * Region hash + * + * The mirror splits itself up into discrete regions. Each + * region can be in one of three states: clean, dirty, + * nosync. There is no need to put clean regions in the hash. + * + * In addition to being present in the hash table a region _may_ + * be present on one of three lists. + * + * clean_regions: Regions on this list have no io pending to + * them, they are in sync, we are no longer interested in them, + * they are dull. dm_rh_update_states() will remove them from the + * hash table. + * + * quiesced_regions: These regions have been spun down, ready + * for recovery. rh_recovery_start() will remove regions from + * this list and hand them to kmirrord, which will schedule the + * recovery io with kcopyd. + * + * recovered_regions: Regions that kcopyd has successfully + * recovered. dm_rh_update_states() will now schedule any delayed + * io, up the recovery_count, and remove the region from the + * hash. + * + * There are 2 locks: + * A rw spin lock 'hash_lock' protects just the hash table, + * this is never held in write mode from interrupt context, + * which I believe means that we only have to disable irqs when + * doing a write lock. + * + * An ordinary spin lock 'region_lock' that protects the three + * lists in the region_hash, with the 'state', 'list' and + * 'delayed_bios' fields of the regions. This is used from irq + * context, so all other uses will have to suspend local irqs. + *---------------------------------------------------------------*/ +struct dm_region_hash { + uint32_t region_size; + unsigned region_shift; + + /* holds persistent region state */ + struct dm_dirty_log *log; + + /* hash table */ + rwlock_t hash_lock; + mempool_t *region_pool; + unsigned mask; + unsigned nr_buckets; + unsigned prime; + unsigned shift; + struct list_head *buckets; + + unsigned max_recovery; /* Max # of regions to recover in parallel */ + + spinlock_t region_lock; + atomic_t recovery_in_flight; + struct semaphore recovery_count; + struct list_head clean_regions; + struct list_head quiesced_regions; + struct list_head recovered_regions; + struct list_head failed_recovered_regions; + + void *context; + sector_t target_begin; + + /* Callback function to schedule bios writes */ + void (*dispatch_bios)(void *context, struct bio_list *bios); + + /* Callback function to wakeup callers worker thread. */ + void (*wakeup_workers)(void *context); + + /* Callback function to wakeup callers recovery waiters. */ + void (*wakeup_all_recovery_waiters)(void *context); +}; + +struct dm_region { + struct dm_region_hash *rh; /* FIXME: can we get rid of this ? */ + region_t key; + int state; + + struct list_head hash_list; + struct list_head list; + + atomic_t pending; + struct bio_list delayed_bios; +}; + +/* + * Conversion fns + */ +region_t dm_rh_sector_to_region(struct dm_region_hash *rh, sector_t sector) +{ + return sector >> rh->region_shift; +} +// EXPORT_SYMBOL_GPL(dm_rh_sector_to_region); + +sector_t dm_rh_region_to_sector(struct dm_region_hash *rh, region_t region) +{ + return region << rh->region_shift; +} +// EXPORT_SYMBOL_GPL(dm_rh_region_to_sector); + +region_t dm_rh_bio_to_region(struct dm_region_hash *rh, struct bio *bio) +{ + return dm_rh_sector_to_region(rh, bio->bi_sector - rh->target_begin); +} +// EXPORT_SYMBOL_GPL(dm_rh_bio_to_region); + +void *dm_rh_region_context(struct dm_region *reg) +{ + return reg->rh->context; +} +// EXPORT_SYMBOL_GPL(dm_rh_region_context); + +region_t dm_rh_get_region_key(struct dm_region *reg) +{ + return reg->key; +} +// EXPORT_SYMBOL_GPL(dm_rh_get_region_key); + +sector_t dm_rh_get_region_size(struct dm_region_hash *rh) +{ + return rh->region_size; +} +// EXPORT_SYMBOL_GPL(dm_rh_get_region_size); + +/* + * FIXME: shall we pass in a structure instead of all these args to + * dm_region_hash_create()???? + */ +#define RH_HASH_MULT 2654435387U +#define RH_HASH_SHIFT 12 + +#define MIN_REGIONS 64 +struct dm_region_hash *dm_region_hash_create( + void *context, void (*dispatch_bios)(void *context, + struct bio_list *bios), + void (*wakeup_workers)(void *context), + void (*wakeup_all_recovery_waiters)(void *context), + sector_t target_begin, unsigned max_recovery, + struct dm_dirty_log *log, uint32_t region_size, + region_t nr_regions) +{ + struct dm_region_hash *rh; + unsigned nr_buckets, max_buckets; + size_t i; + + /* + * Calculate a suitable number of buckets for our hash + * table. + */ + max_buckets = nr_regions >> 6; + for (nr_buckets = 128u; nr_buckets < max_buckets; nr_buckets <<= 1) + ; + nr_buckets >>= 1; + + rh = kmalloc(sizeof(*rh), GFP_KERNEL); + if (!rh) { + DMERR("unable to allocate region hash memory"); + return ERR_PTR(-ENOMEM); + } + + rh->context = context; + rh->dispatch_bios = dispatch_bios; + rh->wakeup_workers = wakeup_workers; + rh->wakeup_all_recovery_waiters = wakeup_all_recovery_waiters; + rh->target_begin = target_begin; + rh->max_recovery = max_recovery; + rh->log = log; + rh->region_size = region_size; + rh->region_shift = ffs(region_size) - 1; + rwlock_init(&rh->hash_lock); + rh->mask = nr_buckets - 1; + rh->nr_buckets = nr_buckets; + + rh->shift = RH_HASH_SHIFT; + rh->prime = RH_HASH_MULT; + + rh->buckets = vmalloc(nr_buckets * sizeof(*rh->buckets)); + if (!rh->buckets) { + DMERR("unable to allocate region hash bucket memory"); + kfree(rh); + return ERR_PTR(-ENOMEM); + } + + for (i = 0; i < nr_buckets; i++) + INIT_LIST_HEAD(rh->buckets + i); + + spin_lock_init(&rh->region_lock); + sema_init(&rh->recovery_count, 0); + atomic_set(&rh->recovery_in_flight, 0); + INIT_LIST_HEAD(&rh->clean_regions); + INIT_LIST_HEAD(&rh->quiesced_regions); + INIT_LIST_HEAD(&rh->recovered_regions); + INIT_LIST_HEAD(&rh->failed_recovered_regions); + + rh->region_pool = mempool_create_kmalloc_pool(MIN_REGIONS, + sizeof(struct dm_region)); + if (!rh->region_pool) { + vfree(rh->buckets); + kfree(rh); + rh = ERR_PTR(-ENOMEM); + } + + return rh; +} +// EXPORT_SYMBOL_GPL(dm_region_hash_create); + +void dm_region_hash_destroy(struct dm_region_hash *rh) +{ + unsigned h; + struct dm_region *reg, *nreg; + + BUG_ON(!list_empty(&rh->quiesced_regions)); + for (h = 0; h < rh->nr_buckets; h++) { + list_for_each_entry_safe(reg, nreg, rh->buckets + h, + hash_list) { + BUG_ON(atomic_read(®->pending)); + mempool_free(reg, rh->region_pool); + } + } + + if (rh->log) + dm_dirty_log_destroy(rh->log); + + if (rh->region_pool) + mempool_destroy(rh->region_pool); + + vfree(rh->buckets); + kfree(rh); +} +// EXPORT_SYMBOL_GPL(dm_region_hash_destroy); + +struct dm_dirty_log *dm_rh_dirty_log(struct dm_region_hash *rh) +{ + return rh->log; +} +// EXPORT_SYMBOL_GPL(dm_rh_dirty_log); + +static unsigned rh_hash(struct dm_region_hash *rh, region_t region) +{ + return (unsigned) ((region * rh->prime) >> rh->shift) & rh->mask; +} + +static struct dm_region *__rh_lookup(struct dm_region_hash *rh, region_t region) +{ + struct dm_region *reg; + struct list_head *bucket = rh->buckets + rh_hash(rh, region); + + list_for_each_entry(reg, bucket, hash_list) + if (reg->key == region) + return reg; + + return NULL; +} + +static void __rh_insert(struct dm_region_hash *rh, struct dm_region *reg) +{ + list_add(®->hash_list, rh->buckets + rh_hash(rh, reg->key)); +} + +static struct dm_region *__rh_alloc(struct dm_region_hash *rh, region_t region) +{ + struct dm_region *reg, *nreg; + + nreg = mempool_alloc(rh->region_pool, GFP_ATOMIC); + if (unlikely(!nreg)) + nreg = kmalloc(sizeof(*nreg), GFP_NOIO | __GFP_NOFAIL); + + nreg->state = rh->log->type->in_sync(rh->log, region, 1) ? + DM_RH_CLEAN : DM_RH_NOSYNC; + nreg->rh = rh; + nreg->key = region; + INIT_LIST_HEAD(&nreg->list); + atomic_set(&nreg->pending, 0); + bio_list_init(&nreg->delayed_bios); + + write_lock_irq(&rh->hash_lock); + reg = __rh_lookup(rh, region); + if (reg) + /* We lost the race. */ + mempool_free(nreg, rh->region_pool); + else { + __rh_insert(rh, nreg); + if (nreg->state == DM_RH_CLEAN) { + spin_lock(&rh->region_lock); + list_add(&nreg->list, &rh->clean_regions); + spin_unlock(&rh->region_lock); + } + + reg = nreg; + } + write_unlock_irq(&rh->hash_lock); + + return reg; +} + +static struct dm_region *__rh_find(struct dm_region_hash *rh, region_t region) +{ + struct dm_region *reg; + + reg = __rh_lookup(rh, region); + if (!reg) { + read_unlock(&rh->hash_lock); + reg = __rh_alloc(rh, region); + read_lock(&rh->hash_lock); + } + + return reg; +} + +int dm_rh_get_state(struct dm_region_hash *rh, region_t region, int may_block) +{ + int r; + struct dm_region *reg; + + read_lock(&rh->hash_lock); + reg = __rh_lookup(rh, region); + read_unlock(&rh->hash_lock); + + if (reg) + return reg->state; + + /* + * The region wasn't in the hash, so we fall back to the + * dirty log. + */ + r = rh->log->type->in_sync(rh->log, region, may_block); + + /* + * Any error from the dirty log (eg. -EWOULDBLOCK) gets + * taken as a DM_RH_NOSYNC + */ + return r == 1 ? DM_RH_CLEAN : DM_RH_NOSYNC; +} +// EXPORT_SYMBOL_GPL(dm_rh_get_state); + +static void complete_resync_work(struct dm_region *reg, int success) +{ + struct dm_region_hash *rh = reg->rh; + + rh->log->type->set_region_sync(rh->log, reg->key, success); + + /* + * Dispatch the bios before we call 'wake_up_all'. + * This is important because if we are suspending, + * we want to know that recovery is complete and + * the work queue is flushed. If we wake_up_all + * before we dispatch_bios (queue bios and call wake()), + * then we risk suspending before the work queue + * has been properly flushed. + */ + rh->dispatch_bios(rh->context, ®->delayed_bios); + if (atomic_dec_and_test(&rh->recovery_in_flight)) + rh->wakeup_all_recovery_waiters(rh->context); + up(&rh->recovery_count); +} + +/* dm_rh_mark_nosync + * @ms + * @bio + * @done + * @error + * + * The bio was written on some mirror(s) but failed on other mirror(s). + * We can successfully endio the bio but should avoid the region being + * marked clean by setting the state DM_RH_NOSYNC. + * + * This function is _not_ safe in interrupt context! + */ +void dm_rh_mark_nosync(struct dm_region_hash *rh, + struct bio *bio, unsigned done, int error) +{ + unsigned long flags; + struct dm_dirty_log *log = rh->log; + struct dm_region *reg; + region_t region = dm_rh_bio_to_region(rh, bio); + int recovering = 0; + + /* We must inform the log that the sync count has changed. */ + log->type->set_region_sync(log, region, 0); + + read_lock(&rh->hash_lock); + reg = __rh_find(rh, region); + read_unlock(&rh->hash_lock); + + /* region hash entry should exist because write was in-flight */ + BUG_ON(!reg); + BUG_ON(!list_empty(®->list)); + + spin_lock_irqsave(&rh->region_lock, flags); + /* + * Possible cases: + * 1) DM_RH_DIRTY + * 2) DM_RH_NOSYNC: was dirty, other preceeding writes failed + * 3) DM_RH_RECOVERING: flushing pending writes + * Either case, the region should have not been connected to list. + */ + recovering = (reg->state == DM_RH_RECOVERING); + reg->state = DM_RH_NOSYNC; + BUG_ON(!list_empty(®->list)); + spin_unlock_irqrestore(&rh->region_lock, flags); + + bio_endio(bio, error); + if (recovering) + complete_resync_work(reg, 0); +} +// EXPORT_SYMBOL_GPL(dm_rh_mark_nosync); + +void dm_rh_update_states(struct dm_region_hash *rh, int errors_handled) +{ + struct dm_region *reg, *next; + + LIST_HEAD(clean); + LIST_HEAD(recovered); + LIST_HEAD(failed_recovered); + + /* + * Quickly grab the lists. + */ + write_lock_irq(&rh->hash_lock); + spin_lock(&rh->region_lock); + if (!list_empty(&rh->clean_regions)) { + list_splice_init(&rh->clean_regions, &clean); + + list_for_each_entry(reg, &clean, list) + list_del(®->hash_list); + } + + if (!list_empty(&rh->recovered_regions)) { + list_splice_init(&rh->recovered_regions, &recovered); + + list_for_each_entry(reg, &recovered, list) + list_del(®->hash_list); + } + + if (!list_empty(&rh->failed_recovered_regions)) { + list_splice_init(&rh->failed_recovered_regions, + &failed_recovered); + + list_for_each_entry(reg, &failed_recovered, list) + list_del(®->hash_list); + } + + spin_unlock(&rh->region_lock); + write_unlock_irq(&rh->hash_lock); + + /* + * All the regions on the recovered and clean lists have + * now been pulled out of the system, so no need to do + * any more locking. + */ + list_for_each_entry_safe(reg, next, &recovered, list) { + rh->log->type->clear_region(rh->log, reg->key); + complete_resync_work(reg, 1); + mempool_free(reg, rh->region_pool); + } + + list_for_each_entry_safe(reg, next, &failed_recovered, list) { + complete_resync_work(reg, errors_handled ? 0 : 1); + mempool_free(reg, rh->region_pool); + } + + list_for_each_entry_safe(reg, next, &clean, list) { + rh->log->type->clear_region(rh->log, reg->key); + mempool_free(reg, rh->region_pool); + } + + rh->log->type->flush(rh->log); +} +// EXPORT_SYMBOL_GPL(dm_rh_update_states); + +void dm_rh_inc(struct dm_region_hash *rh, region_t region) +{ + struct dm_region *reg; + + read_lock(&rh->hash_lock); + reg = __rh_find(rh, region); + + spin_lock_irq(&rh->region_lock); + atomic_inc(®->pending); + + if (reg->state == DM_RH_CLEAN) { + reg->state = DM_RH_DIRTY; + list_del_init(®->list); /* take off the clean list */ + spin_unlock_irq(&rh->region_lock); + + rh->log->type->mark_region(rh->log, reg->key); + } else + spin_unlock_irq(&rh->region_lock); + + + read_unlock(&rh->hash_lock); +} +// EXPORT_SYMBOL_GPL(dm_rh_inc); + +void dm_rh_inc_pending(struct dm_region_hash *rh, struct bio_list *bios) +{ + struct bio *bio; + + for (bio = bios->head; bio; bio = bio->bi_next) + dm_rh_inc(rh, dm_rh_bio_to_region(rh, bio)); +} +// EXPORT_SYMBOL_GPL(dm_rh_inc_pending); + +void dm_rh_dec(struct dm_region_hash *rh, region_t region) +{ + unsigned long flags; + struct dm_region *reg; + int should_wake = 0; + + read_lock(&rh->hash_lock); + reg = __rh_lookup(rh, region); + read_unlock(&rh->hash_lock); + + spin_lock_irqsave(&rh->region_lock, flags); + if (atomic_dec_and_test(®->pending)) { + /* + * There is no pending I/O for this region. + * We can move the region to corresponding list for next action. + * At this point, the region is not yet connected to any list. + * + * If the state is DM_RH_NOSYNC, the region should be kept off + * from clean list. + * The hash entry for DM_RH_NOSYNC will remain in memory + * until the region is recovered or the map is reloaded. + */ + + /* do nothing for DM_RH_NOSYNC */ + if (reg->state == DM_RH_RECOVERING) { + list_add_tail(®->list, &rh->quiesced_regions); + } else if (reg->state == DM_RH_DIRTY) { + reg->state = DM_RH_CLEAN; + list_add(®->list, &rh->clean_regions); + } + should_wake = 1; + } + spin_unlock_irqrestore(&rh->region_lock, flags); + + if (should_wake) + rh->wakeup_workers(rh->context); +} +// EXPORT_SYMBOL_GPL(dm_rh_dec); + +/* + * Starts quiescing a region in preparation for recovery. + */ +static int __rh_recovery_prepare(struct dm_region_hash *rh) +{ + int r; + region_t region; + struct dm_region *reg; + + /* + * Ask the dirty log what's next. + */ + r = rh->log->type->get_resync_work(rh->log, ®ion); + if (r <= 0) + return r; + + /* + * Get this region, and start it quiescing by setting the + * recovering flag. + */ + read_lock(&rh->hash_lock); + reg = __rh_find(rh, region); + read_unlock(&rh->hash_lock); + + spin_lock_irq(&rh->region_lock); + reg->state = DM_RH_RECOVERING; + + /* Already quiesced ? */ + if (atomic_read(®->pending)) + list_del_init(®->list); + else + list_move(®->list, &rh->quiesced_regions); + + spin_unlock_irq(&rh->region_lock); + + return 1; +} + +void dm_rh_recovery_prepare(struct dm_region_hash *rh) +{ + /* Extra reference to avoid race with dm_rh_stop_recovery */ + atomic_inc(&rh->recovery_in_flight); + + while (!down_trylock(&rh->recovery_count)) { + atomic_inc(&rh->recovery_in_flight); + if (__rh_recovery_prepare(rh) <= 0) { + atomic_dec(&rh->recovery_in_flight); + up(&rh->recovery_count); + break; + } + } + + /* Drop the extra reference */ + if (atomic_dec_and_test(&rh->recovery_in_flight)) + rh->wakeup_all_recovery_waiters(rh->context); +} +// EXPORT_SYMBOL_GPL(dm_rh_recovery_prepare); + +/* + * Returns any quiesced regions. + */ +struct dm_region *dm_rh_recovery_start(struct dm_region_hash *rh) +{ + struct dm_region *reg = NULL; + + spin_lock_irq(&rh->region_lock); + if (!list_empty(&rh->quiesced_regions)) { + reg = list_entry(rh->quiesced_regions.next, + struct dm_region, list); + list_del_init(®->list); /* remove from the quiesced list */ + } + spin_unlock_irq(&rh->region_lock); + + return reg; +} +// EXPORT_SYMBOL_GPL(dm_rh_recovery_start); + +void dm_rh_recovery_end(struct dm_region *reg, int success) +{ + struct dm_region_hash *rh = reg->rh; + + spin_lock_irq(&rh->region_lock); + if (success) + list_add(®->list, ®->rh->recovered_regions); + else { + reg->state = DM_RH_NOSYNC; + list_add(®->list, ®->rh->failed_recovered_regions); + } + spin_unlock_irq(&rh->region_lock); + + rh->wakeup_workers(rh->context); +} +// EXPORT_SYMBOL_GPL(dm_rh_recovery_end); + +/* Return recovery in flight count. */ +int dm_rh_recovery_in_flight(struct dm_region_hash *rh) +{ + return atomic_read(&rh->recovery_in_flight); +} +// EXPORT_SYMBOL_GPL(dm_rh_recovery_in_flight); + +int dm_rh_flush(struct dm_region_hash *rh) +{ + return rh->log->type->flush(rh->log); +} +// EXPORT_SYMBOL_GPL(dm_rh_flush); + +void dm_rh_delay(struct dm_region_hash *rh, struct bio *bio) +{ + struct dm_region *reg; + + read_lock(&rh->hash_lock); + reg = __rh_find(rh, dm_rh_bio_to_region(rh, bio)); + bio_list_add(®->delayed_bios, bio); + read_unlock(&rh->hash_lock); +} +// EXPORT_SYMBOL_GPL(dm_rh_delay); + +void dm_rh_delay_by_region(struct dm_region_hash *rh, + struct bio *bio, region_t region) +{ + struct dm_region *reg; + + /* FIXME: locking. */ + read_lock(&rh->hash_lock); + reg = __rh_find(rh, region); + bio_list_add(®->delayed_bios, bio); + read_unlock(&rh->hash_lock); +} +// EXPORT_SYMBOL_GPL(dm_rh_delay_by_region); + +void dm_rh_stop_recovery(struct dm_region_hash *rh) +{ + int i; + + /* wait for any recovering regions */ + for (i = 0; i < rh->max_recovery; i++) + down(&rh->recovery_count); +} +// EXPORT_SYMBOL_GPL(dm_rh_stop_recovery); + +void dm_rh_start_recovery(struct dm_region_hash *rh) +{ + int i; + + for (i = 0; i < rh->max_recovery; i++) + up(&rh->recovery_count); + + rh->wakeup_workers(rh->context); +} +// EXPORT_SYMBOL_GPL(dm_rh_start_recovery); + +MODULE_DESCRIPTION(DM_NAME " region hash"); +MODULE_AUTHOR("Joe Thornber/Heinz Mauelshagen "); +MODULE_LICENSE("GPL"); --- linux-3.2.0.orig/ubuntu/dm-raid4-5/dm-raid45.h +++ linux-3.2.0/ubuntu/dm-raid4-5/dm-raid45.h @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved. + * + * Module Author: Heinz Mauelshagen (Mauelshagen@RedHat.com) + * + * Locking definitions for the device-mapper RAID45 target. + * + * This file is released under the GPL. + * + */ + +#ifndef _DM_RAID45_H +#define _DM_RAID45_H + +/* Factor out to dm.h! */ +#define STR_LEN(ptr, str) (ptr), (str), strlen((ptr)) + +enum dm_lock_type { DM_RAID45_EX, DM_RAID45_SHARED }; + +struct dm_raid45_locking_type { + /* Request a lock on a stripe. */ + void* (*lock)(sector_t key, enum dm_lock_type type); + + /* Release a lock on a stripe. */ + void (*unlock)(void *lock_handle); +}; + +#endif --- linux-3.2.0.orig/Documentation/feature-removal-schedule.txt +++ linux-3.2.0/Documentation/feature-removal-schedule.txt @@ -6,14 +6,6 @@ --------------------------- -What: x86 floppy disable_hlt -When: 2012 -Why: ancient workaround of dubious utility clutters the - code used by everybody else. -Who: Len Brown - ---------------------------- - What: CONFIG_APM_CPU_IDLE, and its ability to call APM BIOS in idle When: 2012 Why: This optional sub-feature of APM is of dubious reliability, --- linux-3.2.0.orig/Documentation/stable_kernel_rules.txt +++ linux-3.2.0/Documentation/stable_kernel_rules.txt @@ -1,4 +1,4 @@ -Everything you ever wanted to know about Linux 2.6 -stable releases. +Everything you ever wanted to know about Linux -stable releases. Rules on what kind of patches are accepted, and which ones are not, into the "-stable" tree: @@ -12,6 +12,12 @@ marked CONFIG_BROKEN), an oops, a hang, data corruption, a real security issue, or some "oh, that's not good" issue. In short, something critical. + - Serious issues as reported by a user of a distribution kernel may also + be considered if they fix a notable performance or interactivity issue. + As these fixes are not as obvious and have a higher risk of a subtle + regression they should only be submitted by a distribution kernel + maintainer and include an addendum linking to a bugzilla entry if it + exists and additional information on the user-visible impact. - New device IDs and quirks are also accepted. - No "theoretical race condition" issues, unless an explanation of how the race can be exploited is also provided. @@ -35,10 +41,10 @@ cherry-picked than this can be specified in the following format in the sign-off area: - Cc: # .32.x: a1f84a3: sched: Check for idle - Cc: # .32.x: 1b9508f: sched: Rate-limit newidle - Cc: # .32.x: fd21073: sched: Fix affinity logic - Cc: # .32.x + Cc: # 3.3.x: a1f84a3: sched: Check for idle + Cc: # 3.3.x: 1b9508f: sched: Rate-limit newidle + Cc: # 3.3.x: fd21073: sched: Fix affinity logic + Cc: # 3.3.x Signed-off-by: Ingo Molnar The tag sequence has the meaning of: @@ -72,6 +78,15 @@ security kernel team, and not go through the normal review cycle. Contact the kernel security team for more details on this procedure. +Trees: + + - The queues of patches, for both completed versions and in progress + versions can be found at: + http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git + - The finalized and tagged releases of all stable kernels can be found + in separate branches per version at: + http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git + Review committee: --- linux-3.2.0.orig/Documentation/kernel-parameters.txt +++ linux-3.2.0/Documentation/kernel-parameters.txt @@ -252,12 +252,15 @@ For broken nForce2 BIOS resulting in XT-PIC timer. acpi_sleep= [HW,ACPI] Sleep options - Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig, + Format: { s3_bios, s3_mode, s3_beep, s3_leds, s4_nohwsig, old_ordering, nonvs, sci_force_enable } See Documentation/power/video.txt for information on s3_bios and s3_mode. s3_beep is for debugging; it makes the PC's speaker beep as soon as the kernel's real-mode entry point is called. + s3_leds is for debugging; it flashes the keyboard LEDs + 3 times as soon as the kernel's real-mode entry point is + called. s4_nohwsig prevents ACPI hardware signature from being used during resume from hibernation. old_ordering causes the ACPI 1.0 ordering of the _PTS @@ -552,6 +555,8 @@ UART at the specified I/O port or MMIO address, switching to the matching ttyS device later. The options are the same as for ttyS, above. + hvc Use the hypervisor console device . This is for + both Xen and PowerPC hypervisors. If the device connected to the port is not a TTY but a braille device, prepend "brl," before the device type, for instance @@ -567,6 +572,10 @@ /proc//coredump_filter. See also Documentation/filesystems/proc.txt. + 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 @@ -689,6 +698,21 @@ The filter can be disabled or changed to another driver later using sysfs. + drm_kms_helper.edid_firmware=[:] + Broken monitors, graphic adapters and KVMs may + send no or incorrect EDID data sets. This parameter + allows to specify an EDID data set in the + /lib/firmware directory that is used instead. + Generic built-in EDID data sets are used, if one of + edid/1024x768.bin, edid/1280x1024.bin, + edid/1680x1050.bin, or edid/1920x1080.bin is given + and no file with the same name exists. Details and + instructions how to build your own EDID data are + available in Documentation/EDID/HOWTO.txt. An EDID + data set will only be used for a particular connector, + if its name and a colon are prepended to the EDID + name. + dscc4.setup= [NET] earlycon= [KNL] Output early console device and options. @@ -703,6 +727,7 @@ earlyprintk= [X86,SH,BLACKFIN] earlyprintk=vga + earlyprintk=xen earlyprintk=serial[,ttySn[,baudrate]] earlyprintk=ttySn[,baudrate] earlyprintk=dbgp[debugController#] @@ -720,6 +745,8 @@ The VGA output is eventually overwritten by the real console. + The xen output can only be used by Xen PV guests. + ekgdboc= [X86,KGDB] Allow early kernel console debugging ekgdboc=kbd @@ -729,6 +756,12 @@ edd= [EDD] Format: {"off" | "on" | "skip[mbr]"} + efi_no_storage_paranoia [EFI; X86] + Using this parameter you can use more than 50% of + your efi variable storage. Use this parameter only if + you are really sure that your UEFI does sane gc and + fulfills the spec otherwise your board may brick. + eisa_irq_edge= [PARISC,HW] See header of drivers/parisc/eisa.c. @@ -943,6 +976,20 @@ i8k.restricted [HW] Allow controlling fans only if SYS_ADMIN capability is set. + i915.invert_brightness= + [DRM] Invert the sense of the variable that is used to + set the brightness of the panel backlight. Normally a + brightness value of 0 indicates backlight switched off, + and the maximum of the brightness value sets the backlight + to maximum brightness. If this parameter is set to 0 + (default) and the machine requires it, or this parameter + is set to 1, a brightness value of 0 sets the backlight + to maximum brightness, and the maximum of the brightness + value switches the backlight off. + -1 -- never invert brightness + 0 -- machine default + 1 -- force brightness inversion + icn= [HW,ISDN] Format: [,[,[,]]] @@ -1009,6 +1056,8 @@ inport.irq= [HW] Inport (ATI XL and Microsoft) busmouse driver Format: + int_pln_enable [x86] Enable power limit notification interrupt + intel_iommu= [DMAR] Intel IOMMU driver (DMAR) option on Enable intel iommu driver. @@ -2169,6 +2218,12 @@ default: off. + printk.always_kmsg_dump= + Trigger kmsg_dump for cases other than kernel oops or + panics + Format: (1/Y/y=enable, 0/N/n=disable) + default: disabled + printk.time= Show timing data prefixed to each printk message line Format: (1/Y/y=enable, 0/N/n=disable) --- linux-3.2.0.orig/Documentation/HOWTO +++ linux-3.2.0/Documentation/HOWTO @@ -218,16 +218,16 @@ Linux kernel development process currently consists of a few different main kernel "branches" and lots of different subsystem-specific kernel branches. These different branches are: - - main 2.6.x kernel tree - - 2.6.x.y -stable kernel tree - - 2.6.x -git kernel patches + - main 3.x kernel tree + - 3.x.y -stable kernel tree + - 3.x -git kernel patches - subsystem specific kernel trees and patches - - the 2.6.x -next kernel tree for integration tests + - the 3.x -next kernel tree for integration tests -2.6.x kernel tree +3.x kernel tree ----------------- -2.6.x kernels are maintained by Linus Torvalds, and can be found on -kernel.org in the pub/linux/kernel/v2.6/ directory. Its development +3.x kernels are maintained by Linus Torvalds, and can be found on +kernel.org in the pub/linux/kernel/v3.x/ directory. Its development process is as follows: - As soon as a new kernel is released a two weeks window is open, during this period of time maintainers can submit big diffs to @@ -262,21 +262,21 @@ released according to perceived bug status, not according to a preconceived timeline." -2.6.x.y -stable kernel tree +3.x.y -stable kernel tree --------------------------- -Kernels with 4-part versions are -stable kernels. They contain +Kernels with 3-part versions are -stable kernels. They contain relatively small and critical fixes for security problems or significant -regressions discovered in a given 2.6.x kernel. +regressions discovered in a given 3.x kernel. This is the recommended branch for users who want the most recent stable kernel and are not interested in helping test development/experimental versions. -If no 2.6.x.y kernel is available, then the highest numbered 2.6.x +If no 3.x.y kernel is available, then the highest numbered 3.x kernel is the current stable kernel. -2.6.x.y are maintained by the "stable" team , and are -released as needs dictate. The normal release period is approximately +3.x.y are maintained by the "stable" team , and +are released as needs dictate. The normal release period is approximately two weeks, but it can be longer if there are no pressing problems. A security-related problem, instead, can cause a release to happen almost instantly. @@ -285,7 +285,7 @@ documents what kinds of changes are acceptable for the -stable tree, and how the release process works. -2.6.x -git patches +3.x -git patches ------------------ These are daily snapshots of Linus' kernel tree which are managed in a git repository (hence the name.) These patches are usually released @@ -317,13 +317,13 @@ accepted, or rejected. Most of these patchwork sites are listed at http://patchwork.kernel.org/. -2.6.x -next kernel tree for integration tests +3.x -next kernel tree for integration tests --------------------------------------------- -Before updates from subsystem trees are merged into the mainline 2.6.x +Before updates from subsystem trees are merged into the mainline 3.x tree, they need to be integration-tested. For this purpose, a special testing repository exists into which virtually all subsystem trees are pulled on an almost daily basis: - http://git.kernel.org/?p=linux/kernel/git/sfr/linux-next.git + http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git http://linux.f-seidel.de/linux-next/pmwiki/ This way, the -next kernel gives a summary outlook onto what will be --- linux-3.2.0.orig/Documentation/usb/usbmon.txt +++ linux-3.2.0/Documentation/usb/usbmon.txt @@ -47,10 +47,11 @@ 2. Find which bus connects to the desired device -Run "cat /proc/bus/usb/devices", and find the T-line which corresponds to -the device. Usually you do it by looking for the vendor string. If you have -many similar devices, unplug one and compare two /proc/bus/usb/devices outputs. -The T-line will have a bus number. Example: +Run "cat /sys/kernel/debug/usb/devices", and find the T-line which corresponds +to the device. Usually you do it by looking for the vendor string. If you have +many similar devices, unplug one and compare the two +/sys/kernel/debug/usb/devices outputs. The T-line will have a bus number. +Example: T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 @@ -58,7 +59,10 @@ S: Manufacturer=ATEN S: Product=UC100KM V2.00 -Bus=03 means it's bus 3. +"Bus=03" means it's bus 3. Alternatively, you can look at the output from +"lsusb" and get the bus number from the appropriate line. Example: + +Bus 003 Device 002: ID 0557:2004 ATEN UC100KM V2.00 3. Start 'cat' --- linux-3.2.0.orig/Documentation/filesystems/overlayfs.txt +++ linux-3.2.0/Documentation/filesystems/overlayfs.txt @@ -0,0 +1,199 @@ +Written by: Neil Brown + +Overlay Filesystem +================== + +This document describes a prototype for a new approach to providing +overlay-filesystem functionality in Linux (sometimes referred to as +union-filesystems). An overlay-filesystem tries to present a +filesystem which is the result over overlaying one filesystem on top +of the other. + +The result will inevitably fail to look exactly like a normal +filesystem for various technical reasons. The expectation is that +many use cases will be able to ignore these differences. + +This approach is 'hybrid' because the objects that appear in the +filesystem do not all appear to belong to that filesystem. In many +cases an object accessed in the union will be indistinguishable +from accessing the corresponding object from the original filesystem. +This is most obvious from the 'st_dev' field returned by stat(2). + +While directories will report an st_dev from the overlay-filesystem, +all non-directory objects will report an st_dev from the lower or +upper filesystem that is providing the object. Similarly st_ino will +only be unique when combined with st_dev, and both of these can change +over the lifetime of a non-directory object. Many applications and +tools ignore these values and will not be affected. + +Upper and Lower +--------------- + +An overlay filesystem combines two filesystems - an 'upper' filesystem +and a 'lower' filesystem. When a name exists in both filesystems, the +object in the 'upper' filesystem is visible while the object in the +'lower' filesystem is either hidden or, in the case of directories, +merged with the 'upper' object. + +It would be more correct to refer to an upper and lower 'directory +tree' rather than 'filesystem' as it is quite possible for both +directory trees to be in the same filesystem and there is no +requirement that the root of a filesystem be given for either upper or +lower. + +The lower filesystem can be any filesystem supported by Linux and does +not need to be writable. The lower filesystem can even be another +overlayfs. The upper filesystem will normally be writable and if it +is it must support the creation of trusted.* extended attributes, and +must provide valid d_type in readdir responses, at least for symbolic +links - so NFS is not suitable. + +A read-only overlay of two read-only filesystems may use any +filesystem type. + +Directories +----------- + +Overlaying mainly involved directories. If a given name appears in both +upper and lower filesystems and refers to a non-directory in either, +then the lower object is hidden - the name refers only to the upper +object. + +Where both upper and lower objects are directories, a merged directory +is formed. + +At mount time, the two directories given as mount options are combined +into a merged directory: + + mount -t overlayfs overlayfs -olowerdir=/lower,upperdir=/upper /overlay + +Then whenever a lookup is requested in such a merged directory, the +lookup is performed in each actual directory and the combined result +is cached in the dentry belonging to the overlay filesystem. If both +actual lookups find directories, both are stored and a merged +directory is created, otherwise only one is stored: the upper if it +exists, else the lower. + +Only the lists of names from directories are merged. Other content +such as metadata and extended attributes are reported for the upper +directory only. These attributes of the lower directory are hidden. + +whiteouts and opaque directories +-------------------------------- + +In order to support rm and rmdir without changing the lower +filesystem, an overlay filesystem needs to record in the upper filesystem +that files have been removed. This is done using whiteouts and opaque +directories (non-directories are always opaque). + +The overlay filesystem uses extended attributes with a +"trusted.overlay." prefix to record these details. + +A whiteout is created as a symbolic link with target +"(overlay-whiteout)" and with xattr "trusted.overlay.whiteout" set to "y". +When a whiteout is found in the upper level of a merged directory, any +matching name in the lower level is ignored, and the whiteout itself +is also hidden. + +A directory is made opaque by setting the xattr "trusted.overlay.opaque" +to "y". Where the upper filesystem contains an opaque directory, any +directory in the lower filesystem with the same name is ignored. + +readdir +------- + +When a 'readdir' request is made on a merged directory, the upper and +lower directories are each read and the name lists merged in the +obvious way (upper is read first, then lower - entries that already +exist are not re-added). This merged name list is cached in the +'struct file' and so remains as long as the file is kept open. If the +directory is opened and read by two processes at the same time, they +will each have separate caches. A seekdir to the start of the +directory (offset 0) followed by a readdir will cause the cache to be +discarded and rebuilt. + +This means that changes to the merged directory do not appear while a +directory is being read. This is unlikely to be noticed by many +programs. + +seek offsets are assigned sequentially when the directories are read. +Thus if + - read part of a directory + - remember an offset, and close the directory + - re-open the directory some time later + - seek to the remembered offset + +there may be little correlation between the old and new locations in +the list of filenames, particularly if anything has changed in the +directory. + +Readdir on directories that are not merged is simply handled by the +underlying directory (upper or lower). + + +Non-directories +--------------- + +Objects that are not directories (files, symlinks, device-special +files etc.) are presented either from the upper or lower filesystem as +appropriate. When a file in the lower filesystem is accessed in a way +the requires write-access, such as opening for write access, changing +some metadata etc., the file is first copied from the lower filesystem +to the upper filesystem (copy_up). Note that creating a hard-link +also requires copy_up, though of course creation of a symlink does +not. + +The copy_up may turn out to be unnecessary, for example if the file is +opened for read-write but the data is not modified. + +The copy_up process first makes sure that the containing directory +exists in the upper filesystem - creating it and any parents as +necessary. It then creates the object with the same metadata (owner, +mode, mtime, symlink-target etc.) and then if the object is a file, the +data is copied from the lower to the upper filesystem. Finally any +extended attributes are copied up. + +Once the copy_up is complete, the overlay filesystem simply +provides direct access to the newly created file in the upper +filesystem - future operations on the file are barely noticed by the +overlay filesystem (though an operation on the name of the file such as +rename or unlink will of course be noticed and handled). + + +Non-standard behavior +--------------------- + +The copy_up operation essentially creates a new, identical file and +moves it over to the old name. The new file may be on a different +filesystem, so both st_dev and st_ino of the file may change. + +Any open files referring to this inode will access the old data and +metadata. Similarly any file locks obtained before copy_up will not +apply to the copied up file. + +On a file is opened with O_RDONLY fchmod(2), fchown(2), futimesat(2) +and fsetxattr(2) will fail with EROFS. + +If a file with multiple hard links is copied up, then this will +"break" the link. Changes will not be propagated to other names +referring to the same inode. + +Symlinks in /proc/PID/ and /proc/PID/fd which point to a non-directory +object in overlayfs will not contain vaid absolute paths, only +relative paths leading up to the filesystem's root. This will be +fixed in the future. + +Some operations are not atomic, for example a crash during copy_up or +rename will leave the filesystem in an inconsitent state. This will +be addressed in the future. + +Changes to underlying filesystems +--------------------------------- + +Offline changes, when the overlay is not mounted, are allowed to either +the upper or the lower trees. + +Changes to the underlying filesystems while part of a mounted overlay +filesystem are not allowed. If the underlying filesystem is changed, +the behavior of the overlay is undefined, though it will not result in +a crash or deadlock. --- linux-3.2.0.orig/Documentation/filesystems/Locking +++ linux-3.2.0/Documentation/filesystems/Locking @@ -62,6 +62,7 @@ int (*removexattr) (struct dentry *, const char *); void (*truncate_range)(struct inode *, loff_t, loff_t); int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, u64 len); + struct file *(*open)(struct dentry *,struct file *,const struct cred *); locking rules: all may block @@ -89,6 +90,7 @@ removexattr: yes truncate_range: yes fiemap: no +open: no Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on victim. cross-directory ->rename() has (per-superblock) ->s_vfs_rename_sem. --- linux-3.2.0.orig/Documentation/filesystems/vfs.txt +++ linux-3.2.0/Documentation/filesystems/vfs.txt @@ -364,6 +364,8 @@ ssize_t (*listxattr) (struct dentry *, char *, size_t); int (*removexattr) (struct dentry *, const char *); void (*truncate_range)(struct inode *, loff_t, loff_t); + struct file *(*open) (struct dentry *, struct file *, + const struct cred *); }; Again, all methods are called without any locks being held, unless @@ -475,6 +477,12 @@ truncate_range: a method provided by the underlying filesystem to truncate a range of blocks , i.e. punch a hole somewhere in a file. + open: this is an alternative to f_op->open(), the difference is that this + method may return any open file, not necessarily originating from the + same filesystem as the one i_op->open() was called on. It may be useful + for stacking filesystems which want to allow native I/O directly on + underlying files. + The Address Space Object ======================== --- linux-3.2.0.orig/Documentation/filesystems/proc.txt +++ linux-3.2.0/Documentation/filesystems/proc.txt @@ -41,6 +41,8 @@ 3.5 /proc//mountinfo - Information about mounts 3.6 /proc//comm & /proc//task//comm + 4 Configuring procfs + 4.1 Mount options ------------------------------------------------------------------------------ Preface @@ -1542,3 +1544,40 @@ is limited in size compared to the cmdline value, so writing anything longer then the kernel's TASK_COMM_LEN (currently 16 chars) will result in a truncated comm value. + + +------------------------------------------------------------------------------ +Configuring procfs +------------------------------------------------------------------------------ + +4.1 Mount options +--------------------- + +The following mount options are supported: + + hidepid= Set /proc// access mode. + gid= Set the group authorized to learn processes information. + +hidepid=0 means classic mode - everybody may access all /proc// directories +(default). + +hidepid=1 means users may not access any /proc// directories but their +own. Sensitive files like cmdline, sched*, status are now protected against +other users. This makes it impossible to learn whether any user runs +specific program (given the program doesn't reveal itself by its behaviour). +As an additional bonus, as /proc//cmdline is unaccessible for other users, +poorly written programs passing sensitive information via program arguments are +now protected against local eavesdroppers. + +hidepid=2 means hidepid=1 plus all /proc// will be fully invisible to other +users. It doesn't mean that it hides a fact whether a process with a specific +pid value exists (it can be learned by other means, e.g. by "kill -0 $PID"), +but it hides process' uid and gid, which may be learned by stat()'ing +/proc// otherwise. It greatly complicates an intruder's task of gathering +information about running processes, whether some daemon runs with elevated +privileges, whether other user runs some sensitive program, whether other users +run any program at all, etc. + +gid= defines a group authorized to learn processes information otherwise +prohibited by hidepid=. If you use some daemon like identd which needs to learn +information about processes information, just add identd to this group. --- linux-3.2.0.orig/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt +++ linux-3.2.0/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt @@ -10,8 +10,8 @@ Optional properties: - fsl,card-wired : Indicate the card is wired to host permanently -- fsl,cd-internal : Indicate to use controller internal card detection -- fsl,wp-internal : Indicate to use controller internal write protection +- fsl,cd-controller : Indicate to use controller internal card detection +- fsl,wp-controller : Indicate to use controller internal write protection - cd-gpios : Specify GPIOs for card detection - wp-gpios : Specify GPIOs for write protection @@ -21,8 +21,8 @@ compatible = "fsl,imx51-esdhc"; reg = <0x70004000 0x4000>; interrupts = <1>; - fsl,cd-internal; - fsl,wp-internal; + fsl,cd-controller; + fsl,wp-controller; }; esdhc@70008000 { --- linux-3.2.0.orig/Documentation/devicetree/bindings/net/calxeda-xgmac.txt +++ linux-3.2.0/Documentation/devicetree/bindings/net/calxeda-xgmac.txt @@ -0,0 +1,15 @@ +* Calxeda Highbank 10Gb XGMAC Ethernet + +Required properties: +- compatible : Should be "calxeda,hb-xgmac" +- reg : Address and length of the register set for the device +- interrupts : Should contain 3 xgmac interrupts. The 1st is main interrupt. + The 2nd is pwr mgt interrupt. The 3rd is low power state interrupt. + +Example: + +ethernet@fff50000 { + compatible = "calxeda,hb-xgmac"; + reg = <0xfff50000 0x1000>; + interrupts = <0 77 4 0 78 4 0 79 4>; +}; --- linux-3.2.0.orig/Documentation/devicetree/bindings/tty/serial/of-serial.txt +++ linux-3.2.0/Documentation/devicetree/bindings/tty/serial/of-serial.txt @@ -10,6 +10,9 @@ - "ns16850" - "nvidia,tegra20-uart" - "ibm,qpace-nwp-serial" + - "altr,16550-FIFO32" + - "altr,16550-FIFO64" + - "altr,16550-FIFO128" - "serial" if the port type is unknown. - reg : offset and length of the register set for the device. - interrupts : should contain uart interrupt. --- linux-3.2.0.orig/Documentation/ABI/testing/sysfs-driver-wacom +++ linux-3.2.0/Documentation/ABI/testing/sysfs-driver-wacom @@ -15,9 +15,10 @@ Description: Attribute group for control of the status LEDs and the OLEDs. This attribute group is only available for Intuos 4 M, L, - and XL (with LEDs and OLEDs) and Cintiq 21UX2 (LEDs only). - Therefore its presence implicitly signifies the presence of - said LEDs and OLEDs on the tablet device. + and XL (with LEDs and OLEDs), Intuos 5 (LEDs only), and Cintiq + 21UX2 and Cintiq 24HD (LEDs only). Therefore its presence + implicitly signifies the presence of said LEDs and OLEDs on the + tablet device. What: /sys/bus/usb/devices/-:./wacom_led/status0_luminance Date: August 2011 @@ -40,17 +41,18 @@ Date: August 2011 Contact: linux-input@vger.kernel.org Description: - Writing to this file sets which one of the four (for Intuos 4) - or of the right four (for Cintiq 21UX2) status LEDs is active (0..3). - The other three LEDs on the same side are always inactive. + Writing to this file sets which one of the four (for Intuos 4 + and Intuos 5) or of the right four (for Cintiq 21UX2 and Cintiq + 24HD) status LEDs is active (0..3). The other three LEDs on the + same side are always inactive. What: /sys/bus/usb/devices/-:./wacom_led/status_led1_select Date: September 2011 Contact: linux-input@vger.kernel.org Description: - Writing to this file sets which one of the left four (for Cintiq 21UX2) - status LEDs is active (0..3). The other three LEDs on the left are always - inactive. + Writing to this file sets which one of the left four (for Cintiq 21UX2 + and Cintiq 24HD) status LEDs is active (0..3). The other three LEDs on + the left are always inactive. What: /sys/bus/usb/devices/-:./wacom_led/buttons_luminance Date: August 2011 --- linux-3.2.0.orig/Documentation/cgroups/memory.txt +++ linux-3.2.0/Documentation/cgroups/memory.txt @@ -440,6 +440,10 @@ 5.3 swappiness Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only. +Please note that unlike the global swappiness, memcg knob set to 0 +really prevents from any swapping even if there is a swap storage +available. This might lead to memcg OOM killer if there are no file +pages to reclaim. Following cgroups' swappiness can't be changed. - root cgroup (uses /proc/sys/vm/swappiness). --- linux-3.2.0.orig/Documentation/dvb/get_dvb_firmware +++ linux-3.2.0/Documentation/dvb/get_dvb_firmware @@ -115,7 +115,7 @@ sub tda10046 { my $sourcefile = "TT_PCI_2.19h_28_11_2006.zip"; - my $url = "http://www.tt-download.com/download/updates/219/$sourcefile"; + my $url = "http://technotrend.com.ua/download/software/219/$sourcefile"; my $hash = "6a7e1e2f2644b162ff0502367553c72d"; my $outfile = "dvb-fe-tda10046.fw"; my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); --- linux-3.2.0.orig/Documentation/prctl/seccomp_filter.txt +++ linux-3.2.0/Documentation/prctl/seccomp_filter.txt @@ -0,0 +1,156 @@ + SECure COMPuting with filters + ============================= + +Introduction +------------ + +A large number of system calls are exposed to every userland process +with many of them going unused for the entire lifetime of the process. +As system calls change and mature, bugs are found and eradicated. A +certain subset of userland applications benefit by having a reduced set +of available system calls. The resulting set reduces the total kernel +surface exposed to the application. System call filtering is meant for +use with those applications. + +Seccomp filtering provides a means for a process to specify a filter for +incoming system calls. The filter is expressed as a Berkeley Packet +Filter (BPF) program, as with socket filters, except that the data +operated on is related to the system call being made: system call +number and the system call arguments. This allows for expressive +filtering of system calls using a filter program language with a long +history of being exposed to userland and a straightforward data set. + +Additionally, BPF makes it impossible for users of seccomp to fall prey +to time-of-check-time-of-use (TOCTOU) attacks that are common in system +call interposition frameworks. BPF programs may not dereference +pointers which constrains all filters to solely evaluating the system +call arguments directly. + +What it isn't +------------- + +System call filtering isn't a sandbox. It provides a clearly defined +mechanism for minimizing the exposed kernel surface. It is meant to be +a tool for sandbox developers to use. Beyond that, policy for logical +behavior and information flow should be managed with a combination of +other system hardening techniques and, potentially, an LSM of your +choosing. Expressive, dynamic filters provide further options down this +path (avoiding pathological sizes or selecting which of the multiplexed +system calls in socketcall() is allowed, for instance) which could be +construed, incorrectly, as a more complete sandboxing solution. + +Usage +----- + +An additional seccomp mode is added and is enabled using the same +prctl(2) call as the strict seccomp. If the architecture has +CONFIG_HAVE_ARCH_SECCOMP_FILTER, then filters may be added as below: + +PR_SET_SECCOMP: + Now takes an additional argument which specifies a new filter + using a BPF program. + The BPF program will be executed over struct seccomp_data + reflecting the system call number, arguments, and other + metadata. The BPF program must then return one of the + acceptable values to inform the kernel which action should be + taken. + + Usage: + prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, prog); + + The 'prog' argument is a pointer to a struct sock_fprog which + will contain the filter program. If the program is invalid, the + call will return -1 and set errno to EINVAL. + + Note, is_compat_task is also tracked for the @prog. This means + that once set the calling task will have all of its system calls + blocked if it switches its system call ABI. + + If fork/clone and execve are allowed by @prog, any child + processes will be constrained to the same filters and system + call ABI as the parent. + + Prior to use, the task must call prctl(PR_SET_NO_NEW_PRIVS, 1) or + run with CAP_SYS_ADMIN privileges in its namespace. If these are not + true, -EACCES will be returned. This requirement ensures that filter + programs cannot be applied to child processes with greater privileges + than the task that installed them. + + Additionally, if prctl(2) is allowed by the attached filter, + additional filters may be layered on which will increase evaluation + time, but allow for further decreasing the attack surface during + execution of a process. + +The above call returns 0 on success and non-zero on error. + +Return values +------------- +A seccomp filter may return any of the following values. If multiple +filters exist, the return value for the evaluation of a given system +call will always use the highest precedent value. (For example, +SECCOMP_RET_KILL will always take precedence.) + +In precedence order, they are: + +SECCOMP_RET_KILL: + Results in the task exiting immediately without executing the + system call. The exit status of the task (status & 0x7f) will + be SIGSYS, not SIGKILL. + +SECCOMP_RET_TRAP: + Results in the kernel sending a SIGSYS signal to the triggering + task without executing the system call. The kernel will + rollback the register state to just before the system call + entry such that a signal handler in the task will be able to + inspect the ucontext_t->uc_mcontext registers and emulate + system call success or failure upon return from the signal + handler. + + The SECCOMP_RET_DATA portion of the return value will be passed + as si_errno. + + SIGSYS triggered by seccomp will have a si_code of SYS_SECCOMP. + +SECCOMP_RET_ERRNO: + Results in the lower 16-bits of the return value being passed + to userland as the errno without executing the system call. + +SECCOMP_RET_TRACE: + When returned, this value will cause the kernel to attempt to + notify a ptrace()-based tracer prior to executing the system + call. If there is no tracer present, -ENOSYS is returned to + userland and the system call is not executed. + + A tracer will be notified if it requests PTRACE_O_TRACESECCOMP + using ptrace(PTRACE_SETOPTIONS). The tracer will be notified + of a PTRACE_EVENT_SECCOMP and the SECCOMP_RET_DATA portion of + the BPF program return value will be available to the tracer + via PTRACE_GETEVENTMSG. + +SECCOMP_RET_ALLOW: + Results in the system call being executed. + +If multiple filters exist, the return value for the evaluation of a +given system call will always use the highest precedent value. + +Precedence is only determined using the SECCOMP_RET_ACTION mask. When +multiple filters return values of the same precedence, only the +SECCOMP_RET_DATA from the most recently installed filter will be +returned. + + +Example +------- + +The samples/seccomp/ directory contains both an x86-specific example +and a more generic example of a higher level macro interface for BPF +program generation. + +Adding architecture support +----------------------- + +See arch/Kconfig for the authoritative requirements. In general, if an +architecture supports both ptrace_event and seccomp, it will be able to +support seccomp filter with minor fixup: SIGSYS support and seccomp return +value checking. Then it must just add CONFIG_HAVE_ARCH_SECCOMP_FILTER +to its arch-specific Kconfig. --- linux-3.2.0.orig/Documentation/sound/alsa/HD-Audio-Models.txt +++ linux-3.2.0/Documentation/sound/alsa/HD-Audio-Models.txt @@ -60,10 +60,11 @@ ========== N/A -ALC269 +ALC269/270/275/276/280/282 ====== laptop-amic Laptops with analog-mic input laptop-dmic Laptops with digital-mic input + lenovo-dock Enables docking station I/O for some Lenovos ALC662/663/272 ============== @@ -350,7 +351,6 @@ mic-ref Reference board with power management for ports dell-s14 Dell laptop dell-vostro-3500 Dell Vostro 3500 laptop - hp HP laptops with (inverted) mute-LED hp-dv7-4000 HP dv-7 4000 auto BIOS setup (default) --- linux-3.2.0.orig/Documentation/security/00-INDEX +++ linux-3.2.0/Documentation/security/00-INDEX @@ -4,6 +4,8 @@ - how to get started with the SELinux security enhancement. Smack.txt - documentation on the Smack Linux Security Module. +Yama.txt + - documentation on the Yama Linux Security Module. apparmor.txt - documentation on the AppArmor security extension. credentials.txt --- linux-3.2.0.orig/Documentation/security/Yama.txt +++ linux-3.2.0/Documentation/security/Yama.txt @@ -0,0 +1,108 @@ +Yama is a Linux Security Module that collects a number of system-wide DAC +security protections that are not handled by the core kernel itself. To +select it at boot time, specify "security=yama" (though this will disable +any other LSM). + +Yama is controlled through sysctl in /proc/sys/kernel/yama: + +- protected_sticky_symlinks +- protected_nonaccess_hardlinks +- ptrace_scope + +============================================================== + +protected_sticky_symlinks: + +A long-standing class of security issues is the symlink-based +time-of-check-time-of-use race, most commonly seen in world-writable +directories like /tmp. The common method of exploitation of this flaw +is to cross privilege boundaries when following a given symlink (i.e. a +root process follows a symlink belonging to another user). For a likely +incomplete list of hundreds of examples across the years, please see: +http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=/tmp + +When set to "0", symlink following behavior is unrestricted. + +When set to "1" symlinks are permitted to be followed only when outside +a sticky world-writable directory, or when the uid of the symlink and +follower match, or when the directory owner matches the symlink's owner. + +This protection is based on the restrictions in Openwall and grsecurity. + +============================================================== + +protected_nonaccess_hardlinks: + +Hardlinks can be abused in a similar fashion to symlinks in sticky +world-writable directories, but their weakness is not limited to +just that scenario. For example, if /etc and /home are on the same +partition, a regular user can create a hardlink to /etc/shadow in their +home directory. While it retains the original owner and permissions, +it is possible for privileged programs that are otherwise symlink-safe +to mistakenly access the file through its hardlink. Additionally, a very +minor untraceable quota-bypassing local denial of service is possible by +an attacker exhausting disk space by filling a world-writable directory +with hardlinks. + +When set to "0", hardlink creation behavior is unrestricted. + +When set to "1", hardlinks cannot be created to files that a given user +would be unable to read and write originally, or are otherwise sensitive. + +This protection is based on the restrictions in Openwall and grsecurity. + +============================================================== + +ptrace_scope: + +As Linux grows in popularity, it will become a larger target for +malware. One particularly troubling weakness of the Linux process +interfaces is that a single user is able to examine the memory and +running state of any of their processes. For example, if one application +(e.g. Pidgin) was compromised, it would be possible for an attacker to +attach to other running processes (e.g. Firefox, SSH sessions, GPG agent, +etc) to extract additional credentials and continue to expand the scope +of their attack without resorting to user-assisted phishing. + +This is not a theoretical problem. SSH session hijacking +(http://www.storm.net.nz/projects/7) and arbitrary code injection +(http://c-skills.blogspot.com/2007/05/injectso.html) attacks already +exist and remain possible if ptrace is allowed to operate as before. +Since ptrace is not commonly used by non-developers and non-admins, system +builders should be allowed the option to disable this debugging system. + +For a solution, some applications use prctl(PR_SET_DUMPABLE, ...) to +specifically disallow such ptrace attachment (e.g. ssh-agent), but many +do not. A more general solution is to only allow ptrace directly from a +parent to a child process (i.e. direct "gdb EXE" and "strace EXE" still +work), or with CAP_SYS_PTRACE (i.e. "gdb --pid=PID", and "strace -p PID" +still work as root). + +For software that has defined application-specific relationships +between a debugging process and its inferior (crash handlers, etc), +prctl(PR_SET_PTRACER, pid, ...) can be used. An inferior can declare which +other process (and its descendents) are allowed to call PTRACE_ATTACH +against it. Only one such declared debugging process can exists for +each inferior at a time. For example, this is used by KDE, Chromium, and +Firefox's crash handlers, and by Wine for allowing only Wine processes +to ptrace each other. If a process wishes to entirely disable ptrace +restrictions, it can call prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, ...) +so that any process (even those in external pid namespaces) may attach. + +The sysctl settings are: + +0 - classic ptrace permissions: a process can PTRACE_ATTACH to any other + process running under the same uid, as long as it is dumpable (i.e. + did not transition uids, start privileged, or have called + prctl(PR_SET_DUMPABLE...) already). + +1 - restricted ptrace: a process must have a predefined relationship + with the inferior it wants to call PTRACE_ATTACH on. By default, + this relationship is that of only its descendants when the above + classic criteria is also met. To change the relationship, an + inferior can call prctl(PR_SET_PTRACER, debugger, ...) to declare + an allowed debugger PID to call PTRACE_ATTACH on the inferior. + +The original children-only logic was based on the restrictions in grsecurity. + +============================================================== --- linux-3.2.0.orig/Documentation/hwmon/zl6100 +++ linux-3.2.0/Documentation/hwmon/zl6100 @@ -73,14 +73,12 @@ delay ----- -Some Intersil/Zilker Labs DC-DC controllers require a minimum interval between -I2C bus accesses. According to Intersil, the minimum interval is 2 ms, though -1 ms appears to be sufficient and has not caused any problems in testing. -The problem is known to affect ZL6100, ZL2105, and ZL2008. It is known not to -affect ZL2004 and ZL6105. The driver automatically sets the interval to 1 ms -except for ZL2004 and ZL6105. To enable manual override, the driver provides a -writeable module parameter, 'delay', which can be used to set the interval to -a value between 0 and 65,535 microseconds. +Intersil/Zilker Labs DC-DC controllers require a minimum interval between I2C +bus accesses. According to Intersil, the minimum interval is 2 ms, though 1 ms +appears to be sufficient and has not caused any problems in testing. The problem +is known to affect all currently supported chips. For manual override, the +driver provides a writeable module parameter, 'delay', which can be used to set +the interval to a value between 0 and 65,535 microseconds. Sysfs entries --- linux-3.2.0.orig/Documentation/hwmon/coretemp +++ linux-3.2.0/Documentation/hwmon/coretemp @@ -6,7 +6,9 @@ Prefix: 'coretemp' CPUID: family 0x6, models 0xe (Pentium M DC), 0xf (Core 2 DC 65nm), 0x16 (Core 2 SC 65nm), 0x17 (Penryn 45nm), - 0x1a (Nehalem), 0x1c (Atom), 0x1e (Lynnfield) + 0x1a (Nehalem), 0x1c (Atom), 0x1e (Lynnfield), + 0x26 (Tunnel Creek Atom), 0x27 (Medfield Atom), + 0x36 (Cedar Trail Atom) Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide http://softwarecommunity.intel.com/Wiki/Mobility/720.htm @@ -65,6 +67,11 @@ U3400 105 P4505/P4500 90 +32nm Atom Processors + Z2460 90 + D2700/2550/2500 100 + N2850/2800/2650/2600 100 + 45nm Xeon Processors 5400 Quad-Core X5492, X5482, X5472, X5470, X5460, X5450 85 E5472, E5462, E5450/40/30/20/10/05 85 @@ -85,6 +92,9 @@ N475/470/455/450 100 N280/270 90 330/230 125 + E680/660/640/620 90 + E680T/660T/640T/620T 110 + CE4170/4150/4110 110 45nm Core2 Processors Solo ULV SU3500/3300 100 --- linux-3.2.0.orig/Documentation/hwmon/k10temp +++ linux-3.2.0/Documentation/hwmon/k10temp @@ -11,7 +11,7 @@ Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra) * AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series) * AMD Family 14h processors: "Brazos" (C/E/G/Z-Series) -* AMD Family 15h processors: "Bulldozer" +* AMD Family 15h processors: "Bulldozer" (FX-Series), "Trinity" Prefix: 'k10temp' Addresses scanned: PCI space --- linux-3.2.0.orig/Documentation/hwmon/w83627ehf +++ linux-3.2.0/Documentation/hwmon/w83627ehf @@ -50,7 +50,7 @@ (NCT6775F), and NCT6776F super I/O chips. We will refer to them collectively as Winbond chips. -The chips implement 2 to 4 temperature sensors (9 for NCT6775F and NCT6776F), +The chips implement 3 to 4 temperature sensors (9 for NCT6775F and NCT6776F), 2 to 5 fan rotation speed sensors, 8 to 10 analog voltage sensors, one VID (except for 627UHG), alarms with beep warnings (control unimplemented), and some automatic fan regulation strategies (plus manual fan control mode). --- linux-3.2.0.orig/Documentation/hwmon/jc42 +++ linux-3.2.0/Documentation/hwmon/jc42 @@ -7,21 +7,29 @@ Addresses scanned: I2C 0x18 - 0x1f Datasheets: http://www.analog.com/static/imported-files/data_sheets/ADT7408.pdf - * IDT TSE2002B3, TS3000B3 - Prefix: 'tse2002b3', 'ts3000b3' + * Atmel AT30TS00 + Prefix: 'at30ts00' Addresses scanned: I2C 0x18 - 0x1f Datasheets: - http://www.idt.com/products/getdoc.cfm?docid=18715691 - http://www.idt.com/products/getdoc.cfm?docid=18715692 + http://www.atmel.com/Images/doc8585.pdf + * IDT TSE2002B3, TSE2002GB2, TS3000B3, TS3000GB2 + Prefix: 'tse2002', 'ts3000' + Addresses scanned: I2C 0x18 - 0x1f + Datasheets: + http://www.idt.com/sites/default/files/documents/IDT_TSE2002B3C_DST_20100512_120303152056.pdf + http://www.idt.com/sites/default/files/documents/IDT_TSE2002GB2A1_DST_20111107_120303145914.pdf + http://www.idt.com/sites/default/files/documents/IDT_TS3000B3A_DST_20101129_120303152013.pdf + http://www.idt.com/sites/default/files/documents/IDT_TS3000GB2A1_DST_20111104_120303151012.pdf * Maxim MAX6604 Prefix: 'max6604' Addresses scanned: I2C 0x18 - 0x1f Datasheets: http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf - * Microchip MCP9805, MCP98242, MCP98243, MCP9843 - Prefixes: 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843' + * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP9843 + Prefixes: 'mcp9804', 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843' Addresses scanned: I2C 0x18 - 0x1f Datasheets: + http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf @@ -48,6 +56,12 @@ Datasheets: http://www.st.com/stonline/products/literature/ds/13447/stts424.pdf http://www.st.com/stonline/products/literature/ds/13448/stts424e02.pdf + * ST Microelectronics STTS2002, STTS3000 + Prefix: 'stts2002', 'stts3000' + Addresses scanned: I2C 0x18 - 0x1f + Datasheets: + http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00225278.pdf + http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/CD00270920.pdf * JEDEC JC 42.4 compliant temperature sensor chips Prefix: 'jc42' Addresses scanned: I2C 0x18 - 0x1f --- linux-3.2.0.orig/Documentation/networking/ip-sysctl.txt +++ linux-3.2.0/Documentation/networking/ip-sysctl.txt @@ -137,7 +137,7 @@ (if tcp_adv_win_scale > 0) or bytes-bytes/2^(-tcp_adv_win_scale), if it is <= 0. Possible values are [-31, 31], inclusive. - Default: 2 + Default: 1 tcp_allowed_congestion_control - STRING Show/set the congestion control choices available to non-privileged @@ -397,7 +397,7 @@ net.core.rmem_max. Calling setsockopt() with SO_RCVBUF disables automatic tuning of that socket's receive buffer size, in which case this value is ignored. - Default: between 87380B and 4MB, depending on RAM size. + Default: between 87380B and 6MB, depending on RAM size. tcp_sack - BOOLEAN Enable select acknowledgments (SACKS). @@ -524,6 +524,11 @@ Documentation/networking/tcp-thin.txt Default: 0 +tcp_challenge_ack_limit - INTEGER + Limits number of Challenge ACK sent per second, as recommended + in RFC 5961 (Improving TCP's Robustness to Blind In-Window Attacks) + Default: 100 + UDP variables: udp_mem - vector of 3 INTEGERs: min, pressure, max --- linux-3.2.0.orig/Documentation/i2c/busses/i2c-i801 +++ linux-3.2.0/Documentation/i2c/busses/i2c-i801 @@ -20,6 +20,8 @@ * Intel Patsburg (PCH) * Intel DH89xxCC (PCH) * Intel Panther Point (PCH) + * Intel Lynx Point (PCH) + * Intel Lynx Point-LP (PCH) Datasheets: Publicly available at the Intel website On Intel Patsburg and later chipsets, both the normal host SMBus controller --- linux-3.2.0.orig/Documentation/i2c/busses/i2c-piix4 +++ linux-3.2.0/Documentation/i2c/busses/i2c-piix4 @@ -8,7 +8,7 @@ Datasheet: Only available via NDA from ServerWorks * ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges Datasheet: Not publicly available - * AMD Hudson-2 + * AMD Hudson-2, CZ Datasheet: Not publicly available * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge Datasheet: Publicly available at the SMSC website http://www.smsc.com --- linux-3.2.0.orig/Documentation/virtual/lguest/lguest.c +++ linux-3.2.0/Documentation/virtual/lguest/lguest.c @@ -1299,6 +1299,7 @@ dev->feature_len = 0; dev->num_vq = 0; dev->running = false; + dev->next = NULL; /* * Append to device list. Prepending to a single-linked list is --- linux-3.2.0.orig/Documentation/input/alps.txt +++ linux-3.2.0/Documentation/input/alps.txt @@ -0,0 +1,188 @@ +ALPS Touchpad Protocol +---------------------- + +Introduction +------------ + +Currently the ALPS touchpad driver supports four protocol versions in use by +ALPS touchpads, called versions 1, 2, 3, and 4. Information about the various +protocol versions is contained in the following sections. + +Detection +--------- + +All ALPS touchpads should respond to the "E6 report" command sequence: +E8-E6-E6-E6-E9. An ALPS touchpad should respond with either 00-00-0A or +00-00-64. + +If the E6 report is successful, the touchpad model is identified using the "E7 +report" sequence: E8-E7-E7-E7-E9. The response is the model signature and is +matched against known models in the alps_model_data_array. + +With protocol versions 3 and 4, the E7 report model signature is always +73-02-64. To differentiate between these versions, the response from the +"Enter Command Mode" sequence must be inspected as described below. + +Command Mode +------------ + +Protocol versions 3 and 4 have a command mode that is used to read and write +one-byte device registers in a 16-bit address space. The command sequence +EC-EC-EC-E9 places the device in command mode, and the device will respond +with 88-07 followed by a third byte. This third byte can be used to determine +whether the devices uses the version 3 or 4 protocol. + +To exit command mode, PSMOUSE_CMD_SETSTREAM (EA) is sent to the touchpad. + +While in command mode, register addresses can be set by first sending a +specific command, either EC for v3 devices or F5 for v4 devices. Then the +address is sent one nibble at a time, where each nibble is encoded as a +command with optional data. This enoding differs slightly between the v3 and +v4 protocols. + +Once an address has been set, the addressed register can be read by sending +PSMOUSE_CMD_GETINFO (E9). The first two bytes of the response contains the +address of the register being read, and the third contains the value of the +register. Registers are written by writing the value one nibble at a time +using the same encoding used for addresses. + +Packet Format +------------- + +In the following tables, the following notation is used. + + CAPITALS = stick, miniscules = touchpad + +?'s can have different meanings on different models, such as wheel rotation, +extra buttons, stick buttons on a dualpoint, etc. + +PS/2 packet format +------------------ + + byte 0: 0 0 YSGN XSGN 1 M R L + byte 1: X7 X6 X5 X4 X3 X2 X1 X0 + byte 2: Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 + +Note that the device never signals overflow condition. + +ALPS Absolute Mode - Protocol Verion 1 +-------------------------------------- + + byte 0: 1 0 0 0 1 x9 x8 x7 + byte 1: 0 x6 x5 x4 x3 x2 x1 x0 + byte 2: 0 ? ? l r ? fin ges + byte 3: 0 ? ? ? ? y9 y8 y7 + byte 4: 0 y6 y5 y4 y3 y2 y1 y0 + byte 5: 0 z6 z5 z4 z3 z2 z1 z0 + +ALPS Absolute Mode - Protocol Version 2 +--------------------------------------- + + byte 0: 1 ? ? ? 1 ? ? ? + byte 1: 0 x6 x5 x4 x3 x2 x1 x0 + byte 2: 0 x10 x9 x8 x7 ? fin ges + byte 3: 0 y9 y8 y7 1 M R L + byte 4: 0 y6 y5 y4 y3 y2 y1 y0 + byte 5: 0 z6 z5 z4 z3 z2 z1 z0 + +Dualpoint device -- interleaved packet format +--------------------------------------------- + + byte 0: 1 1 0 0 1 1 1 1 + byte 1: 0 x6 x5 x4 x3 x2 x1 x0 + byte 2: 0 x10 x9 x8 x7 0 fin ges + byte 3: 0 0 YSGN XSGN 1 1 1 1 + byte 4: X7 X6 X5 X4 X3 X2 X1 X0 + byte 5: Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 + byte 6: 0 y9 y8 y7 1 m r l + byte 7: 0 y6 y5 y4 y3 y2 y1 y0 + byte 8: 0 z6 z5 z4 z3 z2 z1 z0 + +ALPS Absolute Mode - Protocol Version 3 +--------------------------------------- + +ALPS protocol version 3 has three different packet formats. The first two are +associated with touchpad events, and the third is associatd with trackstick +events. + +The first type is the touchpad position packet. + + byte 0: 1 ? x1 x0 1 1 1 1 + byte 1: 0 x10 x9 x8 x7 x6 x5 x4 + byte 2: 0 y10 y9 y8 y7 y6 y5 y4 + byte 3: 0 M R L 1 m r l + byte 4: 0 mt x3 x2 y3 y2 y1 y0 + byte 5: 0 z6 z5 z4 z3 z2 z1 z0 + +Note that for some devices the trackstick buttons are reported in this packet, +and on others it is reported in the trackstick packets. + +The second packet type contains bitmaps representing the x and y axes. In the +bitmaps a given bit is set if there is a finger covering that position on the +given axis. Thus the bitmap packet can be used for low-resolution multi-touch +data, although finger tracking is not possible. This packet also encodes the +number of contacts (f1 and f0 in the table below). + + byte 0: 1 1 x1 x0 1 1 1 1 + byte 1: 0 x8 x7 x6 x5 x4 x3 x2 + byte 2: 0 y7 y6 y5 y4 y3 y2 y1 + byte 3: 0 y10 y9 y8 1 1 1 1 + byte 4: 0 x14 x13 x12 x11 x10 x9 y0 + byte 5: 0 1 ? ? ? ? f1 f0 + +This packet only appears after a position packet with the mt bit set, and +ususally only appears when there are two or more contacts (although +ocassionally it's seen with only a single contact). + +The final v3 packet type is the trackstick packet. + + byte 0: 1 1 x7 y7 1 1 1 1 + byte 1: 0 x6 x5 x4 x3 x2 x1 x0 + byte 2: 0 y6 y5 y4 y3 y2 y1 y0 + byte 3: 0 1 0 0 1 0 0 0 + byte 4: 0 z4 z3 z2 z1 z0 ? ? + byte 5: 0 0 1 1 1 1 1 1 + +ALPS Absolute Mode - Protocol Version 4 +--------------------------------------- + +Protocol version 4 has an 8-byte packet format. + + byte 0: 1 ? x1 x0 1 1 1 1 + byte 1: 0 x10 x9 x8 x7 x6 x5 x4 + byte 2: 0 y10 y9 y8 y7 y6 y5 y4 + byte 3: 0 1 x3 x2 y3 y2 y1 y0 + byte 4: 0 ? ? ? 1 ? r l + byte 5: 0 z6 z5 z4 z3 z2 z1 z0 + byte 6: bitmap data (described below) + byte 7: bitmap data (described below) + +The last two bytes represent a partial bitmap packet, with 3 full packets +required to construct a complete bitmap packet. Once assembled, the 6-byte +bitmap packet has the following format: + + byte 0: 0 1 x7 x6 x5 x4 x3 x2 + byte 1: 0 x1 x0 y4 y3 y2 y1 y0 + byte 2: 0 0 ? x14 x13 x12 x11 x10 + byte 3: 0 x9 x8 y9 y8 y7 y6 y5 + byte 4: 0 0 0 0 0 0 0 0 + byte 5: 0 0 0 0 0 0 0 y10 + +There are several things worth noting here. + + 1) In the bitmap data, bit 6 of byte 0 serves as a sync byte to + identify the first fragment of a bitmap packet. + + 2) The bitmaps represent the same data as in the v3 bitmap packets, although + the packet layout is different. + + 3) There doesn't seem to be a count of the contact points anywhere in the v4 + protocol packets. Deriving a count of contact points must be done by + analyzing the bitmaps. + + 4) There is a 3 to 1 ratio of position packets to bitmap packets. Therefore + MT position can only be updated for every third ST position update, and + the count of contact points can only be updated every third packet as + well. + +So far no v4 devices with tracksticks have been encountered. --- linux-3.2.0.orig/Documentation/development-process/5.Posting +++ linux-3.2.0/Documentation/development-process/5.Posting @@ -271,10 +271,10 @@ the linux-kernel list. - If you are fixing a bug, think about whether the fix should go into the - next stable update. If so, stable@kernel.org should get a copy of the - patch. Also add a "Cc: stable@kernel.org" to the tags within the patch - itself; that will cause the stable team to get a notification when your - fix goes into the mainline. + next stable update. If so, stable@vger.kernel.org should get a copy of + the patch. Also add a "Cc: stable@vger.kernel.org" to the tags within + the patch itself; that will cause the stable team to get a notification + when your fix goes into the mainline. When selecting recipients for a patch, it is good to have an idea of who you think will eventually accept the patch and get it merged. While it --- linux-3.2.0.orig/Documentation/EDID/1024x768.S +++ linux-3.2.0/Documentation/EDID/1024x768.S @@ -0,0 +1,44 @@ +/* + 1024x768.S: EDID data set for standard 1024x768 60 Hz monitor + + Copyright (C) 2011 Carsten Emde + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +/* EDID */ +#define VERSION 1 +#define REVISION 3 + +/* Display */ +#define CLOCK 65000 /* kHz */ +#define XPIX 1024 +#define YPIX 768 +#define XY_RATIO XY_RATIO_4_3 +#define XBLANK 320 +#define YBLANK 38 +#define XOFFSET 8 +#define XPULSE 144 +#define YOFFSET (63+3) +#define YPULSE (63+6) +#define DPI 72 +#define VFREQ 60 /* Hz */ +#define TIMING_NAME "Linux XGA" +#define ESTABLISHED_TIMINGS_BITS 0x08 /* Bit 3 -> 1024x768 @60 Hz */ +#define HSYNC_POL 0 +#define VSYNC_POL 0 +#define CRC 0x55 + +#include "edid.S" --- linux-3.2.0.orig/Documentation/EDID/1680x1050.S +++ linux-3.2.0/Documentation/EDID/1680x1050.S @@ -0,0 +1,44 @@ +/* + 1680x1050.S: EDID data set for standard 1680x1050 60 Hz monitor + + Copyright (C) 2012 Carsten Emde + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +/* EDID */ +#define VERSION 1 +#define REVISION 3 + +/* Display */ +#define CLOCK 146250 /* kHz */ +#define XPIX 1680 +#define YPIX 1050 +#define XY_RATIO XY_RATIO_16_10 +#define XBLANK 560 +#define YBLANK 39 +#define XOFFSET 104 +#define XPULSE 176 +#define YOFFSET (63+3) +#define YPULSE (63+6) +#define DPI 96 +#define VFREQ 60 /* Hz */ +#define TIMING_NAME "Linux WSXGA" +#define ESTABLISHED_TIMINGS_BITS 0x00 /* none */ +#define HSYNC_POL 1 +#define VSYNC_POL 1 +#define CRC 0x26 + +#include "edid.S" --- linux-3.2.0.orig/Documentation/EDID/Makefile +++ linux-3.2.0/Documentation/EDID/Makefile @@ -0,0 +1,26 @@ + +SOURCES := $(wildcard [0-9]*x[0-9]*.S) + +BIN := $(patsubst %.S, %.bin, $(SOURCES)) + +IHEX := $(patsubst %.S, %.bin.ihex, $(SOURCES)) + +CODE := $(patsubst %.S, %.c, $(SOURCES)) + +all: $(BIN) $(IHEX) $(CODE) + +clean: + @rm -f *.o *.bin.ihex *.bin *.c + +%.o: %.S + @cc -c $^ + +%.bin: %.o + @objcopy -Obinary $^ $@ + +%.bin.ihex: %.o + @objcopy -Oihex $^ $@ + @dos2unix $@ 2>/dev/null + +%.c: %.bin + @echo "{" >$@; hexdump -f hex $^ >>$@; echo "};" >>$@ --- linux-3.2.0.orig/Documentation/EDID/HOWTO.txt +++ linux-3.2.0/Documentation/EDID/HOWTO.txt @@ -0,0 +1,39 @@ +In the good old days when graphics parameters were configured explicitly +in a file called xorg.conf, even broken hardware could be managed. + +Today, with the advent of Kernel Mode Setting, a graphics board is +either correctly working because all components follow the standards - +or the computer is unusable, because the screen remains dark after +booting or it displays the wrong area. Cases when this happens are: +- The graphics board does not recognize the monitor. +- The graphics board is unable to detect any EDID data. +- The graphics board incorrectly forwards EDID data to the driver. +- The monitor sends no or bogus EDID data. +- A KVM sends its own EDID data instead of querying the connected monitor. +Adding the kernel parameter "nomodeset" helps in most cases, but causes +restrictions later on. + +As a remedy for such situations, the kernel configuration item +CONFIG_DRM_LOAD_EDID_FIRMWARE was introduced. It allows to provide an +individually prepared or corrected EDID data set in the /lib/firmware +directory from where it is loaded via the firmware interface. The code +(see drivers/gpu/drm/drm_edid_load.c) contains built-in data sets for +commonly used screen resolutions (1024x768, 1280x1024, 1680x1050, +1920x1080) as binary blobs, but the kernel source tree does not contain +code to create these data. In order to elucidate the origin of the +built-in binary EDID blobs and to facilitate the creation of individual +data for a specific misbehaving monitor, commented sources and a +Makefile environment are given here. + +To create binary EDID and C source code files from the existing data +material, simply type "make". + +If you want to create your own EDID file, copy the file 1024x768.S and +replace the settings with your own data. The CRC value in the last line + #define CRC 0x55 +is a bit tricky. After a first version of the binary data set is +created, it must be be checked with the "edid-decode" utility which will +most probably complain about a wrong CRC. Fortunately, the utility also +displays the correct CRC which must then be inserted into the source +file. After the make procedure is repeated, the EDID data set is ready +to be used. --- linux-3.2.0.orig/Documentation/EDID/1920x1080.S +++ linux-3.2.0/Documentation/EDID/1920x1080.S @@ -0,0 +1,44 @@ +/* + 1920x1080.S: EDID data set for standard 1920x1080 60 Hz monitor + + Copyright (C) 2012 Carsten Emde + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +/* EDID */ +#define VERSION 1 +#define REVISION 3 + +/* Display */ +#define CLOCK 148500 /* kHz */ +#define XPIX 1920 +#define YPIX 1080 +#define XY_RATIO XY_RATIO_16_9 +#define XBLANK 280 +#define YBLANK 45 +#define XOFFSET 88 +#define XPULSE 44 +#define YOFFSET (63+4) +#define YPULSE (63+5) +#define DPI 96 +#define VFREQ 60 /* Hz */ +#define TIMING_NAME "Linux FHD" +#define ESTABLISHED_TIMINGS_BITS 0x00 /* none */ +#define HSYNC_POL 1 +#define VSYNC_POL 1 +#define CRC 0x05 + +#include "edid.S" --- linux-3.2.0.orig/Documentation/EDID/hex +++ linux-3.2.0/Documentation/EDID/hex @@ -0,0 +1 @@ +"\t" 8/1 "0x%02x, " "\n" --- linux-3.2.0.orig/Documentation/EDID/edid.S +++ linux-3.2.0/Documentation/EDID/edid.S @@ -0,0 +1,261 @@ +/* + edid.S: EDID data template + + Copyright (C) 2012 Carsten Emde + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + + +/* Manufacturer */ +#define MFG_LNX1 'L' +#define MFG_LNX2 'N' +#define MFG_LNX3 'X' +#define SERIAL 0 +#define YEAR 2012 +#define WEEK 5 + +/* EDID 1.3 standard definitions */ +#define XY_RATIO_16_10 0b00 +#define XY_RATIO_4_3 0b01 +#define XY_RATIO_5_4 0b10 +#define XY_RATIO_16_9 0b11 + +#define mfgname2id(v1,v2,v3) \ + ((((v1-'@')&0x1f)<<10)+(((v2-'@')&0x1f)<<5)+((v3-'@')&0x1f)) +#define swap16(v1) ((v1>>8)+((v1&0xff)<<8)) +#define msbs2(v1,v2) ((((v1>>8)&0x0f)<<4)+((v2>>8)&0x0f)) +#define msbs4(v1,v2,v3,v4) \ + (((v1&0x03)>>2)+((v2&0x03)>>4)+((v3&0x03)>>6)+((v4&0x03)>>8)) +#define pixdpi2mm(pix,dpi) ((pix*25)/dpi) +#define xsize pixdpi2mm(XPIX,DPI) +#define ysize pixdpi2mm(YPIX,DPI) + + .data + +/* Fixed header pattern */ +header: .byte 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00 + +mfg_id: .word swap16(mfgname2id(MFG_LNX1, MFG_LNX2, MFG_LNX3)) + +prod_code: .word 0 + +/* Serial number. 32 bits, little endian. */ +serial_number: .long SERIAL + +/* Week of manufacture */ +week: .byte WEEK + +/* Year of manufacture, less 1990. (1990-2245) + If week=255, it is the model year instead */ +year: .byte YEAR-1990 + +version: .byte VERSION /* EDID version, usually 1 (for 1.3) */ +revision: .byte REVISION /* EDID revision, usually 3 (for 1.3) */ + +/* If Bit 7=1 Digital input. If set, the following bit definitions apply: + Bits 6-1 Reserved, must be 0 + Bit 0 Signal is compatible with VESA DFP 1.x TMDS CRGB, + 1 pixel per clock, up to 8 bits per color, MSB aligned, + If Bit 7=0 Analog input. If clear, the following bit definitions apply: + Bits 6-5 Video white and sync levels, relative to blank + 00=+0.7/-0.3 V; 01=+0.714/-0.286 V; + 10=+1.0/-0.4 V; 11=+0.7/0 V + Bit 4 Blank-to-black setup (pedestal) expected + Bit 3 Separate sync supported + Bit 2 Composite sync (on HSync) supported + Bit 1 Sync on green supported + Bit 0 VSync pulse must be serrated when somposite or + sync-on-green is used. */ +video_parms: .byte 0x6d + +/* Maximum horizontal image size, in centimetres + (max 292 cm/115 in at 16:9 aspect ratio) */ +max_hor_size: .byte xsize/10 + +/* Maximum vertical image size, in centimetres. + If either byte is 0, undefined (e.g. projector) */ +max_vert_size: .byte ysize/10 + +/* Display gamma, minus 1, times 100 (range 1.00-3.5 */ +gamma: .byte 120 + +/* Bit 7 DPMS standby supported + Bit 6 DPMS suspend supported + Bit 5 DPMS active-off supported + Bits 4-3 Display type: 00=monochrome; 01=RGB colour; + 10=non-RGB multicolour; 11=undefined + Bit 2 Standard sRGB colour space. Bytes 25-34 must contain + sRGB standard values. + Bit 1 Preferred timing mode specified in descriptor block 1. + Bit 0 GTF supported with default parameter values. */ +dsp_features: .byte 0xea + +/* Chromaticity coordinates. */ +/* Red and green least-significant bits + Bits 7-6 Red x value least-significant 2 bits + Bits 5-4 Red y value least-significant 2 bits + Bits 3-2 Green x value lst-significant 2 bits + Bits 1-0 Green y value least-significant 2 bits */ +red_green_lsb: .byte 0x5e + +/* Blue and white least-significant 2 bits */ +blue_white_lsb: .byte 0xc0 + +/* Red x value most significant 8 bits. + 0-255 encodes 0-0.996 (255/256); 0-0.999 (1023/1024) with lsbits */ +red_x_msb: .byte 0xa4 + +/* Red y value most significant 8 bits */ +red_y_msb: .byte 0x59 + +/* Green x and y value most significant 8 bits */ +green_x_y_msb: .byte 0x4a,0x98 + +/* Blue x and y value most significant 8 bits */ +blue_x_y_msb: .byte 0x25,0x20 + +/* Default white point x and y value most significant 8 bits */ +white_x_y_msb: .byte 0x50,0x54 + +/* Established timings */ +/* Bit 7 720x400 @ 70 Hz + Bit 6 720x400 @ 88 Hz + Bit 5 640x480 @ 60 Hz + Bit 4 640x480 @ 67 Hz + Bit 3 640x480 @ 72 Hz + Bit 2 640x480 @ 75 Hz + Bit 1 800x600 @ 56 Hz + Bit 0 800x600 @ 60 Hz */ +estbl_timing1: .byte 0x00 + +/* Bit 7 800x600 @ 72 Hz + Bit 6 800x600 @ 75 Hz + Bit 5 832x624 @ 75 Hz + Bit 4 1024x768 @ 87 Hz, interlaced (1024x768) + Bit 3 1024x768 @ 60 Hz + Bit 2 1024x768 @ 72 Hz + Bit 1 1024x768 @ 75 Hz + Bit 0 1280x1024 @ 75 Hz */ +estbl_timing2: .byte ESTABLISHED_TIMINGS_BITS + +/* Bit 7 1152x870 @ 75 Hz (Apple Macintosh II) + Bits 6-0 Other manufacturer-specific display mod */ +estbl_timing3: .byte 0x00 + +/* Standard timing */ +/* X resolution, less 31, divided by 8 (256-2288 pixels) */ +std_xres: .byte (XPIX/8)-31 +/* Y resolution, X:Y pixel ratio + Bits 7-6 X:Y pixel ratio: 00=16:10; 01=4:3; 10=5:4; 11=16:9. + Bits 5-0 Vertical frequency, less 60 (60-123 Hz) */ +std_vres: .byte (XY_RATIO<<6)+VFREQ-60 + .fill 7,2,0x0101 /* Unused */ + +descriptor1: +/* Pixel clock in 10 kHz units. (0.-655.35 MHz, little-endian) */ +clock: .word CLOCK/10 + +/* Horizontal active pixels 8 lsbits (0-4095) */ +x_act_lsb: .byte XPIX&0xff +/* Horizontal blanking pixels 8 lsbits (0-4095) + End of active to start of next active. */ +x_blk_lsb: .byte XBLANK&0xff +/* Bits 7-4 Horizontal active pixels 4 msbits + Bits 3-0 Horizontal blanking pixels 4 msbits */ +x_msbs: .byte msbs2(XPIX,XBLANK) + +/* Vertical active lines 8 lsbits (0-4095) */ +y_act_lsb: .byte YPIX&0xff +/* Vertical blanking lines 8 lsbits (0-4095) */ +y_blk_lsb: .byte YBLANK&0xff +/* Bits 7-4 Vertical active lines 4 msbits + Bits 3-0 Vertical blanking lines 4 msbits */ +y_msbs: .byte msbs2(YPIX,YBLANK) + +/* Horizontal sync offset pixels 8 lsbits (0-1023) From blanking start */ +x_snc_off_lsb: .byte XOFFSET&0xff +/* Horizontal sync pulse width pixels 8 lsbits (0-1023) */ +x_snc_pls_lsb: .byte XPULSE&0xff +/* Bits 7-4 Vertical sync offset lines 4 lsbits -63) + Bits 3-0 Vertical sync pulse width lines 4 lsbits -63) */ +y_snc_lsb: .byte ((YOFFSET-63)<<4)+(YPULSE-63) +/* Bits 7-6 Horizontal sync offset pixels 2 msbits + Bits 5-4 Horizontal sync pulse width pixels 2 msbits + Bits 3-2 Vertical sync offset lines 2 msbits + Bits 1-0 Vertical sync pulse width lines 2 msbits */ +xy_snc_msbs: .byte msbs4(XOFFSET,XPULSE,YOFFSET,YPULSE) + +/* Horizontal display size, mm, 8 lsbits (0-4095 mm, 161 in) */ +x_dsp_size: .byte xsize&0xff + +/* Vertical display size, mm, 8 lsbits (0-4095 mm, 161 in) */ +y_dsp_size: .byte ysize&0xff + +/* Bits 7-4 Horizontal display size, mm, 4 msbits + Bits 3-0 Vertical display size, mm, 4 msbits */ +dsp_size_mbsb: .byte msbs2(xsize,ysize) + +/* Horizontal border pixels (each side; total is twice this) */ +x_border: .byte 0 +/* Vertical border lines (each side; total is twice this) */ +y_border: .byte 0 + +/* Bit 7 Interlaced + Bits 6-5 Stereo mode: 00=No stereo; other values depend on bit 0: + Bit 0=0: 01=Field sequential, sync=1 during right; 10=similar, + sync=1 during left; 11=4-way interleaved stereo + Bit 0=1 2-way interleaved stereo: 01=Right image on even lines; + 10=Left image on even lines; 11=side-by-side + Bits 4-3 Sync type: 00=Analog composite; 01=Bipolar analog composite; + 10=Digital composite (on HSync); 11=Digital separate + Bit 2 If digital separate: Vertical sync polarity (1=positive) + Other types: VSync serrated (HSync during VSync) + Bit 1 If analog sync: Sync on all 3 RGB lines (else green only) + Digital: HSync polarity (1=positive) + Bit 0 2-way line-interleaved stereo, if bits 4-3 are not 00. */ +features: .byte 0x18+(VSYNC_POL<<2)+(HSYNC_POL<<1) + +descriptor2: .byte 0,0 /* Not a detailed timing descriptor */ + .byte 0 /* Must be zero */ + .byte 0xff /* Descriptor is monitor serial number (text) */ + .byte 0 /* Must be zero */ +start1: .ascii "Linux #0" +end1: .byte 0x0a /* End marker */ + .fill 12-(end1-start1), 1, 0x20 /* Padded spaces */ +descriptor3: .byte 0,0 /* Not a detailed timing descriptor */ + .byte 0 /* Must be zero */ + .byte 0xfd /* Descriptor is monitor range limits */ + .byte 0 /* Must be zero */ +start2: .byte VFREQ-1 /* Minimum vertical field rate (1-255 Hz) */ + .byte VFREQ+1 /* Maximum vertical field rate (1-255 Hz) */ + .byte (CLOCK/(XPIX+XBLANK))-1 /* Minimum horizontal line rate + (1-255 kHz) */ + .byte (CLOCK/(XPIX+XBLANK))+1 /* Maximum horizontal line rate + (1-255 kHz) */ + .byte (CLOCK/10000)+1 /* Maximum pixel clock rate, rounded up + to 10 MHz multiple (10-2550 MHz) */ + .byte 0 /* No extended timing information type */ +end2: .byte 0x0a /* End marker */ + .fill 12-(end2-start2), 1, 0x20 /* Padded spaces */ +descriptor4: .byte 0,0 /* Not a detailed timing descriptor */ + .byte 0 /* Must be zero */ + .byte 0xfc /* Descriptor is text */ + .byte 0 /* Must be zero */ +start3: .ascii TIMING_NAME +end3: .byte 0x0a /* End marker */ + .fill 12-(end3-start3), 1, 0x20 /* Padded spaces */ +extensions: .byte 0 /* Number of extensions to follow */ +checksum: .byte CRC /* Sum of all bytes must be 0 */ --- linux-3.2.0.orig/Documentation/EDID/1280x1024.S +++ linux-3.2.0/Documentation/EDID/1280x1024.S @@ -0,0 +1,44 @@ +/* + 1280x1024.S: EDID data set for standard 1280x1024 60 Hz monitor + + Copyright (C) 2011 Carsten Emde + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +/* EDID */ +#define VERSION 1 +#define REVISION 3 + +/* Display */ +#define CLOCK 108000 /* kHz */ +#define XPIX 1280 +#define YPIX 1024 +#define XY_RATIO XY_RATIO_5_4 +#define XBLANK 408 +#define YBLANK 42 +#define XOFFSET 48 +#define XPULSE 112 +#define YOFFSET (63+1) +#define YPULSE (63+3) +#define DPI 72 +#define VFREQ 60 /* Hz */ +#define TIMING_NAME "Linux SXGA" +#define ESTABLISHED_TIMINGS_BITS 0x00 /* none */ +#define HSYNC_POL 1 +#define VSYNC_POL 1 +#define CRC 0xa0 + +#include "edid.S" --- linux-3.2.0.orig/sound/usb/pcm.c +++ linux-3.2.0/sound/usb/pcm.c @@ -67,6 +67,8 @@ unsigned int hwptr_done; subs = (struct snd_usb_substream *)substream->runtime->private_data; + if (subs->stream->chip->shutdown) + return SNDRV_PCM_POS_XRUN; spin_lock(&subs->lock); hwptr_done = subs->hwptr_done; substream->runtime->delay = snd_usb_pcm_delay(subs, @@ -373,8 +375,14 @@ changed = subs->cur_audiofmt != fmt || subs->period_bytes != params_period_bytes(hw_params) || subs->cur_rate != rate; + + down_read(&subs->stream->chip->shutdown_rwsem); + if (subs->stream->chip->shutdown) { + ret = -ENODEV; + goto unlock; + } if ((ret = set_format(subs, fmt)) < 0) - return ret; + goto unlock; if (subs->cur_rate != rate) { struct usb_host_interface *alts; @@ -383,12 +391,11 @@ alts = &iface->altsetting[fmt->altset_idx]; ret = snd_usb_init_sample_rate(subs->stream->chip, subs->interface, alts, fmt, rate); if (ret < 0) - return ret; + goto unlock; subs->cur_rate = rate; } if (changed) { - mutex_lock(&subs->stream->chip->shutdown_mutex); /* format changed */ snd_usb_release_substream_urbs(subs, 0); /* influenced: period_bytes, channels, rate, format, */ @@ -396,9 +403,10 @@ params_rate(hw_params), snd_pcm_format_physical_width(params_format(hw_params)) * params_channels(hw_params)); - mutex_unlock(&subs->stream->chip->shutdown_mutex); } +unlock: + up_read(&subs->stream->chip->shutdown_rwsem); return ret; } @@ -414,9 +422,9 @@ subs->cur_audiofmt = NULL; subs->cur_rate = 0; subs->period_bytes = 0; - mutex_lock(&subs->stream->chip->shutdown_mutex); + down_read(&subs->stream->chip->shutdown_rwsem); snd_usb_release_substream_urbs(subs, 0); - mutex_unlock(&subs->stream->chip->shutdown_mutex); + up_read(&subs->stream->chip->shutdown_rwsem); return snd_pcm_lib_free_vmalloc_buffer(substream); } @@ -429,12 +437,18 @@ { struct snd_pcm_runtime *runtime = substream->runtime; struct snd_usb_substream *subs = runtime->private_data; + int ret = 0; if (! subs->cur_audiofmt) { snd_printk(KERN_ERR "usbaudio: no format is specified!\n"); return -ENXIO; } + down_read(&subs->stream->chip->shutdown_rwsem); + if (subs->stream->chip->shutdown) { + ret = -ENODEV; + goto unlock; + } /* some unit conversions in runtime */ subs->maxframesize = bytes_to_frames(runtime, subs->maxpacksize); subs->curframesize = bytes_to_frames(runtime, subs->curpacksize); @@ -447,7 +461,10 @@ subs->last_frame_number = 0; runtime->delay = 0; - return snd_usb_substream_prepare(subs, runtime); + ret = snd_usb_substream_prepare(subs, runtime); + unlock: + up_read(&subs->stream->chip->shutdown_rwsem); + return ret; } static struct snd_pcm_hardware snd_usb_hardware = @@ -500,7 +517,7 @@ return 0; } /* check whether the period time is >= the data packet interval */ - if (snd_usb_get_speed(subs->dev) != USB_SPEED_FULL) { + if (subs->speed != USB_SPEED_FULL) { ptime = 125 * (1 << fp->datainterval); if (ptime > pt->max || (ptime == pt->max && pt->openmax)) { hwc_debug(" > check: ptime %u > max %u\n", ptime, pt->max); @@ -698,6 +715,9 @@ int count = 0, needs_knot = 0; int err; + kfree(subs->rate_list.list); + subs->rate_list.list = NULL; + list_for_each_entry(fp, &subs->fmt_list, list) { if (fp->rates & SNDRV_PCM_RATE_CONTINUOUS) return 0; @@ -773,7 +793,7 @@ return err; param_period_time_if_needed = SNDRV_PCM_HW_PARAM_PERIOD_TIME; - if (snd_usb_get_speed(subs->dev) == USB_SPEED_FULL) + if (subs->speed == USB_SPEED_FULL) /* full speed devices have fixed data packet interval */ ptmin = 1000; if (ptmin == 1000) --- linux-3.2.0.orig/sound/usb/clock.c +++ linux-3.2.0/sound/usb/clock.c @@ -111,7 +111,8 @@ return 0; /* If a clock source can't tell us whether it's valid, we assume it is */ - if (!uac2_control_is_readable(cs_desc->bmControls, UAC2_CS_CONTROL_CLOCK_VALID)) + if (!uac2_control_is_readable(cs_desc->bmControls, + UAC2_CS_CONTROL_CLOCK_VALID - 1)) return 1; err = snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), UAC2_CS_CUR, --- linux-3.2.0.orig/sound/usb/card.h +++ linux-3.2.0/sound/usb/card.h @@ -1,6 +1,7 @@ #ifndef __USBAUDIO_CARD_H #define __USBAUDIO_CARD_H +#define MAX_NR_RATES 1024 #define MAX_PACKS 20 #define MAX_PACKS_HS (MAX_PACKS * 8) /* in high speed mode */ #define MAX_URBS 8 @@ -73,6 +74,7 @@ unsigned int fill_max: 1; /* fill max packet size always */ unsigned int txfr_quirk:1; /* allow sub-frame alignment */ unsigned int fmt_type; /* USB audio format type (1-3) */ + unsigned int pkt_offset_adj; /* Bytes to drop from beginning of packets (for non-compliant devices) */ unsigned int running: 1; /* running status */ @@ -86,6 +88,7 @@ struct snd_urb_ctx syncurb[SYNC_URBS]; /* sync urb table */ char *syncbuf; /* sync buffer for all sync URBs */ dma_addr_t sync_dma; /* DMA address of syncbuf */ + unsigned int speed; /* USB_SPEED_XXX */ u64 formats; /* format bitmasks (all or'ed) */ unsigned int num_formats; /* number of supported audio formats (list) */ --- linux-3.2.0.orig/sound/usb/card.c +++ linux-3.2.0/sound/usb/card.c @@ -149,14 +149,32 @@ return -EINVAL; } + alts = &iface->altsetting[0]; + altsd = get_iface_desc(alts); + + /* + * Android with both accessory and audio interfaces enabled gets the + * interface numbers wrong. + */ + if ((chip->usb_id == USB_ID(0x18d1, 0x2d04) || + chip->usb_id == USB_ID(0x18d1, 0x2d05)) && + interface == 0 && + altsd->bInterfaceClass == USB_CLASS_VENDOR_SPEC && + altsd->bInterfaceSubClass == USB_SUBCLASS_VENDOR_SPEC) { + interface = 2; + iface = usb_ifnum_to_if(dev, interface); + if (!iface) + return -EINVAL; + alts = &iface->altsetting[0]; + altsd = get_iface_desc(alts); + } + if (usb_interface_claimed(iface)) { snd_printdd(KERN_INFO "%d:%d:%d: skipping, already claimed\n", dev->devnum, ctrlif, interface); return -EINVAL; } - alts = &iface->altsetting[0]; - altsd = get_iface_desc(alts); if ((altsd->bInterfaceClass == USB_CLASS_AUDIO || altsd->bInterfaceClass == USB_CLASS_VENDOR_SPEC) && altsd->bInterfaceSubClass == USB_SUBCLASS_MIDISTREAMING) { @@ -336,7 +354,7 @@ return -ENOMEM; } - mutex_init(&chip->shutdown_mutex); + init_rwsem(&chip->shutdown_rwsem); chip->index = idx; chip->dev = dev; chip->card = card; @@ -555,9 +573,11 @@ return; card = chip->card; - mutex_lock(®ister_mutex); - mutex_lock(&chip->shutdown_mutex); + down_write(&chip->shutdown_rwsem); chip->shutdown = 1; + up_write(&chip->shutdown_rwsem); + + mutex_lock(®ister_mutex); chip->num_interfaces--; if (chip->num_interfaces <= 0) { snd_card_disconnect(card); @@ -574,11 +594,9 @@ snd_usb_mixer_disconnect(p); } usb_chip[chip->index] = NULL; - mutex_unlock(&chip->shutdown_mutex); mutex_unlock(®ister_mutex); snd_card_free_when_closed(card); } else { - mutex_unlock(&chip->shutdown_mutex); mutex_unlock(®ister_mutex); } } @@ -610,16 +628,22 @@ { int err = -ENODEV; - if (!chip->shutdown && !chip->probing) + down_read(&chip->shutdown_rwsem); + if (chip->probing) + err = 0; + else if (!chip->shutdown) err = usb_autopm_get_interface(chip->pm_intf); + up_read(&chip->shutdown_rwsem); return err; } void snd_usb_autosuspend(struct snd_usb_audio *chip) { + down_read(&chip->shutdown_rwsem); if (!chip->shutdown && !chip->probing) usb_autopm_put_interface(chip->pm_intf); + up_read(&chip->shutdown_rwsem); } static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message) --- linux-3.2.0.orig/sound/usb/stream.c +++ linux-3.2.0/sound/usb/stream.c @@ -168,6 +168,14 @@ if (!csep && altsd->bNumEndpoints >= 2) csep = snd_usb_find_desc(alts->endpoint[1].extra, alts->endpoint[1].extralen, NULL, USB_DT_CS_ENDPOINT); + /* + * If we can't locate the USB_DT_CS_ENDPOINT descriptor in the extra + * bytes after the first endpoint, go search the entire interface. + * Some devices have it directly *before* the standard endpoint. + */ + if (!csep) + csep = snd_usb_find_desc(alts->extra, alts->extralen, NULL, USB_DT_CS_ENDPOINT); + if (!csep || csep->bLength < 7 || csep->bDescriptorSubtype != UAC_EP_GENERAL) { snd_printk(KERN_WARNING "%d:%u:%d : no or invalid" --- linux-3.2.0.orig/sound/usb/quirks-table.h +++ linux-3.2.0/sound/usb/quirks-table.h @@ -157,7 +157,13 @@ .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL }, { - USB_DEVICE(0x046d, 0x0990), + .match_flags = USB_DEVICE_ID_MATCH_DEVICE | + USB_DEVICE_ID_MATCH_INT_CLASS | + USB_DEVICE_ID_MATCH_INT_SUBCLASS, + .idVendor = 0x046d, + .idProduct = 0x0990, + .bInterfaceClass = USB_CLASS_AUDIO, + .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL, .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Logitech, Inc.", .product_name = "QuickCam Pro 9000", @@ -1624,7 +1630,7 @@ .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { /* .vendor_name = "Roland", */ /* .product_name = "A-PRO", */ - .ifnum = 1, + .ifnum = 0, .type = QUIRK_MIDI_FIXED_ENDPOINT, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x0003, --- linux-3.2.0.orig/sound/usb/proc.c +++ linux-3.2.0/sound/usb/proc.c @@ -107,7 +107,7 @@ } snd_iprintf(buffer, "\n"); } - if (snd_usb_get_speed(subs->dev) != USB_SPEED_FULL) + if (subs->speed != USB_SPEED_FULL) snd_iprintf(buffer, " Data packet interval: %d us\n", 125 * (1 << fp->datainterval)); // snd_iprintf(buffer, " Max Packet Size = %d\n", fp->maxpacksize); @@ -128,7 +128,7 @@ snd_iprintf(buffer, "]\n"); snd_iprintf(buffer, " Packet Size = %d\n", subs->curpacksize); snd_iprintf(buffer, " Momentary freq = %u Hz (%#x.%04x)\n", - snd_usb_get_speed(subs->dev) == USB_SPEED_FULL + subs->speed == USB_SPEED_FULL ? get_full_speed_hz(subs->freqm) : get_high_speed_hz(subs->freqm), subs->freqm >> 16, subs->freqm & 0xffff); --- linux-3.2.0.orig/sound/usb/midi.c +++ linux-3.2.0/sound/usb/midi.c @@ -116,6 +116,7 @@ struct list_head list; struct timer_list error_timer; spinlock_t disc_lock; + struct rw_semaphore disc_rwsem; struct mutex mutex; u32 usb_id; int next_midi_device; @@ -125,8 +126,9 @@ struct snd_usb_midi_in_endpoint *in; } endpoints[MIDI_MAX_ENDPOINTS]; unsigned long input_triggered; - unsigned int opened; + unsigned int opened[2]; unsigned char disconnected; + unsigned char input_running; struct snd_kcontrol *roland_load_ctl; }; @@ -1032,29 +1034,48 @@ snd_usbmidi_input_start(&umidi->list); } -static void substream_open(struct snd_rawmidi_substream *substream, int open) +static int substream_open(struct snd_rawmidi_substream *substream, int dir, + int open) { struct snd_usb_midi* umidi = substream->rmidi->private_data; struct snd_kcontrol *ctl; + down_read(&umidi->disc_rwsem); + if (umidi->disconnected) { + up_read(&umidi->disc_rwsem); + return open ? -ENODEV : 0; + } + mutex_lock(&umidi->mutex); if (open) { - if (umidi->opened++ == 0 && umidi->roland_load_ctl) { - ctl = umidi->roland_load_ctl; - ctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE; - snd_ctl_notify(umidi->card, + if (!umidi->opened[0] && !umidi->opened[1]) { + if (umidi->roland_load_ctl) { + ctl = umidi->roland_load_ctl; + ctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE; + snd_ctl_notify(umidi->card, SNDRV_CTL_EVENT_MASK_INFO, &ctl->id); - update_roland_altsetting(umidi); + update_roland_altsetting(umidi); + } } + umidi->opened[dir]++; + if (umidi->opened[1]) + snd_usbmidi_input_start(&umidi->list); } else { - if (--umidi->opened == 0 && umidi->roland_load_ctl) { - ctl = umidi->roland_load_ctl; - ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; - snd_ctl_notify(umidi->card, + umidi->opened[dir]--; + if (!umidi->opened[1]) + snd_usbmidi_input_stop(&umidi->list); + if (!umidi->opened[0] && !umidi->opened[1]) { + if (umidi->roland_load_ctl) { + ctl = umidi->roland_load_ctl; + ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; + snd_ctl_notify(umidi->card, SNDRV_CTL_EVENT_MASK_INFO, &ctl->id); + } } } mutex_unlock(&umidi->mutex); + up_read(&umidi->disc_rwsem); + return 0; } static int snd_usbmidi_output_open(struct snd_rawmidi_substream *substream) @@ -1062,7 +1083,6 @@ struct snd_usb_midi* umidi = substream->rmidi->private_data; struct usbmidi_out_port* port = NULL; int i, j; - int err; for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) if (umidi->endpoints[i].out) @@ -1075,22 +1095,15 @@ snd_BUG(); return -ENXIO; } - err = usb_autopm_get_interface(umidi->iface); - if (err < 0) - return -EIO; + substream->runtime->private_data = port; port->state = STATE_UNKNOWN; - substream_open(substream, 1); - return 0; + return substream_open(substream, 0, 1); } static int snd_usbmidi_output_close(struct snd_rawmidi_substream *substream) { - struct snd_usb_midi* umidi = substream->rmidi->private_data; - - substream_open(substream, 0); - usb_autopm_put_interface(umidi->iface); - return 0; + return substream_open(substream, 0, 0); } static void snd_usbmidi_output_trigger(struct snd_rawmidi_substream *substream, int up) @@ -1143,14 +1156,12 @@ static int snd_usbmidi_input_open(struct snd_rawmidi_substream *substream) { - substream_open(substream, 1); - return 0; + return substream_open(substream, 1, 1); } static int snd_usbmidi_input_close(struct snd_rawmidi_substream *substream) { - substream_open(substream, 0); - return 0; + return substream_open(substream, 1, 0); } static void snd_usbmidi_input_trigger(struct snd_rawmidi_substream *substream, int up) @@ -1399,9 +1410,12 @@ * a timer may submit an URB. To reliably break the cycle * a flag under lock must be used */ + down_write(&umidi->disc_rwsem); spin_lock_irq(&umidi->disc_lock); umidi->disconnected = 1; spin_unlock_irq(&umidi->disc_lock); + up_write(&umidi->disc_rwsem); + for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { struct snd_usb_midi_endpoint* ep = &umidi->endpoints[i]; if (ep->out) @@ -2056,12 +2070,15 @@ unsigned int i, j; umidi = list_entry(p, struct snd_usb_midi, list); + if (!umidi->input_running) + return; for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) { struct snd_usb_midi_endpoint* ep = &umidi->endpoints[i]; if (ep->in) for (j = 0; j < INPUT_URBS; ++j) usb_kill_urb(ep->in->urbs[j]); } + umidi->input_running = 0; } static void snd_usbmidi_input_start_ep(struct snd_usb_midi_in_endpoint* ep) @@ -2086,8 +2103,11 @@ int i; umidi = list_entry(p, struct snd_usb_midi, list); + if (umidi->input_running || !umidi->opened[1]) + return; for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) snd_usbmidi_input_start_ep(umidi->endpoints[i].in); + umidi->input_running = 1; } /* @@ -2113,6 +2133,7 @@ umidi->usb_protocol_ops = &snd_usbmidi_standard_ops; init_timer(&umidi->error_timer); spin_lock_init(&umidi->disc_lock); + init_rwsem(&umidi->disc_rwsem); mutex_init(&umidi->mutex); umidi->usb_id = USB_ID(le16_to_cpu(umidi->dev->descriptor.idVendor), le16_to_cpu(umidi->dev->descriptor.idProduct)); @@ -2224,10 +2245,9 @@ return err; } - list_add_tail(&umidi->list, midi_list); + usb_autopm_get_interface_no_resume(umidi->iface); - for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) - snd_usbmidi_input_start_ep(umidi->endpoints[i].in); + list_add_tail(&umidi->list, midi_list); return 0; } --- linux-3.2.0.orig/sound/usb/quirks.c +++ linux-3.2.0/sound/usb/quirks.c @@ -132,10 +132,14 @@ unsigned *rate_table = NULL; fp = kmemdup(quirk->data, sizeof(*fp), GFP_KERNEL); - if (! fp) { + if (!fp) { snd_printk(KERN_ERR "cannot memdup\n"); return -ENOMEM; } + if (fp->nr_rates > MAX_NR_RATES) { + kfree(fp); + return -EINVAL; + } if (fp->nr_rates > 0) { rate_table = kmemdup(fp->rate_table, sizeof(int) * fp->nr_rates, GFP_KERNEL); @@ -383,11 +387,13 @@ * rules */ err = usb_driver_set_configuration(dev, 2); - if (err < 0) { + if (err < 0) snd_printdd("error usb_driver_set_configuration: %d\n", err); - return -ENODEV; - } + /* Always return an error, so that we stop creating a device + that will just be destroyed and recreated with a new + configuration */ + return -ENODEV; } else snd_printk(KERN_INFO "usb-audio: Fast Track Pro config OK\n"); @@ -480,7 +486,7 @@ { int ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), 0xaf, USB_TYPE_VENDOR | USB_RECIP_DEVICE, - cpu_to_le16(1), 0, NULL, 0, 1000); + 1, 0, NULL, 0, 1000); if (ret < 0) return ret; @@ -742,6 +748,7 @@ break; } snd_emuusb_set_samplerate(subs->stream->chip, emu_samplerate_id); + subs->pkt_offset_adj = (emu_samplerate_id >= EMU_QUIRK_SR_176400HZ) ? 4 : 0; } void snd_usb_set_format_quirk(struct snd_usb_substream *subs, --- linux-3.2.0.orig/sound/usb/endpoint.c +++ linux-3.2.0/sound/usb/endpoint.c @@ -17,6 +17,7 @@ #include #include +#include #include #include @@ -457,9 +458,9 @@ stride = runtime->frame_bits >> 3; for (i = 0; i < urb->number_of_packets; i++) { - cp = (unsigned char *)urb->transfer_buffer + urb->iso_frame_desc[i].offset; - if (urb->iso_frame_desc[i].status) { - snd_printd(KERN_ERR "frame %d active: %d\n", i, urb->iso_frame_desc[i].status); + cp = (unsigned char *)urb->transfer_buffer + urb->iso_frame_desc[i].offset + subs->pkt_offset_adj; + if (urb->iso_frame_desc[i].status && printk_ratelimit()) { + snd_printdd("frame %d active: %d\n", i, urb->iso_frame_desc[i].status); // continue; } bytes = urb->iso_frame_desc[i].actual_length; @@ -894,8 +895,10 @@ subs->dev = as->chip->dev; subs->txfr_quirk = as->chip->txfr_quirk; subs->ops = audio_urb_ops[stream]; - if (snd_usb_get_speed(subs->dev) >= USB_SPEED_HIGH) + subs->speed = snd_usb_get_speed(subs->dev); + if (subs->speed >= USB_SPEED_HIGH) subs->ops.prepare_sync = prepare_capture_sync_urb_hs; + subs->pkt_offset_adj = 0; snd_usb_set_pcm_ops(as->pcm, stream); --- linux-3.2.0.orig/sound/usb/usbaudio.h +++ linux-3.2.0/sound/usb/usbaudio.h @@ -36,7 +36,7 @@ struct snd_card *card; struct usb_interface *pm_intf; u32 usb_id; - struct mutex shutdown_mutex; + struct rw_semaphore shutdown_rwsem; unsigned int shutdown:1; unsigned int probing:1; unsigned int autosuspended:1; --- linux-3.2.0.orig/sound/usb/format.c +++ linux-3.2.0/sound/usb/format.c @@ -226,7 +226,7 @@ int min = combine_quad(&data[2 + 12 * i]); int max = combine_quad(&data[6 + 12 * i]); int res = combine_quad(&data[10 + 12 * i]); - int rate; + unsigned int rate; if ((max < 0) || (min < 0) || (res < 0) || (max < min)) continue; @@ -253,6 +253,10 @@ fp->rates |= snd_pcm_rate_to_rate_bit(rate); nr_rates++; + if (nr_rates >= MAX_NR_RATES) { + snd_printk(KERN_ERR "invalid uac2 rates\n"); + break; + } /* avoid endless loop */ if (res == 0) --- linux-3.2.0.orig/sound/usb/mixer_quirks.c +++ linux-3.2.0/sound/usb/mixer_quirks.c @@ -186,6 +186,11 @@ if (value > 1) return -EINVAL; changed = value != mixer->audigy2nx_leds[index]; + down_read(&mixer->chip->shutdown_rwsem); + if (mixer->chip->shutdown) { + err = -ENODEV; + goto out; + } if (mixer->chip->usb_id == USB_ID(0x041e, 0x3042)) err = snd_usb_ctl_msg(mixer->chip->dev, usb_sndctrlpipe(mixer->chip->dev, 0), 0x24, @@ -202,6 +207,8 @@ usb_sndctrlpipe(mixer->chip->dev, 0), 0x24, USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_OTHER, value, index + 2, NULL, 0); + out: + up_read(&mixer->chip->shutdown_rwsem); if (err < 0) return err; mixer->audigy2nx_leds[index] = value; @@ -295,11 +302,16 @@ for (i = 0; jacks[i].name; ++i) { snd_iprintf(buffer, "%s: ", jacks[i].name); - err = snd_usb_ctl_msg(mixer->chip->dev, + down_read(&mixer->chip->shutdown_rwsem); + if (mixer->chip->shutdown) + err = 0; + else + err = snd_usb_ctl_msg(mixer->chip->dev, usb_rcvctrlpipe(mixer->chip->dev, 0), UAC_GET_MEM, USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, 0, jacks[i].unitid << 8, buf, 3); + up_read(&mixer->chip->shutdown_rwsem); if (err == 3 && (buf[0] == 3 || buf[0] == 6)) snd_iprintf(buffer, "%02x %02x\n", buf[1], buf[2]); else @@ -329,10 +341,15 @@ else new_status = old_status & ~0x02; changed = new_status != old_status; - err = snd_usb_ctl_msg(mixer->chip->dev, + down_read(&mixer->chip->shutdown_rwsem); + if (mixer->chip->shutdown) + err = -ENODEV; + else + err = snd_usb_ctl_msg(mixer->chip->dev, usb_sndctrlpipe(mixer->chip->dev, 0), 0x08, USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_OTHER, 50, 0, &new_status, 1); + up_read(&mixer->chip->shutdown_rwsem); if (err < 0) return err; mixer->xonar_u1_status = new_status; @@ -371,11 +388,17 @@ u8 bRequest = (kcontrol->private_value >> 16) & 0xff; u16 wIndex = kcontrol->private_value & 0xffff; u8 tmp; + int ret; - int ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), bRequest, + down_read(&mixer->chip->shutdown_rwsem); + if (mixer->chip->shutdown) + ret = -ENODEV; + else + ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), bRequest, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, - 0, cpu_to_le16(wIndex), + 0, wIndex, &tmp, sizeof(tmp), 1000); + up_read(&mixer->chip->shutdown_rwsem); if (ret < 0) { snd_printk(KERN_ERR @@ -396,11 +419,17 @@ u8 bRequest = (kcontrol->private_value >> 16) & 0xff; u16 wIndex = kcontrol->private_value & 0xffff; u16 wValue = ucontrol->value.integer.value[0]; + int ret; - int ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), bRequest, + down_read(&mixer->chip->shutdown_rwsem); + if (mixer->chip->shutdown) + ret = -ENODEV; + else + ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), bRequest, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, - cpu_to_le16(wValue), cpu_to_le16(wIndex), + wValue, wIndex, NULL, 0, 1000); + up_read(&mixer->chip->shutdown_rwsem); if (ret < 0) { snd_printk(KERN_ERR --- linux-3.2.0.orig/sound/usb/mixer.c +++ linux-3.2.0/sound/usb/mixer.c @@ -287,25 +287,32 @@ unsigned char buf[2]; int val_len = cval->val_type >= USB_MIXER_S16 ? 2 : 1; int timeout = 10; - int err; + int idx = 0, err; err = snd_usb_autoresume(cval->mixer->chip); if (err < 0) return -EIO; + down_read(&chip->shutdown_rwsem); while (timeout-- > 0) { + if (chip->shutdown) + break; + idx = snd_usb_ctrl_intf(chip) | (cval->id << 8); if (snd_usb_ctl_msg(chip->dev, usb_rcvctrlpipe(chip->dev, 0), request, USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_IN, - validx, snd_usb_ctrl_intf(chip) | (cval->id << 8), - buf, val_len) >= val_len) { + validx, idx, buf, val_len) >= val_len) { *value_ret = convert_signed_value(cval, snd_usb_combine_bytes(buf, val_len)); - snd_usb_autosuspend(cval->mixer->chip); - return 0; + err = 0; + goto out; } } - snd_usb_autosuspend(cval->mixer->chip); snd_printdd(KERN_ERR "cannot get ctl value: req = %#x, wValue = %#x, wIndex = %#x, type = %d\n", - request, validx, snd_usb_ctrl_intf(chip) | (cval->id << 8), cval->val_type); - return -EINVAL; + request, validx, idx, cval->val_type); + err = -EINVAL; + + out: + up_read(&chip->shutdown_rwsem); + snd_usb_autosuspend(cval->mixer->chip); + return err; } static int get_ctl_value_v2(struct usb_mixer_elem_info *cval, int request, int validx, int *value_ret) @@ -313,7 +320,7 @@ struct snd_usb_audio *chip = cval->mixer->chip; unsigned char buf[2 + 3*sizeof(__u16)]; /* enough space for one range */ unsigned char *val; - int ret, size; + int idx = 0, ret, size; __u8 bRequest; if (request == UAC_GET_CUR) { @@ -330,16 +337,22 @@ if (ret) goto error; - ret = snd_usb_ctl_msg(chip->dev, usb_rcvctrlpipe(chip->dev, 0), bRequest, + down_read(&chip->shutdown_rwsem); + if (chip->shutdown) + ret = -ENODEV; + else { + idx = snd_usb_ctrl_intf(chip) | (cval->id << 8); + ret = snd_usb_ctl_msg(chip->dev, usb_rcvctrlpipe(chip->dev, 0), bRequest, USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_IN, - validx, snd_usb_ctrl_intf(chip) | (cval->id << 8), - buf, size); + validx, idx, buf, size); + } + up_read(&chip->shutdown_rwsem); snd_usb_autosuspend(chip); if (ret < 0) { error: snd_printk(KERN_ERR "cannot get ctl value: req = %#x, wValue = %#x, wIndex = %#x, type = %d\n", - request, validx, snd_usb_ctrl_intf(chip) | (cval->id << 8), cval->val_type); + request, validx, idx, cval->val_type); return ret; } @@ -417,7 +430,7 @@ { struct snd_usb_audio *chip = cval->mixer->chip; unsigned char buf[2]; - int val_len, err, timeout = 10; + int idx = 0, val_len, err, timeout = 10; if (cval->mixer->protocol == UAC_VERSION_1) { val_len = cval->val_type >= USB_MIXER_S16 ? 2 : 1; @@ -440,19 +453,27 @@ err = snd_usb_autoresume(chip); if (err < 0) return -EIO; - while (timeout-- > 0) + down_read(&chip->shutdown_rwsem); + while (timeout-- > 0) { + if (chip->shutdown) + break; + idx = snd_usb_ctrl_intf(chip) | (cval->id << 8); if (snd_usb_ctl_msg(chip->dev, usb_sndctrlpipe(chip->dev, 0), request, USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_OUT, - validx, snd_usb_ctrl_intf(chip) | (cval->id << 8), - buf, val_len) >= 0) { - snd_usb_autosuspend(chip); - return 0; + validx, idx, buf, val_len) >= 0) { + err = 0; + goto out; } - snd_usb_autosuspend(chip); + } snd_printdd(KERN_ERR "cannot set ctl value: req = %#x, wValue = %#x, wIndex = %#x, type = %d, data = %#x/%#x\n", - request, validx, snd_usb_ctrl_intf(chip) | (cval->id << 8), cval->val_type, buf[0], buf[1]); - return -EINVAL; + request, validx, idx, cval->val_type, buf[0], buf[1]); + err = -EINVAL; + + out: + up_read(&chip->shutdown_rwsem); + snd_usb_autosuspend(chip); + return err; } static int set_cur_ctl_value(struct usb_mixer_elem_info *cval, int validx, int value) @@ -690,8 +711,9 @@ case UAC2_CLOCK_SELECTOR: { struct uac_selector_unit_descriptor *d = p1; /* call recursively to retrieve the channel info */ - if (check_input_term(state, d->baSourceID[0], term) < 0) - return -ENODEV; + err = check_input_term(state, d->baSourceID[0], term); + if (err < 0) + return err; term->type = d->bDescriptorSubtype << 16; /* virtual type */ term->id = id; term->name = uac_selector_unit_iSelector(d); @@ -799,7 +821,9 @@ case USB_ID(0x046d, 0x0808): case USB_ID(0x046d, 0x0809): + case USB_ID(0x046d, 0x081b): /* HD Webcam c310 */ case USB_ID(0x046d, 0x081d): /* HD Webcam c510 */ + case USB_ID(0x046d, 0x0825): /* HD Webcam c270 */ case USB_ID(0x046d, 0x0991): /* Most audio usb devices lie about volume resolution. * Most Logitech webcams have res = 384. @@ -1218,16 +1242,23 @@ } channels = (hdr->bLength - 7) / csize - 1; bmaControls = hdr->bmaControls; + if (hdr->bLength < 7 + csize) { + snd_printk(KERN_ERR "usbaudio: unit %u: " + "invalid UAC_FEATURE_UNIT descriptor\n", + unitid); + return -EINVAL; + } } else { struct uac2_feature_unit_descriptor *ftr = _ftr; csize = 4; channels = (hdr->bLength - 6) / 4 - 1; bmaControls = ftr->bmaControls; - } - - if (hdr->bLength < 7 || !csize || hdr->bLength < 7 + csize) { - snd_printk(KERN_ERR "usbaudio: unit %u: invalid UAC_FEATURE_UNIT descriptor\n", unitid); - return -EINVAL; + if (hdr->bLength < 6 + csize) { + snd_printk(KERN_ERR "usbaudio: unit %u: " + "invalid UAC_FEATURE_UNIT descriptor\n", + unitid); + return -EINVAL; + } } /* parse the source unit */ @@ -1235,8 +1266,9 @@ return err; /* determine the input source type and name */ - if (check_input_term(state, hdr->bSourceID, &iterm) < 0) - return -EINVAL; + err = check_input_term(state, hdr->bSourceID, &iterm); + if (err < 0) + return err; master_bits = snd_usb_combine_bytes(bmaControls, csize); /* master configuration quirks */ @@ -1990,7 +2022,7 @@ state.oterm.type = le16_to_cpu(desc->wTerminalType); state.oterm.name = desc->iTerminal; err = parse_audio_unit(&state, desc->bSourceID); - if (err < 0) + if (err < 0 && err != -EINVAL) return err; } else { /* UAC_VERSION_2 */ struct uac2_output_terminal_descriptor *desc = p; @@ -2002,12 +2034,12 @@ state.oterm.type = le16_to_cpu(desc->wTerminalType); state.oterm.name = desc->iTerminal; err = parse_audio_unit(&state, desc->bSourceID); - if (err < 0) + if (err < 0 && err != -EINVAL) return err; /* for UAC2, use the same approach to also add the clock selectors */ err = parse_audio_unit(&state, desc->bCSourceID); - if (err < 0) + if (err < 0 && err != -EINVAL) return err; } } --- linux-3.2.0.orig/sound/usb/usx2y/usb_stream.c +++ linux-3.2.0/sound/usb/usx2y/usb_stream.c @@ -674,7 +674,7 @@ inurb->transfer_buffer_length = inurb->number_of_packets * inurb->iso_frame_desc[0].length; - preempt_disable(); + if (u == 0) { int now; struct usb_device *dev = inurb->dev; @@ -686,19 +686,17 @@ } err = usb_submit_urb(inurb, GFP_ATOMIC); if (err < 0) { - preempt_enable(); snd_printk(KERN_ERR"usb_submit_urb(sk->inurb[%i])" " returned %i\n", u, err); return err; } err = usb_submit_urb(outurb, GFP_ATOMIC); if (err < 0) { - preempt_enable(); snd_printk(KERN_ERR"usb_submit_urb(sk->outurb[%i])" " returned %i\n", u, err); return err; } - preempt_enable(); + if (inurb->start_frame != outurb->start_frame) { snd_printd(KERN_DEBUG "u[%i] start_frames differ in:%u out:%u\n", --- linux-3.2.0.orig/sound/usb/usx2y/usbusx2yaudio.c +++ linux-3.2.0/sound/usb/usx2y/usbusx2yaudio.c @@ -273,7 +273,11 @@ struct snd_usX2Y_substream *subs = usX2Y->subs[s]; if (subs) { if (atomic_read(&subs->state) >= state_PRERUNNING) { + unsigned long flags; + + snd_pcm_stream_lock_irqsave(subs->pcm_substream, flags); snd_pcm_stop(subs->pcm_substream, SNDRV_PCM_STATE_XRUN); + snd_pcm_stream_unlock_irqrestore(subs->pcm_substream, flags); } for (u = 0; u < NRURBS; u++) { struct urb *urb = subs->urb[u]; --- linux-3.2.0.orig/sound/usb/6fire/pcm.c +++ linux-3.2.0/sound/usb/6fire/pcm.c @@ -541,7 +541,7 @@ snd_pcm_uframes_t ret; if (rt->panic || !sub) - return SNDRV_PCM_STATE_XRUN; + return SNDRV_PCM_POS_XRUN; spin_lock_irqsave(&sub->lock, flags); ret = sub->dma_off; @@ -640,17 +640,25 @@ void usb6fire_pcm_abort(struct sfire_chip *chip) { struct pcm_runtime *rt = chip->pcm; + unsigned long flags; int i; if (rt) { rt->panic = true; - if (rt->playback.instance) + if (rt->playback.instance) { + snd_pcm_stream_lock_irqsave(rt->playback.instance, flags); snd_pcm_stop(rt->playback.instance, SNDRV_PCM_STATE_XRUN); - if (rt->capture.instance) + snd_pcm_stream_unlock_irqrestore(rt->playback.instance, flags); + } + + if (rt->capture.instance) { + snd_pcm_stream_lock_irqsave(rt->capture.instance, flags); snd_pcm_stop(rt->capture.instance, SNDRV_PCM_STATE_XRUN); + snd_pcm_stream_unlock_irqrestore(rt->capture.instance, flags); + } for (i = 0; i < PCM_N_URBS; i++) { usb_poison_urb(&rt->in_urbs[i].instance); --- linux-3.2.0.orig/sound/usb/misc/ua101.c +++ linux-3.2.0/sound/usb/misc/ua101.c @@ -613,14 +613,24 @@ static void abort_alsa_capture(struct ua101 *ua) { - if (test_bit(ALSA_CAPTURE_RUNNING, &ua->states)) + unsigned long flags; + + if (test_bit(ALSA_CAPTURE_RUNNING, &ua->states)) { + snd_pcm_stream_lock_irqsave(ua->capture.substream, flags); snd_pcm_stop(ua->capture.substream, SNDRV_PCM_STATE_XRUN); + snd_pcm_stream_unlock_irqrestore(ua->capture.substream, flags); + } } static void abort_alsa_playback(struct ua101 *ua) { - if (test_bit(ALSA_PLAYBACK_RUNNING, &ua->states)) + unsigned long flags; + + if (test_bit(ALSA_PLAYBACK_RUNNING, &ua->states)) { + snd_pcm_stream_lock_irqsave(ua->playback.substream, flags); snd_pcm_stop(ua->playback.substream, SNDRV_PCM_STATE_XRUN); + snd_pcm_stream_unlock_irqrestore(ua->playback.substream, flags); + } } static int set_stream_hw(struct ua101 *ua, struct snd_pcm_substream *substream, --- linux-3.2.0.orig/sound/soc/soc-dapm.c +++ linux-3.2.0/sound/soc/soc-dapm.c @@ -69,6 +69,7 @@ [snd_soc_dapm_out_drv] = 10, [snd_soc_dapm_hp] = 10, [snd_soc_dapm_spk] = 10, + [snd_soc_dapm_line] = 10, [snd_soc_dapm_post] = 11, }; @@ -77,6 +78,7 @@ [snd_soc_dapm_adc] = 1, [snd_soc_dapm_hp] = 2, [snd_soc_dapm_spk] = 2, + [snd_soc_dapm_line] = 2, [snd_soc_dapm_out_drv] = 2, [snd_soc_dapm_pga] = 4, [snd_soc_dapm_mixer_named_ctl] = 5, @@ -1379,7 +1381,15 @@ } list_for_each_entry(w, &card->widgets, list) { - list_del_init(&w->dirty); + switch (w->id) { + case snd_soc_dapm_pre: + case snd_soc_dapm_post: + /* These widgets always need to be powered */ + break; + default: + list_del_init(&w->dirty); + break; + } if (w->power) { d = w->dapm; @@ -2982,9 +2992,13 @@ * standby. */ if (powerdown) { - snd_soc_dapm_set_bias_level(dapm, SND_SOC_BIAS_PREPARE); + if (dapm->bias_level == SND_SOC_BIAS_ON) + snd_soc_dapm_set_bias_level(dapm, + SND_SOC_BIAS_PREPARE); dapm_seq_run(dapm, &down_list, 0, false); - snd_soc_dapm_set_bias_level(dapm, SND_SOC_BIAS_STANDBY); + if (dapm->bias_level == SND_SOC_BIAS_PREPARE) + snd_soc_dapm_set_bias_level(dapm, + SND_SOC_BIAS_STANDBY); } } @@ -2995,9 +3009,11 @@ { struct snd_soc_codec *codec; - list_for_each_entry(codec, &card->codec_dev_list, list) { + list_for_each_entry(codec, &card->codec_dev_list, card_list) { soc_dapm_shutdown_codec(&codec->dapm); - snd_soc_dapm_set_bias_level(&codec->dapm, SND_SOC_BIAS_OFF); + if (codec->dapm.bias_level == SND_SOC_BIAS_STANDBY) + snd_soc_dapm_set_bias_level(&codec->dapm, + SND_SOC_BIAS_OFF); } } --- linux-3.2.0.orig/sound/soc/s6000/s6000-pcm.c +++ linux-3.2.0/sound/soc/s6000/s6000-pcm.c @@ -128,7 +128,9 @@ substream->runtime && snd_pcm_running(substream)) { dev_dbg(pcm->dev, "xrun\n"); + snd_pcm_stream_lock(substream); snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN); + snd_pcm_stream_unlock(substream); ret = IRQ_HANDLED; } --- linux-3.2.0.orig/sound/soc/sh/dma-sh7760.c +++ linux-3.2.0/sound/soc/sh/dma-sh7760.c @@ -342,8 +342,8 @@ return 0; } -static struct snd_soc_platform sh7760_soc_platform = { - .pcm_ops = &camelot_pcm_ops, +static struct snd_soc_platform_driver sh7760_soc_platform = { + .ops = &camelot_pcm_ops, .pcm_new = camelot_pcm_new, .pcm_free = camelot_pcm_free, }; --- linux-3.2.0.orig/sound/soc/pxa/pxa-ssp.c +++ linux-3.2.0/sound/soc/pxa/pxa-ssp.c @@ -668,6 +668,38 @@ return 0; } +static void pxa_ssp_set_running_bit(struct snd_pcm_substream *substream, + struct ssp_device *ssp, int value) +{ + uint32_t sscr0 = pxa_ssp_read_reg(ssp, SSCR0); + uint32_t sscr1 = pxa_ssp_read_reg(ssp, SSCR1); + uint32_t sspsp = pxa_ssp_read_reg(ssp, SSPSP); + uint32_t sssr = pxa_ssp_read_reg(ssp, SSSR); + + if (value && (sscr0 & SSCR0_SSE)) + pxa_ssp_write_reg(ssp, SSCR0, sscr0 & ~SSCR0_SSE); + + if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { + if (value) + sscr1 |= SSCR1_TSRE; + else + sscr1 &= ~SSCR1_TSRE; + } else { + if (value) + sscr1 |= SSCR1_RSRE; + else + sscr1 &= ~SSCR1_RSRE; + } + + pxa_ssp_write_reg(ssp, SSCR1, sscr1); + + if (value) { + pxa_ssp_write_reg(ssp, SSSR, sssr); + pxa_ssp_write_reg(ssp, SSPSP, sspsp); + pxa_ssp_write_reg(ssp, SSCR0, sscr0 | SSCR0_SSE); + } +} + static int pxa_ssp_trigger(struct snd_pcm_substream *substream, int cmd, struct snd_soc_dai *cpu_dai) { @@ -681,42 +713,21 @@ pxa_ssp_enable(ssp); break; case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: - val = pxa_ssp_read_reg(ssp, SSCR1); - if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) - val |= SSCR1_TSRE; - else - val |= SSCR1_RSRE; - pxa_ssp_write_reg(ssp, SSCR1, val); + pxa_ssp_set_running_bit(substream, ssp, 1); val = pxa_ssp_read_reg(ssp, SSSR); pxa_ssp_write_reg(ssp, SSSR, val); break; case SNDRV_PCM_TRIGGER_START: - val = pxa_ssp_read_reg(ssp, SSCR1); - if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) - val |= SSCR1_TSRE; - else - val |= SSCR1_RSRE; - pxa_ssp_write_reg(ssp, SSCR1, val); - pxa_ssp_enable(ssp); + pxa_ssp_set_running_bit(substream, ssp, 1); break; case SNDRV_PCM_TRIGGER_STOP: - val = pxa_ssp_read_reg(ssp, SSCR1); - if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) - val &= ~SSCR1_TSRE; - else - val &= ~SSCR1_RSRE; - pxa_ssp_write_reg(ssp, SSCR1, val); + pxa_ssp_set_running_bit(substream, ssp, 0); break; case SNDRV_PCM_TRIGGER_SUSPEND: pxa_ssp_disable(ssp); break; case SNDRV_PCM_TRIGGER_PAUSE_PUSH: - val = pxa_ssp_read_reg(ssp, SSCR1); - if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) - val &= ~SSCR1_TSRE; - else - val &= ~SSCR1_RSRE; - pxa_ssp_write_reg(ssp, SSCR1, val); + pxa_ssp_set_running_bit(substream, ssp, 0); break; default: --- linux-3.2.0.orig/sound/soc/samsung/dma.c +++ linux-3.2.0/sound/soc/samsung/dma.c @@ -34,9 +34,7 @@ .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, + SNDRV_PCM_INFO_MMAP_VALID, .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_U16_LE | SNDRV_PCM_FMTBIT_U8 | @@ -246,15 +244,11 @@ switch (cmd) { case SNDRV_PCM_TRIGGER_START: - case SNDRV_PCM_TRIGGER_RESUME: - case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: prtd->state |= ST_RUNNING; prtd->params->ops->trigger(prtd->params->ch); break; case SNDRV_PCM_TRIGGER_STOP: - case SNDRV_PCM_TRIGGER_SUSPEND: - case SNDRV_PCM_TRIGGER_PAUSE_PUSH: prtd->state &= ~ST_RUNNING; prtd->params->ops->stop(prtd->params->ch); break; --- linux-3.2.0.orig/sound/soc/samsung/neo1973_wm8753.c +++ linux-3.2.0/sound/soc/samsung/neo1973_wm8753.c @@ -421,7 +421,7 @@ .platform_name = "samsung-audio", .cpu_dai_name = "s3c24xx-iis", .codec_dai_name = "wm8753-hifi", - .codec_name = "wm8753-codec.0-001a", + .codec_name = "wm8753.0-001a", .init = neo1973_wm8753_init, .ops = &neo1973_hifi_ops, }, @@ -430,7 +430,7 @@ .stream_name = "Voice", .cpu_dai_name = "dfbmcs320-pcm", .codec_dai_name = "wm8753-voice", - .codec_name = "wm8753-codec.0-001a", + .codec_name = "wm8753.0-001a", .ops = &neo1973_voice_ops, }, }; --- linux-3.2.0.orig/sound/soc/codecs/wm8994.c +++ linux-3.2.0/sound/soc/codecs/wm8994.c @@ -41,6 +41,39 @@ #define WM8994_NUM_DRC 3 #define WM8994_NUM_EQ 3 +static struct { + unsigned int reg; + unsigned int mask; +} wm8994_vu_bits[] = { + { WM8994_LEFT_LINE_INPUT_1_2_VOLUME, WM8994_IN1_VU }, + { WM8994_RIGHT_LINE_INPUT_1_2_VOLUME, WM8994_IN1_VU }, + { WM8994_LEFT_LINE_INPUT_3_4_VOLUME, WM8994_IN2_VU }, + { WM8994_RIGHT_LINE_INPUT_3_4_VOLUME, WM8994_IN2_VU }, + { WM8994_SPEAKER_VOLUME_LEFT, WM8994_SPKOUT_VU }, + { WM8994_SPEAKER_VOLUME_RIGHT, WM8994_SPKOUT_VU }, + { WM8994_LEFT_OUTPUT_VOLUME, WM8994_HPOUT1_VU }, + { WM8994_RIGHT_OUTPUT_VOLUME, WM8994_HPOUT1_VU }, + { WM8994_LEFT_OPGA_VOLUME, WM8994_MIXOUT_VU }, + { WM8994_RIGHT_OPGA_VOLUME, WM8994_MIXOUT_VU }, + + { WM8994_AIF1_DAC1_LEFT_VOLUME, WM8994_AIF1DAC1_VU }, + { WM8994_AIF1_DAC1_RIGHT_VOLUME, WM8994_AIF1DAC1_VU }, + { WM8994_AIF1_DAC2_LEFT_VOLUME, WM8994_AIF1DAC2_VU }, + { WM8994_AIF1_DAC2_RIGHT_VOLUME, WM8994_AIF1DAC2_VU }, + { WM8994_AIF2_DAC_LEFT_VOLUME, WM8994_AIF2DAC_VU }, + { WM8994_AIF2_DAC_RIGHT_VOLUME, WM8994_AIF2DAC_VU }, + { WM8994_AIF1_ADC1_LEFT_VOLUME, WM8994_AIF1ADC1_VU }, + { WM8994_AIF1_ADC1_RIGHT_VOLUME, WM8994_AIF1ADC1_VU }, + { WM8994_AIF1_ADC2_LEFT_VOLUME, WM8994_AIF1ADC2_VU }, + { WM8994_AIF1_ADC2_RIGHT_VOLUME, WM8994_AIF1ADC2_VU }, + { WM8994_AIF2_ADC_LEFT_VOLUME, WM8994_AIF2ADC_VU }, + { WM8994_AIF2_ADC_RIGHT_VOLUME, WM8994_AIF1ADC2_VU }, + { WM8994_DAC1_LEFT_VOLUME, WM8994_DAC1_VU }, + { WM8994_DAC1_RIGHT_VOLUME, WM8994_DAC1_VU }, + { WM8994_DAC2_LEFT_VOLUME, WM8994_DAC2_VU }, + { WM8994_DAC2_RIGHT_VOLUME, WM8994_DAC2_VU }, +}; + static int wm8994_drc_base[] = { WM8994_AIF1_DRC1_1, WM8994_AIF1_DRC2_1, @@ -729,6 +762,8 @@ { struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); + pm_runtime_get_sync(codec->dev); + wm8994->vmid_refcount++; dev_dbg(codec->dev, "Referencing VMID, refcount is now %d\n", @@ -742,7 +777,7 @@ WM8994_VMID_RAMP_MASK, WM8994_STARTUP_BIAS_ENA | WM8994_VMID_BUF_ENA | - (0x11 << WM8994_VMID_RAMP_SHIFT)); + (0x3 << WM8994_VMID_RAMP_SHIFT)); /* Main bias enable, VMID=2x40k */ snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_1, @@ -796,6 +831,8 @@ WM8994_VMID_BUF_ENA | WM8994_VMID_RAMP_MASK, 0); } + + pm_runtime_put(codec->dev); } static int vmid_event(struct snd_soc_dapm_widget *w, @@ -879,61 +916,186 @@ } } -static int late_enable_ev(struct snd_soc_dapm_widget *w, - struct snd_kcontrol *kcontrol, int event) +static int aif1clk_ev(struct snd_soc_dapm_widget *w, + struct snd_kcontrol *kcontrol, int event) { struct snd_soc_codec *codec = w->codec; - struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); + struct wm8994 *control = codec->control_data; + int mask = WM8994_AIF1DAC1L_ENA | WM8994_AIF1DAC1R_ENA; + int i; + int dac; + int adc; + int val; + + switch (control->type) { + case WM8994: + case WM8958: + mask |= WM8994_AIF1DAC2L_ENA | WM8994_AIF1DAC2R_ENA; + break; + default: + break; + } switch (event) { case SND_SOC_DAPM_PRE_PMU: - if (wm8994->aif1clk_enable) { - snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1, - WM8994_AIF1CLK_ENA_MASK, - WM8994_AIF1CLK_ENA); - wm8994->aif1clk_enable = 0; - } - if (wm8994->aif2clk_enable) { - snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1, - WM8994_AIF2CLK_ENA_MASK, - WM8994_AIF2CLK_ENA); - wm8994->aif2clk_enable = 0; - } + val = snd_soc_read(codec, WM8994_AIF1_CONTROL_1); + if ((val & WM8994_AIF1ADCL_SRC) && + (val & WM8994_AIF1ADCR_SRC)) + adc = WM8994_AIF1ADC1R_ENA | WM8994_AIF1ADC2R_ENA; + else if (!(val & WM8994_AIF1ADCL_SRC) && + !(val & WM8994_AIF1ADCR_SRC)) + adc = WM8994_AIF1ADC1L_ENA | WM8994_AIF1ADC2L_ENA; + else + adc = WM8994_AIF1ADC1R_ENA | WM8994_AIF1ADC2R_ENA | + WM8994_AIF1ADC1L_ENA | WM8994_AIF1ADC2L_ENA; + + val = snd_soc_read(codec, WM8994_AIF1_CONTROL_2); + if ((val & WM8994_AIF1DACL_SRC) && + (val & WM8994_AIF1DACR_SRC)) + dac = WM8994_AIF1DAC1R_ENA | WM8994_AIF1DAC2R_ENA; + else if (!(val & WM8994_AIF1DACL_SRC) && + !(val & WM8994_AIF1DACR_SRC)) + dac = WM8994_AIF1DAC1L_ENA | WM8994_AIF1DAC2L_ENA; + else + dac = WM8994_AIF1DAC1R_ENA | WM8994_AIF1DAC2R_ENA | + WM8994_AIF1DAC1L_ENA | WM8994_AIF1DAC2L_ENA; + + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4, + mask, adc); + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5, + mask, dac); + snd_soc_update_bits(codec, WM8994_CLOCKING_1, + WM8994_AIF1DSPCLK_ENA | + WM8994_SYSDSPCLK_ENA, + WM8994_AIF1DSPCLK_ENA | + WM8994_SYSDSPCLK_ENA); + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4, mask, + WM8994_AIF1ADC1R_ENA | + WM8994_AIF1ADC1L_ENA | + WM8994_AIF1ADC2R_ENA | + WM8994_AIF1ADC2L_ENA); + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5, mask, + WM8994_AIF1DAC1R_ENA | + WM8994_AIF1DAC1L_ENA | + WM8994_AIF1DAC2R_ENA | + WM8994_AIF1DAC2L_ENA); + break; + + case SND_SOC_DAPM_POST_PMU: + for (i = 0; i < ARRAY_SIZE(wm8994_vu_bits); i++) + snd_soc_write(codec, wm8994_vu_bits[i].reg, + snd_soc_read(codec, + wm8994_vu_bits[i].reg)); break; - } - /* We may also have postponed startup of DSP, handle that. */ - wm8958_aif_ev(w, kcontrol, event); + case SND_SOC_DAPM_PRE_PMD: + case SND_SOC_DAPM_POST_PMD: + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5, + mask, 0); + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4, + mask, 0); + + val = snd_soc_read(codec, WM8994_CLOCKING_1); + if (val & WM8994_AIF2DSPCLK_ENA) + val = WM8994_SYSDSPCLK_ENA; + else + val = 0; + snd_soc_update_bits(codec, WM8994_CLOCKING_1, + WM8994_SYSDSPCLK_ENA | + WM8994_AIF1DSPCLK_ENA, val); + break; + } return 0; } -static int late_disable_ev(struct snd_soc_dapm_widget *w, - struct snd_kcontrol *kcontrol, int event) +static int aif2clk_ev(struct snd_soc_dapm_widget *w, + struct snd_kcontrol *kcontrol, int event) { struct snd_soc_codec *codec = w->codec; - struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); + int i; + int dac; + int adc; + int val; switch (event) { + case SND_SOC_DAPM_PRE_PMU: + val = snd_soc_read(codec, WM8994_AIF2_CONTROL_1); + if ((val & WM8994_AIF2ADCL_SRC) && + (val & WM8994_AIF2ADCR_SRC)) + adc = WM8994_AIF2ADCR_ENA; + else if (!(val & WM8994_AIF2ADCL_SRC) && + !(val & WM8994_AIF2ADCR_SRC)) + adc = WM8994_AIF2ADCL_ENA; + else + adc = WM8994_AIF2ADCL_ENA | WM8994_AIF2ADCR_ENA; + + + val = snd_soc_read(codec, WM8994_AIF2_CONTROL_2); + if ((val & WM8994_AIF2DACL_SRC) && + (val & WM8994_AIF2DACR_SRC)) + dac = WM8994_AIF2DACR_ENA; + else if (!(val & WM8994_AIF2DACL_SRC) && + !(val & WM8994_AIF2DACR_SRC)) + dac = WM8994_AIF2DACL_ENA; + else + dac = WM8994_AIF2DACL_ENA | WM8994_AIF2DACR_ENA; + + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4, + WM8994_AIF2ADCL_ENA | + WM8994_AIF2ADCR_ENA, adc); + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5, + WM8994_AIF2DACL_ENA | + WM8994_AIF2DACR_ENA, dac); + snd_soc_update_bits(codec, WM8994_CLOCKING_1, + WM8994_AIF2DSPCLK_ENA | + WM8994_SYSDSPCLK_ENA, + WM8994_AIF2DSPCLK_ENA | + WM8994_SYSDSPCLK_ENA); + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4, + WM8994_AIF2ADCL_ENA | + WM8994_AIF2ADCR_ENA, + WM8994_AIF2ADCL_ENA | + WM8994_AIF2ADCR_ENA); + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5, + WM8994_AIF2DACL_ENA | + WM8994_AIF2DACR_ENA, + WM8994_AIF2DACL_ENA | + WM8994_AIF2DACR_ENA); + break; + + case SND_SOC_DAPM_POST_PMU: + for (i = 0; i < ARRAY_SIZE(wm8994_vu_bits); i++) + snd_soc_write(codec, wm8994_vu_bits[i].reg, + snd_soc_read(codec, + wm8994_vu_bits[i].reg)); + break; + + case SND_SOC_DAPM_PRE_PMD: case SND_SOC_DAPM_POST_PMD: - if (wm8994->aif1clk_disable) { - snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1, - WM8994_AIF1CLK_ENA_MASK, 0); - wm8994->aif1clk_disable = 0; - } - if (wm8994->aif2clk_disable) { - snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1, - WM8994_AIF2CLK_ENA_MASK, 0); - wm8994->aif2clk_disable = 0; - } + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5, + WM8994_AIF2DACL_ENA | + WM8994_AIF2DACR_ENA, 0); + snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4, + WM8994_AIF2ADCL_ENA | + WM8994_AIF2ADCR_ENA, 0); + + val = snd_soc_read(codec, WM8994_CLOCKING_1); + if (val & WM8994_AIF1DSPCLK_ENA) + val = WM8994_SYSDSPCLK_ENA; + else + val = 0; + snd_soc_update_bits(codec, WM8994_CLOCKING_1, + WM8994_SYSDSPCLK_ENA | + WM8994_AIF2DSPCLK_ENA, val); break; } return 0; } -static int aif1clk_ev(struct snd_soc_dapm_widget *w, - struct snd_kcontrol *kcontrol, int event) +static int aif1clk_late_ev(struct snd_soc_dapm_widget *w, + struct snd_kcontrol *kcontrol, int event) { struct snd_soc_codec *codec = w->codec; struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); @@ -950,8 +1112,8 @@ return 0; } -static int aif2clk_ev(struct snd_soc_dapm_widget *w, - struct snd_kcontrol *kcontrol, int event) +static int aif2clk_late_ev(struct snd_soc_dapm_widget *w, + struct snd_kcontrol *kcontrol, int event) { struct snd_soc_codec *codec = w->codec; struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); @@ -968,6 +1130,67 @@ return 0; } +static int late_enable_ev(struct snd_soc_dapm_widget *w, + struct snd_kcontrol *kcontrol, int event) +{ + struct snd_soc_codec *codec = w->codec; + struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); + + switch (event) { + case SND_SOC_DAPM_PRE_PMU: + if (wm8994->aif1clk_enable) { + aif1clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMU); + snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1, + WM8994_AIF1CLK_ENA_MASK, + WM8994_AIF1CLK_ENA); + aif1clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMU); + wm8994->aif1clk_enable = 0; + } + if (wm8994->aif2clk_enable) { + aif2clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMU); + snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1, + WM8994_AIF2CLK_ENA_MASK, + WM8994_AIF2CLK_ENA); + aif2clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMU); + wm8994->aif2clk_enable = 0; + } + break; + } + + /* We may also have postponed startup of DSP, handle that. */ + wm8958_aif_ev(w, kcontrol, event); + + return 0; +} + +static int late_disable_ev(struct snd_soc_dapm_widget *w, + struct snd_kcontrol *kcontrol, int event) +{ + struct snd_soc_codec *codec = w->codec; + struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); + + switch (event) { + case SND_SOC_DAPM_POST_PMD: + if (wm8994->aif1clk_disable) { + aif1clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMD); + snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1, + WM8994_AIF1CLK_ENA_MASK, 0); + aif1clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMD); + wm8994->aif1clk_disable = 0; + } + if (wm8994->aif2clk_disable) { + aif2clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMD); + snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1, + WM8994_AIF2CLK_ENA_MASK, 0); + aif2clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMD); + wm8994->aif2clk_disable = 0; + } + break; + } + + return 0; +} + static int adc_mux_ev(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { @@ -1264,9 +1487,9 @@ SOC_DAPM_ENUM("AIF2DACR Mux", aif2dacr_src_enum); static const struct snd_soc_dapm_widget wm8994_lateclk_revd_widgets[] = { -SND_SOC_DAPM_SUPPLY("AIF1CLK", SND_SOC_NOPM, 0, 0, aif1clk_ev, +SND_SOC_DAPM_SUPPLY("AIF1CLK", SND_SOC_NOPM, 0, 0, aif1clk_late_ev, SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), -SND_SOC_DAPM_SUPPLY("AIF2CLK", SND_SOC_NOPM, 0, 0, aif2clk_ev, +SND_SOC_DAPM_SUPPLY("AIF2CLK", SND_SOC_NOPM, 0, 0, aif2clk_late_ev, SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_PGA_E("Late DAC1L Enable PGA", SND_SOC_NOPM, 0, 0, NULL, 0, @@ -1295,8 +1518,12 @@ }; static const struct snd_soc_dapm_widget wm8994_lateclk_widgets[] = { -SND_SOC_DAPM_SUPPLY("AIF1CLK", WM8994_AIF1_CLOCKING_1, 0, 0, NULL, 0), -SND_SOC_DAPM_SUPPLY("AIF2CLK", WM8994_AIF2_CLOCKING_1, 0, 0, NULL, 0), +SND_SOC_DAPM_SUPPLY("AIF1CLK", WM8994_AIF1_CLOCKING_1, 0, 0, aif1clk_ev, + SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU | + SND_SOC_DAPM_PRE_PMD), +SND_SOC_DAPM_SUPPLY("AIF2CLK", WM8994_AIF2_CLOCKING_1, 0, 0, aif2clk_ev, + SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU | + SND_SOC_DAPM_PRE_PMD), SND_SOC_DAPM_PGA("Direct Voice", SND_SOC_NOPM, 0, 0, NULL, 0), SND_SOC_DAPM_MIXER("SPKL", WM8994_POWER_MANAGEMENT_3, 8, 0, left_speaker_mixer, ARRAY_SIZE(left_speaker_mixer)), @@ -1349,30 +1576,30 @@ SND_SOC_DAPM_SUPPLY("CLK_SYS", SND_SOC_NOPM, 0, 0, clk_sys_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), -SND_SOC_DAPM_SUPPLY("DSP1CLK", WM8994_CLOCKING_1, 3, 0, NULL, 0), -SND_SOC_DAPM_SUPPLY("DSP2CLK", WM8994_CLOCKING_1, 2, 0, NULL, 0), -SND_SOC_DAPM_SUPPLY("DSPINTCLK", WM8994_CLOCKING_1, 1, 0, NULL, 0), +SND_SOC_DAPM_SUPPLY("DSP1CLK", SND_SOC_NOPM, 3, 0, NULL, 0), +SND_SOC_DAPM_SUPPLY("DSP2CLK", SND_SOC_NOPM, 2, 0, NULL, 0), +SND_SOC_DAPM_SUPPLY("DSPINTCLK", SND_SOC_NOPM, 1, 0, NULL, 0), SND_SOC_DAPM_AIF_OUT("AIF1ADC1L", NULL, - 0, WM8994_POWER_MANAGEMENT_4, 9, 0), + 0, SND_SOC_NOPM, 9, 0), SND_SOC_DAPM_AIF_OUT("AIF1ADC1R", NULL, - 0, WM8994_POWER_MANAGEMENT_4, 8, 0), + 0, SND_SOC_NOPM, 8, 0), SND_SOC_DAPM_AIF_IN_E("AIF1DAC1L", NULL, 0, - WM8994_POWER_MANAGEMENT_5, 9, 0, wm8958_aif_ev, + SND_SOC_NOPM, 9, 0, wm8958_aif_ev, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_AIF_IN_E("AIF1DAC1R", NULL, 0, - WM8994_POWER_MANAGEMENT_5, 8, 0, wm8958_aif_ev, + SND_SOC_NOPM, 8, 0, wm8958_aif_ev, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_AIF_OUT("AIF1ADC2L", NULL, - 0, WM8994_POWER_MANAGEMENT_4, 11, 0), + 0, SND_SOC_NOPM, 11, 0), SND_SOC_DAPM_AIF_OUT("AIF1ADC2R", NULL, - 0, WM8994_POWER_MANAGEMENT_4, 10, 0), + 0, SND_SOC_NOPM, 10, 0), SND_SOC_DAPM_AIF_IN_E("AIF1DAC2L", NULL, 0, - WM8994_POWER_MANAGEMENT_5, 11, 0, wm8958_aif_ev, + SND_SOC_NOPM, 11, 0, wm8958_aif_ev, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_AIF_IN_E("AIF1DAC2R", NULL, 0, - WM8994_POWER_MANAGEMENT_5, 10, 0, wm8958_aif_ev, + SND_SOC_NOPM, 10, 0, wm8958_aif_ev, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_MIXER("AIF1ADC1L Mixer", SND_SOC_NOPM, 0, 0, @@ -1399,14 +1626,14 @@ dac1r_mix, ARRAY_SIZE(dac1r_mix)), SND_SOC_DAPM_AIF_OUT("AIF2ADCL", NULL, 0, - WM8994_POWER_MANAGEMENT_4, 13, 0), + SND_SOC_NOPM, 13, 0), SND_SOC_DAPM_AIF_OUT("AIF2ADCR", NULL, 0, - WM8994_POWER_MANAGEMENT_4, 12, 0), + SND_SOC_NOPM, 12, 0), SND_SOC_DAPM_AIF_IN_E("AIF2DACL", NULL, 0, - WM8994_POWER_MANAGEMENT_5, 13, 0, wm8958_aif_ev, + SND_SOC_NOPM, 13, 0, wm8958_aif_ev, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), SND_SOC_DAPM_AIF_IN_E("AIF2DACR", NULL, 0, - WM8994_POWER_MANAGEMENT_5, 12, 0, wm8958_aif_ev, + SND_SOC_NOPM, 12, 0, wm8958_aif_ev, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), SND_SOC_DAPM_AIF_IN("AIF1DACDAT", "AIF1 Playback", 0, SND_SOC_NOPM, 0, 0), @@ -2281,7 +2508,7 @@ return -EINVAL; } - bclk_rate = params_rate(params) * 2; + bclk_rate = params_rate(params) * 4; switch (params_format(params)) { case SNDRV_PCM_FORMAT_S16_LE: bclk_rate *= 16; @@ -2409,6 +2636,7 @@ default: return 0; } + break; default: return 0; } @@ -3186,7 +3414,7 @@ case 2: case 3: wm8994->hubs.dcs_codes_l = -9; - wm8994->hubs.dcs_codes_r = -5; + wm8994->hubs.dcs_codes_r = -7; break; default: break; @@ -3310,39 +3538,11 @@ wm8994_set_bias_level(codec, SND_SOC_BIAS_STANDBY); - /* Latch volume updates (right only; we always do left then right). */ - snd_soc_update_bits(codec, WM8994_AIF1_DAC1_LEFT_VOLUME, - WM8994_AIF1DAC1_VU, WM8994_AIF1DAC1_VU); - snd_soc_update_bits(codec, WM8994_AIF1_DAC1_RIGHT_VOLUME, - WM8994_AIF1DAC1_VU, WM8994_AIF1DAC1_VU); - snd_soc_update_bits(codec, WM8994_AIF1_DAC2_LEFT_VOLUME, - WM8994_AIF1DAC2_VU, WM8994_AIF1DAC2_VU); - snd_soc_update_bits(codec, WM8994_AIF1_DAC2_RIGHT_VOLUME, - WM8994_AIF1DAC2_VU, WM8994_AIF1DAC2_VU); - snd_soc_update_bits(codec, WM8994_AIF2_DAC_LEFT_VOLUME, - WM8994_AIF2DAC_VU, WM8994_AIF2DAC_VU); - snd_soc_update_bits(codec, WM8994_AIF2_DAC_RIGHT_VOLUME, - WM8994_AIF2DAC_VU, WM8994_AIF2DAC_VU); - snd_soc_update_bits(codec, WM8994_AIF1_ADC1_LEFT_VOLUME, - WM8994_AIF1ADC1_VU, WM8994_AIF1ADC1_VU); - snd_soc_update_bits(codec, WM8994_AIF1_ADC1_RIGHT_VOLUME, - WM8994_AIF1ADC1_VU, WM8994_AIF1ADC1_VU); - snd_soc_update_bits(codec, WM8994_AIF1_ADC2_LEFT_VOLUME, - WM8994_AIF1ADC2_VU, WM8994_AIF1ADC2_VU); - snd_soc_update_bits(codec, WM8994_AIF1_ADC2_RIGHT_VOLUME, - WM8994_AIF1ADC2_VU, WM8994_AIF1ADC2_VU); - snd_soc_update_bits(codec, WM8994_AIF2_ADC_LEFT_VOLUME, - WM8994_AIF2ADC_VU, WM8994_AIF1ADC2_VU); - snd_soc_update_bits(codec, WM8994_AIF2_ADC_RIGHT_VOLUME, - WM8994_AIF2ADC_VU, WM8994_AIF1ADC2_VU); - snd_soc_update_bits(codec, WM8994_DAC1_LEFT_VOLUME, - WM8994_DAC1_VU, WM8994_DAC1_VU); - snd_soc_update_bits(codec, WM8994_DAC1_RIGHT_VOLUME, - WM8994_DAC1_VU, WM8994_DAC1_VU); - snd_soc_update_bits(codec, WM8994_DAC2_LEFT_VOLUME, - WM8994_DAC2_VU, WM8994_DAC2_VU); - snd_soc_update_bits(codec, WM8994_DAC2_RIGHT_VOLUME, - WM8994_DAC2_VU, WM8994_DAC2_VU); + /* Latch volume update bits */ + for (i = 0; i < ARRAY_SIZE(wm8994_vu_bits); i++) + snd_soc_update_bits(codec, wm8994_vu_bits[i].reg, + wm8994_vu_bits[i].mask, + wm8994_vu_bits[i].mask); /* Set the low bit of the 3D stereo depth so TLV matches */ snd_soc_update_bits(codec, WM8994_AIF1_DAC1_FILTERS_2, --- linux-3.2.0.orig/sound/soc/codecs/wm9712.c +++ linux-3.2.0/sound/soc/codecs/wm9712.c @@ -270,7 +270,7 @@ /* Mic select */ static const struct snd_kcontrol_new wm9712_mic_src_controls = -SOC_DAPM_ENUM("Route", wm9712_enum[7]); +SOC_DAPM_ENUM("Mic Source Select", wm9712_enum[7]); /* diff select */ static const struct snd_kcontrol_new wm9712_diff_sel_controls = @@ -289,7 +289,9 @@ &wm9712_capture_selectl_controls), SND_SOC_DAPM_MUX("Right Capture Select", SND_SOC_NOPM, 0, 0, &wm9712_capture_selectr_controls), -SND_SOC_DAPM_MUX("Mic Select Source", SND_SOC_NOPM, 0, 0, +SND_SOC_DAPM_MUX("Left Mic Select Source", SND_SOC_NOPM, 0, 0, + &wm9712_mic_src_controls), +SND_SOC_DAPM_MUX("Right Mic Select Source", SND_SOC_NOPM, 0, 0, &wm9712_mic_src_controls), SND_SOC_DAPM_MUX("Differential Source", SND_SOC_NOPM, 0, 0, &wm9712_diff_sel_controls), @@ -317,6 +319,7 @@ SND_SOC_DAPM_PGA("Line PGA", AC97_INT_PAGING, 2, 1, NULL, 0), SND_SOC_DAPM_PGA("Phone PGA", AC97_INT_PAGING, 1, 1, NULL, 0), SND_SOC_DAPM_PGA("Mic PGA", AC97_INT_PAGING, 0, 1, NULL, 0), +SND_SOC_DAPM_PGA("Differential Mic", SND_SOC_NOPM, 0, 0, NULL, 0), SND_SOC_DAPM_MICBIAS("Mic Bias", AC97_INT_PAGING, 10, 1), SND_SOC_DAPM_OUTPUT("MONOOUT"), SND_SOC_DAPM_OUTPUT("HPOUTL"), @@ -377,6 +380,18 @@ {"Mic PGA", NULL, "MIC1"}, {"Mic PGA", NULL, "MIC2"}, + /* microphones */ + {"Differential Mic", NULL, "MIC1"}, + {"Differential Mic", NULL, "MIC2"}, + {"Left Mic Select Source", "Mic 1", "MIC1"}, + {"Left Mic Select Source", "Mic 2", "MIC2"}, + {"Left Mic Select Source", "Stereo", "MIC1"}, + {"Left Mic Select Source", "Differential", "Differential Mic"}, + {"Right Mic Select Source", "Mic 1", "MIC1"}, + {"Right Mic Select Source", "Mic 2", "MIC2"}, + {"Right Mic Select Source", "Stereo", "MIC2"}, + {"Right Mic Select Source", "Differential", "Differential Mic"}, + /* left capture selector */ {"Left Capture Select", "Mic", "MIC1"}, {"Left Capture Select", "Speaker Mixer", "Speaker Mixer"}, --- linux-3.2.0.orig/sound/soc/codecs/sgtl5000.h +++ linux-3.2.0/sound/soc/codecs/sgtl5000.h @@ -347,7 +347,7 @@ #define SGTL5000_PLL_INT_DIV_MASK 0xf800 #define SGTL5000_PLL_INT_DIV_SHIFT 11 #define SGTL5000_PLL_INT_DIV_WIDTH 5 -#define SGTL5000_PLL_FRAC_DIV_MASK 0x0700 +#define SGTL5000_PLL_FRAC_DIV_MASK 0x07ff #define SGTL5000_PLL_FRAC_DIV_SHIFT 0 #define SGTL5000_PLL_FRAC_DIV_WIDTH 11 --- linux-3.2.0.orig/sound/soc/codecs/wm5100.c +++ linux-3.2.0/sound/soc/codecs/wm5100.c @@ -1446,15 +1446,9 @@ case SND_SOC_DAIFMT_DSP_A: mask = 0; break; - case SND_SOC_DAIFMT_DSP_B: - mask = 1; - break; case SND_SOC_DAIFMT_I2S: mask = 2; break; - case SND_SOC_DAIFMT_LEFT_J: - mask = 3; - break; default: dev_err(codec->dev, "Unsupported DAI format %d\n", fmt & SND_SOC_DAIFMT_FORMAT_MASK); --- linux-3.2.0.orig/sound/soc/codecs/wm_hubs.c +++ linux-3.2.0/sound/soc/codecs/wm_hubs.c @@ -587,14 +587,14 @@ }; static const struct snd_kcontrol_new line2_mix[] = { -SOC_DAPM_SINGLE("IN2R Switch", WM8993_LINE_MIXER2, 2, 1, 0), -SOC_DAPM_SINGLE("IN2L Switch", WM8993_LINE_MIXER2, 1, 1, 0), +SOC_DAPM_SINGLE("IN1L Switch", WM8993_LINE_MIXER2, 2, 1, 0), +SOC_DAPM_SINGLE("IN1R Switch", WM8993_LINE_MIXER2, 1, 1, 0), SOC_DAPM_SINGLE("Output Switch", WM8993_LINE_MIXER2, 0, 1, 0), }; static const struct snd_kcontrol_new line2n_mix[] = { -SOC_DAPM_SINGLE("Left Output Switch", WM8993_LINE_MIXER2, 6, 1, 0), -SOC_DAPM_SINGLE("Right Output Switch", WM8993_LINE_MIXER2, 5, 1, 0), +SOC_DAPM_SINGLE("Left Output Switch", WM8993_LINE_MIXER2, 5, 1, 0), +SOC_DAPM_SINGLE("Right Output Switch", WM8993_LINE_MIXER2, 6, 1, 0), }; static const struct snd_kcontrol_new line2p_mix[] = { @@ -614,6 +614,8 @@ SND_SOC_DAPM_MICBIAS("MICBIAS2", WM8993_POWER_MANAGEMENT_1, 5, 0), SND_SOC_DAPM_MICBIAS("MICBIAS1", WM8993_POWER_MANAGEMENT_1, 4, 0), +SND_SOC_DAPM_SUPPLY("LINEOUT_VMID_BUF", WM8993_ANTIPOP1, 7, 0, NULL, 0), + SND_SOC_DAPM_MIXER("IN1L PGA", WM8993_POWER_MANAGEMENT_2, 6, 0, in1l_pga, ARRAY_SIZE(in1l_pga)), SND_SOC_DAPM_MIXER("IN1R PGA", WM8993_POWER_MANAGEMENT_2, 4, 0, @@ -832,9 +834,11 @@ }; static const struct snd_soc_dapm_route lineout1_se_routes[] = { + { "LINEOUT1N Mixer", NULL, "LINEOUT_VMID_BUF" }, { "LINEOUT1N Mixer", "Left Output Switch", "Left Output PGA" }, { "LINEOUT1N Mixer", "Right Output Switch", "Right Output PGA" }, + { "LINEOUT1P Mixer", NULL, "LINEOUT_VMID_BUF" }, { "LINEOUT1P Mixer", "Left Output Switch", "Left Output PGA" }, { "LINEOUT1N Driver", NULL, "LINEOUT1N Mixer" }, @@ -842,8 +846,8 @@ }; static const struct snd_soc_dapm_route lineout2_diff_routes[] = { - { "LINEOUT2 Mixer", "IN2L Switch", "IN2L PGA" }, - { "LINEOUT2 Mixer", "IN2R Switch", "IN2R PGA" }, + { "LINEOUT2 Mixer", "IN1L Switch", "IN1L PGA" }, + { "LINEOUT2 Mixer", "IN1R Switch", "IN1R PGA" }, { "LINEOUT2 Mixer", "Output Switch", "Right Output PGA" }, { "LINEOUT2N Driver", NULL, "LINEOUT2 Mixer" }, @@ -851,9 +855,11 @@ }; static const struct snd_soc_dapm_route lineout2_se_routes[] = { + { "LINEOUT2N Mixer", NULL, "LINEOUT_VMID_BUF" }, { "LINEOUT2N Mixer", "Left Output Switch", "Left Output PGA" }, { "LINEOUT2N Mixer", "Right Output Switch", "Right Output PGA" }, + { "LINEOUT2P Mixer", NULL, "LINEOUT_VMID_BUF" }, { "LINEOUT2P Mixer", "Right Output Switch", "Right Output PGA" }, { "LINEOUT2N Driver", NULL, "LINEOUT2N Mixer" }, --- linux-3.2.0.orig/sound/soc/codecs/wm8978.c +++ linux-3.2.0/sound/soc/codecs/wm8978.c @@ -749,7 +749,7 @@ wm8978->mclk_idx = -1; f_sel = wm8978->f_mclk; } else { - if (!wm8978->f_pllout) { + if (!wm8978->f_opclk) { /* We only enter here, if OPCLK is not used */ int ret = wm8978_configure_pll(codec); if (ret < 0) --- linux-3.2.0.orig/sound/soc/codecs/sgtl5000.c +++ linux-3.2.0/sound/soc/codecs/sgtl5000.c @@ -38,7 +38,7 @@ static const u16 sgtl5000_regs[SGTL5000_MAX_REG_OFFSET] = { [SGTL5000_CHIP_CLK_CTRL] = 0x0008, [SGTL5000_CHIP_I2S_CTRL] = 0x0010, - [SGTL5000_CHIP_SSS_CTRL] = 0x0008, + [SGTL5000_CHIP_SSS_CTRL] = 0x0010, [SGTL5000_CHIP_DAC_VOL] = 0x3c3c, [SGTL5000_CHIP_PAD_STRENGTH] = 0x015f, [SGTL5000_CHIP_ANA_HP_CTRL] = 0x1818, --- linux-3.2.0.orig/sound/soc/codecs/ak4642.c +++ linux-3.2.0/sound/soc/codecs/ak4642.c @@ -144,7 +144,7 @@ * min : 0xFE : -115.0 dB * mute: 0xFF */ -static const DECLARE_TLV_DB_SCALE(out_tlv, -11500, 50, 1); +static const DECLARE_TLV_DB_SCALE(out_tlv, -11550, 50, 1); static const struct snd_kcontrol_new ak4642_snd_controls[] = { --- linux-3.2.0.orig/sound/soc/codecs/tlv320aic3x.h +++ linux-3.2.0/sound/soc/codecs/tlv320aic3x.h @@ -166,6 +166,7 @@ /* PLL registers bitfields */ #define PLLP_SHIFT 0 +#define PLLP_MASK 7 #define PLLQ_SHIFT 3 #define PLLR_SHIFT 0 #define PLLJ_SHIFT 2 --- linux-3.2.0.orig/sound/soc/codecs/max98088.c +++ linux-3.2.0/sound/soc/codecs/max98088.c @@ -1595,7 +1595,7 @@ static void max98088_sync_cache(struct snd_soc_codec *codec) { - u16 *reg_cache = codec->reg_cache; + u8 *reg_cache = codec->reg_cache; int i; if (!codec->cache_sync) @@ -2007,7 +2007,7 @@ ret); goto err_access; } - dev_info(codec->dev, "revision %c\n", ret + 'A'); + dev_info(codec->dev, "revision %c\n", ret - 0x40 + 'A'); snd_soc_write(codec, M98088_REG_51_PWR_SYS, M98088_PWRSV); --- linux-3.2.0.orig/sound/soc/codecs/tlv320aic3x.c +++ linux-3.2.0/sound/soc/codecs/tlv320aic3x.c @@ -963,9 +963,7 @@ } found: - data = snd_soc_read(codec, AIC3X_PLL_PROGA_REG); - snd_soc_write(codec, AIC3X_PLL_PROGA_REG, - data | (pll_p << PLLP_SHIFT)); + snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, PLLP_MASK, pll_p); snd_soc_write(codec, AIC3X_OVRF_STATUS_AND_PLLR_REG, pll_r << PLLR_SHIFT); snd_soc_write(codec, AIC3X_PLL_PROGB_REG, pll_j << PLLJ_SHIFT); --- linux-3.2.0.orig/sound/soc/codecs/wm8962.c +++ linux-3.2.0/sound/soc/codecs/wm8962.c @@ -2117,7 +2117,6 @@ struct snd_ctl_elem_value *ucontrol) { struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); - u16 *reg_cache = codec->reg_cache; int ret; /* Apply the update (if any) */ @@ -2126,16 +2125,19 @@ return 0; /* If the left PGA is enabled hit that VU bit... */ - if (snd_soc_read(codec, WM8962_PWR_MGMT_2) & WM8962_HPOUTL_PGA_ENA) - return snd_soc_write(codec, WM8962_HPOUTL_VOLUME, - reg_cache[WM8962_HPOUTL_VOLUME]); + ret = snd_soc_read(codec, WM8962_PWR_MGMT_2); + if (ret & WM8962_HPOUTL_PGA_ENA) { + snd_soc_write(codec, WM8962_HPOUTL_VOLUME, + snd_soc_read(codec, WM8962_HPOUTL_VOLUME)); + return 1; + } /* ...otherwise the right. The VU is stereo. */ - if (snd_soc_read(codec, WM8962_PWR_MGMT_2) & WM8962_HPOUTR_PGA_ENA) - return snd_soc_write(codec, WM8962_HPOUTR_VOLUME, - reg_cache[WM8962_HPOUTR_VOLUME]); + if (ret & WM8962_HPOUTR_PGA_ENA) + snd_soc_write(codec, WM8962_HPOUTR_VOLUME, + snd_soc_read(codec, WM8962_HPOUTR_VOLUME)); - return 0; + return 1; } /* The VU bits for the speakers are in a different register to the mute @@ -2559,7 +2561,7 @@ return 0; } -static const char *st_text[] = { "None", "Right", "Left" }; +static const char *st_text[] = { "None", "Left", "Right" }; static const struct soc_enum str_enum = SOC_ENUM_SINGLE(WM8962_DAC_DSP_MIXING_1, 2, 3, st_text); @@ -3105,6 +3107,9 @@ /* VMID 2*250k */ snd_soc_update_bits(codec, WM8962_PWR_MGMT_1, WM8962_VMID_SEL_MASK, 0x100); + + if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) + msleep(100); break; case SND_SOC_BIAS_OFF: @@ -3172,13 +3177,13 @@ case SNDRV_PCM_FORMAT_S16_LE: break; case SNDRV_PCM_FORMAT_S20_3LE: - aif0 |= 0x40; + aif0 |= 0x4; break; case SNDRV_PCM_FORMAT_S24_LE: - aif0 |= 0x80; + aif0 |= 0x8; break; case SNDRV_PCM_FORMAT_S32_LE: - aif0 |= 0xc0; + aif0 |= 0xc; break; default: return -EINVAL; @@ -3941,7 +3946,6 @@ int ret; struct wm8962_priv *wm8962 = snd_soc_codec_get_drvdata(codec); struct wm8962_pdata *pdata = dev_get_platdata(codec->dev); - u16 *reg_cache = codec->reg_cache; int i, trigger, irq_pol; bool dmicclk, dmicdat; @@ -4052,8 +4056,9 @@ /* Put the speakers into mono mode? */ if (pdata->spk_mono) - reg_cache[WM8962_CLASS_D_CONTROL_2] - |= WM8962_SPK_MONO; + snd_soc_update_bits(codec, WM8962_CLASS_D_CONTROL_2, + WM8962_SPK_MONO_MASK, WM8962_SPK_MONO); + /* Micbias setup, detection enable and detection * threasholds. */ --- linux-3.2.0.orig/sound/soc/codecs/wm8996.h +++ linux-3.2.0/sound/soc/codecs/wm8996.h @@ -1567,6 +1567,10 @@ /* * R257 (0x101) - Control Interface (1) */ +#define WM8996_REG_SYNC 0x8000 /* REG_SYNC */ +#define WM8996_REG_SYNC_MASK 0x8000 /* REG_SYNC */ +#define WM8996_REG_SYNC_SHIFT 15 /* REG_SYNC */ +#define WM8996_REG_SYNC_WIDTH 1 /* REG_SYNC */ #define WM8996_AUTO_INC 0x0004 /* AUTO_INC */ #define WM8996_AUTO_INC_MASK 0x0004 /* AUTO_INC */ #define WM8996_AUTO_INC_SHIFT 2 /* AUTO_INC */ --- linux-3.2.0.orig/sound/soc/codecs/wm8903.c +++ linux-3.2.0/sound/soc/codecs/wm8903.c @@ -1101,6 +1101,8 @@ { "ROP", NULL, "Right Speaker PGA" }, { "RON", NULL, "Right Speaker PGA" }, + { "Charge Pump", NULL, "CLK_DSP" }, + { "Left Headphone Output PGA", NULL, "Charge Pump" }, { "Right Headphone Output PGA", NULL, "Charge Pump" }, { "Left Line Output PGA", NULL, "Charge Pump" }, --- linux-3.2.0.orig/sound/soc/codecs/wm2000.c +++ linux-3.2.0/sound/soc/codecs/wm2000.c @@ -224,9 +224,9 @@ ret = wm2000_read(i2c, WM2000_REG_SPEECH_CLARITY); if (wm2000->speech_clarity) - ret &= ~WM2000_SPEECH_CLARITY; - else ret |= WM2000_SPEECH_CLARITY; + else + ret &= ~WM2000_SPEECH_CLARITY; wm2000_write(i2c, WM2000_REG_SPEECH_CLARITY, ret); wm2000_write(i2c, WM2000_REG_SYS_START0, 0x33); --- linux-3.2.0.orig/sound/soc/codecs/wm8996.c +++ linux-3.2.0/sound/soc/codecs/wm8996.c @@ -1049,7 +1049,8 @@ SND_SOC_DAPM_SUPPLY_S("SYSDSPCLK", 2, WM8996_CLOCKING_1, 1, 0, NULL, 0), SND_SOC_DAPM_SUPPLY_S("AIFCLK", 2, WM8996_CLOCKING_1, 2, 0, NULL, 0), SND_SOC_DAPM_SUPPLY_S("Charge Pump", 2, WM8996_CHARGE_PUMP_1, 15, 0, cp_event, - SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), + SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU | + SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_SUPPLY("Bandgap", SND_SOC_NOPM, 0, 0, bg_event, SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_SUPPLY("LDO2", WM8996_POWER_MANAGEMENT_2, 1, 0, NULL, 0), @@ -1932,6 +1933,7 @@ struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); int lfclk = 0; int ratediv = 0; + int sync = WM8996_REG_SYNC; int src; int old; @@ -1976,6 +1978,7 @@ case 32000: case 32768: lfclk = WM8996_LFCLK_ENA; + sync = 0; break; default: dev_warn(codec->dev, "Unsupported clock rate %dHz\n", @@ -1989,6 +1992,8 @@ WM8996_SYSCLK_SRC_MASK | WM8996_SYSCLK_DIV_MASK, src << WM8996_SYSCLK_SRC_SHIFT | ratediv); snd_soc_update_bits(codec, WM8996_CLOCKING_1, WM8996_LFCLK_ENA, lfclk); + snd_soc_update_bits(codec, WM8996_CONTROL_INTERFACE_1, + WM8996_REG_SYNC, sync); snd_soc_update_bits(codec, WM8996_AIF_CLOCKING_1, WM8996_SYSCLK_ENA, old); --- linux-3.2.0.orig/sound/soc/codecs/tlv320aic23.c +++ linux-3.2.0/sound/soc/codecs/tlv320aic23.c @@ -473,7 +473,7 @@ static int tlv320aic23_set_bias_level(struct snd_soc_codec *codec, enum snd_soc_bias_level level) { - u16 reg = snd_soc_read(codec, TLV320AIC23_PWR) & 0xff7f; + u16 reg = snd_soc_read(codec, TLV320AIC23_PWR) & 0x17f; switch (level) { case SND_SOC_BIAS_ON: @@ -492,7 +492,7 @@ case SND_SOC_BIAS_OFF: /* everything off, dac mute, inactive */ snd_soc_write(codec, TLV320AIC23_ACTIVE, 0x0); - snd_soc_write(codec, TLV320AIC23_PWR, 0xffff); + snd_soc_write(codec, TLV320AIC23_PWR, 0x1ff); break; } codec->dapm.bias_level = level; --- linux-3.2.0.orig/sound/soc/imx/imx-ssi.c +++ linux-3.2.0/sound/soc/imx/imx-ssi.c @@ -112,7 +112,7 @@ break; case SND_SOC_DAIFMT_DSP_A: /* data on rising edge of bclk, frame high 1clk before data */ - strcr |= SSI_STCR_TFSL | SSI_STCR_TEFS; + strcr |= SSI_STCR_TFSL | SSI_STCR_TXBIT0 | SSI_STCR_TEFS; break; } @@ -573,6 +573,8 @@ if (imx_ssi->ac97_reset) imx_ssi->ac97_reset(ac97); + /* First read sometimes fails, do a dummy read */ + imx_ssi_ac97_read(ac97, 0); } static void imx_ssi_ac97_warm_reset(struct snd_ac97 *ac97) @@ -581,6 +583,9 @@ if (imx_ssi->ac97_warm_reset) imx_ssi->ac97_warm_reset(ac97); + + /* First read sometimes fails, do a dummy read */ + imx_ssi_ac97_read(ac97, 0); } struct snd_ac97_bus_ops soc_ac97_ops = { --- linux-3.2.0.orig/sound/soc/fsl/p1022_ds.c +++ linux-3.2.0/sound/soc/fsl/p1022_ds.c @@ -392,7 +392,8 @@ } if (strcasecmp(sprop, "i2s-slave") == 0) { - mdata->dai_format = SND_SOC_DAIFMT_I2S; + mdata->dai_format = SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM; mdata->codec_clk_direction = SND_SOC_CLOCK_OUT; mdata->cpu_clk_direction = SND_SOC_CLOCK_IN; @@ -409,31 +410,38 @@ } mdata->clk_frequency = be32_to_cpup(iprop); } else if (strcasecmp(sprop, "i2s-master") == 0) { - mdata->dai_format = SND_SOC_DAIFMT_I2S; + mdata->dai_format = SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS; mdata->codec_clk_direction = SND_SOC_CLOCK_IN; mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT; } else if (strcasecmp(sprop, "lj-slave") == 0) { - mdata->dai_format = SND_SOC_DAIFMT_LEFT_J; + mdata->dai_format = SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBM_CFM; mdata->codec_clk_direction = SND_SOC_CLOCK_OUT; mdata->cpu_clk_direction = SND_SOC_CLOCK_IN; } else if (strcasecmp(sprop, "lj-master") == 0) { - mdata->dai_format = SND_SOC_DAIFMT_LEFT_J; + mdata->dai_format = SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBS_CFS; mdata->codec_clk_direction = SND_SOC_CLOCK_IN; mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT; } else if (strcasecmp(sprop, "rj-slave") == 0) { - mdata->dai_format = SND_SOC_DAIFMT_RIGHT_J; + mdata->dai_format = SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_CBM_CFM; mdata->codec_clk_direction = SND_SOC_CLOCK_OUT; mdata->cpu_clk_direction = SND_SOC_CLOCK_IN; } else if (strcasecmp(sprop, "rj-master") == 0) { - mdata->dai_format = SND_SOC_DAIFMT_RIGHT_J; + mdata->dai_format = SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_CBS_CFS; mdata->codec_clk_direction = SND_SOC_CLOCK_IN; mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT; } else if (strcasecmp(sprop, "ac97-slave") == 0) { - mdata->dai_format = SND_SOC_DAIFMT_AC97; + mdata->dai_format = SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_AC97 | SND_SOC_DAIFMT_CBM_CFM; mdata->codec_clk_direction = SND_SOC_CLOCK_OUT; mdata->cpu_clk_direction = SND_SOC_CLOCK_IN; } else if (strcasecmp(sprop, "ac97-master") == 0) { - mdata->dai_format = SND_SOC_DAIFMT_AC97; + mdata->dai_format = SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_AC97 | SND_SOC_DAIFMT_CBS_CFS; mdata->codec_clk_direction = SND_SOC_CLOCK_IN; mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT; } else { --- linux-3.2.0.orig/sound/drivers/aloop.c +++ linux-3.2.0/sound/drivers/aloop.c @@ -119,6 +119,7 @@ unsigned int period_size_frac; unsigned long last_jiffies; struct timer_list timer; + spinlock_t timer_lock; }; static struct platform_device *devices[SNDRV_CARDS]; @@ -169,6 +170,7 @@ unsigned long tick; unsigned int rate_shift = get_rate_shift(dpcm); + spin_lock(&dpcm->timer_lock); if (rate_shift != dpcm->pcm_rate_shift) { dpcm->pcm_rate_shift = rate_shift; dpcm->period_size_frac = frac_pos(dpcm, dpcm->pcm_period_size); @@ -181,12 +183,15 @@ tick = (tick + dpcm->pcm_bps - 1) / dpcm->pcm_bps; dpcm->timer.expires = jiffies + tick; add_timer(&dpcm->timer); + spin_unlock(&dpcm->timer_lock); } static inline void loopback_timer_stop(struct loopback_pcm *dpcm) { + spin_lock(&dpcm->timer_lock); del_timer(&dpcm->timer); dpcm->timer.expires = 0; + spin_unlock(&dpcm->timer_lock); } #define CABLE_VALID_PLAYBACK (1 << SNDRV_PCM_STREAM_PLAYBACK) @@ -282,12 +287,14 @@ loopback_active_notify(dpcm); break; case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + case SNDRV_PCM_TRIGGER_SUSPEND: spin_lock(&cable->lock); cable->pause |= stream; spin_unlock(&cable->lock); loopback_timer_stop(dpcm); break; case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + case SNDRV_PCM_TRIGGER_RESUME: spin_lock(&cable->lock); dpcm->last_jiffies = jiffies; cable->pause &= ~stream; @@ -547,7 +554,8 @@ static struct snd_pcm_hardware loopback_pcm_hardware = { .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP | - SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_PAUSE), + SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_PAUSE | + SNDRV_PCM_INFO_RESUME), .formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE | SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE | SNDRV_PCM_FMTBIT_FLOAT_LE | SNDRV_PCM_FMTBIT_FLOAT_BE), @@ -659,6 +667,7 @@ dpcm->substream = substream; setup_timer(&dpcm->timer, loopback_timer_function, (unsigned long)dpcm); + spin_lock_init(&dpcm->timer_lock); cable = loopback->cables[substream->number][dev]; if (!cable) { --- linux-3.2.0.orig/sound/drivers/mpu401/mpu401_uart.c +++ linux-3.2.0/sound/drivers/mpu401/mpu401_uart.c @@ -554,6 +554,7 @@ spin_lock_init(&mpu->output_lock); spin_lock_init(&mpu->timer_lock); mpu->hardware = hardware; + mpu->irq = -1; if (! (info_flags & MPU401_INFO_INTEGRATED)) { int res_size = hardware == MPU401_HW_PC98II ? 4 : 2; mpu->res = request_region(port, res_size, "MPU401 UART"); --- linux-3.2.0.orig/sound/pci/intel8x0.c +++ linux-3.2.0/sound/pci/intel8x0.c @@ -2102,6 +2102,12 @@ }, { .subvendor = 0x161f, + .subdevice = 0x202f, + .name = "Gateway M520", + .type = AC97_TUNE_INV_EAPD + }, + { + .subvendor = 0x161f, .subdevice = 0x203a, .name = "Gateway 4525GZ", /* AD1981B */ .type = AC97_TUNE_INV_EAPD --- linux-3.2.0.orig/sound/pci/atiixp.c +++ linux-3.2.0/sound/pci/atiixp.c @@ -688,7 +688,9 @@ if (! dma->substream || ! dma->running) return; snd_printdd("atiixp: XRUN detected (DMA %d)\n", dma->ops->type); + snd_pcm_stream_lock(dma->substream); snd_pcm_stop(dma->substream, SNDRV_PCM_STATE_XRUN); + snd_pcm_stream_unlock(dma->substream); } /* --- linux-3.2.0.orig/sound/pci/atiixp_modem.c +++ linux-3.2.0/sound/pci/atiixp_modem.c @@ -638,7 +638,9 @@ if (! dma->substream || ! dma->running) return; snd_printdd("atiixp-modem: XRUN detected (DMA %d)\n", dma->ops->type); + snd_pcm_stream_lock(dma->substream); snd_pcm_stop(dma->substream, SNDRV_PCM_STATE_XRUN); + snd_pcm_stream_unlock(dma->substream); } /* --- linux-3.2.0.orig/sound/pci/rme32.c +++ linux-3.2.0/sound/pci/rme32.c @@ -1017,7 +1017,7 @@ spin_lock_irq(&rme32->lock); rme32->capture_substream = NULL; rme32->capture_periodsize = 0; - spin_unlock(&rme32->lock); + spin_unlock_irq(&rme32->lock); return 0; } --- linux-3.2.0.orig/sound/pci/asihpi/asihpi.c +++ linux-3.2.0/sound/pci/asihpi/asihpi.c @@ -768,7 +768,10 @@ s->number); ds->drained_count++; if (ds->drained_count > 2) { + unsigned long flags; + snd_pcm_stream_lock_irqsave(s, flags); snd_pcm_stop(s, SNDRV_PCM_STATE_XRUN); + snd_pcm_stream_unlock_irqrestore(s, flags); continue; } } else { --- linux-3.2.0.orig/sound/pci/hda/hda_proc.c +++ linux-3.2.0/sound/pci/hda/hda_proc.c @@ -54,6 +54,8 @@ [AC_WID_BEEP] = "Beep Generator Widget", [AC_WID_VENDOR] = "Vendor Defined Widget", }; + if (wid_value == -1) + return "UNKNOWN Widget"; wid_value &= 0xf; if (names[wid_value]) return names[wid_value]; @@ -410,7 +412,7 @@ if (digi1 & AC_DIG1_EMPHASIS) snd_iprintf(buffer, " Preemphasis"); if (digi1 & AC_DIG1_COPYRIGHT) - snd_iprintf(buffer, " Copyright"); + snd_iprintf(buffer, " Non-Copyright"); if (digi1 & AC_DIG1_NONAUDIO) snd_iprintf(buffer, " Non-Audio"); if (digi1 & AC_DIG1_PROFESSIONAL) --- linux-3.2.0.orig/sound/pci/hda/patch_via.c +++ linux-3.2.0/sound/pci/hda/patch_via.c @@ -54,6 +54,7 @@ #include #include "hda_codec.h" #include "hda_local.h" +#include "hda_jack.h" /* Pin Widget NID */ #define VT1708_HP_PIN_NID 0x20 @@ -198,6 +199,9 @@ unsigned int no_pin_power_ctl; enum VIA_HDA_CODEC codec_type; + /* analog low-power control */ + bool alc_mode; + /* smart51 setup */ unsigned int smart51_nums; hda_nid_t smart51_pins[2]; @@ -662,6 +666,9 @@ /* init input-src */ for (i = 0; i < spec->num_adc_nids; i++) { int adc_idx = spec->inputs[spec->cur_mux[i]].adc_idx; + /* secondary ADCs must have the unique MUX */ + if (i > 0 && !spec->mux_nids[i]) + break; if (spec->mux_nids[adc_idx]) { int mux_idx = spec->inputs[spec->cur_mux[i]].mux_idx; snd_hda_codec_write(codec, spec->mux_nids[adc_idx], 0, @@ -748,6 +755,7 @@ return 0; spec->no_pin_power_ctl = val; set_widgets_power_state(codec); + analog_low_current_mode(codec); return 1; } @@ -1035,13 +1043,19 @@ } /* enter/exit analog low-current mode */ -static void analog_low_current_mode(struct hda_codec *codec) +static void __analog_low_current_mode(struct hda_codec *codec, bool force) { struct via_spec *spec = codec->spec; bool enable; unsigned int verb, parm; - enable = is_aa_path_mute(codec) && (spec->opened_streams != 0); + if (spec->no_pin_power_ctl) + enable = false; + else + enable = is_aa_path_mute(codec) && !spec->opened_streams; + if (enable == spec->alc_mode && !force) + return; + spec->alc_mode = enable; /* decide low current mode's verb & parameter */ switch (spec->codec_type) { @@ -1073,6 +1087,11 @@ snd_hda_codec_write(codec, codec->afg, 0, verb, parm); } +static void analog_low_current_mode(struct hda_codec *codec) +{ + return __analog_low_current_mode(codec, false); +} + /* * generic initialization of ADC, input mixers and output mixers */ @@ -1445,6 +1464,7 @@ struct snd_kcontrol *kctl; int err, i; + spec->no_pin_power_ctl = 1; if (spec->set_widgets_power_state) if (!via_clone_control(spec, &via_pin_power_ctl_enum)) return -ENOMEM; @@ -1498,11 +1518,12 @@ return err; } - /* init power states */ - set_widgets_power_state(codec); - analog_low_current_mode(codec); - via_free_kctls(codec); /* no longer needed */ + + err = snd_hda_jack_add_kctls(codec, &spec->autocfg); + if (err < 0) + return err; + return 0; } @@ -1714,6 +1735,7 @@ unsigned int res) { res >>= 26; + res = snd_hda_jack_get_action(codec, res); if (res & VIA_JACK_EVENT) set_widgets_power_state(codec); @@ -1724,6 +1746,7 @@ via_hp_automute(codec); else if (res == VIA_GPIO_EVENT) via_gpio_control(codec); + snd_hda_jack_report_sync(codec); } #ifdef CONFIG_PM @@ -1841,11 +1864,11 @@ { struct via_spec *spec = codec->spec; const struct auto_pin_cfg *cfg = &spec->autocfg; - int i, dac_num; + int i; hda_nid_t nid; + spec->multiout.num_dacs = 0; spec->multiout.dac_nids = spec->private_dac_nids; - dac_num = 0; for (i = 0; i < cfg->line_outs; i++) { hda_nid_t dac = 0; nid = cfg->line_out_pins[i]; @@ -1856,16 +1879,13 @@ if (!i && parse_output_path(codec, nid, dac, 1, &spec->out_mix_path)) dac = spec->out_mix_path.path[0]; - if (dac) { - spec->private_dac_nids[i] = dac; - dac_num++; - } + if (dac) + spec->private_dac_nids[spec->multiout.num_dacs++] = dac; } if (!spec->out_path[0].depth && spec->out_mix_path.depth) { spec->out_path[0] = spec->out_mix_path; spec->out_mix_path.depth = 0; } - spec->multiout.num_dacs = dac_num; return 0; } @@ -2200,7 +2220,10 @@ { struct via_spec *spec = codec->spec; - if (!spec->aa_mix_nid || !spec->out_mix_path.depth) + if (!spec->aa_mix_nid) + return 0; /* no loopback switching available */ + if (!(spec->out_mix_path.depth || spec->hp_mix_path.depth || + spec->speaker_path.depth)) return 0; /* no loopback switching available */ if (!via_clone_control(spec, &via_aamix_ctl_enum)) return -ENOMEM; @@ -2736,9 +2759,8 @@ int i; if (cfg->hp_pins[0] && is_jack_detectable(codec, cfg->hp_pins[0])) - snd_hda_codec_write(codec, cfg->hp_pins[0], 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | VIA_HP_EVENT | VIA_JACK_EVENT); + snd_hda_jack_detect_enable(codec, cfg->hp_pins[0], + VIA_HP_EVENT | VIA_JACK_EVENT); if (cfg->speaker_pins[0]) ev = VIA_LINE_EVENT; @@ -2747,16 +2769,14 @@ for (i = 0; i < cfg->line_outs; i++) { if (cfg->line_out_pins[i] && is_jack_detectable(codec, cfg->line_out_pins[i])) - snd_hda_codec_write(codec, cfg->line_out_pins[i], 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | ev | VIA_JACK_EVENT); + snd_hda_jack_detect_enable(codec, cfg->line_out_pins[i], + ev | VIA_JACK_EVENT); } for (i = 0; i < cfg->num_inputs; i++) { if (is_jack_detectable(codec, cfg->inputs[i].pin)) - snd_hda_codec_write(codec, cfg->inputs[i].pin, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | VIA_JACK_EVENT); + snd_hda_jack_detect_enable(codec, cfg->inputs[i].pin, + VIA_JACK_EVENT); } } @@ -2768,6 +2788,10 @@ for (i = 0; i < spec->num_iverbs; i++) snd_hda_sequence_write(codec, spec->init_verbs[i]); + /* init power states */ + set_widgets_power_state(codec); + __analog_low_current_mode(codec, true); + via_auto_init_multi_out(codec); via_auto_init_hp_out(codec); via_auto_init_speaker_out(codec); @@ -2779,6 +2803,7 @@ via_hp_automute(codec); vt1708_update_hp_work(spec); + snd_hda_jack_report_sync(codec); return 0; } @@ -2789,6 +2814,7 @@ vt1708_hp_work.work); if (spec->codec_type != VT1708) return; + snd_hda_jack_set_dirty_all(spec->codec); /* if jack state toggled */ if (spec->vt1708_hp_present != snd_hda_jack_detect(spec->codec, spec->autocfg.hp_pins[0])) { @@ -3205,7 +3231,7 @@ { struct via_spec *spec = codec->spec; int imux_is_smixer; - unsigned int parm; + unsigned int parm, parm2; /* MUX6 (1eh) = stereo mixer */ imux_is_smixer = snd_hda_codec_read(codec, 0x1e, 0, AC_VERB_GET_CONNECT_SEL, 0x00) == 5; @@ -3228,7 +3254,7 @@ parm = AC_PWRST_D3; set_pin_power_state(codec, 0x27, &parm); snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_POWER_STATE, parm); - snd_hda_codec_write(codec, 0xb, 0, AC_VERB_SET_POWER_STATE, parm); + parm2 = parm; /* for pin 0x0b */ /* PW2 (26h), AOW2 (ah) */ parm = AC_PWRST_D3; @@ -3243,6 +3269,9 @@ if (!spec->hp_independent_mode) /* check for redirected HP */ set_pin_power_state(codec, 0x28, &parm); snd_hda_codec_write(codec, 0x8, 0, AC_VERB_SET_POWER_STATE, parm); + if (!spec->hp_independent_mode && parm2 != AC_PWRST_D3) + parm = parm2; + snd_hda_codec_write(codec, 0xb, 0, AC_VERB_SET_POWER_STATE, parm); /* MW9 (21h), Mw2 (1ah), AOW0 (8h) */ snd_hda_codec_write(codec, 0x21, 0, AC_VERB_SET_POWER_STATE, imux_is_smixer ? AC_PWRST_D0 : parm); @@ -3664,6 +3693,18 @@ AC_VERB_SET_POWER_STATE, AC_PWRST_D3); } +/* NIDs 0x24 and 0x33 on VT1802 have connections to non-existing NID 0x3e + * Replace this with mixer NID 0x1c + */ +static void fix_vt1802_connections(struct hda_codec *codec) +{ + static hda_nid_t conn_24[] = { 0x14, 0x1c }; + static hda_nid_t conn_33[] = { 0x1c }; + + snd_hda_override_conn_list(codec, 0x24, ARRAY_SIZE(conn_24), conn_24); + snd_hda_override_conn_list(codec, 0x33, ARRAY_SIZE(conn_33), conn_33); +} + /* patch for vt2002P */ static int patch_vt2002P(struct hda_codec *codec) { @@ -3678,6 +3719,8 @@ spec->aa_mix_nid = 0x21; override_mic_boost(codec, 0x2b, 0, 3, 40); override_mic_boost(codec, 0x29, 0, 3, 40); + if (spec->codec_type == VT1802) + fix_vt1802_connections(codec); add_secret_dac_path(codec); /* automatic parse from the BIOS config */ --- linux-3.2.0.orig/sound/pci/hda/hda_local.h +++ linux-3.2.0/sound/pci/hda/hda_local.h @@ -394,11 +394,12 @@ }; struct auto_pin_cfg; -const char *hda_get_input_pin_label(struct hda_codec *codec, hda_nid_t pin, - int check_location); const char *hda_get_autocfg_input_label(struct hda_codec *codec, const struct auto_pin_cfg *cfg, int input); +int snd_hda_get_pin_label(struct hda_codec *codec, hda_nid_t nid, + const struct auto_pin_cfg *cfg, + char *label, int maxlen, int *indexp); int snd_hda_add_imux_item(struct hda_input_mux *imux, const char *label, int index, int *type_index_ret); @@ -487,7 +488,12 @@ } /* get the widget type from widget capability bits */ -#define get_wcaps_type(wcaps) (((wcaps) & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT) +static inline int get_wcaps_type(unsigned int wcaps) +{ + if (!wcaps) + return -1; /* invalid type */ + return (wcaps & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; +} static inline unsigned int get_wcaps_channels(u32 wcaps) { @@ -505,21 +511,6 @@ u32 snd_hda_query_pin_caps(struct hda_codec *codec, hda_nid_t nid); int snd_hda_override_pin_caps(struct hda_codec *codec, hda_nid_t nid, unsigned int caps); -u32 snd_hda_pin_sense(struct hda_codec *codec, hda_nid_t nid); -int snd_hda_jack_detect(struct hda_codec *codec, hda_nid_t nid); - -static inline bool is_jack_detectable(struct hda_codec *codec, hda_nid_t nid) -{ - if (!(snd_hda_query_pin_caps(codec, nid) & AC_PINCAP_PRES_DETECT)) - return false; - if (!codec->ignore_misc_bit && - (get_defcfg_misc(snd_hda_codec_get_pincfg(codec, nid)) & - AC_DEFCFG_MISC_NO_PRESENCE)) - return false; - if (!(get_wcaps(codec, nid) & AC_WCAP_UNSOL_CAP)) - return false; - return true; -} /* flags for hda_nid_item */ #define HDA_NID_ITEM_AMP (1<<0) @@ -688,28 +679,4 @@ #define SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE 80 void snd_print_channel_allocation(int spk_alloc, char *buf, int buflen); -/* - * Input-jack notification support - */ -#ifdef CONFIG_SND_HDA_INPUT_JACK -int snd_hda_input_jack_add(struct hda_codec *codec, hda_nid_t nid, int type, - const char *name); -void snd_hda_input_jack_report(struct hda_codec *codec, hda_nid_t nid); -void snd_hda_input_jack_free(struct hda_codec *codec); -#else /* CONFIG_SND_HDA_INPUT_JACK */ -static inline int snd_hda_input_jack_add(struct hda_codec *codec, - hda_nid_t nid, int type, - const char *name) -{ - return 0; -} -static inline void snd_hda_input_jack_report(struct hda_codec *codec, - hda_nid_t nid) -{ -} -static inline void snd_hda_input_jack_free(struct hda_codec *codec) -{ -} -#endif /* CONFIG_SND_HDA_INPUT_JACK */ - #endif /* __SOUND_HDA_LOCAL_H */ --- linux-3.2.0.orig/sound/pci/hda/Kconfig +++ linux-3.2.0/sound/pci/hda/Kconfig @@ -2,6 +2,7 @@ tristate "Intel HD Audio" select SND_PCM select SND_VMASTER + select SND_KCTL_JACK help Say Y here to include support for Intel "High Definition Audio" (Azalia) and its compatible devices. --- linux-3.2.0.orig/sound/pci/hda/alc262_quirks.c +++ linux-3.2.0/sound/pci/hda/alc262_quirks.c @@ -693,8 +693,6 @@ static const struct snd_pci_quirk alc262_cfg_tbl[] = { SND_PCI_QUIRK(0x1002, 0x437b, "Hippo", ALC262_HIPPO), SND_PCI_QUIRK(0x1033, 0x8895, "NEC Versa S9100", ALC262_NEC), - SND_PCI_QUIRK(0x1179, 0x0001, "Toshiba dynabook SS RX1", - ALC262_TOSHIBA_RX1), SND_PCI_QUIRK(0x1179, 0xff7b, "Toshiba S06", ALC262_TOSHIBA_S06), SND_PCI_QUIRK(0x10cf, 0x1397, "Fujitsu", ALC262_FUJITSU), SND_PCI_QUIRK(0x10cf, 0x142d, "Fujitsu Lifebook E8410", ALC262_FUJITSU), --- linux-3.2.0.orig/sound/pci/hda/patch_sigmatel.c +++ linux-3.2.0/sound/pci/hda/patch_sigmatel.c @@ -37,6 +37,7 @@ #include "hda_codec.h" #include "hda_local.h" #include "hda_beep.h" +#include "hda_jack.h" enum { STAC_VREF_EVENT = 1, @@ -96,7 +97,6 @@ STAC_92HD83XXX_PWR_REF, STAC_DELL_S14, STAC_DELL_VOSTRO_3500, - STAC_92HD83XXX_HP, STAC_92HD83XXX_HP_cNB11_INTQUAD, STAC_HP_DV7_4000, STAC_92HD83XXX_MODELS @@ -176,13 +176,6 @@ STAC_9872_MODELS }; -struct sigmatel_event { - hda_nid_t nid; - unsigned char type; - unsigned char tag; - int data; -}; - struct sigmatel_mic_route { hda_nid_t pin; signed char mux_idx; @@ -231,9 +224,6 @@ const hda_nid_t *pwr_nids; const hda_nid_t *dac_list; - /* events */ - struct snd_array events; - /* playback */ struct hda_input_mux *mono_mux; unsigned int cur_mmux; @@ -1094,13 +1084,10 @@ }; static void stac92xx_free_kctls(struct hda_codec *codec); -static int stac92xx_add_jack(struct hda_codec *codec, hda_nid_t nid, int type); static int stac92xx_build_controls(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; - struct auto_pin_cfg *cfg = &spec->autocfg; - hda_nid_t nid; int err; int i; @@ -1186,31 +1173,9 @@ stac92xx_free_kctls(codec); /* no longer needed */ - /* create jack input elements */ - if (spec->hp_detect) { - for (i = 0; i < cfg->hp_outs; i++) { - int type = SND_JACK_HEADPHONE; - nid = cfg->hp_pins[i]; - /* jack detection */ - if (cfg->hp_outs == i) - type |= SND_JACK_LINEOUT; - err = stac92xx_add_jack(codec, nid, type); - if (err < 0) - return err; - } - } - for (i = 0; i < cfg->line_outs; i++) { - err = stac92xx_add_jack(codec, cfg->line_out_pins[i], - SND_JACK_LINEOUT); - if (err < 0) - return err; - } - for (i = 0; i < cfg->num_inputs; i++) { - nid = cfg->inputs[i].pin; - err = stac92xx_add_jack(codec, nid, SND_JACK_MICROPHONE); - if (err < 0) - return err; - } + err = snd_hda_jack_add_kctls(codec, &spec->autocfg); + if (err < 0) + return err; return 0; } @@ -1631,7 +1596,7 @@ SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02bd, "Dell Studio 1557", STAC_DELL_M6_DMIC), SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02fe, - "Dell Studio XPS 1645", STAC_DELL_M6_BOTH), + "Dell Studio XPS 1645", STAC_DELL_M6_DMIC), SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0413, "Dell Studio 1558", STAC_DELL_M6_DMIC), {} /* terminator */ @@ -1692,7 +1657,6 @@ [STAC_92HD83XXX_PWR_REF] = "mic-ref", [STAC_DELL_S14] = "dell-s14", [STAC_DELL_VOSTRO_3500] = "dell-vostro-3500", - [STAC_92HD83XXX_HP] = "hp", [STAC_92HD83XXX_HP_cNB11_INTQUAD] = "hp_cNB11_intquad", [STAC_HP_DV7_4000] = "hp-dv7-4000", }; @@ -1707,8 +1671,6 @@ "unknown Dell", STAC_DELL_S14), SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x1028, "Dell Vostro 3500", STAC_DELL_VOSTRO_3500), - SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xff00, 0x3600, - "HP", STAC_92HD83XXX_HP), SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x1656, "HP", STAC_92HD83XXX_HP_cNB11_INTQUAD), SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x1657, @@ -1716,7 +1678,7 @@ SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x1658, "HP", STAC_92HD83XXX_HP_cNB11_INTQUAD), SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x1659, - "HP", STAC_92HD83XXX_HP_cNB11_INTQUAD), + "HP Pavilion dv7", STAC_HP_DV7_4000), SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x165A, "HP", STAC_92HD83XXX_HP_cNB11_INTQUAD), SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x165B, @@ -2875,7 +2837,8 @@ } if (control) { - strcpy(name, hda_get_input_pin_label(codec, nid, 1)); + snd_hda_get_pin_label(codec, nid, &spec->autocfg, + name, sizeof(name), NULL); return stac92xx_add_control(codec->spec, control, strcat(name, " Jack Mode"), nid); } @@ -3553,7 +3516,7 @@ for (i = 0; i < spec->num_dmics; i++) { hda_nid_t nid; int index, type_idx; - const char *label; + char label[32]; nid = spec->dmic_nids[i]; if (get_wcaps_type(get_wcaps(codec, nid)) != AC_WID_PIN) @@ -3566,7 +3529,8 @@ if (index < 0) continue; - label = hda_get_input_pin_label(codec, nid, 1); + snd_hda_get_pin_label(codec, nid, &spec->autocfg, + label, sizeof(label), NULL); snd_hda_add_imux_item(dimux, label, index, &type_idx); if (snd_hda_get_bool_hint(codec, "separate_dmux") != 1) snd_hda_add_imux_item(imux, label, index, &type_idx); @@ -4164,65 +4128,18 @@ AC_VERB_SET_GPIO_DATA, gpiostate); /* sync */ } -static int stac92xx_add_jack(struct hda_codec *codec, - hda_nid_t nid, int type) -{ -#ifdef CONFIG_SND_HDA_INPUT_JACK - int def_conf = snd_hda_codec_get_pincfg(codec, nid); - int connectivity = get_defcfg_connect(def_conf); - - if (connectivity && connectivity != AC_JACK_PORT_FIXED) - return 0; - - return snd_hda_input_jack_add(codec, nid, type, NULL); -#else - return 0; -#endif /* CONFIG_SND_HDA_INPUT_JACK */ -} - -static int stac_add_event(struct sigmatel_spec *spec, hda_nid_t nid, +static int stac_add_event(struct hda_codec *codec, hda_nid_t nid, unsigned char type, int data) { - struct sigmatel_event *event; + struct hda_jack_tbl *event; - snd_array_init(&spec->events, sizeof(*event), 32); - event = snd_array_new(&spec->events); + event = snd_hda_jack_tbl_new(codec, nid); if (!event) return -ENOMEM; - event->nid = nid; - event->type = type; - event->tag = spec->events.used; - event->data = data; - - return event->tag; -} - -static struct sigmatel_event *stac_get_event(struct hda_codec *codec, - hda_nid_t nid) -{ - struct sigmatel_spec *spec = codec->spec; - struct sigmatel_event *event = spec->events.list; - int i; - - for (i = 0; i < spec->events.used; i++, event++) { - if (event->nid == nid) - return event; - } - return NULL; -} + event->action = type; + event->private_data = data; -static struct sigmatel_event *stac_get_event_from_tag(struct hda_codec *codec, - unsigned char tag) -{ - struct sigmatel_spec *spec = codec->spec; - struct sigmatel_event *event = spec->events.list; - int i; - - for (i = 0; i < spec->events.used; i++, event++) { - if (event->tag == tag) - return event; - } - return NULL; + return 0; } /* check if given nid is a valid pin and no other events are assigned @@ -4232,34 +4149,29 @@ static int enable_pin_detect(struct hda_codec *codec, hda_nid_t nid, unsigned int type) { - struct sigmatel_event *event; - int tag; + struct hda_jack_tbl *event; if (!is_jack_detectable(codec, nid)) return 0; - event = stac_get_event(codec, nid); - if (event) { - if (event->type != type) - return 0; - tag = event->tag; - } else { - tag = stac_add_event(codec->spec, nid, type, 0); - if (tag < 0) - return 0; - } - snd_hda_codec_write_cache(codec, nid, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | tag); + event = snd_hda_jack_tbl_new(codec, nid); + if (!event) + return -ENOMEM; + if (event->action && event->action != type) + return 0; + event->action = type; + snd_hda_jack_detect_enable(codec, nid, 0); return 1; } -static int is_nid_hp_pin(struct auto_pin_cfg *cfg, hda_nid_t nid) +static int is_nid_out_jack_pin(struct auto_pin_cfg *cfg, hda_nid_t nid) { int i; for (i = 0; i < cfg->hp_outs; i++) if (cfg->hp_pins[i] == nid) return 1; /* nid is a HP-Out */ - + for (i = 0; i < cfg->line_outs; i++) + if (cfg->line_out_pins[i] == nid) + return 1; /* nid is a line-Out */ return 0; /* nid is not a HP-Out */ }; @@ -4326,6 +4238,27 @@ } } +static void stac_issue_unsol_events(struct hda_codec *codec, int num_pins, + const hda_nid_t *pins) +{ + while (num_pins--) + stac_issue_unsol_event(codec, *pins++); +} + +/* fake event to set up pins */ +static void stac_fake_hp_events(struct hda_codec *codec) +{ + struct sigmatel_spec *spec = codec->spec; + + if (spec->autocfg.hp_outs) + stac_issue_unsol_events(codec, spec->autocfg.hp_outs, + spec->autocfg.hp_pins); + if (spec->autocfg.line_outs && + spec->autocfg.line_out_pins[0] != spec->autocfg.hp_pins[0]) + stac_issue_unsol_events(codec, spec->autocfg.line_outs, + spec->autocfg.line_out_pins); +} + static int stac92xx_init(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; @@ -4376,10 +4309,7 @@ stac92xx_auto_set_pinctl(codec, spec->autocfg.line_out_pins[0], AC_PINCTL_OUT_EN); /* fake event to set up pins */ - if (cfg->hp_pins[0]) - stac_issue_unsol_event(codec, cfg->hp_pins[0]); - else if (cfg->line_out_pins[0]) - stac_issue_unsol_event(codec, cfg->line_out_pins[0]); + stac_fake_hp_events(codec); } else { stac92xx_auto_init_multi_out(codec); stac92xx_auto_init_hp_out(codec); @@ -4437,7 +4367,7 @@ AC_PINCTL_IN_EN); for (i = 0; i < spec->num_pwrs; i++) { hda_nid_t nid = spec->pwr_nids[i]; - int pinctl, def_conf; + unsigned int pinctl, def_conf; /* power on when no jack detection is available */ /* or when the VREF is used for controlling LED */ @@ -4447,7 +4377,7 @@ continue; } - if (is_nid_hp_pin(cfg, nid)) + if (is_nid_out_jack_pin(cfg, nid)) continue; /* already has an unsol event */ pinctl = snd_hda_codec_read(codec, nid, 0, @@ -4464,9 +4394,9 @@ def_conf = get_defcfg_connect(def_conf); /* skip any ports that don't have jacks since presence * detection is useless */ - if (def_conf != AC_JACK_PORT_COMPLEX) { - if (def_conf != AC_JACK_PORT_NONE) - stac_toggle_power_map(codec, nid, 1); + if (def_conf != AC_JACK_PORT_COMPLEX || + !is_jack_detectable(codec, nid)) { + stac_toggle_power_map(codec, nid, 1); continue; } if (enable_pin_detect(codec, nid, STAC_PWR_EVENT)) { @@ -4477,6 +4407,8 @@ stac_toggle_power_map(codec, nid, 0); } + snd_hda_jack_report_sync(codec); + /* sync mute LED */ if (spec->gpio_led) hda_call_check_power_status(codec, 0x01); @@ -4533,8 +4465,6 @@ return; stac92xx_shutup(codec); - snd_hda_input_jack_free(codec); - snd_array_free(&spec->events); kfree(spec); snd_hda_detach_beep_device(codec); @@ -4699,7 +4629,7 @@ unsigned int val = AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN; if (no_hp_sensing(spec, i)) continue; - if (presence) + if (1 /*presence*/) stac92xx_set_pinctl(codec, cfg->hp_pins[i], val); #if 0 /* FIXME */ /* Resetting the pinctl like below may lead to (a sort of) regressions @@ -4798,26 +4728,13 @@ mic->mux_idx); } -static void stac_issue_unsol_event(struct hda_codec *codec, hda_nid_t nid) -{ - struct sigmatel_event *event = stac_get_event(codec, nid); - if (!event) - return; - codec->patch_ops.unsol_event(codec, (unsigned)event->tag << 26); -} - -static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) +static void handle_unsol_event(struct hda_codec *codec, + struct hda_jack_tbl *event) { struct sigmatel_spec *spec = codec->spec; - struct sigmatel_event *event; - int tag, data; - - tag = (res >> 26) & 0x7f; - event = stac_get_event_from_tag(codec, tag); - if (!event) - return; + int data; - switch (event->type) { + switch (event->action) { case STAC_HP_EVENT: case STAC_LO_EVENT: stac92xx_hp_detect(codec); @@ -4827,7 +4744,7 @@ break; } - switch (event->type) { + switch (event->action) { case STAC_HP_EVENT: case STAC_LO_EVENT: case STAC_MIC_EVENT: @@ -4835,7 +4752,6 @@ case STAC_PWR_EVENT: if (spec->num_pwrs > 0) stac92xx_pin_sense(codec, event->nid); - snd_hda_input_jack_report(codec, event->nid); switch (codec->subsystem_id) { case 0x103c308f: @@ -4860,11 +4776,33 @@ AC_VERB_GET_GPIO_DATA, 0); /* toggle VREF state based on GPIOx status */ snd_hda_codec_write(codec, codec->afg, 0, 0x7e0, - !!(data & (1 << event->data))); + !!(data & (1 << event->private_data))); break; } } +static void stac_issue_unsol_event(struct hda_codec *codec, hda_nid_t nid) +{ + struct hda_jack_tbl *event = snd_hda_jack_tbl_get(codec, nid); + if (!event) + return; + handle_unsol_event(codec, event); +} + +static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) +{ + struct hda_jack_tbl *event; + int tag; + + tag = (res >> 26) & 0x7f; + event = snd_hda_jack_tbl_get_from_tag(codec, tag); + if (!event) + return; + event->jack_dirty = 1; + handle_unsol_event(codec, event); + snd_hda_jack_report_sync(codec); +} + static int hp_blike_system(u32 subsystem_id); static void set_hp_led_gpio(struct hda_codec *codec) @@ -4932,7 +4870,14 @@ /* BIOS bug: unfilled OEM string */ if (strstr(dev->name, "HP_Mute_LED_P_G")) { set_hp_led_gpio(codec); - spec->gpio_led_polarity = 1; + switch (codec->subsystem_id) { + case 0x103c148a: + spec->gpio_led_polarity = 0; + break; + default: + spec->gpio_led_polarity = 1; + break; + } return 1; } } @@ -5028,19 +4973,11 @@ #ifdef CONFIG_PM static int stac92xx_resume(struct hda_codec *codec) { - struct sigmatel_spec *spec = codec->spec; - stac92xx_init(codec); snd_hda_codec_resume_amp(codec); snd_hda_codec_resume_cache(codec); /* fake event to set up pins again to override cached values */ - if (spec->hp_detect) { - if (spec->autocfg.hp_pins[0]) - stac_issue_unsol_event(codec, spec->autocfg.hp_pins[0]); - else if (spec->autocfg.line_out_pins[0]) - stac_issue_unsol_event(codec, - spec->autocfg.line_out_pins[0]); - } + stac_fake_hp_events(codec); return 0; } @@ -5839,15 +5776,13 @@ switch (spec->board_config) { case STAC_HP_M4: /* Enable VREF power saving on GPIO1 detect */ - err = stac_add_event(spec, codec->afg, + err = stac_add_event(codec, codec->afg, STAC_VREF_EVENT, 0x02); if (err < 0) return err; snd_hda_codec_write_cache(codec, codec->afg, 0, AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x02); - snd_hda_codec_write_cache(codec, codec->afg, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | err); + snd_hda_jack_detect_enable(codec, codec->afg, 0); spec->gpio_mask |= 0x02; break; } @@ -6318,14 +6253,12 @@ snd_hda_codec_set_pincfg(codec, 0x20, 0x1c410030); /* Enable unsol response for GPIO4/Dock HP connection */ - err = stac_add_event(spec, codec->afg, STAC_VREF_EVENT, 0x01); + err = stac_add_event(codec, codec->afg, STAC_VREF_EVENT, 0x01); if (err < 0) return err; snd_hda_codec_write_cache(codec, codec->afg, 0, AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x10); - snd_hda_codec_write_cache(codec, codec->afg, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | err); + snd_hda_jack_detect_enable(codec, codec->afg, 0); spec->gpio_dir = 0x0b; spec->eapd_mask = 0x01; --- linux-3.2.0.orig/sound/pci/hda/patch_analog.c +++ linux-3.2.0/sound/pci/hda/patch_analog.c @@ -29,6 +29,7 @@ #include "hda_codec.h" #include "hda_local.h" #include "hda_beep.h" +#include "hda_jack.h" struct ad198x_spec { const struct snd_kcontrol_new *mixers[6]; @@ -573,6 +574,7 @@ if (spec->multiout.dig_out_nid) { info++; codec->num_pcms++; + codec->spdif_status_reset = 1; info->name = "AD198x Digital"; info->pcm_type = HDA_PCM_TYPE_SPDIF; info->stream[SNDRV_PCM_STREAM_PLAYBACK] = ad198x_pcm_digital_playback; --- linux-3.2.0.orig/sound/pci/hda/Makefile +++ linux-3.2.0/sound/pci/hda/Makefile @@ -1,6 +1,6 @@ snd-hda-intel-objs := hda_intel.o -snd-hda-codec-y := hda_codec.o +snd-hda-codec-y := hda_codec.o hda_jack.o snd-hda-codec-$(CONFIG_SND_HDA_GENERIC) += hda_generic.o snd-hda-codec-$(CONFIG_PROC_FS) += hda_proc.o snd-hda-codec-$(CONFIG_SND_HDA_HWDEP) += hda_hwdep.o --- linux-3.2.0.orig/sound/pci/hda/alc882_quirks.c +++ linux-3.2.0/sound/pci/hda/alc882_quirks.c @@ -2773,6 +2773,7 @@ alc889A_mb31_automute(codec); } + static const hda_nid_t alc883_slave_dig_outs[] = { ALC1200_DIGOUT_NID, 0, }; @@ -2781,6 +2782,11 @@ ALC883_DIGOUT_NID, 0, }; +static void alc882_unsol_event(struct hda_codec *codec, unsigned int res) +{ + alc_exec_unsol_event(codec, res >> 26); +} + /* * configuration and preset */ @@ -2895,7 +2901,6 @@ SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD), SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL), SND_PCI_QUIRK(0x108e, 0x534d, NULL, ALC883_3ST_6ch), - SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG), SND_PCI_QUIRK(0x1462, 0x0349, "MSI", ALC883_TARGA_2ch_DIG), SND_PCI_QUIRK(0x1462, 0x040d, "MSI", ALC883_TARGA_2ch_DIG), @@ -3046,7 +3051,7 @@ .channel_mode = alc885_mba21_ch_modes, .num_channel_mode = ARRAY_SIZE(alc885_mba21_ch_modes), .input_mux = &alc882_capture_source, - .unsol_event = alc_sku_unsol_event, + .unsol_event = alc882_unsol_event, .setup = alc885_mba21_setup, .init_hook = alc_hp_automute, }, @@ -3062,7 +3067,7 @@ .input_mux = &alc882_capture_source, .dig_out_nid = ALC882_DIGOUT_NID, .dig_in_nid = ALC882_DIGIN_NID, - .unsol_event = alc_sku_unsol_event, + .unsol_event = alc882_unsol_event, .setup = alc885_mbp3_setup, .init_hook = alc_hp_automute, }, @@ -3077,7 +3082,7 @@ .input_mux = &mb5_capture_source, .dig_out_nid = ALC882_DIGOUT_NID, .dig_in_nid = ALC882_DIGIN_NID, - .unsol_event = alc_sku_unsol_event, + .unsol_event = alc882_unsol_event, .setup = alc885_mb5_setup, .init_hook = alc_hp_automute, }, @@ -3092,7 +3097,7 @@ .input_mux = &macmini3_capture_source, .dig_out_nid = ALC882_DIGOUT_NID, .dig_in_nid = ALC882_DIGIN_NID, - .unsol_event = alc_sku_unsol_event, + .unsol_event = alc882_unsol_event, .setup = alc885_macmini3_setup, .init_hook = alc_hp_automute, }, @@ -3133,7 +3138,7 @@ .input_mux = &alc889A_imac91_capture_source, .dig_out_nid = ALC882_DIGOUT_NID, .dig_in_nid = ALC882_DIGIN_NID, - .unsol_event = alc_sku_unsol_event, + .unsol_event = alc882_unsol_event, .setup = alc885_imac91_setup, .init_hook = alc_hp_automute, }, --- linux-3.2.0.orig/sound/pci/hda/alc880_quirks.c +++ linux-3.2.0/sound/pci/hda/alc880_quirks.c @@ -764,16 +764,22 @@ /* Looks like the unsol event is incompatible with the standard * definition. 4bit tag is placed at 28 bit! */ - switch (res >> 28) { + res >>= 28; + switch (res) { case ALC_MIC_EVENT: alc88x_simple_mic_automute(codec); break; default: - alc_sku_unsol_event(codec, res); + alc_exec_unsol_event(codec, res); break; } } +static void alc880_unsol_event(struct hda_codec *codec, unsigned int res) +{ + alc_exec_unsol_event(codec, res >> 28); +} + static void alc880_uniwill_p53_setup(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; @@ -802,10 +808,11 @@ /* Looks like the unsol event is incompatible with the standard * definition. 4bit tag is placed at 28 bit! */ - if ((res >> 28) == ALC_DCVOL_EVENT) + res >>= 28; + if (res == ALC_DCVOL_EVENT) alc880_uniwill_p53_dcvol_automute(codec); else - alc_sku_unsol_event(codec, res); + alc_exec_unsol_event(codec, res); } /* @@ -1841,7 +1848,7 @@ .channel_mode = alc880_lg_ch_modes, .need_dac_fix = 1, .input_mux = &alc880_lg_capture_source, - .unsol_event = alc_sku_unsol_event, + .unsol_event = alc880_unsol_event, .setup = alc880_lg_setup, .init_hook = alc_hp_automute, #ifdef CONFIG_SND_HDA_POWER_SAVE --- linux-3.2.0.orig/sound/pci/hda/patch_conexant.c +++ linux-3.2.0/sound/pci/hda/patch_conexant.c @@ -31,6 +31,7 @@ #include "hda_codec.h" #include "hda_local.h" #include "hda_beep.h" +#include "hda_jack.h" #define CXT_PIN_DIR_IN 0x00 #define CXT_PIN_DIR_OUT 0x01 @@ -139,6 +140,7 @@ unsigned int asus:1; unsigned int pin_eapd_ctrls:1; unsigned int single_adc_amp:1; + unsigned int fixup_stereo_dmic:1; unsigned int adc_switching:1; @@ -415,40 +417,6 @@ &spec->cur_mux[adc_idx]); } -static int conexant_init_jacks(struct hda_codec *codec) -{ -#ifdef CONFIG_SND_HDA_INPUT_JACK - struct conexant_spec *spec = codec->spec; - int i; - - for (i = 0; i < spec->num_init_verbs; i++) { - const struct hda_verb *hv; - - hv = spec->init_verbs[i]; - while (hv->nid) { - int err = 0; - switch (hv->param ^ AC_USRSP_EN) { - case CONEXANT_HP_EVENT: - err = snd_hda_input_jack_add(codec, hv->nid, - SND_JACK_HEADPHONE, NULL); - snd_hda_input_jack_report(codec, hv->nid); - break; - case CXT5051_PORTC_EVENT: - case CONEXANT_MIC_EVENT: - err = snd_hda_input_jack_add(codec, hv->nid, - SND_JACK_MICROPHONE, NULL); - snd_hda_input_jack_report(codec, hv->nid); - break; - } - if (err < 0) - return err; - ++hv; - } - } -#endif /* CONFIG_SND_HDA_INPUT_JACK */ - return 0; -} - static void conexant_set_power(struct hda_codec *codec, hda_nid_t fg, unsigned int power_state) { @@ -474,7 +442,6 @@ static void conexant_free(struct hda_codec *codec) { - snd_hda_input_jack_free(codec); snd_hda_detach_beep_device(codec); kfree(codec->spec); } @@ -591,24 +558,12 @@ return 0; } -#ifdef CONFIG_SND_HDA_POWER_SAVE -static int conexant_suspend(struct hda_codec *codec, pm_message_t state) -{ - snd_hda_shutup_pins(codec); - return 0; -} -#endif - static const struct hda_codec_ops conexant_patch_ops = { .build_controls = conexant_build_controls, .build_pcms = conexant_build_pcms, .init = conexant_init, .free = conexant_free, .set_power_state = conexant_set_power, -#ifdef CONFIG_SND_HDA_POWER_SAVE - .suspend = conexant_suspend, -#endif - .reboot_notify = snd_hda_shutup_pins, }; #ifdef CONFIG_SND_HDA_INPUT_BEEP @@ -1120,8 +1075,6 @@ static const struct snd_pci_quirk cxt5045_cfg_tbl[] = { SND_PCI_QUIRK(0x103c, 0x30d5, "HP 530", CXT5045_LAPTOP_HP530), - SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x3000, "HP DV Series", - CXT5045_LAPTOP_HPSENSE), SND_PCI_QUIRK(0x1179, 0xff31, "Toshiba P105", CXT5045_LAPTOP_MICSENSE), SND_PCI_QUIRK(0x152d, 0x0753, "Benq R55E", CXT5045_BENQ), SND_PCI_QUIRK(0x1734, 0x10ad, "Fujitsu Si1520", CXT5045_LAPTOP_MICSENSE), @@ -1249,7 +1202,7 @@ } if (spec->beep_amp) - snd_hda_attach_beep_device(codec, spec->beep_amp); + snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); return 0; } @@ -1750,7 +1703,6 @@ static void cxt5051_hp_unsol_event(struct hda_codec *codec, unsigned int res) { - int nid = (res & AC_UNSOL_RES_SUBTAG) >> 20; switch (res >> 26) { case CONEXANT_HP_EVENT: cxt5051_hp_automute(codec); @@ -1762,7 +1714,6 @@ cxt5051_portc_automic(codec); break; } - snd_hda_input_jack_report(codec, nid); } static const struct snd_kcontrol_new cxt5051_playback_mixers[] = { @@ -1901,8 +1852,6 @@ snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | event); - snd_hda_input_jack_add(codec, nid, SND_JACK_MICROPHONE, NULL); - snd_hda_input_jack_report(codec, nid); } static const struct hda_verb cxt5051_ideapad_init_verbs[] = { @@ -1918,7 +1867,6 @@ struct conexant_spec *spec = codec->spec; conexant_init(codec); - conexant_init_jacks(codec); if (spec->auto_mic & AUTO_MIC_PORTB) cxt5051_init_mic_port(codec, 0x17, CXT5051_PORTB_EVENT); @@ -2037,7 +1985,7 @@ } if (spec->beep_amp) - snd_hda_attach_beep_device(codec, spec->beep_amp); + snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); return 0; } @@ -3052,7 +3000,6 @@ SND_PCI_QUIRK(0x1028, 0x02d8, "Dell Vostro", CXT5066_DELL_VOSTRO), SND_PCI_QUIRK(0x1028, 0x02f5, "Dell Vostro 320", CXT5066_IDEAPAD), SND_PCI_QUIRK(0x1028, 0x0401, "Dell Vostro 1014", CXT5066_DELL_VOSTRO), - SND_PCI_QUIRK(0x1028, 0x0402, "Dell Vostro", CXT5066_DELL_VOSTRO), SND_PCI_QUIRK(0x1028, 0x0408, "Dell Inspiron One 19T", CXT5066_IDEAPAD), SND_PCI_QUIRK(0x1028, 0x050f, "Dell Inspiron", CXT5066_IDEAPAD), SND_PCI_QUIRK(0x1028, 0x0510, "Dell Vostro", CXT5066_IDEAPAD), @@ -3230,7 +3177,7 @@ } if (spec->beep_amp) - snd_hda_attach_beep_device(codec, spec->beep_amp); + snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); return 0; } @@ -3450,7 +3397,6 @@ hda_nid_t nid = pins[i]; if (!nid || !is_jack_detectable(codec, nid)) break; - snd_hda_input_jack_report(codec, nid); present |= snd_hda_jack_detect(codec, nid); } return present; @@ -3755,8 +3701,7 @@ static void cx_auto_unsol_event(struct hda_codec *codec, unsigned int res) { - int nid = (res & AC_UNSOL_RES_SUBTAG) >> 20; - switch (res >> 26) { + switch (snd_hda_jack_get_action(codec, res >> 26)) { case CONEXANT_HP_EVENT: cx_auto_hp_automute(codec); break; @@ -3765,9 +3710,9 @@ break; case CONEXANT_MIC_EVENT: cx_auto_automic(codec); - snd_hda_input_jack_report(codec, nid); break; } + snd_hda_jack_report_sync(codec); } /* check whether the pin config is suitable for auto-mic switching; @@ -3979,13 +3924,11 @@ } static void enable_unsol_pins(struct hda_codec *codec, int num_pins, - hda_nid_t *pins, unsigned int tag) + hda_nid_t *pins, unsigned int action) { int i; for (i = 0; i < num_pins; i++) - snd_hda_codec_write(codec, pins[i], 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | tag); + snd_hda_jack_detect_enable(codec, pins[i], action); } static void cx_auto_init_output(struct hda_codec *codec) @@ -3996,9 +3939,14 @@ int i; mute_outputs(codec, spec->multiout.num_dacs, spec->multiout.dac_nids); - for (i = 0; i < cfg->hp_outs; i++) + for (i = 0; i < cfg->hp_outs; i++) { + unsigned int val = PIN_OUT; + if (snd_hda_query_pin_caps(codec, cfg->hp_pins[i]) & + AC_PINCAP_HP_DRV) + val |= AC_PINCTL_HP_EN; snd_hda_codec_write(codec, cfg->hp_pins[i], 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP); + AC_VERB_SET_PIN_WIDGET_CONTROL, val); + } mute_outputs(codec, cfg->hp_outs, cfg->hp_pins); mute_outputs(codec, cfg->line_outs, cfg->line_out_pins); mute_outputs(codec, cfg->speaker_outs, cfg->speaker_pins); @@ -4060,16 +4008,14 @@ if (spec->auto_mic) { if (spec->auto_mic_ext >= 0) { - snd_hda_codec_write(codec, - cfg->inputs[spec->auto_mic_ext].pin, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | CONEXANT_MIC_EVENT); + snd_hda_jack_detect_enable(codec, + cfg->inputs[spec->auto_mic_ext].pin, + CONEXANT_MIC_EVENT); } if (spec->auto_mic_dock >= 0) { - snd_hda_codec_write(codec, - cfg->inputs[spec->auto_mic_dock].pin, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | CONEXANT_MIC_EVENT); + snd_hda_jack_detect_enable(codec, + cfg->inputs[spec->auto_mic_dock].pin, + CONEXANT_MIC_EVENT); } cx_auto_automic(codec); } else { @@ -4097,14 +4043,15 @@ cx_auto_init_output(codec); cx_auto_init_input(codec); cx_auto_init_digital(codec); + snd_hda_jack_report_sync(codec); return 0; } static int cx_auto_add_volume_idx(struct hda_codec *codec, const char *basename, const char *dir, int cidx, - hda_nid_t nid, int hda_dir, int amp_idx) + hda_nid_t nid, int hda_dir, int amp_idx, int chs) { - static char name[32]; + static char name[44]; static struct snd_kcontrol_new knew[] = { HDA_CODEC_VOLUME(name, 0, 0, 0), HDA_CODEC_MUTE(name, 0, 0, 0), @@ -4114,7 +4061,7 @@ for (i = 0; i < 2; i++) { struct snd_kcontrol *kctl; - knew[i].private_value = HDA_COMPOSE_AMP_VAL(nid, 3, amp_idx, + knew[i].private_value = HDA_COMPOSE_AMP_VAL(nid, chs, amp_idx, hda_dir); knew[i].subdevice = HDA_SUBDEV_AMP_FLAG; knew[i].index = cidx; @@ -4125,14 +4072,15 @@ err = snd_hda_ctl_add(codec, nid, kctl); if (err < 0) return err; - if (!(query_amp_caps(codec, nid, hda_dir) & AC_AMPCAP_MUTE)) + if (!(query_amp_caps(codec, nid, hda_dir) & + (AC_AMPCAP_MUTE | AC_AMPCAP_MIN_MUTE))) break; } return 0; } #define cx_auto_add_volume(codec, str, dir, cidx, nid, hda_dir) \ - cx_auto_add_volume_idx(codec, str, dir, cidx, nid, hda_dir, 0) + cx_auto_add_volume_idx(codec, str, dir, cidx, nid, hda_dir, 0, 3) #define cx_auto_add_pb_volume(codec, nid, str, idx) \ cx_auto_add_volume(codec, str, " Playback", idx, nid, HDA_OUTPUT) @@ -4202,6 +4150,36 @@ return 0; } +/* Returns zero if this is a normal stereo channel, and non-zero if it should + be split in two independent channels. + dest_label must be at least 44 characters. */ +static int cx_auto_get_rightch_label(struct hda_codec *codec, const char *label, + char *dest_label, int nid) +{ + struct conexant_spec *spec = codec->spec; + int i; + + if (!spec->fixup_stereo_dmic) + return 0; + + for (i = 0; i < AUTO_CFG_MAX_INS; i++) { + int def_conf; + if (spec->autocfg.inputs[i].pin != nid) + continue; + + if (spec->autocfg.inputs[i].type != AUTO_PIN_MIC) + return 0; + def_conf = snd_hda_codec_get_pincfg(codec, nid); + if (snd_hda_get_input_pin_attr(def_conf) != INPUT_PIN_ATTR_INT) + return 0; + + /* Finally found the inverted internal mic! */ + snprintf(dest_label, 44, "Inverted %s", label); + return 1; + } + return 0; +} + static int cx_auto_add_capture_volume(struct hda_codec *codec, hda_nid_t nid, const char *label, const char *pfx, int cidx) @@ -4210,14 +4188,25 @@ int i; for (i = 0; i < spec->num_adc_nids; i++) { + char rightch_label[44]; hda_nid_t adc_nid = spec->adc_nids[i]; int idx = get_input_connection(codec, adc_nid, nid); if (idx < 0) continue; if (spec->single_adc_amp) idx = 0; + + if (cx_auto_get_rightch_label(codec, label, rightch_label, nid)) { + /* Make two independent kcontrols for left and right */ + int err = cx_auto_add_volume_idx(codec, label, pfx, + cidx, adc_nid, HDA_INPUT, idx, 1); + if (err < 0) + return err; + return cx_auto_add_volume_idx(codec, rightch_label, pfx, + cidx, adc_nid, HDA_INPUT, idx, 2); + } return cx_auto_add_volume_idx(codec, label, pfx, - cidx, adc_nid, HDA_INPUT, idx); + cidx, adc_nid, HDA_INPUT, idx, 3); } return 0; } @@ -4230,9 +4219,19 @@ int i, con; nid = spec->imux_info[idx].pin; - if (get_wcaps(codec, nid) & AC_WCAP_IN_AMP) + if (get_wcaps(codec, nid) & AC_WCAP_IN_AMP) { + char rightch_label[44]; + if (cx_auto_get_rightch_label(codec, label, rightch_label, nid)) { + int err = cx_auto_add_volume_idx(codec, label, " Boost", + cidx, nid, HDA_INPUT, 0, 1); + if (err < 0) + return err; + return cx_auto_add_volume_idx(codec, rightch_label, " Boost", + cidx, nid, HDA_INPUT, 0, 2); + } return cx_auto_add_volume(codec, label, " Boost", cidx, nid, HDA_INPUT); + } con = __select_input_connection(codec, spec->imux_info[idx].adc, nid, &mux, false, 0); if (con < 0) @@ -4326,6 +4325,7 @@ static int cx_auto_build_controls(struct hda_codec *codec) { + struct conexant_spec *spec = codec->spec; int err; err = cx_auto_build_output_controls(codec); @@ -4334,7 +4334,13 @@ err = cx_auto_build_input_controls(codec); if (err < 0) return err; - return conexant_build_controls(codec); + err = conexant_build_controls(codec); + if (err < 0) + return err; + err = snd_hda_jack_add_kctls(codec, &spec->autocfg); + if (err < 0) + return err; + return 0; } static int cx_auto_search_adcs(struct hda_codec *codec) @@ -4365,10 +4371,6 @@ .init = cx_auto_init, .free = conexant_free, .unsol_event = cx_auto_unsol_event, -#ifdef CONFIG_SND_HDA_POWER_SAVE - .suspend = conexant_suspend, -#endif - .reboot_notify = snd_hda_shutup_pins, }; /* @@ -4386,22 +4388,34 @@ } -static void apply_pin_fixup(struct hda_codec *codec, +enum { + CXT_PINCFG_LENOVO_X200, + CXT_PINCFG_LENOVO_TP410, + CXT_FIXUP_STEREO_DMIC, +}; + +static void apply_fixup(struct hda_codec *codec, const struct snd_pci_quirk *quirk, const struct cxt_pincfg **table) { + struct conexant_spec *spec = codec->spec; + quirk = snd_pci_quirk_lookup(codec->bus->pci, quirk); - if (quirk) { + if (!quirk) + return; + if (table[quirk->value]) { snd_printdd(KERN_INFO "hda_codec: applying pincfg for %s\n", quirk->name); apply_pincfg(codec, table[quirk->value]); } + if (quirk->value == CXT_FIXUP_STEREO_DMIC) { + snd_printdd(KERN_INFO "hda_codec: applying internal mic workaround for %s\n", + quirk->name); + spec->fixup_stereo_dmic = 1; + } } -enum { - CXT_PINCFG_LENOVO_X200, -}; - +/* ThinkPad X200 & co with cxt5051 */ static const struct cxt_pincfg cxt_pincfg_lenovo_x200[] = { { 0x16, 0x042140ff }, /* HP (seq# overridden) */ { 0x17, 0x21a11000 }, /* dock-mic */ @@ -4409,15 +4423,54 @@ {} }; +/* ThinkPad 410/420/510/520, X201 & co with cxt5066 */ +static const struct cxt_pincfg cxt_pincfg_lenovo_tp410[] = { + { 0x19, 0x042110ff }, /* HP (seq# overridden) */ + { 0x1a, 0x21a190f0 }, /* dock-mic */ + { 0x1c, 0x212140ff }, /* dock-HP */ + {} +}; + static const struct cxt_pincfg *cxt_pincfg_tbl[] = { [CXT_PINCFG_LENOVO_X200] = cxt_pincfg_lenovo_x200, + [CXT_PINCFG_LENOVO_TP410] = cxt_pincfg_lenovo_tp410, + [CXT_FIXUP_STEREO_DMIC] = NULL, }; -static const struct snd_pci_quirk cxt_fixups[] = { +static const struct snd_pci_quirk cxt5051_fixups[] = { SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo X200", CXT_PINCFG_LENOVO_X200), {} }; +static const struct snd_pci_quirk cxt5066_fixups[] = { + SND_PCI_QUIRK(0x1025, 0x0543, "Acer Aspire One 522", CXT_FIXUP_STEREO_DMIC), + SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400", CXT_PINCFG_LENOVO_TP410), + SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo T410", CXT_PINCFG_LENOVO_TP410), + SND_PCI_QUIRK(0x17aa, 0x215f, "Lenovo T510", CXT_PINCFG_LENOVO_TP410), + SND_PCI_QUIRK(0x17aa, 0x21ce, "Lenovo T420", CXT_PINCFG_LENOVO_TP410), + SND_PCI_QUIRK(0x17aa, 0x21cf, "Lenovo T520", CXT_PINCFG_LENOVO_TP410), + 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, 0x397b, "Lenovo S205", CXT_FIXUP_STEREO_DMIC), + {} +}; + +/* add "fake" mute amp-caps to DACs on cx5051 so that mixer mute switches + * can be created (bko#42825) + */ +static void add_cx5051_fake_mutes(struct hda_codec *codec) +{ + static hda_nid_t out_nids[] = { + 0x10, 0x11, 0 + }; + hda_nid_t *p; + + for (p = out_nids; *p; p++) + snd_hda_override_amp_caps(codec, *p, HDA_OUTPUT, + AC_AMPCAP_MIN_MUTE | + query_amp_caps(codec, *p, HDA_OUTPUT)); +} + static int patch_conexant_auto(struct hda_codec *codec) { struct conexant_spec *spec; @@ -4436,10 +4489,15 @@ case 0x14f15045: spec->single_adc_amp = 1; break; + case 0x14f15051: + add_cx5051_fake_mutes(codec); + apply_fixup(codec, cxt5051_fixups, cxt_pincfg_tbl); + break; + default: + apply_fixup(codec, cxt5066_fixups, cxt_pincfg_tbl); + break; } - apply_pin_fixup(codec, cxt_fixups, cxt_pincfg_tbl); - err = cx_auto_search_adcs(codec); if (err < 0) return err; @@ -4452,7 +4510,7 @@ spec->capture_stream = &cx_auto_pcm_analog_capture; codec->patch_ops = cx_auto_patch_ops; if (spec->beep_amp) - snd_hda_attach_beep_device(codec, spec->beep_amp); + snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); return 0; } @@ -4494,6 +4552,18 @@ .patch = patch_conexant_auto }, { .id = 0x14f150b9, .name = "CX20665", .patch = patch_conexant_auto }, + { .id = 0x14f1510f, .name = "CX20751/2", + .patch = patch_conexant_auto }, + { .id = 0x14f15110, .name = "CX20751/2", + .patch = patch_conexant_auto }, + { .id = 0x14f15111, .name = "CX20753/4", + .patch = patch_conexant_auto }, + { .id = 0x14f15113, .name = "CX20755", + .patch = patch_conexant_auto }, + { .id = 0x14f15114, .name = "CX20756", + .patch = patch_conexant_auto }, + { .id = 0x14f15115, .name = "CX20757", + .patch = patch_conexant_auto }, {} /* terminator */ }; @@ -4514,6 +4584,12 @@ MODULE_ALIAS("snd-hda-codec-id:14f150ac"); MODULE_ALIAS("snd-hda-codec-id:14f150b8"); MODULE_ALIAS("snd-hda-codec-id:14f150b9"); +MODULE_ALIAS("snd-hda-codec-id:14f1510f"); +MODULE_ALIAS("snd-hda-codec-id:14f15110"); +MODULE_ALIAS("snd-hda-codec-id:14f15111"); +MODULE_ALIAS("snd-hda-codec-id:14f15113"); +MODULE_ALIAS("snd-hda-codec-id:14f15114"); +MODULE_ALIAS("snd-hda-codec-id:14f15115"); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("Conexant HD-audio codec"); --- linux-3.2.0.orig/sound/pci/hda/hda_jack.c +++ linux-3.2.0/sound/pci/hda/hda_jack.c @@ -0,0 +1,359 @@ +/* + * Jack-detection handling for HD-audio + * + * Copyright (c) 2011 Takashi Iwai + * + * This driver 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 "hda_codec.h" +#include "hda_local.h" +#include "hda_jack.h" + +/* execute pin sense measurement */ +static u32 read_pin_sense(struct hda_codec *codec, hda_nid_t nid) +{ + u32 pincap; + + if (!codec->no_trigger_sense) { + pincap = snd_hda_query_pin_caps(codec, nid); + if (pincap & AC_PINCAP_TRIG_REQ) /* need trigger? */ + snd_hda_codec_read(codec, nid, 0, + AC_VERB_SET_PIN_SENSE, 0); + } + return snd_hda_codec_read(codec, nid, 0, + AC_VERB_GET_PIN_SENSE, 0); +} + +/** + * snd_hda_jack_tbl_get - query the jack-table entry for the given NID + */ +struct hda_jack_tbl * +snd_hda_jack_tbl_get(struct hda_codec *codec, hda_nid_t nid) +{ + struct hda_jack_tbl *jack = codec->jacktbl.list; + int i; + + if (!nid || !jack) + return NULL; + for (i = 0; i < codec->jacktbl.used; i++, jack++) + if (jack->nid == nid) + return jack; + return NULL; +} +EXPORT_SYMBOL_HDA(snd_hda_jack_tbl_get); + +/** + * snd_hda_jack_tbl_get_from_tag - query the jack-table entry for the given tag + */ +struct hda_jack_tbl * +snd_hda_jack_tbl_get_from_tag(struct hda_codec *codec, unsigned char tag) +{ + struct hda_jack_tbl *jack = codec->jacktbl.list; + int i; + + if (!tag || !jack) + return NULL; + for (i = 0; i < codec->jacktbl.used; i++, jack++) + if (jack->tag == tag) + return jack; + return NULL; +} +EXPORT_SYMBOL_HDA(snd_hda_jack_tbl_get_from_tag); + +/** + * snd_hda_jack_tbl_new - create a jack-table entry for the given NID + */ +struct hda_jack_tbl * +snd_hda_jack_tbl_new(struct hda_codec *codec, hda_nid_t nid) +{ + struct hda_jack_tbl *jack = snd_hda_jack_tbl_get(codec, nid); + if (jack) + return jack; + snd_array_init(&codec->jacktbl, sizeof(*jack), 16); + jack = snd_array_new(&codec->jacktbl); + if (!jack) + return NULL; + jack->nid = nid; + jack->jack_dirty = 1; + jack->tag = codec->jacktbl.used; + return jack; +} +EXPORT_SYMBOL_HDA(snd_hda_jack_tbl_new); + +void snd_hda_jack_tbl_clear(struct hda_codec *codec) +{ +#ifdef CONFIG_SND_HDA_INPUT_JACK + /* free jack instances manually when clearing/reconfiguring */ + if (!codec->bus->shutdown && codec->jacktbl.list) { + struct hda_jack_tbl *jack = codec->jacktbl.list; + int i; + for (i = 0; i < codec->jacktbl.used; i++, jack++) { + if (jack->jack) + snd_device_free(codec->bus->card, jack->jack); + } + } +#endif + snd_array_free(&codec->jacktbl); +} + +/* update the cached value and notification flag if needed */ +static void jack_detect_update(struct hda_codec *codec, + struct hda_jack_tbl *jack) +{ + if (jack->jack_dirty || !jack->jack_detect) { + jack->pin_sense = read_pin_sense(codec, jack->nid); + jack->jack_dirty = 0; + } +} + +/** + * snd_hda_set_dirty_all - Mark all the cached as dirty + * + * This function sets the dirty flag to all entries of jack table. + * It's called from the resume path in hda_codec.c. + */ +void snd_hda_jack_set_dirty_all(struct hda_codec *codec) +{ + struct hda_jack_tbl *jack = codec->jacktbl.list; + int i; + + for (i = 0; i < codec->jacktbl.used; i++, jack++) + if (jack->nid) + jack->jack_dirty = 1; +} +EXPORT_SYMBOL_HDA(snd_hda_jack_set_dirty_all); + +/** + * snd_hda_pin_sense - execute pin sense measurement + * @codec: the CODEC to sense + * @nid: the pin NID to sense + * + * Execute necessary pin sense measurement and return its Presence Detect, + * Impedance, ELD Valid etc. status bits. + */ +u32 snd_hda_pin_sense(struct hda_codec *codec, hda_nid_t nid) +{ + struct hda_jack_tbl *jack = snd_hda_jack_tbl_get(codec, nid); + if (jack) { + jack_detect_update(codec, jack); + return jack->pin_sense; + } + return read_pin_sense(codec, nid); +} +EXPORT_SYMBOL_HDA(snd_hda_pin_sense); + +#define get_jack_plug_state(sense) !!(sense & AC_PINSENSE_PRESENCE) + +/** + * snd_hda_jack_detect - query pin Presence Detect status + * @codec: the CODEC to sense + * @nid: the pin NID to sense + * + * Query and return the pin's Presence Detect status. + */ +int snd_hda_jack_detect(struct hda_codec *codec, hda_nid_t nid) +{ + u32 sense = snd_hda_pin_sense(codec, nid); + return get_jack_plug_state(sense); +} +EXPORT_SYMBOL_HDA(snd_hda_jack_detect); + +/** + * snd_hda_jack_detect_enable - enable the jack-detection + */ +int snd_hda_jack_detect_enable(struct hda_codec *codec, hda_nid_t nid, + unsigned char action) +{ + struct hda_jack_tbl *jack = snd_hda_jack_tbl_new(codec, nid); + if (!jack) + return -ENOMEM; + if (jack->jack_detect) + return 0; /* already registered */ + jack->jack_detect = 1; + if (action) + jack->action = action; + return snd_hda_codec_write_cache(codec, nid, 0, + AC_VERB_SET_UNSOLICITED_ENABLE, + AC_USRSP_EN | jack->tag); +} +EXPORT_SYMBOL_HDA(snd_hda_jack_detect_enable); + +/** + * snd_hda_jack_report_sync - sync the states of all jacks and report if changed + */ +void snd_hda_jack_report_sync(struct hda_codec *codec) +{ + struct hda_jack_tbl *jack = codec->jacktbl.list; + int i, state; + + for (i = 0; i < codec->jacktbl.used; i++, jack++) + if (jack->nid) { + jack_detect_update(codec, jack); + if (!jack->kctl) + continue; + state = get_jack_plug_state(jack->pin_sense); + snd_kctl_jack_report(codec->bus->card, jack->kctl, state); +#ifdef CONFIG_SND_HDA_INPUT_JACK + if (jack->jack) + snd_jack_report(jack->jack, + state ? jack->type : 0); +#endif + } +} +EXPORT_SYMBOL_HDA(snd_hda_jack_report_sync); + +#ifdef CONFIG_SND_HDA_INPUT_JACK +/* guess the jack type from the pin-config */ +static int get_input_jack_type(struct hda_codec *codec, hda_nid_t nid) +{ + unsigned int def_conf = snd_hda_codec_get_pincfg(codec, nid); + switch (get_defcfg_device(def_conf)) { + case AC_JACK_LINE_OUT: + case AC_JACK_SPEAKER: + return SND_JACK_LINEOUT; + case AC_JACK_HP_OUT: + return SND_JACK_HEADPHONE; + case AC_JACK_SPDIF_OUT: + case AC_JACK_DIG_OTHER_OUT: + return SND_JACK_AVOUT; + case AC_JACK_MIC_IN: + return SND_JACK_MICROPHONE; + default: + return SND_JACK_LINEIN; + } +} + +static void hda_free_jack_priv(struct snd_jack *jack) +{ + struct hda_jack_tbl *jacks = jack->private_data; + jacks->nid = 0; + jacks->jack = NULL; +} +#endif + +/** + * snd_hda_jack_add_kctl - Add a kctl for the given pin + * + * This assigns a jack-detection kctl to the given pin. The kcontrol + * will have the given name and index. + */ +int snd_hda_jack_add_kctl(struct hda_codec *codec, hda_nid_t nid, + const char *name, int idx) +{ + struct hda_jack_tbl *jack; + struct snd_kcontrol *kctl; + int err, state; + + jack = snd_hda_jack_tbl_new(codec, nid); + if (!jack) + return 0; + if (jack->kctl) + return 0; /* already created */ + kctl = snd_kctl_jack_new(name, idx, codec); + if (!kctl) + return -ENOMEM; + err = snd_hda_ctl_add(codec, nid, kctl); + if (err < 0) + return err; + jack->kctl = kctl; + state = snd_hda_jack_detect(codec, nid); + snd_kctl_jack_report(codec->bus->card, kctl, state); +#ifdef CONFIG_SND_HDA_INPUT_JACK + jack->type = get_input_jack_type(codec, nid); + err = snd_jack_new(codec->bus->card, name, jack->type, &jack->jack); + if (err < 0) + return err; + jack->jack->private_data = jack; + jack->jack->private_free = hda_free_jack_priv; + snd_jack_report(jack->jack, state ? jack->type : 0); +#endif + return 0; +} +EXPORT_SYMBOL_HDA(snd_hda_jack_add_kctl); + +static int add_jack_kctl(struct hda_codec *codec, hda_nid_t nid, + const struct auto_pin_cfg *cfg, + char *lastname, int *lastidx) +{ + unsigned int def_conf, conn; + char name[44]; + int idx, err; + + if (!nid) + return 0; + if (!is_jack_detectable(codec, nid)) + return 0; + def_conf = snd_hda_codec_get_pincfg(codec, nid); + conn = get_defcfg_connect(def_conf); + if (conn != AC_JACK_PORT_COMPLEX) + return 0; + + snd_hda_get_pin_label(codec, nid, cfg, name, sizeof(name), &idx); + if (!strcmp(name, lastname) && idx == *lastidx) + idx++; + strncpy(lastname, name, 44); + *lastidx = idx; + err = snd_hda_jack_add_kctl(codec, nid, name, idx); + if (err < 0) + return err; + return snd_hda_jack_detect_enable(codec, nid, 0); +} + +/** + * snd_hda_jack_add_kctls - Add kctls for all pins included in the given pincfg + */ +int snd_hda_jack_add_kctls(struct hda_codec *codec, + const struct auto_pin_cfg *cfg) +{ + const hda_nid_t *p; + int i, err, lastidx = 0; + char lastname[44] = ""; + + for (i = 0, p = cfg->line_out_pins; i < cfg->line_outs; i++, p++) { + err = add_jack_kctl(codec, *p, cfg, lastname, &lastidx); + if (err < 0) + return err; + } + for (i = 0, p = cfg->hp_pins; i < cfg->hp_outs; i++, p++) { + if (*p == *cfg->line_out_pins) /* might be duplicated */ + break; + err = add_jack_kctl(codec, *p, cfg, lastname, &lastidx); + if (err < 0) + return err; + } + for (i = 0, p = cfg->speaker_pins; i < cfg->speaker_outs; i++, p++) { + if (*p == *cfg->line_out_pins) /* might be duplicated */ + break; + err = add_jack_kctl(codec, *p, cfg, lastname, &lastidx); + if (err < 0) + return err; + } + for (i = 0; i < cfg->num_inputs; i++) { + err = add_jack_kctl(codec, cfg->inputs[i].pin, cfg, lastname, &lastidx); + if (err < 0) + return err; + } + for (i = 0, p = cfg->dig_out_pins; i < cfg->dig_outs; i++, p++) { + err = add_jack_kctl(codec, *p, cfg, lastname, &lastidx); + if (err < 0) + return err; + } + err = add_jack_kctl(codec, cfg->dig_in_pin, cfg, lastname, &lastidx); + if (err < 0) + return err; + err = add_jack_kctl(codec, cfg->mono_out_pin, cfg, lastname, &lastidx); + if (err < 0) + return err; + return 0; +} +EXPORT_SYMBOL_HDA(snd_hda_jack_add_kctls); --- linux-3.2.0.orig/sound/pci/hda/hda_jack.h +++ linux-3.2.0/sound/pci/hda/hda_jack.h @@ -0,0 +1,88 @@ +/* + * Jack-detection handling for HD-audio + * + * Copyright (c) 2011 Takashi Iwai + * + * This driver 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. + */ + +#ifndef __SOUND_HDA_JACK_H +#define __SOUND_HDA_JACK_H + +struct hda_jack_tbl { + hda_nid_t nid; + unsigned char action; /* event action (0 = none) */ + unsigned char tag; /* unsol event tag */ + unsigned int private_data; /* arbitrary data */ + /* jack-detection stuff */ + unsigned int pin_sense; /* cached pin-sense value */ + unsigned int jack_detect:1; /* capable of jack-detection? */ + unsigned int jack_dirty:1; /* needs to update? */ + struct snd_kcontrol *kctl; /* assigned kctl for jack-detection */ +#ifdef CONFIG_SND_HDA_INPUT_JACK + int type; + struct snd_jack *jack; +#endif +}; + +struct hda_jack_tbl * +snd_hda_jack_tbl_get(struct hda_codec *codec, hda_nid_t nid); +struct hda_jack_tbl * +snd_hda_jack_tbl_get_from_tag(struct hda_codec *codec, unsigned char tag); + +struct hda_jack_tbl * +snd_hda_jack_tbl_new(struct hda_codec *codec, hda_nid_t nid); +void snd_hda_jack_tbl_clear(struct hda_codec *codec); + +/** + * snd_hda_jack_get_action - get jack-tbl entry for the tag + * + * Call this from the unsol event handler to get the assigned action for the + * event. This will mark the dirty flag for the later reporting, too. + */ +static inline unsigned char +snd_hda_jack_get_action(struct hda_codec *codec, unsigned int tag) +{ + struct hda_jack_tbl *jack = snd_hda_jack_tbl_get_from_tag(codec, tag); + if (jack) { + jack->jack_dirty = 1; + return jack->action; + } + return 0; +} + +void snd_hda_jack_set_dirty_all(struct hda_codec *codec); + +int snd_hda_jack_detect_enable(struct hda_codec *codec, hda_nid_t nid, + unsigned char action); + +u32 snd_hda_pin_sense(struct hda_codec *codec, hda_nid_t nid); +int snd_hda_jack_detect(struct hda_codec *codec, hda_nid_t nid); + +static inline bool is_jack_detectable(struct hda_codec *codec, hda_nid_t nid) +{ + if (codec->no_jack_detect) + return false; + if (!(snd_hda_query_pin_caps(codec, nid) & AC_PINCAP_PRES_DETECT)) + return false; + if (!codec->ignore_misc_bit && + (get_defcfg_misc(snd_hda_codec_get_pincfg(codec, nid)) & + AC_DEFCFG_MISC_NO_PRESENCE)) + return false; + if (!(get_wcaps(codec, nid) & AC_WCAP_UNSOL_CAP)) + return false; + return true; +} + +int snd_hda_jack_add_kctl(struct hda_codec *codec, hda_nid_t nid, + const char *name, int idx); +int snd_hda_jack_add_kctls(struct hda_codec *codec, + const struct auto_pin_cfg *cfg); + +void snd_hda_jack_report_sync(struct hda_codec *codec); + + +#endif /* __SOUND_HDA_JACK_H */ --- linux-3.2.0.orig/sound/pci/hda/patch_hdmi.c +++ linux-3.2.0/sound/pci/hda/patch_hdmi.c @@ -36,6 +36,7 @@ #include #include "hda_codec.h" #include "hda_local.h" +#include "hda_jack.h" static bool static_hdmi_pcm; module_param(static_hdmi_pcm, bool, 0644); @@ -424,9 +425,11 @@ if (get_wcaps(codec, pin_nid) & AC_WCAP_OUT_AMP) snd_hda_codec_write(codec, pin_nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE); - /* Disable pin out until stream is active*/ + /* Enable pin out: some machines with GM965 gets broken output when + * the pin is disabled or changed while using with HDMI + */ snd_hda_codec_write(codec, pin_nid, 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, 0); + AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT); } static int hdmi_get_channel_count(struct hda_codec *codec, hda_nid_t cvt_nid) @@ -754,10 +757,18 @@ static void hdmi_intrinsic_event(struct hda_codec *codec, unsigned int res) { struct hdmi_spec *spec = codec->spec; - int pin_nid = res >> AC_UNSOL_RES_TAG_SHIFT; + int tag = res >> AC_UNSOL_RES_TAG_SHIFT; + int pin_nid; int pd = !!(res & AC_UNSOL_RES_PD); int eldv = !!(res & AC_UNSOL_RES_ELDV); int pin_idx; + struct hda_jack_tbl *jack; + + jack = snd_hda_jack_tbl_get_from_tag(codec, tag); + if (!jack) + return; + pin_nid = jack->nid; + jack->jack_dirty = 1; printk(KERN_INFO "HDMI hot plug event: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n", @@ -768,6 +779,7 @@ return; hdmi_present_sense(&spec->pins[pin_idx], 1); + snd_hda_jack_report_sync(codec); } static void hdmi_non_intrinsic_event(struct hda_codec *codec, unsigned int res) @@ -799,7 +811,7 @@ int tag = res >> AC_UNSOL_RES_TAG_SHIFT; int subtag = (res & AC_UNSOL_RES_SUBTAG) >> AC_UNSOL_RES_SUBTAG_SHIFT; - if (pin_nid_to_pin_index(spec, tag) < 0) { + if (!snd_hda_jack_tbl_get_from_tag(codec, tag)) { snd_printd(KERN_INFO "Unexpected HDMI event tag 0x%x\n", tag); return; } @@ -868,7 +880,6 @@ struct hdmi_spec_per_pin *per_pin; struct hdmi_eld *eld; struct hdmi_spec_per_cvt *per_cvt = NULL; - int pinctl; /* Validate hinfo */ pin_idx = hinfo_to_pin_index(spec, hinfo); @@ -901,14 +912,9 @@ per_cvt->assigned = 1; hinfo->nid = per_cvt->cvt_nid; - snd_hda_codec_write(codec, per_pin->pin_nid, 0, + snd_hda_codec_write_cache(codec, per_pin->pin_nid, 0, AC_VERB_SET_CONNECT_SEL, mux_idx); - pinctl = snd_hda_codec_read(codec, per_pin->pin_nid, 0, - AC_VERB_GET_PIN_WIDGET_CONTROL, 0); - snd_hda_codec_write(codec, per_pin->pin_nid, 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, - pinctl | PIN_OUT); snd_hda_spdif_ctls_assign(codec, pin_idx, per_cvt->cvt_nid); /* Initially set the converter's capabilities */ @@ -922,8 +928,12 @@ if (!static_hdmi_pcm && eld->eld_valid) { snd_hdmi_eld_update_pcm_info(eld, hinfo); if (hinfo->channels_min > hinfo->channels_max || - !hinfo->rates || !hinfo->formats) + !hinfo->rates || !hinfo->formats) { + per_cvt->assigned = 0; + hinfo->nid = 0; + snd_hda_spdif_ctls_unassign(codec, pin_idx); return -ENODEV; + } } /* Store the updated parameters */ @@ -987,6 +997,7 @@ "HDMI status: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n", codec->addr, pin_nid, eld->monitor_present, eld_valid); + eld->eld_valid = false; if (eld_valid) { if (!snd_hdmi_get_eld(eld, codec, pin_nid)) snd_hdmi_show_eld(eld); @@ -996,8 +1007,6 @@ msecs_to_jiffies(300)); } } - - snd_hda_input_jack_report(codec, pin_nid); } static void hdmi_repoll_eld(struct work_struct *work) @@ -1163,7 +1172,6 @@ int cvt_idx, pin_idx; struct hdmi_spec_per_cvt *per_cvt; struct hdmi_spec_per_pin *per_pin; - int pinctl; snd_hda_codec_cleanup_stream(codec, hinfo->nid); @@ -1182,11 +1190,6 @@ return -EINVAL; per_pin = &spec->pins[pin_idx]; - pinctl = snd_hda_codec_read(codec, per_pin->pin_nid, 0, - AC_VERB_GET_PIN_WIDGET_CONTROL, 0); - snd_hda_codec_write(codec, per_pin->pin_nid, 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, - pinctl & ~PIN_OUT); snd_hda_spdif_ctls_unassign(codec, pin_idx); } @@ -1226,21 +1229,15 @@ static int generic_hdmi_build_jack(struct hda_codec *codec, int pin_idx) { - int err; - char hdmi_str[32]; + char hdmi_str[32] = "HDMI/DP"; struct hdmi_spec *spec = codec->spec; struct hdmi_spec_per_pin *per_pin = &spec->pins[pin_idx]; int pcmdev = spec->pcm_rec[pin_idx].device; - snprintf(hdmi_str, sizeof(hdmi_str), "HDMI/DP,pcm=%d", pcmdev); - - err = snd_hda_input_jack_add(codec, per_pin->pin_nid, - SND_JACK_VIDEOOUT, pcmdev > 0 ? hdmi_str : NULL); - if (err < 0) - return err; + if (pcmdev > 0) + sprintf(hdmi_str + strlen(hdmi_str), ",pcm=%d", pcmdev); - hdmi_present_sense(per_pin, 0); - return 0; + return snd_hda_jack_add_kctl(codec, per_pin->pin_nid, hdmi_str, 0); } static int generic_hdmi_build_controls(struct hda_codec *codec) @@ -1270,6 +1267,8 @@ if (err < 0) return err; + + hdmi_present_sense(per_pin, false); } return 0; @@ -1286,14 +1285,13 @@ struct hdmi_eld *eld = &per_pin->sink_eld; hdmi_init_pin(codec, pin_nid); - snd_hda_codec_write(codec, pin_nid, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | pin_nid); + snd_hda_jack_detect_enable(codec, pin_nid, pin_nid); per_pin->codec = codec; INIT_DELAYED_WORK(&per_pin->work, hdmi_repoll_eld); snd_hda_eld_proc_new(codec, eld, pin_idx); } + snd_hda_jack_report_sync(codec); return 0; } @@ -1309,7 +1307,6 @@ cancel_delayed_work(&per_pin->work); snd_hda_eld_proc_free(codec, eld); } - snd_hda_input_jack_free(codec); flush_workqueue(codec->bus->workq); kfree(spec); @@ -1902,6 +1899,8 @@ { .id = 0x10de0042, .name = "GPU 42 HDMI/DP", .patch = patch_generic_hdmi }, { .id = 0x10de0043, .name = "GPU 43 HDMI/DP", .patch = patch_generic_hdmi }, { .id = 0x10de0044, .name = "GPU 44 HDMI/DP", .patch = patch_generic_hdmi }, +{ .id = 0x10de0051, .name = "GPU 51 HDMI/DP", .patch = patch_generic_hdmi }, +{ .id = 0x10de0060, .name = "GPU 60 HDMI/DP", .patch = patch_generic_hdmi }, { .id = 0x10de0067, .name = "MCP67 HDMI", .patch = patch_nvhdmi_2ch }, { .id = 0x10de8001, .name = "MCP73 HDMI", .patch = patch_nvhdmi_2ch }, { .id = 0x80860054, .name = "IbexPeak HDMI", .patch = patch_generic_hdmi }, @@ -1911,6 +1910,7 @@ { .id = 0x80862804, .name = "IbexPeak HDMI", .patch = patch_generic_hdmi }, { .id = 0x80862805, .name = "CougarPoint HDMI", .patch = patch_generic_hdmi }, { .id = 0x80862806, .name = "PantherPoint HDMI", .patch = patch_generic_hdmi }, +{ .id = 0x80862880, .name = "CedarTrail HDMI", .patch = patch_generic_hdmi }, { .id = 0x808629fb, .name = "Crestline HDMI", .patch = patch_generic_hdmi }, {} /* terminator */ }; @@ -1947,6 +1947,8 @@ MODULE_ALIAS("snd-hda-codec-id:10de0042"); MODULE_ALIAS("snd-hda-codec-id:10de0043"); MODULE_ALIAS("snd-hda-codec-id:10de0044"); +MODULE_ALIAS("snd-hda-codec-id:10de0051"); +MODULE_ALIAS("snd-hda-codec-id:10de0060"); MODULE_ALIAS("snd-hda-codec-id:10de0067"); MODULE_ALIAS("snd-hda-codec-id:10de8001"); MODULE_ALIAS("snd-hda-codec-id:17e80047"); @@ -1957,6 +1959,7 @@ MODULE_ALIAS("snd-hda-codec-id:80862804"); MODULE_ALIAS("snd-hda-codec-id:80862805"); MODULE_ALIAS("snd-hda-codec-id:80862806"); +MODULE_ALIAS("snd-hda-codec-id:80862880"); MODULE_ALIAS("snd-hda-codec-id:808629fb"); MODULE_LICENSE("GPL"); --- linux-3.2.0.orig/sound/pci/hda/patch_ca0132.c +++ linux-3.2.0/sound/pci/hda/patch_ca0132.c @@ -276,6 +276,10 @@ int type = dir ? HDA_INPUT : HDA_OUTPUT; struct snd_kcontrol_new knew = HDA_CODEC_MUTE_MONO(namestr, nid, chan, 0, type); + if ((query_amp_caps(codec, nid, type) & AC_AMPCAP_MUTE) == 0) { + snd_printdd("Skipping '%s %s Switch' (no mute on node 0x%x)\n", pfx, dirstr[dir], nid); + return 0; + } sprintf(namestr, "%s %s Switch", pfx, dirstr[dir]); return snd_hda_ctl_add(codec, nid, snd_ctl_new1(&knew, codec)); } @@ -287,6 +291,10 @@ int type = dir ? HDA_INPUT : HDA_OUTPUT; struct snd_kcontrol_new knew = HDA_CODEC_VOLUME_MONO(namestr, nid, chan, 0, type); + if ((query_amp_caps(codec, nid, type) & AC_AMPCAP_NUM_STEPS) == 0) { + snd_printdd("Skipping '%s %s Volume' (no amp on node 0x%x)\n", pfx, dirstr[dir], nid); + return 0; + } sprintf(namestr, "%s %s Volume", pfx, dirstr[dir]); return snd_hda_ctl_add(codec, nid, snd_ctl_new1(&knew, codec)); } --- linux-3.2.0.orig/sound/pci/hda/hda_eld.c +++ linux-3.2.0/sound/pci/hda/hda_eld.c @@ -385,8 +385,8 @@ static void hdmi_print_pcm_rates(int pcm, char *buf, int buflen) { static unsigned int alsa_rates[] = { - 5512, 8000, 11025, 16000, 22050, 32000, 44100, 48000, 88200, - 96000, 176400, 192000, 384000 + 5512, 8000, 11025, 16000, 22050, 32000, 44100, 48000, 64000, + 88200, 96000, 176400, 192000, 384000 }; int i, j; --- linux-3.2.0.orig/sound/pci/hda/patch_cirrus.c +++ linux-3.2.0/sound/pci/hda/patch_cirrus.c @@ -26,6 +26,7 @@ #include #include "hda_codec.h" #include "hda_local.h" +#include "hda_jack.h" #include /* @@ -93,8 +94,8 @@ #define CS420X_VENDOR_NID 0x11 #define CS_DIG_OUT1_PIN_NID 0x10 #define CS_DIG_OUT2_PIN_NID 0x15 -#define CS_DMIC1_PIN_NID 0x12 -#define CS_DMIC2_PIN_NID 0x0e +#define CS_DMIC1_PIN_NID 0x0e +#define CS_DMIC2_PIN_NID 0x12 /* coef indices */ #define IDX_SPDIF_STAT 0x0000 @@ -137,7 +138,7 @@ */ #define CS4210_DAC_NID 0x02 #define CS4210_ADC_NID 0x03 -#define CS421X_VENDOR_NID 0x0B +#define CS4210_VENDOR_NID 0x0B #define CS421X_DMIC_PIN_NID 0x09 /* Port E */ #define CS421X_SPDIF_PIN_NID 0x0A /* Port H */ @@ -148,6 +149,10 @@ #define SPDIF_EVENT 0x04 +/* Cirrus Logic CS4213 is like CS4210 but does not have SPDIF input/output */ +#define CS4213_VENDOR_NID 0x09 + + static inline int cs_vendor_coef_get(struct hda_codec *codec, unsigned int idx) { struct cs_spec *spec = codec->spec; @@ -721,8 +726,9 @@ if (uinfo->value.enumerated.item >= spec->num_inputs) uinfo->value.enumerated.item = spec->num_inputs - 1; idx = spec->input_idx[uinfo->value.enumerated.item]; - strcpy(uinfo->value.enumerated.name, - hda_get_input_pin_label(codec, cfg->inputs[idx].pin, 1)); + snd_hda_get_pin_label(codec, cfg->inputs[idx].pin, cfg, + uinfo->value.enumerated.name, + sizeof(uinfo->value.enumerated.name), NULL); return 0; } @@ -920,16 +926,14 @@ /* mute speakers if spdif or hp jack is plugged in */ for (i = 0; i < cfg->speaker_outs; i++) { + int pin_ctl = hp_present ? 0 : PIN_OUT; + /* detect on spdif is specific to CS4210 */ + if (spdif_present && (spec->vendor_nid == CS4210_VENDOR_NID)) + pin_ctl = 0; + nid = cfg->speaker_pins[i]; snd_hda_codec_write(codec, nid, 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, - hp_present ? 0 : PIN_OUT); - /* detect on spdif is specific to CS421x */ - if (spec->vendor_nid == CS421X_VENDOR_NID) { - snd_hda_codec_write(codec, nid, 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, - spdif_present ? 0 : PIN_OUT); - } + AC_VERB_SET_PIN_WIDGET_CONTROL, pin_ctl); } if (spec->gpio_eapd_hp) { unsigned int gpio = hp_present ? @@ -938,8 +942,8 @@ AC_VERB_SET_GPIO_DATA, gpio); } - /* specific to CS421x */ - if (spec->vendor_nid == CS421X_VENDOR_NID) { + /* specific to CS4210 */ + if (spec->vendor_nid == CS4210_VENDOR_NID) { /* mute HPs if spdif jack (SENSE_B) is present */ for (i = 0; i < cfg->hp_outs; i++) { nid = cfg->hp_pins[i]; @@ -976,19 +980,21 @@ present = snd_hda_jack_detect(codec, nid); /* specific to CS421x, single ADC */ - if (spec->vendor_nid == CS421X_VENDOR_NID) { + if (spec->vendor_nid == CS420X_VENDOR_NID) { + if (present) + change_cur_input(codec, spec->automic_idx, 0); + else + change_cur_input(codec, !spec->automic_idx, 0); + } else { if (present) { - spec->last_input = spec->cur_input; - spec->cur_input = spec->automic_idx; + if (spec->cur_input != spec->automic_idx) { + spec->last_input = spec->cur_input; + spec->cur_input = spec->automic_idx; + } } else { spec->cur_input = spec->last_input; } cs_update_input_select(codec); - } else { - if (present) - change_cur_input(codec, spec->automic_idx, 0); - else - change_cur_input(codec, !spec->automic_idx, 0); } } @@ -1027,9 +1033,7 @@ if (!cfg->speaker_outs) continue; if (get_wcaps(codec, nid) & AC_WCAP_UNSOL_CAP) { - snd_hda_codec_write(codec, nid, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | HP_EVENT); + snd_hda_jack_detect_enable(codec, nid, HP_EVENT); spec->hp_detect = 1; } } @@ -1070,32 +1074,34 @@ AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(spec->adc_idx[i])); if (spec->mic_detect && spec->automic_idx == i) - snd_hda_codec_write(codec, pin, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | MIC_EVENT); + snd_hda_jack_detect_enable(codec, pin, MIC_EVENT); } - /* specific to CS421x */ - if (spec->vendor_nid == CS421X_VENDOR_NID) { - if (spec->mic_detect) - cs_automic(codec); - else { - spec->cur_adc = spec->adc_nid[spec->cur_input]; - cs_update_input_select(codec); - } - } else { + /* CS420x has multiple ADC, CS421x has single ADC */ + if (spec->vendor_nid == CS420X_VENDOR_NID) { change_cur_input(codec, spec->cur_input, 1); if (spec->mic_detect) cs_automic(codec); coef = 0x000a; /* ADC1/2 - Digital and Analog Soft Ramp */ + cs_vendor_coef_set(codec, IDX_ADC_CFG, coef); + + coef = cs_vendor_coef_get(codec, IDX_BEEP_CFG); if (is_active_pin(codec, CS_DMIC2_PIN_NID)) - coef |= 0x0500; /* DMIC2 2 chan on, GPIO1 off */ + coef |= 1 << 4; /* DMIC2 2 chan on, GPIO1 off */ if (is_active_pin(codec, CS_DMIC1_PIN_NID)) - coef |= 0x1800; /* DMIC1 2 chan on, GPIO0 off + coef |= 1 << 3; /* DMIC1 2 chan on, GPIO0 off * No effect if SPDIF_OUT2 is * selected in IDX_SPDIF_CTL. */ - cs_vendor_coef_set(codec, IDX_ADC_CFG, coef); + + cs_vendor_coef_set(codec, IDX_BEEP_CFG, coef); + } else { + if (spec->mic_detect) + cs_automic(codec); + else { + spec->cur_adc = spec->adc_nid[spec->cur_input]; + cs_update_input_select(codec); + } } } @@ -1109,7 +1115,7 @@ | 0x0400 /* Disable Coefficient Auto increment */ )}, /* Beep */ - {0x11, AC_VERB_SET_COEF_INDEX, IDX_DAC_CFG}, + {0x11, AC_VERB_SET_COEF_INDEX, IDX_BEEP_CFG}, {0x11, AC_VERB_SET_PROC_COEF, 0x0007}, /* Enable Beep thru DAC1/2/3 */ {} /* terminator */ @@ -1200,11 +1206,14 @@ init_output(codec); init_input(codec); init_digital(codec); + snd_hda_jack_report_sync(codec); + return 0; } static int cs_build_controls(struct hda_codec *codec) { + struct cs_spec *spec = codec->spec; int err; err = build_output(codec); @@ -1219,7 +1228,15 @@ err = build_digital_input(codec); if (err < 0) return err; - return cs_init(codec); + err = cs_init(codec); + if (err < 0) + return err; + + err = snd_hda_jack_add_kctls(codec, &spec->autocfg); + if (err < 0) + return err; + + return 0; } static void cs_free(struct hda_codec *codec) @@ -1232,7 +1249,7 @@ static void cs_unsol_event(struct hda_codec *codec, unsigned int res) { - switch ((res >> 26) & 0x7f) { + switch (snd_hda_jack_get_action(codec, res >> 26)) { case HP_EVENT: cs_automute(codec); break; @@ -1240,6 +1257,7 @@ cs_automic(codec); break; } + snd_hda_jack_report_sync(codec); } static const struct hda_codec_ops cs_patch_ops = { @@ -1404,7 +1422,7 @@ return 0; error: - kfree(codec->spec); + cs_free(codec); codec->spec = NULL; return err; } @@ -1557,7 +1575,7 @@ .tlv = { .p = cs421x_speaker_boost_db_scale }, }; -static void cs421x_pinmux_init(struct hda_codec *codec) +static void cs4210_pinmux_init(struct hda_codec *codec) { struct cs_spec *spec = codec->spec; unsigned int def_conf, coef; @@ -1602,10 +1620,7 @@ if (!cfg->speaker_outs) continue; if (get_wcaps(codec, nid) & AC_WCAP_UNSOL_CAP) { - - snd_hda_codec_write(codec, nid, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | SPDIF_EVENT); + snd_hda_jack_detect_enable(codec, nid, SPDIF_EVENT); spec->spdif_detect = 1; } } @@ -1615,10 +1630,11 @@ { struct cs_spec *spec = codec->spec; - snd_hda_sequence_write(codec, cs421x_coef_init_verbs); - snd_hda_sequence_write(codec, cs421x_coef_init_verbs_A1_silicon_fixes); - - cs421x_pinmux_init(codec); + if (spec->vendor_nid == CS4210_VENDOR_NID) { + snd_hda_sequence_write(codec, cs421x_coef_init_verbs); + snd_hda_sequence_write(codec, cs421x_coef_init_verbs_A1_silicon_fixes); + cs4210_pinmux_init(codec); + } if (spec->gpio_mask) { snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_MASK, @@ -1632,6 +1648,7 @@ init_output(codec); init_input(codec); init_cs421x_digital(codec); + snd_hda_jack_report_sync(codec); return 0; } @@ -1771,32 +1788,21 @@ struct auto_pin_cfg *cfg = &spec->autocfg; struct snd_kcontrol *kctl; int err; - char *name = "HP/Speakers"; + char *name = "Master"; fix_volume_caps(codec, dac); - if (!spec->vmaster_sw) { - err = add_vmaster(codec, dac); - if (err < 0) - return err; - } err = add_mute(codec, name, 0, HDA_COMPOSE_AMP_VAL(dac, 3, 0, HDA_OUTPUT), 0, &kctl); if (err < 0) return err; - err = snd_ctl_add_slave(spec->vmaster_sw, kctl); - if (err < 0) - return err; err = add_volume(codec, name, 0, HDA_COMPOSE_AMP_VAL(dac, 3, 0, HDA_OUTPUT), 0, &kctl); if (err < 0) return err; - err = snd_ctl_add_slave(spec->vmaster_vol, kctl); - if (err < 0) - return err; - if (cfg->speaker_outs) { + if (cfg->speaker_outs && (spec->vendor_nid == CS4210_VENDOR_NID)) { err = snd_hda_ctl_add(codec, 0, snd_ctl_new1(&cs421x_speaker_bost_ctl, codec)); if (err < 0) @@ -1807,6 +1813,7 @@ static int cs421x_build_controls(struct hda_codec *codec) { + struct cs_spec *spec = codec->spec; int err; err = build_cs421x_output(codec); @@ -1818,12 +1825,20 @@ err = build_digital_output(codec); if (err < 0) return err; - return cs421x_init(codec); + err = cs421x_init(codec); + if (err < 0) + return err; + + err = snd_hda_jack_add_kctls(codec, &spec->autocfg); + if (err < 0) + return err; + + return 0; } static void cs421x_unsol_event(struct hda_codec *codec, unsigned int res) { - switch ((res >> 26) & 0x3f) { + switch (snd_hda_jack_get_action(codec, res >> 26)) { case HP_EVENT: case SPDIF_EVENT: cs_automute(codec); @@ -1833,6 +1848,7 @@ cs_automic(codec); break; } + snd_hda_jack_report_sync(codec); } static int parse_cs421x_input(struct hda_codec *codec) @@ -1883,6 +1899,7 @@ */ static int cs421x_suspend(struct hda_codec *codec, pm_message_t state) { + struct cs_spec *spec = codec->spec; unsigned int coef; snd_hda_shutup_pins(codec); @@ -1892,15 +1909,17 @@ snd_hda_codec_write(codec, CS4210_ADC_NID, 0, AC_VERB_SET_POWER_STATE, AC_PWRST_D3); - coef = cs_vendor_coef_get(codec, CS421X_IDX_DEV_CFG); - coef |= 0x0004; /* PDREF */ - cs_vendor_coef_set(codec, CS421X_IDX_DEV_CFG, coef); + if (spec->vendor_nid == CS4210_VENDOR_NID) { + coef = cs_vendor_coef_get(codec, CS421X_IDX_DEV_CFG); + coef |= 0x0004; /* PDREF */ + cs_vendor_coef_set(codec, CS421X_IDX_DEV_CFG, coef); + } return 0; } #endif -static struct hda_codec_ops cs4210_patch_ops = { +static struct hda_codec_ops cs421x_patch_ops = { .build_controls = cs421x_build_controls, .build_pcms = cs_build_pcms, .init = cs421x_init, @@ -1911,7 +1930,7 @@ #endif }; -static int patch_cs421x(struct hda_codec *codec) +static int patch_cs4210(struct hda_codec *codec) { struct cs_spec *spec; int err; @@ -1921,7 +1940,7 @@ return -ENOMEM; codec->spec = spec; - spec->vendor_nid = CS421X_VENDOR_NID; + spec->vendor_nid = CS4210_VENDOR_NID; spec->board_config = snd_hda_check_board_config(codec, CS421X_MODELS, @@ -1949,14 +1968,39 @@ is auto-parsed. If GPIO or SENSE_B is forced, DMIC input is disabled. */ - cs421x_pinmux_init(codec); + cs4210_pinmux_init(codec); err = cs421x_parse_auto_config(codec); if (err < 0) goto error; - codec->patch_ops = cs4210_patch_ops; + codec->patch_ops = cs421x_patch_ops; + + return 0; + + error: + cs_free(codec); + codec->spec = NULL; + return err; +} + +static int patch_cs4213(struct hda_codec *codec) +{ + struct cs_spec *spec; + int err; + + spec = kzalloc(sizeof(*spec), GFP_KERNEL); + if (!spec) + return -ENOMEM; + codec->spec = spec; + + spec->vendor_nid = CS4213_VENDOR_NID; + + err = cs421x_parse_auto_config(codec); + if (err < 0) + goto error; + codec->patch_ops = cs421x_patch_ops; return 0; error: @@ -1972,13 +2016,15 @@ static const struct hda_codec_preset snd_hda_preset_cirrus[] = { { .id = 0x10134206, .name = "CS4206", .patch = patch_cs420x }, { .id = 0x10134207, .name = "CS4207", .patch = patch_cs420x }, - { .id = 0x10134210, .name = "CS4210", .patch = patch_cs421x }, + { .id = 0x10134210, .name = "CS4210", .patch = patch_cs4210 }, + { .id = 0x10134213, .name = "CS4213", .patch = patch_cs4213 }, {} /* terminator */ }; MODULE_ALIAS("snd-hda-codec-id:10134206"); MODULE_ALIAS("snd-hda-codec-id:10134207"); MODULE_ALIAS("snd-hda-codec-id:10134210"); +MODULE_ALIAS("snd-hda-codec-id:10134213"); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("Cirrus Logic HD-audio codec"); --- linux-3.2.0.orig/sound/pci/hda/patch_ca0110.c +++ linux-3.2.0/sound/pci/hda/patch_ca0110.c @@ -41,7 +41,7 @@ hda_nid_t dig_out; hda_nid_t dig_in; unsigned int num_inputs; - const char *input_labels[AUTO_PIN_LAST]; + char input_labels[AUTO_PIN_LAST][32]; struct hda_pcm pcm_rec[2]; /* PCM information */ }; @@ -476,7 +476,9 @@ if (j >= cfg->num_inputs) continue; spec->input_pins[n] = pin; - spec->input_labels[n] = hda_get_input_pin_label(codec, pin, 1); + snd_hda_get_pin_label(codec, pin, cfg, + spec->input_labels[n], + sizeof(spec->input_labels[n]), NULL); spec->adcs[n] = nid; n++; } --- linux-3.2.0.orig/sound/pci/hda/hda_intel.c +++ linux-3.2.0/sound/pci/hda/hda_intel.c @@ -148,6 +148,7 @@ "{Intel, PCH}," "{Intel, CPT}," "{Intel, PPT}," + "{Intel, LPT}," "{Intel, PBG}," "{Intel, SCH}," "{ATI, SB450}," @@ -461,6 +462,7 @@ unsigned int irq_pending_warned :1; unsigned int probing :1; /* codec probing phase */ unsigned int snoop:1; + unsigned int align_buffer_size:1; /* for debugging */ unsigned int last_cmd[AZX_MAX_CODECS]; @@ -567,29 +569,43 @@ #define get_azx_dev(substream) (substream->runtime->private_data) #ifdef CONFIG_X86 -static void __mark_pages_wc(struct azx *chip, void *addr, size_t size, bool on) +static void __mark_pages_wc(struct azx *chip, struct snd_dma_buffer *dmab, bool on) { + int pages; + if (azx_snoop(chip)) return; - if (addr && size) { - int pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; + if (!dmab || !dmab->area || !dmab->bytes) + return; + +#ifdef CONFIG_SND_DMA_SGBUF + if (dmab->dev.type == SNDRV_DMA_TYPE_DEV_SG) { + struct snd_sg_buf *sgbuf = dmab->private_data; if (on) - set_memory_wc((unsigned long)addr, pages); + set_pages_array_wc(sgbuf->page_table, sgbuf->pages); else - set_memory_wb((unsigned long)addr, pages); + set_pages_array_wb(sgbuf->page_table, sgbuf->pages); + return; } +#endif + + pages = (dmab->bytes + PAGE_SIZE - 1) >> PAGE_SHIFT; + if (on) + set_memory_wc((unsigned long)dmab->area, pages); + else + set_memory_wb((unsigned long)dmab->area, pages); } static inline void mark_pages_wc(struct azx *chip, struct snd_dma_buffer *buf, bool on) { - __mark_pages_wc(chip, buf->area, buf->bytes, on); + __mark_pages_wc(chip, buf, on); } static inline void mark_runtime_wc(struct azx *chip, struct azx_dev *azx_dev, - struct snd_pcm_runtime *runtime, bool on) + struct snd_pcm_substream *substream, bool on) { if (azx_dev->wc_marked != on) { - __mark_pages_wc(chip, runtime->dma_area, runtime->dma_bytes, on); + __mark_pages_wc(chip, substream->runtime->dma_buffer_p, on); azx_dev->wc_marked = on; } } @@ -600,7 +616,7 @@ { } static inline void mark_runtime_wc(struct azx *chip, struct azx_dev *azx_dev, - struct snd_pcm_runtime *runtime, bool on) + struct snd_pcm_substream *substream, bool on) { } #endif @@ -768,11 +784,13 @@ { struct azx *chip = bus->private_data; unsigned long timeout; + unsigned long loopcounter; int do_poll = 0; again: timeout = jiffies + msecs_to_jiffies(1000); - for (;;) { + + for (loopcounter = 0;; loopcounter++) { if (chip->polling_mode || do_poll) { spin_lock_irq(&chip->reg_lock); azx_update_rirb(chip); @@ -788,7 +806,7 @@ } if (time_after(jiffies, timeout)) break; - if (bus->needs_damn_long_delay) + if (bus->needs_damn_long_delay || loopcounter > 3000) msleep(2); /* temporary workaround */ else { udelay(10); @@ -1697,7 +1715,7 @@ runtime->hw.rates = hinfo->rates; snd_pcm_limit_hw_rates(runtime); snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS); - if (align_buffer_size) + if (chip->align_buffer_size) /* constrain buffer sizes to be multiple of 128 bytes. This is more efficient in terms of memory access but isn't required by the HDA spec and @@ -1772,11 +1790,10 @@ { struct azx_pcm *apcm = snd_pcm_substream_chip(substream); struct azx *chip = apcm->chip; - struct snd_pcm_runtime *runtime = substream->runtime; struct azx_dev *azx_dev = get_azx_dev(substream); int ret; - mark_runtime_wc(chip, azx_dev, runtime, false); + mark_runtime_wc(chip, azx_dev, substream, false); azx_dev->bufsize = 0; azx_dev->period_bytes = 0; azx_dev->format_val = 0; @@ -1784,7 +1801,7 @@ params_buffer_bytes(hw_params)); if (ret < 0) return ret; - mark_runtime_wc(chip, azx_dev, runtime, true); + mark_runtime_wc(chip, azx_dev, substream, true); return ret; } @@ -1793,7 +1810,6 @@ struct azx_pcm *apcm = snd_pcm_substream_chip(substream); struct azx_dev *azx_dev = get_azx_dev(substream); struct azx *chip = apcm->chip; - struct snd_pcm_runtime *runtime = substream->runtime; struct hda_pcm_stream *hinfo = apcm->hinfo[substream->stream]; /* reset BDL address */ @@ -1806,7 +1822,7 @@ snd_hda_codec_cleanup(apcm->codec, hinfo, substream); - mark_runtime_wc(chip, azx_dev, runtime, false); + mark_runtime_wc(chip, azx_dev, substream, false); return snd_pcm_lib_free_pages(substream); } @@ -2509,6 +2525,7 @@ SND_PCI_QUIRK(0x1043, 0x81e7, "ASUS M2V", POS_FIX_LPIB), SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS 1101HA", POS_FIX_LPIB), SND_PCI_QUIRK(0x104d, 0x9069, "Sony VPCS11V9E", POS_FIX_LPIB), + SND_PCI_QUIRK(0x10de, 0xcb89, "Macbook Pro 7,1", POS_FIX_LPIB), SND_PCI_QUIRK(0x1297, 0x3166, "Shuttle", POS_FIX_LPIB), SND_PCI_QUIRK(0x1458, 0xa022, "ga-ma770-ud3", POS_FIX_LPIB), SND_PCI_QUIRK(0x1462, 0x1002, "MSI Wind U115", POS_FIX_LPIB), @@ -2752,8 +2769,9 @@ } /* disable buffer size rounding to 128-byte multiples if supported */ + chip->align_buffer_size = align_buffer_size; if (chip->driver_caps & AZX_DCAPS_BUFSIZE) - align_buffer_size = 0; + chip->align_buffer_size = 0; /* allow 64bit DMA address if supported by H/W */ if ((gcap & ICH6_GCAP_64OK) && !pci_set_dma_mask(pci, DMA_BIT_MASK(64))) @@ -2968,6 +2986,10 @@ { PCI_DEVICE(0x8086, 0x1e20), .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_SCH_SNOOP | AZX_DCAPS_BUFSIZE}, + /* Lynx Point */ + { PCI_DEVICE(0x8086, 0x8c20), + .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_SCH_SNOOP | + AZX_DCAPS_BUFSIZE}, /* SCH */ { PCI_DEVICE(0x8086, 0x811b), .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_SCH_SNOOP | --- linux-3.2.0.orig/sound/pci/hda/patch_realtek.c +++ linux-3.2.0/sound/pci/hda/patch_realtek.c @@ -33,6 +33,7 @@ #include "hda_codec.h" #include "hda_local.h" #include "hda_beep.h" +#include "hda_jack.h" /* unsol event tags */ #define ALC_FRONT_EVENT 0x01 @@ -79,6 +80,8 @@ ALC_AUTOMUTE_MIXER, /* mute/unmute mixer widget AMP */ }; +#define MAX_VOL_NIDS 0x40 + struct alc_spec { /* codec parameterization */ const struct snd_kcontrol_new *mixers[5]; /* mixer arrays */ @@ -117,8 +120,8 @@ const hda_nid_t *capsrc_nids; hda_nid_t dig_in_nid; /* digital-in NID; optional */ hda_nid_t mixer_nid; /* analog-mixer NID */ - DECLARE_BITMAP(vol_ctls, 0x20 << 1); - DECLARE_BITMAP(sw_ctls, 0x20 << 1); + DECLARE_BITMAP(vol_ctls, MAX_VOL_NIDS << 1); + DECLARE_BITMAP(sw_ctls, MAX_VOL_NIDS << 1); /* capture setup for dynamic dual-adc switch */ hda_nid_t cur_adc; @@ -176,6 +179,7 @@ unsigned int detect_lo:1; /* Line-out detection enabled */ unsigned int automute_speaker_possible:1; /* there are speakers and either LO or HP */ unsigned int automute_lo_possible:1; /* there are line outs and HP */ + unsigned int keep_vref_in_automute:1; /* Don't clear VREF in automute */ /* other flags */ unsigned int no_analog :1; /* digital I/O only */ @@ -450,46 +454,6 @@ } /* - * Jack-reporting via input-jack layer - */ - -/* initialization of jacks; currently checks only a few known pins */ -static int alc_init_jacks(struct hda_codec *codec) -{ -#ifdef CONFIG_SND_HDA_INPUT_JACK - struct alc_spec *spec = codec->spec; - int err; - unsigned int hp_nid = spec->autocfg.hp_pins[0]; - unsigned int mic_nid = spec->ext_mic_pin; - unsigned int dock_nid = spec->dock_mic_pin; - - if (hp_nid) { - err = snd_hda_input_jack_add(codec, hp_nid, - SND_JACK_HEADPHONE, NULL); - if (err < 0) - return err; - snd_hda_input_jack_report(codec, hp_nid); - } - - if (mic_nid) { - err = snd_hda_input_jack_add(codec, mic_nid, - SND_JACK_MICROPHONE, NULL); - if (err < 0) - return err; - snd_hda_input_jack_report(codec, mic_nid); - } - if (dock_nid) { - err = snd_hda_input_jack_add(codec, dock_nid, - SND_JACK_MICROPHONE, NULL); - if (err < 0) - return err; - snd_hda_input_jack_report(codec, dock_nid); - } -#endif /* CONFIG_SND_HDA_INPUT_JACK */ - return 0; -} - -/* * Jack detections for HP auto-mute and mic-switch */ @@ -502,7 +466,6 @@ hda_nid_t nid = pins[i]; if (!nid) break; - snd_hda_input_jack_report(codec, nid); present |= snd_hda_jack_detect(codec, nid); } return present; @@ -519,13 +482,24 @@ for (i = 0; i < num_pins; i++) { hda_nid_t nid = pins[i]; + unsigned int val; if (!nid) break; switch (spec->automute_mode) { case ALC_AUTOMUTE_PIN: + /* don't reset VREF value in case it's controlling + * the amp (see alc861_fixup_asus_amp_vref_0f()) + */ + if (spec->keep_vref_in_automute) { + val = snd_hda_codec_read(codec, nid, 0, + AC_VERB_GET_PIN_WIDGET_CONTROL, 0); + val &= ~PIN_HP; + } else + val = 0; + val |= pin_bits; snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, - pin_bits); + val); break; case ALC_AUTOMUTE_AMP: snd_hda_codec_amp_stereo(codec, nid, HDA_OUTPUT, 0, @@ -606,6 +580,8 @@ { struct alc_spec *spec = codec->spec; + if (spec->autocfg.line_out_type == AUTO_PIN_SPEAKER_OUT) + return; /* check LO jack only when it's different from HP */ if (spec->autocfg.line_out_pins[0] == spec->autocfg.hp_pins[0]) return; @@ -641,20 +617,12 @@ alc_mux_select(codec, 0, spec->dock_mic_idx, false); else alc_mux_select(codec, 0, spec->int_mic_idx, false); - - snd_hda_input_jack_report(codec, pins[spec->ext_mic_idx]); - if (spec->dock_mic_idx >= 0) - snd_hda_input_jack_report(codec, pins[spec->dock_mic_idx]); } -/* unsolicited event for HP jack sensing */ -static void alc_sku_unsol_event(struct hda_codec *codec, unsigned int res) +/* handle the specified unsol action (ALC_XXX_EVENT) */ +static void alc_exec_unsol_event(struct hda_codec *codec, int action) { - if (codec->vendor_id == 0x10ec0880) - res >>= 28; - else - res >>= 26; - switch (res) { + switch (action) { case ALC_HP_EVENT: alc_hp_automute(codec); break; @@ -665,6 +633,19 @@ alc_mic_automute(codec); break; } + snd_hda_jack_report_sync(codec); +} + +/* unsolicited event for HP jack sensing */ +static void alc_sku_unsol_event(struct hda_codec *codec, unsigned int res) +{ + struct alc_spec *spec = codec->spec; + if (codec->vendor_id == 0x10ec0880) + res >>= 28; + else + res >>= 26; + res = snd_hda_jack_get_action(codec, res); + alc_exec_unsol_event(codec, res); } /* call init functions of standard auto-mute helpers */ @@ -954,9 +935,7 @@ continue; snd_printdd("realtek: Enable HP auto-muting on NID 0x%x\n", nid); - snd_hda_codec_write_cache(codec, nid, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | ALC_HP_EVENT); + snd_hda_jack_detect_enable(codec, nid, ALC_HP_EVENT); spec->detect_hp = 1; } @@ -968,9 +947,8 @@ continue; snd_printdd("realtek: Enable Line-Out " "auto-muting on NID 0x%x\n", nid); - snd_hda_codec_write_cache(codec, nid, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | ALC_FRONT_EVENT); + snd_hda_jack_detect_enable(codec, nid, + ALC_FRONT_EVENT); spec->detect_lo = 1; } spec->automute_lo_possible = spec->detect_hp; @@ -1109,13 +1087,10 @@ return false; /* no corresponding imux */ } - snd_hda_codec_write_cache(codec, spec->ext_mic_pin, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | ALC_MIC_EVENT); + snd_hda_jack_detect_enable(codec, spec->ext_mic_pin, ALC_MIC_EVENT); if (spec->dock_mic_pin) - snd_hda_codec_write_cache(codec, spec->dock_mic_pin, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - AC_USRSP_EN | ALC_MIC_EVENT); + snd_hda_jack_detect_enable(codec, spec->dock_mic_pin, + ALC_MIC_EVENT); spec->auto_mic_valid_imux = 1; spec->auto_mic = 1; @@ -1894,7 +1869,7 @@ }; #endif -static int alc_build_controls(struct hda_codec *codec) +static int __alc_build_controls(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; struct snd_kcontrol *kctl = NULL; @@ -2043,18 +2018,31 @@ return 0; } +static int alc_build_controls(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + int err = __alc_build_controls(codec); + if (err < 0) + return err; + return snd_hda_jack_add_kctls(codec, &spec->autocfg); +} + /* * Common callbacks */ static void alc_init_special_input_src(struct hda_codec *codec); +static int alc269_fill_coef(struct hda_codec *codec); static int alc_init(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; unsigned int i; + if (codec->vendor_id == 0x10ec0269) + alc269_fill_coef(codec); + alc_fix_pll(codec); alc_auto_init_amp(codec, spec->init_amp); @@ -2067,6 +2055,8 @@ alc_apply_fixup(codec, ALC_FIXUP_ACT_INIT); + snd_hda_jack_report_sync(codec); + hda_call_check_power_status(codec, 0x01); return 0; } @@ -2450,7 +2440,6 @@ return; alc_shutup(codec); - snd_hda_input_jack_free(codec); alc_free_kctls(codec); alc_free_bind_ctls(codec); kfree(spec); @@ -2645,8 +2634,10 @@ return "PCM"; break; } - if (snd_BUG_ON(ch >= ARRAY_SIZE(channel_name))) + if (ch >= ARRAY_SIZE(channel_name)) { + snd_BUG(); return "PCM"; + } return channel_name[ch]; } @@ -2950,6 +2941,8 @@ static int alc_auto_fill_multi_ios(struct hda_codec *codec, unsigned int location); +static hda_nid_t alc_look_for_out_vol_nid(struct hda_codec *codec, + hda_nid_t pin, hda_nid_t dac); /* fill in the dac_nids table from the parsed pin configuration */ static int alc_auto_fill_dac_nids(struct hda_codec *codec) @@ -3050,13 +3043,21 @@ } } + if (cfg->line_out_pins[0]) + spec->vmaster_nid = + alc_look_for_out_vol_nid(codec, cfg->line_out_pins[0], + spec->multiout.dac_nids[0]); + return 0; } static inline unsigned int get_ctl_pos(unsigned int data) { hda_nid_t nid = get_amp_nid_(data); - unsigned int dir = get_amp_direction_(data); + unsigned int dir; + if (snd_BUG_ON(nid >= MAX_VOL_NIDS)) + return 0; + dir = get_amp_direction_(data); return (nid << 1) | dir; } @@ -3678,7 +3679,7 @@ else nums = spec->num_adc_nids; for (c = 0; c < nums; c++) - alc_mux_select(codec, 0, spec->cur_mux[c], true); + alc_mux_select(codec, c, spec->cur_mux[c], true); } /* add mic boosts if needed */ @@ -3829,6 +3830,7 @@ ((spec)->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 3, idx, dir)) static const struct snd_pci_quirk beep_white_list[] = { + SND_PCI_QUIRK(0x1043, 0x103c, "ASUS", 1), SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1), SND_PCI_QUIRK(0x1043, 0x83ce, "EeePC", 1), SND_PCI_QUIRK(0x1043, 0x831a, "EeePC", 1), @@ -4010,8 +4012,10 @@ #endif } - if (board_config != ALC_MODEL_AUTO) + if (board_config != ALC_MODEL_AUTO) { + spec->vmaster_nid = 0x0c; setup_preset(codec, &alc880_presets[board_config]); + } if (!spec->no_analog && !spec->adc_nids) { alc_auto_fill_adc_caps(codec); @@ -4029,11 +4033,11 @@ set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); } - spec->vmaster_nid = 0x0c; - codec->patch_ops = alc_patch_ops; if (board_config == ALC_MODEL_AUTO) spec->init_hook = alc_auto_init_std; + else + codec->patch_ops.build_controls = __alc_build_controls; #ifdef CONFIG_SND_HDA_POWER_SAVE if (!spec->loopback.amplist) spec->loopback.amplist = alc880_loopbacks; @@ -4137,8 +4141,10 @@ #endif } - if (board_config != ALC_MODEL_AUTO) + if (board_config != ALC_MODEL_AUTO) { setup_preset(codec, &alc260_presets[board_config]); + spec->vmaster_nid = 0x08; + } if (!spec->no_analog && !spec->adc_nids) { alc_auto_fill_adc_caps(codec); @@ -4158,11 +4164,11 @@ alc_apply_fixup(codec, ALC_FIXUP_ACT_PROBE); - spec->vmaster_nid = 0x08; - codec->patch_ops = alc_patch_ops; if (board_config == ALC_MODEL_AUTO) spec->init_hook = alc_auto_init_std; + else + codec->patch_ops.build_controls = __alc_build_controls; spec->shutup = alc_eapd_shutup; #ifdef CONFIG_SND_HDA_POWER_SAVE if (!spec->loopback.amplist) @@ -4201,8 +4207,34 @@ PINFIX_PB_M5210, PINFIX_ACER_ASPIRE_7736, PINFIX_ASUS_W90V, + ALC889_FIXUP_DAC_ROUTE, }; +/* Fix the connection of some pins for ALC889: + * At least, Acer Aspire 5935 shows the connections to DAC3/4 don't + * work correctly (bko#42740) + */ +static void alc889_fixup_dac_route(struct hda_codec *codec, + const struct alc_fixup *fix, int action) +{ + if (action == ALC_FIXUP_ACT_PRE_PROBE) { + /* fake the connections during parsing the tree */ + hda_nid_t conn1[2] = { 0x0c, 0x0d }; + hda_nid_t conn2[2] = { 0x0e, 0x0f }; + snd_hda_override_conn_list(codec, 0x14, 2, conn1); + snd_hda_override_conn_list(codec, 0x15, 2, conn1); + snd_hda_override_conn_list(codec, 0x18, 2, conn2); + snd_hda_override_conn_list(codec, 0x1a, 2, conn2); + } else if (action == ALC_FIXUP_ACT_PROBE) { + /* restore the connections */ + hda_nid_t conn[5] = { 0x0c, 0x0d, 0x0e, 0x0f, 0x26 }; + snd_hda_override_conn_list(codec, 0x14, 5, conn); + snd_hda_override_conn_list(codec, 0x15, 5, conn); + snd_hda_override_conn_list(codec, 0x18, 5, conn); + snd_hda_override_conn_list(codec, 0x1a, 5, conn); + } +} + static const struct alc_fixup alc882_fixups[] = { [PINFIX_ABIT_AW9D_MAX] = { .type = ALC_FIXUP_PINS, @@ -4239,10 +4271,15 @@ { } } }, + [ALC889_FIXUP_DAC_ROUTE] = { + .type = ALC_FIXUP_FUNC, + .v.func = alc889_fixup_dac_route, + }, }; static const struct snd_pci_quirk alc882_fixup_tbl[] = { SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", PINFIX_PB_M5210), + SND_PCI_QUIRK(0x1025, 0x0259, "Acer Aspire 5935", ALC889_FIXUP_DAC_ROUTE), SND_PCI_QUIRK(0x1043, 0x1873, "ASUS W90V", PINFIX_ASUS_W90V), SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530), SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), @@ -4329,8 +4366,10 @@ #endif } - if (board_config != ALC_MODEL_AUTO) + if (board_config != ALC_MODEL_AUTO) { setup_preset(codec, &alc882_presets[board_config]); + spec->vmaster_nid = 0x0c; + } if (!spec->no_analog && !spec->adc_nids) { alc_auto_fill_adc_caps(codec); @@ -4350,13 +4389,12 @@ alc_apply_fixup(codec, ALC_FIXUP_ACT_PROBE); - spec->vmaster_nid = 0x0c; - codec->patch_ops = alc_patch_ops; if (board_config == ALC_MODEL_AUTO) spec->init_hook = alc_auto_init_std; + else + codec->patch_ops.build_controls = __alc_build_controls; - alc_init_jacks(codec); #ifdef CONFIG_SND_HDA_POWER_SAVE if (!spec->loopback.amplist) spec->loopback.amplist = alc882_loopbacks; @@ -4483,8 +4521,10 @@ #endif } - if (board_config != ALC_MODEL_AUTO) + if (board_config != ALC_MODEL_AUTO) { setup_preset(codec, &alc262_presets[board_config]); + spec->vmaster_nid = 0x0c; + } if (!spec->no_analog && !spec->adc_nids) { alc_auto_fill_adc_caps(codec); @@ -4504,14 +4544,11 @@ alc_apply_fixup(codec, ALC_FIXUP_ACT_PROBE); - spec->vmaster_nid = 0x0c; - codec->patch_ops = alc_patch_ops; if (board_config == ALC_MODEL_AUTO) spec->init_hook = alc_auto_init_std; spec->shutup = alc_eapd_shutup; - alc_init_jacks(codec); #ifdef CONFIG_SND_HDA_POWER_SAVE if (!spec->loopback.amplist) spec->loopback.amplist = alc262_loopbacks; @@ -4618,14 +4655,10 @@ if (!spec->no_analog && !spec->cap_mixer) set_capture_mixer(codec); - spec->vmaster_nid = 0x02; - codec->patch_ops = alc_patch_ops; spec->init_hook = alc_auto_init_std; spec->shutup = alc_eapd_shutup; - alc_init_jacks(codec); - return 0; error: @@ -4757,6 +4790,15 @@ } #endif /* CONFIG_PM */ +static void alc269_fixup_pincfg_no_hp_to_lineout(struct hda_codec *codec, + const struct alc_fixup *fix, int action) +{ + struct alc_spec *spec = codec->spec; + + if (action == ALC_FIXUP_ACT_PRE_PROBE) + spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; +} + static void alc269_fixup_hweq(struct hda_codec *codec, const struct alc_fixup *fix, int action) { @@ -4840,6 +4882,72 @@ spec->automute_hook = alc269_quanta_automute; } +/* Hide the connection of speakers and headphone pins to specific DACs, + * so we prevent autoconfig to make headphone pin share the same DAC + * with the first set of speakers, which in the end makes the mixer lack + * a headphone volume control (as speaker volume slider controls the DAC + * amp, and the code prevents adding another volume slider to do the + * same thing). This means user space (pulse), depending on + * configuration, can foolish think that it can turn the speaker volume + * down to 0, while in practice it's also turning down the volume for + * headphone pin... http://bugs.launchpad.net/bugs/994685 */ +static void alc269vb_fixup_restrict_bass(struct hda_codec *codec, + const struct alc_fixup *fix, + int action) +{ + unsigned int defcfg, i; + short dev, con; + struct alc_spec *spec = codec->spec; + int spk_nids[] = { 0x14, 0x1a }; + int clear_nids[] = { 0x17, 0x18, 0x1b }; + static const struct snd_kcontrol_new alc269vb_bass_switch[] = { + HDA_CODEC_MUTE("Bass Speaker Playback Switch", 0x1a, 0x0, HDA_OUTPUT), + { } + }; + + /* Do some sanity checks first. If we don't find pins where they + * should be, just do nothing */ + defcfg = snd_hda_codec_get_pincfg(codec, 0x21); + if (get_defcfg_device(defcfg) != AC_JACK_HP_OUT || + get_defcfg_connect(defcfg) == AC_JACK_PORT_NONE) + return; + for (i = 0; i < ARRAY_SIZE(spk_nids); i++) { + defcfg = snd_hda_codec_get_pincfg(codec, spk_nids[i]); + dev = get_defcfg_device(defcfg); + con = get_defcfg_connect(defcfg); + if (dev == AC_JACK_LINE_OUT) { + if (con == AC_JACK_PORT_FIXED) + dev = AC_JACK_SPEAKER; + } + if (dev != AC_JACK_SPEAKER || con == AC_JACK_PORT_NONE) + return; + } + for (i = 0; i < ARRAY_SIZE(clear_nids); i++) { + defcfg = snd_hda_codec_get_pincfg(codec, clear_nids[i]); + dev = get_defcfg_device(defcfg); + con = get_defcfg_connect(defcfg); + if ((dev == AC_JACK_SPEAKER || dev == AC_JACK_LINE_OUT || + dev == AC_JACK_HP_OUT) && con != AC_JACK_PORT_NONE) + return; + } + + if (action == ALC_FIXUP_ACT_PRE_PROBE) { + /* fake the connections during parsing the tree */ + hda_nid_t conn1[1] = { 0x0c }; + hda_nid_t conn2[1] = { 0x0d }; + snd_hda_override_conn_list(codec, 0x14, 1, conn2); + snd_hda_override_conn_list(codec, 0x1a, 1, conn2); + snd_hda_override_conn_list(codec, 0x21, 1, conn1); + } else if (action == ALC_FIXUP_ACT_PROBE) { + /* restore the connections */ + hda_nid_t conn[2] = { 0x0c, 0x0d }; + snd_hda_override_conn_list(codec, 0x14, 2, conn); + snd_hda_override_conn_list(codec, 0x1a, 2, conn); + snd_hda_override_conn_list(codec, 0x21, 2, conn); + add_mixer(spec, alc269vb_bass_switch); + } +} + enum { ALC269_FIXUP_SONY_VAIO, ALC275_FIXUP_SONY_VAIO_GPIO2, @@ -4857,6 +4965,9 @@ ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC, ALC269VB_FIXUP_DMIC, + ALC269VB_FIXUP_RESTRICT_BASS, + ALC269_FIXUP_LENOVO_DOCK, + ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT, }; static const struct alc_fixup alc269_fixups[] = { @@ -4918,6 +5029,8 @@ [ALC269_FIXUP_PCM_44K] = { .type = ALC_FIXUP_FUNC, .v.func = alc269_fixup_pcm_44k, + .chained = true, + .chain_id = ALC269_FIXUP_QUANTA_MUTE }, [ALC269_FIXUP_STEREO_DMIC] = { .type = ALC_FIXUP_FUNC, @@ -4977,9 +5090,28 @@ { } }, }, + [ALC269VB_FIXUP_RESTRICT_BASS] = { + .type = ALC_FIXUP_FUNC, + .v.func = alc269vb_fixup_restrict_bass, + }, + [ALC269_FIXUP_LENOVO_DOCK] = { + .type = ALC_FIXUP_PINS, + .v.pins = (const struct alc_pincfg[]) { + { 0x19, 0x23a11040 }, /* dock mic */ + { 0x1b, 0x2121103f }, /* dock headphone */ + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT + }, + [ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT] = { + .type = ALC_FIXUP_FUNC, + .v.func = alc269_fixup_pincfg_no_hp_to_lineout, + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { + SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC), @@ -4991,6 +5123,7 @@ SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), + SND_PCI_QUIRK(0x1028, 0x04d8, "Dell Inspiron 17", ALC269VB_FIXUP_RESTRICT_BASS), SND_PCI_QUIRK_VENDOR(0x1025, "Acer Aspire", ALC271_FIXUP_DMIC), SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook", ALC269_FIXUP_LIFEBOOK), SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE), @@ -4998,8 +5131,12 @@ SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE), SND_PCI_QUIRK(0x17aa, 0x21ca, "Thinkpad L412", ALC269_FIXUP_SKU_IGNORE), SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 15", ALC269_FIXUP_SKU_IGNORE), - SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_QUANTA_MUTE), - SND_PCI_QUIRK(0x17aa, 0x3bf8, "Lenovo Ideapd", ALC269_FIXUP_PCM_44K), + SND_PCI_QUIRK(0x17aa, 0x21f6, "Thinkpad T530", ALC269_FIXUP_LENOVO_DOCK), + SND_PCI_QUIRK(0x17aa, 0x21fa, "Thinkpad X230", ALC269_FIXUP_LENOVO_DOCK), + SND_PCI_QUIRK(0x17aa, 0x21f3, "Thinkpad T430", ALC269_FIXUP_LENOVO_DOCK), + SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK), + SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK), + SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K), SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), #if 1 @@ -5011,7 +5148,6 @@ SND_PCI_QUIRK(0x1043, 0x8330, "ASUS Eeepc P703 P900A", ALC269_FIXUP_AMIC), SND_PCI_QUIRK(0x1043, 0x1013, "ASUS N61Da", ALC269_FIXUP_AMIC), - SND_PCI_QUIRK(0x1043, 0x1113, "ASUS N63Jn", ALC269_FIXUP_AMIC), SND_PCI_QUIRK(0x1043, 0x1143, "ASUS B53f", ALC269_FIXUP_AMIC), SND_PCI_QUIRK(0x1043, 0x1133, "ASUS UJ20ft", ALC269_FIXUP_AMIC), SND_PCI_QUIRK(0x1043, 0x1183, "ASUS K72DR", ALC269_FIXUP_AMIC), @@ -5057,14 +5193,19 @@ static const struct alc_model_fixup alc269_fixup_models[] = { {.id = ALC269_FIXUP_AMIC, .name = "laptop-amic"}, {.id = ALC269_FIXUP_DMIC, .name = "laptop-dmic"}, + {.id = ALC269_FIXUP_LENOVO_DOCK, .name = "lenovo-dock"}, {} }; static int alc269_fill_coef(struct hda_codec *codec) { + struct alc_spec *spec = codec->spec; int val; + if (spec->codec_variant != ALC269_TYPE_ALC269VB) + return 0; + if ((alc_get_coef0(codec) & 0x00ff) < 0x015) { alc_write_coef_idx(codec, 0xf, 0x960b); alc_write_coef_idx(codec, 0xe, 0x8817); @@ -5174,8 +5315,6 @@ alc_apply_fixup(codec, ALC_FIXUP_ACT_PROBE); - spec->vmaster_nid = 0x02; - codec->patch_ops = alc_patch_ops; #ifdef CONFIG_PM codec->patch_ops.resume = alc269_resume; @@ -5183,7 +5322,6 @@ spec->init_hook = alc_auto_init_std; spec->shutup = alc269_shutup; - alc_init_jacks(codec); #ifdef CONFIG_SND_HDA_POWER_SAVE if (!spec->loopback.amplist) spec->loopback.amplist = alc269_loopbacks; @@ -5222,11 +5360,41 @@ /* Pin config fixes */ enum { - PINFIX_FSC_AMILO_PI1505, + ALC861_FIXUP_FSC_AMILO_PI1505, + ALC861_FIXUP_AMP_VREF_0F, + ALC861_FIXUP_NO_JACK_DETECT, + ALC861_FIXUP_ASUS_A6RP, }; +/* On some laptops, VREF of pin 0x0f is abused for controlling the main amp */ +static void alc861_fixup_asus_amp_vref_0f(struct hda_codec *codec, + const struct alc_fixup *fix, int action) +{ + struct alc_spec *spec = codec->spec; + unsigned int val; + + if (action != ALC_FIXUP_ACT_INIT) + return; + val = snd_hda_codec_read(codec, 0x0f, 0, + AC_VERB_GET_PIN_WIDGET_CONTROL, 0); + if (!(val & (AC_PINCTL_IN_EN | AC_PINCTL_OUT_EN))) + val |= AC_PINCTL_IN_EN; + val |= AC_PINCTL_VREF_50; + snd_hda_codec_write(codec, 0x0f, 0, + AC_VERB_SET_PIN_WIDGET_CONTROL, val); + spec->keep_vref_in_automute = 1; +} + +/* suppress the jack-detection */ +static void alc_fixup_no_jack_detect(struct hda_codec *codec, + const struct alc_fixup *fix, int action) +{ + if (action == ALC_FIXUP_ACT_PRE_PROBE) + codec->no_jack_detect = 1; +} + static const struct alc_fixup alc861_fixups[] = { - [PINFIX_FSC_AMILO_PI1505] = { + [ALC861_FIXUP_FSC_AMILO_PI1505] = { .type = ALC_FIXUP_PINS, .v.pins = (const struct alc_pincfg[]) { { 0x0b, 0x0221101f }, /* HP */ @@ -5234,10 +5402,29 @@ { } } }, + [ALC861_FIXUP_AMP_VREF_0F] = { + .type = ALC_FIXUP_FUNC, + .v.func = alc861_fixup_asus_amp_vref_0f, + }, + [ALC861_FIXUP_NO_JACK_DETECT] = { + .type = ALC_FIXUP_FUNC, + .v.func = alc_fixup_no_jack_detect, + }, + [ALC861_FIXUP_ASUS_A6RP] = { + .type = ALC_FIXUP_FUNC, + .v.func = alc861_fixup_asus_amp_vref_0f, + .chained = true, + .chain_id = ALC861_FIXUP_NO_JACK_DETECT, + } }; static const struct snd_pci_quirk alc861_fixup_tbl[] = { - SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", PINFIX_FSC_AMILO_PI1505), + SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", ALC861_FIXUP_ASUS_A6RP), + SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", ALC861_FIXUP_AMP_VREF_0F), + SND_PCI_QUIRK(0x1462, 0x7254, "HP DX2200", ALC861_FIXUP_NO_JACK_DETECT), + SND_PCI_QUIRK(0x1584, 0x2b01, "Haier W18", ALC861_FIXUP_AMP_VREF_0F), + SND_PCI_QUIRK(0x1584, 0x0000, "Uniwill ECS M31EI", ALC861_FIXUP_AMP_VREF_0F), + SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", ALC861_FIXUP_FSC_AMILO_PI1505), {} }; @@ -5280,8 +5467,6 @@ set_beep_amp(spec, 0x23, 0, HDA_OUTPUT); } - spec->vmaster_nid = 0x03; - alc_apply_fixup(codec, ALC_FIXUP_ACT_PROBE); codec->patch_ops = alc_patch_ops; @@ -5327,8 +5512,8 @@ const struct alc_fixup *fix, int action) { if (action == ALC_FIXUP_ACT_PRE_PROBE) { - snd_hda_override_pin_caps(codec, 0x18, 0x00001714); - snd_hda_override_pin_caps(codec, 0x19, 0x0000171c); + snd_hda_override_pin_caps(codec, 0x18, 0x00000734); + snd_hda_override_pin_caps(codec, 0x19, 0x0000073c); } } @@ -5406,8 +5591,6 @@ set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); } - spec->vmaster_nid = 0x02; - alc_apply_fixup(codec, ALC_FIXUP_ACT_PROBE); codec->patch_ops = alc_patch_ops; @@ -5453,7 +5636,8 @@ const hda_nid_t *ssids; if (codec->vendor_id == 0x10ec0272 || codec->vendor_id == 0x10ec0663 || - codec->vendor_id == 0x10ec0665 || codec->vendor_id == 0x10ec0670) + codec->vendor_id == 0x10ec0665 || codec->vendor_id == 0x10ec0670 || + codec->vendor_id == 0x10ec0671) ssids = alc663_ssids; else ssids = alc662_ssids; @@ -5489,6 +5673,8 @@ ALC662_FIXUP_ASUS_MODE6, ALC662_FIXUP_ASUS_MODE7, ALC662_FIXUP_ASUS_MODE8, + ALC662_FIXUP_NO_JACK_DETECT, + ALC662_FIXUP_ZOTAC_Z68, }; static const struct alc_fixup alc662_fixups[] = { @@ -5634,6 +5820,17 @@ .chained = true, .chain_id = ALC662_FIXUP_SKU_IGNORE }, + [ALC662_FIXUP_NO_JACK_DETECT] = { + .type = ALC_FIXUP_FUNC, + .v.func = alc_fixup_no_jack_detect, + }, + [ALC662_FIXUP_ZOTAC_Z68] = { + .type = ALC_FIXUP_PINS, + .v.pins = (const struct alc_pincfg[]) { + { 0x1b, 0x02214020 }, /* Front HP */ + { } + } + }, }; static const struct snd_pci_quirk alc662_fixup_tbl[] = { @@ -5642,10 +5839,12 @@ SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE), SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE), SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800), + SND_PCI_QUIRK(0x1043, 0x8469, "ASUS mobo", ALC662_FIXUP_NO_JACK_DETECT), SND_PCI_QUIRK(0x105b, 0x0cd6, "Foxconn", ALC662_FIXUP_ASUS_MODE2), SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), 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(0x19da, 0xa130, "Zotac Z68", ALC662_FIXUP_ZOTAC_Z68), SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T), #if 0 @@ -5790,7 +5989,6 @@ break; } } - spec->vmaster_nid = 0x02; alc_apply_fixup(codec, ALC_FIXUP_ACT_PROBE); @@ -5798,8 +5996,6 @@ spec->init_hook = alc_auto_init_std; spec->shutup = alc_eapd_shutup; - alc_init_jacks(codec); - #ifdef CONFIG_SND_HDA_POWER_SAVE if (!spec->loopback.amplist) spec->loopback.amplist = alc662_loopbacks; @@ -5846,8 +6042,6 @@ if (!spec->no_analog && !spec->cap_mixer) set_capture_mixer(codec); - spec->vmaster_nid = 0x02; - codec->patch_ops = alc_patch_ops; spec->init_hook = alc_auto_init_std; @@ -5868,6 +6062,11 @@ { .id = 0x10ec0272, .name = "ALC272", .patch = patch_alc662 }, { .id = 0x10ec0275, .name = "ALC275", .patch = patch_alc269 }, { .id = 0x10ec0276, .name = "ALC276", .patch = patch_alc269 }, + { .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 }, + { .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 }, + { .id = 0x10ec0283, .name = "ALC283", .patch = patch_alc269 }, + { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 }, + { .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 }, { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660", .patch = patch_alc861 }, { .id = 0x10ec0660, .name = "ALC660-VD", .patch = patch_alc861vd }, @@ -5881,7 +6080,9 @@ .patch = patch_alc662 }, { .id = 0x10ec0663, .name = "ALC663", .patch = patch_alc662 }, { .id = 0x10ec0665, .name = "ALC665", .patch = patch_alc662 }, + { .id = 0x10ec0668, .name = "ALC668", .patch = patch_alc662 }, { .id = 0x10ec0670, .name = "ALC670", .patch = patch_alc662 }, + { .id = 0x10ec0671, .name = "ALC671", .patch = patch_alc662 }, { .id = 0x10ec0680, .name = "ALC680", .patch = patch_alc680 }, { .id = 0x10ec0880, .name = "ALC880", .patch = patch_alc880 }, { .id = 0x10ec0882, .name = "ALC882", .patch = patch_alc882 }, @@ -5898,6 +6099,7 @@ { .id = 0x10ec0889, .name = "ALC889", .patch = patch_alc882 }, { .id = 0x10ec0892, .name = "ALC892", .patch = patch_alc662 }, { .id = 0x10ec0899, .name = "ALC898", .patch = patch_alc882 }, + { .id = 0x10ec0900, .name = "ALC1150", .patch = patch_alc882 }, {} /* terminator */ }; --- linux-3.2.0.orig/sound/pci/hda/hda_codec.c +++ linux-3.2.0/sound/pci/hda/hda_codec.c @@ -33,6 +33,7 @@ #include #include "hda_local.h" #include "hda_beep.h" +#include "hda_jack.h" #include #define CREATE_TRACE_POINTS @@ -163,7 +164,7 @@ "Line Out", "Speaker", "HP Out", "CD", "SPDIF Out", "Digital Out", "Modem Line", "Modem Hand", "Line In", "Aux", "Mic", "Telephony", - "SPDIF In", "Digitial In", "Reserved", "Other" + "SPDIF In", "Digital In", "Reserved", "Other" }; return jack_types[(cfg & AC_DEFCFG_DEVICE) @@ -615,6 +616,9 @@ struct hda_bus_unsolicited *unsol; unsigned int wp; + if (!bus || !bus->workq) + return 0; + trace_hda_unsol_event(bus, res, res_ex); unsol = bus->unsol; if (!unsol) @@ -1446,7 +1450,7 @@ for (i = 0; i < c->cvt_setups.used; i++) { p = snd_array_elem(&c->cvt_setups, i); if (!p->active && p->stream_tag == stream_tag && - get_wcaps_type(get_wcaps(codec, p->nid)) == type) + get_wcaps_type(get_wcaps(c, p->nid)) == type) p->dirty = 1; } } @@ -1723,43 +1727,6 @@ } EXPORT_SYMBOL_HDA(snd_hda_override_pin_caps); -/** - * snd_hda_pin_sense - execute pin sense measurement - * @codec: the CODEC to sense - * @nid: the pin NID to sense - * - * Execute necessary pin sense measurement and return its Presence Detect, - * Impedance, ELD Valid etc. status bits. - */ -u32 snd_hda_pin_sense(struct hda_codec *codec, hda_nid_t nid) -{ - u32 pincap; - - if (!codec->no_trigger_sense) { - pincap = snd_hda_query_pin_caps(codec, nid); - if (pincap & AC_PINCAP_TRIG_REQ) /* need trigger? */ - snd_hda_codec_read(codec, nid, 0, - AC_VERB_SET_PIN_SENSE, 0); - } - return snd_hda_codec_read(codec, nid, 0, - AC_VERB_GET_PIN_SENSE, 0); -} -EXPORT_SYMBOL_HDA(snd_hda_pin_sense); - -/** - * snd_hda_jack_detect - query pin Presence Detect status - * @codec: the CODEC to sense - * @nid: the pin NID to sense - * - * Query and return the pin's Presence Detect status. - */ -int snd_hda_jack_detect(struct hda_codec *codec, hda_nid_t nid) -{ - u32 sense = snd_hda_pin_sense(codec, nid); - return !!(sense & AC_PINSENSE_PRESENCE); -} -EXPORT_SYMBOL_HDA(snd_hda_jack_detect); - /* * read the current volume to info * if the cache exists, read the cache value. @@ -1795,7 +1762,11 @@ parm = ch ? AC_AMP_SET_RIGHT : AC_AMP_SET_LEFT; parm |= direction == HDA_OUTPUT ? AC_AMP_SET_OUTPUT : AC_AMP_SET_INPUT; parm |= index << AC_AMP_SET_INDEX_SHIFT; - parm |= val; + if ((val & HDA_AMP_MUTE) && !(info->amp_caps & AC_AMPCAP_MUTE) && + (info->amp_caps & AC_AMPCAP_MIN_MUTE)) + ; /* set the zero value as a fake mute */ + else + parm |= val; snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, parm); info->vol[ch] = val; } @@ -2062,7 +2033,7 @@ val1 = -((caps & AC_AMPCAP_OFFSET) >> AC_AMPCAP_OFFSET_SHIFT); val1 += ofs; val1 = ((int)val1) * ((int)val2); - if (min_mute) + if (min_mute || (caps & AC_AMPCAP_MIN_MUTE)) val2 |= TLV_DB_SCALE_MUTE; if (put_user(SNDRV_CTL_TLVT_DB_SCALE, _tlv)) return -EFAULT; @@ -2308,6 +2279,8 @@ } if (codec->patch_ops.free) codec->patch_ops.free(codec); + memset(&codec->patch_ops, 0, sizeof(codec->patch_ops)); + snd_hda_jack_tbl_clear(codec); codec->proc_widget_hook = NULL; codec->spec = NULL; free_hda_cache(&codec->amp_cache); @@ -2320,7 +2293,6 @@ codec->num_pcms = 0; codec->pcm_info = NULL; codec->preset = NULL; - memset(&codec->patch_ops, 0, sizeof(codec->patch_ops)); codec->slave_dig_outs = NULL; codec->spdif_status_reset = 0; module_put(codec->owner); @@ -2767,7 +2739,7 @@ if (val & AC_DIG1_PROFESSIONAL) sbits |= IEC958_AES0_PROFESSIONAL; if (sbits & IEC958_AES0_PROFESSIONAL) { - if (sbits & AC_DIG1_EMPHASIS) + if (val & AC_DIG1_EMPHASIS) sbits |= IEC958_AES0_PRO_EMPHASIS_5015; } else { if (val & AC_DIG1_EMPHASIS) @@ -3364,6 +3336,7 @@ restore_pincfgs(codec); /* restore all current pin configs */ restore_shutup_pins(codec); hda_exec_init_verbs(codec); + snd_hda_jack_set_dirty_all(codec); if (codec->patch_ops.resume) codec->patch_ops.resume(codec); else { @@ -5004,8 +4977,8 @@ * "Rear", "Internal". */ -const char *hda_get_input_pin_label(struct hda_codec *codec, hda_nid_t pin, - int check_location) +static const char *hda_get_input_pin_label(struct hda_codec *codec, + hda_nid_t pin, bool check_location) { unsigned int def_conf; static const char * const mic_names[] = { @@ -5044,7 +5017,6 @@ return "Misc"; } } -EXPORT_SYMBOL_HDA(hda_get_input_pin_label); /* Check whether the location prefix needs to be added to the label. * If all mic-jacks are in the same location (e.g. rear panel), we don't @@ -5101,6 +5073,149 @@ } EXPORT_SYMBOL_HDA(hda_get_autocfg_input_label); +/* return the position of NID in the list, or -1 if not found */ +static int find_idx_in_nid_list(hda_nid_t nid, const hda_nid_t *list, int nums) +{ + int i; + for (i = 0; i < nums; i++) + if (list[i] == nid) + return i; + return -1; +} + +/* get a unique suffix or an index number */ +static const char *check_output_sfx(hda_nid_t nid, const hda_nid_t *pins, + int num_pins, int *indexp) +{ + static const char * const channel_sfx[] = { + " Front", " Surround", " CLFE", " Side" + }; + int i; + + i = find_idx_in_nid_list(nid, pins, num_pins); + if (i < 0) + return NULL; + if (num_pins == 1) + return ""; + if (num_pins > ARRAY_SIZE(channel_sfx)) { + if (indexp) + *indexp = i; + return ""; + } + return channel_sfx[i]; +} + +static int fill_audio_out_name(struct hda_codec *codec, hda_nid_t nid, + const struct auto_pin_cfg *cfg, + const char *name, char *label, int maxlen, + int *indexp) +{ + unsigned int def_conf = snd_hda_codec_get_pincfg(codec, nid); + int attr = snd_hda_get_input_pin_attr(def_conf); + const char *pfx = "", *sfx = ""; + + /* handle as a speaker if it's a fixed line-out */ + if (!strcmp(name, "Line-Out") && attr == INPUT_PIN_ATTR_INT) + name = "Speaker"; + /* check the location */ + switch (attr) { + case INPUT_PIN_ATTR_DOCK: + pfx = "Dock "; + break; + case INPUT_PIN_ATTR_FRONT: + pfx = "Front "; + break; + } + if (cfg) { + /* try to give a unique suffix if needed */ + sfx = check_output_sfx(nid, cfg->line_out_pins, cfg->line_outs, + indexp); + if (!sfx) + sfx = check_output_sfx(nid, cfg->speaker_pins, cfg->speaker_outs, + indexp); + if (!sfx) { + /* don't add channel suffix for Headphone controls */ + int idx = find_idx_in_nid_list(nid, cfg->hp_pins, + cfg->hp_outs); + if (idx >= 0) + *indexp = idx; + sfx = ""; + } + } + snprintf(label, maxlen, "%s%s%s", pfx, name, sfx); + return 1; +} + +/** + * snd_hda_get_pin_label - Get a label for the given I/O pin + * + * Get a label for the given pin. This function works for both input and + * output pins. When @cfg is given as non-NULL, the function tries to get + * an optimized label using hda_get_autocfg_input_label(). + * + * This function tries to give a unique label string for the pin as much as + * possible. For example, when the multiple line-outs are present, it adds + * the channel suffix like "Front", "Surround", etc (only when @cfg is given). + * If no unique name with a suffix is available and @indexp is non-NULL, the + * index number is stored in the pointer. + */ +int snd_hda_get_pin_label(struct hda_codec *codec, hda_nid_t nid, + const struct auto_pin_cfg *cfg, + char *label, int maxlen, int *indexp) +{ + unsigned int def_conf = snd_hda_codec_get_pincfg(codec, nid); + const char *name = NULL; + int i; + + if (indexp) + *indexp = 0; + if (get_defcfg_connect(def_conf) == AC_JACK_PORT_NONE) + return 0; + + switch (get_defcfg_device(def_conf)) { + case AC_JACK_LINE_OUT: + return fill_audio_out_name(codec, nid, cfg, "Line-Out", + label, maxlen, indexp); + case AC_JACK_SPEAKER: + return fill_audio_out_name(codec, nid, cfg, "Speaker", + label, maxlen, indexp); + case AC_JACK_HP_OUT: + return fill_audio_out_name(codec, nid, cfg, "Headphone", + label, maxlen, indexp); + case AC_JACK_SPDIF_OUT: + case AC_JACK_DIG_OTHER_OUT: + if (get_defcfg_location(def_conf) == AC_JACK_LOC_HDMI) + name = "HDMI"; + else + name = "SPDIF"; + if (cfg && indexp) { + i = find_idx_in_nid_list(nid, cfg->dig_out_pins, + cfg->dig_outs); + if (i >= 0) + *indexp = i; + } + break; + default: + if (cfg) { + for (i = 0; i < cfg->num_inputs; i++) { + if (cfg->inputs[i].pin != nid) + continue; + name = hda_get_autocfg_input_label(codec, cfg, i); + if (name) + break; + } + } + if (!name) + name = hda_get_input_pin_label(codec, nid, true); + break; + } + if (!name) + return 0; + strlcpy(label, name, maxlen); + return 1; +} +EXPORT_SYMBOL_HDA(snd_hda_get_pin_label); + /** * snd_hda_add_imux_item - Add an item to input_mux * @@ -5252,113 +5367,5 @@ } EXPORT_SYMBOL_HDA(snd_print_pcm_bits); -#ifdef CONFIG_SND_HDA_INPUT_JACK -/* - * Input-jack notification support - */ -struct hda_jack_item { - hda_nid_t nid; - int type; - struct snd_jack *jack; -}; - -static const char *get_jack_default_name(struct hda_codec *codec, hda_nid_t nid, - int type) -{ - switch (type) { - case SND_JACK_HEADPHONE: - return "Headphone"; - case SND_JACK_MICROPHONE: - return "Mic"; - case SND_JACK_LINEOUT: - return "Line-out"; - case SND_JACK_LINEIN: - return "Line-in"; - case SND_JACK_HEADSET: - return "Headset"; - case SND_JACK_VIDEOOUT: - return "HDMI/DP"; - default: - return "Misc"; - } -} - -static void hda_free_jack_priv(struct snd_jack *jack) -{ - struct hda_jack_item *jacks = jack->private_data; - jacks->nid = 0; - jacks->jack = NULL; -} - -int snd_hda_input_jack_add(struct hda_codec *codec, hda_nid_t nid, int type, - const char *name) -{ - struct hda_jack_item *jack; - int err; - - snd_array_init(&codec->jacks, sizeof(*jack), 32); - jack = snd_array_new(&codec->jacks); - if (!jack) - return -ENOMEM; - - jack->nid = nid; - jack->type = type; - if (!name) - name = get_jack_default_name(codec, nid, type); - err = snd_jack_new(codec->bus->card, name, type, &jack->jack); - if (err < 0) { - jack->nid = 0; - return err; - } - jack->jack->private_data = jack; - jack->jack->private_free = hda_free_jack_priv; - return 0; -} -EXPORT_SYMBOL_HDA(snd_hda_input_jack_add); - -void snd_hda_input_jack_report(struct hda_codec *codec, hda_nid_t nid) -{ - struct hda_jack_item *jacks = codec->jacks.list; - int i; - - if (!jacks) - return; - - for (i = 0; i < codec->jacks.used; i++, jacks++) { - unsigned int pin_ctl; - unsigned int present; - int type; - - if (jacks->nid != nid) - continue; - present = snd_hda_jack_detect(codec, nid); - type = jacks->type; - if (type == (SND_JACK_HEADPHONE | SND_JACK_LINEOUT)) { - pin_ctl = snd_hda_codec_read(codec, nid, 0, - AC_VERB_GET_PIN_WIDGET_CONTROL, 0); - type = (pin_ctl & AC_PINCTL_HP_EN) ? - SND_JACK_HEADPHONE : SND_JACK_LINEOUT; - } - snd_jack_report(jacks->jack, present ? type : 0); - } -} -EXPORT_SYMBOL_HDA(snd_hda_input_jack_report); - -/* free jack instances manually when clearing/reconfiguring */ -void snd_hda_input_jack_free(struct hda_codec *codec) -{ - if (!codec->bus->shutdown && codec->jacks.list) { - struct hda_jack_item *jacks = codec->jacks.list; - int i; - for (i = 0; i < codec->jacks.used; i++, jacks++) { - if (jacks->jack) - snd_device_free(codec->bus->card, jacks->jack); - } - } - snd_array_free(&codec->jacks); -} -EXPORT_SYMBOL_HDA(snd_hda_input_jack_free); -#endif /* CONFIG_SND_HDA_INPUT_JACK */ - MODULE_DESCRIPTION("HDA codec core"); MODULE_LICENSE("GPL"); --- linux-3.2.0.orig/sound/pci/hda/hda_codec.h +++ linux-3.2.0/sound/pci/hda/hda_codec.h @@ -298,6 +298,9 @@ #define AC_AMPCAP_MUTE (1<<31) /* mute capable */ #define AC_AMPCAP_MUTE_SHIFT 31 +/* driver-specific amp-caps: using bits 24-30 */ +#define AC_AMPCAP_MIN_MUTE (1 << 30) /* min-volume = mute */ + /* Connection list */ #define AC_CLIST_LENGTH (0x7f<<0) #define AC_CLIST_LONG (1<<7) @@ -855,6 +858,7 @@ unsigned int pins_shutup:1; /* pins are shut up */ unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */ unsigned int ignore_misc_bit:1; /* ignore MISC_NO_PRESENCE bit */ + unsigned int no_jack_detect:1; /* Machine has no jack-detection */ #ifdef CONFIG_SND_HDA_POWER_SAVE unsigned int power_on :1; /* current (global) power-state */ unsigned int power_transition :1; /* power-state in transition */ @@ -869,6 +873,9 @@ void (*proc_widget_hook)(struct snd_info_buffer *buffer, struct hda_codec *codec, hda_nid_t nid); + /* jack detection */ + struct snd_array jacktbl; + #ifdef CONFIG_SND_HDA_INPUT_JACK /* jack detection */ struct snd_array jacks; --- linux-3.2.0.orig/sound/pci/oxygen/oxygen_mixer.c +++ linux-3.2.0/sound/pci/oxygen/oxygen_mixer.c @@ -618,9 +618,12 @@ mutex_lock(&chip->mutex); reg = oxygen_read_ac97(chip, codec, index); mutex_unlock(&chip->mutex); - value->value.integer.value[0] = 31 - (reg & 0x1f); - if (stereo) - value->value.integer.value[1] = 31 - ((reg >> 8) & 0x1f); + if (!stereo) { + value->value.integer.value[0] = 31 - (reg & 0x1f); + } else { + value->value.integer.value[0] = 31 - ((reg >> 8) & 0x1f); + value->value.integer.value[1] = 31 - (reg & 0x1f); + } return 0; } @@ -636,14 +639,14 @@ mutex_lock(&chip->mutex); oldreg = oxygen_read_ac97(chip, codec, index); - newreg = oldreg; - newreg = (newreg & ~0x1f) | - (31 - (value->value.integer.value[0] & 0x1f)); - if (stereo) - newreg = (newreg & ~0x1f00) | - ((31 - (value->value.integer.value[1] & 0x1f)) << 8); - else - newreg = (newreg & ~0x1f00) | ((newreg & 0x1f) << 8); + if (!stereo) { + newreg = oldreg & ~0x1f; + newreg |= 31 - (value->value.integer.value[0] & 0x1f); + } else { + newreg = oldreg & ~0x1f1f; + newreg |= (31 - (value->value.integer.value[0] & 0x1f)) << 8; + newreg |= 31 - (value->value.integer.value[1] & 0x1f); + } change = newreg != oldreg; if (change) oxygen_write_ac97(chip, codec, index, newreg); --- linux-3.2.0.orig/sound/pci/oxygen/xonar_wm87x6.c +++ linux-3.2.0/sound/pci/oxygen/xonar_wm87x6.c @@ -177,6 +177,7 @@ struct xonar_wm87x6 *data = chip->model_data; wm8776_write(chip, WM8776_RESET, 0); + wm8776_write(chip, WM8776_PHASESWAP, WM8776_PH_MASK); wm8776_write(chip, WM8776_DACCTRL1, WM8776_DZCEN | WM8776_PL_LEFT_LEFT | WM8776_PL_RIGHT_RIGHT); wm8776_write(chip, WM8776_DACMUTE, chip->dac_mute ? WM8776_DMUTE : 0); --- linux-3.2.0.orig/sound/pci/emu10k1/emu10k1_main.c +++ linux-3.2.0/sound/pci/emu10k1/emu10k1_main.c @@ -1416,6 +1416,15 @@ .ca0108_chip = 1, .spk71 = 1, .emu_model = EMU_MODEL_EMU1010B}, /* EMU 1010 new revision */ + /* Tested by Maxim Kachur 17th Oct 2012. */ + /* This is MAEM8986, 0202 is MAEM8980 */ + {.vendor = 0x1102, .device = 0x0008, .subsystem = 0x40071102, + .driver = "Audigy2", .name = "E-mu 1010 PCIe [MAEM8986]", + .id = "EMU1010", + .emu10k2_chip = 1, + .ca0108_chip = 1, + .spk71 = 1, + .emu_model = EMU_MODEL_EMU1010B}, /* EMU 1010 PCIe */ /* Tested by James@superbug.co.uk 8th July 2005. */ /* This is MAEM8810, 0202 is MAEM8820 */ {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x40011102, --- linux-3.2.0.orig/sound/pci/echoaudio/echoaudio_dsp.c +++ linux-3.2.0/sound/pci/echoaudio/echoaudio_dsp.c @@ -475,7 +475,7 @@ const struct firmware *fw; int box_type, err; - if (snd_BUG_ON(!chip->dsp_code_to_load || !chip->comm_page)) + if (snd_BUG_ON(!chip->comm_page)) return -EPERM; /* See if the ASIC is present and working - only if the DSP is already loaded */ --- linux-3.2.0.orig/sound/pci/ice1712/prodigy_hifi.c +++ linux-3.2.0/sound/pci/ice1712/prodigy_hifi.c @@ -297,6 +297,7 @@ } static const DECLARE_TLV_DB_SCALE(db_scale_wm_dac, -12700, 100, 1); +static const DECLARE_TLV_DB_LINEAR(ak4396_db_scale, TLV_DB_GAIN_MUTE, 0); static struct snd_kcontrol_new prodigy_hd2_controls[] __devinitdata = { { @@ -307,7 +308,7 @@ .info = ak4396_dac_vol_info, .get = ak4396_dac_vol_get, .put = ak4396_dac_vol_put, - .tlv = { .p = db_scale_wm_dac }, + .tlv = { .p = ak4396_db_scale }, }, }; --- linux-3.2.0.orig/sound/pci/ice1712/amp.c +++ linux-3.2.0/sound/pci/ice1712/amp.c @@ -68,8 +68,11 @@ static int __devinit snd_vt1724_amp_add_controls(struct snd_ice1712 *ice) { - /* we use pins 39 and 41 of the VT1616 for left and right read outputs */ - snd_ac97_write_cache(ice->ac97, 0x5a, snd_ac97_read(ice->ac97, 0x5a) & ~0x8000); + if (ice->ac97) + /* we use pins 39 and 41 of the VT1616 for left and right + read outputs */ + snd_ac97_write_cache(ice->ac97, 0x5a, + snd_ac97_read(ice->ac97, 0x5a) & ~0x8000); return 0; } --- linux-3.2.0.orig/sound/pci/ac97/ac97_codec.c +++ linux-3.2.0/sound/pci/ac97/ac97_codec.c @@ -1271,6 +1271,8 @@ tmp.index = ac97->num; kctl = snd_ctl_new1(&tmp, ac97); } + if (!kctl) + return -ENOMEM; if (reg >= AC97_PHONE && reg <= AC97_PCM) set_tlv_db_scale(kctl, db_scale_5bit_12db_max); else --- linux-3.2.0.orig/sound/pci/ali5451/ali5451.c +++ linux-3.2.0/sound/pci/ali5451/ali5451.c @@ -1435,7 +1435,7 @@ spin_lock(&codec->reg_lock); if (!pvoice->running) { - spin_unlock_irq(&codec->reg_lock); + spin_unlock(&codec->reg_lock); return 0; } outb(pvoice->number, ALI_REG(codec, ALI_GC_CIR)); --- linux-3.2.0.orig/sound/arm/pxa2xx-ac97-lib.c +++ linux-3.2.0/sound/arm/pxa2xx-ac97-lib.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -147,6 +148,8 @@ static inline void pxa_ac97_cold_pxa27x(void) { + unsigned int timeout; + GCR &= GCR_COLD_RST; /* clear everything but nCRST */ GCR &= ~GCR_COLD_RST; /* then assert nCRST */ @@ -156,8 +159,10 @@ clk_enable(ac97conf_clk); udelay(5); clk_disable(ac97conf_clk); - GCR = GCR_COLD_RST; - udelay(50); + GCR = GCR_COLD_RST | GCR_WARM_RST; + timeout = 100; /* wait for the codec-ready bit to be set */ + while (!((GSR | gsr_bits) & (GSR_PCR | GSR_SCR)) && timeout--) + mdelay(1); } #endif @@ -339,8 +344,21 @@ } if (cpu_is_pxa27x()) { - /* Use GPIO 113 as AC97 Reset on Bulverde */ + /* + * This gpio is needed for a work-around to a bug in the ac97 + * controller during warm reset. The direction and level is set + * here so that it is an output driven high when switching from + * AC97_nRESET alt function to generic gpio. + */ + ret = gpio_request_one(reset_gpio, GPIOF_OUT_INIT_HIGH, + "pxa27x ac97 reset"); + if (ret < 0) { + pr_err("%s: gpio_request_one() failed: %d\n", + __func__, ret); + goto err_conf; + } pxa27x_assert_ac97reset(reset_gpio, 0); + ac97conf_clk = clk_get(&dev->dev, "AC97CONFCLK"); if (IS_ERR(ac97conf_clk)) { ret = PTR_ERR(ac97conf_clk); @@ -383,6 +401,8 @@ void pxa2xx_ac97_hw_remove(struct platform_device *dev) { + if (cpu_is_pxa27x()) + gpio_free(reset_gpio); GCR |= GCR_ACLINK_OFF; free_irq(IRQ_AC97, NULL); if (ac97conf_clk) { --- linux-3.2.0.orig/sound/arm/pxa2xx-pcm-lib.c +++ linux-3.2.0/sound/arm/pxa2xx-pcm-lib.c @@ -166,7 +166,9 @@ } else { printk(KERN_ERR "%s: DMA error on channel %d (DCSR=%#x)\n", rtd->params->name, dma_ch, dcsr); + snd_pcm_stream_lock(substream); snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN); + snd_pcm_stream_unlock(substream); } } EXPORT_SYMBOL(pxa2xx_pcm_dma_irq); --- linux-3.2.0.orig/sound/core/pcm.c +++ linux-3.2.0/sound/core/pcm.c @@ -1046,11 +1046,19 @@ if (list_empty(&pcm->list)) goto unlock; + mutex_lock(&pcm->open_mutex); + wake_up(&pcm->open_wait); list_del_init(&pcm->list); for (cidx = 0; cidx < 2; cidx++) - for (substream = pcm->streams[cidx].substream; substream; substream = substream->next) - if (substream->runtime) + for (substream = pcm->streams[cidx].substream; substream; substream = substream->next) { + snd_pcm_stream_lock_irq(substream); + if (substream->runtime) { substream->runtime->status->state = SNDRV_PCM_STATE_DISCONNECTED; + wake_up(&substream->runtime->sleep); + wake_up(&substream->runtime->tsleep); + } + snd_pcm_stream_unlock_irq(substream); + } list_for_each_entry(notify, &snd_pcm_notify_list, list) { notify->n_disconnect(pcm); } @@ -1066,6 +1074,7 @@ } snd_unregister_device(devtype, pcm->card, pcm->device); } + mutex_unlock(&pcm->open_mutex); unlock: mutex_unlock(®ister_mutex); return 0; --- linux-3.2.0.orig/sound/core/Kconfig +++ linux-3.2.0/sound/core/Kconfig @@ -207,6 +207,9 @@ config SND_VMASTER bool +config SND_KCTL_JACK + bool + config SND_DMA_SGBUF def_bool y depends on X86 --- linux-3.2.0.orig/sound/core/hwdep.c +++ linux-3.2.0/sound/core/hwdep.c @@ -100,8 +100,10 @@ if (hw == NULL) return -ENODEV; - if (!try_module_get(hw->card->module)) + if (!try_module_get(hw->card->module)) { + snd_card_unref(hw->card); return -EFAULT; + } init_waitqueue_entry(&wait, current); add_wait_queue(&hw->open_wait, &wait); @@ -129,6 +131,10 @@ mutex_unlock(&hw->open_mutex); schedule(); mutex_lock(&hw->open_mutex); + if (hw->card->shutdown) { + err = -ENODEV; + break; + } if (signal_pending(current)) { err = -ERESTARTSYS; break; @@ -148,6 +154,7 @@ mutex_unlock(&hw->open_mutex); if (err < 0) module_put(hw->card->module); + snd_card_unref(hw->card); return err; } @@ -459,12 +466,15 @@ mutex_unlock(®ister_mutex); return -EINVAL; } + mutex_lock(&hwdep->open_mutex); + wake_up(&hwdep->open_wait); #ifdef CONFIG_SND_OSSEMUL if (hwdep->ossreg) snd_unregister_oss_device(hwdep->oss_type, hwdep->card, hwdep->device); #endif snd_unregister_device(SNDRV_DEVICE_TYPE_HWDEP, hwdep->card, hwdep->device); list_del_init(&hwdep->list); + mutex_unlock(&hwdep->open_mutex); mutex_unlock(®ister_mutex); return 0; } --- linux-3.2.0.orig/sound/core/ctljack.c +++ linux-3.2.0/sound/core/ctljack.c @@ -0,0 +1,56 @@ +/* + * Helper functions for jack-detection kcontrols + * + * Copyright (c) 2011 Takashi Iwai + * + * 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 + +#define jack_detect_kctl_info snd_ctl_boolean_mono_info + +static int jack_detect_kctl_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + ucontrol->value.integer.value[0] = kcontrol->private_value; + return 0; +} + +static struct snd_kcontrol_new jack_detect_kctl = { + /* name is filled later */ + .iface = SNDRV_CTL_ELEM_IFACE_CARD, + .access = SNDRV_CTL_ELEM_ACCESS_READ, + .info = jack_detect_kctl_info, + .get = jack_detect_kctl_get, +}; + +struct snd_kcontrol * +snd_kctl_jack_new(const char *name, int idx, void *private_data) +{ + struct snd_kcontrol *kctl; + kctl = snd_ctl_new1(&jack_detect_kctl, private_data); + if (!kctl) + return NULL; + snprintf(kctl->id.name, sizeof(kctl->id.name), "%s Jack", name); + kctl->id.index = idx; + kctl->private_value = 0; + return kctl; +} +EXPORT_SYMBOL_GPL(snd_kctl_jack_new); + +void snd_kctl_jack_report(struct snd_card *card, + struct snd_kcontrol *kctl, bool status) +{ + if (kctl->private_value == status) + return; + kctl->private_value = status; + snd_ctl_notify(card, SNDRV_CTL_EVENT_MASK_VALUE, &kctl->id); +} +EXPORT_SYMBOL_GPL(snd_kctl_jack_report); --- linux-3.2.0.orig/sound/core/Makefile +++ linux-3.2.0/sound/core/Makefile @@ -7,6 +7,7 @@ snd-$(CONFIG_ISA_DMA_API) += isadma.o snd-$(CONFIG_SND_OSSEMUL) += sound_oss.o info_oss.o snd-$(CONFIG_SND_VMASTER) += vmaster.o +snd-$(CONFIG_SND_KCTL_JACK) += ctljack.o snd-$(CONFIG_SND_JACK) += jack.o snd-pcm-objs := pcm.o pcm_native.o pcm_lib.o pcm_timer.o pcm_misc.o \ --- linux-3.2.0.orig/sound/core/vmaster.c +++ linux-3.2.0/sound/core/vmaster.c @@ -209,7 +209,10 @@ } if (!changed) return 0; - return slave_put_val(slave, ucontrol); + err = slave_put_val(slave, ucontrol); + if (err < 0) + return err; + return 1; } static int slave_tlv_cmd(struct snd_kcontrol *kcontrol, --- linux-3.2.0.orig/sound/core/init.c +++ linux-3.2.0/sound/core/init.c @@ -212,6 +212,7 @@ spin_lock_init(&card->files_lock); INIT_LIST_HEAD(&card->files_list); init_waitqueue_head(&card->shutdown_sleep); + atomic_set(&card->refcount, 0); #ifdef CONFIG_PM mutex_init(&card->power_lock); init_waitqueue_head(&card->power_sleep); @@ -445,21 +446,36 @@ return 0; } +/** + * snd_card_unref - release the reference counter + * @card: the card instance + * + * Decrements the reference counter. When it reaches to zero, wake up + * the sleeper and call the destructor if needed. + */ +void snd_card_unref(struct snd_card *card) +{ + if (atomic_dec_and_test(&card->refcount)) { + wake_up(&card->shutdown_sleep); + if (card->free_on_last_close) + snd_card_do_free(card); + } +} +EXPORT_SYMBOL(snd_card_unref); + int snd_card_free_when_closed(struct snd_card *card) { - int free_now = 0; - int ret = snd_card_disconnect(card); - if (ret) - return ret; + int ret; - spin_lock(&card->files_lock); - if (list_empty(&card->files_list)) - free_now = 1; - else - card->free_on_last_close = 1; - spin_unlock(&card->files_lock); + atomic_inc(&card->refcount); + ret = snd_card_disconnect(card); + if (ret) { + atomic_dec(&card->refcount); + return ret; + } - if (free_now) + card->free_on_last_close = 1; + if (atomic_dec_and_test(&card->refcount)) snd_card_do_free(card); return 0; } @@ -473,7 +489,7 @@ return ret; /* wait, until all devices are ready for the free operation */ - wait_event(card->shutdown_sleep, list_empty(&card->files_list)); + wait_event(card->shutdown_sleep, !atomic_read(&card->refcount)); snd_card_do_free(card); return 0; } @@ -854,6 +870,7 @@ return -ENODEV; } list_add(&mfile->list, &card->files_list); + atomic_inc(&card->refcount); spin_unlock(&card->files_lock); return 0; } @@ -876,7 +893,6 @@ int snd_card_file_remove(struct snd_card *card, struct file *file) { struct snd_monitor_file *mfile, *found = NULL; - int last_close = 0; spin_lock(&card->files_lock); list_for_each_entry(mfile, &card->files_list, list) { @@ -891,19 +907,13 @@ break; } } - if (list_empty(&card->files_list)) - last_close = 1; spin_unlock(&card->files_lock); - if (last_close) { - wake_up(&card->shutdown_sleep); - if (card->free_on_last_close) - snd_card_do_free(card); - } if (!found) { snd_printk(KERN_ERR "ALSA card file remove problem (%p)\n", file); return -ENOENT; } kfree(found); + snd_card_unref(card); return 0; } --- linux-3.2.0.orig/sound/core/sound_oss.c +++ linux-3.2.0/sound/core/sound_oss.c @@ -40,6 +40,9 @@ static struct snd_minor *snd_oss_minors[SNDRV_OSS_MINORS]; static DEFINE_MUTEX(sound_oss_mutex); +/* NOTE: This function increments the refcount of the associated card like + * snd_lookup_minor_data(); the caller must call snd_card_unref() appropriately + */ void *snd_lookup_oss_minor_data(unsigned int minor, int type) { struct snd_minor *mreg; @@ -49,9 +52,11 @@ return NULL; mutex_lock(&sound_oss_mutex); mreg = snd_oss_minors[minor]; - if (mreg && mreg->type == type) + if (mreg && mreg->type == type) { private_data = mreg->private_data; - else + if (private_data && mreg->card_ptr) + atomic_inc(&mreg->card_ptr->refcount); + } else private_data = NULL; mutex_unlock(&sound_oss_mutex); return private_data; @@ -123,6 +128,7 @@ preg->device = dev; preg->f_ops = f_ops; preg->private_data = private_data; + preg->card_ptr = card; mutex_lock(&sound_oss_mutex); snd_oss_minors[minor] = preg; minor_unit = SNDRV_MINOR_OSS_DEVICE(minor); --- linux-3.2.0.orig/sound/core/pcm_native.c +++ linux-3.2.0/sound/core/pcm_native.c @@ -369,6 +369,14 @@ return usecs; } +static void snd_pcm_set_state(struct snd_pcm_substream *substream, int state) +{ + snd_pcm_stream_lock_irq(substream); + if (substream->runtime->status->state != SNDRV_PCM_STATE_DISCONNECTED) + substream->runtime->status->state = state; + snd_pcm_stream_unlock_irq(substream); +} + static int snd_pcm_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params) { @@ -452,7 +460,7 @@ runtime->boundary *= 2; snd_pcm_timer_resolution_change(substream); - runtime->status->state = SNDRV_PCM_STATE_SETUP; + snd_pcm_set_state(substream, SNDRV_PCM_STATE_SETUP); if (pm_qos_request_active(&substream->latency_pm_qos_req)) pm_qos_remove_request(&substream->latency_pm_qos_req); @@ -464,7 +472,7 @@ /* hardware might be unusable from this time, so we force application to retry to set the correct hardware parameter settings */ - runtime->status->state = SNDRV_PCM_STATE_OPEN; + snd_pcm_set_state(substream, SNDRV_PCM_STATE_OPEN); if (substream->ops->hw_free != NULL) substream->ops->hw_free(substream); return err; @@ -512,7 +520,7 @@ return -EBADFD; if (substream->ops->hw_free) result = substream->ops->hw_free(substream); - runtime->status->state = SNDRV_PCM_STATE_OPEN; + snd_pcm_set_state(substream, SNDRV_PCM_STATE_OPEN); pm_qos_remove_request(&substream->latency_pm_qos_req); return result; } @@ -1320,7 +1328,7 @@ { struct snd_pcm_runtime *runtime = substream->runtime; runtime->control->appl_ptr = runtime->status->hw_ptr; - runtime->status->state = SNDRV_PCM_STATE_PREPARED; + snd_pcm_set_state(substream, SNDRV_PCM_STATE_PREPARED); } static struct action_ops snd_pcm_action_prepare = { @@ -1500,6 +1508,10 @@ down_read(&snd_pcm_link_rwsem); snd_pcm_stream_lock_irq(substream); remove_wait_queue(&to_check->sleep, &wait); + if (card->shutdown) { + result = -ENODEV; + break; + } if (tout == 0) { if (substream->runtime->status->state == SNDRV_PCM_STATE_SUSPENDED) result = -ESTRPIPE; @@ -1620,6 +1632,7 @@ _end: write_unlock_irq(&snd_pcm_link_rwlock); up_write(&snd_pcm_link_rwsem); + snd_card_unref(substream1->pcm->card); fput(file); return res; } @@ -2092,7 +2105,10 @@ return err; pcm = snd_lookup_minor_data(iminor(inode), SNDRV_DEVICE_TYPE_PCM_PLAYBACK); - return snd_pcm_open(file, pcm, SNDRV_PCM_STREAM_PLAYBACK); + err = snd_pcm_open(file, pcm, SNDRV_PCM_STREAM_PLAYBACK); + if (pcm) + snd_card_unref(pcm->card); + return err; } static int snd_pcm_capture_open(struct inode *inode, struct file *file) @@ -2103,7 +2119,10 @@ return err; pcm = snd_lookup_minor_data(iminor(inode), SNDRV_DEVICE_TYPE_PCM_CAPTURE); - return snd_pcm_open(file, pcm, SNDRV_PCM_STREAM_CAPTURE); + err = snd_pcm_open(file, pcm, SNDRV_PCM_STREAM_CAPTURE); + if (pcm) + snd_card_unref(pcm->card); + return err; } static int snd_pcm_open(struct file *file, struct snd_pcm *pcm, int stream) @@ -2140,6 +2159,10 @@ mutex_unlock(&pcm->open_mutex); schedule(); mutex_lock(&pcm->open_mutex); + if (pcm->card->shutdown) { + err = -ENODEV; + break; + } if (signal_pending(current)) { err = -ERESTARTSYS; break; @@ -3181,18 +3204,10 @@ int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream, struct vm_area_struct *area) { - long size; - unsigned long offset; + struct snd_pcm_runtime *runtime = substream->runtime;; area->vm_page_prot = pgprot_noncached(area->vm_page_prot); - area->vm_flags |= VM_IO; - size = area->vm_end - area->vm_start; - offset = area->vm_pgoff << PAGE_SHIFT; - if (io_remap_pfn_range(area, area->vm_start, - (substream->runtime->dma_addr + offset) >> PAGE_SHIFT, - size, area->vm_page_prot)) - return -EAGAIN; - return 0; + return vm_iomap_memory(area, runtime->dma_addr, runtime->dma_bytes); } EXPORT_SYMBOL(snd_pcm_lib_mmap_iomem); --- linux-3.2.0.orig/sound/core/sound.c +++ linux-3.2.0/sound/core/sound.c @@ -99,6 +99,10 @@ * * Checks that a minor device with the specified type is registered, and returns * its user data pointer. + * + * This function increments the reference counter of the card instance + * if an associated instance with the given minor number and type is found. + * The caller must call snd_card_unref() appropriately later. */ void *snd_lookup_minor_data(unsigned int minor, int type) { @@ -109,9 +113,11 @@ return NULL; mutex_lock(&sound_mutex); mreg = snd_minors[minor]; - if (mreg && mreg->type == type) + if (mreg && mreg->type == type) { private_data = mreg->private_data; - else + if (private_data && mreg->card_ptr) + atomic_inc(&mreg->card_ptr->refcount); + } else private_data = NULL; mutex_unlock(&sound_mutex); return private_data; @@ -275,6 +281,7 @@ preg->device = dev; preg->f_ops = f_ops; preg->private_data = private_data; + preg->card_ptr = card; mutex_lock(&sound_mutex); #ifdef CONFIG_SND_DYNAMIC_MINORS minor = snd_find_free_minor(type); --- linux-3.2.0.orig/sound/core/rawmidi.c +++ linux-3.2.0/sound/core/rawmidi.c @@ -379,8 +379,10 @@ if (rmidi == NULL) return -ENODEV; - if (!try_module_get(rmidi->card->module)) + if (!try_module_get(rmidi->card->module)) { + snd_card_unref(rmidi->card); return -ENXIO; + } mutex_lock(&rmidi->open_mutex); card = rmidi->card; @@ -422,6 +424,10 @@ mutex_unlock(&rmidi->open_mutex); schedule(); mutex_lock(&rmidi->open_mutex); + if (rmidi->card->shutdown) { + err = -ENODEV; + break; + } if (signal_pending(current)) { err = -ERESTARTSYS; break; @@ -440,6 +446,7 @@ #endif file->private_data = rawmidi_file; mutex_unlock(&rmidi->open_mutex); + snd_card_unref(rmidi->card); return 0; __error: @@ -447,6 +454,7 @@ __error_card: mutex_unlock(&rmidi->open_mutex); module_put(rmidi->card->module); + snd_card_unref(rmidi->card); return err; } @@ -991,6 +999,8 @@ spin_unlock_irq(&runtime->lock); schedule(); remove_wait_queue(&runtime->sleep, &wait); + if (rfile->rmidi->card->shutdown) + return -ENODEV; if (signal_pending(current)) return result > 0 ? result : -ERESTARTSYS; if (!runtime->avail) @@ -1234,6 +1244,8 @@ spin_unlock_irq(&runtime->lock); timeout = schedule_timeout(30 * HZ); remove_wait_queue(&runtime->sleep, &wait); + if (rfile->rmidi->card->shutdown) + return -ENODEV; if (signal_pending(current)) return result > 0 ? result : -ERESTARTSYS; if (!runtime->avail && !timeout) @@ -1609,9 +1621,20 @@ static int snd_rawmidi_dev_disconnect(struct snd_device *device) { struct snd_rawmidi *rmidi = device->device_data; + int dir; mutex_lock(®ister_mutex); + mutex_lock(&rmidi->open_mutex); + wake_up(&rmidi->open_wait); list_del_init(&rmidi->list); + for (dir = 0; dir < 2; dir++) { + struct snd_rawmidi_substream *s; + list_for_each_entry(s, &rmidi->streams[dir].substreams, list) { + if (s->runtime) + wake_up(&s->runtime->sleep); + } + } + #ifdef CONFIG_SND_OSSEMUL if (rmidi->ossreg) { if ((int)rmidi->device == midi_map[rmidi->card->number]) { @@ -1626,6 +1649,7 @@ } #endif /* CONFIG_SND_OSSEMUL */ snd_unregister_device(SNDRV_DEVICE_TYPE_RAWMIDI, rmidi->card, rmidi->device); + mutex_unlock(&rmidi->open_mutex); mutex_unlock(®ister_mutex); return 0; } --- linux-3.2.0.orig/sound/core/control.c +++ linux-3.2.0/sound/core/control.c @@ -86,6 +86,7 @@ write_lock_irqsave(&card->ctl_files_rwlock, flags); list_add_tail(&ctl->list, &card->ctl_files); write_unlock_irqrestore(&card->ctl_files_rwlock, flags); + snd_card_unref(card); return 0; __error: @@ -93,6 +94,8 @@ __error2: snd_card_file_remove(card, file); __error1: + if (card) + snd_card_unref(card); return err; } @@ -1433,6 +1436,8 @@ spin_unlock_irq(&ctl->read_lock); schedule(); remove_wait_queue(&ctl->change_sleep, &wait); + if (ctl->card->shutdown) + return -ENODEV; if (signal_pending(current)) return -ERESTARTSYS; spin_lock_irq(&ctl->read_lock); --- linux-3.2.0.orig/sound/core/oss/mixer_oss.c +++ linux-3.2.0/sound/core/oss/mixer_oss.c @@ -52,14 +52,19 @@ SNDRV_OSS_DEVICE_TYPE_MIXER); if (card == NULL) return -ENODEV; - if (card->mixer_oss == NULL) + if (card->mixer_oss == NULL) { + snd_card_unref(card); return -ENODEV; + } err = snd_card_file_add(card, file); - if (err < 0) + if (err < 0) { + snd_card_unref(card); return err; + } fmixer = kzalloc(sizeof(*fmixer), GFP_KERNEL); if (fmixer == NULL) { snd_card_file_remove(card, file); + snd_card_unref(card); return -ENOMEM; } fmixer->card = card; @@ -68,8 +73,10 @@ if (!try_module_get(card->module)) { kfree(fmixer); snd_card_file_remove(card, file); + snd_card_unref(card); return -EFAULT; } + snd_card_unref(card); return 0; } --- linux-3.2.0.orig/sound/core/oss/pcm_oss.c +++ linux-3.2.0/sound/core/oss/pcm_oss.c @@ -2441,6 +2441,10 @@ mutex_unlock(&pcm->open_mutex); schedule(); mutex_lock(&pcm->open_mutex); + if (pcm->card->shutdown) { + err = -ENODEV; + break; + } if (signal_pending(current)) { err = -ERESTARTSYS; break; @@ -2450,6 +2454,7 @@ mutex_unlock(&pcm->open_mutex); if (err < 0) goto __error; + snd_card_unref(pcm->card); return err; __error: @@ -2457,6 +2462,8 @@ __error2: snd_card_file_remove(pcm->card, file); __error1: + if (pcm) + snd_card_unref(pcm->card); return err; } --- linux-3.2.0.orig/sound/core/seq/seq_timer.c +++ linux-3.2.0/sound/core/seq/seq_timer.c @@ -290,10 +290,10 @@ tid.device = SNDRV_TIMER_GLOBAL_SYSTEM; err = snd_timer_open(&t, str, &tid, q->queue); } - if (err < 0) { - snd_printk(KERN_ERR "seq fatal error: cannot create timer (%i)\n", err); - return err; - } + } + if (err < 0) { + snd_printk(KERN_ERR "seq fatal error: cannot create timer (%i)\n", err); + return err; } t->callback = snd_seq_timer_interrupt; t->callback_data = q; --- linux-3.2.0.orig/block/genhd.c +++ linux-3.2.0/block/genhd.c @@ -26,7 +26,7 @@ struct kobject *block_depr; /* for extended dynamic devt allocation, currently only one major is used */ -#define MAX_EXT_DEVT (1 << MINORBITS) +#define NR_EXT_DEVT (1 << MINORBITS) /* For extended devt allocation. ext_devt_mutex prevents look up * results from going away underneath its user. @@ -36,6 +36,7 @@ static struct device_type disk_type; +static void disk_alloc_events(struct gendisk *disk); static void disk_add_events(struct gendisk *disk); static void disk_del_events(struct gendisk *disk); static void disk_release_events(struct gendisk *disk); @@ -420,17 +421,18 @@ do { if (!idr_pre_get(&ext_devt_idr, GFP_KERNEL)) return -ENOMEM; + mutex_lock(&ext_devt_mutex); rc = idr_get_new(&ext_devt_idr, part, &idx); + if (!rc && idx >= NR_EXT_DEVT) { + idr_remove(&ext_devt_idr, idx); + rc = -EBUSY; + } + mutex_unlock(&ext_devt_mutex); } while (rc == -EAGAIN); if (rc) return rc; - if (idx > MAX_EXT_DEVT) { - idr_remove(&ext_devt_idr, idx); - return -EBUSY; - } - *devt = MKDEV(BLOCK_EXT_MAJOR, blk_mangle_minor(idx)); return 0; } @@ -517,7 +519,7 @@ ddev->parent = disk->driverfs_dev; - dev_set_name(ddev, disk->disk_name); + dev_set_name(ddev, "%s", disk->disk_name); /* delay uevents, until we scanned partition table */ dev_set_uevent_suppress(ddev, 1); @@ -602,6 +604,8 @@ disk->major = MAJOR(devt); disk->first_minor = MINOR(devt); + disk_alloc_events(disk); + /* Register BDI before referencing it from bdev */ bdi = &disk->queue->backing_dev_info; bdi_register_dev(bdi, disk_devt(disk)); @@ -642,7 +646,6 @@ disk_part_iter_exit(&piter); invalidate_partition(disk, 0); - blk_free_devt(disk_to_dev(disk)->devt); set_capacity(disk, 0); disk->flags &= ~GENHD_FL_UP; @@ -660,6 +663,7 @@ if (!sysfs_deprecated) sysfs_remove_link(block_depr, dev_name(disk_to_dev(disk))); device_del(disk_to_dev(disk)); + blk_free_devt(disk_to_dev(disk)->devt); } EXPORT_SYMBOL(del_gendisk); @@ -741,7 +745,7 @@ struct hd_struct *part; char name_buf[BDEVNAME_SIZE]; char devt_buf[BDEVT_SIZE]; - u8 uuid[PARTITION_META_INFO_UUIDLTH * 2 + 1]; + char uuid_buf[PARTITION_META_INFO_UUIDLTH * 2 + 5]; /* * Don't show empty devices or things that have been @@ -760,14 +764,16 @@ while ((part = disk_part_iter_next(&piter))) { bool is_part0 = part == &disk->part0; - uuid[0] = 0; + uuid_buf[0] = '\0'; if (part->info) - part_unpack_uuid(part->info->uuid, uuid); + snprintf(uuid_buf, sizeof(uuid_buf), "%pU", + part->info->uuid); printk("%s%s %10llu %s %s", is_part0 ? "" : " ", bdevt_str(part_devt(part), devt_buf), (unsigned long long)part->nr_sects >> 1, - disk_name(disk, part->partno, name_buf), uuid); + disk_name(disk, part->partno, name_buf), + uuid_buf); if (is_part0) { if (disk->driverfs_dev != NULL && disk->driverfs_dev->driver != NULL) @@ -1476,9 +1482,9 @@ intv = disk_events_poll_jiffies(disk); set_timer_slack(&ev->dwork.timer, intv / 4); if (check_now) - queue_delayed_work(system_nrt_wq, &ev->dwork, 0); + queue_delayed_work(system_nrt_freezable_wq, &ev->dwork, 0); else if (intv) - queue_delayed_work(system_nrt_wq, &ev->dwork, intv); + queue_delayed_work(system_nrt_freezable_wq, &ev->dwork, intv); out_unlock: spin_unlock_irqrestore(&ev->lock, flags); } @@ -1522,7 +1528,7 @@ ev->clearing |= mask; if (!ev->block) { cancel_delayed_work(&ev->dwork); - queue_delayed_work(system_nrt_wq, &ev->dwork, 0); + queue_delayed_work(system_nrt_freezable_wq, &ev->dwork, 0); } spin_unlock_irq(&ev->lock); } @@ -1559,7 +1565,7 @@ /* uncondtionally schedule event check and wait for it to finish */ disk_block_events(disk); - queue_delayed_work(system_nrt_wq, &ev->dwork, 0); + queue_delayed_work(system_nrt_freezable_wq, &ev->dwork, 0); flush_delayed_work(&ev->dwork); __disk_unblock_events(disk, false); @@ -1596,7 +1602,7 @@ intv = disk_events_poll_jiffies(disk); if (!ev->block && intv) - queue_delayed_work(system_nrt_wq, &ev->dwork, intv); + queue_delayed_work(system_nrt_freezable_wq, &ev->dwork, intv); spin_unlock_irq(&ev->lock); @@ -1734,9 +1740,9 @@ &disk_events_dfl_poll_msecs, 0644); /* - * disk_{add|del|release}_events - initialize and destroy disk_events. + * disk_{alloc|add|del|release}_events - initialize and destroy disk_events. */ -static void disk_add_events(struct gendisk *disk) +static void disk_alloc_events(struct gendisk *disk) { struct disk_events *ev; @@ -1749,16 +1755,6 @@ return; } - if (sysfs_create_files(&disk_to_dev(disk)->kobj, - disk_events_attrs) < 0) { - pr_warn("%s: failed to create sysfs files for events\n", - disk->disk_name); - kfree(ev); - return; - } - - disk->ev = ev; - INIT_LIST_HEAD(&ev->node); ev->disk = disk; spin_lock_init(&ev->lock); @@ -1767,8 +1763,21 @@ ev->poll_msecs = -1; INIT_DELAYED_WORK(&ev->dwork, disk_events_workfn); + disk->ev = ev; +} + +static void disk_add_events(struct gendisk *disk) +{ + if (!disk->ev) + return; + + /* FIXME: error handling */ + if (sysfs_create_files(&disk_to_dev(disk)->kobj, disk_events_attrs) < 0) + pr_warn("%s: failed to create sysfs files for events\n", + disk->disk_name); + mutex_lock(&disk_events_mutex); - list_add_tail(&ev->node, &disk_events); + list_add_tail(&disk->ev->node, &disk_events); mutex_unlock(&disk_events_mutex); /* --- linux-3.2.0.orig/block/blk-core.c +++ linux-3.2.0/block/blk-core.c @@ -607,7 +607,7 @@ int blk_get_queue(struct request_queue *q) { - if (likely(!test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) { + if (likely(!blk_queue_dead(q))) { kobject_get(&q->kobj); return 0; } @@ -754,7 +754,7 @@ const bool is_sync = rw_is_sync(rw_flags) != 0; int may_queue; - if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) + if (unlikely(blk_queue_dead(q))) return NULL; may_queue = elv_may_queue(q, rw_flags); @@ -874,7 +874,7 @@ struct io_context *ioc; struct request_list *rl = &q->rq; - if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) + if (unlikely(blk_queue_dead(q))) return NULL; prepare_to_wait_exclusive(&rl->wait[is_sync], &wait, --- linux-3.2.0.orig/block/blk-throttle.c +++ linux-3.2.0/block/blk-throttle.c @@ -310,7 +310,7 @@ struct request_queue *q = td->queue; /* no throttling for dead queue */ - if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) + if (unlikely(blk_queue_dead(q))) return NULL; rcu_read_lock(); @@ -335,7 +335,7 @@ spin_lock_irq(q->queue_lock); /* Make sure @q is still alive */ - if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) { + if (unlikely(blk_queue_dead(q))) { kfree(tg); return NULL; } --- linux-3.2.0.orig/block/scsi_ioctl.c +++ linux-3.2.0/block/scsi_ioctl.c @@ -24,8 +24,12 @@ #include #include #include +#include #include #include +#include +#include +#include #include #include @@ -690,6 +694,69 @@ } EXPORT_SYMBOL(scsi_cmd_ioctl); +int scsi_verify_blk_ioctl(struct block_device *bd, unsigned int cmd) +{ + if (bd && bd == bd->bd_contains) + return 0; + + /* Actually none of these is particularly useful on a partition, + * but they are safe. + */ + switch (cmd) { + case SCSI_IOCTL_GET_IDLUN: + case SCSI_IOCTL_GET_BUS_NUMBER: + case SCSI_IOCTL_GET_PCI: + case SCSI_IOCTL_PROBE_HOST: + case SG_GET_VERSION_NUM: + case SG_SET_TIMEOUT: + case SG_GET_TIMEOUT: + case SG_GET_RESERVED_SIZE: + case SG_SET_RESERVED_SIZE: + case SG_EMULATED_HOST: + case BLKFLSBUF: + case BLKROSET: + return 0; + case CDROM_GET_CAPABILITY: + case CDROM_DRIVE_STATUS: + case FDGETPRM: + case RAID_VERSION: + case MTIOCGET: +#ifdef CONFIG_COMPAT + case 0x801c6d02: /* MTIOCGET32 */ +#endif + /* Keep this until we remove the printk below. udev sends it + * and we do not want to spam dmesg about it. CD-ROMs do + * not have partitions, so we get here only for disks. + */ + return -ENOTTY; + default: + break; + } + + if (capable(CAP_SYS_RAWIO)) + return 0; + + /* In particular, rule out all resets and host-specific ioctls. */ + printk_ratelimited(KERN_WARNING + "%s: sending ioctl %x to a partition!\n", current->comm, cmd); + + return -ENOTTY; +} +EXPORT_SYMBOL(scsi_verify_blk_ioctl); + +int scsi_cmd_blk_ioctl(struct block_device *bd, fmode_t mode, + unsigned int cmd, void __user *arg) +{ + int ret; + + ret = scsi_verify_blk_ioctl(bd, cmd); + if (ret < 0) + return ret; + + return scsi_cmd_ioctl(bd->bd_disk->queue, bd->bd_disk, mode, cmd, arg); +} +EXPORT_SYMBOL(scsi_cmd_blk_ioctl); + static int __init blk_scsi_ioctl_init(void) { blk_set_cmd_filter_defaults(&blk_default_cmd_filter); --- linux-3.2.0.orig/block/blk.h +++ linux-3.2.0/block/blk.h @@ -85,7 +85,7 @@ q->flush_queue_delayed = 1; return NULL; } - if (test_bit(QUEUE_FLAG_DEAD, &q->queue_flags) || + if (unlikely(blk_queue_dead(q)) || !q->elevator->ops->elevator_dispatch_fn(q, 0)) return NULL; } --- linux-3.2.0.orig/block/bsg.c +++ linux-3.2.0/block/bsg.c @@ -985,7 +985,8 @@ mutex_lock(&bsg_mutex); idr_remove(&bsg_minor_idr, bcd->minor); - sysfs_remove_link(&q->kobj, "bsg"); + if (q->kobj.sd) + sysfs_remove_link(&q->kobj, "bsg"); device_unregister(bcd->class_dev); bcd->class_dev = NULL; kref_put(&bcd->ref, bsg_kref_release_function); --- linux-3.2.0.orig/block/blk-sysfs.c +++ linux-3.2.0/block/blk-sysfs.c @@ -200,6 +200,8 @@ unsigned long val; \ ssize_t ret; \ ret = queue_var_store(&val, page, count); \ + if (ret < 0) \ + return ret; \ if (neg) \ val = !val; \ \ @@ -425,7 +427,7 @@ if (!entry->show) return -EIO; mutex_lock(&q->sysfs_lock); - if (test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)) { + if (blk_queue_dead(q)) { mutex_unlock(&q->sysfs_lock); return -ENOENT; } @@ -447,7 +449,7 @@ q = container_of(kobj, struct request_queue, kobj); mutex_lock(&q->sysfs_lock); - if (test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)) { + if (blk_queue_dead(q)) { mutex_unlock(&q->sysfs_lock); return -ENOENT; } --- linux-3.2.0.orig/block/blk-exec.c +++ linux-3.2.0/block/blk-exec.c @@ -49,8 +49,9 @@ rq_end_io_fn *done) { int where = at_head ? ELEVATOR_INSERT_FRONT : ELEVATOR_INSERT_BACK; + bool is_pm_resume; - if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) { + if (unlikely(blk_queue_dead(q))) { rq->errors = -ENXIO; if (rq->end_io) rq->end_io(rq, rq->errors); @@ -59,12 +60,18 @@ rq->rq_disk = bd_disk; rq->end_io = done; + /* + * need to check this before __blk_run_queue(), because rq can + * be freed before that returns. + */ + is_pm_resume = rq->cmd_type == REQ_TYPE_PM_RESUME; + WARN_ON(irqs_disabled()); spin_lock_irq(q->queue_lock); __elv_add_request(q, rq, where); __blk_run_queue(q); /* the queue is stopped so it won't be run */ - if (rq->cmd_type == REQ_TYPE_PM_RESUME) + if (is_pm_resume) q->request_fn(q); spin_unlock_irq(q->queue_lock); } --- linux-3.2.0.orig/security/Kconfig +++ linux-3.2.0/security/Kconfig @@ -187,6 +187,7 @@ source security/smack/Kconfig source security/tomoyo/Kconfig source security/apparmor/Kconfig +source security/yama/Kconfig source security/integrity/Kconfig @@ -196,6 +197,7 @@ default DEFAULT_SECURITY_SMACK if SECURITY_SMACK default DEFAULT_SECURITY_TOMOYO if SECURITY_TOMOYO default DEFAULT_SECURITY_APPARMOR if SECURITY_APPARMOR + default DEFAULT_SECURITY_YAMA if SECURITY_YAMA default DEFAULT_SECURITY_DAC help @@ -214,6 +216,9 @@ config DEFAULT_SECURITY_APPARMOR bool "AppArmor" if SECURITY_APPARMOR=y + config DEFAULT_SECURITY_YAMA + bool "Yama" if SECURITY_YAMA=y + config DEFAULT_SECURITY_DAC bool "Unix Discretionary Access Controls" @@ -225,6 +230,7 @@ default "smack" if DEFAULT_SECURITY_SMACK default "tomoyo" if DEFAULT_SECURITY_TOMOYO default "apparmor" if DEFAULT_SECURITY_APPARMOR + default "yama" if DEFAULT_SECURITY_YAMA default "" if DEFAULT_SECURITY_DAC endmenu --- linux-3.2.0.orig/security/Makefile +++ linux-3.2.0/security/Makefile @@ -7,6 +7,7 @@ subdir-$(CONFIG_SECURITY_SMACK) += smack subdir-$(CONFIG_SECURITY_TOMOYO) += tomoyo subdir-$(CONFIG_SECURITY_APPARMOR) += apparmor +subdir-$(CONFIG_SECURITY_YAMA) += yama # always enable default capabilities obj-y += commoncap.o @@ -21,6 +22,7 @@ obj-$(CONFIG_AUDIT) += lsm_audit.o obj-$(CONFIG_SECURITY_TOMOYO) += tomoyo/built-in.o obj-$(CONFIG_SECURITY_APPARMOR) += apparmor/built-in.o +obj-$(CONFIG_SECURITY_YAMA) += yama/built-in.o obj-$(CONFIG_CGROUP_DEVICE) += device_cgroup.o # Object integrity file lists --- linux-3.2.0.orig/security/inode.c +++ linux-3.2.0/security/inode.c @@ -56,7 +56,7 @@ .llseek = noop_llseek, }; -static struct inode *get_inode(struct super_block *sb, int mode, dev_t dev) +static struct inode *get_inode(struct super_block *sb, umode_t mode, dev_t dev) { struct inode *inode = new_inode(sb); @@ -85,7 +85,7 @@ /* SMP-safe */ static int mknod(struct inode *dir, struct dentry *dentry, - int mode, dev_t dev) + umode_t mode, dev_t dev) { struct inode *inode; int error = -ENOMEM; @@ -102,7 +102,7 @@ return error; } -static int mkdir(struct inode *dir, struct dentry *dentry, int mode) +static int mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) { int res; @@ -113,7 +113,7 @@ return res; } -static int create(struct inode *dir, struct dentry *dentry, int mode) +static int create(struct inode *dir, struct dentry *dentry, umode_t mode) { mode = (mode & S_IALLUGO) | S_IFREG; return mknod(dir, dentry, mode, 0); @@ -145,7 +145,7 @@ .kill_sb = kill_litter_super, }; -static int create_by_name(const char *name, mode_t mode, +static int create_by_name(const char *name, umode_t mode, struct dentry *parent, struct dentry **dentry) { @@ -205,7 +205,7 @@ * If securityfs is not enabled in the kernel, the value %-ENODEV is * returned. */ -struct dentry *securityfs_create_file(const char *name, mode_t mode, +struct dentry *securityfs_create_file(const char *name, umode_t mode, struct dentry *parent, void *data, const struct file_operations *fops) { --- linux-3.2.0.orig/security/security.c +++ linux-3.2.0/security/security.c @@ -130,6 +130,10 @@ int security_ptrace_access_check(struct task_struct *child, unsigned int mode) { + int rc; + rc = yama_ptrace_access_check(child, mode); + if (rc) + return rc; return security_ops->ptrace_access_check(child, mode); } @@ -158,8 +162,7 @@ int security_capable(struct user_namespace *ns, const struct cred *cred, int cap) { - return security_ops->capable(current, cred, ns, cap, - SECURITY_CAP_AUDIT); + return security_ops->capable(cred, ns, cap, SECURITY_CAP_AUDIT); } int security_real_capable(struct task_struct *tsk, struct user_namespace *ns, @@ -169,7 +172,7 @@ int ret; cred = get_task_cred(tsk); - ret = security_ops->capable(tsk, cred, ns, cap, SECURITY_CAP_AUDIT); + ret = security_ops->capable(cred, ns, cap, SECURITY_CAP_AUDIT); put_cred(cred); return ret; } @@ -181,7 +184,7 @@ int ret; cred = get_task_cred(tsk); - ret = security_ops->capable(tsk, cred, ns, cap, SECURITY_CAP_NOAUDIT); + ret = security_ops->capable(cred, ns, cap, SECURITY_CAP_NOAUDIT); put_cred(cred); return ret; } @@ -388,7 +391,7 @@ EXPORT_SYMBOL(security_old_inode_init_security); #ifdef CONFIG_SECURITY_PATH -int security_path_mknod(struct path *dir, struct dentry *dentry, int mode, +int security_path_mknod(struct path *dir, struct dentry *dentry, umode_t mode, unsigned int dev) { if (unlikely(IS_PRIVATE(dir->dentry->d_inode))) @@ -397,7 +400,7 @@ } EXPORT_SYMBOL(security_path_mknod); -int security_path_mkdir(struct path *dir, struct dentry *dentry, int mode) +int security_path_mkdir(struct path *dir, struct dentry *dentry, umode_t mode) { if (unlikely(IS_PRIVATE(dir->dentry->d_inode))) return 0; @@ -411,6 +414,7 @@ return 0; return security_ops->path_rmdir(dir, dentry); } +EXPORT_SYMBOL(security_path_rmdir); int security_path_unlink(struct path *dir, struct dentry *dentry) { @@ -427,14 +431,20 @@ return 0; return security_ops->path_symlink(dir, dentry, old_name); } +EXPORT_SYMBOL(security_path_symlink); int security_path_link(struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) { + int rc; if (unlikely(IS_PRIVATE(old_dentry->d_inode))) return 0; + rc = yama_path_link(old_dentry, new_dir, new_dentry); + if (rc) + return rc; return security_ops->path_link(old_dentry, new_dir, new_dentry); } +EXPORT_SYMBOL(security_path_link); int security_path_rename(struct path *old_dir, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) @@ -453,14 +463,15 @@ return 0; return security_ops->path_truncate(path); } +EXPORT_SYMBOL(security_path_truncate); -int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt, - mode_t mode) +int security_path_chmod(struct path *path, umode_t mode) { - if (unlikely(IS_PRIVATE(dentry->d_inode))) + if (unlikely(IS_PRIVATE(path->dentry->d_inode))) return 0; - return security_ops->path_chmod(dentry, mnt, mode); + return security_ops->path_chmod(path, mode); } +EXPORT_SYMBOL(security_path_chmod); int security_path_chown(struct path *path, uid_t uid, gid_t gid) { @@ -468,6 +479,7 @@ return 0; return security_ops->path_chown(path, uid, gid); } +EXPORT_SYMBOL(security_path_chown); int security_path_chroot(struct path *path) { @@ -544,11 +556,16 @@ return 0; return security_ops->inode_readlink(dentry); } +EXPORT_SYMBOL(security_inode_readlink); int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd) { + int rc; if (unlikely(IS_PRIVATE(dentry->d_inode))) return 0; + rc = yama_inode_follow_link(dentry, nd); + if (rc) + return rc; return security_ops->inode_follow_link(dentry, nd); } @@ -558,6 +575,7 @@ return 0; return security_ops->inode_permission(inode, mask); } +EXPORT_SYMBOL(security_inode_permission); int security_inode_setattr(struct dentry *dentry, struct iattr *attr) { @@ -673,6 +691,7 @@ return fsnotify_perm(file, mask); } +EXPORT_SYMBOL(security_file_permission); int security_file_alloc(struct file *file) { @@ -700,6 +719,7 @@ return ret; return ima_file_mmap(file, prot); } +EXPORT_SYMBOL(security_file_mmap); int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot, unsigned long prot) @@ -749,6 +769,12 @@ return security_ops->task_create(clone_flags); } +void security_task_free(struct task_struct *task) +{ + yama_task_free(task); + security_ops->task_free(task); +} + int security_cred_alloc_blank(struct cred *cred, gfp_t gfp) { return security_ops->cred_alloc_blank(cred, gfp); @@ -861,6 +887,10 @@ int security_task_prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5) { + int rc; + rc = yama_task_prctl(option, arg2, arg3, arg4, arg5); + if (rc != -ENOSYS) + return rc; return security_ops->task_prctl(option, arg2, arg3, arg4, arg5); } --- linux-3.2.0.orig/security/capability.c +++ linux-3.2.0/security/capability.c @@ -235,13 +235,13 @@ } #ifdef CONFIG_SECURITY_PATH -static int cap_path_mknod(struct path *dir, struct dentry *dentry, int mode, +static int cap_path_mknod(struct path *dir, struct dentry *dentry, umode_t mode, unsigned int dev) { return 0; } -static int cap_path_mkdir(struct path *dir, struct dentry *dentry, int mode) +static int cap_path_mkdir(struct path *dir, struct dentry *dentry, umode_t mode) { return 0; } @@ -279,8 +279,7 @@ return 0; } -static int cap_path_chmod(struct dentry *dentry, struct vfsmount *mnt, - mode_t mode) +static int cap_path_chmod(struct path *path, umode_t mode) { return 0; } @@ -359,6 +358,10 @@ return 0; } +static void cap_task_free(struct task_struct *task) +{ +} + static int cap_cred_alloc_blank(struct cred *cred, gfp_t gfp) { return 0; @@ -955,6 +958,7 @@ set_to_cap_if_null(ops, file_receive); set_to_cap_if_null(ops, dentry_open); set_to_cap_if_null(ops, task_create); + set_to_cap_if_null(ops, task_free); set_to_cap_if_null(ops, cred_alloc_blank); set_to_cap_if_null(ops, cred_free); set_to_cap_if_null(ops, cred_prepare); --- linux-3.2.0.orig/security/device_cgroup.c +++ linux-3.2.0/security/device_cgroup.c @@ -13,6 +13,7 @@ #include #include #include +#include #define ACC_MKNOD 1 #define ACC_READ 2 @@ -500,6 +501,7 @@ return -EPERM; } +EXPORT_SYMBOL(__devcgroup_inode_permission); int devcgroup_inode_mknod(int mode, dev_t dev) { --- linux-3.2.0.orig/security/commoncap.c +++ linux-3.2.0/security/commoncap.c @@ -28,6 +28,7 @@ #include #include #include +#include /* * If a non-root user executes a setuid-root binary in @@ -66,7 +67,6 @@ /** * cap_capable - Determine whether a task has a particular effective capability - * @tsk: The task to query * @cred: The credentials to use * @ns: The user namespace in which we need the capability * @cap: The capability to check for @@ -80,8 +80,8 @@ * cap_has_capability() returns 0 when a task has a capability, but the * kernel's capable() and has_capability() returns 1 for this case. */ -int cap_capable(struct task_struct *tsk, const struct cred *cred, - struct user_namespace *targ_ns, int cap, int audit) +int cap_capable(const struct cred *cred, struct user_namespace *targ_ns, + int cap, int audit) { for (;;) { /* The creator of the user namespace has all caps. */ @@ -222,9 +222,8 @@ /* they are so limited unless the current task has the CAP_SETPCAP * capability */ - if (cap_capable(current, current_cred(), - current_cred()->user->user_ns, CAP_SETPCAP, - SECURITY_CAP_AUDIT) == 0) + if (cap_capable(current_cred(), current_cred()->user->user_ns, + CAP_SETPCAP, SECURITY_CAP_AUDIT) == 0) return 0; return 1; } @@ -514,15 +513,23 @@ } skip: + /* if we have fs caps, clear dangerous personality flags */ + if (!cap_issubset(new->cap_permitted, old->cap_permitted)) + bprm->per_clear |= PER_CLEAR_ON_SETID; + + /* Don't let someone trace a set[ug]id/setpcap binary with the revised - * credentials unless they have the appropriate permit + * credentials unless they have the appropriate permit. + * + * In addition, if NO_NEW_PRIVS, then ensure we get no new privs. */ if ((new->euid != old->uid || new->egid != old->gid || !cap_issubset(new->cap_permitted, old->cap_permitted)) && bprm->unsafe & ~LSM_UNSAFE_PTRACE_CAP) { /* downgrade; they get no more than they had, and maybe less */ - if (!capable(CAP_SETUID)) { + if (!capable(CAP_SETUID) || + (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS)) { new->euid = new->uid; new->egid = new->gid; } @@ -874,7 +881,7 @@ & (new->securebits ^ arg2)) /*[1]*/ || ((new->securebits & SECURE_ALL_LOCKS & ~arg2)) /*[2]*/ || (arg2 & ~(SECURE_ALL_LOCKS | SECURE_ALL_BITS)) /*[3]*/ - || (cap_capable(current, current_cred(), + || (cap_capable(current_cred(), current_cred()->user->user_ns, CAP_SETPCAP, SECURITY_CAP_AUDIT) != 0) /*[4]*/ /* @@ -940,7 +947,7 @@ { int cap_sys_admin = 0; - if (cap_capable(current, current_cred(), &init_user_ns, CAP_SYS_ADMIN, + if (cap_capable(current_cred(), &init_user_ns, CAP_SYS_ADMIN, SECURITY_CAP_NOAUDIT) == 0) cap_sys_admin = 1; return __vm_enough_memory(mm, pages, cap_sys_admin); @@ -967,7 +974,7 @@ int ret = 0; if (addr < dac_mmap_min_addr) { - ret = cap_capable(current, current_cred(), &init_user_ns, CAP_SYS_RAWIO, + ret = cap_capable(current_cred(), &init_user_ns, CAP_SYS_RAWIO, SECURITY_CAP_AUDIT); /* set PF_SUPERPRIV if it turns out we allow the low mmap */ if (ret == 0) @@ -975,3 +982,4 @@ } return ret; } +EXPORT_SYMBOL(cap_file_mmap); --- linux-3.2.0.orig/security/apparmor/path.c +++ linux-3.2.0/security/apparmor/path.c @@ -13,7 +13,6 @@ */ #include -#include #include #include #include @@ -84,31 +83,31 @@ struct path root; get_fs_root(current->fs, &root); res = __d_path(path, &root, buf, buflen); - if (res && !IS_ERR(res)) { - /* everything's fine */ - *name = res; - path_put(&root); - goto ok; - } path_put(&root); - connected = 0; + } else { + res = d_absolute_path(path, buf, buflen); + if (!our_mnt(path->mnt)) + connected = 0; } - res = d_absolute_path(path, buf, buflen); - - *name = res; /* handle error conditions - and still allow a partial path to * be returned. */ - if (IS_ERR(res)) { - error = PTR_ERR(res); - *name = buf; - goto out; - } - if (!our_mnt(path->mnt)) + if (!res || IS_ERR(res)) { + if (PTR_ERR(res) == -ENAMETOOLONG) + return -ENAMETOOLONG; + connected = 0; + res = dentry_path_raw(path->dentry, buf, buflen); + if (IS_ERR(res)) { + error = PTR_ERR(res); + *name = buf; + goto out; + }; + } else if (!our_mnt(path->mnt)) connected = 0; -ok: + *name = res; + /* Handle two cases: * 1. A deleted dentry && profile is not allowing mediation of deleted * 2. On some filesystems, newly allocated dentries appear to the @@ -139,7 +138,7 @@ /* disconnected path, don't return pathname starting * with '/' */ - error = -ESTALE; + error = -EACCES; if (*res == '/') *name = res + 1; } @@ -160,7 +159,7 @@ * Returns: %0 else error on failure */ static int get_name_to_buffer(struct path *path, int flags, char *buffer, - int size, char **name) + int size, char **name, const char **info) { int adjust = (flags & PATH_IS_DIR) ? 1 : 0; int error = d_namespace_path(path, buffer, size - adjust, name, flags); @@ -172,15 +171,27 @@ */ strcpy(&buffer[size - 2], "/"); + if (info && error) { + if (error == -ENOENT) + *info = "Failed name lookup - deleted entry"; + else if (error == -ESTALE) + *info = "Failed name lookup - disconnected path"; + else if (error == -ENAMETOOLONG) + *info = "Failed name lookup - name too long"; + else + *info = "Failed name lookup"; + } + return error; } /** - * aa_get_name - compute the pathname of a file + * aa_path_name - compute the pathname of a file * @path: path the file (NOT NULL) * @flags: flags controlling path name generation * @buffer: buffer that aa_get_name() allocated (NOT NULL) * @name: Returns - the generated path name if !error (NOT NULL) + * @info: Returns - information on why the path lookup failed (MAYBE NULL) * * @name is a pointer to the beginning of the pathname (which usually differs * from the beginning of the buffer), or NULL. If there is an error @name @@ -193,7 +204,8 @@ * * Returns: %0 else error code if could retrieve name */ -int aa_get_name(struct path *path, int flags, char **buffer, const char **name) +int aa_path_name(struct path *path, int flags, char **buffer, const char **name, + const char **info) { char *buf, *str = NULL; int size = 256; @@ -207,7 +219,7 @@ if (!buf) return -ENOMEM; - error = get_name_to_buffer(path, flags, buf, size, &str); + error = get_name_to_buffer(path, flags, buf, size, &str, info); if (error != -ENAMETOOLONG) break; @@ -215,6 +227,7 @@ size <<= 1; if (size > aa_g_path_max) return -ENAMETOOLONG; + *info = NULL; } *buffer = buf; *name = str; --- linux-3.2.0.orig/security/apparmor/apparmorfs.c +++ linux-3.2.0/security/apparmor/apparmorfs.c @@ -18,12 +18,14 @@ #include #include #include +#include #include "include/apparmor.h" #include "include/apparmorfs.h" #include "include/audit.h" #include "include/context.h" #include "include/policy.h" +#include "include/resource.h" /** * aa_simple_write_to_buffer - common routine for getting policy from user @@ -142,38 +144,407 @@ .llseek = default_llseek, }; +static int aa_fs_seq_show(struct seq_file *seq, void *v) +{ + struct aa_fs_entry *fs_file = seq->private; + + if (!fs_file) + return 0; + + switch (fs_file->v_type) { + case AA_FS_TYPE_BOOLEAN: + seq_printf(seq, "%s\n", fs_file->v.boolean ? "yes" : "no"); + break; + case AA_FS_TYPE_STRING: + seq_printf(seq, "%s\n", fs_file->v.string); + break; + case AA_FS_TYPE_U64: + seq_printf(seq, "%#08lx\n", fs_file->v.u64); + break; + default: + /* Ignore unpritable entry types. */ + break; + } + + return 0; +} + +static int aa_fs_seq_open(struct inode *inode, struct file *file) +{ + return single_open(file, aa_fs_seq_show, inode->i_private); +} + +const struct file_operations aa_fs_seq_file_ops = { + .owner = THIS_MODULE, + .open = aa_fs_seq_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +/** + * __next_namespace - find the next namespace to list + * @root: root namespace to stop search at (NOT NULL) + * @ns: current ns position (NOT NULL) + * + * Find the next namespace from @ns under @root and handle all locking needed + * while switching current namespace. + * + * Returns: next namespace or NULL if at last namespace under @root + * NOTE: will not unlock root->lock + */ +static struct aa_namespace *__next_namespace(struct aa_namespace *root, + struct aa_namespace *ns) +{ + struct aa_namespace *parent; + + /* is next namespace a child */ + if (!list_empty(&ns->sub_ns)) { + struct aa_namespace *next; + next = list_first_entry(&ns->sub_ns, typeof(*ns), base.list); + read_lock(&next->lock); + return next; + } + + /* check if the next ns is a sibling, parent, gp, .. */ + parent = ns->parent; + while (parent) { + read_unlock(&ns->lock); + list_for_each_entry_continue(ns, &parent->sub_ns, base.list) { + read_lock(&ns->lock); + return ns; + } + if (parent == root) + return NULL; + ns = parent; + parent = parent->parent; + } + + return NULL; +} + +/** + * __first_profile - find the first profile in a namespace + * @root: namespace that is root of profiles being displayed (NOT NULL) + * @ns: namespace to start in (NOT NULL) + * + * Returns: unrefcounted profile or NULL if no profile + */ +static struct aa_profile *__first_profile(struct aa_namespace *root, + struct aa_namespace *ns) +{ + for ( ; ns; ns = __next_namespace(root, ns)) { + if (!list_empty(&ns->base.profiles)) + return list_first_entry(&ns->base.profiles, + struct aa_profile, base.list); + } + return NULL; +} + +/** + * __next_profile - step to the next profile in a profile tree + * @profile: current profile in tree (NOT NULL) + * + * Perform a depth first taversal on the profile tree in a namespace + * + * Returns: next profile or NULL if done + * Requires: profile->ns.lock to be held + */ +static struct aa_profile *__next_profile(struct aa_profile *p) +{ + struct aa_profile *parent; + struct aa_namespace *ns = p->ns; + + /* is next profile a child */ + if (!list_empty(&p->base.profiles)) + return list_first_entry(&p->base.profiles, typeof(*p), + base.list); + + /* is next profile a sibling, parent sibling, gp, subling, .. */ + parent = p->parent; + while (parent) { + list_for_each_entry_continue(p, &parent->base.profiles, + base.list) + return p; + p = parent; + parent = parent->parent; + } + + /* is next another profile in the namespace */ + list_for_each_entry_continue(p, &ns->base.profiles, base.list) + return p; + + return NULL; +} + +/** + * next_profile - step to the next profile in where ever it may be + * @root: root namespace (NOT NULL) + * @profile: current profile (NOT NULL) + * + * Returns: next profile or NULL if there isn't one + */ +static struct aa_profile *next_profile(struct aa_namespace *root, + struct aa_profile *profile) +{ + struct aa_profile *next = __next_profile(profile); + if (next) + return next; + + /* finished all profiles in namespace move to next namespace */ + return __first_profile(root, __next_namespace(root, profile->ns)); +} + +/** + * p_start - start a depth first traversal of profile tree + * @f: seq_file to fill + * @pos: current position + * + * Returns: first profile under current namespace or NULL if none found + * + * acquires first ns->lock + */ +static void *p_start(struct seq_file *f, loff_t *pos) + __acquires(root->lock) +{ + struct aa_profile *profile = NULL; + struct aa_namespace *root = aa_current_profile()->ns; + loff_t l = *pos; + f->private = aa_get_namespace(root); + + + /* find the first profile */ + read_lock(&root->lock); + profile = __first_profile(root, root); + + /* skip to position */ + for (; profile && l > 0; l--) + profile = next_profile(root, profile); + + return profile; +} + +/** + * p_next - read the next profile entry + * @f: seq_file to fill + * @p: profile previously returned + * @pos: current position + * + * Returns: next profile after @p or NULL if none + * + * may acquire/release locks in namespace tree as necessary + */ +static void *p_next(struct seq_file *f, void *p, loff_t *pos) +{ + struct aa_profile *profile = p; + struct aa_namespace *root = f->private; + (*pos)++; + + return next_profile(root, profile); +} + +/** + * p_stop - stop depth first traversal + * @f: seq_file we are filling + * @p: the last profile writen + * + * Release all locking done by p_start/p_next on namespace tree + */ +static void p_stop(struct seq_file *f, void *p) + __releases(root->lock) +{ + struct aa_profile *profile = p; + struct aa_namespace *root = f->private, *ns; + + if (profile) { + for (ns = profile->ns; ns && ns != root; ns = ns->parent) + read_unlock(&ns->lock); + } + read_unlock(&root->lock); + aa_put_namespace(root); +} + +/** + * seq_show_profile - show a profile entry + * @f: seq_file to file + * @p: current position (profile) (NOT NULL) + * + * Returns: error on failure + */ +static int seq_show_profile(struct seq_file *f, void *p) +{ + struct aa_profile *profile = (struct aa_profile *)p; + struct aa_namespace *root = f->private; + + if (profile->ns != root) + seq_printf(f, ":%s://", aa_ns_name(root, profile->ns)); + seq_printf(f, "%s (%s)\n", profile->base.hname, + COMPLAIN_MODE(profile) ? "complain" : "enforce"); + + return 0; +} + +static const struct seq_operations aa_fs_profiles_op = { + .start = p_start, + .next = p_next, + .stop = p_stop, + .show = seq_show_profile, +}; + +static int profiles_open(struct inode *inode, struct file *file) +{ + return seq_open(file, &aa_fs_profiles_op); +} + +static int profiles_release(struct inode *inode, struct file *file) +{ + return seq_release(inode, file); +} + +const struct file_operations aa_fs_profiles_fops = { + .open = profiles_open, + .read = seq_read, + .llseek = seq_lseek, + .release = profiles_release, +}; + /** Base file system setup **/ -static struct dentry *aa_fs_dentry __initdata; +static struct aa_fs_entry aa_fs_entry_file[] = { + AA_FS_FILE_STRING("mask", "create read write exec append mmap_exec " \ + "link lock"), + { } +}; + +static struct aa_fs_entry aa_fs_entry_domain[] = { + AA_FS_FILE_BOOLEAN("change_hat", 1), + AA_FS_FILE_BOOLEAN("change_hatv", 1), + AA_FS_FILE_BOOLEAN("change_onexec", 1), + AA_FS_FILE_BOOLEAN("change_profile", 1), + { } +}; + +static struct aa_fs_entry aa_fs_entry_mount[] = { + AA_FS_FILE_STRING("mask", "mount umount"), + { } +}; + +static struct aa_fs_entry aa_fs_entry_namespaces[] = { + AA_FS_FILE_BOOLEAN("profile", 1), + AA_FS_FILE_BOOLEAN("pivot_root", 1), + { } +}; + +static struct aa_fs_entry aa_fs_entry_features[] = { + AA_FS_DIR("domain", aa_fs_entry_domain), + AA_FS_DIR("file", aa_fs_entry_file), + AA_FS_DIR("network", aa_fs_entry_network), + AA_FS_DIR("mount", aa_fs_entry_mount), + AA_FS_DIR("namespaces", aa_fs_entry_namespaces), + AA_FS_FILE_U64("capability", VFS_CAP_FLAGS_MASK), + AA_FS_DIR("rlimit", aa_fs_entry_rlimit), + { } +}; + +static struct aa_fs_entry aa_fs_entry_apparmor[] = { + AA_FS_FILE_FOPS(".load", 0640, &aa_fs_profile_load), + AA_FS_FILE_FOPS(".replace", 0640, &aa_fs_profile_replace), + AA_FS_FILE_FOPS(".remove", 0640, &aa_fs_profile_remove), + AA_FS_FILE_FOPS("profiles", 0640, &aa_fs_profiles_fops), + AA_FS_DIR("features", aa_fs_entry_features), + { } +}; + +static struct aa_fs_entry aa_fs_entry = + AA_FS_DIR("apparmor", aa_fs_entry_apparmor); -static void __init aafs_remove(const char *name) +/** + * aafs_create_file - create a file entry in the apparmor securityfs + * @fs_file: aa_fs_entry to build an entry for (NOT NULL) + * @parent: the parent dentry in the securityfs + * + * Use aafs_remove_file to remove entries created with this fn. + */ +static int __init aafs_create_file(struct aa_fs_entry *fs_file, + struct dentry *parent) { - struct dentry *dentry; + int error = 0; - dentry = lookup_one_len(name, aa_fs_dentry, strlen(name)); - if (!IS_ERR(dentry)) { - securityfs_remove(dentry); - dput(dentry); + fs_file->dentry = securityfs_create_file(fs_file->name, + S_IFREG | fs_file->mode, + parent, fs_file, + fs_file->file_ops); + if (IS_ERR(fs_file->dentry)) { + error = PTR_ERR(fs_file->dentry); + fs_file->dentry = NULL; } + return error; } /** - * aafs_create - create an entry in the apparmor filesystem - * @name: name of the entry (NOT NULL) - * @mask: file permission mask of the file - * @fops: file operations for the file (NOT NULL) + * aafs_create_dir - recursively create a directory entry in the securityfs + * @fs_dir: aa_fs_entry (and all child entries) to build (NOT NULL) + * @parent: the parent dentry in the securityfs * - * Used aafs_remove to remove entries created with this fn. + * Use aafs_remove_dir to remove entries created with this fn. */ -static int __init aafs_create(const char *name, int mask, - const struct file_operations *fops) +static int __init aafs_create_dir(struct aa_fs_entry *fs_dir, + struct dentry *parent) { - struct dentry *dentry; + int error; + struct aa_fs_entry *fs_file; + + fs_dir->dentry = securityfs_create_dir(fs_dir->name, parent); + if (IS_ERR(fs_dir->dentry)) { + error = PTR_ERR(fs_dir->dentry); + fs_dir->dentry = NULL; + goto failed; + } - dentry = securityfs_create_file(name, S_IFREG | mask, aa_fs_dentry, - NULL, fops); + for (fs_file = fs_dir->v.files; fs_file->name; ++fs_file) { + if (fs_file->v_type == AA_FS_TYPE_DIR) + error = aafs_create_dir(fs_file, fs_dir->dentry); + else + error = aafs_create_file(fs_file, fs_dir->dentry); + if (error) + goto failed; + } + + return 0; + +failed: + return error; +} + +/** + * aafs_remove_file - drop a single file entry in the apparmor securityfs + * @fs_file: aa_fs_entry to detach from the securityfs (NOT NULL) + */ +static void __init aafs_remove_file(struct aa_fs_entry *fs_file) +{ + if (!fs_file->dentry) + return; - return IS_ERR(dentry) ? PTR_ERR(dentry) : 0; + securityfs_remove(fs_file->dentry); + fs_file->dentry = NULL; +} + +/** + * aafs_remove_dir - recursively drop a directory entry from the securityfs + * @fs_dir: aa_fs_entry (and all child entries) to detach (NOT NULL) + */ +static void __init aafs_remove_dir(struct aa_fs_entry *fs_dir) +{ + struct aa_fs_entry *fs_file; + + for (fs_file = fs_dir->v.files; fs_file->name; ++fs_file) { + if (fs_file->v_type == AA_FS_TYPE_DIR) + aafs_remove_dir(fs_file); + else + aafs_remove_file(fs_file); + } + + aafs_remove_file(fs_dir); } /** @@ -183,14 +554,7 @@ */ void __init aa_destroy_aafs(void) { - if (aa_fs_dentry) { - aafs_remove(".remove"); - aafs_remove(".replace"); - aafs_remove(".load"); - - securityfs_remove(aa_fs_dentry); - aa_fs_dentry = NULL; - } + aafs_remove_dir(&aa_fs_entry); } /** @@ -207,25 +571,13 @@ if (!apparmor_initialized) return 0; - if (aa_fs_dentry) { + if (aa_fs_entry.dentry) { AA_ERROR("%s: AppArmor securityfs already exists\n", __func__); return -EEXIST; } - aa_fs_dentry = securityfs_create_dir("apparmor", NULL); - if (IS_ERR(aa_fs_dentry)) { - error = PTR_ERR(aa_fs_dentry); - aa_fs_dentry = NULL; - goto error; - } - - error = aafs_create(".load", 0640, &aa_fs_profile_load); - if (error) - goto error; - error = aafs_create(".replace", 0640, &aa_fs_profile_replace); - if (error) - goto error; - error = aafs_create(".remove", 0640, &aa_fs_profile_remove); + /* Populate fs tree. */ + error = aafs_create_dir(&aa_fs_entry, NULL); if (error) goto error; --- linux-3.2.0.orig/security/apparmor/net.c +++ linux-3.2.0/security/apparmor/net.c @@ -0,0 +1,159 @@ +/* + * AppArmor security module + * + * This file contains AppArmor network mediation + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2012 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/apparmor.h" +#include "include/audit.h" +#include "include/context.h" +#include "include/net.h" +#include "include/policy.h" + +#include "net_names.h" + +struct aa_fs_entry aa_fs_entry_network[] = { + AA_FS_FILE_STRING("af_mask", AA_FS_AF_MASK), + { } +}; + +/* audit callback for net specific fields */ +static void audit_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + + audit_log_format(ab, " family="); + if (address_family_names[sa->u.net.family]) { + audit_log_string(ab, address_family_names[sa->u.net.family]); + } else { + audit_log_format(ab, "\"unknown(%d)\"", sa->u.net.family); + } + audit_log_format(ab, " sock_type="); + if (sock_type_names[sa->aad.net.type]) { + audit_log_string(ab, sock_type_names[sa->aad.net.type]); + } else { + audit_log_format(ab, "\"unknown(%d)\"", sa->aad.net.type); + } + audit_log_format(ab, " protocol=%d", sa->aad.net.protocol); +} + +/** + * audit_net - audit network access + * @profile: profile being enforced (NOT NULL) + * @op: operation being checked + * @family: network family + * @type: network type + * @protocol: network protocol + * @sk: socket auditing is being applied to + * @error: error code for failure else 0 + * + * Returns: %0 or sa->error else other errorcode on failure + */ +static int audit_net(struct aa_profile *profile, int op, u16 family, int type, + int protocol, struct sock *sk, int error) +{ + int audit_type = AUDIT_APPARMOR_AUTO; + struct common_audit_data sa; + if (sk) { + COMMON_AUDIT_DATA_INIT(&sa, NET); + } else { + COMMON_AUDIT_DATA_INIT(&sa, NONE); + } + /* todo fill in socket addr info */ + + sa.aad.op = op, + sa.u.net.family = family; + sa.u.net.sk = sk; + sa.aad.net.type = type; + sa.aad.net.protocol = protocol; + sa.aad.error = error; + + if (likely(!sa.aad.error)) { + u16 audit_mask = profile->net.audit[sa.u.net.family]; + if (likely((AUDIT_MODE(profile) != AUDIT_ALL) && + !(1 << sa.aad.net.type & audit_mask))) + return 0; + audit_type = AUDIT_APPARMOR_AUDIT; + } else { + u16 quiet_mask = profile->net.quiet[sa.u.net.family]; + u16 kill_mask = 0; + u16 denied = (1 << sa.aad.net.type); + + if (denied & kill_mask) + audit_type = AUDIT_APPARMOR_KILL; + + if ((denied & quiet_mask) && + AUDIT_MODE(profile) != AUDIT_NOQUIET && + AUDIT_MODE(profile) != AUDIT_ALL) + return COMPLAIN_MODE(profile) ? 0 : sa.aad.error; + } + + return aa_audit(audit_type, profile, GFP_KERNEL, &sa, audit_cb); +} + +/** + * aa_net_perm - very course network access check + * @op: operation being checked + * @profile: profile being enforced (NOT NULL) + * @family: network family + * @type: network type + * @protocol: network protocol + * + * Returns: %0 else error if permission denied + */ +int aa_net_perm(int op, struct aa_profile *profile, u16 family, int type, + int protocol, struct sock *sk) +{ + u16 family_mask; + int error; + + if ((family < 0) || (family >= AF_MAX)) + return -EINVAL; + + if ((type < 0) || (type >= SOCK_MAX)) + return -EINVAL; + + /* unix domain and netlink sockets are handled by ipc */ + if (family == AF_UNIX || family == AF_NETLINK) + return 0; + + family_mask = profile->net.allow[family]; + + error = (family_mask & (1 << type)) ? 0 : -EACCES; + + return audit_net(profile, op, family, type, protocol, sk, error); +} + +/** + * aa_revalidate_sk - Revalidate access to a sock + * @op: operation being checked + * @sk: sock being revalidated (NOT NULL) + * + * Returns: %0 else error if permission denied + */ +int aa_revalidate_sk(int op, struct sock *sk) +{ + struct aa_profile *profile; + int error = 0; + + /* aa_revalidate_sk should not be called from interrupt context + * don't mediate these calls as they are not task related + */ + if (in_interrupt()) + return 0; + + profile = __aa_current_profile(); + if (!unconfined(profile)) + error = aa_net_perm(op, profile, sk->sk_family, sk->sk_type, + sk->sk_protocol, sk); + + return error; +} --- linux-3.2.0.orig/security/apparmor/Makefile +++ linux-3.2.0/security/apparmor/Makefile @@ -4,10 +4,9 @@ apparmor-y := apparmorfs.o audit.o capability.o context.o ipc.o lib.o match.o \ path.o domain.o policy.o policy_unpack.o procattr.o lsm.o \ - resource.o sid.o file.o - -clean-files := capability_names.h rlim_names.h + resource.o sid.o file.o mount.o net.o +clean-files := capability_names.h rlim_names.h net_names.h # Build a lower case string table of capability names # Transforms lines from @@ -15,11 +14,43 @@ # to # [1] = "dac_override", quiet_cmd_make-caps = GEN $@ -cmd_make-caps = echo "static const char *capability_names[] = {" > $@ ;\ +cmd_make-caps = echo "static const char *const capability_names[] = {" > $@ ;\ sed $< >>$@ -r -n -e '/CAP_FS_MASK/d' \ -e 's/^\#define[ \t]+CAP_([A-Z0-9_]+)[ \t]+([0-9]+)/[\2] = "\L\1",/p';\ echo "};" >> $@ +# Build a lower case string table of address family names +# Transform lines from +# define AF_LOCAL 1 /* POSIX name for AF_UNIX */ +# #define AF_INET 2 /* Internet IP Protocol */ +# to +# [1] = "local", +# [2] = "inet", +# +# and build the securityfs entries for the mapping. +# Transforms lines from +# #define AF_INET 2 /* Internet IP Protocol */ +# to +# #define AA_FS_AF_MASK "local inet" +quiet_cmd_make-af = GEN $@ +cmd_make-af = echo "static const char *address_family_names[] = {" > $@ ;\ + sed $< >>$@ -r -n -e "/AF_MAX/d" -e "/AF_LOCAL/d" -e \ + 's/^\#define[ \t]+AF_([A-Z0-9_]+)[ \t]+([0-9]+)(.*)/[\2] = "\L\1",/p';\ + echo "};" >> $@ ;\ + echo -n '\#define AA_FS_AF_MASK "' >> $@ ;\ + sed -r -n 's/^\#define[ \t]+AF_([A-Z0-9_]+)[ \t]+([0-9]+)(.*)/\L\1/p'\ + $< | tr '\n' ' ' | sed -e 's/ $$/"\n/' >> $@ + +# Build a lower case string table of sock type names +# Transform lines from +# SOCK_STREAM = 1, +# to +# [1] = "stream", +quiet_cmd_make-sock = GEN $@ +cmd_make-sock = echo "static const char *sock_type_names[] = {" >> $@ ;\ + sed $^ >>$@ -r -n \ + -e 's/^\tSOCK_([A-Z0-9_]+)[\t]+=[ \t]+([0-9]+)(.*)/[\2] = "\L\1",/p';\ + echo "};" >> $@ # Build a lower case string table of rlimit names. # Transforms lines from @@ -28,25 +59,44 @@ # [RLIMIT_STACK] = "stack", # # and build a second integer table (with the second sed cmd), that maps -# RLIMIT defines to the order defined in asm-generic/resource.h Thi is +# RLIMIT defines to the order defined in asm-generic/resource.h This is # required by policy load to map policy ordering of RLIMITs to internal # ordering for architectures that redefine an RLIMIT. # Transforms lines from # #define RLIMIT_STACK 3 /* max stack size */ # to # RLIMIT_STACK, +# +# and build the securityfs entries for the mapping. +# Transforms lines from +# #define RLIMIT_FSIZE 1 /* Maximum filesize */ +# #define RLIMIT_STACK 3 /* max stack size */ +# to +# #define AA_FS_RLIMIT_MASK "fsize stack" quiet_cmd_make-rlim = GEN $@ -cmd_make-rlim = echo "static const char *rlim_names[] = {" > $@ ;\ +cmd_make-rlim = echo "static const char *const rlim_names[RLIM_NLIMITS] = {" \ + > $@ ;\ sed $< >> $@ -r -n \ -e 's/^\# ?define[ \t]+(RLIMIT_([A-Z0-9_]+)).*/[\1] = "\L\2",/p';\ echo "};" >> $@ ;\ - echo "static const int rlim_map[] = {" >> $@ ;\ + echo "static const int rlim_map[RLIM_NLIMITS] = {" >> $@ ;\ sed -r -n "s/^\# ?define[ \t]+(RLIMIT_[A-Z0-9_]+).*/\1,/p" $< >> $@ ;\ - echo "};" >> $@ + echo "};" >> $@ ; \ + echo -n '\#define AA_FS_RLIMIT_MASK "' >> $@ ;\ + sed -r -n 's/^\# ?define[ \t]+RLIMIT_([A-Z0-9_]+).*/\L\1/p' $< | \ + tr '\n' ' ' | sed -e 's/ $$/"\n/' >> $@ $(obj)/capability.o : $(obj)/capability_names.h +$(obj)/net.o : $(obj)/net_names.h $(obj)/resource.o : $(obj)/rlim_names.h -$(obj)/capability_names.h : $(srctree)/include/linux/capability.h +$(obj)/capability_names.h : $(srctree)/include/linux/capability.h \ + $(src)/Makefile $(call cmd,make-caps) -$(obj)/rlim_names.h : $(srctree)/include/asm-generic/resource.h +$(obj)/rlim_names.h : $(srctree)/include/asm-generic/resource.h \ + $(src)/Makefile $(call cmd,make-rlim) +$(obj)/net_names.h : $(srctree)/include/linux/socket.h \ + $(srctree)/include/linux/net.h \ + $(src)/Makefile + $(call cmd,make-af) + $(call cmd,make-sock) --- linux-3.2.0.orig/security/apparmor/match.c +++ linux-3.2.0/security/apparmor/match.c @@ -335,12 +335,12 @@ } /** - * aa_dfa_next_state - traverse @dfa to find state @str stops at + * aa_dfa_match - traverse @dfa to find state @str stops at * @dfa: the dfa to match @str against (NOT NULL) * @start: the state of the dfa to start matching in * @str: the null terminated string of bytes to match against the dfa (NOT NULL) * - * aa_dfa_next_state will match @str against the dfa and return the state it + * aa_dfa_match will match @str against the dfa and return the state it * finished matching in. The final state can be used to look up the accepting * label, or as the start state of a continuing match. * @@ -349,5 +349,79 @@ unsigned int aa_dfa_match(struct aa_dfa *dfa, unsigned int start, const char *str) { - return aa_dfa_match_len(dfa, start, str, strlen(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, pos; + + if (state == 0) + return 0; + + /* current state is , matching character *str */ + if (dfa->tables[YYTD_ID_EC]) { + /* Equivalence class table defined */ + u8 *equiv = EQUIV_TABLE(dfa); + /* default is direct to next state */ + while (*str) { + pos = base[state] + equiv[(u8) *str++]; + if (check[pos] == state) + state = next[pos]; + else + state = def[state]; + } + } else { + /* default is direct to next state */ + while (*str) { + pos = base[state] + (u8) *str++; + if (check[pos] == state) + state = next[pos]; + else + state = def[state]; + } + } + + return state; +} + +/** + * aa_dfa_next - step one character to the next state in the dfa + * @dfa: the dfa to tranverse (NOT NULL) + * @state: the state to start in + * @c: the input character to transition on + * + * aa_dfa_match will step through the dfa by one input character @c + * + * Returns: state reach after input @c + */ +unsigned int aa_dfa_next(struct aa_dfa *dfa, unsigned int state, + const char c) +{ + u16 *def = DEFAULT_TABLE(dfa); + u32 *base = BASE_TABLE(dfa); + u16 *next = NEXT_TABLE(dfa); + u16 *check = CHECK_TABLE(dfa); + unsigned int pos; + + /* current state is , matching character *str */ + if (dfa->tables[YYTD_ID_EC]) { + /* Equivalence class table defined */ + u8 *equiv = EQUIV_TABLE(dfa); + /* default is direct to next state */ + + pos = base[state] + equiv[(u8) c]; + if (check[pos] == state) + state = next[pos]; + else + state = def[state]; + } else { + /* default is direct to next state */ + pos = base[state] + (u8) c; + if (check[pos] == state) + state = next[pos]; + else + state = def[state]; + } + + return state; } --- linux-3.2.0.orig/security/apparmor/mount.c +++ linux-3.2.0/security/apparmor/mount.c @@ -0,0 +1,618 @@ +/* + * AppArmor security module + * + * This file contains AppArmor mediation of files + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2012 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 + +#include "include/apparmor.h" +#include "include/audit.h" +#include "include/context.h" +#include "include/domain.h" +#include "include/file.h" +#include "include/match.h" +#include "include/mount.h" +#include "include/path.h" +#include "include/policy.h" + + +static void audit_mnt_flags(struct audit_buffer *ab, unsigned long flags) +{ + if (flags & MS_RDONLY) + audit_log_format(ab, "ro"); + else + audit_log_format(ab, "rw"); + if (flags & MS_NOSUID) + audit_log_format(ab, ", nosuid"); + if (flags & MS_NODEV) + audit_log_format(ab, ", nodev"); + if (flags & MS_NOEXEC) + audit_log_format(ab, ", noexec"); + if (flags & MS_SYNCHRONOUS) + audit_log_format(ab, ", sync"); + if (flags & MS_REMOUNT) + audit_log_format(ab, ", remount"); + if (flags & MS_MANDLOCK) + audit_log_format(ab, ", mand"); + if (flags & MS_DIRSYNC) + audit_log_format(ab, ", dirsync"); + if (flags & MS_NOATIME) + audit_log_format(ab, ", noatime"); + if (flags & MS_NODIRATIME) + audit_log_format(ab, ", nodiratime"); + if (flags & MS_BIND) + audit_log_format(ab, flags & MS_REC ? ", rbind" : ", bind"); + if (flags & MS_MOVE) + audit_log_format(ab, ", move"); + if (flags & MS_SILENT) + audit_log_format(ab, ", silent"); + if (flags & MS_POSIXACL) + audit_log_format(ab, ", acl"); + if (flags & MS_UNBINDABLE) + audit_log_format(ab, flags & MS_REC ? ", runbindable" : + ", unbindable"); + if (flags & MS_PRIVATE) + audit_log_format(ab, flags & MS_REC ? ", rprivate" : + ", private"); + if (flags & MS_SLAVE) + audit_log_format(ab, flags & MS_REC ? ", rslave" : + ", slave"); + if (flags & MS_SHARED) + audit_log_format(ab, flags & MS_REC ? ", rshared" : + ", shared"); + if (flags & MS_RELATIME) + audit_log_format(ab, ", relatime"); + if (flags & MS_I_VERSION) + audit_log_format(ab, ", iversion"); + if (flags & MS_STRICTATIME) + audit_log_format(ab, ", strictatime"); + if (flags & MS_NOUSER) + audit_log_format(ab, ", nouser"); +} + +/** + * audit_cb - call back for mount specific audit fields + * @ab: audit_buffer (NOT NULL) + * @va: audit struct to audit values of (NOT NULL) + */ +static void audit_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + + if (sa->aad.mnt.type) { + audit_log_format(ab, " fstype="); + audit_log_untrustedstring(ab, sa->aad.mnt.type); + } + if (sa->aad.mnt.src_name) { + audit_log_format(ab, " srcname="); + audit_log_untrustedstring(ab, sa->aad.mnt.src_name); + } + if (sa->aad.mnt.trans) { + audit_log_format(ab, " trans="); + audit_log_untrustedstring(ab, sa->aad.mnt.trans); + } + if (sa->aad.mnt.flags || sa->aad.op == OP_MOUNT) { + audit_log_format(ab, " flags=\""); + audit_mnt_flags(ab, sa->aad.mnt.flags); + audit_log_format(ab, "\""); + } + if (sa->aad.mnt.data) { + audit_log_format(ab, " options="); + audit_log_untrustedstring(ab, sa->aad.mnt.data); + } +} + +/** + * audit_mount - handle the auditing of mount operations + * @profile: the profile being enforced (NOT NULL) + * @gfp: allocation flags + * @op: operation being mediated (NOT NULL) + * @name: name of object being mediated (MAYBE NULL) + * @src_name: src_name of object being mediated (MAYBE_NULL) + * @type: type of filesystem (MAYBE_NULL) + * @trans: name of trans (MAYBE NULL) + * @flags: filesystem idependent mount flags + * @data: filesystem mount flags + * @request: permissions requested + * @perms: the permissions computed for the request (NOT NULL) + * @info: extra information message (MAYBE NULL) + * @error: 0 if operation allowed else failure error code + * + * Returns: %0 or error on failure + */ +static int audit_mount(struct aa_profile *profile, gfp_t gfp, int op, + const char *name, const char *src_name, + const char *type, const char *trans, + unsigned long flags, const void *data, u32 request, + struct file_perms *perms, const char *info, int error) +{ + int audit_type = AUDIT_APPARMOR_AUTO; + struct common_audit_data sa; + + if (likely(!error)) { + u32 mask = perms->audit; + + if (unlikely(AUDIT_MODE(profile) == AUDIT_ALL)) + mask = 0xffff; + + /* mask off perms that are not being force audited */ + request &= mask; + + if (likely(!request)) + return 0; + audit_type = AUDIT_APPARMOR_AUDIT; + } else { + /* only report permissions that were denied */ + request = request & ~perms->allow; + + if (request & perms->kill) + audit_type = AUDIT_APPARMOR_KILL; + + /* quiet known rejects, assumes quiet and kill do not overlap */ + if ((request & perms->quiet) && + AUDIT_MODE(profile) != AUDIT_NOQUIET && + AUDIT_MODE(profile) != AUDIT_ALL) + request &= ~perms->quiet; + + if (!request) + return COMPLAIN_MODE(profile) ? + complain_error(error) : error; + } + + COMMON_AUDIT_DATA_INIT(&sa, NONE); + sa.aad.op = op; + sa.aad.name = name; + sa.aad.mnt.src_name = src_name; + sa.aad.mnt.type = type; + sa.aad.mnt.trans = trans; + sa.aad.mnt.flags = flags; + if (data && (perms->audit & AA_AUDIT_DATA)) + sa.aad.mnt.data = data; + sa.aad.info = info; + sa.aad.error = error; + + return aa_audit(audit_type, profile, gfp, &sa, audit_cb); +} + +/** + * match_mnt_flags - Do an ordered match on mount flags + * @dfa: dfa to match against + * @state: state to start in + * @flags: mount flags to match against + * + * Mount flags are encoded as an ordered match. This is done instead of + * checking against a simple bitmask, to allow for logical operations + * on the flags. + * + * Returns: next state after flags match + */ +static unsigned int match_mnt_flags(struct aa_dfa *dfa, unsigned int state, + unsigned long flags) +{ + unsigned int i; + + for (i = 0; i <= 31 ; ++i) { + if ((1 << i) & flags) + state = aa_dfa_next(dfa, state, i + 1); + } + + 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 file_perms compute_mnt_perms(struct aa_dfa *dfa, + unsigned int state) +{ + struct file_perms perms; + + perms.kill = 0; + perms.allow = dfa_user_allow(dfa, state); + perms.audit = dfa_user_audit(dfa, state); + perms.quiet = dfa_user_quiet(dfa, state); + perms.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" +}; + +/* + * 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, + const char *mntpnt, const char *devname, + const char *type, unsigned long flags, + void *data, bool binary, struct file_perms *perms) +{ + unsigned int state; + + state = aa_dfa_match(dfa, start, mntpnt); + state = aa_dfa_null_transition(dfa, state); + if (!state) + return 1; + + if (devname) + state = aa_dfa_match(dfa, state, devname); + state = aa_dfa_null_transition(dfa, state); + if (!state) + return 2; + + if (type) + state = aa_dfa_match(dfa, state, type); + state = aa_dfa_null_transition(dfa, state); + if (!state) + return 3; + + state = match_mnt_flags(dfa, state, flags); + if (!state) + return 4; + *perms = compute_mnt_perms(dfa, 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_CONT_MATCH)) { + state = aa_dfa_null_transition(dfa, state); + if (!state) + return 4; + + state = aa_dfa_match(dfa, state, data); + if (!state) + return 5; + *perms = compute_mnt_perms(dfa, state); + if (perms->allow & AA_MAY_MOUNT) + return 0; + } + + /* failed at end of flags match */ + return 4; +} + +/** + * match_mnt - handle path matching for mount + * @profile: the confining profile + * @mntpnt: string for the mntpnt (NOT NULL) + * @devname: string for the devname/src_name (MAYBE NULL) + * @type: string for the dev type (MAYBE NULL) + * @flags: mount flags to match + * @data: fs mount data (MAYBE NULL) + * @binary: whether @data is binary + * @perms: Returns: permission found by the match + * @info: Returns: infomation string about the match for logging + * + * Returns: 0 on success else error + */ +static int match_mnt(struct aa_profile *profile, const char *mntpnt, + const char *devname, const char *type, + unsigned long flags, void *data, bool binary, + struct file_perms *perms, const char **info) +{ + int pos; + + if (!profile->policy.dfa) + return -EACCES; + + pos = do_match_mnt(profile->policy.dfa, + profile->policy.start[AA_CLASS_MOUNT], + mntpnt, devname, type, flags, data, binary, perms); + if (pos) { + *info = mnt_info_table[pos]; + return -EACCES; + } + + return 0; +} + +static int path_flags(struct aa_profile *profile, struct path *path) +{ + return profile->path_flags | + S_ISDIR(path->dentry->d_inode->i_mode) ? PATH_IS_DIR : 0; +} + +int aa_remount(struct aa_profile *profile, struct path *path, + unsigned long flags, void *data) +{ + struct file_perms perms = { }; + const char *name, *info = NULL; + char *buffer = NULL; + int binary, error; + + binary = path->dentry->d_sb->s_type->fs_flags & FS_BINARY_MOUNTDATA; + + error = aa_path_name(path, path_flags(profile, path), &buffer, &name, + &info); + if (error) + goto audit; + + error = match_mnt(profile, name, NULL, NULL, flags, data, binary, + &perms, &info); + +audit: + error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, NULL, NULL, + NULL, flags, data, AA_MAY_MOUNT, &perms, info, + error); + kfree(buffer); + + return error; +} + +int aa_bind_mount(struct aa_profile *profile, struct path *path, + const char *dev_name, unsigned long flags) +{ + struct file_perms perms = { }; + char *buffer = NULL, *old_buffer = NULL; + const char *name, *old_name = NULL, *info = NULL; + struct path old_path; + int error; + + if (!dev_name || !*dev_name) + return -EINVAL; + + flags &= MS_REC | MS_BIND; + + error = aa_path_name(path, path_flags(profile, path), &buffer, &name, + &info); + if (error) + goto audit; + + error = kern_path(dev_name, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &old_path); + if (error) + goto audit; + + error = aa_path_name(&old_path, path_flags(profile, &old_path), + &old_buffer, &old_name, &info); + path_put(&old_path); + if (error) + goto audit; + + error = match_mnt(profile, name, old_name, NULL, flags, NULL, 0, + &perms, &info); + +audit: + error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, old_name, + NULL, NULL, flags, NULL, AA_MAY_MOUNT, &perms, + info, error); + kfree(buffer); + kfree(old_buffer); + + return error; +} + +int aa_mount_change_type(struct aa_profile *profile, struct path *path, + unsigned long flags) +{ + struct file_perms perms = { }; + char *buffer = NULL; + const char *name, *info = NULL; + int error; + + /* These are the flags allowed by do_change_type() */ + flags &= (MS_REC | MS_SILENT | MS_SHARED | MS_PRIVATE | MS_SLAVE | + MS_UNBINDABLE); + + error = aa_path_name(path, path_flags(profile, path), &buffer, &name, + &info); + if (error) + goto audit; + + error = match_mnt(profile, name, NULL, NULL, flags, NULL, 0, &perms, + &info); + +audit: + error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, NULL, NULL, + NULL, flags, NULL, AA_MAY_MOUNT, &perms, info, + error); + kfree(buffer); + + return error; +} + +int aa_move_mount(struct aa_profile *profile, struct path *path, + const char *orig_name) +{ + struct file_perms perms = { }; + char *buffer = NULL, *old_buffer = NULL; + const char *name, *old_name = NULL, *info = NULL; + struct path old_path; + int error; + + if (!orig_name || !*orig_name) + return -EINVAL; + + error = aa_path_name(path, path_flags(profile, path), &buffer, &name, + &info); + if (error) + goto audit; + + error = kern_path(orig_name, LOOKUP_FOLLOW, &old_path); + if (error) + goto audit; + + error = aa_path_name(&old_path, path_flags(profile, &old_path), + &old_buffer, &old_name, &info); + path_put(&old_path); + if (error) + goto audit; + + error = match_mnt(profile, name, old_name, NULL, MS_MOVE, NULL, 0, + &perms, &info); + +audit: + error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, old_name, + NULL, NULL, MS_MOVE, NULL, AA_MAY_MOUNT, &perms, + info, error); + kfree(buffer); + kfree(old_buffer); + + return error; +} + +int aa_new_mount(struct aa_profile *profile, const char *orig_dev_name, + struct path *path, const char *type, unsigned long flags, + void *data) +{ + struct file_perms perms = { }; + char *buffer = NULL, *dev_buffer = NULL; + const char *name = NULL, *dev_name = NULL, *info = NULL; + int binary = 1; + int error; + + dev_name = orig_dev_name; + if (type) { + int requires_dev; + struct file_system_type *fstype = get_fs_type(type); + if (!fstype) + return -ENODEV; + + binary = fstype->fs_flags & FS_BINARY_MOUNTDATA; + requires_dev = fstype->fs_flags & FS_REQUIRES_DEV; + put_filesystem(fstype); + + if (requires_dev) { + struct path dev_path; + + if (!dev_name || !*dev_name) { + error = -ENOENT; + goto out; + } + + error = kern_path(dev_name, LOOKUP_FOLLOW, &dev_path); + if (error) + goto audit; + + error = aa_path_name(&dev_path, + path_flags(profile, &dev_path), + &dev_buffer, &dev_name, &info); + path_put(&dev_path); + if (error) + goto audit; + } + } + + error = aa_path_name(path, path_flags(profile, path), &buffer, &name, + &info); + if (error) + goto audit; + + error = match_mnt(profile, name, dev_name, type, flags, data, binary, + &perms, &info); + +audit: + error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, dev_name, + type, NULL, flags, data, AA_MAY_MOUNT, &perms, info, + error); + kfree(buffer); + kfree(dev_buffer); + +out: + return error; + +} + +int aa_umount(struct aa_profile *profile, struct vfsmount *mnt, int flags) +{ + struct file_perms perms = { }; + char *buffer = NULL; + const char *name, *info = NULL; + int error; + + struct path path = { mnt, mnt->mnt_root }; + error = aa_path_name(&path, path_flags(profile, &path), &buffer, &name, + &info); + if (error) + goto audit; + + if (!error && profile->policy.dfa) { + unsigned int state; + state = aa_dfa_match(profile->policy.dfa, + profile->policy.start[AA_CLASS_MOUNT], + name); + perms = compute_mnt_perms(profile->policy.dfa, state); + } + + if (AA_MAY_UMOUNT & ~perms.allow) + error = -EACCES; + +audit: + error = audit_mount(profile, GFP_KERNEL, OP_UMOUNT, name, NULL, NULL, + NULL, 0, NULL, AA_MAY_UMOUNT, &perms, info, error); + kfree(buffer); + + return error; +} + +int aa_pivotroot(struct aa_profile *profile, struct path *old_path, + struct path *new_path) +{ + struct file_perms perms = { }; + struct aa_profile *target = NULL; + char *old_buffer = NULL, *new_buffer = NULL; + const char *old_name, *new_name = NULL, *info = NULL; + int error; + + error = aa_path_name(old_path, path_flags(profile, old_path), + &old_buffer, &old_name, &info); + if (error) + goto audit; + + error = aa_path_name(new_path, path_flags(profile, new_path), + &new_buffer, &new_name, &info); + if (error) + goto audit; + + if (profile->policy.dfa) { + unsigned int state; + state = aa_dfa_match(profile->policy.dfa, + profile->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); + } + + if (AA_MAY_PIVOTROOT & perms.allow) { + if ((perms.xindex & AA_X_TYPE_MASK) == AA_X_TABLE) { + target = x_table_lookup(profile, perms.xindex); + if (!target) + error = -ENOENT; + else + error = aa_replace_current_profile(target); + } + } else + error = -EACCES; + +audit: + error = audit_mount(profile, GFP_KERNEL, OP_PIVOTROOT, new_name, + old_name, NULL, target ? target->base.name : NULL, + 0, NULL, AA_MAY_PIVOTROOT, &perms, info, error); + aa_put_profile(target); + kfree(old_buffer); + kfree(new_buffer); + + return error; +} --- linux-3.2.0.orig/security/apparmor/policy_unpack.c +++ linux-3.2.0/security/apparmor/policy_unpack.c @@ -84,7 +84,7 @@ * @new: profile if it has been allocated (MAYBE NULL) * @name: name of the profile being manipulated (MAYBE NULL) * @info: any extra info about the failure (MAYBE NULL) - * @e: buffer position info (NOT NULL) + * @e: buffer position info * @error: error code * * Returns: %0 or error @@ -95,7 +95,8 @@ struct aa_profile *profile = __aa_current_profile(); struct common_audit_data sa; COMMON_AUDIT_DATA_INIT(&sa, NONE); - sa.aad.iface.pos = e->pos - e->start; + if (e) + sa.aad.iface.pos = e->pos - e->start; sa.aad.iface.target = new; sa.aad.name = name; sa.aad.info = info; @@ -190,6 +191,19 @@ return 0; } +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((u16 *) e->pos)); + e->pos += sizeof(u16); + return 1; + } + return 0; +} + static bool unpack_u32(struct aa_ext *e, u32 *data, const char *name) { if (unpack_nameX(e, AA_U32, name)) { @@ -468,7 +482,8 @@ { struct aa_profile *profile = NULL; const char *name = NULL; - int error = -EPROTO; + size_t size = 0; + int i, error = -EPROTO; kernel_cap_t tmpcap; u32 tmp; @@ -554,11 +569,67 @@ goto fail; if (!unpack_u32(e, &(profile->caps.extended.cap[1]), NULL)) goto fail; + if (!unpack_nameX(e, AA_STRUCTEND, NULL)) + goto fail; } if (!unpack_rlimits(e, profile)) goto fail; + size = unpack_array(e, "net_allowed_af"); + if (size) { + + 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.allow[i], NULL)) + goto fail; + if (!unpack_u16(e, &profile->net.audit[i], NULL)) + goto fail; + if (!unpack_u16(e, &profile->net.quiet[i], NULL)) + goto fail; + } + if (!unpack_nameX(e, AA_ARRAYEND, NULL)) + goto fail; + } + /* + * allow unix domain and netlink sockets they are handled + * by IPC + */ + profile->net.allow[AF_UNIX] = 0xffff; + profile->net.allow[AF_NETLINK] = 0xffff; + + if (unpack_nameX(e, AA_STRUCT, "policydb")) { + /* generic policy dfa - optional and may be NULL */ + profile->policy.dfa = unpack_dfa(e); + if (IS_ERR(profile->policy.dfa)) { + error = PTR_ERR(profile->policy.dfa); + profile->policy.dfa = NULL; + 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); + } + if (!unpack_nameX(e, AA_STRUCTEND, NULL)) + goto fail; + } + /* get file rules */ profile->file.dfa = unpack_dfa(e); if (IS_ERR(profile->file.dfa)) { --- linux-3.2.0.orig/security/apparmor/file.c +++ linux-3.2.0/security/apparmor/file.c @@ -173,8 +173,6 @@ if (old & 0x40) /* AA_EXEC_MMAP */ new |= AA_EXEC_MMAP; - new |= AA_MAY_META_READ; - return new; } @@ -212,10 +210,13 @@ perms.quiet = map_old_perms(dfa_other_quiet(dfa, state)); perms.xindex = dfa_other_xindex(dfa, state); } + perms.allow |= AA_MAY_META_READ; /* 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; return perms; } @@ -279,22 +280,16 @@ int error; flags |= profile->path_flags | (S_ISDIR(cond->mode) ? PATH_IS_DIR : 0); - error = aa_get_name(path, flags, &buffer, &name); + error = aa_path_name(path, flags, &buffer, &name, &info); if (error) { if (error == -ENOENT && is_deleted(path->dentry)) { /* Access to open files that are deleted are * give a pass (implicit delegation) */ error = 0; + info = NULL; perms.allow = request; - } else if (error == -ENOENT) - info = "Failed name lookup - deleted entry"; - else if (error == -ESTALE) - info = "Failed name lookup - disconnected path"; - else if (error == -ENAMETOOLONG) - info = "Failed name lookup - name too long"; - else - info = "Failed name lookup"; + } } else { aa_str_perms(profile->file.dfa, profile->file.start, name, cond, &perms); @@ -365,12 +360,14 @@ lperms = nullperms; /* buffer freed below, lname is pointer in buffer */ - error = aa_get_name(&link, profile->path_flags, &buffer, &lname); + error = aa_path_name(&link, profile->path_flags, &buffer, &lname, + &info); if (error) goto audit; /* buffer2 freed below, tname is pointer in buffer2 */ - error = aa_get_name(&target, profile->path_flags, &buffer2, &tname); + error = aa_path_name(&target, profile->path_flags, &buffer2, &tname, + &info); if (error) goto audit; --- linux-3.2.0.orig/security/apparmor/resource.c +++ linux-3.2.0/security/apparmor/resource.c @@ -23,6 +23,11 @@ */ #include "rlim_names.h" +struct aa_fs_entry aa_fs_entry_rlimit[] = { + AA_FS_FILE_STRING("mask", AA_FS_RLIMIT_MASK), + { } +}; + /* audit callback for resource specific fields */ static void audit_cb(struct audit_buffer *ab, void *va) { --- linux-3.2.0.orig/security/apparmor/domain.c +++ linux-3.2.0/security/apparmor/domain.c @@ -242,7 +242,7 @@ * * Returns: refcounted profile, or NULL on failure (MAYBE NULL) */ -static struct aa_profile *x_table_lookup(struct aa_profile *profile, u32 xindex) +struct aa_profile *x_table_lookup(struct aa_profile *profile, u32 xindex) { struct aa_profile *new_profile = NULL; struct aa_namespace *ns = profile->ns; @@ -372,13 +372,12 @@ state = profile->file.start; /* buffer freed below, name is pointer into buffer */ - error = aa_get_name(&bprm->file->f_path, profile->path_flags, &buffer, - &name); + error = aa_path_name(&bprm->file->f_path, profile->path_flags, &buffer, + &name, &info); if (error) { if (profile->flags & (PFLAG_IX_ON_NAME_ERROR | PFLAG_UNCONFINED)) error = 0; - info = "Exec failed name resolution"; name = bprm->filename; goto audit; } @@ -395,6 +394,11 @@ new_profile = find_attach(ns, &ns->base.profiles, name); if (!new_profile) goto cleanup; + /* + * NOTE: Domain transitions from unconfined are allowed + * even when no_new_privs is set because this aways results + * in a further reduction of permissions. + */ goto apply; } @@ -411,7 +415,8 @@ * exec\0change_profile */ state = aa_dfa_null_transition(profile->file.dfa, state); - cp = change_profile_perms(profile, cxt->onexec->ns, name, + cp = change_profile_perms(profile, cxt->onexec->ns, + cxt->onexec->base.name, AA_MAY_ONEXEC, state); if (!(cp.allow & AA_MAY_ONEXEC)) @@ -455,6 +460,16 @@ /* fail exec */ error = -EACCES; + /* + * Policy has specified a domain transition, if no_new_privs then + * fail the exec. + */ + if (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS) { + aa_put_profile(new_profile); + error = -EPERM; + goto cleanup; + } + if (!new_profile) goto audit; @@ -609,6 +624,14 @@ const char *target = NULL, *info = NULL; int error = 0; + /* + * Fail explicitly requested domain transitions if no_new_privs. + * There is no exception for unconfined as change_hat is not + * available. + */ + if (current->no_new_privs) + return -EPERM; + /* released below */ cred = get_current_cred(); cxt = cred->security; @@ -750,6 +773,18 @@ cxt = cred->security; profile = aa_cred_profile(cred); + /* + * Fail explicitly requested domain transitions if no_new_privs + * and not unconfined. + * Domain transitions from unconfined are allowed even when + * no_new_privs is set because this aways results in a reduction + * of permissions. + */ + if (current->no_new_privs && !unconfined(profile)) { + put_cred(cred); + return -EPERM; + } + if (ns_name) { /* released below */ ns = aa_find_namespace(profile->ns, ns_name); --- linux-3.2.0.orig/security/apparmor/lsm.c +++ linux-3.2.0/security/apparmor/lsm.c @@ -32,9 +32,11 @@ #include "include/context.h" #include "include/file.h" #include "include/ipc.h" +#include "include/net.h" #include "include/path.h" #include "include/policy.h" #include "include/procattr.h" +#include "include/mount.h" /* Flag indicating whether initialization completed */ int apparmor_initialized __initdata; @@ -136,16 +138,16 @@ return 0; } -static int apparmor_capable(struct task_struct *task, const struct cred *cred, - struct user_namespace *ns, int cap, int audit) +static int apparmor_capable(const struct cred *cred, struct user_namespace *ns, + int cap, int audit) { struct aa_profile *profile; /* cap_capable returns 0 on success, else -EPERM */ - int error = cap_capable(task, cred, ns, cap, audit); + int error = cap_capable(cred, ns, cap, audit); if (!error) { profile = aa_cred_profile(cred); if (!unconfined(profile)) - error = aa_capable(task, profile, cap, audit); + error = aa_capable(current, profile, cap, audit); } return error; } @@ -262,7 +264,7 @@ } static int apparmor_path_mkdir(struct path *dir, struct dentry *dentry, - int mode) + umode_t mode) { return common_perm_create(OP_MKDIR, dir, dentry, AA_MAY_CREATE, S_IFDIR); @@ -274,7 +276,7 @@ } static int apparmor_path_mknod(struct path *dir, struct dentry *dentry, - int mode, unsigned int dev) + umode_t mode, unsigned int dev) { return common_perm_create(OP_MKNOD, dir, dentry, AA_MAY_CREATE, mode); } @@ -344,13 +346,12 @@ return error; } -static int apparmor_path_chmod(struct dentry *dentry, struct vfsmount *mnt, - mode_t mode) +static int apparmor_path_chmod(struct path *path, umode_t mode) { - if (!mediated_filesystem(dentry->d_inode)) + if (!mediated_filesystem(path->dentry->d_inode)) return 0; - return common_perm_mnt_dentry(OP_CHMOD, mnt, dentry, AA_MAY_CHMOD); + return common_perm_mnt_dentry(OP_CHMOD, path->mnt, path->dentry, AA_MAY_CHMOD); } static int apparmor_path_chown(struct path *path, uid_t uid, gid_t gid) @@ -512,6 +513,60 @@ !(vma->vm_flags & VM_SHARED) ? MAP_PRIVATE : 0); } +static int apparmor_sb_mount(char *dev_name, struct path *path, char *type, + unsigned long flags, void *data) +{ + struct aa_profile *profile; + int error = 0; + + /* Discard magic */ + if ((flags & MS_MGC_MSK) == MS_MGC_VAL) + flags &= ~MS_MGC_MSK; + + flags &= ~AA_MS_IGNORE_MASK; + + profile = __aa_current_profile(); + if (!unconfined(profile)) { + if (flags & MS_REMOUNT) + error = aa_remount(profile, path, flags, data); + else if (flags & MS_BIND) + error = aa_bind_mount(profile, path, dev_name, flags); + else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | + MS_UNBINDABLE)) + error = aa_mount_change_type(profile, path, flags); + else if (flags & MS_MOVE) + error = aa_move_mount(profile, path, dev_name); + else + error = aa_new_mount(profile, dev_name, path, type, + flags, data); + } + return error; +} + +static int apparmor_sb_umount(struct vfsmount *mnt, int flags) +{ + struct aa_profile *profile; + int error = 0; + + profile = __aa_current_profile(); + if (!unconfined(profile)) + error = aa_umount(profile, mnt, flags); + + return error; +} + +static int apparmor_sb_pivotroot(struct path *old_path, struct path *new_path) +{ + struct aa_profile *profile; + int error = 0; + + profile = __aa_current_profile(); + if (!unconfined(profile)) + error = aa_pivotroot(profile, old_path, new_path); + + return error; +} + static int apparmor_getprocattr(struct task_struct *task, char *name, char **value) { @@ -621,6 +676,104 @@ return error; } +static int apparmor_socket_create(int family, int type, int protocol, int kern) +{ + struct aa_profile *profile; + int error = 0; + + if (kern) + return 0; + + profile = __aa_current_profile(); + if (!unconfined(profile)) + error = aa_net_perm(OP_CREATE, profile, family, type, protocol, + NULL); + return error; +} + +static int apparmor_socket_bind(struct socket *sock, + struct sockaddr *address, int addrlen) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_BIND, sk); +} + +static int apparmor_socket_connect(struct socket *sock, + struct sockaddr *address, int addrlen) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_CONNECT, sk); +} + +static int apparmor_socket_listen(struct socket *sock, int backlog) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_LISTEN, sk); +} + +static int apparmor_socket_accept(struct socket *sock, struct socket *newsock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_ACCEPT, sk); +} + +static int apparmor_socket_sendmsg(struct socket *sock, + struct msghdr *msg, int size) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_SENDMSG, sk); +} + +static int apparmor_socket_recvmsg(struct socket *sock, + struct msghdr *msg, int size, int flags) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_RECVMSG, sk); +} + +static int apparmor_socket_getsockname(struct socket *sock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_GETSOCKNAME, sk); +} + +static int apparmor_socket_getpeername(struct socket *sock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_GETPEERNAME, sk); +} + +static int apparmor_socket_getsockopt(struct socket *sock, int level, + int optname) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_GETSOCKOPT, sk); +} + +static int apparmor_socket_setsockopt(struct socket *sock, int level, + int optname) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_SETSOCKOPT, sk); +} + +static int apparmor_socket_shutdown(struct socket *sock, int how) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_SOCK_SHUTDOWN, sk); +} + static struct security_operations apparmor_ops = { .name = "apparmor", @@ -629,6 +782,10 @@ .capget = apparmor_capget, .capable = apparmor_capable, + .sb_mount = apparmor_sb_mount, + .sb_umount = apparmor_sb_umount, + .sb_pivotroot = apparmor_sb_pivotroot, + .path_link = apparmor_path_link, .path_unlink = apparmor_path_unlink, .path_symlink = apparmor_path_symlink, @@ -652,6 +809,19 @@ .getprocattr = apparmor_getprocattr, .setprocattr = apparmor_setprocattr, + .socket_create = apparmor_socket_create, + .socket_bind = apparmor_socket_bind, + .socket_connect = apparmor_socket_connect, + .socket_listen = apparmor_socket_listen, + .socket_accept = apparmor_socket_accept, + .socket_sendmsg = apparmor_socket_sendmsg, + .socket_recvmsg = apparmor_socket_recvmsg, + .socket_getsockname = apparmor_socket_getsockname, + .socket_getpeername = apparmor_socket_getpeername, + .socket_getsockopt = apparmor_socket_getsockopt, + .socket_setsockopt = apparmor_socket_setsockopt, + .socket_shutdown = apparmor_socket_shutdown, + .cred_alloc_blank = apparmor_cred_alloc_blank, .cred_free = apparmor_cred_free, .cred_prepare = apparmor_cred_prepare, @@ -671,7 +841,7 @@ static int param_set_aabool(const char *val, const struct kernel_param *kp); static int param_get_aabool(char *buffer, const struct kernel_param *kp); -#define param_check_aabool(name, p) __param_check(name, p, int) +#define param_check_aabool param_check_bool static struct kernel_param_ops param_ops_aabool = { .set = param_set_aabool, .get = param_get_aabool @@ -679,7 +849,7 @@ static int param_set_aauint(const char *val, const struct kernel_param *kp); static int param_get_aauint(char *buffer, const struct kernel_param *kp); -#define param_check_aauint(name, p) __param_check(name, p, int) +#define param_check_aauint param_check_uint static struct kernel_param_ops param_ops_aauint = { .set = param_set_aauint, .get = param_get_aauint @@ -687,7 +857,7 @@ static int param_set_aalockpolicy(const char *val, const struct kernel_param *kp); static int param_get_aalockpolicy(char *buffer, const struct kernel_param *kp); -#define param_check_aalockpolicy(name, p) __param_check(name, p, int) +#define param_check_aalockpolicy param_check_bool static struct kernel_param_ops param_ops_aalockpolicy = { .set = param_set_aalockpolicy, .get = param_get_aalockpolicy --- linux-3.2.0.orig/security/apparmor/audit.c +++ linux-3.2.0/security/apparmor/audit.c @@ -19,7 +19,7 @@ #include "include/audit.h" #include "include/policy.h" -const char *op_table[] = { +const char *const op_table[] = { "null", "sysctl", @@ -44,6 +44,10 @@ "file_mmap", "file_mprotect", + "pivotroot", + "mount", + "umount", + "create", "post_create", "bind", @@ -73,7 +77,7 @@ "profile_remove" }; -const char *audit_mode_names[] = { +const char *const audit_mode_names[] = { "normal", "quiet_denied", "quiet", @@ -81,7 +85,7 @@ "all" }; -static char *aa_audit_type[] = { +static const char *const aa_audit_type[] = { "AUDIT", "ALLOWED", "DENIED", @@ -89,6 +93,7 @@ "STATUS", "ERROR", "KILLED" + "AUTO" }; /* @@ -133,7 +138,7 @@ struct aa_profile *profile = sa->aad.profile; pid_t pid; rcu_read_lock(); - pid = tsk->real_parent->pid; + pid = rcu_dereference(tsk->real_parent)->pid; rcu_read_unlock(); audit_log_format(ab, " parent=%d", pid); if (profile->ns != root_ns) { --- linux-3.2.0.orig/security/apparmor/policy.c +++ linux-3.2.0/security/apparmor/policy.c @@ -93,7 +93,7 @@ /* root profile namespace */ struct aa_namespace *root_ns; -const char *profile_mode_names[] = { +const char *const profile_mode_names[] = { "enforce", "complain", "kill", @@ -724,6 +724,8 @@ */ static void free_profile(struct aa_profile *profile) { + struct aa_profile *p; + AA_DEBUG("%s(%p)\n", __func__, profile); if (!profile) @@ -745,12 +747,34 @@ aa_free_file_rules(&profile->file); aa_free_cap_rules(&profile->caps); + aa_free_net_rules(&profile->net); aa_free_rlimit_rules(&profile->rlimits); aa_free_sid(profile->sid); aa_put_dfa(profile->xmatch); + aa_put_dfa(profile->policy.dfa); - aa_put_profile(profile->replacedby); + /* put the profile reference, but not via put_profile/kref_put + * replacedby can form a long chain that can result in cascading + * frees that blows the stack lp#1056078. The long chain creation + * should be addressed in profile replacement. + * This just addresses recursion of free_profile causing the + * stack to blow. + */ + for (p = profile->replacedby; p; ) { + if (atomic_dec_and_test(&p->base.count.refcount)) { + /* no more refs on p, grab its replacedby */ + struct aa_profile *next = p->replacedby; + /* break the chain */ + p->replacedby = NULL; + /* now free p, chain is broken */ + free_profile(p); + + /* follow up with next profile in the chain */ + p = next; + } else + break; + } kzfree(profile); } @@ -902,6 +926,10 @@ profile = aa_get_profile(__lookup_profile(&ns->base, hname)); read_unlock(&ns->lock); + /* the unconfined profile is not in the regular profile list */ + if (!profile && strcmp(hname, "unconfined") == 0) + profile = aa_get_profile(ns->unconfined); + /* refcount released by caller */ return profile; } --- linux-3.2.0.orig/security/apparmor/include/audit.h +++ linux-3.2.0/security/apparmor/include/audit.h @@ -25,11 +25,9 @@ struct aa_profile; -extern const char *audit_mode_names[]; +extern const char *const audit_mode_names[]; #define AUDIT_MAX_INDEX 5 -#define AUDIT_APPARMOR_AUTO 0 /* auto choose audit message type */ - enum audit_mode { AUDIT_NORMAL, /* follow normal auditing of accesses */ AUDIT_QUIET_DENIED, /* quiet all denied access messages */ @@ -45,10 +43,11 @@ AUDIT_APPARMOR_HINT, AUDIT_APPARMOR_STATUS, AUDIT_APPARMOR_ERROR, - AUDIT_APPARMOR_KILL + AUDIT_APPARMOR_KILL, + AUDIT_APPARMOR_AUTO }; -extern const char *op_table[]; +extern const char *const op_table[]; enum aa_ops { OP_NULL, @@ -74,6 +73,10 @@ OP_FMMAP, OP_FMPROT, + OP_PIVOTROOT, + OP_MOUNT, + OP_UMOUNT, + OP_CREATE, OP_POST_CREATE, OP_BIND, --- linux-3.2.0.orig/security/apparmor/include/file.h +++ linux-3.2.0/security/apparmor/include/file.h @@ -117,7 +117,7 @@ index |= AA_X_NAME; } else if (old_index == 3) { index |= AA_X_NAME | AA_X_CHILD; - } else { + } else if (old_index) { index |= AA_X_TABLE; index |= old_index - 4; } --- linux-3.2.0.orig/security/apparmor/include/net.h +++ linux-3.2.0/security/apparmor/include/net.h @@ -0,0 +1,44 @@ +/* + * AppArmor security module + * + * This file contains AppArmor network mediation definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2012 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_NET_H +#define __AA_NET_H + +#include + +#include "apparmorfs.h" + +/* struct aa_net - network confinement data + * @allowed: basic network families permissions + * @audit_network: which network permissions to force audit + * @quiet_network: which network permissions to quiet rejects + */ +struct aa_net { + u16 allow[AF_MAX]; + u16 audit[AF_MAX]; + u16 quiet[AF_MAX]; +}; + +extern struct aa_fs_entry aa_fs_entry_network[]; + +extern int aa_net_perm(int op, struct aa_profile *profile, u16 family, + int type, int protocol, struct sock *sk); +extern int aa_revalidate_sk(int op, struct sock *sk); + +static inline void aa_free_net_rules(struct aa_net *new) +{ + /* NOP */ +} + +#endif /* __AA_NET_H */ --- linux-3.2.0.orig/security/apparmor/include/mount.h +++ linux-3.2.0/security/apparmor/include/mount.h @@ -0,0 +1,54 @@ +/* + * AppArmor security module + * + * This file contains AppArmor file mediation function definitions. + * + * Copyright 2012 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_MOUNT_H +#define __AA_MOUNT_H + +#include +#include + +#include "domain.h" +#include "policy.h" + +/* mount perms */ +#define AA_MAY_PIVOTROOT 0x01 +#define AA_MAY_MOUNT 0x02 +#define AA_MAY_UMOUNT 0x04 +#define AA_AUDIT_DATA 0x40 +#define AA_CONT_MATCH 0x40 + +#define AA_MS_IGNORE_MASK (MS_KERNMOUNT | MS_NOSEC | MS_ACTIVE | MS_BORN) + +int aa_remount(struct aa_profile *profile, struct path *path, + unsigned long flags, void *data); + +int aa_bind_mount(struct aa_profile *profile, struct path *path, + const char *old_name, unsigned long flags); + + +int aa_mount_change_type(struct aa_profile *profile, struct path *path, + unsigned long flags); + +int aa_move_mount(struct aa_profile *profile, struct path *path, + const char *old_name); + +int aa_new_mount(struct aa_profile *profile, const char *dev_name, + struct path *path, const char *type, unsigned long flags, + void *data); + +int aa_umount(struct aa_profile *profile, struct vfsmount *mnt, int flags); + +int aa_pivotroot(struct aa_profile *profile, struct path *old_path, + struct path *new_path); + +#endif /* __AA_MOUNT_H */ --- linux-3.2.0.orig/security/apparmor/include/match.h +++ linux-3.2.0/security/apparmor/include/match.h @@ -116,6 +116,9 @@ 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); + void aa_dfa_free_kref(struct kref *kref); /** --- linux-3.2.0.orig/security/apparmor/include/policy.h +++ linux-3.2.0/security/apparmor/include/policy.h @@ -27,9 +27,10 @@ #include "capability.h" #include "domain.h" #include "file.h" +#include "net.h" #include "resource.h" -extern const char *profile_mode_names[]; +extern const char *const profile_mode_names[]; #define APPARMOR_NAMES_MAX_INDEX 3 #define COMPLAIN_MODE(_profile) \ @@ -129,6 +130,17 @@ struct list_head sub_ns; }; +/* struct aa_policydb - match engine for a policy + * dfa: dfa pattern match + * 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 aa_profile - basic confinement data * @base - base components of the profile (name, refcount, lists, lock ...) * @parent: parent of profile @@ -143,8 +155,10 @@ * @flags: flags controlling profile behavior * @path_flags: flags controlling path generation behavior * @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 + * @net: network controls for the profile * @rlimits: rlimits for the profile * * The AppArmor profile contains the basic confinement data. Each profile @@ -179,8 +193,10 @@ u32 path_flags; int size; + struct aa_policydb policy; struct aa_file_rules file; struct aa_caps caps; + struct aa_net net; struct aa_rlimit rlimits; }; --- linux-3.2.0.orig/security/apparmor/include/resource.h +++ linux-3.2.0/security/apparmor/include/resource.h @@ -18,6 +18,8 @@ #include #include +#include "apparmorfs.h" + struct aa_profile; /* struct aa_rlimit - rlimit settings for the profile @@ -32,6 +34,8 @@ struct rlimit limits[RLIM_NLIMITS]; }; +extern struct aa_fs_entry aa_fs_entry_rlimit[]; + int aa_map_resource(int resource); int aa_task_setrlimit(struct aa_profile *profile, struct task_struct *, unsigned int resource, struct rlimit *new_rlim); --- linux-3.2.0.orig/security/apparmor/include/apparmor.h +++ linux-3.2.0/security/apparmor/include/apparmor.h @@ -19,6 +19,20 @@ #include "match.h" +/* + * Class of mediation types in the AppArmor policy db + */ +#define AA_CLASS_ENTRY 0 +#define AA_CLASS_UNKNOWN 1 +#define AA_CLASS_FILE 2 +#define AA_CLASS_CAP 3 +#define AA_CLASS_NET 4 +#define AA_CLASS_RLIMITS 5 +#define AA_CLASS_DOMAIN 6 +#define AA_CLASS_MOUNT 7 + +#define AA_CLASS_LAST AA_CLASS_MOUNT + /* Control parameters settable through module/boot flags */ extern enum audit_mode aa_g_audit; extern int aa_g_audit_header; @@ -81,7 +95,7 @@ unsigned int start) { /* the null transition only needs the string's null terminator byte */ - return aa_dfa_match_len(dfa, start, "", 1); + return aa_dfa_next(dfa, start, 0); } static inline bool mediated_filesystem(struct inode *inode) --- linux-3.2.0.orig/security/apparmor/include/apparmorfs.h +++ linux-3.2.0/security/apparmor/include/apparmorfs.h @@ -15,6 +15,50 @@ #ifndef __AA_APPARMORFS_H #define __AA_APPARMORFS_H +enum aa_fs_type { + AA_FS_TYPE_BOOLEAN, + AA_FS_TYPE_STRING, + AA_FS_TYPE_U64, + AA_FS_TYPE_FOPS, + AA_FS_TYPE_DIR, +}; + +struct aa_fs_entry; + +struct aa_fs_entry { + const char *name; + struct dentry *dentry; + umode_t mode; + enum aa_fs_type v_type; + union { + bool boolean; + char *string; + unsigned long u64; + struct aa_fs_entry *files; + } v; + const struct file_operations *file_ops; +}; + +extern const struct file_operations aa_fs_seq_file_ops; + +#define AA_FS_FILE_BOOLEAN(_name, _value) \ + { .name = (_name), .mode = 0444, \ + .v_type = AA_FS_TYPE_BOOLEAN, .v.boolean = (_value), \ + .file_ops = &aa_fs_seq_file_ops } +#define AA_FS_FILE_STRING(_name, _value) \ + { .name = (_name), .mode = 0444, \ + .v_type = AA_FS_TYPE_STRING, .v.string = (_value), \ + .file_ops = &aa_fs_seq_file_ops } +#define AA_FS_FILE_U64(_name, _value) \ + { .name = (_name), .mode = 0444, \ + .v_type = AA_FS_TYPE_U64, .v.u64 = (_value), \ + .file_ops = &aa_fs_seq_file_ops } +#define AA_FS_FILE_FOPS(_name, _mode, _fops) \ + { .name = (_name), .v_type = AA_FS_TYPE_FOPS, \ + .mode = (_mode), .file_ops = (_fops) } +#define AA_FS_DIR(_name, _value) \ + { .name = (_name), .v_type = AA_FS_TYPE_DIR, .v.files = (_value) } + extern void __init aa_destroy_aafs(void); #endif /* __AA_APPARMORFS_H */ --- linux-3.2.0.orig/security/apparmor/include/domain.h +++ linux-3.2.0/security/apparmor/include/domain.h @@ -23,6 +23,8 @@ char **table; }; +struct aa_profile *x_table_lookup(struct aa_profile *profile, u32 xindex); + int apparmor_bprm_set_creds(struct linux_binprm *bprm); int apparmor_bprm_secureexec(struct linux_binprm *bprm); void apparmor_bprm_committing_creds(struct linux_binprm *bprm); --- linux-3.2.0.orig/security/apparmor/include/path.h +++ linux-3.2.0/security/apparmor/include/path.h @@ -26,6 +26,7 @@ PATH_MEDIATE_DELETED = 0x10000, /* mediate deleted paths */ }; -int aa_get_name(struct path *path, int flags, char **buffer, const char **name); +int aa_path_name(struct path *path, int flags, char **buffer, + const char **name, const char **info); #endif /* __AA_PATH_H */ --- linux-3.2.0.orig/security/tomoyo/tomoyo.c +++ linux-3.2.0/security/tomoyo/tomoyo.c @@ -186,7 +186,7 @@ * Returns 0 on success, negative value otherwise. */ static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry, - int mode) + umode_t mode) { struct path path = { parent->mnt, dentry }; return tomoyo_path_number_perm(TOMOYO_TYPE_MKDIR, &path, @@ -234,7 +234,7 @@ * Returns 0 on success, negative value otherwise. */ static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry, - int mode, unsigned int dev) + umode_t mode, unsigned int dev) { struct path path = { parent->mnt, dentry }; int type = TOMOYO_TYPE_CREATE; @@ -353,17 +353,14 @@ /** * tomoyo_path_chmod - Target for security_path_chmod(). * - * @dentry: Pointer to "struct dentry". - * @mnt: Pointer to "struct vfsmount". - * @mode: DAC permission mode. + * @path: Pointer to "struct path". + * @mode: DAC permission mode. * * Returns 0 on success, negative value otherwise. */ -static int tomoyo_path_chmod(struct dentry *dentry, struct vfsmount *mnt, - mode_t mode) +static int tomoyo_path_chmod(struct path *path, umode_t mode) { - struct path path = { mnt, dentry }; - return tomoyo_path_number_perm(TOMOYO_TYPE_CHMOD, &path, + return tomoyo_path_number_perm(TOMOYO_TYPE_CHMOD, path, mode & S_IALLUGO); } --- linux-3.2.0.orig/security/tomoyo/securityfs_if.c +++ linux-3.2.0/security/tomoyo/securityfs_if.c @@ -224,7 +224,7 @@ * * Returns nothing. */ -static void __init tomoyo_create_entry(const char *name, const mode_t mode, +static void __init tomoyo_create_entry(const char *name, const umode_t mode, struct dentry *parent, const u8 key) { securityfs_create_file(name, mode, parent, ((u8 *) NULL) + key, --- linux-3.2.0.orig/security/tomoyo/load_policy.c +++ linux-3.2.0/security/tomoyo/load_policy.c @@ -102,7 +102,7 @@ envp[0] = "HOME=/"; envp[1] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin"; envp[2] = NULL; - call_usermodehelper(argv[0], argv, envp, 1); + call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC); tomoyo_check_profile(); } --- linux-3.2.0.orig/security/tomoyo/util.c +++ linux-3.2.0/security/tomoyo/util.c @@ -492,13 +492,13 @@ if (d < '0' || d > '7' || e < '0' || e > '7') break; c = tomoyo_make_byte(c, d, e); - if (tomoyo_invalid(c)) - continue; /* pattern is not \000 */ + if (c <= ' ' || c >= 127) + continue; } goto out; } else if (in_repetition && c == '/') { goto out; - } else if (tomoyo_invalid(c)) { + } else if (c <= ' ' || c >= 127) { goto out; } } --- linux-3.2.0.orig/security/tomoyo/mount.c +++ linux-3.2.0/security/tomoyo/mount.c @@ -199,30 +199,32 @@ if (flags & MS_REMOUNT) { type = tomoyo_mounts[TOMOYO_MOUNT_REMOUNT]; flags &= ~MS_REMOUNT; - } - if (flags & MS_MOVE) { - type = tomoyo_mounts[TOMOYO_MOUNT_MOVE]; - flags &= ~MS_MOVE; - } - if (flags & MS_BIND) { + } else if (flags & MS_BIND) { type = tomoyo_mounts[TOMOYO_MOUNT_BIND]; flags &= ~MS_BIND; - } - if (flags & MS_UNBINDABLE) { - type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_UNBINDABLE]; - flags &= ~MS_UNBINDABLE; - } - if (flags & MS_PRIVATE) { + } else if (flags & MS_SHARED) { + if (flags & (MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE)) + return -EINVAL; + type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_SHARED]; + flags &= ~MS_SHARED; + } else if (flags & MS_PRIVATE) { + if (flags & (MS_SHARED | MS_SLAVE | MS_UNBINDABLE)) + return -EINVAL; type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_PRIVATE]; flags &= ~MS_PRIVATE; - } - if (flags & MS_SLAVE) { + } else if (flags & MS_SLAVE) { + if (flags & (MS_SHARED | MS_PRIVATE | MS_UNBINDABLE)) + return -EINVAL; type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_SLAVE]; flags &= ~MS_SLAVE; - } - if (flags & MS_SHARED) { - type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_SHARED]; - flags &= ~MS_SHARED; + } else if (flags & MS_UNBINDABLE) { + if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE)) + return -EINVAL; + type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_UNBINDABLE]; + flags &= ~MS_UNBINDABLE; + } else if (flags & MS_MOVE) { + type = tomoyo_mounts[TOMOYO_MOUNT_MOVE]; + flags &= ~MS_MOVE; } if (!type) type = ""; --- linux-3.2.0.orig/security/integrity/ima/Kconfig +++ linux-3.2.0/security/integrity/ima/Kconfig @@ -9,7 +9,7 @@ select CRYPTO_HMAC select CRYPTO_MD5 select CRYPTO_SHA1 - select TCG_TPM if !S390 && !UML + select TCG_TPM if HAS_IOMEM && !UML select TCG_TIS if TCG_TPM help The Trusted Computing Group(TCG) runtime Integrity --- linux-3.2.0.orig/security/integrity/ima/ima_queue.c +++ linux-3.2.0/security/integrity/ima/ima_queue.c @@ -23,6 +23,8 @@ #include #include "ima.h" +#define AUDIT_CAUSE_LEN_MAX 32 + LIST_HEAD(ima_measurements); /* list of all measurements */ /* key: inode (before secure-hashing a file) */ @@ -94,7 +96,8 @@ result = tpm_pcr_extend(TPM_ANY_NUM, CONFIG_IMA_MEASURE_PCR_IDX, hash); if (result != 0) - pr_err("IMA: Error Communicating to TPM chip\n"); + pr_err("IMA: Error Communicating to TPM chip, result: %d\n", + result); return result; } @@ -106,14 +109,16 @@ { u8 digest[IMA_DIGEST_SIZE]; const char *audit_cause = "hash_added"; + char tpm_audit_cause[AUDIT_CAUSE_LEN_MAX]; int audit_info = 1; - int result = 0; + int result = 0, tpmresult = 0; mutex_lock(&ima_extend_list_mutex); if (!violation) { memcpy(digest, entry->digest, sizeof digest); if (ima_lookup_digest_entry(digest)) { audit_cause = "hash_exists"; + result = -EEXIST; goto out; } } @@ -128,9 +133,11 @@ if (violation) /* invalidate pcr */ memset(digest, 0xff, sizeof digest); - result = ima_pcr_extend(digest); - if (result != 0) { - audit_cause = "TPM error"; + tpmresult = ima_pcr_extend(digest); + if (tpmresult != 0) { + snprintf(tpm_audit_cause, AUDIT_CAUSE_LEN_MAX, "TPM_error(%d)", + tpmresult); + audit_cause = tpm_audit_cause; audit_info = 0; } out: --- linux-3.2.0.orig/security/integrity/ima/ima_api.c +++ linux-3.2.0/security/integrity/ima/ima_api.c @@ -178,8 +178,8 @@ strncpy(entry->template.file_name, filename, IMA_EVENT_NAME_LEN_MAX); result = ima_store_template(entry, violation, inode); - if (!result) + if (!result || result == -EEXIST) iint->flags |= IMA_MEASURED; - else + if (result < 0) kfree(entry); } --- linux-3.2.0.orig/security/integrity/evm/evm_crypto.c +++ linux-3.2.0/security/integrity/evm/evm_crypto.c @@ -175,9 +175,9 @@ rc = __vfs_setxattr_noperm(dentry, XATTR_NAME_EVM, &xattr_data, sizeof(xattr_data), 0); - } - else if (rc == -ENODATA) + } else if (rc == -ENODATA && inode->i_op->removexattr) { rc = inode->i_op->removexattr(dentry, XATTR_NAME_EVM); + } return rc; } --- linux-3.2.0.orig/security/selinux/netnode.c +++ linux-3.2.0/security/selinux/netnode.c @@ -174,7 +174,8 @@ if (sel_netnode_hash[idx].size == SEL_NETNODE_HASH_BKT_LIMIT) { struct sel_netnode *tail; tail = list_entry( - rcu_dereference(sel_netnode_hash[idx].list.prev), + rcu_dereference_protected(sel_netnode_hash[idx].list.prev, + lockdep_is_held(&sel_netnode_lock)), struct sel_netnode, list); list_del_rcu(&tail->list); kfree_rcu(tail, rcu); --- linux-3.2.0.orig/security/selinux/hooks.c +++ linux-3.2.0/security/selinux/hooks.c @@ -1415,8 +1415,7 @@ #endif /* Check whether a task is allowed to use a capability. */ -static int task_has_capability(struct task_struct *tsk, - const struct cred *cred, +static int cred_has_capability(const struct cred *cred, int cap, int audit) { struct common_audit_data ad; @@ -1427,7 +1426,7 @@ int rc; COMMON_AUDIT_DATA_INIT(&ad, CAP); - ad.tsk = tsk; + ad.tsk = current; ad.u.cap = cap; switch (CAP_TO_INDEX(cap)) { @@ -1868,16 +1867,16 @@ * the CAP_SETUID and CAP_SETGID capabilities using the capable hook. */ -static int selinux_capable(struct task_struct *tsk, const struct cred *cred, - struct user_namespace *ns, int cap, int audit) +static int selinux_capable(const struct cred *cred, struct user_namespace *ns, + int cap, int audit) { int rc; - rc = cap_capable(tsk, cred, ns, cap, audit); + rc = cap_capable(cred, ns, cap, audit); if (rc) return rc; - return task_has_capability(tsk, cred, cap, audit); + return cred_has_capability(cred, cap, audit); } static int selinux_quotactl(int cmds, int type, int id, struct super_block *sb) @@ -1954,8 +1953,7 @@ { int rc, cap_sys_admin = 0; - rc = selinux_capable(current, current_cred(), - &init_user_ns, CAP_SYS_ADMIN, + rc = selinux_capable(current_cred(), &init_user_ns, CAP_SYS_ADMIN, SECURITY_CAP_NOAUDIT); if (rc == 0) cap_sys_admin = 1; @@ -2000,6 +1998,13 @@ new_tsec->sid = old_tsec->exec_sid; /* Reset exec SID on execve. */ new_tsec->exec_sid = 0; + + /* + * Minimize confusion: if no_new_privs and a transition is + * explicitly requested, then fail the exec. + */ + if (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS) + return -EPERM; } else { /* Check for a default transition on this program. */ rc = security_transition_sid(old_tsec->sid, isec->sid, @@ -2012,7 +2017,8 @@ COMMON_AUDIT_DATA_INIT(&ad, PATH); ad.u.path = bprm->file->f_path; - if (bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID) + if ((bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID) || + (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS)) new_tsec->sid = old_tsec->sid; if (new_tsec->sid == old_tsec->sid) { @@ -2859,8 +2865,7 @@ * and lack of permission just means that we fall back to the * in-core context value, not a denial. */ - error = selinux_capable(current, current_cred(), - &init_user_ns, CAP_MAC_ADMIN, + error = selinux_capable(current_cred(), &init_user_ns, CAP_MAC_ADMIN, SECURITY_CAP_NOAUDIT); if (!error) error = security_sid_to_context_force(isec->sid, &context, @@ -2993,8 +2998,8 @@ case KDSKBENT: case KDSKBSENT: - error = task_has_capability(current, cred, CAP_SYS_TTY_CONFIG, - SECURITY_CAP_AUDIT); + error = cred_has_capability(cred, CAP_SYS_TTY_CONFIG, + SECURITY_CAP_AUDIT); break; /* default case assumes that the command will go --- linux-3.2.0.orig/security/selinux/xfrm.c +++ linux-3.2.0/security/selinux/xfrm.c @@ -310,7 +310,7 @@ if (old_ctx) { new_ctx = kmalloc(sizeof(*old_ctx) + old_ctx->ctx_len, - GFP_KERNEL); + GFP_ATOMIC); if (!new_ctx) return -ENOMEM; --- linux-3.2.0.orig/security/selinux/selinuxfs.c +++ linux-3.2.0/security/selinux/selinuxfs.c @@ -1238,6 +1238,7 @@ kfree(bool_pending_names[i]); kfree(bool_pending_names); kfree(bool_pending_values); + bool_num = 0; bool_pending_names = NULL; bool_pending_values = NULL; --- linux-3.2.0.orig/security/yama/yama_lsm.c +++ linux-3.2.0/security/yama/yama_lsm.c @@ -0,0 +1,443 @@ +/* + * Yama Linux Security Module + * + * Author: Kees Cook + * + * Copyright (C) 2010 Canonical, Ltd. + * Copyright (C) 2011 The Chromium OS Authors. + * + * 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 + +static int ptrace_scope = 1; +static int protected_sticky_symlinks = 1; +static int protected_nonaccess_hardlinks = 1; + +/* describe a ptrace relationship for potential exception */ +struct ptrace_relation { + struct task_struct *tracer; + struct task_struct *tracee; + struct list_head node; +}; + +static LIST_HEAD(ptracer_relations); +static DEFINE_SPINLOCK(ptracer_relations_lock); + +/** + * yama_ptracer_add - add/replace an exception for this tracer/tracee pair + * @tracer: the task_struct of the process doing the ptrace + * @tracee: the task_struct of the process to be ptraced + * + * Each tracee can have, at most, one tracer registered. Each time this + * is called, the prior registered tracer will be replaced for the tracee. + * + * Returns 0 if relationship was added, -ve on error. + */ +static int yama_ptracer_add(struct task_struct *tracer, + struct task_struct *tracee) +{ + int rc = 0; + struct ptrace_relation *added; + struct ptrace_relation *entry, *relation = NULL; + + added = kmalloc(sizeof(*added), GFP_KERNEL); + if (!added) + return -ENOMEM; + + spin_lock_bh(&ptracer_relations_lock); + list_for_each_entry(entry, &ptracer_relations, node) + if (entry->tracee == tracee) { + relation = entry; + break; + } + if (!relation) { + relation = added; + relation->tracee = tracee; + list_add(&relation->node, &ptracer_relations); + } + relation->tracer = tracer; + + spin_unlock_bh(&ptracer_relations_lock); + if (added != relation) + kfree(added); + + return rc; +} + +/** + * yama_ptracer_del - remove exceptions related to the given tasks + * @tracer: remove any relation where tracer task matches + * @tracee: remove any relation where tracee task matches + */ +static void yama_ptracer_del(struct task_struct *tracer, + struct task_struct *tracee) +{ + struct ptrace_relation *relation, *safe; + + spin_lock_bh(&ptracer_relations_lock); + list_for_each_entry_safe(relation, safe, &ptracer_relations, node) + if (relation->tracee == tracee || + (tracer && relation->tracer == tracer)) { + list_del(&relation->node); + kfree(relation); + } + spin_unlock_bh(&ptracer_relations_lock); +} + +/** + * yama_task_free - check for task_pid to remove from exception list + * @task: task being removed + */ +void yama_task_free(struct task_struct *task) +{ + yama_ptracer_del(task, task); +} + +/** + * yama_task_prctl - check for Yama-specific prctl operations + * @option: operation + * @arg2: argument + * @arg3: argument + * @arg4: argument + * @arg5: argument + * + * Return 0 on success, -ve on error. -ENOSYS is returned when Yama + * does not handle the given option. + */ +int yama_task_prctl(int option, unsigned long arg2, unsigned long arg3, + unsigned long arg4, unsigned long arg5) +{ + int rc; + struct task_struct *myself = current; + + rc = cap_task_prctl(option, arg2, arg3, arg4, arg5); + if (rc != -ENOSYS) + return rc; + + switch (option) { + case PR_SET_PTRACER: + /* Since a thread can call prctl(), find the group leader + * before calling _add() or _del() on it, since we want + * process-level granularity of control. The tracer group + * leader checking is handled later when walking the ancestry + * at the time of PTRACE_ATTACH check. + */ + rcu_read_lock(); + if (!thread_group_leader(myself)) + myself = rcu_dereference(myself->group_leader); + get_task_struct(myself); + rcu_read_unlock(); + + if (arg2 == 0) { + yama_ptracer_del(NULL, myself); + rc = 0; + } + else if (arg2 == PR_SET_PTRACER_ANY) { + rc = yama_ptracer_add(NULL, myself); + } else { + struct task_struct *tracer; + + rcu_read_lock(); + tracer = find_task_by_vpid(arg2); + if (tracer) + get_task_struct(tracer); + else + rc = -EINVAL; + rcu_read_unlock(); + + if (tracer) { + rc = yama_ptracer_add(tracer, myself); + put_task_struct(tracer); + } + } + + put_task_struct(myself); + break; + } + + return rc; +} + +/** + * task_is_descendant - walk up a process family tree looking for a match + * @parent: the process to compare against while walking up from child + * @child: the process to start from while looking upwards for parent + * + * Returns 1 if child is a descendant of parent, 0 if not. + */ +static int task_is_descendant(struct task_struct *parent, + struct task_struct *child) +{ + int rc = 0; + struct task_struct *walker = child; + + if (!parent || !child) + return 0; + + rcu_read_lock(); + if (!thread_group_leader(parent)) + parent = rcu_dereference(parent->group_leader); + while (walker->pid > 0) { + if (!thread_group_leader(walker)) + walker = rcu_dereference(walker->group_leader); + if (walker == parent) { + rc = 1; + break; + } + walker = rcu_dereference(walker->real_parent); + } + rcu_read_unlock(); + + return rc; +} + +/** + * ptracer_exception_found - tracer registered as exception for this tracee + * @tracer: the task_struct of the process attempting ptrace + * @tracee: the task_struct of the process to be ptraced + * + * Returns 1 if tracer has is ptracer exception ancestor for tracee. + */ +static int ptracer_exception_found(struct task_struct *tracer, + struct task_struct *tracee) +{ + int rc = 0; + struct ptrace_relation *relation; + struct task_struct *parent = NULL; + bool found = false; + + spin_lock_bh(&ptracer_relations_lock); + rcu_read_lock(); + if (!thread_group_leader(tracee)) + tracee = rcu_dereference(tracee->group_leader); + list_for_each_entry(relation, &ptracer_relations, node) + if (relation->tracee == tracee) { + parent = relation->tracer; + found = true; + break; + } + + if (found && (parent == NULL || task_is_descendant(parent, tracer))) + rc = 1; + rcu_read_unlock(); + spin_unlock_bh(&ptracer_relations_lock); + + return rc; +} + +/** + * yama_ptrace_access_check - validate PTRACE_ATTACH calls + * @child: task that current task is attempting to ptrace + * @mode: ptrace attach mode + * + * Returns 0 if following the ptrace is allowed, -ve on error. + */ +int yama_ptrace_access_check(struct task_struct *child, + unsigned int mode) +{ + int rc; + + /* If standard caps disallows it, so does Yama. We should + * only tighten restrictions further. + */ + rc = cap_ptrace_access_check(child, mode); + if (rc) + return rc; + + /* require ptrace target be a child of ptracer on attach */ + if (mode == PTRACE_MODE_ATTACH && + ptrace_scope && + !task_is_descendant(current, child) && + !ptracer_exception_found(current, child) && + !capable(CAP_SYS_PTRACE)) + rc = -EPERM; + + if (rc) { + char name[sizeof(current->comm)]; + printk_ratelimited(KERN_NOTICE "ptrace of non-child" + " pid %d was attempted by: %s (pid %d)\n", + child->pid, + get_task_comm(name, current), + current->pid); + } + + return rc; +} + +/** + * yama_inode_follow_link - check for symlinks in sticky world-writeable dirs + * @dentry: The inode/dentry of the symlink + * @nameidata: The path data of the symlink + * + * In the case of the protected_sticky_symlinks sysctl being enabled, + * CAP_DAC_OVERRIDE needs to be specifically ignored if the symlink is + * in a sticky world-writable directory. This is to protect privileged + * processes from failing races against path names that may change out + * from under them by way of other users creating malicious symlinks. + * It will permit symlinks to only be followed when outside a sticky + * world-writable directory, or when the uid of the symlink and follower + * match, or when the directory owner matches the symlink's owner. + * + * Returns 0 if following the symlink is allowed, -ve on error. + */ +int yama_inode_follow_link(struct dentry *dentry, + struct nameidata *nameidata) +{ + int rc = 0; + const struct inode *parent; + const struct inode *inode; + const struct cred *cred; + + if (!protected_sticky_symlinks) + return 0; + + /* if inode isn't a symlink, don't try to evaluate blocking it */ + inode = dentry->d_inode; + if (!S_ISLNK(inode->i_mode)) + return 0; + + /* owner and follower match? */ + cred = current_cred(); + if (cred->fsuid == inode->i_uid) + return 0; + + /* check parent directory mode and owner */ + spin_lock(&dentry->d_lock); + parent = dentry->d_parent->d_inode; + if ((parent->i_mode & (S_ISVTX|S_IWOTH)) == (S_ISVTX|S_IWOTH) && + parent->i_uid != inode->i_uid) { + rc = -EACCES; + } + spin_unlock(&dentry->d_lock); + + if (rc) { + char name[sizeof(current->comm)]; + printk_ratelimited(KERN_NOTICE "non-matching-uid symlink " + "following attempted in sticky world-writable " + "directory by %s (fsuid %d != %d)\n", + get_task_comm(name, current), + cred->fsuid, inode->i_uid); + } + + return rc; +} + +static int yama_generic_permission(struct inode *inode, int mask) +{ + int retval; + + if (inode->i_op->permission) + retval = inode->i_op->permission(inode, mask); + else + retval = generic_permission(inode, mask); + return retval; +} + +/** + * yama_path_link - verify that hardlinking is allowed + * @old_dentry: the source inode/dentry to hardlink from + * @new_dir: target directory + * @new_dentry: the target inode/dentry to hardlink to + * + * Block hardlink when all of: + * - fsuid does not match inode + * - not CAP_FOWNER + * - and at least one of: + * - inode is not a regular file + * - inode is setuid + * - inode is setgid and group-exec + * - access failure for read and write + * + * Returns 0 if successful, -ve on error. + */ +int yama_path_link(struct dentry *old_dentry, struct path *new_dir, + struct dentry *new_dentry) +{ + int rc = 0; + struct inode *inode = old_dentry->d_inode; + const int mode = inode->i_mode; + const struct cred *cred = current_cred(); + + if (!protected_nonaccess_hardlinks) + return 0; + + if (cred->fsuid != inode->i_uid && + (!S_ISREG(mode) || (mode & S_ISUID) || + ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) || + (yama_generic_permission(inode, MAY_READ | MAY_WRITE))) && + !capable(CAP_FOWNER)) { + char name[sizeof(current->comm)]; + printk_ratelimited(KERN_NOTICE "non-accessible hardlink" + " creation was attempted by: %s (fsuid %d)\n", + get_task_comm(name, current), + cred->fsuid); + rc = -EPERM; + } + + return rc; +} + +#ifdef CONFIG_SYSCTL +static int zero; +static int one = 1; + +struct ctl_path yama_sysctl_path[] = { + { .procname = "kernel", }, + { .procname = "yama", }, + { } +}; + +static struct ctl_table yama_sysctl_table[] = { + { + .procname = "protected_sticky_symlinks", + .data = &protected_sticky_symlinks, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &zero, + .extra2 = &one, + }, + { + .procname = "protected_nonaccess_hardlinks", + .data = &protected_nonaccess_hardlinks, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &zero, + .extra2 = &one, + }, + { + .procname = "ptrace_scope", + .data = &ptrace_scope, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &zero, + .extra2 = &one, + }, + { } +}; +#endif /* CONFIG_SYSCTL */ + +static __init int yama_init(void) +{ + printk(KERN_INFO "Yama: becoming mindful.\n"); + +#ifdef CONFIG_SYSCTL + if (!register_sysctl_paths(yama_sysctl_path, yama_sysctl_table)) + panic("Yama: sysctl registration failed.\n"); +#endif + + return 0; +} + +security_initcall(yama_init); --- linux-3.2.0.orig/security/yama/Kconfig +++ linux-3.2.0/security/yama/Kconfig @@ -0,0 +1,14 @@ +config SECURITY_YAMA + bool "Yama support" + depends on SECURITY + select SECURITYFS + select SECURITY_PATH + default n + help + This selects Yama, which extends DAC support with additional + system-wide security settings beyond regular Linux discretionary + access controls. Currently available are symlink, hardlink, and + ptrace scope restrictions. Further information can be found in + Documentation/security/Yama.txt. + + If you are unsure how to answer this question, answer N. --- linux-3.2.0.orig/security/yama/Makefile +++ linux-3.2.0/security/yama/Makefile @@ -0,0 +1,3 @@ +obj-$(CONFIG_SECURITY_YAMA) := yama.o + +yama-y := yama_lsm.o --- linux-3.2.0.orig/security/keys/keyctl.c +++ linux-3.2.0/security/keys/keyctl.c @@ -1067,12 +1067,12 @@ ret = rw_copy_check_uvector(WRITE, _payload_iov, ioc, ARRAY_SIZE(iovstack), iovstack, &iov, 1); if (ret < 0) - return ret; + goto err; if (ret == 0) goto no_payload_free; ret = keyctl_instantiate_key_common(id, iov, ioc, ret, ringid); - +err: if (iov != iovstack) kfree(iov); return ret; --- linux-3.2.0.orig/security/keys/process_keys.c +++ linux-3.2.0/security/keys/process_keys.c @@ -54,7 +54,7 @@ kenter("%p{%u}", user, user->uid); - if (user->uid_keyring) { + if (user->uid_keyring && user->session_keyring) { kleave(" = 0 [exist]"); return 0; } --- linux-3.2.0.orig/security/keys/request_key.c +++ linux-3.2.0/security/keys/request_key.c @@ -91,7 +91,7 @@ * Call a usermode helper with a specific session keyring. */ static int call_usermodehelper_keys(char *path, char **argv, char **envp, - struct key *session_keyring, enum umh_wait wait) + struct key *session_keyring, int wait) { gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? GFP_ATOMIC : GFP_KERNEL; struct subprocess_info *info = --- linux-3.2.0.orig/security/keys/compat.c +++ linux-3.2.0/security/keys/compat.c @@ -40,12 +40,12 @@ ARRAY_SIZE(iovstack), iovstack, &iov, 1); if (ret < 0) - return ret; + goto err; if (ret == 0) goto no_payload_free; ret = keyctl_instantiate_key_common(id, iov, ioc, ret, ringid); - +err: if (iov != iovstack) kfree(iov); return ret; --- linux-3.2.0.orig/debian.master/deviations.txt +++ linux-3.2.0/debian.master/deviations.txt @@ -0,0 +1,13 @@ +HYPER-V DRIVERS +F: drivers/hid/hid-hyperv.c +F: drivers/hv/* +F: drivers/scsi/storvsc_drv.c +F: drivers/staging/hv/* + + Updated version of the Hyper-V storage, network, and mouse drivers + from those planned for v3.4. The drivers in v3.2 simply do not + work correctly dropping access to the drive after a few seconds + of sustained use. Testing with the Azure folk showed that the + v3.4 drivers worked well in the v3.2 codebase. Intial version + from linux-next pre-merge window, update from v3.4-stable once + it releases. --- linux-3.2.0.orig/debian.master/control +++ linux-3.2.0/debian.master/control @@ -0,0 +1,625 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.8.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, dpkg (>= 1.16.0~ubuntu4), util-linux +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Build-Conflicts: findutils (= 4.4.1-1ubuntu1) +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-precise.git + +Package: linux-source-3.2.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 3.2.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.2.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-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.2.0 + This package provides the various documents in the 3.2.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-tools-common +Architecture: all +Section: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.2.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.2.0. + +Package: linux-headers-3.2.0-54 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-3 +Description: Header files related to Linux kernel version 3.2.0 + This package provides kernel header files for version 3.2.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc ppc64 armel armhf +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +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-tools-3.2.0-54 +Architecture: i386 amd64 powerpc ppc64 armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.2.0-54 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.2.0-54 on + 32 bit x86. + + +Package: linux-image-3.2.0-54-generic +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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-image-extra-3.2.0-54-generic +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-generic +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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-3.2.0-54-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 SMP + This package provides kernel header files for version 3.2.0 on + 32 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 SMP + This package provides a kernel debug image for version 3.2.0 on + 32 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-image-3.2.0-54-generic-pae +Architecture: i386 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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 32 bit desktop or server systems with more than 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-generic-pae +Architecture: i386 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-generic-pae +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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 32 bit desktop or server systems with more than 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 SMP + This package provides kernel header files for version 3.2.0 on + 32 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 SMP + This package provides a kernel debug image for version 3.2.0 on + 32 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-image-3.2.0-54-highbank +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on Calxeda highbank ARM Server + This package contains the Linux kernel image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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 Calxeda highbank processors. + . + Targeted towards Calxeda highbank ARM Server + . + You likely do not want to install this package directly. Instead, install + the linux-highbank meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-highbank +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-highbank +Description: Linux kernel image for version 3.2.0 on Calxeda highbank ARM Server + This package contains the Linux kernel image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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 Calxeda highbank processors. + . + Targeted towards Calxeda highbank ARM Server + . + You likely do not want to install this package directly. Instead, install + the linux-highbank meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-highbank +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on Calxeda highbank ARM Server + This package provides kernel header files for version 3.2.0 on + Calxeda highbank ARM Server. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-highbank-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on Calxeda highbank ARM Server + This package provides a kernel debug image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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-image-3.2.0-54-omap +Architecture: armel armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package contains the Linux kernel image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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 TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-omap +Architecture: armel armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-omap +Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package contains the Linux kernel image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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 TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-omap +Architecture: armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package provides kernel header files for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-omap-dbgsym +Architecture: armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package provides a kernel debug image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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-image-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 64-bit PowerPC 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 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-powerpc64-smp +Description: Linux kernel image for version 3.2.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 64-bit PowerPC 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 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 64-bit PowerPC SMP + This package provides kernel header files for version 3.2.0 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-powerpc64-smp-dbgsym +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 3.2.0 on + 64-bit PowerPC 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-image-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 32-bit PowerPC 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 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-powerpc-smp +Description: Linux kernel image for version 3.2.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 32-bit PowerPC 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 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32-bit PowerPC SMP + This package provides kernel header files for version 3.2.0 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 3.2.0 on + 32-bit PowerPC 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-image-3.2.0-54-virtual +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 Virtual Guests + This package contains the Linux kernel image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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 Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-virtual +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-virtual +Description: Linux kernel image for version 3.2.0 on 32 bit x86 Virtual Guests + This package contains the Linux kernel image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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 Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 Virtual Guests + This package provides kernel header files for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 Virtual Guests + This package provides a kernel debug image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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. --- linux-3.2.0.orig/debian.master/changelog.historical +++ linux-3.2.0/debian.master/changelog.historical @@ -0,0 +1,4171 @@ + +linux (2.6.28-9.31) jaunty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: cpufreq-nforce2: probe failures are not errors + - LP: #332170 + * SAUCE: mmc: add MODALIAS linkage for MMC/SD devices + - LP: #30335 + * remove test-suspend script + - LP: #333856 + + [ Kees Cook ] + + * handle relative paths in modules.dep + Fixes 2.6.28-9.30 FTBS. + + [ Upstream Kernel Changes ] + + * ricoh_mmc: Handle newer models of Ricoh controllers + + -- Tim Gardner Wed, 11 Mar 2009 08:19:24 -0600 + +linux (2.6.28-9.30) jaunty; urgency=low + + [ Amit Kucheria ] + + * ARM:mx51 Add SoC and board support for mx51 platforms + * ARM:mx51 Add CONFIG_ARCH_MXC_CANONICAL to disable parts of Freescale's + code + * MMC: Add support for 8-bit cards + * Add ARM:MX51 SoC support to the build system + * ARM: Make ARM arch aware of ubuntu/ drivers + * ARM: Add imx51 configuration + * Disable d-i modules for imx51 and mv78xx0 + * Disable Apparmor on boot for ARM + * Updating imx51 config + + [ Jason Liu ] + + * Do not use OOB with MLC NAND + + [ Richard Zhu ] + + * Support the eMMC4.3 card + + [ Rob Herring ] + + * ARM: Add more cache memory types macros + + [ Tim Gardner ] + + * Set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y for i386/amd64/lpia + + [ Manoj Iyer ] + + * Enable CONFIG_RTL8187SE=m + + [ Upstream Kernel Changes ] + + * USB: EHCI: slow down ITD reuse + - LP: #329437 + + -- Tim Gardner Sun, 08 Mar 2009 14:14:15 -0600 + +linux (2.6.28-9.29) jaunty; urgency=low + + [ Andy Whitcroft ] + + * link-headers -- only link directories which do not already exist + - LP: #315252 + + [ Daniel Marjamäki ] + + * SAUCE: (drop after 2.6.28) netxen: fix memory leak in + drivers/net/netxen_nic_init.c + - LP: #330813 + + [ Dhananjay Phadke ] + + * SAUCE: (drop after 2.6.28) netxen: fix endianness in firmware commands + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix ipv6 offload and tx cleanup + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix link speed reporting for some + boards + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: firmware init fix + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: cleanup mac list on driver unload + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: hold tx lock while sending firmware + commands + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: handle dma mapping failures + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: avoid invalid iounmap + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: include ipv6.h (fixes build failure) + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix vlan tso/checksum offload + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: reduce memory footprint + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: revert jumbo ringsize + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix msi-x interrupt handling + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: remove pcie workaround + - LP: #330813 + + [ Hannes Eder ] + + * SAUCE: (drop after 2.6.28) drivers/net/netxen: fix sparse warnings: use + NULL pointer instead of plain integer + - LP: #330813 + + [ Huaxu Wan ] + + * SAUCE: report rfkill changes event if interface is down + - LP: #193970 + + [ Tim Gardner ] + + * MV78XX0 must specify a target in the vars definition. + + [ Upstream Kernel Changes ] + + * Revert "ext4: wait on all pending commits in ext4_sync_fs()" + * jbd2: Fix return value of jbd2_journal_start_commit() + * jbd2: Avoid possible NULL dereference in + jbd2_journal_begin_ordered_truncate() + * ext4: Fix to read empty directory blocks correctly in 64k + * ext4: Fix lockdep warning + * ext4: Initialize preallocation list_head's properly + * ext4: Implement range_cyclic in ext4_da_writepages instead of + write_cache_pages + * ext4: Fix NULL dereference in ext4_ext_migrate()'s error handling + * ext4: Add fallback for find_group_flex + * ext4: Fix deadlock in ext4_write_begin() and ext4_da_write_begin() + * Added mv78xx0 flavor + + -- Tim Gardner Fri, 06 Mar 2009 06:13:31 -0700 + +linux (2.6.28-8.28) jaunty; urgency=low + + [ Alexey Starikovskiy ] + + * SAUCE: ACPI: EC: Limit workaround for ASUS notebooks even more + - LP: #288385 + + [ Scott James Remnant ] + + * SAUCE: Auto-load esp module when device opened. + * SAUCE: Auto-load bridge module when socket opened. + * SAUCE: Auto-load af_netlink module when socket opened. + * SAUCE: Auto-load wanrouter module when socket opened. + * SAUCE: Auto-load ip_queue module when socket opened. + * SAUCE: Auto-load ip6_queue module when socket opened. + * SAUCE: Auto-load cn module when socket opened. + * SAUCE: Auto-load scsi_transport_iscsi module when socket opened. + * SAUCE: Auto-load ftl module when device opened. + * SAUCE: Auto-load pcd module when device opened. + * SAUCE: Auto-load pf module when device opened. + * SAUCE: Auto-load nftl module when device opened. + * SAUCE: Auto-load mousedev module when psaux device opened. + * SAUCE: Auto-load mousedev module when /dev/input/mice opened. + * SAUCE: Auto-load rng-core module when device opened. + * SAUCE: Auto-load openprom module when device opened. + * SAUCE: Auto-load applicom module when device opened. + * SAUCE: Auto-load toshiba module when device opened. + * SAUCE: Auto-load cyclades module when device opened. + * SAUCE: Auto-load riscom8 module when device opened. + * SAUCE: Auto-load specialix module when device opened. + * SAUCE: Auto-load videodev module when device opened. + * SAUCE: Auto-load i2c_dev module when device opened. + * SAUCE: Auto-load mtdchar module when device opened. + * SAUCE: Auto-load pt module when device opened. + * SAUCE: Auto-load pg module when device opened. + * SAUCE: Auto-load cdc_acm module when device opened. + * SAUCE: Auto-load msr module when device opened. + * SAUCE: Auto-load cpuid module when device opened. + * SAUCE: quickcam: Enable double-buffering by default + * SAUCE: libata: Ignore HPA by default. + * SAUCE: hostap: Change initial operation mode to managed (infra) + * SAUCE: floppy: Provide a PnP device table in the module. + - LP: #255651 + * SAUCE: Auto-load mwave module when device opened. + * Build CONFIG_FUSE_FS into kernel, not as module. + + [ Stefan Bader ] + + * Enable build of ext4 as a module on LPIA + - LP: #331848 + + [ Tim Gardner ] + + * Update configs to fix LPIA FTBS + + -- Tim Gardner Thu, 05 Mar 2009 10:43:24 -0700 + +linux (2.6.28-8.27) jaunty; urgency=low + + [ Amit Kucheria ] + + * Updating configs (arm:ixp4xx) + + [ Andy Whitcroft ] + + * SAUCE: enable Intel HDMI output + + [ Manoj Iyer ] + + * SAUCE: Added quirk for Linksys WUSB600N USB wifi-n networking adapter + - LP: #323473 + + [ Steve Beattie ] + + * fix apparmor memory leak on unlinked file ops + - LP: #329489 + + [ Tim Gardner ] + + * SAUCE: Dell XPS710 reboot quirk + - LP: #323592 + * SAUCE: (drop after 2.6.28) ieee80211: Add infrastructure to obsolete + scan results + - LP: #336055 + * Add modules.order to the linux-image package. + + [ Upstream Kernel Changes ] + + * iwlwifi: fix time interval misuse in iwl_poll_{direct_}bit + * x86: only scan the root bus in early PCI quirks + - LP: #267295 + * ALSA: hda - Intel HDMI audio support + * ALSA: hda - Fix unused function in patch_intelhdmi.c + * ALSA: handle SiI1392 HDMI codec in patch_intelhdmi.c + * ALSA: hda-intel: reorder HDMI audio enabling sequence + * ALSA: introduce snd_print_pcm_rates() + * ALSA: create hda_eld.c for ELD routines and proc interface + * ALSA: ELD proc interface for HDMI sinks + * ALSA: hda: make standalone hdmi_fill_audio_infoframe() + * ALSA: hda: make global snd_print_channel_allocation() + * ALSA: hda: HDMI channel allocations for audio infoframe + * ALSA: hda: HDMI channel mapping cleanups + * ALSA: hda: minor code cleanups + * ALSA: hda: rename sink_eld to hdmi_eld + * ALSA: hda - Release ELD proc file + * ALSA: hda - minor HDMI code cleanups + * ALSA: hda - report selected CA index for Audio InfoFrame + * ALSA: hda - Add Intel vendor id string + + -- Tim Gardner Wed, 25 Feb 2009 14:23:46 -0700 + +linux (2.6.28-8.26) jaunty; urgency=low + + [ Amit Kucheria ] + + * Updating configs (armel:ixp4xx) + - LP: #331510 + + [ Tim Gardner ] + + * Add more missing modules + + -- Tim Gardner Tue, 24 Feb 2009 06:58:53 -0700 + +linux (2.6.28-8.25) jaunty; urgency=low + + [ Scott James Remnant ] + + * SAUCE: Prefer powernow-k8 to acpi-cpufreq + * Change CONFIG_X86_P4_CLOCKMOD to be a module again. + + [ Tim Gardner ] + + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Initialize the new + group descriptor when resizing the filesystem" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add sanity check + to make_indexed_dir" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: only use + i_size_high for regular files" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add sanity checks + for the superblock before mounting the filesystem" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix + s_dirty_blocks_counter if block allocation failed with nodelalloc" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Init the complete + page while building buddy cache" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Don't allow new + groups to be added during block allocation" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: mark the + blocks/inode bitmap beyond end of group as used" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Use new + buffer_head flag to check uninit group bitmaps initialization" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix the race + between read_inode_bitmap() and ext4_new_inode()" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix race between + read_block_bitmap() and mark_diskspace_used()" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: don't use blocks + freed but not yet committed in buddy cache init" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: cleanup mballoc + header files" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Use + EXT4_GROUP_INFO_NEED_INIT_BIT during resize" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add blocks added + during resize to bitmap" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Don't overwrite + allocation_context ac_status" + * Revert "SAUCE: (revert before 2.6.28.y update) jbd2: Add barrier not + supported test to journal_wait_on_commit_record" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Widen type of + ext4_sb_info.s_mb_maxs[]" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: avoid ext4_error + when mounting a fs with a single bg" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix the delalloc + writepages to allocate blocks at the right offset." + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: tone down + ext4_da_writepages warnings" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add support for + non-native signed/unsigned htree hash algorithms" + * Enabled X86_ACPI_CPUFREQ=y + + [ Upstream Kernel Changes ] + + * ath9k: quiet harmless ForceXPAon messages + - LP: #321474 + * [WATCHDOG] iTCO_wdt: fix SMI_EN regression 2 + - LP: #314050 + * pid: implement ns_of_pid + * mqueue: fix si_pid value in mqueue do_notify() + * powerpc/vsx: Fix VSX alignment handler for regs 32-63 + * sata_nv: give up hardreset on nf2 + * Fix Intel IOMMU write-buffer flushing + * SCSI: libiscsi: fix iscsi pool leak + * x86/cpa: make sure cpa is safe to call in lazy mmu mode + * sched: SCHED_OTHER vs SCHED_IDLE isolation + * x86, vm86: fix preemption bug + * Add support for VT6415 PCIE PATA IDE Host Controller + * ext2/xip: refuse to change xip flag during remount with busy inodes + * 3c505: do not set pcb->data.raw beyond its size + * Bluetooth: Fix TX error path in btsdio driver + * ext4: Add support for non-native signed/unsigned htree hash algorithms + * ext4: tone down ext4_da_writepages warnings + * ext4: Fix the delalloc writepages to allocate blocks at the right + offset. + * ext4: avoid ext4_error when mounting a fs with a single bg + * ext4: Widen type of ext4_sb_info.s_mb_maxs[] + * jbd2: Add barrier not supported test to journal_wait_on_commit_record + * ext4: Don't overwrite allocation_context ac_status + * ext4: Add blocks added during resize to bitmap + * ext4: Use EXT4_GROUP_INFO_NEED_INIT_BIT during resize + * ext4: cleanup mballoc header files + * ext4: don't use blocks freed but not yet committed in buddy cache init + * ext4: Fix race between read_block_bitmap() and mark_diskspace_used() + * ext4: Fix the race between read_inode_bitmap() and ext4_new_inode() + * ext4: Use new buffer_head flag to check uninit group bitmaps + initialization + * ext4: mark the blocks/inode bitmap beyond end of group as used + * ext4: Don't allow new groups to be added during block allocation + * ext4: Init the complete page while building buddy cache + * ext4: Fix s_dirty_blocks_counter if block allocation failed with + nodelalloc + * ext4: Add sanity checks for the superblock before mounting the + filesystem + * ext4: only use i_size_high for regular files + * ext4: Add sanity check to make_indexed_dir + * ext4: Initialize the new group descriptor when resizing the filesystem + * Fix longstanding "error: storage size of '__mod_dmi_device_table' isn't + known" + * Linux 2.6.28.7 + + -- Tim Gardner Thu, 19 Feb 2009 06:45:55 -0700 + +linux (2.6.28-8.24) jaunty; urgency=low + + [ Scott James Remnant ] + + * Change CPU_FREQ_DEFAULT_GOV_ONDEMAND to y + * SAUCE: Link acpi-cpufreq.o first + + [ Tim Gardner ] + + * Build in CPU Frequency scaling drivers + + -- Tim Gardner Wed, 18 Feb 2009 06:12:24 -0700 + +linux (2.6.28-8.23) jaunty; urgency=low + + [ Andy Whitcroft ] + + * include the kernel configuration in the sub-flavour images + - LP: #328859 + + [ Tim Gardner ] + + * Revert "SAUCE: (drop after 2.6.28) [eCryptfs] Regression in unencrypted + filename symlinks" in favor of upstream commit. + * Fix compile issues with qc-usb + * SAUCE: (remove after 2.6.28) V4L/DVB (10216): saa7127: fix broken + S-Video with saa7129 + - LP: #329267 + + [ Upstream Kernel Changes ] + + * Subject:SAUCE: LP#193970 iwlagn: fix hw-rfkill while the interface is + down + - LP: #193970 + * x86, vmi: put a missing paravirt_release_pmd in pgd_dtor + * nbd: fix I/O hang on disconnected nbds + * mac80211: restrict to AP in outgoing interface heuristic + * w1: w1 temp calculation overflow fix + * zd1211rw: adding 0ace:0xa211 as a ZD1211 device + * zd1211rw: treat MAXIM_NEW_RF(0x08) as UW2453_RF(0x09) for TP-Link + WN322/422G + * parport: parport_serial, don't bind netmos ibm 0299 + * syscall define: fix uml compile bug + * kernel-doc: fix syscall wrapper processing + * Fix page writeback thinko, causing Berkeley DB slowdown + * write-back: fix nr_to_write counter + * writeback: fix break condition + * mm: rearrange exit_mmap() to unlock before arch_exit_mmap + * powerpc/fsl-booke: Fix mapping functions to use phys_addr_t + * lockd: fix regression in lockd's handling of blocked locks + * sctp: Fix crc32c calculations on big-endian arhes. + * sctp: Correctly start rtx timer on new packet transmissions. + * sctp: Properly timestamp outgoing data chunks for rtx purposes + * net: Fix frag_list handling in skb_seq_read + * net: Fix OOPS in skb_seq_read(). + * drivers/net/skfp: if !capable(CAP_NET_ADMIN): inverted logic + * ipv4: fix infinite retry loop in IP-Config + * net: Fix userland breakage wrt. linux/if_tunnel.h + * net: packet socket packet_lookup_frame fix + * packet: Avoid lock_sock in mmap handler + * sungem: Soft lockup in sungem on Netra AC200 when switching interface + up + * udp: Fix UDP short packet false positive + * udp: increments sk_drops in __udp_queue_rcv_skb() + * ipv6: Disallow rediculious flowlabel option sizes. + * ipv6: Copy cork options in ip6_append_data + * net: 4 bytes kernel memory disclosure in SO_BSDCOMPAT gsopt try #2 + * sky2: fix hard hang with netconsoling and iface going up + * tun: Add some missing TUN compat ioctl translations. + * tun: Fix unicast filter overflow + * virtio_net: Fix MAX_PACKET_LEN to support 802.1Q VLANs + * tcp: splice as many packets as possible at once + * tcp: Fix length tcp_splice_data_recv passes to skb_splice_bits. + * sparc: Enable syscall wrappers for 64-bit (CVE-2009-0029) + * sparc64: Annotate sparc64 specific syscalls with SYSCALL_DEFINEx() + * ALSA: hda - Add missing terminator in slave dig-out array + * ALSA: mtpav - Fix initial value for input hwport + * HID: adjust report descriptor fixup for MS 1028 receiver + * ide/libata: fix ata_id_is_cfa() (take 4) + * libata: fix EH device failure handling + * netfilter: fix tuple inversion for Node information request + * netfilter: xt_sctp: sctp chunk mapping doesn't work + * x86: microcode_amd: fix wrong handling of equivalent CPU id + * ide-cd: fix DMA for non bio-backed requests + * net: Fix data corruption when splicing from sockets. + * Linux 2.6.28.6 + * eCryptfs: Regression in unencrypted filename symlinks + + -- Tim Gardner Mon, 16 Feb 2009 06:43:51 -0700 + +linux (2.6.28-8.22) jaunty; urgency=low + + [ Amit Kucheria ] + + * Remove perm-blacklist + + [ Andy Whitcroft ] + + * SAUCE: psmouse/synaptics: ensure we reset the device on resume + - LP: #317270 + + [ Tim Gardner ] + + * Add lpia to getabi script + * SAUCE: tracer for sreadahead + + -- Amit Kucheria Fri, 13 Feb 2009 15:23:21 +0200 + +linux (2.6.28-8.21) jaunty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: switch the Asus Pundit P1-AH2 to old acpi sleep ordering + - LP: #327267 + + [ Tim Gardner ] + + * Added LPIA arch support + * Added libdrm-dev as a 'Replaces' to linux-libc-dev + * SAUCE: LPIA support for 9202 HDA Sigmatel codec + * SAUCE: Add an X86_LPIA Kconfig option + * SAUCE: UHCI USB quirk for resume + * SAUCE: LPIA Reboot fix for Intel Crownbeach development boards + * SAUCE: LPIA Logical reset of USB port on resume + * Set CONFIG_WIRELESS_OLD_REGULATORY=n, added wireless-crda + as an install dependency. + + [ Upstream Kernel Changes ] + + * Revert "Revert "x86, early_ioremap: fix fencepost error"" + - LP: #312554 + * drm/i915: capture last_vblank count at IRQ uninstall time too + - LP: #320813 + * drm/i915: add get_vblank_counter function for GM45 + - LP: #320813 + * Staging: comedi: fix Kbuild + * Staging: meilhaus: fix Kbuild + * Staging: android: binder: fix arm build errors + * Staging: android: timed_gpio: Fix build to build on kernels after + 2.6.25. + * Staging: android: fix build error on 64bit boxes + * Staging: android: Add lowmemorykiller documentation. + * Staging: android: task_get_unused_fd_flags: fix the wrong usage of + tsk->signal + * staging: agnx: drivers/staging/agnx/agnx.h needs + * Staging: usbip: usbip_start_threads(): handle kernel_thread failure + * Staging: poch: fix verification of memory area + * Documentation: move DMA-mapping.txt to Doc/PCI/ + * sgi-xp: fix writing past the end of kzalloc()'d space + * do_wp_page: fix regression with execute in place + * wait: prevent exclusive waiter starvation + * shm: fix shmctl(SHM_INFO) lockup with !CONFIG_SHMEM + * revert "rlimit: permit setting RLIMIT_NOFILE to RLIM_INFINITY" + * prevent kprobes from catching spurious page faults + * sound: usb-audio: handle wMaxPacketSize for FIXED_ENDPOINT devices + * md: Ensure an md array never has too many devices. + * md: Fix a bug in linear.c causing which_dev() to return the wrong + device. + * ACPI: Enable bit 11 in _PDC to advertise hw coord + * ACPI: dock: Don't eval _STA on every show_docked sysfs read + * ieee1394: ohci1394: increase AT req. retries, fix ack_busy_X from + Panasonic camcorders and others + * firewire: ohci: increase AT req. retries, fix ack_busy_X from Panasonic + camcorders and others + * firewire: sbp2: fix DMA mapping leak on the failure path + * firewire: sbp2: add workarounds for 2nd and 3rd generation iPods + * ieee1394: sbp2: add workarounds for 2nd and 3rd generation iPods + * module: remove over-zealous check in __module_get() + * x86: APIC: enable workaround on AMD Fam10h CPUs + * eeepc-laptop: fix oops when changing backlight brightness during + eeepc-laptop init + * eeepc-laptop: Add support for extended hotkeys + * e1000: fix bug with shared interrupt during reset + * e1000: Fix PCI enable to honor the need_ioport flag + * agp/intel: Fix broken ® symbol in device name. + * ALSA: hda - Add quirk for FSC Amilo Xi2550 + * ALSA: hda - Add missing COEF initialization for ALC887 + * ALSA: hda - Add missing initialization for ALC272 + * asus_acpi: Add R1F support + * panasonic-laptop: fix X[ ARRAY_SIZE(X) ] + * ACPI: Skip the first two elements in the _BCL package + * ACPI: proc_dir_entry 'video/VGA' already registered + * ACPI: disable ACPI cleanly when bad RSDP found + * ACPICA: Fix table entry truncation calculation + * PCI: properly clean up ASPM link state on device remove + * PCI: return error on failure to read PCI ROMs + * seq_file: move traverse so it can be used from seq_read + * seq_file: fix big-enough lseek() + read() + * serial: set correct baud_base for Oxford Semiconductor Ltd EXSYS + EX-41092 Dual 16950 Serial adapter + * Add support for '8-port RS-232 MIC-3620 from advantech' + * mm: fix error case in mlock downgrade reversion + * elf core dump: fix get_user use + * ACPI: video: Fix reversed brightness behavior on ThinkPad SL series + * ipw2200: fix scanning while associated + * XFS: set b_error from bio error in xfs_buf_bio_end_io + * Revert USB: option: add Pantech cards + * USB: option: New mobile broadband modems to be supported + * USB: new id for ti_usb_3410_5052 driver + * USB: two more usb ids for ti_usb_3410_5052 + * USB: usb-storage: add Pentax to the bad-vendor list + * sata_via: Add VT8261 support + * nbd: do not allow two clients at the same time + * sctp: Fix another socket race during accept/peeloff + * Linux 2.6.28.5 + + -- Tim Gardner Mon, 09 Feb 2009 16:11:28 -0700 + +linux (2.6.28-7.20) jaunty; urgency=low + + [ Tim Gardner ] + + * SAUCE: Input: atkbd - Samsung NC10 key repeat fix + + [ Upstream Kernel Changes ] + + * Manually revert "mlock: downgrade mmap sem while populating mlocked + regions" + * xen: make sysfs files behave as their names suggest + * sata_mv: fix 8-port timeouts on 508x/6081 chips + * m68knommu: set NO_DMA + * PCI/MSI: bugfix/utilize for msi_capability_init() + * x86: use early clobbers in usercopy*.c + * netfilter: ctnetlink: fix scheduling while atomic + * orinoco: move kmalloc(..., GFP_KERNEL) outside spinlock in + orinoco_ioctl_set_genie + * fbdev/atyfb: Fix DSP config on some PowerMacs & PowerBooks + * kmalloc: return NULL instead of link failure + * sata_nv: rename nv_nf2_hardreset() + * sata_nv: fix MCP5x reset + * sata_nv: ck804 has borked hardreset too + * Fix memory corruption in console selection + * Add enable_ms to jsm driver + * nfsd: only set file_lock.fl_lmops in nfsd4_lockt if a stateowner is + found + * nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT + * iwlwifi: fix rs_get_rate WARN_ON() + * p54: fix lm87 checksum endianness + * p54: fix p54_read_eeprom to cope with tx_hdr_len + * p54usb: rewriting rx/tx routines to make use of usb_anchor's facilities + * minstrel: fix warning if lowest supported rate index is not 0 + * PCI: irq and pci_ids patch for Intel Tigerpoint DeviceIDs + * cpuidle: Add decaying history logic to menu idle predictor + * ACPI: Avoid array address overflow when _CST MWAIT hint bits are set + * video: always update the brightness when poking "brightness" + * Newly inserted battery might differ from one just removed, so update of + battery info fields is required. + * ACPI: Do not modify SCI_EN directly + * dlm: initialize file_lock struct in GETLK before copying conflicting + lock + * sata_mv: Fix chip type for Hightpoint RocketRaid 1740/1742 + * ACPICA: Allow multiple backslash prefix in namepaths + * Linux 2.6.28.4 + + -- Tim Gardner Sat, 07 Feb 2009 18:53:42 -0700 + +linux (2.6.28-7.19) jaunty; urgency=low + + * Fix missing modules FTBS + + -- Tim Gardner Thu, 05 Feb 2009 15:28:15 -0700 + +linux (2.6.28-7.18) jaunty; urgency=low + + [ Alok Kataria ] + + * SAUCE: (drop after 2.6.29) x86: add a synthetic TSC_RELIABLE feature + bit + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: add X86_FEATURE_HYPERVISOR feature bit + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: Hypervisor detection and get tsc_freq + from hypervisor + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: Add a synthetic TSC_RELIABLE feature + bit. + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: Skip verification by the watchdog for + TSC clocksource. + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: VMware: Fix vmware_get_tsc code + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: vmware: look for DMI string in the + product serial key + - LP: #319945 + + [ Andy Whitcroft ] + + * SAUCE: toshiba_acpi -- pull in current -dev version of driver + - LP: #269831 + * SAUCE: toshiba_acpi -- add acpi hotkey kernel thread + - LP: #269831 + * move toshiba laptops back from tlsup to toshiba_acpi + - LP: #269831 + + [ Aneesh Kumar K.V ] + + * SAUCE: (revert before 2.6.28.y update) ext4: Fix the delalloc + writepages to allocate blocks at the right offset. + * SAUCE: (revert before 2.6.28.y update) ext4: avoid ext4_error when + mounting a fs with a single bg + * SAUCE: (revert before 2.6.28.y update) ext4: Don't overwrite + allocation_context ac_status + * SAUCE: (revert before 2.6.28.y update) ext4: Add blocks added during + resize to bitmap + * SAUCE: (revert before 2.6.28.y update) ext4: Use + EXT4_GROUP_INFO_NEED_INIT_BIT during resize + * SAUCE: (revert before 2.6.28.y update) ext4: cleanup mballoc header + files + * SAUCE: (revert before 2.6.28.y update) ext4: don't use blocks freed but + not yet committed in buddy cache init + * SAUCE: (revert before 2.6.28.y update) ext4: Fix race between + read_block_bitmap() and mark_diskspace_used() + * SAUCE: (revert before 2.6.28.y update) ext4: Fix the race between + read_inode_bitmap() and ext4_new_inode() + * SAUCE: (revert before 2.6.28.y update) ext4: Use new buffer_head flag + to check uninit group bitmaps initialization + * SAUCE: (revert before 2.6.28.y update) ext4: mark the blocks/inode + bitmap beyond end of group as used + * SAUCE: (revert before 2.6.28.y update) ext4: Don't allow new groups to + be added during block allocation + * SAUCE: (revert before 2.6.28.y update) ext4: Init the complete page + while building buddy cache + * SAUCE: (revert before 2.6.28.y update) ext4: Fix s_dirty_blocks_counter + if block allocation failed with nodelalloc + + [ Hannes Eder ] + + * SAUCE: (drop after 2.6.29) x86: vmware - fix sparse warnings + - LP: #319945 + + [ Luke Yelavich ] + + * hid modules have hyphens instead of underscores in their names + + [ Mark Fasheh ] + + * SAUCE: (revert before 2.6.28.y update) jbd2: Add BH_JBDPrivateStart + + [ Theodore Ts'o ] + + * SAUCE: (revert before 2.6.28.y update) ext4: Add support for non-native + signed/unsigned htree hash algorithms + * SAUCE: (revert before 2.6.28.y update) ext4: tone down + ext4_da_writepages warnings + * SAUCE: (revert before 2.6.28.y update) jbd2: Add barrier not supported + test to journal_wait_on_commit_record + * SAUCE: (revert before 2.6.28.y update) ext4: Add sanity checks for the + superblock before mounting the filesystem + * SAUCE: (revert before 2.6.28.y update) ext4: only use i_size_high for + regular files + * SAUCE: (revert before 2.6.28.y update) ext4: Add sanity check to + make_indexed_dir + * SAUCE: (revert before 2.6.28.y update) jbd2: On a __journal_expect() + assertion failure printk "JBD2", not "EXT3-fs" + * SAUCE: (revert before 2.6.28.y update) ext4: Initialize the new group + descriptor when resizing the filesystem + + [ Tyler Hicks ] + + * SAUCE: (drop after 2.6.28) [eCryptfs] Regression in unencrypted + filename symlinks + - LP: #322532 + + [ Upstream Kernel Changes ] + + * Input: atkbd - broaden the Dell DMI signatures + - LP: #261721 + * ti_usb_3410_5052: support alternate firmware + * ath5k: fix mesh point operation + * mac80211: decrement ref count to netdev after launching mesh discovery + * inotify: clean up inotify_read and fix locking problems + * fuse: destroy bdi on umount + * fuse: fix missing fput on error + * fuse: fix NULL deref in fuse_file_alloc() + * x86, mm: fix pte_free() + * klist.c: bit 0 in pointer can't be used as flag + * sysfs: fix problems with binary files + * x86: fix page attribute corruption with cpa() + * USB: fix toggle mismatch in disable_endpoint paths + * sound: virtuoso: enable UART on Xonar HDAV1.3 + * USB: usbmon: Implement compat_ioctl + * USB: fix char-device disconnect handling + * USB: storage: add unusual devs entry + * alpha: nautilus - fix compile failure with gcc-4.3 + * alpha: fix vmalloc breakage + * resources: skip sanity check of busy resources + * rtl8187: Add termination packet to prevent stall + * it821x: Add ultra_mask quirk for Vortex86SX + * libata: pata_via: support VX855, future chips whose IDE controller use + 0x0571 + * serial_8250: support for Sealevel Systems Model 7803 COMM+8 + * drm: stash AGP include under the do-we-have-AGP ifdef + * Fix OOPS in mmap_region() when merging adjacent VM_LOCKED file segments + * bnx2x: Block nvram access when the device is inactive + * ext3: Add sanity check to make_indexed_dir + * rtl8187: Fix error in setting OFDM power settings for RTL8187L + * epoll: drop max_user_instances and rely only on max_user_watches + * gpiolib: fix request related issue + * sgi-xpc: Remove NULL pointer dereference. + * sgi-xpc: ensure flags are updated before bte_copy + * include/linux: Add bsg.h to the Kernel exported headers + * ALSA: hda - Fix PCM reference NID for STAC/IDT analog outputs + * ALSA: hda - add another MacBook Pro 4, 1 subsystem ID + * ALSA: hda - Add quirk for HP DV6700 laptop + * crypto: authenc - Fix zero-length IV crash + * crypto: ccm - Fix handling of null assoc data + * x86, pat: fix reserve_memtype() for legacy 1MB range + * x86, pat: fix PTE corruption issue while mapping RAM using /dev/mem + * PCI hotplug: fix lock imbalance in pciehp + * dmaengine: fix dependency chaining + * NET: net_namespace, fix lock imbalance + * relay: fix lock imbalance in relay_late_setup_files + * Linux 2.6.28.3 + * ALSA: Enable SPDIF output on ALC655 + * ALSA: hda - Add ASUS V1Sn support + * ALSA: hda - support detecting HD Audio devices with PCI class code + * ALSA: hda: alc883 model for ASUS P5Q-EM boards + * ALSA: hda - Add quirk for MSI 7260 mobo + * ALSA: hda - Add quirk for Sony VAIO VGN-SR19XN + * ALSA: oxygen: add Claro halo support + * ALSA: hda - Add a new function to seek for a codec ID + * ALSA: patch_sigmatel: Add missing Gateway entries and autodetection + * ALSA: hda - More fixes on Gateway entries + * ALSA: hda - Add MCP67 HDMI support + * ALSA: hda - fix name for ALC1200 + * LSA: hda - Add HP Acacia detection + * ALSA: hda - Add quirk for HP 2230s + * ALSA: hda - Add quirk for Dell Inspiron Mini9 + * ALSA: hda - add support for Intel DX58SO board + * ALSA: hda - Fix silent headphone output on Panasonic CF-74 + * ALSA: USB quirk for Logitech Quickcam Pro 9000 name + * ALSA: hda - add quirks for some 82801H variants to use ALC883_MITAC + + [ Yasunori Goto ] + + * SAUCE: (revert before 2.6.28.y update) ext4: Widen type of + ext4_sb_info.s_mb_maxs[] + + -- Tim Gardner Mon, 02 Feb 2009 23:07:13 -0700 + +linux (2.6.28-6.17) jaunty; urgency=low + + [ Amit Kucheria ] + + * Updating configs: ARMEL/versatile + + -- Amit Kucheria Fri, 30 Jan 2009 13:36:59 +0200 + +linux (2.6.28-6.16) jaunty; urgency=low + + [ Luke Yelavich ] + + * Add hid quirks to input-modules udeb + + [ Tim Gardner ] + + * Revert "[arm] Fix kexec on ARM by properly calling the relocation + function". This patch was deemed 'bogus' by Russell King on the + ARM mailing list. + + [ Upstream Kernel Changes ] + + * PCI: keep ASPM link state consistent throughout PCIe hierarchy + * security: introduce missing kfree + * rt2x00: add USB ID for the Linksys WUSB200. + * p54usb: Add USB ID for Thomson Speedtouch 121g + * lib/idr.c: use kmem_cache_zalloc() for the idr_layer cache + * sgi-xp: eliminate false detection of no heartbeat + * sched: fix update_min_vruntime + * IA64: Turn on CONFIG_HAVE_UNSTABLE_CLOCK + * sound: virtuoso: do not overwrite EEPROM on Xonar D2/D2X + * ALSA: hda - Add quirk for another HP dv5 + * ALSA: hda - Fix HP dv5 mic input + * ALSA: hda - Don't reset HP pinctl in patch_sigmatel.c + * ALSA: hda - make laptop-eapd model back for AD1986A + * drivers/net/irda/irda-usb.c: fix buffer overflow + * usb-storage: add last-sector hacks + * usb-storage: set CAPACITY_HEURISTICS flag for bad vendors + * pkt_sched: sch_htb: Fix deadlock in hrtimers triggered by HTB + * ipv6: Fix fib6_dump_table walker leak + * sctp: Avoid memory overflow while FWD-TSN chunk is received with bad + stream ID + * pkt_sched: cls_u32: Fix locking in u32_change() + * r6040: fix wrong logic in mdio code + * r6040: save and restore MIER correctly in the interrupt routine + * r6040: bump release number to 0.19 + * tcp: don't mask EOF and socket errors on nonblocking splice receive + * p54usb: fix traffic stalls / packet drop + * netfilter: x_tables: fix match/target revision lookup + * netfilter: ebtables: fix inversion in match code + * netfilter: nf_conntrack: fix ICMP/ICMPv6 timeout sysctls on big-endian + * dell_rbu: use scnprintf() instead of less secure sprintf() + * powerpc: is_hugepage_only_range() must account for both 4kB and 64kB + slices + * hwmon: (abituguru3) Fix CONFIG_DMI=n fallback to probe + * mm: write_cache_pages cyclic fix + * mm: write_cache_pages early loop termination + * mm: write_cache_pages writepage error fix + * mm: write_cache_pages integrity fix + * mm: write_cache_pages cleanups + * mm: write_cache_pages optimise page cleaning + * mm: write_cache_pages terminate quickly + * mm: write_cache_pages more terminate quickly + * mm: do_sync_mapping_range integrity fix + * mm: direct IO starvation improvement + * fs: remove WB_SYNC_HOLD + * fs: sync_sb_inodes fix + * fs: sys_sync fix + * Linux 2.6.28.2 + + -- Tim Gardner Sun, 25 Jan 2009 13:36:16 -0700 + +linux (2.6.28-5.15) jaunty; urgency=low + + [ Tim Gardner ] + + * Revert "Enabled CONFIG_PID_NS=y for i386/amd64" + Somehow this commit also reverted the 7 prior commits (which is bad). + * Enabled CONFIG_PID_NS=y for i386/amd64 (version 2) + + -- Tim Gardner Thu, 22 Jan 2009 13:48:34 -0700 + +linux (2.6.28-5.14) jaunty; urgency=low + + [ Ben Collins ] + + * lirc_gpio: Forward ported to current kernel (jaunty) + * configs: Enable LIRC_GPIO on 64-bit/32-bit x86 + - LP: #298791 + + [ Jeff Layton ] + + * SAUCE: cifs: make sure we allocate enough storage for socket address + - LP: #318565 + + [ Tim Gardner ] + + * check-abi: Return success when ABI skip is requested and no ABI files exist. + This ought to fix the armel FTBS. + + -- Tim Gardner Thu, 22 Jan 2009 06:42:49 -0700 + +linux (2.6.28-5.13) jaunty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: don't use buggy _BCL/_BCM/_BQC for backlight control" + + [ Tim Gardner ] + + * Fix udeb generation breakage caused by the previous armel versatile + flavour config update. + + -- Tim Gardner Wed, 21 Jan 2009 12:38:35 -0700 + +linux (2.6.28-5.12) jaunty; urgency=low + + [ Ante ] + + * Update drbd to 8.3.0 + + [ Dave Airlie ] + + * i915/drm: provide compat defines for userspace for certain struct + + [ Eric Anholt ] + + * drm/i915: Don't double-unpin buffers if we take a signal in + * drm/i915: Don't complain when interrupted while pinning in execbuffers. + * drm/i915: Don't allow objects to get bound while VT switched. + + [ Jani Monoses ] + + * Fix webcam having USB ID 0ac8:303b + - LP: #292086 + + [ Jesse Barnes ] + + * drm/i915: set vblank enabled flag correctly across IRQ + * drm/i915: don't enable vblanks on disabled pipes + + [ Michael Casadevall ] + + * [arm] Fix kexec on ARM by properly calling the relocation function + + [ Tim Gardner ] + + * Enabled CONFIG_PID_NS=y for i386/amd64 + * SAUCE: Increase ATA_TMOUT_PMP_SRST_WAIT to 5 seconds. + - LP: #318978 + * Update armel versatile config + - LP: #314789 + * Enabled CONFIG_RT2860=m for i386/amd64 + * Enabled CONFIG_RT2870=m for i386/amd64 + + [ Upstream Kernel Changes ] + + * Input: atkbd - add keyboard quirk for HP Pavilion ZV6100 laptop + - LP: #291878 + * ALSA: hda - Add quirk for another HP dv7 + * ALSA: hda - Add quirk for HP6730B laptop + * ALSA: caiaq - Fix Oops with MIDI + * ALSA: hda - Fix typos for AD1882 codecs + * x86: fix intel x86_64 llc_shared_map/cpu_llc_id anomolies + * x86: default to SWIOTLB=y on x86_64 + * CIFS: make sure that DFS pathnames are properly formed + * ring-buffer: prevent false positive warning + * ring-buffer: fix dangling commit race + * iwlwifi: use GFP_KERNEL to allocate Rx SKB memory + * tx493[89]ide: Fix length for __ide_flush_dcache_range + * tx4939ide: Do not use zero count PRD entry + * SCSI: eata: fix the data buffer accessors conversion regression + * USB: emi26: fix oops on load + * x86, UV: remove erroneous BAU initialization + * x86: fix incorrect __read_mostly on _boot_cpu_pda + * vmalloc.c: fix flushing in vmap_page_range() + * fs: symlink write_begin allocation context fix + * cgroups: fix a race between cgroup_clone and umount + * dm raid1: fix error count + * dm log: fix dm_io_client leak on error paths + * minix: fix add link's wrong position calculation + * md: fix bitmap-on-external-file bug. + * sched_clock: prevent scd->clock from moving backwards, take #2 + * devices cgroup: allow mkfifo + * SCSI: aha152x_cs: Fix regression that keeps driver from using shared + interrupts + * ioat: fix self test for multi-channel case + * USB: isp1760: use a specific PLX bridge instead of any bdridge + * USB: isp1760: Fix probe in PCI glue code + * USB: unusual_devs.h additions for Pentax K10D + * inotify: fix type errors in interfaces + * Move compat system call declarations to compat header file + * Convert all system calls to return a long + * Rename old_readdir to sys_old_readdir + * Remove __attribute__((weak)) from sys_pipe/sys_pipe2 + * Make sys_pselect7 static + * Make sys_syslog a conditional system call + * System call wrapper infrastructure + * powerpc: Enable syscall wrappers for 64-bit + * s390: enable system call wrappers + * System call wrapper special cases + * System call wrappers part 01 + * System call wrappers part 02 + * System call wrappers part 03 + * System call wrappers part 04 + * System call wrappers part 05 + * System call wrappers part 06 + * System call wrappers part 07 + * System call wrappers part 08 + * System call wrappers part 09 + * System call wrappers part 10 + * System call wrappers part 11 + * System call wrappers part 12 + * System call wrappers part 13 + * System call wrappers part 14 + * System call wrappers part 15 + * System call wrappers part 16 + * System call wrappers part 17 + * System call wrappers part 18 + * System call wrappers part 19 + * System call wrappers part 20 + * System call wrappers part 21 + * System call wrappers part 22 + * System call wrappers part 23 + * System call wrappers part 24 + * System call wrappers part 25 + * System call wrappers part 26 + * System call wrappers part 27 + * System call wrappers part 28 + * System call wrappers part 29 + * System call wrappers part 30 + * System call wrappers part 31 + * System call wrappers part 32 + * System call wrappers part 33 + * s390 specific system call wrappers + * x86: fix RIP printout in early_idt_handler + * Fix timeouts in sys_pselect7 + * USB: another unusual_devs entry for another bad Argosy storage device + * USB: storage: extend unusual range for 067b:3507 + * USB: storage: recognizing and enabling Nokia 5200 cell phoes + * HID: fix error condition propagation in hid-sony driver + * fix switch_names() breakage in short-to-short case + * nfs: remove redundant tests on reading new pages + * eCryptfs: check readlink result was not an error before using it + * mvsas: increase port type detection delay to suit Seagate's 10k6 drive ST3450856SS 0003 + * x86: avoid theoretical vmalloc fault loop + * ath9k: enable RXing of beacons on STA/IBSS + * mm lockless pagecache barrier fix + * powerpc: Disable Collaborative Memory Manager for kdump + * ibmvfc: Delay NPIV login retry and add retries + * ibmvfc: Improve async event handling + * getrusage: RUSAGE_THREAD should return ru_utime and ru_stime + * ath5k: ignore the return value of ath5k_hw_noise_floor_calibration + * mm: fix assertion + * XFS: truncate readdir offsets to signed 32 bit values + * Linux 2.6.28.1 + * eCryptfs: Filename Encryption: Tag 70 packets + * eCryptfs: Filename Encryption: Header updates + * eCryptfs: Filename Encryption: Encoding and encryption functions + * eCryptfs: Filename Encryption: filldir, lookup, and readlink + * eCryptfs: Filename Encryption: mount option + * eCryptfs: Replace %Z with %z + * eCryptfs: Fix data types (int/size_t) + * eCryptfs: kerneldoc for ecryptfs_parse_tag_70_packet() + * eCryptfs: Clean up ecryptfs_decode_from_filename() + * fs/ecryptfs/inode.c: cleanup kerneldoc + * staging-p80211: Kill directly reference of netdev->priv + * staging-slicoss: Kill directly reference of netdev->priv + * staging-winbond: Kill directly reference of netdev->priv + * Staging: go7007: fixes due to video_usercopy api change + * Staging: go7007: fixes due v4l2_file_operations api change + * staging: correct dubious use of !x & y + * Staging: w35und: make wb35_probe() and wb35_disconnect() funtions static + * Staging: w35und: remove unused wb35_open() and wb35_close() functions + * Staging: w35und: use msleep() and udelay() + * Staging: w35und: remove the no-op pa_stall_execution macro + * Staging: w35und: purb typedef removal + * Staging: w35und: reg queue struct typedef removal + * Staging: w35und: wb35reg struct typedef removal + * Staging: w35und: padapter struct typedef removal + * Staging: w35und: merge wblinux struct to adapter + * Staging: w35und: wb35_probe() cleanup + * Staging: w35und: remove usb_submit_urb wrapper function + * Staging: w35und: remove usb_alloc_urb wrapper function + * w35und: remove dead code from wbusb_f.h + * Staging: w35und: remove true/false boolean macros + * Staging: w35und: OS_MEMORY_ALLOC wrapper removal + * Staging: w35und: usb_put_dev() is missing from wb35_disconnect() + * Staging: w35und: remove macro magic from MLME_GetNextPacket() + * Staging: w35und: plug memory leak in wbsoft_tx() + * Staging: w35und: move supported band initialization out of wb35_probe() + * Staging: w35und: remove timer wrappers + * Staging: w35und: remove atomic op wrappers + * Staging: w35und: remove memcpy/memcmp wrappers + * Staging: w35und: remove abs() and BIT() macros + * Staging: w35und: remove unused macros from common.h + * Staging: w35und: remove unused link status code + * Staging: w35und: #include cleanup + * Staging: w35und: remove some dead code + * Staging: w35und: move source files to one directory + * Staging: w35und: move struct wbsoft_priv to core.h and use it + * Staging: w35und: remove ->adapter from struct _HW_DATA_T + * Staging: w35und: clean up adapter.h a bit + * Staging: w35und: merge struct wb35_adapter to struct wbsoft_priv + * Staging: w35und: remove global struct ieee80211_hw + * Staging: w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros + * Staging: w35und: clean up wblinux.c a bit + * Staging: w35und: remove unused ->ShutDowned member from struct + LOCAL_PARA + * Staging: w35und: move global wbsoft_enabled to struct wbsoft_priv + * Staging: w35und: move packet_came() to wb35rx.c + * Staging: w35und: remove ->skb_array from struct wbsoft_priv + * Staging: w35und: remove ->shutdown from struct wbsoft_priv + * Staging: w35und: make functions local to mds.c static + * Staging: w35und: make functions local to mlmetxrx.c static + * Staging: w35und: remove dead code from mto.c + * Staging: w35und: make functions local to wb35rx.c static + * Staging: w35und: make functions local to wb35tx.c static + * Staging: w35und: remove dead code from wbhal.c + * Staging: w35und: remove rxisr.c as dead code + * Staging: w35und: fix Kconfig + * Staging: w35und: fix config build warnings + * Staging: wlan-ng: Remove PCI/PLX/PCMCIA files. + * Staging: wlan-ng: Update Help text to mention prism3 devices. + * Staging: wlan-ng: Delete PCI/PLX/PCMCIA-specific code. + * Staging: wlan-ng: Make wlan-ng use WEXT mode by default. + * Staging: wlan-ng: Eliminate more <2.6 kernel support. + * Staging: wlan-ng: Eliminate all backwards-compatibility for <2.6.13 kernels. + * Staging: wlan-ng: Eliminate a boatload of tertiaryAP-only code. + * Staging: wlan-ng: Remove AP-only code from MLME functions. + * Staging: wlan-ng: Get rid of the MTU tests in the rx conversion path. + * Staging: wlan-ng: Eliminate one more rx mtu test. + * Staging: wlan-ng: Eliminate local 'version.h' + * Staging: wlan-ng: Eliminate usage of procfs. + * Staging: wlan-ng: Use standard kernel integer (u32/s32/etc) types. + * Staging: wlan-ng: Eliminate all backwards-compatible kernel code. + * Staging: wlan-ng: Wireless Extension support is mandatory. + * Staging: wlan-ng: use WIRELESS_EXT, not CONFIG_WIRELESS_EXT + * Staging: wlan-ng: Delete a large pile of now-unused code. + * Staging: wlan-ng: Delete a pile of unused mibs. And fix WEXT SET_TXPOWER. + * Staging: wlan-ng: Consolidate wlan-ng into a single module. + * Staging: wlan-ng: Purge all MIBs not used internally. + * Staging: wlan-ng: p80211netdev.c fix netdev alloc to prevent oops on device start + * Staging: wlan-ng: prism2_usb.c always enable the card in probe_usb + * Staging: wlan-ng: hfa384x_usb.c use newest version of 384x_drvr_start + * Staging: wlan-ng: p80211wext.c add latest changes & remove extra nulls from wext_handlers + * Staging: wlan-ng: p80211wext don't set default key id twice + * Staging: wlan-ng: hfa384x_usbin_callback: check for hardware removed + * Staging: wlan-ng: p80211conv.c copy code from wlan-ng-devel branch to not drop packets + * Staging: wlan-ng: remove unused #include + * Staging: wlan-ng: p80211wext.c: use ARRAY_SIZE + * Staging: wlan-ng: fix compiler warnings + * Staging: wlan-ng: skb_p80211_to_ether() - payload_length is unsigned, check before subtraction + * Staging: at76_usb: update drivers/staging/at76_usb w/ mac80211 port + * Staging: at76_usb: fix build breakage + * Staging: at76_usb: remove compiler warnings + * Staging: at76_usb: fix up all remaining checkpatch.pl warnings + * Staging: at76_usb: cleanup dma on stack issues + * Staging: poch: Block size bug fix + * Staging: poch: Update TODO list + * Staging: poch: Correct pages from bytes. + * Staging: poch: minor fixes + * Staging: poch: Fix build warnings + * Staging: poch: Rx control register init + * Staging: poch: Fix user space protocol syncing + * Staging: poch: Fine grained locking + * Staging: sxg: remove typedefs + * Staging: sxg: break the build in a cleaner way when !x86 + * Staging: sxg: update README + * staging: struct device - replace bus_id with dev_name(), dev_set_name() + * Staging: echo: remove typedefs + * Staging: echo: Lindent drivers/staging/echo + * Staging: go7007: saa7134 updates + * Staging: go7007: add sensoray 2250/2251 support + * Staging: go7007: Convert driver to use video_ioctl2 + * Staging: go7007: annotate code pointers + * Staging: go7007: fix minor build warnings + * Staging: go7007: small cleanup + * Staging: go7007: add some more v4l2 ioctls + * Staging: et131x: Cleanup et131x_debug.h defines + * Staging: et131x: fix build failure + * Staging: et131x: remove unused variable in et1310_tx.c + * Staging: usbip: cleanup kerneldoc + * Staging: slicoss: use kzalloc + * Staging: slicoss: use correct type for memory allcations + * Staging: slicoss: use request_firmware + * Staging: add agnx wireless driver + * Staging: agnx: fix build errors due to ssid removal + * Staging: agnx: fix build errors due to rate control API changes + * Staging: agnx: fix build warnings + * Staging: add otus Atheros wireless network driver + * Staging: otus: fix netdev->priv usage + * Staging: otus: fix name clash + * Staging: otus: fix urb callback function type + * Staging: otus: remove dependence on kernel version + * Staging: add rt2860 wireless driver + * Staging: rt2860: disable root hack for reading files + * Staging: rt2860: fix up netdev->priv usage + * Staging: rt2860: use standard bit-reverse function + * Staging: rt2860: Fix minor compiler warnings + * Staging: rt2860: enable WPA_SUPPLICANT support + * Staging: Add ServerEngines benet 10Gb ethernet driver + * Staging: benet: fix netif api breakage + * Staging: benet: fix up netdev->priv change + * Staging: benet: build is broken unless CONFIG_NETPOLL is enabled + * Staging: benet: patch to remove subdirectories + * Staging: benet: fix build errors when CONFIG_NETPOLL is off + * Staging: benet: fix build error. + * Staging: benet: patch to use offsetof() instead of AMAP_BYTE_OFFSET() + * Staging: benet: fix problems reported by checkpatch + * Staging: benet: cleanup a check while posting rx buffers + * Staging: add comedi core + * Staging: comedi: fix up a lot of checkpatch.pl warnings + * Staging: comedi: fix checkpatch.pl errors in comedi_fops.c + * Staging: comedi: fix build error in comedilib.h + * Staging: comedi: add kcomedilib to the tree + * Staging: comedi: set up infrastructure for individual drivers + * Staging: comedi: add local copy of interrupt.h + * Staging: comedi: add pci and usb wrapper header files + * Staging: comedi: comedi driver common function module + * Staging: comedi: add mite comedi pci driver + * Staging: comedi: add usb usbdux driver + * Staging: comedi: add usb usbduxfast driver + * Staging: comedi: add usb dt9812 driver + * Staging: comedi: add comedi_bond driver + * Staging: comedi: add comedi_test driver + * Staging: comedi: add comedi_parport driver + * Staging: comedi: dt9812: fix up a lot of coding style issues + * Staging: comedi: dt9812: remove dt9812.h + * Staging: comedi: dt9812: remove typedefs + * Staging: comedi: dt9812: fix sparse warnings + * Staging: comedi: usbdux: remove kernel version checks + * Staging: comedi: usbdux: code style cleanups + * Staging: comedi: usbdux: remove // comments + * Staging: comedi: usbdux: fix up printk calls + * Staging: comedi: usbdux: remove checkpatch.pl warnings + * Staging: comedi: usbdux: remove typedef + * Staging: comedi: usbdux: remove comedi usb wrappers + * Staging: comedi: usbduxfast: remove comedi usb wrappers + * Staging: comedi: dt9812: remove #ifdef that is not needed + * Staging: comedi: remove usb wrappers + * Staging: comedi: remove PCI wrappers + * Staging: comedi: add icp_multi driver + * Staging: comedi: add me4000 driver + * Staging: comedi: fix checkpatch.pl issues in comedi_bond.c + * Staging: comedi: fix checkpatch.pl issues in comedi_fc.c + * Staging: comedi: remove typedefs from comedi_bond.c + * Staging: comedi: fix sparse issues in comedi_bond.c + * Staging: comedi: fix checkpatch.pl issues in comedi_test.c + * Staging: comedi: fix sparse issues in comedi_test.c + * Staging: comedi: remove typedefs from comedi_test.c + * Staging: comedi: fix comedi_parport.c checkpatch.pl issues. + * Staging: comedi: fix comedi_fc.h checkpatch.pl issues. + * Staging: comedi: fix comedi_pci.h checkpatch.pl issues. + * Staging: comedi: comedi_pci.h: remove unneeded wrapper + * Staging: comedi: comedi_pci.h: remove comedi_pci_enable_no_regions + * Staging: comedi: comedi_pci.h: remove comedi_pci_disable_no_regions + * Staging: comedi: add s626 driver + * Staging: comedi: add rtd520 driver + * Staging: comedi: add me_daq driver + * Staging: comedi: me_daq: fix checkpatch.pl issues + * Staging: comedi: me_daq: remove typedefs + * Staging: comedi: me_daq: fix sparse issues + * Staging: comedi: fix checkpatch.pl warning in interrupt.h + * Staging: comedi: fix build if CONFIG_PROC_FS is not set + * Staging: add asus_oled driver + * Staging: asus_oled: fix build dependancy + * Staging: Add the Meilhaus ME-IDS driver package + * Staging: meilhaus: fix __symbol_get problems + * Staging: add lcd-panel driver + * Staging: panel: major checkpatch cleanup + * Staging: panel: remove ifdefs and code for pre-2.6 kernels + * Staging: panel: remove support for smartcards + * Staging: add Driver for Altera PCI Express Chaining DMA reference design + * Staging: add rtl8187se driver + * Staging: rtl8187se: remove unneeded files + * Staging: rtl8187se: make the built module be the proper name + * Staging: rtl8187se: remove duplicate pci ids + * Staging: me4000: switch to list_for_each*() + * Staging: usbip: switch to list_for_each_entry() + * Staging: add princeton instruments usb camera driver + * Staging: add mimio xi driver + * Staging: add rt2870 wireless driver + * Staging: rt2870: disable root hack for reading files + * Staging: rt2870: fix up netdev->priv usage + * Staging: add frontier tranzport and alphatrack drivers + * Staging: frontier: remove unused alphatrack_sysfs.c file + * Staging: frontier: fix compiler warnings + * Staging: add epl stack + * Staging: epl: run Lindent on all kernel/*.h files + * Staging: epl: run Lindent on all user/*.h files + * Staging: epl: run Lindent on *.h files + * Staging: epl: run Lindent on *.c files + * Staging: epl: hr timers all run in hard irq context now + * Staging: epl: fix netdev->priv b0rkage + * Staging: add android framework + * Staging: android: add binder driver + * Staging: android: binder: Fix gcc warnings about improper format specifiers for size_t in printk + * staging: android: binder: Fix use of euid + * Staging: android: add logging driver + * Staging: android: add ram_console driver + * Staging: android: add timed_gpio driver + * Staging: android: timed_gpio: Rename android_timed_gpio to timed_gpio + * Staging: android: remove dummy android.c driver + * Staging: android: add lowmemorykiller driver + * Staging: android: binder: fix build errors + * staging: __FUNCTION__ is gcc-specific, use __func__ + * V4L/DVB (10176a): Switch remaining clear_user_page users over to + clear_user_highpage + + [ Zhenyu Wang ] + + * agp/intel: add support for G41 chipset + + -- Tim Gardner Sun, 18 Jan 2009 20:22:54 -0700 + +linux (2.6.28-4.11) jaunty; urgency=low + + [ Mario Limonciello ] + + * SAUCE: Enable HDMI audio codec on Studio XPS 1340 + - LP: #309508 + + [ Tim Gardner ] + + * Fix armel d-i FTBSs + + [ Upstream Kernel Changes ] + + * USB: re-enable interface after driver unbinds + + -- Tim Gardner Tue, 13 Jan 2009 16:33:08 -0700 + +linux (2.6.28-4.10) jaunty; urgency=low + + [ Andy Whitcroft ] + + * update kernel bootloader recommends: to prefer grub + - LP: #314004 + * SAUCE: don't use buggy _BCL/_BCM/_BQC for backlight control + - LP: #311716 + * SAUCE: test-suspend -- add the suspend test scripts + - LP: #316419 + + [ Colin Watson ] + + * Enable udebs for armel + + [ Tim Gardner ] + + * SAUCE: Dell laptop digital mic does not work, PCI 1028:0271 + - LP: #309508 + * Enable CIFS_XATTR=y and CONFIG_CIFS_POSIX=y + - LP: #220658 + + -- Tim Gardner Thu, 08 Jan 2009 10:38:22 -0700 + +linux (2.6.28-4.9) jaunty; urgency=low + + [ Tim Gardner ] + + * Restore DM_CRYPT, AES, ECB, and CBC as modules. This fixes + some installer issues with encrypted /home and Private directories. + * Take one more stab at building armel without module or ABI errors. + + -- Tim Gardner Tue, 06 Jan 2009 08:38:23 -0700 + +linux (2.6.28-4.8) jaunty; urgency=low + + * Fix i386/amd64 FTBS by ignoring all module and ABI changes, + not something you would normally do, but I'm sure the ABI + has not changed. This will probably also allow the ARM builds to complete. + + -- Tim Gardner Mon, 05 Jan 2009 14:42:58 -0700 + +linux (2.6.28-4.7) jaunty; urgency=low + + [ Tim Gardner ] + + * Enable CONFIG_ATH5K=m for i386/amd64 + - LP: #306719 + * Build all i386/amd64 AGP/DRM components as modules. + - LP: #312721 + * git commands are now installed outside the default $PATH + Use 'git CMD' instead of 'git-CMD'. + * Build in most PATA/SATA drivers. This should allow most i386/amd64 systems to boot + without an initramfs, though some support work is still required in initramfs-tools + and grub. + - LP: #311730 + + -- Tim Gardner Fri, 02 Jan 2009 07:33:09 -0700 + +linux (2.6.28-4.6) jaunty; urgency=low + + [ Tim Gardner ] + + * Enable CONFIG_X86_E_POWERSAVER=m for i386 generic + - LP: #237405 + * Build i386 AGP drivers as modules + - LP: #312721 + * Build i386 DRM as a module + - LP: #312721 + + [ Upstream Kernel Changes ] + + * drm/i915: Add missing userland definitions for gem init/execbuffer. + - LP: #308387 + + -- Tim Gardner Mon, 29 Dec 2008 09:16:47 -0700 + +linux (2.6.28-4.5) jaunty; urgency=low + + [ Andy Whitcroft ] + + * clean up module dependancy information on package removal/purge + - LP: #300773 + + [ Tim Gardner ] + + * Update iscsitarget to 0.4.17 + * Build in ext{234} + * Build in Crypto modules AES, CBC, ECB + * Build in ACPI AC,BATTERY,BUTTON,FAN,PCI_SLOT,PROCESSOR,SBS,THERMAL,WMI + * Build in AGP intel,via,sis,ali,amd,amd64,efficeon,nvidia,sworks + * Build in ata,dev_dm,dev_loop,dev_md,dev_sd,dev_sr + * Build in BT l2cap,rfcomm,sco + * Reduce CONFIG_LEGACY_PTY_COUNT to 0 + * Build in CDROM_PKTCDVD and CHR_DEV_SG + * Build in CPU_FREQ + GOV_CONSERVATIVE,GOV_ONDEMAND,GOV_POWERSAVE,GOV_USERSPACE,STAT,TABLE + * Build in DM CRYPT,MIRROR,MULTIPATH,SNAPSHOT + * Build in DRM + * Build in HID + * Build in HOTPLUG PCI,PCIE + * Build in I2C + * Build in IEEE1394 OHCI1394 + * Build in INPUT EVDEV + * Build in IPV6 + * Build in MMC + * Build in PACKET + * Enable both IEEE1394 (Firewire) stacks as modules + - LP: #276463 + * Disable SUNRPC_REGISTER_V4 + - LP: #306016 + * Enable dm-raid4-5 + - LP: #309378 + * Build in PPP + * Build in RFKILL + * Build in USB SERIAL + + [ Upstream Kernel Changes ] + + * Rebased to v2.6.28 + + -- Tim Gardner Thu, 18 Dec 2008 21:18:44 -0700 + +linux (2.6.28-3.4) jaunty; urgency=low + + [ Tim Gardner ] + + * Build ecryptfs into the kernel + - LP: #302870 + * Deprecated gnbd + + [ Upstream Kernel Changes ] + + * Rebased to v2.6.28-rc8 + + -- Tim Gardner Wed, 10 Dec 2008 22:45:13 -0700 + +linux (2.6.28-2.3) jaunty; urgency=low + + [ Andy Whitcroft ] + + * update the templates so that we have spaces following the title line + + [ Tim Gardner ] + + * Add upload number to kernel version signature. This has the side effect + of renaming kernel packages back to the original way, e.g., without '-ub' + in the name. + + -- Tim Gardner Thu, 04 Dec 2008 12:18:31 -0700 + +linux (2.6.28-2.2) jaunty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) version: Implement version_signature proc file." + * SAUCE: (no-up) version: Implement version_signature proc file. + * SAUCE: serial: RS485 ioctl structure uses __u32 include linux/types.h + - LP: #303711 + + [ Tim Gardner ] + + * UBUNTU: Removed CONFIG_DRM_VIA_CHROME9 since it is upstream. + * UBUNTU: Removed ubuntu/via_chrome9 + + [ Upstream Kernel Changes ] + + * Rebased to v2.6.28-rc7 + + -- Tim Gardner Tue, 02 Dec 2008 07:33:32 -0700 + +linux (2.6.28-1.1) jaunty; urgency=low + + [ Amit Kucheria ] + + * SAUCE: make fc transport removal of target configurable + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + * SAUCE: Adds support for COMPAL JHL90 webcam + * Map armel to arm to all editconfigs to work correctly + * Add armel to getabis for completeness sake + * Add -ub to our versioning to allow kerneloops.org to identify us + + [ Andy Whitcroft ] + + * Fix Vcs-Git path for the kernel repository. + - LP: #296915 + + [ Ben Collins ] + + * SAUCE: Lower warning level of some PCI messages + - LP: #159241 + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: (no-up) version: Implement version_signature proc file. + * SAUCE: (no-up) connector.h: Add idx/val for drbd + * SAUCE: (no-up) swap: Add notify_swap_entry_free callback for compcache + * SAUCE: drivers: Remove some duplicate device entries in various modules + * SAUCE: (no-up) [AppArmor] merge with upstream subversion r1291 + * SAUCE: (no-up) Enable ubuntu extra subdirectory + * SAUCE: (no-up) ACPI: initramfs DSDT override support + * ubuntu: Add drbd module + * ubuntu: Add iscsitarget module + * ubuntu: Add BOM for iscsitarget + * ubuntu: Add squashfs driver + * SAUCE: (no-up) Check for squashfs superblock in initramfs mounting. + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Added et131x driver + * ubuntu: Add dm-raid4-5 driver + * ubuntu: Add ndiswrapper driver + * ubuntu: Added ram backed compressed swap module (compcache) + * ubuntu: Add misc drivers from hardy lum + * ubuntu: Add heci driver 3.2.0.24 + * ubuntu: Add ov511 and bt-sco drivers + * ubuntu: Add acx, prism2_usb wireless drivers + * ubuntu: Add at76 driver to build + * ubuntu: Add fsam7400 sw kill switch driver + * ubuntu: Added qc-usb driver + * ubuntu: e1000e: Upgraded module to 0.4.1.7 + * ubuntu: Added rfkill drivers + * ubuntu: VIA - Add VIA DRM Chrome9 3D engine + * ubuntu: unionfs: Added v1.4 module from hardy + * ubuntu: Add LIRC driver + * ubuntu: Add GFS driver + * ubuntu: New tlsup driver for toshiba laptops + * SAUCE: (no-up) Export lookup_has for aufs + * SAUCE: (no-up) Modularize vesafb + * ubuntu: Config files + * Disable some modules that need porting to 2.6.28 + * ubuntu: Fixup headers creation to include arch/*/include + * ubuntu/module-check: Ignore comment lines + + [ Chuck Short ] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + + [ cking ] + + * SAUCE: Enable speedstep for sonoma processors. + + [ Colin Ian King ] + + * ubuntu: Add dm-loop + * SAUCE: cx88: Support Leadtek WinFast DTV2000 H version J. + * SAUCE: fix kernel oops in VirtualBox during paravirt patching + * SAUCE: qc-usb: Enable Logitech QuickCam Messenger + * SAUCE: appleir: Enable driver for new MacBook Pro + + [ Colin Watson ] + + * Enable configfs, fuse, jfs, reiserfs, and xfs for armel + * Extend debian/d-i/ modules handling to make armel easier to support + * Create udebs for armel + + [ Fabio M. Di Nitto ] + + * ubuntu: update GFS Cluster File System + + [ Kees Cook ] + + * SAUCE: AppArmor: update to upstream subversion r1302 + + [ Leann Ogasawara ] + + * Add automatic model setting for Samsung Q45 + * Add Dell Dimension 9200 reboot quirk + + [ Mackenzie Morgan ] + + * SAUCE: Add quirk for ASUS Z37E to make sound audible after resume + + [ Matthew Garrett ] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [ Michael Frey (Senior Manager, MID ] + + * SAUCE: Send HCI_RESET for Broadcomm 2046 + + [ Michael Haas ] + + * add proper aufs source tree from 20080922 + * Fix AUFS compilation in vfsub.c + * Add splice-2.6.23.patch from AUFS to export a symbol needed by AUFS + * Add put_filp.patch from AUFS to export a symbol needed by AUFS + * Add deny_write_access.patch from AUFS - export deny_write_access + * Add sec_perm-2.6.24.patch from AUFS - export security_inode_permission + * make sure TMPFS_MAGIC is defined in AUFS Makefile + * SAUCE: Revert aufs changes from AppArmor merge + + [ Mohamed Abbas ] + + * SAUCE: iwlagn -- fix rfkill when on when driver loaded + + [ Phillip Lougher ] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [ Stefan Bader ] + + * SAUCE: (no-up) Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: mmc: Increase power_up deleay to fix TI readers + * gfs1: GFS1 can't create more than 4kb file + * uvcvideo: Commit streaming parameters when enabling the video stream. + + [ Tim Gardner ] + + * SAUCE: Add extra headers to linux-libc-dev + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: (no-up) Take care of orinoco_cs overlap with hostap_cs + * ubuntu: Add GNBD driver + * SAUCE: e1000e: Map NV RAM dynamically only when needed. + * SAUCE: Correctly blacklist Thinkpad r40e in ACPI + * SAUCE: Update Wacom tablet driver to 1.49 + * SAUCE: Fix Wacom tablet 1.49 porting errors + * SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit controller + * SAUCE: Fix Oops in wlan_setup + * SAUCE: ipw2200: change default policy for auto-associate + * Dell Wireless 365 needs BTUSB_RESET quirk. + * ndiswrapper remote buffer overflows on long ESSIDs (CVE 2008-4395) + * Disabled ubuntu/e1000e config + + [ Upstream Kernel Changes ] + + * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ + handler" + * Revert "x86, early_ioremap: fix fencepost error" + * mac80211: fix two issues in debugfs + * iwl3945: do not send scan command if channel count zero + + -- Ben Collins Fri, 07 Nov 2008 09:37:42 -0700 + +linux (2.6.27-8.17) intrepid-proposed; urgency=low + + [ John W. Linville ] + + * SAUCE: iwlagn: avoid sleep in softirq context + -LP: #286285 + + [ Tim Gardner ] + + * Dell Wireless 365 needs BTUSB_RESET quirk. + - LP: #293670 + * SAUCE: ALSA: hda: make a STAC_DELL_EQ option (version 2) + - LP: #293271 + + [ Upstream Kernel Changes ] + + * iwlagn: downgrade BUG_ON in interrupt + * Input: atkbd - expand Latitude's force release quirk to other Dells + * fbcon_set_all_vcs: fix kernel crash when switching the rotated consoles + * modules: fix module "notes" kobject leak + * Driver core: Fix cleanup in device_create_vargs(). + * Driver core: Clarify device cleanup. + * ath9k/mac80211: disallow fragmentation in ath9k, report to userspace + * md: Fix rdev_size_store with size == 0 + * xfs: fix remount rw with unrecognized options + * OHCI: Allow broken controllers to auto-stop + * USB: OHCI: fix endless polling behavior + * USB: Fix s3c2410_udc usb speed handling + * USB: EHCI: log a warning if ehci-hcd is not loaded first + * usb gadget: cdc ethernet notification bugfix + * usb: musb_hdrc build fixes + * drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831) + * DVB: au0828: add support for another USB id for Hauppauge HVR950Q + * DVB: sms1xxx: support two new revisions of the Hauppauge WinTV + MiniStick + * security: avoid calling a NULL function pointer in + drivers/video/tvaudio.c + * Linux 2.6.27.3 + -LP: #294152 + + * gpiolib: fix oops in gpio_get_value_cansleep() + * edac cell: fix incorrect edac_mode + * x86 ACPI: fix breakage of resume on 64-bit UP systems with SMP kernel + * sched: fix the wrong mask_len + * USB: cdc-wdm: make module autoload work + * USB: don't rebind drivers after failed resume or reset + * USB: fix memory leak in cdc-acm + * USB: Speedtouch: add pre_reset and post_reset routines + * dm kcopyd: avoid queue shuffle + * dm snapshot: fix primary_pe race + * amd_iommu: fix nasty bug that caused ILLEGAL_DEVICE_TABLE_ENTRY errors + * CIFS: fix saving of resume key before CIFSFindNext + * netfilter: xt_iprange: fix range inversion match + * netfilter: snmp nat leaks memory in case of failure + * netfilter: restore lost ifdef guarding defrag exception + * anon_vma_prepare: properly lock even newly allocated entries + * hvc_console: Fix free_irq in spinlocked section + * ACPI Suspend: Enable ACPI during resume if SCI_EN is not set + * ACPI suspend: Blacklist HP xw4600 Workstation for old code ordering + * ACPI suspend: Always use the 32-bit waking vector + * proc: fix vma display mismatch between /proc/pid/{maps,smaps} + * SCSI: scsi_dh: add Dell product information into rdac device handler + * PCI hotplug: cpqphp: fix kernel NULL pointer dereference + * V4L/DVB (9300): pvrusb2: Fix deadlock problem + * Linux 2.6.27.4 + -LP: #294155 + + -- Tim Gardner Tue, 04 Nov 2008 12:16:07 -0700 + +linux (2.6.27-7.16) intrepid-security; urgency=low + + [ Tim Gardner ] + + * ndiswrapper remote buffer overflows on long ESSIDs (CVE 2008-4395) + - LP: #275860 + + [ Upstream Kernel Changes ] + + * ext[234]: Avoid printk floods in the face of directory corruption + (CVE-2008-3528) + + -- Tim Gardner Mon, 03 Nov 2008 13:34:42 -0700 + +linux (2.6.27-7.15) intrepid-security; urgency=low + + [ Upstream Kernel Changes ] + + * tcp: Restore ordering of TCP options for the sake of inter-operability + - LP: #264019 + + -- Tim Gardner Mon, 27 Oct 2008 19:28:06 -0600 + +linux (2.6.27-7.14) intrepid; urgency=low + + [ Tim Gardner ] + + * Disable ath5k in 2.6.27 + - LP: #288148 + + -- Tim Gardner Thu, 23 Oct 2008 07:40:43 -0600 + +linux (2.6.27-7.13) intrepid; urgency=low + + [ Stefan Bader ] + + * gfs1: GFS1 can't create more than 4kb file + + [ Tim Gardner ] + + * Revert "SAUCE: x86: Reserve FIRST_DEVICE_VECTOR in used_vectors + bitmap.". Use upstream commit to avoid future conflicts. + * Revert "STABLE queue: mac80211: fix two issues in debugfs". + Use upstream commit to avoid future conflicts. + * Revert "x86, early_ioremap: fix fencepost error" + Use upstream commit to avoid future conflicts. + + [ Upstream Kernel Changes ] + + * sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq + * x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap. + * mac80211: fix two issues in debugfs + * Fix barrier fail detection in XFS + * tty: Termios locking - sort out real_tty confusions and lock reads + * CIFS: make sure we have the right resume info before calling + CIFSFindNext + * rfkill: update LEDs for all state changes + * libertas: clear current command on card removal + * b43legacy: Fix failure in rate-adjustment mechanism + * x86, early_ioremap: fix fencepost error + * x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC + * x86: improve UP kernel when CPU-hotplug and SMP is enabled + * sky2: Fix WOL regression + * netdrvr: atl1e: Don't take the mdio_lock in atl1e_probe + * Linux 2.6.27.2 + + [ Amit Kucheria ] + + * Ubuntu: agp: Fix stolen memory counting on G4X. + -LP: 285572 + + [ Scott Remnant ] + + * add MODULE_ALIAS to load ipmi_devintf with ipmi_si + + -- Tim Gardner Sun, 19 Oct 2008 10:06:21 -0600 + +linux (2.6.27-7.12) intrepid; urgency=low + + [ Chuck Short ] + + * xen: Add xen modules to virtual flavours. + + [ Mario Limonciello ] + + * SAUCE: Add back in lost commit for Apple BT Wireless Keyboard + - LP: #162083 + + [ Tim Gardner ] + + * Remove depmod created files from packages. + - LP: #250511 + * Changed default TCP congestion algorithm to 'cubic' (again) + - LP: #278801 + * Update configs for 'disable CONFIG_DYNAMIC_FTRACE' + - LP: #263555 + + [ Upstream Kernel Changes ] + + * x86: register a platform RTC device if PNP doesn't describe it + * disable CONFIG_DYNAMIC_FTRACE due to possible memory corruption on + module unload + + -- Tim Gardner Fri, 17 Oct 2008 11:25:39 -0600 + +linux (2.6.27-7.11) intrepid; urgency=low + + [ Amit Kucheria ] + + * STABLE queue: mac80211: fix two issues in debugfs + - LP: #275227 + * SAUCE: Adds support for COMPAL JHL90 webcam + + [ Ben Collins ] + + * SAUCE: (no-up) x86: Quiet "Kernel alive" messages + - LP: #39985 + * SAUCE: (no-up) Modularize vesafb + * build/config: Enable vesafb module + * build: Switch to vesafb as preferred. + + [ Leann Ogasawara ] + + * Add Dell Dimension 9200 reboot quirk + - LP: #271370 + + [ Michael Haas ] + + * SAUCE: Revert aufs changes from AppArmor merge + + [ Tim Gardner ] + + * fix virtio udeb layout + - LP: #257739 + * Enabled CONFIG_EXT4DEV_FS=m + * Changed default TCP congestion algorithm to 'cubic' + - LP: #278801 + * SAUCE: ipw2200: change default policy for auto-associate + - LP: #264104 + + [ Upstream Kernel Changes ] + + * x86, early_ioremap: fix fencepost error + - LP: #263543 + + -- Tim Gardner Sat, 11 Oct 2008 08:07:42 -0600 + +linux (2.6.27-7.10) intrepid; urgency=low + + [ Alexey Starikovskiy ] + + * SAUCE: ACPI: EC: do transaction from interrupt context + - LP: #277802 + + [ Ben Collins ] + + * build/d-i: Change virtio-modules udeb to prio standard + + [ Colin Ian King ] + + * SAUCE: Blacklist IBM 2656 in serio/i8042 + - LP: #21558 + + [ Henrik Rydberg ] + + * Revert "SAUCE: applesmc: Add MacBookAir" + * SAUCE: [PATCH 1/5] hwmon: applesmc: Specified number of bytes to read + should match actual + * SAUCE: [PATCH 2/5] hwmon: applesmc: Fix the 'wait status failed: c != + 8' problem + * SAUCE: [PATCH 3/5] hwmon: applesmc: Prolong status wait + * SAUCE: [PATCH 4/5] hwmon: applesmc: Allow for variable ALV0 and ALV1 + package length + * SAUCE: [PATCH 5/5] hwmon: applesmc: Add support for Macbook Air + * SAUCE: hwmon: applesmc: Add support for Macbook Pro 4 + * SAUCE: hwmon: applesmc: Add support for Macbook Pro 3 + * SAUCE: hwmon: applesmc: Lighter wait mechanism, drastic improvement + + [ Leann Ogasawara ] + + * Add automatic model setting for Samsung Q45 + - LP: #200210 + + [ Tim Gardner ] + + * SAUCE: Correctly blacklist Thinkpad r40e in ACPI + - LP: #278794 + * SAUCE: Update Wacom tablet driver to 1.49 + - LP: #260675 + * SAUCE: ALPS touchpad for Dell Latitude E6500/E6400 + - LP: #270643 + * SAUCE: Fix Wacom tablet 1.49 porting errors + * SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit controller + * SAUCE: Fix Oops in wlan_setup + - LP: #263309 + + [ Upstream Kernel Changes ] + + * ath9k: fix oops on trying to hold the wrong spinlock + * [Bluetooth] Fix double frees on error paths of btusb and bpa10x drivers + * [Bluetooth] Add reset quirk for new Targus and Belkin dongles + * [Bluetooth] Add reset quirk for A-Link BlueUSB21 dongle + * Revert "ax25: Fix std timer socket destroy handling." + * ax25: Quick fix for making sure unaccepted sockets get destroyed. + * netrom: Fix sock_orphan() use in nr_release + * Revert "V4L/DVB (8904): cx88: add missing unlock_kernel" + * SLOB: fix bogus ksize calculation + * net: only invoke dev->change_rx_flags when device is UP + * tcp: Fix possible double-ack w/ user dma + * net: Fix netdev_run_todo dead-lock + * tcp: Fix tcp_hybla zero congestion window growth with small rho and large cwnd. + * [MIPS] Sibyte: Register PIO PATA device only for Swarm and Litte Sur + * eeepc-laptop: Fix hwmon interface + * hwmon: (it87) Prevent power-off on Shuttle SN68PT + * hwmon: Define sysfs interface for energy consumption register + * hwmon: (adt7473) Fix some bogosity in documentation file + * hwmon: (abituguru3) Enable reading from AUX3 fan on Abit AT8 32X + * hwmon: (abituguru3) Enable DMI probing feature on Abit AT8 32X + * [CPUFREQ] correct broken links and email addresses + * SLOB: fix bogus ksize calculation fix + * Don't allow splice() to files opened with O_APPEND + * Linux 2.6.27 + + -- Tim Gardner Wed, 08 Oct 2008 21:19:34 -0600 + +linux (2.6.27-6.9) intrepid; urgency=low + + [ Kees Cook ] + + * SAUCE: AppArmor: update to upstream subversion r1302 + - LP: #269921 + + [ Stefan Bader ] + + * Update configuration files to be compliant to desktop specs + - LP: #279019 + + [ Tim Gardner ] + + * Add support in e1000e for a couple of ICH10 PCI IDs + * Enable CONFIG_INPUT_PCSPKR=m + - LP: #275453 + + [ Upstream Kernel Changes ] + + * V4L/DVB (8559a): Fix a merge conflict at gspca/sonixb + * V4L/DVB (8789): wm8739: remove wrong kfree + * V4L/DVB (8883): w9968cf: Fix order of usb_alloc_urb validation + * V4L/DVB (8884): em28xx-audio: fix memory leak + * V4L/DVB (8885): cpia2_usb: fix memory leak + * V4L/DVB (8886): ov511: fix memory leak + * V4L/DVB (8887): gspca: fix memory leak + * V4L/DVB (8892): pvrusb2: Handle USB ID 2040:2950 same as 2040:2900 + * V4L/DVB (8904): cx88: add missing unlock_kernel + * V4L/DVB (8905): ov511: fix exposure sysfs attribute bug + * V4L/DVB (8909): gspca: PAC 7302 webcam 093a:262a added. + * hrtimer: migrate pending list on cpu offline + * hrtimer: fix migration of CB_IRQSAFE_NO_SOFTIRQ hrtimers + * hrtimer: mark migration state + * hrtimer: prevent migration of per CPU hrtimers + * [IA64] Put the space for cpu0 per-cpu area into .data section + * powerpc: Fix PCI in Holly device tree + * powerpc: Fix failure to shutdown with CPU hotplug + * mfd: Fix Kconfig accroding to the new gpiolib symbols + * mfd: Fix asic3 compilation + * x86: fix typo in enable_mtrr_cleanup early parameter + * ipsec: Fix pskb_expand_head corruption in xfrm_state_check_space + * iucv: Fix mismerge again. + * ALSA: ASoC: Fix cs4270 error path + * ALSA: hda - Fix model for Dell Inspiron 1525 + * sctp: Fix kernel panic while process protocol violation parameter + * x86: Fix broken LDT access in VMI + * x86, vmi: fix broken LDT access + * tcp: Fix NULL dereference in tcp_4_send_ack() + * ipv6: NULL pointer dereferrence in tcp_v6_send_ack + * XFRM,IPv6: initialize ip6_dst_blackhole_ops.kmem_cachep + * af_key: Free dumping state on socket close + * dm: always allow one page in dm_merge_bvec + * dm: cope with access beyond end of device in dm_merge_bvec + * dm mpath: add missing path switching locking + * MN10300: Fix IRQ handling + * pxa2xx_spi: fix build breakage + * e1000e: write protect ICHx NVM to prevent malicious write/erase + * powerpc: Fix boot hang regression on MPC8544DS + * ASoC: Set correct name for WM8753 rec mixer output + * ALSA: snd-powermac: mixers for PowerMac G4 AGP + * ALSA: snd-powermac: HP detection for 1st iMac G3 SL + * fbcon: fix monochrome color value calculation + * inotify: fix lock ordering wrt do_page_fault's mmap_sem + * braille_console: only register notifiers when the braille console is used + * fix error-path NULL deref in alloc_posix_timer() + * memory hotplug: missing zone->lock in test_pages_isolated() + * mm: tiny-shmem nommu fix + * mm: handle initialising compound pages at orders greater than MAX_ORDER + * e1000e: reset swflag after resetting hardware + * e1000e: do not ever sleep in interrupt context + * e1000e: remove phy read from inside spinlock + * e1000e: drop stats lock + * e1000e: debug contention on NVM SWFLAG + * e1000e: update version from k4 to k6 + * Check mapped ranges on sysfs resource files + * e1000e: Fix incorrect debug warning + * [MIPS] Build fix: Fix irq flags type + * [MIPS] SMTC: Build fix: Fix filename in Makefile + * [MIPS] SMTC: Fix holes in SMTC and FPU affinity support. + * [MIPS] SMTC: Close tiny holes in the SMTC IPI replay system. + * [MIPS] SMTC: Fix SMTC dyntick support. + * [S390] nohz: Fix __udelay. + * [S390] qdio: prevent stack clobber + * Fix init/main.c to use regular printk with '%pF' for initcall fn + * x86 setup: correct segfault in generation of 32-bit reloc kernel + * selinux: Fix an uninitialized variable BUG/panic in selinux_secattr_to_sid() + * rtc: fix kernel panic on second use of SIGIO nofitication + * fbdev: fix recursive notifier and locking when fbdev console is blanked + * orion_spi: fix handling of default transfer speed + * include/linux/stacktrace.h: declare struct task_struct + * cpusets: remove pj from cpuset maintainers + * MAINTAINERS: add mailing list for man-pages + * SubmitChecklist: interfaces changes should CC linux-api@ + * Documentation/HOWTO: info about interface changes should CC linux-api@vger + * dw_dmac: fix copy/paste bug in tasklet + * leds-fsg: change order of initialization and deinitialization + * leds-pca955x: add proper error handling and fix bogus memory handling + * ACPI: Make /proc/acpi/wakeup interface handle PCI devices (again) + * clockevents: check broadcast tick device not the clock events device + * V4L/DVB (8919): cx18: Fix tuner audio input for Compro H900 cards + * V4L/DVB (8926): gspca: Bad fix of leak memory (changeset 43d2ead315b1). + * V4L/DVB (8933): gspca: Disable light frquency for zc3xx cs2102 Kokom. + * V4L/DVB (8935): em28xx-cards: Remove duplicate entry (EM2800_BOARD_KWORLD_USB2800) + * V4L/DVB (8955): bttv: Prevent NULL pointer dereference in radio_open + * V4L/DVB (8957): zr36067: Restore the default pixel format + * V4L/DVB (8958): zr36067: Return proper bytes-per-line value + * V4L/DVB (8960): drivers/media/video/cafe_ccic.c needs mm.h + * V4L/DVB (8961): zr36067: Fix RGBR pixel format + * V4L/DVB (8963): s2255drv field count fix + * V4L/DVB (8967): Use correct XC3028L firmware for AMD ATI TV Wonder 600 + * V4L/DVB (8978): sms1xxx: fix product name for Hauppauge WinTV MiniStick + * V4L/DVB (8979): sms1xxx: Add new USB product ID for Hauppauge WinTV MiniStick + * V4L/DVB (9029): Fix deadlock in demux code + * V4L/DVB (9037): Fix support for Hauppauge Nova-S SE + * V4L/DVB (9043): S5H1420: Fix size of shadow-array to avoid overflow + * V4L/DVB (9053): fix buffer overflow in uvc-video + * V4L/DVB (9075): gspca: Bad check of returned status in i2c_read() spca561. + * V4L/DVB (9080): gspca: Add a delay after writing to the sonixj sensors. + * V4L/DVB (9092): gspca: Bad init values for sonixj ov7660. + * V4L/DVB (9099): em28xx: Add detection for K-WORLD DVB-T 310U + * V4L/DVB (9103): em28xx: HVR-900 B3C0 - fix audio clicking issue + * x86: gart iommu have direct mapping when agp is present too + * ide-cd: temporary tray close fix + * ide-dma: fix ide_build_dmatable() for TRM290 + * IDE: Fix platform device registration in Swarm IDE driver (v2) + * ide-cd: Optiarc DVD RW AD-7200A does play audio + * ide: workaround for bogus gcc warning in ide_sysfs_register_port() + * [MIPS] Fix CMP Kconfig configuration and mark as broken. + * [MIPS] IP27: Fix build errors if CONFIG_MAPPED_KERNEL=y + * x86 ACPI: Blacklist two HP machines with buggy BIOSes + * kgdb, x86: Avoid invoking kgdb_nmicallback twice per NMI + * kgdb: call touch_softlockup_watchdog on resume + * atmel-mci: Initialize BLKR before sending data transfer command + * Marker depmod fix core kernel list + * Linux 2.6.27-rc9 + + -- Tim Gardner Sun, 05 Oct 2008 21:27:49 -0600 + +linux (2.6.27-5.8) intrepid; urgency=low + + [ Amit Kucheria ] + + * Update AUFS-related Kconfig + - LP: #264048 + + [ Michael Haas ] + + * add proper aufs source tree from 20080922 + * Fix AUFS compilation in vfsub.c + * Add splice-2.6.23.patch from AUFS to export a symbol needed by AUFS + * Add put_filp.patch from AUFS to export a symbol needed by AUFS + * apply (modified) lhash.patch from AUFS to export __lookup_hash() + * Add deny_write_access.patch from AUFS - export deny_write_access + * Add sec_perm-2.6.24.patch from AUFS - export security_inode_permission + * make sure TMPFS_MAGIC is defined in AUFS Makefile + + [ Tim Gardner ] + + * Enabled CONFIG_IPWIRELESS + - LP: #274748 + * Enabled CONFIG_E1000E, disabled CONFIG_E1000E_NEW + This takes advantage of the upstream NVM protection fix in + commit 4a7703582836f55a1cbad0e2c1c6ebbee3f9b3a7. + + [ Upstream Kernel Changes ] + + * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ + handler" + * [SCSI] qla2xxx: Defer enablement of RISC interrupts until ISP + initialization completes. + * PCI: Fix pcie_aspm=force + * PCI: fix compiler warnings in pci_get_subsys() + * UBIFS: create the name of the background thread in every case + * UBIFS: TNC / GC race fixes + * UBIFS: remove incorrect assert + * UBIFS: fix printk format warnings + * AMD IOMMU: set iommu sunc flag after command queuing + * AMD IOMMU: protect completion wait loop with iommu lock + * sparc64: Fix disappearing PCI devices on e3500. + * x86, oprofile: BUG scheduling while atomic + * ALSA: ASoC: Fix at32-pcm build breakage with PM enabled + * ath9k: connectivity is lost after Group rekeying is done + * wireless: zd1211rw: add device ID fix wifi dongle "trust nw-3100" + * [IA64] Ski simulator doesn't need check_sal_cache_flush + * [IA64] kexec fails on systems with blocks of uncached memory + * ath9k: Fix IRQ nobody cared issue with ath9k + * [Bluetooth] Fix I/O errors on MacBooks with Broadcom chips + * [Bluetooth] Fix wrong URB handling of btusb driver + * [Bluetooth] Fix USB disconnect handling of btusb driver + * sparc64: Fix missing devices due to PCI bridge test in + of_create_pci_dev(). + * [WATCHDOG] ibmasr: remove unnecessary spin_unlock() + * [WATCHDOG] wdt285: fix sparse warnings + * [WATCHDOG] unlocked_ioctl changes + * x86: fix 27-rc crash on vsmp due to paravirt during module load + * sched: fix init_hrtick() section mismatch warning + * clockevents: prevent cpu online to interfere with nohz + * x86: prevent stale state of c1e_mask across CPU offline/online + * clockevents: prevent stale tick_next_period for onlining CPUs + * clockevents: check broadcast device not tick device + * clockevents: prevent mode mismatch on cpu online + * x86: prevent C-states hang on AMD C1E enabled machines + * x86: c1e_idle: don't mark TSC unstable if CPU has invariant TSC + * timers: fix build error in !oneshot case + * ALSA: ASoC: maintainers - update email address for Liam Girdwood + * ibmasr: remove unnecessary spin_unlock() + * smb.h: do not include linux/time.h in userspace + * kernel-doc: allow structs whose members are all private + * kexec: fix segmentation fault in kimage_add_entry + * Documentation/DMA-mapping.txt: update for pci_dma_mapping_error() + changes + * sys_paccept: disable paccept() until API design is resolved + * mm: tiny-shmem fix lock ordering: mmap_sem vs i_mutex + * Documentation/sysctl/kernel.txt: fix softlockup_thresh description + * memcg: check under limit at shrink_usage + * atmel_serial: update the powersave handler to match serial core + * [SCSI] Fix hang with split requests + * USB Storage: Sierra: Non-configurable TRU-Install + * USB Serial: Sierra: Device addition & version rev + * USB: ehci: fix some ehci hangs and crashes + * USB: Fix the Nokia 6300 storage-mode. + * USB: Correct Sierra Wireless USB EVDO Modem Device ID + * USB: fix hcd interrupt disabling + * USB: update of Documentation/usb/anchors.txt + * usb gadget: fix omap_udc DMA regression + * USB: Fixing Nokia 3310c in storage mode + * usb: musb: fix include path + * USB: fix EHCI periodic transfers + * usb-serial: Add Siemens EF81 to PL-2303 hack triggers + * USB: SERIAL CP2101 add device IDs + * USB: unusual_devs addition for RockChip MP3 player + * USB: fsl_usb2_udc: fix VDBG() format string + * usb serial: ti_usb_3410_5052 obviously broken by firmware changes + * USB: ftdi_sio: Add 0x5050/0x0900 USB IDs (Papouch Quido USB 4/4) + * USB: serial: add ZTE CDMA Tech id to option driver + * USB Serial: Sierra: Add MC8785 VID/PID + * USB: drivers/usb/musb/: disable it on SuperH + * usb: ftdi_sio: add support for Domintell devices + * usb: unusual devs patch for Nokia 5310 Music Xpress + * USB: revert recovery from transient errors + * [MIPS] au1000: Fix gpio direction + * [MIPS] Fixe the definition of PTRS_PER_PGD + * x86: prevent stale state of c1e_mask across CPU offline/online, fix + * x86: disable apm on the olpc + * i2c-powermac: Fix section for probe and remove functions + * i2c-dev: Return correct error code on class_create() failure + * i2c: Fix mailing lists in two MAINTAINERS entries + * ath9k: disable MIB interrupts to fix interrupt storm + * 9p: implement proper trans module refcounting and unregistration + * 9p-trans_fd: fix trans_fd::p9_conn_destroy() + * 9p-trans_fd: clean up p9_conn_create() + * 9p-trans_fd: don't do fs segment mangling in p9_fd_poll() + * 9p-trans_fd: fix and clean up module init/exit paths + * 9p: introduce missing kfree + * 9p: use an IS_ERR test rather than a NULL test + * 9p: fix put_data error handling + * netfilter: ip6t_{hbh,dst}: Rejects not-strict mode on rule insertion + * MN10300: Move asm-arm/cnt32_to_63.h to include/linux/ + * MN10300: Make sched_clock() report time since boot + * ALSA: fix locking in snd_pcm_open*() and snd_rawmidi_open*() + * ALSA: remove unneeded power_mutex lock in snd_pcm_drop + * IPoIB: Fix crash when path record fails after path flush + * [XFS] Fix extent list corruption in xfs_iext_irec_compact_full(). + * [XFS] Remove xfs_iext_irec_compact_full() + * kgdb: could not write to the last of valid memory with kgdb + * kgdb, x86, arm, mips, powerpc: ignore user space single stepping + * kgdb, x86_64: gdb serial has BX and DX reversed + * kgdb, x86_64: fix PS CS SS registers in gdb serial + * kgdboc,tty: Fix tty polling search to use name correctly + * ARM: Delete ARM's own cnt32_to_63.h + * m32r: remove the unused NOHIGHMEM option + * m32r: don't offer CONFIG_ISA + * m32r: export empty_zero_page + * m32r: export __ndelay + * m32r/kernel/: cleanups + * [MIPS] au1000: Make sure GPIO value is zero or one + * [MIPS] IP27: Switch to dynamic interrupt routing avoding panic on + error. + * [MIPS] BCM47xx: Fix build error due to missing PCI functions + * [SSB] Initialise dma_mask for SSB_BUSTYPE_SSB devices + * Swarm: Fix crash due to missing initialization + * ide-tape: fix vendor strings + * ide: note that IDE generic may prevent other drivers from attaching + * cdrom: update ioctl documentation + * [SCSI] qlogicpti: fix sg list traversal error in continuation entries + * sata_nv: reinstate nv_hardreset() for non generic controllers + * scsi: fix fall out of sg-chaining patch in qlogicpti + * ALSA: make the CS4270 driver a new-style I2C driver + * ALSA: ASoC: Fix another cs4270 error path + * Fix NULL pointer dereference in proc_sys_compare + * kconfig: fix silentoldconfig + * kconfig: readd lost change count + * mm owner: fix race between swapoff and exit + * Linux 2.6.27-rc8 + * e1000e: write protect ICHx NVM to prevent malicious write/erase + + -- Amit Kucheria Tue, 30 Sep 2008 18:22:35 +0300 + +linux (2.6.27-4.7) intrepid; urgency=low + + [ Ben Collins ] + + * build/abi: Add gfs1 to perm blacklist + * build/abi: Ignored changes in gfs2 symbols + + [ Fabio M. Di Nitto ] + + * Revert "SAUCE: Export gfs2 symbols required for gfs1 kernel module" + * ubuntu: update GFS Cluster File System + + [ Stefan Bader ] + + * SAUCE: x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap. + - LP: #276334 + + [ Tim Gardner ] + + * Revert "Disable e1000e until the NVRAM corruption problem is found." + * Add atl1e and atl2 to Debian installer bits + - LP: #273904 + * SAUCE: e1000e: Map NV RAM dynamically only when needed. + - LP: #263555 + + -- Tim Gardner Fri, 26 Sep 2008 20:51:22 -0600 + +linux (2.6.27-4.6) intrepid; urgency=low + + [ Tim Gardner ] + + * Disable e1000e until the NVRAM corruption problem is found. + - LP: #263555 + + [ Upstream Kernel Changes ] + + * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ + handler" + + -- Ben Collins Tue, 23 Sep 2008 09:53:57 -0400 + +linux (2.6.27-4.5) intrepid; urgency=low + + [ Upstream Kernel Changes ] + + * Revert "b43/b43legacy: add RFKILL_STATE_HARD_BLOCKED support" + * udf: Fix lock inversion between iprune_mutex and alloc_mutex (v2) + * udf: Fix error paths in udf_new_inode() + * [SCSI] sd: select CRC_T10DIF only when necessary + * [SCSI] zfcp: Fix request queue locking + * [SCSI] zfcp: Correctly query end flag in gpn_ft response + * [SCSI] zfcp: Simplify ccw notify handler + * [SCSI] zfcp: Fix reference counter for remote ports + * [SCSI] zfcp: channel cannot be detached due to refcount imbalance + * [SCSI] zfcp: Remove duplicated unlikely() macros. + * [SCSI] scsi_dh: make check_sense return ADD_TO_MLQUEUE + * [SCSI] make scsi_check_sense HARDWARE_ERROR return ADD_TO_MLQUEUE on + retry + * [SCSI] fix check of PQ and PDT bits for WLUNs + * pcm037: add rts/cts support for serial port + * i.MX serial: fix init failure + * imx serial: set RXD mux bit on i.MX27 and i.MX31 + * imx serial: fix rts handling for non imx1 based hardware + * mlx4_core: Set RAE and init mtt_sz field in FRMR MPT entries + * udf: add llseek method + * PCI/iommu: blacklist DMAR on Intel G31/G33 chipsets + * PCI: Fix printk warnings in probe.c + * PCI: Fix printk warnings in setup-bus.c + * PCI Hotplug: fakephp: fix deadlock... again + * clockevents: remove WARN_ON which was used to gather information + * ocfs2: Fix a bug in direct IO read. + * arch/x86/kernel/kdebugfs.c: introduce missing kfree + * [IA64] fix compile failure with non modular builds + * [IA64] fix up bte.h + * [IA64] arch/ia64/sn/pci/tioca_provider.c: introduce missing kfree + * PCI: fix pciehp_free_irq() + * [IA64] prevent ia64 from invoking irq handlers on offline CPUs + * ide: Fix pointer arithmetic in hpt3xx driver code (3rd try) + * add deprecated ide-scsi to feature-removal-schedule.txt + * swiotlb: fix back-off path when memory allocation fails + * sparc64: Fix interrupt register calculations on Psycho and Sabre. + * VIDEO_SH_MOBILE_CEU should depend on HAS_DMA + * m68k: Update defconfigs for 2.6.27-rc6 + * sparc32: Fix function signature of of_bus_sbus_get_flags(). + * sched: fix 2.6.27-rc5 couldn't boot on tulsa machine randomly + * sched: fix deadlock in setting scheduler parameter to zero + * KVM: SVM: fix random segfaults with NPT enabled + * KVM: SVM: fix guest global tlb flushes with NPT + * KVM: VMX: Always return old for clear_flush_young() when using EPT + * clocksource, acpi_pm.c: fix check for monotonicity + * [ARM] OMAP: Fix MMC device data + * block: disable sysfs parts of the disk command filter + * ath9k: Assign seq# when mac80211 requests this + * sg: disable interrupts inside sg_copy_buffer + * MN10300: Change the fault handler to check in_atomic() not + in_interrupt() + * [Bluetooth] Fix regression from using default link policy + * netlink: fix overrun in attribute iteration + * x86: fix possible x86_64 and EFI regression + * sparc64: Fix PCI error interrupt registry on PSYCHO. + * sparc: Fix user_regset 'n' field values. + * niu: panic on reset + * PCI: re-add debug prints for unmodified BARs + * [ARM] 5245/1: Fix warning about unused return value in drivers/pcmcia + * [ARM] 5246/1: tosa: add proper clock alias for tc6393xb clock + * [ARM] 5247/1: tosa: SW_EAR_IN support + * [ARM] Fix PCI_DMA_BUS_IS_PHYS for ARM + * ata: duplicate variable sparse warning + * sata_inic162x: enable LED blinking + * [libata] LBA28/LBA48 off-by-one bug in ata.h + * proc: more debugging for "already registered" case + * include/linux/ioport.h: add missing macro argument for devm_release_* + family + * cpuset: avoid changing cpuset's cpus when -errno returned + * cpuset: hotplug documentation fix + * coredump_filter: add description of bit 4 + * bfs: fix Lockdep warning + * mm: ifdef Quicklists in /proc/meminfo + * spi_mpc83xx: fix clockrate calculation for low speed + * spi_mpc83xx: reject invalid transfer sizes + * pxa2xx_spi: chipselect bugfixes + * pxa2xx_spi: dma bugfixes + * mm: mark the correct zone as full when scanning zonelists + * Documentation/ABI: /sys/class/gpio + * MAINTAINERS: fix USB VIDEO CLASS mail list address + * ia64: fix panic during `modprobe -r xpc' + * atmel_lcdfb: disable LCD and DMA engines when suspending + * spi_s3c24xx: fix section warning + * rescan_partitions(): make device capacity errors non-fatal + * memstick: fix MSProHG 8-bit interface mode support + * Add Uwe Kleine-König to .mailmap + * xen: fix for xen guest with mem > 3.7G + * x86/paravirt: Remove duplicate paravirt_pagetable_setup_{start, done}() + * crypto: talitos - Avoid consecutive packets going out with same IV + * slub: fixed uninitialized counter in struct kmem_cache_node + * udp: Fix rcv socket locking + * IB/mlx4: Fix up fast register page list format + * [MIPS] VR41xx: unsigned irq cannot be negative + * x86: completely disable NOPL on 32 bits + * [S390] cio: Fix driver_data handling for ccwgroup devices. + * [S390] cio: fix orb initialization in cio_start_key + * sparc64: Fix OOPS in psycho_pcierr_intr_other(). + * sparc64: Fix SMP bootup with CONFIG_STACK_DEBUG or ftrace. + * RDMA/nes: Fix client side QP destroy + * IPoIB: Fix deadlock on RTNL between bcast join comp and ipoib_stop() + * clockevents: make device shutdown robust + * powerpc: Fix interrupt values for DMA2 in MPC8610 HPCD device tree + * hpplus: fix build regression + * Fix PNP build failure, bugzilla #11276 + * warn: Turn the netdev timeout WARN_ON() into a WARN() + * [XFS] Move memory allocations for log tracing out of the critical path + * [XFS] Fix regression introduced by remount fixup + * [XFS] Prevent direct I/O from mapping extents beyond eof + * [XFS] Fix barrier status change detection. + * [XFS] Prevent lockdep false positives when locking two inodes. + * [XFS] Fix use-after-free with buffers + * [XFS] Don't do I/O beyond eof when unreserving space + * powerpc: Holly board needs dtbImage target + * Fix compile failure with non modular builds + * [ARM] 5249/1: davinci: remove redundant check in davinci_psc_config() + * [ARM] omap: back out 'internal_clock' support + * sctp: set the skb->ip_summed correctly when sending over loopback. + * [ARM] 5255/1: Update jornada ssp to remove build errors/warnings + * sctp: do not enable peer features if we can't do them. + * sctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH + * bnx2: Promote vector field in bnx2_irq structure from u16 to unsigned + int + * forcedeth: call restore mac addr in nv_shutdown path + * e1000: prevent corruption of EEPROM/NVM + * e100: Use pci_pme_active to clear PME_Status and disable PME# + * md: Don't wait UNINTERRUPTIBLE for other resync to finish + * atstk1000: fix build breakage with BOARD_ATSTK100X_SW2_CUSTOM=y + * avr32: add .gitignore files + * avr32: add generic_find_next_le_bit bit function + * avr32: fix sys_sync_file_range() call convention + * avr32: nmi_enter() without nmi_exit() + * KVM: ia64: 'struct fdesc' build fix + * hwmon: (atxp1) Fix device detection logic + * hwmon: (it87) Fix fan tachometer reading in IT8712F rev 0x7 (I) + * hwmon: (ad7414) Make ad7414_update_device() static + * tmio_mmc: fix compilation with debug enabled + * atmel-mci: debugfs: enable clock before dumping regs + * atmel-mci: Fix memory leak in atmci_regs_show + * atmel-mci: Fix bogus debugfs file size + * atmel-mci: Set MMC_CAP_NEEDS_POLL if no detect_pin + * mmc_block: handle error from mmc_register_driver() + * mmc_test: initialize mmc_test_lock statically + * [MIPS] Fix 64-bit IP checksum code + * [MIPS] SMTC: Clear TIF_FPUBOUND on clone / fork. + * [MIPS] Fix potential latency problem due to non-atomic cpu_wait. + * [MIPS] vmlinux.lds.S: handle .text.* + * MAINTAINERS: Trivial whitespace cleanups + * MAINTAINERS: Various fixes + * Linux 2.6.27-rc7 + + -- Tim Gardner Sun, 21 Sep 2008 21:49:28 -0600 + +linux (2.6.27-3.4) intrepid; urgency=low + + [ Colin Ian King ] + + * SAUCE: fix kernel oops in VirtualBox during paravirt patching + - LP: #246067 + * SAUCE: qc-usb: Enable Logitech QuickCam Messenger + - LP: #209901 + * SAUCE: appleir: Enable driver for new MacBook Pro + - LP: #157919 + + [ Tim Gardner ] + + * Enabled CONFIG_DEBUG_RODATA=y + + [ Upstream Kernel Changes ] + + * Revert "ALSA: hda - Added model selection for iMac 24"" + * Revert "x86: fix HPET regression in 2.6.26 versus 2.6.25, check hpet + against BAR, v3" + * Revert "[ARM] use the new byteorder headers" + * Revert "mac80211: Use IWEVASSOCREQIE instead of IWEVCUSTOM" + * Revert "crypto: camellia - Use kernel-provided bitops, unaligned access + helpers" + * svcrdma: Fix race between svc_rdma_recvfrom thread and the dto_tasklet + * sched, cpuset: rework sched domains and CPU hotplug handling (v4) + * ACPI: Fix now signed module parameter. + * ACPI: Change package length error to warning + * ACPI: Fix now signed module parameter. + * ACPI: Fix typo in "Disable MWAIT via DMI on broken Compal board" + * acpi: add checking for NULL early param + * UBIFS: fix zero-length truncations + * Input: bcm5974 - add maintainer entry + * sh64: re-add the __strnlen_user() prototype + * sh: fix ptrace_64.c:user_disable_single_step() + * PNPACPI: ignore the producer/consumer bit for extended IRQ descriptors + * UBIFS: always read hashed-key nodes under TNC mutex + * UBIFS: allow for racing between GC and TNC + * [CIFS] Fix plaintext authentication + * sparc32: Implement smp_call_function_single(). + * sh: crash kernel resource fix + * sh: fix kexec entry point for crash kernels + * sh: fix platform_resource_setup_memory() section mismatch + * sh: update Migo-R defconfig + * sh: update AP325RXA defconfig + * sh: fix semtimedop syscall + * cifs: fix O_APPEND on directio mounts + * [CIFS] update cifs change log + * [CIFS] Turn off Unicode during session establishment for plaintext + authentication + * ACPI: thinkpad-acpi: wan radio control is not experimental + * sparc: Fix resource flags for PCI children in OF device tree. + * remove blk_register_filter and blk_unregister_filter in gendisk + * ALSA: oxygen: fix distorted output on AK4396-based cards + * ipv6: When we droped a packet, we should return NET_RX_DROP instead of + 0 + * pkt_sched: Fix locking of qdisc_root with qdisc_root_sleeping_lock() + * net: Unbreak userspace usage of linux/mroute.h + * Don't trigger softlockup detector on network fs blocked tasks + * Resource handling: add 'insert_resource_expand_to_fit()' function + * sparc64: setup_valid_addr_bitmap_from_pavail() should be __init + * UBIFS: do not update min_idx_lebs in stafs + * UBIFS: push empty flash hack down + * UBIFS: remove incorrect index space check + * UBIFS: improve statfs reporting + * UBIFS: fix assertion + * UBIFS: add forgotten gc_idx_lebs component + * UBIFS: introduce LEB overhead + * UBIFS: improve statfs reporting even more + * UBIFS: fill f_fsid + * drm/radeon: downgrade debug message from info to debug. + * Remove invalidate_partition call from do_md_stop. + * Fix problem with waiting while holding rcu read lock in md/bitmap.c + * ALSA: hda: Distortion fix for dell_m6_core_init + * ALSA: ASoC: fix pxa2xx-i2s clk_get call + * block: restore original behavior of /proc/partition when there's no + partition + * debugobjects: fix lockdep warning + * avr32: Fix lockup after Java stack underflow in user mode + * avr32: pm_standby low-power ram bug fix + * nfsd: fix compound state allocation error handling + * sunrpc: fix possible overrun on read of /proc/sys/sunrpc/transports + * nfsd: fix buffer overrun decoding NFSv4 acl + * audit: Moved variable declaration to beginning of function + * Fix modules_install on RO nfs-exported trees. + * Remove '#include ' from mm/page_isolation.c + * dabusb_fpga_download(): fix a memory leak + * [MTD] mtdchar.c: Fix regression in MEMGETREGIONINFO ioctl() + * ALSA: hda - Fix ALC663 auto-probe + * ALSA: hda - Add mic-boost controls to ALC662/663 auto configuration + * Un-break printk strings in x86 PCI probing code + * kernel/resource.c: fix new kernel-doc warning + * softlockup: minor cleanup, don't check task->state twice + * fix typo in arch/parisc/hpux/fs.c + * m68k: atari_keyb_init operator precedence fix + * ACPI: Fix typo in "Disable MWAIT via DMI on broken Compal board" + * don't diff generated firmware files + * IDE: compile fix for sff_dma_ops + * IDE: palm_bk3710: fix compile warning for unused variable + * ide: fix hwif_to_node() + * palm_bk3710: improve IDE registration + * ide-disk: remove stale init_idedisk_capacity() documentation + * ide/Kconfig: mark ide-scsi as deprecated + * net/wireless/Kconfig: clarify the description for + CONFIG_WIRELESS_EXT_SYSFS + * iwlwifi: do not use GFP_DMA in iwl_tx_queue_init + * iwlwifi: workaround interrupt handling no some platforms + * iwlwifi: fix apm_stop (wrong bit polarity for FLAG_INIT_DONE) + * iwlwifi: fix 64bit platform firmware loading + * orinoco: Multicast to the specified addresses + * wireless/libertas/if_cs.c: fix memory leaks + * mac80211: Fix debugfs union misuse and pointer corruption + * rt2x00: Compiler warning unmasked by fix of BUILD_BUG_ON + * ath9k: Incorrect key used when group and pairwise ciphers are + different. + * ath9: Fix ath_rx_flush_tid() for IRQs disabled kernel warning message. + * net/xfrm: Use an IS_ERR test rather than a NULL test + * ipv: Re-enable IP when MTU > 68 + * NTFS: update homepage + * mm: make setup_zone_migrate_reserve() aware of overlapping nodes + * VFS: fix dio write returning EIO when try_to_release_page fails + * acer-wmi: remove debugfs entries upon unloading + * mm/bootmem: silence section mismatch warning - + contig_page_data/bootmem_node_data + * MAINTAINERS: add a maintainer for the BCM5974 multitouch driver + * 8250: improve workaround for UARTs that don't re-assert THRE correctly + * mmc: at91_mci: don't use coherent dma buffers + * pid_ns: zap_pid_ns_processes: fix the ->child_reaper changing + * pid_ns: (BUG 11391) change ->child_reaper when init->group_leader exits + * cirrusfb: check_par fixes + * devcgroup: fix race against rmdir() + * mm: show quicklist usage in /proc/meminfo + * mm: size of quicklists shouldn't be proportional to the number of CPUs + * ipc: document the new auto_msgmni proc file + * hp-wmi: update to match current rfkill semantics + * hp-wmi: add proper hotkey support + * tdfxfb: fix SDRAM memory size detection + * tdfxfb: fix frame buffer name overrun + * rtc_time_to_tm: fix signed/unsigned arithmetic + * ibft: fix target info parsing in ibft module + * sysfs: document files in /sys/firmware/sgi_uv/ + * rtc-cmos: wake again from S5 + * pm_qos_requirement might sleep + * drivers/char/random.c: fix a race which can lead to a bogus BUG() + * ipsec: Fix deadlock in xfrm_state management. + * [x86] Fix TSC calibration issues + * tipc: Don't use structure names which easily globally conflict. + * sparc64: Fix IPI call locking. + * [ARM] omap: fix gpio.c build error + * sparc64: Prevent sparc64 from invoking irq handlers on offline CPUs + * powerpc: Fix uninitialised variable in VSX alignment code + * powerpc: Only make kernel text pages of linear mapping executable + * powerpc: Make sure _etext is after all kernel text + * powerpc: Work around gcc's -fno-omit-frame-pointer bug + * powerpc: Fix build error with 64K pages and !hugetlbfs + * powerpc: Fix for getting CPU number in power_save_ppc32_restore() + * UBIFS: amend f_fsid + * net/usb/pegasus: avoid hundreds of diagnostics + * ixgbe: initialize interrupt throttle rate + * pcnet-cs, axnet_cs: add new IDs, remove dup ID with less info + * netxen: Remove workaround for chipset quirk + * Split up PIT part of TSC calibration from native_calibrate_tsc + * iwlwifi: W/A for the TSF correction in IBSS + * iwlwifi: fix hidden ssid discovery in passive channels + * iwlwifi: remove false rxon if rx chain changes + * iwlwifi: fix station mimo power save values + * iwlwifi: fix rx_chain computation + * iwlwifi: fix Tx cmd memory allocation failure handling + * iwlwifi: call apm stop on exit + * iwlwifi: fix STATUS_EXIT_PENDING is not set on pci_remove + * ath9k: Fix TX status reporting + * ath9k: Fix TX control flag use for no ACK and RTS/CTS + * V4L/DVB (8555): au8522: add mechanism to configure IF frequency for vsb + and qam + * V4L/DVB (8556): au0828: add support for Hauppauge Woodbury + * V4L/DVB (8598): au8522: clean up function au8522_set_if + * V4L/DVB (8599): au8522: remove if frequency settings from vsb/qam + modulation tables + * V4L/DVB (8600): au0828: explicitly set 6 MHz IF frequency in + hauppauge_hvr950q_config + * V4L/DVB (8629): v4l2-ioctl: do not try to handle private V4L1 ioctls + * V4L/DVB (8633): ivtv: update ivtv version number + * V4L/DVB (8648): ivtv: improve CC support + * V4L/DVB (8660): gspca: Simplify the scan of URB packets in pac7311. + * V4L/DVB (8661): gspca: Bug in the previous changeset about pac7311. + * V4L/DVB (8663): gspca: Webcam 0c45:6128 added in sonixj. + * V4L/DVB (8664): gspca: The bridge/sensor of the webcam 093a:2621 is a + PAC 7302. + * V4L/DVB (8665): gspca: Fix the 640x480 resolution of the webcam + 093a:2621. + * V4L/DVB (8666): gspca: Bad scanning of frames in pac7311. + * V4L/DVB (8667): gspca: Bad probe of Z-Star/Vimicro webcams with pas106 + sensor. + * V4L/DVB (8668): gspca: Conflict GSPCA / ET61X251 for the webcam + 102c:6251. + * V4L/DVB (8669): gspca: Add white balance control for spca561 rev 012A. + * V4L/DVB (8671): gspca: Remove the unused field 'dev_name' of the device + structure. + * V4L/DVB (8672): gspca: Big rewrite of spca561. + * V4L/DVB (8673): gspca: Bad frame scanning again and bad init in + pac7311. + * V4L/DVB (8674): gspca: Webcam 0c45:612e added in sonixj. + * V4L/DVB (8675): gspca: Pixmap PJPG (Pixart 73xx JPEG) added, generated + by pac7311. + * V4L/DVB (8678): Remove the dead CONFIG_RADIO_MIROPCM20{,_RDS} code + * V4L/DVB (8681): v4l2-ioctl.c: fix warning + * V4L/DVB (8682): V4L: fix return value of register video func + * V4L/DVB (8701): cx18: Add missing lock for when the irq handler + manipulates the queues + * V4L/DVB (8703): gspca: Do controls work for spca561 revision 12a. + * V4L/DVB (8705): gspca: Adjust some control limits in spca561. + * V4L/DVB (8706): Make contrast and brightness work for pac7302. + * V4L/DVB (8707): gspca: Colors, hflip and vflip controls added for + pac7302. + * V4L/DVB (8709): gspca: Fix initialization and controls of sn9x110 - + ov7630. + * V4L/DVB (8710): gspca: Bad color control in sonixj. + * V4L/DVB (8711): gspca: Bad controls and quantization table of pac7311. + * V4L/DVB (8712): gspca: Bad start of sonixj webcams since changeset + a8779025e7e8. + * V4L/DVB (8713): gspca: Bad color control again in sonixj. + * V4L/DVB (8714): gspca: Bad start of sn9c110 and sensor om6802. + * V4L/DVB (8715): gspca: Change the name of some webcam in the gspca doc. + * V4L/DVB (8716): gspca: Bad start of sn9c110 and sensor ov7630. + * V4L/DVB (8717): gspca: Frame buffer too small for small resolutions + (sonixj and t613). + * V4L/DVB (8718): gspca: suspend/resume added. + * V4L/DVB (8719): gspca: Have VIDIOC_QUERYCTRL more compliant to the + spec. + * V4L/DVB (8720): gspca: V4L2_CAP_SENSOR_UPSIDE_DOWN added as a cap for + some webcams. + * V4L/DVB (8722): sms1xxx: fix typo in license header + * V4L/DVB (8726): link tuner before saa7134 + * V4L/DVB (8727): V4L1: make PMS not autoprobe when builtin. + * V4L/DVB (8728): 1-make-pms-not-autoprobe-when-builtin update + * V4L/DVB (8749): Fix error code, when camera is not turned on by sonypi + * V4L/DVB (8750): V4L: check inval in video_register_device_index() + * V4L/DVB (8751): vivi: Fix some issues at vivi register routine + * V4L/DVB (8757): v4l-dvb: fix a bunch of sparse warnings + * V4L/DVB (8769): cx18: Simplify queue flush logic to prevent oops in + cx18_flush_queues() + * V4L/DVB (8778): radio: fix incorrect video_register_device result check + * V4L/DVB (8779): v4l: fix more incorrect video_register_device result + checks + * V4L/DVB (8790): saa7115: call i2c_set_clientdata only when state != + NULL + * V4L/DVB (8803): s5h1409: Enable QAM_AUTO mode + * V4L/DVB (8804): s5h1411: Enable QAM_AUTO mode + * V4L/DVB (8805): Steven Toth email address change + * V4L/DVB (8809): gspca: Revert commit + 9a9335776548d01525141c6e8f0c12e86bbde982 + * V4L/DVB (8810): gspca: Compile error when CONFIG_PM not defined. + * V4L/DVB (8812): gspca: Do pac73xx webcams work. + * V4L/DVB (8813): gspca: Adjust SOF detection for pac73xx. + * V4L/DVB (8814): gspca: Set DISABLED the disabled controls at query + control time. + * V4L/DVB (8815): gspca: Fix problems with disabled controls. + * V4L/DVB (8816): gspca: Set disabled ctrls and fix a register pb with + ovxxxx in sonixb. + * V4L/DVB (8817): gspca: LED and proble changes in sonixb. + * V4L/DVB (8818): gspca: Reinitialize the device on resume. + * V4L/DVB (8819): gspca: Initialize the ov519 at open time and source + cleanup. + * V4L/DVB (8820): gspca: Change initialization and gamma of zc3xx - + pas106. + * V4L/DVB (8822): gspca: Change some subdriver functions for + suspend/resume. + * V4L/DVB (8823): gspca: H and V flips work for ov7670 only in ov519. + * V4L/DVB (8824): gspca: Too much code removed in the suspend/resume + changeset. + * V4L/DVB (8825): gspca: More controls for pac73xx and new webcam + 093a:2624. + * V4L/DVB (8826): gspca: Webcam Labtec 2200 (093a:2626) added in pac7311. + * V4L/DVB (8827): gspca: Stop pac7302 autogain oscillation. + * V4L/DVB (8828): gspca: Set the clock at the end of initialization in + sonixj. + * V4L/DVB (8829): gspca: Have a clean kmalloc-ated buffer for USB + exchanges. + * V4L/DVB (8830): gspca: Move some probe code to the new init function. + * V4L/DVB (8831): gspca: Resolve webcam conflicts between some drivers. + * V4L/DVB (8832): gspca: Bad pixelformat of vc0321 webcams. + * V4L/DVB (8833): gspca: Cleanup the sonixb code. + * V4L/DVB (8834): gspca: Have a bigger buffer for sn9c10x compressed + images. + * V4L/DVB (8835): gspca: Same pixfmt as the sn9c102 driver and raw Bayer + added in sonixb. + * V4L/DVB (8837): dvb: fix I2C adapters name size + * V4L/DVB (8839): dib0700: add comment to identify 35th USB id pair + * V4L/DVB (8840): dib0700: add basic support for Hauppauge Nova-TD-500 + (84xxx) + * V4L/DVB (8842): vivi_release(): fix use-after-free + * V4L/DVB (8843): tda10048_firmware_upload(): fix a memory leak + * V4L/DVB (8844): dabusb_fpga_download(): fix a memory leak + * bnx2x: Accessing un-mapped page + * SELinux: memory leak in security_context_to_sid_core + * x86: add io delay quirk for Presario F700 + * mmap: fix petty bug in anonymous shared mmap offset handling + * x86: Change warning message in TSC calibration. + * PCI: fix pbus_size_mem() resource alignment for CardBus controllers + * [ARM] omap: fix build error in ohci-omap.c + * [ARM] remove unused #include + * ACPI: Make Len Brown the ACPI maintainer again + * fujitsu-laptop: fix regression for P8010 in 2.6.27-rc + * ACPI: Avoid bogus timeout about SMbus check + * acer-wmi: remove debugfs entries upon unloading + * forgotten refcount on sysctl root table + * V4L/DVB (8868): gspca: Support for vga modes with sif sensors in + sonixb. + * V4L/DVB (8869): gspca: Move the Sonix webcams with TAS5110C1B from + sn9c102 to gspca. + * V4L/DVB (8870): gspca: Fix dark room problem with sonixb. + * V4L/DVB (8872): gspca: Bad image format and offset with rev072a of + spca561. + * V4L/DVB (8873): gspca: Bad image offset with rev012a of spca561 and + adjust exposure. + * V4L/DVB (8874): gspca: Adjust hstart for sn9c103/ov7630 and update + usb-id's. + * [ARM] omap: fix virtual vs physical address space confusions + * V4L/DVB (8876): budget: udelay changed to mdelay + * V4L/DVB (8877): b2c2 and bt8xx: udelay to mdelay + * V4L/DVB (8880): PATCH: Fix parents on some webcam drivers + * V4L/DVB (8881): gspca: After 'while (retry--) {...}', retry will be -1 + but not 0. + * powerpc/spufs: Fix multiple get_spu_context() + * powerpc/spufs: Fix race for a free SPU + * Input: bcm5974 - small formatting cleanup + * Input: bcm5974 - improve finger tracking and counting + * Input: bcm5974 - add BTN_TOUCH event for mousedev benefit + * Input: i8042 - make Lenovo 3000 N100 blacklist entry more specific + * sh: resume_kernel fix for kernel oops built with CONFIG_BKL_PREEMPT=y. + * sh64: resume_kernel fix for kernel oops built with + CONFIG_BKL_PREEMPT=y. + * i2c: fix i2c-sh_mobile timing issues + * clockevents: prevent clockevent event_handler ending up handler_noop + * clockevents: prevent endless loop in periodic broadcast handler + * clockevents: enforce reprogram in oneshot setup + * clockevents: prevent multiple init/shutdown + * clockevents: prevent endless loop lockup + * HPET: make minimum reprogramming delta useful + * [MTD] [NAND] tmio_nand: fix base address programming + * Fix conditional export of kvh.h and a.out.h to userspace. + * async_tx: fix the bug in async_tx_run_dependencies + * sched_clock: fix NOHZ interaction + * sched: fix process time monotonicity + * UBIFS: fix division by zero + * UBIFS: make minimum fanout 3 + * [MIPS] Fix data bus error recovery + * [MIPS] Fix WARNING: at kernel/smp.c:290 + * [MIPS] TXx9: Fix txx9_pcode initialization + * [MIPS] TX39xx: Add missing local_flush_icache_range initialization + * [MIPS] Probe initrd header only if explicitly specified + * res_counter: fix off-by-one bug in setting limit + * forcedeth: fix kexec regression + * atmel_lcdfb: fix oops in rmmod when framebuffer fails to register + * tracehook: comment pasto fixes + * drivers/mmc/card/block.c: fix refcount leak in mmc_block_open() + * x86: boot: stub out unimplemented CPU feature words + * x86: add NOPL as a synthetic CPU feature bit + * x86: use X86_FEATURE_NOPL in alternatives + * clockevents: broadcast fixup possible waiters + * x86: HPET fix moronic 32/64bit thinko + * x86: HPET: read back compare register before reading counter + * Fix CONFIG_AC97_BUS dependency + * [ARM] 5241/1: provide ioremap_wc() + * ntp: fix calculation of the next jiffie to trigger RTC sync + * clocksource, acpi_pm.c: use proper read function also in errata mode + * clocksource, acpi_pm.c: check for monotonicity + * x86: delay early cpu initialization until cpuid is done + * x86: move mtrr cpu cap setting early in early_init_xxxx + * sched: arch_reinit_sched_domains() must destroy domains to force + rebuild + * x86, xen: Use native_pte_flags instead of native_pte_val for .pte_flags + * x86: pda_init(): fix memory leak when using CPU hotplug + * x86: cpu_init(): fix memory leak when using CPU hotplug + * powerpc/spufs: Fix possible scheduling of a context to multiple SPEs + * netfilter: nf_conntrack_sip: de-static helper pointers + * netfilter: nf_conntrack_gre: more locking around keymap list + * netfilter: nf_conntrack_gre: nf_ct_gre_keymap_flush() fixlet + * netfilter: nf_conntrack_irc: make sure string is terminated before + calling simple_strtoul + * pkt_sched: Fix qdisc state in net_tx_action() + * powerpc: Fix rare boot build breakage + * ahci, pata_marvell: play nicely together + * sata_mv: add RocketRaid 1720 PCI ID to driver + * ahci: disable PMP for marvell ahcis + * sata_nv: disable hardreset for generic + * libata-sff: kill spurious WARN_ON() in ata_hsm_move() + * pata_sil680: remove duplicate pcim_enable_device + * ahci: RAID mode SATA patch for Intel Ibex Peak DeviceIDs + * [MIPS] IP22: Fix detection of second HPC3 on Challenge S + * xen: fix 2.6.27-rc5 xen balloon driver warnings + * x86: disable static NOPLs on 32 bits + * netns : fix kernel panic in timewait socket destruction + * bridge: don't allow setting hello time to zero + * NFS: Restore missing hunk in NFS mount option parser + * usb: fix null deferences in low level usb serial + * Fix format of MAINTAINERS + * sparc64: Disable timer interrupts in fixup_irqs(). + * [Bluetooth] Fix reference counting during ACL config stage + * [Bluetooth] Enforce correct authentication requirements + * [Bluetooth] Reject L2CAP connections on an insecure ACL link + * [S390] CVE-2008-1514: prevent ptrace padding area read/write in 31-bit + mode + * [S390] cio: Correct cleanup on error. + * [S390] cio: handle ssch() return codes correctly. + * [S390] cio: allow offline processing for disconnected devices + * ipsec: Restore larval states and socket policies in dump + * update Documentation/filesystems/Locking for 2.6.27 changes + * MAINTAINERS: add Atheros maintainer for atlx + * lib: Correct printk %pF to work on all architectures + * x86: fix memmap=exactmap boot argument + * clockevents: remove WARN_ON which was used to gather information + * ipv6: Fix OOPS in ip6_dst_lookup_tail(). + * Linux 2.6.27-rc6 + + -- Ben Collins Tue, 02 Sep 2008 12:45:56 -0400 + +linux (2.6.27-2.3) intrepid; urgency=low + + [ Ben Collins ] + + * build/retag: Make script save .orig of tags for later use + * ubuntu/lirc: Fix device_create call + * build/firmware: Put in-kernel firmware into version specific subdir + - LP: #262115 + * Rebase on linux-2.6 git. + * ABI bump + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (no-up) Apparmor warning fixes + + [ John Johansen ] + + * SAUCE: (no-up) Proper AppArmor ptrace updates for newer lsm API + + [ Mackenzie Morgan ] + + * SAUCE: Add quirk for ASUS Z37E to make sound audible after resume + - LP: #25896 + + -- Ben Collins Wed, 27 Aug 2008 14:03:05 -0400 + +linux (2.6.27-1.2) intrepid; urgency=low + + [ Amit Kucheria ] + + * SAUCE: make fc transport removal of target configurable + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + + [ Ben Collins ] + + * SAUCE: Lower warning level of some PCI messages + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: (no-up) version: Implement version_signature proc file. + * SAUCE: (no-up) connector.h: Add idx/val for drbd + * SAUCE: (no-up) swap: Add notify_swap_entry_free callback for compcache + * SAUCE: drivers: Remove some duplicate device entries in various modules + * SAUCE: (no-up) [AppArmor] merge with upstream subversion r1291 + * SAUCE: apparmor: Update for changes to ptrace lsm hooks + * SAUCE: (no-up) Enable ubuntu extra subdirectory + * SAUCE: applesmc: Add MacBookAir + * SAUCE: (no-up) ACPI: initramfs DSDT override support + * ubuntu: Add drbd module + * ubuntu: Add iscsitarget module + * ubuntu: Add BOM for iscsitarget + * ubuntu: Add squashfs driver + * SAUCE: (no-up) Check for squashfs superblock in initramfs mounting. + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Added et131x driver + * ubuntu: Add dm-raid4-5 driver + * ubuntu: Add ndiswrapper driver + * ubuntu: Added ram backed compressed swap module (compcache) + * ubuntu: Add misc drivers from hardy lum + * ubuntu: Add heci driver 3.2.0.24 + * ubuntu: Add ov511 and bt-sco drivers + * ubuntu: Add acx, prism2_usb wireless drivers + * ubuntu: Add at76 driver to build + * ubuntu: Add fsam7400 sw kill switch driver + * ubuntu: Added qc-usb driver + * ubuntu: e1000e: Upgraded module to 0.4.1.7 + * ubuntu: Added rfkill drivers + * ubuntu: VIA - Add VIA DRM Chrome9 3D engine + * ubuntu: unionfs: Added v1.4 module from hardy + * ubuntu: Add LIRC driver + * ubuntu: Add GFS driver + * ubuntu: New tlsup driver for toshiba laptops + * Update config files + * build/d-i: Remove obsolete dm modules + + [ Chuck Short ] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + + [ Colin Ian King ] + + * ubuntu: Add dm-loop + * SAUCE: Enable speedstep for sonoma processors. + + [ Dennis Noordsij ] + + * SAUCE: Work around ACPI corruption upon suspend on some Dell machines. + + [ Fabio M. Di Nitto ] + + * SAUCE: Export gfs2 symbols required for gfs1 kernel module + + [ Matthew Garrett ] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [ Michael Frey (Senior Manager, MID ] + + * SAUCE: Send HCI_RESET for Broadcomm 2046 + + [ Phillip Lougher ] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [ Stefan Bader ] + + * SAUCE: (no-up) Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: mmc: Increase power_up deleay to fix TI readers + + [ Tim Gardner ] + + * SAUCE: Add extra headers to linux-libc-dev + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: (no-up) Take care of orinoco_cs overlap with hostap_cs + * ubuntu: Add GNBD driver + + -- Ben Collins Sat, 23 Aug 2008 15:48:35 -0400 + +linux (2.6.27-0.0) intrepid; urgency=low + + * Not uploaded, placeholder for new release + + -- Ben Collins Sat, 23 Aug 2008 15:48:35 -0400 + +linux (2.6.26-5.17) intrepid; urgency=low + + [ Ben Collins ] + + * build/abi: Add tosh_smm symbol to blacklist + + -- Ben Collins Fri, 15 Aug 2008 09:29:34 -0400 + +linux (2.6.26-5.16) intrepid; urgency=low + + [ Ben Collins ] + + * Revert "SAUCE: toshiba_acpi: Rewrote most of the proc entry bits." + * Revert "SAUCE: Update toshiba_acpi.c to version 0.19a" + * build/config: Disable in-kernel toshiba driver(s) + * ubuntu/tlsup: New driver for toshiba laptops + * build/config: Enable TLSUP driver + * SAUCE: e1000e: Fix E1000E_ENABLED logic to check for our E1000E_NEW + driver as well + * ubuntu/e1000e: Remove E1000E_ENABLED option in local config + * build/config: Update configs to have E1000E_ENABLED set + * ubuntu/prism2: Remove duplicate device + + [ Fabio M. Di Nitto ] + + * SAUCE: Export gfs2 symbols required for gfs1 kernel module + + [ Stefan Bader ] + + * SAUCE: x86: HPET rework for SB700 + - LP: #255910 + + [ Tim Gardner ] + + * Add GNBD driver + * Enable GNBD driver + * SAUCE: Add GFS driver + * SAUCE: Enable gfs driver configs + * b43: Linksys WMP54G (BCM4306/3) card in a PCI format has an SPROM + coding + + [ Upstream Kernel Changes ] + + * KVM: x86 emulator: emulate clflush + * USB: quirk PLL power down mode + + -- Ben Collins Mon, 11 Aug 2008 13:19:28 -0400 + +linux (2.6.26-5.15) intrepid; urgency=low + + [ Ben Collins ] + + * Revert "SAUCE: Add blacklist support to fix Belkin bluetooth dongle." + - Superceded by upstream changes. + * build/config: New option enabled for uvcvideo + * build/control: Add Vcs-Git meta data to control file + * SAUCE: toshiba_acpi: Rewrote most of the new code + * abi/perm-blacklist: Add emu10k1 driver to blacklist + + [ Upstream Kernel Changes ] + + * pxamci: trivial fix of DMA alignment register bit clearing + * udplite: Protection against coverage value wrap-around + * ipv6: use timer pending + * ipv6: __KERNEL__ ifdef struct ipv6_devconf + * hdlcdrv: Fix CRC calculation. + * quota: fix possible infinite loop in quota code + * isofs: fix minor filesystem corruption + * KVM: VMX: Fix a wrong usage of vmcs_config + * KVM: SVM: fix suspend/resume support + * KVM: mmu_shrink: kvm_mmu_zap_page requires slots_lock to be held + * KVM: VMX: Add ept_sync_context in flush_tlb + * KVM: x86 emulator: Fix HLT instruction + * KVM: MMU: nuke shadowed pgtable pages and ptes on memslot destruction + * KVM: MMU: Fix potential race setting upper shadow ptes on nonpae hosts + * Patch Upstream: x86 ptrace: fix PTRACE_GETFPXREGS error + * rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall + * Fix typos from signal_32/64.h merge + * x86 reboot quirks: add Dell Precision WorkStation T5400 + * USB: fix usb serial pm counter decrement for disconnected interfaces + * x86, suspend, acpi: enter Big Real Mode + * markers: fix duplicate modpost entry + * Fix build on COMPAT platforms when CONFIG_EPOLL is disabled + * proc: fix /proc/*/pagemap some more + * cpusets: fix wrong domain attr updates + * x86: fix crash due to missing debugctlmsr on AMD K6-3 + * ide-cd: fix oops when using growisofs + * rtc-at91rm9200: avoid spurious irqs + * vmlinux.lds: move __attribute__((__cold__)) functions back into final + .text section + * ARM: fix fls() for 64-bit arguments + * tcp: Clear probes_out more aggressively in tcp_ack(). + * sparc64: Fix lockdep issues in LDC protocol layer. + * sparc64: Fix cpufreq notifier registry. + * sparc64: Do not define BIO_VMERGE_BOUNDARY. + * iop-adma: fix platform driver hotplug/coldplug + * myri10ge: do not forget to setup the single slice pointers + * myri10ge: do not use mgp->max_intr_slots before loading the firmware + * ALSA: trident - pause s/pdif output + * V4L: cx18: Upgrade to newer firmware & update documentation + * DVB: dib0700: add support for Hauppauge Nova-TD Stick 52009 + * V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing + * V4L: uvcvideo: Use GFP_NOIO when allocating memory during resume + * V4L: uvcvideo: Don't free URB buffers on suspend + * V4L: uvcvideo: Make input device support optional + * V4L: uvcvideo: Add support for Medion Akoya Mini E1210 integrated + webcam + * V4L: saa7134: Copy tuner data earlier to avoid overwriting manual tuner + type + * V4L: cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1 + * DVB: cx23885: Ensure PAD_CTRL is always reset to a sensible default + * DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not + stream + * DVB: cx23885: Reallocated the sram to avoid concurrent VIDB/C issues + * DVB: cx23885: SRAM changes for the 885 and 887 silicon parts + * x86: fix kernel_physical_mapping_init() for large x86 systems + * eCryptfs: use page_alloc not kmalloc to get a page of memory + * UML - Fix boot crash + * ixgbe: remove device ID for unsupported device + * mpc52xx_psc_spi: fix block transfer + * tmpfs: fix kernel BUG in shmem_delete_inode + * markers: fix markers read barrier for multiple probes + * VFS: increase pseudo-filesystem block size to PAGE_SIZE + * cpufreq acpi: only call _PPC after cpufreq ACPI init funcs got called + already + * b43legacy: Release mutex in error handling code + * ath5k: don't enable MSI, we cannot handle it yet + * Fix off-by-one error in iov_iter_advance() + * Linux 2.6.26.1 + * ftrace: remove unneeded documentation + * romfs_readpage: don't report errors for pages beyond i_size + * netfilter: nf_nat_sip: c= is optional for session + * SCSI: bsg: fix bsg_mutex hang with device removal + * x86: idle process - add checking for NULL early param + * x86: io delay - add checking for NULL early param + * Close race in md_probe + * Kprobe smoke test lockdep warning + * netfilter: xt_time: fix time's time_mt()'s use of do_div() + * linear: correct disk numbering error check + * SCSI: ch: fix ch_remove oops + * NFS: Ensure we zap only the access and acl caches when setting new acls + * jbd: fix race between free buffer and commit transaction + * Input: i8042 - add Intel D845PESV to nopnp list + * Input: i8042 - add Gericom Bellagio to nomux blacklist + * Input: i8042 - add Acer Aspire 1360 to nomux blacklist + * Bluetooth: Signal user-space for HIDP and BNEP socket errors + * Add compat handler for PTRACE_GETSIGINFO + * ALSA: hda - Fix wrong volumes in AD1988 auto-probe mode + * ALSA: hda - Fix DMA position inaccuracy + * ALSA: hda - Add missing Thinkpad Z60m support + * ALSA: emu10k1 - Fix inverted Analog/Digital mixer switch on Audigy2 + * vfs: fix lookup on deleted directory + * Ath5k: fix memory corruption + * Ath5k: kill tasklets on shutdown + * sound: ensure device number is valid in snd_seq_oss_synth_make_info + * Linux 2.6.26.2 + + -- Ben Collins Sun, 03 Aug 2008 13:25:02 -0400 + +linux (2.6.26-5.14) intrepid; urgency=low + + [ Ben Collins ] + + * SAUCE: applesmc: Add MacBookAir + * build: Do not build ddeb unless we are on the buildd + * build: control: Consistency in arch fields. + * SAUCE: Update toshiba_acpi.c to version 0.19a + - LP: #77026 + * build: Added perm blacklist support and per-module support to abi-check + - Blacklist p80211 module from abi checks + * ubuntu/lirc: Get rid of drivers symlink and use real include stuff + + + [ Colin Ian King ] + + * SAUCE: acerhk module - add support for Amilo A1650g keyboard + - LP: #84159 + * SAUCE: rt2x00: Fix OOPS on failed creation of rt2x00lib workqueue + - LP: #249242 + + [ Mario Limonciello ] + + * Add LIRC back in + + [ Tim Gardner ] + + * Makefile race condition can lead to ndiswrapper build failure + - LP: #241547 + * update linux-wlan-ng (prism2_usb) to upstream version 1861 + - LP: #245026 + + [ Upstream Kernel Changes ] + + * Fix typos from signal_32/64.h merge + + -- Ben Collins Fri, 01 Aug 2008 00:05:01 -0400 + +linux (2.6.26-5.13) intrepid; urgency=low + + [ Ben Collins ] + + * build: Make makedumpfile an amd64/i386 only build-dep + * ubuntu/acerhk: Fixup assembly to compile with newer binutils + + -- Ben Collins Sat, 26 Jul 2008 16:41:50 -0400 + +linux (2.6.26-4.12) intrepid; urgency=low + + [ Ben Collins ] + + * e1000e: Upgraded module to 0.4.1.7 upstream. Placed in ubuntu/, + in-kernel driver disabled + * config: Disable e1000e in-kernel, and enable newer driver in ubuntu/ + * rfkill: Update to 1.3 drivers, and move to common location + * ubuntu: Actually link kconfig/kbuild into rfkill subdir + * config: Enable loading dsdt from initramfs + - LP: #246222 + * ubuntu: [compcache] Update to fix crashes in improper BUG() + * build: Create a retag scripts to recover tags from rebases + * build: Updates for dbg pkg + * build: Make sure no empty lines show up in debian/files + * ubuntu: atl1e: Add new driver from 2.6.27-pre-rc1 + - LP: #243894 + * sys_getcwd: Fix some brokeness introduced by AppArmor __d_path + changes + - LP: #251223 + * ubuntu: unionfs: Added v1.4 module from hardy + * build: Add sub-flavour infrastructure, and virtual subflav + + [ Eric Piel ] + + * ACPI: Allow custom DSDT tables to be loaded from initramfs + + [ Kees Cook ] + + * AppArmor: Smack VFS patches + + [ Mario Limonciello ] + + * Work around ACPI corruption upon suspend on some Dell machines. + - LP: #183033 + + [ Tim Gardner ] + + * Export usbhid_modify_dquirk for LBM module bcm5974 + - LP: #250838 + * VIA - Add VIA DRM Chrome9 3D engine + - LP: #251862 + * Define TRUE/FALSE for VIA DRM driver. + + -- Ben Collins Tue, 15 Jul 2008 12:51:39 -0400 + +linux (2.6.26-4.11) intrepid; urgency=low + + [ Ben Collins ] + + * config: Enable bcm5974 driver in all configs + + [ 2.6.26-4.10 ] + + [ Amit Kucheria ] + + * Fix typo in GSPCA Makefile and make it compile + + [ Ben Collins ] + + * ubuntu: Remove UVC driver in favor of in-kernel one (-rc9) + * config: Updates for -rc9 + * ubuntu: Add acx, prism2_usb wireless drivers + * config: Enable prism2_usb and acx drivers. + * ubuntu: Add at76 driver to build + * config: Enable at76_usb driver. + * iscsitarget: Fix prototype for bi_end_io callback. + * acx: Fix section type mismatch warnings + * fsam7400: Add sw kill switch driver + * config: Enable fsam7400 driver + * qc-usb: Added new driver + * config: Enable qc-usb driver + * drbd: Remove built-in connector usage + * drbd: Do not define idx/val for connector here + * connector.h: Add idx/val for drbd + * bcm5974: Added new driver + + [ Kees Cook ] + + * SAUCE: [AppArmor] merge with upstream subversion r1291 + * SAUCE: [AppArmor] fix typo in selinux_inode_link + * SAUCE: [AppArmor] aufs patches + + [ Michael Frey (Senior Manager, MID ] + + * SAUCE: Send HCI_RESET for Broadcomm 2046 + - LP: #241749 + + [ Tim Gardner ] + + * SAUCE: Medion Akoya Mini E1210 + + [ Upstream Kernel Changes ] + + * Revert "BAST: Remove old IDE driver" + * ARM: OMAP: DMA: Don't mark channel active in omap_enable_channel_irq + * ARM: OMAP: Correcting the gpmc prefetch control register address + * debugobjects: fix lockdep warning + * [ARM] 5115/1: pxafb: fix ifdef for command line option handling + * [ARM] 5116/1: pxafb: cleanup and fix order of failure handling + * [ARM] 5109/1: Mark rtc sa1100 driver as wakeup source before + registering it + * [ARM] Export dma_sync_sg_for_device() + * fix cgroup-inflicted breakage in block_dev.c + * [patch for 2.6.26 2/4] vfs: utimensat(): be consistent with utime() for + immutable and append-only files + * [patch for 2.6.26 1/4] vfs: utimensat(): ignore tv_sec if tv_nsec == + UTIME_OMIT or UTIME_NOW + * [patch for 2.6.26 3/4] vfs: utimensat(): fix error checking for + {UTIME_NOW,UTIME_OMIT} case + * [patch for 2.6.26 4/4] vfs: utimensat(): fix write access check for + futimens() + * [patch 1/4] vfs: path_{get,put}() cleanups + * [patch 2/4] fs: make struct file arg to d_path const + * [patch 3/4] vfs: fix ERR_PTR abuse in generic_readlink + * [patch 4/4] flock: remove unused fields from file_lock_operations + * [patch 3/3] vfs: make d_path() consistent across mount operations + * [patch 1/3] vfs: dcache sparse fixes + * [patch 2/3] vfs: dcache cleanups + * udf: Fix regression in UDF anchor block detection + * [SCSI] ses: Fix timeout + * netfilter: ip6table_mangle: don't reroute in LOCAL_IN + * [SCSI] esp: Fix OOPS in esp_reset_cleanup(). + * kernel/audit.c: nlh->nlmsg_type is gotten more than once + * audit: fix kernel-doc parameter notation + * remove useless argument type in audit_filter_user() + * Blackfin arch: fix bug - kernel boot fails when Spinlock and rw-lock + debugging enabled + * Blackfin arch: fix up section mismatch warning + * mac80211: implement EU regulatory domain + * b43: Do not return TX_BUSY from op_tx + * b43legacy: Do not return TX_BUSY from op_tx + * b43: Fix possible MMIO access while device is down + * b43legacy: Fix possible NULL pointer dereference in DMA code + * rt2x00: Fix unbalanced mutex locking + * iwlwifi: improve scanning band selection management + * [SCSI] esp: tidy up target reference counting + * [ARM] 5117/1: pxafb: fix __devinit/exit annotations + * thermal: Create CONFIG_THERMAL_HWMON=n + * ACPI: don't walk tables if ACPI was disabled + * dock: bay: Don't call acpi_walk_namespace() when ACPI is disabled. + * x86: shift bits the right way in native_read_tscp + * x86: section/warning fixes + * V4L/DVB (8004): Fix INPUT dependency at budget-ci + * V4L/DVB (8005): Fix OOPS if frontend is null + * V4L/DVB (8007): cx18/cx25840: the S-Video LUMA input can use all + In1-In8 inputs + * V4L/DVB (8008): cx18: remove duplicate audio and video input enums + * V4L/DVB (8010): em28xx: Properly register extensions for already + attached devices + * V4L/DVB (8011): em28xx: enable DVB for HVR-900 + * V4L/DVB (8012): gl861: sleep a little to avoid I2C errors + * V4L/DVB (8013): gl861: remove useless identify_state + * V4L/DVB (8015): gl861: replace non critical msleep(0) with msleep(1) to + be on the safe side + * V4L/DVB (8017): Ensure em28xx extensions only get run against devs that + support them + * V4L/DVB (8018): Add em2860 chip ID + * V4L/DVB (8020): Fix callbacks functions of saa7134_empress + * V4L/DVB (8022): saa7134: fix race between opening and closing the + device + * V4L/DVB (8026): Avoids an OOPS if dev struct can't be successfully + recovered + * V4L/DVB (8027): saa7134: Avermedia A700: only s-video and composite + input are working + * V4L/DVB (8028): Improve error messages for tda1004x attach + * V4L/DVB (8029): Improve error message at tda1004x_attach + * V4L/DVB (8034): tda18271: fix IF notch frequency handling + * V4L/DVB (8035): tda18271: dont touch EB14 if rf_cal lookup is out of + range + * V4L/DVB (8036): tda18271: toggle rf agc speed mode on TDA18271HD/C2 + only + * V4L/DVB (8037): tda18271: ensure that the thermometer is off during + channel configuration + * V4L/DVB (8039): pxa-camera: fix platform_get_irq() error handling. + * V4L/DVB (8040): soc-camera: remove soc_camera_host_class class + * V4L/DVB (8042): DVB-USB UMT-010 channel scan oops + * V4L/DVB (8043): au0828: add support for additional USB device id's + * V4L/DVB (8044): au8522: tuning optimizations + * V4L/DVB (8048): saa7134: Fix entries for Avermedia A16d and Avermedia + E506 + * V4L/DVB (8061): cx18: only select tuner / frontend modules if + !DVB_FE_CUSTOMISE + * V4L/DVB (8063): cx18: Fix unintended auto configurations in + cx18-av-core + * V4L/DVB (8066): cx18: Fix audio mux input definitions for HVR-1600 Line + In 2 and FM radio + * V4L/DVB (8067): cx18: Fix firmware load for case when digital capture + happens first + * V4L/DVB (8068): cx18: Add I2C slave reset via GPIO upon initialization + * V4L/DVB (8069): cx18: Fix S-Video and Compsite inputs for the Yuan + MPC718 and enable card entry + * V4L/DVB (8071): tda10023: Fix possible kernel oops during + initialisation + * V4L/DVB (8073): av7110: Catch another type of ARM crash + * V4L/DVB (8074): av7110: OSD transfers should not be interrupted + * V4L/DVB (8075): stv0299: Uncorrected block count and bit error rate + fixed + * V4L/DVB (8092): videodev: simplify and fix standard enumeration + * V4L/DVB (8096): au8522: prevent false-positive lock status + * V4L/DVB (8097): xc5000: check device hardware state to determine if + firmware download is needed + * V4L/DVB (8100): V4L/vivi: fix possible memory leak in vivi_fillbuff + * V4L/DVB (8108): Fix open/close race in saa7134 + * s2io: fix documentation about intr_type + * tc35815: Mark carrier-off before starting PHY + * tc35815: Fix receiver hangup on Rx FIFO overflow + * ixgbe: fix EEH recovery during reset on PPC + * igb: fix EEH recovery during reset on PPC + * e1000e: fix EEH recovery during reset on PPC + * pcnet_cs, axnet_cs: clear bogus interrupt before request_irq + * drivers/net/r6040.c: Eliminate double sizeof + * ipg: fix jumbo frame compilation + * ipg: use NULL, not zero, for pointers + * [netdrvr] 3c59x: remove irqs_disabled warning from local_bh_enable + * [netdrvr] netxen: fix netxen_pci_tbl[] breakage + * e100: Do pci_dma_sync after skb_alloc for proper operation on ixp4xx + * e1000: only enable TSO6 via ethtool when using correct hardware + * [netdrvr] Fix IOMMU overflow checking in s2io.c + * qla3xxx: Hold RTNL while calling dev_close() + * Hold RTNL while calling dev_close() + * sata_uli: hardreset is broken + * rt2x00: Fix lock dependency errror + * prism: islpci_eth.c endianness fix + * mac80211: fix an oops in several failure paths in key allocation + * firewire: fw-sbp2: fix parsing of logical unit directories + * kbuild: fix a.out.h export to userspace with O= build. + * Ensure interrupted recovery completed properly (v1 metadata plus + bitmap) + * Don't acknowlege that stripe-expand is complete until it really is. + * Fix error paths if md_probe fails. + * hamradio: remove unused variable + * tcp: calculate tcp_mem based on low memory instead of all memory + * tcp: fix for splice receive when used with software LRO + * af_unix: fix 'poll for write'/connected DGRAM sockets + * netdevice: Fix typo of dev_unicast_add() comment + * pkt_sched: ERR_PTR() ususally encodes an negative errno, not positive. + * pkt_sched: Remove CONFIG_NET_SCH_RR + * include/linux/netdevice.h: don't export MAX_HEADER to userspace + * tcp: /proc/net/tcp rto,ato values not scaled properly (v2) + * netlink: Fix some doc comments in net/netlink/attr.c + * CONNECTOR: add a proc entry to list connectors + * inet fragments: fix race between inet_frag_find and + inet_frag_secret_rebuild + * net/inet_lro: remove setting skb->ip_summed when not LRO-able + * netlabel: Fix a problem when dumping the default IPv6 static labels + * ipv6 route: Convert rt6_device_match() to use RT6_LOOKUP_F_xxx flags. + * sched: fix cpu hotplug + * Fix and clean top .gitignore + * x86: fix cpu hotplug crash + * ptrace GET/SET FPXREGS broken + * Input: add KEY_MEDIA_REPEAT definition + * Input: fix locking in force-feedback core + * [ARM] 5131/1: Annotate platform_secondary_init with trace_hardirqs_off + * ide: fix /proc/ide/ide?/mate reporting + * netfilter: nf_conntrack_tcp: fixing to check the lower bound of valid + ACK + * textsearch: fix Boyer-Moore text search bug + * hostap: don't report useless WDS frames by default + * hostap: fix sparse warnings + * mac80211: don't accept WEP keys other than WEP40 and WEP104 + * V4L/DVB (8145a): USB Video Class driver + * [IA64] Bugfix for system with 32 cpus + * [IA64] export account_system_vtime + * sched: fix divide error when trying to configure rt_period to zero + * x86: fix NODES_SHIFT Kconfig range + * block: Fix the starving writes bug in the anticipatory IO scheduler + * Properly notify block layer of sync writes + * rcu: fix hotplug vs rcu race + * I2C: S3C2410: Check ACK on byte transmission + * I2C: S3C2410: Fixup error codes returned rom a transfer. + * I2C: S3C2410: Add MODULE_ALIAS() for s3c2440 device. + * PCI: Restrict VPD read permission to root + * powerpc/bootwrapper: update for initrd with simpleImage + * i2c: Documentation: fix device matching description + * i2c: Fix bad hint about irqs in i2c.h + * powerpc/legacy_serial: Bail if reg-offset/shift properties are present + * powerpc/mpc5200: Fix lite5200b suspend/resume + * ipv4: fix sysctl documentation of time related values + * net-sched: change tcf_destroy_chain() to clear start of filter list + * net-sched: fix filter destruction in atm/hfsc qdisc destruction + * netlink: Unneeded local variable + * net: Tyop of sk_filter() comment + * netdevice: Fix wrong string handle in kernel command line parsing + * net: fib_rules: fix error code for unsupported families + * dm crypt: use cond_resched + * V4L/DVB (8178): uvc: Fix compilation breakage for the other drivers, if + uvc is selected + * PCI: Limit VPD read/write lengths for Broadcom 5706, 5708, 5709 rev. + * PCI: acpiphp: cleanup notify handler on all root bridges + * drivers/input/ff-core.c needs + * DRM/i915: only use tiled blits on 965+ + * tty: Fix inverted logic in send_break + * x86: fix Intel Mac booting with EFI + * arch/x86/mm/init_64.c: early_memtest(): fix types + * 9p: fix O_APPEND in legacy mode + * slub: Do not use 192 byte sized cache if minimum alignment is 128 byte + * Do not overwrite nr_zones on !NUMA when initialising zlcache_ptr + * [MIPS] IP32: Fix unexpected irq 71 + * [MIPS] IP22: Fix crashes due to wrong L1_CACHE_BYTES + * [MIPS] cevt-txx9: Reset timer counter on initialization + * hrtimer: prevent migration for raising softirq + * svcrpc: fix handling of garbage args + * OHCI: Fix problem if SM501 and another platform driver is selected + * USB: fix cdc-acm resume() + * USB: ehci - fix timer regression + * USB: ohci - record data toggle after unlink + * USB: mass storage: new id for US_SC_CYP_ATACB + * sisusbvga: Fix oops on disconnect. + * USB: New device ID for ftdi_sio driver + * USB: fix interrupt disabling for HCDs with shared interrupt handlers + * USB: don't lose disconnections during suspend + * USB: another option device id + * USB: add a pl2303 device id + * USB: fix Oops on loading ipaq module since 2.6.26 + * USB: adding comment for ipaq forcing number of ports + * [MIPS] Fix bug in atomic_sub_if_positive. + * xen: fix address truncation in pte mfn<->pfn conversion + * sata_sil24: add DID for another adaptec flavor + * ahci: always clear all bits in irq_stat + * libata-sff: improve HSM violation reporting + * sata_mv: safer logic for limit_warnings + * Update maintainers for powerpc + * Christoph has moved + * mm: dirty page accounting vs VM_MIXEDMAP + * rtc: rtc_read_alarm() handles wraparound + * firmware: fix the request_firmware() dummy + * serial: fix serial_match_port() for dynamic major tty-device numbers + * get_user_pages(): fix possible page leak on oom + * rtc-x1205: Fix alarm set + * rtc: fix CMOS time error after writing /proc/acpi/alarm + * pci: VT3336 can't do MSI either + * Miguel Ojeda has moved + * ext3: add missing unlock to error path in ext3_quota_write() + * ext4: add missing unlock to an error path in ext4_quota_write() + * reiserfs: add missing unlock to an error path in reiserfs_quota_write() + * ecryptfs: remove unnecessary mux from ecryptfs_init_ecryptfs_miscdev() + * lib: taint kernel in common report_bug() WARN path. + * gpio: pca953x (i2c) handles max7310 too + * fsl_diu_fb: fix build with CONFIG_PM=y, plus fix some warnings + * Update taskstats-struct document for scaled time accounting + * cciss: fix regression that no device nodes are created if no logical + drives are configured. + * delay accounting: maintainer update + * Doc*/kernel-parameters.txt: fix stale references + * hdaps: add support for various newer Lenovo thinkpads + * mn10300: export certain arch symbols required to build allmodconfig + * mn10300: provide __ucmpdi2() for MN10300 + * Introduce rculist.h + * man-pages is supported + * ntfs: update help text + * add kernel-doc for simple_read_from_buffer and memory_read_from_buffer + * w100fb: do not depend on SHARPSL + * w100fb: add 80 MHz modeline + * MFD maintainer + * cgroups: document the effect of attaching PID 0 to a cgroup + * spi: fix the read path in spidev + * doc: doc maintainers + * security: filesystem capabilities: fix fragile setuid fixup code + * security: filesystem capabilities: fix CAP_SETPCAP handling + * Alpha Linux kernel fails with inconsistent kallsyms data + * cpusets: document proc status cpus and mems allowed lists + * MAINTAINERS: update the email address of Andreas Dilger + * cciss: read config to obtain max outstanding commands per controller + * olpc: sdhci: add quirk for the Marvell CaFe's vdd/powerup issue + * olpc: sdhci: add quirk for the Marvell CaFe's interrupt timeout + * cpumask: introduce new APIs + * mm: switch node meminfo Active & Inactive pages to Kbytes + * Update MAINTAINERS file for the TPM device driver + * devcgroup: fix odd behaviour when writing 'a' to devices.allow + * doc: document the relax_domain_level kernel boot argument + * mmc: don't use DMA on newer ENE controllers + * mempolicy: mask off internal flags for userspace API + * x86 ACPI: normalize segment descriptor register on resume + * x86 ACPI: fix resume from suspend to RAM on uniprocessor x86-64 + * softlockup: print a module list on being stuck + * ide: fix hwif->gendev refcounting + * ide: ide_unregister() warm-plug bugfix + * ide: ide_unregister() locking bugfix + * ahci: give another shot at clearing all bits in irq_stat + * Fix clear_refs_write() use of struct mm_walk + * Move _RET_IP_ and _THIS_IP_ to include/linux/kernel.h + * Fix pagemap_read() use of struct mm_walk + * Linux 2.6.26-rc9 + * Revert "USB: don't explicitly reenable root-hub status interrupts" + * Revert "PCI: Correct last two HP entries in the bfsort whitelist" + * iwlwifi: fix incorrect 5GHz rates reported in monitor mode + * iwlwifi: drop skb silently for Tx request in monitor mode + * libertas: support USB persistence on suspend/resume (resend) + * tcp: net/ipv4/tcp.c needs linux/scatterlist.h + * tcp: fix a size_t < 0 comparison in tcp_read_sock + * bridge: fix use-after-free in br_cleanup_bridges() + * Add missing skb->dev assignment in Frame Relay RX code + * forcedeth: fix lockdep warning on ethtool -s + * ehea: fix might sleep problem + * ehea: add MODULE_DEVICE_TABLE + * ehea: fix race condition + * ehea: Access iph->tot_len with correct endianness + * pasemi_mac: Access iph->tot_len with correct endianness + * ibm_newemac: Fixes kernel crashes when speed of cable connected changes + * ibm_newemac: Fixes entry of short packets + * fs_enet: restore promiscuous and multicast settings in restart() + * can: add sanity checks + * x86: KVM guest: Add memory clobber to hypercalls + * KVM: IOAPIC: Fix level-triggered irq injection hang + * [SCSI] erase invalid data returned by device + * pxamci: fix byte aligned DMA transfers + * vsprintf: split out '%s' handling logic + * vsprintf: split out '%p' handling logic + * vsprintf: add infrastructure support for extended '%p' specifiers + * vsprintf: add support for '%pS' and '%pF' pointer formats + * powerpc: Fix unterminated of_device_id array in legacy_serial.c + * [UML] fix gcc ICEs and unresolved externs + * ocfs2/dlm: Fixes oops in dlm_new_lockres() + * hostap_cs: correct poor NULL checks in suspend/resume routines + * drivers/net/wireless/iwlwifi/iwl-3945.c Fix type issue on 64bit + * mac80211: move netif_carrier_on to after + ieee80211_bss_info_change_notify + * mac80211: Only flush workqueue when last interface was removed + * zd1211rw: add ID for AirTies WUS-201 + * ssb-pcicore: Fix IRQ-vector init on embedded devices + * mac80211: don't report selected IBSS when not found + * crypto: tcrypt - Fix memory leak in test_cipher + * sctp: Mark the tsn as received after all allocations finish + * [S390] protect _PAGE_SPECIAL bit against mprotect + * irda: via-ircc proper dma freeing + * irda: New device ID for nsc-ircc + * irda: Fix netlink error path return value + * [SCSI] mptspi: fix oops in mptspi_dv_renegotiate_work() + * Correct hash flushing from huge_ptep_set_wrprotect() + * ide: add __ide_default_irq() inline helper + * palm_bk3710: fix IDECLK period calculation + * it8213: fix return value in it8213_init_one() + * [MIPS] Atlas, decstation: Fix section mismatches triggered by + defconfigs + * [MIPS] Fix 32bit kernels on R4k with 128 byte cache line size + * NFS: Fix readdir cache invalidation + * SUNRPC: Fix a double-free in rpcbind + * SUNRPC: Fix an rpcbind breakage for the case of IPv6 lookups + * reiserfs: discard prealloc in reiserfs_delete_inode + * Fix broken fix for fsl-diu-db + * RDMA/cxgb3: Fix regression caused by class_device -> device conversion + * ipv6: fix race between ipv6_del_addr and DAD timer + * sctp: Add documentation for sctp sysctl variable + * kernel/printk.c: Made printk_recursion_bug_msg static. + * powerpc: Add missing reference to coherent_dma_mask + * rc80211_pid: Fix fast_start parameter handling + * rt2x00: Disable synchronization during initialization + * zd1211rw: stop beacons on remove_interface + * libertas: fix memory alignment problems on the blackfin + * netfilter: nf_conntrack_tcp: fix endless loop + * netfilter: nf_nat_snmp_basic: fix a range check in NAT for SNMP + * md: ensure all blocks are uptodate or locked when syncing + * sched: fix cpu hotplug + * x86: fix /dev/mem compatibility under PAT + * crypto: chainiv - Invoke completion function + * ocfs2: Fix flags in ocfs2_file_lock + * kernel/kprobes.c: Made kprobe_blacklist static. + * arch/x86/kernel/.gitignore: Added vmlinux.lds to .gitignore file + because it shouldn't be tracked. + * ftrace: Documentation + * Fix PREEMPT_RCU without HOTPLUG_CPU + * sched: fix cpu hotplug, cleanup + * exec: fix stack excutability without PT_GNU_STACK + * slub: Fix use-after-preempt of per-CPU data structure + * Documentation: clarify tcp_{r,w}mem sysctl docs + * ip: sysctl documentation cleanup + * tcp: correct kcalloc usage + * ipv4: fib_trie: Fix lookup error return + * netlabel: netlink_unicast calls kfree_skb on error path by itself + * ipv6: missed namespace context in ipv6_rthdr_rcv + * xfrm: Add a XFRM_STATE_AF_UNSPEC flag to xfrm_usersa_info + * tun: Persistent devices can get stuck in xoff state + * tpm: add Intel TPM TIS device HID + * rapidio: fix device reference counting + * Fix name of Russell King in various comments + * rtc: fix reported IRQ rate for when HPET is enabled + * libata-acpi: filter out DIPM enable + * Added Targa Visionary 1000 IDE adapter to pata_sis.c + * libata-acpi: don't call sleeping function from invalid context + * Fix reference counting race on log buffers + * [SCSI] ipr: Fix HDIO_GET_IDENTITY oops for SATA devices + * IPMI: return correct value from ipmi_write + * x86: fix ldt limit for 64 bit + * [SCSI] fusion: default MSI to disabled for SPI and FC controllers + * [SCSI] bsg: fix oops on remove + * drivers/char/pcmcia/ipwireless/hardware.c fix resource leak + * drivers/isdn/i4l/isdn_common.c fix small resource leak + * fbdev: bugfix for multiprocess defio + * serial8250: sanity check nr_uarts on all paths. + * ov7670: clean up ov7670_read semantics + * rtc-fm3130: fix chip naming + * rtc-pcf8563: add chip id + * OProfile kernel maintainership changes + * frv: fix irqs_disabled() to return an int, not an unsigned long + * cifs: fix inode leak in cifs_get_inode_info_unix + * cifs: fix wksidarr declaration to be big-endian friendly + * cpusets, hotplug, scheduler: fix scheduler domain breakage + * Documentation/HOWTO: correct wrong kernel bugzilla FAQ URL + * devcgroup: always show positive major/minor num + * devcgroup: fix permission check when adding entry to child cgroup + * Linux 2.6.26 + + -- Ben Collins Mon, 14 Jul 2008 13:41:50 -0400 + +linux (2.6.26-3.9) intrepid; urgency=low + + * abi: Add dca and ioatdma to modules.ignore + + [ 2.6.26-3.8 ] + + [ Ben Collins ] + + * ubuntu: Add heci driver 3.2.0.24 + * ubuntu: Add heci to kconfig/kbuild + * config: Enable heci module on all flavours + * dm-bbr: Update to get it to compile with 2.6.26 + * config: Enable dm-bbr + * ubuntu: Add some media drivers + * config: Enable misc media drivers + * udeb: Switch to uvesafb in fb-modules + * abi: Add more modules to ignore (known) + + [ 2.6.26-3.7 ] + + [Amit Kucheria] + + * SAUCE: make fc transport removal of target configurable + - LP: #163075 + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + + [Ben Collins] + + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: irda: Default to dongle type 9 on IBM hardware + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: version: Implement version_signature proc file. + * build: Cleanup arches + * build: Remove remnants of unused binary-custom infrastructure + * build: Remove disable_d_i (not needed) and cleanup ppa build stuff + * ubuntu: New modules, acer-acpi + * build: Remove -virtual, and rebuild configs + * ubuntu: Add drbd module + * acer-acpi: Fix makefile + * x86/Kconfig: Fix missing quote for ubuntu Kconfig source + * ubuntu: Add iscsitarget module + * ubuntu: Added Amiga FS driver + * ubuntu: Add squashfs driver + * ubuntu: Remove asfs (Amiga FS). Need to be in linux-ports instead + * squashfs: Move headers to real include directory + * build/configs: The Great Config Consistency Check of 2008 + * ubuntu: Move third-party includes to ubuntu/include + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Add dm-radi4-5 driver + * build: Add CONFIG_DEBUG_SECTION_MISMATCH=y to get old style warnings + from build + * ubuntu/Makefile: Fixup dm-raid4-5 and add kludge for kbuild + * squashfs: Fixes for VFS changes + * ubuntu/dm-raid4-5: Fixups for moved/renamed headers/functions in core + md + * ubuntu: Add ndiswrapper driver + * d-i: Update module listings + * build: Disable xd block device (ancient) + * ndiswrapper: Fixup makefile + * d-i: Remove efi-modules. The only module, efivars, is built-in + * build: Remove install-source, obsolete and caused build failure + * Ubuntu-2.6.26-1.3 + * build: linux-doc rules got broken when disabling html side. Fixed now. + * Ubuntu-2.6.26-1.4 + * x86: Update to -rc6 allows CONFIG_PCI_OLPC to work with PCI_GOANY + * d-i: Make virtio-ring optional (it's built-in on i386) + * Ubuntu-2.6.26-1.4 + * Ubuntu-2.6.26-1.5 + * config: Enable DVB devices + * ubuntu/aufs: Make aufs a bool config, since it needs to be built-in + * config: Build aufs into the kernels + * build: Fix arguments passed to link-headers script + * config: Disable early printk + * d-i: Move isofs to storage-core and kill st (scsi tape) from list + * config: Enable non-promiscuous access to /dev/mem + * x86: Add option to disable decompression info messages + * config: Enable no-bz-chatter config options + * build: Re-add linux-source package + * d-i: Re-add socket-modules. Accidentally removed + - LP: #241295 + * Ubuntu-2.6.26-2.6 + * Use makedumpfile to generate a vmcoreinfo file. + * build: Build-Depend on makedumpfile for vmcoreinfo generation + * build: Remove debug print from git-ubuntu-log + * Updated configs for -rc7 + * build: postinst, do not call depmod with -F + * config: Enable rtc-cmos as a built-in driver. + * control: Provide ndiswrapper-modules-1.9 + * build: Generate vmcoreinfo in image build for crashdumps without debug + image + * config: Disable vesafb, since we'll prefer uvesafb + * build: Copy uvesafb module to initrd mod directory + * abi-check: New, more robust script + * config: Enable heap randomization by default + * abi-check: Cleanup output and call with perl (not $SHELL) + * abi: Ignore missing vesafb (known) + * config: Disable pcspkr (in favor of snd-pcsp) + * swap: Add notify_swap_entry_free callback for compcache + * compcache: Added ram backed compressed swap module + * ubuntu: Enable kbuild and kconfig for compcache + * config: Enable compcache and tlsf allocator as modules + * config: Updated for -rc8. Disables XEN on i386 + * config: Switch i386-server to 64G, enable PAE, 64-bit res, and XEN + * ubuntu: Add misc drivers from hardy lum + * ubuntu: Enable build of misc/ subdir + * config: Enable misc drivers + * aufs: Fix warning about single non-string-literal arg to printf style + function + * drivers: Remove some duplicate device entries in various modules + * config: Disable some duplicate drivers + * keyspan: Remove duplicate device ID's + * check-aliases: Cleanup output, and fix rolling checks + * ubuntu: Disable dm-bbr for now + * dm-bbr: First cut at forward portiong. Still needs work. + * ubuntu: Disable dm-bbr in kbuild/kconfig + + [Chuck Short] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + - LP: #175834 + * SAUCE: [USB]: add ASUS LCM to the blacklist + + [Colin Ian King] + + * SAUCE: airprime.c supports more devices + - LP: #208250 + * SAUCE: Enable speedstep for sonoma processors. + - LP: #132271 + * Add dm-loop + * Add dm-loop BOM + + [Kyle McMartin] + + * SAUCE: fix orinoco_cs oops + + [Mario Limonciello] + + * SAUCE: Enable Reset and SCO workaround on Dell 410 BT adapter + + [Matthew Garrett] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [Phillip Lougher] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [Stefan Bader] + + * SAUCE: Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: Always use SCO protocol (disable eSCO support) Bug: #39414 + * SAUCE: mmc: Increase power_up deleay to fix TI readers OriginalAuthor: + Pascal Terjan Bug: #137686 + * SAUCE: Add blacklist support to fix Belkin bluetooth dongle. Bug: + #140511 + * SAUCE: Lower warning level of pci resource allocation messages. Bug: + 159241 + * SAUCE: Lower message level for PCI memory and I/O allocation. + - LP: #159241 + * Modify log generation to catch bug numbers when adding with git-am. + + [Tim Gardner] + + * Added the debian directory. Ignore: yes + * Add support for UBUNTUINCLUDE Ignore: yes + * LUM headers go in /usr/src Ignore: yes + * First pass at 2.6.25 configs Ignore: yes + * i386 -generic builds. Ignore: yes + * SAUCE: Increase CONFIG_IDE_MAX_HWIFS to 8 (from 4) + * SAUCE: Add extra headers to linux-libc-dev OriginalAuthor: Soren Hansen + OriginalLocation: + https://lists.ubuntu.com/archives/kernel-team/2007-November/001891.html + * Set CONFIG_DEVKMEM=n Ignore: yes + * Enabled ALSA and CGROUPS for i386 Ignore: yes + * Enabled amd64 configs. Ignore: yes + * CONFIG_STANDALONE=n Ignore: yes + * CONFIG_BLK_DEV_4DRIVES=n for i386 Ignore: yes + * CONFIG: CONFIG_DEFAULT_RELATIME=y for all flavours. Ignore: yes + * Set CONFIG_EDD_OFF=y Ignore: yes + * SAUCE: Blacklist Bluetooth Dell Wireless 370 for SCO MTU + OriginalAuthor: Mario Limonciello Bug: + #209715 + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: frame buffer regression - screen blank except for blinking + cursor after fbcon vtswitch OriginalAuthor: Matthew Garrett + Bug: #201591 + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + OriginalAuthor: Klaus S. Madsen + OriginalAuthor: Chuck Short + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: orinoco_cs.ko missing + * Set CONFIG_FB_VESA=m for i386/amd64 Ignore: yes + * Set CONFIG_PM_DISABLE_CONSOLE=y for all flavours Ignore: yes + * Thorough review of amd64 -generic config Ignore: yes + * Build PPA packages for Hardy until the Intrepid archive is opened. + * Deleted obsolete flavours Ignore: yes + * Don't build docs for PPA Ignore: yes + * Build all standard packages in PPA. Ignore: yes + * Remove duplicate USB ids + * SAUCE: DVB-USB UMT-010 driver oops on install Bug: #115284 + * Update configs after rebase to 2.6.26-rc1 Ignore: yes + * Update configs after rebase Ignore: yes + * Disable V4L until the build issues get ironed out. Ignore: yes + * Update configs after rebase. Ignore: yes + * Another device enable pass Ignore: yes + * Update configs after merge. Ignore: yes + * SAUCE: fn key doesn't work in hardy with macbook pro fourth generation + (4,1) + - LP: #207127 + * Enabled CONFIG_CIFS_DFS_UPCALL=y and CONFIG_CIFS_UPCALL=y + - LP: #236830 + + [Upstream Kernel Changes] + + * Revert "[WATCHDOG] hpwdt: Add CFLAGS to get driver working" + * mac80211: detect driver tx bugs + * hwmon: (lm85) Fix function RANGE_TO_REG() + * hwmon: (adt7473) Initialize max_duty_at_overheat before use + * hwmon: Update the sysfs interface documentation + * hwmon: (abituguru3) Identify Abit AW8D board as such + * hwmon: (w83791d) new maintainer + * hwmon: (abituguru3) update driver detection + * hwmon: (lm75) sensor reading bugfix + * ipv6: Remove options header when setsockopt's optlen is 0 + * ipv6: Drop packets for loopback address from outside of the box. + * sched: rt: dont stop the period timer when there are tasks wanting to + run + * sched: fix wait_for_completion_timeout() spurious failure under heavy + load + * x86: fix NULL pointer deref in __switch_to + * xen: Use wmb instead of rmb in xen_evtchn_do_upcall(). + * xen: mask unwanted pte bits in __supported_pte_mask + * xen: don't drop NX bit + * sched: refactor wait_for_completion_timeout() + * Ext4: Fix online resize block group descriptor corruption + * [IA64] SN2: security hole in sn2_ptc_proc_write + * alpha: fix module load failures on smp (bug #10926) + * alpha: link failure fix + * alpha: fix compile failures with gcc-4.3 (bug #10438) + * alpha: resurrect Cypress IDE quirk + * pppoe: warning fix + * sctp: Make sure N * sizeof(union sctp_addr) does not overflow. + * netns: Don't receive new packets in a dead network namespace. + * Add return value to reserve_bootmem_node() + * Slab: Fix memory leak in fallback_alloc() + * Fix performance regression on lmbench select benchmark + * ALSA: aw2 - Fix Oops at initialization + * ALSA: sb - Fix wrong assertions + * futexes: fix fault handling in futex_lock_pi + * IB/mthca: Clear ICM pages before handing to FW + * tty_driver: Update required method documentation + * removed unused var real_tty on n_tty_ioctl() + * Fix ZERO_PAGE breakage with vmware + * mm: fix race in COW logic + * NFS: Reduce the NFS mount code stack usage. + * NFS: Fix filehandle size comparisons in the mount code + * NFS: nfs_updatepage(): don't mark page as dirty if an error occurred + * alpha: fix compile error in arch/alpha/mm/init.c + * KVM: Fix race between timer migration and vcpu migration + * KVM: close timer injection race window in __vcpu_run + * KVM: MMU: Fix rmap_write_protect() hugepage iteration bug + * KVM: MMU: large page update_pte issue with non-PAE 32-bit guests + (resend) + * KVM: MMU: Fix oops on guest userspace access to guest pagetable + * KVM: ioapic: fix lost interrupt when changing a device's irq + * KVM: VMX: Fix host msr corruption with preemption enabled + * [GFS2] BUG: unable to handle kernel paging request at ffff81002690e000 + * xen: remove support for non-PAE 32-bit + * kgdb: documentation update - remove kgdboe + * kgdb: sparse fix + * [IA64] Fix boot failure on ia64/sn2 + * [IA64] Handle count==0 in sn2_ptc_proc_write() + * [IA64] Eliminate NULL test after alloc_bootmem in iosapic_alloc_rte() + * [GFS2] fix gfs2 block allocation (cleaned up) + * x86: Add structs and functions for paravirt clocksource + * x86: Make xen use the paravirt clocksource structs and functions + * KVM: Make kvm host use the paravirt clocksource structs + * x86: KVM guest: Use the paravirt clocksource structs and functions + * KVM: Remove now unused structs from kvm_para.h + * enable bus mastering on i915 at resume time + * Linux 2.6.26-rc8 + * # Ubuntu external driver commit. + * # Ubuntu commit template. + + -- Ben Collins Sat, 21 Jun 2008 09:05:15 -0400 + +linux (2.6.26-2.6) intrepid; urgency=low + + [Ben Collins] + + * Revert "SAUCE: Export symbols for aufs (in lum) (not needed) + * config: Enable DVB devices + * ubuntu/aufs: Make aufs a bool config, since it needs to be built-in + * config: Build aufs into the kernels + * build: Fix arguments passed to link-headers script + * config: Disable early printk + * d-i: Move isofs to storage-core and kill st (scsi tape) from list + * config: Enable non-promiscuous access to /dev/mem + * x86: Add option to disable decompression info messages + * config: Enable no-bz-chatter config options + * build: Re-add linux-source package + * d-i: Re-add socket-modules. Accidentally removed + - LP: #241295 + + [Colin Ian King] + + * Add dm-loop + + [Tim Gardner] + + * Revert "SAUCE: USB bluetooth device 0x0e5e:0x6622 floods errors to + syslog (merged upstream) + + -- Ben Collins Mon, 16 Jun 2008 10:56:01 -0400 + +linux (2.6.26-1.5) intrepid; urgency=low + + * d-i: Make virtio-ring optional (it's built-in on i386) + * Rebased on 2.6.26-rc6 + + [Ubuntu-2.6.26-1.4 Changes below] + + * build: linux-doc rules got broken when disabling html side. Fixed now. + + [Ubuntu-2.6.26-1.3 Changes below] + + * build: Remove install-source, obsolete and caused build failure + + [Ubuntu-2.6.26-1.2 Changes below] + + * Remove efi-modules from d-i module list (efivars is built-in). Caused a + build failure. + * Patch to arch/x86/xen/time.c to remove __divdi3 usage (build failure on + i386). + + [Ubuntu-2.6.26-1.1 Changes below] + + [Amit Kucheria] + + * SAUCE: make fc transport removal of target configurable + * SAUCE: Add AGP support for Radeon Mobility 9000 chipset + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + + [Ben Collins] + + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: irda: Default to dongle type 9 on IBM hardware + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: version: Implement version_signature proc file. + * build: Remove remnants of unused binary-custom infrastructure + * mmc_block: Fix bad allocation on 64-bit (zero len array) + * ubuntu: New modules, acer-acpi + * build: Remove -virtual, and rebuild configs + * ubuntu: Add drbd module + * ubuntu: Add iscsitarget module + * ubuntu: Add squashfs driver + * build/configs: The Great Config Consistency Check of 2008 + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Add dm-radi4-5 driver + * build: Add CONFIG_DEBUG_SECTION_MISMATCH=y to get old style warnings + from build + * squashfs: Fixes for VFS changes + * ubuntu/dm-raid4-5: Fixups for moved/renamed headers/functions in core + md + * ubuntu: Add ndiswrapper driver + * d-i: Update module listings + + [Chuck Short] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + * SAUCE: [USB]: add ASUS LCM to the blacklist + + [Colin Ian King] + + * SAUCE: Enable speedstep for sonoma processors. + * SAUCE: airprime.c supports more devices + + [Kyle McMartin] + + * SAUCE: fix orinoco_cs oops + + [Mario Limonciello] + + * SAUCE: Enable Reset and SCO workaround on Dell 410 BT adapter + + [Matthew Garrett] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [Phillip Lougher] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [Stefan Bader] + + * SAUCE: Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: Always use SCO protocol (disable eSCO support) Bug: #39414 + * SAUCE: mmc: Increase power_up deleay to fix TI readers + * SAUCE: Add blacklist support to fix Belkin bluetooth dongle. + * SAUCE: Lower warning level of pci resource allocation messages. + * SAUCE: Lower message level for PCI memory and I/O allocation. + - LP: #159241 + * Modify log generation to catch bug numbers when adding with git-am. + + [Tim Gardner] + + * SAUCE: hdaps module does not load on Thinkpad T61P + * SAUCE: Add extra headers to linux-libc-dev + * SAUCE: Export symbols for aufs (in lum). + * SAUCE: USB bluetooth device 0x0e5e:0x6622 floods errors to syslog + * SAUCE: Blacklist Bluetooth Dell Wireless 370 for SCO MTU + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: frame buffer regression - screen blank except for blinking + cursor after fbcon vtswitch + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: Modualrize vesafb + * SAUCE: DVB-USB UMT-010 driver oops on install + * SAUCE: fn key doesn't work in hardy with macbook pro fourth generation + (4,1) + - LP: #207127 + + -- Ben Collins Wed, 11 Jun 2008 05:28:35 -0400 --- linux-3.2.0.orig/debian.master/copyright +++ linux-3.2.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-3.2.0.orig/debian.master/control.stub.in +++ linux-3.2.0/debian.master/control.stub.in @@ -0,0 +1,93 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.8.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, dpkg (>= 1.16.0~ubuntu4), util-linux +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Build-Conflicts: findutils (= 4.4.1-1ubuntu1) +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-precise.git + +Package: SRCPKGNAME-source-PKGVER +Architecture: all +Section: devel +Priority: optional +Provides: SRCPKGNAME-source, SRCPKGNAME-source-3 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +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-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: SRCPKGNAME-doc-3 +Replaces: SRCPKGNAME-doc-3 +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. + +Package: SRCPKGNAME-tools-common +Architecture: all +Section: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: SRCPKGNAME-tools (<= 2.6.32-16.25) +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: linux-headers-PKGVER-ABINUM +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Provides: SRCPKGNAME-headers, SRCPKGNAME-headers-3 +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-libc-dev +Architecture: i386 amd64 powerpc ppc64 armel armhf +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), SRCPKGNAME-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), SRCPKGNAME-kernel-headers, libdrm-dev +Provides: SRCPKGNAME-kernel-headers +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. + +Package: linux-tools-PKGVER-ABINUM +Architecture: i386 amd64 powerpc ppc64 armel armhf +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=. + --- linux-3.2.0.orig/debian.master/changelog +++ linux-3.2.0/debian.master/changelog @@ -0,0 +1,15985 @@ +linux (3.2.0-54.82) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1223490 + + [ Upstream Kernel Changes ] + + * Revert "zram: use zram->lock to protect zram_free_page() in swap free + notify path" + - LP: #1215513 + * x86 thermal: Delete power-limit-notification console messages + - LP: #1215748 + * x86 thermal: Disable power limit notification interrupt by default + - LP: #1215748 + * ARM: 7810/1: perf: Fix array out of bounds access in + armpmu_map_hw_event() + - LP: #1216442 + - CVE-2013-4254 + * ARM: 7809/1: perf: fix event validation for software group leaders + - LP: #1216442 + - CVE-2013-4254 + * xfs: fix _xfs_buf_find oops on blocks beyond the filesystem end + - LP: #1151527 + - CVE-2013-1819 + * cifs: don't instantiate new dentries in readdir for inodes that need to + be revalidated immediately + - LP: #1222442 + + -- Steve Conklin Tue, 10 Sep 2013 12:54:53 -0500 + +linux (3.2.0-53.81) precise; urgency=low + + [ Tim Gardner ] + + * SAUCE: net: ifb: Added include file + + -- Brad Figg Thu, 22 Aug 2013 12:21:41 -0700 + +linux (3.2.0-53.80) precise; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1215173 + + [ Andy Whitcroft ] + + * [Packaging] supply perf with appropriate prefix to ensure use of local + config + - LP: #1206200 + - CVE-2013-1060 + + [ Joseph Salisbury ] + + * SAUCE: (no-up) intel_ips: blacklist ASUSTek G60JX laptops + - LP: #1210848 + + [ Tim Gardner ] + + * [Config] Include rbd and kvm in the virtual inclusion list + - LP: #1206961 + + [ Upstream Kernel Changes ] + + * qla2xxx: Properly set the tagging for commands. + - LP: #1189928 + * r8169: fix offloaded tx checksum for small packets. + - LP: #1214984 + * printk: Fix rq->lock vs logbuf_lock unlock lock inversion + - LP: #1214984 + * zfcp: fix adapter (re)open recovery while link to SAN is down + - LP: #1214984 + * zfcp: block queue limits with data router + - LP: #1214984 + * zfcp: status read buffers on first adapter open with link down + - LP: #1214984 + * ahci: Add AMD CZ SATA device ID + - LP: #1214984 + * i2c-piix4: Add AMD CZ SMBus device ID + - LP: #1214984 + * zram: avoid invalid memory access in zram_exit() + - LP: #1214984 + * zram: use zram->lock to protect zram_free_page() in swap free notify + path + - LP: #1214984 + * zram: destroy all devices on error recovery path in zram_init() + - LP: #1214984 + * zram: avoid access beyond the zram device + - LP: #1214984 + * zram: protect sysfs handler from invalid memory access + - LP: #1214984 + * ahci: remove pmp link online check in FBS EH + - LP: #1214984 + * usb: gadget: f_mass_storage: add missing memory barrier for + thread_wakeup_needed + - LP: #1214984 + * libata: skip SRST for all SIMG [34]7x port-multipliers + - LP: #1214984 + * b43: ensue that BCMA is "y" when B43 is "y" + - LP: #1214984 + * ath9k_hw: Assign default xlna config for AR9485 + - LP: #1214984 + * ath9k: fill channel mode in caldata + - LP: #1214984 + * ath9k: Fix noisefloor calibration + - LP: #1214984 + * ath9k: Do not assign noise for NULL caldata + - LP: #1214984 + * Bluetooth: Fix crash in l2cap_build_cmd() with small MTU + - LP: #1214984 + * ASoC: wm8962: Remove remaining direct register cache accesses + - LP: #1214984 + * rtlwifi: rtl8192cu: Add new USB ID for TP-Link TL-WN8200ND + - LP: #1214984 + * ALSA: hda - Cache the MUX selection for generic HDMI + - LP: #1214984 + * xhci: check for failed dma pool allocation + - LP: #1214984 + * drivers: hv: switch to use mb() instead of smp_mb() + - LP: #1214984 + * media: dmxdev: remove dvb_ringbuffer_flush() on writer side + - LP: #1214984 + * rtlwifi: rtl8192cu: Fix duplicate if test + - LP: #1214984 + * hw_breakpoint: Use cpu_possible_mask in {reserve,release}_bp_slot() + - LP: #1214984 + * ata_piix: IDE-mode SATA patch for Intel Coleto Creek DeviceIDs + - LP: #1214984 + * ahci: AHCI-mode SATA patch for Intel Coleto Creek DeviceIDs + - LP: #1214984 + * iommu/amd: Only unmap large pages from the first pte + - LP: #1214984 + * ARM: 7765/1: perf: Record the user-mode PC in the call chain. + - LP: #1214984 + * mpt2sas: Fix for issue Missing delay not getting set during system + bootup + - LP: #1214984 + * mpt2sas: Fix for device scan following host reset could get stuck in a + infinite loop + - LP: #1214984 + * mpt2sas: fix firmware failure with wrong task attribute + - LP: #1214984 + * USB: option,qcserial: move Novatel Gobi1K IDs to qcserial + - LP: #1214984 + * futex: Take hugepages into account when generating futex_key + - LP: #1214984 + * vgacon.c: add cond reschedule points in vgacon_do_font_op + - LP: #1214984 + * perf: Disable monitoring on setuid processes for regular users + - LP: #1214984 + * sd: fix array cache flushing bug causing performance problems + - LP: #1214984 + * sd: Fix parsing of 'temporary ' cache mode prefix + - LP: #1214984 + * cgroup: fix RCU accesses to task->cgroups + - LP: #1214984 + * Handle big endianness in NTLM (ntlmv2) authentication + - LP: #1214984 + * dlci: acquire rtnl_lock before calling __dev_get_by_name() + - LP: #1214984 + * dlci: validate the net device in dlci_del() + - LP: #1214984 + * genirq: Fix can_request_irq() for IRQs without an action + - LP: #1214984 + * writeback: Fix periodic writeback after fs mount + - LP: #1214984 + * timer: Fix jiffies wrap behavior of round_jiffies_common() + - LP: #1214984 + * xen/time: remove blocked time accounting from xen "clockchip" + - LP: #1214984 + * UBIFS: prepare to fix a horrid bug + - LP: #1214984 + * UBIFS: fix a horrid bug + - LP: #1214984 + * powerpc/smp: Section mismatch from smp_release_cpus to __initdata + spinning_secondaries + - LP: #1214984 + * ext3,ext4: don't mess with dir_file->f_pos in htree_dirblock_to_tree() + - LP: #1214984 + * jbd2: fix theoretical race in jbd2__journal_restart + - LP: #1214984 + * nfsd4: fix decoding of compounds across page boundaries + - LP: #1214984 + * tracing: Fix irqs-off tag display in syscall tracing + - LP: #1214984 + * libceph: Fix NULL pointer dereference in auth client code + - LP: #1214984 + - CVE-2013-1059 + * drivers/dma/pl330.c: fix locking in pl330_free_chan_resources() + - LP: #1214984 + * ocfs2: xattr: fix inlined xattr reflink + - LP: #1214984 + * block: do not pass disk names as format strings + - LP: #1214984 + - CVE-2013-2851 + * crypto: sanitize argument for format string + - LP: #1214984 + * drivers/rtc/rtc-rv3029c2.c: fix disabling AIE irq + - LP: #1214984 + * nbd: correct disconnect behavior + - LP: #1214984 + * hpfs: better test for errors + - LP: #1214984 + * megaraid_sas: fix memory leak if SGL has zero length entries + - LP: #1214984 + * iscsi-target: Fix tfc_tpg_nacl_auth_cit configfs length overflow + - LP: #1214984 + * perf: Clone child context from parent context pmu + - LP: #1214984 + * perf: Remove WARN_ON_ONCE() check in __perf_event_enable() for valid + scenario + - LP: #1214984 + * perf: Fix perf_lock_task_context() vs RCU + - LP: #1214984 + * ceph: fix statvfs fr_size + - LP: #1214984 + * perf: Fix perf mmap bugs + - LP: #1214984 + * perf: Fix mmap() accounting hole + - LP: #1214984 + * pch_uart: fix a deadlock when pch_uart as console + - LP: #1214984 + * drivers/cdrom/cdrom.c: use kzalloc() for failing hardware + - LP: #1214984 + * ext4: fix overflow when counting used blocks on 32-bit architectures + - LP: #1214984 + * ext4: fix data offset overflow in ext4_xattr_fiemap() on 32-bit archs + - LP: #1214984 + * MAINTAINERS: Greg's suse email address is dead + - LP: #1214984 + * MAINTAINERS: add stable_kernel_rules.txt to stable maintainer + information + - LP: #1214984 + * Linux 3.2.49 + - LP: #1214984 + * bridge: fix switched interval for MLD Query types + - LP: #1214984 + * ipv6: don't call addrconf_dst_alloc again when enable lo + - LP: #1214984 + * macvtap: fix recovery from gup errors + - LP: #1214984 + * ipv6: ip6_sk_dst_check() must not assume ipv6 dst + - LP: #1214984 + * af_key: fix info leaks in notify messages + - LP: #1214984 + * sh_eth: fix unhandled RFE interrupt + - LP: #1214984 + * neighbour: fix a race in neigh_destroy() + - LP: #1214984 + * x25: Fix broken locking in ioctl error paths. + - LP: #1214984 + * net: Swap ver and type in pppoe_hdr + - LP: #1214984 + * ipv6,mcast: always hold idev->lock before mca_lock + - LP: #1214984 + * l2tp: add missing .owner to struct pppox_proto + - LP: #1214984 + * ipv6: call udp_push_pending_frames when uncorking a socket with AF_INET + pending data + - LP: #1214984 + * ipv6: ip6_append_data_mtu did not care about pmtudisc and frag_size + - LP: #1214984 + * sunvnet: vnet_port_remove must call unregister_netdev + - LP: #1214984 + * ifb: fix rcu_sched self-detected stalls + - LP: #1214984 + * macvtap: correctly linearize skb when zerocopy is used + - LP: #1214984 + * 9p: fix off by one causing access violations and memory corruption + - LP: #1214984 + * dummy: fix oops when loading the dummy failed + - LP: #1214984 + * ifb: fix oops when loading the ifb failed + - LP: #1214984 + * atl1e: fix dma mapping warnings + - LP: #1214984 + * atl1e: unmap partially mapped skb on dma error and free skb + - LP: #1214984 + * vlan: fix a race in egress prio management + - LP: #1214984 + * sparc32: vm_area_struct access for old Sun SPARCs. + - LP: #1214984 + * sparc64 address-congruence property + - LP: #1214984 + * sparc: tsb must be flushed before tlb + - LP: #1214984 + * virtio: support unlocked queue poll + - LP: #1214984 + * virtio_net: fix race in RX VQ processing + - LP: #1214984 + * Fix incorrect memset in bnx2fc_parse_fcp_rsp + - LP: #1214984 + * tracing: Use current_uid() for critical time tracing + - LP: #1214984 + * xen/io/ring.h: new macro to detect whether there are too many requests + on the ring + - LP: #1214984 + * xen/blkback: Check for insane amounts of request on the ring (v6). + - LP: #1214984 + * ASoC: sglt5000: Fix the default value of CHIP_SSS_CTRL + - LP: #1214984 + * ASoC: sglt5000: Fix SGTL5000_PLL_FRAC_DIV_MASK + - LP: #1214984 + * lockd: protect nlm_blocked access in nlmsvc_retry_blocked + - LP: #1214984 + * ext4: don't allow ext4_free_blocks() to fail due to ENOMEM + - LP: #1214984 + * ACPI / memhotplug: Fix a stale pointer in error path + - LP: #1214984 + * usb: dwc3: gadget: don't prevent gadget from being probed if we fail + - LP: #1214984 + * usb: dwc3: fix wrong bit mask in dwc3_event_type + - LP: #1214984 + * ALSA: asihpi: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ALSA: atiixp: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ALSA: 6fire: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ASoC: max98088 - fix element type of the register cache. + - LP: #1214984 + * ALSA: ua101: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ALSA: usx2y: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ALSA: pxa2xx: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ASoC: s6000: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * staging: line6: Fix unlocked snd_pcm_stop() call + - LP: #1214984 + * ALSA: hda - Add new GPU codec ID to snd-hda + - LP: #1214984 + * ALSA: hda - Add new GPU codec ID to snd-hda + - LP: #1214984 + * ata: Fix DVD not dectected at some platform with Wellsburg PCH + - LP: #1214984 + * Btrfs: fix lock leak when resuming snapshot deletion + - LP: #1214984 + * Btrfs: re-add root to dead root list if we stop dropping it + - LP: #1214984 + * ALSA: usb-audio: 6fire: return correct XRUN indication + - LP: #1214984 + * usb: serial: cp210x: Add USB ID for Netgear Switches embedded serial + adapter + - LP: #1214984 + * USB: storage: Add MicroVault Flash Drive to unusual_devs + - LP: #1214984 + * USB: misc: Add Manhattan Hi-Speed USB DVI Converter to sisusbvga + - LP: #1214984 + * USB: option: append Petatel NP10T device to GSM modems list + - LP: #1214984 + * usb: cp210x support SEL C662 Vendor/Device + - LP: #1214984 + * USB: cp210x: add MMB and PI ZigBee USB Device Support + - LP: #1214984 + * drm/radeon: Another card with wrong primary dac adj + - LP: #1214984 + * drm/radeon: improve dac adjust heuristics for legacy pdac + - LP: #1214984 + * drm/radeon: fix combios tables on older cards + - LP: #1214984 + * isci: Fix a race condition in the SSP task management path + - LP: #1214984 + * sd: fix crash when UA received on DIF enabled device + - LP: #1214984 + * nfsd: nfsd_open: when dentry_open returns an error do not propagate as + struct file + - LP: #1214984 + * USB: option: add D-Link DWM-152/C1 and DWM-156/C1 + - LP: #1214984 + * staging: comedi: COMEDI_CANCEL ioctl should wake up read/write + - LP: #1214984 + * staging: comedi: fix a race between do_cmd_ioctl() and read/write + - LP: #1214984 + * usb: option: add TP-LINK MA260 + - LP: #1214984 + * powerpc/modules: Module CRC relocation fix causes perf issues + - LP: #1214984 + * USB: ti_usb_3410_5052: fix dynamic-id matching + - LP: #1214984 + * usb: serial: option: Add ONYX 3G device support + - LP: #1214984 + * xhci: Avoid NULL pointer deref when host dies. + - LP: #1214984 + * usb: host: xhci: Enable XHCI_SPURIOUS_SUCCESS for all controllers with + xhci 1.0 + - LP: #1214984 + * xhci: fix null pointer dereference on ring_doorbell_for_active_rings + - LP: #1214984 + * usb: serial: option: blacklist ONDA MT689DC QMI interface + - LP: #1214984 + * usb: serial: option: add Olivetti Olicard 200 + - LP: #1214984 + * usb: serial: option.c: remove ONDA MT825UP product ID fromdriver + - LP: #1214984 + * USB: mos7840: fix memory leak in open + - LP: #1214984 + * usb: Clear both buffers when clearing a control transfer TT buffer. + - LP: #1214984 + * Linux 3.2.50 + - LP: #1214984 + + -- Brad Figg Wed, 21 Aug 2013 15:15:31 -0700 + +linux (3.2.0-52.78) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1205381 + + [ Upstream Kernel Changes ] + + * Input: elantech - fix for newer hardware versions (v7) + - LP: #1166442 + * fanotify: info leak in copy_event_to_user() + - LP: #1188356 + - CVE-2013-2148 + + -- Steve Conklin Fri, 26 Jul 2013 10:32:54 -0500 + +linux (3.2.0-51.77) precise; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1199470 + + [ Upstream Kernel Changes ] + + * Bluetooth: Fix invalid length check in l2cap_information_rsp() + - LP: #1204548 + + -- Brad Figg Wed, 24 Jul 2013 12:36:41 -0700 + +linux (3.2.0-50.76) precise; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1199470 + + [ Steve Conklin ] + + * SAUCE: update configs for new atheros option + + [ Upstream Kernel Changes ] + + * Revert "serial: 8250_pci: add support for another kind of NetMos + Technology PCI 9835 Multi-I/O Controller" + - LP: #1190967 + * ata_piix: add PCI IDs for Intel BayTail + - LP: #1193029 + * libata: make ata_exec_internal_sg honor DMADIR + - LP: #1193029 + * cfg80211: check wdev->netdev in connection work + - LP: #1193029 + * cifs: fix potential buffer overrun when composing a new options string + - LP: #1193029 + * mac80211: close AP_VLAN interfaces before unregistering all + - LP: #1193029 + * drm/radeon: fix card_posted check for newer asics + - LP: #1193029 + * xfs: kill suid/sgid through the truncate path. + - LP: #1193029 + * tg3: Add New 5719 Read DMA workaround + - LP: #1193029 + * tg3: Add read dma workaround for 5720 + - LP: #1193029 + * ALSA: usb-audio: fix possible hang and overflow in + parse_uac2_sample_rate_range() + - LP: #1193029 + * ALSA: usb-audio: avoid integer overflow in create_fixed_stream_quirk() + - LP: #1193029 + * xen-netback: remove skb in xen_netbk_alloc_page + - LP: #1193029 + * netback: remove redundant assignment + - LP: #1193029 + * xen-netback: fix sparse warning + - LP: #1193029 + * xen-netback: coalesce slots in TX path and fix regressions + - LP: #1193029 + * xen-netback: don't disconnect frontend when seeing oversize packet + - LP: #1193029 + * xen-netback: remove redundent parameter in netbk_count_requests + - LP: #1193029 + * xen-netback: avoid allocating variable size array on stack + - LP: #1193029 + * xen-netback: better names for thresholds + - LP: #1193029 + * net: Add net_ratelimited_function and net__ratelimited macros + - LP: #1193029 + * xen-netfront: reduce gso_max_size to account for max TCP header + - LP: #1193029 + * jfs: fix a couple races + - LP: #1193029 + * xen/events: Handle VIRQ_TIMER before any other hardirq in event loop. + - LP: #1193029 + * b43legacy: Fix crash on unload when firmware not available + - LP: #1193029 + * ext4: lock i_mutex when truncating orphan inodes + - LP: #1193029 + * thinkpad-acpi: recognize latest V-Series using DMI_BIOS_VENDOR + - LP: #1193029 + * ftrace: Move ftrace_filter_lseek out of CONFIG_DYNAMIC_FTRACE section + - LP: #1193029 + * USB: serial: ftdi_sio: Handle the old_termios == 0 case e.g. + uart_resume_port() + - LP: #1193029 + * USB: ftdi_sio: Quiet sparse noise about using plain integer was NULL + pointer + - LP: #1193029 + * drm/gma500: Increase max resolution for mode setting + - LP: #1193029 + * xhci-mem: init list heads at the beginning of init + - LP: #1193029 + * xhci: fix list access before init + - LP: #1193029 + * xhci - correct comp_mode_recovery_timer on return from hibernate + - LP: #1193029 + * usb: dwc3: gadget: free trb pool only from epnum 2 + - LP: #1193029 + * USB: revert periodic scheduling bugfix + - LP: #1193029 + * USB: serial: fix Treo/Kyocera interrrupt-in urb context + - LP: #1193029 + * USB: visor: fix initialisation of Treo/Kyocera devices + - LP: #1193029 + * USB: mos7720: fix DMA to stack + - LP: #1193029 + * USB: ark3116: fix control-message timeout + - LP: #1193029 + * USB: iuu_phoenix: fix bulk-message timeout + - LP: #1193029 + * USB: mos7720: fix message timeouts + - LP: #1193029 + * ACPI video: ignore BIOS backlight value for HP dm4 + - LP: #1193029 + * ACPI video: ignore BIOS initial backlight value for HP 1000 + - LP: #1193029 + * ACPI / video: ignore BIOS initial backlight value for HP m4 + - LP: #1193029 + * ACPI / video: ignore BIOS initial backlight value for HP Pavilion g6 + - LP: #1193029 + * drm: fix a use-after-free when GPU acceleration disabled + - LP: #1193029 + * drm/i915: no lvds quirk for hp t5740 + - LP: #1193029 + * radeon: Fix system hang issue when using KMS with older cards + - LP: #1193029 + * USB: Serial: cypress_M8: Enable FRWD Dongle hidcom device + - LP: #1193029 + * USB: serial: Add Option GTM681W to qcserial device table. + - LP: #1193029 + * ALSA: usb-audio - Apply Logitech QuickCam Pro 9000 quirk only to audio + iface + - LP: #1193029 + * drm/i915/sdvo: Use &intel_sdvo->ddc instead of intel_sdvo->i2c for DDC. + - LP: #1193029 + * USB: keyspan: fix bogus array index + - LP: #1193029 + * USB: mos7720: fix hardware flow control + - LP: #1193029 + * ALSA: usb-audio - Fix invalid volume resolution on Logitech HD webcam + c270 + - LP: #1193029 + * ARM: 7742/1: topology: export cpu_topology + - LP: #1193029 + * ARM: 7743/1: compressed/head.S: work around new binutils warning + - LP: #1193029 + * USB: whiteheat: fix broken port configuration + - LP: #1193029 + * USB: option: blacklist network interface on Huawei E1820 + - LP: #1193029 + * hwmon: (adm1021) Strengthen chip detection for ADM1021, LM84 and + MAX1617 + - LP: #1193029 + * drm/gma500/psb: Unpin framebuffer on crtc disable + - LP: #1193029 + * drm/gma500/cdv: Unpin framebuffer on crtc disable + - LP: #1193029 + * drm/i915: prefer VBT modes for SVDO-LVDS over EDID + - LP: #1193029 + * Bluetooth: Fix missing length checks for L2CAP signalling PDUs + - LP: #1193029 + * ath9k: Disable PowerSave by default + - LP: #1193029 + * ath9k: Use minstrel rate control by default + - LP: #1193029 + * b43: stop format string leaking into error msgs + - LP: #1193029 + - CVE-2013-2852 + * CPU hotplug: provide a generic helper to disable/enable CPU hotplug + - LP: #1193029 + * reboot: rigrate shutdown/reboot to boot cpu + - LP: #1193029 + * audit: wait_for_auditd() should use TASK_UNINTERRUPTIBLE + - LP: #1193029 + * cciss: fix broken mutex usage in ioctl + - LP: #1193029 + * drivers/rtc/rtc-twl.c: fix missing device_init_wakeup() when booted + with device tree + - LP: #1193029 + * swap: avoid read_swap_cache_async() race to deadlock while waiting on + discard I/O completion + - LP: #1193029 + * mm: migration: add migrate_entry_wait_huge() + - LP: #1193029 + * USB: spcp8x5: fix device initialisation at open + - LP: #1193029 + * USB: pl2303: fix device initialisation at open + - LP: #1193029 + * x86: Fix typo in kexec register clearing + - LP: #1193029 + * md/raid1: consider WRITE as successful only if at least one non-Faulty + and non-rebuilding drive completed it. + - LP: #1193029 + * tg3: Wait for boot code to finish after power on + - LP: #1193029 + * powerpc: Fix emulation of illegal instructions on PowerNV platform + - LP: #1193029 + * Linux 3.2.47 + - LP: #1193029 + * tilepro: work around module link error with gcc 4.7 + - LP: #119744 + * ALSA: usb-audio: work around Android accessory firmware bug + - LP: #119744 + * ALSA: usb-audio: Fix invalid volume resolution for Logitech HD Webcam + c310 + - LP: #119744 + * ARM: 7755/1: handle user space mapped pages in flush_kernel_dcache_page + - LP: #119744 + * ARM: 7772/1: Fix missing flush_kernel_dcache_page() for noMMU + - LP: #119744 + * KVM: x86: remove vcpu's CPL check in host-invoked XCR set + - LP: #119744 + * x86: fix build error and kconfig for ia32_emulation and binfmt + - LP: #119744 + * USB: serial: ti_usb_3410_5052: new device id for Abbot strip port cable + - LP: #119744 + * Modify UEFI anti-bricking code + - LP: #119744 + * x86/efi: Fix dummy variable buffer allocation + - LP: #119744 + * virtio-blk: Call revalidate_disk() upon online disk resize + - LP: #119744 + * tcp: fix tcp_md5_hash_skb_data() + - LP: #119744 + * gianfar: add missing iounmap() on error in gianfar_ptp_probe() + - LP: #119744 + * ipv6: fix possible crashes in ip6_cork_release() + - LP: #119744 + * netlabel: improve domain mapping validation + - LP: #119744 + * r8169: fix 8168evl frame padding. + - LP: #119744 + * tcp: xps: fix reordering issues + - LP: #119744 + * ip_tunnel: fix kernel panic with icmp_dest_unreach + - LP: #119744 + * net: Block MSG_CMSG_COMPAT in send(m)msg and recv(m)msg + - LP: #119744 + * net: force a reload of first item in hlist_nulls_for_each_entry_rcu + - LP: #119744 + * ipv6: assign rt6_info to inet6_ifaddr in init_loopback + - LP: #119744 + * net: sctp: fix NULL pointer dereference in socket destruction + - LP: #119744 + * packet: packet_getname_spkt: make sure string is always 0-terminated + - LP: #119744 + * l2tp: Fix PPP header erasure and memory leak + - LP: #119744 + * l2tp: Fix sendmsg() return value + - LP: #119744 + * Linux 3.2.48 + - LP: #119744 + + -- Steve Conklin Thu, 20 Jun 2013 11:39:50 -0500 + +linux (3.2.0-49.75) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1192253 + + [ Dave Chiluk ] + + * SAUCE: ncpfs: fix rmdir returns Device or resource busy + - LP: #1035226 + + [ Stefan Bader ] + + * (d-i) Add dm-snapshot to md-modules + - LP: #1191726 + + -- Steve Conklin Tue, 18 Jun 2013 12:12:44 -0500 + +linux (3.2.0-48.74) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1188206 + + [ Upstream Kernel Changes ] + + * iwlwifi: dvm: fix zero LQ CMD sending avoidance + - LP: #1186932 + + -- Steve Conklin Thu, 06 Jun 2013 09:22:00 -0500 + +linux (3.2.0-47.72) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1187066 + + [ Upstream Kernel Changes ] + + * Revert "drm/i915: Fix detection of base of stolen memory" + - LP: #1186572 + * mmc: at91/avr32/atmel-mci: fix DMA-channel leak on module unload + - LP: #1186572 + * mmc: core: Fix bit width test failing on old eMMC cards + - LP: #1186572 + * mfd: adp5520: Restore mode bits on resume + - LP: #1186572 + * mmc: atmel-mci: pio hang on block errors + - LP: #1186572 + * x86: Eliminate irq_mis_count counted in arch_irq_stat + - LP: #1186572 + * ASoC: wm8994: missing break in wm8994_aif3_hw_params() + - LP: #1186572 + * ath9k: fix key allocation error handling for powersave keys + - LP: #1186572 + * nfsd4: don't allow owner override on 4.1 CLAIM_FH opens + - LP: #1186572 + * net/eth/ibmveth: Fixup retrieval of MAC address + - LP: #1186572 + * ext4: limit group search loop for non-extent files + - LP: #1186572 + * xen/vcpu/pvhvm: Fix vcpu hotplugging hanging. + - LP: #1186572 + * autofs - remove autofs dentry mount check + - LP: #1186572 + * ALSA: HDA: Fix Oops caused by dereference NULL pointer + - LP: #1186572 + * iscsi-target: Fix processing of OOO commands + - LP: #1186572 + * ACPICA: Fix possible buffer overflow during a field unit read operation + - LP: #1186572 + * B43: Handle DMA RX descriptor underrun + - LP: #1186572 + * mwifiex: clear is_suspended flag when interrupt is received early + - LP: #1186572 + * mwifiex: fix memory leak issue when driver unload + - LP: #1186572 + * mwifiex: fix setting of multicast filter + - LP: #1186572 + * cifs: only set ops for inodes in I_NEW state + - LP: #1186572 + * hp_accel: Ignore the error from lis3lv02d_poweron() at resume + - LP: #1186572 + * KVM: VMX: fix halt emulation while emulating invalid guest sate + - LP: #1186572 + * dm snapshot: fix error return code in snapshot_ctr + - LP: #1186572 + * dm bufio: avoid a possible __vmalloc deadlock + - LP: #1186572 + * tick: Cleanup NOHZ per cpu data on cpu down + - LP: #1186572 + * ACPI / EC: Restart transaction even when the IBF flag set + - LP: #1186572 + * drm/radeon: check incoming cliprects pointer + - LP: #1186572 + * staging: vt6656: use free_netdev instead of kfree + - LP: #1186572 + * hwmon: fix error return code in abituguru_probe() + - LP: #1186572 + * Kirkwood: Enable PCIe port 1 on QNAP TS-11x/TS-21x + - LP: #1186572 + * avr32: fix relocation check for signed 18-bit offset + - LP: #1186572 + * powerpc/pseries: Fix partition migration hang in stop_topology_update + - LP: #1186572 + * powerpc: Bring all threads online prior to migration/hibernation + - LP: #1186572 + * timer: Don't reinitialize the cpu base lock during CPU_UP_PREPARE + - LP: #1186572 + * tg3: Skip powering down function 0 on certain serdes devices + - LP: #1186572 + * USB: xHCI: override bogus bulk wMaxPacketSize values + - LP: #1186572 + * USB: UHCI: fix for suspend of virtual HP controller + - LP: #1186572 + * tracing: Fix leaks of filter preds + - LP: #1186572 + * usermodehelper: check subprocess_info->path != NULL + - LP: #1186572 + * drivers/char/ipmi: memcpy, need additional 2 bytes to avoid memory + overflow + - LP: #1186572 + * ipmi: ipmi_devintf: compat_ioctl method fails to take ipmi_mutex + - LP: #1186572 + * USB: reset resume quirk needed by a hub + - LP: #1186572 + * usb: option: Add Telewell TW-LTE 4G + - LP: #1186572 + * USB: Blacklisted Cinterion's PLxx WWAN Interface + - LP: #1186572 + * USB: option: add device IDs for Dell 5804 (Novatel E371) WWAN card + - LP: #1186572 + * i2c: designware: always clear interrupts before enabling them + - LP: #1186572 + * USB: ftdi_sio: Add support for Newport CONEX motor drivers + - LP: #1186572 + * btrfs: don't stop searching after encountering the wrong item + - LP: #1186572 + * virtio_console: fix uapi header + - LP: #1186572 + * ARM: plat-orion: Fix num_resources and id for ge10 and ge11 + - LP: #1186572 + * USB: cxacru: potential underflow in cxacru_cm_get_array() + - LP: #1186572 + * TTY: Fix tty miss restart after we turn off flow-control + - LP: #1186572 + * sunrpc: clarify comments on rpc_make_runnable + - LP: #1186572 + * SUNRPC: Prevent an rpc_task wakeup race + - LP: #1186572 + * perf: net_dropmonitor: Fix trace parameter order + - LP: #1186572 + * perf: net_dropmonitor: Fix symbol-relative addresses + - LP: #1186572 + * ACPI / video: Add "Asus UL30A" to ACPI video detect blacklist + - LP: #1186572 + * fat: fix possible overflow for fat_clusters + - LP: #1186572 + * wait: fix false timeouts when using wait_event_timeout() + - LP: #1186572 + * mm: mmu_notifier: re-fix freed page still mapped in secondary MMU + - LP: #1186572 + * rapidio/tsi721: fix bug in MSI interrupt handling + - LP: #1186572 + * Fix for rapidio-tsi721-fix-bug-in-MSI-interrupt-handling + * mm compaction: fix of improper cache flush in migration code + - LP: #1186572 + * mm/THP: use pmd_populate() to update the pmd with pgtable_t pointer + - LP: #1186572 + * drivers/block/brd.c: fix brd_lookup_page() race + - LP: #1186572 + * nilfs2: fix issue of nilfs_set_page_dirty() for page at EOF boundary + - LP: #1186572 + * random: fix accounting race condition with lockless irq entropy_count + update + - LP: #1186572 + * ocfs2: goto out_unlock if ocfs2_get_clusters_nocache() failed in + ocfs2_fiemap() + - LP: #1186572 + * mm/pagewalk.c: walk_page_range should avoid VM_PFNMAP areas + - LP: #1186572 + * xhci: Don't warn on empty ring for suspended devices. + - LP: #1186572 + * sched/debug: Limit sd->*_idx range on sysctl + - LP: #1186572 + * sched/debug: Fix sd->*_idx limit range avoiding overflow + - LP: #1186572 + * ipvs: ip_vs_sip_fill_param() BUG: bad check of return value + - LP: #1186572 + * pch_dma: Use GFP_ATOMIC because called from interrupt context + - LP: #1186572 + * drbd: fix for deadlock when using automatic split-brain-recovery + - LP: #1186572 + * x86, efivars: firmware bug workarounds should be in platform code + - LP: #1186572 + * efi: Export efi_query_variable_store() for efivars.ko + - LP: #1186572 + * x86,efi: Check max_size only if it is non-zero. + - LP: #1186572 + * x86,efi: Implement efi_no_storage_paranoia parameter + - LP: #1186572 + * tcp: force a dst refcount when prequeue packet + - LP: #1186572 + * 3c509.c: call SET_NETDEV_DEV for all device types (ISA/ISAPnP/EISA) + - LP: #1186572 + * net_sched: act_ipt forward compat with xtables + - LP: #1186572 + * bridge: fix race with topology change timer + - LP: #1186572 + * packet: tpacket_v3: do not trigger bug() on wrong header status + - LP: #1186572 + * 3c59x: fix freeing nonexistent resource on driver unload + - LP: #1186572 + * 3c59x: fix PCI resource management + - LP: #1186572 + * if_cablemodem.h: Add parenthesis around ioctl macros + - LP: #1186572 + * macvlan: fix passthru mode race between dev removal and rx path + - LP: #1186572 + * ipv6: do not clear pinet6 field + - LP: #1186572 + * xfrm6: release dev before returning error + - LP: #1186572 + * drivers/rtc/rtc-pcf2123.c: fix error return code in pcf2123_probe() + - LP: #1186572 + * mantis: fix silly crash case + - LP: #1186572 + * staging: comedi: prevent auto-unconfig of manually configured devices + - LP: #1186572 + * um: Serve io_remap_pfn_range() + - LP: #1186572 + * Linux 3.2.46 + - LP: #1186572 + + -- Steve Conklin Mon, 03 Jun 2013 12:30:01 -0500 + +linux (3.2.0-46.71) precise; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1186317 + + [ Upstream Kernel Changes ] + + * xen: implement apic ipi interface + - LP: #1168350 + * crypto: algif - suppress sending source address information in recvmsg + - LP: #1172363 + - CVE-2013-3076 + * ax25: fix info leak via msg_name in ax25_recvmsg() + - LP: #1172366 + - CVE-2013-3223 + * Bluetooth: fix possible info leak in bt_sock_recvmsg() + - LP: #1172368 + - CVE-2013-3224 + * tipc: fix info leaks via msg_name in recv_msg/recv_stream + - LP: #1172403 + - CVE-2013-3235 + * rose: fix info leak via msg_name in rose_recvmsg() + - LP: #1172394 + - CVE-2013-3234 + * Bluetooth: RFCOMM - Fix missing msg_namelen update in + rfcomm_sock_recvmsg() + - LP: #1172369 + - CVE-2013-3225 + * atm: update msg_namelen in vcc_recvmsg() + - LP: #1172365 + - CVE-2013-3222 + * aio: fix possible invalid memory access when DEBUG is enabled + - LP: #1186055 + * tracing: Use stack of calling function for stack tracer + - LP: #1186055 + * tracing: Fix stack tracer with fentry use + - LP: #1186055 + * tracing: Remove most or all of stack tracer stack size from + stack_max_size + - LP: #1186055 + * tracing: Fix ftrace_dump() + - LP: #1186055 + * Wrong asm register contraints in the futex implementation + - LP: #1186055 + * Wrong asm register contraints in the kvm implementation + - LP: #1186055 + * cgroup: fix an off-by-one bug which may trigger BUG_ON() + - LP: #1186055 + * PCI / ACPI: Don't query OSC support with all possible controls + - LP: #1186055 + * drm/radeon: don't use get_engine_clock() on APUs + - LP: #1186055 + * drm/radeon: use frac fb div on RS780/RS880 + - LP: #1186055 + * Fix initialization of CMCI/CMCP interrupts + - LP: #1186055 + * sysfs: fix use after free in case of concurrent read/write and readdir + - LP: #1186055 + * usb/misc/appledisplay: Add 24" LED Cinema display + - LP: #1186055 + * nfsd: don't run get_file if nfs4_preprocess_stateid_op return error + - LP: #1186055 + * ext4/jbd2: don't wait (forever) for stale tid caused by wraparound + - LP: #1186055 + * jbd2: fix race between jbd2_journal_remove_checkpoint and + ->j_commit_callback + - LP: #1186055 + * drm/i915: Add no-lvds quirk for Fujitsu Esprimo Q900 + - LP: #1186055 + * USB: add ftdi_sio USB ID for GDM Boost V1.x + - LP: #1186055 + * hrtimer: Add expiry time overflow check in hrtimer_interrupt + - LP: #1186055 + * hrtimer: Fix ktime_add_ns() overflow on 32bit architectures + - LP: #1186055 + * nfsd4: don't close read-write opens too soon + - LP: #1186055 + * tracing: Fix off-by-one on allocating stat->pages + - LP: #1186055 + * USB: option: add a D-Link DWM-156 variant + - LP: #1186055 + * tracing: Reset ftrace_graph_filter_enabled if count is zero + - LP: #1186055 + * tracing: Check return value of tracing_init_dentry() + - LP: #1186055 + * ALSA: usb: Add quirk for 192KHz recording on E-Mu devices + - LP: #1186055 + * ALSA: usb-audio: disable autopm for MIDI devices + - LP: #1186055 + * drm/radeon/evergreen+: don't enable HPD interrupts on eDP/LVDS + - LP: #1186055 + * drm/radeon: cleanup properly if mmio mapping fails + - LP: #1186055 + * serial_core.c: add put_device() after device_find_child() + - LP: #1186055 + * PCI/PM: Fix fallback to PCI_D0 in pci_platform_power_transition() + - LP: #1186055 + * wireless: regulatory: fix channel disabling race condition + - LP: #1186055 + * xen/smp: Fix leakage of timer interrupt line for every CPU + online/offline. + - LP: #1186055 + * xen/smp/spinlock: Fix leakage of the spinlock interrupt line for every + CPU online/offline + - LP: #1186055 + * xen/time: Fix kasprintf splat when allocating timer%d IRQ line. + - LP: #1186055 + * ASoC: max98088: Fix logging of hardware revision. + - LP: #1186055 + * usbfs: Always allow ctrl requests with USB_RECIP_ENDPOINT on the ctrl + ep + - LP: #1186055 + * drm/i915: Workaround incoherence between fences and LLC across multiple + CPUs + - LP: #1186055 + * drm/i915: ensure single initialization and cleanup of backlight device + - LP: #1186055 + * iwlwifi: dvm: don't send zeroed LQ cmd + - LP: #1186055 + * drm/i915: Fall back to bit banging mode for DVO transmitter detection + - LP: #1186055 + * LOCKD: Ensure that nlmclnt_block resets block->b_status after a server + reboot + - LP: #1186055 + * ext4: fix Kconfig documentation for CONFIG_EXT4_DEBUG + - LP: #1186055 + * drm/radeon: fix hdmi mode enable on RS600/RS690/RS740 + - LP: #1186055 + * USB: ftdi_sio: correct ST Micro Connect Lite PIDs + - LP: #1186055 + * USB: serial: option: Added support Olivetti Olicard 145 + - LP: #1186055 + * usb-storage: CY7C68300A chips do not support Cypress ATACB + - LP: #1186055 + * i2c: xiic: must always write 16-bit words to TX_FIFO + - LP: #1186055 + * nfsd: Decode and send 64bit time values + - LP: #1186055 + * fbcon: when font is freed, clear also vc_font.data + - LP: #1186055 + * powerpc/spufs: Initialise inode->i_ino in spufs_new_inode() + - LP: #1186055 + * USB: ftdi_sio: enable two UART ports on ST Microconnect Lite + - LP: #1186055 + * ALSA: snd-usb: try harder to find USB_DT_CS_ENDPOINT + - LP: #1186055 + * gianfar: do not advertise any alarm capability. + - LP: #1186055 + * ALSA: usb-audio: Fix autopm error during probing + - LP: #1186055 + * clockevents: Set dummy handler on CPU_DEAD shutdown + - LP: #1186055 + * ixgbe: fix EICR write in ixgbe_msix_other + - LP: #1186055 + * powerpc: Add isync to copy_and_flush + - LP: #1186055 + * s390/memory hotplug: prevent offline of active memory increments + - LP: #1186055 + * mwifiex: Use pci_release_region() instead of a pci_release_regions() + - LP: #1186055 + * mwifiex: Call pci_release_region after calling pci_disable_device + - LP: #1186055 + * ARM: u300: fix ages old copy/paste bug + - LP: #1186055 + * fs/fscache/stats.c: fix memory leak + - LP: #1186055 + * drivers/rtc/rtc-cmos.c: don't disable hpet emulation on suspend + - LP: #1186055 + * md: bad block list should default to disabled. + - LP: #1186055 + * inotify: invalid mask should return a error number but not set it + - LP: #1186055 + * fs/dcache.c: add cond_resched() to shrink_dcache_parent() + - LP: #1186055 + * ipc: sysv shared memory limited to 8TiB + - LP: #1186055 + * drm/radeon: fix endian bugs in atom_allocate_fb_scratch() + - LP: #1186055 + * drm/radeon: fix possible segfault when parsing pm tables + - LP: #1186055 + * drm/radeon: fix handling of v6 power tables + - LP: #1186055 + * TTY: do not update atime/mtime on read/write + - LP: #1186055 + * TTY: fix atime/mtime regression + - LP: #1186055 + * tty: fix up atime/mtime mess, take three + - LP: #1186055 + * perf: Fix error return code + - LP: #1186055 + * perf/x86: Fix offcore_rsp valid mask for SNB/IVB + - LP: #1186055 + * s390: move dummy io_remap_pfn_range() to asm/pgtable.h + - LP: #1186055 + * vm: add vm_iomap_memory() helper function + - LP: #1186055 + * vm: convert snd_pcm_lib_mmap_iomem() to vm_iomap_memory() helper + - LP: #1186055 + * vm: convert fb_mmap to vm_iomap_memory() helper + - LP: #1186055 + * vm: convert HPET mmap to vm_iomap_memory() helper + - LP: #1186055 + * cbq: incorrect processing of high limits + - LP: #1186055 + * net IPv6 : Fix broken IPv6 routing table after loopback down-up + - LP: #1186055 + * net: count hw_addr syncs so that unsync works properly. + - LP: #1186055 + * atl1e: limit gso segment size to prevent generation of wrong ip length + fields + - LP: #1186055 + * bonding: fix bonding_masters race condition in bond unloading + - LP: #1186055 + * bonding: IFF_BONDING is not stripped on enslave failure + - LP: #1186055 + * af_unix: If we don't care about credentials coallesce all messages + - LP: #1186055 + * netfilter: don't reset nf_trace in nf_reset() + - LP: #1186055 + * rtnetlink: Call nlmsg_parse() with correct header length + - LP: #1186055 + * tcp: incoming connections might use wrong route under synflood + - LP: #1186055 + * esp4: fix error return code in esp_output() + - LP: #1186055 + * net: sctp: sctp_auth_key_put: use kzfree instead of kfree + - LP: #1186055 + * tcp: call tcp_replace_ts_recent() from tcp_ack() + - LP: #1186055 + * caif: Fix missing msg_namelen update in caif_seqpkt_recvmsg() + - LP: #1186055 + * irda: Fix missing msg_namelen update in irda_recvmsg_dgram() + - LP: #1186055 + * iucv: Fix missing msg_namelen update in iucv_sock_recvmsg() + - LP: #1186055 + * llc: Fix missing msg_namelen update in llc_ui_recvmsg() + - LP: #1186055 + * netrom: fix info leak via msg_name in nr_recvmsg() + - LP: #1186055 + * netrom: fix invalid use of sizeof in nr_recvmsg() + - LP: #1186055 + * net: drop dst before queueing fragments + - LP: #1186055 + * sparc64: Fix race in TLB batch processing. + - LP: #1186055 + * r8169: fix 8168evl frame padding. + - LP: #1186055 + * drm/i915: Fix detection of base of stolen memory + - LP: #1186055 + * ixgbe: add missing rtnl_lock in PM resume path + - LP: #1186055 + * kernel/audit_tree.c: tree will leak memory when failure occurs in + audit_trim_trees() + - LP: #1186055 + * powerpc: fix numa distance for form0 device tree + - LP: #1186055 + * r8169: fix vlan tag read ordering. + - LP: #1186055 + * x86/mm: account for PGDIR_SIZE alignment + - LP: #1186055 + * Linux 3.2.45 + - LP: #1186055 + + -- Steve Conklin Fri, 31 May 2013 11:02:41 -0500 + +linux (3.2.0-45.70) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1185451 + + [ Upstream Kernel Changes ] + + * iscsi-target: fix heap buffer overflow on error + - CVE-2013-2850 + + -- Steve Conklin Wed, 29 May 2013 09:12:15 -0500 + +linux (3.2.0-44.69) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1180612 + * merged back all changes which were in 42.67 + + -- Steve Conklin Wed, 15 May 2013 18:22:19 -0500 + +linux (3.2.0-43.68) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1180167 + * Based on 3.2.0-41.66 release + - entire delta from 41.66 to 42.67 removed + - CVE release is based on updates+fix + + [ Upstream Kernel Changes ] + + * perf: Treat attr.config as u64 in perf_swevent_init() + - LP: #1179943 + - CVE-2013-2094 + + -- Steve Conklin Tue, 14 May 2013 21:40:40 -0500 + +linux (3.2.0-42.67) precise; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1177080 + + [ joseph.salisbury@canonical.com ] + + * SAUCE: (no-up) x86: reboot: Make Dell Optiplex 390 use reboot=pci + - LP: #800660 + + [ Stefan Bader ] + + * [Config] Add libceph to virtual flavour modules list + - LP: #1164739 + + [ Tim Gardner ] + + * [packaging] Bump ABI for every new release + + [ Upstream Kernel Changes ] + + * Start new release + * tg3: fix length overflow in VPD firmware parsing + - LP: #1167065 + - CVE-2013-1929 + * Bluetooth: Add support for atheros 04ca:3004 device to ath3k + - LP: #1168852 + * clockevents: Don't allow dummy broadcast timers + - LP: #1174914 + * ASoC: imx-ssi: Fix occasional AC97 reset failure + - LP: #1174914 + * UBIFS: make space fixup work in the remount case + - LP: #1174914 + * Bluetooth: Add support for IMC Networks [13d3:3393] + - LP: #1174914 + * Bluetooth: Add support for GC-WB300D PCIe [04ca:3006] to ath3k. + - LP: #1174914 + * Bluetooth: Add support for Foxconn / Hon Hai [0489:e04e] + - LP: #1174914 + * Bluetooth: Add support for Foxconn / Hon Hai [0489:e056] + - LP: #1174914 + * Bluetooth device 04ca:3008 should use ath3k + - LP: #1174914 + * Bluetooth: Device 0cf3:3008 should map AR 3012 + - LP: #1174914 + * Bluetooth: Add support for Dell[QCA 0cf3:0036] + - LP: #1174914 + * tty: atmel_serial_probe(): index of atmel_ports[] fix + - LP: #1174914 + * HID: usbhid: quirk for Realtek Multi-card reader + - LP: #1174914 + * HID: usbhid: quirk for MSI GX680R led panel + - LP: #1174914 + * HID: usbhid: fix build problem + - LP: #1174914 + * Bluetooth: Add support for Dell[QCA 0cf3:817a] + - LP: #1174914 + * ath9k_hw: revert chainmask to user configuration after calibration + - LP: #1174914 + * rtlwifi: usb: add missing freeing of skbuff + - LP: #1174914 + * xen-blkback: fix dispatch_rw_block_io() error path + - LP: #1174914 + * net/irda: add missing error path release_sock call + - LP: #1174914 + * sysfs: fix race between readdir and lseek + - LP: #1174914 + * sysfs: handle failure path correctly for readdir() + - LP: #1174914 + * pnfs-block: removing DM device maybe cause oops when call dev_remove + - LP: #1174914 + * NFSv4.1: Fix a race in pNFS layoutcommit + - LP: #1174914 + * ASoC: dma-sh7760: Fix compile error + - LP: #1174914 + * IPoIB: Fix send lockup due to missed TX completion + - LP: #1174914 + * SUNRPC: Add barriers to ensure read ordering in + rpc_wake_up_task_queue_locked + - LP: #1174914 + * usb: xhci: Fix TRB transfer length macro used for Event TRB. + - LP: #1174914 + * staging: comedi: s626: fix continuous acquisition + - LP: #1174914 + * nfsd4: reject "negative" acl lengths + - LP: #1174914 + * Nest rename_lock inside vfsmount_lock + - LP: #1174914 + * vt: synchronize_rcu() under spinlock is not nice... + - LP: #1174914 + * iommu/amd: Make sure dma_ops are set for hotplug devices + - LP: #1174914 + * can: sja1000: fix define conflict on SH + - LP: #1174914 + * b43: A fix for DMA transmission sequence errors + - LP: #1174914 + * Btrfs: limit the global reserve to 512mb + - LP: #1174914 + * usb: ftdi_sio: Add support for Mitsubishi FX-USB-AW/-BD + - LP: #1174914 + * reiserfs: Fix warning and inode leak when deleting inode with xattrs + - LP: #1174914 + * tile: expect new initramfs name from hypervisor file system + - LP: #1174914 + * virtio: console: rename cvq_lock to c_ivq_lock + - LP: #1174914 + * virtio: console: add locking around c_ovq operations + - LP: #1174914 + * spi/mpc512x-psc: optionally keep PSC SS asserted across xfer segmensts + - LP: #1174914 + * EISA/PCI: Init EISA early, before PNP + - LP: #1174914 + * mm: prevent mmap_cache race in find_vma() + - LP: #1174914 + * ixgbe: fix registration order of driver and DCA nofitication + - LP: #1174914 + * rt2x00: error in configurations with mesh support disabled + - LP: #1174914 + * key: Fix resource leak + - LP: #1174914 + * udf: Fix bitmap overflow on large filesystems with small block size + - LP: #1174914 + * NFS: nfs_getaclargs.acl_len is a size_t + - LP: #1174914 + * loop: prevent bdev freeing while device in use + - LP: #1174914 + * sky2: Receive Overflows not counted + - LP: #1174914 + * sky2: Threshold for Pause Packet is set wrong + - LP: #1174914 + * tcp: preserve ACK clocking in TSO + - LP: #1174914 + * tcp: undo spurious timeout after SACK reneging + - LP: #1174914 + * 8021q: fix a potential use-after-free + - LP: #1174914 + * thermal: shorten too long mcast group name + - LP: #1174914 + * bonding: fix miimon and arp_interval delayed work race conditions + - LP: #1174914 + * unix: fix a race condition in unix_release() + - LP: #1174914 + * bonding: remove already created master sysfs link on failure + - LP: #1174914 + * bonding: fix disabling of arp_interval and miimon + - LP: #1174914 + * drivers: net: ethernet: davinci_emac: use netif_wake_queue() while + restarting tx queue + - LP: #1174914 + * aoe: reserve enough headroom on skbs + - LP: #1174914 + * atl1e: drop pci-msi support because of packet corruption + - LP: #1174914 + * DM9000B: driver initialization upgrade + - LP: #1174914 + * ipv6: don't accept multicast traffic with scope 0 + - LP: #1174914 + * ipv6: fix bad free of addrconf_init_net + - LP: #1174914 + * ipv6: don't accept node local multicast traffic from the wire + - LP: #1174914 + * ks8851: Fix interpretation of rxlen field. + - LP: #1174914 + * net: add a synchronize_net() in netdev_rx_handler_unregister() + - LP: #1174914 + * pch_gbe: fix ip_summed checksum reporting on rx + - LP: #1174914 + * smsc75xx: fix jumbo frame support + - LP: #1174914 + * bonding: get netdev_rx_handler_unregister out of locks + - LP: #1174914 + * HID: microsoft: do not use compound literal - fix build + - LP: #1174914 + * Linux 3.2.43 + - LP: #1174914 + * USB: serial: add modem-status-change wait queue + - LP: #1174914 + * USB: serial: fix hang when opening port + - LP: #1174914 + * USB: ark3116: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: ch341: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: cypress_m8: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: ftdi_sio: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: io_edgeport: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: io_ti: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: mct_u232: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: mos7840: fix broken TIOCMIWAIT + - LP: #1174914 + * USB: mos7840: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: oti6858: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: pl2303: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: spcp8x5: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: ssu100: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * USB: ti_usb_3410_5052: fix use-after-free in TIOCMIWAIT + - LP: #1174914 + * hrtimer: Don't reinitialize a cpu_base lock on CPU_UP + - LP: #1174914 + * crypto: gcm - fix assumption that assoc has one segment + - LP: #1174914 + * libata: Use integer return value for atapi_command_packet_set + - LP: #1174914 + * libata: Set max sector to 65535 for Slimtype DVD A DS8A8SH drive + - LP: #1174914 + * ata_piix: Fix DVD not dectected at some Haswell platforms + - LP: #1174914 + * hwspinlock: fix __hwspin_lock_request error path + - LP: #1174914 + * ALSA: usb-audio: fix endianness bug in snd_nativeinstruments_* + - LP: #1174914 + * alpha: Add irongate_io to PCI bus resources + - LP: #1174914 + * powerpc: pSeries_lpar_hpte_remove fails from Adjunct partition being + performed before the ANDCOND test + - LP: #1174914 + * sched_clock: Prevent 64bit inatomicity on 32bit systems + - LP: #1174914 + * ftrace: Consistently restore trace function on sysctl enabling + - LP: #1174914 + * PM / reboot: call syscore_shutdown() after disable_nonboot_cpus() + - LP: #1174914 + * can: gw: use kmem_cache_free() instead of kfree() + - LP: #1174914 + * ASoC: wm8903: Fix the bypass to HP/LINEOUT when no DAC or ADC is + running + - LP: #1174914 + * spinlocks and preemption points need to be at least compiler barriers + - LP: #1174914 + * tracing: Fix double free when function profile init failed + - LP: #1174914 + * x86, mm, paravirt: Fix vmalloc_fault oops during lazy MMU updates + - LP: #1174914 + * x86, mm: Patch out arch_flush_lazy_mmu_mode() when running on bare + metal + - LP: #1174914 + * target: Fix MAINTENANCE_IN service action CDB checks to use lower 5 + bits + - LP: #1174914 + * target: Fix incorrect fallthrough of ALUA Standby/Offline/Transition + CDBs + - LP: #1174914 + * tracing: Fix possible NULL pointer dereferences + - LP: #1174914 + * Btrfs: make sure nbytes are right after log replay + - LP: #1174914 + * kref: Implement kref_get_unless_zero v3 + - LP: #1174914 + * kobject: fix kset_find_obj() race with concurrent last kobject_put() + - LP: #1174914 + * vfs: Revert spurious fix to spinning prevention in prune_icache_sb + - LP: #1174914 + * ARM: Do 15e0d9e37c (ARM: pm: let platforms select cpu_suspend support) + properly + - LP: #1174914 + * ath9k_htc: accept 1.x firmware newer than 1.3 + - LP: #1174914 + * of: introduce helper to manage boolean + - LP: #1174914 + * can: sja1000: fix handling on dt properties on little endian systems + - LP: #1174914 + * ath9k_hw: change AR9580 initvals to fix a stability issue + - LP: #1174914 + * ARM: 7696/1: Fix kexec by setting outer_cache.inv_all for Feroceon + - LP: #1174914 + * ARM: 7698/1: perf: fix group validation when using enable_on_exec + - LP: #1174914 + * hugetlbfs: add swap entry check in follow_hugetlb_page() + - LP: #1174914 + * kernel/signal.c: stop info leak via the tkill and the tgkill syscalls + - LP: #1174914 + * net: fix incorrect credentials passing + - LP: #1174914 + * thermal: return an error on failure to register thermal class + - LP: #1174914 + * writeback: fix dirtied pages accounting on redirty + - LP: #1174914 + * Btrfs: fix race between mmap writes and compression + - LP: #1174914 + * drm/i915: panel: invert brightness via parameter + - LP: #1174914 + * drm/i915: panel: invert brightness via quirk + - LP: #1174914 + * drm/i915: panel: invert brightness acer aspire 5734z + - LP: #1174914 + * DRM/i915: Add QUIRK_INVERT_BRIGHTNESS for NCR machines. + - LP: #1174914 + * drm/i915: add quirk to invert brightness on eMachines G725 + - LP: #1174914 + * drm/i915: add quirk to invert brightness on eMachines e725 + - LP: #1174914 + * drm/i915: add quirk to invert brightness on Packard Bell NCL20 + - LP: #1174914 + * msi-wmi: Fix memory leak + - LP: #1174914 + * ALSA: hda - Enabling Realtek ALC 671 codec + - LP: #1174914 + * ALSA: hda - fix typo in proc output + - LP: #1174914 + * block: avoid using uninitialized value in from queue_var_store + - LP: #1174914 + * r8169: fix auto speed down issue + - LP: #1174914 + * mtd: Disable mtdchar mmap on MMU systems + - LP: #1174914 + * hfsplus: fix potential overflow in hfsplus_file_truncate() + - LP: #1174914 + * KVM: Allow cross page reads and writes from cached translations. + - LP: #1174914 + * sched: Convert BUG_ON()s in try_to_wake_up_local() to WARN_ON_ONCE()s + - LP: #1174914 + * Linux 3.2.44 + - LP: #1174914 + + -- Steve Conklin Thu, 24 Apr 2013 20:55:20 -0500 + +linux (3.2.0-41.66) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1172464 + + [ Steve Conklin ] + + * Revert "drm/i915: GFX_MODE Flush TLB Invalidate Mode must be '1' for + scanline waits" + - LP: #1140716 + + [ Upstream Kernel Changes ] + + * fbcon: fix locking harder + - LP: #1168961, #1169380 + + -- Steve Conklin Wed, 24 Apr 2013 15:36:11 -0500 + +linux (3.2.0-41.65) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1167436 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Fix quieting of audit messages for network + mediation + - LP: #1163259 + + [ Steve Conklin ] + + * SAUCE: Update configs for new efivars option + - LP: #1164646 + + [ Upstream Kernel Changes ] + + * Revert "powerpc/eeh: Fix crash when adding a device in a slot with DDW" + - LP: #1164646 + * Input: cypress_ps2 - fix trackpadi found in Dell XPS12 + - LP: #1103594 + * btrfs: Init io_lock after cloning btrfs device struct + - LP: #1164646 + * md: protect against crash upon fsync on ro array + - LP: #1164646 + * NFS: Don't allow NFS silly-renamed files to be deleted, no signal + - LP: #1164646 + * SUNRPC: Don't start the retransmission timer when out of socket space + - LP: #1164646 + * storvsc: Initialize the sglist + - LP: #1164646 + * dc395x: uninitialized variable in device_alloc() + - LP: #1164646 + * ARM: VFP: fix emulation of second VFP instruction + - LP: #1164646 + * ARM: fix scheduling while atomic warning in alignment handling code + - LP: #1164646 + * md: fix two bugs when attempting to resize RAID0 array. + - LP: #1164646 + * md: raid0: fix error return from create_stripe_zones. + - LP: #1164646 + * proc connector: reject unprivileged listener bumps + - LP: #1164646 + * ath9k: fix RSSI dummy marker value + - LP: #1164646 + * ath9k_htc: fix signal strength handling issues + - LP: #1164646 + * mwifiex: correct sleep delay counter + - LP: #1164646 + * cifs: ensure that cifs_get_root() only traverses directories + - LP: #1164646 + * xen/pci: We don't do multiple MSI's. + - LP: #1164646 + * dm: fix truncated status strings + - LP: #1164646 + * dm snapshot: add missing module aliases + - LP: #1164646 + * drm/i915: Don't clobber crtc->fb when queue_flip fails + - LP: #1164646 + * ARM: 7663/1: perf: fix ARMv7 EVTYPE_MASK to include NSH bit + - LP: #1164646 + * hwmon: (pmbus/ltc2978) Fix peak attribute handling + - LP: #1164646 + * hwmon: (pmbus/ltc2978) Use detected chip ID to select supported + functionality + - LP: #1164646 + * hwmon: (sht15) Check return value of regulator_enable() + - LP: #1164646 + * hw_random: make buffer usable in scatterlist. + - LP: #1164646 + * ALSA: vmaster: Fix slave change notification + - LP: #1164646 + * drm/radeon: add primary dac adj quirk for R200 board + - LP: #1164646 + * dmi_scan: fix missing check for _DMI_ signature in smbios_present() + - LP: #1164646 + * iwlwifi: always copy first 16 bytes of commands + - LP: #1164646 + * HID: add support for Sony RF receiver with USB product id 0x0374 + - LP: #1164646 + * HID: clean up quirk for Sony RF receivers + - LP: #1164646 + * ahci: Add Device IDs for Intel Lynx Point-LP PCH + - LP: #1164646 + * ahci: AHCI-mode SATA patch for Intel Avoton DeviceIDs + - LP: #1164646 + * ahci: Add Device IDs for Intel Wellsburg PCH + - LP: #1164646 + * iommu/amd: Initialize device table after dma_ops + - LP: #1164646 + * tty: Correct tty buffer flush. + - LP: #1164646 + * efi_pstore: Check remaining space with QueryVariableInfo() before + writing data + - LP: #1164646 + * efivars: Disable external interrupt while holding efivars->lock + - LP: #1164646 + * efi: be more paranoid about available space when creating variables + - LP: #1164646 + * ftrace: Update the kconfig for DYNAMIC_FTRACE + - LP: #1164646 + * decnet: Fix disappearing sysctl entries + - LP: #1164646 + * Fix memory leak in cpufreq stats. + - LP: #1164646 + * vfs: fix pipe counter breakage + - LP: #1164646 + * xen/pciback: Don't disable a PCI device that is already disabled. + - LP: #1164646 + * USB: option: add Huawei E5331 + - LP: #1164646 + * USB: storage: fix Huawei mode switching regression + - LP: #1164646 + * USB: added support for Cinterion's products AH6 and PLS8 + - LP: #1164646 + * e1000e: fix pci-device enable-counter balance + - LP: #1164646 + * virtio: rng: disallow multiple device registrations, fixes crashes + - LP: #1164646 + * ALSA: seq: Fix missing error handling in snd_seq_timer_open() + - LP: #1164646 + * usb: cp210x new Vendor/Device IDs + - LP: #1164646 + * staging: vt6656: Fix oops on resume from suspend. + - LP: #1164646 + * qcaux: add Franklin U600 + - LP: #1164646 + * ext3: Fix format string issues + - LP: #1164646 + * tty/serial: Add support for Altera serial port + - LP: #1164646 + * Fix 4 port and add support for 8 port 'Unknown' PCI serial port cards + - LP: #1164646 + * serial: 8250_pci: add support for another kind of NetMos Technology PCI + 9835 Multi-I/O Controller + - LP: #1164646 + * tty: serial: fix typo "ARCH_S5P6450" + - LP: #1164646 + * usb: serial: Add Rigblaster Advantage to device table + - LP: #1164646 + * w1: fix oops when w1_search is called from netlink connector + - LP: #1164646 + * USB: cdc-wdm: fix buffer overflow + - LP: #1164646 + * hwmon: (lineage-pem) Add missing terminating entry for + pem_[input|fan]_attributes + - LP: #1164646 + * hwmon: (pmbus/ltc2978) Fix temperature reporting + - LP: #1164646 + * Fix: compat_rw_copy_check_uvector() misuse in aio, readv, writev, and + security keys + - LP: #1164646 + * USB: Don't use EHCI port sempahore for USB 3.0 hubs. + - LP: #1164646 + * USB: Prepare for refactoring by adding extra udev checks. + - LP: #1164646 + * USB: Rip out recursive call on warm port reset. + - LP: #1164646 + * USB: Fix connected device switch to Inactive state. + - LP: #1164646 + * batman-adv: bat_socket_read missing checks + - LP: #1164646 + * batman-adv: Only write requested number of byte to user buffer + - LP: #1164646 + * block: use i_size_write() in bd_set_size() + - LP: #1164646 + * loopdev: fix a deadlock + - LP: #1164646 + * loopdev: remove an user triggerable oops + - LP: #1164646 + * btrfs: use rcu_barrier() to wait for bdev puts at unmount + - LP: #1164646 + * Linux 3.2.41 + - LP: #1164646 + * TTY: do not reset master's packet mode + - LP: #1164646 + * perf,x86: fix kernel crash with PEBS/BTS after suspend/resume + - LP: #1164646 + * perf,x86: fix wrmsr_on_cpu() warning on suspend/resume + - LP: #1164646 + * perf,x86: fix link failure for non-Intel configs + - LP: #1164646 + * l2tp: Restore socket refcount when sendmsg succeeds + - LP: #1164646 + * rds: limit the size allocated by rds_message_alloc() + - LP: #1164646 + * net: ipv6: Don't purge default router if accept_ra=2 + - LP: #1164646 + * tcp: fix double-counted receiver RTT when leaving receiver fast path + - LP: #1164646 + * tun: add a missing nf_reset() in tun_net_xmit() + - LP: #1164646 + * macvlan: Set IFF_UNICAST_FLT flag to prevent unnecessary promisc mode. + - LP: #1164646 + * netlabel: correctly list all the static label mappings + - LP: #1164646 + * bridging: fix rx_handlers return code + - LP: #1164646 + * ipv6: stop multicast forwarding to process interface scoped addresses + - LP: #1164646 + * rtnl: fix info leak on RTM_GETLINK request for VF devices + - LP: #1164646 + * dcbnl: fix various netlink info leaks + - LP: #1164646 + * 6lowpan: Fix endianness issue in is_addr_link_local(). + - LP: #1164646 + * drm/i915: Increase the RC6p threshold. + - LP: #1164646 + * perf: Revert duplicated commit + - LP: #1164646 + * i915: initialize CADL in opregion + - LP: #1164646 + * s390/mm: fix flush_tlb_kernel_range() + - LP: #1164646 + * mwifiex: fix potential out-of-boundary access to ibss rate table + - LP: #1164646 + * rtlwifi: rtl8192cu: Fix schedule while atomic bug splat + - LP: #1164646 + * powerpc: Fix cputable entry for 970MP rev 1.0 + - LP: #1164646 + * rtlwifi: rtl8192cu: Fix problem that prevents reassociation + - LP: #1164646 + * vhost/net: fix heads usage of ubuf_info + - LP: #1164646 + * selinux: use GFP_ATOMIC under spin_lock + - LP: #1164646 + * udf: avoid info leak on export + - LP: #1164646 + * isofs: avoid info leak on export + - LP: #1164646 + * sunsu: Fix panic in case of nonexistent port at "console=ttySY" cmdline + option + - LP: #1164646 + * net/ipv4: Ensure that location of timestamp option is stored + - LP: #1164646 + * netconsole: don't call __netpoll_cleanup() while atomic + - LP: #1164646 + * bonding: don't call update_speed_duplex() under spinlocks + - LP: #1164646 + * sctp: Use correct sideffect command in duplicate cookie handling + - LP: #1164646 + * sctp: don't break the loop while meeting the active_path so as to find + the matched transport + - LP: #1164646 + * ipv4: fix definition of FIB_TABLE_HASHSZ + - LP: #1164646 + * tcp: fix skb_availroom() + - LP: #1164646 + * rtnetlink: Mask the rta_type when range checking + - LP: #1164646 + * inet: limit length of fragment queue hash table bucket lists + - LP: #1164646 + * sfc: Do not attempt to flush queues if DMA is disabled + - LP: #1164646 + * sfc: Convert firmware subtypes to native byte order in + efx_mcdi_get_board_cfg() + - LP: #1164646 + * sfc: Fix two causes of flush failure + - LP: #1164646 + * sfc: lock TX queues when calling netif_device_detach() + - LP: #1164646 + * sfc: Fix timekeeping in efx_mcdi_poll() + - LP: #1164646 + * sfc: Properly sync RX DMA buffer when it is not the last in the page + - LP: #1164646 + * sfc: Fix efx_rx_buf_offset() in the presence of swiotlb + - LP: #1164646 + * sfc: Detach net device when stopping queues for reconfiguration + - LP: #1164646 + * sfc: Disable soft interrupt handling during efx_device_detach_sync() + - LP: #1164646 + * sfc: Only use TX push if a single descriptor is to be written + - LP: #1164646 + * ext4: fix the wrong number of the allocated blocks in + ext4_split_extent() + - LP: #1164646 + * jbd2: fix use after free in jbd2_journal_dirty_metadata() + - LP: #1164646 + * ext4: convert number of blocks to clusters properly + - LP: #1164646 + * ext4: use atomic64_t for the per-flexbg free_clusters count + - LP: #1164646 + * tracing: Fix race in snapshot swapping + - LP: #1164646 + * cifs: delay super block destruction until all cifsFileInfo objects are + gone + - LP: #1164646 + * drm/i915: restrict kernel address leak in debugfs + - LP: #1164646 + * drm/i915: bounds check execbuffer relocation count + - LP: #1164646 + - CVE-2013-0913 + * tracing: Fix free of probe entry by calling call_rcu_sched() + - LP: #1164646 + * tracing: Protect tracer flags with trace_types_lock + - LP: #1164646 + * tracing: Keep overwrite in sync between regular and snapshot buffers + - LP: #1164646 + * tracing: Prevent buffer overwrite disabled for latency tracers + - LP: #1164646 + * USB: xhci: correctly enable interrupts + - LP: #1164646 + * usb-storage: add unusual_devs entry for Samsung YP-Z3 mp3 player + - LP: #1164646 + * drm/radeon/benchmark: make sure bo blit copy exists before using it + - LP: #1164646 + * ALSA: hda/cirrus - Fix the digital beep registration + - LP: #1164646 + * USB: xhci - fix bit definitions for IMAN register + - LP: #1164646 + * x86-64: Fix the failure case in copy_user_handle_tail() + - LP: #1164646 + * ALSA: snd-usb: mixer: propagate errors up the call chain + - LP: #1164646 + * ALSA: snd-usb: mixer: ignore -EINVAL in snd_usb_mixer_controls() + - LP: #1164646 + * ext4: fix data=journal fast mount/umount hang + - LP: #1164646 + * ALSA: hda - Fix typo in checking IEC958 emphasis bit + - LP: #1164646 + * usb: gadget: udc-core: fix a regression during gadget driver unbinding + - LP: #1164646 + * dm thin: fix discard corruption + - LP: #1164646 + * efivars: Allow disabling use as a pstore backend + - LP: #1164646 + * efivars: Add module parameter to disable use as a pstore backend + - LP: #1164646 + * efivars: Fix check for CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE + - LP: #1164646 + * efi_pstore: Introducing workqueue updating sysfs + - LP: #1164646 + * efivars: explicitly calculate length of VariableName + - LP: #1164646 + * efivars: Handle duplicate names from get_next_variable() + - LP: #1164646 + * cifs: ignore everything in SPNEGO blob after mechTypes + - LP: #1164646 + * USB: garmin_gps: fix memory leak on disconnect + - LP: #1164646 + * USB: io_ti: fix get_icount for two port adapters + - LP: #1164646 + * USB: serial: fix interface refcounting + - LP: #1164646 + * i2c: tegra: check the clk_prepare_enable() return value + - LP: #1164646 + * vfs,proc: guarantee unique inodes in /proc + - LP: #1164646 + * mm/hugetlb: fix total hugetlbfs pages count when using memory + overcommit accouting + - LP: #1164646 + * KMS: fix EDID detailed timing vsync parsing + - LP: #1164646 + * KMS: fix EDID detailed timing frame rate + - LP: #1164646 + * efivars: pstore: Do not check size when erasing variable + - LP: #1164646 + * signal: Define __ARCH_HAS_SA_RESTORER so we know whether to clear + sa_restorer + - LP: #1164646 + * kernel/signal.c: use __ARCH_HAS_SA_RESTORER instead of SA_RESTORER + - LP: #1164646 + * Linux 3.2.42 + - LP: #1164646 + * KVM: x86: fix for buffer overflow in handling of MSR_KVM_SYSTEM_TIME + (CVE-2013-1796) + - LP: #1158254 + - CVE-2013-1796 + * KVM: Fix bounds checking in ioapic indirect register reads + (CVE-2013-1798) + - LP: #1158262 + - CVE-2013-1798 + * KVM: x86: Convert MSR_KVM_SYSTEM_TIME to use gfn_to_hva_cache functions + (CVE-2013-1797) + - LP: #1158258 + - CVE-2013-1797 + * drm/i915: "Flush Me Harder" required on gen6+ + - LP: #1140716 + * drm/i915: PIPE_CONTROL_TLB_INVALIDATE + - LP: #1140716 + * drm/i915: Apply post-sync write for pipe control invalidates + - LP: #1140716 + * drm/i915: TLB invalidation with MI_FLUSH_DW requires a post-sync op v3 + - LP: #1140716 + * drm/i915: PIPE_CONTROL TLB invalidate requires CS stall + - LP: #1140716 + + -- Steve Conklin Wed, 10 Apr 2013 11:32:07 -0500 + +linux (3.2.0-40.64) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1160017 + + [ Stefan Bader ] + + * SAUCE: Revert "SAUCE: xen/pv-spinlock: Never enable interrupts in + xen_spin_lock_slow()" + + [ Xiangliang Yu ] + + * SAUCE: PCI: define macro for marvell vendor ID + - LP: #1159863 + * SAUCE: PCI: fix system hang issue of Marvell SATA host controller + - LP: #1159863 + + -- Steve Conklin Mon, 25 Mar 2013 15:41:39 -0500 + +linux (3.2.0-40.63) precise-proposed; urgency=low + + [Steve Conklin] + + * Release Tracking Bug + - LP: #1157785 + + [ Andy Whitcroft ] + + * [Config] re-disable CONFIG_SOUND_OSS_PRECLAIM + - LP: #1105230 + + [ Luis Henriques ] + + * [Config] CONFIG_NFS_V4_1=y + - LP: #1111416 + + [ Upstream Kernel Changes ] + + * Revert "drm: Add EDID_QUIRK_FORCE_REDUCED_BLANKING for ASUS VW222S" + - LP: #1150557 + * tmpfs: fix use-after-free of mempolicy object + - LP: #1143815 + - CVE-2013-1767 + * sunvdc: Fix off-by-one in generic_request(). + - LP: #1150557 + * genirq: Avoid deadlock in spurious handling + - LP: #1150557 + * KVM: s390: Handle hosts not supporting s390-virtio. + - LP: #1150557 + * workqueue: consider work function when searching for busy work items + - LP: #1150557 + * v4l: Reset subdev v4l2_dev field to NULL if registration fails + - LP: #1150557 + * omap_vout: find_vma() needs ->mmap_sem held + - LP: #1150557 + * dca: check against empty dca_domains list before unregister provider + - LP: #1150557 + * powerpc/eeh: Fix crash when adding a device in a slot with DDW + - LP: #1150557 + * ext4: return ENOMEM if sb_getblk() fails + - LP: #1150557 + * pcmcia/vrc4171: Add missing spinlock init + - LP: #1150557 + * Purge existing TLB entries in set_pte_at and ptep_set_wrprotect + - LP: #1150557 + * ARM: PXA3xx: program the CSMSADRCFG register + - LP: #1150557 + * USB: option: add and update Alcatel modems + - LP: #1150557 + * quota: autoload the quota_v2 module for QFMT_VFS_V1 quota format + - LP: #1150557 + * ext4: fix possible use-after-free with AIO + - LP: #1150557 + * s390/kvm: Fix store status for ACRS/FPRS + - LP: #1150557 + * staging: comedi: disallow COMEDI_DEVCONFIG on non-board minors + - LP: #1150557 + * ALSA: usb-audio: fix Roland A-PRO support + - LP: #1150557 + * x86-32, mm: Rip out x86_32 NUMA remapping code + - LP: #1150557 + * ALSA: hda - Release assigned pin/cvt at error path of hdmi_pcm_open() + - LP: #1150557 + * ext4: fix race in ext4_mb_add_n_trim() + - LP: #1150557 + * zram: Fix deadlock bug in partial read/write + - LP: #1150557 + * Driver core: treat unregistered bus_types as having no devices + - LP: #1150557 + * ALSA: aloop: Fix Oops while PM resume + - LP: #1150557 + * UBIFS: fix double free of ubifs_orphan objects + - LP: #1150557 + * tty: set_termios/set_termiox should not return -EINTR + - LP: #1150557 + * hrtimer: Prevent hrtimer_enqueue_reprogram race + - LP: #1150557 + * nfsd: Fix memleak + - LP: #1150557 + * staging: comedi: check s->async for poll(), read() and write() + - LP: #1150557 + * ACPI: Add DMI entry for Sony VGN-FW41E_H + - LP: #1150557 + * vgacon/vt: clear buffer attributes when we load a 512 character font + (v2) + - LP: #1150557 + * fbcon: don't lose the console font across generic->chip driver switch + - LP: #1150557 + * drm/usb: bind driver to correct device + - LP: #1150557 + * x86: Do not leak kernel page mapping locations + - LP: #1150557 + * timeconst.pl: Eliminate Perl warning + - LP: #1150557 + * fb: rework locking to fix lock ordering on takeover + - LP: #1150557 + * fb: Yet another band-aid for fixing lockdep mess + - LP: #1150557 + * p54usb: corrected USB ID for T-Com Sinus 154 data II + - LP: #1150557 + * rtlwifi: rtl8192cu: Fix NULL dereference BUG when using new_id + - LP: #1150557 + * rtlwifi: rtl8192cu: Add new USB ID + - LP: #1150557 + * USB: storage: properly handle the endian issues of idProduct + - LP: #1150557 + * x86/apic: Use x2apic physical mode based on FADT setting + - LP: #1150557 + * x86/apic: Work around boot failure on HP ProLiant DL980 G7 Server + systems + - LP: #1150557 + * ALSA: rme32.c irq enabling after spin_lock_irq + - LP: #1150557 + * ALSA: ali5451: remove irq enabling in pointer callback + - LP: #1150557 + * drivers/rtc/rtc-pl031.c: restore ST variant functionality + - LP: #1150557 + * x86: Hyper-V: register clocksource only if its advertised + - LP: #1150557 + * x86/mm: Check if PUD is large when validating a kernel address + - LP: #1150557 + * USB: option: add Yota / Megafon M100-1 4g modem + - LP: #1150557 + * USB: serial: fix null-pointer dereferences on disconnect + - LP: #1150557 + * idr: idr_for_each_entry() macro + - LP: #1150557 + * pps: Add pps_lookup_dev() function + - LP: #1150557 + * pps: Use pps_lookup_dev to reduce ldisc coupling + - LP: #1150557 + * pps: Fix a use-after free bug when unregistering a source. + - LP: #1150557 + * PCI/PM: Clean up PME state when removing a device + - LP: #1150557 + * USB: option: add Huawei "ACM" devices using protocol = vendor + - LP: #1150557 + * efi: Clear EFI_RUNTIME_SERVICES rather than EFI_BOOT by "noefi" boot + parameter + - LP: #1150557 + * ARM: samsung: fix assembly syntax for new gas + - LP: #1150557 + * ARM: w90x900: fix legacy assembly syntax + - LP: #1150557 + * USB: ehci-omap: Fix autoloading of module + - LP: #1150557 + * USB: usb-storage: unusual_devs update for Super TOP SATA bridge + - LP: #1150557 + * posix-cpu-timers: Fix nanosleep task_struct leak + - LP: #1150557 + * svcrpc: make svc_age_temp_xprts enqueue under sv_lock + - LP: #1150557 + * NFSv4.1: Don't decode skipped layoutgets + - LP: #1150557 + * umount oops when remove blocklayoutdriver first + - LP: #1150557 + * cgroup: fix exit() vs rmdir() race + - LP: #1150557 + * cpuset: fix cpuset_print_task_mems_allowed() vs rename() race + - LP: #1150557 + * ext4: fix xattr block allocation/release with bigalloc + - LP: #1150557 + * mm: fix pageblock bitmap allocation + - LP: #1150557 + * rtlwifi: usb: allocate URB control message setup_packet and data buffer + separately + - LP: #1150557 + * target: Fix lookup of dynamic NodeACLs during cached demo-mode + operation + - LP: #1150557 + * target: Add missing mapped_lun bounds checking during make_mappedlun + setup + - LP: #1150557 + * ftrace: Call ftrace cleanup module notifier after all other notifiers + - LP: #1150557 + * b43: Increase number of RX DMA slots + - LP: #1150557 + * NLM: Ensure that we resend all pending blocking locks after a reclaim + - LP: #1150557 + * ALSA: hda - hdmi: ELD shouldn't be valid after unplug + - LP: #1150557 + * xen-blkback: do not leak mode property + - LP: #1150557 + * drm: don't add inferred modes for monitors that don't support them + - LP: #1150557 + * drm/i915: disable shared panel fitter for pipe + - LP: #1150557 + * drm/i915: add missing \n to UTS_RELEASE in the error_state + - LP: #1150557 + * drm/i915: Set i9xx sdvo clock limits according to specifications + - LP: #1150557 + * intel/iommu: force writebuffer-flush quirk on Gen 4 Chipsets + - LP: #1150557 + * xen: close evtchn port if binding to irq fails + - LP: #1150557 + * xen: Send spinlock IPI to all waiters + - LP: #1011792, #1150557 + * x86, efi: Make "noefi" really disable EFI runtime serivces + - LP: #1150557 + * ALSA: usb: Fix Processing Unit Descriptor parsers + - LP: #1150557 + * posix-timer: Don't call idr_find() with out-of-range ID + - LP: #1150557 + * inotify: remove broken mask checks causing unmount to be EINVAL + - LP: #1150557 + * fs/block_dev.c: page cache wrongly left invalidated after + revalidate_disk() + - LP: #1150557 + * ocfs2: unlock super lock if lockres refresh failed + - LP: #1150557 + * drivers/video/backlight/adp88?0_bl.c: fix resume + - LP: #1150557 + * ext4: fix free clusters calculation in bigalloc filesystem + - LP: #1150557 + * fs: Fix possible use-after-free with AIO + - LP: #1150557 + * powerpc/kexec: Disable hard IRQ before kexec + - LP: #1150557 + * mm: mmu_notifier: have mmu_notifiers use a global SRCU so they may + safely schedule + - LP: #1150557 + * mm: mmu_notifier: make the mmu_notifier srcu static + - LP: #1150557 + * mmu_notifier_unregister NULL Pointer deref and multiple ->release() + callouts + - LP: #1150557 + * mm/fadvise.c: drain all pagevecs if POSIX_FADV_DONTNEED fails to + discard all pages + - LP: #1150557 + * mmc: sdhci-esdhc-imx: fix host version read + - LP: #1150557 + * doc, xen: Mention 'earlyprintk=xen' in the documentation. + - LP: #1150557 + * doc, kernel-parameters: Document 'console=hvc' + - LP: #1150557 + * ocfs2: fix possible use-after-free with AIO + - LP: #1150557 + * x86: Make sure we can boot in the case the BDA contains pure garbage + - LP: #1150557 + * ocfs2: fix ocfs2_init_security_and_acl() to initialize acl correctly + - LP: #1150557 + * ocfs2: ac->ac_allow_chain_relink=0 won't disable group relink + - LP: #1150557 + * block: fix ext_devt_idr handling + - LP: #1150557 + * idr: fix a subtle bug in idr_get_next() + - LP: #1150557 + * block: fix synchronization and limit check in blk_alloc_devt() + - LP: #1150557 + * firewire: add minor number range check to fw_device_init() + - LP: #1150557 + * idr: make idr_get_next() good for rcu_read_lock() + - LP: #1150557 + * idr: fix top layer handling + - LP: #1150557 + * sysctl: fix null checking in bin_dn_node_address() + - LP: #1150557 + * nbd: fsync and kill block device on shutdown + - LP: #1150557 + * igb: Remove artificial restriction on RQDPC stat reading + - LP: #1150557 + * drm/radeon/evergreen+: wait for the MC to settle after MC blackout + - LP: #1150557 + * s390/timer: avoid overflow when programming clock comparator + - LP: #1150557 + * unbreak automounter support on 64-bit kernel with 32-bit userspace (v2) + - LP: #1150557 + * bridge: set priority of STP packets + - LP: #1150557 + * xen-netback: correctly return errors from netbk_count_requests() + - LP: #1150557 + * xen-netback: cancel the credit timer when taking the vif down + - LP: #1150557 + * ipv4: fix a bug in ping_err(). + - LP: #1150557 + * ipv6: use a stronger hash for tcp + - LP: #1150557 + * staging: comedi: ni_labpc: correct differential channel sequence for AI + commands + - LP: #1150557 + * staging: comedi: ni_labpc: set up command4 register *after* command3 + - LP: #1150557 + * pstore: Avoid deadlock in panic and emergency-restart path + - LP: #1150557 + * ata_piix: IDE-mode SATA patch for Intel DH89xxCC DeviceIDs + - LP: #1150557 + * ata_piix: Add Device IDs for Intel Lynx Point-LP PCH + - LP: #1150557 + * ata_piix: IDE-mode SATA patch for Intel Avoton DeviceIDs + - LP: #1150557 + * ata_piix: Add Device IDs for Intel Wellsburg PCH + - LP: #1150557 + * usb hid quirks for Masterkit MA901 usb radio + - LP: #1150557 + * 8250: use correct value for PORT_BRCM_TRUMANAGE + - LP: #1150557 + * usb: Add quirk detection based on interface information + - LP: #1150557 + * usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams + - LP: #1150557 + * speakup: lower default software speech rate + - LP: #1150557 + * asus-laptop: Do not call HWRS on init + - LP: #1150557 + * fs: cachefiles: add support for large files in filesystem caching + - LP: #1150557 + * ext4: rewrite punch hole to use ext4_ext_remove_space() + - LP: #1150557 + * ext4: fix hole punch failure when depth is greater than 0 + - LP: #1150557 + * ext4: fix kernel BUG on large-scale rm -rf commands + - LP: #1150557 + * Linux 3.2.40 + - LP: #1150557 + * drm/i915: Periodically sanity check power management + - LP: #1146425 + * keys: fix race with concurrent install_user_keyrings() + - LP: #1152788 + - CVE-2013-1792 + * ALSA: hda: remove unused quirk for inverted mute led + - LP: #1077084 + * xen-netfront: delay gARP until backend switches to Connected + - LP: #1154608 + * signal: always clear sa_restorer on execve + - LP: #1153813 + - CVE-2013-0914 + * crypto: user - fix info leaks in report API + - LP: #1156790, #1156795, #1156799 + - CVE-2013-2548 + + -- Steve Conklin Mon, 20 Mar 2013 10:38:15 -0800 + +linux (3.2.0-39.62) precise-proposed; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1134424 + + [ Herton Ronaldo Krzesinski ] + + * Revert "SAUCE: samsung-laptop: disable in UEFI mode" + - LP: #1117693 + * d-i: Add mellanox ethernet drivers to nic-modules + - LP: #1015339 + + [ Ian Campbell ] + + * SAUCE: xen/netback: shutdown the ring if it contains garbage. + - LP: #1117325 + - CVE-2013-0216 + * SAUCE: netback: correct netbk_tx_err to handle wrap around. + - LP: #1117325 + - CVE-2013-0216 + * SAUCE: xen/netback: don't leak pages on failure in + xen_netbk_tx_check_gop. + - LP: #1117331 + - CVE-2013-0217 + * SAUCE: xen/netback: free already allocated memory on failure in + xen_netbk_get_requests + - LP: #1117331 + - CVE-2013-0217 + + [ Jan Beulich ] + + * SAUCE: xen-pciback: rate limit error messages from + xen_pcibk_enable_msi{, x}() + - LP: #1117336 + - CVE-2013-0231 + + [ Tim Gardner ] + + * [debian] Remove dangling symlink from headers package + - LP: #1112442 + * SAUCE: rt2x00: rt2x00pci_regbusy_read() - only print register access + failure once + - LP: #1128840 + + [ Upstream Kernel Changes ] + + * Revert "ALSA: hda - Shut up pins at power-saving mode with Conexnat + codecs" + - LP: #1117693, #886975 + * Revert "drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13" + - LP: #1117693 + * Revert "ptrace: ensure arch_ptrace/ptrace_request can never race with + SIGKILL" + - LP: #1131218 + * SAUCE: xen/pv-spinlock: Never enable interrupts in xen_spin_lock_slow() + - LP: #1011792 + * usb: gadget: dummy: fix enumeration with g_multi + - LP: #1117693 + * usb: musb: core: print new line in the driver banner again + - LP: #1117693 + * virtio-blk: Don't free ida when disk is in use + - LP: #1117693 + * mac80211: use del_timer_sync for final sta cleanup timer deletion + - LP: #1117693 + * xhci: Handle HS bulk/ctrl endpoints that don't NAK. + - LP: #1117693 + * USB: Handle auto-transition from hot to warm reset. + - LP: #1117693 + * USB: Ignore xHCI Reset Device status. + - LP: #1117693 + * USB: Allow USB 3.0 ports to be disabled. + - LP: #1117693 + * USB: Increase reset timeout. + - LP: #1117693 + * USB: Ignore port state until reset completes. + - LP: #1117693 + * USB: Handle warm reset failure on empty port. + - LP: #1117693 + * xhci: Avoid "dead ports", add roothub port polling. + - LP: #1117693 + * ASoC: wm5100: Remove DSP B and left justified formats + - LP: #1117693 + * mwifiex: handle association failure case correctly + - LP: #1117693 + * mwifiex: check wait_event_interruptible return value + - LP: #1117693 + * ASoC: wm2000: Fix sense of speech clarity enable + - LP: #1117693 + * ioat: Fix DMA memory sync direction correct flag + - LP: #1117693 + * drm/i915; Only increment the user-pin-count after successfully pinning + the bo + - LP: #1117693 + * staging: r8712u: Add new device ID + - LP: #1117693 + * staging: speakup: avoid out-of-range access in synth_init() + - LP: #1117693 + * staging: speakup: avoid out-of-range access in synth_add() + - LP: #1117693 + * staging: comedi: fix minimum AO period for NI 625x and NI 628x + - LP: #1117693 + * staging: comedi: comedi_test: fix race when cancelling command + - LP: #1117693 + * regulator: max8997: Use uV in voltage_map_desc + - LP: #1117693 + * ALSA: pxa27x: fix ac97 cold reset + - LP: #1117693 + * ALSA: pxa27x: fix ac97 warm reset + - LP: #1117693 + * SUNRPC: Ensure we release the socket write lock if the rpc_task exits + early + - LP: #1117693 + * target: use correct sense code for LUN communication failure + - LP: #1117693 + * regulator: max8998: Ensure enough delay time for + max8998_set_voltage_buck_time_sel + - LP: #1117693 + * radeon/kms: force rn50 chip to always report connected on analog output + - LP: #1117693 + * tcm_fc: Do not indicate retry capability to initiators + - LP: #1117693 + * tcm_fc: Do not report target role when target is not defined + - LP: #1117693 + * sh: Fix FDPIC binary loader + - LP: #1117693 + * USB: option: Add new MEDIATEK PID support + - LP: #1117693 + * USB: option: blacklist network interface on ZTE MF880 + - LP: #1117693 + * USB: option: add Telekom Speedstick LTE II + - LP: #1117693 + * USB: option: add Nexpring NP10T terminal id + - LP: #1117693 + * USB: cdc-acm: Add support for "PSC Scanning, Magellan 800i" + - LP: #1117693 + * USB: hub: handle claim of enabled remote wakeup after reset + - LP: #1117693 + * mm: compaction: fix echo 1 > compact_memory return error issue + - LP: #1117693 + * mm: use aligned zone start for pfn_to_bitidx calculation + - LP: #1117693 + * USB: Add device quirk for Microsoft VX700 webcam + - LP: #1117693 + * PCI: pciehp: Fix wrong workqueue cleanup + - LP: #1117693 + * PCI: pciehp: Handle push button event asynchronously + - LP: #1117693 + * PCI: pciehp: Use per-slot workqueues to avoid deadlock + - LP: #1117693 + * usb: ftdi_sio: Crucible Technologies COMET Caller ID - pid added + - LP: #1117693 + * PCI/AER: pci_get_domain_bus_and_slot() call missing required + pci_dev_put() + - LP: #1117693 + * PCI: shpchp: Handle push button event asynchronously + - LP: #1117693 + * PCI: shpchp: Use per-slot workqueues to avoid deadlock + - LP: #1117693 + * serial:ifx6x60:Delete SPI timer when shut down port + - LP: #1117693 + * tty: 8250_dw: Fix inverted arguments to serial_out in IRQ handler + - LP: #1117693 + * drm/i915: Invalidate the relocation presumed_offsets along the slow + path + - LP: #1117693 + * s390/time: fix sched_clock() overflow + - LP: #1117693 + * ARM: 7627/1: Predicate preempt logic on PREEMP_COUNT not PREEMPT alone + - LP: #1117693 + * ARM: 7628/1: head.S: map one extra section for the ATAG/DTB area + - LP: #1117693 + * staging: vt6656: Fix inconsistent structure packing + - LP: #1117693 + * 8250/16?50: Add support for Broadcom TruManage redirected serial port + - LP: #1117693 + * KVM: PPC: Emulate dcbf + - LP: #1117693 + * USB: option: blacklist network interface on ONDA MT8205 4G LTE + - LP: #1117693 + * USB: option: add TP-LINK HSUPA Modem MA180 + - LP: #1117693 + * USB: io_ti: Fix NULL dereference in chase_port() + - LP: #1117693 + * usb: dwc3: gadget: fix ep->maxburst for ep0 + - LP: #1117693 + * intel_idle: Don't register CPU notifier if we are not running. + - LP: #1117693 + * ACPI / cpuidle: Fix NULL pointer issues when cpuidle is disabled + - LP: #1117693 + * ACPI / processor: Get power info before updating the C-states + - LP: #1117693 + * ARM: DMA: Fix struct page iterator in dma_cache_maint() to work with + sparsemem + - LP: #1117693 + * evm: checking if removexattr is not a NULL + - LP: #1117693 + * ALSA: hda - Add Conexant CX20751/2/3/4 codec support + - LP: #1117693 + * ALSA: hda/conexant - Correct vendor IDs for new codecs + - LP: #1117693 + * ALSA: hda - Add Conexant CX20755/20756/20757 codec IDs + - LP: #1117693 + * ftrace: Be first to run code modification on modules + - LP: #1117693 + * USB: UHCI: fix IRQ race during initialization + - LP: #1117693 + * fs/cifs/cifs_dfs_ref.c: fix potential memory leakage + - LP: #1117693 + * Bluetooth: Fix incorrect strncpy() in hidp_setup_hid() + - LP: #1117693 + * ath9k_htc: Fix memory leak + - LP: #1117693 + * ath9k: do not link receive buffers during flush + - LP: #1117693 + * ath9k: fix double-free bug on beacon generate failure + - LP: #1117693 + * brcmsmac: increase timer reference count for new timers only + - LP: #1117693 + * efi, x86: Pass a proper identity mapping in efi_call_phys_prelog + - LP: #1117693 + * ath9k_hw: fix calibration issues on chainmask that don't include chain + 0 + - LP: #1117693 + * ath9k_hw: fix chain swap setting when setting rx chainmask to 5 + - LP: #1117693 + * mwifiex: fix typo in PCIe adapter NULL check + - LP: #1117693 + * drm/i915: Remove the MI_FLUSH_ENABLE setting. + - LP: #1117693 + * drm/i915: Correct the bit number for the MI_FLUSH_ENABLE. + - LP: #1117693 + * drm/i915: Disable AsyncFlip performance optimisations + - LP: #1117693 + * drm/i915: GFX_MODE Flush TLB Invalidate Mode must be '1' for scanline + waits + - LP: #1117693 + * iommu/intel: disable DMAR for g4x integrated gfx + - LP: #1117693 + * drm/i915: dump UTS_RELEASE into the error_state + - LP: #1117693 + * drm/radeon: fix a rare case of double kfree + - LP: #1117693 + * x86/msr: Add capabilities check + - LP: #1117693 + * can: c_can: fix invalid error codes + - LP: #1117693 + * can: ti_hecc: fix invalid error codes + - LP: #1117693 + * can: pch_can: fix invalid error codes + - LP: #1117693 + * ALSA: usb-audio: fix invalid length check for RME and other UAC 2 + devices + - LP: #1117693 + * smp: Fix SMP function call empty cpu mask race + - LP: #1117693 + * IOMMU, AMD Family15h Model10-1Fh erratum 746 Workaround + - LP: #1117693 + * xfs: Fix possible use-after-free with AIO + - LP: #1117693 + * ALSA: hda - Fix non-snoop page handling + - LP: #1117693 + * EDAC: Test correct variable in ->store function + - LP: #1117693 + * efi: Make 'efi_enabled' a function to query EFI facilities + - LP: #1117693 + * samsung-laptop: Disable on EFI hardware + - LP: #1117693 + * NFS: Don't silently fail setattr() requests on mountpoints + - LP: #1117693 + * NFSv4.1: Handle NFS4ERR_DELAY when resetting the NFSv4.1 session + - LP: #1117693 + * x86/Sandy Bridge: reserve pages when integrated graphics is present + - LP: #1117693 + * x86/Sandy Bridge: mark arrays in __init functions as __initconst + - LP: #1117693 + * x86/Sandy Bridge: Sandy Bridge workaround depends on CONFIG_PCI + - LP: #1117693 + * ahci: Add identifiers for ASM106x devices + - LP: #1117693 + * sd: Reshuffle init_sd to avoid crash + - LP: #1117693 + * drivers/firmware/dmi_scan.c: check dmi version when get system uuid + - LP: #1117693 + * drivers/firmware/dmi_scan.c: fetch dmi version from SMBIOS if it exists + - LP: #1117693 + * drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled + - LP: #1117693 + * x86: Use enum instead of literals for trap values + - LP: #1117693 + * staging: comedi: Kconfig: COMEDI_NI_AT_A2150 should select COMEDI_FC + - LP: #1117693 + * staging: comedi: don't hijack hardware device private data + - LP: #1117693 + * intel-iommu: Prevent devices with RMRRs from being placed into SI + Domain + - LP: #1117693 + * ALSA: usb - fix race in creation of M-Audio Fast track pro driver + - LP: #1095315, #1117693 + * igb: release already assigned MSI-X interrupts if setup fails + - LP: #1117693 + * drbd: add missing part_round_stats to _drbd_start_io_acct + - LP: #1117693 + * staging: usbip: changed function return type to void + - LP: #1117693 + * x86, efi: Set runtime_version to the EFI spec revision + - LP: #1117693 + * printk: fix buffer overflow when calling log_prefix function from + call_console_drivers + - LP: #1117693 + * Linux 3.2.38 + - LP: #1117693 + * xen: Fix stack corruption in xen_failsafe_callback for 32bit PVOPS + guests. + - LP: #1102374 + - CVE-2013-0190 + * xhci: Fix isoc TD encoding. + - LP: #1131218 + * xhci: Fix TD size for isochronous URBs. + - LP: #1131218 + * USB: XHCI: fix memory leak of URB-private data + - LP: #1131218 + * usb: Prevent dead ports when xhci is not enabled + - LP: #1131218 + * sched/rt: Use root_domain of rt_rq not current processor + - LP: #1131218 + * rtlwifi: Fix the usage of the wrong variable in usb.c + - LP: #1131218 + * drm/radeon: add quirk for RV100 board + - LP: #1131218 + * USB: qcserial: add Telit Gobi QDL device + - LP: #1131218 + * USB: option: add support for Telit LE920 + - LP: #1131218 + * mwifiex: fix incomplete scan in case of IE parsing error + - LP: #1131218 + * USB: EHCI: fix bug in scheduling periodic split transfers + - LP: #1131218 + * x86-64: Replace left over sti/cli in ia32 audit exit code + - LP: #1131218 + * Bluetooth: Fix handling of unexpected SMP PDUs + - LP: #1131218 + * drm/radeon: Calling object_unrefer() when creating fb failure + - LP: #1131218 + * drm/radeon: prevent crash in the ring space allocation + - LP: #1131218 + * can: c_can: Set reserved bit in IFx_MASK2 to 1 on write + - LP: #1131218 + * USB: ftdi_sio: add PID/VID entries for ELV WS 300 PC II + - LP: #1131218 + * USB: option: add Changhong CH690 + - LP: #1131218 + * USB: ftdi_sio: add Zolix FTDI PID + - LP: #1131218 + * USB: storage: Define a new macro for USB storage match rules + - LP: #1131218 + * USB: storage: optimize to match the Huawei USB storage devices and + support new switch command + - LP: #1131218 + * nilfs2: fix fix very long mount time issue + - LP: #1131218 + * drivers/rtc/rtc-isl1208.c: call rtc_update_irq() from the alarm irq + handler + - LP: #1131218 + * drivers/rtc/rtc-pl031.c: fix the missing operation on enable + - LP: #1131218 + * virtio_console: Don't access uninitialized data. + - LP: #1131218 + * wireless: rt2x00: rt{2500,73}usb.c put back duplicate id + - LP: #1131218 + * Wireless: rt2x00: Add device id for Sweex LW323 to rt2800usb.c + - LP: #1131218 + * rt2800usb: Add support for 2001:3c1e (D-Link DWA-125 rev B1) USB Wi-Fi + adapter + - LP: #1131218 + * gspca_kinect: add Kinect for Windows USB id + - LP: #1131218 + * ahci: support the STA2X11 I/O Hub + - LP: #1131218 + * ahci: Add support for Enmotus Bobcat device. + - LP: #1131218 + * ptrace/x86: Introduce set_task_blockstep() helper + - LP: #1131218 + * ptrace/x86: Partly fix set_task_blockstep()->update_debugctlmsr() logic + - LP: #1131218 + * ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL + - LP: #1131218 + * Bluetooth: Fix sending HCI commands after reset + - LP: #1131218 + * HID: usbhid: quirk for Formosa IR receiver + - LP: #1131218 + * kernel/resource.c: fix stack overflow in __reserve_region_with_split() + - LP: #1131218 + * net: prevent setting ttl=0 via IP_TTL + - LP: #1131218 + * ipv6: fix the noflags test in addrconf_get_prefix_route + - LP: #1131218 + * MAINTAINERS: Stephen Hemminger email change + - LP: #1131218 + * ipv6: fix header length calculation in ip6_append_data() + - LP: #1131218 + * isdn/gigaset: fix zero size border case in debug dump + - LP: #1131218 + * netxen: fix off by one bug in netxen_release_tx_buffer() + - LP: #1131218 + * r8169: remove the obsolete and incorrect AMD workaround + - LP: #1131218 + * net: loopback: fix a dst refcounting issue + - LP: #1131218 + * pktgen: correctly handle failures when adding a device + - LP: #1131218 + * ipv6: do not create neighbor entries for local delivery + - LP: #1131218 + * packet: fix leakage of tx_ring memory + - LP: #1131218 + * atm/iphase: rename fregt_t -> ffreg_t + - LP: #1131218 + * sctp: refactor sctp_outq_teardown to insure proper re-initalization + - LP: #1131218 + * net: sctp: sctp_setsockopt_auth_key: use kzfree instead of kfree + - LP: #1131218 + * net: sctp: sctp_endpoint_free: zero out secret key data + - LP: #1131218 + * tcp: frto should not set snd_cwnd to 0 + - LP: #1131218 + * tcp: fix for zero packets_in_flight was too broad + - LP: #1131218 + * tcp: fix MSG_SENDPAGE_NOTLAST logic + - LP: #1131218 + * tg3: Avoid null pointer dereference in tg3_interrupt in netconsole mode + - LP: #1131218 + * tg3: Fix crc errors on jumbo frame receive + - LP: #1131218 + * x86/xen: don't assume %ds is usable in xen_iret for 32-bit PVOPS. + - LP: #1131218 + * Linux 3.2.39 + - LP: #1131218 + * vhost: fix length for cross region descriptor + - LP: #1130951 + - CVE-2013-0311 + + -- Brad Figg Wed, 27 Feb 2013 07:05:08 -0800 + +linux (3.2.0-38.61) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1130044 + + [ Upstream Kernel Changes ] + + * ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up() + - LP: #1129192 + - CVE-2013-0871 + * ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL + - LP: #1129192 + - CVE-2013-0871 + * wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED + task + - LP: #1129192 + - CVE-2013-0871 + + -- Luis Henriques Tue, 19 Feb 2013 10:47:19 +0000 + +linux (3.2.0-38.60) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1124013 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: fix i915 regression after commit 9594e7e + - LP: #1119809 + + -- Luis Henriques Wed, 13 Feb 2013 11:19:53 +0000 + +linux (3.2.0-38.59) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1116240 + + [ Andy Whitcroft ] + + * [Config] enable various HVC consoles + - LP: #1102206 + + [ Herton Ronaldo Krzesinski ] + + * [Config] updateconfigs for 3.2.36 stable update + + [ Stefan Bader ] + + * (config) Move 9p modules into generic package + - LP: #1107658 + + [ Upstream Kernel Changes ] + + * Revert "device_cgroup: fix RCU usage" + - LP: #1096966 + * Revert "sched, autogroup: Stop going ahead if autogroup is disabled" + - LP: #1096966 + * Revert "ath9k_hw: Update AR9003 high_power tx gain table" + - LP: #1096966 + * Revert "mm: vmscan: fix endless loop in kswapd balancing" + - LP: #1096966 + * freezer: PF_FREEZER_NOSIG should be cleared along with PF_NOFREEZE + - LP: #1096966 + * i915: Quirk no_lvds on Gigabyte GA-D525TUD ITX motherboard + - LP: #1096966 + * drm/i915: Add no-lvds quirk for Supermicro X7SPA-H + - LP: #1096966 + * ACPI: missing break + - LP: #1096966 + * workqueue: convert BUG_ON()s in __queue_delayed_work() to + WARN_ON_ONCE()s + - LP: #1096966 + * hwmon: (coretemp) Improve support of recent Atom CPU models + - LP: #1096966 + * hwmon: (coretemp) Add support for Atom D2000 and N2000 series CPU + models + - LP: #1096966 + * hwmon: (coretemp) Improve support for TjMax detection on Atom CPUs + - LP: #1096966 + * hwmon: (coretemp) Add support for Atom CE4110/4150/4170 + - LP: #1096966 + * ARM: 7566/1: vfp: fix save and restore when running on pre-VFPv3 and + CONFIG_VFPv3 set + - LP: #1096966 + * sata_svw: check DMA start bit before reset + - LP: #1096966 + * drivers/leds/leds-lp5521.c: fix typo + - LP: #1096966 + * drivers/leds/leds-lp5521.c: ret may be uninitialized + - LP: #1096966 + * drivers/leds/leds-lp5521.c: fix lp5521_read() error handling + - LP: #1096966 + * scsi: aha152x: Fix sparse warning and make printing pointer address + more portable. + - LP: #1096966 + * ALSA: hda - Fix missing beep on ASUS X43U notebook + - LP: #1096966 + * i7300_edac: Fix error flag testing + - LP: #1096966 + * Revert misapplied "mmc: sh-mmcif: avoid oops on spurious interrupts" + - LP: #1096966 + * tmpfs: fix shared mempolicy leak + - LP: #1096966 + * powerpc: fix wii_memory_fixups() compile error on 3.0.y tree + - LP: #1096966 + * s390/kvm: dont announce RRBM support + - LP: #1096966 + * cgroup: cgroup_subsys->fork() should be called after the task is added + to css_set + - LP: #1096966 + * freezer: add missing mb's to freezer_count() and freezer_should_skip() + - LP: #1096966 + * mm: add kmap_to_page() + - LP: #1096966 + * mm: highmem: export kmap_to_page for modules + - LP: #1096966 + * virtio: 9p: correctly pass physical address to userspace for high pages + - LP: #1096966 + * virtio: force vring descriptors to be allocated from lowmem + - LP: #1096966 + * ath9k_hw: Enable hw PLL power save for AR9462 + - LP: #1096966 + * KVM: PPC: 44x: fix DCR read/write + - LP: #1096966 + * usb: gadget: network: fix bind() error path + - LP: #1096966 + * usb: gadget: midi: free hs descriptors + - LP: #1096966 + * usb: gadget: phonet: free requests in pn_bind()'s error path + - LP: #1096966 + * usb: gadget: uvc: fix error path in uvc_function_bind() + - LP: #1096966 + * x86: hpet: Fix masking of MSI interrupts + - LP: #1096966 + * usb: musb: cppi_dma: export cppi_interrupt() + - LP: #1096966 + * nfs: fix wrong object type in lockowner_slab + - LP: #1096966 + * iscsi-target: Always send a response before terminating iSCSI + connection + - LP: #1096966 + * ext4: fix memory leak in ext4_xattr_set_acl()'s error path + - LP: #1096966 + * ARM: mm: use pteval_t to represent page protection values + - LP: #1096966 + * USB: fix endpoint-disabling for failed config changes + - LP: #1096966 + * USB: EHCI: bugfix: urb->hcpriv should not be NULL + - LP: #1096966 + * genirq: Always force thread affinity + - LP: #1096966 + * xhci: Fix conditional check in bandwidth calculation. + - LP: #1096966 + * xHCI: Fix TD Size calculation on 1.0 hosts. + - LP: #1096966 + * xhci: fix null-pointer dereference when destroying half-built segment + rings + - LP: #1096966 + * xhci: Extend Fresco Logic MSI quirk. + - LP: #1096966 + * usb: host: xhci: Stricter conditional for Z1 system models for + Compliance Mode Patch + - LP: #1096966 + * Staging: bcm: Create and initialize new device id in InterfaceInit + - LP: #1096966 + * Staging: bcm: Add two products and remove an existing product. + - LP: #1096966 + * rcu: Fix batch-limit size problem + - LP: #1096966 + * ext4: init pagevec in ext4_da_block_invalidatepages + - LP: #1096966 + * powerpc: Fix CONFIG_RELOCATABLE=y CONFIG_CRASH_DUMP=n build + - LP: #1096966 + * ftrace: Clear bits properly in reset_iter_read() + - LP: #1096966 + * ACPI / battery: Correct battery capacity values on Thinkpads + - LP: #1096966 + * cgroup: remove incorrect dget/dput() pair in cgroup_create_dir() + - LP: #1096966 + * Bluetooth: Add support for BCM20702A0 [04ca, 2003] + - LP: #1096966 + * Bluetooth: Add support for BCM20702A0 [0b05, 17b5] + - LP: #1096966 + * regulator: wm831x: Set the new rather than old value for DVS VSEL + - LP: #1096966 + * drm: fix documentation for drm_crtc_set_mode() + - LP: #1096966 + * mfd: Only unregister platform devices allocated by the mfd core + - LP: #1096966 + * NFS: Add sequence_priviliged_ops for nfs4_proc_sequence() + - LP: #1096966 + * drm/i915: make the panel fitter work on pipes B and C on IVB + - LP: #1096966 + * USB: add new zte 3g-dongle's pid to option.c + - LP: #1096966 + * ACPI / PM: Add Sony Vaio VPCEB1S1E to nonvs blacklist. + - LP: #1096966 + * nfsd: fix v4 reply caching + - LP: #1096966 + * USB: OHCI: workaround for hardware bug: retired TDs not added to the + Done Queue + - LP: #1096966 + * USB: option: blacklist network interface on Huawei E173 + - LP: #1096966 + * USB: cp210x: add Virtenio Preon32 device id + - LP: #1096966 + * usb: ftdi_sio: fixup BeagleBone A5+ quirk + - LP: #1096966 + * USB: ftdi_sio: Add support for Newport AGILIS motor drivers + - LP: #1096966 + * iscsit: use GFP_ATOMIC under spin lock + - LP: #1096966 + * sata_promise: fix hardreset lockdep error + - LP: #1096966 + * xhci: Add Lynx Point LP to list of Intel switchable hosts + - LP: #1096966 + * USB: mark uas driver as BROKEN + - LP: #1096966 + * can: Do not call dev_put if restart timer is running upon close + - LP: #1096966 + * prevent stack buffer overflow in host_reset + - LP: #1096966 + * mvsas: fix undefined bit shift + - LP: #1096966 + * qla2xxx: Test and clear FCPORT_UPDATE_NEEDED atomically. + - LP: #1096966 + * ACPI: do acpisleep dmi check when CONFIG_ACPI_SLEEP is set + - LP: #1096966 + * acpi/video_detect: blacklist samsung x360 + - LP: #1096966 + * ACPI / video: Add "Asus UL30VT" to ACPI video detect blacklist + - LP: #1096966 + * ACPI / PNP: Do not crash due to stale pointer use during system resume + - LP: #1096966 + * ring-buffer: Fix NULL pointer if rb_set_head_page() fails + - LP: #1096966 + * firewire: net: Fix handling of fragmented multicast/broadcast packets. + - LP: #1096966 + * HID: apple: Add Apple wireless keyboard 2011 ANSI PID + - LP: #1096966 + * HID: Add Apple wireless keyboard 2011 ANSI to special driver list + - LP: #1096966 + * libata: set dma_mode to 0xff in reset + - LP: #1096966 + * s390/cio: fix pgid reserved check + - LP: #1096966 + * Bluetooth: Add missing lock nesting notation + - LP: #1096966 + * ALSA: usb-audio: Avoid autopm calls after disconnection + - LP: #1096966 + * ALSA: usb-audio: Fix missing autopm for MIDI input + - LP: #1096966 + * ACPI / video: ignore BIOS initial backlight value for HP Folio 13-2000 + - LP: #1096966 + * x86,AMD: Power driver support for AMD's family 16h processors + - LP: #1096966 + * target/file: Fix 32-bit highmem breakage for SGL -> iovec mapping + - LP: #1096966 + * drm/i915: Close race between processing unpin task and queueing the + flip + - LP: #1096966 + * pnpacpi: fix incorrect TEST_ALPHA() test + - LP: #1096966 + * drm/radeon/kms: use frac fb div on APUs + - LP: #1096966 + * drm/radeon/dce32+: use fractional fb dividers for high clocks + - LP: #1096966 + * drm/radeon: fix eDP clk and lane setup for scaled modes + - LP: #1096966 + * regmap: debugfs: Avoid overflows for very small reads + - LP: #1096966 + * ath9k: ar9003: fix OTP register offsets for AR9340 + - LP: #1096966 + * bcma: mips: fix clearing device IRQ + - LP: #1096966 + * ath9k_hw: Fix signal strength / channel noise reporting + - LP: #1096966 + * drm/i915: drop unnecessary check from fdi_link_train code + - LP: #1096966 + * drm/i915: disable cpt phase pointer fdi rx workaround + - LP: #1096966 + * nfsd: avoid permission checks on EXCLUSIVE_CREATE replay + - LP: #1096966 + * iwlwifi: don't handle masked interrupt + - LP: #1096966 + * mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls + - LP: #1096966 + * x86, 8042: Enable A20 using KBC to fix S3 resume on some MSI laptops + - LP: #1096966 + * solos-pci: fix double-free of TX skb in DMA mode + - LP: #1096966 + * ALSA: hda - Add stereo-dmic fixup for Acer Aspire One 522 + - LP: #1096966 + * drm/radeon: fix amd afusion gpu setup aka sumo v2 + - LP: #1096966 + * NFS: avoid NULL dereference in nfs_destroy_server + - LP: #1096966 + * target/tcm_fc: fix the lockdep warning due to inconsistent lock state + - LP: #1096966 + * mtd: nand: gpmi: reset BCH earlier, too, to avoid NAND startup problems + - LP: #1096966 + * ALSA: hda - Fix pin configuration of HP Pavilion dv7 + - LP: #1096966 + * MIPS: Fix poweroff failure when HOTPLUG_CPU configured. + - LP: #1096966 + * ALSA: hda - Always turn on pins for HDMI/DP + - LP: #1096966 + * fix Null pointer dereference on disk error + - LP: #1096966 + * i2400m: add Intel 6150 device IDs + - LP: #1096966 + * Input: walkera0701 - fix crash on startup + - LP: #1096966 + * ALSA: hda - Fix the wrong pincaps set in ALC861VD dallas/hp fixup + - LP: #1096966 + * proc: pid/status: show all supplementary groups + - LP: #1096966 + * nfsd4: fix oops on unusual readlike compound + - LP: #1096966 + * CRIS: fix I/O macros + - LP: #1096966 + * ARM: missing ->mmap_sem around find_vma() in swp_emulate.c + - LP: #1096966 + * intel-iommu: Free old page tables before creating superpage + - LP: #1096966 + * vfs: d_obtain_alias() needs to use "/" as default name. + - LP: #1096966 + * SGI-XP: handle non-fatal traps + - LP: #1096966 + * dm persistent data: rename node to btree_node + - LP: #1096966 + * dm ioctl: prevent unsafe change to dm_ioctl data_size + - LP: #1096966 + * drm/i915: do not ignore eDP bpc settings from vbt + - LP: #1096966 + * drm/i915: do not default to 18 bpp for eDP if missing from VBT + - LP: #1096966 + * bonding: fix race condition in bonding_store_slaves_active + - LP: #1096966 + * sctp: fix memory leak in sctp_datamsg_from_user() when copy from user + space fails + - LP: #1096966 + * sctp: fix -ENOMEM result with invalid user space pointer in sendto() + syscall + - LP: #1096966 + * ne2000: add the right platform device + - LP: #1096966 + * irda: sir_dev: Fix copy/paste typo + - LP: #1096966 + * ipv4: ip_check_defrag must not modify skb before unsharing + - LP: #1096966 + * usb/ipheth: Add iPhone 5 support + - LP: #1096966 + * iwlwifi: handle DMA mapping failures + - LP: #1096966 + * telephony: ijx: buffer overflow in ixj_write_cid() + - LP: #1096966 + * i82975x_edac: Fix dimm label initialization + - LP: #1096966 + * hpsa: gen8plus Smart Array IDs + - LP: #1096966 + * thp, memcg: split hugepage for memcg oom on cow + - LP: #1096966 + * udf: fix memory leak while allocating blocks during write + - LP: #1096966 + * staging: vt6656: [BUG] out of bound array reference in RFbSetPower. + - LP: #1096966 + * staging: vt6656: 64 bit fixes: use u32 for QWORD definition. + - LP: #1096966 + * staging: vt6656: 64 bit fixes : correct all type sizes + - LP: #1096966 + * staging: vt6656: 64 bit fixes: fix long warning messages. + - LP: #1096966 + * staging: vt6656: 64bit fixes: key.c/h change unsigned long to u32 + - LP: #1096966 + * staging: vt6656: 64bit fixes: vCommandTimerWait change calculation of + timer. + - LP: #1096966 + * ramoops: fix use of rounddown_pow_of_two() + - LP: #1096966 + * Linux 3.2.36 + - LP: #1096966 + * ext4: fix extent tree corruption caused by hole punch + - LP: #1100376 + * i915: ensure that VGA plane is disabled + - LP: #1100376 + * ext4: check dioread_nolock on remount + - LP: #1100376 + * jbd2: fix assertion failure in jbd2_journal_flush() + - LP: #1100376 + * hwmon: (lm73} Detect and report i2c bus errors + - LP: #1100376 + * ext4: do not try to write superblock on ro remount w/o journal + - LP: #1100376 + * PCI: Reduce Ricoh 0xe822 SD card reader base clock frequency to 50MHz + - LP: #1100376 + * mm: Fix PageHead when !CONFIG_PAGEFLAGS_EXTENDED + - LP: #1100376 + * cifs: adjust sequence number downward after signing NT_CANCEL request + - LP: #1100376 + * tmpfs mempolicy: fix /proc/mounts corrupting memory + - LP: #1100376 + * p54usb: add USB ID for T-Com Sinus 154 data II + - LP: #1100376 + * ath9k_hw: Fix RX gain initvals for AR9485 + - LP: #1100376 + * p54usb: add USBIDs for two more p54usb devices + - LP: #1100376 + * powerpc/vdso: Remove redundant locking in update_vsyscall_tz() + - LP: #1100376 + * powerpc: Add missing NULL terminator to avoid boot panic on PPC40x + - LP: #1100376 + * drm/radeon: add connector table for SAM440ep embedded board + - LP: #1100376 + * drm/radeon: add connector table for Mac G4 Silver + - LP: #1100376 + * drm/radeon: Properly handle DDC probe for DP bridges + - LP: #1100376 + * drm/nouveau: fix init with agpgart-uninorth + - LP: #1100376 + * video: mxsfb: fix crash when unblanking the display + - LP: #1100376 + * nfs: fix null checking in nfs_get_option_str() + - LP: #1100376 + * SUNRPC: Ensure that we free the rpc_task after cleanups are done + - LP: #1100376 + * ACPI / scan: Do not use dummy HID for system bus ACPI nodes + - LP: #1100376 + * mm: limit mmu_gather batching to fix soft lockups on !CONFIG_PREEMPT + - LP: #1100376 + * drivers/rtc/rtc-vt8500.c: correct handling of CR_24H bitfield + - LP: #1100376 + * drivers/rtc/rtc-vt8500.c: fix handling of data passed in struct + rtc_time + - LP: #1100376 + * udf: don't increment lenExtents while writing to a hole + - LP: #1100376 + * epoll: prevent missed events on EPOLL_CTL_MOD + - LP: #1100376 + * rt2x00: Don't let mac80211 send a BAR when an AMPDU subframe fails + - LP: #1100376 + * mac80211: introduce IEEE80211_HW_TEARDOWN_AGGR_ON_BAR_FAIL + - LP: #1100376 + * Revert: "rt2x00: Don't let mac80211 send a BAR when an AMPDU subframe + fails" + - LP: #1100376 + * ftrace: Do not function trace inlined functions + - LP: #1100376 + * sparc: huge_ptep_set_* functions need to call set_huge_pte_at() + - LP: #1100376 + * inet: Fix kmemleak in tcp_v4/6_syn_recv_sock and + dccp_v4/6_request_recv_sock + - LP: #1100376 + * net: sched: integer overflow fix + - LP: #1100376 + * tcp: implement RFC 5961 3.2 + - LP: #1100376 + * tcp: implement RFC 5961 4.2 + - LP: #1100376 + * tcp: refine SYN handling in tcp_validate_incoming + - LP: #1100376 + * tcp: tcp_replace_ts_recent() should not be called from + tcp_validate_incoming() + - LP: #1100376 + * tcp: RFC 5961 5.2 Blind Data Injection Attack Mitigation + - LP: #1100376 + * mvsas: Fix oops when ata commond timeout. + - LP: #1100376 + * RDMA/nes: Fix for crash when registering zero length MR for CQ + - LP: #1100376 + * RDMA/nes: Fix for terminate timer crash + - LP: #1100376 + * ACPI : do not use Lid and Sleep button for S5 wakeup + - LP: #1100376 + * aoe: do not call bdi_init after blk_alloc_queue + - LP: #1100376 + * Linux 3.2.37 + - LP: #1100376 + * tg3: Scale back code that modifies MRRS + - LP: #1102209 + * tg3: Recode PCI MRRS adjustment as a PCI quirk + - LP: #1102209 + * HID: Add suport for the brightness control keys on HP keyboards + - LP: #1007575 + * inotify, fanotify: replace fsnotify_put_group() with + fsnotify_destroy_group() + - LP: #1110605 + * fsnotify: introduce fsnotify_get_group() + - LP: #1110605 + * fsnotify: use reference counting for groups + - LP: #1110605 + * fsnotify: take groups mark_lock before mark lock + - LP: #1110605 + * fanotify: add an extra flag to mark_remove_from_mask that indicates + wheather a mark should be destroyed + - LP: #1110605 + * fsnotify: use a mutex instead of a spinlock to protect a groups mark + list + - LP: #1110605 + * audit: clean up refcounting in audit-tree + - LP: #1110605 + * fsnotify: pass group to fsnotify_destroy_mark() + - LP: #1110605 + * fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark() + - LP: #1110605 + * fsnotify: dont put marks on temporary list when clearing marks by group + - LP: #1110605 + * fsnotify: change locking order + - LP: #1110605 + * ALSA: usb-audio: Fix regression by disconnection-race-fix patch + - LP: #1097396 + + -- Luis Henriques Tue, 05 Feb 2013 16:27:04 +0000 + +linux (3.2.0-37.58) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1104061 + + [ Upstream Kernel Changes ] + + * Revert "fsnotify: change locking order" + - LP: #1101666 + * Revert "fsnotify: dont put marks on temporary list when clearing marks + by group" + - LP: #1101666 + * Revert "fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark()" + - LP: #1101666 + * Revert "fsnotify: pass group to fsnotify_destroy_mark()" + - LP: #1101666 + * Revert "fsnotify: use a mutex instead of a spinlock to protect a groups + mark list" + - LP: #1101666 + * Revert "fanotify: add an extra flag to mark_remove_from_mask that + indicates wheather a mark should be destroyed" + - LP: #1101666 + * Revert "fsnotify: take groups mark_lock before mark lock" + - LP: #1101666 + * Revert "fsnotify: use reference counting for groups" + - LP: #1101666 + * Revert "fsnotify: introduce fsnotify_get_group()" + - LP: #1101666 + + -- Luis Henriques Thu, 24 Jan 2013 13:03:39 +0000 + +linux (3.2.0-36.57) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1097389 + + [ Chris J Arges ] + + * Revert "SAUCE: fsnotify: dont put marks on temporary list when clearing + marks by group" + - LP: #1096137 + * Revert "SAUCE: fsnotify: introduce locked versions of + fsnotify_add_mark() and fsnotify_remove_mark()" + - LP: #1096137 + * Revert "SAUCE: fsnotify: pass group to fsnotify_destroy_mark()" + - LP: #1096137 + * Revert "SAUCE: fsnotify: use a mutex instead of a spinlock to protect a + groups mark list" + - LP: #1096137 + * Revert "SAUCE: fanotify: add an extra flag to mark_remove_from_mask + that indicates wheather a mark should be destroyed" + - LP: #1096137 + * Revert "SAUCE: fsnotify: take groups mark_lock before mark lock" + - LP: #1096137 + * Revert "SAUCE: fsnotify: use reference counting for groups" + - LP: #1096137 + * Revert "SAUCE: fsnotify: introduce fsnotify_get_group()" + - LP: #1096137 + + [ Upstream Kernel Changes ] + + * fsnotify: introduce fsnotify_get_group() + - LP: #1096137 + * fsnotify: use reference counting for groups + - LP: #1096137 + * fsnotify: take groups mark_lock before mark lock + - LP: #1096137 + * fanotify: add an extra flag to mark_remove_from_mask that indicates + wheather a mark should be destroyed + - LP: #1096137 + * fsnotify: use a mutex instead of a spinlock to protect a groups mark + list + - LP: #1096137 + * fsnotify: pass group to fsnotify_destroy_mark() + - LP: #1096137 + * fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark() + - LP: #1096137 + * fsnotify: dont put marks on temporary list when clearing marks by group + - LP: #1096137 + * fsnotify: change locking order + - LP: #1096137 + + -- Luis Henriques Tue, 08 Jan 2013 18:36:32 +0000 + +linux (3.2.0-36.56) precise-proposed; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1095351 + + [ Chris J Arges ] + + * SAUCE: add eeprom_bad_csum_allow module parameter + - LP: #1070182 + + [ Colin Ian King ] + + * SAUCE: samsung-laptop: disable in UEFI mode + - LP: #1040557 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: usb: cdc-wdm: fix regression on buffer deallocation + - LP: #1074157 + + [ Kees Cook ] + + * SAUCE: exec: do not leave bprm->interp on stack + - LP: #1068888 + - CVE-2012-4530 + + [ Leann Ogasawara ] + + * Add ceph to virtual kernel flavor + - LP: #1063784 + + [ Lino Sanfilippo ] + + * SAUCE: fsnotify: introduce fsnotify_get_group() + - LP: #922906 + * SAUCE: fsnotify: use reference counting for groups + - LP: #922906 + * SAUCE: fsnotify: take groups mark_lock before mark lock + - LP: #922906 + * SAUCE: fanotify: add an extra flag to mark_remove_from_mask that + indicates wheather a mark should be destroyed + - LP: #922906 + * SAUCE: fsnotify: use a mutex instead of a spinlock to protect a groups + mark list + - LP: #922906 + * SAUCE: fsnotify: pass group to fsnotify_destroy_mark() + - LP: #922906 + * SAUCE: fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark() + - LP: #922906 + * SAUCE: fsnotify: dont put marks on temporary list when clearing marks + by group + - LP: #922906 + + [ Tomas Hozza ] + + * SAUCE: tools: hv: Netlink source address validation allows DoS + - LP: #1084777 + - CVE-2012-5532 + + [ Upstream Kernel Changes ] + + * drm/i915: add Ivy Bridge GT2 Server entries + - LP: #1087302 + * drm/i915: EBUSY status handling added to i915_gem_fault(). + - LP: #1087302 + * UBIFS: introduce categorized lprops counter + - LP: #1087865 + * UBIFS: fix mounting problems after power cuts + - LP: #1087865 + * futex: Handle futex_pi OWNER_DIED take over correctly + - LP: #1087865 + * mac80211: sync acccess to tx_filtered/ps_tx_buf queues + - LP: #1087865 + * ASoC: wm8978: pll incorrectly configured when codec is master + - LP: #1087865 + * device_cgroup: fix RCU usage + - LP: #1087865 + * ASoC: dapm: Use card_list during DAPM shutdown + - LP: #1087865 + * s390/signal: set correct address space control + - LP: #1087865 + * wireless: allow 40 MHz on world roaming channels 12/13 + - LP: #1087865 + * drm/i915/sdvo: clean up connectors on intel_sdvo_init() failures + - LP: #1087865 + * s390/gup: add missing TASK_SIZE check to get_user_pages_fast() + - LP: #1087865 + * USB: option: add Novatel E362 and Dell Wireless 5800 USB IDs + - LP: #1087865 + * USB: option: add Alcatel X220/X500D USB IDs + - LP: #1087865 + * drm/radeon: fix logic error in atombios_encoders.c + - LP: #1087865 + * ttm: Clear the ttm page allocated from high memory zone correctly + - LP: #1087865 + * memcg: oom: fix totalpages calculation for memory.swappiness==0 + - LP: #1087865 + * tmpfs: change final i_blocks BUG to WARNING + - LP: #1087865 + * x86: Exclude E820_RESERVED regions and memory holes above 4 GB from + direct mapping. + - LP: #1087865 + * x86, mm: Find_early_table_space based on ranges that are actually being + mapped + - LP: #1087865 + * x86, mm: Undo incorrect revert in arch/x86/mm/init.c + - LP: #1087865 + * netfilter: Mark SYN/ACK packets as invalid from original direction + - LP: #1087865 + * netfilter: Validate the sequence number of dataless ACK packets as well + - LP: #1087865 + * netfilter: nf_nat: don't check for port change on ICMP tuples + - LP: #1087865 + * ipv4: avoid undefined behavior in do_ip_setsockopt() + - LP: #1087865 + * ipv6: setsockopt(IPIPPROTO_IPV6, IPV6_MINHOPCOUNT) forgot to set return + value + - LP: #1087865 + * net: correct check in dev_addr_del() + - LP: #1087865 + * net-rps: Fix brokeness causing OOO packets + - LP: #1087865 + * usb: use usb_serial_put in usb_serial_probe errors + - LP: #1087865 + * PCI : Calculate right add_size + - LP: #1087865 + * Input: i8042 - also perform controller reset when suspending + - LP: #1087865 + * ixgbe: add support for new 82599 device id + - LP: #1087865 + * ixgbe: add support for X540-AT1 + - LP: #1087865 + * drm/i915: Check VBIOS value for determining LVDS dual channel mode, too + - LP: #1087865 + * get_dvb_firmware: fix download site for tda10046 firmware + - LP: #1087865 + * m68k: fix sigset_t accessor functions + - LP: #1087865 + * HID: add quirk for Freescale i.MX28 ROM recovery + - LP: #1087865 + * brcm80211: smac: only print block-ack timeout message at trace level + - LP: #1087865 + * bas_gigaset: fix pre_reset handling + - LP: #1087865 + * GFS2: Test bufdata with buffer locked and gfs2_log_lock held + - LP: #1087865 + * ptp: update adjfreq callback description + - LP: #1087865 + * watchdog: using u64 in get_sample_period() + - LP: #1087865 + * x86, amd: Disable way access filter on Piledriver CPUs + - LP: #1087865 + * mtd: ofpart: Fix incorrect NULL check in parse_ofoldpart_partitions() + - LP: #1087865 + * mtd: slram: invalid checking of absolute end address + - LP: #1087865 + * jffs2: Fix lock acquisition order bug in jffs2_write_begin + - LP: #1087865 + * isci: copy fis 0x34 response into proper buffer + - LP: #1087865 + * mac80211: deinitialize ibss-internals after emptiness check + - LP: #1087865 + * fix virtual aliasing issue in get_shared_area() + - LP: #1087865 + * rtlwifi: rtl8192cu: Add new USB ID + - LP: #1087865 + * mwifiex: fix system hang issue in cmd timeout error case + - LP: #1087865 + * mwifiex: report error to MMC core if we cannot suspend + - LP: #1087865 + * xfs: drop buffer io reference when a bad bio is built + - LP: #1087865 + * ALSA: ua101, usx2y: fix broken MIDI output + - LP: #1087865 + * sparc64: not any error from do_sigaltstack() should fail rt_sigreturn() + - LP: #1087865 + * reiserfs: Fix lock ordering during remount + - LP: #1087865 + * reiserfs: Protect reiserfs_quota_on() with write lock + - LP: #1087865 + * reiserfs: Protect reiserfs_quota_write() with write lock + - LP: #1087865 + * reiserfs: Move quota calls out of write lock + - LP: #1087865 + * md: Reassigned the parameters if read_seqretry returned true in func + md_is_badblock. + - LP: #1087865 + * md: Avoid write invalid address if read_seqretry returned true. + - LP: #1087865 + * drm/radeon: properly track the crtc not_enabled case + evergreen_mc_stop() + - LP: #1087865 + * radeon: add AGPMode 1 quirk for RV250 + - LP: #1087865 + * x86-32: Fix invalid stack address while in softirq + - LP: #1087865 + * x86-32: Export kernel_stack_pointer() for modules + - LP: #1087865 + * x86, microcode, AMD: Add support for family 16h processors + - LP: #1087865 + * ALSA: hda - Add new codec ALC283 ALC290 support + - LP: #1087865 + * ALSA: hda - Add support for Realtek ALC292 + - LP: #1081466, #1087865 + * selinux: fix sel_netnode_insert() suspicious rcu dereference + - LP: #1087865 + * Dove: Attempt to fix PMU/RTC interrupts + - LP: #1087865 + * Dove: Fix irq_to_pmu() + - LP: #1087865 + * ARM: Kirkwood: Update PCI-E fixup + - LP: #1087865 + * fix user-triggerable panic on parisc + - LP: #1087865 + * dm: fix deadlock with request based dm and queue request_fn recursion + - LP: #1087865 + * block: Don't access request after it might be freed + - LP: #1087865 + * jbd: Fix lock ordering bug in journal_unmap_buffer() + - LP: #1087865 + * can: bcm: initialize ifindex for timeouts without previous frame + reception + - LP: #1087865 + * futex: avoid wake_futex() for a PI futex_q + - LP: #1087865 + * mm/vmemmap: fix wrong use of virt_to_page + - LP: #1087865 + * mm: vmscan: fix endless loop in kswapd balancing + - LP: #1087865 + * mm: soft offline: split thp at the beginning of soft_offline_page() + - LP: #1087865 + * workqueue: exit rescuer_thread() as TASK_RUNNING + - LP: #1087865 + * intel_idle: initial IVB support + - LP: #1087865 + * intel_idle: enable IVB Xeon support + - LP: #1087865 + * Linux 3.2.35 + - LP: #1087865 + * MISC: hpilo, remove pci_disable_device + - LP: #1087860 + * asix: Adds support for Lenovo 10/100 USB dongle. + - LP: #1087480 + * KVM: x86: invalid opcode oops on SET_SREGS with OSXSAVE bit set + (CVE-2012-4461) + - LP: #1089604 + - CVE-2012-4461 + * exec: use -ELOOP for max recursion depth + - LP: #1068888 + - CVE-2012-4530 + + -- Brad Figg Wed, 02 Jan 2013 12:25:14 -0800 + +linux (3.2.0-35.55) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1086856 + + [ Andy Whitcroft ] + + * Revert "SAUCE: ata_piix: add a disable_driver option" + - LP: #1079084 + * Revert "SAUCE: ata_piix: defer disks to the Hyper-V drivers by default" + - LP: #1079084 + * SAUCE: ata_piix: add a disable_driver option + - LP: #1079084, #994870 + + [ Upstream Kernel Changes ] + + * libata: add a host flag to ignore detected ATA devices + - LP: #1079084 + * ata_piix: defer disks to the Hyper-V drivers by default + - LP: #1079084, #929545, #942316 + + -- Luis Henriques Wed, 05 Dec 2012 16:37:45 +0000 + +linux (3.2.0-35.54) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1086349 + + [ Kees Cook ] + + * Revert "SAUCE: SECCOMP: audit: always report seccomp violations" + - LP: #1079469 + + [ Luis Henriques ] + + * SAUCE: SECCOMP: audit: fix build on archs without CONFIG_AUDITSYSCALL + - LP: #1079469 + + [ Upstream Kernel Changes ] + + * seccomp: forcing auditing of kill condition + - LP: #1079469 + * Bluetooth: Avoid calling undefined smp_conn_security() + - LP: #1081676 + * x86: Remove the ancient and deprecated disable_hlt() and enable_hlt() + facility + - LP: #1081676 + * drm/nouveau: silence modesetting spam on pre-gf8 chipsets + - LP: #1081676 + * drm/nouveau: fix suspend/resume when in headless mode + - LP: #1081676 + * drm/nouveau: headless mode by default if pci class != vga display + - LP: #1081676 + * nfsd: add get_uint for u32's + - LP: #1081676 + * ALSA: PCM: Fix some races at disconnection + - LP: #1081676 + * ALSA: usb-audio: Fix races at disconnection + - LP: #1081676 + * ALSA: usb-audio: Use rwsem for disconnect protection + - LP: #1081676 + * ALSA: usb-audio: Fix races at disconnection in mixer_quirks.c + - LP: #1081676 + * ALSA: Add a reference counter to card instance + - LP: #1081676 + * ALSA: Avoid endless sleep after disconnect + - LP: #1081676 + * drm/radeon: fix typo in evergreen_mc_resume() + - LP: #1081676 + * USB: mos7840: remove unused variable + - LP: #1081676 + * rtnetlink: Fix problem with buffer allocation + - LP: #1081676 + * rtnetlink: fix rtnl_calcit() and rtnl_dump_ifinfo() + - LP: #1081676 + * gpio-timberdale: fix a potential wrapping issue + - LP: #1081676 + * cfg80211: fix antenna gain handling + - LP: #1081676 + * drm/i915: fix overlay on i830M + - LP: #1081676 + * drm/i915: fixup infoframe support for sdvo + - LP: #1081676 + * drm/i915: clear the entire sdvo infoframe buffer + - LP: #1081676 + * crypto: cryptd - disable softirqs in cryptd_queue_worker to prevent + data corruption + - LP: #1081676 + * ARM: at91: at91sam9g10: fix SOC type detection + - LP: #1081676 + * ARM: at91/i2c: change id to let i2c-gpio work + - LP: #1081676 + * mac80211: Only process mesh config header on frames that RA_MATCH + - LP: #1081676 + * mac80211: don't inspect Sequence Control field on control frames + - LP: #1081676 + * mac80211: fix SSID copy on IBSS JOIN + - LP: #1081676 + * wireless: drop invalid mesh address extension frames + - LP: #1081676 + * mac80211: check management frame header length + - LP: #1081676 + * mac80211: verify that skb data is present + - LP: #1081676 + * mac80211: make sure data is accessible in EAPOL check + - LP: #1081676 + * ath9k: fix stale pointers potentially causing access to free'd skbs + - LP: #1081676 + * floppy: do put_disk on current dr if blk_init_queue fails + - LP: #1081676 + * floppy: properly handle failure on add_disk loop + - LP: #1081676 + * xen/gntdev: don't leak memory from IOCTL_GNTDEV_MAP_GRANT_REF + - LP: #1081676 + * rt2800: validate step value for temperature compensation + - LP: #1081676 + * ath9k: Test for TID only in BlockAcks while checking tx status + - LP: #1081676 + * module: fix out-by-one error in kallsyms + - LP: #1081676 + * Input: tsc40 - remove wrong announcement of pressure support + - LP: #1081676 + * HID: microsoft: fix invalid rdesc for 3k kbd + - LP: #1081676 + * xen/mmu: Use Xen specific TLB flush instead of the generic one. + - LP: #1081676 + * NFS: Wait for session recovery to finish before returning + - LP: #1081676 + * NFSv4.1: We must release the sequence id when we fail to get a session + slot + - LP: #1081676 + * NFSv4: nfs4_locku_done must release the sequence id + - LP: #1081676 + * NFS: fix bug in legacy DNS resolver. + - LP: #1081676 + * nfsv3: Make v3 mounts fail with ETIMEDOUTs instead EIO on mountd + timeouts + - LP: #1081676 + * nfs: Show original device name verbatim in /proc/*/mount{s,info} + - LP: #1081676 + * target: Don't return success from module_init() if setup fails + - LP: #1081676 + * target: Avoid integer overflow in se_dev_align_max_sectors() + - LP: #1081676 + * iscsi-target: Fix missed wakeup race in TX thread + - LP: #1081676 + * DRM/Radeon: Fix Load Detection on legacy primary DAC. + - LP: #1081676 + * cifs: fix potential buffer overrun in cifs.idmap handling code + - LP: #1081676 + * ALSA: hda: Cirrus: Fix coefficient index for beep configuration + - LP: #1081676 + * ALSA: HDA: Fix digital microphone on CS420x + - LP: #1081676 + * ALSA: hda - Force to reset IEC958 status bits for AD codecs + - LP: #1081676, #359361 + * hwmon: (w83627ehf) Force initial bank selection + - LP: #1081676 + * drm: restore open_count if drm_setup fails + - LP: #1081676 + * ALSA: hda - Fix empty DAC filling in patch_via.c + - LP: #1081676 + * ALSA: hda - Fix invalid connections in VT1802 codec + - LP: #1081676 + * ALSA: hda - Add new codec ALC668 and ALC900 (default name ALC1150) + - LP: #1081676 + * ALSA: Fix card refcount unbalance + - LP: #1081676 + * xfs: fix reading of wrapped log data + - LP: #1081676 + * fanotify: fix missing break + - LP: #1081676 + * mm: bugfix: set current->reclaim_state to NULL while returning from + kswapd() + - LP: #1081676 + * drm/vmwgfx: Fix hibernation device reset + - LP: #1081676 + * drm/vmwgfx: Fix a case where the code would BUG when trying to pin GMR + memory + - LP: #1081676 + * sctp: fix call to SCTP_CMD_PROCESS_SACK in sctp_cmd_interpreter() + - LP: #1081676 + * netlink: use kfree_rcu() in netlink_release() + - LP: #1081676 + * tcp: fix FIONREAD/SIOCINQ + - LP: #1081676 + * ipv6: Set default hoplimit as zero. + - LP: #1081676 + * net: usb: Fix memory leak on Tx data path + - LP: #1081676 + * l2tp: fix oops in l2tp_eth_create() error path + - LP: #1081676 + * af-packet: fix oops when socket is not present + - LP: #1081676 + * ipv6: send unsolicited neighbour advertisements to all-nodes + - LP: #1081676 + * r8169: allow multicast packets on sub-8168f chipset. + - LP: #1081676 + * r8169: Fix WoL on RTL8168d/8111d. + - LP: #1081676 + * r8169: use unlimited DMA burst for TX + - LP: #1081676 + * sky2: Fix for interrupt handler + - LP: #1081676 + * ALSA: usb-audio: Fix mutex deadlock at disconnection + - LP: #1081676 + * Linux 3.2.34 + - LP: #1081676 + * bonding: Bonding driver does not consider the gso_max_size/gso_max_segs + setting of slave devices. + - LP: #1078184 + * mm/hotplug: correctly add new zone to all other nodes' zone lists + - LP: #1079860 + - CVE-2012-5517 + * thinkpad-acpi: fix issuing duplicated key events for brightness up/down + - LP: #841315 + * Bluetooth: ath3k: Add support for VAIO VPCEH [0489:e027] + - LP: #898826 + + -- Luis Henriques Tue, 04 Dec 2012 15:11:24 +0000 + +linux (3.2.0-34.53) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1078760 + + [ Kamal Mostafa ] + + * SAUCE: input: Cypress PS/2 Trackpad list additional contributors + + [ Kyle Fazzari ] + + * SAUCE: input: Cypress PS/2 Trackpad fix multi-source, double-click + - LP: #1055788 + * SAUCE: input: Cypress PS/2 Trackpad fix lost sync upon palm contact + - LP: #1048258 + * SAUCE: input: Cypress PS/2 Trackpad fix taps turning into hardware + clicks + - LP: #1064086 + + [ Tim Gardner ] + + * [Config] remove ndiswrapper from Provides: + - LP: #1076395 + * [Config] CONFIG_HP_WATCHDOG=m for x86en + - LP: #1076342 + + [ Upstream Kernel Changes ] + + * Revert "SUNRPC: Ensure we close the socket on EPIPE errors too..." + - LP: #1075355 + * Revert "ath9k_hw: Updated AR9003 tx gain table for 5GHz" + - LP: #1075355 + * eCryptfs: check for eCryptfs cipher support at mount + - LP: #338914 + * isci: fix isci_pci_probe() generates warning on efi failure path + - LP: #1068162 + * mtd: nand: Use the mirror BBT descriptor when reading its version + - LP: #1068162 + * drm/i915: prevent possible pin leak on error path + - LP: #1068162 + * workqueue: add missing smp_wmb() in process_one_work() + - LP: #1068162 + * TTY: ttyprintk, don't touch behind tty->write_buf + - LP: #1068162 + * Remove BUG_ON from n_tty_read() + - LP: #1068162 + * n_gsm.c: Implement 3GPP27.010 DLC start-up procedure in MUX + - LP: #1068162 + * n_gsm: uplink SKBs accumulate on list + - LP: #1068162 + * n_gsm : Flow control handling in Mux driver + - LP: #1068162 + * char: n_gsm: remove message filtering for contipated DLCI + - LP: #1068162 + * n_gsm: added interlocking for gsm_data_lock for certain code paths + - LP: #1068162 + * n_gsm: avoid accessing freed memory during CMD_FCOFF condition + - LP: #1068162 + * n_gsm: replace kfree_skb w/ appropriate dev_* versions + - LP: #1068162 + * n_gsm: memory leak in uplink error path + - LP: #1068162 + * UBI: fix autoresize handling in R/O mode + - LP: #1068162 + * UBI: erase free PEB with bitflip in EC header + - LP: #1068162 + * firmware: Add missing attributes to EFI variable attribute print out + from sysfs + - LP: #1068162 + * tools/hv: Fix exit() error code + - LP: #1068162 + * slab: fix the DEADLOCK issue on l3 alien lock + - LP: #1068162 + * gspca_pac7302: Add usb-id for 145f:013c + - LP: #1068162 + * gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy + Microphone SL-6825-SBK + - LP: #1068162 + * xhci: Warn when hosts don't halt. + - LP: #1068162 + * xHCI: add cmd_ring_state + - LP: #1068162 + * xHCI: add aborting command ring function + - LP: #1068162 + * xHCI: cancel command after command timeout + - LP: #1068162 + * hpsa: Use LUN reset instead of target reset + - LP: #1068162 + * rc: ite-cir: Initialise ite_dev::rdev earlier + - LP: #1068162 + * staging: speakup_soft: Fix reading of init string + - LP: #1068162 + * target: fix return code in target_core_init_configfs error path + - LP: #1068162 + * powerpc/eeh: Lock module while handling EEH event + - LP: #1068162 + * intel-iommu: Default to non-coherent for domains unattached to iommus + - LP: #1068162 + * workqueue: fix possible stall on try_to_grab_pending() of a delayed + work item + - LP: #1068162 + * PCI: Check P2P bridge for invalid secondary/subordinate range + - LP: #1068162 + * staging: comedi: don't dereference user memory for INSN_INTTRIG + - LP: #1068162 + * SUNRPC: Ensure that the TCP socket is closed when in CLOSE_WAIT + - LP: #1068162 + * ext4: fix potential deadlock in ext4_nonda_switch() + - LP: #1068162 + * staging: comedi: fix memory leak for saved channel list + - LP: #1068162 + * USB: option: blacklist QMI interface on ZTE MF683 + - LP: #1068162 + * USB: qcaux: add Pantech vendor class match + - LP: #1068162 + * can: mscan-mpc5xxx: fix return value check in mpc512x_can_get_clock() + - LP: #1068162 + * iscsi-target: Correctly set 0xffffffff field within ISCSI_OP_REJECT PDU + - LP: #1068162 + * rcu: Fix day-one dyntick-idle stall-warning bug + - LP: #1068162 + * zfcp: Make trace record tags unique + - LP: #1068162 + * zfcp: Bounds checking for deferred error trace + - LP: #1068162 + * zfcp: Do not wakeup while suspended + - LP: #1068162 + * zfcp: remove invalid reference to list iterator variable + - LP: #1068162 + * zfcp: restore refcount check on port_remove + - LP: #1068162 + * zfcp: only access zfcp_scsi_dev for valid scsi_device + - LP: #1068162 + * ibmvscsi: Fix host config length field overflow + - LP: #1068162 + * scsi_remove_target: fix softlockup regression on hot remove + - LP: #1056746, #1068162 + * scsi_dh_alua: Enable STPG for unavailable ports + - LP: #1068162 + * Increase XHCI suspend timeout to 16ms + - LP: #1068162 + * usb: host: xhci: Fix Null pointer dereferencing with 71c731a for + non-x86 systems + - LP: #1068162 + * USB: ftdi_sio: add TIAO USB Multi-Protocol Adapter (TUMPA) support + - LP: #1068162 + * ACPI: run _OSC after ACPI_FULL_INITIALIZATION + - LP: #1068162 + * ath9k: Disable ASPM only for AR9285 + - LP: #1068162 + * xhci: Intel Panther Point BEI quirk. + - LP: #1068162 + * drm/i915: add some barriers when changing DIPs + - LP: #1068162 + * drm/i915: make sure we write all the DIP data bytes + - LP: #1068162 + * ext4: move_extent code cleanup + - LP: #1068162 + * ext4: online defrag is not supported for journaled files + - LP: #1068162 + * staging: comedi: s626: don't dereference insn->data + - LP: #1068162 + * serial: set correct baud_base for EXSYS EX-41092 Dual 16950 + - LP: #1068162 + * serial: pl011: handle corruption at high clock speeds + - LP: #1068162 + * ext4: always set i_op in ext4_mknod() + - LP: #1068162 + * ext4: fix fdatasync() for files with only i_size changes + - LP: #1068162 + * coredump: prevent double-free on an error path in core dumper + - LP: #1068162 + * drm/i915: use adjusted_mode instead of mode for checking the 6bpc force + flag + - LP: #1068162 + * drm/radeon: only adjust default clocks on NI GPUs + - LP: #1068162 + * drm/radeon: Add MSI quirk for gateway RS690 + - LP: #1068162 + * drm/radeon: force MSIs on RS690 asics + - LP: #1068162 + * kbuild: Do not package /boot and /lib in make tar-pkg + - LP: #1068162 + * staging: comedi: jr3_pci: fix iomem dereference + - LP: #1068162 + * mtd: autcpu12-nvram: Fix compile breakage + - LP: #1068162 + * mtd: mtdpart: break it as soon as we parse out the partitions + - LP: #1068162 + * mtd: omap2: fix omap_nand_remove segfault + - LP: #1068162 + * mtd: omap2: fix module loading + - LP: #1068162 + * JFFS2: don't fail on bitflips in OOB + - LP: #1068162 + * mtd: nandsim: bugfix: fail if overridesize is too big + - LP: #1068162 + * IPoIB: Fix use-after-free of multicast object + - LP: #1068162 + * IB/srp: Fix use-after-free in srp_reset_req() + - LP: #1068162 + * IB/srp: Avoid having aborted requests hang + - LP: #1068162 + * localmodconfig: Fix localyesconfig to set to 'y' not 'm' + - LP: #1068162 + * pnfsblock: fix partial page buffer wirte + - LP: #1068162 + * drm/i915: Flush the pending flips on the CRTC before modification + - LP: #1068162 + * target/file: Re-enable optional fd_buffered_io=1 operation + - LP: #1068162 + * iscsi-target: Add explicit set of cache_dynamic_acls=1 for TPG + demo-mode + - LP: #1068162 + * iscsit: remove incorrect unlock in iscsit_build_sendtargets_resp + - LP: #1068162 + * scripts/Kbuild.include: Fix portability problem of "echo -e" + - LP: #1068162 + * kbuild: Fix gcc -x syntax + - LP: #1068162 + * mmc: omap_hsmmc: Pass on the suspend failure to the PM core + - LP: #1068162 + * mmc: sh-mmcif: avoid oops on spurious interrupts + - LP: #1068162 + * iscsi-target: Bump defaults for nopin_timeout + nopin_response_timeout + values + - LP: #1068162 + * lguest: fix occasional crash in example launcher. + - LP: #1068162 + * drm/i915: call drm_handle_vblank before finish_page_flip + - LP: #1068162 + * drm/i915: Fix GT_MODE default value + - LP: #1068162 + * mn10300: only add -mmem-funcs to KBUILD_CFLAGS if gcc supports it + - LP: #1068162 + * drivers/dma/dmaengine.c: lower the priority of 'failed to get' dma + channel message + - LP: #1068162 + * kbuild: make: fix if_changed when command contains backslashes + - LP: #1068162 + * drivers/scsi/atp870u.c: fix bad use of udelay + - LP: #1068162 + * kernel/sys.c: call disable_nonboot_cpus() in kernel_restart() + - LP: #1068162 + * lib/gcd.c: prevent possible div by 0 + - LP: #1068162 + * rapidio/rionet: fix multicast packet transmit logic + - LP: #1068162 + * ALSA: hda - Fix internal mic for Lenovo Ideapad U300s + - LP: #1068162, #903853 + * ALSA: HDA: Add inverted internal mic quirk for Lenovo S205 + - LP: #1068162, #884652 + * ALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310 + - LP: #1068162 + * ALSA: aloop - add locking to timer access + - LP: #1068162 + * mmc: sdhci-s3c: fix the wrong number of max bus clocks + - LP: #1068162 + * ARM: OMAP: counter: add locking to read_persistent_clock + - LP: #1068162 + * mm: fix invalidate_complete_page2() lock ordering + - LP: #1068162 + * mm: thp: fix pmd_present for split_huge_page and PROT_NONE with THP + - LP: #1068162 + * mm: hugetlb: fix pgoff computation when unmapping page from vma + - LP: #1068162 + * hugetlb: do not use vma_hugecache_offset() for vma_prio_tree_foreach + - LP: #1068162 + * firewire: cdev: fix user memory corruption (i386 userland on amd64 + kernel) + - LP: #1068162 + * autofs4 - fix reset pending flag on mount fail + - LP: #1068162 + * udf: fix retun value on error path in udf_load_logicalvol + - LP: #1068162 + * efi: initialize efi.runtime_version to make + query_variable_info/update_capsule workable + - LP: #1068162 + * mempolicy: remove mempolicy sharing + - LP: #1068162 + * mempolicy: fix a race in shared_policy_replace() + - LP: #1068162 + * mempolicy: fix refcount leak in mpol_set_shared_policy() + - LP: #1068162 + * mempolicy: fix a memory corruption by refcount imbalance in + alloc_pages_vma() + - LP: #1068162 + * r8169: Config1 is read-only on 8168c and later. + - LP: #1068162 + * r8169: 8168c and later require bit 0x20 to be set in Config2 for PME + signaling. + - LP: #1068162 + * hpsa: dial down lockup detection during firmware flash + - LP: #1068162 + * netfilter: nf_ct_ipv4: packets with wrong ihl are invalid + - LP: #1068162 + * netfilter: nf_nat_sip: fix incorrect handling of EBUSY for RTCP + expectation + - LP: #1068162 + * netfilter: nf_nat_sip: fix via header translation with multiple + parameters + - LP: #1068162 + * netfilter: nf_ct_expect: fix possible access to uninitialized timer + - LP: #1068162 + * ipvs: fix oops on NAT reply in br_nf context + - LP: #1068162 + * netfilter: limit, hashlimit: avoid duplicated inline + - LP: #1068162 + * netfilter: xt_limit: have r->cost != 0 case work + - LP: #1068162 + * e1000: fix lockdep splat in shutdown handler + - LP: #1068162 + * xHCI: handle command after aborting the command ring + - LP: #1068162 + * drm/i915: fix swizzle detection for gen3 + - LP: #1068162 + * drm/i915: Mark untiled BLT commands as fenced on gen2/3 + - LP: #1068162 + * drm/i915: clear fencing tracking state when retiring requests + - LP: #1068162 + * Linux 3.2.32 + - LP: #1068162 + * netfilter: ipset: avoid use of kernel-only types + - LP: #1075355 + * samsung-laptop: don't handle backlight if handled by acpi/video + - LP: #1075355 + * samsung-laptop: make the dmi check less strict (part 2) + - LP: #1075355 + * jbd: Fix assertion failure in commit code due to lacking transaction + credits + - LP: #1075355 + * mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver + - LP: #1075355 + * e1000: fix vlan processing regression + - LP: #1075355 + * SUNRPC: Set alloc_slot for backchannel tcp ops + - LP: #1075355 + * drm/i915: don't pwrite tiled objects through the gtt + - LP: #1075355 + * drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13 + - LP: #1075355 + * sparc64: fix ptrace interaction with force_successful_syscall_return() + - LP: #1075355 + * sparc64: Like x86 we should check current->mm during perf backtrace + generation. + - LP: #1075355 + * sparc64: Fix bit twiddling in sparc_pmu_enable_event(). + - LP: #1075355 + * sparc64: do not clobber personality flags in sys_sparc64_personality() + - LP: #1075355 + * sparc64: Be less verbose during vmemmap population. + - LP: #1075355 + * net: Fix skb_under_panic oops in neigh_resolve_output + - LP: #1075355 + * skge: Add DMA mask quirk for Marvell 88E8001 on ASUS P5NSLI motherboard + - LP: #1075355 + * vlan: don't deliver frames for unknown vlans to protocols + - LP: #1075355 + * RDS: fix rds-ping spinlock recursion + - LP: #1075355 + * tcp: resets are misrouted + - LP: #1075355 + * staging: comedi: amplc_pc236: fix invalid register access during detach + - LP: #1075355 + * nfsd4: fix nfs4 stateid leak + - LP: #1075355 + * viafb: don't touch clock state on OLPC XO-1.5 + - LP: #1075355 + * module: taint kernel when lve module is loaded + - LP: #1075355 + * ACPI: EC: Make the GPE storm threshold a module parameter + - LP: #1075355 + * ACPI: EC: Add a quirk for CLEVO M720T/M730T laptop + - LP: #1075355 + * ARM: vfp: fix saving d16-d31 vfp registers on v6+ kernels + - LP: #1075355 + * scsi_debug: Fix off-by-one bug when unmapping region + - LP: #1075355 + * timers: Fix endless looping between cascade() and internal_add_timer() + - LP: #1075355 + * timekeeping: Cast raw_interval to u64 to avoid shift overflow + - LP: #1075355 + * video/udlfb: fix line counting in fb_write + - LP: #1075355 + * tmpfs,ceph,gfs2,isofs,reiserfs,xfs: fix fh_len checking + - LP: #1075355 + * ext4: race-condition protection for + ext4_convert_unwritten_extents_endio + - LP: #1075355 + * ALSA: hda - Fix memory leaks at error path in patch_cirrus.c + - LP: #1075355 + * nohz: Fix idle ticks in cpu summary line of /proc/stat + - LP: #1075355 + * ALSA: hda - do not detect jack on internal speakers for Realtek + - LP: #1075355 + * pktgen: fix crash when generating IPv6 packets + - LP: #1075355 + * md/raid10: use correct limit variable + - LP: #1075355 + * Bluetooth: SMP: Fix setting unknown auth_req bits + - LP: #1075355 + * mips,kgdb: fix recursive page fault with CONFIG_KPROBES + - LP: #1075355 + * xen/bootup: allow read_tscp call for Xen PV guests. + - LP: #1075355 + * xen/bootup: allow {read|write}_cr8 pvops call. + - LP: #1075355 + * pcmcia: sharpsl: don't discard sharpsl_pcmcia_ops + - LP: #1075355 + * oprofile, x86: Fix wrapping bug in op_x86_get_ctrl() + - LP: #1075355 + * drm/radeon: Don't destroy I2C Bus Rec in radeon_ext_tmds_enc_destroy(). + - LP: #1075355 + * mac80211: check if key has TKIP type before updating IV + - LP: #1075355 + * bcma: fix unregistration of cores + - LP: #1075355 + * net/wireless: ipw2200: Fix panic occurring in + ipw_handle_promiscuous_tx() + - LP: #1075355 + * iwlwifi: fix 6000 series channel switch command + - LP: #1075355 + * cgroup: notify_on_release may not be triggered in some cases + - LP: #1075355 + * ALSA: hda - Always check array bounds in alc_get_line_out_pfx + - LP: #1075355 + * NLM: nlm_lookup_file() may return NLMv4-specific error codes + - LP: #1075355 + * SUNRPC: Prevent kernel stack corruption on long values of flush + - LP: #1075355 + * USB: cdc-acm: fix pipe type of write endpoint + - LP: #1075355 + * usb: acm: fix the computation of the number of data bits + - LP: #1075355 + * usb: host: xhci: New system added for Compliance Mode Patch on + SN65LVPE502CP + - LP: #1075355 + * USB: option: blacklist net interface on ZTE devices + - LP: #1075355 + * USB: option: add more ZTE devices + - LP: #1075355 + * s390: fix linker script for 31 bit builds + - LP: #1075355 + * xen/x86: don't corrupt %eip when returning from a signal handler + - LP: #1075355 + * ALSA: hda - add dock support for Thinkpad T430 + - LP: #1075355 + * kernel/sys.c: fix stack memory content leak via UNAME26 + - LP: #1075355 + - CVE-2012-0957 + * ARM: 7559/1: smp: switch away from the idmap before updating + init_mm.mm_count + - LP: #1075355 + * usb hub: send clear_tt_buffer_complete events when canceling TT clear + work + - LP: #1075355 + * cpufreq / powernow-k8: Remove usage of smp_processor_id() in + preemptible code + - LP: #1075355 + * arch/tile: avoid generating .eh_frame information in modules + - LP: #1075355 + * amd64_edac:__amd64_set_scrub_rate(): avoid overindexing scrubrates[] + - LP: #1075355 + * SUNRPC: Clear the connect flag when socket state is TCP_CLOSE_WAIT + - LP: #1075355 + * SUNRPC: Prevent races in xs_abort_connection() + - LP: #1075355 + * SUNRPC: Get rid of the xs_error_report socket callback + - LP: #1075355 + * USB: serial: Fix memory leak in sierra_release() + - LP: #1075355 + * usb-storage: add unusual_devs entry for Casio EX-N1 digital camera + - LP: #1075355 + * Drivers: hv: Cleanup error handling in vmbus_open() + - LP: #1075355 + * sysfs: sysfs_pathname/sysfs_add_one: Use strlcat() instead of strcat() + - LP: #1075355 + * vhost: fix mergeable bufs on BE hosts + - LP: #1075355 + * USB: whiteheat: fix memory leak in error path + - LP: #1075355 + * USB: opticon: fix DMA from stack + - LP: #1075355 + * USB: opticon: fix memory leak in error path + - LP: #1075355 + * USB: mct_u232: fix broken close + - LP: #1075355 + * USB: sierra: fix memory leak in attach error path + - LP: #1075355 + * USB: sierra: fix memory leak in probe error path + - LP: #1075355 + * USB: mos7840: fix urb leak at release + - LP: #1075355 + * USB: mos7840: fix port-device leak in error path + - LP: #1075355 + * USB: mos7840: remove NULL-urb submission + - LP: #1075355 + * USB: mos7840: remove invalid disconnect handling + - LP: #1075355 + * ehci: fix Lucid nohandoff pci quirk to be more generic with BIOS + versions + - LP: #1075355 + * ehci: Add yet-another Lucid nohandoff pci quirk + - LP: #1075355 + * xhci: Fix potential NULL ptr deref in command cancellation. + - LP: #1075355 + * freezer: exec should clear PF_NOFREEZE along with PF_KTHREAD + - LP: #1075355 + * mm: fix XFS oops due to dirty pages without buffers on s390 + - LP: #1075355 + * genalloc: stop crashing the system when destroying a pool + - LP: #1075355 + * drivers/rtc/rtc-imxdi.c: add missing spin lock initialization + - LP: #1075355 + * gen_init_cpio: avoid stack overflow when expanding + - LP: #1075355 + * fs/compat_ioctl.c: VIDEO_SET_SPU_PALETTE missing error check + - LP: #1075355 + * netfilter: nf_conntrack: fix racy timer handling with reliable events + - LP: #1075355 + * tpm: Propagate error from tpm_transmit to fix a timeout hang + - LP: #1075355 + * ALSA: ac97 - Fix missing NULL check in snd_ac97_cvol_new() + - LP: #1075355 + * ALSA: emu10k1: add chip details for E-mu 1010 PCIe card + - LP: #1075355 + * Add CDC-ACM support for the CX93010-2x UCMxx USB Modem + - LP: #1075355 + * Linux 3.2.33 + - LP: #1075355 + * use clamp_t in UNAME26 fix + - CVE-2012-0957 + * net: fix divide by zero in tcp algorithm illinois + - LP: #1077091 + - CVE-2012-4565 + + [ Wen-chien Jesse Sung ] + + * SAUCE: Bluetooth: Add a load_firmware callback to struct hci_dev + - LP: #1065400 + * SAUCE: Bluetooth: Implement broadcom patchram firmware loader + - LP: #1065400 + * SAUCE: Bluetooth: Getting ID from descriptor instead of matched rule + - LP: #1065400 + * SAUCE: Bluetooth: Add support for 13d3:3388 and 13d3:3389 + - LP: #1065400 + + -- Luis Henriques Wed, 14 Nov 2012 15:40:27 +0000 + +linux (3.2.0-33.52) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1067666 + + [ Andy Whitcroft ] + + * [Config] add fs/udf to linux-image to support DVD/CD formats in virtual + instances + - LP: #1066921 + + [ James M Leddy ] + + * SAUCE: input: fix weird issue of synaptics psmouse sync lost after + resume + - LP: #717970 + + [ Paolo Pisati ] + + * [SRU] [Config] enable TIDSPBRIDGE for omap arm[el|hf] flavours + - LP: #1058022 + + [ Sarveshwar Bandi ] + + * SAUCE: bridge: Pull ip header into skb->data before looking into ip + header. + - LP: #1065150 + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon: rework pll selection (v3)" + - LP: #1065047 + * sched: Fix migration thread runtime bogosity + - LP: #1057593 + * Bluetooth: Add support for Sony Vaio T-Series + - LP: #1054307 + * drm/radeon: properly handle mc_stop/mc_resume on evergreen+ (v2) + - LP: #1058303 + * Bluetooth: Use USB_VENDOR_AND_INTERFACE() for Broadcom devices + - LP: #1058303 + * Bluetooth: Add USB_VENDOR_AND_INTERFACE_INFO() for Broadcom/Foxconn + - LP: #1030233, #1058303 + * target: Fix ->data_length re-assignment bug with SCSI overflow + - LP: #1065047 + * ASoC: samsung dma - Don't indicate support for pause/resume. + - LP: #1065047 + * fs/proc: fix potential unregister_sysctl_table hang + - LP: #1065047 + * mm/ia64: fix a memory block size bug + - LP: #1065047 + * nbd: clear waiting_queue on shutdown + - LP: #1065047 + * drivers/rtc/rtc-twl.c: ensure all interrupts are disabled during probe + - LP: #1065047 + * mm/page_alloc: fix the page address of higher page's buddy calculation + - LP: #1065047 + * memory hotplug: fix section info double registration bug + - LP: #1065047 + * cciss: fix handling of protocol error + - LP: #1065047 + * vfs: dcache: use DCACHE_DENTRY_KILLED instead of DCACHE_DISCONNECTED in + d_kill() + - LP: #1065047 + * workqueue: reimplement work_on_cpu() using system_wq + - LP: #1065047 + * cpufreq/powernow-k8: workqueue user shouldn't migrate the kworker to + another CPU + - LP: #1065047 + * sched: Fix ancient race in do_exit() + - LP: #1065047 + * hpwdt: Fix kdump issue in hpwdt + - LP: #1065047 + * rtlwifi: rtl8192ce: Log message that B_CUT device may not work + - LP: #1065047 + * brcmfmac: fix big endian bug in i-scan. + - LP: #1065047 + * brcmfmac: Fix big endian host configuration data. + - LP: #1065047 + * dmaengine: at_hdmac: fix comment in atc_prep_slave_sg() + - LP: #1065047 + * dmaengine: at_hdmac: check that each sg data length is non-null + - LP: #1065047 + * ARM: 7532/1: decompressor: reset SCTLR.TRE for VMSA ARMv7 cores + - LP: #1065047 + * drm/i915: Reduce a pin-leak BUG into a WARN + - LP: #1065047 + * bnx2i: Fixed NULL ptr deference for 1G bnx2 Linux iSCSI offload + - LP: #1065047 + * mpt2sas: Fix for issue - Unable to boot from the drive connected to HBA + - LP: #1065047 + * hwmon: (ads7871) Add 'name' sysfs attribute + - LP: #1065047 + * DMA: PL330: Check the pointer returned by kzalloc + - LP: #1065047 + * hpsa: fix handling of protocol error + - LP: #1065047 + * hwmon: (ad7314) Add 'name' sysfs attribute + - LP: #1065047 + * cifs: fix return value in cifsConvertToUTF16 + - LP: #1065047 + * cfg80211: fix possible circular lock on reg_regdb_search() + - LP: #1065047 + * xen/boot: Disable BIOS SMP MP table search. + - LP: #1065047 + * asix: Support DLink DUB-E100 H/W Ver C1 + - LP: #1065047 + * Input: i8042 - disable mux on Toshiba C850D + - LP: #1065047 + * tracing: Don't call page_to_pfn() if page is NULL + - LP: #1065047 + * can: janz-ican3: fix support for older hardware revisions + - LP: #1065047 + * can: ti_hecc: fix oops during rmmod + - LP: #1065047 + * HID: logitech: fix mask to enable DJ mode + - LP: #1065047 + * HID: logitech: don't use stack based dj_report structures + - LP: #1065047 + * dj: memory scribble in logi_dj + - LP: #1065047 + * HID: Fix logitech-dj: missing Unifying device issue + - LP: #1065047 + * hwmon: (fam15h_power) Tweak runavg_range on resume + - LP: #1065047 + * xen/boot: Disable NUMA for PV guests. + - LP: #1065047 + * gpio-lpc32xx: Fix value handling of gpio_direction_output() + - LP: #1065047 + * sb_edac: Avoid overflow errors at memory size calculation + - LP: #1065047 + * dm: handle requests beyond end of device instead of using BUG_ON + - LP: #1065047 + * dm table: clear add_random unless all devices have it set + - LP: #1065047 + * md/raid10: fix "enough" function for detecting if array is failed. + - LP: #1065047 + * USB: Fix race condition when removing host controllers + - LP: #1065047 + * asus-laptop: HRWS/HWRS typo + - LP: #1065047 + * Bluetooth: Add support for Apple vendor-specific devices + - LP: #1065047 + * net: Statically initialize init_net.dev_base_head + - LP: #1065047 + * Fix a dead loop in async_synchronize_full() + - LP: #1065047 + * Prevent interface errors with Seagate FreeAgent GoFlex + - LP: #1065047 + * mmc: Prevent 1.8V switch for SD hosts that don't support UHS modes. + - LP: #1065047 + * Bluetooth: Change signature of smp_conn_security() + - LP: #1065047 + * Bluetooth: Fix sending a HCI Authorization Request over LE links + - LP: #1065047 + * pch_uart: Add eg20t_port lock field, avoid recursive spinlocks + - LP: #1065047 + * irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU + - LP: #1065047 + * vfs: dcache: fix deadlock in tree traversal + - LP: #1065047 + * usb: gadget: dummy_hcd: fixup error probe path + - LP: #1065047 + * CPU hotplug, cpusets, suspend: Don't modify cpusets during + suspend/resume + - LP: #1065047 + * x86/alternatives: Fix p6 nops on non-modular kernels + - LP: #1065047 + * HID: hidraw: add proper error handling to raw event reporting + - LP: #1065047 + * HID: fix return value of hidraw_report_event() when !CONFIG_HIDRAW + - LP: #1065047 + * HID: hidraw: fix list->buffer memleak + - LP: #1065047 + * HID: hidraw: improve error handling in hidraw_init() + - LP: #1065047 + * HID: hidraw: don't deallocate memory when it is in use + - LP: #1065047 + * PCI: acpiphp: check whether _ADR evaluation succeeded + - LP: #1065047 + * bnx2x: fix rx checksum validation for IPv6 + - LP: #1065047 + * xfrm: Workaround incompatibility of ESN and async crypto + - LP: #1065047 + * xfrm_user: return error pointer instead of NULL + - LP: #1065047 + * xfrm_user: return error pointer instead of NULL #2 + - LP: #1065047 + * xfrm: fix a read lock imbalance in make_blackhole + - LP: #1065047 + * xfrm_user: fix info leak in copy_to_user_auth() + - LP: #1065047 + * xfrm_user: fix info leak in copy_to_user_state() + - LP: #1065047 + * xfrm_user: fix info leak in copy_to_user_policy() + - LP: #1065047 + * xfrm_user: fix info leak in copy_to_user_tmpl() + - LP: #1065047 + * xfrm_user: don't copy esn replay window twice for new states + - LP: #1065047 + * xfrm_user: ensure user supplied esn replay window is valid + - LP: #1065047 + * net: ethernet: davinci_cpdma: decrease the desc count when cleaning up + the remaining packets + - LP: #1065047 + * ixp4xx_hss: fix build failure due to missing linux/module.h inclusion + - LP: #1065047 + * netxen: check for root bus in netxen_mask_aer_correctable + - LP: #1065047 + * net-sched: sch_cbq: avoid infinite loop + - LP: #1065047 + * pkt_sched: fix virtual-start-time update in QFQ + - LP: #1065047 + * sierra_net: Endianess bug fix. + - LP: #1065047 + * 8021q: fix mac_len recomputation in vlan_untag() + - LP: #1065047 + * ipv6: release reference of ip6_null_entry's dst entry in __ip6_del_rt + - LP: #1065047 + * tcp: flush DMA queue before sk_wait_data if rcv_wnd is zero + - LP: #1065047 + * sctp: Don't charge for data in sndbuf again when transmitting packet + - LP: #1065047 + * pppoe: drop PPPOX_ZOMBIEs in pppoe_release + - LP: #1065047 + * net: small bug on rxhash calculation + - LP: #1065047 + * net: guard tcp_set_keepalive() to tcp sockets + - LP: #1065047 + * ipv4: raw: fix icmp_filter() + - LP: #1065047 + * ipv6: raw: fix icmpv6_filter() + - LP: #1065047 + * ipv6: mip6: fix mip6_mh_filter() + - LP: #1065047 + * l2tp: fix a typo in l2tp_eth_dev_recv() + - LP: #1065047 + * netrom: copy_datagram_iovec can fail + - LP: #1065047 + * net: do not disable sg for packets requiring no checksum + - LP: #1065047 + * aoe: assert AoE packets marked as requiring no checksum + - LP: #1065047 + * Bluetooth: Support AR3011 in Acer Iconia Tab W500 + - LP: #1065047 + * Bluetooth: add support for atheros 0930:0219 + - LP: #1065047 + * Bluetooth: add support for atheros 0489:e057 + - LP: #1065047 + * Linux 3.2.31 + - LP: #1065047 + * ixgbe: Add module parameter to allow untested and unsafe SFP+ modules + - LP: #1065475 + * au0828: fix case where STREAMOFF being called on stopped stream causes + BUG() + - LP: #1062917 + * drm/i915: Remove too early plane enable on pre-PCH hardware + - LP: #949130 + + [ Wen-chien Jesse Sung ] + + * SAUCE: HID: ntrig: change default value of logical/physical + width/height to 1 + - LP: #1044248 + + -- Luis Henriques Wed, 17 Oct 2012 10:26:19 +0100 + +linux (3.2.0-32.51) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1056036 + + [ Keng-Yu Lin ] + + * SAUCE: Intel xhci: Only switch the switchable ports + - LP: #1034814 + + [ Kyle Fazzari ] + + * SAUCE: input: Cypress PS/2 Trackpad fix disabling tap-to-click + - LP: #1048816 + + [ Seth Forshee ] + + * SAUCE: Input: synaptics - Adjust threshold for treating position values + as negative + - LP: #1046512 + + [ Stefan Bader ] + + * Revert "SAUCE: Force xsave off on older Xen hypervisors" + - LP: #1044550 + + [ Upstream Kernel Changes ] + + * Revert "HID: wiimote: fix invalid power_supply_powers call" + - LP: #1048605 + * Revert "drm/radeon: fix bo creation retry path" + - LP: #1049899 + * HID: wiimote: fix invalid power_supply_powers call + - LP: #1048605 + * HID: add ASUS AIO keyboard model AK1D + - LP: #1027789, #1049899 + * nfs: tear down caches in nfs_init_writepagecache when allocation fails + - LP: #1049899 + * NFS: Use kcalloc() when allocating arrays + - LP: #1049899 + * NFSv4.1 fix page number calculation bug for filelayout decode buffers + - LP: #1049899 + * fix page number calculation bug for block layout decode buffer + - LP: #1049899 + * pnfs: defer release of pages in layoutget + - LP: #1049899 + * ext4: avoid kmemcheck complaint from reading uninitialized memory + - LP: #1049899 + * fuse: verify all ioctl retry iov elements + - LP: #1049899 + * Bluetooth: Fix legacy pairing with some devices + - LP: #1049899 + * xhci: Increase reset timeout for Renesas 720201 host. + - LP: #1049899 + * xhci: Add Etron XHCI_TRUST_TX_LENGTH quirk. + - LP: #1049899 + * USB: ftdi_sio: Add VID/PID for Kondo Serial USB + - LP: #1049899 + * USB: option: Add Vodafone/Huawei K5005 support + - LP: #1049899 + * USB: add USB_VENDOR_AND_INTERFACE_INFO() macro + - LP: #1049899 + * USB: support the new interfaces of Huawei Data Card devices in option + driver + - LP: #1049899 + * usb: serial: mos7840: Fixup mos7840_chars_in_buffer() + - LP: #1049899 + * usb: gadget: u_ether: fix kworker 100% CPU issue with still used + interfaces in eth_stop + - LP: #1049899 + * ARM: 7483/1: vfp: only advertise VFPv4 in hwcaps if CONFIG_VFPv3 is + enabled + - LP: #1049899 + * ARM: 7488/1: mm: use 5 bits for swapfile type encoding + - LP: #1049899 + * ARM: 7489/1: errata: fix workaround for erratum #720789 on UP systems + - LP: #1049899 + * drm/i915: ignore eDP bpc settings from vbt + - LP: #1049899 + * ALSA: hda - fix Copyright debug message + - LP: #1049899 + * sched: fix divide by zero at {thread_group,task}_times + - LP: #1049899 + * ath9k: fix decrypt_error initialization in ath_rx_tasklet() + - LP: #1049899 + * drm/nvd0/disp: mask off high 16 bit of negative cursor x-coordinate + - LP: #1049899 + * drm/i915: reorder edp disabling to fix ivb MacBook Air + - LP: #1049899 + * audit: don't free_chunk() after fsnotify_add_mark() + - LP: #1049899 + * audit: fix refcounting in audit-tree + - LP: #1049899 + * vfs: canonicalize create mode in build_open_flags() + - LP: #1049899 + * PCI: EHCI: Fix crash during hibernation on ASUS computers + - LP: #1049899 + * IB/srp: Fix a race condition + - LP: #1049899 + * dccp: check ccid before dereferencing + - LP: #1049899 + * md: Don't truncate size at 4TB for RAID0 and Linear + - LP: #1049899 + * NFS: Alias the nfs module to nfs4 + - LP: #1049899 + * target: fix NULL pointer dereference bug alloc_page() fails to get + memory + - LP: #1049899 + * ext4: fix long mount times on very big file systems + - LP: #1049899 + * PM / Runtime: Fix rpm_resume() return value for power.no_callbacks set + - LP: #1049899 + * PM / Runtime: Clear power.deferred_resume on success in rpm_suspend() + - LP: #1049899 + * ASoC: wm9712: Fix microphone source selection + - LP: #1049899 + * USB: smsusb: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: spca506: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: p54usb: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: rtl8187: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: vt6656: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: winbond: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: emi62: remove __devinit* from the struct usb_device_id table + - LP: #1049899 + * USB: CDC ACM: Fix NULL pointer dereference + - LP: #1049899 + * alpha: Don't export SOCK_NONBLOCK to user space. + - LP: #1049899 + * Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts + - LP: #1049899 + * ALSA: hda - don't create dysfunctional mixer controls for ca0132 + - LP: #1038651, #1049899 + * netconsole: remove a redundant netconsole_target_put() + - LP: #1049899 + * drm/radeon/kms: upstream atombios.h updates + - LP: #1049899 + * drm/radeon/kms: extend the Fujitsu D3003-S2 board connector quirk to + cover later silicon stepping + - LP: #1049899 + * drm/radeon: implement ACPI VFCT vbios fetch (v3) + - LP: #1049899 + * ACPI: export symbol acpi_get_table_with_size + - LP: #1049899 + * drm/radeon: convert radeon vfct code to use acpi_get_table_with_size + - LP: #1049899 + * drm/radeon: fix invalid memory access in radeon_atrm_get_bios() + - LP: #1049899 + * drm/radeon: finish getting bios earlier + - LP: #1049899 + * drm/radeon: fix use after free in ATRM bios reading code. + - LP: #1049899 + * drm/radeon: split ATRM support out from the ATPX handler (v3) + - LP: #1049899 + * NFSv3: Ensure that do_proc_get_root() reports errors correctly + - LP: #1049899 + * vfs: missed source of ->f_pos races + - LP: #1049899 + * svcrpc: fix BUG() in svc_tcp_clear_pages + - LP: #1049899 + * svcrpc: sends on closed socket should stop immediately + - LP: #1049899 + * svcrpc: fix svc_xprt_enqueue/svc_recv busy-looping + - LP: #1049899 + * fbcon: fix race condition between console lock and cursor timer (v1.1) + - LP: #1049899 + * cciss: fix incorrect scsi status reporting + - LP: #1049899 + * mm: hugetlbfs: correctly populate shared pmd + - LP: #1049899 + * drivers/misc/sgi-xp/xpc_uv.c: SGI XPC fails to load when cpu 0 is out + of IRQ resources + - LP: #1049899 + * drivers/rtc/rtc-rs5c348.c: fix hour decoding in 12-hour mode + - LP: #1049899 + * rapidio/tsi721: fix inbound doorbell interrupt handling + - LP: #1049899 + * rapidio/tsi721: fix unused variable compiler warning + - LP: #1049899 + * fs/buffer.c: remove BUG() in possible but rare condition + - LP: #1049899 + * block: replace __getblk_slow misfix by grow_dev_page fix + - LP: #1049899 + * Bluetooth: Fix using uninitialized option in RFCMode + - LP: #1049899 + * drivers/char/random.c: fix boot id uniqueness race + - LP: #1049899 + * MAINTAINERS: Theodore Ts'o is taking over the random driver + - LP: #1049899 + * random: Add comment to random_initialize() + - LP: #1049899 + * dmi: Feed DMI table to /dev/random driver + - LP: #1049899 + * virtio_blk: fix config handler race + - LP: #1049899 + * virtio_blk: Drop unused request tracking list + - LP: #1049899 + * virtio-blk: Fix hot-unplug race in remove method + - LP: #1049899 + * virtio-blk: Call del_gendisk() before disable guest kick + - LP: #1049899 + * virtio-blk: Reset device after blk_cleanup_queue() + - LP: #1049899 + * HID: add support for Cypress barcode scanner 04B4:ED81 + - LP: #1049899 + * pmac_zilog,kdb: Fix console poll hook to return instead of loop + - LP: #1049899 + * Staging: speakup: fix an improperly-declared variable. + - LP: #1049899 + * NFS: Fix Oopses in nfs_lookup_revalidate and nfs4_lookup_revalidate + - LP: #1049899 + * Squashfs: fix mount time sanity check for corrupted superblock + - LP: #1049899 + * mm: avoid swapping out with swappiness==0 + - LP: #1049899 + * Linux 3.2.29 + - LP: #1049899 + * Input: elantech - add support for elantech fast command + - LP: #1033568 + * Input: elantech - add resolution query support for v4 hardware + - LP: #1033568 + * Input: elantech - v4 is a clickpad, with only one button + - LP: #1033568 + * eCryptfs: Copy up attributes of the lower target inode after rename + - LP: #561129 + * eCryptfs: Write out all dirty pages just before releasing the lower + file + - LP: #1047261 + * eCryptfs: Call lower ->flush() from ecryptfs_flush() + - LP: #1047261 + * af_netlink: force credentials passing [CVE-2012-3520] + - LP: #1052097 + - CVE-2012-3520 + * Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts + - LP: #1053039 + * ARM: S3C24XX: Fix s3c2410_dma_enqueue parameters + - LP: #1053039 + * ARM: OMAP2+: Fix dmtimer set source clock failure + - LP: #1053039 + * ARM: Orion: Set eth packet size csum offload limit + - LP: #1053039 + * iwlwifi: fix flow handler debug code + - LP: #1053039 + * iwlwifi: protect SRAM debugfs + - LP: #1053039 + * Input: i8042 - add Gigabyte T1005 series netbooks to noloop table + - LP: #1053039 + * mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth + command line option to a very small value + - LP: #1053039 + * megaraid_sas: Move poll_aen_lock initializer + - LP: #1053039 + * Fix 'Device not ready' issue on mpt2sas + - LP: #1053039 + * hwmon: (asus_atk0110) Add quirk for Asus M5A78L + - LP: #1053039 + * drm/i915: Fix assert_pch_hdmi_disabled to mention HDMI (not DP) + - LP: #1053039 + * drm/i915: fix wrong order of parameters in port checking functions + - LP: #1053039 + * OMAPFB: fix framebuffer console colors + - LP: #1053039 + * ARM: imx6: spin the cpu until hardware takes it down + - LP: #1053039 + * ARM: dts: imx51-babbage: fix esdhc cd/wp properties + - LP: #1053039 + * xen/setup: Fix one-off error when adding for-balloon PFNs to the P2M. + - LP: #1053039 + * ARM: imx: select CPU_FREQ_TABLE when needed + - LP: #1053039 + * drm: remove some potentially dangerous DRM_ERRORs + - LP: #1053039 + * drm: Check for invalid cursor flags + - LP: #1053039 + * HID: multitouch: support PixArt optical touch screen + - LP: #1053039 + * HID: add NOGET quirk for Eaton Ellipse MAX UPS + - LP: #1053039 + * drm/radeon: don't disable plls that are in use by other crtcs + - LP: #1053039 + * drm/radeon/atom: rework DIG modesetting on DCE3+ + - LP: #1053039 + * drm/radeon: force dma32 to fix regression rs4xx,rs6xx,rs740 + - LP: #1053039 + * drm/edid/quirks: ViewSonic VA2026w + - LP: #1053039 + * drm: Add EDID_QUIRK_FORCE_REDUCED_BLANKING for ASUS VW222S + - LP: #1053039 + * e1000e: DoS while TSO enabled caused by link partner with small MSS + - LP: #1053039 + * ext3: Fix fdatasync() for files with only i_size changes + - LP: #1053039 + * UBI: fix a horrible memory deallocation bug + - LP: #1053039 + * fuse: fix retrieve length + - LP: #1053039 + * mmc: mxs-mmc: fix deadlock in SDIO IRQ case + - LP: #1053039 + * mmc: mxs-mmc: fix deadlock caused by recursion loop + - LP: #1053039 + * mmc: sdhci-esdhc: break out early if clock is 0 + - LP: #1053039 + * mmc: card: Skip secure erase on MoviNAND; causes unrecoverable + corruption. + - LP: #1053039 + * powerpc: Update DSCR on all CPUs when writing sysfs dscr_default + - LP: #1053039 + * powerpc: Keep thread.dscr and thread.dscr_inherit in sync + - LP: #1053039 + * powerpc: Fix DSCR inheritance in copy_thread() + - LP: #1053039 + * powerpc: Restore correct DSCR in context switch + - LP: #1053039 + * powerpc/xics: Harden xics hypervisor backend + - LP: #1053039 + * powerpc: Make sure IPI handlers see data written by IPI senders + - LP: #1053039 + * udf: Fix data corruption for files in ICB + - LP: #1053039 + * xen: Use correct masking in xen_swiotlb_alloc_coherent. + - LP: #1053039 + * Remove user-triggerable BUG from mpol_to_str + - LP: #1053039 + * CIFS: Fix error handling in cifs_push_mandatory_locks + - LP: #1053039 + * i2c-designware: Fix build error if CONFIG_I2C_DESIGNWARE_PLATFORM=y && + CONFIG_I2C_DESIGNWARE_PCI=y + - LP: #1053039 + * net_sched: gact: Fix potential panic in tcf_gact(). + - LP: #1053039 + * isdnloop: fix and simplify isdnloop_init() + - LP: #1053039 + * pptp: lookup route with the proper net namespace + - LP: #1053039 + * net/core: Fix potential memory leak in dev_set_alias() + - LP: #1053039 + * af_packet: remove BUG statement in tpacket_destruct_skb + - LP: #1053039 + * ipv6: addrconf: Avoid calling netdevice notifiers with RCU read-side + lock + - LP: #1053039 + * atm: fix info leak in getsockopt(SO_ATMPVC) + - LP: #1053039 + * atm: fix info leak via getsockname() + - LP: #1053039 + * Bluetooth: HCI - Fix info leak in getsockopt(HCI_FILTER) + - LP: #1053039 + * Bluetooth: HCI - Fix info leak via getsockname() + - LP: #1053039 + * Bluetooth: RFCOMM - Fix info leak in getsockopt(BT_SECURITY) + - LP: #1053039 + * Bluetooth: RFCOMM - Fix info leak in ioctl(RFCOMMGETDEVLIST) + - LP: #1053039 + * Bluetooth: RFCOMM - Fix info leak via getsockname() + - LP: #1053039 + * Bluetooth: L2CAP - Fix info leak via getsockname() + - LP: #1053039 + * llc: fix info leak via getsockname() + - LP: #1053039 + * dccp: fix info leak via getsockopt(DCCP_SOCKOPT_CCID_TX_INFO) + - LP: #1053039 + * ipvs: fix info leak in getsockopt(IP_VS_SO_GET_TIMEOUT) + - LP: #1053039 + * net: fix info leak in compat dev_ifconf() + - LP: #1053039 + * af_packet: don't emit packet on orig fanout group + - LP: #1053039 + * netlink: fix possible spoofing from non-root processes + - LP: #1053039 + * gianfar: fix default tx vlan offload feature flag + - LP: #1053039 + * l2tp: avoid to use synchronize_rcu in tunnel free function + - LP: #1053039 + * net: ipv4: ipmr_expire_timer causes crash when removing net namespace + - LP: #1053039 + * bnx2x: fix 57840_MF pci id + - LP: #1053039 + * workqueue: UNBOUND -> REBIND morphing in rebind_workers() should be + atomic + - LP: #1053039 + * fixing dmi match for hp t5745 and hp st5747 thin client + - LP: #1053039 + * time: Improve sanity checking of timekeeping inputs + - LP: #1053039 + * time: Avoid making adjustments if we haven't accumulated anything + - LP: #1053039 + * time: Move ktime_t overflow checking into timespec_valid_strict + - LP: #1053039 + * drm/i915: Wait for all pending operations to the fb before disabling + the pipe + - LP: #1053039 + * xhci: Fix bug after deq ptr set to link TRB. + - LP: #1053039 + * ARM: 7487/1: mm: avoid setting nG bit for user mappings that aren't + present + - LP: #1053039 + * i2c-i801: Add Device IDs for Intel Lynx Point-LP PCH + - LP: #1053039 + * USB: option: add ZTE K5006-Z + - LP: #1053039 + * USB: option: replace ZTE K5006-Z entry with vendor class rule + - LP: #1053039 + * ARM: 7496/1: hw_breakpoint: don't rely on dfsr to show watchpoint + access type + - LP: #1053039 + * drm/i915: SDVO hotplug have different interrupt status bits for + i915/i965/g4x + - LP: #1053039 + * drm/i915: only enable sdvo hotplug irq if needed + - LP: #1053039 + * can: mcp251x: avoid repeated frame bug + - LP: #1053039 + * perf_event: Switch to internal refcount, fix race with close() + - LP: #1053039 + * NFS: Fix the initialisation of the readdir 'cookieverf' array + - LP: #1053039 + * NFS: Fix a problem with the legacy binary mount code + - LP: #1053039 + * staging: comedi: das08: Correct AI encoding for das08jr-16-ao + - LP: #1053039 + * staging: comedi: das08: Correct AO output for das08jr-16-ao + - LP: #1053039 + * staging: vt6656: [BUG] - Failed connection, incorrect endian. + - LP: #1053039 + * xhci: Recognize USB 3.0 devices as superspeed at powerup + - LP: #1000424, #1053039 + * rt2x00: Identify ASUS USB-N53 device. + - LP: #1053039 + * rt2x00: Fix word size of rt2500usb MAC_CSR19 register. + - LP: #1053039 + * rt2x00: Fix rfkill polling prior to interface start. + - LP: #1053039 + * rt2800usb: Added rx packet length validity check + - LP: #1053039 + * staging: zcache: fix cleancache race condition with shrinker + - LP: #1053039 + * xhci: Switch PPT ports to EHCI on shutdown. + - LP: #1053039 + * xhci: Fix a logical vs bitwise AND bug + - LP: #1053039 + * xhci: Make handover code more robust + - LP: #1053039 + * usb: host: xhci: Fix Compliance Mode on SN65LVPE502CP Hardware + - LP: #1053039 + * usb: host: xhci: fix compilation error for non-PCI based stacks + - LP: #1053039 + * tty: serial: imx: console write routing is unsafe on SMP + - LP: #1053039 + * tty: serial: imx: don't reinit clock in imx_setup_ufcr() + - LP: #1053039 + * ibmveth: Fix alignment of rx queue bug + - LP: #1053039 + * USB: ftdi-sio: add support for more Physik Instrumente devices + - LP: #1053039 + * USB: ftdi_sio: PID for NZR SEM 16+ USB + - LP: #1053039 + * USB: add device quirk for Joss Optical touchboard + - LP: #1053039 + * kobject: fix oops with "input0: bad kobj_uevent_env content in + show_uevent()" + - LP: #1053039 + * NFS: return error from decode_getfh in decode open + - LP: #1053039 + * SUNRPC: Fix a UDP transport regression + - LP: #1053039 + * ARM: 7513/1: Make sure dtc is built before running it + - LP: #1053039 + * ARM: 7526/1: traps: send SIGILL if get_user fails on undef handling + path + - LP: #1053039 + * ALSA: hda - Fix Oops at codec reset/reconfig + - LP: #1053039 + * USB: ftdi_sio: do not claim CDC ACM function + - LP: #1053039 + * staging: r8712u: fix bug in r8712_recv_indicatepkt() + - LP: #1053039 + * EHCI: Update qTD next pointer in QH overlay region during unlink + - LP: #1053039 + * hwmon: (twl4030-madc-hwmon) Initialize uninitialized structure elements + - LP: #1053039 + * ALSA: ice1724: Use linear scale for AK4396 volume control. + - LP: #1053039 + * vmwgfx: add dumb ioctl support + - LP: #1053039 + * ahci: Add alternate identifier for the 88SE9172 + - LP: #1053039 + * drm/radeon: fix up pll selection on DCE5/6 + - LP: #1053039 + * drm/radeon: fix ordering in pll picking on dce4+ + - LP: #1053039 + * drm/radeon: rework pll selection (v3) + - LP: #1053039 + * drm/nouveau: fix booting with plymouth + dumb support + - LP: #1053039 + * VFS: make vfs_fstat() use f[get|put]_light() + - LP: #1053039 + * vfs: make O_PATH file descriptors usable for 'fstat()' + - LP: #1053039 + * Linux 3.2.30 + - LP: #1053039 + * drm/i915: HDMI - Clear Audio Enable bit for Hot Plug + - LP: #1056729 + * UBUNTU SAUCE: apparmor: fix IRQ stack overflow + - LP: #1056078 + + [ Wen-chien Jesse Sung ] + + * SAUCE: drm/i915: Explicitly disable RC6 for certain models + - LP: #1002170, #1008867 + + -- Luis Henriques Wed, 26 Sep 2012 17:26:35 +0100 + +linux (3.2.0-31.50) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1047242 + + [ Dave Airlie ] + + * SAUCE: drm/vmwgfx: add MODULE_DEVICE_TABLE so vmwgfx loads at boot + - LP: #1039157 + + [ Kamal Mostafa ] + + * SAUCE: input: Cypress PS/2 Trackpad move PSMOUSE_CYPRESS enum + - LP: #1041594 + + -- Luis Henriques Fri, 07 Sep 2012 16:36:58 +0100 + +linux (3.2.0-31.49) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1046216 + + [ Cypress Semiconductor Corporation ] + + * SAUCE: input: Cypress PS/2 Trackpad mouse driver + - LP: #978807 + * SAUCE: input: Cypress PS/2 Trackpad link driver into psmouse-base + - LP: #978807 + + [ Ike Panhc ] + + * [Config] Enable CONFIG_DEVPTS_MULTIPLE_INSTANCES for highbank + - LP: #1038259 + + [ Kamal Mostafa ] + + * SAUCE: input: Cypress PS/2 Trackpad code style cleanup + - LP: #978807 + * SAUCE: input: Cypress PS/2 Trackpad eliminate dead code + - LP: #978807 + * SAUCE: input: Cypress PS/2 Trackpad fix no-config stubs + - LP: #978807 + * SAUCE: input: Cypress PS/2 Trackpad set default debug_level=0 + - LP: #978807 + + [ Stefan Bader ] + + * Revert "SAUCE: fix pv-ops for legacy Xen" + - LP: #1044550 + * SAUCE: Force xsave off on older Xen hypervisors + - LP: #1044550 + + [ Tim Gardner ] + + * [Config] Add smsc{79}5xx to nic-usb-modules + - LP: #1041397 + + [ Upstream Kernel Changes ] + + * Revert "samsung-laptop: make the dmi check less strict" + - LP: #1028151 + * rds: set correct msg_namelen + - LP: #1031112 + - CVE-2012-3430 + * bnx2: Fix bug in bnx2_free_tx_skbs(). + - LP: #1039087 + * sch_sfb: Fix missing NULL check + - LP: #1039087 + * sctp: Fix list corruption resulting from freeing an association on a + list + - LP: #1039087 + * caif: Fix access to freed pernet memory + - LP: #1039087 + * cipso: don't follow a NULL pointer when setsockopt() is called + - LP: #1039087 + * caif: fix NULL pointer check + - LP: #1039087 + * wanmain: comparing array with NULL + - LP: #1039087 + * tcp: Add TCP_USER_TIMEOUT negative value check + - LP: #1039087 + * USB: kaweth.c: use GFP_ATOMIC under spin_lock + - LP: #1039087 + * net: fix rtnetlink IFF_PROMISC and IFF_ALLMULTI handling + - LP: #1039087 + * tcp: perform DMA to userspace only if there is a task waiting for it + - LP: #1039087 + * net/tun: fix ioctl() based info leaks + - LP: #1039087 + * e1000: add dropped DMA receive enable back in for WoL + - LP: #1039087 + * rtlwifi: rtl8192cu: Change buffer allocation for synchronous reads + - LP: #1039087 + * hfsplus: fix overflow in sector calculations in hfsplus_submit_bio + - LP: #1039087 + * drm/i915: fixup seqno allocation logic for lazy_request + - LP: #1039087 + * mac80211: cancel mesh path timer + - LP: #1039087 + * ath9k: Add PID/VID support for AR1111 + - LP: #1039087 + * ARM: mxs: Remove MMAP_MIN_ADDR setting from mxs_defconfig + - LP: #1039087 + * ALSA: hda - add dock support for Thinkpad T430s + - LP: #1039087 + * cfg80211: process pending events when unregistering net device + - LP: #1039087 + * rt61pci: fix NULL pointer dereference in config_lna_gain + - LP: #1039087 + * iwlwifi: disable greenfield transmissions as a workaround + - LP: #1039087 + * ALSA: hda - add dock support for Thinkpad X230 + - LP: #1039087 + * e1000e: NIC goes up and immediately goes down + - LP: #1039087 + * ALSA: hda - remove quirk for Dell Vostro 1015 + - LP: #1039087 + * ALSA: hda - Fix double quirk for Quanta FL1 / Lenovo Ideapad + - LP: #1039087 + * ARM: pxa: remove irq_to_gpio from ezx-pcap driver + - LP: #1039087 + * Input: eeti_ts: pass gpio value instead of IRQ + - LP: #1039087 + * drm/i915: Add wait_for in init_ring_common + - LP: #1039087 + * drm/i915: correctly order the ring init sequence + - LP: #1039087 + * s390/compat: fix compat wrappers for process_vm system calls + - LP: #1039087 + * s390/compat: fix mmap compat system calls + - LP: #1039087 + * drm/radeon: fix bank tiling parameters on evergreen + - LP: #1039087 + * drm/radeon: fix bank tiling parameters on cayman + - LP: #1039087 + * drm/radeon: do not reenable crtc after moving vram start address + - LP: #1039087 + * Linux 3.2.28 + - LP: #1039087 + * be2net: reduce gso_max_size setting to account for ethernet header. + - LP: #1035348 + * be2net: Fix to trim skb for padded vlan packets to workaround an ASIC + Bug + - LP: #1035348 + * be2net: Fix Endian + - LP: #1035348 + * be2net: dont pull too much data in skb linear part + - LP: #1035348 + * be2net: Fix to parse RSS hash from Receive completions correctly. + - LP: #1035348 + * net: Allow driver to limit number of GSO segments per skb + - LP: #1037456 + - CVE-2012-3412 + * tcp: do not scale TSO segment size with reordering degree + - LP: #1037456 + - CVE-2012-3412 + * tcp: Apply device TSO segment limit earlier + - LP: #1037456 + - CVE-2012-3412 + * sfc: Replace some literal constants with EFX_PAGE_SIZE/EFX_BUF_SIZE + - LP: #1037456 + - CVE-2012-3412 + * sfc: Fix maximum number of TSO segments and minimum TX queue size + - LP: #1037456 + - CVE-2012-3412 + * fixing dmi match for hp t5745 and hp st5747 thin client + - LP: #995998 + * drm/i915: Add support for resetting the SO write pointers on gen7. + - LP: #1037293 + * mei: add mei_quirk_probe function + - LP: #1041164 + * asus-nb-wmi: add some video toggle keys + - LP: #1022427 + * iwlwifi: trace debug messages + - LP: #1035889 + + -- Luis Henriques Wed, 05 Sep 2012 09:56:50 +0100 + +linux (3.2.0-30.48) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1041217 + + [ Upstream Kernel Changes ] + + * mutex: Place lock in contended state after fastpath_lock failure + - LP: #1041114 + + -- Luis Henriques Fri, 24 Aug 2012 14:14:43 +0100 + +linux (3.2.0-30.47) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1036581 + + [ Andy Whitcroft ] + + * add support for generating binary device trees and install them in + /lib/firmware + - LP: #1030600 + * [Config] add dtb_file configuration for highbank + - LP: #1030600 + + [ Chris Van Hoof ] + + * SAUCE: dell-laptop: additional rfkill blacklist Dell XPS 13 + - LP: #1030957 + * [Config] Add cifs support to the nfs-modules list + - LP: #1031398 + + [ Daniel P. Berrange ] + + * SAUCE: (drop after 3.6) Forbid invocation of kexec_load() outside + initial PID namespace + - LP: #1034125 + + [ Dann Frazier ] + + * [Config] Compile the rtc-pl031 driver builtin on the highbank kernel + flavour + - LP: #1035110 + + [ Douglas Bagnall ] + + * SAUCE: Unlock the rc_dev lock when the raw device is missing + - LP: #1015836 + + [ Rob Herring ] + + * SAUCE: ARM: highbank: add soft power and reset key event handling + - LP: #1033853 + * SAUCE: ARM: highbank: use writel_relaxed variant for pwr requests + - LP: #1033853 + * SAUCE: ahci: un-staticize ahci_dev_classify + - LP: #1033853 + * SAUCE: ahci_platform: add custom hard reset for Calxeda ahci ctrlr + - LP: #1033853 + + [ Stefan Bader ] + + * (pre-stable) KVM: VMX: Set CPU_BASED_RDPMC_EXITING for nested + - LP: #1031090 + + [ Tim Gardner ] + + * [Config] updateconfigs + + [ Upstream Kernel Changes ] + + * ideapad: generate valid key event only + - LP: #1029834 + * mm: reduce the amount of work done when updating min_free_kbytes + - LP: #1032640 + * mm: compaction: allow compaction to isolate dirty pages + - LP: #1032640 + * mm: compaction: determine if dirty pages can be migrated without + blocking within ->migratepage + - LP: #1032640 + * mm: page allocator: do not call direct reclaim for THP allocations + while compaction is deferred + - LP: #1032640 + * mm: compaction: make isolate_lru_page() filter-aware again + - LP: #1032640 + * mm: compaction: introduce sync-light migration for use by compaction + - LP: #1032640 + * mm: vmscan: when reclaiming for compaction, ensure there are sufficient + free pages available + - LP: #1032640 + * mm: vmscan: do not OOM if aborting reclaim to start compaction + - LP: #1032640 + * mm: vmscan: check if reclaim should really abort even if + compaction_ready() is true for one zone + - LP: #1032640 + * vmscan: promote shared file mapped pages + - LP: #1032640 + * vmscan: activate executable pages after first usage + - LP: #1032640 + * mm/vmscan.c: consider swap space when deciding whether to continue + reclaim + - LP: #1032640 + * mm: test PageSwapBacked in lumpy reclaim + - LP: #1032640 + * mm: vmscan: convert global reclaim to per-memcg LRU lists + - LP: #1032640 + * cpuset: mm: reduce large amounts of memory barrier related damage v3 + - LP: #1032640 + * mm/hugetlb: fix warning in alloc_huge_page/dequeue_huge_page_vma + - LP: #1032640 + * Fix NULL dereferences in scsi_cmd_to_driver + - LP: #1032640 + * sched/nohz: Fix rq->cpu_load[] calculations + - LP: #1032640 + * sched/nohz: Fix rq->cpu_load calculations some more + - LP: #1032640 + * powerpc/ftrace: Fix assembly trampoline register usage + - LP: #1032640 + * cx25821: Remove bad strcpy to read-only char* + - LP: #1032640 + * x86: Fix boot on Twinhead H12Y + - LP: #1032640 + * r8169: RxConfig hack for the 8168evl. + - LP: #1032640 + * cifs: when CONFIG_HIGHMEM is set, serialize the read/write kmaps + - LP: #1032640 + * wireless: rt2x00: rt2800usb add more devices ids + - LP: #1032640 + * wireless: rt2x00: rt2800usb more devices were identified + - LP: #1032640 + * rt2800usb: 2001:3c17 is an RT3370 device + - LP: #1032640 + * usb: gadget: Fix g_ether interface link status + - LP: #1032640 + * ext4: pass a char * to ext4_count_free() instead of a buffer_head ptr + - LP: #1032640 + * ftrace: Disable function tracing during suspend/resume and hibernation, + again + - LP: #1032640 + * x86, microcode: microcode_core.c simple_strtoul cleanup + - LP: #1032640 + * x86, microcode: Sanitize per-cpu microcode reloading interface + - LP: #1032640 + * usbdevfs: Correct amount of data copied to user in processcompl_compat + - LP: #1032640 + * ext4: fix overhead calculation used by ext4_statfs() + - LP: #1032640 + * udf: Improve table length check to avoid possible overflow + - LP: #1032640 + * powerpc: Add "memory" attribute for mfmsr() + - LP: #1032640 + * mwifiex: correction in mcs index check + - LP: #1032640 + * USB: option: Ignore ZTE (Vodafone) K3570/71 net interfaces + - LP: #1032640 + * USB: option: add ZTE MF821D + - LP: #1032640 + * target: Add generation of LOGICAL BLOCK ADDRESS OUT OF RANGE + - LP: #1032640 + * target: Add range checking to UNMAP emulation + - LP: #1032640 + * target: Fix reading of data length fields for UNMAP commands + - LP: #1032640 + * target: Fix possible integer underflow in UNMAP emulation + - LP: #1032640 + * target: Check number of unmap descriptors against our limit + - LP: #1032640 + * s390/idle: fix sequence handling vs cpu hotplug + - LP: #1032640 + * rtlwifi: rtl8192de: Fix phy-based version calculation + - LP: #1032640 + * workqueue: perform cpu down operations from low priority cpu_notifier() + - LP: #1032640 + * ALSA: hda - Add support for Realtek ALC282 + - LP: #1025377, #1032640 + * iommu/amd: Fix hotplug with iommu=pt + - LP: #1032640 + * drm/radeon: Try harder to avoid HW cursor ending on a multiple of 128 + columns. + - LP: #1032640 + * ALSA: hda - Turn on PIN_OUT from hdmi playback prepare. + - LP: #1032640 + * block: add blk_queue_dead() + - LP: #1032640 + * Fix device removal NULL pointer dereference + - LP: #1032640 + * Avoid dangling pointer in scsi_requeue_command() + - LP: #1032640 + * fix hot unplug vs async scan race + - LP: #1032640 + * fix eh wakeup (scsi_schedule_eh vs scsi_restart_operations) + - LP: #1032640 + * libsas: continue revalidation + - LP: #1032640 + * libsas: fix sas_discover_devices return code handling + - LP: #1032640 + * iscsi-target: Drop bogus struct file usage for iSCSI/SCTP + - LP: #1032640 + * mmc: sdhci-pci: CaFe has broken card detection + - LP: #1032640 + * ext4: don't let i_reserved_meta_blocks go negative + - LP: #1032640 + * ext4: undo ext4_calc_metadata_amount if we fail to claim space + - LP: #1032640 + * ASoC: dapm: Fix _PRE and _POST events for DAPM performance improvements + - LP: #1032640 + * locks: fix checking of fcntl_setlease argument + - LP: #1032640 + * ACPI/AC: prevent OOPS on some boxes due to missing check + power_supply_register() return value check + - LP: #1032640 + * drm/radeon: fix bo creation retry path + - LP: #1032640 + * drm/radeon: fix non revealent error message + - LP: #1032640 + * drm/radeon: fix hotplug of DP to DVI|HDMI passive adapters (v2) + - LP: #1032640 + * drm/radeon: on hotplug force link training to happen (v2) + - LP: #1032640 + * Btrfs: call the ordered free operation without any locks held + - LP: #1032640 + * nouveau: Fix alignment requirements on src and dst addresses + - LP: #1032640 + * mm: fix wrong argument of migrate_huge_pages() in + soft_offline_huge_page() + - LP: #1032640 + * Linux 3.2.25 + - LP: #1032640 + * x86: Simplify code by removing a !SMP #ifdefs from 'struct cpuinfo_x86' + - LP: #1033522 + * Linux 3.2.26 + - LP: #1033522 + * rt2x00: Add support for BUFFALO WLI-UC-GNM2 to rt2800usb. + - LP: #871904 + * Avoid sysfs oops when an rc_dev's raw device is absent + - LP: #1015836 + * eCryptfs: Copy up POSIX ACL and read-only flags from lower mount + - LP: #1009207 + * net: calxedaxgmac: fix hang on rx refill + - LP: #1033853 + * eCryptfs: Initialize empty lower files when opening them + - LP: #911507 + * eCryptfs: Revert to a writethrough cache model + - LP: #1034012 + * eCryptfs: Unlink lower inode when ecryptfs_create() fails + - LP: #872905 + * floppy: Cleanup disk->queue before caling put_disk() if add_disk() was + never called + - LP: #1035435 + * xen: mark local pages as FOREIGN in the m2p_override + - LP: #1035435 + * lirc_sir: make device registration work + - LP: #1035435 + * stable: update references to older 2.6 versions for 3.x + - LP: #1035435 + * ALSA: hda - add dock support for Thinkpad X230 Tablet + - LP: #1026953, #1035435 + * cfg80211: fix interface combinations check for ADHOC(IBSS) + - LP: #1035435 + * m68k: Correct the Atari ALLOWINT definition + - LP: #1035435 + * nfsd4: our filesystems are normally case sensitive + - LP: #1035435 + * random: Use arch_get_random_int instead of cycle counter if avail + - LP: #1035435 + * random: Use arch-specific RNG to initialize the entropy store + - LP: #1035435 + * random: Adjust the number of loops when initializing + - LP: #1035435 + * random: make 'add_interrupt_randomness()' do something sane + - LP: #1035435 + * random: use lockless techniques in the interrupt path + - LP: #1035435 + * random: create add_device_randomness() interface + - LP: #1035435 + * usb: feed USB device information to the /dev/random driver + - LP: #1035435 + * net: feed /dev/random with the MAC address when registering a device + - LP: #1035435 + * random: use the arch-specific rng in xfer_secondary_pool + - LP: #1035435 + * random: add new get_random_bytes_arch() function + - LP: #1035435 + * rtc: wm831x: Feed the write counter into device_add_randomness() + - LP: #1035435 + * mfd: wm831x: Feed the device UUID into device_add_randomness() + - LP: #1035435 + * ASoC: wm8994: Ensure there are enough BCLKs for four channels + - LP: #1035435 + * futex: Test for pi_mutex on fault in futex_wait_requeue_pi() + - LP: #1035435 + * futex: Fix bug in WARN_ON for NULL q.pi_state + - LP: #1035435 + * futex: Forbid uaddr == uaddr2 in futex_wait_requeue_pi() + - LP: #1035435 + * video/smscufx: fix line counting in fb_write + - LP: #1035435 + * Input: synaptics - handle out of bounds values from the hardware + - LP: #1001251, #1035435 + * ALSA: hda - Fix invalid D3 of headphone DAC on VT202x codecs + - LP: #1035435 + * ALSA: mpu401: Fix missing initialization of irq field + - LP: #1035435 + * x86, nops: Missing break resulting in incorrect selection on Intel + - LP: #1035435 + * s390/mm: downgrade page table after fork of a 31 bit process + - LP: #1035435 + * Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts + - LP: #1035435 + * dm thin: reduce endio_hook pool size + - LP: #1035435 + * dm thin: fix memory leak in process_prepared_mapping error paths + - LP: #1035435 + * random: mix in architectural randomness in extract_buf() + - LP: #1035435 + * asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID. + - LP: #1035435 + * virtio-blk: Use block layer provided spinlock + - LP: #1035435 + * s390/mm: fix fault handling for page table walk case + - LP: #1035435 + * nfs: skip commit in releasepage if we're freeing memory for fs-related + reasons + - LP: #1035435 + * md/raid1: don't abort a resync on the first badblock. + - LP: #1035435 + * pcdp: use early_ioremap/early_iounmap to access pcdp table + - LP: #1035435 + * lib/vsprintf.c: kptr_restrict: fix pK-error in SysRq show-all-timers(Q) + - LP: #1035435 + * nilfs2: fix deadlock issue between chcp and thaw ioctls + - LP: #1035435 + * SUNRPC: return negative value in case rpcbind client creation error + - LP: #1035435 + * ARM: 7466/1: disable interrupt before spinning endlessly + - LP: #1035435 + * ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+ + - LP: #1035435 + * ARM: 7476/1: vfp: only clear vfp state for current cpu in + vfp_pm_suspend + - LP: #1035435 + * ARM: 7477/1: vfp: Always save VFP state in vfp_pm_suspend on UP + - LP: #1035435 + * ARM: 7478/1: errata: extend workaround for erratum #720789 + - LP: #1035435 + * ARM: Fix undefined instruction exception handling + - LP: #1035435 + * USB: echi-dbgp: increase the controller wait time to come out of halt. + - LP: #1035435 + * ASoC: wm8962: Allow VMID time to fully ramp + - LP: #1035435 + * mm/page_alloc.c: remove pageblock_default_order() + - LP: #1035435 + * mm: setup pageblock_order before it's used by sparsemem + - LP: #1035435 + * mm: mmu_notifier: fix freed page still mapped in secondary MMU + - LP: #1035435 + * mm: hugetlbfs: close race during teardown of hugetlbfs shared page + tables + - LP: #1035435 + * ALSA: snd-usb: fix clock source validity index + - LP: #1035435 + * ALSA: hda - Support dock on Lenovo Thinkpad T530 with ALC269VC + - LP: #1035435 + * ore: Fix out-of-bounds access in _ios_obj() + - LP: #1035435 + * m68k: Make sys_atomic_cmpxchg_32 work on classic m68k + - LP: #1035435 + * drm/i915: prefer wide & slow to fast & narrow in DP configs + - LP: #1035435 + * drop_monitor: fix sleeping in invalid context warning + - LP: #1035435 + * drop_monitor: Make updating data->skb smp safe + - LP: #1035435 + * drop_monitor: prevent init path from scheduling on the wrong cpu + - LP: #1035435 + * drop_monitor: dont sleep in atomic context + - LP: #1035435 + * pch_uart: Fix missing break for 16 byte fifo + - LP: #1035435 + * pch_uart: Fix rx error interrupt setting issue + - LP: #1035435 + * pch_uart: Fix parity setting issue + - LP: #1035435 + * Linux 3.2.27 + - LP: #1035435 + * HID: multitouch: add new PID from Ideacom + - LP: #1026174 + * drm/i915: pch_irq_handler -> {ibx, cpt}_irq_handler + - LP: #1031630 + + -- Luis Henriques Wed, 15 Aug 2012 10:51:16 +0100 + +linux (3.2.0-29.46) precise-proposed; urgency=low + + [ Tim Gardner ] + + * No change upload to fix armel/armhf FTBS caused by + 'UBUNTU: [Config] SND_OMAP_SOC, SND_OMAP_SOC_MCBSP and SND_OMAP_SOC_OMAP3_BEAGLE =y' + Added ignore and ignore.module files to ABI directories. + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1029507 + + -- Luis Henriques Fri, 27 Jul 2012 17:08:57 +0100 + +linux (3.2.0-29.45) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1029507 + + [ Andy Whitcroft ] + + * SAUCE: rds_ib_send() -- prevent local pings triggering BUG_ON() + - LP: #1016299 + - CVE-2012-2372 + + [ Upstream Kernel Changes ] + + * Revert "samsung-laptop: make the dmi check less strict" + - LP: #1029431 + * samsung-laptop: make the dmi check less strict + - LP: #1029431 + * raid5: delayed stripe fix + - LP: #1029431 + * tcp: drop SYN+FIN messages + - LP: #1029431 + * tg3: Apply short DMA frag workaround to 5906 + - LP: #1029431 + * rtl8187: ->brightness_set can not sleep + - LP: #1029431 + * net/wireless: ipw2x00: add supported cipher suites to wiphy + initialization + - LP: #1029431 + * kbuild: do not check for ancient modutils tools + - LP: #1029431 + * brcmsmac: "INTERMEDIATE but not AMPDU" only when tracing + - LP: #1029431 + * ext4: Report max_batch_time option correctly + - LP: #1029431 + * NFSv4: Reduce the footprint of the idmapper + - LP: #1029431 + * NFSv4: Further reduce the footprint of the idmapper + - LP: #1029431 + * macvtap: zerocopy: fix offset calculation when building skb + - LP: #1029431 + * macvtap: zerocopy: fix truesize underestimation + - LP: #1029431 + * macvtap: zerocopy: put page when fail to get all requested user pages + - LP: #1029431 + * macvtap: zerocopy: set SKBTX_DEV_ZEROCOPY only when skb is built + successfully + - LP: #1029431 + * macvtap: zerocopy: validate vectors before building skb + - LP: #1029431 + * KVM: Fix buffer overflow in kvm_set_irq() + - LP: #1029431 + * scsi: Silence unnecessary warnings about ioctl to partition + - LP: #1029431 + * iommu/amd: Fix missing iommu_shutdown initialization in passthrough + mode + - LP: #1029431 + * iommu/amd: Initialize dma_ops for hotplug and sriov devices + - LP: #1029431 + * usb: Add support for root hub port status CAS + - LP: #1029431 + * gpiolib: wm8994: Pay attention to the value set when enabling as output + - LP: #1029431 + * sched/nohz: Rewrite and fix load-avg computation -- again + - LP: #1029431 + * USB: option: add ZTE MF60 + - LP: #1029431 + * USB: option: Add MEDIATEK product ids + - LP: #1029431 + * USB: cdc-wdm: fix lockup on error in wdm_read + - LP: #1029431 + * mtd: nandsim: don't open code a do_div helper + - LP: #1029431 + * dvb-core: Release semaphore on error path dvb_register_device() + - LP: #1029431 + * hwspinlock/core: use global ID to register hwspinlocks on multiple + devices + - LP: #1029431 + * libsas: fix taskfile corruption in sas_ata_qc_fill_rtf + - LP: #1029431 + * md/raid1: fix use-after-free bug in RAID1 data-check code. + - LP: #1029431 + * PCI: EHCI: fix crash during suspend on ASUS computers + - LP: #1029431 + * memory hotplug: fix invalid memory access caused by stale kswapd + pointer + - LP: #1029431 + * mm, thp: abort compaction if migration page cannot be charged to memcg + - LP: #1029431 + * drivers/rtc/rtc-mxc.c: fix irq enabled interrupts warning + - LP: #1029431 + * fs: ramfs: file-nommu: add SetPageUptodate() + - LP: #1029431 + * cpufreq / ACPI: Fix not loading acpi-cpufreq driver regression + - LP: #1029431 + * hwmon: (it87) Preserve configuration register bits on init + - LP: #1029431 + * ARM: SAMSUNG: fix race in s3c_adc_start for ADC + - LP: #1029431 + * block: fix infinite loop in __getblk_slow + - LP: #1029431 + * Remove easily user-triggerable BUG from generic_setlease + - LP: #1029431 + * NFC: Export nfc.h to userland + - LP: #1029431 + * PM / Hibernate: Hibernate/thaw fixes/improvements + - LP: #1029431 + * cfg80211: check iface combinations only when iface is running + - LP: #1029431 + * intel_ips: blacklist HP ProBook laptops + - LP: #1029431 + * atl1c: fix issue of transmit queue 0 timed out + - LP: #1029431 + * rt2x00usb: fix indexes ordering on RX queue kick + - LP: #1029431 + * iwlegacy: always monitor for stuck queues + - LP: #1029431 + * iwlegacy: don't mess up the SCD when removing a key + - LP: #1029431 + * e1000e: Correct link check logic for 82571 serdes + - LP: #1029431 + * tcm_fc: Fix crash seen with aborts and large reads + - LP: #1029431 + * fifo: Do not restart open() if it already found a partner + - LP: #1029431 + * target: Clean up returning errors in PR handling code + - LP: #1029431 + * target: Fix range calculation in WRITE SAME emulation when num blocks + == 0 + - LP: #1029431 + * cifs: on CONFIG_HIGHMEM machines, limit the rsize/wsize to the kmap + space + - LP: #1029431 + * cifs: always update the inode cache with the results from a FIND_* + - LP: #1029431 + * mm: fix lost kswapd wakeup in kswapd_stop() + - LP: #1029431 + * md: avoid crash when stopping md array races with closing other open + fds. + - LP: #1029431 + * md/raid1: close some possible races on write errors during resync + - LP: #1029431 + * MIPS: Properly align the .data..init_task section. + - LP: #1029431 + * UBIFS: fix a bug in empty space fix-up + - LP: #1029431 + * ore: Fix NFS crash by supporting any unaligned RAID IO + - LP: #1029431 + * ore: Remove support of partial IO request (NFS crash) + - LP: #1029431 + * pnfs-obj: don't leak objio_state if ore_write/read fails + - LP: #1029431 + * pnfs-obj: Fix __r4w_get_page when offset is beyond i_size + - LP: #1029431 + * dm raid1: fix crash with mirror recovery and discard + - LP: #1029431 + * dm raid1: set discard_zeroes_data_unsupported + - LP: #1029431 + * ntp: Fix leap-second hrtimer livelock + - LP: #1029431 + * ntp: Correct TAI offset during leap second + - LP: #1029431 + * timekeeping: Fix CLOCK_MONOTONIC inconsistency during leapsecond + - LP: #1029431 + * time: Move common updates to a function + - LP: #1029431 + * hrtimer: Provide clock_was_set_delayed() + - LP: #1029431 + * timekeeping: Fix leapsecond triggered load spike issue + - LP: #1029431 + * timekeeping: Maintain ktime_t based offsets for hrtimers + - LP: #1029431 + * hrtimers: Move lock held region in hrtimer_interrupt() + - LP: #1029431 + * timekeeping: Provide hrtimer update function + - LP: #1029431 + * hrtimer: Update hrtimer base offsets each hrtimer_interrupt + - LP: #1029431 + * timekeeping: Add missing update call in timekeeping_resume() + - LP: #1029431 + * powerpc: Fix wrong divisor in usecs_to_cputime + - LP: #1029431 + * vhost: don't forget to schedule() + - LP: #1029431 + * r8169: call netif_napi_del at errpaths and at driver unload + - LP: #1029431 + * bnx2x: fix checksum validation + - LP: #1029431 + * bnx2x: fix panic when TX ring is full + - LP: #1029431 + * net: remove skb_orphan_try() + - LP: #1029431 + * ACPI: Make acpi_skip_timer_override cover all source_irq==0 cases + - LP: #1029431 + * ACPI: Remove one board specific WARN when ignoring timer overriding + - LP: #1029431 + * ACPI: Add a quirk for "AMILO PRO V2030" to ignore the timer overriding + - LP: #1029431 + * ACPI, x86: fix Dell M6600 ACPI reboot regression via DMI + - LP: #1029431 + * ACPI sysfs.c strlen fix + - LP: #1029431 + * eCryptfs: Gracefully refuse miscdev file ops on inherited/passed files + - LP: #1029431 + * eCryptfs: Fix lockdep warning in miscdev operations + - LP: #1029431 + * eCryptfs: Properly check for O_RDONLY flag before doing privileged open + - LP: #1029431 + * ipheth: add support for iPad + - LP: #1029431 + * stmmac: Fix for nfs hang on multiple reboot + - LP: #1029431 + * bonding: debugfs and network namespaces are incompatible + - LP: #1029431 + * bonding: Manage /proc/net/bonding/ entries from the netdev events + - LP: #1029431 + * Input: bcm5974 - Add support for 2012 MacBook Pro Retina + - LP: #1029431 + * Input: xpad - handle all variations of Mad Catz Beat Pad + - LP: #1029431 + * Input: xpad - add signature for Razer Onza Tournament Edition + - LP: #1029431 + * Input: xpad - add Andamiro Pump It Up pad + - LP: #1029431 + * HID: add support for 2012 MacBook Pro Retina + - LP: #1029431 + * Linux 3.2.24 + - LP: #1029431 + + -- Luis Henriques Thu, 26 Jul 2012 16:25:24 +0100 + +linux (3.2.0-28.44) precise-proposed; urgency=low + + ## Note 3.2.0-28.44 was never uploaded and superceded by 3.2.0-29.45 ## + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1027881 + + [ Andy Whitcroft ] + + * [Packaging] getabis should be extracting all packages + - LP: #1021174 + * getabis -- series uses linux-image-extra + - LP: #1021174 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (drop after 3.2) ALSA: hda - restrict bass configuration on Dell + Inspiron 17 + - LP: #994685 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_RT2800USB_RT35XX and CONFIG_RT2800USB_RT53XX + - LP: #1019561 + + [ Manoj Iyer ] + + * SAUCE: Bluetooth: btusb: Add vendor specific ID (0a5c:21f4) BCM20702A0 + - LP: #1010281 + + [ Paolo Pisati ] + + * [Config] SND_OMAP_SOC, SND_OMAP_SOC_MCBSP and SND_OMAP_SOC_OMAP3_BEAGLE + =y + - LP: #1019321 + + [ Stefan Bader ] + + * SAUCE: sched: Fix race in task_group() + - LP: #999755 + + [ Tim Gardner ] + + * [Config] retrieve ABIs from PPA as a last attempt + + [ Upstream Kernel Changes ] + + * staging:iio:ad7606: Re-add missing scale attribute + - LP: #1022747 + * Tools: hv: verify origin of netlink connector message + - LP: #1022747 + - CVE-2012-2669 + * edac: avoid mce decoding crash after edac driver unloaded + - LP: #1022747 + * hwrng: atmel-rng - fix data valid check + - LP: #1022747 + * staging: r8712u: Add new USB IDs + - LP: #1022747 + * hwmon: (applesmc) Limit key length in warning messages + - LP: #1022747 + * mm: pmd_read_atomic: fix 32bit PAE pmd walk vs pmd_populate SMP race + condition + - LP: #1022747 + * thp: avoid atomic64_read in pmd_read_atomic for 32bit PAE + - LP: #1022747 + * nilfs2: ensure proper cache clearing for gc-inodes + - LP: #1022747 + * e1000e: Disable ASPM L1 on 82574 + - LP: #1022747 + * e1000e: Remove special case for 82573/82574 ASPM L1 disablement + - LP: #1022747 + * staging:rts_pstor:Fix possible panic by NULL pointer dereference + - LP: #1022747 + * gspca-core: Fix buffers staying in queued state after a stream_off + - LP: #1022747 + * smsusb: add autodetection support for USB ID 2040:f5a0 + - LP: #1022747 + * drm/edid: don't return stack garbage from supports_rb + - LP: #1022747 + * drm/nouveau/fbcon: using nv_two_heads is not a good idea + - LP: #1022747 + * dm thin: reinstate missing mempool_free in cell_release_singleton + - LP: #1022747 + * ath9k: Fix a WARNING on suspend/resume with IBSS + - LP: #1022747 + * cfg80211: fix potential deadlock in regulatory + - LP: #1022747 + * ath9k: Fix softlockup in AR9485 + - LP: #1022747 + * can: c_can: precedence error in c_can_chip_config() + - LP: #1022747 + * ath9k: fix a tx rate duration calculation bug + - LP: #1022747 + * batman-adv: fix skb->data assignment + - LP: #1022747 + * ARM: SAMSUNG: Should check for IS_ERR(clk) instead of NULL + - LP: #1022747 + * ath9k_hw: avoid possible infinite loop in ar9003_get_pll_sqsum_dvc + - LP: #1022747 + * iwlwifi: remove log_event debugfs file debugging is disabled + - LP: #1022747 + * ARM: SAMSUNG: Fix for S3C2412 EBI memory mapping + - LP: #1022747 + * USB: option: add id for Cellient MEN-200 + - LP: #1022747 + * oprofile: perf: use NR_CPUS instead or nr_cpumask_bits for static array + - LP: #1022747 + * drm/i915: Refactor the deferred PM_IIR handling into a single function + - LP: #1022747 + * drm/i915: rip out the PM_IIR WARN + - LP: #1022747 + * drm/i915: Fix eDP blank screen after S3 resume on HP desktops + - LP: #1022747 + * PM / Sleep: Prevent waiting forever on asynchronous suspend after abort + - LP: #1022747 + * x86, cpufeature: Rename X86_FEATURE_DTS to X86_FEATURE_DTHERM + - LP: #1022747 + * stable: Allow merging of backports for serious user-visible performance + issues + - LP: #1022747 + * ALSA: hda - Add Realtek ALC280 codec support + - LP: #1017017, #1022747 + * USB: option: Add USB ID for Novatel Ovation MC551 + - LP: #1022747 + * USB: CP210x Add 10 Device IDs + - LP: #1022747 + * xen/netfront: teardown the device before unregistering it. + - LP: #1022747 + * can: flexcan: use be32_to_cpup to handle the value of dt entry + - LP: #1022747 + * acpi_pad: fix power_saving thread deadlock + - LP: #1022747 + * batman-adv: only drop packets of known wifi clients + - LP: #1022747 + * Linux 3.2.22 + - LP: #1022747 + * ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification + - LP: #904261 + * net: sock: validate data_len before allocating skb in + sock_alloc_send_pskb() + - LP: #1006622 + - CVE-2012-2136 + * epoll: clear the tfile_check_list on -ELOOP + - LP: #1021811 + - CVE-2012-3375 + * splice: fix racy pipe->buffers uses + - LP: #1024020 + * umem: fix up unplugging + - LP: #1024020 + * mwifiex: fix 11n rx packet drop issue + - LP: #1024020 + * mwifiex: fix WPS eapol handshake failure + - LP: #1024020 + * NFC: Prevent multiple buffer overflows in NCI + - LP: #1024020 + * ath9k: fix dynamic WEP related regression + - LP: #1024020 + * NFC: Return from rawsock_release when sk is NULL + - LP: #1024020 + * rtlwifi: rtl8192cu: New USB IDs + - LP: #1024020 + * ath9k: enable serialize_regmode for non-PCIE AR9287 + - LP: #1024020 + * mac80211: correct behaviour on unrecognised action frames + - LP: #1024020 + * ASoC: tlv320aic3x: Fix codec pll configure bug + - LP: #1024020 + * powerpc/xmon: Use cpumask iterator to avoid warning + - LP: #1024020 + * powerpc/kvm: sldi should be sld + - LP: #1024020 + * md/raid10: Don't try to recovery unmatched (and unused) chunks. + - LP: #1024020 + * md/raid5: Do not add data_offset before call to is_badblock + - LP: #1024020 + * md/raid5: In ops_run_io, inc nr_pending before calling + md_wait_for_blocked_rdev + - LP: #1024020 + * md/raid10: fix failure when trying to repair a read error. + - LP: #1024020 + * drm/i915: kick any firmware framebuffers before claiming the gtt + - LP: #1024020 + * dm persistent data: fix shadow_info_leak on dm_tm_destroy + - LP: #1024020 + * dm persistent data: handle space map checker creation failure + - LP: #1024020 + * dm persistent data: fix allocation failure in space map checker init + - LP: #1024020 + * tracing: change CPU ring buffer state from tracing_cpumask + - LP: #1024020 + * mwifiex: fix wrong return values in add_virtual_intf() error cases + - LP: #1024020 + * udf: Use 'ret' instead of abusing 'i' in udf_load_logicalvol() + - LP: #1024020 + * udf: Avoid run away loop when partition table length is corrupted + - LP: #1024020 + * udf: Fortify loading of sparing table + - LP: #1024020 + * ARM: fix rcu stalls on SMP platforms + - LP: #1024020 + * cipso: handle CIPSO options correctly when NetLabel is disabled + - LP: #1024020 + * net: l2tp_eth: fix kernel panic on rmmod l2tp_eth + - LP: #1024020 + * l2tp: fix a race in l2tp_ip_sendmsg() + - LP: #1024020 + * sky2: fix checksum bit management on some chips + - LP: #1024020 + * be2net: fix a race in be_xmit() + - LP: #1024020 + * dummy: fix rcu_sched self-detected stalls + - LP: #1024020 + * bonding: Fix corrupted queue_mapping + - LP: #1024020 + * ethtool: allow ETHTOOL_GSSET_INFO for users + - LP: #1024020 + * netpoll: fix netpoll_send_udp() bugs + - LP: #1024020 + * ipv6: Move ipv6 proc file registration to end of init order + - LP: #1024020 + * bridge: Assign rtnl_link_ops to bridge devices created via ioctl (v2) + - LP: #1024020 + * Btrfs: run delayed directory updates during log replay + - LP: #1024020 + * cifs: when server doesn't set CAP_LARGE_READ_X, cap default rsize at + MaxBufferSize + - LP: #1024020 + * ocfs2: clear unaligned io flag when dio fails + - LP: #1024020 + * aio: make kiocb->private NUll in init_sync_kiocb() + - LP: #1024020 + * mtd: cafe_nand: fix an & vs | mistake + - LP: #1024020 + * mm: Hold a file reference in madvise_remove + - LP: #1024020 + * tcm_fc: Resolve suspicious RCU usage warnings + - LP: #1024020 + * vfs: make O_PATH file descriptors usable for 'fchdir()' + - LP: #1024020 + * Linux 3.2.23 + - LP: #1024020 + * asix: asix_rx_fixup surgery to reduce skb truesizes + - LP: #947723 + * ALSA: hda - Fix internal mic for Lenovo Ideapad U300s + - LP: #903853 + * ALSA: hda - Fix oops caused by recent commit "Fix internal mic for + Lenovo Ideapad U300s" + - LP: #903853 + + -- Luis Henriques Mon, 23 Jul 2012 12:03:50 +0100 + +linux (3.2.0-27.43) precise-proposed; urgency=low + + [ Andy Whitcroft ] + + * No change upload to fix .ddeb generation in the PPA. + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1020016 + + -- Andy Whitcroft Fri, 06 Jul 2012 10:59:46 +0100 + +linux (3.2.0-27.42) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1020016 + + [ Chris J Arges ] + + * PACKAGING: add .gnu_debuglink sections to .ko files + - LP: #669641 + + [ Ike Panhc ] + + * [Config] Updateconfigs + - LP: #1008345 + + [ Luis Henriques ] + + * SAUCE: (upstreamed) [media] ene_ir: Fix driver initialisation + - LP: #1014800 + * SAUCE: ocfs2: Fix NULL pointer dereferrence in + __ocfs2_change_file_space + - LP: #1006012 + + [ Rob Herring ] + + * SAUCE: net: calxedaxgmac: enable rx cut-thru mode + - LP: #1008345 + * SAUCE: EDAC: Add support for the highbank platform memory + - LP: #1008345 + * SAUCE: EDAC: add support for highbank platform L2 cache ecc + - LP: #1008345 + + [ Seth Forshee ] + + * (pre-stable): bcma: add ext PA workaround for BCM4331 and BCM43431 + - LP: #925577 + + [ Takashi Iwai ] + + * SAUCE: ALSA: hda - Fix power-map regression for HP dv6 & co + - LP: #1013183 + + [ Tim Gardner ] + + * [Config] Enable CONFIG_CGROUPS for highbank + - LP: #1014692 + + [ Upstream Kernel Changes ] + + * Revert "net: maintain namespace isolation between vlan and real device" + - LP: #1013723 + * x86/amd: Re-enable CPU topology extensions in case BIOS has disabled it + - LP: #1009087 + * hwmon: (k10temp) Add support for AMD Trinity CPUs + - LP: #1009086 + * hwmon: (fam15h_power) Increase output resolution + - LP: #1009086 + * Input: wacom - use BTN_TOOL_FINGER to indicate touch device type + - LP: #1009435 + * Input: wacom - use switch statement for wacom_tpc_irq() + - LP: #1009435 + * Input: wacom - isolate input registration + - LP: #1009435 + * Input: wacom - wireless monitor framework + - LP: #1009435 + * Input: wacom - create inputs when wireless connect + - LP: #1009435 + * Input: wacom - wireless battery status + - LP: #1009435 + * Input: wacom - check for allocation failure in probe() + - LP: #1009435 + * Input: wacom - add basic Intuos5 support + - LP: #1009435 + * Input: wacom - add Intuos5 Touch Ring/ExpressKey support + - LP: #1009435 + * Input: wacom - add Intuos5 Touch Ring LED support + - LP: #1009435 + * Input: wacom - add Intuos5 multitouch sensor support + - LP: #1009435 + * iommu/amd: Add workaround for event log erratum + - LP: #1013723 + * MIPS: BCM63XX: Add missing include for bcm63xx_gpio.h + - LP: #1013723 + * cifs: Include backup intent search flags during searches {try #2) + - LP: #1013723 + * sunrpc: fix loss of task->tk_status after rpc_delay call in + xprt_alloc_slot + - LP: #1013723 + * exofs: Fix CRASH on very early IO errors. + - LP: #1013723 + * cifs: fix oops while traversing open file list (try #4) + - LP: #1013723 + * Fix dm-multipath starvation when scsi host is busy + - LP: #1013723 + * ixp4xx: fix compilation by adding gpiolib support + - LP: #1013723 + * drm/i915: properly handle interlaced bit for sdvo dtd conversion + - LP: #1013723 + * drm/i915: enable vdd when switching off the eDP panel + - LP: #1013723 + * drm/i915: Ignore LVDS on hp t5745 and hp st5747 thin client + - LP: #1013723 + * drm/i915: no lvds quirk for HP t5740e Thin Client + - LP: #1013723 + * drm/i915: wait for a vblank to pass after tv detect + - LP: #1013723 + * drm/i915: Update GEN6_RP_CONTROL definitions + - LP: #1013723 + * drm/i915: always use RPNSWREQ for turbo change requests + - LP: #1013723 + * solos-pci: Fix DMA support + - LP: #1013723 + * microblaze: Do not select GENERIC_GPIO by default + - LP: #1013723 + * fix boot failure on 32-bit systems caused by branch stubs placed before + .text + - LP: #1013723 + * fix TLB fault path on PA2.0 narrow systems + - LP: #1013723 + * iwlwifi: update BT traffic load states correctly + - LP: #1013723 + * iwlwifi: do not use shadow registers by default + - LP: #1013723 + * wl1251: fix oops on early interrupt + - LP: #1013723 + * NFSv4: Map NFS4ERR_SHARE_DENIED into an EACCES error instead of EIO + - LP: #1013723 + * drm/radeon: fix XFX quirk + - LP: #1013723 + * ath9k: fix a use-after-free-bug when ath_tx_setup_buffer() fails + - LP: #1013723 + * mac80211: fix ADDBA declined after suspend with wowlan + - LP: #1013723 + * mm/fork: fix overflow in vma length when copying mmap on clone + - LP: #1013723 + * mm: consider all swapped back pages in used-once logic + - LP: #1013723 + * hugetlb: fix resv_map leak in error path + - LP: #1013723 + * mm/vmalloc.c: change void* into explict vm_struct* + - LP: #1013723 + * mm: fix faulty initialization in vmalloc_init() + - LP: #1013723 + * fix scsi_wait_scan + - LP: #1013723 + * mm: fix vma_resv_map() NULL pointer + - LP: #1013723 + * x86, amd, xen: Avoid NULL pointer paravirt references + - LP: #1013723 + * slub: fix a memory leak in get_partial_node() + - LP: #1013723 + * ext4: force ro mount if ext4_setup_super() fails + - LP: #1013723 + * ext4: disallow hard-linked directory in ext4_lookup + - LP: #1013723 + * mtd: nand: fix scan_read_raw_oob + - LP: #1013723 + * vfs: increment iversion when a file is truncated + - LP: #1013723 + * vfs: umount_tree() might be called on subtree that had never made it + - LP: #1013723 + * ext4: add missing save_error_info() to ext4_error() + - LP: #1013723 + * ALSA: usb-audio: fix rate_list memory leak + - LP: #1013723 + * ext4: add ext4_mb_unload_buddy in the error path + - LP: #1013723 + * ext4: remove mb_groups before tearing down the buddy_cache + - LP: #1013723 + * drm/radeon: fix bank information in tiling config + - LP: #1013723 + * drm/radeon: properly program gart on rv740, juniper, cypress, barts, + hemlock + - LP: #1013723 + * drm/radeon: fix HD6790, HD6570 backend programming + - LP: #1013723 + * drm/ttm: Fix spinlock imbalance + - LP: #1013723 + * drm/vmwgfx: Fix nasty write past alloced memory area + - LP: #1013723 + * mtd: of_parts: fix breakage in Kconfig + - LP: #1013723 + * fec_mpc52xx: fix timestamp filtering + - LP: #1013723 + * Bluetooth: btusb: Add USB device ID "0a5c 21e8" + - LP: #1013723 + * Bluetooth: btusb: typo in Broadcom SoftSailing id + - LP: #1013723 + * Bluetooth: Add support for Atheros [13d3:3362] + - LP: #1013723 + * Bluetooth: Add support for AR3012 [0cf3:e004] + - LP: #1013723, #922715 + * Add Foxconn / Hon Hai IDs for btusb module + - LP: #1013723 + * Bluetooth: Add support for Foxconn/Hon Hai AR5BBU22 0489:E03C + - LP: #1013723 + * ipv4: Do not use dead fib_info entries. + - LP: #1013723 + * ipv4: fix the rcu race between free_fib_info and ip_route_output_slow + - LP: #1013723 + * set fake_rtable's dst to NULL to avoid kernel Oops + - LP: #1013723 + * ipv6: fix incorrect ipsec fragment + - LP: #1013723 + * l2tp: fix oops in L2TP IP sockets for connect() AF_UNSPEC case + - LP: #1013723 + * r8169: missing barriers. + - LP: #1013723 + * r8169: fix early queue wake-up. + - LP: #1013723 + * r8169: fix unsigned int wraparound with TSO + - LP: #1013723 + * sctp: check cached dst before using it + - LP: #1013723 + * skb: avoid unnecessary reallocations in __skb_cow + - LP: #1013723 + * xfrm: take net hdr len into account for esp payload size calculation + - LP: #1013723 + * ACPI battery: only refresh the sysfs files when pertinent information + changes + - LP: #1013723 + * target/file: Use O_DSYNC by default for FILEIO backends + - LP: #1013723 + * iommu/amd: Cache pdev pointer to root-bridge + - LP: #1013723 + * drm/radeon/kms: add new Palm, Sumo PCI ids + - LP: #1013723 + * drm/radeon/kms: add new BTC PCI ids + - LP: #1013723 + * btree: fix tree corruption in btree_get_prev() + - LP: #1013723 + * kbuild: install kernel-page-flags.h + - LP: #1013723 + * asix: allow full size 8021Q frames to be received + - LP: #1013723 + * ext4: don't trash state flags in EXT4_IOC_SETFLAGS + - LP: #1013723 + * ext4: don't set i_flags in EXT4_IOC_SETFLAGS + - LP: #1013723 + * Linux 3.2.20 + - LP: #1013723 + * drm/i915: Finish any pending operations on the framebuffer before + disabling + - LP: #982415 + * drm/i915: Remove use of the autoreported ringbuffer HEAD position + - LP: #1015120 + * drm/i915: Do the fallback non-IRQ wait in ring throttle, too. + - LP: #999910 + * drm/i915: Mark the ringbuffers as being in the GTT domain + - LP: #1015573 + * drm/i915: hold forcewake around ring hw init + - LP: #1015573 + * drm/i915: Unpin the flip target if we fail to queue the flip + - LP: #1015573 + * drm/i915: fix up ivb plane 3 pageflips + - LP: #1015573 + * char/agp: add another Ironlake host bridge + - LP: #1015573 + * x86/uv: Fix UV2 BAU legacy mode + - LP: #1015573 + * powerpc: Fix kernel panic during kernel module load + - LP: #1015573 + * drm/nouveau: determine a value for display_info.bpc if edid doesn't + - LP: #1015573 + * drm/nouveau: default to 8bpc for non-LVDS panels if EDID isn't useful + - LP: #1015573 + * drm/nouveau/disp: fix dithering not being enabled on some eDP macbooks + - LP: #1015573 + * fuse: fix stat call on 32 bit platforms + - LP: #1015573 + * x86, MCE, AMD: Make APIC LVT thresholding interrupt optional + - LP: #1015573 + * x86/amd: Re-enable CPU topology extensions in case BIOS has disabled it + - LP: #1015573 + * sched: Fix the relax_domain_level boot parameter + - LP: #1015573 + * iwlwifi: don't mess up the SCD when removing a key + - LP: #1015573 + * hwrng: atmel-rng - fix race condition leading to repeated bits + - LP: #1015573 + * crypto: aesni-intel - fix unaligned cbc decrypt for x86-32 + - LP: #1015573 + * xen/setup: filter APERFMPERF cpuid feature out + - LP: #1015573 + * NFSv4.1: Fix a request leak on the back channel + - LP: #1015573 + * can: c_can: fix "BUG! echo_skb is occupied!" during transmit + - LP: #1015573 + * can: c_can: fix an interrupt thrash issue with c_can driver + - LP: #1015573 + * can: c_can: fix race condition in c_can_open() + - LP: #1015573 + * ARM i.MX53: Fix PLL4 base address + - LP: #1015573 + * usb: musb_gadget: fix crash caused by dangling pointer + - LP: #1015573 + * mac80211: clean up remain-on-channel on interface stop + - LP: #1015573 + * rt2x00: use atomic variable for seqno + - LP: #1015573 + * iwlwifi: disable WoWLAN if !CONFIG_PM_SLEEP + - LP: #1015573 + * ASoC: wm8994: Ensure all AIFnCLK events are run from the _late variants + - LP: #1015573 + * ASoC: wm8994: Apply volume updates with clocks enabled + - LP: #1015573 + * iwlwifi: unregister LEDs if mac80211 registration fails + - LP: #1015573 + * cfg80211: fix interface combinations check + - LP: #1015573 + * mpt2sas: Fix unsafe using smp_processor_id() in preemptible + - LP: #1015573 + * net: sierra_net: device IDs for Aircard 320U++ + - LP: #1015573 + * ARM: imx6: exit coherency when shutting down a cpu + - LP: #1015573 + * ARM i.MX imx21ads: Fix overlapping static i/o mappings + - LP: #1015573 + * NFSv4: Fix unnecessary delegation returns in nfs4_do_open + - LP: #1015573 + * iwlwifi: use correct supported firmware for 6035 and 6000g2 + - LP: #1015573 + * iwlwifi: disable the buggy chain extension feature in HW + - LP: #1015573 + * ALSA: hda - Add codec->no_jack_detect flag + - LP: #1015573 + * ALSA: hda - add support for Uniwill ECS M31EI notebook + - LP: #1015573 + * ALSA: hda - Suppress auto-mute feature on some machines with ALC861 + - LP: #1015573 + * ALSA: hda - Add another jack-detection suppression for ASUS ALC892 + - LP: #1015573 + * ALSA: HDA: Pin fixup for Zotac Z68 motherboard + - LP: #1015573, #993162 + * usb: cdc-wdm: Add device-id for Huawei 3G/LTE modems + - LP: #1015573 + * USB: qcserial: Add Sierra Wireless device IDs + - LP: #1015573 + * USB: ftdi-sio: Add support for RT Systems USB-RTS01 serial adapter + - LP: #1015573 + * USB: serial: cp210x: add Optris MS Pro usb id + - LP: #1015573 + * USB: serial: sierra: Add support for Sierra Wireless AirCard 320U modem + - LP: #1015573 + * USB: option: Updated Huawei K4605 has better id + - LP: #1015573 + * USB: mct_u232: Fix incorrect TIOCMSET return + - LP: #1015573 + * USB: option: fix port-data abuse + - LP: #1015573 + * USB: option: fix memory leak + - LP: #1015573 + * USB: option: add more YUGA device ids + - LP: #1015573 + * target: Return error to initiator if SET TARGET PORT GROUPS emulation + fails + - LP: #1015573 + * USB: add NO_D3_DURING_SLEEP flag and revert 151b61284776be2 + - LP: #1015573 + * USB: serial: Enforce USB driver and USB serial driver match + - LP: #1015573 + * xhci: Fix invalid loop check in xhci_free_tt_info() + - LP: #1015573 + * xhci: Don't free endpoints in xhci_mem_cleanup() + - LP: #1015573 + * xHCI: Increase the timeout for controller save/restore state operation + - LP: #1015573 + * usb: PS3 EHCI QH read work-around + - LP: #1015573 + * USB: fix PS3 EHCI systems + - LP: #1015573 + * usb: cdc-acm: fix devices not unthrottled on open + - LP: #1015573 + * USB: fix gathering of interface associations + - LP: #1015573 + * swap: fix shmem swapping when more than 8 areas + - LP: #1015573 + * drm/radeon: add some additional 6xx/7xx/EG register init + - LP: #1015573 + * Linux 3.2.21 + - LP: #1015573 + * samsung-laptop: make the dmi check less strict + - LP: #1012284 + * ARM: 7205/2: sched_clock: allow sched_clock to be selected at runtime + - LP: #1008345 + * ARM: timer-sp: add sched_clock support + - LP: #1008345 + * ARM: highbank: enable sp804 based sched_clock + - LP: #1008345 + * ARM: 7201/1: add EDAC atomic_scrub function + - LP: #1008345 + * ARM: 7347/1: SCU: use cpu_logical_map for per-CPU low power mode + - LP: #1008345 + + -- Luis Henriques Mon, 02 Jul 2012 10:42:32 +0100 + +linux (3.2.0-26.41) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1012057 + + [ Andy Whitcroft ] + + * [Config] fix up postinst to ensure we know which error is which + - LP: #1002388 + * [Config] highbank -- commonise filesystems + - LP: #1000831, #1010463 + * [Config] highbank -- commonise subsystems + - LP: #1000831, #1010463 + * [Config] highbank -- commonise network protocols + - LP: #1000831, #1010463 + * [Config] highbank -- commonise input drivers + - LP: #1000831, #1010463 + * [Config] highbank -- commonise CRYPTO options + - LP: #1000831, #1010463 + * [Config] highbank -- commonise HID options + - LP: #1000831, #1010463 + * [Config] highbank -- commonise sensors options + - LP: #1000831, #1010463 + * [Config] highbank -- commonise EXPORTFS/FHANDLE + - LP: #1000831, #1010463 + * [Config] highbank -- commonise CONFIG_CRYPTO_LZO + - LP: #1000831, #1010463 + * [Config] highbank -- commonise ENCRYPTED_KEYS + - LP: #1000831, #1010463 + * [Config] highbank -- commonise CONFIG_ATALK + - LP: #1000831, #1010463 + * [Config] highbank -- commonise INET/INET6 + - LP: #1000831, #1010463 + * [Config] highbank -- commonise NLS + - LP: #1000831, #1010463 + * [Config] highbank -- commonise BLK/CHR + - LP: #1000831, #1010463 + * [Config] highbank -- commonise PHY settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise CRC settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise BINFMT settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise DM settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise RTC_DRV settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise KEYBOARD/MOUSE settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise USB settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise GPIO settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise I2C settings + - LP: #1000831, #1010463 + * [Config] highbank -- commonise numerous subsystem selectors + - LP: #1000831, #1010463 + * [Config] highbank -- commonise A-C modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise D-F modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise G-I modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise J-L modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise M modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise N-P modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise Q-R modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise S modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise T modules missmatches + - LP: #1000831, #1010463 + * [Config] highbank -- commonise U-Z modules missmatches + - LP: #1000831, #1010463 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: fix get_gate_vma call in i386 NX emulation code + - LP: #1009200 + + [ Ike Panhc ] + + * [Config] add highbank into d-i list + - LP: #1007459 + + [ Mario Limonciello ] + + * SAUCE: dell-laptop: rfkill blacklist Dell XPS 13z, 15 + - LP: #901410 + + [ Theodore Ts'o ] + + * SAUCE: ext4: fix the free blocks calculation for ext3 file systems w/ + uninit_bg + - LP: #1010022 + + [ Tim Gardner ] + + * [Config] CONFIG_NET_DSA=m + - LP: #1004148 + * [Config] armhf should not be skipabi or skipmodules + - LP: #1006913 + * [Config] highbank -- highbank.ignore.modules + + [ Upstream Kernel Changes ] + + * dsa: Change dsa_uses_{dsa, trailer}_tags() into inline functions + - LP: #1004148 + * dsa: Export functions from core to modules + - LP: #1004148 + * dsa: Combine core and tagging code + - LP: #1004148 + * mv88e6xxx: Combine mv88e6131 and mv88e612_61_65 drivers + - LP: #1004148 + * dsa: Define module author, description, license and aliases for drivers + - LP: #1004148 + * dsa: Allow core and drivers to be built as modules + - LP: #1004148 + * dsa: Remove unnecessary exports + - LP: #1004148 + * dsa: Move all definitions needed by drivers into + - LP: #1004148 + * dsa: Move switch drivers to new directory drivers/net/dsa + - LP: #1004148 + * dsa: Add reporting of silicon revision for Marvell + 88E6123/88E6161/88E6165 switches. + - LP: #1004148 + * drivers/net: dsa/mv88e6xxx.c files need linux/module.h + - LP: #1004148 + * power_supply: Drop usage of nowarn variant of sysfs_create_link() + - LP: #1005264 + * KVM: mmu_notifier: Flush TLBs before releasing mmu_lock + - LP: #1008711 + * KVM: lock slots_lock around device assignment + - LP: #1008711 + * KVM: nVMX: Fix erroneous exception bitmap check + - LP: #1008711 + * KVM: VMX: vmx_set_cr0 expects kvm->srcu locked + - LP: #1008711 + * KVM: s390: do store status after handling STOP_ON_STOP bit + - LP: #1008711 + * KVM: s390: Sanitize fpc registers for KVM_SET_FPU + - LP: #1008711 + * bio: don't overflow in bio_get_nr_vecs() + - LP: #1008711 + * bio allocation failure due to bio_get_nr_vecs() + - LP: #1008711 + * block: fix buffer overflow when printing partition UUIDs + - LP: #1008711 + * fix PA1.1 oops on boot + - LP: #1008711 + * fix crash in flush_icache_page_asm on PA1.1 + - LP: #1008711 + * fix panic on prefetch(NULL) on PA7300LC + - LP: #1008711 + * arch/tile/Kconfig: remove pointless "!M386" test. + - LP: #1008711 + * tilegx: enable SYSCALL_WRAPPERS support + - LP: #1008711 + * mtd: sm_ftl: fix typo in major number. + - LP: #1008711 + * hpsa: Fix problem with MSA2xxx devices + - LP: #1008711 + * SELinux: if sel_make_bools errors don't leave inconsistent state + - LP: #1008711 + * cfg80211: warn if db.txt is empty with CONFIG_CFG80211_INTERNAL_REGDB + - LP: #1008711 + * mpt2sas: Fix for panic happening because of improper memory allocation + - LP: #1008711 + * isdn/gigaset: ratelimit CAPI message dumps + - LP: #1008711 + * isdn/gigaset: fix CAPI disconnect B3 handling + - LP: #1008711 + * isdn/gigaset: improve error handling querying firmware version + - LP: #1008711 + * KEYS: Use the compat keyctl() syscall wrapper on Sparc64 for Sparc32 + compat + - LP: #1008711 + * IB/core: Fix mismatch between locked and pinned pages + - LP: #1008711 + * regulator: core: Release regulator-regulator supplies on error + - LP: #1008711 + * iommu: Fix off by one in dmar_get_fault_reason() + - LP: #1008711 + * RDMA/cxgb4: Always wake up waiters in c4iw_peer_abort_intr() + - LP: #1008711 + * RDMA/cxgb4: Drop peer_abort when no endpoint found + - LP: #1008711 + * s390/pfault: fix task state race + - LP: #1008711 + * isci: fix oem parameter validation on single controller skus + - LP: #1008711 + * Fix blocking allocations called very early during bootup + - LP: #1008711 + * vfs: make AIO use the proper rw_verify_area() area helpers + - LP: #1008711 + * docs: update HOWTO for 2.6.x -> 3.x versioning + - LP: #1008711 + * drivers/staging/comedi/comedi_fops.c: add missing vfree + - LP: #1008711 + * USB: move usb_translate_errors to linux/usb.h + - LP: #1008711 + * USB: cdc-wdm: sanitize error returns + - LP: #1008711 + * USB: cdc-wdm: fix memory leak + - LP: #1008711 + * 8250_pci: fix pch uart matching + - LP: #1008711 + * usb: add USB_QUIRK_RESET_RESUME for M-Audio 88es + - LP: #1008711 + * usb: usbtest: two super speed fixes for usbtest + - LP: #1008711 + * 8250.c: less than 2400 baud fix. + - LP: #1008711 + * usb-xhci: Handle COMP_TX_ERR for isoc tds + - LP: #1008711 + * xhci: Avoid dead ports when CONFIG_USB_XHCI_HCD=n + - LP: #1008711 + * xhci: Add Lynx Point to list of Intel switchable hosts. + - LP: #1008711 + * usb: gadget: fsl_udc_core: dTD's next dtd pointer need to be updated + once written + - LP: #1008711 + * Add missing call to uart_update_timeout() + - LP: #1008711 + * USB: ftdi-sio: add support for Physik Instrumente E-861 + - LP: #1008711 + * USB: ffs-test: fix length argument of out function call + - LP: #1008711 + * HID: wiimote: Fix IR data parser + - LP: #1008711 + * usb-storage: unusual_devs entry for Yarvik PMP400 MP4 player + - LP: #1008711 + * USB: ohci-at91: add a reset function to fix race condition + - LP: #1008711 + * HID: logitech: read all 32 bits of report type bitfield + - LP: #1008711 + * USB: serial: ti_usb_3410_5052: Add support for the FRI2 serial console + - LP: #1008711 + * USB: cdc-wdm: poll must return POLLHUP if device is gone + - LP: #1008711 + * USB: cdc-wdm: add debug messages on cleanup + - LP: #1008711 + * USB: cdc-wdm: cannot use dev_printk when device is gone + - LP: #1008711 + * tty: Allow uart_register/unregister/register + - LP: #1008711 + * workqueue: skip nr_running sanity check in worker_enter_idle() if + trustee is active + - LP: #1008711 + * xhci: Add new short TX quirk for Fresco Logic host. + - LP: #1008711 + * usbcore: enable USB2 LPM if port suspend fails + - LP: #1008711 + * perf/x86: Update event scheduling constraints for AMD family 15h models + - LP: #1008711 + * USB: fix resource leak in xhci power loss path + - LP: #1008711 + * xhci: Reset reserved command ring TRBs on cleanup. + - LP: #1008711 + * USB: Remove races in devio.c + - LP: #1008711 + * md: using GFP_NOIO to allocate bio for flush request + - LP: #1008711 + * um: Implement a custom pte_same() function + - LP: #1008711 + * um: Fix __swp_type() + - LP: #1008711 + * swap: don't do discard if no discard option added + - LP: #1008711 + * ahci: Detect Marvell 88SE9172 SATA controller + - LP: #1008711 + * ARM: 7365/1: drop unused parameter from flush_cache_user_range + - LP: #1008711 + * ARM: 7409/1: Do not call flush_cache_user_range with mmap_sem held + - LP: #1008711 + * sony-laptop: Enable keyboard backlight by default + - LP: #1008711 + * init: don't try mounting device as nfs root unless type fully matches + - LP: #1008711 + * memcg: free spare array to avoid memory leak + - LP: #1008711 + * compat: Fix RT signal mask corruption via sigprocmask + - LP: #1008711 + * ext3: Fix error handling on inode bitmap corruption + - LP: #1008711 + * ext4: fix error handling on inode bitmap corruption + - LP: #1008711 + * ACPI / PM: Add Sony Vaio VPCCW29FX to nonvs blacklist. + - LP: #1008711 + * hpsa: Add IRQF_SHARED back in for the non-MSI(X) interrupt handler + - LP: #1008711 + * wake up s_wait_unfrozen when ->freeze_fs fails + - LP: #1008711 + * cifs: fix revalidation test in cifs_llseek() + - LP: #1008711 + * OMAPDSS: VENC: fix NULL pointer dereference in DSS2 VENC sysfs debug + attr on OMAP4 + - LP: #1008711 + * i2c-eg20t: change timeout value 50msec to 1000msec + - LP: #1008711 + * drm/i915: [GEN7] Use HW scheduler for fixed function shaders + - LP: #1008711 + * mmc: sdio: avoid spurious calls to interrupt handlers + - LP: #1008711 + * smsusb: add autodetection support for USB ID 2040:c0a0 + - LP: #1008711 + * uvcvideo: Fix ENUMINPUT handling + - LP: #1008711 + * drm/i915: Avoid a double-read of PCH_IIR during interrupt handling + - LP: #1008711 + * b43legacy: Fix error due to MMIO access with SSB unpowered + - LP: #1008711 + * gpio: mpc8xxx: Prevent NULL pointer deref in demux handler + - LP: #1008711 + * drm/i915: don't clobber the pipe param in sanitize_modesetting + - LP: #1008711 + * spi/spi-fsl-spi: reference correct pdata in fsl_spi_cs_control + - LP: #1008711 + * xen: do not map the same GSI twice in PVHVM guests. + - LP: #1008711 + * nouveau: nouveau_set_bo_placement takes TTM flags + - LP: #1008711 + * MCE: Fix vm86 handling for 32bit mce handler + - LP: #1008711 + * x86/mce: Fix check for processor context when machine check was taken. + - LP: #1008711 + * tile: fix bug where fls(0) was not returning 0 + - LP: #1008711 + * intel-iommu: Add device info into list before doing context mapping + - LP: #1008711 + * block: don't mark buffers beyond end of disk as mapped + - LP: #1008711 + * drivers/rtc/rtc-pl031.c: configure correct wday for 2000-01-01 + - LP: #1008711 + * rtlwifi: Preallocate USB read buffers and eliminate kalloc in read + routine + - LP: #1008711 + * NFS4: fix compile warnings in nfs4proc.c + * Avoid reading past buffer when calling GETACL + - LP: #1002505, #1008711 + - CVE-2012-2375 + * Avoid beyond bounds copy while caching ACL + - LP: #1002505, #1008711 + - CVE-2012-2375 + * i2c: tegra: notify transfer-complete after clearing status. + - LP: #1008711 + * i2c: davinci: Free requested IRQ in remove + - LP: #1008711 + * x86, realmode: 16-bit real-mode code support for relocs tool + - LP: #1008711 + * x86, relocs: Workaround for binutils 2.22.52.0.1 section bug + - LP: #1008711 + * x86, relocs: When printing an error, say relative or absolute + - LP: #1008711 + * x86, relocs: Build clean fix + - LP: #1008711 + * x86-32, relocs: Whitelist more symbols for ld bug workaround + - LP: #1008711 + * x86, relocs: Add jiffies and jiffies_64 to the relative whitelist + - LP: #1008711 + * Linux 3.2.19 + - LP: #1008711 + * ALSA: HDA: Add support for Cirrus Logic 4213 + - LP: #910792 + * tg3: Fix TSO CAP for 5704 devs w / ASF enabled + - LP: #1005699 + * drm/i915:: Disable FBC on SandyBridge + - LP: #974830 + + -- Luis Henriques Wed, 13 Jun 2012 18:16:46 +0100 + +linux (3.2.0-25.40) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1003534 + + [ Andy Whitcroft ] + + * [Config] control.stub is an intermediate product not a dependancy + - LP: #992414 + * [Config] include include/generated/compile.h + - LP: #942569 + + [ Dave Martin ] + + * SAUCE: rtc: pl031: Enable module alias autogeneration for AMBA drivers + - LP: #1000831 + + [ Herton Ronaldo Krzesinski ] + + * Revert "SAUCE: ite-cir: postpone ISR registration" + - LP: #1002484 + * SAUCE: async_populate_rootfs: fix build warnings + - LP: #1003417 + + [ Ike Panhc ] + + * [Config] add highbank flavour + - LP: #1000831 + + [ John Johansen ] + + * SAUCE: apparmor: fix long path failure due to disconnected path + - LP: #955892 + * SAUCE: apparmor: fix profile lookup for unconfined + - LP: #978038, #987371 + + [ Mark Langsdorf ] + + * SAUCE: arm highbank: add support for pl320-ipc driver + - LP: #1000831 + + [ Rob Herring ] + + * SAUCE: input: add a key driver for highbank + - LP: #1000831 + * SAUCE: ARM: highbank: Add smc calls to enable/disable the L2 + - LP: #1000831 + * SAUCE: force DMA buffers to non-bufferable on highbank + - LP: #1000831 + * SAUCE: net: calxedaxgmac: fix net timeout recovery + - LP: #1000831 + + [ Tim Gardner ] + + * [Config] perarch and indep tools builds need separate build directories + * [Config] CONFIG_XEN_ACPI_PROCESSOR=y + - LP: #898112 + + [ Upstream Kernel Changes ] + + * Revert "autofs: work around unhappy compat problem on x86-64" + - LP: #1002482 + * Input: wacom - cleanup feature report for bamboos + - LP: #568064 + * Input: wacom - remove unused bamboo HID parsing + - LP: #568064 + * Input: wacom - add some comments to wacom_parse_hid + - LP: #568064 + * Input: wacom - relax Bamboo stylus ID check + - LP: #568064 + * Input: wacom - read 3rd gen Bamboo Touch HID data + - LP: #568064 + * Input: wacom - 3rd gen Bamboo P&Touch packet support + - LP: #568064 + * Input: wacom - ignore unwanted bamboo packets + - LP: #568064 + * HID: wacom: Move parsing to a separate function + - LP: #568064 + * HID: wacom: Initial driver for Wacom Intuos4 Wireless (Bluetooth) + - LP: #568064 + * Input: wacom - add support for Cintiq 24HD + - LP: #568064 + * Input: wacom - add LED support for Cintiq 24HD + - LP: #568064 + * Input: wacom - add missing LEDS_CLASS to Kconfig + - LP: #568064 + * Input: wacom - fix 3rd-gen Bamboo MT when 4+ fingers are in use + - LP: #568064 + * power_supply: allow a power supply to explicitly point to powered + device + - LP: #568064 + * power_supply: add "powers" links to self-powered HID devices + - LP: #568064 + * HID: wiimote: fix invalid power_supply_powers call + - LP: #568064 + * HID: wacom: Fix invalid power_supply_powers calls + - LP: #568064 + * ARM: 7178/1: fault.c: Port OOM changes into do_page_fault + - LP: #951043 + * ARM: 7368/1: fault.c: correct how the tsk->[maj|min]_flt gets + incremented + - LP: #951043 + * hugepages: fix use after free bug in "quota" handling + - LP: #990368 + - CVE-2012-2133 + * provide disable_cpufreq() function to disable the API. + - LP: #898112 + * xen/acpi-processor: C and P-state driver that uploads said data to + hypervisor. + - LP: #898112 + * xen/acpi-processor: Do not depend on CPU frequency scaling drivers. + - LP: #898112 + * xen/acpi: Fix Kconfig dependency on CPU_FREQ + - LP: #898112 + * xen/acpi: Remove the WARN's as they just create noise. + - LP: #898112 + * xen/cpufreq: Disable the cpu frequency scaling drivers from loading. + - LP: #898112 + * xen/apic: Return the APIC ID (and version) for CPU 0. + - LP: #898112 + * ARM: highbank: add xgmac ethernet devices to dts + - LP: #1000831 + * net: add calxeda xgmac ethernet driver + - LP: #1000831 + * ARM: versatile: Add missing ENDPROC to headsmp.S + - LP: #1000831 + * ARM: msm: Add missing ENDPROC to headsmp.S + - LP: #1000831 + * ARM: ux500: add missing ENDPROC to headsmp.S + - LP: #1000831 + * ARM: exynos: remove incorrect BSYM usage + - LP: #1000831 + * ARM: imx: remove incorrect BSYM usage + - LP: #1000831 + * ARM: highbank: remove incorrect BSYM usage + - LP: #1000831 + * ARM: make BSYM macro assembly only + - LP: #1000831 + * ARM: amba: Auto-generate AMBA driver module aliases during modpost + - LP: #1000831 + * ARM: amba: Move definition of struct amba_id to mod_devicetable.h + - LP: #1000831 + * dmaengine: pl330: Enable module alias autogeneration for AMBA drivers + - LP: #1000831 + * crypto: sha512 - Fix byte counter overflow in SHA-512 + - LP: #1002482 + * ALSA: hda/conexant - Don't set HP pin-control bit unconditionally + - LP: #1002482 + * ALSA: hda/conexant - Set up the missing docking-station pins + - LP: #1002482 + * ARM: clps711x: serial driver hungs are a result of call disable_irq + within ISR + - LP: #1002482 + * ARM: OMAP1: DMTIMER: fix broken timer clock source selection + - LP: #1002482 + * mmc: fixes for eMMC v4.5 discard operation + - LP: #1002482 + * mmc: fixes for eMMC v4.5 sanitize operation + - LP: #1002482 + * mmc: unbreak sdhci-esdhc-imx on i.MX25 + - LP: #1002482 + * xen/gntdev: do not set VM_PFNMAP + - LP: #1002482 + * xen/xenbus: Add quirk to deal with misconfigured backends. + - LP: #1002482 + * USB: yurex: Remove allocation of coherent buffer for setup-packet + buffer + - LP: #1002482 + * USB: yurex: Fix missing URB_NO_TRANSFER_DMA_MAP flag in urb + - LP: #1002482 + * uwb: fix use of del_timer_sync() in interrupt + - LP: #1002482 + * uwb: fix error handling + - LP: #1002482 + * davinci_mdio: Fix MDIO timeout check + - LP: #1002482 + * mwifiex: update pcie8766 scratch register addresses + - LP: #1002482 + * brcm80211: smac: resume transmit fifo upon receiving frames + - LP: #1002482 + * rc-core: set mode for winbond-cir + - LP: #1002482 + * drxk: Does not unlock mutex if sanity check failed in scu_command() + - LP: #1002482 + * cfg80211: fix interface combinations check. + - LP: #1002482 + * Fix modpost failures in fedora 17 + - LP: #1002482 + * mm: fix s390 BUG by __set_page_dirty_no_writeback on swap + - LP: #1002482 + * jbd2: use GFP_NOFS for blkdev_issue_flush + - LP: #1002482 + * USB: serial: cp210x: Fixed usb_control_msg timeout values + - LP: #1002482 + * pch_uart: Fix dma channel unallocated issue + - LP: #1002482 + * drivers/tty/amiserial.c: add missing tty_unlock + - LP: #1002482 + * USB: sierra: avoid QMI/wwan interface on MC77xx + - LP: #1002482 + * EHCI: fix criterion for resuming the root hub + - LP: #1002482 + * EHCI: always clear the STS_FLR status bit + - LP: #1002482 + * USB: fix deadlock in bConfigurationValue attribute method + - LP: #1002482 + * usb: gadget: udc-core: stop UDC on device-initiated disconnect + - LP: #1002482 + * usb: gadget: udc-core: fix asymmetric calls in remove_driver + - LP: #1002482 + * usb: gadget: udc-core: fix wrong call order + - LP: #1002482 + * usb: gadget: udc-core: fix incompatibility with dummy-hcd + - LP: #1002482 + * usb: gadget: eliminate NULL pointer dereference (bugfix) + - LP: #1002482 + * usb: musb: omap: fix crash when musb glue (omap) gets initialized + - LP: #1002482 + * usb: musb: omap: fix the error check for pm_runtime_get_sync + - LP: #1002482 + * PCI: Add quirk for still enabled interrupts on Intel Sandy Bridge GPUs + - LP: #1002482 + * ext4: fix endianness breakage in ext4_split_extent_at() + - LP: #1002482 + * KVM: unmap pages from the iommu when slots are removed + - LP: #1002482 + * dell-laptop: add 3 machines that has touchpad LED + - LP: #1002482 + * dell-laptop: touchpad LED should persist its status after S3 + - LP: #1002482 + * Bluetooth: Add support for Atheros [04ca:3005] + - LP: #1002482 + * Don't limit non-nested epoll paths + - LP: #1002482 + * spi: Fix device unregistration when unregistering the bus master + - LP: #1002482 + * spi/mpc83xx: fix NULL pdata dereference bug + - LP: #1002482 + * rt2800: Add support for the Fujitsu Stylistic Q550 + - LP: #1002482 + * rt2x00: Identify rt2800usb chipsets. + - LP: #1002482 + * nfsd: fix b0rken error value for setattr on read-only mount + - LP: #1002482 + * nfsd: fix error values returned by nfsd4_lockt() when nfsd_open() fails + - LP: #1002482 + * nfsd: fix endianness breakage in TEST_STATEID handling + - LP: #1002482 + * nfsd: fix compose_entry_fh() failure exits + - LP: #1002482 + * btrfs: btrfs_root_readonly() broken on big-endian + - LP: #1002482 + * ocfs2: ->l_next_free_req breakage on big-endian + - LP: #1002482 + * ocfs: ->rl_used breakage on big-endian + - LP: #1002482 + * ocfs2: ->rl_count endianness breakage + - LP: #1002482 + * ocfs2: ->e_leaf_clusters endianness breakage + - LP: #1002482 + * lockd: fix the endianness bug + - LP: #1002482 + * usb: dwc3: ep0: increment "actual" on bounced ep0 case + - LP: #1002482 + * net: fix /proc/net/dev regression + - LP: #1002482 + * nfsd: don't fail unchecked creates of non-special files + - LP: #1002482 + * ppp: Don't stop and restart queue on every TX packet + - LP: #1002482 + * tcp: allow splice() to build full TSO packets + - LP: #1002482 + * sctp: Allow struct sctp_event_subscribe to grow without breaking + binaries + - LP: #1002482 + * bridge: Do not send queries on multicast group leaves + - LP: #1002482 + * ipv6: fix array index in ip6_mc_add_src() + - LP: #1002482 + * phonet: Check input from user before allocating + - LP: #1002482 + * bonding: properly unset current_arp_slave on slave link up + - LP: #1002482 + * wimax: i2400m - prevent a possible kernel bug due to missing fw_name + string + - LP: #1002482 + * netlink: fix races after skb queueing + - LP: #1002482 + * net: fix a race in sock_queue_err_skb() + - LP: #1002482 + * tcp: fix tcp_rcv_rtt_update() use of an unscaled RTT sample + - LP: #1002482 + * net: allow pskb_expand_head() to get maximum tailroom + - LP: #1002482 + * tcp: fix tcp_trim_head() + - LP: #1002482 + * tcp: avoid order-1 allocations on wifi and tx path + - LP: #1002482 + * atl1: fix kernel panic in case of DMA errors + - LP: #1002482 + * 8139cp: set intr mask after its handler is registered + - LP: #1002482 + * net: smsc911x: fix skb handling in receive path + - LP: #1002482 + * net/ethernet: ks8851_mll fix rx frame buffer overflow + - LP: #1002482 + * net_sched: gred: Fix oops in gred_dump() in WRED mode + - LP: #1002482 + * net: usb: smsc75xx: fix mtu + - LP: #1002482 + * dummy: Add ndo_uninit(). + - LP: #1002482 + * tcp: fix tcp_grow_window() for large incoming frames + - LP: #1002482 + * netns: do not leak net_generic data on failed init + - LP: #1002482 + * ksz884x: don't copy too much in netdev_set_mac_address() + - LP: #1002482 + * net ax25: Reorder ax25_exit to remove races. + - LP: #1002482 + * tcp: fix TCP_MAXSEG for established IPv6 passive sockets + - LP: #1002482 + * nfs: Enclose hostname in brackets when needed in nfs_do_root_mount + - LP: #1002482 + * NFS: put open context on error in nfs_pagein_multi + - LP: #1002482 + * NFS: put open context on error in nfs_flush_multi + - LP: #1002482 + * x86, microcode: Fix sysfs warning during module unload on unsupported + CPUs + - LP: #1002482 + * x86, apic: APIC code touches invalid MSR on P5 class machines + - LP: #1002482 + * xen: correctly check for pending events when restoring irq flags + - LP: #1002482 + * xen/smp: Fix crash when booting with ACPI hotplug CPUs. + - LP: #1002482 + * ASoC: dapm: Ensure power gets managed for line widgets + - LP: #1002482 + * ASoC: wm8994: Improve sequencing of AIF channel enables + - LP: #1002482 + * dmaengine: at_hdmac: remove clear-on-read in atc_dostart() + - LP: #1002482 + * sched: Fix OOPS when build_sched_domains() percpu allocation fails + - LP: #1002482 + * tracing: Fix stacktrace of latency tracers (irqsoff and friends) + - LP: #1002482 + * hwmon: fam15h_power: fix bogus values with current BIOSes + - LP: #1002482 + * hwmon: (fam15h_power) Fix pci_device_id array + - LP: #1002482 + * dell-laptop: Terminate quirks list properly + - LP: #1002482 + * drm/radeon/kms: need to set up ss on DP bridges as well + - LP: #1002482 + * drm/i915: handle input/output sdvo timings separately in mode_set + - LP: #1002482 + * drm/i915: relative_constants_mode race fix + - LP: #1002482 + * drm/i915: Force sync command ordering (Gen6+) + - LP: #1002482 + * drm/i915: Set the Stencil Cache eviction policy to non-LRA mode. + - LP: #1002482 + * drm/i915: fix integer overflow in i915_gem_execbuffer2() + - LP: #1002482 + * drm/i915: fix integer overflow in i915_gem_do_execbuffer() + - LP: #1002482 + * nl80211: ensure interface is up in various APIs + - LP: #1002482 + * ALSA: HDA: Add external mic quirk for Asus Zenbook UX31E + - LP: #1002482, #950490 + * USB: cdc-wdm: fix race leading leading to memory corruption + - LP: #1002482 + * USB: EHCI: fix crash during suspend on ASUS computers + - LP: #1002482 + * USB: gadget: storage gadgets send wrong error code for unknown commands + - LP: #1002482 + * usb: gadget: dummy: do not call pullup() on udc_stop() + - LP: #1002482 + * usb gadget: uvc: uvc_request_data::length field must be signed + - LP: #1002482 + * pipes: add a "packetized pipe" mode for writing + - LP: #1002482 + * autofs: make the autofsv5 packet file descriptor use a packetized pipe + - LP: #1002482 + * ARM: 7396/1: errata: only handle ARM erratum #326103 on affected cores + - LP: #1002482 + * ARM: 7397/1: l2x0: only apply workaround for erratum #753970 on PL310 + - LP: #1002482 + * ARM: 7398/1: l2x0: only write to debug registers on PL310 + - LP: #1002482 + * ARM: 7403/1: tls: remove covert channel via TPIDRURW + - LP: #1002482 + * ARM: 7406/1: hotplug: copy the affinity mask when forcefully migrating + IRQs + - LP: #1002482 + * libsas: fix sas_find_bcast_phy() in the presence of 'vacant' phys + - LP: #1002482 + * libsas: fix false positive 'device attached' conditions + - LP: #1002482 + * efi: Add new variable attributes + - LP: #1002482 + * efi: Validate UEFI boot variables + - LP: #1002482 + * PM / Hibernate: fix the number of pages used for hibernate/thaw + buffering + - LP: #1002482 + * drm/i915: enable dip before writing data on gen4 + - LP: #1002482 + * efivars: Improve variable validation + - LP: #1002482 + * fs/cifs: fix parsing of dfs referrals + - LP: #1002482 + * Fix __read_seqcount_begin() to use ACCESS_ONCE for sequence value read + - LP: #1002482 + * hwmon: (coretemp) Increase CPU core limit + - LP: #1002482 + * nouveau: initialise has_optimus variable. + - LP: #1002482 + * hwmon: (coretemp) fix oops on cpu unplug + - LP: #1002482 + * libata: skip old error history when counting probe trials + - LP: #1002482 + * b43: only reload config after successful initialization + - LP: #1002482, #950295 + * i2c: pnx: Disable clk in suspend + - LP: #1002482 + * ipw2200: Fix race condition in the command completion acknowledge + - LP: #1002482 + * mac80211: fix AP mode EAP tx for VLAN stations + - LP: #1002482 + * rtlwifi: Fix oops on unload + - LP: #1002482 + * wl1251: fix crash on remove due to premature kfree + - LP: #1002482 + * wl1251: fix crash on remove due to leftover work item + - LP: #1002482 + * iwlwifi: do not nulify ctx->vif on reset + - LP: #1002482 + * iwlwifi: fix hardware queue programming + - LP: #1002482 + * hfsplus: Fix potential buffer overflows + - LP: #1002482 + * ASoC: tlv312aic23: unbreak resume + - LP: #1002482 + * asm-generic: Use __BITS_PER_LONG in statfs.h + - LP: #1002482 + * x86, relocs: Remove an unused variable + - LP: #1002482 + * ARM: 7410/1: Add extra clobber registers for assembly in kernel_execve + - LP: #1002482 + * ARM: 7414/1: SMP: prevent use of the console when using idmap_pgd + - LP: #1002482 + * drm/i915: disable sdvo hotplug on i945g/gm + - LP: #1002482 + * drm/i915: Do no set Stencil Cache eviction LRA w/a on gen7+ + - LP: #1002482 + * xen/pte: Fix crashes when trying to see non-existent PGD/PMD/PUD/PTEs + - LP: #1002482 + * xen/pci: don't use PCI BIOS service for configuration space accesses + - LP: #1002482 + * percpu, x86: don't use PMD_SIZE as embedded atom_size on 32bit + - LP: #1002482 + * iwlagn: allow up to uCode API 6 for 6000 devices + - LP: #1002482 + * iwlwifi: use correct released ucode version + - LP: #1002482 + * iwlwifi: use 6000G2B for 6030 device series + - LP: #1002482 + * exit_signal: simplify the "we have changed execution domain" logic + - LP: #1002482 + * exit_signal: fix the "parent has changed security domain" logic + - LP: #1002482 + * staging: r8712u: Fix regression caused by commit 8c213fa + - LP: #1002482 + * smsc95xx: mark link down on startup and let PHY interrupt deal with + carrier changes + - LP: #1002482 + * Linux 3.2.17 + - LP: #1002482 + * regulator: Fix the logic to ensure new voltage setting in valid range + - LP: #1002484 + * ARM: OMAP: Revert "ARM: OMAP: ctrl: Fix CONTROL_DSIPHY register fields" + - LP: #1002484 + * ALSA: echoaudio: Remove incorrect part of assertion + - LP: #1002484 + * ARM: orion5x: Fix GPIO enable bits for MPP9 + - LP: #1002484 + * ALSA: HDA: Lessen CPU usage when waiting for chip to respond + - LP: #1002484 + * percpu: pcpu_embed_first_chunk() should free unused parts after all + allocs are complete + - LP: #1002484 + * hugetlb: prevent BUG_ON in hugetlb_fault() -> hugetlb_cow() + - LP: #1002484 + * namespaces, pid_ns: fix leakage on fork() failure + - LP: #1002484 + * mm: nobootmem: fix sign extend problem in __free_pages_memory() + - LP: #1002484 + * asix: Fix tx transfer padding for full-speed USB + - LP: #1002484 + * netem: fix possible skb leak + - LP: #1002484 + * net: In unregister_netdevice_notifier unregister the netdevices. + - LP: #1002484 + * net: l2tp: unlock socket lock before returning from l2tp_ip_sendmsg + - LP: #1002484 + * sky2: propogate rx hash when packet is copied + - LP: #1002484 + * sky2: fix receive length error in mixed non-VLAN/VLAN traffic + - LP: #1002484 + * sungem: Fix WakeOnLan + - LP: #1002484 + * tg3: Avoid panic from reserved statblk field access + - LP: #1002484 + * tcp: fix infinite cwnd in tcp_complete_cwr() + - LP: #1002484 + * tcp: change tcp_adv_win_scale and tcp_rmem[2] + - LP: #1002484 + * brcm80211: smac: pass missing argument to 'brcms_b_mute' + - LP: #1002484 + * phy:icplus:fix Auto Power Saving in ip101a_config_init. + - LP: #1002484 + * NFSv4: Revalidate uid/gid after open + - LP: #1002484 + * target: Drop incorrect se_lun_acl release for dynamic -> explict ACL + conversion + - LP: #1002484 + * marvell-cam: fix an ARM build error + - LP: #1002484 + * rc: Postpone ISR registration + - LP: #1002484 + * cdc_ether: Ignore bogus union descriptor for RNDIS devices + - LP: #1002484 + * jffs2: Fix lock acquisition order bug in gc path + - LP: #1002484 + * s5p-fimc: Fix locking in subdev set_crop op + - LP: #1002484 + * dm mpath: check if scsi_dh module already loaded before trying to load + - LP: #1002484 + * sparc64: Do not clobber %g2 in xcall_fetch_glob_regs(). + - LP: #1002484 + * gpio: Add missing spin_lock_init in gpio-ml-ioh driver + - LP: #1002484 + * spi-topcliff-pch: Modify pci-bus number dynamically to get DMA device + info + - LP: #1002484 + * spi-topcliff-pch: Fix issue for transmitting over 4KByte + - LP: #1002484 + * spi-topcliff-pch: supports a spi mode setup and bit order setup by IO + control + - LP: #1002484 + * spi-topcliff-pch: add recovery processing in case wait-event timeout + - LP: #1002484 + * ext4: avoid deadlock on sync-mounted FS w/o journal + - LP: #1002484 + * ia64: Add accept4() syscall + - LP: #1002484 + * brcm80211: smac: fix endless retry of A-MPDU transmissions + - LP: #1002484 + * ARM: 7417/1: vfp: ensure preemption is disabled when enabling VFP + access + - LP: #1002484 + * target: Fix SPC-2 RELEASE bug for multi-session iSCSI client setups + - LP: #1002484 + * crypto: mv_cesa requires on CRYPTO_HASH to build + - LP: #1002484 + * ALSA: hda/idt - Fix power-map for speaker-pins with some HP laptops + - LP: #1002484 + * ASoC: wm8994: Fix AIF2ADC power down + - LP: #1002484 + * usbnet: fix skb traversing races during unlink(v2) + - LP: #1002484 + * cdc_ether: add Novatel USB551L device IDs for FLAG_WWAN + - LP: #1002484 + * ARM: prevent VM_GROWSDOWN mmaps extending below FIRST_USER_ADDRESS + - LP: #1002484 + * arch/tile: apply commit 74fca9da0 to the compat signal handling as well + - LP: #1002484 + * MD: Add del_timer_sync to mddev_suspend (fix nasty panic) + - LP: #1002484 + * target: Fix bug in handling of FILEIO + block_device resize ops + - LP: #1002484 + * tcp: do_tcp_sendpages() must try to push data out on oom conditions + - LP: #1002484 + * e1000: Prevent reset task killing itself. + - LP: #1002484 + * pktgen: fix crash at module unload + - LP: #1002484 + * pktgen: fix module unload for good + - LP: #1002484 + * Linux 3.2.18 + - LP: #1002484 + * thinkpad-acpi: recognize Lenovo as version string in newer V-series + BIOS + - LP: #1002920 + * dl2k: Clean up rio_ioctl + - CVE-2012-2313 + + -- Luis Henriques Wed, 23 May 2012 17:37:05 +0100 + +linux (3.2.0-24.39) precise-proposed; urgency=low + + [Luis Henriques] + + * Release Tracking Bug + - LP: #1002329 + + [ Andy Whitcroft ] + + * SAUCE: ata_piix: add a disable_driver option + - LP: #994870 + + -- Luis Henriques Mon, 21 May 2012 15:51:25 +0100 + +linux (3.2.0-24.38) precise-proposed; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #991925 + + [ Herton Ronaldo Krzesinski ] + + * linux: add Build-Depends for libnewt-dev, to enable perf TUI support + - LP: #981717 + + [ Tim Gardner ] + + * SAUCE: Allow filtering of cpufreq drivers + - LP: #984288 + + [ Upstream Kernel Changes ] + + * x86 bpf_jit: fix a bug in emitting the 16-bit immediate operand of AND + - LP: #981162 + * tg3: Fix 5717 serdes powerdown problem + - LP: #981162 + * sky2: dont overwrite settings for PHY Quick link + - LP: #981162 + * rose_dev: fix memcpy-bug in rose_set_mac_address + - LP: #981162 + * net: usb: cdc_eem: fix mtu + - LP: #981162 + * Fix non TBI PHY access; a bad merge undid bug fix in a previous commit. + - LP: #981162 + * ASoC: wm8994: Update WM8994 DCS calibration + - LP: #981162 + * mtd: ixp4xx: oops in ixp4xx_flash_probe + - LP: #981162 + * mtd: mips: lantiq: reintroduce support for cmdline partitions + - LP: #981162 + * mtd: nand: gpmi: use correct member for checking NAND_BBT_USE_FLASH + - LP: #981162 + * mtd: sst25l: initialize writebufsize + - LP: #981162 + * mtd: block2mtd: initialize writebufsize + - LP: #981162 + * mtd: lart: initialize writebufsize + - LP: #981162 + * mtd: m25p80: set writebufsize + - LP: #981162 + * ACPI: Do cpufreq clamping for throttling per package v2 + - LP: #981162 + * PNPACPI: Fix device ref leaking in acpi_pnp_match + - LP: #981162 + * modpost: fix ALL_INIT_DATA_SECTIONS + - LP: #981162 + * genirq: Adjust irq thread affinity on IRQ_SET_MASK_OK_NOCOPY return + value + - LP: #981162 + * tracing: Fix ftrace stack trace entries + - LP: #981162 + * tracing: Fix ent_size in trace output + - LP: #981162 + * m68k/mac: Add missing platform check before registering platform + devices + - LP: #981162 + * mac80211: fix possible tid_rx->reorder_timer use after free + - LP: #981162 + * rtlwifi: rtl8192ce: rtl8192cu: rtl8192de: Fix low-gain setting when + scanning + - LP: #981162 + * drm: Validate requested virtual size against allocated fb size + - LP: #981162 + * drm/radeon/kms: fix fans after resume + - LP: #981162 + * drm/i915: no-lvds quirk on MSI DC500 + - LP: #981162 + * drm/i915: Add lock on drm_helper_resume_force_mode + - LP: #981162 + * drm/i915: quirk away broken OpRegion VBT + - LP: #981162 + * r8169: runtime resume before shutdown. + - LP: #981162 + * target: Fix unsupported WRITE_SAME sense payload + - LP: #981162 + * kgdb,debug_core: pass the breakpoint struct instead of address and + memory + - LP: #981162 + * kgdbts: Fix kernel oops with CONFIG_DEBUG_RODATA + - LP: #981162 + * kgdbts: (1 of 2) fix single step awareness to work correctly with SMP + - LP: #981162 + * kgdbts: (2 of 2) fix single step awareness to work correctly with SMP + - LP: #981162 + * x86,kgdb: Fix DEBUG_RODATA limitation using text_poke() + - LP: #981162 + * CIFS: Fix VFS lock usage for oplocked files + - LP: #981162 + * ARM: tegra: remove Tegra30 errata from MACH_TEGRA_DT + - LP: #981162 + * mmc: sdhci-dove: Fix compile error by including module.h + - LP: #981162 + * mmc: atmel-mci: correct data timeout computation + - LP: #981162 + * tcm_fc: Add abort flag for gracefully handling exchange timeout + - LP: #981162 + * tcm_fc: Do not free tpg structure during wq allocation failure + - LP: #981162 + * sysctl: fix write access to dmesg_restrict/kptr_restrict + - LP: #981162 + * modpost: Fix modpost license checking of vmlinux.o + - LP: #981162 + * x86/PCI: use host bridge _CRS info on MSI MS-7253 + - LP: #981162 + * x86/PCI: do not tie MSI MS-7253 use_crs quirk to BIOS version + - LP: #981162 + * TOMOYO: Fix mount flags checking order. + - LP: #981162 + * acer-wmi: No wifi rfkill on Sony machines + - LP: #981162 + * Fix length of buffer copied in __nfs4_get_acl_uncached + - LP: #981162 + * sched/x86: Fix overflow in cyc2ns_offset + - LP: #981162 + * mfd: Clear twl6030 IRQ status register only once + - LP: #981162 + * USB: Add Motorola Rokr E6 Id to the USBNet driver "zaurus" + - LP: #981162 + * ioat: fix size of 'completion' for Xen + - LP: #981162 + * ASoC: ak4642: fixup: mute needs +1 step + - LP: #981162 + * cred: copy_process() should clear child->replacement_session_keyring + - LP: #981162 + * iommu/amd: Make sure IOMMU interrupts are re-enabled on resume + - LP: #981162 + * Linux 3.2.15 + - LP: #981162 + * drm/radeon/kms: fix DVO setup on some r4xx chips + - LP: #987337 + * drm/i915/ringbuffer: Exclude last 2 cachlines of ring on 845g + - LP: #987337 + * drm/radeon: only add the mm i2c bus if the hw_i2c module param is set + - LP: #987337 + * drm/i915: properly compute dp dithering for user-created modes + - LP: #987337 + * drm/i915: make rc6 module parameter read-only + - LP: #987337 + * rtlwifi: Add missing DMA buffer unmapping for PCI drivers + - LP: #987337 + * ARM: 7379/1: DT: fix atags_to_fdt() second call site + - LP: #987337 + * ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for + !CONFIG_ARM_THUMBEE + - LP: #987337 + * md/bitmap: prevent bitmap_daemon_work running while initialising bitmap + - LP: #987337 + * Bluetooth: uart-ldisc: Fix memory leak + - LP: #987337 + * Bluetooth: hci_ldisc: fix NULL-pointer dereference on tty_close + - LP: #987337 + * ext4: address scalability issue by removing extent cache statistics + - LP: #987337 + * ia64: fix futex_atomic_cmpxchg_inatomic() + - LP: #987337 + * drivers/rtc/rtc-pl031.c: enable clock on all ST variants + - LP: #987337 + * hugetlb: fix race condition in hugetlb_fault() + - LP: #987337 + * staging: iio: hmc5843: Fix crash in probe function. + - LP: #987337 + * tty: serial: altera_uart: Check for NULL platform_data in probe. + - LP: #987337 + * sparc64: Eliminate obsolete __handle_softirq() function + - LP: #987337 + * sparc64: Fix bootup crash on sun4v. + - LP: #987337 + * cciss: Initialize scsi host max_sectors for tape drive support + - LP: #987337 + * cciss: Fix scsi tape io with more than 255 scatter gather elements + - LP: #987337 + * video:uvesafb: Fix oops that uvesafb try to execute NX-protected page + - LP: #987337 + * nohz: Fix stale jiffies update in tick_nohz_restart() + - LP: #987337 + * pch_uart: Fix MSI setting issue + - LP: #987337 + * USB: serial: fix race between probe and open + - LP: #987337 + * USB: pl2303: fix DTR/RTS being raised on baud rate change + - LP: #987337 + * USB: option: re-add NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED to option_id + array + - LP: #987337 + * USB: ftdi_sio: fix status line change handling for TIOCMIWAIT and + TIOCGICOUNT + - LP: #987337 + * USB: ftdi_sio: fix race condition in TIOCMIWAIT, and abort of + TIOCMIWAIT when the device is removed + - LP: #987337 + * USB: sierra: add support for Sierra Wireless MC7710 + - LP: #987337 + * USB: don't clear urb->dev in scatter-gather library + - LP: #987337 + * USB: don't ignore suspend errors for root hubs + - LP: #987337 + * xhci: don't re-enable IE constantly + - LP: #987337 + * xhci: Don't write zeroed pointers to xHC registers. + - LP: #987337 + * xhci: Restore event ring dequeue pointer on resume. + - LP: #987337 + * USB: fix bug of device descriptor got from superspeed device + - LP: #987337 + * xHCI: add XHCI_RESET_ON_RESUME quirk for VIA xHCI host + - LP: #987337 + * xHCI: Correct the #define XHCI_LEGACY_DISABLE_SMI + - LP: #987337 + * fix tlb flushing for page table pages + - LP: #987337 + * serial: PL011: clear pending interrupts + - LP: #987337 + * serial: PL011: move interrupt clearing + - LP: #987337 + * fcaps: clear the same personality flags as suid when fcaps are used + - LP: #987337 + * ath9k: fix max noise floor threshold + - LP: #987337 + * xhci: Fix register save/restore order. + - LP: #987337 + * Bluetooth: hci_core: fix NULL-pointer dereference at unregister + - LP: #987337 + * pch_gpio: Support new device LAPIS Semiconductor ML7831 IOH + - LP: #987337 + * gpio: Add missing spin_lock_init in gpio-pch driver + - LP: #987337 + * usb: gadget: pch_udc: Fix disconnect issue + - LP: #987337 + * usb: gadget: pch_udc: Fix wrong return value + - LP: #987337 + * usb: gadget: pch_udc: Fix USB suspend issue + - LP: #987337 + * usb: gadget: pch_udc: Fix usb/gadget/pch_udc: Fix ether gadget + connect/disconnect issue + - LP: #987337 + * usb: gadget: pch_udc: Reduce redundant interrupt + - LP: #987337 + * ACPICA: Fix to allow region arguments to reference other scopes + - LP: #987337 + * security: fix compile error in commoncap.c + - LP: #987337 + * pch_gbe: Do not abort probe on bad MAC + - LP: #987337 + * pch_gbe: memory corruption calling pch_gbe_validate_option() + - LP: #987337 + * pch_dma: Support new device LAPIS Semiconductor ML7831 IOH + - LP: #987337 + * spi-topcliff-pch: fix -Wuninitialized warning + - LP: #987337 + * spi-topcliff-pch: Support new device LAPIS Semiconductor ML7831 IOH + - LP: #987337 + * Bluetooth: Add Atheros maryann PIDVID support + - LP: #987337 + * futex: Do not leak robust list to unprivileged process + - LP: #987337 + * drm/radeon/kms: fix the regression of DVI connector check + - LP: #987337 + * drm/radeon: disable MSI on RV515 + - LP: #987337 + * drm/radeon: fix load detect on rn50 with hardcoded EDIDs. + - LP: #987337 + * perf hists: Catch and handle out-of-date hist entry maps. + - LP: #987337 + * Linux 3.2.16 + - LP: #987337 + * KVM: Ensure all vcpus are consistent with in-kernel irqchip settings + - LP: #971685 + - CVE-2012-1601 + * HID: multitouch: correct eGalax a001 protocol + - LP: #913164 + * HID: multitouch: add more eGalax devices + - LP: #913164 + * HID: multitouch: add support for eGalax 0x722a + - LP: #913164 + * UAS: Re-add workqueue items if submission fails. + - LP: #901215 + * UAS: Use unique tags on non-streams devices. + - LP: #901215 + * UAS: Free status URB when we can't find the SCSI tag. + - LP: #901215 + * usb/uas: use unique tags for all LUNs + - LP: #901215 + * usb/uas: use scsi_host_find_tag() to find command from a tag + - LP: #901215 + * usb/uas: one only one status URB/host on stream-less connection + - LP: #901215 + * usb/uas: only bind if the hcd supports SG + - LP: #901215 + * usb/uas: move UAS structs / defines into a header file + - LP: #901215 + * usb/uas: add usb_pipe_usage_descriptor + - LP: #901215 + * usb/uas: make sure data urb is gone if we receive status before that + - LP: #901215 + * md: fix possible corruption of array metadata on shutdown. + - LP: #992038 + + -- Luis Henriques Mon, 30 Apr 2012 19:04:27 +0100 + +linux (3.2.0-24.37) precise-proposed; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * d-i: Add hid-logitech-dj to input-modules + - LP: #975198 + * d-i: Add rtl8187 driver to nic-usb-modules + - LP: #971719 + + [ Ian Abbott ] + + * SAUCE: staging: comedi: Add module parameters for default buffer size + - LP: #981234 + * SAUCE: staging: comedi: Add kernel config for default buffer sizes + - LP: #981234 + + [ K. Y. Srinivasan ] + + * SAUCE: hv_storvsc: Account for in-transit packets in the RESET path + - LP: #978394 + + [ Leann Ogasawara ] + + * [Config] Set CONFIG_COMEDI_DEFAULT_BUF_[SIZE_KB,MAXSIZE_KB] + - LP: #981234 + + [ Luis Henriques ] + + * SAUCE: ite-cir: postpone ISR registration + - LP: #984387 + + [ Manoj Iyer ] + + * SAUCE: Bluetooth: btusb: Add vendor specific ID (0489 e042) for + BCM20702A0 + - LP: #980965 + + [ Tim Gardner ] + + * Extract firmware module info during getabi + * [Config] Remove hiq-quanta module references + - LP: #913164 + * [Config] powerpc-smp: build in ATI and RADEON frame buffer drivers + - LP: #949288 + + [ Trond Myklebust ] + + * SAUCE: NFSv4: Ensure that the LOCK code sets exception->inode + - LP: #974664 + * SAUCE: NFSv4: Ensure that we check lock exclusive/shared type against + open modes + - LP: #974664 + + [ Upstream Kernel Changes ] + + * Input: psmouse - allow drivers to use psmouse_{de,}activate + - LP: #969334 + * Input: psmouse - use psmouse_[de]activate() from sentelic and hgpk + drivers + - LP: #969334 + * Input: sentelic - refactor code for upcoming new hardware support + - LP: #969334 + * Input: sentelic - enabling absolute coordinates output for newer + hardware + - LP: #969334 + * Input: sentelic - minor code cleanup + - LP: #969334 + * Input: sentelic - improve packet debugging information + - LP: #969334 + * Input: sentelic - filter taps in absolute mode + - LP: #969334 + * drm/i915: Fixes distorted external screen image on HP 2730p + - LP: #796030 + * NFSv4: Minor cleanups for nfs4_handle_exception and + nfs4_async_handle_error + - LP: #974664 + * NFSv4: Rate limit the state manager for lock reclaim warning messages + - LP: #974664 + * HID: multitouch: merge quanta driver into hid-multitouch + - LP: #913164 + * HID: usbhid: add quirk no_get for quanta 3008 devices + - LP: #913164 + + -- Leann Ogasawara Tue, 24 Apr 2012 07:47:49 -0700 + +linux (3.2.0-23.36) precise-proposed; urgency=low + + [ Andy Whitcroft ] + + * tools/hv: add basic Makefile + - LP: #977246 + * tools/hv: add basic manual pages + - LP: #977246 + * Hyper-V KVP daemon -- add to the tools package + - LP: #977246 + + [ David Henningsson ] + + * SAUCE: (drop after 3.3) ALSA: HDA: Remove quirk for Gigabyte + GA-H61M-S2PV + - LP: #948360 + + [ Leann Ogasawara ] + + * d-i: Add dm-mirror and dm-raid to md-modules + - LP: #919281 + + [ Tim Gardner ] + + * [Config] Fix invalid linux-headers link + - LP: #974403 + * Remove headers asm symlink entirely + - LP: #974403 + + [ Upstream Kernel Changes ] + + * Revert "x86/ioapic: Add register level checks to detect bogus io-apic + entries" + - LP: #974982 + * ALSA: HDA: Realtek: Take vmaster dac from multiout dac list + - LP: #974090 + * kexec: remove KMSG_DUMP_KEXEC + - LP: #944772 + * kmsg_dump: don't run on non-error paths by default + - LP: #944772 + * pstore: Introduce get_reason_str() to pstore + - LP: #944772 + + -- Leann Ogasawara Tue, 10 Apr 2012 08:16:09 -0700 + +linux (3.2.0-22.35) precise; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: hotkey quirks for various Zeptro Znote and Fujitsu Amilo + laptops" + * SAUCE: (no-up) elide some ioctl warnings which are known benign + - LP: #972355 + + [ Brad Figg ] + + * SAUCE (no-up) Provide a param for allowing the BIOS to handle changing + the brightness on AC/battery status changes. + - LP: #949311 + * SAUCE (drop after 3.4) Quirk for enabling backlight hotkeys on Samsung + N150P + - LP: #875893 + + [ Colin Ian King ] + + * SAUCE: PCI: Allow pcie_aspm=force to work even when FADT indicates it + is unsupported + - LP: #962038 + + [ Daniel Vetter ] + + * SAUCE: (drop after 3.5) drm/i915: reinstate GM45 TV detection fix + - LP: #638939 + + [ Kees Cook ] + + * SAUCE: SECCOMP: audit: always report seccomp violations + * SAUCE: SECCOMP: adjust prctl constant + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_USBIP_CORE=m + - LP: #900384 + * Rebase to v3.2.14 + * [Config] Updateconfigs after rebase to v3.2.14 + + [ Stefan Bader ] + + * d-i: Fix module name for dm-raid45 + - LP: #969248 + + [ Tim Gardner ] + + * SAUCE: remove __initdata from vesafb_fix + - LP: #969309 + + [ Upstream Kernel Changes ] + + * Revert "sched: tg->se->load should be initialised to tg->shares" + * toshiba_acpi: make one-bit bitfields unsigned + - LP: #810015 + * ACPI: EC: Add ec_get_handle() + - LP: #810015 + * toshiba_acpi: Support alternate hotkey interfaces + - LP: #810015 + * toshiba_acpi: Support additional hotkey scancodes + - LP: #810015 + * toshiba_acpi: Refuse to load on machines with buggy INFO + implementations + - LP: #810015 + * ata_piix: Add Toshiba Satellite Pro A120 to the quirks list due to + broken suspend functionality. + - LP: #886850 + * sweep the floors and convert some .get_drvinfo routines to strlcpy + - LP: #921793 + * be2net: init (vf)_if_handle/vf_pmac_id to handle failure scenarios + - LP: #921793 + * be2net: stop checking the UE registers after an EEH error + - LP: #921793 + * be2net: don't log more than one error on detecting EEH/UE errors + - LP: #921793 + * be2net: stop issuing FW cmds if any cmd times out + - LP: #921793 + * be2net: Fix TX queue create for Lancer + - LP: #921793 + * be2net: add register dump feature for Lancer + - LP: #921793 + * be2net: Add EEPROM dump feature for Lancer + - LP: #921793 + * be2net: Fix VLAN promiscous mode for Lancer + - LP: #921793 + * be2net: Use V1 query link status command for lancer + - LP: #921793 + * be2net: Move to new SR-IOV implementation in Lancer + - LP: #921793 + * be2net: Fix error recovery paths + - LP: #921793 + * be2net: Add error handling for Lancer + - LP: #921793 + * be2net: Use new hash key + - LP: #921793 + * be2net: Fix non utilization of RX queues + - LP: #921793 + * be2net: netpoll support + - LP: #921793 + * be2net: update some counters to display via ethtool + - LP: #921793 + * be2net: workaround to fix a bug in BE + - LP: #921793 + * be2net: fix ethtool ringparam reporting + - LP: #921793 + * be2net: refactor/cleanup vf configuration code + - LP: #921793 + * be2net: Add support for Skyhawk cards + - LP: #921793 + * be2net: Fix INTx processing for Lancer + - LP: #921793 + * be2net: fix range check for set_qos for a VF + - LP: #921793 + * be2net: query link status in be_open() + - LP: #921793 + * netdev: make net_device_ops const + - LP: #921793 + * be2net: create RSS rings even in multi-channel configs + - LP: #921793 + * ethtool: Null-terminate filename passed to ethtool_ops::flash_device + - LP: #921793 + * sched: Fix nohz load accounting + - LP: #838811 + * ACPICA: Fix regression in FADT revision checks + - LP: #883441 + * asus-wmi: move WAPF variable into quirks_entry + - LP: #969576 + * eeepc-wmi: refine quirks handling + - LP: #969576 + * drm/i915: Sanitize BIOS debugging bits from PIPECONF + - LP: #968307 + * drivers: hv: Get rid of some unnecessary code + * drivers: hv: kvp: Add/cleanup connector defines + * drivers: hv: kvp: Move the contents of hv_kvp.h to hyperv.h + * net/hyperv: Convert camel cased variables in rndis_filter.c to lower + cases + * net/hyperv: Correct the assignment in netvsc_recv_callback() + * net/hyperv: Remove the unnecessary memset in rndis_filter_send() + * tools: hv: Use hyperv.h to get the KVP definitions + * drivers: hv: Cleanup the kvp related state in hyperv.h + * drivers: hv: kvp: Cleanup the kernel/user protocol + * drivers: hv: Increase the number of VCPUs supported in the guest + * net/hyperv: Fix data corruption in rndis_filter_receive() + * net/hyperv: Add support for vlan trunking from guests + * Drivers: hv: Add new message types to enhance KVP + * net/hyperv: fix erroneous NETDEV_TX_BUSY use + * NLS: improve UTF8 -> UTF16 string conversion routine + * Drivers: hv: Support the newly introduced KVP messages in the driver + * Tools: hv: Fully support the new KVP verbs in the user level daemon + * Tools: hv: Support enumeration from all the pools + * Drivers: scsi: storvsc: Properly handle errors from the host + * net: mv643xx_eth: fix build error + - LP: #921793 + * rebase to v3.2.14 + + -- Leann Ogasawara Tue, 03 Apr 2012 08:59:16 -0700 + +linux (3.2.0-21.34) precise; urgency=low + + [ AceLan Kao ] + + * SAUCE: (drop after 3.4) asus-wmi: add scalar board brightness adj. + support + - LP: #961879 + * SAUCE: (drop after 3.4) asus-wmi: store backlight power status for AIO + machine + - LP: #961880 + + [ Andy Whitcroft ] + + * [Config]: enable CONFIG_DRM_LOAD_EDID_FIRMWARE + + [ John Johansen ] + + * SAUCE: AppArmor: Add the ability to mediate mount + * SAUCE: AppArmor: Add profile introspection file to interface + * SAUCE: AppArmor: basic networking rules + * SAUCE: Update aufs for build failure caused by apparmor backport + * SAUCE: AppArmor: Fix change_onexec when called from a confined task + - LP: #963756 + + [ Leann Ogasawara ] + + * Revert "SAUCE: (drop after 3.3) platform/x86: Add driver for Apple gmux + device" + * Rebase to v3.2.13 + * d-i: Fix iwl3945 driver name typo in nic-modules + * d-i: Add missing iwl* drivers to nic-modules + - LP: #965116 + * d-i: Remove obsolete bcm43xx* drivers from nic-modules + * d-i: Add brcm*mac drivers to nic-modules + + [ Seth Forshee ] + + * SAUCE: (drop after 3.3) apple_bl: Add register/unregister functions + * SAUCE: (drop after 3.3) platform/x86: Add driver for Apple gmux device + + [ Tim Gardner ] + + * Add isci to debian scsi-modules udeb + - LP: #963306 + * SAUCE: fsam7400: use UMH_WAIT_PROC consistently + - LP: #963685 + * SAUCE: disable_nx should not be in __cpuinitdata section for X86_32 + - LP: #968233 + + [ Upstream Kernel Changes ] + + * Bluetooth: Adding USB device 13d3:3375 as an Atheros AR3012. + - LP: #916319 + * x86: Report cpb and eff_freq_ro flags correctly + - LP: #960461 + * x86/amd: Add missing feature flag for fam15h models 10h-1fh processors + - LP: #960461 + * KVM: Move cpuid code to new file + - LP: #960466 + * KVM: expose latest Intel cpu new features (BMI1/BMI2/FMA/AVX2) to guest + - LP: #960466 + * apparmor: add missing rcu_dereference() + * apparmor: fix module parameter handling + * btrfs, nfs, apparmor: don't pull mnt_namespace.h for no reason... + * switch security_path_chmod() to umode_t + * switch securityfs_create_file() to umode_t + * switch ->path_mkdir() to umode_t + * switch ->path_mknod() to umode_t + * capabilities: remove the task from capable LSM hook entirely + * switch security_path_chmod() to struct path * + * AppArmor: refactor securityfs to use structures + * AppArmor: add initial "features" directory to securityfs + * AppArmor: add "file" details to securityfs + * AppArmor: export known rlimit names/value mappings in securityfs + * AppArmor: Add mising end of structure test to caps unpacking + * AppArmor: Fix dropping of allowed operations that are force audited + * AppArmor: Fix underflow in xindex calculation + * AppArmor: fix mapping of META_READ to audit and quiet flags + * AppArmor: Fix the error case for chroot relative path name lookup + * AppArmor: Fix error returned when a path lookup is disconnected + * AppArmor: Fix oops in policy unpack auditing + * AppArmor: Add const qualifiers to generated string tables + * AppArmor: Retrieve the dentry_path for error reporting when path lookup + fails + * AppArmor: Minor cleanup of d_namespace_path to consolidate error + handling + * AppArmor: Update dfa matching routines. + * AppArmor: Move path failure information into aa_get_name and rename + * AppArmor: Add ability to load extended policy + * AppArmor: add const qualifiers to string arrays + * AppArmor: Fix location of const qualifier on generated string tables + * drm: allow loading an EDID as firmware to override broken monitor + * usermodehelper: use UMH_WAIT_PROC consistently + - LP: #963685 + * usermodehelper: introduce umh_complete(sub_info) + - LP: #963685 + * usermodehelper: implement UMH_KILLABLE + - LP: #963685 + * usermodehelper: kill umh_wait, renumber UMH_* constants + - LP: #963685 + * usermodehelper: ____call_usermodehelper() doesn't need do_exit() + - LP: #963685 + * kmod: introduce call_modprobe() helper + - LP: #963685 + * kmod: make __request_module() killable + - LP: #963685 + * x86, tsc: Fix SMI induced variation in quick_pit_calibrate() + - LP: #965586 + * drm/i915: Ignore LVDS on hp t5745 and hp st5747 thin client + - LP: #911916, #911920 + * drm/i915: Add Clientron E830 to the ignore LVDS list + - LP: #907055 + * rebase to v3.2.13 + + -- Leann Ogasawara Thu, 29 Mar 2012 08:33:38 -0700 + +linux (3.2.0-20.33) precise; urgency=low + + [ Upstream Kernel Changes ] + + * (pre-stable) ASPM: Fix pcie devices with non-pcie children + - LP: #961482 + + -- Leann Ogasawara Tue, 27 Mar 2012 08:37:43 -0700 + +linux (3.2.0-20.32) precise; urgency=low + + [ Andy Lutomirski ] + + * SAUCE: SECCOMP: Add PR_{GET,SET}_NO_NEW_PRIVS to prevent execve from + granting privs + + [ John Johansen ] + + * SAUCE: SECCOMP: Fix apparmor for PR_{GET,SET}_NO_NEW_PRIVS + + [ Kees Cook ] + + * SAUCE: SECCOMP: seccomp: remove duplicated failure logging + * [Config] SECCOMP_FILTER=y + + [ Upstream Kernel Changes ] + + * seccomp: audit abnormal end to a process due to seccomp + + [ Will Drewry ] + + * SAUCE: SECCOMP: sk_run_filter: add BPF_S_ANC_SECCOMP_LD_W + * SAUCE: SECCOMP: net/compat.c,linux/filter.h: share compat_sock_fprog + * SAUCE: SECCOMP: seccomp: kill the seccomp_t typedef + * SAUCE: SECCOMP: arch/x86: add syscall_get_arch to syscall.h + * SAUCE: SECCOMP: asm/syscall.h: add syscall_get_arch + * SAUCE: SECCOMP: seccomp: add system call filtering using BPF + * SAUCE: SECCOMP: seccomp: add SECCOMP_RET_ERRNO + * SAUCE: SECCOMP: signal, x86: add SIGSYS info and make it synchronous. + * SAUCE: SECCOMP: seccomp: Add SECCOMP_RET_TRAP + * SAUCE: SECCOMP: ptrace,seccomp: Add PTRACE_SECCOMP support + * SAUCE: SECCOMP: x86: Enable HAVE_ARCH_SECCOMP_FILTER + * SAUCE: SECCOMP: Documentation: prctl/seccomp_filter + + -- Leann Ogasawara Wed, 21 Mar 2012 14:03:41 -0700 + +linux (3.2.0-19.31) precise; urgency=low + + [ Stefan Bader ] + + * d-i: Add dm-multipath and scsi device handlers + - LP: #959749 + * d-i: Move multipath modules into their own udeb + - LP: #598251, #959749 + + [ Tim Gardner ] + + * [Config] Auto-detect do_tools setting + * [Config] correctly specify CROSS_COMPILE for tools build + * [Config] CONFIG_DRM_PSB_CDV=n + * Rebase to v3.2.12 + + [ Upstream Kernel Changes ] + + * powerpc/pmac: Fix SMP kernels on pre-core99 UP machines + - LP: #959959 + * rebase to v3.2.12 + + -- Leann Ogasawara Tue, 20 Mar 2012 09:11:26 -0700 + +linux (3.2.0-19.30) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] Fix typeo in the Hyper-V module names + + [ Colin Watson ] + + * [Config] Move kernels to "Section: kernel" + - LP: #499557 + + [ John Johansen ] + + * SAUCE: AppArmor: Add ability to load extended policy + * SAUCE: AppArmor: Add the ability to mediate mount + * SAUCE: AppArmor: Add profile introspection file to interface + * SAUCE: AppArmor: basic networking rules + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER + - LP: #952035 + * Rebase to v3.2.10 + * [Config] Update configs after rebase to v3.2.10 + * Rebase to v3.2.11 + * [Config] Disable CONFIG_STUB_POULSBO + - LP: #899244 + * [Config] Add CONFIG_DRM_PSB check to enforcer + - LP: #899244 + + [ Tim Gardner ] + + * [Config] Drop non-SMP powerpc + + [ Upstream Kernel Changes ] + + * net/hyperv: Use the built-in macro KBUILD_MODNAME for this driver + * x86: Derandom delay_tsc for 64 bit + * Bluetooth: Fix l2cap conn failures for ssp devices + - LP: #872044 + * KVM: x86: extend "struct x86_emulate_ops" with "get_cpuid" + - LP: #917842 + - CVE-2012-0045 + * KVM: x86: fix missing checks in syscall emulation + - LP: #917842 + - CVE-2012-0045 + * rebase to v3.2.11 + * rebase to v3.2.10 + + -- Leann Ogasawara Fri, 16 Mar 2012 08:02:07 -0700 + +linux (3.2.0-18.29) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] restore build-% shortcut + * SAUCE: ata_piix: defer disks to the Hyper-V drivers by default + - LP: #929545, #942316 + + [ Eugeni Dodonov ] + + * SAUCE: drm: give up on edid retries when i2c bus is not responding + - LP: #855124 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.3) platform/x86: Add driver for Apple gmux device + - LP: #925544 + + [ Upstream Kernel Changes ] + + * bsg: fix sysfs link remove warning + - LP: #946928 + * regset: Prevent null pointer reference on readonly regsets + - LP: #949905 + - CVE-2012-1097 + * regset: Return -EFAULT, not -EIO, on host-side memory fault + - LP: #949905 + - CVE-2012-1097 + + [ Wu Fengguang ] + + * SAUCE: (drop after 3.4) ALSA: hda - add id for Atom Cedar Trail HDMI + codec + + -- Leann Ogasawara Fri, 09 Mar 2012 07:56:11 -0800 + +linux (3.2.0-18.28) precise; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- adapt to the new changelog handling + * ubuntu: AUFS -- sort out the relative header paths + * ubuntu: AUFS -- update to d266b0c5d0693d6383976ee54b9e2c0fa9a3f5b0 + + [ Chase Douglas ] + + * SAUCE: (drop after 3.3) HID: hid-magicmouse: Add pointer and buttonpad + properties for Magic Trackpad + * SAUCE: Input: synaptics - add second variant of two-button clickpad + * SAUCE: Input: synapticss - Set buttonpad property for all clickpads + + [ Johannes Berg ] + + * SAUCE: iwlwifi: fix key removal + - LP: #911059 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: Fix unpack of network tables." + * Revert "SAUCE: AppArmor: Allow dfa backward compatibility with broken + userspace" + * SAUCE: AppArmor: Add mising end of structure test to caps unpacking + * SAUCE: AppArmor: Fix dropping of allowed operations that are force + audited + * SAUCE: AppArmor: Fix underflow in xindex calculation + * SAUCE: AppArmor: fix mapping of META_READ to audit and quiet flags + * SAUCE: AppArmor: Fix the error case for chroot relative path name + lookup + - LP: #925028 + * SAUCE: AppArmor: Retrieve the dentry_path for error reporting when path + lookup fails + - LP: #925028 + * SAUCE: AppArmor: Minor cleanup of d_namespace_path to consolidate error + handling + * SAUCE: AppArmor: Update dfa matching routines. + * SAUCE: AppArmor: Move path failure information into aa_get_name and + rename + * SAUCE: AppArmor: Make chroot relative the default path lookup type + * SAUCE: AppArmor: Add ability to load extended policy + * SAUCE: AppArmor: basic networking rules + * SAUCE: AppArmor: Add profile introspection file to interface + * SAUCE: AppArmor: Add the ability to mediate mount + * SAUCE: AppArmor: Add mount information to apparmorfs + + [ Kees Cook ] + + * SAUCE: AppArmor: refactor securityfs to use structures + * SAUCE: AppArmor: add initial "features" directory to securityfs + * SAUCE: AppArmor: add "file" details to securityfs + * SAUCE: AppArmor: export known rlimit names/value mappings in securityfs + + [ Leann Ogasawara ] + + * Revert "[Config] Enable CONFIG_NVRAM=m" + - LP: #942193 + * Rebase to v3.2.7 + * [Config] Enable CONFIG_USB_SERIAL_QUATECH2=m on arm and powerpc + * [Config] Enable CONFIG_USB_SERIAL_QUATECH_USB2=m on arm and powerpc + * [Config] Add CONFIG_NVRAM to config enforcer + - LP: #942193 + * [Config] Enable CONFIG_SCSI_IBMVSCSI=m for powerpc + - LP: #943090 + * [Config] Enable CONFIG_SCSI_IPR=m for powerpc + - LP: #943090 + * provide ipmi udeb + - LP: #942926 + * Rebase to v3.2.9 + * Add ibmveth to d-i/modules-powerpc/nic-modules + - LP: #712188 + * [Config] Enable CONFIG_SCSI_IBMVFC=m for powerpc + - LP: #712188 + * Add ibmvfc and ibmvscsic to d-i/modules-powerpc/nic-modules + - LP: #712188 + + [ Seth Heasley ] + + * SAUCE: ALSA: hda - Add Lynx Point HD Audio Controller DeviceIDs + - LP: #900119 + * SAUCE: ahci: AHCI-mode SATA patch for Intel Lynx Point DeviceIDs + - LP: #900119 + * SAUCE: ata_piix: IDE-mode SATA patch for Intel Lynx Point DeviceIDs + - LP: #900119 + * SAUCE: i2c-i801: Add device IDs for Intel Lynx Point + - LP: #900119 + + [ Tim Gardner ] + + * [Config] updateconfigs after apparmor patches + * [Config] Added hv_netvsc and hv_storvsc to -virtual + - LP: #942256 + * [Config] Enable aufs + - LP: #943119 + + [ Upstream Kernel Changes ] + + * Revert "Revert "ath9k_hw: fix interpretation of the rx KeyMiss flag"" + * Revert "AppArmor: compatibility patch for v5 interface" + * Revert "AppArmor: compatibility patch for v5 network controll" + * ACPI / PM: Do not save/restore NVS on Asus K54C/K54HR + - LP: #898503 + * rebase to v3.2.9 + - LP: #900802 + * rebase to v3.2.8 + * rebase to v3.2.7 + - LP: #930842 + + -- Leann Ogasawara Fri, 02 Mar 2012 07:30:45 -0800 + +linux (3.2.0-17.27) precise; urgency=low + + [ Eugeni Dodonov ] + + * SAUCE: drm/i915: fix operator precedence when enabling RC6p + + -- Leann Ogasawara Tue, 21 Feb 2012 06:31:42 -0800 + +linux (3.2.0-17.26) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] clean up the human consumable package descriptions + * [Config] fix generic flavour description + * [Config] clean up linux-tools package descriptions + - LP: #593107 + * deviations -- note the source of the Hyper-V updates + * SAUCE: ata_piix: defer to the Hyper-V drivers by default + - LP: #929545 + + [ Eugeni Dodonov ] + + * SAUCE: drm/i915: do not enable RC6p on Sandy Bridge + + [ Kees Cook ] + + * SAUCE: (drop after 3.3) security: create task_free security callback + * SAUCE: (drop after 3.3) security: Yama LSM + * SAUCE: (drop after 3.3) Yama: add PR_SET_PTRACER_ANY + * SAUCE: Yama: add link restrictions + * SAUCE: security: unconditionally chain to Yama LSM + + [ Leann Ogasawara ] + + * Drop ndiswrapper + + [ Robert Hooker ] + + * SAUCE: drm/i915: Enable RC6 by default on sandybridge. + + [ Tim Gardner ] + + * SAUCE: ipheth: Add iPhone 4S + - LP: #900802 + * dropped hv_mouse + * [Config] CONFIG_X86_NUMACHIP=y + + [ Upstream Kernel Changes ] + + * Staging: hv: vmbus: Support building the vmbus driver as part of the + kernel + * hv: Add Kconfig menu entry + * Drivers: hv: Fix a memory leak + * Drivers: hv: Make the vmbus driver unloadable + * Drivers: hv: Get rid of an unnecessary check in hv.c + * Staging: hv: mousevsc: Make boolean states boolean + * Staging: hv: mousevsc: Inline the code for mousevsc_on_device_add() + * Staging: hv: mousevsc: Inline the code for reportdesc_callback() + * Staging: hv: mousevsc: Cleanup mousevsc_on_channel_callback() + * Staging: hv: mousevsc: Add a new line to a debug string + * Staging: hv: mousevsc: Get rid of unnecessary include files + * Staging: hv: mousevsc: Address some style issues + * Staging: hv: mousevsc: Add a check to prevent memory corruption + * Staging: hv: mousevsc: Use the KBUILD_MODNAME macro + * Staging: hv: storvsc: Use mempools to allocate struct + storvsc_cmd_request + * Staging: hv: storvsc: Cleanup error handling in the probe function + * Staging: hv: storvsc: Fixup the error when processing SET_WINDOW + command + * Staging: hv: storvsc: Fix error handling storvsc_host_reset() + * Staging: hv: storvsc: Use the accessor function shost_priv() + * Staging: hv: storvsc: Use the unlocked version queuecommand + * Staging: hv: storvsc: use the macro KBUILD_MODNAME + * Staging: hv: storvsc: Get rid of an unnecessary forward declaration + * Staging: hv: storvsc: Upgrade the vmstor protocol version + * Staging: hv: storvsc: Support hot add of scsi disks + * Staging: hv: storvsc: Support hot-removing of scsi devices + * staging: hv: Use kmemdup rather than duplicating its implementation + * staging: hv: move hv_netvsc out of staging area + * Staging: hv: mousevsc: Properly add the hid device + * Staging: hv: storvsc: Disable clustering + * Staging: hv: storvsc: Cleanup storvsc_device_alloc() + * Staging: hv: storvsc: Fix a bug in storvsc_command_completion() + * Staging: hv: storvsc: Fix a bug in copy_from_bounce_buffer() + * Staging: hv: storvsc: Implement per device memory pools + * Staging: hv: remove hv_mouse driver as it's now in the hid directory + * Staging: hv: update TODO file + * Staging: hv: storvsc: Fix a bug in create_bounce_buffer() + * net/hyperv: Fix long lines in netvsc.c + * net/hyperv: Add support for promiscuous mode setting + * net/hyperv: Fix the stop/wake queue mechanism + * net/hyperv: Remove unnecessary kmap_atomic in netvsc driver + * net/hyperv: Add NETVSP protocol version negotiation + * net/hyperv: Add support for jumbo frame up to 64KB + * net/hyperv: fix possible memory leak in do_set_multicast() + * net/hyperv: rx_bytes should account the ether header size + * net/hyperv: fix the issue that large packets be dropped under bridge + * net/hyperv: Use netif_tx_disable() instead of netif_stop_queue() when + necessary + * net/hyperv: Fix the page buffer when an RNDIS message goes beyond page + boundary + * HID: Move the hid-hyperv driver out of staging + * HID: hv_mouse: Properly add the hid device + * HID: hyperv: Properly disconnect the input device + * Staging: hv: storvsc: Cleanup some comments + * Staging: hv: storvsc: Cleanup storvsc_probe() + * Staging: hv: storvsc: Cleanup storvsc_queuecommand() + * Staging: hv: storvsc: Introduce defines for srb status codes + * Staging: hv: storvsc: Cleanup storvsc_host_reset_handler() + * Staging: hv: storvsc: Move and cleanup storvsc_remove() + * Staging: hv: storvsc: Add a comment to explain life-cycle management + * Staging: hv: storvsc: Get rid of the on_io_completion in + hv_storvsc_request + * Staging: hv: storvsc: Rename the context field in hv_storvsc_request + * Staging: hv: storvsc: Miscellaneous cleanup of storvsc driver + * Staging: hv: storvsc: Cleanup the code for generating protocol version + * Staging: hv: storvsc: Cleanup some protocol related constants + * Staging: hv: storvsc: Get rid of some unused defines + * Staging: hv: storvsc: Consolidate the request structure + * Staging: hv: storvsc: Consolidate all the wire protocol definitions + * Staging: hv: storvsc: Move the storage driver out of the staging area + * x86: Make flat_init_apic_ldr() available + * x86: Add x86_init platform override to fix up NUMA core numbering + * x86: Add NumaChip support + * x86/numachip: Drop unnecessary conflict with EDAC + * Input: bcm5974 - set BUTTONPAD property + + -- Leann Ogasawara Fri, 17 Feb 2012 10:12:34 -0800 + +linux (3.2.0-16.25) precise; urgency=low + + [ Andy Whitcroft ] + + * d-i -- include the Hyper-V drivers in the virtio udeb + - LP: #917135 + + [ Felix Fietkau ] + + * (pre-stable): ath9k_hw: fix a RTS/CTS timeout regression + - LP: #925602 + + [ Keith Packard ] + + * SAUCE: drm/i915: Force explicit bpp selection for + intel_dp_link_required + - LP: #745112, #912387, #917330 + + [ Leann Ogasawara ] + + * Fix typo in generic-pae description + - LP: #928448 + * Rebase to v3.2.6 + + [ Upstream Kernel Changes ] + + * procfs: parse mount options + - CVE-2011-4917 + * procfs: add hidepid= and gid= mount options + - CVE-2011-4917 + * proc: fix null pointer deref in proc_pid_permission() + - CVE-2011-4917 + * xhci: Remove warnings about MSI and MSI-X capabilities. + - LP: #929656 + * xhci: Remove scary warnings about transfer issues. + - LP: #929656 + * x86, mce, therm_throt: Don't report power limit and package level + thermal throttle events in mcelog + - LP: #930288 + * rebase to v3.2.6 + - LP: #924320 + - LP: #918254 + + -- Leann Ogasawara Mon, 13 Feb 2012 13:00:08 -0800 + +linux (3.2.0-15.24) precise; urgency=low + + [ Leann Ogasawara ] + + * Add CONFIG_THERM_ADT746X=y to config enforcer for powerpc and + powerpc-smp flavours + - LP: #923094 + + [ Merlin Schumacher ] + + * SAUCE: acer-wmi: support for P key on TM8372 + - LP: #865807 + + [ Tim Gardner ] + + * [Config] Rebase to v3.2.5 + * [Config] CONFIG_THERM_ADT746X=y + - LP: #923094 + + [ Upstream Kernel Changes ] + + * rebase to v3.2.5 + + -- Leann Ogasawara Tue, 07 Feb 2012 11:47:43 -0800 + +linux (3.2.0-14.23) precise; urgency=low + + [ Andy Whitcroft ] + + * debian -- add usage help to insert-mainline-changes + + [ Tim Gardner ] + + * [Config] Rebase to v3.2.3 + + [ Upstream Kernel Changes ] + + * Revert "ASoC: Don't go through cache when applying WM5100 rev A + updates" + * Revert "ASoC: Mark WM5100 register map cache only when going into + BIAS_OFF" + * rebase to v3.2.3 + + -- Leann Ogasawara Fri, 03 Feb 2012 12:12:25 -0800 + +linux (3.2.0-13.22) precise; urgency=low + + [ Alex Deucher ] + + * (pre-stable): drm/radeon/kms: move panel mode setup into encoder mode + set + - LP: #925538 + * (pre-stable): drm/radeon/kms: rework modeset sequence for DCE41 and + DCE5 + - LP: #925538 + + [ Andy Whitcroft ] + + * [Config] review IPv6 configuration options and enable + + [ David Henningsson ] + + * SAUCE: ALSA: HDA: Remove quirk for Toshiba Qosmio G50 + - LP: #923316 + * SAUCE: ALSA: HDA: Fix jack creation for codecs with front and rear Line + In + - LP: #923409 + + [ James M. Leddy ] + + * SAUCE: Bluetooth: Add support for BCM20702A0 [0a5c:21e6] + - LP: #906832 + + [ Manoj Iyer ] + + * SAUCE: Bluetooth: Add support for BCM20702A0 [0a5c:21e1] + - LP: #906832 + * SAUCE: Add vendor specific ID (0a5c 21f3) for BCM20702A0. + - LP: #925552 + + [ Seth Forshee ] + + * (pre-stable): drm/radeon/kms: disable output polling when suspended + - LP: #925570 + + [ Tim Gardner ] + + * [Config] CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m + - LP: #922221 + * [Config] Add mtip32xx to d-i block modules + - LP: #922221 + * [Config] Enable USB3.0 in d-i + + [ Upstream Kernel Changes ] + + * block: Add driver for Micron RealSSD pcie flash cards + - LP: #922221 + * mtip32xx: fix warnings/errors on 32-bit compiles + - LP: #922221 + * mtip32xx: cleanup compat ioctl handling + - LP: #922221 + * mtip32xx: ensure that all local functions are static + - LP: #922221 + * mtip32xx: mark a few more items static + - LP: #922221 + * mtip32xx: add module.h include to avoid conflict with moduleh tree + - LP: #922221 + * mtip32xx: update to new ->make_request() API + - LP: #922221 + * mtip32xx: updates based on feedback + - LP: #922221 + * mtip32xx: uninitialized variable in mtip_quiesce_io() + - LP: #922221 + * mtip32xx: do rebuild monitoring asynchronously + - LP: #922221 + * watchdog: iTCO_wdt: add Intel Lynx Point DeviceIDs + - LP: #900119 + * drm/i915: mask transcoder select bits before setting them on LVDS + - LP: #924989 + * (pre-stable) USB: Realtek cr: fix autopm scheduling while atomic + - LP: #917962 + * nouveau: properly check for _DSM function support + - LP: #925608 + * nouveau: Support Optimus models for vga_switcheroo + - LP: #925608 + + -- Leann Ogasawara Thu, 02 Feb 2012 13:26:59 -0800 + +linux (3.2.0-12.21) precise; urgency=low + + [ Upstream Kernel Changes ] + + * Revert "ath9k_hw: fix interpretation of the rx KeyMiss flag" + - LP: #923512 + + -- Leann Ogasawara Mon, 30 Jan 2012 06:46:01 -0800 + +linux (3.2.0-12.20) precise; urgency=low + + [ Andy Whitcroft ] + + * switch to new style rebase marker with bug number + + [ Leann Ogasawara ] + + * Add CONFIG_GPIO_TWL4030=y for arm[el|hf] to the config enforcer + - LP: #921934 + + [ Paolo Pisati ] + + * [Config] Switch CONFIG_GPIO_TWL4030=y back on arm[el|hf]. + - LP: #921934 + + [ Tim Gardner ] + + * Rebase to v3.2.2, CONFIG_SND_KCTL_JACK=y + * [Config] Add Hyper-V modules to virtual inclusion list + - LP: #922063 + + [ Upstream Kernel Changes ] + + * Revert "CHROMIUM: enable CONFIG_SECCOMP_FILTER and + CONFIG_HAVE_SECCOMP_FILTER" + * Revert "CHROMIUM: Fix kref usage" + * Revert "CHROMIUM: Fix seccomp_t compile error" + * Revert "CHROMIUM: seccomp_filter: make inherited filters composable" + * Revert "CHROMIUM: seccomp_filter: inheritance documentation" + * Revert "CHROMIUM: seccomp_filter: allow CAP_SYS_ADMIN management of + execve" + * Revert "CHROMIUM: seccomp_filter: remove "skip" from copy and add drop + helper" + * Revert "CHROMIUM: seccomp_filters: clean up warnings; kref mistake" + * Revert "CHROMIUM: seccomp_filters: guard all ftrace wrapper code" + * Revert "CHROMIUM: seccomp_filter: kill NR_syscall references" + * Revert "CHROMIUM: enable CONFIG_BTREE" + * Revert "CHROMIUM: seccomp_filters: move to btrees" + * Revert "CHROMIUM: arm: select HAVE_SECCOMP_FILTER" + * Revert "CHROMIUM: x86: add HAVE_SECCOMP_FILTER and seccomp_execve" + * Revert "CHROMIUM: seccomp_filter: Document what seccomp_filter is and + how it works." + * Revert "CHROMIUM: seccomp_filter: add process state reporting" + * Revert "CHROMIUM: seccomp_filter: new mode with configurable syscall + filters" + * rebase to v3.2.2 + - LP: #795823 + - LP: #909419 + - LP: #724831 + + -- Tim Gardner Thu, 26 Jan 2012 02:54:56 +0000 + +linux (3.2.0-11.19) precise; urgency=low + + [ Daniel Lezcano ] + + * SAUCE: Add reboot_pid_ns to handle the reboot syscall + - LP: #914676 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Introduce snd_hda_get_pin_label() + * ALSA: hda - Cache the jack-detection value + * ALSA: hda - Create jack-detection kcontrols + * ALSA: hda - Manage unsol tags in hda_jack.c + * ALSA: Introduce common helper functions for jack-detection control + * ALSA: HDA: Jack: Export required functions from hda_jack.c + * ALSA: hda/jack - Fix NULL-dereference at probing + * ALSA: hda/jack - Fix the assignment of input jack-type + * ALSA: hda - Add missing initialization of kctl jack status + * ALSA: hda - Add missing inclusion of linux/export.h + * ALSA: hda - Give more unique names by snd_hda_get_pin_label() + * ALSA: hda - Fix a typo + * ALSA: hda - Don't add channel suffix for headphone pin labels + * ALSA: hda - Integrate input-jack stuff into kctl-jack + * ALSA: hda/realtek - Avoid conflict of unsol-events with static quirks + * ALSA: hda/realtek - Remove use_jack_tbl field + + -- Leann Ogasawara Wed, 25 Jan 2012 06:57:19 -0800 + +linux (3.2.0-10.18) precise; urgency=low + + [ Tim Gardner ] + + * SAUCE: ecryptfs: Print inode on metadata error + + [ Upstream Kernel Changes ] + + * Revert "proc: enable writing to /proc/pid/mem" + - LP: #919115 + - CVE-2012-0056 + * (pre-stable) ALSA: HDA: Use LPIB position fix for Macbook Pro 7, 1 + - LP: #909419 + + -- Andy Whitcroft Tue, 24 Jan 2012 10:15:12 +0000 + +linux (3.2.0-10.17) precise; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: overlayfs -- fs: limit filesystem stacking depth" + * Revert "SAUCE: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: overlayfs -- overlayfs: implement show_options" + * Revert "SAUCE: overlayfs -- overlayfs: add statfs support" + * Revert "SAUCE: overlayfs -- overlay filesystem" + * Revert "SAUCE: overlayfs -- vfs: introduce clone_private_mount()" + * Revert "SAUCE: overlayfs -- vfs: export do_splice_direct() to modules" + * Revert "SAUCE: overlayfs -- vfs: add i_op->open()" + * ensure debian/ is not excluded from git by default + * add new scripting to handle buglinks in rebases + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- overlayfs: apply device cgroup and security + permissions to overlay files + - LP: #915941, #918212 + - CVE-2012-0055 + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * Revert "SAUCE: dmar: disable if ricoh multifunction detected" + * [Config] Disable CONFIG_INTEL_IOMMU_DEFAULT_ON + - LP: #907377, #911236 + * [Config] Enable CONFIG_IRQ_REMAP + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: pass struct path to __dentry_open() + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Upstream Kernel Changes ] + + * (pre-stable) x86/PCI: amd: factor out MMCONFIG discovery + - LP: #647043 + * (pre-stable) PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that + breaks USB + - LP: #647043 + + -- Leann Ogasawara Mon, 16 Jan 2012 07:10:08 -0800 + +linux (3.2.0-9.16) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] Enable numerous CONFIG_VIDEO_* cards on ARM + * [Config] pull ARM sound modules =m + * [Config] CONFIG_RTC_DRV_TEST is for testing only + * [Config] CONFIG_USB_DUMMY_HCD is testing only + * [Config] CONFIG_USB_FILE_STORAGE is deprecated + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_CAN_TI_HECC on armel" + * [Config] Enable CONFIG_HW_RANDOM_PASEMI=m + * [Config] Enable CONFIG_MMC_TMIO=m + * [Config] Enable CONFIG_MTD_NAND_FSL_ELBC=m + * [Config] Enable CONFIG_ISI=m + * [Config] Enable CONFIG_MMC=y + * [Config] Enable CONFIG_LIRC_PARALLEL=m + * [Config] Enable CONFIG_MAC_EMUMOUSEBTN=m + * [Config] Enable CONFIG_CHR_DEV_SG=y + * [Config] Enable CONFIG_GPIO_PCA953X=m + * [Config] Enable CONFIG_GPIO_TWL4030=m + * [Config] Enable CONFIG_INET_DIAG=m + * [Config] Enable CONFIG_NLS_ISO8859_1=m + * [Config] Enable CONFIG_NVRAM=m + * [Config] Enable CONFIG_SLIP=m + * [Config] Enable CONFIG_PC300TOO=m + * [Config] Enable CONFIG_TUN=y + * [Config] Enable CONFIG_NET_CLS_CGROUP=m + * [Config] Enable CONFIG_THERMAL=y + * [Config] Enable CONFIG_PPP=y + * [Config] Enable CONFIG_PCI_STUB=m + * Rebase to v3.2.1 + * [Config] Enable CONFIG_RTL8192E=m + * [Config] Enable CONFIG_RTS5139=m + + [ Stefan Bader ] + + * [Config] Make CONFIG_VIRTIO_(NET|BLK)=y + + [ Upstream Kernel Changes ] + + * ARM: restart: add restart hook to machine_desc record + * ARM: restart: allow platforms more flexibility specifying restart mode + * ARM: restart: move reboot failure handing into machine_restart() + * ARM: restart: remove argument to setup_mm_for_reboot() + * ARM: 7159/1: OMAP: Introduce local common.h files + * ARM: restart: only perform setup for restart when soft-restarting + * ARM: 7189/1: OMAP3: Fix build break in cpuidle34xx.c because of irq + function + * ARM: idmap: populate identity map pgd at init time using .init.text + * ARM: suspend: use idmap_pgd instead of suspend_pgd + * ARM: proc-*.S: place cpu_reset functions into .idmap.text section + * ARM: idmap: use idmap_pgd when setting up mm for reboot + * ARM: head.S: only include __turn_mmu_on in the initial identity mapping + * ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting + * ARM: 7194/1: OMAP: Fix build after a merge between v3.2-rc4 and ARM + restart changes + * ARM: lib: add call_with_stack function for safely changing stack + * ARM: reset: implement soft_restart for jumping to a physical address + * ARM: stop: execute platform callback from cpu_stop code + * ARM: kexec: use soft_restart for branching to the reboot buffer + * ARM: restart: omap: use new restart hook + * topdown mmap support + - LP: #861296 + + [ Upstream Kernel Changes ] + + * Rebase to v3.2.1 + + -- Leann Ogasawara Fri, 13 Jan 2012 20:32:08 +0100 + +linux (3.2.0-8.15) precise; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_ACPI_PROCFS + * Remove server from getabis + * Temporarily disable module check + * [Config] Disable CONFIG_MTD_TESTS + * [Config] Disable CONFIG_X86_E_POWERSAVER + * [Config] Set CONFIG_ARCNET=m + * [Config] Enable CONFIG_ATM_DUMMY=m + * [Config] Enable CONFIG_BLK_DEV_MD=y + * ubuntu: fsam7400 select CHECK_SIGNATURE and depend on X86 + * [Config] Enable CONFIG_BLK_DEV_SD=y + * [Config] Enable CONFIG_BLK_DEV_SR=y + * [Config] Enable CONFIG_BLK_DEV_UB=m + * [Config] Enable CONFIG_COPS=m + * [Config] Enable CONFIG_DVB_USB_EC168=m + * [Config] Enable CONFIG_ENC28J60=m + * [Config] Enable CONFIG_FB_UVESA=m + * [Config] Enable CONFIG_FB_ATY=m + * [Config] Enable CONFIG_BROADCOM_PHY=y + * [Config] Enable CONFIG_CICADA_PHY=y + * [Config] Enable CONFIG_DAVICOM_PHY=y + * [Config] Enable CONFIG_ICPLUS_PHY=y + * [Config] Enable CONFIG_LSI_ET1011C_PHY=y + * [Config] Enable CONFIG_LXT_PHY=y + * [Config] Enable CONFIG_MARVELL_PHY=y + * [Config] Enable CONFIG_NATIONAL_PHY=y + * [Config] Enable CONFIG_QSEMI_PHY=y + * [Config] Enable CONFIG_SMSC_PHY=y + * [Config] Enable CONFIG_VITESSE_PHY=y + * Add 3w-sas to scsi-modules + - LP: #776542 + + [ Mathieu Trudel-Lapierre ] + + * SAUCE: ipv6: make the net.ipv6.conf.all.use_tempaddr sysctl propagate + to interface settings + + [ Paolo Pisati ] + + * Revert "SAUCE: omap3: beagle: if rev unknown, assume xM revision C" + - LP: #912199 + * Revert "SAUCE: omap3: beagle: detect new xM revision B" + - LP: #912199 + * Revert "SAUCE: omap3: beaglexm: fix DVI initialization" + - LP: #912199 + + [ Upstream Kernel Changes ] + + * Bluetooth: Add support for BCM20702A0 [0a5c:21e3] + - LP: #906832 + + -- Leann Ogasawara Fri, 06 Jan 2012 10:02:03 -0800 + +linux (3.2.0-8.14) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_SND_USB_6FIRE + - LP: #912197 + * rebase to mainline v3.2 final release + * updateconfigs following rebase to v3.2 final + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + * ubuntu: AUFS -- aufs3-base.patch + * ubuntu: AUFS -- aufs3-standalone.patch + * ubuntu: AUFS -- fix undefined __devcgroup_inode_permission + * ubuntu: AUFS -- fix undefined security_path_link + * ubuntu: AUFS -- update to 4cf5db36bcd9748e8e7270022f295f84d1fc2245 + * ubuntu: AUFS -- updateconfigs following update + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * ubuntu: AUFS -- enable in config and makefile + * ubuntu: AUFS -- disable in favor of overlayfs + * [Config] linux-virtual -- should include the extX modules + - LP: #912308 + + [ Tyler Hicks ] + + * SAUCE: eCryptfs: Improve statfs reporting + - LP: #885744 + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2 + + -- Leann Ogasawara Mon, 26 Dec 2011 20:24:30 -0800 + +linux (3.2.0-7.13) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream 3.2-rc7 + + -- Leann Ogasawara Mon, 19 Dec 2011 09:14:34 -0800 + +linux (3.2.0-6.12) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2-rc6 + + -- Leann Ogasawara Fri, 16 Dec 2011 10:19:02 -0800 + +linux (3.2.0-5.11) precise; urgency=low + + [ Andy Whitcroft ] + + * enforcer -- allow arch and flavour predicates to take lists + * enforcer -- simplify armel/armhf specific options + * enforcer -- fix incorrectly specified flavour matches + + [ Leann Ogasawara ] + + * [Config] Disable IRQ_REMAP + * [Config] Enable CONFIG_SENSORS_LM95245=m + * [Config] Enable CONFIG_SENSORS_MAX1668=m + * [Config] Enable CONFIG_SENSORS_NTC_THERMISTOR=m + * [Config] Enable CONFIG_SENSORS_MAX6639=m + * [Config] Enable CONFIG_SENSORS_MAX6642=m + * [Config] Enable CONFIG_SENSORS_LINEAGE=m + * [Config] Enable CONFIG_CRYPTO_SALSA20=m + * [Config] Enable CONFIG_PATA_TOSHIBA=m + * [Config] Enable CONFIG_POHMELFS=m + * [Config] Enable CONFIG_NET_PACKET_ENGINE=y + * [Config] Enable CONFIG_PATA_OPTI=m + * add overlayfs to virtual inclusion list + - LP: #903897 + * add veth to virtual inclusion list + - LP: #903897 + * SAUCE: resolve WARNING: at drivers/block/floppy.c:2929 do_fd_request + + [ Paolo Pisati ] + + * [Config] DEFAULT_MMAP_MIN_ADDR=32k on arm + - LP: #903346 + + [ Tim Gardner ] + + * [Config] CONFIG_LOCKUP_DETECTOR=y + - LP: #903615 + + [ Upstream Kernel Changes ] + + * rebase to upstream 55b02d2f + + -- Leann Ogasawara Mon, 12 Dec 2011 07:08:10 -0800 + +linux (3.2.0-4.10) precise; urgency=low + + [ Kyle McMartin ] + + * SAUCE: dmar: disable if ricoh multifunction detected + - LP: #894070 + + [ Seth Forshee ] + + * SAUCE: dell-wmi: Demote unknown WMI event message to pr_debug + - LP: #581312 + + [ Tim Gardner ] + + * Start new release, Bump ABI, rebase to 3.2-rc5 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_AK8975=m + + -- Tim Gardner Sat, 10 Dec 2011 08:57:04 -0700 + +linux (3.2.0-3.9) precise; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: ext4: correct partial write discard size calculation + - LP: #894768 + + [ Leann Ogasawara ] + + * Revert "SAUCE: x86, microcode, AMD: Restrict microcode reporting" + - LP: #892615 + + [ Matthew Garrett ] + + * SAUCE: pci: Rework ASPM disable code + + [ Upstream Kernel Changes ] + + * x86: Fix boot failures on older AMD CPU's + - LP: #892615 + * EHCI : Fix a regression in the ISO scheduler + - LP: #899165 + + -- Leann Ogasawara Mon, 05 Dec 2011 10:37:36 -0800 + +linux (3.2.0-3.8) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- add d-i configuration + * armhf -- disable ABI checks for armhf + * armhf -- add arch to getabis config + + -- Andy Whitcroft Sat, 03 Dec 2011 14:22:52 +0000 + +linux (3.2.0-3.7) precise; urgency=low + + [ Stefan Bader ] + + * SAUCE: x86/paravirt: PTE updates in k(un)map_atomic need to be + synchronous, regardless of lazy_mmu mode + - LP: #854050 + + [ Tim Gardner ] + + * rebase to v3.2-rc4 + + -- Leann Ogasawara Fri, 02 Dec 2011 11:53:56 -0800 + +linux (3.2.0-2.6) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- fix omap flavour to build on armhf + * [Config] CONFIG_PATA_MACIO=y to fix MAC qemu boot + + [ Borislav Petkov ] + + * SAUCE: x86, microcode, AMD: Restrict microcode reporting + - LP: #892615 + + [ Colin Watson ] + + * Add pata_macio to pata-modules + + [ Tim Gardner ] + + * [Config] Prefer crda over wireless-crda + * [Config] Fix virtual inclusion list. + - LP: #897795 + + -- Leann Ogasawara Wed, 30 Nov 2011 06:09:35 -0800 + +linux (3.2.0-2.5) precise; urgency=low + + [ Paolo Pisati ] + + * [Config] PANEL_DVI=y + + -- Leann Ogasawara Mon, 28 Nov 2011 09:13:24 -0800 + +linux (3.2.0-2.4) precise; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.2-rc3 + + [ Leann Ogasawara ] + + * Revert "SAUCE: xen: Do not use pv spinlocks on HVM" + * Revert "fix ERROR: __devcgroup_inode_permission undefined" + * Revert "olpc_dcon_xo_1_5 needs delay.h" + * Revert "olpc_dcon_xo_1 needs delay.h" + * rebase to 6fe4c6d4 + * [Config] updateconfigs after rebase to 6fe4c6d4 + + [ Tim Gardner ] + + * [Config] Replace wireless-crda with crda,wireless-regdb + - LP: #856421 + * [Config] Relax the dependencies on crda + + [ Upstream Kernel Changes ] + + * (pre-stable) HID: bump maximum global item tag report size to 96 bytes + - LP: #724831 + * Ubuntu: remove coreutils|fileutils package dependency + - LP: #892814 + * iio: iio_event_getfd -- fix ev_int build failure + + [ Upstream Kernel Changes ] + + * Rebase to v3.2-rc3 + + -- Andy Whitcroft Thu, 24 Nov 2011 16:20:45 +0000 + +linux (3.2.0-1.3) precise; urgency=low + + [ Upstream Kernel Changes ] + + * Ubuntu: Add ext2 to fs-core-modules + - LP: #893395 + + -- Leann Ogasawara Mon, 21 Nov 2011 20:42:33 -0800 + +linux (3.2.0-1.2) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_NFC and associated devices + * SAUCE: allow brcmsmac and b43 to both build + + [ Soren Hansen ] + + * Add ixgbe driver to d-i + - LP: #891969 + + -- Leann Ogasawara Mon, 21 Nov 2011 08:33:46 -0800 + +linux (3.2.0-1.1) precise; urgency=low + [ Andy Whitcroft ] + + * armhf -- enable armhf and create the first flavours + * SAUCE: ensure root is ready before running usermodehelpers in it + * [Config] enforcer -- ensure CONFIG_FAT_FS is built-in on arm + + [ Leann Ogasawara ] + + * Temporarily ignore module check + * [Config] Enable PCI_IOV on powerpc + * [Config] Temporarily disable CONFIG_PASEMI_MAC on powerpc + * rebase to v3.2-rc2 + * SAUCE: include for cpuidle34xx arm build + * SAUCE: include for linux/mtd/map.h arm build + * SAUCE: include and for mmc_core arm build + * SAUCE: select ARM_AMBA if OMAP3_EMU + * [Config] updateconfigs after select ARM_AMBA + * [Config] Temporarily disable CONFIG_KVM_BOOK3S_32 on powerpc + * [Config] Enable CONFIG_EXT2_FS=m + * [Config] Build in CONFIG_SATA_AHCI=y + * Resolve linux-image-extra's install dependency + + [ Seth Forshee ] + + * [Config] Enable EVENT_POWER_TRACING_DEPRECATED=y for powertop + * SAUCE: (drop after 3.2) Input: ALPS - move protocol information to + Documentation + * SAUCE: (drop after 3.2) Input: ALPS - add protocol version field in + alps_model_info + * SAUCE: (drop after 3.2) Input: ALPS - remove assumptions about packet + size + * SAUCE: (drop after 3.2) Input: ALPS - add support for protocol versions + 3 and 4 + * SAUCE: (drop after 3.2) Input: ALPS - add semi-MT support for v3 + protocol + * SAUCE: (drop after 3.2) Input: ALPS - add documentation for protocol + versions 3 and 4 + + [ Stefan Bader ] + + * [Config] Built-in xen-netfront and xen-blkfront + * Fix build of dm-raid45 and re-enable it + + [ Tim Gardner ] + + * [Config] CONFIG_USB_XHCI_HCD=y + - LP: #886167 + * [Config] CONFIG_R6040=m + - LP: #650899 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Consolidated amd64 server flavour into generic + * [Config] updateconfigs after rebase to 3.2-rc1 + * [Config] Disabled dm-raid4-5 + * [Config] Disabled ndiswrapper + * [Config] Disable vt6656 + * [Config] exclude ppp-modules for virtual flavour + * [Config] CONFIG_MEMSTICK_R592=m + - LP: #238208 + + [ Upstream Kernel Changes ] + + * CHROMIUM: seccomp_filter: new mode with configurable syscall filters + - LP: #887780 + * CHROMIUM: seccomp_filter: add process state reporting + - LP: #887780 + * CHROMIUM: seccomp_filter: Document what seccomp_filter is and how it + works. + - LP: #887780 + * CHROMIUM: x86: add HAVE_SECCOMP_FILTER and seccomp_execve + - LP: #887780 + * CHROMIUM: arm: select HAVE_SECCOMP_FILTER + - LP: #887780 + * CHROMIUM: seccomp_filters: move to btrees + * CHROMIUM: enable CONFIG_BTREE + * CHROMIUM: seccomp_filter: kill NR_syscall references + * CHROMIUM: seccomp_filters: guard all ftrace wrapper code + * CHROMIUM: seccomp_filters: clean up warnings; kref mistake + * CHROMIUM: seccomp_filter: remove "skip" from copy and add drop helper + * CHROMIUM: seccomp_filter: allow CAP_SYS_ADMIN management of execve + * CHROMIUM: seccomp_filter: inheritance documentation + * CHROMIUM: seccomp_filter: make inherited filters composable + * CHROMIUM: Fix seccomp_t compile error + - LP: #887780 + * CHROMIUM: Fix kref usage + - LP: #887780 + * CHROMIUM: enable CONFIG_SECCOMP_FILTER and CONFIG_HAVE_SECCOMP_FILTER + * rebase to v3.2-rc2 + + -- Leann Ogasawara Mon, 31 Oct 2011 09:24:39 -0400 + +linux (3.1.0-2.3) precise; urgency=low + + [ Tim Gardner ] + + * Add postinit and postrm scripts to the extras package + - LP: #882120 + + -- Leann Ogasawara Fri, 28 Oct 2011 12:48:33 -0700 + +linux (3.1.0-2.2) precise; urgency=low + + [ Andy Whitcroft ] + + * debian: add locking to protect debian/files from parallel update + + [ Leann Ogasawara ] + + * rebase to v3.1 + + [ Upstream Kernel Changes ] + + * rebase to v3.1 + + -- Leann Ogasawara Wed, 19 Oct 2011 07:12:38 -0700 + +linux (3.1.0-1.1) precise; urgency=low + + [ Andiry Xu ] + + * SAUCE: (drop during 3.2 merge) xHCI: AMD isoc link TRB chain bit quirk + - LP: #872811 + + [ Andy Whitcroft ] + + * Revert "ubuntu: compcache -- follow changes to bd_claim/bd_release" + - LP: #832694 + * Revert "ubuntu: compcache -- version 0.5.3" + - LP: #832694 + * [Config] standardise CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + * [Config] Enable CONFIG_MACVTAP=m + - LP: #822601 + * record the compiler in the ABI and check for inconsistant builds + * [Config] move ECRYPT_FS back to =y for all architectures + - LP: #827197 + * [Config] enable CONFIG_DRM_VMWGFX=m + - LP: #698009 + * [Config] re-fix ECRYPT_FS=y + - LP: #827197 + * enforcer -- ensure we have CONFIG_ECRYPT_FS=y + - LP: #827197 + * [Config] dropping compcache configuration options + * [Config] standardise on HZ=250 + * SAUCE: headers_install: fix #include "..." usage for userspace + - LP: #824377 + * make module-inclusion selection retain the left overs + * add a new linux-image-extras package for virtual + + [ Colin Watson ] + + * Deliver more Atheros, Ralink, and iwlagn NIC drivers to d-i + + [ edwin_rong ] + + * SAUCE: Staging: add driver for Realtek RTS5139 cardreader + - LP: #824273 + + [ Greg Kroah-Hartman ] + + * SAUCE: staging: rts5139: add vmalloc.h to some files to fix the build. + - LP: #824273 + + [ Jesse Sung ] + + * SAUCE: Unregister input device only if it is registered + - LP: #839238 + + [ Jiri Kosina ] + + * SAUCE: HID: add MacBookAir4, 2 to hid_have_special_driver[] + + [ Joshua V. Dillon ] + + * SAUCE: HID: add support for MacBookAir4,2 keyboard. + + [ Kees Cook ] + + * [Config] enable and enforce SECCOMP_FILTER on x86 + + [ Keng-Yu Lin ] + + * [Config] Enable CONFIG_RTS5139=m on i386/amd64 + - LP: #824273 + + [ Leann Ogasawara ] + + * Revert "ubuntu: overlayfs -- ovl: make lower mount read-only" + * Revert "ubuntu: overlayfs -- fs: limit filesystem stacking depth" + * Revert "ubuntu: overlayfs -- ovl: improve stack use of lookup and + readdir" + * Revert "ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs" + * Revert "ubuntu: overlayfs -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: ARM: OMAP: Add macros for comparing silicon revision" + * Revert "SAUCE: OMAP: DSS2: check for both cpu type and revision, rather + than just revision" + * Revert "SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX" + * Revert "ubuntu: fsam7400 disable driver" + - LP: #876030 + * rebase to v3.1-rc1 + * [Config] updateconfigs after rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * [Config] Updateconfigs after rebase to v3.1-rc2 + * ubuntu: Yama - update calls to generic_permission() and + inode->i_op->permission() + * ubuntu: ndiswrapper -- remove netdev_priv macro + * ubuntu: aufs -- Temporarily disable due to build failure + * [Config] Diable INTEL_MID_PTI on armel + * [Config] Temporarily disable CONFIG_FTMAC100 on armel + * [Config] Temporarily disable CONFIG_FTGMAC100 on armel + * [Config] Temporarily disable CONFIG_CAN_TI_HECC on armel + * [Config] Temporarily disable CONFIG_VIDEO_OMAP2_VOUT on armel + * [Config] Set CONFIG_DM_MIRROR=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_MULTIPATH=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_SNAPSHOT=m on amd64, i386, and arm + * [Config] Enable CONFIG_EDAC_AMD8111=m on powerpc + * [Config] Enable CONFIG_EDAC_AMD8131=m on powerpc + * [Config] Enable CONFIG_EDAC_CPC925=m on powerpc + * [Config] Enable CONFIG_EDAC_PASEMI=m on powerpc + * [Config] Enable CONFIG_ECHO=m on powerpc + * [Config] Enable CONFIG_ET131X=m on powerpc + * [Config] Set CONFIG_FB_MATROX=m + * [Config] Enable CONFIG_FB_UDL=m on powerpc + * [Config] Set CONFIG_FB_VIRTUAL=n + * [Config] Enable CONFIG_FB_VGA16=m on powerpc + * [Config] Enable CONFIG_GPIO_MAX732X=m on arm + * [Config] Enable CONFIG_GPIO_PCF857X=m on arm + * [Config] Set CONFIG_HOTPLUG_PCI_FAKE=m + * [Config] Enable CONFIG_HOTPLUG_PCI=y on powerpc + * [Config] Enable CONFIG_HOTPLUG_PCI_CPCI=y on powerpc + * [Config] Enable CONFIG_HP_ILO=m on powerpc-smp + * [Config] Enable CONFIG_I2C_PASEMI=m on powerpc + * [Config] Enable CONFIG_IBM_BSR=m on powerpc + * [Config] Enable CONFIG_IBMVETH=m on powerpc + * [Config] Enable CONFIG_IDE_PHISON=m on powerpc + * [Config] Enable CONFIG_IGB=m on powerpc + * [Config] Enable CONFIG_IIO=m on powerpc + * [Config] Enable CONFIG_INFINIBAND_NES=m + * [Config] Enable CONFIG_IPMI_HANDLER=m on arm + * [Config] Enable CONFIG_IWL3945=m on powerpc + * [Config] Disable CONFIG_KVM_BOOK3S_64 + * [Config] Enable CONFIG_LAPBETHER=m on arm + * [Config] Enable CONFIG_LEDS_GPIO=m on powerpc + * [Config] Enable CONFIG_LEDS_CLEVO_MAIL=m all arch's + * [Config] Enable CONFIG_LEDS_PCA9532=m on powerpc + * [Config] Enable CONFIG_LEDS_PCA955X=m on powerpc + * [Config] Enable CONFIG_LEDS_TRIGGER_DEFAULT_ON=m on powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_HEARTBEAT=m on arm and powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_TIMER=m on powerpc + * [Config] Enable CONFIG_LINE6_USB=m on arm and powerpc + * [Config] Enable CONFIG_MEMSTICK=m on arm + * [Config] Enable CONFIG_MTD_AFS_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ALAUDA=m on arm + * [Config] Enable CONFIG_MTD_AR7_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ARM_INTEGRATOR=m on arm + * [Config] Enable CONFIG_MOXA_SMARTIO=m on powerpc + * [Config] Enable CONFIG_MTD_DATAFLASH=m on arm + * [Config] Enable CONFIG_MTD_GPIO_ADDR=m on arm + * [Config] Enable CONFIG_MTD_IMPA7=m on arm + * [Config] Enable CONFIG_MTD_NAND_GPIO=m on arm + * [Config] Enable CONFIG_MTD_NAND_NANDSIM=m on arm + * [Config] Enable CONFIG_MTD_NAND_PASEMI=m on powerpc + * [Config] Enable CONFIG_MTD_NAND_PLATFORM=m on arm + * [Config] Enable CONFIG_MTD_NAND_TMIO=m on arm + * [Config] Enable CONFIG_MTD_SST25L=m on arm + * [Config] Enable CONFIG_NET_CLS_CGROUP=y on arm + * [Config] Enable CONFIG_NET_CLS_FLOW=m on arm + * [Config] Enable CONFIG_NET_CLS_U32=m on arm + * [Config] Enable CONFIG_NET_DCCPPROBE=m on arm + * [Config] Enable CONFIG_NET_SCH_INGRESS=m on arm + * [Config] Enable CONFIG_NET_TCPPROBE=m on arm + * [Config] Enable CONFIG_PASEMI_MAC=m on powerpc + * [Config] Enable CONFIG_PATA_NS87410=m on powerpc + * [Config] Enable CONFIG_I2C_GPIO=m on powerpc64-smp + * [Config] Enable CONFIG_PANEL=m on powerpc + * [Config] Enable CONFIG_PATA_CMD640_PCI=m on powerpc + * SAUCE: x86: reboot: Make Dell Latitude E6520 use reboot=pci + - LP: #833705 + * [Config] Add CONFIG_EFI_VARS=y to the enforcer + - LP: #837332 + * [Config] Update CONFIG_EFI_VARS enforcer check + * [Config] Add aufs to virtual flavor inclusion list + - LP: #844159 + * SAUCE: x86: reboot: Make Dell Optiplex 790 use reboot=pci + - LP: #818933 + * SAUCE: x86: reboot: Make Dell Optiplex 990 use reboot=pci + - LP: #768039 + * SAUCE: x86: reboot: Make Dell Latitude E6220 use reboot=pci + - LP: #838402 + * [Config] Add igbvf to the virtual flavor inclusion list + - LP: #794570 + * [Config] Add ixgbevf to the virtual inclusion list + - LP: #872411 + * [Config] Transition -generic and -server to be identical + * rebase to v3.1-rc10 + + [ Luke Yelavich ] + + * [Config] Disable legacy IDE drivers on powerpc + + [ Ming Lei ] + + * SAUCE: fireware: add NO_MSI quirks for o2micro controller + - LP: #801719 + * SAUCE: ata_piix: make DVD Drive recognisable on systems with Intel + Sandybridge chipsets(v2) + - LP: #737388, #782389, #794642 + + [ Paolo Pisati ] + + * [Config] Compile-in vfat support for armel + - LP: #853783 + + [ Randy Dunlap ] + + * SAUCE: staging: fix rts5139 depends & build + - LP: #824273 + + [ Rene Bolldorf ] + + * SAUCE: (drop after 3.0) ideapad: Check if acpi already handle backlight + power in 'ideapad_backlight_notify_power' to avoid a page fault + + [ Seth Forshee ] + + * SAUCE: (no-up) Input: elantech - Add v3 hardware support + - LP: #681904 + * SAUCE: (drop after 3.1) usb_storage: Don't freeze in usb-stor-scan + - LP: #810020 + + [ Stefan Bader ] + + * (config) Package macvlan and macvtap for virtual + * [Config] Force perf to use libiberty for demangling + - LP: #783660 + * SAUCE: xen: Do not use pv spinlocks on HVM + - LP: #838026 + + [ Tim Gardner ] + + * [Config] Clean up tools rules + * [Config] Package x86_energy_perf_policy and turbostat + - LP: #797556 + * rebase to v3.1-rc3 + * [Config] Simplify binary-udebs dependencies + * [Config] kernel preparation cannot be parallelized + * [Config] Linearize module/abi checks + * [Config] Linearize and simplify tree preparation rules + * [Config] Build kernel image in parallel with modules + * [Config] Set concurrency for kmake invocations + * [Config] Improve install-arch-headers speed + * [Config] Fix binary-perarch dependencies + * [Config] Removed stamp-flavours target + * [Config] Serialize binary indep targets + * [Config] Use build stamp directly + * [Config] Restore prepare-% target + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * [Config] Disable makedumpfile for i386/amd64 + * rebase to v3.1-rc6 + * [Config] Fix binary-% build target + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Enable ftrace support in the mac80211 layer + - LP: #865171 + * rebase to v3.1-rc9 + * SAUCE: usb/core/devio.c: Check for printer class specific request + - LP: #872711 + + [ Upstream Kernel Changes ] + + * overlay filesystem + * overlayfs: add statfs support + * overlayfs: implement show_options + * overlay: overlay filesystem documentation + * fs: limit filesystem stacking depth + + [ Will Drewry ] + + * SAUCE: seccomp_filter: new mode with configurable syscall filters + * SAUCE: seccomp_filter: add process state reporting + * SAUCE: seccomp_filter: Document what seccomp_filter is and how it + works. + * SAUCE: seccomp_filter: add HAVE_SECCOMP_FILTER and seccomp_execve + + [ Upstream Kernel Changes ] + + * rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * rebase to v3.1-rc3 + +CONFIG_BLK_DEV_BSGLIB=y + +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 + -CONFIG_VIDEO_OMAP2_VOUT_VRFB=y + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * rebase to v3.1-rc6 + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * rebase to v3.1-rc9 + * rebase to v3.1-rc10 + + -- Leann Ogasawara Wed, 10 Aug 2011 15:43:38 -0700 + +linux (3.1.0-1.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open P-series + + -- Leann Ogasawara Wed, 10 Aug 2011 13:42:40 -0700 + +linux (3.0.0-8.10) oneiric; urgency=low + + [ Adam Jackson ] + + * SAUCE: drm/i915/pch: Fix integer math bugs in panel fitting + - LP: #753994 + + [ John Johansen ] + + * [Config] Enable missing IPv6 options + + [ Leann Ogasawara ] + + * [Config] Disable config IWLWIFI_DEVICE_SVTOOL + - LP: #819925 + * Rebase to 3.0.1 + + [ Upstream Kernel Changes ] + + * x86, intel, power: Correct the MSR_IA32_ENERGY_PERF_BIAS message + * ALSA: hda - Turn on extra EAPDs on Conexant codecs + - LP: #783582 + * KVM: Remove SMEP bit from CR4_RESERVED_BITS + - LP: #796476 + * KVM: Add SMEP support when setting CR4 + - LP: #796476 + * KVM: Mask function7 ebx against host capability word9 + - LP: #796476 + * KVM: Add instruction fetch checking when walking guest page table + - LP: #796476 + + [ Upstream Kernel Changes ] + + * rebase to v3.0.1 + + -- Leann Ogasawara Fri, 05 Aug 2011 11:32:25 -0700 + +linux (3.0.0-7.9) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] add local prefix to oss local change_bits" + * Revert "SAUCE: add tracing for user initiated readahead requests" + * Revert "SAUCE: vfs: Add a trace point in the mark_inode_dirty function" + * Revert "SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47" + * Revert "SAUCE: fix documentation strings for struct input_keymap_entry" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range checks + (grub)" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range + checks" + * Revert "SAUCE: vt -- allow grub to request automatic vt_handoff" + * Revert "SAUCE: vt -- maintain bootloader screen mode and content until + vt switch" + * [Config] enable CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 + - LP: #816035 + * ubuntu: Yama: if an underlying filesystem provides a permissions op use + it + * SAUCE: (no-up) add tracing for user initiated readahead requests + * SAUCE: vt -- maintain bootloader screen mode and content until vt + switch + * SAUCE: vt -- allow grub to request automatic vt_handoff + + [ Arjan van de Ven ] + + * SAUCE: (no-up) vfs: Add a trace point in the mark_inode_dirty function + + [ Kees Cook ] + + * Revert "SAUCE: (no-up) Disable building the ACPI debugfs source" + * [Config] enforce ACPI_CUSTOM_METHOD disabled + + [ Keng-Yu Lin ] + + * SAUCE: (no-up) Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_BLK_DEV_CMD64X=m on powerpc + - LP: #513131 + * [Config] Enable CONFIG_RT2800PCI_RT53XX=y + - LP: #815064 + + [ Rezwanul Kabir ] + + * SAUCE: (no-up) Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * Revert "yama: if an underlying filesystem provides a permissions op use + it" + * Revert "Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops" + * Revert "tty: include linux/slab.h for kfree" + * Revert "gpio/ml_ioh_gpio: include linux/slab.h for kfree" + * Revert "pch_dma: add include/slab.h for kfree" + * mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency + - LP: #773524 + * oss: rename local change_bits to avoid powerpc bitsops.h definition + + -- Leann Ogasawara Mon, 25 Jul 2011 09:08:01 -0700 + +linux (3.0.0-7.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- overlayfs: add statfs support + * [Config] enable CONFIG_OVERLAYFS + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_ALIM7101_WDT=m on powerpc + * [Config] Enable CONFIG_ASUS_OLED=m on powerpc + * [Config] Disable CONFIG_ATM_DUMMY on arm + * [Config] Enable CONFIG_BLK_DEV_DRBD=m on powerpc + * Temporarily disable module check on arm + * Rebase to 3.0 final + * [Config] Enable CONFIG_CAN_TI_HECC=m on arm + * [Config] Set CONFIG_CDROM_PKTCDVD=m on amd64 and i386 + * [Config] Enable CONFIG_CRYPTO_CCM=m on powerpc + * [Config] Enable CONFIG_CRYPTO_DEV_HIFN_795X=m on powerpc + * [Config] Enable CONFIG_CRYPTO_GCM=m on powerpc + * [Config] Set CRYPTO_LZO=m on powerpc64-smp + * [Config] Enable CONFIG_DM9000=m on arm + * [Config] Set CONFIG_DISPLAY_SUPPORT=m on arm + * [Config] Enable CONFIG_DL2K=m on amd64 and i386 + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs + * ubuntu: overlayfs -- ovl: improve stack use of lookup and readdir + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + * ubuntu: overlayfs -- ovl: make lower mount read-only + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Tim Gardner ] + + * [Config] Add enic/fnic to udebs + - LP: #801610 + + [ Upstream Kernel Changes ] + + * yama: if an underlying filesystem provides a permissions op use it + + [ Major Kernel Changes ] + + * Rebase to 3.0 final + + -- Leann Ogasawara Thu, 21 Jul 2011 07:01:32 -0700 + +linux (3.0.0-6.7) oneiric; urgency=low + + [ Eagon Yager ] + + * [Config] Fix misspelled 'skipmodule' in arm makefile. + + [ Keng-Yu Lin ] + + * SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_SMC91X on armel-omap" + * Revert "[Config] Temporarily Disable CONFIG_BRCMSMAC on arm" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on powerpc" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on arm" + * Revert "[Config] Temporarily disable CONFIG_BRCMSMAC on powerpc" + * [Config] Set CONFIG_ACPI_PCI_SLOT=m + * [Config] Set CONFIG_ACPI_SBS=m + * [Config] Set CONFIG_ACPI_WMI=m + * [Config] Set CONFIG_AD7150=m on arm + * [Config] Set CONFIG_AD7152=m on arm + * [Config] Drop CONFIG_GPIO_S5PV210 + * [Config] Drop CONFIG_GPIO_S5PC100 + * [Config] Drop CONFIG_GPIO_PLAT_SAMSUNG + * [Config] Drop CONFIG_GPIO_EXYNOS4 + + [ Stefan Bader ] + + * SAUCE: Re-enable RODATA for i386 virtual + - LP: #809838 + + [ Upstream Kernel Changes ] + + * Revert "Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15" + * (drop after 3.0.0) acer-wmi: Add support for Aspire 1830 wlan hotkey + - LP: #771758 + + -- Leann Ogasawara Wed, 20 Jul 2011 06:36:02 -0700 + +linux (3.0.0-5.6) oneiric; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_RTL8192CU=m + * Rebase to -rc7 + + -- Tim Gardner Mon, 11 Jul 2011 22:13:50 +0100 + +linux (3.0.0-4.5) oneiric; urgency=low + + [ Ming Lei ] + + * SAUCE: fix yama_ptracer_del lockdep warning + - LP: #791019 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.0) asus-wmi: Add callback for hotkey filtering + * SAUCE: (drop after 3.0) eeepc-wmi: Add support for T101MT Home/Express Gate key + * SAUCE: (drop after 3.0) asus-wmi: Enable autorepeat for hotkey input device + * [Config] CONFIG_{ASUS,ASUS_NB,EEEPC}_WMI=m + - LP: #805218 + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to -rc6+ + Rebased against 4dd1b49c6d215dc41ce50c80b4868388b93f31a3 + * Adopt a 3 digit verion, e.g., 3.0.0-x.x + * Revert "UBUNTU: add dependancies for module-init-tools" + This dependency is no longer required for a 3 digit version. + + -- Tim Gardner Tue, 05 Jul 2011 14:03:04 +0100 + +linux (3.0-3.4) oneiric; urgency=low + + [ Keng-Yu Lin ] + + * SAUCE: Revert: "dell-laptop: Toggle the unsupported hardware + killswitch" + - LP: #775281 + + [ Leann Ogasawara ] + + * rebase to v3.0-rc5 + * [Config] updateconfigs after rebase to 3.0-rc5 + + [ Tim Gardner ] + + * [Config] Remove ubuntu/rtl8192se + * [Config] Added armel ABI files + * [Config] Removed armel versatile flavour + * [Config] CONFIG_INTEL_MEI=m + - LP: #716867 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Enable auto-parser as default for Conexant codecs + + [ Upstream Kernel Changes ] + + * rebase to v3.0-rc5 + + -- Leann Ogasawara Thu, 30 Jun 2011 14:27:10 +0100 + +linux (3.0-2.3) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to 0e2bafab74f0d1463383faeb93f9fc5eb8c2c54e + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + * [Config] updateconfigs after rebase to 3.0-rc4 + * fix ERROR: __devcgroup_inode_permission undefined + + [ Stefan Bader ] + + * SAUCE: iscsitarget: Remove driver from the kernel + + [ Tim Gardner ] + + * SAUCE: rtl8192se: Force a build for a 2.6/3.0 kernel + * [Config] Add grub-efi as a recommended bootloader for server and + generic + - LP: #800910 + + [ Upstream Kernel Changes ] + + * Fix node_start/end_pfn() definition for mm/page_cgroup.c + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + + -- Leann Ogasawara Fri, 24 Jun 2011 11:51:12 -0700 + +linux (3.0-1.2) oneiric; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_CAN_CALC_BITTIMING + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + * [Config] updateconfigs after rebase to 3.0-rc3 + + [ Upstream Kernel Changes ] + + * perf: clear out make flags when calling kernel make kernelver + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + + -- Leann Ogasawara Tue, 14 Jun 2011 07:25:35 -0700 + +linux (3.0-0.1) oneiric; urgency=low + + [ Andy Whitcroft ] + + * use the packaging version in the kernel + * use the kernels idea of its version for version_signature + * add dependancies for module-init-tools + * update control files to version 3 + * printchanges/insertchanges allow override of prev_release + * correct Vcs-Git: to point to oneiric + + [ Leann Ogasawara ] + + * rebase to v3.0-rc1 + * [Config] updateconfigs after rebase to 3.0-rc1 + * ubuntu: dm-raid4-5 fix up build failure + * [Config] Temporarily Disable CONFIG_GPIO_EXYNOS4 on arm + * [Config] Temporarily Disable CONFIG_GPIO_PLAT_SAMSUNG on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PC100 on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PV210 on arm + * [Config] Temporarily disable CONFIG_BRCMSMAC on powerpc + * [Config] Temporarily Disable CONFIG_BRCMSMAC on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on powerpc + * [Config] Temporarily disable CONFIG_SMC91X on armel-omap + * rebase to v3.0-rc2 + + [ Manoj Iyer ] + + * SAUCE: mmc: Enable MMC card reader for RICOH [1180:e823] + - LP: #790754 + + [ Upstream Kernel Changes ] + + * Revert "x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM + demands it" + * drm/i915: fix regression after clock gating init split + + [ Major Kernel Changes ] + + * rebase from v2.6.39 to v3.0-rc1 + * rebase from v3.0-rc1 to v3.0-rc2 + + -- Andy Whitcroft Thu, 09 Jun 2011 15:18:33 +0100 + +linux (2.6.39-3.10) oneiric; urgency=low + + [ Colin Ian King ] + + * SAUCE: S3 early resume debug via keyboard LEDs + + [ Ingo Molnar ] + + * ubuntu: nx-emu - i386: NX emulation + * ubuntu: nx-emu - i386: mmap randomization for executable mappings + + [ Leann Ogasawara ] + + * Revert "[Config] Disable CONFIG_FT1000 on powerpc64-smp" + * Revert "[Config] Disable CONFIG_DM_RAID45" + * [Config] enable CONFIG_BRCMFMAC=y + * [Config] enable CONFIG_MDIO_BITBANG=m across all arch's and flavors + * [Config] enable CONFIG_VIDEO_OUTPUT_CONTROL=m on armel-omap + + [ Robert Nelson ] + + * SAUCE: omap3: beagle: detect new xM revision B + - LP: #770679 + * SAUCE: omap3: beagle: detect new xM revision C + - LP: #770679 + * SAUCE: omap3: beagle: if rev unknown, assume xM revision C + - LP: #770679 + + [ Stefan Bader ] + + * SAUCE: Convert dm-raid45 to new block plugging + + -- Leann Ogasawara Mon, 23 May 2011 11:46:43 -0700 + +linux (2.6.39-3.9) oneiric; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_SCSI_LPFC_DEBUG_FS + * rebase to v2.6.39 + * [Config] enable CONFIG_LLC2=m across all arch's and flavours + * [Config] enable CONFIG_INPUT_APANEL=m + + [ Thomas Schlichter ] + + * SAUCE: vesafb: mtrr module parameter is uint, not bool + - LP: #778043 + * SAUCE: vesafb: enable mtrr WC by default + - LP: #778043 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc7 to v2.6.39 + + -- Andy Whitcroft Fri, 20 May 2011 09:52:32 +0100 + +linux (2.6.39-2.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37" + * Revert "ubuntu: AUFS -- aufs2-base.patch aufs2.1-37" + * Revert "[Config] Disable CONFIG_AUFS_FS" + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-39 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-39 + * ubuntu: AUFS -- update to c6b76974311efc5bf3eddf921cd015b6aae46935 + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + + [ Kees Cook ] + + * ubuntu: Yama - LSM hooks + * ubuntu: Yama - create task_free security callback + * ubuntu: Yama - add ptrace relationship tracking interface + * ubuntu: Yama - unconditionally chain to Yama LSM + + [ Leann Ogasawara ] + + * Revert "SAUCE: Fix drivers/staging/easycap FTBS" + * Revert "[Config] Disable CONFIG_EASYCAP" + * ubuntu: fsam7400 disable driver + * ubuntu: omnibook disable driver + * ubuntu: rfkill disable driver + + [ Tim Gardner ] + + * SAUCE: Fix extra reference in fb_open() + + -- Leann Ogasawara Mon, 16 May 2011 09:23:56 -0700 + +linux (2.6.39-2.7) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc7 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc6 to v2.6.39-rc7 + + -- Leann Ogasawara Tue, 10 May 2011 10:18:28 +0200 + +linux (2.6.39-1.6) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc6 + * SAUCE: [arm] fixup __aeabi_uldivmod undefined build error + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to 2.6.39-rc6 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc5 to v2.6.39-rc6 + - LP: #740126 + + -- Leann Ogasawara Thu, 05 May 2011 09:46:12 -0700 + +linux (2.6.39-0.5) oneiric; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Revert "x86, hibernate: Initialize mmu_cr4_features during boot" + - LP: #764758 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc5 + * [Config] updateconfigs following rebase to v2.6.39-rc5 + + [ Paolo Pisati ] + + * [Config] s/USB_MUSB_TUSB6010/USB_MUSB_OMAP2PLUS/ on omap3 to get musb + - LP: #759913 + + [ Stefan Bader ] + + * Include nls_iso8859-1 for virtual images + - LP: #732046 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc4 to v2.6.39-rc5 + + -- Leann Ogasawara Wed, 27 Apr 2011 06:39:42 -0700 + +linux (2.6.39-0.4) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc4 + * [Config] updateconfigs following rebase to v2.6.39-rc4 + * fixup powerpc implicit declaration of function + 'crash_kexec_wait_realmode' + * [Config] Disable CONFIG_FT1000 on powerpc64-smp + + [ Tim Gardner ] + + * [Config] CONFIG_TRANSPARENT_HUGEPAGE=y + - LP: #769503 + * [Config] Add cachefiles.ko to virtual flavour + - LP: #770430 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc3 to v2.6.39-rc4 + + -- Leann Ogasawara Tue, 19 Apr 2011 06:25:20 -0700 + +linux (2.6.39-0.3) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc3 + * crash_kexec_wait_realmode() undefined when !SMP + + [ Tim Gardner ] + + * [Config] CONFIG_PM_ADVANCED_DEBUG=y for i386/amd64 + - LP: #632327 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc2 to v2.6.39-rc3 + + -- Leann Ogasawara Tue, 12 Apr 2011 06:52:24 -0700 + +linux (2.6.39-0.2) oneiric; urgency=low + + [ Gustavo F. Padovan ] + + * SAUCE: Revert "Bluetooth: Add new PID for Atheros 3011" + - LP: #720949 + + [ John Johansen ] + + * AppArmor: Fix masking of capabilities in complain mode + - LP: #748656 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc2 + * [Config] updateconfigs following rebase to v2.6.39-rc2 + * hv_mouse needs delay.h + * olpc_dcon_xo_1 needs delay.h + * olpc_dcon_xo_1_5 needs delay.h + * Update dropped.txt for Oneiric + + [ Steve Langasek ] + + * [Config] Make linux-libc-dev coinstallable under multiarch + - LP: #750585 + + [ Upstream Kernel Changes ] + + * x86, hibernate: Initialize mmu_cr4_features during boot + - LP: #752870 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc1 to v2.6.39-rc2 + + -- Leann Ogasawara Wed, 06 Apr 2011 11:04:15 -0700 + +linux (2.6.39-0.1) oneiric; urgency=low + + [ Brad Figg ] + + * [Config] Set CONFIG_NR_CPUS=256 for amd64 generic + - LP: #737124 + + [ Henrik Rydberg ] + + * SAUCE: HID: hid-ntrig: add support for 1b96:0006 model + * SAUCE: HID: ntrig: fix suspend/resume on recent models + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (drop after 2.6.39) v4l: make sure drivers supply a zeroed + struct v4l2_subdev + - LP: #745213 + + [ Kees Cook ] + + * [Config] packaging: adjust perms on vmlinuz as well + * SAUCE: nx-emu: further clarify dmesg reporting + - LP: #745181 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc1 + * [Config] updateconfigs following rebase to v2.6.39-rc1 + * [Config] Disable CONFIG_DM_RAID45 + * [Config] Disable CONFIG_SCSI_ISCSITARGET + * [Config] Disable CONFIG_EASYCAP + * [Config] Disable CONFIG_AUFS_FS + * update bnx2 firmware files in d-i/firmware/nic-modules + * xhci-pci.c resolve implicit declaration of kzalloc + * [Config] Enable CONFIG_DRM_PSB for only x86 + * [Config] Enable CONFIG_RTS_PSTOR for only x86 + * mfd/asic3: Fix typo, s/irq_data/data/ + + [ Luke Yelavich ] + + * [Config] Disable CONFIG_CRASH_DUMP on 32-bit powerpc kernels + - LP: #745358 + * [Config] Disable CONFIG_DRM_RADEON_KMS on powerpc kernels + * [Config] Build some framebuffer drivers as modules for powerpc kernels. + + [ Manoj Iyer ] + + * SAUCE: thinkpad-acpi: module autoloading for newer Lenovo ThinkPads. + - LP: #745217 + + [ Tim Gardner ] + + * SAUCE: INR_OPEN=4096 + - LP: #663090 + * SAUCE: Increase the default hard limit for open FDs to 4096 + - LP: #663090 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.39-rc1) arm: versatile : Fix typo introduced in irq + namespace cleanup + * (drop after 2.6.39-rc1) [media] staging: altera-jtag needs delay.h + * ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0() + + [ Major Kernel Changes ] + + * rebase from v2.6.38 to v2.6.39-rc1 + + -- Leann Ogasawara Thu, 31 Mar 2011 12:50:10 -0700 + +linux (2.6.39-0.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open Oneiric + + -- Leann Ogasawara Thu, 31 Mar 2011 12:29:23 -0700 + +linux (2.6.38-7.39) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-7ubuntu1. + + -- Leann Ogasawara Thu, 24 Mar 2011 09:27:45 -0700 + +linux (2.6.38-7.38) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload take 2. 2.6.38-7.37 was accidentally uploaded before + gcc-4.5.2-6ubuntu5 finished building on all arches. + + -- Leann Ogasawara Tue, 22 Mar 2011 06:12:47 -0700 + +linux (2.6.38-7.37) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-6ubuntu5. + + -- Leann Ogasawara Sun, 20 Mar 2011 16:02:48 -0700 + +linux (2.6.38-7.36) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler + optimisation" + * purge last vestiges of maverick + * [Config] switch CONFIG_FB_VESA back to module + + [ Chris Wilson ] + + * SAUCE: drm/i915: Fix pipelined fencing + - LP: #717114 + + [ Loïc Minier ] + + * Include nls_cp437 module in virtual for fat + - LP: #732046 + * Support arch= cross-compilation for any arch + * Fix couple of typos in 0-common-vars.mk + * Enforce DEFAULT_MMAP_MIN_ADDR on armhf + * Add armhf to Debian -> Linux arch map + * Add initial armhf.mk + * Enable common packages for armhf + + [ Upstream Kernel Changes ] + + * Yama: fix default relationship to check thread group + - LP: #737676 + + -- Andy Whitcroft Fri, 18 Mar 2011 18:18:02 +0000 + +linux (2.6.38-7.35) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 2fbfac4e053861925fa3fffcdc327649b09af54c + * rebase fixes bug #715330 + * [Config] disable CONFIG_SCSI_QLA_ISCSI for powerpc 32bit to fix FTBS + * rebase to v2.6.38 final + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Apply OPTION_BLACKLIST_SENDSETUP also for ZTE MF626 + - LP: #636091 + + [ Tim Gardner ] + + * [Confg] CONFIG_BOOT_PRINTK_DELAY=y + + [ Upstream Kernel Changes ] + + * Yama: use thread group leader when creating match + - LP: #729839 + * (drop after 2.6.38) ahci: AHCI mode SATA patch for Intel Patsburg SATA + RAID controller + - LP: #735240 + * (drop after v2.6.38) x86, quirk: Fix SB600 revision check + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc8 to v2.6.38 final + - LP: #715330 + + -- Andy Whitcroft Tue, 15 Mar 2011 19:04:19 +0000 + +linux (2.6.38-6.34) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] normalise CONFIG_INTEL_TXT + * SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler optimisation + - LP: #730860 + * rebase to mainline v2.6.38-rc8 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc7 + fb62c00a6d8942775abc23d1621db1252e2d93d1 + to v2.6.38-rc8 + + -- Andy Whitcroft Tue, 08 Mar 2011 11:54:48 +0000 + +linux (2.6.38-6.33) natty; urgency=low + + [ Andy Whitcroft ] + + * d-i -- enable speakup-modules udeb + - LP: #672699 + * rebase to 493f3358cb289ccf716c5a14fa5bb52ab75943e5 + * [Config] debian PPC64 configuration + * [Config] cleanup powerpc config fixing unexpected inconsistancies + * [Config] resync ppc64 configuration + * SAUCE: match up ENTRY/END naming for 32/64 bit + * rebase to fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] update configs after rebase to + fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] pps_gen_parport no longer built + + [ Corentin Chary ] + + * SAUCE: (drop after 2.6.38) eeepc-wmi: reorder keymap + - LP: #689393 + * SAUCE: (drop after 2.6.38) eeepc-wmi: add wlan key found on 1015P + - LP: #689393 + + [ John Johansen ] + + * SAUCE: Fix aufs calling of security_path_mknod + - LP: #724456 + + [ Kees Cook ] + + * SAUCE: proc: hide kernel addresses via %pK in /proc//stack + + [ Tim Gardner ] + + * rebase to 2.6.38-rc7 + + [ Upstream Kernel Changes ] + + * Revert "drm/i915: fix corruptions on i8xx due to relaxed fencing" + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc6 to v2.6.38-rc7 + + fb62c00a6d8942775abc23d1621db1252e2d93d1 + - LP: #721389 + - LP: #722925 + - LP: #723672 + - LP: #723676 + - LP: #715318 + + -- Andy Whitcroft Mon, 07 Mar 2011 15:33:17 +0000 + +linux (2.6.38-5.32) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to mainline 6f576d57f1fa0d6026b495d8746d56d949989161 + * [Config] updateconfigs following rebase to v2.6.38-rc6 + * [Config] enable CONFIG_DMAR + - LP: #552311 + + [ Upstream Kernel Changes ] + + * drm/i915: skip FDI & PCH enabling for DP_A + - LP: #561802, #600453, #681877 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc5 to v2.6.38-rc6 + - LP: #718402 + - LP: #719524 + - LP: #721126 + - LP: #719691 + - LP: #722689 + - LP: #722310 + + -- Andy Whitcroft Tue, 22 Feb 2011 13:28:39 +0000 + +linux (2.6.38-4.31) natty; urgency=low + + [ Andy Whitcroft ] + + * add in bugs closed by upstream patches pulled in by rebases + * rebase to 795abaf1e4e188c4171e3cd3dbb11a9fcacaf505 + * [Config] enable CONFIG_VSX to allow use of vector instuctions + * resync with maverick 98defa1c5773a3d7e4c524967eb01d5bae035816 + * rebase to mainline v2.6.38-rc5 + * SAUCE: ecryptfs: read on a directory should return EISDIR if not + supported + - LP: #719691 + + [ Colin Ian King ] + + * SAUCE: Dell All-In-One: Remove need for Dell module alias + + [ Manoj Iyer ] + + * SAUCE: (drop after 2.6.38) add ricoh 0xe823 pci id. + - LP: #717435 + + [ Tim Gardner ] + + * [Config] CONFIG_CRYPTO_CRC32C_INTEL=y + + [ Upstream Kernel Changes ] + + * Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15 + - LP: #702434 + * vfs: fix BUG_ON() in fs/namei.c:1461 + + [ Vladislav P ] + + * SAUCE: Release BTM while sleeping to avoid deadlock. + - LP: #713837 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc4 to v2.6.38-rc5 + - LP: #579276 + - LP: #715877 + - LP: #713769 + - LP: #716811 + * resync with Maverick Ubuntu-2.6.35-27.47 + + -- Andy Whitcroft Fri, 11 Feb 2011 17:24:09 +0000 + +linux (2.6.38-3.30) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.38-rc4 + * ppc64 -- add basic architecture + * ubuntu: AUFS -- update to 65835da20b77c98fb538c9114fc31f5de1328230 + + [ Colin Ian King ] + + * SAUCE: Add WMI hotkeys support for Dell All-In-One series + - LP: #676997 + * SAUCE: Add WMI hotkeys support for another Dell All-In-One series + - LP: #701530 + * SAUCE: Dell WMI: Use sparse keymaps and tidy up code. + - LP: #701530 + + [ Dan Rosenberg ] + + * SAUCE: (drop after 2.6.38) Convert net %p usage %pK + + [ Kees Cook ] + + * Revert "SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of + attacking" + * SAUCE: (drop after 2.6.38) use %pK for /proc/kallsyms and /proc/modules + + [ Tim Gardner ] + + * [Config] CONFIG_BLK_CGROUP=y + - LP: #706394 + * [Config] CONFIG_DELL_WMI_AIO=m + + [ Upstream Kernel Changes ] + + * drm/i915/lvds: Restore dithering on native modes for gen2/3 + - LP: #711568 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc3 to v2.6.38-rc4. + - LP: #701271 + - LP: #708521 + - LP: #710371 + + -- Andy Whitcroft Tue, 08 Feb 2011 02:07:18 +0000 + +linux (2.6.38-2.29) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 1f0324caefd39985e9fe052fac97da31694db31e + * [Config] updateconfigs following rebase to + 1f0324caefd39985e9fe052fac97da31694db31e + * rebase to 70d1f365568e0cdbc9f4ab92428e1830fdb09ab0 + * [Config] reenable HIBERNATE + - LP: #710877 + * rebase to v2.6.38-rc3 + * [Config] reenable CONFIG_CRASH_DUMP + + [ Kamal Mostafa ] + + * SAUCE: rtl8192se: fix source file perms + * SAUCE: rtl8192se: fix source file newline + * SAUCE: omnibook: fix source file newline + + [ Kees Cook ] + + * [Config] packaging: really make System.map mode 0600 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: OMAP3630: PM: don't warn the user with a trace in case of + PM34XX_ERRATUM + + [ Soren Hansen ] + + * SAUCE: nbd: Remove module-level ioctl mutex + + [ Tim Gardner ] + + * SAUCE: Disable building the ACPI debugfs source + + [ Upstream Kernel Changes ] + + * Set physical start and alignment 1M for virtual i386 + - LP: #710754 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + to v2.6.38-rc3 + - LP: #707902 + + -- Andy Whitcroft Fri, 28 Jan 2011 16:30:32 +0000 + +linux (2.6.38-1.28) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to b1cee06249dfa0ab30951e7f06490a75c155b620 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: omap3: beaglexm: fix DVI initialization + * [Config] omap: move CONFIG_PANEL_GENERIC_DPI to build in to make + display work at Beagle + + -- Andy Whitcroft Fri, 28 Jan 2011 10:51:57 +0000 + +linux (2.6.38-1.27) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- update to c5021514085a5d96364e096dbd34cadb2251abfd + * SAUCE: ensure root is ready before running usermodehelpers in it + * correct the Vcs linkage to point to natty + * rebase to linux tip e78bf5e6cbe837daa6ab628a5f679548742994d3 + * [Config] update configs following rebase + e78bf5e6cbe837daa6ab628a5f679548742994d3 + * SAUCE: Yama: follow changes to generic_permission + * ubuntu: compcache -- follow changes to bd_claim/bd_release + * ubuntu: iscsitarget -- follow changes to open_bdev_exclusive + * ubuntu: ndiswrapper -- fix interaction between __packed and packed + * ubuntu: AUFS -- update to 806051bcbeec27748aae2b7957726a4e63ff308e + * update package version to match payload version + * rebase to e6f597a1425b5af64917be3448b29e2d5a585ac8 + * rebase to v2.6.38-rc1 + * [Config] updateconfigs following rebase to v2.6.38-rc1 + * SAUCE: x86 fix up jiffies/jiffies_64 handling + * rebase to linus tip 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] updateconfigs following rebase to + 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] disable CONFIG_TRANSPARENT_HUGEPAGE to fix i386 boot crashes + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * [Config] CONFIG_NR_CPUS=256 for amd64 -server flavour + * rebase to v2.6.38-rc2 + * rebase to mainline d315777b32a4696feb86f2a0c9e9f39c94683649 + * rebase to c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] update configs following rebase to + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] disable CONFIG_AD7152 to fix FTBS on armel versatile + * [Config] disable CONFIG_AD7150 to fix FTBS on armel versatile + * [Config] disable CONFIG_RTL8192CE to fix FTBS on armel omap + * [Config] disable CONFIG_MANTIS_CORE to fix FTBS on armel versatile + + [ Kees Cook ] + + * SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of attacking + + [ Stefan Bader ] + + * Temporarily disable RODATA for virtual i386 + - LP: #699828 + + [ Tim Gardner ] + + * [Config] CONFIG_NLS_DEFAULT=utf8 + - LP: #683690 + * [Config] CONFIG_HIBERNATION=n + * update bnx2 firmware files in d-i/firmware/nic-modules + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon/bo: add some fallback placements for VRAM only + objects." + * packaging: make System.map mode 0600 + * thinkpad_acpi: Always report scancodes for hotkeys + - LP: #702407 + * sched: tg->se->load should be initialised to tg->shares + * Input: sysrq -- ensure sysrq_enabled and __sysrq_enabled are consistent + * brcm80211: include linux/slab.h for kfree + * pch_dma: add include/slab.h for kfree + * i2c-eg20t: include linux/slab.h for kfree + * gpio/ml_ioh_gpio: include linux/slab.h for kfree + * tty: include linux/slab.h for kfree + * winbond: include linux/delay.h for mdelay et al + + [ Upstream Kernel Changes ] + + * mark the start of v2.6.38 versioning + * rebase v2.6.37 to v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + - LP: #689886 + - LP: #702125 + - LP: #608775 + - LP: #215802 + - LP: #686333 + - LP: #677830 + - LP: #677652 + - LP: #696493 + - LP: #697240 + - LP: #689036 + - LP: #705323 + - LP: #686692 + + -- Andy Whitcroft Sun, 09 Jan 2011 13:44:52 +0000 + +linux (2.6.37-12.26) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc8 + * [Config] armel -- reenable omap flavour + * [Config] disable CONFIG_MACH_OMAP3517EVM to fix FTBS on armel omap + * [Config] disable CONFIG_GPIO_VX855 to fix FTBS on omap armel + * [Config] disable CONFIG_WESTBRIDGE_ASTORIA to fix FTBS on omap armel + * [Config] disable CONFIG_TI_DAVINCI_EMAC to fix FTBS on omap armel + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * [Config] track missing modules + * rebase to v2.6.37 final + + [ Chase Douglas ] + + * SAUCE: (drop after 2.6.37) HID: magicmouse: Don't report REL_{X, Y} for + Magic Trackpad + + [ Stefan Bader ] + + * Revert "SAUCE: blkfront: default to sd devices" + - LP: #684875 + + [ Tim Gardner ] + + * Revert "SAUCE: (no-up) libata: Ignore HPA by default." + - LP: #380138 + * [Config] Added autofs4.ko to -virtual flavour + - LP: #692917 + + [ Upstream Kernel Changes ] + + * Add support for Intellimouse Mode in ALPS touchpad on Dell E2 series + Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc8 + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * rebase to v2.6.37 final + + -- Andy Whitcroft Thu, 23 Dec 2010 18:34:13 +0000 + +linux (2.6.37-11.25) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i -- add hpsa to the list of block devices + - LP: #684304 + * [Config] add vmw-balloon driver to -virtual flavour + - LP: #592039 + * rebase to v2.6.37-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc7 + + -- Andy Whitcroft Tue, 21 Dec 2010 13:35:28 +0000 + +linux (2.6.37-10.24) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc6 + * updateconfigs following rebase to v2.6.37-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc6 + + -- Andy Whitcroft Thu, 16 Dec 2010 12:34:19 +0000 + +linux (2.6.37-9.23) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks + - LP: #689606 + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks (grub) + - LP: #689606 + + [ Kees Cook ] + + * SAUCE: RO/NX protection for loadable kernel, fix ftrace + - LP: #690190 + + -- Andy Whitcroft Wed, 15 Dec 2010 19:29:57 +0000 + +linux (2.6.37-9.22) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.35-rc5 + * [Config] updateconfigs following rebase to v2.6.37-rc5 + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: dm-raid4-5 -- follow changes to bio flags + * ubuntu: dm-raid4-5 -- re-enable + * ubuntu: omnibook -- update BOM + * ubuntu: ndiswrapper -- update BOM to match actual version + * ubuntu: ndiswrapper -- follow removal of the BKL and locked ioctl + * ubuntu: ndiswrapper -- re-enable + * ubuntu: iscsitarget -- re-instate copy_io_context + * ubuntu: iscsitarget -- follow changes to semaphore initialisation + * ubuntu: iscsitarget -- convert NIPQUAD to %pI4 + * ubuntu: iscsitarget -- re-enable + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 13 + - LP: #685015 + + [ Tim Gardner ] + + * [Config] CONFIG_9P_FSCACHE=y,CONFIG_9P_FS_POSIX_ACL=y + * [Config] CONFIG_CRYPTO_CRC32C=y + - LP: #681819 + * [Config] CONFIG_9P_FSCACHE=n + * [Config] Add nfsd modules to -virtual flavour + - LP: #688070 + + [ Upstream Kernel Changes ] + + * Revert "Staging: zram: work around oops due to startup ordering snafu" + * NFS: Fix panic after nfs_umount() + - LP: #683938 + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + * x86: Resume trampoline must be executable + * x86: RO/NX protection for loadable kernel, jump_table fix + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc5 + + -- Andy Whitcroft Thu, 09 Dec 2010 18:15:35 +0000 + +linux (2.6.37-8.21) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- include the aufs_types.h file in + linux-libc-headers" + * Revert "(no-up) add support for installed header files to ubuntu + directory" + + -- Andy Whitcroft Sun, 05 Dec 2010 17:33:28 +0000 + +linux (2.6.37-8.20) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] drivers/serial/mfd.c: Fix ARM compile error" + * Revert "SAUCE: Nouveau: Disable acceleration on MacBook Pros" + * Revert "SAUCE: Nouveau: Add quirk framework to disable acceleration" + * Revert "SAUCE: i915 -- disable powersave by default" + * SAUCE: enable Marvell 9128 PCIe SATA controller + - LP: #658521 + * [Config] evtchn has been renamed + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + + [ Tim Gardner ] + + * [Config] MISS: evtchn, NEW : xen-evtchn + * rebase to v2.6.37-rc4 + + [ Upstream Kernel Changes ] + + * drm/i915: Clean conflicting modesetting registers upon init + - LP: #683775 + * rebase to v2.6.37-rc4 + + -- Andy Whitcroft Fri, 03 Dec 2010 18:42:07 +0000 + +linux (2.6.37-7.19) natty; urgency=low + + [ Tim Gardner ] + + * [Config] Add bnx2 firmware to nic-modules udeb + - LP: #676245 + + -- Andy Whitcroft Fri, 26 Nov 2010 17:53:45 +0000 + +linux (2.6.37-7.18) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID" + * Revert "SAUCE: Add extra headers to linux-libc-dev" + * Revert "SAUCE: Enable speedstep for sonoma processors." + * [Config] enable CONFIG_BT_HCIUART_ATH3K + * [Config] enable CONFIG_IWLWIFI_DEBUGFS + * [Config] standardise CONFIG_MII + * [Config] standardise CONFIG_PRISM2_USB + * [Config] standardise CONFIG_SCSI_QLA_ISCSI + * [Config] build in CONFIG_AGP + * [Config] build in CONFIG_AGP_INTEL + * [Config] build in CONFIG_AGP_AMD + * [Config] build in CONFIG_AGP_AMD64 + * [Config] build in CONFIG_AGP_NVIDIA + * [Config] build in CONFIG_AGP_VIA + * [Config] disable CONFIG_SCSI_QLA_ISCSI for FTBS (arm) + * (no-up): document the new ## scheme + * [Config] harmonise CONFIG_SERIAL_8250_NR_UARTS + * [Config] update CONFIG_SERIAL_8250_RUNTIME_UARTS=32 + - LP: #675453 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * nx-emu: fix inverted report of disable_nx + + -- Andy Whitcroft Tue, 23 Nov 2010 21:00:39 +0000 + +linux (2.6.37-6.17) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch + aufs2.1-36-UNRELEASED-20101103" + * Revert "ubuntu: AUFS -- aufs2-base.patch + aufs2.1-36-UNRELEASED-20101103" + * [Config] standardise CONFIG_BT + * [Config] standardise CONFIG_IRDA + * [Config] standardise CONFIG_LAPB + * [Config] standardise CONFIG_RDS + * [Config] standardise CONFIG_RFKILL + * [Config] standardise CONFIG_TIPC + * [Config] standardise CONFIG_X25 + * [Config] standardise CONFIG_INPUT_EVDEV + * [Config] standardise CONFIG_INPUT_JOYDEV + * [Config] standardise CONFIG_INPUT_JOYSTICK + * [Config] standardise CONFIG_INPUT_TOUCHSCREEN + * [Config] CONFIG_INPUT_TOUCHSCREEN=n for FTBS (arm) + * [Config] CONFIG_IRDA=n for FTBS (arm) + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-37 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37 + * ubuntu: AUFS -- update to 097bf62d6f49619359d34bf17f242df38562489a + + [ Tim Gardner ] + + * SAUCE: Fix drivers/staging/easycap FTBS + * [Config] CONFIG_EASYCAP=m after fixing FTBS + + [ Upstream Kernel Changes ] + + * Revert "x86: Add NX protection for kernel data" + + -- Andy Whitcroft Mon, 22 Nov 2010 18:09:10 +0000 + +linux (2.6.37-6.16) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] update config for CONFIG_DEBUG_SET_MODULE_RONX" + * rebase to v2.6.37-rc3 + + [ Tim Gardner ] + + * [Config] CONFIG_SCHED_AUTOGROUP=y + + [ Upstream Kernel Changes ] + + * Revert "x86: Add RO/NX protection for loadable kernel modules" + * sched: automated per session task groups + * rebase to v2.6.37-rc3 + + -- Andy Whitcroft Mon, 22 Nov 2010 10:11:13 +0000 + +linux (2.6.37-6.15) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] standardise CONFIG_CEPH_FS + * [Config] standardise CONFIG_SCSI_LPFC_DEBUG_FS + * [Config] standardise CONFIG_SCSI_PROC_FS + * [Config] standardise CONFIG_UBIFS_FS + * [Config] standardise CONFIG_USB_GADGET_DEBUG_FS + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 11 + - LP: #677210 + * SAUCE: enable rfkill for rtl8192se driver + - LP: #640992 + + [ Tim Gardner ] + + * [Config] CONFIG_EASYCAP=n for FTBS + * Rebase to v2.6.32-rc2+git + + [ Upstream Kernel Changes ] + + * x86: Fix improper large page preservation + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + + [ Upstream Kernel Changes ] + + * Rebase to Linus 2.6.37-rc2+git + + -- Andy Whitcroft Sat, 20 Nov 2010 11:40:00 +0000 + +linux (2.6.37-5.14) natty; urgency=low + + [ Upstream Kernel Changes ] + + * PCI: fix offset check for sysfs mmapped files + - LP: #676963 + + -- Andy Whitcroft Thu, 18 Nov 2010 18:12:27 +0000 + +linux (2.6.37-5.13) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.37-rc2 + * updateconfigs following rebase to v2.6.37-rc2 + + [ Tim Gardner ] + + * [Config] Added NFS and related modules to virtual flavour + - LP: #659084 + + [ Upstream Kernel Changes ] + + * x86, cpu: Rename verify_cpu_64.S to verify_cpu.S + * x86, cpu: Clear XD_DISABLED flag on Intel to regain NX + * x86, cpu: Call verify_cpu during 32bit CPU startup + * x86, cpu: Only CPU features determine NX capabilities + + [ Upstream Changes ] + + * rebased to v2.67.37-rc2 + + -- Andy Whitcroft Tue, 16 Nov 2010 13:13:29 +0000 + +linux (2.6.37-4.12) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] HID: magicmouse: add param for scroll speed" + * Revert "[Upstream] HID: magicmouse: properly account for scroll + movement in state" + * Revert "[Upstream] HID: magicmouse: disable and add module param for + scroll acceleration" + * Revert "[Upstream] HID: magicmouse: scroll on entire surface, not just + middle of mouse" + + [ Henrik Rydberg ] + + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Upstream Kernel Changes ] + + * Revert "mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume" + * Revert "[ARM] implement arch_randomize_brk()" + * Revert "ARM: stack protector: change the canary value per task" + * Revert "ARM: initial stack protector (-fstack-protector) support" + * Revert "ALSA: hda - Handle pin NID 0x1a on ALC259/269" + * Revert "ALSA: hda - Handle missing NID 0x1b on ALC259 codec" + * Revert "perf probe: Add kernel source path option" + * hid: ntrig: Support single-touch devices + * hid: ntrig: Mask pen switch events + * net: rtnetlink.h -- only include linux/netdevice.h when used by the + kernel + - LP: #673073 + * Fix userspace build of linux/fs.h + + -- Andy Whitcroft Mon, 15 Nov 2010 19:31:44 +0000 + +linux (2.6.37-3.11) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- update to + b37c575759dc4535ccc03241c584ad5fe69e3b25" + * Revert "ubuntu: AUFS -- track changes to the arguements to fop fsync()" + * Revert "ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601" + * Revert "ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601" + * Revert "ubuntu: AUFS -- aufs2 base patch for linux-2.6.34" + * [Config] Disable intel_idle for -virtual kernels + - LP: #651370 + * [Config] enforcer -- ensure we never enable CONFIG_IMA + * debian -- pass the correct flavour name when checking configs + * [Config] enforcer -- ensure CONFIG_INTEL_IDLE is off for -virtual + * [Config] ensure CONFIG_IPV6=y for powerpc + * [Config] enforcer -- ensure CONFIG_IPV6=y + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- update to aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- re-enable + * ubuntu: AUFS -- track changes to work queue initialisation + * ubuntu: AUFS -- track changes to llseek in v2.6.37-rc1 + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + * SAUCE: drm -- stop early access to drm devices + + [ Jeremy Kerr ] + + * [Config] Build-in powermac ZILOG serial driver + - LP: #673346 + + [ Kees Cook ] + + * SAUCE: nx-emu: use upstream ASLR when possible + + [ Tim Gardner ] + + * [Config] Use correct be2iscsi module name in d-i/modules/scsi-modules + - LP: #628776 + + [ Upstream Kernel Changes ] + + * i386: NX emulation + * nx-emu: drop exec-shield sysctl, merge with disable_nx + * nx-emu: standardize boottime message prefix + * mmap randomization for executable mappings on 32-bit + * exec-randomization: brk away from exec rand area + + -- Andy Whitcroft Thu, 11 Nov 2010 23:46:37 +0000 + +linux (2.6.37-2.10) natty; urgency=low + + [ Andy Whitcroft ] + + * reinstate armel config changes: + * [Config] CONFIG_GPIO_PCH=n for armel FTBS + * [Config] CONFIG_GPIO_VX855=n for armel FTBS + + -- Andy Whitcroft Wed, 03 Nov 2010 22:20:35 +0000 + +linux (2.6.37-2.9) natty; urgency=low + + [ Andy Whitcroft ] + + * config -- fix genportsconfig + * [Config] move powerpc over from ports to distro + * bump master version number to match contained kernel + * SAUCE: fix documentation strings for struct input_keymap_entry + * usb: gadget: goku_udc: add registered flag bit + + -- Andy Whitcroft Tue, 02 Nov 2010 15:14:11 +0000 + +linux (2.6.36-2.8) natty; urgency=low + + [ Tim Gardner ] + + * [Config]: fix changed CONFIG_SYSFS_DEPRECATED_V2 enforcement rules + * [Config]: TWL4030_CORE=n for FTBS + * [Config]: CONFIG_ATH6K_LEGACY=n for FTBS + * [Config]: CONFIG_SOLO6X10=n for FTBS + * [Config]: CONFIG_GPIO_PCH=n for armel FTBS + * [Config]: CONFIG_GPIO_VX855=n for armel FTBS + * [Config]: CONFIG_DRM_NOUVEAU=n for armel FTBS + * [Config]: CONFIG_LINE6_USB=n for armel FTBS + * [Config]: CONFIG_SENSORS_AK8975=n for armel FTBS + * [Config]: CONFIG_I2C_I801=n for armel FTBS + * UBUNTU: SAUCE: AppArmor: Fix unpack of network tables. + * AppArmor: compatibility patch for v5 interface + * AppArmor: compatibility patch for v5 network controll + * Dropped (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: libata: Add ALPM power state accounting to the AHCI driver + * Dropped: UBUNTU: SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + * Dropped: hid: 3m: Convert to MT slots + * Dropped: HID: magicmouse: don't allow hidinput to initialize the device + * Dropped: HID: magicmouse: simplify touch data bit manipulation + * Dropped: HID: magicmouse: simplify touch down logic + * Dropped: HID: magicmouse: enable Magic Trackpad support + * Dropped: UBUNTU: SAUCE: hid: ntrig: remove sysfs nodes + * Dropped: UBUNTU: SAUCE: hid: ntrig: Setup input filtering manually + * Dropped: UBUNTU: SAUCE: hid: ntrig: New ghost-filtering event logic + * Dropped: UBUNTU: SAUCE: hid: ntrig: identify firmware version (wiggled) + * Dropped: UBUNTU: (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: KMS: cache the EDID information of the LVDS + * Dropped: UBUNTU: SAUCE: fbcon -- fix race between open and removal of framebuffers + * Dropped: UBUNTU: SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + * Dropped: UBUNTU: SAUCE: x86: implement cs-limit nx-emulation for ia32 + * Dropped: UBUNTU: SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * Dropped: UBUNTU: SAUCE: [um] Don't use nx_enabled under UML + * Dropped: UBUNTU: SAUCE: x86: brk away from exec rand area + + [ Upstream Kernel Changes ] + + * rebased against 2.6.27-rc1 + + -- Tim Gardner Fri, 22 Oct 2010 19:35:05 -0600 + +linux (2.6.36-1.7) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.36 final + * [Config] update configs following rebase to v2.6.36 final + * [Config] update ports configs following rebase to v2.6.36 final + + [ Upstream Kernel Changes ] + + * rebased to v2.6.36 final + + -- Andy Whitcroft Thu, 21 Oct 2010 14:28:57 +0100 + +linux (2.6.36-1.6) natty; urgency=low + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "Staging: Add initial release of brcm80211 - Broadcom 802.11n + wireless LAN driver." + + -- Andy Whitcroft Wed, 20 Oct 2010 10:41:25 +0100 + +linux (2.6.36-1.5) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.36-rc8 + * updateconfigs following rebase to v2.6.36-rc8 + * updateportsconfigs following rebase to v2.6.36-rc8 + * config -- simplify the kernelconfig interface + * config -- add new config mode 'dumpconfigs' + + [ Tim Gardner ] + + * Simplify the use of CROSS_COMPILER + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "staging: brcm80211: Make compiling of brcm80211.ko and + brcmfmac.ko mutually exclusive." + * Revert "staging: brcm80211: Fix compile issue when BRCM80211_PCI is not + set." + * Revert "Staging: brcm80211: remove driver specific -W options" + * Revert "Staging: brcm80211: clean up makefile cflag lines" + * Revert "staging: brcm80211: add fullmac driver" + * Revert "staging: brcm80211: use string native library" + * Revert "staging: brcm80211: use native ctype library" + * Revert "staging: brcm80211: fix remaining checkpatch errors." + * Revert "staging: brcm80211: fix "ERROR: trailing whitespace."" + * Revert "staging: brcm80211: fix "ERROR: spaces required around that + ..."" + * Revert "staging: brcm80211: fix "ERROR: spaces prohibited around that + ':' ..."" + * Revert "staging: brcm80211: fix "ERROR: space required before that + ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that close + brace"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited before + ...close square bracket"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited after that + ..."" + * Revert "staging: brcm80211: fix "ERROR: need consistent spacing around + '*'"" + * Revert "staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"'" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... + do - while loop"" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise statics to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise globals to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: while should follow close brace + '}'"" + * Revert "staging: brcm80211: fix "ERROR: that open brace { ... prev + line"" + * Revert "staging: brcm80211: fix "ERROR: trailing statements should be + on next line"" + * Revert "staging: brcm80211: fix "ERROR: do not use assignment in if + condition"" + * Revert "staging: brcm80211: fix "ERROR: return is not a function, + paren..."" + * Revert "staging: brcm80211: fix "ERROR: open brace '{' following + function dec..."" + * Revert "staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo + *bar"'" + * Revert "staging: brcm80211: Fix URLs for firmware files." + * Revert "staging: brcm80211: use '%pM' format to print MAC address" + * Revert "staging: brcm80211: Add contact info to TODO list." + * Revert "staging: brcm80211: Fix some initialisation failure paths" + * Export dump_{write,seek} to binary loader modules + * rebase to v2.6.36-rc8. + + -- Andy Whitcroft Tue, 19 Oct 2010 18:58:11 +0100 + +linux (2.6.36-0.4) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: perf: increase stack footprint to avoid stack-protector warning + (fixes FTBS on powerpc) + + -- Andy Whitcroft Thu, 14 Oct 2010 13:16:16 +0100 + +linux (2.6.36-0.3) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_SCSI_QLA_ISCSI to fix FTBS on powerpc + + -- Andy Whitcroft Thu, 14 Oct 2010 03:01:30 +0100 + +linux (2.6.36-0.2) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] updateportsconfigs following rebase to 2.6.36-rc7 + (fix FTBS on powerpc) + + -- Andy Whitcroft Wed, 13 Oct 2010 23:25:12 +0100 + +linux (2.6.36-0.1) natty; urgency=low + + [ Andy Whitcroft ] + + * reduce disk usage during buildd builds + - LP: #645653 + * [Config] enforcer -- ensure CONFIG_INIT_PASS_ALL_PARAMS is y + * [Config] armel -- drop omap flavour + + [ Tim Gardner ] + + * Added dropped patch list + * more dropped patches + * [Config] Disable aufs, dmraid-4.5, ndis-wrapper + * [Config] Add support for cross compiling armel + * [Config] CONFIG_SCSI_QLA_ISCSI=n for armel + * [Upstream] drivers/serial/mfd.c: Fix ARM compile error + * [Config]: updateconfigs after adding brcm80211 + * staging: brcm80211: Fix Makefile syntax error + * rebased to v2.6.36-rc7 + + [ Upstream Kernel Changes ] + + * (upstream) IPS driver: don't toggle CPU turbo on unsupported CPUs + * (upstream) IPS driver: verify BIOS provided limits + * intel_ips: Print MCP limit exceeded values. + * Staging: Add initial release of brcm80211 - Broadcom 802.11n wireless + LAN driver. + * staging: brcm80211: Fix some initialisation failure paths + * staging: brcm80211: Add contact info to TODO list. + * staging: brcm80211: use '%pM' format to print MAC address + * staging: brcm80211: Fix URLs for firmware files. + * staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo *bar"' + * staging: brcm80211: fix "ERROR: open brace '{' following function + dec..." + * staging: brcm80211: fix "ERROR: return is not a function, paren..." + * staging: brcm80211: fix "ERROR: do not use assignment in if condition" + * staging: brcm80211: fix "ERROR: trailing statements should be on next + line" + * staging: brcm80211: fix "ERROR: that open brace { ... prev line" + * staging: brcm80211: fix "ERROR: while should follow close brace '}'" + * staging: brcm80211: fix "ERROR: do not initialise globals to 0 or NULL" + * staging: brcm80211: fix "ERROR: do not initialise statics to 0 or NULL" + * staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis" + * staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... do - + while loop" + * staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"' + * staging: brcm80211: fix "ERROR: need consistent spacing around '*'" + * staging: brcm80211: fix "ERROR: space prohibited after that ..." + * staging: brcm80211: fix "ERROR: space prohibited before ...close square + bracket" + * staging: brcm80211: fix "ERROR: space required after that close brace" + * staging: brcm80211: fix "ERROR: space required after that ..." + * staging: brcm80211: fix "ERROR: space required before that ..." + * staging: brcm80211: fix "ERROR: spaces prohibited around that ':' ..." + * staging: brcm80211: fix "ERROR: spaces required around that ..." + * staging: brcm80211: fix "ERROR: trailing whitespace." + * staging: brcm80211: fix remaining checkpatch errors. + * staging: brcm80211: use native ctype library + * staging: brcm80211: use string native library + * staging: brcm80211: add fullmac driver + * Staging: brcm80211: clean up makefile cflag lines + * Staging: brcm80211: remove driver specific -W options + * staging: brcm80211: Fix compile issue when BRCM80211_PCI is not set. + * staging: brcm80211: Make compiling of brcm80211.ko and brcmfmac.ko + mutually exclusive. + + -- Andy Whitcroft Tue, 12 Oct 2010 16:00:27 +0100 + +linux (2.6.35-22.33) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops" + - LP: #641320 + + [ Brian Rogers ] + + * SAUCE: ir-core: Fix null dereferences in the protocols sysfs interface + - LP: #624701 + + [ Christopher James Halse Rogers ] + + * SAUCE: Nouveau: Add quirk framework to disable acceleration + - LP: #544088, #546393 + * SAUCE: Nouveau: Disable acceleration on MacBook Pros + - LP: #546393 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: allow newer tools to load policy on older + kernels" + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + + [ Mathieu J. Poirier ] + + * SAUCE: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * ALSA: HDA: Enable internal speaker on Dell M101z + - LP: #640254 + + -- Leann Ogasawara Fri, 17 Sep 2010 13:21:28 -0700 + +linux (2.6.35-22.32) maverick; urgency=low + + [ Arjan van de Ven ] + + * SAUCE: libata: Add ALPM power state accounting to the AHCI driver + + [ David Henningsson ] + + * SAUCE: ALSA: HDA: Enable internal mic on Dell E6410 and Dell E6510 + - LP: #605047, #628961 + + [ John Johansen ] + + * [Upstream] AppArmor: Fix splitting an fqname into separate namespace + and profile names + - LP: #615947 + * [Upstream] AppArmor: Fix locking from removal of profile namespace + - LP: #615947 + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + * SAUCE: Improve Amazon EBS performance for EC2 + - LP: #634316 + + [ Leann Ogasawara ] + + * Revert "SAUCE: i915 KMS -- blacklist i855" + * Revert "SAUCE: i915 KMS -- blacklist i845g" + * Revert "SAUCE: i915 KMS -- blacklist i830" + * Revert "SAUCE: i915 KMS -- support disabling KMS for known broken + devices" + * execute module-inclusion within a subshell + - LP: #621175 + + [ Upstream Kernel Changes ] + + * (pre-stable) bounce: call flush_dcache_page() after bounce_copy_vec() + - LP: #633227 + * (pre-stable) drm/i915: don't enable self-refresh on Ironlake + - LP: #629711 + * (pre-stable) mm: Move vma_stack_continue into mm.h + * x86, hwmon: Fix unsafe smp_processor_id() in thermal_throttle_add_dev + - LP: #601073 + * PM / Runtime: Make runtime_status attribute not debug-only (v. 2) + * PM / Runtime: Add runtime PM statistics (v3) + * compat: Make compat_alloc_user_space() incorporate the access_ok() + - CVE-2010-3081 + * x86-64, compat: Test %rax for the syscall number, not %eax + - CVE-2010-3301 + * x86-64, compat: Retruncate rax after ia32 syscall entry tracing + - CVE-2010-3301 + + -- Leann Ogasawara Tue, 14 Sep 2010 08:46:49 -0700 + +linux (2.6.35-21.31) maverick; urgency=low + + [ Andy Whitcroft ] + + * bodge linux-libc-dev package version due to ti-omap4 error + * linux-libc-dev -- ensure we can only build this on debian.master + + -- Leann Ogasawara Mon, 13 Sep 2010 09:54:31 -0700 + +linux (2.6.35-21.30) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + + [ Daniel Lezcano ] + + * SAUCE: fix compilation warning when CONFIG_SECURITY is not set + + [ Henrik Rydberg ] + + * SAUCE: Input: wacom - add fuzz parameters to features + * SAUCE: Input: wacom - collect device quirks into single function + * SAUCE: Input: wacom - add support for the Bamboo Touch trackpad + * SAUCE: Input: wacom - add a quirk for low resolution Bamboo devices + * SAUCE: hid: ntrig: Remove unused device ids + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Correct logic for quirks + * SAUCE: hid: ntrig: zero-initialize ntrig struct + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Leann Ogasawara ] + + * SAUCE: ndiswrapper: Initialize buffer index and check its value + - LP: #613796 + + [ Manoj Iyer ] + + * SAUCE: Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops + - LP: #632884 + + [ Ping Cheng ] + + * SAUCE: Input: wacom - parse the Bamboo device family + + [ Rafi Rubin ] + + * SAUCE: hid: ntrig: identify firmware version (wiggled) + + [ Tim Gardner ] + + * [Config] CONFIG_NL80211_TESTMODE=n + + [ Upstream Kernel Changes ] + + * Revert "input: mt: Add support for the Bamboo Touch trackpad" + * e1000e: initial support for 82579 LOMs + * e1000e: correct MAC-PHY interconnect register offset for 82579 + * (pre-stable) ALSA: hda - Add a new hp-laptop model for Conexant 5066, + tested on HP G60 + - LP: #587388 + * DSS2: Don't power off a panel twice + - LP: #588243 + * mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y + * Input: i8042 - reset keyboard controller wehen resuming from S2R + - LP: #86820 + * ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs + - LP: #414795 + * agp/intel: Support the extended physical addressing bits on + Sandybridge. + - LP: #632488 + * drm/i915,intel_agp: Add support for Sandybridge D0 + - LP: #632488 + * (pre-stable) intel_agp,i915: Add more sandybridge graphics device ids + - LP: #632488 + * mmc: omap: fix for bus width which improves SD card's peformance. + + -- Leann Ogasawara Tue, 07 Sep 2010 09:58:52 -0700 + +linux (2.6.35-20.29) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: i915 KMS -- support disabling KMS for known broken devices + - LP: #563277 + * SAUCE: i915 KMS -- blacklist i830 + - LP: #542208, #563277 + * SAUCE: i915 KMS -- blacklist i845g + - LP: #541492, #563277 + * SAUCE: i915 KMS -- blacklist i855 + - LP: #511001, #541511, #563277 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_PKGTEMP=m + - LP: #601073 + * ARM: Temporarily disable module check for armel + * rebase to v2.6.35.4 + * [Config] update configs following rebase to v2.6.35.4 + + [ Ricardo Salveti de Araujo ] + + * [Config] Change CONFIG_LEDS_TRIGGER_HEARTBEAT from module to built-in + in Omap + + [ Tim Gardner ] + + * [Config] Added be2net, be2scsi to udebs + - LP: #628776 + + [ Upstream Kernel Changes ] + + * x86, cpu: Package Level Thermal Control, Power Limit Notification + definitions + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: thermal throttling handler + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: power limit + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp documentation + - LP: #601073 + * hid: 3m: Adjust to sequential MT HID protocol + * hid: 3m: Convert to MT slots + * hid: 3m: Correct touchscreen emulation + * hid: 3m: Adjust major / minor axes to scale + * input: bcm5974: Adjust major / minor to scale + * HID: magicmouse: don't allow hidinput to initialize the device + * HID: magicmouse: simplify multitouch feature request + * HID: magicmouse: simplify touch data bit manipulation + * HID: magicmouse: simplify touch down logic + * HID: magicmouse: remove timestamp logic + * HID: magicmouse: enable Magic Trackpad support + * HID: magicmouse: Adjust major / minor axes to scale + * mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume + - LP: #477106 + * drm/i915: fix VGA plane disable for Ironlake+ + - LP: #602281 + + -- Leann Ogasawara Mon, 30 Aug 2010 08:38:01 -0700 + +linux (2.6.35-19.28) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.27. Some armel udebs were accidentally deleted + from the archive and a no-change rebuild was attempted. However, the ABI + did not get bumped and resulted in build failures for 2.6.35-19.27. Fix + up the ABI and re-upload. + + -- Leann Ogasawara Sat, 28 Aug 2010 16:42:27 -0700 + +linux (2.6.35-19.27) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.26. Some armel udebs were accidentally deleted + from the archive. + + -- Leann Ogasawara Fri, 27 Aug 2010 08:58:35 -0700 + +linux (2.6.35-19.26) maverick; urgency=low + + [ Upstream Kernel Changes ] + + * ARM: OMAP: Beagle: revision detection + * ARM: OMAP: Beagle: only Cx boards use pin 23 for write protect + * ARM: OMAP: Beagle: no gpio_wp pin connection on xM + + -- Leann Ogasawara Thu, 26 Aug 2010 09:15:09 -0700 + +linux (2.6.35-19.25) maverick; urgency=low + + [ Jarod Wilson ] + + * SAUCE: Bring in staging/lirc from 2.6.36 + - LP: #609234 + * SAUCE: Update ir-core to linuxtv/other which should be merged for + 2.6.36. + - LP: #609234 + * SAUCE: Fix memleaks in imon and mceusb drivers + - LP: #609234 + * SAUCE: Bring in streamzap support from linuxtv/other + - LP: #609234 + + [ Mario Limonciello ] + + * Remove ubuntu/lirc in favor of staging/lirc from 2.6.36 + - LP: #609234 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: adding i2c eeprom driver to read EDID + - LP: #608279 + + [ Upstream Kernel Changes ] + + * intel_idle: disable module support + - LP: #615265 + * (pre-stable) ALSA: hda - Ensure codec patch files are checked for the + correct codec ID + * (pre-stable) ALSA: hda - Rename iMic to Int Mic on Lenovo NB0763 + - LP: #605101 + * (pre-stable) ALSA: HDA: Use model=auto for LG R510 + - LP: #495134 + * (pre-stable) ALSA: HDA: Add Sony VAIO quirk for ALC269 + - LP: #519066 + * (pre-stable) ALSA: HDA: Fix front mic on Dell Precision M6500 + - LP: #519066 + * input: mt: Initialize slots to unused (rev2) + * input: mt: Add support for the Bamboo Touch trackpad + * hid: Add a hid quirk for input sync override + + -- Leann Ogasawara Mon, 23 Aug 2010 12:42:52 -0700 + +linux (2.6.35-18.24) maverick; urgency=low + + [ Colin Watson ] + + * Pass DEB_MAINT_PARAMS to hook scripts + + [ Leann Ogasawara ] + + * [Config] Add CONFIG_INPUT_UINPUT=y to config enforcer + - LP: #584812 + * rebase to v2.6.35.3 + + [ Upstream Kernel Changes ] + + * (pre-stable) dell-wmi: Add support for eject key on Dell Studio 1555 + - LP: #609234 + * can: add limit for nframes and clean up signed/unsigned variables + - CVE-2010-2959 + * drm: Initialize ioctl struct when no user data is present + - CVE-2010-2803 + * ARM: initial stack protector (-fstack-protector) support + * ARM: stack protector: change the canary value per task + * [ARM] implement arch_randomize_brk() + * [ARM] add address randomization to mmap() + * ARM: fix ASLR of PIE executables + + -- Leann Ogasawara Sun, 22 Aug 2010 19:22:04 -0700 + +linux (2.6.35-17.23) maverick; urgency=low + + [ Jeremy Kerr ] + + * [Config] build-in uinput module + - LP: #584812 + + [ Leann Ogasawara ] + + * Revert "[Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS" + * Revert "[Config] [FTBS] ia64: Temporarily disable gpiolib" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MTD_NAND_DENALI" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MFD_JANZ_CMODIO" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_INFINIBAND_QIB" + * [Config] Enable INTEL_IPS + - LP: #601057 + * Remove ia64 support + * [Config] Update portsconfigs after removing ia64 support + * Remove sparc support + * [Config] Update portsconfigs after removing sparc support + + [ Linus Torvalds ] + + * (pre-stable) mm: fix page table unmap for stack guard page properly + + [ Mathieu J. Poirier ] + + * SAUCE: (no-up) ARM: Resetting power_mode to its original value. + - LP: #591941 + + [ Upstream Kernel Changes ] + + * timer: add on-stack deferrable timer interfaces + - LP: #601057 + * x86 platform driver: intelligent power sharing driver + - LP: #601057 + * IPS driver: add GPU busy and turbo checking + - LP: #601057 + * X86: intel_ips, check for kzalloc properly + - LP: #601057 + * ips driver: make it less chatty + - LP: #601057 + + -- Leann Ogasawara Tue, 17 Aug 2010 09:38:08 -0700 + +linux (2.6.35-16.22) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- more agressivly clean up after depmod on purge + - LP: #618591 + + [ Henrik Rydberg ] + + * SAUCE: hid: 3m: Simplify touchsreen emulation logic + + [ Leann Ogasawara ] + + * ubuntu: iscsitarget -- version 1.4.20.2 + * ubuntu: rtl8192se -- update to version 0017.0507.2010 + * rebase to v2.6.35.2 + * [Config] update configs following rebase to v2.6.35.2 + * [Config] update ports configs following rebase to v2.6.35.2 + + [ Luke Yelavich ] + + * [Config] Enable new firewire stack on powerpc + + [ Mathieu J. Poirier ] + + * SAUCE: (drop after 2.6.35) ARM: Using gpmc function to init nand flash. + - LP: #608266 + + -- Leann Ogasawara Thu, 12 Aug 2010 09:58:01 -0700 + +linux (2.6.35-15.21) maverick; urgency=low + + [ Luke Yelavich ] + + * [Config] CONFIG_SND_USB_UA101=m for all architectures + + [ Upstream Kernel Changes ] + + * Input: introduce MT event slots + * Input: document the MT event slot protocol + * (pre-stable) sched: Revert nohz_ratelimit() for now + * (pre-stable) drm/radeon/kms: add missing copy from user + - LP: #606081 + + [ Leann Ogasawara ] + + * rebase to v2.6.35.1 + + -- Leann Ogasawara Mon, 09 Aug 2010 09:24:04 -0700 + +linux (2.6.35-14.20) maverick; urgency=low + + [ Andy Whitcroft ] + + * update Vcs-Git to point to maverick repo + * debian -- include the debian packaging in the -source package + - LP: #608674 + * select debian source format 1.0 + * add support for building selected stages of kernel + - LP: #603087 + * cleanup conditional dependancy handling + - LP: #603087 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Handle missing NID 0x1b on ALC259 codec + - LP: #582199, #586418, #588031 + * ALSA: hda - Handle pin NID 0x1a on ALC259/269 + - LP: #582199, #586418, #588031 + * sched: Revert nohz_ratelimit() for now + + -- Leann Ogasawara Tue, 03 Aug 2010 08:46:47 -0700 + +linux (2.6.35-14.19) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35 + + -- Leann Ogasawara Sun, 01 Aug 2010 10:35:56 -0700 + +linux (2.6.35-13.18) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: (no-up) Modularize vesafb -- fix initialisation + * SAUCE: add tracing for user initiated readahead requests + * SAUCE: vt -- maintain bootloader screen mode and content until vt + switch + * SAUCE: vt -- allow grub to request automatic vt_handoff + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: drm -- stop early access to drm devices + + [ Bryan Wu ] + + * CONFIG: compile in OTG driver and Transceiver driver + - LP: #566645 + * remove OTG modules from modules list file + + [ John Johansen ] + + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-27 + - LP: #581525, #599450 + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-29 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: AppArmor: Allow dfa backward compatibility with broken userspace + * SAUCE: fix pv-ops for legacy Xen + * SAUCE: blkfront: default to sd devices + * [Config] Build in drivers required for Xen pv-ops + + [ Leann Ogasawara ] + + * Revert "[Upstream] i915: Use the correct mask to detect i830 aperture + size." + + [ Lee Jones ] + + * SAUCE: ARM: OMAP: Add macros for comparing silicon revision + - LP: #608095 + * SAUCE: OMAP: DSS2: check for both cpu type and revision, rather than + just revision + - LP: #608095 + * SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX + - LP: #608095 + * SAUCE: ARM: OMAP: Beagle: support twl gpio differences on xM + - LP: #608095 + + [ Upstream Kernel Changes ] + + * agp/intel: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + -- Leann Ogasawara Fri, 30 Jul 2010 15:46:59 -0700 + +linux (2.6.35-12.17) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + * [Config] update configs following rebase to v2.6.35-rc6 + * [Config] update ports configs following rebase to v2.6.35-rc6 + * SAUCE: [FTBS] armel: define KEY_F10 and KEYF11 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + + -- Leann Ogasawara Fri, 23 Jul 2010 16:16:38 +0200 + +linux (2.6.35-11.16) maverick; urgency=low + + [ Leann Ogasawara ] + + * Bump ABI for new compiler update + + -- Leann Ogasawara Fri, 23 Jul 2010 10:24:58 +0200 + +linux (2.6.35-10.15) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "SAUCE: ensure vga16fb loads if no other driver claims the VGA + device" + * [Config] Enable CONFIG_M686=y + - LP: #592495 + + [ Upstream Kernel Changes ] + + * tracing: Add alignment to syscall metadata declarations + + -- Leann Ogasawara Tue, 20 Jul 2010 18:18:49 +0200 + +linux (2.6.35-9.14) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- update to b37c575759dc4535ccc03241c584ad5fe69e3b25 + + [ John Johansen ] + + * [Config] Enable DRBD as a module + + [ Kees Cook ] + + * SAUCE: Yama: verify inode is symlink to avoid bind mounts + - LP: #604407 + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] ports: Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + * [Config] ports: Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + + [ Lee Jones ] + + * Stop ARM boards crashing when CUPS is loaded + - LP: #601226 + + [ Upstream Kernel Changes ] + + * perf probe: Support tracing an entry of array + * perf probe: Support static and global variables + + -- Leann Ogasawara Fri, 16 Jul 2010 14:38:17 -0700 + +linux (2.6.35-8.13) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: Yama: check PTRACE using thread group leader + * SAUCE: Yama: search for PTRACE exceptions via thread group leader + - LP: #603716 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc5 + * [Config] update configs following rebase to v2.6.35-rc5 + + [ Nicolas Pitre ] + + * SAUCE: make ndiswrapper available on X86 only + + [ Tim Gardner ] + + * [Config] Added ums-cypress to udeb + - LP: #576066 + * SAUCE: fix build error with CONFIG_BLK_DEV_INITRD=n + * [Config] CONFIG_NDISWRAPPER=m across all configs + + [ Upstream Kernel Changes ] + + * HID: magicmouse: report last touch up + * rebase to 2.6.35-rc5 + + -- Leann Ogasawara Tue, 13 Jul 2010 18:57:59 -0700 + +linux (2.6.35-7.12) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] i915: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35) drm/radeon/kms: add ioport register access + (squashed) + + -- Tim Gardner Thu, 08 Jul 2010 09:53:13 -0600 + +linux (2.6.35-7.11) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_X86_MRST=n + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35-rc5) writeback: remove writeback_inodes_wbc + * (drop after 2.6.35-rc5) writeback: split writeback_inodes_wb + * (drop after 2.6.35-rc5) writeback: simplify the write back thread queue + + -- Tim Gardner Tue, 06 Jul 2010 18:39:08 -0600 + +linux (2.6.35-7.10) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: security: create task_free security callback + * SAUCE: Yama: add PTRACE exception tracking and interface + * SAUCE: security: unconditionally chain to Yama LSM + * Revert "SAUCE: ptrace: restrict ptrace scope to children" + * Revert "SAUCE: fs: block hardlinks to non-accessible sources" + * Revert "SAUCE: fs: block cross-uid sticky symlinks" + * [Upstream] security: Yama LSM + * [Config] Enable CONFIG_SECURITY_YAMA=y + + [ Tim Gardner ] + + * [Config] updateconfigs/updateportsconfigs after rebase to 2.6.35-rc4 + + [ Upstream Kernel Changes ] + + * rebase to 2.6.35-rc4 + + -- Leann Ogasawara Thu, 01 Jul 2010 08:55:57 -0700 + +linux (2.6.35-6.9) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] direct_splice_actor() should not use pos in sd + - LP: #588861 + + -- Leann Ogasawara Mon, 28 Jun 2010 12:35:49 -0700 + +linux (2.6.35-6.8) maverick; urgency=low + + [ Mathieu J. Poirier ] + + * ARM: Adding regulator supply for vdds_sdi. + - LP: #597904 + + -- Leann Ogasawara Sun, 27 Jun 2010 16:34:43 -0700 + +linux (2.6.35-6.7) maverick; urgency=low + + [ Alberto Milone ] + + * [Upstream] Add support for the ATIF ACPI method to the radeon driver + + [ Chase Douglas ] + + * [Upstream] HID: magicmouse: scroll on entire surface, not just middle + of mouse + * [Upstream] HID: magicmouse: disable and add module param for scroll + acceleration + * [Upstream] HID: magicmouse: properly account for scroll movement in + state + * [Upstream] HID: magicmouse: add param for scroll speed + * [Upstream] HID: magicmouse: enable horizontal scrolling + + [ Henrik Rydberg ] + + * [Upstream] Input: evdev - convert to dynamic event buffer + * [Upstream] Input: evdev - use driver hint to compute size of event + buffer + * [Upstream] Input: bcm5974 - set the average number of events per MT + event packet + * [Upstream] Input: hid-input - use a larger event buffer for MT devices + * [Upstream] Input: evdev - never leave the client buffer empty after + write + + [ John Johansen ] + + * SAUCE: AppArmor: -- mainline 2010-06-23 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: fs: block hardlinks to non-accessible sources AppArmor portion + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_INTR_REMAP=y + - LP: #597091 + * [Config] Enable CONFIG_X86_X2APIC + - LP: #597091 + + [ Mathieu J. Poirier ] + + * [Config] ARM: Turning off CONFIG_CPU_IDLE on omap + - LP: #594382 + + -- Leann Ogasawara Thu, 24 Jun 2010 12:19:48 -0700 + +linux (2.6.35-5.6) maverick; urgency=low + + [ Amit Kucheria ] + + * [Config] update omap flavour description + + [ Andy Whitcroft ] + + * update to ubuntu-debian:508b7aa34b578c0d1e51bfb571f2bfb824dc65ac + - LP: #570500, #576274 + * SAUCE: add option to hand off all kernel parameters to init + - LP: #586386 + * [Config] enable passing all kernel command line to init + - LP: #586386 + * [Config] disable CONFIG_VMI + - LP: #537601 + * [Config] enable CONFIG_IPV6_SIT_6RD + - LP: #591869 + * [Config] enable CONFIG_VMWARE_BALOON as module + - LP: #592039 + + [ Leann Ogasawara ] + + * Revert "SAUCE: pm: Config option to disable handling of console during + suspend/resume" + - LP: #594885 + * [Config] Remove CONFIG_PM_DISABLE_CONSOLE + * [Config] ports: enable passing all kernel command line to init + - LP: #586386 + * [Config] Enable CONFIG_FB_VESA=y for x86 + * [Config] Add CONFIG_FRAMEBUFFER_CONSOLE=y to config enforcer + * [Config] Add CONFIG_FB_VESA=y for x86 to config enforcer + * [Config] Enable CONFIG_TASK_DELAY_ACCT=y + - LP: #493156 + + [ Mathieu Poirier ] + + * ARM: Adding MosChip MCS7830 to nic-usb + - LP: #584920 + + [ Upstream Kernel Changes ] + + * Revert "[Upstream] docbook: need xmldoclinks for all doc types" + * docbook: need xmldoclinks for all doc types + * perf probe: Add kernel source path option + + -- Leann Ogasawara Thu, 17 Jun 2010 08:05:29 -0700 + +linux (2.6.35-4.5) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "[Upstream] (evdev) Use driver hint to compute the evdev buffer + size (rev2)" + * Revert "[Upstream] (evdev) Convert to dynamic event buffer (rev4)" + * Revert "[Upstream] (evdev) Use multi-reader buffer to save space + (rev4)" + * Revert "SAUCE: drivers: Remove some duplicate device entries in various + modules" + * [Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID + * [Upstream] Revert "USB: Adding support for HTC Smartphones to ipaq" + * [Upstream] p54usb: Comment out duplicate Medion MD40900 device id + + [ Tim Gardner ] + + * [Config] CONFIG_NFS_FSCACHE=y + - LP: #440522 + * [Config] CONFIG_FSCACHE_STATS=y, CONFIG_FSCACHE_HISTOGRAM=y + - LP: #440522 + + -- Leann Ogasawara Wed, 16 Jun 2010 08:43:07 -0700 + +linux (2.6.35-3.4) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- ensure the version number is clean + + [ Henrik Rydberg ] + + * [Upstream] Introduce MT event slots (rev 5) + * [Upstream] Document the MT event slot protocol (rev5) + * [Upstream] (evdev) Use multi-reader buffer to save space (rev4) + * [Upstream] (evdev) Convert to dynamic event buffer (rev4) + * [Upstream] (evdev) Use driver hint to compute the evdev buffer size + (rev2) + + [ Leann Ogasawara ] + + * Revert "SAUCE: Add MODULE_ALIAS for Dell WMI module" + * Revert "SAUCE: hostap: send events on data interface as well as master + interface" + * Revert "Fix webcam having USB ID 0ac8:303b" + * Revert "SAUCE: toshiba_acpi -- pull in current -dev version of driver" + * rebase to v2.6.35-rc3 + + [ Maxim Levitsky ] + + * [Config] Enable new Smartmedia/xD translation layer + - LP: #202490 + + [ Upstream Kernel Changes ] + + * net: fix deliver_no_wcard regression on loopback device + + [ Upstream changes ] + + * rebased to v2.6.35-rc3 + + -- Leann Ogasawara Thu, 10 Jun 2010 16:15:22 -0700 + +linux (2.6.35-2.3) maverick; urgency=low + + [ Bryan Wu ] + + * CONFIG: enforce -- make sure we disable CONFIG_LOCALVERSION_AUTO + + [ Leann Ogasawara ] + + * [Config] armel: Enable CONFIG_BNX2=m + * [Config] ports: Enable CONFIG_BNX2X=m + * SAUCE: armel: define get_dma_ops to fix FTBS + + [ Tim Gardner ] + + * [Upstream] net: Print num_rx_queues imbalance warning only when there + are allocated queues + - LP: #591416 + + -- Leann Ogasawara Wed, 09 Jun 2010 08:27:41 -0700 + +linux (2.6.35-2.2) maverick; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i: make armel configuration versatile flavour specific + - LP: #588805 + * [Config] d-i: enable .udebs for omap flavour + - LP: #588805 + + [ Kees Cook ] + + * ptrace: limit scope to attach only (allow read) + - LP: #589656 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc2 + * [Config] update configs following rebase to v2.6.35-rc2 + * [Config] update port configs following rebase to v2.6.35-rc2 + + [ Lee Jones ] + + * Enable perf to be more helpful when perf_ does not exist. + - LP: #570500 + * 'fdr editconfig' modification. Easily skip over unwanted menuconfigs. + + [ Tim Gardner ] + + * [Config] Update bnx2 udeb firmware files + - LP: #589304 + + [ Upstream changes ] + + * rebased to v2.6.35-rc2 + + -- Leann Ogasawara Mon, 07 Jun 2010 09:45:04 -0700 + +linux (2.6.35-1.1) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601 + - LP: #587888 + * ubuntu: AUFS -- track changes to the arguements to fop fsync() + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc1 + * [Config] update configs following rebase to v2.6.35-rc1 + * [Config] update port configs following rebase to v2.6.35-rc1 + * SAUCE: lirc: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: convert multicast list to list_head + * [Config] [FTBS] armel: Temporarily disable CONFIG_GPIO_JANZ_TTL + * [Config] [FTBS] ia64: Temporarily disable gpiolib + * [Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS + * [Config] [FTBS] sparc: Temporarily disable CONFIG_INFINIBAND_QIB + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_DT3155 + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MTD_NAND_DENALI + * [Config] [FTBS] armel: Temporarily disable bnx2 + * [Config] [FTBS] armel: Temporarily disable CONFIG_SERIAL_UARTLITE + * SAUCE: [FTBS] armel: Don't include asm/agp.h for ttm + * SAUCE: [FTBS] armel: include linux/dma-mapping.h + * SAUCE: [FTBS] armel: replace omap_set_gpio_debounce with + gpio_set_debounce + + [ Upstream Kernel Changes ] + + * of/usb: fix build error due to of_node pointer move + * n2_crypto: Fix build after of_device/of_platform_driver changes. + * powerpc/fsl-booke: fix the case where we are not in the first page + * powerpc/fsl-booke: Move the entry setup code into a seperate file + * powerpc/kexec: Add support for FSL-BookE + * greth: Fix build after OF device conversions. + + [ Upstream changes ] + + * rebased to v2.6.35-rc1 + + -- Leann Ogasawara Fri, 04 Jun 2010 23:01:52 -0700 + +linux (2.6.35-1.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 02 Jun 2010 15:17:41 -0700 + +linux (2.6.34-5.14) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] Added module inclusion support + * [Config] Added virtual flavour module inclusion list and d-i package + definitions + + -- Leann Ogasawara Wed, 02 Jun 2010 12:58:14 -0700 + +linux (2.6.34-5.13) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2 20091209" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-standalone.patch)" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-base.patch)" + * ubuntu: AUFS -- aufs2 base patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- aufs2 standalone patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601 + - LP: #587888 + * [Config] AUFS -- enable aufs options + - LP: #587888 + + -- Leann Ogasawara Tue, 01 Jun 2010 08:56:43 -0700 + +linux (2.6.34-5.12) maverick; urgency=low + + [ Andy Whitcroft ] + + * enforce -- ensure SYSFS compatibility is disabled + + [ Chase Douglas ] + + * build with libdw-dev for perf probe symbol support + * maverick ftrace configuration changes + + [ Kees Cook ] + + * Revert "SAUCE: x86: brk away from exec rand area" + * Revert "SAUCE: [um] Don't use nx_enabled under UML" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: x86: implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + * SAUCE: ptrace: restrict ptrace scope to children + + [ Leann Ogasawara ] + + * Add new omap flavour to getabis + * [Config] Enable CONFIG_FRAMEBUFFER_CONSOLE=y for all archs + - LP: #585490 + * build/modules: Temorarily add ignore.modules + * ubuntu: iscsitarget -- version 1.4.20.1 + + [ Loïc Minier ] + + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + -- Leann Ogasawara Fri, 28 May 2010 08:27:17 -0700 + +linux (2.6.34-4.11) maverick; urgency=low + + [ Amit Kucheria ] + + * SAUCE: omap: remove calls to usb_nop_xceiv_register from board files + * [Config] Add support for OMAP-mainline flavour + + [ Andy Whitcroft ] + + * SAUCE: powerpc: fix compile error when ptrace.h is included from + userspace + - LP: #583733 + + [ Chase Douglas ] + + * Revert "SAUCE: Don't register vga16fb framebuffer if other framebuffers + are present" + * Revert "SAUCE: Disable function tracing after hitting __schedule_bug" + * Revert "SAUCE: drm/i915: don't change DRM configuration when releasing + load detect pipe" + + [ Kees Cook ] + + * SAUCE: fs: block cross-uid sticky symlinks + * SAUCE: fs: block hardlinks to non-accessible sources + + [ Koen Kooi ] + + * SAUCE: board-omap3-beagle: add DSS2 support + + [ Leann Ogasawara ] + + * Revert "staging/go7007 -- disable" + * Revert "[Config] staging/winbond -- disable" + * Revert "Disable 4MB page tables for Atom, work around errata AAE44" + * Revert "SAUCE: sync before umount to reduce time taken by ext4 umount" + * Revert "SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit + controller" + * Revert "SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT" + * Revert "SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros" + * Revert "SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps" + * Revert "SAUCE: r8169: disable TSO by default for RTL8111/8168B + chipsets." + * Revert "[Upstream] b43: Declare all possible firmware files." + * Revert "add Breaks: against hardy lvm2" + * Revert "SAUCE: Guest OS does not recognize a lun with non zero target + id on Vmware ESX Server" + * Revert "SAUCE: Catch nonsense keycodes and silently ignore" + * [Config] Enable CONFIG_ECRYPT_FS=y for ports + * [Config] Enable CONFIG_USB=y for armel and sparc + * [Config] Enable CONFIG_SCSI=y for ia64 and sparc + * [Config] Enable CONFIG_RFKILL=y for ports + * [Config] Enable CONFIG_ATH9K_DEBUGFS=y + * [Config] Enable CONFIG_IWMC3200TOP_DEBUGFS=y + * [Config] Enable CONFIG_RCU_FAST_NO_HZ=y + * [Config] Enable CONFIG_IWLWIFI_DEVICE_TRACING=y + * [Config] Enable CONFIG_LIBERTAS_MESH=y + * [Config] Enable CONFIG_MMC_RICOH_MMC=y + * [Config] CONFIG_RT2800USB_UNKNOWN=y + * [Config] Enable CONFIG_VGA_SWITCHEROO=y + * [Config] Enable CONFIG_CEPH_FS=m + * [Config] Enable CONFIG_CRYPTO_PCRYPT=m + * [Config] Enable CONFIG_EEEPC_WMI=m + * [Config] Enable CONFIG_RT2800PCI=m + * [Config] Enable CONFIG_SCSI_HPSA=m + * [Config] Enable CONFIG_VHOST_NET=m + * [Config] Disable CONFIG_SND_HDA_INPUT_BEEP_MODE by default + - LP: #582350 + * [Config] Disable CONFIG_SOUND_OSS* and CONFIG_SND_*OSS + - LP: #579300 + * [Config] Enable CONFIG_PCIEASPM=y + - LP: #333990 + * [Config] updateconfigs for OMAP flavour + + [ Loïc Minier ] + + * Enable perf tools on armel + + [ Tim Gardner ] + + * SAUCE: Updated ndiswrapper to 1.56 + - LP: #582555 + * [Config] Added virtual flavour + * [Config] Remove support for sub-flavours + * [Config] Removed amd64 preempt flavour + * [Config] updateconfigs, updateportsconfigs after flavour munging + + -- Leann Ogasawara Tue, 25 May 2010 09:34:55 -0700 + +linux (2.6.34-3.10) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34 + + [ Upstream changes ] + + * rebased to v2.6.34 + + -- Leann Ogasawara Tue, 18 May 2010 17:35:35 -0700 + +linux (2.6.34-2.9) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] [FTBS] Disable comedi for armel + + -- Leann Ogasawara Thu, 13 May 2010 23:20:55 +0200 + +linux (2.6.34-2.8) maverick; urgency=low + + [ Leann Ogasawara ] + + * Drop lpia + * [Config] [FTBS] disable KVM + * [Config] [FTBS] disable ipr for armel + + -- Leann Ogasawara Thu, 13 May 2010 16:07:52 +0200 + +linux (2.6.34-2.7) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] disable CONFIG_SCSI_IPR on powerpc + * [Config] Remove 386 flavour per UDS discussion + + -- Leann Ogasawara Wed, 12 May 2010 18:26:43 +0200 + +linux (2.6.34-1.6) maverick; urgency=low + + [ Chase Douglas ] + + * enforce CONFIG_TMPFS_POSIX_ACL=y + - LP: #575940 + * don't force module dependency checking + - LP: #577029 + + [ Kees Cook ] + + * SAUCE: mmap_min_addr check CAP_SYS_RAWIO only for write + - LP: #568844 + + [ Leann Ogasawara ] + + * Revert "SAUCE: ata: blacklist FUJITSU MHW2160BH PL" + * rebase to v2.6.34-rc7 + * [Config] update configs following rebase to v2.6.34-rc7 + * [Config] update port configs following rebase to v2.6.34-rc7 + * Add btrfs to the udebs + + [ Tim Gardner ] + + * [Config] Add atl1c to nic-modules udeb + - LP: #557130 + + [ Upstream changes ] + + * rebased to v2.6.34-rc7 + + -- Leann Ogasawara Tue, 11 May 2010 11:29:08 +0200 + +linux (2.6.34-1.5) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc6 + * [Config] update configs following rebase to v2.6.34-rc6 + * [Config] update port configs following rebase to v2.6.34-rc6 + + [ Upstream changes ] + + * rebased to v2.6.34-rc6 + + -- Leann Ogasawara Fri, 30 Apr 2010 15:54:05 +0100 + +linux (2.6.34-1.4) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc5 + * [Config] update ports configs following rebase to v2.6.34-rc5 + + [ Upstream changes ] + + * rebased to v2.6.34-rc5 + + -- Leann Ogasawara Thu, 22 Apr 2010 15:36:12 -0700 + +linux (2.6.34-1.3) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc4 + * [Config] update configs following rebase to v2.6.34-rc4 + * [Config] update port configs following rebase to v2.6.34-rc4 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc4 + + [ Upstream changes ] + + * rebased to v2.6.34-rc4 + + -- Leann Ogasawara Tue, 13 Apr 2010 18:33:44 -0700 + +linux (2.6.34-1.2) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Temorarily disable building linux-doc + * rebase to v2.6.34-rc3 + * [Config] update configs following rebase to v2.6.34-rc3 + * [Config] update port configs following rebase to v2.6.34-rc3 + + [ Upstream changes ] + + * rebased to v2.6.34-rc3 + + -- Leann Ogasawara Tue, 30 Mar 2010 16:55:44 -0700 + +linux (2.6.34-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc2 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc2 + * [Config] update port configs following rebase to v2.6.34-rc2 + * [Config] update configs following rebase to v2.6.34-rc2 + + [ Upstream changes ] + + * rebased to v2.6.34-rc2 + + -- Leann Ogasawara Wed, 24 Mar 2010 23:00:39 -0700 + +linux (2.6.33-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * ubuntu: dm-raid4-5 -- update to compile with 2.6.33 + * ubuntu: lirc -- drop explicit include of linux/autoconf.h + * ubuntu: lirc -- pass kfifo to kfifo_alloc and move spinlock + * ubuntu: lirc -- rename kfifo_put and kfifo_get + * ubuntu: iscsitarget -- rename daddr inet_sock field + * rebased to v2.6.33 + * [Config] update configs following rebase to v2.6.33 + * [Config] update ports configs following rebase to v2.6.33 + + [ Upstream changes ] + + * rebased to v2.6.33 + + -- Leann Ogasawara Tue, 23 Mar 2010 03:55:46 -0700 + +linux (2.6.33-0.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 17 Mar 2010 07:48:56 -0700 + +linux (2.6.32-16.25) lucid; urgency=low + + [ Andy Whitcroft ] + + * linux-tools -- move to Suggests: with explicit seeding + - LP: #534635 + + [ Tim Gardner ] + + * [Config] CONFIG_HID=m + + [ Upstream Kernel Changes ] + + * (pre-stable) sched: Fix SMT scheduler regression in + find_busiest_queue() + * KVM: introduce kvm_vcpu_on_spin + * KVM: VMX: Add support for Pause-Loop Exiting + + -- Andy Whitcroft Tue, 09 Mar 2010 14:13:51 +0000 + +linux (2.6.32-16.24) lucid; urgency=low + + [ Andy Whitcroft ] + + * armel -- perf userspace does not support arm + * ia64 -- libelf-dev/binutils-dev to not provide necessary libraries + + -- Andy Whitcroft Sat, 06 Mar 2010 11:42:12 +0000 + +linux (2.6.32-16.23) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: PM report driver and device suspend/resume times -- move config + * update to standards version 3.8.4.0 + * printenv -- expose all of the package selectors + * source package -- cleanup source content control + * doc package -- ensure we do build package content on buildd + * lintian -- correct the address in the debian/copyright + * lintian -- update debhelper package version dependancy + * lintian -- fix ghostscript dependancy + * lintian -- add required misc:Depends + * lintian -- move our debhelper compat level to debian/compat + * perf -- build the kernel carried tools + * perf -- add linux-tools carrying the version switches and manuals + * SAUCE: fix up Kconfig for staging drivers + * [Config] enable NOUVEAU etc following drm backport + * update DRM to mainline v2.6.33 + * [Config] Remove AppArmor config options that no longer exist (ports) + * [Config] updateportsconfigs following drm update + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-03-04 + * SAUCE: AppArmor: Reintroduce AppArmor 2.4 compatibility + * SAUCE: AppArmor: replace strim with strstrip for 2.6.32 kernels + * [Config] Remove AppArmor config options that no longer exist + + [ Manoj Iyer ] + + * ubuntu: rtl8192se -- version 2010-0115,0014 + - LP: #530275 + * [Config] added CONFIG_RTL8192SE module. + - LP: #530275 + + [ Tim Gardner ] + + * [Config] Added vmw_pvscsi to d-i/scsi-modules + - LP: #531017 + * [Upstream] netfilter: xt_recent: Add an entry reaper + + [ Upstream Kernel Changes ] + + * Revert "KVM: x86 emulator: Check CPL level during privilege instruction + emulation" + * Revert "KVM: x86 emulator: Fix popf emulation" + * Revert "KVM: x86 emulator: Check IOPL level during io instruction + emulation" + * Revert "KVM: x86 emulator: Add Virtual-8086 mode of emulation" + * Revert "KVM: fix memory access during x86 emulation." + * Add vlan (8021.Q) module package for d-i. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + * [Upstream] docbook: need xmldoclinks for all doc types + * x86: set_personality_ia32() misses force_personality32 + * lib: Introduce generic list_sort function + * drm/nv50: Implement ctxprog/state generation. + * drm/nv50: Remove redundant/incorrect ctxvals initialisation. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + + -- Andy Whitcroft Fri, 05 Mar 2010 15:40:38 +0000 + +linux (2.6.32-15.22) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT" + * Revert "SAUCE: PM report driver and device suspend/resume times." + * [Config] set CONFIG_SR_REPORT_TIME_LIMIT + + [ Manoj Iyer ] + + * SAUCE: PM report driver and device suspend/resume times. + + -- Andy Whitcroft Tue, 02 Mar 2010 01:35:37 +0000 + +linux (2.6.32-15.21) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/i915: Increase fb alignment to 64k" + * Revert "[Config] lenovo-sl-laptop -- enable" + * Revert "ubuntu: lenovo-sl-laptop -- git tip (b19a08f81f)" + * armel -- cramfs module will no longer be built + * d-i -- make all modules optional + * rename the debug packages to match archive standard + - LP: #527837 + * lenovo-sl-laptop is no longer built + + [ Colin Ian King ] + + * Disable 4MB page tables for Atom, work around errata AAE44 + - LP: #523112 + + [ Colin Watson ] + + * ubuntu: dm-raid4-5: Depend on XOR_BLOCKS + * ubuntu: fsam7400: Depend on CHECK_SIGNATURE + + [ Jesse Barnes ] + + * SAUCE: drm/i915: don't change DRM configuration when releasing load + detect pipe + - LP: #488328 + + [ Loïc Minier ] + + * [Config] armel Update versatile initrd configs + - LP: #524893 + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + [ Manoj Iyer ] + + * [Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT + + [ Mario Limonciello ] + + * SAUCE: v3 - Add Dell Business Class Netbook LED driver + + [ Rafael J. Wysocki ] + + * SAUCE: PM report driver and device suspend/resume times. + + [ Surbhi Palande ] + + * Revert "[Upstream] e1000e: enhance frame fragment detection" + - CVE-2009-4538 + * Revert "[Upstream] e1000: enhance frame fragment detection" + - CVE-2009-4536 + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_LEDS_DELL_NETBOOKS=m + * SAUCE: (pre-stable) netfilter: xt_recent: fix buffer overflow + * SAUCE: (pre-stable) netfilter: xt_recent: fix false match + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) eCryptfs: Add getattr function" + * Fix potential crash with sys_move_pages + * futex_lock_pi() key refcnt fix + * futex: Handle user space corruption gracefully + * futex: Handle futex value corruption gracefully + * Fix race in tty_fasync() properly + * hwmon: (w83781d) Request I/O ports individually for probing + * hwmon: (lm78) Request I/O ports individually for probing + * hwmon: (adt7462) Wrong ADT7462_VOLT_COUNT + * ALSA: ctxfi - fix PTP address initialization + * drm/i915: disable hotplug detect before Ironlake CRT detect + * drm/i915: enable self-refresh on 965 + * drm/i915: Disable SR when more than one pipe is enabled + * drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup. + * drm/i915: Add HP nx9020/SamsungSX20S to ACPI LID quirk list + * drm/i915: Fix the incorrect DMI string for Samsung SX20S laptop + * drm/i915: Add MALATA PC-81005 to ACPI LID quirk list + * usb: r8a66597-hcd: Flush the D-cache for the pipe-in transfer buffers. + * i2c-tiny-usb: Fix on big-endian systems + * drm/i915: handle FBC and self-refresh better + * drm/i915: Increase fb alignment to 64k + * drm/i915: Update write_domains on active list after flush. + * regulator: Fix display of null constraints for regulators + * ALSA: hda-intel: Avoid divide by zero crash + * CPUFREQ: Fix use after free of struct powernow_k8_data + * freeze_bdev: don't deactivate successfully frozen MS_RDONLY sb + * cciss: Make cciss_seq_show handle holes in the h->drv[] array + * ioat: fix infinite timeout checking in ioat2_quiesce + * resource: add helpers for fetching rlimits + * fs/exec.c: restrict initial stack space expansion to rlimit + * cifs: fix length calculation for converted unicode readdir names + * NFS: Fix a reference leak in nfs_wb_cancel_page() + * NFS: Try to commit unstable writes in nfs_release_page() + * NFSv4: Don't allow posix locking against servers that don't support it + * NFSv4: Ensure that the NFSv4 locking can recover from stateid errors + * NFS: Fix an Oops when truncating a file + * NFS: Fix a umount race + * NFS: Fix a bug in nfs_fscache_release_page() + * NFS: Fix the mapping of the NFSERR_SERVERFAULT error + * md: fix 'degraded' calculation when starting a reshape. + * V4L/DVB: dvb-core: fix initialization of feeds list in demux filter + * Export the symbol of getboottime and mmonotonic_to_bootbased + * kvmclock: count total_sleep_time when updating guest clock + * KVM: PIT: control word is write-only + * tpm_infineon: fix suspend/resume handler for pnp_driver + * amd64_edac: Do not falsely trigger kerneloops + * netfilter: nf_conntrack: fix memory corruption with multiple namespaces + * netfilter: nf_conntrack: per netns nf_conntrack_cachep + * netfilter: nf_conntrack: restrict runtime expect hashsize modifications + * netfilter: xtables: compat out of scope fix + * netfilter: nf_conntrack: fix hash resizing with namespaces + * drm/i915: remove full registers dump debug + * drm/i915: add i915_lp_ring_sync helper + * drm/i915: Don't wait interruptible for possible plane buffer flush + * dasd: remove strings from s390dbf + * crypto: padlock-sha - Add import/export support + * wmi: Free the allocated acpi objects through wmi_get_event_data + * dell-wmi, hp-wmi, msi-wmi: check wmi_get_event_data() return value + * /dev/mem: introduce size_inside_page() + * devmem: check vmalloc address on kmem read/write + * devmem: fix kmem write bug on memory holes + * SCSI: mptfusion : mptscsih_abort return value should be SUCCESS instead + of value 0. + * sh: Couple kernel and user write page perm bits for CONFIG_X2TLB + * ALSA: hda - use WARN_ON_ONCE() for zero-division detection + * dst: call cond_resched() in dst_gc_task() + * ALSA: hda - Improved MacBook (Pro) 5,1 / 5,2 support + * befs: fix leak + * rtc-fm3130: add missing braces + * Call flush_dcache_page after PIO data transfers in libata-sff.c + * ahci: add Acer G725 to broken suspend list + * pktgen: Fix freezing problem + * x86/amd-iommu: Fix IOMMU-API initialization for iommu=pt + * x86/amd-iommu: Fix deassignment of a device from the pt_domain + * x86: Re-get cfg_new in case reuse/move irq_desc + * Staging: fix rtl8187se compilation errors with mac80211 + * ALSA: usb-audio - Avoid Oops after disconnect + * serial: 8250: add serial transmitter fully empty test + * sysfs: sysfs_sd_setattr set iattrs unconditionally + * class: Free the class private data in class_release + * USB: usbfs: only copy the actual data received + * USB: usbfs: properly clean up the as structure on error paths + * rtl8187: Add new device ID + * ACPI: Add NULL pointer check in acpi_bus_start + * ACPI: fix High cpu temperature with 2.6.32 + * drm/radeon/kms: use udelay for short delays + * NFS: Too many GETATTR and ACCESS calls after direct I/O + * eCryptfs: Add getattr function + * b43: Fix throughput regression + * ath9k: Fix sequence numbers for PAE frames + * mac80211: Fix probe request filtering in IBSS mode + * iwlwifi: Fix to set correct ht configuration + * dm stripe: avoid divide by zero with invalid stripe count + * dm log: userspace fix overhead_size calcuations + * Linux 2.6.32.9 + * sfc: Fix SFE4002 initialisation + * sfc: Fix sign of efx_mcdi_poll_reboot() error in efx_mcdi_poll() + * sfc: SFE4002/SFN4112F: Widen temperature and voltage tolerances + * (pre-stable) HID: handle joysticks with large number of buttons + - LP: #492056 + * (pre-stable) HID: extend mask for BUTTON usage page + - LP: #492056 + * PM: Measure device suspend and resume times + * e1000: enhance frame fragment detection + - CVE-2009-4536 + * e1000e: enhance frame fragment detection + - CVE-2009-4538 + * KVM: fix memory access during x86 emulation. + - CVE-2010-0306 + * KVM: x86 emulator: Add Virtual-8086 mode of emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check IOPL level during io instruction emulation + - CVE-2010-0306 + * KVM: x86 emulator: Fix popf emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check CPL level during privilege instruction + emulation + - CVE-2010-0306 + * Input: wacom - ensure the device is initialized properly upon resume + * Input: wacom - add defines for packet lengths of various devices + * Input: wacom - add support for new LCD tablets + - LP: #516777 + + -- Andy Whitcroft Mon, 01 Mar 2010 22:56:28 +0000 + +linux (2.6.32-14.20) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebuild following the GCC update to match compiler for out of tree modules + * Revert "[Config] drbd -- enable" + * Revert "ubuntu: drbd -- version 8.3.1" + * SAUCE: khubd -- switch USB product/manufacturer/serial handling to RCU + - LP: #510937 + + -- Andy Whitcroft Fri, 19 Feb 2010 18:47:18 +0000 + +linux (2.6.32-14.19) lucid; urgency=low + + [ Andy Whitcroft ] + + * ensure we build the source package contents when enabled + - LP: #522308 + * [Config] enable CONFIG_X86_MCE_XEON75XX + * SAUCE: AppArmor -- add linux/kref.h for struct kref + * [Config] enable CONFIG_HID_ORTEK + * enable udeb generation for arm versatile flavour + - LP: #522515 + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-02-18 + - LP: #439560, #496110, #507069 + + [ Johnathon Harris ] + + * SAUCE: HID: add support for Ortek WKB-2000 + - LP: #405390 + + [ Upstream Kernel Changes ] + + * tpm_tis: TPM_STS_DATA_EXPECT workaround + - LP: #490487 + * x86, mce: Xeon75xx specific interface to get corrected memory error + information + * x86, mce: Rename cpu_specific_poll to mce_cpu_specific_poll + * x86, mce: Make xeon75xx memory driver dependent on PCI + * drm/edid: Unify detailed block parsing between base and extension + blocks + - LP: #500999 + * (pre-stable) eCryptfs: Add getattr function + - LP: #390833 + + -- Andy Whitcroft Thu, 18 Feb 2010 19:22:02 +0000 + +linux (2.6.32-13.18) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "enforcer -- make the enforcement configuration common" + * Revert "(pre-stable) Input: ALPS - add interleaved protocol support + (Dell E6x00 series)" + * Revert "(pre-stable) driver-core: fix devtmpfs crash on s390" + * Revert "(pre-stable) Driver-Core: devtmpfs - set root directory mode to + 0755" + * Revert "SAUCE: Adds support for COMPAL JHL90 webcam" + * Revert "SAUCE: fix kernel oops in VirtualBox during paravirt patching" + * Revert "SAUCE: make fc transport removal of target configurable" + * enforcer -- make the enforcement configuration common + * getabis -- add preempt flavour to the list + * [Config] enforce DEVTMPFS options + * [Config] armel -- cleanup to-be builtin modules + * [Config] cleanup ports configs + * [Config] enable CRYPTO_GHASH_CLMUL_NI_INTEL + - LP: #485536 + * add printdebian target to find branch target + * distclean -- do not remove debian.env + * [Config] generic-pae switch to M586TSC + - LP: #519448 + * git-ubuntu-log -- commonise duplicated log handling + * git-ubuntu-log -- tighten up Bug: NNNN matching + * git-ubuntu-log -- sort the bug numbers + + [ Chris Wilson ] + + * (pre-stable) drm/i915: Increase fb alignment to 64k + - LP: #404064 + + [ Eric Miao ] + + * arm -- enable ubuntu/ directory + + [ Huang Ying ] + + * SAUCE: crypto: ghash - Add PCLMULQDQ accelerated implementation + * SAUCE: crypto: ghash-intel - Fix building failure on x86_32 + + [ Loïc Minier ] + + * [Config] cleanup preempt configuration + * [Config] versatile: Fix video output + - LP: #517594 + * [Config] armel DEFAULT_MMAP_MIN_ADDR=32768 + * [Config] Large update to armel/versatile + * [Config] versatile: Add RTC support + * [Config] armel: Enable NEON + * [Config] versatile: Builtin MMC support + * [Config] versatile Builtin SCSI controller + * [Config] armel Disable dma_cache_sync callers + * [Config] armel Disable asm/time.h users + * [Config] armel Disable out of range udelay() + * [Config] armel Disable flush_cache_range() users + * [Config] armel -- Enable ubuntu/ drivers + + [ Steve Conklin ] + + * SAUCE: drm/i915: Add display hotplug event on Ironlake + * SAUCE: drm/i915: Add ACPI OpRegion support for Ironlake + + [ Upstream Kernel Changes ] + + * Revert "[Upstream]: oprofile/x86: add Xeon 7500 series support" + * Revert "Revert "[Bluetooth] Eliminate checks for impossible conditions + in IRQ handler"" + * clockevent: Don't remove broadcast device when cpu is dead + * clockevents: Add missing include to pacify sparse + * ACPI: don't cond_resched if irq is disabled + * be2net: Add support for next generation of BladeEngine device. + * be2net: Add the new PCI IDs to PCI_DEVICE_TABLE. + * mpt2sas: New device SAS2208 support is added + * ar9170: Add support for D-Link DWA 160 A2 + * powerpc/fsl: Add PCI device ids for new QoirQ chips + * davinci: dm646x: Add support for 3.x silicon revision + * Input: ALPS - add interleaved protocol support (Dell E6x00 series) + * Driver-Core: devtmpfs - set root directory mode to 0755 + * driver-core: fix devtmpfs crash on s390 + * vfs: get_sb_single() - do not pass options twice + * ALSA: hda - Add PCI IDs for Nvidia G2xx-series + * V4L/DVB (13569): smsusb: add autodetection support for five additional + Hauppauge USB IDs + * USB: mos7840: add device IDs for B&B electronics devices + * USB: ftdi_sio: add USB device ID's for B&B Electronics line + * V4L/DVB (13168): Add support for Asus Europa Hybrid DVB-T card (SAA7134 + SubVendor ID: 0x1043 Device ID: 0x4847) + * iTCO_wdt: Add support for Intel Ibex Peak + * atl1c:use common_task instead of reset_task and link_chg_task + * atl1e:disable NETIF_F_TSO6 for hardware limit + * V4L/DVB (13680a): DocBook/media: copy images after building HTML + * V4L/DVB (13680b): DocBook/media: create links for included sources + * netfilter: xtables: fix conntrack match v1 ipt-save output + * partitions: read whole sector with EFI GPT header + * partitions: use sector size for EFI GPT + * ALSA: ice1724 - Patch for suspend/resume for ESI Juli@ + * sched: Fix isolcpus boot option + * sched: Fix missing sched tunable recalculation on cpu add/remove + * nohz: Prevent clocksource wrapping during idle + * nfsd: Fix sort_pacl in fs/nfsd/nf4acl.c to actually sort groups + * timers, init: Limit the number of per cpu calibration bootup messages + * PCI: Always set prefetchable base/limit upper32 registers + * iscsi class: modify handling of replacement timeout + * NFS: Revert default r/wsize behavior + * HID: fixup quirk for NCR devices + * scsi_devinfo: update Hitachi entries (v2) + * scsi_dh: create sysfs file, dh_state for all SCSI disk devices + * scsi_transport_fc: remove invalid BUG_ON + * lpfc: fix hang on SGI ia64 platform + * libfc: fix typo in retry check on received PRLI + * libfc: fix ddp in fc_fcp for 0 xid + * fcoe: remove redundant checking of netdev->netdev_ops + * libfc: Fix wrong scsi return status under FC_DATA_UNDRUN + * libfc: lport: fix minor documentation errors + * libfc: don't WARN_ON in lport_timeout for RESET state + * fcoe: initialize return value in fcoe_destroy + * libfc: Fix frags in frame exceeding SKB_MAX_FRAGS in fc_fcp_send_data + * libfc: fix memory corruption caused by double frees and bad error + handling + * libfc: fix free of fc_rport_priv with timer pending + * libfc: remote port gets stuck in restart state without really + restarting + * fcoe, libfc: fix an libfc issue with queue ramp down in libfc + * fcoe: Fix checking san mac address + * fcoe: Fix getting san mac for VLAN interface + * qlge: Remove explicit setting of PCI Dev CTL reg. + * qlge: Set PCIE max read request size. + * qlge: Don't fail open when port is not initialized. + * qlge: Add handler for DCBX firmware event. + * qlge: Bonding fix for mode 6. + * PCI: AER: fix aer inject result in kernel oops + * DMI: allow omitting ident strings in DMI tables + * Input: i8042 - remove identification strings from DMI tables + * Input: i8042 - add Gigabyte M1022M to the noloop list + * Input: i8042 - add Dritek quirk for Acer Aspire 5610. + * ALSA: hda - select IbexPeak handler for Calpella + * ALSA: hda - Fix quirk for Maxdata obook4-1 + * ALSA: hda - Add missing Line-Out and PCM switches as slave + * iTCO_wdt.c - cleanup chipset documentation + * iTCO_wdt: add PCI ID for the Intel EP80579 (Tolapai) SoC + * iTCO_wdt: Add Intel Cougar Point and PCH DeviceIDs + * ahci: disable SNotification capability for ich8 + * ata_piix: fix MWDMA handling on PIIX3 + * md: fix small irregularity with start_ro module parameter + * V4L/DVB (13826): uvcvideo: Fix controls blacklisting + * cio: fix double free in case of probe failure + * cio: dont panic in non-fatal conditions + * netiucv: displayed TX bytes value much too high + * ipc ns: fix memory leak (idr) + * ALSA: hda - Fix HP T5735 automute + * hwmon: (fschmd) Fix a memleak on multiple opens of /dev/watchdog + * UBI: fix memory leak in update path + * UBI: initialise update marker + * ASoC: fix a memory-leak in wm8903 + * mac80211: check that ieee80211_set_power_mgmt only handles STA + interfaces. + * cfg80211: fix channel setting for wext + * KVM: S390: fix potential array overrun in intercept handling + * KVM: only allow one gsi per fd + * KVM: Fix race between APIC TMR and IRR + * KVM: MMU: bail out pagewalk on kvm_read_guest error + * KVM: x86: Fix host_mapping_level() + * KVM: x86: Fix probable memory leak of vcpu->arch.mce_banks + * KVM: x86: Fix leak of free lapic date in kvm_arch_vcpu_init() + * KVM: fix lock imbalance in kvm_*_irq_source_id() + * KVM: only clear irq_source_id if irqchip is present + * IPoIB: Clear ipoib_neigh.dgid in ipoib_neigh_alloc() + * x86: Reenable TSC sync check at boot, even with NONSTOP_TSC + * ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C + - LP: #516325 + * iwlwifi: Fix throughput stall issue in HT mode for 5000 + * fnctl: f_modown should call write_lock_irqsave/restore + * x86, msr/cpuid: Pass the number of minors when unregistering MSR and + CPUID drivers. + * Linux 2.6.32.7 + * scsi_lib: Fix bug in completion of bidi commands + * mptsas: Fix issue with chain pools allocation on katmai + * mm: add new 'read_cache_page_gfp()' helper function + * drm/i915: Selectively enable self-reclaim + * firewire: ohci: fix crashes with TSB43AB23 on 64bit systems + * S390: fix single stepped svcs with TRACE_IRQFLAGS=y + * x86: Set hotpluggable nodes in nodes_possible_map + * x86: Remove "x86 CPU features in debugfs" (CONFIG_X86_CPU_DEBUG) + * libata: retry FS IOs even if it has failed with AC_ERR_INVALID + * zcrypt: Do not remove coprocessor for error 8/72 + * dasd: fix possible NULL pointer errors + * ACPI: Add a generic API for _OSC -v2 + * ACPI: Add platform-wide _OSC support. + * ACPI: fix OSC regression that caused aer and pciehp not to load + * ACPI: Advertise to BIOS in _OSC: _OST on _PPC changes + * UBI: fix volume creation input checking + * e1000/e1000e: don't use small hardware rx buffers + * drm/i915: Reload hangcheck timer too for Ironlake + * Fix a leak in affs_fill_super() + * Fix failure exits in bfs_fill_super() + * fix oops in fs/9p late mount failure + * fix leak in romfs_fill_super() + * Fix remount races with symlink handling in affs + * fix affs parse_options() + * Fix failure exit in ipathfs + * mm: fix migratetype bug which slowed swapping + * FDPIC: Respect PT_GNU_STACK exec protection markings when creating + NOMMU stack + * Split 'flush_old_exec' into two functions + * sparc: TIF_ABI_PENDING bit removal + * x86: get rid of the insane TIF_ABI_PENDING bit + * Input: winbond-cir - remove dmesg spam + * x86: Disable HPET MSI on ATI SB700/SB800 + * iwlwifi: set default aggregation frame count limit to 31 + * drm/i915: only enable hotplug for detected outputs + * firewire: core: add_descriptor size check + * SECURITY: selinux, fix update_rlimit_cpu parameter + * regulator: Specify REGULATOR_CHANGE_STATUS for WM835x LED constraints + * x86: Add Dell OptiPlex 760 reboot quirk + - LP: #488319 + * x86: Add quirk for Intel DG45FC board to avoid low memory corruption + * x86/amd-iommu: Fix possible integer overflow + * clocksource: fix compilation if no GENERIC_TIME + * tcp: update the netstamp_needed counter when cloning sockets + * sky2: Fix oops in sky2_xmit_frame() after TX timeout + * net: restore ip source validation + * af_packet: Don't use skb after dev_queue_xmit() + * ax25: netrom: rose: Fix timer oopses + * KVM: allow userspace to adjust kvmclock offset + * oprofile/x86: add Xeon 7500 series support + * oprofile/x86: fix crash when profiling more than 28 events + * libata: retry link resume if necessary + * mm: percpu-vmap fix RCU list walking + * mm: purge fragmented percpu vmap blocks + * block: fix bio_add_page for non trivial merge_bvec_fn case + * Fix 'flush_old_exec()/setup_new_exec()' split + * random: drop weird m_time/a_time manipulation + * random: Remove unused inode variable + * block: fix bugs in bio-integrity mempool usage + * usb: r8a66597-hdc disable interrupts fix + * connector: Delete buggy notification code. + * be2net: Bug fix to support newer generation of BE ASIC + * be2net: Fix memset() arg ordering. + * mm: flush dcache before writing into page to avoid alias + * mac80211: fix NULL pointer dereference when ftrace is enabled + * imxfb: correct location of callbacks in suspend and resume + * mx3fb: some debug and initialisation fixes + * starfire: clean up properly if firmware loading fails + * kernel/cred.c: use kmem_cache_free + * uartlite: fix crash when using as console + * pktcdvd: removing device does not remove its sysfs dir + * ath9k: fix eeprom INI values override for 2GHz-only cards + * ath9k: fix beacon slot/buffer leak + * powerpc: TIF_ABI_PENDING bit removal + * NET: fix oops at bootime in sysctl code + * Linux 2.6.32.8 + + -- Andy Whitcroft Wed, 10 Feb 2010 18:56:52 +0000 + +linux (2.6.32-12.17) lucid; urgency=low + + [ Andy Whitcroft ] + + * restore linux-image prefix -- master + * enforce -- we require SELINUX enabled -- master + * enforce -- ensure APPARMOR is our default LSM -- master + * make doc package completely optional -- master + * make source package completely optional -- master + * make linux-libc-dev completly optional -- master + * convert package disable to a deps list -- master + * allow common headers to switch from indep to arch -- master + * convert binary package disable to a deps list -- master + * add configuration option for a full source build tree -- master + * add support for uImage kernels in package control scripts + * getabis -- cleanup and parameterise repository list -- master + * getabis -- move configuration to etc/getabi -- master + * kernelconfig -- move configuration to etc -- master + * rules -- make debian/debian.env master for branch name + * set the current branch name -- master + * pull back common debian.master files into debian -- master + * enforcer -- make the enforcement configuration common + * insert-changes -- correctly link to debian/rules in DROOT + + [ Colin Watson ] + + * future-proof ddeb handling against buildd changes + + [ Eric Miao ] + + * SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} depend on + X86 + + [ Loïc Minier ] + + * Add modules.builtin.bin to prerm rm list + - LP: #516584 + + [ Tim Gardner ] + + * [Config] Implement the amd64 preempt flavour + + [ Upstream Kernel Changes ] + + * syslog: distinguish between /proc/kmsg and syscalls + - LP: #515623 + * sfc: Fix polling for slow MCDI operations + * sfc: Fix conditions for MDIO self-test + * sfc: QT202x: Remove unreliable MMD check at initialisation + * sfc: Add workspace for GMAC bug workaround to MCDI MAC_STATS buffer + * sfc: Use fixed-size buffers for MCDI NVRAM requests + + -- Andy Whitcroft Fri, 05 Feb 2010 07:09:31 +0000 + +linux (2.6.32-12.16) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: acpi battery -- delay first lookup of the battery until + first use" + * SAUCE: acpi battery -- move first lookup asynchronous + - LP: #507211 + * [Config] update configs to cleanup generic configs + * [Config] disable CONFIG_X86_CPU_DEBUG for amd64 + * [Config] enable USER_NS + - LP: #480739, #509808 + + [ Heiko Carstens ] + + * (pre-stable) driver-core: fix devtmpfs crash on s390 + - LP: #512370 + + [ John Johansen ] + + * [Config] for server and virtual flavours make CONFIG_SCSI_SYM53C8XX_2=y + - LP: #494565 + * [Config] VIRTIO=y for server/virtual flavours + - LP: #494565 + + [ Kay Sievers ] + + * (pre-stable) Driver-Core: devtmpfs - set root directory mode to 0755 + - LP: #512370 + + [ Kees Cook ] + + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + + [ Leann Ogasawara ] + + * [Upstream] e1000: enhance frame fragment detection + - CVE-2009-4536 + * [Upstream] e1000e: enhance frame fragment detection + - CVE-2009-4538 + + [ Sebastian Kapfer ] + + * (pre-stable) Input: ALPS - add interleaved protocol support (Dell E6x00 + series) + - LP: #296610 + + [ Upstream Kernel Changes ] + + * inotify: do not reuse watch descriptors + - LP: #485556 + * inotify: only warn once for inotify problems + * revert "drivers/video/s3c-fb.c: fix clock setting for Samsung SoC + Framebuffer" + * memcg: ensure list is empty at rmdir + * drm/i915: remove loop in Ironlake interrupt handler + * block: Fix incorrect reporting of partition alignment + * x86, mce: Thermal monitoring depends on APIC being enabled + * futexes: Remove rw parameter from get_futex_key() + * page allocator: update NR_FREE_PAGES only when necessary + * x86, apic: use physical mode for IBM summit platforms + * edac: i5000_edac critical fix panic out of bounds + * x86: SGI UV: Fix mapping of MMIO registers + * mfd: WM835x GPIO direction register is not locked + * mfd: Correct WM835x ISINK ramp time defines + * ALSA: hda - Fix missing capture mixer for ALC861/660 codecs + * V4L/DVB (13868): gspca - sn9c20x: Fix test of unsigned. + * reiserfs: truncate blocks not used by a write + * HID: add device IDs for new model of Apple Wireless Keyboard + * PCI/cardbus: Add a fixup hook and fix powerpc + * Input: pmouse - move Sentelic probe down the list + * asus-laptop: add Lenovo SL hotkey support + * sched: Fix cpu_clock() in NMIs, on !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK + * sparc64: Fix NMI programming when perf events are active. + * sparc64: Fix Niagara2 perf event handling. + * i2c: Do not use device name after device_unregister + * i2c/pca: Don't use *_interruptible + * serial/8250_pnp: add a new Fujitsu Wacom Tablet PC device + * sched: Fix task priority bug + * vfs: Fix vmtruncate() regression + * Linux 2.6.32.5 + * x86, msr/cpuid: Register enough minors for the MSR and CPUID drivers + * V4L/DVB (13900): gspca - sunplus: Fix bridge exchanges. + * Staging: asus_oled: fix oops in 2.6.32.2 + * Staging: hv: fix smp problems in the hyperv core code + * tty: fix race in tty_fasync + * ecryptfs: use after free + * ecryptfs: initialize private persistent file before dereferencing + pointer + * nozomi: quick fix for the close/close bug + * serial: 8250_pnp: use wildcard for serial Wacom tablets + * usb: serial: fix memory leak in generic driver + * USB: fix bitmask merge error + * USB: Don't use GFP_KERNEL while we cannot reset a storage device + * USB: EHCI: fix handling of unusual interrupt intervals + * USB: EHCI & UHCI: fix race between root-hub suspend and port resume + * USB: add missing delay during remote wakeup + * USB: add speed values for USB 3.0 and wireless controllers + * ACPI: EC: Accelerate query execution + * ACPI: EC: Add wait for irq storm + * SCSI: enclosure: fix oops while iterating enclosure_status array + * drm/i915: Read the response after issuing DDC bus switch command + * drm/i915: try another possible DDC bus for the SDVO device with + multiple outputs + * block: bdev_stack_limits wrapper + * DM: Fix device mapper topology stacking + * x86/PCI/PAT: return EINVAL for pci mmap WC request for !pat_enabled + * USB: fix usbstorage for 2770:915d delivers no FAT + * vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREE + * perf timechart: Use tid not pid for COMM change + * perf events: Dont report side-band events on each cpu for + per-task-per-cpu events + * perf: Honour event state for aux stream data + * Linux 2.6.32.6 + + -- Andy Whitcroft Wed, 27 Jan 2010 16:40:23 +0000 + +linux (2.6.32-11.15) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/radeon/kms: fix crtc vblank update for r600" + * Revert "(pre-stable) sched: Fix balance vs hotplug race" + * Revert "[Upstream] acerhdf: Limit modalias matching to supported + boards" + * Revert "[Upstream] mmc: prevent dangling block device from accessing + stale queues" + * Revert "SAUCE: Fix nx_enable reporting" + * Revert "SAUCE: [x86] fix report of cs-limit nx-emulation" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: i915 -- disable powersave by default + - LP: #492392 + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Tim Gardner ] + + * [Upstream] b43: Declare all possible firmware files. + - LP: #488636 + * [Config] updateconfigs after adding pvscsi + - LP: #497156 + * [Config] CONFIG_BT=m + + [ Upstream Kernel Changes ] + + * Revert "x86: Side-step lguest problem by only building cmpxchg8b_emu + for pre-Pentium" + * SCSI: ipr: fix EEH recovery + * SCSI: qla2xxx: dpc thread can execute before scsi host has been added + * SCSI: st: fix mdata->page_order handling + * SCSI: fc class: fix fc_transport_init error handling + * sched: Fix task_hot() test order + * x86, cpuid: Add "volatile" to asm in native_cpuid() + * sched: Select_task_rq_fair() must honour SD_LOAD_BALANCE + * clockevents: Prevent clockevent_devices list corruption on cpu hotplug + * pata_hpt3x2n: fix clock turnaround + * pata_cmd64x: fix overclocking of UDMA0-2 modes + * ASoC: wm8974: fix a wrong bit definition + * sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer + * ALSA: hda - Fix missing capsrc_nids for ALC88x + * acerhdf: limit modalias matching to supported + - LP: #435958 + * ACPI: EC: Fix MSI DMI detection + * ACPI: Use the return result of ACPI lid notifier chain correctly + * powerpc: Handle VSX alignment faults correctly in little-endian mode + * ASoC: Do not write to invalid registers on the wm9712. + * drm/radeon: fix build on 64-bit with some compilers. + * USB: emi62: fix crash when trying to load EMI 6|2 firmware + * USB: option: support hi speed for modem Haier CE100 + * USB: Fix a bug on appledisplay.c regarding signedness + * USB: musb: gadget_ep0: avoid SetupEnd interrupt + * Bluetooth: Prevent ill-timed autosuspend in USB driver + * USB: rename usb_configure_device + * USB: fix bugs in usb_(de)authorize_device + * drivers/net/usb: Correct code taking the size of a pointer + * x86: SGI UV: Fix writes to led registers on remote uv hubs + * md: Fix unfortunate interaction with evms + * dma: at_hdmac: correct incompatible type for argument 1 of + 'spin_lock_bh' + * dma-debug: Do not add notifier when dma debugging is disabled. + * dma-debug: Fix bug causing build warning + * cifs: NULL out tcon, pSesInfo, and srvTcp pointers when chasing DFS + referrals + * x86/amd-iommu: Fix initialization failure panic + * ioat3: fix p-disabled q-continuation + * ioat2,3: put channel hardware in known state at init + * KVM: MMU: remove prefault from invlpg handler + * KVM: LAPIC: make sure IRR bitmap is scanned after vm load + * Libertas: fix buffer overflow in lbs_get_essid() + * iwmc3200wifi: fix array out-of-boundary access + * mac80211: fix propagation of failed hardware reconfigurations + * mac80211: fix WMM AP settings application + * mac80211: Fix IBSS merge + * cfg80211: fix race between deauth and assoc response + * ath5k: fix SWI calibration interrupt storm + * ath9k: wake hardware for interface IBSS/AP/Mesh removal + * ath9k: Fix TX queue draining + * ath9k: fix missed error codes in the tx status check + * ath9k: wake hardware during AMPDU TX actions + * ath9k: fix suspend by waking device prior to stop + * ath9k_hw: Fix possible OOB array indexing in gen_timer_index[] on + 64-bit + * ath9k_hw: Fix AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_BB and its shift value + in 0x4054 + * iwl3945: disable power save + * iwl3945: fix panic in iwl3945 driver + * iwlwifi: fix EEPROM/OTP reading endian annotations and a bug + * iwlwifi: fix more eeprom endian bugs + * iwlwifi: fix 40MHz operation setting on cards that do not allow it + * mac80211: fix race with suspend and dynamic_ps_disable_work + * NOMMU: Optimise away the {dac_,}mmap_min_addr tests + * 'sysctl_max_map_count' should be non-negative + * kernel/sysctl.c: fix the incomplete part of + sysctl_max_map_count-should-be-non-negative.patch + * V4L/DVB (13596): ov511.c typo: lock => unlock + * x86/ptrace: make genregs[32]_get/set more robust + * memcg: avoid oom-killing innocent task in case of use_hierarchy + * e100: Fix broken cbs accounting due to missing memset. + * ipv6: reassembly: use seperate reassembly queues for conntrack and + local delivery + * netfilter: fix crashes in bridge netfilter caused by fragment jumps + * hwmon: (sht15) Off-by-one error in array index + incorrect constants + * b43: avoid PPC fault during resume + * Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture + support + * sched: Fix balance vs hotplug race + * drm/radeon/kms: fix crtc vblank update for r600 + * drm: disable all the possible outputs/crtcs before entering KMS mode + * S390: dasd: support DIAG access for read-only devices + * xen: fix is_disconnected_device/exists_disconnected_device + * xen: improvement to wait_for_devices() + * xen: wait up to 5 minutes for device connetion + * orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled + * udf: Try harder when looking for VAT inode + * Add unlocked version of inode_add_bytes() function + * quota: decouple fs reserved space from quota reservation + * ext4: Convert to generic reserved quota's space management. + * ext4: fix sleep inside spinlock issue with quota and dealloc (#14739) + * x86, msr: Unify rdmsr_on_cpus/wrmsr_on_cpus + * cpumask: use modern cpumask style in drivers/edac/amd64_edac.c + * amd64_edac: unify MCGCTL ECC switching + * x86, msr: Add support for non-contiguous cpumasks + * x86, msr: msrs_alloc/free for CONFIG_SMP=n + * amd64_edac: fix driver instance freeing + * amd64_edac: make driver loading more robust + * amd64_edac: fix forcing module load/unload + * sched: Sched_rt_periodic_timer vs cpu hotplug + * ext4: Update documentation to correct the inode_readahead_blks option + name + * lguest: fix bug in setting guest GDT entry + * vmscan: do not evict inactive pages when skipping an active list scan + * ksm: fix mlockfreed to munlocked + * rt2x00: Disable powersaving for rt61pci and rt2800pci. + * generic_permission: MAY_OPEN is not write access + * Linux 2.6.32.3 + * untangle the do_mremap() mess + * fasync: split 'fasync_helper()' into separate add/remove functions + * ASoC: fix params_rate() macro use in several codecs + * modules: Skip empty sections when exporting section notes + * exofs: simple_write_end does not mark_inode_dirty + * nfsd: make sure data is on disk before calling ->fsync + * sunrpc: fix peername failed on closed listener + * SUNRPC: Fix up an error return value in + gss_import_sec_context_kerberos() + * SUNRPC: Fix the return value in gss_import_sec_context() + * sunrpc: on successful gss error pipe write, don't return error + * drm/i915: Update LVDS connector status when receiving ACPI LID event + * drm/i915: fix order of fence release wrt flushing + * drm/i915: Permit pinning whilst the device is 'suspended' + * drm: remove address mask param for drm_pci_alloc() + * drm/i915: Enable/disable the dithering for LVDS based on VBT setting + * drm/i915: Make the BPC in FDI rx/transcoder be consistent with that in + pipeconf on Ironlake + * drm/i915: Select the correct BPC for LVDS on Ironlake + * drm/i915: fix unused var + * rtc_cmos: convert shutdown to new pnp_driver->shutdown + * drivers/cpuidle/governors/menu.c: fix undefined reference to + `__udivdi3' + * cgroups: fix 2.6.32 regression causing BUG_ON() in cgroup_diput() + * lib/rational.c needs module.h + * dma-debug: allow DMA_BIDIRECTIONAL mappings to be synced with + DMA_FROM_DEVICE and + * kernel/signal.c: fix kernel information leak with print-fatal-signals=1 + * mmc_block: add dev_t initialization check + * mmc_block: fix probe error cleanup bug + * mmc_block: fix queue cleanup + * ALSA: hda - Fix ALC861-VD capture source mixer + * ALSA: ac97: Add Dell Dimension 2400 to Headphone/Line Jack Sense + blacklist + * ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2 + - LP: #498863 + * ASoC: Fix WM8350 DSP mode B configuration + * netfilter: ebtables: enforce CAP_NET_ADMIN + * netfilter: nf_ct_ftp: fix out of bounds read in update_nl_seq() + * hwmon: (coretemp) Fix TjMax for Atom N450/D410/D510 CPUs + * hwmon: (adt7462) Fix pin 28 monitoring + * quota: Fix dquot_transfer for filesystems different from ext4 + * xen: fix hang on suspend. + * iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr + * ath5k: Fix eeprom checksum check for custom sized eeproms + * cfg80211: fix syntax error on user regulatory hints + * iwl: off by one bug + * mac80211: add missing sanity checks for action frames + * drm/i915: remove render reclock support + * libertas: Remove carrier signaling from the scan code + * kernel/sysctl.c: fix stable merge error in NOMMU mmap_min_addr + * mac80211: fix skb buffering issue (and fixes to that) + * fix braindamage in audit_tree.c untag_chunk() + * fix more leaks in audit_tree.c tag_chunk() + * module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE=y + * ipv6: skb_dst() can be NULL in ipv6_hop_jumbo(). + * agp/intel-agp: Clear entire GTT on startup + * Linux 2.6.32.4 + * ethtool: Add reset operation + * gro: Name the GRO result enumeration type + * gro: Change all receive functions to return GRO result codes + * sfc: 10Xpress: Initialise pause advertising flags + * sfc: 10Xpress: Report support for pause frames + * sfc: Remove redundant header gmii.h + * sfc: Remove redundant hardware initialisation + * sfc: Rename Falcon-specific board code and types + * sfc: Remove boards.h, moving last remaining declaration to falcon.h + * sfc: Remove versioned bitfield macros + * sfc: Move RX data FIFO thresholds out of struct efx_nic_type + * sfc: Update hardware definitions for Siena + * sfc: Rename register I/O header and functions used by both Falcon and + Siena + * sfc: Eliminate indirect lookups of queue size constants + * sfc: Define DMA address mask explicitly in terms of descriptor field + width + * sfc: Move all TX DMA length limiting into tx.c + * sfc: Change order of device removal to reverse of probe order + * sfc: Remove declarations of nonexistent functions + * sfc: Move efx_xmit_done() declaration into correct stanza + * sfc: Move shared members of struct falcon_nic_data into struct efx_nic + * sfc: Maintain interrupt moderation values in ticks, not microseconds + * sfc: Removed kernel-doc for nonexistent member of efx_phy_operations + * sfc: Remove pointless abstraction of memory BAR number + * sfc: Remove incorrect assertion from efx_pci_remove_main() + * sfc: Remove unnecessary tests of efx->membase + * sfc: Move MTD probe after netdev registration and name allocation + * sfc: Remove unused code for non-autoneg speed/duplex switching + * sfc: Rename 'xfp' file and functions to reflect reality + * sfc: Really allow RX checksum offload to be disabled + * sfc: Feed GRO result into RX allocation policy and interrupt moderation + * sfc: Enable heuristic selection between page and skb RX buffers + * sfc: Remove pointless abstraction of memory BAR number (2) + * sfc: Remove redundant gotos from __efx_rx_packet() + * sfc: Remove ridiculously paranoid assertions + * sfc: Move assertions and buffer cleanup earlier in efx_rx_packet_lro() + * sfc: Record RX queue number on GRO path + * sfc: SFT9001: Reset LED configuration correctly after blinking + * sfc: Use a single blink implementation + * sfc: Rename efx_board::init_leds to init_phy and use for SFN4111T + * sfc: Make board information explicitly Falcon-specific + * sfc: Move definition of struct falcon_nic_data into falcon.h + * sfc: Move struct falcon_board into struct falcon_nic_data + * sfc: Move all I2C stuff into struct falcon_board + * sfc: Gather link state fields in struct efx_nic into new struct + efx_link_state + * sfc: Remove unnecessary casts to struct sk_buff * + * sfc: Remove redundant efx_xmit() function + * sfc: Combine high-level header files + * sfc: Log interrupt and reset type names, not numbers + * sfc: Fix descriptor cache sizes + * sfc: Treat all MAC registers as 128-bit + * sfc: Strengthen EFX_ASSERT_RESET_SERIALISED + * sfc: Comment corrections + * sfc: Remove unused constant + * sfc: Clean up struct falcon_board and struct falcon_board_data + * sfc: Fix bugs in RX queue flushing + * sfc: Remove unused function efx_flush_queues() + * sfc: Only switch Falcon MAC clocks as necessary + * sfc: Hold MAC lock for longer in efx_init_port() + * sfc: Split MAC stats DMA initiation and completion + * sfc: Move Falcon board/PHY/MAC monitoring code to falcon.c + * sfc: Simplify XMAC link polling + * sfc: Change MAC promiscuity and multicast hash at the same time + * sfc: Move inline comment into kernel-doc + * sfc: Do not set net_device::trans_start in self-test + * sfc: Simplify PHY polling + * sfc: QT202x: Reset before reading PHY id + * sfc: Replace MDIO spinlock with mutex + * sfc: Always start Falcon using the XMAC + * sfc: Limit some hardware workarounds to Falcon + * sfc: Remove EFX_WORKAROUND_9141 macro + * sfc: Remove another unused workaround macro + * sfc: Remove some redundant whitespace + * sfc: Decouple NIC revision number from Falcon PCI revision number + * sfc: Move descriptor cache base addresses to struct efx_nic_type + * sfc: Clean up RX event handling + * sfc: Remove redundant writes to INT_ADR_KER + * sfc: Remove duplicate hardware structure definitions + * sfc: Turn pause frame generation on and off at the MAC, not the RX FIFO + * sfc: Move Falcon NIC operations to efx_nic_type + * sfc: Refactor link configuration + * sfc: Generalise link state monitoring + * sfc: Add power-management and wake-on-LAN support + * sfc: Implement ethtool reset operation + * sfc: Add efx_nic_type operation for register self-test + * sfc: Add efx_nic_type operation for NVRAM self-test + * sfc: Add efx_nic_type operation for identity LED control + * sfc: Separate shared NIC code from Falcon-specific and rename + accordingly + * sfc: Fold falcon_probe_nic_variant() into falcon_probe_nic() + * sfc: Extend loopback mode enumeration + * sfc: Remove static PHY data and enumerations + * sfc: Extend MTD driver for use with new NICs + * sfc: Allow for additional checksum offload features + * sfc: Rename falcon.h to nic.h + * sfc: Move shared NIC code from falcon.c to new source file nic.c + * sfc: Add firmware protocol definitions (MCDI) + * sfc: Add support for SFC9000 family (1) + * sfc: Add support for SFC9000 family (2) + * sfc: Implement TSO for TCP/IPv6 + * sfc: Update version, copyright dates, authors + * drivers/net/sfc: Correct code taking the size of a pointer + * sfc: Move PHY software state initialisation from init() into probe() + * sfc: Include XGXS in XMAC link status check except in XGMII loopback + * sfc: Fix DMA mapping cleanup in case of an error in TSO + * sfc: QT2025C: Work around PHY bug + * sfc: QT2025C: Switch into self-configure mode when not in loopback + * sfc: QT2025C: Work around PHY firmware initialisation bug + * sfc: QT2025C: Add error message for suspected bad SFP+ cables + * sfc: Disable TX descriptor prefetch watchdog + * [SCSI] vmw_pvscsi: SCSI driver for VMware's virtual HBA. + - LP: #497156 + + -- Andy Whitcroft Tue, 19 Jan 2010 16:12:47 +0000 + +linux (2.6.32-10.14) lucid; urgency=low + + [ Alex Deucher ] + + * SAUCE: drm/radeon/kms: fix LVDS setup on r4xx + - LP: #493795 + + [ Andy Whitcroft ] + + * Revert "(pre-stable) acpi: Use the ARB_DISABLE for the CPU which model + id is less than 0x0f." + * config-check -- ensure the checks get run at build time + * config-check -- check the processed config during updateconfigs + * config-check -- CONFIG_SECCOMP may not be present + * TUN is now built in ignore + * SAUCE: acpi battery -- delay first lookup of the battery until first + use + * SAUCE: async_populate_rootfs: move rootfs init earlier + * ubuntu: AppArmor -- update to mainline 2010-01-06 + * SAUCE: move RLIMIT_CORE pipe dumper marker to 1 + - LP: #498525 + + [ Dave Airlie ] + + * (pre-stable) drm/radeon/kms: fix crtc vblank update for r600 + + [ Leann Ogasawara ] + + * Add asix to nic-usb-modules file + - LP: #499785 + + [ Peter Zijlstra ] + + * (pre-stable) sched: Fix balance vs hotplug race + + [ Tim Gardner ] + + * [Config] Enable CONFIG_FUNCTION_TRACER + - LP: #497989 + * [Config] Drop lpia from getabis + * [Config] Build in TUN/TAP driver + - LP: #499491 + * [Config] DH_COMPAT=5 + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) drm/i915: Avoid NULL dereference with + component_only tv_modes" + * Revert "(pre-stable) drm/i915: Fix sync to vblank when VGA output is + turned off" + * USB: usb-storage: fix bug in fill_inquiry + * USB: option: add pid for ZTE + * firewire: ohci: handle receive packets with a data length of zero + * rcu: Prepare for synchronization fixes: clean up for non-NO_HZ handling + of ->completed counter + * rcu: Fix synchronization for rcu_process_gp_end() uses of ->completed + counter + * rcu: Fix note_new_gpnum() uses of ->gpnum + * rcu: Remove inline from forward-referenced functions + * perf_event: Fix invalid type in ioctl definition + * perf_event: Initialize data.period in perf_swevent_hrtimer() + * perf: Don't free perf_mmap_data until work has been done + * PM / Runtime: Fix lockdep warning in __pm_runtime_set_status() + * sched: Check for an idle shared cache in select_task_rq_fair() + * sched: Fix affinity logic in select_task_rq_fair() + * sched: Rate-limit newidle + * sched: Fix and clean up rate-limit newidle code + * x86/amd-iommu: attach devices to pre-allocated domains early + * x86/amd-iommu: un__init iommu_setup_msi + * x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking + up the PCI tree + * x86: Fix iommu=nodac parameter handling + * x86: GART: pci-gart_64.c: Use correct length in strncmp + * x86: ASUS P4S800 reboot=bios quirk + - LP: #366682 + * x86, apic: Enable lapic nmi watchdog on AMD Family 11h + * ssb: Fix range check in sprom write + * ath5k: allow setting txpower to 0 + * ath5k: enable EEPROM checksum check + * hrtimer: Fix /proc/timer_list regression + * ALSA: hrtimer - Fix lock-up + * ALSA: hda - Terradici HDA controllers does not support 64-bit mode + * KVM: x86 emulator: limit instructions to 15 bytes + * KVM: s390: Fix prefix register checking in arch/s390/kvm/sigp.c + * KVM: s390: Make psw available on all exits, not just a subset + * KVM: fix irq_source_id size verification + * KVM: x86: include pvclock MSRs in msrs_to_save + * x86: Prevent GCC 4.4.x (pentium-mmx et al) function prologue wreckage + * x86: Use -maccumulate-outgoing-args for sane mcount prologues + * x86, mce: don't restart timer if disabled + * x86/mce: Set up timer unconditionally + * x86: SGI UV: Fix BAU initialization + * x86: Fix duplicated UV BAU interrupt vector + * x86: Add new Intel CPU cache size descriptors + * x86: Fix typo in Intel CPU cache size descriptor + * pata_hpt{37x|3x2n}: fix timing register masks (take 2) + * s390: clear high-order bits of registers after sam64 + * V4L/DVB: Fix test in copy_reg_bits() + * bsdacct: fix uid/gid misreporting + * UBI: flush wl before clearing update marker + * jbd2: don't wipe the journal on a failed journal checksum + * USB: xhci: Add correct email and files to MAINTAINERS entry. + * USB: musb_gadget_ep0: fix unhandled endpoint 0 IRQs, again + * USB: option.c: add support for D-Link DWM-162-U5 + * USB: usbtmc: repeat usb_bulk_msg until whole message is transfered + * USB: usb-storage: add BAD_SENSE flag + * USB: Close usb_find_interface race v3 + * pxa/em-x270: fix usb hub power up/reset sequence + * hfs: fix a potential buffer overflow + * SUNRPC: IS_ERR/PTR_ERR confusion + * NFS: Fix nfs_migrate_page() + * md/bitmap: protect against bitmap removal while being updated. + * futex: Take mmap_sem for get_user_pages in fault_in_user_writeable + * devpts_get_tty() should validate inode + * debugfs: fix create mutex racy fops and private data + * Driver core: fix race in dev_driver_string + * Serial: Do not read IIR in serial8250_start_tx when UART_BUG_TXEN + * mac80211: Fix bug in computing crc over dynamic IEs in beacon + * mac80211: Fixed bug in mesh portal paths + * mac80211: Revert 'Use correct sign for mesh active path refresh' + * mac80211: fix scan abort sanity checks + * wireless: correctly report signal value for IEEE80211_HW_SIGNAL_UNSPEC + * rtl8187: Fix wrong rfkill switch mask for some models + * x86: Fix bogus warning in apic_noop.apic_write() + * mm: hugetlb: fix hugepage memory leak in mincore() + * mm: hugetlb: fix hugepage memory leak in walk_page_range() + * powerpc/windfarm: Add detection for second cpu pump + * powerpc/therm_adt746x: Record pwm invert bit at module load time] + * powerpc: Fix usage of 64-bit instruction in 32-bit altivec code + * drm/radeon/kms: Add quirk for HIS X1300 board + * drm/radeon/kms: handle vblanks properly with dpms on + * drm/radeon/kms: fix legacy crtc2 dpms + * drm/radeon/kms: fix vram setup on rs600 + * drm/radeon/kms: rs6xx/rs740: clamp vram to aperture size + * drm/ttm: Fix build failure due to missing struct page + * drm/i915: Set the error code after failing to insert new offset into mm + ht. + * drm/i915: Add the missing clonemask for display port on Ironlake + * xen/xenbus: make DEVICE_ATTR()s static + * xen: re-register runstate area earlier on resume. + * xen: restore runstate_info even if !have_vcpu_info_placement + * xen: correctly restore pfn_to_mfn_list_list after resume + * xen: register timer interrupt with IRQF_TIMER + * xen: register runstate on secondary CPUs + * xen: don't call dpm_resume_noirq() with interrupts disabled. + * xen: register runstate info for boot CPU early + * xen: call clock resume notifier on all CPUs + * xen: improve error handling in do_suspend. + * xen: don't leak IRQs over suspend/resume. + * xen: use iret for return from 64b kernel to 32b usermode + * xen: explicitly create/destroy stop_machine workqueues outside + suspend/resume region. + * Xen balloon: fix totalram_pages counting. + * xen: try harder to balloon up under memory pressure. + * dm exception store: free tmp_store on persistent flag error + * dm snapshot: only take lock for statustype info not table + * dm crypt: move private iv fields to structs + * dm crypt: restructure essiv error path + * dm: avoid _hash_lock deadlock + * dm snapshot: cope with chunk size larger than origin + * dm crypt: separate essiv allocation from initialisation + * dm crypt: make wipe message also wipe essiv key + * slc90e66: fix UDMA handling + * tcp: Stalling connections: Fix timeout calculation routine + * ip_fragment: also adjust skb->truesize for packets not owned by a + socket + * b44 WOL setup: one-bit-off stack corruption kernel panic fix + * sparc64: Don't specify IRQF_SHARED for LDC interrupts. + * sparc64: Fix overly strict range type matching for PCI devices. + * sparc64: Fix stack debugging IRQ stack regression. + * sparc: Set UTS_MACHINE correctly. + * b43legacy: avoid PPC fault during resume + * tracing: Fix event format export + * ath9k: Fix TX hang poll routine + * ath9k: fix processing of TX PS null data frames + * ath9k: Fix maximum tx fifo settings for single stream devices + * ath9k: fix tx status reporting + * mac80211: Fix dynamic power save for scanning. + * drm/i915: Fix sync to vblank when VGA output is turned off + * memcg: fix memory.memsw.usage_in_bytes for root cgroup + * thinkpad-acpi: fix default brightness_mode for R50e/R51 + * thinkpad-acpi: preserve rfkill state across suspend/resume + * ipw2100: fix rebooting hang with driver loaded + * matroxfb: fix problems with display stability + * acerhdf: add new BIOS versions + * asus-laptop: change light sens default values. + * vmalloc: conditionalize build of pcpu_get_vm_areas() + * ACPI: Use the ARB_DISABLE for the CPU which model id is less than 0x0f. + * net: Fix userspace RTM_NEWLINK notifications. + * ext3: Fix data / filesystem corruption when write fails to copy data + * V4L/DVB (13116): gspca - ov519: Webcam 041e:4067 added. + * bcm63xx_enet: fix compilation failure after get_stats_count removal + * x86: Under BIOS control, restore AP's APIC_LVTTHMR to the BSP value + * drm/i915: Avoid NULL dereference with component_only tv_modes + * drm/i915: PineView only has LVDS and CRT ports + * drm/i915: Fix LVDS stability issue on Ironlake + * mm: sigbus instead of abusing oom + * ipvs: zero usvc and udest + * jffs2: Fix long-standing bug with symlink garbage collection. + * intel-iommu: Detect DMAR in hyperspace at probe time. + * intel-iommu: Apply BIOS sanity checks for interrupt remapping too. + * intel-iommu: Check for an RMRR which ends before it starts. + * intel-iommu: Fix oops with intel_iommu=igfx_off + * intel-iommu: ignore page table validation in pass through mode + * netfilter: xtables: document minimal required version + * perf_event: Fix incorrect range check on cpu number + * implement early_io{re,un}map for ia64 + * Linux 2.6.32.2 + + -- Andy Whitcroft Thu, 07 Jan 2010 15:28:43 +0000 + +linux (2.6.32-9.13) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_B43_PHY_LP + - LP: #493059 + * include modules.builtin in the binary debs + * config-check -- add a configuration enforcer + * config-check -- add a unit-test suite to the checker + * [Config] Enable CONFIG_SYN_COOKIES for versatile + * [Config] Enable CONFIG_SECURITY_SMACK for ports + * [Config] Enable CONFIG_SECURITY_FILE_CAPABILITIES for ports + * [Config] Disable CONFIG_COMPAT_BRK for ports + * getabis -- add armel versatile to the list + + [ Brad Figg ] + + * SAUCE: Increase the default prealloc buffer for HDA audio devices + (non-modem) + + [ Manoj Iyer ] + + * ubuntu: onmibook -- Added missing BOM file + + [ Tim Gardner ] + + * ubuntu: fsam7400 -- Cleanup Makefile + + [ Upstream Kernel Changes ] + + * Revert "ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT" + * signal: Fix alternate signal stack check + * SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects + * SCSI: osd_protocol.h: Add missing #include + * SCSI: megaraid_sas: fix 64 bit sense pointer truncation + * ext4: fix potential buffer head leak when add_dirent_to_buf() returns + ENOSPC + * ext4: avoid divide by zero when trying to mount a corrupted file system + * ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails + * ext4: fix lock order problem in ext4_move_extents() + * ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT + * ext4: plug a buffer_head leak in an error path of ext4_iget() + * ext4: make sure directory and symlink blocks are revoked + * ext4: fix i_flags access in ext4_da_writepages_trans_blocks() + * ext4: journal all modifications in ext4_xattr_set_handle + * ext4: don't update the superblock in ext4_statfs() + * ext4: fix uninit block bitmap initialization when s_meta_first_bg is + non-zero + * ext4: fix block validity checks so they work correctly with meta_bg + * ext4: avoid issuing unnecessary barriers + * ext4: fix error handling in ext4_ind_get_blocks() + * ext4: make trim/discard optional (and off by default) + * ext4: make "norecovery" an alias for "noload" + * ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT + * ext4: initialize moved_len before calling ext4_move_extents() + * ext4: move_extent_per_page() cleanup + * jbd2: Add ENOMEM checking in and for + jbd2_journal_write_metadata_buffer() + * ext4: Return the PTR_ERR of the correct pointer in + setup_new_group_blocks() + * ext4: Avoid data / filesystem corruption when write fails to copy data + * ext4: wait for log to commit when umounting + * ext4: remove blocks from inode prealloc list on failure + * ext4: ext4_get_reserved_space() must return bytes instead of blocks + * ext4: quota macros cleanup + * ext4: fix incorrect block reservation on quota transfer. + * ext4: Wait for proper transaction commit on fsync + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + * ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem) + * Linux 2.6.32.1 + * kbuild: generate modules.builtin + * (pre-stable) drm/i915: Fix sync to vblank when VGA output is turned off + - LP: #494461 + * (pre-stable) drm/i915: Avoid NULL dereference with component_only + tv_modes + - LP: #494045 + + [ Zhao Yakui ] + + * (pre-stable) acpi: Use the ARB_DISABLE for the CPU which model id is + less than 0x0f. + - LP: #481765 + + -- Andy Whitcroft Thu, 17 Dec 2009 15:41:21 +0000 + +linux (2.6.32-8.12) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: AppArmor -- add linux/err.h for ERR_PTR + + -- Andy Whitcroft Sat, 12 Dec 2009 10:56:16 +0000 + +linux (2.6.32-8.11) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches + up" + * Revert "SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition." + * Revert "SAUCE: AppArmor: Fix refcounting bug causing leak of creds" + * Revert "SAUCE: AppArmor: Fix cap audit_caching preemption disabling" + * Revert "SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds" + * Revert "SAUCE: AppArmor: Fix oops after profile removal" + * Revert "SAUCE: AppArmor: AppArmor disallows truncate of deleted files." + * Revert "SAUCE: AppArmor: AppArmor fails to audit change_hat correctly" + * Revert "SAUCE: AppArmor: Policy load and replacement can fail to alloc + mem" + * Revert "SAUCE: AppArmor: AppArmor wrongly reports allow perms as + denied" + * Revert "SAUCE: AppArmor: Fix mediation of "deleted" paths" + * Revert "SAUCE: AppArmor: Fix off by 2 error in getprocattr mem + allocation" + * Revert "SAUCE: AppArmor: Set error code after structure + initialization." + * Revert "AppArmor -- fix pstrace_may_access rename" + * Revert "ubuntu: AppArmor security module" + * Revert "SAUCE: Add config option to set a default LSM" + * Revert "ubuntu: fsam7400 -- sw kill switch driver" + * Revert "[Config] fsam7400 -- enable" + * Revert "[Config] AUFS -- enable" + * Revert "ubuntu: AUFS -- aufs2-30 20090727" + * Revert "ubuntu: AUFS -- export various core functions -- fixes" + * Revert "ubuntu: AUFS -- export various core functions" + * Revert "[Config] ubuntu/iscsitarget -- disable" + * Revert "[Config] iscsitarget -- enable" + * Revert "ubuntu: iscsitarget -- SVN revision r214" + * update Vcs-Git to point to the correct repository + - LP: #493589 + * update build environment overrides to lucid + - LP: #493589 + * [Config] enable CONFIG_DEVTMPFS + * [Config] update all configs following AppArmor 2009-12-08 update + * SAUCE: isapnp_init: make isa PNP scans occur async + * [Config] fsam7400 -- enable + * [Config] omnibook -- enable + * [Config] cleanup CONFIG_AUDIT + * ubuntu: AUFS -- export various core functions (aufs2-base.patch) + * ubuntu: AUFS -- export various core functions (aufs2-standalone.patch) + * ubuntu: AUFS -- aufs2 20091209 + * [Config] AUFS -- enable + * [Config] iscsitarget -- enable + + [ Arjan van de Ven ] + + * SAUCE: KMS: cache the EDID information of the LVDS + + [ Colin Watson ] + + * bnx2: update d-i firmware filenames + - LP: #494052 + * add cdc_ether to nic-usb-modules udeb + - LP: #495060 + + [ John Johansen ] + + * ubuntu: AppArmor -- mainline 2009-10-08 + + [ Manoj Iyer ] + + * ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M 7400 + * ubuntu: omnibook -- support Toshiba (HP) netbooks + * ubuntu: iscsitarget --- version 1.4.19 + - LP: #494693 + + [ Surbhi Palande ] + + * SAUCE: Make populate_rootfs asynchronous + + [ Tim Gardner ] + + * Parallelize flavour builds and packaging + * [Config] Enable CONFIG_KSM + + [ Upstream Kernel Changes ] + + * Config option to set a default LSM + * LSM: Add security_path_chroot(). + * LSM: Add security_path_chroot(). + * LSM: Move security_path_chmod()/security_path_chown() to after + mutex_lock(). + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + + -- Andy Whitcroft Fri, 11 Dec 2009 17:45:19 +0000 + +linux (2.6.32-7.10) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_THUMB2_KERNEL to fix arm FTBFS + + -- Andy Whitcroft Sun, 06 Dec 2009 12:56:48 +0000 + +linux (2.6.32-7.9) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: set /proc/acpi/video/*/DOS to 4 by default + - LP: #458982 + * SAUCE: ensure vga16fb loads if no other driver claims the VGA device + * [Config] update configs following versatile switch to V7 + * rebased to v2.6.32 + * [Config] update configs following rebase to v2.6.32 + * [Config] update ports configs following rebase to v2.6.32 + * SAUCE: default ATI Radeon KMS to off until userspace catches up + + [ Arjan van de Ven ] + + * SAUCE: vfs: Add a trace point in the mark_inode_dirty function + + [ Leann Ogasawara ] + + * [SCSI] megaraid_sas: remove sysfs poll_mode_io world writeable + permissions + - CVE-2009-3939 + + [ Loic Minier ] + + * SAUCE: select a v7 CPU for versatile + + [ Takashi Iwai ] + + * SAUCE: ALSA: hda - Add power on/off counter + + [ Upstream changes ] + + * rebased to v2.6.32 + + -- Andy Whitcroft Fri, 04 Dec 2009 10:44:50 +0000 + +linux (2.6.32-6.8) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable SSB devices for armel + + -- Andy Whitcroft Sat, 28 Nov 2009 12:16:40 +0000 + +linux (2.6.32-6.7) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches up" + * Revert "SAUCE: Dell XPS710 reboot quirk" + * Revert "SAUCE: Link acpi-cpufreq.o first" + * Revert "SAUCE: LPIA Logical reset of USB port on resume" + * Revert "SAUCE: LPIA Reboot fix for Intel Crownbeach development boards" + * Revert "SAUCE: Enable HDMI audio codec on Studio XPS 1340" + * Revert "SAUCE: Dell laptop digital mic does not work, PCI 1028:0271" + * Revert "Add Dell Dimension 9200 reboot quirk" + * Revert "SAUCE: Correctly blacklist Thinkpad r40e in ACPI" + * Revert "SAUCE: tulip: Define ULI PCI ID's" + * Revert "SAUCE: Lower warning level of some PCI messages" + * Revert "mac80211: fix two issues in debugfs" + Drop a number of known redundant commits as identified in the Ubuntu + delta review blueprint. + + * reenable armel versatile flavour + * [Config] disable CONFIG_USB_DEVICEFS + + [ Tim Gardner ] + + * [Config] udeb: Add squashfs to fs-core-modules + - LP: #352615 + * [Config] Create a real squashfs udeb + - LP: #352615 + + + -- Andy Whitcroft Fri, 27 Nov 2009 17:31:16 +0000 + +linux (2.6.32-5.6) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc8 + * update configs following rebase to v2.6.32-rc8 + * update ports configs since rebase to v2.6.32-rc8 + * [Config] enable cgroup options + - LP: #480739 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc8 + + -- Andy Whitcroft Mon, 23 Nov 2009 11:16:14 +0000 + +linux (2.6.32-4.5) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * rebase to v2.6.32-rc7 + * resync with Karmic proposed + + [ John Johansen ] + + * SAUCE: AppArmor: Fix oops after profile removal + - LP: #475619 + * SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds + - LP: #437258 + * SAUCE: AppArmor: Fix cap audit_caching preemption disabling + - LP: #479102 + * SAUCE: AppArmor: Fix refcounting bug causing leak of creds + - LP: #479115 + * SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition. + - LP: #480112 + + [ Ubuntu Changes ] + + * resync with Karmic proposed (ddbc670a86a3dee18541a3734149f250ff307adf) + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc7 + + -- Andy Whitcroft Fri, 13 Nov 2009 11:35:13 +0000 + +linux (2.6.32-3.4) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * [Upstream] add local prefix to oss local change_bits + + [ Upstream Kernel Changes ] + + * mtd/maps: gpio-addr-flash: pull in linux/ headers rather than asm/ + * mtd/maps: gpio-addr-flash: depend on GPIO arch support + + -- Andy Whitcroft Wed, 11 Nov 2009 14:47:04 +0000 + +linux (2.6.32-3.3) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc6 + * [Config] update configs following rebase to v2.6.32-rc6 + * [Config] update ports configs following rebase to v2.6.32-rc6 + * resync with Karmic Ubuntu-2.6.31-15.49 + * [Config] add module ignores for broken drivers + + [ John Johansen ] + + * SAUCE: AppArmor: AppArmor wrongly reports allow perms as denied + - LP: #453335 + * SAUCE: AppArmor: Policy load and replacement can fail to alloc mem + - LP: #458299 + * SAUCE: AppArmor: AppArmor fails to audit change_hat correctly + - LP: #462824 + * SAUCE: AppArmor: AppArmor disallows truncate of deleted files. + - LP: #451375 + + [ Kees Cook ] + + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Scott James Remnant ] + + * Revert "SAUCE: trace: add trace_event for the open() syscall" + * SAUCE: trace: add trace events for open(), exec() and uselib() + - LP: #462111 + + [ Stefan Bader ] + + * SAUCE: Fix sub-flavour script to not stop on missing directories + - LP: #453073 + + [ Ubuntu Changes ] + + * resync with Karmic Ubuntu-2.6.31-15.49 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc6 + - LP: #464552 + + -- Andy Whitcroft Tue, 10 Nov 2009 15:00:57 +0000 + +linux (2.6.32-2.2) lucid; urgency=low + + [ Andy Whitcroft ] + + * install the full changelog with the binary package + * changelog -- explicitly note rebases and clean history + * reinstate armel.mk with no flavours + - LP: #449637 + * [Upstream] block: silently error unsupported empty barriers too + - LP: #420423 + * [Config] udate configs following karmic resync + * [Config] update ports configs following karmic resync + * [Upstream] lirc -- follow removal of .id element + + [ Colin Watson ] + + * Use section 'admin' rather than 'base' + * Add more e100 firmware to nic-modules + - LP: #451872 + * Add qla1280 firmware to scsi-modules + - LP: #381037 + + [ John Johansen ] + + * SAUCE: AppArmor: Set error code after structure initialization. + - LP: #427948 + * SAUCE: AppArmor: Fix off by 2 error in getprocattr mem allocation + - LP: #446595 + * SAUCE: AppArmor: Fix mediation of "deleted" paths + + [ Kees Cook ] + + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + + [ Leann Ogasawara ] + + * SAUCE: (drop after 2.6.31) input: Add support for filtering input + events + - LP: #430809 + * SAUCE: (drop after 2.6.31) dell-laptop: Trigger rfkill updates on wifi + toggle switch press + - LP: #430809 + + [ Luke Yelavich ] + + * SAUCE: Add sr_mod to the scsi-modules udeb for powerpc + * [Config] Add sd_mod to scsi-modules udeb for powerpc + + [ Mario Limonciello ] + + * SAUCE: Update to LIRC 0.8.6 + - LP: #432678 + * SAUCE: dell-laptop: Store the HW switch status internally rather than + requerying every time + - LP: #430809 + * SAUCE: dell-laptop: Blacklist machines not supporting dell-laptop + - LP: #430809 + + [ Stefan Bader ] + + * [Upstream] acerhdf: Limit modalias matching to supported boards + - LP: #435958 + + [ Tim Gardner ] + + * [Upstream] i915: Fix i2c init message + - LP: #409361 + * [Config] Add sym53c8xx.ko to virtual sub-flavour + - LP: #439415 + * [Config] Add d101m_ucode.bin to d-i/firmware/nic-modules + - LP: #439456 + * [Config] Set default I/O scheduler back to CFQ for desktop flavours + - LP: #381300 + * SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros + - LP: #430694 + * SAUCE: Use MODULE_IMPORT macro to tie intel_agp to i915 + - LP: #430694 + * [Config] CONFIG_GFS2_FS_LOCKING_DLM=y + - LP: #416325 + * SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT + - LP: #430694 + * SAUCE: Raise the default console 'quiet' level to 2 + * [Config] CONFIG_X86_PAT=y + * [Config] Add armel arch to linux-libc-dev arches. + - LP: #449637 + * [Config] CONFIG_X86_MCE + * [Upstream] (drop after 2.6.31) Input: synaptics - add another Protege + M300 to rate blacklist + - LP: #433801 + + [ Upstream Kernel Changes ] + + * sgi-gru: Fix kernel stack buffer overrun, CVE-2009-2584 + * drm/i915: Fix FDI M/N setting according with correct color depth + - LP: #416792 + + -- Andy Whitcroft Thu, 22 Oct 2009 16:53:33 +0100 + +linux (2.6.32-1.1) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc3 + * [Config] update configs following rebase to 2.6.32-rc3 + * [Config] update ports configs following rebase to 2.6.32-rc3 + * AppArmor -- fix pstrace_may_access rename + * staging/android -- disable + * ubuntu: dm-raid-45 -- update to compile with 2.6.32 + * ubuntu: drbd -- disable + * staging/comdi -- disable + * staging/go7007 -- disable + * [Config] staging/winbond -- disable + * [Config] ubuntu/iscsitarget -- disable + * [d-i] cbc and ecb are builtin make them optional in udebs + * rebase to v2.6.32-rc5 + * [Config] update configs following rebase to v2.6.32-rc5 + * [Config] update ports configs following rebase to v2.6.31-rc5 + + [ Tim Gardner ] + + * [Config] Add cpio as a build dependency. + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc3 + * rebase to v2.6.32-rc5 + + -- Andy Whitcroft Mon, 05 Oct 2009 15:48:58 +0100 + +linux (2.6.31-11.37) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Increase kernel log buffer to 256K for amd64 flavours + - LP: #424810 + * [Config] Set HZ=100 for amd64 flavours + - LP: #438234 + * [Upstream] e1000e: Emit notice instead of an error when + pci_enable_pcie_error_reporting() fails + - LP: #436370 + + [ Upstream Kernel Changes ] + + * n_tty: honor opost flag for echoes + * n_tty: move echoctl check and clean up logic + - LP: #438310 + + * Revert "[Upstream] drm/i915: Check that the relocation points to within + the target" - Use upstream cherry-pick. + * drm/i915: Check that the relocation points to within the target + - LP: #429241 + + * drm/i915: fix tiling on IGDNG + * drm/i915: add B43 chipset support + * agp/intel: Add B43 chipset support + Intel request from kernel team mailing list. + + * HID: completely remove apple mightymouse from blacklist + - LP: #428111 + + -- Tim Gardner Mon, 28 Sep 2009 11:47:29 -0600 + +linux (2.6.31-11.36) karmic; urgency=low + + [ Brian Rogers ] + + * SAUCE: (drop after 2.6.31) em28xx: ir-kbd-i2c init data needs a + persistent object + * SAUCE: (drop after 2.6.31) saa7134: ir-kbd-i2c init data needs a + persistent object + + [ Takashi Iwai ] + + * [Upstream] ALSA: hda - Add another entry for Nvidia HDMI device + - LP: #416482 + + [ Tyler Hicks ] + + * SAUCE: (drop after 2.6.31) eCryptfs: Prevent lower dentry from going + negative during unlink + + [ Upstream Kernel Changes ] + + * sg: fix oops in the error path in sg_build_indirect() + * mpt2sas : Rescan topology from Interrupt context instead of work thread + * mpt2sas: Prevent sending command to FW while Host Reset + * mpt2sas: setting SDEV into RUNNING state from Interrupt context + * mpt2sas: Raid 10 Volume is showing as Raid 1E in dmesg + * SCSI: fix oops during scsi scanning + * SCSI: libsrp: fix memory leak in srp_ring_free() + * cfg80211: fix looping soft lockup in find_ie() + * ath5k: write PCU registers on initial reset + * binfmt_elf: fix PT_INTERP bss handling + * TPM: Fixup boot probe timeout for tpm_tis driver + * md: Fix "strchr" [drivers/md/dm-log-userspace.ko] undefined! + * x86/amd-iommu: fix broken check in amd_iommu_flush_all_devices + * fix undefined reference to user_shm_unlock + * perf_counter: Fix buffer overflow in perf_copy_attr() + * perf_counter: Start counting time enabled when group leader gets + enabled + * powerpc/perf_counters: Reduce stack usage of power_check_constraints + * powerpc: Fix bug where perf_counters breaks oprofile + * powerpc/ps3: Workaround for flash memory I/O error + * block: don't assume device has a request list backing in nr_requests + store + * agp/intel: remove restore in resume + * ALSA: cs46xx - Fix minimum period size + * ASoC: Fix WM835x Out4 capture enumeration + * sound: oxygen: work around MCE when changing volume + * mlx4_core: Allocate and map sufficient ICM memory for EQ context + * perf stat: Change noise calculation to use stddev + * x86: Fix x86_model test in es7000_apic_is_cluster() + * x86/i386: Make sure stack-protector segment base is cache aligned + * PCI: apply nv_msi_ht_cap_quirk on resume too + * x86, pat: Fix cacheflush address in change_page_attr_set_clr() + * ARM: 5691/1: fix cache aliasing issues between kmap() and kmap_atomic() + with highmem + * KVM guest: do not batch pte updates from interrupt context + * KVM: Fix coalesced interrupt reporting in IOAPIC + * KVM: VMX: Check cpl before emulating debug register access + * KVM guest: fix bogus wallclock physical address calculation + * KVM: x86: Disallow hypercalls for guest callers in rings > 0 + * KVM: VMX: Fix cr8 exiting control clobbering by EPT + * KVM: x86 emulator: Implement zero-extended immediate decoding + * KVM: MMU: make __kvm_mmu_free_some_pages handle empty list + * KVM: x86 emulator: fix jmp far decoding (opcode 0xea) + * KVM: limit lapic periodic timer frequency + * libata: fix off-by-one error in ata_tf_read_block() + * PCI quirk: update 82576 device ids in SR-IOV quirks list + * PCI: Unhide the SMBus on the Compaq Evo D510 USDT + * powerpc/pseries: Fix to handle slb resize across migration + * Linux 2.6.31.1 + + -- Tim Gardner Thu, 24 Sep 2009 13:04:28 -0600 + +linux (2.6.31-10.35) karmic; urgency=low + + [ Amit Kucheria ] + + * Disable CONFIG_UEVENT_HELPER_PATH + + [ Andy Whitcroft ] + + * [Config] Enable CONFIG_USB_GADGET_DUMMY_HCD + * remove the tlsup driver + * remove lmpcm logitech driver support + + [ Bryan Wu ] + + * Add 3 missing files to prerm remove file list + - LP: #345623, #415832 + + [ Chris Wilson ] + + * [Upstream] drm/i915: Check that the relocation points to within the + target + - LP: #429241 + + [ Luke Yelavich ] + + * [Config] Set CONFIG_EXT4_FS=y on ports architectures + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Tim Gardner ] + + * Revert "[Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) white-list" + Upstream suggests that this is not the right approach. + + * [Config] Set default I/O scheduler to DEADLINE + CFQ seems to have some load related problems which are often exacerbated by sreadahead. + - LP: #381300 + + [ ubuntu@tjworld.net ] + + * SAUCE: ipw2200: Enable LED by default + - LP: #21367 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Add support for new AMD HD audio devices + - LP: #430564 + + -- Andy Whitcroft Wed, 16 Sep 2009 15:37:49 +0100 + +linux (2.6.31-10.34) karmic; urgency=low + + [ Ted Tso ] + + * [Upstream] ext3: Don't update superblock write time when filesystem is + read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 16:00:45 -0600 + +linux (2.6.31-10.33) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] dvb-usb: fix tuning with Cinergy T2 + - LP: #421258 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + (really, really fix it this time) + - LP: #423426 + * [Config] Set CONFIG_CACHEFILES=m for all flavours + + [ Upstream Kernel Changes ] + + * ext4: Don't update superblock write time when filesystem is read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 07:50:21 -0600 + +linux (2.6.31-10.32) karmic; urgency=low + + [ Eric Miao ] + + * [Config] enable module support for memory stick + - LP: #159951 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + - LP: #423426 + + -- Tim Gardner Thu, 10 Sep 2009 15:57:55 -0600 + +linux (2.6.31-10.31) karmic; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.31 final + + [ Colin Watson ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + + [ Ike Panhc ] + + * [Upstream] Pull latest update of lenovo-sl-laptop + + [ Peter Feuerer ] + + * [Upstream] (drop after 2.6.31) acerhdf: fix fan control for AOA150 + model + - LP: #426691 + + [ Tim Gardner ] + + * [Config] De-macro some package names. + + [ Upstream Changes ] + + * rebase to 2.6.31 final. + + -- Andy Whitcroft Thu, 10 Sep 2009 09:38:10 +0100 + +linux (2.6.31-10.30) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Enable CONFIG_USB_DEVICEFS + - LP: #417748 + * [Config] Populate the config-update template a bit more + + [ Andy Whitcroft ] + + * rebase to v2.6.31-rc9 + * [Config] update configs following rebase to v2.6.31-rc9 + * [Config] update ports configs following rebase to v2.6.31-rc9 + + [ Colin Ian King ] + + * SAUCE: wireless: hostap, fix oops due to early probing interrupt + - LP: #254837 + + [ Jerone Young ] + + * [Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) + white-list + - LP: #281732 + + [ John Johansen ] + + * SAUCE: AppArmor: Fix profile attachment for regexp based profile names + - LP: #419308 + * SAUCE: AppArmor: Return the correct error codes on profile + addition/removal + - LP: #408473 + * SAUCE: AppArmor: Fix OOPS in profile listing, and display full list + - LP: #408454 + * SAUCE: AppArmor: Fix mapping of pux to new internal permission format + - LP: #419222 + * SAUCE: AppArmor: Fix change_profile failure + - LP: #401931 + * SAUCE: AppArmor: Tell git to ignore generated include files + - LP: #419505 + + [ Stefan Bader ] + + * [Upstream] acpi: video: Loosen strictness of video bus detection code + - LP: #333386 + * SAUCE: Remove ov511 driver from ubuntu subdirectory + + [ Tim Gardner ] + + * [Config] Exclude char-modules from non-x86 udeb creation + * SAUCE: Notify the ACPI call chain of AC events + * [Config] CONFIG_SATA_VIA=m + - LP: #403385 + * [Config] Build in all phylib support modules. + * [Config] Don't fail when sub-flavour files are missing + - LP: #423426 + * [Config] Set CONFIG_LSM_MMAP_MIN_ADDR=0 + - LP: #423513 + + [ Upstream ] + + * Rebased against v2.6.31-rc9 + + -- Andy Whitcroft Mon, 07 Sep 2009 11:33:45 +0100 + +linux (2.6.31-9.29) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] agp/intel: support for new chip variant of IGDNG mobile + - LP: #419993 + * [Config] d-i/modules: Add new char-modules file, initialize with + intel-agp + - LP: #420605 + + [ Upstream ] + + * Rebased against 2.6.31-rc8 plus some inotify regression patches: + up through git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + adda766193ea1cf3137484a9521972d080d0b7af. + + -- Tim Gardner Fri, 28 Aug 2009 06:31:30 -0600 + +linux (2.6.31-8.28) karmic; urgency=low + + [ Ike Panhc ] + + * [Config] Let nic-shared-modules depends on crypto-modules + - LP: #360966 + + [ Leann Ogasawara ] + + * [Upstream] (drop after 2.6.31) drm/i915: increase default latency + constant + - LP: #412492 + + [ Mario Limonciello ] + + * [Upstream]: (drop after 2.6.31) dell-laptop: don't change softblock + status if HW switch is disabled + - LP: #418721 + * [Upstream]: (drop after 2.6.31) compal-laptop: Add support for known + Compal made Dell laptops + * [Upstream]: (drop after 2.6.31) compal-laptop: Replace sysfs support + with rfkill support + + [ Tim Gardner ] + + * [Config] Add acpiphp to virtual sub-flavour + - LP: #364916 + * Drop KSM patch set for now because of instabilities with encrypted swap. + - LP: #418781 + + -- Tim Gardner Wed, 26 Aug 2009 08:14:26 -0600 + +linux (2.6.31-7.27) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] updateconfigs updateportsconfigs after 2.6.31-rc7 rebase + * SAUCE: (drop after 2.6.31) Added KSM from mmotm-2009-08-20-19-18 + Replaces previous ksm patches from 2.6.31-6.25 + * [Config] KSM=y + + [ Upstream ] + + * Rebased against v2.6.31-rc7 + + -- Tim Gardner Sat, 22 Aug 2009 20:32:11 -0600 + +linux (2.6.31-6.26) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_AUFS_BR_RAMFS + - LP: #414738 + * split out debian directory ready for abstraction + * add printdebian target to find branch target + * abstracted debian -- debian/files is not abstracted + * abstracted debian -- packages must be built in debian/ + * abstracted debian -- kernel-wedge needs to work in debian/ + * abstracted debian -- ensure we install the copyright file + * abstracted-debian -- drop the debian directories from headers + * abstracted-debian -- drop the debian directories from headers part 2 + * SAUCE: ubuntu-insert-changes -- follow abstracted debian + * [Upstream] aoe: ensure we initialise the request_queue correctly V2 + - LP: #410198 + + [ Luke Yelavich ] + + * [Config] Ports: Disable CONFIG_CPU_FREQ_DEBUG on powerpc-smp + * [Config] Ports: Re-enable windfarm modules on powerpc64-smp + - LP: #413150 + * [Config] Ports: Build all cpu frequency scaling governors into ports + kernels + * [Config] Ports: Build ext2 and ext3 modules into ports kernels + * [Config] Ports: CONFIG_PACKET=y for all ports kernels + * [Config] Ports: Enable PS3 network driver + + [ Stefan Bader ] + + * abstracted debian -- call $(DEBIAN)/rules using make + + [ Tim Gardner ] + + * [Config] Abstract the debian directory + * SAUCE: Improve error reporting in postinst + - LP: #358564 + + -- Tim Gardner Sun, 16 Aug 2009 20:33:28 -0600 + +linux (2.6.31-6.25) karmic; urgency=low + + [ Andy Whitcroft ] + + * script to generate Ubuntu changes from changelog + * [Config] standardise ANDROID options + * [Config] standardise CONFIG_ATM as module + * [Config] standardise CONFIG_LIB80211 as module + * [Config] disable CONFIG_PRINT_QUOTA_WARNING + * [Config] set CONFIG_CRAMFS as module + * [Config] enable CONFIG_DAB and modules + * [Config] set CONFIG_MAC80211_HWSIM as module + * [Config] set CONFIG_NET_CLS_FLOW as module + * [Config] set CONFIG_NF_CONNTRACK_SANE as module + * [Config] set CONFIG_NF_CT_PROTO_DCCP as module + * [Config] set CONFIG_RTC_DRV_DS1511 as module + * [Config] set CONFIG_RTC_DRV_R9701 as module + * [Config] set CONFIG_RTC_DRV_S35390A as module + * [Config] set CONFIG_TOIM3232_DONGLE as module + * [Config] standardise CONFIG_USB_MIDI_GADGET as module + * [Config] standardise CONFIG_USB_G_PRINTER as module + * [Config] standardise CONFIG_USB_SERIAL_IR as module + * [Config] set CONFIG_USB_SERIAL_IUU as module + * [Config] standardise CONFIG_USB_STORAGE_CYPRESS_ATACB as module + * [Config] standardise CONFIG_USB_STORAGE_ONETOUCH as module + * cleanup remains of dm-loop + * drop thinkpad ec and smapi support + * drop appleir + * [Config] update configs following rebase to v2.6.31-rc6 + * rebase to v2.6.31-rc6 + + [ Hugh Dickins ] + + * SAUCE: ksm patch 1, drop after 2.6.31 + * SAUCE: ksm patch 2, drop after 2.6.31 + * SAUCE: ksm patch 3, drop after 2.6.31 + * SAUCE: ksm patch 4, drop after 2.6.31 + * SAUCE: ksm patch 5, drop after 2.6.31 + * SAUCE: ksm patch 7, drop after 2.6.31 + + [ Izik Eidus ] + + * SAUCE: ksm patch 0, drop after 2.6.31 + * SAUCE: ksm patch 6, drop after 2.6.31 + * SAUCE: ksm patch 8, drop after 2.6.31 + * SAUCE: ksm patch 9, drop after 2.6.31 + + [ Luke Yelavich ] + + * [Config] Ports: Re-add PS3 modules to udebs + + [ Michael Casadevall ] + + * [Config] Update SPARC config and d-i files to reflect what can be built + + [ Tim Gardner ] + + * [Config] Removed armel package support + * [Config] Enabled CONFIG_KSM=y + + [ Upstream Kernel Changes ] + + * Rebased against v2.6.31-rc6 + * ARM: Cleanup: Revert "ARM: Add more cache memory types macros" + * ARM: Cleanup: Revert "Do not use OOB with MLC NAND" + * ARM: Cleanup: Revert "ARM: Make ARM arch aware of ubuntu/ drivers" + * ARM: Cleanup: Revert "ARM: IMX51: Make video capture drivers compile" + * ARM: Cleanup: Revert "ARM: IMX51: Fix isl29003 HWMON driver for i2c + changes" + * ARM: Cleanup: Revert "ARM: IMX51: IPU irq handler deadlock fix" + * ARM: Cleanup: Revert "ARM: IMX51: Babbage 2.5 needs a different system + revision" + * ARM: Cleanup: Revert "ARM: IMX51: Compile-in the IMX51 cpufreq driver + by default" + * ARM: Cleanup: Revert "ARM: IMX51: Enable ZONE_DMA for ARCH_MXC" + * ARM: Cleanup: Revert "ARM: IMX51: Make ARCH_MXC auto-enable + ARCH_MXC_CANONICAL" + * ARM: Cleanup: Revert "ARM: IMX51: Unconditionally disable + CONFIG_GPIOLIB" + * ARM: Cleanup: Revert "ARM: IMX51: Minimal changes for USB to work on + 2.6.31" + * ARM: Cleanup: Revert "ARM: IMX51: Fix plat-mxc/timer.c to handle imx51" + * ARM: Cleanup: Revert "ARM: IMX51: Make it compile." + * ARM: Cleanup: Revert "ARM: IMX51: Clean-up the craziness of including + mxc_uart.h _everywhere_" + * ARM: Cleanup: Revert "ARM: IMX51: Move board-mx51* header files to the + correct location" + * ARM: Cleanup: Revert "ARM: IMX51: Changed from snd_card_new to + snd_card_create" + * ARM: Cleanup: Revert "ARM: IMX51: Fix up merge error in Kconfig" + * ARM: Cleanup: Revert "ARM: IMX51: mxc_timer_init prototype" + * ARM: Cleanup: Revert "ARM: IMX51: Removed the mxc_gpio_port structure." + * ARM: Cleanup: Revert "ARM: IMX51: Added external declaration for + mxc_map_io." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: snd_soc_machine structure replaced + with snd_soc_card." + * ARM: Cleanup: Revert "ARM: IMX51: codec structure was moved to the card + structure" + * ARM: Cleanup: Revert "ARM: IMX51: Hack to add defines for + DMA_MODE_READ/WRITE/MASK" + * ARM: Cleanup: Revert "ARM: IMX51: Add SoC and board support for + Freescale mx51 platform" + * Driver core: add new device to bus's list before probing + * [Upstream] (drop after 2.6.31) ALSA: hda - Reduce click noise at + power-saving + - LP: #381693, #399750, #380892 + + -- Andy Whitcroft Fri, 14 Aug 2009 11:32:23 +0100 + +linux (2.6.31-5.24) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Make video capture drivers compile + * [Config] IMX51: Config updates + + [ Andy Whitcroft ] + + * remove leftovers of dm-bbr + + [ Leann Ogasawara ] + + * Add pata_cs5535 to pata-modules + - LP: #318805 + + [ Luke Yelavich ] + + * [Config] CONFIG_PPC64=y for powerpc64-smp + * [Config] Set the maximum number of CPUs to 1024 for powerpc64-smp + * [Config] CONFIG_PPC_PS3=y for powerpc64-smp + * [Config] CONFIG_PPC_MAPLE=y on powerpc64-smp + * [Config] CONFIG_PPC_PASEMI=y on powerpc64-smp + * [Config] CONFIG_CPU_FREQ_PMAC64=y on powerpc64-smp + * [Config] Enable all PS3 drivers in powerpc64-smp + + [ Mario Limonciello ] + + * LIRC -- fix lirc-i2c 2.6.31 compilation + + [ Matthew Garrett ] + + * [Upstream] dell-laptop: Fix rfkill state queries + + [ Tim Gardner ] + + * [Config] Ignore armel ABI and module changes + * [Config] Update configs after rebase against 2.6.31-rc5 + + [ Upstream ] + + * Rebased to 2.6.31-rc5 + + -- Andy Whitcroft Tue, 28 Jul 2009 10:10:09 +0100 + +linux (2.6.31-4.23) karmic; urgency=low + + [ Andy Whitcroft ] + + * AUFS -- update to aufs2-30 20090727 + * [Config] enable AUFS FUSE support + + [ Luke Yelavich ] + + * [Config] CONFIG_JFS_FS=m on sparc + + [ Tim Gardner ] + + * [Upstream] dell-laptop: Fix rfkill state setting. + + -- Andy Whitcroft Mon, 27 Jul 2009 11:11:47 +0100 + +linux (2.6.31-4.22) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Add SoC and board support for Freescale mx51 platform + * ARM: IMX51: Move board-mx51* header files to the correct location + * ARM: IMX51: Clean-up the craziness of including mxc_uart.h _everywhere_ + * ARM: IMX51: Make it compile. + * ARM: IMX51: Unconditionally disable CONFIG_GPIOLIB + * ARM: IMX51: Make ARCH_MXC auto-enable ARCH_MXC_CANONICAL + * ARM: IMX51: Enable ZONE_DMA for ARCH_MXC + * ARM: IMX51: Compile-in the IMX51 cpufreq driver by default + * ARM: IMX51: Fix isl29003 HWMON driver for i2c changes + * ARM: USB: musb: Refer to musb_otg_timer_func under correct #ifdef + * ARM: staging: udlfb: Add vmalloc.h include + * UBUNTU [Config]: Bring imx51 config upto date with other flavours + + [ Brad Figg ] + + * ARM: IMX51: Hack to add defines for DMA_MODE_READ/WRITE/MASK + * ARM: IMX51: codec structure was moved to the card structure + * ARM: IMX51: snd_soc_machine structure replaced with snd_soc_card. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Added external declaration for mxc_map_io. + * ARM: IMX51: Removed the mxc_gpio_port structure. + * ARM: IMX51: mxc_timer_init prototype + * ARM: IMX51: Fix up merge error in Kconfig + * ARM: IMX51: Changed from snd_card_new to snd_card_create + + [ Dinh Nguyen ] + + * ARM: IMX51: Fix plat-mxc/timer.c to handle imx51 + * ARM: IMX51: Minimal changes for USB to work on 2.6.31 + * ARM: IMX51: Babbage 2.5 needs a different system revision + * ARM: IMX51: IPU irq handler deadlock fix + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_CAN=m + - LP: #327243 + * [Config] Enabled CONFIG_SERIAL=m + - LP: #397189 + + -- Tim Gardner Fri, 24 Jul 2009 06:19:10 -0600 + +linux (2.6.31-4.21) karmic; urgency=low + + [ Amit Kucheria ] + + * dm-raid-4-5: Add missing brackets around test_bit() + + [ John Johansen ] + + * AppArmor: Fix change_profile failing lpn401931 + * AppArmor: Fix determination of forced AUDIT messages. + * AppArmor: Fix oops in auditing of the policy interface offset + + -- Andy Whitcroft Thu, 23 Jul 2009 19:18:30 +0100 + +linux (2.6.31-4.20) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: iscsitarget -- update to SVN revision r214 + * SAUCE: iscsitarget -- renable driver + * [Config] consolidate lpia/lpia and i386/generic configs + * [Config] enable CRYPTO modules for all architectures + * [Config] enable cryptoloop + * [Config] enable various filesystems for armel + * [Config] sync i386 generic and generic-pae + * [Config] add the 386 (486 processors and above) flavour + * [Config] re-set DEFAULT_MMAP_MIN_ADDR + - LP: #399914 + * add genconfigs/genportsconfigs to extract the built configs + * updateconfigs -- alter concatenation order allow easier updates + * intelfb -- INTELFB now conflicts with DRM_I915 + * printchanges -- rebase tree does not have stable tags use changelog + * AppArmor: fix argument size missmatch on 64 bit builds + + [ Ike Panhc ] + + * Ship bnx2x firmware in nic-modules udeb + - LP: #360966 + + [ Jeff Mahoney ] + + * AppArmor: fix build failure on ia64 + + [ John Johansen ] + + * AppArmour: ensure apparmor enabled parmater is off if AppArmor fails to + initialize. + * AppArmour: fix auditing of domain transitions to include target profile + information + * AppArmor: fix C99 violation + * AppArmor: revert reporting of create to write permission. + * SAUCE: Add config option to set a default LSM + * [Config] enable AppArmor by default + * AppArmor: Fix NULL pointer dereference oops in profile attachment. + + [ Keith Packard ] + + * SAUCE: drm/i915: Allow frame buffers up to 4096x4096 on 915/945 class + hardware + - LP: #351756 + + [ Luke Yelavich ] + + * [Config] add .o files found in arch/powerpc/lib to all powerpc kernel + header packages + - LP: #355344 + + [ Michael Casadevall ] + + * [Config] update SPARC config files to allow success build + + [ Scott James Remnant ] + + * SAUCE: trace: add trace_event for the open() syscall + + [ Stefan Bader ] + + * SAUCE: jfs: Fix early release of acl in jfs_get_acl + - LP: #396780 + + [ Tim Gardner ] + + * [Upstream] Fix Soltech TA12 volume hotkeys not sending key release + - LP: #397499 + * [Upstream] USB Option driver - Add USB ID for Novatel MC727/U727/USB727 + refresh + - LP: #365291 + * [Config] SSB/B44 are common across all arches/flavours. + + [ Upstream ] + + * Rebased to 2.6.31-rc4 + + -- Andy Whitcroft Thu, 23 Jul 2009 08:41:39 +0100 + +linux (2.6.31-3.19) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] Disabled NDISWRAPPER" + * ndiswrapper -- fix i386 compilation failures on cmpxchg8b + * AUFS -- export various core functions + * AUFS -- export various core functions -- fixes + * AUFS -- core filesystem + * AUFS -- track changes in v2.6.31 + * [Config] Enable AUFS + * droppped 'iwl3945: do not send scan command if channel count zero' as it + is already upstream but failed to auto-drop on rebase. + + [ Eric Paris ] + + * SAUCE: fsnotify: use def_bool in kconfig instead of letting the user + choose + * SAUCE: inotify: check filename before dropping repeat events + * SAUCE: fsnotify: fix inotify tail drop check with path entries + + -- Andy Whitcroft Tue, 14 Jul 2009 12:52:55 +0100 + +linux (2.6.31-3.18) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "Add splice-2.6.23.patch from AUFS to export a symbol needed by + AUFS" + * Revert "Add put_filp.patch from AUFS to export a symbol needed by AUFS" + * Revert "Add sec_perm-2.6.24.patch from AUFS - export + security_inode_permission" + * clear out left over AUFS files and modifications + + [ Luke Yelavich ] + + * [Config] Enable CONFIG_USB_ISP116X_HCD on sparc + * SAUCE: Explicitly include header files to allow apparmor to build on + powerpc + * [Config] Enable CONFIG_BLK_DEV_IDECD on powerpc + + [ Tim Gardner ] + + * [Config] Dropped ubuntu/misc/wireless/acx + * [Config] Disabled NDISWRAPPER until the compile issues are fixed. + + [ Upstream ] + + * Rebased to 2.6.31-rc3 + + -- Andy Whitcroft Fri, 10 Jul 2009 18:59:33 +0100 + +linux (2.6.31-2.17) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_BLK_DEV_CRYPTOLOOP=m for sparc + * compcache -- remove redundant Kconfig entries part 2 + * compcache -- clean up CCFLAGS declarations + * [Config] enable AppArmor + * AppArmor: fix operator precidence issue in as_path_link + + [ John Johansen ] + + * AppArmor security module + * AppArmor: Correct mapping of file permissions. + * AppArmor: Turn auditing of ptrace on + + [ Luke Yelavich ] + + * [Config] disable CONFIG_DM_RAID45 on powerpc + + -- Andy Whitcroft Fri, 10 Jul 2009 15:02:05 +0100 + +linux (2.6.31-2.16) karmic; urgency=low + + [ Andy Whitcroft ] + + * compcache -- remove redundant Kconfig entries + added ignore and ignore.modules for all arches since the compcache update + changes the modules names as well as some compcache ABI values. + + [ Manoj Iyer ] + + * SAUCE: updated dm-raid45 module version to 2009.04.24 (2.6.30-rc3) + * SAUCE: update compcache version to 0.5.3 + + [ Tim Gardner ] + + * [Config]: Fix sparc FTBS by adding ignore.modules + + -- Tim Gardner Mon, 06 Jul 2009 13:35:29 -0600 + +linux (2.6.31-2.15) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: default ATI Radeon KMS to off until userspace catches up + * [Config] Update configs following rebase to 2.6.31-rc2 + * [Config] update ports configs following update to 2.6.31-rc2 + + [ Luke Yelavich ] + + * [Config] powerpc - Disable CONFIG_RDS + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + [ Upstream Kernel Changes ] + + * rebased to mainline 2.6.31-rc2 + + -- Andy Whitcroft Sat, 04 Jul 2009 17:39:13 +0100 + +linux (2.6.31-1.14) karmic; urgency=low + + [ Andy Whitcroft ] + + * update ndiswrapper to 1.55 + * remove leftovers of gfs + * [Config] powerpc: enable CONFIG_PPC_DISABLE_WERROR + + [ Luke Yelavich ] + + * [Config] re-enable and build the ide-pmac driver into powerpc kernels + * [Config] Build the ServerWorks Frodo / Apple K2 SATA driver into the + kernel + + [ Manoj Iyer ] + + * Remove snd-bt-sco ubuntu driver + + [ Michael Casadevall ] + + * [Config] updates ia64 config and d-i folders to allow succesful build + * [Config] Update powerpc and sparc for 2.6.31 + + [ Upstream Kernel Changes ] + + * intel-iommu: fix Identity Mapping to be arch independent + - LP: #384695 + * ACPI: video: prevent NULL deref in acpi_get_pci_dev() + + -- Andy Whitcroft Tue, 30 Jun 2009 17:47:32 +0100 + +linux (2.6.31-1.13) karmic; urgency=low + + [ Andy Whitcroft ] + + * REBASE: rebased to mainline 2.6.31-rc1 + - "UBUNTU: SAUCE: UHCI USB quirk for resume" + no longer applies, using deprecated interfaces, LPIA only, dropped + - "UBUNTU: SAUCE: Mask off garbage in Dell WMI scan code data" + changes now upstream, dropped + * [Config] Update configs following rebase to 2.6.31-rc1 + * [Config] update ports configs following update to 2.6.31-rc1 + + * [Config] disable broken staging driver CONFIG_STLC45XX + * SAUCE: fix compcache to use updates accessors + * [Config] disable staging driver CONFIG_VT6655 + * SAUCE: fix DRDB to use updates accessors + * [Disable] ndiswrapper needs update + * [Disable] LIRC I2C needs update + * [Disable] CONFIG_LENOVO_SL_LAPTOP needs update + * [Config] disable I2C_DESIGNWARE does not compile + * [Config] disable CONFIG_TLSUP for lpia + * [Config] disable CONFIG_FB_UDL for arm + * SAUCE: disable adding scsi headers to linux-libc-dev + + [ Mario Limonciello ] + + * SAUCE: Add LIRC drivers + + -- Andy Whitcroft Thu, 25 Jun 2009 12:06:22 +0100 + +linux (2.6.30-10.12) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] split out the ports configs into their own family + * [Config] update configs following introduction of ports family + + [ Upstream Kernel Changes ] + + * Revert "Rename linux-doc-PKGVER to linux-doc and clean up its + description". Fixes linux-doc package name conflicts for now. + - LP: #382115 + + -- Tim Gardner Mon, 22 Jun 2009 09:17:14 -0600 + +linux (2.6.30-10.11) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Comment splitconfig.pl and misc cleanup + * [Config] Rename all configs to the new naming scheme + * [Config] Splitconfig rework + * [Config] Rename scripts/misc/oldconfig to kernelconfig + * [Config] Fix build system for new config split + * [Config] Run updateconfigs after the splitconfig rework + + [ Andy Whitcroft ] + + * Revert "SAUCE: Default to i915.modeset=0 if CONFIG_DRM_I915_KMS=y" + * [Config] standardise CONFIG_STAGING=y + * [Config] standardise CONFIG_RD_LZMA=y + * [Config] CONFIG_PCI_IOV=y + * [Config] CONFIG_PCI_STUB=m + * [Config] merge kernel configs more agressively + + [ Colin Watson ] + + * [Config] Run kernel-wedge in $(builddir) rather than at the top level + * [Config] Add support for including firmware in udebs + * [Config] Ship bnx2 firmware in nic-modules udeb + - LP: #384861 + + [ Luke Yelavich ] + + * [Config] ports - Import of ports architectures into kernel packaging + infrastructure + * [Config] ports - Do not update ports kernel configurations by default + * [Config] ports - Disable ABI checking for ports architectures + * [Config] ports - Build drivers in ubuntu sub-directory on powerpc + * [Config] ports - Add control.d/vars.* files for ports architectures + * [Config] ports - Add ports architectures for linux-libc-dev + * [Config] ports - Create powerpc specific message-modules and + block-modules udebs + * [Config] ports - Add configuration files for ports architectures + + [ Manoj Iyer ] + + * [Config] Enable CONFIG_BLK_DEV_AEC62XX=m for amd64 and i386 + - LP: #329864 + + [ Michael Casadevall ] + + * [Config] ports - Fix compression of kernels + + [ Stefan Bader ] + + * [Upstream] mmc: prevent dangling block device from accessing stale + queues + - LP: #383668 + + [ Tim Gardner ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + * [Config] Implement i386 generic and generic-pae flavours + * [Config] ports - Add control info after integrating ports arches + * [Config] Removed auto-generated files from git + * [Config] Added netxen_nic to nic-modules + - LP: #389603 + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + -- Tim Gardner Mon, 15 Jun 2009 14:38:26 -0600 + +linux (2.6.30-9.10) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_SECURITY_TOMOYO=y (amd64, i386, lpia) + * [Config] CONFIG_KEXEC_JUMP=y (amd64, lpia) + * [Config] CONFIG_LENOVO_SL_LAPTOP=m (amd64, lpia) + * [Config] CONFIG_POHMELFS_CRYPTO=y (i386, amd64) + * [Config] CONFIG_SERIAL_MAX3100=m (i386, amd64, lpia) + * [Config] CONFIG_VIDEO_GO7007=m (amd64, i386) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30 final + + -- Andy Whitcroft Fri, 05 Jun 2009 11:42:53 +0100 + +linux (2.6.30-8.9) karmic; urgency=low + + [ Andy Whitcroft ] + + * Config update removed the following options: + CONFIG_EDAC_AMD8111=m + CONFIG_EDAC_AMD8131=m + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc8 + + -- Andy Whitcroft Wed, 03 Jun 2009 09:21:13 +0100 + +linux (2.6.30-7.8) karmic; urgency=low + + [ Andy Whitcroft ] + + * Enabled NEW configration options: + Paravirtualization layer for spinlocks (PARAVIRT_SPINLOCKS) [N/y/?] Y + Cisco FNIC Driver (FCOE_FNIC) [N/m/y/?] M + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc7 + + -- Andy Whitcroft Sat, 23 May 2009 23:47:24 +0100 + +linux (2.6.30-6.7) karmic; urgency=low + + [ Andy Whitcroft ] + + * Dropped: UBUNTU: SAUCE: input: Blacklist digitizers from joydev.c (now + upstream) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc6 + + -- Andy Whitcroft Mon, 18 May 2009 18:05:54 +0100 + +linux (2.6.30-5.6) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enable Keyspan USB serial device firmware in kernel module + - LP: #334285 + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc5 + + -- Tim Gardner Mon, 11 May 2009 12:02:16 -0600 + +linux (2.6.30-4.5) karmic; urgency=low + + [ Colin Watson ] + + * Build-Conflict with findutils (= 4.4.1-1ubuntu1), to avoid + /usr/include/asm/* going missing + - LP: #373214 + + -- Stefan Bader Fri, 08 May 2009 11:09:08 +0200 + +linux (2.6.30-3.4) karmic; urgency=low + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + + [ Stefan Bader ] + + * SAUCE: input: Blacklist digitizers from joydev.c + - LP: #300143 + + -- Tim Gardner Fri, 01 May 2009 14:00:42 -0600 + +linux (2.6.30-2.3) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enabled CC_STACKPROTECTOR=y for all x86en + - LP: #369152 + * SAUCE: Default to i915_modeset=0 if CONFIG_DRM_I915_KMS=y + * [Config] CONFIG_DRM_I915_KMS=y + * [Config] Set CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR to appropriate ARCH + minimums + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc4 + + -- Tim Gardner Thu, 30 Apr 2009 09:17:05 -0600 + +linux (2.6.30-1.2) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] armel: disable staging drivers, fixes FTBS + * [Config] armel imx51: Disable CONFIG_MTD_NAND_MXC, fixes FTBS + + [ Upstream Kernel Changes ] + + * mpt2sas: Change reset_type enum to avoid namespace collision. + Submitted upstream. + + -- Tim Gardner Tue, 28 Apr 2009 16:54:41 -0600 + +linux (2.6.30-1.1) karmic; urgency=low + + * Initial release after rebasing against v2.6.30-rc3 + + -- Tim Gardner Thu, 12 Mar 2009 19:16:07 -0600 --- linux-3.2.0.orig/debian.master/NOTES +++ linux-3.2.0/debian.master/NOTES @@ -0,0 +1,4 @@ +eSCO patch removed. Replaced upstream with a disable_esco module parm. +airprime: Module gone, use option driver instead +AppArmor: Patch is all there and ported. Ooops when enabled, so default + off (still can be enabled apparmor=1) --- linux-3.2.0.orig/debian.master/control.stub +++ linux-3.2.0/debian.master/control.stub @@ -0,0 +1,625 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.8.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, dpkg (>= 1.16.0~ubuntu4), util-linux +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Build-Conflicts: findutils (= 4.4.1-1ubuntu1) +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-precise.git + +Package: linux-source-3.2.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 3.2.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.2.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-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.2.0 + This package provides the various documents in the 3.2.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-tools-common +Architecture: all +Section: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.2.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.2.0. + +Package: linux-headers-3.2.0-54 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-3 +Description: Header files related to Linux kernel version 3.2.0 + This package provides kernel header files for version 3.2.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 powerpc ppc64 armel armhf +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +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-tools-3.2.0-54 +Architecture: i386 amd64 powerpc ppc64 armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.2.0-54 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.2.0-54 on + 32 bit x86. + + +Package: linux-image-3.2.0-54-generic +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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-image-extra-3.2.0-54-generic +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-generic +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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-3.2.0-54-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 SMP + This package provides kernel header files for version 3.2.0 on + 32 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-generic-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 SMP + This package provides a kernel debug image for version 3.2.0 on + 32 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-image-3.2.0-54-generic-pae +Architecture: i386 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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 32 bit desktop or server systems with more than 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-generic-pae +Architecture: i386 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-generic-pae +Description: Linux kernel image for version 3.2.0 on 32 bit x86 SMP + This package contains the Linux kernel image for version 3.2.0 on + 32 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 32 bit desktop or server systems with more than 4GB RAM. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-pae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 SMP + This package provides kernel header files for version 3.2.0 on + 32 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-generic-pae-dbgsym +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 SMP + This package provides a kernel debug image for version 3.2.0 on + 32 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-image-3.2.0-54-highbank +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on Calxeda highbank ARM Server + This package contains the Linux kernel image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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 Calxeda highbank processors. + . + Targeted towards Calxeda highbank ARM Server + . + You likely do not want to install this package directly. Instead, install + the linux-highbank meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-highbank +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-highbank +Description: Linux kernel image for version 3.2.0 on Calxeda highbank ARM Server + This package contains the Linux kernel image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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 Calxeda highbank processors. + . + Targeted towards Calxeda highbank ARM Server + . + You likely do not want to install this package directly. Instead, install + the linux-highbank meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-highbank +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on Calxeda highbank ARM Server + This package provides kernel header files for version 3.2.0 on + Calxeda highbank ARM Server. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-highbank-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on Calxeda highbank ARM Server + This package provides a kernel debug image for version 3.2.0 on + Calxeda highbank ARM Server. + . + 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-image-3.2.0-54-omap +Architecture: armel armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package contains the Linux kernel image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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 TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-omap +Architecture: armel armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-omap +Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package contains the Linux kernel image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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 TI OMAP3 processors. + . + Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc. + . + You likely do not want to install this package directly. Instead, install + the linux-omap meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-omap +Architecture: armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package provides kernel header files for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-omap-dbgsym +Architecture: armel armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on TI OMAP3-based 32 bit x86 systems + This package provides a kernel debug image for version 3.2.0 on + TI OMAP3-based 32 bit x86 systems. + . + 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-image-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 64-bit PowerPC 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 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-powerpc64-smp +Description: Linux kernel image for version 3.2.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 64-bit PowerPC 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 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-powerpc64-smp +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 64-bit PowerPC SMP + This package provides kernel header files for version 3.2.0 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-powerpc64-smp-dbgsym +Architecture: powerpc ppc64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 3.2.0 on + 64-bit PowerPC 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-image-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 32-bit PowerPC 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 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-powerpc-smp +Description: Linux kernel image for version 3.2.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.2.0 on + 32-bit PowerPC 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 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32-bit PowerPC SMP + This package provides kernel header files for version 3.2.0 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 3.2.0 on + 32-bit PowerPC 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-image-3.2.0-54-virtual +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc | grub | lilo (>= 19.1) +Suggests: fdutils, linux-doc-3.2.0 | linux-source-3.2.0, linux-tools +Description: Linux kernel image for version 3.2.0 on 32 bit x86 Virtual Guests + This package contains the Linux kernel image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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 Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.2.0-54-virtual +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-54-virtual +Description: Linux kernel image for version 3.2.0 on 32 bit x86 Virtual Guests + This package contains the Linux kernel image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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 Virtual processors. + . + Geared toward virtual appliances. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.2.0-54-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.2.0-54, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.2.0 on 32 bit x86 Virtual Guests + This package provides kernel header files for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.2.0-54/debian.README.gz for details. + +Package: linux-image-3.2.0-54-virtual-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.2.0 on 32 bit x86 Virtual Guests + This package provides a kernel debug image for version 3.2.0 on + 32 bit x86 Virtual Guests. + . + 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. --- linux-3.2.0.orig/debian.master/etc/getabis +++ linux-3.2.0/debian.master/etc/getabis @@ -0,0 +1,17 @@ +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" +) + +package_prefixes linux-image linux-image-extra + +getall armel omap +getall armhf omap highbank +getall amd64 generic virtual +getall i386 generic generic-pae virtual + +# Ports arches and flavours. +getall powerpc powerpc-smp powerpc64-smp --- linux-3.2.0.orig/debian.master/etc/kernelconfig +++ linux-3.2.0/debian.master/etc/kernelconfig @@ -0,0 +1,7 @@ +if [ "$variant" = "ports" ]; then + archs="" + family='ports' +else + archs="amd64 i386 armel armhf powerpc ppc64" + family='ubuntu' +fi --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/abiname +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/abiname @@ -0,0 +1 @@ +53 --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/fwinfo +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/fwinfo @@ -0,0 +1,490 @@ +firmware: 3826.arm +firmware: 3com/3C359.bin +firmware: 3com/typhoon.bin +firmware: 6fire/dmx6fireap.ihx +firmware: 6fire/dmx6firecf.bin +firmware: 6fire/dmx6firel2.ihx +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: 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: ath3k-1.fw +firmware: ath6k/AR6003/hw2.0/athwlan.bin.z77 +firmware: ath6k/AR6003/hw2.0/bdata.bin +firmware: ath6k/AR6003/hw2.0/bdata.SD31.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.bin +firmware: ath6k/AR6003/hw2.1.1/bdata.SD31.bin +firmware: ath6k/AR6003/hw2.1.1/data.patch.bin +firmware: ath6k/AR6003/hw2.1.1/otp.bin +firmware: atmel_at76c502_3com.bin +firmware: atmel_at76c502_3com-wpa.bin +firmware: atmel_at76c502.bin +firmware: atmel_at76c502d.bin +firmware: atmel_at76c502d-wpa.bin +firmware: atmel_at76c502e.bin +firmware: atmel_at76c502e-wpa.bin +firmware: atmel_at76c502-wpa.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_2958.bin +firmware: atmel_at76c504_2958-wpa.bin +firmware: atmel_at76c504a_2958.bin +firmware: atmel_at76c504a_2958-wpa.bin +firmware: atmel_at76c504.bin +firmware: atmel_at76c504-wpa.bin +firmware: atmel_at76c505amx-rfmd.bin +firmware: atmel_at76c505a-rfmd2958.bin +firmware: atmel_at76c505-rfmd2958.bin +firmware: atmel_at76c505-rfmd.bin +firmware: atmel_at76c506.bin +firmware: atmel_at76c506-wpa.bin +firmware: atmsar11.fw +firmware: av7110/bootcode.bin +firmware: b43legacy/ucode2.fw +firmware: b43legacy/ucode4.fw +firmware: b43/ucode11.fw +firmware: b43/ucode13.fw +firmware: b43/ucode14.fw +firmware: b43/ucode15.fw +firmware: b43/ucode16_mimo.fw +firmware: b43/ucode5.fw +firmware: b43/ucode9.fw +firmware: BCM2033-FW.bin +firmware: BCM2033-MD.hex +firmware: bfubase.frm +firmware: bnx2/bnx2-mips-06-6.2.1.fw +firmware: bnx2/bnx2-mips-09-6.2.1a.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.0.29.0.fw +firmware: bnx2x/bnx2x-e1h-7.0.29.0.fw +firmware: bnx2x/bnx2x-e2-7.0.29.0.fw +firmware: brcm/bcm4329-fullmac-4.bin +firmware: brcm/bcm4329-fullmac-4.txt +firmware: BT3CPCC.bin +firmware: c218tunx.cod +firmware: c320tunx.cod +firmware: carl9170-1.fw +firmware: cbfw.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: comedi/jr3pci.idm +firmware: cp204unx.cod +firmware: ct2fw.bin +firmware: ctfw.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.10.0.bin +firmware: cxgb4/t4fw.bin +firmware: cyzfirm.bin +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/boot2.fw +firmware: edgeport/boot.fw +firmware: edgeport/down2.fw +firmware: edgeport/down3.bin +firmware: edgeport/down.fw +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/emu1010b.fw +firmware: emu/emu1010_notebook.fw +firmware: emu/hana.fw +firmware: emu/micro_dock.fw +firmware: ess/maestro3_assp_kernel.fw +firmware: ess/maestro3_assp_minisrc.fw +firmware: go7007fw.bin +firmware: go7007tv.bin +firmware: htc_7010.fw +firmware: htc_9271.fw +firmware: i1480-phy-0.0.bin +firmware: i1480-pre-phy-0.0.bin +firmware: i1480-usb-0.0.bin +firmware: i2400m-fw-sdio-1.3.sbcf +firmware: i2400m-fw-usb-1.5.sbcf +firmware: i6050-fw-usb-1.5.sbcf +firmware: ipw2100-1.3.fw +firmware: ipw2100-1.3-i.fw +firmware: ipw2100-1.3-p.fw +firmware: ipw2200-bss.fw +firmware: ipw2200-ibss.fw +firmware: ipw2200-sniffer.fw +firmware: isci/isci_firmware.bin +firmware: isdn/ISAR.BIN +firmware: isi4608.bin +firmware: isi4616.bin +firmware: isi608.bin +firmware: isi608em.bin +firmware: isi616em.bin +firmware: isight.fw +firmware: isl3877 +firmware: isl3886 +firmware: isl3886pci +firmware: isl3886usb +firmware: isl3887usb +firmware: isl3890 +firmware: iwlwifi-1000-5.ucode +firmware: iwlwifi-100-5.ucode +firmware: iwlwifi-105-6.ucode +firmware: iwlwifi-135-6.ucode +firmware: iwlwifi-2000-6.ucode +firmware: iwlwifi-2030-6.ucode +firmware: iwlwifi-3945-2.ucode +firmware: iwlwifi-4965-2.ucode +firmware: iwlwifi-5000-5.ucode +firmware: iwlwifi-5150-2.ucode +firmware: iwlwifi-6000-4.ucode +firmware: iwlwifi-6000g2a-5.ucode +firmware: iwlwifi-6000g2b-6.ucode +firmware: iwlwifi-6050-5.ucode +firmware: iwmc3200top.1.fw +firmware: iwmc3200wifi-calib-sdio.bin +firmware: iwmc3200wifi-lmac-sdio.bin +firmware: iwmc3200wifi-umac-sdio.bin +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_pda/keyspan_pda.fw +firmware: keyspan_pda/xircom_pgs.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/usa28xa.fw +firmware: keyspan/usa28xb.fw +firmware: keyspan/usa28x.fw +firmware: keyspan/usa49w.fw +firmware: keyspan/usa49wlc.fw +firmware: korg/k1212.dsp +firmware: lbtf_usb.bin +firmware: libertas/cf8305.bin +firmware: libertas/cf8381.bin +firmware: libertas/cf8381_helper.bin +firmware: libertas/cf8385.bin +firmware: libertas/cf8385_helper.bin +firmware: libertas_cs.fw +firmware: libertas_cs_helper.fw +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: matrox/g200_warp.fw +firmware: matrox/g400_warp.fw +firmware: mixart/miXart8AES.xlx +firmware: mixart/miXart8.elf +firmware: mixart/miXart8.xlx +firmware: mrvl/pcie8766_uapsta.bin +firmware: mrvl/sd8787_uapsta.bin +firmware: mrvl/sd8797_uapsta.bin +firmware: mts_cdma.fw +firmware: mts_edge.fw +firmware: mts_gsm.fw +firmware: mts_mt9234mu.fw +firmware: mts_mt9234zba.fw +firmware: mwl8k/fmimage_8363.fw +firmware: mwl8k/fmimage_8366_ap-2.fw +firmware: mwl8k/fmimage_8366.fw +firmware: mwl8k/fmimage_8687.fw +firmware: mwl8k/helper_8363.fw +firmware: mwl8k/helper_8366.fw +firmware: mwl8k/helper_8687.fw +firmware: myri10ge_ethp_z8e.dat +firmware: myri10ge_eth_z8e.dat +firmware: myri10ge_rss_ethp_z8e.dat +firmware: myri10ge_rss_eth_z8e.dat +firmware: orinoco_ezusb_fw +firmware: ositech/Xilinx7OD.bin +firmware: pca200e_ecd.bin2 +firmware: pcxhr/dspb1222e.b56 +firmware: pcxhr/dspb1222hr.b56 +firmware: pcxhr/dspb882e.b56 +firmware: pcxhr/dspb882hr.b56 +firmware: pcxhr/dspb924.b56 +firmware: pcxhr/dspd1222.d56 +firmware: pcxhr/dspd222.d56 +firmware: pcxhr/dspd882.d56 +firmware: pcxhr/dspe882.e56 +firmware: pcxhr/dspe924.e56 +firmware: pcxhr/xlxc1222e.dat +firmware: pcxhr/xlxc1222hr.dat +firmware: pcxhr/xlxc222.dat +firmware: pcxhr/xlxc882e.dat +firmware: pcxhr/xlxc882hr.dat +firmware: pcxhr/xlxc924.dat +firmware: pcxhr/xlxint.dat +firmware: phanfw.bin +firmware: prism2_ru.fw +firmware: prism_ap_fw.bin +firmware: prism_sta_fw.bin +firmware: 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: r128/r128_cce.bin +firmware: radeon/BARTS_mc.bin +firmware: radeon/BARTS_me.bin +firmware: radeon/BARTS_pfp.bin +firmware: radeon/BTC_rlc.bin +firmware: radeon/CAICOS_mc.bin +firmware: radeon/CAICOS_me.bin +firmware: radeon/CAICOS_pfp.bin +firmware: radeon/CAYMAN_mc.bin +firmware: radeon/CAYMAN_me.bin +firmware: radeon/CAYMAN_pfp.bin +firmware: radeon/CAYMAN_rlc.bin +firmware: radeon/CEDAR_me.bin +firmware: radeon/CEDAR_pfp.bin +firmware: radeon/CEDAR_rlc.bin +firmware: radeon/CYPRESS_me.bin +firmware: radeon/CYPRESS_pfp.bin +firmware: radeon/CYPRESS_rlc.bin +firmware: radeon/JUNIPER_me.bin +firmware: radeon/JUNIPER_pfp.bin +firmware: radeon/JUNIPER_rlc.bin +firmware: radeon/PALM_me.bin +firmware: radeon/PALM_pfp.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/R700_rlc.bin +firmware: radeon/REDWOOD_me.bin +firmware: radeon/REDWOOD_pfp.bin +firmware: radeon/REDWOOD_rlc.bin +firmware: radeon/RS600_cp.bin +firmware: radeon/RS690_cp.bin +firmware: radeon/RS780_me.bin +firmware: radeon/RS780_pfp.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/RV730_me.bin +firmware: radeon/RV730_pfp.bin +firmware: radeon/RV770_me.bin +firmware: radeon/RV770_pfp.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/TURKS_mc.bin +firmware: radeon/TURKS_me.bin +firmware: radeon/TURKS_pfp.bin +firmware: riptide.hex +firmware: rt2561.bin +firmware: rt2561s.bin +firmware: rt2661.bin +firmware: rt2860.bin +firmware: rt2870.bin +firmware: rt73.bin +firmware: RTL8192U/boot.img +firmware: RTL8192U/data.img +firmware: RTL8192U/main.img +firmware: rtl_nic/rtl8105e-1.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: rtlwifi/rtl8192cfw.bin +firmware: rtlwifi/rtl8192cfwU_B.bin +firmware: rtlwifi/rtl8192cfwU.bin +firmware: rtlwifi/rtl8192cufw.bin +firmware: rtlwifi/rtl8192defw.bin +firmware: rtlwifi/rtl8192sefw.bin +firmware: rtlwifi/rtl8712u.bin +firmware: sb16/alaw_main.csp +firmware: sb16/ima_adpcm_capture.csp +firmware: sb16/ima_adpcm_init.csp +firmware: sb16/ima_adpcm_playback.csp +firmware: sb16/mulaw_main.csp +firmware: scope.cod +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: sndscape.co0 +firmware: sndscape.co1 +firmware: sndscape.co2 +firmware: sndscape.co3 +firmware: sndscape.co4 +firmware: softing-4.6/bcard2.bin +firmware: softing-4.6/bcard.bin +firmware: softing-4.6/cancard.bin +firmware: softing-4.6/cancrd2.bin +firmware: softing-4.6/cansja.bin +firmware: softing-4.6/ldcard2.bin +firmware: softing-4.6/ldcard.bin +firmware: solos-db-FPGA.bin +firmware: solos-Firmware.bin +firmware: solos-FPGA.bin +firmware: sun/cassini.bin +firmware: symbol_sp24t_prim_fw +firmware: symbol_sp24t_sec_fw +firmware: tehuti/bdx.bin +firmware: ti_3410.fw +firmware: ti_5052.fw +firmware: ti-connectivity/wl127x-fw-3.bin +firmware: ti-connectivity/wl128x-fw-3.bin +firmware: tigon/tg3.bin +firmware: tigon/tg3_tso5.bin +firmware: tigon/tg3_tso.bin +firmware: tms380tr.bin +firmware: tr_smctr.bin +firmware: ttusb-budget/dspbootcode.bin +firmware: turtlebeach/msndinit.bin +firmware: turtlebeach/msndperm.bin +firmware: turtlebeach/pndsperm.bin +firmware: turtlebeach/pndspini.bin +firmware: usb8388.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: wavefront.os +firmware: whiteheat.fw +firmware: whiteheat_loader.fw +firmware: wl1251-fw.bin +firmware: yam/1200.bin +firmware: yam/9600.bin +firmware: yamaha/ds1_ctrl.fw +firmware: yamaha/ds1_dsp.fw +firmware: yamaha/ds1e_ctrl.fw +firmware: yamaha/yss225_registers.bin +firmware: zd1201-ap.fw +firmware: zd1201.fw +firmware: zd1211/zd1211b_ub +firmware: zd1211/zd1211b_uphr +firmware: zd1211/zd1211b_ur +firmware: zd1211/zd1211_ub +firmware: zd1211/zd1211_uphr +firmware: zd1211/zd1211_ur --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/armhf/highbank.modules +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/armhf/highbank.modules @@ -0,0 +1,2048 @@ +6lowpan +8021q +8250 +8250_dw +9p +9pnet +a3d +a8293 +ac97_bus +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad5360 +ad5398 +ad5446 +ad5504 +ad5624r_spi +ad5686 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7280a +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7793 +ad7816 +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm9240 +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adummy +adutux +adv7170 +adv7175 +adv7180 +adv7343 +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +afs +ah4 +ah6 +aircable +ak881x +ak8975 +alauda +algif_hash +algif_skcipher +alphatrack +altera_jtaguart +altera_ps2 +altera_uart +amc6821 +ams369fg06 +analog +ansi_cprng +anubis +aoe +appledisplay +appletalk +appletouch +ar7part +arc4 +ark3116 +arptable_filter +arp_tables +arpt_mangle +as5011 +asc7621 +asix +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at76c50x-usb +atbm8830 +aten +ath +ath3k +ath6kl +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atm +atmtcp +atxp1 +au0828 +au8522 +aufs +authenc +authencesn +auth_rpcgss +autofs4 +b2c2-flexcop +b2c2-flexcop-usb +b43 +b43legacy +b44 +batman-adv +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +befs +belkin_sa +bfs +bfusb +binfmt_aout +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluetooth +bma150 +bnep +bonding +bpa10x +bpck +bpck6 +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcmfmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt819 +bt856 +bt866 +btmrvl +btmrvl_sdio +btrfs +btsdio +btusb +btwilink +bw-qcam +c67x00 +cachefiles +caif +caif_hsi +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-gw +can-raw +carl9170 +cast5 +cast6 +catc +c_can +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfbcopyarea +cfbfillrect +cfbimgblt +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +chipreg +chnl_net +cifs +clip +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cma3000_d0x +cma3000_d0x_i2c +cobra +coda +comm +configfs +cp210x +cpia2 +c-qcam +cramfs +crc7 +crc8 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +crypto_user +cs5345 +cs53l32a +ctr +cts +cuse +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx24110 +cx24113 +cx24116 +cx24123 +cx25840 +cx82310_eth +cxacru +cxd2820r +cyberjack +cypress_cy7c63 +cypress_m8 +cytherm +db9 +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +de600 +de620 +decnet +deflate +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dib9000 +dibx000_common +digi_acceleport +diskonchip +display +dlm +dm9000 +dm9601 +dm-bufio +dm-crypt +dme1737 +dm-log +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-thin-pool +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docg3 +docprobe +drbd +drm +drxd +drxk +ds1621 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dstr +dummy +dvb-core +dvb-pll +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +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-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-omap +dw_mmc +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +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_ulog +ebt_vlan +ec100 +echo +econet +efs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +emc6w201 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_usb +em_text +em_u32 +enc28j60 +epat +epia +eql +esd_usb2 +esi-sir +esp4 +esp6 +ethoc +evbug +ext2 +f71805f +f71882fg +f75375s +faulty +fb_sys_fops +fcrypt +ff-memless +fit2 +fit3 +fm_drv +freevxfs +friq +frpw +fscache +ft1000 +ftdi-elan +ftdi_sio +ftl +funsoft +g760a +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +g_audio +g_cdc +gcm +g_dbgp +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_multi +g_ncm +g_nokia +gpio +gpio-74x164 +gpio-addr-flash +gpio-adp5588 +gpio-charger +gpio-fan +gpio-generic +gpio-i2cmux +gpio-it8761e +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-regulator +gpio_vbus +g_printer +gre +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +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_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +guillemot +g_webcam +g_zero +hci_uart +hci_vhci +hdpvr +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-holtekff +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-kovaplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-speedlink +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hmc5843 +hostap +hp4x +hpfs +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +i1480-dfu-usb +i1480-est +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-dev +i2c-diolan-u2c +i2c-gpio +i2c-mux +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-simtec +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-xiic +ibmaem +ibmpex +idmouse +ieee802154 +ifb +iforce +iio_dummy +iio-trig-gpio +iio-trig-periodic-rtc +iio-trig-sysfs +ili9320 +imm +imon +impa7 +imx074 +industrialio +inet_diag +inftl +input-polldev +int51x1 +interact +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ip_gre +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isight_firmware +isl29018 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it913x-fe +itd1000 +iuu_phoenix +iwmc3200top +iwmc3200wifi +ix2505v +jc42 +jedec_probe +jffs2 +jfs +joydev +joydump +kafs +kalmia +kaweth +kbic +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ktti +kxsd9 +kxtj9 +l2tp_core +l2tp_debugfs +l2tp_ppp +l4f00242t03 +l64781 +lapb +latch-addr-flash +lcd +ld9040 +ldusb +lec +leds-bd2802 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lt3593 +leds-mc13783 +leds-pca9532 +leds-pca955x +leds-pwm +leds-regulator +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gl5 +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcrc32c +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libiscsi +libiscsi_tcp +libsas +lightning +line6usb +lineage-pem +linear +lirc_dev +litelink-sir +lkkbd +llc +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lm95245 +lms283gf05 +lnbp21 +lnbp22 +lockd +lp +lp3971 +lp3972 +lpddr_cmds +lru_cache +lrw +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lzo +m25p80 +m52790 +ma600-sir +mac80211 +mac80211_hwsim +macvlan +macvtap +magellan +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +max1111 +max1363 +max1586 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max6639 +max6642 +max6650 +max7359_keypad +max8649 +max8660 +max8903_charger +max8952 +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio-bitbang +mdio-gpio +mem2mem_testdev +memstick +metronomefb +mg_disk +michael_mic +micrel +microtek +minix +mip6 +mma8450 +mos7720 +mos7840 +moto_modem +mpoa +mpr121_touchkey +mpu3050 +msdos +msp3400 +mspro_block +mt2060 +mt20xx +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtd_dataflash +mtdoops +mtdram +mtdswap +multipath +mv88e6060 +mv88e6xxx_drv +mwifiex +mwifiex_sdio +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +nand +nand_bch +nand_ecc +nand_ids +nandsim +navman +nbd +nci +ncpfs +net1080 +netconsole +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nftl +nf_tproxy_core +nilfs2 +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +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 +ns558 +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ofpart +of_serial +old_belkin-sir +omfs +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +p54common +p54spi +p54usb +p8022 +p8023 +panel +paride +parkbd +parport +parport_ax88796 +parport_pc +pc87360 +pc87427 +pca9541 +pca954x +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pcrypt +pd +pda_power +pegasus +pf +pg +phonedev +phonet +phram +physmap +physmap_of +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pn533 +pn544 +pn_pep +pohmelfs +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +pvrusb2 +pwc +pwm-beeper +pwm_bl +qcaux +qcserial +qinfo_probe +qnx4 +qt1010 +qt1070 +quatech_usb2 +quota_tree +radio-i2c-si470x +radio-mr800 +radio-si4713 +radio-tea5764 +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +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-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rds +rds_tcp +redboot +redrat3 +reed_solomon +regmap-i2c +regmap-spi +reiserfs +renesas_usbhs +rfcomm +rfd_ftl +rfkill-regulator +ring_sw +rio500 +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +romfs +rotary_encoder +rpcsec_gss_krb5 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-mc13xxx +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-pl030 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-twl +rtc-v3020 +rtc-x1205 +rtl8150 +rxkad +s1d13xxxfb +s2255drv +s5h1409 +s5h1411 +s5h1420 +s5h1432 +s6e63m0 +s921 +saa6588 +saa7110 +saa7115 +saa7127 +saa717x +saa7185 +saa7191 +saa7706h +safe_serial +salsa20_generic +sca3000 +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sdio_uart +seed +seeq8005 +seqiv +serio_raw +sermouse +serpent +serqt_usb2 +sha512_generic +sh_mobile_ceu_camera +sh_mobile_csi2 +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sir-dev +sit +sja1000 +sja1000_platform +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xx +smc911x +smc91x +sm_ftl +smm665 +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc95xx +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-aaci +snd-ac97-codec +snd-aloop +snd-dummy +snd-hrtimer +snd-hwdep +snd-mixer-oss +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-page-alloc +snd-pcm +snd-pcm-oss +snd-portman2x4 +snd-rawmidi +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-dfbmcs320 +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-max98088 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-sgtl5000 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm5100 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8782 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-timer +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-virmidi +soc_camera +soc_camera_platform +soc_mediabus +softing +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-gpio +spi-lm70llp +spi-oc-tiny +spi-tle62x0 +squashfs +sr030pc30 +ssb +ssfdc +sst25l +ssu100 +st +stb0899 +stb6000 +stb6100 +st_drv +stinger +stir4200 +stkwebcam +stmmac +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sunkbd +sunrpc +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +syscopyarea +sysfillrect +sysimgblt +sysv +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tca6416-keypad +tcm825x +tcm_fc +tcm_loop +tcp_diag +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tekram-sir +test-kstrtox +test_power +tgr192 +thmc50 +ths7303 +timb_dma +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlv320aic23b +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +toim3232-sir +tps6105x +tps6105x-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6524x-regulator +trancevibrator +tranzport +ts_bm +ts_fsm +ts_kmp +tsl2563 +tsl2583 +ttpci-eeprom +tua6100 +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl6030-pwm +twl6030-usb +twl6040-vibra +twofish_common +twofish_generic +u132-hcd +ub +ubi +ubifs +ucb1400_core +udf +udlfb +ueagle-atm +ufs +uio +uio_pdrv +uio_pdrv_genirq +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 +upd64031a +upd64083 +usb8xxx +usbatm +usb_debug +usbhid +usbip-core +usbip-host +usblcd +usbled +usblp +usbmon +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vgg2432a4 +vhci-hcd +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dvb +videobuf-vmalloc +videodev +virtual +visor +vivi +vivopay-serial +vmac +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vub300 +w1_bq27000 +w1_ds2408 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1-gpio +w1_smem +w1_therm +w35und +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83l785ts +w83l786ng +walkera0701 +wanrouter +warrior +whiteheat +wimax +wire +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xilinx_uartps +xor +xpad +x_tables +xt_addrtype +xt_AUDIT +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yealink +yurex +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr364xx +zram --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/armhf/highbank.compiler +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/armhf/highbank.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/armhf/omap.compiler +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/armhf/omap.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/armhf/omap.modules +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/armhf/omap.modules @@ -0,0 +1,2286 @@ +6lowpan +6pack +8021q +8250_dw +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +a3d +a8293 +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +ac97_bus +acecad +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5398 +ad5446 +ad5504 +ad5624r_spi +ad5686 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7280a +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adummy +adutux +adv7170 +adv7175 +adv7180 +adv7343 +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +afs +ah4 +ah6 +ahci_platform +aiptek +aircable +ak881x +ak8975 +alauda +algif_hash +algif_skcipher +alphatrack +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +amba-clcd +ambakmi +amba-pl010 +amba-pl011 +amc6821 +ams369fg06 +analog +ansi_cprng +anubis +aoe +apds9802als +apds990x +appledisplay +appletalk +appletouch +ar7part +arc4 +ark3116 +arptable_filter +arp_tables +arpt_mangle +as5011 +asc7621 +asix +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +atbm8830 +ath +ath3k +ath6kl +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atm +atmel_mxt_ts +atmel_pwm +atmel-pwm-bl +atmtcp +atxp1 +au0828 +au8522 +aufs +authenc +authencesn +auth_rpcgss +autofs4 +ax25 +ax88796 +b2c2-flexcop +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +befs +belkin_sa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluetooth +bma150 +bmp085 +bnep +bonding +bpa10x +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcmfmac +brcmutil +bridge +bridgedriver +broadsheetfb +bsd_comp +bt819 +bt856 +bt866 +btmrvl +btmrvl_sdio +btrfs +btsdio +btusb +btwilink +bu21013_ts +bw-qcam +c67x00 +cachefiles +caif +caif_hsi +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +carl9170 +cast5 +cast6 +catc +c_can +c_can_platform +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +chnl_net +cifs +clearpad_tm1217 +clip +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cma3000_d0x +cma3000_d0x_i2c +cmtp +cobra +coda +configfs +cordic +core +cp210x +cpia2 +c-qcam +cramfs +crc7 +crc8 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +crypto_user +cs5345 +cs53l32a +ctr +cts +cuse +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx24110 +cx24113 +cx24116 +cx24123 +cx25840 +cx82310_eth +cxacru +cxd2820r +cy8ctmg110_ts +cyberjack +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +davinci_cpdma +davinci_mdio +db9 +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +de600 +de620 +decnet +deflate +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dib9000 +dibx000_common +digi_acceleport +diskonchip +display +dlci +dlm +dm644x_ccdc +dm9000 +dm9601 +dm-bufio +dm-crypt +dme1737 +dm-log +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-thin-pool +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docg3 +docprobe +drbd +drm +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dss1_divert +dummy +dvb-as102 +dvb-core +dvb-pll +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +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-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-omap +dw_dmac +dw_mmc +dw_wdt +dynapro +easycap +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +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_ulog +ebt_vlan +ec100 +echo +econet +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +elo +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +emc6w201 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_usb +em_text +em_u32 +enc28j60 +enclosure +eql +esd_usb2 +esi-sir +esp4 +esp6 +ethoc +evbug +ext2 +f71805f +f71882fg +f75375s +faulty +fb_sys_fops +fcrypt +ff-memless +fm_drv +freevxfs +fsa9480 +fscache +ft1000 +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +g760a +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_multi +g_ncm +g_nokia +gpio +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-charger +gpio-fan +gpio-generic +gpio-i2cmux +gpio-it8761e +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-regulator +gpio-tps65912 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +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_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +g_zero +hampshire +hanwang +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +hfc4s8s_l1 +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-holtekff +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-kovaplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-speedlink +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hisax +hisax_st5481 +hmc5843 +hmc6352 +hostap +hp4x +hpfs +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +i1480-dfu-usb +i1480-est +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-designware-core +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-gpio +i2c-mux +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-simtec +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-xiic +ibmaem +ibmpex +ics932s401 +idmouse +ieee802154 +ifb +iforce +iio_dummy +iio-trig-gpio +iio-trig-periodic-rtc +iio-trig-sysfs +ili9320 +imon +impa7 +imx074 +industrialio +inet_diag +inexio +inftl +input-polldev +int51x1 +interact +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ip_gre +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isdnloop +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1301_omap +isp1704_charger +isp1760 +it87 +it913x-fe +itd1000 +iuu_phoenix +iwmc3200top +iwmc3200wifi +ix2505v +jc42 +jedec_probe +jffs2 +jfs +joydev +joydump +kafs +kalmia +kaweth +kbtab +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +kxsd9 +kxtj9 +l1oip +l2tp_core +l2tp_debugfs +l2tp_ppp +l4f00242t03 +l64781 +lapb +lapbether +latch-addr-flash +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lt3593 +leds-mc13783 +leds-pca9532 +leds-pca955x +leds-pwm +leds-regulator +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gl5 +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcrc32c +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libiscsi +libiscsi_tcp +libsas +lightning +line6usb +lineage-pem +linear +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lm95245 +lms283gf05 +lnbp21 +lnbp22 +lockd +lp +lp3971 +lp3972 +lpddr_cmds +lru_cache +lrw +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lzo +m25p80 +m52790 +ma600-sir +mac80211 +mac80211_hwsim +macvlan +macvtap +magellan +mailbox +mailbox_mach +map_absent +map_ram +map_rom +matrix_keypad +max1111 +max11801_ts +max1363 +max1586 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max63xx_wdt +max6639 +max6642 +max6650 +max6875 +max7359_keypad +max8649 +max8660 +max8903_charger +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8997 +max8997_charger +max8998 +max8998_charger +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio-bitbang +mdio-gpio +mem2mem_testdev +memstick +metronomefb +mg_disk +michael_mic +micrel +microtek +minix +mip6 +mISDN_core +mISDN_dsp +mk712 +mkiss +mma8450 +mmci +mmc_spi +mos7720 +mos7840 +moto_modem +mpoa +mpr121_touchkey +mpu3050 +msdos +msp3400 +mspro_block +mt2060 +mt20xx +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd_dataflash +mtdoops +mtdram +mtdswap +mtouch +multipath +mv88e6060 +mv88e6xxx_drv +mwifiex +mwifiex_sdio +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +nandsim +navman +nbd +nci +ncpfs +net1080 +netconsole +netrom +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nftl +nf_tproxy_core +n_hdlc +nilfs2 +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 +ns558 +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +of_mmc_spi +of_serial +old_belkin-sir +omap +omap2 +omap-aes +omap_hdq +omap-iommu-debug +omap-iovmm +omap-sham +omap-vout +omap_wdt +omfs +omninet +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +p54common +p54spi +p54usb +p8022 +p8023 +panel +panel-acx565akm +panel-lgphilips-lb035q02 +panel-nec-nl8048hl11-01b +panel-picodlp +parkbd +parport +parport_ax88796 +pata_arasan_cf +pata_of_platform +pata_platform +pc87360 +pc87427 +pca9541 +pca954x +pcap_keys +pcap_ts +pcbc +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pcwd_usb +pda_power +pegasus +penmount +phonedev +phonet +phram +physmap +physmap_of +pktcdvd +pktgen +pl2303 +pl330 +platform_lcd +plat_nand +plat-ram +plip +plusb +pn533 +pn544 +pn_pep +pohmelfs +poseidon +powermate +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pvrusb2 +pwc +pwm-beeper +pwm_bl +qcaux +qcserial +qinfo_probe +qnx4 +qt1010 +qt1070 +quatech_usb2 +quota_tree +quota_v1 +quota_v2 +r8712u +r8a66597-hcd +radio-i2c-si470x +radio-mr800 +radio-si4713 +radio-tea5764 +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +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-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rds +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +renesas_usbhs +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +ring_sw +rio500 +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rt2500usb +rt2800lib +rt2800usb +rt2x00lib +rt2x00usb +rt73usb +rtc-88pm860x +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-pcap +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-pl030 +rtc-pl031 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl8150 +rtl8187 +rtl8192c-common +rtl8192cu +rtlwifi +rts5139 +rxkad +s1d13xxxfb +s2255drv +s5h1409 +s5h1411 +s5h1420 +s5h1432 +s6e63m0 +s921 +saa6588 +saa7110 +saa7115 +saa7127 +saa717x +saa7185 +saa7191 +saa7706h +safe_serial +salsa20_generic +sata_mv +sca3000 +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +seed +seeq8005 +seqiv +ser_gigaset +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sha512_generic +sh_mobile_ceu_camera +sh_mobile_csi2 +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sir-dev +sisusbvga +sit +sja1000 +sja1000_platform +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xx +smc911x +smc91x +sm_ftl +smm665 +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc95xx +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd-aaci +snd-ac97-codec +snd-aloop +snd-dummy +snd-hrtimer +snd-hwdep +snd-mixer-oss +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-pcm-oss +snd-portman2x4 +snd-rawmidi +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-88pm860x +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-alc5623 +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-dfbmcs320 +snd-soc-igep0020 +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-max98088 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-omap3evm +snd-soc-omap3pandora +snd-soc-overo +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-rx51 +snd-soc-sdp3430 +snd-soc-sgtl5000 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm5100 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8782 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-soc-zoom2 +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-virmidi +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +sp805_wdt +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +speedtch +spi-altera +spi-bitbang +spi-butterfly +spi-dw +spi-gpio +spi-lm70llp +spi-oc-tiny +spi-omap2-mcspi +spi-pl022 +spi-tle62x0 +squashfs +sr030pc30 +ssb +ssfdc +sst25l +ssu100 +st +st1232 +stb0899 +stb6000 +stb6100 +st_drv +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sunkbd +sunrpc +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +syscopyarea +sysfillrect +sysimgblt +sysv +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tcm825x +tcm_fc +tcm_loop +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tekram-sir +test-kprobes +test-kstrtox +test_power +tgr192 +thmc50 +ths7303 +ti_dac7512 +ti_hecc +timb_dma +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlv320aic23b +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmio_mmc +tmio_mmc_core +tmio_nand +tmp102 +tmp401 +tmp421 +toim3232-sir +touchit213 +touchright +touchwin +tps6105x +tps6105x-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +trancevibrator +tranzport +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +ttpci-eeprom +tua6100 +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6030-pwm +twl6030-usb +twl6040-vibra +twofish_common +twofish_generic +u132-hcd +ub +ubi +ubifs +ucb1400_core +ucb1400_ts +udf +udlfb +ueagle-atm +ufs +uio +uio_pdrv +uio_pdrv_genirq +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 +upd64031a +upd64083 +usb8xxx +usbatm +usb_debug +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vgg2432a4 +vhci-hcd +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dvb +videobuf-vmalloc +videodev +virtual +visor +vivi +vivopay-serial +vmac +vp27smpx +vpfe_capture +vpss +vpx3220 +vsxxxaa +vt1211 +vub300 +w1_bq27000 +w1_ds2408 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1-gpio +w1_smem +w1_therm +w35und +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_w8001 +walkera0701 +wanrouter +warrior +whiteheat +wimax +wire +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xilinx_uartps +xor +xpad +x_tables +xt_addrtype +xt_AUDIT +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yurex +zaurus +zcache +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr364xx +zram --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/armhf/highbank +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/armhf/highbank @@ -0,0 +1,9008 @@ +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_free_64k +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0x00000000 gf128mul_x_ble +EXPORT_SYMBOL crypto/xor 0x00000000 xor_blocks +EXPORT_SYMBOL drivers/bcma/bcma 0x00000000 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_disk_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_write_regr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_validate_addr +EXPORT_SYMBOL drivers/char/nvram 0x00000000 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x00000000 __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x00000000 __nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0x00000000 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x00000000 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x00000000 nvram_write_byte +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_put +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x00000000 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x00000000 vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x00000000 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x00000000 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x00000000 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x00000000 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x00000000 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_unregister_port +EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x00000000 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x00000000 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x00000000 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x00000000 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_setup +EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_snap_origin +EXPORT_SYMBOL drivers/md/raid456 0x00000000 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x00000000 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x00000000 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x00000000 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x00000000 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x00000000 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x00000000 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18212 0x00000000 tda18212_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0x00000000 tda18218_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x00000000 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x00000000 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x00000000 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc4000 0x00000000 xc4000_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x00000000 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00000000 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00000000 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x00000000 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x00000000 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x00000000 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x00000000 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x00000000 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x00000000 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x00000000 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x00000000 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x00000000 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x00000000 rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00000000 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/frontends/a8293 0x00000000 a8293_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x00000000 af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x00000000 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x00000000 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x00000000 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x00000000 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x00000000 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x00000000 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x00000000 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x00000000 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x00000000 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x00000000 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x00000000 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cxd2820r 0x00000000 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x00000000 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x00000000 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x00000000 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x00000000 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x00000000 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x00000000 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x00000000 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x00000000 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x00000000 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x00000000 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x00000000 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x00000000 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x00000000 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x00000000 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x00000000 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x00000000 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x00000000 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x00000000 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x00000000 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x00000000 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x00000000 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x00000000 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x00000000 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x00000000 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x00000000 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7090_agc_restart +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x00000000 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x00000000 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_firmware_post_pll_init +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_fw_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_fw_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_fw_set_component_bus_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_get_component_bus_interface +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_get_tuner_interface +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_set_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x00000000 dib9000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x00000000 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x00000000 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x00000000 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x00000000 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x00000000 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x00000000 systime +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x00000000 drxd_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x00000000 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb/frontends/drxk 0x00000000 drxk_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x00000000 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x00000000 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0x00000000 ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x00000000 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x00000000 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x00000000 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/it913x-fe 0x00000000 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x00000000 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0x00000000 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x00000000 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x00000000 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x00000000 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gl5 0x00000000 lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x00000000 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x00000000 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x00000000 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp22 0x00000000 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x00000000 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0x00000000 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x00000000 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x00000000 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x00000000 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x00000000 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x00000000 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x00000000 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x00000000 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x00000000 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x00000000 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x00000000 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1432 0x00000000 s5h1432_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x00000000 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x00000000 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x00000000 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x00000000 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x00000000 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x00000000 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x00000000 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x00000000 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x00000000 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x00000000 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x00000000 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x00000000 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x00000000 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x00000000 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x00000000 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x00000000 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x00000000 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x00000000 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x00000000 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x00000000 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x00000000 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x00000000 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10071 0x00000000 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x00000000 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x00000000 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x00000000 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x00000000 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x00000000 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x00000000 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x00000000 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x00000000 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x00000000 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x00000000 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x00000000 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x00000000 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x00000000 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x00000000 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x00000000 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x00000000 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x00000000 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x00000000 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x00000000 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x00000000 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x00000000 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x00000000 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x00000000 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x00000000 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x00000000 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x00000000 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0x00000000 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx2341x 0x00000000 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x00000000 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0x00000000 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0x00000000 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x00000000 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x00000000 cx2341x_update +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x00000000 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x00000000 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x00000000 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x00000000 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x00000000 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x00000000 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x00000000 gspca_suspend +EXPORT_SYMBOL drivers/media/video/soc_camera 0x00000000 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x00000000 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x00000000 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x00000000 soc_camera_lock +EXPORT_SYMBOL drivers/media/video/soc_camera 0x00000000 soc_camera_unlock +EXPORT_SYMBOL drivers/media/video/soc_camera 0x00000000 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x00000000 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x00000000 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x00000000 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x00000000 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x00000000 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x00000000 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x00000000 tm6000_register_extension +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x00000000 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/video/tveeprom 0x00000000 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0x00000000 tveeprom_read +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x00000000 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x00000000 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x00000000 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x00000000 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x00000000 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x00000000 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x00000000 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x00000000 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x00000000 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x00000000 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x00000000 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x00000000 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x00000000 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x00000000 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf2-core 0x00000000 vb2_querybuf +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 __video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_add_event +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_del_event +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x00000000 video_usercopy +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_unregister_driver +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x00000000 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x00000000 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/tps6105x 0x00000000 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0x00000000 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x00000000 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x00000000 pwm_config +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x00000000 pwm_disable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x00000000 pwm_enable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x00000000 pwm_free +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x00000000 pwm_request +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x00000000 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x00000000 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x00000000 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x00000000 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0x00000000 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x00000000 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x00000000 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x00000000 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x00000000 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x00000000 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x00000000 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x00000000 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x00000000 nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x00000000 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x00000000 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x00000000 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x00000000 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x00000000 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x00000000 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x00000000 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x00000000 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x00000000 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x00000000 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x00000000 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x00000000 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x00000000 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00000000 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00000000 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00000000 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00000000 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00000000 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00000000 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00000000 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00000000 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00000000 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00000000 sirdev_write_complete +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x00000000 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x00000000 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x00000000 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x00000000 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktfrombuf +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pkttotlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00000000 prism2_update_comms_qual +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_write +EXPORT_SYMBOL drivers/parport/parport_pc 0x00000000 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x00000000 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pps/pps_core 0x00000000 pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x00000000 pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0x00000000 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0x00000000 pps_unregister_source +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x00000000 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_schedule_dv_device +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_set_devtypedata +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x00000000 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x00000000 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x00000000 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x00000000 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_buffer_read_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_buffer_read_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_buffer_show_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_buffer_store_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_buffer_write_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_pollfunc_store_time +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x00000000 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x00000000 iio_kfifo_allocate +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x00000000 iio_kfifo_free +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x00000000 kfifo_access_funcs +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x00000000 ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x00000000 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x00000000 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x00000000 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x00000000 ring_sw_access_funcs +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_get_task_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_splice_sess_cmd_list +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_wait_for_tasks +EXPORT_SYMBOL drivers/telephony/phonedev 0x00000000 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x00000000 phone_unregister_device +EXPORT_SYMBOL drivers/tty/serial/8250 0x00000000 serial8250_do_pm +EXPORT_SYMBOL drivers/tty/serial/8250 0x00000000 serial8250_do_set_termios +EXPORT_SYMBOL drivers/tty/serial/8250 0x00000000 serial8250_register_port +EXPORT_SYMBOL drivers/tty/serial/8250 0x00000000 serial8250_resume_port +EXPORT_SYMBOL drivers/tty/serial/8250 0x00000000 serial8250_set_isa_configurator +EXPORT_SYMBOL drivers/tty/serial/8250 0x00000000 serial8250_suspend_port +EXPORT_SYMBOL drivers/tty/serial/8250 0x00000000 serial8250_unregister_port +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x00000000 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x00000000 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x00000000 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x00000000 genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x00000000 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x00000000 lcd_device_unregister +EXPORT_SYMBOL drivers/video/cfbcopyarea 0x00000000 cfb_copyarea +EXPORT_SYMBOL drivers/video/cfbfillrect 0x00000000 cfb_fillrect +EXPORT_SYMBOL drivers/video/cfbimgblt 0x00000000 cfb_imageblit +EXPORT_SYMBOL drivers/video/display/display 0x00000000 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x00000000 display_device_unregister +EXPORT_SYMBOL drivers/video/output 0x00000000 video_output_register +EXPORT_SYMBOL drivers/video/output 0x00000000 video_output_unregister +EXPORT_SYMBOL drivers/video/syscopyarea 0x00000000 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x00000000 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x00000000 sys_imageblit +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x00000000 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x00000000 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x00000000 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x00000000 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x00000000 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x00000000 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x00000000 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x00000000 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x00000000 w1_ds2780_io_nolock +EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_unregister_family +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x00000000 configfs_unregister_subsystem +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_withdraw_cache +EXPORT_SYMBOL fs/nfsd/nfsd 0x00000000 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x00000000 nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x00000000 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x00000000 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x00000000 nfs4_acl_write_who +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_write_dquot +EXPORT_SYMBOL lib/crc-ccitt 0x00000000 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x00000000 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x00000000 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0x00000000 crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0x00000000 crc7 +EXPORT_SYMBOL lib/crc7 0x00000000 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x00000000 crc8 +EXPORT_SYMBOL lib/crc8 0x00000000 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0x00000000 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x00000000 crc32c +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_changed +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_create +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_del +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_find +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_get +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_put +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_set +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_try_get +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfmul +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x00000000 zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x00000000 zlib_deflateEnd +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x00000000 zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x00000000 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x00000000 zlib_deflate_workspacesize +EXPORT_SYMBOL net/802/p8022 0x00000000 register_8022_client +EXPORT_SYMBOL net/802/p8022 0x00000000 unregister_8022_client +EXPORT_SYMBOL net/802/p8023 0x00000000 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x00000000 make_8023_client +EXPORT_SYMBOL net/802/psnap 0x00000000 register_snap_client +EXPORT_SYMBOL net/802/psnap 0x00000000 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_unregister_trans +EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_charge +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x00000000 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x00000000 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x00000000 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0x00000000 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_hash +EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_sklist_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_printk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_find_link_key_type +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_find_ltk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_le_conn_update +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_le_ltk_reply +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_le_start_enc +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_unregister_proto +EXPORT_SYMBOL net/bridge/bridge 0x00000000 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x00000000 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x00000000 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x00000000 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x00000000 caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x00000000 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x00000000 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x00000000 caif_free_client +EXPORT_SYMBOL net/caif/caif 0x00000000 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x00000000 cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x00000000 cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x00000000 get_cfcnfg +EXPORT_SYMBOL net/can/can 0x00000000 can_ioctl +EXPORT_SYMBOL net/can/can 0x00000000 can_proto_register +EXPORT_SYMBOL net/can/can 0x00000000 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x00000000 can_rx_register +EXPORT_SYMBOL net/can/can 0x00000000 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x00000000 can_send +EXPORT_SYMBOL net/ceph/libceph 0x00000000 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_wait_event +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x00000000 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x00000000 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x00000000 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00000000 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00000000 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00000000 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x00000000 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/tunnel4 0x00000000 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x00000000 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x00000000 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x00000000 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x00000000 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x00000000 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x00000000 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x00000000 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x00000000 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x00000000 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x00000000 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x00000000 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x00000000 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x00000000 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x00000000 ircomm_open +EXPORT_SYMBOL net/irda/irda 0x00000000 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x00000000 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x00000000 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x00000000 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x00000000 hashbin_find +EXPORT_SYMBOL net/irda/irda 0x00000000 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x00000000 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x00000000 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x00000000 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x00000000 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x00000000 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x00000000 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x00000000 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x00000000 irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x00000000 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x00000000 irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x00000000 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x00000000 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x00000000 irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x00000000 iriap_close +EXPORT_SYMBOL net/irda/irda 0x00000000 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x00000000 iriap_open +EXPORT_SYMBOL net/irda/irda 0x00000000 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x00000000 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x00000000 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x00000000 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x00000000 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0x00000000 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x00000000 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x00000000 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x00000000 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x00000000 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0x00000000 irlap_close +EXPORT_SYMBOL net/irda/irda 0x00000000 irlap_open +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x00000000 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x00000000 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x00000000 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x00000000 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x00000000 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x00000000 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x00000000 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x00000000 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x00000000 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x00000000 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x00000000 proc_irda +EXPORT_SYMBOL net/l2tp/l2tp_core 0x00000000 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_unregister +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_set_station_handler +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_operstate +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_eosp_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x00000000 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x00000000 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x00000000 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_targets +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_alloc_skb +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_printk +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_unregister_device +EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_sock_unhash +EXPORT_SYMBOL net/rds/rds 0x00000000 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00000000 rxrpc_kernel_send_data +EXPORT_SYMBOL net/sunrpc/sunrpc 0x00000000 svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x00000000 register_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x00000000 unregister_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x00000000 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x00000000 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee802_11_parse_elems_crc +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_unregister +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 print_ssid +EXPORT_SYMBOL sound/ac97_bus 0x00000000 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x00000000 snd_mixer_oss_ioctl_card +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x00000000 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x00000000 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x00000000 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x00000000 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x00000000 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x00000000 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x00000000 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x00000000 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x00000000 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x00000000 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x00000000 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_cards +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_lookup_oss_minor_data +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_major +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd-hwdep 0x00000000 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x00000000 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x00000000 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x00000000 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x00000000 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x00000000 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x00000000 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x00000000 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_stop +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x00000000 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x00000000 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x00000000 snd_mpu401_uart_new +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_write_cache +EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x00000000 sound_class +EXPORT_SYMBOL sound/soundcore 0x00000000 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x00000000 unregister_sound_midi +EXPORT_SYMBOL sound/soundcore 0x00000000 unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x00000000 unregister_sound_special +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_disconnect +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_input_stop +EXPORT_SYMBOL vmlinux 0x00000000 I_BDEV +EXPORT_SYMBOL vmlinux 0x00000000 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x00000000 ___dma_page_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x00000000 ___dma_page_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x00000000 ___dma_single_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x00000000 ___dma_single_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x00000000 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x00000000 ___ratelimit +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_unwind_cpp_pr0 +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x00000000 __aeabi_unwind_cpp_pr2 +EXPORT_SYMBOL vmlinux 0x00000000 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x00000000 __alloc_skb +EXPORT_SYMBOL vmlinux 0x00000000 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x00000000 __arm_ioremap +EXPORT_SYMBOL vmlinux 0x00000000 __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x00000000 __ashldi3 +EXPORT_SYMBOL vmlinux 0x00000000 __ashrdi3 +EXPORT_SYMBOL vmlinux 0x00000000 __bad_xchg +EXPORT_SYMBOL vmlinux 0x00000000 __bdevname +EXPORT_SYMBOL vmlinux 0x00000000 __bforget +EXPORT_SYMBOL vmlinux 0x00000000 __bio_clone +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_and +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_complement +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_equal +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_full +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_intersects +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_or +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_parse +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_xor +EXPORT_SYMBOL vmlinux 0x00000000 __blk_end_request +EXPORT_SYMBOL vmlinux 0x00000000 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x00000000 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x00000000 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0x00000000 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x00000000 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x00000000 __block_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x00000000 __bread +EXPORT_SYMBOL vmlinux 0x00000000 __breadahead +EXPORT_SYMBOL vmlinux 0x00000000 __break_lease +EXPORT_SYMBOL vmlinux 0x00000000 __brelse +EXPORT_SYMBOL vmlinux 0x00000000 __cap_empty_set +EXPORT_SYMBOL vmlinux 0x00000000 __check_region +EXPORT_SYMBOL vmlinux 0x00000000 __clear_user +EXPORT_SYMBOL vmlinux 0x00000000 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x00000000 __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x00000000 __const_udelay +EXPORT_SYMBOL vmlinux 0x00000000 __copy_from_user +EXPORT_SYMBOL vmlinux 0x00000000 __copy_to_user +EXPORT_SYMBOL vmlinux 0x00000000 __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x00000000 __d_drop +EXPORT_SYMBOL vmlinux 0x00000000 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 __destroy_inode +EXPORT_SYMBOL vmlinux 0x00000000 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x00000000 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x00000000 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x00000000 __dev_printk +EXPORT_SYMBOL vmlinux 0x00000000 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x00000000 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x00000000 __devm_release_region +EXPORT_SYMBOL vmlinux 0x00000000 __devm_request_region +EXPORT_SYMBOL vmlinux 0x00000000 __div0 +EXPORT_SYMBOL vmlinux 0x00000000 __div64_32 +EXPORT_SYMBOL vmlinux 0x00000000 __divsi3 +EXPORT_SYMBOL vmlinux 0x00000000 __do_div64 +EXPORT_SYMBOL vmlinux 0x00000000 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x00000000 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x00000000 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x00000000 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x00000000 __dst_free +EXPORT_SYMBOL vmlinux 0x00000000 __elv_add_request +EXPORT_SYMBOL vmlinux 0x00000000 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x00000000 __f_setown +EXPORT_SYMBOL vmlinux 0x00000000 __find_get_block +EXPORT_SYMBOL vmlinux 0x00000000 __first_cpu +EXPORT_SYMBOL vmlinux 0x00000000 __free_pages +EXPORT_SYMBOL vmlinux 0x00000000 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x00000000 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x00000000 __get_free_pages +EXPORT_SYMBOL vmlinux 0x00000000 __get_page_tail +EXPORT_SYMBOL vmlinux 0x00000000 __get_user_1 +EXPORT_SYMBOL vmlinux 0x00000000 __get_user_2 +EXPORT_SYMBOL vmlinux 0x00000000 __get_user_4 +EXPORT_SYMBOL vmlinux 0x00000000 __get_user_pages +EXPORT_SYMBOL vmlinux 0x00000000 __getblk +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_init +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x00000000 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 __inet6_hash +EXPORT_SYMBOL vmlinux 0x00000000 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x00000000 __init_rwsem +EXPORT_SYMBOL vmlinux 0x00000000 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x00000000 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x00000000 __invalidate_device +EXPORT_SYMBOL vmlinux 0x00000000 __iounmap +EXPORT_SYMBOL vmlinux 0x00000000 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x00000000 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x00000000 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x00000000 __irq_regs +EXPORT_SYMBOL vmlinux 0x00000000 __kernel_param_lock +EXPORT_SYMBOL vmlinux 0x00000000 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_free +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_in +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_init +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfree_skb +EXPORT_SYMBOL vmlinux 0x00000000 __kmalloc +EXPORT_SYMBOL vmlinux 0x00000000 __kmap_atomic +EXPORT_SYMBOL vmlinux 0x00000000 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x00000000 __krealloc +EXPORT_SYMBOL vmlinux 0x00000000 __kunmap_atomic +EXPORT_SYMBOL vmlinux 0x00000000 __lock_buffer +EXPORT_SYMBOL vmlinux 0x00000000 __lock_page +EXPORT_SYMBOL vmlinux 0x00000000 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x00000000 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x00000000 __lshrdi3 +EXPORT_SYMBOL vmlinux 0x00000000 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x00000000 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x00000000 __memzero +EXPORT_SYMBOL vmlinux 0x00000000 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x00000000 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 __modsi3 +EXPORT_SYMBOL vmlinux 0x00000000 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x00000000 __muldi3 +EXPORT_SYMBOL vmlinux 0x00000000 __mutex_init +EXPORT_SYMBOL vmlinux 0x00000000 __napi_complete +EXPORT_SYMBOL vmlinux 0x00000000 __napi_schedule +EXPORT_SYMBOL vmlinux 0x00000000 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x00000000 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x00000000 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x00000000 __netdev_printk +EXPORT_SYMBOL vmlinux 0x00000000 __netif_schedule +EXPORT_SYMBOL vmlinux 0x00000000 __next_cpu +EXPORT_SYMBOL vmlinux 0x00000000 __nla_put +EXPORT_SYMBOL vmlinux 0x00000000 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x00000000 __nla_reserve +EXPORT_SYMBOL vmlinux 0x00000000 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x00000000 __page_symlink +EXPORT_SYMBOL vmlinux 0x00000000 __pagevec_release +EXPORT_SYMBOL vmlinux 0x00000000 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x00000000 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x00000000 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x00000000 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x00000000 __print_symbol +EXPORT_SYMBOL vmlinux 0x00000000 __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x00000000 __ps2_command +EXPORT_SYMBOL vmlinux 0x00000000 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x00000000 __put_cred +EXPORT_SYMBOL vmlinux 0x00000000 __put_user_1 +EXPORT_SYMBOL vmlinux 0x00000000 __put_user_2 +EXPORT_SYMBOL vmlinux 0x00000000 __put_user_4 +EXPORT_SYMBOL vmlinux 0x00000000 __put_user_8 +EXPORT_SYMBOL vmlinux 0x00000000 __pv_phys_offset +EXPORT_SYMBOL vmlinux 0x00000000 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x00000000 __quota_error +EXPORT_SYMBOL vmlinux 0x00000000 __raw_readsb +EXPORT_SYMBOL vmlinux 0x00000000 __raw_readsl +EXPORT_SYMBOL vmlinux 0x00000000 __raw_readsw +EXPORT_SYMBOL vmlinux 0x00000000 __raw_writesb +EXPORT_SYMBOL vmlinux 0x00000000 __raw_writesl +EXPORT_SYMBOL vmlinux 0x00000000 __raw_writesw +EXPORT_SYMBOL vmlinux 0x00000000 __readwrite_bug +EXPORT_SYMBOL vmlinux 0x00000000 __register_binfmt +EXPORT_SYMBOL vmlinux 0x00000000 __register_chrdev +EXPORT_SYMBOL vmlinux 0x00000000 __release_region +EXPORT_SYMBOL vmlinux 0x00000000 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x00000000 __request_module +EXPORT_SYMBOL vmlinux 0x00000000 __request_region +EXPORT_SYMBOL vmlinux 0x00000000 __rta_fill +EXPORT_SYMBOL vmlinux 0x00000000 __scm_destroy +EXPORT_SYMBOL vmlinux 0x00000000 __scm_send +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_print_command +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x00000000 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x00000000 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x00000000 __seq_open_private +EXPORT_SYMBOL vmlinux 0x00000000 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 __serio_register_port +EXPORT_SYMBOL vmlinux 0x00000000 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x00000000 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x00000000 __set_personality +EXPORT_SYMBOL vmlinux 0x00000000 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x00000000 __sg_free_table +EXPORT_SYMBOL vmlinux 0x00000000 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x00000000 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x00000000 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x00000000 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x00000000 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x00000000 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x00000000 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x00000000 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x00000000 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x00000000 __sock_create +EXPORT_SYMBOL vmlinux 0x00000000 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x00000000 __stack_chk_fail +EXPORT_SYMBOL vmlinux 0x00000000 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x00000000 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x00000000 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x00000000 __strnlen_user +EXPORT_SYMBOL vmlinux 0x00000000 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x00000000 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x00000000 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x00000000 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x00000000 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x00000000 __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x00000000 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0x00000000 __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x00000000 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x00000000 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x00000000 __udelay +EXPORT_SYMBOL vmlinux 0x00000000 __udivsi3 +EXPORT_SYMBOL vmlinux 0x00000000 __umodsi3 +EXPORT_SYMBOL vmlinux 0x00000000 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x00000000 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x00000000 __vmalloc +EXPORT_SYMBOL vmlinux 0x00000000 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x00000000 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x00000000 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x00000000 __wake_up +EXPORT_SYMBOL vmlinux 0x00000000 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x00000000 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x00000000 _change_bit +EXPORT_SYMBOL vmlinux 0x00000000 _clear_bit +EXPORT_SYMBOL vmlinux 0x00000000 _cond_resched +EXPORT_SYMBOL vmlinux 0x00000000 _ctype +EXPORT_SYMBOL vmlinux 0x00000000 _dev_info +EXPORT_SYMBOL vmlinux 0x00000000 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x00000000 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0x00000000 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x00000000 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x00000000 _kstrtol +EXPORT_SYMBOL vmlinux 0x00000000 _kstrtoul +EXPORT_SYMBOL vmlinux 0x00000000 _local_bh_enable +EXPORT_SYMBOL vmlinux 0x00000000 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x00000000 _memcpy_toio +EXPORT_SYMBOL vmlinux 0x00000000 _memset_io +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_unlock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_unlock_irq +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_unlock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_unlock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_unlock_irq +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x00000000 _set_bit +EXPORT_SYMBOL vmlinux 0x00000000 _test_and_change_bit +EXPORT_SYMBOL vmlinux 0x00000000 _test_and_clear_bit +EXPORT_SYMBOL vmlinux 0x00000000 _test_and_set_bit +EXPORT_SYMBOL vmlinux 0x00000000 abort +EXPORT_SYMBOL vmlinux 0x00000000 abort_creds +EXPORT_SYMBOL vmlinux 0x00000000 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x00000000 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x00000000 account_page_redirty +EXPORT_SYMBOL vmlinux 0x00000000 account_page_writeback +EXPORT_SYMBOL vmlinux 0x00000000 add_device_randomness +EXPORT_SYMBOL vmlinux 0x00000000 add_disk +EXPORT_SYMBOL vmlinux 0x00000000 add_taint +EXPORT_SYMBOL vmlinux 0x00000000 add_timer +EXPORT_SYMBOL vmlinux 0x00000000 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x00000000 add_wait_queue +EXPORT_SYMBOL vmlinux 0x00000000 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x00000000 address_space_init_once +EXPORT_SYMBOL vmlinux 0x00000000 adjust_resource +EXPORT_SYMBOL vmlinux 0x00000000 aio_complete +EXPORT_SYMBOL vmlinux 0x00000000 aio_put_req +EXPORT_SYMBOL vmlinux 0x00000000 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x00000000 alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x00000000 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x00000000 alloc_disk +EXPORT_SYMBOL vmlinux 0x00000000 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x00000000 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x00000000 alloc_file +EXPORT_SYMBOL vmlinux 0x00000000 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x00000000 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x00000000 allocate_resource +EXPORT_SYMBOL vmlinux 0x00000000 allow_signal +EXPORT_SYMBOL vmlinux 0x00000000 amba_device_register +EXPORT_SYMBOL vmlinux 0x00000000 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x00000000 amba_driver_register +EXPORT_SYMBOL vmlinux 0x00000000 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0x00000000 amba_find_device +EXPORT_SYMBOL vmlinux 0x00000000 amba_release_regions +EXPORT_SYMBOL vmlinux 0x00000000 amba_request_regions +EXPORT_SYMBOL vmlinux 0x00000000 argv_free +EXPORT_SYMBOL vmlinux 0x00000000 argv_split +EXPORT_SYMBOL vmlinux 0x00000000 arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0x00000000 arp_create +EXPORT_SYMBOL vmlinux 0x00000000 arp_find +EXPORT_SYMBOL vmlinux 0x00000000 arp_invalidate +EXPORT_SYMBOL vmlinux 0x00000000 arp_send +EXPORT_SYMBOL vmlinux 0x00000000 arp_tbl +EXPORT_SYMBOL vmlinux 0x00000000 arp_xmit +EXPORT_SYMBOL vmlinux 0x00000000 ata_dev_printk +EXPORT_SYMBOL vmlinux 0x00000000 ata_link_printk +EXPORT_SYMBOL vmlinux 0x00000000 ata_port_printk +EXPORT_SYMBOL vmlinux 0x00000000 ata_print_version +EXPORT_SYMBOL vmlinux 0x00000000 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x00000000 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x00000000 audit_log +EXPORT_SYMBOL vmlinux 0x00000000 audit_log_end +EXPORT_SYMBOL vmlinux 0x00000000 audit_log_format +EXPORT_SYMBOL vmlinux 0x00000000 audit_log_secctx +EXPORT_SYMBOL vmlinux 0x00000000 audit_log_start +EXPORT_SYMBOL vmlinux 0x00000000 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0x00000000 avenrun +EXPORT_SYMBOL vmlinux 0x00000000 backlight_device_register +EXPORT_SYMBOL vmlinux 0x00000000 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x00000000 backlight_force_update +EXPORT_SYMBOL vmlinux 0x00000000 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x00000000 bcd2bin +EXPORT_SYMBOL vmlinux 0x00000000 bd_set_size +EXPORT_SYMBOL vmlinux 0x00000000 bdev_read_only +EXPORT_SYMBOL vmlinux 0x00000000 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x00000000 bdevname +EXPORT_SYMBOL vmlinux 0x00000000 bdget +EXPORT_SYMBOL vmlinux 0x00000000 bdget_disk +EXPORT_SYMBOL vmlinux 0x00000000 bdgrab +EXPORT_SYMBOL vmlinux 0x00000000 bdi_destroy +EXPORT_SYMBOL vmlinux 0x00000000 bdi_init +EXPORT_SYMBOL vmlinux 0x00000000 bdi_register +EXPORT_SYMBOL vmlinux 0x00000000 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x00000000 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x00000000 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x00000000 bdi_unregister +EXPORT_SYMBOL vmlinux 0x00000000 bdput +EXPORT_SYMBOL vmlinux 0x00000000 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x00000000 bh_submit_read +EXPORT_SYMBOL vmlinux 0x00000000 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x00000000 bin2bcd +EXPORT_SYMBOL vmlinux 0x00000000 bio_add_page +EXPORT_SYMBOL vmlinux 0x00000000 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x00000000 bio_alloc +EXPORT_SYMBOL vmlinux 0x00000000 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x00000000 bio_clone +EXPORT_SYMBOL vmlinux 0x00000000 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x00000000 bio_copy_user +EXPORT_SYMBOL vmlinux 0x00000000 bio_endio +EXPORT_SYMBOL vmlinux 0x00000000 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x00000000 bio_free +EXPORT_SYMBOL vmlinux 0x00000000 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x00000000 bio_init +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x00000000 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x00000000 bio_map_kern +EXPORT_SYMBOL vmlinux 0x00000000 bio_map_user +EXPORT_SYMBOL vmlinux 0x00000000 bio_pair_release +EXPORT_SYMBOL vmlinux 0x00000000 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x00000000 bio_put +EXPORT_SYMBOL vmlinux 0x00000000 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x00000000 bio_split +EXPORT_SYMBOL vmlinux 0x00000000 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x00000000 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x00000000 bioset_create +EXPORT_SYMBOL vmlinux 0x00000000 bioset_free +EXPORT_SYMBOL vmlinux 0x00000000 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x00000000 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x00000000 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_bitremap +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_clear +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_fold +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_onto +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_remap +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_set +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x00000000 bitrev16 +EXPORT_SYMBOL vmlinux 0x00000000 bitrev32 +EXPORT_SYMBOL vmlinux 0x00000000 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x00000000 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_complete_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_delay_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x00000000 blk_end_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x00000000 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x00000000 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x00000000 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_finish_plug +EXPORT_SYMBOL vmlinux 0x00000000 blk_free_tags +EXPORT_SYMBOL vmlinux 0x00000000 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x00000000 blk_get_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_get_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_init_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x00000000 blk_init_tags +EXPORT_SYMBOL vmlinux 0x00000000 blk_insert_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x00000000 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0x00000000 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0x00000000 blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x00000000 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x00000000 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x00000000 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x00000000 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x00000000 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x00000000 blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x00000000 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x00000000 blk_make_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x00000000 blk_peek_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_put_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_put_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x00000000 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x00000000 blk_register_region +EXPORT_SYMBOL vmlinux 0x00000000 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_init +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x00000000 blk_run_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x00000000 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x00000000 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x00000000 blk_start_plug +EXPORT_SYMBOL vmlinux 0x00000000 blk_start_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_start_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x00000000 blk_verify_command +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_get +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_put +EXPORT_SYMBOL vmlinux 0x00000000 block_all_signals +EXPORT_SYMBOL vmlinux 0x00000000 block_commit_write +EXPORT_SYMBOL vmlinux 0x00000000 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x00000000 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x00000000 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x00000000 block_read_full_page +EXPORT_SYMBOL vmlinux 0x00000000 block_truncate_page +EXPORT_SYMBOL vmlinux 0x00000000 block_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 block_write_end +EXPORT_SYMBOL vmlinux 0x00000000 block_write_full_page +EXPORT_SYMBOL vmlinux 0x00000000 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x00000000 bmap +EXPORT_SYMBOL vmlinux 0x00000000 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x00000000 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x00000000 brioctl_set +EXPORT_SYMBOL vmlinux 0x00000000 bsearch +EXPORT_SYMBOL vmlinux 0x00000000 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x00000000 cacheid +EXPORT_SYMBOL vmlinux 0x00000000 cad_pid +EXPORT_SYMBOL vmlinux 0x00000000 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x00000000 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x00000000 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x00000000 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x00000000 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x00000000 can_do_mlock +EXPORT_SYMBOL vmlinux 0x00000000 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x00000000 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x00000000 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x00000000 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x00000000 capable +EXPORT_SYMBOL vmlinux 0x00000000 cdev_add +EXPORT_SYMBOL vmlinux 0x00000000 cdev_alloc +EXPORT_SYMBOL vmlinux 0x00000000 cdev_del +EXPORT_SYMBOL vmlinux 0x00000000 cdev_init +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_open +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_release +EXPORT_SYMBOL vmlinux 0x00000000 check_disk_change +EXPORT_SYMBOL vmlinux 0x00000000 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x00000000 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x00000000 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x00000000 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x00000000 clk_add_alias +EXPORT_SYMBOL vmlinux 0x00000000 clk_get +EXPORT_SYMBOL vmlinux 0x00000000 clk_get_sys +EXPORT_SYMBOL vmlinux 0x00000000 clk_put +EXPORT_SYMBOL vmlinux 0x00000000 clkdev_add +EXPORT_SYMBOL vmlinux 0x00000000 clkdev_alloc +EXPORT_SYMBOL vmlinux 0x00000000 clkdev_drop +EXPORT_SYMBOL vmlinux 0x00000000 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x00000000 clocksource_register +EXPORT_SYMBOL vmlinux 0x00000000 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x00000000 color_table +EXPORT_SYMBOL vmlinux 0x00000000 commit_creds +EXPORT_SYMBOL vmlinux 0x00000000 complete +EXPORT_SYMBOL vmlinux 0x00000000 complete_all +EXPORT_SYMBOL vmlinux 0x00000000 complete_and_exit +EXPORT_SYMBOL vmlinux 0x00000000 complete_request_key +EXPORT_SYMBOL vmlinux 0x00000000 completion_done +EXPORT_SYMBOL vmlinux 0x00000000 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x00000000 con_is_bound +EXPORT_SYMBOL vmlinux 0x00000000 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x00000000 congestion_wait +EXPORT_SYMBOL vmlinux 0x00000000 console_blank_hook +EXPORT_SYMBOL vmlinux 0x00000000 console_blanked +EXPORT_SYMBOL vmlinux 0x00000000 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0x00000000 console_lock +EXPORT_SYMBOL vmlinux 0x00000000 console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x00000000 console_start +EXPORT_SYMBOL vmlinux 0x00000000 console_stop +EXPORT_SYMBOL vmlinux 0x00000000 console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x00000000 console_trylock +EXPORT_SYMBOL vmlinux 0x00000000 console_unlock +EXPORT_SYMBOL vmlinux 0x00000000 consume_skb +EXPORT_SYMBOL vmlinux 0x00000000 cont_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 contig_page_data +EXPORT_SYMBOL vmlinux 0x00000000 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x00000000 copy_page +EXPORT_SYMBOL vmlinux 0x00000000 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x00000000 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x00000000 cpu_all_bits +EXPORT_SYMBOL vmlinux 0x00000000 cpu_cache +EXPORT_SYMBOL vmlinux 0x00000000 cpu_down +EXPORT_SYMBOL vmlinux 0x00000000 cpu_online_mask +EXPORT_SYMBOL vmlinux 0x00000000 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x00000000 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x00000000 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x00000000 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x00000000 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x00000000 cpu_tlb +EXPORT_SYMBOL vmlinux 0x00000000 cpu_user +EXPORT_SYMBOL vmlinux 0x00000000 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0x00000000 cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0x00000000 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x00000000 crc16 +EXPORT_SYMBOL vmlinux 0x00000000 crc16_table +EXPORT_SYMBOL vmlinux 0x00000000 crc32_be +EXPORT_SYMBOL vmlinux 0x00000000 crc32_le +EXPORT_SYMBOL vmlinux 0x00000000 crc_t10dif +EXPORT_SYMBOL vmlinux 0x00000000 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x00000000 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x00000000 create_proc_entry +EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x00000000 csum_partial +EXPORT_SYMBOL vmlinux 0x00000000 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x00000000 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00000000 csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 current_kernel_time +EXPORT_SYMBOL vmlinux 0x00000000 current_umask +EXPORT_SYMBOL vmlinux 0x00000000 d_add_ci +EXPORT_SYMBOL vmlinux 0x00000000 d_alloc +EXPORT_SYMBOL vmlinux 0x00000000 d_alloc_name +EXPORT_SYMBOL vmlinux 0x00000000 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x00000000 d_alloc_root +EXPORT_SYMBOL vmlinux 0x00000000 d_clear_need_lookup +EXPORT_SYMBOL vmlinux 0x00000000 d_delete +EXPORT_SYMBOL vmlinux 0x00000000 d_drop +EXPORT_SYMBOL vmlinux 0x00000000 d_find_alias +EXPORT_SYMBOL vmlinux 0x00000000 d_genocide +EXPORT_SYMBOL vmlinux 0x00000000 d_instantiate +EXPORT_SYMBOL vmlinux 0x00000000 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x00000000 d_invalidate +EXPORT_SYMBOL vmlinux 0x00000000 d_lookup +EXPORT_SYMBOL vmlinux 0x00000000 d_move +EXPORT_SYMBOL vmlinux 0x00000000 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x00000000 d_path +EXPORT_SYMBOL vmlinux 0x00000000 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x00000000 d_rehash +EXPORT_SYMBOL vmlinux 0x00000000 d_set_d_op +EXPORT_SYMBOL vmlinux 0x00000000 d_splice_alias +EXPORT_SYMBOL vmlinux 0x00000000 d_validate +EXPORT_SYMBOL vmlinux 0x00000000 daemonize +EXPORT_SYMBOL vmlinux 0x00000000 datagram_poll +EXPORT_SYMBOL vmlinux 0x00000000 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x00000000 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x00000000 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x00000000 dcache_readdir +EXPORT_SYMBOL vmlinux 0x00000000 dcb_getapp +EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x00000000 dcb_setapp +EXPORT_SYMBOL vmlinux 0x00000000 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x00000000 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x00000000 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x00000000 deactivate_super +EXPORT_SYMBOL vmlinux 0x00000000 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 default_blu +EXPORT_SYMBOL vmlinux 0x00000000 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x00000000 default_grn +EXPORT_SYMBOL vmlinux 0x00000000 default_llseek +EXPORT_SYMBOL vmlinux 0x00000000 default_red +EXPORT_SYMBOL vmlinux 0x00000000 default_wake_function +EXPORT_SYMBOL vmlinux 0x00000000 del_gendisk +EXPORT_SYMBOL vmlinux 0x00000000 del_timer +EXPORT_SYMBOL vmlinux 0x00000000 del_timer_sync +EXPORT_SYMBOL vmlinux 0x00000000 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x00000000 dentry_open +EXPORT_SYMBOL vmlinux 0x00000000 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x00000000 dentry_unhash +EXPORT_SYMBOL vmlinux 0x00000000 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x00000000 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x00000000 dev_activate +EXPORT_SYMBOL vmlinux 0x00000000 dev_add_pack +EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_add +EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_del +EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_init +EXPORT_SYMBOL vmlinux 0x00000000 dev_alert +EXPORT_SYMBOL vmlinux 0x00000000 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x00000000 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x00000000 dev_base_lock +EXPORT_SYMBOL vmlinux 0x00000000 dev_change_flags +EXPORT_SYMBOL vmlinux 0x00000000 dev_close +EXPORT_SYMBOL vmlinux 0x00000000 dev_crit +EXPORT_SYMBOL vmlinux 0x00000000 dev_deactivate +EXPORT_SYMBOL vmlinux 0x00000000 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x00000000 dev_driver_string +EXPORT_SYMBOL vmlinux 0x00000000 dev_emerg +EXPORT_SYMBOL vmlinux 0x00000000 dev_err +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_flags +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_stats +EXPORT_SYMBOL vmlinux 0x00000000 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x00000000 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x00000000 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x00000000 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x00000000 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x00000000 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x00000000 dev_load +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_add +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_del +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_init +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x00000000 dev_notice +EXPORT_SYMBOL vmlinux 0x00000000 dev_open +EXPORT_SYMBOL vmlinux 0x00000000 dev_printk +EXPORT_SYMBOL vmlinux 0x00000000 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x00000000 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_group +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x00000000 dev_trans_start +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_add +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_del +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_init +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x00000000 dev_valid_name +EXPORT_SYMBOL vmlinux 0x00000000 dev_warn +EXPORT_SYMBOL vmlinux 0x00000000 devm_free_irq +EXPORT_SYMBOL vmlinux 0x00000000 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x00000000 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x00000000 devm_ioremap +EXPORT_SYMBOL vmlinux 0x00000000 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x00000000 devm_iounmap +EXPORT_SYMBOL vmlinux 0x00000000 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x00000000 dget_parent +EXPORT_SYMBOL vmlinux 0x00000000 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x00000000 disable_hlt +EXPORT_SYMBOL vmlinux 0x00000000 disable_irq +EXPORT_SYMBOL vmlinux 0x00000000 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x00000000 disallow_signal +EXPORT_SYMBOL vmlinux 0x00000000 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x00000000 div64_s64 +EXPORT_SYMBOL vmlinux 0x00000000 div64_u64 +EXPORT_SYMBOL vmlinux 0x00000000 div_s64_rem +EXPORT_SYMBOL vmlinux 0x00000000 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0x00000000 dm_consume_args +EXPORT_SYMBOL vmlinux 0x00000000 dm_get_device +EXPORT_SYMBOL vmlinux 0x00000000 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x00000000 dm_io +EXPORT_SYMBOL vmlinux 0x00000000 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x00000000 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x00000000 dm_put_device +EXPORT_SYMBOL vmlinux 0x00000000 dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x00000000 dm_read_arg +EXPORT_SYMBOL vmlinux 0x00000000 dm_read_arg_group +EXPORT_SYMBOL vmlinux 0x00000000 dm_register_target +EXPORT_SYMBOL vmlinux 0x00000000 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x00000000 dm_table_event +EXPORT_SYMBOL vmlinux 0x00000000 dm_table_get +EXPORT_SYMBOL vmlinux 0x00000000 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x00000000 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x00000000 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x00000000 dm_table_put +EXPORT_SYMBOL vmlinux 0x00000000 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x00000000 dm_vcalloc +EXPORT_SYMBOL vmlinux 0x00000000 dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0x00000000 dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x00000000 dma_alloc_writecombine +EXPORT_SYMBOL vmlinux 0x00000000 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x00000000 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x00000000 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x00000000 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x00000000 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x00000000 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x00000000 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x00000000 dma_find_channel +EXPORT_SYMBOL vmlinux 0x00000000 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x00000000 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x00000000 dma_map_sg +EXPORT_SYMBOL vmlinux 0x00000000 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x00000000 dma_mmap_coherent +EXPORT_SYMBOL vmlinux 0x00000000 dma_mmap_writecombine +EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_create +EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_free +EXPORT_SYMBOL vmlinux 0x00000000 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x00000000 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x00000000 dma_set_mask +EXPORT_SYMBOL vmlinux 0x00000000 dma_supported +EXPORT_SYMBOL vmlinux 0x00000000 dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x00000000 dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x00000000 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x00000000 dma_unmap_sg +EXPORT_SYMBOL vmlinux 0x00000000 dmaengine_get +EXPORT_SYMBOL vmlinux 0x00000000 dmaengine_put +EXPORT_SYMBOL vmlinux 0x00000000 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x00000000 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x00000000 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x00000000 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x00000000 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x00000000 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x00000000 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x00000000 dns_query +EXPORT_SYMBOL vmlinux 0x00000000 do_SAK +EXPORT_SYMBOL vmlinux 0x00000000 do_blank_screen +EXPORT_SYMBOL vmlinux 0x00000000 do_brk +EXPORT_SYMBOL vmlinux 0x00000000 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x00000000 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x00000000 do_munmap +EXPORT_SYMBOL vmlinux 0x00000000 do_settimeofday +EXPORT_SYMBOL vmlinux 0x00000000 do_splice_direct +EXPORT_SYMBOL vmlinux 0x00000000 do_splice_from +EXPORT_SYMBOL vmlinux 0x00000000 do_splice_to +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_write +EXPORT_SYMBOL vmlinux 0x00000000 do_truncate +EXPORT_SYMBOL vmlinux 0x00000000 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x00000000 down +EXPORT_SYMBOL vmlinux 0x00000000 down_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 down_killable +EXPORT_SYMBOL vmlinux 0x00000000 down_read +EXPORT_SYMBOL vmlinux 0x00000000 down_read_trylock +EXPORT_SYMBOL vmlinux 0x00000000 down_timeout +EXPORT_SYMBOL vmlinux 0x00000000 down_trylock +EXPORT_SYMBOL vmlinux 0x00000000 down_write +EXPORT_SYMBOL vmlinux 0x00000000 down_write_trylock +EXPORT_SYMBOL vmlinux 0x00000000 downgrade_write +EXPORT_SYMBOL vmlinux 0x00000000 dput +EXPORT_SYMBOL vmlinux 0x00000000 dq_data_lock +EXPORT_SYMBOL vmlinux 0x00000000 dqget +EXPORT_SYMBOL vmlinux 0x00000000 dqput +EXPORT_SYMBOL vmlinux 0x00000000 dqstats +EXPORT_SYMBOL vmlinux 0x00000000 dquot_acquire +EXPORT_SYMBOL vmlinux 0x00000000 dquot_alloc +EXPORT_SYMBOL vmlinux 0x00000000 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x00000000 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x00000000 dquot_commit +EXPORT_SYMBOL vmlinux 0x00000000 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x00000000 dquot_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dquot_disable +EXPORT_SYMBOL vmlinux 0x00000000 dquot_drop +EXPORT_SYMBOL vmlinux 0x00000000 dquot_enable +EXPORT_SYMBOL vmlinux 0x00000000 dquot_file_open +EXPORT_SYMBOL vmlinux 0x00000000 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x00000000 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x00000000 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x00000000 dquot_initialize +EXPORT_SYMBOL vmlinux 0x00000000 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x00000000 dquot_operations +EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x00000000 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x00000000 dquot_release +EXPORT_SYMBOL vmlinux 0x00000000 dquot_resume +EXPORT_SYMBOL vmlinux 0x00000000 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x00000000 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x00000000 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x00000000 dquot_transfer +EXPORT_SYMBOL vmlinux 0x00000000 drop_super +EXPORT_SYMBOL vmlinux 0x00000000 dst_alloc +EXPORT_SYMBOL vmlinux 0x00000000 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x00000000 dst_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dst_discard +EXPORT_SYMBOL vmlinux 0x00000000 dst_release +EXPORT_SYMBOL vmlinux 0x00000000 dump_fpu +EXPORT_SYMBOL vmlinux 0x00000000 dump_seek +EXPORT_SYMBOL vmlinux 0x00000000 dump_stack +EXPORT_SYMBOL vmlinux 0x00000000 dump_write +EXPORT_SYMBOL vmlinux 0x00000000 ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0x00000000 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0x00000000 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x00000000 edac_mc_find +EXPORT_SYMBOL vmlinux 0x00000000 edac_mc_handle_fbd_ce +EXPORT_SYMBOL vmlinux 0x00000000 edac_mc_handle_fbd_ue +EXPORT_SYMBOL vmlinux 0x00000000 elevator_change +EXPORT_SYMBOL vmlinux 0x00000000 elevator_exit +EXPORT_SYMBOL vmlinux 0x00000000 elevator_init +EXPORT_SYMBOL vmlinux 0x00000000 elf_check_arch +EXPORT_SYMBOL vmlinux 0x00000000 elf_hwcap +EXPORT_SYMBOL vmlinux 0x00000000 elf_platform +EXPORT_SYMBOL vmlinux 0x00000000 elf_set_personality +EXPORT_SYMBOL vmlinux 0x00000000 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x00000000 elv_add_request +EXPORT_SYMBOL vmlinux 0x00000000 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x00000000 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_add +EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_del +EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_find +EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x00000000 elv_register_queue +EXPORT_SYMBOL vmlinux 0x00000000 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x00000000 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x00000000 empty_aops +EXPORT_SYMBOL vmlinux 0x00000000 empty_zero_page +EXPORT_SYMBOL vmlinux 0x00000000 enable_hlt +EXPORT_SYMBOL vmlinux 0x00000000 enable_irq +EXPORT_SYMBOL vmlinux 0x00000000 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x00000000 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x00000000 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 end_page_writeback +EXPORT_SYMBOL vmlinux 0x00000000 end_writeback +EXPORT_SYMBOL vmlinux 0x00000000 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x00000000 eth_header +EXPORT_SYMBOL vmlinux 0x00000000 eth_header_cache +EXPORT_SYMBOL vmlinux 0x00000000 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x00000000 eth_header_parse +EXPORT_SYMBOL vmlinux 0x00000000 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x00000000 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x00000000 eth_type_trans +EXPORT_SYMBOL vmlinux 0x00000000 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x00000000 ether_setup +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x00000000 ewma_add +EXPORT_SYMBOL vmlinux 0x00000000 ewma_init +EXPORT_SYMBOL vmlinux 0x00000000 f_setown +EXPORT_SYMBOL vmlinux 0x00000000 fasync_helper +EXPORT_SYMBOL vmlinux 0x00000000 fb_add_videomode +EXPORT_SYMBOL vmlinux 0x00000000 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x00000000 fb_blank +EXPORT_SYMBOL vmlinux 0x00000000 fb_class +EXPORT_SYMBOL vmlinux 0x00000000 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x00000000 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x00000000 fb_default_cmap +EXPORT_SYMBOL vmlinux 0x00000000 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x00000000 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x00000000 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0x00000000 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x00000000 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_find_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0x00000000 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x00000000 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x00000000 fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x00000000 fb_get_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_get_options +EXPORT_SYMBOL vmlinux 0x00000000 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0x00000000 fb_match_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0x00000000 fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x00000000 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x00000000 fb_pan_display +EXPORT_SYMBOL vmlinux 0x00000000 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x00000000 fb_register_client +EXPORT_SYMBOL vmlinux 0x00000000 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x00000000 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x00000000 fb_set_var +EXPORT_SYMBOL vmlinux 0x00000000 fb_show_logo +EXPORT_SYMBOL vmlinux 0x00000000 fb_unregister_client +EXPORT_SYMBOL vmlinux 0x00000000 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0x00000000 fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0x00000000 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x00000000 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x00000000 fd_install +EXPORT_SYMBOL vmlinux 0x00000000 fg_console +EXPORT_SYMBOL vmlinux 0x00000000 fget +EXPORT_SYMBOL vmlinux 0x00000000 fget_raw +EXPORT_SYMBOL vmlinux 0x00000000 fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x00000000 fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0x00000000 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x00000000 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x00000000 file_open_root +EXPORT_SYMBOL vmlinux 0x00000000 file_remove_suid +EXPORT_SYMBOL vmlinux 0x00000000 file_sb_list_del +EXPORT_SYMBOL vmlinux 0x00000000 file_update_time +EXPORT_SYMBOL vmlinux 0x00000000 filemap_fault +EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x00000000 filemap_flush +EXPORT_SYMBOL vmlinux 0x00000000 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x00000000 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x00000000 files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x00000000 files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x00000000 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x00000000 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x00000000 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0x00000000 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x00000000 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0x00000000 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x00000000 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 filp_open +EXPORT_SYMBOL vmlinux 0x00000000 find_font +EXPORT_SYMBOL vmlinux 0x00000000 find_get_page +EXPORT_SYMBOL vmlinux 0x00000000 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x00000000 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x00000000 find_inode_number +EXPORT_SYMBOL vmlinux 0x00000000 find_last_bit +EXPORT_SYMBOL vmlinux 0x00000000 find_lock_page +EXPORT_SYMBOL vmlinux 0x00000000 find_or_create_page +EXPORT_SYMBOL vmlinux 0x00000000 find_vma +EXPORT_SYMBOL vmlinux 0x00000000 finish_wait +EXPORT_SYMBOL vmlinux 0x00000000 flex_array_alloc +EXPORT_SYMBOL vmlinux 0x00000000 flex_array_clear +EXPORT_SYMBOL vmlinux 0x00000000 flex_array_free +EXPORT_SYMBOL vmlinux 0x00000000 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x00000000 flex_array_get +EXPORT_SYMBOL vmlinux 0x00000000 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x00000000 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x00000000 flex_array_put +EXPORT_SYMBOL vmlinux 0x00000000 flex_array_shrink +EXPORT_SYMBOL vmlinux 0x00000000 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x00000000 flow_cache_genid +EXPORT_SYMBOL vmlinux 0x00000000 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x00000000 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x00000000 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x00000000 flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x00000000 flush_kernel_dcache_page +EXPORT_SYMBOL vmlinux 0x00000000 flush_old_exec +EXPORT_SYMBOL vmlinux 0x00000000 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00000000 flush_signals +EXPORT_SYMBOL vmlinux 0x00000000 follow_down +EXPORT_SYMBOL vmlinux 0x00000000 follow_down_one +EXPORT_SYMBOL vmlinux 0x00000000 follow_pfn +EXPORT_SYMBOL vmlinux 0x00000000 follow_up +EXPORT_SYMBOL vmlinux 0x00000000 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x00000000 force_sig +EXPORT_SYMBOL vmlinux 0x00000000 fput +EXPORT_SYMBOL vmlinux 0x00000000 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x00000000 framebuffer_release +EXPORT_SYMBOL vmlinux 0x00000000 free_anon_bdev +EXPORT_SYMBOL vmlinux 0x00000000 free_buffer_head +EXPORT_SYMBOL vmlinux 0x00000000 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x00000000 free_irq +EXPORT_SYMBOL vmlinux 0x00000000 free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x00000000 free_netdev +EXPORT_SYMBOL vmlinux 0x00000000 free_pages +EXPORT_SYMBOL vmlinux 0x00000000 free_pages_exact +EXPORT_SYMBOL vmlinux 0x00000000 free_task +EXPORT_SYMBOL vmlinux 0x00000000 free_user_ns +EXPORT_SYMBOL vmlinux 0x00000000 freeze_bdev +EXPORT_SYMBOL vmlinux 0x00000000 freeze_super +EXPORT_SYMBOL vmlinux 0x00000000 fs_overflowgid +EXPORT_SYMBOL vmlinux 0x00000000 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x00000000 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x00000000 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x00000000 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x00000000 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x00000000 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x00000000 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x00000000 fsync_bdev +EXPORT_SYMBOL vmlinux 0x00000000 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x00000000 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x00000000 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x00000000 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x00000000 generate_netlink_event +EXPORT_SYMBOL vmlinux 0x00000000 generate_random_uuid +EXPORT_SYMBOL vmlinux 0x00000000 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x00000000 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x00000000 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x00000000 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x00000000 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x00000000 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x00000000 generic_fillattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_listxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_make_request +EXPORT_SYMBOL vmlinux 0x00000000 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 generic_permission +EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x00000000 generic_read_dir +EXPORT_SYMBOL vmlinux 0x00000000 generic_readlink +EXPORT_SYMBOL vmlinux 0x00000000 generic_removexattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x00000000 generic_segment_checks +EXPORT_SYMBOL vmlinux 0x00000000 generic_setlease +EXPORT_SYMBOL vmlinux 0x00000000 generic_setxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_show_options +EXPORT_SYMBOL vmlinux 0x00000000 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x00000000 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_checks +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_end +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 generic_writepages +EXPORT_SYMBOL vmlinux 0x00000000 genl_lock +EXPORT_SYMBOL vmlinux 0x00000000 genl_register_family +EXPORT_SYMBOL vmlinux 0x00000000 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x00000000 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x00000000 genl_register_ops +EXPORT_SYMBOL vmlinux 0x00000000 genl_unlock +EXPORT_SYMBOL vmlinux 0x00000000 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x00000000 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x00000000 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x00000000 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x00000000 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x00000000 genphy_read_status +EXPORT_SYMBOL vmlinux 0x00000000 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x00000000 genphy_resume +EXPORT_SYMBOL vmlinux 0x00000000 genphy_suspend +EXPORT_SYMBOL vmlinux 0x00000000 genphy_update_link +EXPORT_SYMBOL vmlinux 0x00000000 get_anon_bdev +EXPORT_SYMBOL vmlinux 0x00000000 get_default_font +EXPORT_SYMBOL vmlinux 0x00000000 get_disk +EXPORT_SYMBOL vmlinux 0x00000000 get_fs_type +EXPORT_SYMBOL vmlinux 0x00000000 get_gendisk +EXPORT_SYMBOL vmlinux 0x00000000 get_io_context +EXPORT_SYMBOL vmlinux 0x00000000 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x00000000 get_mem_type +EXPORT_SYMBOL vmlinux 0x00000000 get_next_ino +EXPORT_SYMBOL vmlinux 0x00000000 get_option +EXPORT_SYMBOL vmlinux 0x00000000 get_options +EXPORT_SYMBOL vmlinux 0x00000000 get_phy_device +EXPORT_SYMBOL vmlinux 0x00000000 get_phy_id +EXPORT_SYMBOL vmlinux 0x00000000 get_random_bytes +EXPORT_SYMBOL vmlinux 0x00000000 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x00000000 get_seconds +EXPORT_SYMBOL vmlinux 0x00000000 get_super +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x00000000 get_unused_fd +EXPORT_SYMBOL vmlinux 0x00000000 get_user_pages +EXPORT_SYMBOL vmlinux 0x00000000 get_write_access +EXPORT_SYMBOL vmlinux 0x00000000 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x00000000 getname +EXPORT_SYMBOL vmlinux 0x00000000 getnstimeofday +EXPORT_SYMBOL vmlinux 0x00000000 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x00000000 give_up_console +EXPORT_SYMBOL vmlinux 0x00000000 global_cursor_default +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x00000000 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x00000000 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 groups_alloc +EXPORT_SYMBOL vmlinux 0x00000000 groups_free +EXPORT_SYMBOL vmlinux 0x00000000 half_md4_transform +EXPORT_SYMBOL vmlinux 0x00000000 have_submounts +EXPORT_SYMBOL vmlinux 0x00000000 hex2bin +EXPORT_SYMBOL vmlinux 0x00000000 hex_asc +EXPORT_SYMBOL vmlinux 0x00000000 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x00000000 hex_to_bin +EXPORT_SYMBOL vmlinux 0x00000000 high_memory +EXPORT_SYMBOL vmlinux 0x00000000 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x00000000 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x00000000 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x00000000 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x00000000 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x00000000 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x00000000 i2c_master_send +EXPORT_SYMBOL vmlinux 0x00000000 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x00000000 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 i2c_release_client +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x00000000 i2c_transfer +EXPORT_SYMBOL vmlinux 0x00000000 i2c_use_client +EXPORT_SYMBOL vmlinux 0x00000000 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x00000000 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x00000000 icmp_send +EXPORT_SYMBOL vmlinux 0x00000000 icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x00000000 icmpv6_send +EXPORT_SYMBOL vmlinux 0x00000000 ida_destroy +EXPORT_SYMBOL vmlinux 0x00000000 ida_get_new +EXPORT_SYMBOL vmlinux 0x00000000 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x00000000 ida_init +EXPORT_SYMBOL vmlinux 0x00000000 ida_pre_get +EXPORT_SYMBOL vmlinux 0x00000000 ida_remove +EXPORT_SYMBOL vmlinux 0x00000000 ida_simple_get +EXPORT_SYMBOL vmlinux 0x00000000 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x00000000 idr_destroy +EXPORT_SYMBOL vmlinux 0x00000000 idr_find +EXPORT_SYMBOL vmlinux 0x00000000 idr_for_each +EXPORT_SYMBOL vmlinux 0x00000000 idr_get_new +EXPORT_SYMBOL vmlinux 0x00000000 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x00000000 idr_get_next +EXPORT_SYMBOL vmlinux 0x00000000 idr_init +EXPORT_SYMBOL vmlinux 0x00000000 idr_pre_get +EXPORT_SYMBOL vmlinux 0x00000000 idr_remove +EXPORT_SYMBOL vmlinux 0x00000000 idr_remove_all +EXPORT_SYMBOL vmlinux 0x00000000 idr_replace +EXPORT_SYMBOL vmlinux 0x00000000 ifla_policy +EXPORT_SYMBOL vmlinux 0x00000000 iget5_locked +EXPORT_SYMBOL vmlinux 0x00000000 iget_failed +EXPORT_SYMBOL vmlinux 0x00000000 iget_locked +EXPORT_SYMBOL vmlinux 0x00000000 igrab +EXPORT_SYMBOL vmlinux 0x00000000 ihold +EXPORT_SYMBOL vmlinux 0x00000000 ilookup +EXPORT_SYMBOL vmlinux 0x00000000 ilookup5 +EXPORT_SYMBOL vmlinux 0x00000000 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x00000000 in4_pton +EXPORT_SYMBOL vmlinux 0x00000000 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x00000000 in6_pton +EXPORT_SYMBOL vmlinux 0x00000000 in_aton +EXPORT_SYMBOL vmlinux 0x00000000 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x00000000 in_egroup_p +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 in_lock_functions +EXPORT_SYMBOL vmlinux 0x00000000 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x00000000 inet6_bind +EXPORT_SYMBOL vmlinux 0x00000000 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x00000000 inet6_getname +EXPORT_SYMBOL vmlinux 0x00000000 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x00000000 inet6_release +EXPORT_SYMBOL vmlinux 0x00000000 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x00000000 inet_accept +EXPORT_SYMBOL vmlinux 0x00000000 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x00000000 inet_addr_type +EXPORT_SYMBOL vmlinux 0x00000000 inet_bind +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x00000000 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x00000000 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x00000000 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x00000000 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x00000000 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_find +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x00000000 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x00000000 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x00000000 inet_frags_init +EXPORT_SYMBOL vmlinux 0x00000000 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x00000000 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x00000000 inet_getname +EXPORT_SYMBOL vmlinux 0x00000000 inet_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 inet_listen +EXPORT_SYMBOL vmlinux 0x00000000 inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x00000000 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x00000000 inet_put_port +EXPORT_SYMBOL vmlinux 0x00000000 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x00000000 inet_release +EXPORT_SYMBOL vmlinux 0x00000000 inet_select_addr +EXPORT_SYMBOL vmlinux 0x00000000 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 inet_sendpage +EXPORT_SYMBOL vmlinux 0x00000000 inet_shutdown +EXPORT_SYMBOL vmlinux 0x00000000 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x00000000 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x00000000 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x00000000 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x00000000 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x00000000 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x00000000 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x00000000 init_buffer +EXPORT_SYMBOL vmlinux 0x00000000 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x00000000 init_net +EXPORT_SYMBOL vmlinux 0x00000000 init_special_inode +EXPORT_SYMBOL vmlinux 0x00000000 init_task +EXPORT_SYMBOL vmlinux 0x00000000 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x00000000 init_timer_key +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x00000000 inode_change_ok +EXPORT_SYMBOL vmlinux 0x00000000 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x00000000 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x00000000 inode_init_always +EXPORT_SYMBOL vmlinux 0x00000000 inode_init_once +EXPORT_SYMBOL vmlinux 0x00000000 inode_init_owner +EXPORT_SYMBOL vmlinux 0x00000000 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x00000000 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x00000000 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x00000000 inode_permission +EXPORT_SYMBOL vmlinux 0x00000000 inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x00000000 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x00000000 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x00000000 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x00000000 inode_wait +EXPORT_SYMBOL vmlinux 0x00000000 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x00000000 input_allocate_device +EXPORT_SYMBOL vmlinux 0x00000000 input_close_device +EXPORT_SYMBOL vmlinux 0x00000000 input_event +EXPORT_SYMBOL vmlinux 0x00000000 input_flush_device +EXPORT_SYMBOL vmlinux 0x00000000 input_free_device +EXPORT_SYMBOL vmlinux 0x00000000 input_get_keycode +EXPORT_SYMBOL vmlinux 0x00000000 input_grab_device +EXPORT_SYMBOL vmlinux 0x00000000 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x00000000 input_inject_event +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x00000000 input_open_device +EXPORT_SYMBOL vmlinux 0x00000000 input_register_device +EXPORT_SYMBOL vmlinux 0x00000000 input_register_handle +EXPORT_SYMBOL vmlinux 0x00000000 input_register_handler +EXPORT_SYMBOL vmlinux 0x00000000 input_release_device +EXPORT_SYMBOL vmlinux 0x00000000 input_reset_device +EXPORT_SYMBOL vmlinux 0x00000000 input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x00000000 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x00000000 input_set_capability +EXPORT_SYMBOL vmlinux 0x00000000 input_set_keycode +EXPORT_SYMBOL vmlinux 0x00000000 input_unregister_device +EXPORT_SYMBOL vmlinux 0x00000000 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x00000000 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x00000000 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x00000000 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x00000000 install_exec_creds +EXPORT_SYMBOL vmlinux 0x00000000 int_sqrt +EXPORT_SYMBOL vmlinux 0x00000000 int_to_scsilun +EXPORT_SYMBOL vmlinux 0x00000000 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x00000000 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x00000000 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x00000000 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x00000000 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x00000000 invalidate_partition +EXPORT_SYMBOL vmlinux 0x00000000 io_schedule +EXPORT_SYMBOL vmlinux 0x00000000 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x00000000 iomem_resource +EXPORT_SYMBOL vmlinux 0x00000000 ioport_map +EXPORT_SYMBOL vmlinux 0x00000000 ioport_resource +EXPORT_SYMBOL vmlinux 0x00000000 ioport_unmap +EXPORT_SYMBOL vmlinux 0x00000000 ioremap_page +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x00000000 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x00000000 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x00000000 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x00000000 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x00000000 ip6_route_output +EXPORT_SYMBOL vmlinux 0x00000000 ip6_xmit +EXPORT_SYMBOL vmlinux 0x00000000 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x00000000 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x00000000 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x00000000 ip_defrag +EXPORT_SYMBOL vmlinux 0x00000000 ip_fragment +EXPORT_SYMBOL vmlinux 0x00000000 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x00000000 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x00000000 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x00000000 ip_options_compile +EXPORT_SYMBOL vmlinux 0x00000000 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x00000000 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x00000000 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x00000000 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x00000000 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x00000000 ip_send_check +EXPORT_SYMBOL vmlinux 0x00000000 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x00000000 ipc_call_fast +EXPORT_SYMBOL vmlinux 0x00000000 ipc_call_slow +EXPORT_SYMBOL vmlinux 0x00000000 iput +EXPORT_SYMBOL vmlinux 0x00000000 ipv4_config +EXPORT_SYMBOL vmlinux 0x00000000 ipv4_specific +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x00000000 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x00000000 irq_set_chip +EXPORT_SYMBOL vmlinux 0x00000000 irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x00000000 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x00000000 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x00000000 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0x00000000 irq_stat +EXPORT_SYMBOL vmlinux 0x00000000 is_bad_inode +EXPORT_SYMBOL vmlinux 0x00000000 is_container_init +EXPORT_SYMBOL vmlinux 0x00000000 iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0x00000000 iterate_mounts +EXPORT_SYMBOL vmlinux 0x00000000 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x00000000 iunique +EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x00000000 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x00000000 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x00000000 jiffies +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_64 +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x00000000 journal_abort +EXPORT_SYMBOL vmlinux 0x00000000 journal_ack_err +EXPORT_SYMBOL vmlinux 0x00000000 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x00000000 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x00000000 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x00000000 journal_clear_err +EXPORT_SYMBOL vmlinux 0x00000000 journal_create +EXPORT_SYMBOL vmlinux 0x00000000 journal_destroy +EXPORT_SYMBOL vmlinux 0x00000000 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x00000000 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x00000000 journal_errno +EXPORT_SYMBOL vmlinux 0x00000000 journal_extend +EXPORT_SYMBOL vmlinux 0x00000000 journal_flush +EXPORT_SYMBOL vmlinux 0x00000000 journal_force_commit +EXPORT_SYMBOL vmlinux 0x00000000 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x00000000 journal_forget +EXPORT_SYMBOL vmlinux 0x00000000 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x00000000 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x00000000 journal_get_write_access +EXPORT_SYMBOL vmlinux 0x00000000 journal_init_dev +EXPORT_SYMBOL vmlinux 0x00000000 journal_init_inode +EXPORT_SYMBOL vmlinux 0x00000000 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x00000000 journal_load +EXPORT_SYMBOL vmlinux 0x00000000 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x00000000 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x00000000 journal_restart +EXPORT_SYMBOL vmlinux 0x00000000 journal_revoke +EXPORT_SYMBOL vmlinux 0x00000000 journal_set_features +EXPORT_SYMBOL vmlinux 0x00000000 journal_start +EXPORT_SYMBOL vmlinux 0x00000000 journal_start_commit +EXPORT_SYMBOL vmlinux 0x00000000 journal_stop +EXPORT_SYMBOL vmlinux 0x00000000 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x00000000 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x00000000 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x00000000 journal_update_format +EXPORT_SYMBOL vmlinux 0x00000000 journal_wipe +EXPORT_SYMBOL vmlinux 0x00000000 kasprintf +EXPORT_SYMBOL vmlinux 0x00000000 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x00000000 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x00000000 kd_mksound +EXPORT_SYMBOL vmlinux 0x00000000 kern_path +EXPORT_SYMBOL vmlinux 0x00000000 kern_path_create +EXPORT_SYMBOL vmlinux 0x00000000 kern_unmount +EXPORT_SYMBOL vmlinux 0x00000000 kernel_accept +EXPORT_SYMBOL vmlinux 0x00000000 kernel_bind +EXPORT_SYMBOL vmlinux 0x00000000 kernel_connect +EXPORT_SYMBOL vmlinux 0x00000000 kernel_execve +EXPORT_SYMBOL vmlinux 0x00000000 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x00000000 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x00000000 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 kernel_listen +EXPORT_SYMBOL vmlinux 0x00000000 kernel_read +EXPORT_SYMBOL vmlinux 0x00000000 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x00000000 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x00000000 kernel_thread +EXPORT_SYMBOL vmlinux 0x00000000 key_alloc +EXPORT_SYMBOL vmlinux 0x00000000 key_create_or_update +EXPORT_SYMBOL vmlinux 0x00000000 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x00000000 key_link +EXPORT_SYMBOL vmlinux 0x00000000 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x00000000 key_put +EXPORT_SYMBOL vmlinux 0x00000000 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x00000000 key_revoke +EXPORT_SYMBOL vmlinux 0x00000000 key_task_permission +EXPORT_SYMBOL vmlinux 0x00000000 key_type_keyring +EXPORT_SYMBOL vmlinux 0x00000000 key_unlink +EXPORT_SYMBOL vmlinux 0x00000000 key_update +EXPORT_SYMBOL vmlinux 0x00000000 key_validate +EXPORT_SYMBOL vmlinux 0x00000000 keyring_clear +EXPORT_SYMBOL vmlinux 0x00000000 keyring_search +EXPORT_SYMBOL vmlinux 0x00000000 kfree +EXPORT_SYMBOL vmlinux 0x00000000 kfree_skb +EXPORT_SYMBOL vmlinux 0x00000000 kick_iocb +EXPORT_SYMBOL vmlinux 0x00000000 kill_anon_super +EXPORT_SYMBOL vmlinux 0x00000000 kill_bdev +EXPORT_SYMBOL vmlinux 0x00000000 kill_block_super +EXPORT_SYMBOL vmlinux 0x00000000 kill_fasync +EXPORT_SYMBOL vmlinux 0x00000000 kill_litter_super +EXPORT_SYMBOL vmlinux 0x00000000 kill_pgrp +EXPORT_SYMBOL vmlinux 0x00000000 kill_pid +EXPORT_SYMBOL vmlinux 0x00000000 km_new_mapping +EXPORT_SYMBOL vmlinux 0x00000000 km_policy_expired +EXPORT_SYMBOL vmlinux 0x00000000 km_policy_notify +EXPORT_SYMBOL vmlinux 0x00000000 km_query +EXPORT_SYMBOL vmlinux 0x00000000 km_report +EXPORT_SYMBOL vmlinux 0x00000000 km_state_expired +EXPORT_SYMBOL vmlinux 0x00000000 km_state_notify +EXPORT_SYMBOL vmlinux 0x00000000 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x00000000 kmap +EXPORT_SYMBOL vmlinux 0x00000000 kmap_high +EXPORT_SYMBOL vmlinux 0x00000000 kmap_to_page +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x00000000 kmemdup +EXPORT_SYMBOL vmlinux 0x00000000 kobject_add +EXPORT_SYMBOL vmlinux 0x00000000 kobject_del +EXPORT_SYMBOL vmlinux 0x00000000 kobject_get +EXPORT_SYMBOL vmlinux 0x00000000 kobject_init +EXPORT_SYMBOL vmlinux 0x00000000 kobject_put +EXPORT_SYMBOL vmlinux 0x00000000 kobject_set_name +EXPORT_SYMBOL vmlinux 0x00000000 krealloc +EXPORT_SYMBOL vmlinux 0x00000000 kref_get +EXPORT_SYMBOL vmlinux 0x00000000 kref_init +EXPORT_SYMBOL vmlinux 0x00000000 kref_put +EXPORT_SYMBOL vmlinux 0x00000000 kref_sub +EXPORT_SYMBOL vmlinux 0x00000000 kset_register +EXPORT_SYMBOL vmlinux 0x00000000 kset_unregister +EXPORT_SYMBOL vmlinux 0x00000000 ksize +EXPORT_SYMBOL vmlinux 0x00000000 kstat +EXPORT_SYMBOL vmlinux 0x00000000 kstrdup +EXPORT_SYMBOL vmlinux 0x00000000 kstrndup +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoint +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoll +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtos16 +EXPORT_SYMBOL vmlinux 0x00000000 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtos8 +EXPORT_SYMBOL vmlinux 0x00000000 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtou16 +EXPORT_SYMBOL vmlinux 0x00000000 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtou8 +EXPORT_SYMBOL vmlinux 0x00000000 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtouint +EXPORT_SYMBOL vmlinux 0x00000000 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoull +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kthread_bind +EXPORT_SYMBOL vmlinux 0x00000000 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x00000000 kthread_should_stop +EXPORT_SYMBOL vmlinux 0x00000000 kthread_stop +EXPORT_SYMBOL vmlinux 0x00000000 kunmap +EXPORT_SYMBOL vmlinux 0x00000000 kunmap_high +EXPORT_SYMBOL vmlinux 0x00000000 kvasprintf +EXPORT_SYMBOL vmlinux 0x00000000 kzfree +EXPORT_SYMBOL vmlinux 0x00000000 laptop_mode +EXPORT_SYMBOL vmlinux 0x00000000 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x00000000 lease_modify +EXPORT_SYMBOL vmlinux 0x00000000 led_blink_set +EXPORT_SYMBOL vmlinux 0x00000000 led_brightness_set +EXPORT_SYMBOL vmlinux 0x00000000 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x00000000 list_sort +EXPORT_SYMBOL vmlinux 0x00000000 ll_rw_block +EXPORT_SYMBOL vmlinux 0x00000000 load_nls +EXPORT_SYMBOL vmlinux 0x00000000 load_nls_default +EXPORT_SYMBOL vmlinux 0x00000000 local_bh_disable +EXPORT_SYMBOL vmlinux 0x00000000 local_bh_enable +EXPORT_SYMBOL vmlinux 0x00000000 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0x00000000 lock_fb_info +EXPORT_SYMBOL vmlinux 0x00000000 lock_may_read +EXPORT_SYMBOL vmlinux 0x00000000 lock_may_write +EXPORT_SYMBOL vmlinux 0x00000000 lock_rename +EXPORT_SYMBOL vmlinux 0x00000000 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x00000000 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x00000000 lock_super +EXPORT_SYMBOL vmlinux 0x00000000 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x00000000 locks_delete_block +EXPORT_SYMBOL vmlinux 0x00000000 locks_free_lock +EXPORT_SYMBOL vmlinux 0x00000000 locks_init_lock +EXPORT_SYMBOL vmlinux 0x00000000 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x00000000 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x00000000 log_start_commit +EXPORT_SYMBOL vmlinux 0x00000000 log_wait_commit +EXPORT_SYMBOL vmlinux 0x00000000 lookup_bdev +EXPORT_SYMBOL vmlinux 0x00000000 lookup_hash +EXPORT_SYMBOL vmlinux 0x00000000 lookup_one_len +EXPORT_SYMBOL vmlinux 0x00000000 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x00000000 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0x00000000 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0x00000000 lro_flush_all +EXPORT_SYMBOL vmlinux 0x00000000 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x00000000 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x00000000 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x00000000 mac_pton +EXPORT_SYMBOL vmlinux 0x00000000 make_EII_client +EXPORT_SYMBOL vmlinux 0x00000000 make_bad_inode +EXPORT_SYMBOL vmlinux 0x00000000 mangle_path +EXPORT_SYMBOL vmlinux 0x00000000 mapping_tagged +EXPORT_SYMBOL vmlinux 0x00000000 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x00000000 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x00000000 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x00000000 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x00000000 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x00000000 match_hex +EXPORT_SYMBOL vmlinux 0x00000000 match_int +EXPORT_SYMBOL vmlinux 0x00000000 match_octal +EXPORT_SYMBOL vmlinux 0x00000000 match_strdup +EXPORT_SYMBOL vmlinux 0x00000000 match_strlcpy +EXPORT_SYMBOL vmlinux 0x00000000 match_token +EXPORT_SYMBOL vmlinux 0x00000000 max_mapnr +EXPORT_SYMBOL vmlinux 0x00000000 may_umount +EXPORT_SYMBOL vmlinux 0x00000000 may_umount_tree +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_create +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x00000000 md5_transform +EXPORT_SYMBOL vmlinux 0x00000000 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x00000000 md_check_recovery +EXPORT_SYMBOL vmlinux 0x00000000 md_done_sync +EXPORT_SYMBOL vmlinux 0x00000000 md_error +EXPORT_SYMBOL vmlinux 0x00000000 md_flush_request +EXPORT_SYMBOL vmlinux 0x00000000 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x00000000 md_integrity_register +EXPORT_SYMBOL vmlinux 0x00000000 md_register_thread +EXPORT_SYMBOL vmlinux 0x00000000 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x00000000 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x00000000 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x00000000 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x00000000 md_write_end +EXPORT_SYMBOL vmlinux 0x00000000 md_write_start +EXPORT_SYMBOL vmlinux 0x00000000 mddev_congested +EXPORT_SYMBOL vmlinux 0x00000000 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_free +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_read +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_register +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_write +EXPORT_SYMBOL vmlinux 0x00000000 mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x00000000 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x00000000 mem_map +EXPORT_SYMBOL vmlinux 0x00000000 memchr +EXPORT_SYMBOL vmlinux 0x00000000 memchr_inv +EXPORT_SYMBOL vmlinux 0x00000000 memcmp +EXPORT_SYMBOL vmlinux 0x00000000 memcpy +EXPORT_SYMBOL vmlinux 0x00000000 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x00000000 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00000000 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x00000000 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x00000000 memdup_user +EXPORT_SYMBOL vmlinux 0x00000000 memmove +EXPORT_SYMBOL vmlinux 0x00000000 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x00000000 memparse +EXPORT_SYMBOL vmlinux 0x00000000 mempool_alloc +EXPORT_SYMBOL vmlinux 0x00000000 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x00000000 mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x00000000 mempool_create +EXPORT_SYMBOL vmlinux 0x00000000 mempool_create_node +EXPORT_SYMBOL vmlinux 0x00000000 mempool_destroy +EXPORT_SYMBOL vmlinux 0x00000000 mempool_free +EXPORT_SYMBOL vmlinux 0x00000000 mempool_free_pages +EXPORT_SYMBOL vmlinux 0x00000000 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x00000000 mempool_kfree +EXPORT_SYMBOL vmlinux 0x00000000 mempool_kmalloc +EXPORT_SYMBOL vmlinux 0x00000000 mempool_resize +EXPORT_SYMBOL vmlinux 0x00000000 memscan +EXPORT_SYMBOL vmlinux 0x00000000 memset +EXPORT_SYMBOL vmlinux 0x00000000 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x00000000 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x00000000 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x00000000 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x00000000 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x00000000 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x00000000 mii_check_link +EXPORT_SYMBOL vmlinux 0x00000000 mii_check_media +EXPORT_SYMBOL vmlinux 0x00000000 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x00000000 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x00000000 mii_link_ok +EXPORT_SYMBOL vmlinux 0x00000000 mii_nway_restart +EXPORT_SYMBOL vmlinux 0x00000000 misc_deregister +EXPORT_SYMBOL vmlinux 0x00000000 misc_register +EXPORT_SYMBOL vmlinux 0x00000000 mktime +EXPORT_SYMBOL vmlinux 0x00000000 mmc_add_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x00000000 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x00000000 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x00000000 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x00000000 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x00000000 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x00000000 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x00000000 mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0x00000000 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x00000000 mmc_do_release_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_erase +EXPORT_SYMBOL vmlinux 0x00000000 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x00000000 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x00000000 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x00000000 mmc_free_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_host_disable +EXPORT_SYMBOL vmlinux 0x00000000 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x00000000 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x00000000 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x00000000 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x00000000 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x00000000 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0x00000000 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x00000000 mmc_release_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_request_done +EXPORT_SYMBOL vmlinux 0x00000000 mmc_resume_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x00000000 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x00000000 mmc_start_req +EXPORT_SYMBOL vmlinux 0x00000000 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x00000000 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x00000000 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x00000000 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x00000000 mnt_pin +EXPORT_SYMBOL vmlinux 0x00000000 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x00000000 mnt_unpin +EXPORT_SYMBOL vmlinux 0x00000000 mntget +EXPORT_SYMBOL vmlinux 0x00000000 mntput +EXPORT_SYMBOL vmlinux 0x00000000 mod_timer +EXPORT_SYMBOL vmlinux 0x00000000 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x00000000 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x00000000 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 module_put +EXPORT_SYMBOL vmlinux 0x00000000 module_refcount +EXPORT_SYMBOL vmlinux 0x00000000 mount_bdev +EXPORT_SYMBOL vmlinux 0x00000000 mount_nodev +EXPORT_SYMBOL vmlinux 0x00000000 mount_ns +EXPORT_SYMBOL vmlinux 0x00000000 mount_pseudo +EXPORT_SYMBOL vmlinux 0x00000000 mount_single +EXPORT_SYMBOL vmlinux 0x00000000 mount_subtree +EXPORT_SYMBOL vmlinux 0x00000000 mpage_readpage +EXPORT_SYMBOL vmlinux 0x00000000 mpage_readpages +EXPORT_SYMBOL vmlinux 0x00000000 mpage_writepage +EXPORT_SYMBOL vmlinux 0x00000000 mpage_writepages +EXPORT_SYMBOL vmlinux 0x00000000 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 msleep +EXPORT_SYMBOL vmlinux 0x00000000 msleep_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 mutex_lock +EXPORT_SYMBOL vmlinux 0x00000000 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x00000000 mutex_trylock +EXPORT_SYMBOL vmlinux 0x00000000 mutex_unlock +EXPORT_SYMBOL vmlinux 0x00000000 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x00000000 names_cachep +EXPORT_SYMBOL vmlinux 0x00000000 napi_complete +EXPORT_SYMBOL vmlinux 0x00000000 napi_frags_finish +EXPORT_SYMBOL vmlinux 0x00000000 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x00000000 napi_get_frags +EXPORT_SYMBOL vmlinux 0x00000000 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x00000000 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x00000000 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x00000000 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x00000000 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x00000000 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x00000000 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x00000000 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x00000000 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x00000000 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x00000000 neigh_create +EXPORT_SYMBOL vmlinux 0x00000000 neigh_destroy +EXPORT_SYMBOL vmlinux 0x00000000 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x00000000 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x00000000 neigh_for_each +EXPORT_SYMBOL vmlinux 0x00000000 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x00000000 neigh_lookup +EXPORT_SYMBOL vmlinux 0x00000000 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x00000000 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x00000000 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x00000000 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x00000000 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x00000000 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x00000000 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x00000000 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x00000000 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x00000000 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x00000000 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x00000000 neigh_table_init +EXPORT_SYMBOL vmlinux 0x00000000 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x00000000 neigh_update +EXPORT_SYMBOL vmlinux 0x00000000 net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x00000000 net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x00000000 net_msg_warn +EXPORT_SYMBOL vmlinux 0x00000000 net_ratelimit +EXPORT_SYMBOL vmlinux 0x00000000 netdev_alert +EXPORT_SYMBOL vmlinux 0x00000000 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x00000000 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x00000000 netdev_change_features +EXPORT_SYMBOL vmlinux 0x00000000 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x00000000 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x00000000 netdev_crit +EXPORT_SYMBOL vmlinux 0x00000000 netdev_emerg +EXPORT_SYMBOL vmlinux 0x00000000 netdev_err +EXPORT_SYMBOL vmlinux 0x00000000 netdev_features_change +EXPORT_SYMBOL vmlinux 0x00000000 netdev_increment_features +EXPORT_SYMBOL vmlinux 0x00000000 netdev_info +EXPORT_SYMBOL vmlinux 0x00000000 netdev_notice +EXPORT_SYMBOL vmlinux 0x00000000 netdev_printk +EXPORT_SYMBOL vmlinux 0x00000000 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x00000000 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x00000000 netdev_set_bond_master +EXPORT_SYMBOL vmlinux 0x00000000 netdev_set_master +EXPORT_SYMBOL vmlinux 0x00000000 netdev_state_change +EXPORT_SYMBOL vmlinux 0x00000000 netdev_update_features +EXPORT_SYMBOL vmlinux 0x00000000 netdev_warn +EXPORT_SYMBOL vmlinux 0x00000000 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x00000000 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x00000000 netif_device_attach +EXPORT_SYMBOL vmlinux 0x00000000 netif_device_detach +EXPORT_SYMBOL vmlinux 0x00000000 netif_napi_add +EXPORT_SYMBOL vmlinux 0x00000000 netif_napi_del +EXPORT_SYMBOL vmlinux 0x00000000 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x00000000 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x00000000 netif_rx +EXPORT_SYMBOL vmlinux 0x00000000 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x00000000 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x00000000 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x00000000 netif_skb_features +EXPORT_SYMBOL vmlinux 0x00000000 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x00000000 netlink_ack +EXPORT_SYMBOL vmlinux 0x00000000 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x00000000 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x00000000 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x00000000 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x00000000 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x00000000 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x00000000 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0x00000000 netlink_set_err +EXPORT_SYMBOL vmlinux 0x00000000 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x00000000 netlink_unicast +EXPORT_SYMBOL vmlinux 0x00000000 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_setup +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_trap +EXPORT_SYMBOL vmlinux 0x00000000 new_inode +EXPORT_SYMBOL vmlinux 0x00000000 nf_afinfo +EXPORT_SYMBOL vmlinux 0x00000000 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x00000000 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x00000000 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x00000000 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x00000000 nf_hooks +EXPORT_SYMBOL vmlinux 0x00000000 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x00000000 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_packet +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_register +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x00000000 nf_register_hook +EXPORT_SYMBOL vmlinux 0x00000000 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x00000000 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x00000000 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x00000000 nf_reinject +EXPORT_SYMBOL vmlinux 0x00000000 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x00000000 nla_append +EXPORT_SYMBOL vmlinux 0x00000000 nla_find +EXPORT_SYMBOL vmlinux 0x00000000 nla_memcmp +EXPORT_SYMBOL vmlinux 0x00000000 nla_memcpy +EXPORT_SYMBOL vmlinux 0x00000000 nla_parse +EXPORT_SYMBOL vmlinux 0x00000000 nla_policy_len +EXPORT_SYMBOL vmlinux 0x00000000 nla_put +EXPORT_SYMBOL vmlinux 0x00000000 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x00000000 nla_reserve +EXPORT_SYMBOL vmlinux 0x00000000 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x00000000 nla_strcmp +EXPORT_SYMBOL vmlinux 0x00000000 nla_strlcpy +EXPORT_SYMBOL vmlinux 0x00000000 nla_validate +EXPORT_SYMBOL vmlinux 0x00000000 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x00000000 no_llseek +EXPORT_SYMBOL vmlinux 0x00000000 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x00000000 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 nobh_write_end +EXPORT_SYMBOL vmlinux 0x00000000 nobh_writepage +EXPORT_SYMBOL vmlinux 0x00000000 node_states +EXPORT_SYMBOL vmlinux 0x00000000 nonseekable_open +EXPORT_SYMBOL vmlinux 0x00000000 noop_fsync +EXPORT_SYMBOL vmlinux 0x00000000 noop_llseek +EXPORT_SYMBOL vmlinux 0x00000000 noop_qdisc +EXPORT_SYMBOL vmlinux 0x00000000 notify_change +EXPORT_SYMBOL vmlinux 0x00000000 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 ns_to_timespec +EXPORT_SYMBOL vmlinux 0x00000000 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x00000000 num_physpages +EXPORT_SYMBOL vmlinux 0x00000000 num_registered_fb +EXPORT_SYMBOL vmlinux 0x00000000 of_dev_get +EXPORT_SYMBOL vmlinux 0x00000000 of_dev_put +EXPORT_SYMBOL vmlinux 0x00000000 of_device_alloc +EXPORT_SYMBOL vmlinux 0x00000000 of_device_is_available +EXPORT_SYMBOL vmlinux 0x00000000 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x00000000 of_device_register +EXPORT_SYMBOL vmlinux 0x00000000 of_device_unregister +EXPORT_SYMBOL vmlinux 0x00000000 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x00000000 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x00000000 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x00000000 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x00000000 of_find_matching_node +EXPORT_SYMBOL vmlinux 0x00000000 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x00000000 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x00000000 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x00000000 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x00000000 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x00000000 of_find_property +EXPORT_SYMBOL vmlinux 0x00000000 of_get_address +EXPORT_SYMBOL vmlinux 0x00000000 of_get_mac_address +EXPORT_SYMBOL vmlinux 0x00000000 of_get_named_gpio_flags +EXPORT_SYMBOL vmlinux 0x00000000 of_get_next_child +EXPORT_SYMBOL vmlinux 0x00000000 of_get_parent +EXPORT_SYMBOL vmlinux 0x00000000 of_get_property +EXPORT_SYMBOL vmlinux 0x00000000 of_gpio_count +EXPORT_SYMBOL vmlinux 0x00000000 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x00000000 of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0x00000000 of_iomap +EXPORT_SYMBOL vmlinux 0x00000000 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0x00000000 of_match_device +EXPORT_SYMBOL vmlinux 0x00000000 of_match_node +EXPORT_SYMBOL vmlinux 0x00000000 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x00000000 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x00000000 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x00000000 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x00000000 of_node_get +EXPORT_SYMBOL vmlinux 0x00000000 of_node_put +EXPORT_SYMBOL vmlinux 0x00000000 of_parse_phandle +EXPORT_SYMBOL vmlinux 0x00000000 of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0x00000000 of_phy_connect +EXPORT_SYMBOL vmlinux 0x00000000 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x00000000 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x00000000 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x00000000 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x00000000 of_register_spi_devices +EXPORT_SYMBOL vmlinux 0x00000000 of_translate_address +EXPORT_SYMBOL vmlinux 0x00000000 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0x00000000 on_each_cpu +EXPORT_SYMBOL vmlinux 0x00000000 oops_in_progress +EXPORT_SYMBOL vmlinux 0x00000000 open_exec +EXPORT_SYMBOL vmlinux 0x00000000 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x00000000 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x00000000 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x00000000 otg_state_string +EXPORT_SYMBOL vmlinux 0x00000000 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x00000000 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x00000000 outer_cache +EXPORT_SYMBOL vmlinux 0x00000000 overflowgid +EXPORT_SYMBOL vmlinux 0x00000000 overflowuid +EXPORT_SYMBOL vmlinux 0x00000000 override_creds +EXPORT_SYMBOL vmlinux 0x00000000 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x00000000 padata_alloc +EXPORT_SYMBOL vmlinux 0x00000000 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x00000000 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x00000000 padata_do_serial +EXPORT_SYMBOL vmlinux 0x00000000 padata_free +EXPORT_SYMBOL vmlinux 0x00000000 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x00000000 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x00000000 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x00000000 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x00000000 padata_start +EXPORT_SYMBOL vmlinux 0x00000000 padata_stop +EXPORT_SYMBOL vmlinux 0x00000000 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x00000000 page_address +EXPORT_SYMBOL vmlinux 0x00000000 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x00000000 page_put_link +EXPORT_SYMBOL vmlinux 0x00000000 page_readlink +EXPORT_SYMBOL vmlinux 0x00000000 page_symlink +EXPORT_SYMBOL vmlinux 0x00000000 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x00000000 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x00000000 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x00000000 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x00000000 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x00000000 panic +EXPORT_SYMBOL vmlinux 0x00000000 panic_blink +EXPORT_SYMBOL vmlinux 0x00000000 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x00000000 param_array_ops +EXPORT_SYMBOL vmlinux 0x00000000 param_get_bool +EXPORT_SYMBOL vmlinux 0x00000000 param_get_byte +EXPORT_SYMBOL vmlinux 0x00000000 param_get_charp +EXPORT_SYMBOL vmlinux 0x00000000 param_get_int +EXPORT_SYMBOL vmlinux 0x00000000 param_get_invbool +EXPORT_SYMBOL vmlinux 0x00000000 param_get_long +EXPORT_SYMBOL vmlinux 0x00000000 param_get_short +EXPORT_SYMBOL vmlinux 0x00000000 param_get_string +EXPORT_SYMBOL vmlinux 0x00000000 param_get_uint +EXPORT_SYMBOL vmlinux 0x00000000 param_get_ulong +EXPORT_SYMBOL vmlinux 0x00000000 param_get_ushort +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_bool +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_byte +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_charp +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_int +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_long +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_short +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_string +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_uint +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x00000000 param_set_bool +EXPORT_SYMBOL vmlinux 0x00000000 param_set_byte +EXPORT_SYMBOL vmlinux 0x00000000 param_set_charp +EXPORT_SYMBOL vmlinux 0x00000000 param_set_copystring +EXPORT_SYMBOL vmlinux 0x00000000 param_set_int +EXPORT_SYMBOL vmlinux 0x00000000 param_set_invbool +EXPORT_SYMBOL vmlinux 0x00000000 param_set_long +EXPORT_SYMBOL vmlinux 0x00000000 param_set_short +EXPORT_SYMBOL vmlinux 0x00000000 param_set_uint +EXPORT_SYMBOL vmlinux 0x00000000 param_set_ulong +EXPORT_SYMBOL vmlinux 0x00000000 param_set_ushort +EXPORT_SYMBOL vmlinux 0x00000000 path_get +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 path_put +EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x00000000 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x00000000 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x00000000 pfn_valid +EXPORT_SYMBOL vmlinux 0x00000000 pgprot_kernel +EXPORT_SYMBOL vmlinux 0x00000000 pgprot_user +EXPORT_SYMBOL vmlinux 0x00000000 phy_attach +EXPORT_SYMBOL vmlinux 0x00000000 phy_connect +EXPORT_SYMBOL vmlinux 0x00000000 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x00000000 phy_detach +EXPORT_SYMBOL vmlinux 0x00000000 phy_device_free +EXPORT_SYMBOL vmlinux 0x00000000 phy_device_register +EXPORT_SYMBOL vmlinux 0x00000000 phy_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 phy_driver_register +EXPORT_SYMBOL vmlinux 0x00000000 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x00000000 phy_find_first +EXPORT_SYMBOL vmlinux 0x00000000 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 phy_print_status +EXPORT_SYMBOL vmlinux 0x00000000 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x00000000 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x00000000 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x00000000 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x00000000 phy_start +EXPORT_SYMBOL vmlinux 0x00000000 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x00000000 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x00000000 phy_stop +EXPORT_SYMBOL vmlinux 0x00000000 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x00000000 pid_task +EXPORT_SYMBOL vmlinux 0x00000000 ping_prot +EXPORT_SYMBOL vmlinux 0x00000000 pipe_lock +EXPORT_SYMBOL vmlinux 0x00000000 pipe_to_file +EXPORT_SYMBOL vmlinux 0x00000000 pipe_unlock +EXPORT_SYMBOL vmlinux 0x00000000 pl330_add +EXPORT_SYMBOL vmlinux 0x00000000 pl330_chan_ctrl +EXPORT_SYMBOL vmlinux 0x00000000 pl330_chan_status +EXPORT_SYMBOL vmlinux 0x00000000 pl330_del +EXPORT_SYMBOL vmlinux 0x00000000 pl330_release_channel +EXPORT_SYMBOL vmlinux 0x00000000 pl330_request_channel +EXPORT_SYMBOL vmlinux 0x00000000 pl330_submit_req +EXPORT_SYMBOL vmlinux 0x00000000 pl330_update +EXPORT_SYMBOL vmlinux 0x00000000 pm_idle +EXPORT_SYMBOL vmlinux 0x00000000 pm_power_off +EXPORT_SYMBOL vmlinux 0x00000000 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x00000000 pm_suspend +EXPORT_SYMBOL vmlinux 0x00000000 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x00000000 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x00000000 poll_freewait +EXPORT_SYMBOL vmlinux 0x00000000 poll_initwait +EXPORT_SYMBOL vmlinux 0x00000000 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_create +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_init +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x00000000 posix_lock_file +EXPORT_SYMBOL vmlinux 0x00000000 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x00000000 posix_test_lock +EXPORT_SYMBOL vmlinux 0x00000000 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x00000000 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x00000000 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x00000000 ppp_input +EXPORT_SYMBOL vmlinux 0x00000000 ppp_input_error +EXPORT_SYMBOL vmlinux 0x00000000 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x00000000 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x00000000 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x00000000 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x00000000 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x00000000 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x00000000 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x00000000 prandom32 +EXPORT_SYMBOL vmlinux 0x00000000 preempt_schedule +EXPORT_SYMBOL vmlinux 0x00000000 prepare_binprm +EXPORT_SYMBOL vmlinux 0x00000000 prepare_creds +EXPORT_SYMBOL vmlinux 0x00000000 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x00000000 print_hex_dump +EXPORT_SYMBOL vmlinux 0x00000000 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x00000000 printk +EXPORT_SYMBOL vmlinux 0x00000000 printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x00000000 probe_irq_mask +EXPORT_SYMBOL vmlinux 0x00000000 probe_irq_off +EXPORT_SYMBOL vmlinux 0x00000000 probe_irq_on +EXPORT_SYMBOL vmlinux 0x00000000 proc_create_data +EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec +EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 proc_dostring +EXPORT_SYMBOL vmlinux 0x00000000 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x00000000 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x00000000 proc_mkdir +EXPORT_SYMBOL vmlinux 0x00000000 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x00000000 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x00000000 proc_symlink +EXPORT_SYMBOL vmlinux 0x00000000 processor_id +EXPORT_SYMBOL vmlinux 0x00000000 profile_pc +EXPORT_SYMBOL vmlinux 0x00000000 proto_register +EXPORT_SYMBOL vmlinux 0x00000000 proto_unregister +EXPORT_SYMBOL vmlinux 0x00000000 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x00000000 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x00000000 ps2_command +EXPORT_SYMBOL vmlinux 0x00000000 ps2_drain +EXPORT_SYMBOL vmlinux 0x00000000 ps2_end_command +EXPORT_SYMBOL vmlinux 0x00000000 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x00000000 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x00000000 ps2_init +EXPORT_SYMBOL vmlinux 0x00000000 ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x00000000 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x00000000 pskb_copy +EXPORT_SYMBOL vmlinux 0x00000000 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x00000000 put_cmsg +EXPORT_SYMBOL vmlinux 0x00000000 put_disk +EXPORT_SYMBOL vmlinux 0x00000000 put_io_context +EXPORT_SYMBOL vmlinux 0x00000000 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x00000000 put_page +EXPORT_SYMBOL vmlinux 0x00000000 put_pages_list +EXPORT_SYMBOL vmlinux 0x00000000 put_tty_driver +EXPORT_SYMBOL vmlinux 0x00000000 put_unused_fd +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_reset +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_insert +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x00000000 random32 +EXPORT_SYMBOL vmlinux 0x00000000 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x00000000 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x00000000 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0x00000000 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0x00000000 rb_augment_insert +EXPORT_SYMBOL vmlinux 0x00000000 rb_erase +EXPORT_SYMBOL vmlinux 0x00000000 rb_first +EXPORT_SYMBOL vmlinux 0x00000000 rb_insert_color +EXPORT_SYMBOL vmlinux 0x00000000 rb_last +EXPORT_SYMBOL vmlinux 0x00000000 rb_next +EXPORT_SYMBOL vmlinux 0x00000000 rb_prev +EXPORT_SYMBOL vmlinux 0x00000000 rb_replace_node +EXPORT_SYMBOL vmlinux 0x00000000 read_cache_page +EXPORT_SYMBOL vmlinux 0x00000000 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x00000000 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x00000000 read_cache_pages +EXPORT_SYMBOL vmlinux 0x00000000 read_dev_sector +EXPORT_SYMBOL vmlinux 0x00000000 recalc_sigpending +EXPORT_SYMBOL vmlinux 0x00000000 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x00000000 redraw_screen +EXPORT_SYMBOL vmlinux 0x00000000 refrigerator +EXPORT_SYMBOL vmlinux 0x00000000 register_blkdev +EXPORT_SYMBOL vmlinux 0x00000000 register_cdrom +EXPORT_SYMBOL vmlinux 0x00000000 register_chrdev_region +EXPORT_SYMBOL vmlinux 0x00000000 register_con_driver +EXPORT_SYMBOL vmlinux 0x00000000 register_console +EXPORT_SYMBOL vmlinux 0x00000000 register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 register_filesystem +EXPORT_SYMBOL vmlinux 0x00000000 register_framebuffer +EXPORT_SYMBOL vmlinux 0x00000000 register_gifconf +EXPORT_SYMBOL vmlinux 0x00000000 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_key_type +EXPORT_SYMBOL vmlinux 0x00000000 register_md_personality +EXPORT_SYMBOL vmlinux 0x00000000 register_module_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_netdev +EXPORT_SYMBOL vmlinux 0x00000000 register_netdevice +EXPORT_SYMBOL vmlinux 0x00000000 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_nls +EXPORT_SYMBOL vmlinux 0x00000000 register_qdisc +EXPORT_SYMBOL vmlinux 0x00000000 register_quota_format +EXPORT_SYMBOL vmlinux 0x00000000 register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_shrinker +EXPORT_SYMBOL vmlinux 0x00000000 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x00000000 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x00000000 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x00000000 registered_fb +EXPORT_SYMBOL vmlinux 0x00000000 release_firmware +EXPORT_SYMBOL vmlinux 0x00000000 release_pages +EXPORT_SYMBOL vmlinux 0x00000000 release_resource +EXPORT_SYMBOL vmlinux 0x00000000 release_sock +EXPORT_SYMBOL vmlinux 0x00000000 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x00000000 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x00000000 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x00000000 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0x00000000 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x00000000 remove_wait_queue +EXPORT_SYMBOL vmlinux 0x00000000 rename_lock +EXPORT_SYMBOL vmlinux 0x00000000 replace_mount_options +EXPORT_SYMBOL vmlinux 0x00000000 request_firmware +EXPORT_SYMBOL vmlinux 0x00000000 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x00000000 request_key +EXPORT_SYMBOL vmlinux 0x00000000 request_key_async +EXPORT_SYMBOL vmlinux 0x00000000 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x00000000 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x00000000 request_resource +EXPORT_SYMBOL vmlinux 0x00000000 request_threaded_irq +EXPORT_SYMBOL vmlinux 0x00000000 reset_devices +EXPORT_SYMBOL vmlinux 0x00000000 revalidate_disk +EXPORT_SYMBOL vmlinux 0x00000000 revert_creds +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_register +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x00000000 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x00000000 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0x00000000 rt6_lookup +EXPORT_SYMBOL vmlinux 0x00000000 rtc_lock +EXPORT_SYMBOL vmlinux 0x00000000 rtc_month_days +EXPORT_SYMBOL vmlinux 0x00000000 rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0x00000000 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0x00000000 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x00000000 rtc_year_days +EXPORT_SYMBOL vmlinux 0x00000000 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_lock +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_notify +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_trylock +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x00000000 rwsem_is_locked +EXPORT_SYMBOL vmlinux 0x00000000 save_mount_options +EXPORT_SYMBOL vmlinux 0x00000000 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x00000000 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x00000000 schedule +EXPORT_SYMBOL vmlinux 0x00000000 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x00000000 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0x00000000 schedule_work +EXPORT_SYMBOL vmlinux 0x00000000 schedule_work_on +EXPORT_SYMBOL vmlinux 0x00000000 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x00000000 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x00000000 scnprintf +EXPORT_SYMBOL vmlinux 0x00000000 scsi_add_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x00000000 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x00000000 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x00000000 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x00000000 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x00000000 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x00000000 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x00000000 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x00000000 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x00000000 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x00000000 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x00000000 scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_get +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_put +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_type +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x00000000 scsi_execute +EXPORT_SYMBOL vmlinux 0x00000000 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x00000000 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x00000000 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x00000000 scsi_free_command +EXPORT_SYMBOL vmlinux 0x00000000 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x00000000 scsi_get_command +EXPORT_SYMBOL vmlinux 0x00000000 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x00000000 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x00000000 scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_get +EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_put +EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x00000000 scsi_init_io +EXPORT_SYMBOL vmlinux 0x00000000 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x00000000 scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x00000000 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x00000000 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x00000000 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x00000000 scsi_partsize +EXPORT_SYMBOL vmlinux 0x00000000 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x00000000 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x00000000 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_command +EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_result +EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_status +EXPORT_SYMBOL vmlinux 0x00000000 scsi_put_command +EXPORT_SYMBOL vmlinux 0x00000000 scsi_register +EXPORT_SYMBOL vmlinux 0x00000000 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x00000000 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x00000000 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x00000000 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x00000000 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x00000000 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x00000000 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x00000000 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x00000000 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x00000000 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x00000000 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x00000000 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x00000000 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x00000000 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x00000000 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x00000000 scsi_show_result +EXPORT_SYMBOL vmlinux 0x00000000 scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x00000000 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x00000000 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x00000000 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x00000000 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x00000000 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x00000000 scsi_unregister +EXPORT_SYMBOL vmlinux 0x00000000 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x00000000 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x00000000 search_binary_handler +EXPORT_SYMBOL vmlinux 0x00000000 secpath_dup +EXPORT_SYMBOL vmlinux 0x00000000 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x00000000 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x00000000 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x00000000 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x00000000 security_file_mmap +EXPORT_SYMBOL vmlinux 0x00000000 security_file_permission +EXPORT_SYMBOL vmlinux 0x00000000 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_permission +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x00000000 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x00000000 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x00000000 security_path_chmod +EXPORT_SYMBOL vmlinux 0x00000000 security_path_chown +EXPORT_SYMBOL vmlinux 0x00000000 security_path_link +EXPORT_SYMBOL vmlinux 0x00000000 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x00000000 security_path_mknod +EXPORT_SYMBOL vmlinux 0x00000000 security_path_rename +EXPORT_SYMBOL vmlinux 0x00000000 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x00000000 security_path_symlink +EXPORT_SYMBOL vmlinux 0x00000000 security_path_truncate +EXPORT_SYMBOL vmlinux 0x00000000 security_path_unlink +EXPORT_SYMBOL vmlinux 0x00000000 security_release_secctx +EXPORT_SYMBOL vmlinux 0x00000000 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x00000000 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x00000000 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x00000000 security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x00000000 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x00000000 security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x00000000 security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0x00000000 security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x00000000 security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x00000000 security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x00000000 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x00000000 security_sk_clone +EXPORT_SYMBOL vmlinux 0x00000000 security_sock_graft +EXPORT_SYMBOL vmlinux 0x00000000 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x00000000 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0x00000000 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x00000000 security_unix_may_send +EXPORT_SYMBOL vmlinux 0x00000000 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x00000000 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x00000000 send_sig +EXPORT_SYMBOL vmlinux 0x00000000 send_sig_info +EXPORT_SYMBOL vmlinux 0x00000000 seq_bitmap +EXPORT_SYMBOL vmlinux 0x00000000 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x00000000 seq_escape +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_next +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0x00000000 seq_list_next +EXPORT_SYMBOL vmlinux 0x00000000 seq_list_start +EXPORT_SYMBOL vmlinux 0x00000000 seq_list_start_head +EXPORT_SYMBOL vmlinux 0x00000000 seq_lseek +EXPORT_SYMBOL vmlinux 0x00000000 seq_open +EXPORT_SYMBOL vmlinux 0x00000000 seq_open_private +EXPORT_SYMBOL vmlinux 0x00000000 seq_path +EXPORT_SYMBOL vmlinux 0x00000000 seq_printf +EXPORT_SYMBOL vmlinux 0x00000000 seq_putc +EXPORT_SYMBOL vmlinux 0x00000000 seq_puts +EXPORT_SYMBOL vmlinux 0x00000000 seq_read +EXPORT_SYMBOL vmlinux 0x00000000 seq_release +EXPORT_SYMBOL vmlinux 0x00000000 seq_release_private +EXPORT_SYMBOL vmlinux 0x00000000 seq_write +EXPORT_SYMBOL vmlinux 0x00000000 serio_close +EXPORT_SYMBOL vmlinux 0x00000000 serio_interrupt +EXPORT_SYMBOL vmlinux 0x00000000 serio_open +EXPORT_SYMBOL vmlinux 0x00000000 serio_reconnect +EXPORT_SYMBOL vmlinux 0x00000000 serio_rescan +EXPORT_SYMBOL vmlinux 0x00000000 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x00000000 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x00000000 set_anon_super +EXPORT_SYMBOL vmlinux 0x00000000 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x00000000 set_bh_page +EXPORT_SYMBOL vmlinux 0x00000000 set_binfmt +EXPORT_SYMBOL vmlinux 0x00000000 set_blocksize +EXPORT_SYMBOL vmlinux 0x00000000 set_create_files_as +EXPORT_SYMBOL vmlinux 0x00000000 set_current_groups +EXPORT_SYMBOL vmlinux 0x00000000 set_device_ro +EXPORT_SYMBOL vmlinux 0x00000000 set_disk_ro +EXPORT_SYMBOL vmlinux 0x00000000 set_groups +EXPORT_SYMBOL vmlinux 0x00000000 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x00000000 set_page_dirty +EXPORT_SYMBOL vmlinux 0x00000000 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x00000000 set_security_override +EXPORT_SYMBOL vmlinux 0x00000000 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x00000000 set_user_nice +EXPORT_SYMBOL vmlinux 0x00000000 setattr_copy +EXPORT_SYMBOL vmlinux 0x00000000 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x00000000 setup_max_cpus +EXPORT_SYMBOL vmlinux 0x00000000 setup_new_exec +EXPORT_SYMBOL vmlinux 0x00000000 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x00000000 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x00000000 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x00000000 sg_free_table +EXPORT_SYMBOL vmlinux 0x00000000 sg_init_one +EXPORT_SYMBOL vmlinux 0x00000000 sg_init_table +EXPORT_SYMBOL vmlinux 0x00000000 sg_last +EXPORT_SYMBOL vmlinux 0x00000000 sg_miter_next +EXPORT_SYMBOL vmlinux 0x00000000 sg_miter_start +EXPORT_SYMBOL vmlinux 0x00000000 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x00000000 sg_next +EXPORT_SYMBOL vmlinux 0x00000000 sget +EXPORT_SYMBOL vmlinux 0x00000000 sha_transform +EXPORT_SYMBOL vmlinux 0x00000000 should_remove_suid +EXPORT_SYMBOL vmlinux 0x00000000 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x00000000 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x00000000 si_meminfo +EXPORT_SYMBOL vmlinux 0x00000000 sigprocmask +EXPORT_SYMBOL vmlinux 0x00000000 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x00000000 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x00000000 simple_empty +EXPORT_SYMBOL vmlinux 0x00000000 simple_fill_super +EXPORT_SYMBOL vmlinux 0x00000000 simple_getattr +EXPORT_SYMBOL vmlinux 0x00000000 simple_link +EXPORT_SYMBOL vmlinux 0x00000000 simple_lookup +EXPORT_SYMBOL vmlinux 0x00000000 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x00000000 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x00000000 simple_readpage +EXPORT_SYMBOL vmlinux 0x00000000 simple_release_fs +EXPORT_SYMBOL vmlinux 0x00000000 simple_rename +EXPORT_SYMBOL vmlinux 0x00000000 simple_rmdir +EXPORT_SYMBOL vmlinux 0x00000000 simple_setattr +EXPORT_SYMBOL vmlinux 0x00000000 simple_statfs +EXPORT_SYMBOL vmlinux 0x00000000 simple_strtol +EXPORT_SYMBOL vmlinux 0x00000000 simple_strtoll +EXPORT_SYMBOL vmlinux 0x00000000 simple_strtoul +EXPORT_SYMBOL vmlinux 0x00000000 simple_strtoull +EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x00000000 simple_unlink +EXPORT_SYMBOL vmlinux 0x00000000 simple_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 simple_write_end +EXPORT_SYMBOL vmlinux 0x00000000 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x00000000 single_open +EXPORT_SYMBOL vmlinux 0x00000000 single_release +EXPORT_SYMBOL vmlinux 0x00000000 sk_alloc +EXPORT_SYMBOL vmlinux 0x00000000 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x00000000 sk_common_release +EXPORT_SYMBOL vmlinux 0x00000000 sk_dst_check +EXPORT_SYMBOL vmlinux 0x00000000 sk_filter +EXPORT_SYMBOL vmlinux 0x00000000 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x00000000 sk_free +EXPORT_SYMBOL vmlinux 0x00000000 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x00000000 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x00000000 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x00000000 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x00000000 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x00000000 sk_run_filter +EXPORT_SYMBOL vmlinux 0x00000000 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x00000000 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_error +EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x00000000 sk_wait_data +EXPORT_SYMBOL vmlinux 0x00000000 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x00000000 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x00000000 skb_append +EXPORT_SYMBOL vmlinux 0x00000000 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x00000000 skb_checksum +EXPORT_SYMBOL vmlinux 0x00000000 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x00000000 skb_clone +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x00000000 skb_dequeue +EXPORT_SYMBOL vmlinux 0x00000000 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x00000000 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x00000000 skb_find_text +EXPORT_SYMBOL vmlinux 0x00000000 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x00000000 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x00000000 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x00000000 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x00000000 skb_insert +EXPORT_SYMBOL vmlinux 0x00000000 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x00000000 skb_make_writable +EXPORT_SYMBOL vmlinux 0x00000000 skb_pad +EXPORT_SYMBOL vmlinux 0x00000000 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x00000000 skb_pull +EXPORT_SYMBOL vmlinux 0x00000000 skb_push +EXPORT_SYMBOL vmlinux 0x00000000 skb_put +EXPORT_SYMBOL vmlinux 0x00000000 skb_queue_head +EXPORT_SYMBOL vmlinux 0x00000000 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x00000000 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x00000000 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x00000000 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x00000000 skb_recycle +EXPORT_SYMBOL vmlinux 0x00000000 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x00000000 skb_seq_read +EXPORT_SYMBOL vmlinux 0x00000000 skb_split +EXPORT_SYMBOL vmlinux 0x00000000 skb_store_bits +EXPORT_SYMBOL vmlinux 0x00000000 skb_trim +EXPORT_SYMBOL vmlinux 0x00000000 skb_unlink +EXPORT_SYMBOL vmlinux 0x00000000 skip_spaces +EXPORT_SYMBOL vmlinux 0x00000000 sleep_on +EXPORT_SYMBOL vmlinux 0x00000000 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x00000000 slhc_compress +EXPORT_SYMBOL vmlinux 0x00000000 slhc_free +EXPORT_SYMBOL vmlinux 0x00000000 slhc_init +EXPORT_SYMBOL vmlinux 0x00000000 slhc_remember +EXPORT_SYMBOL vmlinux 0x00000000 slhc_toss +EXPORT_SYMBOL vmlinux 0x00000000 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x00000000 smp_call_function +EXPORT_SYMBOL vmlinux 0x00000000 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x00000000 smp_call_function_single +EXPORT_SYMBOL vmlinux 0x00000000 snprintf +EXPORT_SYMBOL vmlinux 0x00000000 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x00000000 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x00000000 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 sock_create +EXPORT_SYMBOL vmlinux 0x00000000 sock_create_kern +EXPORT_SYMBOL vmlinux 0x00000000 sock_create_lite +EXPORT_SYMBOL vmlinux 0x00000000 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x00000000 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x00000000 sock_i_ino +EXPORT_SYMBOL vmlinux 0x00000000 sock_i_uid +EXPORT_SYMBOL vmlinux 0x00000000 sock_init_data +EXPORT_SYMBOL vmlinux 0x00000000 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x00000000 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x00000000 sock_map_fd +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_accept +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_bind +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_connect +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_getname +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_listen +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_poll +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x00000000 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x00000000 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x00000000 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sock_release +EXPORT_SYMBOL vmlinux 0x00000000 sock_rfree +EXPORT_SYMBOL vmlinux 0x00000000 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x00000000 sock_unregister +EXPORT_SYMBOL vmlinux 0x00000000 sock_update_classid +EXPORT_SYMBOL vmlinux 0x00000000 sock_wake_async +EXPORT_SYMBOL vmlinux 0x00000000 sock_wfree +EXPORT_SYMBOL vmlinux 0x00000000 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x00000000 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x00000000 soft_cursor +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00000000 softnet_data +EXPORT_SYMBOL vmlinux 0x00000000 sort +EXPORT_SYMBOL vmlinux 0x00000000 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x00000000 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x00000000 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x00000000 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x00000000 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x00000000 sprintf +EXPORT_SYMBOL vmlinux 0x00000000 srandom32 +EXPORT_SYMBOL vmlinux 0x00000000 sscanf +EXPORT_SYMBOL vmlinux 0x00000000 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x00000000 start_tty +EXPORT_SYMBOL vmlinux 0x00000000 stop_tty +EXPORT_SYMBOL vmlinux 0x00000000 strcasecmp +EXPORT_SYMBOL vmlinux 0x00000000 strcat +EXPORT_SYMBOL vmlinux 0x00000000 strchr +EXPORT_SYMBOL vmlinux 0x00000000 strcmp +EXPORT_SYMBOL vmlinux 0x00000000 strcpy +EXPORT_SYMBOL vmlinux 0x00000000 strcspn +EXPORT_SYMBOL vmlinux 0x00000000 strim +EXPORT_SYMBOL vmlinux 0x00000000 string_get_size +EXPORT_SYMBOL vmlinux 0x00000000 strlcat +EXPORT_SYMBOL vmlinux 0x00000000 strlcpy +EXPORT_SYMBOL vmlinux 0x00000000 strlen +EXPORT_SYMBOL vmlinux 0x00000000 strncasecmp +EXPORT_SYMBOL vmlinux 0x00000000 strncat +EXPORT_SYMBOL vmlinux 0x00000000 strnchr +EXPORT_SYMBOL vmlinux 0x00000000 strncmp +EXPORT_SYMBOL vmlinux 0x00000000 strncpy +EXPORT_SYMBOL vmlinux 0x00000000 strndup_user +EXPORT_SYMBOL vmlinux 0x00000000 strnicmp +EXPORT_SYMBOL vmlinux 0x00000000 strnlen +EXPORT_SYMBOL vmlinux 0x00000000 strnstr +EXPORT_SYMBOL vmlinux 0x00000000 strpbrk +EXPORT_SYMBOL vmlinux 0x00000000 strrchr +EXPORT_SYMBOL vmlinux 0x00000000 strsep +EXPORT_SYMBOL vmlinux 0x00000000 strspn +EXPORT_SYMBOL vmlinux 0x00000000 strstr +EXPORT_SYMBOL vmlinux 0x00000000 strtobool +EXPORT_SYMBOL vmlinux 0x00000000 submit_bh +EXPORT_SYMBOL vmlinux 0x00000000 submit_bio +EXPORT_SYMBOL vmlinux 0x00000000 sync_blockdev +EXPORT_SYMBOL vmlinux 0x00000000 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x00000000 sync_inode +EXPORT_SYMBOL vmlinux 0x00000000 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x00000000 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x00000000 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x00000000 synchronize_irq +EXPORT_SYMBOL vmlinux 0x00000000 synchronize_net +EXPORT_SYMBOL vmlinux 0x00000000 syncookie_secret +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 sys_tz +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x00000000 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x00000000 sysfs_streq +EXPORT_SYMBOL vmlinux 0x00000000 system_rev +EXPORT_SYMBOL vmlinux 0x00000000 system_serial_high +EXPORT_SYMBOL vmlinux 0x00000000 system_serial_low +EXPORT_SYMBOL vmlinux 0x00000000 system_state +EXPORT_SYMBOL vmlinux 0x00000000 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x00000000 take_over_console +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 task_ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x00000000 tasklet_init +EXPORT_SYMBOL vmlinux 0x00000000 tasklet_kill +EXPORT_SYMBOL vmlinux 0x00000000 tc_classify +EXPORT_SYMBOL vmlinux 0x00000000 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x00000000 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_register +EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x00000000 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x00000000 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x00000000 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x00000000 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x00000000 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x00000000 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x00000000 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x00000000 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x00000000 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x00000000 tcf_register_action +EXPORT_SYMBOL vmlinux 0x00000000 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x00000000 tcp_check_req +EXPORT_SYMBOL vmlinux 0x00000000 tcp_child_process +EXPORT_SYMBOL vmlinux 0x00000000 tcp_close +EXPORT_SYMBOL vmlinux 0x00000000 tcp_connect +EXPORT_SYMBOL vmlinux 0x00000000 tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0x00000000 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x00000000 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x00000000 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x00000000 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x00000000 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x00000000 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x00000000 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x00000000 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x00000000 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x00000000 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x00000000 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x00000000 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x00000000 tcp_poll +EXPORT_SYMBOL vmlinux 0x00000000 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x00000000 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x00000000 tcp_prot +EXPORT_SYMBOL vmlinux 0x00000000 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x00000000 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x00000000 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x00000000 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x00000000 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x00000000 tcp_seq_open +EXPORT_SYMBOL vmlinux 0x00000000 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x00000000 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x00000000 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x00000000 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x00000000 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x00000000 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x00000000 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x00000000 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x00000000 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x00000000 tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0x00000000 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x00000000 test_taint +EXPORT_SYMBOL vmlinux 0x00000000 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x00000000 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x00000000 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x00000000 textsearch_register +EXPORT_SYMBOL vmlinux 0x00000000 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x00000000 thaw_bdev +EXPORT_SYMBOL vmlinux 0x00000000 thaw_process +EXPORT_SYMBOL vmlinux 0x00000000 thaw_super +EXPORT_SYMBOL vmlinux 0x00000000 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x00000000 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x00000000 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x00000000 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x00000000 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x00000000 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x00000000 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0x00000000 time_to_tm +EXPORT_SYMBOL vmlinux 0x00000000 timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0x00000000 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 timespec_trunc +EXPORT_SYMBOL vmlinux 0x00000000 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 totalhigh_pages +EXPORT_SYMBOL vmlinux 0x00000000 totalram_pages +EXPORT_SYMBOL vmlinux 0x00000000 touch_atime +EXPORT_SYMBOL vmlinux 0x00000000 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x00000000 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x00000000 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x00000000 truncate_setsize +EXPORT_SYMBOL vmlinux 0x00000000 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x00000000 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x00000000 try_to_release_page +EXPORT_SYMBOL vmlinux 0x00000000 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x00000000 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x00000000 tty_check_change +EXPORT_SYMBOL vmlinux 0x00000000 tty_devnum +EXPORT_SYMBOL vmlinux 0x00000000 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x00000000 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x00000000 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x00000000 tty_free_termios +EXPORT_SYMBOL vmlinux 0x00000000 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x00000000 tty_hangup +EXPORT_SYMBOL vmlinux 0x00000000 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x00000000 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x00000000 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x00000000 tty_kref_put +EXPORT_SYMBOL vmlinux 0x00000000 tty_lock +EXPORT_SYMBOL vmlinux 0x00000000 tty_mutex +EXPORT_SYMBOL vmlinux 0x00000000 tty_name +EXPORT_SYMBOL vmlinux 0x00000000 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x00000000 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_close +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_init +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_open +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_put +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x00000000 tty_register_device +EXPORT_SYMBOL vmlinux 0x00000000 tty_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x00000000 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x00000000 tty_set_operations +EXPORT_SYMBOL vmlinux 0x00000000 tty_shutdown +EXPORT_SYMBOL vmlinux 0x00000000 tty_std_termios +EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x00000000 tty_throttle +EXPORT_SYMBOL vmlinux 0x00000000 tty_unlock +EXPORT_SYMBOL vmlinux 0x00000000 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x00000000 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0x00000000 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x00000000 tty_vhangup +EXPORT_SYMBOL vmlinux 0x00000000 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x00000000 tty_write_room +EXPORT_SYMBOL vmlinux 0x00000000 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x00000000 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0x00000000 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x00000000 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_irq_exit +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_irq_init +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_power +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x00000000 twl_i2c_read +EXPORT_SYMBOL vmlinux 0x00000000 twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0x00000000 twl_i2c_write +EXPORT_SYMBOL vmlinux 0x00000000 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x00000000 twl_rev +EXPORT_SYMBOL vmlinux 0x00000000 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x00000000 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x00000000 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x00000000 uart_match_port +EXPORT_SYMBOL vmlinux 0x00000000 uart_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x00000000 uart_resume_port +EXPORT_SYMBOL vmlinux 0x00000000 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x00000000 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x00000000 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x00000000 udp_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x00000000 udp_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x00000000 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x00000000 udp_poll +EXPORT_SYMBOL vmlinux 0x00000000 udp_proc_register +EXPORT_SYMBOL vmlinux 0x00000000 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x00000000 udp_prot +EXPORT_SYMBOL vmlinux 0x00000000 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x00000000 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 udp_seq_open +EXPORT_SYMBOL vmlinux 0x00000000 udp_table +EXPORT_SYMBOL vmlinux 0x00000000 udplite_prot +EXPORT_SYMBOL vmlinux 0x00000000 udplite_table +EXPORT_SYMBOL vmlinux 0x00000000 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x00000000 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x00000000 unload_nls +EXPORT_SYMBOL vmlinux 0x00000000 unlock_buffer +EXPORT_SYMBOL vmlinux 0x00000000 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x00000000 unlock_page +EXPORT_SYMBOL vmlinux 0x00000000 unlock_rename +EXPORT_SYMBOL vmlinux 0x00000000 unlock_super +EXPORT_SYMBOL vmlinux 0x00000000 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x00000000 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x00000000 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x00000000 unregister_blkdev +EXPORT_SYMBOL vmlinux 0x00000000 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x00000000 unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x00000000 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x00000000 unregister_console +EXPORT_SYMBOL vmlinux 0x00000000 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x00000000 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x00000000 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_key_type +EXPORT_SYMBOL vmlinux 0x00000000 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x00000000 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdev +EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x00000000 unregister_nls +EXPORT_SYMBOL vmlinux 0x00000000 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x00000000 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x00000000 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x00000000 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x00000000 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x00000000 up +EXPORT_SYMBOL vmlinux 0x00000000 up_read +EXPORT_SYMBOL vmlinux 0x00000000 up_write +EXPORT_SYMBOL vmlinux 0x00000000 update_region +EXPORT_SYMBOL vmlinux 0x00000000 usb_nop_xceiv_register +EXPORT_SYMBOL vmlinux 0x00000000 usb_nop_xceiv_unregister +EXPORT_SYMBOL vmlinux 0x00000000 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 user_path_at +EXPORT_SYMBOL vmlinux 0x00000000 user_path_create +EXPORT_SYMBOL vmlinux 0x00000000 user_revoke +EXPORT_SYMBOL vmlinux 0x00000000 usleep_range +EXPORT_SYMBOL vmlinux 0x00000000 utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x00000000 utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0x00000000 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0x00000000 utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x00000000 vc_cons +EXPORT_SYMBOL vmlinux 0x00000000 vc_resize +EXPORT_SYMBOL vmlinux 0x00000000 verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x00000000 vesa_modes +EXPORT_SYMBOL vmlinux 0x00000000 vfree +EXPORT_SYMBOL vmlinux 0x00000000 vfs_create +EXPORT_SYMBOL vmlinux 0x00000000 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fstat +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vfs_getattr +EXPORT_SYMBOL vmlinux 0x00000000 vfs_link +EXPORT_SYMBOL vmlinux 0x00000000 vfs_llseek +EXPORT_SYMBOL vmlinux 0x00000000 vfs_lstat +EXPORT_SYMBOL vmlinux 0x00000000 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x00000000 vfs_mknod +EXPORT_SYMBOL vmlinux 0x00000000 vfs_open +EXPORT_SYMBOL vmlinux 0x00000000 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x00000000 vfs_read +EXPORT_SYMBOL vmlinux 0x00000000 vfs_readdir +EXPORT_SYMBOL vmlinux 0x00000000 vfs_readlink +EXPORT_SYMBOL vmlinux 0x00000000 vfs_readv +EXPORT_SYMBOL vmlinux 0x00000000 vfs_rename +EXPORT_SYMBOL vmlinux 0x00000000 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x00000000 vfs_stat +EXPORT_SYMBOL vmlinux 0x00000000 vfs_statfs +EXPORT_SYMBOL vmlinux 0x00000000 vfs_symlink +EXPORT_SYMBOL vmlinux 0x00000000 vfs_unlink +EXPORT_SYMBOL vmlinux 0x00000000 vfs_write +EXPORT_SYMBOL vmlinux 0x00000000 vfs_writev +EXPORT_SYMBOL vmlinux 0x00000000 vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0x00000000 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x00000000 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x00000000 vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x00000000 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x00000000 vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x00000000 vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x00000000 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x00000000 vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0x00000000 vga_base +EXPORT_SYMBOL vmlinux 0x00000000 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x00000000 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x00000000 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x00000000 vm_event_states +EXPORT_SYMBOL vmlinux 0x00000000 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x00000000 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x00000000 vm_insert_page +EXPORT_SYMBOL vmlinux 0x00000000 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x00000000 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x00000000 vm_map_ram +EXPORT_SYMBOL vmlinux 0x00000000 vm_stat +EXPORT_SYMBOL vmlinux 0x00000000 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_32 +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_node +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_user +EXPORT_SYMBOL vmlinux 0x00000000 vmap +EXPORT_SYMBOL vmlinux 0x00000000 vmtruncate +EXPORT_SYMBOL vmlinux 0x00000000 vprintk +EXPORT_SYMBOL vmlinux 0x00000000 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0x00000000 vscnprintf +EXPORT_SYMBOL vmlinux 0x00000000 vsnprintf +EXPORT_SYMBOL vmlinux 0x00000000 vsprintf +EXPORT_SYMBOL vmlinux 0x00000000 vsscanf +EXPORT_SYMBOL vmlinux 0x00000000 vunmap +EXPORT_SYMBOL vmlinux 0x00000000 vzalloc +EXPORT_SYMBOL vmlinux 0x00000000 vzalloc_node +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x00000000 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x00000000 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x00000000 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x00000000 wake_bit_function +EXPORT_SYMBOL vmlinux 0x00000000 wake_up_bit +EXPORT_SYMBOL vmlinux 0x00000000 wake_up_process +EXPORT_SYMBOL vmlinux 0x00000000 walk_stackframe +EXPORT_SYMBOL vmlinux 0x00000000 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x00000000 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x00000000 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x00000000 wireless_send_event +EXPORT_SYMBOL vmlinux 0x00000000 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x00000000 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x00000000 would_dump +EXPORT_SYMBOL vmlinux 0x00000000 write_cache_pages +EXPORT_SYMBOL vmlinux 0x00000000 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x00000000 write_inode_now +EXPORT_SYMBOL vmlinux 0x00000000 write_one_page +EXPORT_SYMBOL vmlinux 0x00000000 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x00000000 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x00000000 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x00000000 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x00000000 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_input +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_end +EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_init +EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_reset +EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_run +EXPORT_SYMBOL vmlinux 0x00000000 yield +EXPORT_SYMBOL vmlinux 0x00000000 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflate +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflate_workspacesize +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x00000000 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x00000000 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x00000000 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x00000000 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x00000000 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x00000000 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x00000000 async_xor_val +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x00000000 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/des_generic 0x00000000 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x00000000 twofish_setkey +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i2c 0x00000000 regmap_init_i2c +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi 0x00000000 regmap_init_spi +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x00000000 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x00000000 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x00000000 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x00000000 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x00000000 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x00000000 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x00000000 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common_send +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x00000000 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x00000000 usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x00000000 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x00000000 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x00000000 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x00000000 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x00000000 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x00000000 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x00000000 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x00000000 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x00000000 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x00000000 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_sm_checker_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_sm_checker_create_fresh +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/raid1 0x00000000 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x00000000 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x00000000 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x00000000 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x00000000 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x00000000 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x00000000 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x00000000 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x00000000 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x00000000 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x00000000 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x00000000 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x00000000 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x00000000 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-demod 0x00000000 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x00000000 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x00000000 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x00000000 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x00000000 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x00000000 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x00000000 tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x00000000 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x00000000 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x00000000 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x00000000 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x00000000 tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x00000000 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x00000000 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x00000000 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x00000000 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x00000000 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x00000000 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x00000000 v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x00000000 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x00000000 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x00000000 v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x00000000 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x00000000 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x00000000 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x00000000 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x00000000 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x00000000 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x00000000 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x00000000 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x00000000 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x00000000 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x00000000 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x00000000 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x00000000 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x00000000 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_read +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x00000000 vb2_write +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x00000000 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x00000000 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x00000000 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x00000000 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x00000000 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x00000000 vb2_mmap_pfn_range +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x00000000 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-vmalloc 0x00000000 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00000000 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x00000000 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x00000000 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x00000000 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x00000000 twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x00000000 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x00000000 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x00000000 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x00000000 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x00000000 wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x00000000 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x00000000 st_unregister +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x00000000 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x00000000 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x00000000 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x00000000 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x00000000 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x00000000 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x00000000 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x00000000 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x00000000 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x00000000 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x00000000 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x00000000 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x00000000 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x00000000 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x00000000 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x00000000 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x00000000 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x00000000 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x00000000 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x00000000 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x00000000 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x00000000 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x00000000 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x00000000 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x00000000 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x00000000 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x00000000 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x00000000 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x00000000 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x00000000 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x00000000 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x00000000 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x00000000 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x00000000 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x00000000 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x00000000 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x00000000 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x00000000 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x00000000 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x00000000 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x00000000 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x00000000 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x00000000 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x00000000 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x00000000 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x00000000 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x00000000 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x00000000 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x00000000 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x00000000 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x00000000 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x00000000 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x00000000 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x00000000 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x00000000 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x00000000 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x00000000 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x00000000 wl1271_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x00000000 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x00000000 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x00000000 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x00000000 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x00000000 wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x00000000 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x00000000 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x00000000 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x00000000 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x00000000 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x00000000 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x00000000 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x00000000 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x00000000 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x00000000 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x00000000 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00000000 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00000000 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00000000 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00000000 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00000000 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00000000 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00000000 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00000000 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00000000 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x00000000 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x00000000 spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x00000000 spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_rport_del +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x00000000 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x00000000 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x00000000 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x00000000 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x00000000 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x00000000 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x00000000 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x00000000 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x00000000 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x00000000 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x00000000 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00000000 usbip_xmit +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x00000000 n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/8250 0x00000000 serial8250_handle_irq +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x00000000 max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x00000000 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x00000000 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x00000000 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x00000000 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x00000000 max3107_suspend +EXPORT_SYMBOL_GPL drivers/uio/uio 0x00000000 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x00000000 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x00000000 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x00000000 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x00000000 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00000000 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x00000000 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x00000000 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x00000000 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x00000000 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x00000000 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x00000000 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x00000000 wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusb_et_name +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x00000000 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x00000000 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x00000000 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x00000000 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00000000 uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x00000000 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x00000000 fb_sys_write +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_unlock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x00000000 fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_reset_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_reset_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commit_clear_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commit_release_pages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 put_lseg +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x00000000 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x00000000 nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL lib/bch 0x00000000 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x00000000 encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x00000000 free_bch +EXPORT_SYMBOL_GPL lib/bch 0x00000000 init_bch +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x00000000 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x00000000 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x00000000 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 init_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 init_rs_non_canonical +EXPORT_SYMBOL_GPL net/802/stp 0x00000000 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x00000000 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x00000000 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x00000000 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x00000000 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0x00000000 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x00000000 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x00000000 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x00000000 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x00000000 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x00000000 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x00000000 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x00000000 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x00000000 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x00000000 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x00000000 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x00000000 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x00000000 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x00000000 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x00000000 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x00000000 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x00000000 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x00000000 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x00000000 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x00000000 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x00000000 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00000000 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00000000 xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_wq +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x00000000 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x00000000 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_get_by_OID +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_list_pseudoflavors +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_write_space +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_state_get +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_output +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x00000000 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x00000000 l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x00000000 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x00000000 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x00000000 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x00000000 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x00000000 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x00000000 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x00000000 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x00000000 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x00000000 twl6040_get_clk_id +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x00000000 twl6040_get_trim_value +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x00000000 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x00000000 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x00000000 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x00000000 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x00000000 wm_hubs_dcs_done +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x00000000 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x00000000 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x00000000 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x00000000 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x00000000 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0x00000000 wm8996_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_default_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_default_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alg_test +EXPORT_SYMBOL_GPL vmlinux 0x00000000 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0x00000000 armpmu_get_max_events +EXPORT_SYMBOL_GPL vmlinux 0x00000000 armpmu_get_pmu_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x00000000 atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkio_alloc_blkg_stats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_goose_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0x00000000 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x00000000 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_cluster_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_cluster_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_pm_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_topology +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cred_real_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x00000000 css_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debug_locks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x00000000 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x00000000 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_move +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x00000000 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_class +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_add_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_del_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_handle_ce +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_handle_ue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_add_mc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_del_mc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_handle_ce +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_handle_ue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mem_types +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x00000000 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x00000000 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_mci_by_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_module +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x00000000 getboottime +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_clear_int +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_disable_int +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_func +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_isr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_xfer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inode_dio_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inode_dio_wait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_class +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x00000000 invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_generate_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lcm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0x00000000 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_run +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_check_plugged +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmput +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x00000000 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x00000000 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_property_count_strings +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_property_read_string_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x00000000 otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x00000000 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_num_counters +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_batches_completed_preempt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x00000000 release_pmu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reserve_pmu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 return_address +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_get_of_property +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_pltfm_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_pltfm_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_pltfm_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x00000000 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x00000000 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x00000000 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x00000000 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x00000000 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0x00000000 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x00000000 suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_nrt_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_add_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_del_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_usual_ignore_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_match +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usermodehelper_is_disabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0x00000000 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xv_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xv_get_object_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xv_malloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zap_vma_ptes --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/armhf/omap +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/armhf/omap @@ -0,0 +1,9783 @@ +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0x0e6c4531 omap_mbox_get +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0x154a75b0 omap_mbox_msg_send +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0x4c9ab456 omap_mbox_register +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0xbce67e37 omap_mbox_put +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0xdbc75fe3 omap_mbox_unregister +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/bcma/bcma 0x6df2d63d bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x5c165453 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1038dffc ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3c8e7345 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x584f7fb7 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa0f48bc9 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf8ca89ea ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/dma/dw_dmac 0x0db6d1f3 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw_dmac 0x295918f5 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw_dmac 0x489fbb29 dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw_dmac 0x64af6276 dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw_dmac 0x95f9231f dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw_dmac 0xa2022d7d dw_dma_get_src_addr +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04a3af60 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08e15c30 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a277ae4 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bd0e418 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c4ee798 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ed6eaf9 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f8dc681 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1054d395 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11073671 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x111b9fa0 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1213348d drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x129e9486 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13a3b414 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d306a9b drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e23cafc drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2106d0a2 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23f06d9e drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x267b0540 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26ea7af7 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b47b134 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c1aa5b7 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c56a8ff drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d3fb426 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d807df8 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31389d0a drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31a6f016 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31ab7090 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33e154ba drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3454568c drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3498d403 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34dcde4d drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35157bcc drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d09a33e drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d675594 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f0ea3c2 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42748acd drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x429f0e12 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43514060 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c9a91c drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44c5f45f drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4945a3ca drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a870943 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f5de301 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5071723f drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50f60bcb drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5165455b drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54668776 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55a4a4e0 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57549197 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58e795f3 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b906af1 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c53f9eb drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f6cbc33 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fa9e2b5 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fb98287 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60f7abfa drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63311200 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63f07105 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66cbbd3f drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67112550 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67b100f8 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67f0615a drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6adc3387 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d273b5a drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6da00f8b drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e6351f0 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72828385 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7402a85f drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79a8124e drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79af8fa3 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79b25812 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4a5d7e drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x837436fb drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87821e1a drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87e9fe78 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8838face drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89fbfab0 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e2fd579 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e8ac30e drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x901e6ad6 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90298bb4 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9109bcf2 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92f2d102 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x932df43d drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94c12114 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96451378 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c8bb3c2 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dc25a34 drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0717976 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa18ddc44 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa237e931 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa393ca45 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4523328 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4edb20a drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5a09d50 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6d8e06a drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6e3201d drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7179c31 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8f8554f drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaac7b297 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacbe2969 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadf88afc drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaff4225a drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb601ce03 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8a3de0a drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9a22de4 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba103894 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbc665e6 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd4f94be drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe0b8d05 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe9bebb2 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc378c41c drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc533dbc2 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5baa032 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc69af56d drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccc7fc77 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd753335 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd14652a2 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2721d6d drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2fbbf60 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd33d1ce6 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4c49ca0 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4dfb37a drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd79f34f9 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7f1ab84 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd86157ab drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd88db039 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc68a4ed drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfb535ed drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0cb321e drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1058b06 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe256edfd drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe33d943d drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe34d533d drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3553657 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe41cd169 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4f31703 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe532ac34 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6d1aea8 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6d640da drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7df8d57 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec7ef2e4 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccebb8a drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed256cae drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed28d92c drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefd58b0b drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0a0bf79 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7b4a3f6 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa44df0a drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc4f8599 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff7ec5ef drm_global_mutex +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x5370b4a8 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x9fce4c31 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x08e0c1cc i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x3d8969db i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xa7159638 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2ed8c75a gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3ea68952 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4b143009 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x81624164 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8ebe15e0 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb40bfd9e gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xcda91ec1 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe364705b __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xed958c61 __gameport_register_port +EXPORT_SYMBOL drivers/input/input-polldev 0x212a934d input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x85888332 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xabe4ff0b input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xae549841 input_register_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x2bf19b1d ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xa058d062 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb4414091 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb9b4af6c ad714x_disable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x4ad68bc4 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/sparse-keymap 0x4bd15ce9 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4ca5d4a8 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7710e0b5 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x89a4656f sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xc0ce8c24 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xcad05b58 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x61d73f34 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbc9dc160 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf3bd1692 ad7879_resume +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x09cb33ef attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4e08e6b6 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5448e141 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7c527b41 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9b9ebba6 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa6ff26a9 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd12338c0 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe6dd105a capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf75b1dc0 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfd35925f capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x0c9a2e6f hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x918cb7af isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xaf1a7fb0 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xc4eca5e9 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x039d64f8 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x06ec2f4f mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1483ce7c mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2d2774f2 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3a55dd38 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x464018c9 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4ca099c8 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x58956dfa mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5ccb222e recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x64c995e6 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6cd0bf67 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7a44388c queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8ba1be75 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96ad3599 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb0c6333c get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbd6bedee mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc5573ffe bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc5881fd0 confirm_Bsend +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 0xdd81fe41 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xeff5c6ba recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf59cb0f3 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x1768ffd2 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x4ece2197 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x7f6d245e dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xb52a4c74 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x13bb5d80 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x1de0063a dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x51117427 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa163f2f0 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa8a3cbb9 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xcb7cde76 dm_exception_store_create +EXPORT_SYMBOL drivers/md/raid456 0xaef2349b raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x7314ee72 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x9f4320c4 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x2291aa7a mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x171292f5 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xcc6296a4 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xebb7b775 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18212 0x80c49ef3 tda18212_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0xeaf48628 tda18218_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x0eca84bc xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc4000 0x579d4d53 xc4000_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x3a8e6cb9 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00bcfa4a flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x04492d2f flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2f3b1539 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x37e8bef9 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x613cd354 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x686a456d flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x70c481d3 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa8a5c18f flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb03b2517 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb0fc3127 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb89623b6 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe08084d4 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xefd160e1 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1c813640 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3350035a dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3ca91d95 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4dfe519c dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4f57e91e dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6225816a dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x65092474 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x687066ad dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x71b42399 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x746b02ad dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x761f35fb dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x78b253d1 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a2ef94 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8480c59a dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x857b93e7 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x87289101 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x883c17c6 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8c63520d dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b3c91f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x97248e30 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x99e194a0 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbb11afbd dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc10be23a dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc3f50f32 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd71ea42b dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdad1ae56 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe7f889ca dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe81d4503 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed9e5ee7 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xedccb688 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf487376d dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb25f454 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfd145167 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfe3679c8 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x3f407f26 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x65fc1843 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x7c59eac6 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa5bbe930 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xc1baa700 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd14903a3 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd9b29317 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xebc93a85 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x06d93a9c dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x09b50e7c dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0ede8aab dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x11f8e02f dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x3f9e723a dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x81bf5594 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x86e6acda dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4765f67 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd58187b4 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdaa15045 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe0a4779b dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/a8293 0x661a9147 a8293_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x97c69e1f af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x39801374 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xa9d79ab8 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xbca76246 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x1e0d48e5 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x0d475ae8 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x51a2257b cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x14eeb12c cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x9dcb48bf cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x862b028c cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x0ab962fd cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x3f4d3c6f cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cxd2820r 0x87ac321c cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x4eaf768d dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x95841550 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x9616e16b dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x96666091 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xfd5e8170 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0897a345 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0a5657d4 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0ac9ffcc dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0b6e4b47 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x17508525 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x21280d3d dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x72357efa dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x80abf9fb dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x943c68a7 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xdcac1e51 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x221ba06a dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2e01c0f9 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x3c5a234d dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x5ebe629c dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x77e505f3 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa8ae8368 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x27b40221 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x65c11592 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x67947377 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xc3e7136f dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0c82340e dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x12258803 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1a90d206 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1f8bc0dc dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x408d2ac4 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x424b8769 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x49c50511 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5896c0d2 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5a78fc31 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x60908a7f dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x719719d2 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x73d476b9 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9fcd0615 dib7090_agc_restart +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa89288ff dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd75d4c18 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0c197b2e dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x108d3aeb dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2342c698 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x24e5cac5 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x403c86c1 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4bb78f87 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa817c167 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc949dd8d dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcf1ac738 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd3f57917 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe45c230b dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe84161e1 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xeac23f6d dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf03e4b64 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x268a57fe dib9000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x2b959d4f dib9000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x30335133 dib9000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x61a5b3a6 dib9000_set_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x79c5ae16 dib9000_fw_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x8aa14d42 dib9000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xbb8fb1e7 dib9000_fw_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xe203b40e dib9000_get_component_bus_interface +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xe9743727 dib9000_firmware_post_pll_init +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xe98d648f dib9000_fw_set_component_bus_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xec8717ed dib9000_get_tuner_interface +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xedab58b3 dib9000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xeea0702a dib9000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xf3dc05ae dib9000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x57e50f02 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x7bcbeed1 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xc142fe51 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd69db03b dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd7a6b24e dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x10bd555a drxd_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x86ac96e2 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb/frontends/drxk 0xd4b731ef drxk_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xa12bf1fa ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x6acfbe02 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0xe342667a ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xb206d8aa isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x44bbac68 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xd32988a0 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/it913x-fe 0xcd4e3c69 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x04c03b77 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0x332d8b15 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x878a0cd4 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x6ba59cca lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xd46422e6 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gl5 0x3ed7dbf9 lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x15e9b817 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x60db02b6 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x8c2ffbf0 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp22 0xe1a27ab2 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xd0a5bfc4 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0xc129a955 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xf36253a9 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xf8294abe mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x4288f845 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x0a0c57fc nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xdecf7dd0 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x3e5ae093 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x985dac4b s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x557f4e82 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x5cbbad80 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xa9a81ee4 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1432 0xc7b72053 s5h1432_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x58a9b44a s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x2fb25b50 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xffe8ef77 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x584846c2 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xff576bc4 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x7b12ecbb stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x05252e98 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xb4e649e3 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xe7096690 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x559961dc stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x0bfcbc44 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x9136246b stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x811bcc34 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xd49b45fa stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xff956d07 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x6b5ca1c8 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xa7071e55 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x982190a4 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x2cbb787f tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x05a1f2f3 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x3366ad3d tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x535fe4b2 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10071 0x0fdf58eb tda10071_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xb71046a0 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x01821acc tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x91f5f5a1 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x5e11b357 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xad1f2a72 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x33defd7e tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x5c2d9831 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x7b743124 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x59d63ebe zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xd4be6ae3 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x29e67f07 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x2f057460 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x1c773f6b lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x785a9818 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x828c9afb lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x8d516e45 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x9f637fb9 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc51d32f9 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xcedd68e2 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd55523d3 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/rc-core 0xa7f33a6e ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xe8b2de75 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xb4e724f1 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xc38b8632 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x59bdeb70 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5a7bdc98 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x676ed443 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xda6c62f8 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe821436e cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/davinci/vpfe_capture 0x9063d396 vpfe_unregister_ccdc_device +EXPORT_SYMBOL drivers/media/video/davinci/vpfe_capture 0xd23fbd4b vpfe_register_ccdc_device +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x088ccec9 vpss_select_ccdc_source +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x319709a6 vpss_clear_wbl_overflow +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x54146824 dm365_vpss_set_sync_pol +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x6e5b5413 vpss_enable_clock +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x749bf2c9 dm365_vpss_set_pg_frame_size +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x1d2d3448 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xe20b254e em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x0dce82b5 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x2f25bc82 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x4525aad2 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8a5649c1 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa94169ac gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa9f2876f gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xf2aaa73b gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/soc_camera 0x33f326ac soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x7ce140ed soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x82223b15 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x87309fb8 soc_camera_unlock +EXPORT_SYMBOL drivers/media/video/soc_camera 0xadc026f1 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb90bacd3 soc_camera_lock +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x433952ab soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6951757b soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x85d52182 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xcb4b96ae soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x386b37e8 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xb42c44aa tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xdb4b4b98 tm6000_register_extension +EXPORT_SYMBOL drivers/media/video/tveeprom 0xc4fdffa5 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0xec3a8f23 tveeprom_read +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03c8d4ec v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x34bf401d v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x791ab099 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc0699aac v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf052e6db v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x5302fe81 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x8fd0e34f v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xc619e874 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1960e7a3 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x271d4dc4 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6d271763 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x9622ac35 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x9cdf8f08 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa40eb3c0 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf2-core 0x5cb2ce16 vb2_querybuf +EXPORT_SYMBOL drivers/media/video/videodev 0x02360ca7 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x11b01749 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/videodev 0x162b380e v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x1d49ad8d v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/videodev 0x2711e6fe v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0x277f4bfc v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x2fa89104 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x3592362d v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/videodev 0x3f4e25ea v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0x3fb16bc4 v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x4083ac6a video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x45a9e267 v4l2_ctrl_del_event +EXPORT_SYMBOL drivers/media/video/videodev 0x4685e0c9 __video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4bc3caa3 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x69e84655 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x6af1e16b v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x6fc3dc73 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x73c65006 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x75ae8edb v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x776003e6 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x7771212e v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7df3d048 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/videodev 0x8297d681 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x94ae6b07 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xad95ef8b v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0xae8d826b v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0xb5c42b86 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videodev 0xb83c01f6 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/video/videodev 0xb8cd3ed1 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0xc2a0fe80 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xc85f9c55 v4l2_ctrl_add_event +EXPORT_SYMBOL drivers/media/video/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/videodev 0xce4a45bd v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xd88c713b v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xdbfd8b6c v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe2fd65de v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe3719f5c v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0xe7cac722 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0xe921321f v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe9418be7 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xe97910f2 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0xed0809f3 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xedbfdbf0 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0ea53b33 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1b7c50bd memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x200d239d memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x232c5b48 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6bad9301 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x71eeea75 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7b03dcf7 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8ff2624f memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x92bfdf30 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x9be56845 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa0f3b84a memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcc1c3526 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf82f5b79 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xff87cda6 memstick_next_req +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x3b872bd5 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x419837d8 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0a0f0fa1 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19f1f7a8 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x304d2b09 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x648f3e82 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7c8289a3 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x81e0f888 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x908760bc mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9bc42b70 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa83c26ee mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xad06449f mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb3dae053 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc60a9247 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfdc5799c mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/tps6105x 0x0b9e80a3 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x61bba745 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0xd2f826ba tps6105x_mask_and_set +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/twl6030-pwm 0x015ee601 pwm_free +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xa4ee3c79 pwm_disable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xaee34e3d pwm_request +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xd83c7949 pwm_enable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xdeebfb06 pwm_config +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x5dd92b9c ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xae22afc6 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x51ea2fb0 altera_init +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x2c83f77b c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xb75c1ea7 c2port_device_register +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x2565ea89 mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xfe8ecc19 mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x1d89774d tmio_mmc_host_probe +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x2d696502 tmio_mmc_host_runtime_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x378f2335 tmio_mmc_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x6d3deee9 tmio_mmc_sdcard_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x7a6fd700 tmio_mmc_sdio_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xbb5d735f tmio_mmc_host_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xc29ddd92 tmio_mmc_host_runtime_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xc8c51ba1 tmio_mmc_host_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xf02062dd tmio_mmc_card_detect_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xf4c5d5a9 tmio_mmc_host_remove +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x5a2f70a7 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa6c08171 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd2d16502 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x8f3a984b mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x0ae0159e lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x3c221086 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x4179d9dd flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x65ec01f4 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xeef52a51 onenand_default_bbt +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x2df9a455 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x38370b09 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x4992b922 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7ce9cd7d hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa26c7029 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x09c52b21 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x376c019a sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4a7ea281 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x57c81ad7 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x66dab206 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x67739bdb irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x92092618 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9924610f sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xab5e6d42 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc7d5d523 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x006b89e5 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xef0beb2c alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp/pppox 0x2ceac284 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x7e83f836 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xd099d464 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/wan/hdlc 0x112ae73f unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x241fba99 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4a43f32d alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x68892f75 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x77b87bbb unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcce4c453 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xce393b13 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcf2fefe4 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe22e6a58 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf6c74de7 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfee42886 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x16f04c72 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x51533583 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x65afa971 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6be45c4d ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7cabf301 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xaf7c841b ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb7f9e0fb ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xcebd7b1e ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xdb96ee8b ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x387bd0d5 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5af0fe10 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xbb9ca145 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe7526eeb ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00019e8e ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05a524b4 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a66ff91 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d45af00 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1395f779 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1408d22a ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x142af98c ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15d8dc8d ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15fbe5d0 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1608a333 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x199f87db ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a242938 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1eb29343 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x203526e9 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x234204fd ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25e738c8 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2639fd65 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26e820e1 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26fc932c ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2efb459e ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31dc8a60 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x339cac14 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35958ec3 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36d4b967 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40f31d48 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42b520d7 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45b796fc ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x478e47f6 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x479c54b6 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4855cce7 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x489d205b ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49dbdf63 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bce903d ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bfb91bf ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e693ced ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51338ddf ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51a67bca ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5558a0da ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x583ea6c1 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5add9cc5 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b98af87 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5bdefaaa ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5cfb6f7f ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x606ec58c ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x610a2fa1 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x62c73b4b ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a79c23e ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ab79ca9 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x707f60df ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72bafbf9 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7356ffbb ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75ebbd49 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x781c9f45 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7833a7f1 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79873425 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7baa03a2 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e747f20 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f0512d7 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x814abd45 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x843944f5 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8458c12a ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88ff4d57 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a4cbc22 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91020730 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa60b745c ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa81574a5 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xade8b4e4 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1741947 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2d6494f ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8d220bf ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb250f71 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc141d468 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3344234 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc891547c ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc8d9329d ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9baa2b2 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd927f0c ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd551ad94 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda69a8b2 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe26c614c ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xebf6b491 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xedf2f58c ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0ac701a ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2c99a39 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6c85f21 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7a9f0da ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf925598c ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfce4d73f ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x31db3a26 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x96831297 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x060eeb08 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x06c045b1 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x197e26fc brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x19858561 brcmu_pkttotlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2526e244 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3e20256d brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4bbf5bfb brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x55769a89 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x608d91f5 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x750a3b31 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x907e80f8 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xab1ca3db brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc309bb51 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe6b17edd brcmu_pktfrombuf +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0b5dac67 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x15aa7703 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x15c7a164 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x18104177 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1eb3615e hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2c315538 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3ae4190f hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x43bb9aa3 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4b3aa3c9 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5ff36b3b hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7016a60d hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x71880893 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7291983c hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x85ea2585 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8e2b26e3 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x958a9c60 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x99ca27ec hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9dc810e7 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa963903c hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb5698b1a hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbc953faa hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbcc909ee hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcd5ddf0e prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe1617eaf hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf40f4ff7 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x11d95d90 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x14370ce7 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x149538de rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1c56800a _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1df4270b rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x29af0033 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x32ad3a77 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x36e99bd7 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x37086d95 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x398b060d rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3b89f9a2 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x436ab5b7 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x50233b3e rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x51a089f3 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x562436b1 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x56d78b31 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x57e370b2 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5b9f766a rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5be34896 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7c861739 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7f0f6361 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7fe35db6 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x87089461 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8ae306bb rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8d67d7f1 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9603e76b rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x965d43fc rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x989d90e3 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9a72d8b8 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9c20e371 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae11ea7d _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae5c10e5 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc8c91e42 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xce16182b rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd2d0916e _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe186e98a rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe3d19aa4 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe5755842 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe7fa59c3 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf479aca6 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf74e700d _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfc7960d4 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0ed8aaab rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0ef5e83d rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x164a0779 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1df6da55 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x308643d8 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3a93b0f6 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3ca44dcb rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x53fc48ee efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6b610c22 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x955e3698 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb5d44823 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc063de53 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc673629e rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc93fcdab rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd1c73a53 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xdb6174b6 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe3193b26 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfc9de049 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/parport/parport 0x021d961e parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x12a8737f parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x132a96c6 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x1eb01310 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x2e35e87e parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x2f92ba7a parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x32fe66c8 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x3d850da2 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x4c54399a parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4f01aede parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x57a6ec8d parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x59c5dc06 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x60882263 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x70743397 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x731fc15f parport_release +EXPORT_SYMBOL drivers/parport/parport 0x79554304 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x80828566 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x8cfe8ba5 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x8e7b53bd parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x95ba2ede parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x9707e1a6 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xa1c42d42 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xb54f6302 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xc8794efa parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xd2755784 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xd999f43f parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xdbb8f2ce parport_read +EXPORT_SYMBOL drivers/parport/parport 0xebaf20a2 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xf74daf9f parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xfba24cf1 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/pps/pps_core 0x3858a308 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0x463d828e pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x5d36a0d4 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xd7818e56 pps_lookup_dev +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x19992dda fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1a456996 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5ed13e40 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x62cd2770 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa73d508d fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa82e4e42 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe51ddbbb fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xea06a00c fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf8023708 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x01af599c libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ca1a0fa fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x10a8a21c fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1118783b fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x117924d9 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1306aad6 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x161eeb63 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2049193b fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26f3a7cd fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x29549e3c fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2fd0f0f1 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3037dcc5 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32544c9b fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3edcbb33 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x40c899aa fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x422c1dd0 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x440337de fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x475d4daa fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x50afe932 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54945349 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69a48ac3 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e920c40 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x70bb5bf5 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x79caf469 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d3510ec fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x826422d6 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x867b7e60 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x88134e7f fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ca3d059 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a555e2f fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b9dd1d6 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fdc2ba6 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa5393a59 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6671ca2 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb2196f5a fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb318c78a fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb595e970 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbcc13899 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd2dcf40 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3be323c fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5a4eeb9 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7e90458 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc820c661 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe9df3710 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xea61a546 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef932234 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeffa92fd fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf58c3855 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfab6a202 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfddae78e fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/raid_class 0x4d8a84b8 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xcd80a54e raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xf30c6226 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1bdadf7b fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x42f6326b scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x505c4959 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x65bd3e73 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6b63a393 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9b5eb069 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xaf2ab8de fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb873489f fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc015d699 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdab575ba fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe003ec20 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe3464ca8 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xeb1c7a60 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1420948f sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x195d3656 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1b63bb66 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1d1a252b sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1e9f8c21 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x269de47c sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3372e0a9 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x37e9aae0 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3811bf1b scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x48fa6b4d sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4d48a567 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x51695890 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x575c6976 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x692f7b98 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7a8d5701 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8b4d8d79 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ff37ee1 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa5b6706d sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xafc25361 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb380c454 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbc781235 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbcf58c7b sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe7b2e845 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xea383563 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf04bdf59 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfa7e8f66 sas_phy_alloc +EXPORT_SYMBOL drivers/ssb/ssb 0x14fa265d ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x15132277 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x186ed94b ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x1c307128 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x2be0023c __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x358d513f ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x44fcdc3b ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x5b050f73 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x65a17723 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x6611b3d1 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x68363d04 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x7ffbfefd ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x85f12ed0 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x980fb928 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xb4f11f2f ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xda3bd0af ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xde6e4b3e ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xfc97a4de ssb_device_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x665f88d2 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x7c08f8e1 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x9ba2911d adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xb4fd7d59 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0874d033 iio_buffer_store_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x08e187e9 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0a01515e iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2058e0b1 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x353f9b46 iio_buffer_write_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5c43cd35 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x62fc842d iio_trigger_poll_chained +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x66d1fc83 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6b82675d iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x70e21994 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x78d9bb48 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7ed736b0 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x83332f80 iio_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8754413b iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa12a2b96 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa42c9ce6 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xaeefab13 iio_buffer_read_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbbb850c3 iio_buffer_show_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd626e7be iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd628e1bf iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdec5c69b iio_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe4d5cdd9 iio_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe67f8634 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe763b1a4 iio_buffer_read_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xeba0a5c3 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x2bf012b2 kfifo_access_funcs +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xe1c58b79 iio_kfifo_allocate +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xe1da1c07 iio_kfifo_free +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x8dd39f20 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xb87c01a4 ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x30d0f13d ring_sw_access_funcs +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x97a4412b iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb10d00c7 iio_sw_rb_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x049a4131 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x144c5359 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x1543e806 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x176cfda1 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x1f209b0e target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x21f16bad sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x25b4e659 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x25ce197a core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x2ac8fc67 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x3924b1cb core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x43720c2c transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x47a5a7b9 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x4b54756b sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x5014b4e1 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x520a1547 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x5650f8b7 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x56890001 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x57188f99 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x5ae63130 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d43d001 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x61046463 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x62b63054 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x63bf8193 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x64a7dc21 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x6b0867e4 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x6deba209 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x6fc873bd transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x78e0723e target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7f2696dc transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x80156ed9 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x85492a7b iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8b7c5982 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x8df7bc00 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x8e2604df transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x8f34fdae transport_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x900c5ed8 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x98b9918a transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x9d1696b2 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xa36742c0 target_splice_sess_cmd_list +EXPORT_SYMBOL drivers/target/target_core_mod 0xa8732e0c target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0xa9891798 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xab2994e7 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xafe221a6 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xb2f25e8b transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xc3da6ac0 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xc835e250 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0xd02fd474 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0xd597a409 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xdc458fff transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xdc9ceff0 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xdd76710b transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xe037b8a4 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe2b313a0 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xe3080581 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe78f19b1 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xe7e1d49f target_get_task_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xedeb9f55 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf4a374a9 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf71498bc iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf80f8c63 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xfd26822d core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/telephony/phonedev 0xca9a992f phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xf4eb5198 phone_unregister_device +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x8940604d sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1ec1324c usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2c5ef093 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x42d418d3 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x54d1e022 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5a36fd8b usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x72160b28 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7c94bafc usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8cabce9d usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa10234db usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa586b759 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xaf3eae68 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xba9714e7 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd643f269 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe764bdb8 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf527fe6e usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x1dbfedeb usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x899637e4 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x2339ad98 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xddaa5f4c lcd_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x8cc573d6 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x9857e8ce display_device_register +EXPORT_SYMBOL drivers/video/output 0x558bc5cc video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x6d3ae2a1 video_output_register +EXPORT_SYMBOL drivers/video/syscopyarea 0x3d1c26de sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x1ecc6c00 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x3e19addc sys_imageblit +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x09f32f6b w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x42092955 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6a575998 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x706827d9 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x769e7745 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xcacc1c5b w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x20248f8a w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x71d44b20 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xca116e81 w1_ds2780_io_nolock +EXPORT_SYMBOL drivers/w1/wire 0x64d314c4 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x6847dd3b w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x9deb49d5 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xf6f4b023 w1_register_family +EXPORT_SYMBOL fs/configfs/configfs 0x015d33de config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x125324e2 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x1edb4798 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x31cbfc8a config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x51253467 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x6922eff5 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x7759b550 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x7daa7bf7 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x815d5436 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x8f3afd5e config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x9e8d895b config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xa8897bbb config_group_find_item +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0a727867 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x12ff161e fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x14ea0eff __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x1d4442de __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x1fbc9b74 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x2c0fd54c fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x363e0d63 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x378f2a02 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3ba5533f __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x45ea64d7 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x51580f22 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x5dab34d8 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7d271130 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x90cd9101 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x928ae43b fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x93c83008 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x94803271 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x968b67c2 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xa794e0f1 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xabece400 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xbc298891 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xc031c555 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xc41c0016 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcc988270 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xf8d50fcf fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xfdd52ebc fscache_init_cache +EXPORT_SYMBOL fs/nfsd/nfsd 0x0c8d6829 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xcbb738be nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x6190627b qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xd4adb1e6 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xd577d14e qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xdd33ae54 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xde1a9953 qtree_entry_unused +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0a13a100 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x14ab83ce lc_reset +EXPORT_SYMBOL lib/lru_cache 0x3cf9a304 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x41d8811d lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x50f43c5b lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x552f83c9 lc_get +EXPORT_SYMBOL lib/lru_cache 0xa14e0771 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xa9161176 lc_find +EXPORT_SYMBOL lib/lru_cache 0xc653ff61 lc_put +EXPORT_SYMBOL lib/lru_cache 0xcd9df73d lc_set +EXPORT_SYMBOL lib/lru_cache 0xce7aaa77 lc_changed +EXPORT_SYMBOL lib/lru_cache 0xd0c23606 lc_create +EXPORT_SYMBOL lib/lru_cache 0xda24a86b lc_destroy +EXPORT_SYMBOL lib/lru_cache 0xfdd584e2 lc_del +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8022 0xd3c6b5d7 unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xe6804943 register_8022_client +EXPORT_SYMBOL net/802/p8023 0xc026a211 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xcd041f87 destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x0ddb8eea register_snap_client +EXPORT_SYMBOL net/802/psnap 0xf54bd16f unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x01935e62 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x07e7ef77 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x07f4c8ea p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x08e4e293 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x12ff5dbc p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x153d79f3 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x1afc1716 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x1c120bad p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x1d4c87fa p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x1e304cfb p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x22b90756 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x2e0c4b83 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3aa5e6d3 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x3b031b95 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x43dcbf17 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x49b68eef p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x4c18c352 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x576c5a47 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x5bb4a87e p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x670eedce v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x6a221015 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x6aca6453 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x87e80a48 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x89ea3e63 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x8a3a8069 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x8d36e886 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x9202a968 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x92b559e0 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x9580b394 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9b24c445 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x9c49388b p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9e2f7593 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x9fc1cde8 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xaefce5ff p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xb74be525 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xbbbd2c70 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc1b812a3 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xd39efbce p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xdb478d17 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xdd965fd1 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xe0436079 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfc868ec8 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x33163d6c atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x68c18fe2 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xa884c108 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xe26898cd alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x0db17743 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x15bf14e1 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x47e64123 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x49014c13 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x53e51683 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x6eab27f9 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x8435290f register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x90ee7747 atm_charge +EXPORT_SYMBOL net/atm/atm 0x914293b2 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x9987055e atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa3145c5c atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xd0947b14 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf5eab1ab vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xfdf0dc33 vcc_insert_socket +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x120b69cd ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x16a04d77 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x312291d0 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x34b0bef8 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x8ce9fe4e ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa265aaf5 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xa3562a20 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xecf105e7 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xff606586 ax25_linkfail_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0594fd01 hci_find_ltk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0be79aec bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f3490ea hci_le_conn_update +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1331c023 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d59daaf hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2a6059dc bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2f1a3814 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x38a3b1d7 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39fdd48a bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b7740b7 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x407d2704 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4a86094c bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289 bt_printk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4bcee05b hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f3ac896 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x59faaeec hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5aaddf61 hci_find_link_key_type +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5f11ec22 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5f7df016 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x627f0ae4 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x80c164be bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c9a0c68 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x93d78d7b hci_le_start_enc +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9f250eb2 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa53951e3 hci_le_ltk_reply +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa9c54966 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb01b4c60 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbaae9cc7 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbd900128 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbe40dff6 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc48ffd13 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc51697d5 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcf12c6ac hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd30f1eaf hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd9b590c4 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdbe7141f hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdbe913e1 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xea93a0ff bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf5f0a733 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf815cad3 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfa203760 bt_accept_unlink +EXPORT_SYMBOL net/bridge/bridge 0x6d6d79ad br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x30edfc7e ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5e191935 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa061d016 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x18b54c9c caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x35b49017 caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x4128aeb5 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x43d4b39b caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x4aec93ca get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x504da5e8 cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x5807d88d caif_free_client +EXPORT_SYMBOL net/caif/caif 0x63e9812a cfcnfg_set_phy_state +EXPORT_SYMBOL net/can/can 0x01a37361 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x701bc4c0 can_send +EXPORT_SYMBOL net/can/can 0x7560fa86 can_ioctl +EXPORT_SYMBOL net/can/can 0x762a28cb can_proto_unregister +EXPORT_SYMBOL net/can/can 0x8800d876 can_proto_register +EXPORT_SYMBOL net/can/can 0xd57d4a0e can_rx_register +EXPORT_SYMBOL net/ceph/libceph 0x077dc9a2 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0affa1eb ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x0e3d0216 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x0fad47d6 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x153581f1 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x1637881b ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x18925a40 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1dd57e1b ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x1e98de21 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x261e6549 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x26d9a2bb __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x2790fea2 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x28176193 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2e34a1aa ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x337436c5 ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x3f173f2f ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x4377e5d3 ceph_osdc_wait_event +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x47aa5d4e ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x48a8b0cb ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x4abb83b4 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x614e4b12 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x63133bbe ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6a02fb9a ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x74daee66 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x76129d4c ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7cfc6e0d ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x83a62d86 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x8d637c1f ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x8e5b2b7a ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x8e69e586 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x91f4cb1b ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x9c4a6315 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x9decbb1c ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x9e93facf ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x9fcfe783 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xabbf54eb ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xade00540 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb07c88c0 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xb35bf4b7 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xba95d3cb ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xbf5ddbf3 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xc2575a03 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcdf72e25 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xd01b645a ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd2f2f379 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xd6a784ba ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xd6d60963 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0xd6ffda3f ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xd8e8b1bb ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xe3340a29 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xe61f1856 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xf15a18e8 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xf7289efd ceph_osdc_start_request +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0ed8255a ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2521461a wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2a197c5a ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x451f8ba6 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6e4fcc72 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x725eb10d ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x77b2d9da wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7e1d65a0 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9ccb12f4 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9da47d88 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa5313714 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc9420a64 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd017a15b ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x0ef1f1d3 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x1a02ad64 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x73b6e079 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x964b2cad ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xbffffaf6 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe0513230 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x647e540b __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x66d772a9 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x68ad3195 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8a1c1478 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x965c0bb2 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9b03278c nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf77edef5 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0xa9d774dc xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xdd7e4d72 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x77abdd74 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xce5b4eeb ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe1155465 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xec2af03f ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0xd2be364e xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xfb990072 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x03979532 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xf52f6aa3 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x07602fc7 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x372402cf ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x479ed435 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6aa3834b ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x76db7a47 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd3d45bfa ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe97c9510 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xea981004 ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x06c2f83a irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0d6cf35b irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x126443c0 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x1b4625d4 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x22caf86e hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x25bac142 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x29baa358 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x2d3765bc hashbin_find +EXPORT_SYMBOL net/irda/irda 0x33a64d6f irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3a45216b irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x4479ef51 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x538d5d22 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x5391380c proc_irda +EXPORT_SYMBOL net/irda/irda 0x572583cf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x5f55c3a2 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x60873cdf async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6e35c0a1 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x73fb7fa8 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x74c6eb16 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7aa1ddbc irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x7de04a81 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x80da7829 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x853ce277 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x8fe05f9f irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x97626bbd irlap_open +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x99bf8a64 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x9d23bd34 irlap_close +EXPORT_SYMBOL net/irda/irda 0xb5c93e6b irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xb710786e hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbf285a4c hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc3a512dd hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xc4e43c6c irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xceea6b87 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xd67aabed irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xd7fc158d irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xdcd16560 iriap_close +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xde9840b4 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xe654762b iriap_open +EXPORT_SYMBOL net/irda/irda 0xe6f1d9f3 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xedf805a9 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0xef16660b hashbin_new +EXPORT_SYMBOL net/irda/irda 0xf9754673 irda_device_set_media_busy +EXPORT_SYMBOL net/l2tp/l2tp_core 0xbd980344 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x1376c512 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x2ad106d6 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x37ddd62b lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x3b32a53b lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x654ceb56 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x8f6f45e5 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x914f1a76 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xb4f7554c lapb_data_request +EXPORT_SYMBOL net/llc/llc 0x1b61d9e0 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x57102981 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x6eeb6f8f llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x7d0b1357 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x9656f8a0 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xa10199ec llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xad47935f llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xd1a11274 llc_sap_close +EXPORT_SYMBOL net/mac80211/mac80211 0x01c6db9f ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x17217a33 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x17cb5c43 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x1c9992ab ieee80211_get_operstate +EXPORT_SYMBOL net/mac80211/mac80211 0x25844a49 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x3191a0dd ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x3487cd87 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x35a9d94b ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x3761d0c9 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89 ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x4247781d ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x457e284f ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x4b858479 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x4c7645b5 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x4f0b2466 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x4ff3fbf6 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x50683215 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x56a1488f ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x59cdf1f5 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x5a5889e0 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5d64ede4 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x5dbb8325 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x63caa554 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71 ieee80211_sta_eosp_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x66407abf ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x685cca25 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x6af22a7f ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x82297f2f ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x85cd0d58 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x88bb70d9 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x9a59eada ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9afa6606 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x9b4a59b3 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xa63c24af ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa8e9eba9 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaa2ab377 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xae82af63 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xb468a245 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb73caa09 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xbf5aef04 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc06602ac ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xc2004991 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xc2d54d3e ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc31e5cd8 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc4ad7050 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc9d456aa ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xca69b60f __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xcc7e515b ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xccc6daee ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xd9456aa6 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe09462b9 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xe4ae5672 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0xeba14d72 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xec8590b0 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf7c340da ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xfdfec9c4 ieee80211_rate_control_register +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0c51489c ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x31f35a31 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3bcb9bff unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x541b782d ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x548957d1 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6db31909 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8319e428 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xabce86bd ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xad7c6c7b ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbbdc64fb ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xca9832ec ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd0cd6625 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdd8ab59c ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe7dc1812 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x6cea601e __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8c2b294f __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xe20a2f53 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xf820d9ec nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x3791dc29 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x42a02dd1 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4480f1f5 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x519628d0 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x8fd4db64 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xa1ce59bf xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xba450105 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xcd0a4ea1 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xd655df28 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xdaa894ca xt_register_match +EXPORT_SYMBOL net/nfc/nci/nci 0x207e5860 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x37f2ea01 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x695c6b3e nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x77e638fc nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xcabd07fd nci_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e nfc_printk +EXPORT_SYMBOL net/nfc/nfc 0x3f6447a5 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x66ccd113 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x87a7bdc3 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x9e88e911 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xbe3ef402 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0xd9fc4766 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xdf08ce2a nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xf07a432d nfc_alloc_skb +EXPORT_SYMBOL net/phonet/phonet 0x072d5fe9 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x23b6ef81 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x38927bd9 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x6c32829e phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x806f4297 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xe0f4c15f phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xe2f34aa6 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xf96ea863 pn_sock_get_port +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x04a3ab65 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0eb55dc6 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x12831d25 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x308addfb rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x609d55b3 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8e3114aa rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x92da48fc rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9ecef526 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9f57ffa4 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xaac43fc1 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc3a52be1 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdaddcfe1 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe384f33b rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf3ea8067 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfa5b9d20 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x47611d6c svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xf53d351b register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x203d5e5c wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x85f1850a wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0adb4d2c wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86 ieee802_11_parse_elems_crc +EXPORT_SYMBOL net/wireless/cfg80211 0x13cc75f4 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x16784163 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x1aeee2d3 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x1dd86930 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x205bd624 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x20b15a20 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x21f0d607 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x2c1d5916 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x34d9af7e ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x39df7935 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x3d2454c7 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x4099fcf0 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x419376c9 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x47aeb0c7 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x4cb6ccf2 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x513fe3dd wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x540911db cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x59a27749 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x5c616d57 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x5d02545a __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x5e291112 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x5e90af52 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6fc32d83 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x7114bc25 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x732d7a95 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0x761d3d31 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x79306cf4 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x87ddde1e ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x889cbfdf cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x93a6b673 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x93bf258b cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9f7a56af cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa49adb4b cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xa62bcf9c cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xa785834a cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xb41aa1a3 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xba7af891 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xc04be5cb cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xd42a4b05 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe3fa6b11 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xe9571758 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xe97734dc cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xeec29f9a cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf096ed56 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xf2d5f181 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xf5be5e03 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xf8dd4224 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf9046624 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xfa260e78 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xfadc210e cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x46cf2ad5 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x594f5df4 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x68a1093e lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x9b22b217 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xa76ea025 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xdf72ff80 lib80211_get_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x61489f7a ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0xc6afbf8a 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 0x1cd09062 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x441933e5 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x45fdd9a8 snd_seq_event_port_attach +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 0x94509180 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 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xe772090f snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xf5fd4f5f snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x0df2e317 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x26885c56 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7ab3ab98 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7ddf2a2e snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x85c27c7a snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x85e4ac82 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd4945484 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xfcf964a7 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xc3237cf9 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd-hwdep 0xf7311bfd snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0171c0a1 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x181e364b snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x25be7462 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3b22e06e snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x428bc107 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5bf46b98 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6390a032 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6552b28a snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x681174a4 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7b65b2d0 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8482f6f7 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x848ca073 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x84b7a88d snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9281b9de snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc6086139 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf5e0aee8 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfa695fbb snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x09f33050 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/pci/ac97/snd-ac97-codec 0x0018bf40 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x15af3dd3 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x20ca2645 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x55c338dd snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6ae1eb2c snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8231104a snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x82f9d122 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8865aca4 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8c33eac1 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x93033bdf snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x930a3d51 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa04e88f9 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa93d424c snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xad552558 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xae0baba6 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe456c756 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe9c42f9e snd_ac97_pcm_close +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 0x8b9ce2d9 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0014c886 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x0015ff52 da903x_query_status +EXPORT_SYMBOL vmlinux 0x00249b2d igrab +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x0051b8ff inetdev_by_index +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0081030e omap_vram_reserve +EXPORT_SYMBOL vmlinux 0x0084e86d unregister_shrinker +EXPORT_SYMBOL vmlinux 0x008f1e24 amba_release_regions +EXPORT_SYMBOL vmlinux 0x0090462c tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x00d3eb63 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x00dce2c6 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x00f86489 simple_rename +EXPORT_SYMBOL vmlinux 0x00fe34b5 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01002e41 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x010c83cb invalidate_bdev +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01278523 thaw_process +EXPORT_SYMBOL vmlinux 0x01424f59 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x01644c3f put_mnt_ns +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a3d310 omap_set_dma_channel_mode +EXPORT_SYMBOL vmlinux 0x01b21630 init_net +EXPORT_SYMBOL vmlinux 0x01b75398 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x01bb89db blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x021dc488 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x02277f5d sk_free +EXPORT_SYMBOL vmlinux 0x023a50ab proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x024bf88f omap_modify_dma_chain_params +EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table +EXPORT_SYMBOL vmlinux 0x02573b36 omap_disable_dma_irq +EXPORT_SYMBOL vmlinux 0x0259a49a soft_cursor +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL vmlinux 0x028cf511 tty_kref_put +EXPORT_SYMBOL vmlinux 0x02a0d156 gpmc_prefetch_reset +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02f95f92 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x02fe47b5 dma_set_mask +EXPORT_SYMBOL vmlinux 0x0302c48b idr_destroy +EXPORT_SYMBOL vmlinux 0x03073b97 omap_writel +EXPORT_SYMBOL vmlinux 0x031ba9bf atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034f9e73 param_ops_byte +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x03662bae mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x0377dd56 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037a8fce dump_write +EXPORT_SYMBOL vmlinux 0x037de4af neigh_seq_start +EXPORT_SYMBOL vmlinux 0x03807537 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x03ab6dbd dev_uc_del +EXPORT_SYMBOL vmlinux 0x03b45e66 mnt_pin +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e438e9 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04141f80 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x04161db0 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x041f25c3 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04265e98 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x042f35bf cdrom_release +EXPORT_SYMBOL vmlinux 0x04349f09 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x04750e2d user_revoke +EXPORT_SYMBOL vmlinux 0x04869d62 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04b138a6 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x04bf3866 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine +EXPORT_SYMBOL vmlinux 0x04d1848d tty_devnum +EXPORT_SYMBOL vmlinux 0x04da3533 __register_binfmt +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x0501409f __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x0503f5ef cfb_fillrect +EXPORT_SYMBOL vmlinux 0x050ce4e6 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x05111bfe of_node_get +EXPORT_SYMBOL vmlinux 0x0518a703 snd_pcm_new_stream +EXPORT_SYMBOL vmlinux 0x051c241c do_truncate +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x0566148a gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x058db3f5 up_read +EXPORT_SYMBOL vmlinux 0x05b24740 blk_complete_request +EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion +EXPORT_SYMBOL vmlinux 0x05d5b9bc tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x05e05fea new_inode +EXPORT_SYMBOL vmlinux 0x05f981a6 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x061069c9 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x06259949 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x06448ddc nand_unlock +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068146fa blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x06aae600 nand_scan_ident +EXPORT_SYMBOL vmlinux 0x06c5544c skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x06ecb141 ata_print_version +EXPORT_SYMBOL vmlinux 0x06eff722 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07051ea6 register_sound_midi +EXPORT_SYMBOL vmlinux 0x0711133e mdiobus_register +EXPORT_SYMBOL vmlinux 0x073b88cb fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x07545c8c load_nls_default +EXPORT_SYMBOL vmlinux 0x075d5ad6 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x07641b67 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x076d634e kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x07779be5 no_llseek +EXPORT_SYMBOL vmlinux 0x0781bbb9 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x0784a461 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a5f503 omap_readw +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07bd322c vfs_readlink +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d415ab scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07db1bd8 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x07ef4f65 kill_pid +EXPORT_SYMBOL vmlinux 0x0809149b xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x08162078 path_put +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x084aedec unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x0897d07c d_path +EXPORT_SYMBOL vmlinux 0x08a4c534 omap_mcbsp_get_rx_delay +EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x09023582 log_wait_commit +EXPORT_SYMBOL vmlinux 0x0925506f is_container_init +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09574aa2 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x096edcc6 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a55a63 sock_map_fd +EXPORT_SYMBOL vmlinux 0x09a7f7b7 kdb_current_task +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c62921 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09dbf8a6 lock_super +EXPORT_SYMBOL vmlinux 0x09e8c2b9 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x09f33d92 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x0a163c8b bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x0a235646 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a29f6a1 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a34d668 is_bad_inode +EXPORT_SYMBOL vmlinux 0x0a419cb0 inet_bind +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a674d06 journal_set_features +EXPORT_SYMBOL vmlinux 0x0a8ec7e9 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0aaecff6 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad5fb6f down_write_trylock +EXPORT_SYMBOL vmlinux 0x0adaac37 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x0b073277 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2c5450 read_cache_pages +EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b4f5d57 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x0b4f8d34 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x0b69a29f down_trylock +EXPORT_SYMBOL vmlinux 0x0b7086d9 param_get_short +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b8ccdf2 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x0b91cc5f snd_dma_get_reserved_buf +EXPORT_SYMBOL vmlinux 0x0bc04336 md_register_thread +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bdc4683 tty_check_change +EXPORT_SYMBOL vmlinux 0x0c2ed147 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0c45ab31 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x0c5be6a0 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x0c635409 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9c948c put_disk +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca54fee _test_and_set_bit +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb7ea64 lookup_hash +EXPORT_SYMBOL vmlinux 0x0cdbdef5 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x0cdd158d sg_alloc_table +EXPORT_SYMBOL vmlinux 0x0cf0f08c sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x0d011e7b of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0d16b7e5 omap_dss_get_overlay_manager +EXPORT_SYMBOL vmlinux 0x0d262459 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d594387 skb_unlink +EXPORT_SYMBOL vmlinux 0x0d6d3b17 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x0d6f5d45 arp_tbl +EXPORT_SYMBOL vmlinux 0x0d8bbc33 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x0d988053 module_put +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db3877d ___dma_single_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x0dce6c69 snd_pcm_mmap_data +EXPORT_SYMBOL vmlinux 0x0dd2aa90 kobject_init +EXPORT_SYMBOL vmlinux 0x0ddd86dc napi_gro_frags +EXPORT_SYMBOL vmlinux 0x0deee859 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x0e342f80 d_alloc_name +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e59b181 tty_port_close +EXPORT_SYMBOL vmlinux 0x0e62e9ee seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x0e690470 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x0e86853d dev_notice +EXPORT_SYMBOL vmlinux 0x0ea728ba iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init +EXPORT_SYMBOL vmlinux 0x0eda0c27 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x0ef46b7d netlink_dump_start +EXPORT_SYMBOL vmlinux 0x0f0fe60d generic_write_end +EXPORT_SYMBOL vmlinux 0x0f31425c clk_add_alias +EXPORT_SYMBOL vmlinux 0x0f3cb664 arp_create +EXPORT_SYMBOL vmlinux 0x0f50021c set_bh_page +EXPORT_SYMBOL vmlinux 0x0f59f197 param_array_ops +EXPORT_SYMBOL vmlinux 0x0f64769f nand_scan_bbt +EXPORT_SYMBOL vmlinux 0x0f6eff7e tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x0f78a7e1 snd_device_free +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb080ab textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x0fb0e29f init_timer_key +EXPORT_SYMBOL vmlinux 0x0fb5e916 misc_register +EXPORT_SYMBOL vmlinux 0x0fbf47df __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x0fcb0e19 address_space_init_once +EXPORT_SYMBOL vmlinux 0x0fdebc10 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x0fefeb2e ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x0ff0f9dd bio_unmap_user +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x10007831 journal_load +EXPORT_SYMBOL vmlinux 0x10053b2f tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x102fe30b jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x1074c970 clk_disable +EXPORT_SYMBOL vmlinux 0x1075b18f mdiobus_read +EXPORT_SYMBOL vmlinux 0x10790299 security_path_truncate +EXPORT_SYMBOL vmlinux 0x1079265c give_up_console +EXPORT_SYMBOL vmlinux 0x108e17dc jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x10b5da89 register_key_type +EXPORT_SYMBOL vmlinux 0x10c80014 dma_pool_create +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10df4587 rt6_lookup +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10ee79a7 wireless_send_event +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112748bd omap_vrfb_adjust_size +EXPORT_SYMBOL vmlinux 0x1129748f scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x112f2875 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x113420c3 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x11376949 __scm_destroy +EXPORT_SYMBOL vmlinux 0x11633870 param_set_ushort +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11711666 dquot_transfer +EXPORT_SYMBOL vmlinux 0x1186b38a find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x119383d7 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x119f8dee skb_seq_read +EXPORT_SYMBOL vmlinux 0x11b34b96 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x11b49bcc snd_dma_alloc_pages +EXPORT_SYMBOL vmlinux 0x11befe6c request_firmware +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1217c17e phy_disconnect +EXPORT_SYMBOL vmlinux 0x121a425b i2c_transfer +EXPORT_SYMBOL vmlinux 0x12530356 omapdss_default_get_recommended_bpp +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x128fa778 bio_map_kern +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12c20ae5 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x12c36185 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12de028c mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x12f3e094 snd_pcm_stop +EXPORT_SYMBOL vmlinux 0x12f76ad5 snd_pcm_open_substream +EXPORT_SYMBOL vmlinux 0x12f90cdf tcp_poll +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13044de2 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x1332f4d0 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x13424522 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x136aa7bd snd_pcm_kernel_ioctl +EXPORT_SYMBOL vmlinux 0x1390fdd4 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x13acb7c4 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x13cf0691 simple_empty +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d6e3be clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x13ea5c25 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x13ec80f3 param_set_short +EXPORT_SYMBOL vmlinux 0x14129f00 snd_jack_set_parent +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x1424a578 rtnl_notify +EXPORT_SYMBOL vmlinux 0x143ea27b abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x14592d47 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x148c7a2d alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x148c95f5 serio_interrupt +EXPORT_SYMBOL vmlinux 0x149a1e9c fget +EXPORT_SYMBOL vmlinux 0x14d4a9c5 _change_bit +EXPORT_SYMBOL vmlinux 0x14de9de2 proc_mkdir +EXPORT_SYMBOL vmlinux 0x14ef56ec napi_gro_receive +EXPORT_SYMBOL vmlinux 0x15331242 omap_iounmap +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15738e15 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x1577d532 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x1580fe7f sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x159581ab key_put +EXPORT_SYMBOL vmlinux 0x159ea64d input_reset_device +EXPORT_SYMBOL vmlinux 0x15ad7a88 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x15aec70a bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x15e10144 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x1608ba3e phy_device_register +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16514b8c tty_shutdown +EXPORT_SYMBOL vmlinux 0x1654a0b4 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x1678d76f scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x1689c636 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x16b97357 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x16c42197 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x16c80b5a blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x16ea2e79 netdev_notice +EXPORT_SYMBOL vmlinux 0x170f7ce8 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x173ca64b of_device_unregister +EXPORT_SYMBOL vmlinux 0x1740566e vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x17500ec6 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x175236f4 omap_mcbsp_start +EXPORT_SYMBOL vmlinux 0x1756e279 cdev_init +EXPORT_SYMBOL vmlinux 0x175e4a81 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17c73b2b pl330_chan_ctrl +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e5390b tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x1813bae7 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x18350f60 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x1860d488 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x18718adb blk_get_queue +EXPORT_SYMBOL vmlinux 0x187a2a6a ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18a76463 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x18ad98c8 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x18da5947 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x18fcc1c3 dev_open +EXPORT_SYMBOL vmlinux 0x190c1312 mmc_erase +EXPORT_SYMBOL vmlinux 0x19215eed aio_complete +EXPORT_SYMBOL vmlinux 0x194128c3 omap_mcbsp_get_fifo_size +EXPORT_SYMBOL vmlinux 0x195f1dc8 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock +EXPORT_SYMBOL vmlinux 0x197dc3b3 omap_set_dma_src_burst_mode +EXPORT_SYMBOL vmlinux 0x19810102 write_cache_pages +EXPORT_SYMBOL vmlinux 0x19812f18 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL vmlinux 0x1989d9ab lock_sock_fast +EXPORT_SYMBOL vmlinux 0x199dc1da input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19d2bd8e sockfd_lookup +EXPORT_SYMBOL vmlinux 0x19e5f2fd __getblk +EXPORT_SYMBOL vmlinux 0x19f1cf31 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x19fa71d5 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x1a051eb7 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x1a0a2432 snd_ctl_new1 +EXPORT_SYMBOL vmlinux 0x1a0e49fc __dquot_transfer +EXPORT_SYMBOL vmlinux 0x1a0f93f0 __netif_schedule +EXPORT_SYMBOL vmlinux 0x1a47a2ab devm_free_irq +EXPORT_SYMBOL vmlinux 0x1a6024f5 __cleancache_flush_page +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a8faa2d tty_write_room +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1ad59dac dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x1adef47d mmc_host_disable +EXPORT_SYMBOL vmlinux 0x1afe82e9 netdev_info +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b10f757 d_set_d_op +EXPORT_SYMBOL vmlinux 0x1b2072c9 of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0x1b43d4e3 snd_jack_report +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1babe60e omap_st_set_chgain +EXPORT_SYMBOL vmlinux 0x1bb98b5c sock_i_ino +EXPORT_SYMBOL vmlinux 0x1bd72663 kobject_get +EXPORT_SYMBOL vmlinux 0x1bd85717 blk_rq_init +EXPORT_SYMBOL vmlinux 0x1bef782e i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x1bfa4b1a of_get_property +EXPORT_SYMBOL vmlinux 0x1c15032e mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c53384b netif_carrier_on +EXPORT_SYMBOL vmlinux 0x1c67fb2b phy_device_free +EXPORT_SYMBOL vmlinux 0x1caa1474 single_release +EXPORT_SYMBOL vmlinux 0x1cb1e4fe ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x1cb8b1f7 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cc845f4 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc +EXPORT_SYMBOL vmlinux 0x1ce06f82 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x1ce7e046 bioset_free +EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL vmlinux 0x1d105666 submit_bio +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3865da param_get_invbool +EXPORT_SYMBOL vmlinux 0x1d43d57c seq_putc +EXPORT_SYMBOL vmlinux 0x1d5d085c __neigh_event_send +EXPORT_SYMBOL vmlinux 0x1db7dc40 pgprot_kernel +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd4a5d5 journal_start_commit +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0813f6 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x1e1359de skb_gso_segment +EXPORT_SYMBOL vmlinux 0x1e160573 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e2e0b7f bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x1e3a778f skb_checksum_help +EXPORT_SYMBOL vmlinux 0x1e5cc12a inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6f6b43 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x1e90f7d5 __seq_open_private +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eac30d6 scsi_print_result +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ec77787 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x1eda2b62 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x1ef1f75f posix_acl_valid +EXPORT_SYMBOL vmlinux 0x1f00508d max8925_reg_write +EXPORT_SYMBOL vmlinux 0x1f51be71 blk_get_request +EXPORT_SYMBOL vmlinux 0x1f579f1d writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x1f704784 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x1f736dcd vfs_read +EXPORT_SYMBOL vmlinux 0x1f74aaca skb_copy +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1fcd5c17 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x203f35af input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x2041df22 ihold +EXPORT_SYMBOL vmlinux 0x2043ac73 __f_setown +EXPORT_SYMBOL vmlinux 0x204e3fa8 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x205ec8de omap_dispc_register_isr +EXPORT_SYMBOL vmlinux 0x206e602e generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x208221a4 bio_endio +EXPORT_SYMBOL vmlinux 0x20945c36 con_is_bound +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20c23f6d start_tty +EXPORT_SYMBOL vmlinux 0x20c7d90a seq_path +EXPORT_SYMBOL vmlinux 0x20cc9e87 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x20cfe35c vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0x20e289ab devm_ioport_map +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x212ba383 dma_alloc_writecombine +EXPORT_SYMBOL vmlinux 0x21369be5 inode_change_ok +EXPORT_SYMBOL vmlinux 0x214b596d genl_unregister_family +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2178dd8d security_path_rmdir +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x21bcf466 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x21ded506 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x21f44647 scsi_device_put +EXPORT_SYMBOL vmlinux 0x21f678b9 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x220fde61 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x221a500d __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x221d50f1 flush_signals +EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get +EXPORT_SYMBOL vmlinux 0x22257da6 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x222d16e3 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222ed0c2 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2236cf1a deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x223cc898 omap_vrfb_max_height +EXPORT_SYMBOL vmlinux 0x223f881c mii_check_link +EXPORT_SYMBOL vmlinux 0x225d22c7 have_submounts +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x2268e4eb generic_permission +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x227ae37f arp_send +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x2289ac57 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x22952572 follow_down_one +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22b5afbb account_page_writeback +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23332353 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x237047ef skb_free_datagram +EXPORT_SYMBOL vmlinux 0x23869fa6 cdev_del +EXPORT_SYMBOL vmlinux 0x238ea37e seq_read +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23bfc220 blk_end_request +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23f0db64 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x23f56ee4 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x242818f0 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x243ef073 register_filesystem +EXPORT_SYMBOL vmlinux 0x24484e60 kernel_bind +EXPORT_SYMBOL vmlinux 0x245087b1 netdev_set_bond_master +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x247cbb94 tcp_seq_open +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x248f2a61 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x2490ca80 input_allocate_device +EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL vmlinux 0x24b8b9a1 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x24c0342f netif_carrier_off +EXPORT_SYMBOL vmlinux 0x24c131ec ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x24c3bdfa led_brightness_set +EXPORT_SYMBOL vmlinux 0x24df7350 vfs_writev +EXPORT_SYMBOL vmlinux 0x24e269a0 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x25146c53 md_flush_request +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x2528be29 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x254cc43a mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x255fc7d9 generic_write_sync +EXPORT_SYMBOL vmlinux 0x257fc610 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x259b7ec9 netdev_update_features +EXPORT_SYMBOL vmlinux 0x259e2799 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x25a2c548 clk_get_parent +EXPORT_SYMBOL vmlinux 0x25c2023f get_user_pages +EXPORT_SYMBOL vmlinux 0x25c329fd ilookup +EXPORT_SYMBOL vmlinux 0x25c52740 snd_device_new +EXPORT_SYMBOL vmlinux 0x25c60ec1 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25f580b2 sock_update_classid +EXPORT_SYMBOL vmlinux 0x2617b0d9 inode_init_always +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2653e90a tty_set_operations +EXPORT_SYMBOL vmlinux 0x26666454 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x267a2fc0 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26d3bf31 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x26e6a291 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26fb5996 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x27068603 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x2721e8bc sock_kmalloc +EXPORT_SYMBOL vmlinux 0x2746d99d d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x276db34f nand_bch_init +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2790554d abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x2798814a security_path_chown +EXPORT_SYMBOL vmlinux 0x27a29b83 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27d3e461 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27f1d843 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x27f3f1bb vfs_open +EXPORT_SYMBOL vmlinux 0x280611b5 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next +EXPORT_SYMBOL vmlinux 0x2837e98f devm_ioremap +EXPORT_SYMBOL vmlinux 0x2843be75 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x2848cb40 default_llseek +EXPORT_SYMBOL vmlinux 0x286a2d3d bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x286bc31f scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x2897fc48 omap_cfg_reg +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28c58024 kernel_read +EXPORT_SYMBOL vmlinux 0x28c61ca6 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x28cb7a30 phy_stop +EXPORT_SYMBOL vmlinux 0x28d6861d __vmalloc +EXPORT_SYMBOL vmlinux 0x28ee2b33 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x28f169de blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x28f6b2c5 snd_seq_root +EXPORT_SYMBOL vmlinux 0x2923c557 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x29437582 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x294dc421 snd_ctl_free_one +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29757b5c mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x298d53c4 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x2999d5e9 misc_deregister +EXPORT_SYMBOL vmlinux 0x299c10c3 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x29b96a8a inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x29c15560 snd_power_wait +EXPORT_SYMBOL vmlinux 0x29e25333 input_release_device +EXPORT_SYMBOL vmlinux 0x29e3357d mdiobus_write +EXPORT_SYMBOL vmlinux 0x29f4ada8 sk_run_filter +EXPORT_SYMBOL vmlinux 0x29f7a2c0 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x29f7e5b3 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a08b6ec snd_ctl_boolean_mono_info +EXPORT_SYMBOL vmlinux 0x2a3aa678 _test_and_clear_bit +EXPORT_SYMBOL vmlinux 0x2a4f97ca xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x2a6e9db6 irq_set_chip +EXPORT_SYMBOL vmlinux 0x2a773db0 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa2f954 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x2aa69e6e tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x2ac6193b __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x2b0b8d5c neigh_update +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0bbd15 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b378f89 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x2b58dedb cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit +EXPORT_SYMBOL vmlinux 0x2b768ca2 netdev_state_change +EXPORT_SYMBOL vmlinux 0x2b833f02 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x2b8d585e eth_header_parse +EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba5ec7c inode_needs_sync +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bdbbec1 snd_ctl_register_ioctl +EXPORT_SYMBOL vmlinux 0x2bdd6e28 node_states +EXPORT_SYMBOL vmlinux 0x2bdf590f __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x2bfedcc3 register_nls +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2cb4625e sock_create_kern +EXPORT_SYMBOL vmlinux 0x2cb8beeb free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x2cc07d98 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x2cd9fe92 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x2cf5ea3b dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d2f7161 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock +EXPORT_SYMBOL vmlinux 0x2d3da436 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x2d6bebf6 stop_tty +EXPORT_SYMBOL vmlinux 0x2d7f44cc pl330_chan_status +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d8b8198 _snd_ctl_add_slave +EXPORT_SYMBOL vmlinux 0x2d94dbd9 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x2d967613 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x2dbc6707 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x2dbd4352 softnet_data +EXPORT_SYMBOL vmlinux 0x2dd5b59a thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x2df1b94b skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2e0528c9 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x2e1524c4 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x2e175906 block_write_end +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e59fc7a ab8500_gpadc_get +EXPORT_SYMBOL vmlinux 0x2e8dfeae journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x2eb9bb21 proc_dostring +EXPORT_SYMBOL vmlinux 0x2ebd8057 udp_seq_open +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2eda71ca ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f009c41 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f207ba8 tcf_em_register +EXPORT_SYMBOL vmlinux 0x2f22bd1f fd_install +EXPORT_SYMBOL vmlinux 0x2f3417c6 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x2f6e9f39 snd_register_oss_device +EXPORT_SYMBOL vmlinux 0x2fad2581 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fb8384d input_register_handler +EXPORT_SYMBOL vmlinux 0x2fc5f230 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x2fd85baf ___ratelimit +EXPORT_SYMBOL vmlinux 0x2fedfa76 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x3006e61a inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x300eecb9 snd_ctl_rename_id +EXPORT_SYMBOL vmlinux 0x30113f64 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x30272275 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x30279127 scsi_free_command +EXPORT_SYMBOL vmlinux 0x303034c5 htc_egpio_get_wakeup_irq +EXPORT_SYMBOL vmlinux 0x304c1d5a kernel_getsockname +EXPORT_SYMBOL vmlinux 0x305cf97a ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308aad56 omap_vrfb_min_phys_size +EXPORT_SYMBOL vmlinux 0x3092d85e omap2_mcbsp1_mux_fsr_src +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30aa1365 inet_put_port +EXPORT_SYMBOL vmlinux 0x30b3a90e of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31134bdc mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x31184362 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x311bc3c0 of_match_node +EXPORT_SYMBOL vmlinux 0x311c7880 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x311d1bcb __sk_dst_check +EXPORT_SYMBOL vmlinux 0x31274ab0 __cleancache_flush_inode +EXPORT_SYMBOL vmlinux 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit +EXPORT_SYMBOL vmlinux 0x31726acc blk_delay_queue +EXPORT_SYMBOL vmlinux 0x318aa665 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31a28a1d led_blink_set +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31c22ffb dev_set_mtu +EXPORT_SYMBOL vmlinux 0x31e32aa3 md_check_recovery +EXPORT_SYMBOL vmlinux 0x3202158c twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x3248a5b2 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x32512ece __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x326727f3 write_inode_now +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x329d14e9 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x329d833d current_fs_time +EXPORT_SYMBOL vmlinux 0x32d590bd tc6393xb_lcd_set_power +EXPORT_SYMBOL vmlinux 0x32d5eb64 dpi_check_timings +EXPORT_SYMBOL vmlinux 0x32f3dc42 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x332935eb dev_mc_sync +EXPORT_SYMBOL vmlinux 0x3357bdde blk_put_queue +EXPORT_SYMBOL vmlinux 0x3361c11e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x33627d0c register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x3368f5a7 phy_start +EXPORT_SYMBOL vmlinux 0x336923a5 request_key_async +EXPORT_SYMBOL vmlinux 0x336a4465 bdevname +EXPORT_SYMBOL vmlinux 0x33b47abc ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33ef31ae pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33ff1ba9 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x3427837b __ip_select_ident +EXPORT_SYMBOL vmlinux 0x344e0fe5 seq_write +EXPORT_SYMBOL vmlinux 0x34513a7e journal_get_write_access +EXPORT_SYMBOL vmlinux 0x34681e8d xfrm_register_type +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x34918cff tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c4ca28 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x34da0ddf make_bad_inode +EXPORT_SYMBOL vmlinux 0x35338802 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x354ad6d2 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x356bacae mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x357c90d2 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x35a16e51 pl330_release_channel +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35ca8cfa dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x35d7fbbe __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x35da67f4 omap_writew +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360e9cdc tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x3612c10f tmio_core_mmc_enable +EXPORT_SYMBOL vmlinux 0x361bce60 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x361e9eed tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x36318112 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x3635b1ed writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x364b3fff up +EXPORT_SYMBOL vmlinux 0x36a05961 inet6_release +EXPORT_SYMBOL vmlinux 0x36b06bff max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36e52e1e journal_wipe +EXPORT_SYMBOL vmlinux 0x370c4bc8 journal_revoke +EXPORT_SYMBOL vmlinux 0x3718f00e snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL vmlinux 0x372f95ac ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x373c2c31 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3771ed6e generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x377a1885 omap_mcbsp_get_tx_delay +EXPORT_SYMBOL vmlinux 0x3788fbbc vm_insert_page +EXPORT_SYMBOL vmlinux 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL vmlinux 0x379a0c42 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x379c84d8 netdev_crit +EXPORT_SYMBOL vmlinux 0x379f5837 param_set_invbool +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c8fc6b flush_kernel_dcache_page +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x380071c3 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x3808f0ee blk_requeue_request +EXPORT_SYMBOL vmlinux 0x38184c68 omapdss_sdi_display_enable +EXPORT_SYMBOL vmlinux 0x3853c1dc d_alloc_root +EXPORT_SYMBOL vmlinux 0x38634705 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x3899d375 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x38ba5dcf proto_register +EXPORT_SYMBOL vmlinux 0x38bf7469 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x38db1927 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x39020613 pipe_lock +EXPORT_SYMBOL vmlinux 0x391e81ec journal_clear_err +EXPORT_SYMBOL vmlinux 0x3926761f skb_dequeue +EXPORT_SYMBOL vmlinux 0x392bd78c tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x392cadc3 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x393ccd87 serio_rescan +EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a032b3 mii_link_ok +EXPORT_SYMBOL vmlinux 0x39a8def4 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x39acc8e9 register_sound_special +EXPORT_SYMBOL vmlinux 0x39afba55 km_query +EXPORT_SYMBOL vmlinux 0x39b66c84 dquot_commit +EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL vmlinux 0x39ea200a skb_recycle +EXPORT_SYMBOL vmlinux 0x39f8735e xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x3a0d7a1c kobject_set_name +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a29323e snd_timer_close +EXPORT_SYMBOL vmlinux 0x3a3f92a5 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x3a50fddd inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x3a6a149d tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x3a73b63c twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x3a8788df __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x3a911f27 pl330_request_channel +EXPORT_SYMBOL vmlinux 0x3a99fd95 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9cfde8 of_node_put +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3ab4a2cc inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x3ac02a26 register_exec_domain +EXPORT_SYMBOL vmlinux 0x3ae3a2c5 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x3b04a189 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0x3b1b75bc sync_blockdev +EXPORT_SYMBOL vmlinux 0x3b1c8441 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b5f737a inet6_getname +EXPORT_SYMBOL vmlinux 0x3b6da7f1 iget_locked +EXPORT_SYMBOL vmlinux 0x3b84b3c8 vm_map_ram +EXPORT_SYMBOL vmlinux 0x3b8f7323 dev_load +EXPORT_SYMBOL vmlinux 0x3b91f3af snd_free_pages +EXPORT_SYMBOL vmlinux 0x3b9419d5 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x3b9674ed xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x3b9f7a8d set_create_files_as +EXPORT_SYMBOL vmlinux 0x3bb7ffc0 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x3bbc053e udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x3bbf46ea vga_base +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c1ef7c7 down_read_trylock +EXPORT_SYMBOL vmlinux 0x3c349da5 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x3c56afbc bdget +EXPORT_SYMBOL vmlinux 0x3c614590 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x3c6d9f3b dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c8cfc8c max8925_set_bits +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3c9d5e8d omap_mcbsp_dma_ch_params +EXPORT_SYMBOL vmlinux 0x3ca47389 netpoll_setup +EXPORT_SYMBOL vmlinux 0x3ca87ee8 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf63f19 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x3d0bab57 scsi_unregister +EXPORT_SYMBOL vmlinux 0x3d332163 thaw_super +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d469564 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x3d5d9b68 path_is_under +EXPORT_SYMBOL vmlinux 0x3d93ee61 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x3daeffc3 snd_ctl_remove_id +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3de4aa03 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x3de8a3d8 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e021e6f dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x3e0e9023 param_set_long +EXPORT_SYMBOL vmlinux 0x3e16df29 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x3e2648a2 omap_device_get_by_hwmod_name +EXPORT_SYMBOL vmlinux 0x3e271391 dma_mmap_writecombine +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e84537c tcp_splice_read +EXPORT_SYMBOL vmlinux 0x3e884f4b vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ea4adaf iget_failed +EXPORT_SYMBOL vmlinux 0x3eab14f5 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x3ec57396 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x3ec8886f param_ops_int +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f1f513c km_policy_expired +EXPORT_SYMBOL vmlinux 0x3f375a6b request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f561d56 dev_get_stats +EXPORT_SYMBOL vmlinux 0x3f589898 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x3f67000e mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x3f916323 pl330_update +EXPORT_SYMBOL vmlinux 0x3f9bc41d ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x3fd78fc6 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x3fd7df75 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x3fd9682c dmam_pool_create +EXPORT_SYMBOL vmlinux 0x3febedee tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x3ff3acc0 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x400ed337 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x4029d238 param_set_copystring +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x402c7b8d tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x4036ae10 ps2_drain +EXPORT_SYMBOL vmlinux 0x404540b3 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x404da0e0 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x407a3275 omap_start_dma +EXPORT_SYMBOL vmlinux 0x4080961d unregister_binfmt +EXPORT_SYMBOL vmlinux 0x40846bd7 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x40925fc5 nf_reinject +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a6f522 __arm_ioremap +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40bf582c snd_pcm_lib_malloc_pages +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x410989e6 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x4118b4b3 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x411d9e78 del_gendisk +EXPORT_SYMBOL vmlinux 0x411e4a5b blk_insert_request +EXPORT_SYMBOL vmlinux 0x4129d97d __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4163649a xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x4163a15e snd_cards +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418f5e23 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x419f77e4 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x41bfba0b dev_alert +EXPORT_SYMBOL vmlinux 0x41bfc910 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x41cf8687 sock_wfree +EXPORT_SYMBOL vmlinux 0x41f478ff page_readlink +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x4220cdac __free_pages +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x424c7999 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x425456c9 cpu_cache +EXPORT_SYMBOL vmlinux 0x425ec5e5 simple_release_fs +EXPORT_SYMBOL vmlinux 0x426b4242 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x428c1a2c journal_create +EXPORT_SYMBOL vmlinux 0x428f2241 _dev_info +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a6d27b sg_miter_next +EXPORT_SYMBOL vmlinux 0x42a7ec40 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x42b1c1f2 kill_fasync +EXPORT_SYMBOL vmlinux 0x42ba58fd inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x42c475db input_open_device +EXPORT_SYMBOL vmlinux 0x42dfa73f kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x42f8c514 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4347b971 idr_init +EXPORT_SYMBOL vmlinux 0x43808735 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x4382ebd9 inet_getname +EXPORT_SYMBOL vmlinux 0x43832171 blk_init_tags +EXPORT_SYMBOL vmlinux 0x438d9dc6 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x43976edc cont_write_begin +EXPORT_SYMBOL vmlinux 0x439b0518 simple_fill_super +EXPORT_SYMBOL vmlinux 0x43a0458b blk_start_plug +EXPORT_SYMBOL vmlinux 0x43a602ce skb_pad +EXPORT_SYMBOL vmlinux 0x43ce22ef tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x43cfb41b linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x441ed159 omap_get_dma_src_pos +EXPORT_SYMBOL vmlinux 0x441ee5d1 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x442495c9 tmio_core_mmc_resume +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44402b6f param_get_ulong +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x44485f5b file_remove_suid +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44d02b78 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44e4ff86 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x45641c48 mntget +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45a8fbaa down_timeout +EXPORT_SYMBOL vmlinux 0x45b10bdf dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x45bd9efd dm_table_put +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45d0e9c9 snd_card_disconnect +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x46041d3b of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x460df3a4 ps2_end_command +EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table +EXPORT_SYMBOL vmlinux 0x46131186 __pagevec_release +EXPORT_SYMBOL vmlinux 0x461b36c0 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x46247425 bmap +EXPORT_SYMBOL vmlinux 0x4628dc33 omap_vram_alloc +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x463a674b inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x463bfb90 flush_old_exec +EXPORT_SYMBOL vmlinux 0x4656eafa unlock_new_inode +EXPORT_SYMBOL vmlinux 0x467178a5 touch_atime +EXPORT_SYMBOL vmlinux 0x467c18a3 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x468ac0bc vfs_fsync +EXPORT_SYMBOL vmlinux 0x46a292c9 dev_close +EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x46c56a44 dev_uc_init +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46d413a1 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x46eb13c7 __break_lease +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x473a464b i2c_master_send +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x4753cb76 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47a72e28 register_netdev +EXPORT_SYMBOL vmlinux 0x47b1ae57 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6298d snd_pcm_release_substream +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47cf157d security_path_link +EXPORT_SYMBOL vmlinux 0x47d7b354 deactivate_super +EXPORT_SYMBOL vmlinux 0x47dc583b seq_open +EXPORT_SYMBOL vmlinux 0x47dc67b5 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x47dd24ec mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x47e0e4b4 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x47e2b187 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x4803342d blk_peek_request +EXPORT_SYMBOL vmlinux 0x48077a26 kernel_listen +EXPORT_SYMBOL vmlinux 0x48284556 contig_page_data +EXPORT_SYMBOL vmlinux 0x483b631a ps2_handle_response +EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4843add2 register_console +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48665b29 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x4870874e kstat +EXPORT_SYMBOL vmlinux 0x489b2f14 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48cad489 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x48cf17af key_payload_reserve +EXPORT_SYMBOL vmlinux 0x48dd0732 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x48f21d78 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x49066b84 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x4933a79e noop_fsync +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x496e3db8 snd_pcm_lib_read +EXPORT_SYMBOL vmlinux 0x497d0ba2 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x49817599 empty_aops +EXPORT_SYMBOL vmlinux 0x498c6089 mntput +EXPORT_SYMBOL vmlinux 0x4993ca81 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b41cfd simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x49ca585b mmc_resume_host +EXPORT_SYMBOL vmlinux 0x49d03db6 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x49ebacbd _clear_bit +EXPORT_SYMBOL vmlinux 0x4a2d1931 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a37af33 ___dma_single_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x4a39e5a1 omap_set_dma_src_params +EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL vmlinux 0x4a453309 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x4a879f03 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x4a9d4975 journal_ack_err +EXPORT_SYMBOL vmlinux 0x4aa1d5dc simple_dir_operations +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aaf06bf tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x4abdb61c seq_printf +EXPORT_SYMBOL vmlinux 0x4ad9966a mount_single +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b015768 snd_iprintf +EXPORT_SYMBOL vmlinux 0x4b01e3bc snd_pcm_hw_rule_add +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b4d7f9e bdi_init +EXPORT_SYMBOL vmlinux 0x4b534d1c input_grab_device +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b9b28bc inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x4bc62308 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c19f49c blkdev_get +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c33f10a omap_dss_get_overlay +EXPORT_SYMBOL vmlinux 0x4c66c62c __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x4c93821c block_read_full_page +EXPORT_SYMBOL vmlinux 0x4caa114c vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cfc34f8 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d4afdc3 do_splice_direct +EXPORT_SYMBOL vmlinux 0x4d7e67ec starget_for_each_device +EXPORT_SYMBOL vmlinux 0x4d825c8b posix_test_lock +EXPORT_SYMBOL vmlinux 0x4d889707 nla_put +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d99d86f genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL vmlinux 0x4da97084 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x4db0c5bd dev_printk +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dc5b1f8 iterate_mounts +EXPORT_SYMBOL vmlinux 0x4dc9b6ae xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df3d38c tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e19de26 bio_split +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e3808f4 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x4e382d54 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x4e4b6cdb dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x4e506013 omap_dma_link_lch +EXPORT_SYMBOL vmlinux 0x4e5d58c3 __elv_add_request +EXPORT_SYMBOL vmlinux 0x4e61782c scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e748dcd down_read +EXPORT_SYMBOL vmlinux 0x4e79ccfb clk_round_rate +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e87363a tty_unthrottle +EXPORT_SYMBOL vmlinux 0x4ebf86ab kern_path_create +EXPORT_SYMBOL vmlinux 0x4ef5f428 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x4f0bf8eb posix_lock_file +EXPORT_SYMBOL vmlinux 0x4f0c5e98 vc_resize +EXPORT_SYMBOL vmlinux 0x4f10553d mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x4f114234 __napi_schedule +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f596c24 proc_create_data +EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL vmlinux 0x4f857e12 may_umount +EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free +EXPORT_SYMBOL vmlinux 0x4f93ba7c mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x4fb5cfec __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x4fd3f2d7 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x4fd8cd6a snd_pcm_new +EXPORT_SYMBOL vmlinux 0x4fdd55b1 __sock_create +EXPORT_SYMBOL vmlinux 0x4fe3a95a inet_shutdown +EXPORT_SYMBOL vmlinux 0x4fecf23f tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x5020f8cc unregister_netdev +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50479334 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506d97f5 omap_readl +EXPORT_SYMBOL vmlinux 0x5080deb5 __block_write_begin +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new +EXPORT_SYMBOL vmlinux 0x50ccff03 omap_dma_set_prio_lch +EXPORT_SYMBOL vmlinux 0x50dfa89b mpage_readpage +EXPORT_SYMBOL vmlinux 0x51102a96 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x5111fb78 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x511719e7 iget5_locked +EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x51299545 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x51435f4b nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x515831fa skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x5169161d omap_free_dma_chain +EXPORT_SYMBOL vmlinux 0x5179dd50 kset_unregister +EXPORT_SYMBOL vmlinux 0x5189051e __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x519ad3c5 eth_type_trans +EXPORT_SYMBOL vmlinux 0x51a4deec free_netdev +EXPORT_SYMBOL vmlinux 0x51af50ac i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e64eda dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5207b267 scsi_host_put +EXPORT_SYMBOL vmlinux 0x522b20d7 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x526a2fe4 cad_pid +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL vmlinux 0x52efd766 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53294c94 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x53301cf5 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x5331eabb ida_simple_get +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53399833 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x533a66d3 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x53452704 input_register_device +EXPORT_SYMBOL vmlinux 0x534d0bfd security_path_mknod +EXPORT_SYMBOL vmlinux 0x5356f4da scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x535ba959 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x5381a54e jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x538c781b tcp_sendpage +EXPORT_SYMBOL vmlinux 0x539627de input_unregister_handle +EXPORT_SYMBOL vmlinux 0x5397f2d3 posix_acl_init +EXPORT_SYMBOL vmlinux 0x53ae0f38 omap_st_enable +EXPORT_SYMBOL vmlinux 0x53b88313 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x53ba4e7c up_write +EXPORT_SYMBOL vmlinux 0x53cca6ab snd_card_file_remove +EXPORT_SYMBOL vmlinux 0x53f645c5 ___dma_page_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x541d7a2d scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x541ffc6c journal_flush +EXPORT_SYMBOL vmlinux 0x5422a7a7 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x542733b6 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x547864ac arp_xmit +EXPORT_SYMBOL vmlinux 0x547c849a pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x549e406a mmc_register_driver +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54b17331 uart_register_driver +EXPORT_SYMBOL vmlinux 0x54db1295 inet_ioctl +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ee8075 unlock_super +EXPORT_SYMBOL vmlinux 0x54f73fdd blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x54fc3455 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x5525047b send_sig_info +EXPORT_SYMBOL vmlinux 0x552ec1ad mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x553fa155 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x55479f0d sk_stream_error +EXPORT_SYMBOL vmlinux 0x554a4afa bio_put +EXPORT_SYMBOL vmlinux 0x554c11dc snd_pcm_set_ops +EXPORT_SYMBOL vmlinux 0x5561ffd5 journal_extend +EXPORT_SYMBOL vmlinux 0x5580409d unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a6f933 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x55ad8a12 unregister_nls +EXPORT_SYMBOL vmlinux 0x55b12de8 update_region +EXPORT_SYMBOL vmlinux 0x55d9e14a get_super +EXPORT_SYMBOL vmlinux 0x55e6eb76 mem_map +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x560afe44 prepare_creds +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x56323abe unregister_qdisc +EXPORT_SYMBOL vmlinux 0x563443f1 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x56436d45 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x5663bb09 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x5669ec47 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x566b31cc __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x56789ac5 omap_set_dma_color_mode +EXPORT_SYMBOL vmlinux 0x5686e82f sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x56c00c41 user_path_at +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56f23c96 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x57105ed7 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x57253d13 keyring_clear +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57324cbc inet_sendpage +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x5758dd74 sock_register +EXPORT_SYMBOL vmlinux 0x5761ceb5 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x577193e7 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x577e7ee3 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x57983446 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x57ae4f2a max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57b7ef55 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57df0fce of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x5800b281 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x58065874 free_task +EXPORT_SYMBOL vmlinux 0x5814adff neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x581b1502 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x582a24f1 snd_timer_notify +EXPORT_SYMBOL vmlinux 0x58325a3b lock_may_read +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5843f76c pl330_add +EXPORT_SYMBOL vmlinux 0x58516557 omap_set_dma_src_data_pack +EXPORT_SYMBOL vmlinux 0x5852bde1 snd_unregister_oss_device +EXPORT_SYMBOL vmlinux 0x588875d7 genphy_read_status +EXPORT_SYMBOL vmlinux 0x58c4c051 input_close_device +EXPORT_SYMBOL vmlinux 0x58de9c60 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x5909b38f blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x590a4789 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x590bd6e0 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x592d3745 redraw_screen +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5940223f netdev_warn +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x594fd546 omap_prcm_get_reset_sources +EXPORT_SYMBOL vmlinux 0x5996775c filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x59a4adc1 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59dcfb8e sk_reset_txq +EXPORT_SYMBOL vmlinux 0x59dd9e10 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x59e04922 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x59e36020 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x59e8a7f4 genphy_resume +EXPORT_SYMBOL vmlinux 0x59f47966 mpage_writepage +EXPORT_SYMBOL vmlinux 0x5a21ea1b skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x5a46b6e5 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x5a54f0cb __netdev_printk +EXPORT_SYMBOL vmlinux 0x5a6123e1 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x5a6635c2 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x5a69dd58 read_cache_page +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a746d0d of_dev_get +EXPORT_SYMBOL vmlinux 0x5a852771 open_exec +EXPORT_SYMBOL vmlinux 0x5a8a7684 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x5aa369e1 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b334156 down_killable +EXPORT_SYMBOL vmlinux 0x5b39f539 of_match_device +EXPORT_SYMBOL vmlinux 0x5b6fce2d call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x5b7cd490 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x5b89c1d4 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x5b8e8bba end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x5be1731e skb_queue_head +EXPORT_SYMBOL vmlinux 0x5bf4a1eb sg_last +EXPORT_SYMBOL vmlinux 0x5c0c3cad kernel_connect +EXPORT_SYMBOL vmlinux 0x5c2c9eba __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x5c4f3c4f of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x5c5ac054 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x5c64429d ifla_policy +EXPORT_SYMBOL vmlinux 0x5c8e8b0d directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5cba3e3c phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x5cbd5f8e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x5cca1341 snd_jack_new +EXPORT_SYMBOL vmlinux 0x5cfb76d9 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x5d05fdf8 elevator_exit +EXPORT_SYMBOL vmlinux 0x5d1b4759 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x5d34a1b5 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d64f89a skb_push +EXPORT_SYMBOL vmlinux 0x5d7ad37e omap_mcbsp_set_rx_threshold +EXPORT_SYMBOL vmlinux 0x5d874f3c dquot_commit_info +EXPORT_SYMBOL vmlinux 0x5d87ccbd blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x5d90d554 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x5da0806a bio_add_page +EXPORT_SYMBOL vmlinux 0x5da14bd2 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x5dafad2e ata_link_printk +EXPORT_SYMBOL vmlinux 0x5dc92ee3 fget_raw +EXPORT_SYMBOL vmlinux 0x5de09873 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x5e09aaba set_disk_ro +EXPORT_SYMBOL vmlinux 0x5e218047 serio_close +EXPORT_SYMBOL vmlinux 0x5e54f07d phy_driver_register +EXPORT_SYMBOL vmlinux 0x5e58d65d lock_sock_nested +EXPORT_SYMBOL vmlinux 0x5e5b543c km_report +EXPORT_SYMBOL vmlinux 0x5e5fa10a skb_find_text +EXPORT_SYMBOL vmlinux 0x5e60eb27 omap_dma_unlink_lch +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e6d5d44 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x5e729392 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9a77cb udp_poll +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5eb39a6a __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed21d6f try_to_release_page +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee8de78 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x5ef4d861 seq_bitmap +EXPORT_SYMBOL vmlinux 0x5eff7878 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f052ed2 __ps2_command +EXPORT_SYMBOL vmlinux 0x5f29074b security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x5f40761a do_splice_to +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f6e42ef tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f9c1533 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x5f9d892d invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fa749a8 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x5fab90fe fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x5fb113eb __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x5fb25172 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x5fbea730 lock_fb_info +EXPORT_SYMBOL vmlinux 0x5fc27e5d dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x5fd03c19 fb_pan_display +EXPORT_SYMBOL vmlinux 0x5feb7533 find_lock_page +EXPORT_SYMBOL vmlinux 0x60001a2c mtd_concat_destroy +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60089ecd tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL vmlinux 0x604674b2 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x6048eb7b dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x604f8daa snd_register_device_for_dev +EXPORT_SYMBOL vmlinux 0x60565c7d scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6089b31c dquot_enable +EXPORT_SYMBOL vmlinux 0x608a9719 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x609c1d5c md_write_end +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60ded718 console_stop +EXPORT_SYMBOL vmlinux 0x60ed5f43 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x60f4c5e4 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x60f71cfa complete +EXPORT_SYMBOL vmlinux 0x610cfea9 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x6114ecb7 snd_timer_global_register +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61585b1d snd_card_file_add +EXPORT_SYMBOL vmlinux 0x615e3cf7 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x6168d2b0 dev_warn +EXPORT_SYMBOL vmlinux 0x617d7cb4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x6193117c ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x6193a942 dqget +EXPORT_SYMBOL vmlinux 0x6195e2e6 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x61a79f08 __irq_regs +EXPORT_SYMBOL vmlinux 0x61afb13c qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d6458f sock_no_listen +EXPORT_SYMBOL vmlinux 0x61e7e615 snd_mixer_oss_notify_callback +EXPORT_SYMBOL vmlinux 0x61f5f1ac ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x621bb40d tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x62465745 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x624875cc netdev_features_change +EXPORT_SYMBOL vmlinux 0x62623e65 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6274ffc1 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x627eac12 register_netdevice +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x629231fa jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x6294d10e dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x629f1e5f dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock +EXPORT_SYMBOL vmlinux 0x62bff87e vfs_follow_link +EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask +EXPORT_SYMBOL vmlinux 0x62f0fc0b skb_make_writable +EXPORT_SYMBOL vmlinux 0x62fcce9d dcache_dir_open +EXPORT_SYMBOL vmlinux 0x630073af jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x6301b72c _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0x631643b5 register_sound_special_device +EXPORT_SYMBOL vmlinux 0x631ec72a dquot_alloc +EXPORT_SYMBOL vmlinux 0x6332cc1a audit_log_start +EXPORT_SYMBOL vmlinux 0x6337dfce ab8500_gpadc_convert +EXPORT_SYMBOL vmlinux 0x6361fa0e netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x636967ab cfb_imageblit +EXPORT_SYMBOL vmlinux 0x636b3461 omap_dss_get_num_overlays +EXPORT_SYMBOL vmlinux 0x63896422 poll_freewait +EXPORT_SYMBOL vmlinux 0x639328b9 bioset_create +EXPORT_SYMBOL vmlinux 0x63ab2604 irq_stat +EXPORT_SYMBOL vmlinux 0x63dfeddd unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x641882e0 mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x643eaec8 param_get_string +EXPORT_SYMBOL vmlinux 0x64445846 snd_pcm_hw_refine +EXPORT_SYMBOL vmlinux 0x6478ec0d phy_print_status +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649b180a nf_setsockopt +EXPORT_SYMBOL vmlinux 0x64bad850 snd_jack_set_key +EXPORT_SYMBOL vmlinux 0x64c1d549 fb_set_var +EXPORT_SYMBOL vmlinux 0x64cc4079 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x64d233c8 ioremap_page +EXPORT_SYMBOL vmlinux 0x64ec9c9b sync_inode +EXPORT_SYMBOL vmlinux 0x64f6ccf4 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL vmlinux 0x6511c065 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65291cff timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654e5bda md_unregister_thread +EXPORT_SYMBOL vmlinux 0x655221fc sock_no_accept +EXPORT_SYMBOL vmlinux 0x6573a40d tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x65c638b1 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65edda0b noop_llseek +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x660907e2 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x6609b110 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x6628bf62 of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0x663381ae fb_set_suspend +EXPORT_SYMBOL vmlinux 0x66461092 lookup_one_len +EXPORT_SYMBOL vmlinux 0x665840c0 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x66708f75 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x66842801 dump_seek +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x668e4e03 d_instantiate +EXPORT_SYMBOL vmlinux 0x669dd28a posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x6709b349 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x6716dfdd ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x6723261e neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x674bbfe7 snd_ctl_find_id +EXPORT_SYMBOL vmlinux 0x675c3f3c nand_scan +EXPORT_SYMBOL vmlinux 0x67650abe dquot_file_open +EXPORT_SYMBOL vmlinux 0x676bbc0f _set_bit +EXPORT_SYMBOL vmlinux 0x6772d25a amba_device_register +EXPORT_SYMBOL vmlinux 0x678ba972 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b42835 unlock_rename +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67be1d3d cpu_active_mask +EXPORT_SYMBOL vmlinux 0x67d9490f kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x67fb4a06 snd_timer_new +EXPORT_SYMBOL vmlinux 0x68078806 fb_find_mode +EXPORT_SYMBOL vmlinux 0x684d30d0 filemap_fault +EXPORT_SYMBOL vmlinux 0x687473b6 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x687740d3 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x688d4bf5 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x688fbadf flush_dcache_page +EXPORT_SYMBOL vmlinux 0x689da350 journal_init_inode +EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL vmlinux 0x68e371e8 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x69151195 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x691774c4 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x694e2f3c generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6973606c omap_st_get_chgain +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b6f8d9 omap_set_dma_transfer_params +EXPORT_SYMBOL vmlinux 0x69c46911 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x6a01194c __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a09b457 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x6a2217c0 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x6a559116 rtc_lock +EXPORT_SYMBOL vmlinux 0x6a612f7c alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x6a66f496 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a7bc57f get_phy_id +EXPORT_SYMBOL vmlinux 0x6a7d160b jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x6a7dbbb6 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x6a95e504 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x6ab9b89e blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x6ad0353a posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x6ae38a54 unlock_buffer +EXPORT_SYMBOL vmlinux 0x6ae54fec page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x6af6c4d6 nla_reserve +EXPORT_SYMBOL vmlinux 0x6aff2ac2 of_register_spi_devices +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2c422f __d_drop +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bc1aa4d scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc7bbce serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x6bda0c00 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf1013e mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x6bfe63c8 do_munmap +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c3e056a inet_stream_ops +EXPORT_SYMBOL vmlinux 0x6c413779 d_genocide +EXPORT_SYMBOL vmlinux 0x6c4e2834 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c728d1b d_find_alias +EXPORT_SYMBOL vmlinux 0x6c7860ec nand_correct_data +EXPORT_SYMBOL vmlinux 0x6c9f121c lro_flush_all +EXPORT_SYMBOL vmlinux 0x6ca19036 bio_copy_user +EXPORT_SYMBOL vmlinux 0x6ca69198 alloc_disk +EXPORT_SYMBOL vmlinux 0x6ccf7bd7 __pv_phys_offset +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6d0a7169 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d1aef32 generic_fillattr +EXPORT_SYMBOL vmlinux 0x6d213e5b journal_init_dev +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d43cbe7 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x6d58e225 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x6d5a5fd2 md_done_sync +EXPORT_SYMBOL vmlinux 0x6d5ba6f2 write_one_page +EXPORT_SYMBOL vmlinux 0x6d5defde mmc_host_enable +EXPORT_SYMBOL vmlinux 0x6d64e0e2 __napi_complete +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d6783d2 simple_statfs +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d7c8dc8 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x6d984dae tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x6daa875d scsi_add_device +EXPORT_SYMBOL vmlinux 0x6dad6bb0 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x6ddafe87 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x6de7249b fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfa713d xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x6e2799aa get_write_access +EXPORT_SYMBOL vmlinux 0x6e37c0ee n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x6e5c5f1c dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e742bc2 security_file_permission +EXPORT_SYMBOL vmlinux 0x6e756ce0 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6edba4e4 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x6edc9ef0 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x6eebc03b serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL vmlinux 0x6efd0754 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x6f07a5f5 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x6f0c3175 skb_store_bits +EXPORT_SYMBOL vmlinux 0x6f2629f5 journal_restart +EXPORT_SYMBOL vmlinux 0x6f30b099 sk_alloc +EXPORT_SYMBOL vmlinux 0x6f4475ac pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x6f4a880d blkdev_put +EXPORT_SYMBOL vmlinux 0x6f581045 snd_unregister_device +EXPORT_SYMBOL vmlinux 0x6f73a4fb proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x6f81b793 save_mount_options +EXPORT_SYMBOL vmlinux 0x6fa64ed9 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fdacc68 register_md_personality +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70097aa0 nand_bch_free +EXPORT_SYMBOL vmlinux 0x70157711 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x701d82b3 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x70346e54 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7053576e d_clear_need_lookup +EXPORT_SYMBOL vmlinux 0x70866a45 neigh_table_init +EXPORT_SYMBOL vmlinux 0x70b2845a scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x70b6f3b6 inet_release +EXPORT_SYMBOL vmlinux 0x70b8e556 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70dd1a12 gpmc_cs_configure +EXPORT_SYMBOL vmlinux 0x71003efd devm_iounmap +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x713a2153 nobh_write_end +EXPORT_SYMBOL vmlinux 0x714db585 __dev_printk +EXPORT_SYMBOL vmlinux 0x716836dc unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7177b3b0 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x71828abf ip6_route_output +EXPORT_SYMBOL vmlinux 0x719160ed textsearch_register +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71ad7d62 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x71ba8cb8 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71f1fc47 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x71fae4ad xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x721af3c8 get_gendisk +EXPORT_SYMBOL vmlinux 0x7234265f bdi_destroy +EXPORT_SYMBOL vmlinux 0x7234eafb otg_state_string +EXPORT_SYMBOL vmlinux 0x723f6c15 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x724489ae sock_setsockopt +EXPORT_SYMBOL vmlinux 0x7251d82e scsi_ioctl +EXPORT_SYMBOL vmlinux 0x7258431b kobject_del +EXPORT_SYMBOL vmlinux 0x726481c5 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x7280ce81 generic_listxattr +EXPORT_SYMBOL vmlinux 0x7291cc6d kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x72aa82c6 param_ops_charp +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72e50086 vm_stat +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f054f2 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x730ff363 param_set_uint +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x736c79dc param_get_byte +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x7380374c mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73ddc27f ll_rw_block +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73e68608 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x74016505 do_sync_read +EXPORT_SYMBOL vmlinux 0x7428b316 dev_set_group +EXPORT_SYMBOL vmlinux 0x743052fb security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x7435db37 kern_path +EXPORT_SYMBOL vmlinux 0x74482728 dma_supported +EXPORT_SYMBOL vmlinux 0x745fff56 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x746d4ad9 key_task_permission +EXPORT_SYMBOL vmlinux 0x7483a5a9 kobject_add +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74bc90a7 inet_addr_type +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c4254f scsi_scan_host +EXPORT_SYMBOL vmlinux 0x74c9291d tty_free_termios +EXPORT_SYMBOL vmlinux 0x74d8b23a kfree_skb +EXPORT_SYMBOL vmlinux 0x74dfb891 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x74ea1901 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x7515b4f4 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x751b2247 param_get_bool +EXPORT_SYMBOL vmlinux 0x7522f5ae dev_addr_add +EXPORT_SYMBOL vmlinux 0x757a08f8 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x757d06b4 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x759e6dca truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75f0e04c complete_request_key +EXPORT_SYMBOL vmlinux 0x75f17fc9 simple_link +EXPORT_SYMBOL vmlinux 0x75f7b411 blk_init_queue +EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb +EXPORT_SYMBOL vmlinux 0x76069a47 mount_subtree +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x761fde5e input_unregister_handler +EXPORT_SYMBOL vmlinux 0x762aa736 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x762c6239 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x76363644 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x7657512a generic_show_options +EXPORT_SYMBOL vmlinux 0x766290d1 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x76694591 omap_mcbsp_get_max_tx_threshold +EXPORT_SYMBOL vmlinux 0x767f8436 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x76881360 leds_event +EXPORT_SYMBOL vmlinux 0x768f170f snd_dma_reserve_buf +EXPORT_SYMBOL vmlinux 0x76b42da1 snd_timer_continue +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d70608 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x76dc2073 blk_run_queue +EXPORT_SYMBOL vmlinux 0x76dee118 inet_frags_init +EXPORT_SYMBOL vmlinux 0x76e2766c do_splice_from +EXPORT_SYMBOL vmlinux 0x76ffe5f6 generic_getxattr +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x773ff78a netdev_alert +EXPORT_SYMBOL vmlinux 0x77879f94 snd_dma_free_pages +EXPORT_SYMBOL vmlinux 0x77898e06 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x779dc422 snd_card_register +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c924d7 uart_match_port +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e7068e snd_pcm_lib_free_pages +EXPORT_SYMBOL vmlinux 0x77e8adb0 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77f5161b read_dev_sector +EXPORT_SYMBOL vmlinux 0x77f5fb1d scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77fe3309 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x7803404d ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x7843afa8 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x78735975 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x789aecf5 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x78aac4c2 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x78e096e2 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x78ea819f __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x7910585b __lock_page +EXPORT_SYMBOL vmlinux 0x791f7cd1 journal_force_commit +EXPORT_SYMBOL vmlinux 0x7939ae03 simple_readpage +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x79488a31 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x796d56bd __init_rwsem +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79a1549f generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x7a1390f7 param_set_bool +EXPORT_SYMBOL vmlinux 0x7a16cd77 dev_uc_add +EXPORT_SYMBOL vmlinux 0x7a1e4fc4 pl330_del +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a28dff6 tcp_prot +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a6dae35 km_state_expired +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7aa68030 bdi_unregister +EXPORT_SYMBOL vmlinux 0x7ad7c54d ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x7ad88abe omap_dss_stop_device +EXPORT_SYMBOL vmlinux 0x7af2ab8b d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b7a0b22 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x7bac2445 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x7bce5e3d generic_removexattr +EXPORT_SYMBOL vmlinux 0x7bd96a2c gpmc_prefetch_enable +EXPORT_SYMBOL vmlinux 0x7bf30fdc down_write +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c511def nf_register_hook +EXPORT_SYMBOL vmlinux 0x7c51b114 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x7c52ce04 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x7c55455a __destroy_inode +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c6156a9 cdev_add +EXPORT_SYMBOL vmlinux 0x7c61678a datagram_poll +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7ca3a7dc __kfree_skb +EXPORT_SYMBOL vmlinux 0x7cb7bec1 snd_ctl_add +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7ccc33ce dev_get_flags +EXPORT_SYMBOL vmlinux 0x7ce0ae7c param_get_long +EXPORT_SYMBOL vmlinux 0x7cf57f6d input_free_device +EXPORT_SYMBOL vmlinux 0x7d0f7274 invalidate_partition +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d1e1550 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x7d1e3bf4 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL vmlinux 0x7d2c7a96 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x7d48ade7 snd_device_register +EXPORT_SYMBOL vmlinux 0x7da09f85 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x7db46938 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x7dba953d unregister_filesystem +EXPORT_SYMBOL vmlinux 0x7dbd6a57 phy_connect +EXPORT_SYMBOL vmlinux 0x7dc3c998 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x7de0a78b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7deaa459 vfs_llseek +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e08dae3 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x7e1be402 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x7e347233 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e3bb05c scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x7e5012a8 sg_miter_start +EXPORT_SYMBOL vmlinux 0x7e6ba9dd redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x7e8e7cd9 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ec6ce5c iunique +EXPORT_SYMBOL vmlinux 0x7ed566d2 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f33a63b omap_get_dma_chain_dst_pos +EXPORT_SYMBOL vmlinux 0x7f374412 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x7f511247 page_put_link +EXPORT_SYMBOL vmlinux 0x7f597a05 replace_mount_options +EXPORT_SYMBOL vmlinux 0x7f5afcd5 fasync_helper +EXPORT_SYMBOL vmlinux 0x7f5ba868 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7fa91082 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7fbaf2a9 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL vmlinux 0x7fe0cdd4 tcp_check_req +EXPORT_SYMBOL vmlinux 0x7fe28636 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x7ff532e3 set_blocksize +EXPORT_SYMBOL vmlinux 0x7ff9ff12 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x8034558a gpmc_nand_write +EXPORT_SYMBOL vmlinux 0x803a4e99 dst_alloc +EXPORT_SYMBOL vmlinux 0x804fc9ca omap_mcbsp_free +EXPORT_SYMBOL vmlinux 0x8057dffb simple_rmdir +EXPORT_SYMBOL vmlinux 0x80644878 keyring_search +EXPORT_SYMBOL vmlinux 0x806bbfa6 netif_device_attach +EXPORT_SYMBOL vmlinux 0x80bf63c8 nf_log_packet +EXPORT_SYMBOL vmlinux 0x80c2447c mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x80d81308 omap_vrfb_release_ctx +EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x80de231a idr_remove +EXPORT_SYMBOL vmlinux 0x81003ee2 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x810b3618 param_ops_string +EXPORT_SYMBOL vmlinux 0x811447b4 snd_pcm_hw_param_last +EXPORT_SYMBOL vmlinux 0x813ed040 idr_remove_all +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8164adb3 omap2_mcbsp_set_clks_src +EXPORT_SYMBOL vmlinux 0x816579f1 nand_lock +EXPORT_SYMBOL vmlinux 0x8179d5f9 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x8180a2db mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x8193e0b7 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x81952fe1 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x819d8f52 __blk_end_request +EXPORT_SYMBOL vmlinux 0x81acb164 mount_bdev +EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done +EXPORT_SYMBOL vmlinux 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81f97592 abort_creds +EXPORT_SYMBOL vmlinux 0x82034bdc posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x8204e852 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820ddbc0 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x820e73ed i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x8210f256 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x821e9e39 user_path_create +EXPORT_SYMBOL vmlinux 0x8224f42d freeze_bdev +EXPORT_SYMBOL vmlinux 0x8247c4f2 filp_open +EXPORT_SYMBOL vmlinux 0x82480f75 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x824a4367 tmio_core_mmc_pwr +EXPORT_SYMBOL vmlinux 0x824b779f eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8262f64b tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x826e9d75 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x82951c18 dquot_destroy +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82c48233 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x82d43c23 do_map_probe +EXPORT_SYMBOL vmlinux 0x82f28a86 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x832ae79e blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x8330e981 dpi_set_timings +EXPORT_SYMBOL vmlinux 0x8343eae9 dst_discard +EXPORT_SYMBOL vmlinux 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL vmlinux 0x8371daff sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x8396582f ab3100_event_register +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x83e55830 snd_ctl_unregister_ioctl +EXPORT_SYMBOL vmlinux 0x83f9e822 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x8419b410 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x841b35bc nf_ct_attach +EXPORT_SYMBOL vmlinux 0x842a938d splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x8436f8e3 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x846bcc01 dm_table_get +EXPORT_SYMBOL vmlinux 0x8479ef98 __bread +EXPORT_SYMBOL vmlinux 0x847c8bd6 snd_pcm_hw_param_first +EXPORT_SYMBOL vmlinux 0x849300e0 task_nice +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84b933bc inode_init_owner +EXPORT_SYMBOL vmlinux 0x84b93cec omap_dss_put_device +EXPORT_SYMBOL vmlinux 0x84c25070 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x84c51d53 sk_dst_check +EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x84e02c17 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x850c1725 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x850d3dfb ping_prot +EXPORT_SYMBOL vmlinux 0x852922f2 bdgrab +EXPORT_SYMBOL vmlinux 0x8538badd f_setown +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856e68ea mpage_writepages +EXPORT_SYMBOL vmlinux 0x85765fee omap_enable_dma_irq +EXPORT_SYMBOL vmlinux 0x85795539 add_disk +EXPORT_SYMBOL vmlinux 0x85907337 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x85b18a12 seq_release_private +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85c238f3 vfs_write +EXPORT_SYMBOL vmlinux 0x85c30435 nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x85d16c8d thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x86090a3a dev_addr_flush +EXPORT_SYMBOL vmlinux 0x8610cc93 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x862718fa framebuffer_release +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x86702947 netdev_set_master +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86a87571 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x86d86a2d bio_free +EXPORT_SYMBOL vmlinux 0x86e3cb7d jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x86ec13d2 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x8719e9d0 dm_register_target +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x871f1f45 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x872932cc serio_unregister_port +EXPORT_SYMBOL vmlinux 0x872a8a6b tty_port_close_end +EXPORT_SYMBOL vmlinux 0x873357ed kthread_bind +EXPORT_SYMBOL vmlinux 0x8753c970 udp_prot +EXPORT_SYMBOL vmlinux 0x876fef55 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x8772410a grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x877a4709 ata_port_printk +EXPORT_SYMBOL vmlinux 0x877fb9dc genl_register_family +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878f7f69 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x87900afe send_sig +EXPORT_SYMBOL vmlinux 0x87b6ab98 kick_iocb +EXPORT_SYMBOL vmlinux 0x87c0700e input_get_keycode +EXPORT_SYMBOL vmlinux 0x87ce47e8 d_alloc +EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new +EXPORT_SYMBOL vmlinux 0x87de805d generic_file_llseek +EXPORT_SYMBOL vmlinux 0x87deefce tcp_ioctl +EXPORT_SYMBOL vmlinux 0x87e494b1 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x880da338 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8817f537 sk_wait_data +EXPORT_SYMBOL vmlinux 0x881fa0fb inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x8825fba8 eth_header_cache +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x883b3507 load_nls +EXPORT_SYMBOL vmlinux 0x884a0f2b __inet6_hash +EXPORT_SYMBOL vmlinux 0x88646272 set_anon_super +EXPORT_SYMBOL vmlinux 0x8869f62e key_validate +EXPORT_SYMBOL vmlinux 0x8874f570 secpath_dup +EXPORT_SYMBOL vmlinux 0x8876fbe5 snd_ctl_find_numid +EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait +EXPORT_SYMBOL vmlinux 0x88b32df2 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x88bc289b register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x88d8447f tty_register_device +EXPORT_SYMBOL vmlinux 0x88d8bb17 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x8918f83d snd_info_create_card_entry +EXPORT_SYMBOL vmlinux 0x8936ae55 dst_release +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x899d3f1d request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x89a3c4f4 omap_get_dma_chain_index +EXPORT_SYMBOL vmlinux 0x89ad4666 __dst_free +EXPORT_SYMBOL vmlinux 0x89c8e835 bd_set_size +EXPORT_SYMBOL vmlinux 0x89ce14c2 input_register_handle +EXPORT_SYMBOL vmlinux 0x89cea30a I_BDEV +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89da4432 of_iomap +EXPORT_SYMBOL vmlinux 0x89fc3527 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4c7437 mii_check_media +EXPORT_SYMBOL vmlinux 0x8a4ca383 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8a4f345a splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a86c0fc dquot_release +EXPORT_SYMBOL vmlinux 0x8a910c00 follow_down +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8adedea9 snd_ctl_make_virtual_master +EXPORT_SYMBOL vmlinux 0x8ae5b1a2 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x8b3d3b3e skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x8b3e4581 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x8b4bb1bc security_path_rename +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7b174f elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x8bc2401d textsearch_destroy +EXPORT_SYMBOL vmlinux 0x8bcc7885 tty_throttle +EXPORT_SYMBOL vmlinux 0x8bdb6e8c mmc_release_host +EXPORT_SYMBOL vmlinux 0x8be07a49 fsync_bdev +EXPORT_SYMBOL vmlinux 0x8beadbaa blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x8c08199c release_firmware +EXPORT_SYMBOL vmlinux 0x8c084703 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x8c0c3237 take_over_console +EXPORT_SYMBOL vmlinux 0x8c4d6523 omap_dma_chain_a_transfer +EXPORT_SYMBOL vmlinux 0x8c566f56 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x8c7a3757 of_get_named_gpio_flags +EXPORT_SYMBOL vmlinux 0x8c873c63 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x8ca8d886 key_revoke +EXPORT_SYMBOL vmlinux 0x8cd8c339 omap_free_dma +EXPORT_SYMBOL vmlinux 0x8cf0d28d mddev_congested +EXPORT_SYMBOL vmlinux 0x8d16a3e2 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x8d2e1003 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d667376 dev_trans_start +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d839a2e blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x8d88c1a9 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x8d8b011a simple_pin_fs +EXPORT_SYMBOL vmlinux 0x8dde5439 genphy_suspend +EXPORT_SYMBOL vmlinux 0x8de7bbf6 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x8de807a2 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e16e5da scsi_block_requests +EXPORT_SYMBOL vmlinux 0x8e19a10d try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x8e398356 d_invalidate +EXPORT_SYMBOL vmlinux 0x8e4952aa amba_find_device +EXPORT_SYMBOL vmlinux 0x8e555738 param_get_uint +EXPORT_SYMBOL vmlinux 0x8e649834 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x8e691c56 __devm_request_region +EXPORT_SYMBOL vmlinux 0x8e7c694e scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x8e866295 netif_device_detach +EXPORT_SYMBOL vmlinux 0x8ea571d9 fb_class +EXPORT_SYMBOL vmlinux 0x8ea7d43b con_copy_unimap +EXPORT_SYMBOL vmlinux 0x8eb5a102 elv_rb_find +EXPORT_SYMBOL vmlinux 0x8eb933e0 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x8edf694c dentry_path_raw +EXPORT_SYMBOL vmlinux 0x8ee68933 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f085f21 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x8f306df2 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x8f346f46 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x8f3abaeb dev_err +EXPORT_SYMBOL vmlinux 0x8f3b0c84 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f56fcfa of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x8f595b11 snd_major +EXPORT_SYMBOL vmlinux 0x8f678b07 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x8f7bcabf in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x8f97c23e snd_pcm_lib_ioctl +EXPORT_SYMBOL vmlinux 0x8fa4130a omap_set_dma_callback +EXPORT_SYMBOL vmlinux 0x8fbb3130 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x8fc7f839 param_set_charp +EXPORT_SYMBOL vmlinux 0x8fd380cc blk_put_request +EXPORT_SYMBOL vmlinux 0x8fd3bffc tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x8fe7269d of_n_size_cells +EXPORT_SYMBOL vmlinux 0x8fe99687 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x8ff66782 param_get_ushort +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x9012894e neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x9039b653 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x90703e9a skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x90930d28 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x90af0c15 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90dcbc1c vfs_link +EXPORT_SYMBOL vmlinux 0x90e23f22 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x90e83954 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x90f58d89 block_write_begin +EXPORT_SYMBOL vmlinux 0x912fa716 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x9134c3ff nand_bch_calculate_ecc +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x9187d28c dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x91bd16be omap_dss_get_device +EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free +EXPORT_SYMBOL vmlinux 0x92112b44 locks_delete_block +EXPORT_SYMBOL vmlinux 0x921c94b0 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x924273b7 lookup_bdev +EXPORT_SYMBOL vmlinux 0x92642ce9 of_find_matching_node +EXPORT_SYMBOL vmlinux 0x9264365b __cleancache_flush_fs +EXPORT_SYMBOL vmlinux 0x92985c29 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x929eecac __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x92ac2013 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x92d272ce vm_event_states +EXPORT_SYMBOL vmlinux 0x92e899d3 __nla_put +EXPORT_SYMBOL vmlinux 0x92f16811 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930e0466 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x930eae4b __alloc_skb +EXPORT_SYMBOL vmlinux 0x931ee5ba filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9333e39d of_dev_put +EXPORT_SYMBOL vmlinux 0x93346381 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x9389cfce lease_get_mtime +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c8235f blk_make_request +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9400bbab omap_mcbsp_dma_reg_params +EXPORT_SYMBOL vmlinux 0x94307918 set_user_nice +EXPORT_SYMBOL vmlinux 0x94407fab end_page_writeback +EXPORT_SYMBOL vmlinux 0x94418f54 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex +EXPORT_SYMBOL vmlinux 0x94728418 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x947a4145 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x94864c7a wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94af632e complete_all +EXPORT_SYMBOL vmlinux 0x94cb1239 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x94e31426 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x94e46b6b destroy_EII_client +EXPORT_SYMBOL vmlinux 0x94f03bb0 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x9503962e genphy_update_link +EXPORT_SYMBOL vmlinux 0x952f1c61 vmap +EXPORT_SYMBOL vmlinux 0x953e0f09 i2c_use_client +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954c0d0e dst_destroy +EXPORT_SYMBOL vmlinux 0x95986da7 dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95dcaa08 thaw_bdev +EXPORT_SYMBOL vmlinux 0x95ec66b2 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x960eed94 register_qdisc +EXPORT_SYMBOL vmlinux 0x962cf393 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x963e0764 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x96406f4a jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x965f8481 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x967f2d48 sock_i_uid +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x969106e4 clk_set_rate +EXPORT_SYMBOL vmlinux 0x96a112ec dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x96b16a2e i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x96b39b6e omap_start_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0x96c6686b netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96e0acd3 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x96e8691a scsi_device_resume +EXPORT_SYMBOL vmlinux 0x97138ea9 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x974026bb km_state_notify +EXPORT_SYMBOL vmlinux 0x9744c6e4 tty_port_open +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975ca814 snd_timer_start +EXPORT_SYMBOL vmlinux 0x976e37c8 dev_addr_del +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x979d868d jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x97a09ad5 elv_register_queue +EXPORT_SYMBOL vmlinux 0x97d413ce inet_select_addr +EXPORT_SYMBOL vmlinux 0x97e4d19d scsi_print_command +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x98107728 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x9814b7cd tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9840b41f register_cdrom +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98997399 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x98c16297 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x98c1e903 dev_emerg +EXPORT_SYMBOL vmlinux 0x98d1d700 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x98d880e6 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x9923d427 block_commit_write +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x99538665 seq_open_private +EXPORT_SYMBOL vmlinux 0x995f3a0a ether_setup +EXPORT_SYMBOL vmlinux 0x998ef33c __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a3f537 scsi_get_command +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x9a01e5f0 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2a06cc bh_submit_read +EXPORT_SYMBOL vmlinux 0x9a4e5806 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x9a4eeb74 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x9a539844 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x9a63f60a key_type_keyring +EXPORT_SYMBOL vmlinux 0x9a6de116 genl_register_ops +EXPORT_SYMBOL vmlinux 0x9a88a2c5 snd_pcm_hw_constraint_step +EXPORT_SYMBOL vmlinux 0x9aa537af empty_zero_page +EXPORT_SYMBOL vmlinux 0x9aae26dd task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x9ab721ef revert_creds +EXPORT_SYMBOL vmlinux 0x9ab8808c param_get_charp +EXPORT_SYMBOL vmlinux 0x9accd0a8 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x9afa6936 register_con_driver +EXPORT_SYMBOL vmlinux 0x9b1095ee nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b5b5114 get_disk +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb7edd9 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bdfb8f5 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x9bf88878 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c048e24 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x9c147d90 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x9c277ba0 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x9c380c18 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x9c3efb25 __get_page_tail +EXPORT_SYMBOL vmlinux 0x9c401b4a i2c_release_client +EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c8a91d0 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x9c92b124 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x9ca04207 clk_set_parent +EXPORT_SYMBOL vmlinux 0x9ca612c0 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cca354c skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x9cd2e7d0 gpmc_nand_read +EXPORT_SYMBOL vmlinux 0x9cd60539 sg_free_table +EXPORT_SYMBOL vmlinux 0x9cd74019 amba_request_regions +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d09c2ff tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3c0150 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x9d51c002 account_page_redirty +EXPORT_SYMBOL vmlinux 0x9d5f128e serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d6d36ed tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x9d893369 seq_lseek +EXPORT_SYMBOL vmlinux 0x9da142b0 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x9dc285ef request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x9dc9e3ea set_security_override +EXPORT_SYMBOL vmlinux 0x9deedf6d proto_unregister +EXPORT_SYMBOL vmlinux 0x9df9358d drop_super +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e26df99 mmc_start_req +EXPORT_SYMBOL vmlinux 0x9e30476f read_cache_page_async +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e607910 audit_log +EXPORT_SYMBOL vmlinux 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL vmlinux 0x9e7872e7 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9eb34900 __scm_send +EXPORT_SYMBOL vmlinux 0x9ec2cc8c clk_enable +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9edd4f75 snd_pcm_lib_write +EXPORT_SYMBOL vmlinux 0x9ee32c3e xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9eef60b5 sound_class +EXPORT_SYMBOL vmlinux 0x9ef7be36 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x9f014f0e fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f80b734 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get +EXPORT_SYMBOL vmlinux 0x9fa93dd8 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe62d5d mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xa00b0633 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xa00c70b2 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xa016929a truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xa034a62e bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xa035efbc snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL vmlinux 0xa0432c3b snd_info_create_module_entry +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04dd1a7 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xa04f4d4c nand_bch_correct_data +EXPORT_SYMBOL vmlinux 0xa05090a2 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xa058ed18 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa09b7b98 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0be8dd2 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xa0c888eb key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa1037b32 phy_attach +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa121d4d2 make_EII_client +EXPORT_SYMBOL vmlinux 0xa140df00 dqput +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa143957d phy_detach +EXPORT_SYMBOL vmlinux 0xa1477019 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa17ee298 dma_find_channel +EXPORT_SYMBOL vmlinux 0xa1832c2f icmpv6_send +EXPORT_SYMBOL vmlinux 0xa1926054 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xa1b1ea3a security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xa1b2fb87 netlink_set_err +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1bef93b lock_rename +EXPORT_SYMBOL vmlinux 0xa1c4b6d2 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xa1c5a3b3 cleancache_enabled +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20edef1 arp_find +EXPORT_SYMBOL vmlinux 0xa22a0eea kmem_cache_create +EXPORT_SYMBOL vmlinux 0xa2434452 simple_getattr +EXPORT_SYMBOL vmlinux 0xa2541b95 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0xa264af0f blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xa26537b8 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xa26e9ecb do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xa2761c7b bdput +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa29855c2 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xa2a07b76 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xa2a09ef4 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b5891b jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xa2c1df0b nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xa2c56c31 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xa2d3cfd2 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xa2fc6ce8 __brelse +EXPORT_SYMBOL vmlinux 0xa2fcbcb6 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL vmlinux 0xa3405a16 consume_skb +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35636e7 find_inode_number +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3675a7c inode_init_once +EXPORT_SYMBOL vmlinux 0xa377f7a1 free_buffer_head +EXPORT_SYMBOL vmlinux 0xa3b101f3 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xa3cb0c1d serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xa3f5e9e0 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xa413973b wait_iff_congested +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa4610bc6 omap_rev +EXPORT_SYMBOL vmlinux 0xa4897cc3 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xa48f5b09 omap_dma_set_global_params +EXPORT_SYMBOL vmlinux 0xa4917230 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xa4b42c55 omap_set_dma_priority +EXPORT_SYMBOL vmlinux 0xa4c29461 omap_st_is_enabled +EXPORT_SYMBOL vmlinux 0xa4c3c6d1 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xa4e421b1 twl6040_power +EXPORT_SYMBOL vmlinux 0xa4fb3954 sock_no_bind +EXPORT_SYMBOL vmlinux 0xa50858e8 omapdss_dpi_display_enable +EXPORT_SYMBOL vmlinux 0xa5135546 ppp_input +EXPORT_SYMBOL vmlinux 0xa51db984 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0xa52f7f40 journal_stop +EXPORT_SYMBOL vmlinux 0xa53c333b journal_lock_updates +EXPORT_SYMBOL vmlinux 0xa556c3c9 vfs_statfs +EXPORT_SYMBOL vmlinux 0xa575428e scsi_target_resume +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5de5627 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xa5df1a8e __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xa5fa852e __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL vmlinux 0xa61e4362 omap_request_dma +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL vmlinux 0xa663d760 tty_register_driver +EXPORT_SYMBOL vmlinux 0xa66aafa8 twl6040_irq_exit +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67ab8f7 snd_card_unref +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6c805a7 tcp_child_process +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6eabbb7 inet_accept +EXPORT_SYMBOL vmlinux 0xa7049ba1 block_truncate_page +EXPORT_SYMBOL vmlinux 0xa7414f7f udp_disconnect +EXPORT_SYMBOL vmlinux 0xa7557772 mii_nway_restart +EXPORT_SYMBOL vmlinux 0xa7612e4e md_write_start +EXPORT_SYMBOL vmlinux 0xa7b49b36 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xa7c58236 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0xa7f81eca qdisc_list_del +EXPORT_SYMBOL vmlinux 0xa809a12e input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xa81c9123 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa826f439 journal_check_used_features +EXPORT_SYMBOL vmlinux 0xa83772a6 map_destroy +EXPORT_SYMBOL vmlinux 0xa8380d34 kernel_execve +EXPORT_SYMBOL vmlinux 0xa838133d fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xa85e1d00 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0xa86355c2 ip6_xmit +EXPORT_SYMBOL vmlinux 0xa87bb6d8 kset_register +EXPORT_SYMBOL vmlinux 0xa8869dda kill_bdev +EXPORT_SYMBOL vmlinux 0xa88bbcb1 generic_setlease +EXPORT_SYMBOL vmlinux 0xa88c4f46 tc_classify +EXPORT_SYMBOL vmlinux 0xa8984f1f jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xa8f3604d snd_ctl_boolean_stereo_info +EXPORT_SYMBOL vmlinux 0xa8f82e5c twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xa8fd075d set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9345b92 security_inode_permission +EXPORT_SYMBOL vmlinux 0xa943beca cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xa944c5f9 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xa9459c80 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xa9459df1 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xa94aeb95 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xa95f1a29 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xa9625f4d mdiobus_free +EXPORT_SYMBOL vmlinux 0xa963ced6 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xa964dd13 gpmc_cs_request +EXPORT_SYMBOL vmlinux 0xa97485ac vfs_rename +EXPORT_SYMBOL vmlinux 0xa9997d39 vfs_getattr +EXPORT_SYMBOL vmlinux 0xa9b4efec xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xa9b6b89b __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xa9be9494 would_dump +EXPORT_SYMBOL vmlinux 0xaa007648 simple_unlink +EXPORT_SYMBOL vmlinux 0xaa0627a2 generic_setxattr +EXPORT_SYMBOL vmlinux 0xaa0ad185 iput +EXPORT_SYMBOL vmlinux 0xaa0b5945 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xaa0c5bc3 dev_change_flags +EXPORT_SYMBOL vmlinux 0xaa5927f9 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6a5b9d bio_clone +EXPORT_SYMBOL vmlinux 0xaa6ad5c3 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xaa6c1661 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xaa8e90be of_get_parent +EXPORT_SYMBOL vmlinux 0xaad2b04d proc_symlink +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xaafdd14d simple_setattr +EXPORT_SYMBOL vmlinux 0xaaff38be dev_mc_add +EXPORT_SYMBOL vmlinux 0xab0f0df7 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xab143ed5 unload_nls +EXPORT_SYMBOL vmlinux 0xab3a2c53 follow_pfn +EXPORT_SYMBOL vmlinux 0xab5e3589 locks_free_lock +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab867026 blk_start_request +EXPORT_SYMBOL vmlinux 0xabb71994 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd88e65 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xabe4422d amba_driver_register +EXPORT_SYMBOL vmlinux 0xabf49f84 skb_checksum +EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac1280a3 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xac16e18d md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xac238e2c __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xac267f03 register_quota_format +EXPORT_SYMBOL vmlinux 0xac49a986 get_phy_device +EXPORT_SYMBOL vmlinux 0xac514c70 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xac53a44a pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6a524d journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xac872673 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xaca61f9d mnt_unpin +EXPORT_SYMBOL vmlinux 0xacb58cd1 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd288a7 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xaceea39d tc_classify_compat +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf61aa5 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad21e25a mapping_tagged +EXPORT_SYMBOL vmlinux 0xad3dae88 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xad4259ea remap_pfn_range +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad8a766e set_bdi_congested +EXPORT_SYMBOL vmlinux 0xad922895 snd_pcm_suspend_all +EXPORT_SYMBOL vmlinux 0xad97242f i2c_verify_client +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadc23126 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae0882f2 omap_mcbsp_request +EXPORT_SYMBOL vmlinux 0xae254dec generic_writepages +EXPORT_SYMBOL vmlinux 0xae25a6f1 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xae487307 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xae888724 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xae91bff6 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xae9b7941 seq_escape +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaec9f77e snd_timer_stop +EXPORT_SYMBOL vmlinux 0xaee11cce generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xaee3b995 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xaef558a6 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality +EXPORT_SYMBOL vmlinux 0xaf52da8d tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xaf585a19 napi_complete +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf81fadc elv_rb_add +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafabc6a1 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xafc5f2cd snd_card_create +EXPORT_SYMBOL vmlinux 0xafd9b3bd xfrm_input +EXPORT_SYMBOL vmlinux 0xafe6be21 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xaff483de mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0xafff4fac netif_rx +EXPORT_SYMBOL vmlinux 0xb0146c3a param_set_byte +EXPORT_SYMBOL vmlinux 0xb014f166 brioctl_set +EXPORT_SYMBOL vmlinux 0xb02299bf blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xb02bfafd snd_pcm_notify +EXPORT_SYMBOL vmlinux 0xb02fc0e2 of_phy_connect +EXPORT_SYMBOL vmlinux 0xb0455b77 get_fs_type +EXPORT_SYMBOL vmlinux 0xb04abea1 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xb05cc8b5 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0xb06ca8d1 skb_pull +EXPORT_SYMBOL vmlinux 0xb07ea9e0 neigh_lookup +EXPORT_SYMBOL vmlinux 0xb0a9e1cc blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0bd1935 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f68d14 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12a5105 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xb135894b __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xb150575b ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xb1586130 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xb16fe7b3 dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xb17436d5 mmc_do_release_host +EXPORT_SYMBOL vmlinux 0xb1854414 scsi_execute +EXPORT_SYMBOL vmlinux 0xb18e6948 omap_dss_pal_timings +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb19aa11b setattr_copy +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cf0187 put_tty_driver +EXPORT_SYMBOL vmlinux 0xb1dbd13d security_path_unlink +EXPORT_SYMBOL vmlinux 0xb1f72dd1 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xb20aa9ae jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xb20e8769 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xb21667c6 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xb22cf46b nand_scan_tail +EXPORT_SYMBOL vmlinux 0xb23d77e4 qdisc_reset +EXPORT_SYMBOL vmlinux 0xb2484a62 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2757e43 ilookup5 +EXPORT_SYMBOL vmlinux 0xb28f1c92 omap_mcbsp_stop +EXPORT_SYMBOL vmlinux 0xb2ad2a51 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xb2b6ccd4 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xb2d108b4 security_path_symlink +EXPORT_SYMBOL vmlinux 0xb2d46eae bdget_disk +EXPORT_SYMBOL vmlinux 0xb2dd9245 nla_append +EXPORT_SYMBOL vmlinux 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL vmlinux 0xb2e5fdd8 netlink_ack +EXPORT_SYMBOL vmlinux 0xb2fe77de __register_chrdev +EXPORT_SYMBOL vmlinux 0xb318d887 uart_resume_port +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb358b0e7 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xb35d647a lock_may_write +EXPORT_SYMBOL vmlinux 0xb391afa3 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3af5e92 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xb3c76ea8 ata_dev_printk +EXPORT_SYMBOL vmlinux 0xb3c940ba md_integrity_register +EXPORT_SYMBOL vmlinux 0xb3f2d439 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xb3f51548 of_device_alloc +EXPORT_SYMBOL vmlinux 0xb40aa9b6 tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0xb40dc661 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xb412edcd ab8500_gpadc_read_raw +EXPORT_SYMBOL vmlinux 0xb41ba270 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42cc6a5 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xb45a151a set_groups +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb482830f set_binfmt +EXPORT_SYMBOL vmlinux 0xb4a74eef locks_init_lock +EXPORT_SYMBOL vmlinux 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL vmlinux 0xb4c29667 udplite_prot +EXPORT_SYMBOL vmlinux 0xb4c8f38a omap_dma_chain_status +EXPORT_SYMBOL vmlinux 0xb4d915ad mount_ns +EXPORT_SYMBOL vmlinux 0xb4ed05a6 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xb4f0ee42 ppp_input_error +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5344337 do_SAK +EXPORT_SYMBOL vmlinux 0xb534d575 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54f57c4 bitmap_unplug +EXPORT_SYMBOL vmlinux 0xb5859adc find_vma +EXPORT_SYMBOL vmlinux 0xb58912a9 of_get_next_child +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5aba702 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5dc747d uart_update_timeout +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb6439d7b account_page_dirtied +EXPORT_SYMBOL vmlinux 0xb64c7b1b rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xb67581aa d_delete +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb73c8d40 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xb743fccd km_policy_notify +EXPORT_SYMBOL vmlinux 0xb7453967 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xb7594ab3 dma_unmap_sg +EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xb7863e27 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xb78c61e8 param_ops_bool +EXPORT_SYMBOL vmlinux 0xb78ffa95 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xb7a0c8ca generic_write_checks +EXPORT_SYMBOL vmlinux 0xb7b184b4 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2 +EXPORT_SYMBOL vmlinux 0xb7c5d2fc filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xb7d858e6 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xb7fbb2ce dma_mmap_coherent +EXPORT_SYMBOL vmlinux 0xb7fd4fbd snd_info_free_entry +EXPORT_SYMBOL vmlinux 0xb8003398 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xb801c2ab input_event +EXPORT_SYMBOL vmlinux 0xb80dc5d9 skb_append +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find +EXPORT_SYMBOL vmlinux 0xb820a68d sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb888c5b4 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xb88cdb35 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xb892c24e ps2_begin_command +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8c64d48 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb9175512 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xb919bae0 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xb92b20b4 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xb92b5f50 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL vmlinux 0xb964452e tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xb9805b12 simple_write_end +EXPORT_SYMBOL vmlinux 0xb98983e5 omapdss_sdi_display_disable +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb98e7c93 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xb99072a5 neigh_create +EXPORT_SYMBOL vmlinux 0xb9a013f1 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xb9a8f03b omap_stop_dma +EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2 +EXPORT_SYMBOL vmlinux 0xb9b5711e bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xb9b8d8a0 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xb9bfd98d blk_register_region +EXPORT_SYMBOL vmlinux 0xb9d4b27f scsi_put_command +EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up +EXPORT_SYMBOL vmlinux 0xb9ec222e jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xb9f0196b xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xba028f4c omap_dss_get_next_device +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba8fe8e5 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xba920ae8 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xba932bbc generic_file_open +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaac427c get_mem_type +EXPORT_SYMBOL vmlinux 0xbad32774 vfs_readv +EXPORT_SYMBOL vmlinux 0xbadccb79 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xbaf82074 bprm_change_interp +EXPORT_SYMBOL vmlinux 0xbafec204 snd_card_free +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1e60cd init_buffer +EXPORT_SYMBOL vmlinux 0xbb2858e8 pl330_submit_req +EXPORT_SYMBOL vmlinux 0xbb2b4612 rwsem_is_locked +EXPORT_SYMBOL vmlinux 0xbb30b189 skb_put +EXPORT_SYMBOL vmlinux 0xbb4c191f max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb6c2fed netif_rx_ni +EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1 +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbb189ca journal_abort +EXPORT_SYMBOL vmlinux 0xbbbe11d3 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xbbd1488d set_device_ro +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc1af537 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xbc2a2803 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xbc300350 sk_common_release +EXPORT_SYMBOL vmlinux 0xbc3a970d mmc_detect_change +EXPORT_SYMBOL vmlinux 0xbc549d2e clk_get_rate +EXPORT_SYMBOL vmlinux 0xbc860222 gpmc_read_status +EXPORT_SYMBOL vmlinux 0xbcb37a77 blk_free_tags +EXPORT_SYMBOL vmlinux 0xbcb8014d clk_unregister +EXPORT_SYMBOL vmlinux 0xbcbb8cd0 poll_initwait +EXPORT_SYMBOL vmlinux 0xbcbfc5e6 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xbcd37da0 dma_map_sg +EXPORT_SYMBOL vmlinux 0xbcde529b __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xbcec132e xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xbd06a364 scsi_prep_return +EXPORT_SYMBOL vmlinux 0xbd15e2db __page_symlink +EXPORT_SYMBOL vmlinux 0xbd36599d mmc_card_awake +EXPORT_SYMBOL vmlinux 0xbd36b0e7 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xbd59572a dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xbd6813e2 of_device_is_available +EXPORT_SYMBOL vmlinux 0xbd69068d dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xbd79a64c snd_pcm_set_sync +EXPORT_SYMBOL vmlinux 0xbd7fc024 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xbd8d3464 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xbda7d127 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc3ad6b sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xbdc9fc14 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xbdeaf904 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xbdec0db2 omap_readb +EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe121c88 search_binary_handler +EXPORT_SYMBOL vmlinux 0xbe1c7163 dquot_initialize +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe536b24 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xbe57311a bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe753440 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xbe79d467 serio_open +EXPORT_SYMBOL vmlinux 0xbeb406fb sock_create +EXPORT_SYMBOL vmlinux 0xbec6c00a register_sound_dsp +EXPORT_SYMBOL vmlinux 0xbed24878 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef5ffd2 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock +EXPORT_SYMBOL vmlinux 0xbf5bf31d ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa63d11 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xbfdff814 of_get_address +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc01ce6ed eth_validate_addr +EXPORT_SYMBOL vmlinux 0xc01dca40 log_start_commit +EXPORT_SYMBOL vmlinux 0xc01f126f vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xc0254a36 alloc_file +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc065efbc ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xc066ea55 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc06b8fbd journal_get_create_access +EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xc06ed12c twl6040_reg_write +EXPORT_SYMBOL vmlinux 0xc075e62f dquot_free_inode +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc07749f7 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0a6a8c5 omap_set_dma_dest_burst_mode +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0c7f8bf jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xc0cf95f9 omap_vrfb_request_ctx +EXPORT_SYMBOL vmlinux 0xc0e7fb49 serial8250_register_port +EXPORT_SYMBOL vmlinux 0xc0ea88f3 simple_write_begin +EXPORT_SYMBOL vmlinux 0xc0ee13a5 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xc0f22264 scsi_register +EXPORT_SYMBOL vmlinux 0xc0f67b6b dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xc10aead1 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc1237860 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0xc1247ff8 module_layout +EXPORT_SYMBOL vmlinux 0xc1303bdf pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xc130b7c0 snd_ctl_remove +EXPORT_SYMBOL vmlinux 0xc135ab71 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xc16bf071 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xc1825533 create_proc_entry +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d4cc26 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xc1f79c36 __quota_error +EXPORT_SYMBOL vmlinux 0xc20d04ba proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xc20f77d7 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xc210e252 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc271a1a5 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xc295a654 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xc2a0b790 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xc2ab72d4 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xc2adde5b scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xc2cf0301 omapdss_default_get_resolution +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f37b88 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xc2fb94ae wake_up_process +EXPORT_SYMBOL vmlinux 0xc316b98c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0xc33db791 sock_init_data +EXPORT_SYMBOL vmlinux 0xc34ff0bb clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc37c36e1 omap_writeb +EXPORT_SYMBOL vmlinux 0xc38c3f85 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xc39efb1b generic_read_dir +EXPORT_SYMBOL vmlinux 0xc39fe675 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xc3acc241 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xc3ae36b8 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xc3c504e5 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3edcaf0 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xc3fd0f2e inet_register_protosw +EXPORT_SYMBOL vmlinux 0xc3fe87c8 param_ops_uint +EXPORT_SYMBOL vmlinux 0xc408dd86 snd_pcm_suspend +EXPORT_SYMBOL vmlinux 0xc41dddc3 snd_add_device_sysfs_file +EXPORT_SYMBOL vmlinux 0xc41f3f86 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xc45e7f1d eth_change_mtu +EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each +EXPORT_SYMBOL vmlinux 0xc46702be elv_add_request +EXPORT_SYMBOL vmlinux 0xc4981a6c registered_fb +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49e2292 blk_start_queue +EXPORT_SYMBOL vmlinux 0xc4a95fec netif_skb_features +EXPORT_SYMBOL vmlinux 0xc4c94af2 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xc4cac112 of_find_property +EXPORT_SYMBOL vmlinux 0xc4e7d0f9 omap_mcbsp_get_dma_op_mode +EXPORT_SYMBOL vmlinux 0xc50108f7 dev_crit +EXPORT_SYMBOL vmlinux 0xc522513c mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xc528485e sock_release +EXPORT_SYMBOL vmlinux 0xc52da066 omap_set_dma_dest_params +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53dacc5 ip_options_compile +EXPORT_SYMBOL vmlinux 0xc54bc3c9 dqstats +EXPORT_SYMBOL vmlinux 0xc564704e __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xc57282ae ns_capable +EXPORT_SYMBOL vmlinux 0xc57baf6a vfs_unlink +EXPORT_SYMBOL vmlinux 0xc5a356b5 commit_creds +EXPORT_SYMBOL vmlinux 0xc5a37aa8 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc5f714ff dev_deactivate +EXPORT_SYMBOL vmlinux 0xc60cbeb3 sget +EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc6357f9a tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xc6410a5d fb_blank +EXPORT_SYMBOL vmlinux 0xc67ed7c8 page_symlink +EXPORT_SYMBOL vmlinux 0xc69ee8ad add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xc6a9ed62 omap_dsp_get_mempool_base +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6dde7fd mmc_free_host +EXPORT_SYMBOL vmlinux 0xc6e912b5 vfs_symlink +EXPORT_SYMBOL vmlinux 0xc6f22107 task_ns_capable +EXPORT_SYMBOL vmlinux 0xc70bdcbc jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xc710c5d4 dm_put_device +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc73eda1b icmp_send +EXPORT_SYMBOL vmlinux 0xc74c87bb blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xc74db011 dcb_getapp +EXPORT_SYMBOL vmlinux 0xc74f371a xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xc762fcda cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b745ac release_pages +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7ed58d3 nf_afinfo +EXPORT_SYMBOL vmlinux 0xc7f1ebb0 netif_napi_del +EXPORT_SYMBOL vmlinux 0xc825d838 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0xc83808c8 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc864b988 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xc877a78e sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc88c3669 cdrom_open +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc9142293 omap_dss_ntsc_timings +EXPORT_SYMBOL vmlinux 0xc927b4a9 snd_card_free_when_closed +EXPORT_SYMBOL vmlinux 0xc931e772 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xc99092c2 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a0b0e7 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xc9c814a1 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xc9d9651c sg_miter_stop +EXPORT_SYMBOL vmlinux 0xc9e19034 twl6040_irq_init +EXPORT_SYMBOL vmlinux 0xc9e60743 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xca4174a7 d_validate +EXPORT_SYMBOL vmlinux 0xca4514f1 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca6d04c0 elevator_change +EXPORT_SYMBOL vmlinux 0xca8041ee snd_component_add +EXPORT_SYMBOL vmlinux 0xca9f89f6 d_move +EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcaf03959 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xcaf61951 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xcaf91b9f dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xcb36853b input_flush_device +EXPORT_SYMBOL vmlinux 0xcb398d47 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xcb3a892c dquot_disable +EXPORT_SYMBOL vmlinux 0xcb507652 filemap_flush +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb99edb0 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0xcba5fc7d mfd_add_devices +EXPORT_SYMBOL vmlinux 0xcbabb274 clk_get +EXPORT_SYMBOL vmlinux 0xcbb66485 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xcbc835ff register_sound_mixer +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbcc7153 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xcbdc2e5a netdev_printk +EXPORT_SYMBOL vmlinux 0xcbde5b35 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0xcbe02d00 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xcbe7de75 skb_clone +EXPORT_SYMBOL vmlinux 0xcbfa808b insert_inode_locked +EXPORT_SYMBOL vmlinux 0xcbfb8d6c phy_start_aneg +EXPORT_SYMBOL vmlinux 0xcc1e03da unregister_cdrom +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc26656e unregister_console +EXPORT_SYMBOL vmlinux 0xcc309524 __nla_reserve +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8b8b28 submit_bh +EXPORT_SYMBOL vmlinux 0xcc93e922 __put_cred +EXPORT_SYMBOL vmlinux 0xcc9a46d1 dquot_drop +EXPORT_SYMBOL vmlinux 0xccb7b3c7 skb_insert +EXPORT_SYMBOL vmlinux 0xccdbccfb fb_get_mode +EXPORT_SYMBOL vmlinux 0xcce6f447 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xccff4b6f blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xcd009b83 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL vmlinux 0xcd0e9657 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd30b95a tmio_core_mmc_clk_div +EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcdb6d693 put_page +EXPORT_SYMBOL vmlinux 0xcdd0f14f ___dma_page_dev_to_cpu +EXPORT_SYMBOL vmlinux 0xcdd6525c dev_disable_lro +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcdfb4472 pipe_unlock +EXPORT_SYMBOL vmlinux 0xce0439e5 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce38bb10 lease_modify +EXPORT_SYMBOL vmlinux 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL vmlinux 0xce5206a4 fb_show_logo +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5d861b devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xce7ce037 of_translate_address +EXPORT_SYMBOL vmlinux 0xce93d89b prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xce9c5a61 put_io_context +EXPORT_SYMBOL vmlinux 0xcea899ea down +EXPORT_SYMBOL vmlinux 0xcebdbadc vfs_readdir +EXPORT_SYMBOL vmlinux 0xcebe8a90 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xcebec1b0 blkdev_fsync +EXPORT_SYMBOL vmlinux 0xced79916 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xcedc16f8 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcef724bd dev_driver_string +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf015f7b do_settimeofday +EXPORT_SYMBOL vmlinux 0xcf1cf941 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xcf2f33c9 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xcf3fba9e snd_info_register +EXPORT_SYMBOL vmlinux 0xcf426853 sock_no_poll +EXPORT_SYMBOL vmlinux 0xcf42adf3 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xcf44d596 file_update_time +EXPORT_SYMBOL vmlinux 0xcf872789 bdi_register +EXPORT_SYMBOL vmlinux 0xcf94a68a backlight_force_update +EXPORT_SYMBOL vmlinux 0xcf958642 snd_ctl_replace +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcff2cba2 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xcffa7949 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01dc2ce snd_pcm_hw_constraint_list +EXPORT_SYMBOL vmlinux 0xd02f3057 set_page_dirty +EXPORT_SYMBOL vmlinux 0xd04664ea pagevec_lookup +EXPORT_SYMBOL vmlinux 0xd06d1e78 input_inject_event +EXPORT_SYMBOL vmlinux 0xd0814a48 input_set_capability +EXPORT_SYMBOL vmlinux 0xd0887cc6 snd_pcm_period_elapsed +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL vmlinux 0xd0d15091 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0dcc2ef noop_qdisc +EXPORT_SYMBOL vmlinux 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd1157735 release_and_free_resource +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd12e21c6 kill_anon_super +EXPORT_SYMBOL vmlinux 0xd12e623c blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xd1434da8 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xd172cb8d netdev_increment_features +EXPORT_SYMBOL vmlinux 0xd17a1373 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1d9936f bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xd1e02867 kobject_put +EXPORT_SYMBOL vmlinux 0xd1e3f993 inode_permission +EXPORT_SYMBOL vmlinux 0xd22194f5 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL vmlinux 0xd2277b4d wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xd2469630 inet_frag_find +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd276f795 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xd295862b follow_up +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2b67c4d xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xd2cee403 journal_forget +EXPORT_SYMBOL vmlinux 0xd2d51180 of_gpio_count +EXPORT_SYMBOL vmlinux 0xd2d573bb cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xd2da18c2 tcf_register_action +EXPORT_SYMBOL vmlinux 0xd302dafc ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xd319abb6 ip_route_input_common +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3276386 snd_timer_interrupt +EXPORT_SYMBOL vmlinux 0xd3429874 dev_mc_del +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd36402e9 mmc_request_done +EXPORT_SYMBOL vmlinux 0xd36baf49 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3ad25f6 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xd3c5cb1a generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xd3cff5b6 omap2_mcbsp1_mux_clkr_src +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3e9ced8 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xd3fd4798 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd43b7270 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xd4b618e9 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xd4c18944 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xd4d6c612 should_remove_suid +EXPORT_SYMBOL vmlinux 0xd4deee7a ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xd4e6b504 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xd4fb9089 kern_unmount +EXPORT_SYMBOL vmlinux 0xd50e9d42 setup_new_exec +EXPORT_SYMBOL vmlinux 0xd5152710 sg_next +EXPORT_SYMBOL vmlinux 0xd526a7a0 kill_pgrp +EXPORT_SYMBOL vmlinux 0xd544ed61 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xd54ad59b gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xd56e9485 omap_set_dma_dest_index +EXPORT_SYMBOL vmlinux 0xd56fdf87 dentry_unhash +EXPORT_SYMBOL vmlinux 0xd592396d generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xd595d82a zero_fill_bio +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b12da7 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xd5b1376d register_shrinker +EXPORT_SYMBOL vmlinux 0xd5d1e23f bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xd5ebd11a kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd61c64b3 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd63ef045 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xd66e47e8 dcache_readdir +EXPORT_SYMBOL vmlinux 0xd678ca44 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xd681dd36 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xd6866a39 ppp_unit_number +EXPORT_SYMBOL vmlinux 0xd68f74d5 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xd69cb4ee nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xd6a627f5 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xd6b15451 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xd6b5e60a snd_pcm_lib_readv +EXPORT_SYMBOL vmlinux 0xd6bd5732 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xd6d33ae7 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd70bd296 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xd729e9d1 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xd751bae5 bio_init +EXPORT_SYMBOL vmlinux 0xd764e30b xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd77b0a18 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a074ea tcp_parse_options +EXPORT_SYMBOL vmlinux 0xd7a6e3ee mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xd7aae2b8 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xd7ad5c45 snd_timer_global_new +EXPORT_SYMBOL vmlinux 0xd7d18c7a __devm_release_region +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7f77c50 md_error +EXPORT_SYMBOL vmlinux 0xd81d7016 snd_pcm_limit_hw_rates +EXPORT_SYMBOL vmlinux 0xd81d9599 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xd81e25cb seq_release +EXPORT_SYMBOL vmlinux 0xd822a39e console_start +EXPORT_SYMBOL vmlinux 0xd823757e kill_block_super +EXPORT_SYMBOL vmlinux 0xd82ea9dc dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd8752af0 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0xd88ceb98 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8c397e3 mb_cache_create +EXPORT_SYMBOL vmlinux 0xd8ce7e67 clocksource_register +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f040f1 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xd8f9c3ae blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xd8f9eee5 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xd9210141 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xd9247482 omap_dss_register_driver +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd955d2b7 omap_set_dma_dest_data_pack +EXPORT_SYMBOL vmlinux 0xd9573628 dcb_setapp +EXPORT_SYMBOL vmlinux 0xd96fce22 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd9b939a7 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9e0c165 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xda0b55e5 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xda20467e tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xda22da67 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xda257741 aio_put_req +EXPORT_SYMBOL vmlinux 0xda2f61d0 mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0xda3a8f33 tcp_close +EXPORT_SYMBOL vmlinux 0xda3cf2c4 proc_dointvec +EXPORT_SYMBOL vmlinux 0xda3f46fe mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xda43156d tty_port_init +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda96685d __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0xdaa93f62 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xdb14d556 km_new_mapping +EXPORT_SYMBOL vmlinux 0xdb2178c7 __sg_free_table +EXPORT_SYMBOL vmlinux 0xdb4292e4 omap_set_dma_params +EXPORT_SYMBOL vmlinux 0xdb4395bc cap_file_mmap +EXPORT_SYMBOL vmlinux 0xdb50aeb0 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xdb612e23 nonseekable_open +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb71cbd5 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xdb7430c3 journal_errno +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb9b3327 omapfb_update_window +EXPORT_SYMBOL vmlinux 0xdb9e2c22 posix_acl_create +EXPORT_SYMBOL vmlinux 0xdbaadaba dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xdbbdfaca tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xdbcb9edc mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd4cb4a of_device_register +EXPORT_SYMBOL vmlinux 0xdbda4f8b inet_frags_fini +EXPORT_SYMBOL vmlinux 0xdbdc3b90 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xdbf84b72 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xdbf96e6a bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc1e6ace inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xdc1f3959 sock_create_lite +EXPORT_SYMBOL vmlinux 0xdc2519e0 param_set_ulong +EXPORT_SYMBOL vmlinux 0xdc28a99e napi_get_frags +EXPORT_SYMBOL vmlinux 0xdc2a9f97 get_io_context +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc313c9a bio_integrity_free +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init +EXPORT_SYMBOL vmlinux 0xdc9011d9 dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0xdca3c07e blk_execute_rq +EXPORT_SYMBOL vmlinux 0xdca7a472 unregister_key_type +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd1981e1 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xdd1c65f6 blk_finish_plug +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd6d3eee jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xdd81df8b devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xdd91335f dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xdd95e5d2 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xddc0b129 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xddc5903a snd_pcm_hw_constraint_integer +EXPORT_SYMBOL vmlinux 0xdddee033 d_lookup +EXPORT_SYMBOL vmlinux 0xdddf3c5b bio_copy_kern +EXPORT_SYMBOL vmlinux 0xde15c042 omap_set_dma_src_index +EXPORT_SYMBOL vmlinux 0xde23a5c5 neigh_for_each +EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xde4d0733 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xde5f1bd1 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xde692d94 omap_get_dma_chain_src_pos +EXPORT_SYMBOL vmlinux 0xde6f2d45 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xde8c763d cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdebc38c9 scsi_device_get +EXPORT_SYMBOL vmlinux 0xdecc3dc5 sk_filter +EXPORT_SYMBOL vmlinux 0xdefd890b ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xdf070a93 key_alloc +EXPORT_SYMBOL vmlinux 0xdf0c9d80 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xdf15550d truncate_setsize +EXPORT_SYMBOL vmlinux 0xdf17c755 nand_default_bbt +EXPORT_SYMBOL vmlinux 0xdf1ef69f wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6358ad sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf952e7f inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfb2b25d dget_parent +EXPORT_SYMBOL vmlinux 0xdfbd8779 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xdfc1f2f9 dentry_open +EXPORT_SYMBOL vmlinux 0xdfc257ee nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfce1524 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xdfd91ce9 omap_type +EXPORT_SYMBOL vmlinux 0xdfea2a6e inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xdff3aae8 generic_readlink +EXPORT_SYMBOL vmlinux 0xe018f211 register_gifconf +EXPORT_SYMBOL vmlinux 0xe0363348 snd_card_set_id +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe051ed75 tty_vhangup +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe06f5cbb __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xe0732706 snd_timer_pause +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0ac20b4 unlock_page +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0de8105 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xe0fc24aa param_set_int +EXPORT_SYMBOL vmlinux 0xe0fce1ac ip6_frag_match +EXPORT_SYMBOL vmlinux 0xe106154f omap_vram_get_info +EXPORT_SYMBOL vmlinux 0xe106f6de find_get_page +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe12aa3b2 __lock_buffer +EXPORT_SYMBOL vmlinux 0xe12b2cc7 neigh_destroy +EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1c9c19b register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xe1ddbba6 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xe1df60c6 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe21b07ec scsi_execute_req +EXPORT_SYMBOL vmlinux 0xe2253201 register_framebuffer +EXPORT_SYMBOL vmlinux 0xe22632ba nf_hook_slow +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2500b4d backlight_device_register +EXPORT_SYMBOL vmlinux 0xe25a1f85 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xe262c616 bio_pair_release +EXPORT_SYMBOL vmlinux 0xe26e740b scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d89384 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe334f71b simple_lookup +EXPORT_SYMBOL vmlinux 0xe369d7c0 d_splice_alias +EXPORT_SYMBOL vmlinux 0xe36e6263 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xe37d10ae omap_dispc_unregister_isr +EXPORT_SYMBOL vmlinux 0xe3a6a99c ps2_init +EXPORT_SYMBOL vmlinux 0xe3c25117 ps2_command +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3deed23 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xe4033142 dquot_acquire +EXPORT_SYMBOL vmlinux 0xe42acfca pskb_copy +EXPORT_SYMBOL vmlinux 0xe47d7096 install_exec_creds +EXPORT_SYMBOL vmlinux 0xe4903890 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe4a5870e dev_activate +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +EXPORT_SYMBOL vmlinux 0xe4e8ec21 eth_header +EXPORT_SYMBOL vmlinux 0xe501acec blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xe5045635 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe513fd88 journal_update_format +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5250c84 key_unlink +EXPORT_SYMBOL vmlinux 0xe53d7b59 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xe5445af6 omap_get_dma_dst_pos +EXPORT_SYMBOL vmlinux 0xe54fcadb tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe592143f dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0xe5a31e0d dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xe5ba483a abx500_register_ops +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5cad992 ip_defrag +EXPORT_SYMBOL vmlinux 0xe5e1c300 input_set_abs_params +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f6f9c6 tcp_connect +EXPORT_SYMBOL vmlinux 0xe5ff7bde tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xe63ac5f5 block_write_full_page +EXPORT_SYMBOL vmlinux 0xe6744a89 omap_clear_dma +EXPORT_SYMBOL vmlinux 0xe68fdff7 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69e6511 of_platform_device_create +EXPORT_SYMBOL vmlinux 0xe6a15048 vfs_mknod +EXPORT_SYMBOL vmlinux 0xe6b70a65 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6e285bd scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0xe7198820 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on +EXPORT_SYMBOL vmlinux 0xe755d07d pipe_to_file +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d6647c xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe84437e7 d_drop +EXPORT_SYMBOL vmlinux 0xe85464b0 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xe85ba668 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xe8690ff1 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace +EXPORT_SYMBOL vmlinux 0xe88953a1 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xe898548d netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xe8a35e10 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bc04f3 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0xe8ce7e4c vfs_create +EXPORT_SYMBOL vmlinux 0xe8e1abbb security_inode_init_security +EXPORT_SYMBOL vmlinux 0xe8ebf346 ab8500_gpadc_ad_to_voltage +EXPORT_SYMBOL vmlinux 0xe9101952 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe93c3ef7 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xe94c80cd scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe97c4316 nobh_writepage +EXPORT_SYMBOL vmlinux 0xe98af587 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xe9ce8b95 omap_ioremap +EXPORT_SYMBOL vmlinux 0xe9d12dbe vmtruncate +EXPORT_SYMBOL vmlinux 0xe9dc9987 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xe9df9987 init_task +EXPORT_SYMBOL vmlinux 0xe9e4e163 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xe9e67510 dev_mc_init +EXPORT_SYMBOL vmlinux 0xe9ea040a blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea8a6c75 param_ops_long +EXPORT_SYMBOL vmlinux 0xea8bf01d i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xea9fb9df rename_lock +EXPORT_SYMBOL vmlinux 0xeac8939f init_special_inode +EXPORT_SYMBOL vmlinux 0xead1b868 netif_napi_add +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb05e490 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xeb18c329 mpage_readpages +EXPORT_SYMBOL vmlinux 0xeb1b120e omap_set_dma_write_mode +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb55476d lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xeba677bd posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xebb88ee9 tty_hangup +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high +EXPORT_SYMBOL vmlinux 0xebffd5e1 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec22205a qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xec292c9e sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xec2eca32 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xec94da14 filp_close +EXPORT_SYMBOL vmlinux 0xeccd0a47 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xecd46610 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xecfaf685 dm_get_device +EXPORT_SYMBOL vmlinux 0xecff7c45 snd_card_proc_new +EXPORT_SYMBOL vmlinux 0xed21ab6d dcache_dir_close +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed30c5ef phy_find_first +EXPORT_SYMBOL vmlinux 0xed3204f5 tty_port_put +EXPORT_SYMBOL vmlinux 0xed3d52a8 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xed4a0c89 vc_cons +EXPORT_SYMBOL vmlinux 0xed64804b dev_add_pack +EXPORT_SYMBOL vmlinux 0xed7ce107 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xed854dac omap_stop_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0xed937d4e phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xed9f692b security_d_instantiate +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xee108f30 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xee1cf357 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xee1f1340 path_get +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3496c3 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xee694bca netdev_emerg +EXPORT_SYMBOL vmlinux 0xee79b5f6 input_unregister_device +EXPORT_SYMBOL vmlinux 0xee824fe1 module_refcount +EXPORT_SYMBOL vmlinux 0xeea162a0 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xeea395a2 mtd_concat_create +EXPORT_SYMBOL vmlinux 0xeea3d476 serio_reconnect +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeabadbe mmc_card_sleep +EXPORT_SYMBOL vmlinux 0xeec2385f __bforget +EXPORT_SYMBOL vmlinux 0xeed0e2ae proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xeed72295 journal_start +EXPORT_SYMBOL vmlinux 0xef49edd7 of_phy_find_device +EXPORT_SYMBOL vmlinux 0xef613a83 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xef6681f5 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xefb66a95 omap_request_dma_chain +EXPORT_SYMBOL vmlinux 0xefc21008 cdev_alloc +EXPORT_SYMBOL vmlinux 0xefd6cf06 __aeabi_unwind_cpp_pr0 +EXPORT_SYMBOL vmlinux 0xefd8eca0 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xefdd2345 sg_init_one +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefec312f omap_get_dma_active_status +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0047f0d freeze_super +EXPORT_SYMBOL vmlinux 0xf00911f2 udp_ioctl +EXPORT_SYMBOL vmlinux 0xf01f311d scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xf0280e90 tty_name +EXPORT_SYMBOL vmlinux 0xf03724e8 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xf0543346 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xf05a2aa1 dput +EXPORT_SYMBOL vmlinux 0xf06abe25 dquot_resume +EXPORT_SYMBOL vmlinux 0xf08280dc dev_addr_init +EXPORT_SYMBOL vmlinux 0xf0880660 nf_log_register +EXPORT_SYMBOL vmlinux 0xf09096e4 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf09b45fb seq_puts +EXPORT_SYMBOL vmlinux 0xf0a05ee7 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xf0db1482 notify_change +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf10b693d check_disk_change +EXPORT_SYMBOL vmlinux 0xf11df4a5 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf122c048 sock_no_connect +EXPORT_SYMBOL vmlinux 0xf158fd0c inet6_ioctl +EXPORT_SYMBOL vmlinux 0xf15c0c4c i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xf1664175 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a3c919 omap_mcbsp_set_tx_threshold +EXPORT_SYMBOL vmlinux 0xf1b5f33c inet6_bind +EXPORT_SYMBOL vmlinux 0xf1c587f5 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1d05c17 input_set_keycode +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e0f946 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xf1e4936d fput +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf2057f46 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf228aafd generic_make_request +EXPORT_SYMBOL vmlinux 0xf22c1aa7 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xf2330895 release_sock +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf26df746 omap_vram_free +EXPORT_SYMBOL vmlinux 0xf272c23e __bio_clone +EXPORT_SYMBOL vmlinux 0xf273fc3d cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xf284e7fb d_rehash +EXPORT_SYMBOL vmlinux 0xf28e1e3e omap_st_disable +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2ad903f mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xf2d396b8 cpu_user +EXPORT_SYMBOL vmlinux 0xf2e48659 sock_no_getname +EXPORT_SYMBOL vmlinux 0xf2e5a880 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xf307eb11 netdev_change_features +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf321b766 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0xf3329c3e netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34d149d tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xf35b9ffe tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL vmlinux 0xf37a218e posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xf37f8f64 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0xf383490d jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3b8a2a3 __rta_fill +EXPORT_SYMBOL vmlinux 0xf3bbef68 may_umount_tree +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c9813f single_open +EXPORT_SYMBOL vmlinux 0xf4101fd0 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xf417f548 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xf418196d sock_wake_async +EXPORT_SYMBOL vmlinux 0xf420433c skb_split +EXPORT_SYMBOL vmlinux 0xf44d5f5b iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xf45861bf sk_stop_timer +EXPORT_SYMBOL vmlinux 0xf47fe288 dquot_operations +EXPORT_SYMBOL vmlinux 0xf4860c00 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xf48ee69f bdi_register_dev +EXPORT_SYMBOL vmlinux 0xf4907c51 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xf4937854 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xf49428c2 skb_trim +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4b008d4 skb_recycle_check +EXPORT_SYMBOL vmlinux 0xf4cdf2f5 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xf4f1439a iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf5091536 bio_alloc +EXPORT_SYMBOL vmlinux 0xf527cf66 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf54ba601 omap_mcbsp_config +EXPORT_SYMBOL vmlinux 0xf54c51a2 dma_pool_free +EXPORT_SYMBOL vmlinux 0xf55309e3 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cf326a param_ops_short +EXPORT_SYMBOL vmlinux 0xf5e53748 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf600ac26 snd_timer_global_free +EXPORT_SYMBOL vmlinux 0xf6081943 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xf612809a param_get_int +EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf641a9c5 pid_task +EXPORT_SYMBOL vmlinux 0xf654a171 mount_nodev +EXPORT_SYMBOL vmlinux 0xf65cb2e0 snd_timer_open +EXPORT_SYMBOL vmlinux 0xf67695d7 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xf67b3a0e max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xf6a0f909 __serio_register_port +EXPORT_SYMBOL vmlinux 0xf6b8567d downgrade_write +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ce8fdd security_file_mmap +EXPORT_SYMBOL vmlinux 0xf6d1eba9 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xf6d49898 omapdss_dpi_display_disable +EXPORT_SYMBOL vmlinux 0xf6d7e5d6 snd_pcm_link_rwlock +EXPORT_SYMBOL vmlinux 0xf6d81579 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f3cef6 omap_vrfb_setup +EXPORT_SYMBOL vmlinux 0xf6f5ca6f kernel_accept +EXPORT_SYMBOL vmlinux 0xf7065487 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xf74fe62e inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xf75047fa netdev_err +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf76b0de3 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7abe087 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xf7c61815 get_omap3_evm_rev +EXPORT_SYMBOL vmlinux 0xf7d71fb0 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xf7e7778d request_key +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf8294e35 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xf8299458 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xf853bbca omap_vrfb_map_angle +EXPORT_SYMBOL vmlinux 0xf869899f alloc_disk_node +EXPORT_SYMBOL vmlinux 0xf87a1595 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xf88c3301 sg_init_table +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8b727d7 __breadahead +EXPORT_SYMBOL vmlinux 0xf8ce0b68 override_creds +EXPORT_SYMBOL vmlinux 0xf8ddf431 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xf8e71f95 revalidate_disk +EXPORT_SYMBOL vmlinux 0xf8f6d208 scsi_host_get +EXPORT_SYMBOL vmlinux 0xf8f74210 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf9262e36 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xf92db872 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf93607ca ppp_register_channel +EXPORT_SYMBOL vmlinux 0xf956a8df do_sync_write +EXPORT_SYMBOL vmlinux 0xf9906dcc ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xf9981563 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9d58c35 inet_listen +EXPORT_SYMBOL vmlinux 0xf9e2775a rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9ebbc73 file_open_root +EXPORT_SYMBOL vmlinux 0xf9eefe39 elevator_init +EXPORT_SYMBOL vmlinux 0xfa082128 down_interruptible +EXPORT_SYMBOL vmlinux 0xfa16b65c writeback_in_progress +EXPORT_SYMBOL vmlinux 0xfa2239da tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xfa3fa027 ip_fragment +EXPORT_SYMBOL vmlinux 0xfa43a7b9 end_writeback +EXPORT_SYMBOL vmlinux 0xfa69e0ce scsi_init_io +EXPORT_SYMBOL vmlinux 0xfa6a7e47 omap_dss_start_device +EXPORT_SYMBOL vmlinux 0xfa7dec6f sock_rfree +EXPORT_SYMBOL vmlinux 0xfa9ac89f elv_rb_del +EXPORT_SYMBOL vmlinux 0xfab40848 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xfabf7bdd inet_add_protocol +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0xfacc0b4a __get_user_pages +EXPORT_SYMBOL vmlinux 0xfacd2e14 pgprot_user +EXPORT_SYMBOL vmlinux 0xfad37d4e d_add_ci +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb05f366 prepare_binprm +EXPORT_SYMBOL vmlinux 0xfb22bc00 __invalidate_device +EXPORT_SYMBOL vmlinux 0xfb29f1b5 __find_get_block +EXPORT_SYMBOL vmlinux 0xfb3e6c4d simple_map_init +EXPORT_SYMBOL vmlinux 0xfb53845d journal_destroy +EXPORT_SYMBOL vmlinux 0xfb5bdb9d key_link +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb73d8bb netlink_unicast +EXPORT_SYMBOL vmlinux 0xfb77c875 tc6393xb_lcd_mode +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfb9b4049 force_sig +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb013fa scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xfbb5b35c dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbec9aff bio_map_user +EXPORT_SYMBOL vmlinux 0xfbf28d95 kill_litter_super +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc11ce94 omap_dss_unregister_driver +EXPORT_SYMBOL vmlinux 0xfc1c2609 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xfc1fcf58 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xfc316354 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc485143 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xfc4d00f8 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc6832b9 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xfc9cbe1d __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc09e1d tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcdc18f2 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xfce9fb84 omap_dss_find_device +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfcfb69 dm_io +EXPORT_SYMBOL vmlinux 0xfd044c13 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0xfd1c1967 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd3a9a1b ipv4_specific +EXPORT_SYMBOL vmlinux 0xfd4c182b twl6040_reg_read +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6b3d0c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe1e9444 mmc_add_host +EXPORT_SYMBOL vmlinux 0xfe1f7648 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0xfe300309 snd_timer_resolution +EXPORT_SYMBOL vmlinux 0xfe31f742 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xfe526154 kthread_stop +EXPORT_SYMBOL vmlinux 0xfe5b30df security_path_chmod +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe634adc __ip_dev_find +EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe839a65 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xfea0ccfb arp_invalidate +EXPORT_SYMBOL vmlinux 0xfea91780 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xfebbf2ad bdev_read_only +EXPORT_SYMBOL vmlinux 0xfec222d5 snd_pcm_lib_writev +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfecd8042 find_or_create_page +EXPORT_SYMBOL vmlinux 0xfed15ad4 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfeff78a6 udp_proc_register +EXPORT_SYMBOL vmlinux 0xff020db5 ppp_dev_name +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2a641f scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0xff2b0fa1 omap_mcbsp_get_max_rx_threshold +EXPORT_SYMBOL vmlinux 0xff4bafb0 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xff5498b5 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xff6084e2 clk_register +EXPORT_SYMBOL vmlinux 0xff67604e rtnl_create_link +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff77327a mount_pseudo +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb94ef0 _test_and_change_bit +EXPORT_SYMBOL vmlinux 0xffbc4508 snd_ctl_notify +EXPORT_SYMBOL vmlinux 0xffd2cf99 omap_dss_get_num_overlay_managers +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfff6a879 names_cachep +EXPORT_SYMBOL_GPL crypto/af_alg 0x4cf9d159 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x670c2970 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x6c4eecd7 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x79a1e77e af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x7dfc1b39 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xb4ab9b3a af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xdec9b2cd af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xdf623e43 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x963bc257 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x0a0106ad async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xd88186c5 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc5f3f1d5 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xf8d948ac async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5eb120a9 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x70c0ba79 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x8c343b8e async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xeedfccf3 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x30e83d10 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x50374b90 async_xor +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xf3be5fcd blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cryptd 0x34eadff3 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x523cfd99 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x572f0555 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x6ef7ab30 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x94bdd4cc cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x9dbbe660 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xb962202a cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xd17d5afd cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xe7f1e005 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xe95a4d18 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xa97b5f0f twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x07beefe8 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1fc54e7c ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x398648e3 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3c536bbd ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x65f29eca ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7be1f3f9 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8e448d09 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x93c1998d ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x98a10e71 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9a03347b ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9eb19db9 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd34df98f ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd6ac9335 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd72987d6 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe7807a60 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf5e247da ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf693d0a1 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfd5343be ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x10f4c511 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xb6cdaa8d __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0c919e2f __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x20fc5771 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x404ed307 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5922241f bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x68c87256 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6cdaca27 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x724ac5d2 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa197fd68 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa789409f bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbeae6565 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbf746d9f bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc84350d7 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd9f39a2d bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00da4048 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x18f65792 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x32946b32 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x42c7eb71 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5863903a btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb12d2c97 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbafbbacd btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xddd488ab btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xd8dc3093 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xed0aad4b bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x0fb27f96 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x12ab17aa __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1e3fa6da drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1eada3a3 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x06a44d1b hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x090f5e69 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0ea0fdad hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1fb6d86c hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x20d567b9 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x332116a1 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x43734973 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x57f16c9e hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5c6480c6 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5d712681 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5ee2135c hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x61aa4a53 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x696227b4 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x73c760f2 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x78cd56d9 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8d25bd2b hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9614da5c hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9a2b8fa5 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa6254a52 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaf604fee hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdb7cdc7f __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd9bad19 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe1d6c32a hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xec728ee7 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf31bd75d hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf9e675e5 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xa07cb405 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x788bc09e roccat_common_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xb29dbb0f roccat_common_send +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x434252e8 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x5c94608a usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x86b4cfba hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe3993fc0 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x29fc19be i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x2d3b8dc4 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x38370a8c i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x3d387191 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x459179b1 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x97d3204c i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xbf2c3722 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xc6c6debb i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf40aaa9d i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x3ba6d9cf i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x7017cb52 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xb2d29af3 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xd1273698 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xfb23f2e5 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x7d4bb5df adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x0736a5e7 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x096df392 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5ef10df2 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7c510d1c wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8dac7fee wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9525ce44 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xad538ec5 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc533983d wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc5c7f30c wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd879ee56 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xdf4c5b68 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf33cfbd4 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0x0ef221ba omap_iommu_vmap +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0x9b3cf087 omap_iommu_vfree +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0xa0f04fbb omap_da_to_va +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0xb6418220 omap_find_iovm_area +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0xc41919a3 omap_iommu_vmalloc +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0xd13af003 omap_iommu_vunmap +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x28cc5f7c gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x34ade986 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3cdb7533 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x402b486a gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x52ec2e90 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x61505139 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x674ff9c8 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7170da68 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x76c50ee7 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7a4535d3 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7c698073 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x807c5797 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9ff608e0 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa889e1bf gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb4b6afe7 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbe7210b1 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xde3a7210 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +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 0x80b61e17 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +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-multipath 0x03ca88f2 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x9226a3e1 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 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x10f7f7d3 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2b13183a dm_rh_bio_to_region +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 0x4a9402da dm_rh_delay +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 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 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xac12eca8 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb30b0895 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd5c1f90a dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +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 0x03ced457 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x08a936ca dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0a6642c2 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x61c7c085 dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x63b2ff62 dm_btree_insert +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 0x72289260 dm_block_manager_destroy +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 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa6aae3ea dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb967690a dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbaa513b0 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbc5fe7c1 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca2bde4d dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xccaeb9ae dm_sm_checker_create_fresh +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd32479bc dm_sm_checker_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdb562135 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf99dc2cf dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/raid1 0xff301416 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x41b675d4 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xf4f046f6 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x9e53f574 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x67af7a69 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x47e1b8ee tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x9fca971e tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xb1e88364 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x112e5d55 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x77162edc tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xf2b121e3 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x6c9a436b tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xb910db1b tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x5264d782 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-demod 0xdacafd17 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0xd1e7fb07 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x5260dd13 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x360c3080 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x47721dfd smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x512c7ffc smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x76222253 sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x78e0cdbf sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x872389c7 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8acf643d sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8bdfd36f smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9963c66c smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9cd37391 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xaa250500 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcbfa0106 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcc03c633 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xce8acc75 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd43d5f00 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xda7f1809 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe3d21552 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf4bb1cc7 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x05fb336e rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x07a6e154 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0f22383c rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1fff913c ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x28e746c1 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3543ca62 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3ff8364c rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x84fc67ee rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8885b781 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x91516b3e rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9cc7d4b4 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa3257d96 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xabb1a59c ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb0749568 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd674f00b rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xeb7d8b1b rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf5c02ac3 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x21de156f cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3bb3b687 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4b205cb5 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4bd6ead8 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x51805bf6 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x51cc687b cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x8150dd53 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x861fed56 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x910959a3 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa45e84be cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb19bd399 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb399e4a3 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc625c1cd cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc6545d5f cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc790b056 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd2218cf2 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd7f85d1b cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe3040835 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf04907c3 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x15669d27 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x54d5b9ab em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x5d04b502 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x91a09517 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xaa7b3ed1 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xab77b440 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xb8327d17 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xbfe8a99c em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xca7bc0da em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xcb1ce992 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0x149c627c omap_vout_new_format +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0x6e8f579f omap_vout_try_window +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0x9dea2c48 omap_vout_new_crop +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0xd49da048 omap_vout_new_window +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0xfada383c omap_vout_default_crop +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x0c9c3b41 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x6daa5ea1 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xa2ae7291 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xd3cb9c10 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x01e185cc v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x1febbf7a v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x86232a77 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xa43e06ba v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xbb44e22c v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xda333d68 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x268b2c1e v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x3d5965db v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb1a94a1b v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xba851363 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x07052a9b v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x251c8159 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x35fa417e v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x571578c7 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x6439206f v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x666d28dc v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7b9c40c2 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x93a40ed3 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa6438ae6 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xaebb7e14 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb8e36489 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe1a9dbe1 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfc7e9414 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x17f2fbc1 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x185f4ff2 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x20871a52 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x344485d9 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x396b225f __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3b5c19b4 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5d6a04a5 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x63dc81fd videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6868e96d videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x70725b98 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9036a5cd videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x915ffdf2 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x98ab1f00 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9dca2ff8 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa229aea8 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa2dac39f videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa50fd836 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb133a4e4 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb300af06 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd08a9dd7 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd36713b9 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd6e92259 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf014079b videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf797dc3d videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x7abac017 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x91a6f425 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xa52b2f18 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x33e028c5 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x3d80fde6 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xbf6f06c1 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x06ae278a vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x1f6c0332 vb2_write +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x2341e559 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x4c6a0d12 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x66c9cb38 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x7023be76 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x71f97420 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x75f21a08 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x95b18700 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa102bfd3 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa64554de vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa8a00918 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa9020c71 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xae0a5bec vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xce33b1a2 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xe0a49557 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xf94754ff vb2_read +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xdeb8d530 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xe3e994a0 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x2219b340 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x3ca6887b vb2_mmap_pfn_range +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x4f0f1b49 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x611092c4 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-vmalloc 0x81f0d19b vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x01513c57 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0d1be4fd v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0f7e6a22 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x12f7363b v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1e3fc8d7 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x213b1ae6 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2804e82a v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3018952b v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x47fcf648 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5b7d8656 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6cb73ada v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x84797b92 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8d314f25 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa68273a5 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xae68698d v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcd29c52f v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe5749e18 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe95edad6 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xed3b1b2b v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf294c8b9 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf5478686 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf9e869ba v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x29d1d107 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1681e9a3 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x174f56ea pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2dbfb2f1 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6224db66 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x69d7c159 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8f542a5d pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x91087ef5 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa6b88b08 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb2c19a76 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xbf94ede5 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xde0836ea pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x7d5314ee pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xdd5dc173 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x320c341c pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x83161e79 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xabea9819 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xbfb8546c pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xed3abe41 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x111d8f6b sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x19d8e15a sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x78f05470 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa439f747 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa637b5cd sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x08b8dd2e twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x506e4ccd ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x2a4e8040 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x3faaa823 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x549ac47e wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xcd325522 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x08f8ea28 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x09320d3e enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x16e733b9 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3abaf370 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x42ff1602 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x518e92a4 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfda9d879 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x1e761971 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x2fc0c385 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x4cf649ba lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xbbbe79b0 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xc5319394 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xd6d6d041 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xff115eb9 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x40f30a93 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x6251f389 st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x4d8c1e07 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x8b1220dc sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x9683a150 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x9b0d9ea8 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xe7c42480 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xf119d725 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x92e5bd26 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc495ae73 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xed8f55d0 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x14baab21 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x468f5c67 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb988680c cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x7256b82b cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x1f6a910a cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x62abb43f cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xefccdbe4 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x500beb5e DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x19d6462b DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x05c53d69 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xa618b44a onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xf0a42bc5 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x25827ef9 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7bc61eac ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7f3dc258 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x811796c5 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xaf2d9692 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb4b8462b ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xba79627e ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbe8c2af8 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc3a86310 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd81e5b78 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xeaa3da2e ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf54fa46c ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5f31839 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x2b606aac register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x6753b26a free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x929cfe4a unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xfe1be3f0 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x084d7a81 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x093171f4 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x11cc3f27 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x34e5bbed can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x49d0f8db close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7335fc76 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7ddb4a89 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x865f3fa0 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8a4f9686 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x973a025e can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9a7194e5 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcd50ad3f alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0f30309f alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2c1ce7c4 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4c55db77 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x52ee6d4d free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x364e1994 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3a3b9870 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x47e3a534 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x4a057bba macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xac121b4e macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x70b2ae05 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4ecff8dc usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x93462b0a usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xdb925da5 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xfb77cd93 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x08ca8e94 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4e17a24c rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5ca06feb rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x64e54b87 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x65b61681 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcfaec17b rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00b18417 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x069b7120 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0e2756c9 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x211a0e25 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x218e6c3d usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x22318890 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2aed31af usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x36b924b3 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x391bf539 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x55f16eb1 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5dff9c2b usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x68727620 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6bdf7681 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x70559580 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x74952c03 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x92962e42 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x95ee765f usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x991af46c usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9b5cb4a1 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaacf4234 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb2f028f5 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc68f6c67 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf5d3a236 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfcb74ef4 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0c98a759 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x211a6601 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x27fb0d1a lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x46b74426 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x59de09a9 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x73e125ae lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8b339b30 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8ec5bc6d lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8ef4a713 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbcb4c2be lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc0f52856 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc1b80554 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xec18a1f1 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xedf87e88 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xff64da3c lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x196cfef2 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x30a83902 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x69a9b6bc lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x854fda41 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xaf4c2921 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe82ade23 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xec895bed lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf62e7c38 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xbd428e0a if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xda2112f4 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1a31c9d4 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1ab96654 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1b677b74 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3624db14 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x58ecbb61 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x70186ad0 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x957e4f82 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa9ae3059 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc4715498 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xcbe546dc mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe64d3efd mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6dc7654d p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x703775cb p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x91bc06d5 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9670bc2d p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9b5026df p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa592196d p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xacdb334c p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd839b111 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf8cb573e p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x00ccea5f rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x04a424b3 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0a339da8 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0e9dce33 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x17b3b78f rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1fda8fda rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2544a503 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2d29f47a rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3139d89f rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x35cafab0 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x39f6c961 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3f143b3a rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x420585eb rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x538c235d rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5df6e794 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6cb6423a rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8a4e38bb rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x91313b65 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x97c5ec90 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae9c130d rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb4087e4f rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb5ab5df2 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbbcb32fc rt2800_rt2x00debug +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd0d725a0 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd8bb3d48 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd8bcb9e3 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdcf1e3b2 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe2d646ca rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe4475465 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe543db07 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb04dd66 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf06dc195 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf695efc4 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf918653f rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf93b33de rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfc930054 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd611305 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfe82a019 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x05a3122c rt2x00debug_dump_frame +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x07eb319c rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0dc59591 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x114adf96 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1ba0b78a rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1cbb5998 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2361f657 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x23995e58 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x29202e9d rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3109e21d rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3157d15a rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3e4e694d rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x456fd7e7 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x47b885f7 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x486d8b8b rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x52872794 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5322e0a8 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5dde22a7 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x620e468a rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x64dd7f86 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6ae87a4e rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b6b5741 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d0f2c91 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d3e1aff rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6e2e9597 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7226c33f rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7947962b rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7a9067d6 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7f2a9b79 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x887c1c66 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8db444d5 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8e616d5a rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9830bc57 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9f058f57 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9ffd4ffa rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa1df6a08 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa396dccf rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaf2a40f5 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbd93f050 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbdd7abdf rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc54f5fc5 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcc1dde9e rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe8bbd6a3 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeb8af81d rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xefd462ec rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf5360a1f rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfc33adde rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x00a1f669 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1cdce557 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x21560198 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3d5be0ae rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x41ce9b0f rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x425d7632 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x42b91b28 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x476142e3 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x511ee350 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x638c5d2b rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x68dafa19 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9a078708 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa7e283bd rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe4a52b85 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe9923086 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xffea84fe rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x8291df53 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xc240d5c5 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xd20d6baf wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x0b63b9a2 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x224f6fa6 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x23f08e53 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x446ae03a wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x44726221 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x62a89ee3 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xc129d7c3 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26 wl1271_irq +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x0cdae7af pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x2a9f243f pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xf84e46aa pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x1797dd79 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x1a6aa1b6 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9a8fa306 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xa3492b37 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xc0749085 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe76f8e64 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xf99dc686 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x1c12ee97 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3aa1f053 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x676c350e wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x9a453bf8 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xcc0daedb wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe9c54df0 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x6fe1f9ac wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1735a0bd fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x202d9177 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x2dd21b71 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x46afeded fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5d0b330d fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9df48493 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa1dae69a fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc84f6c1f __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf069b7b5 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x821fdbc1 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x952ea946 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa39c0b95 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xb447e1c7 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xd3463e8a iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xd3ab2672 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0135218f iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0222b6c9 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x052411b2 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0832db5a iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x11008775 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2be766bf iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb071dd iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3902e31a iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3df6129c __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3ecac65c iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x405ebc86 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x444d48e7 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x45e88cd2 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5058d2da iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50ee8564 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x51782e55 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53b97ebf iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53e88dfc iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5f76cfff iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x606efbc1 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6199a6d2 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70a9c513 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x766d367c __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7c2f85bc iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7cbee4ca iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x85ebefc6 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8b9692d3 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x980b37f8 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9c482edb iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ee2792c iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8f6f8de iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xacdcc113 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4178bca iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb48f4e82 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb70a8e16 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb8559321 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc51f7912 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd3da2349 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd7f25ecd iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdafe0642 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdf12f619 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xee0bae1b iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf251a163 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x03398aa6 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x04c282d8 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0f9c4523 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1a890ad4 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3aa33c69 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3ca75038 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x427061c9 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5ac9c0fe iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7922d013 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7a839e74 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x82b06db3 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x93194941 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd68febb2 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd964bd87 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xea50fcf0 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xeaf782d8 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1ad9d185 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2eb72728 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x47340c9e sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4f0b6846 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5eb7a5f6 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x666d16a9 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x668c2031 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6dc53edc sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6f521071 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x777ab3f7 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7d95c562 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x819ea7f4 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x89e9fc56 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x942f3ec0 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa2ca0eda sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaca7b268 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb456b5af sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc191352a sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc66bfbb0 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc9249510 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcac23729 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd0fecf00 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd6734ae3 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe49c2a0c sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfb2f7aed sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3b5edd24 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x41e81152 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x51b186c6 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6868666c scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9b3baa24 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xad2d266a scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xda746409 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf38f87ec scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfe36d1b8 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e8552db iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e8b60fd iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x16286100 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d7da4d9 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1dfb4940 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x239199ec iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x28ac7a06 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2e92191a iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36239439 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x473cdb4d iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x503b09d9 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5d75aaae iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x600cf7e0 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6ea61450 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x77d44883 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7eef9a65 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8564db0b iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x85d4ad21 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9983735a iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa38968a2 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa7aaad41 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb735b8f4 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc278a694 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc4354c7d iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdb5bd723 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf527158c iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfd15c65a iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x1ed9e919 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x26c911a2 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xa31b8f78 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xfcd3fcfa sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1ed6b40c srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x6f8a8683 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xaa34b9b4 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xdbb30f37 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xeede2112 srp_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x05b3e7a9 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x9efb66e0 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xaa80df8f spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xe48bf429 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xe8baf416 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xf7447548 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x0b6a6457 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x4b88d9fb dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x7123216d dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xaa4317d7 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xe873fa4a dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x782479f3 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x7d72eea7 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xbd89d0df iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xd560fbdd iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0x35b85807 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x372e6776 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41b6bc80 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x465de46f spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5b6ac139 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6071ea08 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x62f7cea3 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6ae751f5 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8040d91a spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8905e8b3 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9ff94a7b synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xcab58526 serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd2af1d00 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0587b1f4 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x13cbf0b7 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x2227257d usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5319d582 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x65df8ff1 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x782aaff3 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7dc6c90f usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x825570ef dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8418aa8b usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa564f097 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xad552323 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xfb79f404 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xfc0939b6 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x4079b35f max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x5909e48d max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x7de39c15 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x820be39b max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x8445c79f max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xd26aeee8 max3107_rw +EXPORT_SYMBOL_GPL drivers/uio/uio 0x649f37c3 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x696e6d91 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x9fe57339 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x8b1b6bdd usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xacc4e904 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x16a02659 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3ceb5e17 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x668f8fe1 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x79b3fb00 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x99a37b3a usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9a3cceb5 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9d2da662 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe831c330 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfa0daa76 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x031ea56e ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1fee3850 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x32e32c65 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ca1f998 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x499728ae usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x53ab8580 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5dc8f7f4 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9b4c6d10 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa2933fe8 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbc9f7b4d usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbef5dc5b usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc01f3ba6 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xca6baa7c usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xccec9854 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd02e137f usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd53a557d usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd9e815d2 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf52dc02 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe023fa03 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe8f9c220 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf315dbec usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x090c469f usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1f86a215 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x21bad378 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x258d4f91 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2de22f7f usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x37bc8e72 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3c16f7b8 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3d62f98e usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x45ce60e3 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x48fde8ff fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x52b96f7b usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x87c2fdec usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x89bd819c usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8c9b0b42 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8e7883c1 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x907ccda6 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x92da1f0b usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x995b178e usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa32a5c49 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaeed6df0 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe41b455a usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfa866101 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0771c65f __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb47767d9 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc263dc28 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc4b1de50 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc9e857e1 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0dbcdbdc wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0ee81524 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x272083c9 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2c526ef9 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x33c7e78d wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x37c322f2 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6cd2b9bf wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6ec499e8 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7e97afad __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x804c78b0 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8281e9a1 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x860b9aef wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x96c92c06 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9c7619f8 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc4930181 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf0424c12 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x6ee6f731 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x907d05b2 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa270bee6 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x06c35f5a uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x126b8694 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1f088c12 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x274f1232 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e1bf0c8 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x36802865 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x38bd1f02 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4345579f uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x52fa9304 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x554de143 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x58271ec9 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x607a2991 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x65189598 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6d03092b uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7289db68 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7a5bf1b3 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7e7f6f4b uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7ed05e8a uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8d034935 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa75bc5d2 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb1994189 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb53eef58 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb84e7387 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbab6a474 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc323631e uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc53dfcd4 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcc5d1048 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd0635d3f uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd1f7cffb uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd925a480 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xde8df0be uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeefdf2f1 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf48409c7 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf5c10abe uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf9ebb927 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfaea9947 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xffc1637c uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x0660d406 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x684fcaf9 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6e1a4e22 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x9e589a26 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xba52271f ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf97e0e61 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf9e5e24d ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x0a40e825 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x9a06728f fb_sys_read +EXPORT_SYMBOL_GPL drivers/w1/wire 0x50c9cc9c w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x50f3c80b w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x65cc9e17 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x84c94eaa w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa6f777e5 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc4fe072d w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdc9e03ed w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xee07c8db w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xffec2c2d w1_touch_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf3dd11b dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xec763b89 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xf2e8bfda dlm_posix_get +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3440b409 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6d860a7f nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9c54fe4d nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc1423bf0 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xdb2f9014 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1dc5eff1 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x20ae78f8 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2cb42983 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40043bd9 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x47bc770e nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x48030e09 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f7102ff nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x57fa0840 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5bbdc50b pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x63ef7064 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x68c9e9f4 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x69721200 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x772d903b nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7af52e6e pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c1820ad pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7ff554a2 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8477751d nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8a24bf79 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x94b05599 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97087fa9 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97ad1a20 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x99b8b382 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9bc5f192 nfs_commit_clear_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8360a09 nfs4_reset_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb08963d3 nfs_commit_release_pages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb31ab494 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc17a5bcf nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc8ed5409 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc92ca9b6 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xde9a73d7 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe0a1e36d nfs4_reset_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea4ca3f1 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeacd4b0a pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeb663fd1 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed43475d pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xef41e49d put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0ff4a96 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf35a686e nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf8f33922 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x4179251d nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x67fe841a nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00361673 o2hb_unregister_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 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x30359792 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5cbe456d o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5eff066c o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x801dd2b9 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xba785c6d o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +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 0xf531856f o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0145931c dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3f626c18 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5e215e8c dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7fcd9d70 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 0xe9b7525b dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf79456a5 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x379f2a38 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x40c0fa8e ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x6dd99430 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x38df6a90 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x8fef6a1b garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xa4e06a18 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xb34afed1 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xcff856d7 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xf052dc28 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/stp 0x251c8f98 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xc8c0c247 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x062b2cf4 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xdda9a52a p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x621d777c 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 0xf8faf4a2 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d1145ea dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x136f2d4a dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x35ce1b7f dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e24ae8a dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e4fc6a6 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3fd2c4bf dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x43f48558 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55064a45 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5834b9e7 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x619b1cd7 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75395752 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7dedb23b dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8414bc04 dccp_create_openreq_child +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 0x9d23abdd dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3e70332 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa5f75ffa dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa9f6aebd dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xac7c0864 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xafeeca33 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb75825c7 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbad496a0 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbd6a4cfb dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcec6daf7 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2edee4f dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd5ca1bc4 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd78c3aad dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc9bcabf dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdea3f020 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe4e19ef9 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9bb6e4e dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xef227da0 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf94dfe56 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfd556154 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfe63abbf dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0c0fc14a dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1d980497 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x26f081bd dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x95e5ca6c dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb9b7e447 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xea808fcd dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x6bf20f85 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf6abaa8b unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x77eabde2 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xfaf9ed9a gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x60878988 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x99f98f51 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x7fe85bfe arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x673a40fa ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x7c710933 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4e124717 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x66020dfa nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x888be98c nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x909d3cee nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa44f2679 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xeaafcc47 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x0a8b1ca7 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x19fc584b tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x1b760427 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x4504a6ce tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe88c321a tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xb87c3cdc ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x018addfb l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x18391250 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x21420dd3 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x216cfaeb l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x22e0a00d l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4f6e1d78 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5167df84 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb6c611e5 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbe87a294 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xde6149e8 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf62abcd4 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfc5444f6 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x09a551c5 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1d7bf232 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x360f330e ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8ef39650 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xec6dc70a ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xee2333a9 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf65bba3e ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfb5f6064 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x288e7a1e ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3bd82539 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4055622d ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x44b548ba ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x47a8163c ip_set_get_byname +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 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8aafdef9 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9ca6d85d ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa26ab81c ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa53fc707 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa7f5c049 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc1896f88 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc5f9b62f ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe18ba72c ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf6df332a ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2d777215 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x8fa4c88c ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x9a13d1e2 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xd98d44da ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16d2fd15 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x198c49e2 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f1bdf75 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24e49f97 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b01439a nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30a4e023 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35c22a2f nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3849bdcb __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38716e8f __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d9efc95 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f014550 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b2f444b nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4bb0b62a nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x51b09ca1 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58061d4f nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b3a003f nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x622dad41 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a6bf733 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c4d3d95 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75d1fca7 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x799f21a8 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7af8da19 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7dac3c5f nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e23e67a __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f90c4ee nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ff8e880 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8446f04d seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8920316f __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8bbf4695 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8bda12c4 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c74534b nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91a26f87 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9834862a nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0d0a122 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3940d05 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6c9e59a nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa7502a77 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa948839 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf4df6d7 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb29dea21 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2ec5b42 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb47c9d8b nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb4ac533e nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5c69422 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1d7245c nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc3fdc035 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0de79ac nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd72afb0b nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9216d19 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdac18bf7 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3cd6eb8 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebdd2b77 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xecf67ea8 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeefdeb79 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef2c0940 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf18c7b29 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf8a40a21 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9f96e43 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x481d0139 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x6a678b37 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xc6f13509 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x07b07a0a nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2e27484b get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x314d0b79 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5f84678f set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7042e305 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7a36d220 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9b47f036 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb8244e26 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd2b7b463 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd85df3d2 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xe4674884 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2071575c nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7b91c5c3 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa69e33c0 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb482eb2c nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x077e229c nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x8fdd0a55 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x06bcc81c nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x072d4abb ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x19899305 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x36666ab7 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3d46587d nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x47924dd1 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5a24b6f7 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6750aab6 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x90a338e2 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x92cd59fc nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xacb1dfc7 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd5f4b223 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xeeb7ed41 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xbac94e75 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x5ce5bf81 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xd32c1bd7 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x12ba4f7f nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x55d11193 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x941de0e1 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdf6f4329 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe5470d63 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xea88e164 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x0a754b90 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x01c76de4 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x082dd1b0 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1adeff2a xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b3e1f08 xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4a6658db xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4d169609 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x566ea079 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5b7aef9e xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x614322fa xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6cbfe9b1 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x846f4629 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8804de69 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc08a10ac xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf3930a5e xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x563d999b xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf6afa81c xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x12ef80ae rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x13841b73 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x13c16184 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x25c3b843 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x40495da9 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x417f7987 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x4381d763 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x59d308dd rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5ae7ab84 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x5e397623 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x64dce96f rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x6947f82c rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7948b834 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x961033a1 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xab27a67e rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xc14dff73 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xc18fb313 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xc276e203 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xca630332 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xcacc90b6 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xd429420a rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xdb207a57 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xe37bb313 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xe3ce2e0f rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xf5f2ee5a rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x1c504e90 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xfee5459b rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x034e954c gss_mech_get_by_OID +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x209f950b gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2e4b3702 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29 gss_mech_list_pseudoflavors +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3a98549d gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5546cd8a gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x671c96a6 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x89ddfdf2 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x952f7dbc gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9838a001 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb17ee76c gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd2ecb50b gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf1090c6f svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x011857f2 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0196f60b svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04884330 rpc_lookup_machine_cred +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 0x075ec47e xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0974e8b4 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d681618 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e088247 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e65ec85 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9dabb1 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x108bb146 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11bcb2d7 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13034966 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x151da779 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1589d57d rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x191d3939 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19e8eab7 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a86f6b4 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c0a9208 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fe84ed8 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21b3e47f rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25a88b7b rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x297d6b80 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2dc4f830 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f20928b rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x312ef97e rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3178dde3 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x320bffd0 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x324e4a00 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37e0bf71 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3aaf2759 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b18068a xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cd2a47e svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ee06f94 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ff9609d rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41f46514 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43113ce5 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43930f23 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x454ef907 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x457eea89 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46b0d746 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x481e692d rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49925524 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c13f9c1 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cb38d51 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ebbfa74 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53d1ff5f svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5596c26e rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56ce5bf1 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57d36f03 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59c09ac7 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5abf6cf9 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5de15841 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60dc3829 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60e90a70 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63489266 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63ca2f53 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64654bd1 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x673dc282 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67747be5 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67752077 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x687f5259 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x690ac893 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b3466b0 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d1b2aba rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ddd4d90 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x709f275c svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x736fd20e rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7429a1a9 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74525970 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74e66498 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74ed2313 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75b4dcd2 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76e2401f xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7893a87a svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78d289be svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7cc44337 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fa0a35b sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fd075b3 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x801b0f90 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81784630 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81af362a rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8361b6a4 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x862a2a5e rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8974a3e4 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x899d5f4d svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89accfc9 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8df77037 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x907d0903 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90a78a83 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90b8eec1 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9240e4a8 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93803286 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x939efa56 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9458615a xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x957dd2df csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x981777e6 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b877fa xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bd34678 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cccde12 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d0f7190 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f51b80c rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0eec596 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa157a84d rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2cbe1dc xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5804bcd xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7550720 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaba3c21d xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac6c3332 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad7d1f4b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad847012 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad8efb96 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaedc293d rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaedd2f08 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf27a192 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3a71ae5 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb58b44fc cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb606760f rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6ca693c rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba888710 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd7f9fa3 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe324d9b xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5695577 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5baf4df rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc62b3cc7 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc883cca0 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca433397 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce25c79d xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd011a74a read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0258f8a put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0a504c9 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0db17ab rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1d1d1d6 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4685c1a xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd60c1cfa xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd66de571 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd95ae0c0 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb469ca3 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbdf5104 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde065152 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe338b199 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe34fbabe svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5935236 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6e94d4d rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe903e222 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeada4ef1 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb1b3729 auth_domain_lookup +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 0xf205dc8a cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf977465f rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9acf709 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb05ca0f bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe76e7c3 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2102144d wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x289c8261 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x297723c8 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3207d7c1 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7352b315 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa4e9a86e wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa66459ea wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb2788ea0 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd2fefe91 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd36f8631 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xdaae642f wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xee5547f5 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfe7eedcf wimax_msg_send +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1c57299d cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2409a803 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x259f1bbc cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x34629ceb cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3d4cf206 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6d074a59 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x83840c00 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8e5d9c8e cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa2520ab0 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xba8a6f07 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xca4791fc cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x298a28a7 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x33fcfc7b ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x70b29620 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd65760c9 ipcomp_init_state +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x4a411148 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x901b0abf pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0xb22d369f v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x2408f291 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x02aeb5e2 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x4e3a2c0a aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x6785206f aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8d7774ce aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9c63a4c9 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x6fefb0a5 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x789285e3 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x3b578544 twl6040_get_clk_id +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x6aaa7ad6 twl6040_get_trim_value +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x8683168f twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x7999451e wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1d420d5f wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1f333680 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5cd7eb9b wm_hubs_dcs_done +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xef86aa23 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xed22a43b wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x759e8916 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xf7cd4077 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xb8ffad2c wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x5537c740 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x38b920a6 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xbc7d285e wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0xebb14060 wm8996_detect +EXPORT_SYMBOL_GPL vmlinux 0x001409e7 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x007bb637 put_device +EXPORT_SYMBOL_GPL vmlinux 0x0088a193 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x00a21e1f mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x00acbf3c snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01065550 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x01181467 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x0118a772 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x011a897c __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x011feeaf device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x01249cf3 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x0139d34c fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x013a129b omap_dump_tlb_entries +EXPORT_SYMBOL_GPL vmlinux 0x0148adb6 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x0153747f debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x016166a1 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x016c5c01 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x016cd18f tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01782189 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x01a11c59 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01b1d8ad wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x01c6cb0c cpu_cluster_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x01c9e308 default_mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01fb1fac inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x0208e49d tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x021f88d6 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x0242eec8 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x02758432 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0277e39f spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x02c8a5e3 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x034d4adc scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x0372dd8c security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x0411aef2 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0430b406 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x0437015e spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x044ed531 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x045b0558 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x0461e5d0 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x04927791 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x051bd65c elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x052e43c1 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0547d8e3 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0561dfe3 regcache_read +EXPORT_SYMBOL_GPL vmlinux 0x0573b2d2 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x05a6a3c7 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x05ae262e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x05cffeb6 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x05dd60f8 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x06153dd2 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x0616a4f7 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x063450d5 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06510a0f modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0672cdd2 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x067407f2 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x06a10f73 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x06b0585b register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x06bc4b99 sdhci_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x06c06260 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x06ca6a30 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x06f57384 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x06f88a97 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x0722b90f ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x072f8d7f ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x079df8fe xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0822b95d ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x083ce29b omap_mcbsp_st_add_controls +EXPORT_SYMBOL_GPL vmlinux 0x087ee4e3 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x08874a0c cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x089d23c0 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x08a72f20 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x08ad6e6f cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x08b0a176 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x08c3f4cf rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x08d0a8a4 md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09245d1f tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x0958e3fd __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x098e9829 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x09e11896 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x0a359f6b trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x0a387f80 __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x0a6fa376 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x0a866d07 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b15e68e inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x0b28defb kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0bd33fdb lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0x0be6fdad posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c1bf836 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c378adb sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x0c6e482e css_depth +EXPORT_SYMBOL_GPL vmlinux 0x0c8c108b scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0ce2f4ca __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x0cf00315 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x0d0c109d of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x0d168486 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x0d30ea61 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x0d78a205 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x0d7f3af5 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0dc5d642 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x0dc88680 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0e38e132 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x0e6c89f5 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x0e7b8d26 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x0e99cf81 xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x0f559c60 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x0f587e70 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0fb38263 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x0fb64bd2 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x0fdbdbab irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x0ff9ba0c dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10372b0d snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0x10541c37 mtd_del_partition +EXPORT_SYMBOL_GPL vmlinux 0x1056e3b2 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x105ce618 omap_dm_timer_read_counter +EXPORT_SYMBOL_GPL vmlinux 0x10686a4e tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x10bdfa17 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x10c355f8 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x10e05ec5 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x11001987 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init +EXPORT_SYMBOL_GPL vmlinux 0x112c2091 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x1137bcf8 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x1142c578 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x1147e1d1 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x11692179 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11ac71b6 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL vmlinux 0x11bcefb2 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x11ef7d4a snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12a30954 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x12d18684 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12ee0bb7 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1308cc97 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13234bc5 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x13500915 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x1355c47b attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x13732399 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x13843f12 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x139d482f flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13e5278a kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x144db879 sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x146f3688 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x149b8f34 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x14d5945d of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x14f65603 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x15187452 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x152effc2 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x1537422f blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x1545f4de register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x1556756b usermodehelper_is_disabled +EXPORT_SYMBOL_GPL vmlinux 0x1556d107 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15a19ab0 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x1625eb3f input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x16283af9 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x16406098 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1655bb05 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x1689f7f3 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x169610d4 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x16e13cc2 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x16e28690 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x171a306a sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x17393c9f rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x175fe2b9 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x176732a6 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x17a644de kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x17cde3e6 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x17daf706 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x17e8b93d snd_soc_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x17f072b0 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x181361a9 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x187a8eae xv_malloc +EXPORT_SYMBOL_GPL vmlinux 0x18e2c347 dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x18f8620d usb_string +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x19409aa8 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x1972cd04 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x1985b6c6 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x198c6406 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19d4feb4 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x19fd9136 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a65920b omap_iommu_arch_version +EXPORT_SYMBOL_GPL vmlinux 0x1a839304 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x1a8e7689 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x1a944070 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x1aa2bfe2 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x1abb7393 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1ae0e135 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x1b0c82a5 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x1b3b8779 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b55af50 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x1b793a0a get_device +EXPORT_SYMBOL_GPL vmlinux 0x1b913e2b sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1b96636c fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x1b9794af rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bbacc7c crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x1bd7f702 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x1be5652c inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c9f887b bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x1cac1e75 wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x1d177890 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x1d4c0a7f snd_soc_add_controls +EXPORT_SYMBOL_GPL vmlinux 0x1d52e208 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL vmlinux 0x1d8f2b91 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x1da909c9 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x1db58f41 nand_release +EXPORT_SYMBOL_GPL vmlinux 0x1dd2d9db securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x1df544b0 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e4adc5f sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x1e4dae3f devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1e745ccd inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e8403d8 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x1e9966de iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x1eaec788 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1eba928f ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x1ee9814e irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x1efbf353 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x1f37286e register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x1f7853e3 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f951aaf dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd699aa tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1fe62f5b sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x1fe6cd62 omap_dm_timer_set_int_enable +EXPORT_SYMBOL_GPL vmlinux 0x1ff9bd77 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x20091bc3 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x2027bdef ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x204280ba ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x20511ea5 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x2051d81f usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x209cd173 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x212d881f snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL vmlinux 0x217290f3 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x217d30e8 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x2193b8a2 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x219dadb2 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x2236d585 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x224619fc add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x224bc0ab register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x2278bc43 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x2305e3a3 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x230e0698 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL vmlinux 0x231e52f7 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x235ce1ad blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x236b4395 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23b90f16 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x23bef245 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x24408556 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x2445986e usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x244f67fa skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x246945f1 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x247715ea snd_soc_unregister_codec +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x248470cd apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x248738e2 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x248a6ad0 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x24910c5b inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24cd57ab elv_register +EXPORT_SYMBOL_GPL vmlinux 0x24cfcf80 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x24daacef __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x2511ae97 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x251dfdac blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x252e43b4 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x25391c84 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x2558e71a xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x25a7faa6 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x25d1b79e pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x25e3696b get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x26297aaa ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26413b2a dapm_reg_event +EXPORT_SYMBOL_GPL vmlinux 0x26765503 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x2679a70f each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x26abff41 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c39dab vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26dc20ba omap_dm_timer_write_counter +EXPORT_SYMBOL_GPL vmlinux 0x26ef26a4 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x272e2dc4 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x274d7076 unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x2901a718 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x290445c6 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x29164b63 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x292db98b ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x2972ca21 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2988b312 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x299dfbd6 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x29a0baa4 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x29b3263e usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x29be45a2 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x29c2750e usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x29f65cc2 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2a29fe8e bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x2a5748c9 cpu_pm_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a76a393 of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x2a90aa25 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x2ac92334 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x2ad0b22d scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x2b2257a6 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x2b26d867 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x2b6ae537 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x2bc77a33 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x2be2815f tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x2c0dc18b filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c63c5f0 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL vmlinux 0x2c6432d2 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c871f01 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2cf5a588 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2cf65c85 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2d1b497b ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2d2a904d usb_del_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d74133d nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x2d8700f8 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x2d9677d0 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x2d97cb6d __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2db2c797 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x2dbb43e6 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2dc142ee omap_dm_timer_disable +EXPORT_SYMBOL_GPL vmlinux 0x2dde9980 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2eda5071 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x2f3892f6 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f6176cc tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x2f7934e8 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fc27e27 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fdfb445 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x2fe7c4f5 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2fed052a netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x2ffff341 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x307550c7 get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x3084c149 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30a9fe70 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x30b629fa __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x30d514aa hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x3108ea46 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31422ae1 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x3170de6a unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x318d2df4 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x31a820ed register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x31bc7b23 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL vmlinux 0x31bd5724 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31f7115c i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x32358761 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x3264d84f inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x3281475d unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x329a99b6 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32cb7f26 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x3312d9a2 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x331fd4c5 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x33543801 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x33a5c896 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x33bbd9d2 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x33c6f364 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x33e8c6c2 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x33f70397 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x341643ba omap_dm_timer_modify_idlect_mask +EXPORT_SYMBOL_GPL vmlinux 0x34243068 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x342d21bf device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3448cfa3 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x34612d90 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x347a9f88 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x3483eb92 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x349e5187 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x34cd4fb4 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x34d490c0 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x34f97f22 return_address +EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x3577893c usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x357bed0e driver_register +EXPORT_SYMBOL_GPL vmlinux 0x35849981 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x35882aee device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x360568ac device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x36216d28 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x362c752b irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x362c9993 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x3659785b wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3659c0f9 mmput +EXPORT_SYMBOL_GPL vmlinux 0x36871f1a da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36e190a4 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x3705e8ec cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x3708d588 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x3763b1e4 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next +EXPORT_SYMBOL_GPL vmlinux 0x3785edf9 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x380d1167 task_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x3849cda8 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x386b341b pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x38968910 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38b2b611 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x38d30eeb task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x392f1009 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL vmlinux 0x3969bf31 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x3977f443 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0x398fd9db blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x399ec80b sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x39a391d5 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x39b59ff1 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x39b656a4 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x39d3d550 bsg_goose_queue +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2a0af0 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x3a416cc2 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a523ee8 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a64a7d8 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x3a741591 omap_foreach_iommu_device +EXPORT_SYMBOL_GPL vmlinux 0x3ab92b48 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x3abbdd50 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3afd247b inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x3b2c1d7f relay_open +EXPORT_SYMBOL_GPL vmlinux 0x3b38db38 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x3b53c5ca crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x3b59bf51 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x3b657c56 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL vmlinux 0x3b889519 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x3babd160 snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0x3bac93ed tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c25c74a trace_nowake_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x3c819493 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d5e5937 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x3d63f44e usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3d663b0c md_stop +EXPORT_SYMBOL_GPL vmlinux 0x3db21447 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x3db91586 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dcb60cb skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e10dcee debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x3e2baebb snd_soc_jack_get_type +EXPORT_SYMBOL_GPL vmlinux 0x3e50e6cf inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x3ebb4da7 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x3efab129 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x3f02ca87 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x3f210e75 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x3f217a32 snd_soc_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x3f3c4d22 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x3f620a84 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x3f69c73a unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x3fe22b1f single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x40102d29 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40b41dc1 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x40ba3104 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x40c61d95 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40d6e1dd snd_soc_write +EXPORT_SYMBOL_GPL vmlinux 0x40f3bdd7 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x41389e90 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x41750274 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x4180aab9 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x4180dd60 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x41854679 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x41ac4664 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x41af18ee deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x41dd681b perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x41e1f656 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x41e22b0b pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x41e69e0d __put_net +EXPORT_SYMBOL_GPL vmlinux 0x41fc3dc0 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x42aed2dd spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x42deb272 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x430ff0f1 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x4354e20a fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x43567af3 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x43c77fce irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x43d6ff09 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x43da5f22 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x43de0b12 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x43e871dc md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43f62c7e ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x445a3172 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x4482a4e4 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44bcfa6d system_nrt_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x44be36ca ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x44d08195 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x44d66ad8 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x44e69afe spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x44f3235a __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x44f54d78 omap_dm_timer_set_pwm +EXPORT_SYMBOL_GPL vmlinux 0x455e46ea fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x4561fee3 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x459c7bdc sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x45b86af7 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45e96608 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460f4234 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4624a7a7 omap_find_iommu_device +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x468aacc7 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x46912e69 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x46a9dfe3 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x46daf5d9 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4738983a snd_soc_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x474359b6 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x47b91979 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x47c149ab queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x482f3c38 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x4857a277 sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x4865f9b3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x4877bb9d usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x488c7a4c shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48cf26a9 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x48dbcee6 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x48fde69e __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x491bf3ac cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x4921a252 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x4928b8d4 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x4946da71 omap_iotlb_cr_to_e +EXPORT_SYMBOL_GPL vmlinux 0x495f14bf scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x495f51ea fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x497bf197 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49b2737a regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x49d6ee1c filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x49d7a43c __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x49e3598d bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x49e6fb30 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x4a1aa1c6 snd_soc_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x4a64a95a usb_gadget_probe_driver +EXPORT_SYMBOL_GPL vmlinux 0x4a9dd17d omap_usbhs_disable +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4b08b874 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x4b2d343f handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x4b83a43a dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bddbe67 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x4c132182 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x4c6647ec device_move +EXPORT_SYMBOL_GPL vmlinux 0x4c6db190 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4ccd6318 omap_dm_timer_set_source +EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x4d74213a tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x4d809767 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x4de44884 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x4de81ea1 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x4df66c0b fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e234c64 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0x4e26e709 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x4e3e09cf usb_add_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x4e522d05 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x4e7df11b irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4ec6f511 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x4ec9f969 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x4ed28e94 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x4ef5a025 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f04944f snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0x4f1cc6f5 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x4f1ccf7d dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f988e5f led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x4fadcd34 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fdd8fc5 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x5013e6de pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x501402c6 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x503f8591 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x50fc5c72 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x51276f62 __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x515cb16b wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x5194eb7b ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x51b7b372 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x51be76b5 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x51c8a6ad usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x51d39fe5 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x51ea4a87 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x51fa4300 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x5200dd0f usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x521d66a6 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x524a7826 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x5254f437 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x525ce46e tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x52627669 blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x52701804 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x52c7dc11 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x530c46d4 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x536f265e watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x5372f6a5 omap_dm_timer_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53e38012 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x53f260d5 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53f56265 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x542f11bf crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546537bc __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x547441b0 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x547d6f04 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x54853294 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x548746ed sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x54875c7c class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54b811d3 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x54bfc409 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x552567c0 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x555d31f5 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x556781a0 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL vmlinux 0x55bddab8 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x55ce1c75 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x55d2416d stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x55e882b7 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563b2547 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x563cadec do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56b868c8 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e9103b cpu_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x56f6329b usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x572a9ab2 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x5776820a omap_dm_timer_set_match +EXPORT_SYMBOL_GPL vmlinux 0x578fe4dd cpu_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57f72cef blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x57f9bbfc snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x58503856 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x59158804 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x591a30e6 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x595586b2 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x59767c6d i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x5977484b bus_register +EXPORT_SYMBOL_GPL vmlinux 0x5984402f fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x598ab98e wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x599d0cb6 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x59ab8d0e leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x59b412e3 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x59d1d790 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59f5c559 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x59ffaee7 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a847815 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x5aabcf9c __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x5aae84c7 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x5b216266 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x5b22cc45 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x5b3e0977 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x5b626082 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x5b691fb2 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x5b773c2c shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5b851e1f snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0x5b956fbd uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x5bac4554 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c16d6d7 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x5c506bd8 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x5c976a10 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x5cadf146 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x5ccfab59 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x5ce17f47 snd_soc_default_writable_register +EXPORT_SYMBOL_GPL vmlinux 0x5d08dde7 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x5d4544e8 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x5d594729 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d88cc43 sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0x5d91bdcd led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5dde1e46 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x5e1344f5 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x5e3c8e8c i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x5e5a5f27 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5e6283dd usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x5e80f6da fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f31b4ab snd_ctl_activate_id +EXPORT_SYMBOL_GPL vmlinux 0x5f41b708 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x5f46d244 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x5f551108 sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fd40d82 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x5ff768ec fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x6009e591 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x60322e22 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x6035d556 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x6042b71b snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x609350d0 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x60ab55fb user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x60d33e6e snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x60e2722e pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x615ff4c8 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x616d5032 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x61f5d717 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0x6235cf49 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x62470cac regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x628c4e77 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x62bcf259 blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x62d1fd70 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x62ea44f1 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x63043874 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x632dee9e ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x6387abf4 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x639513ac securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x63c583f5 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x63cfca9c mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x63f1335b get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0x640ad778 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x6420e198 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x642f184e blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x645e56d0 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x647879d8 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x64884e0f blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x64f46f6f usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x652be58c spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x65338464 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x65610417 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x6578fe44 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x6579fee5 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x65915aee put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x659728be usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x659da6b2 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65c4c836 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65cfba41 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x65d33e29 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65ea3808 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x65ed41f0 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662cc7c0 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x667f3add ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6694317a cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x66adf916 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6711acc6 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x676d97b5 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x67936ecb __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679ae4eb rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x67c7d8a6 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x682ca521 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x68644a02 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6896fe63 input_class +EXPORT_SYMBOL_GPL vmlinux 0x689bf79c crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x68be26d0 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x68c0df94 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x68c3708d exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x68c6c498 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x68f1ebf2 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x69212c75 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x692ad41f fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69ab36bb max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69fd79cc ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x6a224e61 mtd_add_partition +EXPORT_SYMBOL_GPL vmlinux 0x6a37cef7 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x6a4e6021 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x6a93b0da wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6aad80c0 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6b16371a dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b2f863e seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x6b4fe001 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL vmlinux 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL vmlinux 0x6b7a54c7 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c805f72 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6cc9726f snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL vmlinux 0x6ceba8c1 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6d3b1490 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x6d77b29b __class_create +EXPORT_SYMBOL_GPL vmlinux 0x6da7652c cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x6da81cba ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x6e1d8988 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x6e6b5274 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e78c142 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x6ecc9a6e kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x6ef1820e release_pmu +EXPORT_SYMBOL_GPL vmlinux 0x6f02b64e wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f3ee6dc usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x6f537396 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x6fbd752e snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffe1550 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x70077535 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x70308856 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x706a59d7 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x7083a608 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70da38ad device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x70dfadea rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x70e1f840 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x71220307 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x712da0b5 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7196a281 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x71af8cb2 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x71da1248 of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71eeb9ec omap_iommu_save_ctx +EXPORT_SYMBOL_GPL vmlinux 0x7217604c sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x722304ed fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72820903 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x72b558ed scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x72ced21a pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x72dc1c47 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x72e19e16 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x730bd0c7 asic3_write_register +EXPORT_SYMBOL_GPL vmlinux 0x7375f5c7 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73fad6e7 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x7438a810 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x746927d8 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x747ee1a8 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x748d801a pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74dca3ec usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x74effa39 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x74fc6f98 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x751ff7a0 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x75208007 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x7550c360 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x755b0e2c usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x756b81b6 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7573704e debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x75b20f59 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75dab5ce ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x75e1a8ee i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x760c7d9c fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7633b31c unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x765bf82b usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7665feac __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x769d1867 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x76a8b103 snd_soc_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x76c0ecc9 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x76dbafc7 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x77141c4f blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x7746b665 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x7762bb3e snd_soc_cache_sync +EXPORT_SYMBOL_GPL vmlinux 0x776deec5 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x776f02e7 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x779efe9b vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x77e904be crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x786e83d7 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x78da6843 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x797802cd ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x798ca00c ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x799dc1cc relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x79b8f91a mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x79d476e4 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x79fea0b3 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x7a09feea tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7a2e4b44 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7a45691c init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7a48c005 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x7a99f14a platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7abafd65 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x7ac04e5b omap_dm_timer_trigger +EXPORT_SYMBOL_GPL vmlinux 0x7ad85608 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b29f12d get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x7b3b1292 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x7b572b30 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x7b59b0ff kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x7b6d94b8 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7bb9de8f ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x7bc91073 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x7be7972c shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7c119006 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x7c3d63cc max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7c5bb835 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x7c5e6851 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x7c728767 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x7c8ce73b led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x7c96d7ee crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x7ca0248e __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d398fdd led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d64c692 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ded61ab sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e277415 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x7e47e7b4 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x7e590ef3 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e67d00a devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x7e962d4b usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x7e9b5cce sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x7ed2bae7 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7ed68941 asic3_read_register +EXPORT_SYMBOL_GPL vmlinux 0x7ee8f4f7 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7ef4c90b vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x7f0ad2f4 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7f562291 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x7fd38778 armpmu_get_max_events +EXPORT_SYMBOL_GPL vmlinux 0x7fdf6d59 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x7fe8565c shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff3d989 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x801a60e5 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x803d6879 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80975bcf __css_put +EXPORT_SYMBOL_GPL vmlinux 0x80c9049b del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x80e9d637 omap_install_iommu_arch +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x8103ce48 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x81426594 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x815c9f78 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x815e467b inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x81d6a3b0 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x81e0bfde crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x8217b3dc crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x822fdb89 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x8236c93a led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x823a2872 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8242ac6e css_id +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x82736c0d sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x82796b49 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x828dcbec ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x83760fd5 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x837a33c4 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL vmlinux 0x837cd63e crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x838b077d snd_soc_cache_write +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x839565fa otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x83ce82eb get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x83ffef4d wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x84239aad ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x8469417c sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850ca2d2 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x85216155 ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0x85326327 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x85410e2c wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x854e9dac ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x855935d6 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x857f0cf2 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x85a32f67 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x85a33fd0 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85e3db5b firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x860a1193 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x866ec891 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x8673429c usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x8688f65e sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x86f8c910 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x86fd4790 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x87111807 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x87235cd5 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x8767fb0e cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x877b9fa3 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x877be82f scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x87814862 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x87b3b6e7 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x87c12fd8 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x87d71776 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x881d3a47 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x883ca913 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x884ed394 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x88aa3e4c snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88ed172a invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x88f43250 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x89381409 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x8944f9d9 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x894912b7 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x89508119 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x895d1d8b wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x897105d0 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x89ea8a5d regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x89ff43f6 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x8a0117ac spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x8a0195c9 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a767df0 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ad888f5 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x8adca163 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x8b5fbe32 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8bfb05a6 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c13b8e4 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x8c26f943 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x8c3cb3f6 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x8c7c2ae4 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x8cad31e6 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x8cd0c72c get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x8cdec7c7 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x8d0f9f0c pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x8d88c084 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x8dad55e8 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x8db214f9 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x8dc9ac19 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x8dfc8aeb netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8dffc7fc inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x8e39ef67 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL vmlinux 0x8e7648a1 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x8e8b4fcd sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x8ea33b19 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x8eae3709 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x8ed57053 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x8edfdd90 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x8eec21c4 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x8ef998cd get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x8efaa59a snd_soc_read +EXPORT_SYMBOL_GPL vmlinux 0x8f07264a wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8f263dc6 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f6ef8c5 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x8f89f986 snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL vmlinux 0x8f99671f cred_real_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x8fae240b __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x8fbd30c5 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x8fe1b83e sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8ff01d37 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x90136cd7 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x90249447 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x90311bbd pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x903589ca dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x90557792 device_del +EXPORT_SYMBOL_GPL vmlinux 0x90567e30 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x907bedd0 mddev_check_plugged +EXPORT_SYMBOL_GPL vmlinux 0x9082d068 kprobe_decode_arm_table +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90c28251 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x9126c3a9 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91b2a876 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x91c6e5b0 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x91dda801 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x926ff79b sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x92734eb1 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x9290698e platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x92ab390e fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92be3b8c snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x92c85883 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x92d1b30d crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d73cca __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x93321851 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x93347585 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x93b5d390 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93eb7205 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x940b4a78 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x9413d280 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94287fd4 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x945e5d25 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94a7c7ee rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x94f6262b relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x951cc7f7 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x9526630b snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x95366595 omap_dm_timer_stop +EXPORT_SYMBOL_GPL vmlinux 0x95555ec4 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x95c578a0 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x95cb9f60 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x95f412ce net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x95f6ee15 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x96157a33 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x9615af8b crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96253699 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x96592393 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x967bd0bf ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x96a06d17 irq_domain_generate_simple +EXPORT_SYMBOL_GPL vmlinux 0x96a48114 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x96b6a384 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9705b962 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x9711fad5 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x9738e074 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x976d0e8c crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x97b13dad __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x97dbe865 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x97f45a85 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x9804a5aa hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x9818958e simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9856ed42 md_run +EXPORT_SYMBOL_GPL vmlinux 0x987c5777 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x989c7bfc __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x98a6fc3c sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98d048e7 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x98fee210 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x994327cb device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x995b38b2 mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x995eb40e omap_dm_timer_read_status +EXPORT_SYMBOL_GPL vmlinux 0x99794180 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x998c4657 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x999edb7f cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x99b84d77 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x99bb5b6a ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x99ce0ea4 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x9a081404 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a25cae8 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x9a3ad699 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x9a4e4af3 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x9aaf803b of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ac806fc inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x9ae66613 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9aee6972 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x9afb2952 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x9b98add9 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bc4acdf sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x9bc66d51 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bdd9c01 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9c169979 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9c2d257f driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x9c386590 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x9c39333e snd_soc_limit_volume +EXPORT_SYMBOL_GPL vmlinux 0x9c4b469d user_read +EXPORT_SYMBOL_GPL vmlinux 0x9c5a7a18 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x9c6270aa usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cd35090 of_property_count_strings +EXPORT_SYMBOL_GPL vmlinux 0x9d0dbc0e unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d1a5e9f of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x9d33994e snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9dbfd7c8 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e4f1cfb ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x9e52aa22 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9e764e28 mtd_device_parse_register +EXPORT_SYMBOL_GPL vmlinux 0x9ea3440f blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x9ee30f15 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x9ee9ca86 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9f2a37d2 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f42c14e device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9f70cc3a __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x9f775e68 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9ffb68c4 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa05a170b musb_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xa0fc1078 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xa0fc54bc tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xa12b66ba shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xa14abc5a raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xa187b0a9 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xa188d6d0 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xa19a2a2f key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xa19d063e sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xa1b50b3d class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa1cb1dce register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0xa1cbecf6 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xa1d82a68 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xa2395eb1 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa2613547 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL vmlinux 0xa2c26107 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xa3054dd4 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa3b2c97a __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xa3e33dae snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3f468bd i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xa3f4b178 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa449e909 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xa45df0c4 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xa4642296 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa48fd561 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xa4ad4c3d snd_soc_register_platform +EXPORT_SYMBOL_GPL vmlinux 0xa4c960a9 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xa4cc2a77 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xa4f44118 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xa53e653e sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xa573dbc6 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xa58cc4a7 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xa5941fdc sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xa59c2443 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xa59e667f unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xa5ba7e4e ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xa5bcce22 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xa5d1166b sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xa5d6c97f security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xa5da6fd1 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xa5dd6fae arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f75747 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa6086901 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xa64cd82f usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xa665b34e snd_soc_platform_write +EXPORT_SYMBOL_GPL vmlinux 0xa6c9ff97 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa6d56e20 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xa6d778e5 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xa6f7db17 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xa6fccab8 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xa7032ad9 user_update +EXPORT_SYMBOL_GPL vmlinux 0xa7516e7a crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xa7764f12 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xa7eef297 snd_soc_resume +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa810de23 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xa8225261 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa8334953 omap_usbhs_enable +EXPORT_SYMBOL_GPL vmlinux 0xa8675f63 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xa8818779 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL vmlinux 0xa882a879 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa89b584a of_property_read_string_index +EXPORT_SYMBOL_GPL vmlinux 0xa8d9a9be regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xa8da9a3d spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa920332a rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9693fce ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xa975f8bc pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xa99fa6c9 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xa9bfe6fa snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9c6eaaf spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xa9e8c55e alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xa9fefa81 device_add +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa852c93 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8818aa power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab93863 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0xaabb2a9c ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xab1807c0 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xab3048bb kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xab38187a ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xab540ed5 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab82f709 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xacac44d7 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad124da4 omap_dm_timer_start +EXPORT_SYMBOL_GPL vmlinux 0xad181883 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xad2642c9 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xad4d6a23 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad7cd5a2 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xad8d514b usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadae08b2 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xadbbad51 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xadbcea57 omap_iommu_dump_ctx +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xade77fca class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xadf58ec4 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xadfdfa74 snd_soc_register_codec +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae1e69b0 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xae363e1a inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xae3d7a87 sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0xae88816c ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xae9dc730 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xaea425e6 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0xaeea3073 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xaef524d0 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xaf348da7 cpu_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xaf6099c4 omap_dm_timer_write_status +EXPORT_SYMBOL_GPL vmlinux 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL vmlinux 0xaf7372a5 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xaf894784 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xafe73fad snd_soc_cnew +EXPORT_SYMBOL_GPL vmlinux 0xb004e8b3 tps65910_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xb04a9940 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xb0629e05 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xb088dc59 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0c39cd9 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb0d44905 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb15e7851 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb19e83f1 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xb23994c3 usb_bus_start_enum +EXPORT_SYMBOL_GPL vmlinux 0xb2428097 omap_dm_timer_request_specific +EXPORT_SYMBOL_GPL vmlinux 0xb28a15fd omap_dm_timer_free +EXPORT_SYMBOL_GPL vmlinux 0xb2a9ac92 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb2b2d58c blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2f75b4e fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xb30c9c16 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0xb31e1042 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xb32e9f53 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xb33375d5 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xb350da87 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0xb3753167 snd_soc_jack_report +EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3b11fba input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xb3c8ede7 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xb3d59e53 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL vmlinux 0xb3e6c7fd da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xb43907a8 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xb4b7b453 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0xb4bcc510 snd_soc_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xb4dc075c class_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51593b3 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb556705e md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xb55756d9 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xb558a794 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xb55d4315 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xb56dca60 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xb57aa163 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xb57f7d79 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xb58dd401 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL vmlinux 0xb5a59254 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xb5a5e88c tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xb5c31e23 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb5ebaea3 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60e5423 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xb62ebd31 omap_dm_timer_set_load_start +EXPORT_SYMBOL_GPL vmlinux 0xb65f03fe cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb69a98d2 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xb6a8abdb device_create +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c900f1 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0xb6f48942 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xb74df59b devres_find +EXPORT_SYMBOL_GPL vmlinux 0xb76e6601 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xb799b092 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb82ba89d blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0xb84540a1 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xb86ba1d6 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0xb967d919 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xb9791edd debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xb9a51b01 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9c4c527 snd_soc_unregister_card +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9e5b5c8 omap_dm_timer_get_fclk +EXPORT_SYMBOL_GPL vmlinux 0xba37e480 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xbaa63ac3 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb0355d7 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb090efb device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb25b8a8 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0xbb33deae skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xbb402839 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xbbd60531 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xbbf8b1be setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xbbfda9f2 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xbc3b796a mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xbc40a132 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xbc456407 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xbc54f467 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xbc6f931b workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xbc987d57 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbd2723d8 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbd474fe8 omap_iopgtable_store_entry +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdf018c8 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0xbdf512de free_bch +EXPORT_SYMBOL_GPL vmlinux 0xbdfec355 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xbe079bac led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3734b5 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xbe4c8e41 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xbe4ff9b8 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xbe8149a9 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xbe8d790b usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xbf01c49b bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xbf04e172 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xbf0a831c snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0xbf0d5d37 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbf5853b0 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0xbfa0f507 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xc00f7884 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc0107791 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xc02d498d blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc03ab504 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xc041c35e wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc058e0de ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xc07b2c20 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c22ea0 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xc0d15b20 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xc10ddf97 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc13fc3fd __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc151e87e sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc18be9ef sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xc1b43c3e attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xc1c76835 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xc21bd0cf ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xc2247d44 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc249dc0b set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xc259073b devres_get +EXPORT_SYMBOL_GPL vmlinux 0xc260db28 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2b7bc4f rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc385cb58 perf_num_counters +EXPORT_SYMBOL_GPL vmlinux 0xc397de64 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3b8425d sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xc3d06423 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xc3f5d5ec usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc440376a power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc45de53d __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xc461e4fa inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc4765acf pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4a4d14d bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xc4d001bb tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xc4d4d378 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xc4d594aa key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xc52c8dbf md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xc52cffef user_match +EXPORT_SYMBOL_GPL vmlinux 0xc53ca34e skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xc54507e9 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xc5635c76 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xc57a9fcf platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc59cac14 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xc5abc11d ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc5c651a3 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6363695 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xc656d82c bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc66324ec ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc68083b5 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xc68a13d1 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xc6a9d3d5 omap_uninstall_iommu_arch +EXPORT_SYMBOL_GPL vmlinux 0xc6cd3fa9 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xc6d497a7 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc72faa5a debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xc75dc4bd vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7ac5c83 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xc7e6bf02 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xc7eefb27 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xc7f9a395 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL vmlinux 0xc84dbf5a ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xc85b772b ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc8890678 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8becd1d scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xc8d39bcf snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL vmlinux 0xc8db737f sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0xc8df0eae snd_soc_debugfs_root +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc92aeb66 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc92c475b led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc93a6263 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca0bdf81 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xca30feba snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL vmlinux 0xca3d22a5 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xca59aa9c of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0xca76fcec rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcab18628 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcaf8fa7d device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xcb0b3a53 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xcb273676 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xcb2cf3c3 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL vmlinux 0xcb347877 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xcb891bfe wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xcbd48bc9 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc46f223 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xcc59071c drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xcc5cc610 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0xcc974e5b ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xccc04190 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xcccd57cd device_register +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xcd0cf34a replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xcd263e74 blkio_alloc_blkg_stats +EXPORT_SYMBOL_GPL vmlinux 0xcd7a69e0 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xcd8cb00b omap_dm_timer_set_load +EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0xcdbfcd57 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce6168dd register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6edd27 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xce7e1c52 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xce9b1dc6 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xceb96e78 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xcede85f1 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0xcee41216 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xcf008bc1 armpmu_get_pmu_id +EXPORT_SYMBOL_GPL vmlinux 0xcf00a998 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0xcf8977ed unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xcf98aebc input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xcf9f28d9 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xcfaa21dd omap_dm_timer_request +EXPORT_SYMBOL_GPL vmlinux 0xcfb4e960 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xcfb5871c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd048a040 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xd0578288 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd05da488 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd05dc2a3 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xd07d186f __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd080d8f9 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xd0ab519a dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0e1bcd5 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xd0e369f5 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd10ab4bd sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xd10eb0ba proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xd11ebb95 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd17a87df ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1f5224f sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xd20bbc2a init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd212086d crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd2208b57 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd23de1e5 mtd_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a36854 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xd2b08bae dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xd2b7da51 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd3014561 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd31a9b31 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd334cd19 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xd34d701c usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd3a7abdf sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xd3ad5086 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd3b1a60d ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xd3e61495 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xd3fadb8f __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd40f7fc4 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd41ecc4d perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xd4250b7b ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xd4885979 xv_free +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4d857ec cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd4dbc41f raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd4edda24 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xd524a2ef of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xd538c0d3 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd53da4e3 omap_dm_timers_active +EXPORT_SYMBOL_GPL vmlinux 0xd53fca75 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xd554a5c3 snd_soc_default_readable_register +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5a0758b snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5d8edb1 get_driver +EXPORT_SYMBOL_GPL vmlinux 0xd5f9d82f usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd679e4a5 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xd67f4284 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xd6bdd7fe generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xd6c16abf ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xd6c74ff4 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7838265 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xd7872971 dapm_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xd788742d perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd797d56b security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xd7e5e132 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xd7e69545 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd8016e52 yield_to +EXPORT_SYMBOL_GPL vmlinux 0xd81dabbb tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd85176d3 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd859b901 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd898cd9c enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xd8b57534 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xd8b9b407 omap_dm_timer_set_prescaler +EXPORT_SYMBOL_GPL vmlinux 0xd8cf23f1 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd8d57b4c ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xd93e76a6 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0xd93fc077 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xd956cdf6 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xd965566f rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0xd989e4cd spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xd9bf0a5c wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd9d682dd sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9eef782 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xd9fca96d hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda27f6c0 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xdab4cd66 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xdadbf4a0 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xdaee259e snd_soc_register_dai +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdaf8f8c3 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb1e9caa tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb3b0ea7 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xdb647de0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xdb753b39 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xdb828573 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xdb8d750e usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xdba95fd5 reserve_pmu +EXPORT_SYMBOL_GPL vmlinux 0xdbf5863e disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xdc319ace snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0xdc57cb44 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xdc911f83 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdccbad4c blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0xdccd97af dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xdcdf6e4f fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd2fb70d snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL vmlinux 0xdd75ee5c power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xdd9fba6c irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0xddbcb81b crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xde1fba32 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xde315c36 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde555bd8 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xde6270ec usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xdeeadbe5 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xdf5270a0 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xdf5d464e sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xdf961525 usb_usual_ignore_device +EXPORT_SYMBOL_GPL vmlinux 0xdfd3d583 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xdff95eb2 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xe001dc5d wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xe0026853 mount_mtd +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe0476be2 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe05ced89 snd_soc_cache_read +EXPORT_SYMBOL_GPL vmlinux 0xe0631cb6 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe0820bcc usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xe0b0057f snd_soc_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xe0de3485 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xe14bb08f inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe1cc39f6 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1d95ffa inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe247e0f9 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xe267a6f0 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xe2706a92 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xe272a6e8 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0xe287b31b sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xe2c98989 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe2f35771 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe3303237 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3a2b464 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xe3c16bc5 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xe3e75a53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xe3fbb9b9 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe487d54e class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xe4d298b0 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xe4d46c8f usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xe4da226d platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xe4fec1a7 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xe5583bb8 snd_soc_register_dais +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe59740e6 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xe5c2fad5 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xe5d53949 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xe5ddddcf platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xe609b588 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe668f99c tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6e8e4cd crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe6f73341 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe714201a locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xe72b89a4 find_module +EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xe74a5006 snd_soc_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe779dbc6 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe791614e transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xe7d58d31 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe838f679 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xe84109ac crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xe85a9fd3 cpu_cluster_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xe8611953 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xe86279bf skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe895845f regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xe8b97679 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xe9024b74 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xe9053d96 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe90fe971 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xe9118d16 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9b7d8ab sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xe9cf3ab2 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe9d1b7cf irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0xe9d3e33f ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xe9d4c284 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0xe9ea9314 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea36b3a3 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea492dd3 omap_iommu_restore_ctx +EXPORT_SYMBOL_GPL vmlinux 0xea8a830b crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb3d15b9 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xeb42c49c bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0xeb704017 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec32e025 mtd_is_partition +EXPORT_SYMBOL_GPL vmlinux 0xec797ce4 nand_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xeca012a7 ref_module +EXPORT_SYMBOL_GPL vmlinux 0xeca46683 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL vmlinux 0xecabd75d blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xed30d28c tps65910_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xed43e9c5 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xed695a2d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xeda63db3 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xedf0bb65 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xedf31705 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xee80fa04 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef72abe8 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xef8c7850 pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0xefb53b7e iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xefb72398 pstore_write +EXPORT_SYMBOL_GPL vmlinux 0xefc0b95b crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xeff9157c kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xf004f5c5 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0xf03b9de8 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xf0d974d8 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xf0e7af21 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xf1537402 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1f2d723 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0xf1fbde83 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xf27e9f12 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xf2ba20f9 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xf2bb2baf bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0xf2c6396d tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30317c7 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf3077e00 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xf30e105d ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf3216b30 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xf32db971 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf368d878 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xf390f75d devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xf3af6750 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3c6e25f dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xf3d267e6 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf41c22e5 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xf42cb3e1 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xf43244a0 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xf477b7a8 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xf4865644 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xf48aebbe aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xf4b755ea regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xf4eda3bf ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5107f64 regcache_write +EXPORT_SYMBOL_GPL vmlinux 0xf52d2fbd pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xf52f30e7 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf555bcbe usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xf55b9123 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xf55e5288 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xf568869e hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf58d6875 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5f71c9a snd_soc_platform_read +EXPORT_SYMBOL_GPL vmlinux 0xf61e30f6 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0xf6288895 inode_dio_done +EXPORT_SYMBOL_GPL vmlinux 0xf63aee0b inode_dio_wait +EXPORT_SYMBOL_GPL vmlinux 0xf676cfac snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL vmlinux 0xf67a4b0f map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf6cb8c9a crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xf6d81b2f platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e39ae0 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf71f3f65 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf72ee27e __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xf741c56e inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xf7435b59 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0xf74a7b43 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xf7713218 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xf7a0480e blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xf7c3cf66 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf7c45ed2 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xf7d8f7cc dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xf7e032e7 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xf7e19dbc register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf83dab8d ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xf8476568 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8b99b28 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf973d2e5 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9b71059 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9c2f0ce disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xf9d31279 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0xf9de974a blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa181ee2 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa3c6cff crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xfa996d14 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL vmlinux 0xfae557d7 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xfb217ca0 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xfb2a4020 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb3db103 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfb41e8de pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb9430d4 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xfbcefb86 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xfbe37331 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xfbefe44c class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfbf38106 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc1b9b82 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfc50e684 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xfc611e38 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcdc36bc crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xfd183faf exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0xfd2fb2f7 omap_dm_timer_enable +EXPORT_SYMBOL_GPL vmlinux 0xfd9b3ad8 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xfd9f70c3 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdee10ef i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfe0fa279 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xfe41e7ab usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xfe5460ff ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfe9ee273 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff06aa38 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xff183326 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xff41151f platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xff497148 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff6805f0 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xff6ede42 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xff747600 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/armel/omap.compiler +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/armel/omap.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/armel/omap.modules +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/armel/omap.modules @@ -0,0 +1,2286 @@ +6lowpan +6pack +8021q +8250_dw +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +a3d +a8293 +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +ac97_bus +acecad +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5398 +ad5446 +ad5504 +ad5624r_spi +ad5686 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7280a +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adummy +adutux +adv7170 +adv7175 +adv7180 +adv7343 +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +afs +ah4 +ah6 +ahci_platform +aiptek +aircable +ak881x +ak8975 +alauda +algif_hash +algif_skcipher +alphatrack +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +amba-clcd +ambakmi +amba-pl010 +amba-pl011 +amc6821 +ams369fg06 +analog +ansi_cprng +anubis +aoe +apds9802als +apds990x +appledisplay +appletalk +appletouch +ar7part +arc4 +ark3116 +arptable_filter +arp_tables +arpt_mangle +as5011 +asc7621 +asix +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +atbm8830 +ath +ath3k +ath6kl +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atm +atmel_mxt_ts +atmel_pwm +atmel-pwm-bl +atmtcp +atxp1 +au0828 +au8522 +aufs +authenc +authencesn +auth_rpcgss +autofs4 +ax25 +ax88796 +b2c2-flexcop +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +befs +belkin_sa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluetooth +bma150 +bmp085 +bnep +bonding +bpa10x +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcmfmac +brcmutil +bridge +bridgedriver +broadsheetfb +bsd_comp +bt819 +bt856 +bt866 +btmrvl +btmrvl_sdio +btrfs +btsdio +btusb +btwilink +bu21013_ts +bw-qcam +c67x00 +cachefiles +caif +caif_hsi +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +carl9170 +cast5 +cast6 +catc +c_can +c_can_platform +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +chnl_net +cifs +clearpad_tm1217 +clip +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cma3000_d0x +cma3000_d0x_i2c +cmtp +cobra +coda +configfs +cordic +core +cp210x +cpia2 +c-qcam +cramfs +crc7 +crc8 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +crypto_user +cs5345 +cs53l32a +ctr +cts +cuse +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx24110 +cx24113 +cx24116 +cx24123 +cx25840 +cx82310_eth +cxacru +cxd2820r +cy8ctmg110_ts +cyberjack +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +davinci_cpdma +davinci_mdio +db9 +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +de600 +de620 +decnet +deflate +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dib9000 +dibx000_common +digi_acceleport +diskonchip +display +dlci +dlm +dm644x_ccdc +dm9000 +dm9601 +dm-bufio +dm-crypt +dme1737 +dm-log +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-thin-pool +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docg3 +docprobe +drbd +drm +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dss1_divert +dummy +dvb-as102 +dvb-core +dvb-pll +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-anysee +dvb-usb-au6610 +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-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-omap +dw_dmac +dw_mmc +dw_wdt +dynapro +easycap +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +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_ulog +ebt_vlan +ec100 +echo +econet +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +elo +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +emc6w201 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_usb +em_text +em_u32 +enc28j60 +enclosure +eql +esd_usb2 +esi-sir +esp4 +esp6 +ethoc +evbug +ext2 +f71805f +f71882fg +f75375s +faulty +fb_sys_fops +fcrypt +ff-memless +fm_drv +freevxfs +fsa9480 +fscache +ft1000 +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +g760a +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_multi +g_ncm +g_nokia +gpio +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-charger +gpio-fan +gpio-generic +gpio-i2cmux +gpio-it8761e +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-regulator +gpio-tps65912 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +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_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +g_zero +hampshire +hanwang +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +hfc4s8s_l1 +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-holtekff +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-kovaplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-speedlink +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hisax +hisax_st5481 +hmc5843 +hmc6352 +hostap +hp4x +hpfs +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +i1480-dfu-usb +i1480-est +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-designware-core +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-gpio +i2c-mux +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-simtec +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-xiic +ibmaem +ibmpex +ics932s401 +idmouse +ieee802154 +ifb +iforce +iio_dummy +iio-trig-gpio +iio-trig-periodic-rtc +iio-trig-sysfs +ili9320 +imon +impa7 +imx074 +industrialio +inet_diag +inexio +inftl +input-polldev +int51x1 +interact +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ip_gre +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isdnloop +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1301_omap +isp1704_charger +isp1760 +it87 +it913x-fe +itd1000 +iuu_phoenix +iwmc3200top +iwmc3200wifi +ix2505v +jc42 +jedec_probe +jffs2 +jfs +joydev +joydump +kafs +kalmia +kaweth +kbtab +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +kxsd9 +kxtj9 +l1oip +l2tp_core +l2tp_debugfs +l2tp_ppp +l4f00242t03 +l64781 +lapb +lapbether +latch-addr-flash +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lt3593 +leds-mc13783 +leds-pca9532 +leds-pca955x +leds-pwm +leds-regulator +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gl5 +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcrc32c +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libiscsi +libiscsi_tcp +libsas +lightning +line6usb +lineage-pem +linear +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lm95245 +lms283gf05 +lnbp21 +lnbp22 +lockd +lp +lp3971 +lp3972 +lpddr_cmds +lru_cache +lrw +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lzo +m25p80 +m52790 +ma600-sir +mac80211 +mac80211_hwsim +macvlan +macvtap +magellan +mailbox +mailbox_mach +map_absent +map_ram +map_rom +matrix_keypad +max1111 +max11801_ts +max1363 +max1586 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max63xx_wdt +max6639 +max6642 +max6650 +max6875 +max7359_keypad +max8649 +max8660 +max8903_charger +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8997 +max8997_charger +max8998 +max8998_charger +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio-bitbang +mdio-gpio +mem2mem_testdev +memstick +metronomefb +mg_disk +michael_mic +micrel +microtek +minix +mip6 +mISDN_core +mISDN_dsp +mk712 +mkiss +mma8450 +mmci +mmc_spi +mos7720 +mos7840 +moto_modem +mpoa +mpr121_touchkey +mpu3050 +msdos +msp3400 +mspro_block +mt2060 +mt20xx +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd_dataflash +mtdoops +mtdram +mtdswap +mtouch +multipath +mv88e6060 +mv88e6xxx_drv +mwifiex +mwifiex_sdio +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +nandsim +navman +nbd +nci +ncpfs +net1080 +netconsole +netrom +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nftl +nf_tproxy_core +n_hdlc +nilfs2 +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 +ns558 +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +of_mmc_spi +of_serial +old_belkin-sir +omap +omap2 +omap-aes +omap_hdq +omap-iommu-debug +omap-iovmm +omap-sham +omap-vout +omap_wdt +omfs +omninet +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +p54common +p54spi +p54usb +p8022 +p8023 +panel +panel-acx565akm +panel-lgphilips-lb035q02 +panel-nec-nl8048hl11-01b +panel-picodlp +parkbd +parport +parport_ax88796 +pata_arasan_cf +pata_of_platform +pata_platform +pc87360 +pc87427 +pca9541 +pca954x +pcap_keys +pcap_ts +pcbc +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pcwd_usb +pda_power +pegasus +penmount +phonedev +phonet +phram +physmap +physmap_of +pktcdvd +pktgen +pl2303 +pl330 +platform_lcd +plat_nand +plat-ram +plip +plusb +pn533 +pn544 +pn_pep +pohmelfs +poseidon +powermate +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pvrusb2 +pwc +pwm-beeper +pwm_bl +qcaux +qcserial +qinfo_probe +qnx4 +qt1010 +qt1070 +quatech_usb2 +quota_tree +quota_v1 +quota_v2 +r8712u +r8a66597-hcd +radio-i2c-si470x +radio-mr800 +radio-si4713 +radio-tea5764 +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +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-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rds +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +renesas_usbhs +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +ring_sw +rio500 +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rt2500usb +rt2800lib +rt2800usb +rt2x00lib +rt2x00usb +rt73usb +rtc-88pm860x +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-pcap +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-pl030 +rtc-pl031 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl8150 +rtl8187 +rtl8192c-common +rtl8192cu +rtlwifi +rts5139 +rxkad +s1d13xxxfb +s2255drv +s5h1409 +s5h1411 +s5h1420 +s5h1432 +s6e63m0 +s921 +saa6588 +saa7110 +saa7115 +saa7127 +saa717x +saa7185 +saa7191 +saa7706h +safe_serial +salsa20_generic +sata_mv +sca3000 +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +seed +seeq8005 +seqiv +ser_gigaset +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sha512_generic +sh_mobile_ceu_camera +sh_mobile_csi2 +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sir-dev +sisusbvga +sit +sja1000 +sja1000_platform +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xx +smc911x +smc91x +sm_ftl +smm665 +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc95xx +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd-aaci +snd-ac97-codec +snd-aloop +snd-dummy +snd-hrtimer +snd-hwdep +snd-mixer-oss +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-pcm-oss +snd-portman2x4 +snd-rawmidi +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-88pm860x +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-alc5623 +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-dfbmcs320 +snd-soc-igep0020 +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-max98088 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-omap3evm +snd-soc-omap3pandora +snd-soc-overo +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-rx51 +snd-soc-sdp3430 +snd-soc-sgtl5000 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm5100 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8782 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-soc-zoom2 +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-virmidi +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +sp805_wdt +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +speedtch +spi-altera +spi-bitbang +spi-butterfly +spi-dw +spi-gpio +spi-lm70llp +spi-oc-tiny +spi-omap2-mcspi +spi-pl022 +spi-tle62x0 +squashfs +sr030pc30 +ssb +ssfdc +sst25l +ssu100 +st +st1232 +stb0899 +stb6000 +stb6100 +st_drv +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sunkbd +sunrpc +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +syscopyarea +sysfillrect +sysimgblt +sysv +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tcm825x +tcm_fc +tcm_loop +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tekram-sir +test-kprobes +test-kstrtox +test_power +tgr192 +thmc50 +ths7303 +ti_dac7512 +ti_hecc +timb_dma +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlv320aic23b +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmio_mmc +tmio_mmc_core +tmio_nand +tmp102 +tmp401 +tmp421 +toim3232-sir +touchit213 +touchright +touchwin +tps6105x +tps6105x-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +trancevibrator +tranzport +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +ttpci-eeprom +tua6100 +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6030-pwm +twl6030-usb +twl6040-vibra +twofish_common +twofish_generic +u132-hcd +ub +ubi +ubifs +ucb1400_core +ucb1400_ts +udf +udlfb +ueagle-atm +ufs +uio +uio_pdrv +uio_pdrv_genirq +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 +upd64031a +upd64083 +usb8xxx +usbatm +usb_debug +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vgg2432a4 +vhci-hcd +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dvb +videobuf-vmalloc +videodev +virtual +visor +vivi +vivopay-serial +vmac +vp27smpx +vpfe_capture +vpss +vpx3220 +vsxxxaa +vt1211 +vub300 +w1_bq27000 +w1_ds2408 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1-gpio +w1_smem +w1_therm +w35und +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_w8001 +walkera0701 +wanrouter +warrior +whiteheat +wimax +wire +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xilinx_uartps +xor +xpad +x_tables +xt_addrtype +xt_AUDIT +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yurex +zaurus +zcache +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +zr364xx +zram --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/armel/omap +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/armel/omap @@ -0,0 +1,9783 @@ +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0x0e6c4531 omap_mbox_get +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0x154a75b0 omap_mbox_msg_send +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0x4c9ab456 omap_mbox_register +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0xbce67e37 omap_mbox_put +EXPORT_SYMBOL arch/arm/plat-omap/mailbox 0xdbc75fe3 omap_mbox_unregister +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/bcma/bcma 0x6df2d63d bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x5c165453 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1038dffc ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3c8e7345 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x584f7fb7 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa0f48bc9 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf8ca89ea ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/dma/dw_dmac 0x0db6d1f3 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw_dmac 0x295918f5 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw_dmac 0x489fbb29 dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw_dmac 0x64af6276 dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw_dmac 0x95f9231f dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw_dmac 0xa2022d7d dw_dma_get_src_addr +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04a3af60 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08e15c30 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a277ae4 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bd0e418 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c4ee798 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ed6eaf9 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f8dc681 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1054d395 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11073671 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x111b9fa0 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1213348d drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x129e9486 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13a3b414 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d306a9b drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e23cafc drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2106d0a2 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23f06d9e drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x267b0540 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26ea7af7 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b47b134 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c1aa5b7 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c56a8ff drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d3fb426 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d807df8 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31389d0a drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31a6f016 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31ab7090 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33e154ba drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3454568c drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3498d403 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34dcde4d drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35157bcc drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d09a33e drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d675594 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f0ea3c2 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42748acd drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x429f0e12 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43514060 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c9a91c drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44c5f45f drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4945a3ca drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a870943 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f5de301 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5071723f drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50f60bcb drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5165455b drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54668776 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55a4a4e0 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57549197 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58e795f3 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b906af1 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c53f9eb drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f6cbc33 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fa9e2b5 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fb98287 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60f7abfa drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63311200 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63f07105 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66cbbd3f drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67112550 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67b100f8 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67f0615a drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6adc3387 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d273b5a drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6da00f8b drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e6351f0 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72828385 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7402a85f drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79a8124e drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79af8fa3 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79b25812 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4a5d7e drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x837436fb drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87821e1a drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87e9fe78 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8838face drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89fbfab0 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e2fd579 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e8ac30e drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x901e6ad6 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90298bb4 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9109bcf2 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92f2d102 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x932df43d drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94c12114 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96451378 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c8bb3c2 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dc25a34 drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0717976 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa18ddc44 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa237e931 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa393ca45 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4523328 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4edb20a drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5a09d50 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6d8e06a drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6e3201d drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7179c31 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8f8554f drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaac7b297 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacbe2969 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadf88afc drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaff4225a drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb601ce03 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8a3de0a drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9a22de4 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba103894 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbc665e6 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd4f94be drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe0b8d05 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe9bebb2 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc378c41c drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc533dbc2 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5baa032 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc69af56d drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccc7fc77 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd753335 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd14652a2 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2721d6d drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2fbbf60 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd33d1ce6 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4c49ca0 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4dfb37a drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd79f34f9 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7f1ab84 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd86157ab drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd88db039 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc68a4ed drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfb535ed drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0cb321e drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1058b06 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe256edfd drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe33d943d drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe34d533d drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3553657 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe41cd169 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4f31703 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe532ac34 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6d1aea8 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6d640da drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7df8d57 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec7ef2e4 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccebb8a drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed256cae drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed28d92c drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefd58b0b drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0a0bf79 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7b4a3f6 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa44df0a drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc4f8599 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff7ec5ef drm_global_mutex +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x5370b4a8 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x9fce4c31 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x08e0c1cc i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x3d8969db i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xa7159638 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2ed8c75a gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3ea68952 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4b143009 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x81624164 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8ebe15e0 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb40bfd9e gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xcda91ec1 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe364705b __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xed958c61 __gameport_register_port +EXPORT_SYMBOL drivers/input/input-polldev 0x212a934d input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x85888332 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xabe4ff0b input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xae549841 input_register_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x2bf19b1d ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xa058d062 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb4414091 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb9b4af6c ad714x_disable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x4ad68bc4 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/sparse-keymap 0x4bd15ce9 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4ca5d4a8 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7710e0b5 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x89a4656f sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xc0ce8c24 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xcad05b58 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x61d73f34 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbc9dc160 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf3bd1692 ad7879_resume +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x09cb33ef attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4e08e6b6 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5448e141 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7c527b41 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9b9ebba6 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa6ff26a9 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd12338c0 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe6dd105a capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf75b1dc0 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfd35925f capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x0c9a2e6f hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x918cb7af isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xaf1a7fb0 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xc4eca5e9 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x039d64f8 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x06ec2f4f mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1483ce7c mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2d2774f2 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3a55dd38 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x464018c9 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4ca099c8 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x58956dfa mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5ccb222e recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x64c995e6 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6cd0bf67 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7a44388c queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8ba1be75 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96ad3599 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb0c6333c get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbd6bedee mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc5573ffe bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc5881fd0 confirm_Bsend +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 0xdd81fe41 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xeff5c6ba recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf59cb0f3 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x1768ffd2 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x4ece2197 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x7f6d245e dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xb52a4c74 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x13bb5d80 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x1de0063a dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x51117427 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa163f2f0 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa8a3cbb9 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xcb7cde76 dm_exception_store_create +EXPORT_SYMBOL drivers/md/raid456 0xaef2349b raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x7314ee72 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x9f4320c4 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x2291aa7a mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x171292f5 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xcc6296a4 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xebb7b775 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18212 0x80c49ef3 tda18212_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0xeaf48628 tda18218_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x0eca84bc xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc4000 0x579d4d53 xc4000_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x3a8e6cb9 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x00bcfa4a flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x04492d2f flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2f3b1539 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x37e8bef9 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x613cd354 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x686a456d flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x70c481d3 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa8a5c18f flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb03b2517 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb0fc3127 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb89623b6 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe08084d4 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xefd160e1 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1c813640 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3350035a dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3ca91d95 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4dfe519c dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4f57e91e dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6225816a dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x65092474 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x687066ad dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x71b42399 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x746b02ad dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x761f35fb dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x78b253d1 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a2ef94 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8480c59a dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x857b93e7 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x87289101 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x883c17c6 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8c63520d dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b3c91f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x97248e30 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x99e194a0 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbb11afbd dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc10be23a dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc3f50f32 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd71ea42b dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdad1ae56 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe7f889ca dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe81d4503 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed9e5ee7 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xedccb688 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf487376d dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb25f454 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfd145167 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfe3679c8 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x3f407f26 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x65fc1843 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x7c59eac6 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa5bbe930 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xc1baa700 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd14903a3 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd9b29317 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xebc93a85 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x06d93a9c dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x09b50e7c dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0ede8aab dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x11f8e02f dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x3f9e723a dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x81bf5594 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x86e6acda dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4765f67 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd58187b4 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdaa15045 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe0a4779b dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/a8293 0x661a9147 a8293_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x97c69e1f af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x39801374 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xa9d79ab8 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xbca76246 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x1e0d48e5 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x0d475ae8 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x51a2257b cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x14eeb12c cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x9dcb48bf cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x862b028c cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x0ab962fd cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x3f4d3c6f cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cxd2820r 0x87ac321c cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x4eaf768d dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x95841550 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x9616e16b dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x96666091 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xfd5e8170 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0897a345 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0a5657d4 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0ac9ffcc dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0b6e4b47 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x17508525 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x21280d3d dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x72357efa dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x80abf9fb dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x943c68a7 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xdcac1e51 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x221ba06a dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2e01c0f9 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x3c5a234d dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x5ebe629c dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x77e505f3 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa8ae8368 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x27b40221 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x65c11592 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x67947377 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xc3e7136f dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0c82340e dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x12258803 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1a90d206 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1f8bc0dc dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x408d2ac4 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x424b8769 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x49c50511 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5896c0d2 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5a78fc31 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x60908a7f dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x719719d2 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x73d476b9 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9fcd0615 dib7090_agc_restart +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa89288ff dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd75d4c18 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0c197b2e dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x108d3aeb dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2342c698 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x24e5cac5 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x403c86c1 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4bb78f87 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa817c167 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc949dd8d dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcf1ac738 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd3f57917 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe45c230b dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe84161e1 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xeac23f6d dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf03e4b64 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x268a57fe dib9000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x2b959d4f dib9000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x30335133 dib9000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x61a5b3a6 dib9000_set_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x79c5ae16 dib9000_fw_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0x8aa14d42 dib9000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xbb8fb1e7 dib9000_fw_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xe203b40e dib9000_get_component_bus_interface +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xe9743727 dib9000_firmware_post_pll_init +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xe98d648f dib9000_fw_set_component_bus_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xec8717ed dib9000_get_tuner_interface +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xedab58b3 dib9000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xeea0702a dib9000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib9000 0xf3dc05ae dib9000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x57e50f02 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x7bcbeed1 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xc142fe51 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd69db03b dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd7a6b24e dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x10bd555a drxd_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x86ac96e2 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb/frontends/drxk 0xd4b731ef drxk_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xa12bf1fa ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x6acfbe02 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0xe342667a ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xb206d8aa isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x44bbac68 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xd32988a0 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/it913x-fe 0xcd4e3c69 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x04c03b77 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0x332d8b15 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x878a0cd4 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x6ba59cca lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xd46422e6 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gl5 0x3ed7dbf9 lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x15e9b817 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x60db02b6 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x8c2ffbf0 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp22 0xe1a27ab2 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xd0a5bfc4 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0xc129a955 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xf36253a9 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xf8294abe mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x4288f845 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x0a0c57fc nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xdecf7dd0 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x3e5ae093 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x985dac4b s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x557f4e82 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x5cbbad80 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xa9a81ee4 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1432 0xc7b72053 s5h1432_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x58a9b44a s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x2fb25b50 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xffe8ef77 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x584846c2 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xff576bc4 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x7b12ecbb stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x05252e98 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xb4e649e3 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xe7096690 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x559961dc stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x0bfcbc44 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x9136246b stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x811bcc34 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xd49b45fa stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xff956d07 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x6b5ca1c8 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xa7071e55 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x982190a4 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x2cbb787f tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x05a1f2f3 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x3366ad3d tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x535fe4b2 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10071 0x0fdf58eb tda10071_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xb71046a0 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x01821acc tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x91f5f5a1 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x5e11b357 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xad1f2a72 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x33defd7e tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x5c2d9831 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x7b743124 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x59d63ebe zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xd4be6ae3 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x29e67f07 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x2f057460 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x1c773f6b lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x785a9818 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x828c9afb lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x8d516e45 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x9f637fb9 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc51d32f9 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xcedd68e2 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd55523d3 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/rc-core 0xa7f33a6e ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xe8b2de75 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xb4e724f1 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xc38b8632 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x59bdeb70 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5a7bdc98 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x676ed443 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xda6c62f8 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe821436e cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/davinci/vpfe_capture 0x9063d396 vpfe_unregister_ccdc_device +EXPORT_SYMBOL drivers/media/video/davinci/vpfe_capture 0xd23fbd4b vpfe_register_ccdc_device +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x088ccec9 vpss_select_ccdc_source +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x319709a6 vpss_clear_wbl_overflow +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x54146824 dm365_vpss_set_sync_pol +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x6e5b5413 vpss_enable_clock +EXPORT_SYMBOL drivers/media/video/davinci/vpss 0x749bf2c9 dm365_vpss_set_pg_frame_size +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x1d2d3448 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xe20b254e em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x0dce82b5 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x2f25bc82 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x4525aad2 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8a5649c1 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa94169ac gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa9f2876f gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xf2aaa73b gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/soc_camera 0x33f326ac soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x7ce140ed soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x82223b15 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x87309fb8 soc_camera_unlock +EXPORT_SYMBOL drivers/media/video/soc_camera 0xadc026f1 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb90bacd3 soc_camera_lock +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x433952ab soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6951757b soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x85d52182 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xcb4b96ae soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x386b37e8 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xb42c44aa tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xdb4b4b98 tm6000_register_extension +EXPORT_SYMBOL drivers/media/video/tveeprom 0xc4fdffa5 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0xec3a8f23 tveeprom_read +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03c8d4ec v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x34bf401d v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x791ab099 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc0699aac v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf052e6db v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x5302fe81 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x8fd0e34f v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xc619e874 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1960e7a3 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x271d4dc4 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6d271763 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x9622ac35 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x9cdf8f08 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa40eb3c0 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf2-core 0x5cb2ce16 vb2_querybuf +EXPORT_SYMBOL drivers/media/video/videodev 0x02360ca7 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x11b01749 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/videodev 0x162b380e v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x1d49ad8d v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/videodev 0x2711e6fe v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0x277f4bfc v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x2fa89104 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x3592362d v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/videodev 0x3f4e25ea v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0x3fb16bc4 v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x4083ac6a video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x45a9e267 v4l2_ctrl_del_event +EXPORT_SYMBOL drivers/media/video/videodev 0x4685e0c9 __video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4bc3caa3 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x69e84655 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x6af1e16b v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x6fc3dc73 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x73c65006 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x75ae8edb v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x776003e6 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x7771212e v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7df3d048 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/videodev 0x8297d681 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x94ae6b07 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xad95ef8b v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0xae8d826b v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0xb5c42b86 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videodev 0xb83c01f6 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/video/videodev 0xb8cd3ed1 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0xc2a0fe80 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xc85f9c55 v4l2_ctrl_add_event +EXPORT_SYMBOL drivers/media/video/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/videodev 0xce4a45bd v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xd88c713b v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xdbfd8b6c v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe2fd65de v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe3719f5c v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0xe7cac722 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0xe921321f v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe9418be7 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xe97910f2 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0xed0809f3 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xedbfdbf0 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0ea53b33 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1b7c50bd memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x200d239d memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x232c5b48 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6bad9301 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x71eeea75 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7b03dcf7 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8ff2624f memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x92bfdf30 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x9be56845 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa0f3b84a memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcc1c3526 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf82f5b79 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xff87cda6 memstick_next_req +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x3b872bd5 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x419837d8 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0a0f0fa1 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19f1f7a8 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x304d2b09 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x648f3e82 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7c8289a3 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x81e0f888 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x908760bc mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9bc42b70 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa83c26ee mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xad06449f mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb3dae053 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc60a9247 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfdc5799c mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/tps6105x 0x0b9e80a3 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x61bba745 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0xd2f826ba tps6105x_mask_and_set +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/twl6030-pwm 0x015ee601 pwm_free +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xa4ee3c79 pwm_disable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xaee34e3d pwm_request +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xd83c7949 pwm_enable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xdeebfb06 pwm_config +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x5dd92b9c ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xae22afc6 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x51ea2fb0 altera_init +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x2c83f77b c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xb75c1ea7 c2port_device_register +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x2565ea89 mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xfe8ecc19 mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x1d89774d tmio_mmc_host_probe +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x2d696502 tmio_mmc_host_runtime_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x378f2335 tmio_mmc_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x6d3deee9 tmio_mmc_sdcard_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x7a6fd700 tmio_mmc_sdio_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xbb5d735f tmio_mmc_host_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xc29ddd92 tmio_mmc_host_runtime_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xc8c51ba1 tmio_mmc_host_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xf02062dd tmio_mmc_card_detect_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xf4c5d5a9 tmio_mmc_host_remove +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x5a2f70a7 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa6c08171 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd2d16502 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x8f3a984b mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x0ae0159e lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x3c221086 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x4179d9dd flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x65ec01f4 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xeef52a51 onenand_default_bbt +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x2df9a455 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x38370b09 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x4992b922 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7ce9cd7d hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa26c7029 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x09c52b21 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x376c019a sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4a7ea281 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x57c81ad7 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x66dab206 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x67739bdb irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x92092618 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9924610f sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xab5e6d42 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc7d5d523 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x006b89e5 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xef0beb2c alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp/pppox 0x2ceac284 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x7e83f836 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xd099d464 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/wan/hdlc 0x112ae73f unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x241fba99 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4a43f32d alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x68892f75 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x77b87bbb unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcce4c453 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xce393b13 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcf2fefe4 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe22e6a58 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf6c74de7 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfee42886 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x16f04c72 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x51533583 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x65afa971 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6be45c4d ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7cabf301 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xaf7c841b ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb7f9e0fb ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xcebd7b1e ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xdb96ee8b ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x387bd0d5 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5af0fe10 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xbb9ca145 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe7526eeb ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00019e8e ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05a524b4 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a66ff91 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d45af00 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1395f779 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1408d22a ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x142af98c ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15d8dc8d ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15fbe5d0 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1608a333 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x199f87db ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a242938 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1eb29343 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x203526e9 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x234204fd ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25e738c8 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2639fd65 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26e820e1 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26fc932c ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2efb459e ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31dc8a60 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x339cac14 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35958ec3 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36d4b967 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40f31d48 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42b520d7 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45b796fc ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x478e47f6 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x479c54b6 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4855cce7 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x489d205b ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49dbdf63 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bce903d ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bfb91bf ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e693ced ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51338ddf ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51a67bca ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5558a0da ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x583ea6c1 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5add9cc5 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b98af87 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5bdefaaa ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5cfb6f7f ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x606ec58c ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x610a2fa1 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x62c73b4b ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a79c23e ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ab79ca9 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x707f60df ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72bafbf9 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7356ffbb ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75ebbd49 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x781c9f45 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7833a7f1 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79873425 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7baa03a2 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e747f20 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f0512d7 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x814abd45 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x843944f5 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8458c12a ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88ff4d57 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a4cbc22 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91020730 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa60b745c ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa81574a5 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xade8b4e4 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1741947 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2d6494f ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8d220bf ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb250f71 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc141d468 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3344234 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc891547c ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc8d9329d ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9baa2b2 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd927f0c ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd551ad94 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda69a8b2 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe26c614c ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xebf6b491 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xedf2f58c ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0ac701a ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2c99a39 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6c85f21 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7a9f0da ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf925598c ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfce4d73f ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x31db3a26 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x96831297 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x060eeb08 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x06c045b1 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x197e26fc brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x19858561 brcmu_pkttotlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2526e244 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3e20256d brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4bbf5bfb brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x55769a89 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x608d91f5 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x750a3b31 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x907e80f8 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xab1ca3db brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc309bb51 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe6b17edd brcmu_pktfrombuf +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0b5dac67 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x15aa7703 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x15c7a164 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x18104177 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1eb3615e hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2c315538 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3ae4190f hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x43bb9aa3 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4b3aa3c9 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5ff36b3b hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7016a60d hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x71880893 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7291983c hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x85ea2585 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8e2b26e3 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x958a9c60 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x99ca27ec hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9dc810e7 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa963903c hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb5698b1a hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbc953faa hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbcc909ee hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcd5ddf0e prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe1617eaf hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf40f4ff7 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x11d95d90 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x14370ce7 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x149538de rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1c56800a _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1df4270b rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x29af0033 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x32ad3a77 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x36e99bd7 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x37086d95 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x398b060d rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3b89f9a2 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x436ab5b7 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x50233b3e rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x51a089f3 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x562436b1 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x56d78b31 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x57e370b2 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5b9f766a rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5be34896 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7c861739 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7f0f6361 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7fe35db6 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x87089461 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8ae306bb rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8d67d7f1 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9603e76b rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x965d43fc rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x989d90e3 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9a72d8b8 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9c20e371 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae11ea7d _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae5c10e5 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc8c91e42 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xce16182b rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd2d0916e _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe186e98a rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe3d19aa4 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe5755842 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe7fa59c3 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf479aca6 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf74e700d _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfc7960d4 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0ed8aaab rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0ef5e83d rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x164a0779 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1df6da55 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x308643d8 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3a93b0f6 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3ca44dcb rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x53fc48ee efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6b610c22 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x955e3698 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb5d44823 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc063de53 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc673629e rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc93fcdab rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd1c73a53 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xdb6174b6 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe3193b26 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfc9de049 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/parport/parport 0x021d961e parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x12a8737f parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x132a96c6 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x1eb01310 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x2e35e87e parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x2f92ba7a parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x32fe66c8 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x3d850da2 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x4c54399a parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4f01aede parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x57a6ec8d parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x59c5dc06 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x60882263 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x70743397 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x731fc15f parport_release +EXPORT_SYMBOL drivers/parport/parport 0x79554304 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x80828566 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x8cfe8ba5 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x8e7b53bd parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x95ba2ede parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x9707e1a6 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xa1c42d42 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xb54f6302 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xc8794efa parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xd2755784 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xd999f43f parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xdbb8f2ce parport_read +EXPORT_SYMBOL drivers/parport/parport 0xebaf20a2 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xf74daf9f parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xfba24cf1 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/pps/pps_core 0x3858a308 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0x463d828e pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x5d36a0d4 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xd7818e56 pps_lookup_dev +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x19992dda fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1a456996 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5ed13e40 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x62cd2770 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa73d508d fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa82e4e42 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe51ddbbb fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xea06a00c fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf8023708 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x01af599c libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ca1a0fa fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x10a8a21c fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1118783b fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x117924d9 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1306aad6 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x161eeb63 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2049193b fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26f3a7cd fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x29549e3c fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2fd0f0f1 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3037dcc5 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32544c9b fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3edcbb33 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x40c899aa fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x422c1dd0 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x440337de fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x475d4daa fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x50afe932 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54945349 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69a48ac3 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e920c40 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x70bb5bf5 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x79caf469 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d3510ec fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x826422d6 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x867b7e60 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x88134e7f fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ca3d059 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a555e2f fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b9dd1d6 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fdc2ba6 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa5393a59 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6671ca2 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb2196f5a fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb318c78a fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb595e970 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbcc13899 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd2dcf40 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3be323c fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5a4eeb9 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7e90458 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc820c661 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe9df3710 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xea61a546 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef932234 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeffa92fd fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf58c3855 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfab6a202 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfddae78e fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/raid_class 0x4d8a84b8 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xcd80a54e raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xf30c6226 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1bdadf7b fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x42f6326b scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x505c4959 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x65bd3e73 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6b63a393 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9b5eb069 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xaf2ab8de fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb873489f fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc015d699 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdab575ba fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe003ec20 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe3464ca8 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xeb1c7a60 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1420948f sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x195d3656 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1b63bb66 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1d1a252b sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1e9f8c21 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x269de47c sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3372e0a9 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x37e9aae0 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3811bf1b scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x48fa6b4d sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4d48a567 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x51695890 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x575c6976 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x692f7b98 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7a8d5701 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8b4d8d79 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ff37ee1 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa5b6706d sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xafc25361 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb380c454 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbc781235 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbcf58c7b sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe7b2e845 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xea383563 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf04bdf59 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfa7e8f66 sas_phy_alloc +EXPORT_SYMBOL drivers/ssb/ssb 0x14fa265d ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x15132277 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x186ed94b ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x1c307128 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x2be0023c __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x358d513f ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x44fcdc3b ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x5b050f73 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x65a17723 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x6611b3d1 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x68363d04 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x7ffbfefd ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x85f12ed0 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x980fb928 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xb4f11f2f ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xda3bd0af ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xde6e4b3e ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xfc97a4de ssb_device_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x665f88d2 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x7c08f8e1 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x9ba2911d adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xb4fd7d59 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0874d033 iio_buffer_store_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x08e187e9 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0a01515e iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2058e0b1 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x353f9b46 iio_buffer_write_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5c43cd35 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x62fc842d iio_trigger_poll_chained +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x66d1fc83 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6b82675d iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x70e21994 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x78d9bb48 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7ed736b0 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x83332f80 iio_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8754413b iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa12a2b96 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa42c9ce6 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xaeefab13 iio_buffer_read_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbbb850c3 iio_buffer_show_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd626e7be iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd628e1bf iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdec5c69b iio_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe4d5cdd9 iio_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe67f8634 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe763b1a4 iio_buffer_read_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xeba0a5c3 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x2bf012b2 kfifo_access_funcs +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xe1c58b79 iio_kfifo_allocate +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xe1da1c07 iio_kfifo_free +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x8dd39f20 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xb87c01a4 ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x30d0f13d ring_sw_access_funcs +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x97a4412b iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb10d00c7 iio_sw_rb_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x049a4131 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x144c5359 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x1543e806 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x176cfda1 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x1f209b0e target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x21f16bad sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x25b4e659 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x25ce197a core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x2ac8fc67 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x3924b1cb core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x43720c2c transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x47a5a7b9 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x4b54756b sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x5014b4e1 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x520a1547 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x5650f8b7 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x56890001 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x57188f99 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x5ae63130 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d43d001 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x61046463 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x62b63054 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x63bf8193 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x64a7dc21 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x6b0867e4 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x6deba209 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x6fc873bd transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x78e0723e target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7f2696dc transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x80156ed9 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x85492a7b iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8b7c5982 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x8df7bc00 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x8e2604df transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x8f34fdae transport_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x900c5ed8 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x98b9918a transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x9d1696b2 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xa36742c0 target_splice_sess_cmd_list +EXPORT_SYMBOL drivers/target/target_core_mod 0xa8732e0c target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0xa9891798 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xab2994e7 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xafe221a6 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xb2f25e8b transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xc3da6ac0 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xc835e250 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0xd02fd474 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0xd597a409 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xdc458fff transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xdc9ceff0 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xdd76710b transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xe037b8a4 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe2b313a0 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xe3080581 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe78f19b1 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xe7e1d49f target_get_task_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xedeb9f55 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf4a374a9 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf71498bc iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf80f8c63 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xfd26822d core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/telephony/phonedev 0xca9a992f phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xf4eb5198 phone_unregister_device +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x8940604d sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1ec1324c usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2c5ef093 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x42d418d3 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x54d1e022 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5a36fd8b usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x72160b28 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7c94bafc usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8cabce9d usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa10234db usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa586b759 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xaf3eae68 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xba9714e7 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd643f269 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe764bdb8 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf527fe6e usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x1dbfedeb usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x899637e4 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x2339ad98 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xddaa5f4c lcd_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x8cc573d6 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x9857e8ce display_device_register +EXPORT_SYMBOL drivers/video/output 0x558bc5cc video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x6d3ae2a1 video_output_register +EXPORT_SYMBOL drivers/video/syscopyarea 0x3d1c26de sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x1ecc6c00 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x3e19addc sys_imageblit +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x09f32f6b w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x42092955 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6a575998 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x706827d9 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x769e7745 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xcacc1c5b w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x20248f8a w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x71d44b20 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xca116e81 w1_ds2780_io_nolock +EXPORT_SYMBOL drivers/w1/wire 0x64d314c4 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x6847dd3b w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x9deb49d5 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xf6f4b023 w1_register_family +EXPORT_SYMBOL fs/configfs/configfs 0x015d33de config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x125324e2 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x1edb4798 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x31cbfc8a config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x51253467 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x6922eff5 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x7759b550 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x7daa7bf7 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x815d5436 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x8f3afd5e config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x9e8d895b config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xa8897bbb config_group_find_item +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0a727867 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x12ff161e fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x14ea0eff __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x1d4442de __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x1fbc9b74 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x2c0fd54c fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x363e0d63 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x378f2a02 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3ba5533f __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x45ea64d7 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x51580f22 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x5dab34d8 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7d271130 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x90cd9101 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x928ae43b fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x93c83008 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x94803271 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x968b67c2 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xa794e0f1 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xabece400 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xbc298891 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xc031c555 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xc41c0016 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcc988270 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xf8d50fcf fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xfdd52ebc fscache_init_cache +EXPORT_SYMBOL fs/nfsd/nfsd 0x0c8d6829 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xcbb738be nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x6190627b qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xd4adb1e6 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xd577d14e qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xdd33ae54 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xde1a9953 qtree_entry_unused +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0a13a100 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x14ab83ce lc_reset +EXPORT_SYMBOL lib/lru_cache 0x3cf9a304 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x41d8811d lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x50f43c5b lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x552f83c9 lc_get +EXPORT_SYMBOL lib/lru_cache 0xa14e0771 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xa9161176 lc_find +EXPORT_SYMBOL lib/lru_cache 0xc653ff61 lc_put +EXPORT_SYMBOL lib/lru_cache 0xcd9df73d lc_set +EXPORT_SYMBOL lib/lru_cache 0xce7aaa77 lc_changed +EXPORT_SYMBOL lib/lru_cache 0xd0c23606 lc_create +EXPORT_SYMBOL lib/lru_cache 0xda24a86b lc_destroy +EXPORT_SYMBOL lib/lru_cache 0xfdd584e2 lc_del +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8022 0xd3c6b5d7 unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xe6804943 register_8022_client +EXPORT_SYMBOL net/802/p8023 0xc026a211 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xcd041f87 destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x0ddb8eea register_snap_client +EXPORT_SYMBOL net/802/psnap 0xf54bd16f unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x01935e62 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x07e7ef77 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x07f4c8ea p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x08e4e293 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x12ff5dbc p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x153d79f3 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x1afc1716 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x1c120bad p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x1d4c87fa p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x1e304cfb p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x22b90756 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x2e0c4b83 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3aa5e6d3 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x3b031b95 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x43dcbf17 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x49b68eef p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x4c18c352 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x576c5a47 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x5bb4a87e p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x670eedce v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x6a221015 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x6aca6453 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x87e80a48 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x89ea3e63 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x8a3a8069 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x8d36e886 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x9202a968 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x92b559e0 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x9580b394 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9b24c445 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x9c49388b p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9e2f7593 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x9fc1cde8 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xaefce5ff p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xb74be525 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xbbbd2c70 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc1b812a3 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xd39efbce p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xdb478d17 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xdd965fd1 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xe0436079 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfc868ec8 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x33163d6c atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x68c18fe2 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xa884c108 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xe26898cd alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x0db17743 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x15bf14e1 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x47e64123 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x49014c13 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x53e51683 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x6eab27f9 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x8435290f register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x90ee7747 atm_charge +EXPORT_SYMBOL net/atm/atm 0x914293b2 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x9987055e atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa3145c5c atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xd0947b14 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf5eab1ab vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xfdf0dc33 vcc_insert_socket +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x120b69cd ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x16a04d77 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x312291d0 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x34b0bef8 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x8ce9fe4e ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa265aaf5 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xa3562a20 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xecf105e7 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xff606586 ax25_linkfail_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0594fd01 hci_find_ltk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0be79aec bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f3490ea hci_le_conn_update +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1331c023 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d59daaf hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2a6059dc bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2f1a3814 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x38a3b1d7 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39fdd48a bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b7740b7 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x407d2704 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4a86094c bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289 bt_printk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4bcee05b hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f3ac896 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x59faaeec hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5aaddf61 hci_find_link_key_type +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5f11ec22 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5f7df016 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x627f0ae4 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x80c164be bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c9a0c68 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x93d78d7b hci_le_start_enc +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9f250eb2 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa53951e3 hci_le_ltk_reply +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa9c54966 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb01b4c60 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbaae9cc7 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbd900128 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbe40dff6 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc48ffd13 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc51697d5 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcf12c6ac hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd30f1eaf hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd9b590c4 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdbe7141f hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdbe913e1 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xea93a0ff bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf5f0a733 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf815cad3 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfa203760 bt_accept_unlink +EXPORT_SYMBOL net/bridge/bridge 0x6d6d79ad br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x30edfc7e ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5e191935 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa061d016 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x18b54c9c caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x35b49017 caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x4128aeb5 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x43d4b39b caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x4aec93ca get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x504da5e8 cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x5807d88d caif_free_client +EXPORT_SYMBOL net/caif/caif 0x63e9812a cfcnfg_set_phy_state +EXPORT_SYMBOL net/can/can 0x01a37361 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x701bc4c0 can_send +EXPORT_SYMBOL net/can/can 0x7560fa86 can_ioctl +EXPORT_SYMBOL net/can/can 0x762a28cb can_proto_unregister +EXPORT_SYMBOL net/can/can 0x8800d876 can_proto_register +EXPORT_SYMBOL net/can/can 0xd57d4a0e can_rx_register +EXPORT_SYMBOL net/ceph/libceph 0x077dc9a2 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0affa1eb ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x0e3d0216 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x0fad47d6 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x153581f1 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x1637881b ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x18925a40 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1dd57e1b ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x1e98de21 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x261e6549 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x26d9a2bb __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x2790fea2 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x28176193 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2e34a1aa ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x337436c5 ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x3f173f2f ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x4377e5d3 ceph_osdc_wait_event +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x47aa5d4e ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x48a8b0cb ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x4abb83b4 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x614e4b12 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x63133bbe ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6a02fb9a ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x74daee66 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x76129d4c ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7cfc6e0d ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x83a62d86 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x8d637c1f ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x8e5b2b7a ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x8e69e586 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x91f4cb1b ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x9c4a6315 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x9decbb1c ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x9e93facf ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x9fcfe783 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xabbf54eb ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xade00540 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb07c88c0 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xb35bf4b7 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xba95d3cb ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xbf5ddbf3 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xc2575a03 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcdf72e25 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xd01b645a ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd2f2f379 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xd6a784ba ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xd6d60963 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0xd6ffda3f ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xd8e8b1bb ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xe3340a29 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xe61f1856 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xf15a18e8 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xf7289efd ceph_osdc_start_request +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0ed8255a ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2521461a wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2a197c5a ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x451f8ba6 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6e4fcc72 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x725eb10d ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x77b2d9da wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7e1d65a0 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9ccb12f4 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9da47d88 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa5313714 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc9420a64 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd017a15b ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x0ef1f1d3 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x1a02ad64 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x73b6e079 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x964b2cad ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xbffffaf6 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe0513230 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x647e540b __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x66d772a9 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x68ad3195 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8a1c1478 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x965c0bb2 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9b03278c nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf77edef5 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0xa9d774dc xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xdd7e4d72 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x77abdd74 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xce5b4eeb ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe1155465 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xec2af03f ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0xd2be364e xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xfb990072 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x03979532 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xf52f6aa3 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x07602fc7 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x372402cf ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x479ed435 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6aa3834b ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x76db7a47 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd3d45bfa ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe97c9510 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xea981004 ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x06c2f83a irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0d6cf35b irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x126443c0 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x1b4625d4 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x22caf86e hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x25bac142 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x29baa358 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x2d3765bc hashbin_find +EXPORT_SYMBOL net/irda/irda 0x33a64d6f irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3a45216b irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x4479ef51 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x538d5d22 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x5391380c proc_irda +EXPORT_SYMBOL net/irda/irda 0x572583cf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x5f55c3a2 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x60873cdf async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6e35c0a1 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x73fb7fa8 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x74c6eb16 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7aa1ddbc irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x7de04a81 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x80da7829 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x853ce277 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x8fe05f9f irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x97626bbd irlap_open +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x99bf8a64 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x9d23bd34 irlap_close +EXPORT_SYMBOL net/irda/irda 0xb5c93e6b irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xb710786e hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbf285a4c hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xc3a512dd hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xc4e43c6c irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xceea6b87 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xd67aabed irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xd7fc158d irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xdcd16560 iriap_close +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xde9840b4 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xe654762b iriap_open +EXPORT_SYMBOL net/irda/irda 0xe6f1d9f3 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xedf805a9 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0xef16660b hashbin_new +EXPORT_SYMBOL net/irda/irda 0xf9754673 irda_device_set_media_busy +EXPORT_SYMBOL net/l2tp/l2tp_core 0xbd980344 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x1376c512 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x2ad106d6 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x37ddd62b lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x3b32a53b lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x654ceb56 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x8f6f45e5 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x914f1a76 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xb4f7554c lapb_data_request +EXPORT_SYMBOL net/llc/llc 0x1b61d9e0 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x57102981 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x6eeb6f8f llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x7d0b1357 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x9656f8a0 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xa10199ec llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xad47935f llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xd1a11274 llc_sap_close +EXPORT_SYMBOL net/mac80211/mac80211 0x01c6db9f ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x17217a33 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x17cb5c43 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x1c9992ab ieee80211_get_operstate +EXPORT_SYMBOL net/mac80211/mac80211 0x25844a49 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x3191a0dd ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x3487cd87 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x35a9d94b ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x3761d0c9 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89 ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x4247781d ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x457e284f ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x4b858479 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x4c7645b5 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x4f0b2466 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x4ff3fbf6 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x50683215 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x56a1488f ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x59cdf1f5 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x5a5889e0 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5d64ede4 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x5dbb8325 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x63caa554 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71 ieee80211_sta_eosp_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x66407abf ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x685cca25 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x6af22a7f ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x82297f2f ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x85cd0d58 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x88bb70d9 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x9a59eada ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9afa6606 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x9b4a59b3 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xa63c24af ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa8e9eba9 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaa2ab377 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xae82af63 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xb468a245 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb73caa09 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xbf5aef04 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc06602ac ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xc2004991 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xc2d54d3e ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc31e5cd8 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc4ad7050 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc9d456aa ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xca69b60f __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xcc7e515b ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xccc6daee ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xd9456aa6 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe09462b9 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xe4ae5672 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0xeba14d72 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xec8590b0 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf7c340da ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xfdfec9c4 ieee80211_rate_control_register +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0c51489c ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x31f35a31 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3bcb9bff unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x541b782d ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x548957d1 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6db31909 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8319e428 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xabce86bd ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xad7c6c7b ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbbdc64fb ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xca9832ec ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd0cd6625 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdd8ab59c ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe7dc1812 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x6cea601e __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8c2b294f __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xe20a2f53 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xf820d9ec nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x3791dc29 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x42a02dd1 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4480f1f5 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x519628d0 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x8fd4db64 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xa1ce59bf xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xba450105 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xcd0a4ea1 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xd655df28 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xdaa894ca xt_register_match +EXPORT_SYMBOL net/nfc/nci/nci 0x207e5860 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x37f2ea01 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x695c6b3e nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x77e638fc nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xcabd07fd nci_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e nfc_printk +EXPORT_SYMBOL net/nfc/nfc 0x3f6447a5 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x66ccd113 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x87a7bdc3 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x9e88e911 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xbe3ef402 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0xd9fc4766 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xdf08ce2a nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xf07a432d nfc_alloc_skb +EXPORT_SYMBOL net/phonet/phonet 0x072d5fe9 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x23b6ef81 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x38927bd9 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x6c32829e phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x806f4297 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xe0f4c15f phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xe2f34aa6 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xf96ea863 pn_sock_get_port +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x04a3ab65 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0eb55dc6 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x12831d25 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x308addfb rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x609d55b3 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8e3114aa rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x92da48fc rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9ecef526 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9f57ffa4 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xaac43fc1 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc3a52be1 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdaddcfe1 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe384f33b rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf3ea8067 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfa5b9d20 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x47611d6c svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xf53d351b register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x203d5e5c wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x85f1850a wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0adb4d2c wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86 ieee802_11_parse_elems_crc +EXPORT_SYMBOL net/wireless/cfg80211 0x13cc75f4 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x16784163 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x1aeee2d3 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x1dd86930 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x205bd624 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x20b15a20 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x21f0d607 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x2c1d5916 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x34d9af7e ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x39df7935 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x3d2454c7 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x4099fcf0 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x419376c9 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x47aeb0c7 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x4cb6ccf2 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x513fe3dd wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x540911db cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x59a27749 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x5c616d57 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x5d02545a __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x5e291112 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x5e90af52 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6fc32d83 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x7114bc25 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x732d7a95 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0x761d3d31 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x79306cf4 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x87ddde1e ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x889cbfdf cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x93a6b673 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x93bf258b cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9f7a56af cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa49adb4b cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xa62bcf9c cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xa785834a cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xb41aa1a3 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xba7af891 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xc04be5cb cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xd42a4b05 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe3fa6b11 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xe9571758 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xe97734dc cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xeec29f9a cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf096ed56 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xf2d5f181 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xf5be5e03 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xf8dd4224 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf9046624 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xfa260e78 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xfadc210e cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x46cf2ad5 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x594f5df4 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x68a1093e lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x9b22b217 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xa76ea025 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xdf72ff80 lib80211_get_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x61489f7a ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0xc6afbf8a 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 0x1cd09062 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x441933e5 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x45fdd9a8 snd_seq_event_port_attach +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 0x94509180 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 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xe772090f snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xf5fd4f5f snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x0df2e317 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x26885c56 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7ab3ab98 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7ddf2a2e snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x85c27c7a snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x85e4ac82 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd4945484 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xfcf964a7 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xc3237cf9 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd-hwdep 0xf7311bfd snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0171c0a1 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x181e364b snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x25be7462 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3b22e06e snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x428bc107 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5bf46b98 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6390a032 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6552b28a snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x681174a4 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7b65b2d0 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8482f6f7 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x848ca073 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x84b7a88d snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9281b9de snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc6086139 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf5e0aee8 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfa695fbb snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x09f33050 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/pci/ac97/snd-ac97-codec 0x0018bf40 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x15af3dd3 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x20ca2645 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x55c338dd snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6ae1eb2c snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8231104a snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x82f9d122 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8865aca4 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8c33eac1 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x93033bdf snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x930a3d51 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa04e88f9 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa93d424c snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xad552558 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xae0baba6 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe456c756 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe9c42f9e snd_ac97_pcm_close +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 0x8b9ce2d9 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0014c886 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x0015ff52 da903x_query_status +EXPORT_SYMBOL vmlinux 0x00249b2d igrab +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x0051b8ff inetdev_by_index +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0081030e omap_vram_reserve +EXPORT_SYMBOL vmlinux 0x0084e86d unregister_shrinker +EXPORT_SYMBOL vmlinux 0x008f1e24 amba_release_regions +EXPORT_SYMBOL vmlinux 0x0090462c tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x00d3eb63 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x00dce2c6 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x00f86489 simple_rename +EXPORT_SYMBOL vmlinux 0x00fe34b5 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01002e41 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x010c83cb invalidate_bdev +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01278523 thaw_process +EXPORT_SYMBOL vmlinux 0x01424f59 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x01644c3f put_mnt_ns +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a3d310 omap_set_dma_channel_mode +EXPORT_SYMBOL vmlinux 0x01b21630 init_net +EXPORT_SYMBOL vmlinux 0x01b75398 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x01bb89db blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x021dc488 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x02277f5d sk_free +EXPORT_SYMBOL vmlinux 0x023a50ab proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x024bf88f omap_modify_dma_chain_params +EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table +EXPORT_SYMBOL vmlinux 0x02573b36 omap_disable_dma_irq +EXPORT_SYMBOL vmlinux 0x0259a49a soft_cursor +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL vmlinux 0x028cf511 tty_kref_put +EXPORT_SYMBOL vmlinux 0x02a0d156 gpmc_prefetch_reset +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02f95f92 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x02fe47b5 dma_set_mask +EXPORT_SYMBOL vmlinux 0x0302c48b idr_destroy +EXPORT_SYMBOL vmlinux 0x03073b97 omap_writel +EXPORT_SYMBOL vmlinux 0x031ba9bf atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034f9e73 param_ops_byte +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x03662bae mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x0377dd56 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037a8fce dump_write +EXPORT_SYMBOL vmlinux 0x037de4af neigh_seq_start +EXPORT_SYMBOL vmlinux 0x03807537 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x03ab6dbd dev_uc_del +EXPORT_SYMBOL vmlinux 0x03b45e66 mnt_pin +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e438e9 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04141f80 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x04161db0 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x041f25c3 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04265e98 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x042f35bf cdrom_release +EXPORT_SYMBOL vmlinux 0x04349f09 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x04750e2d user_revoke +EXPORT_SYMBOL vmlinux 0x04869d62 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04b138a6 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x04bf3866 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine +EXPORT_SYMBOL vmlinux 0x04d1848d tty_devnum +EXPORT_SYMBOL vmlinux 0x04da3533 __register_binfmt +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x0501409f __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x0503f5ef cfb_fillrect +EXPORT_SYMBOL vmlinux 0x050ce4e6 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x05111bfe of_node_get +EXPORT_SYMBOL vmlinux 0x0518a703 snd_pcm_new_stream +EXPORT_SYMBOL vmlinux 0x051c241c do_truncate +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x0566148a gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x058db3f5 up_read +EXPORT_SYMBOL vmlinux 0x05b24740 blk_complete_request +EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion +EXPORT_SYMBOL vmlinux 0x05d5b9bc tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x05e05fea new_inode +EXPORT_SYMBOL vmlinux 0x05f981a6 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x061069c9 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x06259949 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x06448ddc nand_unlock +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068146fa blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x06aae600 nand_scan_ident +EXPORT_SYMBOL vmlinux 0x06c5544c skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x06ecb141 ata_print_version +EXPORT_SYMBOL vmlinux 0x06eff722 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07051ea6 register_sound_midi +EXPORT_SYMBOL vmlinux 0x0711133e mdiobus_register +EXPORT_SYMBOL vmlinux 0x073b88cb fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x07545c8c load_nls_default +EXPORT_SYMBOL vmlinux 0x075d5ad6 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x07641b67 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x076d634e kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x07779be5 no_llseek +EXPORT_SYMBOL vmlinux 0x0781bbb9 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x0784a461 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a5f503 omap_readw +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07bd322c vfs_readlink +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d415ab scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07db1bd8 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x07ef4f65 kill_pid +EXPORT_SYMBOL vmlinux 0x0809149b xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x08162078 path_put +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x084aedec unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x0897d07c d_path +EXPORT_SYMBOL vmlinux 0x08a4c534 omap_mcbsp_get_rx_delay +EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x09023582 log_wait_commit +EXPORT_SYMBOL vmlinux 0x0925506f is_container_init +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09574aa2 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x096edcc6 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a55a63 sock_map_fd +EXPORT_SYMBOL vmlinux 0x09a7f7b7 kdb_current_task +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c62921 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09dbf8a6 lock_super +EXPORT_SYMBOL vmlinux 0x09e8c2b9 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x09f33d92 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x0a163c8b bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x0a235646 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a29f6a1 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a34d668 is_bad_inode +EXPORT_SYMBOL vmlinux 0x0a419cb0 inet_bind +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a674d06 journal_set_features +EXPORT_SYMBOL vmlinux 0x0a8ec7e9 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0aaecff6 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad5fb6f down_write_trylock +EXPORT_SYMBOL vmlinux 0x0adaac37 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x0b073277 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2c5450 read_cache_pages +EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b4f5d57 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x0b4f8d34 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x0b69a29f down_trylock +EXPORT_SYMBOL vmlinux 0x0b7086d9 param_get_short +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b8ccdf2 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x0b91cc5f snd_dma_get_reserved_buf +EXPORT_SYMBOL vmlinux 0x0bc04336 md_register_thread +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bdc4683 tty_check_change +EXPORT_SYMBOL vmlinux 0x0c2ed147 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0c45ab31 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x0c5be6a0 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x0c635409 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9c948c put_disk +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca54fee _test_and_set_bit +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb7ea64 lookup_hash +EXPORT_SYMBOL vmlinux 0x0cdbdef5 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x0cdd158d sg_alloc_table +EXPORT_SYMBOL vmlinux 0x0cf0f08c sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x0d011e7b of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0d16b7e5 omap_dss_get_overlay_manager +EXPORT_SYMBOL vmlinux 0x0d262459 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d594387 skb_unlink +EXPORT_SYMBOL vmlinux 0x0d6d3b17 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x0d6f5d45 arp_tbl +EXPORT_SYMBOL vmlinux 0x0d8bbc33 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x0d988053 module_put +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db3877d ___dma_single_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x0dce6c69 snd_pcm_mmap_data +EXPORT_SYMBOL vmlinux 0x0dd2aa90 kobject_init +EXPORT_SYMBOL vmlinux 0x0ddd86dc napi_gro_frags +EXPORT_SYMBOL vmlinux 0x0deee859 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x0e342f80 d_alloc_name +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e59b181 tty_port_close +EXPORT_SYMBOL vmlinux 0x0e62e9ee seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x0e690470 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x0e86853d dev_notice +EXPORT_SYMBOL vmlinux 0x0ea728ba iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init +EXPORT_SYMBOL vmlinux 0x0eda0c27 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x0ef46b7d netlink_dump_start +EXPORT_SYMBOL vmlinux 0x0f0fe60d generic_write_end +EXPORT_SYMBOL vmlinux 0x0f31425c clk_add_alias +EXPORT_SYMBOL vmlinux 0x0f3cb664 arp_create +EXPORT_SYMBOL vmlinux 0x0f50021c set_bh_page +EXPORT_SYMBOL vmlinux 0x0f59f197 param_array_ops +EXPORT_SYMBOL vmlinux 0x0f64769f nand_scan_bbt +EXPORT_SYMBOL vmlinux 0x0f6eff7e tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x0f78a7e1 snd_device_free +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb080ab textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x0fb0e29f init_timer_key +EXPORT_SYMBOL vmlinux 0x0fb5e916 misc_register +EXPORT_SYMBOL vmlinux 0x0fbf47df __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x0fcb0e19 address_space_init_once +EXPORT_SYMBOL vmlinux 0x0fdebc10 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x0fefeb2e ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x0ff0f9dd bio_unmap_user +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x10007831 journal_load +EXPORT_SYMBOL vmlinux 0x10053b2f tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x102fe30b jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x1074c970 clk_disable +EXPORT_SYMBOL vmlinux 0x1075b18f mdiobus_read +EXPORT_SYMBOL vmlinux 0x10790299 security_path_truncate +EXPORT_SYMBOL vmlinux 0x1079265c give_up_console +EXPORT_SYMBOL vmlinux 0x108e17dc jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x10b5da89 register_key_type +EXPORT_SYMBOL vmlinux 0x10c80014 dma_pool_create +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10df4587 rt6_lookup +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10ee79a7 wireless_send_event +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112748bd omap_vrfb_adjust_size +EXPORT_SYMBOL vmlinux 0x1129748f scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x112f2875 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x113420c3 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x11376949 __scm_destroy +EXPORT_SYMBOL vmlinux 0x11633870 param_set_ushort +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11711666 dquot_transfer +EXPORT_SYMBOL vmlinux 0x1186b38a find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x119383d7 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x119f8dee skb_seq_read +EXPORT_SYMBOL vmlinux 0x11b34b96 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x11b49bcc snd_dma_alloc_pages +EXPORT_SYMBOL vmlinux 0x11befe6c request_firmware +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1217c17e phy_disconnect +EXPORT_SYMBOL vmlinux 0x121a425b i2c_transfer +EXPORT_SYMBOL vmlinux 0x12530356 omapdss_default_get_recommended_bpp +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x128fa778 bio_map_kern +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12c20ae5 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x12c36185 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12de028c mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x12f3e094 snd_pcm_stop +EXPORT_SYMBOL vmlinux 0x12f76ad5 snd_pcm_open_substream +EXPORT_SYMBOL vmlinux 0x12f90cdf tcp_poll +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13044de2 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x1332f4d0 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x13424522 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x136aa7bd snd_pcm_kernel_ioctl +EXPORT_SYMBOL vmlinux 0x1390fdd4 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x13acb7c4 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x13cf0691 simple_empty +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d6e3be clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x13ea5c25 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x13ec80f3 param_set_short +EXPORT_SYMBOL vmlinux 0x14129f00 snd_jack_set_parent +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x1424a578 rtnl_notify +EXPORT_SYMBOL vmlinux 0x143ea27b abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x14592d47 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x148c7a2d alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x148c95f5 serio_interrupt +EXPORT_SYMBOL vmlinux 0x149a1e9c fget +EXPORT_SYMBOL vmlinux 0x14d4a9c5 _change_bit +EXPORT_SYMBOL vmlinux 0x14de9de2 proc_mkdir +EXPORT_SYMBOL vmlinux 0x14ef56ec napi_gro_receive +EXPORT_SYMBOL vmlinux 0x15331242 omap_iounmap +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15738e15 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x1577d532 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x1580fe7f sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x159581ab key_put +EXPORT_SYMBOL vmlinux 0x159ea64d input_reset_device +EXPORT_SYMBOL vmlinux 0x15ad7a88 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x15aec70a bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x15e10144 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x1608ba3e phy_device_register +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16514b8c tty_shutdown +EXPORT_SYMBOL vmlinux 0x1654a0b4 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x1678d76f scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x1689c636 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x16b97357 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x16c42197 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x16c80b5a blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x16ea2e79 netdev_notice +EXPORT_SYMBOL vmlinux 0x170f7ce8 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x173ca64b of_device_unregister +EXPORT_SYMBOL vmlinux 0x1740566e vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x17500ec6 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x175236f4 omap_mcbsp_start +EXPORT_SYMBOL vmlinux 0x1756e279 cdev_init +EXPORT_SYMBOL vmlinux 0x175e4a81 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17c73b2b pl330_chan_ctrl +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e5390b tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x1813bae7 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x18350f60 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x1860d488 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x18718adb blk_get_queue +EXPORT_SYMBOL vmlinux 0x187a2a6a ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18a76463 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x18ad98c8 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x18da5947 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x18fcc1c3 dev_open +EXPORT_SYMBOL vmlinux 0x190c1312 mmc_erase +EXPORT_SYMBOL vmlinux 0x19215eed aio_complete +EXPORT_SYMBOL vmlinux 0x194128c3 omap_mcbsp_get_fifo_size +EXPORT_SYMBOL vmlinux 0x195f1dc8 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock +EXPORT_SYMBOL vmlinux 0x197dc3b3 omap_set_dma_src_burst_mode +EXPORT_SYMBOL vmlinux 0x19810102 write_cache_pages +EXPORT_SYMBOL vmlinux 0x19812f18 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL vmlinux 0x1989d9ab lock_sock_fast +EXPORT_SYMBOL vmlinux 0x199dc1da input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19d2bd8e sockfd_lookup +EXPORT_SYMBOL vmlinux 0x19e5f2fd __getblk +EXPORT_SYMBOL vmlinux 0x19f1cf31 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x19fa71d5 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x1a051eb7 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x1a0a2432 snd_ctl_new1 +EXPORT_SYMBOL vmlinux 0x1a0e49fc __dquot_transfer +EXPORT_SYMBOL vmlinux 0x1a0f93f0 __netif_schedule +EXPORT_SYMBOL vmlinux 0x1a47a2ab devm_free_irq +EXPORT_SYMBOL vmlinux 0x1a6024f5 __cleancache_flush_page +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a8faa2d tty_write_room +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1ad59dac dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x1adef47d mmc_host_disable +EXPORT_SYMBOL vmlinux 0x1afe82e9 netdev_info +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b10f757 d_set_d_op +EXPORT_SYMBOL vmlinux 0x1b2072c9 of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0x1b43d4e3 snd_jack_report +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1babe60e omap_st_set_chgain +EXPORT_SYMBOL vmlinux 0x1bb98b5c sock_i_ino +EXPORT_SYMBOL vmlinux 0x1bd72663 kobject_get +EXPORT_SYMBOL vmlinux 0x1bd85717 blk_rq_init +EXPORT_SYMBOL vmlinux 0x1bef782e i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x1bfa4b1a of_get_property +EXPORT_SYMBOL vmlinux 0x1c15032e mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c53384b netif_carrier_on +EXPORT_SYMBOL vmlinux 0x1c67fb2b phy_device_free +EXPORT_SYMBOL vmlinux 0x1caa1474 single_release +EXPORT_SYMBOL vmlinux 0x1cb1e4fe ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x1cb8b1f7 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cc845f4 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc +EXPORT_SYMBOL vmlinux 0x1ce06f82 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x1ce7e046 bioset_free +EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL vmlinux 0x1d105666 submit_bio +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3865da param_get_invbool +EXPORT_SYMBOL vmlinux 0x1d43d57c seq_putc +EXPORT_SYMBOL vmlinux 0x1d5d085c __neigh_event_send +EXPORT_SYMBOL vmlinux 0x1db7dc40 pgprot_kernel +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd4a5d5 journal_start_commit +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0813f6 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x1e1359de skb_gso_segment +EXPORT_SYMBOL vmlinux 0x1e160573 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e2e0b7f bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x1e3a778f skb_checksum_help +EXPORT_SYMBOL vmlinux 0x1e5cc12a inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6f6b43 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x1e90f7d5 __seq_open_private +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eac30d6 scsi_print_result +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ec77787 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x1eda2b62 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x1ef1f75f posix_acl_valid +EXPORT_SYMBOL vmlinux 0x1f00508d max8925_reg_write +EXPORT_SYMBOL vmlinux 0x1f51be71 blk_get_request +EXPORT_SYMBOL vmlinux 0x1f579f1d writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x1f704784 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x1f736dcd vfs_read +EXPORT_SYMBOL vmlinux 0x1f74aaca skb_copy +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1fcd5c17 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x203f35af input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x2041df22 ihold +EXPORT_SYMBOL vmlinux 0x2043ac73 __f_setown +EXPORT_SYMBOL vmlinux 0x204e3fa8 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x205ec8de omap_dispc_register_isr +EXPORT_SYMBOL vmlinux 0x206e602e generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x208221a4 bio_endio +EXPORT_SYMBOL vmlinux 0x20945c36 con_is_bound +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20c23f6d start_tty +EXPORT_SYMBOL vmlinux 0x20c7d90a seq_path +EXPORT_SYMBOL vmlinux 0x20cc9e87 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x20cfe35c vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0x20e289ab devm_ioport_map +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x212ba383 dma_alloc_writecombine +EXPORT_SYMBOL vmlinux 0x21369be5 inode_change_ok +EXPORT_SYMBOL vmlinux 0x214b596d genl_unregister_family +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2178dd8d security_path_rmdir +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x21bcf466 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x21ded506 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x21f44647 scsi_device_put +EXPORT_SYMBOL vmlinux 0x21f678b9 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x220fde61 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x221a500d __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x221d50f1 flush_signals +EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get +EXPORT_SYMBOL vmlinux 0x22257da6 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x222d16e3 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222ed0c2 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2236cf1a deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x223cc898 omap_vrfb_max_height +EXPORT_SYMBOL vmlinux 0x223f881c mii_check_link +EXPORT_SYMBOL vmlinux 0x225d22c7 have_submounts +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x2268e4eb generic_permission +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x227ae37f arp_send +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x2289ac57 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x22952572 follow_down_one +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22b5afbb account_page_writeback +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23332353 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x237047ef skb_free_datagram +EXPORT_SYMBOL vmlinux 0x23869fa6 cdev_del +EXPORT_SYMBOL vmlinux 0x238ea37e seq_read +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23bfc220 blk_end_request +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23f0db64 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x23f56ee4 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x242818f0 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x243ef073 register_filesystem +EXPORT_SYMBOL vmlinux 0x24484e60 kernel_bind +EXPORT_SYMBOL vmlinux 0x245087b1 netdev_set_bond_master +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x247cbb94 tcp_seq_open +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x248f2a61 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x2490ca80 input_allocate_device +EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL vmlinux 0x24b8b9a1 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x24c0342f netif_carrier_off +EXPORT_SYMBOL vmlinux 0x24c131ec ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x24c3bdfa led_brightness_set +EXPORT_SYMBOL vmlinux 0x24df7350 vfs_writev +EXPORT_SYMBOL vmlinux 0x24e269a0 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x25146c53 md_flush_request +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x2528be29 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x254cc43a mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x255fc7d9 generic_write_sync +EXPORT_SYMBOL vmlinux 0x257fc610 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x259b7ec9 netdev_update_features +EXPORT_SYMBOL vmlinux 0x259e2799 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x25a2c548 clk_get_parent +EXPORT_SYMBOL vmlinux 0x25c2023f get_user_pages +EXPORT_SYMBOL vmlinux 0x25c329fd ilookup +EXPORT_SYMBOL vmlinux 0x25c52740 snd_device_new +EXPORT_SYMBOL vmlinux 0x25c60ec1 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25f580b2 sock_update_classid +EXPORT_SYMBOL vmlinux 0x2617b0d9 inode_init_always +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2653e90a tty_set_operations +EXPORT_SYMBOL vmlinux 0x26666454 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x267a2fc0 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26d3bf31 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x26e6a291 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26fb5996 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x27068603 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x2721e8bc sock_kmalloc +EXPORT_SYMBOL vmlinux 0x2746d99d d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x276db34f nand_bch_init +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2790554d abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x2798814a security_path_chown +EXPORT_SYMBOL vmlinux 0x27a29b83 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27d3e461 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27f1d843 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x27f3f1bb vfs_open +EXPORT_SYMBOL vmlinux 0x280611b5 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next +EXPORT_SYMBOL vmlinux 0x2837e98f devm_ioremap +EXPORT_SYMBOL vmlinux 0x2843be75 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x2848cb40 default_llseek +EXPORT_SYMBOL vmlinux 0x286a2d3d bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x286bc31f scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x2897fc48 omap_cfg_reg +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28c58024 kernel_read +EXPORT_SYMBOL vmlinux 0x28c61ca6 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x28cb7a30 phy_stop +EXPORT_SYMBOL vmlinux 0x28d6861d __vmalloc +EXPORT_SYMBOL vmlinux 0x28ee2b33 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x28f169de blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x28f6b2c5 snd_seq_root +EXPORT_SYMBOL vmlinux 0x2923c557 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x29437582 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x294dc421 snd_ctl_free_one +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29757b5c mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x298d53c4 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x2999d5e9 misc_deregister +EXPORT_SYMBOL vmlinux 0x299c10c3 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x29b96a8a inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x29c15560 snd_power_wait +EXPORT_SYMBOL vmlinux 0x29e25333 input_release_device +EXPORT_SYMBOL vmlinux 0x29e3357d mdiobus_write +EXPORT_SYMBOL vmlinux 0x29f4ada8 sk_run_filter +EXPORT_SYMBOL vmlinux 0x29f7a2c0 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x29f7e5b3 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a08b6ec snd_ctl_boolean_mono_info +EXPORT_SYMBOL vmlinux 0x2a3aa678 _test_and_clear_bit +EXPORT_SYMBOL vmlinux 0x2a4f97ca xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x2a6e9db6 irq_set_chip +EXPORT_SYMBOL vmlinux 0x2a773db0 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa2f954 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x2aa69e6e tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x2ac6193b __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x2b0b8d5c neigh_update +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0bbd15 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b378f89 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x2b58dedb cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit +EXPORT_SYMBOL vmlinux 0x2b768ca2 netdev_state_change +EXPORT_SYMBOL vmlinux 0x2b833f02 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x2b8d585e eth_header_parse +EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba5ec7c inode_needs_sync +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bdbbec1 snd_ctl_register_ioctl +EXPORT_SYMBOL vmlinux 0x2bdd6e28 node_states +EXPORT_SYMBOL vmlinux 0x2bdf590f __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x2bfedcc3 register_nls +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2cb4625e sock_create_kern +EXPORT_SYMBOL vmlinux 0x2cb8beeb free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x2cc07d98 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x2cd9fe92 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x2cf5ea3b dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d2f7161 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock +EXPORT_SYMBOL vmlinux 0x2d3da436 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x2d6bebf6 stop_tty +EXPORT_SYMBOL vmlinux 0x2d7f44cc pl330_chan_status +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d8b8198 _snd_ctl_add_slave +EXPORT_SYMBOL vmlinux 0x2d94dbd9 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x2d967613 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x2dbc6707 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x2dbd4352 softnet_data +EXPORT_SYMBOL vmlinux 0x2dd5b59a thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x2df1b94b skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2e0528c9 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x2e1524c4 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x2e175906 block_write_end +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e59fc7a ab8500_gpadc_get +EXPORT_SYMBOL vmlinux 0x2e8dfeae journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x2eb9bb21 proc_dostring +EXPORT_SYMBOL vmlinux 0x2ebd8057 udp_seq_open +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2eda71ca ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f009c41 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f207ba8 tcf_em_register +EXPORT_SYMBOL vmlinux 0x2f22bd1f fd_install +EXPORT_SYMBOL vmlinux 0x2f3417c6 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x2f6e9f39 snd_register_oss_device +EXPORT_SYMBOL vmlinux 0x2fad2581 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fb8384d input_register_handler +EXPORT_SYMBOL vmlinux 0x2fc5f230 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x2fd85baf ___ratelimit +EXPORT_SYMBOL vmlinux 0x2fedfa76 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x3006e61a inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x300eecb9 snd_ctl_rename_id +EXPORT_SYMBOL vmlinux 0x30113f64 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x30272275 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x30279127 scsi_free_command +EXPORT_SYMBOL vmlinux 0x303034c5 htc_egpio_get_wakeup_irq +EXPORT_SYMBOL vmlinux 0x304c1d5a kernel_getsockname +EXPORT_SYMBOL vmlinux 0x305cf97a ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308aad56 omap_vrfb_min_phys_size +EXPORT_SYMBOL vmlinux 0x3092d85e omap2_mcbsp1_mux_fsr_src +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30aa1365 inet_put_port +EXPORT_SYMBOL vmlinux 0x30b3a90e of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31134bdc mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x31184362 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x311bc3c0 of_match_node +EXPORT_SYMBOL vmlinux 0x311c7880 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x311d1bcb __sk_dst_check +EXPORT_SYMBOL vmlinux 0x31274ab0 __cleancache_flush_inode +EXPORT_SYMBOL vmlinux 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit +EXPORT_SYMBOL vmlinux 0x31726acc blk_delay_queue +EXPORT_SYMBOL vmlinux 0x318aa665 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31a28a1d led_blink_set +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31c22ffb dev_set_mtu +EXPORT_SYMBOL vmlinux 0x31e32aa3 md_check_recovery +EXPORT_SYMBOL vmlinux 0x3202158c twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x3248a5b2 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x32512ece __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x326727f3 write_inode_now +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x329d14e9 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x329d833d current_fs_time +EXPORT_SYMBOL vmlinux 0x32d590bd tc6393xb_lcd_set_power +EXPORT_SYMBOL vmlinux 0x32d5eb64 dpi_check_timings +EXPORT_SYMBOL vmlinux 0x32f3dc42 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x332935eb dev_mc_sync +EXPORT_SYMBOL vmlinux 0x3357bdde blk_put_queue +EXPORT_SYMBOL vmlinux 0x3361c11e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x33627d0c register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x3368f5a7 phy_start +EXPORT_SYMBOL vmlinux 0x336923a5 request_key_async +EXPORT_SYMBOL vmlinux 0x336a4465 bdevname +EXPORT_SYMBOL vmlinux 0x33b47abc ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33ef31ae pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33ff1ba9 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x3427837b __ip_select_ident +EXPORT_SYMBOL vmlinux 0x344e0fe5 seq_write +EXPORT_SYMBOL vmlinux 0x34513a7e journal_get_write_access +EXPORT_SYMBOL vmlinux 0x34681e8d xfrm_register_type +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x34918cff tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c4ca28 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x34da0ddf make_bad_inode +EXPORT_SYMBOL vmlinux 0x35338802 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x354ad6d2 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x356bacae mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x357c90d2 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x35a16e51 pl330_release_channel +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35ca8cfa dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x35d7fbbe __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x35da67f4 omap_writew +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360e9cdc tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x3612c10f tmio_core_mmc_enable +EXPORT_SYMBOL vmlinux 0x361bce60 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x361e9eed tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x36318112 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x3635b1ed writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x364b3fff up +EXPORT_SYMBOL vmlinux 0x36a05961 inet6_release +EXPORT_SYMBOL vmlinux 0x36b06bff max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36e52e1e journal_wipe +EXPORT_SYMBOL vmlinux 0x370c4bc8 journal_revoke +EXPORT_SYMBOL vmlinux 0x3718f00e snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL vmlinux 0x372f95ac ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x373c2c31 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3771ed6e generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x377a1885 omap_mcbsp_get_tx_delay +EXPORT_SYMBOL vmlinux 0x3788fbbc vm_insert_page +EXPORT_SYMBOL vmlinux 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL vmlinux 0x379a0c42 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x379c84d8 netdev_crit +EXPORT_SYMBOL vmlinux 0x379f5837 param_set_invbool +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c8fc6b flush_kernel_dcache_page +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x380071c3 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x3808f0ee blk_requeue_request +EXPORT_SYMBOL vmlinux 0x38184c68 omapdss_sdi_display_enable +EXPORT_SYMBOL vmlinux 0x3853c1dc d_alloc_root +EXPORT_SYMBOL vmlinux 0x38634705 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x3899d375 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x38ba5dcf proto_register +EXPORT_SYMBOL vmlinux 0x38bf7469 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x38db1927 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x39020613 pipe_lock +EXPORT_SYMBOL vmlinux 0x391e81ec journal_clear_err +EXPORT_SYMBOL vmlinux 0x3926761f skb_dequeue +EXPORT_SYMBOL vmlinux 0x392bd78c tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x392cadc3 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x393ccd87 serio_rescan +EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a032b3 mii_link_ok +EXPORT_SYMBOL vmlinux 0x39a8def4 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x39acc8e9 register_sound_special +EXPORT_SYMBOL vmlinux 0x39afba55 km_query +EXPORT_SYMBOL vmlinux 0x39b66c84 dquot_commit +EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL vmlinux 0x39ea200a skb_recycle +EXPORT_SYMBOL vmlinux 0x39f8735e xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x3a0d7a1c kobject_set_name +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a29323e snd_timer_close +EXPORT_SYMBOL vmlinux 0x3a3f92a5 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x3a50fddd inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x3a6a149d tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x3a73b63c twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x3a8788df __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x3a911f27 pl330_request_channel +EXPORT_SYMBOL vmlinux 0x3a99fd95 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9cfde8 of_node_put +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3ab4a2cc inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x3ac02a26 register_exec_domain +EXPORT_SYMBOL vmlinux 0x3ae3a2c5 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x3b04a189 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0x3b1b75bc sync_blockdev +EXPORT_SYMBOL vmlinux 0x3b1c8441 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b5f737a inet6_getname +EXPORT_SYMBOL vmlinux 0x3b6da7f1 iget_locked +EXPORT_SYMBOL vmlinux 0x3b84b3c8 vm_map_ram +EXPORT_SYMBOL vmlinux 0x3b8f7323 dev_load +EXPORT_SYMBOL vmlinux 0x3b91f3af snd_free_pages +EXPORT_SYMBOL vmlinux 0x3b9419d5 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x3b9674ed xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x3b9f7a8d set_create_files_as +EXPORT_SYMBOL vmlinux 0x3bb7ffc0 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x3bbc053e udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x3bbf46ea vga_base +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c1ef7c7 down_read_trylock +EXPORT_SYMBOL vmlinux 0x3c349da5 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x3c56afbc bdget +EXPORT_SYMBOL vmlinux 0x3c614590 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x3c6d9f3b dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c8cfc8c max8925_set_bits +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3c9d5e8d omap_mcbsp_dma_ch_params +EXPORT_SYMBOL vmlinux 0x3ca47389 netpoll_setup +EXPORT_SYMBOL vmlinux 0x3ca87ee8 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf63f19 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x3d0bab57 scsi_unregister +EXPORT_SYMBOL vmlinux 0x3d332163 thaw_super +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d469564 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x3d5d9b68 path_is_under +EXPORT_SYMBOL vmlinux 0x3d93ee61 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x3daeffc3 snd_ctl_remove_id +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3de4aa03 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x3de8a3d8 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e021e6f dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x3e0e9023 param_set_long +EXPORT_SYMBOL vmlinux 0x3e16df29 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x3e2648a2 omap_device_get_by_hwmod_name +EXPORT_SYMBOL vmlinux 0x3e271391 dma_mmap_writecombine +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e84537c tcp_splice_read +EXPORT_SYMBOL vmlinux 0x3e884f4b vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ea4adaf iget_failed +EXPORT_SYMBOL vmlinux 0x3eab14f5 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x3ec57396 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x3ec8886f param_ops_int +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f1f513c km_policy_expired +EXPORT_SYMBOL vmlinux 0x3f375a6b request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f561d56 dev_get_stats +EXPORT_SYMBOL vmlinux 0x3f589898 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x3f67000e mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x3f916323 pl330_update +EXPORT_SYMBOL vmlinux 0x3f9bc41d ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x3fd78fc6 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x3fd7df75 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x3fd9682c dmam_pool_create +EXPORT_SYMBOL vmlinux 0x3febedee tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x3ff3acc0 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x400ed337 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x4029d238 param_set_copystring +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x402c7b8d tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x4036ae10 ps2_drain +EXPORT_SYMBOL vmlinux 0x404540b3 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x404da0e0 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x407a3275 omap_start_dma +EXPORT_SYMBOL vmlinux 0x4080961d unregister_binfmt +EXPORT_SYMBOL vmlinux 0x40846bd7 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x40925fc5 nf_reinject +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a6f522 __arm_ioremap +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40bf582c snd_pcm_lib_malloc_pages +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x410989e6 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x4118b4b3 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x411d9e78 del_gendisk +EXPORT_SYMBOL vmlinux 0x411e4a5b blk_insert_request +EXPORT_SYMBOL vmlinux 0x4129d97d __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4163649a xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x4163a15e snd_cards +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418f5e23 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x419f77e4 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x41bfba0b dev_alert +EXPORT_SYMBOL vmlinux 0x41bfc910 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x41cf8687 sock_wfree +EXPORT_SYMBOL vmlinux 0x41f478ff page_readlink +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x4220cdac __free_pages +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x424c7999 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x425456c9 cpu_cache +EXPORT_SYMBOL vmlinux 0x425ec5e5 simple_release_fs +EXPORT_SYMBOL vmlinux 0x426b4242 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x428c1a2c journal_create +EXPORT_SYMBOL vmlinux 0x428f2241 _dev_info +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a6d27b sg_miter_next +EXPORT_SYMBOL vmlinux 0x42a7ec40 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x42b1c1f2 kill_fasync +EXPORT_SYMBOL vmlinux 0x42ba58fd inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x42c475db input_open_device +EXPORT_SYMBOL vmlinux 0x42dfa73f kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x42f8c514 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4347b971 idr_init +EXPORT_SYMBOL vmlinux 0x43808735 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x4382ebd9 inet_getname +EXPORT_SYMBOL vmlinux 0x43832171 blk_init_tags +EXPORT_SYMBOL vmlinux 0x438d9dc6 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x43976edc cont_write_begin +EXPORT_SYMBOL vmlinux 0x439b0518 simple_fill_super +EXPORT_SYMBOL vmlinux 0x43a0458b blk_start_plug +EXPORT_SYMBOL vmlinux 0x43a602ce skb_pad +EXPORT_SYMBOL vmlinux 0x43ce22ef tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x43cfb41b linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x441ed159 omap_get_dma_src_pos +EXPORT_SYMBOL vmlinux 0x441ee5d1 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x442495c9 tmio_core_mmc_resume +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44402b6f param_get_ulong +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x44485f5b file_remove_suid +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44d02b78 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44e4ff86 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x45641c48 mntget +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45a8fbaa down_timeout +EXPORT_SYMBOL vmlinux 0x45b10bdf dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x45bd9efd dm_table_put +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45d0e9c9 snd_card_disconnect +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x46041d3b of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x460df3a4 ps2_end_command +EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table +EXPORT_SYMBOL vmlinux 0x46131186 __pagevec_release +EXPORT_SYMBOL vmlinux 0x461b36c0 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x46247425 bmap +EXPORT_SYMBOL vmlinux 0x4628dc33 omap_vram_alloc +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x463a674b inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x463bfb90 flush_old_exec +EXPORT_SYMBOL vmlinux 0x4656eafa unlock_new_inode +EXPORT_SYMBOL vmlinux 0x467178a5 touch_atime +EXPORT_SYMBOL vmlinux 0x467c18a3 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x468ac0bc vfs_fsync +EXPORT_SYMBOL vmlinux 0x46a292c9 dev_close +EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x46c56a44 dev_uc_init +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46d413a1 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x46eb13c7 __break_lease +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x473a464b i2c_master_send +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x4753cb76 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47a72e28 register_netdev +EXPORT_SYMBOL vmlinux 0x47b1ae57 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6298d snd_pcm_release_substream +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47cf157d security_path_link +EXPORT_SYMBOL vmlinux 0x47d7b354 deactivate_super +EXPORT_SYMBOL vmlinux 0x47dc583b seq_open +EXPORT_SYMBOL vmlinux 0x47dc67b5 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x47dd24ec mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x47e0e4b4 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x47e2b187 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x4803342d blk_peek_request +EXPORT_SYMBOL vmlinux 0x48077a26 kernel_listen +EXPORT_SYMBOL vmlinux 0x48284556 contig_page_data +EXPORT_SYMBOL vmlinux 0x483b631a ps2_handle_response +EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4843add2 register_console +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48665b29 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x4870874e kstat +EXPORT_SYMBOL vmlinux 0x489b2f14 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48cad489 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x48cf17af key_payload_reserve +EXPORT_SYMBOL vmlinux 0x48dd0732 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x48f21d78 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x49066b84 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x4933a79e noop_fsync +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x496e3db8 snd_pcm_lib_read +EXPORT_SYMBOL vmlinux 0x497d0ba2 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x49817599 empty_aops +EXPORT_SYMBOL vmlinux 0x498c6089 mntput +EXPORT_SYMBOL vmlinux 0x4993ca81 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b41cfd simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x49ca585b mmc_resume_host +EXPORT_SYMBOL vmlinux 0x49d03db6 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x49ebacbd _clear_bit +EXPORT_SYMBOL vmlinux 0x4a2d1931 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a37af33 ___dma_single_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x4a39e5a1 omap_set_dma_src_params +EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL vmlinux 0x4a453309 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x4a879f03 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x4a9d4975 journal_ack_err +EXPORT_SYMBOL vmlinux 0x4aa1d5dc simple_dir_operations +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aaf06bf tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x4abdb61c seq_printf +EXPORT_SYMBOL vmlinux 0x4ad9966a mount_single +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b015768 snd_iprintf +EXPORT_SYMBOL vmlinux 0x4b01e3bc snd_pcm_hw_rule_add +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b4d7f9e bdi_init +EXPORT_SYMBOL vmlinux 0x4b534d1c input_grab_device +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b9b28bc inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x4bc62308 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c19f49c blkdev_get +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c33f10a omap_dss_get_overlay +EXPORT_SYMBOL vmlinux 0x4c66c62c __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x4c93821c block_read_full_page +EXPORT_SYMBOL vmlinux 0x4caa114c vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cfc34f8 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d4afdc3 do_splice_direct +EXPORT_SYMBOL vmlinux 0x4d7e67ec starget_for_each_device +EXPORT_SYMBOL vmlinux 0x4d825c8b posix_test_lock +EXPORT_SYMBOL vmlinux 0x4d889707 nla_put +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d99d86f genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL vmlinux 0x4da97084 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x4db0c5bd dev_printk +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dc5b1f8 iterate_mounts +EXPORT_SYMBOL vmlinux 0x4dc9b6ae xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df3d38c tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e19de26 bio_split +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e3808f4 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x4e382d54 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x4e4b6cdb dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x4e506013 omap_dma_link_lch +EXPORT_SYMBOL vmlinux 0x4e5d58c3 __elv_add_request +EXPORT_SYMBOL vmlinux 0x4e61782c scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e748dcd down_read +EXPORT_SYMBOL vmlinux 0x4e79ccfb clk_round_rate +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e87363a tty_unthrottle +EXPORT_SYMBOL vmlinux 0x4ebf86ab kern_path_create +EXPORT_SYMBOL vmlinux 0x4ef5f428 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x4f0bf8eb posix_lock_file +EXPORT_SYMBOL vmlinux 0x4f0c5e98 vc_resize +EXPORT_SYMBOL vmlinux 0x4f10553d mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x4f114234 __napi_schedule +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f596c24 proc_create_data +EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL vmlinux 0x4f857e12 may_umount +EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free +EXPORT_SYMBOL vmlinux 0x4f93ba7c mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x4fb5cfec __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x4fd3f2d7 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x4fd8cd6a snd_pcm_new +EXPORT_SYMBOL vmlinux 0x4fdd55b1 __sock_create +EXPORT_SYMBOL vmlinux 0x4fe3a95a inet_shutdown +EXPORT_SYMBOL vmlinux 0x4fecf23f tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x5020f8cc unregister_netdev +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50479334 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506d97f5 omap_readl +EXPORT_SYMBOL vmlinux 0x5080deb5 __block_write_begin +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new +EXPORT_SYMBOL vmlinux 0x50ccff03 omap_dma_set_prio_lch +EXPORT_SYMBOL vmlinux 0x50dfa89b mpage_readpage +EXPORT_SYMBOL vmlinux 0x51102a96 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x5111fb78 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x511719e7 iget5_locked +EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x51299545 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x51435f4b nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x515831fa skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x5169161d omap_free_dma_chain +EXPORT_SYMBOL vmlinux 0x5179dd50 kset_unregister +EXPORT_SYMBOL vmlinux 0x5189051e __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x519ad3c5 eth_type_trans +EXPORT_SYMBOL vmlinux 0x51a4deec free_netdev +EXPORT_SYMBOL vmlinux 0x51af50ac i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e64eda dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5207b267 scsi_host_put +EXPORT_SYMBOL vmlinux 0x522b20d7 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x526a2fe4 cad_pid +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL vmlinux 0x52efd766 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53294c94 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x53301cf5 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x5331eabb ida_simple_get +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53399833 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x533a66d3 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x53452704 input_register_device +EXPORT_SYMBOL vmlinux 0x534d0bfd security_path_mknod +EXPORT_SYMBOL vmlinux 0x5356f4da scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x535ba959 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x5381a54e jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x538c781b tcp_sendpage +EXPORT_SYMBOL vmlinux 0x539627de input_unregister_handle +EXPORT_SYMBOL vmlinux 0x5397f2d3 posix_acl_init +EXPORT_SYMBOL vmlinux 0x53ae0f38 omap_st_enable +EXPORT_SYMBOL vmlinux 0x53b88313 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x53ba4e7c up_write +EXPORT_SYMBOL vmlinux 0x53cca6ab snd_card_file_remove +EXPORT_SYMBOL vmlinux 0x53f645c5 ___dma_page_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x541d7a2d scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x541ffc6c journal_flush +EXPORT_SYMBOL vmlinux 0x5422a7a7 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x542733b6 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x547864ac arp_xmit +EXPORT_SYMBOL vmlinux 0x547c849a pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x549e406a mmc_register_driver +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54b17331 uart_register_driver +EXPORT_SYMBOL vmlinux 0x54db1295 inet_ioctl +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ee8075 unlock_super +EXPORT_SYMBOL vmlinux 0x54f73fdd blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x54fc3455 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x5525047b send_sig_info +EXPORT_SYMBOL vmlinux 0x552ec1ad mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x553fa155 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x55479f0d sk_stream_error +EXPORT_SYMBOL vmlinux 0x554a4afa bio_put +EXPORT_SYMBOL vmlinux 0x554c11dc snd_pcm_set_ops +EXPORT_SYMBOL vmlinux 0x5561ffd5 journal_extend +EXPORT_SYMBOL vmlinux 0x5580409d unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a6f933 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x55ad8a12 unregister_nls +EXPORT_SYMBOL vmlinux 0x55b12de8 update_region +EXPORT_SYMBOL vmlinux 0x55d9e14a get_super +EXPORT_SYMBOL vmlinux 0x55e6eb76 mem_map +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x560afe44 prepare_creds +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x56323abe unregister_qdisc +EXPORT_SYMBOL vmlinux 0x563443f1 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x56436d45 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x5663bb09 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x5669ec47 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x566b31cc __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x56789ac5 omap_set_dma_color_mode +EXPORT_SYMBOL vmlinux 0x5686e82f sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x56c00c41 user_path_at +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56f23c96 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x57105ed7 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x57253d13 keyring_clear +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57324cbc inet_sendpage +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x5758dd74 sock_register +EXPORT_SYMBOL vmlinux 0x5761ceb5 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x577193e7 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x577e7ee3 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x57983446 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x57ae4f2a max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57b7ef55 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57df0fce of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x5800b281 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x58065874 free_task +EXPORT_SYMBOL vmlinux 0x5814adff neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x581b1502 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x582a24f1 snd_timer_notify +EXPORT_SYMBOL vmlinux 0x58325a3b lock_may_read +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5843f76c pl330_add +EXPORT_SYMBOL vmlinux 0x58516557 omap_set_dma_src_data_pack +EXPORT_SYMBOL vmlinux 0x5852bde1 snd_unregister_oss_device +EXPORT_SYMBOL vmlinux 0x588875d7 genphy_read_status +EXPORT_SYMBOL vmlinux 0x58c4c051 input_close_device +EXPORT_SYMBOL vmlinux 0x58de9c60 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x5909b38f blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x590a4789 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x590bd6e0 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x592d3745 redraw_screen +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5940223f netdev_warn +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x594fd546 omap_prcm_get_reset_sources +EXPORT_SYMBOL vmlinux 0x5996775c filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x59a4adc1 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59dcfb8e sk_reset_txq +EXPORT_SYMBOL vmlinux 0x59dd9e10 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x59e04922 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x59e36020 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x59e8a7f4 genphy_resume +EXPORT_SYMBOL vmlinux 0x59f47966 mpage_writepage +EXPORT_SYMBOL vmlinux 0x5a21ea1b skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x5a46b6e5 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x5a54f0cb __netdev_printk +EXPORT_SYMBOL vmlinux 0x5a6123e1 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x5a6635c2 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x5a69dd58 read_cache_page +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a746d0d of_dev_get +EXPORT_SYMBOL vmlinux 0x5a852771 open_exec +EXPORT_SYMBOL vmlinux 0x5a8a7684 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x5aa369e1 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b334156 down_killable +EXPORT_SYMBOL vmlinux 0x5b39f539 of_match_device +EXPORT_SYMBOL vmlinux 0x5b6fce2d call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x5b7cd490 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x5b89c1d4 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x5b8e8bba end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x5be1731e skb_queue_head +EXPORT_SYMBOL vmlinux 0x5bf4a1eb sg_last +EXPORT_SYMBOL vmlinux 0x5c0c3cad kernel_connect +EXPORT_SYMBOL vmlinux 0x5c2c9eba __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x5c4f3c4f of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x5c5ac054 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x5c64429d ifla_policy +EXPORT_SYMBOL vmlinux 0x5c8e8b0d directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5cba3e3c phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x5cbd5f8e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x5cca1341 snd_jack_new +EXPORT_SYMBOL vmlinux 0x5cfb76d9 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x5d05fdf8 elevator_exit +EXPORT_SYMBOL vmlinux 0x5d1b4759 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x5d34a1b5 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d64f89a skb_push +EXPORT_SYMBOL vmlinux 0x5d7ad37e omap_mcbsp_set_rx_threshold +EXPORT_SYMBOL vmlinux 0x5d874f3c dquot_commit_info +EXPORT_SYMBOL vmlinux 0x5d87ccbd blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x5d90d554 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x5da0806a bio_add_page +EXPORT_SYMBOL vmlinux 0x5da14bd2 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x5dafad2e ata_link_printk +EXPORT_SYMBOL vmlinux 0x5dc92ee3 fget_raw +EXPORT_SYMBOL vmlinux 0x5de09873 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x5e09aaba set_disk_ro +EXPORT_SYMBOL vmlinux 0x5e218047 serio_close +EXPORT_SYMBOL vmlinux 0x5e54f07d phy_driver_register +EXPORT_SYMBOL vmlinux 0x5e58d65d lock_sock_nested +EXPORT_SYMBOL vmlinux 0x5e5b543c km_report +EXPORT_SYMBOL vmlinux 0x5e5fa10a skb_find_text +EXPORT_SYMBOL vmlinux 0x5e60eb27 omap_dma_unlink_lch +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e6d5d44 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x5e729392 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9a77cb udp_poll +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5eb39a6a __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed21d6f try_to_release_page +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee8de78 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x5ef4d861 seq_bitmap +EXPORT_SYMBOL vmlinux 0x5eff7878 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f052ed2 __ps2_command +EXPORT_SYMBOL vmlinux 0x5f29074b security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x5f40761a do_splice_to +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f6e42ef tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f9c1533 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x5f9d892d invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fa749a8 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x5fab90fe fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x5fb113eb __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x5fb25172 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x5fbea730 lock_fb_info +EXPORT_SYMBOL vmlinux 0x5fc27e5d dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x5fd03c19 fb_pan_display +EXPORT_SYMBOL vmlinux 0x5feb7533 find_lock_page +EXPORT_SYMBOL vmlinux 0x60001a2c mtd_concat_destroy +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60089ecd tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL vmlinux 0x604674b2 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x6048eb7b dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x604f8daa snd_register_device_for_dev +EXPORT_SYMBOL vmlinux 0x60565c7d scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6089b31c dquot_enable +EXPORT_SYMBOL vmlinux 0x608a9719 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x609c1d5c md_write_end +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60ded718 console_stop +EXPORT_SYMBOL vmlinux 0x60ed5f43 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x60f4c5e4 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x60f71cfa complete +EXPORT_SYMBOL vmlinux 0x610cfea9 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x6114ecb7 snd_timer_global_register +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61585b1d snd_card_file_add +EXPORT_SYMBOL vmlinux 0x615e3cf7 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x6168d2b0 dev_warn +EXPORT_SYMBOL vmlinux 0x617d7cb4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x6193117c ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x6193a942 dqget +EXPORT_SYMBOL vmlinux 0x6195e2e6 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x61a79f08 __irq_regs +EXPORT_SYMBOL vmlinux 0x61afb13c qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d6458f sock_no_listen +EXPORT_SYMBOL vmlinux 0x61e7e615 snd_mixer_oss_notify_callback +EXPORT_SYMBOL vmlinux 0x61f5f1ac ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x621bb40d tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x62465745 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x624875cc netdev_features_change +EXPORT_SYMBOL vmlinux 0x62623e65 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6274ffc1 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x627eac12 register_netdevice +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x629231fa jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x6294d10e dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x629f1e5f dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock +EXPORT_SYMBOL vmlinux 0x62bff87e vfs_follow_link +EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask +EXPORT_SYMBOL vmlinux 0x62f0fc0b skb_make_writable +EXPORT_SYMBOL vmlinux 0x62fcce9d dcache_dir_open +EXPORT_SYMBOL vmlinux 0x630073af jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x6301b72c _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0x631643b5 register_sound_special_device +EXPORT_SYMBOL vmlinux 0x631ec72a dquot_alloc +EXPORT_SYMBOL vmlinux 0x6332cc1a audit_log_start +EXPORT_SYMBOL vmlinux 0x6337dfce ab8500_gpadc_convert +EXPORT_SYMBOL vmlinux 0x6361fa0e netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x636967ab cfb_imageblit +EXPORT_SYMBOL vmlinux 0x636b3461 omap_dss_get_num_overlays +EXPORT_SYMBOL vmlinux 0x63896422 poll_freewait +EXPORT_SYMBOL vmlinux 0x639328b9 bioset_create +EXPORT_SYMBOL vmlinux 0x63ab2604 irq_stat +EXPORT_SYMBOL vmlinux 0x63dfeddd unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x641882e0 mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x643eaec8 param_get_string +EXPORT_SYMBOL vmlinux 0x64445846 snd_pcm_hw_refine +EXPORT_SYMBOL vmlinux 0x6478ec0d phy_print_status +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649b180a nf_setsockopt +EXPORT_SYMBOL vmlinux 0x64bad850 snd_jack_set_key +EXPORT_SYMBOL vmlinux 0x64c1d549 fb_set_var +EXPORT_SYMBOL vmlinux 0x64cc4079 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x64d233c8 ioremap_page +EXPORT_SYMBOL vmlinux 0x64ec9c9b sync_inode +EXPORT_SYMBOL vmlinux 0x64f6ccf4 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL vmlinux 0x6511c065 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65291cff timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654e5bda md_unregister_thread +EXPORT_SYMBOL vmlinux 0x655221fc sock_no_accept +EXPORT_SYMBOL vmlinux 0x6573a40d tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x65c638b1 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65edda0b noop_llseek +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x660907e2 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x6609b110 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x6628bf62 of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0x663381ae fb_set_suspend +EXPORT_SYMBOL vmlinux 0x66461092 lookup_one_len +EXPORT_SYMBOL vmlinux 0x665840c0 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x66708f75 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x66842801 dump_seek +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x668e4e03 d_instantiate +EXPORT_SYMBOL vmlinux 0x669dd28a posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x6709b349 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x6716dfdd ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x6723261e neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x674bbfe7 snd_ctl_find_id +EXPORT_SYMBOL vmlinux 0x675c3f3c nand_scan +EXPORT_SYMBOL vmlinux 0x67650abe dquot_file_open +EXPORT_SYMBOL vmlinux 0x676bbc0f _set_bit +EXPORT_SYMBOL vmlinux 0x6772d25a amba_device_register +EXPORT_SYMBOL vmlinux 0x678ba972 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b42835 unlock_rename +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67be1d3d cpu_active_mask +EXPORT_SYMBOL vmlinux 0x67d9490f kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x67fb4a06 snd_timer_new +EXPORT_SYMBOL vmlinux 0x68078806 fb_find_mode +EXPORT_SYMBOL vmlinux 0x684d30d0 filemap_fault +EXPORT_SYMBOL vmlinux 0x687473b6 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x687740d3 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x688d4bf5 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x688fbadf flush_dcache_page +EXPORT_SYMBOL vmlinux 0x689da350 journal_init_inode +EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL vmlinux 0x68e371e8 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x69151195 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x691774c4 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x694e2f3c generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6973606c omap_st_get_chgain +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b6f8d9 omap_set_dma_transfer_params +EXPORT_SYMBOL vmlinux 0x69c46911 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x6a01194c __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a09b457 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x6a2217c0 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x6a559116 rtc_lock +EXPORT_SYMBOL vmlinux 0x6a612f7c alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x6a66f496 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a7bc57f get_phy_id +EXPORT_SYMBOL vmlinux 0x6a7d160b jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x6a7dbbb6 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x6a95e504 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x6ab9b89e blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x6ad0353a posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x6ae38a54 unlock_buffer +EXPORT_SYMBOL vmlinux 0x6ae54fec page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x6af6c4d6 nla_reserve +EXPORT_SYMBOL vmlinux 0x6aff2ac2 of_register_spi_devices +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2c422f __d_drop +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bc1aa4d scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc7bbce serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x6bda0c00 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf1013e mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x6bfe63c8 do_munmap +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c3e056a inet_stream_ops +EXPORT_SYMBOL vmlinux 0x6c413779 d_genocide +EXPORT_SYMBOL vmlinux 0x6c4e2834 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c728d1b d_find_alias +EXPORT_SYMBOL vmlinux 0x6c7860ec nand_correct_data +EXPORT_SYMBOL vmlinux 0x6c9f121c lro_flush_all +EXPORT_SYMBOL vmlinux 0x6ca19036 bio_copy_user +EXPORT_SYMBOL vmlinux 0x6ca69198 alloc_disk +EXPORT_SYMBOL vmlinux 0x6ccf7bd7 __pv_phys_offset +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6d0a7169 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d1aef32 generic_fillattr +EXPORT_SYMBOL vmlinux 0x6d213e5b journal_init_dev +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d43cbe7 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x6d58e225 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x6d5a5fd2 md_done_sync +EXPORT_SYMBOL vmlinux 0x6d5ba6f2 write_one_page +EXPORT_SYMBOL vmlinux 0x6d5defde mmc_host_enable +EXPORT_SYMBOL vmlinux 0x6d64e0e2 __napi_complete +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d6783d2 simple_statfs +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d7c8dc8 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x6d984dae tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x6daa875d scsi_add_device +EXPORT_SYMBOL vmlinux 0x6dad6bb0 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x6ddafe87 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x6de7249b fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfa713d xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x6e2799aa get_write_access +EXPORT_SYMBOL vmlinux 0x6e37c0ee n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x6e5c5f1c dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e742bc2 security_file_permission +EXPORT_SYMBOL vmlinux 0x6e756ce0 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6edba4e4 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x6edc9ef0 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x6eebc03b serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL vmlinux 0x6efd0754 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x6f07a5f5 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x6f0c3175 skb_store_bits +EXPORT_SYMBOL vmlinux 0x6f2629f5 journal_restart +EXPORT_SYMBOL vmlinux 0x6f30b099 sk_alloc +EXPORT_SYMBOL vmlinux 0x6f4475ac pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x6f4a880d blkdev_put +EXPORT_SYMBOL vmlinux 0x6f581045 snd_unregister_device +EXPORT_SYMBOL vmlinux 0x6f73a4fb proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x6f81b793 save_mount_options +EXPORT_SYMBOL vmlinux 0x6fa64ed9 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fdacc68 register_md_personality +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70097aa0 nand_bch_free +EXPORT_SYMBOL vmlinux 0x70157711 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x701d82b3 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x70346e54 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7053576e d_clear_need_lookup +EXPORT_SYMBOL vmlinux 0x70866a45 neigh_table_init +EXPORT_SYMBOL vmlinux 0x70b2845a scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x70b6f3b6 inet_release +EXPORT_SYMBOL vmlinux 0x70b8e556 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70dd1a12 gpmc_cs_configure +EXPORT_SYMBOL vmlinux 0x71003efd devm_iounmap +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x713a2153 nobh_write_end +EXPORT_SYMBOL vmlinux 0x714db585 __dev_printk +EXPORT_SYMBOL vmlinux 0x716836dc unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7177b3b0 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x71828abf ip6_route_output +EXPORT_SYMBOL vmlinux 0x719160ed textsearch_register +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71ad7d62 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x71ba8cb8 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71f1fc47 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x71fae4ad xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x721af3c8 get_gendisk +EXPORT_SYMBOL vmlinux 0x7234265f bdi_destroy +EXPORT_SYMBOL vmlinux 0x7234eafb otg_state_string +EXPORT_SYMBOL vmlinux 0x723f6c15 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x724489ae sock_setsockopt +EXPORT_SYMBOL vmlinux 0x7251d82e scsi_ioctl +EXPORT_SYMBOL vmlinux 0x7258431b kobject_del +EXPORT_SYMBOL vmlinux 0x726481c5 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x7280ce81 generic_listxattr +EXPORT_SYMBOL vmlinux 0x7291cc6d kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x72aa82c6 param_ops_charp +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72e50086 vm_stat +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f054f2 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x730ff363 param_set_uint +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x736c79dc param_get_byte +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x7380374c mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73ddc27f ll_rw_block +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73e68608 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x74016505 do_sync_read +EXPORT_SYMBOL vmlinux 0x7428b316 dev_set_group +EXPORT_SYMBOL vmlinux 0x743052fb security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x7435db37 kern_path +EXPORT_SYMBOL vmlinux 0x74482728 dma_supported +EXPORT_SYMBOL vmlinux 0x745fff56 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x746d4ad9 key_task_permission +EXPORT_SYMBOL vmlinux 0x7483a5a9 kobject_add +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74bc90a7 inet_addr_type +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c4254f scsi_scan_host +EXPORT_SYMBOL vmlinux 0x74c9291d tty_free_termios +EXPORT_SYMBOL vmlinux 0x74d8b23a kfree_skb +EXPORT_SYMBOL vmlinux 0x74dfb891 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x74ea1901 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x7515b4f4 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x751b2247 param_get_bool +EXPORT_SYMBOL vmlinux 0x7522f5ae dev_addr_add +EXPORT_SYMBOL vmlinux 0x757a08f8 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x757d06b4 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x759e6dca truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75f0e04c complete_request_key +EXPORT_SYMBOL vmlinux 0x75f17fc9 simple_link +EXPORT_SYMBOL vmlinux 0x75f7b411 blk_init_queue +EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb +EXPORT_SYMBOL vmlinux 0x76069a47 mount_subtree +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x761fde5e input_unregister_handler +EXPORT_SYMBOL vmlinux 0x762aa736 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x762c6239 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x76363644 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x7657512a generic_show_options +EXPORT_SYMBOL vmlinux 0x766290d1 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x76694591 omap_mcbsp_get_max_tx_threshold +EXPORT_SYMBOL vmlinux 0x767f8436 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x76881360 leds_event +EXPORT_SYMBOL vmlinux 0x768f170f snd_dma_reserve_buf +EXPORT_SYMBOL vmlinux 0x76b42da1 snd_timer_continue +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d70608 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x76dc2073 blk_run_queue +EXPORT_SYMBOL vmlinux 0x76dee118 inet_frags_init +EXPORT_SYMBOL vmlinux 0x76e2766c do_splice_from +EXPORT_SYMBOL vmlinux 0x76ffe5f6 generic_getxattr +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x773ff78a netdev_alert +EXPORT_SYMBOL vmlinux 0x77879f94 snd_dma_free_pages +EXPORT_SYMBOL vmlinux 0x77898e06 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x779dc422 snd_card_register +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c924d7 uart_match_port +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e7068e snd_pcm_lib_free_pages +EXPORT_SYMBOL vmlinux 0x77e8adb0 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77f5161b read_dev_sector +EXPORT_SYMBOL vmlinux 0x77f5fb1d scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77fe3309 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x7803404d ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x7843afa8 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x78735975 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x789aecf5 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x78aac4c2 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x78e096e2 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x78ea819f __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x7910585b __lock_page +EXPORT_SYMBOL vmlinux 0x791f7cd1 journal_force_commit +EXPORT_SYMBOL vmlinux 0x7939ae03 simple_readpage +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x79488a31 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x796d56bd __init_rwsem +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79a1549f generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x7a1390f7 param_set_bool +EXPORT_SYMBOL vmlinux 0x7a16cd77 dev_uc_add +EXPORT_SYMBOL vmlinux 0x7a1e4fc4 pl330_del +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a28dff6 tcp_prot +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a6dae35 km_state_expired +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7aa68030 bdi_unregister +EXPORT_SYMBOL vmlinux 0x7ad7c54d ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x7ad88abe omap_dss_stop_device +EXPORT_SYMBOL vmlinux 0x7af2ab8b d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b7a0b22 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x7bac2445 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x7bce5e3d generic_removexattr +EXPORT_SYMBOL vmlinux 0x7bd96a2c gpmc_prefetch_enable +EXPORT_SYMBOL vmlinux 0x7bf30fdc down_write +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c511def nf_register_hook +EXPORT_SYMBOL vmlinux 0x7c51b114 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x7c52ce04 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x7c55455a __destroy_inode +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c6156a9 cdev_add +EXPORT_SYMBOL vmlinux 0x7c61678a datagram_poll +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7ca3a7dc __kfree_skb +EXPORT_SYMBOL vmlinux 0x7cb7bec1 snd_ctl_add +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7ccc33ce dev_get_flags +EXPORT_SYMBOL vmlinux 0x7ce0ae7c param_get_long +EXPORT_SYMBOL vmlinux 0x7cf57f6d input_free_device +EXPORT_SYMBOL vmlinux 0x7d0f7274 invalidate_partition +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d1e1550 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x7d1e3bf4 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL vmlinux 0x7d2c7a96 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x7d48ade7 snd_device_register +EXPORT_SYMBOL vmlinux 0x7da09f85 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x7db46938 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x7dba953d unregister_filesystem +EXPORT_SYMBOL vmlinux 0x7dbd6a57 phy_connect +EXPORT_SYMBOL vmlinux 0x7dc3c998 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x7de0a78b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7deaa459 vfs_llseek +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e08dae3 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x7e1be402 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x7e347233 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e3bb05c scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x7e5012a8 sg_miter_start +EXPORT_SYMBOL vmlinux 0x7e6ba9dd redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x7e8e7cd9 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ec6ce5c iunique +EXPORT_SYMBOL vmlinux 0x7ed566d2 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f33a63b omap_get_dma_chain_dst_pos +EXPORT_SYMBOL vmlinux 0x7f374412 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x7f511247 page_put_link +EXPORT_SYMBOL vmlinux 0x7f597a05 replace_mount_options +EXPORT_SYMBOL vmlinux 0x7f5afcd5 fasync_helper +EXPORT_SYMBOL vmlinux 0x7f5ba868 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7fa91082 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7fbaf2a9 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL vmlinux 0x7fe0cdd4 tcp_check_req +EXPORT_SYMBOL vmlinux 0x7fe28636 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x7ff532e3 set_blocksize +EXPORT_SYMBOL vmlinux 0x7ff9ff12 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x8034558a gpmc_nand_write +EXPORT_SYMBOL vmlinux 0x803a4e99 dst_alloc +EXPORT_SYMBOL vmlinux 0x804fc9ca omap_mcbsp_free +EXPORT_SYMBOL vmlinux 0x8057dffb simple_rmdir +EXPORT_SYMBOL vmlinux 0x80644878 keyring_search +EXPORT_SYMBOL vmlinux 0x806bbfa6 netif_device_attach +EXPORT_SYMBOL vmlinux 0x80bf63c8 nf_log_packet +EXPORT_SYMBOL vmlinux 0x80c2447c mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x80d81308 omap_vrfb_release_ctx +EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x80de231a idr_remove +EXPORT_SYMBOL vmlinux 0x81003ee2 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x810b3618 param_ops_string +EXPORT_SYMBOL vmlinux 0x811447b4 snd_pcm_hw_param_last +EXPORT_SYMBOL vmlinux 0x813ed040 idr_remove_all +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8164adb3 omap2_mcbsp_set_clks_src +EXPORT_SYMBOL vmlinux 0x816579f1 nand_lock +EXPORT_SYMBOL vmlinux 0x8179d5f9 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x8180a2db mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x8193e0b7 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x81952fe1 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x819d8f52 __blk_end_request +EXPORT_SYMBOL vmlinux 0x81acb164 mount_bdev +EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done +EXPORT_SYMBOL vmlinux 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81f97592 abort_creds +EXPORT_SYMBOL vmlinux 0x82034bdc posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x8204e852 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820ddbc0 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x820e73ed i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x8210f256 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x821e9e39 user_path_create +EXPORT_SYMBOL vmlinux 0x8224f42d freeze_bdev +EXPORT_SYMBOL vmlinux 0x8247c4f2 filp_open +EXPORT_SYMBOL vmlinux 0x82480f75 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x824a4367 tmio_core_mmc_pwr +EXPORT_SYMBOL vmlinux 0x824b779f eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8262f64b tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x826e9d75 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x82951c18 dquot_destroy +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82c48233 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x82d43c23 do_map_probe +EXPORT_SYMBOL vmlinux 0x82f28a86 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x832ae79e blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x8330e981 dpi_set_timings +EXPORT_SYMBOL vmlinux 0x8343eae9 dst_discard +EXPORT_SYMBOL vmlinux 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL vmlinux 0x8371daff sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x8396582f ab3100_event_register +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x83e55830 snd_ctl_unregister_ioctl +EXPORT_SYMBOL vmlinux 0x83f9e822 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x8419b410 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x841b35bc nf_ct_attach +EXPORT_SYMBOL vmlinux 0x842a938d splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x8436f8e3 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x846bcc01 dm_table_get +EXPORT_SYMBOL vmlinux 0x8479ef98 __bread +EXPORT_SYMBOL vmlinux 0x847c8bd6 snd_pcm_hw_param_first +EXPORT_SYMBOL vmlinux 0x849300e0 task_nice +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84b933bc inode_init_owner +EXPORT_SYMBOL vmlinux 0x84b93cec omap_dss_put_device +EXPORT_SYMBOL vmlinux 0x84c25070 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x84c51d53 sk_dst_check +EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x84e02c17 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x850c1725 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x850d3dfb ping_prot +EXPORT_SYMBOL vmlinux 0x852922f2 bdgrab +EXPORT_SYMBOL vmlinux 0x8538badd f_setown +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856e68ea mpage_writepages +EXPORT_SYMBOL vmlinux 0x85765fee omap_enable_dma_irq +EXPORT_SYMBOL vmlinux 0x85795539 add_disk +EXPORT_SYMBOL vmlinux 0x85907337 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x85b18a12 seq_release_private +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85c238f3 vfs_write +EXPORT_SYMBOL vmlinux 0x85c30435 nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x85d16c8d thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x86090a3a dev_addr_flush +EXPORT_SYMBOL vmlinux 0x8610cc93 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x862718fa framebuffer_release +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x86702947 netdev_set_master +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86a87571 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x86d86a2d bio_free +EXPORT_SYMBOL vmlinux 0x86e3cb7d jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x86ec13d2 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x8719e9d0 dm_register_target +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x871f1f45 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x872932cc serio_unregister_port +EXPORT_SYMBOL vmlinux 0x872a8a6b tty_port_close_end +EXPORT_SYMBOL vmlinux 0x873357ed kthread_bind +EXPORT_SYMBOL vmlinux 0x8753c970 udp_prot +EXPORT_SYMBOL vmlinux 0x876fef55 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x8772410a grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x877a4709 ata_port_printk +EXPORT_SYMBOL vmlinux 0x877fb9dc genl_register_family +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878f7f69 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x87900afe send_sig +EXPORT_SYMBOL vmlinux 0x87b6ab98 kick_iocb +EXPORT_SYMBOL vmlinux 0x87c0700e input_get_keycode +EXPORT_SYMBOL vmlinux 0x87ce47e8 d_alloc +EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new +EXPORT_SYMBOL vmlinux 0x87de805d generic_file_llseek +EXPORT_SYMBOL vmlinux 0x87deefce tcp_ioctl +EXPORT_SYMBOL vmlinux 0x87e494b1 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x880da338 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8817f537 sk_wait_data +EXPORT_SYMBOL vmlinux 0x881fa0fb inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x8825fba8 eth_header_cache +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x883b3507 load_nls +EXPORT_SYMBOL vmlinux 0x884a0f2b __inet6_hash +EXPORT_SYMBOL vmlinux 0x88646272 set_anon_super +EXPORT_SYMBOL vmlinux 0x8869f62e key_validate +EXPORT_SYMBOL vmlinux 0x8874f570 secpath_dup +EXPORT_SYMBOL vmlinux 0x8876fbe5 snd_ctl_find_numid +EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait +EXPORT_SYMBOL vmlinux 0x88b32df2 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x88bc289b register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x88d8447f tty_register_device +EXPORT_SYMBOL vmlinux 0x88d8bb17 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x8918f83d snd_info_create_card_entry +EXPORT_SYMBOL vmlinux 0x8936ae55 dst_release +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x899d3f1d request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x89a3c4f4 omap_get_dma_chain_index +EXPORT_SYMBOL vmlinux 0x89ad4666 __dst_free +EXPORT_SYMBOL vmlinux 0x89c8e835 bd_set_size +EXPORT_SYMBOL vmlinux 0x89ce14c2 input_register_handle +EXPORT_SYMBOL vmlinux 0x89cea30a I_BDEV +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89da4432 of_iomap +EXPORT_SYMBOL vmlinux 0x89fc3527 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4c7437 mii_check_media +EXPORT_SYMBOL vmlinux 0x8a4ca383 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8a4f345a splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a86c0fc dquot_release +EXPORT_SYMBOL vmlinux 0x8a910c00 follow_down +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8adedea9 snd_ctl_make_virtual_master +EXPORT_SYMBOL vmlinux 0x8ae5b1a2 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x8b3d3b3e skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x8b3e4581 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x8b4bb1bc security_path_rename +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7b174f elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x8bc2401d textsearch_destroy +EXPORT_SYMBOL vmlinux 0x8bcc7885 tty_throttle +EXPORT_SYMBOL vmlinux 0x8bdb6e8c mmc_release_host +EXPORT_SYMBOL vmlinux 0x8be07a49 fsync_bdev +EXPORT_SYMBOL vmlinux 0x8beadbaa blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x8c08199c release_firmware +EXPORT_SYMBOL vmlinux 0x8c084703 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x8c0c3237 take_over_console +EXPORT_SYMBOL vmlinux 0x8c4d6523 omap_dma_chain_a_transfer +EXPORT_SYMBOL vmlinux 0x8c566f56 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x8c7a3757 of_get_named_gpio_flags +EXPORT_SYMBOL vmlinux 0x8c873c63 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x8ca8d886 key_revoke +EXPORT_SYMBOL vmlinux 0x8cd8c339 omap_free_dma +EXPORT_SYMBOL vmlinux 0x8cf0d28d mddev_congested +EXPORT_SYMBOL vmlinux 0x8d16a3e2 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x8d2e1003 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d667376 dev_trans_start +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d839a2e blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x8d88c1a9 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x8d8b011a simple_pin_fs +EXPORT_SYMBOL vmlinux 0x8dde5439 genphy_suspend +EXPORT_SYMBOL vmlinux 0x8de7bbf6 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x8de807a2 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e16e5da scsi_block_requests +EXPORT_SYMBOL vmlinux 0x8e19a10d try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x8e398356 d_invalidate +EXPORT_SYMBOL vmlinux 0x8e4952aa amba_find_device +EXPORT_SYMBOL vmlinux 0x8e555738 param_get_uint +EXPORT_SYMBOL vmlinux 0x8e649834 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x8e691c56 __devm_request_region +EXPORT_SYMBOL vmlinux 0x8e7c694e scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x8e866295 netif_device_detach +EXPORT_SYMBOL vmlinux 0x8ea571d9 fb_class +EXPORT_SYMBOL vmlinux 0x8ea7d43b con_copy_unimap +EXPORT_SYMBOL vmlinux 0x8eb5a102 elv_rb_find +EXPORT_SYMBOL vmlinux 0x8eb933e0 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x8edf694c dentry_path_raw +EXPORT_SYMBOL vmlinux 0x8ee68933 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f085f21 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x8f306df2 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x8f346f46 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x8f3abaeb dev_err +EXPORT_SYMBOL vmlinux 0x8f3b0c84 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f56fcfa of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x8f595b11 snd_major +EXPORT_SYMBOL vmlinux 0x8f678b07 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x8f7bcabf in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x8f97c23e snd_pcm_lib_ioctl +EXPORT_SYMBOL vmlinux 0x8fa4130a omap_set_dma_callback +EXPORT_SYMBOL vmlinux 0x8fbb3130 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x8fc7f839 param_set_charp +EXPORT_SYMBOL vmlinux 0x8fd380cc blk_put_request +EXPORT_SYMBOL vmlinux 0x8fd3bffc tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x8fe7269d of_n_size_cells +EXPORT_SYMBOL vmlinux 0x8fe99687 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x8ff66782 param_get_ushort +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x9012894e neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x9039b653 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x90703e9a skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x90930d28 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x90af0c15 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90dcbc1c vfs_link +EXPORT_SYMBOL vmlinux 0x90e23f22 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x90e83954 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x90f58d89 block_write_begin +EXPORT_SYMBOL vmlinux 0x912fa716 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x9134c3ff nand_bch_calculate_ecc +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x9187d28c dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x91bd16be omap_dss_get_device +EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free +EXPORT_SYMBOL vmlinux 0x92112b44 locks_delete_block +EXPORT_SYMBOL vmlinux 0x921c94b0 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x924273b7 lookup_bdev +EXPORT_SYMBOL vmlinux 0x92642ce9 of_find_matching_node +EXPORT_SYMBOL vmlinux 0x9264365b __cleancache_flush_fs +EXPORT_SYMBOL vmlinux 0x92985c29 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x929eecac __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x92ac2013 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x92d272ce vm_event_states +EXPORT_SYMBOL vmlinux 0x92e899d3 __nla_put +EXPORT_SYMBOL vmlinux 0x92f16811 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930e0466 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x930eae4b __alloc_skb +EXPORT_SYMBOL vmlinux 0x931ee5ba filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9333e39d of_dev_put +EXPORT_SYMBOL vmlinux 0x93346381 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x9389cfce lease_get_mtime +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c8235f blk_make_request +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9400bbab omap_mcbsp_dma_reg_params +EXPORT_SYMBOL vmlinux 0x94307918 set_user_nice +EXPORT_SYMBOL vmlinux 0x94407fab end_page_writeback +EXPORT_SYMBOL vmlinux 0x94418f54 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex +EXPORT_SYMBOL vmlinux 0x94728418 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x947a4145 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x94864c7a wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94af632e complete_all +EXPORT_SYMBOL vmlinux 0x94cb1239 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x94e31426 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x94e46b6b destroy_EII_client +EXPORT_SYMBOL vmlinux 0x94f03bb0 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x9503962e genphy_update_link +EXPORT_SYMBOL vmlinux 0x952f1c61 vmap +EXPORT_SYMBOL vmlinux 0x953e0f09 i2c_use_client +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954c0d0e dst_destroy +EXPORT_SYMBOL vmlinux 0x95986da7 dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95dcaa08 thaw_bdev +EXPORT_SYMBOL vmlinux 0x95ec66b2 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x960eed94 register_qdisc +EXPORT_SYMBOL vmlinux 0x962cf393 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x963e0764 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x96406f4a jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x965f8481 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x967f2d48 sock_i_uid +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x969106e4 clk_set_rate +EXPORT_SYMBOL vmlinux 0x96a112ec dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x96b16a2e i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x96b39b6e omap_start_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0x96c6686b netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96e0acd3 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x96e8691a scsi_device_resume +EXPORT_SYMBOL vmlinux 0x97138ea9 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x974026bb km_state_notify +EXPORT_SYMBOL vmlinux 0x9744c6e4 tty_port_open +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975ca814 snd_timer_start +EXPORT_SYMBOL vmlinux 0x976e37c8 dev_addr_del +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x979d868d jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x97a09ad5 elv_register_queue +EXPORT_SYMBOL vmlinux 0x97d413ce inet_select_addr +EXPORT_SYMBOL vmlinux 0x97e4d19d scsi_print_command +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x98107728 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x9814b7cd tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9840b41f register_cdrom +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98997399 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x98c16297 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x98c1e903 dev_emerg +EXPORT_SYMBOL vmlinux 0x98d1d700 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x98d880e6 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x9923d427 block_commit_write +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x99538665 seq_open_private +EXPORT_SYMBOL vmlinux 0x995f3a0a ether_setup +EXPORT_SYMBOL vmlinux 0x998ef33c __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a3f537 scsi_get_command +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x9a01e5f0 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2a06cc bh_submit_read +EXPORT_SYMBOL vmlinux 0x9a4e5806 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x9a4eeb74 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x9a539844 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x9a63f60a key_type_keyring +EXPORT_SYMBOL vmlinux 0x9a6de116 genl_register_ops +EXPORT_SYMBOL vmlinux 0x9a88a2c5 snd_pcm_hw_constraint_step +EXPORT_SYMBOL vmlinux 0x9aa537af empty_zero_page +EXPORT_SYMBOL vmlinux 0x9aae26dd task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x9ab721ef revert_creds +EXPORT_SYMBOL vmlinux 0x9ab8808c param_get_charp +EXPORT_SYMBOL vmlinux 0x9accd0a8 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x9afa6936 register_con_driver +EXPORT_SYMBOL vmlinux 0x9b1095ee nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b5b5114 get_disk +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb7edd9 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bdfb8f5 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x9bf88878 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c048e24 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x9c147d90 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x9c277ba0 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x9c380c18 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x9c3efb25 __get_page_tail +EXPORT_SYMBOL vmlinux 0x9c401b4a i2c_release_client +EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c8a91d0 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x9c92b124 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x9ca04207 clk_set_parent +EXPORT_SYMBOL vmlinux 0x9ca612c0 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cca354c skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x9cd2e7d0 gpmc_nand_read +EXPORT_SYMBOL vmlinux 0x9cd60539 sg_free_table +EXPORT_SYMBOL vmlinux 0x9cd74019 amba_request_regions +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d09c2ff tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3c0150 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x9d51c002 account_page_redirty +EXPORT_SYMBOL vmlinux 0x9d5f128e serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d6d36ed tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x9d893369 seq_lseek +EXPORT_SYMBOL vmlinux 0x9da142b0 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x9dc285ef request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x9dc9e3ea set_security_override +EXPORT_SYMBOL vmlinux 0x9deedf6d proto_unregister +EXPORT_SYMBOL vmlinux 0x9df9358d drop_super +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e26df99 mmc_start_req +EXPORT_SYMBOL vmlinux 0x9e30476f read_cache_page_async +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e607910 audit_log +EXPORT_SYMBOL vmlinux 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL vmlinux 0x9e7872e7 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9eb34900 __scm_send +EXPORT_SYMBOL vmlinux 0x9ec2cc8c clk_enable +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9edd4f75 snd_pcm_lib_write +EXPORT_SYMBOL vmlinux 0x9ee32c3e xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9eef60b5 sound_class +EXPORT_SYMBOL vmlinux 0x9ef7be36 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x9f014f0e fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f80b734 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get +EXPORT_SYMBOL vmlinux 0x9fa93dd8 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe62d5d mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xa00b0633 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xa00c70b2 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xa016929a truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xa034a62e bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xa035efbc snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL vmlinux 0xa0432c3b snd_info_create_module_entry +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04dd1a7 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xa04f4d4c nand_bch_correct_data +EXPORT_SYMBOL vmlinux 0xa05090a2 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xa058ed18 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa09b7b98 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0be8dd2 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xa0c888eb key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa1037b32 phy_attach +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa121d4d2 make_EII_client +EXPORT_SYMBOL vmlinux 0xa140df00 dqput +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa143957d phy_detach +EXPORT_SYMBOL vmlinux 0xa1477019 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa17ee298 dma_find_channel +EXPORT_SYMBOL vmlinux 0xa1832c2f icmpv6_send +EXPORT_SYMBOL vmlinux 0xa1926054 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xa1b1ea3a security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xa1b2fb87 netlink_set_err +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1bef93b lock_rename +EXPORT_SYMBOL vmlinux 0xa1c4b6d2 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xa1c5a3b3 cleancache_enabled +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20edef1 arp_find +EXPORT_SYMBOL vmlinux 0xa22a0eea kmem_cache_create +EXPORT_SYMBOL vmlinux 0xa2434452 simple_getattr +EXPORT_SYMBOL vmlinux 0xa2541b95 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0xa264af0f blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xa26537b8 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xa26e9ecb do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xa2761c7b bdput +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa29855c2 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xa2a07b76 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xa2a09ef4 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b5891b jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xa2c1df0b nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xa2c56c31 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xa2d3cfd2 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xa2fc6ce8 __brelse +EXPORT_SYMBOL vmlinux 0xa2fcbcb6 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL vmlinux 0xa3405a16 consume_skb +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35636e7 find_inode_number +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3675a7c inode_init_once +EXPORT_SYMBOL vmlinux 0xa377f7a1 free_buffer_head +EXPORT_SYMBOL vmlinux 0xa3b101f3 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xa3cb0c1d serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xa3f5e9e0 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xa413973b wait_iff_congested +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa4610bc6 omap_rev +EXPORT_SYMBOL vmlinux 0xa4897cc3 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xa48f5b09 omap_dma_set_global_params +EXPORT_SYMBOL vmlinux 0xa4917230 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xa4b42c55 omap_set_dma_priority +EXPORT_SYMBOL vmlinux 0xa4c29461 omap_st_is_enabled +EXPORT_SYMBOL vmlinux 0xa4c3c6d1 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xa4e421b1 twl6040_power +EXPORT_SYMBOL vmlinux 0xa4fb3954 sock_no_bind +EXPORT_SYMBOL vmlinux 0xa50858e8 omapdss_dpi_display_enable +EXPORT_SYMBOL vmlinux 0xa5135546 ppp_input +EXPORT_SYMBOL vmlinux 0xa51db984 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0xa52f7f40 journal_stop +EXPORT_SYMBOL vmlinux 0xa53c333b journal_lock_updates +EXPORT_SYMBOL vmlinux 0xa556c3c9 vfs_statfs +EXPORT_SYMBOL vmlinux 0xa575428e scsi_target_resume +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5de5627 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xa5df1a8e __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xa5fa852e __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL vmlinux 0xa61e4362 omap_request_dma +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL vmlinux 0xa663d760 tty_register_driver +EXPORT_SYMBOL vmlinux 0xa66aafa8 twl6040_irq_exit +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67ab8f7 snd_card_unref +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6c805a7 tcp_child_process +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6eabbb7 inet_accept +EXPORT_SYMBOL vmlinux 0xa7049ba1 block_truncate_page +EXPORT_SYMBOL vmlinux 0xa7414f7f udp_disconnect +EXPORT_SYMBOL vmlinux 0xa7557772 mii_nway_restart +EXPORT_SYMBOL vmlinux 0xa7612e4e md_write_start +EXPORT_SYMBOL vmlinux 0xa7b49b36 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xa7c58236 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0xa7f81eca qdisc_list_del +EXPORT_SYMBOL vmlinux 0xa809a12e input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xa81c9123 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa826f439 journal_check_used_features +EXPORT_SYMBOL vmlinux 0xa83772a6 map_destroy +EXPORT_SYMBOL vmlinux 0xa8380d34 kernel_execve +EXPORT_SYMBOL vmlinux 0xa838133d fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xa85e1d00 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0xa86355c2 ip6_xmit +EXPORT_SYMBOL vmlinux 0xa87bb6d8 kset_register +EXPORT_SYMBOL vmlinux 0xa8869dda kill_bdev +EXPORT_SYMBOL vmlinux 0xa88bbcb1 generic_setlease +EXPORT_SYMBOL vmlinux 0xa88c4f46 tc_classify +EXPORT_SYMBOL vmlinux 0xa8984f1f jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xa8f3604d snd_ctl_boolean_stereo_info +EXPORT_SYMBOL vmlinux 0xa8f82e5c twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xa8fd075d set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9345b92 security_inode_permission +EXPORT_SYMBOL vmlinux 0xa943beca cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xa944c5f9 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xa9459c80 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xa9459df1 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xa94aeb95 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xa95f1a29 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xa9625f4d mdiobus_free +EXPORT_SYMBOL vmlinux 0xa963ced6 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xa964dd13 gpmc_cs_request +EXPORT_SYMBOL vmlinux 0xa97485ac vfs_rename +EXPORT_SYMBOL vmlinux 0xa9997d39 vfs_getattr +EXPORT_SYMBOL vmlinux 0xa9b4efec xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xa9b6b89b __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xa9be9494 would_dump +EXPORT_SYMBOL vmlinux 0xaa007648 simple_unlink +EXPORT_SYMBOL vmlinux 0xaa0627a2 generic_setxattr +EXPORT_SYMBOL vmlinux 0xaa0ad185 iput +EXPORT_SYMBOL vmlinux 0xaa0b5945 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xaa0c5bc3 dev_change_flags +EXPORT_SYMBOL vmlinux 0xaa5927f9 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6a5b9d bio_clone +EXPORT_SYMBOL vmlinux 0xaa6ad5c3 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xaa6c1661 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xaa8e90be of_get_parent +EXPORT_SYMBOL vmlinux 0xaad2b04d proc_symlink +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xaafdd14d simple_setattr +EXPORT_SYMBOL vmlinux 0xaaff38be dev_mc_add +EXPORT_SYMBOL vmlinux 0xab0f0df7 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xab143ed5 unload_nls +EXPORT_SYMBOL vmlinux 0xab3a2c53 follow_pfn +EXPORT_SYMBOL vmlinux 0xab5e3589 locks_free_lock +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab867026 blk_start_request +EXPORT_SYMBOL vmlinux 0xabb71994 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd88e65 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xabe4422d amba_driver_register +EXPORT_SYMBOL vmlinux 0xabf49f84 skb_checksum +EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac1280a3 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xac16e18d md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xac238e2c __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xac267f03 register_quota_format +EXPORT_SYMBOL vmlinux 0xac49a986 get_phy_device +EXPORT_SYMBOL vmlinux 0xac514c70 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xac53a44a pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6a524d journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xac872673 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xaca61f9d mnt_unpin +EXPORT_SYMBOL vmlinux 0xacb58cd1 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd288a7 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xaceea39d tc_classify_compat +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf61aa5 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad21e25a mapping_tagged +EXPORT_SYMBOL vmlinux 0xad3dae88 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xad4259ea remap_pfn_range +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad8a766e set_bdi_congested +EXPORT_SYMBOL vmlinux 0xad922895 snd_pcm_suspend_all +EXPORT_SYMBOL vmlinux 0xad97242f i2c_verify_client +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadc23126 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae0882f2 omap_mcbsp_request +EXPORT_SYMBOL vmlinux 0xae254dec generic_writepages +EXPORT_SYMBOL vmlinux 0xae25a6f1 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xae487307 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xae888724 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xae91bff6 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xae9b7941 seq_escape +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaec9f77e snd_timer_stop +EXPORT_SYMBOL vmlinux 0xaee11cce generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xaee3b995 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xaef558a6 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality +EXPORT_SYMBOL vmlinux 0xaf52da8d tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xaf585a19 napi_complete +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf81fadc elv_rb_add +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafabc6a1 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xafc5f2cd snd_card_create +EXPORT_SYMBOL vmlinux 0xafd9b3bd xfrm_input +EXPORT_SYMBOL vmlinux 0xafe6be21 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xaff483de mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0xafff4fac netif_rx +EXPORT_SYMBOL vmlinux 0xb0146c3a param_set_byte +EXPORT_SYMBOL vmlinux 0xb014f166 brioctl_set +EXPORT_SYMBOL vmlinux 0xb02299bf blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xb02bfafd snd_pcm_notify +EXPORT_SYMBOL vmlinux 0xb02fc0e2 of_phy_connect +EXPORT_SYMBOL vmlinux 0xb0455b77 get_fs_type +EXPORT_SYMBOL vmlinux 0xb04abea1 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xb05cc8b5 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0xb06ca8d1 skb_pull +EXPORT_SYMBOL vmlinux 0xb07ea9e0 neigh_lookup +EXPORT_SYMBOL vmlinux 0xb0a9e1cc blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0bd1935 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f68d14 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12a5105 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xb135894b __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xb150575b ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xb1586130 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xb16fe7b3 dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xb17436d5 mmc_do_release_host +EXPORT_SYMBOL vmlinux 0xb1854414 scsi_execute +EXPORT_SYMBOL vmlinux 0xb18e6948 omap_dss_pal_timings +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb19aa11b setattr_copy +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cf0187 put_tty_driver +EXPORT_SYMBOL vmlinux 0xb1dbd13d security_path_unlink +EXPORT_SYMBOL vmlinux 0xb1f72dd1 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xb20aa9ae jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xb20e8769 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xb21667c6 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xb22cf46b nand_scan_tail +EXPORT_SYMBOL vmlinux 0xb23d77e4 qdisc_reset +EXPORT_SYMBOL vmlinux 0xb2484a62 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2757e43 ilookup5 +EXPORT_SYMBOL vmlinux 0xb28f1c92 omap_mcbsp_stop +EXPORT_SYMBOL vmlinux 0xb2ad2a51 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xb2b6ccd4 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xb2d108b4 security_path_symlink +EXPORT_SYMBOL vmlinux 0xb2d46eae bdget_disk +EXPORT_SYMBOL vmlinux 0xb2dd9245 nla_append +EXPORT_SYMBOL vmlinux 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL vmlinux 0xb2e5fdd8 netlink_ack +EXPORT_SYMBOL vmlinux 0xb2fe77de __register_chrdev +EXPORT_SYMBOL vmlinux 0xb318d887 uart_resume_port +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb358b0e7 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xb35d647a lock_may_write +EXPORT_SYMBOL vmlinux 0xb391afa3 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3af5e92 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xb3c76ea8 ata_dev_printk +EXPORT_SYMBOL vmlinux 0xb3c940ba md_integrity_register +EXPORT_SYMBOL vmlinux 0xb3f2d439 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xb3f51548 of_device_alloc +EXPORT_SYMBOL vmlinux 0xb40aa9b6 tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0xb40dc661 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xb412edcd ab8500_gpadc_read_raw +EXPORT_SYMBOL vmlinux 0xb41ba270 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42cc6a5 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xb45a151a set_groups +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb482830f set_binfmt +EXPORT_SYMBOL vmlinux 0xb4a74eef locks_init_lock +EXPORT_SYMBOL vmlinux 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL vmlinux 0xb4c29667 udplite_prot +EXPORT_SYMBOL vmlinux 0xb4c8f38a omap_dma_chain_status +EXPORT_SYMBOL vmlinux 0xb4d915ad mount_ns +EXPORT_SYMBOL vmlinux 0xb4ed05a6 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xb4f0ee42 ppp_input_error +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5344337 do_SAK +EXPORT_SYMBOL vmlinux 0xb534d575 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54f57c4 bitmap_unplug +EXPORT_SYMBOL vmlinux 0xb5859adc find_vma +EXPORT_SYMBOL vmlinux 0xb58912a9 of_get_next_child +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5aba702 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5dc747d uart_update_timeout +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb6439d7b account_page_dirtied +EXPORT_SYMBOL vmlinux 0xb64c7b1b rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xb67581aa d_delete +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb73c8d40 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xb743fccd km_policy_notify +EXPORT_SYMBOL vmlinux 0xb7453967 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xb7594ab3 dma_unmap_sg +EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xb7863e27 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xb78c61e8 param_ops_bool +EXPORT_SYMBOL vmlinux 0xb78ffa95 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xb7a0c8ca generic_write_checks +EXPORT_SYMBOL vmlinux 0xb7b184b4 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2 +EXPORT_SYMBOL vmlinux 0xb7c5d2fc filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xb7d858e6 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xb7fbb2ce dma_mmap_coherent +EXPORT_SYMBOL vmlinux 0xb7fd4fbd snd_info_free_entry +EXPORT_SYMBOL vmlinux 0xb8003398 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xb801c2ab input_event +EXPORT_SYMBOL vmlinux 0xb80dc5d9 skb_append +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find +EXPORT_SYMBOL vmlinux 0xb820a68d sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb888c5b4 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xb88cdb35 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xb892c24e ps2_begin_command +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8c64d48 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb9175512 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xb919bae0 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xb92b20b4 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xb92b5f50 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL vmlinux 0xb964452e tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xb9805b12 simple_write_end +EXPORT_SYMBOL vmlinux 0xb98983e5 omapdss_sdi_display_disable +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb98e7c93 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xb99072a5 neigh_create +EXPORT_SYMBOL vmlinux 0xb9a013f1 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xb9a8f03b omap_stop_dma +EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2 +EXPORT_SYMBOL vmlinux 0xb9b5711e bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xb9b8d8a0 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xb9bfd98d blk_register_region +EXPORT_SYMBOL vmlinux 0xb9d4b27f scsi_put_command +EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up +EXPORT_SYMBOL vmlinux 0xb9ec222e jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xb9f0196b xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xba028f4c omap_dss_get_next_device +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba8fe8e5 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xba920ae8 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xba932bbc generic_file_open +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaac427c get_mem_type +EXPORT_SYMBOL vmlinux 0xbad32774 vfs_readv +EXPORT_SYMBOL vmlinux 0xbadccb79 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xbaf82074 bprm_change_interp +EXPORT_SYMBOL vmlinux 0xbafec204 snd_card_free +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1e60cd init_buffer +EXPORT_SYMBOL vmlinux 0xbb2858e8 pl330_submit_req +EXPORT_SYMBOL vmlinux 0xbb2b4612 rwsem_is_locked +EXPORT_SYMBOL vmlinux 0xbb30b189 skb_put +EXPORT_SYMBOL vmlinux 0xbb4c191f max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb6c2fed netif_rx_ni +EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1 +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbb189ca journal_abort +EXPORT_SYMBOL vmlinux 0xbbbe11d3 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xbbd1488d set_device_ro +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc1af537 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xbc2a2803 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xbc300350 sk_common_release +EXPORT_SYMBOL vmlinux 0xbc3a970d mmc_detect_change +EXPORT_SYMBOL vmlinux 0xbc549d2e clk_get_rate +EXPORT_SYMBOL vmlinux 0xbc860222 gpmc_read_status +EXPORT_SYMBOL vmlinux 0xbcb37a77 blk_free_tags +EXPORT_SYMBOL vmlinux 0xbcb8014d clk_unregister +EXPORT_SYMBOL vmlinux 0xbcbb8cd0 poll_initwait +EXPORT_SYMBOL vmlinux 0xbcbfc5e6 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xbcd37da0 dma_map_sg +EXPORT_SYMBOL vmlinux 0xbcde529b __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xbcec132e xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xbd06a364 scsi_prep_return +EXPORT_SYMBOL vmlinux 0xbd15e2db __page_symlink +EXPORT_SYMBOL vmlinux 0xbd36599d mmc_card_awake +EXPORT_SYMBOL vmlinux 0xbd36b0e7 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xbd59572a dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xbd6813e2 of_device_is_available +EXPORT_SYMBOL vmlinux 0xbd69068d dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xbd79a64c snd_pcm_set_sync +EXPORT_SYMBOL vmlinux 0xbd7fc024 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xbd8d3464 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xbda7d127 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc3ad6b sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xbdc9fc14 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xbdeaf904 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xbdec0db2 omap_readb +EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe121c88 search_binary_handler +EXPORT_SYMBOL vmlinux 0xbe1c7163 dquot_initialize +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe536b24 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xbe57311a bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe753440 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xbe79d467 serio_open +EXPORT_SYMBOL vmlinux 0xbeb406fb sock_create +EXPORT_SYMBOL vmlinux 0xbec6c00a register_sound_dsp +EXPORT_SYMBOL vmlinux 0xbed24878 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef5ffd2 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock +EXPORT_SYMBOL vmlinux 0xbf5bf31d ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa63d11 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xbfdff814 of_get_address +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc01ce6ed eth_validate_addr +EXPORT_SYMBOL vmlinux 0xc01dca40 log_start_commit +EXPORT_SYMBOL vmlinux 0xc01f126f vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xc0254a36 alloc_file +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc065efbc ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xc066ea55 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc06b8fbd journal_get_create_access +EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xc06ed12c twl6040_reg_write +EXPORT_SYMBOL vmlinux 0xc075e62f dquot_free_inode +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc07749f7 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0a6a8c5 omap_set_dma_dest_burst_mode +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0c7f8bf jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xc0cf95f9 omap_vrfb_request_ctx +EXPORT_SYMBOL vmlinux 0xc0e7fb49 serial8250_register_port +EXPORT_SYMBOL vmlinux 0xc0ea88f3 simple_write_begin +EXPORT_SYMBOL vmlinux 0xc0ee13a5 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xc0f22264 scsi_register +EXPORT_SYMBOL vmlinux 0xc0f67b6b dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xc10aead1 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc1237860 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0xc1247ff8 module_layout +EXPORT_SYMBOL vmlinux 0xc1303bdf pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xc130b7c0 snd_ctl_remove +EXPORT_SYMBOL vmlinux 0xc135ab71 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xc16bf071 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xc1825533 create_proc_entry +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d4cc26 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xc1f79c36 __quota_error +EXPORT_SYMBOL vmlinux 0xc20d04ba proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xc20f77d7 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xc210e252 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc271a1a5 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xc295a654 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xc2a0b790 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xc2ab72d4 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xc2adde5b scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xc2cf0301 omapdss_default_get_resolution +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f37b88 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xc2fb94ae wake_up_process +EXPORT_SYMBOL vmlinux 0xc316b98c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0xc33db791 sock_init_data +EXPORT_SYMBOL vmlinux 0xc34ff0bb clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc37c36e1 omap_writeb +EXPORT_SYMBOL vmlinux 0xc38c3f85 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xc39efb1b generic_read_dir +EXPORT_SYMBOL vmlinux 0xc39fe675 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xc3acc241 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xc3ae36b8 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xc3c504e5 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3edcaf0 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xc3fd0f2e inet_register_protosw +EXPORT_SYMBOL vmlinux 0xc3fe87c8 param_ops_uint +EXPORT_SYMBOL vmlinux 0xc408dd86 snd_pcm_suspend +EXPORT_SYMBOL vmlinux 0xc41dddc3 snd_add_device_sysfs_file +EXPORT_SYMBOL vmlinux 0xc41f3f86 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xc45e7f1d eth_change_mtu +EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each +EXPORT_SYMBOL vmlinux 0xc46702be elv_add_request +EXPORT_SYMBOL vmlinux 0xc4981a6c registered_fb +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49e2292 blk_start_queue +EXPORT_SYMBOL vmlinux 0xc4a95fec netif_skb_features +EXPORT_SYMBOL vmlinux 0xc4c94af2 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xc4cac112 of_find_property +EXPORT_SYMBOL vmlinux 0xc4e7d0f9 omap_mcbsp_get_dma_op_mode +EXPORT_SYMBOL vmlinux 0xc50108f7 dev_crit +EXPORT_SYMBOL vmlinux 0xc522513c mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xc528485e sock_release +EXPORT_SYMBOL vmlinux 0xc52da066 omap_set_dma_dest_params +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53dacc5 ip_options_compile +EXPORT_SYMBOL vmlinux 0xc54bc3c9 dqstats +EXPORT_SYMBOL vmlinux 0xc564704e __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xc57282ae ns_capable +EXPORT_SYMBOL vmlinux 0xc57baf6a vfs_unlink +EXPORT_SYMBOL vmlinux 0xc5a356b5 commit_creds +EXPORT_SYMBOL vmlinux 0xc5a37aa8 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc5f714ff dev_deactivate +EXPORT_SYMBOL vmlinux 0xc60cbeb3 sget +EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc6357f9a tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xc6410a5d fb_blank +EXPORT_SYMBOL vmlinux 0xc67ed7c8 page_symlink +EXPORT_SYMBOL vmlinux 0xc69ee8ad add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xc6a9ed62 omap_dsp_get_mempool_base +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6dde7fd mmc_free_host +EXPORT_SYMBOL vmlinux 0xc6e912b5 vfs_symlink +EXPORT_SYMBOL vmlinux 0xc6f22107 task_ns_capable +EXPORT_SYMBOL vmlinux 0xc70bdcbc jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xc710c5d4 dm_put_device +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc73eda1b icmp_send +EXPORT_SYMBOL vmlinux 0xc74c87bb blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xc74db011 dcb_getapp +EXPORT_SYMBOL vmlinux 0xc74f371a xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xc762fcda cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b745ac release_pages +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7ed58d3 nf_afinfo +EXPORT_SYMBOL vmlinux 0xc7f1ebb0 netif_napi_del +EXPORT_SYMBOL vmlinux 0xc825d838 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0xc83808c8 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc864b988 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xc877a78e sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc88c3669 cdrom_open +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc9142293 omap_dss_ntsc_timings +EXPORT_SYMBOL vmlinux 0xc927b4a9 snd_card_free_when_closed +EXPORT_SYMBOL vmlinux 0xc931e772 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xc99092c2 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a0b0e7 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xc9c814a1 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xc9d9651c sg_miter_stop +EXPORT_SYMBOL vmlinux 0xc9e19034 twl6040_irq_init +EXPORT_SYMBOL vmlinux 0xc9e60743 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xca4174a7 d_validate +EXPORT_SYMBOL vmlinux 0xca4514f1 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca6d04c0 elevator_change +EXPORT_SYMBOL vmlinux 0xca8041ee snd_component_add +EXPORT_SYMBOL vmlinux 0xca9f89f6 d_move +EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcaf03959 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xcaf61951 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xcaf91b9f dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xcb36853b input_flush_device +EXPORT_SYMBOL vmlinux 0xcb398d47 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xcb3a892c dquot_disable +EXPORT_SYMBOL vmlinux 0xcb507652 filemap_flush +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb99edb0 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0xcba5fc7d mfd_add_devices +EXPORT_SYMBOL vmlinux 0xcbabb274 clk_get +EXPORT_SYMBOL vmlinux 0xcbb66485 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xcbc835ff register_sound_mixer +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbcc7153 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xcbdc2e5a netdev_printk +EXPORT_SYMBOL vmlinux 0xcbde5b35 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0xcbe02d00 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xcbe7de75 skb_clone +EXPORT_SYMBOL vmlinux 0xcbfa808b insert_inode_locked +EXPORT_SYMBOL vmlinux 0xcbfb8d6c phy_start_aneg +EXPORT_SYMBOL vmlinux 0xcc1e03da unregister_cdrom +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc26656e unregister_console +EXPORT_SYMBOL vmlinux 0xcc309524 __nla_reserve +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8b8b28 submit_bh +EXPORT_SYMBOL vmlinux 0xcc93e922 __put_cred +EXPORT_SYMBOL vmlinux 0xcc9a46d1 dquot_drop +EXPORT_SYMBOL vmlinux 0xccb7b3c7 skb_insert +EXPORT_SYMBOL vmlinux 0xccdbccfb fb_get_mode +EXPORT_SYMBOL vmlinux 0xcce6f447 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xccff4b6f blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xcd009b83 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL vmlinux 0xcd0e9657 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd30b95a tmio_core_mmc_clk_div +EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcdb6d693 put_page +EXPORT_SYMBOL vmlinux 0xcdd0f14f ___dma_page_dev_to_cpu +EXPORT_SYMBOL vmlinux 0xcdd6525c dev_disable_lro +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcdfb4472 pipe_unlock +EXPORT_SYMBOL vmlinux 0xce0439e5 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce38bb10 lease_modify +EXPORT_SYMBOL vmlinux 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL vmlinux 0xce5206a4 fb_show_logo +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5d861b devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xce7ce037 of_translate_address +EXPORT_SYMBOL vmlinux 0xce93d89b prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xce9c5a61 put_io_context +EXPORT_SYMBOL vmlinux 0xcea899ea down +EXPORT_SYMBOL vmlinux 0xcebdbadc vfs_readdir +EXPORT_SYMBOL vmlinux 0xcebe8a90 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xcebec1b0 blkdev_fsync +EXPORT_SYMBOL vmlinux 0xced79916 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xcedc16f8 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcef724bd dev_driver_string +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf015f7b do_settimeofday +EXPORT_SYMBOL vmlinux 0xcf1cf941 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xcf2f33c9 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xcf3fba9e snd_info_register +EXPORT_SYMBOL vmlinux 0xcf426853 sock_no_poll +EXPORT_SYMBOL vmlinux 0xcf42adf3 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xcf44d596 file_update_time +EXPORT_SYMBOL vmlinux 0xcf872789 bdi_register +EXPORT_SYMBOL vmlinux 0xcf94a68a backlight_force_update +EXPORT_SYMBOL vmlinux 0xcf958642 snd_ctl_replace +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcff2cba2 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xcffa7949 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01dc2ce snd_pcm_hw_constraint_list +EXPORT_SYMBOL vmlinux 0xd02f3057 set_page_dirty +EXPORT_SYMBOL vmlinux 0xd04664ea pagevec_lookup +EXPORT_SYMBOL vmlinux 0xd06d1e78 input_inject_event +EXPORT_SYMBOL vmlinux 0xd0814a48 input_set_capability +EXPORT_SYMBOL vmlinux 0xd0887cc6 snd_pcm_period_elapsed +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL vmlinux 0xd0d15091 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0dcc2ef noop_qdisc +EXPORT_SYMBOL vmlinux 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd1157735 release_and_free_resource +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd12e21c6 kill_anon_super +EXPORT_SYMBOL vmlinux 0xd12e623c blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xd1434da8 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xd172cb8d netdev_increment_features +EXPORT_SYMBOL vmlinux 0xd17a1373 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1d9936f bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xd1e02867 kobject_put +EXPORT_SYMBOL vmlinux 0xd1e3f993 inode_permission +EXPORT_SYMBOL vmlinux 0xd22194f5 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL vmlinux 0xd2277b4d wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xd2469630 inet_frag_find +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd276f795 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xd295862b follow_up +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2b67c4d xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xd2cee403 journal_forget +EXPORT_SYMBOL vmlinux 0xd2d51180 of_gpio_count +EXPORT_SYMBOL vmlinux 0xd2d573bb cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xd2da18c2 tcf_register_action +EXPORT_SYMBOL vmlinux 0xd302dafc ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xd319abb6 ip_route_input_common +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3276386 snd_timer_interrupt +EXPORT_SYMBOL vmlinux 0xd3429874 dev_mc_del +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd36402e9 mmc_request_done +EXPORT_SYMBOL vmlinux 0xd36baf49 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3ad25f6 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xd3c5cb1a generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xd3cff5b6 omap2_mcbsp1_mux_clkr_src +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3e9ced8 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xd3fd4798 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd43b7270 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xd4b618e9 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xd4c18944 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xd4d6c612 should_remove_suid +EXPORT_SYMBOL vmlinux 0xd4deee7a ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xd4e6b504 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xd4fb9089 kern_unmount +EXPORT_SYMBOL vmlinux 0xd50e9d42 setup_new_exec +EXPORT_SYMBOL vmlinux 0xd5152710 sg_next +EXPORT_SYMBOL vmlinux 0xd526a7a0 kill_pgrp +EXPORT_SYMBOL vmlinux 0xd544ed61 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xd54ad59b gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xd56e9485 omap_set_dma_dest_index +EXPORT_SYMBOL vmlinux 0xd56fdf87 dentry_unhash +EXPORT_SYMBOL vmlinux 0xd592396d generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xd595d82a zero_fill_bio +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b12da7 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xd5b1376d register_shrinker +EXPORT_SYMBOL vmlinux 0xd5d1e23f bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xd5ebd11a kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd61c64b3 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd63ef045 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xd66e47e8 dcache_readdir +EXPORT_SYMBOL vmlinux 0xd678ca44 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xd681dd36 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xd6866a39 ppp_unit_number +EXPORT_SYMBOL vmlinux 0xd68f74d5 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xd69cb4ee nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xd6a627f5 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xd6b15451 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xd6b5e60a snd_pcm_lib_readv +EXPORT_SYMBOL vmlinux 0xd6bd5732 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xd6d33ae7 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd70bd296 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xd729e9d1 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xd751bae5 bio_init +EXPORT_SYMBOL vmlinux 0xd764e30b xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd77b0a18 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a074ea tcp_parse_options +EXPORT_SYMBOL vmlinux 0xd7a6e3ee mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xd7aae2b8 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xd7ad5c45 snd_timer_global_new +EXPORT_SYMBOL vmlinux 0xd7d18c7a __devm_release_region +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7f77c50 md_error +EXPORT_SYMBOL vmlinux 0xd81d7016 snd_pcm_limit_hw_rates +EXPORT_SYMBOL vmlinux 0xd81d9599 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xd81e25cb seq_release +EXPORT_SYMBOL vmlinux 0xd822a39e console_start +EXPORT_SYMBOL vmlinux 0xd823757e kill_block_super +EXPORT_SYMBOL vmlinux 0xd82ea9dc dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd8752af0 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0xd88ceb98 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8c397e3 mb_cache_create +EXPORT_SYMBOL vmlinux 0xd8ce7e67 clocksource_register +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f040f1 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xd8f9c3ae blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xd8f9eee5 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xd9210141 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xd9247482 omap_dss_register_driver +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd955d2b7 omap_set_dma_dest_data_pack +EXPORT_SYMBOL vmlinux 0xd9573628 dcb_setapp +EXPORT_SYMBOL vmlinux 0xd96fce22 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd9b939a7 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9e0c165 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xda0b55e5 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xda20467e tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xda22da67 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xda257741 aio_put_req +EXPORT_SYMBOL vmlinux 0xda2f61d0 mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0xda3a8f33 tcp_close +EXPORT_SYMBOL vmlinux 0xda3cf2c4 proc_dointvec +EXPORT_SYMBOL vmlinux 0xda3f46fe mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xda43156d tty_port_init +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda96685d __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0xdaa93f62 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xdb14d556 km_new_mapping +EXPORT_SYMBOL vmlinux 0xdb2178c7 __sg_free_table +EXPORT_SYMBOL vmlinux 0xdb4292e4 omap_set_dma_params +EXPORT_SYMBOL vmlinux 0xdb4395bc cap_file_mmap +EXPORT_SYMBOL vmlinux 0xdb50aeb0 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xdb612e23 nonseekable_open +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb71cbd5 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xdb7430c3 journal_errno +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb9b3327 omapfb_update_window +EXPORT_SYMBOL vmlinux 0xdb9e2c22 posix_acl_create +EXPORT_SYMBOL vmlinux 0xdbaadaba dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xdbbdfaca tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xdbcb9edc mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd4cb4a of_device_register +EXPORT_SYMBOL vmlinux 0xdbda4f8b inet_frags_fini +EXPORT_SYMBOL vmlinux 0xdbdc3b90 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xdbf84b72 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xdbf96e6a bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc1e6ace inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xdc1f3959 sock_create_lite +EXPORT_SYMBOL vmlinux 0xdc2519e0 param_set_ulong +EXPORT_SYMBOL vmlinux 0xdc28a99e napi_get_frags +EXPORT_SYMBOL vmlinux 0xdc2a9f97 get_io_context +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc313c9a bio_integrity_free +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init +EXPORT_SYMBOL vmlinux 0xdc9011d9 dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0xdca3c07e blk_execute_rq +EXPORT_SYMBOL vmlinux 0xdca7a472 unregister_key_type +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd1981e1 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xdd1c65f6 blk_finish_plug +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd6d3eee jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xdd81df8b devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xdd91335f dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xdd95e5d2 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xddc0b129 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xddc5903a snd_pcm_hw_constraint_integer +EXPORT_SYMBOL vmlinux 0xdddee033 d_lookup +EXPORT_SYMBOL vmlinux 0xdddf3c5b bio_copy_kern +EXPORT_SYMBOL vmlinux 0xde15c042 omap_set_dma_src_index +EXPORT_SYMBOL vmlinux 0xde23a5c5 neigh_for_each +EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xde4d0733 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xde5f1bd1 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xde692d94 omap_get_dma_chain_src_pos +EXPORT_SYMBOL vmlinux 0xde6f2d45 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xde8c763d cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdebc38c9 scsi_device_get +EXPORT_SYMBOL vmlinux 0xdecc3dc5 sk_filter +EXPORT_SYMBOL vmlinux 0xdefd890b ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xdf070a93 key_alloc +EXPORT_SYMBOL vmlinux 0xdf0c9d80 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xdf15550d truncate_setsize +EXPORT_SYMBOL vmlinux 0xdf17c755 nand_default_bbt +EXPORT_SYMBOL vmlinux 0xdf1ef69f wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6358ad sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf952e7f inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfb2b25d dget_parent +EXPORT_SYMBOL vmlinux 0xdfbd8779 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xdfc1f2f9 dentry_open +EXPORT_SYMBOL vmlinux 0xdfc257ee nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfce1524 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xdfd91ce9 omap_type +EXPORT_SYMBOL vmlinux 0xdfea2a6e inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xdff3aae8 generic_readlink +EXPORT_SYMBOL vmlinux 0xe018f211 register_gifconf +EXPORT_SYMBOL vmlinux 0xe0363348 snd_card_set_id +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe051ed75 tty_vhangup +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe06f5cbb __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xe0732706 snd_timer_pause +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0ac20b4 unlock_page +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0de8105 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xe0fc24aa param_set_int +EXPORT_SYMBOL vmlinux 0xe0fce1ac ip6_frag_match +EXPORT_SYMBOL vmlinux 0xe106154f omap_vram_get_info +EXPORT_SYMBOL vmlinux 0xe106f6de find_get_page +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe12aa3b2 __lock_buffer +EXPORT_SYMBOL vmlinux 0xe12b2cc7 neigh_destroy +EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1c9c19b register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xe1ddbba6 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xe1df60c6 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe21b07ec scsi_execute_req +EXPORT_SYMBOL vmlinux 0xe2253201 register_framebuffer +EXPORT_SYMBOL vmlinux 0xe22632ba nf_hook_slow +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2500b4d backlight_device_register +EXPORT_SYMBOL vmlinux 0xe25a1f85 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xe262c616 bio_pair_release +EXPORT_SYMBOL vmlinux 0xe26e740b scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d89384 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe334f71b simple_lookup +EXPORT_SYMBOL vmlinux 0xe369d7c0 d_splice_alias +EXPORT_SYMBOL vmlinux 0xe36e6263 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xe37d10ae omap_dispc_unregister_isr +EXPORT_SYMBOL vmlinux 0xe3a6a99c ps2_init +EXPORT_SYMBOL vmlinux 0xe3c25117 ps2_command +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3deed23 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xe4033142 dquot_acquire +EXPORT_SYMBOL vmlinux 0xe42acfca pskb_copy +EXPORT_SYMBOL vmlinux 0xe47d7096 install_exec_creds +EXPORT_SYMBOL vmlinux 0xe4903890 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe4a5870e dev_activate +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +EXPORT_SYMBOL vmlinux 0xe4e8ec21 eth_header +EXPORT_SYMBOL vmlinux 0xe501acec blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xe5045635 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe513fd88 journal_update_format +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5250c84 key_unlink +EXPORT_SYMBOL vmlinux 0xe53d7b59 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xe5445af6 omap_get_dma_dst_pos +EXPORT_SYMBOL vmlinux 0xe54fcadb tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe592143f dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0xe5a31e0d dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xe5ba483a abx500_register_ops +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5cad992 ip_defrag +EXPORT_SYMBOL vmlinux 0xe5e1c300 input_set_abs_params +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f6f9c6 tcp_connect +EXPORT_SYMBOL vmlinux 0xe5ff7bde tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xe63ac5f5 block_write_full_page +EXPORT_SYMBOL vmlinux 0xe6744a89 omap_clear_dma +EXPORT_SYMBOL vmlinux 0xe68fdff7 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69e6511 of_platform_device_create +EXPORT_SYMBOL vmlinux 0xe6a15048 vfs_mknod +EXPORT_SYMBOL vmlinux 0xe6b70a65 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6e285bd scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0xe7198820 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on +EXPORT_SYMBOL vmlinux 0xe755d07d pipe_to_file +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d6647c xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe84437e7 d_drop +EXPORT_SYMBOL vmlinux 0xe85464b0 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xe85ba668 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xe8690ff1 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace +EXPORT_SYMBOL vmlinux 0xe88953a1 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xe898548d netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xe8a35e10 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bc04f3 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0xe8ce7e4c vfs_create +EXPORT_SYMBOL vmlinux 0xe8e1abbb security_inode_init_security +EXPORT_SYMBOL vmlinux 0xe8ebf346 ab8500_gpadc_ad_to_voltage +EXPORT_SYMBOL vmlinux 0xe9101952 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe93c3ef7 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xe94c80cd scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe97c4316 nobh_writepage +EXPORT_SYMBOL vmlinux 0xe98af587 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xe9ce8b95 omap_ioremap +EXPORT_SYMBOL vmlinux 0xe9d12dbe vmtruncate +EXPORT_SYMBOL vmlinux 0xe9dc9987 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xe9df9987 init_task +EXPORT_SYMBOL vmlinux 0xe9e4e163 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xe9e67510 dev_mc_init +EXPORT_SYMBOL vmlinux 0xe9ea040a blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea8a6c75 param_ops_long +EXPORT_SYMBOL vmlinux 0xea8bf01d i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xea9fb9df rename_lock +EXPORT_SYMBOL vmlinux 0xeac8939f init_special_inode +EXPORT_SYMBOL vmlinux 0xead1b868 netif_napi_add +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb05e490 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xeb18c329 mpage_readpages +EXPORT_SYMBOL vmlinux 0xeb1b120e omap_set_dma_write_mode +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb55476d lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xeba677bd posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xebb88ee9 tty_hangup +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high +EXPORT_SYMBOL vmlinux 0xebffd5e1 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec22205a qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xec292c9e sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xec2eca32 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xec94da14 filp_close +EXPORT_SYMBOL vmlinux 0xeccd0a47 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xecd46610 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xecfaf685 dm_get_device +EXPORT_SYMBOL vmlinux 0xecff7c45 snd_card_proc_new +EXPORT_SYMBOL vmlinux 0xed21ab6d dcache_dir_close +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed30c5ef phy_find_first +EXPORT_SYMBOL vmlinux 0xed3204f5 tty_port_put +EXPORT_SYMBOL vmlinux 0xed3d52a8 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xed4a0c89 vc_cons +EXPORT_SYMBOL vmlinux 0xed64804b dev_add_pack +EXPORT_SYMBOL vmlinux 0xed7ce107 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xed854dac omap_stop_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0xed937d4e phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xed9f692b security_d_instantiate +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xee108f30 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xee1cf357 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xee1f1340 path_get +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3496c3 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xee694bca netdev_emerg +EXPORT_SYMBOL vmlinux 0xee79b5f6 input_unregister_device +EXPORT_SYMBOL vmlinux 0xee824fe1 module_refcount +EXPORT_SYMBOL vmlinux 0xeea162a0 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xeea395a2 mtd_concat_create +EXPORT_SYMBOL vmlinux 0xeea3d476 serio_reconnect +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeabadbe mmc_card_sleep +EXPORT_SYMBOL vmlinux 0xeec2385f __bforget +EXPORT_SYMBOL vmlinux 0xeed0e2ae proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xeed72295 journal_start +EXPORT_SYMBOL vmlinux 0xef49edd7 of_phy_find_device +EXPORT_SYMBOL vmlinux 0xef613a83 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xef6681f5 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xefb66a95 omap_request_dma_chain +EXPORT_SYMBOL vmlinux 0xefc21008 cdev_alloc +EXPORT_SYMBOL vmlinux 0xefd6cf06 __aeabi_unwind_cpp_pr0 +EXPORT_SYMBOL vmlinux 0xefd8eca0 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xefdd2345 sg_init_one +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefec312f omap_get_dma_active_status +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0047f0d freeze_super +EXPORT_SYMBOL vmlinux 0xf00911f2 udp_ioctl +EXPORT_SYMBOL vmlinux 0xf01f311d scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xf0280e90 tty_name +EXPORT_SYMBOL vmlinux 0xf03724e8 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xf0543346 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xf05a2aa1 dput +EXPORT_SYMBOL vmlinux 0xf06abe25 dquot_resume +EXPORT_SYMBOL vmlinux 0xf08280dc dev_addr_init +EXPORT_SYMBOL vmlinux 0xf0880660 nf_log_register +EXPORT_SYMBOL vmlinux 0xf09096e4 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf09b45fb seq_puts +EXPORT_SYMBOL vmlinux 0xf0a05ee7 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xf0db1482 notify_change +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf10b693d check_disk_change +EXPORT_SYMBOL vmlinux 0xf11df4a5 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf122c048 sock_no_connect +EXPORT_SYMBOL vmlinux 0xf158fd0c inet6_ioctl +EXPORT_SYMBOL vmlinux 0xf15c0c4c i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xf1664175 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a3c919 omap_mcbsp_set_tx_threshold +EXPORT_SYMBOL vmlinux 0xf1b5f33c inet6_bind +EXPORT_SYMBOL vmlinux 0xf1c587f5 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1d05c17 input_set_keycode +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e0f946 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xf1e4936d fput +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf2057f46 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf228aafd generic_make_request +EXPORT_SYMBOL vmlinux 0xf22c1aa7 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xf2330895 release_sock +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf26df746 omap_vram_free +EXPORT_SYMBOL vmlinux 0xf272c23e __bio_clone +EXPORT_SYMBOL vmlinux 0xf273fc3d cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xf284e7fb d_rehash +EXPORT_SYMBOL vmlinux 0xf28e1e3e omap_st_disable +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2ad903f mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xf2d396b8 cpu_user +EXPORT_SYMBOL vmlinux 0xf2e48659 sock_no_getname +EXPORT_SYMBOL vmlinux 0xf2e5a880 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xf307eb11 netdev_change_features +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf321b766 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0xf3329c3e netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34d149d tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xf35b9ffe tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL vmlinux 0xf37a218e posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xf37f8f64 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0xf383490d jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3b8a2a3 __rta_fill +EXPORT_SYMBOL vmlinux 0xf3bbef68 may_umount_tree +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c9813f single_open +EXPORT_SYMBOL vmlinux 0xf4101fd0 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xf417f548 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xf418196d sock_wake_async +EXPORT_SYMBOL vmlinux 0xf420433c skb_split +EXPORT_SYMBOL vmlinux 0xf44d5f5b iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xf45861bf sk_stop_timer +EXPORT_SYMBOL vmlinux 0xf47fe288 dquot_operations +EXPORT_SYMBOL vmlinux 0xf4860c00 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xf48ee69f bdi_register_dev +EXPORT_SYMBOL vmlinux 0xf4907c51 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xf4937854 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xf49428c2 skb_trim +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4b008d4 skb_recycle_check +EXPORT_SYMBOL vmlinux 0xf4cdf2f5 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xf4f1439a iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf5091536 bio_alloc +EXPORT_SYMBOL vmlinux 0xf527cf66 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf54ba601 omap_mcbsp_config +EXPORT_SYMBOL vmlinux 0xf54c51a2 dma_pool_free +EXPORT_SYMBOL vmlinux 0xf55309e3 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cf326a param_ops_short +EXPORT_SYMBOL vmlinux 0xf5e53748 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf600ac26 snd_timer_global_free +EXPORT_SYMBOL vmlinux 0xf6081943 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xf612809a param_get_int +EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf641a9c5 pid_task +EXPORT_SYMBOL vmlinux 0xf654a171 mount_nodev +EXPORT_SYMBOL vmlinux 0xf65cb2e0 snd_timer_open +EXPORT_SYMBOL vmlinux 0xf67695d7 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xf67b3a0e max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xf6a0f909 __serio_register_port +EXPORT_SYMBOL vmlinux 0xf6b8567d downgrade_write +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ce8fdd security_file_mmap +EXPORT_SYMBOL vmlinux 0xf6d1eba9 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xf6d49898 omapdss_dpi_display_disable +EXPORT_SYMBOL vmlinux 0xf6d7e5d6 snd_pcm_link_rwlock +EXPORT_SYMBOL vmlinux 0xf6d81579 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f3cef6 omap_vrfb_setup +EXPORT_SYMBOL vmlinux 0xf6f5ca6f kernel_accept +EXPORT_SYMBOL vmlinux 0xf7065487 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xf74fe62e inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xf75047fa netdev_err +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf76b0de3 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7abe087 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xf7c61815 get_omap3_evm_rev +EXPORT_SYMBOL vmlinux 0xf7d71fb0 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xf7e7778d request_key +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf8294e35 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xf8299458 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xf853bbca omap_vrfb_map_angle +EXPORT_SYMBOL vmlinux 0xf869899f alloc_disk_node +EXPORT_SYMBOL vmlinux 0xf87a1595 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xf88c3301 sg_init_table +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8b727d7 __breadahead +EXPORT_SYMBOL vmlinux 0xf8ce0b68 override_creds +EXPORT_SYMBOL vmlinux 0xf8ddf431 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xf8e71f95 revalidate_disk +EXPORT_SYMBOL vmlinux 0xf8f6d208 scsi_host_get +EXPORT_SYMBOL vmlinux 0xf8f74210 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf9262e36 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xf92db872 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf93607ca ppp_register_channel +EXPORT_SYMBOL vmlinux 0xf956a8df do_sync_write +EXPORT_SYMBOL vmlinux 0xf9906dcc ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xf9981563 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9d58c35 inet_listen +EXPORT_SYMBOL vmlinux 0xf9e2775a rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9ebbc73 file_open_root +EXPORT_SYMBOL vmlinux 0xf9eefe39 elevator_init +EXPORT_SYMBOL vmlinux 0xfa082128 down_interruptible +EXPORT_SYMBOL vmlinux 0xfa16b65c writeback_in_progress +EXPORT_SYMBOL vmlinux 0xfa2239da tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xfa3fa027 ip_fragment +EXPORT_SYMBOL vmlinux 0xfa43a7b9 end_writeback +EXPORT_SYMBOL vmlinux 0xfa69e0ce scsi_init_io +EXPORT_SYMBOL vmlinux 0xfa6a7e47 omap_dss_start_device +EXPORT_SYMBOL vmlinux 0xfa7dec6f sock_rfree +EXPORT_SYMBOL vmlinux 0xfa9ac89f elv_rb_del +EXPORT_SYMBOL vmlinux 0xfab40848 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xfabf7bdd inet_add_protocol +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0xfacc0b4a __get_user_pages +EXPORT_SYMBOL vmlinux 0xfacd2e14 pgprot_user +EXPORT_SYMBOL vmlinux 0xfad37d4e d_add_ci +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb05f366 prepare_binprm +EXPORT_SYMBOL vmlinux 0xfb22bc00 __invalidate_device +EXPORT_SYMBOL vmlinux 0xfb29f1b5 __find_get_block +EXPORT_SYMBOL vmlinux 0xfb3e6c4d simple_map_init +EXPORT_SYMBOL vmlinux 0xfb53845d journal_destroy +EXPORT_SYMBOL vmlinux 0xfb5bdb9d key_link +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb73d8bb netlink_unicast +EXPORT_SYMBOL vmlinux 0xfb77c875 tc6393xb_lcd_mode +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfb9b4049 force_sig +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb013fa scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xfbb5b35c dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbec9aff bio_map_user +EXPORT_SYMBOL vmlinux 0xfbf28d95 kill_litter_super +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc11ce94 omap_dss_unregister_driver +EXPORT_SYMBOL vmlinux 0xfc1c2609 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xfc1fcf58 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xfc316354 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc485143 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xfc4d00f8 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc6832b9 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xfc9cbe1d __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc09e1d tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcdc18f2 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xfce9fb84 omap_dss_find_device +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfcfb69 dm_io +EXPORT_SYMBOL vmlinux 0xfd044c13 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0xfd1c1967 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd3a9a1b ipv4_specific +EXPORT_SYMBOL vmlinux 0xfd4c182b twl6040_reg_read +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6b3d0c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe1e9444 mmc_add_host +EXPORT_SYMBOL vmlinux 0xfe1f7648 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0xfe300309 snd_timer_resolution +EXPORT_SYMBOL vmlinux 0xfe31f742 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xfe526154 kthread_stop +EXPORT_SYMBOL vmlinux 0xfe5b30df security_path_chmod +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe634adc __ip_dev_find +EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe839a65 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xfea0ccfb arp_invalidate +EXPORT_SYMBOL vmlinux 0xfea91780 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xfebbf2ad bdev_read_only +EXPORT_SYMBOL vmlinux 0xfec222d5 snd_pcm_lib_writev +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfecd8042 find_or_create_page +EXPORT_SYMBOL vmlinux 0xfed15ad4 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfeff78a6 udp_proc_register +EXPORT_SYMBOL vmlinux 0xff020db5 ppp_dev_name +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2a641f scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0xff2b0fa1 omap_mcbsp_get_max_rx_threshold +EXPORT_SYMBOL vmlinux 0xff4bafb0 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xff5498b5 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xff6084e2 clk_register +EXPORT_SYMBOL vmlinux 0xff67604e rtnl_create_link +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff77327a mount_pseudo +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb94ef0 _test_and_change_bit +EXPORT_SYMBOL vmlinux 0xffbc4508 snd_ctl_notify +EXPORT_SYMBOL vmlinux 0xffd2cf99 omap_dss_get_num_overlay_managers +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfff6a879 names_cachep +EXPORT_SYMBOL_GPL crypto/af_alg 0x4cf9d159 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x670c2970 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x6c4eecd7 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x79a1e77e af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x7dfc1b39 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xb4ab9b3a af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xdec9b2cd af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xdf623e43 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x963bc257 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x0a0106ad async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xd88186c5 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc5f3f1d5 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xf8d948ac async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5eb120a9 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x70c0ba79 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x8c343b8e async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xeedfccf3 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x30e83d10 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x50374b90 async_xor +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xf3be5fcd blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cryptd 0x34eadff3 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x523cfd99 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x572f0555 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x6ef7ab30 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x94bdd4cc cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x9dbbe660 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xb962202a cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xd17d5afd cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xe7f1e005 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xe95a4d18 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xa97b5f0f twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x07beefe8 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1fc54e7c ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x398648e3 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3c536bbd ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x65f29eca ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7be1f3f9 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8e448d09 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x93c1998d ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x98a10e71 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9a03347b ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9eb19db9 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd34df98f ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd6ac9335 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd72987d6 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe7807a60 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf5e247da ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf693d0a1 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfd5343be ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x10f4c511 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xb6cdaa8d __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0c919e2f __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x20fc5771 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x404ed307 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5922241f bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x68c87256 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6cdaca27 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x724ac5d2 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa197fd68 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa789409f bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbeae6565 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbf746d9f bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc84350d7 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd9f39a2d bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00da4048 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x18f65792 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x32946b32 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x42c7eb71 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5863903a btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb12d2c97 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbafbbacd btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xddd488ab btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xd8dc3093 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xed0aad4b bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x0fb27f96 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x12ab17aa __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1e3fa6da drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1eada3a3 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x06a44d1b hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x090f5e69 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0ea0fdad hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1fb6d86c hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x20d567b9 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x332116a1 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x43734973 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x57f16c9e hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5c6480c6 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5d712681 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5ee2135c hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x61aa4a53 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x696227b4 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x73c760f2 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x78cd56d9 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8d25bd2b hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9614da5c hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9a2b8fa5 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa6254a52 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaf604fee hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdb7cdc7f __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd9bad19 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe1d6c32a hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xec728ee7 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf31bd75d hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf9e675e5 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xa07cb405 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x788bc09e roccat_common_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xb29dbb0f roccat_common_send +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x434252e8 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x5c94608a usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x86b4cfba hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe3993fc0 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x29fc19be i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x2d3b8dc4 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x38370a8c i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x3d387191 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x459179b1 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x97d3204c i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xbf2c3722 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xc6c6debb i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf40aaa9d i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x3ba6d9cf i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x7017cb52 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xb2d29af3 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xd1273698 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xfb23f2e5 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x7d4bb5df adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x0736a5e7 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x096df392 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5ef10df2 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7c510d1c wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8dac7fee wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9525ce44 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xad538ec5 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc533983d wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc5c7f30c wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd879ee56 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xdf4c5b68 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf33cfbd4 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0x0ef221ba omap_iommu_vmap +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0x9b3cf087 omap_iommu_vfree +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0xa0f04fbb omap_da_to_va +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0xb6418220 omap_find_iovm_area +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0xc41919a3 omap_iommu_vmalloc +EXPORT_SYMBOL_GPL drivers/iommu/omap-iovmm 0xd13af003 omap_iommu_vunmap +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x28cc5f7c gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x34ade986 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3cdb7533 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x402b486a gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x52ec2e90 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x61505139 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x674ff9c8 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7170da68 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x76c50ee7 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7a4535d3 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7c698073 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x807c5797 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9ff608e0 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa889e1bf gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb4b6afe7 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbe7210b1 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xde3a7210 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +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 0x80b61e17 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +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-multipath 0x03ca88f2 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x9226a3e1 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 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x10f7f7d3 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2b13183a dm_rh_bio_to_region +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 0x4a9402da dm_rh_delay +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 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 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xac12eca8 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb30b0895 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd5c1f90a dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +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 0x03ced457 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x08a936ca dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0a6642c2 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x61c7c085 dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x63b2ff62 dm_btree_insert +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 0x72289260 dm_block_manager_destroy +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 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa6aae3ea dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb967690a dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbaa513b0 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbc5fe7c1 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca2bde4d dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xccaeb9ae dm_sm_checker_create_fresh +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd32479bc dm_sm_checker_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdb562135 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf99dc2cf dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/raid1 0xff301416 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x41b675d4 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xf4f046f6 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x9e53f574 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x67af7a69 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x47e1b8ee tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x9fca971e tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xb1e88364 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x112e5d55 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x77162edc tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xf2b121e3 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x6c9a436b tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xb910db1b tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x5264d782 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-demod 0xdacafd17 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0xd1e7fb07 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x5260dd13 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x360c3080 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x47721dfd smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x512c7ffc smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x76222253 sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x78e0cdbf sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x872389c7 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8acf643d sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8bdfd36f smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9963c66c smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9cd37391 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xaa250500 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcbfa0106 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcc03c633 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xce8acc75 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd43d5f00 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xda7f1809 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe3d21552 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf4bb1cc7 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x05fb336e rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x07a6e154 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0f22383c rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1fff913c ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x28e746c1 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3543ca62 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3ff8364c rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x84fc67ee rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8885b781 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x91516b3e rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9cc7d4b4 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa3257d96 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xabb1a59c ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb0749568 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd674f00b rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xeb7d8b1b rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf5c02ac3 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x21de156f cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3bb3b687 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4b205cb5 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4bd6ead8 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x51805bf6 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x51cc687b cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x8150dd53 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x861fed56 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x910959a3 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa45e84be cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb19bd399 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb399e4a3 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc625c1cd cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc6545d5f cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc790b056 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd2218cf2 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd7f85d1b cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe3040835 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf04907c3 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x15669d27 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x54d5b9ab em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x5d04b502 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x91a09517 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xaa7b3ed1 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xab77b440 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xb8327d17 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xbfe8a99c em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xca7bc0da em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xcb1ce992 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0x149c627c omap_vout_new_format +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0x6e8f579f omap_vout_try_window +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0x9dea2c48 omap_vout_new_crop +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0xd49da048 omap_vout_new_window +EXPORT_SYMBOL_GPL drivers/media/video/omap/omap-vout 0xfada383c omap_vout_default_crop +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x0c9c3b41 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x6daa5ea1 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xa2ae7291 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xd3cb9c10 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x01e185cc v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x1febbf7a v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x86232a77 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xa43e06ba v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xbb44e22c v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xda333d68 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x268b2c1e v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x3d5965db v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb1a94a1b v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xba851363 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x07052a9b v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x251c8159 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x35fa417e v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x571578c7 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x6439206f v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x666d28dc v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7b9c40c2 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x93a40ed3 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa6438ae6 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xaebb7e14 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb8e36489 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe1a9dbe1 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfc7e9414 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x17f2fbc1 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x185f4ff2 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x20871a52 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x344485d9 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x396b225f __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3b5c19b4 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5d6a04a5 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x63dc81fd videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6868e96d videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x70725b98 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9036a5cd videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x915ffdf2 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x98ab1f00 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9dca2ff8 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa229aea8 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa2dac39f videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa50fd836 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb133a4e4 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb300af06 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd08a9dd7 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd36713b9 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd6e92259 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf014079b videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf797dc3d videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x7abac017 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x91a6f425 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xa52b2f18 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x33e028c5 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x3d80fde6 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xbf6f06c1 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x06ae278a vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x1f6c0332 vb2_write +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x2341e559 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x4c6a0d12 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x66c9cb38 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x7023be76 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x71f97420 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x75f21a08 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x95b18700 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa102bfd3 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa64554de vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa8a00918 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa9020c71 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xae0a5bec vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xce33b1a2 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xe0a49557 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xf94754ff vb2_read +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xdeb8d530 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xe3e994a0 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x2219b340 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x3ca6887b vb2_mmap_pfn_range +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x4f0f1b49 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x611092c4 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-vmalloc 0x81f0d19b vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x01513c57 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0d1be4fd v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0f7e6a22 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x12f7363b v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1e3fc8d7 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x213b1ae6 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2804e82a v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3018952b v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x47fcf648 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5b7d8656 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6cb73ada v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x84797b92 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8d314f25 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa68273a5 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xae68698d v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcd29c52f v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe5749e18 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe95edad6 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xed3b1b2b v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf294c8b9 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf5478686 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf9e869ba v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x29d1d107 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1681e9a3 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x174f56ea pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2dbfb2f1 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6224db66 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x69d7c159 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8f542a5d pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x91087ef5 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa6b88b08 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb2c19a76 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xbf94ede5 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xde0836ea pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x7d5314ee pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xdd5dc173 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x320c341c pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x83161e79 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xabea9819 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xbfb8546c pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xed3abe41 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x111d8f6b sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x19d8e15a sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x78f05470 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa439f747 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa637b5cd sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x08b8dd2e twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x506e4ccd ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x2a4e8040 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x3faaa823 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x549ac47e wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xcd325522 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x08f8ea28 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x09320d3e enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x16e733b9 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3abaf370 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x42ff1602 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x518e92a4 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfda9d879 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x1e761971 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x2fc0c385 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x4cf649ba lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xbbbe79b0 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xc5319394 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xd6d6d041 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xff115eb9 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x40f30a93 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x6251f389 st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x4d8c1e07 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x8b1220dc sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x9683a150 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x9b0d9ea8 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xe7c42480 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xf119d725 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x92e5bd26 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc495ae73 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xed8f55d0 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x14baab21 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x468f5c67 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb988680c cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x7256b82b cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x1f6a910a cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x62abb43f cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xefccdbe4 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x500beb5e DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x19d6462b DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x05c53d69 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xa618b44a onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xf0a42bc5 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x25827ef9 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7bc61eac ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7f3dc258 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x811796c5 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xaf2d9692 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb4b8462b ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xba79627e ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbe8c2af8 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc3a86310 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd81e5b78 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xeaa3da2e ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf54fa46c ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5f31839 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x2b606aac register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x6753b26a free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x929cfe4a unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xfe1be3f0 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x084d7a81 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x093171f4 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x11cc3f27 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x34e5bbed can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x49d0f8db close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7335fc76 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7ddb4a89 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x865f3fa0 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8a4f9686 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x973a025e can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9a7194e5 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcd50ad3f alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0f30309f alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2c1ce7c4 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4c55db77 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x52ee6d4d free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x364e1994 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3a3b9870 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x47e3a534 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x4a057bba macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xac121b4e macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x70b2ae05 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4ecff8dc usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x93462b0a usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xdb925da5 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xfb77cd93 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x08ca8e94 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4e17a24c rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5ca06feb rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x64e54b87 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x65b61681 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcfaec17b rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00b18417 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x069b7120 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0e2756c9 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x211a0e25 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x218e6c3d usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x22318890 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2aed31af usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x36b924b3 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x391bf539 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x55f16eb1 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5dff9c2b usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x68727620 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6bdf7681 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x70559580 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x74952c03 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x92962e42 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x95ee765f usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x991af46c usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9b5cb4a1 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaacf4234 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb2f028f5 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc68f6c67 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf5d3a236 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfcb74ef4 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0c98a759 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x211a6601 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x27fb0d1a lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x46b74426 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x59de09a9 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x73e125ae lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8b339b30 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8ec5bc6d lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8ef4a713 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbcb4c2be lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc0f52856 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc1b80554 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xec18a1f1 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xedf87e88 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xff64da3c lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x196cfef2 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x30a83902 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x69a9b6bc lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x854fda41 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xaf4c2921 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe82ade23 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xec895bed lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf62e7c38 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xbd428e0a if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xda2112f4 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1a31c9d4 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1ab96654 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1b677b74 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3624db14 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x58ecbb61 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x70186ad0 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x957e4f82 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa9ae3059 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc4715498 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xcbe546dc mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe64d3efd mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6dc7654d p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x703775cb p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x91bc06d5 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9670bc2d p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9b5026df p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa592196d p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xacdb334c p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd839b111 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf8cb573e p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x00ccea5f rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x04a424b3 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0a339da8 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0e9dce33 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x17b3b78f rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1fda8fda rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2544a503 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2d29f47a rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3139d89f rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x35cafab0 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x39f6c961 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3f143b3a rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x420585eb rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x538c235d rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5df6e794 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6cb6423a rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8a4e38bb rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x91313b65 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x97c5ec90 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae9c130d rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb4087e4f rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb5ab5df2 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbbcb32fc rt2800_rt2x00debug +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd0d725a0 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd8bb3d48 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd8bcb9e3 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdcf1e3b2 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe2d646ca rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe4475465 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe543db07 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb04dd66 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf06dc195 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf695efc4 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf918653f rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf93b33de rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfc930054 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd611305 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfe82a019 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x05a3122c rt2x00debug_dump_frame +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x07eb319c rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0dc59591 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x114adf96 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1ba0b78a rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1cbb5998 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2361f657 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x23995e58 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x29202e9d rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3109e21d rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3157d15a rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3e4e694d rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x456fd7e7 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x47b885f7 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x486d8b8b rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x52872794 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5322e0a8 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5dde22a7 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x620e468a rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x64dd7f86 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6ae87a4e rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b6b5741 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d0f2c91 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d3e1aff rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6e2e9597 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7226c33f rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7947962b rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7a9067d6 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7f2a9b79 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x887c1c66 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8db444d5 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8e616d5a rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9830bc57 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9f058f57 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9ffd4ffa rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa1df6a08 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa396dccf rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaf2a40f5 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbd93f050 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbdd7abdf rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc54f5fc5 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcc1dde9e rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe8bbd6a3 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeb8af81d rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xefd462ec rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf5360a1f rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfc33adde rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x00a1f669 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1cdce557 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x21560198 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3d5be0ae rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x41ce9b0f rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x425d7632 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x42b91b28 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x476142e3 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x511ee350 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x638c5d2b rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x68dafa19 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9a078708 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa7e283bd rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe4a52b85 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe9923086 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xffea84fe rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x8291df53 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xc240d5c5 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xd20d6baf wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x0b63b9a2 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x224f6fa6 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x23f08e53 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x446ae03a wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x44726221 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x62a89ee3 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xc129d7c3 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26 wl1271_irq +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x0cdae7af pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x2a9f243f pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xf84e46aa pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x1797dd79 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x1a6aa1b6 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9a8fa306 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xa3492b37 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xc0749085 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe76f8e64 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xf99dc686 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x1c12ee97 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3aa1f053 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x676c350e wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x9a453bf8 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xcc0daedb wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe9c54df0 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x6fe1f9ac wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1735a0bd fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x202d9177 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x2dd21b71 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x46afeded fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5d0b330d fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9df48493 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa1dae69a fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc84f6c1f __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf069b7b5 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x821fdbc1 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x952ea946 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa39c0b95 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xb447e1c7 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xd3463e8a iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xd3ab2672 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0135218f iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0222b6c9 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x052411b2 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0832db5a iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x11008775 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2be766bf iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb071dd iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3902e31a iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3df6129c __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3ecac65c iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x405ebc86 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x444d48e7 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x45e88cd2 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5058d2da iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50ee8564 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x51782e55 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53b97ebf iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53e88dfc iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5f76cfff iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x606efbc1 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6199a6d2 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70a9c513 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x766d367c __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7c2f85bc iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7cbee4ca iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x85ebefc6 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8b9692d3 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x980b37f8 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9c482edb iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ee2792c iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8f6f8de iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xacdcc113 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4178bca iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb48f4e82 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb70a8e16 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb8559321 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc51f7912 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd3da2349 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd7f25ecd iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdafe0642 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdf12f619 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xee0bae1b iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf251a163 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x03398aa6 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x04c282d8 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0f9c4523 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1a890ad4 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3aa33c69 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3ca75038 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x427061c9 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5ac9c0fe iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7922d013 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7a839e74 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x82b06db3 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x93194941 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd68febb2 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd964bd87 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xea50fcf0 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xeaf782d8 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1ad9d185 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2eb72728 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x47340c9e sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4f0b6846 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5eb7a5f6 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x666d16a9 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x668c2031 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6dc53edc sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6f521071 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x777ab3f7 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7d95c562 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x819ea7f4 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x89e9fc56 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x942f3ec0 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa2ca0eda sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaca7b268 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb456b5af sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc191352a sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc66bfbb0 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc9249510 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcac23729 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd0fecf00 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd6734ae3 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe49c2a0c sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfb2f7aed sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3b5edd24 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x41e81152 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x51b186c6 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6868666c scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9b3baa24 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xad2d266a scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xda746409 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf38f87ec scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfe36d1b8 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e8552db iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e8b60fd iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x16286100 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d7da4d9 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1dfb4940 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x239199ec iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x28ac7a06 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2e92191a iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36239439 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x473cdb4d iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x503b09d9 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5d75aaae iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x600cf7e0 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6ea61450 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x77d44883 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7eef9a65 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8564db0b iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x85d4ad21 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9983735a iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa38968a2 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa7aaad41 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb735b8f4 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc278a694 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc4354c7d iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdb5bd723 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf527158c iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfd15c65a iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x1ed9e919 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x26c911a2 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xa31b8f78 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xfcd3fcfa sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1ed6b40c srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x6f8a8683 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xaa34b9b4 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xdbb30f37 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xeede2112 srp_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x05b3e7a9 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x9efb66e0 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xaa80df8f spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xe48bf429 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xe8baf416 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xf7447548 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x0b6a6457 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x4b88d9fb dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x7123216d dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xaa4317d7 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xe873fa4a dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x782479f3 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x7d72eea7 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xbd89d0df iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xd560fbdd iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0x35b85807 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x372e6776 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41b6bc80 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x465de46f spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5b6ac139 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6071ea08 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x62f7cea3 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6ae751f5 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8040d91a spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8905e8b3 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9ff94a7b synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xcab58526 serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd2af1d00 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0587b1f4 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x13cbf0b7 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x2227257d usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5319d582 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x65df8ff1 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x782aaff3 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7dc6c90f usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x825570ef dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8418aa8b usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa564f097 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xad552323 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xfb79f404 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xfc0939b6 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x4079b35f max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x5909e48d max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x7de39c15 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x820be39b max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x8445c79f max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xd26aeee8 max3107_rw +EXPORT_SYMBOL_GPL drivers/uio/uio 0x649f37c3 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x696e6d91 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x9fe57339 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x8b1b6bdd usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xacc4e904 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x16a02659 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3ceb5e17 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x668f8fe1 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x79b3fb00 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x99a37b3a usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9a3cceb5 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9d2da662 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe831c330 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfa0daa76 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x031ea56e ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1fee3850 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x32e32c65 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ca1f998 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x499728ae usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x53ab8580 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5dc8f7f4 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9b4c6d10 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa2933fe8 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbc9f7b4d usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbef5dc5b usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc01f3ba6 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xca6baa7c usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xccec9854 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd02e137f usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd53a557d usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd9e815d2 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf52dc02 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe023fa03 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe8f9c220 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf315dbec usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x090c469f usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1f86a215 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x21bad378 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x258d4f91 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2de22f7f usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x37bc8e72 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3c16f7b8 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3d62f98e usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x45ce60e3 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x48fde8ff fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x52b96f7b usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x87c2fdec usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x89bd819c usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8c9b0b42 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8e7883c1 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x907ccda6 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x92da1f0b usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x995b178e usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa32a5c49 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaeed6df0 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe41b455a usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfa866101 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0771c65f __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb47767d9 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc263dc28 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc4b1de50 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc9e857e1 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0dbcdbdc wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0ee81524 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x272083c9 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2c526ef9 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x33c7e78d wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x37c322f2 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6cd2b9bf wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6ec499e8 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7e97afad __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x804c78b0 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8281e9a1 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x860b9aef wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x96c92c06 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9c7619f8 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc4930181 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf0424c12 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x6ee6f731 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x907d05b2 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa270bee6 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x06c35f5a uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x126b8694 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1f088c12 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x274f1232 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e1bf0c8 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x36802865 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x38bd1f02 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4345579f uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x52fa9304 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x554de143 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x58271ec9 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x607a2991 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x65189598 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6d03092b uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7289db68 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7a5bf1b3 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7e7f6f4b uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7ed05e8a uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8d034935 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa75bc5d2 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb1994189 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb53eef58 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb84e7387 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbab6a474 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc323631e uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc53dfcd4 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcc5d1048 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd0635d3f uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd1f7cffb uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd925a480 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xde8df0be uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeefdf2f1 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf48409c7 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf5c10abe uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf9ebb927 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfaea9947 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xffc1637c uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x0660d406 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x684fcaf9 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6e1a4e22 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x9e589a26 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xba52271f ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf97e0e61 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf9e5e24d ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x0a40e825 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x9a06728f fb_sys_read +EXPORT_SYMBOL_GPL drivers/w1/wire 0x50c9cc9c w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x50f3c80b w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x65cc9e17 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x84c94eaa w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa6f777e5 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc4fe072d w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdc9e03ed w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xee07c8db w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xffec2c2d w1_touch_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf3dd11b dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xec763b89 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xf2e8bfda dlm_posix_get +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3440b409 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6d860a7f nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9c54fe4d nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc1423bf0 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xdb2f9014 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1dc5eff1 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x20ae78f8 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2cb42983 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40043bd9 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x47bc770e nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x48030e09 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f7102ff nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x57fa0840 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5bbdc50b pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x63ef7064 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x68c9e9f4 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x69721200 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x772d903b nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7af52e6e pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c1820ad pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7ff554a2 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8477751d nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8a24bf79 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x94b05599 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97087fa9 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97ad1a20 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x99b8b382 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9bc5f192 nfs_commit_clear_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8360a09 nfs4_reset_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb08963d3 nfs_commit_release_pages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb31ab494 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc17a5bcf nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc8ed5409 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc92ca9b6 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xde9a73d7 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe0a1e36d nfs4_reset_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea4ca3f1 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeacd4b0a pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeb663fd1 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed43475d pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xef41e49d put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0ff4a96 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf35a686e nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf8f33922 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x4179251d nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x67fe841a nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00361673 o2hb_unregister_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 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x30359792 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5cbe456d o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5eff066c o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x801dd2b9 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xba785c6d o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +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 0xf531856f o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0145931c dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3f626c18 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5e215e8c dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7fcd9d70 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 0xe9b7525b dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf79456a5 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x379f2a38 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x40c0fa8e ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x6dd99430 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x38df6a90 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x8fef6a1b garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xa4e06a18 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xb34afed1 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xcff856d7 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xf052dc28 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/stp 0x251c8f98 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xc8c0c247 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x062b2cf4 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xdda9a52a p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x621d777c 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 0xf8faf4a2 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d1145ea dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x136f2d4a dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x35ce1b7f dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e24ae8a dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e4fc6a6 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3fd2c4bf dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x43f48558 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55064a45 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5834b9e7 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x619b1cd7 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75395752 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7dedb23b dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8414bc04 dccp_create_openreq_child +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 0x9d23abdd dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3e70332 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa5f75ffa dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa9f6aebd dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xac7c0864 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xafeeca33 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb75825c7 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbad496a0 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbd6a4cfb dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcec6daf7 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2edee4f dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd5ca1bc4 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd78c3aad dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc9bcabf dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdea3f020 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe4e19ef9 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9bb6e4e dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xef227da0 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf94dfe56 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfd556154 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfe63abbf dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0c0fc14a dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1d980497 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x26f081bd dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x95e5ca6c dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb9b7e447 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xea808fcd dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x6bf20f85 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf6abaa8b unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x77eabde2 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xfaf9ed9a gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x60878988 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x99f98f51 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x7fe85bfe arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x673a40fa ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x7c710933 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4e124717 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x66020dfa nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x888be98c nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x909d3cee nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa44f2679 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xeaafcc47 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x0a8b1ca7 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x19fc584b tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x1b760427 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x4504a6ce tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe88c321a tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xb87c3cdc ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x018addfb l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x18391250 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x21420dd3 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x216cfaeb l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x22e0a00d l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4f6e1d78 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5167df84 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb6c611e5 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbe87a294 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xde6149e8 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf62abcd4 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfc5444f6 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x09a551c5 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1d7bf232 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x360f330e ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8ef39650 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xec6dc70a ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xee2333a9 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf65bba3e ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfb5f6064 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x288e7a1e ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3bd82539 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4055622d ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x44b548ba ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x47a8163c ip_set_get_byname +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 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8aafdef9 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9ca6d85d ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa26ab81c ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa53fc707 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa7f5c049 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc1896f88 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc5f9b62f ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe18ba72c ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf6df332a ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2d777215 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x8fa4c88c ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x9a13d1e2 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xd98d44da ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16d2fd15 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x198c49e2 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f1bdf75 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24e49f97 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b01439a nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30a4e023 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35c22a2f nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3849bdcb __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38716e8f __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d9efc95 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f014550 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b2f444b nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4bb0b62a nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x51b09ca1 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58061d4f nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b3a003f nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x622dad41 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a6bf733 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c4d3d95 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75d1fca7 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x799f21a8 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7af8da19 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7dac3c5f nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e23e67a __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f90c4ee nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ff8e880 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8446f04d seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8920316f __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8bbf4695 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8bda12c4 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c74534b nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91a26f87 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9834862a nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0d0a122 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3940d05 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6c9e59a nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa7502a77 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa948839 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf4df6d7 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb29dea21 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2ec5b42 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb47c9d8b nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb4ac533e nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5c69422 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1d7245c nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc3fdc035 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0de79ac nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd72afb0b nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9216d19 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdac18bf7 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3cd6eb8 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebdd2b77 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xecf67ea8 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeefdeb79 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef2c0940 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf18c7b29 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf8a40a21 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9f96e43 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x481d0139 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x6a678b37 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xc6f13509 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x07b07a0a nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2e27484b get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x314d0b79 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5f84678f set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7042e305 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7a36d220 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9b47f036 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb8244e26 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd2b7b463 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd85df3d2 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xe4674884 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2071575c nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7b91c5c3 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa69e33c0 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb482eb2c nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x077e229c nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x8fdd0a55 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x06bcc81c nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x072d4abb ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x19899305 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x36666ab7 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3d46587d nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x47924dd1 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5a24b6f7 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6750aab6 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x90a338e2 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x92cd59fc nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xacb1dfc7 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd5f4b223 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xeeb7ed41 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xbac94e75 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x5ce5bf81 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xd32c1bd7 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x12ba4f7f nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x55d11193 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x941de0e1 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdf6f4329 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe5470d63 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xea88e164 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x0a754b90 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x01c76de4 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x082dd1b0 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1adeff2a xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b3e1f08 xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4a6658db xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4d169609 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x566ea079 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5b7aef9e xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x614322fa xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6cbfe9b1 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x846f4629 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8804de69 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc08a10ac xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf3930a5e xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x563d999b xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf6afa81c xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x12ef80ae rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x13841b73 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x13c16184 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x25c3b843 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x40495da9 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x417f7987 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x4381d763 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x59d308dd rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5ae7ab84 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x5e397623 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x64dce96f rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x6947f82c rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7948b834 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x961033a1 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xab27a67e rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xc14dff73 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xc18fb313 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xc276e203 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xca630332 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xcacc90b6 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xd429420a rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xdb207a57 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xe37bb313 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xe3ce2e0f rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xf5f2ee5a rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x1c504e90 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xfee5459b rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x034e954c gss_mech_get_by_OID +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x209f950b gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2e4b3702 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29 gss_mech_list_pseudoflavors +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3a98549d gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5546cd8a gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x671c96a6 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x89ddfdf2 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x952f7dbc gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9838a001 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb17ee76c gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd2ecb50b gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf1090c6f svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x011857f2 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0196f60b svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04884330 rpc_lookup_machine_cred +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 0x075ec47e xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0974e8b4 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d681618 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e088247 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e65ec85 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9dabb1 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x108bb146 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11bcb2d7 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13034966 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x151da779 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1589d57d rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x191d3939 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19e8eab7 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a86f6b4 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c0a9208 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fe84ed8 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21b3e47f rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25a88b7b rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x297d6b80 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2dc4f830 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f20928b rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x312ef97e rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3178dde3 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x320bffd0 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x324e4a00 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37e0bf71 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3aaf2759 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b18068a xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cd2a47e svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ee06f94 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ff9609d rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41f46514 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43113ce5 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43930f23 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x454ef907 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x457eea89 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46b0d746 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x481e692d rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49925524 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c13f9c1 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cb38d51 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ebbfa74 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53d1ff5f svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5596c26e rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56ce5bf1 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57d36f03 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59c09ac7 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5abf6cf9 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5de15841 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60dc3829 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60e90a70 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63489266 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63ca2f53 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64654bd1 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x673dc282 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67747be5 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67752077 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x687f5259 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x690ac893 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b3466b0 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d1b2aba rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ddd4d90 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x709f275c svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x736fd20e rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7429a1a9 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74525970 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74e66498 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74ed2313 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75b4dcd2 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76e2401f xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7893a87a svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78d289be svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7cc44337 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fa0a35b sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fd075b3 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x801b0f90 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81784630 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81af362a rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8361b6a4 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x862a2a5e rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8974a3e4 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x899d5f4d svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89accfc9 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8df77037 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x907d0903 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90a78a83 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90b8eec1 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9240e4a8 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93803286 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x939efa56 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9458615a xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x957dd2df csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x981777e6 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b877fa xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bd34678 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cccde12 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d0f7190 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f51b80c rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0eec596 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa157a84d rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2cbe1dc xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5804bcd xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7550720 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaba3c21d xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac6c3332 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad7d1f4b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad847012 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad8efb96 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaedc293d rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaedd2f08 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf27a192 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3a71ae5 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb58b44fc cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb606760f rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6ca693c rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba888710 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd7f9fa3 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe324d9b xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5695577 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5baf4df rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc62b3cc7 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc883cca0 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca433397 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce25c79d xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd011a74a read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0258f8a put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0a504c9 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0db17ab rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1d1d1d6 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4685c1a xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd60c1cfa xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd66de571 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd95ae0c0 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb469ca3 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbdf5104 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde065152 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe338b199 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe34fbabe svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5935236 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6e94d4d rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe903e222 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeada4ef1 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb1b3729 auth_domain_lookup +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 0xf205dc8a cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf977465f rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9acf709 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb05ca0f bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe76e7c3 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2102144d wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x289c8261 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x297723c8 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3207d7c1 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7352b315 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa4e9a86e wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa66459ea wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb2788ea0 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd2fefe91 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd36f8631 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xdaae642f wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xee5547f5 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfe7eedcf wimax_msg_send +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1c57299d cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2409a803 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x259f1bbc cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x34629ceb cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3d4cf206 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6d074a59 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x83840c00 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8e5d9c8e cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa2520ab0 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xba8a6f07 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xca4791fc cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x298a28a7 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x33fcfc7b ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x70b29620 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd65760c9 ipcomp_init_state +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x4a411148 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x901b0abf pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0xb22d369f v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x2408f291 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x02aeb5e2 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x4e3a2c0a aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x6785206f aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8d7774ce aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9c63a4c9 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x6fefb0a5 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x789285e3 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x3b578544 twl6040_get_clk_id +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x6aaa7ad6 twl6040_get_trim_value +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x8683168f twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x7999451e wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1d420d5f wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1f333680 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5cd7eb9b wm_hubs_dcs_done +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xef86aa23 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xed22a43b wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x759e8916 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xf7cd4077 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xb8ffad2c wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x5537c740 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x38b920a6 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xbc7d285e wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0xebb14060 wm8996_detect +EXPORT_SYMBOL_GPL vmlinux 0x001409e7 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x007bb637 put_device +EXPORT_SYMBOL_GPL vmlinux 0x0088a193 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x00a21e1f mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x00acbf3c snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01065550 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x01181467 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x0118a772 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x011a897c __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x011feeaf device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x01249cf3 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x0139d34c fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x013a129b omap_dump_tlb_entries +EXPORT_SYMBOL_GPL vmlinux 0x0148adb6 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x0153747f debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x016166a1 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x016c5c01 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x016cd18f tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01782189 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x01a11c59 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01b1d8ad wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x01c6cb0c cpu_cluster_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x01c9e308 default_mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01fb1fac inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x0208e49d tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x021f88d6 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x0242eec8 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x02758432 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0277e39f spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x02c8a5e3 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x034d4adc scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x0372dd8c security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x0411aef2 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0430b406 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x0437015e spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x044ed531 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x045b0558 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x0461e5d0 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x04927791 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x051bd65c elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x052e43c1 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0547d8e3 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0561dfe3 regcache_read +EXPORT_SYMBOL_GPL vmlinux 0x0573b2d2 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x05a6a3c7 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x05ae262e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x05cffeb6 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x05dd60f8 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x06153dd2 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x0616a4f7 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x063450d5 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06510a0f modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0672cdd2 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x067407f2 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x06a10f73 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x06b0585b register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x06bc4b99 sdhci_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x06c06260 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x06ca6a30 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x06f57384 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x06f88a97 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x0722b90f ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x072f8d7f ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x079df8fe xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0822b95d ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x083ce29b omap_mcbsp_st_add_controls +EXPORT_SYMBOL_GPL vmlinux 0x087ee4e3 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x08874a0c cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x089d23c0 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x08a72f20 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x08ad6e6f cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x08b0a176 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x08c3f4cf rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x08d0a8a4 md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09245d1f tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x0958e3fd __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x098e9829 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x09e11896 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x0a359f6b trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x0a387f80 __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x0a6fa376 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x0a866d07 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b15e68e inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x0b28defb kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0bd33fdb lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0x0be6fdad posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c1bf836 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c378adb sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x0c6e482e css_depth +EXPORT_SYMBOL_GPL vmlinux 0x0c8c108b scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0ce2f4ca __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x0cf00315 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x0d0c109d of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x0d168486 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x0d30ea61 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x0d78a205 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x0d7f3af5 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0dc5d642 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x0dc88680 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0e38e132 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x0e6c89f5 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x0e7b8d26 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x0e99cf81 xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x0f559c60 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x0f587e70 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0fb38263 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x0fb64bd2 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x0fdbdbab irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x0ff9ba0c dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10372b0d snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0x10541c37 mtd_del_partition +EXPORT_SYMBOL_GPL vmlinux 0x1056e3b2 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x105ce618 omap_dm_timer_read_counter +EXPORT_SYMBOL_GPL vmlinux 0x10686a4e tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x10bdfa17 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x10c355f8 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x10e05ec5 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x11001987 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init +EXPORT_SYMBOL_GPL vmlinux 0x112c2091 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x1137bcf8 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x1142c578 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x1147e1d1 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x11692179 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11ac71b6 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL vmlinux 0x11bcefb2 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x11ef7d4a snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12a30954 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x12d18684 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12ee0bb7 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1308cc97 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13234bc5 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x13500915 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x1355c47b attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x13732399 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x13843f12 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x139d482f flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13e5278a kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x144db879 sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x146f3688 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x149b8f34 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x14d5945d of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x14f65603 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x15187452 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x152effc2 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x1537422f blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x1545f4de register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x1556756b usermodehelper_is_disabled +EXPORT_SYMBOL_GPL vmlinux 0x1556d107 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15a19ab0 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x1625eb3f input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x16283af9 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x16406098 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1655bb05 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x1689f7f3 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x169610d4 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x16e13cc2 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x16e28690 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x171a306a sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x17393c9f rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x175fe2b9 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x176732a6 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x17a644de kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x17cde3e6 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x17daf706 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x17e8b93d snd_soc_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x17f072b0 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x181361a9 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x187a8eae xv_malloc +EXPORT_SYMBOL_GPL vmlinux 0x18e2c347 dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x18f8620d usb_string +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x19409aa8 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x1972cd04 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x1985b6c6 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x198c6406 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19d4feb4 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x19fd9136 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a65920b omap_iommu_arch_version +EXPORT_SYMBOL_GPL vmlinux 0x1a839304 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x1a8e7689 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x1a944070 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x1aa2bfe2 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x1abb7393 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1ae0e135 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x1b0c82a5 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x1b3b8779 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b55af50 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x1b793a0a get_device +EXPORT_SYMBOL_GPL vmlinux 0x1b913e2b sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1b96636c fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x1b9794af rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bbacc7c crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x1bd7f702 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x1be5652c inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c9f887b bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x1cac1e75 wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x1d177890 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x1d4c0a7f snd_soc_add_controls +EXPORT_SYMBOL_GPL vmlinux 0x1d52e208 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL vmlinux 0x1d8f2b91 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x1da909c9 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x1db58f41 nand_release +EXPORT_SYMBOL_GPL vmlinux 0x1dd2d9db securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x1df544b0 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e4adc5f sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x1e4dae3f devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1e745ccd inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e8403d8 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x1e9966de iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x1eaec788 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1eba928f ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x1ee9814e irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x1efbf353 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x1f37286e register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x1f7853e3 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f951aaf dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd699aa tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1fe62f5b sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x1fe6cd62 omap_dm_timer_set_int_enable +EXPORT_SYMBOL_GPL vmlinux 0x1ff9bd77 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x20091bc3 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x2027bdef ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x204280ba ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x20511ea5 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x2051d81f usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x209cd173 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x212d881f snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL vmlinux 0x217290f3 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x217d30e8 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x2193b8a2 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x219dadb2 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x2236d585 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x224619fc add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x224bc0ab register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x2278bc43 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x2305e3a3 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x230e0698 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL vmlinux 0x231e52f7 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x235ce1ad blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x236b4395 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23b90f16 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x23bef245 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x24408556 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x2445986e usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x244f67fa skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x246945f1 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x247715ea snd_soc_unregister_codec +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x248470cd apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x248738e2 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x248a6ad0 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x24910c5b inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24cd57ab elv_register +EXPORT_SYMBOL_GPL vmlinux 0x24cfcf80 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x24daacef __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x2511ae97 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x251dfdac blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x252e43b4 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x25391c84 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x2558e71a xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x25a7faa6 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x25d1b79e pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x25e3696b get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x26297aaa ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26413b2a dapm_reg_event +EXPORT_SYMBOL_GPL vmlinux 0x26765503 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x2679a70f each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x26abff41 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c39dab vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26dc20ba omap_dm_timer_write_counter +EXPORT_SYMBOL_GPL vmlinux 0x26ef26a4 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x272e2dc4 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x274d7076 unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x2901a718 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x290445c6 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x29164b63 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x292db98b ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x2972ca21 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2988b312 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x299dfbd6 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x29a0baa4 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x29b3263e usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x29be45a2 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x29c2750e usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x29f65cc2 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2a29fe8e bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x2a5748c9 cpu_pm_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a76a393 of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x2a90aa25 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x2ac92334 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x2ad0b22d scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x2b2257a6 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x2b26d867 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x2b6ae537 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x2bc77a33 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x2be2815f tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x2c0dc18b filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c63c5f0 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL vmlinux 0x2c6432d2 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c871f01 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2cf5a588 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2cf65c85 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2d1b497b ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2d2a904d usb_del_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d74133d nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x2d8700f8 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x2d9677d0 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x2d97cb6d __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2db2c797 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x2dbb43e6 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2dc142ee omap_dm_timer_disable +EXPORT_SYMBOL_GPL vmlinux 0x2dde9980 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2eda5071 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x2f3892f6 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f6176cc tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x2f7934e8 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fc27e27 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fdfb445 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x2fe7c4f5 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2fed052a netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x2ffff341 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x307550c7 get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x3084c149 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30a9fe70 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x30b629fa __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x30d514aa hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x3108ea46 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31422ae1 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x3170de6a unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x318d2df4 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x31a820ed register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x31bc7b23 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL vmlinux 0x31bd5724 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31f7115c i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x32358761 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x3264d84f inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x3281475d unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x329a99b6 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32cb7f26 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x3312d9a2 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x331fd4c5 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x33543801 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x33a5c896 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x33bbd9d2 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x33c6f364 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x33e8c6c2 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x33f70397 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x341643ba omap_dm_timer_modify_idlect_mask +EXPORT_SYMBOL_GPL vmlinux 0x34243068 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x342d21bf device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3448cfa3 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x34612d90 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x347a9f88 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x3483eb92 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x349e5187 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x34cd4fb4 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x34d490c0 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x34f97f22 return_address +EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x3577893c usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x357bed0e driver_register +EXPORT_SYMBOL_GPL vmlinux 0x35849981 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x35882aee device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x360568ac device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x36216d28 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x362c752b irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x362c9993 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x3659785b wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3659c0f9 mmput +EXPORT_SYMBOL_GPL vmlinux 0x36871f1a da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36e190a4 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x3705e8ec cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x3708d588 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x3763b1e4 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next +EXPORT_SYMBOL_GPL vmlinux 0x3785edf9 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x380d1167 task_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x3849cda8 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x386b341b pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x38968910 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38b2b611 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x38d30eeb task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x392f1009 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL vmlinux 0x3969bf31 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x3977f443 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0x398fd9db blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x399ec80b sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x39a391d5 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x39b59ff1 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x39b656a4 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x39d3d550 bsg_goose_queue +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2a0af0 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x3a416cc2 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a523ee8 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a64a7d8 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x3a741591 omap_foreach_iommu_device +EXPORT_SYMBOL_GPL vmlinux 0x3ab92b48 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x3abbdd50 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3afd247b inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x3b2c1d7f relay_open +EXPORT_SYMBOL_GPL vmlinux 0x3b38db38 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x3b53c5ca crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x3b59bf51 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x3b657c56 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL vmlinux 0x3b889519 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x3babd160 snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0x3bac93ed tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c25c74a trace_nowake_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x3c819493 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d5e5937 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x3d63f44e usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3d663b0c md_stop +EXPORT_SYMBOL_GPL vmlinux 0x3db21447 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x3db91586 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dcb60cb skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e10dcee debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x3e2baebb snd_soc_jack_get_type +EXPORT_SYMBOL_GPL vmlinux 0x3e50e6cf inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x3ebb4da7 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x3efab129 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x3f02ca87 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x3f210e75 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x3f217a32 snd_soc_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x3f3c4d22 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x3f620a84 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x3f69c73a unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x3fe22b1f single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x40102d29 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40b41dc1 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x40ba3104 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x40c61d95 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40d6e1dd snd_soc_write +EXPORT_SYMBOL_GPL vmlinux 0x40f3bdd7 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x41389e90 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x41750274 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x4180aab9 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x4180dd60 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x41854679 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x41ac4664 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x41af18ee deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x41dd681b perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x41e1f656 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x41e22b0b pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x41e69e0d __put_net +EXPORT_SYMBOL_GPL vmlinux 0x41fc3dc0 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x42aed2dd spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x42deb272 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x430ff0f1 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x4354e20a fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x43567af3 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x43c77fce irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x43d6ff09 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x43da5f22 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x43de0b12 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x43e871dc md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43f62c7e ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x445a3172 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x4482a4e4 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44bcfa6d system_nrt_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x44be36ca ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x44d08195 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x44d66ad8 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x44e69afe spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x44f3235a __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x44f54d78 omap_dm_timer_set_pwm +EXPORT_SYMBOL_GPL vmlinux 0x455e46ea fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x4561fee3 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x459c7bdc sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x45b86af7 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45e96608 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460f4234 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4624a7a7 omap_find_iommu_device +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x468aacc7 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x46912e69 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x46a9dfe3 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x46daf5d9 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4738983a snd_soc_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x474359b6 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x47b91979 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x47c149ab queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x482f3c38 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x4857a277 sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x4865f9b3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x4877bb9d usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x488c7a4c shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48cf26a9 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x48dbcee6 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x48fde69e __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x491bf3ac cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x4921a252 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x4928b8d4 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x4946da71 omap_iotlb_cr_to_e +EXPORT_SYMBOL_GPL vmlinux 0x495f14bf scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x495f51ea fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x497bf197 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49b2737a regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x49d6ee1c filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x49d7a43c __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x49e3598d bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x49e6fb30 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x4a1aa1c6 snd_soc_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x4a64a95a usb_gadget_probe_driver +EXPORT_SYMBOL_GPL vmlinux 0x4a9dd17d omap_usbhs_disable +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4b08b874 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x4b2d343f handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x4b83a43a dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bddbe67 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x4c132182 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x4c6647ec device_move +EXPORT_SYMBOL_GPL vmlinux 0x4c6db190 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4ccd6318 omap_dm_timer_set_source +EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x4d74213a tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x4d809767 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x4de44884 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x4de81ea1 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x4df66c0b fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e234c64 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0x4e26e709 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x4e3e09cf usb_add_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x4e522d05 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x4e7df11b irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4ec6f511 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x4ec9f969 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x4ed28e94 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x4ef5a025 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f04944f snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0x4f1cc6f5 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x4f1ccf7d dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f988e5f led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x4fadcd34 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fdd8fc5 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x5013e6de pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x501402c6 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x503f8591 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x50fc5c72 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x51276f62 __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x515cb16b wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x5194eb7b ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x51b7b372 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x51be76b5 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x51c8a6ad usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x51d39fe5 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x51ea4a87 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x51fa4300 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x5200dd0f usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x521d66a6 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x524a7826 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x5254f437 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x525ce46e tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x52627669 blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x52701804 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x52c7dc11 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x530c46d4 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x536f265e watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x5372f6a5 omap_dm_timer_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53e38012 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x53f260d5 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53f56265 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x542f11bf crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546537bc __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x547441b0 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x547d6f04 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x54853294 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x548746ed sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x54875c7c class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54b811d3 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x54bfc409 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x552567c0 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x555d31f5 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x556781a0 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL vmlinux 0x55bddab8 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x55ce1c75 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x55d2416d stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x55e882b7 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563b2547 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x563cadec do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56b868c8 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e9103b cpu_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x56f6329b usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x572a9ab2 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x5776820a omap_dm_timer_set_match +EXPORT_SYMBOL_GPL vmlinux 0x578fe4dd cpu_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57f72cef blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x57f9bbfc snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x58503856 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x59158804 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x591a30e6 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x595586b2 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x59767c6d i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x5977484b bus_register +EXPORT_SYMBOL_GPL vmlinux 0x5984402f fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x598ab98e wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x599d0cb6 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x59ab8d0e leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x59b412e3 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x59d1d790 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59f5c559 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x59ffaee7 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a847815 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x5aabcf9c __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x5aae84c7 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x5b216266 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x5b22cc45 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x5b3e0977 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x5b626082 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x5b691fb2 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x5b773c2c shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5b851e1f snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0x5b956fbd uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x5bac4554 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c16d6d7 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x5c506bd8 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x5c976a10 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x5cadf146 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x5ccfab59 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x5ce17f47 snd_soc_default_writable_register +EXPORT_SYMBOL_GPL vmlinux 0x5d08dde7 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x5d4544e8 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x5d594729 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d88cc43 sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0x5d91bdcd led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5dde1e46 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x5e1344f5 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x5e3c8e8c i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x5e5a5f27 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5e6283dd usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x5e80f6da fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f31b4ab snd_ctl_activate_id +EXPORT_SYMBOL_GPL vmlinux 0x5f41b708 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x5f46d244 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x5f551108 sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fd40d82 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x5ff768ec fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x6009e591 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x60322e22 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x6035d556 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x6042b71b snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x609350d0 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x60ab55fb user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x60d33e6e snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x60e2722e pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x615ff4c8 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x616d5032 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x61f5d717 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0x6235cf49 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x62470cac regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x628c4e77 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x62bcf259 blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x62d1fd70 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x62ea44f1 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x63043874 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x632dee9e ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x6387abf4 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x639513ac securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x63c583f5 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x63cfca9c mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x63f1335b get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0x640ad778 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x6420e198 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x642f184e blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x645e56d0 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x647879d8 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x64884e0f blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x64f46f6f usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x652be58c spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x65338464 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x65610417 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x6578fe44 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x6579fee5 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x65915aee put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x659728be usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x659da6b2 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65c4c836 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65cfba41 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x65d33e29 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65ea3808 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x65ed41f0 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662cc7c0 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x667f3add ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6694317a cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x66adf916 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6711acc6 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x676d97b5 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x67936ecb __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679ae4eb rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x67c7d8a6 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x682ca521 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x68644a02 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6896fe63 input_class +EXPORT_SYMBOL_GPL vmlinux 0x689bf79c crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x68be26d0 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x68c0df94 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x68c3708d exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x68c6c498 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x68f1ebf2 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x69212c75 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x692ad41f fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69ab36bb max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69fd79cc ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x6a224e61 mtd_add_partition +EXPORT_SYMBOL_GPL vmlinux 0x6a37cef7 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x6a4e6021 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x6a93b0da wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6aad80c0 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6b16371a dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b2f863e seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x6b4fe001 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL vmlinux 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL vmlinux 0x6b7a54c7 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c805f72 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6cc9726f snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL vmlinux 0x6ceba8c1 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6d3b1490 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x6d77b29b __class_create +EXPORT_SYMBOL_GPL vmlinux 0x6da7652c cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x6da81cba ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x6e1d8988 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x6e6b5274 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e78c142 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x6ecc9a6e kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x6ef1820e release_pmu +EXPORT_SYMBOL_GPL vmlinux 0x6f02b64e wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f3ee6dc usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x6f537396 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x6fbd752e snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffe1550 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x70077535 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x70308856 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x706a59d7 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x7083a608 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70da38ad device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x70dfadea rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x70e1f840 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x71220307 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x712da0b5 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7196a281 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x71af8cb2 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x71da1248 of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71eeb9ec omap_iommu_save_ctx +EXPORT_SYMBOL_GPL vmlinux 0x7217604c sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x722304ed fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72820903 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x72b558ed scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x72ced21a pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x72dc1c47 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x72e19e16 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x730bd0c7 asic3_write_register +EXPORT_SYMBOL_GPL vmlinux 0x7375f5c7 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73fad6e7 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x7438a810 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x746927d8 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x747ee1a8 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x748d801a pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74dca3ec usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x74effa39 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x74fc6f98 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x751ff7a0 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x75208007 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x7550c360 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x755b0e2c usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x756b81b6 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7573704e debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x75b20f59 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75dab5ce ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x75e1a8ee i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x760c7d9c fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7633b31c unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x765bf82b usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7665feac __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x769d1867 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x76a8b103 snd_soc_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x76c0ecc9 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x76dbafc7 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x77141c4f blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x7746b665 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x7762bb3e snd_soc_cache_sync +EXPORT_SYMBOL_GPL vmlinux 0x776deec5 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x776f02e7 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x779efe9b vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x77e904be crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x786e83d7 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x78da6843 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x797802cd ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x798ca00c ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x799dc1cc relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x79b8f91a mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x79d476e4 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x79fea0b3 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x7a09feea tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7a2e4b44 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7a45691c init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7a48c005 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x7a99f14a platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7abafd65 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x7ac04e5b omap_dm_timer_trigger +EXPORT_SYMBOL_GPL vmlinux 0x7ad85608 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b29f12d get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x7b3b1292 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x7b572b30 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x7b59b0ff kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x7b6d94b8 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7bb9de8f ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x7bc91073 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x7be7972c shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7c119006 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x7c3d63cc max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7c5bb835 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x7c5e6851 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x7c728767 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x7c8ce73b led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x7c96d7ee crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x7ca0248e __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d398fdd led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d64c692 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ded61ab sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e277415 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x7e47e7b4 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x7e590ef3 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e67d00a devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x7e962d4b usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x7e9b5cce sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x7ed2bae7 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7ed68941 asic3_read_register +EXPORT_SYMBOL_GPL vmlinux 0x7ee8f4f7 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7ef4c90b vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x7f0ad2f4 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7f562291 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x7fd38778 armpmu_get_max_events +EXPORT_SYMBOL_GPL vmlinux 0x7fdf6d59 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x7fe8565c shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff3d989 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x801a60e5 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x803d6879 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80975bcf __css_put +EXPORT_SYMBOL_GPL vmlinux 0x80c9049b del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x80e9d637 omap_install_iommu_arch +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x8103ce48 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x81426594 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x815c9f78 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x815e467b inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x81d6a3b0 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x81e0bfde crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x8217b3dc crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x822fdb89 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x8236c93a led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x823a2872 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8242ac6e css_id +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x82736c0d sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x82796b49 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x828dcbec ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x83760fd5 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x837a33c4 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL vmlinux 0x837cd63e crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x838b077d snd_soc_cache_write +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x839565fa otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x83ce82eb get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x83ffef4d wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x84239aad ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x8469417c sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850ca2d2 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x85216155 ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0x85326327 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x85410e2c wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x854e9dac ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x855935d6 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x857f0cf2 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x85a32f67 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x85a33fd0 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85e3db5b firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x860a1193 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x866ec891 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x8673429c usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x8688f65e sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x86f8c910 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x86fd4790 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x87111807 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x87235cd5 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x8767fb0e cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x877b9fa3 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x877be82f scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x87814862 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x87b3b6e7 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x87c12fd8 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x87d71776 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x881d3a47 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x883ca913 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x884ed394 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x88aa3e4c snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88ed172a invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x88f43250 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x89381409 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x8944f9d9 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x894912b7 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x89508119 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x895d1d8b wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x897105d0 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x89ea8a5d regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x89ff43f6 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x8a0117ac spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x8a0195c9 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a767df0 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ad888f5 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x8adca163 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x8b5fbe32 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8bfb05a6 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c13b8e4 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x8c26f943 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x8c3cb3f6 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x8c7c2ae4 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x8cad31e6 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x8cd0c72c get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x8cdec7c7 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x8d0f9f0c pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x8d88c084 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x8dad55e8 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x8db214f9 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x8dc9ac19 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x8dfc8aeb netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8dffc7fc inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x8e39ef67 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL vmlinux 0x8e7648a1 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x8e8b4fcd sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x8ea33b19 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x8eae3709 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x8ed57053 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x8edfdd90 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x8eec21c4 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x8ef998cd get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x8efaa59a snd_soc_read +EXPORT_SYMBOL_GPL vmlinux 0x8f07264a wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8f263dc6 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f6ef8c5 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x8f89f986 snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL vmlinux 0x8f99671f cred_real_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x8fae240b __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x8fbd30c5 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x8fe1b83e sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8ff01d37 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x90136cd7 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x90249447 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x90311bbd pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x903589ca dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x90557792 device_del +EXPORT_SYMBOL_GPL vmlinux 0x90567e30 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x907bedd0 mddev_check_plugged +EXPORT_SYMBOL_GPL vmlinux 0x9082d068 kprobe_decode_arm_table +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90c28251 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x9126c3a9 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91b2a876 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x91c6e5b0 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x91dda801 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x926ff79b sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x92734eb1 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x9290698e platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x92ab390e fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92be3b8c snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x92c85883 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x92d1b30d crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d73cca __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x93321851 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x93347585 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x93b5d390 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93eb7205 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x940b4a78 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x9413d280 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94287fd4 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x945e5d25 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94a7c7ee rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x94f6262b relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x951cc7f7 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x9526630b snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x95366595 omap_dm_timer_stop +EXPORT_SYMBOL_GPL vmlinux 0x95555ec4 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x95c578a0 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x95cb9f60 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x95f412ce net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x95f6ee15 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x96157a33 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x9615af8b crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96253699 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x96592393 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x967bd0bf ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x96a06d17 irq_domain_generate_simple +EXPORT_SYMBOL_GPL vmlinux 0x96a48114 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x96b6a384 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9705b962 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x9711fad5 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x9738e074 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x976d0e8c crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x97b13dad __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x97dbe865 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x97f45a85 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x9804a5aa hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x9818958e simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9856ed42 md_run +EXPORT_SYMBOL_GPL vmlinux 0x987c5777 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x989c7bfc __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x98a6fc3c sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98d048e7 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x98fee210 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x994327cb device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x995b38b2 mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x995eb40e omap_dm_timer_read_status +EXPORT_SYMBOL_GPL vmlinux 0x99794180 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x998c4657 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x999edb7f cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x99b84d77 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x99bb5b6a ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x99ce0ea4 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x9a081404 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a25cae8 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x9a3ad699 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x9a4e4af3 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x9aaf803b of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ac806fc inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x9ae66613 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9aee6972 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x9afb2952 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x9b98add9 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bc4acdf sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x9bc66d51 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bdd9c01 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9c169979 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9c2d257f driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x9c386590 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x9c39333e snd_soc_limit_volume +EXPORT_SYMBOL_GPL vmlinux 0x9c4b469d user_read +EXPORT_SYMBOL_GPL vmlinux 0x9c5a7a18 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x9c6270aa usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cd35090 of_property_count_strings +EXPORT_SYMBOL_GPL vmlinux 0x9d0dbc0e unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d1a5e9f of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x9d33994e snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9dbfd7c8 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e4f1cfb ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x9e52aa22 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9e764e28 mtd_device_parse_register +EXPORT_SYMBOL_GPL vmlinux 0x9ea3440f blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x9ee30f15 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x9ee9ca86 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9f2a37d2 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f42c14e device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9f70cc3a __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x9f775e68 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9ffb68c4 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa05a170b musb_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xa0fc1078 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xa0fc54bc tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xa12b66ba shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xa14abc5a raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xa187b0a9 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xa188d6d0 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xa19a2a2f key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xa19d063e sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xa1b50b3d class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa1cb1dce register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0xa1cbecf6 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xa1d82a68 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xa2395eb1 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa2613547 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL vmlinux 0xa2c26107 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xa3054dd4 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa3b2c97a __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xa3e33dae snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3f468bd i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xa3f4b178 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa449e909 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xa45df0c4 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xa4642296 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa48fd561 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xa4ad4c3d snd_soc_register_platform +EXPORT_SYMBOL_GPL vmlinux 0xa4c960a9 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xa4cc2a77 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xa4f44118 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xa53e653e sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xa573dbc6 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xa58cc4a7 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xa5941fdc sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xa59c2443 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xa59e667f unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xa5ba7e4e ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xa5bcce22 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xa5d1166b sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xa5d6c97f security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xa5da6fd1 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xa5dd6fae arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f75747 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa6086901 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xa64cd82f usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xa665b34e snd_soc_platform_write +EXPORT_SYMBOL_GPL vmlinux 0xa6c9ff97 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa6d56e20 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xa6d778e5 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xa6f7db17 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xa6fccab8 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xa7032ad9 user_update +EXPORT_SYMBOL_GPL vmlinux 0xa7516e7a crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xa7764f12 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xa7eef297 snd_soc_resume +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa810de23 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xa8225261 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa8334953 omap_usbhs_enable +EXPORT_SYMBOL_GPL vmlinux 0xa8675f63 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xa8818779 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL vmlinux 0xa882a879 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa89b584a of_property_read_string_index +EXPORT_SYMBOL_GPL vmlinux 0xa8d9a9be regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xa8da9a3d spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa920332a rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9693fce ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xa975f8bc pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xa99fa6c9 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xa9bfe6fa snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9c6eaaf spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xa9e8c55e alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xa9fefa81 device_add +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa852c93 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8818aa power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab93863 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0xaabb2a9c ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xab1807c0 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xab3048bb kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xab38187a ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xab540ed5 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab82f709 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xacac44d7 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad124da4 omap_dm_timer_start +EXPORT_SYMBOL_GPL vmlinux 0xad181883 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xad2642c9 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xad4d6a23 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad7cd5a2 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xad8d514b usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadae08b2 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xadbbad51 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xadbcea57 omap_iommu_dump_ctx +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xade77fca class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xadf58ec4 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xadfdfa74 snd_soc_register_codec +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae1e69b0 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xae363e1a inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xae3d7a87 sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0xae88816c ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xae9dc730 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xaea425e6 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0xaeea3073 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xaef524d0 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xaf348da7 cpu_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xaf6099c4 omap_dm_timer_write_status +EXPORT_SYMBOL_GPL vmlinux 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL vmlinux 0xaf7372a5 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xaf894784 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xafe73fad snd_soc_cnew +EXPORT_SYMBOL_GPL vmlinux 0xb004e8b3 tps65910_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xb04a9940 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xb0629e05 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xb088dc59 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0c39cd9 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb0d44905 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb15e7851 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb19e83f1 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xb23994c3 usb_bus_start_enum +EXPORT_SYMBOL_GPL vmlinux 0xb2428097 omap_dm_timer_request_specific +EXPORT_SYMBOL_GPL vmlinux 0xb28a15fd omap_dm_timer_free +EXPORT_SYMBOL_GPL vmlinux 0xb2a9ac92 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb2b2d58c blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2f75b4e fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xb30c9c16 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0xb31e1042 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xb32e9f53 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xb33375d5 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xb350da87 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0xb3753167 snd_soc_jack_report +EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3b11fba input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xb3c8ede7 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xb3d59e53 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL vmlinux 0xb3e6c7fd da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xb43907a8 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xb4b7b453 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0xb4bcc510 snd_soc_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xb4dc075c class_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51593b3 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb556705e md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xb55756d9 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xb558a794 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xb55d4315 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xb56dca60 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xb57aa163 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xb57f7d79 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xb58dd401 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL vmlinux 0xb5a59254 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xb5a5e88c tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xb5c31e23 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb5ebaea3 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60e5423 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xb62ebd31 omap_dm_timer_set_load_start +EXPORT_SYMBOL_GPL vmlinux 0xb65f03fe cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb69a98d2 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xb6a8abdb device_create +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c900f1 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0xb6f48942 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xb74df59b devres_find +EXPORT_SYMBOL_GPL vmlinux 0xb76e6601 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xb799b092 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb82ba89d blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0xb84540a1 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xb86ba1d6 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0xb967d919 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xb9791edd debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xb9a51b01 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9c4c527 snd_soc_unregister_card +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9e5b5c8 omap_dm_timer_get_fclk +EXPORT_SYMBOL_GPL vmlinux 0xba37e480 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xbaa63ac3 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb0355d7 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb090efb device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb25b8a8 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0xbb33deae skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xbb402839 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xbbd60531 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xbbf8b1be setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xbbfda9f2 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xbc3b796a mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xbc40a132 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xbc456407 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xbc54f467 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xbc6f931b workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xbc987d57 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbd2723d8 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbd474fe8 omap_iopgtable_store_entry +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdf018c8 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0xbdf512de free_bch +EXPORT_SYMBOL_GPL vmlinux 0xbdfec355 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xbe079bac led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3734b5 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xbe4c8e41 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xbe4ff9b8 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xbe8149a9 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xbe8d790b usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xbf01c49b bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xbf04e172 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xbf0a831c snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0xbf0d5d37 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbf5853b0 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0xbfa0f507 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xc00f7884 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc0107791 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xc02d498d blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc03ab504 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xc041c35e wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc058e0de ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xc07b2c20 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c22ea0 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xc0d15b20 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xc10ddf97 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc13fc3fd __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc151e87e sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc18be9ef sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xc1b43c3e attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xc1c76835 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xc21bd0cf ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xc2247d44 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc249dc0b set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xc259073b devres_get +EXPORT_SYMBOL_GPL vmlinux 0xc260db28 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2b7bc4f rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc385cb58 perf_num_counters +EXPORT_SYMBOL_GPL vmlinux 0xc397de64 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3b8425d sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xc3d06423 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xc3f5d5ec usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc440376a power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc45de53d __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xc461e4fa inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc4765acf pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4a4d14d bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xc4d001bb tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xc4d4d378 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xc4d594aa key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xc52c8dbf md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xc52cffef user_match +EXPORT_SYMBOL_GPL vmlinux 0xc53ca34e skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xc54507e9 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xc5635c76 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xc57a9fcf platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc59cac14 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xc5abc11d ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc5c651a3 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6363695 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xc656d82c bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc66324ec ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc68083b5 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xc68a13d1 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xc6a9d3d5 omap_uninstall_iommu_arch +EXPORT_SYMBOL_GPL vmlinux 0xc6cd3fa9 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xc6d497a7 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc72faa5a debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xc75dc4bd vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7ac5c83 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xc7e6bf02 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xc7eefb27 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xc7f9a395 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL vmlinux 0xc84dbf5a ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xc85b772b ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc8890678 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8becd1d scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xc8d39bcf snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL vmlinux 0xc8db737f sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0xc8df0eae snd_soc_debugfs_root +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc92aeb66 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc92c475b led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc93a6263 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca0bdf81 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xca30feba snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL vmlinux 0xca3d22a5 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xca59aa9c of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0xca76fcec rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcab18628 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcaf8fa7d device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xcb0b3a53 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xcb273676 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xcb2cf3c3 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL vmlinux 0xcb347877 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xcb891bfe wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xcbd48bc9 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc46f223 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xcc59071c drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xcc5cc610 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0xcc974e5b ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xccc04190 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xcccd57cd device_register +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xcd0cf34a replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xcd263e74 blkio_alloc_blkg_stats +EXPORT_SYMBOL_GPL vmlinux 0xcd7a69e0 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xcd8cb00b omap_dm_timer_set_load +EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0xcdbfcd57 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce6168dd register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6edd27 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xce7e1c52 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xce9b1dc6 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xceb96e78 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xcede85f1 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0xcee41216 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xcf008bc1 armpmu_get_pmu_id +EXPORT_SYMBOL_GPL vmlinux 0xcf00a998 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0xcf8977ed unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xcf98aebc input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xcf9f28d9 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xcfaa21dd omap_dm_timer_request +EXPORT_SYMBOL_GPL vmlinux 0xcfb4e960 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xcfb5871c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd048a040 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xd0578288 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd05da488 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd05dc2a3 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xd07d186f __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd080d8f9 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xd0ab519a dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0e1bcd5 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xd0e369f5 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd10ab4bd sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xd10eb0ba proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xd11ebb95 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd17a87df ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1f5224f sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xd20bbc2a init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd212086d crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd2208b57 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd23de1e5 mtd_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a36854 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xd2b08bae dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xd2b7da51 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd3014561 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd31a9b31 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd334cd19 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xd34d701c usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd3a7abdf sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xd3ad5086 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd3b1a60d ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xd3e61495 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xd3fadb8f __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd40f7fc4 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd41ecc4d perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xd4250b7b ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xd4885979 xv_free +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4d857ec cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd4dbc41f raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd4edda24 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xd524a2ef of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xd538c0d3 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd53da4e3 omap_dm_timers_active +EXPORT_SYMBOL_GPL vmlinux 0xd53fca75 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xd554a5c3 snd_soc_default_readable_register +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5a0758b snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5d8edb1 get_driver +EXPORT_SYMBOL_GPL vmlinux 0xd5f9d82f usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd679e4a5 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xd67f4284 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xd6bdd7fe generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xd6c16abf ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xd6c74ff4 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7838265 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xd7872971 dapm_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xd788742d perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd797d56b security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xd7e5e132 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xd7e69545 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd8016e52 yield_to +EXPORT_SYMBOL_GPL vmlinux 0xd81dabbb tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd85176d3 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd859b901 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd898cd9c enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xd8b57534 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xd8b9b407 omap_dm_timer_set_prescaler +EXPORT_SYMBOL_GPL vmlinux 0xd8cf23f1 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd8d57b4c ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xd93e76a6 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0xd93fc077 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xd956cdf6 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xd965566f rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0xd989e4cd spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xd9bf0a5c wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd9d682dd sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9eef782 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xd9fca96d hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda27f6c0 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xdab4cd66 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xdadbf4a0 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xdaee259e snd_soc_register_dai +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdaf8f8c3 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb1e9caa tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb3b0ea7 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xdb647de0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xdb753b39 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xdb828573 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xdb8d750e usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xdba95fd5 reserve_pmu +EXPORT_SYMBOL_GPL vmlinux 0xdbf5863e disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xdc319ace snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0xdc57cb44 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xdc911f83 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdccbad4c blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0xdccd97af dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xdcdf6e4f fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd2fb70d snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL vmlinux 0xdd75ee5c power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xdd9fba6c irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0xddbcb81b crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xde1fba32 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xde315c36 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde555bd8 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xde6270ec usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xdeeadbe5 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xdf5270a0 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xdf5d464e sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xdf961525 usb_usual_ignore_device +EXPORT_SYMBOL_GPL vmlinux 0xdfd3d583 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xdff95eb2 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xe001dc5d wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xe0026853 mount_mtd +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe0476be2 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe05ced89 snd_soc_cache_read +EXPORT_SYMBOL_GPL vmlinux 0xe0631cb6 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe0820bcc usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xe0b0057f snd_soc_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xe0de3485 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xe14bb08f inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe1cc39f6 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1d95ffa inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe247e0f9 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xe267a6f0 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xe2706a92 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xe272a6e8 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0xe287b31b sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xe2c98989 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe2f35771 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe3303237 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3a2b464 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xe3c16bc5 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xe3e75a53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xe3fbb9b9 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe487d54e class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xe4d298b0 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xe4d46c8f usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xe4da226d platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xe4fec1a7 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xe5583bb8 snd_soc_register_dais +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe59740e6 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xe5c2fad5 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xe5d53949 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xe5ddddcf platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xe609b588 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe668f99c tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6e8e4cd crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe6f73341 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe714201a locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xe72b89a4 find_module +EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xe74a5006 snd_soc_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe779dbc6 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe791614e transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xe7d58d31 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe838f679 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xe84109ac crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xe85a9fd3 cpu_cluster_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xe8611953 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xe86279bf skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe895845f regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xe8b97679 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xe9024b74 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xe9053d96 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe90fe971 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xe9118d16 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9b7d8ab sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xe9cf3ab2 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe9d1b7cf irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0xe9d3e33f ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xe9d4c284 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0xe9ea9314 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea36b3a3 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea492dd3 omap_iommu_restore_ctx +EXPORT_SYMBOL_GPL vmlinux 0xea8a830b crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb3d15b9 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xeb42c49c bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0xeb704017 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec32e025 mtd_is_partition +EXPORT_SYMBOL_GPL vmlinux 0xec797ce4 nand_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xeca012a7 ref_module +EXPORT_SYMBOL_GPL vmlinux 0xeca46683 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL vmlinux 0xecabd75d blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xed30d28c tps65910_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xed43e9c5 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xed695a2d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xeda63db3 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xedf0bb65 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xedf31705 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xee80fa04 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef72abe8 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xef8c7850 pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0xefb53b7e iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xefb72398 pstore_write +EXPORT_SYMBOL_GPL vmlinux 0xefc0b95b crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xeff9157c kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xf004f5c5 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0xf03b9de8 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xf0d974d8 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xf0e7af21 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xf1537402 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1f2d723 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0xf1fbde83 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xf27e9f12 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xf2ba20f9 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xf2bb2baf bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0xf2c6396d tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30317c7 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf3077e00 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xf30e105d ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf3216b30 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xf32db971 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf368d878 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xf390f75d devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xf3af6750 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3c6e25f dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xf3d267e6 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf41c22e5 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xf42cb3e1 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xf43244a0 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xf477b7a8 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xf4865644 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xf48aebbe aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xf4b755ea regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xf4eda3bf ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5107f64 regcache_write +EXPORT_SYMBOL_GPL vmlinux 0xf52d2fbd pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xf52f30e7 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf555bcbe usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xf55b9123 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xf55e5288 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xf568869e hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf58d6875 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5f71c9a snd_soc_platform_read +EXPORT_SYMBOL_GPL vmlinux 0xf61e30f6 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0xf6288895 inode_dio_done +EXPORT_SYMBOL_GPL vmlinux 0xf63aee0b inode_dio_wait +EXPORT_SYMBOL_GPL vmlinux 0xf676cfac snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL vmlinux 0xf67a4b0f map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf6cb8c9a crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xf6d81b2f platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e39ae0 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf71f3f65 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf72ee27e __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xf741c56e inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xf7435b59 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0xf74a7b43 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xf7713218 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xf7a0480e blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xf7c3cf66 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf7c45ed2 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xf7d8f7cc dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xf7e032e7 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xf7e19dbc register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf83dab8d ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xf8476568 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8b99b28 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf973d2e5 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9b71059 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9c2f0ce disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xf9d31279 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0xf9de974a blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa181ee2 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa3c6cff crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xfa996d14 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL vmlinux 0xfae557d7 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xfb217ca0 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xfb2a4020 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb3db103 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfb41e8de pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb9430d4 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xfbcefb86 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xfbe37331 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xfbefe44c class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfbf38106 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc1b9b82 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfc50e684 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xfc611e38 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcdc36bc crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xfd183faf exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0xfd2fb2f7 omap_dm_timer_enable +EXPORT_SYMBOL_GPL vmlinux 0xfd9b3ad8 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xfd9f70c3 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdee10ef i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfe0fa279 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xfe41e7ab usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xfe5460ff ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfe9ee273 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff06aa38 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xff183326 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xff41151f platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xff497148 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff6805f0 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xff6ede42 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xff747600 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/i386/virtual.modules +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/i386/virtual.modules @@ -0,0 +1,3533 @@ +3c359 +3c501 +3c503 +3c505 +3c507 +3c509 +3c515 +3c523 +3c527 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +53c700 +6lowpan +6pack +8021q +8139cp +8139too +8250_accent +8250_boca +8250_exar_st16c554 +8250_fourport +8250_hub6 +8250_mca +8255 +82596 +8390 +8390p +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +abituguru +abituguru3 +abyss +ac3200 +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acl7225b +acpi_ipmi +acpi_pad +acpiphp +acpiphp_ibm +acpi_power_meter +acquirewdt +act2000 +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5398 +ad5446 +ad5504 +ad5624r_spi +ad5686 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7280a +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2016 +addi_apci_2032 +addi_apci_2200 +addi_apci_3001 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adl_pci6208 +adl_pci7230 +adl_pci7296 +adl_pci7432 +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads1015 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aes-i586 +aesni-intel +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +ak8975 +alauda +algif_hash +algif_skcipher +ali-agp +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +ambassador +amc6821 +amd5536udc +amd76x_edac +amd76xrom +amd8111e +amd-rng +amplc_dio200 +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +ams369fg06 +analog +ansi_cprng +anubis +aoe +apanel +apds9802als +apds990x +apm +apple_bl +appledisplay +apple-gmux +applesmc +appletalk +appletouch +applicom +ar7part +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +asb100 +asc7621 +asix +asus_atk0110 +asus-laptop +asus-nb-wmi +asus_oled +asus-wmi +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at1700 +at24 +at25 +at76c50x-usb +atbm8830 +aten +ath +ath3k +ath5k +ath6kl +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati-agp +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522 +aufs +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +axnet_cs +b1 +b1dma +b1isa +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bmp085 +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c101 +c2port-duramar2150 +c4 +c67x00 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcidio +cb_pcimdas +cb_pcimdda +c_can +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +ci13xxx_pci +cifs +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-isa +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +cops +cordic +core +coretemp +cosa +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpqarray +cpqphp +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc7 +crc8 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs5535-mfd +cs553x_nand +cs89x0 +ct82c710 +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +DAC960 +daqboard2000 +das08 +das08_cs +das16 +das16m1 +das1800 +das6402 +das800 +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +ddbridge +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +dell-wmi-aio +denali +depca +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bufio +dm-crypt +dme1737 +dmfe +dmi-sysfs +dm-log +dmm32at +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-raid45 +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-thin-pool +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docg3 +docprobe +donauboe +dpt_i2o +drbd +drm +drm_kms_helper +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155v4l +dt9812 +dtc +dtl1_cs +dtlk +dummy +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-anysee +dvb-usb-au6610 +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-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-omap +dwc3-pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e2100 +e752x_edac +e7xxx_edac +earth-pt1 +easycap +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +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_ulog +ebt_vlan +ec100 +echo +econet +ec_sys +edac_core +edac_mce_amd +eeepc-laptop +eeepc-wmi +eepro +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +eexpress +efficeon-agp +efs +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +emc6w201 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +ene_ir +eni +enic +epat +epia +epic100 +eql +erst-dbg +es3210 +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +et61x251 +eth16i +ethoc +eurotechwdt +evbug +ewrk3 +exofs +ext2 +f71805f +f71808e_wdt +f71882fg +f75375s +fakephp +fam15h_power +farsync +fat +faulty +fb_ddc +fb_sys_fops +fcoe +fcrypt +fd_mcs +fdomain +fdomain_cs +fealnx +ff-memless +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +fixed +fl512 +floppy +fm801-gp +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +freevxfs +friq +frpw +fsa9480 +fsam7400 +fscache +fschmd +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdth +generic +generic_bl +gen_probe +geode-aes +geode-rng +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_NCR5380 +g_NCR5380_mmio +g_nokia +go7007 +go7007-usb +goku_udc +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-charger +gpio-cs5535 +gpio-fan +gpio-generic +gpio-i2cmux +gpio-it8761e +gpio-janz-ttl +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-pch +gpio-rdc321x +gpio-regulator +gpio-sch +gpio-tps65912 +gpio_vbus +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +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_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-holtekff +hid-hyperv +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-kovaplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-speedlink +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hostess_sv11 +hp +hp100 +hp4x +hp_accel +hpfs +hpilo +hp-plus +hpsa +hptiop +hpwdt +hp-wmi +hso +htc-pasic3 +htcpen +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-designware-core +i2c-designware-pci +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mux +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-isa +i2c-pca-platform +i2c-piix4 +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-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7300_edac +i7core_edac +i810 +i810fb +i82092 +i82365 +i82860_edac +i82875p_edac +i82975x_edac +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmasm +ibmasr +ibmlana +ibmmca +ibmpex +ibmphp +ibm_rtl +ib_mthca +ibmtr +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icp_multi +ics932s401 +ideapad-laptop +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio_dummy +iio-trig-gpio +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili9320 +imm +imon +imx074 +in2000 +industrialio +inet_diag +inexio +inftl +initio +inport +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +intel_oaktrail +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +iris +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it8712f_wdt +it87_wdt +it913x-fe +iTCO_vendor_support +iTCO_wdt +itd1000 +ite-cir +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwl-legacy +iwlwifi +iwmc3200top +iwmc3200wifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvm +kvm-amd +kvm-intel +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lance +lanstreamer +lapb +lapbether +latch-addr-flash +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-clevo-mail +leds-da903x +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lt3593 +leds-mc13783 +leds-net48xx +leds-net5501 +leds-pca9532 +leds-pca955x +leds-regulator +leds-ss4200 +leds-wm831x-status +leds-wm8350 +leds-wrap +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lm95245 +lmc +lms283gf05 +lnbp21 +lnbp22 +lne390 +lockd +logibm +lp +lp3971 +lp3972 +lp486e +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltpc +ltv350qv +lxfb +lzo +m25p80 +m52790 +m66592-udc +ma600-sir +mac80211 +mac80211_hwsim +mac_hid +machzwd +macmodes +macvlan +macvtap +madgemc +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max6639 +max6642 +max6650 +max6875 +max7359_keypad +max8649 +max8660 +max8903_charger +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc44s803 +mce_amd_inj +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdacon +mdc800 +mdio +mdio-bitbang +mdio-gpio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mem2mem_testdev +memstick +metronomefb +meye +mfd +mga +michael_mic +micrel +microcode +microtek +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mixcomwd +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mma8450 +mmc_block +mos7720 +mos7840 +moto_modem +moxa +mpc624 +mpoa +mpr121_touchkey +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrst_max3110 +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +multiq3 +mv88e6060 +mv88e6xxx_drv +mvsas +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxm-wmi +mxser +myri10ge +n2 +n411 +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +nci +ncpfs +NCR53c406a +NCR_D700 +NCR_Q720_mod +ne +ne2 +ne2k-pci +ne3210 +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nftl +nf_tproxy_core +ngene +n_hdlc +ni52 +ni65 +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_a2150 +ni_at_ao +ni_atmio +ni_atmio16d +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +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 +nop-usb-xceiv +nosy +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nuvoton-cir +nvidiafb +nvram +nv_tco +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +old_belkin-sir +olympic +omfs +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8023 +padlock-aes +padlock-sha +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas16 +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5535 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_isapnp +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_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc110pad +pc300too +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca9541 +pca954x +pcbc +pcbit +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci_slot +pci-stub +pcl711 +pcl724 +pcl725 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcm3730 +pcmad +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcm_common +pcmda12 +pcmmio +pcmuio +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +peak_pci +pegasus +penmount +pf +pg +phantom +phison +phonedev +phonet +phram +physmap +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pms +pn533 +pn544 +pn_pep +poc +pohmelfs +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +progear_bl +proteon +ps2mult +psb_gfx +psmouse +pt +pti +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas +qlogicfas408 +qnx4 +qt1010 +qt1070 +quatech_daqp_cs +quatech_usb2 +quickstart +quota_tree +quota_v1 +quota_v2 +r128 +r592 +r6040 +r8169 +r8187se +r8192e_pci +r8192u_usb +r82600_edac +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +radio-i2c-si470x +radio-maxiradio +radio-miropcm20 +radio-mr800 +radio-rtrack2 +radio-sf16fmi +radio-sf16fmr2 +radio-si4713 +radio-tea5764 +radio-terratec +radio-timb +radio-trust +radio-typhoon +radio-usb-si470x +radio-wl1273 +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +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-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +renesas_usbhs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-regulator +ring_sw +rio500 +rionet +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm860x +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl8150 +rtl8180 +rtl8187 +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtlwifi +rts5139 +rts_pstor +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-i586 +samsung-laptop +samsung-q10 +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 +savage +savagefb +sb1000 +sbc60xxwdt +sbc7240_wdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbe-2t3e3 +sbni +sbs +sbshc +sc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +scc +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +scx200 +scx200_acb +scx200_docflash +scx200_gpio +scx200_hrt +scx200_i2c +scx200_wdt +sdhci +sdhci-pci +sdhci-pltfm +sdio_uart +sdla +sdricoh_cs +sealevel +sedlbauer_cs +seed +seeq8005 +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha512_generic +shpchp +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sim710 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_platform +skel +skfp +skge +skisa +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smc9194 +smc91c92_cs +smc-mca +sm_common +smctr +smc-ultra +smc-ultra32 +sm_ftl +smm665 +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1816a +snd-ad1848 +snd-ad1889 +snd-adlib +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als100 +snd-als300 +snd-als4000 +snd-asihpi +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt1605 +snd-azt2316 +snd-azt2320 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmi8330 +snd-cmipci +snd-cs4231 +snd-cs4236 +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emu8000-synth +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1688 +snd-es1688-lib +snd-es18xx +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-gusclassic +snd-gusextreme +snd-gus-lib +snd-gusmax +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-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-interwave +snd-interwave-stb +snd-isight +snd-jazz16 +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-miro +snd-mixart +snd-mixer-oss +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-msnd-classic +snd-msnd-lib +snd-msnd-pinnacle +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3sa2 +snd-opl3-synth +snd-opl4-lib +snd-opl4-synth +snd-opti92x-ad1848 +snd-opti92x-cs4231 +snd-opti93x +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16 +snd-sb16-csp +snd-sb16-dsp +snd-sb8 +snd-sb8-dsp +snd-sbawe +snd-sb-common +snd-sc6000 +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-sis7019 +snd-soc-88pm860x +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-dfbmcs320 +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-max98088 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-sgtl5000 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm5100 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8782 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-sscape +snd-tea575x-tuner +snd-tea6330t +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-wavefront +snd-wss-lib +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +softing_cs +solos-pci +sony-laptop +sonypi +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw-midpci +spi-gpio +spi-lm70llp +spi-oc-tiny +spi-pxa2xx +spi-tle62x0 +spi-topcliff-pch +squashfs +ssb +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sworks-agp +sx8 +sym53c416 +sym53c500_cs +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc1100-wmi +tc3589x-keypad +tca6416-keypad +tcic +tcm_fc +tcm_loop +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpm_atmel +tpm_infineon +tpm_nsc +tpm_tis +tps6105x +tps6105x-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +trancevibrator +tranzport +tridentfb +ts5500_flash +ts_bm +tsc2005 +tsc2007 +tsc40 +tscan1 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw9910 +twidjoy +twofish_common +twofish_generic +twofish-i586 +typhoon +u132-hcd +u14-34f +uartlite +ub +ubi +ubifs +ucb1400_core +ucb1400_ts +udc-core +udf +udlfb +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +ultrastor +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +video +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio_balloon +virtio_console +virtio_mmio +virtio-rng +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmwgfx +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +vub300 +vx855 +vxge +w1_bq27000 +w1_ds2408 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1-gpio +w1_smem +w1_therm +w35und +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +wacom +wacom_w8001 +wafer5823wdt +walkera0701 +wanrouter +wanxl +warrior +wbsd +wd +wd7000 +wdt +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +winbond-cir +wire +wis-ov7640 +wis-saa7113 +wis-saa7115 +wis-sony-tuner +wistron_btns +wis-tw2804 +wis-tw9903 +wis-uda1342 +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wmi +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-pciback +xen-pcifront +xen_wdt +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xilinx_uartps +xirc2ps_cs +xircom_cb +xo15-ebook +xor +xpad +xprtrdma +x_tables +xt_addrtype +xt_AUDIT +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +z85230 +zatm +zaurus +zcache +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/i386/generic-pae.modules +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/i386/generic-pae.modules @@ -0,0 +1,3533 @@ +3c359 +3c501 +3c503 +3c505 +3c507 +3c509 +3c515 +3c523 +3c527 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +53c700 +6lowpan +6pack +8021q +8139cp +8139too +8250_accent +8250_boca +8250_exar_st16c554 +8250_fourport +8250_hub6 +8250_mca +8255 +82596 +8390 +8390p +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +abituguru +abituguru3 +abyss +ac3200 +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acl7225b +acpi_ipmi +acpi_pad +acpiphp +acpiphp_ibm +acpi_power_meter +acquirewdt +act2000 +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5398 +ad5446 +ad5504 +ad5624r_spi +ad5686 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7280a +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2016 +addi_apci_2032 +addi_apci_2200 +addi_apci_3001 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adl_pci6208 +adl_pci7230 +adl_pci7296 +adl_pci7432 +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads1015 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aes-i586 +aesni-intel +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +ak8975 +alauda +algif_hash +algif_skcipher +ali-agp +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +ambassador +amc6821 +amd5536udc +amd76x_edac +amd76xrom +amd8111e +amd-rng +amplc_dio200 +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +ams369fg06 +analog +ansi_cprng +anubis +aoe +apanel +apds9802als +apds990x +apm +apple_bl +appledisplay +apple-gmux +applesmc +appletalk +appletouch +applicom +ar7part +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +asb100 +asc7621 +asix +asus_atk0110 +asus-laptop +asus-nb-wmi +asus_oled +asus-wmi +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at1700 +at24 +at25 +at76c50x-usb +atbm8830 +aten +ath +ath3k +ath5k +ath6kl +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati-agp +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522 +aufs +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +axnet_cs +b1 +b1dma +b1isa +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bmp085 +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c101 +c2port-duramar2150 +c4 +c67x00 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcidio +cb_pcimdas +cb_pcimdda +c_can +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +ci13xxx_pci +cifs +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-isa +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +cops +cordic +core +coretemp +cosa +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpqarray +cpqphp +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc7 +crc8 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs5535-mfd +cs553x_nand +cs89x0 +ct82c710 +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +DAC960 +daqboard2000 +das08 +das08_cs +das16 +das16m1 +das1800 +das6402 +das800 +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +ddbridge +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +dell-wmi-aio +denali +depca +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bufio +dm-crypt +dme1737 +dmfe +dmi-sysfs +dm-log +dmm32at +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-raid45 +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-thin-pool +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docg3 +docprobe +donauboe +dpt_i2o +drbd +drm +drm_kms_helper +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155v4l +dt9812 +dtc +dtl1_cs +dtlk +dummy +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-anysee +dvb-usb-au6610 +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-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-omap +dwc3-pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e2100 +e752x_edac +e7xxx_edac +earth-pt1 +easycap +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +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_ulog +ebt_vlan +ec100 +echo +econet +ec_sys +edac_core +edac_mce_amd +eeepc-laptop +eeepc-wmi +eepro +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +eexpress +efficeon-agp +efs +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +emc6w201 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +ene_ir +eni +enic +epat +epia +epic100 +eql +erst-dbg +es3210 +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +et61x251 +eth16i +ethoc +eurotechwdt +evbug +ewrk3 +exofs +ext2 +f71805f +f71808e_wdt +f71882fg +f75375s +fakephp +fam15h_power +farsync +fat +faulty +fb_ddc +fb_sys_fops +fcoe +fcrypt +fd_mcs +fdomain +fdomain_cs +fealnx +ff-memless +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +fixed +fl512 +floppy +fm801-gp +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +freevxfs +friq +frpw +fsa9480 +fsam7400 +fscache +fschmd +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdth +generic +generic_bl +gen_probe +geode-aes +geode-rng +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_NCR5380 +g_NCR5380_mmio +g_nokia +go7007 +go7007-usb +goku_udc +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-charger +gpio-cs5535 +gpio-fan +gpio-generic +gpio-i2cmux +gpio-it8761e +gpio-janz-ttl +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-pch +gpio-rdc321x +gpio-regulator +gpio-sch +gpio-tps65912 +gpio_vbus +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +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_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-holtekff +hid-hyperv +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-kovaplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-speedlink +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hostess_sv11 +hp +hp100 +hp4x +hp_accel +hpfs +hpilo +hp-plus +hpsa +hptiop +hpwdt +hp-wmi +hso +htc-pasic3 +htcpen +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-designware-core +i2c-designware-pci +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mux +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-isa +i2c-pca-platform +i2c-piix4 +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-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7300_edac +i7core_edac +i810 +i810fb +i82092 +i82365 +i82860_edac +i82875p_edac +i82975x_edac +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmasm +ibmasr +ibmlana +ibmmca +ibmpex +ibmphp +ibm_rtl +ib_mthca +ibmtr +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icp_multi +ics932s401 +ideapad-laptop +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio_dummy +iio-trig-gpio +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili9320 +imm +imon +imx074 +in2000 +industrialio +inet_diag +inexio +inftl +initio +inport +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +intel_oaktrail +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +iris +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it8712f_wdt +it87_wdt +it913x-fe +iTCO_vendor_support +iTCO_wdt +itd1000 +ite-cir +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwl-legacy +iwlwifi +iwmc3200top +iwmc3200wifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvm +kvm-amd +kvm-intel +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lance +lanstreamer +lapb +lapbether +latch-addr-flash +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-clevo-mail +leds-da903x +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lt3593 +leds-mc13783 +leds-net48xx +leds-net5501 +leds-pca9532 +leds-pca955x +leds-regulator +leds-ss4200 +leds-wm831x-status +leds-wm8350 +leds-wrap +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lm95245 +lmc +lms283gf05 +lnbp21 +lnbp22 +lne390 +lockd +logibm +lp +lp3971 +lp3972 +lp486e +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltpc +ltv350qv +lxfb +lzo +m25p80 +m52790 +m66592-udc +ma600-sir +mac80211 +mac80211_hwsim +mac_hid +machzwd +macmodes +macvlan +macvtap +madgemc +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max6639 +max6642 +max6650 +max6875 +max7359_keypad +max8649 +max8660 +max8903_charger +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc44s803 +mce_amd_inj +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdacon +mdc800 +mdio +mdio-bitbang +mdio-gpio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mem2mem_testdev +memstick +metronomefb +meye +mfd +mga +michael_mic +micrel +microcode +microtek +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mixcomwd +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mma8450 +mmc_block +mos7720 +mos7840 +moto_modem +moxa +mpc624 +mpoa +mpr121_touchkey +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrst_max3110 +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +multiq3 +mv88e6060 +mv88e6xxx_drv +mvsas +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxm-wmi +mxser +myri10ge +n2 +n411 +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +nci +ncpfs +NCR53c406a +NCR_D700 +NCR_Q720_mod +ne +ne2 +ne2k-pci +ne3210 +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nftl +nf_tproxy_core +ngene +n_hdlc +ni52 +ni65 +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_a2150 +ni_at_ao +ni_atmio +ni_atmio16d +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +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 +nop-usb-xceiv +nosy +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nuvoton-cir +nvidiafb +nvram +nv_tco +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +old_belkin-sir +olympic +omfs +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8023 +padlock-aes +padlock-sha +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas16 +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5535 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_isapnp +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_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc110pad +pc300too +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca9541 +pca954x +pcbc +pcbit +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci_slot +pci-stub +pcl711 +pcl724 +pcl725 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcm3730 +pcmad +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcm_common +pcmda12 +pcmmio +pcmuio +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +peak_pci +pegasus +penmount +pf +pg +phantom +phison +phonedev +phonet +phram +physmap +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pms +pn533 +pn544 +pn_pep +poc +pohmelfs +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +progear_bl +proteon +ps2mult +psb_gfx +psmouse +pt +pti +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas +qlogicfas408 +qnx4 +qt1010 +qt1070 +quatech_daqp_cs +quatech_usb2 +quickstart +quota_tree +quota_v1 +quota_v2 +r128 +r592 +r6040 +r8169 +r8187se +r8192e_pci +r8192u_usb +r82600_edac +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +radio-i2c-si470x +radio-maxiradio +radio-miropcm20 +radio-mr800 +radio-rtrack2 +radio-sf16fmi +radio-sf16fmr2 +radio-si4713 +radio-tea5764 +radio-terratec +radio-timb +radio-trust +radio-typhoon +radio-usb-si470x +radio-wl1273 +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +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-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +renesas_usbhs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-regulator +ring_sw +rio500 +rionet +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm860x +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl8150 +rtl8180 +rtl8187 +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtlwifi +rts5139 +rts_pstor +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-i586 +samsung-laptop +samsung-q10 +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 +savage +savagefb +sb1000 +sbc60xxwdt +sbc7240_wdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbe-2t3e3 +sbni +sbs +sbshc +sc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +scc +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +scx200 +scx200_acb +scx200_docflash +scx200_gpio +scx200_hrt +scx200_i2c +scx200_wdt +sdhci +sdhci-pci +sdhci-pltfm +sdio_uart +sdla +sdricoh_cs +sealevel +sedlbauer_cs +seed +seeq8005 +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha512_generic +shpchp +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sim710 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_platform +skel +skfp +skge +skisa +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smc9194 +smc91c92_cs +smc-mca +sm_common +smctr +smc-ultra +smc-ultra32 +sm_ftl +smm665 +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1816a +snd-ad1848 +snd-ad1889 +snd-adlib +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als100 +snd-als300 +snd-als4000 +snd-asihpi +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt1605 +snd-azt2316 +snd-azt2320 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmi8330 +snd-cmipci +snd-cs4231 +snd-cs4236 +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emu8000-synth +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1688 +snd-es1688-lib +snd-es18xx +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-gusclassic +snd-gusextreme +snd-gus-lib +snd-gusmax +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-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-interwave +snd-interwave-stb +snd-isight +snd-jazz16 +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-miro +snd-mixart +snd-mixer-oss +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-msnd-classic +snd-msnd-lib +snd-msnd-pinnacle +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3sa2 +snd-opl3-synth +snd-opl4-lib +snd-opl4-synth +snd-opti92x-ad1848 +snd-opti92x-cs4231 +snd-opti93x +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16 +snd-sb16-csp +snd-sb16-dsp +snd-sb8 +snd-sb8-dsp +snd-sbawe +snd-sb-common +snd-sc6000 +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-sis7019 +snd-soc-88pm860x +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-dfbmcs320 +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-max98088 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-sgtl5000 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm5100 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8782 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-sscape +snd-tea575x-tuner +snd-tea6330t +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-wavefront +snd-wss-lib +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +softing_cs +solos-pci +sony-laptop +sonypi +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw-midpci +spi-gpio +spi-lm70llp +spi-oc-tiny +spi-pxa2xx +spi-tle62x0 +spi-topcliff-pch +squashfs +ssb +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sworks-agp +sx8 +sym53c416 +sym53c500_cs +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc1100-wmi +tc3589x-keypad +tca6416-keypad +tcic +tcm_fc +tcm_loop +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpm_atmel +tpm_infineon +tpm_nsc +tpm_tis +tps6105x +tps6105x-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +trancevibrator +tranzport +tridentfb +ts5500_flash +ts_bm +tsc2005 +tsc2007 +tsc40 +tscan1 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw9910 +twidjoy +twofish_common +twofish_generic +twofish-i586 +typhoon +u132-hcd +u14-34f +uartlite +ub +ubi +ubifs +ucb1400_core +ucb1400_ts +udc-core +udf +udlfb +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +ultrastor +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +video +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio_balloon +virtio_console +virtio_mmio +virtio-rng +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmwgfx +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +vub300 +vx855 +vxge +w1_bq27000 +w1_ds2408 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1-gpio +w1_smem +w1_therm +w35und +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +wacom +wacom_w8001 +wafer5823wdt +walkera0701 +wanrouter +wanxl +warrior +wbsd +wd +wd7000 +wdt +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +winbond-cir +wire +wis-ov7640 +wis-saa7113 +wis-saa7115 +wis-sony-tuner +wistron_btns +wis-tw2804 +wis-tw9903 +wis-uda1342 +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wmi +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-pciback +xen-pcifront +xen_wdt +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xilinx_uartps +xirc2ps_cs +xircom_cb +xo15-ebook +xor +xpad +xprtrdma +x_tables +xt_addrtype +xt_AUDIT +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +z85230 +zatm +zaurus +zcache +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/i386/generic.modules +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/i386/generic.modules @@ -0,0 +1,3535 @@ +3c359 +3c501 +3c503 +3c505 +3c507 +3c509 +3c515 +3c523 +3c527 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +53c700 +6lowpan +6pack +8021q +8139cp +8139too +8250_accent +8250_boca +8250_dw +8250_exar_st16c554 +8250_fourport +8250_hub6 +8250_mca +8255 +82596 +8390 +8390p +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +abituguru +abituguru3 +abyss +ac3200 +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acl7225b +acpi_ipmi +acpi_pad +acpiphp +acpiphp_ibm +acpi_power_meter +acquirewdt +act2000 +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5398 +ad5446 +ad5504 +ad5624r_spi +ad5686 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7280a +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2016 +addi_apci_2032 +addi_apci_2200 +addi_apci_3001 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adl_pci6208 +adl_pci7230 +adl_pci7296 +adl_pci7432 +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads1015 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aes-i586 +aesni-intel +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +ak8975 +alauda +algif_hash +algif_skcipher +ali-agp +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +ambassador +amc6821 +amd5536udc +amd76x_edac +amd76xrom +amd8111e +amd-rng +amplc_dio200 +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +ams369fg06 +analog +ansi_cprng +anubis +aoe +apanel +apds9802als +apds990x +apm +apple_bl +appledisplay +apple-gmux +applesmc +appletalk +appletouch +applicom +ar7part +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +asb100 +asc7621 +asix +asus_atk0110 +asus-laptop +asus-nb-wmi +asus_oled +asus-wmi +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at1700 +at24 +at25 +at76c50x-usb +atbm8830 +aten +ath +ath3k +ath5k +ath6kl +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati-agp +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522 +aufs +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +axnet_cs +b1 +b1dma +b1isa +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bmp085 +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c101 +c2port-duramar2150 +c4 +c67x00 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcidio +cb_pcimdas +cb_pcimdda +c_can +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +ci13xxx_pci +cifs +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-isa +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +cops +cordic +core +coretemp +cosa +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpqarray +cpqphp +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc7 +crc8 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs5535-mfd +cs553x_nand +cs89x0 +ct82c710 +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +DAC960 +daqboard2000 +das08 +das08_cs +das16 +das16m1 +das1800 +das6402 +das800 +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +ddbridge +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +dell-wmi-aio +denali +depca +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bufio +dm-crypt +dme1737 +dmfe +dmi-sysfs +dm-log +dmm32at +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-raid45 +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-thin-pool +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docg3 +docprobe +donauboe +dpt_i2o +drbd +drm +drm_kms_helper +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155v4l +dt9812 +dtc +dtl1_cs +dtlk +dummy +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-anysee +dvb-usb-au6610 +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-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-omap +dwc3-pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e2100 +e752x_edac +e7xxx_edac +earth-pt1 +easycap +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +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_ulog +ebt_vlan +ec100 +echo +econet +ec_sys +edac_core +edac_mce_amd +eeepc-laptop +eeepc-wmi +eepro +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +eexpress +efficeon-agp +efs +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +emc6w201 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +ene_ir +eni +enic +epat +epia +epic100 +eql +erst-dbg +es3210 +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +et61x251 +eth16i +ethoc +eurotechwdt +evbug +ewrk3 +exofs +ext2 +f71805f +f71808e_wdt +f71882fg +f75375s +fakephp +fam15h_power +farsync +fat +faulty +fb_ddc +fb_sys_fops +fcoe +fcrypt +fd_mcs +fdomain +fdomain_cs +fealnx +ff-memless +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +fixed +fl512 +floppy +fm801-gp +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +freevxfs +friq +frpw +fsa9480 +fsam7400 +fscache +fschmd +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +fusb300_udc +g450_pll +g760a +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdth +generic +generic_bl +gen_probe +geode-aes +geode-rng +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_NCR5380 +g_NCR5380_mmio +g_nokia +go7007 +go7007-usb +goku_udc +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-charger +gpio-fan +gpio-generic +gpio-i2cmux +gpio-it8761e +gpio-janz-ttl +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-pch +gpio-rdc321x +gpio-regulator +gpio-sch +gpio-tps65912 +gpio_vbus +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +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_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-holtekff +hid-hyperv +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-kovaplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-speedlink +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hifn_795x +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hostess_sv11 +hp +hp100 +hp4x +hp_accel +hpfs +hpilo +hp-plus +hpsa +hptiop +hpwdt +hp-wmi +hso +htc-pasic3 +htcpen +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-designware-core +i2c-designware-pci +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mux +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-isa +i2c-pca-platform +i2c-piix4 +i2c-pxa +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-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7300_edac +i7core_edac +i810 +i810fb +i82092 +i82365 +i82860_edac +i82875p_edac +i82975x_edac +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmasm +ibmasr +ibmlana +ibmmca +ibmpex +ibmphp +ibm_rtl +ib_mthca +ibmtr +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icp_multi +ics932s401 +ideapad-laptop +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio_dummy +iio-trig-gpio +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili9320 +imm +imon +imx074 +in2000 +industrialio +inet_diag +inexio +inftl +initio +inport +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +intel_oaktrail +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +iris +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it8712f_wdt +it87_wdt +it913x-fe +iTCO_vendor_support +iTCO_wdt +itd1000 +ite-cir +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwl-legacy +iwlwifi +iwmc3200top +iwmc3200wifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvm +kvm-amd +kvm-intel +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lance +langwell_udc +lanstreamer +lapb +lapbether +latch-addr-flash +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-clevo-mail +leds-da903x +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lt3593 +leds-mc13783 +leds-net48xx +leds-net5501 +leds-pca9532 +leds-pca955x +leds-regulator +leds-ss4200 +leds-wm831x-status +leds-wm8350 +leds-wrap +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lm95245 +lmc +lms283gf05 +lnbp21 +lnbp22 +lne390 +lockd +logibm +lp +lp3971 +lp3972 +lp486e +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltpc +ltv350qv +lxfb +lzo +m25p80 +m52790 +m66592-udc +ma600-sir +mac80211 +mac80211_hwsim +mac_hid +machzwd +macmodes +macvlan +macvtap +madgemc +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max6639 +max6642 +max6650 +max6875 +max7359_keypad +max8649 +max8660 +max8903_charger +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc44s803 +mce_amd_inj +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdacon +mdc800 +mdio +mdio-bitbang +mdio-gpio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mem2mem_testdev +memstick +metronomefb +meye +mfd +mga +michael_mic +micrel +microcode +microtek +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mixcomwd +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mma8450 +mmc_block +mos7720 +mos7840 +moto_modem +moxa +mpc624 +mpoa +mpr121_touchkey +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrst_max3110 +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +multiq3 +mv88e6060 +mv88e6xxx_drv +mvsas +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxm-wmi +mxser +myri10ge +n2 +n411 +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +nci +ncpfs +NCR53c406a +NCR_D700 +NCR_Q720_mod +ne +ne2 +ne2k-pci +ne3210 +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nftl +nf_tproxy_core +ngene +n_hdlc +ni52 +ni65 +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_a2150 +ni_at_ao +ni_atmio +ni_atmio16d +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +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 +nop-usb-xceiv +nosy +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nuvoton-cir +nvidiafb +nvram +nv_tco +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ofpart +of_serial +old_belkin-sir +olpc_battery +olpc-dcon +olympic +omfs +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8023 +padlock-aes +padlock-sha +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas16 +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5535 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_isapnp +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_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc110pad +pc300too +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca9541 +pca954x +pcbc +pcbit +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci_slot +pci-stub +pcl711 +pcl724 +pcl725 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcm3730 +pcmad +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcm_common +pcmda12 +pcmmio +pcmuio +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +peak_pci +pegasus +penmount +pf +pg +phantom +phison +phonedev +phonet +phram +physmap +physmap_of +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pms +pn533 +pn544 +pn_pep +poc +pohmelfs +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +progear_bl +proteon +ps2mult +psb_gfx +psmouse +pt +pti +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas +qlogicfas408 +qnx4 +qt1010 +qt1070 +quatech_daqp_cs +quatech_usb2 +quickstart +quota_tree +quota_v1 +quota_v2 +r128 +r592 +r6040 +r8169 +r8187se +r8192e_pci +r8192u_usb +r82600_edac +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +radio-i2c-si470x +radio-maxiradio +radio-miropcm20 +radio-mr800 +radio-rtrack2 +radio-sf16fmi +radio-sf16fmr2 +radio-si4713 +radio-tea5764 +radio-terratec +radio-timb +radio-trust +radio-typhoon +radio-usb-si470x +radio-wl1273 +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +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-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +renesas_usbhs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-regulator +ring_sw +rio500 +rionet +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm860x +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl8150 +rtl8180 +rtl8187 +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtlwifi +rts5139 +rts_pstor +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-i586 +samsung-laptop +samsung-q10 +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 +savage +savagefb +sb1000 +sbc60xxwdt +sbc7240_wdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbe-2t3e3 +sbni +sbs +sbshc +sc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +scc +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +scx200 +scx200_acb +scx200_docflash +scx200_gpio +scx200_hrt +scx200_i2c +scx200_wdt +sdhci +sdhci-pci +sdhci-pltfm +sdio_uart +sdla +sdricoh_cs +sealevel +sedlbauer_cs +seed +seeq8005 +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha512_generic +shpchp +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sim710 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_platform +skel +skfp +skge +skisa +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smc9194 +smc91c92_cs +smc-mca +sm_common +smctr +smc-ultra +smc-ultra32 +sm_ftl +smm665 +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1816a +snd-ad1848 +snd-ad1889 +snd-adlib +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als100 +snd-als300 +snd-als4000 +snd-asihpi +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt1605 +snd-azt2316 +snd-azt2320 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmi8330 +snd-cmipci +snd-cs4231 +snd-cs4236 +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emu8000-synth +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1688 +snd-es1688-lib +snd-es18xx +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-gusclassic +snd-gusextreme +snd-gus-lib +snd-gusmax +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-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-interwave +snd-interwave-stb +snd-isight +snd-jazz16 +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-miro +snd-mixart +snd-mixer-oss +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-msnd-classic +snd-msnd-lib +snd-msnd-pinnacle +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3sa2 +snd-opl3-synth +snd-opl4-lib +snd-opl4-synth +snd-opti92x-ad1848 +snd-opti92x-cs4231 +snd-opti93x +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16 +snd-sb16-csp +snd-sb16-dsp +snd-sb8 +snd-sb8-dsp +snd-sbawe +snd-sb-common +snd-sc6000 +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-sis7019 +snd-soc-88pm860x +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-dfbmcs320 +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-max98088 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-sgtl5000 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm5100 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8782 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-sscape +snd-tea575x-tuner +snd-tea6330t +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-wavefront +snd-wss-lib +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +softing_cs +solos-pci +sony-laptop +sonypi +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw-midpci +spi-gpio +spi-lm70llp +spi-oc-tiny +spi-pxa2xx +spi-tle62x0 +spi-topcliff-pch +squashfs +ssb +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sworks-agp +sx8 +sym53c416 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc1100-wmi +tc3589x-keypad +tca6416-keypad +tcic +tcm_fc +tcm_loop +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpm_atmel +tpm_infineon +tpm_nsc +tpm_tis +tps6105x +tps6105x-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +trancevibrator +tranzport +tridentfb +ts5500_flash +ts_bm +tsc2005 +tsc2007 +tsc40 +tscan1 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw9910 +twidjoy +twofish_common +twofish_generic +twofish-i586 +typhoon +u132-hcd +u14-34f +uartlite +ub +ubi +ubifs +ucb1400_core +ucb1400_ts +udc-core +udf +udlfb +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +ultrastor +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +video +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio_balloon +virtio_console +virtio_mmio +virtio-rng +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmwgfx +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +vub300 +vx855 +vxge +w1_bq27000 +w1_ds2408 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1-gpio +w1_smem +w1_therm +w35und +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +wacom +wacom_w8001 +wafer5823wdt +walkera0701 +wanrouter +wanxl +warrior +wbsd +wd +wd7000 +wdt +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +winbond-cir +wire +wis-ov7640 +wis-saa7113 +wis-saa7115 +wis-sony-tuner +wistron_btns +wis-tw2804 +wis-tw9903 +wis-uda1342 +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wmi +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xilinx_uartps +xirc2ps_cs +xircom_cb +xo15-ebook +xo1-rfkill +xor +xpad +xprtrdma +x_tables +xt_addrtype +xt_AUDIT +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +z85230 +zatm +zaurus +zcache +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/i386/virtual +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/i386/virtual @@ -0,0 +1,12692 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x4e9779eb kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xa0da4ae2 kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x907665bd scx200_cb_base +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/acpi/video 0xe8caf91e acpi_video_get_edid +EXPORT_SYMBOL drivers/atm/suni 0x55c6390a suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x83fe1a1d uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0xb01957eb bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x5c165453 drbd_set_st_err_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 0x0f886749 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x189e13b4 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x2babad89 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x497f54b4 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x5327a765 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x69367dea pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x6983ab05 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x69c6afc2 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x73610be0 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xb06384aa pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xc397b455 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xc501c986 pi_do_claimed +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x63e29c37 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x809b4f23 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcd84f7a7 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xed333c4a ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf97ddddb ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/nsc_gpio 0x0abab776 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0x892ff5b7 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0x8eeaecd8 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/edac/edac_core 0x38e7f667 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xe7dbfcc0 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xfb10f9aa edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1c408e9f fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x286866dc fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x370b9131 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4f5d7da3 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x624065b8 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6d258e64 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6eabfc16 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x75da87c3 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7702538c fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fbfa242 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x87f966fc fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8a790b49 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8f9cdad7 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x98358434 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9d835221 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9f8335e0 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa0ad5596 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa15102a7 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa803f7c0 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb06ea4ba fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc2aa0720 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd7f49235 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdeb9590c fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdf8a12ab fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe45fe7f9 fw_iso_context_start +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x003bfd87 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00ced12e drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x025521da drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0427349e drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x079874f0 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cd4339e drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d63d6ce drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e133029 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fa31622 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fb44781 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x123b7f12 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x126ca534 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16b4be6a drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a9ae54e drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2114f4b4 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24cd1cd0 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x261e8fd9 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x294a040a drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d117bc2 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d8a4e3e drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eefb72d drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f4ffdd7 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fb7315e drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3054c8d6 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3098d0b2 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x311cd91d drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x333704e3 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33b34cc3 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33e154ba drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3465ed3d drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x365a977e drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36b085c7 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39f3de10 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c10cf65 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x404902b8 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41469c24 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41fe8795 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43102799 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c9a91c drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46108d58 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x483a5486 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x492a48a0 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dee3c48 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dfb923b drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e6ac2ef drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x500f6be2 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5127043b drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53c9e92f drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x549b2c8d drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55839340 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x561f39a3 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x576da7c8 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x578168ff drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5835e5c0 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b0c740e drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d413248 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5de527c2 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f098f77 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f6cbc33 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x618e2564 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62b224ed drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63758853 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63ba5f95 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67026845 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a7193e7 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b894282 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ddbf8b5 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e2a2eda drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fb94c86 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x720d32cc drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7550933f drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77669ee5 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78b587b8 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7aab482f drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1e794f drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d262fd9 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f24b6a4 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fe76376 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80cab082 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81b4d3f4 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8281bd36 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82d8bf7d drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x830bc9be drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x838fc94a drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x841c47b9 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85767d67 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x859b39c2 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86136af0 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8735d11f drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a9dcb5c drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dbc7381 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e140678 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x912c23fe drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91907472 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92f2d102 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x932df43d drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93ad2c48 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94869618 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94faa873 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a9247b3 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c2df296 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dc25a34 drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa01166f4 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0abb82b drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa237e931 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2a31fdf drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7fca3ff drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa853131f drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9a3c90e drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa54231f drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa6d323f drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaec1a9d9 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf6e1013 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb18d9954 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3ab90b9 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6f33714 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb830ac8f drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbdd6797 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbf0e1b5 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd4f9ed0 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf214ac8 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1bc5d50 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc27a0edb drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5826d70 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc728d8a8 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7b7b158 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc83efc11 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8a2d75c drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce7a7af0 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd01c46a0 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd04e10e3 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd39dccfd drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5904bbf drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5f027d1 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7225597 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd755abbd drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7d3d47f drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7f1ab84 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd88f3baa drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8f8f82d drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde985a7b drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1a476b9 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1ae238f drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe256edfd drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe27a644d drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3553657 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6ead14e drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe81bca35 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeba66da8 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xebdfdef9 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed256cae drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf05e14b4 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0a0bf79 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3f038d8 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3f777ac drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf41721ff drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6aecf06 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8fc0eb1 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb0e7e66 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfbf2df8a drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc4f8599 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfcecabdd drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe775932 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfea557be drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x001dec63 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b4bddcd drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0c47e0bb drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0d64b1ba drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1784b7fe drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2373d1cd drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2bc3d4c3 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33974d3b drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x378f51a5 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e33ace1 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x412c3025 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x419efea0 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c8b708f drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x60e8642b drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6669dc40 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6726e71d drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f069866 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85ca4e50 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa1d141d2 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa634c9aa drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaef732b5 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb584e05e drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2b512ad drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd1d94b25 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd6967e85 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd8fb1ad6 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe11c21aa drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf36ede3c i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf43c092c drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf46d01eb drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfcca7563 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00d6fef8 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1274ecd9 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x13119eba ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x145e6a73 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1470553b ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25392771 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266d8a60 ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2906c117 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a2f7f7a ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b941579 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x33609b16 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34c269a1 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36d9a868 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x37d0af23 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a4170e1 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3f4bd6c9 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x41f58552 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45a6f28f ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47c2defe ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4915fb8c ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x49b442df ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4ea2891e ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50a096a1 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6622655d ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x75e018f5 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x765f58f7 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x786e3144 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7b80c129 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7f05b5eb ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85477881 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8832162b ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8f8cb99c ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x92da04e8 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9411280f ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9dd2feea ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa0d29ee6 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa3e90bf7 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa45c44e4 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbaa2b414 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbd5f95b6 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc8fde049 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc9727601 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcbbac744 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc404922 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd3e800b6 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd781128c ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdfd1efa4 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe07096a5 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe39b3950 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5417038 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf2daf786 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf2eaa709 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf9d416df ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa331db2 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x348aa23c vmbus_sendpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x9f91216a vmbus_recvpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x078e6a57 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x1f2ad4f9 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x85b88a2f i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xe495e120 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xaecf5dc2 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xfa406323 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x291c41bc rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x37838b44 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x8ed679ff rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xb93baf0d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc0bf4edc rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x41128c03 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x477fd1d9 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x49c658ca ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4b4cd16e ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x574ce0a1 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7543447a ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7b5603b4 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x860e0b90 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa9373739 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb14d6b86 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc45ecfae ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcbddd5cf ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd23f4956 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdbe365de cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xebea7565 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xecbc5e0d ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xed61fb51 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e19f659 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x104f5f13 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1180fb86 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1246c176 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1326eabe ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x173635bb rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17781468 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c764b50 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d0652a3 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1eef0a0d ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29eed200 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e554f6a ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ebda7be ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x38beb10a ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a7ab748 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b50d29a ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e50f9da ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40dd2c59 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49232470 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c5a995b ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50f821ca ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5101443c ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x525ba0bb ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b51de39 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62bdb84f ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x663dc103 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e61f60d ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74c26cf9 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81f4b348 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x826570cd ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87f4fdcc ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88c863e3 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96d63a7f ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9952c3b6 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9abe0f2e ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c4a9b27 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa0e71782 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5892f40 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa920e5b ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xacb9ad58 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae3e1124 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xafa7ea85 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb33b7b88 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3dd9729 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3e272bf ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7a6c23c ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdc36a49 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbde3208b ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc45dc51d ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc46f6028 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc623f357 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc7a52bc2 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcb387afb ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3298315 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6ca936a ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8a0980f ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8e31856 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc735d6b ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdccfee4c ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf3a8235 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4ababf8 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6e0610a ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7a41b34 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe90b72e5 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe95f0e40 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea81851f ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2a49e0d ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5c008cf ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf9ad47e2 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa0f18d0 ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc46d0cd ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdb9552d ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfeec039d ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x01a9172d ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x272a0383 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4605a20e ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4d062f83 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8efd3bf2 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x909db400 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x93b14650 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa6de8527 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa70f2aaa ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xae9db2e4 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xafe0f15e ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfdd41daf ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x14c37095 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1c778fb6 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x25f8177e ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6e44fd9f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8001438f ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9ec2fd34 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xbd4fe1d4 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xdf4888f7 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x452a3378 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x48da0a58 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4b4f3cf6 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5dbe7b49 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x75e19a77 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x86e706e6 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x885249e9 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xef0566a9 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x077430bc rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1077f889 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2086e1ac rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x309ea194 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x342d5cea rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3feb7e45 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5e9fe548 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x64c6f159 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6d2baf1a rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x99eb55fd rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9e4a060d rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xae550595 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb44447e5 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbf975d41 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc0c11848 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc7fe5c71 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd15893ba rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe27b71fa rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe6190112 rdma_destroy_id +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0fa6f8a1 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x110ddd3c gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x56117035 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x6163b9b1 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x62304ea6 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9368be97 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xaa7cf5e9 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf7ff34ff gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xff4b87cd gameport_open +EXPORT_SYMBOL drivers/input/input-polldev 0x4f2de856 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa911bc5a input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb12fd506 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb6c9c282 input_register_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x012d3fe0 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7bbf1dab ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x80140272 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x9fe4734f ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x6591cbbb 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/sparse-keymap 0x0526ceef sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0ae0e575 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x195c407e sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x205b874c sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x25598c96 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4d04ed2c sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbc9dc160 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xc1c09397 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf3bd1692 ad7879_resume +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0844d7ca capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4092d989 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x43ce0fb2 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x687cfb5b capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x732774f6 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7f6649b6 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x80f1d8d1 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xdeb3dc87 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8b4c2af capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xef6eaced capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x042ea51d b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x04c71863 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x085e3724 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x144f8f50 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x38ed8919 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4306e05b b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4aceda2a b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5d54532b b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x660daae9 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x75f8c00f b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9245293a b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xafcd07a1 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc1191aed avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe00a47a6 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe1f1a6ef b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x023ce49f b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x090c2cee b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x32e881da b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4192a57e b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x68d919ba b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x753f61a6 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x77be9941 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xaadb0f28 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xeb551318 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x15f3a8b2 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x07cd42ca mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7a50ef61 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x96fcae2d mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xc512be79 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x43f66a81 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xc313efa3 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x1cc007da hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x0798c363 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x64ec273b isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xc2936394 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf29dafe2 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf44cbb00 isac_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x52431332 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x67fe55b4 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xd7aea306 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x09e73705 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x383526c9 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x383ec8d8 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x57cd3e11 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x591696e4 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5cc37623 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5fe6d30b confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x61b4fc05 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6e637b46 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x77850797 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7e2d92b4 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x83828e83 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x89773ac6 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x935ce059 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96aac526 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc1443199 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc8c77a53 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcc165f24 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcdae359e mISDN_initbchannel +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 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8e7d341 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xeec73952 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x9cafc659 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xc4dbcdb2 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xcbdc19c6 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xf2e6f3ad dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x0a024c2c dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x11d8fd15 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x233a7f4a dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x36ee6a76 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xcb88ac67 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xf64281f6 dm_snap_cow +EXPORT_SYMBOL drivers/md/raid456 0xa735b5d2 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xe32d1ed7 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xf18e0a4d mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x534475a1 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x75604ae7 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0xf5815276 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x8edd8949 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x092477f6 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18212 0xd88ecfa1 tda18212_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0x2715545c tda18218_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0xf2fca5ff xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc4000 0x34c1b0b4 xc4000_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xdda822a9 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x190bc329 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1b4f95aa flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x207db59c flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2aa57003 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2ee88190 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x35ff70cf flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3ef24bbf flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x54d8df57 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x740ee03d flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8f2b6bc8 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x95521053 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9b234c5e flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa12d0061 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbddec311 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xca886f7c flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd0cd62ab flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe610f70f flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe71a7f14 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf3ea0f03 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xff7a9f8d flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x6d825a47 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x7976ca8a bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x8804ee53 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xf36ed388 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x34a8c72f dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x403481ce write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x599ddc2b dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x72f461bb read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x733bc8b5 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x76df4e94 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x77cfb947 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc4d3d5f3 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc5f0c331 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x454b13d6 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x101a29b8 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x17f893f9 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x196f1ac1 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1be887ed dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x237f7910 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x24566e91 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2631cacb dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2cb4d52d dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x300f2abb dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31bbde26 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x40875ee5 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x43b7d6c9 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x487bafb9 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4b27c5b3 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4c70c35a dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x57eee9f0 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x60401b9f dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6abfd29e dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x93dff1b8 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x987dcfde dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x988f1782 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9aece697 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xaa668f63 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac376109 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb38f03f4 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb72b5fa0 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc36b701e dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc90ef4bc dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd3ee7530 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xde266f38 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe141c4d0 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe9dd9424 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfcc0ed9c dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfeb89769 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x08dc68ea dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x1f7cb842 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x825edec8 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb5000bd3 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb7ab741e dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe6389d13 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe8775d38 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x946fb64f af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x01781f6b dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0c9dbf9c dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x153dba32 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2bf2fcd6 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x387d33dd dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x56b803f6 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5da5e616 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6533a495 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7f2cb8cf dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb4801362 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd550675a dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/frontends/a8293 0x1249d01d a8293_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xbb99c7eb af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x0492bdd9 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x95af5cdb au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x82ddee86 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x3f5a762f cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x4cc8ea63 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x70f51bb1 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x3d8ad331 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x70b4e368 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xa9df24b3 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x7459311e cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xc90b2547 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cxd2820r 0xd969f8c6 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x5c5538f3 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x892a60df dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x892c49c8 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x8a00d17f dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xc3ec7960 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x1b1b0adb dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x75135b06 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9178d28a dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x96f86047 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xbe5becc4 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xcc2e3898 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xdbdf8f79 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xdf64f5e4 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf1933f73 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xbaf4e051 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x531db7b9 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x544ed2e1 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x5ec910ca dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa4fd13eb dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xceb9bf0e dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xfde4d2d4 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xb3315b7a dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xc4736936 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xe5499931 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xf2608f54 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x09c453d1 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0a447c9d dib7090_agc_restart +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x481c4493 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5a0d2655 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x90c9badf dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x972c6e19 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9d602d1c dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa60dca47 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa6d094d2 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb83da63e dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xbf7bfa12 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcb140c36 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcde945f3 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe38a2c79 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe51b9f2c dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0da295fb dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x3d5a29fb dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4880ee18 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x787b931b dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8b4a545d dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9a8e3658 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa05340da dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa3e01bb3 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa43ac50e dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb45c7861 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xddc4c325 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdf1675b9 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe666650f dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xeee59850 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x225a554a dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x99a69b81 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xa92cd4db dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xaf3636c5 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xeecce8d4 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x00593a7c drxd_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0xef85d7f7 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb/frontends/drxk 0xf8e8681b drxk_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x001bb5ed ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xd7c78eba dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0xbcc80a48 ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x5187bcc3 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xa73ac801 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xededd747 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/it913x-fe 0x1e1b3d65 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x8f0ad0dc itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0xd3a052bd ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x2efe2a5c l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x166da7c1 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xb0c9ebd8 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x34dc6cad lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x25742888 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x82b4793e lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp22 0xd81ce780 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x7195fbd3 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0xd23f1ad6 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x6768a507 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x2a1ac268 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x61063aae nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xae5d5624 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xfd41bf3b or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x910e5222 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xbcfd9760 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x3623b365 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x6a1a595e s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xe427b62b s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0xd90d7296 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x6e3debdb si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x05af476b sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xa20feede sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xc4cd6f87 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xc7c25c03 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xa9e812fd stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x9d84fb93 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xb0ac3267 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xba16744f stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x3a932b92 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0xa059b3bd stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x580b8974 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x33a7fa95 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x556d506f stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xa6bd73bc stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x612234c1 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x8b372327 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x7c976bf1 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x63793018 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x88cbbb0e tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xe8f2f281 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10071 0x80d88038 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x579d9f08 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x79b91558 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xb0a2cb6b tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x7958e6f0 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xa1510d93 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x8f0e4dc6 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xb3448635 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xdd585fb3 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x317b670f zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x628dc852 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x85d0e01b zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xe420e705 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x10a53393 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x3b623259 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x073dcb65 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x352e92cd lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x51076ace lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x7a36c30c lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x9b4274f0 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xed34f9d5 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xefe38d66 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf4462d6b lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/rc-core 0x834601f9 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x942f0e8c ir_raw_handler_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x0f2ee739 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x7a8918a3 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xc483f130 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x3523167b btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xbb21ade7 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x0225a6b9 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x12fe8349 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2ffb95c5 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x4ada6cc3 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xdc32a7a6 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x0113e632 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xbeab2ba3 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x0da7e7ff cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0x0e45778a cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x676ed443 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x7dc2bf3a cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xffb04ae1 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x229b5c4e altera_hw_filt_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x395b6da9 altera_ci_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xe621acfb altera_pid_feed_control +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x1ccc51af cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x24346d0f cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x28c0710b cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x2f0b1ad0 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x63aeabea cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x72ad7f2f cx25821_devlist_mutex +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x7ed6a409 cx25821_dev_get +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xbf3e573d cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xf2329ac4 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x02c5e440 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x2d439387 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1f7d7d04 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x2b412043 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x80a686e1 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xaed61db2 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xebbdc693 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xfd740b9e cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2ea3dc6b cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2ffdbaba cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x748cca54 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x85314c46 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa82b2de2 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf31a299b cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x02174d4a cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x079fa489 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x12a2d354 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x18eb73fd cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x333fa173 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3a1735fa cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x78a12ab0 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8b886087 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x97a438ec cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9acd5ad7 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa2eb8419 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa96442d2 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xacdc6d3e cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb5cdf8a3 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb8f332b5 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc82dd188 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd1c65786 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe2a74e53 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe378198d cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe896c05a cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe9c59eb4 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf33576e4 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x2ca5799b em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x99dfcd12 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x08984d93 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x315afa7f gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x31727af0 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x5e80094f gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc2e4cf80 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xee54267e gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xfe2c1c1d gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2e05159a ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3870bfd1 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3afa06a6 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3fe0442f ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x47b04177 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x71735366 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9eceaa9f ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa0f4ad74 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa3adc495 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbaa4b72f ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbe115d96 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe2993a74 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0cb561a6 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x12e3c0c4 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5ad5aa1e saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x6191d568 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x66407a9d saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7c3edcd0 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x991c809f saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa60c96c2 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa617f0f8 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbf811811 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd5db6fc1 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xeb2e019b saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x09a550b5 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x1ff3980d soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb57176d6 soc_camera_unlock +EXPORT_SYMBOL drivers/media/video/soc_camera 0xbd3db2e4 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0xcffbdff0 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xda2f841a soc_camera_lock +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x433952ab soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6951757b soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x85d52182 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xcb4b96ae soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xbea42be1 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xeb7f4866 tm6000_register_extension +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xf3f03fa3 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/video/tveeprom 0x56ad5212 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xf0a53a21 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x3d6e4e4c v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x791ab099 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc0699aac v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xcc76efb9 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf052e6db v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x38670bb0 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x68ab0917 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x99738556 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x240d1d37 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x663c9b97 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6a043d67 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x70841b5c videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe2d1d346 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe856552a videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf2-core 0x9c30190d vb2_querybuf +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x12726da8 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/videodev 0x253564e7 v4l2_ctrl_add_event +EXPORT_SYMBOL drivers/media/video/videodev 0x2dcd2e5b v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x31c0eaea v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/videodev 0x3ec0f29e video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x4544aa1b v4l2_subdev_init +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4d360cb9 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x6688e496 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x693e8ad5 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x6950c250 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x6aa6c16e video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x7936d64f v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/videodev 0x8db11be1 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x91b1e615 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x96827c2a v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x9a1057c4 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x9b4f9933 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xa0761a68 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xa74678a0 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xac15cd7c v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xad1bf5bf v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videodev 0xc831b655 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xcb96bcf3 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/videodev 0xcf5644da video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xd31754b3 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xd4bf05c4 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0xd99b07bf v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xda6dc93f v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xdb3229be v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe12e18f8 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe3719f5c v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0xe734bd9c v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0xe83006ee v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xe9fd110f v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xee1538d2 v4l2_ctrl_del_event +EXPORT_SYMBOL drivers/media/video/videodev 0xeed6faf3 __video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xef9007ee v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xf0491eea video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xf09c0c86 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf4d3333c v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xf8b09388 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0xfd49abb0 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1d82051d videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x811f3d40 videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xb55532fd videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xbc3cfdb5 videocodec_detach +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0a8ae52b memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0bbfc02a memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x39a6f8b3 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4980d1e4 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x56998d49 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x69ecfd05 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7ff1031d memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x82c4c101 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x839cc976 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x9cabf1c5 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe7e6a6e7 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf1d7be27 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0ee58f6f mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x135166f0 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1c36c96c mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x22b81768 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x245627ee mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3d2a5c34 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x43b3d4f4 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4a5ed12d mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b96768f mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4cd9764c mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x62aa4d12 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x636a931d mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x65b9416c mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6fd111c4 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x787a6ba4 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7a9e46f4 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x907d63fc mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9cb20c0a mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9f219ef7 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa42dc374 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa6a394eb mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb41bde4c mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbf64d3d6 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xca269ece mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd124a687 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xef613596 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfa6e0709 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfe9c328a mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfff841a8 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x15caf2d4 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1879c0bb mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2f428905 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3644a545 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4834eee0 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4a7177b0 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x585527f8 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6232de64 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x68b9aae5 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6918f95d mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x79d8d46a mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8196a66e mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x824f0fc2 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x896cc52d mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8b6d7ac9 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9a7269b3 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa521d62e mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xac6a8306 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xad6fa27f mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc0f9c37c mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc2c87cfd mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd88283cf mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd8df8966 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xddbc41d8 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe2e82797 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf348f30f mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf4524137 mptscsih_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x076c23e7 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2670c271 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x32a08603 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4f7f874c i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x51c901fa i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5b8fcf34 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x655449e7 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x71ef10b4 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8f223a79 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa0ebfc34 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa13bcfcb i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa327f9d1 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbeed2339 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc67567a8 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc7955c5c i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xccdee908 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xcf0bcaf8 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd0d838da i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x66204660 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xd668749c pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0a0f0fa1 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19f1f7a8 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x304d2b09 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x648f3e82 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7c8289a3 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x81e0f888 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x908760bc mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9bc42b70 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa83c26ee mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xad06449f mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb3dae053 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc60a9247 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfdc5799c mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/tps6105x 0x04e075c5 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x45673112 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0xfbcf95b3 tps6105x_mask_and_set +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/misc/ad525x_dpot 0x4148482d ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xf1ad9c20 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0xeafaf244 altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x06b53e3d c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x6d864a84 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x154188e9 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x7b50fd87 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x17260fd9 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x25d6a6a9 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x2708231e tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x7dab90e0 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x9db802be tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xa1ff4ecc tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xa616dd5b tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xbdfedc67 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xc310b986 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xe98dc4e4 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xee782320 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xf353bafa tifm_alloc_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xfeceb15e mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x64eb360a cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x6c158fe9 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xe4bf903e cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x454d49f6 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x4f6b15c0 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb637d15d map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xbc7c2002 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x83eff3ba mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xc7b4ff8b lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x194c4478 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0xb6807e33 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0xd2a5ba7e mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x0c8ddb5f nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x13db425e nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x342a8adc nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x628420ea nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x6f7c48cd nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x96839b05 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf7a6e3dd nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x208aa17e nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x76f4354d nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xddcbfe11 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x193750db nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x92088cc8 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x179e59e0 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x481aef78 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xc5e70dbc onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xea1eba6e onenand_scan_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2da10ff8 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3f9b157c alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x47d0f9bf arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x53aa1ff2 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x79abe7af arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb1a0ef5f arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb3100b8c arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb5d2620e arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdc2c3433 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfb34aa9e arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x17430749 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x89e4dfdf com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xa5acae79 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00feaf11 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x12c43ded ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4f2134a2 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x561f1188 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x61b9d604 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fa7f00b __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa1b4a4e9 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xb2f0c38d ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xce0f7a11 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xfe576e9d ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x27a1d440 eip_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x32dbe470 eip_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x46948eea eip_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x517db7b2 eip_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x54e28f5b __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x5a4e9a1c NS8390p_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x73da9940 eip_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x903cee1e eip_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x99c03fd7 eip_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xb8603c00 eip_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xbad0468f eip_get_stats +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0xc9576811 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0x5ceedd32 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x02f76d22 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4703566c t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5992e0bc cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x686ae84e cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x75570d30 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x76a11447 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x866b586a t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8fff292b dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x90e18653 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x94a2b121 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa6aac2fb cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaa30a0a2 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc9b9c239 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcdc3f0f1 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xea7f8798 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf8e2f850 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf9432b32 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x028ce0cc cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06a1a06e cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1ff50d1a cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c3719fd cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c9034ea cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b78aa04 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5e8e2a45 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x680d264f cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7034b7c7 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x780aa502 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7ceaea43 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8fbb484d cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa1b3c061 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbb9cd3b3 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbd4f18f3 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc0b71a01 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeb28c104 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0040c956 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa689eb5d mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda6b3df6 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x41e9f8fd hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xac6d9b6a hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xaea1686a hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd1d67710 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe22fc8a1 hdlcdrv_register +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1c6374e2 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x31079cdb irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4d9d355b sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4e41a954 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5bac7ee9 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x959011bb sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb3e722d9 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc69437bf sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd2b68fd1 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdc0fe7a7 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x191dc7e4 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xd29e7d8b free_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp/pppox 0x2030f8b2 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x9746c1d6 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x9f2089b2 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0xfb457251 sungem_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x792a0fa3 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x81283e4e tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x859df36e tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x8ae3a4c2 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa99ffafa tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793 tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x087feb10 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1eab00d9 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x297844b9 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2c1581d6 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5b219025 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x621723e1 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x656773a1 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8609734f hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcbd43c31 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd93c0d13 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xeb53c349 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x1e4c9f6c z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x231cf3d7 z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x34bd7c87 z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x6c6b3f91 z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x722a3425 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0x7391857f z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x777e12da z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x7e66d985 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0x964b0b1c z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xa838eeb9 z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0xaa6d9c9f z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0xb0ef2c7e z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xcfc88160 z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xd4ffebf0 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xfc32f645 z8530_nop +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xf4409731 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x11367961 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x3a1a51b5 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x97c7c50a reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0025e037 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0219a8e2 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x14931389 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x265a888d ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4dc32e1f ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6a91e54b ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x87ff4652 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe2229048 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xffdab7b9 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x029d5968 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb08c4a57 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc9c59e98 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd815cba7 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00810ce4 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02e85d5e ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0577d1f2 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07c8fe3c ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f3ff09f ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f42af04 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11ed4f13 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1279b595 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x140a790d ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x189805f5 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b10aaf9 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2288748a ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22d2a2ff ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x238282a8 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c80f8ea ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x30e0576c ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x368f43bf ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3fddbd22 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x484846ed ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a977b37 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4cba6234 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5360442f ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x543a679d ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5702f801 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x58fe5b62 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5caac5ec ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x679a8a6a ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6857e299 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x685c7a03 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68a57972 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71dc89b5 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71ee366e ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x726387d1 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x746ae1a6 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74bdfbc0 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x772454e6 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77e50cc3 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x861c700f ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x869bd6b8 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x86de4c0e ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x890bbc07 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89d2b08e ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a5f38ec ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c46e2d1 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ea8a904 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x905f0273 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x928d9949 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97530d37 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x99c59805 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa103a8fc ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa461c6fb ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa74e2729 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa3a1e82 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac1e64e0 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac73ba6f ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad3b7fe9 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb091748a ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1feb2a0 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2d0e16d ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb31d6573 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb41afd56 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6be77d1 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9c9dabb ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba8a3357 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbb788cb ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0a91105 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc800d710 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xccb9754c ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce194525 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf980318 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd372cae5 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5f78cef ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd6dac3ef ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8cff2a4 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdadd7118 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd7687b7 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3972be5 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee3caac7 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf075f9d9 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf13102d2 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf24644e6 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf480fdbe ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9938980 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9f00c30 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc39d997 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfeb59c39 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff066fea ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff86eaad ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/atmel 0x598a480b stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xc9438fb1 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf588a041 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x04833485 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xfd195ac2 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1512c2a6 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2224a1ff brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6105b9ca brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x74d04fdf brcmu_pktfrombuf +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7abf3d10 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7dd79c5e brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb1c3507a brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb96f9fb2 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xcbdebb27 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe14442a0 brcmu_pkttotlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe2931df5 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xeacff61b brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xef9c68e2 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xfce29c93 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0752740d hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x16f628a1 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21b2ef50 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x255b2b37 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a9869f4 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4782f677 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5a8a0299 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5b46ad74 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6287b81b hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x64aefa77 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x755b2e66 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7586fc7b hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x78eb3ffc hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7d1aa56f hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa7b52ca8 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xae814a3d hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb11e38c7 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb8b13402 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc6aff9d9 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd1cd95ba hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd4b6aeb8 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdbbaf075 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdeca17a4 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe3fd1b48 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe7152194 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x08bb6d8f alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x130a8190 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1aa1a9e7 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1d4ae7e1 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2ca44e9c libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3388aec7 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x40faa1e5 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x44e9d9b2 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4c4f5ebd libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x55d591c2 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x55f3a99e libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x90c0a1b6 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x92163aa6 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9e05b5cf libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa8ac948e libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb4c7c491 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb61c86d4 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc04086de libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd7560c6f free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf19c1d6d libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf7bc5df7 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x033b5187 iwl_legacy_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x05098f15 iwl_legacy_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0572bc90 iwl_legacy_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x05e6bbb1 iwl_legacy_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0a03e36c iwl_legacy_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0c468a90 iwl_legacy_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1163214d iwl_legacy_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x13ce090c iwl_legacy_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x14d1d02f iwl_legacy_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1a0d1b0d iwl_legacy_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1bf4892b iwl_legacy_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1ddfe8c8 iwl_legacy_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2610f1bf iwl_legacy_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2b016bc7 iwl_legacy_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2df0e508 iwl_legacy_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2e767eaa iwl_legacy_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2e8a48eb iwl_legacy_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2e9e4ae6 iwl_legacy_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x32492a84 iwl_legacy_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3ac3ba7c iwl_legacy_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3ae772b5 iwl_legacy_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3e6d5631 iwl_legacy_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x41cbbe15 iwl_legacy_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4345b736 iwl_legacy_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4a446ec9 iwl_legacy_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4a6ea072 iwl_legacy_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4afeb94c iwl_legacy_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4c1f6fa5 iwl_legacy_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4f94030c iwl_legacy_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x51f38ad8 iwl_legacy_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x52120fac iwl_legacy_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5664a32d iwl_legacy_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x56d36d4b iwl_legacy_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x58874758 iwl_legacy_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5b22d09b iwl_legacy_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5ba7950c iwl_legacy_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5bbd0092 iwl_legacy_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x616c5b84 iwl_legacy_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0 iwlegacy_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x679b30e7 iwl_legacy_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x697157f7 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x70542d1f iwl_legacy_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7075cb2a iwl_legacy_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7532bfe3 iwl_legacy_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x759d2f63 iwl_legacy_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x76a51997 iwl_legacy_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7b4eb5cc iwl_legacy_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7d634e28 iwl_legacy_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7e5ba9c8 iwl_legacy_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x845243ce iwl_legacy_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8921edf8 iwl_legacy_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592 iwl_legacy_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d746542 iwl_legacy_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8ecfa19f iwl_legacy_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x923d001b iwl_legacy_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x98b49c24 iwl_legacy_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9a2e23f6 iwl_legacy_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9d36777e iwl_legacy_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9df1275f iwl_legacy_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9ef03c18 iwl_legacy_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9f093eb7 iwl_legacy_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa3a2743c iwl_legacy_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2 iwl_legacy_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabe48768 iwl_legacy_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xae019207 iwlegacy_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xafd7f8e5 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb24eb305 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xba6a880d iwl_legacy_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbbb210d5 iwl_legacy_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc1273a19 iwl_legacy_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc191b79b iwl_legacy_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc3e7e3af iwl_legacy_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc72d1123 iwl_legacy_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xca7dd304 iwl_legacy_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcb0ee40d iwl_legacy_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcdf5558a iwl_legacy_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd0846e4a iwl_legacy_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd1989b0e iwl_legacy_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd3c468c1 iwl_legacy_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd541c4a5 iwl_legacy_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xda773816 iwl_legacy_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdc1b2104 iwl_legacy_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdcefe1ab iwl_legacy_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdd6f00ee iwl_legacy_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdd86f500 iwl_legacy_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdeec0a73 iwl_legacy_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe7d7c5fb iwl_legacy_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe946b982 iwl_legacy_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xef0aa540 iwl_legacy_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf461940d iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf976e67c iwl_legacy_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xff1c5227 iwl_legacy_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xff56e1d7 iwl_legacy_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x60faee03 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x61c5e32e __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x65489f9c __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x726d9621 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xb6c345da __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xcc312d73 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xd1d62dbf __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xd915418d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf7769239 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x012eb385 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x09a6b055 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x19cb6166 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x282f9178 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3c84f97f orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x437ac425 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5a90bc71 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x789d6065 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x89a4f703 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d0b87b4 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa44f9379 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xaac1fb1f orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc78bba2a alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc7b33a69 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd374746b orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xeccbfcdc free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf78bf7ec orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x092b9400 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1163ed35 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x16425bb4 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1c48ec74 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1f8402ed rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x30553078 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x30c7720f rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x36e6712a rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3bc09ad5 rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3c118db3 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3cb53b9e _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4a700f0c rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4eb88453 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x509793bc rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x53a403dd _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5d82483c rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x60c27aa5 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6e8180fc rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x72943006 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7aa5a46b rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7c012464 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7d9a6c05 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x823947c9 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x84bbb2b9 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8dc4110d rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x973c9c2b rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9ad200f4 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9d0267ff rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa2b8eb15 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa72b5b13 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa86b5c67 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa9a72aa6 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xacecc2dc rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb6295931 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc79fdf63 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd68ea84b rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe637db88 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xed8a1d66 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xeeb70dc5 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf1c23442 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf8d1cccd _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfffac7fa rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x05045e60 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x25f42e2b rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x286b2eda rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2bfdbdb1 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3686a339 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x437cdc32 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4f2198ab rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5a2f0c71 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5ba4f363 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x602b2ea5 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6c9bb0b1 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x71c1d120 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7a1660ba rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x86f49915 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8b53e70c rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb9870c6c efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb98c465b rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xbe04f263 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc33efb29 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xdfab13fc rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe32af9a3 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf8a08780 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/parport/parport 0x0167a29b parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x078778dc parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x0d7c0a6f parport_release +EXPORT_SYMBOL drivers/parport/parport 0x1429961e parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x1e86d17d parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x2b42d10c parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x2c810e29 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x37d2baba parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x4bd78299 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x57361df8 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x579c6e5c parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x5bb11862 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x5bf09500 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x6dc34105 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x7f0e661f parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x8c8644e3 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x96b9ac9d parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xa4c7a6f1 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xa658a231 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xab3dc4e7 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xaf395aa0 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xb6b85262 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xb91f2388 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xc2e5f630 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xcd4287da parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xce092295 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xd0c90d38 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xd122676a parport_read +EXPORT_SYMBOL drivers/parport/parport 0xea0f718f parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xf2b6f596 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport_pc 0x20369ea7 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x275f3d4b parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1055a23b pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x163c5ce3 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x28ed8f6c pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2e91b7ab pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x34e5c714 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3d793b82 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4f0e48d6 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x57332891 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x594adf10 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5b1f7466 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x683bed45 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x886eba07 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9e4933fc pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa21b4bbd pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xae400a20 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb3339d92 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcf3a662e pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xda9981e6 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdaf90da9 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x157d1292 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x431f6af4 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8190756e pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x906bffef pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x979b452c pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaa2a8638 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb4b61edf pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd2a8bc45 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd46cff44 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdccf6b87 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xea9b1995 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xc5316d73 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xddcd8208 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x7958bdbd pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xa713d28e pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xc8b73a5a pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xe03e9888 pps_register_source +EXPORT_SYMBOL drivers/scsi/53c700 0x0acfd731 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0x3d9cece0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0xfe1c20b3 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x016a9520 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1251b0c8 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5b516967 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6cc37cc7 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7b29f35f fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x87ad4c94 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaade8090 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdf30c0a8 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xed90f109 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x055da4da fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0c178905 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0dcfb4b7 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x10c9d71d fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15fac098 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x18df2106 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3afb681e fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3edcbb33 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4415cd45 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x44358f3a fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4577b04b fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x52c1a377 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5ce13dab fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x629d4da7 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a124bdb fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7cb68d9d fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x830a14bd fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x84e6cb57 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a923f06 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e4ec2ce fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8f6f155c fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x97677a12 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x97f08edf fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ae121b7 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa08cedbf fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa5393a59 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa9066721 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xad26392f fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae0e2312 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb2196f5a fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb35b27d7 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbcc13899 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbdc781c9 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3be323c fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc439388e fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc52ae298 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7e90458 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc820c661 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcd417696 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcfc61c40 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd41bba33 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd7fd516c fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0650e67 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe065a7b7 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6233660 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe67b68c7 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6a8b55a fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf4710888 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf9930d3e fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfbaf818d fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x37c1715b mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x03018a8e osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x04859ff3 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x13f55636 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x258b9c1f osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x27eba807 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x29c16ebe osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f104b5e osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x31522289 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3448c7fd osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x36a13496 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3c8d51ce osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3dc4e54c osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3dc81604 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x43e74e35 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4a206125 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4f4e451c osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x54323906 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x56e9a636 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5a6258af osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x685f0fef osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x74ee4b67 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x74f27ff5 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x78c833a7 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x850fd830 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8c223d33 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8e799f7a osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9ba65849 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa66df41b osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xce420f5b osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcecbd472 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcf6b74d4 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe2906f72 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe60722b9 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe7c98caa osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xef7d9b64 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf5f20fe9 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/osd 0x260863d1 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x39497ac8 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7a005869 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc372aa6c osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xdbd2ff32 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xefd1671e osduld_register_test +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x20689014 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x2949c871 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x700b1d61 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x74e09320 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x7d1a26dc qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa706d7f6 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x50473294 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x8040f38f raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xe1d421fc raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x09514b2e fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x10d83dbe fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5a21c210 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6ac3fea4 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x940f8392 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb5c34016 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbc43fdc9 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc2046372 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcd90d27d fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd9f134da fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xeec7eb33 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf1b378fd scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf5cd70fa fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00418fda sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x031b82a5 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x034494a4 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1187c27f scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x165fa2be sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1e129388 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x26a83913 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x33c020d3 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3579def5 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3a7eb761 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x44513e15 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4ee92e45 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6d5bec34 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x705bd541 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x98d977c8 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa9182a5b sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xac2f61c2 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xae973807 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb069fdd1 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd3d4c28c sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd53fb108 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd2b2a89 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeb8d8ac9 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xec8fdcd1 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf60ac91a sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf67845fe sas_port_add_phy +EXPORT_SYMBOL drivers/ssb/ssb 0x1988757d ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x2ce6fff0 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x3401cc4f __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x3aaad0b4 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x459227cc ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x49422c4e ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x679a632d ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x6b77c711 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x6f677d51 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x8895de22 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xa0fedec2 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xa2c29c3b ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xaab593b8 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xc02c283d ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc6e89e77 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xc9e8e6dc ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xce4e7b26 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd5d98137 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xda9e2987 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xeb887863 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xf91b2cf4 ssb_device_disable +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2363c95d comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2535fd2c comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x3ac47004 comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4bc4d04e comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x6376589f comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9ac3bc88 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9ca19d2e comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa59c2069 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa5dcc9eb comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xb78159dc comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc15c715c comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe3de0e21 comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xeaaf7616 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xfb212fc9 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xfcc414e9 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x0d561af7 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x9d86429f subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x9d98e769 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xf8b4e7a2 subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x41431f64 cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x5831b847 cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xb979ae12 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x06ed5c59 mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1168e001 mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x11877c36 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2d1c2e53 mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x315ff7a2 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x46054c73 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x49ea01ee mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x55eb0773 mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5bef3d2e mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5c67f61c mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x61ddd9c0 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6254b9a5 mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x66ddc7e7 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7b16c3f9 mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x92170fb7 mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa7bd925b mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa7e1c3ce mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd195172d mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd920a2e7 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdbd504bc mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x1b621ca7 subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x5ada0d25 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xde9bece2 subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xeb2a8721 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x1f77e883 comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x201df66b comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x38a8d1d4 comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x43237e68 comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x590b6d80 comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xae506f0c comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xfda16ef8 comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x1d8b0782 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x1fbc1a38 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x57b3ac40 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xdb759246 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0539434e iio_buffer_show_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1fa2437e iio_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2cdd003c iio_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3f122258 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4a3c04aa iio_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4b4b8f01 iio_buffer_read_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4b842512 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4c919013 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x68008e1e iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x70505e23 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x70beab5f iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7436cf11 iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x90f4bfab iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x968d999b iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x99c8fc29 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9df2c259 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa29a110e iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xafa977e4 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb95bec38 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc6c63702 iio_buffer_store_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd1382cf0 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf5bcac77 iio_buffer_write_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf5cf0edd iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf726c93b iio_buffer_read_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfce9ded1 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x6d944788 kfifo_access_funcs +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xb686c01c iio_kfifo_allocate +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xc5938aab iio_kfifo_free +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x849fb87a ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xb6707693 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0ce61e32 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xd595e507 ring_sw_access_funcs +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xee06f682 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x9419931d cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x2dffd486 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x80890230 go7007_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x8821f4a3 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xacb7cb0b go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc4d2997d go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc7008012 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xccf87681 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xd38ac784 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xf45e969a go7007_snd_remove +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x09f7e100 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0e238bd7 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10705978 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1947426d Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x194880ab ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1f145618 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x217151b6 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x21eb2591 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27e49c76 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2abe0b41 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x30ce5aee ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32c3ec04 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3bb38f4d DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x40ed5a31 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x423609ea ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a82c711 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4aa0dcbf ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5dc3aac2 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x61bed05d ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x62678116 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6e062f09 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x74b8fd0a ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7635b7a2 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x793625e8 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7bfdeeeb ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d03cdaf ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e4b7375 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8599aac1 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8726b91b ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b1a2440 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9e2b4d49 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa0e9e7ec ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa780659b Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa9a37669 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa9c897c7 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xac4cbd24 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xacb90236 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb213564 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc1f99199 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd70e777 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfb4ee65 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd0984257 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd1b9dd0e ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd2f99148 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd7f5d6aa ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe25f8bf3 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe753cc11 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe98ce085 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed3afa67 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf23c0cf4 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf6f4838e ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf98547e5 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa1eb33c ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xffb8b96a ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x0228c579 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x07185bcc vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x1e106b59 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x21e7cb35 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x2db78384 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0x2e490e49 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x2f90372f vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x41862ad4 vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x4a6bedb0 vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x5da27705 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x65c908c8 vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x90695906 vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x97b89295 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0xa5743982 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xbea86ee2 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xca3b1488 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xd5b9df70 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xda6c78e4 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xdc1af7ba vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xe7b8e60d vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/target/target_core_mod 0x0169d28e core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0336ebcf core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x038a9093 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x04f156c5 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x0a638643 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x0c4a7378 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x11d48329 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x1282f4ff core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x137d13ad transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x19f8665e iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x1cb6168a transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x21a6330d transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x23b4bfe5 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0x2c3975f2 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x30f89acd transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x32ab336b fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x333e5e99 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x3ad76958 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x3d75ad00 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x4232b3d6 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0x48dedd42 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x55799cd7 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x593c0764 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x59be9134 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x5a059cfa transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c1e5380 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x5dbcc9d4 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e69f77a transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x62cf63e6 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x65c38d9d target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x67be571e target_splice_sess_cmd_list +EXPORT_SYMBOL drivers/target/target_core_mod 0x69354b97 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x736bf1b4 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x7467000b target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x77c8fb00 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x7bf363e0 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7e1ad878 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x9082a264 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x928b0111 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x9c42e12d iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x9d3b5566 transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xa0a616cc sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xa33974b7 transport_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa25f7ab fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa99cf37 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xad364e2a transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xc2dd0609 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xc4a35c16 target_get_task_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xc689e47d transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc9f745f0 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb041490 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xcbca4ec7 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd2b2740b core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xdbfac995 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xe0edd8a9 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf093a311 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf0cbe537 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf273a0a2 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf3eb4c87 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xf729b970 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9e58192 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/telephony/ixj 0x2a56a54c ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x6de8f6dc phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xb45dbab5 phone_register_device +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xf862ce76 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0f24b785 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x12129923 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x13f59c33 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3e05d2fc usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5a38cc76 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x64c6a6dd usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x72ca400b usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8e3bc007 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x90732fae usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x95ddcdb7 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9acac668 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xba85da2a usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd3058375 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd4b6cc2f usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf3b15249 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x6071ede2 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xd41fb1eb usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7323a6d5 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xd54db5bc lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x4b5417ac cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x78ead886 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x816ab89e display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xdd471963 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x9aa9f421 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xbcdd304c matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc5bde9e6 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6f707e7c matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x769df6ce DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xa22c083c matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xdeeabd67 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x67eb2bf0 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x303e2e20 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x5d057a59 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x928ed164 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd5f303ea matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xe6a7eb3d matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x57244512 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xe1cae23c matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x30000c0e matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x33e33207 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x5309657d matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x7c3a09a6 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe78c0693 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x08399f9e mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0xb6a0590f video_output_register +EXPORT_SYMBOL drivers/video/output 0xe57ae791 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d7e171 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x143e8b3c svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x549b03a1 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x6a116529 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x6cc42f5f svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x9562cdb9 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x976f77f3 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf9a2bd4a svga_tileblit +EXPORT_SYMBOL drivers/video/syscopyarea 0x5f5eca06 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x90515e40 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xda2abae0 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x0c4b4d44 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x3a83ba96 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x48d4e191 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xaf6ae20f w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd5765c7d w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe8147d4c w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x1c44384f w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xb15ae9fb w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xdae6187f w1_ds2780_io_nolock +EXPORT_SYMBOL drivers/w1/wire 0x0514a749 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x85e0e12e w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x87b20e50 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x8bee0ac1 w1_add_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x080b70c3 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x32546054 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x33c856db configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x354100c3 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x63ad77a0 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x70410f6d config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x93c0c7bd config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xac8a910d config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xafa43599 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xaff44656 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xd591a95e configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xde7bba81 configfs_undepend_item +EXPORT_SYMBOL fs/exofs/libore 0x011500ad ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x2b23e90e ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x391d68f9 ore_create +EXPORT_SYMBOL fs/exofs/libore 0x3edfca29 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x42bd4a07 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x47969cd5 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xa6c8f5cb ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0xb8a2be5d ore_remove +EXPORT_SYMBOL fs/exofs/libore 0xc9f89c96 ore_write +EXPORT_SYMBOL fs/exofs/libore 0xd72fcf1e ore_read +EXPORT_SYMBOL fs/exofs/libore 0xdfeda2e9 ore_put_io_state +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x1109b06f __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x17a0aac1 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x1ae30e94 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x1c11f35b fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x1dc4105a __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x2228566a __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x29305256 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x2df72819 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x2ea14e05 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4322d979 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x4616e1c4 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x4ff04e2d __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x50b1d620 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x54037c49 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x60c14a06 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x6716da4f fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x6c1c0ce7 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x776cfe69 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x8136b583 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x9cddaea1 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xaf89a763 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb024edf4 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xb6bb5767 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xc80d3d49 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xc8213fe4 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xe4f84c15 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xf889dae0 __fscache_attr_changed +EXPORT_SYMBOL fs/nfsd/nfsd 0x0c8d6829 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xcbb738be nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x05fa8f8d qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x34396bf9 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x42593115 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xd1d794ba qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xfafc6d4c qtree_release_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0b32de39 lc_del +EXPORT_SYMBOL lib/lru_cache 0x210f1ee2 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x2646306c lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x2b2226bb lc_get +EXPORT_SYMBOL lib/lru_cache 0x529f72c2 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x5e941862 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x6b3233cc lc_set +EXPORT_SYMBOL lib/lru_cache 0xb2cd4f4d lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xbbc51b84 lc_create +EXPORT_SYMBOL lib/lru_cache 0xd146d9a5 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xd3bb6860 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0xdf43d805 lc_changed +EXPORT_SYMBOL lib/lru_cache 0xe5aa47bc lc_put +EXPORT_SYMBOL lib/lru_cache 0xf933aa17 lc_find +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x067fbcf1 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x5191be65 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0b54878d p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x158df29a p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x1d0da856 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x28dfe6dc p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x341915ab p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3609aaa0 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x40d3e4df v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x471fa54c p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x4763bd12 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x4d6fb9f1 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x59b90bdf p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x5bc8f479 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x60953bc9 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x65648e11 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x66bebc5b p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x67852771 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x6b86e030 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x6c019661 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7154183a p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x7a940df8 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x84cff10e p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x89d03574 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x934f4d56 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x96b7b9f5 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9c2051db p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa11209f6 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xa5aa3586 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xadf8b545 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xb00f56d0 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xb4a67b30 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xbc8e6698 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xc06a6eef p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xd1133f2b p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xd8eda45e p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xd972ad05 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xd978a87c p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xdad1464b p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe7c65077 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xec50128f p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf738d39f p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xf793e3b8 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xf926be38 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x0df8685e aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x1e130d85 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x8e55f40c alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xa2f3cb47 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x06698ee8 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x0d9a763e atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x2c585a91 atm_charge +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x6e199d6c atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x82a78c2e atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x82cd48ba atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x93136f41 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xc843777f atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xdc8615bb vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xe28e549e deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xea39ac5e register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf095098d vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xf4977cdd atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xff5bb69f atm_proc_root +EXPORT_SYMBOL net/ax25/ax25 0x005e32f5 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x1792dfec ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x22f40f66 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2521a75a ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x39fa7423 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x55939ae9 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x78c8c570 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc45d2dc3 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdf001519 ax25_find_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x041656ac bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0598b59e hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x06447248 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x135e336f bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1ab4eaf1 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x21ccb5ff bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2352fa28 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39425a08 hci_le_ltk_reply +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3dba9228 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3dc532ec hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4749d616 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289 bt_printk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x56abf9d4 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e382b50 hci_le_start_enc +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5f077153 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x60067f12 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x61454214 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x644be344 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6a3b5512 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x706ff6a9 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c95457e bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7d7bc0b6 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x84efda15 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8954a253 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x89716410 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8971b3a4 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8ddbb378 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96ba3814 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9c3fdd73 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9e245a59 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa1fe5f86 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb63c5c31 hci_le_conn_update +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbbff0fb1 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbd90d903 hci_find_ltk +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2f24470 hci_find_link_key_type +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcd7b593b hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe0f682b8 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe2a77f80 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf34b1e11 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf50b44b4 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfbe784b3 hci_conn_check_link_mode +EXPORT_SYMBOL net/bridge/bridge 0xa7c8755c br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x794a0a4f ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x84c18279 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9fe01e11 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x35b49017 caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x3814eeaf caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x504da5e8 cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x5807d88d caif_free_client +EXPORT_SYMBOL net/caif/caif 0x63e9812a cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x6ec682b7 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x88e95649 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xe3c301e6 get_cfcnfg +EXPORT_SYMBOL net/can/can 0x02d8ac64 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x0dab5957 can_rx_register +EXPORT_SYMBOL net/can/can 0x1908b76f can_ioctl +EXPORT_SYMBOL net/can/can 0x9d107183 can_proto_register +EXPORT_SYMBOL net/can/can 0xeecc7d34 can_proto_unregister +EXPORT_SYMBOL net/can/can 0xf06ecb9d can_send +EXPORT_SYMBOL net/ceph/libceph 0x0187f632 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x0253142b ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x0783a1c1 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x08db8759 ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0e3d0216 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x15220199 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x15847097 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x2122d841 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x28499b3c ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x2985007a ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2994a2ca ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2acd4b27 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x4418d3bd ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x48bd5373 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x4c5c76e5 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x50344edf ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6654e624 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x685398c1 ceph_osdc_wait_event +EXPORT_SYMBOL net/ceph/libceph 0x6a2cea68 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x72020d9e ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x732c35a2 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x74daee66 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x78435bab ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x78b64a2e ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x8897d136 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x8d884dd5 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x95d5776e ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x9b97a2cd ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x9d444f11 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x9e681cb7 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa04decda ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xa166b12b ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xa33c6a1f ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa4849eae ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xa7d5c2c8 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb14c75dd ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0xb31fa977 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xba95d3cb ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xbb032915 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xc11d9bb0 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xccb0a037 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xcf9d049d ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xd01b645a ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xd06de9b5 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xd0928c33 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xdb0f5d53 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xdf1700f5 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xe137b0a8 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xe2462f12 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xe2fd93c5 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xe3514bfd ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xe89a909c ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xf2ace98f ceph_alloc_page_vector +EXPORT_SYMBOL net/ieee802154/ieee802154 0x343cf9ba ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3460a717 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x34ac99fc wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3cb991f1 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4260f93e ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x63bc920f wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x683da629 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x93b4c3aa ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa0096680 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb005a647 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb0e0960d wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf193b972 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xff5c2287 wpan_phy_find +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x787cdf92 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa2becba2 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xf9d284ee arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x17d79fe0 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x2b6ff5d0 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x823d0a60 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2398ca93 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x43f254d2 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x609bf2a5 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7bc031e5 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa9855987 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd2d191f7 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe41d6036 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x223e68db xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x396862bd xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x08e056cc ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x18195c70 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4bf7929d ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xd62d8729 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x8640fa30 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xa91274d3 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9969454f xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xb7e1e37a xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x024f217d ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x072548a6 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2a999761 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x52bcf4d0 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6169cfae ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc27b93fd ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcf68dd31 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe951e3de ircomm_control_request +EXPORT_SYMBOL net/irda/irda 0x01dbeb0e irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x070a9b18 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0bab6037 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x138d5836 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23a2eee7 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x26bab844 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x30c9cde7 irlap_close +EXPORT_SYMBOL net/irda/irda 0x359de411 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3b0a2ab6 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x3b9bdefe irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x416ed0c5 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x428321fa hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x4453b950 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x468accd1 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x48d17824 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x4b663456 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x501a070c iriap_close +EXPORT_SYMBOL net/irda/irda 0x5210788d irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x55cfefbc irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x57baca97 iriap_open +EXPORT_SYMBOL net/irda/irda 0x5dc03921 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x5f754f08 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x62acf28c irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x648c7478 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x656fdd83 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x70c5278c proc_irda +EXPORT_SYMBOL net/irda/irda 0x711addc1 irlap_open +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7d54adaf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x7ff509a2 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x8bd20e5f irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x8cd99be0 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x909be5d0 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9e326eb3 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xa370c681 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xa9017cea irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xad15f1f0 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0be190a alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xc0bee29c hashbin_new +EXPORT_SYMBOL net/irda/irda 0xc22949ff irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xc77cf860 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xcf855bd0 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe01fbe33 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/l2tp/l2tp_core 0x79b7238c l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x085a75f1 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x3940edde lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x4b072e95 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x600a3633 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x7c928cb3 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xadf5b209 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xbcc05062 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xe27e4b9a lapb_register +EXPORT_SYMBOL net/mac80211/mac80211 0x01b051e1 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x032cfd8d ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x07f9019f ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x0af96fc9 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x0c637690 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x17217a33 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x1949694c ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x1a9ce0f5 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1c0d3ee4 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x1c9992ab ieee80211_get_operstate +EXPORT_SYMBOL net/mac80211/mac80211 0x22ea854a ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x2950ba17 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x2d743ac5 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x31345cc6 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x333c3210 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89 ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x4060b436 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x4260c017 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x43127351 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x46556fd6 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x49bee94b ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4c57a20a ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5d64ede4 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x63caa554 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71 ieee80211_sta_eosp_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x664a3ba9 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x6c737cf0 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x6f472edc __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x73669f0d ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x766594b2 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x82297f2f ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x8c0f7310 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x90c3be17 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x9337674e ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x9b4a59b3 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa03640b1 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xa9d5f944 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaa2ab377 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xac2650b3 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xafd6b974 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xb013669b ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xb0b1db73 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb296286a ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xbce6ef53 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xbee8e9fa ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc06602ac ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xc1c1d82c ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc8178081 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xcf7c91e2 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xddc9a36d __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xdfd85633 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0xe09462b9 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xe46ccee7 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0xeba14d72 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xec9d8df3 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xf834c9d9 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4 ieee80211_send_bar +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x06a1e0f7 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x09a3501c ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x25fe2ffc ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x32a30030 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x38525c42 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x39b1e219 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4cee79c6 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5721b571 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x58b425c7 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x68319cfe register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa4661a41 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc50ca439 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdb4ce8f2 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdebaa2e1 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x66f82397 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8a728ac4 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xe3944b26 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xcaaac27e nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x037d94c5 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x1ad2f236 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x39ec074d xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4c561f2c xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x53047b0d xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x711db8ad xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x746c7170 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xab63a4ad xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xd60af500 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xfcb2fe2e xt_find_target +EXPORT_SYMBOL net/nfc/nci/nci 0x0468fa65 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x982b079d nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xaf03088a nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xcb482007 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xe8b44332 nci_free_device +EXPORT_SYMBOL net/nfc/nfc 0x246b7815 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e nfc_printk +EXPORT_SYMBOL net/nfc/nfc 0x61167ab3 nfc_alloc_skb +EXPORT_SYMBOL net/nfc/nfc 0x6b6d9dcf nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x872c647c nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x8b4a041e nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x8fdc38c5 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x9729bbad nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xfc264bcb nfc_targets_found +EXPORT_SYMBOL net/phonet/phonet 0x235722f8 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x2b42b6d7 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x52f990ff phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x5ca17a8d phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x7638b975 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x9508f2fe phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x9ea68fa4 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xcae136fb pn_sock_get_port +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x12d1acbb rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x48368164 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7ca5579a rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x87b91350 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9951efd3 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa1e75d16 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa2937af1 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa81c5ee5 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa89f03b0 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb9cbfa60 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd820485e rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe903a545 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xecc9fd1a rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfdf9292b rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfe2f760e rxrpc_kernel_free_skb +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb8a75a41 svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x50e20782 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x36d9ce60 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x66617479 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0fafa920 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86 ieee802_11_parse_elems_crc +EXPORT_SYMBOL net/wireless/cfg80211 0x14707c6f cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x1a367781 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x1c723827 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x27c79da4 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x287d7ede __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x29dcd79b cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x2cb184c5 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x2ff73e39 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x3422bac4 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x39afeeb7 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x3ae28cfa cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x3e9669dc cfg80211_testmode_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x3f85457e wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x4560554e __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x4714eb1d __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x492d1769 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x4b8c0ed9 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x4be220c4 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x589eac0c cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x5cf14158 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x5d47086a cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x5e137c61 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6d2f682e ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x711455bd cfg80211_testmode_event +EXPORT_SYMBOL net/wireless/cfg80211 0x73089e6d cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x73237cf2 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0x7781f10f cfg80211_testmode_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x7edb2192 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x804d4c1a cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x8543fa37 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x8ab79b69 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x8b3a0ce0 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x8beaf2a4 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x8e55809f cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xabc9866c wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xae1a9806 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xafdc69a5 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xb37a75bf wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xba60c05a cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xbc65664d __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xbf93dbe7 cfg80211_testmode_reply +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc9b641b9 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xce2904e3 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xcf8987f6 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xd1361500 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xd46481d4 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xd57e4b68 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0xd704c89b cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xd8ed649f cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xd92845c5 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xdbaef9a5 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xed87e337 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xfb2d0c2d cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xfc87a94b cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x1c9194f5 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x26249fec lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x98e1deae lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xccec50c0 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe4f9e047 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xf94d8120 lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x4583091b ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x5f817696 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 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 0x82abd4b8 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb69c1708 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 0xbabdf706 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xf61913bf snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb50eb37d snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xf0572756 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2b51b084 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x350963b4 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7f62d029 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x83914b9a snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x92ee6bb0 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x9e7d3f0f snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbc141dfc snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf2bf1549 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xd2b2a237 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x003e8697 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x0771928e snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x079f6a6e snd_device_register +EXPORT_SYMBOL sound/core/snd 0x0c1a7f90 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x0e6707ed snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x0f1b7581 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x1368922f snd_card_create +EXPORT_SYMBOL sound/core/snd 0x1446e19a snd_ctl_free_one +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 0x1f1359c4 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x22bf74a9 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x25cd400a snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x30c018a3 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x34d75013 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x35a1fc36 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3dfad83f snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x3edd3f9c snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x4989dbd4 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x5411f12c snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x55ce896f snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x5aacc96a snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x61246ead snd_info_register +EXPORT_SYMBOL sound/core/snd 0x703b1bd2 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x86dd78c5 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8eaaa0fa snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x93fe9079 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x9555026f snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x9977cd3a snd_device_free +EXPORT_SYMBOL sound/core/snd 0x9a2bed08 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa117faf6 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xa7966ca3 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xaf86acc3 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb9862639 snd_cards +EXPORT_SYMBOL sound/core/snd 0xc2cd3a9a snd_card_register +EXPORT_SYMBOL sound/core/snd 0xc31a162b snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xc4479b62 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xc76a6a40 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd29b21b9 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xd4a5431f snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xd5b3b890 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xd96ca1b8 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xd9eaebe8 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0xdab7cbb5 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xdf0e23a5 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xe5b812ad snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xe689fd8e snd_card_unref +EXPORT_SYMBOL sound/core/snd 0xecfc0ec9 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xefaab281 snd_component_add +EXPORT_SYMBOL sound/core/snd 0xf425f2cb snd_ctl_replace +EXPORT_SYMBOL sound/core/snd-hwdep 0x386c9b3e snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x662914af snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x99992318 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb15add0c snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb18a421e snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xe8531422 snd_dma_free_pages +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 0x0dcc5a86 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x0e8d8809 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x14d23bd9 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x168288f1 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x195839fa snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x1afd45b9 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x1c439324 snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x3900831e snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3aa664ac snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x43d4d96d snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f448a3c snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5d031b00 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x616ea80c snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x6177d5e9 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x639dbdad snd_pcm_sgbuf_ops_page +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 0x68b18c01 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x6b596003 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x748c4ee4 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x80509562 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x8da8bb73 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x90f2945f snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x95a9b609 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xa0c3f756 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xa14f154f snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xa1cfad7e snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xa4fe81da snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xa5cd9b35 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa7b4687a snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xa9adc229 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xb505157a snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xb8b4c97c snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbc87df08 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xbdb05ab1 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd3b74365 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xd561b9b1 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xdb036b10 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xdbe7ce3a snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xdea0238f snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xe08e0b79 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0xe0a56d35 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe9b40f1c snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf810f653 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xf9a3d4f8 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xfbc51e49 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x04e6718b snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x16c3499f snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2441e368 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x32048721 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3282679b snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x431c5679 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4975593c snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4a376378 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x634cc8d8 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa7ce872f snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa7e5da92 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xab08383f snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc5f066d2 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd3e75edd snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdc9da2a2 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xed1d4c04 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf00a6323 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-timer 0x14c39e21 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x2a32402a snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x357920ac snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x546a0c28 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x5efcc045 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x5f59b9a0 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x64c0c2f1 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x8709a08b snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x897481bc snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x96c8b2b6 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xb97e91d3 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xc8fa16b7 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xe18c8bfc snd_timer_continue +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 0xf2194c7e snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x168f789a snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x407a3778 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4222bbfe snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4a87aeaa snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6ce087b9 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x79b92a2c snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9b44e075 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb5a4d54d snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xedc26488 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x1651960f snd_opl4_read +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x40cfd666 snd_opl4_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x9e5620a8 snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xc52ba6c2 snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xf7a0024b snd_opl4_write +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x05327e6d snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x062d7ca1 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x08630206 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x09187c2c snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1d89a1af snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3a06c5f5 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3aa9c605 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4cb5c020 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb4741f58 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1123b4fe cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1a6e8adc snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1f8aeb34 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x23e2a61c fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x30e3b3c8 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3a172b87 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4e9d49c8 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x516ef69f amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x546dd206 amdtp_out_stream_set_rate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5b7605bb amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6689b4d2 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x67670e07 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9cf9d41a fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa0f014cb cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xaa8b4460 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb26fe188 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb7be9fb9 amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbf1efe83 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd0e417f1 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdd74bc7a rcode_string +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe440cb2f fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe886f4e6 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xebfa65d1 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf0f7f507 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf3744c9a amdtp_out_stream_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x0af7ff5c snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x314c0f33 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x386d851f snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x3929e20d snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x743015ee snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xfdecfaeb snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x043106b6 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x3cc3665c snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4673cdf4 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x549f4ec1 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8513e92a snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf3322a48 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x50d0ca28 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x9ad97568 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xc1c44f30 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf1df7c03 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x51749e5e snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x7775f05c snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xa72c3db5 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xff8204b0 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x6260507b snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa04eac4e snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa0673da8 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xdecc38c3 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf1b26423 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2ecc3a46 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5e1a9014 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa63de4e9 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa85c14ef snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xab931ab3 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc405a6ad snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0x0980e773 snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0x2f8e84cb snd_tea6330t_detect +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x00c656d9 snd_es1688_create +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x02a3661d snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x18e773f2 snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xf31b3c7c snd_es1688_pcm +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xfa2d3872 snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x01047562 snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x012b1af3 snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x04bbb837 snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0bdc9357 snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1c1ce117 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x323b1133 snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x41bcfda4 snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x475e47f1 snd_gf1_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x47a38d81 snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4d0d08aa snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4df85960 snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4fb02cd3 snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5abd7c74 snd_gf1_poke +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5c760f52 snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x60391628 snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x68889c87 snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6be5639c snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7ed8fec8 snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x922c51dc snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x950b485d snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9d4d8109 snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9d9e0bf6 snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9dfad2ac snd_gus_initialize +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb0cb42ec snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc15a055a snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc98e1f7c snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe3e4da08 snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xed7ca120 snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xef178947 snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf85e53a1 snd_gus_dram_read +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfd8ffae6 snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x1607d062 snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x1ad943dd snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x29b63301 snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x3673188a snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x38247c23 snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x681fc39a snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x7a672253 snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x8897fa72 snd_msndmix_setup +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x94ed092d snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x955537f7 snd_msndmix_new +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xa54dc9b4 snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xfd379c3d snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xc1973b04 snd_aci_get_aci +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xf3767fe9 snd_aci_cmd +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0537940e snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x11c61a8a snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2e1f51e3 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x48a3281a snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x733a45d0 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x745efd29 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x83621d47 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xbcecf6f4 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd2cb4a71 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xedd826a5 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0x66412742 snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x6ac42b1a snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xb1343e10 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xd6457b0d snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x0e5aae9a snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x5b01e00b snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x8642244d snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x88226854 snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x06017b91 snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x2694e957 snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x745d58c7 snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x8405814e snd_emu8000_peek +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x8c8a33fa snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x938d1849 snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xa8f07dd2 snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb6599a34 snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xcc8d30b3 snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xebc5d0b6 snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xeda78e3f snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x19e5d438 snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x207e354d snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x59c33c9f snd_cs4236_ext_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7979ab78 snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7b0a6921 snd_wss_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7b202637 snd_wss_interrupt +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x833859db snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x97465151 snd_wss_mce_up +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xb1dc739b snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xb4d9cd33 snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xbca7f61b snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xbf388ce5 snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc780cd95 snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc95e140c snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd4d19a44 snd_wss_info_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd6cc8b61 snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xdbc20f44 snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xe259ee31 snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xfc58cc77 snd_wss_overrange +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xfdf4ec02 snd_wss_timer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x19a2476d snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1d1d31de snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2988b9c7 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3863d92a snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x38c8a9dd snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5fadb32b snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x67b1152c snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6fd4e6ad snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x70a882ce snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x88078c57 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8fac0a4b snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9cf39898 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xba67a626 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc4530822 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd66f054c snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe7f642c3 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xef060e5f snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xa56163c4 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1ad1d9e1 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1da2c5fe snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x58ad8cd3 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5cb20a6c snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9feaa904 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb05221c0 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe57dc638 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xec89c6b2 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xee281301 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x1d8a10f1 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x5adefa70 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xb2cabdd6 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xde7e7b51 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x17aefdb1 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1ff2c881 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x24d81793 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2d0055e7 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2e291943 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x33876b00 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x51ee081c oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x534f6eb6 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x74ce353d oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7ebbecd8 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x842577cd oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa1f808ce oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa595b76c oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb5ce062d oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc0e4d3a5 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc1bdfb69 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcc34c778 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcf83370d oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd4748283 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe6d34c6e oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf9dea20b oxygen_pci_resume +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x005b151d snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x3036eb81 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7187f3a4 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xa4140a34 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xdb7e37e5 snd_trident_stop_voice +EXPORT_SYMBOL sound/soundcore 0x38ae0eb3 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x48bf59db register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x4d669abe register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x8a622896 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xa69e5d16 sound_class +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xf472581e register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x174af6ac snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x2699b0d6 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x36bdce61 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4047550d snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4a49c88b 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 0xb3da198b snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0228cdc1 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x3ee0e43d __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x67281971 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7be44fc1 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbc0c3e7f snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc2d0c48e snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf123dc4c snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xff20a3b2 snd_util_mem_avail +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x29f87746 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x2eb99895 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x35c95b1b dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x86e5acf9 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa43471b6 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xcd64d9ac dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd55b290c dm_mem_cache_client_destroy +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00003429 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x00129f6e pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x00424894 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x007e9df7 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x007f7734 mca_device_status +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0084e86d unregister_shrinker +EXPORT_SYMBOL vmlinux 0x008a86eb cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x00b1b77f input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x00c690a2 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x00d4a3fd ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x0109ad1d __cleancache_flush_page +EXPORT_SYMBOL vmlinux 0x010e3e92 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x0117fcf4 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x01515e45 unlock_page +EXPORT_SYMBOL vmlinux 0x016b3184 __devm_release_region +EXPORT_SYMBOL vmlinux 0x01863208 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x0187c669 dst_destroy +EXPORT_SYMBOL vmlinux 0x018d303a find_get_page +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a92f46 filemap_fault +EXPORT_SYMBOL vmlinux 0x01b3c633 lock_fb_info +EXPORT_SYMBOL vmlinux 0x01cacce6 deactivate_super +EXPORT_SYMBOL vmlinux 0x01d04c04 uart_resume_port +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x023e7032 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x0251daa8 fget_raw +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x027cd508 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x027d93be ppp_unit_number +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x029691d4 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02b3d0d5 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x02b78135 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x02c5cde9 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02efcbbf block_commit_write +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034f9e73 param_ops_byte +EXPORT_SYMBOL vmlinux 0x0356009a bio_kmalloc +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037f32da __netdev_printk +EXPORT_SYMBOL vmlinux 0x03930bb0 security_inode_permission +EXPORT_SYMBOL vmlinux 0x03b580eb wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03f338e0 seq_path +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04024f25 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04557b16 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x046bbaa5 agp_backend_release +EXPORT_SYMBOL vmlinux 0x04708d4c __cleancache_flush_fs +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048c5317 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ddee7e kernel_connect +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x050e7037 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x05277791 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x052ba39a generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x0541a63a inet_sendpage +EXPORT_SYMBOL vmlinux 0x054295e6 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x0544cd87 scsi_device_get +EXPORT_SYMBOL vmlinux 0x055e2b2d del_gendisk +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x057545c8 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x058e0bd7 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x05946e8d mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x059509f2 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x05d053e0 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x05ff0326 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x06140c7c rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061a703f tcp_make_synack +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x063580ed bdevname +EXPORT_SYMBOL vmlinux 0x06468ccc pci_enable_device +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06865f0f pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x0693b0d1 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x06b5e2bd processors +EXPORT_SYMBOL vmlinux 0x06b7bb20 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x06ba6838 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x06c03ab5 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x06d2f086 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x06d883a8 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x06de6fd3 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x06eb0462 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x06f4bf00 seq_escape +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x0757b3b9 journal_errno +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x07678ffd d_genocide +EXPORT_SYMBOL vmlinux 0x076d8275 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x076ebea8 pv_lock_ops +EXPORT_SYMBOL vmlinux 0x079007c1 follow_down +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a80687 netdev_features_change +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07bca79c __get_page_tail +EXPORT_SYMBOL vmlinux 0x07ca39e7 __kmap_atomic +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07f2d405 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x07f65b37 mb_cache_create +EXPORT_SYMBOL vmlinux 0x07fd01a5 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x08180e20 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x081d0655 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x08283227 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082c9231 netdev_set_master +EXPORT_SYMBOL vmlinux 0x083e19e5 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x0842433e pci_select_bars +EXPORT_SYMBOL vmlinux 0x0855c5a7 mutex_trylock +EXPORT_SYMBOL vmlinux 0x08652ed3 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x08719860 icmp_send +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x08ba10d8 netdev_printk +EXPORT_SYMBOL vmlinux 0x08bac932 do_splice_direct +EXPORT_SYMBOL vmlinux 0x08bf826c _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x08c215d6 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x08ece512 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0x0924ca62 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x0939a372 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x093dbc0d vfs_rmdir +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x094a72cc dm_unregister_target +EXPORT_SYMBOL vmlinux 0x0953cfd8 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x095e7891 drop_super +EXPORT_SYMBOL vmlinux 0x09670aa4 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0992780d efi_enabled +EXPORT_SYMBOL vmlinux 0x09ae41c4 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x09b49fcb __ht_create_irq +EXPORT_SYMBOL vmlinux 0x09b6c1e5 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2e1adb kmem_cache_create +EXPORT_SYMBOL vmlinux 0x0a2e715a kfree_skb +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a37f021 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x0a3b2716 rt6_lookup +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a4a6211 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x0a51802e elevator_change +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad7c19f input_allocate_device +EXPORT_SYMBOL vmlinux 0x0adaa1ed nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b1c112f mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x0b213b8b skb_gso_segment +EXPORT_SYMBOL vmlinux 0x0b3420cd security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x0b36d280 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b7086d9 param_get_short +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b8a1a84 submit_bh +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0be2cb54 noop_qdisc +EXPORT_SYMBOL vmlinux 0x0c0eb40e netpoll_print_options +EXPORT_SYMBOL vmlinux 0x0c0ecc97 __find_get_block +EXPORT_SYMBOL vmlinux 0x0c119645 pci_disable_obff +EXPORT_SYMBOL vmlinux 0x0c1bdece bmap +EXPORT_SYMBOL vmlinux 0x0c301a98 datagram_poll +EXPORT_SYMBOL vmlinux 0x0c3d177a skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x0c528ebe textsearch_destroy +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c93334e mount_bdev +EXPORT_SYMBOL vmlinux 0x0ca1f3e3 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cad0872 kern_path +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb20d35 dma_find_channel +EXPORT_SYMBOL vmlinux 0x0cd0667a blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x0ce45700 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x0d1aedb2 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x0d1f7ebf udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x0d2808e8 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d4d8598 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d7508bd generic_block_bmap +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0ddfbe5d fasync_helper +EXPORT_SYMBOL vmlinux 0x0df02fc1 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x0e24d514 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x0e342915 init_task +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e598f5a dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x0e5b84b7 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x0e8e067f dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x0e935bb3 save_mount_options +EXPORT_SYMBOL vmlinux 0x0ea0aff4 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x0ede2633 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x0f04526c con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x0f04c392 noop_llseek +EXPORT_SYMBOL vmlinux 0x0f2212a3 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x0f523fba lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x0f59f197 param_array_ops +EXPORT_SYMBOL vmlinux 0x0f5b41e3 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x0f5c3a5f tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x0f703096 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x0f7df110 vmtruncate +EXPORT_SYMBOL vmlinux 0x0fae607d unregister_8022_client +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb0e29f init_timer_key +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fec8cb1 thaw_bdev +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x10378e32 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x10716e80 neigh_for_each +EXPORT_SYMBOL vmlinux 0x1085b463 load_nls +EXPORT_SYMBOL vmlinux 0x10901c3a generic_delete_inode +EXPORT_SYMBOL vmlinux 0x10910c35 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x10ab7e68 down_killable +EXPORT_SYMBOL vmlinux 0x10b075c2 pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0x10cc89b2 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f80d0d i2c_transfer +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x111cbdec tty_unregister_device +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1162d722 d_clear_need_lookup +EXPORT_SYMBOL vmlinux 0x11633870 param_set_ushort +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x1170670d __rta_fill +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11877945 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x118dfabc netif_napi_del +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11b7c98d xfrm_state_update +EXPORT_SYMBOL vmlinux 0x11c96975 thaw_super +EXPORT_SYMBOL vmlinux 0x11dba971 unregister_nls +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1231cfb1 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x1239617f setup_arg_pages +EXPORT_SYMBOL vmlinux 0x123fc0ed mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x12532276 dev_mc_del +EXPORT_SYMBOL vmlinux 0x125638a3 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x12814241 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x12837fa2 tty_throttle +EXPORT_SYMBOL vmlinux 0x128a5cf9 complete_all +EXPORT_SYMBOL vmlinux 0x1296dd33 mmc_request_done +EXPORT_SYMBOL vmlinux 0x12a0a9b1 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12a5793c scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x12a5e2d1 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x12aa5fac skb_recycle +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x130a5552 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x1321b476 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x133dc81b seq_lseek +EXPORT_SYMBOL vmlinux 0x133e81ca dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x1346e174 llc_sap_close +EXPORT_SYMBOL vmlinux 0x134f4242 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x137c62b7 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x13acc6cd padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x13b2e03f journal_revoke +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13ca29fb dev_change_flags +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d14fd1 vfs_fsync +EXPORT_SYMBOL vmlinux 0x13d9c527 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x13dff834 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x13e9ed00 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x13ec80f3 param_set_short +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13fa4412 journal_init_inode +EXPORT_SYMBOL vmlinux 0x140b3fc3 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x141a054c agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x141accec kill_fasync +EXPORT_SYMBOL vmlinux 0x141d4335 key_validate +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x145a9a89 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x1471994d phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x14d0d91e get_super +EXPORT_SYMBOL vmlinux 0x14e07816 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x14e7ca7c alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x15216f7a d_validate +EXPORT_SYMBOL vmlinux 0x152515e9 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x155d88d8 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x15980e90 nf_reinject +EXPORT_SYMBOL vmlinux 0x15b1a3ef i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x15b73305 sock_no_getname +EXPORT_SYMBOL vmlinux 0x15ba638c set_groups +EXPORT_SYMBOL vmlinux 0x15eee81d __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x15f17373 bdget_disk +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x161a5803 load_nls_default +EXPORT_SYMBOL vmlinux 0x161fee7c sk_stream_error +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x162c1eb2 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x168eb071 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x168f1082 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x169fd82e elv_rb_find +EXPORT_SYMBOL vmlinux 0x16ab047e xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x16c42197 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x16c5b4e0 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x16e8e7eb dump_seek +EXPORT_SYMBOL vmlinux 0x16f8a0cd proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x1701bfb7 inet_ioctl +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x171309f8 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x171cffc5 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x171efc67 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x1723f2cb ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x1725800a pnp_device_attach +EXPORT_SYMBOL vmlinux 0x172f0a8d poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x1734a232 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x1746aab8 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x17666620 ll_rw_block +EXPORT_SYMBOL vmlinux 0x1790d76b _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x17913f81 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x17ada7de sock_create_lite +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e19a75 release_sock +EXPORT_SYMBOL vmlinux 0x17e42843 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180f1fad padata_alloc +EXPORT_SYMBOL vmlinux 0x181bb7ee __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x1830042f blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x1837d4b0 sg_miter_next +EXPORT_SYMBOL vmlinux 0x1838aa7a acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x18652f34 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18b09cad scm_detach_fds +EXPORT_SYMBOL vmlinux 0x18c89b3b swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x19053392 consume_skb +EXPORT_SYMBOL vmlinux 0x1914164f con_copy_unimap +EXPORT_SYMBOL vmlinux 0x1915a606 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x19206ec1 pci_request_region +EXPORT_SYMBOL vmlinux 0x1921166d ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x1921cd05 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x194028b0 vfs_symlink +EXPORT_SYMBOL vmlinux 0x1956dba3 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x1968de37 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x198b98df xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x19912407 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x199e08b8 touch_atime +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a9e62b complete +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19ce4c2a vfs_mknod +EXPORT_SYMBOL vmlinux 0x19fa210f inode_permission +EXPORT_SYMBOL vmlinux 0x1a1d0b06 eisa_driver_register +EXPORT_SYMBOL vmlinux 0x1a21a3b0 filemap_flush +EXPORT_SYMBOL vmlinux 0x1a22cb56 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x1a313888 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x1a320a71 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x1a3f063d do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x1a406002 ps2_end_command +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a72d14b deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x1a76a61c simple_transaction_get +EXPORT_SYMBOL vmlinux 0x1a91d446 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x1a9d3085 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x1aa64c2b agp_copy_info +EXPORT_SYMBOL vmlinux 0x1ab8433b backlight_device_register +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1add61f3 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x1ae14ef5 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x1ae2bdff unregister_binfmt +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b66d2de iget_locked +EXPORT_SYMBOL vmlinux 0x1b8a1ca7 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bc81070 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x1bc8585b idr_remove_all +EXPORT_SYMBOL vmlinux 0x1be2b0c0 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x1be7e041 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x1bf3f876 get_agp_version +EXPORT_SYMBOL vmlinux 0x1bffcc28 journal_update_format +EXPORT_SYMBOL vmlinux 0x1c07f926 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c1fd9ed kmem_cache_free +EXPORT_SYMBOL vmlinux 0x1c45e394 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x1c52c0ba netif_receive_skb +EXPORT_SYMBOL vmlinux 0x1c541b0c set_pages_wb +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c929887 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x1ca2282e __seq_open_private +EXPORT_SYMBOL vmlinux 0x1ca29d21 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x1cb8d1a0 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x1cc5dfea register_key_type +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cec279a dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x1cf93b09 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x1cfbe12a tty_port_close_end +EXPORT_SYMBOL vmlinux 0x1cfd40e2 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x1d0d86c5 phy_device_free +EXPORT_SYMBOL vmlinux 0x1d20c5b0 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x1d21d158 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x1d2675e8 skb_clone +EXPORT_SYMBOL vmlinux 0x1d28c23c uart_update_timeout +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3865da param_get_invbool +EXPORT_SYMBOL vmlinux 0x1d42f313 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x1d59c77e tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x1d7349a7 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x1d949c91 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x1dadd13d d_alloc_name +EXPORT_SYMBOL vmlinux 0x1dba3e4c inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x1dbdc782 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e3d3004 vga_client_register +EXPORT_SYMBOL vmlinux 0x1e57723e xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e990b62 serio_reconnect +EXPORT_SYMBOL vmlinux 0x1e9e9c3c invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea3e5c3 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ed03443 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x1ef1f75f posix_acl_valid +EXPORT_SYMBOL vmlinux 0x1f09dbb0 skb_insert +EXPORT_SYMBOL vmlinux 0x1f0fba06 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x1f17fae7 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x1f302f99 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x1f448836 tty_free_termios +EXPORT_SYMBOL vmlinux 0x1f748a43 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1fc0e8c7 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x1fd02a67 ata_link_printk +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fecc6bd scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20243ff2 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x2026b176 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x202911ba max8998_read_reg +EXPORT_SYMBOL vmlinux 0x20309ecd mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x2038e0fc xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x2046f937 sock_rfree +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20b045ee bdgrab +EXPORT_SYMBOL vmlinux 0x20bfe34f dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x20cae960 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x20d768c3 kern_unmount +EXPORT_SYMBOL vmlinux 0x20d7bd0b stop_tty +EXPORT_SYMBOL vmlinux 0x20dc8f22 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x20e72524 ipv4_specific +EXPORT_SYMBOL vmlinux 0x20ef8424 udp_disconnect +EXPORT_SYMBOL vmlinux 0x21163375 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x215bb1b4 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x21922b23 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x2192aa24 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x21960ff9 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x2199337a down_timeout +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21f9038a x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0x21fb443e _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222ed0c2 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x226328ec llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x226b8f0f gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2277e13c inode_set_bytes +EXPORT_SYMBOL vmlinux 0x22789ffe skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22ab0292 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22baf9f7 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x22bbee0a inet_stream_ops +EXPORT_SYMBOL vmlinux 0x22d9675f blk_make_request +EXPORT_SYMBOL vmlinux 0x22f26a66 file_open_root +EXPORT_SYMBOL vmlinux 0x2310280e __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x231ca275 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x231fdf8c seq_open_private +EXPORT_SYMBOL vmlinux 0x233335ec serial8250_register_port +EXPORT_SYMBOL vmlinux 0x233d8308 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x23468279 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x2349e27b dst_discard +EXPORT_SYMBOL vmlinux 0x234e85fa journal_dirty_data +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x237894c4 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x2384dde5 dquot_release +EXPORT_SYMBOL vmlinux 0x2391b743 mntget +EXPORT_SYMBOL vmlinux 0x239380dd set_anon_super +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b66abf read_cache_page +EXPORT_SYMBOL vmlinux 0x23baa76f migrate_page +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23f04553 release_pages +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x244adce4 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x247fe34e simple_lookup +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x248c777b padata_do_serial +EXPORT_SYMBOL vmlinux 0x24924962 input_grab_device +EXPORT_SYMBOL vmlinux 0x2494c8d9 mmc_release_host +EXPORT_SYMBOL vmlinux 0x24b14687 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x24cf7656 arp_send +EXPORT_SYMBOL vmlinux 0x24d828d3 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x24f169fc down_read_trylock +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x25147689 fb_get_mode +EXPORT_SYMBOL vmlinux 0x251e9e50 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x252094b8 request_key_async +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x256c70c0 devm_free_irq +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x259536bc dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x25ac3337 d_alloc_root +EXPORT_SYMBOL vmlinux 0x25bc2eaf tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x25be2727 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x25be86e1 set_page_dirty +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x26100d5f mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x263ab703 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x264d3c3d idr_get_next +EXPORT_SYMBOL vmlinux 0x2661706d set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x2676d0ba blk_end_request +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x26a9727f sock_create +EXPORT_SYMBOL vmlinux 0x26b7ee3c __dquot_free_space +EXPORT_SYMBOL vmlinux 0x26b9003a get_fs_type +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f05cc8 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272953e2 scsi_execute +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x27364de2 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x273a76c4 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x27755139 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279439f2 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x27ae7d0c ec_transaction +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27cb3d48 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x27dd9558 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x27ec0e99 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x28048b64 dcb_setapp +EXPORT_SYMBOL vmlinux 0x280b63ed kdb_current_task +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2829745f skb_pad +EXPORT_SYMBOL vmlinux 0x286370e4 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x286fc177 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x2879f453 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x2893bd8d dev_get_stats +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28ab907d tcp_child_process +EXPORT_SYMBOL vmlinux 0x28b6db75 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28d258c0 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0x28e235ac arp_invalidate +EXPORT_SYMBOL vmlinux 0x290ca28c log_start_commit +EXPORT_SYMBOL vmlinux 0x290ee04d uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x29292706 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x29325451 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x29333f50 llc_sap_open +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295db419 x86_hyper +EXPORT_SYMBOL vmlinux 0x2967668f blk_get_queue +EXPORT_SYMBOL vmlinux 0x296ebddf __nla_put +EXPORT_SYMBOL vmlinux 0x298a2cdd acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x29b96a8a inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x29ffdb6b current_fs_time +EXPORT_SYMBOL vmlinux 0x2a007ce3 sock_release +EXPORT_SYMBOL vmlinux 0x2a1987b0 seq_read +EXPORT_SYMBOL vmlinux 0x2a290659 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a39153c intel_gtt_insert_pages +EXPORT_SYMBOL vmlinux 0x2a3a16aa dev_mc_flush +EXPORT_SYMBOL vmlinux 0x2a3f818a mmc_host_enable +EXPORT_SYMBOL vmlinux 0x2a474aaa skb_checksum_help +EXPORT_SYMBOL vmlinux 0x2a75035a __pci_register_driver +EXPORT_SYMBOL vmlinux 0x2a915160 input_register_handler +EXPORT_SYMBOL vmlinux 0x2a9abbab __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ab8468b kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x2ae36d98 iget5_locked +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0c9fa3 find_vma +EXPORT_SYMBOL vmlinux 0x2b0fb25c blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b62636a agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x2b646069 set_security_override +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bbe233e gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bcab44d sock_sendmsg +EXPORT_SYMBOL vmlinux 0x2bd147a5 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x2bd9c489 revalidate_disk +EXPORT_SYMBOL vmlinux 0x2bdc2dc6 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x2beb11be pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x2bf8d577 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c30f8e3 mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0x2c3b7597 dev_crit +EXPORT_SYMBOL vmlinux 0x2c4e60d8 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x2c6a6930 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x2c7a23dc netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x2c8c27f6 vfs_llseek +EXPORT_SYMBOL vmlinux 0x2c9620b3 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x2cb8dd33 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x2cba47d3 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1766aa scsi_register_interface +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d4ae91d ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2db3a697 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x2dc3775e pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd53a8e blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x2de37bc7 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df9a27c proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x2e03d27a ns_capable +EXPORT_SYMBOL vmlinux 0x2e0b1d1b bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x2e19072a inet_frag_kill +EXPORT_SYMBOL vmlinux 0x2e19a9dc netdev_update_features +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e2e03bf skb_dequeue +EXPORT_SYMBOL vmlinux 0x2e59fc7a ab8500_gpadc_get +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e6297f3 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x2ea7d424 gen_pool_free +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f21c4de __invalidate_device +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f332b03 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x2f6cdb1d mii_check_link +EXPORT_SYMBOL vmlinux 0x2f74ed4b elv_add_request +EXPORT_SYMBOL vmlinux 0x2f93c2b7 noop_fsync +EXPORT_SYMBOL vmlinux 0x2f94287a tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x2fa80c1d netif_device_detach +EXPORT_SYMBOL vmlinux 0x2fb3fec4 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fcbfbe0 uart_match_port +EXPORT_SYMBOL vmlinux 0x2fcde7cd mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x2fd46466 dm_register_target +EXPORT_SYMBOL vmlinux 0x2ff95dda dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x301ee84b igrab +EXPORT_SYMBOL vmlinux 0x3020d85c blk_rq_init +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x302b865b x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x30316444 softnet_data +EXPORT_SYMBOL vmlinux 0x3038787f __lock_page +EXPORT_SYMBOL vmlinux 0x304a36c5 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x3069da50 nf_afinfo +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x307f0da0 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x30842534 mmc_resume_host +EXPORT_SYMBOL vmlinux 0x30951093 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x30a06192 pci_request_regions +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30c544dc sock_no_listen +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30ecd1d8 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x311ecfb3 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x312db847 ilookup5 +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x314a240b kunmap +EXPORT_SYMBOL vmlinux 0x314a2c91 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x314b176b __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x315cc7d8 blk_insert_request +EXPORT_SYMBOL vmlinux 0x317c3b50 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31c16fd0 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x31c30ed2 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x31e2756d dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x320981f9 replace_mount_options +EXPORT_SYMBOL vmlinux 0x322d7eb8 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x323064ab neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x3246d36b security_path_unlink +EXPORT_SYMBOL vmlinux 0x32519213 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x3257a985 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x32a5af13 iput +EXPORT_SYMBOL vmlinux 0x32aedf86 vm_map_ram +EXPORT_SYMBOL vmlinux 0x32cea339 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x32eb6457 pskb_copy +EXPORT_SYMBOL vmlinux 0x32eeaded _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x32ef24ac jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x32f11b4a dev_mc_add +EXPORT_SYMBOL vmlinux 0x32fda722 dev_close +EXPORT_SYMBOL vmlinux 0x33046358 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x3305347e cfb_copyarea +EXPORT_SYMBOL vmlinux 0x33111cb1 aio_complete +EXPORT_SYMBOL vmlinux 0x332f3238 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x333903d4 __breadahead +EXPORT_SYMBOL vmlinux 0x333a931a proto_register +EXPORT_SYMBOL vmlinux 0x33771543 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x337ec63a phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x33842f27 put_page +EXPORT_SYMBOL vmlinux 0x339fe010 file_remove_suid +EXPORT_SYMBOL vmlinux 0x33c3f0b3 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x34150311 security_path_chown +EXPORT_SYMBOL vmlinux 0x342e32e3 ida_simple_get +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x3465f248 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x34900f9f kmap_to_page +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x34f5409f sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x34ffe697 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x3504d226 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x353345a8 key_unlink +EXPORT_SYMBOL vmlinux 0x35669178 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x356984e4 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x357c90d2 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x35802462 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x35abf72c neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x35af86fa call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c8ed3e skb_store_bits +EXPORT_SYMBOL vmlinux 0x35ca8cfa dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x35eda83d ip6_xmit +EXPORT_SYMBOL vmlinux 0x3606a1e4 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x362155c6 freeze_super +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x364ae344 register_netdevice +EXPORT_SYMBOL vmlinux 0x367769a4 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36944463 inet_frags_init +EXPORT_SYMBOL vmlinux 0x36a96a5e input_set_abs_params +EXPORT_SYMBOL vmlinux 0x36aad357 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x36d79d03 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f2c5c0 send_sig +EXPORT_SYMBOL vmlinux 0x370bc881 sget +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x37598a43 kernel_bind +EXPORT_SYMBOL vmlinux 0x376b0657 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x3781e345 iget_failed +EXPORT_SYMBOL vmlinux 0x37899155 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x378b6248 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x379f5837 param_set_invbool +EXPORT_SYMBOL vmlinux 0x37aa5e09 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37d3e171 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x37d5f973 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x37d8c360 km_new_mapping +EXPORT_SYMBOL vmlinux 0x37da9dcf i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e18803 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x37e32f4f phy_start +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37fe299d spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x380a2a8b dev_uc_sync +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381ccc13 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x383ec709 keyring_clear +EXPORT_SYMBOL vmlinux 0x3844a77e dqget +EXPORT_SYMBOL vmlinux 0x384cc7f2 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x385469aa bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x3873cdde scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x38842057 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38918812 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x389e611d blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x38b12fd0 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38ccd383 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x38dd7f9f pci_disable_device +EXPORT_SYMBOL vmlinux 0x38e75980 skb_split +EXPORT_SYMBOL vmlinux 0x38f28166 journal_destroy +EXPORT_SYMBOL vmlinux 0x390f0dcf mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39478f2a agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x396a9cff inode_init_owner +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39c9dc12 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x39f34e48 fd_install +EXPORT_SYMBOL vmlinux 0x3a013b7d remove_wait_queue +EXPORT_SYMBOL vmlinux 0x3a04d2ef acpi_device_hid +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a1beaac nf_register_hook +EXPORT_SYMBOL vmlinux 0x3a20c96b napi_skb_finish +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a51784c scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x3a7f9168 have_submounts +EXPORT_SYMBOL vmlinux 0x3a82c5cd elevator_exit +EXPORT_SYMBOL vmlinux 0x3a86e88a __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x3a8c937d set_pages_x +EXPORT_SYMBOL vmlinux 0x3a8d1d8c __bforget +EXPORT_SYMBOL vmlinux 0x3a916d48 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3aa620e8 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x3aaac12d inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x3ab545b4 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x3ac46f5c acpi_bus_start +EXPORT_SYMBOL vmlinux 0x3b06e045 unregister_console +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b3fe633 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x3b5da145 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x3bab7fc9 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x3bbbc499 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd92d7b scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x3bec1840 blk_run_queue +EXPORT_SYMBOL vmlinux 0x3bf9140d udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x3c0443ac lro_receive_skb +EXPORT_SYMBOL vmlinux 0x3c2caead seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x3c3bae02 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3c46fd6c ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x3c648550 try_to_release_page +EXPORT_SYMBOL vmlinux 0x3c6a43f7 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c84359a xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cb6dc84 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x3cb74fb8 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x3cd1bb05 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x3cdfc138 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d0f6bfe scsi_remove_target +EXPORT_SYMBOL vmlinux 0x3d30b465 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x3d3106f5 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x3d5940af cdrom_open +EXPORT_SYMBOL vmlinux 0x3d6cf56f i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d93ee61 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dccdc76 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x3debfb51 fget +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0e9023 param_set_long +EXPORT_SYMBOL vmlinux 0x3e0f0f4c serio_interrupt +EXPORT_SYMBOL vmlinux 0x3e218991 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e32c5d4 __getblk +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e5f060c ata_port_printk +EXPORT_SYMBOL vmlinux 0x3e66b20f __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e98a88a mark_info_dirty +EXPORT_SYMBOL vmlinux 0x3ea1ca72 agp_free_memory +EXPORT_SYMBOL vmlinux 0x3ea41fcd tcf_hash_search +EXPORT_SYMBOL vmlinux 0x3ec8886f param_ops_int +EXPORT_SYMBOL vmlinux 0x3ed1ed0b read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eda8f77 pci_match_id +EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f18dce5 netlink_unicast +EXPORT_SYMBOL vmlinux 0x3f21ab1b ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f808f3b inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x3f9b9190 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x3f9f868f __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x3fa58ef8 wait_for_completion +EXPORT_SYMBOL vmlinux 0x3fa8c089 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x3fa8d986 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x3fb5625c mount_pseudo +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x400c907e udp_seq_open +EXPORT_SYMBOL vmlinux 0x401265c4 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x40269c37 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x4029d238 param_set_copystring +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x403a349f pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40711d93 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x407feb7e scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c0f0de proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40fe733d get_write_access +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41275505 follow_up +EXPORT_SYMBOL vmlinux 0x413a9dbd ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x413c380b vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x4140a240 inet_addr_type +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x41499d66 bdput +EXPORT_SYMBOL vmlinux 0x4158396c mutex_lock +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x419ee6e8 idr_pre_get +EXPORT_SYMBOL vmlinux 0x41c23073 arp_tbl +EXPORT_SYMBOL vmlinux 0x42119286 mutex_unlock +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x4224cc11 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x4232c2a0 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x423748e3 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x4239de63 ida_init +EXPORT_SYMBOL vmlinux 0x4242b338 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x42481c8b block_read_full_page +EXPORT_SYMBOL vmlinux 0x424b4679 mpage_writepages +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x426c8595 arp_xmit +EXPORT_SYMBOL vmlinux 0x426c85ad swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x42735053 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x428e352c tr_type_trans +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42c6adb9 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42cc2f66 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x42dbdf86 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43197992 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x4319f5e5 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x431c6e41 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x431cf5ae insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x4320c035 set_bh_page +EXPORT_SYMBOL vmlinux 0x432600ee dquot_free_inode +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x43696489 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437d5e11 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x438d5798 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x4396e927 d_add_ci +EXPORT_SYMBOL vmlinux 0x43a0458b blk_start_plug +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x44113403 md_done_sync +EXPORT_SYMBOL vmlinux 0x441d5d58 set_pages_nx +EXPORT_SYMBOL vmlinux 0x4421a2cb serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x442815ad blk_get_request +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44402b6f param_get_ulong +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x4443e0ed inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x4445c082 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x44497120 set_blocksize +EXPORT_SYMBOL vmlinux 0x4459a540 account_page_redirty +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb8f0d nf_hook_slow +EXPORT_SYMBOL vmlinux 0x44f1606d down_trylock +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x452a8589 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x453620ab security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4558fd71 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x4578661a _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457973e9 register_exec_domain +EXPORT_SYMBOL vmlinux 0x45bd9efd dm_table_put +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45f53677 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x4617c890 mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x461b30ad blk_delay_queue +EXPORT_SYMBOL vmlinux 0x462127dc inet6_release +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x46516f2e path_is_under +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x466cddcf __mutex_init +EXPORT_SYMBOL vmlinux 0x466d7d35 dst_release +EXPORT_SYMBOL vmlinux 0x46953cda spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x47582f51 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x477e26db dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x479047d6 key_type_keyring +EXPORT_SYMBOL vmlinux 0x4792c572 down_interruptible +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47b6b7af nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47e9f031 eth_header_parse +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4866b9f4 vfs_write +EXPORT_SYMBOL vmlinux 0x486d2f29 dqstats +EXPORT_SYMBOL vmlinux 0x48766c52 __kfree_skb +EXPORT_SYMBOL vmlinux 0x488d8265 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x48a686d6 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48b39ef8 dev_deactivate +EXPORT_SYMBOL vmlinux 0x48eb0c0d __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x48f6fbf0 secpath_dup +EXPORT_SYMBOL vmlinux 0x48fcc1dd dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x4909b54b __neigh_event_send +EXPORT_SYMBOL vmlinux 0x49154814 locks_delete_block +EXPORT_SYMBOL vmlinux 0x4948aa2c phy_attach +EXPORT_SYMBOL vmlinux 0x494fb1cf pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x497bcecb user_path_at +EXPORT_SYMBOL vmlinux 0x497c517d inet_release +EXPORT_SYMBOL vmlinux 0x4992c87c dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b8ff72 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x49ce2439 security_file_mmap +EXPORT_SYMBOL vmlinux 0x49d082d7 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x4a0a13bc tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x4a0d25a7 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x4a250a6e nla_reserve +EXPORT_SYMBOL vmlinux 0x4a34da58 __dev_printk +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a44961a tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4a7558e8 nonseekable_open +EXPORT_SYMBOL vmlinux 0x4a97d566 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x4a9fb91a jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4acab185 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4acf59df netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x4ad3137f max8925_reg_read +EXPORT_SYMBOL vmlinux 0x4ad989cc scsi_free_command +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b0dad8d led_blink_set +EXPORT_SYMBOL vmlinux 0x4b142f51 devm_iounmap +EXPORT_SYMBOL vmlinux 0x4b162423 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b2dd7a6 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4bbee9d5 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x4bc4d5a5 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4bdffa24 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x4bf6f33d tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x4bf7b27d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c11ca9f efi +EXPORT_SYMBOL vmlinux 0x4c2088c0 serio_close +EXPORT_SYMBOL vmlinux 0x4c2549bc scsi_init_io +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c3cee15 tty_kref_put +EXPORT_SYMBOL vmlinux 0x4c728dd7 vfs_readv +EXPORT_SYMBOL vmlinux 0x4c893e72 kick_iocb +EXPORT_SYMBOL vmlinux 0x4c997920 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cbf16c9 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x4cc8f8dc prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x4ccdb585 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x4cdcafe3 netdev_emerg +EXPORT_SYMBOL vmlinux 0x4cf1b984 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d074478 mdiobus_free +EXPORT_SYMBOL vmlinux 0x4d157c8e dev_get_by_index +EXPORT_SYMBOL vmlinux 0x4d1d91b8 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d29844c proc_symlink +EXPORT_SYMBOL vmlinux 0x4d30c7a6 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x4d3173ae fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x4d345af2 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x4d3a09c3 I_BDEV +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d4788bb xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e088ba5 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x4e1a1be7 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e234285 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x4e29c7cb idr_for_each +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e3e4c55 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x4e68c9e1 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x4e6e2188 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4eb11f1f seq_bitmap +EXPORT_SYMBOL vmlinux 0x4ed6b8f4 d_move +EXPORT_SYMBOL vmlinux 0x4eeec1c2 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x4efb1d16 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x4f18467b pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f52a669 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x4f60b717 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x4f6254c1 md_integrity_register +EXPORT_SYMBOL vmlinux 0x4f6cb2d0 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fea933b d_drop +EXPORT_SYMBOL vmlinux 0x4ff0b0ba pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502712f7 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x50415a89 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505dd712 set_user_nice +EXPORT_SYMBOL vmlinux 0x506582f9 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5069da1c tty_port_close +EXPORT_SYMBOL vmlinux 0x50708ed8 generic_write_checks +EXPORT_SYMBOL vmlinux 0x507d1419 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x50871bf8 sock_i_ino +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50c625fb nf_log_register +EXPORT_SYMBOL vmlinux 0x50c94bec scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x50cd4c20 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x50eedeb8 printk +EXPORT_SYMBOL vmlinux 0x50f3014a dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x510f6ce9 __bread +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x5161968e kill_block_super +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x518a63f5 vga_put +EXPORT_SYMBOL vmlinux 0x51b32991 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x51c74a1a bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51d816e4 seq_write +EXPORT_SYMBOL vmlinux 0x51dadf8d i2c_release_client +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51df5968 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x52398bad eth_change_mtu +EXPORT_SYMBOL vmlinux 0x524044f9 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x52423a0c ida_pre_get +EXPORT_SYMBOL vmlinux 0x5275c485 mnt_pin +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a4e87f keyring_search +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52e8eaa7 scsi_unregister +EXPORT_SYMBOL vmlinux 0x53076a53 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x532592d2 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x533183cf pci_get_subsys +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533d0fa7 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x535a821a iunique +EXPORT_SYMBOL vmlinux 0x535dc48d km_policy_expired +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5383f34b _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x5388f4a4 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x538ebe72 journal_create +EXPORT_SYMBOL vmlinux 0x5397f2d3 posix_acl_init +EXPORT_SYMBOL vmlinux 0x5399c48b vfs_readlink +EXPORT_SYMBOL vmlinux 0x53a9817a acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x53b0dba7 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x53bae293 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x53d53db3 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x53e12d9b scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x53e66d3b simple_transaction_set +EXPORT_SYMBOL vmlinux 0x53f2ef10 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x53f316ba blk_put_request +EXPORT_SYMBOL vmlinux 0x54152e04 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x5429f762 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x54341cbf inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x545b1979 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x546c4b8f mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x5486c35f free_netdev +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x549aa131 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54ae0451 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x54df0927 start_tty +EXPORT_SYMBOL vmlinux 0x54e6d2b9 spi_dv_device +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ed983b kernel_getsockname +EXPORT_SYMBOL vmlinux 0x550d86c6 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x551a28ca inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x551b9c7d default_file_splice_read +EXPORT_SYMBOL vmlinux 0x553526a3 udp_proc_register +EXPORT_SYMBOL vmlinux 0x55401d79 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5574a0b3 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a543c5 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x55a768f5 __get_user_pages +EXPORT_SYMBOL vmlinux 0x55a8ba03 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x55aeaf73 generic_write_end +EXPORT_SYMBOL vmlinux 0x55b818fe pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x55d085ac mfd_add_devices +EXPORT_SYMBOL vmlinux 0x55d2ad47 skb_push +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x562d8afa tty_port_put +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x567facc7 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x568db09b __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x56adab88 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x56ba394b set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cd3ea1 mpage_readpages +EXPORT_SYMBOL vmlinux 0x56e5d076 inet_frag_find +EXPORT_SYMBOL vmlinux 0x56e72f0c ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x56ec5c8e nf_ct_attach +EXPORT_SYMBOL vmlinux 0x5705088a __vmalloc +EXPORT_SYMBOL vmlinux 0x571bd58d ilookup +EXPORT_SYMBOL vmlinux 0x571c9f45 single_release +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573dbc90 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x5740c1d2 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x574f0f79 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x5752a447 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a14cee end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57bfaf97 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57dc7130 dev_alert +EXPORT_SYMBOL vmlinux 0x57de39fc cdev_alloc +EXPORT_SYMBOL vmlinux 0x582e8730 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x586521f0 __serio_register_port +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58e43017 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x58ec3e92 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x59245bb6 alloc_trdev +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5941a872 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x5949a475 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59563253 vga_get +EXPORT_SYMBOL vmlinux 0x5996498a elv_abort_queue +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59e3b34d vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x59e64770 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5a110d7a simple_unlink +EXPORT_SYMBOL vmlinux 0x5a2aa62e __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x5a3be481 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x5a3e9e06 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x5a449977 generic_write_sync +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5ea541 __ps2_command +EXPORT_SYMBOL vmlinux 0x5a5f6831 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a932a81 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x5a941e38 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x5aa55746 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x5ab9f01a skb_make_writable +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5b00e620 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x5b0a578b posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x5b124237 sock_wfree +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b2c5e08 scsi_print_command +EXPORT_SYMBOL vmlinux 0x5b31eb1f pci_get_class +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5b94830a xfrm_register_type +EXPORT_SYMBOL vmlinux 0x5bb86c29 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x5bbd9901 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x5bd11b48 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x5be55bb5 take_over_console +EXPORT_SYMBOL vmlinux 0x5c08aec2 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x5c316f0c netif_skb_features +EXPORT_SYMBOL vmlinux 0x5c3edd59 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x5c3ef039 genphy_suspend +EXPORT_SYMBOL vmlinux 0x5c64429d ifla_policy +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c6fd362 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x5c88b8eb nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x5cbe50b1 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x5cc11e12 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x5cd33e59 nla_put +EXPORT_SYMBOL vmlinux 0x5cecd05d lro_receive_frags +EXPORT_SYMBOL vmlinux 0x5d155d50 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x5d22e639 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x5d28fc77 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x5d3ca1e9 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x5d402ba7 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6e50b7 vfs_statfs +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d89c464 kthread_stop +EXPORT_SYMBOL vmlinux 0x5d8ab194 misc_register +EXPORT_SYMBOL vmlinux 0x5db3ead3 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x5dbb6293 kobject_get +EXPORT_SYMBOL vmlinux 0x5dcb5369 elv_rb_add +EXPORT_SYMBOL vmlinux 0x5dce6b75 complete_and_exit +EXPORT_SYMBOL vmlinux 0x5e038e59 do_splice_to +EXPORT_SYMBOL vmlinux 0x5e1e3c8d fb_show_logo +EXPORT_SYMBOL vmlinux 0x5e1fe83d splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x5e34d7f2 write_inode_now +EXPORT_SYMBOL vmlinux 0x5e54f9c1 tty_port_init +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e7dce36 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec39c5a setup_new_exec +EXPORT_SYMBOL vmlinux 0x5ec949b9 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f12014b contig_page_data +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f213995 do_munmap +EXPORT_SYMBOL vmlinux 0x5f27544a mempool_destroy +EXPORT_SYMBOL vmlinux 0x5f284e12 backlight_force_update +EXPORT_SYMBOL vmlinux 0x5f2e8773 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x5f366491 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x5f4e1a8f acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f610767 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x5f723bae bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x5f752990 security_path_truncate +EXPORT_SYMBOL vmlinux 0x5f834438 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fa7d432 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x5fb9f9a6 key_link +EXPORT_SYMBOL vmlinux 0x5fd26966 account_page_writeback +EXPORT_SYMBOL vmlinux 0x5fe0e2e0 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x5fe41fb6 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x5feca002 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x5fedc72d dentry_path_raw +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x604145cb __cleancache_flush_inode +EXPORT_SYMBOL vmlinux 0x60415087 bio_free +EXPORT_SYMBOL vmlinux 0x604a2ccc unregister_quota_format +EXPORT_SYMBOL vmlinux 0x604e9db2 netdev_crit +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6073e1dd mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b2e38a rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x60da0191 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x6106f143 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61412940 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x614ef55d filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x61536865 idr_destroy +EXPORT_SYMBOL vmlinux 0x6159f4cf tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x61754827 __sock_create +EXPORT_SYMBOL vmlinux 0x619b187b add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x61a69fb5 mntput +EXPORT_SYMBOL vmlinux 0x61b5ade0 down_write +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61e42767 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x61e89db4 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x621d77a0 sleep_on +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x62286feb ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622fa02a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623b8389 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x623f1b0a alloc_disk +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x624f586c __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x6285179d dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x6290e59b dma_sync_wait +EXPORT_SYMBOL vmlinux 0x62a5e0af dev_uc_init +EXPORT_SYMBOL vmlinux 0x62a7def4 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x62b9582d dquot_operations +EXPORT_SYMBOL vmlinux 0x62cb4cee interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x62cd8754 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x62cda283 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x62d5535d module_layout +EXPORT_SYMBOL vmlinux 0x62fbf721 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x6332cc1a audit_log_start +EXPORT_SYMBOL vmlinux 0x6337dfce ab8500_gpadc_convert +EXPORT_SYMBOL vmlinux 0x634d6172 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x635f16ad mount_nodev +EXPORT_SYMBOL vmlinux 0x6360a3e6 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63750452 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x637b79d1 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x638f5964 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x63ad6cba find_or_create_page +EXPORT_SYMBOL vmlinux 0x63ba8660 blk_init_queue +EXPORT_SYMBOL vmlinux 0x63bd5175 pci_map_rom +EXPORT_SYMBOL vmlinux 0x63d08294 uart_register_driver +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f0a95b generic_setlease +EXPORT_SYMBOL vmlinux 0x63f13192 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x63fedfd8 bio_pair_release +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64063398 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x64108df1 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x64178982 skb_queue_head +EXPORT_SYMBOL vmlinux 0x642e4ba8 register_quota_format +EXPORT_SYMBOL vmlinux 0x643eaec8 param_get_string +EXPORT_SYMBOL vmlinux 0x6458601c ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x64695183 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x6483e895 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x6484921c scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65220759 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x65291cff timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65437713 neigh_table_init +EXPORT_SYMBOL vmlinux 0x6554eac2 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x657879ce __init_rwsem +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x658f656d input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x659b5f36 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x65a041b3 d_set_d_op +EXPORT_SYMBOL vmlinux 0x65adb684 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x65b0bb23 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x65bcc1f6 devm_ioremap +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e01c57 journal_extend +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x66355efc vprintk +EXPORT_SYMBOL vmlinux 0x665c898c mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x6661560f blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x66781c76 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x667f288b elv_rb_del +EXPORT_SYMBOL vmlinux 0x667f74b5 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x668c0fff ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x669dd28a posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66d3a446 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x66d525f9 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x66eeeabb blk_init_tags +EXPORT_SYMBOL vmlinux 0x66f72dfe d_delete +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x6722a126 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x677f8772 set_trace_device +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x67ac2db0 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67dd7156 register_gifconf +EXPORT_SYMBOL vmlinux 0x67edabf6 input_event +EXPORT_SYMBOL vmlinux 0x67f7403e _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x67fdc02a pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x68211a7d sock_create_kern +EXPORT_SYMBOL vmlinux 0x682682a7 mddev_congested +EXPORT_SYMBOL vmlinux 0x68531e9c pci_get_slot +EXPORT_SYMBOL vmlinux 0x6858bfe2 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x6870bdd1 do_sync_write +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68835ffc km_state_expired +EXPORT_SYMBOL vmlinux 0x689cd7ce genphy_update_link +EXPORT_SYMBOL vmlinux 0x68c98d15 genphy_read_status +EXPORT_SYMBOL vmlinux 0x68d3eabd page_put_link +EXPORT_SYMBOL vmlinux 0x68e3b929 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x6917156b pci_dev_driver +EXPORT_SYMBOL vmlinux 0x692a568a dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x699cceb4 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b2ff79 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x69ce3f4f register_netdev +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e404b3 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a09b998 locks_free_lock +EXPORT_SYMBOL vmlinux 0x6a129fa8 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x6a145ad8 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a48e16b percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a8b6fd5 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x6a91b9c0 blk_start_queue +EXPORT_SYMBOL vmlinux 0x6ab70e70 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acd28cd ip_fragment +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6ada679e generic_removexattr +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae4fbd1 blkdev_put +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b1bfe8d __scm_send +EXPORT_SYMBOL vmlinux 0x6b1e1cab scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b3d7de3 inet6_getname +EXPORT_SYMBOL vmlinux 0x6b42dd5e tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x6b488b97 dquot_commit +EXPORT_SYMBOL vmlinux 0x6b55c14c pci_map_biosrom +EXPORT_SYMBOL vmlinux 0x6b5b4205 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x6b890005 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6b9e9645 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bb02df8 poll_freewait +EXPORT_SYMBOL vmlinux 0x6bb55b1a bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bcebabe skb_pull +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bdfbfa1 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x6be0cde6 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x6bf70fc4 pci_find_capability +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c42b49d ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x6c5788db user_path_create +EXPORT_SYMBOL vmlinux 0x6c58128a would_dump +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6255da phy_find_first +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c8b020f mca_device_read_pos +EXPORT_SYMBOL vmlinux 0x6c9db929 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x6cce4d5f dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf8d3e4 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d1481d1 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2af318 is_container_init +EXPORT_SYMBOL vmlinux 0x6d30287d mmc_host_disable +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d51c948 vga_tryget +EXPORT_SYMBOL vmlinux 0x6d5485ff scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x6d5bfec4 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0x6d6b06a8 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d7a166c cdrom_check_events +EXPORT_SYMBOL vmlinux 0x6da86699 submit_bio +EXPORT_SYMBOL vmlinux 0x6dc57f87 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x6dee2129 user_revoke +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e1d1a61 read_dev_sector +EXPORT_SYMBOL vmlinux 0x6e2449d9 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x6e506483 sk_dst_check +EXPORT_SYMBOL vmlinux 0x6e51ac2e _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x6e5b2b44 mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x6e65f2dc rtc_lock +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e80e1e1 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ece9699 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x6ed08446 netdev_alert +EXPORT_SYMBOL vmlinux 0x6efab9c3 kernel_listen +EXPORT_SYMBOL vmlinux 0x6f0fe013 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x6f2fdc94 ping_prot +EXPORT_SYMBOL vmlinux 0x6f54b9a9 generic_permission +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f8ca82e bio_integrity_split +EXPORT_SYMBOL vmlinux 0x6f906d8b i2c_del_driver +EXPORT_SYMBOL vmlinux 0x6fb3d2a9 dev_get_flags +EXPORT_SYMBOL vmlinux 0x6fc2d0a4 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x700c2720 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x703b4352 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x708b8ccc intel_gtt_map_memory +EXPORT_SYMBOL vmlinux 0x708d656e __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c2f435 put_disk +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e934d8 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x710b0ba1 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x7114a71f bit_waitqueue +EXPORT_SYMBOL vmlinux 0x71202709 pci_disable_ido +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x713f9d2c generic_read_dir +EXPORT_SYMBOL vmlinux 0x716c736d dev_set_group +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x718d7ff0 d_find_alias +EXPORT_SYMBOL vmlinux 0x719eb747 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71d0e94f llc_add_pack +EXPORT_SYMBOL vmlinux 0x71f21790 module_put +EXPORT_SYMBOL vmlinux 0x71fac4c2 get_gendisk +EXPORT_SYMBOL vmlinux 0x7203f0aa unlock_rename +EXPORT_SYMBOL vmlinux 0x7208d76e ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x7234c88c kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x7234eafb otg_state_string +EXPORT_SYMBOL vmlinux 0x72689ab6 pci_iounmap +EXPORT_SYMBOL vmlinux 0x72802336 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x729ba26a xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x72aa82c6 param_ops_charp +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72df2f2a up_read +EXPORT_SYMBOL vmlinux 0x72e50086 vm_stat +EXPORT_SYMBOL vmlinux 0x72e68734 icmpv6_send +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f3c9d4 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x730658c6 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x730a1a58 irq_set_chip +EXPORT_SYMBOL vmlinux 0x730f14af mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x730ff363 param_set_uint +EXPORT_SYMBOL vmlinux 0x731094fd dm_io +EXPORT_SYMBOL vmlinux 0x7312ccf6 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x732b7833 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x73566939 ip_options_compile +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x7365a9f3 nf_log_packet +EXPORT_SYMBOL vmlinux 0x736c79dc param_get_byte +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x7383a455 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73ce2c5a blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x73d68e8d __page_symlink +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f11212 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x73f1465d netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x740372d1 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x74063044 sock_wake_async +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x741a6e22 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x746b55c0 udp_poll +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x748b3ca1 __lock_buffer +EXPORT_SYMBOL vmlinux 0x749c8212 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x74a7b7b1 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x74b8d81a redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74d1156c abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x74d80856 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x74d89d67 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x74e646dd jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x74f2e2d1 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x74ff957b scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x751b2247 param_get_bool +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x755e3f46 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x755f7a53 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x759eac7f elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x75b15bda prepare_binprm +EXPORT_SYMBOL vmlinux 0x75b3135c blk_complete_request +EXPORT_SYMBOL vmlinux 0x75bb675a finish_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75cab531 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x75f1f0b1 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x7631fb11 dm_get_device +EXPORT_SYMBOL vmlinux 0x763dec58 phy_connect +EXPORT_SYMBOL vmlinux 0x7645a2dd input_unregister_device +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x76584577 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76b3290a iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d2f3b4 udp_prot +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76dc6b98 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x76fe045c mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x772f9eec __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77464e2d misc_deregister +EXPORT_SYMBOL vmlinux 0x77475b53 register_filesystem +EXPORT_SYMBOL vmlinux 0x77629160 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x777539b7 cpu_info +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a2dd5d mca_bus_type +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77ce87cb vfs_rename +EXPORT_SYMBOL vmlinux 0x77d59419 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x77db9871 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e383c2 dev_emerg +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x78016fbc unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x7818316d blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x7824b048 dm_put_device +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x78a49796 dev_warn +EXPORT_SYMBOL vmlinux 0x78aa8ffc inet6_bind +EXPORT_SYMBOL vmlinux 0x78bb2011 dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x78c91576 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78ea69de blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x78ed4837 padata_start +EXPORT_SYMBOL vmlinux 0x79010dfa generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x790cdbe0 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x790f1dcf qdisc_destroy +EXPORT_SYMBOL vmlinux 0x793ed0fa bio_copy_user +EXPORT_SYMBOL vmlinux 0x794a2c29 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x794b55a0 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x794d2764 simple_rmdir +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7977c9da create_mnt_ns +EXPORT_SYMBOL vmlinux 0x7985db36 mii_check_media +EXPORT_SYMBOL vmlinux 0x79894586 write_one_page +EXPORT_SYMBOL vmlinux 0x799f3630 netif_napi_add +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b8cdc7 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x79cf6c9c inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x79d839b8 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x7a08ad05 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x7a1390f7 param_set_bool +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a3d7c5e blk_recount_segments +EXPORT_SYMBOL vmlinux 0x7a3dbdc9 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x7a3eb91a __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a672a9a ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x7a71b01e __dst_free +EXPORT_SYMBOL vmlinux 0x7a7a0ca2 kernel_accept +EXPORT_SYMBOL vmlinux 0x7a7b0b6b journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x7a9bf88d udplite_table +EXPORT_SYMBOL vmlinux 0x7aa81449 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x7abacda2 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x7ae3083e __d_drop +EXPORT_SYMBOL vmlinux 0x7ae4dda3 blk_start_request +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7af3eb89 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7afd0317 dev_addr_del +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b3835aa splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x7b3c838a xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b6f4c78 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x7b87ab4f register_con_driver +EXPORT_SYMBOL vmlinux 0x7b94dde9 input_release_device +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7bbd761c __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x7bdd2239 rtnl_notify +EXPORT_SYMBOL vmlinux 0x7c2ccd3a input_reset_device +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5174aa ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x7c591b9e pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c6dd04d ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x7c8aa534 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7ca7e6db mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb92721 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x7cbec223 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x7cd15f6d tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x7ce0ae7c param_get_long +EXPORT_SYMBOL vmlinux 0x7cf69ba4 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x7d0ba770 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d128292 skb_unlink +EXPORT_SYMBOL vmlinux 0x7d274d35 dst_alloc +EXPORT_SYMBOL vmlinux 0x7d9491f8 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x7dbc2e57 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x7dbd7305 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x7dc3d140 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x7dc3e088 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x7dcdac0a __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x7de866c7 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e065b64 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x7e07e970 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x7e0ca59f dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x7e153305 __inet6_hash +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e36d154 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e48c24b sock_wmalloc +EXPORT_SYMBOL vmlinux 0x7e4ff08d tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ea3d4e1 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x7eaacb1d udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x7eb2c961 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x7ec256eb task_ns_capable +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7edf0657 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x7f072be5 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x7f18b194 kacpi_hotplug_wq +EXPORT_SYMBOL vmlinux 0x7f212227 vfs_open +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f45b63c jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x7f658e80 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7f85127c sock_register +EXPORT_SYMBOL vmlinux 0x7f98b944 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x7fac69a0 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7fac9a93 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x7fb74e3e input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x7fd9785c inet_put_port +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x802a3608 mmc_erase +EXPORT_SYMBOL vmlinux 0x8078bb6a ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x808af8d4 pnp_find_card +EXPORT_SYMBOL vmlinux 0x8096b59e register_xen_selfballooning +EXPORT_SYMBOL vmlinux 0x80a773c2 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x80ae52f8 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x80ae9aa1 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x80af5790 mca_device_set_name +EXPORT_SYMBOL vmlinux 0x80cf6a09 netdev_info +EXPORT_SYMBOL vmlinux 0x80d78e54 cdev_add +EXPORT_SYMBOL vmlinux 0x80df677a inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x80fa5530 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x80fd08f9 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x810b3618 param_ops_string +EXPORT_SYMBOL vmlinux 0x81317012 tmem_enabled +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x8147fea1 seq_release_private +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8150c0ba mempool_resize +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x816f8320 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81a386e1 kobject_init +EXPORT_SYMBOL vmlinux 0x81a5e22a kobject_del +EXPORT_SYMBOL vmlinux 0x81bb7589 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81e6ce9f agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x8203237f phy_detach +EXPORT_SYMBOL vmlinux 0x82034bdc posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x823fb71c bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8255d241 do_SAK +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82627229 set_pages_uc +EXPORT_SYMBOL vmlinux 0x826494af blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x8270e9fc scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x829b533d create_proc_entry +EXPORT_SYMBOL vmlinux 0x829ff995 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82de5d3b pci_release_regions +EXPORT_SYMBOL vmlinux 0x830390fa fifo_set_limit +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x8343cd74 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x83522ab4 locks_init_lock +EXPORT_SYMBOL vmlinux 0x835efd82 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x83670fe4 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x836873a2 proc_dointvec +EXPORT_SYMBOL vmlinux 0x836dd0c2 d_instantiate +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b6cba7 llc_sap_find +EXPORT_SYMBOL vmlinux 0x83d11b32 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x83d1fcae generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x83db1c83 lock_may_write +EXPORT_SYMBOL vmlinux 0x83f65711 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x83ffa9fe sync_inode +EXPORT_SYMBOL vmlinux 0x84025099 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x84025dcb is_bad_inode +EXPORT_SYMBOL vmlinux 0x8404e0f9 truncate_setsize +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x84072747 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x84208767 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x842cc160 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x8436f8e3 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x844383d3 i2c_use_client +EXPORT_SYMBOL vmlinux 0x84533adf xfrm_register_km +EXPORT_SYMBOL vmlinux 0x8453edbb tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x846bcc01 dm_table_get +EXPORT_SYMBOL vmlinux 0x847f182b page_address +EXPORT_SYMBOL vmlinux 0x8482ea92 inet_getname +EXPORT_SYMBOL vmlinux 0x8490bb3b netdev_set_bond_master +EXPORT_SYMBOL vmlinux 0x849326ba vfs_mkdir +EXPORT_SYMBOL vmlinux 0x849660ce dentry_unhash +EXPORT_SYMBOL vmlinux 0x849be2bf pci_pme_capable +EXPORT_SYMBOL vmlinux 0x849f39eb read_cache_pages +EXPORT_SYMBOL vmlinux 0x84acafdb ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x84b3b44f dcache_readdir +EXPORT_SYMBOL vmlinux 0x84b6b113 seq_release +EXPORT_SYMBOL vmlinux 0x84be886f completion_done +EXPORT_SYMBOL vmlinux 0x84c22ce7 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x84dc6c1c request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x84e19b66 proc_mkdir +EXPORT_SYMBOL vmlinux 0x84e1f370 flush_old_exec +EXPORT_SYMBOL vmlinux 0x84ec6fca fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x8523a174 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x852a8d92 security_path_link +EXPORT_SYMBOL vmlinux 0x854d3b1b phy_device_register +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x857b7696 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x859b55f5 elevator_init +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85c596b4 napi_get_frags +EXPORT_SYMBOL vmlinux 0x85d16790 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85f60ce1 sock_init_data +EXPORT_SYMBOL vmlinux 0x860f2c61 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x861b50b2 kunmap_high +EXPORT_SYMBOL vmlinux 0x863543e0 invalidate_partition +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86649146 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x8695d7ab abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86a95fd7 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x86b9c0ef textsearch_prepare +EXPORT_SYMBOL vmlinux 0x86bfae20 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x86d5255f _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87280ac5 netdev_notice +EXPORT_SYMBOL vmlinux 0x872ffc82 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87802491 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878f2cb3 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87d4731f ps2_command +EXPORT_SYMBOL vmlinux 0x87e14579 dquot_enable +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881b32ad dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x8823d019 scsi_get_command +EXPORT_SYMBOL vmlinux 0x882b982a jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88366d1e blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x883ab698 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x8873eaa7 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x8877aebe ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x88851a7b scsi_prep_return +EXPORT_SYMBOL vmlinux 0x8899dbe2 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x88ab3184 init_buffer +EXPORT_SYMBOL vmlinux 0x88ae4d7e xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x88c69a17 acpi_bus_add +EXPORT_SYMBOL vmlinux 0x88ed0505 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x890c9b19 blk_free_tags +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x893e274b bio_alloc +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x8971989a d_path +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x898b1cbd jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b09af7 pci_release_region +EXPORT_SYMBOL vmlinux 0x89c24972 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x89c68e64 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89f8d05d sg_miter_stop +EXPORT_SYMBOL vmlinux 0x8a153be0 dev_addr_add +EXPORT_SYMBOL vmlinux 0x8a15e39f mpage_writepage +EXPORT_SYMBOL vmlinux 0x8a1615d6 mempool_create_node +EXPORT_SYMBOL vmlinux 0x8a2320b6 block_write_end +EXPORT_SYMBOL vmlinux 0x8a2cacbd fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a5e05b4 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a93b57a ida_destroy +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9d8b5e pcim_pin_device +EXPORT_SYMBOL vmlinux 0x8a9e4a50 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x8aaff80b blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x8ab574b0 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x8abe41d9 do_truncate +EXPORT_SYMBOL vmlinux 0x8ac0b36f blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x8ad7ad2d amd_northbridges +EXPORT_SYMBOL vmlinux 0x8adef804 cdev_del +EXPORT_SYMBOL vmlinux 0x8af3f997 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x8b10f4a1 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x8b11db80 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1865ae scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b1d488b pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x8b2c11db elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b3672cb swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x8b39bbec mii_nway_restart +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b6c3fab copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x8b936ed6 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8b9a8ef6 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x8bccf4a2 bdi_register +EXPORT_SYMBOL vmlinux 0x8c0ede93 md_write_end +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c279fec pipe_to_file +EXPORT_SYMBOL vmlinux 0x8c4dbcc2 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x8c59fadd journal_get_write_access +EXPORT_SYMBOL vmlinux 0x8c6564ee netdev_state_change +EXPORT_SYMBOL vmlinux 0x8c99579d jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x8ca05b9f d_alloc +EXPORT_SYMBOL vmlinux 0x8cb4eca3 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x8cc4f7fd tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8ccfcf55 dqput +EXPORT_SYMBOL vmlinux 0x8cd6c9bc gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8cf4353b first_ec +EXPORT_SYMBOL vmlinux 0x8d50384d __serio_register_driver +EXPORT_SYMBOL vmlinux 0x8d507fc8 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x8d50baba journal_forget +EXPORT_SYMBOL vmlinux 0x8d51f470 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d946975 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x8d95992d bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8db6a0cf scsi_add_device +EXPORT_SYMBOL vmlinux 0x8dbe20a2 __register_binfmt +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8de71ad0 scsi_host_get +EXPORT_SYMBOL vmlinux 0x8df77b73 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e3671de sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x8e555738 param_get_uint +EXPORT_SYMBOL vmlinux 0x8e56a25f tcp_read_sock +EXPORT_SYMBOL vmlinux 0x8e58b224 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x8e58caa0 lease_modify +EXPORT_SYMBOL vmlinux 0x8e65f454 sk_run_filter +EXPORT_SYMBOL vmlinux 0x8e75a30b kset_unregister +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e890039 journal_start +EXPORT_SYMBOL vmlinux 0x8e9ed1e5 tcp_close +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ec604d5 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x8ed0927f scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f040051 pnp_is_active +EXPORT_SYMBOL vmlinux 0x8f1b0407 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x8f26f724 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f27339c mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0x8f36d577 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x8f478e46 poll_initwait +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f505cf5 dquot_acquire +EXPORT_SYMBOL vmlinux 0x8f914815 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa01a71 inode_init_once +EXPORT_SYMBOL vmlinux 0x8facfa40 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x8fc7f839 param_set_charp +EXPORT_SYMBOL vmlinux 0x8fe64ba3 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ff66782 param_get_ushort +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90094926 skb_trim +EXPORT_SYMBOL vmlinux 0x900ebc9b pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x9015225b mii_link_ok +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x9055ea16 __scm_destroy +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90adccd7 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90e14474 follow_down_one +EXPORT_SYMBOL vmlinux 0x90f13632 proc_dostring +EXPORT_SYMBOL vmlinux 0x910182ba kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x910c0a54 dma_set_mask +EXPORT_SYMBOL vmlinux 0x910e331c tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x911899dd fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x9134ac2c rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x916d8e35 bio_map_user +EXPORT_SYMBOL vmlinux 0x91714449 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x91a4f727 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x91c02e33 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x921f8e5f check_disk_size_change +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92535a3a dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92a05f3d idr_get_new +EXPORT_SYMBOL vmlinux 0x92ac7312 __napi_complete +EXPORT_SYMBOL vmlinux 0x92b3e450 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x92dbf83e ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x92e7e86f swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x92f6a27e blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x930559e2 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x93247842 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x935591da splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x9374c1cb release_firmware +EXPORT_SYMBOL vmlinux 0x93779f5d posix_test_lock +EXPORT_SYMBOL vmlinux 0x93806086 redraw_screen +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93d6523d thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x93e3b6b6 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x93e8bc68 dquot_drop +EXPORT_SYMBOL vmlinux 0x93fbf589 tty_set_operations +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x941ed3f8 prepare_creds +EXPORT_SYMBOL vmlinux 0x9431fad7 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x9438245a __free_pages +EXPORT_SYMBOL vmlinux 0x9451e963 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x94664b6f tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x946e3814 search_binary_handler +EXPORT_SYMBOL vmlinux 0x94752260 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x947d74a1 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x94864c7a wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949f7357 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94c0d9b7 ps2_drain +EXPORT_SYMBOL vmlinux 0x94c8c66d pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x94dc4f17 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x94e62b71 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x94fe4b13 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x952e760e dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x953db383 free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x955e24e5 inet_accept +EXPORT_SYMBOL vmlinux 0x9578bcf4 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x9580f7bc vm_event_states +EXPORT_SYMBOL vmlinux 0x9587b0a3 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x95b4b77e blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x95b7c03e console_start +EXPORT_SYMBOL vmlinux 0x95ceebd1 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x95e62e23 ppp_input_error +EXPORT_SYMBOL vmlinux 0x95f89a33 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x95fcea29 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x9600168c kobject_add +EXPORT_SYMBOL vmlinux 0x96058edd request_firmware +EXPORT_SYMBOL vmlinux 0x960c66c2 netdev_warn +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x966c6ffc blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x967d7541 md_check_recovery +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96958bce scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x9696ac72 rename_lock +EXPORT_SYMBOL vmlinux 0x96a592f6 seq_puts +EXPORT_SYMBOL vmlinux 0x96ac6439 pipe_unlock +EXPORT_SYMBOL vmlinux 0x96b2474d __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x96c7e43b seq_printf +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96d8de01 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x96e087a1 ata_dev_printk +EXPORT_SYMBOL vmlinux 0x96e79739 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x97166fd0 d_splice_alias +EXPORT_SYMBOL vmlinux 0x973562c0 default_llseek +EXPORT_SYMBOL vmlinux 0x973697d1 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975aa79d vfs_getattr +EXPORT_SYMBOL vmlinux 0x9768761a wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97b606ac fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x97ca54c6 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x97d9c768 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97deb3c0 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x97ff1c85 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x9801cf43 netpoll_setup +EXPORT_SYMBOL vmlinux 0x981e3aaa bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989b06e9 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x98cdc960 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x98de61fa simple_link +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x98fa4e1c genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x9926a732 update_region +EXPORT_SYMBOL vmlinux 0x9928ebb2 dump_write +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x9984f355 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x9997de5f tty_port_hangup +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99b34274 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x99b50dfa netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99e7bd24 register_qdisc +EXPORT_SYMBOL vmlinux 0x99fcfdd9 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x9a008569 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1ec4c8 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x9a2a9ce1 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x9a2e3939 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x9a43f33c bio_map_kern +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a7fb634 page_readlink +EXPORT_SYMBOL vmlinux 0x9aae2af6 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x9ab8808c param_get_charp +EXPORT_SYMBOL vmlinux 0x9ae7011f lookup_hash +EXPORT_SYMBOL vmlinux 0x9b098cb5 dev_trans_start +EXPORT_SYMBOL vmlinux 0x9b314093 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b612d86 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b75cb81 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bbc9dd7 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x9bdaa010 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x9be62ffe cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x9bf68e21 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0daa66 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x9c23bcba atomic64_add_return_cx8 +EXPORT_SYMBOL vmlinux 0x9c28f5bb pci_set_mwi +EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero +EXPORT_SYMBOL vmlinux 0x9c388c50 pci_iomap +EXPORT_SYMBOL vmlinux 0x9c463a69 register_8022_client +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c5f81da cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x9c60706e names_cachep +EXPORT_SYMBOL vmlinux 0x9c6114dd jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x9c81090f xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x9c8ecd26 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x9ca6a092 mpage_readpage +EXPORT_SYMBOL vmlinux 0x9cb686e9 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x9cb830d2 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cd3a2f8 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce177a4 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d01bd09 mdiobus_read +EXPORT_SYMBOL vmlinux 0x9d03b742 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9d1959c9 km_state_notify +EXPORT_SYMBOL vmlinux 0x9d2728b2 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x9d295ed7 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d4b3cae inode_needs_sync +EXPORT_SYMBOL vmlinux 0x9d4bc48e blk_put_queue +EXPORT_SYMBOL vmlinux 0x9d6d0df0 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x9d79fc9b inet6_ioctl +EXPORT_SYMBOL vmlinux 0x9d982765 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x9db9df09 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x9ddac7fe ppp_input +EXPORT_SYMBOL vmlinux 0x9df012f9 tty_shutdown +EXPORT_SYMBOL vmlinux 0x9dfeb2df pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e447289 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x9e4648ab set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x9e46d846 pci_biosrom_size +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e607910 audit_log +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e7249f0 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x9e796410 get_phy_id +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e955cd8 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ed13c7e nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f5cdc98 journal_force_commit +EXPORT_SYMBOL vmlinux 0x9f838b41 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9e1787 __destroy_inode +EXPORT_SYMBOL vmlinux 0x9f9f8038 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x9fb2aa48 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fbec13e __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x9fcaaee8 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0xa0471303 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06735c5 notify_change +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa09fc008 input_flush_device +EXPORT_SYMBOL vmlinux 0xa0a890de request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xa0accd3b d_prune_aliases +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3996d key_alloc +EXPORT_SYMBOL vmlinux 0xa0d68d58 skb_checksum +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f69049 kern_path_create +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff2b20 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1176147 pci_clear_master +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12e7bf7 kill_bdev +EXPORT_SYMBOL vmlinux 0xa1325af4 km_query +EXPORT_SYMBOL vmlinux 0xa1399110 register_md_personality +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1715001 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xa1789cc2 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xa1805d2a otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xa18965b3 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xa1a2f529 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xa1a62c29 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xa1b1ea3a security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xa1b5ab56 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xa1b7476c sk_receive_skb +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1b7909a journal_stop +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1c5a3b3 cleancache_enabled +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1da5d82 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xa1dff9bb netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0xa1f61226 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xa1f74856 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa22294f5 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xa22492da mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xa2381b50 nla_append +EXPORT_SYMBOL vmlinux 0xa262ffd4 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xa26f6f4a pci_choose_state +EXPORT_SYMBOL vmlinux 0xa2815fb2 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa285da49 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xa2a595e3 block_truncate_page +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b3b417 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xa2c56c31 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f17c63 bioset_create +EXPORT_SYMBOL vmlinux 0xa312b53a netlink_set_err +EXPORT_SYMBOL vmlinux 0xa319ced4 lock_may_read +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa3284a7e agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33c346c i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xa3404920 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa34f5b45 bio_endio +EXPORT_SYMBOL vmlinux 0xa3504378 rwsem_wake +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa360fc42 vfs_create +EXPORT_SYMBOL vmlinux 0xa363dab4 udp_table +EXPORT_SYMBOL vmlinux 0xa3794560 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xa380fb0b get_io_context +EXPORT_SYMBOL vmlinux 0xa3ac3fa1 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xa3afaf3e journal_init_dev +EXPORT_SYMBOL vmlinux 0xa3c31b7c generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xa3cea1a6 __put_cred +EXPORT_SYMBOL vmlinux 0xa3d6960e xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xa3de105c pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xa3e53745 bio_put +EXPORT_SYMBOL vmlinux 0xa3f520c3 get_user_pages +EXPORT_SYMBOL vmlinux 0xa40900fc xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xa41736ca pci_write_vpd +EXPORT_SYMBOL vmlinux 0xa41d55b8 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xa42643f5 bh_submit_read +EXPORT_SYMBOL vmlinux 0xa439059e xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b7c71 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa43d1e72 vc_resize +EXPORT_SYMBOL vmlinux 0xa44ac379 ether_setup +EXPORT_SYMBOL vmlinux 0xa4670fc9 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xa4ae6e2f vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xa4b1907a wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c0b6e4 tty_register_driver +EXPORT_SYMBOL vmlinux 0xa4c6af7c tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xa4c7d6f0 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4eb4eff _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xa5060cbd ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa51eac01 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xa52ba9c0 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xa5365f38 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xa54c1516 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xa55cff52 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xa57c45df inode_init_always +EXPORT_SYMBOL vmlinux 0xa5876fcc scsi_print_result +EXPORT_SYMBOL vmlinux 0xa58ad421 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5c7af5d tcp_seq_open +EXPORT_SYMBOL vmlinux 0xa5ccc5e5 napi_gro_flush +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa5e99861 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xa6064db5 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xa607a3ee log_wait_commit +EXPORT_SYMBOL vmlinux 0xa60af5e9 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xa60f20e1 request_key +EXPORT_SYMBOL vmlinux 0xa62e6e4f acpi_get_table_with_size +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67da660 mempool_alloc +EXPORT_SYMBOL vmlinux 0xa67e2845 dq_data_lock +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6926457 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6b13658 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xa6cf7d1e xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa7043528 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71b2c72 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa748465f phy_connect_direct +EXPORT_SYMBOL vmlinux 0xa75f5398 bdget +EXPORT_SYMBOL vmlinux 0xa7742968 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xa7971772 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xa7a3999e i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xa7ba77e4 d_rehash +EXPORT_SYMBOL vmlinux 0xa7d74f92 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xa7edf601 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xa80bae16 get_phy_device +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa82c1343 nobh_write_end +EXPORT_SYMBOL vmlinux 0xa84e8ea1 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xa85540bb netif_device_attach +EXPORT_SYMBOL vmlinux 0xa869f06e cad_pid +EXPORT_SYMBOL vmlinux 0xa8756491 dev_driver_string +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8c664d4 dev_addr_init +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8fb6345 pnp_find_dev +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa919372d eth_header +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa94cd42d find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xa9537a47 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xa955f0c6 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xa9596b43 padata_free +EXPORT_SYMBOL vmlinux 0xa95e70bf padata_add_cpu +EXPORT_SYMBOL vmlinux 0xa968d23d uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xa96948ef iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xa96caa11 pcim_iomap +EXPORT_SYMBOL vmlinux 0xa97f69c8 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0xa99a6f69 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xa9a4b8fb ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xa9c1b627 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xa9c7c907 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xa9fd3ab8 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xaa04059c scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xaa064fb9 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xaa273a83 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xaa6388a5 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xaa667732 tty_name +EXPORT_SYMBOL vmlinux 0xaa68e95d tcf_em_register +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa72a623 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa8d8b4e kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaa8ff3b0 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaab9f7e7 node_states +EXPORT_SYMBOL vmlinux 0xaad475aa __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab218899 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xab259add dev_notice +EXPORT_SYMBOL vmlinux 0xab28271c i8253_lock +EXPORT_SYMBOL vmlinux 0xab3eb7f4 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xab3f8baf input_register_handle +EXPORT_SYMBOL vmlinux 0xab4e15c2 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xab5b2d45 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab74491f tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab976d69 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xab98a6f7 md_write_start +EXPORT_SYMBOL vmlinux 0xaba7ed15 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabcbd5d2 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabead9e4 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac2bd794 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xac35daa6 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xac386526 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac593e2a new_inode +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0xac6b0305 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xac78f3e3 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xac7949d9 generic_getxattr +EXPORT_SYMBOL vmlinux 0xac7ce326 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0xac7db58f give_up_console +EXPORT_SYMBOL vmlinux 0xac83cb16 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xac869c49 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xac9dce53 seq_open +EXPORT_SYMBOL vmlinux 0xaca47557 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xaca793d1 posix_lock_file +EXPORT_SYMBOL vmlinux 0xacacb76a pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace506b8 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xace56e50 write_cache_pages +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf78831 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0xacf7f2f6 lock_super +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad07f027 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad23de98 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xad242fbd mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xad3ad5bb __napi_schedule +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad5c7466 check_disk_change +EXPORT_SYMBOL vmlinux 0xad69020b __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xad703466 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xad7480b5 mca_device_claimed +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad887003 register_framebuffer +EXPORT_SYMBOL vmlinux 0xad970fb7 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xad9ca333 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadbb9ff3 tty_hangup +EXPORT_SYMBOL vmlinux 0xadbe32c6 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xadd89a37 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xadda767b atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xadecf492 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xadf39c7a call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xae0f87ab scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xae112354 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xae3421a8 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xae44d904 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xae508c8f tcp_disconnect +EXPORT_SYMBOL vmlinux 0xae58b607 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xae70d57f max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xae91c8b2 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeb45def journal_restart +EXPORT_SYMBOL vmlinux 0xaebaf265 bio_split +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf611eac amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0xaf85574d pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xaf8ea913 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf9cd405 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xafa1c369 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xafb551a5 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0xafbed235 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xafe537e4 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xb0126e4e scsi_device_put +EXPORT_SYMBOL vmlinux 0xb0146c3a param_set_byte +EXPORT_SYMBOL vmlinux 0xb0207ecf ___ratelimit +EXPORT_SYMBOL vmlinux 0xb0268ebd agp_enable +EXPORT_SYMBOL vmlinux 0xb0516c42 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xb05a75f1 tty_mutex +EXPORT_SYMBOL vmlinux 0xb05c4c7c ip6_route_output +EXPORT_SYMBOL vmlinux 0xb0657392 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb0a8fd0a intel_gtt_unmap_memory +EXPORT_SYMBOL vmlinux 0xb0a950a7 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xb0b69979 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb12098c1 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1316306 journal_load +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb17f865d __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xb18f100a splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xb192a1fa shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb199f052 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xb1a94e3e jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xb1b2f10f mca_device_write_pos +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c40fb6 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0xb1cf7fcf dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d9523e wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1f871e5 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb225e54e aio_put_req +EXPORT_SYMBOL vmlinux 0xb24d15a3 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xb26706dc jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2744b36 down_write_trylock +EXPORT_SYMBOL vmlinux 0xb27d00dd pci_disable_msi +EXPORT_SYMBOL vmlinux 0xb2c06587 register_cdrom +EXPORT_SYMBOL vmlinux 0xb2eb8220 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb31f1491 mdiobus_write +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb334810a bdi_init +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb3640bb1 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xb3642051 input_set_capability +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3bef65c inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xb3bfe835 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xb3c061e8 force_sig +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb3e8cec2 lock_rename +EXPORT_SYMBOL vmlinux 0xb412edcd ab8500_gpadc_read_raw +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4372f24 pci_save_state +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb43c8124 pci_enable_obff +EXPORT_SYMBOL vmlinux 0xb44f982d pneigh_lookup +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4765659 journal_flush +EXPORT_SYMBOL vmlinux 0xb47b5fa7 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xb48a00ec page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xb495ef9d udplite_prot +EXPORT_SYMBOL vmlinux 0xb4961e85 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xb49f30ad bitmap_unplug +EXPORT_SYMBOL vmlinux 0xb4b6a2a4 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xb4ba3de3 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xb4be5e33 cdrom_release +EXPORT_SYMBOL vmlinux 0xb4d3bdc5 path_put +EXPORT_SYMBOL vmlinux 0xb4e77f99 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb51fee7f call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54715d6 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xb55d9511 simple_rename +EXPORT_SYMBOL vmlinux 0xb5665f21 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xb581656d arp_create +EXPORT_SYMBOL vmlinux 0xb5845d1e flush_signals +EXPORT_SYMBOL vmlinux 0xb5845d35 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xb592d2e2 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a4a7a1 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5ee6415 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xb5fb870b commit_creds +EXPORT_SYMBOL vmlinux 0xb5fe3800 journal_clear_err +EXPORT_SYMBOL vmlinux 0xb60c2857 simple_setattr +EXPORT_SYMBOL vmlinux 0xb61e1bb5 lookup_one_len +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb6523225 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb6588e7a idr_remove +EXPORT_SYMBOL vmlinux 0xb661399f blkdev_fsync +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb690fbc1 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xb691e221 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6bdc43f qdisc_list_del +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cc4de2 tty_check_change +EXPORT_SYMBOL vmlinux 0xb6d06d3b __netif_schedule +EXPORT_SYMBOL vmlinux 0xb6d7dea5 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xb6e5de92 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6f40f11 journal_get_create_access +EXPORT_SYMBOL vmlinux 0xb73fd53c mount_subtree +EXPORT_SYMBOL vmlinux 0xb74d8cad pnp_get_resource +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb769b772 input_inject_event +EXPORT_SYMBOL vmlinux 0xb773f441 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xb78c61e8 param_ops_bool +EXPORT_SYMBOL vmlinux 0xb7aa87b4 neigh_lookup +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7f8a7bd bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xb7fc1d2e vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb825e56a scsi_host_put +EXPORT_SYMBOL vmlinux 0xb82f4c1b abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xb8339838 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb857abb2 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xb863e8df seq_putc +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8759454 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb898e4a5 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8a3f5dd skb_queue_tail +EXPORT_SYMBOL vmlinux 0xb8a732b3 km_report +EXPORT_SYMBOL vmlinux 0xb8de98ab inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xb8e25037 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xb8e48027 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb8eecc19 proc_create_data +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb9171839 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0xb9474499 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xb960dace dump_trace +EXPORT_SYMBOL vmlinux 0xb988ec0a inet_stream_connect +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99cf582 ida_get_new_above +EXPORT_SYMBOL vmlinux 0xb9a13541 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xb9ad2b37 napi_complete +EXPORT_SYMBOL vmlinux 0xb9ae656a bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xb9b054f6 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xb9c69a99 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xb9c7b9e9 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0xb9e44ca9 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xb9f8d764 dquot_initialize +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xb9ff2ec8 dma_pool_create +EXPORT_SYMBOL vmlinux 0xba2a3694 fb_pan_display +EXPORT_SYMBOL vmlinux 0xba2bf109 init_net +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba4692fa padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5e63ef loop_register_transfer +EXPORT_SYMBOL vmlinux 0xba77d69e blk_requeue_request +EXPORT_SYMBOL vmlinux 0xba8ea6ad rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbab02fd6 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xbafbcfb6 con_is_bound +EXPORT_SYMBOL vmlinux 0xbb0351a4 tty_devnum +EXPORT_SYMBOL vmlinux 0xbb03be92 dentry_open +EXPORT_SYMBOL vmlinux 0xbb064e58 dma_ops +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3e1c38 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xbb556c69 framebuffer_release +EXPORT_SYMBOL vmlinux 0xbb57acb2 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb7ac605 brioctl_set +EXPORT_SYMBOL vmlinux 0xbb837d27 machine_real_restart +EXPORT_SYMBOL vmlinux 0xbb8579f1 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbaf01d5 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xbbd35d53 console_stop +EXPORT_SYMBOL vmlinux 0xbbd9e245 security_file_permission +EXPORT_SYMBOL vmlinux 0xbbfbf174 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xbc0d333c generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xbc1afedf up_write +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc22a134 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xbc4eacd1 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xbc992d2a skb_find_text +EXPORT_SYMBOL vmlinux 0xbca183e6 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd3d227 skb_append +EXPORT_SYMBOL vmlinux 0xbcdff7a3 unload_nls +EXPORT_SYMBOL vmlinux 0xbd016a37 fb_class +EXPORT_SYMBOL vmlinux 0xbd5f87d6 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xbd66e459 simple_write_begin +EXPORT_SYMBOL vmlinux 0xbd6dc7f5 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xbd7a7c5c udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xbd8bf071 pci_dev_get +EXPORT_SYMBOL vmlinux 0xbd982fb2 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc20c68 intel_gtt_get +EXPORT_SYMBOL vmlinux 0xbdc89e2c find_inode_number +EXPORT_SYMBOL vmlinux 0xbdd328af dput +EXPORT_SYMBOL vmlinux 0xbdd66f9e simple_readpage +EXPORT_SYMBOL vmlinux 0xbde26e36 scsi_put_command +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe445cf1 neigh_create +EXPORT_SYMBOL vmlinux 0xbe5879e4 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xbe5b3468 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xbe5c0cbf neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xbe5ef38b kthread_bind +EXPORT_SYMBOL vmlinux 0xbe752461 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xbe7d0fd0 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xbe952ee6 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xbebe21f0 skb_put +EXPORT_SYMBOL vmlinux 0xbec49960 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xbeca9da8 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xbecf9823 lro_flush_all +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbeef82db neigh_destroy +EXPORT_SYMBOL vmlinux 0xbef1af04 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef7d512 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xbf0155e8 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xbf11f955 journal_ack_err +EXPORT_SYMBOL vmlinux 0xbf33e3db jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xbf6163df blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xbf70e9a5 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0xbf75cef0 dev_open +EXPORT_SYMBOL vmlinux 0xbf7cde7a abort_creds +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8a3224 put_mnt_ns +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfad6ec5 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xbfb47308 bdi_unregister +EXPORT_SYMBOL vmlinux 0xbfb5c0f5 __alloc_skb +EXPORT_SYMBOL vmlinux 0xbfb78c4f padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe4318f mmc_remove_host +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc0189841 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xc01cf848 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc0347ad7 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xc03fc99f __pagevec_release +EXPORT_SYMBOL vmlinux 0xc0530fa2 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xc0543971 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc06e920c xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xc0741c80 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0bda512 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xc0d39b77 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xc0d499e2 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc1201721 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xc1372b81 pci_target_state +EXPORT_SYMBOL vmlinux 0xc1465449 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xc155ddf2 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xc1705579 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xc181bc96 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xc18b0d86 pci_set_master +EXPORT_SYMBOL vmlinux 0xc1a35d4d dev_alloc_name +EXPORT_SYMBOL vmlinux 0xc1b0ce7d mmc_start_req +EXPORT_SYMBOL vmlinux 0xc1ba1775 key_reject_and_link +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d9227a __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xc1eea0dd alloc_fcdev +EXPORT_SYMBOL vmlinux 0xc215c0af pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xc232dfa6 key_task_permission +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24d40b6 dget_parent +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26b0020 registered_fb +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f916b3 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xc316b98c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0xc31ab49e skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xc31efe0a jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xc33298df kobject_put +EXPORT_SYMBOL vmlinux 0xc3333970 input_open_device +EXPORT_SYMBOL vmlinux 0xc336ef4e pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xc337fe7d sg_miter_start +EXPORT_SYMBOL vmlinux 0xc357e360 agp_create_memory +EXPORT_SYMBOL vmlinux 0xc399d533 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xc3a4cc98 mmc_free_host +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3b73fe2 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xc3c64e80 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc3c7df92 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc3fa750c security_inode_readlink +EXPORT_SYMBOL vmlinux 0xc3fe87c8 param_ops_uint +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc4115ef9 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xc41e8f7a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xc42c742b generic_writepages +EXPORT_SYMBOL vmlinux 0xc4347225 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xc4554217 up +EXPORT_SYMBOL vmlinux 0xc474b1db alloc_file +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4af075f kill_pgrp +EXPORT_SYMBOL vmlinux 0xc4b5e170 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xc4ca747e bdi_register_dev +EXPORT_SYMBOL vmlinux 0xc4f0efe4 empty_aops +EXPORT_SYMBOL vmlinux 0xc4f90a1d jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xc50a10be dev_activate +EXPORT_SYMBOL vmlinux 0xc5290322 mount_single +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc566ba55 blk_peek_request +EXPORT_SYMBOL vmlinux 0xc5734835 current_task +EXPORT_SYMBOL vmlinux 0xc58ef16c dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xc5996ba3 inode_change_ok +EXPORT_SYMBOL vmlinux 0xc5a348e5 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xc5a37aa8 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0xc5ab8648 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xc5d33e10 journal_wipe +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5e7cb74 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc5f52646 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xc6064f6a pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xc6175d41 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xc61fe364 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xc6308688 set_disk_ro +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc63cc125 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc6478578 make_bad_inode +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc66a9ae4 km_policy_notify +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6a6ded1 dev_load +EXPORT_SYMBOL vmlinux 0xc6aec70b pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xc6b06bcb i2c_master_send +EXPORT_SYMBOL vmlinux 0xc6b1278b should_remove_suid +EXPORT_SYMBOL vmlinux 0xc6b9b062 journal_start_commit +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6e528b1 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0xc6e7548b neigh_update +EXPORT_SYMBOL vmlinux 0xc6fbae98 sock_update_classid +EXPORT_SYMBOL vmlinux 0xc70efe24 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xc7171e4f arp_find +EXPORT_SYMBOL vmlinux 0xc718e93d tcp_ioctl +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc72350c6 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xc738239e pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xc73ac435 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc788f86c sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a148fd pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ae6c56 set_device_ro +EXPORT_SYMBOL vmlinux 0xc7d3c075 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xc7e9a028 put_io_context +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7ee2bc2 f_setown +EXPORT_SYMBOL vmlinux 0xc7fd89b3 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xc8017583 dev_addr_flush +EXPORT_SYMBOL vmlinux 0xc80b8b17 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xc81ae9b1 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc881ca4e neigh_event_ns +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a145dc ata_print_version +EXPORT_SYMBOL vmlinux 0xc8b3091c jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xc8b38e9e blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b7639a agp_bridge +EXPORT_SYMBOL vmlinux 0xc8e9d244 fb_blank +EXPORT_SYMBOL vmlinux 0xc8edc0af bdev_read_only +EXPORT_SYMBOL vmlinux 0xc8f33ada qdisc_reset +EXPORT_SYMBOL vmlinux 0xc929a99d directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xc934a832 generic_make_request +EXPORT_SYMBOL vmlinux 0xc94fa003 irq_stat +EXPORT_SYMBOL vmlinux 0xc95fc38d cap_file_mmap +EXPORT_SYMBOL vmlinux 0xc9672a90 freeze_bdev +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99cb702 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9d4d4a0 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xc9de9fa1 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xc9e79ca7 dev_mc_init +EXPORT_SYMBOL vmlinux 0xc9f97f5e dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xca19102b ht_create_irq +EXPORT_SYMBOL vmlinux 0xca2c048b netif_carrier_off +EXPORT_SYMBOL vmlinux 0xca4a4a39 blk_register_region +EXPORT_SYMBOL vmlinux 0xca534916 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca7806d1 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca975c25 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xca9d0b05 sock_map_fd +EXPORT_SYMBOL vmlinux 0xcabb20ce genl_register_mc_group +EXPORT_SYMBOL vmlinux 0xcac144a3 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xcacb0550 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xcad02e35 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xcae84c50 set_create_files_as +EXPORT_SYMBOL vmlinux 0xcaf6279e sk_common_release +EXPORT_SYMBOL vmlinux 0xcb451e56 idr_init +EXPORT_SYMBOL vmlinux 0xcb48a677 pci_find_bus +EXPORT_SYMBOL vmlinux 0xcb4e33b6 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xcb502c92 dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb9605ff pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xcb99edb0 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0xcba56e11 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbd1cea4 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xcbeb52d4 soft_cursor +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc286725 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc3e3f05 register_snap_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc695e4f mmc_add_host +EXPORT_SYMBOL vmlinux 0xcc69c7fc framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xcc6f39a4 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xcc734c75 dquot_destroy +EXPORT_SYMBOL vmlinux 0xcc7f9481 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xccba0ffb md_error +EXPORT_SYMBOL vmlinux 0xccbb451e proto_unregister +EXPORT_SYMBOL vmlinux 0xccdc697e __brelse +EXPORT_SYMBOL vmlinux 0xcce56611 generic_readlink +EXPORT_SYMBOL vmlinux 0xcd255c8e pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd34d312 acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0xcd41ad5d inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xcd507b8f input_get_keycode +EXPORT_SYMBOL vmlinux 0xcd5e8f5b xfrm_input +EXPORT_SYMBOL vmlinux 0xcd75afb6 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xcd922ba7 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xcda7cdec bioset_free +EXPORT_SYMBOL vmlinux 0xcdb9d1a7 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xcdd85af8 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xcddd486f dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xcde17085 tcp_prot +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde963eb bdi_destroy +EXPORT_SYMBOL vmlinux 0xcdf636b0 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce24de2c acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce7afe46 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xceb0d850 phy_driver_register +EXPORT_SYMBOL vmlinux 0xceb78f83 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xcecd40dc cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xced36cc9 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xced7fec0 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcefdcfea inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xcf015f7b do_settimeofday +EXPORT_SYMBOL vmlinux 0xcf166016 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf2e18b9 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xcf46d6c6 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0xcf676fe9 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf716091 dev_printk +EXPORT_SYMBOL vmlinux 0xcf9a1108 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xcfa57638 netif_rx +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfd0ff75 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xcfe53da6 genl_register_family +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcff0d487 end_page_writeback +EXPORT_SYMBOL vmlinux 0xcff7523e dev_uc_add +EXPORT_SYMBOL vmlinux 0xcff79c40 single_open +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd057c454 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xd070b09b dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd092b01d d_obtain_alias +EXPORT_SYMBOL vmlinux 0xd09f06d4 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f0d945 down_read +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0f91701 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd110a2f4 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd11f3674 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xd1280d0b tty_register_device +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd147d79c security_path_rename +EXPORT_SYMBOL vmlinux 0xd172cb8d netdev_increment_features +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1b8382e vfs_read +EXPORT_SYMBOL vmlinux 0xd1c3c512 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd2147e84 __bio_clone +EXPORT_SYMBOL vmlinux 0xd21b8670 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xd2307beb xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xd2329de3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xd245a2df input_set_keycode +EXPORT_SYMBOL vmlinux 0xd24ac18f unregister_key_type +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd25f7f9e eth_header_cache +EXPORT_SYMBOL vmlinux 0xd266efe7 mempool_create +EXPORT_SYMBOL vmlinux 0xd276f795 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xd282938c simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xd28a38b6 dquot_disable +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29bb11d max8998_update_reg +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2dfec67 kernel_read +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd30f1a80 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd35e249a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0xd36baf49 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xd36da4e1 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xd371cebf sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3afcd9a tty_write_room +EXPORT_SYMBOL vmlinux 0xd3b7f96e i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xd3c08471 gen_pool_create +EXPORT_SYMBOL vmlinux 0xd3da0b30 nobh_writepage +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd41b42fd cont_write_begin +EXPORT_SYMBOL vmlinux 0xd4391057 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xd46f48e8 cdev_init +EXPORT_SYMBOL vmlinux 0xd4a961ce simple_release_fs +EXPORT_SYMBOL vmlinux 0xd4baefe3 follow_pfn +EXPORT_SYMBOL vmlinux 0xd4e8e9e8 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xd50e27fd ip_ct_attach +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd535eee1 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd57df93c bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xd58d5082 key_put +EXPORT_SYMBOL vmlinux 0xd5a503d5 serio_open +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b1376d register_shrinker +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd5ffe37b eth_type_trans +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd6196755 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xd61f2ad0 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xd629316a llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd65d69e0 bio_clone +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7001850 pci_restore_state +EXPORT_SYMBOL vmlinux 0xd716f9dc pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xd71bb744 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xd7411447 generic_setxattr +EXPORT_SYMBOL vmlinux 0xd74e8001 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd768530d xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xd779037b dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd77a3707 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd77d2dd6 dquot_alloc +EXPORT_SYMBOL vmlinux 0xd780977b __quota_error +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7ae193e inet_recvmsg +EXPORT_SYMBOL vmlinux 0xd7bd3af2 add_wait_queue +EXPORT_SYMBOL vmlinux 0xd7dcc64f filp_open +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd802289d register_sysctl_table +EXPORT_SYMBOL vmlinux 0xd803779c fb_find_mode +EXPORT_SYMBOL vmlinux 0xd818a08a __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xd822e250 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xd83758d0 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xd857f5bb i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xd85833cb __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xd85df7d4 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xd861e930 genl_register_ops +EXPORT_SYMBOL vmlinux 0xd86a77f5 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a032b6 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8b13249 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xd8ca28c9 pci_bus_type +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd936101c security_path_chmod +EXPORT_SYMBOL vmlinux 0xd95659d1 __devm_request_region +EXPORT_SYMBOL vmlinux 0xd95e402c netif_rx_ni +EXPORT_SYMBOL vmlinux 0xd964584a iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xd969b2c7 amd_e400_c1e_detected +EXPORT_SYMBOL vmlinux 0xd97889f1 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xd97da0dd __scsi_put_command +EXPORT_SYMBOL vmlinux 0xd98567e4 get_disk +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9a4ec1a cfb_imageblit +EXPORT_SYMBOL vmlinux 0xd9b764c4 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xd9b96c9c gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9c64ee1 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda286122 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xda3e496c complete_request_key +EXPORT_SYMBOL vmlinux 0xda73dc62 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda7e4fe4 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdab5883b mca_device_set_claim +EXPORT_SYMBOL vmlinux 0xdae86fd2 kmap_high +EXPORT_SYMBOL vmlinux 0xdaf3427d mmc_can_trim +EXPORT_SYMBOL vmlinux 0xdafe10fd ab3100_event_register +EXPORT_SYMBOL vmlinux 0xdafe7345 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xdb0d23d5 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb73f5aa mdiobus_register +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb9e2c22 posix_acl_create +EXPORT_SYMBOL vmlinux 0xdbb14bec serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc05fc04 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2519e0 param_set_ulong +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2fbf8f input_free_device +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc46ba54 serio_rescan +EXPORT_SYMBOL vmlinux 0xdc579ac6 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc9c3939 do_splice_from +EXPORT_SYMBOL vmlinux 0xdcc46b52 simple_write_end +EXPORT_SYMBOL vmlinux 0xdccca046 override_creds +EXPORT_SYMBOL vmlinux 0xdcdb6342 pipe_lock +EXPORT_SYMBOL vmlinux 0xdce05384 dev_add_pack +EXPORT_SYMBOL vmlinux 0xdd02f61e sock_no_connect +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd10a224 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xdd1a2871 down +EXPORT_SYMBOL vmlinux 0xdd1c65f6 blk_finish_plug +EXPORT_SYMBOL vmlinux 0xdd1f838c vfs_follow_link +EXPORT_SYMBOL vmlinux 0xdd312a37 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xdd521f5c phy_disconnect +EXPORT_SYMBOL vmlinux 0xdd5a0aa4 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xdd73a191 dma_supported +EXPORT_SYMBOL vmlinux 0xdd785666 simple_fill_super +EXPORT_SYMBOL vmlinux 0xdda7bdf3 textsearch_register +EXPORT_SYMBOL vmlinux 0xddd6fa29 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xddd740df pci_get_device +EXPORT_SYMBOL vmlinux 0xddf0110d journal_lock_updates +EXPORT_SYMBOL vmlinux 0xde01ee09 vfs_unlink +EXPORT_SYMBOL vmlinux 0xde14978a thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xde1e3627 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xde422163 __break_lease +EXPORT_SYMBOL vmlinux 0xde88176d mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdec4c7d1 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xdec778f6 ida_get_new +EXPORT_SYMBOL vmlinux 0xdeed5e80 mca_unregister_driver +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf0f8fb1 end_writeback +EXPORT_SYMBOL vmlinux 0xdf392767 security_path_symlink +EXPORT_SYMBOL vmlinux 0xdf42915f acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf4f06d2 generic_listxattr +EXPORT_SYMBOL vmlinux 0xdf507b66 fb_set_var +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf8c21c7 key_revoke +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf92cb81 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xdf9fa746 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfc8c051 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xe009a269 ps2_init +EXPORT_SYMBOL vmlinux 0xe04bafe9 vfs_link +EXPORT_SYMBOL vmlinux 0xe04dee70 tty_port_open +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bd2848 setattr_copy +EXPORT_SYMBOL vmlinux 0xe0dce97a may_umount_tree +EXPORT_SYMBOL vmlinux 0xe0e59a19 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xe0f22f57 mmc_card_awake +EXPORT_SYMBOL vmlinux 0xe0fc24aa param_set_int +EXPORT_SYMBOL vmlinux 0xe10a2799 pci_set_ltr +EXPORT_SYMBOL vmlinux 0xe1196220 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe16df5a1 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1a74ae4 vc_cons +EXPORT_SYMBOL vmlinux 0xe1af8f1d dcache_dir_open +EXPORT_SYMBOL vmlinux 0xe1bb718a napi_gro_frags +EXPORT_SYMBOL vmlinux 0xe1ea6649 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xe1efb0ae napi_frags_finish +EXPORT_SYMBOL vmlinux 0xe1fee0fb neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe204bcda lookup_bdev +EXPORT_SYMBOL vmlinux 0xe21f49ca iterate_supers_type +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24244cf xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xe2496296 padata_stop +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe26367b8 put_tty_driver +EXPORT_SYMBOL vmlinux 0xe28ba735 tcp_check_req +EXPORT_SYMBOL vmlinux 0xe29bb261 phy_print_status +EXPORT_SYMBOL vmlinux 0xe2b28266 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xe2d0e69c tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d83f33 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xe2e50c6c d_invalidate +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2ee6c32 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xe2f51b71 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe2fc4044 kmap +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe3403d3d __secpath_destroy +EXPORT_SYMBOL vmlinux 0xe34249ae clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xe3918410 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3df98b2 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe41433bd unlock_super +EXPORT_SYMBOL vmlinux 0xe4173d5a pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe44b67d9 generic_file_open +EXPORT_SYMBOL vmlinux 0xe45f60d8 __wake_up +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49196b9 sock_i_uid +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe49d1dd6 simple_getattr +EXPORT_SYMBOL vmlinux 0xe4a36abf address_space_init_once +EXPORT_SYMBOL vmlinux 0xe4bf387f agp_put_bridge +EXPORT_SYMBOL vmlinux 0xe4f50387 md_register_thread +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe51884d3 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5307f0b generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe53fb84f input_close_device +EXPORT_SYMBOL vmlinux 0xe567f86d pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xe5703a31 sock_no_accept +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57e250f __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5938884 may_umount +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5dc53a1 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xe5e12de1 netlink_ack +EXPORT_SYMBOL vmlinux 0xe5e948e5 page_symlink +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe60d3a1a __lru_cache_add +EXPORT_SYMBOL vmlinux 0xe613668d intel_gmch_remove +EXPORT_SYMBOL vmlinux 0xe61a7f18 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xe65ca144 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69ceb72 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xe6adec21 eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0xe6b3fe21 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xe6c5b5e5 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xe6c8e8c4 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xe6d76f29 bio_add_page +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f2d6db tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fc9bc5 journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe71fb9b2 blkdev_get +EXPORT_SYMBOL vmlinux 0xe73dceab sync_blockdev +EXPORT_SYMBOL vmlinux 0xe73f7752 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xe7556aae bio_integrity_free +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe77713c7 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xe78c9c2c inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7af97a8 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xe7d44a55 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d8980c pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xe7f7ffe9 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8304a3d mem_map +EXPORT_SYMBOL vmlinux 0xe834b7dd ip_route_input_common +EXPORT_SYMBOL vmlinux 0xe8485de3 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xe8543fce ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xe8642ce7 journal_set_features +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe8b3564c install_exec_creds +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe8cec689 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xe8d15ef2 skb_seq_read +EXPORT_SYMBOL vmlinux 0xe8ebf346 ab8500_gpadc_ad_to_voltage +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe988ec11 dev_err +EXPORT_SYMBOL vmlinux 0xe98a7fef md_flush_request +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9a8718b kernel_getpeername +EXPORT_SYMBOL vmlinux 0xe9c1f984 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xe9c5a3eb pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xe9d37477 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xe9eadbb9 udp_ioctl +EXPORT_SYMBOL vmlinux 0xe9f8812c mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea2c5c35 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xea5bac94 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea8a6c75 param_ops_long +EXPORT_SYMBOL vmlinux 0xea8fb41c i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea95297d scm_fp_dup +EXPORT_SYMBOL vmlinux 0xea9742f0 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeab95e7f elv_register_queue +EXPORT_SYMBOL vmlinux 0xeabb6522 send_sig_info +EXPORT_SYMBOL vmlinux 0xeabd18e2 kobject_set_name +EXPORT_SYMBOL vmlinux 0xeac8457c ihold +EXPORT_SYMBOL vmlinux 0xeacc27a1 vfs_readdir +EXPORT_SYMBOL vmlinux 0xead01d4f pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeade4f3c block_write_begin +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaf89751 tcp_poll +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb49a1e7 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xeb4c9c37 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xeb568a33 pci_pme_active +EXPORT_SYMBOL vmlinux 0xeb6d8217 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xeb7ab9d0 open_exec +EXPORT_SYMBOL vmlinux 0xeb83214d pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xeb874981 skb_copy +EXPORT_SYMBOL vmlinux 0xeb8e75f4 scsi_register +EXPORT_SYMBOL vmlinux 0xeb8f284f tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0xeba677bd posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xeba6dc00 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xebac3af3 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0xebcf4bf4 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebe90da0 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec32e2d5 unlock_buffer +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec51d6a4 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xecad27fc pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xecb13746 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xecb3a5e1 clocksource_register +EXPORT_SYMBOL vmlinux 0xecb721f1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xeccd7936 fail_migrate_page +EXPORT_SYMBOL vmlinux 0xecf9f431 ip_defrag +EXPORT_SYMBOL vmlinux 0xed00b278 mount_ns +EXPORT_SYMBOL vmlinux 0xed2b392e dcb_getapp +EXPORT_SYMBOL vmlinux 0xed2dfddd blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed3285e6 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xed5cd2f9 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xed61e27b tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xed69ac5e simple_empty +EXPORT_SYMBOL vmlinux 0xed726913 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc4ebb4 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xedd0f838 module_refcount +EXPORT_SYMBOL vmlinux 0xede6362c mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xedeaa3e3 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xedf4004f ip_setsockopt +EXPORT_SYMBOL vmlinux 0xedfb5159 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xee193398 dquot_resume +EXPORT_SYMBOL vmlinux 0xee2c0cfb free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee323ab4 register_console +EXPORT_SYMBOL vmlinux 0xee3a137b cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xee53373c tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee82d27e agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xee85ad87 fput +EXPORT_SYMBOL vmlinux 0xee873c5f _dev_info +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeac4479 pci_assign_resource +EXPORT_SYMBOL vmlinux 0xef1c82f1 block_write_full_page +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef372787 pci_dev_put +EXPORT_SYMBOL vmlinux 0xef3b9f80 vmap +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef3f525e bd_set_size +EXPORT_SYMBOL vmlinux 0xef4961c9 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xef4cba51 tty_vhangup +EXPORT_SYMBOL vmlinux 0xef556b02 dev_uc_del +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe6b456 tcf_register_action +EXPORT_SYMBOL vmlinux 0xeffbe994 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0040079 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf0162a5f sk_wait_data +EXPORT_SYMBOL vmlinux 0xf03c1bfc ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06f0f4d sockfd_lookup +EXPORT_SYMBOL vmlinux 0xf0753c24 wake_up_process +EXPORT_SYMBOL vmlinux 0xf09c2922 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xf0a1b018 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xf0ac6fdb free_task +EXPORT_SYMBOL vmlinux 0xf0d959f9 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xf0eeb7d3 wireless_send_event +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f790e3 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10b318a blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf12a5c83 idr_find +EXPORT_SYMBOL vmlinux 0xf174e5a1 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xf17bf461 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xf18d674c dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19dec76 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xf1c3d4f9 phy_stop +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1faac3a _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf20dbd6d unregister_netdev +EXPORT_SYMBOL vmlinux 0xf227d62c __blk_end_request +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24e35d4 dquot_transfer +EXPORT_SYMBOL vmlinux 0xf26aad4d sock_no_bind +EXPORT_SYMBOL vmlinux 0xf28ed6e2 machine_to_phys_nr +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf29dfa15 inet_bind +EXPORT_SYMBOL vmlinux 0xf2ab0732 task_nice +EXPORT_SYMBOL vmlinux 0xf2b01dc0 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xf2b2fd10 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xf2bf3261 free_buffer_head +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf2eb3169 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xf2eb5c30 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf32055e7 dev_base_lock +EXPORT_SYMBOL vmlinux 0xf32457bf ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0xf331a08e spi_release_transport +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf338febb __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0xf33a9190 sk_filter +EXPORT_SYMBOL vmlinux 0xf34131ee __register_chrdev +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf359ce06 do_sync_read +EXPORT_SYMBOL vmlinux 0xf35ed1c9 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xf364f426 __block_write_begin +EXPORT_SYMBOL vmlinux 0xf37260ab _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xf37563b4 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf392dd95 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3a0f4f9 journal_abort +EXPORT_SYMBOL vmlinux 0xf3b82723 vm_insert_page +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ce3d6e path_get +EXPORT_SYMBOL vmlinux 0xf3cf6de1 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xf3d0de82 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xf40c0bba sock_no_poll +EXPORT_SYMBOL vmlinux 0xf41606f9 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xf42ea0b3 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf45349a0 d_lookup +EXPORT_SYMBOL vmlinux 0xf45c7f6e add_disk +EXPORT_SYMBOL vmlinux 0xf47f8e6b security_path_mknod +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf48ee255 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0xf4937684 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b201f1 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4d805d1 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xf4e686e8 make_EII_client +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f19e51 downgrade_write +EXPORT_SYMBOL vmlinux 0xf4ffab89 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf52c8353 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xf531e9d0 pci_ltr_supported +EXPORT_SYMBOL vmlinux 0xf533957f pid_task +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf541c615 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xf5433d6d blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xf54a3f68 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xf55445b2 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xf56e9a36 inet_shutdown +EXPORT_SYMBOL vmlinux 0xf58869fe nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xf58eb3e5 led_brightness_set +EXPORT_SYMBOL vmlinux 0xf5b96c9e pcim_enable_device +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c47b72 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cf326a param_ops_short +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf612809a param_get_int +EXPORT_SYMBOL vmlinux 0xf616eef1 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xf6339317 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf657dd54 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xf6744969 __f_setown +EXPORT_SYMBOL vmlinux 0xf675b7f6 netdev_err +EXPORT_SYMBOL vmlinux 0xf6888196 dquot_file_open +EXPORT_SYMBOL vmlinux 0xf697e807 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ca9274 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xf6d59d55 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xf6d8d826 init_special_inode +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f2a519 mmc_can_reset +EXPORT_SYMBOL vmlinux 0xf6f633fb simple_statfs +EXPORT_SYMBOL vmlinux 0xf71e90b1 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xf730cb13 mapping_tagged +EXPORT_SYMBOL vmlinux 0xf7329142 thaw_process +EXPORT_SYMBOL vmlinux 0xf73a1c3c no_llseek +EXPORT_SYMBOL vmlinux 0xf74261e8 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xf747dd44 kstat +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf78af32a dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7c42cea netdev_change_features +EXPORT_SYMBOL vmlinux 0xf7d214df inet_listen +EXPORT_SYMBOL vmlinux 0xf7de5ef8 spi_attach_transport +EXPORT_SYMBOL vmlinux 0xf7de7cc7 kill_pid +EXPORT_SYMBOL vmlinux 0xf7e37635 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xf7fefff3 genphy_resume +EXPORT_SYMBOL vmlinux 0xf803792b __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf8190089 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf84bba56 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xf84d3566 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xf85294c9 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xf86cd894 find_lock_page +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8a74f84 generic_fillattr +EXPORT_SYMBOL vmlinux 0xf8c5513b serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xf8f6f628 mca_register_driver +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf94d287f register_nls +EXPORT_SYMBOL vmlinux 0xf95d72f1 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xf97456ea _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xf9796d58 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xf99a2809 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9cd1b77 fsync_bdev +EXPORT_SYMBOL vmlinux 0xf9db43b6 kset_register +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9feba3f tcp_connect +EXPORT_SYMBOL vmlinux 0xfa06ea4c sk_free +EXPORT_SYMBOL vmlinux 0xfa096ed8 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xfa1790a5 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xfa1a6c7a filp_close +EXPORT_SYMBOL vmlinux 0xfa1b300a bio_init +EXPORT_SYMBOL vmlinux 0xfa30957c mempool_free +EXPORT_SYMBOL vmlinux 0xfa380f09 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xfa63733c file_update_time +EXPORT_SYMBOL vmlinux 0xfa6f8b01 set_binfmt +EXPORT_SYMBOL vmlinux 0xfaa77011 tc_classify +EXPORT_SYMBOL vmlinux 0xfaf3d563 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xfaf49712 mmc_do_release_host +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfafe56f7 iterate_mounts +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0842aa register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xfb1be686 ida_remove +EXPORT_SYMBOL vmlinux 0xfb45ef73 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xfb4b74f0 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xfb58f16e journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xfb6298d8 mnt_unpin +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7725a4 generic_show_options +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb89be95 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xfb9adc79 kill_litter_super +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb82b88 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbea587f cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xfbf5f03a jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xfbfb6416 revert_creds +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0aa038 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xfc0c4388 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xfc1cbe59 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xfc1d4dba da903x_query_status +EXPORT_SYMBOL vmlinux 0xfc263537 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xfc30813e __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfc575bb0 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xfc5e7d5d eisa_bus_type +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc7e2723 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xfc802c3d iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xfc872fd1 get_ibs_caps +EXPORT_SYMBOL vmlinux 0xfc90ecec sk_alloc +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcb2c404 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xfcb44d71 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc774cb generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf61a29 vfs_writev +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfe0ac7 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6b3d0c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd6fca6a i2c_clients_command +EXPORT_SYMBOL vmlinux 0xfd747875 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd8ca6bb __elv_add_request +EXPORT_SYMBOL vmlinux 0xfd91a2dd pci_enable_ido +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc7f3ba idr_replace +EXPORT_SYMBOL vmlinux 0xfdee7d42 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe01d3a2 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xfe20430f rfkill_alloc +EXPORT_SYMBOL vmlinux 0xfe5c9857 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe8c13b5 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xfe8cbcde bio_copy_kern +EXPORT_SYMBOL vmlinux 0xfeae3ddb generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xfeb6cfec ip6_frag_match +EXPORT_SYMBOL vmlinux 0xfec03ee6 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfec7b9e4 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xfed6293f vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2c3263 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xff3297e4 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff4d1c2c block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xff53d395 input_register_device +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffcb0e2d __nla_reserve +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfff33c73 kill_anon_super +EXPORT_SYMBOL vmlinux 0xfffde4f6 inet_select_addr +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x28afd262 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x6f068d90 twofish_dec_blk +EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0032520e kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00e08c3b gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x05ef732d gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x05f754cc gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0a3526d3 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0a70f572 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ae5be79 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0cc3052d kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f59d154 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0fe8e797 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x116457ff kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1202e9d4 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12ce07b5 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x140f6e1d kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x181b85ec kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c7afd50 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cf2ffb2 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e2ee42c kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1fdcdf67 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a2c2c5d handle_mmio_page_fault_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c6d0cfa __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e1540ed kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31 kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x301b750b kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3948584e kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3f15f9b1 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x44779b7a kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x45689b1b kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4bbe7f4b kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x549a0757 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x57f94936 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a42d089 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f8b63b8 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x60ba5bee kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x60f9e9b5 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62821d36 __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6439596f __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67431b8b kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67a7c301 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7008967f kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x706cf582 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c9b19a5 is_noslot_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7ca7e22f kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7e4054b9 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7f248d11 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x822ed17d __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82788a83 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x84f4d206 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x865bd09c gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x86700858 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x87ce8a48 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8bf95ca3 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8c319663 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8d6fb7da kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90c4970c kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90ff1656 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x922c06c5 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92daf6e1 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9ad63c67 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa1065ea4 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa14a0f14 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa18e90ae kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa23cff8f kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa4472272 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa53c56e8 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa64fd47d kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa6520825 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa91845be is_invalid_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9c75a9b kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xac0be22d kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaef6534a kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb46624e0 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb5397aa4 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb63b6605 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb8079ed6 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbaae81df kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc33d087 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbfafe0c3 __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc33e1c6b kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc65fa6b6 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc98ab3e1 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc9e879ab kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcacee6c1 kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xccfd49db kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd29c70f7 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd91510c7 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xde573785 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf9a3c02 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdfdcdc9a hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1b57793 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe40520db kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe65ffe50 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe70bf06c kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeaffc9cc __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee8ff414 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeea6ac4e is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf28c1519 x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf3423fd9 kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf3708850 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf5c5ad14 gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf8ce783b gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa4251e6 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfb6ad588 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfbbf0add kvm_requeue_exception +EXPORT_SYMBOL_GPL crypto/af_alg 0x03ce9d81 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x34cbbef7 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x752830e0 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x7e7cde9c af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x852d92e3 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x9f1fd8e2 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xc41781c9 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xefb1d1ca af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x445e54a5 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x33c3e3e0 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x8f8aa138 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x85995267 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xbc5d8533 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x541792d0 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xb5297d10 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xbf71100e __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd728ad78 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7fbcb578 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xa4c2696c async_xor +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x4ebe4203 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cryptd 0x27d9d4c9 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x2ece29a3 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x3c51e8dd cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x6a4dc4ea cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7f355eec cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xa4f97822 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xa5adc396 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xae1bc67b cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xda44cdf2 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xffb6e86e cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x0adcf80f twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1c8984c7 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x87bd07bd acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xb9a141b0 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xe1372311 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x4c659631 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x9f2a42e4 __pata_platform_remove +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/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/bcma/bcma 0x03097225 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x037635df bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x05e02866 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x12f303ee bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x44906bf1 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x96e04d5c bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc5f3328c bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd2d9255f bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd3a57bb6 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd5b41167 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xda0c6062 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf1c6db91 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf24da4c4 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00c3068f btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0c8324fd btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1e62d210 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x29879e5c btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2d397b3f btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x44f64f6b btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6252bd22 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xda5e614d btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0x01697018 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/dca/dca 0x17b88b87 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x559116b0 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x591f7b73 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x98c877e2 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xb88f18ed register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xc962dde9 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xdc1ec698 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x177a6e79 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3727af91 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3e6cd182 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3fea2d20 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x46dbfd57 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4dd25119 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x626c9bf4 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x63a74ae0 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69480aaa edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6abc3289 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6b99fab6 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6f96bb72 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x73e60793 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7a784807 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8124b439 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9984ac0e edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa0a54108 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa5f35ec2 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xab49a9fb edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb54c71cc edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb6925656 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb9ca0483 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcce909ae edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf2882ef0 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf4c6880d edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0d38cee6 amd_decode_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0dc0b68c amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x6d4e6991 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2b73a3a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xc0bb404a cs5535_gpio_setup_event +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x9354e783 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xd4d3e19e bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xf0f96b84 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xfffc4988 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x92f77792 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x9aaf77e7 drm_class_device_register +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/hid/hid 0x031d3b06 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x17f11223 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2893df89 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2c204f44 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2d3b498f hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x434b412a hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x47871ea9 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5bc2b8dd hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5e7cd508 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x66aa600a hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x675cfb05 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x734e7edb hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x77268728 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f7ce775 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x878aa3b1 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x89e01aa5 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8ee2b1f6 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x922e3d54 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x97f5851e hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9aea338d hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa521fc98 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa5b82bc3 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa7a5e640 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd96cb431 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdb671f69 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe27daf73 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x1243b7de roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xbe22148a roccat_common_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xc72c162a roccat_common_send +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0332aa72 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x86e7bec7 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xdc3fc7f6 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xf648e6f7 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x0aa9d15c vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x0c3f3738 vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x286338f6 vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x5e9baf74 vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x71a9a048 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x7218bc59 vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x7cd60ccc vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa2b025c2 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf10fc5c7 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf118bafb __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x249b5365 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x4157d0b9 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x44dfe526 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5fc7f3cd i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x8a41ca4a i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x9906ea3b i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xb9c2b427 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xe5082925 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf8c2f8a3 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xb495e647 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x6cfcd892 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xd17635d3 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xbb9f5fe2 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xd1c03359 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xfbd48f6c input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x604968d8 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/touchscreen/wm97xx-ts 0x3d58bc9f wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x468d43a2 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x52341154 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5b335ef8 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x694941d7 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x88e7dbb0 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x97995e66 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa1857ca1 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa7e9c7fe wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd65692d6 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xeaa51dc7 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xef7957b2 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x00b55cd5 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x10dc5783 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2b7f5d22 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2e0908d2 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x308a362c gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3f74b41f gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x625fe91f gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x64782ba7 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x65828cf5 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6a9f9c70 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9cfaa541 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa4d6ccbe gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa7e4f9a9 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb137afaa gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc33641e2 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xeb71c9b1 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf177eb41 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x285e63ab dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +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 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +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-multipath 0x94d06608 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xea79636e 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 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x39f7972f dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x67356913 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x80f9549b dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xde27c20f dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xeb05f928 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf629e1a6 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x03ced457 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x08a936ca dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5233c835 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x61c7c085 dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x63b2ff62 dm_btree_insert +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 0x72289260 dm_block_manager_destroy +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 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa6aae3ea dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb967690a dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbaa513b0 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbc5fe7c1 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca2bde4d dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xccaeb9ae dm_sm_checker_create_fresh +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd32479bc dm_sm_checker_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdb562135 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf99dc2cf dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/raid1 0x1ab4143a md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x76388e0b md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1959cb23 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1ae0eb43 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x22d34228 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x56b6afd3 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x699e052a saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x776faad0 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7c6b5cce saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x97734a8b saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9ba7dba5 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9f547758 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xea1003aa saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x11f25f85 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x189f0f28 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x27278d0c saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4b92cc91 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xb26f6d58 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xd75f63e7 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf44f1a91 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x31f6adf8 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xfdaafd0a mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x7e7bfecf tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x542348a5 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x8a5127d0 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x9266418f tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x41eaf86c tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x44828352 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x5604daa9 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x5e0c424b tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xdaa9e1da tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x87a45fc8 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-demod 0xfc34bbba mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x67a9a49e mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x0c177fce tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x40a77ed3 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x43342a5b mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6be9dbf2 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x81c83577 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8f43ed4c mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x969f6c26 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x99886efb mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa08c0665 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa3025255 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa3b20bc8 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb009bf35 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb91af31f mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbaded33f mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbdd50067 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcd263020 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf8bb0e53 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xffea945f mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x022cfceb smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x029ccb45 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x197b80d7 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x352d65b6 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x421e1cab smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x50a455fa sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x51fbf0d3 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x64793a9f smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x70f8e81b smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x76222253 sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8bd62dc8 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb18746d7 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb4752ab2 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcf0bcf00 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd40b918c smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf1497478 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf30f6de9 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfa8861c6 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x3577c9f9 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x5a60b0d8 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x87138044 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x9f0f1be8 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa89a7a5f ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc8d84a6e ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xfe88be83 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x05a44032 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1f7b45ca rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2c530702 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2ea79746 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4d51fbaf rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x58c29b1a rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6700cb92 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x817b8453 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x89fb6af7 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8b90e886 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa117a876 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb4fcb11b rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb9c9b6ea rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbfe05139 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd67ab0bb ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfb530074 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfec8cf8e rc_map_get +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x14b989e5 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1d582e19 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x208d2bb9 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2939f38f cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2e2bff56 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3391cf93 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x49f85c1e cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x52253787 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x533f1bbf cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x8322536b cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x96d36657 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa1aee47b is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcb70fc2a cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcdbbd284 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd24df1e2 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd423a3ba cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd586118a cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xdb7cd62b cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf39789eb cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xa528ee9a cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x01ab2cf0 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0736c3b3 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x27b3509b em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x4951e0cc em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x6e57fc6e em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7ca98241 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7ffb533f em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa2502cc6 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf528f812 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf77df3e4 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x5d19b21f saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x6650a577 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x876c981d saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xc6715c54 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xfdb20f2d saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x68b2877a tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x73b50f9d tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xc0b45c90 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xfee3b3c5 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x098c43cd v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x1fb781bc v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x6d8d899f v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x9261df22 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xb1bc93a2 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xfc6f7414 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x05e426be v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x0c001422 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa6e9c7a5 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb683f8c3 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x07f40649 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x09c4986a v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x19d40b45 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x316b3dfe v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x597501ff v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x83454b55 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x96b7d81a v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa0f43753 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xcbde63da v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xddd7cd0d v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe7ee8af9 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xedd633e0 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfc7e9414 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2387d13b videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x277783e1 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x35a67564 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x36bb516a videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3fead28c videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4032c3fc videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4574ea90 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x64ab2544 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x69438f0e videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x78468443 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x92b040ac videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9ae6d45a videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9c5f0616 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9f114cf0 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa1574c43 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa28c24a8 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa6081ae1 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaea2487f videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc3b7914d videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc4311ebf videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc47e5c00 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcc29b846 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xde0b9182 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xefaa8ccb videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x8b672eed videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x90ebda89 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xaf8b37a7 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1b52f63d videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2abbfe1d videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x99e072bb videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9b07b53d videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa4eef7a2 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbb6260c6 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc4128ae1 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe512eaff videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfa6fb470 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x254f7b37 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x2e952a09 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x6e01b18a videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x026df1c5 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x06163b90 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x1fc1b68d vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x29f472f1 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x2f1cebf6 vb2_write +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x36ee082e vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x398f79c5 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x3ef7bfb8 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x52795cc5 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x5e7fa1c1 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x85167fee vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x85e2519f vb2_read +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x907f1ef9 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x96f79eef vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x98c96e0c vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x9e896ca8 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xf8a043f4 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x4adfd5a3 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x9a979035 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x0c23f682 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x86330672 vb2_mmap_pfn_range +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x8ac963ca vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x9c36b6dd vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-vmalloc 0x7d392680 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0fee7385 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0ffaa552 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x12166e7a v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x17c5dbeb v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1a35524d v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2cd6621a v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5712c1a4 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x69434ab3 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6d6c33e3 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x731a61f4 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x885aed23 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9670473e v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x989064c4 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9c523f10 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9ea836fd v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9eefc5dd v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa7683ddf v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xad10492f v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb503944b v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbbc7dbc1 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbfd08f0b v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd4ec3b27 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x01a33859 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x02aacf8b i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3a7a656a i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x44a81056 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x50f72ced i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x5c5b8961 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xe40c043b i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf956e257 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x29d1d107 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x07732157 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1debbb05 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2a36b8fb pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3d4962ee pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4fef7af8 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x88d72180 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x93aecf78 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa3514e81 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcbfafa3e pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdc05f8fe pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf61ab8fb pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xea113bca pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xfbbc902b pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x0566bf54 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x4c9b6e6a pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xa19725da pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc6b83983 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xfe33936a pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x397218c3 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x41716def sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x99719c91 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xcb810690 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe81a92b4 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x86be1ed2 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x06d21832 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xa5581d27 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xd4cc70df wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xdd01f17c wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x21be6bad cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x6976ee9a cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x95c60b27 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xf134e487 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2a66e60b enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x311ca093 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x6b96abc4 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7ffc4c26 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xcd619db2 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xefb47de3 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf9b76ae6 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x14bb6546 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x3b437a5d lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x40c5e326 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7213a0fc lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x82d43954 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xe6850e7d lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xea3825fe lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/pti 0x19f09b98 pti_release_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x23bde487 pti_request_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x52a78e81 pti_writedata +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x40f30a93 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x6251f389 st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2b037041 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x470c68b8 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5f6fee58 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x632dd42b sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb62691b7 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb861e0ef sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd4601c03 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf6bf41f7 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf6ec68a4 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x23a2cb5f sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x2fb029cb sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x38665158 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x7f0b5217 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xa9c65a63 sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xfbe80b40 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2e6de9b9 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x5107014f cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x781dfaec cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x05003c93 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xa832ffbe cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xfa0708f8 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xcedeecb4 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x0644c72c cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x26685308 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x2956d0f0 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xd3d11515 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x979941d4 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xeed8f954 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x04c43548 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0b6e2cf8 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x197e6bd6 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x24c4fc44 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x29d04789 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4f161d14 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x60f7c516 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x63874dc8 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6cc01adb mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x818f9353 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8e1d1f95 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9640477e mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9b7def8b register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9db1359b deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb80b3a73 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc41c787b unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc9077ab8 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd85ca343 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xde346e76 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdeb04648 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf34cd2e4 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x1a3fc693 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x21056e90 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x78fc43c6 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x84e03b54 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf8ecd91c del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x11020e93 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc2bcec0d nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x2fca3c1c sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x3e4037f4 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x5585447c onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00c8ff5d ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x08758c59 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0f060827 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x458e08e9 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4c95501a ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4cdcc7c0 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x59005c0b ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5abe1d34 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xaf67c37e ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb0c90284 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbfa19b91 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xecd6d88c ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf28dc356 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x200ce86d register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x68fe44b1 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x8acecc13 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x93c763d6 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2218a4e5 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2334ba53 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3b981c69 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5856c7e3 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6c056314 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6c20e298 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8d505801 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb25b2bb3 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc80c584a alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd3809d6b unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd856af03 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdd03fd0e open_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x024d2ab7 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x049bbbd4 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc48d6f26 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xed896d68 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06fecb33 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x07e7fc49 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x095ba970 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x096408b9 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a18c3d9 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dbe8fa6 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f459e5c mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13dd034f mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13de1054 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x156df131 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e08750d mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x244f408a mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x253f9f05 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a217e60 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x340d6200 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x379ef8d0 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a581aee mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3dddd608 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f7e8bb0 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x448205fe mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4974fdfc mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a124c63 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e8d1020 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x514734c3 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54e0a95d mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e2bd520 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e82e417 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x68606d17 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x691e1e79 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a894253 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bc68b8e mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d365021 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e907ae4 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f01532c mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x726c19c1 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7388ebf8 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76bf9354 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b522a63 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e1a0e30 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81018489 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ce87cbc mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8d0d08be mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x91d20d61 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95fdc041 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ba22818 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9dad3ff3 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa07299f2 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa32635a6 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8535b71 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaae2076b mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xad4d2780 mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xada71845 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb34d29d0 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb542152d mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5bb25ed mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb623e277 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6d341ce mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb86ed92b mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc73b1f13 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd015693f mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd07bd4ba mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd30ea038 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd42e011b mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0c15ded mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed21f5fa mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xedf7e3c5 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2886d3d mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2e37153 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00a9263c macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x58d45011 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x68c14d86 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x98ac8bcb macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcbdffc3b macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x0a23a467 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x031ba634 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3a93dabb usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7debff94 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x95f1d52f usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0063469f rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x301df930 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x36e19472 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x374531b3 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x655978ec rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xeaa971c5 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x01a93c66 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x043399ef usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x07ec5e5b usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0ba44989 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0bc0503a usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0f8b30ca usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1dcbb1de usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1f6b521d usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2cf0450f usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2ecdb54b usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3378bf90 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3fd9e2fa usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x511f96cd usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7c5540e8 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x80f20336 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa14aacc8 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa7033ada usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb04db28e usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc8f080c0 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd6e61c23 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdc08624e usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xece31dc4 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf61fd3d2 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfe6f7e2e usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1139899e i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2143a2dd i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2fc3aa29 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3107361d i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x43dbb1a3 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6212a4df i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x742fbca7 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x90da88a9 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9593e31d i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x99b1be7e i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb4f98a0f i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbda93d6d i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcb0e208a i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xde132c2f i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xeb932f04 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf995e139 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x5bfe9ff8 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x023fdf9f iwl_legacy_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x4b0a61c6 iwl_legacy_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x78feff3d iwl_legacy_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x7b441986 iwl_legacy_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2e5bfbe3 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4cf1cff3 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x68313166 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x763ac6ae lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x77b249ee lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7929adf8 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7aea784d lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7cec3d14 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x81bc6d97 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x901e76ba lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9ee0e9dc lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa51600a9 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc4284162 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc87ca990 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xce200aea lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x145d5438 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x172333e7 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1845dd2d lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1c44dbf4 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6c8b8e0b lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xabb7f936 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe15c88a0 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf567b6cb lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x1f713d4a if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xe88b4e76 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x106cf987 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3ce19e28 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3de2378b mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x69502cc3 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x6cb3818d mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x731891db mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x922b7014 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa042cae6 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc2233e76 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe9df124f mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf4dd9938 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0768dd2d p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2b9d120a p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2cf44d4e p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x81972543 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9a7cad96 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbef97132 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc6f6e4c2 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdafe9d38 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf4ed66a3 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x089672ae rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1068d646 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1392cb71 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1429fc11 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1844eccc rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1d54d4be rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2a1fcf02 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x30252de7 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x316c171c rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x31e9e976 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3ac0e967 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4a6a4307 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4c70cac2 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x510a9703 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x51d794f7 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x53329035 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x57dde48c rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5b0fd831 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x65878c0e rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x66305843 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x69d440c8 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7291e6f9 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x761a4eb8 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x79a3ea2d rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7e76ec3d rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9bb53a99 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9e7a226c rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa5e0ab7f rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaa19c7f6 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbf479f3a rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc4811565 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcd487330 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd8cc51c8 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdf7073e0 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xed7ec2d1 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf56a7c34 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf6c832f0 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0735ed20 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x085f6a62 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x08ba60e9 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1c64c1a6 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1fc95ba5 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2084fe49 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x23704d58 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x26bd94d4 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2d01ec36 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2d491cb0 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x32899a2c rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x354f1a3e rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x356f344f rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3a155e81 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d079960 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3fdf0ee3 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x45427e29 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4601313c rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4dee7fc2 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4e036d81 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x539fb05d rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x58b73185 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5dc17679 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x687ffb44 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a76e1e6 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6c47ab65 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83ca87f1 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x85da971b rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x876db64b rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8b4b6710 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8bf3713f rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x92c750c7 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x931d9668 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9be02e7f rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9e456056 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa775c865 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaa2706e4 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb4b5f4e4 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb52fe7ef rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb8e99ae7 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcdde1c28 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf1a9f6bd rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf1fdc5d5 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf585b5d0 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf92f3795 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfe15cf57 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x01469a9a rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1d96b54c rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3c4d80d4 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x63158f6a rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x85927bff rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x85a57af9 rt2x00pci_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x86047826 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8715bbc9 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xabd74468 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0147b409 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x26568657 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x285ec60e rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4e94bca3 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5518500c rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5632ebf8 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6554d958 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x839b5a1a rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8531ec1a rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ccdf298 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x90b59adb rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xac7deccf rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb940be48 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbd857f1f rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc79d1850 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd626004d rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x18e7fdc6 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x818994d0 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xb21a4554 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x0267a8c1 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x25f9633b wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x5eaaf6b3 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x9a4da23a wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa4781fbc wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26 wl1271_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xeaff1359 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xff6d1a34 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x2b3895ae acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x7e84bd1e acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x27d449f1 asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x57c8d376 asus_wmi_register_driver +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 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x26dceec8 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xa8910a47 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xe81faa6e pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x01e8c164 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x29ee885b mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x401daaad mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x6cdd64a9 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xc5fdc961 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xd64bbfc1 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xfa63ca50 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x1ee0f5d2 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x800c647b wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x975433f4 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa17ae693 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa53b2fe1 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc3183154 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x44fdbb77 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0360b8d8 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x065defdb cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x073bccbf cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0fe2a07e cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x19544a6e cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1a1bbed8 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1acb09b7 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1bfe6861 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1dc9a419 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2cfb7d51 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2e66d764 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x34e44405 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x39ff81b4 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3d0014dc cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4494134b cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4f1d4e65 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x534a4913 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x684ba091 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6dfba2e9 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x765117eb cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x80045ee1 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8077a108 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8b6940dc cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x977750e6 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9a964776 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9ce6b9f9 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9d9a3ee3 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa2ae7c07 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa90a4b4b cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xab4744b4 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xac432d34 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xac9137a4 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xae00b899 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc265c5a7 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc48f4826 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcbeef463 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcc2c31b8 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd0d19777 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd1b5c810 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd5439cab cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdb97955d cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdc8fee45 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe1bae109 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe668d9c5 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeac0641f cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1545f10d fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x21178542 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3399d476 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4f836123 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x525006e4 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9af5ac0b fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9ce38416 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa996ce39 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc3f321e5 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x17b72d1d iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x326112cd iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x41a14226 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x4dc4668a iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x8f7d9184 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xc28a1258 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x070c4dde iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c1da5a6 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0ec36b57 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x105d24f5 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1916cc4a iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1babb040 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x282e0ac7 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ac6591f iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2cf4314a iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x330d0a67 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x33480668 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34d6dce8 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b255fcf __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f43a13b iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41cacb30 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4975ae7e iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x499a5852 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x537314dc __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x64ac2dd5 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x65e23d0c iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6adcc1d0 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6bb52ab6 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x778fb7d4 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7ce5244b iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x82907905 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x865ef769 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x914250e3 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x98f5f0ac iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa15c4e69 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4437c06 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4c266e1 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xac421748 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb0a4a6b6 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb0d86686 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb50624aa iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbb985eac iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbda85e68 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xce7cc7ed iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0792025 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3126003 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf25bcf60 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfa6b2791 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff02675e iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1ff87762 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2af231ed iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x547007b6 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x717900aa iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x739dde47 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7a1a80b0 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7a1f53db iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7def7a2d iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x82c982c7 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa76cbec6 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa7a51826 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc868c76c iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd00111e4 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd32538d8 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe56e89a5 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe5cad24c iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1578a223 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x24c892d4 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x259fee25 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2ce7d4cc __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3f0dd4f3 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5c6d1f02 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5dc3e54a sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x610a4a4e sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x63448987 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6dcaf4a0 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6fcd912c sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8862ce75 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x90c5d5c8 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaffa9de2 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb1ec1818 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb7e57c3b sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbaece44c sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc1b1c927 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd1060293 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd731898b sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xda4831a5 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdc6ed744 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xef016174 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf8a28122 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xff50fa4a sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x57456b01 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x62809a5f srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x62fd7975 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x635f678b srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa3e4abd6 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xaa9649ee srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x012f954b scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3e6572f7 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4778d301 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5492fe22 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5b5235e4 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x669108e0 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb28e96f4 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd8c4698e scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xeefb6e91 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x04586e8b iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0eebdecc iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x17c535d6 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x25e49001 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x38c0771b iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3f064881 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3f59a0a6 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x40291acb iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x554c3b66 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5c9338b6 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69265619 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x76b8955a iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x92f5c6eb iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab214ea9 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xad1ad9ad iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc1cd3dba iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc297a38b iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc301c658 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcbf254e6 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd2d7a022 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdb94411a iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe93ea757 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed439de7 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xede89312 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf1629cc3 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf2f024e2 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xff0261ed iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3f8fcd42 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xa4b4c426 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe546685c sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xee773885 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3d60bc90 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x47a120ab srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x6ee71d26 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc62b1e97 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd8bcd35a srp_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x1a80ec3d spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x426ede38 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x4b08cf02 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x4bbe5b5f spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xbf78697b spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xf49a29c4 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x18135c11 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3c93b0a3 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x44d27b30 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x59a3977e comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x62dca01f comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x2ad71bdb das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xfa71f734 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x2bb8f9b2 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xc30f2dde labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x07801192 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x144b31a3 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x2f035997 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x313e2aa9 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4a7d05c1 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x5a118543 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xbbf3cc64 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd61f58dd ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x1cacdbeb ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x53372dee ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x6e23c3db ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x8adbf5a3 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x9c2b25fc ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xc5cc38e5 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x6a137028 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x6d427fc9 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x75e653ab iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xe8fe9590 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0x35b85807 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x260e1ab6 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5f23a9c8 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6d6bac75 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6e3ec0c4 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x71d87acf serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9fe5e77c spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xce56e8c5 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xcf8492e1 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd3d3772e spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe4f95a5b synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xedda1b30 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf62d9d79 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x001e9d99 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0e51106f dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x192e9aaa usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x22ae9c24 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x54025237 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7af0a087 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8646d083 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8f47141c usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa668e12e usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc8063c16 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xcc6bc4cc usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd0709090 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xefe631ab usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x3d64ab08 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x4aabdcff max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x7dd44d32 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x7e133b7e max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xb9842ab7 max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xe00b6129 max3107_remove +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1d788d2e uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x99f00be9 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xfc7e047d uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x9ef57c42 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xe1ecef83 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x3cda182e usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x40605ed5 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xa2a8f2af usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xc2b771bc usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x029ad928 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x040930d0 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x347283e7 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4ea7e761 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4ff07458 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x81eb8b43 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x875f2fc4 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xab26bba5 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd8ba9871 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0639ca1a usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x14c57ca1 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2fb5958b usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5282d663 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x592e7de4 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5afa1076 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x736e1c44 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7b31f6db usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9781b3b0 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9908f97a usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9dccdf30 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xab48f820 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xac46e7b0 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xac55c322 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb2c09c08 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xba1cc72f usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc2788b9a usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf82c073 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdfb70c3f usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe4826b34 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xeeb850ae usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x050bbffb usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0a12d626 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0b4a89e1 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x156b757e usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1729613a usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1ce161d0 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x217e1eb2 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2a37f10c usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3225966a usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5c6185c5 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6c0fc9e2 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x702ef0e2 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x827ec1e6 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x82d8308f usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb308d569 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc1e537f1 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc916a79b usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc996fed5 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcee4f729 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd1a02d69 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xebef9629 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xef8e2f29 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x13d197ff __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2bd6071a wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5c730a8f wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x76cf00d7 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb709baba rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x095b26c5 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2c59cb46 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2d7086d0 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5b7f0c7f wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x73171809 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x874fd856 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x92241f41 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9cf3aaee wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa3804726 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xae5a25ae wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb49d78b9 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xba25ad60 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc60684cc wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc75c304d wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xddfb307b wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe7dd13e0 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x1d504059 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x4b6bbe02 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x6d1c5d9f i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x5b57bbc7 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x5d48be13 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x7855ec10 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x85ef9db4 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x964b0013 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9d26b216 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd1570775 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd791a3d4 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x15979896 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x16b1d0a3 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x19860015 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1fbd03ca uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x21580d90 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e03f3be uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x36d26dce __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x51fe4bfd uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x541325fe uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6515f73c uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x68cffd29 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6a6fcf4e uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f06c993 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x729d1d71 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7403b318 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x757bd4eb uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x772569c8 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x776a79b9 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7c067600 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x841a32b3 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x87e4a52d uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c648363 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8ed9a6a7 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac55a4c2 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xadc5ecb6 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbcce3fe2 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc3d14878 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcff649c1 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd1615b90 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd2ce490a uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdc01dd12 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdd655a9d uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xde41cfa8 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe07934e8 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe92051fe uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfd7baf0a uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfeef74ab uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xded4070e whci_wait_for +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 0x2158b600 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x273c7aa0 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x423995bc ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x783d1960 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7b402ade ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x87bf1ff4 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd2a3adf9 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x6a8b79ca fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x9541664c fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xfe4d1a35 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x86c9086e sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xc7a5aaf1 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x82c0bafe viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x02b2796b w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0fa1cf24 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2591b74d w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x393ec7c7 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x55e44298 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x700faa0c w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9fbfda9c w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa4eddaa1 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb2778a4e w1_touch_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x5187d95b dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x7572e671 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdfdbabde dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/fat/fat 0x04bde6a3 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x05aabf28 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x09702877 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x166c8539 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x66c3be8a fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x711c0f17 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x71ddbd7d fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x74b0ff2a fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x7c8d2af6 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x8f5b7438 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0xa29db843 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xa542c40a fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xaa29574b fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xbda46b68 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xc95b349b fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xd6c9684b fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xde197645 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xe063b03b fat_detach +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0fe536dd nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17e9b189 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4979acb9 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x637ebfee nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe40db09c nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00ada3d5 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0208a8ab pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x058ffa6b nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x05e732f6 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x07685ff0 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x21a72896 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26c47ab0 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x276c8476 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43242ed9 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x481f927c nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x568e76c4 nfs_commit_release_pages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d67aa3a nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x64ef5548 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67d9e38a nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x68d13828 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x712966fe nfs_commit_clear_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e3293eb nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x86bfae5c nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8e64cc80 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9403530f nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97ec1d00 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x988cdcf8 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa65e87d4 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xade0d69f nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xadf8204b nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb0dfe427 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb135856e nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1623330 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbc6766da pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc285f3d1 nfs4_reset_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcf4c54b6 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5cbcdd0 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdbe040dc nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3987970 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe706e211 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea27cd62 put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf05b979e nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0ffb7ad nfs4_reset_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf1cfcc5a pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x33499649 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x40379186 nfsacl_encode +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 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x26d272ac o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x41c2977e o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x73684e69 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9821bd69 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9890380d o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xaced8827 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +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 0xfb7aa286 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x32003a4a dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4c9a7a5e 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 0xb07ec199 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc94d786c 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 0xe567870f dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xeb750d04 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4ba244fe ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x94734940 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xfd7a163d ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x1b5e580f garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x34699d24 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x778d68d8 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x7bf4ade5 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xba2a1586 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xc2aaccba garp_init_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x078cc2e7 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x48689938 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x2b64a133 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xac2433f6 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x8553f0a2 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 0x8c72b8eb bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x093349a4 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x17ec8b1a dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1a6fe4dd dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x23c834ea dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c144961 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4156046a dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x45dc0cb7 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x46a90c74 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59c6324e dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x60382417 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6083fc96 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f445468 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x78acc10b dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7d85375f dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f755ff6 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x81d4fc57 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eb68a86 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ff35038 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x90fd6d46 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x996f89f1 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaba1aae4 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xad6a022a dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb30c7a0e dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb5a35a64 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbb9175dc dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xca81b272 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcca30f9a dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe4b7b727 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe5fc480b dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe739329c dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xebeabfd5 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xecde8614 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfdfacbf2 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfe397401 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xff8e3072 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1a83cc12 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x28ddd33b dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2e9cad42 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa17f3ff0 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa744be9b dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xed04042b dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x052f80d6 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xce0ec71b unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x60580916 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x8973d4e1 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x1b573462 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x3cabb5ce inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xe79fd323 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x2e7da908 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xe245ae84 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0157ed0e nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x08d7950e nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0937a33f nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1c7e1456 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x68392769 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb26a376b nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x144dc57e tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2c7c50e5 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x41687a6a tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa889138f tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb5251a6a tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xd900d45b ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x05ace500 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0730e36b l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0dbfb799 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0ea24af6 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0f059a82 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3fdb1100 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x63577af5 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8344ac16 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8879e2e9 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8992abbc l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xeafddb58 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf6ddaded l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2d70e087 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3a4a235f ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5c803d78 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7d92ec7d ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc313d136 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xec6dc70a ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xee2333a9 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfb5f6064 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x08d053dd ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3bd82539 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x58ba47b3 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5ba6b00a ip_set_get_ip_port +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 0x7d4be321 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8aafdef9 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9ca6d85d ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa281ebc8 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa7f5c049 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xac03e397 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb065418a ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb58be412 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc5f9b62f ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe4678341 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x1652ce96 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xd61299d1 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xdce10ea6 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xea8f4e25 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e07dc0e __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e96d85b nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x17fa7cb5 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18a530bd nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25177ed2 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47bcdefb nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47fd4e52 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ae34684 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c70c34d nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5158e791 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x533dd7b2 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59502d99 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x595b16ab print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b8e9f85 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e6ea708 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5f0d8f35 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5fd7aafd nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64971f4c nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a6c2ed9 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c4244d8 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6db1cd14 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ddfe9d0 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x762604de __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x784dc254 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a889be4 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ec3226e nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x87e4abbc nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x88dc5564 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89b09c3a nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c1e8a96 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8dbc65f2 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f5f0367 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x94d2b8d2 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9869cde9 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c2e571f nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa5d7fbb6 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa5faf6b nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab250cb1 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb40e1d04 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb9b42fdc __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe28e814 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc045d576 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc157f8af __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc171b2ce nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc753b2a0 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcb041dab __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3aa40d2 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3fda1e7 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4bf5e60 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe775ca63 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9765d7f nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf1cc940f nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5311944 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5e803b1 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf76b1f90 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9f2a902 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa0a5d16 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbaa2ff7 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbf88c5a __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xed71a7cc nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x0c9bb568 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xf0047eb4 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2e9ca13f set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x40e95152 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4330a4db nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6b22f9b7 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x72d00065 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x79dbbe2f nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x886f453e set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xaf233762 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe77b6c87 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf73eda50 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x367be411 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3630d4ab nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9818bfdd nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xdf335277 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf93b6266 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x5ceef01b nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xac41fb47 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x015c90a3 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x167b546d nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1e0a1c57 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2a9b44ab nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4bd3935c nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x54e26866 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6e6546ec ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7986ec8c ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x85e5327e ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8bcb5be9 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x94c1a3b7 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa264ecb6 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe52e5898 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x72a16935 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xf928c46c nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x3556bc71 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x77a90b4e nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x83b8453f nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x851eb4bd nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x89780b4c nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x96a1b28d nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe2923425 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x2ceca21f nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3325d2a6 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4f5e8f70 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5caa2879 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6710bdeb xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6ca16281 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6e416298 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x761bf88b xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8b439fd5 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x93220478 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb90414c9 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc4ec0b82 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd876ed4e xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfed2f5db xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x133e13b5 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf7b03908 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x093c0362 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x0c2b9edc rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x10a002b3 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x1419ad35 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x22b5935c rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x23f914c5 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x2bf1f6c3 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x32e4b66d rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x37366def rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x398965de rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x3da404ee rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x540cdd50 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7fa8e34f rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x82115f7e rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9a6d517c rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xaa52806d rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xae9fb2b7 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xbc80c70b rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xcc8c1107 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xde44de5e rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xdecc0eb1 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xf393886d rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xf91e4636 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x0e8f398c rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x66324540 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x12023bfa gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x21d84d92 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x21ffdf5b gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2d02598b gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29 gss_mech_list_pseudoflavors +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x567c4c1e gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x61fa4782 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x76b9b93d svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9a2c4ade gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xae934f38 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb765f3d6 gss_mech_get_by_OID +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb88ea747 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xed4345a1 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x005d82d7 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0474cf69 xprt_alloc +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 0x06e6d3da svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x094e3927 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b261a6d xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c0a96e7 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c364b8c xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d22c042 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e111d85 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f0ccee2 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11429220 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x144beb91 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x172bad77 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17e63b20 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1802bef9 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a71b0ac svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b5208ef rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c6bcca8 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cec85ab sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x210548e8 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26db9c1b xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27508eaa rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28b6247f svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28ff8daf svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x293affa1 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x297d6b80 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32a99ee9 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37b2486d svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38b11811 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38e3d5b2 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a5e1c06 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ab6fd2d svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b3b4cbd svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c4aaa24 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c77b1e6 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e104578 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e6eab6f csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e7f6563 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x405e1190 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4143d0fb xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x418822ea rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4718da6b svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x479a14c5 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4aa84ab4 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50b391f1 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50d3896e xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50d484c5 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5106293b rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x526bc903 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x555f216a xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57258803 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x589815f4 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bb93066 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c4b131a cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ea410ec xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ee76977 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f141a18 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60b4ef6f xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61510910 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x618bdbd6 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64ba8ece rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65292335 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65570a0c xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65c1cc82 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67451f1a xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69ddaed3 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b09148c rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b7c0b60 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e13e5ef auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f2d8587 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x701e44ef rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70715e93 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x707e787f rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73ca6351 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x794e7e40 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ad7a6cf auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b654faa cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7da682de svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dba782b rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e48bd4c xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ff45164 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80d7d3ab xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80fd8a27 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81ae3d07 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x839b77fd rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8763a8d7 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88e884c2 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x898dde97 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a89266e xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b1097f9 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ced35a1 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90542b3b unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9098e74a svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x910b9263 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x913602dd rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95328b34 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95c821b0 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96acc91b rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9712d22c sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x983bd23a auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c38794f rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eac387c xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa289b3ce rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2b27462 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3d69db2 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa42a5271 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa977dd2a rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaabcd89a rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab2b8a9e xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad83217f rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaed29cb5 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb055bcc7 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3b79ca3 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6f6eccc svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcd45803 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe92f3fa _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe9479dc rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc512f652 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5fc402c write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc609cffc rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc7e593d __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfa44c28 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd027394f svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0ab1649 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2225cdb rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd278af3f rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2e86f49 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd53cab5d svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7b6823a xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda36632b cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc61d85c xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1fe21e5 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4d4303b xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe58e1e42 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5a5d38c rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe60d7041 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9f0b47f svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed5a3fae rpc_create +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 0xf0d54e59 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2eb6cf6 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf316fefc svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4b871d4 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf552ca67 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6a8fd87 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf74f743b rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8d922a3 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa09ca94 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa84662c sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbc655e1 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc0a4ef0 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffd1edb2 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0aa1f590 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3170f21f wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x37dcf790 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x637fe36d wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x69d7cf36 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa153a289 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa6d99870 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xad4e7201 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbddc546f wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbe8bd381 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe7018cb2 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe85c1137 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf7b5aefe wimax_dev_rm +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4d58e200 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x515f20cf cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5c9c5e39 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6853e30e cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x878201da cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x92cb006f cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x94212f44 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x97882982 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc60ca624 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe52a466c cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfde533a0 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x4e18e243 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x695a4c38 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9a355de4 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa43f5a52 ipcomp_init_state +EXPORT_SYMBOL_GPL sound/core/snd 0x23df2669 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x6edef11f snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0xeadda1b3 snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xd49ee598 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x4fc450fc snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x704928f2 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9f228123 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa5c8d36b snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xaf598c36 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf8436485 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0cd54d2d snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14e59674 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19e7d567 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19fe4a2e snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1be5c3a0 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1cfe1b3d snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ea1f6de snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x251d79d9 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2659341b snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27c373b6 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x295b96e1 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ab453b2 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2be92f8c snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x314980a0 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32878672 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x342b1f42 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3484cb88 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x393fbac2 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3960c073 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ef9894d snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43528195 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4601a1af snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f2b655f snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fca1122 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fef6b9d snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x51163304 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55beb3d6 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57137ce6 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x594bc3ea snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a55e420 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5baf3e5f snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bfe1841 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5cf43ae7 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f754b3a snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5fab23c1 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60c5ba6d snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6154b781 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6458c476 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x69547cd7 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b22fc6c snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6eea6448 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x743d41f1 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75a7cd6a snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79430ca5 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79c5de01 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7cb803c7 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f32975e snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x830e9242 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84ce69ab snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84cf805f snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x854065b0 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8557ba0b snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8616f323 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x870421d4 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x892b183c snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ba6766c snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9001ce17 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93b7aaaa snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9928be76 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x993bb6de snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d7de76d snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa20a2f42 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa24067bc snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2927453 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa51dd381 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5480664 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8b9c9b3 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8f461f5 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xadeb1f7e snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb51dba46 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb61482b9 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7300fc8 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb75483a1 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb91fa7fc snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba02303a snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba73e459 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb2aabb5 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd0eebcb snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd272ec2 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd2a565b snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf409aaa snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf9a82b7 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2746ba2 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca7eb322 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcec99c50 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf769af3 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2dba86f snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd359eace snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4bfda33 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd75b2c33 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8bede2e __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda101dc1 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda19842e snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc8df48a snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf1b6c89 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe48f2c45 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe9696ab5 snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xead03c8f snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda97ccd snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf889be98 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa7b469f snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfae487d5 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd1dcf6c query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe6ec524 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x91f603d5 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xf2f6b3d3 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x140d9a73 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x4f806150 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x0b2b7dc1 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3727f7ea aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x43ad45d9 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd18623ce aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xda24fccb aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xd8fa5e44 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xed5aa843 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x438b42c5 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5bdd6a83 wm_hubs_add_analogue_controls +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 0x91774d49 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xf8be4dab wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x9109a817 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x667c1762 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xa44bbba0 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x5ee3bfc4 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0xa4be2b06 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x08131472 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xe65cc621 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0x302c99f9 wm8996_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04d5d847 snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07a12da7 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a087b50 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c82864f snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x10e255a2 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x126ba9c1 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12db3720 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x151ae76d snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x181ec921 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x19482ebf snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a7f467e dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1afad95b snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x244c19ed snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29385b76 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x296c6342 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2bda554f snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f90626e snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2fd19c0c snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c0b5cae snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40a8b817 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40b652cf snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43819dcf snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43b92b65 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43ccb333 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x452fcb20 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x466b75ab snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d83aace snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fb41db3 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x527a633b snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5837ddde snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e6e5aed snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f1c3d02 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65c96567 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67f861de snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69309120 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ab11aa4 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6bbf2f90 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c9bc6e6 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e4e62aa snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71081e8f snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7475e3c7 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x793a7446 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ac179e2 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ba817e5 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8091921a snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81cef8a6 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x836ec6d5 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8630346b snd_soc_default_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8a3d84f2 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e87d402 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f91b7bf snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x902e6f4c snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x918d0bb2 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93681863 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94ea455b snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97aa2024 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97df29a3 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a4ef321 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c6aeb34 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c8b080b snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9db8afc7 snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0359af5 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa48d9af4 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa5148331 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa81079da snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa07687e snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae08e4cb snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0dc5397 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5c31139 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbbd02d4c snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc7ad1ff snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd287d23 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe6cd941 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc10d475a snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc50b4834 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc68247a7 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb3a93ed snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcce61493 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xceff8673 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcfb43227 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd168efdc snd_soc_default_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd455cdc4 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5698707 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd78ed7c0 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd97413c8 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdefed7ce snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfeb2360 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5884349 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe701a243 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe747f951 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe9c8f693 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xecd9ecb6 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeefd84ef snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0747955 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf1dc2bd2 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf67571ca snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8754b97 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf914b0cd snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9ec7991 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfca5bb02 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfcc738d4 snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x008191a4 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x0088a193 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x0121be88 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x013a4066 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x018ab07d dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x01948fb3 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01c06d57 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x01db6e1f shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0206afdb css_depth +EXPORT_SYMBOL_GPL vmlinux 0x0212b4f0 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x022a645e crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x024cc51b single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x026211e2 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x02697871 dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x028f671e tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x02a3f49e nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03960031 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x03a880e4 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x03b74ca3 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x03c71ab9 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x03ccd70c xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0x03e1f703 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04270661 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x046370e7 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x04b07d7e bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x04bd05b7 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x04bf26af ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04d64d27 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x04ef8a1b __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x050afde3 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x05415dbd sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05797aa2 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x05ae262e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x05b0c446 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x05fc5869 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x05fce03d vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x064ab779 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0660e230 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x0673e573 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x06b346c8 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x06d29a5f mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x06d2b975 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x0716cef8 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x074d6a47 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x0760fd7b skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x0774ca1a bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x077c2cbf n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x08046f41 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x082999a9 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x087274f7 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x08748ee8 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x087ee4e3 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x08d8185c ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x08f5471c led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x0908c237 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0927e164 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x0962d0e8 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x099b4534 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x09a16b18 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x09cc6939 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x0a7e6033 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x0aec0d71 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b28defb kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b3f1907 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x0b6db86a scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x0b8594c6 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x0b98b7f5 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0bd0ab05 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c1b7edd pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x0c22283f inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c3ca568 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0caf8e83 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x0cb4831d key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0ce4c184 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0ce973bb __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x0d1daceb attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x0d44cd53 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x0d4607c4 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x0d8529fa do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x0dadecc6 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x0dcfedb4 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x0df66d4c da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0e0770b7 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e164220 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x0e49fb2b synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x0e6b7d4d device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x0e9ed92b blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x0e9f7104 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x0ea211c3 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f92daab dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fb95824 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fde06b5 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0ff968b6 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x104478e5 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1056cbb1 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x105d6d8c devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1061d8ee kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x10825081 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x109182bb usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x10aca72b br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x10b3bf8e usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x10cf22ea dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x112bff50 xv_free +EXPORT_SYMBOL_GPL vmlinux 0x1135ae7e page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x113b6a5e shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x1143bbdc usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x115f7a90 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x11657422 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11af5547 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x11b657bb swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x11c5c8bd crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x11e486a7 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x1228df31 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x126375df devres_get +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12866951 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x12c69e0c single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x12d7e198 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x132368c3 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x133215b6 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x137155e2 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x1373b2c3 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13f3e3fb klist_init +EXPORT_SYMBOL_GPL vmlinux 0x13f9de57 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x143ae7b5 dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x1483853b user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x14a26d19 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x14af3f3f pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x14d61d9b pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x151d5fd8 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x153a0c91 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x155436bb event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x1556756b usermodehelper_is_disabled +EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x159abd09 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15d19b48 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x163bc646 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x1655bb05 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x1665c388 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x16c57b0c unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x1717aa0b tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x17456a48 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x176a1a45 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x17987f96 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x17a650fa rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x17d6905e transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x17df0763 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x17f78860 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x1840a3ac pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x184320e9 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x186ad8a5 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18887adf ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x18c55834 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x18d15b5b inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x18d9ee65 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x18ddca75 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x18e2c347 dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x18f32c06 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x191d47ed usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x191e7451 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x192cef22 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x193c0ffc blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1943cdf1 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x19496284 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x19689fc4 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x197fc669 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x1993c415 swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a424a1 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x19c48fb0 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x19ccf9bb ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0x19de4fd3 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1a249eff unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a350e83 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x1a4bcf44 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x1a54b3a3 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x1a5ae716 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x1a790211 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x1a847b48 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x1a958f66 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x1ac961eb register_mce_write_callback +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1ae0e135 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x1aece301 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x1af85a89 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x1afb6f16 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b77d88f con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bf604cb rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x1bfe8421 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x1c464082 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c6ddf45 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x1c6dffa7 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x1c82a65e anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c904a75 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1c9326ee fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1cc8a062 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x1cfba198 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x1d365b03 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d7e87af rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x1dbf76f9 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x1e0e82d0 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1e161419 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3a2353 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e4c3308 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e87855f sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1eba928f ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed70725 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x1f01fb05 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x1f0766c3 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x1f2353f3 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x1f74839c unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1f99ccc7 tps65910_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x1faa38a1 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x1fcd3ebb ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fde5cab blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x1fe134fd driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1ff2cab8 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x1ff66272 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x1ffb61c3 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x203885e8 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x205c5ffb sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x206d94cc ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x20a0586f each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x21004027 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x21134e90 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x211cc96f pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x215f10bd __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x216b8c8d inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x216c7702 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x218cfe8c blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x21a6a02b bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x21bae5cb sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x220b3121 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x220bb1a4 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x22292b08 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x222bbed3 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x226755ef debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x228b93ae tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22ca5a5f scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x22e85e41 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x22f4490a xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x2330503c crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x23511fa6 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x239ca1ca pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0x23a3efb3 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x23c2989f crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x23e8be8f fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x240579fb cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x240580a9 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0x2431ead4 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x24374a12 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x24558e0f usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x247f431c ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x24a7426c crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24e71c01 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x24fcb3f2 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x250afcdd sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x252e43b4 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x2534406b shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x257f502b crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2580711e rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x25895b19 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x25aa616b relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x25da53bf pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x25e7904f xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x25ec84db rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x25f23de8 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x260c7f25 xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x263a9835 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x264f9c86 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x265eb446 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x266fe6b0 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x26a47f2f crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26e91fe6 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x26efe7cf usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x273aab74 xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0x274a1894 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x276a303c rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x278fc033 device_move +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27c2b175 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x283ee1a3 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x2882566d dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x288c4f0d rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x288f1fac debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x289a8d2c driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28b41b74 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e0666c crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x2901a718 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x29059b53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x290d4c73 put_device +EXPORT_SYMBOL_GPL vmlinux 0x29104d18 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x293103e5 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x29311f67 ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x29837eef class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x298490fb __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x29ba83bb gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x29f01139 ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x29f57e7f regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x2a11374a usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x2a380992 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aca935e bsg_goose_queue +EXPORT_SYMBOL_GPL vmlinux 0x2addf0d3 usb_usual_ignore_device +EXPORT_SYMBOL_GPL vmlinux 0x2b088152 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x2b149b09 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2b35aa12 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x2b5e6321 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2b5e9742 blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x2b655abb watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2bd76635 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2bf1890e ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x2c0dc18b filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c4a1117 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0410 xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x2c7330d4 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2cacface sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2e13cecb sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x2e206fb9 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e366659 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x2e3dc05b pxa_ssp_free +EXPORT_SYMBOL_GPL vmlinux 0x2e3ea949 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x2e400707 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2ea00b62 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2ea1944f raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x2f33436c ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x2f38e40a devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f79f791 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x2f7fbcae platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2f9999ec tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fe14096 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x2fe65923 input_class +EXPORT_SYMBOL_GPL vmlinux 0x303d273c ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x305c3330 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x3087936b xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x30a43278 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30b464f8 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x3108ea46 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x311035bf bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x31176a91 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x316db187 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x318032dc ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31bbf16c fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x3278ff91 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x329006f1 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32d56c99 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32f837d8 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x32fd4b62 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x330c76d6 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x3333427f mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x33543801 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x33589e9b cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33b5c4fe cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x3407c6f2 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x346aabd6 find_module +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x348f3ae8 ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0x348f563c usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x34955b66 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x34bc8606 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x34cdebec class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x34d76c42 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x34dbe85a inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x34f0644d usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x35155f66 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x35276f7b tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x3557e31f pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x355a89c1 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x357b187b gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x358eb9a1 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x35b54832 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x35bec1aa get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x35ccfe09 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x35d7c252 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x35f3ead3 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x3604f4da exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x36133808 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362bd590 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36573c16 xv_malloc +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36a0297e ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x36bbbbf5 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x36da9808 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x36dbebbf ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3757babd elv_register +EXPORT_SYMBOL_GPL vmlinux 0x37585da2 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x37eae70a xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x37f9a99a stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x3821746c tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x38544919 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x386b341b pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38e3aa5c xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38eb4022 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x394483d9 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x395e0958 acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x39a3176a ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x39ae6b54 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x39cd8cd4 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x39d74c46 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39ff289e ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a3054c0 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a548ed7 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x3a5f6bf1 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x3a86abb0 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x3aa2f79f wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x3aba6085 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x3ac0e0da devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x3ad9ab42 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x3b05f0c3 xen_swiotlb_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x3b1746c1 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x3b42ad4a fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x3b5f2278 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c5dba15 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x3c917de2 hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cb766bd usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3ce492bc crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d067939 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x3d078023 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x3d0f2571 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d3afaf3 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x3d659a1b md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d9f525c device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x3da274ba xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x3daa0982 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3de24877 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3dff5947 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x3e27326b devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x3e49cd9c __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3e7eaf73 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x3e7f0dfc __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x3e9ca55f __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x3e9dffda regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ec4faa5 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f205d3e tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f36fa5e tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x3f54548c wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3fbc0463 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x3fbd9e32 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x3fdb16ab debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x3fe38920 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x402e5db5 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40651263 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c24ec6 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x4140ec99 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x4147e832 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x4147fb7d inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x420e12df bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4240b6f1 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x424f6008 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42718d07 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42b87c02 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x42ba8c9e __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x42c4cc98 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x42c989ff iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43445bef sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x434fb953 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x435e6c6e crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x436b6558 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x43de5ae7 virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43f7ecb7 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x447cd7f6 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44b9774b regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x44bcfa6d system_nrt_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x44cc9c55 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x44ce1742 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x44ff6a77 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x453379ed pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x453940e9 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x45700f6b pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x45715c59 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45aae0de sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c73aaf dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x45cec1cb pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45d4b27f cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x45fd846e virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460c7eda usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x462d8fad perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x466f2431 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46944434 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x469719c7 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x46992748 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x469a8464 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x46b06bab vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x46c790ff cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4725b611 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x474359b6 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x47c149ab queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x47c2c158 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x47c8abed ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x47ce8e9d pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x48077b34 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x480ab0d1 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x480c5fe5 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x485e87a0 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x4864a37d inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x4865f9b3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x48682db9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x4873aaa9 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x489044fb blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48c62d51 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x48e7dcad tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x48e94e04 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x48f44e16 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4919c86f ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x4958cdbe dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49ae94da ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x49d079f7 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x49e3a774 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x4a2b764d wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4a7bc844 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ac99beb swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x4b0fa9e5 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4b57a851 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x4b8b32ca dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0x4bac829b ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x4bb18286 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x4bb5aec9 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x4bba3839 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bdbbdf3 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x4be1c767 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x4c0a9779 md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x4c55a559 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x4c5b9cec sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c7903b9 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x4cb4a7bb agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x4cdb663c class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4cde60f3 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x4cf9a3b2 x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0x4d2469ff __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x4d9b75ee bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4dab0344 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x4dc0683b crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x4e00bc3b ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e1fbd77 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x4e681247 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x4e71c922 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4e91b386 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4eae4bfc crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x4ed6e906 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f1ccf7d dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f2edd18 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x4f9d755e inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fd7f409 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff73310 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x5013e6de pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x505bc58b inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x508c5f96 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50ad4123 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50bf761c ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50ec717d rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x50f5ba25 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x50fe5282 ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x514a4437 xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51a8d497 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x51bd2a97 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x520d8455 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x520e2e48 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x5245f8e8 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x525733a5 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x52694311 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x529540e8 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x52bcc40c tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x52c50479 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x52c5aee2 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x52dba066 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x531b5497 unregister_efivars +EXPORT_SYMBOL_GPL vmlinux 0x531e034e init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x534a272a hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x534bb0c7 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x53565f9e wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5361ffec pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a05d4c dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53a84ced pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x53d0cf4d ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5426cf93 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x5446fced trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x5451fcc5 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x548f6897 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a64b80 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x5513d86d alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x551619fd driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x552567c0 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x5554f6ea crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x557f3954 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x55abbd61 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x5607b9cb sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5654f836 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x568e0cb0 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56f01e0b security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x56f2e781 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x56fc8229 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x5706fe7f trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x572ff5a0 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x57443eab wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x576650e7 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a7d6c2 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x57e38eb5 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x581ad785 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x584119bb da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x5874e306 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5877e9ab ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x587862bc platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x5884ed07 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x589abf1c blkio_alloc_blkg_stats +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x59a136a3 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x59b864cc mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x59d4f4ee inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a1dc483 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a441ebd efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a5cf1f6 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5ab61413 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x5ae4eb0f key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x5ae9c4f8 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b024929 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x5b0bf9d5 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5b1612c0 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x5b25ee9b bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x5b40926f regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x5b69d344 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x5b7e307d __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x5b7fdb44 dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x5b976217 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5ba164be crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c165595 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x5c1a8bd4 ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0x5c4d5432 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x5c5f79e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x5c86c3fe anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x5cbe4d45 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5cfb6eab i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x5d030daf inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x5d0bc22b put_driver +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d3cab62 cred_real_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d7f0de5 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d934adb console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x5da7840b bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5dc78753 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x5e01fcdb sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x5e3fe6fc __module_address +EXPORT_SYMBOL_GPL vmlinux 0x5e8ef11d inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x5e94d3bf __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5ee3a942 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x5f12311d user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f3cd55d usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fce76ee blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5fd67c15 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x6000a541 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x604f7a33 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x606932fb scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a62121 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x60b84edd ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60e2722e pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x610eb4ac dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x617c1905 css_id +EXPORT_SYMBOL_GPL vmlinux 0x61c7bffa locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x61d0a165 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x61d4e922 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x61ebbde1 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x6238261a usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x6267cae2 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x627b5a0e usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x62af84f6 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x62ba0c95 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x62eef303 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x62f11d70 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x63084096 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x63197308 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6347ee72 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x6373fd03 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x63ce1bf2 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x63d0841d tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x63d7e93f rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x63f977d7 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x63fa6536 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6428cac4 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x643395bc rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x643b157b md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x6449c9d4 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x6460063e user_read +EXPORT_SYMBOL_GPL vmlinux 0x648f07ed crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x648feda9 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x64c0e96a md_stop +EXPORT_SYMBOL_GPL vmlinux 0x64e5bf42 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x64f71599 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x64fca172 xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x65219fab device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x65278590 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x65303bf2 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x653f590a blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x65553631 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x655f079c noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x6592c5e7 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x65a05414 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65cdb109 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65e990c8 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x65fa533b usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662ae849 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x66340c0f sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x6658e0e7 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x66778069 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x667f28b7 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x669ed6c1 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e31a43 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x66e570ee inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x66f3cb35 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x6732559d spi_async +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x67436479 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x6757c5c6 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x677013a0 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67b29778 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x67ee31c7 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x6829929a scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68951de2 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x68bdc282 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x68cd2df4 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x68fa74ef pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x68ffc4e8 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x6901f843 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x692c3005 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6967b4f9 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f07061 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x6a09aefc crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6a36d5ab crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x6a4344c9 task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0x6a52c91f virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x6a566d46 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x6a56d1c0 tpm_bios_log_setup +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a642308 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x6a7e9a38 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6ab0d049 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6ac18b4e file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x6ac898a7 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6accbf16 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x6af24c83 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x6b0b0e42 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x6b1a8ac3 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b462f50 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x6b4746d0 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b88f557 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x6b8a5413 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6bad5001 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x6bb1a616 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x6bf46d81 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c234c53 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x6c243c9c spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x6c456102 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c584602 xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x6c760515 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6cc5cc0b sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x6cc9663d debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x6ccdec71 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x6cd74bf3 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x6ced8e2e devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6cf32b20 ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x6d19773e sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d4668b0 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x6d53ff98 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x6d56bf90 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x6d597694 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6d63dfae security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x6d7c4a93 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x6dcd7881 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e782c23 iomap_create_wc +EXPORT_SYMBOL_GPL vmlinux 0x6e91a409 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x6eda9749 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f1f33fe vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x6f36f38f mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x6f37c92e relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x6f5cf41a fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x6f608203 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x6f67762c acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x6f6eba7d i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x6f6ff2b7 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6f72afb9 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x6f862124 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x6f998eee __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x6fa79ce8 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x6fc43f50 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x6fd51f99 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70177482 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7025dcf9 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x70307264 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7045ba4a tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7049fccd usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x706c0ef8 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70b0c12c ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70f97d65 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x7109d015 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x713c5702 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x7146d0c3 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x716c24d1 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x7192e01a usb_enable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x71b86dda __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x71c40ee9 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71ec8236 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x71ee0250 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x71f24737 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x7217090f i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x72488c40 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7285f84f unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7290ab6c add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x72a364ea sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x72adbfe3 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x72e2857f inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x730a2891 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x7333f5ed pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x73413157 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x7392aa89 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73ad7db0 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x73c9e859 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x73d64360 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73deb673 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x73ed5ce9 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x74160d25 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x74323984 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x744b1bd7 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74aaf6f5 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74c1f66a regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x751a3c7a inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x752e745e free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x7560c3ca cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x7597170b cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x759fc8a5 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x75a1cd0d sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x75b20f59 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75cd9bfa pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0x75e0ade1 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x75e4440c ref_module +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75eb88b8 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x760872be dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x765bbf09 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x76967905 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x76b5f36e hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7745a054 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x7764cfc5 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x78019a2c pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x78671fd3 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x78898bb0 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x788f3eec bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x78ec7e49 xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x78fb9596 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x790b4359 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x794de74f crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x796931fb blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x79a71c48 kernel_stack_pointer +EXPORT_SYMBOL_GPL vmlinux 0x79b4e42f task_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x79e675fb debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x79fc845b crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x79fd6b10 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7a193ffa pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x7a2a90fd pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x7a2f8fe2 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a5343d4 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175 amd_erratum_383 +EXPORT_SYMBOL_GPL vmlinux 0x7a87313e register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x7a93af92 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7ac150db blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ada5a66 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b259ca6 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7b7f1818 usb_is_intel_switchable_xhci +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7baeafb1 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x7bdd2cd3 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x7be0965a dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x7bef6b01 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x7c29d4a5 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x7c357d59 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x7c464979 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x7c94a551 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x7cd0bde4 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7cd5735a rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cef4d6a irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x7cfe9bfe crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x7d18dce0 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x7d44b407 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dabb8f8 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7de85b55 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x7e069a13 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e1ecdc5 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e356be0 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x7e408542 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e693a78 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x7e74f221 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0x7eaee6a2 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x7ec1524a ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ec2d49b ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7ecaa075 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x7ece4982 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ed16fbf pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x7f04e593 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x7f33243e regcache_write +EXPORT_SYMBOL_GPL vmlinux 0x7f3615d6 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7f45ea30 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x7f6c529b usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x7f7a99b7 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x7f9205b4 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x7fb8f4b5 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7fbbf9d3 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x803fd0c1 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8048bc89 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x8069edc6 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x8079e0da skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x808958f2 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x809446d1 tps65910_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x81101ab7 xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x813f9431 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x815ec7e7 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x81760c2a stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x81ef8b1f spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x823a0d56 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82f39902 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x833267fd sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x835f769e rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x83661c92 pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a43898 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x83bbd968 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x83bd80d4 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x83ce82eb get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x841a2c09 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x843523ff skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x84417334 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x8478ad9b vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x84ab042c spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x84b596c7 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x84bece77 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x84ec1afb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8563629a ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x8574e3f3 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x857cfe8f crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x85811351 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x8596b10f aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x859fee17 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85d022d2 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x85d4c6e8 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x85d7d4c8 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x860cbb18 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x862f98a3 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x869ec1f2 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86aa16e6 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x86d024ed crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x86e0749d inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x8728629a crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x872aa300 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x8731c5cc led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8750ccc5 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8799c30c device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x87a88e72 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x880de7bd iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8831f8b1 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0x883e4425 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x8864f927 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x886c1c32 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x887a0696 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x898c10c5 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x89979975 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x89b41c73 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x89b59810 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x89ca9cbd unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x89d34981 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x89ee466c nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x89f0db4c dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x89ff43f6 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x8a34d7d3 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a909145 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ad2e126 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8ae38f48 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x8ae7b6f0 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x8aed488b ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8afd2725 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b0b24ce lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x8b635716 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b73660a sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8bc71107 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x8bd4f063 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c27cf5a udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c47e013 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8c4db1b5 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8c6d5734 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x8ca7c0c1 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x8cbade67 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8cfcfbdd ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x8d092ae6 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x8d15f646 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x8d500491 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x8d64cb8c rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x8d72b33c rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8da1e7be ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x8dc4d0d1 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x8dc65d5f usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x8e038225 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x8e23f86d __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x8e3e4356 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x8e61bfd3 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x8e6d498c ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x8e88ace2 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x8ec98c0f __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x8ed09c39 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8ef660c1 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8f14beb9 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x8f3a2688 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f6e45c3 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x8fb576b8 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8ff7b48d ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x8ffe7499 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x905528ec user_describe +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90834b76 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x9095c716 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90ae45b6 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x9101898e print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x9104dceb ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x9126c77a sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x912da829 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x91334e38 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91ce465c usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x91e4100b usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x9259dcdd md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x925f8bfc pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x9270adb7 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92c3f244 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x92cd9c74 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92dbc7cb __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x93041de4 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x933a4e98 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x933a52be uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x9356309e crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x93b5a36d blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e172d0 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x93ed23de sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x940621d7 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x94780167 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94d25072 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x94e7c63b blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x951f1329 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x953ed347 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95702dfd register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x957f2fb3 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x95b01681 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x95da94ca perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x95dae556 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x95dd76c8 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x963979b8 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x96861d91 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x968892db ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9723ad7c ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x9726cc24 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x975a4c47 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x977d3aa6 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x979b9958 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x97f9c45a trace_nowake_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9842f28e blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x987c1f1f remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x98a02ee9 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98f2ea3f hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x98f9e29e cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x98fa9c00 md_run +EXPORT_SYMBOL_GPL vmlinux 0x98fc25ab blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x990d5467 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x991747be __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9955ae81 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x998291e9 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x99919a68 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x999cb54b device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x99aa710f xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x99cbfbfb apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x99df2de8 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x9a0dbff1 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a2d12c6 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x9a4a296e proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x9a4ba814 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x9a51349f __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x9a906c3f power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x9a9af6ba ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b09ad65 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x9b3bac78 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x9b402edb blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x9b4ba368 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x9b55b944 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x9b831a8c register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ba16251 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x9ba61f8c find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x9bcbccf9 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x9bfb2d1e ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x9c3efb99 device_add +EXPORT_SYMBOL_GPL vmlinux 0x9c4c59d7 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d0275a0 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d03e0cc xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d2ed6c6 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d7cfc3b wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9d8b9ffe rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x9d93d206 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9dd17f30 xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x9ddd29c4 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x9de22b31 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e07c70f pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x9e0ccdb5 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x9e1bb65c stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x9e328443 tpm_continue_selftest +EXPORT_SYMBOL_GPL vmlinux 0x9e40e897 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x9e4f1cfb ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9f0547db sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f29601a atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x9f39ccec xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f7ffd4b __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x9f97f556 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x9fbcd604 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9feef26a ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x9ffa1ef3 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa08e78e2 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0f00e82 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xa1472e20 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa15e48f2 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xa18e49f9 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xa1dcbe78 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xa21ea14a transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xa240de99 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xa2506813 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xa254648d page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xa27b495b dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xa2aeed64 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa304c686 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xa30c5f99 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xa341fde7 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa3917b8d sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xa3b26a4b preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa3b8d4dc virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0xa3bb9dec blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0xa3da9534 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa40c7949 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa427a405 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa47a0cd4 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa499006f usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xa4b26812 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xa4ca0d4e unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa4d3da0f get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa5448856 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xa5726192 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xa5845b98 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xa588c55e sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xa58bc406 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xa5c8d7b6 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0xa5cc811f blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f475f1 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xa63022d8 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xa6a30cb7 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xa6a876a4 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xa6bc8e3b preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa71fbcfe __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xa722a819 cpu_has_amd_erratum +EXPORT_SYMBOL_GPL vmlinux 0xa774e0b8 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xa7a7d14f alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xa7c6dca6 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7c9e39e synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xa7e1e6f6 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa7fcf68a kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xa80d5306 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xa83d973a led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xa856ca9e rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa85e7271 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xa862f0ac xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0xa867f29f xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0xa86ee925 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa885d97e class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xa89e206d init_fpu +EXPORT_SYMBOL_GPL vmlinux 0xa8b6975a crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa8d525b9 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa9094516 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa95ead64 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xa96c3d5d tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9dca670 inode_dio_done +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2558ac m2p_add_override +EXPORT_SYMBOL_GPL vmlinux 0xaa2612a3 regcache_read +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa309646 get_device +EXPORT_SYMBOL_GPL vmlinux 0xaa3f13f7 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa48bba9 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0xaa852c93 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaadfb77 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xaaafee3c wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xaade7022 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xaaee7582 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab0955ce xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0xab439210 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xab60ade6 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab88f153 user_match +EXPORT_SYMBOL_GPL vmlinux 0xab9e0274 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xabc47f60 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xac0723b9 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xac9b403c sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xaca8d9e6 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacb6c9b4 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xacc623a8 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xace04fea scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace7f542 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad50aa92 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad794bd7 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xad87d718 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xad93eb11 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadb26ff0 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadc7b46e ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xadf14911 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae553a92 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xae60cc8e sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae835c26 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xae9f851f xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0xaeda6a18 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xaee9eddb __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xaeea3073 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xaf14d5ec wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xaf2fcc73 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0xaf6937e0 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL vmlinux 0xafa2b7b9 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xafc58ba4 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xafe110f2 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xb00150ec scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xb0516324 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xb05a5586 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xb0658ff8 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xb0663978 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb0ae5977 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb125155e ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18506b9 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xb19fe84b platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb1a124b6 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xb1a6eb87 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb20d057e ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb20f960f pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xb220fcf1 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xb236743b max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xb2539e41 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xb29989a7 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2f5558b irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xb2faf64d wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xb2fb15c4 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xb30be7af cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xb315f6b6 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb3494d2f usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xb3767928 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3d3e15b pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3e2de12 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xb40428c3 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xb422fc68 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb4374240 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xb47df3bb uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xb4af8831 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xb4b4ced3 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb4c198a3 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4fbcb8c acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xb50b0713 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb52c2296 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb53a17bf cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb53d718f crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xb54fe298 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xb57dbac3 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6327cd6 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xb67796d9 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xb685d687 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb68c4d0f crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6bc49a9 __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xb6cbc1bc power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xb6d050db pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xb6daa7e4 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb75d662a hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb7606c0c devres_add +EXPORT_SYMBOL_GPL vmlinux 0xb771c9c2 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xb7aca9cf cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xb7bbaed8 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xb7c7adf9 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7d9ff10 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb808a6fe ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb8145e18 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xb82ff811 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xb83f9c3d ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xb8440280 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xb86bcceb klist_next +EXPORT_SYMBOL_GPL vmlinux 0xb885ae2f xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb9010c76 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb91aa707 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xb928cabd __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xb92e66b9 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xb92f497d sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb92fd449 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xb93ce960 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb953a3dc crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9abb5af pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c0e4c1 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9efd868 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xb9f7a7bb crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xba6134a4 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xbaaeb90e led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb0289d1 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb09fc70 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb2e6de3 yield_to +EXPORT_SYMBOL_GPL vmlinux 0xbb3b4bd2 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xbb890fda sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xbb953197 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xbb97ae41 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xbbb94f2e xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbfce101 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xbc2bf721 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xbc31d38f xenbus_dev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xbc456407 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xbc6f931b workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbd039b4c fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xbd079925 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xbd164066 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xbd2e09bc seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xbd2f89b3 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xbd3b02f3 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xbd46e7f1 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd527144 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xbd5bd37b d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xbd64cc22 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xbdbc6182 __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0xbdbd5176 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xbdc7b2de usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbdf44a30 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0xbdf9b317 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xbe032b1c dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbeac3749 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xbee138b1 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xbef3544d user_update +EXPORT_SYMBOL_GPL vmlinux 0xbf5c7ba9 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xbfaf78ed aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbfb2578a xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbffcb3b7 acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0xc020c541 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xc03ab504 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c687bf pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xc0cfc684 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc0f0a32c pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11b4470 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc18304c2 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xc1a42661 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xc1e5c3b8 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xc227c410 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc24a0062 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xc24a044b rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xc24d4a79 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xc2537522 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xc2631f18 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2a69773 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xc2abaf9f __class_register +EXPORT_SYMBOL_GPL vmlinux 0xc2c8cc97 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2e954aa xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xc2f6a8c1 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xc3134d6c rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36dcf62 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc3748232 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3af4c7b usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc43f5cf2 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xc456436e usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xc47cc06c blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc4820756 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4b0fd7d __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0xc50478ef usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xc51e985c fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xc530919b ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc59bf3be ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xc5aad65f transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5 amd_erratum_400 +EXPORT_SYMBOL_GPL vmlinux 0xc5c9a513 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xc5f8046e rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xc5ff08c6 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xc60429bb stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc60796c9 device_create +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc62a4a5f eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc6719bdf gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0xc6b3a79d blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0xc6c43ee6 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xc6d96772 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc73a8cff usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xc76787b5 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xc77a16b4 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xc77f09b3 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7aa805b pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xc7c560f1 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xc7d4d7ad debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xc7ebe99b sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xc80f6b69 __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc84060c1 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xc84ce6ba spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xc862cd0b ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xc8635899 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc884b8ba edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8f3fe35 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9179a3a tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xc9296983 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc95e9e78 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xc970bda6 ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca1dab3f usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca8dc89f handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcb47a0e0 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xcb5d31a9 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xcb824bc3 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xcb9a0f77 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xcbbcfe94 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xcbc8107d blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf7cff2 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc25b081 edac_class +EXPORT_SYMBOL_GPL vmlinux 0xcc3b60a3 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xcc3da32d aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0xcc41bd7f apic +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcce29e02 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xcd212df7 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xcd2bedb6 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xcd501367 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xcd6fd1d4 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xcd8e911e crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0xcdbad25f do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcddc1f3e scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xcdffe6ab driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xce2ba65b clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce738c19 m2p_remove_override +EXPORT_SYMBOL_GPL vmlinux 0xce9e81b6 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xcead6cdd rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xcf27b688 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xcf2a1d41 shake_page +EXPORT_SYMBOL_GPL vmlinux 0xcf349d9d ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xcf9d3d3b tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xcfb5871c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xcfc10d77 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfde740d srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd05dc2a3 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xd06e0fb6 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xd0a83a00 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd10856ca sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xd10eb675 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1b57dc0 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xd1f7787c clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd21804aa ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xd23cf296 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xd2409466 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xd24c41a7 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27a9d32 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2af2aac xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2c704b2 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd34f83d3 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd3cbd639 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd418479a max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xd4340870 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xd4449afe netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xd4693fe3 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0xd48fb3fa sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xd4a99216 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd501fc72 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xd52b3d5d device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xd53ef196 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xd543e526 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xd544e902 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0xd548be76 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xd552d632 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xd5670b8e vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5f360f2 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xd6009413 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd618d5c1 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd65157a9 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xd65173fd crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd69b423f handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xd6e09cd2 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6fb40e8 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd713975e ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd76505e8 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xd7658232 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd779b097 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xd77af3de sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7935f0d crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xd7a4bb17 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7fe9c53 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xd808989e usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd81cfc19 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd821bfca tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xd8250a5c iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd84bd4b9 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd8a8a5ae pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xd8b7dd05 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xd8e37b34 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xd8e4e0f7 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xd8e5d88d __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0xd903cce1 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd93e76a6 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd9796dd3 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xd980e436 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xd9e38e87 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9f34b16 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xda3cde59 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xda7d8c5b anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda86701d tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xda8d74da swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xdad056d1 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xdad6009d inode_dio_wait +EXPORT_SYMBOL_GPL vmlinux 0xdadb8618 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xdae92ae8 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xdaf2ca86 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdafbf75a xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb372a34 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xdb71f6d1 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xdb784940 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xdbaee710 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xdc0dd63b seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc18c36e cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xdc2fc6e0 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xdc4afb68 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc858094 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9bb445 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdc9e62df led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xdcabd294 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdced72ba scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xdd015e52 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdd2a7aaf xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd4fa340 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xdd573dae root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xddd021fd iommu_present +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdddf03d2 mmput +EXPORT_SYMBOL_GPL vmlinux 0xde163f8f usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xde40947c ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde615ce4 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xde70d802 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xdf2c8f55 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xdfa1fd06 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xdfe9d28d crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdfed8ec7 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xdfeea746 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe0405d62 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe09ee795 ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0xe09f4004 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0xe0b1053a rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0caf4ac ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xe0ef9ba8 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xe102a9ba blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe1257185 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xe12d573c shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xe14de0f3 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0xe1506c5d spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xe166df70 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe184ea3a simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xe1a74f31 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xe1c932f3 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xe1cf7cb7 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xe1d487f1 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xe2307ce7 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xe24f9485 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xe265ce14 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe27e30f1 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe2892f28 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a61330 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe2b5bfe0 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xe2c980df __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xe2cba529 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe2d92dc0 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xe2d95748 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe2e75a80 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe37ab4df ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3c0c27b usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xe3c55173 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe44945fe power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xe49bc139 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xe4b3b658 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xe4b5d111 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe4f3c6c8 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xe4fa6165 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe5035964 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xe52b341d tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xe5332155 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xe56da222 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xe56df542 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xe57b97a1 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5ccc68b show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe62ba540 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6564673 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xe6a7fd7a pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe6c6e65b mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xe6c8ce04 device_del +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe73bb4ab iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xe78840f7 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xe78a6b8b pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe78be098 xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xe7c134b0 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xe7d1c5ab ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe7e235df crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8045aeb crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xe807d01f pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe825e338 device_register +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe859cbd5 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8764c30 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xe8a120b0 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe8c8c6e6 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xe8e8aecb xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xe90e39d5 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe96da303 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xe96dd7b9 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0xe97a91da usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xe98da8a8 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xe9916766 register_efivars +EXPORT_SYMBOL_GPL vmlinux 0xe9965ca4 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0xe999e055 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xe9ed7c9e blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea105802 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea47f904 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xea8b5274 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xea905975 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xeac05152 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xead714d9 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeaec649e debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xeaeecd04 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xeb2cbbad pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xeb370805 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xeb3f080d pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xeb61a0ae dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xeb987ea9 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xebb8b4a2 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xebbb62ad usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xeca84d1c setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xecb9b31d iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xecf39950 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xecfe4c57 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xed229c28 mddev_check_plugged +EXPORT_SYMBOL_GPL vmlinux 0xed2b3c8c virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xed8d8085 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xed911a64 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedd3efba sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee116ce9 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0xee4f189e ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xee5323c1 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0xeea789d1 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xeec24d31 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xeecf2f3d locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xef0f17bf regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef23d470 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xef4166ac regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xef48d254 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefb72398 pstore_write +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xeff3732b ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf0411662 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xf061250b bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf065e692 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf0893bbd vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xf0a9d664 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xf0be1ecd rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf1268a7c irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xf14e10c2 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf19070cd security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xf19c7813 pxa_ssp_request +EXPORT_SYMBOL_GPL vmlinux 0xf1a0518c pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xf1a23d37 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1e0df1b ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0xf1e3c5b5 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xf1ecffb5 ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0xf1f5eb20 register_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xf23fad42 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xf263092b debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xf28ecc67 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xf29d580b rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xf2a37c40 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xf2bb941f bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xf2bc60d7 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0xf2dbec92 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf3216139 xen_swiotlb_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0xf3287c4b wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xf32fe1e8 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xf33a0f09 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf35553b4 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xf3884ce7 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xf38eaea8 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0xf3923e91 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3bac538 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xf3c5bfe3 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf3ddb090 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xf4214f56 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xf421e781 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xf4318781 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xf4637d8b __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4bb4b4f perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xf4cdced8 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf4d292f5 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0xf4e9bb52 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5095ace fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xf543236f get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54e7fe9 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xf54f1bea cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5655b46 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5968139 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5b40083 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5c9897c crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xf5dae60a skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xf5f46934 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xf5fa4ea8 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xf6234fdd rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xf62f70b4 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xf63d3a9d get_driver +EXPORT_SYMBOL_GPL vmlinux 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xf64c0b8f dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xf675ed44 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xf68bc95f ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xf6cc6e71 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6f58b77 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xf6f6e7d8 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf7322bc8 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0xf756b9e8 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xf78abf5d rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7a5ab25 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xf7aa18de hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf7f53ca0 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf84d79fe pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xf85e8349 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xf874c2d2 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xf87d4bf5 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xf87d890d crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8c2237d platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf90f3bac register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf9344a7e uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xf9482e87 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xf95c4af8 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xf96aeb94 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xf975db1b crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf983f4cd xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0xf98550af xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xf997d715 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9c0e46a ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9cc85be da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa040689 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa240e32 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xfa3e4f71 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xfa3fc7f6 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xfa45de6e tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xfa486644 ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0xfa9ae626 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xfac9f9b6 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xfad369a1 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xfaeb7143 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xfaffedb1 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xfb18d7d3 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb741dec ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xfbb391b7 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xfbbe7bbe attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfbe016f8 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xfbf07075 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc194093 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xfc1d254e i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc4e0d6b xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0xfc7a0a84 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcc8421f da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcdb229c register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xfcf346ef ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xfd05464b klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xfd2c4d7b rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xfd2dd801 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd7100d2 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd764696 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xfda3bffa inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe520a08 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe8b10b1 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xfe8fb7c8 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xfe945402 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5d3e19 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xff5f2b0e __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xff7e2114 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffb24df2 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xffb6c2d9 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xffbf7c34 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xffc186b3 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xffcbc077 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xffeecc36 __pci_complete_power_transition --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/i386/generic-pae.compiler +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/i386/generic-pae.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/i386/generic-pae +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/i386/generic-pae @@ -0,0 +1,12692 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x4e9779eb kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xa0da4ae2 kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x907665bd scx200_cb_base +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/acpi/video 0xe8caf91e acpi_video_get_edid +EXPORT_SYMBOL drivers/atm/suni 0x55c6390a suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x83fe1a1d uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0xb01957eb bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x5c165453 drbd_set_st_err_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 0x0f886749 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x189e13b4 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x2babad89 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x497f54b4 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x5327a765 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x69367dea pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x6983ab05 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x69c6afc2 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x73610be0 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xb06384aa pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xc397b455 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xc501c986 pi_do_claimed +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x63e29c37 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x809b4f23 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcd84f7a7 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xed333c4a ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf97ddddb ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/nsc_gpio 0x0abab776 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0x892ff5b7 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0x8eeaecd8 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/edac/edac_core 0x38e7f667 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xe7dbfcc0 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xfb10f9aa edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1c408e9f fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x286866dc fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x370b9131 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4f5d7da3 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x624065b8 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6d258e64 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6eabfc16 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x75da87c3 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7702538c fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fbfa242 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x87f966fc fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8a790b49 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8f9cdad7 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x98358434 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9d835221 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9f8335e0 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa0ad5596 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa15102a7 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa803f7c0 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb06ea4ba fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc2aa0720 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd7f49235 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdeb9590c fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdf8a12ab fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe45fe7f9 fw_iso_context_start +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x003bfd87 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00ced12e drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x025521da drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0427349e drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x079874f0 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cd4339e drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d63d6ce drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e133029 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fa31622 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fb44781 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x123b7f12 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x126ca534 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16b4be6a drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a9ae54e drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2114f4b4 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24cd1cd0 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x261e8fd9 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x294a040a drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d117bc2 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d8a4e3e drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eefb72d drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f4ffdd7 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fb7315e drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3054c8d6 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3098d0b2 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x311cd91d drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x333704e3 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33b34cc3 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33e154ba drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3465ed3d drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x365a977e drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36b085c7 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39f3de10 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c10cf65 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x404902b8 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41469c24 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41fe8795 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43102799 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c9a91c drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46108d58 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x483a5486 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x492a48a0 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dee3c48 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dfb923b drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e6ac2ef drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x500f6be2 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5127043b drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53c9e92f drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x549b2c8d drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55839340 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x561f39a3 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x576da7c8 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x578168ff drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5835e5c0 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b0c740e drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d413248 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5de527c2 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f098f77 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f6cbc33 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x618e2564 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62b224ed drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63758853 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63ba5f95 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67026845 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a7193e7 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b894282 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ddbf8b5 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e2a2eda drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fb94c86 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x720d32cc drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7550933f drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77669ee5 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78b587b8 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7aab482f drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1e794f drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d262fd9 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f24b6a4 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fe76376 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80cab082 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81b4d3f4 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8281bd36 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82d8bf7d drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x830bc9be drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x838fc94a drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x841c47b9 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85767d67 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x859b39c2 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86136af0 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8735d11f drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a9dcb5c drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dbc7381 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e140678 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x912c23fe drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91907472 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92f2d102 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x932df43d drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93ad2c48 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94869618 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94faa873 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a9247b3 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c2df296 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dc25a34 drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa01166f4 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0abb82b drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa237e931 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2a31fdf drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7fca3ff drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa853131f drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9a3c90e drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa54231f drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa6d323f drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaec1a9d9 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf6e1013 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb18d9954 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3ab90b9 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6f33714 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb830ac8f drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbdd6797 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbf0e1b5 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd4f9ed0 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf214ac8 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1bc5d50 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc27a0edb drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5826d70 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc728d8a8 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7b7b158 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc83efc11 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8a2d75c drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce7a7af0 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd01c46a0 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd04e10e3 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd39dccfd drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5904bbf drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5f027d1 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7225597 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd755abbd drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7d3d47f drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7f1ab84 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd88f3baa drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8f8f82d drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde985a7b drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1a476b9 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1ae238f drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe256edfd drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe27a644d drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3553657 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6ead14e drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe81bca35 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeba66da8 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xebdfdef9 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed256cae drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf05e14b4 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0a0bf79 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3f038d8 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3f777ac drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf41721ff drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6aecf06 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8fc0eb1 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb0e7e66 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfbf2df8a drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc4f8599 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfcecabdd drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe775932 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfea557be drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x001dec63 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b4bddcd drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0c47e0bb drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0d64b1ba drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1784b7fe drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2373d1cd drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2bc3d4c3 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33974d3b drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x378f51a5 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e33ace1 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x412c3025 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x419efea0 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c8b708f drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x60e8642b drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6669dc40 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6726e71d drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f069866 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85ca4e50 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa1d141d2 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa634c9aa drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaef732b5 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb584e05e drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2b512ad drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd1d94b25 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd6967e85 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd8fb1ad6 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe11c21aa drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf36ede3c i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf43c092c drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf46d01eb drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfcca7563 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00d6fef8 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1274ecd9 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x13119eba ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x145e6a73 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1470553b ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25392771 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266d8a60 ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2906c117 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a2f7f7a ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b941579 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x33609b16 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34c269a1 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36d9a868 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x37d0af23 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a4170e1 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3f4bd6c9 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x41f58552 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45a6f28f ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47c2defe ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4915fb8c ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x49b442df ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4ea2891e ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50a096a1 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6622655d ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x75e018f5 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x765f58f7 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x786e3144 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7b80c129 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7f05b5eb ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85477881 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8832162b ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8f8cb99c ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x92da04e8 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9411280f ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9dd2feea ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa0d29ee6 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa3e90bf7 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa45c44e4 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbaa2b414 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbd5f95b6 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc8fde049 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc9727601 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcbbac744 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc404922 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd3e800b6 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd781128c ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdfd1efa4 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe07096a5 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe39b3950 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5417038 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf2daf786 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf2eaa709 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf9d416df ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa331db2 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x348aa23c vmbus_sendpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x9f91216a vmbus_recvpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x078e6a57 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x1f2ad4f9 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x85b88a2f i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xe495e120 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xaecf5dc2 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xfa406323 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x291c41bc rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x37838b44 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x8ed679ff rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xb93baf0d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc0bf4edc rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x41128c03 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x477fd1d9 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x49c658ca ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4b4cd16e ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x574ce0a1 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7543447a ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7b5603b4 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x860e0b90 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa9373739 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb14d6b86 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc45ecfae ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcbddd5cf ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd23f4956 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdbe365de cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xebea7565 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xecbc5e0d ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xed61fb51 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e19f659 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x104f5f13 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1180fb86 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1246c176 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1326eabe ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x173635bb rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17781468 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c764b50 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d0652a3 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1eef0a0d ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29eed200 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e554f6a ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ebda7be ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x38beb10a ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a7ab748 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b50d29a ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e50f9da ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40dd2c59 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49232470 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c5a995b ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50f821ca ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5101443c ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x525ba0bb ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b51de39 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62bdb84f ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x663dc103 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e61f60d ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74c26cf9 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81f4b348 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x826570cd ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87f4fdcc ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88c863e3 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96d63a7f ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9952c3b6 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9abe0f2e ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c4a9b27 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa0e71782 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5892f40 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa920e5b ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xacb9ad58 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae3e1124 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xafa7ea85 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb33b7b88 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3dd9729 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3e272bf ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7a6c23c ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdc36a49 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbde3208b ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc45dc51d ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc46f6028 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc623f357 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc7a52bc2 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcb387afb ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3298315 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6ca936a ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8a0980f ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8e31856 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc735d6b ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdccfee4c ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf3a8235 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4ababf8 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6e0610a ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7a41b34 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe90b72e5 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe95f0e40 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea81851f ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2a49e0d ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5c008cf ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf9ad47e2 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa0f18d0 ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc46d0cd ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdb9552d ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfeec039d ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x01a9172d ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x272a0383 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4605a20e ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4d062f83 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8efd3bf2 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x909db400 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x93b14650 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa6de8527 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa70f2aaa ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xae9db2e4 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xafe0f15e ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfdd41daf ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x14c37095 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1c778fb6 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x25f8177e ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6e44fd9f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8001438f ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9ec2fd34 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xbd4fe1d4 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xdf4888f7 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x452a3378 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x48da0a58 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4b4f3cf6 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5dbe7b49 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x75e19a77 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x86e706e6 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x885249e9 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xef0566a9 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x077430bc rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1077f889 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2086e1ac rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x309ea194 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x342d5cea rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3feb7e45 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5e9fe548 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x64c6f159 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6d2baf1a rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x99eb55fd rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9e4a060d rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xae550595 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb44447e5 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbf975d41 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc0c11848 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc7fe5c71 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd15893ba rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe27b71fa rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe6190112 rdma_destroy_id +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0fa6f8a1 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x110ddd3c gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x56117035 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x6163b9b1 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x62304ea6 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9368be97 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xaa7cf5e9 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf7ff34ff gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xff4b87cd gameport_open +EXPORT_SYMBOL drivers/input/input-polldev 0x4f2de856 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa911bc5a input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb12fd506 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb6c9c282 input_register_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x012d3fe0 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7bbf1dab ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x80140272 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x9fe4734f ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x6591cbbb 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/sparse-keymap 0x0526ceef sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0ae0e575 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x195c407e sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x205b874c sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x25598c96 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4d04ed2c sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbc9dc160 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xc1c09397 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf3bd1692 ad7879_resume +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0844d7ca capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4092d989 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x43ce0fb2 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x687cfb5b capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x732774f6 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7f6649b6 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x80f1d8d1 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xdeb3dc87 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8b4c2af capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xef6eaced capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x042ea51d b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x04c71863 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x085e3724 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x144f8f50 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x38ed8919 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4306e05b b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4aceda2a b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5d54532b b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x660daae9 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x75f8c00f b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9245293a b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xafcd07a1 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc1191aed avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe00a47a6 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe1f1a6ef b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x023ce49f b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x090c2cee b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x32e881da b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4192a57e b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x68d919ba b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x753f61a6 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x77be9941 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xaadb0f28 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xeb551318 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x15f3a8b2 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x07cd42ca mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7a50ef61 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x96fcae2d mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xc512be79 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x43f66a81 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xc313efa3 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x1cc007da hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x0798c363 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x64ec273b isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xc2936394 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf29dafe2 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf44cbb00 isac_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x52431332 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x67fe55b4 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xd7aea306 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x09e73705 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x383526c9 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x383ec8d8 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x57cd3e11 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x591696e4 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5cc37623 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5fe6d30b confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x61b4fc05 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6e637b46 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x77850797 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7e2d92b4 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x83828e83 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x89773ac6 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x935ce059 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96aac526 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc1443199 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc8c77a53 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcc165f24 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcdae359e mISDN_initbchannel +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 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8e7d341 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xeec73952 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x9cafc659 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xc4dbcdb2 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xcbdc19c6 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xf2e6f3ad dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x0a024c2c dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x11d8fd15 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x233a7f4a dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x36ee6a76 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xcb88ac67 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xf64281f6 dm_snap_cow +EXPORT_SYMBOL drivers/md/raid456 0xa735b5d2 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xe32d1ed7 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xf18e0a4d mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x534475a1 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x75604ae7 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0xf5815276 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x8edd8949 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x092477f6 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18212 0xd88ecfa1 tda18212_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0x2715545c tda18218_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0xf2fca5ff xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc4000 0x34c1b0b4 xc4000_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xdda822a9 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x190bc329 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1b4f95aa flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x207db59c flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2aa57003 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2ee88190 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x35ff70cf flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3ef24bbf flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x54d8df57 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x740ee03d flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8f2b6bc8 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x95521053 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9b234c5e flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa12d0061 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbddec311 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xca886f7c flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd0cd62ab flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe610f70f flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe71a7f14 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf3ea0f03 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xff7a9f8d flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x6d825a47 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x7976ca8a bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x8804ee53 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xf36ed388 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x34a8c72f dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x403481ce write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x599ddc2b dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x72f461bb read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x733bc8b5 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x76df4e94 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x77cfb947 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc4d3d5f3 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc5f0c331 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x454b13d6 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x101a29b8 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x17f893f9 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x196f1ac1 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1be887ed dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x237f7910 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x24566e91 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2631cacb dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2cb4d52d dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x300f2abb dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31bbde26 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x40875ee5 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x43b7d6c9 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x487bafb9 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4b27c5b3 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4c70c35a dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x57eee9f0 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x60401b9f dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6abfd29e dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x93dff1b8 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x987dcfde dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x988f1782 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9aece697 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xaa668f63 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac376109 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb38f03f4 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb72b5fa0 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc36b701e dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc90ef4bc dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd3ee7530 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xde266f38 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe141c4d0 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe9dd9424 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfcc0ed9c dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfeb89769 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x08dc68ea dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x1f7cb842 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x825edec8 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb5000bd3 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb7ab741e dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe6389d13 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe8775d38 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x946fb64f af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x01781f6b dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0c9dbf9c dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x153dba32 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2bf2fcd6 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x387d33dd dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x56b803f6 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5da5e616 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6533a495 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7f2cb8cf dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb4801362 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd550675a dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/frontends/a8293 0x1249d01d a8293_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xbb99c7eb af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x0492bdd9 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x95af5cdb au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x82ddee86 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x3f5a762f cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x4cc8ea63 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x70f51bb1 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x3d8ad331 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x70b4e368 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xa9df24b3 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x7459311e cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xc90b2547 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cxd2820r 0xd969f8c6 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x5c5538f3 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x892a60df dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x892c49c8 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x8a00d17f dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xc3ec7960 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x1b1b0adb dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x75135b06 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9178d28a dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x96f86047 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xbe5becc4 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xcc2e3898 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xdbdf8f79 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xdf64f5e4 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf1933f73 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xbaf4e051 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x531db7b9 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x544ed2e1 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x5ec910ca dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa4fd13eb dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xceb9bf0e dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xfde4d2d4 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xb3315b7a dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xc4736936 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xe5499931 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xf2608f54 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x09c453d1 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0a447c9d dib7090_agc_restart +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x481c4493 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5a0d2655 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x90c9badf dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x972c6e19 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9d602d1c dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa60dca47 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa6d094d2 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb83da63e dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xbf7bfa12 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcb140c36 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcde945f3 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe38a2c79 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe51b9f2c dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0da295fb dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x3d5a29fb dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4880ee18 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x787b931b dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8b4a545d dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9a8e3658 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa05340da dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa3e01bb3 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa43ac50e dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb45c7861 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xddc4c325 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdf1675b9 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe666650f dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xeee59850 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x225a554a dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x99a69b81 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xa92cd4db dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xaf3636c5 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xeecce8d4 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x00593a7c drxd_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0xef85d7f7 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb/frontends/drxk 0xf8e8681b drxk_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x001bb5ed ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xd7c78eba dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0xbcc80a48 ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x5187bcc3 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xa73ac801 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xededd747 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/it913x-fe 0x1e1b3d65 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x8f0ad0dc itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0xd3a052bd ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x2efe2a5c l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x166da7c1 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xb0c9ebd8 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x34dc6cad lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x25742888 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x82b4793e lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp22 0xd81ce780 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x7195fbd3 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0xd23f1ad6 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x6768a507 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x2a1ac268 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x61063aae nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xae5d5624 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xfd41bf3b or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x910e5222 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xbcfd9760 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x3623b365 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x6a1a595e s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xe427b62b s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0xd90d7296 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x6e3debdb si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x05af476b sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xa20feede sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xc4cd6f87 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xc7c25c03 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xa9e812fd stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x9d84fb93 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xb0ac3267 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xba16744f stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x3a932b92 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0xa059b3bd stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x580b8974 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x33a7fa95 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x556d506f stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xa6bd73bc stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x612234c1 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x8b372327 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x7c976bf1 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x63793018 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x88cbbb0e tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xe8f2f281 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10071 0x80d88038 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x579d9f08 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x79b91558 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xb0a2cb6b tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x7958e6f0 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xa1510d93 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x8f0e4dc6 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xb3448635 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xdd585fb3 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x317b670f zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x628dc852 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x85d0e01b zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xe420e705 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x10a53393 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x3b623259 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x073dcb65 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x352e92cd lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x51076ace lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x7a36c30c lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x9b4274f0 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xed34f9d5 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xefe38d66 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf4462d6b lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/rc-core 0x834601f9 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x942f0e8c ir_raw_handler_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x0f2ee739 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x7a8918a3 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xc483f130 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x3523167b btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xbb21ade7 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x0225a6b9 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x12fe8349 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2ffb95c5 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x4ada6cc3 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xdc32a7a6 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x0113e632 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xbeab2ba3 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x0da7e7ff cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0x0e45778a cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x676ed443 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x7dc2bf3a cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xffb04ae1 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x229b5c4e altera_hw_filt_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x395b6da9 altera_ci_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xe621acfb altera_pid_feed_control +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x1ccc51af cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x24346d0f cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x28c0710b cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x2f0b1ad0 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x63aeabea cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x72ad7f2f cx25821_devlist_mutex +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x7ed6a409 cx25821_dev_get +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xbf3e573d cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xf2329ac4 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x02c5e440 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x2d439387 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1f7d7d04 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x2b412043 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x80a686e1 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xaed61db2 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xebbdc693 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xfd740b9e cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2ea3dc6b cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2ffdbaba cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x748cca54 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x85314c46 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa82b2de2 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf31a299b cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x02174d4a cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x079fa489 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x12a2d354 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x18eb73fd cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x333fa173 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3a1735fa cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x78a12ab0 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8b886087 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x97a438ec cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9acd5ad7 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa2eb8419 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa96442d2 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xacdc6d3e cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb5cdf8a3 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb8f332b5 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc82dd188 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd1c65786 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe2a74e53 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe378198d cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe896c05a cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe9c59eb4 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf33576e4 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x2ca5799b em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x99dfcd12 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x08984d93 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x315afa7f gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x31727af0 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x5e80094f gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc2e4cf80 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xee54267e gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xfe2c1c1d gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2e05159a ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3870bfd1 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3afa06a6 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3fe0442f ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x47b04177 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x71735366 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9eceaa9f ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa0f4ad74 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa3adc495 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbaa4b72f ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbe115d96 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe2993a74 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0cb561a6 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x12e3c0c4 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5ad5aa1e saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x6191d568 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x66407a9d saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7c3edcd0 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x991c809f saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa60c96c2 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa617f0f8 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbf811811 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd5db6fc1 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xeb2e019b saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x09a550b5 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x1ff3980d soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb57176d6 soc_camera_unlock +EXPORT_SYMBOL drivers/media/video/soc_camera 0xbd3db2e4 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0xcffbdff0 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0xda2f841a soc_camera_lock +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x433952ab soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6951757b soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x85d52182 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xcb4b96ae soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xbea42be1 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xeb7f4866 tm6000_register_extension +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xf3f03fa3 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/video/tveeprom 0x56ad5212 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xf0a53a21 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x3d6e4e4c v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x791ab099 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc0699aac v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xcc76efb9 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf052e6db v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x38670bb0 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x68ab0917 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x99738556 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x240d1d37 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x663c9b97 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6a043d67 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x70841b5c videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe2d1d346 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe856552a videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf2-core 0x9c30190d vb2_querybuf +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x12726da8 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/videodev 0x253564e7 v4l2_ctrl_add_event +EXPORT_SYMBOL drivers/media/video/videodev 0x2dcd2e5b v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x31c0eaea v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/videodev 0x3ec0f29e video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x4544aa1b v4l2_subdev_init +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4d360cb9 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x6688e496 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x693e8ad5 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x6950c250 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x6aa6c16e video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x7936d64f v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/videodev 0x8db11be1 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x91b1e615 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x96827c2a v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x9a1057c4 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x9b4f9933 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xa0761a68 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xa74678a0 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xac15cd7c v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xad1bf5bf v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videodev 0xc831b655 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xcb96bcf3 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/videodev 0xcf5644da video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xd31754b3 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xd4bf05c4 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0xd99b07bf v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xda6dc93f v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xdb3229be v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe12e18f8 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe3719f5c v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0xe734bd9c v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0xe83006ee v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xe9fd110f v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xee1538d2 v4l2_ctrl_del_event +EXPORT_SYMBOL drivers/media/video/videodev 0xeed6faf3 __video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xef9007ee v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xf0491eea video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xf09c0c86 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf4d3333c v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xf8b09388 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0xfd49abb0 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1d82051d videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x811f3d40 videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xb55532fd videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xbc3cfdb5 videocodec_detach +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0a8ae52b memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0bbfc02a memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x39a6f8b3 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4980d1e4 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x56998d49 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x69ecfd05 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7ff1031d memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x82c4c101 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x839cc976 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x9cabf1c5 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe7e6a6e7 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf1d7be27 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0ee58f6f mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x135166f0 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1c36c96c mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x22b81768 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x245627ee mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3d2a5c34 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x43b3d4f4 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4a5ed12d mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b96768f mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4cd9764c mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x62aa4d12 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x636a931d mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x65b9416c mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6fd111c4 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x787a6ba4 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7a9e46f4 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x907d63fc mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9cb20c0a mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9f219ef7 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa42dc374 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa6a394eb mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb41bde4c mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbf64d3d6 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xca269ece mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd124a687 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xef613596 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfa6e0709 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfe9c328a mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfff841a8 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x15caf2d4 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1879c0bb mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2f428905 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3644a545 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4834eee0 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4a7177b0 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x585527f8 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6232de64 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x68b9aae5 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6918f95d mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x79d8d46a mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8196a66e mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x824f0fc2 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x896cc52d mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8b6d7ac9 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9a7269b3 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa521d62e mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xac6a8306 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xad6fa27f mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc0f9c37c mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc2c87cfd mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd88283cf mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd8df8966 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xddbc41d8 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe2e82797 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf348f30f mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf4524137 mptscsih_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x076c23e7 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2670c271 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x32a08603 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4f7f874c i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x51c901fa i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5b8fcf34 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x655449e7 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x71ef10b4 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8f223a79 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa0ebfc34 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa13bcfcb i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa327f9d1 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbeed2339 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc67567a8 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc7955c5c i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xccdee908 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xcf0bcaf8 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd0d838da i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x66204660 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xd668749c pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0a0f0fa1 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19f1f7a8 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x304d2b09 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x648f3e82 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7c8289a3 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x81e0f888 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x908760bc mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9bc42b70 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa83c26ee mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xad06449f mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb3dae053 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc60a9247 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfdc5799c mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/tps6105x 0x04e075c5 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x45673112 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0xfbcf95b3 tps6105x_mask_and_set +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/misc/ad525x_dpot 0x4148482d ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xf1ad9c20 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0xeafaf244 altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x06b53e3d c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x6d864a84 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x154188e9 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x7b50fd87 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x17260fd9 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x25d6a6a9 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x2708231e tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x7dab90e0 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x9db802be tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xa1ff4ecc tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xa616dd5b tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xbdfedc67 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xc310b986 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xe98dc4e4 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xee782320 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xf353bafa tifm_alloc_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xfeceb15e mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x64eb360a cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x6c158fe9 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xe4bf903e cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x454d49f6 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x4f6b15c0 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb637d15d map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xbc7c2002 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x83eff3ba mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xc7b4ff8b lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x194c4478 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0xb6807e33 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0xd2a5ba7e mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x0c8ddb5f nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x13db425e nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x342a8adc nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x628420ea nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x6f7c48cd nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x96839b05 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf7a6e3dd nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x208aa17e nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x76f4354d nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xddcbfe11 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x193750db nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x92088cc8 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x179e59e0 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x481aef78 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xc5e70dbc onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xea1eba6e onenand_scan_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2da10ff8 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3f9b157c alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x47d0f9bf arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x53aa1ff2 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x79abe7af arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb1a0ef5f arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb3100b8c arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb5d2620e arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdc2c3433 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfb34aa9e arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x17430749 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x89e4dfdf com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xa5acae79 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00feaf11 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x12c43ded ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4f2134a2 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x561f1188 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x61b9d604 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fa7f00b __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa1b4a4e9 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xb2f0c38d ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xce0f7a11 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xfe576e9d ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x27a1d440 eip_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x32dbe470 eip_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x46948eea eip_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x517db7b2 eip_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x54e28f5b __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x5a4e9a1c NS8390p_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x73da9940 eip_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x903cee1e eip_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x99c03fd7 eip_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xb8603c00 eip_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xbad0468f eip_get_stats +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0xc9576811 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0x5ceedd32 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x02f76d22 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4703566c t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5992e0bc cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x686ae84e cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x75570d30 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x76a11447 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x866b586a t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8fff292b dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x90e18653 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x94a2b121 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa6aac2fb cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaa30a0a2 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc9b9c239 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcdc3f0f1 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xea7f8798 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf8e2f850 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf9432b32 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x028ce0cc cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06a1a06e cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1ff50d1a cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c3719fd cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c9034ea cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b78aa04 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5e8e2a45 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x680d264f cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7034b7c7 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x780aa502 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7ceaea43 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8fbb484d cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa1b3c061 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbb9cd3b3 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbd4f18f3 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc0b71a01 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeb28c104 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0040c956 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa689eb5d mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda6b3df6 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x41e9f8fd hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xac6d9b6a hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xaea1686a hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd1d67710 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe22fc8a1 hdlcdrv_register +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1c6374e2 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x31079cdb irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4d9d355b sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4e41a954 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5bac7ee9 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x959011bb sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb3e722d9 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc69437bf sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd2b68fd1 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdc0fe7a7 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x191dc7e4 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xd29e7d8b free_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp/pppox 0x2030f8b2 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x9746c1d6 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x9f2089b2 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0xfb457251 sungem_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x792a0fa3 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x81283e4e tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x859df36e tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x8ae3a4c2 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa99ffafa tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793 tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x087feb10 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1eab00d9 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x297844b9 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2c1581d6 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5b219025 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x621723e1 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x656773a1 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8609734f hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcbd43c31 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd93c0d13 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xeb53c349 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x1e4c9f6c z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x231cf3d7 z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x34bd7c87 z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x6c6b3f91 z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x722a3425 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0x7391857f z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x777e12da z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x7e66d985 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0x964b0b1c z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xa838eeb9 z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0xaa6d9c9f z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0xb0ef2c7e z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xcfc88160 z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xd4ffebf0 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xfc32f645 z8530_nop +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xf4409731 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x11367961 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x3a1a51b5 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x97c7c50a reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0025e037 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0219a8e2 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x14931389 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x265a888d ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4dc32e1f ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6a91e54b ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x87ff4652 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe2229048 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xffdab7b9 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x029d5968 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb08c4a57 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc9c59e98 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd815cba7 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00810ce4 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02e85d5e ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0577d1f2 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07c8fe3c ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f3ff09f ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f42af04 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11ed4f13 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1279b595 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x140a790d ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x189805f5 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b10aaf9 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2288748a ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22d2a2ff ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x238282a8 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c80f8ea ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x30e0576c ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x368f43bf ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3fddbd22 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x484846ed ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a977b37 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4cba6234 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5360442f ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x543a679d ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5702f801 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x58fe5b62 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5caac5ec ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x679a8a6a ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6857e299 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x685c7a03 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68a57972 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71dc89b5 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71ee366e ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x726387d1 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x746ae1a6 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74bdfbc0 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x772454e6 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77e50cc3 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x861c700f ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x869bd6b8 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x86de4c0e ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x890bbc07 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89d2b08e ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a5f38ec ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c46e2d1 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ea8a904 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x905f0273 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x928d9949 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97530d37 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x99c59805 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa103a8fc ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa461c6fb ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa74e2729 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa3a1e82 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac1e64e0 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac73ba6f ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad3b7fe9 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb091748a ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1feb2a0 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2d0e16d ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb31d6573 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb41afd56 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6be77d1 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9c9dabb ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba8a3357 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbb788cb ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0a91105 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc800d710 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xccb9754c ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce194525 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf980318 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd372cae5 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5f78cef ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd6dac3ef ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8cff2a4 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdadd7118 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd7687b7 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3972be5 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee3caac7 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf075f9d9 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf13102d2 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf24644e6 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf480fdbe ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9938980 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9f00c30 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc39d997 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfeb59c39 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff066fea ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff86eaad ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/atmel 0x598a480b stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xc9438fb1 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf588a041 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x04833485 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xfd195ac2 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1512c2a6 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2224a1ff brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6105b9ca brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x74d04fdf brcmu_pktfrombuf +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7abf3d10 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7dd79c5e brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb1c3507a brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb96f9fb2 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xcbdebb27 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe14442a0 brcmu_pkttotlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe2931df5 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xeacff61b brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xef9c68e2 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xfce29c93 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0752740d hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x16f628a1 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21b2ef50 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x255b2b37 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a9869f4 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4782f677 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5a8a0299 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5b46ad74 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6287b81b hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x64aefa77 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x755b2e66 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7586fc7b hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x78eb3ffc hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7d1aa56f hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa7b52ca8 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xae814a3d hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb11e38c7 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb8b13402 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc6aff9d9 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd1cd95ba hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd4b6aeb8 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdbbaf075 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdeca17a4 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe3fd1b48 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe7152194 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x08bb6d8f alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x130a8190 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1aa1a9e7 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1d4ae7e1 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2ca44e9c libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3388aec7 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x40faa1e5 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x44e9d9b2 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4c4f5ebd libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x55d591c2 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x55f3a99e libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x90c0a1b6 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x92163aa6 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9e05b5cf libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa8ac948e libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb4c7c491 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb61c86d4 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc04086de libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd7560c6f free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf19c1d6d libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf7bc5df7 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x033b5187 iwl_legacy_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x05098f15 iwl_legacy_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0572bc90 iwl_legacy_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x05e6bbb1 iwl_legacy_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0a03e36c iwl_legacy_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0c468a90 iwl_legacy_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1163214d iwl_legacy_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x13ce090c iwl_legacy_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x14d1d02f iwl_legacy_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1a0d1b0d iwl_legacy_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1bf4892b iwl_legacy_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1ddfe8c8 iwl_legacy_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2610f1bf iwl_legacy_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2b016bc7 iwl_legacy_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2df0e508 iwl_legacy_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2e767eaa iwl_legacy_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2e8a48eb iwl_legacy_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2e9e4ae6 iwl_legacy_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x32492a84 iwl_legacy_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3ac3ba7c iwl_legacy_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3ae772b5 iwl_legacy_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3e6d5631 iwl_legacy_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x41cbbe15 iwl_legacy_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4345b736 iwl_legacy_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4a446ec9 iwl_legacy_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4a6ea072 iwl_legacy_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4afeb94c iwl_legacy_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4c1f6fa5 iwl_legacy_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4f94030c iwl_legacy_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x51f38ad8 iwl_legacy_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x52120fac iwl_legacy_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5664a32d iwl_legacy_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x56d36d4b iwl_legacy_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x58874758 iwl_legacy_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5b22d09b iwl_legacy_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5ba7950c iwl_legacy_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5bbd0092 iwl_legacy_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x616c5b84 iwl_legacy_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0 iwlegacy_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x679b30e7 iwl_legacy_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x697157f7 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x70542d1f iwl_legacy_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7075cb2a iwl_legacy_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7532bfe3 iwl_legacy_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x759d2f63 iwl_legacy_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x76a51997 iwl_legacy_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7b4eb5cc iwl_legacy_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7d634e28 iwl_legacy_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7e5ba9c8 iwl_legacy_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x845243ce iwl_legacy_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8921edf8 iwl_legacy_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592 iwl_legacy_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d746542 iwl_legacy_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8ecfa19f iwl_legacy_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x923d001b iwl_legacy_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x98b49c24 iwl_legacy_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9a2e23f6 iwl_legacy_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9d36777e iwl_legacy_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9df1275f iwl_legacy_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9ef03c18 iwl_legacy_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9f093eb7 iwl_legacy_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa3a2743c iwl_legacy_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2 iwl_legacy_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabe48768 iwl_legacy_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xae019207 iwlegacy_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xafd7f8e5 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb24eb305 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xba6a880d iwl_legacy_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbbb210d5 iwl_legacy_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc1273a19 iwl_legacy_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc191b79b iwl_legacy_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc3e7e3af iwl_legacy_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc72d1123 iwl_legacy_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xca7dd304 iwl_legacy_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcb0ee40d iwl_legacy_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcdf5558a iwl_legacy_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd0846e4a iwl_legacy_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd1989b0e iwl_legacy_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd3c468c1 iwl_legacy_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd541c4a5 iwl_legacy_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xda773816 iwl_legacy_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdc1b2104 iwl_legacy_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdcefe1ab iwl_legacy_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdd6f00ee iwl_legacy_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdd86f500 iwl_legacy_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdeec0a73 iwl_legacy_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe7d7c5fb iwl_legacy_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe946b982 iwl_legacy_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xef0aa540 iwl_legacy_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf461940d iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf976e67c iwl_legacy_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xff1c5227 iwl_legacy_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xff56e1d7 iwl_legacy_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x60faee03 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x61c5e32e __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x65489f9c __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x726d9621 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xb6c345da __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xcc312d73 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xd1d62dbf __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xd915418d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf7769239 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x012eb385 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x09a6b055 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x19cb6166 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x282f9178 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3c84f97f orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x437ac425 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5a90bc71 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x789d6065 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x89a4f703 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d0b87b4 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa44f9379 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xaac1fb1f orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc78bba2a alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc7b33a69 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd374746b orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xeccbfcdc free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf78bf7ec orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x092b9400 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1163ed35 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x16425bb4 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1c48ec74 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1f8402ed rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x30553078 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x30c7720f rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x36e6712a rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3bc09ad5 rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3c118db3 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3cb53b9e _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4a700f0c rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4eb88453 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x509793bc rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x53a403dd _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5d82483c rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x60c27aa5 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6e8180fc rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x72943006 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7aa5a46b rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7c012464 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7d9a6c05 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x823947c9 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x84bbb2b9 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8dc4110d rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x973c9c2b rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9ad200f4 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9d0267ff rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa2b8eb15 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa72b5b13 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa86b5c67 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa9a72aa6 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xacecc2dc rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb6295931 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc79fdf63 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd68ea84b rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe637db88 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xed8a1d66 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xeeb70dc5 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf1c23442 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf8d1cccd _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfffac7fa rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x05045e60 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x25f42e2b rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x286b2eda rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2bfdbdb1 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3686a339 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x437cdc32 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4f2198ab rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5a2f0c71 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5ba4f363 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x602b2ea5 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6c9bb0b1 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x71c1d120 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7a1660ba rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x86f49915 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8b53e70c rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb9870c6c efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb98c465b rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xbe04f263 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc33efb29 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xdfab13fc rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe32af9a3 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf8a08780 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/parport/parport 0x0167a29b parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x078778dc parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x0d7c0a6f parport_release +EXPORT_SYMBOL drivers/parport/parport 0x1429961e parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x1e86d17d parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x2b42d10c parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x2c810e29 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x37d2baba parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x4bd78299 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x57361df8 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x579c6e5c parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x5bb11862 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x5bf09500 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x6dc34105 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x7f0e661f parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x8c8644e3 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x96b9ac9d parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xa4c7a6f1 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xa658a231 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xab3dc4e7 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xaf395aa0 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xb6b85262 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xb91f2388 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xc2e5f630 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xcd4287da parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xce092295 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xd0c90d38 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xd122676a parport_read +EXPORT_SYMBOL drivers/parport/parport 0xea0f718f parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xf2b6f596 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport_pc 0x20369ea7 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x275f3d4b parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1055a23b pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x163c5ce3 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x28ed8f6c pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2e91b7ab pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x34e5c714 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3d793b82 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4f0e48d6 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x57332891 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x594adf10 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5b1f7466 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x683bed45 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x886eba07 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9e4933fc pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa21b4bbd pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xae400a20 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb3339d92 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcf3a662e pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xda9981e6 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdaf90da9 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x157d1292 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x431f6af4 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8190756e pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x906bffef pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x979b452c pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaa2a8638 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb4b61edf pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd2a8bc45 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd46cff44 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdccf6b87 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xea9b1995 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xc5316d73 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xddcd8208 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x7958bdbd pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xa713d28e pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xc8b73a5a pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xe03e9888 pps_register_source +EXPORT_SYMBOL drivers/scsi/53c700 0x0acfd731 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0x3d9cece0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0xfe1c20b3 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x016a9520 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1251b0c8 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5b516967 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6cc37cc7 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7b29f35f fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x87ad4c94 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaade8090 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdf30c0a8 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xed90f109 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x055da4da fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0c178905 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0dcfb4b7 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x10c9d71d fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15fac098 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x18df2106 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3afb681e fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3edcbb33 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4415cd45 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x44358f3a fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4577b04b fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x52c1a377 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5ce13dab fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x629d4da7 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a124bdb fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7cb68d9d fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x830a14bd fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x84e6cb57 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a923f06 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e4ec2ce fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8f6f155c fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x97677a12 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x97f08edf fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ae121b7 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa08cedbf fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa5393a59 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa9066721 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xad26392f fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae0e2312 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb2196f5a fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb35b27d7 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbcc13899 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbdc781c9 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3be323c fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc439388e fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc52ae298 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7e90458 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc820c661 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcd417696 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcfc61c40 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd41bba33 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd7fd516c fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0650e67 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe065a7b7 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6233660 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe67b68c7 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6a8b55a fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf4710888 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf9930d3e fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfbaf818d fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x37c1715b mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x03018a8e osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x04859ff3 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x13f55636 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x258b9c1f osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x27eba807 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x29c16ebe osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f104b5e osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x31522289 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3448c7fd osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x36a13496 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3c8d51ce osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3dc4e54c osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3dc81604 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x43e74e35 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4a206125 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4f4e451c osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x54323906 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x56e9a636 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5a6258af osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x685f0fef osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x74ee4b67 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x74f27ff5 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x78c833a7 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x850fd830 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8c223d33 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8e799f7a osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9ba65849 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa66df41b osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xce420f5b osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcecbd472 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcf6b74d4 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe2906f72 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe60722b9 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe7c98caa osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xef7d9b64 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf5f20fe9 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/osd 0x260863d1 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x39497ac8 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7a005869 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc372aa6c osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xdbd2ff32 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xefd1671e osduld_register_test +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x20689014 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x2949c871 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x700b1d61 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x74e09320 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x7d1a26dc qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa706d7f6 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x50473294 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x8040f38f raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xe1d421fc raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x09514b2e fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x10d83dbe fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5a21c210 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6ac3fea4 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x940f8392 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb5c34016 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbc43fdc9 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc2046372 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcd90d27d fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd9f134da fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xeec7eb33 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf1b378fd scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf5cd70fa fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00418fda sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x031b82a5 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x034494a4 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1187c27f scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x165fa2be sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1e129388 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x26a83913 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x33c020d3 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3579def5 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3a7eb761 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x44513e15 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4ee92e45 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6d5bec34 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x705bd541 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x98d977c8 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa9182a5b sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xac2f61c2 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xae973807 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb069fdd1 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd3d4c28c sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd53fb108 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd2b2a89 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeb8d8ac9 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xec8fdcd1 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf60ac91a sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf67845fe sas_port_add_phy +EXPORT_SYMBOL drivers/ssb/ssb 0x1988757d ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x2ce6fff0 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x3401cc4f __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x3aaad0b4 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x459227cc ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x49422c4e ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x679a632d ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x6b77c711 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x6f677d51 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x8895de22 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xa0fedec2 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xa2c29c3b ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xaab593b8 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xc02c283d ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc6e89e77 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xc9e8e6dc ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xce4e7b26 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd5d98137 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xda9e2987 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xeb887863 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xf91b2cf4 ssb_device_disable +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2363c95d comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2535fd2c comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x3ac47004 comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4bc4d04e comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x6376589f comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9ac3bc88 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9ca19d2e comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa59c2069 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa5dcc9eb comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xb78159dc comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc15c715c comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe3de0e21 comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xeaaf7616 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xfb212fc9 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xfcc414e9 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x0d561af7 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x9d86429f subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x9d98e769 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xf8b4e7a2 subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x41431f64 cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x5831b847 cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xb979ae12 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x06ed5c59 mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1168e001 mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x11877c36 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2d1c2e53 mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x315ff7a2 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x46054c73 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x49ea01ee mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x55eb0773 mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5bef3d2e mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5c67f61c mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x61ddd9c0 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6254b9a5 mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x66ddc7e7 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7b16c3f9 mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x92170fb7 mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa7bd925b mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa7e1c3ce mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd195172d mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd920a2e7 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdbd504bc mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x1b621ca7 subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x5ada0d25 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xde9bece2 subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xeb2a8721 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x1f77e883 comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x201df66b comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x38a8d1d4 comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x43237e68 comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x590b6d80 comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xae506f0c comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xfda16ef8 comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x1d8b0782 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x1fbc1a38 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x57b3ac40 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xdb759246 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0539434e iio_buffer_show_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1fa2437e iio_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2cdd003c iio_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3f122258 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4a3c04aa iio_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4b4b8f01 iio_buffer_read_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4b842512 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4c919013 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x68008e1e iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x70505e23 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x70beab5f iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7436cf11 iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x90f4bfab iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x968d999b iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x99c8fc29 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9df2c259 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa29a110e iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xafa977e4 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb95bec38 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc6c63702 iio_buffer_store_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd1382cf0 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf5bcac77 iio_buffer_write_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf5cf0edd iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf726c93b iio_buffer_read_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfce9ded1 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x6d944788 kfifo_access_funcs +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xb686c01c iio_kfifo_allocate +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xc5938aab iio_kfifo_free +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x849fb87a ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xb6707693 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0ce61e32 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xd595e507 ring_sw_access_funcs +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xee06f682 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x9419931d cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x2dffd486 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x80890230 go7007_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x8821f4a3 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xacb7cb0b go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc4d2997d go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc7008012 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xccf87681 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xd38ac784 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xf45e969a go7007_snd_remove +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x09f7e100 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0e238bd7 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10705978 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1947426d Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x194880ab ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1f145618 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x217151b6 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x21eb2591 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27e49c76 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2abe0b41 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x30ce5aee ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32c3ec04 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3bb38f4d DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x40ed5a31 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x423609ea ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a82c711 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4aa0dcbf ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5dc3aac2 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x61bed05d ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x62678116 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6e062f09 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x74b8fd0a ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7635b7a2 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x793625e8 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7bfdeeeb ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d03cdaf ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e4b7375 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8599aac1 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8726b91b ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b1a2440 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9e2b4d49 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa0e9e7ec ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa780659b Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa9a37669 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa9c897c7 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xac4cbd24 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xacb90236 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb213564 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc1f99199 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd70e777 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfb4ee65 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd0984257 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd1b9dd0e ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd2f99148 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd7f5d6aa ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe25f8bf3 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe753cc11 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe98ce085 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed3afa67 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf23c0cf4 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf6f4838e ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf98547e5 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa1eb33c ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xffb8b96a ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x0228c579 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x07185bcc vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x1e106b59 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x21e7cb35 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x2db78384 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0x2e490e49 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x2f90372f vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x41862ad4 vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x4a6bedb0 vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x5da27705 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x65c908c8 vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x90695906 vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x97b89295 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0xa5743982 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xbea86ee2 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xca3b1488 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xd5b9df70 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xda6c78e4 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xdc1af7ba vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xe7b8e60d vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/target/target_core_mod 0x0169d28e core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0336ebcf core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x038a9093 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x04f156c5 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x0a638643 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x0c4a7378 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x11d48329 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x1282f4ff core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x137d13ad transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x19f8665e iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x1cb6168a transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x21a6330d transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x23b4bfe5 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0x2c3975f2 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x30f89acd transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x32ab336b fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x333e5e99 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x3ad76958 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x3d75ad00 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x4232b3d6 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0x48dedd42 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x55799cd7 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x593c0764 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x59be9134 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x5a059cfa transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c1e5380 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x5dbcc9d4 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e69f77a transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x62cf63e6 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x65c38d9d target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x67be571e target_splice_sess_cmd_list +EXPORT_SYMBOL drivers/target/target_core_mod 0x69354b97 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x736bf1b4 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x7467000b target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x77c8fb00 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x7bf363e0 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7e1ad878 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x9082a264 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x928b0111 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x9c42e12d iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x9d3b5566 transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xa0a616cc sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xa33974b7 transport_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa25f7ab fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa99cf37 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xad364e2a transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xc2dd0609 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xc4a35c16 target_get_task_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xc689e47d transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc9f745f0 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb041490 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xcbca4ec7 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd2b2740b core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xdbfac995 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xe0edd8a9 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf093a311 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf0cbe537 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf273a0a2 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf3eb4c87 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xf729b970 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9e58192 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/telephony/ixj 0x2a56a54c ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x6de8f6dc phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xb45dbab5 phone_register_device +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xf862ce76 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0f24b785 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x12129923 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x13f59c33 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3e05d2fc usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5a38cc76 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x64c6a6dd usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x72ca400b usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8e3bc007 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x90732fae usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x95ddcdb7 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9acac668 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xba85da2a usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd3058375 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd4b6cc2f usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf3b15249 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x6071ede2 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xd41fb1eb usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7323a6d5 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xd54db5bc lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x4b5417ac cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x78ead886 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x816ab89e display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xdd471963 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x9aa9f421 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xbcdd304c matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc5bde9e6 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6f707e7c matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x769df6ce DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xa22c083c matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xdeeabd67 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x67eb2bf0 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x303e2e20 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x5d057a59 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x928ed164 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd5f303ea matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xe6a7eb3d matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x57244512 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xe1cae23c matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x30000c0e matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x33e33207 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x5309657d matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x7c3a09a6 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe78c0693 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x08399f9e mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0xb6a0590f video_output_register +EXPORT_SYMBOL drivers/video/output 0xe57ae791 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d7e171 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x143e8b3c svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x549b03a1 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x6a116529 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x6cc42f5f svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x9562cdb9 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x976f77f3 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf9a2bd4a svga_tileblit +EXPORT_SYMBOL drivers/video/syscopyarea 0x5f5eca06 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x90515e40 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xda2abae0 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x0c4b4d44 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x3a83ba96 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x48d4e191 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xaf6ae20f w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd5765c7d w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe8147d4c w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x1c44384f w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xb15ae9fb w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xdae6187f w1_ds2780_io_nolock +EXPORT_SYMBOL drivers/w1/wire 0x0514a749 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x85e0e12e w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x87b20e50 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x8bee0ac1 w1_add_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x080b70c3 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x32546054 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x33c856db configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x354100c3 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x63ad77a0 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x70410f6d config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x93c0c7bd config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xac8a910d config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xafa43599 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xaff44656 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xd591a95e configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xde7bba81 configfs_undepend_item +EXPORT_SYMBOL fs/exofs/libore 0x011500ad ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x2b23e90e ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x391d68f9 ore_create +EXPORT_SYMBOL fs/exofs/libore 0x3edfca29 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x42bd4a07 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x47969cd5 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xa6c8f5cb ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0xb8a2be5d ore_remove +EXPORT_SYMBOL fs/exofs/libore 0xc9f89c96 ore_write +EXPORT_SYMBOL fs/exofs/libore 0xd72fcf1e ore_read +EXPORT_SYMBOL fs/exofs/libore 0xdfeda2e9 ore_put_io_state +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x1109b06f __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x17a0aac1 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x1ae30e94 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x1c11f35b fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x1dc4105a __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x2228566a __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x29305256 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x2df72819 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x2ea14e05 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4322d979 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x4616e1c4 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x4ff04e2d __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x50b1d620 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x54037c49 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x60c14a06 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x6716da4f fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x6c1c0ce7 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x776cfe69 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x8136b583 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x9cddaea1 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xaf89a763 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb024edf4 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xb6bb5767 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xc80d3d49 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xc8213fe4 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xe4f84c15 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xf889dae0 __fscache_attr_changed +EXPORT_SYMBOL fs/nfsd/nfsd 0x0c8d6829 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xcbb738be nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x05fa8f8d qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x34396bf9 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x42593115 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xd1d794ba qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xfafc6d4c qtree_release_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0b32de39 lc_del +EXPORT_SYMBOL lib/lru_cache 0x210f1ee2 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x2646306c lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x2b2226bb lc_get +EXPORT_SYMBOL lib/lru_cache 0x529f72c2 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x5e941862 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x6b3233cc lc_set +EXPORT_SYMBOL lib/lru_cache 0xb2cd4f4d lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xbbc51b84 lc_create +EXPORT_SYMBOL lib/lru_cache 0xd146d9a5 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xd3bb6860 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0xdf43d805 lc_changed +EXPORT_SYMBOL lib/lru_cache 0xe5aa47bc lc_put +EXPORT_SYMBOL lib/lru_cache 0xf933aa17 lc_find +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x067fbcf1 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x5191be65 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0b54878d p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x158df29a p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x1d0da856 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x28dfe6dc p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x341915ab p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3609aaa0 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x40d3e4df v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x471fa54c p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x4763bd12 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x4d6fb9f1 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x59b90bdf p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x5bc8f479 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x60953bc9 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x65648e11 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x66bebc5b p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x67852771 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x6b86e030 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x6c019661 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7154183a p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x7a940df8 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x84cff10e p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x89d03574 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x934f4d56 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x96b7b9f5 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9c2051db p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa11209f6 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xa5aa3586 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xadf8b545 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xb00f56d0 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xb4a67b30 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xbc8e6698 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xc06a6eef p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xd1133f2b p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xd8eda45e p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xd972ad05 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xd978a87c p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xdad1464b p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe7c65077 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xec50128f p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf738d39f p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xf793e3b8 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xf926be38 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x0df8685e aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x1e130d85 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x8e55f40c alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xa2f3cb47 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x06698ee8 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x0d9a763e atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x2c585a91 atm_charge +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x6e199d6c atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x82a78c2e atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x82cd48ba atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x93136f41 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xc843777f atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xdc8615bb vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xe28e549e deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xea39ac5e register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf095098d vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xf4977cdd atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xff5bb69f atm_proc_root +EXPORT_SYMBOL net/ax25/ax25 0x005e32f5 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x1792dfec ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x22f40f66 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2521a75a ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x39fa7423 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x55939ae9 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x78c8c570 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc45d2dc3 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdf001519 ax25_find_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x041656ac bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0598b59e hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x06447248 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x135e336f bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1ab4eaf1 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x21ccb5ff bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2352fa28 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39425a08 hci_le_ltk_reply +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3dba9228 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3dc532ec hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4749d616 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289 bt_printk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x56abf9d4 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e382b50 hci_le_start_enc +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5f077153 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x60067f12 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x61454214 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x644be344 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6a3b5512 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x706ff6a9 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c95457e bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7d7bc0b6 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x84efda15 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8954a253 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x89716410 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8971b3a4 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8ddbb378 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96ba3814 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9c3fdd73 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9e245a59 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa1fe5f86 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb63c5c31 hci_le_conn_update +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbbff0fb1 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbd90d903 hci_find_ltk +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2f24470 hci_find_link_key_type +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcd7b593b hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe0f682b8 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe2a77f80 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf34b1e11 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf50b44b4 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfbe784b3 hci_conn_check_link_mode +EXPORT_SYMBOL net/bridge/bridge 0xa7c8755c br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x794a0a4f ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x84c18279 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9fe01e11 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x35b49017 caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x3814eeaf caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x504da5e8 cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x5807d88d caif_free_client +EXPORT_SYMBOL net/caif/caif 0x63e9812a cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x6ec682b7 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x88e95649 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xe3c301e6 get_cfcnfg +EXPORT_SYMBOL net/can/can 0x02d8ac64 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x0dab5957 can_rx_register +EXPORT_SYMBOL net/can/can 0x1908b76f can_ioctl +EXPORT_SYMBOL net/can/can 0x9d107183 can_proto_register +EXPORT_SYMBOL net/can/can 0xeecc7d34 can_proto_unregister +EXPORT_SYMBOL net/can/can 0xf06ecb9d can_send +EXPORT_SYMBOL net/ceph/libceph 0x0187f632 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x0253142b ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x0783a1c1 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x08db8759 ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0e3d0216 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x15220199 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x15847097 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x2122d841 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x28499b3c ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x2985007a ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2994a2ca ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2acd4b27 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x4418d3bd ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x48bd5373 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x4c5c76e5 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x50344edf ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6654e624 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x685398c1 ceph_osdc_wait_event +EXPORT_SYMBOL net/ceph/libceph 0x6a2cea68 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x72020d9e ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x732c35a2 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x74daee66 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x78435bab ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x78b64a2e ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x8897d136 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x8d884dd5 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x95d5776e ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x9b97a2cd ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x9d444f11 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x9e681cb7 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa04decda ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xa166b12b ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xa33c6a1f ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa4849eae ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xa7d5c2c8 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb14c75dd ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0xb31fa977 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xba95d3cb ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xbb032915 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xc11d9bb0 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xccb0a037 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xcf9d049d ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xd01b645a ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xd06de9b5 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xd0928c33 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xdb0f5d53 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xdf1700f5 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xe137b0a8 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xe2462f12 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xe2fd93c5 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xe3514bfd ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xe89a909c ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xf2ace98f ceph_alloc_page_vector +EXPORT_SYMBOL net/ieee802154/ieee802154 0x343cf9ba ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3460a717 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x34ac99fc wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3cb991f1 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4260f93e ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x63bc920f wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x683da629 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x93b4c3aa ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa0096680 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb005a647 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb0e0960d wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf193b972 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xff5c2287 wpan_phy_find +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x787cdf92 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa2becba2 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xf9d284ee arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x17d79fe0 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x2b6ff5d0 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x823d0a60 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2398ca93 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x43f254d2 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x609bf2a5 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7bc031e5 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa9855987 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd2d191f7 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe41d6036 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x223e68db xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x396862bd xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x08e056cc ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x18195c70 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4bf7929d ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xd62d8729 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x8640fa30 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xa91274d3 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9969454f xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xb7e1e37a xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x024f217d ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x072548a6 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2a999761 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x52bcf4d0 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6169cfae ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc27b93fd ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcf68dd31 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe951e3de ircomm_control_request +EXPORT_SYMBOL net/irda/irda 0x01dbeb0e irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x070a9b18 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0bab6037 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x138d5836 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23a2eee7 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x26bab844 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x30c9cde7 irlap_close +EXPORT_SYMBOL net/irda/irda 0x359de411 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3b0a2ab6 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x3b9bdefe irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x416ed0c5 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x428321fa hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x4453b950 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x468accd1 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x48d17824 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x4b663456 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x501a070c iriap_close +EXPORT_SYMBOL net/irda/irda 0x5210788d irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x55cfefbc irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x57baca97 iriap_open +EXPORT_SYMBOL net/irda/irda 0x5dc03921 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x5f754f08 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x62acf28c irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x648c7478 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x656fdd83 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x70c5278c proc_irda +EXPORT_SYMBOL net/irda/irda 0x711addc1 irlap_open +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7d54adaf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x7ff509a2 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x8bd20e5f irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x8cd99be0 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x909be5d0 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9e326eb3 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xa370c681 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xa9017cea irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xad15f1f0 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0be190a alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xc0bee29c hashbin_new +EXPORT_SYMBOL net/irda/irda 0xc22949ff irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xc77cf860 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xcf855bd0 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe01fbe33 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/l2tp/l2tp_core 0x79b7238c l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x085a75f1 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x3940edde lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x4b072e95 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x600a3633 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x7c928cb3 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xadf5b209 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xbcc05062 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xe27e4b9a lapb_register +EXPORT_SYMBOL net/mac80211/mac80211 0x01b051e1 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x032cfd8d ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x07f9019f ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x0af96fc9 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x0c637690 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x17217a33 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x1949694c ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x1a9ce0f5 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1c0d3ee4 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x1c9992ab ieee80211_get_operstate +EXPORT_SYMBOL net/mac80211/mac80211 0x22ea854a ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x2950ba17 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x2d743ac5 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x31345cc6 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x333c3210 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89 ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x4060b436 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x4260c017 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x43127351 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x46556fd6 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x49bee94b ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4c57a20a ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5d64ede4 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x63caa554 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71 ieee80211_sta_eosp_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x664a3ba9 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x6c737cf0 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x6f472edc __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x73669f0d ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x766594b2 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x82297f2f ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x8c0f7310 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x90c3be17 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x9337674e ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x9b4a59b3 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa03640b1 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xa9d5f944 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaa2ab377 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xac2650b3 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xafd6b974 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xb013669b ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xb0b1db73 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb296286a ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xbce6ef53 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xbee8e9fa ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc06602ac ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xc1c1d82c ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc8178081 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xcf7c91e2 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xddc9a36d __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xdfd85633 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0xe09462b9 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xe46ccee7 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0xeba14d72 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xec9d8df3 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xf834c9d9 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4 ieee80211_send_bar +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x06a1e0f7 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x09a3501c ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x25fe2ffc ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x32a30030 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x38525c42 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x39b1e219 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4cee79c6 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5721b571 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x58b425c7 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x68319cfe register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa4661a41 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc50ca439 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdb4ce8f2 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdebaa2e1 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x66f82397 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8a728ac4 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xe3944b26 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xcaaac27e nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x037d94c5 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x1ad2f236 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x39ec074d xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4c561f2c xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x53047b0d xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x711db8ad xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x746c7170 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xab63a4ad xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xd60af500 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xfcb2fe2e xt_find_target +EXPORT_SYMBOL net/nfc/nci/nci 0x0468fa65 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x982b079d nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xaf03088a nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xcb482007 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xe8b44332 nci_free_device +EXPORT_SYMBOL net/nfc/nfc 0x246b7815 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e nfc_printk +EXPORT_SYMBOL net/nfc/nfc 0x61167ab3 nfc_alloc_skb +EXPORT_SYMBOL net/nfc/nfc 0x6b6d9dcf nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x872c647c nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x8b4a041e nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x8fdc38c5 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x9729bbad nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xfc264bcb nfc_targets_found +EXPORT_SYMBOL net/phonet/phonet 0x235722f8 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x2b42b6d7 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x52f990ff phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x5ca17a8d phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x7638b975 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x9508f2fe phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x9ea68fa4 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xcae136fb pn_sock_get_port +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x12d1acbb rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x48368164 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7ca5579a rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x87b91350 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9951efd3 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa1e75d16 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa2937af1 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa81c5ee5 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa89f03b0 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb9cbfa60 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd820485e rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe903a545 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xecc9fd1a rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfdf9292b rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfe2f760e rxrpc_kernel_free_skb +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb8a75a41 svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x50e20782 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x36d9ce60 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x66617479 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0fafa920 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86 ieee802_11_parse_elems_crc +EXPORT_SYMBOL net/wireless/cfg80211 0x14707c6f cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x1a367781 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x1c723827 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x27c79da4 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x287d7ede __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x29dcd79b cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x2cb184c5 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x2ff73e39 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x3422bac4 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x39afeeb7 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x3ae28cfa cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x3e9669dc cfg80211_testmode_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x3f85457e wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x4560554e __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x4714eb1d __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x492d1769 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x4b8c0ed9 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x4be220c4 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x589eac0c cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x5cf14158 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x5d47086a cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x5e137c61 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6d2f682e ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x711455bd cfg80211_testmode_event +EXPORT_SYMBOL net/wireless/cfg80211 0x73089e6d cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x73237cf2 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0x7781f10f cfg80211_testmode_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x7edb2192 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x804d4c1a cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x8543fa37 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x8ab79b69 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x8b3a0ce0 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x8beaf2a4 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x8e55809f cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xabc9866c wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xae1a9806 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xafdc69a5 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xb37a75bf wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xba60c05a cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xbc65664d __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0xbf93dbe7 cfg80211_testmode_reply +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc9b641b9 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xce2904e3 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xcf8987f6 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xd1361500 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xd46481d4 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xd57e4b68 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0xd704c89b cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xd8ed649f cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xd92845c5 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xdbaef9a5 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xed87e337 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xfb2d0c2d cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xfc87a94b cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x1c9194f5 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x26249fec lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x98e1deae lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xccec50c0 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe4f9e047 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xf94d8120 lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x4583091b ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x5f817696 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 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 0x82abd4b8 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb69c1708 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 0xbabdf706 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xf61913bf snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb50eb37d snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xf0572756 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2b51b084 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x350963b4 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7f62d029 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x83914b9a snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x92ee6bb0 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x9e7d3f0f snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbc141dfc snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf2bf1549 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xd2b2a237 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x003e8697 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x0771928e snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x079f6a6e snd_device_register +EXPORT_SYMBOL sound/core/snd 0x0c1a7f90 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x0e6707ed snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x0f1b7581 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x1368922f snd_card_create +EXPORT_SYMBOL sound/core/snd 0x1446e19a snd_ctl_free_one +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 0x1f1359c4 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x22bf74a9 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x25cd400a snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x30c018a3 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x34d75013 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x35a1fc36 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3dfad83f snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x3edd3f9c snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x4989dbd4 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x5411f12c snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x55ce896f snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x5aacc96a snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x61246ead snd_info_register +EXPORT_SYMBOL sound/core/snd 0x703b1bd2 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x86dd78c5 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8eaaa0fa snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x93fe9079 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x9555026f snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x9977cd3a snd_device_free +EXPORT_SYMBOL sound/core/snd 0x9a2bed08 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa117faf6 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xa7966ca3 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xaf86acc3 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb9862639 snd_cards +EXPORT_SYMBOL sound/core/snd 0xc2cd3a9a snd_card_register +EXPORT_SYMBOL sound/core/snd 0xc31a162b snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xc4479b62 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xc76a6a40 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd29b21b9 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xd4a5431f snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xd5b3b890 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xd96ca1b8 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xd9eaebe8 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0xdab7cbb5 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xdf0e23a5 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xe5b812ad snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xe689fd8e snd_card_unref +EXPORT_SYMBOL sound/core/snd 0xecfc0ec9 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xefaab281 snd_component_add +EXPORT_SYMBOL sound/core/snd 0xf425f2cb snd_ctl_replace +EXPORT_SYMBOL sound/core/snd-hwdep 0x386c9b3e snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x662914af snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x99992318 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb15add0c snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb18a421e snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xe8531422 snd_dma_free_pages +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 0x0dcc5a86 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x0e8d8809 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x14d23bd9 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x168288f1 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x195839fa snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x1afd45b9 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x1c439324 snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x3900831e snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3aa664ac snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x43d4d96d snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f448a3c snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5d031b00 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x616ea80c snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x6177d5e9 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x639dbdad snd_pcm_sgbuf_ops_page +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 0x68b18c01 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x6b596003 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x748c4ee4 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x80509562 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x8da8bb73 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x90f2945f snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x95a9b609 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xa0c3f756 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xa14f154f snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xa1cfad7e snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xa4fe81da snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xa5cd9b35 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa7b4687a snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xa9adc229 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xb505157a snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xb8b4c97c snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbc87df08 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xbdb05ab1 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd3b74365 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xd561b9b1 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xdb036b10 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xdbe7ce3a snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xdea0238f snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xe08e0b79 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0xe0a56d35 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe9b40f1c snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf810f653 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xf9a3d4f8 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xfbc51e49 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x04e6718b snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x16c3499f snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2441e368 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x32048721 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3282679b snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x431c5679 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4975593c snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4a376378 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x634cc8d8 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa7ce872f snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa7e5da92 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xab08383f snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc5f066d2 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd3e75edd snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdc9da2a2 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xed1d4c04 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf00a6323 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-timer 0x14c39e21 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x2a32402a snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x357920ac snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x546a0c28 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x5efcc045 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x5f59b9a0 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x64c0c2f1 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x8709a08b snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x897481bc snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x96c8b2b6 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xb97e91d3 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xc8fa16b7 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xe18c8bfc snd_timer_continue +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 0xf2194c7e snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x168f789a snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x407a3778 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4222bbfe snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4a87aeaa snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6ce087b9 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x79b92a2c snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9b44e075 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb5a4d54d snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xedc26488 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x1651960f snd_opl4_read +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x40cfd666 snd_opl4_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x9e5620a8 snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xc52ba6c2 snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xf7a0024b snd_opl4_write +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x05327e6d snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x062d7ca1 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x08630206 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x09187c2c snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1d89a1af snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3a06c5f5 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3aa9c605 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4cb5c020 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb4741f58 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1123b4fe cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1a6e8adc snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1f8aeb34 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x23e2a61c fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x30e3b3c8 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3a172b87 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4e9d49c8 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x516ef69f amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x546dd206 amdtp_out_stream_set_rate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5b7605bb amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6689b4d2 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x67670e07 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9cf9d41a fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa0f014cb cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xaa8b4460 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb26fe188 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb7be9fb9 amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbf1efe83 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd0e417f1 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdd74bc7a rcode_string +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe440cb2f fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe886f4e6 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xebfa65d1 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf0f7f507 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf3744c9a amdtp_out_stream_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x0af7ff5c snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x314c0f33 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x386d851f snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x3929e20d snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x743015ee snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xfdecfaeb snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x043106b6 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x3cc3665c snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4673cdf4 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x549f4ec1 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8513e92a snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf3322a48 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x50d0ca28 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x9ad97568 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xc1c44f30 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf1df7c03 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x51749e5e snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x7775f05c snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xa72c3db5 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xff8204b0 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x6260507b snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa04eac4e snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa0673da8 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xdecc38c3 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf1b26423 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2ecc3a46 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5e1a9014 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa63de4e9 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa85c14ef snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xab931ab3 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc405a6ad snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0x0980e773 snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0x2f8e84cb snd_tea6330t_detect +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x00c656d9 snd_es1688_create +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x02a3661d snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x18e773f2 snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xf31b3c7c snd_es1688_pcm +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xfa2d3872 snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x01047562 snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x012b1af3 snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x04bbb837 snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0bdc9357 snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1c1ce117 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x323b1133 snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x41bcfda4 snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x475e47f1 snd_gf1_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x47a38d81 snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4d0d08aa snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4df85960 snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4fb02cd3 snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5abd7c74 snd_gf1_poke +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5c760f52 snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x60391628 snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x68889c87 snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6be5639c snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7ed8fec8 snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x922c51dc snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x950b485d snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9d4d8109 snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9d9e0bf6 snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9dfad2ac snd_gus_initialize +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb0cb42ec snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc15a055a snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc98e1f7c snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe3e4da08 snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xed7ca120 snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xef178947 snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf85e53a1 snd_gus_dram_read +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfd8ffae6 snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x1607d062 snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x1ad943dd snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x29b63301 snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x3673188a snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x38247c23 snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x681fc39a snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x7a672253 snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x8897fa72 snd_msndmix_setup +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x94ed092d snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x955537f7 snd_msndmix_new +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xa54dc9b4 snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xfd379c3d snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xc1973b04 snd_aci_get_aci +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xf3767fe9 snd_aci_cmd +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0537940e snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x11c61a8a snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2e1f51e3 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x48a3281a snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x733a45d0 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x745efd29 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x83621d47 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xbcecf6f4 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd2cb4a71 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xedd826a5 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0x66412742 snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x6ac42b1a snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xb1343e10 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xd6457b0d snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x0e5aae9a snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x5b01e00b snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x8642244d snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x88226854 snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x06017b91 snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x2694e957 snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x745d58c7 snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x8405814e snd_emu8000_peek +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x8c8a33fa snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x938d1849 snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xa8f07dd2 snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb6599a34 snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xcc8d30b3 snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xebc5d0b6 snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xeda78e3f snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x19e5d438 snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x207e354d snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x59c33c9f snd_cs4236_ext_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7979ab78 snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7b0a6921 snd_wss_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7b202637 snd_wss_interrupt +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x833859db snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x97465151 snd_wss_mce_up +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xb1dc739b snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xb4d9cd33 snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xbca7f61b snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xbf388ce5 snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc780cd95 snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc95e140c snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd4d19a44 snd_wss_info_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd6cc8b61 snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xdbc20f44 snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xe259ee31 snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xfc58cc77 snd_wss_overrange +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xfdf4ec02 snd_wss_timer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x19a2476d snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1d1d31de snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2988b9c7 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3863d92a snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x38c8a9dd snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5fadb32b snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x67b1152c snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6fd4e6ad snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x70a882ce snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x88078c57 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8fac0a4b snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9cf39898 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xba67a626 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc4530822 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd66f054c snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe7f642c3 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xef060e5f snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xa56163c4 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1ad1d9e1 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1da2c5fe snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x58ad8cd3 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5cb20a6c snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9feaa904 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb05221c0 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe57dc638 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xec89c6b2 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xee281301 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x1d8a10f1 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x5adefa70 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xb2cabdd6 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xde7e7b51 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x17aefdb1 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1ff2c881 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x24d81793 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2d0055e7 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2e291943 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x33876b00 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x51ee081c oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x534f6eb6 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x74ce353d oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7ebbecd8 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x842577cd oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa1f808ce oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa595b76c oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb5ce062d oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc0e4d3a5 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc1bdfb69 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcc34c778 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcf83370d oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd4748283 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe6d34c6e oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf9dea20b oxygen_pci_resume +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x005b151d snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x3036eb81 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7187f3a4 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xa4140a34 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xdb7e37e5 snd_trident_stop_voice +EXPORT_SYMBOL sound/soundcore 0x38ae0eb3 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x48bf59db register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x4d669abe register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x8a622896 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xa69e5d16 sound_class +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xf472581e register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x174af6ac snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x2699b0d6 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x36bdce61 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4047550d snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4a49c88b 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 0xb3da198b snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0228cdc1 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x3ee0e43d __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x67281971 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7be44fc1 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbc0c3e7f snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc2d0c48e snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf123dc4c snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xff20a3b2 snd_util_mem_avail +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x29f87746 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x2eb99895 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x35c95b1b dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x86e5acf9 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa43471b6 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xcd64d9ac dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd55b290c dm_mem_cache_client_destroy +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00003429 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x00129f6e pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x00424894 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x007e9df7 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x007f7734 mca_device_status +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0084e86d unregister_shrinker +EXPORT_SYMBOL vmlinux 0x008a86eb cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x00b1b77f input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x00c690a2 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x00d4a3fd ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x0109ad1d __cleancache_flush_page +EXPORT_SYMBOL vmlinux 0x010e3e92 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x0117fcf4 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x01515e45 unlock_page +EXPORT_SYMBOL vmlinux 0x016b3184 __devm_release_region +EXPORT_SYMBOL vmlinux 0x01863208 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x0187c669 dst_destroy +EXPORT_SYMBOL vmlinux 0x018d303a find_get_page +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a92f46 filemap_fault +EXPORT_SYMBOL vmlinux 0x01b3c633 lock_fb_info +EXPORT_SYMBOL vmlinux 0x01cacce6 deactivate_super +EXPORT_SYMBOL vmlinux 0x01d04c04 uart_resume_port +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x023e7032 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x0251daa8 fget_raw +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x027cd508 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x027d93be ppp_unit_number +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x029691d4 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02b3d0d5 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x02b78135 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x02c5cde9 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02efcbbf block_commit_write +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034f9e73 param_ops_byte +EXPORT_SYMBOL vmlinux 0x0356009a bio_kmalloc +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037f32da __netdev_printk +EXPORT_SYMBOL vmlinux 0x03930bb0 security_inode_permission +EXPORT_SYMBOL vmlinux 0x03b580eb wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03f338e0 seq_path +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04024f25 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04557b16 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x046bbaa5 agp_backend_release +EXPORT_SYMBOL vmlinux 0x04708d4c __cleancache_flush_fs +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048c5317 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ddee7e kernel_connect +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x050e7037 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x05277791 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x052ba39a generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x0541a63a inet_sendpage +EXPORT_SYMBOL vmlinux 0x054295e6 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x0544cd87 scsi_device_get +EXPORT_SYMBOL vmlinux 0x055e2b2d del_gendisk +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x057545c8 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x058e0bd7 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x05946e8d mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x059509f2 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x05d053e0 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x05ff0326 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x06140c7c rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061a703f tcp_make_synack +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x063580ed bdevname +EXPORT_SYMBOL vmlinux 0x06468ccc pci_enable_device +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06865f0f pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x0693b0d1 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x06b5e2bd processors +EXPORT_SYMBOL vmlinux 0x06b7bb20 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x06ba6838 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x06c03ab5 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x06d2f086 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x06d883a8 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x06de6fd3 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x06eb0462 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x06f4bf00 seq_escape +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x0757b3b9 journal_errno +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x07678ffd d_genocide +EXPORT_SYMBOL vmlinux 0x076d8275 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x076ebea8 pv_lock_ops +EXPORT_SYMBOL vmlinux 0x079007c1 follow_down +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a80687 netdev_features_change +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07bca79c __get_page_tail +EXPORT_SYMBOL vmlinux 0x07ca39e7 __kmap_atomic +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07f2d405 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x07f65b37 mb_cache_create +EXPORT_SYMBOL vmlinux 0x07fd01a5 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x08180e20 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x081d0655 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x08283227 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082c9231 netdev_set_master +EXPORT_SYMBOL vmlinux 0x083e19e5 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x0842433e pci_select_bars +EXPORT_SYMBOL vmlinux 0x0855c5a7 mutex_trylock +EXPORT_SYMBOL vmlinux 0x08652ed3 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x08719860 icmp_send +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x08ba10d8 netdev_printk +EXPORT_SYMBOL vmlinux 0x08bac932 do_splice_direct +EXPORT_SYMBOL vmlinux 0x08bf826c _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x08c215d6 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x08ece512 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0x0924ca62 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x0939a372 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x093dbc0d vfs_rmdir +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x094a72cc dm_unregister_target +EXPORT_SYMBOL vmlinux 0x0953cfd8 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x095e7891 drop_super +EXPORT_SYMBOL vmlinux 0x09670aa4 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0992780d efi_enabled +EXPORT_SYMBOL vmlinux 0x09ae41c4 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x09b49fcb __ht_create_irq +EXPORT_SYMBOL vmlinux 0x09b6c1e5 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2e1adb kmem_cache_create +EXPORT_SYMBOL vmlinux 0x0a2e715a kfree_skb +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a37f021 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x0a3b2716 rt6_lookup +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a4a6211 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x0a51802e elevator_change +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad7c19f input_allocate_device +EXPORT_SYMBOL vmlinux 0x0adaa1ed nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b1c112f mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x0b213b8b skb_gso_segment +EXPORT_SYMBOL vmlinux 0x0b3420cd security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x0b36d280 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b7086d9 param_get_short +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b8a1a84 submit_bh +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0be2cb54 noop_qdisc +EXPORT_SYMBOL vmlinux 0x0c0eb40e netpoll_print_options +EXPORT_SYMBOL vmlinux 0x0c0ecc97 __find_get_block +EXPORT_SYMBOL vmlinux 0x0c119645 pci_disable_obff +EXPORT_SYMBOL vmlinux 0x0c1bdece bmap +EXPORT_SYMBOL vmlinux 0x0c301a98 datagram_poll +EXPORT_SYMBOL vmlinux 0x0c3d177a skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x0c528ebe textsearch_destroy +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c93334e mount_bdev +EXPORT_SYMBOL vmlinux 0x0ca1f3e3 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cad0872 kern_path +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb20d35 dma_find_channel +EXPORT_SYMBOL vmlinux 0x0cd0667a blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x0ce45700 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x0d1aedb2 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x0d1f7ebf udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x0d2808e8 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d4d8598 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d7508bd generic_block_bmap +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0ddfbe5d fasync_helper +EXPORT_SYMBOL vmlinux 0x0df02fc1 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x0e24d514 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x0e342915 init_task +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e598f5a dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x0e5b84b7 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x0e8e067f dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x0e935bb3 save_mount_options +EXPORT_SYMBOL vmlinux 0x0ea0aff4 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x0ede2633 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x0f04526c con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x0f04c392 noop_llseek +EXPORT_SYMBOL vmlinux 0x0f2212a3 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x0f523fba lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x0f59f197 param_array_ops +EXPORT_SYMBOL vmlinux 0x0f5b41e3 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x0f5c3a5f tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x0f703096 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x0f7df110 vmtruncate +EXPORT_SYMBOL vmlinux 0x0fae607d unregister_8022_client +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb0e29f init_timer_key +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fec8cb1 thaw_bdev +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x10378e32 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x10716e80 neigh_for_each +EXPORT_SYMBOL vmlinux 0x1085b463 load_nls +EXPORT_SYMBOL vmlinux 0x10901c3a generic_delete_inode +EXPORT_SYMBOL vmlinux 0x10910c35 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x10ab7e68 down_killable +EXPORT_SYMBOL vmlinux 0x10b075c2 pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0x10cc89b2 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f80d0d i2c_transfer +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x111cbdec tty_unregister_device +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1162d722 d_clear_need_lookup +EXPORT_SYMBOL vmlinux 0x11633870 param_set_ushort +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x1170670d __rta_fill +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11877945 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x118dfabc netif_napi_del +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11b7c98d xfrm_state_update +EXPORT_SYMBOL vmlinux 0x11c96975 thaw_super +EXPORT_SYMBOL vmlinux 0x11dba971 unregister_nls +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1231cfb1 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x1239617f setup_arg_pages +EXPORT_SYMBOL vmlinux 0x123fc0ed mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x12532276 dev_mc_del +EXPORT_SYMBOL vmlinux 0x125638a3 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x12814241 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x12837fa2 tty_throttle +EXPORT_SYMBOL vmlinux 0x128a5cf9 complete_all +EXPORT_SYMBOL vmlinux 0x1296dd33 mmc_request_done +EXPORT_SYMBOL vmlinux 0x12a0a9b1 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12a5793c scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x12a5e2d1 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x12aa5fac skb_recycle +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x130a5552 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x1321b476 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x133dc81b seq_lseek +EXPORT_SYMBOL vmlinux 0x133e81ca dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x1346e174 llc_sap_close +EXPORT_SYMBOL vmlinux 0x134f4242 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x137c62b7 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x13acc6cd padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x13b2e03f journal_revoke +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13ca29fb dev_change_flags +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d14fd1 vfs_fsync +EXPORT_SYMBOL vmlinux 0x13d9c527 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x13dff834 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x13e9ed00 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x13ec80f3 param_set_short +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13fa4412 journal_init_inode +EXPORT_SYMBOL vmlinux 0x140b3fc3 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x141a054c agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x141accec kill_fasync +EXPORT_SYMBOL vmlinux 0x141d4335 key_validate +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x145a9a89 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x1471994d phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x14d0d91e get_super +EXPORT_SYMBOL vmlinux 0x14e07816 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x14e7ca7c alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x15216f7a d_validate +EXPORT_SYMBOL vmlinux 0x152515e9 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x155d88d8 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x15980e90 nf_reinject +EXPORT_SYMBOL vmlinux 0x15b1a3ef i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x15b73305 sock_no_getname +EXPORT_SYMBOL vmlinux 0x15ba638c set_groups +EXPORT_SYMBOL vmlinux 0x15eee81d __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x15f17373 bdget_disk +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x161a5803 load_nls_default +EXPORT_SYMBOL vmlinux 0x161fee7c sk_stream_error +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x162c1eb2 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x168eb071 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x168f1082 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x169fd82e elv_rb_find +EXPORT_SYMBOL vmlinux 0x16ab047e xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x16c42197 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x16c5b4e0 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x16e8e7eb dump_seek +EXPORT_SYMBOL vmlinux 0x16f8a0cd proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x1701bfb7 inet_ioctl +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x171309f8 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x171cffc5 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x171efc67 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x1723f2cb ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x1725800a pnp_device_attach +EXPORT_SYMBOL vmlinux 0x172f0a8d poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x1734a232 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x1746aab8 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x17666620 ll_rw_block +EXPORT_SYMBOL vmlinux 0x1790d76b _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x17913f81 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x17ada7de sock_create_lite +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e19a75 release_sock +EXPORT_SYMBOL vmlinux 0x17e42843 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180f1fad padata_alloc +EXPORT_SYMBOL vmlinux 0x181bb7ee __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x1830042f blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x1837d4b0 sg_miter_next +EXPORT_SYMBOL vmlinux 0x1838aa7a acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x18652f34 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18b09cad scm_detach_fds +EXPORT_SYMBOL vmlinux 0x18c89b3b swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x19053392 consume_skb +EXPORT_SYMBOL vmlinux 0x1914164f con_copy_unimap +EXPORT_SYMBOL vmlinux 0x1915a606 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x19206ec1 pci_request_region +EXPORT_SYMBOL vmlinux 0x1921166d ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x1921cd05 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x194028b0 vfs_symlink +EXPORT_SYMBOL vmlinux 0x1956dba3 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x1968de37 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x198b98df xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x19912407 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x199e08b8 touch_atime +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a9e62b complete +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19ce4c2a vfs_mknod +EXPORT_SYMBOL vmlinux 0x19fa210f inode_permission +EXPORT_SYMBOL vmlinux 0x1a1d0b06 eisa_driver_register +EXPORT_SYMBOL vmlinux 0x1a21a3b0 filemap_flush +EXPORT_SYMBOL vmlinux 0x1a22cb56 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x1a313888 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x1a320a71 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x1a3f063d do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x1a406002 ps2_end_command +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a72d14b deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x1a76a61c simple_transaction_get +EXPORT_SYMBOL vmlinux 0x1a91d446 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x1a9d3085 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x1aa64c2b agp_copy_info +EXPORT_SYMBOL vmlinux 0x1ab8433b backlight_device_register +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1add61f3 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x1ae14ef5 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x1ae2bdff unregister_binfmt +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b66d2de iget_locked +EXPORT_SYMBOL vmlinux 0x1b8a1ca7 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bc81070 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x1bc8585b idr_remove_all +EXPORT_SYMBOL vmlinux 0x1be2b0c0 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x1be7e041 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x1bf3f876 get_agp_version +EXPORT_SYMBOL vmlinux 0x1bffcc28 journal_update_format +EXPORT_SYMBOL vmlinux 0x1c07f926 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c1fd9ed kmem_cache_free +EXPORT_SYMBOL vmlinux 0x1c45e394 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x1c52c0ba netif_receive_skb +EXPORT_SYMBOL vmlinux 0x1c541b0c set_pages_wb +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c929887 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x1ca2282e __seq_open_private +EXPORT_SYMBOL vmlinux 0x1ca29d21 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x1cb8d1a0 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x1cc5dfea register_key_type +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cec279a dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x1cf93b09 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x1cfbe12a tty_port_close_end +EXPORT_SYMBOL vmlinux 0x1cfd40e2 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x1d0d86c5 phy_device_free +EXPORT_SYMBOL vmlinux 0x1d20c5b0 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x1d21d158 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x1d2675e8 skb_clone +EXPORT_SYMBOL vmlinux 0x1d28c23c uart_update_timeout +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3865da param_get_invbool +EXPORT_SYMBOL vmlinux 0x1d42f313 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x1d59c77e tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x1d7349a7 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x1d949c91 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x1dadd13d d_alloc_name +EXPORT_SYMBOL vmlinux 0x1dba3e4c inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x1dbdc782 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e3d3004 vga_client_register +EXPORT_SYMBOL vmlinux 0x1e57723e xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e990b62 serio_reconnect +EXPORT_SYMBOL vmlinux 0x1e9e9c3c invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea3e5c3 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ed03443 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x1ef1f75f posix_acl_valid +EXPORT_SYMBOL vmlinux 0x1f09dbb0 skb_insert +EXPORT_SYMBOL vmlinux 0x1f0fba06 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x1f17fae7 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x1f302f99 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x1f448836 tty_free_termios +EXPORT_SYMBOL vmlinux 0x1f748a43 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1fc0e8c7 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x1fd02a67 ata_link_printk +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fecc6bd scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20243ff2 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x2026b176 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x202911ba max8998_read_reg +EXPORT_SYMBOL vmlinux 0x20309ecd mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x2038e0fc xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x2046f937 sock_rfree +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20b045ee bdgrab +EXPORT_SYMBOL vmlinux 0x20bfe34f dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x20cae960 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x20d768c3 kern_unmount +EXPORT_SYMBOL vmlinux 0x20d7bd0b stop_tty +EXPORT_SYMBOL vmlinux 0x20dc8f22 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x20e72524 ipv4_specific +EXPORT_SYMBOL vmlinux 0x20ef8424 udp_disconnect +EXPORT_SYMBOL vmlinux 0x21163375 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x215bb1b4 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x21922b23 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x2192aa24 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x21960ff9 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x2199337a down_timeout +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21f9038a x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0x21fb443e _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222ed0c2 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x226328ec llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x226b8f0f gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2277e13c inode_set_bytes +EXPORT_SYMBOL vmlinux 0x22789ffe skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22ab0292 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22baf9f7 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x22bbee0a inet_stream_ops +EXPORT_SYMBOL vmlinux 0x22d9675f blk_make_request +EXPORT_SYMBOL vmlinux 0x22f26a66 file_open_root +EXPORT_SYMBOL vmlinux 0x2310280e __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x231ca275 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x231fdf8c seq_open_private +EXPORT_SYMBOL vmlinux 0x233335ec serial8250_register_port +EXPORT_SYMBOL vmlinux 0x233d8308 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x23468279 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x2349e27b dst_discard +EXPORT_SYMBOL vmlinux 0x234e85fa journal_dirty_data +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x237894c4 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x2384dde5 dquot_release +EXPORT_SYMBOL vmlinux 0x2391b743 mntget +EXPORT_SYMBOL vmlinux 0x239380dd set_anon_super +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b66abf read_cache_page +EXPORT_SYMBOL vmlinux 0x23baa76f migrate_page +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23f04553 release_pages +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x244adce4 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x247fe34e simple_lookup +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x248c777b padata_do_serial +EXPORT_SYMBOL vmlinux 0x24924962 input_grab_device +EXPORT_SYMBOL vmlinux 0x2494c8d9 mmc_release_host +EXPORT_SYMBOL vmlinux 0x24b14687 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x24cf7656 arp_send +EXPORT_SYMBOL vmlinux 0x24d828d3 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x24f169fc down_read_trylock +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x25147689 fb_get_mode +EXPORT_SYMBOL vmlinux 0x251e9e50 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x252094b8 request_key_async +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x256c70c0 devm_free_irq +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x259536bc dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x25ac3337 d_alloc_root +EXPORT_SYMBOL vmlinux 0x25bc2eaf tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x25be2727 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x25be86e1 set_page_dirty +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x26100d5f mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x263ab703 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x264d3c3d idr_get_next +EXPORT_SYMBOL vmlinux 0x2661706d set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x2676d0ba blk_end_request +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x26a9727f sock_create +EXPORT_SYMBOL vmlinux 0x26b7ee3c __dquot_free_space +EXPORT_SYMBOL vmlinux 0x26b9003a get_fs_type +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f05cc8 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272953e2 scsi_execute +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x27364de2 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x273a76c4 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x27755139 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279439f2 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x27ae7d0c ec_transaction +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27cb3d48 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x27dd9558 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x27ec0e99 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x28048b64 dcb_setapp +EXPORT_SYMBOL vmlinux 0x280b63ed kdb_current_task +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2829745f skb_pad +EXPORT_SYMBOL vmlinux 0x286370e4 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x286fc177 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x2879f453 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x2893bd8d dev_get_stats +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28ab907d tcp_child_process +EXPORT_SYMBOL vmlinux 0x28b6db75 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28d258c0 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0x28e235ac arp_invalidate +EXPORT_SYMBOL vmlinux 0x290ca28c log_start_commit +EXPORT_SYMBOL vmlinux 0x290ee04d uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x29292706 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x29325451 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x29333f50 llc_sap_open +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295db419 x86_hyper +EXPORT_SYMBOL vmlinux 0x2967668f blk_get_queue +EXPORT_SYMBOL vmlinux 0x296ebddf __nla_put +EXPORT_SYMBOL vmlinux 0x298a2cdd acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x29b96a8a inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x29ffdb6b current_fs_time +EXPORT_SYMBOL vmlinux 0x2a007ce3 sock_release +EXPORT_SYMBOL vmlinux 0x2a1987b0 seq_read +EXPORT_SYMBOL vmlinux 0x2a290659 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a39153c intel_gtt_insert_pages +EXPORT_SYMBOL vmlinux 0x2a3a16aa dev_mc_flush +EXPORT_SYMBOL vmlinux 0x2a3f818a mmc_host_enable +EXPORT_SYMBOL vmlinux 0x2a474aaa skb_checksum_help +EXPORT_SYMBOL vmlinux 0x2a75035a __pci_register_driver +EXPORT_SYMBOL vmlinux 0x2a915160 input_register_handler +EXPORT_SYMBOL vmlinux 0x2a9abbab __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ab8468b kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x2ae36d98 iget5_locked +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0c9fa3 find_vma +EXPORT_SYMBOL vmlinux 0x2b0fb25c blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b62636a agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x2b646069 set_security_override +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bbe233e gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bcab44d sock_sendmsg +EXPORT_SYMBOL vmlinux 0x2bd147a5 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x2bd9c489 revalidate_disk +EXPORT_SYMBOL vmlinux 0x2bdc2dc6 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x2beb11be pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x2bf8d577 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c30f8e3 mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0x2c3b7597 dev_crit +EXPORT_SYMBOL vmlinux 0x2c4e60d8 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x2c6a6930 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x2c7a23dc netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x2c8c27f6 vfs_llseek +EXPORT_SYMBOL vmlinux 0x2c9620b3 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x2cb8dd33 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x2cba47d3 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1766aa scsi_register_interface +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d4ae91d ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2db3a697 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x2dc3775e pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd53a8e blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x2de37bc7 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df9a27c proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x2e03d27a ns_capable +EXPORT_SYMBOL vmlinux 0x2e0b1d1b bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x2e19072a inet_frag_kill +EXPORT_SYMBOL vmlinux 0x2e19a9dc netdev_update_features +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e2e03bf skb_dequeue +EXPORT_SYMBOL vmlinux 0x2e59fc7a ab8500_gpadc_get +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e6297f3 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x2ea7d424 gen_pool_free +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f21c4de __invalidate_device +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f332b03 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x2f6cdb1d mii_check_link +EXPORT_SYMBOL vmlinux 0x2f74ed4b elv_add_request +EXPORT_SYMBOL vmlinux 0x2f93c2b7 noop_fsync +EXPORT_SYMBOL vmlinux 0x2f94287a tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x2fa80c1d netif_device_detach +EXPORT_SYMBOL vmlinux 0x2fb3fec4 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fcbfbe0 uart_match_port +EXPORT_SYMBOL vmlinux 0x2fcde7cd mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x2fd46466 dm_register_target +EXPORT_SYMBOL vmlinux 0x2ff95dda dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x301ee84b igrab +EXPORT_SYMBOL vmlinux 0x3020d85c blk_rq_init +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x302b865b x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x30316444 softnet_data +EXPORT_SYMBOL vmlinux 0x3038787f __lock_page +EXPORT_SYMBOL vmlinux 0x304a36c5 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x3069da50 nf_afinfo +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x307f0da0 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x30842534 mmc_resume_host +EXPORT_SYMBOL vmlinux 0x30951093 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x30a06192 pci_request_regions +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30c544dc sock_no_listen +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30ecd1d8 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x311ecfb3 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x312db847 ilookup5 +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x314a240b kunmap +EXPORT_SYMBOL vmlinux 0x314a2c91 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x314b176b __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x315cc7d8 blk_insert_request +EXPORT_SYMBOL vmlinux 0x317c3b50 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31c16fd0 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x31c30ed2 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x31e2756d dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x320981f9 replace_mount_options +EXPORT_SYMBOL vmlinux 0x322d7eb8 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x323064ab neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x3246d36b security_path_unlink +EXPORT_SYMBOL vmlinux 0x32519213 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x3257a985 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x32a5af13 iput +EXPORT_SYMBOL vmlinux 0x32aedf86 vm_map_ram +EXPORT_SYMBOL vmlinux 0x32cea339 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x32eb6457 pskb_copy +EXPORT_SYMBOL vmlinux 0x32eeaded _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x32ef24ac jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x32f11b4a dev_mc_add +EXPORT_SYMBOL vmlinux 0x32fda722 dev_close +EXPORT_SYMBOL vmlinux 0x33046358 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x3305347e cfb_copyarea +EXPORT_SYMBOL vmlinux 0x33111cb1 aio_complete +EXPORT_SYMBOL vmlinux 0x332f3238 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x333903d4 __breadahead +EXPORT_SYMBOL vmlinux 0x333a931a proto_register +EXPORT_SYMBOL vmlinux 0x33771543 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x337ec63a phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x33842f27 put_page +EXPORT_SYMBOL vmlinux 0x339fe010 file_remove_suid +EXPORT_SYMBOL vmlinux 0x33c3f0b3 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x34150311 security_path_chown +EXPORT_SYMBOL vmlinux 0x342e32e3 ida_simple_get +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x3465f248 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x34900f9f kmap_to_page +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x34f5409f sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x34ffe697 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x3504d226 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x353345a8 key_unlink +EXPORT_SYMBOL vmlinux 0x35669178 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x356984e4 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x357c90d2 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x35802462 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x35abf72c neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x35af86fa call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c8ed3e skb_store_bits +EXPORT_SYMBOL vmlinux 0x35ca8cfa dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x35eda83d ip6_xmit +EXPORT_SYMBOL vmlinux 0x3606a1e4 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x362155c6 freeze_super +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x364ae344 register_netdevice +EXPORT_SYMBOL vmlinux 0x367769a4 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36944463 inet_frags_init +EXPORT_SYMBOL vmlinux 0x36a96a5e input_set_abs_params +EXPORT_SYMBOL vmlinux 0x36aad357 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x36d79d03 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f2c5c0 send_sig +EXPORT_SYMBOL vmlinux 0x370bc881 sget +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x37598a43 kernel_bind +EXPORT_SYMBOL vmlinux 0x376b0657 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x3781e345 iget_failed +EXPORT_SYMBOL vmlinux 0x37899155 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x378b6248 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x379f5837 param_set_invbool +EXPORT_SYMBOL vmlinux 0x37aa5e09 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37d3e171 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x37d5f973 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x37d8c360 km_new_mapping +EXPORT_SYMBOL vmlinux 0x37da9dcf i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e18803 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x37e32f4f phy_start +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37fe299d spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x380a2a8b dev_uc_sync +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381ccc13 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x383ec709 keyring_clear +EXPORT_SYMBOL vmlinux 0x3844a77e dqget +EXPORT_SYMBOL vmlinux 0x384cc7f2 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x385469aa bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x3873cdde scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x38842057 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38918812 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x389e611d blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x38b12fd0 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38ccd383 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x38dd7f9f pci_disable_device +EXPORT_SYMBOL vmlinux 0x38e75980 skb_split +EXPORT_SYMBOL vmlinux 0x38f28166 journal_destroy +EXPORT_SYMBOL vmlinux 0x390f0dcf mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39478f2a agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x396a9cff inode_init_owner +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39c9dc12 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x39f34e48 fd_install +EXPORT_SYMBOL vmlinux 0x3a013b7d remove_wait_queue +EXPORT_SYMBOL vmlinux 0x3a04d2ef acpi_device_hid +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a1beaac nf_register_hook +EXPORT_SYMBOL vmlinux 0x3a20c96b napi_skb_finish +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a51784c scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x3a7f9168 have_submounts +EXPORT_SYMBOL vmlinux 0x3a82c5cd elevator_exit +EXPORT_SYMBOL vmlinux 0x3a86e88a __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x3a8c937d set_pages_x +EXPORT_SYMBOL vmlinux 0x3a8d1d8c __bforget +EXPORT_SYMBOL vmlinux 0x3a916d48 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3aa620e8 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x3aaac12d inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x3ab545b4 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x3ac46f5c acpi_bus_start +EXPORT_SYMBOL vmlinux 0x3b06e045 unregister_console +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b3fe633 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x3b5da145 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x3bab7fc9 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x3bbbc499 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd92d7b scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x3bec1840 blk_run_queue +EXPORT_SYMBOL vmlinux 0x3bf9140d udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x3c0443ac lro_receive_skb +EXPORT_SYMBOL vmlinux 0x3c2caead seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x3c3bae02 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3c46fd6c ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x3c648550 try_to_release_page +EXPORT_SYMBOL vmlinux 0x3c6a43f7 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c84359a xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cb6dc84 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x3cb74fb8 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x3cd1bb05 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x3cdfc138 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d0f6bfe scsi_remove_target +EXPORT_SYMBOL vmlinux 0x3d30b465 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x3d3106f5 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x3d5940af cdrom_open +EXPORT_SYMBOL vmlinux 0x3d6cf56f i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d93ee61 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dccdc76 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x3debfb51 fget +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0e9023 param_set_long +EXPORT_SYMBOL vmlinux 0x3e0f0f4c serio_interrupt +EXPORT_SYMBOL vmlinux 0x3e218991 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e32c5d4 __getblk +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e5f060c ata_port_printk +EXPORT_SYMBOL vmlinux 0x3e66b20f __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e98a88a mark_info_dirty +EXPORT_SYMBOL vmlinux 0x3ea1ca72 agp_free_memory +EXPORT_SYMBOL vmlinux 0x3ea41fcd tcf_hash_search +EXPORT_SYMBOL vmlinux 0x3ec8886f param_ops_int +EXPORT_SYMBOL vmlinux 0x3ed1ed0b read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eda8f77 pci_match_id +EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f18dce5 netlink_unicast +EXPORT_SYMBOL vmlinux 0x3f21ab1b ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f808f3b inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x3f9b9190 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x3f9f868f __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x3fa58ef8 wait_for_completion +EXPORT_SYMBOL vmlinux 0x3fa8c089 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x3fa8d986 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x3fb5625c mount_pseudo +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x400c907e udp_seq_open +EXPORT_SYMBOL vmlinux 0x401265c4 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x40269c37 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x4029d238 param_set_copystring +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x403a349f pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40711d93 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x407feb7e scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c0f0de proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40fe733d get_write_access +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41275505 follow_up +EXPORT_SYMBOL vmlinux 0x413a9dbd ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x413c380b vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x4140a240 inet_addr_type +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x41499d66 bdput +EXPORT_SYMBOL vmlinux 0x4158396c mutex_lock +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x419ee6e8 idr_pre_get +EXPORT_SYMBOL vmlinux 0x41c23073 arp_tbl +EXPORT_SYMBOL vmlinux 0x42119286 mutex_unlock +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x4224cc11 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x4232c2a0 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x423748e3 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x4239de63 ida_init +EXPORT_SYMBOL vmlinux 0x4242b338 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x42481c8b block_read_full_page +EXPORT_SYMBOL vmlinux 0x424b4679 mpage_writepages +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x426c8595 arp_xmit +EXPORT_SYMBOL vmlinux 0x426c85ad swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x42735053 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x428e352c tr_type_trans +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42c6adb9 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42cc2f66 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x42dbdf86 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43197992 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x4319f5e5 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x431c6e41 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x431cf5ae insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x4320c035 set_bh_page +EXPORT_SYMBOL vmlinux 0x432600ee dquot_free_inode +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x43696489 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437d5e11 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x438d5798 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x4396e927 d_add_ci +EXPORT_SYMBOL vmlinux 0x43a0458b blk_start_plug +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x44113403 md_done_sync +EXPORT_SYMBOL vmlinux 0x441d5d58 set_pages_nx +EXPORT_SYMBOL vmlinux 0x4421a2cb serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x442815ad blk_get_request +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44402b6f param_get_ulong +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x4443e0ed inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x4445c082 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x44497120 set_blocksize +EXPORT_SYMBOL vmlinux 0x4459a540 account_page_redirty +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb8f0d nf_hook_slow +EXPORT_SYMBOL vmlinux 0x44f1606d down_trylock +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x452a8589 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x453620ab security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4558fd71 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x4578661a _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457973e9 register_exec_domain +EXPORT_SYMBOL vmlinux 0x45bd9efd dm_table_put +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45f53677 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x4617c890 mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x461b30ad blk_delay_queue +EXPORT_SYMBOL vmlinux 0x462127dc inet6_release +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x46516f2e path_is_under +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x466cddcf __mutex_init +EXPORT_SYMBOL vmlinux 0x466d7d35 dst_release +EXPORT_SYMBOL vmlinux 0x46953cda spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x47582f51 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x477e26db dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x479047d6 key_type_keyring +EXPORT_SYMBOL vmlinux 0x4792c572 down_interruptible +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47b6b7af nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47e9f031 eth_header_parse +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4866b9f4 vfs_write +EXPORT_SYMBOL vmlinux 0x486d2f29 dqstats +EXPORT_SYMBOL vmlinux 0x48766c52 __kfree_skb +EXPORT_SYMBOL vmlinux 0x488d8265 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x48a686d6 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48b39ef8 dev_deactivate +EXPORT_SYMBOL vmlinux 0x48eb0c0d __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x48f6fbf0 secpath_dup +EXPORT_SYMBOL vmlinux 0x48fcc1dd dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x4909b54b __neigh_event_send +EXPORT_SYMBOL vmlinux 0x49154814 locks_delete_block +EXPORT_SYMBOL vmlinux 0x4948aa2c phy_attach +EXPORT_SYMBOL vmlinux 0x494fb1cf pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x497bcecb user_path_at +EXPORT_SYMBOL vmlinux 0x497c517d inet_release +EXPORT_SYMBOL vmlinux 0x4992c87c dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b8ff72 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x49ce2439 security_file_mmap +EXPORT_SYMBOL vmlinux 0x49d082d7 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x4a0a13bc tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x4a0d25a7 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x4a250a6e nla_reserve +EXPORT_SYMBOL vmlinux 0x4a34da58 __dev_printk +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a44961a tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4a7558e8 nonseekable_open +EXPORT_SYMBOL vmlinux 0x4a97d566 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x4a9fb91a jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4acab185 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4acf59df netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x4ad3137f max8925_reg_read +EXPORT_SYMBOL vmlinux 0x4ad989cc scsi_free_command +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b0dad8d led_blink_set +EXPORT_SYMBOL vmlinux 0x4b142f51 devm_iounmap +EXPORT_SYMBOL vmlinux 0x4b162423 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b2dd7a6 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4bbee9d5 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x4bc4d5a5 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4bdffa24 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x4bf6f33d tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x4bf7b27d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c11ca9f efi +EXPORT_SYMBOL vmlinux 0x4c2088c0 serio_close +EXPORT_SYMBOL vmlinux 0x4c2549bc scsi_init_io +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c3cee15 tty_kref_put +EXPORT_SYMBOL vmlinux 0x4c728dd7 vfs_readv +EXPORT_SYMBOL vmlinux 0x4c893e72 kick_iocb +EXPORT_SYMBOL vmlinux 0x4c997920 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cbf16c9 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x4cc8f8dc prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x4ccdb585 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x4cdcafe3 netdev_emerg +EXPORT_SYMBOL vmlinux 0x4cf1b984 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d074478 mdiobus_free +EXPORT_SYMBOL vmlinux 0x4d157c8e dev_get_by_index +EXPORT_SYMBOL vmlinux 0x4d1d91b8 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d29844c proc_symlink +EXPORT_SYMBOL vmlinux 0x4d30c7a6 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x4d3173ae fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x4d345af2 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x4d3a09c3 I_BDEV +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d4788bb xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e088ba5 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x4e1a1be7 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e234285 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x4e29c7cb idr_for_each +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e3e4c55 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x4e68c9e1 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x4e6e2188 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4eb11f1f seq_bitmap +EXPORT_SYMBOL vmlinux 0x4ed6b8f4 d_move +EXPORT_SYMBOL vmlinux 0x4eeec1c2 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x4efb1d16 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x4f18467b pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f52a669 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x4f60b717 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x4f6254c1 md_integrity_register +EXPORT_SYMBOL vmlinux 0x4f6cb2d0 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fea933b d_drop +EXPORT_SYMBOL vmlinux 0x4ff0b0ba pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502712f7 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x50415a89 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505dd712 set_user_nice +EXPORT_SYMBOL vmlinux 0x506582f9 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5069da1c tty_port_close +EXPORT_SYMBOL vmlinux 0x50708ed8 generic_write_checks +EXPORT_SYMBOL vmlinux 0x507d1419 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x50871bf8 sock_i_ino +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50c625fb nf_log_register +EXPORT_SYMBOL vmlinux 0x50c94bec scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x50cd4c20 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x50eedeb8 printk +EXPORT_SYMBOL vmlinux 0x50f3014a dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x510f6ce9 __bread +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x5161968e kill_block_super +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x518a63f5 vga_put +EXPORT_SYMBOL vmlinux 0x51b32991 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x51c74a1a bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51d816e4 seq_write +EXPORT_SYMBOL vmlinux 0x51dadf8d i2c_release_client +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51df5968 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x52398bad eth_change_mtu +EXPORT_SYMBOL vmlinux 0x524044f9 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x52423a0c ida_pre_get +EXPORT_SYMBOL vmlinux 0x5275c485 mnt_pin +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a4e87f keyring_search +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52e8eaa7 scsi_unregister +EXPORT_SYMBOL vmlinux 0x53076a53 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x532592d2 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x533183cf pci_get_subsys +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533d0fa7 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x535a821a iunique +EXPORT_SYMBOL vmlinux 0x535dc48d km_policy_expired +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5383f34b _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x5388f4a4 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x538ebe72 journal_create +EXPORT_SYMBOL vmlinux 0x5397f2d3 posix_acl_init +EXPORT_SYMBOL vmlinux 0x5399c48b vfs_readlink +EXPORT_SYMBOL vmlinux 0x53a9817a acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x53b0dba7 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x53bae293 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x53d53db3 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x53e12d9b scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x53e66d3b simple_transaction_set +EXPORT_SYMBOL vmlinux 0x53f2ef10 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x53f316ba blk_put_request +EXPORT_SYMBOL vmlinux 0x54152e04 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x5429f762 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x54341cbf inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x545b1979 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x546c4b8f mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x5486c35f free_netdev +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x549aa131 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54ae0451 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x54df0927 start_tty +EXPORT_SYMBOL vmlinux 0x54e6d2b9 spi_dv_device +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ed983b kernel_getsockname +EXPORT_SYMBOL vmlinux 0x550d86c6 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x551a28ca inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x551b9c7d default_file_splice_read +EXPORT_SYMBOL vmlinux 0x553526a3 udp_proc_register +EXPORT_SYMBOL vmlinux 0x55401d79 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5574a0b3 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a543c5 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x55a768f5 __get_user_pages +EXPORT_SYMBOL vmlinux 0x55a8ba03 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x55aeaf73 generic_write_end +EXPORT_SYMBOL vmlinux 0x55b818fe pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x55d085ac mfd_add_devices +EXPORT_SYMBOL vmlinux 0x55d2ad47 skb_push +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x562d8afa tty_port_put +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x567facc7 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x568db09b __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x56adab88 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x56ba394b set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cd3ea1 mpage_readpages +EXPORT_SYMBOL vmlinux 0x56e5d076 inet_frag_find +EXPORT_SYMBOL vmlinux 0x56e72f0c ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x56ec5c8e nf_ct_attach +EXPORT_SYMBOL vmlinux 0x5705088a __vmalloc +EXPORT_SYMBOL vmlinux 0x571bd58d ilookup +EXPORT_SYMBOL vmlinux 0x571c9f45 single_release +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573dbc90 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x5740c1d2 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x574f0f79 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x5752a447 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a14cee end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57bfaf97 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57dc7130 dev_alert +EXPORT_SYMBOL vmlinux 0x57de39fc cdev_alloc +EXPORT_SYMBOL vmlinux 0x582e8730 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x586521f0 __serio_register_port +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58e43017 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x58ec3e92 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x59245bb6 alloc_trdev +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5941a872 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x5949a475 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59563253 vga_get +EXPORT_SYMBOL vmlinux 0x5996498a elv_abort_queue +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59e3b34d vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x59e64770 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5a110d7a simple_unlink +EXPORT_SYMBOL vmlinux 0x5a2aa62e __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x5a3be481 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x5a3e9e06 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x5a449977 generic_write_sync +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5ea541 __ps2_command +EXPORT_SYMBOL vmlinux 0x5a5f6831 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a932a81 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x5a941e38 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x5aa55746 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x5ab9f01a skb_make_writable +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5b00e620 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x5b0a578b posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x5b124237 sock_wfree +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b2c5e08 scsi_print_command +EXPORT_SYMBOL vmlinux 0x5b31eb1f pci_get_class +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5b94830a xfrm_register_type +EXPORT_SYMBOL vmlinux 0x5bb86c29 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x5bbd9901 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x5bd11b48 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x5be55bb5 take_over_console +EXPORT_SYMBOL vmlinux 0x5c08aec2 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x5c316f0c netif_skb_features +EXPORT_SYMBOL vmlinux 0x5c3edd59 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x5c3ef039 genphy_suspend +EXPORT_SYMBOL vmlinux 0x5c64429d ifla_policy +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c6fd362 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x5c88b8eb nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x5cbe50b1 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x5cc11e12 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x5cd33e59 nla_put +EXPORT_SYMBOL vmlinux 0x5cecd05d lro_receive_frags +EXPORT_SYMBOL vmlinux 0x5d155d50 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x5d22e639 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x5d28fc77 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x5d3ca1e9 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x5d402ba7 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6e50b7 vfs_statfs +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d89c464 kthread_stop +EXPORT_SYMBOL vmlinux 0x5d8ab194 misc_register +EXPORT_SYMBOL vmlinux 0x5db3ead3 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x5dbb6293 kobject_get +EXPORT_SYMBOL vmlinux 0x5dcb5369 elv_rb_add +EXPORT_SYMBOL vmlinux 0x5dce6b75 complete_and_exit +EXPORT_SYMBOL vmlinux 0x5e038e59 do_splice_to +EXPORT_SYMBOL vmlinux 0x5e1e3c8d fb_show_logo +EXPORT_SYMBOL vmlinux 0x5e1fe83d splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x5e34d7f2 write_inode_now +EXPORT_SYMBOL vmlinux 0x5e54f9c1 tty_port_init +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e7dce36 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec39c5a setup_new_exec +EXPORT_SYMBOL vmlinux 0x5ec949b9 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f12014b contig_page_data +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f213995 do_munmap +EXPORT_SYMBOL vmlinux 0x5f27544a mempool_destroy +EXPORT_SYMBOL vmlinux 0x5f284e12 backlight_force_update +EXPORT_SYMBOL vmlinux 0x5f2e8773 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x5f366491 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x5f4e1a8f acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f610767 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x5f723bae bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x5f752990 security_path_truncate +EXPORT_SYMBOL vmlinux 0x5f834438 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fa7d432 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x5fb9f9a6 key_link +EXPORT_SYMBOL vmlinux 0x5fd26966 account_page_writeback +EXPORT_SYMBOL vmlinux 0x5fe0e2e0 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x5fe41fb6 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x5feca002 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x5fedc72d dentry_path_raw +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x604145cb __cleancache_flush_inode +EXPORT_SYMBOL vmlinux 0x60415087 bio_free +EXPORT_SYMBOL vmlinux 0x604a2ccc unregister_quota_format +EXPORT_SYMBOL vmlinux 0x604e9db2 netdev_crit +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6073e1dd mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b2e38a rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x60da0191 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x6106f143 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61412940 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x614ef55d filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x61536865 idr_destroy +EXPORT_SYMBOL vmlinux 0x6159f4cf tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x61754827 __sock_create +EXPORT_SYMBOL vmlinux 0x619b187b add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x61a69fb5 mntput +EXPORT_SYMBOL vmlinux 0x61b5ade0 down_write +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61e42767 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x61e89db4 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x621d77a0 sleep_on +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x62286feb ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622fa02a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623b8389 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x623f1b0a alloc_disk +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x624f586c __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x6285179d dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x6290e59b dma_sync_wait +EXPORT_SYMBOL vmlinux 0x62a5e0af dev_uc_init +EXPORT_SYMBOL vmlinux 0x62a7def4 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x62b9582d dquot_operations +EXPORT_SYMBOL vmlinux 0x62cb4cee interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x62cd8754 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x62cda283 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x62d5535d module_layout +EXPORT_SYMBOL vmlinux 0x62fbf721 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x6332cc1a audit_log_start +EXPORT_SYMBOL vmlinux 0x6337dfce ab8500_gpadc_convert +EXPORT_SYMBOL vmlinux 0x634d6172 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x635f16ad mount_nodev +EXPORT_SYMBOL vmlinux 0x6360a3e6 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63750452 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x637b79d1 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x638f5964 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x63ad6cba find_or_create_page +EXPORT_SYMBOL vmlinux 0x63ba8660 blk_init_queue +EXPORT_SYMBOL vmlinux 0x63bd5175 pci_map_rom +EXPORT_SYMBOL vmlinux 0x63d08294 uart_register_driver +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f0a95b generic_setlease +EXPORT_SYMBOL vmlinux 0x63f13192 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x63fedfd8 bio_pair_release +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64063398 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x64108df1 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x64178982 skb_queue_head +EXPORT_SYMBOL vmlinux 0x642e4ba8 register_quota_format +EXPORT_SYMBOL vmlinux 0x643eaec8 param_get_string +EXPORT_SYMBOL vmlinux 0x6458601c ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x64695183 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x6483e895 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x6484921c scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65220759 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x65291cff timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65437713 neigh_table_init +EXPORT_SYMBOL vmlinux 0x6554eac2 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x657879ce __init_rwsem +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x658f656d input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x659b5f36 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x65a041b3 d_set_d_op +EXPORT_SYMBOL vmlinux 0x65adb684 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x65b0bb23 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x65bcc1f6 devm_ioremap +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e01c57 journal_extend +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x66355efc vprintk +EXPORT_SYMBOL vmlinux 0x665c898c mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x6661560f blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x66781c76 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x667f288b elv_rb_del +EXPORT_SYMBOL vmlinux 0x667f74b5 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x668c0fff ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x669dd28a posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66d3a446 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x66d525f9 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x66eeeabb blk_init_tags +EXPORT_SYMBOL vmlinux 0x66f72dfe d_delete +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x6722a126 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x677f8772 set_trace_device +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x67ac2db0 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67dd7156 register_gifconf +EXPORT_SYMBOL vmlinux 0x67edabf6 input_event +EXPORT_SYMBOL vmlinux 0x67f7403e _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x67fdc02a pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x68211a7d sock_create_kern +EXPORT_SYMBOL vmlinux 0x682682a7 mddev_congested +EXPORT_SYMBOL vmlinux 0x68531e9c pci_get_slot +EXPORT_SYMBOL vmlinux 0x6858bfe2 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x6870bdd1 do_sync_write +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68835ffc km_state_expired +EXPORT_SYMBOL vmlinux 0x689cd7ce genphy_update_link +EXPORT_SYMBOL vmlinux 0x68c98d15 genphy_read_status +EXPORT_SYMBOL vmlinux 0x68d3eabd page_put_link +EXPORT_SYMBOL vmlinux 0x68e3b929 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x6917156b pci_dev_driver +EXPORT_SYMBOL vmlinux 0x692a568a dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x699cceb4 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b2ff79 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x69ce3f4f register_netdev +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e404b3 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a09b998 locks_free_lock +EXPORT_SYMBOL vmlinux 0x6a129fa8 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x6a145ad8 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a48e16b percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a8b6fd5 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x6a91b9c0 blk_start_queue +EXPORT_SYMBOL vmlinux 0x6ab70e70 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acd28cd ip_fragment +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6ada679e generic_removexattr +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae4fbd1 blkdev_put +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b1bfe8d __scm_send +EXPORT_SYMBOL vmlinux 0x6b1e1cab scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b3d7de3 inet6_getname +EXPORT_SYMBOL vmlinux 0x6b42dd5e tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x6b488b97 dquot_commit +EXPORT_SYMBOL vmlinux 0x6b55c14c pci_map_biosrom +EXPORT_SYMBOL vmlinux 0x6b5b4205 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x6b890005 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6b9e9645 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bb02df8 poll_freewait +EXPORT_SYMBOL vmlinux 0x6bb55b1a bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bcebabe skb_pull +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bdfbfa1 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x6be0cde6 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x6bf70fc4 pci_find_capability +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c42b49d ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x6c5788db user_path_create +EXPORT_SYMBOL vmlinux 0x6c58128a would_dump +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6255da phy_find_first +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c8b020f mca_device_read_pos +EXPORT_SYMBOL vmlinux 0x6c9db929 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x6cce4d5f dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf8d3e4 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d1481d1 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2af318 is_container_init +EXPORT_SYMBOL vmlinux 0x6d30287d mmc_host_disable +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d51c948 vga_tryget +EXPORT_SYMBOL vmlinux 0x6d5485ff scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x6d5bfec4 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0x6d6b06a8 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d7a166c cdrom_check_events +EXPORT_SYMBOL vmlinux 0x6da86699 submit_bio +EXPORT_SYMBOL vmlinux 0x6dc57f87 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x6dee2129 user_revoke +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e1d1a61 read_dev_sector +EXPORT_SYMBOL vmlinux 0x6e2449d9 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x6e506483 sk_dst_check +EXPORT_SYMBOL vmlinux 0x6e51ac2e _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x6e5b2b44 mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x6e65f2dc rtc_lock +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e80e1e1 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ece9699 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x6ed08446 netdev_alert +EXPORT_SYMBOL vmlinux 0x6efab9c3 kernel_listen +EXPORT_SYMBOL vmlinux 0x6f0fe013 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x6f2fdc94 ping_prot +EXPORT_SYMBOL vmlinux 0x6f54b9a9 generic_permission +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f8ca82e bio_integrity_split +EXPORT_SYMBOL vmlinux 0x6f906d8b i2c_del_driver +EXPORT_SYMBOL vmlinux 0x6fb3d2a9 dev_get_flags +EXPORT_SYMBOL vmlinux 0x6fc2d0a4 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x700c2720 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x703b4352 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x708b8ccc intel_gtt_map_memory +EXPORT_SYMBOL vmlinux 0x708d656e __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c2f435 put_disk +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e934d8 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x710b0ba1 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x7114a71f bit_waitqueue +EXPORT_SYMBOL vmlinux 0x71202709 pci_disable_ido +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x713f9d2c generic_read_dir +EXPORT_SYMBOL vmlinux 0x716c736d dev_set_group +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x718d7ff0 d_find_alias +EXPORT_SYMBOL vmlinux 0x719eb747 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71d0e94f llc_add_pack +EXPORT_SYMBOL vmlinux 0x71f21790 module_put +EXPORT_SYMBOL vmlinux 0x71fac4c2 get_gendisk +EXPORT_SYMBOL vmlinux 0x7203f0aa unlock_rename +EXPORT_SYMBOL vmlinux 0x7208d76e ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x7234c88c kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x7234eafb otg_state_string +EXPORT_SYMBOL vmlinux 0x72689ab6 pci_iounmap +EXPORT_SYMBOL vmlinux 0x72802336 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x729ba26a xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x72aa82c6 param_ops_charp +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72df2f2a up_read +EXPORT_SYMBOL vmlinux 0x72e50086 vm_stat +EXPORT_SYMBOL vmlinux 0x72e68734 icmpv6_send +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f3c9d4 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x730658c6 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x730a1a58 irq_set_chip +EXPORT_SYMBOL vmlinux 0x730f14af mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x730ff363 param_set_uint +EXPORT_SYMBOL vmlinux 0x731094fd dm_io +EXPORT_SYMBOL vmlinux 0x7312ccf6 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x732b7833 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x73566939 ip_options_compile +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x7365a9f3 nf_log_packet +EXPORT_SYMBOL vmlinux 0x736c79dc param_get_byte +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x7383a455 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73ce2c5a blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x73d68e8d __page_symlink +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f11212 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x73f1465d netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x740372d1 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x74063044 sock_wake_async +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x741a6e22 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x746b55c0 udp_poll +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x748b3ca1 __lock_buffer +EXPORT_SYMBOL vmlinux 0x749c8212 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x74a7b7b1 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x74b8d81a redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74d1156c abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x74d80856 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x74d89d67 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x74e646dd jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x74f2e2d1 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x74ff957b scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x751b2247 param_get_bool +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x755e3f46 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x755f7a53 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x759eac7f elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x75b15bda prepare_binprm +EXPORT_SYMBOL vmlinux 0x75b3135c blk_complete_request +EXPORT_SYMBOL vmlinux 0x75bb675a finish_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75cab531 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x75f1f0b1 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x7631fb11 dm_get_device +EXPORT_SYMBOL vmlinux 0x763dec58 phy_connect +EXPORT_SYMBOL vmlinux 0x7645a2dd input_unregister_device +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x76584577 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76b3290a iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d2f3b4 udp_prot +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76dc6b98 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x76fe045c mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x772f9eec __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77464e2d misc_deregister +EXPORT_SYMBOL vmlinux 0x77475b53 register_filesystem +EXPORT_SYMBOL vmlinux 0x77629160 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x777539b7 cpu_info +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a2dd5d mca_bus_type +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77ce87cb vfs_rename +EXPORT_SYMBOL vmlinux 0x77d59419 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x77db9871 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e383c2 dev_emerg +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x78016fbc unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x7818316d blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x7824b048 dm_put_device +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x78a49796 dev_warn +EXPORT_SYMBOL vmlinux 0x78aa8ffc inet6_bind +EXPORT_SYMBOL vmlinux 0x78bb2011 dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x78c91576 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78ea69de blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x78ed4837 padata_start +EXPORT_SYMBOL vmlinux 0x79010dfa generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x790cdbe0 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x790f1dcf qdisc_destroy +EXPORT_SYMBOL vmlinux 0x793ed0fa bio_copy_user +EXPORT_SYMBOL vmlinux 0x794a2c29 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x794b55a0 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x794d2764 simple_rmdir +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7977c9da create_mnt_ns +EXPORT_SYMBOL vmlinux 0x7985db36 mii_check_media +EXPORT_SYMBOL vmlinux 0x79894586 write_one_page +EXPORT_SYMBOL vmlinux 0x799f3630 netif_napi_add +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b8cdc7 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x79cf6c9c inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x79d839b8 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x7a08ad05 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x7a1390f7 param_set_bool +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a3d7c5e blk_recount_segments +EXPORT_SYMBOL vmlinux 0x7a3dbdc9 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x7a3eb91a __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a672a9a ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x7a71b01e __dst_free +EXPORT_SYMBOL vmlinux 0x7a7a0ca2 kernel_accept +EXPORT_SYMBOL vmlinux 0x7a7b0b6b journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x7a9bf88d udplite_table +EXPORT_SYMBOL vmlinux 0x7aa81449 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x7abacda2 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x7ae3083e __d_drop +EXPORT_SYMBOL vmlinux 0x7ae4dda3 blk_start_request +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7af3eb89 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7afd0317 dev_addr_del +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b3835aa splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x7b3c838a xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b6f4c78 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x7b87ab4f register_con_driver +EXPORT_SYMBOL vmlinux 0x7b94dde9 input_release_device +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7bbd761c __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x7bdd2239 rtnl_notify +EXPORT_SYMBOL vmlinux 0x7c2ccd3a input_reset_device +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5174aa ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x7c591b9e pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c6dd04d ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x7c8aa534 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7ca7e6db mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb92721 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x7cbec223 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x7cd15f6d tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x7ce0ae7c param_get_long +EXPORT_SYMBOL vmlinux 0x7cf69ba4 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x7d0ba770 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d128292 skb_unlink +EXPORT_SYMBOL vmlinux 0x7d274d35 dst_alloc +EXPORT_SYMBOL vmlinux 0x7d9491f8 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x7dbc2e57 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x7dbd7305 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x7dc3d140 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x7dc3e088 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x7dcdac0a __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x7de866c7 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e065b64 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x7e07e970 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x7e0ca59f dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x7e153305 __inet6_hash +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e36d154 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e48c24b sock_wmalloc +EXPORT_SYMBOL vmlinux 0x7e4ff08d tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ea3d4e1 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x7eaacb1d udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x7eb2c961 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x7ec256eb task_ns_capable +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7edf0657 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x7f072be5 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x7f18b194 kacpi_hotplug_wq +EXPORT_SYMBOL vmlinux 0x7f212227 vfs_open +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f45b63c jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x7f658e80 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7f85127c sock_register +EXPORT_SYMBOL vmlinux 0x7f98b944 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x7fac69a0 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7fac9a93 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x7fb74e3e input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x7fd9785c inet_put_port +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x802a3608 mmc_erase +EXPORT_SYMBOL vmlinux 0x8078bb6a ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x808af8d4 pnp_find_card +EXPORT_SYMBOL vmlinux 0x8096b59e register_xen_selfballooning +EXPORT_SYMBOL vmlinux 0x80a773c2 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x80ae52f8 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x80ae9aa1 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x80af5790 mca_device_set_name +EXPORT_SYMBOL vmlinux 0x80cf6a09 netdev_info +EXPORT_SYMBOL vmlinux 0x80d78e54 cdev_add +EXPORT_SYMBOL vmlinux 0x80df677a inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x80fa5530 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x80fd08f9 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x810b3618 param_ops_string +EXPORT_SYMBOL vmlinux 0x81317012 tmem_enabled +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x8147fea1 seq_release_private +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8150c0ba mempool_resize +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x816f8320 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81a386e1 kobject_init +EXPORT_SYMBOL vmlinux 0x81a5e22a kobject_del +EXPORT_SYMBOL vmlinux 0x81bb7589 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81e6ce9f agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x8203237f phy_detach +EXPORT_SYMBOL vmlinux 0x82034bdc posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x823fb71c bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8255d241 do_SAK +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82627229 set_pages_uc +EXPORT_SYMBOL vmlinux 0x826494af blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x8270e9fc scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x829b533d create_proc_entry +EXPORT_SYMBOL vmlinux 0x829ff995 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82de5d3b pci_release_regions +EXPORT_SYMBOL vmlinux 0x830390fa fifo_set_limit +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x8343cd74 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x83522ab4 locks_init_lock +EXPORT_SYMBOL vmlinux 0x835efd82 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x83670fe4 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x836873a2 proc_dointvec +EXPORT_SYMBOL vmlinux 0x836dd0c2 d_instantiate +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b6cba7 llc_sap_find +EXPORT_SYMBOL vmlinux 0x83d11b32 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x83d1fcae generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x83db1c83 lock_may_write +EXPORT_SYMBOL vmlinux 0x83f65711 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x83ffa9fe sync_inode +EXPORT_SYMBOL vmlinux 0x84025099 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x84025dcb is_bad_inode +EXPORT_SYMBOL vmlinux 0x8404e0f9 truncate_setsize +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x84072747 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x84208767 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x842cc160 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x8436f8e3 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x844383d3 i2c_use_client +EXPORT_SYMBOL vmlinux 0x84533adf xfrm_register_km +EXPORT_SYMBOL vmlinux 0x8453edbb tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x846bcc01 dm_table_get +EXPORT_SYMBOL vmlinux 0x847f182b page_address +EXPORT_SYMBOL vmlinux 0x8482ea92 inet_getname +EXPORT_SYMBOL vmlinux 0x8490bb3b netdev_set_bond_master +EXPORT_SYMBOL vmlinux 0x849326ba vfs_mkdir +EXPORT_SYMBOL vmlinux 0x849660ce dentry_unhash +EXPORT_SYMBOL vmlinux 0x849be2bf pci_pme_capable +EXPORT_SYMBOL vmlinux 0x849f39eb read_cache_pages +EXPORT_SYMBOL vmlinux 0x84acafdb ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x84b3b44f dcache_readdir +EXPORT_SYMBOL vmlinux 0x84b6b113 seq_release +EXPORT_SYMBOL vmlinux 0x84be886f completion_done +EXPORT_SYMBOL vmlinux 0x84c22ce7 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x84dc6c1c request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x84e19b66 proc_mkdir +EXPORT_SYMBOL vmlinux 0x84e1f370 flush_old_exec +EXPORT_SYMBOL vmlinux 0x84ec6fca fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x8523a174 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x852a8d92 security_path_link +EXPORT_SYMBOL vmlinux 0x854d3b1b phy_device_register +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x857b7696 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x859b55f5 elevator_init +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85c596b4 napi_get_frags +EXPORT_SYMBOL vmlinux 0x85d16790 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85f60ce1 sock_init_data +EXPORT_SYMBOL vmlinux 0x860f2c61 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x861b50b2 kunmap_high +EXPORT_SYMBOL vmlinux 0x863543e0 invalidate_partition +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86649146 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x8695d7ab abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86a95fd7 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x86b9c0ef textsearch_prepare +EXPORT_SYMBOL vmlinux 0x86bfae20 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x86d5255f _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87280ac5 netdev_notice +EXPORT_SYMBOL vmlinux 0x872ffc82 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87802491 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878f2cb3 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87d4731f ps2_command +EXPORT_SYMBOL vmlinux 0x87e14579 dquot_enable +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881b32ad dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x8823d019 scsi_get_command +EXPORT_SYMBOL vmlinux 0x882b982a jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88366d1e blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x883ab698 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x8873eaa7 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x8877aebe ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x88851a7b scsi_prep_return +EXPORT_SYMBOL vmlinux 0x8899dbe2 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x88ab3184 init_buffer +EXPORT_SYMBOL vmlinux 0x88ae4d7e xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x88c69a17 acpi_bus_add +EXPORT_SYMBOL vmlinux 0x88ed0505 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x890c9b19 blk_free_tags +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x893e274b bio_alloc +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x8971989a d_path +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x898b1cbd jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b09af7 pci_release_region +EXPORT_SYMBOL vmlinux 0x89c24972 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x89c68e64 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89f8d05d sg_miter_stop +EXPORT_SYMBOL vmlinux 0x8a153be0 dev_addr_add +EXPORT_SYMBOL vmlinux 0x8a15e39f mpage_writepage +EXPORT_SYMBOL vmlinux 0x8a1615d6 mempool_create_node +EXPORT_SYMBOL vmlinux 0x8a2320b6 block_write_end +EXPORT_SYMBOL vmlinux 0x8a2cacbd fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a5e05b4 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a93b57a ida_destroy +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9d8b5e pcim_pin_device +EXPORT_SYMBOL vmlinux 0x8a9e4a50 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x8aaff80b blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x8ab574b0 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x8abe41d9 do_truncate +EXPORT_SYMBOL vmlinux 0x8ac0b36f blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x8ad7ad2d amd_northbridges +EXPORT_SYMBOL vmlinux 0x8adef804 cdev_del +EXPORT_SYMBOL vmlinux 0x8af3f997 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x8b10f4a1 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x8b11db80 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1865ae scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b1d488b pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x8b2c11db elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b3672cb swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x8b39bbec mii_nway_restart +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b6c3fab copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x8b936ed6 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8b9a8ef6 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x8bccf4a2 bdi_register +EXPORT_SYMBOL vmlinux 0x8c0ede93 md_write_end +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c279fec pipe_to_file +EXPORT_SYMBOL vmlinux 0x8c4dbcc2 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x8c59fadd journal_get_write_access +EXPORT_SYMBOL vmlinux 0x8c6564ee netdev_state_change +EXPORT_SYMBOL vmlinux 0x8c99579d jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x8ca05b9f d_alloc +EXPORT_SYMBOL vmlinux 0x8cb4eca3 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x8cc4f7fd tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8ccfcf55 dqput +EXPORT_SYMBOL vmlinux 0x8cd6c9bc gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8cf4353b first_ec +EXPORT_SYMBOL vmlinux 0x8d50384d __serio_register_driver +EXPORT_SYMBOL vmlinux 0x8d507fc8 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x8d50baba journal_forget +EXPORT_SYMBOL vmlinux 0x8d51f470 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d946975 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x8d95992d bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8db6a0cf scsi_add_device +EXPORT_SYMBOL vmlinux 0x8dbe20a2 __register_binfmt +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8de71ad0 scsi_host_get +EXPORT_SYMBOL vmlinux 0x8df77b73 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e3671de sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x8e555738 param_get_uint +EXPORT_SYMBOL vmlinux 0x8e56a25f tcp_read_sock +EXPORT_SYMBOL vmlinux 0x8e58b224 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x8e58caa0 lease_modify +EXPORT_SYMBOL vmlinux 0x8e65f454 sk_run_filter +EXPORT_SYMBOL vmlinux 0x8e75a30b kset_unregister +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e890039 journal_start +EXPORT_SYMBOL vmlinux 0x8e9ed1e5 tcp_close +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ec604d5 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x8ed0927f scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f040051 pnp_is_active +EXPORT_SYMBOL vmlinux 0x8f1b0407 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x8f26f724 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f27339c mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0x8f36d577 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x8f478e46 poll_initwait +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f505cf5 dquot_acquire +EXPORT_SYMBOL vmlinux 0x8f914815 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa01a71 inode_init_once +EXPORT_SYMBOL vmlinux 0x8facfa40 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x8fc7f839 param_set_charp +EXPORT_SYMBOL vmlinux 0x8fe64ba3 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ff66782 param_get_ushort +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90094926 skb_trim +EXPORT_SYMBOL vmlinux 0x900ebc9b pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x9015225b mii_link_ok +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x9055ea16 __scm_destroy +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90adccd7 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90e14474 follow_down_one +EXPORT_SYMBOL vmlinux 0x90f13632 proc_dostring +EXPORT_SYMBOL vmlinux 0x910182ba kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x910c0a54 dma_set_mask +EXPORT_SYMBOL vmlinux 0x910e331c tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x911899dd fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x9134ac2c rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x916d8e35 bio_map_user +EXPORT_SYMBOL vmlinux 0x91714449 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x91a4f727 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x91c02e33 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x921f8e5f check_disk_size_change +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92535a3a dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92a05f3d idr_get_new +EXPORT_SYMBOL vmlinux 0x92ac7312 __napi_complete +EXPORT_SYMBOL vmlinux 0x92b3e450 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x92dbf83e ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x92e7e86f swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x92f6a27e blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x930559e2 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x93247842 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x935591da splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x9374c1cb release_firmware +EXPORT_SYMBOL vmlinux 0x93779f5d posix_test_lock +EXPORT_SYMBOL vmlinux 0x93806086 redraw_screen +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93d6523d thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x93e3b6b6 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x93e8bc68 dquot_drop +EXPORT_SYMBOL vmlinux 0x93fbf589 tty_set_operations +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x941ed3f8 prepare_creds +EXPORT_SYMBOL vmlinux 0x9431fad7 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x9438245a __free_pages +EXPORT_SYMBOL vmlinux 0x9451e963 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x94664b6f tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x946e3814 search_binary_handler +EXPORT_SYMBOL vmlinux 0x94752260 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x947d74a1 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x94864c7a wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949f7357 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94c0d9b7 ps2_drain +EXPORT_SYMBOL vmlinux 0x94c8c66d pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x94dc4f17 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x94e62b71 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x94fe4b13 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x952e760e dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x953db383 free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x955e24e5 inet_accept +EXPORT_SYMBOL vmlinux 0x9578bcf4 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x9580f7bc vm_event_states +EXPORT_SYMBOL vmlinux 0x9587b0a3 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x95b4b77e blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x95b7c03e console_start +EXPORT_SYMBOL vmlinux 0x95ceebd1 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x95e62e23 ppp_input_error +EXPORT_SYMBOL vmlinux 0x95f89a33 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x95fcea29 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x9600168c kobject_add +EXPORT_SYMBOL vmlinux 0x96058edd request_firmware +EXPORT_SYMBOL vmlinux 0x960c66c2 netdev_warn +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x966c6ffc blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x967d7541 md_check_recovery +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96958bce scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x9696ac72 rename_lock +EXPORT_SYMBOL vmlinux 0x96a592f6 seq_puts +EXPORT_SYMBOL vmlinux 0x96ac6439 pipe_unlock +EXPORT_SYMBOL vmlinux 0x96b2474d __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x96c7e43b seq_printf +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96d8de01 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x96e087a1 ata_dev_printk +EXPORT_SYMBOL vmlinux 0x96e79739 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x97166fd0 d_splice_alias +EXPORT_SYMBOL vmlinux 0x973562c0 default_llseek +EXPORT_SYMBOL vmlinux 0x973697d1 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975aa79d vfs_getattr +EXPORT_SYMBOL vmlinux 0x9768761a wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97b606ac fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x97ca54c6 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x97d9c768 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97deb3c0 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x97ff1c85 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x9801cf43 netpoll_setup +EXPORT_SYMBOL vmlinux 0x981e3aaa bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989b06e9 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x98cdc960 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x98de61fa simple_link +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x98fa4e1c genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x9926a732 update_region +EXPORT_SYMBOL vmlinux 0x9928ebb2 dump_write +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x9984f355 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x9997de5f tty_port_hangup +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99b34274 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x99b50dfa netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99e7bd24 register_qdisc +EXPORT_SYMBOL vmlinux 0x99fcfdd9 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x9a008569 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1ec4c8 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x9a2a9ce1 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x9a2e3939 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x9a43f33c bio_map_kern +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a7fb634 page_readlink +EXPORT_SYMBOL vmlinux 0x9aae2af6 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x9ab8808c param_get_charp +EXPORT_SYMBOL vmlinux 0x9ae7011f lookup_hash +EXPORT_SYMBOL vmlinux 0x9b098cb5 dev_trans_start +EXPORT_SYMBOL vmlinux 0x9b314093 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b612d86 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b75cb81 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bbc9dd7 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x9bdaa010 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x9be62ffe cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x9bf68e21 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0daa66 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x9c23bcba atomic64_add_return_cx8 +EXPORT_SYMBOL vmlinux 0x9c28f5bb pci_set_mwi +EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero +EXPORT_SYMBOL vmlinux 0x9c388c50 pci_iomap +EXPORT_SYMBOL vmlinux 0x9c463a69 register_8022_client +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c5f81da cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x9c60706e names_cachep +EXPORT_SYMBOL vmlinux 0x9c6114dd jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x9c81090f xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x9c8ecd26 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x9ca6a092 mpage_readpage +EXPORT_SYMBOL vmlinux 0x9cb686e9 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x9cb830d2 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cd3a2f8 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce177a4 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d01bd09 mdiobus_read +EXPORT_SYMBOL vmlinux 0x9d03b742 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9d1959c9 km_state_notify +EXPORT_SYMBOL vmlinux 0x9d2728b2 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x9d295ed7 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d4b3cae inode_needs_sync +EXPORT_SYMBOL vmlinux 0x9d4bc48e blk_put_queue +EXPORT_SYMBOL vmlinux 0x9d6d0df0 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x9d79fc9b inet6_ioctl +EXPORT_SYMBOL vmlinux 0x9d982765 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x9db9df09 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x9ddac7fe ppp_input +EXPORT_SYMBOL vmlinux 0x9df012f9 tty_shutdown +EXPORT_SYMBOL vmlinux 0x9dfeb2df pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e447289 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x9e4648ab set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x9e46d846 pci_biosrom_size +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e607910 audit_log +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e7249f0 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x9e796410 get_phy_id +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e955cd8 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ed13c7e nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f5cdc98 journal_force_commit +EXPORT_SYMBOL vmlinux 0x9f838b41 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9e1787 __destroy_inode +EXPORT_SYMBOL vmlinux 0x9f9f8038 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x9fb2aa48 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fbec13e __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x9fcaaee8 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0xa0471303 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06735c5 notify_change +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa09fc008 input_flush_device +EXPORT_SYMBOL vmlinux 0xa0a890de request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xa0accd3b d_prune_aliases +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3996d key_alloc +EXPORT_SYMBOL vmlinux 0xa0d68d58 skb_checksum +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f69049 kern_path_create +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff2b20 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1176147 pci_clear_master +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12e7bf7 kill_bdev +EXPORT_SYMBOL vmlinux 0xa1325af4 km_query +EXPORT_SYMBOL vmlinux 0xa1399110 register_md_personality +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1715001 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xa1789cc2 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xa1805d2a otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xa18965b3 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xa1a2f529 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xa1a62c29 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xa1b1ea3a security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xa1b5ab56 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xa1b7476c sk_receive_skb +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1b7909a journal_stop +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1c5a3b3 cleancache_enabled +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1da5d82 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xa1dff9bb netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0xa1f61226 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xa1f74856 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa22294f5 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xa22492da mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xa2381b50 nla_append +EXPORT_SYMBOL vmlinux 0xa262ffd4 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xa26f6f4a pci_choose_state +EXPORT_SYMBOL vmlinux 0xa2815fb2 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa285da49 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xa2a595e3 block_truncate_page +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b3b417 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xa2c56c31 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f17c63 bioset_create +EXPORT_SYMBOL vmlinux 0xa312b53a netlink_set_err +EXPORT_SYMBOL vmlinux 0xa319ced4 lock_may_read +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa3284a7e agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33c346c i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xa3404920 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa34f5b45 bio_endio +EXPORT_SYMBOL vmlinux 0xa3504378 rwsem_wake +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa360fc42 vfs_create +EXPORT_SYMBOL vmlinux 0xa363dab4 udp_table +EXPORT_SYMBOL vmlinux 0xa3794560 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xa380fb0b get_io_context +EXPORT_SYMBOL vmlinux 0xa3ac3fa1 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xa3afaf3e journal_init_dev +EXPORT_SYMBOL vmlinux 0xa3c31b7c generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xa3cea1a6 __put_cred +EXPORT_SYMBOL vmlinux 0xa3d6960e xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xa3de105c pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xa3e53745 bio_put +EXPORT_SYMBOL vmlinux 0xa3f520c3 get_user_pages +EXPORT_SYMBOL vmlinux 0xa40900fc xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xa41736ca pci_write_vpd +EXPORT_SYMBOL vmlinux 0xa41d55b8 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xa42643f5 bh_submit_read +EXPORT_SYMBOL vmlinux 0xa439059e xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b7c71 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa43d1e72 vc_resize +EXPORT_SYMBOL vmlinux 0xa44ac379 ether_setup +EXPORT_SYMBOL vmlinux 0xa4670fc9 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xa4ae6e2f vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xa4b1907a wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c0b6e4 tty_register_driver +EXPORT_SYMBOL vmlinux 0xa4c6af7c tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xa4c7d6f0 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4eb4eff _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xa5060cbd ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa51eac01 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xa52ba9c0 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xa5365f38 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xa54c1516 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xa55cff52 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xa57c45df inode_init_always +EXPORT_SYMBOL vmlinux 0xa5876fcc scsi_print_result +EXPORT_SYMBOL vmlinux 0xa58ad421 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5c7af5d tcp_seq_open +EXPORT_SYMBOL vmlinux 0xa5ccc5e5 napi_gro_flush +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa5e99861 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xa6064db5 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xa607a3ee log_wait_commit +EXPORT_SYMBOL vmlinux 0xa60af5e9 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xa60f20e1 request_key +EXPORT_SYMBOL vmlinux 0xa62e6e4f acpi_get_table_with_size +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67da660 mempool_alloc +EXPORT_SYMBOL vmlinux 0xa67e2845 dq_data_lock +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6926457 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6b13658 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xa6cf7d1e xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa7043528 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71b2c72 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa748465f phy_connect_direct +EXPORT_SYMBOL vmlinux 0xa75f5398 bdget +EXPORT_SYMBOL vmlinux 0xa7742968 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xa7971772 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xa7a3999e i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xa7ba77e4 d_rehash +EXPORT_SYMBOL vmlinux 0xa7d74f92 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xa7edf601 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xa80bae16 get_phy_device +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa82c1343 nobh_write_end +EXPORT_SYMBOL vmlinux 0xa84e8ea1 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xa85540bb netif_device_attach +EXPORT_SYMBOL vmlinux 0xa869f06e cad_pid +EXPORT_SYMBOL vmlinux 0xa8756491 dev_driver_string +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8c664d4 dev_addr_init +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8fb6345 pnp_find_dev +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa919372d eth_header +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa94cd42d find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xa9537a47 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xa955f0c6 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xa9596b43 padata_free +EXPORT_SYMBOL vmlinux 0xa95e70bf padata_add_cpu +EXPORT_SYMBOL vmlinux 0xa968d23d uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xa96948ef iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xa96caa11 pcim_iomap +EXPORT_SYMBOL vmlinux 0xa97f69c8 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0xa99a6f69 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xa9a4b8fb ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xa9c1b627 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xa9c7c907 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xa9fd3ab8 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xaa04059c scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xaa064fb9 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xaa273a83 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xaa6388a5 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xaa667732 tty_name +EXPORT_SYMBOL vmlinux 0xaa68e95d tcf_em_register +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa72a623 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa8d8b4e kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaa8ff3b0 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaab9f7e7 node_states +EXPORT_SYMBOL vmlinux 0xaad475aa __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab218899 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xab259add dev_notice +EXPORT_SYMBOL vmlinux 0xab28271c i8253_lock +EXPORT_SYMBOL vmlinux 0xab3eb7f4 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xab3f8baf input_register_handle +EXPORT_SYMBOL vmlinux 0xab4e15c2 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xab5b2d45 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab74491f tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab976d69 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xab98a6f7 md_write_start +EXPORT_SYMBOL vmlinux 0xaba7ed15 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabcbd5d2 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabead9e4 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac2bd794 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xac35daa6 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xac386526 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac593e2a new_inode +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0xac6b0305 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xac78f3e3 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xac7949d9 generic_getxattr +EXPORT_SYMBOL vmlinux 0xac7ce326 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0xac7db58f give_up_console +EXPORT_SYMBOL vmlinux 0xac83cb16 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xac869c49 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xac9dce53 seq_open +EXPORT_SYMBOL vmlinux 0xaca47557 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xaca793d1 posix_lock_file +EXPORT_SYMBOL vmlinux 0xacacb76a pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace506b8 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xace56e50 write_cache_pages +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf78831 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0xacf7f2f6 lock_super +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad07f027 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad23de98 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xad242fbd mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xad3ad5bb __napi_schedule +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad5c7466 check_disk_change +EXPORT_SYMBOL vmlinux 0xad69020b __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xad703466 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xad7480b5 mca_device_claimed +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad887003 register_framebuffer +EXPORT_SYMBOL vmlinux 0xad970fb7 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xad9ca333 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadbb9ff3 tty_hangup +EXPORT_SYMBOL vmlinux 0xadbe32c6 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xadd89a37 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xadda767b atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xadecf492 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xadf39c7a call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xae0f87ab scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xae112354 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xae3421a8 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xae44d904 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xae508c8f tcp_disconnect +EXPORT_SYMBOL vmlinux 0xae58b607 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xae70d57f max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xae91c8b2 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeb45def journal_restart +EXPORT_SYMBOL vmlinux 0xaebaf265 bio_split +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf611eac amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0xaf85574d pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xaf8ea913 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf9cd405 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xafa1c369 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xafb551a5 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0xafbed235 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xafe537e4 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xb0126e4e scsi_device_put +EXPORT_SYMBOL vmlinux 0xb0146c3a param_set_byte +EXPORT_SYMBOL vmlinux 0xb0207ecf ___ratelimit +EXPORT_SYMBOL vmlinux 0xb0268ebd agp_enable +EXPORT_SYMBOL vmlinux 0xb0516c42 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xb05a75f1 tty_mutex +EXPORT_SYMBOL vmlinux 0xb05c4c7c ip6_route_output +EXPORT_SYMBOL vmlinux 0xb0657392 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb0a8fd0a intel_gtt_unmap_memory +EXPORT_SYMBOL vmlinux 0xb0a950a7 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xb0b69979 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb12098c1 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1316306 journal_load +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb17f865d __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xb18f100a splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xb192a1fa shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb199f052 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xb1a94e3e jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xb1b2f10f mca_device_write_pos +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c40fb6 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0xb1cf7fcf dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d9523e wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1f871e5 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb225e54e aio_put_req +EXPORT_SYMBOL vmlinux 0xb24d15a3 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xb26706dc jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2744b36 down_write_trylock +EXPORT_SYMBOL vmlinux 0xb27d00dd pci_disable_msi +EXPORT_SYMBOL vmlinux 0xb2c06587 register_cdrom +EXPORT_SYMBOL vmlinux 0xb2eb8220 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb31f1491 mdiobus_write +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb334810a bdi_init +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb3640bb1 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xb3642051 input_set_capability +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3bef65c inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xb3bfe835 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xb3c061e8 force_sig +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb3e8cec2 lock_rename +EXPORT_SYMBOL vmlinux 0xb412edcd ab8500_gpadc_read_raw +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4372f24 pci_save_state +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb43c8124 pci_enable_obff +EXPORT_SYMBOL vmlinux 0xb44f982d pneigh_lookup +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4765659 journal_flush +EXPORT_SYMBOL vmlinux 0xb47b5fa7 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xb48a00ec page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xb495ef9d udplite_prot +EXPORT_SYMBOL vmlinux 0xb4961e85 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xb49f30ad bitmap_unplug +EXPORT_SYMBOL vmlinux 0xb4b6a2a4 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xb4ba3de3 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xb4be5e33 cdrom_release +EXPORT_SYMBOL vmlinux 0xb4d3bdc5 path_put +EXPORT_SYMBOL vmlinux 0xb4e77f99 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb51fee7f call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54715d6 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xb55d9511 simple_rename +EXPORT_SYMBOL vmlinux 0xb5665f21 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xb581656d arp_create +EXPORT_SYMBOL vmlinux 0xb5845d1e flush_signals +EXPORT_SYMBOL vmlinux 0xb5845d35 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xb592d2e2 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a4a7a1 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5ee6415 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xb5fb870b commit_creds +EXPORT_SYMBOL vmlinux 0xb5fe3800 journal_clear_err +EXPORT_SYMBOL vmlinux 0xb60c2857 simple_setattr +EXPORT_SYMBOL vmlinux 0xb61e1bb5 lookup_one_len +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb6523225 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb6588e7a idr_remove +EXPORT_SYMBOL vmlinux 0xb661399f blkdev_fsync +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb690fbc1 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xb691e221 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6bdc43f qdisc_list_del +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cc4de2 tty_check_change +EXPORT_SYMBOL vmlinux 0xb6d06d3b __netif_schedule +EXPORT_SYMBOL vmlinux 0xb6d7dea5 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xb6e5de92 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6f40f11 journal_get_create_access +EXPORT_SYMBOL vmlinux 0xb73fd53c mount_subtree +EXPORT_SYMBOL vmlinux 0xb74d8cad pnp_get_resource +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb769b772 input_inject_event +EXPORT_SYMBOL vmlinux 0xb773f441 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xb78c61e8 param_ops_bool +EXPORT_SYMBOL vmlinux 0xb7aa87b4 neigh_lookup +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7f8a7bd bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xb7fc1d2e vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb825e56a scsi_host_put +EXPORT_SYMBOL vmlinux 0xb82f4c1b abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xb8339838 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb857abb2 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xb863e8df seq_putc +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8759454 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb898e4a5 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8a3f5dd skb_queue_tail +EXPORT_SYMBOL vmlinux 0xb8a732b3 km_report +EXPORT_SYMBOL vmlinux 0xb8de98ab inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xb8e25037 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xb8e48027 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb8eecc19 proc_create_data +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb9171839 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0xb9474499 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xb960dace dump_trace +EXPORT_SYMBOL vmlinux 0xb988ec0a inet_stream_connect +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99cf582 ida_get_new_above +EXPORT_SYMBOL vmlinux 0xb9a13541 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xb9ad2b37 napi_complete +EXPORT_SYMBOL vmlinux 0xb9ae656a bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xb9b054f6 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xb9c69a99 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xb9c7b9e9 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0xb9e44ca9 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xb9f8d764 dquot_initialize +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xb9ff2ec8 dma_pool_create +EXPORT_SYMBOL vmlinux 0xba2a3694 fb_pan_display +EXPORT_SYMBOL vmlinux 0xba2bf109 init_net +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba4692fa padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5e63ef loop_register_transfer +EXPORT_SYMBOL vmlinux 0xba77d69e blk_requeue_request +EXPORT_SYMBOL vmlinux 0xba8ea6ad rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbab02fd6 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xbafbcfb6 con_is_bound +EXPORT_SYMBOL vmlinux 0xbb0351a4 tty_devnum +EXPORT_SYMBOL vmlinux 0xbb03be92 dentry_open +EXPORT_SYMBOL vmlinux 0xbb064e58 dma_ops +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3e1c38 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xbb556c69 framebuffer_release +EXPORT_SYMBOL vmlinux 0xbb57acb2 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb7ac605 brioctl_set +EXPORT_SYMBOL vmlinux 0xbb837d27 machine_real_restart +EXPORT_SYMBOL vmlinux 0xbb8579f1 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbaf01d5 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xbbd35d53 console_stop +EXPORT_SYMBOL vmlinux 0xbbd9e245 security_file_permission +EXPORT_SYMBOL vmlinux 0xbbfbf174 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xbc0d333c generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xbc1afedf up_write +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc22a134 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xbc4eacd1 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xbc992d2a skb_find_text +EXPORT_SYMBOL vmlinux 0xbca183e6 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd3d227 skb_append +EXPORT_SYMBOL vmlinux 0xbcdff7a3 unload_nls +EXPORT_SYMBOL vmlinux 0xbd016a37 fb_class +EXPORT_SYMBOL vmlinux 0xbd5f87d6 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xbd66e459 simple_write_begin +EXPORT_SYMBOL vmlinux 0xbd6dc7f5 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xbd7a7c5c udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xbd8bf071 pci_dev_get +EXPORT_SYMBOL vmlinux 0xbd982fb2 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc20c68 intel_gtt_get +EXPORT_SYMBOL vmlinux 0xbdc89e2c find_inode_number +EXPORT_SYMBOL vmlinux 0xbdd328af dput +EXPORT_SYMBOL vmlinux 0xbdd66f9e simple_readpage +EXPORT_SYMBOL vmlinux 0xbde26e36 scsi_put_command +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe445cf1 neigh_create +EXPORT_SYMBOL vmlinux 0xbe5879e4 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xbe5b3468 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xbe5c0cbf neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xbe5ef38b kthread_bind +EXPORT_SYMBOL vmlinux 0xbe752461 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xbe7d0fd0 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xbe952ee6 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xbebe21f0 skb_put +EXPORT_SYMBOL vmlinux 0xbec49960 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xbeca9da8 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xbecf9823 lro_flush_all +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbeef82db neigh_destroy +EXPORT_SYMBOL vmlinux 0xbef1af04 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef7d512 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xbf0155e8 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xbf11f955 journal_ack_err +EXPORT_SYMBOL vmlinux 0xbf33e3db jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xbf6163df blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xbf70e9a5 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0xbf75cef0 dev_open +EXPORT_SYMBOL vmlinux 0xbf7cde7a abort_creds +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8a3224 put_mnt_ns +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfad6ec5 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xbfb47308 bdi_unregister +EXPORT_SYMBOL vmlinux 0xbfb5c0f5 __alloc_skb +EXPORT_SYMBOL vmlinux 0xbfb78c4f padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe4318f mmc_remove_host +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc0189841 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xc01cf848 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc0347ad7 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xc03fc99f __pagevec_release +EXPORT_SYMBOL vmlinux 0xc0530fa2 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xc0543971 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc06e920c xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xc0741c80 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0bda512 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xc0d39b77 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xc0d499e2 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc1201721 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xc1372b81 pci_target_state +EXPORT_SYMBOL vmlinux 0xc1465449 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xc155ddf2 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xc1705579 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xc181bc96 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xc18b0d86 pci_set_master +EXPORT_SYMBOL vmlinux 0xc1a35d4d dev_alloc_name +EXPORT_SYMBOL vmlinux 0xc1b0ce7d mmc_start_req +EXPORT_SYMBOL vmlinux 0xc1ba1775 key_reject_and_link +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d9227a __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xc1eea0dd alloc_fcdev +EXPORT_SYMBOL vmlinux 0xc215c0af pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xc232dfa6 key_task_permission +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24d40b6 dget_parent +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26b0020 registered_fb +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f916b3 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xc316b98c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0xc31ab49e skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xc31efe0a jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xc33298df kobject_put +EXPORT_SYMBOL vmlinux 0xc3333970 input_open_device +EXPORT_SYMBOL vmlinux 0xc336ef4e pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xc337fe7d sg_miter_start +EXPORT_SYMBOL vmlinux 0xc357e360 agp_create_memory +EXPORT_SYMBOL vmlinux 0xc399d533 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xc3a4cc98 mmc_free_host +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3b73fe2 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xc3c64e80 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc3c7df92 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc3fa750c security_inode_readlink +EXPORT_SYMBOL vmlinux 0xc3fe87c8 param_ops_uint +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc4115ef9 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xc41e8f7a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xc42c742b generic_writepages +EXPORT_SYMBOL vmlinux 0xc4347225 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xc4554217 up +EXPORT_SYMBOL vmlinux 0xc474b1db alloc_file +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4af075f kill_pgrp +EXPORT_SYMBOL vmlinux 0xc4b5e170 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xc4ca747e bdi_register_dev +EXPORT_SYMBOL vmlinux 0xc4f0efe4 empty_aops +EXPORT_SYMBOL vmlinux 0xc4f90a1d jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xc50a10be dev_activate +EXPORT_SYMBOL vmlinux 0xc5290322 mount_single +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc566ba55 blk_peek_request +EXPORT_SYMBOL vmlinux 0xc5734835 current_task +EXPORT_SYMBOL vmlinux 0xc58ef16c dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xc5996ba3 inode_change_ok +EXPORT_SYMBOL vmlinux 0xc5a348e5 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xc5a37aa8 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0xc5ab8648 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xc5d33e10 journal_wipe +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5e7cb74 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc5f52646 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xc6064f6a pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xc6175d41 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xc61fe364 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xc6308688 set_disk_ro +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc63cc125 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc6478578 make_bad_inode +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc66a9ae4 km_policy_notify +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6a6ded1 dev_load +EXPORT_SYMBOL vmlinux 0xc6aec70b pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xc6b06bcb i2c_master_send +EXPORT_SYMBOL vmlinux 0xc6b1278b should_remove_suid +EXPORT_SYMBOL vmlinux 0xc6b9b062 journal_start_commit +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6e528b1 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0xc6e7548b neigh_update +EXPORT_SYMBOL vmlinux 0xc6fbae98 sock_update_classid +EXPORT_SYMBOL vmlinux 0xc70efe24 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xc7171e4f arp_find +EXPORT_SYMBOL vmlinux 0xc718e93d tcp_ioctl +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc72350c6 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xc738239e pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xc73ac435 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc788f86c sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a148fd pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ae6c56 set_device_ro +EXPORT_SYMBOL vmlinux 0xc7d3c075 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xc7e9a028 put_io_context +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7ee2bc2 f_setown +EXPORT_SYMBOL vmlinux 0xc7fd89b3 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xc8017583 dev_addr_flush +EXPORT_SYMBOL vmlinux 0xc80b8b17 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xc81ae9b1 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc881ca4e neigh_event_ns +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a145dc ata_print_version +EXPORT_SYMBOL vmlinux 0xc8b3091c jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xc8b38e9e blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b7639a agp_bridge +EXPORT_SYMBOL vmlinux 0xc8e9d244 fb_blank +EXPORT_SYMBOL vmlinux 0xc8edc0af bdev_read_only +EXPORT_SYMBOL vmlinux 0xc8f33ada qdisc_reset +EXPORT_SYMBOL vmlinux 0xc929a99d directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xc934a832 generic_make_request +EXPORT_SYMBOL vmlinux 0xc94fa003 irq_stat +EXPORT_SYMBOL vmlinux 0xc95fc38d cap_file_mmap +EXPORT_SYMBOL vmlinux 0xc9672a90 freeze_bdev +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99cb702 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9d4d4a0 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xc9de9fa1 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xc9e79ca7 dev_mc_init +EXPORT_SYMBOL vmlinux 0xc9f97f5e dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xca19102b ht_create_irq +EXPORT_SYMBOL vmlinux 0xca2c048b netif_carrier_off +EXPORT_SYMBOL vmlinux 0xca4a4a39 blk_register_region +EXPORT_SYMBOL vmlinux 0xca534916 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca7806d1 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca975c25 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xca9d0b05 sock_map_fd +EXPORT_SYMBOL vmlinux 0xcabb20ce genl_register_mc_group +EXPORT_SYMBOL vmlinux 0xcac144a3 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xcacb0550 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xcad02e35 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xcae84c50 set_create_files_as +EXPORT_SYMBOL vmlinux 0xcaf6279e sk_common_release +EXPORT_SYMBOL vmlinux 0xcb451e56 idr_init +EXPORT_SYMBOL vmlinux 0xcb48a677 pci_find_bus +EXPORT_SYMBOL vmlinux 0xcb4e33b6 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xcb502c92 dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb9605ff pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xcb99edb0 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0xcba56e11 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbd1cea4 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xcbeb52d4 soft_cursor +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc286725 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc3e3f05 register_snap_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc695e4f mmc_add_host +EXPORT_SYMBOL vmlinux 0xcc69c7fc framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xcc6f39a4 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xcc734c75 dquot_destroy +EXPORT_SYMBOL vmlinux 0xcc7f9481 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xccba0ffb md_error +EXPORT_SYMBOL vmlinux 0xccbb451e proto_unregister +EXPORT_SYMBOL vmlinux 0xccdc697e __brelse +EXPORT_SYMBOL vmlinux 0xcce56611 generic_readlink +EXPORT_SYMBOL vmlinux 0xcd255c8e pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd34d312 acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0xcd41ad5d inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xcd507b8f input_get_keycode +EXPORT_SYMBOL vmlinux 0xcd5e8f5b xfrm_input +EXPORT_SYMBOL vmlinux 0xcd75afb6 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xcd922ba7 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xcda7cdec bioset_free +EXPORT_SYMBOL vmlinux 0xcdb9d1a7 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xcdd85af8 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xcddd486f dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xcde17085 tcp_prot +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde963eb bdi_destroy +EXPORT_SYMBOL vmlinux 0xcdf636b0 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce24de2c acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce7afe46 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xceb0d850 phy_driver_register +EXPORT_SYMBOL vmlinux 0xceb78f83 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xcecd40dc cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xced36cc9 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xced7fec0 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcefdcfea inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xcf015f7b do_settimeofday +EXPORT_SYMBOL vmlinux 0xcf166016 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf2e18b9 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xcf46d6c6 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0xcf676fe9 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf716091 dev_printk +EXPORT_SYMBOL vmlinux 0xcf9a1108 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xcfa57638 netif_rx +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfd0ff75 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xcfe53da6 genl_register_family +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcff0d487 end_page_writeback +EXPORT_SYMBOL vmlinux 0xcff7523e dev_uc_add +EXPORT_SYMBOL vmlinux 0xcff79c40 single_open +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd057c454 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xd070b09b dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd092b01d d_obtain_alias +EXPORT_SYMBOL vmlinux 0xd09f06d4 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f0d945 down_read +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0f91701 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd110a2f4 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd11f3674 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xd1280d0b tty_register_device +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd147d79c security_path_rename +EXPORT_SYMBOL vmlinux 0xd172cb8d netdev_increment_features +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1b8382e vfs_read +EXPORT_SYMBOL vmlinux 0xd1c3c512 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd2147e84 __bio_clone +EXPORT_SYMBOL vmlinux 0xd21b8670 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xd2307beb xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xd2329de3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xd245a2df input_set_keycode +EXPORT_SYMBOL vmlinux 0xd24ac18f unregister_key_type +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd25f7f9e eth_header_cache +EXPORT_SYMBOL vmlinux 0xd266efe7 mempool_create +EXPORT_SYMBOL vmlinux 0xd276f795 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xd282938c simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xd28a38b6 dquot_disable +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29bb11d max8998_update_reg +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2dfec67 kernel_read +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd30f1a80 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd35e249a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0xd36baf49 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xd36da4e1 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xd371cebf sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3afcd9a tty_write_room +EXPORT_SYMBOL vmlinux 0xd3b7f96e i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xd3c08471 gen_pool_create +EXPORT_SYMBOL vmlinux 0xd3da0b30 nobh_writepage +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd41b42fd cont_write_begin +EXPORT_SYMBOL vmlinux 0xd4391057 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xd46f48e8 cdev_init +EXPORT_SYMBOL vmlinux 0xd4a961ce simple_release_fs +EXPORT_SYMBOL vmlinux 0xd4baefe3 follow_pfn +EXPORT_SYMBOL vmlinux 0xd4e8e9e8 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xd50e27fd ip_ct_attach +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd535eee1 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd57df93c bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xd58d5082 key_put +EXPORT_SYMBOL vmlinux 0xd5a503d5 serio_open +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b1376d register_shrinker +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd5ffe37b eth_type_trans +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd6196755 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xd61f2ad0 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xd629316a llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd65d69e0 bio_clone +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7001850 pci_restore_state +EXPORT_SYMBOL vmlinux 0xd716f9dc pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xd71bb744 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xd7411447 generic_setxattr +EXPORT_SYMBOL vmlinux 0xd74e8001 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd768530d xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xd779037b dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd77a3707 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd77d2dd6 dquot_alloc +EXPORT_SYMBOL vmlinux 0xd780977b __quota_error +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7ae193e inet_recvmsg +EXPORT_SYMBOL vmlinux 0xd7bd3af2 add_wait_queue +EXPORT_SYMBOL vmlinux 0xd7dcc64f filp_open +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd802289d register_sysctl_table +EXPORT_SYMBOL vmlinux 0xd803779c fb_find_mode +EXPORT_SYMBOL vmlinux 0xd818a08a __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xd822e250 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xd83758d0 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xd857f5bb i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xd85833cb __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xd85df7d4 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xd861e930 genl_register_ops +EXPORT_SYMBOL vmlinux 0xd86a77f5 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a032b6 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8b13249 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xd8ca28c9 pci_bus_type +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd936101c security_path_chmod +EXPORT_SYMBOL vmlinux 0xd95659d1 __devm_request_region +EXPORT_SYMBOL vmlinux 0xd95e402c netif_rx_ni +EXPORT_SYMBOL vmlinux 0xd964584a iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xd969b2c7 amd_e400_c1e_detected +EXPORT_SYMBOL vmlinux 0xd97889f1 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xd97da0dd __scsi_put_command +EXPORT_SYMBOL vmlinux 0xd98567e4 get_disk +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9a4ec1a cfb_imageblit +EXPORT_SYMBOL vmlinux 0xd9b764c4 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xd9b96c9c gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9c64ee1 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda286122 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xda3e496c complete_request_key +EXPORT_SYMBOL vmlinux 0xda73dc62 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda7e4fe4 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdab5883b mca_device_set_claim +EXPORT_SYMBOL vmlinux 0xdae86fd2 kmap_high +EXPORT_SYMBOL vmlinux 0xdaf3427d mmc_can_trim +EXPORT_SYMBOL vmlinux 0xdafe10fd ab3100_event_register +EXPORT_SYMBOL vmlinux 0xdafe7345 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xdb0d23d5 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb73f5aa mdiobus_register +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb9e2c22 posix_acl_create +EXPORT_SYMBOL vmlinux 0xdbb14bec serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc05fc04 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2519e0 param_set_ulong +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2fbf8f input_free_device +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc46ba54 serio_rescan +EXPORT_SYMBOL vmlinux 0xdc579ac6 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc9c3939 do_splice_from +EXPORT_SYMBOL vmlinux 0xdcc46b52 simple_write_end +EXPORT_SYMBOL vmlinux 0xdccca046 override_creds +EXPORT_SYMBOL vmlinux 0xdcdb6342 pipe_lock +EXPORT_SYMBOL vmlinux 0xdce05384 dev_add_pack +EXPORT_SYMBOL vmlinux 0xdd02f61e sock_no_connect +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd10a224 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xdd1a2871 down +EXPORT_SYMBOL vmlinux 0xdd1c65f6 blk_finish_plug +EXPORT_SYMBOL vmlinux 0xdd1f838c vfs_follow_link +EXPORT_SYMBOL vmlinux 0xdd312a37 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xdd521f5c phy_disconnect +EXPORT_SYMBOL vmlinux 0xdd5a0aa4 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xdd73a191 dma_supported +EXPORT_SYMBOL vmlinux 0xdd785666 simple_fill_super +EXPORT_SYMBOL vmlinux 0xdda7bdf3 textsearch_register +EXPORT_SYMBOL vmlinux 0xddd6fa29 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xddd740df pci_get_device +EXPORT_SYMBOL vmlinux 0xddf0110d journal_lock_updates +EXPORT_SYMBOL vmlinux 0xde01ee09 vfs_unlink +EXPORT_SYMBOL vmlinux 0xde14978a thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xde1e3627 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xde422163 __break_lease +EXPORT_SYMBOL vmlinux 0xde88176d mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdec4c7d1 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xdec778f6 ida_get_new +EXPORT_SYMBOL vmlinux 0xdeed5e80 mca_unregister_driver +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf0f8fb1 end_writeback +EXPORT_SYMBOL vmlinux 0xdf392767 security_path_symlink +EXPORT_SYMBOL vmlinux 0xdf42915f acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf4f06d2 generic_listxattr +EXPORT_SYMBOL vmlinux 0xdf507b66 fb_set_var +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf8c21c7 key_revoke +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf92cb81 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xdf9fa746 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfc8c051 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xe009a269 ps2_init +EXPORT_SYMBOL vmlinux 0xe04bafe9 vfs_link +EXPORT_SYMBOL vmlinux 0xe04dee70 tty_port_open +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bd2848 setattr_copy +EXPORT_SYMBOL vmlinux 0xe0dce97a may_umount_tree +EXPORT_SYMBOL vmlinux 0xe0e59a19 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xe0f22f57 mmc_card_awake +EXPORT_SYMBOL vmlinux 0xe0fc24aa param_set_int +EXPORT_SYMBOL vmlinux 0xe10a2799 pci_set_ltr +EXPORT_SYMBOL vmlinux 0xe1196220 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe16df5a1 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1a74ae4 vc_cons +EXPORT_SYMBOL vmlinux 0xe1af8f1d dcache_dir_open +EXPORT_SYMBOL vmlinux 0xe1bb718a napi_gro_frags +EXPORT_SYMBOL vmlinux 0xe1ea6649 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xe1efb0ae napi_frags_finish +EXPORT_SYMBOL vmlinux 0xe1fee0fb neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe204bcda lookup_bdev +EXPORT_SYMBOL vmlinux 0xe21f49ca iterate_supers_type +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24244cf xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xe2496296 padata_stop +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe26367b8 put_tty_driver +EXPORT_SYMBOL vmlinux 0xe28ba735 tcp_check_req +EXPORT_SYMBOL vmlinux 0xe29bb261 phy_print_status +EXPORT_SYMBOL vmlinux 0xe2b28266 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xe2d0e69c tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d83f33 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xe2e50c6c d_invalidate +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2ee6c32 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xe2f51b71 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe2fc4044 kmap +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe3403d3d __secpath_destroy +EXPORT_SYMBOL vmlinux 0xe34249ae clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xe3918410 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3df98b2 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe41433bd unlock_super +EXPORT_SYMBOL vmlinux 0xe4173d5a pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe44b67d9 generic_file_open +EXPORT_SYMBOL vmlinux 0xe45f60d8 __wake_up +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49196b9 sock_i_uid +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe49d1dd6 simple_getattr +EXPORT_SYMBOL vmlinux 0xe4a36abf address_space_init_once +EXPORT_SYMBOL vmlinux 0xe4bf387f agp_put_bridge +EXPORT_SYMBOL vmlinux 0xe4f50387 md_register_thread +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe51884d3 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5307f0b generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe53fb84f input_close_device +EXPORT_SYMBOL vmlinux 0xe567f86d pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xe5703a31 sock_no_accept +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57e250f __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5938884 may_umount +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5dc53a1 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xe5e12de1 netlink_ack +EXPORT_SYMBOL vmlinux 0xe5e948e5 page_symlink +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe60d3a1a __lru_cache_add +EXPORT_SYMBOL vmlinux 0xe613668d intel_gmch_remove +EXPORT_SYMBOL vmlinux 0xe61a7f18 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xe65ca144 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69ceb72 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xe6adec21 eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0xe6b3fe21 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xe6c5b5e5 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xe6c8e8c4 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xe6d76f29 bio_add_page +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f2d6db tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fc9bc5 journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe71fb9b2 blkdev_get +EXPORT_SYMBOL vmlinux 0xe73dceab sync_blockdev +EXPORT_SYMBOL vmlinux 0xe73f7752 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xe7556aae bio_integrity_free +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe77713c7 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xe78c9c2c inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7af97a8 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xe7d44a55 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d8980c pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xe7f7ffe9 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8304a3d mem_map +EXPORT_SYMBOL vmlinux 0xe834b7dd ip_route_input_common +EXPORT_SYMBOL vmlinux 0xe8485de3 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xe8543fce ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xe8642ce7 journal_set_features +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe8b3564c install_exec_creds +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe8cec689 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xe8d15ef2 skb_seq_read +EXPORT_SYMBOL vmlinux 0xe8ebf346 ab8500_gpadc_ad_to_voltage +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe988ec11 dev_err +EXPORT_SYMBOL vmlinux 0xe98a7fef md_flush_request +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9a8718b kernel_getpeername +EXPORT_SYMBOL vmlinux 0xe9c1f984 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xe9c5a3eb pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xe9d37477 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xe9eadbb9 udp_ioctl +EXPORT_SYMBOL vmlinux 0xe9f8812c mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea2c5c35 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xea5bac94 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea8a6c75 param_ops_long +EXPORT_SYMBOL vmlinux 0xea8fb41c i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea95297d scm_fp_dup +EXPORT_SYMBOL vmlinux 0xea9742f0 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeab95e7f elv_register_queue +EXPORT_SYMBOL vmlinux 0xeabb6522 send_sig_info +EXPORT_SYMBOL vmlinux 0xeabd18e2 kobject_set_name +EXPORT_SYMBOL vmlinux 0xeac8457c ihold +EXPORT_SYMBOL vmlinux 0xeacc27a1 vfs_readdir +EXPORT_SYMBOL vmlinux 0xead01d4f pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeade4f3c block_write_begin +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaf89751 tcp_poll +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb49a1e7 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xeb4c9c37 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xeb568a33 pci_pme_active +EXPORT_SYMBOL vmlinux 0xeb6d8217 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xeb7ab9d0 open_exec +EXPORT_SYMBOL vmlinux 0xeb83214d pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xeb874981 skb_copy +EXPORT_SYMBOL vmlinux 0xeb8e75f4 scsi_register +EXPORT_SYMBOL vmlinux 0xeb8f284f tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0xeba677bd posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xeba6dc00 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xebac3af3 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0xebcf4bf4 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebe90da0 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec32e2d5 unlock_buffer +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec51d6a4 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xecad27fc pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xecb13746 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xecb3a5e1 clocksource_register +EXPORT_SYMBOL vmlinux 0xecb721f1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xeccd7936 fail_migrate_page +EXPORT_SYMBOL vmlinux 0xecf9f431 ip_defrag +EXPORT_SYMBOL vmlinux 0xed00b278 mount_ns +EXPORT_SYMBOL vmlinux 0xed2b392e dcb_getapp +EXPORT_SYMBOL vmlinux 0xed2dfddd blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed3285e6 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xed5cd2f9 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xed61e27b tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xed69ac5e simple_empty +EXPORT_SYMBOL vmlinux 0xed726913 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc4ebb4 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xedd0f838 module_refcount +EXPORT_SYMBOL vmlinux 0xede6362c mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xedeaa3e3 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xedf4004f ip_setsockopt +EXPORT_SYMBOL vmlinux 0xedfb5159 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xee193398 dquot_resume +EXPORT_SYMBOL vmlinux 0xee2c0cfb free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee323ab4 register_console +EXPORT_SYMBOL vmlinux 0xee3a137b cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xee53373c tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee82d27e agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xee85ad87 fput +EXPORT_SYMBOL vmlinux 0xee873c5f _dev_info +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeac4479 pci_assign_resource +EXPORT_SYMBOL vmlinux 0xef1c82f1 block_write_full_page +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef372787 pci_dev_put +EXPORT_SYMBOL vmlinux 0xef3b9f80 vmap +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef3f525e bd_set_size +EXPORT_SYMBOL vmlinux 0xef4961c9 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xef4cba51 tty_vhangup +EXPORT_SYMBOL vmlinux 0xef556b02 dev_uc_del +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe6b456 tcf_register_action +EXPORT_SYMBOL vmlinux 0xeffbe994 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0040079 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf0162a5f sk_wait_data +EXPORT_SYMBOL vmlinux 0xf03c1bfc ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06f0f4d sockfd_lookup +EXPORT_SYMBOL vmlinux 0xf0753c24 wake_up_process +EXPORT_SYMBOL vmlinux 0xf09c2922 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xf0a1b018 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xf0ac6fdb free_task +EXPORT_SYMBOL vmlinux 0xf0d959f9 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xf0eeb7d3 wireless_send_event +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f790e3 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10b318a blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf12a5c83 idr_find +EXPORT_SYMBOL vmlinux 0xf174e5a1 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xf17bf461 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xf18d674c dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19dec76 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xf1c3d4f9 phy_stop +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1faac3a _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf20dbd6d unregister_netdev +EXPORT_SYMBOL vmlinux 0xf227d62c __blk_end_request +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24e35d4 dquot_transfer +EXPORT_SYMBOL vmlinux 0xf26aad4d sock_no_bind +EXPORT_SYMBOL vmlinux 0xf28ed6e2 machine_to_phys_nr +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf29dfa15 inet_bind +EXPORT_SYMBOL vmlinux 0xf2ab0732 task_nice +EXPORT_SYMBOL vmlinux 0xf2b01dc0 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xf2b2fd10 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xf2bf3261 free_buffer_head +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf2eb3169 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xf2eb5c30 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf32055e7 dev_base_lock +EXPORT_SYMBOL vmlinux 0xf32457bf ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0xf331a08e spi_release_transport +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf338febb __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0xf33a9190 sk_filter +EXPORT_SYMBOL vmlinux 0xf34131ee __register_chrdev +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf359ce06 do_sync_read +EXPORT_SYMBOL vmlinux 0xf35ed1c9 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xf364f426 __block_write_begin +EXPORT_SYMBOL vmlinux 0xf37260ab _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xf37563b4 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf392dd95 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3a0f4f9 journal_abort +EXPORT_SYMBOL vmlinux 0xf3b82723 vm_insert_page +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ce3d6e path_get +EXPORT_SYMBOL vmlinux 0xf3cf6de1 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xf3d0de82 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xf40c0bba sock_no_poll +EXPORT_SYMBOL vmlinux 0xf41606f9 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xf42ea0b3 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf45349a0 d_lookup +EXPORT_SYMBOL vmlinux 0xf45c7f6e add_disk +EXPORT_SYMBOL vmlinux 0xf47f8e6b security_path_mknod +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf48ee255 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0xf4937684 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b201f1 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4d805d1 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xf4e686e8 make_EII_client +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f19e51 downgrade_write +EXPORT_SYMBOL vmlinux 0xf4ffab89 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf52c8353 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xf531e9d0 pci_ltr_supported +EXPORT_SYMBOL vmlinux 0xf533957f pid_task +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf541c615 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xf5433d6d blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xf54a3f68 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xf55445b2 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xf56e9a36 inet_shutdown +EXPORT_SYMBOL vmlinux 0xf58869fe nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xf58eb3e5 led_brightness_set +EXPORT_SYMBOL vmlinux 0xf5b96c9e pcim_enable_device +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c47b72 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cf326a param_ops_short +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf612809a param_get_int +EXPORT_SYMBOL vmlinux 0xf616eef1 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xf6339317 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf657dd54 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xf6744969 __f_setown +EXPORT_SYMBOL vmlinux 0xf675b7f6 netdev_err +EXPORT_SYMBOL vmlinux 0xf6888196 dquot_file_open +EXPORT_SYMBOL vmlinux 0xf697e807 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ca9274 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xf6d59d55 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xf6d8d826 init_special_inode +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f2a519 mmc_can_reset +EXPORT_SYMBOL vmlinux 0xf6f633fb simple_statfs +EXPORT_SYMBOL vmlinux 0xf71e90b1 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xf730cb13 mapping_tagged +EXPORT_SYMBOL vmlinux 0xf7329142 thaw_process +EXPORT_SYMBOL vmlinux 0xf73a1c3c no_llseek +EXPORT_SYMBOL vmlinux 0xf74261e8 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xf747dd44 kstat +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf78af32a dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7c42cea netdev_change_features +EXPORT_SYMBOL vmlinux 0xf7d214df inet_listen +EXPORT_SYMBOL vmlinux 0xf7de5ef8 spi_attach_transport +EXPORT_SYMBOL vmlinux 0xf7de7cc7 kill_pid +EXPORT_SYMBOL vmlinux 0xf7e37635 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xf7fefff3 genphy_resume +EXPORT_SYMBOL vmlinux 0xf803792b __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf8190089 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf84bba56 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xf84d3566 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xf85294c9 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xf86cd894 find_lock_page +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8a74f84 generic_fillattr +EXPORT_SYMBOL vmlinux 0xf8c5513b serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xf8f6f628 mca_register_driver +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf94d287f register_nls +EXPORT_SYMBOL vmlinux 0xf95d72f1 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xf97456ea _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xf9796d58 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xf99a2809 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9cd1b77 fsync_bdev +EXPORT_SYMBOL vmlinux 0xf9db43b6 kset_register +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9feba3f tcp_connect +EXPORT_SYMBOL vmlinux 0xfa06ea4c sk_free +EXPORT_SYMBOL vmlinux 0xfa096ed8 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xfa1790a5 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xfa1a6c7a filp_close +EXPORT_SYMBOL vmlinux 0xfa1b300a bio_init +EXPORT_SYMBOL vmlinux 0xfa30957c mempool_free +EXPORT_SYMBOL vmlinux 0xfa380f09 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xfa63733c file_update_time +EXPORT_SYMBOL vmlinux 0xfa6f8b01 set_binfmt +EXPORT_SYMBOL vmlinux 0xfaa77011 tc_classify +EXPORT_SYMBOL vmlinux 0xfaf3d563 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xfaf49712 mmc_do_release_host +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfafe56f7 iterate_mounts +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0842aa register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xfb1be686 ida_remove +EXPORT_SYMBOL vmlinux 0xfb45ef73 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xfb4b74f0 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xfb58f16e journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xfb6298d8 mnt_unpin +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7725a4 generic_show_options +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb89be95 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xfb9adc79 kill_litter_super +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb82b88 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbea587f cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xfbf5f03a jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xfbfb6416 revert_creds +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0aa038 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xfc0c4388 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xfc1cbe59 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xfc1d4dba da903x_query_status +EXPORT_SYMBOL vmlinux 0xfc263537 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xfc30813e __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfc575bb0 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xfc5e7d5d eisa_bus_type +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc7e2723 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xfc802c3d iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xfc872fd1 get_ibs_caps +EXPORT_SYMBOL vmlinux 0xfc90ecec sk_alloc +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcb2c404 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xfcb44d71 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc774cb generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf61a29 vfs_writev +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfe0ac7 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6b3d0c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd6fca6a i2c_clients_command +EXPORT_SYMBOL vmlinux 0xfd747875 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd8ca6bb __elv_add_request +EXPORT_SYMBOL vmlinux 0xfd91a2dd pci_enable_ido +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc7f3ba idr_replace +EXPORT_SYMBOL vmlinux 0xfdee7d42 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe01d3a2 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xfe20430f rfkill_alloc +EXPORT_SYMBOL vmlinux 0xfe5c9857 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe8c13b5 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xfe8cbcde bio_copy_kern +EXPORT_SYMBOL vmlinux 0xfeae3ddb generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xfeb6cfec ip6_frag_match +EXPORT_SYMBOL vmlinux 0xfec03ee6 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfec7b9e4 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xfed6293f vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2c3263 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xff3297e4 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff4d1c2c block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xff53d395 input_register_device +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffcb0e2d __nla_reserve +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfff33c73 kill_anon_super +EXPORT_SYMBOL vmlinux 0xfffde4f6 inet_select_addr +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x28afd262 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x6f068d90 twofish_dec_blk +EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0032520e kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00e08c3b gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x05ef732d gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x05f754cc gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0a3526d3 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0a70f572 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ae5be79 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0cc3052d kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f59d154 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0fe8e797 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x116457ff kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1202e9d4 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12ce07b5 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x140f6e1d kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x181b85ec kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c7afd50 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cf2ffb2 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e2ee42c kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1fdcdf67 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a2c2c5d handle_mmio_page_fault_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c6d0cfa __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e1540ed kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31 kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x301b750b kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3948584e kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3f15f9b1 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x44779b7a kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x45689b1b kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4bbe7f4b kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x549a0757 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x57f94936 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a42d089 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f8b63b8 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x60ba5bee kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x60f9e9b5 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62821d36 __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6439596f __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67431b8b kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67a7c301 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7008967f kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x706cf582 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c9b19a5 is_noslot_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7ca7e22f kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7e4054b9 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7f248d11 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x822ed17d __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82788a83 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x84f4d206 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x865bd09c gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x86700858 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x87ce8a48 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8bf95ca3 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8c319663 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8d6fb7da kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90c4970c kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90ff1656 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x922c06c5 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92daf6e1 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9ad63c67 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa1065ea4 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa14a0f14 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa18e90ae kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa23cff8f kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa4472272 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa53c56e8 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa64fd47d kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa6520825 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa91845be is_invalid_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9c75a9b kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xac0be22d kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaef6534a kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb46624e0 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb5397aa4 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb63b6605 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb8079ed6 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbaae81df kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc33d087 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbfafe0c3 __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc33e1c6b kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc65fa6b6 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc98ab3e1 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc9e879ab kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcacee6c1 kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xccfd49db kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd29c70f7 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd91510c7 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xde573785 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf9a3c02 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdfdcdc9a hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1b57793 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe40520db kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe65ffe50 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe70bf06c kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeaffc9cc __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee8ff414 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeea6ac4e is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf28c1519 x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf3423fd9 kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf3708850 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf5c5ad14 gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf8ce783b gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa4251e6 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfb6ad588 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfbbf0add kvm_requeue_exception +EXPORT_SYMBOL_GPL crypto/af_alg 0x03ce9d81 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x34cbbef7 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x752830e0 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x7e7cde9c af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x852d92e3 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x9f1fd8e2 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xc41781c9 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xefb1d1ca af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x445e54a5 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x33c3e3e0 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x8f8aa138 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x85995267 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xbc5d8533 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x541792d0 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xb5297d10 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xbf71100e __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd728ad78 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7fbcb578 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xa4c2696c async_xor +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x4ebe4203 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cryptd 0x27d9d4c9 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x2ece29a3 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x3c51e8dd cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x6a4dc4ea cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7f355eec cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xa4f97822 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xa5adc396 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xae1bc67b cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xda44cdf2 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xffb6e86e cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x0adcf80f twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1c8984c7 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x87bd07bd acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xb9a141b0 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xe1372311 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x4c659631 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x9f2a42e4 __pata_platform_remove +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/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/bcma/bcma 0x03097225 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x037635df bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x05e02866 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x12f303ee bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x44906bf1 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x96e04d5c bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc5f3328c bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd2d9255f bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd3a57bb6 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd5b41167 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xda0c6062 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf1c6db91 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf24da4c4 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00c3068f btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0c8324fd btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1e62d210 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x29879e5c btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2d397b3f btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x44f64f6b btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6252bd22 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xda5e614d btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0x01697018 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/dca/dca 0x17b88b87 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x559116b0 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x591f7b73 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x98c877e2 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xb88f18ed register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xc962dde9 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xdc1ec698 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x177a6e79 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3727af91 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3e6cd182 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3fea2d20 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x46dbfd57 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4dd25119 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x626c9bf4 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x63a74ae0 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69480aaa edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6abc3289 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6b99fab6 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6f96bb72 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x73e60793 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7a784807 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8124b439 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9984ac0e edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa0a54108 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa5f35ec2 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xab49a9fb edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb54c71cc edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb6925656 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb9ca0483 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcce909ae edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf2882ef0 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf4c6880d edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0d38cee6 amd_decode_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0dc0b68c amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x6d4e6991 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2b73a3a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xc0bb404a cs5535_gpio_setup_event +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x9354e783 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xd4d3e19e bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xf0f96b84 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xfffc4988 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x92f77792 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x9aaf77e7 drm_class_device_register +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/hid/hid 0x031d3b06 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x17f11223 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2893df89 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2c204f44 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2d3b498f hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x434b412a hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x47871ea9 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5bc2b8dd hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5e7cd508 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x66aa600a hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x675cfb05 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x734e7edb hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x77268728 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f7ce775 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x878aa3b1 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x89e01aa5 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8ee2b1f6 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x922e3d54 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x97f5851e hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9aea338d hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa521fc98 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa5b82bc3 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa7a5e640 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd96cb431 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdb671f69 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe27daf73 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x1243b7de roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xbe22148a roccat_common_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xc72c162a roccat_common_send +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0332aa72 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x86e7bec7 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xdc3fc7f6 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xf648e6f7 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x0aa9d15c vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x0c3f3738 vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x286338f6 vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x5e9baf74 vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x71a9a048 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x7218bc59 vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x7cd60ccc vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa2b025c2 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf10fc5c7 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf118bafb __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x249b5365 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x4157d0b9 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x44dfe526 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5fc7f3cd i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x8a41ca4a i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x9906ea3b i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xb9c2b427 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xe5082925 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf8c2f8a3 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xb495e647 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x6cfcd892 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xd17635d3 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xbb9f5fe2 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xd1c03359 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xfbd48f6c input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x604968d8 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/touchscreen/wm97xx-ts 0x3d58bc9f wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x468d43a2 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x52341154 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5b335ef8 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x694941d7 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x88e7dbb0 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x97995e66 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa1857ca1 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa7e9c7fe wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd65692d6 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xeaa51dc7 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xef7957b2 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x00b55cd5 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x10dc5783 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2b7f5d22 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2e0908d2 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x308a362c gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3f74b41f gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x625fe91f gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x64782ba7 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x65828cf5 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6a9f9c70 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9cfaa541 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa4d6ccbe gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa7e4f9a9 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb137afaa gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc33641e2 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xeb71c9b1 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf177eb41 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x285e63ab dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +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 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +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-multipath 0x94d06608 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xea79636e 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 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x39f7972f dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x67356913 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x80f9549b dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xde27c20f dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xeb05f928 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf629e1a6 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x03ced457 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x08a936ca dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5233c835 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x61c7c085 dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x63b2ff62 dm_btree_insert +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 0x72289260 dm_block_manager_destroy +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 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa6aae3ea dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb967690a dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbaa513b0 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbc5fe7c1 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca2bde4d dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xccaeb9ae dm_sm_checker_create_fresh +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd32479bc dm_sm_checker_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdb562135 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf99dc2cf dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/raid1 0x1ab4143a md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x76388e0b md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1959cb23 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1ae0eb43 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x22d34228 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x56b6afd3 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x699e052a saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x776faad0 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7c6b5cce saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x97734a8b saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9ba7dba5 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9f547758 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xea1003aa saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x11f25f85 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x189f0f28 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x27278d0c saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4b92cc91 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xb26f6d58 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xd75f63e7 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf44f1a91 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x31f6adf8 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xfdaafd0a mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x7e7bfecf tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x542348a5 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x8a5127d0 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x9266418f tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x41eaf86c tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x44828352 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x5604daa9 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x5e0c424b tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xdaa9e1da tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x87a45fc8 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-demod 0xfc34bbba mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x67a9a49e mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x0c177fce tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x40a77ed3 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x43342a5b mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6be9dbf2 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x81c83577 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8f43ed4c mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x969f6c26 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x99886efb mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa08c0665 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa3025255 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa3b20bc8 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb009bf35 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb91af31f mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbaded33f mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbdd50067 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcd263020 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf8bb0e53 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xffea945f mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x022cfceb smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x029ccb45 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x197b80d7 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x352d65b6 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x421e1cab smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x50a455fa sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x51fbf0d3 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x64793a9f smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x70f8e81b smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x76222253 sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8bd62dc8 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb18746d7 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb4752ab2 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcf0bcf00 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd40b918c smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf1497478 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf30f6de9 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfa8861c6 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x3577c9f9 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x5a60b0d8 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x87138044 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x9f0f1be8 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa89a7a5f ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc8d84a6e ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xfe88be83 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x05a44032 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1f7b45ca rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2c530702 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2ea79746 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4d51fbaf rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x58c29b1a rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6700cb92 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x817b8453 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x89fb6af7 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8b90e886 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa117a876 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb4fcb11b rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb9c9b6ea rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbfe05139 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd67ab0bb ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfb530074 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfec8cf8e rc_map_get +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x14b989e5 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1d582e19 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x208d2bb9 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2939f38f cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2e2bff56 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3391cf93 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x49f85c1e cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x52253787 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x533f1bbf cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x8322536b cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x96d36657 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa1aee47b is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcb70fc2a cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcdbbd284 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd24df1e2 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd423a3ba cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd586118a cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xdb7cd62b cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf39789eb cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xa528ee9a cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x01ab2cf0 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0736c3b3 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x27b3509b em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x4951e0cc em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x6e57fc6e em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7ca98241 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7ffb533f em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa2502cc6 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf528f812 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf77df3e4 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x5d19b21f saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x6650a577 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x876c981d saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xc6715c54 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xfdb20f2d saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x68b2877a tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x73b50f9d tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xc0b45c90 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xfee3b3c5 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x098c43cd v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x1fb781bc v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x6d8d899f v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x9261df22 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xb1bc93a2 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xfc6f7414 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x05e426be v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x0c001422 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa6e9c7a5 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb683f8c3 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x07f40649 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x09c4986a v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x19d40b45 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x316b3dfe v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x597501ff v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x83454b55 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x96b7d81a v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa0f43753 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xcbde63da v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xddd7cd0d v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe7ee8af9 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xedd633e0 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfc7e9414 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2387d13b videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x277783e1 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x35a67564 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x36bb516a videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3fead28c videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4032c3fc videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4574ea90 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x64ab2544 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x69438f0e videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x78468443 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x92b040ac videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9ae6d45a videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9c5f0616 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9f114cf0 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa1574c43 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa28c24a8 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa6081ae1 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaea2487f videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc3b7914d videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc4311ebf videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc47e5c00 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcc29b846 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xde0b9182 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xefaa8ccb videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x8b672eed videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x90ebda89 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xaf8b37a7 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1b52f63d videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2abbfe1d videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x99e072bb videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9b07b53d videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa4eef7a2 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbb6260c6 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc4128ae1 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe512eaff videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfa6fb470 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x254f7b37 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x2e952a09 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x6e01b18a videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x026df1c5 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x06163b90 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x1fc1b68d vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x29f472f1 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x2f1cebf6 vb2_write +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x36ee082e vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x398f79c5 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x3ef7bfb8 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x52795cc5 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x5e7fa1c1 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x85167fee vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x85e2519f vb2_read +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x907f1ef9 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x96f79eef vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x98c96e0c vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x9e896ca8 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xf8a043f4 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x4adfd5a3 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x9a979035 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x0c23f682 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x86330672 vb2_mmap_pfn_range +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x8ac963ca vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x9c36b6dd vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-vmalloc 0x7d392680 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0fee7385 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0ffaa552 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x12166e7a v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x17c5dbeb v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1a35524d v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2cd6621a v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5712c1a4 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x69434ab3 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6d6c33e3 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x731a61f4 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x885aed23 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9670473e v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x989064c4 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9c523f10 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9ea836fd v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9eefc5dd v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa7683ddf v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xad10492f v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb503944b v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbbc7dbc1 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbfd08f0b v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd4ec3b27 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x01a33859 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x02aacf8b i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3a7a656a i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x44a81056 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x50f72ced i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x5c5b8961 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xe40c043b i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf956e257 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x29d1d107 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x07732157 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1debbb05 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2a36b8fb pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3d4962ee pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4fef7af8 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x88d72180 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x93aecf78 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa3514e81 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcbfafa3e pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdc05f8fe pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf61ab8fb pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xea113bca pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xfbbc902b pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x0566bf54 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x4c9b6e6a pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xa19725da pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc6b83983 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xfe33936a pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x397218c3 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x41716def sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x99719c91 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xcb810690 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe81a92b4 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x86be1ed2 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x06d21832 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xa5581d27 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xd4cc70df wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xdd01f17c wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x21be6bad cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x6976ee9a cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x95c60b27 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xf134e487 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2a66e60b enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x311ca093 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x6b96abc4 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7ffc4c26 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xcd619db2 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xefb47de3 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf9b76ae6 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x14bb6546 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x3b437a5d lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x40c5e326 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7213a0fc lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x82d43954 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xe6850e7d lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xea3825fe lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/pti 0x19f09b98 pti_release_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x23bde487 pti_request_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x52a78e81 pti_writedata +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x40f30a93 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x6251f389 st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2b037041 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x470c68b8 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5f6fee58 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x632dd42b sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb62691b7 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb861e0ef sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd4601c03 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf6bf41f7 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf6ec68a4 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x23a2cb5f sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x2fb029cb sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x38665158 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x7f0b5217 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xa9c65a63 sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xfbe80b40 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2e6de9b9 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x5107014f cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x781dfaec cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x05003c93 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xa832ffbe cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xfa0708f8 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xcedeecb4 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x0644c72c cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x26685308 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x2956d0f0 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xd3d11515 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x979941d4 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xeed8f954 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x04c43548 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0b6e2cf8 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x197e6bd6 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x24c4fc44 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x29d04789 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4f161d14 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x60f7c516 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x63874dc8 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6cc01adb mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x818f9353 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8e1d1f95 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9640477e mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9b7def8b register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9db1359b deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb80b3a73 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc41c787b unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc9077ab8 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd85ca343 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xde346e76 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdeb04648 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf34cd2e4 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x1a3fc693 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x21056e90 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x78fc43c6 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x84e03b54 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf8ecd91c del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x11020e93 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc2bcec0d nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x2fca3c1c sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x3e4037f4 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x5585447c onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00c8ff5d ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x08758c59 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0f060827 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x458e08e9 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4c95501a ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4cdcc7c0 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x59005c0b ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5abe1d34 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xaf67c37e ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb0c90284 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbfa19b91 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xecd6d88c ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf28dc356 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x200ce86d register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x68fe44b1 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x8acecc13 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x93c763d6 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2218a4e5 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2334ba53 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3b981c69 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5856c7e3 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6c056314 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6c20e298 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8d505801 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb25b2bb3 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc80c584a alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd3809d6b unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd856af03 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdd03fd0e open_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x024d2ab7 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x049bbbd4 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc48d6f26 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xed896d68 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06fecb33 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x07e7fc49 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x095ba970 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x096408b9 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a18c3d9 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dbe8fa6 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f459e5c mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13dd034f mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13de1054 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x156df131 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e08750d mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x244f408a mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x253f9f05 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a217e60 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x340d6200 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x379ef8d0 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a581aee mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3dddd608 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f7e8bb0 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x448205fe mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4974fdfc mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a124c63 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e8d1020 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x514734c3 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54e0a95d mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e2bd520 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e82e417 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x68606d17 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x691e1e79 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a894253 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bc68b8e mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d365021 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e907ae4 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f01532c mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x726c19c1 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7388ebf8 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76bf9354 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b522a63 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e1a0e30 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81018489 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ce87cbc mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8d0d08be mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x91d20d61 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95fdc041 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ba22818 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9dad3ff3 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa07299f2 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa32635a6 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8535b71 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaae2076b mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xad4d2780 mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xada71845 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb34d29d0 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb542152d mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5bb25ed mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb623e277 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6d341ce mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb86ed92b mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc73b1f13 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd015693f mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd07bd4ba mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd30ea038 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd42e011b mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0c15ded mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed21f5fa mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xedf7e3c5 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2886d3d mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2e37153 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00a9263c macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x58d45011 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x68c14d86 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x98ac8bcb macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcbdffc3b macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x0a23a467 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x031ba634 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3a93dabb usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7debff94 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x95f1d52f usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0063469f rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x301df930 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x36e19472 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x374531b3 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x655978ec rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xeaa971c5 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x01a93c66 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x043399ef usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x07ec5e5b usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0ba44989 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0bc0503a usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0f8b30ca usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1dcbb1de usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1f6b521d usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2cf0450f usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2ecdb54b usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3378bf90 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3fd9e2fa usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x511f96cd usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7c5540e8 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x80f20336 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa14aacc8 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa7033ada usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb04db28e usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc8f080c0 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd6e61c23 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdc08624e usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xece31dc4 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf61fd3d2 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfe6f7e2e usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1139899e i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2143a2dd i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2fc3aa29 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3107361d i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x43dbb1a3 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6212a4df i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x742fbca7 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x90da88a9 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9593e31d i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x99b1be7e i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb4f98a0f i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbda93d6d i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcb0e208a i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xde132c2f i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xeb932f04 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf995e139 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x5bfe9ff8 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x023fdf9f iwl_legacy_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x4b0a61c6 iwl_legacy_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x78feff3d iwl_legacy_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x7b441986 iwl_legacy_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2e5bfbe3 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4cf1cff3 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x68313166 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x763ac6ae lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x77b249ee lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7929adf8 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7aea784d lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7cec3d14 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x81bc6d97 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x901e76ba lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9ee0e9dc lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa51600a9 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc4284162 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc87ca990 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xce200aea lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x145d5438 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x172333e7 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1845dd2d lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1c44dbf4 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6c8b8e0b lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xabb7f936 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe15c88a0 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf567b6cb lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x1f713d4a if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xe88b4e76 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x106cf987 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3ce19e28 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3de2378b mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x69502cc3 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x6cb3818d mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x731891db mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x922b7014 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa042cae6 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc2233e76 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe9df124f mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf4dd9938 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0768dd2d p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2b9d120a p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2cf44d4e p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x81972543 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9a7cad96 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbef97132 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc6f6e4c2 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdafe9d38 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf4ed66a3 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x089672ae rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1068d646 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1392cb71 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1429fc11 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1844eccc rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1d54d4be rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2a1fcf02 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x30252de7 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x316c171c rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x31e9e976 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3ac0e967 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4a6a4307 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4c70cac2 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x510a9703 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x51d794f7 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x53329035 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x57dde48c rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5b0fd831 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x65878c0e rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x66305843 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x69d440c8 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7291e6f9 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x761a4eb8 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x79a3ea2d rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7e76ec3d rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9bb53a99 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9e7a226c rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa5e0ab7f rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaa19c7f6 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbf479f3a rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc4811565 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcd487330 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd8cc51c8 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdf7073e0 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xed7ec2d1 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf56a7c34 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf6c832f0 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0735ed20 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x085f6a62 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x08ba60e9 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1c64c1a6 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1fc95ba5 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2084fe49 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x23704d58 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x26bd94d4 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2d01ec36 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2d491cb0 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x32899a2c rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x354f1a3e rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x356f344f rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3a155e81 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d079960 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3fdf0ee3 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x45427e29 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4601313c rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4dee7fc2 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4e036d81 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x539fb05d rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x58b73185 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5dc17679 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x687ffb44 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a76e1e6 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6c47ab65 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83ca87f1 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x85da971b rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x876db64b rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8b4b6710 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8bf3713f rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x92c750c7 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x931d9668 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9be02e7f rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9e456056 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa775c865 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaa2706e4 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb4b5f4e4 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb52fe7ef rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb8e99ae7 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcdde1c28 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf1a9f6bd rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf1fdc5d5 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf585b5d0 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf92f3795 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfe15cf57 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x01469a9a rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1d96b54c rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3c4d80d4 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x63158f6a rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x85927bff rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x85a57af9 rt2x00pci_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x86047826 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8715bbc9 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xabd74468 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0147b409 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x26568657 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x285ec60e rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4e94bca3 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5518500c rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5632ebf8 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6554d958 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x839b5a1a rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8531ec1a rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ccdf298 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x90b59adb rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xac7deccf rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb940be48 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbd857f1f rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc79d1850 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd626004d rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x18e7fdc6 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x818994d0 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xb21a4554 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x0267a8c1 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x25f9633b wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x5eaaf6b3 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x9a4da23a wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa4781fbc wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26 wl1271_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xeaff1359 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xff6d1a34 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x2b3895ae acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x7e84bd1e acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x27d449f1 asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x57c8d376 asus_wmi_register_driver +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 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x26dceec8 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xa8910a47 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xe81faa6e pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x01e8c164 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x29ee885b mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x401daaad mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x6cdd64a9 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xc5fdc961 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xd64bbfc1 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xfa63ca50 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x1ee0f5d2 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x800c647b wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x975433f4 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa17ae693 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa53b2fe1 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc3183154 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x44fdbb77 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0360b8d8 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x065defdb cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x073bccbf cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0fe2a07e cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x19544a6e cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1a1bbed8 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1acb09b7 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1bfe6861 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1dc9a419 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2cfb7d51 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2e66d764 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x34e44405 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x39ff81b4 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3d0014dc cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4494134b cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4f1d4e65 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x534a4913 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x684ba091 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6dfba2e9 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x765117eb cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x80045ee1 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8077a108 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8b6940dc cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x977750e6 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9a964776 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9ce6b9f9 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9d9a3ee3 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa2ae7c07 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa90a4b4b cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xab4744b4 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xac432d34 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xac9137a4 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xae00b899 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc265c5a7 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc48f4826 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcbeef463 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcc2c31b8 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd0d19777 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd1b5c810 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd5439cab cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdb97955d cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdc8fee45 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe1bae109 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe668d9c5 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeac0641f cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1545f10d fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x21178542 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3399d476 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4f836123 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x525006e4 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9af5ac0b fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9ce38416 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa996ce39 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc3f321e5 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x17b72d1d iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x326112cd iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x41a14226 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x4dc4668a iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x8f7d9184 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xc28a1258 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x070c4dde iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c1da5a6 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0ec36b57 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x105d24f5 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1916cc4a iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1babb040 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x282e0ac7 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ac6591f iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2cf4314a iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x330d0a67 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x33480668 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34d6dce8 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b255fcf __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f43a13b iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41cacb30 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4975ae7e iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x499a5852 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x537314dc __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x64ac2dd5 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x65e23d0c iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6adcc1d0 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6bb52ab6 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x778fb7d4 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7ce5244b iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x82907905 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x865ef769 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x914250e3 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x98f5f0ac iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa15c4e69 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4437c06 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4c266e1 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xac421748 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb0a4a6b6 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb0d86686 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb50624aa iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbb985eac iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbda85e68 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xce7cc7ed iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0792025 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3126003 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf25bcf60 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfa6b2791 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff02675e iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1ff87762 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2af231ed iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x547007b6 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x717900aa iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x739dde47 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7a1a80b0 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7a1f53db iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7def7a2d iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x82c982c7 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa76cbec6 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa7a51826 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc868c76c iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd00111e4 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd32538d8 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe56e89a5 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe5cad24c iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1578a223 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x24c892d4 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x259fee25 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2ce7d4cc __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3f0dd4f3 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5c6d1f02 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5dc3e54a sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x610a4a4e sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x63448987 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6dcaf4a0 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6fcd912c sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8862ce75 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x90c5d5c8 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaffa9de2 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb1ec1818 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb7e57c3b sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbaece44c sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc1b1c927 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd1060293 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd731898b sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xda4831a5 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdc6ed744 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xef016174 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf8a28122 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xff50fa4a sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x57456b01 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x62809a5f srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x62fd7975 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x635f678b srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa3e4abd6 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xaa9649ee srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x012f954b scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3e6572f7 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4778d301 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5492fe22 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5b5235e4 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x669108e0 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb28e96f4 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd8c4698e scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xeefb6e91 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x04586e8b iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0eebdecc iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x17c535d6 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x25e49001 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x38c0771b iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3f064881 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3f59a0a6 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x40291acb iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x554c3b66 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5c9338b6 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69265619 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x76b8955a iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x92f5c6eb iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab214ea9 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xad1ad9ad iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc1cd3dba iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc297a38b iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc301c658 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcbf254e6 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd2d7a022 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdb94411a iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe93ea757 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed439de7 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xede89312 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf1629cc3 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf2f024e2 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xff0261ed iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3f8fcd42 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xa4b4c426 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe546685c sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xee773885 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3d60bc90 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x47a120ab srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x6ee71d26 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc62b1e97 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd8bcd35a srp_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x1a80ec3d spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x426ede38 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x4b08cf02 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x4bbe5b5f spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xbf78697b spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xf49a29c4 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x18135c11 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3c93b0a3 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x44d27b30 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x59a3977e comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x62dca01f comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x2ad71bdb das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xfa71f734 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x2bb8f9b2 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xc30f2dde labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x07801192 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x144b31a3 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x2f035997 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x313e2aa9 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4a7d05c1 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x5a118543 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xbbf3cc64 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd61f58dd ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x1cacdbeb ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x53372dee ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x6e23c3db ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x8adbf5a3 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x9c2b25fc ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xc5cc38e5 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x6a137028 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x6d427fc9 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x75e653ab iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xe8fe9590 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0x35b85807 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x260e1ab6 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5f23a9c8 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6d6bac75 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6e3ec0c4 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x71d87acf serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9fe5e77c spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xce56e8c5 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xcf8492e1 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd3d3772e spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe4f95a5b synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xedda1b30 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf62d9d79 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x001e9d99 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0e51106f dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x192e9aaa usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x22ae9c24 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x54025237 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7af0a087 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8646d083 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8f47141c usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa668e12e usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc8063c16 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xcc6bc4cc usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd0709090 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xefe631ab usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x3d64ab08 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x4aabdcff max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x7dd44d32 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x7e133b7e max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xb9842ab7 max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xe00b6129 max3107_remove +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1d788d2e uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x99f00be9 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xfc7e047d uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x9ef57c42 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xe1ecef83 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x3cda182e usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x40605ed5 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xa2a8f2af usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xc2b771bc usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x029ad928 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x040930d0 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x347283e7 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4ea7e761 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4ff07458 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x81eb8b43 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x875f2fc4 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xab26bba5 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd8ba9871 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0639ca1a usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x14c57ca1 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2fb5958b usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5282d663 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x592e7de4 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5afa1076 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x736e1c44 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7b31f6db usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9781b3b0 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9908f97a usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9dccdf30 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xab48f820 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xac46e7b0 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xac55c322 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb2c09c08 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xba1cc72f usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc2788b9a usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf82c073 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdfb70c3f usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe4826b34 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xeeb850ae usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x050bbffb usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0a12d626 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0b4a89e1 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x156b757e usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1729613a usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1ce161d0 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x217e1eb2 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2a37f10c usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3225966a usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5c6185c5 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6c0fc9e2 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x702ef0e2 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x827ec1e6 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x82d8308f usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb308d569 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc1e537f1 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc916a79b usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc996fed5 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcee4f729 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd1a02d69 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xebef9629 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xef8e2f29 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x13d197ff __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2bd6071a wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5c730a8f wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x76cf00d7 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb709baba rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x095b26c5 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2c59cb46 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2d7086d0 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5b7f0c7f wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x73171809 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x874fd856 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x92241f41 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9cf3aaee wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa3804726 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xae5a25ae wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb49d78b9 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xba25ad60 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc60684cc wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc75c304d wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xddfb307b wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe7dd13e0 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x1d504059 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x4b6bbe02 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x6d1c5d9f i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x5b57bbc7 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x5d48be13 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x7855ec10 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x85ef9db4 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x964b0013 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9d26b216 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd1570775 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd791a3d4 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x15979896 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x16b1d0a3 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x19860015 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1fbd03ca uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x21580d90 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e03f3be uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x36d26dce __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x51fe4bfd uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x541325fe uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6515f73c uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x68cffd29 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6a6fcf4e uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f06c993 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x729d1d71 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7403b318 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x757bd4eb uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x772569c8 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x776a79b9 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7c067600 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x841a32b3 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x87e4a52d uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c648363 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8ed9a6a7 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac55a4c2 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xadc5ecb6 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbcce3fe2 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc3d14878 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcff649c1 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd1615b90 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd2ce490a uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdc01dd12 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdd655a9d uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xde41cfa8 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe07934e8 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe92051fe uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfd7baf0a uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfeef74ab uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xded4070e whci_wait_for +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 0x2158b600 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x273c7aa0 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x423995bc ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x783d1960 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7b402ade ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x87bf1ff4 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd2a3adf9 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x6a8b79ca fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x9541664c fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xfe4d1a35 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x86c9086e sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xc7a5aaf1 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x82c0bafe viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x02b2796b w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0fa1cf24 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2591b74d w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x393ec7c7 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x55e44298 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x700faa0c w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9fbfda9c w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa4eddaa1 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb2778a4e w1_touch_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x5187d95b dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x7572e671 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdfdbabde dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/fat/fat 0x04bde6a3 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x05aabf28 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x09702877 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x166c8539 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x66c3be8a fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x711c0f17 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x71ddbd7d fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x74b0ff2a fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x7c8d2af6 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x8f5b7438 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0xa29db843 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xa542c40a fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xaa29574b fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xbda46b68 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xc95b349b fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xd6c9684b fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0xde197645 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xe063b03b fat_detach +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0fe536dd nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17e9b189 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4979acb9 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x637ebfee nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe40db09c nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00ada3d5 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0208a8ab pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x058ffa6b nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x05e732f6 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x07685ff0 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x21a72896 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26c47ab0 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x276c8476 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43242ed9 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x481f927c nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x568e76c4 nfs_commit_release_pages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d67aa3a nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x64ef5548 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67d9e38a nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x68d13828 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x712966fe nfs_commit_clear_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e3293eb nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x86bfae5c nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8e64cc80 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9403530f nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97ec1d00 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x988cdcf8 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa65e87d4 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xade0d69f nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xadf8204b nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb0dfe427 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb135856e nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1623330 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbc6766da pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc285f3d1 nfs4_reset_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcf4c54b6 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5cbcdd0 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdbe040dc nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3987970 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe706e211 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea27cd62 put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf05b979e nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0ffb7ad nfs4_reset_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf1cfcc5a pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x33499649 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x40379186 nfsacl_encode +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 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x26d272ac o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x41c2977e o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x73684e69 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9821bd69 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9890380d o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xaced8827 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +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 0xfb7aa286 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x32003a4a dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4c9a7a5e 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 0xb07ec199 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc94d786c 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 0xe567870f dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xeb750d04 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4ba244fe ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x94734940 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xfd7a163d ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x1b5e580f garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x34699d24 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x778d68d8 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x7bf4ade5 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xba2a1586 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xc2aaccba garp_init_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x078cc2e7 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x48689938 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x2b64a133 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xac2433f6 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x8553f0a2 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 0x8c72b8eb bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x093349a4 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x17ec8b1a dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1a6fe4dd dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x23c834ea dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c144961 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4156046a dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x45dc0cb7 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x46a90c74 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59c6324e dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x60382417 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6083fc96 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f445468 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x78acc10b dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7d85375f dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f755ff6 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x81d4fc57 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eb68a86 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ff35038 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x90fd6d46 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x996f89f1 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaba1aae4 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xad6a022a dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb30c7a0e dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb5a35a64 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbb9175dc dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xca81b272 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcca30f9a dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe4b7b727 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe5fc480b dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe739329c dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xebeabfd5 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xecde8614 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfdfacbf2 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfe397401 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xff8e3072 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1a83cc12 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x28ddd33b dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2e9cad42 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa17f3ff0 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa744be9b dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xed04042b dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x052f80d6 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xce0ec71b unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x60580916 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x8973d4e1 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x1b573462 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x3cabb5ce inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xe79fd323 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x2e7da908 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xe245ae84 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0157ed0e nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x08d7950e nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0937a33f nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1c7e1456 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x68392769 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb26a376b nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x144dc57e tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2c7c50e5 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x41687a6a tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa889138f tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb5251a6a tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xd900d45b ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x05ace500 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0730e36b l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0dbfb799 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0ea24af6 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0f059a82 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3fdb1100 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x63577af5 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8344ac16 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8879e2e9 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8992abbc l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xeafddb58 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf6ddaded l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2d70e087 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3a4a235f ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5c803d78 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7d92ec7d ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc313d136 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xec6dc70a ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xee2333a9 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfb5f6064 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x08d053dd ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3bd82539 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x58ba47b3 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5ba6b00a ip_set_get_ip_port +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 0x7d4be321 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8aafdef9 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9ca6d85d ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa281ebc8 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa7f5c049 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xac03e397 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb065418a ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb58be412 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc5f9b62f ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe4678341 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x1652ce96 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xd61299d1 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xdce10ea6 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xea8f4e25 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e07dc0e __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e96d85b nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x17fa7cb5 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18a530bd nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25177ed2 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47bcdefb nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47fd4e52 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ae34684 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c70c34d nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5158e791 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x533dd7b2 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59502d99 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x595b16ab print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b8e9f85 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e6ea708 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5f0d8f35 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5fd7aafd nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64971f4c nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a6c2ed9 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c4244d8 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6db1cd14 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ddfe9d0 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x762604de __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x784dc254 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a889be4 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ec3226e nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x87e4abbc nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x88dc5564 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89b09c3a nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c1e8a96 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8dbc65f2 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f5f0367 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x94d2b8d2 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9869cde9 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c2e571f nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa5d7fbb6 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa5faf6b nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab250cb1 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb40e1d04 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb9b42fdc __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe28e814 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc045d576 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc157f8af __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc171b2ce nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc753b2a0 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcb041dab __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3aa40d2 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3fda1e7 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4bf5e60 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe775ca63 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9765d7f nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf1cc940f nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5311944 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5e803b1 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf76b1f90 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9f2a902 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa0a5d16 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbaa2ff7 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbf88c5a __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xed71a7cc nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x0c9bb568 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xf0047eb4 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2e9ca13f set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x40e95152 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4330a4db nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6b22f9b7 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x72d00065 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x79dbbe2f nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x886f453e set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xaf233762 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe77b6c87 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf73eda50 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x367be411 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3630d4ab nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9818bfdd nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xdf335277 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf93b6266 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x5ceef01b nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xac41fb47 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x015c90a3 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x167b546d nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1e0a1c57 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2a9b44ab nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4bd3935c nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x54e26866 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6e6546ec ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7986ec8c ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x85e5327e ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8bcb5be9 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x94c1a3b7 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa264ecb6 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe52e5898 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x72a16935 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xf928c46c nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x3556bc71 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x77a90b4e nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x83b8453f nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x851eb4bd nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x89780b4c nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x96a1b28d nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe2923425 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x2ceca21f nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3325d2a6 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4f5e8f70 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5caa2879 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6710bdeb xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6ca16281 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6e416298 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x761bf88b xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8b439fd5 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x93220478 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb90414c9 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc4ec0b82 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd876ed4e xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfed2f5db xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x133e13b5 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf7b03908 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x093c0362 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x0c2b9edc rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x10a002b3 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x1419ad35 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x22b5935c rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x23f914c5 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x2bf1f6c3 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x32e4b66d rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x37366def rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x398965de rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x3da404ee rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x540cdd50 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7fa8e34f rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x82115f7e rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9a6d517c rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xaa52806d rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xae9fb2b7 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xbc80c70b rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xcc8c1107 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xde44de5e rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xdecc0eb1 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xf393886d rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xf91e4636 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x0e8f398c rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x66324540 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x12023bfa gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x21d84d92 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x21ffdf5b gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2d02598b gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29 gss_mech_list_pseudoflavors +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x567c4c1e gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x61fa4782 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x76b9b93d svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9a2c4ade gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xae934f38 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb765f3d6 gss_mech_get_by_OID +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb88ea747 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xed4345a1 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x005d82d7 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0474cf69 xprt_alloc +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 0x06e6d3da svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x094e3927 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b261a6d xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c0a96e7 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c364b8c xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d22c042 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e111d85 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f0ccee2 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11429220 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x144beb91 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x172bad77 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17e63b20 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1802bef9 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a71b0ac svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b5208ef rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c6bcca8 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cec85ab sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x210548e8 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26db9c1b xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27508eaa rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28b6247f svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28ff8daf svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x293affa1 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x297d6b80 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32a99ee9 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37b2486d svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38b11811 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38e3d5b2 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a5e1c06 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ab6fd2d svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b3b4cbd svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c4aaa24 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c77b1e6 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e104578 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e6eab6f csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e7f6563 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x405e1190 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4143d0fb xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x418822ea rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4718da6b svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x479a14c5 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4aa84ab4 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50b391f1 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50d3896e xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50d484c5 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5106293b rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x526bc903 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x555f216a xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57258803 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x589815f4 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bb93066 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c4b131a cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ea410ec xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ee76977 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f141a18 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60b4ef6f xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61510910 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x618bdbd6 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64ba8ece rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65292335 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65570a0c xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65c1cc82 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67451f1a xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69ddaed3 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b09148c rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b7c0b60 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e13e5ef auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f2d8587 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x701e44ef rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70715e93 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x707e787f rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73ca6351 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x794e7e40 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ad7a6cf auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b654faa cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7da682de svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dba782b rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e48bd4c xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ff45164 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80d7d3ab xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80fd8a27 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81ae3d07 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x839b77fd rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8763a8d7 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88e884c2 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x898dde97 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a89266e xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b1097f9 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ced35a1 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90542b3b unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9098e74a svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x910b9263 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x913602dd rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95328b34 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95c821b0 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96acc91b rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9712d22c sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x983bd23a auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c38794f rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eac387c xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa289b3ce rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2b27462 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3d69db2 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa42a5271 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa977dd2a rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaabcd89a rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab2b8a9e xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad83217f rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaed29cb5 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb055bcc7 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3b79ca3 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6f6eccc svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcd45803 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe92f3fa _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe9479dc rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc512f652 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5fc402c write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc609cffc rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc7e593d __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfa44c28 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd027394f svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0ab1649 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2225cdb rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd278af3f rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2e86f49 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd53cab5d svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7b6823a xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda36632b cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc61d85c xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1fe21e5 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4d4303b xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe58e1e42 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5a5d38c rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe60d7041 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9f0b47f svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed5a3fae rpc_create +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 0xf0d54e59 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2eb6cf6 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf316fefc svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4b871d4 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf552ca67 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6a8fd87 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf74f743b rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8d922a3 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa09ca94 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa84662c sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbc655e1 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc0a4ef0 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffd1edb2 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0aa1f590 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3170f21f wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x37dcf790 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x637fe36d wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x69d7cf36 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa153a289 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa6d99870 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xad4e7201 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbddc546f wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbe8bd381 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe7018cb2 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe85c1137 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf7b5aefe wimax_dev_rm +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4d58e200 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x515f20cf cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5c9c5e39 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6853e30e cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x878201da cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x92cb006f cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x94212f44 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x97882982 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc60ca624 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe52a466c cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfde533a0 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x4e18e243 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x695a4c38 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9a355de4 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa43f5a52 ipcomp_init_state +EXPORT_SYMBOL_GPL sound/core/snd 0x23df2669 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x6edef11f snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0xeadda1b3 snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xd49ee598 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x4fc450fc snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x704928f2 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9f228123 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa5c8d36b snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xaf598c36 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf8436485 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0cd54d2d snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14e59674 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19e7d567 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19fe4a2e snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1be5c3a0 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1cfe1b3d snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ea1f6de snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x251d79d9 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2659341b snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27c373b6 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x295b96e1 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ab453b2 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2be92f8c snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x314980a0 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32878672 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x342b1f42 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3484cb88 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x393fbac2 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3960c073 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ef9894d snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43528195 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4601a1af snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f2b655f snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fca1122 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fef6b9d snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x51163304 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55beb3d6 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57137ce6 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x594bc3ea snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a55e420 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5baf3e5f snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bfe1841 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5cf43ae7 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f754b3a snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5fab23c1 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60c5ba6d snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6154b781 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6458c476 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x69547cd7 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b22fc6c snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6eea6448 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x743d41f1 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75a7cd6a snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79430ca5 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79c5de01 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7cb803c7 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f32975e snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x830e9242 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84ce69ab snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84cf805f snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x854065b0 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8557ba0b snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8616f323 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x870421d4 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x892b183c snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ba6766c snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9001ce17 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93b7aaaa snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9928be76 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x993bb6de snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d7de76d snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa20a2f42 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa24067bc snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2927453 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa51dd381 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5480664 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8b9c9b3 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8f461f5 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xadeb1f7e snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb51dba46 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb61482b9 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7300fc8 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb75483a1 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb91fa7fc snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba02303a snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba73e459 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb2aabb5 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd0eebcb snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd272ec2 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd2a565b snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf409aaa snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf9a82b7 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2746ba2 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca7eb322 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcec99c50 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf769af3 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2dba86f snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd359eace snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4bfda33 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd75b2c33 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8bede2e __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda101dc1 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda19842e snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc8df48a snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf1b6c89 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe48f2c45 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe9696ab5 snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xead03c8f snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda97ccd snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf889be98 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa7b469f snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfae487d5 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd1dcf6c query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe6ec524 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x91f603d5 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xf2f6b3d3 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x140d9a73 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x4f806150 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x0b2b7dc1 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3727f7ea aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x43ad45d9 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd18623ce aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xda24fccb aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xd8fa5e44 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xed5aa843 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x438b42c5 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5bdd6a83 wm_hubs_add_analogue_controls +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 0x91774d49 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xf8be4dab wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x9109a817 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x667c1762 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xa44bbba0 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x5ee3bfc4 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0xa4be2b06 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x08131472 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xe65cc621 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0x302c99f9 wm8996_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04d5d847 snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07a12da7 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a087b50 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c82864f snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x10e255a2 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x126ba9c1 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12db3720 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x151ae76d snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x181ec921 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x19482ebf snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a7f467e dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1afad95b snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x244c19ed snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29385b76 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x296c6342 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2bda554f snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f90626e snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2fd19c0c snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c0b5cae snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40a8b817 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40b652cf snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43819dcf snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43b92b65 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43ccb333 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x452fcb20 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x466b75ab snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d83aace snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fb41db3 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x527a633b snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5837ddde snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e6e5aed snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f1c3d02 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65c96567 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67f861de snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69309120 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ab11aa4 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6bbf2f90 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c9bc6e6 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e4e62aa snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71081e8f snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7475e3c7 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x793a7446 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ac179e2 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ba817e5 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8091921a snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81cef8a6 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x836ec6d5 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8630346b snd_soc_default_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8a3d84f2 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e87d402 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f91b7bf snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x902e6f4c snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x918d0bb2 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93681863 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94ea455b snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97aa2024 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97df29a3 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a4ef321 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c6aeb34 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c8b080b snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9db8afc7 snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0359af5 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa48d9af4 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa5148331 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa81079da snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa07687e snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae08e4cb snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0dc5397 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5c31139 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbbd02d4c snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc7ad1ff snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd287d23 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe6cd941 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc10d475a snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc50b4834 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc68247a7 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb3a93ed snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcce61493 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xceff8673 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcfb43227 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd168efdc snd_soc_default_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd455cdc4 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5698707 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd78ed7c0 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd97413c8 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdefed7ce snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfeb2360 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5884349 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe701a243 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe747f951 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe9c8f693 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xecd9ecb6 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeefd84ef snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0747955 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf1dc2bd2 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf67571ca snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8754b97 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf914b0cd snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9ec7991 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfca5bb02 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfcc738d4 snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x008191a4 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x0088a193 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x0121be88 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x013a4066 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x018ab07d dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x01948fb3 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01c06d57 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x01db6e1f shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0206afdb css_depth +EXPORT_SYMBOL_GPL vmlinux 0x0212b4f0 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x022a645e crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x024cc51b single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x026211e2 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x02697871 dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x028f671e tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x02a3f49e nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03960031 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x03a880e4 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x03b74ca3 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x03c71ab9 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x03ccd70c xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0x03e1f703 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04270661 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x046370e7 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x04b07d7e bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x04bd05b7 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x04bf26af ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04d64d27 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x04ef8a1b __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x050afde3 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x05415dbd sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05797aa2 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x05ae262e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x05b0c446 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x05fc5869 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x05fce03d vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x064ab779 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0660e230 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x0673e573 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x06b346c8 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x06d29a5f mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x06d2b975 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x0716cef8 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x074d6a47 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x0760fd7b skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x0774ca1a bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x077c2cbf n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x08046f41 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x082999a9 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x087274f7 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x08748ee8 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x087ee4e3 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x08d8185c ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x08f5471c led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x0908c237 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0927e164 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x0962d0e8 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x099b4534 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x09a16b18 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x09cc6939 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x0a7e6033 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x0aec0d71 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b28defb kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b3f1907 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x0b6db86a scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x0b8594c6 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x0b98b7f5 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0bd0ab05 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c1b7edd pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x0c22283f inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c3ca568 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0caf8e83 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x0cb4831d key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0ce4c184 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0ce973bb __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x0d1daceb attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x0d44cd53 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x0d4607c4 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x0d8529fa do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x0dadecc6 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x0dcfedb4 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x0df66d4c da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0e0770b7 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e164220 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x0e49fb2b synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x0e6b7d4d device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x0e9ed92b blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x0e9f7104 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x0ea211c3 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f92daab dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fb95824 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fde06b5 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0ff968b6 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x104478e5 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1056cbb1 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x105d6d8c devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1061d8ee kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x10825081 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x109182bb usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x10aca72b br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x10b3bf8e usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x10cf22ea dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x112bff50 xv_free +EXPORT_SYMBOL_GPL vmlinux 0x1135ae7e page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x113b6a5e shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x1143bbdc usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x115f7a90 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x11657422 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11af5547 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x11b657bb swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x11c5c8bd crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x11e486a7 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x1228df31 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x126375df devres_get +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12866951 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x12c69e0c single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x12d7e198 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x132368c3 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x133215b6 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x137155e2 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x1373b2c3 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13f3e3fb klist_init +EXPORT_SYMBOL_GPL vmlinux 0x13f9de57 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x143ae7b5 dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x1483853b user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x14a26d19 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x14af3f3f pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x14d61d9b pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x151d5fd8 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x153a0c91 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x155436bb event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x1556756b usermodehelper_is_disabled +EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x159abd09 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15d19b48 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x163bc646 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x1655bb05 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x1665c388 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x16c57b0c unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x1717aa0b tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x17456a48 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x176a1a45 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x17987f96 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x17a650fa rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x17d6905e transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x17df0763 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x17f78860 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x1840a3ac pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x184320e9 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x186ad8a5 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18887adf ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x18c55834 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x18d15b5b inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x18d9ee65 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x18ddca75 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x18e2c347 dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x18f32c06 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x191d47ed usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x191e7451 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x192cef22 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x193c0ffc blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1943cdf1 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x19496284 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x19689fc4 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x197fc669 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x1993c415 swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a424a1 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x19c48fb0 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x19ccf9bb ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0x19de4fd3 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1a249eff unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a350e83 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x1a4bcf44 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x1a54b3a3 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x1a5ae716 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x1a790211 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x1a847b48 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x1a958f66 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x1ac961eb register_mce_write_callback +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1ae0e135 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x1aece301 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x1af85a89 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x1afb6f16 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b77d88f con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bf604cb rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x1bfe8421 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x1c464082 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c6ddf45 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x1c6dffa7 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x1c82a65e anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c904a75 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1c9326ee fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1cc8a062 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x1cfba198 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x1d365b03 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d7e87af rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x1dbf76f9 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x1e0e82d0 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1e161419 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3a2353 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e4c3308 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e87855f sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1eba928f ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed70725 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x1f01fb05 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x1f0766c3 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x1f2353f3 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x1f74839c unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1f99ccc7 tps65910_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x1faa38a1 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x1fcd3ebb ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fde5cab blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x1fe134fd driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1ff2cab8 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x1ff66272 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x1ffb61c3 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x203885e8 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x205c5ffb sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x206d94cc ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x20a0586f each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x21004027 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x21134e90 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x211cc96f pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x215f10bd __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x216b8c8d inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x216c7702 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x218cfe8c blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x21a6a02b bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x21bae5cb sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x220b3121 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x220bb1a4 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x22292b08 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x222bbed3 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x226755ef debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x228b93ae tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22ca5a5f scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x22e85e41 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x22f4490a xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x2330503c crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x23511fa6 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x239ca1ca pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0x23a3efb3 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x23c2989f crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x23e8be8f fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x240579fb cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x240580a9 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0x2431ead4 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x24374a12 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x24558e0f usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x247f431c ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x24a7426c crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24e71c01 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x24fcb3f2 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x250afcdd sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x252e43b4 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x2534406b shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x257f502b crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2580711e rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x25895b19 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x25aa616b relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x25da53bf pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x25e7904f xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x25ec84db rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x25f23de8 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x260c7f25 xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x263a9835 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x264f9c86 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x265eb446 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x266fe6b0 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x26a47f2f crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26e91fe6 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x26efe7cf usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x273aab74 xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0x274a1894 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x276a303c rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x278fc033 device_move +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27c2b175 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x283ee1a3 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x2882566d dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x288c4f0d rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x288f1fac debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x289a8d2c driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28b41b74 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e0666c crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x2901a718 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x29059b53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x290d4c73 put_device +EXPORT_SYMBOL_GPL vmlinux 0x29104d18 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x293103e5 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x29311f67 ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x29837eef class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x298490fb __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x29ba83bb gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x29f01139 ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x29f57e7f regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x2a11374a usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x2a380992 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aca935e bsg_goose_queue +EXPORT_SYMBOL_GPL vmlinux 0x2addf0d3 usb_usual_ignore_device +EXPORT_SYMBOL_GPL vmlinux 0x2b088152 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x2b149b09 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2b35aa12 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x2b5e6321 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2b5e9742 blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x2b655abb watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2bd76635 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2bf1890e ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x2c0dc18b filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c4a1117 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0410 xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x2c7330d4 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2cacface sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2e13cecb sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x2e206fb9 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e366659 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x2e3dc05b pxa_ssp_free +EXPORT_SYMBOL_GPL vmlinux 0x2e3ea949 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x2e400707 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2ea00b62 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2ea1944f raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x2f33436c ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x2f38e40a devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f79f791 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x2f7fbcae platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2f9999ec tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fe14096 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x2fe65923 input_class +EXPORT_SYMBOL_GPL vmlinux 0x303d273c ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x305c3330 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x3087936b xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x30a43278 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30b464f8 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x3108ea46 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x311035bf bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x31176a91 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x316db187 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x318032dc ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31bbf16c fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x3278ff91 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x329006f1 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32d56c99 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32f837d8 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x32fd4b62 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x330c76d6 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x3333427f mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x33543801 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x33589e9b cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33b5c4fe cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x3407c6f2 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x346aabd6 find_module +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x348f3ae8 ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0x348f563c usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x34955b66 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x34bc8606 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x34cdebec class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x34d76c42 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x34dbe85a inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x34f0644d usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x35155f66 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x35276f7b tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x3557e31f pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x355a89c1 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x357b187b gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x358eb9a1 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x35b54832 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x35bec1aa get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x35ccfe09 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x35d7c252 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x35f3ead3 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x3604f4da exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x36133808 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362bd590 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36573c16 xv_malloc +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36a0297e ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x36bbbbf5 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x36da9808 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x36dbebbf ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3757babd elv_register +EXPORT_SYMBOL_GPL vmlinux 0x37585da2 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x37eae70a xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x37f9a99a stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x3821746c tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x38544919 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x386b341b pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38e3aa5c xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38eb4022 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x394483d9 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x395e0958 acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x39a3176a ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x39ae6b54 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x39cd8cd4 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x39d74c46 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39ff289e ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a3054c0 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a548ed7 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x3a5f6bf1 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x3a86abb0 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x3aa2f79f wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x3aba6085 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x3ac0e0da devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x3ad9ab42 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x3b05f0c3 xen_swiotlb_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x3b1746c1 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x3b42ad4a fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x3b5f2278 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c5dba15 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x3c917de2 hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cb766bd usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3ce492bc crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d067939 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x3d078023 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x3d0f2571 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d3afaf3 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x3d659a1b md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d9f525c device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x3da274ba xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x3daa0982 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3de24877 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3dff5947 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x3e27326b devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x3e49cd9c __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3e7eaf73 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x3e7f0dfc __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x3e9ca55f __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x3e9dffda regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ec4faa5 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f205d3e tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f36fa5e tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x3f54548c wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3fbc0463 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x3fbd9e32 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x3fdb16ab debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x3fe38920 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x402e5db5 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40651263 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c24ec6 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x4140ec99 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x4147e832 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x4147fb7d inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x420e12df bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4240b6f1 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x424f6008 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42718d07 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42b87c02 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x42ba8c9e __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x42c4cc98 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x42c989ff iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43445bef sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x434fb953 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x435e6c6e crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x436b6558 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x43de5ae7 virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43f7ecb7 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x447cd7f6 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44b9774b regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x44bcfa6d system_nrt_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x44cc9c55 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x44ce1742 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x44ff6a77 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x453379ed pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x453940e9 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x45700f6b pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x45715c59 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45aae0de sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c73aaf dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x45cec1cb pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45d4b27f cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x45fd846e virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460c7eda usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x462d8fad perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x466f2431 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46944434 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x469719c7 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x46992748 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x469a8464 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x46b06bab vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x46c790ff cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4725b611 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x474359b6 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x47c149ab queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x47c2c158 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x47c8abed ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x47ce8e9d pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x48077b34 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x480ab0d1 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x480c5fe5 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x485e87a0 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x4864a37d inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x4865f9b3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x48682db9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x4873aaa9 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x489044fb blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48c62d51 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x48e7dcad tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x48e94e04 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x48f44e16 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4919c86f ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x4958cdbe dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49ae94da ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x49d079f7 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x49e3a774 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x4a2b764d wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4a7bc844 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ac99beb swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x4b0fa9e5 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4b57a851 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x4b8b32ca dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0x4bac829b ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x4bb18286 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x4bb5aec9 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x4bba3839 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bdbbdf3 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x4be1c767 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x4c0a9779 md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x4c55a559 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x4c5b9cec sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c7903b9 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x4cb4a7bb agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x4cdb663c class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4cde60f3 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x4cf9a3b2 x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0x4d2469ff __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x4d9b75ee bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4dab0344 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x4dc0683b crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x4e00bc3b ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e1fbd77 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x4e681247 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x4e71c922 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4e91b386 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4eae4bfc crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x4ed6e906 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f1ccf7d dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f2edd18 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x4f9d755e inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fd7f409 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff73310 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x5013e6de pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x505bc58b inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x508c5f96 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50ad4123 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50bf761c ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50ec717d rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x50f5ba25 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x50fe5282 ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x514a4437 xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51a8d497 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x51bd2a97 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x520d8455 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x520e2e48 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x5245f8e8 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x525733a5 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x52694311 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x529540e8 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x52bcc40c tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x52c50479 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x52c5aee2 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x52dba066 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x531b5497 unregister_efivars +EXPORT_SYMBOL_GPL vmlinux 0x531e034e init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x534a272a hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x534bb0c7 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x53565f9e wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5361ffec pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a05d4c dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53a84ced pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x53d0cf4d ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5426cf93 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x5446fced trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x5451fcc5 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x548f6897 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a64b80 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x5513d86d alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x551619fd driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x552567c0 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x5554f6ea crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x557f3954 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x55abbd61 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x5607b9cb sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5654f836 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x568e0cb0 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56f01e0b security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x56f2e781 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x56fc8229 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x5706fe7f trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x572ff5a0 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x57443eab wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x576650e7 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a7d6c2 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x57e38eb5 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x581ad785 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x584119bb da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x5874e306 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5877e9ab ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x587862bc platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x5884ed07 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x589abf1c blkio_alloc_blkg_stats +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x59a136a3 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x59b864cc mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x59d4f4ee inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a1dc483 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a441ebd efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a5cf1f6 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5ab61413 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x5ae4eb0f key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x5ae9c4f8 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b024929 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x5b0bf9d5 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5b1612c0 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x5b25ee9b bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x5b40926f regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x5b69d344 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x5b7e307d __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x5b7fdb44 dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x5b976217 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5ba164be crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c165595 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x5c1a8bd4 ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0x5c4d5432 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x5c5f79e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x5c86c3fe anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x5cbe4d45 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5cfb6eab i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x5d030daf inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x5d0bc22b put_driver +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d3cab62 cred_real_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d7f0de5 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d934adb console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x5da7840b bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5dc78753 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x5e01fcdb sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x5e3fe6fc __module_address +EXPORT_SYMBOL_GPL vmlinux 0x5e8ef11d inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x5e94d3bf __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5ee3a942 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x5f12311d user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f3cd55d usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fce76ee blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5fd67c15 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x6000a541 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x604f7a33 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x606932fb scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a62121 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x60b84edd ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60e2722e pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x610eb4ac dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x617c1905 css_id +EXPORT_SYMBOL_GPL vmlinux 0x61c7bffa locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x61d0a165 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x61d4e922 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x61ebbde1 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x6238261a usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x6267cae2 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x627b5a0e usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x62af84f6 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x62ba0c95 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x62eef303 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x62f11d70 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x63084096 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x63197308 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6347ee72 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x6373fd03 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x63ce1bf2 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x63d0841d tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x63d7e93f rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x63f977d7 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x63fa6536 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6428cac4 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x643395bc rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x643b157b md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x6449c9d4 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x6460063e user_read +EXPORT_SYMBOL_GPL vmlinux 0x648f07ed crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x648feda9 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x64c0e96a md_stop +EXPORT_SYMBOL_GPL vmlinux 0x64e5bf42 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x64f71599 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x64fca172 xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x65219fab device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x65278590 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x65303bf2 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x653f590a blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x65553631 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x655f079c noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x6592c5e7 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x65a05414 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65cdb109 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65e990c8 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x65fa533b usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662ae849 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x66340c0f sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x6658e0e7 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x66778069 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x667f28b7 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x669ed6c1 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e31a43 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x66e570ee inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x66f3cb35 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x6732559d spi_async +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x67436479 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x6757c5c6 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x677013a0 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67b29778 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x67ee31c7 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x6829929a scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68951de2 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x68bdc282 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x68cd2df4 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x68fa74ef pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x68ffc4e8 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x6901f843 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x692c3005 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6967b4f9 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f07061 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x6a09aefc crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6a36d5ab crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x6a4344c9 task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0x6a52c91f virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x6a566d46 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x6a56d1c0 tpm_bios_log_setup +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a642308 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x6a7e9a38 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6ab0d049 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6ac18b4e file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x6ac898a7 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6accbf16 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x6af24c83 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x6b0b0e42 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x6b1a8ac3 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b462f50 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x6b4746d0 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b88f557 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x6b8a5413 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6bad5001 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x6bb1a616 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x6bf46d81 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c234c53 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x6c243c9c spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x6c456102 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c584602 xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x6c760515 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6cc5cc0b sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x6cc9663d debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x6ccdec71 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x6cd74bf3 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x6ced8e2e devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6cf32b20 ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x6d19773e sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d4668b0 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x6d53ff98 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x6d56bf90 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x6d597694 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6d63dfae security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x6d7c4a93 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x6dcd7881 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e782c23 iomap_create_wc +EXPORT_SYMBOL_GPL vmlinux 0x6e91a409 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x6eda9749 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f1f33fe vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x6f36f38f mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x6f37c92e relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x6f5cf41a fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x6f608203 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x6f67762c acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x6f6eba7d i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x6f6ff2b7 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6f72afb9 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x6f862124 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x6f998eee __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x6fa79ce8 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x6fc43f50 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x6fd51f99 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70177482 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7025dcf9 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x70307264 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7045ba4a tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7049fccd usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x706c0ef8 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70b0c12c ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70f97d65 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x7109d015 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x713c5702 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x7146d0c3 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x716c24d1 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x7192e01a usb_enable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x71b86dda __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x71c40ee9 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71ec8236 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x71ee0250 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x71f24737 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x7217090f i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x72488c40 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7285f84f unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7290ab6c add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x72a364ea sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x72adbfe3 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x72e2857f inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x730a2891 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x7333f5ed pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x73413157 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x7392aa89 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73ad7db0 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x73c9e859 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x73d64360 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73deb673 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x73ed5ce9 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x74160d25 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x74323984 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x744b1bd7 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74aaf6f5 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74c1f66a regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x751a3c7a inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x752e745e free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x7560c3ca cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x7597170b cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x759fc8a5 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x75a1cd0d sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x75b20f59 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75cd9bfa pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0x75e0ade1 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x75e4440c ref_module +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75eb88b8 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x760872be dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x765bbf09 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x76967905 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x76b5f36e hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7745a054 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x7764cfc5 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x78019a2c pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x78671fd3 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x78898bb0 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x788f3eec bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x78ec7e49 xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x78fb9596 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x790b4359 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x794de74f crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x796931fb blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x79a71c48 kernel_stack_pointer +EXPORT_SYMBOL_GPL vmlinux 0x79b4e42f task_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x79e675fb debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x79fc845b crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x79fd6b10 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7a193ffa pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x7a2a90fd pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x7a2f8fe2 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a5343d4 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175 amd_erratum_383 +EXPORT_SYMBOL_GPL vmlinux 0x7a87313e register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x7a93af92 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7ac150db blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ada5a66 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b259ca6 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7b7f1818 usb_is_intel_switchable_xhci +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7baeafb1 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x7bdd2cd3 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x7be0965a dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x7bef6b01 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x7c29d4a5 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x7c357d59 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x7c464979 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x7c94a551 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x7cd0bde4 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7cd5735a rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cef4d6a irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x7cfe9bfe crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x7d18dce0 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x7d44b407 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dabb8f8 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7de85b55 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x7e069a13 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e1ecdc5 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e356be0 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x7e408542 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e693a78 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x7e74f221 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0x7eaee6a2 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x7ec1524a ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ec2d49b ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7ecaa075 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x7ece4982 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ed16fbf pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x7f04e593 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x7f33243e regcache_write +EXPORT_SYMBOL_GPL vmlinux 0x7f3615d6 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7f45ea30 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x7f6c529b usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x7f7a99b7 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x7f9205b4 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x7fb8f4b5 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7fbbf9d3 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x803fd0c1 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8048bc89 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x8069edc6 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x8079e0da skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x808958f2 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x809446d1 tps65910_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x81101ab7 xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x813f9431 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x815ec7e7 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x81760c2a stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x81ef8b1f spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x823a0d56 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82f39902 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x833267fd sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x835f769e rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x83661c92 pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a43898 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x83bbd968 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x83bd80d4 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x83ce82eb get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x841a2c09 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x843523ff skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x84417334 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x8478ad9b vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x84ab042c spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x84b596c7 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x84bece77 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x84ec1afb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8563629a ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x8574e3f3 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x857cfe8f crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x85811351 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x8596b10f aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x859fee17 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85d022d2 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x85d4c6e8 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x85d7d4c8 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x860cbb18 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x862f98a3 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x869ec1f2 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86aa16e6 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x86d024ed crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x86e0749d inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x8728629a crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x872aa300 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x8731c5cc led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8750ccc5 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8799c30c device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x87a88e72 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x880de7bd iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8831f8b1 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0x883e4425 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x8864f927 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x886c1c32 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x887a0696 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x898c10c5 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x89979975 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x89b41c73 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x89b59810 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x89ca9cbd unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x89d34981 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x89ee466c nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x89f0db4c dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x89ff43f6 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x8a34d7d3 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a909145 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ad2e126 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8ae38f48 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x8ae7b6f0 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x8aed488b ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8afd2725 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b0b24ce lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x8b635716 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b73660a sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8bc71107 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x8bd4f063 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c27cf5a udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c47e013 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8c4db1b5 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8c6d5734 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x8ca7c0c1 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x8cbade67 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8cfcfbdd ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x8d092ae6 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x8d15f646 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x8d500491 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x8d64cb8c rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x8d72b33c rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8da1e7be ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x8dc4d0d1 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x8dc65d5f usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x8e038225 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x8e23f86d __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x8e3e4356 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x8e61bfd3 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x8e6d498c ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x8e88ace2 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x8ec98c0f __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x8ed09c39 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8ef660c1 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8f14beb9 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x8f3a2688 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f6e45c3 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x8fb576b8 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8ff7b48d ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x8ffe7499 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x905528ec user_describe +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90834b76 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x9095c716 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90ae45b6 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x9101898e print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x9104dceb ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x9126c77a sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x912da829 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x91334e38 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91ce465c usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x91e4100b usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x9259dcdd md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x925f8bfc pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x9270adb7 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92c3f244 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x92cd9c74 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92dbc7cb __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x93041de4 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x933a4e98 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x933a52be uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x9356309e crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x93b5a36d blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e172d0 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x93ed23de sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x940621d7 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x94780167 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94d25072 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x94e7c63b blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x951f1329 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x953ed347 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95702dfd register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x957f2fb3 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x95b01681 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x95da94ca perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x95dae556 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x95dd76c8 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x963979b8 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x96861d91 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x968892db ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9723ad7c ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x9726cc24 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x975a4c47 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x977d3aa6 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x979b9958 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x97f9c45a trace_nowake_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9842f28e blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x987c1f1f remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x98a02ee9 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98f2ea3f hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x98f9e29e cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x98fa9c00 md_run +EXPORT_SYMBOL_GPL vmlinux 0x98fc25ab blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x990d5467 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x991747be __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9955ae81 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x998291e9 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x99919a68 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x999cb54b device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x99aa710f xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x99cbfbfb apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x99df2de8 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x9a0dbff1 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a2d12c6 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x9a4a296e proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x9a4ba814 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x9a51349f __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x9a906c3f power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x9a9af6ba ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b09ad65 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x9b3bac78 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x9b402edb blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x9b4ba368 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x9b55b944 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x9b831a8c register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ba16251 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x9ba61f8c find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x9bcbccf9 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x9bfb2d1e ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x9c3efb99 device_add +EXPORT_SYMBOL_GPL vmlinux 0x9c4c59d7 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d0275a0 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d03e0cc xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d2ed6c6 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d7cfc3b wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9d8b9ffe rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x9d93d206 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9dd17f30 xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x9ddd29c4 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x9de22b31 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e07c70f pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x9e0ccdb5 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x9e1bb65c stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x9e328443 tpm_continue_selftest +EXPORT_SYMBOL_GPL vmlinux 0x9e40e897 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x9e4f1cfb ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9f0547db sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f29601a atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x9f39ccec xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f7ffd4b __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x9f97f556 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x9fbcd604 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9feef26a ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x9ffa1ef3 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa08e78e2 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0f00e82 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xa1472e20 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa15e48f2 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xa18e49f9 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xa1dcbe78 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xa21ea14a transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xa240de99 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xa2506813 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xa254648d page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xa27b495b dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xa2aeed64 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa304c686 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xa30c5f99 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xa341fde7 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa3917b8d sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xa3b26a4b preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa3b8d4dc virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0xa3bb9dec blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0xa3da9534 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa40c7949 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa427a405 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa47a0cd4 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa499006f usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xa4b26812 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xa4ca0d4e unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa4d3da0f get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa5448856 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xa5726192 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xa5845b98 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xa588c55e sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xa58bc406 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xa5c8d7b6 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0xa5cc811f blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f475f1 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xa63022d8 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xa6a30cb7 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xa6a876a4 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xa6bc8e3b preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa71fbcfe __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xa722a819 cpu_has_amd_erratum +EXPORT_SYMBOL_GPL vmlinux 0xa774e0b8 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xa7a7d14f alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xa7c6dca6 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7c9e39e synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xa7e1e6f6 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa7fcf68a kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xa80d5306 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xa83d973a led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xa856ca9e rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa85e7271 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xa862f0ac xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0xa867f29f xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0xa86ee925 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa885d97e class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xa89e206d init_fpu +EXPORT_SYMBOL_GPL vmlinux 0xa8b6975a crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa8d525b9 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa9094516 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa95ead64 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xa96c3d5d tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9dca670 inode_dio_done +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2558ac m2p_add_override +EXPORT_SYMBOL_GPL vmlinux 0xaa2612a3 regcache_read +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa309646 get_device +EXPORT_SYMBOL_GPL vmlinux 0xaa3f13f7 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa48bba9 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0xaa852c93 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaadfb77 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xaaafee3c wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xaade7022 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xaaee7582 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab0955ce xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0xab439210 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xab60ade6 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab88f153 user_match +EXPORT_SYMBOL_GPL vmlinux 0xab9e0274 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xabc47f60 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xac0723b9 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xac9b403c sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xaca8d9e6 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacb6c9b4 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xacc623a8 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xace04fea scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace7f542 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad50aa92 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad794bd7 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xad87d718 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xad93eb11 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadb26ff0 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadc7b46e ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xadf14911 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae553a92 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xae60cc8e sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae835c26 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xae9f851f xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0xaeda6a18 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xaee9eddb __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xaeea3073 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xaf14d5ec wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xaf2fcc73 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0xaf6937e0 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL vmlinux 0xafa2b7b9 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xafc58ba4 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xafe110f2 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xb00150ec scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xb0516324 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xb05a5586 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xb0658ff8 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xb0663978 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb0ae5977 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb125155e ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18506b9 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xb19fe84b platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb1a124b6 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xb1a6eb87 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb20d057e ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb20f960f pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xb220fcf1 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xb236743b max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xb2539e41 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xb29989a7 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2f5558b irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xb2faf64d wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xb2fb15c4 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xb30be7af cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xb315f6b6 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb3494d2f usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xb3767928 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3d3e15b pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3e2de12 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xb40428c3 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xb422fc68 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb4374240 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xb47df3bb uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xb4af8831 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xb4b4ced3 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb4c198a3 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4fbcb8c acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xb50b0713 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb52c2296 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb53a17bf cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb53d718f crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xb54fe298 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xb57dbac3 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6327cd6 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xb67796d9 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xb685d687 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb68c4d0f crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6bc49a9 __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xb6cbc1bc power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xb6d050db pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xb6daa7e4 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb75d662a hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb7606c0c devres_add +EXPORT_SYMBOL_GPL vmlinux 0xb771c9c2 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xb7aca9cf cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xb7bbaed8 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xb7c7adf9 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7d9ff10 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb808a6fe ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb8145e18 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xb82ff811 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xb83f9c3d ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xb8440280 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xb86bcceb klist_next +EXPORT_SYMBOL_GPL vmlinux 0xb885ae2f xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb9010c76 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb91aa707 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xb928cabd __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xb92e66b9 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xb92f497d sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb92fd449 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xb93ce960 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb953a3dc crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9abb5af pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c0e4c1 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9efd868 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xb9f7a7bb crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xba6134a4 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xbaaeb90e led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb0289d1 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb09fc70 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb2e6de3 yield_to +EXPORT_SYMBOL_GPL vmlinux 0xbb3b4bd2 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xbb890fda sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xbb953197 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xbb97ae41 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xbbb94f2e xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbfce101 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xbc2bf721 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xbc31d38f xenbus_dev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xbc456407 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xbc6f931b workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbd039b4c fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xbd079925 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xbd164066 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xbd2e09bc seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xbd2f89b3 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xbd3b02f3 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xbd46e7f1 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd527144 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xbd5bd37b d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xbd64cc22 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xbdbc6182 __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0xbdbd5176 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xbdc7b2de usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbdf44a30 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0xbdf9b317 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xbe032b1c dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbeac3749 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xbee138b1 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xbef3544d user_update +EXPORT_SYMBOL_GPL vmlinux 0xbf5c7ba9 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xbfaf78ed aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbfb2578a xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbffcb3b7 acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0xc020c541 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xc03ab504 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c687bf pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xc0cfc684 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc0f0a32c pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11b4470 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc18304c2 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xc1a42661 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xc1e5c3b8 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xc227c410 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc24a0062 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xc24a044b rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xc24d4a79 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xc2537522 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xc2631f18 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2a69773 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xc2abaf9f __class_register +EXPORT_SYMBOL_GPL vmlinux 0xc2c8cc97 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2e954aa xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xc2f6a8c1 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xc3134d6c rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36dcf62 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc3748232 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3af4c7b usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc43f5cf2 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xc456436e usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xc47cc06c blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc4820756 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4b0fd7d __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0xc50478ef usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xc51e985c fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xc530919b ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc59bf3be ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xc5aad65f transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5 amd_erratum_400 +EXPORT_SYMBOL_GPL vmlinux 0xc5c9a513 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xc5f8046e rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xc5ff08c6 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xc60429bb stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc60796c9 device_create +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc62a4a5f eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc6719bdf gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0xc6b3a79d blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0xc6c43ee6 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xc6d96772 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc73a8cff usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xc76787b5 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xc77a16b4 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xc77f09b3 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7aa805b pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xc7c560f1 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xc7d4d7ad debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xc7ebe99b sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xc80f6b69 __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc84060c1 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xc84ce6ba spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xc862cd0b ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xc8635899 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc884b8ba edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8f3fe35 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9179a3a tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xc9296983 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc95e9e78 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xc970bda6 ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca1dab3f usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca8dc89f handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcb47a0e0 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xcb5d31a9 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xcb824bc3 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xcb9a0f77 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xcbbcfe94 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xcbc8107d blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf7cff2 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc25b081 edac_class +EXPORT_SYMBOL_GPL vmlinux 0xcc3b60a3 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xcc3da32d aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0xcc41bd7f apic +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcce29e02 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xcd212df7 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xcd2bedb6 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xcd501367 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xcd6fd1d4 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xcd8e911e crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0xcdbad25f do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcddc1f3e scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xcdffe6ab driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xce2ba65b clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce738c19 m2p_remove_override +EXPORT_SYMBOL_GPL vmlinux 0xce9e81b6 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xcead6cdd rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xcf27b688 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xcf2a1d41 shake_page +EXPORT_SYMBOL_GPL vmlinux 0xcf349d9d ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xcf9d3d3b tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xcfb5871c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xcfc10d77 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfde740d srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd05dc2a3 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xd06e0fb6 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xd0a83a00 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd10856ca sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xd10eb675 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1b57dc0 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xd1f7787c clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd21804aa ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xd23cf296 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xd2409466 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xd24c41a7 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27a9d32 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2af2aac xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2c704b2 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd34f83d3 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd3cbd639 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd418479a max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xd4340870 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xd4449afe netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xd4693fe3 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0xd48fb3fa sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xd4a99216 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd501fc72 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xd52b3d5d device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xd53ef196 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xd543e526 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xd544e902 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0xd548be76 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xd552d632 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xd5670b8e vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5f360f2 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xd6009413 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd618d5c1 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd65157a9 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xd65173fd crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd69b423f handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xd6e09cd2 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6fb40e8 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd713975e ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd76505e8 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xd7658232 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd779b097 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xd77af3de sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7935f0d crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xd7a4bb17 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7fe9c53 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xd808989e usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd81cfc19 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd821bfca tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xd8250a5c iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd84bd4b9 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd8a8a5ae pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xd8b7dd05 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xd8e37b34 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xd8e4e0f7 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xd8e5d88d __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0xd903cce1 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd93e76a6 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd9796dd3 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xd980e436 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xd9e38e87 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9f34b16 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xda3cde59 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xda7d8c5b anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda86701d tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xda8d74da swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xdad056d1 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xdad6009d inode_dio_wait +EXPORT_SYMBOL_GPL vmlinux 0xdadb8618 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xdae92ae8 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xdaf2ca86 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdafbf75a xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb372a34 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xdb71f6d1 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xdb784940 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xdbaee710 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xdc0dd63b seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc18c36e cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xdc2fc6e0 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xdc4afb68 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc858094 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9bb445 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdc9e62df led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xdcabd294 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdced72ba scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xdd015e52 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdd2a7aaf xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd4fa340 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xdd573dae root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xddd021fd iommu_present +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdddf03d2 mmput +EXPORT_SYMBOL_GPL vmlinux 0xde163f8f usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xde40947c ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde615ce4 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xde70d802 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xdf2c8f55 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xdfa1fd06 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xdfe9d28d crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdfed8ec7 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xdfeea746 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe0405d62 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe09ee795 ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0xe09f4004 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0xe0b1053a rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0caf4ac ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xe0ef9ba8 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xe102a9ba blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe1257185 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xe12d573c shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xe14de0f3 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0xe1506c5d spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xe166df70 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe184ea3a simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xe1a74f31 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xe1c932f3 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xe1cf7cb7 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xe1d487f1 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xe2307ce7 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xe24f9485 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xe265ce14 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe27e30f1 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe2892f28 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a61330 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe2b5bfe0 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xe2c980df __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xe2cba529 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe2d92dc0 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xe2d95748 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe2e75a80 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe37ab4df ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3c0c27b usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xe3c55173 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe44945fe power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xe49bc139 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xe4b3b658 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xe4b5d111 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe4f3c6c8 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xe4fa6165 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe5035964 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xe52b341d tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xe5332155 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xe56da222 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xe56df542 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xe57b97a1 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5ccc68b show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe62ba540 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6564673 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xe6a7fd7a pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe6c6e65b mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xe6c8ce04 device_del +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe73bb4ab iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xe78840f7 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xe78a6b8b pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe78be098 xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xe7c134b0 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xe7d1c5ab ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe7e235df crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8045aeb crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xe807d01f pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe825e338 device_register +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe859cbd5 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8764c30 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xe8a120b0 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe8c8c6e6 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xe8e8aecb xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xe90e39d5 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe96da303 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xe96dd7b9 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0xe97a91da usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xe98da8a8 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xe9916766 register_efivars +EXPORT_SYMBOL_GPL vmlinux 0xe9965ca4 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0xe999e055 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xe9ed7c9e blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea105802 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea47f904 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xea8b5274 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xea905975 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xeac05152 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xead714d9 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeaec649e debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xeaeecd04 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xeb2cbbad pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xeb370805 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xeb3f080d pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xeb61a0ae dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xeb987ea9 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xebb8b4a2 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xebbb62ad usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xeca84d1c setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xecb9b31d iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xecf39950 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xecfe4c57 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xed229c28 mddev_check_plugged +EXPORT_SYMBOL_GPL vmlinux 0xed2b3c8c virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xed8d8085 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xed911a64 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedd3efba sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee116ce9 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0xee4f189e ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xee5323c1 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0xeea789d1 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xeec24d31 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xeecf2f3d locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xef0f17bf regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef23d470 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xef4166ac regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xef48d254 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefb72398 pstore_write +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xeff3732b ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf0411662 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xf061250b bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf065e692 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf0893bbd vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xf0a9d664 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xf0be1ecd rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf1268a7c irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xf14e10c2 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf19070cd security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xf19c7813 pxa_ssp_request +EXPORT_SYMBOL_GPL vmlinux 0xf1a0518c pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xf1a23d37 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1e0df1b ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0xf1e3c5b5 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xf1ecffb5 ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0xf1f5eb20 register_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xf23fad42 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xf263092b debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xf28ecc67 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xf29d580b rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xf2a37c40 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xf2bb941f bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xf2bc60d7 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0xf2dbec92 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf3216139 xen_swiotlb_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0xf3287c4b wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xf32fe1e8 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xf33a0f09 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf35553b4 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xf3884ce7 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xf38eaea8 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0xf3923e91 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3bac538 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xf3c5bfe3 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf3ddb090 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xf4214f56 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xf421e781 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xf4318781 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xf4637d8b __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4bb4b4f perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xf4cdced8 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf4d292f5 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0xf4e9bb52 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5095ace fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xf543236f get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54e7fe9 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xf54f1bea cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5655b46 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5968139 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5b40083 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5c9897c crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xf5dae60a skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xf5f46934 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xf5fa4ea8 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xf6234fdd rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xf62f70b4 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xf63d3a9d get_driver +EXPORT_SYMBOL_GPL vmlinux 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xf64c0b8f dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xf675ed44 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xf68bc95f ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xf6cc6e71 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6f58b77 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xf6f6e7d8 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf7322bc8 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0xf756b9e8 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xf78abf5d rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7a5ab25 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xf7aa18de hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf7f53ca0 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf84d79fe pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xf85e8349 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xf874c2d2 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xf87d4bf5 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xf87d890d crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8c2237d platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf90f3bac register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf9344a7e uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xf9482e87 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xf95c4af8 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xf96aeb94 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xf975db1b crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf983f4cd xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0xf98550af xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xf997d715 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9c0e46a ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9cc85be da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa040689 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa240e32 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xfa3e4f71 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xfa3fc7f6 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xfa45de6e tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xfa486644 ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0xfa9ae626 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xfac9f9b6 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xfad369a1 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xfaeb7143 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xfaffedb1 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xfb18d7d3 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb741dec ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xfbb391b7 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xfbbe7bbe attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfbe016f8 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xfbf07075 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc194093 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xfc1d254e i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc4e0d6b xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0xfc7a0a84 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcc8421f da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcdb229c register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xfcf346ef ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xfd05464b klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xfd2c4d7b rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xfd2dd801 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd7100d2 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd764696 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xfda3bffa inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe520a08 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe8b10b1 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xfe8fb7c8 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xfe945402 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5d3e19 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xff5f2b0e __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xff7e2114 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffb24df2 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xffb6c2d9 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xffbf7c34 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xffc186b3 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xffcbc077 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xffeecc36 __pci_complete_power_transition --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/i386/generic +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/i386/generic @@ -0,0 +1,12616 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x9737e574 kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0xf5f46df3 kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x907665bd scx200_cb_base +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x3a7b794d acpi_video_get_edid +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/atm/suni 0x5ab3cc7b suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xedf8fb3d uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0x012ffc5f bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x5c165453 drbd_set_st_err_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 0x09df2eae pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x3f8e74b5 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x41c31995 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x47b546ee pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x72f0e4cc pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xb08c070f pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xb0a43bf8 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xb6fa668f paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xb8de5dc3 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xcb73930e pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xd376fa60 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xe1429420 pi_disconnect +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x11b3a26c ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1633835c ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x49e93ef6 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9b454d98 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc0ee0021 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/nsc_gpio 0x0ea4c194 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0x6078f9cb nsc_gpio_read +EXPORT_SYMBOL drivers/char/nsc_gpio 0x948e9a4d nsc_gpio_write +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/edac/edac_core 0x52c6377d edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0x5ac1e920 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0x8b9ca198 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0079ace8 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x02a65cb6 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x06776523 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x11586c21 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1ffee58b fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3fa5c175 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x55732da8 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5586c097 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5b41cfa1 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5bfa7f71 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6b965378 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x70682a35 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8212c4c9 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8525abea fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x88a07996 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8f41e7c8 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x996c8a80 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa42af18e fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa831dd39 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaa69c06b fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb53c689d fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb6786645 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb846af66 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbb7d4d3a fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd8bffde0 fw_send_response +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00156c2f drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00a94de0 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00d3073b drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0568041c drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08b0b86e drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0989b746 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ca694f2 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d0696d6 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fc7c1a1 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x123b7f12 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12df832d drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13c0c63a drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19b08c3a drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b81e935 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ba7a38c drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c5d164d drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20e15d19 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2273209e drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24590c8f drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27a9e222 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a0b2938 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ae03218 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2aec489c drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d968a14 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f19334c drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fe77e56 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31b6b12a drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33e154ba drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x343329f6 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3465ed3d drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34be80fc drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39ed00e0 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d97da06 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e13be9f drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41469c24 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4181a88e drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41f85eee drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41fe8795 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42d3dde3 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c9a91c drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43f5e4b8 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4441554a drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4523b372 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45f3c5eb drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x461a8fd7 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4705f5bc drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b798aa4 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d02b5a7 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d06a06f drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dfb923b drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e6d01c8 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x518db705 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53819d21 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x539901c9 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x549b2c8d drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5533759e drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5560c117 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5aa5ccab drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d0b57c7 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d413248 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ded8daa drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5df73727 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f098f77 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f6cbc33 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6210dd48 drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63ba5f95 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6bdfc9d7 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cdf509f drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cdfae99 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f8d1db0 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fffe559 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x700981f2 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x720d32cc drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x735dbcc5 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77d3dd61 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78c884d4 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x797b4e7e drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4841e5 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7be79e9a drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d23bce0 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e599aff drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8171da9c drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83f67f1e drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x841c47b9 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86136af0 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x878d9b31 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8866c92a drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c3374ed drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8efe731f drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x912c23fe drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92f2d102 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x932df43d drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93ad2c48 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9515e0fc drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9574494a drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96b04ef7 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97ff26a6 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bf0e32a drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dc25a34 drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e884d81 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f928ede drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa237e931 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa36894ed drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa672c763 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8793424 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa54231f drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa6d323f drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae2a9ac1 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaea78a76 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf76281c drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb35140f3 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb502f42d drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb71662f9 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb719d4e5 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbad61d2d drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb2a55cb drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc1e8c65 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe555838 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbed514c9 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0050e6d drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc27df45c drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3dbda8f drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4011202 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4a2534e drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc50149d5 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8442654 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc91ee289 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc7909a6 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd7e9ee0 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd9070e1 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf2683c5 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd26431a8 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd343ceda drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3a392d8 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd43e8758 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd51c4a17 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6418fc8 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7f1ab84 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8ea19e6 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9455d41 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda758742 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb0df40f drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb21f5b5 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd5e72dd drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd7588c0 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf4d5cae drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe052efaa drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe070deaf drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe08699e3 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe256edfd drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3553657 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecf59129 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed256cae drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0a0bf79 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3427fbd drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3ecaec3 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3f038d8 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8fc0eb1 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa184928 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfabef351 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc4f8599 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc69976b drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd3fad60 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe68ade0 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x07adac27 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a769116 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b2d74f3 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0cd95279 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1a682e4b drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1c3a2965 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x20adb4af drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x23ba170c i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b30ed82 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33528ca6 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x472b8cfc drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x522c13ab drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6131d8e5 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x62beee83 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x637fef34 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6d1eeda3 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e927658 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6f9b9805 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x751e5e15 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7abe111c drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f9364de drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa25dc255 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa5bb7ffb drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d3a115 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xae64950e drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb39a073b drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc362b696 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf4c05ca drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe9bedfcd drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf18ed707 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf6390a41 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0adadb2f ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x113d2879 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x13119eba ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x145e6a73 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1e86402b ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x20e9c61d ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2434dfd4 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2501c15a ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25392771 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b941579 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2fef5c80 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34c269a1 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x398821ff ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3f4bd6c9 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x43abf5f7 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4915fb8c ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4ea2891e ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x571fad2a ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5b220c1f ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62a2bcb6 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x63890bab ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6622655d ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6cc91ed5 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7f05b5eb ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7f078234 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7f8f4e33 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85477881 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8832162b ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x89b98480 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8a5a6e43 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8efa4fe2 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x92ba434f ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x92da04e8 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x93126327 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x974d407d ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98e87a70 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9a51ecb5 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d82a176 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa3f55cc5 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa5ab8d2 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xadb6bf5a ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbaa2b414 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbd5f95b6 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc2d0d935 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc3253457 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc404922 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcf474188 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5417038 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe68f0d6a ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xee066313 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf2eaa709 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf5752a25 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfb1aa084 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x23525a6a vmbus_sendpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xf0c7ab49 vmbus_recvpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x6092882b i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xeb9ddd3b i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x58517b35 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x912c38f4 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x2d183107 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x71d77a50 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x37838b44 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x8ed679ff rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xa22e5626 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xb93baf0d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc0bf4edc rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x13158ac8 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x16455e29 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x242e4f83 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2bc413c3 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2f8ed401 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4153cd22 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x41654650 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x578e1648 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5d26769e ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x63ad62a9 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6c35a6e8 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbab8dcd6 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd1deaa8d ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd99d5517 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd9fa4bfd ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfd22f353 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xff8ee1c8 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00528da3 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0354d0ce ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03eaf3fa ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a25e2b3 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1128053a ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x114081b2 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1180fb86 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14fc73ab ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x165f53df ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b8cdf5f ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ede4ceb ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2055bbc2 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2119df9d ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x21857926 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2951ba97 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a857474 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ca27c4c ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3c4ce7c2 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3d8d4c5b ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ec1165f ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40ee96d3 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48f1e8e9 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c73f758 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x543090ec ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x597b2fc5 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a93d3b7 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x630daef3 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x699858d7 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6fc6fe4b ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7078067f ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7960ee07 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ac1ac10 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d9664a5 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x815e6e4b ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8422d815 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8735e4d2 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89a02fcc ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8af731ed ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x985048b8 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d3269e5 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e3f8140 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa46b5773 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa4cc35e7 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb369b61b ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb46dacf8 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbad71f41 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdc38314 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbddf1271 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc075dc78 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfd31d09 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfe697a8 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3d27d2d ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4f23b95 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda17962b ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdaa7240c ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd0bb031 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xde31af21 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe0f22e54 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4ffb2dc ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7baf8f1 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9961f48 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeda75341 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf11a535a ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf153eaa7 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf3295b25 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf43a2a7b ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf47e6d2d ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf513d798 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf549a420 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7960606 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb3474e0 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbb97ff9 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfd7204e0 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x03d8c3a8 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x40d30eac ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x69a3af90 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x82f0ea89 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8bb3405e ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x92f242ae ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb47ef338 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc08ff5d2 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd8f02858 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd926e21f ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdf2d9509 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xed56e229 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2364355d ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6e44fd9f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8001438f ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90fbded0 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9c02da64 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa79936c6 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb65f6d74 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf81bcd67 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x094612fd iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x31f71711 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x89da920c iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa0aa4c95 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbb4cd3cd iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc9804fba iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xcf4ae553 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe72f4b58 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x12383b17 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x24c26785 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2ef2e1a5 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3142ce6c rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x31a903e9 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x40ccc844 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6368e319 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6980538a rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x72f83d0f rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7ade415b rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x86f7f621 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa5da7cdd rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa7f3dfd8 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb06afa78 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd5675ff0 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xde5fc227 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe4fe129d rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfa7dedab rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfcbfdb3d rdma_listen +EXPORT_SYMBOL drivers/input/gameport/gameport 0x037b75c3 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x13309f47 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x41a6b614 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4abbfb67 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x52fe6811 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7d067cda gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xaa97ac63 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc5f7e311 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd2156601 gameport_close +EXPORT_SYMBOL drivers/input/input-polldev 0x946bca4b input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x98a054c9 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa70b2e1b input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xbc25db30 input_free_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x45c87f53 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xc3f6f4e8 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xe0a42af0 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xe587c715 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x5cce2334 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/sparse-keymap 0x92070d1d sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x9cbe3e4c sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xabc01818 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb36f1b6e sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xcbad40b8 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd0adf930 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbc9dc160 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xdf5f46a7 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf3bd1692 ad7879_resume +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x05dd9cd1 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x17bd78f1 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x24a0703f attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5d815cc4 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x60d8ec32 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6e221afe capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7fa30546 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8a9ec9c6 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xef61bda2 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfee29a9f capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x28a64ead b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3547b878 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x41a8f13d b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x45b096ad b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4a7dbb4d b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x56be5fc6 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7b580482 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7ddff59f avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x971dc56f avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9f9c04d0 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb0e2e320 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc72b3fca b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe983ff0f b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xefe69bde b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf93d1e82 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x08d4a0a5 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x0b3fd729 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x15cca9b7 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2fe5c500 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x571990c0 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x591e1623 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x71b99cae b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdefcad46 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe03c9a33 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x76f9ee32 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x2b081bfa mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x4103a5f7 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x888cb67e mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xcb82fccb mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x3663e35b mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x5dd0caad mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb15869b5 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x01b9b4e1 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x16e896dc isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4a06cd20 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4c34f665 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xb316692a isacsx_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x6dad0e74 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x82844d13 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xbc715797 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1f665eb4 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x35cb5f29 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x547aef69 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x56e69453 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x64020724 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x68f18874 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6af41833 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6c193f6d mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x72ecfde5 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x73dc437b mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7f379256 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x851ea969 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x87be7789 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa1e7d47f get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa9877b15 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb1f1d33b queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb257afce mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbaea901a get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xde2bd34d recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe7662996 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf80b8511 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x0ca4e32c dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x0d42187a dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x8714686c dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xddb22909 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x0ad6d630 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x20278f56 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6e5457c2 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xd2190fba dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xde4161e4 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe2c204cb dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/raid456 0xfca6adb8 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xd15df79a max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x6d8f53a9 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x899658df mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xafb26799 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x57cffb6a mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xd07ab6a2 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xab6adeea qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18212 0xbce003da tda18212_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0xe895727a tda18218_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x85b3a9ad xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc4000 0xa1eb1b65 xc4000_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x332e9253 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2c7caa9a flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3c730895 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3cd23978 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x43ca7c33 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x460a6767 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4b91ead9 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5845ea46 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x59cc6ad4 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x60083846 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x63bab625 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x67041bd9 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6717fba1 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6a918c45 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x90e8bac9 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9e576b5e flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa2e202d0 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa9d47597 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xabd8bce6 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdd77d2a6 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe002cf47 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x31256810 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x62723406 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xb4e1ff24 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xfadbeb30 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x2ef159bc dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x68265754 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x7b2f78e5 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x88aefee6 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x97d21c0f write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa291f658 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe001f4e9 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe28dc8a9 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf1346410 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xd2ff55b2 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x101a29b8 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1510438b dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x156fbfed dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x196f1ac1 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1f05435a dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x237f7910 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f18c40f dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2fad3483 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x300f2abb dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x34b278ef dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4934abf3 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x49d334af dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4a5d3302 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4c70c35a dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5b0e9087 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6cb23224 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7857b5ca dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x833c6816 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x97e44356 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x987dcfde dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9e7cf61a dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb3f236aa dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb53183b5 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb72b5fa0 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc92de670 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcf34942c dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd0cf2a8f dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd3ee7530 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd8e7a8f9 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xda080602 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe0d1ce51 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe734cad1 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf3801fd2 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfcc0ed9c dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4459346e usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x511a086d dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6e7acdf1 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x9f5433cb dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x9fc2ff3a dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe0cb0c64 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf9fbc368 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcbccbd86 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x002b3891 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x04416646 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x32365d2a dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x40a8e55a dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7284dc3e dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x922f5c55 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xab7acedb dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc6040e21 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xcbde0e07 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd43477c7 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe7219e48 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/a8293 0x06eac2fb a8293_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xb3a9d50d af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x3498a253 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xd844505e au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xe7834af3 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x23dafb13 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xb755dbe2 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x6c75968d cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x2e9cff82 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xc2214d03 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x2a2cabaf cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x1b383068 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x2cd26f74 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cxd2820r 0x44c0ee36 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x0aa5022c dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7be46420 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x93598531 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xa9778b7d dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xf69ebae5 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3aae037f dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x487e488b dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x746c0171 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8e47002c dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xa2c35f2f dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xaa22aa68 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xdce9db25 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf49d859b dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf5ff9c37 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x07d4bb5b dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x5b933ac7 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x761908bf dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8f66ee05 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd0ab73d5 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf6f1290c dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xfc360d74 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x15313a1a dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x23e44c37 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x3e81ab22 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x8f44bb2f dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x094f15de dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0db53a51 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0dc0ad39 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3e3cf19f dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5c622335 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x61bb5bd9 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x81f1dc6f dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x87e89ca5 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9a3c8428 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa2e95832 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xad1d77e6 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb86bc558 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xbdcbf90e dib7090_agc_restart +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd0b61434 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf8385826 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0ae32dfe dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x117f4b55 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x224c0a7f dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4ccb4107 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5750f5f4 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5f288365 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x66195880 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x69a984a7 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x69fbbb11 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x86acd495 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa4473b27 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe5474aa1 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe5dbf0ff dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xf6fc4b41 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x08036fca dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x91459cd1 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xbcb94ec8 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xcd0ebeb1 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xf96b4125 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x3ba77255 drxd_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x954b5ec0 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb/frontends/drxk 0xf0d87afd drxk_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x1ad93f6e ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xa4e68790 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0x59d6503b ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x9ee9cd7b isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x6854b9b9 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xed3a11d6 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/it913x-fe 0xc9fa7b7b it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xc6773483 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0x12ef1397 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xa1525d9d l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x7f16a81b lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xc34878a8 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x9497f06d lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x4de2dab1 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x56505808 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp22 0xd0762c6a lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x6b577150 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0xa179487b mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xc093823f mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xf33dd97c mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x70d5f3f7 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xa1c41957 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xec927662 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x260df1f3 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x99a89e21 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xa30918b4 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x291f66cc s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x8fc3136d s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x5cc03326 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x95a0da5a si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x767d3369 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xd1dd9adc sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x144607a2 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x0d0b0c2e stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xc7958cb6 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xad4e84b5 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x626e37bc stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xd5a05573 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x6de65d0c stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0xf72cc523 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xdcf65e94 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x03669e7a stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x4fb45d8d stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x693d559a stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xf6aa18f4 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xf871718a tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xaeaa2473 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x689569a5 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x3f6f1331 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x5f565abe tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10071 0x077a8721 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x96d2de22 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0xd15317e2 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xac224657 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xc05153f8 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xb50d66aa tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x45c71deb tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xe9fa82dc ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xd5071277 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0xe1ce9aba zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x111f6fa3 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xe75065f5 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x068379cc ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x83aecb84 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xa869ca4e ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x238f2f46 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2dc80eb9 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x516e8254 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb0117b61 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb2a9bb01 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb2fc128e lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xcda1debc lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xe668d891 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/rc-core 0x161d2b07 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0x99c10365 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x76ad175e bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xd4eef871 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xef58c1d3 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6097f76a btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x78d3401b btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x1a50d65f cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x3ad741ad cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x79c06067 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9a04c556 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xafc6a551 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x2c4efe37 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xad0f7520 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x0da7e7ff cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0x0e45778a cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x676ed443 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x7dc2bf3a cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xffb04ae1 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x13aead65 altera_hw_filt_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x5d2e7d0f altera_pid_feed_control +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xe2066d07 altera_ci_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x0ebe0ccf cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x164f578e cx25821_devlist_mutex +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x711c9dba cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x8a3561bd cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xc49d3523 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xd60ae8b1 cx25821_dev_get +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xe7e75dbb cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xeb239d1f cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xf4450584 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x182292dc vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xdda9a523 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x17eae314 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x448dca10 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x696d6f9e cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x7fc5364c cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xaca5a3ad cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xbb51aabb cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x132a29b2 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x34b58cab cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5e6a2152 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x6672eb0d cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xda6e4936 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xe3562026 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x013f8d9a cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0d26fbef cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0eddeb59 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x12b830ca cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1a3d4917 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2a4b2fe8 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4ee548e5 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x52d26a08 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5bc55414 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6dcaafe3 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x888d7672 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x88d4e53c cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x90e903fe cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb25417b9 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb6a31cc5 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc057e5b8 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc9dd381d cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcfdce0d0 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdf350a59 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe83500e7 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfe03ec37 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfea2100d cx88_wakeup +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x288d8522 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x51426d72 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x20a25e71 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x37409606 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x3dea70da gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9f69da4c gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa4542023 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc2760942 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xf44d3816 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x043b1f51 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x18f2b9f8 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2997d564 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x624347a9 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x64cf6b25 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7c201b66 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x81bc27eb ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x8f3928fe ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb3185a7f ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc7061c35 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xea0eab9c ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xfed1e1f2 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x11b1b862 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1cdf18fb saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5bccc7f4 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x706395e0 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x747da45b saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x87ff3976 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9b63a1dd saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xafdc561e saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc44a8964 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xeb7e7d6e saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xeec315e4 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xefaaf0db saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/soc_camera 0x103ae7a3 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x65870c85 soc_camera_lock +EXPORT_SYMBOL drivers/media/video/soc_camera 0x7d350562 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x85a79d4c soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x8f488071 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0xccd2a4af soc_camera_unlock +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x433952ab soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6951757b soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x85d52182 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xcb4b96ae soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x00acae40 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x5633e05c tm6000_register_extension +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x6d6dcafb tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/video/tveeprom 0x1228c8ce tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xd4813ec8 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x3666eaf8 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x791ab099 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc0699aac v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe3a6bc2f v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf052e6db v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x15e3ab36 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x44e067d1 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x74e8a4d8 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x06eae601 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x28f89484 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x723c7a37 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb95d194c videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc9f84aed videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xeb56f5c4 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf2-core 0x3a25919f vb2_querybuf +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x12726da8 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/videodev 0x1e622ee6 __video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/videodev 0x253564e7 v4l2_ctrl_add_event +EXPORT_SYMBOL drivers/media/video/videodev 0x254811ac video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x2dcd2e5b v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x31c0eaea v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/videodev 0x4544aa1b v4l2_subdev_init +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4d360cb9 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x6688e496 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x6950c250 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x6f40dc76 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x7936d64f v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/videodev 0x823ae049 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x91b1e615 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x96827c2a v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x9a1057c4 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x9b4f9933 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xa0761a68 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xa74678a0 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xac15cd7c v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xad1bf5bf v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videodev 0xcb96bcf3 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/videodev 0xd31754b3 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xd4bf05c4 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0xd9326b25 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0xd99b07bf v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xda6dc93f v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xdb3229be v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe12e18f8 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xe29f3ab7 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe3719f5c v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0xe734bd9c v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0xe83006ee v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xe9fd110f v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xee1538d2 v4l2_ctrl_del_event +EXPORT_SYMBOL drivers/media/video/videodev 0xef9007ee v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xf09c0c86 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf4d3333c v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xf6bee5fe video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xf8b09388 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0xfa191b3f video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xfd49abb0 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1d82051d videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x811f3d40 videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xb55532fd videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xbc3cfdb5 videocodec_detach +EXPORT_SYMBOL drivers/memstick/core/memstick 0x18199df8 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1a6a6543 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x24d731e1 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2e8785eb memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3ec075c4 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b5c17c8 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6753081f memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6f9a675c memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7e01afa8 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x85322307 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8c9b5da4 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb77c4da3 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd1aee242 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd5cd3ece memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x03e0ff6c mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0a5c33de mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x18f2f631 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1fce7ed7 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x27ac47c4 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2ae8f1ff mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x496e5fb4 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4af7d495 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b7ff314 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x53af1f75 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x63680c9d mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x767e2a31 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7d17ab76 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x91be21a0 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x93558ffd mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9c6a74be mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa88c1e27 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaa9a0fbd mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xac7c4c15 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb8fe66d9 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb93ca30a mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xce96b2fa mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd0136ce6 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xebd4d0ac mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xec09ebbf mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xef6624b0 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf41d0463 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf6878bf5 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfef38bf0 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0358410d mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1aecbf39 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1c6fc466 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x26a498f9 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x26ed6f1c mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x29f62bc8 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x334a3e97 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x345ee90b mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x37531313 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3985aa79 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5dfb72d4 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5fa5bbae mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x761f403c mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x899d0ac6 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x993c5c18 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa7bb5a8f mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xab213ef2 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb166fbb2 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbfb647ce mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc09fce85 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc4511288 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc9b296b5 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc9f98ec3 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcfa0cfdd mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd1442408 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdb942cdf mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfd3bc152 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x05750a39 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x112c6c70 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x14de1534 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x39b2aadc i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4277995c i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4e08c37b i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7f618501 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x85e31080 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8b4a16cb i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8f1bfe2c i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x98f475e9 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9cc2ee7f i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa9fa664c i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xae2a10c1 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb540eed6 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc997b1de i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd6acf552 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdfd85268 i2o_msg_get_wait +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x5dd0c063 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xf1179226 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0a0f0fa1 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19f1f7a8 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x304d2b09 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x648f3e82 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7c8289a3 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x81e0f888 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x908760bc mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9bc42b70 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa83c26ee mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xad06449f mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb3dae053 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc60a9247 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfdc5799c mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/tps6105x 0x25a4bb94 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x5cc08547 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x8a7cfa4a tps6105x_get +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/misc/ad525x_dpot 0x48e09d6d ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xc22b7507 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0xeafaf244 altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0xc0d26d83 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xfc5e6c18 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x3b2aac15 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xb8a27e82 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x05831806 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x2c10eaf6 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x621147b7 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x64a3d58d tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x973936d6 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xa23a1f99 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xabd45aca tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xacb318b4 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xe31976a0 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xfdbe77b0 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xfe4aa2d7 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xffc3349b tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xe68d4ea1 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x10604bb6 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x28cdc006 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xc62e654d cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x47c3b38f unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x4f7f457c do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb6f76ea7 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xe64fc9dd register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x16fcd430 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xcc77747c lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x2071646c simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x46c6d30b mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0x69fe3fb9 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x0471bf8a nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x11d13649 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x46d4323f nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x945b8371 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xa0bf06e7 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xedadfce5 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf0ef138f nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x297d889e nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x85a3803b nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xe4b98a2d nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x5427e016 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xa9b195c8 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x2d79a86c flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5029029d onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9e305df6 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xdd336d9b onenand_addr +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1f9df2e3 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x42de249a arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x63275e64 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x75ae8eaf arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x935c7850 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa502c81a arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xaaa8b124 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb5ca6e58 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc605274f arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdf012bf1 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x09497e33 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x6d5652bf com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xf973d9df com20020_check +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x09bfee5f ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x0d5e77a0 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x208a1482 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x21500516 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x22a05382 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa7468e09 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xbc7bbb8e ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xf2095a78 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xf53e157c ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xf59cead4 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x2f50c9d8 eip_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x3641f1a7 eip_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x58d389af eip_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x69786f46 eip_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x6c4b725d eip_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x727f7767 eip_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x7bcab6b0 eip_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x99c03fd7 eip_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x9d630177 __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xb51992e3 eip_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xf5d6df77 NS8390p_init +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0xb6ed8ee9 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0xeff71dfa bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x14cf6e3b cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0b055c44 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x137db0cb t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x20682b6e t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x210b5ec2 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x24322856 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x26db6936 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2fc98708 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x446bebfc cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6a278799 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x757ca0e9 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9b32c8ad cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9b36b493 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xabd55519 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb85be41d t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcae3f01c cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd3f4bcfc cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2b589686 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c3719fd cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b78aa04 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x536361d6 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x671c62bd cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x680d264f cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6f4c1c09 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x74644682 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x78ec627f cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8755a4d9 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa34eade9 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xad809cfc cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb44bf27e cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbce50206 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbd4f18f3 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeb28c104 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfb84ab52 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d66704c mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xabe660cd mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6124d6e mlx4_release_eq +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0848d6c5 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3db1441b hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7fcb7153 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb78a2c6e hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe261f1b0 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1a3f3cf1 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1fccb771 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2a982ff5 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8def4840 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x95382ba2 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcc82851e sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe13ff8cb irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe37435fa irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf85c5124 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfbf3e447 sirdev_get_instance +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x620062c6 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xeb27934c alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp/pppox 0x34e8113c pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x6154a607 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x9e67e28f pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x41edef37 sungem_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x1c23f360 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x81ed19f1 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xabbe576c tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcab37d1 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793 tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xee5fae54 tmsdev_init +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x000df2db hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x03bef947 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x09bdbc01 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1b4e369e hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x500178e8 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7804c632 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x89350dd9 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8c4eeb50 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa58c092b unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd9dbee2f register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfaecd09b detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/z85230 0x08267878 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0x086a8023 z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x2aaa8d55 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x38e1b6c7 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x4010bde7 z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x4043a160 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x899b013e z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0x9af6e9da z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xaf7f380b z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xb16c8158 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xb2337131 z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0xd2c8fade z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xd4ffebf0 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xf97f4bda z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0xfcb1398a z8530_channel_load +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xb68d6ed1 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x21c3945e init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x5b304789 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xccf24777 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0f38fec1 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4c9f1df4 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x58427588 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x64cbe900 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x95691f48 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa5972f40 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbb0d2426 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbbe6db00 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe043ae17 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x17f6fa64 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x19c0d962 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x979c914b ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc2f5187d ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0887a31b ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0bb223c7 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c2be0f1 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ca69632 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0cff8faf ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0dac9fcc ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e3b05e0 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ec23540 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1137a2a2 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1237e907 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13def4d9 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x185a9f65 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1992541c ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19ff050a ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b082f36 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1cf91374 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21b3dc71 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24264908 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x330acdd3 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x342a2390 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3672d43e ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36a701be ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37d46a05 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42cee922 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x460de8c0 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e6c6a49 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x52400583 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59580d29 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a841d43 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ef9d46d ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61697e9f ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63db7fad ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64e80a26 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66d6594e ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b42bf98 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6bebd0c0 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73a5f3b0 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x759832ad ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77158215 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x782e364a ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79910231 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a2ffb75 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c529828 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80cd2ff7 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83fe6e1d ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88fa34ca ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89d56ffb ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8afcc17e ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f46205c ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92d01146 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x96740258 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97a61401 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98294673 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d9b542f ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0d7a846 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8055ca6 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad4978e5 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae9b88b9 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb223d5ff ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3763eb8 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb5e36c5d ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba694bb5 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb0ec6f7 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbcbe7952 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc165fd1a ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc31e43ac ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc335eb98 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc9af90a ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1047ca4 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd44bc765 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5a83204 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd6ae28ea ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd71603e0 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd927b30a ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda681fe5 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe12346b4 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3488746 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6d87cc6 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6f05752 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe84fdc83 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea6af96b ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeffd1ef1 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf01a3ac0 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf060c876 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf22fbea5 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5284837 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9013489 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb7dfd0a ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/atmel 0x8c12d1d6 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xece08fd6 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf621f740 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x6127b538 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x67a9c147 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1a210f12 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1c753daa brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4379dcfb brcmu_pktfrombuf +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6d669c58 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7023f98c brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9a397720 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9c85847d brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9fb5bd5e brcmu_pkttotlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb7167c4c brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc652e211 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xcb6ea834 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xeaf2274a brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xeb72c2f8 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf2052dc5 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1be915e6 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1f607f7f hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1f97ca8c hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x24586631 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x321f28cd hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x37511194 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x42adbec5 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x539e7ddf hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x53d3e2b7 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7e5c5b56 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x876ad653 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8b33c1cf hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8c274979 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8ff20510 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x93da16c3 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x97961ad0 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa361869e hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa4a560d6 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb326e1c0 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb529f0ae hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcf943404 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xece0aa0f hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf1630944 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf45648f9 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xff80fb07 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x078ee2b7 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2fb30df8 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x33543360 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x429b6430 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x54877cd5 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x60f690e6 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6dc80786 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x73c7af97 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8fff2c1d libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x961cdf4a libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa1b2ac58 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa6de6c9b free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xaa803680 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb2158e87 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xba87d2c9 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbbccca40 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xda2f3f68 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdc0c5e2c libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdc0e9db8 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdeb9be99 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf99a4158 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0086e315 iwl_legacy_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0362d3f0 iwl_legacy_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x054a4218 iwl_legacy_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x05900fc5 iwl_legacy_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x09af8ec0 iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0be09897 iwl_legacy_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0d6fd5dc iwl_legacy_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1302e042 iwl_legacy_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1425142e iwl_legacy_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1455d8f3 iwl_legacy_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x159f6fcf iwl_legacy_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1ac1eb89 iwl_legacy_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x216c2d4b iwl_legacy_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x21c1f35f iwl_legacy_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x21ef6dc2 iwl_legacy_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x23bc77c8 iwl_legacy_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x27e084f9 iwl_legacy_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x29f40130 iwl_legacy_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x29fcd541 iwl_legacy_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2bfb08cf iwl_legacy_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2d77a351 iwl_legacy_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2edb622e iwl_legacy_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x30167869 iwl_legacy_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x30e48824 iwl_legacy_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3196a38d iwl_legacy_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x31e0fe55 iwl_legacy_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3ef408fd iwl_legacy_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x41fa2d54 iwl_legacy_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x435f0522 iwl_legacy_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x43c3f3f0 iwl_legacy_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4b86a8b1 iwl_legacy_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4d953b73 iwl_legacy_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4f32962b iwl_legacy_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x514eeed3 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x51663cd9 iwl_legacy_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x522bae4e iwl_legacy_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x55d4f49f iwl_legacy_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x582b00e9 iwl_legacy_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x59ec79fd iwl_legacy_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5e14d7ca iwl_legacy_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x63df07ae iwl_legacy_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x64dac95f iwl_legacy_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0 iwlegacy_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x68483a56 iwl_legacy_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6ad729e6 iwl_legacy_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6c0b25a3 iwl_legacy_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x72133b6e iwl_legacy_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x72d89f50 iwl_legacy_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x765a1a92 iwl_legacy_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x78974195 iwl_legacy_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7949c334 iwl_legacy_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7baf4882 iwl_legacy_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7d144fd2 iwl_legacy_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x83440c10 iwl_legacy_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592 iwl_legacy_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8bc0d569 iwl_legacy_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d01783d iwl_legacy_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8fe4c1c5 iwl_legacy_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x95312af0 iwl_legacy_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x97537b6f iwl_legacy_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9926fc43 iwl_legacy_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9c208f85 iwl_legacy_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9f568533 iwl_legacy_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2 iwl_legacy_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa7ee0f72 iwl_legacy_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabe48768 iwl_legacy_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xac1159e3 iwl_legacy_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xad51a291 iwl_legacy_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xae019207 iwlegacy_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb178c15b iwl_legacy_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb19f2640 iwl_legacy_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc0c6a20b iwl_legacy_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc7bf80c6 iwl_legacy_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcbed18d4 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcc1c2bc8 iwl_legacy_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xce47bd89 iwl_legacy_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd6e27598 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd76b4eb1 iwl_legacy_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd89275ec iwl_legacy_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe8ed678b iwl_legacy_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe90db659 iwl_legacy_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe9b8f56a iwl_legacy_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xea426694 iwl_legacy_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xec0cc925 iwl_legacy_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xedf80cb7 iwl_legacy_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xee0fdde2 iwl_legacy_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf07b860c iwl_legacy_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf42352a1 iwl_legacy_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf42f2d4f iwl_legacy_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf58a28c9 iwl_legacy_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf87b1379 iwl_legacy_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf901e326 iwl_legacy_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfb58781e iwl_legacy_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x60faee03 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x61c5e32e __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x65489f9c __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x726d9621 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xb6c345da __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xcc312d73 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xd1d62dbf __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xd915418d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf7769239 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0dfc99e2 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1ec25baa orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2517b5d3 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x33e0904a orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4d833d80 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6d16fd11 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x866d1133 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x944cd6e8 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d0b87b4 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d11d3ac orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d4f6915 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc6e58f52 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcef68c36 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd50420fb orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xda2a220d orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdde48295 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xef3c5314 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x02c05614 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x13886a06 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x24f5a755 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x375656c5 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3c760313 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x40cf3074 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x45281e42 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4b3d36a4 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4cf8bf23 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x53aa2fcb rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x55a3a3ed _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5ebeb294 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6448ffef rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x72d5151d rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7d0d93e8 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x828cb9f0 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x85646ca4 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8ff5ebfe rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x93a8c336 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9bc751e0 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9f11d252 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9f4e36f4 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9fa62e28 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa0e1723e rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa2ba58b7 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa7c8e14c rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae0337e3 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb106a374 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb581dfe8 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb77b3bc8 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbd2233e1 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbe131e2f rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc47047e7 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcd88f786 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcfc0177c rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd616239a rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdd99a67c rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe4711f8d rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe72e29e5 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf03f4024 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf30dc30c rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf3fdf847 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x01c6b68c rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0fd18b6e rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1bc8d926 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1edaefa4 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x36f5d08e rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x505d2ff8 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x518ece30 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x547cd2f0 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6723adb2 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7126d486 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x74f8a2c5 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x77c1afda rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7963ac44 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8f9bdd1a rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9b69f694 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb2677964 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb2ed5a11 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb6bfc9a4 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc7c1f039 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xde9eda38 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe0c2b82b rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe9fbc3cf rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/parport/parport 0x0593cfa7 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x10d52473 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x114b91d6 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x124d8011 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x15923cdf parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x1688f5b6 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x189236c3 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x22a6e2f5 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x23c7b22f parport_write +EXPORT_SYMBOL drivers/parport/parport 0x3378a87c parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x39da3505 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x4a30799c parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x4aebb494 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5b3d773b parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x66761543 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x70df60a2 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x8bc2f6fc parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x908d0800 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x92ee2217 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x9975d4fd parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xae7c9d2a parport_read +EXPORT_SYMBOL drivers/parport/parport 0xaee1eb12 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xd06ed414 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xd9190870 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xd9968330 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xe1da7ee1 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xe406ba96 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xf970e480 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xfb15d517 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xff29a0e8 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport_pc 0x40661b7b parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xe8cd81f8 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x078881a0 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1504a59f pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1ae17d79 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x29a4c037 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3047e3ac pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x420d34e9 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4ac97763 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x58e3a40d pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x621f9cc0 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x70508dff pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x73878a98 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x82caa9d0 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x942788c5 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9cad5480 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbc4434df __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc322c025 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdfdb98a8 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe8c2e4c1 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf607cdd8 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4d68b2b1 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x609068ea pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x64a4d69a pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x73ab18a0 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8321833d pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8d4c7cbd pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaa2a8638 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb61ec023 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbf0b9ffa pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc55a2a48 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe268b7d7 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x3205cf57 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x5446762b pccard_static_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x355bdbaf pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xdc4a4e6c pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xe36ca113 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xea2fda53 pps_register_source +EXPORT_SYMBOL drivers/scsi/53c700 0x3d9cece0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0xad025d72 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0xea1f9a7b NCR_700_detect +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x040081e2 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x851f098a fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x88b04975 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8dad95fc fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa327584a fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xab396b41 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe37ea5cd fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf1702ddd fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xff69d9e5 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00d9ff8e fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x037ffa1f fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1375d473 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x151a6058 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x17480ccd fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x17fa3ee2 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x18112a7e fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2213e0df fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2c075ca8 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x371b976b fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3d90fc42 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3edcbb33 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x452174ac fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x453ead40 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47195352 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fc5f131 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x517dcdc7 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5552091b fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5774e61e fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5a936c33 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5dabcd1c fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6b9e1331 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6ee3995e fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72a12854 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75bf74b4 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x77a9be56 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7860683c fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7cb68d9d fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7df0dff2 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8410c150 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8d4b2f67 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a34775f fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9c657360 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa30632d4 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3e5cb58 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa5393a59 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb2196f5a fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbcc13899 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3be323c fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7da7bcf fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7e90458 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc820c661 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd48b7a2c fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd992c13e fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdff7388d fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6ae3e2f libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6f10e9c fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeee63a7d fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfce5c905 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfe9a1bcd fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x65ce6256 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x080821b1 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x09746f3a osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x177218e0 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x44b476df osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4604d6cb osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x47a63fac osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x486abf74 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x51ad0ebf osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x54736ddb osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5e3c5812 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x64d2851e osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6b08a73c osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6dab28b0 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x742245cd osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7539bdd6 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x848dfa53 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x85f72668 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x88f1dcd1 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9896091d osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9edb0847 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa1f2ac09 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa4fd78ce osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa7255f8d osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xae0e0874 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xae498f8a osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb31e024b osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbc33e24e osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xca169e33 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcfea982d osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd80c6bb4 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xda2d1229 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdfb71646 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe3fe22bd osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe7abf823 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf68c2fb3 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf8faab33 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/osd 0x2705c566 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3754cdb2 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x613060d9 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9b2eaebd osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9e709c99 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xcf5af247 osduld_device_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x003813b9 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x36bec7bc qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5d5ae5ca qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa70dcfad qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xefdab53c qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf1b6fdcc qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x80fa403a raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x93d900dc raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xe46d6470 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x20783c4f fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2e5ee09d fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x32b5c8fb scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3dbfef28 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5284c8d9 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x60bbade0 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6d12bf81 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6f3a6aac scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9548a794 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9b6f853c fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9d9ed504 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbac42985 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcf7a0434 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x04831bdf sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0abbfdc5 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x38ed315b sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3c5cf32b sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3e592ab5 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x45bf9b14 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4ea16317 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x53b3fb46 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5fbc179e scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6664c22c sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8f6ab03d sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x97733989 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa135bc8d sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa8e9bcc5 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb2bcc09f sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb546e777 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbcbaa588 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd61f0913 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xddfcd3b1 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe6b6a0af sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe77c9b98 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xee75a034 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf06cdfa9 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf62f3b81 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf69268e6 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfec46b8a sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x156d9ee8 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x2a683993 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x2fa6902e spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x62e03eb2 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x776874dd spi_attach_transport +EXPORT_SYMBOL drivers/ssb/ssb 0x02aeaa51 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x27bbdc45 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x28b5163c ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x34ed4a23 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x3a4ca24e ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x3b948f63 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x5923e383 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x6b98a418 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x6ef437f6 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x73fd72ec ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x76937bfc ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x90e11df4 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x9ac21161 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x9d85909b ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x9f62a533 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xa96b22cf ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xabd68f7b ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xb98788cf ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xcbfa736b ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xd0ea2dba ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd5be24f4 __ssb_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x23d4a0e1 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x31b42727 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x34160125 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x34650169 comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x37f7a839 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7d231898 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7dab6c10 comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x90999537 comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9627deb3 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xb8420f7f comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xca2e973c comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xd71b898d comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe511559a comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf499b704 comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf578c65d comedi_error +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x186bc917 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x6a89e3a8 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x6ac7bd73 subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xc006e252 subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x685d3224 cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x91f8e881 cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xff2bdf18 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x153a5d23 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1e266f82 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x29a48d89 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2d2d128e mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x35a1a87d mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3872bed6 mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3c36c262 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3f4aacc5 mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4cd6ce65 mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4f803b1e mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5e9f4296 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6317cd71 mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7e6811ac mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x956514a0 mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x99b087c8 mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xab0d7731 mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc32abd5e mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdf2f98aa mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xeabf0155 mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf9cfd084 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x4788ca72 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xf0b36b95 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xf5dac5ae subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xf81ab40a subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x90289f57 comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x08471aa9 comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x2add0892 comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x5e8c3fbe comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xa50e044f comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xfb357369 comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xfc7d0b8b comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x2ac00483 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x4d23506d adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x950e19fd adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xcc4fe9b2 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x01668cb1 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0539434e iio_buffer_show_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x056d691b iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1cc8dccb iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1fa2437e iio_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2448ee7b iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2a836a65 iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2cdd003c iio_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x418fc1eb iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4a3c04aa iio_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4b4b8f01 iio_buffer_read_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x677bd358 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x770b3d94 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8033d8bb iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x90afee54 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x910bccc7 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x990b0782 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbd28904d iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc666d472 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc6c63702 iio_buffer_store_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe1b54a38 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf5bcac77 iio_buffer_write_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf726c93b iio_buffer_read_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf82adc7c iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfce9ded1 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x0dbb3e73 kfifo_access_funcs +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x886819e8 iio_kfifo_allocate +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xc021cbdd iio_kfifo_free +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xdb75b561 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xe1d859d4 ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x2906d805 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7ba867ea ring_sw_access_funcs +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8f8754d5 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0xcc88fb17 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x186bc89c go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x3b9dbbf7 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x49450d3f go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x626cd062 go7007_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x7b3307e1 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x90ec15df go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xb35c7740 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xf22aed0e go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xfda2a1bf go7007_snd_init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x07e0da5f DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x14528e9f Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x19b15b87 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2240a4e8 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2323b4f4 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x239416f7 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x28c22b04 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a5f848d ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2eb9e073 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x461a1df7 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4721c071 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b836b18 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x56ca2c50 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x56d12561 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5bd18b2d ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5d9cdbde notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5ea900a6 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5eb8a58e ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x69c73296 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6b0c63b9 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c0d3ff5 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6e74e832 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6e93c6ec ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71c501e3 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7c8f1d11 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x803780f1 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8347a823 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8a34bca5 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8cd40a25 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x90b68fa2 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x97d0d796 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x99fbc615 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9fdda834 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa472c314 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa49ac499 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa62ef14f IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xabc0e8c7 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb18e9bc4 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7c1baaa ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbd8ff927 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc6c91a66 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda9bc23d ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdc5a3b08 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdf90a1b1 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe1cf6ae6 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe88eb33a ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeb7d6887 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecd22cd3 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf1aa4fbb Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf1ecbbfa ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf8a1f24d ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfba15bd6 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff000a1c ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xffc7aa79 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0aaf4101 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x182310d6 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x18e748c7 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x21ea0efb vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x251b9ed8 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x3d1af350 vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x5f39ff7a vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x66227eae vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x6a4be5a0 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x75c56fa3 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7d76a43a vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x7df3e742 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7e39ee15 vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x93dff61f vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x94b2590f vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x9ad29200 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9e590400 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xba2a125e vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xcad4ebcd vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xd2592226 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xde7c4ce4 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf1183882 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xfa322803 vme_irq_request +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x050095a2 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0a638643 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x0cea0e67 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x21c3cd31 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x254009be iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x269ae5cd core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x279acf88 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x28a0edf6 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x2f1a3e4e transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x322bde9e transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x3336c31f core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x3aeed0a8 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x3c0719a1 target_get_task_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x44ee66b8 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0x51434540 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x55bd228f sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d56923e target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x5db880d2 transport_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x71b1afed fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7aedfb07 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7cffe2f3 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x7da2ac85 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x8033b426 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x8457b953 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x86cc64b4 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x88dc2842 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x89239f6b core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x89f47f7f core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x91cb305c transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x955f206e core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x95e6e1e1 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x97c1263d transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x9b1fa07a target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x9cb563aa sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x9f3629af sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x9f5667e2 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x9fa81abd transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0xa38854cd transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xa463e2cd target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xa588dd5a target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xac79f44a transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0xb2ab26c1 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xb4a3fd61 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xb667e0f6 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xb6e4cb7f target_splice_sess_cmd_list +EXPORT_SYMBOL drivers/target/target_core_mod 0xbd8e6037 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xbf47c286 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xc2d93abb transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc3c324ae transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xc518371d transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xc7ebfd3c transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb43528f fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xcc65bcdd fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xccfc44c0 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd09f6422 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xd8eab0bb transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xdc91bedd transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe9ce3fbf transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9825db7 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xfca6c3fe core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xfd472289 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/telephony/ixj 0x85056e92 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x4ae54907 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xb7bb7e86 phone_unregister_device +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x4c4e0730 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1477916b usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x16ed5e87 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x32a6ba7f usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x61a44db8 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x633ffa92 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x68b20d42 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7d8646c9 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9f51d504 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa93f6bf6 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xabf0ed4b usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc25bafd0 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe009e782 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xefd5cada usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf0d85ee8 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfb171ed0 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x13da9d11 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xf7d5e987 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x6145dcde lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xcde71b8b lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x6390922a cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x2d4cae31 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x865ded57 display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x73a005f2 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x4d791473 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x8e9abeeb g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x93b0b43b matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x97e7dc38 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xcfff8205 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xdbf75a44 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xefc0f833 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xcb269ba2 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xafb0704d matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x117abb1d matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x4bec8109 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x948bfbc9 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xb060c7f5 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x02307edd matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x8358ab81 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x55ca0e4b matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x58b887a3 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x65ce48d4 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x85faffe4 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xdc70bab8 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0xc0297076 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x1f086136 video_output_register +EXPORT_SYMBOL drivers/video/output 0x9624e8f0 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x25952f63 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x2608ca6f svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x4d2c35ac svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x549b03a1 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0xae223e72 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xda048387 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xdba1089a svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xfcae81ec svga_tileblit +EXPORT_SYMBOL drivers/video/syscopyarea 0x2296085a sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x55789280 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xe9c25f9e sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x148ed617 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x4d2c043c w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x239cd103 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x8fa1cea8 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc251007f w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd5c554fc w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x053f0604 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x62c11be7 w1_ds2780_io_nolock +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x75f8711b w1_ds2780_io +EXPORT_SYMBOL drivers/w1/wire 0x070384ea w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x26fd972b w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x2ccec4af w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xdf74e872 w1_add_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x080b70c3 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x32546054 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x354100c3 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x5ee09cc8 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x64b0e6c3 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x70410f6d config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x73037536 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x904815d6 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x93c0c7bd config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xac8a910d config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xafa43599 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xaff44656 config_item_init_type_name +EXPORT_SYMBOL fs/exofs/libore 0x011500ad ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x01e90227 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x32c1865c ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x427ddf29 ore_create +EXPORT_SYMBOL fs/exofs/libore 0x51a57d65 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x52658adc ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x6933613c ore_write +EXPORT_SYMBOL fs/exofs/libore 0xa15455e4 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xdbe4324c extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0xef1b075f ore_read +EXPORT_SYMBOL fs/exofs/libore 0xfdd88fd0 ore_check_io +EXPORT_SYMBOL fs/fscache/fscache 0x06d0052c fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x128ae5ff fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x28c82304 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x2ea14e05 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4f3805bb __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x59894b24 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x59f31e42 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x6365dd67 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x74e43bdd __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x7ab8599e fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7df3bddf __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x81e651fd __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x825d614a __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x8420aa20 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x88246071 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x8cddc587 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x90bd80a2 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x9264b080 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xabc13be5 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xbc62e13f __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xbefeb459 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xc2a2ad0d __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xc7c0cd47 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xe2c861d0 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xe8066ccc fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xe8e1fe38 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xfa4890cc __fscache_alloc_page +EXPORT_SYMBOL fs/nfsd/nfsd 0x0c8d6829 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xcbb738be nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x02485680 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x14f0b145 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x42abff03 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x659f70c7 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xcd1e65ed qtree_read_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0b32de39 lc_del +EXPORT_SYMBOL lib/lru_cache 0x210f1ee2 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x2646306c lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x2b2226bb lc_get +EXPORT_SYMBOL lib/lru_cache 0x529f72c2 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x5e941862 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x6b3233cc lc_set +EXPORT_SYMBOL lib/lru_cache 0xb2cd4f4d lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xbbc51b84 lc_create +EXPORT_SYMBOL lib/lru_cache 0xd146d9a5 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xd3bb6860 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0xdf43d805 lc_changed +EXPORT_SYMBOL lib/lru_cache 0xe5aa47bc lc_put +EXPORT_SYMBOL lib/lru_cache 0xf933aa17 lc_find +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0xa2da3297 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xe22d1385 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0311dfa6 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x0b54878d p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x0d3f3dde p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1122a076 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x12b837c7 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x27f9a92d p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x2bdb67bb p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x3205e0e1 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x38b7f880 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3d896264 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x40186f46 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x40d3e4df v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x41fd6702 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x465e7d23 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x52800693 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x560fb469 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x60e5c110 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x657c745c p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x66f9280d p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x77a6bd94 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x78bbfed3 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x878e1e65 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x88c489fa p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x96344161 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xa072d5af p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xa11209f6 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xa5aa3586 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xa85675ae p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0xb36ee182 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xb4a67b30 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xbc8e6698 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xd0099d14 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd8eda45e p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xda979399 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xdf8b9a4f p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xe5404dac p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe61a0bfb p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xe7504188 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xeda19a1c p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xeffe166d p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xf41c01d9 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf793e3b8 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x096e5828 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x10d0440d atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x5e882a59 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xd5c2760d aarp_send_ddp +EXPORT_SYMBOL net/atm/atm 0x0a7bed41 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x0ca76746 atm_charge +EXPORT_SYMBOL net/atm/atm 0x15e539c6 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x1e4fe8ad atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x38bf0ece vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x4085a639 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x59c537d8 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x5e232466 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x7a22fa4c deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x93136f41 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa797f602 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xd6dae136 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xda0cec92 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xe42bd319 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x19e939d3 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x35c542bd ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x3a143d83 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x87759227 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xb82a04db ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xbf814e3e ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xefe98303 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xf2024081 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xfb9d1732 ax25_linkfail_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x036dd6d7 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1165f7cc bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x14883f14 hci_le_start_enc +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1ab6a06e hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x201edce5 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x20c81c4a hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x230fcd82 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x25259556 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2886d662 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x299126be hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2a3e54ac hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x30f77731 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x355f5dba hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4008fab7 hci_le_ltk_reply +EXPORT_SYMBOL net/bluetooth/bluetooth 0x41df48e1 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x41e92436 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289 bt_printk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b5e2bf8 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4d8c656f hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x609b32a5 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6ec23e20 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6fb69d40 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74065791 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x767e0870 hci_find_link_key_type +EXPORT_SYMBOL net/bluetooth/bluetooth 0x773f4066 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8550c737 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8607ed88 hci_le_conn_update +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9073a13b hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9fcf78ed bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4a3e56d hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaac079da hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbfb02280 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc19d2106 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc422637f hci_find_ltk +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc4c52f60 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc7b58fd1 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5679ea9 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd632579b hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe538b765 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf2e46e94 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf6c97685 hci_register_cb +EXPORT_SYMBOL net/bridge/bridge 0x7e4f7ac3 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x3c4bc665 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x97129198 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9efc83fb ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x2296adab get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x35b49017 caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x504da5e8 cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x5807d88d caif_free_client +EXPORT_SYMBOL net/caif/caif 0x63e9812a cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0xa24cd732 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0xab76ffce cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xe2a59eaa caif_connect_client +EXPORT_SYMBOL net/can/can 0x29a33cae can_rx_unregister +EXPORT_SYMBOL net/can/can 0x664b5380 can_rx_register +EXPORT_SYMBOL net/can/can 0x761cd76d can_proto_register +EXPORT_SYMBOL net/can/can 0xc1e0c305 can_send +EXPORT_SYMBOL net/can/can 0xca626dda can_ioctl +EXPORT_SYMBOL net/can/can 0xf7c8fc9f can_proto_unregister +EXPORT_SYMBOL net/ceph/libceph 0x0449a063 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0a267fef ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x0cc2787d ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x0dd8111d ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x0e3d0216 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x11de470e ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x12ab3197 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x16d1d287 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x18e956fe ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x2a2fad6c ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x2e3c69d8 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3cb34078 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x3f0c93a0 ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x43363f43 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x45532f57 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x45bf8de7 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x509da862 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x50b089ca ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x660fc0da ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x6bcaaf78 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6e9d91a6 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x715269c9 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x716b6d1c ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x74daee66 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x75a70c29 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7c362e3e ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x7fab0f60 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x82ca82f6 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x886f3f5b ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x89d5a8bd ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x8e56cf85 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x9e82d1d4 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa14f06b9 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xa322cbc5 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xae52c40b ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0xaee7f548 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb0335a16 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xba95d3cb ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcad9bd84 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xcb4f14ca ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcb599137 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xd01b645a ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xd0f45975 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xd18838d1 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xd1dd22d6 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd67e731f ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0xdbba4063 ceph_osdc_wait_event +EXPORT_SYMBOL net/ceph/libceph 0xdd919e6f ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xe27babfc ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xf329cb42 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xf4ad7af6 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xf59f0e76 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xf6ca37dd ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ieee802154/ieee802154 0x02e7b7cf ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x036aef7d wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0b07d66f ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x25eb892f wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3968172a ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3f99e5bd ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x471cc8c4 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5e355540 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9ae77fdb wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa8ffb320 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xcf82910c ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd4a43222 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe3f78f48 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x23b543ba arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x34c0e065 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd88b70fb arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x08708d12 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x637937bd ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf4b79732 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x29252cfd __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2bd81449 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x3f5f1e6f nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x49ee790c nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x638d0d09 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x75432d30 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd9ea9500 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/tunnel4 0x15cdf645 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xfb769d63 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x50d667ef ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x6258abec ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x77c1f3f2 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xfb29d008 ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x2f6f1f03 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xb3846aea xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x517044c3 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xbdd16169 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2c082294 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x43516468 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7af53c39 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7d9bf8d2 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xafffb5f8 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb68e5250 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe0a9855f ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf1d1fb38 ircomm_open +EXPORT_SYMBOL net/irda/irda 0x01dbeb0e irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0b49aa76 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x0bab6037 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x12235cbb irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x16e531c2 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x1fc68c23 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23a2eee7 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x2691ef71 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x2cc54db1 proc_irda +EXPORT_SYMBOL net/irda/irda 0x318cb96d irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x34ec4a71 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x359de411 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x365e9b19 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x37f2f391 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3b0a2ab6 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x3b9bdefe irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x405583d0 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x428321fa hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x48d17824 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x62acf28c irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x63845999 iriap_close +EXPORT_SYMBOL net/irda/irda 0x648c7478 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x73d5c1b2 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x772b4569 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x78a3349e iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7d54adaf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x7ff509a2 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x81aa8a8a irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x8cd99be0 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x8e431ef6 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x93d69efc irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9e326eb3 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xa370c681 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xb54eebd3 irlap_open +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0bee29c hashbin_new +EXPORT_SYMBOL net/irda/irda 0xd4cbf90f irlap_close +EXPORT_SYMBOL net/irda/irda 0xd9d3886b irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe159e950 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xe480aded iriap_open +EXPORT_SYMBOL net/irda/irda 0xec0a4b76 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xfb526475 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xfc9cab62 alloc_irdadev +EXPORT_SYMBOL net/l2tp/l2tp_core 0x9da5f399 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x0feb2b7d lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x195655df lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x1dd0ba09 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x1dec8f0e lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x2798f874 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x32fa3c06 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x66ae47d1 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xd53a0718 lapb_register +EXPORT_SYMBOL net/mac80211/mac80211 0x1048e989 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x15701db7 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x171af17b ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x17217a33 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x1c9992ab ieee80211_get_operstate +EXPORT_SYMBOL net/mac80211/mac80211 0x293e49d3 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x2ea22b7c ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x34482235 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89 ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x3d48d187 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x3eb34d15 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x43da3b36 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x452c3c1b ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x4925a441 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x4d0d8364 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x52901859 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x5374430f __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x583f6458 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x59739000 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5d64ede4 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x5f835ea5 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x63c091ed ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x63caa554 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71 ieee80211_sta_eosp_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x68395803 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x6fdefa73 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x784a1d84 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x7b8cb599 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x7ec9f368 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x80c2d6f4 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x81215a00 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x82297f2f ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x823993a6 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9b4a59b3 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x9ed42a85 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9f33b693 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaa2ab377 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xace47533 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0xb09d785b ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xb1786321 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xc06602ac ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xc3ab168e ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xc6b3fa30 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc9b37620 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xcf2e1c2d ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xd134d484 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xd40203fb ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd4a2bb72 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xd9c68c35 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe09462b9 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xe207cbbf ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0xeae68f84 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xeba14d72 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xef9de28a ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xfbbae02f ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0xfc9bb55c ieee80211_rts_duration +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x19d825d0 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x30abf87c ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4f243338 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x64de6b80 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7698b04e ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa26fcb09 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa66cc63b ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbce57f3c ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbf7d48bf ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc87423cb ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xde3d40f7 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf1267bba ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf27da67c unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf38f57fc register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x0ebc3fa4 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x1083163a __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xd846d356 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x1400d0d1 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x22a0c27e xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x3438dee6 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x4076dd20 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x428bbe35 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4bb4eb54 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x64355abc xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x665c32a0 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x98e4c166 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xac315b16 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xf81d56eb xt_unregister_match +EXPORT_SYMBOL net/nfc/nci/nci 0x75cd8ce3 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xce3cddad nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xe575919d nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xee3b721b nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xf11f3fda nci_register_device +EXPORT_SYMBOL net/nfc/nfc 0x0fa3b73f nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x10b5c520 nfc_alloc_skb +EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e nfc_printk +EXPORT_SYMBOL net/nfc/nfc 0x34feb439 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x3e73fa5a nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x6f7f6b79 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x8d063409 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x96a33a98 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0xfd4ab716 nfc_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x1db5768d pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x2b16681b phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x474df171 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x85c3ded4 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x9cc746f8 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xa991f70c phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xf8a1e284 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xfedb20ed pn_sock_unhash +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x017e4cf7 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x198f25df rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2d58844e rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x31215264 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3d941a0a rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x49b4b060 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x71c0a1c2 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x88ab04af key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8967c548 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa43b4f7c rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbb0a21ad rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc8563a6b rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc866ad68 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd2dff53f rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd51a2ba1 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71cbc045 svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x22e536c8 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x3b6bb13b wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0xfaade21f wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x03a188aa cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x05c8742f cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0b757260 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x0e6da284 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86 ieee802_11_parse_elems_crc +EXPORT_SYMBOL net/wireless/cfg80211 0x1335eb26 cfg80211_testmode_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x22f2d16a freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x289e1939 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x36c93f1c cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x39a43690 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x4529d70c cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x47879500 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x4848fd8f cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x4df7ca05 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x55e82e21 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x57d401a6 cfg80211_testmode_reply +EXPORT_SYMBOL net/wireless/cfg80211 0x5aa89052 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x5d65c53e wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x67d7e939 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0x752c16a5 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x76c73c05 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x7b37bd42 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7cca9673 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x7d12fde9 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x81eca514 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x82d8f9c4 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x861a7b3d __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x874cbcc8 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x8cde6105 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x8d497ec0 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x8f401cc7 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x964b3543 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x98b0f035 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x9bf01ae8 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xaa00d12e cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xb140daea cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xb432db88 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xb70aa35a cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xc5235ba2 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc9eca07c wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xcda7fe57 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xd7ce0413 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xde486243 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xe2bbd5f2 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xe38ae697 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xe504d720 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xe7037441 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe910c207 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0xe9bb91dd cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf2c69204 cfg80211_testmode_event +EXPORT_SYMBOL net/wireless/cfg80211 0xf6e853cf cfg80211_testmode_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xf79d512b wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xf8772f99 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xf8cfd7fa cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xf92fd795 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xfb8f1afc regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x1c9194f5 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x26249fec lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x98e1deae lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xccec50c0 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe4f9e047 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xf94d8120 lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x0aae0574 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x80a1c15f 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 0x3ae9d930 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3cfdf9a3 snd_seq_kernel_client_write_poll +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 0x71ae471a snd_seq_create_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 0x7b93be50 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x8fcfc071 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xf479755e snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2b51b084 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x350963b4 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7f62d029 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x83914b9a snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x92ee6bb0 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x9e7d3f0f snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbc141dfc snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf2bf1549 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x46ad3821 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x00864263 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x04a1b606 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x04dd0e98 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x058267c8 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x0f9ad192 snd_cards +EXPORT_SYMBOL sound/core/snd 0x10704474 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x1211ab5c snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x1341e38b snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x15c6cdc5 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x1773c062 snd_unregister_device +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 0x19d75f70 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x1fdbfe42 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x24b729f3 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x28486d02 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x33dba6fc snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x3452e033 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x36802a44 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x3942d368 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x420f8e06 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x4a1e3e61 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4a63b9c1 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x4b329c34 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x4e14471d snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x5749a69b snd_info_register +EXPORT_SYMBOL sound/core/snd 0x5af942d8 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x65c197be snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x674a5a55 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x69f743b3 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x6cd2cb31 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x77386bc7 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x7876ee1d snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x7a0b0776 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x841ba63a snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x85bef30d snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x8d959422 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x91e53d23 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x93a2bb74 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x95e1f4dd snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x98fa72ee snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x993c2249 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x99532da3 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x9d76a469 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xba8fa410 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xc326ab7c snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xcb996931 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xd62fa66f snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xdae3d8c3 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xdbade123 snd_device_free +EXPORT_SYMBOL sound/core/snd-hwdep 0x1aeab1a3 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3f92826d snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x40252ec9 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x6c70db4c snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x92e84fc0 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xae7f37a2 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x0323ed0c snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x068b60fc snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x0f9cbd3c snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x1b8fa3c6 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1fb7c49e snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x20f3b651 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x21123b30 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x241f71bd snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x3393430a snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x391bd108 snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x663cf4e8 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x66a0804a snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x67077b29 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x67ea06ea snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x72ddd341 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x77182ffe snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x79016a57 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x7da61012 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x836bf601 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x85c2c1e8 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x86a1c2ec snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x88ea8f5d snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x8c0dbf3e snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x8ea0f42e _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x8ee4be17 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x94c96704 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa66535bb snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xa9adc229 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xaaa44690 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xae3ad077 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0xb4bd9988 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbbe3d60a snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xbcbb60aa snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xc5d39e33 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd2ef091f snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xd2faaec6 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xd5c7b59c snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xd664e9fd snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd7fa3e7e snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xdcaecf9f snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe638754a snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xea88f091 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xec108817 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xec28eb8c snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06695b5e snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0f53c892 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1081fd85 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x11c9484c snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1a7c33b0 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x23d22e66 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2fedd080 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x30b885b1 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3ae06adb snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5d86fd5e snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7948688b snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x86cba439 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb4818f7e snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd45f0e6b snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd7d5fe1a snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe5061166 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf420bd7a snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-timer 0x0e08a1d3 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x185fc410 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x19f509bf snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x27e97d14 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x4828da33 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x568d0a92 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x72636466 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x7c92c5de snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xa1a083a3 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xb15559bd snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xb487ce6f snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xdf291b51 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xf293a854 snd_timer_global_free +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4f9a71dd 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 0x1c356979 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1de64956 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5e4149f4 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6489ee09 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6a25e6b7 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x77db55d8 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbb641b7b snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xef6c8150 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf8f6f078 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x38ffded8 snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x3e1275e7 snd_opl4_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x4f15739c snd_opl4_write +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x5e0dc53c snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xe4b52781 snd_opl4_read +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x05001344 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x174378b4 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1fce5c48 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x38df3f2f snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6e350fa4 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9aace128 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9c1965ef snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb4b53cf3 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdee3df5e snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0373753c cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0760b119 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x123e8f35 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x199ce30a fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x19f3b723 amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2a4ec1a2 amdtp_out_stream_set_rate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x350e7377 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x35a682c6 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x43a3f9a9 amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4d808690 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x50585143 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5cc2924a fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x78bdf5db amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8880e51e amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9934c9d7 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb803b73c amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc6ef050b fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcb945634 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd053738e iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd557b6f5 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd9ddf1cd snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdd74bc7a rcode_string +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe4bbe1c7 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe62c9344 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xfdacc131 amdtp_out_stream_update +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x365ebbed snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x38e035ef snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x3a947c8b snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x83c33abb snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc2b4670e snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xe018fc36 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x16aac644 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x63286edf snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x7c90e4f0 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xc3db3753 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe36d03dd snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf32b35a8 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x6c06d006 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x82c80265 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x98531a38 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xec4b895b snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x057f4913 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x56858026 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x63c310a6 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xe5cbef55 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00bb6343 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0df61efe snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0eccfadf snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x1893a963 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8af01f3a snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-i2c 0x3b4a7896 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5f028474 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x95f154ec snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xd2f183d8 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xdd80fa99 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xf2ff199b snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0x49a84fa0 snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xcad6fd52 snd_tea6330t_detect +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x15148132 snd_es1688_create +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x20d2b365 snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x4dec7583 snd_es1688_pcm +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x9f9e2f65 snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xd409b060 snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x02b3cc81 snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x058c0fa8 snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x07f84f95 snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0fc77fa6 snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1800d18c snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1846f584 snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1c1ce117 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x24431f00 snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2529d61f snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2adfcb60 snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x36ab97a8 snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4c2822f5 snd_gus_initialize +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x66774947 snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6a1edcd1 snd_gf1_poke +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6bc1e993 snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6ff7862e snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x81b2bacc snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x87266cfa snd_gus_dram_read +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8bc3fc58 snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x94ec8c5f snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9d2f967e snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa5f50f6f snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xacb64399 snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb2a4bee2 snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xbb99f623 snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc20134fd snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc2216149 snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd62d31b0 snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd6e336c6 snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xebd4ecda snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf8b7c441 snd_gf1_write8 +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x042d42ab snd_msndmix_setup +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0af7fa75 snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x22aadfb1 snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x2b9b890c snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x83b2945a snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x89c51ae4 snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x8cb1cd33 snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x94ec57ce snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x9d69a465 snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xa572cc4e snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xe7f4a022 snd_msndmix_new +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xfd90d3c2 snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x2422bbef snd_aci_get_aci +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x93361eea snd_aci_cmd +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1019748b snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x18a335aa snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3d0e5b86 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x502b47be snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x696197d4 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xaa0e115e snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb9fa854f snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xbb7af334 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd2757d76 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf1775b4f snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0x67512a52 snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x59acda8b snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x5cf52b0f snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x7a099433 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x0d5858dd snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x1c790f41 snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x4b19c212 snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x769dff3a snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x121f553e snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x3817a3f2 snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x60f57078 snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x81a59a75 snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x9d58033a snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xa526a006 snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xa85e9bad snd_emu8000_peek +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb1185c60 snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb62ec8d6 snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xd9eb2ee1 snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xecf9ebb5 snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x17c144fa snd_wss_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x1e627eab snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x5742eef7 snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x5a5cb29b snd_wss_mce_up +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x608328bf snd_wss_timer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x62168f3f snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x6e67bfbf snd_wss_info_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x6efc8628 snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7870289c snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x78bc5e83 snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7b202637 snd_wss_interrupt +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x8490a0ff snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x857a2081 snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x8aa9df60 snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x8b1a01a5 snd_wss_overrange +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x96ede116 snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x9fd0f13d snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd23597c8 snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xdd82b0b8 snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xe948c236 snd_cs4236_ext_in +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x030cc282 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x288e3b6d snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x405eadd9 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4612930a snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x594011fb snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5c32cb02 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5ec04359 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x67273c20 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8167f399 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x830455b8 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x87d7f268 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x87efd948 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa5c32a46 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb229aef5 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe8679323 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf37e7377 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xffb703ad snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x7f548d37 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0ea55224 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x12f93472 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x151c71a3 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3ff2f66b snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x77623052 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x80885d81 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb2aeccf8 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc055f995 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc56d888c snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xb1f21e23 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4bab74e4 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x92334f2d snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x9af2cefe snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x03368fb9 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x074842bf oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x16a48475 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x313bec6a oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x334406ac oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x34eac207 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x44dd83b6 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4a0ae8ba oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4c767008 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x535b2718 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x651b42a9 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x69ed44dc oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x73cd0c9d oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x793193df oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8b5bc9b4 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x96e150a1 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xabf935ba oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xac308fb1 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb28b04db oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd36f8eb1 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd5e7e349 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1b0cc913 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1e19cecd snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x95319412 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe4821d6e snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe7b30840 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/soundcore 0x013029f1 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x145364f3 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x32ead270 sound_class +EXPORT_SYMBOL sound/soundcore 0x3e308e65 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x44f7dbf6 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x918439a6 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x0870237f snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1208ed6d snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x26256501 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 0x8970279e snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x96758e31 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc60cda21 snd_emux_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0e28a731 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0e4321bf __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2b00e05a snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x318e8f7e snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5733750b __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x8cf50963 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9d1e2672 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf46bf6d0 __snd_util_mem_free +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xdcdf499d snd_usbmidi_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x35c95b1b dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x3d440178 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x86e5acf9 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa1590534 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa43471b6 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd55b290c dm_mem_cache_client_destroy +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0008e2eb journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x00172d2f path_is_under +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x003ed69a __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x003ff297 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x004cb5cc padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x0052d0f5 __f_setown +EXPORT_SYMBOL vmlinux 0x006aa7e8 sock_map_fd +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0084e86d unregister_shrinker +EXPORT_SYMBOL vmlinux 0x008a86eb cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x008f69ed check_disk_change +EXPORT_SYMBOL vmlinux 0x00b1b77f input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x00c2c8b3 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x00d54b3e pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x00e1d542 mca_device_claimed +EXPORT_SYMBOL vmlinux 0x00e22db7 netdev_features_change +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f22ee9 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x00f525fd read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x00f96373 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x010510e1 pci_map_biosrom +EXPORT_SYMBOL vmlinux 0x010925d7 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x0152e76a dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x01814ae7 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01bc3e03 blk_run_queue +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01eefd70 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x0206742c tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x021daf9c mca_device_set_name +EXPORT_SYMBOL vmlinux 0x022edf5e scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x02318726 take_over_console +EXPORT_SYMBOL vmlinux 0x02343f88 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x0243c6f5 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x028771cc blk_start_request +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x0296752a mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e3afdc fb_class +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x030fb3b0 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x03198660 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x033d8524 phy_start +EXPORT_SYMBOL vmlinux 0x034f9e73 param_ops_byte +EXPORT_SYMBOL vmlinux 0x03525837 mpage_writepages +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x03618d87 posix_test_lock +EXPORT_SYMBOL vmlinux 0x0367b59a dev_driver_string +EXPORT_SYMBOL vmlinux 0x036ef560 ps2_end_command +EXPORT_SYMBOL vmlinux 0x03794fb3 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03b580eb wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042c7065 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x0437d94d napi_gro_frags +EXPORT_SYMBOL vmlinux 0x0443b044 skb_insert +EXPORT_SYMBOL vmlinux 0x0459fe6f dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x048076b4 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04c108bf end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x04d3a48b key_type_keyring +EXPORT_SYMBOL vmlinux 0x04d61487 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x04d78978 phy_find_first +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x0505777c nonseekable_open +EXPORT_SYMBOL vmlinux 0x050e4091 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x05196d3e filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x0523d006 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052c11e2 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x054fbf06 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x055a0995 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x056e45f8 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x057fd3fc dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x0582d5e4 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x058c7895 netdev_alert +EXPORT_SYMBOL vmlinux 0x05d08c5f scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x06085191 __break_lease +EXPORT_SYMBOL vmlinux 0x060cd0fb skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x0612b6c1 fb_find_mode +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x0648a006 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x065fb357 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x0661df18 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x0664903c scsi_register_driver +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06b1c35a pnp_find_card +EXPORT_SYMBOL vmlinux 0x06bbd556 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x06d2f086 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x06f1345f new_inode +EXPORT_SYMBOL vmlinux 0x06f4bf00 seq_escape +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0701391e page_readlink +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x072ffc90 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x076ebea8 pv_lock_ops +EXPORT_SYMBOL vmlinux 0x077836d0 seq_open_private +EXPORT_SYMBOL vmlinux 0x078196a7 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a4ef21 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07abfecf __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x07ac61eb udp_prot +EXPORT_SYMBOL vmlinux 0x07bd719c alloc_disk +EXPORT_SYMBOL vmlinux 0x07be4f66 dquot_destroy +EXPORT_SYMBOL vmlinux 0x07c04137 pci_clear_master +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07fd5a7e tcp_parse_options +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082eaf42 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x08482f84 file_update_time +EXPORT_SYMBOL vmlinux 0x08576ce9 i2c_release_client +EXPORT_SYMBOL vmlinux 0x088a4ccb tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x08bf826c _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x08ebee26 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x0906288a unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x093a7e00 dev_err +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0991bb51 agp_free_page_array +EXPORT_SYMBOL vmlinux 0x0992780d efi_enabled +EXPORT_SYMBOL vmlinux 0x09b4a86a bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8c194 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x0a11d040 __netdev_printk +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a509c0b sock_create_lite +EXPORT_SYMBOL vmlinux 0x0a58e022 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x0a5e14b5 bdi_destroy +EXPORT_SYMBOL vmlinux 0x0a94c9df napi_skb_finish +EXPORT_SYMBOL vmlinux 0x0ab592fd key_unlink +EXPORT_SYMBOL vmlinux 0x0aca6e3c phy_register_fixup +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ae8257b iunique +EXPORT_SYMBOL vmlinux 0x0b028bba sock_no_listen +EXPORT_SYMBOL vmlinux 0x0b046dcb dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b16e6ed bio_split +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b3f0963 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x0b4089cc seq_lseek +EXPORT_SYMBOL vmlinux 0x0b469cd0 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b7086d9 param_get_short +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b91ae0f of_device_register +EXPORT_SYMBOL vmlinux 0x0ba1c1f4 input_set_keycode +EXPORT_SYMBOL vmlinux 0x0bb62c2b of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0beacf77 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x0c03e051 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x0c05bbbb unregister_filesystem +EXPORT_SYMBOL vmlinux 0x0c0f7ace scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x0c3c6ddb cdrom_open +EXPORT_SYMBOL vmlinux 0x0c475fea __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x0c499102 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x0c4f84c6 soft_cursor +EXPORT_SYMBOL vmlinux 0x0c528ebe textsearch_destroy +EXPORT_SYMBOL vmlinux 0x0c585791 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x0c62b33d mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7ab731 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca3b837 do_truncate +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cccf71e dump_trace +EXPORT_SYMBOL vmlinux 0x0cd95d09 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x0cdb13ab qdisc_destroy +EXPORT_SYMBOL vmlinux 0x0cdd0bae dev_mc_add +EXPORT_SYMBOL vmlinux 0x0d0c9fd7 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x0d291312 dm_put_device +EXPORT_SYMBOL vmlinux 0x0d2d7d00 dput +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0da06219 kmap +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dc28ed4 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x0dd7ea1d ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x0deec652 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x0df75bf1 simple_fill_super +EXPORT_SYMBOL vmlinux 0x0e05117f simple_statfs +EXPORT_SYMBOL vmlinux 0x0e2303ce phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x0e5233c6 pci_ltr_supported +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e6dba84 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x0e8419cd dev_printk +EXPORT_SYMBOL vmlinux 0x0edfdd5f pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x0f417060 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x0f41a27b skb_free_datagram +EXPORT_SYMBOL vmlinux 0x0f4708d6 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x0f59f197 param_array_ops +EXPORT_SYMBOL vmlinux 0x0f62d7cf do_sync_write +EXPORT_SYMBOL vmlinux 0x0f66a805 d_alloc_name +EXPORT_SYMBOL vmlinux 0x0f701bcb md_error +EXPORT_SYMBOL vmlinux 0x0f8475a2 kill_litter_super +EXPORT_SYMBOL vmlinux 0x0f99e3a8 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x0fa59191 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0faf964d bio_alloc +EXPORT_SYMBOL vmlinux 0x0fb0e29f init_timer_key +EXPORT_SYMBOL vmlinux 0x0fb873f8 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x0fcc1fb4 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fda8c97 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x0fe9a154 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffa7469 lock_rename +EXPORT_SYMBOL vmlinux 0x101c6ece netpoll_setup +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x10364dfe ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x103bbebe blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x103bfe6f cdrom_check_events +EXPORT_SYMBOL vmlinux 0x103bfefe dquot_scan_active +EXPORT_SYMBOL vmlinux 0x10708345 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x107c6161 d_path +EXPORT_SYMBOL vmlinux 0x1085b463 load_nls +EXPORT_SYMBOL vmlinux 0x1097ce27 lro_flush_all +EXPORT_SYMBOL vmlinux 0x10ab7e68 down_killable +EXPORT_SYMBOL vmlinux 0x10bc09b4 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x10bfb450 try_to_release_page +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ed1b60 invalidate_partition +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f292d4 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x11015eab simple_unlink +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x110d8754 phy_device_free +EXPORT_SYMBOL vmlinux 0x111c179d vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112df9b6 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x113dc5dd padata_do_serial +EXPORT_SYMBOL vmlinux 0x11633870 param_set_ushort +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1171d3c0 genl_register_family +EXPORT_SYMBOL vmlinux 0x11834ae4 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x118bb824 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a97f11 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x11ac350b may_umount +EXPORT_SYMBOL vmlinux 0x11dba971 unregister_nls +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x123fc412 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x12625cbb udp_ioctl +EXPORT_SYMBOL vmlinux 0x126ec068 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x128a5cf9 complete_all +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12c87bb2 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12eab777 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x131727f0 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x1338485a mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x134a567e skb_recycle +EXPORT_SYMBOL vmlinux 0x1361c4d4 skb_checksum +EXPORT_SYMBOL vmlinux 0x1371b2ed dentry_unhash +EXPORT_SYMBOL vmlinux 0x13770ca2 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x137a923b blk_sync_queue +EXPORT_SYMBOL vmlinux 0x1391aeaf qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x13ae4700 pci_get_device +EXPORT_SYMBOL vmlinux 0x13b4737d dma_async_device_register +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13cdf76e agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13de3693 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x13ec80f3 param_set_short +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x143e6beb mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0x14447813 get_phy_id +EXPORT_SYMBOL vmlinux 0x145a9a89 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x14d10613 iterate_mounts +EXPORT_SYMBOL vmlinux 0x14d662c7 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x14e7ca7c alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x14eb0494 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x14ec0108 __sock_create +EXPORT_SYMBOL vmlinux 0x14ed938e simple_release_fs +EXPORT_SYMBOL vmlinux 0x151bbf15 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x157404d9 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x15748a56 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x15b53614 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x15ba638c set_groups +EXPORT_SYMBOL vmlinux 0x15c74fc3 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x15d70e6a input_unregister_handler +EXPORT_SYMBOL vmlinux 0x160e1a60 dev_mc_del +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x161a5803 load_nls_default +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16325039 __devm_release_region +EXPORT_SYMBOL vmlinux 0x1635ab34 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x16527f16 fb_blank +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x168f1082 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x16c3ae28 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x16c42197 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x16c84db1 blk_complete_request +EXPORT_SYMBOL vmlinux 0x16d88979 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x16f8a0cd proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x171b1dca napi_gro_flush +EXPORT_SYMBOL vmlinux 0x1729de33 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x17357f4b netdev_notice +EXPORT_SYMBOL vmlinux 0x174b5c99 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x17542626 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x1762f2e3 input_event +EXPORT_SYMBOL vmlinux 0x17803ffd ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x17906a70 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x1790d76b _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x179ed813 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x17a500e2 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x17b87ab7 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180d791c pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x1837f2c6 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x183d1c79 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18489777 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x1865bf47 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x186e2e56 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x18790eb8 dquot_file_open +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18a84a51 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x18d6029b neigh_destroy +EXPORT_SYMBOL vmlinux 0x18d66d9b simple_setattr +EXPORT_SYMBOL vmlinux 0x18e7fcbb netlink_dump_start +EXPORT_SYMBOL vmlinux 0x18f0c1b0 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x1905b9e0 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x19091713 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x190f83f9 dst_discard +EXPORT_SYMBOL vmlinux 0x194e8647 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x196912d7 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x19778805 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x1981ced6 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x19912407 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x19926646 __getblk +EXPORT_SYMBOL vmlinux 0x199c4273 scsi_device_get +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a9e62b complete +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c0c578 nla_reserve +EXPORT_SYMBOL vmlinux 0x19d98d74 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x19dc6d58 register_gifconf +EXPORT_SYMBOL vmlinux 0x19f84061 get_disk +EXPORT_SYMBOL vmlinux 0x19f8a524 kernel_read +EXPORT_SYMBOL vmlinux 0x19fa686b sock_no_bind +EXPORT_SYMBOL vmlinux 0x1a1bfbfa locks_copy_lock +EXPORT_SYMBOL vmlinux 0x1a3d79e5 ps2_init +EXPORT_SYMBOL vmlinux 0x1a3ffd0f scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1aa9989b migrate_page +EXPORT_SYMBOL vmlinux 0x1aadd981 d_lookup +EXPORT_SYMBOL vmlinux 0x1abdd50e vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae14ef5 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x1afd50ca pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b04df17 amd_northbridges +EXPORT_SYMBOL vmlinux 0x1b3c7d30 pci_dev_put +EXPORT_SYMBOL vmlinux 0x1b61ba3f blk_requeue_request +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6887d8 simple_write_end +EXPORT_SYMBOL vmlinux 0x1b732366 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x1b74e2ad xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb36918 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x1bc8585b idr_remove_all +EXPORT_SYMBOL vmlinux 0x1bdd0598 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x1bdf0f6c udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x1bf14192 vga_client_register +EXPORT_SYMBOL vmlinux 0x1bf38ce7 pci_request_region +EXPORT_SYMBOL vmlinux 0x1bf8fc95 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x1c073a31 pci_dev_get +EXPORT_SYMBOL vmlinux 0x1c0b8fc7 agp_backend_release +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c5583f4 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x1c5bd9fe scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1d1d8916 __blk_end_request +EXPORT_SYMBOL vmlinux 0x1d2adbb5 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3865da param_get_invbool +EXPORT_SYMBOL vmlinux 0x1d6a542e genl_register_ops +EXPORT_SYMBOL vmlinux 0x1dbab225 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc8967f pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd5bb91 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e08051f vm_map_ram +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e4a2773 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ec224e9 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0x1ec46390 ip6_route_output +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ec758a2 mount_bdev +EXPORT_SYMBOL vmlinux 0x1ef1f75f posix_acl_valid +EXPORT_SYMBOL vmlinux 0x1efeb655 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x1f076120 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x1f223091 __serio_register_port +EXPORT_SYMBOL vmlinux 0x1f2e9c2e page_follow_link_light +EXPORT_SYMBOL vmlinux 0x1f61076d kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x1f622d60 bio_put +EXPORT_SYMBOL vmlinux 0x1f714abd security_file_permission +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1fb98d63 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x1fbeb55f nlmsg_notify +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fda61ed copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x2014d4ae default_llseek +EXPORT_SYMBOL vmlinux 0x20224807 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x20292a6b netdev_state_change +EXPORT_SYMBOL vmlinux 0x20431443 mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x204d04c7 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x205c00a2 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x208f50e7 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20b7a253 ip_options_compile +EXPORT_SYMBOL vmlinux 0x20dab3e2 bh_submit_read +EXPORT_SYMBOL vmlinux 0x20deb324 journal_get_write_access +EXPORT_SYMBOL vmlinux 0x20e34fad max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x20edff96 llc_sap_close +EXPORT_SYMBOL vmlinux 0x20fe970d vc_cons +EXPORT_SYMBOL vmlinux 0x210ef0fd agp_copy_info +EXPORT_SYMBOL vmlinux 0x21112e74 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x211ed669 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x212552b9 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x213f998d inet6_ioctl +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2160fcf9 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x2185ca9e max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x2187eb73 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x2199337a down_timeout +EXPORT_SYMBOL vmlinux 0x21b133c9 vfs_readv +EXPORT_SYMBOL vmlinux 0x21d02b2d scsi_remove_device +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e91c27 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x21f70e71 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x21f9038a x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0x21fb443e _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x221e938c d_splice_alias +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222ed0c2 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x22325ce5 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x224fb34c of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x2288fe4e tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x2294f8bf init_special_inode +EXPORT_SYMBOL vmlinux 0x22956ece xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22ef0774 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x2308cdb8 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23321bcc setup_arg_pages +EXPORT_SYMBOL vmlinux 0x233c1bc8 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x235cd3f8 init_net +EXPORT_SYMBOL vmlinux 0x236fa339 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x237ec7f6 mmc_request_done +EXPORT_SYMBOL vmlinux 0x2397a07c agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23acc007 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23f8f9ac sg_miter_next +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x242d0f3d netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x243d7e97 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x2441a506 replace_mount_options +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x246a3f20 tty_port_put +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x24be1d4a lock_fb_info +EXPORT_SYMBOL vmlinux 0x24d05e27 kill_pid +EXPORT_SYMBOL vmlinux 0x24f169fc down_read_trylock +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x2530683b tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x254d6f63 bdi_unregister +EXPORT_SYMBOL vmlinux 0x255d57f6 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25b234cf input_unregister_device +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x262d5ed7 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x263b38a7 d_move +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x263f398e pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x264d3c3d idr_get_next +EXPORT_SYMBOL vmlinux 0x2681cd56 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x26894588 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x269114e6 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x26a457ce of_dev_put +EXPORT_SYMBOL vmlinux 0x26b4e0c3 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x26b75b31 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26cc356a ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x27073f8e serial8250_register_port +EXPORT_SYMBOL vmlinux 0x271614a8 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x27255301 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x272b176c con_copy_unimap +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x273140a1 sk_common_release +EXPORT_SYMBOL vmlinux 0x275e7987 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x2767aafa ihold +EXPORT_SYMBOL vmlinux 0x2781229c skb_split +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x278b5393 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x278c7f37 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x279d8c8f __elv_add_request +EXPORT_SYMBOL vmlinux 0x279f6e3b scm_detach_fds +EXPORT_SYMBOL vmlinux 0x27ae7d0c ec_transaction +EXPORT_SYMBOL vmlinux 0x27b92906 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bca434 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x27becc5f phy_detach +EXPORT_SYMBOL vmlinux 0x27e1ef32 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x27f2a6cd tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x27f50b03 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x280fb3ec devm_ioport_map +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2825a9a9 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x282b9418 acpi_bus_add +EXPORT_SYMBOL vmlinux 0x285cd4e2 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x28785e34 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295db419 x86_hyper +EXPORT_SYMBOL vmlinux 0x299145ff pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x29935003 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x29a0f9a8 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x29b0aefe dm_io +EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x29b96a8a inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a04df88 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x2a25618c block_write_begin +EXPORT_SYMBOL vmlinux 0x2a2d192d mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a360729 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x2a581ac2 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x2a6e1c3f acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x2a8d8812 secpath_dup +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2abfc677 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x2ade4362 scsi_get_command +EXPORT_SYMBOL vmlinux 0x2af51a1c dma_supported +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b282a4b ps2_command +EXPORT_SYMBOL vmlinux 0x2b28b874 con_is_bound +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b614e60 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x2b63e59b unregister_netdev +EXPORT_SYMBOL vmlinux 0x2b646069 set_security_override +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bab5d78 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bedffe3 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x2bf8d577 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c325bcd jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x2c380648 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x2c642713 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x2c646702 inet_put_port +EXPORT_SYMBOL vmlinux 0x2cd2f9f5 tr_type_trans +EXPORT_SYMBOL vmlinux 0x2ce9c35a inode_set_bytes +EXPORT_SYMBOL vmlinux 0x2ced61d6 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x2d0d7c5d kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d41dbe5 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x2d454647 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x2d686c13 task_ns_capable +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d9fd8fc submit_bio +EXPORT_SYMBOL vmlinux 0x2db2f25e of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x2db3034f inet_frag_kill +EXPORT_SYMBOL vmlinux 0x2dc7911b d_rehash +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dda2d21 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x2ddff828 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x2de65e6e agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df34bac bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x2df9a27c proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x2e03d27a ns_capable +EXPORT_SYMBOL vmlinux 0x2e22b4b2 sock_no_poll +EXPORT_SYMBOL vmlinux 0x2e23b635 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x2e2a16b8 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e2d24f7 dquot_commit +EXPORT_SYMBOL vmlinux 0x2e3b93f8 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x2e59fc7a ab8500_gpadc_get +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e7574d5 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x2e7b60c5 fasync_helper +EXPORT_SYMBOL vmlinux 0x2e827f40 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x2ea7d424 gen_pool_free +EXPORT_SYMBOL vmlinux 0x2eabaf20 of_get_mac_address +EXPORT_SYMBOL vmlinux 0x2eaf5a27 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2edbe510 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2ef6daf3 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2efd88cd atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f34abb4 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x2f433a23 should_remove_suid +EXPORT_SYMBOL vmlinux 0x2f7bc736 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x2f9c87db md_write_end +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fc23338 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x2fc9885c init_buffer +EXPORT_SYMBOL vmlinux 0x2fca59af agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x2fcde7cd mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x2fea276a blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x300fb482 key_alloc +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x302b865b x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x30510d76 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x305b3249 complete_request_key +EXPORT_SYMBOL vmlinux 0x3069e3e0 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30949367 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x3096c5b9 poll_freewait +EXPORT_SYMBOL vmlinux 0x30a49bfc elv_add_request +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30d70fa9 of_get_pci_address +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x312d27d0 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x31308933 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31989dbe unregister_8022_client +EXPORT_SYMBOL vmlinux 0x31ae1740 arp_find +EXPORT_SYMBOL vmlinux 0x31d4c4dd d_add_ci +EXPORT_SYMBOL vmlinux 0x31e5ab1b tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x31ff1713 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x324d994e mca_device_write_pos +EXPORT_SYMBOL vmlinux 0x325dd74e dev_uc_init +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x326a8466 lock_may_write +EXPORT_SYMBOL vmlinux 0x32a51e0f xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x32a92d2e vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x32c9a569 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x32cea339 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x32d4b038 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x32d4d8f1 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x32d7edcb vmtruncate +EXPORT_SYMBOL vmlinux 0x32dbe928 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x32eeaded _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x32ef8a0a pci_biosrom_size +EXPORT_SYMBOL vmlinux 0x33062e12 register_snap_client +EXPORT_SYMBOL vmlinux 0x33200137 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x332a493d generic_getxattr +EXPORT_SYMBOL vmlinux 0x33313f58 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x33473b01 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x336f5cd3 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x338ac2e8 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x338c8b8c sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x33b4f002 blk_register_region +EXPORT_SYMBOL vmlinux 0x33c0fbe1 mmc_add_host +EXPORT_SYMBOL vmlinux 0x33c11c83 phy_attach +EXPORT_SYMBOL vmlinux 0x33d9c957 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33f4fbfa send_sig_info +EXPORT_SYMBOL vmlinux 0x340f0619 alloc_trdev +EXPORT_SYMBOL vmlinux 0x3428a0d7 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x342919c2 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x342e32e3 ida_simple_get +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x3453617b mii_link_ok +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x34797b4a skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x34837194 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34af99a8 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x34b2b003 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x34c7762f buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x34db0a44 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x34dfd981 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x34f135e8 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x34f4fb3d cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x350e2749 __netif_schedule +EXPORT_SYMBOL vmlinux 0x351e0759 security_path_unlink +EXPORT_SYMBOL vmlinux 0x351e8ea2 netdev_emerg +EXPORT_SYMBOL vmlinux 0x357c90d2 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x358644dd generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x3598f53b ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x359d1ab5 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x35af86fa call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35ca8cfa dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x35d72bd8 __kmap_atomic +EXPORT_SYMBOL vmlinux 0x35e0df49 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x35e2eecf vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x35ed198b udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x35fbd6a1 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x361a9525 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x362215b7 page_symlink +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x365c985d blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x3687628b dget_parent +EXPORT_SYMBOL vmlinux 0x368c5fa7 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x368d4acf scsi_ioctl +EXPORT_SYMBOL vmlinux 0x369ef0e4 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x36aad357 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x36bd61bb dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3748b113 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x377af412 input_get_keycode +EXPORT_SYMBOL vmlinux 0x378c4220 _dev_info +EXPORT_SYMBOL vmlinux 0x379141c1 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x379f5837 param_set_invbool +EXPORT_SYMBOL vmlinux 0x37af6a79 tty_kref_put +EXPORT_SYMBOL vmlinux 0x37afe20d mntget +EXPORT_SYMBOL vmlinux 0x37ba216f km_state_notify +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e018d5 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37e7d4af ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x38114e49 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x3837c8b1 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x38776a82 of_get_parent +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388cf406 dst_release +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x3894cd01 sock_wake_async +EXPORT_SYMBOL vmlinux 0x38ab10a1 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x38b38160 ppp_input_error +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38d2a566 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x38db133e inet_frags_init +EXPORT_SYMBOL vmlinux 0x38e1d7ec scsi_register_interface +EXPORT_SYMBOL vmlinux 0x38f5e1e4 kernel_connect +EXPORT_SYMBOL vmlinux 0x38ff8ad3 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x3902b4a7 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x390f045f nobh_writepage +EXPORT_SYMBOL vmlinux 0x3922df32 register_con_driver +EXPORT_SYMBOL vmlinux 0x392bee70 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3987352a phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39ac0db0 journal_errno +EXPORT_SYMBOL vmlinux 0x39d3686d set_page_dirty +EXPORT_SYMBOL vmlinux 0x39d4de70 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x39f1cf54 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x39f21720 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x39f66db2 dev_add_pack +EXPORT_SYMBOL vmlinux 0x39f72db6 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x3a013b7d remove_wait_queue +EXPORT_SYMBOL vmlinux 0x3a034ffa notify_change +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a3c3ad2 vga_tryget +EXPORT_SYMBOL vmlinux 0x3a5d82f9 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x3a72fa49 dev_warn +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa014b3 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3ad4ce92 mount_subtree +EXPORT_SYMBOL vmlinux 0x3ae13aaf request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x3af28599 noop_fsync +EXPORT_SYMBOL vmlinux 0x3af98f9e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x3b0f0f29 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b3a3a51 pci_map_rom +EXPORT_SYMBOL vmlinux 0x3b3d80cc dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x3b552ecc __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x3b656761 scsi_register +EXPORT_SYMBOL vmlinux 0x3b6725d1 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x3b6be061 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x3b964773 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x3ba078a8 noop_qdisc +EXPORT_SYMBOL vmlinux 0x3bad9c33 is_container_init +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c07609d give_up_console +EXPORT_SYMBOL vmlinux 0x3c2caead seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x3c3001ab __free_pages +EXPORT_SYMBOL vmlinux 0x3c51aece journal_clear_err +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c908a07 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x3c9b2da8 rt6_lookup +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb6cfc1 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ce8d1a8 of_register_spi_devices +EXPORT_SYMBOL vmlinux 0x3cf23865 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x3d3a5c3e log_wait_commit +EXPORT_SYMBOL vmlinux 0x3d3a7c72 mnt_pin +EXPORT_SYMBOL vmlinux 0x3d535b35 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x3d5a3838 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x3d7416fd wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d93ee61 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3dab5a4d mmc_can_trim +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dce3a86 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x3df76005 ip_defrag +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e065c7a journal_extend +EXPORT_SYMBOL vmlinux 0x3e083da9 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x3e0e9023 param_set_long +EXPORT_SYMBOL vmlinux 0x3e1764a8 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x3e194b79 generic_permission +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e38b697 no_llseek +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e6c4e0b pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x3e8e1e13 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e93e6ac blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x3eb2b266 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x3ec8886f param_ops_int +EXPORT_SYMBOL vmlinux 0x3ed531e3 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edd1f6c tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x3ef1a9a8 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x3ef6bdf6 vfs_llseek +EXPORT_SYMBOL vmlinux 0x3f046ec3 security_path_mknod +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f3f7bac netif_device_attach +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f47be13 redraw_screen +EXPORT_SYMBOL vmlinux 0x3f584a25 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x3f59d7da dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x3f638dd9 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x3f904346 __bforget +EXPORT_SYMBOL vmlinux 0x3f99fd77 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x3f9f868f __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x3fa58ef8 wait_for_completion +EXPORT_SYMBOL vmlinux 0x3fc1d136 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x3fd2ea62 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x3fe7f47e ata_dev_printk +EXPORT_SYMBOL vmlinux 0x3ff58f2a flush_old_exec +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4015b985 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x40265039 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x4029d238 param_set_copystring +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x405325e0 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4064cc21 page_put_link +EXPORT_SYMBOL vmlinux 0x406dda42 of_device_unregister +EXPORT_SYMBOL vmlinux 0x4073bf37 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x40864f2a neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c0f0de proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d743fc vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0x40ea04c5 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x412c229d security_path_mkdir +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4175bb6a framebuffer_release +EXPORT_SYMBOL vmlinux 0x418056e7 icmpv6_send +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41945631 bdi_register +EXPORT_SYMBOL vmlinux 0x4197369f vfs_rmdir +EXPORT_SYMBOL vmlinux 0x419ad90b acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x419ee6e8 idr_pre_get +EXPORT_SYMBOL vmlinux 0x41ac6c39 set_bh_page +EXPORT_SYMBOL vmlinux 0x41b4cc35 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x41c9578b genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x41e21a27 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x41ebc071 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x4226f122 d_clear_need_lookup +EXPORT_SYMBOL vmlinux 0x4237075c dump_write +EXPORT_SYMBOL vmlinux 0x4239de63 ida_init +EXPORT_SYMBOL vmlinux 0x424732fe sock_setsockopt +EXPORT_SYMBOL vmlinux 0x4253980f abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x4255be62 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x4258d1eb tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x42593d39 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x429be8a8 bdi_init +EXPORT_SYMBOL vmlinux 0x42e25e13 security_path_symlink +EXPORT_SYMBOL vmlinux 0x42f6c2ae tcp_child_process +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x432f2024 __bio_clone +EXPORT_SYMBOL vmlinux 0x433206f7 tty_mutex +EXPORT_SYMBOL vmlinux 0x43325a89 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x4345e09d phy_stop +EXPORT_SYMBOL vmlinux 0x43529ebf uart_update_timeout +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x438fa3ac nobh_write_begin +EXPORT_SYMBOL vmlinux 0x439f2e07 f_setown +EXPORT_SYMBOL vmlinux 0x43a0458b blk_start_plug +EXPORT_SYMBOL vmlinux 0x43c79084 blk_put_queue +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x44101d08 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x443f16f4 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x44402b6f param_get_ulong +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x445e4d5d follow_down_one +EXPORT_SYMBOL vmlinux 0x445eea92 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x44757c91 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x449465ad scsi_unregister +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44b91c68 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x44b9d5f1 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x44c188dc inet_addr_type +EXPORT_SYMBOL vmlinux 0x44da5384 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x44dc783f llc_sap_find +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f1606d down_trylock +EXPORT_SYMBOL vmlinux 0x44f63ae7 journal_revoke +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x45301cc3 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0x4534e6cc dev_get_by_name +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4554e3aa unlock_new_inode +EXPORT_SYMBOL vmlinux 0x45641266 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x457489d7 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x4578661a _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45851bdc splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x45a11b77 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x45bd9efd dm_table_put +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x4609a52d of_device_is_available +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x4628887c cfb_imageblit +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x46391895 kill_block_super +EXPORT_SYMBOL vmlinux 0x4640ef85 simple_rmdir +EXPORT_SYMBOL vmlinux 0x46443489 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x46603c42 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x466f5200 put_disk +EXPORT_SYMBOL vmlinux 0x46894964 cad_pid +EXPORT_SYMBOL vmlinux 0x46b74fbc security_task_getsecid +EXPORT_SYMBOL vmlinux 0x46c9f73c security_path_rename +EXPORT_SYMBOL vmlinux 0x46cd1a4a journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x46e7fb43 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x46ff3bfd mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x470d9017 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x4711f36f elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x471edd81 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x4730d02e pci_disable_msix +EXPORT_SYMBOL vmlinux 0x47336703 send_sig +EXPORT_SYMBOL vmlinux 0x4744a239 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x4774bf5f uart_register_driver +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x4792c572 down_interruptible +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47d070b4 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x47d650bb input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x47d7cc80 phy_connect +EXPORT_SYMBOL vmlinux 0x47dbb215 agp_bridge +EXPORT_SYMBOL vmlinux 0x47f0e746 __napi_schedule +EXPORT_SYMBOL vmlinux 0x47fbca01 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x47fc4037 follow_up +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x481cccf2 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x482438dd arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x48303297 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x4831becc filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x4840ec6a neigh_seq_start +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486d2f29 dqstats +EXPORT_SYMBOL vmlinux 0x486f15ad inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x488b51b0 padata_start +EXPORT_SYMBOL vmlinux 0x4891cd01 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x4898fcd9 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48c5d7cd kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x48d25e60 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x48eb0c0d __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x48ec002c generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x490d29c8 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x4917588d fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x492bfa0c scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x494049c5 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49989e72 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b46e08 bio_init +EXPORT_SYMBOL vmlinux 0x49f1dc89 nf_log_register +EXPORT_SYMBOL vmlinux 0x49fa2fad acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0x4a24f1f1 dev_addr_add +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a545e62 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x4a5925b6 vfs_create +EXPORT_SYMBOL vmlinux 0x4a5d8676 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x4a64f741 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x4a955501 locks_free_lock +EXPORT_SYMBOL vmlinux 0x4a9dae53 dev_change_flags +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4ab2162b __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x4afc35df blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b376a6b intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x4b4b1439 get_write_access +EXPORT_SYMBOL vmlinux 0x4b4be141 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x4b4ea4b3 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x4b5f47a2 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b6181cb sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x4b63c709 of_dev_get +EXPORT_SYMBOL vmlinux 0x4b6c802e md_check_recovery +EXPORT_SYMBOL vmlinux 0x4b760266 freeze_bdev +EXPORT_SYMBOL vmlinux 0x4b7c6c20 backlight_device_register +EXPORT_SYMBOL vmlinux 0x4b9208cb ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x4bbe71b5 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x4bc4d5a5 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4bd3f531 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x4be0b765 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x4bf7b27d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x4bfd46cf eisa_bus_type +EXPORT_SYMBOL vmlinux 0x4c034101 of_phy_connect +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c11ca9f efi +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c351aab d_drop +EXPORT_SYMBOL vmlinux 0x4c4ec957 __quota_error +EXPORT_SYMBOL vmlinux 0x4c66b203 sk_dst_check +EXPORT_SYMBOL vmlinux 0x4c9abb33 vfs_statfs +EXPORT_SYMBOL vmlinux 0x4cbb0181 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cbe0ae7 blk_insert_request +EXPORT_SYMBOL vmlinux 0x4cdde131 module_layout +EXPORT_SYMBOL vmlinux 0x4ce14709 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d1bafbb max8998_write_reg +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d2e4e0f xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d471d0b inet_release +EXPORT_SYMBOL vmlinux 0x4d66c9d1 input_free_device +EXPORT_SYMBOL vmlinux 0x4d687b4e scsi_device_put +EXPORT_SYMBOL vmlinux 0x4d6e89f0 user_path_at +EXPORT_SYMBOL vmlinux 0x4d92b190 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4da495fd __nla_reserve +EXPORT_SYMBOL vmlinux 0x4db2314f set_create_files_as +EXPORT_SYMBOL vmlinux 0x4dc418f9 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dffdd75 lookup_bdev +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e29c7cb idr_for_each +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e565c00 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e6f8e52 rtnl_notify +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4eb0017e netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x4eb0aefe register_quota_format +EXPORT_SYMBOL vmlinux 0x4eb11f1f seq_bitmap +EXPORT_SYMBOL vmlinux 0x4ed96df7 pci_find_capability +EXPORT_SYMBOL vmlinux 0x4f067ac2 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x4f118ed5 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f347849 skb_clone +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f51b152 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x4f625c4e brioctl_set +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f9e40e0 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe60ea5 update_region +EXPORT_SYMBOL vmlinux 0x4fed9422 journal_ack_err +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x501c664f pci_pme_capable +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502cc5ce dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x5044f322 single_release +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x5062b2b2 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5078f27d aio_put_req +EXPORT_SYMBOL vmlinux 0x5088965e blk_make_request +EXPORT_SYMBOL vmlinux 0x50996403 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x50a03360 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50ccd8e6 bio_clone +EXPORT_SYMBOL vmlinux 0x50d02ce6 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x50e542de jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x50eedeb8 printk +EXPORT_SYMBOL vmlinux 0x51178260 sock_create +EXPORT_SYMBOL vmlinux 0x5118be6e netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5134a9d2 mddev_congested +EXPORT_SYMBOL vmlinux 0x5144cd45 backlight_force_update +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x51636991 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x516a514e sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x51740cc9 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x51782572 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x5185c7d2 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x5188ff3c fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x51c005db in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51d12ad0 ping_prot +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51d816e4 seq_write +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e7b28a neigh_create +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x522977b4 put_tty_driver +EXPORT_SYMBOL vmlinux 0x5229da65 journal_destroy +EXPORT_SYMBOL vmlinux 0x5236eb0f __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x52423a0c ida_pre_get +EXPORT_SYMBOL vmlinux 0x5249db2d dev_mc_sync +EXPORT_SYMBOL vmlinux 0x526ac2b4 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x52723e9b force_sig +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x52810e93 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x528700ae sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a49bcd dump_seek +EXPORT_SYMBOL vmlinux 0x52aed9dc blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52e36d49 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53103280 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x53124f8f pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533fc708 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x536eff68 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x5375d601 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5383f34b _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x538c54e0 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x539330ac led_brightness_set +EXPORT_SYMBOL vmlinux 0x5397f2d3 posix_acl_init +EXPORT_SYMBOL vmlinux 0x53a06a1f pnp_find_dev +EXPORT_SYMBOL vmlinux 0x53b0dba7 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x53c02f61 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x53c29be1 generic_file_open +EXPORT_SYMBOL vmlinux 0x53d1146f inet_shutdown +EXPORT_SYMBOL vmlinux 0x53e0b2d2 find_vma +EXPORT_SYMBOL vmlinux 0x53f2ef10 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x54102a3b __cleancache_flush_fs +EXPORT_SYMBOL vmlinux 0x5411e94d simple_transaction_release +EXPORT_SYMBOL vmlinux 0x54152e04 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x5424a543 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x54328097 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x543773c6 module_refcount +EXPORT_SYMBOL vmlinux 0x543a3a64 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x543a529d posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x5499761d put_mnt_ns +EXPORT_SYMBOL vmlinux 0x54a17106 input_register_handle +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54ae4430 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x54c1940c skb_dequeue +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x551afa9d dev_remove_pack +EXPORT_SYMBOL vmlinux 0x551cdc96 user_path_create +EXPORT_SYMBOL vmlinux 0x5539333c vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x554433e6 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x5552b61f set_pages_nx +EXPORT_SYMBOL vmlinux 0x555765d1 genphy_update_link +EXPORT_SYMBOL vmlinux 0x556433bc generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55d35171 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x55ed9308 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5615156c tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5635ed7a get_gendisk +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x565f0229 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x56663c27 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x566971a9 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x56926c03 generic_make_request +EXPORT_SYMBOL vmlinux 0x56b3f13a request_firmware +EXPORT_SYMBOL vmlinux 0x56b96c63 set_binfmt +EXPORT_SYMBOL vmlinux 0x56ba394b set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56dfaad2 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x56e08e4d xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x570eb360 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x57150d67 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573457f0 pci_enable_device +EXPORT_SYMBOL vmlinux 0x573f5d3a shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x5750e12b i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x57938707 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a3922b eth_type_trans +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57c10840 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x57d5a632 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e414fb invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x580969cf neigh_lookup +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583a55ec jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x583f848d pci_set_master +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x584d8972 tcp_prot +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58973aa2 mapping_tagged +EXPORT_SYMBOL vmlinux 0x58bc0e26 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x5905b035 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x592f6d66 cdev_del +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x596cbf27 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59c3bb12 fb_show_logo +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59dfddb3 tty_hangup +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5a2aa62e __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a52c7aa blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x5a61c560 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a894a33 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x5a89dfde nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x5aa23650 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ad24ed2 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x5ad6b5bc security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x5aefee1f dev_activate +EXPORT_SYMBOL vmlinux 0x5af85b25 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b60f9b2 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x5b7301a4 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x5b7995a2 agp_enable +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5b93e94b jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x5bacb17f max8998_update_reg +EXPORT_SYMBOL vmlinux 0x5bc28cef sk_reset_txq +EXPORT_SYMBOL vmlinux 0x5be99591 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x5bf2710b dquot_quota_on +EXPORT_SYMBOL vmlinux 0x5bfe10f3 dquot_release +EXPORT_SYMBOL vmlinux 0x5c17ad53 dquot_resume +EXPORT_SYMBOL vmlinux 0x5c24821a tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one +EXPORT_SYMBOL vmlinux 0x5c3edd59 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x5c422ecb __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x5c5cd302 dev_open +EXPORT_SYMBOL vmlinux 0x5c64429d ifla_policy +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c7a5cac mount_ns +EXPORT_SYMBOL vmlinux 0x5c91ea61 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x5caca6ba sock_create_kern +EXPORT_SYMBOL vmlinux 0x5cb852d8 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x5ce10ea3 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6651ca dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x5d7fd18d bio_phys_segments +EXPORT_SYMBOL vmlinux 0x5d89a44c find_or_create_page +EXPORT_SYMBOL vmlinux 0x5da7b8ef end_writeback +EXPORT_SYMBOL vmlinux 0x5dabedb9 blk_peek_request +EXPORT_SYMBOL vmlinux 0x5dbb6293 kobject_get +EXPORT_SYMBOL vmlinux 0x5dc75289 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x5dce6b75 complete_and_exit +EXPORT_SYMBOL vmlinux 0x5dd7ff3e acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x5dda9815 iget_failed +EXPORT_SYMBOL vmlinux 0x5de6c55c sync_blockdev +EXPORT_SYMBOL vmlinux 0x5e1b59ba inet_sendpage +EXPORT_SYMBOL vmlinux 0x5e47a44e balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec8d626 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x5ecd2a7d netdev_err +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee34522 simple_getattr +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f06cde3 skb_append +EXPORT_SYMBOL vmlinux 0x5f12014b contig_page_data +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f27544a mempool_destroy +EXPORT_SYMBOL vmlinux 0x5f485fb2 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x5f4885ed blk_get_queue +EXPORT_SYMBOL vmlinux 0x5f4e281d devm_ioremap +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f99fe72 pipe_unlock +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fab9220 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x5fd3c8eb register_filesystem +EXPORT_SYMBOL vmlinux 0x5fdd844f __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x5fe41fb6 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x5fe6746d skb_make_writable +EXPORT_SYMBOL vmlinux 0x5fe79def pci_release_regions +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600413ca padata_stop +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60124617 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x603531d2 elv_rb_find +EXPORT_SYMBOL vmlinux 0x60385503 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6085b9bf ___pskb_trim +EXPORT_SYMBOL vmlinux 0x608ee889 tty_port_open +EXPORT_SYMBOL vmlinux 0x609d61d8 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b2e38a rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x60c2dc41 neigh_update +EXPORT_SYMBOL vmlinux 0x60e8ca49 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x60f3eda9 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x60f969f6 pskb_copy +EXPORT_SYMBOL vmlinux 0x6103d43b pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x6107b950 stop_tty +EXPORT_SYMBOL vmlinux 0x6113fa32 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6141ee9e inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x61536865 idr_destroy +EXPORT_SYMBOL vmlinux 0x6158e1a7 d_instantiate +EXPORT_SYMBOL vmlinux 0x61696e52 prepare_binprm +EXPORT_SYMBOL vmlinux 0x618285f4 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x619b187b add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x61b499d9 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x61b5ade0 down_write +EXPORT_SYMBOL vmlinux 0x61b752ca set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61b86117 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x61c1d71f llc_add_pack +EXPORT_SYMBOL vmlinux 0x61e87f9b elv_rb_add +EXPORT_SYMBOL vmlinux 0x61f58625 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x62193598 pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x621d77a0 sleep_on +EXPORT_SYMBOL vmlinux 0x621e4fb8 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622fa02a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x62450d17 inode_permission +EXPORT_SYMBOL vmlinux 0x62718c0e writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x6287f711 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x62cb4cee interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x62cd8754 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x6322a02c cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x6332cc1a audit_log_start +EXPORT_SYMBOL vmlinux 0x6337dfce ab8500_gpadc_convert +EXPORT_SYMBOL vmlinux 0x6340f9de wireless_spy_update +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x638a7e3c register_framebuffer +EXPORT_SYMBOL vmlinux 0x6399f3ac nf_afinfo +EXPORT_SYMBOL vmlinux 0x63c3e0fe journal_stop +EXPORT_SYMBOL vmlinux 0x63dccc7f input_grab_device +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64078393 create_proc_entry +EXPORT_SYMBOL vmlinux 0x643eaec8 param_get_string +EXPORT_SYMBOL vmlinux 0x643fa6cb dev_addr_init +EXPORT_SYMBOL vmlinux 0x644d0c84 phy_print_status +EXPORT_SYMBOL vmlinux 0x645c7def block_commit_write +EXPORT_SYMBOL vmlinux 0x646c82f1 pci_get_slot +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64896fb3 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64c003e1 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x64c45a53 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x64c6af86 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x64d8c541 ll_rw_block +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x650332bb pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x6509df67 register_8022_client +EXPORT_SYMBOL vmlinux 0x65134b4b thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65291cff timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0x653a1cc2 journal_restart +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x65619838 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x656b0f63 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x656d8719 netdev_update_features +EXPORT_SYMBOL vmlinux 0x657879ce __init_rwsem +EXPORT_SYMBOL vmlinux 0x65804b53 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x658f656d input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x65a9899e cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65de0000 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x65f12d09 neigh_table_init +EXPORT_SYMBOL vmlinux 0x65f624d4 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x66355efc vprintk +EXPORT_SYMBOL vmlinux 0x665f7081 softnet_data +EXPORT_SYMBOL vmlinux 0x66673195 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x667c5834 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x66821753 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x6688cecb sock_wmalloc +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66965d99 __kfree_skb +EXPORT_SYMBOL vmlinux 0x669dd28a posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66c5e015 thaw_process +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66d8254a misc_deregister +EXPORT_SYMBOL vmlinux 0x66dc068a proc_mkdir +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x67107a50 kick_iocb +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6746af35 dst_alloc +EXPORT_SYMBOL vmlinux 0x677f8772 set_trace_device +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x678091b6 dcache_readdir +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b4e90e elv_rb_del +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67cb9386 __cleancache_flush_inode +EXPORT_SYMBOL vmlinux 0x67d9056f iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x67db2c81 seq_open +EXPORT_SYMBOL vmlinux 0x67f7403e _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x67fc1a82 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x68151a84 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x68382984 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x683ec966 pci_get_class +EXPORT_SYMBOL vmlinux 0x685403ad dev_get_flags +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x687b918e fb_get_mode +EXPORT_SYMBOL vmlinux 0x687c1a3f locks_init_lock +EXPORT_SYMBOL vmlinux 0x68adb21b pnp_device_attach +EXPORT_SYMBOL vmlinux 0x68d8d192 user_revoke +EXPORT_SYMBOL vmlinux 0x68e76fa4 dev_deactivate +EXPORT_SYMBOL vmlinux 0x690d45dd get_user_pages +EXPORT_SYMBOL vmlinux 0x6926235d netpoll_print_options +EXPORT_SYMBOL vmlinux 0x693685a2 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x693e7a90 vm_insert_page +EXPORT_SYMBOL vmlinux 0x694ef328 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x69527d29 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x69660090 netif_device_detach +EXPORT_SYMBOL vmlinux 0x696bb74a sock_init_data +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x6992c9ba ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x69984279 pcim_iomap +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b232ce tcp_check_req +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69dfef34 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e37420 pci_disable_device +EXPORT_SYMBOL vmlinux 0x69f1faac bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a33bcd2 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x6a378098 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x6a465e62 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x6a48e16b percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a8c48e3 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x6ab48886 module_put +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad432a7 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6af8382f sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b286d64 __invalidate_device +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b2f0375 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x6b5ed3f9 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x6b6ea105 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x6b816719 blkdev_get +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bc0fd5a jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6c02db52 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c241f9e blk_delay_queue +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c498457 proc_create_data +EXPORT_SYMBOL vmlinux 0x6c5fbac2 sock_no_connect +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c7d1341 touch_atime +EXPORT_SYMBOL vmlinux 0x6c8ce7ee scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x6cb03700 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x6cbfef9b sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf15fd0 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x6d0b1be4 mdiobus_register +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2c698d genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d3e4348 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d4a2e78 set_pages_x +EXPORT_SYMBOL vmlinux 0x6d53c311 do_sync_read +EXPORT_SYMBOL vmlinux 0x6d55d378 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x6d5f7d97 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d8688b8 put_page +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e04c592 block_truncate_page +EXPORT_SYMBOL vmlinux 0x6e31ab4f ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x6e3cb31d delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x6e51ac2e _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x6e6057e4 revalidate_disk +EXPORT_SYMBOL vmlinux 0x6e65f2dc rtc_lock +EXPORT_SYMBOL vmlinux 0x6e6640c2 serio_rescan +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e807df6 __dst_free +EXPORT_SYMBOL vmlinux 0x6e80e1e1 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x6e8534b4 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x6e8a02eb dev_get_stats +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea04ea9 ilookup +EXPORT_SYMBOL vmlinux 0x6ea211a7 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x6ebc38e3 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x6ecfb08b elevator_exit +EXPORT_SYMBOL vmlinux 0x6ef59dc6 simple_readpage +EXPORT_SYMBOL vmlinux 0x6f03c778 devm_free_irq +EXPORT_SYMBOL vmlinux 0x6f063ee1 vfs_readdir +EXPORT_SYMBOL vmlinux 0x6f093e9a __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x6f1a4d8d d_obtain_alias +EXPORT_SYMBOL vmlinux 0x6f1b678f sk_run_filter +EXPORT_SYMBOL vmlinux 0x6f42c2eb generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x6f453820 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f57c735 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x6f8c752d __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x6fc2d0a4 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fdefd1e unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x7019892a skb_put +EXPORT_SYMBOL vmlinux 0x702be92f would_dump +EXPORT_SYMBOL vmlinux 0x7038d632 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x703b4352 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x7045c24b __lock_buffer +EXPORT_SYMBOL vmlinux 0x7048f712 request_key_async +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70806250 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x70947bc3 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x7094b1ce eth_header_cache +EXPORT_SYMBOL vmlinux 0x709af18e journal_abort +EXPORT_SYMBOL vmlinux 0x709c1b5a truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x709d6d85 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x70b32ea1 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x70b4cbc0 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x70b6e2ec pci_match_id +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c6438f rtnl_create_link +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e701d1 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x70fd23b1 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x711276cd lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x7114a71f bit_waitqueue +EXPORT_SYMBOL vmlinux 0x7129d30a scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7144ed24 __d_drop +EXPORT_SYMBOL vmlinux 0x7156060a d_prune_aliases +EXPORT_SYMBOL vmlinux 0x716372aa eisa_driver_register +EXPORT_SYMBOL vmlinux 0x716b15be tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7175d967 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x71a2b4c4 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71cf0c62 agp_free_memory +EXPORT_SYMBOL vmlinux 0x71e4bfe7 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x71ec5f55 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x71eece32 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x7234eafb otg_state_string +EXPORT_SYMBOL vmlinux 0x723bce79 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x7243d7e3 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x727f77c8 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x72821857 phy_driver_register +EXPORT_SYMBOL vmlinux 0x7287a2ec padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x728eaffe security_path_link +EXPORT_SYMBOL vmlinux 0x729bddf6 get_agp_version +EXPORT_SYMBOL vmlinux 0x72aa72ee vfs_link +EXPORT_SYMBOL vmlinux 0x72aa82c6 param_ops_charp +EXPORT_SYMBOL vmlinux 0x72aea5b9 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x72b191fb __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b2824b inet_accept +EXPORT_SYMBOL vmlinux 0x72beccc0 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72ce4b08 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72df2f2a up_read +EXPORT_SYMBOL vmlinux 0x72e50086 vm_stat +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x730a1a58 irq_set_chip +EXPORT_SYMBOL vmlinux 0x730ff363 param_set_uint +EXPORT_SYMBOL vmlinux 0x732b7833 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x734598ca of_find_matching_node +EXPORT_SYMBOL vmlinux 0x734df93f kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x736c79dc param_get_byte +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x7383d1e1 unlock_page +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x7388503f pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x73a07564 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73af87c5 freeze_super +EXPORT_SYMBOL vmlinux 0x73c1ab7b __get_page_tail +EXPORT_SYMBOL vmlinux 0x73c62600 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73e66647 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x73f11212 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x73f59cda pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x7405ace5 scsi_add_device +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x74115dbc pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x741a6e22 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x7423261f journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x74251339 ip_fragment +EXPORT_SYMBOL vmlinux 0x74354817 __pagevec_release +EXPORT_SYMBOL vmlinux 0x744afdd3 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x7453580b truncate_setsize +EXPORT_SYMBOL vmlinux 0x7455b2c2 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x745c9ea2 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x748548a1 dquot_enable +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x748f2976 filemap_flush +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cd1f39 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x74d80856 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x75184890 aio_complete +EXPORT_SYMBOL vmlinux 0x751b2247 param_get_bool +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x75400b37 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x755b0bd7 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x756c94e2 udp_poll +EXPORT_SYMBOL vmlinux 0x75707eec fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75a87811 tty_write_room +EXPORT_SYMBOL vmlinux 0x75aa3036 __cleancache_flush_page +EXPORT_SYMBOL vmlinux 0x75bb675a finish_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75c88379 icmp_send +EXPORT_SYMBOL vmlinux 0x75d87a0f of_match_device +EXPORT_SYMBOL vmlinux 0x75fe73ab netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x7651b132 vmap +EXPORT_SYMBOL vmlinux 0x76584577 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x765c377f arp_invalidate +EXPORT_SYMBOL vmlinux 0x767405ff console_stop +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cb9910 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x76ccca34 sync_inode +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76f1c071 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x76f2314a netif_notify_peers +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x770c4d71 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x7710baa9 mutex_trylock +EXPORT_SYMBOL vmlinux 0x772a7c03 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x772f9eec __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x773a7eee blk_end_request +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x777539b7 cpu_info +EXPORT_SYMBOL vmlinux 0x77778afc skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77b4b13c jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77cd8fe1 bio_free +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x784d4632 follow_pfn +EXPORT_SYMBOL vmlinux 0x7878d5b3 init_task +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x78887518 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x78bb2011 dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x78ca0122 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e21028 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x78ec7f07 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x792fac4f genl_unregister_family +EXPORT_SYMBOL vmlinux 0x792fbc29 names_cachep +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x797eaf02 seq_read +EXPORT_SYMBOL vmlinux 0x799a6058 netdev_info +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa5a43 vfs_writev +EXPORT_SYMBOL vmlinux 0x79b3c5a7 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x79c30675 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x79c6efcd writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x79de8570 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x79f2dea6 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x7a1390f7 param_set_bool +EXPORT_SYMBOL vmlinux 0x7a1a6732 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a31a241 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a59e624 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x7a93bc42 inode_change_ok +EXPORT_SYMBOL vmlinux 0x7a950bdc vfs_mknod +EXPORT_SYMBOL vmlinux 0x7a9bf88d udplite_table +EXPORT_SYMBOL vmlinux 0x7aa3597b set_user_nice +EXPORT_SYMBOL vmlinux 0x7aa4700f mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x7aa81449 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x7ab97aa3 mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x7abf6c72 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x7ac4e706 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x7accd2a4 generic_write_end +EXPORT_SYMBOL vmlinux 0x7aec7fad journal_get_create_access +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7af907a8 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b15afae of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x7b280bbc inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x7b4763be acpi_bus_start +EXPORT_SYMBOL vmlinux 0x7b4dfd81 __page_symlink +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b642f23 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x7b664b64 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x7b6d225d devm_iounmap +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7bb0d531 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x7bb5adf3 kmap_to_page +EXPORT_SYMBOL vmlinux 0x7bc9f75f fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x7bff1af8 skb_trim +EXPORT_SYMBOL vmlinux 0x7c0edd7d acpi_check_region +EXPORT_SYMBOL vmlinux 0x7c10a896 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x7c2909c5 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x7c3afcca sget +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61c90f tcp_shutdown +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7ca19673 proc_symlink +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cc4ccb4 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x7ce0ae7c param_get_long +EXPORT_SYMBOL vmlinux 0x7ce59061 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d14172e pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x7d155412 __find_get_block +EXPORT_SYMBOL vmlinux 0x7d17eeff journal_dirty_data +EXPORT_SYMBOL vmlinux 0x7d281fc5 generic_write_sync +EXPORT_SYMBOL vmlinux 0x7d7d2504 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x7db3c5ae elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x7db5ae5e bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x7dba05be first_ec +EXPORT_SYMBOL vmlinux 0x7dbc2e57 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x7de38de1 find_get_page +EXPORT_SYMBOL vmlinux 0x7de866c7 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7df9fe99 file_remove_suid +EXPORT_SYMBOL vmlinux 0x7dfb4425 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x7e0d7a06 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e242ebe md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e443397 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x7e6499ed __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x7e95c3f9 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ea2e06f ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x7ebb7615 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7ed7ee76 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x7ee867f4 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x7eee7eba tty_port_close_end +EXPORT_SYMBOL vmlinux 0x7f18b194 kacpi_hotplug_wq +EXPORT_SYMBOL vmlinux 0x7f200d69 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f658e80 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7fa4f434 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x7fb9d1f5 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x7fc3befe vfs_fsync +EXPORT_SYMBOL vmlinux 0x7feea3e9 md_write_start +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x805ecb18 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x8067f45e kthread_bind +EXPORT_SYMBOL vmlinux 0x8070108e is_bad_inode +EXPORT_SYMBOL vmlinux 0x80a64963 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x80a949f6 blk_get_request +EXPORT_SYMBOL vmlinux 0x80aaf2b9 km_query +EXPORT_SYMBOL vmlinux 0x80ac8d8e make_EII_client +EXPORT_SYMBOL vmlinux 0x80ba2da3 wake_up_process +EXPORT_SYMBOL vmlinux 0x80d06543 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x80eab7b3 dquot_initialize +EXPORT_SYMBOL vmlinux 0x80fd08f9 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x8105df52 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x810b3618 param_ops_string +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814d4455 arp_xmit +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8150c0ba mempool_resize +EXPORT_SYMBOL vmlinux 0x8159abc4 register_md_personality +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x817be3eb of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0x8199c4a3 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81a386e1 kobject_init +EXPORT_SYMBOL vmlinux 0x81a5e22a kobject_del +EXPORT_SYMBOL vmlinux 0x81cd1bd4 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81e746f0 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x81f33f43 sock_update_classid +EXPORT_SYMBOL vmlinux 0x81f3f7b6 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x82034bdc posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x821f91d5 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x821fdea4 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x823b64f0 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x823d6699 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82abea12 netif_napi_add +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b48885 __alloc_skb +EXPORT_SYMBOL vmlinux 0x82d3be92 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x82e58957 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x83024f29 d_genocide +EXPORT_SYMBOL vmlinux 0x832da3bb tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x8336f8dd scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x8343cd74 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x83480e67 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x836873a2 proc_dointvec +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x83a08017 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b8abac generic_removexattr +EXPORT_SYMBOL vmlinux 0x83e9c8cf noop_llseek +EXPORT_SYMBOL vmlinux 0x840d6878 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x84276b2b skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x8429329b simple_rename +EXPORT_SYMBOL vmlinux 0x842dedce pipe_to_file +EXPORT_SYMBOL vmlinux 0x8436f8e3 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x843f0c6a jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x844e419f gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x84630d95 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x846bcc01 dm_table_get +EXPORT_SYMBOL vmlinux 0x84be886f completion_done +EXPORT_SYMBOL vmlinux 0x8522b8f4 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x85475dcd d_find_alias +EXPORT_SYMBOL vmlinux 0x854827db rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x8552ff21 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x85561743 scsi_host_get +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x85698d26 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x856f2c02 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x8587b940 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x858e615f jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x859c9390 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85d16790 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85f4217b input_reset_device +EXPORT_SYMBOL vmlinux 0x8619b6b4 km_policy_notify +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x865ab805 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8680bca0 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8683b8b1 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86b9c0ef textsearch_prepare +EXPORT_SYMBOL vmlinux 0x86bfae20 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x86d5255f _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x86de1e7b neigh_for_each +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x86fc0119 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x87154ecd intel_gmch_remove +EXPORT_SYMBOL vmlinux 0x87172009 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x872ffc82 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x873b16de tcf_exts_change +EXPORT_SYMBOL vmlinux 0x87573789 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87a9c376 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87c1be6b ip_getsockopt +EXPORT_SYMBOL vmlinux 0x880111e1 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x880c9d94 locks_delete_block +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88241c85 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x8834c2e2 serio_interrupt +EXPORT_SYMBOL vmlinux 0x888fcf24 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x88933437 __scm_destroy +EXPORT_SYMBOL vmlinux 0x88964a4f key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x88a0d22e mmc_erase +EXPORT_SYMBOL vmlinux 0x88d467c7 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x88d92dd2 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x88e5a094 pci_choose_state +EXPORT_SYMBOL vmlinux 0x88e88136 ioremap_prot +EXPORT_SYMBOL vmlinux 0x88ed0505 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x890b293b sock_release +EXPORT_SYMBOL vmlinux 0x89162cca mntput +EXPORT_SYMBOL vmlinux 0x891c6e0f devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x892a1193 keyring_search +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x892cca8b set_anon_super +EXPORT_SYMBOL vmlinux 0x89480ef7 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x896062db key_validate +EXPORT_SYMBOL vmlinux 0x896a7d1c sk_alloc +EXPORT_SYMBOL vmlinux 0x896d4b80 of_node_get +EXPORT_SYMBOL vmlinux 0x896eefdd lock_may_read +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x898a54d4 bdevname +EXPORT_SYMBOL vmlinux 0x8994f0d0 mdiobus_write +EXPORT_SYMBOL vmlinux 0x89a8c0ea blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x89a90e3d insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x89b1a1a2 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x89bf7595 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89da4432 of_iomap +EXPORT_SYMBOL vmlinux 0x8a0d010c write_cache_pages +EXPORT_SYMBOL vmlinux 0x8a0e72df inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x8a118365 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x8a1615d6 mempool_create_node +EXPORT_SYMBOL vmlinux 0x8a1e6e39 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4a2c14 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x8a5e05b4 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x8a5f05a2 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x8a61347f genphy_read_status +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a93b57a ida_destroy +EXPORT_SYMBOL vmlinux 0x8a98eb96 journal_update_format +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aba8716 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x8abacc5f scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x8ae6c073 km_state_expired +EXPORT_SYMBOL vmlinux 0x8ae9b2e7 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x8b085e46 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b4336b0 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8ba13c9e jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x8ba57a29 __nla_put +EXPORT_SYMBOL vmlinux 0x8bb6acc1 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x8bd5a328 mmc_resume_host +EXPORT_SYMBOL vmlinux 0x8bea377c bio_copy_user +EXPORT_SYMBOL vmlinux 0x8bfbd7b7 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x8c03fe98 sk_wait_data +EXPORT_SYMBOL vmlinux 0x8c0425f6 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x8c0f9422 security_inode_permission +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c2afb3e napi_complete +EXPORT_SYMBOL vmlinux 0x8c3a85d6 task_nice +EXPORT_SYMBOL vmlinux 0x8c48ead6 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x8c5e3d5a unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x8c72ce05 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x8c7a3757 of_get_named_gpio_flags +EXPORT_SYMBOL vmlinux 0x8c8ecd6c flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x8c9ac907 dev_close +EXPORT_SYMBOL vmlinux 0x8cb325f2 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x8cba3f9e tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x8cc4f7fd tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x8cc5a361 netdev_set_bond_master +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8d3cd3e5 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x8d4282ef generic_readlink +EXPORT_SYMBOL vmlinux 0x8d4a294f pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x8d534860 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d58c428 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dd4b580 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e15d013 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x8e2e45cf scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x8e342a4a mb_cache_create +EXPORT_SYMBOL vmlinux 0x8e555738 param_get_uint +EXPORT_SYMBOL vmlinux 0x8e75a30b kset_unregister +EXPORT_SYMBOL vmlinux 0x8e771193 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x8e7cda87 kill_fasync +EXPORT_SYMBOL vmlinux 0x8e82f508 bioset_free +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ec8522d pci_enable_obff +EXPORT_SYMBOL vmlinux 0x8ecbd1a4 log_start_commit +EXPORT_SYMBOL vmlinux 0x8ed5b483 unregister_key_type +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ee89f3e dm_get_device +EXPORT_SYMBOL vmlinux 0x8ef0b561 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f7bd083 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x8f8feae4 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8f9ce892 vfs_symlink +EXPORT_SYMBOL vmlinux 0x8fbad386 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x8fc7f839 param_set_charp +EXPORT_SYMBOL vmlinux 0x8fd1d1f4 request_key +EXPORT_SYMBOL vmlinux 0x8fd239c2 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x8fe64ba3 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x8fe8c147 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ff66782 param_get_ushort +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90018c82 d_delete +EXPORT_SYMBOL vmlinux 0x902d12b2 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x906c8b08 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x9082c813 dqget +EXPORT_SYMBOL vmlinux 0x909e34f2 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90aaf35f blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90e90126 current_task +EXPORT_SYMBOL vmlinux 0x90f13632 proc_dostring +EXPORT_SYMBOL vmlinux 0x90fd2104 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x913a1535 sock_rfree +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x91665e08 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x916bbb25 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x91809c54 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x918346f8 led_blink_set +EXPORT_SYMBOL vmlinux 0x91904947 __destroy_inode +EXPORT_SYMBOL vmlinux 0x91b07479 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x91da1e61 read_cache_page +EXPORT_SYMBOL vmlinux 0x91dda219 __inet6_hash +EXPORT_SYMBOL vmlinux 0x91de2c81 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x921cf99b bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x922a8b6b thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92484440 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x924fa8b5 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x92640f41 pci_enable_ido +EXPORT_SYMBOL vmlinux 0x92671c08 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x92771627 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92a05f3d idr_get_new +EXPORT_SYMBOL vmlinux 0x92c41957 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x92fdea90 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x9300f26b tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x93341504 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x9354233a deactivate_super +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93d4fa68 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x93e4bf0e tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x93e8fc0c splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x93ecea78 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x941bfa10 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x941ed3f8 prepare_creds +EXPORT_SYMBOL vmlinux 0x941faa6b km_report +EXPORT_SYMBOL vmlinux 0x942a8951 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x9442906d security_file_mmap +EXPORT_SYMBOL vmlinux 0x94522658 ata_port_printk +EXPORT_SYMBOL vmlinux 0x94548904 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x94604bf6 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x94645a07 blkdev_put +EXPORT_SYMBOL vmlinux 0x94864c7a wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94e9f74d blk_init_queue +EXPORT_SYMBOL vmlinux 0x94ef6741 __scm_send +EXPORT_SYMBOL vmlinux 0x950505af dev_alert +EXPORT_SYMBOL vmlinux 0x9511acc3 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x952a36e2 ilookup5 +EXPORT_SYMBOL vmlinux 0x952e0fc3 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x9534eb0f scsi_init_io +EXPORT_SYMBOL vmlinux 0x953869f5 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x953db383 free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9545e699 tcp_poll +EXPORT_SYMBOL vmlinux 0x954788b1 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x95633381 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x9580f7bc vm_event_states +EXPORT_SYMBOL vmlinux 0x95826ada tty_port_close +EXPORT_SYMBOL vmlinux 0x95944025 dev_crit +EXPORT_SYMBOL vmlinux 0x95b122bd ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x95c39fdd tty_devnum +EXPORT_SYMBOL vmlinux 0x95c668c1 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x95f89a33 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x9600168c kobject_add +EXPORT_SYMBOL vmlinux 0x961d643c drop_super +EXPORT_SYMBOL vmlinux 0x9622b09e agp_bind_memory +EXPORT_SYMBOL vmlinux 0x963bf80f dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x9659bc28 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x9696ac72 rename_lock +EXPORT_SYMBOL vmlinux 0x96a592f6 seq_puts +EXPORT_SYMBOL vmlinux 0x96aba801 simple_lookup +EXPORT_SYMBOL vmlinux 0x96c10b13 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x96c7e43b seq_printf +EXPORT_SYMBOL vmlinux 0x96cc9414 kern_unmount +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96e79739 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x9700b1b8 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x970c7274 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x97385455 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x9753db06 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9783046c free_netdev +EXPORT_SYMBOL vmlinux 0x97866365 serio_reconnect +EXPORT_SYMBOL vmlinux 0x978f6405 scsi_execute +EXPORT_SYMBOL vmlinux 0x978fc645 kthread_stop +EXPORT_SYMBOL vmlinux 0x97910621 get_super +EXPORT_SYMBOL vmlinux 0x979512d7 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97b08b65 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x97c13a4d sock_register +EXPORT_SYMBOL vmlinux 0x97da78f6 inet6_bind +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97f8d361 simple_link +EXPORT_SYMBOL vmlinux 0x980a7d82 md_integrity_register +EXPORT_SYMBOL vmlinux 0x9818da0f sock_no_accept +EXPORT_SYMBOL vmlinux 0x981f6815 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9823a480 setattr_copy +EXPORT_SYMBOL vmlinux 0x9839161c pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x9841910f ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x9851cebe rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x985b6da0 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989190af of_match_node +EXPORT_SYMBOL vmlinux 0x98b9d97d xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x98f71626 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x99126b52 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x9989179f __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a5ef9f journal_create +EXPORT_SYMBOL vmlinux 0x99b789d7 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x99bda89d journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x99bdc404 kern_path_create +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99f2cdb0 mount_nodev +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a23a678 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x9a3b047f udp_seq_open +EXPORT_SYMBOL vmlinux 0x9a525cb6 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x9a5a0e3c __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x9a683d10 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a812870 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x9a91da1d vfs_unlink +EXPORT_SYMBOL vmlinux 0x9aa697e2 input_close_device +EXPORT_SYMBOL vmlinux 0x9ab6b186 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x9ab8808c param_get_charp +EXPORT_SYMBOL vmlinux 0x9abdd4bb kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x9ac1198a generic_writepages +EXPORT_SYMBOL vmlinux 0x9ad1e48d jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x9ae2a6d7 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x9b01d77f fget +EXPORT_SYMBOL vmlinux 0x9b0573a3 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x9b2adeb5 poll_initwait +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b3d0eca fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x9b450c67 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x9b6355af agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x9b65a4dd bio_map_kern +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b75cb81 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x9b7bf6be of_get_next_child +EXPORT_SYMBOL vmlinux 0x9b86ac1d elv_register_queue +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bbdbc26 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x9bc1fc50 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0e7769 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x9c23bcba atomic64_add_return_cx8 +EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero +EXPORT_SYMBOL vmlinux 0x9c364d67 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x9c440ce9 proto_register +EXPORT_SYMBOL vmlinux 0x9c5f81da cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x9c8aab7b dquot_disable +EXPORT_SYMBOL vmlinux 0x9c8be3d2 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x9c8ecd26 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d015185 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x9d031c04 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x9d166657 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x9d1d47ce thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3dfa1f release_pages +EXPORT_SYMBOL vmlinux 0x9d4442dd iget_locked +EXPORT_SYMBOL vmlinux 0x9d45349c bdget +EXPORT_SYMBOL vmlinux 0x9d4af52b tty_set_operations +EXPORT_SYMBOL vmlinux 0x9d52a8ef unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x9d5e9b2f abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x9d614217 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x9dbb922b I_BDEV +EXPORT_SYMBOL vmlinux 0x9dc359fa agp_generic_enable +EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x9ddb3eb6 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x9ded633c tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e146091 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e3797bc eth_mac_addr +EXPORT_SYMBOL vmlinux 0x9e458776 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e5ca0ec dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x9e607910 audit_log +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e6c9942 uart_match_port +EXPORT_SYMBOL vmlinux 0x9e6deeab kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ead857c scsi_remove_target +EXPORT_SYMBOL vmlinux 0x9ecc218c __napi_complete +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2dc1e9 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x9f3a0236 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x9f448a64 lease_modify +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb2aa48 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe1ac3f dcache_dir_close +EXPORT_SYMBOL vmlinux 0x9feee4e0 nf_register_hook +EXPORT_SYMBOL vmlinux 0x9ff0acb9 pci_iounmap +EXPORT_SYMBOL vmlinux 0x9ff9e086 __register_binfmt +EXPORT_SYMBOL vmlinux 0xa0271ba7 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa078da57 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa085a769 vc_resize +EXPORT_SYMBOL vmlinux 0xa08b3af3 dquot_drop +EXPORT_SYMBOL vmlinux 0xa08de3e6 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xa0af4e22 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa14135e6 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1715001 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xa174f7ea key_link +EXPORT_SYMBOL vmlinux 0xa1805d2a otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xa1a07297 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xa1b14ac1 pci_target_state +EXPORT_SYMBOL vmlinux 0xa1b1ea3a security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1c4b6d2 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xa1c5a3b3 cleancache_enabled +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1ed4df9 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xa1f14ac8 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0xa1f61226 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xa1f7370c inet_bind +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa212bcd3 scsi_put_command +EXPORT_SYMBOL vmlinux 0xa2385740 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xa2426fdc ata_print_version +EXPORT_SYMBOL vmlinux 0xa2621c4b dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xa26df77c xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa2869862 mii_check_media +EXPORT_SYMBOL vmlinux 0xa29377b9 fd_install +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2c56c31 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xa2d43998 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xa2e4e3bd __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f816b9 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa3504378 rwsem_wake +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35c112d sock_recvmsg +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa363dab4 udp_table +EXPORT_SYMBOL vmlinux 0xa36476d1 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xa380fb0b get_io_context +EXPORT_SYMBOL vmlinux 0xa3b578ee tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xa3cea1a6 __put_cred +EXPORT_SYMBOL vmlinux 0xa3dbf4dd pcim_iounmap +EXPORT_SYMBOL vmlinux 0xa3e0b9bb netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xa3e727eb d_validate +EXPORT_SYMBOL vmlinux 0xa407af7c register_cdrom +EXPORT_SYMBOL vmlinux 0xa40e9763 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b90ec blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa4419f69 tty_register_driver +EXPORT_SYMBOL vmlinux 0xa4545573 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xa474702f fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xa4786bed xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xa48fdae2 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xa49f5bcc km_policy_expired +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bdbd4e bioset_create +EXPORT_SYMBOL vmlinux 0xa4be7ccd sock_no_getname +EXPORT_SYMBOL vmlinux 0xa4c7d6f0 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4df6d25 read_cache_pages +EXPORT_SYMBOL vmlinux 0xa4e51005 make_bad_inode +EXPORT_SYMBOL vmlinux 0xa4eb4eff _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xa512ce02 pci_select_bars +EXPORT_SYMBOL vmlinux 0xa517779e fb_set_var +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa51daa4d kernel_accept +EXPORT_SYMBOL vmlinux 0xa53f1907 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xa570dae7 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xa5738c2a ip_ct_attach +EXPORT_SYMBOL vmlinux 0xa575e91c dev_uc_flush +EXPORT_SYMBOL vmlinux 0xa587e09d pcim_enable_device +EXPORT_SYMBOL vmlinux 0xa58fbf16 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xa593d65f xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xa5946def qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a2c7f7 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last +EXPORT_SYMBOL vmlinux 0xa5b2c232 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xa5bffd7c insert_inode_locked +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa5e99861 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xa5fd40eb scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xa62e6e4f acpi_get_table_with_size +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa642fbf4 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xa652c4ef __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xa668a2fa redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67d9cc6 input_flush_device +EXPORT_SYMBOL vmlinux 0xa67da660 mempool_alloc +EXPORT_SYMBOL vmlinux 0xa67e2845 dq_data_lock +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa684fbfd __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xa6940533 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa69ad947 do_splice_to +EXPORT_SYMBOL vmlinux 0xa69cb171 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xa6a08377 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xa6ad1750 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xa6b13658 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xa6b1bda6 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xa6c356c1 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xa6d5c220 mount_single +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e9780a dev_load +EXPORT_SYMBOL vmlinux 0xa6f2a73c sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa732d47a release_firmware +EXPORT_SYMBOL vmlinux 0xa785fadd pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xa789faa2 iget5_locked +EXPORT_SYMBOL vmlinux 0xa79cedac nf_reinject +EXPORT_SYMBOL vmlinux 0xa7a3e0b7 mca_device_read_pos +EXPORT_SYMBOL vmlinux 0xa7d62276 eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0xa7dd5e6c inet6_release +EXPORT_SYMBOL vmlinux 0xa7f4b33c path_put +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa84dafa8 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xa8554798 may_umount_tree +EXPORT_SYMBOL vmlinux 0xa857090d mca_unregister_driver +EXPORT_SYMBOL vmlinux 0xa875db81 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0xa8a1c6ff neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xa8cb8031 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xa8d0b51d of_device_alloc +EXPORT_SYMBOL vmlinux 0xa8d18728 nobh_write_end +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9117a7c blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xa91695b2 mdiobus_free +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa935cdee d_set_d_op +EXPORT_SYMBOL vmlinux 0xa947ddc0 ip6_xmit +EXPORT_SYMBOL vmlinux 0xa95dfd2d md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xa967df2e pci_assign_resource +EXPORT_SYMBOL vmlinux 0xa97d4646 dev_mc_init +EXPORT_SYMBOL vmlinux 0xa97f69c8 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0xa98befc8 input_register_handler +EXPORT_SYMBOL vmlinux 0xa98c061a uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xa9977302 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xa99f614e __dquot_transfer +EXPORT_SYMBOL vmlinux 0xa9a1ec23 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9e6724d lookup_one_len +EXPORT_SYMBOL vmlinux 0xa9f303f2 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xaa66e182 vfs_open +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaa96a585 single_open +EXPORT_SYMBOL vmlinux 0xaaaaacd1 ioremap_wc +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaab913cc nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xaab9f7e7 node_states +EXPORT_SYMBOL vmlinux 0xaad4479d call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xaad5b296 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab16d532 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xab1c2237 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xab1cfc67 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xab1f80e1 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xab28271c i8253_lock +EXPORT_SYMBOL vmlinux 0xab3541bf dev_mc_flush +EXPORT_SYMBOL vmlinux 0xab56d6dd mca_register_driver +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab7fe56c journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xab8f7903 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xaba96c6e agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd19b84 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xabf337aa netlink_ack +EXPORT_SYMBOL vmlinux 0xac0047eb qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac2460e9 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xac2bf50a inode_init_always +EXPORT_SYMBOL vmlinux 0xac3849c0 simple_empty +EXPORT_SYMBOL vmlinux 0xac4dacce bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xac578b2c kill_pgrp +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0xac88c0bc pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xac88ca72 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xac919d1f generic_show_options +EXPORT_SYMBOL vmlinux 0xacc25f6d pci_restore_state +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xaccefa00 account_page_writeback +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad07f027 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad169c34 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xad4581a7 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad4ad08b mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad8be8ce mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0xada2b54b pid_task +EXPORT_SYMBOL vmlinux 0xada75bdf __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadaede82 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xadd1879c __block_write_begin +EXPORT_SYMBOL vmlinux 0xadf041bd jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xadf39c7a call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae020aab mmc_suspend_host +EXPORT_SYMBOL vmlinux 0xae0f7240 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xae134c24 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xae2128f4 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xae6faaba jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xae7bdf94 read_dev_sector +EXPORT_SYMBOL vmlinux 0xae89868e sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xae8e1daf md_register_thread +EXPORT_SYMBOL vmlinux 0xae927ba0 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0xaea42d3d serio_close +EXPORT_SYMBOL vmlinux 0xaea6d129 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xaeb426e8 tcp_connect +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaecef39c inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xaee51f68 elevator_init +EXPORT_SYMBOL vmlinux 0xaf1ffd95 sg_miter_start +EXPORT_SYMBOL vmlinux 0xaf3b91f8 pipe_lock +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf611eac amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0xaf7b9adc skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafb8525a xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xafe6d87a xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xb00dd922 phy_disconnect +EXPORT_SYMBOL vmlinux 0xb0146c3a param_set_byte +EXPORT_SYMBOL vmlinux 0xb0207ecf ___ratelimit +EXPORT_SYMBOL vmlinux 0xb0639919 mmc_free_host +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb08b6200 mem_map +EXPORT_SYMBOL vmlinux 0xb09abbd2 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xb09d5747 del_gendisk +EXPORT_SYMBOL vmlinux 0xb0af0deb bdget_disk +EXPORT_SYMBOL vmlinux 0xb0b76090 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0db1554 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f68410 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xb116fef3 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12ae843 security_path_chown +EXPORT_SYMBOL vmlinux 0xb1347e7e key_put +EXPORT_SYMBOL vmlinux 0xb134d82a cdev_add +EXPORT_SYMBOL vmlinux 0xb17521bb input_allocate_device +EXPORT_SYMBOL vmlinux 0xb17cf54d flush_signals +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1bac33b __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xb1bc4f90 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xb1bd3c6f tcp_seq_open +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6e5d1 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d9523e wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1f51218 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb24375fc nf_ct_attach +EXPORT_SYMBOL vmlinux 0xb24721e2 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xb2556234 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xb25e0aea ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xb2659f5b sk_stream_error +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26f3b32 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xb2744b36 down_write_trylock +EXPORT_SYMBOL vmlinux 0xb291c67d phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xb29a9ca6 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xb2bba3ee inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xb2bd1954 dma_pool_create +EXPORT_SYMBOL vmlinux 0xb2c9163c ata_link_printk +EXPORT_SYMBOL vmlinux 0xb2da387e tc_classify_compat +EXPORT_SYMBOL vmlinux 0xb2e05588 skb_pull +EXPORT_SYMBOL vmlinux 0xb2e63c37 d_alloc +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb306548c tcf_register_action +EXPORT_SYMBOL vmlinux 0xb3077f9c vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xb3086464 mmc_can_reset +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb31e7bde tty_free_termios +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb34cb661 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb36ff992 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xb39c337d skb_recycle_check +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3a59c43 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0xb3ac72cf tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xb3bcba11 journal_check_available_features +EXPORT_SYMBOL vmlinux 0xb3dc9dfb mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb3f17b5f vfs_getattr +EXPORT_SYMBOL vmlinux 0xb3fd99ab dev_addr_del +EXPORT_SYMBOL vmlinux 0xb412edcd ab8500_gpadc_read_raw +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4354f1c dev_get_by_index +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb43c1c7d tty_unregister_device +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb481410b ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xb4afffb4 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xb4cd6cb9 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xb4e34966 padata_add_cpu +EXPORT_SYMBOL vmlinux 0xb4eda756 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xb4f01017 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xb4f55b10 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5665f21 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xb58fc481 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5de3479 security_path_truncate +EXPORT_SYMBOL vmlinux 0xb5eecdb2 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xb5fb870b commit_creds +EXPORT_SYMBOL vmlinux 0xb6054fe5 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xb60aeaac journal_start_commit +EXPORT_SYMBOL vmlinux 0xb61d7ce3 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb63337d8 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xb63ea322 have_submounts +EXPORT_SYMBOL vmlinux 0xb6588e7a idr_remove +EXPORT_SYMBOL vmlinux 0xb6708387 generic_read_dir +EXPORT_SYMBOL vmlinux 0xb6723455 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb69d9ff4 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6bb1e4f phy_start_aneg +EXPORT_SYMBOL vmlinux 0xb6be2bd9 find_inode_number +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6d0f739 kunmap +EXPORT_SYMBOL vmlinux 0xb6e0a931 generic_write_checks +EXPORT_SYMBOL vmlinux 0xb6e1a5b0 lock_sock_fast +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6fb972b udp_proc_register +EXPORT_SYMBOL vmlinux 0xb70f741f submit_bh +EXPORT_SYMBOL vmlinux 0xb71204e6 napi_get_frags +EXPORT_SYMBOL vmlinux 0xb7523526 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb75e480c vga_put +EXPORT_SYMBOL vmlinux 0xb7628042 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xb78c61e8 param_ops_bool +EXPORT_SYMBOL vmlinux 0xb7b3e5d6 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7bcc1ed netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xb7d09e30 tcp_close +EXPORT_SYMBOL vmlinux 0xb7f97b7d pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xb81682f3 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb831d6f5 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xb8345fc3 dqput +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb83de1f3 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xb8562299 register_exec_domain +EXPORT_SYMBOL vmlinux 0xb863e8df seq_putc +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8759454 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xb88d3bb9 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8a95a99 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8b6d287 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xb8be3d16 journal_start +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb91b02de scsi_print_command +EXPORT_SYMBOL vmlinux 0xb91b2ad9 pnp_device_detach +EXPORT_SYMBOL vmlinux 0xb91f560d register_qdisc +EXPORT_SYMBOL vmlinux 0xb94b98fa nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xb9797f14 bdput +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99698f4 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xb99cf582 ida_get_new_above +EXPORT_SYMBOL vmlinux 0xb9e4e4a7 filp_open +EXPORT_SYMBOL vmlinux 0xb9e643e7 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba303e10 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba520dfc acpi_root_dir +EXPORT_SYMBOL vmlinux 0xba5eb097 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xba7f9e5c misc_register +EXPORT_SYMBOL vmlinux 0xba8ea6ad rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaae69c4 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xbacec372 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xbad13aa9 end_page_writeback +EXPORT_SYMBOL vmlinux 0xbae68e79 md_flush_request +EXPORT_SYMBOL vmlinux 0xbaf21222 mca_device_set_claim +EXPORT_SYMBOL vmlinux 0xbb0c781a i2c_master_recv +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1e6a06 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xbb26b823 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xbb2d6e8b netdev_warn +EXPORT_SYMBOL vmlinux 0xbb3440b6 follow_down +EXPORT_SYMBOL vmlinux 0xbb3ecd9d pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xbb4798d2 __mutex_init +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb837d27 machine_real_restart +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbd49d17 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xbbd863a1 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xbbded9d3 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xbc08dc08 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xbc19c0b1 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xbc1afedf up_write +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc754a61 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xbc7d8b22 pci_find_bus +EXPORT_SYMBOL vmlinux 0xbc90490b __scsi_add_device +EXPORT_SYMBOL vmlinux 0xbc97aea2 blk_init_tags +EXPORT_SYMBOL vmlinux 0xbc9dcae8 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbccd46a1 journal_set_features +EXPORT_SYMBOL vmlinux 0xbccefb31 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xbcdb5576 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xbcdff7a3 unload_nls +EXPORT_SYMBOL vmlinux 0xbced94f3 bio_copy_kern +EXPORT_SYMBOL vmlinux 0xbcf3faf4 igrab +EXPORT_SYMBOL vmlinux 0xbcfc9c47 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xbd0afb92 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xbd1881c1 block_write_end +EXPORT_SYMBOL vmlinux 0xbd23e147 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xbd4987f9 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xbd64950c uart_add_one_port +EXPORT_SYMBOL vmlinux 0xbd967ae1 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xbd9c61c0 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xbdadd3dd input_inject_event +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc20c68 intel_gtt_get +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe091d41 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe270eb0 of_phy_find_device +EXPORT_SYMBOL vmlinux 0xbe28c1a5 pci_set_mwi +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe2fd336 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xbe3b797f pci_remove_bus +EXPORT_SYMBOL vmlinux 0xbe527cba __scsi_put_command +EXPORT_SYMBOL vmlinux 0xbe5b5cf4 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xbe5d22d4 dma_set_mask +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe97cde4 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xbecb5057 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xbed01c5f proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xbed974be i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbeea2c62 dquot_transfer +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbefca150 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xbf063bcb __lru_cache_add +EXPORT_SYMBOL vmlinux 0xbf0a7096 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xbf11cb9e fail_migrate_page +EXPORT_SYMBOL vmlinux 0xbf29db5b processors +EXPORT_SYMBOL vmlinux 0xbf4b5c7e cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xbf52238d xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xbf525000 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xbf5875bb dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xbf593150 genphy_resume +EXPORT_SYMBOL vmlinux 0xbf7cde7a abort_creds +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfbaeafc mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfdff814 of_get_address +EXPORT_SYMBOL vmlinux 0xbfed83c9 journal_init_dev +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc01cf848 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc02a4866 setup_new_exec +EXPORT_SYMBOL vmlinux 0xc03ad84f xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xc055515d do_SAK +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc058d781 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc06a4e6f blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc083be98 write_inode_now +EXPORT_SYMBOL vmlinux 0xc087879a dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xc0999c73 genphy_suspend +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0b03362 dma_find_channel +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0c0e326 sock_kmalloc +EXPORT_SYMBOL vmlinux 0xc0cb3353 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xc10eb1d0 nf_log_packet +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc13e507b ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xc13fba69 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xc14356dd grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xc1450de8 save_mount_options +EXPORT_SYMBOL vmlinux 0xc1a4c500 add_disk +EXPORT_SYMBOL vmlinux 0xc1b7b1f0 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xc1b962a1 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xc1be20bf scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xc1bf41df i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d38943 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xc1d6f394 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xc1eaacdf security_d_instantiate +EXPORT_SYMBOL vmlinux 0xc1fd4aa6 generic_listxattr +EXPORT_SYMBOL vmlinux 0xc1ff2ba9 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xc20330f1 pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0xc2137f71 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xc21ed29a cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xc21ff379 set_blocksize +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc246e2f4 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26d3cf7 d_invalidate +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc28f795e iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xc29db87e pci_bus_type +EXPORT_SYMBOL vmlinux 0xc2aa48af tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xc2b09046 mutex_unlock +EXPORT_SYMBOL vmlinux 0xc2b33efb sock_no_mmap +EXPORT_SYMBOL vmlinux 0xc2bbaa00 __brelse +EXPORT_SYMBOL vmlinux 0xc2c41cd2 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xc2c9124f acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f2d448 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xc316b98c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0xc3245b11 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xc33298df kobject_put +EXPORT_SYMBOL vmlinux 0xc355010b gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xc35e7d9f kthread_create_on_node +EXPORT_SYMBOL vmlinux 0xc3856fb2 skb_copy +EXPORT_SYMBOL vmlinux 0xc39b9571 pci_set_ltr +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3ad72e3 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3cf7a5e request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xc3d871d6 unlock_rename +EXPORT_SYMBOL vmlinux 0xc3edb818 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xc3f615c8 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc3fe87c8 param_ops_uint +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc4198994 agp_create_memory +EXPORT_SYMBOL vmlinux 0xc41e8f7a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xc42b5c44 i2c_master_send +EXPORT_SYMBOL vmlinux 0xc439effa intel_gtt_unmap_memory +EXPORT_SYMBOL vmlinux 0xc4554217 up +EXPORT_SYMBOL vmlinux 0xc45abe8a pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xc468478f __lock_page +EXPORT_SYMBOL vmlinux 0xc48024ed pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49eb81d input_open_device +EXPORT_SYMBOL vmlinux 0xc4a9be85 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xc4c1c8f2 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xc4f52157 serio_open +EXPORT_SYMBOL vmlinux 0xc4f91546 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xc4fdd863 inet_getname +EXPORT_SYMBOL vmlinux 0xc50ff746 __seq_open_private +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc54336d5 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55edf78 file_open_root +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc5a37aa8 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0xc5bc02e9 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xc5cc6082 kill_anon_super +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5dc35e9 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xc5e5804e tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc5fc2edc ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xc60decca inode_init_owner +EXPORT_SYMBOL vmlinux 0xc6116f62 dquot_acquire +EXPORT_SYMBOL vmlinux 0xc62e0168 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc63a9a2f jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xc63a9b5d __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xc63cc125 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc679579e mmc_start_req +EXPORT_SYMBOL vmlinux 0xc6871bc2 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc690c1f8 dev_uc_del +EXPORT_SYMBOL vmlinux 0xc6aa651a dev_emerg +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6cd90c8 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xc6e05147 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xc6eba7ed alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xc70efe24 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc73baab2 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xc7601593 udp_disconnect +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc77ce503 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7902f2a blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a80a1f bio_endio +EXPORT_SYMBOL vmlinux 0xc7b7571a inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0xc7dc15fb tty_register_device +EXPORT_SYMBOL vmlinux 0xc7e7a3c3 address_space_init_once +EXPORT_SYMBOL vmlinux 0xc7e9a028 put_io_context +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc802d101 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0xc802e218 thaw_super +EXPORT_SYMBOL vmlinux 0xc8074118 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84f2d7b alloc_file +EXPORT_SYMBOL vmlinux 0xc89b80fa inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xc8b04644 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8ff03d3 ether_setup +EXPORT_SYMBOL vmlinux 0xc91a0dd0 vfs_read +EXPORT_SYMBOL vmlinux 0xc92f15e6 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xc93f06e6 acpi_device_hid +EXPORT_SYMBOL vmlinux 0xc9402c99 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xc94fa003 irq_stat +EXPORT_SYMBOL vmlinux 0xc95a3a0e cont_write_begin +EXPORT_SYMBOL vmlinux 0xc987d325 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xc98c27a9 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9b3d393 blk_free_tags +EXPORT_SYMBOL vmlinux 0xc9b6cfe9 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xc9b8c308 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xc9be0b0a bio_pair_release +EXPORT_SYMBOL vmlinux 0xc9c323ea mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0xc9d4d4a0 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xca2bf945 cdev_alloc +EXPORT_SYMBOL vmlinux 0xca3ad236 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca615a01 dma_ops +EXPORT_SYMBOL vmlinux 0xca623724 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xca81b576 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xca87a638 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca96dcad tcf_em_register +EXPORT_SYMBOL vmlinux 0xcaf4d417 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xcb1582af consume_skb +EXPORT_SYMBOL vmlinux 0xcb35fc16 unregister_snap_client +EXPORT_SYMBOL vmlinux 0xcb451e56 idr_init +EXPORT_SYMBOL vmlinux 0xcb454fef phy_connect_direct +EXPORT_SYMBOL vmlinux 0xcb4afd14 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xcb51bab5 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb7dac63 arp_tbl +EXPORT_SYMBOL vmlinux 0xcb99edb0 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0xcba3cbec rtnl_unicast +EXPORT_SYMBOL vmlinux 0xcbaac2b2 uart_resume_port +EXPORT_SYMBOL vmlinux 0xcbb1d4ec ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xcbc537e2 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbca65b6 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xcbf7f4c3 unlock_super +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc291a87 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc5e9f9c of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0xcc756a07 register_netdevice +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc921256 do_munmap +EXPORT_SYMBOL vmlinux 0xccb8ba4e blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xccbefe3d mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0xccc368f2 mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0xccf9ef85 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd3a1a5f pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xcd3b9ae9 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xcd54b8a5 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xcd5c9ec0 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xcd6c6040 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xcd6ed34f bmap +EXPORT_SYMBOL vmlinux 0xcd7bffa8 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xcd83671c mii_check_link +EXPORT_SYMBOL vmlinux 0xcd8c6ba5 bdgrab +EXPORT_SYMBOL vmlinux 0xcd944734 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xcda86ea4 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xcdcee358 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xcdcf3045 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xcdddac05 generic_setlease +EXPORT_SYMBOL vmlinux 0xcddeab77 sock_i_uid +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde9f7ae udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xcdf4308c netdev_set_master +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce6e64e7 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xce787cf5 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xce7ce037 of_translate_address +EXPORT_SYMBOL vmlinux 0xce7f08a1 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xce8ff6f4 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xcec315d4 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0xcec8aaa3 i2c_use_client +EXPORT_SYMBOL vmlinux 0xcecbfdc6 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefb0759 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf015f7b do_settimeofday +EXPORT_SYMBOL vmlinux 0xcf0ba074 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xcf0c6c81 unlock_buffer +EXPORT_SYMBOL vmlinux 0xcf109871 cap_file_mmap +EXPORT_SYMBOL vmlinux 0xcf1d067f bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf26da10 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xcf36a4f0 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xcf52a6d2 proto_unregister +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf8068b1 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xcfa4cfb3 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0413957 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xd043f38c ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xd0478158 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xd06b1465 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xd07893cd skb_seq_read +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd085185b pci_iomap +EXPORT_SYMBOL vmlinux 0xd08606ec vfs_readlink +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0be476d journal_flush +EXPORT_SYMBOL vmlinux 0xd0cccb74 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f0d945 down_read +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0f4ce99 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd12151d7 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xd1234c70 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xd13432a3 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd166110a d_alloc_root +EXPORT_SYMBOL vmlinux 0xd172cb8d netdev_increment_features +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd18ce41d mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1bdb3c9 input_set_capability +EXPORT_SYMBOL vmlinux 0xd1edde11 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd2329de3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xd23abc10 pnp_get_resource +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25872b8 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd266efe7 mempool_create +EXPORT_SYMBOL vmlinux 0xd276f795 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xd27ba9f1 pci_set_power_state +EXPORT_SYMBOL vmlinux 0xd2877022 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2b07814 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xd2b1a3f8 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xd2bd5510 console_start +EXPORT_SYMBOL vmlinux 0xd2d51180 of_gpio_count +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2e71844 mmc_do_release_host +EXPORT_SYMBOL vmlinux 0xd2ed1c80 km_new_mapping +EXPORT_SYMBOL vmlinux 0xd2ede4cd dev_set_group +EXPORT_SYMBOL vmlinux 0xd2fd7016 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd35e249a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0xd36baf49 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd39a0ce7 dm_register_target +EXPORT_SYMBOL vmlinux 0xd3b795dc __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xd3c08471 gen_pool_create +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3e8a912 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xd40ae3cf i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xd40f3521 qdisc_reset +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd43d321b tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xd4488282 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xd4693bf9 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xd46ce4ca xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xd4f6a254 lock_super +EXPORT_SYMBOL vmlinux 0xd504a23f neigh_ifdown +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd5215759 kfree_skb +EXPORT_SYMBOL vmlinux 0xd52a5af3 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd5610f67 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xd5670071 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xd5682e7d __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xd57fe53a pci_disable_ltr +EXPORT_SYMBOL vmlinux 0xd58868ad current_fs_time +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b1376d register_shrinker +EXPORT_SYMBOL vmlinux 0xd5b44c86 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xd5daaec5 inet_select_addr +EXPORT_SYMBOL vmlinux 0xd5e0c41a filp_close +EXPORT_SYMBOL vmlinux 0xd5e8e500 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd605ac0d netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xd608ec25 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd6268628 mutex_lock +EXPORT_SYMBOL vmlinux 0xd629316a llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd66f68da __secpath_destroy +EXPORT_SYMBOL vmlinux 0xd688a348 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xd68abc76 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6e59bbf pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xd6e7db9a netdev_printk +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f3ace8 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xd7133b9c jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xd71ccb96 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xd71ceebf wireless_send_event +EXPORT_SYMBOL vmlinux 0xd73f091c tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7bd3af2 add_wait_queue +EXPORT_SYMBOL vmlinux 0xd7c1936f keyring_clear +EXPORT_SYMBOL vmlinux 0xd7c1cf91 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xd7d99489 generic_fillattr +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ef5d18 journal_init_inode +EXPORT_SYMBOL vmlinux 0xd7f5e995 llc_sap_open +EXPORT_SYMBOL vmlinux 0xd806001a mmc_can_discard +EXPORT_SYMBOL vmlinux 0xd83e046a journal_force_commit +EXPORT_SYMBOL vmlinux 0xd85df7d4 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xd8646d51 seq_release_private +EXPORT_SYMBOL vmlinux 0xd86a81b7 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0xd87719ef mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xd88d8a4a input_release_device +EXPORT_SYMBOL vmlinux 0xd8996205 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xd89d081c mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8a60c09 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xd8aa449b wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xd8b33c32 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xd8c0f172 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xd8c32e21 skb_find_text +EXPORT_SYMBOL vmlinux 0xd8d2da9b bio_map_user +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd900885e vfs_write +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd958ccad input_register_device +EXPORT_SYMBOL vmlinux 0xd95a4ae4 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xd9653bdb kmalloc_caches +EXPORT_SYMBOL vmlinux 0xd969b2c7 amd_e400_c1e_detected +EXPORT_SYMBOL vmlinux 0xd96b19cd __breadahead +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9876f4b __ip_dev_find +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9c73c8a i2c_transfer +EXPORT_SYMBOL vmlinux 0xda072919 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda2107a1 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xda3d1429 scsi_print_result +EXPORT_SYMBOL vmlinux 0xda5c0143 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xda66b6c0 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xda730b27 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xda754b8f tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda7ed022 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xdaa23a40 sock_wfree +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdac29d1a mnt_unpin +EXPORT_SYMBOL vmlinux 0xdada009e elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xdadbee65 cdev_init +EXPORT_SYMBOL vmlinux 0xdb0803bf mdiobus_read +EXPORT_SYMBOL vmlinux 0xdb09af5c dev_set_mtu +EXPORT_SYMBOL vmlinux 0xdb357e17 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb743bc9 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb84e5b4 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb95ed1c pci_disable_ido +EXPORT_SYMBOL vmlinux 0xdb9e2c22 posix_acl_create +EXPORT_SYMBOL vmlinux 0xdbc1712d vga_get +EXPORT_SYMBOL vmlinux 0xdbc3910c pci_request_regions +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd02846 create_mnt_ns +EXPORT_SYMBOL vmlinux 0xdbf7d6e2 journal_wipe +EXPORT_SYMBOL vmlinux 0xdbfd4c75 __devm_request_region +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2519e0 param_set_ulong +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2cc891 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xdc33da2c journal_forget +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc43d036 dev_uc_add +EXPORT_SYMBOL vmlinux 0xdc46972d alloc_disk_node +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc7e8751 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0xdcb2a89b get_phy_device +EXPORT_SYMBOL vmlinux 0xdcb37d0b generic_setxattr +EXPORT_SYMBOL vmlinux 0xdcb45850 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xdcba7db8 udplite_prot +EXPORT_SYMBOL vmlinux 0xdcbb41ba blk_end_request_all +EXPORT_SYMBOL vmlinux 0xdcbf8295 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xdccca046 override_creds +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd1446a1 key_revoke +EXPORT_SYMBOL vmlinux 0xdd1a2871 down +EXPORT_SYMBOL vmlinux 0xdd1c65f6 blk_finish_plug +EXPORT_SYMBOL vmlinux 0xdd278b91 inet_frag_find +EXPORT_SYMBOL vmlinux 0xdd589d6b tty_shutdown +EXPORT_SYMBOL vmlinux 0xdd5e6a53 journal_load +EXPORT_SYMBOL vmlinux 0xdd66d733 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xdd6db034 xfrm_input +EXPORT_SYMBOL vmlinux 0xdd84023a loop_register_transfer +EXPORT_SYMBOL vmlinux 0xdd8d9631 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xdda7bdf3 textsearch_register +EXPORT_SYMBOL vmlinux 0xddd0756b mca_device_status +EXPORT_SYMBOL vmlinux 0xde207b3b sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xde466a7f path_get +EXPORT_SYMBOL vmlinux 0xde625a31 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdeb7693d tcp_proc_register +EXPORT_SYMBOL vmlinux 0xdec778f6 ida_get_new +EXPORT_SYMBOL vmlinux 0xdec8e578 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf1c1d26 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xdf36083b clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xdf4334ee eth_header_parse +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf86ef36 phy_device_register +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf95e437 do_splice_from +EXPORT_SYMBOL vmlinux 0xdfc47b29 free_buffer_head +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdffd34b3 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xe000d232 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xe005a338 bd_set_size +EXPORT_SYMBOL vmlinux 0xe045240c dentry_path_raw +EXPORT_SYMBOL vmlinux 0xe04ddc54 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe076a95c dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe0a1cb9f pci_save_state +EXPORT_SYMBOL vmlinux 0xe0a2d903 __ps2_command +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b25f27 dev_trans_start +EXPORT_SYMBOL vmlinux 0xe0c1bbd2 tty_port_init +EXPORT_SYMBOL vmlinux 0xe0cd5516 filemap_fault +EXPORT_SYMBOL vmlinux 0xe0d2df75 sock_i_ino +EXPORT_SYMBOL vmlinux 0xe0e15551 kernel_listen +EXPORT_SYMBOL vmlinux 0xe0fc24aa param_set_int +EXPORT_SYMBOL vmlinux 0xe11f27ea of_get_property +EXPORT_SYMBOL vmlinux 0xe13ade21 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1429058 md_done_sync +EXPORT_SYMBOL vmlinux 0xe147674a fput +EXPORT_SYMBOL vmlinux 0xe150271b scsi_execute_req +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe192fb0b neigh_connected_output +EXPORT_SYMBOL vmlinux 0xe1d915bd truncate_pagecache +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe22ba6fb neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xe230d24d ipv4_specific +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe277d2fe netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xe2889acb serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xe2b28266 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xe2b57128 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xe2c961e3 datagram_poll +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e02b1d blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2ecaddc dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe30f1694 nla_put +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe346169e iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xe36a18c2 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xe39e3011 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xe3b4d17c tcp_read_sock +EXPORT_SYMBOL vmlinux 0xe3b77e52 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3df52f4 __ht_create_irq +EXPORT_SYMBOL vmlinux 0xe3e112b5 install_exec_creds +EXPORT_SYMBOL vmlinux 0xe3f03b5e agp_put_bridge +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe409ca54 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0xe41566c4 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xe4196f8d mark_info_dirty +EXPORT_SYMBOL vmlinux 0xe42537fc __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xe425dfb2 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xe42ccd6d __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xe430e2ba agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe448fb8a bio_add_page +EXPORT_SYMBOL vmlinux 0xe45f60d8 __wake_up +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe4a508f0 do_splice_direct +EXPORT_SYMBOL vmlinux 0xe4bb1bf3 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xe4cbc0ec pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xe4cdc4a6 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xe4e2ac96 release_sock +EXPORT_SYMBOL vmlinux 0xe4f0a759 bdev_read_only +EXPORT_SYMBOL vmlinux 0xe502f0f9 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xe5051f8f set_pages_uc +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe538d4ad padata_alloc +EXPORT_SYMBOL vmlinux 0xe541c5e4 posix_lock_file +EXPORT_SYMBOL vmlinux 0xe5732fd8 inet_ioctl +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe59934ec dst_destroy +EXPORT_SYMBOL vmlinux 0xe5be0ae6 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe60c5718 tty_check_change +EXPORT_SYMBOL vmlinux 0xe61bafbf thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0xe6299072 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xe6414a84 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xe6427a63 of_find_property +EXPORT_SYMBOL vmlinux 0xe647362f da903x_query_status +EXPORT_SYMBOL vmlinux 0xe67b08b2 blk_rq_init +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6b3fe21 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xe6e206f6 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe70efa6c i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xe7116dd2 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe7239d6f i2c_del_driver +EXPORT_SYMBOL vmlinux 0xe723c288 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xe72c02a6 netdev_change_features +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe78b7812 blk_put_request +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7af7a3a __rta_fill +EXPORT_SYMBOL vmlinux 0xe7bb82f7 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xe7c5fb96 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7feb4a4 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xe801b9e1 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe872d2a2 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe890843a dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xe8913555 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xe8ae15f2 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe8cfa09a fget_raw +EXPORT_SYMBOL vmlinux 0xe8d75af2 eth_header +EXPORT_SYMBOL vmlinux 0xe8da4ee5 simple_write_begin +EXPORT_SYMBOL vmlinux 0xe8e2fd91 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xe8eb6d9d dev_notice +EXPORT_SYMBOL vmlinux 0xe8ebf346 ab8500_gpadc_ad_to_voltage +EXPORT_SYMBOL vmlinux 0xe8f22ae2 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xe8f96257 tty_throttle +EXPORT_SYMBOL vmlinux 0xe9035140 scsi_free_command +EXPORT_SYMBOL vmlinux 0xe911bd75 find_lock_page +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe969a1fc netif_napi_del +EXPORT_SYMBOL vmlinux 0xe96aa297 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xe96ca679 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9a7a56a jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xe9d59e5c neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xe9e694be registered_fb +EXPORT_SYMBOL vmlinux 0xe9f273b9 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xe9f3f0f0 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0b3967 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea355189 __dev_printk +EXPORT_SYMBOL vmlinux 0xea3c8a1f register_console +EXPORT_SYMBOL vmlinux 0xea485312 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xea65c3d6 pci_release_region +EXPORT_SYMBOL vmlinux 0xea6d9d0c __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xea742b70 empty_aops +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea83babe __register_chrdev +EXPORT_SYMBOL vmlinux 0xea8a6c75 param_ops_long +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeabd18e2 kobject_set_name +EXPORT_SYMBOL vmlinux 0xeac15270 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xeac1e528 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xeac31b85 thaw_bdev +EXPORT_SYMBOL vmlinux 0xeac9bac6 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xeacee51b blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb126b38 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb3d33dd account_page_dirtied +EXPORT_SYMBOL vmlinux 0xeb6bdf8c netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xeb882a1c mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0xeb8ef3b1 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xeb948f5b sk_release_kernel +EXPORT_SYMBOL vmlinux 0xeba0f8d8 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xeba677bd posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xebb41c54 mount_pseudo +EXPORT_SYMBOL vmlinux 0xebd85470 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebdf8202 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xebf7e85c sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xec145653 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0xec15c420 cdrom_release +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2b3f34 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xec48256f kernel_sendpage +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec5f46de blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xec861568 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xec987e19 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xeca09c81 dquot_alloc +EXPORT_SYMBOL vmlinux 0xecb3a5e1 clocksource_register +EXPORT_SYMBOL vmlinux 0xecb721f1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xeccfd9ca pneigh_lookup +EXPORT_SYMBOL vmlinux 0xecd23516 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xece78d1b destroy_EII_client +EXPORT_SYMBOL vmlinux 0xeced06e5 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xed022313 pci_disable_obff +EXPORT_SYMBOL vmlinux 0xed036db7 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed629c07 set_device_ro +EXPORT_SYMBOL vmlinux 0xed6d38e1 padata_free +EXPORT_SYMBOL vmlinux 0xed6f8c54 fb_pan_display +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedaf05cf __pci_register_driver +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd2fde6 free_task +EXPORT_SYMBOL vmlinux 0xedf3003b sk_free +EXPORT_SYMBOL vmlinux 0xedfb5159 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xee269584 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3496c3 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xee3a137b cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xee40c2ef inet6_getname +EXPORT_SYMBOL vmlinux 0xee5e5688 unregister_console +EXPORT_SYMBOL vmlinux 0xee6e3343 netlink_unicast +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee7f7353 intel_gtt_insert_pages +EXPORT_SYMBOL vmlinux 0xee9f0bac start_tty +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeed44716 arp_create +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef364be7 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef677fb8 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xef78e205 nla_append +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xef9b725b __get_user_pages +EXPORT_SYMBOL vmlinux 0xefaf925d dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xeff14be9 ioremap_cache +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0040079 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf0390e85 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xf043731c block_write_full_page +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf08759cf search_binary_handler +EXPORT_SYMBOL vmlinux 0xf0a84e30 mii_nway_restart +EXPORT_SYMBOL vmlinux 0xf0bd30f9 netif_skb_features +EXPORT_SYMBOL vmlinux 0xf0bda7a2 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xf0d6e98d sg_miter_stop +EXPORT_SYMBOL vmlinux 0xf0dc6ad4 set_pages_wb +EXPORT_SYMBOL vmlinux 0xf0ec2e40 block_read_full_page +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf109f29d seq_release +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf126285f dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xf12a5c83 idr_find +EXPORT_SYMBOL vmlinux 0xf14f70ad max8998_read_reg +EXPORT_SYMBOL vmlinux 0xf17887a1 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xf194746b lookup_hash +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1c813ff __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e2d801 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1ee39a7 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xf1faac3a _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf206a5ac tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf21550b5 of_node_put +EXPORT_SYMBOL vmlinux 0xf21d801e set_disk_ro +EXPORT_SYMBOL vmlinux 0xf2269e63 security_path_chmod +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf2398687 ppp_input +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf251e3de ht_create_irq +EXPORT_SYMBOL vmlinux 0xf259479f xfrm_init_state +EXPORT_SYMBOL vmlinux 0xf272211e inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xf28c17f3 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2bc434c inet_frags_fini +EXPORT_SYMBOL vmlinux 0xf2dcf749 skb_pad +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf2f2bc98 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xf30d1f69 kern_path +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf318d501 neigh_direct_output +EXPORT_SYMBOL vmlinux 0xf32055e7 dev_base_lock +EXPORT_SYMBOL vmlinux 0xf32307fc bprm_change_interp +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf339214c pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xf33b20ee pci_pme_active +EXPORT_SYMBOL vmlinux 0xf33e947f napi_gro_receive +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34ebb18 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0xf35b0f41 scsi_host_put +EXPORT_SYMBOL vmlinux 0xf37260ab _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf398ff1b tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf39ead7e register_key_type +EXPORT_SYMBOL vmlinux 0xf3a70d4e agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xf3b789a4 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c310b1 register_netdev +EXPORT_SYMBOL vmlinux 0xf3e36791 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xf3ed5498 __bread +EXPORT_SYMBOL vmlinux 0xf411f3bc kunmap_high +EXPORT_SYMBOL vmlinux 0xf41d72a9 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf45bd8fc key_task_permission +EXPORT_SYMBOL vmlinux 0xf479f7ff open_exec +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf48c26fb dentry_open +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4a60b49 account_page_redirty +EXPORT_SYMBOL vmlinux 0xf4ab137b alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4be4bd0 netlink_set_err +EXPORT_SYMBOL vmlinux 0xf4bf6c08 inet_listen +EXPORT_SYMBOL vmlinux 0xf4cdd04c tc_classify +EXPORT_SYMBOL vmlinux 0xf4e4b8f6 kill_bdev +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f19e51 downgrade_write +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf50c880a pskb_expand_head +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf5202259 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d254d mmc_release_host +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf545cd28 tty_vhangup +EXPORT_SYMBOL vmlinux 0xf54c51a2 dma_pool_free +EXPORT_SYMBOL vmlinux 0xf57bcbe6 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cf326a param_ops_short +EXPORT_SYMBOL vmlinux 0xf5dcacba simple_transaction_read +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf612809a param_get_int +EXPORT_SYMBOL vmlinux 0xf62195b6 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf6483c5a blk_start_queue +EXPORT_SYMBOL vmlinux 0xf64a2cc6 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xf64cfce2 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xf68b0a00 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d75858 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xf6dcfa35 pnp_is_active +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf715e4cb write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xf7220ae9 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xf746c69c skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xf747dd44 kstat +EXPORT_SYMBOL vmlinux 0xf755da39 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf777b63d __cleancache_get_page +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf78e53f4 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xf79ebb88 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xf7a44697 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xf7bf93f5 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xf7e37635 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xf7f39caf jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0xf7f92959 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf84e7e5d simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xf86246d0 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xf8851731 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8948436 kdb_current_task +EXPORT_SYMBOL vmlinux 0xf8996077 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xf8e9a892 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xf8f38290 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xf8ff159a napi_frags_finish +EXPORT_SYMBOL vmlinux 0xf9087a72 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf94d287f register_nls +EXPORT_SYMBOL vmlinux 0xf95dd25c mca_bus_type +EXPORT_SYMBOL vmlinux 0xf97456ea _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xf97909bc mpage_readpage +EXPORT_SYMBOL vmlinux 0xf9800c20 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9b475e8 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xf9db43b6 kset_register +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9ee90a5 sk_filter +EXPORT_SYMBOL vmlinux 0xfa033fd9 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xfa058a05 tty_name +EXPORT_SYMBOL vmlinux 0xfa08719e of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xfa30957c mempool_free +EXPORT_SYMBOL vmlinux 0xfa393a96 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xfa3efa61 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xfa5ab090 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xfa84d610 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xfa8b35c4 skb_queue_head +EXPORT_SYMBOL vmlinux 0xfa8db3b2 skb_store_bits +EXPORT_SYMBOL vmlinux 0xfa8e0fdf dcb_setapp +EXPORT_SYMBOL vmlinux 0xfa92260e mpage_writepage +EXPORT_SYMBOL vmlinux 0xfa927e89 netdev_crit +EXPORT_SYMBOL vmlinux 0xfa9f0c9a iput +EXPORT_SYMBOL vmlinux 0xfae02eb7 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfafb3f76 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb1be686 ida_remove +EXPORT_SYMBOL vmlinux 0xfb249427 intel_gtt_map_memory +EXPORT_SYMBOL vmlinux 0xfb28dea7 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xfb323065 inode_init_once +EXPORT_SYMBOL vmlinux 0xfb35c7ac skb_unlink +EXPORT_SYMBOL vmlinux 0xfb5dc280 dcb_getapp +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb6c8b7d page_address +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb91d899 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb82242 fsync_bdev +EXPORT_SYMBOL vmlinux 0xfbbede82 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbf3fafc tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xfbfb6416 revert_creds +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc10f6bf con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xfc13736a gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4ce2d7 netif_rx +EXPORT_SYMBOL vmlinux 0xfc4d3b7c bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc69fd3b vfs_rename +EXPORT_SYMBOL vmlinux 0xfc872fd1 get_ibs_caps +EXPORT_SYMBOL vmlinux 0xfca75551 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcb752b4 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xfcbe7091 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc31eb6 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcdfeda1 mpage_readpages +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf6c3fd unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xfcf73593 kernel_bind +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd17d12a dquot_free_inode +EXPORT_SYMBOL vmlinux 0xfd1f5a0b blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xfd386386 get_fs_type +EXPORT_SYMBOL vmlinux 0xfd60f7c1 seq_path +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6b3d0c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd9f652a skb_push +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdb6de9e agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc7f3ba idr_replace +EXPORT_SYMBOL vmlinux 0xfdcb2838 ps2_drain +EXPORT_SYMBOL vmlinux 0xfdee7d42 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xfdf8212c __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe10519c xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xfe1f49b3 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xfe3b63e6 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xfe3eafd6 elevator_change +EXPORT_SYMBOL vmlinux 0xfe5b3f8c blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe66f7f4 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe7fe906 write_one_page +EXPORT_SYMBOL vmlinux 0xfe8c59a8 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfee7a0f0 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xfeeb59da arp_send +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2c3263 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xff30727c dquot_operations +EXPORT_SYMBOL vmlinux 0xff315fe8 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xff35f4c1 mmc_host_disable +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffc6793f ab3100_event_register +EXPORT_SYMBOL vmlinux 0xffc6e302 kmap_high +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffd7c69a tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x28afd262 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x6f068d90 twofish_dec_blk +EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x004e355a kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x011fcb57 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x02b2de12 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0339c536 kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x056a6068 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0cd993c2 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f0f9596 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0fe8e797 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x11553562 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1202e9d4 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12289c12 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x135e15cd kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x15571648 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x17be6d68 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c21f519 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c7afd50 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1ffcf90c gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2057aac7 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x28037912 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c6d0cfa __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2d453cd6 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31 kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30cda784 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x320fa653 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x331c6990 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x360ad17a kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x37668406 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x395d3c8d fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x42c53941 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x449f9cf2 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x45a630af kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48b07278 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4b1b7db5 handle_mmio_page_fault_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4b974561 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x507fa29a kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x543b439b kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5ab0e8f4 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5af5302a gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5bf1d024 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x611a9c74 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62821d36 __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6439596f __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x658c3eac kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x65b7422f kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6c48033f gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ee13eaf kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x71bd30ac is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x71c0bc7c kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x73b3f83d kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x79bea02c kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c9b19a5 is_noslot_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x808d4e7b kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x822ed17d __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x885dfdae kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8d7a8312 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92c944a3 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92dd5b32 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x94bd8476 kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x999678fd x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99c3e9e6 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9d89f5cd kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9e41c94e kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7925230 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8bea926 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa91845be is_invalid_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xac3d1217 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb0ffe844 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb30dc873 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb53429b8 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb63b6605 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb760d4eb kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbb837279 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbce1eaff load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbfafe0c3 __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc04b8fda kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc209ab82 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc2813c28 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc60dabad gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc63ff9a6 kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc66f45a3 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd4b4a0be kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd4dd558f kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd91510c7 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdb1a3d3e gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdbeb5a59 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe32ef3ab kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4c8cf62 hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe51e3e04 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe7ce30a1 kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe8f6c87f kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea4dd0bf kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeaffc9cc __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee1f8592 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee8ff414 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef9ea8ef kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xefb17569 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf092fcea kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf3423fd9 kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf3708850 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf5d0180e kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf84adb01 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf8672b43 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc9e76e8 kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xff9fc77a gfn_to_pfn_prot +EXPORT_SYMBOL_GPL crypto/af_alg 0x2eab91e3 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x3ddb405f af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x551a96a7 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x6db7bbcb af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x6ee056f0 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x7e7cde9c af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xbdea3c4b af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xe6db2050 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xa76025e8 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x6455314b async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x7d8fa4d9 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x4840d79d async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xa85feba3 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9d7047d4 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd2772ebf __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe3382903 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xfae219a4 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc6c80b50 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xcf52e16a async_xor_val +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x4ebe4203 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cryptd 0x09973c89 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x0c69a41f cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x1b6a7d46 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x2bcce9f3 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x640c88de cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x870cb44a cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x8a9e06cb cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xa8e73308 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xd3e15ae7 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xf0231ae3 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x0adcf80f twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1c8984c7 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x87bd07bd acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xb9a141b0 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xe1372311 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x035349c5 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x33b413b6 __pata_platform_remove +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/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/bcma/bcma 0x1d22dcc8 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2ad378e1 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3465bf75 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x49cab368 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4c8b74f0 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8641dd4a __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc08c4a56 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc131dd69 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc2513e9b bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xcaf5ea2e bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xde964858 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe312d44e bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf06fc071 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2085b69d btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x37cf5d1b btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x69fbe2e2 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9c1c8d8d btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb39100b3 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xcf995f58 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd894f373 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf96af2e1 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0x06115bc8 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/dca/dca 0x175229cb free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5d4700cb unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8373ac36 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x865eeeb1 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xae6dc2a0 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xb9b4f276 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xee423355 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x04718684 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x07dc9de0 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c3f76e8 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x259bc8ad edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3bce7481 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3fea9c91 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4836bb4b edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x499a7d4b edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x583e5af8 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5bf4ec71 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5e18af46 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7fbc3736 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x832c53ba find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x848c93a0 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8706c9a4 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x98087a23 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x99399724 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9db668d0 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa745cc6c edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb45d4741 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbeaf242a edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd75346e0 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf200ae03 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf7dda488 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfa3a5a52 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0d38cee6 amd_decode_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0dc0b68c amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x6d4e6991 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2b73a3a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x3a3a94ff bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x71ee1113 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x29ca7859 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x4d0a4c69 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x33235f19 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xb20419d4 drm_class_device_unregister +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/hid/hid 0x00b8e5fc hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x07072957 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0a40600f hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0b90fe68 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x10fbe5af hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x16801dbd hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x175c8888 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x178b0287 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x31ff924a hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x534e3a48 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5f306b65 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5f82f4cb hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x66b68a3d __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x69234823 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x70808ca2 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x77798c4a hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x83fca958 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x84afdcbb hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8c543462 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9ca3979e hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9cdbbf40 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9f4305f7 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa0501269 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb946e4fe hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xba089c12 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xea6c4968 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xe6ca580a roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x377feb30 roccat_common_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xaa80754b roccat_common_receive +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6812944d usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xc8da2ac8 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xefe2bb4a usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xf062a65b hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x0aa9d15c vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x27c3bec3 vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x4cfce045 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x6109c2f2 __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x61788c23 vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x73b625cb vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x741fa7f0 vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x7b8c0b0d vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x844af5c5 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xefce19c7 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x158dbaf3 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x360a2074 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x4a33f7b7 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6b933e87 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x7bf89747 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x9334d1aa i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xa95df585 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xe59d3052 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xebfc1357 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x17499f3a nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x3fbc6e63 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x4661238a i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x18935ccd i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x9153c407 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xddc8cbbf input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x80e4eb7b adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x10c80ee5 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x37135111 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4009a75a wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x402a3f67 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x48099c84 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5d94223d wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x668e4f3e wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x913e22a3 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb88eefa6 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbaf96cbf wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd275c805 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe3c48fd4 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x052a1a27 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x061381f7 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0e6e3e63 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x10fbd28f gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x73ade477 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7446a6e8 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7d76b7c8 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7deece29 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x835239b9 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x85714c98 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb98ef52e gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcee9019e gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe51f7530 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe6854ee0 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9323a7e gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xecbaea22 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfd507794 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3ff134c2 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +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 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +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-multipath 0x039112de dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xb8828215 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 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x34c0fb50 dm_rh_mark_nosync +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 0x563bfd35 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x94273b45 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9d42db97 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 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb1680171 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe93d99d3 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +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 0x03ced457 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x08a936ca dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x61c7c085 dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x63b2ff62 dm_btree_insert +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 0x72289260 dm_block_manager_destroy +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 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8ae36e19 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa6aae3ea dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb967690a dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbaa513b0 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbc5fe7c1 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca2bde4d dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xccaeb9ae dm_sm_checker_create_fresh +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd32479bc dm_sm_checker_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdb562135 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf99dc2cf dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/raid1 0x9e06763a md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xa172eea8 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x13c403a3 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2823c4b6 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x37a16bb3 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x62067894 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x67092218 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x711a3d87 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x833c71e0 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8d8192cf saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc9fb80fb saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf94996bf saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xfe266870 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x065da9a8 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x07c29d14 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0fb9233d saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x17a73adf saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2000072f saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7ef42c29 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x88d5ed0a saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x74e338dd microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x61b03d25 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xe1bf3da6 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x544dad4e tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x83b588d6 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xa99270aa tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x21289528 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x371024a3 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x9e456398 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xa93b462b tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xd2075046 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xc2c1b4e8 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-demod 0x126f72d1 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x69fe69be mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x537a6134 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x06306963 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0c12dc1c mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4c3abca8 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4db94286 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4f444f46 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5f6b1475 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6241c6eb mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7337e96a mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x79df1660 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7aae4a74 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7db5539a mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8339675c mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x996fbe27 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd607e60d mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe680c124 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xec4a90cd mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfcd6185f mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x18a41e39 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x31b4a52f smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x414dedd2 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5e00647e smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x64d3ec5c smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6e4545e0 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x76222253 sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x831e86f6 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x87b40350 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9afcff3c smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9e50350d smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa4ccb990 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xaece94f0 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb273e6d0 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd2bb8883 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xda1be2f3 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdfbe90d8 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xed1eae81 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x1ea7518d ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x83ddf041 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x93513027 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x93b0ecb7 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc4f3dd3f ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xcea975ae ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xf99ba7ca ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0d73b3e0 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1958dfc8 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1f7b45ca rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4af216a8 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x538b893f rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x550f50cb rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x64db866d rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6962bd06 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6e4d1f8e rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb4fcb11b rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcc48cba4 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcf0bddfd ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd23e3cef rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe8a3bfe3 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf095a251 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfb3f5118 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfec8cf8e rc_map_get +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2f6ae88c cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x352695a2 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4bf5a953 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x54785d4e cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x638cd545 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x659f5db9 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x67a79b45 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6b3000c2 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x71c0972b cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x86a1edcd cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa5266416 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xaf7c7b6e cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb2290188 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd31314e4 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xdfd84b8c cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe804ec80 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe9989eec cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf9344b8e cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf9bd45ee cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xe8a7e87e cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0040fde8 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0420f1fa em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x21bc8ef6 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x416628ff em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x5d7fb912 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x8d73c6e4 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa8ba4d5e em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xae0b032e em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xe9a9dbcb em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xec5034b1 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x0b9e922e saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x0f4db448 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x567c2441 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x856ab4fc saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb7b7e8e2 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x2575ebd6 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xbacd8bf8 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xcc66e999 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xdc4f42f2 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x50403bc1 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x66c74743 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xb2f2777a v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xce72e032 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xd7b250fc v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf53a65d4 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x05e426be v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x0c001422 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa6e9c7a5 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb683f8c3 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0d1d1e69 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x29bc929c v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4c0e18bf v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4e94c151 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8cafaaea v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9005e4b4 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9722f2fe v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc36815ef v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc692e693 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd769abc3 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xdba108fe v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xeb5953ea v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfc7e9414 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1d2e6586 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2e26c1d3 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x30163232 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x45a89d60 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x47d6b2b2 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4e4ddc40 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4f64b0f8 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5906b807 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x735522f4 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x83b344aa videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8a66e900 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9232dc0f videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa80cc7c0 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa918213c videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb875cca3 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc2d834fe videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdc9092f4 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe1eee6ac videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe3fe6315 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe8936e4f videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xee5aa8d0 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xef925837 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf1546375 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfc982cca videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x073c37fd videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x321e7820 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xd660e439 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3369b907 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3e06ca8e videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x53eb6c0d videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6504b012 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x743229a4 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x833d71fd videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9367f21a videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc3349020 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xeec2391f videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x55ee0c23 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x8d43fba5 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xa2cef07c videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x01205508 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x28e65908 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x2bf42c4d vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x432f56c0 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x645e96f1 vb2_write +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x7c5fd0ca vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x7eb2ae64 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x8ab7b16e vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x8b612ce8 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x928d1277 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x95338f21 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa453336d vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xb9094329 vb2_read +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xd10588a6 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xe0399f53 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xe711ca22 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xffe39ca5 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x23b18569 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x60b31d56 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x56e08647 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x6441f759 vb2_mmap_pfn_range +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x6f7596d3 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0xf570e9cf vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-vmalloc 0x25a0a623 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0fee7385 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1a35524d v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1dde5d76 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1fca9177 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2c8a8502 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5388f838 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5e08e881 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x772a5c10 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x84447181 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9670473e v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x989064c4 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9ea836fd v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa7683ddf v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa7d0ef91 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa7dfec77 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb773b069 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd4d653ff v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd4ec3b27 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdd9ef8b8 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xecb5b313 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf13e6ae1 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xfe37471c v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x01a33859 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x02aacf8b i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x188e759e i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1ecd2a6c i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x30313ecd i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x35c608ba i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x558a0212 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf3bef119 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x29d1d107 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0dd7abf6 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2dc7dfb8 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3079c61e pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6e21abdf pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7c38893c pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9cab1b07 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa1c50ae4 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xadcb158f pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb0696e2e pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc2f6fcdf pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf9cfab80 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x1719ea2b pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x2f08f8ad pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x05decf04 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x8eb7e4a8 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x91bc6b68 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xa7b31035 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe5bdfea3 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x0372cf18 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x339a85b6 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7328552e sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x9ef78369 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xbb8fe3bf sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x2379b1aa ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6ebf0a65 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x8326dbdf wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x8b6b9696 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xcf401eac wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x1a445026 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x50ad8401 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x740e3c49 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xb5f72a60 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x11781930 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xa3be7966 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xa7076e9d enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb52a726a enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xc563c881 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xc8062b52 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xdcba9bef enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x3245f04e lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x68c9165e lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7df6c261 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x9bdf5393 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xe83a115b lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xedc0e36d lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf2205128 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/pti 0x19f09b98 pti_release_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x23bde487 pti_request_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x52a78e81 pti_writedata +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x40f30a93 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x6251f389 st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x048f8126 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x056e657e sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x10ab7805 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x39cb6e9c sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8cd11560 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc53332b6 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcb7e325c sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xed556add sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xede50678 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x380a299d sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x4f33e53e sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x94c3208a sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xa4df8761 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xbf248b59 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xd00c44e1 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xbec8b459 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc1a25caf cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xe8b8a70c cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x3897a25e cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x6aa25518 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x95a56173 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x5e7bb154 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x4b176997 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x4d2ac979 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe1cf9f52 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x070586fa DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x08db1b11 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x95815fd9 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1377f789 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1880b327 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x60518c9f mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7666599b register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x80c5be5b deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8678d9b3 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x87cd15a4 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x97ef1ba0 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9cdade35 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9e4154e4 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa390b93b __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa758c02a mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xad53e6bb register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae860259 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb9d34379 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd3c278f0 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe2d1432f mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe6c91f50 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xed248b2f mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf6726a48 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf6ad17f4 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x27424985 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x6eae206b register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x763104ee mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x81b464df add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xfc14829d del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x085bbcc7 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x781f24f1 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x6ed526b5 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x1163bd63 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xddaeb9f5 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x17ec47ff ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1bd87bf8 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x313bc3c0 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x461c1812 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5833e116 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5d4da8a8 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8b546dda ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9abcb0f2 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb8bb64e8 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc65778fe ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc7bd1113 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd17cfdec ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdf4923dd ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x76e62f16 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xce59c2ae alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xd8019f96 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xdc6c9274 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0ea90661 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x42252d78 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4edd7ef7 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5185fa51 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x64627f2a unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x740122f5 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8a288c6c close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8bf2bdba can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc496582d register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcaadcf33 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe2781307 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf5d470c2 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x29d98456 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x35d008f7 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x911b241d alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xad02a5df free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0054eaee mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08bdc92d mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d13526a mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17edff49 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19aad4c3 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ac3dddc mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d9af8d7 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2891ddfe mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a962e13 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2d99a67f mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x33dab3f8 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x347bb754 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37011b92 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37321e18 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x375f7529 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37941a67 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x382cf973 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b55162e mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ce592bb mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ec80a57 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x46b8873f mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c8eafcc mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d5fa80c mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4df48a7b mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53ab8d10 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54db3205 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5701622f mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58af2836 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a475855 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e27f8aa mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60b929aa mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6563bacd mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f22c141 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71cbe77f mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x755a9f41 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78351fe7 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b8056cf mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8283a769 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8806c413 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8bbcab77 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9726861e mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x97621479 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x98460de5 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x99577a57 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9c073482 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa4e1ebb1 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa7da465a mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8d2ac8c mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaeb16b0f mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf976fb9 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb16fd631 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5dfc879 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbdc0f201 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7b13820 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc61d1e2 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0bb26b7 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda1352fe mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf456777 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe3eac1ee mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8e290b7 mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec2690d2 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2331267 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf4a8b1fd mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf50a2934 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf53de5fe mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf57a24dd mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf60955fb mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9d1e714 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x018729d1 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x020dd5a0 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x29383180 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7809dd3a macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd29c47c7 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x09309e15 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x232af6b7 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3555e459 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4d3d103c usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7bcaefb6 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x14061084 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5c9a2608 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5cc325ab rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb165a1fc rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xceb17ccc rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd94428f7 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0903e535 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0d217bd4 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x22e55639 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x23045673 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x28a0b0ef usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4b8cb147 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4f17b09d usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x62781bde usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x714f0ec4 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x83f86490 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x86785eee usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8fcd4101 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x992da0a3 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9e4ba6e9 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbc2bc0df usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc8f00904 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcadd73ed usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd0184871 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe13af528 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe22da0d7 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe74dff10 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeef77178 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfae497fe usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfc75aa9b usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1aa064aa i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1d82515d i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3d1ab4ce i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x40fd42ce i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x44ad0e86 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x478d4b69 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5839f727 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5a44e94f i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x624f9bb8 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x863e2892 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x86b000c0 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xac0daa15 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc2caf5ed i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd4342b58 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe839616c i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfa483e5b i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x8667cf3e libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x28305c55 iwl_legacy_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xbc78408e iwl_legacy_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xcbcfb0d0 iwl_legacy_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xfa30c2c8 iwl_legacy_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x032f3f52 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x11548434 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3112344a lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4b2e43cc lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4b5db921 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x517fcc2b lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x71d4666b lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7ec401d5 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x879707ff __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8bad0dae lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x97cede9d lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9b31f6a1 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb6c42640 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb7827eee lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc3bee972 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0b825449 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6ae087dd lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8c9c6f3a lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9b3e76dc lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa3d19e33 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xad49b6e6 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb9b17936 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbeae5e77 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x173c31d4 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x6e841e18 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x03463879 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x092aa17f mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x14dc8552 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x18b51133 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4cc9a8b4 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x5d3db58d mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x86673a2d mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x971c70af mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa34f053f mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xcfbc65e8 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd2020914 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0852b04a p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0e546709 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0f283f65 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x18378177 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x19a0d93c p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4e329d83 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x54f754d1 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x8805a712 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbe2251ac p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x021d198d rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x07b8b640 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0c4ecbec rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0dc8e643 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x173b72b5 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x19f4a9a4 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1bc4e539 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2479f454 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x26d8b2cc rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x27c587d2 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x320bfb49 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x439a0ef5 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x46c1e65e rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x53e954fb rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x615a8c09 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x640ae165 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x68c3c16f rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x75eed70d rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d098c82 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7eb5ae38 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x811afad7 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x837907af rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x837c9566 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8e45f346 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x97e9f0f1 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbd6c3a31 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbd94a907 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc957eef5 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xca888cda rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcaac7d87 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6f42a51 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdb5a04bf rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xea03bdee rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeadf4ec5 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xef6bc6a7 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd136b17 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfddf7379 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x05f585bf rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x06f0bbed rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x13294c19 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x14b402a4 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x15d0607f rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x227b060f rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2b26a03c rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3605b67d rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4142dfaf rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4912a51e rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4cc6dc27 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4cfcf68a rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x568d4349 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x578b4494 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5e18706c rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x613454a6 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6173faa9 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x672094d4 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6df8c9f2 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6e632c5f rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x723c8071 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7490d71c rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x749e25b7 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7992ff87 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8bbaf5ac rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x98299fba rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9a8b66c4 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa04df60f rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa1ef6909 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xad4f8477 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaec51df1 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaf922e32 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbb5ee9c3 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbbc77e44 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbc1154f8 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc07757f6 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc7f1ee27 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcca3a6b8 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd078685b rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd29a51df rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd3137c8a rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd7d00238 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xddeb8eb5 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xde16154c rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe0ff4a53 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfd519aee rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x226ab349 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x22b9579a rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3361f5ee rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x40e9c161 rt2x00pci_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4364083b rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x63eb6e99 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6d9ae85f rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x784bd824 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd49af82b rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x124f73ac rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x12f0b3f7 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x14cd0518 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1e7f9316 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3df7b5d0 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x59724136 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5e78941c rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x676f1acc rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x69c25d0e rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6ae77572 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x75b346d1 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7a1143a1 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa217cbb6 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xca3ba896 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe91fb058 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xec8ad743 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x3a797d5b wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xef5df37c wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xfb503e23 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x1f285c95 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x474bef13 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x498f51eb wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa0680633 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa7ea82e6 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xda4a9886 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26 wl1271_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xfbbf5700 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x6e6968eb acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xaf49d3de acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0xde979504 asus_wmi_register_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0xf68a60f4 asus_wmi_unregister_driver +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 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x464fad69 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x4f8fdc58 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xfa2b9e93 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x4deea239 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x5c2761cc mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9417ab8d mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xba64409a mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xd62f8680 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xdd07bc8f mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xde217a58 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x16ed9b3d wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x204dc88d wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x5a863986 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6ab9b96b wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa4e43bb4 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa531fb40 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x5a6482e6 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x015e1ee2 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x04419774 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x09026019 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0982eda5 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x132a15d5 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x16416ba1 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x184beec6 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x200b6e46 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x22b7040d cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x24e5e6b5 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2a980c56 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x33fbe1b2 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x34e44405 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3e6a31c9 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x428cda9b cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x44322c2c cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b4a91ff cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4c60c9a2 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4d4e574d cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5572efcd cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x600dac7f cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x67ae85e1 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6f29ed71 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x76fd6c9f cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7b93fdc6 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c44f36d cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7cd26158 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x95552ed1 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9636963b cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9fe1b713 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa01469fb cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa3bd5265 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa4db35de cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb7642c65 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbfcbaeb4 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc27bbd6d cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc2fa37d7 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc9755f7f cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc97dcfdb cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd078bce9 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xebbab363 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xee242941 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf009120e cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf61605f6 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfa54ef22 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x313ca265 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x39c99864 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x461ac61f fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6d670acf fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x87dbf0e4 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbe61a04d fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbe85e3d6 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf9662b33 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xfea90a4f fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x17b72d1d iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x326112cd iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x41a14226 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x4dc4668a iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x8f7d9184 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xc28a1258 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0339ca81 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x06baeed5 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12fa8fa9 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1f9ae8f7 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x21abbb6e iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2b072a81 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x32a5e51e iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x368a0478 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3af1c5d2 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c0c22e2 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4a81c1b7 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4af2f04c iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4bada189 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4dea4bb7 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5cf4285c iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d4b3001 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x60746dd3 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x75eb5fbe iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x790a6883 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x82098114 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x83c58518 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x84ef894d iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8862610f iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8a126ee0 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8a6a74c4 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96a17f04 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x99d30893 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa5052bfa iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa89d1a49 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xae5ed6ee iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb0a86b0c iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc34a7c47 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc68394f7 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcb31d920 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd04cedce iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd0e0120f iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd16eb6b0 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd2401e49 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd8b69587 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xde9253f1 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe2d4536b iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6d3ddad iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf88aa69d iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0b30c6b0 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5e5caa0b iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7a6f11c4 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7b2cae94 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x826aedc7 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x849ced92 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8db51caa iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x92a79a68 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x97f65f5d iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa5654ff2 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xad503fb0 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xae779b00 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe4a47d24 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe4ee929d iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf880422b iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xffbb03a0 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x045d8bbe sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x26e00f8c sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2f8c9b85 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2fc75779 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x36fa5e91 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x489cbb50 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5790ceb0 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6167896a sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x63956114 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x64f83bd6 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x73ffd67a sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7bab086f sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8862dc06 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x88e3bf87 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9b40771e sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9cfebed2 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa0e09710 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaabfff63 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaae6e930 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xad371839 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb3ee0005 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc77b50cc sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcf996e1a sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf060292a sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf9778d3a sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x15577e1c srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x339652ac srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x402f8a80 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7b7fac2a srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf9f47983 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfbc21999 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x51491028 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5bcee231 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7df6ec6a scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8b8534bc scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xad5983ca scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb44b1682 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb8654e66 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb90f9a7e scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xce33d9ab scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x05f1b58f iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ac46bc2 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0cc26751 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x108e0c18 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x13fbd32d iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x165668da iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2920aae6 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x30471d7c iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x38419b59 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3c04ef71 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3d77bcfa iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x504c136c iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x56a60606 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5a7d7458 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x824a03bd iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8a05019c iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x934a22fa iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xad7890ce iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb02f8b84 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb8fef88f iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc1c1e3f iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbee78155 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc313342c iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf6000efb iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf6c5935a iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf80496a7 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfbc3a01b iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x801a77b8 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb11e40a2 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd569d230 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xfca68560 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0484bd1e srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5d00f30b srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x76bc60cc srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x96861c2a srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xddda4c1c srp_release_transport +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x1937c4b7 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x1ca465c5 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x3df57851 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x7fdf94b2 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x9bd8936b spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xf3951253 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x135b81a6 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3bd462d6 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x47d01ea8 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8fbd2c16 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa103a847 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x652441c9 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xe82db56c das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x085a0c2d labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x775923b6 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x18cecefc ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x1b2dba5b ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x2400a4c4 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3cfd5d1d ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x56b5c887 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x92ece41a ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xb05d901f ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd887b603 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x4a81381d ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x9386c881 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd87d486b ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xdc293f39 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xedaf5c9c ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xf9c7cfe2 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x6a137028 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xc33c189a iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xc53fa0b6 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xe8fe9590 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0x35b85807 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x260e1ab6 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5f23a9c8 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6d6bac75 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6e3ec0c4 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x71d87acf serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9fe5e77c spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xce56e8c5 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xcf8492e1 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd3d3772e spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe4f95a5b synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xedda1b30 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf62d9d79 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x02975615 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x11861662 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x13996cba usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x388e3435 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4ec00c0d usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5900f544 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x80c1fc5e usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9308c1b3 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc907db91 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xde5f35fe usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe33b7ff9 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe51146e9 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xec400673 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x0e9f2702 max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x243868b3 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x4cb93690 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x5d1d3d52 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x6abf8a9a max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xeae7466b max3107_suspend +EXPORT_SYMBOL_GPL drivers/uio/uio 0x3c4c7f18 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x423a974c uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x4e99e143 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x28971e57 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xf65e53da usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x39552df9 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x91b774f5 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xe884dced usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xea0a8279 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x13493544 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x15055473 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x47a47fb4 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x702c638b usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x75f17a40 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7efeb7d8 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa2b58fa7 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd0a49066 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdcdb1d68 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x112ca2c8 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1b542562 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2080a431 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2146fd6b usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x35b8cb68 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x38baa050 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x409d0cf3 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x413017e3 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x43b40cc9 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5294e70b usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x70b595e5 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x73e0ea30 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x83887910 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8c3b8a56 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xacbabc60 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb0e670a6 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xca113b6e usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd9896413 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd99cf403 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe764de3a usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfeedfefa usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x08b08040 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0cae6530 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1ae5c73c fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1e33c0bc usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2ae7b46e usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4007df33 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5623893a usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5dd424ae usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x765be994 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9138a0a7 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xabcccc96 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb0da3742 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc82e9eca usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd1969555 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd70cbe70 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xda4e3634 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe4b3b81d usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf5c1d69f usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf77de4bc usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf871064b usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfbbf43ad usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfe4fb260 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x1a745091 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x23de7819 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2c229dfc wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x91c053c9 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb6b509fe wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x05135767 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0b4b346c wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x272b4c80 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2865033d wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5d871a98 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5e264821 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6a408c77 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8ad4fb13 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8fff60e1 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb0fba86a wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd7b10dfd wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xda052727 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xdb8ffbe1 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe54f6c6d wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf9633c10 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf99cdc60 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x0f1c678c i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x26caf0cc i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x4deb0ccc i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0a6ce3dc umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x270ce002 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x28492128 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x3876c0e9 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x624ab01d __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6b4c67fd umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x788b78d4 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xcd3c6d9e umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x16b1d0a3 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1fbd03ca uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x21580d90 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e03f3be uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x301d4d5e uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x51fe4bfd uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x541325fe uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6515f73c uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x68cffd29 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6a6fcf4e uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x729d1d71 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7403b318 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x772569c8 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x776a79b9 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7c067600 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x841a32b3 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8ed9a6a7 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9e5a15a6 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa2a2eae0 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac55a4c2 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xadc5ecb6 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbcce3fe2 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbd675ff5 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc3d14878 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcff649c1 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd1615b90 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdc01dd12 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdd655a9d uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xde41cfa8 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdf8220b9 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe07934e8 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe7c13829 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xec62d784 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xed95bd4d uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf34a75be uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfd7baf0a uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfe211b9c uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xa2ab28d0 whci_wait_for +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 0x0abd69fe ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2767281f ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xaa0cbdd7 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb30daa57 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xbdc6298f ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xccd1c6ff ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xea794642 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x1ef695b4 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x699962bc fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xe7ac4aad fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x7bfe9187 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xd1f555e4 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x459ae44d viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x557efa1c viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x24ba8e1e w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3b95ff6c w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x51f83e9a w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x56bab5cb w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x872421ec w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x95bdab1a w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb1015ab1 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb318f73d w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xff92ba2a w1_touch_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x309bb876 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xabbf0fba dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xea07c470 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/fat/fat 0x04c60abe fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x14a7e762 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x1be9a011 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x1df8d686 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x1f42fae6 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x29c0aab8 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x32608113 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x473d1fcf fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x5c3219b8 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x6abea70d fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x733faca4 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x821afe30 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x8ca7d512 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x9b983a34 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xac4167bb fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xba4428de fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xf7a9d729 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xfeeaf45f fat_setattr +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x56ebc09a nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8adb1e96 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xca1744af nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xda683497 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xee8a53c4 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00a0dd6d pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02fa846a pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x128e1080 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x146dfae3 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2159fb69 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x223485a2 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x230b576a nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x34775217 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43cf4b0a nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x529c2b06 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x54b94ecd nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x57a2e35c nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5ef8ca44 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a3a3792 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x716c1ae5 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x77530805 put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8098d95b nfs_commit_release_pages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91c3fa75 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x964b160e nfs_commit_clear_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96b3f894 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa47b94ed nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa547a1f1 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaa31df50 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaecb0bc1 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb0caf4ec pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb216dd28 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc20fc3e0 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcae844c2 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xccc0cd79 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd399fa12 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5cf7546 nfs4_reset_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe58aa005 nfs4_reset_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe7ea19ed nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe91b9c35 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xec7b5553 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xedc70b82 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf3985496 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf8c60c2b nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf9283182 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x52cb62d7 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7473d215 nfsacl_decode +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 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1df0e47b o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4784194c o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x66f59dad o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd24a0581 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd77131f8 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xdb326163 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xeebf78f5 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0d17a708 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5a9b0997 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x89412475 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8d5d9587 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8ee9cba2 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd5db8488 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0578e63a ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x64674114 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x8b6e317d ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x2158a6c1 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x3e8395c7 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x5848aaa3 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x86d9f5cf garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xbfccbf27 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xdb21dd2c garp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x16bd20fe stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xf99cf838 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0xad48e235 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xf8b1a3f3 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x98e3e1a2 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 0x7946dce4 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x06ac0eaf dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x08578e5b dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x23d75ba5 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2f03a4f2 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x366e35fb dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b123fd1 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3cc922a2 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x47aa27a2 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4fc833bd dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x547347b1 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6e7180bd dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x70b0c5c1 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eb68a86 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x921ccdd9 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x972d863c dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa74d19f6 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa79b863d dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb02dcd6b dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb0c06c9f dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb2b25643 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xba97d1cd dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf38a618 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc3f399d1 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc570a426 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc79ae901 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcfb75abc dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2004253 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd85e8c5b dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xda3cb8e3 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe6d6d54e dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe723650c dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb4d711f dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf07e616a dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3f9ff58 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfb1b823c dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1cc43dee dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4b89d993 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x62e699fe dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x75530217 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xdd672666 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xee44eabb dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xa0445294 unregister_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xaf7e67b7 register_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x1aecdb41 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xa4a52aee gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x346745cd inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xae64757b inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xffa9416a arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xec3d9c41 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xada716e9 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1fde5c33 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x287b416d nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x448d0a4d nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8d5f6a1e nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x930505b8 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc0ddff7b nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x29a56a7f tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xcc9a64f4 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd91e603e tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe91da72c tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfec22161 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xc7fc75a0 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x58dbed18 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5c26d765 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5e6fc493 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7ca17310 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8aadfafa l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8b581a6b l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9d67e5ab l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xab297e2e l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc158d51a l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd4bdb473 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xda043a67 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf645c046 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x28e8a0c9 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5487cdb3 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x72d8a324 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xaeec8e1f ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xec6dc70a ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xee2333a9 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfab2a5df ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfb5f6064 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1601c3c1 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3bd82539 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x533a38df ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x63eaf64e ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6f53c4f1 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6fdcd1e1 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8aafdef9 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x93d8e11b ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9ca6d85d ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa0d5d578 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa48bb6f2 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa7f5c049 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc5f9b62f ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xece9ab18 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x1cb0ae90 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xc414c557 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xc48fa268 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xe232e428 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x03658e21 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0473dad2 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07529ec9 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x091eec5a nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a91b1a7 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16e3ffaa nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x196b2ba4 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21a89998 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a193645 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ac4fe13 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b5d4926 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e58e3c1 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32c05c9c __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x364615d8 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x395cf98e nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3cabfc41 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3effa864 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f79d2b7 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42fde27f __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44a6e2b7 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ad37b96 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4bb6ac43 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54203470 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x613dd16d nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x677884b7 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x690ee3ae nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6daed08f __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74d9f7ac nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a889be4 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d972b6e nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f8926fa nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x84c6f624 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c11fafd __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91774d7c __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95ae9f53 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96a63f3a nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x99908f6c nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e0cca15 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e9e6e62 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f412c8f seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0931892 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa84d3c70 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa91e68da nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb381c833 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc08ad117 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0ffae5d nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca84de5f nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcb654b8d nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0b3d104 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd474bf3a nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6d5bc0a nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda5e489a nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xddb54d16 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe0c185f2 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe273fc4b nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe285b386 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf72ee3c2 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf831b22c nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfee815f7 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x73370663 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x9ef12297 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x65cb4342 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x06e6b591 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1181c59a nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x214e0862 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x526cfe3e nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x781354da get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa7fdf8b0 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xab41f95e nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc97e6cb1 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe2429d1b set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xee263529 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xfa9dcf6f nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x44b26474 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6cdf049a nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x80735abf nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc600ea7b nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x34d41af7 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x98b51c07 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0acda515 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x209b1a39 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2cea37dc ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3e99b4ac nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x61286784 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6210bd79 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x71c8ced5 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8e671f78 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa8a8bc38 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd206e11a nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdb697f16 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe4f608fd ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf4eba52b ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xb26be0f1 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xff68b239 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xa34716d1 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0ee23e39 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x773f951b nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x85e5316f nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb429a146 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe67dcfd9 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xed460a15 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x6d844b8d nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x20c49fc0 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x281f9a8b xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3debb87c xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4fa37b14 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6d1e7b3c xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x711b8cee xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x789404ed xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x88f37200 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x93624a25 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa5855a0e xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd5dbb1c0 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xde9295ee xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf38be037 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x133e13b5 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf7b03908 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x12e52631 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x17a3dc6c rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x4622b59b rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4d87a768 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x4e8e96ab rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5213929f rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x52bd12aa rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x5cab236f rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x6254ffa7 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x85261144 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x89affe5b rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9f75a5cc rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xa4835d71 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xb10c3bd1 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xb9f2b8b5 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xc0109025 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc6650d74 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xcaa0b432 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xcc8c1107 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xd9428cfd rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xe2e2c784 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xe54c3188 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xe649e8da rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xf9943029 rds_message_addref +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x0bff79bd rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xa517c0ef rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x089a1b37 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1d5a842d gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2902fa18 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29 gss_mech_list_pseudoflavors +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x39dc0749 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x692f113c gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x83a28c82 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8945312f svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9038f1c4 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9c4bbf09 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb8024ec6 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xea5ac159 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xfde2916c gss_mech_get_by_OID +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0144dd2b xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x019aa0a3 svc_process +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 0x0815f421 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a47b6c5 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b804b4a xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ca79a5d auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d9e371f xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f0de247 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x145dca7b xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14dfaca7 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x153279df cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18696728 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19d7eece rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b1cb9af svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ea15c17 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f5072f0 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21d76937 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x221b699b xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22a276db svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2621fcd7 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26a2dacd xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27508eaa rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x275e8f16 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28004c5b rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28272474 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29514ca0 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x297d6b80 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2aa3940e rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d462e68 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e4f60e8 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ee07f23 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32ab85a5 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cb49dc6 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f350a1b svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4021772e xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40ca9f45 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41cef67a xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4452d628 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45060738 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4619434e rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4881b152 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48b82302 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4975ad63 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c43d4ef cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cb4db22 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ec9cb27 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x509e8639 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50d61b21 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5106293b rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59dedf03 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ece2eb6 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x606a9de5 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60f26e78 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x618bdbd6 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6277f95b rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63bf2b11 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x652b18a7 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x662de321 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66c02aea rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b7c0b60 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bfce35d rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ea875b2 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ed5f249 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7035573a csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70fbcffa svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7240335c rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72c43f3b svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x735b0bec svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x735dec1f rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7531b230 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b78131e xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x807d946a rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80918d4b xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82678333 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84eb140e rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x864de141 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86f2cc92 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cab92f2 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cfe513f rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ed4aceb xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x993408fd svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c9eabf5 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f470245 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0829883 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2196f53 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2939127 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3b5a8ad xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa59ce20b sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa67401ae xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa88ad37e xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8b8a37f svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa3174fc svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa5ceca2 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa9e72fd rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaac1c554 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab38b0dc svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab8a7b8d rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac6c330d rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacb8f90d rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadeedaec svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf4c4da2 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1ab6f95 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1fed788 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2d450f9 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5a91e0c xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb900c0d8 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb54ccc3 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbe930c9 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe128c39 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe9479dc rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc34f17c8 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc59269d4 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc665be19 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8c0f8e0 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9ae97dc sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbbf1565 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcdbaddc3 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd03b3ebe _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3a42f99 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3adc119 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd48fdb9f xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9066432 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd97b6804 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9b9462f rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda740a85 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdae09175 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb741e8c svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb91778c xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcb8f609 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdec891cf rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0b4e32f rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe54be371 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe692bd3c svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe90d6abe rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea60dde7 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeda9a8ba rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee0d98dd rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee72cf7d bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf02fe718 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0f21310 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2911dc0 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf618f1b2 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6e32e39 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf74f743b rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8842d8c svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb6887df read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbed875e auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd073e55 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfecd59ff xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff0e2d99 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffd725b3 svc_xprt_put +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0eaa562e wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x27ef0cd9 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x389c230f wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x42fa399c wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x69be6b01 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x72c18ae2 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7f4b3e9d wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7f6e19f1 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x87bc04e2 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb5043cf3 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd1b408ea wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf84d0655 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf90c4e6c wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1fae65a8 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4f99115d cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x740a0ebe cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x74f8c14c cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7edc78dc cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x81833f53 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x96a49896 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbb17f36c cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd0f84993 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfe1d66a2 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xff45db54 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3c930e6d ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x4d9099d6 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x58a323ad ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x7815a2d4 ipcomp_destroy +EXPORT_SYMBOL_GPL sound/core/snd 0x2de26872 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x80691b8f snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0xbc7ef9e6 snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xc1e44b86 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x2e951bda snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x31de1bc6 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x503a74e0 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x6e8c52c4 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa6a94e56 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xff5970b7 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x02585be8 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03282fa3 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x063ffbcd snd_hda_enable_beep_device +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 0x0a4bb9df snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b989246 snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e4ec9e3 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f736709 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x160cf234 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1733be03 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x177037aa snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x191d7b59 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d312ef4 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ec3c4ec snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f74d36d snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1fd3a138 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23afb276 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x248437d0 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x299a50fb snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x29e048d8 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2dac42ee snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e4399b4 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3615dd52 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f8defc0 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3fe92c5b snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x407b6047 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43b181af snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44f84d16 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4527ab9e snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47a2f51e snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fe5a655 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5741d0be snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x589cfd2e snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a80d023 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ba7c5dd snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c2fbbf0 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5cae9b07 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6140ec75 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63a0e53c snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x643d7f24 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x644e3038 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x684fdaeb snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68a842ee snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a1d888d snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b380e83 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e4ffbce snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x728423f4 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x738bd832 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7462531b snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74d561b7 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74f07f88 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7515df24 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75e345ef snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e2fd462 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81542211 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8731e81c snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x89c494e9 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ab41399 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c6b66a3 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8db3e349 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8fe3ae34 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x907b69f8 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x90edb2c9 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9325f839 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x935300f0 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94b7501b snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x966e5917 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a13cd21 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9bd9aabb snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa134cebf snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4bba45a snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa772c798 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaba92b29 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf14558c snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0d5247e snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb586c226 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb674283e snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbba4a568 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbde4b2da snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0dd2240 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1302fec snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3716ea7 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5ca6da2 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb6ce98b snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcba28ed8 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd14caef snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf12fce3 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd184bcff snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3b70d8c snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8e226f0 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda4fffa9 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd013b5a hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdda233f6 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf90a4f1 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe1d78acc snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe672124c snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe817b437 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe81af8eb snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea45e350 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xece7f3d4 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf014dbee snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6796dea snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf81c32a9 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8ee7168 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf912c734 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x6bdbb329 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x8c3edf11 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0xf258c3b1 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xa7cc736f max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x0526e7e1 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x663bd2f0 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8a7a990c aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xa41f7535 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xdbcfbe73 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x3eef2555 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x3fc36056 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0xe10df17e wl1273_get_format +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 0x6f331e1f wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x71a1664b 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 0xfed55d7d wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x84d8b2e5 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x6c24b17a wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x97979744 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xa18c0875 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x5ab818ac wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x539ba33e wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x9730b958 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0x09c3c967 wm8996_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01e5742a snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x035204cd snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05b3fd5a dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06614d93 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x089cf6b6 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a4d76bb snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c0b8322 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0cb5dd35 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ff4aa01 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12749b21 snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14b3678e snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15824ed5 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x173e24db snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1910e08c snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a111953 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1aa6f0fe snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b34bb7a snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21c9a83f snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29897845 snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a5e381e snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b129b27 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2c2a2178 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d8871b0 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2da3b606 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x36a7c3d2 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37f5ef94 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a55c05d snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f9d514f snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x411ab626 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x411fac96 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41f18909 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x455413b6 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b355009 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4bce05bd snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d6774ae snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d80b227 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4da97989 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x505088da snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x560e0fb9 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a7a07ff snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61b3a883 snd_soc_default_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65727662 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a082a19 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6fd76d44 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7015ef37 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x711d27ae snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78520d1e snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81462760 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x821f21f3 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8262a879 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x82c8986c snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x83d8a339 snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x847027f1 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84e55bff snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94fb1624 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x969f6b89 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96be3c76 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96c4b70f snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98b29390 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9be7f6f4 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d1be8cf snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d8dee41 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9e561ee2 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9eafad35 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9edd0cc5 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f4c2072 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa476ad0e snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa5b9e123 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6bdc872 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaae9dedd snd_soc_default_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xad33dcb6 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb011707b snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb120fc5e snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3997eea dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4ed5aab snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5756036 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb909d437 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbdb8cb81 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbee14edd snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbef13828 snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf32056b snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc39b93b0 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xccd0a668 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce40cbb9 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0af64df snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd1574f06 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd42f8510 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5649907 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc053a4d snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdcef830a snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd6b989d snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe06b572a snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5b6320e snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7651a66 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe98305dd snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe9e313a9 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb55d3a1 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf26c470e snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5bf51d4 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf78fac7e snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd3f1301 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL vmlinux 0x000854a9 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x001a23eb blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x00523f96 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0065100f mddev_check_plugged +EXPORT_SYMBOL_GPL vmlinux 0x0065ca1d class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x0088a193 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x009b1df3 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00e369db ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00ed7236 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x00fb3bd9 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x0139b137 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL vmlinux 0x0150fd50 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x0154015a pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x0161ebfe sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x017bcdc7 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x017ffd74 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01dd4c10 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x021b460c set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x026211e2 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x02fdffb9 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x02ff762f ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x030653c1 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x032968ac ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x03414236 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x035de9b1 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x03780981 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x03b24a86 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x03c66bf5 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04027e7b crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x045cb646 tps65910_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x04971880 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x04d81d20 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x04dd3bdf dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x04e19968 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x04e58eb2 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x04ebd060 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x04ef8a1b __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x04f66895 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05653030 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x05a6b900 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x05ae262e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x064fe288 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x06f3281b blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x07662afd inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x077992a5 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x07816f3a usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x07a16489 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07f25fa8 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x087ee4e3 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x08aa92ee ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x091429d7 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0927e164 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x0962d0e8 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x099e090c adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x09a2f439 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x09ada273 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x09ceecd3 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x09d5cef2 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x0a5194df tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0a622fc2 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x0a9d1e19 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x0aa92d68 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x0aaa4ef8 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x0ac8d5af crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x0ad3b192 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b28defb kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b337382 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x0b45c22a pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x0b8ab38d console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x0b98b7f5 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0bd4ace3 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0x0c04f4b3 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c4c123f gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x0c4d7807 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0ca6be90 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0cb4831d key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0ce070e3 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x0cf5bcf3 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x0d024b9d ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x0d0c109d of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x0d0f39dc ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x0d140193 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x0d1eab09 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x0d4cb220 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0d580fe3 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x0d6e4d10 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x0d748067 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0dae017e mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x0dd9fffd ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x0ddbd83a rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x0de7ba76 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x0df9664b bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x0e104509 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e29ba39 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0e356cba bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x0e45f06a wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x0e88e887 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x0f0bb077 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x0f2ba6b4 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x0f4e3b49 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x0f5cd713 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x0f75e00a wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x0fb95824 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x0fc57409 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fde06b5 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x104df04d register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x1061d8ee kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x107c5d8a bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x107cc305 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x10a010d2 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x10c27347 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x10d06cf4 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x10de1a03 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x11633753 xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x119086b1 ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x123b4a20 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x124c3a60 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x1269c79d usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x1277bb15 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x127c2706 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x127eb608 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x12866951 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x12cbd424 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x12d4b7fb cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x130337b8 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x1352933c hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x1364a239 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13c450c0 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x13e5167c blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x13e83b45 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x13f3e3fb klist_init +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x14cdb4e6 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x153a0c91 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x153efdf3 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x1556756b usermodehelper_is_disabled +EXPORT_SYMBOL_GPL vmlinux 0x15633ff4 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x159d314f uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x15a4fce3 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x15a766a2 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x15b00ef1 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15bc224b mmput +EXPORT_SYMBOL_GPL vmlinux 0x15f734e8 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x161ccc32 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x163bc646 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x1655bb05 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x1690f6ba cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x16a17eb9 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x16c57b0c unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x16e48d22 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x17671dad olpc_ec_wakeup_set +EXPORT_SYMBOL_GPL vmlinux 0x17d6905e transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x17e43ec7 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x17f78860 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x1811f370 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x18503ff4 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x18558a72 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18e2c347 dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1916b67e usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x19176356 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x192cef22 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x192f7a7f pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x193239f6 find_module +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x19496284 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x19656171 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x197cc938 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19c48fb0 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x19c7d42e hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x19d73b07 input_class +EXPORT_SYMBOL_GPL vmlinux 0x19f569c8 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1a1efe96 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x1a21e9e4 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a3247c9 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x1a575dbb class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1a77f850 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x1acc5c0e register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1ae0e135 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x1af85a89 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x1afb82e2 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x1b03bd73 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x1b0d0a37 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x1b0f5b88 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b22c839 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b551ba1 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x1b992987 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bdf031d ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x1c370c4e generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c5dba15 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x1c66ff27 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cc6d51f devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x1cd5d8ee get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x1cddba10 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x1cdf6645 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x1d1c34d5 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x1d24eda5 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x1d288e10 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x1d365b03 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d9496fc of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0x1dc0b04b usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x1dcb06fd device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x1deeb5f9 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x1e0e82d0 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1e2e05cd srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e790937 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e946579 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1eba928f ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1edef67d usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x1ee2fcbb virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x1ee9814e irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x1f045f67 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x1f146732 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x1f748ba9 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f85a529 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fa6671e regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x1fb703cc max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fdd0bf3 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x1ffb61c3 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x201799c0 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x20519c5c ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x205c5ffb sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x205c7f6e ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x207cf6ef crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c70080 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x20f6e2ae find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x213a7680 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x218cfe8c blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x219afb1d blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x21b72459 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x21d65391 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x21e9e76e virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x222d68cb virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x224a3152 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x225c7208 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x22750769 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x229d9b4a relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x22ba94b2 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x22e85e41 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x232486f2 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x236828c6 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23ff3dd1 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x2406dae3 pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0x240b739a iomap_create_wc +EXPORT_SYMBOL_GPL vmlinux 0x24225f97 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x245aa3ed rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x2476b898 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24ea30f8 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x252ddd31 ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x252e43b4 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x25364cd8 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x25895b19 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x25a10783 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x25a6e07f spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x25c0f7a0 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x25d8dd95 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x2630febe xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x26507c36 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x265caef6 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x26714653 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x2673c91f tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x26ab0d46 tpm_continue_selftest +EXPORT_SYMBOL_GPL vmlinux 0x26afc65b tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x2711c984 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x278716b4 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27b73781 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27e1a789 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x27e60a65 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x28097948 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL vmlinux 0x2815b218 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x28314381 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x2836081d debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28b21521 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x2901a718 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x29059b53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x293ac42c debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x29a1b849 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x29a90620 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x29e5cfb4 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x29f483ad scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x29f57e7f regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x2a130bdc get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x2a18d0ab tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x2a27d1cb css_id +EXPORT_SYMBOL_GPL vmlinux 0x2a5359ef __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x2a61ddab ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2b5acbba input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x2b5e9742 blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x2b655abb watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2b8fe110 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x2b942d50 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2c098202 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x2c0dc18b filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c2f06d9 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x2c301661 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x2c5659ca tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x2c61d876 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x2c7829c2 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x2c9fdf3c blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2ca82681 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2cacface sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2cd5e159 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x2cd912b7 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x2ce214b2 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x2ce6421d spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2ced1188 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x2d027935 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d46fa58 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d656035 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2ded2b62 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e241068 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e400707 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e59e07e md_stop +EXPORT_SYMBOL_GPL vmlinux 0x2e8ab4aa crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x2e96d73b rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x2ea00b62 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x2ec0967e ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x2ef2463b skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x2f19c925 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2f234ef3 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f4a0129 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x2f4ceae0 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f79f791 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fe97e40 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x2feb0b92 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x2fef9938 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x3013d13d pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x301e5973 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x302724eb wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x308507c6 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x30928e7c posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30b782ae platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x30e9737f of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x30ec53c9 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x3108ea46 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x311a762f iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31339910 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x313591c2 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x3148e0e4 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x3165d980 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x316db187 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x318af096 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x318ba01a fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x31b14e48 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x31b8b07f ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x31bc1a1a unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31d931a7 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x32107eca locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x3213bee0 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x3262114d platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x3292c5aa exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x32a7ee94 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32d25a01 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32fd4b62 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x3328d4ac class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x33353082 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x33543801 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x33589e9b cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33a5054b task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0x33b5c4fe cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x3440f361 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x348657af iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x34c0efdb set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x34c767b9 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x350b72b5 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3513d0ee tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x351d9358 tps65910_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x35381c5a ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x357679b8 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x357b187b gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x357bd51c usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x358abf22 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x35d767ce mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x3604ce76 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36344321 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3653997f device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x36587701 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x36624754 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x36806b55 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36aa5179 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x36cce663 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x36da0a3e __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x372f91a9 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x375ec4aa srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x37be7f20 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x37f00094 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x3803503f device_move +EXPORT_SYMBOL_GPL vmlinux 0x380d75a8 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x380e5e6e olpc_ec_mask_write +EXPORT_SYMBOL_GPL vmlinux 0x382486b3 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x386b341b pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x388cc0e8 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x389482ca rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x3904d5ad max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x39087de0 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a254fbf tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a4cd0bc md_run +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a60dbf5 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x3a6f7bf3 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x3a73a549 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x3abb683f pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x3ae87e88 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x3b060e3b fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3b15a2fa __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x3b1746c1 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x3b4ac8ef blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x3b5f2278 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b91a294 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x3bb12214 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x3bc1bd18 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x3bcd33dd fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3bf7850d __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x3c3bcf85 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x3c3d2b57 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x3c549c84 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x3c5d5c64 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x3c5dba15 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x3c7cf9f0 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x3c80078a wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca2446d tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cb21074 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd62d76 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x3cebb3bf cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d3bbf29 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x3dc0b5be scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3de3434d ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e19c480 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x3e305908 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3e7f0dfc __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x3e9ca55f __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ed06e03 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f1e7f92 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f301bd1 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x3f54548c wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x3f5a3685 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x3f68ee96 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x3f7dd31e page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x3fa83124 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3ffb7488 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x40312497 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x404cf243 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x4064f9a5 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x4095b7b6 iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x4156b16b usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x416a2259 put_device +EXPORT_SYMBOL_GPL vmlinux 0x41989f1c fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x41be5fb8 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x41f94270 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x424f36cb rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x424f4dbf led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42823f06 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42ba8c9e __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x42f1ee35 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x432d2f71 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x434fb953 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x435e6c6e crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x4367637b unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x4375d901 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x437b7de8 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x43b278d1 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x44186dfe blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x442c2108 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x44560287 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x446bde3e sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x447cd7f6 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x44835b98 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448912a3 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x44bcfa6d system_nrt_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x44cc9c55 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x44ff6a77 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x452f4e50 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x453379ed pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x453472eb usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45aa85e8 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x45aae0de sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x45bc94f2 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c57e7d tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x45c73aaf dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x45cc52f8 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x45d4b27f cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4693e946 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x4696482f disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x4704bc06 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472ba606 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x474359b6 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x4744d050 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x474c874c device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x47c149ab queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x47d5ecf7 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x47e24604 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x47f951eb __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x47ff0435 usb_is_intel_switchable_xhci +EXPORT_SYMBOL_GPL vmlinux 0x481318de tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x483ea977 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x485afcf6 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4865f9b3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x48682db9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x48a170b9 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48bbb74e rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x48d85d4c blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x48fdbee7 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x49285346 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4958cdbe dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x49e3a774 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x49ea9ecf usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x49f799af pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x4a0f1b09 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x4a7bc844 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x4aac2332 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4acdac76 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x4b16e40e blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x4b37a707 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x4b3e38e6 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x4b8c19e6 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x4b915faa rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bd01ac9 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x4c04e2c3 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x4c089987 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x4c1f075a class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x4c4539cf agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x4c61395c platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x4c66ce26 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c93e30c adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x4cca1359 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x4cd1d84e device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x4ce2f9e6 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x4cf9a3b2 x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0x4d008680 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x4d0ce9f9 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x4d11bae7 olpc_ec_wakeup_clear +EXPORT_SYMBOL_GPL vmlinux 0x4d2469ff __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x4d70f68e debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x4dc0683b crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x4dc47307 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x4df2b2bf d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e1fbd77 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x4e6e8e07 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x4e7df11b irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4e7f865d clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x4eba1e78 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x4ed6e906 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f1ccf7d dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f1d22c0 of_property_count_strings +EXPORT_SYMBOL_GPL vmlinux 0x4f9f9032 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x4fac63c7 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff70dae fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x5013e6de pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x501d6b9c device_del +EXPORT_SYMBOL_GPL vmlinux 0x506fcbd5 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x50777012 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50bf66c4 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x511455e0 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x5133bf64 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x513574c0 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x51481f72 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5156b6ed unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x5158423e sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x517ca357 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51bb4998 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x51e21d0e sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x520a3547 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x522f4350 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x52354e9d pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x525b57a8 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x52826ed4 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x528fe50b crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x531e034e init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x53378008 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53c39354 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x53d85477 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x53dc84ec isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x541b445b debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x541f1f17 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x5451fcc5 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54663dbe fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x546e278e blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x548a18f7 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x549da194 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x54d11800 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x550031fe spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x5507f4d3 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x5521a78f security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x552567c0 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x552ebc36 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x553857cb tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x5560b28e usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x558b9cf9 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x55922993 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x55b436c2 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55e74041 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x55e743f9 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x56029bf8 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x560d3c0b usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564248f8 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5654f836 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5684cbaa rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56951789 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56c6194a fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x56e131c5 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56f97026 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x57158ed8 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x573b868d fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x5745778c rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x574f45af pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x576650e7 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x579f4e52 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x57b7b7a1 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x57bc476a tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x57bd7e1a ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x58103894 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x58193dc5 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x582bed1a acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x5899340b rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x589abf1c blkio_alloc_blkg_stats +EXPORT_SYMBOL_GPL vmlinux 0x58acd603 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x590a5c89 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x59373f46 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5964c11c sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x5985fad9 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x59874a7b device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x59888066 user_read +EXPORT_SYMBOL_GPL vmlinux 0x598d1b25 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x5994e170 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x59bbe507 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x59d099fa device_add +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a2f187e pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x5a441ebd efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5ae7aa06 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5b1612c0 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x5b394d6c unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x5b39c043 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x5b48cefe sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x5b509eb3 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x5b789d09 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x5bcb701b blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x5bda52dd usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c165595 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x5c46662b tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x5c4f103b ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x5c86c3fe anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x5ccd04ba ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x5cd8794f fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x5d14c5e7 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x5d20ad9b ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x5d2d333f led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x5d3cab62 cred_real_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5d640ad4 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d7d43ec tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d977f6e unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x5daeaeb7 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x5db38d98 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x5dbfa019 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x5dc3025b spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5dc8f207 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x5dce2e1c wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5ddb5418 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x5deeddc5 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x5df54728 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x5e2ca63e netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x5e2f0323 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x5e3b8efd usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x5e6b12e6 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5e81cef2 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5e9d3649 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5eda718d rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x5f1c95d5 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f46d244 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x5f8f47f9 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x5fa4feeb devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fce76ee blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5fd1627f sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x601168c0 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60b023fb fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x60b25e21 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x60bb075b wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60e2722e pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x61088473 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x61310508 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61698c6b platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x61a1b469 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x61f5566f rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x625eca21 ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x62833cf3 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x62d34a71 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x62daa5bf i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x6312e09d md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x63197308 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6347ee72 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x6382c156 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x639d54d0 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x63a90f96 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x63de1935 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x63f0c83a tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0x643aab71 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x643b157b md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x6450bb2d __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x64628746 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x6473e602 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x64ae09e6 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x64d8a053 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x65139148 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x6520b5cb raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x6592c5e7 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65c9fdaa stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d34527 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65fa533b usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x666ffa10 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6686ba20 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6757c5c6 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x677d7a15 of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x678a3369 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a9f269 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x67aeb712 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x68241a47 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6845f93b rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x687726a5 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x687eab74 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68990e83 dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0x68cd2df4 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x6903edf0 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x69189408 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x69370dfe vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x694e7540 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69a5cb45 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x69ac4e83 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0x69b9db7e security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a22bd04 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x6a2da027 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x6a36d5ab crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x6a490082 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6a492609 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x6a53e8d0 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6ab513e2 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6acc3214 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x6ad100cc ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x6ad38d26 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x6afd44fe unregister_efivars +EXPORT_SYMBOL_GPL vmlinux 0x6b127535 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x6b220f4f pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b2bc453 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x6b4060f8 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6bab4091 md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0x6bbe8869 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x6bc927ab __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x6bd8fef3 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c6cbc92 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x6c8c0fb5 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6cc5cc0b sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x6cdbafd2 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d37b423 inode_dio_wait +EXPORT_SYMBOL_GPL vmlinux 0x6d6cb910 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x6d9936fe spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x6db0748f device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6dbaf07a ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x6df207f3 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x6e2f6b20 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x6e3922fa crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x6e4dde68 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e8fb454 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x6eda9749 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6eff2920 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f5ae1b1 register_efivars +EXPORT_SYMBOL_GPL vmlinux 0x6f608203 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x6f998eee __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x6fba3584 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x6fd91cff wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6fef1039 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x6ff4438e inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70004575 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x70177482 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x701ba7df isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x70651847 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x7089e2bb regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x70a2e03b mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x70a9723d virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70e90c24 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x70f15b65 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71011c62 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x712d58b7 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x715f6cbb get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7180deac tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x71832318 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x71b527a6 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x71c4fd39 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x7227a107 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7237fae1 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7270c4c0 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7285f84f unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x72a8bbc7 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x72b063d7 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x72c4d1d5 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x730a2891 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x731060b4 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7333f5ed pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c5a27b pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x73cccfe5 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x73ceb88e tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73ed5ce9 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x74160d25 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x742a088f usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x749950ac crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74c26a84 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x74c331d2 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x74d85c86 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74ebcab0 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x751b6169 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x75313377 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x753381f9 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x7560c3ca cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x759eee15 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x75a210bc tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x75b20f59 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x75b669df regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75d07195 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x763f60b4 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x76d6d5a5 xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x76fa56cb sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x770d96cb usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x7748a800 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x7764cfc5 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x77708e7e crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x77bbab8d bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x780c78eb bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x7826b989 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x78671fd3 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x788ccff8 olpc_xo1_pm_wakeup_set +EXPORT_SYMBOL_GPL vmlinux 0x78b698e5 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x791138f1 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796818de rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x799f10ea user_describe +EXPORT_SYMBOL_GPL vmlinux 0x79a71c48 kernel_stack_pointer +EXPORT_SYMBOL_GPL vmlinux 0x79af3107 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x79c1ed79 wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x79c72414 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x79d8148b ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x79e73afa rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x7a2ac0f3 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x7a3b7f19 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175 amd_erratum_383 +EXPORT_SYMBOL_GPL vmlinux 0x7a92ffe7 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7aea4086 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1a4b3e usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7bb5fb89 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x7bcc7bed rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7be2445c wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x7c14f7fb usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7c4fe927 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x7c505804 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x7c5a0694 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x7c7caf1b dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x7cd4e709 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cef4d6a irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x7d0905f4 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7d0939e1 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x7d2056a6 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x7d44b407 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7d55e4b4 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d5fb998 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x7d6ebbe6 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x7d946fba inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7deb3da2 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x7e069a13 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e1ecdc5 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e693a78 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x7e74cb5a bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x7ea2d108 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7ebb31bf rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ecaa075 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x7eed202e sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x7f01607e fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x7f2c1f37 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x7f33243e regcache_write +EXPORT_SYMBOL_GPL vmlinux 0x7f8fe450 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x7f9205b4 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x7f97e72c crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x7faa0205 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fb8f4b5 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7fbc7fcd tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fe5581c ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8006dde7 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x80107e9b tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x8029cff4 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x803fd0c1 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8048c3c8 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x808958f2 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80b11fa3 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x812fee35 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x81438adb skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81754c8b ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x818502e4 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x81892bcc uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x81eded70 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x82014927 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x825521c2 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x832795b7 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x835e36ec rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x837c135d usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x8385ff51 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83bbe170 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x83c62f8c iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x83ce82eb get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x8578b114 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x858a737a trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x860cbb18 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x8657d0cf posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86955d01 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x86a6398d rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x86aa16e6 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x87112591 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8750ccc5 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x875208d5 ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x875e5ceb ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87a0344c tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x87eab641 ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x880498a9 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8831f8b1 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0x8838adfa tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x883e4425 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x8853d4b9 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x886736fc olpc_platform_info +EXPORT_SYMBOL_GPL vmlinux 0x8871e2be screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x889d0e75 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x889e9c2a i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88df31f1 register_mce_write_callback +EXPORT_SYMBOL_GPL vmlinux 0x88e2bd5b ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x891ab7e8 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x896344b3 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x897d6e10 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x897d8616 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x89a719ec tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x89b41c73 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x89b4fb77 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x89c90e8a tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x89ff43f6 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x8a007f59 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x8a2aeef9 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a62deef inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x8ab50b5e debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ac248f1 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x8b0508bc ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8b295b68 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x8b403d43 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x8b584840 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x8b5ab818 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x8b620720 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8bda2abf bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06aa85 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x8c118aa1 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x8c49fa34 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x8c4db1b5 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8c80778a dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x8cb64215 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8cf0cfb0 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x8d2753f6 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8da328c9 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x8dad55e8 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x8dbeac51 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x8e5050a7 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x8ed09c39 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f64550c sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x8f651221 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f888a5a synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x8f9d9b28 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x8fb576b8 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8fcf6ba6 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x8feb420d usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x901747c3 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x90300d01 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x907659c9 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90ce63f4 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x917942a7 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x917ad6c9 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91afc392 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x91e5bcfe olpc_ec_sci_query +EXPORT_SYMBOL_GPL vmlinux 0x9259dcdd md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x928b04f6 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x9292d277 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x92abda52 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x92b3beee print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x933a1ea7 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x93588644 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x936a890f ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x937c7243 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x939152de device_register +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL vmlinux 0x94131a51 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x942f8db0 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0x9464bde3 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x947ff420 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x9497fd07 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94c1d23c __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94e6e17a uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x94ec876e ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x950a2a40 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x953797a8 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x954c8888 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x955944a7 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956469cb sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9583e25c eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x95b3192b crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x95c2c4de get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x95da94ca perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x95dd76c8 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x960ddfe5 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96252441 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x96303811 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0x968034eb devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x968e27a4 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x9695722f ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96e925f4 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x96fa47e6 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x970ea033 init_fpu +EXPORT_SYMBOL_GPL vmlinux 0x971db7cc ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x972727b9 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x972d24f0 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x974ee909 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x97591078 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x977d3aa6 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x9791b232 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x97a71aba __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x97b39f0c ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x97bb872b bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x97f9c45a trace_nowake_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x980bbac2 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9842f28e blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98d201f1 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x98d3bf7e sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x98e8f873 ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0x98f9e29e cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9941e6a1 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x997a4d86 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x9985cf24 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x99af5cf1 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x99d28c74 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x9a0d4c1f usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x9a0e975e cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a30bf73 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x9a31962c driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9a409a6a free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x9a4ba814 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x9a8ac7a1 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x9abc1160 xv_malloc +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b4263ab led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x9b4a10df pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x9b71f790 inode_dio_done +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bb12348 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x9be3edf6 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x9bf53387 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x9c4c59d7 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d2ed6c6 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x9d44e976 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x9d46ae0b tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x9d68689d pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9da00bd3 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x9da7f6d3 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x9daea64a sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x9db04057 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x9db7dc88 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x9dba71d7 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x9dc07040 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x9dc34e68 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9de09ecf kick_process +EXPORT_SYMBOL_GPL vmlinux 0x9df6d88d rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e4f1cfb ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x9e6829cd sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9ec99fc4 usb_enable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x9ee14ba1 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x9ef32d0d pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x9efb7b42 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x9efc4d48 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x9f0547db sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f29601a atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x9f3fdc80 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f5cdc46 dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0x9f697125 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x9fb05b47 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x9fb4782e remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x9fbf1604 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe627cb regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x9ff14060 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x9ffeda08 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa00e56a0 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa0545c65 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xa09cc1c6 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xa0acda21 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xa0c14846 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa0c64df1 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xa0ef44a9 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xa0f1a2f9 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa1267c6a ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xa1472e20 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xa1509848 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa1b9139e rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xa21ea14a transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xa22988da sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xa235f32a regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xa25dfc1d devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xa2aeed64 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0xa2d93367 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa2f75db7 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xa304c686 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xa30553ef usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xa3819492 pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa3e56f49 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3fb522f blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0xa3fcfe0a sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xa4067914 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa4266c4b fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xa43ad24b regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa4435ebb sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xa44fe7ae ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xa452acfb pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa45ff7a4 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4961e15 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa4a928e2 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xa4be5972 ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xa4ca0d4e unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa5513b02 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa557e703 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0xa5726192 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xa577e458 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xa583b72d driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xa5845b98 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xa5b6be0b pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0xa5e1dc61 xv_free +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa63584db ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xa684bbd6 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xa694cd8a evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xa6c2f25c crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa6ffb7db crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xa706817c sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xa722a819 cpu_has_amd_erratum +EXPORT_SYMBOL_GPL vmlinux 0xa72427cd ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xa781565b elv_register +EXPORT_SYMBOL_GPL vmlinux 0xa78954e0 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xa7ba4ce5 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xa7c2f28b sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa80d5306 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xa8180c50 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xa875d9c6 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xa882f46f ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xa89c783c shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xa8f16499 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa932b72d ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xa9b0753f securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9ddefd1 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2612a3 regcache_read +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa3f13f7 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa7ecfee tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xaa852c93 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaee7582 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaaf33330 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xaaf4856e usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xab103f72 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xab5e693c pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xabc47f60 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xabc53fc4 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xabef7f56 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xac1253aa scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xac3b0db4 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xac628592 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacbbc4f1 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xacc0c0fd pxa_ssp_request +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad76e37e sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xad7824e6 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xad7e4f1a usb_string +EXPORT_SYMBOL_GPL vmlinux 0xad8b3f8b xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0xad9472b5 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae1b7289 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xae370b07 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xae581b0a crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xae68d648 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xae77b94f vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xae7bf8cc dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xaea742e2 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xaeea3073 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xaf14d5ec wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xaf484829 of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL vmlinux 0xafa2b7b9 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xafb2ec59 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xafcdeccf i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xafcfd4cd mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xafd94663 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xafe110f2 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xafe3919b inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb04837cc inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xb05fb734 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xb07d039c usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xb095a5e0 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xb0ae5977 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0cbc759 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xb0dbdb38 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xb0f9b77a attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xb109af4d hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb12ced09 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb158fb9d unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xb1628e08 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xb1772834 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xb17d2497 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xb1825428 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18506b9 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xb1a4b11e module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb24d6828 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xb2500ca0 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xb2649984 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb27a455d pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0xb282edf9 olpc_ec_wakeup_available +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2f5558b irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xb306dc1e device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xb30be7af cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xb31b7193 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb34125e9 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0xb366298a blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xb37c2daf crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3fb08bd ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xb41dc08d regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xb45903e5 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xb46c80d5 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xb4a5f2b9 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xb4aa0c61 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xb4c1204c __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb50b0713 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0xb50e9a62 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb52a1b00 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb538ae63 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb53a17bf cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb553a897 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb5da960d virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xb5e9f692 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60729fc ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xb630804b agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xb6308675 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb6379759 bsg_goose_queue +EXPORT_SYMBOL_GPL vmlinux 0xb63864f6 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xb659a4d6 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xb65c53f1 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6bc38c9 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb70ee414 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb75bb719 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xb75d662a hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb79dad65 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb84e4c47 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xb8542fb9 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb86bcceb klist_next +EXPORT_SYMBOL_GPL vmlinux 0xb871b8ec of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xb871d881 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xb8bd912b usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xb8be4a4c tpm_read +EXPORT_SYMBOL_GPL vmlinux 0xb8cbb0b9 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb8e1e6a7 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb913db8d usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb91c1283 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xb928cabd __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xb95020ca ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0xb95ecb87 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xb965a118 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb971340e dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0xb9732ecb iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xb99d0214 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xb9af9b44 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9db6896 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0xb9dfb537 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb9fefea5 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xba0f2e27 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xba266bdf input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xba435b12 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xbad34e56 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbaf0fd5f sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb083bf3 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb9a8122 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbc2ef88 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xbbfce101 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xbc073b2a stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xbc23dd40 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xbc2bf721 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xbc337c6f cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xbc456407 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xbc517477 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xbc547dfc fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xbc6f931b workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xbc843b90 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xbc8cdb19 task_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xbcb80a2d tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcd7b242 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xbcfe7985 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd11babb pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd593db tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbe019753 virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3bd89f wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xbe57fd1d device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xbe5883c4 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xbe6b1cc9 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xbe70c5e0 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xbe878ee5 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xbe8fdadd platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xbe936604 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xbea69a25 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xbeac3749 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xbedf0431 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xbf0cc49e ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbf21d9ef usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xbf801714 of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfbfd982 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xbfc223df sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xbfe048b6 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xbffcb3b7 acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0xc013d8ee tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0xc02e5b6b PageHuge +EXPORT_SYMBOL_GPL vmlinux 0xc03ab504 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xc07032b3 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xc0814805 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xc08465d0 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0bb404a cs5535_gpio_setup_event +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc100d1ed pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc15084a7 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1984dcc anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xc1bb5f12 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xc1d0a660 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xc227cd2c br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc22b81fd tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0xc25a66b1 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xc27a9468 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2fc19ac pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc407f280 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc449692d ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xc4820756 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4b0fd7d __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0xc4c5ebbd relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xc4e739d0 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc5469498 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xc56c9154 pxa_ssp_free +EXPORT_SYMBOL_GPL vmlinux 0xc58cdb60 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0xc5aad65f transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5 amd_erratum_400 +EXPORT_SYMBOL_GPL vmlinux 0xc60e1346 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc65365fb usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc6a6f6a4 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xc6b3a79d blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0xc6b9a860 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xc6ef3bc3 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xc714fd14 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc73e3861 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xc756ca23 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7a5c7db ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc7a76152 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xc7bf6039 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xc7f7a413 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc80f6b69 __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc8456cd0 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc884b8ba edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0xc88b7dc0 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8e5fbc9 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9179a3a tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xc9225aae bus_register +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9724e9d ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xc97a52cb pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xc990c071 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xc9a01b2d sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9dc0c3d usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xc9e2e8c4 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca33620d skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xca38a1b0 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xca657d03 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xca73d986 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca8dc89f handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xcaae7d4d show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcad48170 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xcb101816 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xcb6aada6 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0xcb7659b5 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xcb78e0f2 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc0d9621 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0xcc17df57 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc25b081 edac_class +EXPORT_SYMBOL_GPL vmlinux 0xcc3da32d aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0xcc41bd7f apic +EXPORT_SYMBOL_GPL vmlinux 0xcc44c654 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xcc5830e5 dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc796544 __module_address +EXPORT_SYMBOL_GPL vmlinux 0xccb91a72 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcce29e02 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xcd16c524 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xcd438526 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcd518b5b rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0xcdaa1f33 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xcdc96122 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce01ea28 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xce08f879 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xce2ba65b clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xce46b176 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xce4a05a3 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xce55595f usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xce5958ec ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce78aeaa rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xce7ad13e disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xceacb296 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0xcebc4feb inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xcec5c624 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xcef0ade8 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xcef49b22 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xcf21d28c crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xcf359f77 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xcf4b4f99 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xcf73be22 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xcfb5871c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xcfbde7a2 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd0223be0 user_match +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0491645 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xd05dc2a3 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xd07b2b99 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0f27f1d sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd100c0fc __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xd12ac59b olpc_ec_cmd +EXPORT_SYMBOL_GPL vmlinux 0xd14d5976 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1952f31 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c4d1a8 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xd1cf3d9a crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xd1cfc7bc tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xd1f7787c clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd20e5bfd ref_module +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd2243478 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xd2456b76 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd28db3c8 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xd28ec536 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xd2970b8a __olpc_ofw +EXPORT_SYMBOL_GPL vmlinux 0xd29bb681 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2b0a19e ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xd2b53e62 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd2b7a7ec __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xd2bdea2d ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd35641e3 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xd361a0d4 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xd3728668 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd390f979 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd411a5e2 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xd4270769 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xd46dc7f2 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xd491566d tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xd496f828 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4d66640 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd52d6a81 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xd58ec7a1 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5a47ce2 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd618bbde __class_create +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd69b423f handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd706db0c tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xd735305d wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xd739e0b1 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xd759af0f __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xd766619e pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd78664e1 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xd7a0c66f usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7fb3bfb dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xd808989e usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd80a9136 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8250a5c iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd8322212 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd865bdc2 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xd86b8278 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd8e763a4 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd93e76a6 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd977aae5 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0xd9796dd3 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xd97c5ddf device_rename +EXPORT_SYMBOL_GPL vmlinux 0xd9c46ca6 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xd9ec02b7 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9f34b16 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xda196c85 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xda58af6b fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xda7d8c5b anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda9416b5 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xdab28080 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xdac8e242 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xdad75b18 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdaf30a4b crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb0125c4 tpm_bios_log_setup +EXPORT_SYMBOL_GPL vmlinux 0xdb014916 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb08adb6 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xdb0dd785 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xdb1f51f7 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb670acb ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xdb784940 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xdbaa849a usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xdbb60e1e tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0xdbcc5895 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xdbfa2938 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xdc58aeef evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xdc5d1733 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdc7a3bb0 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdcaed824 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xdcafe17a usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xdce45a6a ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdd0cb715 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xdd221c92 get_device +EXPORT_SYMBOL_GPL vmlinux 0xdd256dfc yield_to +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd752e01 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdde51c11 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde51fa59 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0xde86783d of_property_read_string_index +EXPORT_SYMBOL_GPL vmlinux 0xde8bd2ba rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xde9f6635 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xdebe5a54 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0xdef4a687 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL vmlinux 0xdf3bb362 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xdf72cd07 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xdf96c353 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xdfa1fd06 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xdfd8107e tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdfe6d923 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe09ee068 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0xe0aa9f90 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0e21230 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xe102a9ba blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe11b49d3 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xe1257185 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xe154e70e ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0xe16fcecc crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xe17e462e usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xe1f0da24 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xe1fe1e4f cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xe200cfe5 olpc_xo1_pm_wakeup_clear +EXPORT_SYMBOL_GPL vmlinux 0xe220058e scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xe2707505 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xe289b6e1 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2b5bfe0 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xe2cba529 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe2e75a80 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe31b9ec0 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe33f1dd5 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xe3538b52 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe367d400 user_update +EXPORT_SYMBOL_GPL vmlinux 0xe37ab4df ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3980e08 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3c6559d skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xe4003366 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xe4145f09 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe43c2d3d sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xe4699933 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xe4b5d111 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe4e7699b bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xe504fbbb ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0xe52b341d tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xe55183a7 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xe574eb40 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5d4c150 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xe5d6a023 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xe5f5afbf inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe63a0654 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xe64073ab fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6564673 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xe658c8c6 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xe679272f wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe696cfff netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xe6a7fd7a pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe6c4ad2b debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xe6d49a7c unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe705ece6 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xe709bd93 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe74e9158 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xe76ec7db md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xe78a6b8b pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe7c21dfc eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xe7c6a736 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xe7e7df61 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe80d4a33 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe8174e8c get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe82e825b init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xe83610e4 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86f37ee da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xe8932a16 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xe8a120b0 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe8a4813e usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xe8aed6a9 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe935461d blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe980b42f net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xe9d7923f event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0xe9ed7c9e blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe9f174c5 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea2e936f iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xea3a2ab1 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xea3bdbb0 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xea51f70a scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xea5c6a54 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xea665573 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xea905975 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xea962062 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xea9ac2f9 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xeadd8a51 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb21efed of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0xeb2cbbad pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xeb370805 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xeba3c0a8 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xebbb26af sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xebcd17be tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xebe0d32a class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xec0a2151 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec2082cf devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec25f972 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xec5918b4 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xecda9a49 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xecf39950 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xed51d5e2 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xed5f0d1a sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xed97571f rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xeda4196b device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xedc356b3 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xede7d7e3 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee0e4a92 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xee116ce9 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0xee4dce5d zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xee55291d crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xee8725ca free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xee94dff2 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xeeb45162 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0xeec24d31 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef23d470 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xef6871c5 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef73a4bd device_create +EXPORT_SYMBOL_GPL vmlinux 0xef9df7eb rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xefa72da7 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xefb3b1d8 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xefb72398 pstore_write +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xeff3732b ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xeff78a8a dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xf002898c devres_add +EXPORT_SYMBOL_GPL vmlinux 0xf01d4d66 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xf025cead pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf0c22d4d adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf125b557 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xf1268a7c irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xf15716be init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xf17018cf raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b3a90d da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1b5a9d5 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xf1d4667a led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf1f5eb20 register_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xf238ebcf pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xf26d0298 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xf27a2089 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xf2eb04c6 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf304dd18 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31a07f1 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf32df29f crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf36437a9 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xf3929a1a sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3d880ca usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf421e523 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xf43b39b2 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xf47d643c elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf48382c1 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a5f065 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xf4d01cdb fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xf4de2dcb ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf552424f task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5587124 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xf55c51f7 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xf57fd597 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5c25f99 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xf5d7f81e xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xf5e25418 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0xf5f84569 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xf6046c49 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xf618d686 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xf650047c pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xf687c19c hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xf6d6662a seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ec42ef ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xf6f6f885 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xf717dfd3 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xf730a2e4 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf7322bc8 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0xf756b9e8 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xf760a667 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xf796ead5 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7a5ab25 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xf7d20fda vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf8484609 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf851e158 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xf874c2d2 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xf8761778 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8950c19 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xf8a81ed5 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf8c3c036 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xf8e66613 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf900d55f led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xf9091788 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf9599bfa shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf997d715 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9c3c5df devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9f05e5b usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa091c93 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1ed53d i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xfa2dcc3a crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xfa504052 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xfaa1b9ef usb_usual_ignore_device +EXPORT_SYMBOL_GPL vmlinux 0xfac02316 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xfb0d0ffe olpc_ofw_present +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb84346d crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xfb87ba2c spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xfba9cc1d cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfbfcde8a ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0xfc087b26 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xfc32236f ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfce14dbc dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xfcf5c3f8 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xfd05464b klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xfd7100d2 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfdaa7944 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfde0fda4 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xfdf64602 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xfe0a203a skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfeebd4b4 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5f2b0e __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xff838bda __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xffa176d6 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffc3a58b crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xffd529ee pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xffecba3c mddev_suspend --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/i386/generic.compiler +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/i386/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/i386/virtual.compiler +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/i386/virtual.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/amd64/virtual.modules +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/amd64/virtual.modules @@ -0,0 +1,3309 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8255 +8390 +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +abituguru +abituguru3 +abyss +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acpi_ipmi +acpi_memhotplug +acpi_pad +acpiphp +acpiphp_ibm +acpi_power_meter +acquirewdt +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5398 +ad5446 +ad5504 +ad5624r_spi +ad5686 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7280a +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2016 +addi_apci_2032 +addi_apci_2200 +addi_apci_3001 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adl_pci6208 +adl_pci7230 +adl_pci7296 +adl_pci7432 +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aesni-intel +aes-x86_64 +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +ak8975 +alauda +algif_hash +algif_skcipher +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +ambassador +amc6821 +amd5536udc +amd64_edac_mod +amd76xrom +amd8111e +amd-rng +amplc_dio200 +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +ams369fg06 +analog +ansi_cprng +anubis +aoe +apanel +apds9802als +apds990x +apple_bl +appledisplay +apple-gmux +applesmc +appletalk +appletouch +applicom +ar7part +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +asb100 +asc7621 +asix +asus_atk0110 +asus-laptop +asus-nb-wmi +asus_oled +asus-wmi +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +atbm8830 +aten +ath +ath3k +ath5k +ath6kl +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522 +aufs +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +blowfish-x86_64 +bluecard_cs +bluetooth +bma150 +bmp085 +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c2port-duramar2150 +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcidio +cb_pcimdas +cb_pcimdda +c_can +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +ci13xxx_pci +cifs +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +cordic +core +coretemp +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpqarray +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc7 +crc8 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs5535-mfd +ct82c710 +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +DAC960 +daqboard2000 +das08 +das08_cs +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +ddbridge +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +dell-wmi-aio +denali +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bufio +dm-crypt +dme1737 +dmfe +dmi-sysfs +dm-log +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-raid45 +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-thin-pool +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docg3 +docprobe +dpt_i2o +drbd +drm +drm_kms_helper +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +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-anysee +dvb-usb-au6610 +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-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-omap +dwc3-pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e752x_edac +earth-pt1 +easycap +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +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_ulog +ebt_vlan +ec100 +echo +econet +ec_sys +edac_core +edac_mce_amd +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +emc6w201 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +ene_ir +eni +enic +epat +epia +epic100 +eql +erst-dbg +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +et61x251 +ethoc +eurotechwdt +evbug +exofs +ext2 +f71805f +f71808e_wdt +f71882fg +f75375s +fakephp +fam15h_power +farsync +fat +faulty +fb_ddc +fb_sys_fops +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +fixed +floppy +fm801-gp +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +freevxfs +friq +frpw +fsa9480 +fsam7400 +fscache +fschmd +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdth +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-clmulni-intel +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-usb +goku_udc +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-charger +gpio-cs5535 +gpio-fan +gpio-generic +gpio-i2cmux +gpio-it8761e +gpio-janz-ttl +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-pch +gpio-rdc321x +gpio-regulator +gpio-sch +gpio-tps65912 +gpio_vbus +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +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_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-holtekff +hid-hyperv +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-kovaplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-speedlink +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hp_accel +hpfs +hpilo +hpsa +hptiop +hpwdt +hp-wmi +hso +htc-pasic3 +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-designware-core +i2c-designware-pci +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mux +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +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-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7300_edac +i7300_idle +i7core_edac +i810 +i82092 +i82975x_edac +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipath +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmasm +ibmasr +ibmpex +ibm_rtl +ib_mthca +ibmtr_cs +ib_qib +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icp_multi +ics932s401 +ideapad-laptop +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio_dummy +iio-trig-gpio +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili9320 +imm +imon +imx074 +industrialio +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +intel_oaktrail +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it8712f_wdt +it87_wdt +it913x-fe +iTCO_vendor_support +iTCO_wdt +itd1000 +ite-cir +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwl-legacy +iwlwifi +iwmc3200top +iwmc3200wifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvm +kvm-amd +kvm-intel +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-clevo-mail +leds-da903x +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lt3593 +leds-mc13783 +leds-net5501 +leds-pca9532 +leds-pca955x +leds-regulator +leds-ss4200 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lm95245 +lmc +lms283gf05 +lnbp21 +lnbp22 +lockd +lp +lp3971 +lp3972 +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lxfb +lzo +m25p80 +m52790 +m66592-udc +ma600-sir +mac80211 +mac80211_hwsim +mac_hid +machzwd +macmodes +macvlan +macvtap +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max6639 +max6642 +max6650 +max6875 +max7359_keypad +max8649 +max8660 +max8903_charger +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc44s803 +mce_amd_inj +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +mdio-bitbang +mdio-gpio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mem2mem_testdev +memstick +metronomefb +meye +mfd +mga +michael_mic +micrel +microcode +microtek +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mma8450 +mmc_block +mmc_spi +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpr121_touchkey +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrst_max3110 +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +mv88e6060 +mv88e6xxx_drv +mvsas +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxm-wmi +mxser +myri10ge +n411 +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +nci +ncpfs +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nftl +nf_tproxy_core +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +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 +nop-usb-xceiv +nosy +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nuvoton-cir +nvidiafb +nvram +nv_tco +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +old_belkin-sir +olympic +omfs +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8023 +padlock-aes +padlock-sha +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +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_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc300too +pc87360 +pc87413_wdt +pc87427 +pca9541 +pca954x +pcbc +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci_slot +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcm_common +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +peak_pci +pegasus +penmount +pf +pg +phantom +phison +phonedev +phonet +phram +physmap +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pn533 +pn544 +pn_pep +pohmelfs +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +progear_bl +ps2mult +psb_gfx +psmouse +pt +pti +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qt1010 +qt1070 +quatech_daqp_cs +quatech_usb2 +quickstart +quota_tree +quota_v1 +quota_v2 +r128 +r592 +r6040 +r8169 +r8187se +r8192e_pci +r8192u_usb +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-i2c-si470x +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +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-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +renesas_usbhs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-regulator +ring_sw +rio500 +rionet +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm860x +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl8150 +rtl8180 +rtl8187 +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtlwifi +rts5139 +rts_pstor +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-x86_64 +samsung-laptop +samsung-q10 +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 +savage +savagefb +sb1000 +sbc60xxwdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbe-2t3e3 +sb_edac +sbni +sbs +sbshc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci +sdhci-pci +sdhci-pltfm +sdio_uart +sdricoh_cs +sedlbauer_cs +seed +seeq8005 +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha1-ssse3 +sha512_generic +shpchp +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smc91c92_cs +sm_common +sm_ftl +smm665 +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +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-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +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-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-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-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-88pm860x +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-dfbmcs320 +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-max98088 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-sgtl5000 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm5100 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8782 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +softing_cs +solos-pci +sony-laptop +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedstep-lib +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw-midpci +spi-gpio +spi-lm70llp +spi-oc-tiny +spi-tle62x0 +spi-topcliff-pch +squashfs +ssb +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sx8 +sym53c500_cs +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tcm_fc +tcm_loop +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpm_atmel +tpm_infineon +tpm_nsc +tpm_tis +tps6105x +tps6105x-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +trancevibrator +tranzport +tridentfb +ts5500_flash +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw9910 +twidjoy +twofish_common +twofish_generic +twofish-x86_64 +twofish-x86_64-3way +typhoon +u132-hcd +uartlite +ub +ubi +ubifs +ucb1400_core +ucb1400_ts +udc-core +udf +udlfb +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-compat-ioctl32 +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +video +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio_balloon +virtio_console +virtio_mmio +virtio-rng +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmwgfx +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +vub300 +vx855 +vxge +w1_bq27000 +w1_ds2408 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1-gpio +w1_smem +w1_therm +w35und +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +wacom +wacom_w8001 +wafer5823wdt +walkera0701 +wanrouter +wanxl +warrior +wbsd +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +winbond-cir +wire +wis-ov7640 +wis-saa7113 +wis-saa7115 +wis-sony-tuner +wis-tw2804 +wis-tw9903 +wis-uda1342 +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wmi +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-pciback +xen-pcifront +xen_wdt +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xilinx_uartps +xirc2ps_cs +xircom_cb +xo15-ebook +xor +xpad +xprtrdma +x_tables +xt_addrtype +xt_AUDIT +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zcache +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/amd64/generic.modules +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/amd64/generic.modules @@ -0,0 +1,3309 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8255 +8390 +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +abituguru +abituguru3 +abyss +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acpi_ipmi +acpi_memhotplug +acpi_pad +acpiphp +acpiphp_ibm +acpi_power_meter +acquirewdt +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5398 +ad5446 +ad5504 +ad5624r_spi +ad5686 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7280a +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2016 +addi_apci_2032 +addi_apci_2200 +addi_apci_3001 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adl_pci6208 +adl_pci7230 +adl_pci7296 +adl_pci7432 +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aesni-intel +aes-x86_64 +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +ak8975 +alauda +algif_hash +algif_skcipher +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +ambassador +amc6821 +amd5536udc +amd64_edac_mod +amd76xrom +amd8111e +amd-rng +amplc_dio200 +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +ams369fg06 +analog +ansi_cprng +anubis +aoe +apanel +apds9802als +apds990x +apple_bl +appledisplay +apple-gmux +applesmc +appletalk +appletouch +applicom +ar7part +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +asb100 +asc7621 +asix +asus_atk0110 +asus-laptop +asus-nb-wmi +asus_oled +asus-wmi +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +atbm8830 +aten +ath +ath3k +ath5k +ath6kl +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522 +aufs +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +blowfish-x86_64 +bluecard_cs +bluetooth +bma150 +bmp085 +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c2port-duramar2150 +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcidio +cb_pcimdas +cb_pcimdda +c_can +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +ci13xxx_pci +cifs +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +cordic +core +coretemp +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpqarray +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc7 +crc8 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs5535-mfd +ct82c710 +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +DAC960 +daqboard2000 +das08 +das08_cs +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +ddbridge +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +dell-wmi-aio +denali +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bufio +dm-crypt +dme1737 +dmfe +dmi-sysfs +dm-log +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-raid45 +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-thin-pool +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docg3 +docprobe +dpt_i2o +drbd +drm +drm_kms_helper +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +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-anysee +dvb-usb-au6610 +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-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-omap +dwc3-pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e752x_edac +earth-pt1 +easycap +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +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_ulog +ebt_vlan +ec100 +echo +econet +ec_sys +edac_core +edac_mce_amd +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +emc6w201 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +ene_ir +eni +enic +epat +epia +epic100 +eql +erst-dbg +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +et61x251 +ethoc +eurotechwdt +evbug +exofs +ext2 +f71805f +f71808e_wdt +f71882fg +f75375s +fakephp +fam15h_power +farsync +fat +faulty +fb_ddc +fb_sys_fops +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +fixed +floppy +fm801-gp +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +freevxfs +friq +frpw +fsa9480 +fsam7400 +fscache +fschmd +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +g450_pll +g760a +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdth +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-clmulni-intel +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-usb +goku_udc +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-charger +gpio-cs5535 +gpio-fan +gpio-generic +gpio-i2cmux +gpio-it8761e +gpio-janz-ttl +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-pch +gpio-rdc321x +gpio-regulator +gpio-sch +gpio-tps65912 +gpio_vbus +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +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_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-holtekff +hid-hyperv +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-kovaplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-speedlink +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hp_accel +hpfs +hpilo +hpsa +hptiop +hpwdt +hp-wmi +hso +htc-pasic3 +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-designware-core +i2c-designware-pci +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mux +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +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-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7300_edac +i7300_idle +i7core_edac +i810 +i82092 +i82975x_edac +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipath +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmasm +ibmasr +ibmpex +ibm_rtl +ib_mthca +ibmtr_cs +ib_qib +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icp_multi +ics932s401 +ideapad-laptop +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio_dummy +iio-trig-gpio +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili9320 +imm +imon +imx074 +industrialio +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +intel_oaktrail +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it8712f_wdt +it87_wdt +it913x-fe +iTCO_vendor_support +iTCO_wdt +itd1000 +ite-cir +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwl-legacy +iwlwifi +iwmc3200top +iwmc3200wifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvm +kvm-amd +kvm-intel +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-clevo-mail +leds-da903x +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lt3593 +leds-mc13783 +leds-net5501 +leds-pca9532 +leds-pca955x +leds-regulator +leds-ss4200 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lm95245 +lmc +lms283gf05 +lnbp21 +lnbp22 +lockd +lp +lp3971 +lp3972 +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lxfb +lzo +m25p80 +m52790 +m66592-udc +ma600-sir +mac80211 +mac80211_hwsim +mac_hid +machzwd +macmodes +macvlan +macvtap +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max6639 +max6642 +max6650 +max6875 +max7359_keypad +max8649 +max8660 +max8903_charger +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc44s803 +mce_amd_inj +mce-inject +mceusb +mce-xeon75xx +mcp2120-sir +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +mdio-bitbang +mdio-gpio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mem2mem_testdev +memstick +metronomefb +meye +mfd +mga +michael_mic +micrel +microcode +microtek +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mma8450 +mmc_block +mmc_spi +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpr121_touchkey +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrst_max3110 +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +mv88e6060 +mv88e6xxx_drv +mvsas +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxm-wmi +mxser +myri10ge +n411 +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +nci +ncpfs +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nftl +nf_tproxy_core +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +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 +nop-usb-xceiv +nosy +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nuvoton-cir +nvidiafb +nvram +nv_tco +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +old_belkin-sir +olympic +omfs +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8023 +padlock-aes +padlock-sha +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +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_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc300too +pc87360 +pc87413_wdt +pc87427 +pca9541 +pca954x +pcbc +pcc-cpufreq +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci_slot +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcm_common +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +peak_pci +pegasus +penmount +pf +pg +phantom +phison +phonedev +phonet +phram +physmap +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pn533 +pn544 +pn_pep +pohmelfs +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +progear_bl +ps2mult +psb_gfx +psmouse +pt +pti +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qt1010 +qt1070 +quatech_daqp_cs +quatech_usb2 +quickstart +quota_tree +quota_v1 +quota_v2 +r128 +r592 +r6040 +r8169 +r8187se +r8192e_pci +r8192u_usb +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-i2c-si470x +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +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-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +renesas_usbhs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-regulator +ring_sw +rio500 +rionet +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm860x +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl8150 +rtl8180 +rtl8187 +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtlwifi +rts5139 +rts_pstor +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-x86_64 +samsung-laptop +samsung-q10 +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 +savage +savagefb +sb1000 +sbc60xxwdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbe-2t3e3 +sb_edac +sbni +sbs +sbshc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci +sdhci-pci +sdhci-pltfm +sdio_uart +sdricoh_cs +sedlbauer_cs +seed +seeq8005 +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha1-ssse3 +sha512_generic +shpchp +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xx +smc91c92_cs +sm_common +sm_ftl +smm665 +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +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-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +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-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-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-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-88pm860x +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-dfbmcs320 +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-max98088 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-sgtl5000 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm5100 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8782 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +softing_cs +solos-pci +sony-laptop +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedstep-lib +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw-midpci +spi-gpio +spi-lm70llp +spi-oc-tiny +spi-tle62x0 +spi-topcliff-pch +squashfs +ssb +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +starfire +stb0899 +stb6000 +stb6100 +st_drv +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sx8 +sym53c500_cs +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tcm_fc +tcm_loop +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpm_atmel +tpm_infineon +tpm_nsc +tpm_tis +tps6105x +tps6105x-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +trancevibrator +tranzport +tridentfb +ts5500_flash +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw9910 +twidjoy +twofish_common +twofish_generic +twofish-x86_64 +twofish-x86_64-3way +typhoon +u132-hcd +uartlite +ub +ubi +ubifs +ucb1400_core +ucb1400_ts +udc-core +udf +udlfb +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-compat-ioctl32 +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +video +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio_balloon +virtio_console +virtio_mmio +virtio-rng +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmwgfx +vmw_pvscsi +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +vub300 +vx855 +vxge +w1_bq27000 +w1_ds2408 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1-gpio +w1_smem +w1_therm +w35und +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w9966 +wacom +wacom_w8001 +wafer5823wdt +walkera0701 +wanrouter +wanxl +warrior +wbsd +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +winbond-cir +wire +wis-ov7640 +wis-saa7113 +wis-saa7115 +wis-sony-tuner +wis-tw2804 +wis-tw9903 +wis-uda1342 +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wmi +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-pciback +xen-pcifront +xen_wdt +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xilinx_uartps +xirc2ps_cs +xircom_cb +xo15-ebook +xor +xpad +xprtrdma +x_tables +xt_addrtype +xt_AUDIT +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zcache +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/amd64/virtual +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/amd64/virtual @@ -0,0 +1,12545 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x211390cf kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0xe74b12d5 kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/acpi/video 0xa34cad0c acpi_video_get_edid +EXPORT_SYMBOL drivers/atm/suni 0xcff092b1 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xea58d93c uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0x33e71880 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x5c165453 drbd_set_st_err_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 0x0389f047 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x093ad7cd pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x41fe324b pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x45e5355e paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x4e9cfde0 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x62865433 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x76562bfa pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x7ed7fc9a pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xc3d03abf pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xe7083d0c pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xf39fe9a2 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xfb7d1eb4 pi_do_claimed +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4eb02672 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x59300cc7 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6a6cbbb5 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb60cc8b0 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc0bf7a66 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/edac/edac_core 0x49b1e301 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0x9446bf80 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0x97548815 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x10e38f4d fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x116e9cfc fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x38e697f9 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x41b774f9 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x47ce0ecf fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x49a29946 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4dbd96a3 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4ddf6bf4 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e86dd83 fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x64a34d85 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x69f1e752 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6cc2770b fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x724a21f6 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7254ba4f fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8173c369 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8dfad8f1 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9959dfeb fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xad734057 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb406cedb fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc37226ee fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc40d6ec5 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcdf8376d fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdc81b0a4 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe060c583 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf2bb7fe2 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf8f5e424 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfb7d648c fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02457e5b drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0264ca33 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x048a42a2 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04f83374 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a2f7063 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ab3817d drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e23123e drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e5f5713 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11b3c220 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x123b7f12 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x153b5196 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15b8b75f drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16dd2a93 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18424748 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1935b6fb drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19b4bc25 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1bbe4f8e drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d1c35c0 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x212a7f1d drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x239c2418 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2718dcae drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28d3ecd2 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c3b16b8 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c949560 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2dc5ec56 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x300449dc drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3007b10c drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30653c05 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3126580a drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3160ae12 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33e154ba drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3465ed3d drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36d8b50a drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x370bf2fa drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x374bdcab drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a2d6ce3 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ab43164 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3be0303b drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c078d65 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d6b3ab9 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ebcd672 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41469c24 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41fe8795 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x425c8322 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c3d0c0 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c9a91c drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x442a129e drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44ed0b39 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x466fbd57 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47b05e78 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x493f9fad drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4959fab6 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4990c4f2 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a69b0dc drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b32ea8b drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bc09a98 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dd58b7a drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dfb923b drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f802283 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5139354f drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x515d7d81 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5345f074 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x549b2c8d drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58b4ab4e drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a05ffe4 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a413f3d drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d413248 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e891806 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f098f77 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f6cbc33 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63ba5f95 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a905ba0 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b1ba35c drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b62a9c8 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e9da9ba drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6eb40768 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70466061 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x716aab9b drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x720d32cc drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73b4bf59 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73ef165e drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74663469 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7528c61b drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x762bdff0 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7936e139 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b5299de drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b5f2328 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d261ee1 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e2c2e0d drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ec61b7f drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80dc0513 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x841c47b9 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86136af0 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de309e5 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x906b1ec0 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x912c23fe drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x920eca08 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x928cf2c8 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92f2d102 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x932df43d drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93ad2c48 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95f3786e drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x978e651c drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dc25a34 drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fdf6b89 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa237e931 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3ffaf33 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa63066ad drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8942870 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8958ecf drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa943bac7 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa54231f drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa6d323f drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaaa98dc2 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac3c32d7 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac4c9714 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadc9c470 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf7d7f72 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf9a73ca drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0da14b6 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0e2494c drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1547381 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb243921d drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb813e7f5 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb88e7f34 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9aff33f drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd971599 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbde75858 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbea95544 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf2f8241 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3340df4 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc33f8fe5 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4a8c025 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4ba41d5 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc565a4ff drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc63b25e7 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc89c0b2d drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9adf2ec drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd09f4803 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1c4e4d8 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd411c811 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd432fd4a drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5a66d83 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6285149 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7f1ab84 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc34a269 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdccfd7cf drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd006ec4 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfd98fe3 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe256edfd drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3553657 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe45355c1 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe82392f0 drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8e83f72 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec349273 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed256cae drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed62a28d drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeea5475a drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0a0bf79 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3f038d8 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6f79cbf drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8fc0eb1 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9d89d9b drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfacd2072 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfacf9817 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc4f8599 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe9cc23a drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x09c84e7a drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x17eedfd5 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2ad8f093 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2cd5382b drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2e39418e drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x307e265e drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x35118fe5 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3aeb5737 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5879dab2 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5fa14976 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a1f6cbd drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ec6b463 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x70bd69f5 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x710b9ca9 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8afb4270 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8f85dc2d drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x927835e5 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x96546a71 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7459255 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa87808cf drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb6a2facb drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb753079e drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc9057da drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc48d1eb1 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc87866e0 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd3af0437 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdbd23f3e drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6fc7180 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf33c2c1f drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfccd1890 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe9a48c6 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x02edd7b9 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0312bc7d ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x045792d2 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x09b44e78 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x145e6a73 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a625f2c ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x21e9f0e1 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x232c40c3 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2494c82f ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25392771 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2873d64b ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b941579 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2fe2d921 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x30b8d75c ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32747e36 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34c269a1 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a39639f ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3db2df59 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x403825fa ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x46b73621 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4915fb8c ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x51f0203b ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x574cb9db ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x574f4169 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5e4ca968 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x65e6b4b3 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6622655d ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6891803f ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x68a07a58 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6a35f1c1 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6f1daaf0 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78e42455 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85477881 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86f81786 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x87f3c8b1 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8832162b ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88bed004 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e29981f ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x92da04e8 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabe23b3e ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb1480ae9 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4a78d92 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb6ecfb28 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbaa2b414 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc7412f16 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca89c4b5 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc404922 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd00c946f ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd07c8a83 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd19dbef8 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9e3bc31 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5417038 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf2eaa709 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe1ac491 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xff4e8129 ttm_bo_mem_space +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x3382675c vmbus_sendpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xbcee978d vmbus_recvpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x73bed2b6 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xb0c3f7fc i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x06edfeaf i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x57ab1b97 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x52408cae i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xa41612d4 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x37838b44 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x61f0aa61 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x8ed679ff rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xb93baf0d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc0bf4edc rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x05a126ff ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x05c31e2c ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0e4f0eba ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1b0d5e2d ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1b0db485 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3a9cddf9 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6258d828 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6bca778b ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x72ae83fa ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8568c216 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8b1ab379 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8b55d422 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x969f3890 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9e5c1924 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc93a4a3b ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdc5a1084 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf61c5bb0 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00e44f86 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01113b0c ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0139cf37 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027a16f4 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x02f58f95 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x037ba464 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0832b941 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09a4770f ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b6a3033 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b933f2a ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1180fb86 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a524410 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ec8ecee ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25359291 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27915aa4 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c4a1419 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2fd9e7dc ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x343ca702 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x36f513ab rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x38edd711 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39048ba4 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3d05501b ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f58ca2c ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40b7fb6a ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x42e1dff7 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x435d853e ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b4b2a7a ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4dba5690 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58b37e8f ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a67921b ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bccbe85 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5da273bc ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5f085a31 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fb9eba0 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65956b92 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65a6f609 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6772ed13 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d229e1f ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6dfa3626 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e7d5c89 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x70f0bf90 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b103f87 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f123d7d ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8505db8b ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8cd25bb5 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x962485bf ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9871bea1 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9fda4f8e ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa1992815 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa4d03598 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf522240 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1c6ac70 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4a8e4f9 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5b4c733 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb93318dc ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdfc5ffd ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc04ced3c ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc116b50d ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcadcf980 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcbca3e40 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcf5fed4f ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd682e0be ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc38e008 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe394e55f ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7755a43 ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7c99ab1 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec95dff7 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xee93e70b ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5e9caba ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf65a193d ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb318b3d ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb5dc00f ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbe81984 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x02e2e251 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2a6dc542 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3307c60f ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x33420505 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x40d0b9ce ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4fec5c3c ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x614e26dd ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x67e78878 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8909fb9b ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x94a9ebaf ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc59851d3 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd2707f00 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1135e9fb ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5245b4bf ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6e44fd9f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7357a854 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8001438f ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8c755f22 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc4d49a67 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc71b787e ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2046a9e8 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2253bbe0 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5f353756 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x74ae4d33 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa952da0e iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb68df82e iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc65fb881 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xece35f5b iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1089583f rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x12c2325f rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1850bdec rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1ec1d1af rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3097b702 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x52c1e141 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5958bba5 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x75d043c0 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7a020735 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8ebc95b1 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb0a11211 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbd606a8f rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcbf91796 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd1a4a014 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe3e7e413 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe48883d5 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe9efa3e5 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf0c3b4f1 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfe9a7cf9 rdma_resolve_addr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x065f21c6 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x10f0629d gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5ff4cc1d gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x6785ea81 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x71b74b28 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x73c7d1e8 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x885490a2 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb7ac2f4d __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbebb6369 __gameport_register_driver +EXPORT_SYMBOL drivers/input/input-polldev 0x45435249 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x97b1cb07 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xcd2f32f5 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf78164d3 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x00c32175 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x1b9c2f5c ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x42ce08fc ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xbe6a520f ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x19559b3e 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/sparse-keymap 0x36903791 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x692c5795 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7e401b3f sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x9cd8ee4b sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa21c42f0 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xfe91003b sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x822e9bcd ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbc9dc160 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf3bd1692 ad7879_resume +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0a1063dc capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0c7ef5ef capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5e227e0f capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6a4fc532 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa2facc7a capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xbf3ed1d6 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xcfc31bfa attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xeb7af5be capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xef2b3c68 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf1897a96 capi20_put_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x17000bac avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2475d654 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2650d3df b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x33d02e13 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3a66e28e b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x47cad96f b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4f8109a0 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x504a62fb b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x70686ded avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x78ce316d b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd66291ec b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd86f3c00 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe06edeef b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf7f1031a b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfdbc90b9 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x07e31b76 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1767e718 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x17d89396 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3d39c233 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3f8ee753 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7dc3bbb9 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb419c13b b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdd404c56 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdf5c43ec b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x5dc6fcd8 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x18b61056 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x385a553c mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x3db51101 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x416cd67e mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x20717264 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xa881b59b mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf5d70527 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x03ff7ea2 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4221de21 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x448370ab isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x6e8d801e isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xee945269 isac_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x4b4cb6fd isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x770fb5be isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa42c1c99 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0cb35694 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x14e788fc recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x22592673 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x28a90003 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x353bad1e create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x39e0ad80 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3b3c775b mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5b714d53 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x65941a09 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x67d04c1b recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6de6516f confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6f8d310f recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x78f9db64 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x862f20f6 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a56ec09 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc1df7037 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc89aeeef get_next_bframe +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 0xe7ed9a8c recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xee6ccbe8 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf2998cab get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfd7d6b08 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x5c04fd95 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x7a6bf2d3 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xc6e91f81 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xe52844df dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x29c597c1 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x58d670e7 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7ca55dae dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa99c3424 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xc13453bd dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xeb9471db dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/raid456 0x580e3852 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xf4650776 max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x22f9386d mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xab3d873e mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x8d19b878 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x8694c49b mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x06d45d2e mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x7a31e11b qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18212 0xb52910c1 tda18212_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0xaa75d98b tda18218_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x8b87aac7 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc4000 0x5b770271 xc4000_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x7457f84c xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x05ff5e2a flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0ace8282 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x220c058b flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2bc5481c flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4127573f flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x43e5f348 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4f934916 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b9283d5 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x61f952b9 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x773b8405 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7f97eb1e flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x955662f7 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9af4cc6c flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9b399c59 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb55c7e20 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc6971374 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcafe63fc flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xea8a6fe3 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfd7d838c flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfe9209c2 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x259ebc54 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xdc30110c bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xeade5c5b bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xf69abf59 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x2d56a96f write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x45ff98c6 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x63c883c0 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6eadd1f1 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x9a4b8567 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xac1f387a dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xdede0696 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xdfba6400 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe75f48db read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xf5e6a138 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x04a1d8ed dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x062a6035 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x13aa6846 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x144a7c7b dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15ebdde6 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x16a8c97b dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1e1ba523 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x29d87c35 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31b90c42 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3fdfb48b dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4020a61b dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x439aafab dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4f7ca31b dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5b12b6fc dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5bc5e9f5 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6ed167e9 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x78d10030 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7dfbe362 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7e99b5b9 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80b8c237 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x84ef9035 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8c054b71 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x999c261b dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa925a564 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xafd213ad dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc25ac681 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc4467a1b dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd78dd33b dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd8d7070b dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe40f246b dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe624aa93 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeb649694 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xef4d1389 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfe5d6f90 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0083c8fe dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x17d0a804 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x390c37bb dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x5c4cb7fe dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xaa5cc5b6 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd70ad39c dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf2cd0591 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xb38dd683 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x1a2f0b2c dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x29705039 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x64ae3a27 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8b14dd94 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8e6e0483 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8fea12d2 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xace2dc5b dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xaf31cdc3 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xba6e1d4e dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc6303bb6 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe310fdaf dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/a8293 0xcc815b4e a8293_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x1c97ec32 af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x9dc368a0 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xa87e0a2d au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x4ea90cdc bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xaaf58063 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xa7346094 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xe55aedfd cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x2037cb3b cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x6be815b5 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xa78fde4d cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x4e10ede9 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x75e8388d cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cxd2820r 0x014659fe cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x1685c3b0 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x3109dc47 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7dbd9b57 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xa810ac67 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xe07f7320 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x69729cfa dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x718accbb dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x75d0b23e dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7faceb71 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9a0a6d3e dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xaf93bce5 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb5d9e583 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc220297c dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc6dc9da7 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x922e776e dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2c94cfdb dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x37432b17 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x4b088e46 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6752fcf2 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf7cf3a80 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xfd5b5cfa dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x4dba9d24 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x94868d30 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x9ebd1cae dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xf2b50f59 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0149b2de dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x124631e5 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x26b7abd7 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2b63d9cd dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2d25bf0b dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x341a960c dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4c197c4a dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x63ebeb42 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x78bbf3df dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7dee147c dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb9ade253 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xca53589d dib7090_agc_restart +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xce8d99ad dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe0adb6fe dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xef770c85 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x18b51218 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x31a6c418 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x55d4cb0c dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x62870163 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x6ade5ec7 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x6e52e9d9 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8c228ec6 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x90ebb711 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9a25ef0d dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb0b6c5e3 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb5861da5 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xbe3f0d5a dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xde6990f0 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe40cd643 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x07780d60 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x36ae7e94 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3eee566f dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xa0c2c075 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xe600e65d dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x316f3942 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0xd683a1eb drxd_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/drxk 0x5fe643c2 drxk_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x69cfdb54 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xb6f46064 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0xa893f8f1 ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x4ca6904f isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xba1be48d isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x1a473710 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/it913x-fe 0xf628f630 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x7db61819 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0x7188bf8f ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x484ab8c6 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x582d6428 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x721d7cfb lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x3e2dc1cc lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x1488912e lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xeed15d89 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp22 0x5ff57159 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x1841956a mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0x84afec6e mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x5cd5f2fd mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xb9f85c75 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x3c761b8b nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x4ac1d167 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xa0319e1e or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x86841f49 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x226088d7 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x599501a0 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x2bf56b62 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xd6f94494 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x72247568 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x85c1612c si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x97a95123 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x3009f896 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x42a7d911 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x67ecc4e7 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xb710fc20 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xcfd9fcbd stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xa896159d stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xcd27f1dd stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x101626af stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x8adcbe80 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xf1436c18 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x38b63036 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x43177b45 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x2bddfe6b stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xcf31dddf stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xdda7d59f tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xa0133b39 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0xc87b53bc tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x2bab2ff9 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x4b926676 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10071 0x8f653109 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xf5b5723a tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0xbb0104ac tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x250d3d27 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x5abbc893 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x5467bdbb tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x2f20d522 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x5bd28a25 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x7c9e84d4 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x5d55a172 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x46f754b2 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x241552d4 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xea15dbab ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xcb81ac64 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xe046adae ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x098c27ac lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x11687ebc lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x70394862 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x787cb755 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xa0702d4b lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd62fff84 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf43d8b3e lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf4856989 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/rc-core 0x87f5bf93 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xa8525a28 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x54fc3ff1 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x74410477 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbad9144e bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xbbc17422 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xe011b08c btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x25fc952e cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x397633df cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x46f8c965 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x6b70bdb7 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xbcf8937e cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x25f2f2c7 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x709d08d5 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x0da7e7ff cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0x0e45778a cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x676ed443 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x7dc2bf3a cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xffb04ae1 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x2be0de7c altera_ci_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x722054ee altera_pid_feed_control +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xbd88ee9e altera_hw_filt_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x39853cc4 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x5ae8ae77 cx25821_dev_get +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x5e0a530d cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x80233582 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x82089eb7 cx25821_devlist_mutex +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xa6a96968 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xb75b4fe2 cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xe7830e95 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xfb8b1af1 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x637fa456 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x656f792d vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x0cb9508f cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x0eb0e580 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x5a9391e8 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x63a3f496 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x7c0e0bfa cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xdb989cfd cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x40bd8d26 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x4b819fbb cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x505ca56c cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x95449715 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc0e35353 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xdc793b94 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x01cc8945 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0b790537 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1e7a1328 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x26bdd805 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2f303618 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x64865d7f cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x68e2ea0c cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x70fdf1bd cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x71d9eacb cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x73b73741 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x74bbdc87 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7d27eb8c cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb5bb0f93 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc135adfe cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc6488bc2 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc65e8618 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcaf68c21 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd196784b cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdff3a380 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe4a0dcd5 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe764e2c1 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfc7b593f cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x46a4d41a em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xca3e610c em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x3fb32aa0 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x5abbe1a9 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x5da317e3 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa541f6db gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc4cca75a gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xcfac4d2a gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xff2c3093 gspca_resume +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x037363ce ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x1fbdf804 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2cb8c43b ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3548fc7e ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5e7d6c2a ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x82121637 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x8b5d8267 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa1d1cf66 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa925a39a ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc6b1fa89 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xdaf06727 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xfa2fb17b ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x02f8b466 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1ec93cd4 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x494effef saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5ede09d4 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x97d5079a saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa7c0adc1 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb5cbdbae saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb8911c54 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc8608d83 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd78b9e6f saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd83b7539 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf944686b saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/soc_camera 0x81903f16 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb4e62409 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0xc7887609 soc_camera_unlock +EXPORT_SYMBOL drivers/media/video/soc_camera 0xd9082b4e soc_camera_lock +EXPORT_SYMBOL drivers/media/video/soc_camera 0xe8621159 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xf4a8cce6 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x433952ab soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6951757b soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x85d52182 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xcb4b96ae soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x2f88bcce tm6000_register_extension +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x522b9e03 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xff734b3f tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/video/tveeprom 0x3632dad1 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0x9b9e791f tveeprom_read +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x614f0517 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x791ab099 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xbd09a62a v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc0699aac v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf052e6db v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x00156478 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x21c3732a v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xcc070ef2 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x207c372f videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x5e394c0e videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6fa79574 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa14c81e6 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xbb7186b8 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xd0441eda videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf2-core 0x2d6d6439 vb2_querybuf +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x06373eed video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x12726da8 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x15c894bc v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/videodev 0x1be2a75b video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x22c5adec video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/videodev 0x2dcd2e5b v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x31c0eaea v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x32fda310 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4d360cb9 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x6635e90a v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x69d39446 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x78bb66f0 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x7936d64f v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x79f1b7a5 v4l2_ctrl_del_event +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7ec6aee6 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/videodev 0x878d6ba6 v4l2_ctrl_add_event +EXPORT_SYMBOL drivers/media/video/videodev 0x91b1e615 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x96827c2a v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x9be72ff5 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/video/videodev 0xa0761a68 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xa6f22095 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xad1bf5bf v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videodev 0xbbf0e706 __video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xbc7cd04f video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xc5522fd7 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xc6c65b83 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xc93f22d9 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xcb96bcf3 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/videodev 0xceb27332 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xd0a683a0 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xd4bf05c4 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0xd99b07bf v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xda6dc93f v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0xdb3229be v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe12e18f8 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe3719f5c v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0xe734bd9c v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0xe83006ee v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xe9fd110f v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xf09c0c86 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf4d3333c v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xf8b09388 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x3ccf6fcd videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x6e3960f5 videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xa43cb33d videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xfe1e67d1 videocodec_register +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0cd36b97 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1414d47a memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x157d9e03 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3b42e677 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4ef31335 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x783c9b07 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8404eb8c memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x88e382ee memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb4fe4679 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xba3f1c42 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd3ddef93 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf65dc21a memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0771a559 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x08178cd1 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0be1273a mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1429d2c6 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1998398d mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1d3357cd mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x23477edc mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2695e34e mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x27788fb9 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x351458de mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x40e982e8 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b210c35 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5058c32a mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5e51f4d8 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6b1f2553 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x70fed702 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x78f2f273 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x897780ce mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8a419094 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9ebc03e1 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa20efb15 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xac8abfb1 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc466451c mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd2aa4098 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdad81cb7 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe1e25447 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe660ff0c mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf9d897f8 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xff1e2e0f mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0a54dc2d mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0e825ad7 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0eead3cb mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1475ca70 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x19c96d5c mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x283ceb12 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x306870e0 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3d3021e2 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x43462c79 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4b6b4934 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4b89c185 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x53a6d870 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x546481ee mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5b790ea1 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a38773a mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a477da0 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8a29cfcb mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9c84835d mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xabf1b808 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb4d5707b mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb61ac961 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb7ebab0f mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd8f0812c mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdb161ab9 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdfeebc8a mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf6aa842c mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfb066bdd mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x012aa840 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x17a62b6c i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x225cc5cb i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x30e6875b i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3238880f i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x408c0bbf i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5ac3d764 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5c6fd3b3 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5e8070f0 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x662e81d6 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x67c55400 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6fd301eb i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8169867d i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x90a3068a i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa187a00e i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa385ceff i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xaeac6a17 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb92d1355 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc73fef6d i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd0cf162f i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd48777dc i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe42945de i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x17bb1629 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x563ca9c6 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0a0f0fa1 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19f1f7a8 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x304d2b09 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x648f3e82 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7c8289a3 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x81e0f888 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x908760bc mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9bc42b70 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa83c26ee mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xad06449f mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb3dae053 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc60a9247 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfdc5799c mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/tps6105x 0x2a579448 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x42f76995 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x836815d8 tps6105x_get +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/misc/ad525x_dpot 0xc189e1e6 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xda093774 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x918d2319 altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x27571435 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xd2cd99c9 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x6a7e401b ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x715f8664 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x1b543855 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x1d2973fa tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x219358a6 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x316b219f tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x49823861 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x498c8544 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x598722a1 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x66332d9c tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9b6337b2 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xd3e475b8 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xdc9f5c0e tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xf0d3bef6 tifm_alloc_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x10f9acb5 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x5ba32d54 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x67be00ad cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd31839a6 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0de5457b do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x1addf817 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6b8e87a0 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xfc5d2816 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x6a6d9c6f mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x5a91a1ae lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x134e033a simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x15f06a48 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0x207297d0 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x049e890d nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x1395c823 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x2dcff858 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x81dfbadb nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xbdd2f1d3 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xca2a8d4e nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xd84c73a1 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x9a369c10 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xda4f36a2 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xfbc5eb0b nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x87767ecc nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xc8137b82 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5d203683 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x945ac612 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xd23099ce onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xf638e6ea onenand_addr +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x193c521e arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2abf0ae1 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2e7780bf arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa756154c arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa7bf7ee5 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xbed3cbd4 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc80136a5 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdf82eb32 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xec8cc1eb arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xef6f30d3 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3e461e94 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x7d494dca com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xc5838349 com20020_check +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1d8495b6 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1ee054c9 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x30d0b238 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3afaef2e ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x402f3e7f ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4efe93b8 ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6f6d2c3a NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa4d73787 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcef41e3d ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xde6c9b49 ei_open +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0x3eca30fc bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0x82a2deaf bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xf6b86409 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0a955f3e cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x20ed4735 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2a29da4b t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x422daf27 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x442afdde cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x53a40d4e cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7d412bdd dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x80876077 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x87b55cf1 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x99ea7ebc cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa6e9e532 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd0e21226 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe37f6025 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe7e7cfb3 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xeb4a8694 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xeea1bcfa t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x08ebff18 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1368cb40 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c3719fd cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3cb3f05e cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x40825fd2 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x46354f0e cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b78aa04 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5b01e926 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x680d264f cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbd4f18f3 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd6eaa5fd cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdf6120e5 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe26aaa71 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe2be6270 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeb28c104 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xef45edcb cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf3cbd995 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x118fe8d8 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x20aa8a04 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeaf357d0 mlx4_release_eq +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x09a73c21 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7c60dbbc hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x8ac6f720 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9ca96032 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xbc4dffd4 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x14999f83 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x36cf5705 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x40db35fd irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x65c4364f irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7c0b2345 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x871a3103 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9c97cc5a sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd1eb5704 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe63261d6 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xef1d34e4 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x139a1452 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xcb7263af alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp/pppox 0x3f6c4439 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x9373f82d register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xaf8c963a pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x3c63bbee sungem_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x579ce21e tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x78896df4 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xafeec4b7 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793 tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xcb9d01af tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf9ee5508 tmsdev_init +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0b1161a7 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x28982091 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3463cda9 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4bb9006a hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x749a152b register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8fb4f6e3 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x993d624a unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xab7aea8b attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb96fce2c hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcb8268ce hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe8217a84 hdlc_close +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xf0d91750 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x8079b4ad init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x9d39fddc stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xe8aa2c93 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00df8104 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x15068103 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x18f37b6e ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3531a9f9 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4b92cf55 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6290108c ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7275b527 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8bb0e4c8 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xee9b4f7e ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8ea16cde ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x981e2c6f ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa4acc20a ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd8454147 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x000ca65b ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02bdbfb0 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x048a9cb8 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12d60ec1 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x151a33d2 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15efbe99 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x16d56cff ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c3bb330 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1cbcfac9 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2261dd44 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23cad683 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x240ec1c5 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x243a8b13 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25aa9346 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2abb7bc0 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c892712 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40a25107 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4232cb04 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4503a27c ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4948adb9 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56f00c7f ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57d79d02 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5dd036ff ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65f29f79 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6709e65c ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x69d6e1a8 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b05440e ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e9c0bad ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73af3259 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7642393c ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77052013 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a9adf22 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c7c62c9 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7cf2fc65 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d3c7152 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80a2446e ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8112d2f1 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82c19092 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8377cc7c ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x84eb9e1a ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8541b975 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x86502f44 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8770d6c8 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94e49dbe ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x95440af7 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98dde9b9 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ae6ae0b ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa13bc971 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5e1b4bf ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab2a490a ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab36bfd0 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafb4b16b ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb32e5999 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6c39e8a ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb81cf26f ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9f10cb5 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbfb3975f ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc09769f1 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4ef0a6e ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6227d2c ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc66f330b ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc69e29b6 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc758496b ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca26511f ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcee7d3f6 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0d95d84 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0ffe049 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd26758b8 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd38448dc ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd50e2568 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5586882 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5a3868d ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd6add889 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd89e63f8 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9f68e66 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe15c135b ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe4a663d8 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe4c17d58 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5fce257 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe721cded ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea94b235 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec82376e ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee6690e4 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef5dc8cd ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9e1a322 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa3e594b ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfaee0d0d ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfea7280f ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/atmel 0x04192722 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x68801d50 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xfa881f81 atmel_open +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x42c81d55 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x8a4d4065 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x0b1dfa36 brcmu_pktfrombuf +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x147593b0 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x24c207fb brcmu_pkttotlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6db6b14f brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7887addf brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x96d32dd2 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9887fe0d brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa2253344 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xaca7f7ce brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb4d8644a brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb70916ce brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc2e1a845 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xdcf6d32e brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xeb7c7213 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x114c6a4f hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1e95a365 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x33ce4191 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x35440b3a hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x39feb333 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3e2d5a78 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x50d85915 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x54b28352 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x56c19103 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5adb622d hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x659fabad hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x826237ae hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8cc33290 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x910633bd hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa3713e06 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xab60ad5d hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xae8a4ac4 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb7f532a3 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb7fcf844 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbc1c773b hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbf7e8aad hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf11efb53 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf3884824 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf48fd912 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xff05d7c0 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x108ba35f libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2ba8d02f libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x42a55a66 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5013c6a0 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x65f63648 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x81db3cd9 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x84aa2608 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8e8a5ae7 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8ea54ae5 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x99bfe635 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x99f6acf8 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa3595e3a libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xafcb491a alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb7acfd92 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcad9a45b libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdf31f909 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe3044a42 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe318572c libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe35a9ee0 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe9db1820 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf4cea259 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x010ef093 iwl_legacy_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x07a52f14 iwl_legacy_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0c93c6f3 iwl_legacy_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0dc39744 iwl_legacy_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0deacb7e iwl_legacy_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0e02f438 iwl_legacy_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x13878738 iwl_legacy_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x14d71171 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x172d796c iwl_legacy_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x18cf2a36 iwl_legacy_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x197abdee iwl_legacy_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1dbbb0cf iwl_legacy_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1dd66f04 iwl_legacy_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x20795981 iwl_legacy_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x26da6e08 iwl_legacy_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x270039f0 iwl_legacy_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2a6ed4f3 iwl_legacy_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2a737c38 iwl_legacy_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2ca3564b iwl_legacy_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2ca4dff2 iwl_legacy_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3187a156 iwl_legacy_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x337ea1d8 iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3da2b07d iwl_legacy_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3e8e3c1e iwl_legacy_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x44746c4f iwl_legacy_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4b031203 iwl_legacy_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4b0e1ba8 iwl_legacy_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4e5709f4 iwl_legacy_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x556f8c73 iwl_legacy_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x56e5d52b iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5747e124 iwl_legacy_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5aa424a3 iwl_legacy_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x62ff5610 iwl_legacy_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6378be08 iwl_legacy_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x64097726 iwl_legacy_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6527e237 iwl_legacy_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0 iwlegacy_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x67452a21 iwl_legacy_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x674f5ec5 iwl_legacy_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6ae4ccbe iwl_legacy_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6ec8b6fd iwl_legacy_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x714affa0 iwl_legacy_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x73b534c8 iwl_legacy_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x782abb2d iwl_legacy_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x78453e87 iwl_legacy_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x785f0ea6 iwl_legacy_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7b4eb5cc iwl_legacy_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7eba0861 iwl_legacy_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7f7a5a68 iwl_legacy_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x80f70ff4 iwl_legacy_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x84125a63 iwl_legacy_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x84c98d14 iwl_legacy_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592 iwl_legacy_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9534d3d5 iwl_legacy_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9bef97e9 iwl_legacy_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa3558635 iwl_legacy_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2 iwl_legacy_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa629459e iwl_legacy_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa8f34945 iwl_legacy_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabe48768 iwl_legacy_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xace54013 iwl_legacy_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xae019207 iwlegacy_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xaffa2d36 iwl_legacy_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb6650f91 iwl_legacy_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbd391e64 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbdc8ff5e iwl_legacy_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbdeaf4bc iwl_legacy_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbe474120 iwl_legacy_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc0ff889d iwl_legacy_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc38a80d6 iwl_legacy_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc7f63366 iwl_legacy_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xca26013e iwl_legacy_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd063aa21 iwl_legacy_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd293234a iwl_legacy_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd3ba2a84 iwl_legacy_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd81ca81a iwl_legacy_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd87bde6d iwl_legacy_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdb1a7b41 iwl_legacy_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdc5dbfcd iwl_legacy_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xde62551c iwl_legacy_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe0f21a95 iwl_legacy_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xec3a69b9 iwl_legacy_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf0ad3158 iwl_legacy_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf13337b4 iwl_legacy_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf44bba16 iwl_legacy_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf617b2c9 iwl_legacy_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf6770119 iwl_legacy_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf7698b58 iwl_legacy_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf9936e3e iwl_legacy_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf9a50026 iwl_legacy_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfb65aa9b iwl_legacy_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfb6c357e iwl_legacy_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfd3436e5 iwl_legacy_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x07849596 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x1a260580 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x373f37dd __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x482aecd3 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x58e9338a __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8daa79ba __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xbb7e5c47 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xbff320f5 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf6765781 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0a3e0774 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x251c2954 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x25a59583 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x28db5388 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4e5f38dd orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5523fd46 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5531243d orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x56331af5 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5e4997e8 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7fde3ae0 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x88e64780 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d0b87b4 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa79680dc __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd905fe32 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd919aa2b orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xef1a9f2b alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfd07f050 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0876e1f8 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x10efdde8 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x153d205e _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2979a043 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2fd4c006 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x35c0766f _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3b9cf59d rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x40c505a2 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4167168f rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x429e250f _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4ed5a133 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x50b3f147 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x53f68a4a rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5c3de18d _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5f12cd75 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5f5acd90 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6712640a rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6ad8dc21 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x729f3a82 rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x80e63d80 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x88557140 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x90bf67af rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x928886ac rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x92e4418f rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x97c6be8f rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9ad7c4fe _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9c79fe3a rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaa3850e4 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xad9ea7eb rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb6120d40 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb69299fb rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbdc40b76 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd4d1312b rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd6ca9500 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xda61505c rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdc3f6bae rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xec31557c rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xecdd6824 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf26c31dd _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfa600686 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfbdb6e84 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xffeb6767 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0a8a7e2c rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x37753b99 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x43c9f633 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x44ec5a7b rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5422dd5f rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x55084c18 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x57f70401 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x740631c3 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x823db93e rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x83554fe8 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9d51c8c9 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc080ca2a rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc4baa87b rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc63f9729 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd3343a66 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xdefa6568 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe6161509 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xeba9cc10 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf1c23cf4 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf7645f21 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf7fee6af rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfd3f2438 rtl_pci_resume +EXPORT_SYMBOL drivers/parport/parport 0x0c642ab6 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x10d294ec parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x17288586 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x181aed97 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x26258408 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x3564d70b parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x42c59dff parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4eea72f2 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x4ff75ef6 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x54e755b9 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x5866fdc3 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x5be467be parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x623b9848 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x69b21168 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x6fff161d parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x717acb4b parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x72944e3c parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x78fb8c1b parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x9421603c parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xacb4bc50 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xb3a31b8e parport_read +EXPORT_SYMBOL drivers/parport/parport 0xbae3eb83 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xc083d265 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xc0a4e86a parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xd651de1b parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xd812ce97 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xf88b832b parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xfd04f26c parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xfdcdd6cb parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xfe1c24b2 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport_pc 0x553a5ef6 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xcaa4a1a9 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1d5ae2c4 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2d194b1f pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x520324c9 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5f3b6cc4 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7663506e pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x804b618f __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8abf698c pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8d29157d pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x916d33cb pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbdfdfd9f pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbe913f2c pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcac6cb6a pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcad3e9e3 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcba75143 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcd096be8 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcd4a961f pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd33f3f08 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd75f564c pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf943f28a pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x230daa7c pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x445c7e5d pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5b7b0111 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5e3df96f pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x698f5c33 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8e8b0156 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9270c110 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9b5d5d9b pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9e553e0c pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaa2a8638 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xce3608d7 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x96923f5d pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xb3cc8b0d pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x1544e07b pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0x49562d65 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xb195163c pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xc273ae09 pps_lookup_dev +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0b45b16e fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1c423db6 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x298e7f4e fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x691a915c fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x78c7e39d fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa8a7ad5f fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc7950177 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe923d425 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xeef2a2bb fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0357bd2d _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x11bfe4a7 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x140bc234 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1bb40eed fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x30abad59 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x38e1f307 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3b54013b fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3ba4c3fc fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3bcada69 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x46e6eb95 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x478cc877 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47f78f89 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x49dfb047 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ae12ef9 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54d052ac fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5a0aab93 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5d521886 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5f19858a fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x62bf929f fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67dbbc39 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e65eb7e fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76e658ee fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7927913c fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7b46fa69 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7b6bb7e5 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7cb68d9d fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8c51a545 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8fac9012 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9997d9d6 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f500931 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ffa8384 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3449423 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa866956a fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac3cfa46 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb24797c1 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb475ebee fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xba8accc6 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc00110eb fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc64443a6 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcedddeb1 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd39c5b22 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6030365 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd655783b fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde295164 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeef49ce0 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf2b6d4e1 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf2eae300 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf35724a9 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf810edea fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa4299ad fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xc4e6478d mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x04442bc8 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06c2960f osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x070f3a9d osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1f262439 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x256e0f40 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x26f9e2f7 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2c40e81a osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x30bb2368 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x35bb5414 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3f9b7c22 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x477c4847 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4ad02234 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4fe580a3 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x58ad95de osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x639a569b osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6422b165 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6541f6bb osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6f999a68 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x74f85a42 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7a5c761a osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7b777bf4 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x886c29b9 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8f449937 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x90bd939f osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9dd7f139 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa03a2048 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa56c86dc osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa689b4ac osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa8174178 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xab10f6f4 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc847d081 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc9c237e6 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd2852414 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe011e667 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfa0acfd4 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xff9d4144 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/osd 0x0787e4d7 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x1f2c096d osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3fd5ac6f osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6215bd4e osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x960f6971 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe37d3d4e osduld_device_same +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x610e622c qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x663355d8 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x681ef590 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb1e90a1a qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb5e4145c qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd682834a qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0xa9cd788c raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xb2a747e1 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xf5367c41 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1c84c0ce fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x23b2451f fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x26572002 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x44cc9b1a fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4b6f7902 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x530b4879 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7eaf8b33 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8d848ef4 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbc29e8ce fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc22491b3 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcf369d3c fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd9848a33 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfd6a0ca9 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x02b18c80 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0453a857 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x08d95576 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0963ccc0 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0c145a83 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x25a64623 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2bc0a19a sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2c5eff90 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3b062a9f sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3da031a8 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x42e57a9e sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4f663010 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5035ed87 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x64e9ffe4 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x64ef7828 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6853cc4a sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8e9c03ef sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x99c192eb sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa7ba5f72 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa9d51965 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb465ce46 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb9e873a1 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc4095db5 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe352cf85 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf310ccd2 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfd94afe6 sas_port_add +EXPORT_SYMBOL drivers/ssb/ssb 0x046d2b85 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x04e544b1 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x071209e3 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x08294a3c ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x0aaa31a2 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x28520bb8 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x3d2067e5 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x4b5b48e0 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x5c6a71bc ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x6891bd85 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x7d9b1d1b ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x9302aad5 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x990e564b ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x9fbc7e16 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xb2bde4fa ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xb4e57e13 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd74b2b31 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xe518797e __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xe5dbe6e7 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xe728e1dc ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xf2f44e1a ssb_bus_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x50f9ea78 comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x51d4aee7 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x54f466b7 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x6c21e90a comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x764bed55 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7e4a0390 comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x84c040b8 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa4aa1c32 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa8a06447 comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xcbd958d8 comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xcbe416b5 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb883517 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe98d82cf comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xeba26c2c comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xfd2cba3f comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x5ea9eac5 subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x6290cf9d subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x80e99596 subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xb91603f9 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x1a579634 cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x5d83282a cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xfb5698bb cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x00008788 mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x13c07d70 mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1badcbc9 mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1bd817f1 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1cc27600 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1d58180b mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1d8b002e mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x29da172a mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x30a9f4b2 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4b6cbbbb mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x67073909 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6d8379d0 mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x71d4d438 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x769a5a77 mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x83bf5f3e mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x986dacbe mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa389d4a6 mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xbf701126 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc508fdb6 mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf00f4c0b mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x420252b2 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xaa35206b subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xf117462f subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xf1a1c6e5 subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x768cc71a comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x2a2499f4 comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x2aa3ca5c comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x3dd62d9d comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x975c5a3d comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x98f19154 comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xdc703a31 comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x53658123 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x821c9b8d adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xbda47e0f adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xce0cd3dc adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0cc1fa85 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0d5ade69 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1f52c192 iio_buffer_store_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x246882d8 iio_buffer_write_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2b7144cc iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2ce30779 iio_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2dc1ab35 iio_buffer_read_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x323dd8ab iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x464c4627 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4c126d1f iio_buffer_show_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x52eec506 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x64933de5 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6e7a6f9b iio_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6eb75ca7 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x70955a8e iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x75083ceb iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7885aa00 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7bce51cb iio_buffer_read_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7ffe787b iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8bbe8dfe iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x95e50c9d iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x968d27d9 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbd1d5125 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd40850e6 iio_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdceb056d iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x104e0bf8 kfifo_access_funcs +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x389e855d iio_kfifo_free +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x459c9dc5 iio_kfifo_allocate +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x615d8c85 ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x8774146f ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0ea7b3d6 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3d9d35ec iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xf60efee1 ring_sw_access_funcs +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x821e4990 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x18ef0a8c go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x25a1f655 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x30689c93 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x5c67f7ef go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x7cd4b7e8 go7007_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xb57bec87 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xe536edf6 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xe90ac0aa go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xec5e3994 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x005804d4 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x01b0c50d ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x06231182 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08e54974 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0dafeba1 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0f1cf781 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x14dd9e46 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1541c35d ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x157c107d ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d0eb21c ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2144a637 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2406a25b ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x26d61591 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a401d08 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2f9659fd ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2fb20d32 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x31c2d62b ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3a0842df notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cce185c Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3ce089b7 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d4a6cda ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d63686f ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3f386086 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42b47981 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a7b0217 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50a09be8 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x529bac6c ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x54a6d452 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5c4c55a8 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6229741f ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x67bea3dd ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x67fb6da3 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6faabd43 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x72c65825 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7512c129 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f9e23bd ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fd8f14c ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x84c8d445 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x92dec59a ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x96874640 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x998d787e ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9ba7b88e ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa4662ef6 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8580110 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb09bfaec IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb5964450 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7888ad2 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbd45e645 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf8858a5 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbfa74731 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc62fd732 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xccc47aaa ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd43cdf63 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd6ce57d6 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe15cc7bb ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfefe6e3e ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x069587d3 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0a177485 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e802e5a vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ecac614 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x116d3fcb vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x124a65eb vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x140ce329 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x2e6dce5f vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x36bd2712 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x384ad1b7 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154 vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x466e47f5 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x5bb3a6ff vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x615aafc3 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x6793d5a3 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7754663b vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x895346e0 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9d279035 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xd2db9127 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe549d0d5 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xed48c1f3 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent +EXPORT_SYMBOL drivers/target/target_core_mod 0x0260c7ee fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x039ebb25 target_get_task_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x0a638643 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x0c7fda3e core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x0ed21a4d transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0x20d68222 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x294a2266 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x313de803 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0x36bee046 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x3823cda6 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x3e461e10 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a0961c9 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0x4bafc1bf fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x512ee5a5 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x5652381c fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x5820d53b iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x58d77155 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e4fcf69 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x66bc59b2 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x672b36d4 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x6a7dd0eb target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x794daa8f transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7af62048 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7eafbfe1 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7f5a755f target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x879cdf1d transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x8b6045ce transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x90af35fd transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x931bc68a transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x9515e7a3 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x9706a044 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x9a1885e6 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9a22c8d1 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x9e73ed9e transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xa19493b7 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xacea7507 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0xadb273b6 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0xadccb748 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xb1287168 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xb252ac20 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xb27902a4 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xb4d6b879 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xb551167d iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xb66cab68 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xb6c9caa0 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0xb9f8069e transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xbb04211d transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xc644af2f transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0xd0bf3825 transport_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd97fc772 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xdc9ce820 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xdce94c24 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0xe12f8abd transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xe523c0f9 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xe6ca9742 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xebdb9890 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xee47d3d3 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf0d7e892 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xf2536ccf target_splice_sess_cmd_list +EXPORT_SYMBOL drivers/target/target_core_mod 0xf797dbd2 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0xf92324c1 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/telephony/ixj 0xd033d7c3 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x8aaf69cb phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xad09504e phone_unregister_device +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x64efbf91 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x21156b80 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2134f2dd usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3739deea usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x40e3358d usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x491211ec usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x512e2fa6 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5dd8f30a usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x83eaa155 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9439c530 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbd966456 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc864fbfe usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd4d80c78 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe4a682e5 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe637b9e0 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf8890c32 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x694e5ba2 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x8f255153 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0xb878834d lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xb8cabfc1 lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x82188bde cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x31aeae23 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x453e545a display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x35a24d2c mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xa9b58ec6 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xb13f3ddd matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc1419d28 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x27c7705d DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x3d22da09 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x557b8535 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xd8bb34ea matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xd6f91929 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xf063df6c matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x0ea374dc matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x28198133 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x539c0fb9 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xa43a11cc matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xb43360a5 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xe328eef0 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x3af0b26d matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x63c75e6e matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x941a6506 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa477ba2b matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xeb0fa5bc matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0xe17a0e6c mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x966db137 video_output_register +EXPORT_SYMBOL drivers/video/output 0xb99d36fa video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x2f86dd8b svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x549b03a1 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x603fe811 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x9493b9c9 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf0b1cbc9 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xf6a5319e svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xf9e96137 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xffdad05c svga_get_caps +EXPORT_SYMBOL drivers/video/syscopyarea 0x63f185e8 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x90b5ba82 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x6198fe96 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xda10bc79 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xe2d10729 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x49f9e066 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6150a125 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb283487d w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe072bb22 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x0c17db5e w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x143e96b5 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x59717c94 w1_ds2780_io_nolock +EXPORT_SYMBOL drivers/w1/wire 0x41a911f0 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x5fe132e2 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xadd9bf30 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xebfb6729 w1_add_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x03038972 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x0f54139f config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x2129d055 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x23dac407 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x3b59f6b8 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x526ea1d9 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x7b6c6f20 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x93e7a3e2 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xa01178c2 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xad730225 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xb0d8e1dc config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xfbadcc80 configfs_register_subsystem +EXPORT_SYMBOL fs/exofs/libore 0x011500ad ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x13f61dd7 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x280b4bab ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x6f70d2c5 ore_write +EXPORT_SYMBOL fs/exofs/libore 0x8475dd0a ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x9d61cfca ore_create +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xb6c13ccc ore_remove +EXPORT_SYMBOL fs/exofs/libore 0xd0909881 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0xd6d38056 ore_read +EXPORT_SYMBOL fs/exofs/libore 0xeb58ff73 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0xffee3e86 ore_get_rw_state +EXPORT_SYMBOL fs/fscache/fscache 0x02616087 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0a3645b1 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x0b3bfbc8 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x1700e947 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x17a34d93 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x20a0b5d6 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x2dc2a62b fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x2ea14e05 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3c51089e fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x455594eb __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x5575a5ab fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x56547167 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x59e7be77 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x60b79d55 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x68446b95 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x733fa555 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x98a9fb6a fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x98adfed4 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb8d20901 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xc6130a98 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xc8d78c07 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xcceb3c43 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xd50f4d85 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xd53e0c83 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xd83740a9 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xd97b4457 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xe40e0e46 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xee321710 fscache_io_error +EXPORT_SYMBOL fs/nfsd/nfsd 0x01f7fba7 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x940bea20 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x089488b2 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x3a7c39c8 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x4b60cac3 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x9f05dccf qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xea3fe0a5 qtree_delete_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x3e77b340 crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0b8cd64b lc_get +EXPORT_SYMBOL lib/lru_cache 0x11eee1fd lc_changed +EXPORT_SYMBOL lib/lru_cache 0x28f9e0a2 lc_del +EXPORT_SYMBOL lib/lru_cache 0x2b057863 lc_find +EXPORT_SYMBOL lib/lru_cache 0x4bf46891 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x593c02b9 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x66102805 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x701077eb lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x8beca162 lc_set +EXPORT_SYMBOL lib/lru_cache 0x9d076b51 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0xc3aca114 lc_create +EXPORT_SYMBOL lib/lru_cache 0xdb6636f0 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xdd13ac3a lc_put +EXPORT_SYMBOL lib/lru_cache 0xf5a40297 lc_seq_dump_details +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x90b35e1e make_8023_client +EXPORT_SYMBOL net/802/p8023 0x98798152 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x01a97d21 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x02b4d307 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x0dfda9ec p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x2278e55e p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x233d8739 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x266a1273 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x279c5c18 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x31745dfc p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x33d71a42 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3674c6b5 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x3c1dadc5 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x4856b42e p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x4cffc4b3 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x4d2a6f63 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x5382d485 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x564cdedb v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x571e41f0 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x5a6f97a0 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x706248ed p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x722bc967 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x73a57a40 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x7584d71b p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x7621e02d p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x7675ef56 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x89d25f90 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x8cd23443 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x90a6322e p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x93f34410 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9ec3c313 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xa115ee4c p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xb2e35ccf p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xc06f289e p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xcc1288c7 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xd0832a8d p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xe06edf65 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0xe44c759e p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe5cfadfd p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xe5d82e53 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xef785934 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xf1499bc9 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfb5fef36 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xff1d235b p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xffc9a905 v9fs_get_trans_by_name +EXPORT_SYMBOL net/appletalk/appletalk 0xabc30b3d aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xd29bc432 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xe77f2492 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xfa3521c4 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x01ab8930 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3b7eaba1 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x48926bbf register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x4b72328e atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x6b5bfad0 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x7a597aee atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x93136f41 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb08462ec atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xb7eda8b9 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xd7e8febd atm_charge +EXPORT_SYMBOL net/atm/atm 0xdd81ec58 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xe65eda5d atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf8a8dc30 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xff7b6293 atm_alloc_charge +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x33d2a58f ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x55c32402 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x61cdc0bb ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x72ee297a ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xac7c02d7 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xb188b82e ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd3b9577b ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd4e54da3 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xd583ed73 ax25_linkfail_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x059ae654 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0b960034 hci_find_link_key_type +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1a8a2f0e bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1f3412fe bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x200826bb hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x23674162 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2f7057b0 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x31e730fe bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39e7c12c hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3c93b1bf hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3edeb3cc hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4165d14e hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289 bt_printk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6007e0a2 hci_le_ltk_reply +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6d15f274 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6e7c75ae hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74fa32a0 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7ea689e2 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x83f09ed5 hci_find_ltk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x845b0357 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x872549db bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x94cde110 hci_le_start_enc +EXPORT_SYMBOL net/bluetooth/bluetooth 0x972cafbf hci_le_conn_update +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa3eb24f3 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa777c7ef hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa81b8d00 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xac750c57 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb3a7d47f hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb7f57221 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb837fd0e hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc029e4af hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc59b5f42 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc6bbad10 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9e0abee hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd4034df0 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdb3bf34f hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe4a27421 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf3f1972e bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf462f30e bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf746309e hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf81e827b hci_alloc_dev +EXPORT_SYMBOL net/bridge/bridge 0x79dfa18a br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x2ca84797 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x504ebaed ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd479bdbb ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x10de0a1e caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x35b49017 caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x504da5e8 cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x5807d88d caif_free_client +EXPORT_SYMBOL net/caif/caif 0x63e9812a cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x6d89903b caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x96b9fc3f get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0xde51d1ae cfcnfg_add_phy_layer +EXPORT_SYMBOL net/can/can 0x0844b68c can_proto_unregister +EXPORT_SYMBOL net/can/can 0x353c0115 can_rx_register +EXPORT_SYMBOL net/can/can 0x40e0e69d can_send +EXPORT_SYMBOL net/can/can 0x53a9a3b6 can_ioctl +EXPORT_SYMBOL net/can/can 0xb06365ab can_proto_register +EXPORT_SYMBOL net/can/can 0xe7da80ca can_rx_unregister +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0d495c3e ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x0e0cdf09 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x0e3d0216 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x13ef55de ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1b939d76 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0x1c53b993 ceph_osdc_wait_event +EXPORT_SYMBOL net/ceph/libceph 0x1d4b1262 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x2c323949 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x2f0e7934 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x31e604e4 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x382c83aa ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3ad7ec64 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x40f01c24 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x423e248a ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x42570527 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x42657b17 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x476d4755 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x5162d5df ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x52cd5a17 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5cd578cf ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x66817731 ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x67f5cfbe ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x6d35019e ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x6e8d2017 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x73ab5bae ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x74daee66 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x75d4b7d1 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x78c7dfc3 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x82a4f9c7 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x8442293b ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x8a69b084 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x91742005 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x92f47242 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x9822c365 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x9b269bb6 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa0d1ff4e ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xa4aa8a62 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xa98924e7 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xa9d08f57 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xaaa0e2a3 ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0xadd6c6b0 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xaf8b9c84 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xafac9dc8 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xba95d3cb ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xbaab0568 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xbe90bbb4 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0xc0ae5a3b ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcc68152e ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xce8a7b16 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xd01b645a ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd64bec4b ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0xd831f2c4 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0xd85e3a20 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xdb394d8f ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xe2847c89 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xe2b9d0d0 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0xe66da465 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xe891b649 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xf84f3897 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0xfe89942d ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1421688a wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1cb7be66 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x363affd3 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5d16c508 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x67f56c00 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x81387647 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa7554cbd ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa7ee2607 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd29a2111 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd5b6b46b wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe2b0f096 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xeb4a1207 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xebe5fa21 wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x563a7358 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x6b058f2e arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xfcd5e55b arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x29264015 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x66eac8a7 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x67ff36c4 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x414c9a0e __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x619e670f nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8a11c711 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8b5c8888 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9d47eef3 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa265ca55 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xcc43eee2 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0x000112d1 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x4ed07962 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x005f0ed1 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x528a7d78 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x725de1ed ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9be50254 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x95039728 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xd4ce942f xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x740c6f90 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9c21b5ae xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5e9b5b64 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x61eb6a16 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7a435cbc ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9f7ac28c ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa37b3093 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbb84d97e ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc1cc105e ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe83eb20d ircomm_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x0078b773 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x01dbeb0e irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0bab6037 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23a2eee7 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x23c282a1 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x24754619 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x2cfac3f3 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x301601d0 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x359de411 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x36076393 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3b0a2ab6 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x3b9bdefe irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x428321fa hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x4594839b irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x48d17824 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x59979765 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x62acf28c irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x648c7478 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b830240 iriap_open +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x76d7dbed irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7d54adaf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x7ff509a2 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x8ca4854c irlap_open +EXPORT_SYMBOL net/irda/irda 0x8cd99be0 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x95ad6810 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9e326eb3 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x9ef24d1e proc_irda +EXPORT_SYMBOL net/irda/irda 0x9ff82298 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xa370c681 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xb1623b62 irttp_dup +EXPORT_SYMBOL net/irda/irda 0xb2ba46ae irlap_close +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0bee29c hashbin_new +EXPORT_SYMBOL net/irda/irda 0xc25daa33 iriap_close +EXPORT_SYMBOL net/irda/irda 0xc5d93e56 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xc5fa5039 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xc9334303 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xd0618ea0 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xd46cee7f irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe00a1f75 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xedb82b08 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xedf67230 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xfe2b91bc irlmp_open_lsap +EXPORT_SYMBOL net/l2tp/l2tp_core 0xca5b41b7 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x031154b7 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x18a535b5 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x7869ad1f lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x7de70a45 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x92db39dd lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xb9412b47 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xd3185834 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xeb72f6b9 lapb_disconnect_request +EXPORT_SYMBOL net/mac80211/mac80211 0x040cca28 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x05247095 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x0599e0e3 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x0c41d1de ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x0e0a219b ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x0ea08ba0 ieee80211_get_operstate +EXPORT_SYMBOL net/mac80211/mac80211 0x14eb0135 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x198e8d3c ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x214aaf0a ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x25aa7460 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x2a26d104 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x2a45a1c5 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x2b85c80d ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x447091c3 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x45798f9e ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x553d7678 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x55428a50 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x57571cef ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x575ebc91 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x631c67d3 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x63915eba ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x64bdf27f __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71 ieee80211_sta_eosp_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x6623d259 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x6ab374ee ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x6f2eddb2 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x6f4a08a1 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x8173a67e ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x84690ce6 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x84b3c8c3 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x881c2a4f __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x8e0228ad ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x91004301 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x957f5a94 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x9a595237 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xa5890bbf ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa620c941 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xa8404723 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa8c0798c ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaae01ff8 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xad6d4b3d ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb5b1bcd8 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xb64531c1 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xba06ba50 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xba0ccd80 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xba6b9f57 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xbc366f72 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xc2e9c744 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xc74bc32c ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xd7448e82 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xd9bcbb93 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0xda14c5a4 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xdbe01809 ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xdbebd61a ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe09462b9 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xe487a074 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0xfbe2042f ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xfe2d68fb ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xfef77f7e ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0xffc62e3a __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x029af6e2 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x13d7057b unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x15dc79d3 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1a966da2 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x213353e7 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2cae205f unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2e73ddd1 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x34ee61cf ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x62218e64 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6938df58 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6ea0d568 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb7f79c7a ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xce83c6c0 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcf562225 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7752c42c __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xa2c2630f nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xf954b65a __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xf367cf4f nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x2092adaf xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x57d34bd0 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x5cea57ca xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6b206cf0 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x73a84f99 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x7e99dc33 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc0acbd25 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xd0515c8b xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xe6b72098 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xf9c6897f xt_unregister_match +EXPORT_SYMBOL net/nfc/nci/nci 0x0def3c37 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x217fb2ec nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x47ea4614 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x9b47016c nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xdfd26539 nci_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x0b8ea6dc nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e nfc_printk +EXPORT_SYMBOL net/nfc/nfc 0x4df0579c nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x53a03f45 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x6f4c3adf nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0xc0c2fb1c nfc_alloc_skb +EXPORT_SYMBOL net/nfc/nfc 0xc1529457 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xc1f53c64 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0xeb842ea0 nfc_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x04c73a70 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x065dbc3c phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x54dbe59e pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x5e9022db pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x7d9d834c phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xa2687917 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xa57b4520 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xf0a693f4 phonet_proto_register +EXPORT_SYMBOL net/rds/rds 0x1c9be661 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x28710db0 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2d32fce8 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x49d19cfa key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x74b190d1 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x844ac594 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x896a0eab rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8a29b0bd rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9f6b62ea rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa24d1bd6 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb4f13b2e rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb5a44e8e rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbed6c625 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc6be8833 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd0d6414b rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfc1053f7 rxrpc_kernel_send_data +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8b784a93 svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x903e78c9 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x3b09e309 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x8fcb535e wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x04332f9f cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x044a752f freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x070d8c6b cfg80211_testmode_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0fa5baa5 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x16155a34 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x183c8365 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x195478a6 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x1de5ff58 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x2232ff85 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x224f3f31 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x28c3061a cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x40da4394 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x41cd79b2 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x45cf2555 ieee802_11_parse_elems_crc +EXPORT_SYMBOL net/wireless/cfg80211 0x478825ba wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x480af059 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x4897c2f6 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x492f4aa7 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x49d6763a __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x4d6a868c cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x4e9b18a2 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x4f657a12 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x5202cc99 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x525e641d wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x555bbaba ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x5be62ddd cfg80211_testmode_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x5cc95444 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6a3cf06b wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0x782e07a3 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7ed4e2f2 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7f9a10b3 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x806ea7df wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x814a4d94 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x85a4b4c6 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x86fa7cba cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x89a39685 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x8a5bb8dd cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9b7f1859 cfg80211_testmode_reply +EXPORT_SYMBOL net/wireless/cfg80211 0x9c93aa46 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xa1638bdb ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa313b5a0 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xaa337fa8 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xb2b56f3b ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0xb4b133a9 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xb63014cc cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xb9722c2d cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xba16aaea __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xbfcf33c9 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xdc90013b cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xdef495c8 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe14c19ad cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xe7edbb2d cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xec989b16 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xf0e20617 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0xf18fda84 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xf1973f9f cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf80e9a32 cfg80211_testmode_event +EXPORT_SYMBOL net/wireless/cfg80211 0xf924ad4c cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x623b3a62 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x7da0be40 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x8f071d39 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xb4a28f77 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xe3c78045 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xfdb9c9da lib80211_unregister_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x26c4fa1f ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x960f697f 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 0x39031e7b snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 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 0xaac5ab65 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xc3405bca snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xd99609c9 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x0526d593 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x560ee3d3 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2b51b084 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x350963b4 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7f62d029 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x83914b9a snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x92ee6bb0 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x9e7d3f0f snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbc141dfc snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf2bf1549 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x98f39a17 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x0262fe71 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x02d41784 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x067e2f35 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x168812e4 snd_pci_quirk_lookup +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 0x1f490b73 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x211e611b snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x243b95e5 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x26684f00 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x31edbb5b snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x33c8d68d snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x3565302d snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x3612df75 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x36fdfc5c snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x376ff649 snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3b2e0d45 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x3bfd2679 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x3c726ef3 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x585ce0ae snd_cards +EXPORT_SYMBOL sound/core/snd 0x590b85f2 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x5af8faf8 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x5f147098 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x64d106d4 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x694fe2f3 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x6a73210e snd_card_register +EXPORT_SYMBOL sound/core/snd 0x6c7c9599 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x724f0f28 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x763a9858 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x79e5a61f snd_card_create +EXPORT_SYMBOL sound/core/snd 0x7ab62475 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x7f0925de snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x8098dd20 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x82574d1e snd_info_register +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa055090c snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa1e5d2da snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0xa41a6c66 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0xb19c622e snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0xb1de692d snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xbc242909 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xc0bdb2d3 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xc2b2fbbf snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xcb42bc6e snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xd527f22a snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xd6a01c3d snd_card_free +EXPORT_SYMBOL sound/core/snd 0xd96010af snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0xdd08c2e6 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xee0b7ff5 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xf087963f snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xf3e2d1bb snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xf82d03f5 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xfb15618c _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd-hwdep 0xa6c0d5b2 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x402aef5a snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x7797a0e7 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x90b429de snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb0b352d6 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xe446f608 snd_dma_alloc_pages +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 0x0654840d snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0c69c8d1 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1f94024c snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x2343b458 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x2a306b40 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x2fe59ae8 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39231afa snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3d37dfeb snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x3d3ab6bd snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x454e1c59 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x45acc2da snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x46e119af snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x4cfafca2 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x551ce646 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x5d32edc1 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x61876ad8 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x65c3d1ff _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x661ebdf0 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x68d8a9a9 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x68db280f snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x69349c5e snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x697e5732 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x744b876e snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x765eac7a snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x7ad43b81 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x7d3a46a7 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x88f96e88 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x972dd30d snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xa0c0ecb5 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa8e3048c snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xa9adc229 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xb33c8f4c snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xb62bf6cf snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xcef0d2f3 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd1a5ca25 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xd1ea3563 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xd25401d7 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xe11b4c7c snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xe1ddc4b9 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xe271493d snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xf3410946 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf81b4fad snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xfaf3e907 snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0xff5ad4c1 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0e50a647 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1ad14a1b snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x360faa0b snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3f52ad8e snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x42afb5d7 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x63dcb773 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6b9a76da snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6e69df0b snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x73810561 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x73d22beb snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x76785ecb snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x876cbba8 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa03381ee snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcd766d40 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd5ce578d snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe4707ef2 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfb81f1fb snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-timer 0x0dd22a6a snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x16ef32b1 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x1b411acd snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x2ef98c6b snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x3d2a3cc6 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x5639a32f snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x6f18af42 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x8ec1a6f9 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x995ed398 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xd2aa526f snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xdf1a0042 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xf52ee459 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xfdee6df6 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 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xf831388c snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0bed39cb snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2b3252a0 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2f4bbe9f snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9dd24cc9 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa4e5f868 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa62cad61 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb2d73264 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc0fa04d4 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf1bbb1a1 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x13b03bc6 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x21ad9efc snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x30a6fa3c snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x413937bb snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4770e496 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x743b45f1 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb9d49bb0 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd6b53f49 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd77455dc snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0312f0c5 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2042ad78 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2435128d amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x267f524a amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2a4fc481 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3d2fdc0c cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x477744c4 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x49577a3a amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4eba05ce amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6ee80feb cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6ef18285 amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x839d2bfc fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x85183ef4 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8813f642 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb0202d35 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb959d7e2 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc1957cd4 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcb1b1d53 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd9a41b1c amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdc975aa9 amdtp_out_stream_set_rate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdd74bc7a rcode_string +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdfe3e5b3 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe3a2fcd0 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf94d1591 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xfb0c70d0 fw_iso_resources_update +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1527effa snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x2d521200 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5f2b3b8a snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8158858b snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xe7d1f53d snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xedb03bf2 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x09ec4a5b snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x2edc62a5 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x51922849 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6c1630a4 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd583033d snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xeb0a18bd snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x56f31924 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x5c0f4235 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xbec63921 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xdebcbde2 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x1c8dc955 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x7f07d68b snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x61a9495f snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x747385ea snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9d2d17f5 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xaaf6bb18 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xab71da53 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xc1aa1d24 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd175bba7 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-i2c 0x02701b38 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2c15cbe2 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x420b11bb snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x9a4c0395 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xbf6fabe4 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xd3fbecf4 snd_i2c_probeaddr +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x18692d0d snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1a74d96d snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x209f7921 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3dacf5a0 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x54ca2c16 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5ebdcc26 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x67a0c1ab snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x89bc2e67 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd54c53db snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf47a0cb8 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x31553c55 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x38549641 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x4775e243 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x142cabc1 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3180cb54 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4d140864 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5ce8ca6b snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x650e0110 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7215f482 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x76301c7e snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x80028a13 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x97f1758d snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xabcf49de snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc9d54179 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xce984f49 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xde506cf8 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xeec24656 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf25f4f79 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf5cf9c7f snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf6c468e2 snd_ac97_bus +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x669627c1 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2a00e770 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3555adb8 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x47066e60 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4a780c51 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x6904b64c snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x88959615 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xbd0691b4 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd9f604f9 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf2c6f0df snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x9729a752 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x2dd99576 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x3444952e snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xa3aa2bd8 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2498135c oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x25bcee43 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x33bbc963 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x35164d17 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3cc80cd7 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x43a57051 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x59a4293c oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5e97d073 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x742173e9 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8a5b8888 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x92976dcd oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa5de0231 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa7bade36 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa9e3d533 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xaaf8cc68 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc1194900 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc559e2f8 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcfc16712 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd02fba8c oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd8d16ee8 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfb70974c oxygen_write_i2c +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x58c491ac snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8612a671 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x9c8165f6 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xa6e120bb snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xc86d6023 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/soundcore 0x13a04316 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x5e2d5185 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xae11f596 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0xb7a76110 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0xc2e42d1f register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xdc99b78f sound_class +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x213b3e0d snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x3a53f4ec snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x3b633ed9 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4da6c4a8 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x890db834 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe332b2d5 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/snd-util-mem 0x112f6f42 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x11ee67d3 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1645d28f snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1d1d111d __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7c55ab0f snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7e71f7c7 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x988aefd6 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xdb1a0212 snd_util_mem_free +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x89154b8e snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x0ebd30bf dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x35c95b1b dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x58611cd7 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x86e5acf9 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa43471b6 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd55b290c dm_mem_cache_client_destroy +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x00471502 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x006642c4 bio_pair_release +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00820629 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x0083d0cd pci_iounmap +EXPORT_SYMBOL vmlinux 0x008bb9cb mark_page_accessed +EXPORT_SYMBOL vmlinux 0x00a8072b d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x00c35125 rt6_lookup +EXPORT_SYMBOL vmlinux 0x00d0517b max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x00dfa8cf pci_release_region +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01093ca5 cpu_info +EXPORT_SYMBOL vmlinux 0x0112d312 sock_no_bind +EXPORT_SYMBOL vmlinux 0x016a08fd rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x0177db33 blk_start_request +EXPORT_SYMBOL vmlinux 0x017ac0bd kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x018039e1 netdev_update_features +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01ab2691 unlock_page +EXPORT_SYMBOL vmlinux 0x01d0453e mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01da184b dev_set_mtu +EXPORT_SYMBOL vmlinux 0x01e799f9 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x01eafb8e dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x01eb36eb scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02230353 vfs_readdir +EXPORT_SYMBOL vmlinux 0x0223ea7a journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x02266ac5 ida_simple_get +EXPORT_SYMBOL vmlinux 0x022bad07 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x0243fc6b eth_header_parse +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0273607e neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x028cbd48 freeze_bdev +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ccdf filemap_fault +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e6147c jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x02f0d211 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x02f2f459 ida_get_new +EXPORT_SYMBOL vmlinux 0x02f82e47 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x0306f355 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x030b08cf scsi_ioctl +EXPORT_SYMBOL vmlinux 0x03122afb dmam_pool_create +EXPORT_SYMBOL vmlinux 0x03299f20 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x032ae922 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034f9e73 param_ops_byte +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x0359eed8 mdiobus_read +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0384e7d7 update_region +EXPORT_SYMBOL vmlinux 0x03923b80 __breadahead +EXPORT_SYMBOL vmlinux 0x03b580eb wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03d73545 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x03e2eb54 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x03f309c6 pci_request_regions +EXPORT_SYMBOL vmlinux 0x03f4c27c log_wait_commit +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0404fd87 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x04089aa1 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0x040f3d41 noop_llseek +EXPORT_SYMBOL vmlinux 0x041a905c kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x047f44d2 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0488c35c processors +EXPORT_SYMBOL vmlinux 0x04ac7127 bdi_unregister +EXPORT_SYMBOL vmlinux 0x04b47381 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04f6e0c4 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x05001abe ip6_frag_init +EXPORT_SYMBOL vmlinux 0x0503dbf8 pci_match_id +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0526027c netlink_broadcast +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x05475132 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x05635906 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x059763fd bio_map_user +EXPORT_SYMBOL vmlinux 0x05980b45 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x05e28d43 __first_cpu +EXPORT_SYMBOL vmlinux 0x05f267f7 genphy_suspend +EXPORT_SYMBOL vmlinux 0x05fbc772 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x05fceab8 pci_find_capability +EXPORT_SYMBOL vmlinux 0x0609cd39 netlink_unicast +EXPORT_SYMBOL vmlinux 0x061447f1 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061f4039 acpi_get_table_with_size +EXPORT_SYMBOL vmlinux 0x063157ed mount_single +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x06478e1f simple_transaction_get +EXPORT_SYMBOL vmlinux 0x064ea65c ns_capable +EXPORT_SYMBOL vmlinux 0x064f104f set_anon_super +EXPORT_SYMBOL vmlinux 0x06611311 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06a33098 mii_link_ok +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06d2f086 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07307cd2 devm_iounmap +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x073e580f scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x074d7707 lock_super +EXPORT_SYMBOL vmlinux 0x076ebea8 pv_lock_ops +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a4abdf dma_pool_create +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b25628 drop_super +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07ee2431 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x080b6615 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x081bfa92 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x081fde38 udp_seq_open +EXPORT_SYMBOL vmlinux 0x08273105 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x084b139d llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x084c33a4 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x086fd0f0 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x0895c794 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x0898a6ae mmc_register_driver +EXPORT_SYMBOL vmlinux 0x089ca286 __bio_clone +EXPORT_SYMBOL vmlinux 0x08bf826c _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x08d54781 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x08debff3 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x08e709fb neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x09319346 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x0944288f fb_class +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x0954bb71 journal_destroy +EXPORT_SYMBOL vmlinux 0x0964bcb2 boot_cpu_data +EXPORT_SYMBOL vmlinux 0x0976fe3d blk_peek_request +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x097f86d7 set_disk_ro +EXPORT_SYMBOL vmlinux 0x097fff5a pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x09844b1e pci_map_rom +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0992780d efi_enabled +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c5e574 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d52182 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x09f5559c nla_append +EXPORT_SYMBOL vmlinux 0x09fab72a scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x0a04a765 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x0a0ee690 bdi_destroy +EXPORT_SYMBOL vmlinux 0x0a1db16e register_framebuffer +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a267045 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x0a2ca3fb km_state_expired +EXPORT_SYMBOL vmlinux 0x0a46f52f tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x0a52ba64 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x0a5bd36d scsi_get_command +EXPORT_SYMBOL vmlinux 0x0a95a0d4 spi_release_transport +EXPORT_SYMBOL vmlinux 0x0aacd352 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x0abad3f7 override_creds +EXPORT_SYMBOL vmlinux 0x0ac705b5 consume_skb +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0adc2ecf pci_assign_resource +EXPORT_SYMBOL vmlinux 0x0ae84755 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x0aed3cf6 end_page_writeback +EXPORT_SYMBOL vmlinux 0x0b034022 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b355c00 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x0b36de01 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x0b45ae37 vfs_readlink +EXPORT_SYMBOL vmlinux 0x0b5db2ab scsi_host_get +EXPORT_SYMBOL vmlinux 0x0b7086d9 param_get_short +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bc87ca6 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x0be0ce41 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x0c16e3bc bio_put +EXPORT_SYMBOL vmlinux 0x0c2f577e vfs_fsync +EXPORT_SYMBOL vmlinux 0x0c5b8398 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x0c63a5ec seq_lseek +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c65f874 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x0c835f8b x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca34e21 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0d216c6c is_bad_inode +EXPORT_SYMBOL vmlinux 0x0d3aaf2b pci_scan_slot +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5af1ee acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x0d5b7d97 input_allocate_device +EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x0d6c76ce textsearch_register +EXPORT_SYMBOL vmlinux 0x0d781a57 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x0d94a0c3 inet_accept +EXPORT_SYMBOL vmlinux 0x0d97d433 bio_clone +EXPORT_SYMBOL vmlinux 0x0d9eb6a2 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db05bfa ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x0db8d35e proc_create_data +EXPORT_SYMBOL vmlinux 0x0e054dfa ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x0e0fbb02 request_key +EXPORT_SYMBOL vmlinux 0x0e27ca46 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x0e3003ba ip_route_input_common +EXPORT_SYMBOL vmlinux 0x0e3a050b uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e6dde1f mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x0e718923 single_release +EXPORT_SYMBOL vmlinux 0x0e87b5fc dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x0eb5ed5b mmc_add_host +EXPORT_SYMBOL vmlinux 0x0eba990a block_read_full_page +EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free +EXPORT_SYMBOL vmlinux 0x0ebf36ad sock_release +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0eea59d1 mnt_pin +EXPORT_SYMBOL vmlinux 0x0efcb41b dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x0f15983c pci_disable_device +EXPORT_SYMBOL vmlinux 0x0f1fe576 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x0f3de1bb phy_device_free +EXPORT_SYMBOL vmlinux 0x0f401b59 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x0f463532 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x0f469f52 d_find_alias +EXPORT_SYMBOL vmlinux 0x0f481c54 nobh_write_end +EXPORT_SYMBOL vmlinux 0x0f493722 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x0f52456a elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x0f525222 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x0f59f197 param_array_ops +EXPORT_SYMBOL vmlinux 0x0f6522ce ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x0f98b1d8 dm_put_device +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb0e29f init_timer_key +EXPORT_SYMBOL vmlinux 0x0fbef444 set_device_ro +EXPORT_SYMBOL vmlinux 0x0fcc242d ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fdd7295 simple_statfs +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff7e20e tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x10002103 dev_crit +EXPORT_SYMBOL vmlinux 0x1006a7cc __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x100fc2a8 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x101bfce4 address_space_init_once +EXPORT_SYMBOL vmlinux 0x102200a7 do_splice_to +EXPORT_SYMBOL vmlinux 0x102a225e spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x102fcb77 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x103c274d blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x10464b0f journal_release_buffer +EXPORT_SYMBOL vmlinux 0x106e7565 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x10784084 simple_link +EXPORT_SYMBOL vmlinux 0x10968445 d_alloc_name +EXPORT_SYMBOL vmlinux 0x10ab7e68 down_killable +EXPORT_SYMBOL vmlinux 0x10d8185e invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2eb76 vsnprintf +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11130269 read_dev_sector +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x11483aff vfs_create +EXPORT_SYMBOL vmlinux 0x115f2163 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x1161ca27 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x11633870 param_set_ushort +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x1168a459 wireless_send_event +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x117fd2d1 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a9940a sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x11b4e4e9 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11e3a449 pipe_unlock +EXPORT_SYMBOL vmlinux 0x11e9987d d_splice_alias +EXPORT_SYMBOL vmlinux 0x11eeb710 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x125209ef dma_async_device_register +EXPORT_SYMBOL vmlinux 0x12539da1 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x128a5cf9 complete_all +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12b9d02c nf_ct_attach +EXPORT_SYMBOL vmlinux 0x12c58de0 tty_register_device +EXPORT_SYMBOL vmlinux 0x12e2e114 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x12ecd3eb udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13162337 tty_set_operations +EXPORT_SYMBOL vmlinux 0x13171ef5 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x1318b5fd pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x13298e3c pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x134517a7 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x1357cbc9 ipv4_specific +EXPORT_SYMBOL vmlinux 0x1381986e posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x13acdbfb dcache_dir_open +EXPORT_SYMBOL vmlinux 0x13b43928 __kfree_skb +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13bc4a4e mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13de3ff5 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x13e3705d tcp_sendpage +EXPORT_SYMBOL vmlinux 0x13e38ed3 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x13ec80f3 param_set_short +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f955a5 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x143efc08 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x143fea32 page_readlink +EXPORT_SYMBOL vmlinux 0x149b183f rtnl_unicast +EXPORT_SYMBOL vmlinux 0x14a8c5c2 tty_port_close +EXPORT_SYMBOL vmlinux 0x14b3f32d netlink_set_err +EXPORT_SYMBOL vmlinux 0x14e0c1a9 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x14e7ca7c alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x14f0b4e0 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x15081b16 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x1518fe83 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x152ec87e alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x1535e463 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x153e405e dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x154ae073 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15561959 phy_disconnect +EXPORT_SYMBOL vmlinux 0x1565c29d seq_escape +EXPORT_SYMBOL vmlinux 0x1571a32d pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x158115b6 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x15abb924 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x15e9e4e8 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x15f24a78 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x15f5dad4 __f_setown +EXPORT_SYMBOL vmlinux 0x16028fac swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x1610de39 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x16162934 vfs_write +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x163994d9 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x16557650 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x165a15dc dquot_resume +EXPORT_SYMBOL vmlinux 0x1665a73b acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x167baf5d km_state_notify +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x1682f017 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x168f1082 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x16c42197 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x16d2994e d_invalidate +EXPORT_SYMBOL vmlinux 0x16e0aa4b in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x170f8e96 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x171c0df8 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x17341f98 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x173b1f30 posix_lock_file +EXPORT_SYMBOL vmlinux 0x1750e7b0 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x17744790 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x1790d76b _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x17ae7fcc dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x17b842f2 dquot_transfer +EXPORT_SYMBOL vmlinux 0x17d0dc41 __destroy_inode +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17ead4ae backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17fd1d45 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x180ab932 kill_block_super +EXPORT_SYMBOL vmlinux 0x1817236f destroy_EII_client +EXPORT_SYMBOL vmlinux 0x182f1e5b locks_delete_block +EXPORT_SYMBOL vmlinux 0x182f342f mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x18346395 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x183f4c48 sock_register +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184c6d11 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x1891217b get_write_access +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18a4bfcf pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18b8c902 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x18db443f fb_set_var +EXPORT_SYMBOL vmlinux 0x18e3cb2b jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x1911b26b simple_fill_super +EXPORT_SYMBOL vmlinux 0x19167241 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x1950bbc0 __serio_register_port +EXPORT_SYMBOL vmlinux 0x19521a22 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x1970da0e ida_remove +EXPORT_SYMBOL vmlinux 0x1972dead tcp_splice_read +EXPORT_SYMBOL vmlinux 0x198d544f module_put +EXPORT_SYMBOL vmlinux 0x1997e367 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a2916a mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x19a9e62b complete +EXPORT_SYMBOL vmlinux 0x19b16064 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19e9145d jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x19f1fc26 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x1a27a7c7 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x1a315f9d request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x1a33f2e9 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x1a4093db scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x1a4234e4 skb_find_text +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a6bee68 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x1a847ab6 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x1a8c8ec9 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x1aa16fd5 input_set_capability +EXPORT_SYMBOL vmlinux 0x1aabd101 sync_inode +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae14ef5 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x1af922d9 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x1b00e11b rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bc43271 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x1bccc5f1 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c23864c wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x1c5fc683 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c9382bd bio_kmalloc +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd0545f generic_file_mmap +EXPORT_SYMBOL vmlinux 0x1cd194ce mmc_can_reset +EXPORT_SYMBOL vmlinux 0x1ceb6564 journal_extend +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3865da param_get_invbool +EXPORT_SYMBOL vmlinux 0x1d3c908f neigh_connected_output +EXPORT_SYMBOL vmlinux 0x1db5dca1 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd95272 __break_lease +EXPORT_SYMBOL vmlinux 0x1df0e079 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x1dfb2728 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x1dffe7c4 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e072faf pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e0f9349 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x1e1b2f25 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x1e22c605 open_exec +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e2e427f cpumask_next_and +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eb21b7b idr_pre_get +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1edddad8 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x1eed451a max8925_reg_read +EXPORT_SYMBOL vmlinux 0x1ef1f75f posix_acl_valid +EXPORT_SYMBOL vmlinux 0x1f0a868d agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x1f18a8e2 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x1f4345fa jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x1f5fa20f create_empty_buffers +EXPORT_SYMBOL vmlinux 0x1f877adb compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x1f889dce phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fec49b8 touch_atime +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x200e0d29 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x2022582d elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x202a1f3b d_add_ci +EXPORT_SYMBOL vmlinux 0x202dc2a4 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x2082aed0 pci_ltr_supported +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x2091ae46 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20c09ea9 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x20c978f9 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x20df4354 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20f060d9 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x21038ecf lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x21145090 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x2116b347 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x211b3258 simple_readpage +EXPORT_SYMBOL vmlinux 0x213236bf skb_queue_purge +EXPORT_SYMBOL vmlinux 0x2155b3d0 netif_napi_add +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216322d9 skb_seq_read +EXPORT_SYMBOL vmlinux 0x2172b436 __scm_destroy +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x2199337a down_timeout +EXPORT_SYMBOL vmlinux 0x219b2f20 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x21c9a530 kernel_connect +EXPORT_SYMBOL vmlinux 0x21cd3af5 i2c_use_client +EXPORT_SYMBOL vmlinux 0x21d09c35 default_llseek +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21f0349c scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x21fb443e _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x2209942e nf_afinfo +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222ed0c2 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x22311f7c compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x224b6c39 do_splice_from +EXPORT_SYMBOL vmlinux 0x224ca2fd blk_put_request +EXPORT_SYMBOL vmlinux 0x22552be4 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x226522de kmem_cache_free +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x22809b41 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x229d7277 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x22a761e8 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x22aba223 dcache_readdir +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c156f0 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x22caa777 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x22ddd4b0 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x22f08bd3 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x231af1ac dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23207ee7 alloc_disk +EXPORT_SYMBOL vmlinux 0x23233026 get_user_pages +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23d2a3cd ether_setup +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24191cd2 init_net +EXPORT_SYMBOL vmlinux 0x242117c1 kill_anon_super +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24487ed5 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x244f8ace cdev_del +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24653c86 tty_throttle +EXPORT_SYMBOL vmlinux 0x24779fc4 clocksource_register +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x248c09a2 do_sync_read +EXPORT_SYMBOL vmlinux 0x249a0742 idr_get_new +EXPORT_SYMBOL vmlinux 0x24ad83d3 dst_discard +EXPORT_SYMBOL vmlinux 0x24ce91f0 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x24f169fc down_read_trylock +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250e4a89 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x251ae591 iget_locked +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x2528cb43 dev_addr_del +EXPORT_SYMBOL vmlinux 0x25353655 flush_signals +EXPORT_SYMBOL vmlinux 0x256c6e8f proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x258b8569 journal_force_commit +EXPORT_SYMBOL vmlinux 0x2599e92d dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x25b1b277 elv_rb_del +EXPORT_SYMBOL vmlinux 0x25b6c022 security_path_truncate +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25d4da12 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x25e61935 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x261c74d2 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x261d2993 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x262577d4 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x2630c370 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x26493e5a ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x264a877d inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x26770a3b remove_arg_zero +EXPORT_SYMBOL vmlinux 0x26815c5c __free_pages +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x26995422 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x26c02e7c input_grab_device +EXPORT_SYMBOL vmlinux 0x26cba92d iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x26db0e3e fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x26e521fb blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x270e1425 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x270ff375 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x271e87fc tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x27277915 vm_stat +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x2752f831 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x277012d9 seq_write +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x278ea6ac acpi_device_hid +EXPORT_SYMBOL vmlinux 0x278f810e d_genocide +EXPORT_SYMBOL vmlinux 0x2793216f uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x27ae7d0c ec_transaction +EXPORT_SYMBOL vmlinux 0x27b118a1 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27db6f01 netif_device_detach +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27e685f3 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x2805d4ed dev_close +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2826f53d sock_create_lite +EXPORT_SYMBOL vmlinux 0x28343bad scnprintf +EXPORT_SYMBOL vmlinux 0x2864f9ce blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x2878ce69 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x288093df may_umount_tree +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28adde63 fb_show_logo +EXPORT_SYMBOL vmlinux 0x28b0d5d1 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x28d481de pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x28fdf674 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x2900ba3f bd_set_size +EXPORT_SYMBOL vmlinux 0x2902a7f5 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x29119f44 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x2929f507 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x292bff2c inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x2930860b xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x293f383b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x294ae50e __napi_schedule +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29555186 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x2956d752 bio_free +EXPORT_SYMBOL vmlinux 0x296e60da mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x297e8a4a __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x2984c39c scsi_remove_device +EXPORT_SYMBOL vmlinux 0x29883873 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x29b96a8a inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x29e31d18 eth_type_trans +EXPORT_SYMBOL vmlinux 0x2a0428dd arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a50ad35 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x2a528f67 ip_options_compile +EXPORT_SYMBOL vmlinux 0x2a6448c7 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x2a69c771 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x2a7c6fef register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x2aa45ab3 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x2afbe27e bio_split +EXPORT_SYMBOL vmlinux 0x2b06f48b commit_creds +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0f4700 journal_start +EXPORT_SYMBOL vmlinux 0x2b1e724b shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x2b21a2c2 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b321ce1 vfs_writev +EXPORT_SYMBOL vmlinux 0x2b52a516 pci_iomap +EXPORT_SYMBOL vmlinux 0x2b6c1a21 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x2b733c20 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x2b815461 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x2b873ef9 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bd06f09 inet_frag_find +EXPORT_SYMBOL vmlinux 0x2bdfab72 journal_forget +EXPORT_SYMBOL vmlinux 0x2bf8d577 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c1e7c0c devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x2c231c04 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c2dd1f3 blk_delay_queue +EXPORT_SYMBOL vmlinux 0x2c7250d5 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x2cbeadc6 brioctl_set +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d192415 uart_resume_port +EXPORT_SYMBOL vmlinux 0x2d319e6b pci_disable_obff +EXPORT_SYMBOL vmlinux 0x2d4e951a ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x2d544659 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d579786 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x2d58d082 journal_load +EXPORT_SYMBOL vmlinux 0x2d6d3373 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x2d846459 vfs_mknod +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d913013 write_inode_now +EXPORT_SYMBOL vmlinux 0x2d99f762 mdiobus_write +EXPORT_SYMBOL vmlinux 0x2db4c99b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x2dc57231 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd7e68c bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df6394a tcf_hash_search +EXPORT_SYMBOL vmlinux 0x2df925fb dm_unregister_target +EXPORT_SYMBOL vmlinux 0x2e06111d cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2e1b26ee netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e59fc7a ab8500_gpadc_get +EXPORT_SYMBOL vmlinux 0x2e5bf196 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x2e687e6a set_groups +EXPORT_SYMBOL vmlinux 0x2e6ef054 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x2e7c3fea simple_rename +EXPORT_SYMBOL vmlinux 0x2e886a9e pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x2e8fd3af cdev_add +EXPORT_SYMBOL vmlinux 0x2e998baa node_data +EXPORT_SYMBOL vmlinux 0x2ea88519 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x2eadf68b search_binary_handler +EXPORT_SYMBOL vmlinux 0x2ebc633c netpoll_setup +EXPORT_SYMBOL vmlinux 0x2ecfcfd8 tty_kref_put +EXPORT_SYMBOL vmlinux 0x2edca8a0 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f0810a1 agp_bridge +EXPORT_SYMBOL vmlinux 0x2f0a74a7 elevator_exit +EXPORT_SYMBOL vmlinux 0x2f0cd41b dma_sync_wait +EXPORT_SYMBOL vmlinux 0x2f0e90a3 block_write_begin +EXPORT_SYMBOL vmlinux 0x2f12636f pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x2f31ec9a elv_rb_find +EXPORT_SYMBOL vmlinux 0x2f349981 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x2f460d32 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x2f68a43a generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x2f74b397 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x2f757ae7 account_page_redirty +EXPORT_SYMBOL vmlinux 0x2f7d6c18 set_binfmt +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fd97ac9 netdev_emerg +EXPORT_SYMBOL vmlinux 0x2fe6f38c inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x2fe7c61f __neigh_event_send +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x2ff08570 dev_notice +EXPORT_SYMBOL vmlinux 0x301f0f31 cdev_init +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x3029dfa4 tty_write_room +EXPORT_SYMBOL vmlinux 0x302c2433 netdev_info +EXPORT_SYMBOL vmlinux 0x3032758b __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x3067674f xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30a40642 journal_init_inode +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30b16b2d inet_stream_connect +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30d76f5f scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30f6cbc5 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x30f9942b security_path_chown +EXPORT_SYMBOL vmlinux 0x3106ec97 input_close_device +EXPORT_SYMBOL vmlinux 0x31139063 skb_store_bits +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x319a2e8b pci_pme_capable +EXPORT_SYMBOL vmlinux 0x31ace7a2 make_EII_client +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31c140a8 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x31d4fa64 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x31de5e13 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc +EXPORT_SYMBOL vmlinux 0x3210949e skb_pull +EXPORT_SYMBOL vmlinux 0x3211e32d give_up_console +EXPORT_SYMBOL vmlinux 0x3218aa6b nlmsg_notify +EXPORT_SYMBOL vmlinux 0x32204e64 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x322600cd dev_alloc_name +EXPORT_SYMBOL vmlinux 0x322b7e83 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x3232ccd4 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x32363688 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x323eaa6c bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x324c4f90 pci_pme_active +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x32687bb0 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x326a0227 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x328081ed mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x32a2975c i2c_master_send +EXPORT_SYMBOL vmlinux 0x32ac255a scsi_scan_target +EXPORT_SYMBOL vmlinux 0x32b6aa20 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x32b6bebf generic_block_bmap +EXPORT_SYMBOL vmlinux 0x32b82997 d_instantiate +EXPORT_SYMBOL vmlinux 0x32cea339 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x32eeaded _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x330e71e7 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x33228b9b vc_cons +EXPORT_SYMBOL vmlinux 0x33477d37 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x338822e6 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x338e1f21 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x33a59f3f idr_init +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33bbd04f __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x33df882b mdiobus_scan +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x341556d5 dev_uc_init +EXPORT_SYMBOL vmlinux 0x3452be5f md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x34596ebc mmc_card_awake +EXPORT_SYMBOL vmlinux 0x34646de3 mii_check_link +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x3483f355 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34de6984 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x3518450a kernel_getpeername +EXPORT_SYMBOL vmlinux 0x351ccdf9 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x35328466 seq_bitmap +EXPORT_SYMBOL vmlinux 0x35363b87 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x353a4b58 __put_cred +EXPORT_SYMBOL vmlinux 0x355fc1b1 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x35616ec7 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x35722bf8 bdi_register +EXPORT_SYMBOL vmlinux 0x357c90d2 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x35a18465 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x35b751b8 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35ca8cfa dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x35f5b6e7 udp_ioctl +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x36436131 bdget_disk +EXPORT_SYMBOL vmlinux 0x3651a2c3 security_path_mknod +EXPORT_SYMBOL vmlinux 0x36595c0c padata_do_serial +EXPORT_SYMBOL vmlinux 0x36822b70 __blk_end_request +EXPORT_SYMBOL vmlinux 0x36869a10 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36aad357 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36fe3165 pci_bus_type +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x371a5558 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x371b90e4 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x372fa873 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3752eb74 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x3768c488 mntget +EXPORT_SYMBOL vmlinux 0x376dfa42 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x376e6b3b neigh_destroy +EXPORT_SYMBOL vmlinux 0x379cede6 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x379f5837 param_set_invbool +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c9da92 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x37c9dd7e generic_show_options +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37eee0d7 simple_empty +EXPORT_SYMBOL vmlinux 0x37f42432 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x37f66e0f dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x37f76c10 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x38138bcd dev_get_stats +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38255799 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x38462bcd simple_lookup +EXPORT_SYMBOL vmlinux 0x384dbb5e textsearch_unregister +EXPORT_SYMBOL vmlinux 0x3862e837 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x387231a3 input_unregister_device +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38988b36 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x38a6963c tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x38b0f641 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x390c112f mmc_detect_change +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x393bf331 d_path +EXPORT_SYMBOL vmlinux 0x39514e99 ll_rw_block +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39a5305b scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x39bd35b0 register_qdisc +EXPORT_SYMBOL vmlinux 0x39f2aec8 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x39f6da8d tty_port_close_start +EXPORT_SYMBOL vmlinux 0x39f84119 lookup_hash +EXPORT_SYMBOL vmlinux 0x3a013b7d remove_wait_queue +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a177865 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a230eb3 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x3a26a3c4 block_truncate_page +EXPORT_SYMBOL vmlinux 0x3a2eeb24 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a415781 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x3a935c80 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9ba869 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x3aa9f98d __block_write_begin +EXPORT_SYMBOL vmlinux 0x3ab050f1 simple_getattr +EXPORT_SYMBOL vmlinux 0x3ab53640 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x3ac8e662 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x3adeb326 __sock_create +EXPORT_SYMBOL vmlinux 0x3adf5f0d sk_run_filter +EXPORT_SYMBOL vmlinux 0x3afb119f eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x3b29dce1 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x3b2d1367 phy_driver_register +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b349f66 __dst_free +EXPORT_SYMBOL vmlinux 0x3b3fcbd0 skb_pad +EXPORT_SYMBOL vmlinux 0x3b403acb __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x3b4569d1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x3b6a7423 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x3b701c95 sk_stream_error +EXPORT_SYMBOL vmlinux 0x3ba81557 input_register_device +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3befc801 idr_replace +EXPORT_SYMBOL vmlinux 0x3c0b4eee __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x3c151344 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x3c51a994 dev_err +EXPORT_SYMBOL vmlinux 0x3c6491ad generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x3c6c871f ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca67ae2 generic_setlease +EXPORT_SYMBOL vmlinux 0x3cad9072 lookup_one_len +EXPORT_SYMBOL vmlinux 0x3cbfa6ab setattr_copy +EXPORT_SYMBOL vmlinux 0x3cd04501 netdev_set_bond_master +EXPORT_SYMBOL vmlinux 0x3cd1b422 inet_frags_init +EXPORT_SYMBOL vmlinux 0x3cdb6e56 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x3cdbaa85 get_gendisk +EXPORT_SYMBOL vmlinux 0x3ce3bc4e end_writeback +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d05f8cd agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x3d1187f9 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x3d1511f1 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x3d21f0f1 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x3d243b38 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x3d481206 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x3d4dfc8f bio_init +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d93ee61 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da87dc3 dev_get_flags +EXPORT_SYMBOL vmlinux 0x3db91ee7 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x3dbf54ce blk_complete_request +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3de24a0f tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x3df11b4b napi_gro_flush +EXPORT_SYMBOL vmlinux 0x3df75eb7 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0e9023 param_set_long +EXPORT_SYMBOL vmlinux 0x3e19e2dc neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x3e1cc0c5 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e759d8f llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x3e7bcbe7 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ec24d57 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x3ec8886f param_ops_int +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee68766 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x3eee7a79 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f594cc1 ps2_command +EXPORT_SYMBOL vmlinux 0x3f969e53 input_release_device +EXPORT_SYMBOL vmlinux 0x3f9f868f __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x3fa58ef8 wait_for_completion +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fdf5efb rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ffff863 idr_find +EXPORT_SYMBOL vmlinux 0x4027b018 km_new_mapping +EXPORT_SYMBOL vmlinux 0x4029d238 param_set_copystring +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x40385847 generic_writepages +EXPORT_SYMBOL vmlinux 0x4047ba58 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x4049e49b pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40650f15 netif_skb_features +EXPORT_SYMBOL vmlinux 0x4067a4e9 write_cache_pages +EXPORT_SYMBOL vmlinux 0x40698fe2 da903x_query_status +EXPORT_SYMBOL vmlinux 0x407fa012 dump_write +EXPORT_SYMBOL vmlinux 0x408405ef tcp_make_synack +EXPORT_SYMBOL vmlinux 0x408cbe04 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40e7b60d tty_check_change +EXPORT_SYMBOL vmlinux 0x40f15905 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x41034c2b security_inode_readlink +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4142a8e8 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x4191de99 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x41b39ece generic_permission +EXPORT_SYMBOL vmlinux 0x41baee5e security_inode_permission +EXPORT_SYMBOL vmlinux 0x41e58f32 registered_fb +EXPORT_SYMBOL vmlinux 0x41fb8d3a dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x420b394b llc_sap_find +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x423027c0 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x42371f42 get_io_context +EXPORT_SYMBOL vmlinux 0x423c8628 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x42523420 phy_detach +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42ab51de __get_page_tail +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42cc9c4f locks_remove_posix +EXPORT_SYMBOL vmlinux 0x42d2f5de seq_printf +EXPORT_SYMBOL vmlinux 0x42f4001d dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430c6a86 vfs_stat +EXPORT_SYMBOL vmlinux 0x430d140c __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x431961ee __brelse +EXPORT_SYMBOL vmlinux 0x43221068 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x43292485 dump_trace +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x433b7762 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x435a9952 dev_mc_add +EXPORT_SYMBOL vmlinux 0x435bcf5e jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x438b3cc9 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x43918cd8 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x43988a03 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x43a0458b blk_start_plug +EXPORT_SYMBOL vmlinux 0x43ae47d0 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x43b7bb4f udp_proc_register +EXPORT_SYMBOL vmlinux 0x43bb7f72 generic_write_sync +EXPORT_SYMBOL vmlinux 0x43c96d0f genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x440fc375 tcf_register_action +EXPORT_SYMBOL vmlinux 0x4427a45d do_sync_write +EXPORT_SYMBOL vmlinux 0x44402b6f param_get_ulong +EXPORT_SYMBOL vmlinux 0x4444f5b2 user_path_at +EXPORT_SYMBOL vmlinux 0x444a7817 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x445226ac generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x446594a9 register_netdev +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c0b9d3 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x44df5cb7 inet_select_addr +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f1606d down_trylock +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x4523b35f register_filesystem +EXPORT_SYMBOL vmlinux 0x452ebe86 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4545ba46 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x454cb4bd i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4555e3f0 phy_attach +EXPORT_SYMBOL vmlinux 0x4559599b revert_creds +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4578661a _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x459c649a dev_printk +EXPORT_SYMBOL vmlinux 0x45bc813a dst_release +EXPORT_SYMBOL vmlinux 0x45bd9efd dm_table_put +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45dd527d inet_stream_ops +EXPORT_SYMBOL vmlinux 0x45e178e1 mount_ns +EXPORT_SYMBOL vmlinux 0x45e95876 user_path_create +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x46217fc3 migrate_page +EXPORT_SYMBOL vmlinux 0x4641fbbb inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x464c2870 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x46595c8a vfs_lstat +EXPORT_SYMBOL vmlinux 0x466856dd should_remove_suid +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4687ec62 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x46988da9 bioset_create +EXPORT_SYMBOL vmlinux 0x46a700d0 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x46b67693 hex2bin +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46d804d9 phy_device_register +EXPORT_SYMBOL vmlinux 0x46e06c5e swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x4705bbe9 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x478c9068 generic_removexattr +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x4792c572 down_interruptible +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x4793dee7 dev_add_pack +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47af38eb uart_suspend_port +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47beeb97 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47cd3ef5 nf_register_hook +EXPORT_SYMBOL vmlinux 0x47e3d238 file_remove_suid +EXPORT_SYMBOL vmlinux 0x47f83d8b alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x480e3433 phy_connect +EXPORT_SYMBOL vmlinux 0x480ff250 led_brightness_set +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486d2f29 dqstats +EXPORT_SYMBOL vmlinux 0x48799df3 mii_nway_restart +EXPORT_SYMBOL vmlinux 0x487d0a43 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x488d7777 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x488e97b5 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x489120c6 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x48a09c6f pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x48e3cc3d xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x48ea26d4 netif_napi_del +EXPORT_SYMBOL vmlinux 0x48eb0c0d __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49868be1 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x498b03f7 sock_map_fd +EXPORT_SYMBOL vmlinux 0x49a365ff __getblk +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49bdace3 md_error +EXPORT_SYMBOL vmlinux 0x49c06a5f pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x49c0b1ba i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x49ecb55b jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x4a0d25a7 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x4a218934 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a40c817 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x4a5c370e tty_register_driver +EXPORT_SYMBOL vmlinux 0x4a659278 netif_device_attach +EXPORT_SYMBOL vmlinux 0x4a95e04f bio_endio +EXPORT_SYMBOL vmlinux 0x4acc675f sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4adba250 __devm_release_region +EXPORT_SYMBOL vmlinux 0x4addb9c2 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x4af7944e dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b0beae2 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x4b2b91e3 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x4b2ed957 mount_pseudo +EXPORT_SYMBOL vmlinux 0x4b5814ef kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x4b585fa4 __alloc_skb +EXPORT_SYMBOL vmlinux 0x4b5a27f0 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x4b5bd83e unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b65d753 unregister_console +EXPORT_SYMBOL vmlinux 0x4b7c3a76 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x4b820588 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x4b8562de ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x4b9472f1 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x4ba1d5e3 blk_init_queue +EXPORT_SYMBOL vmlinux 0x4bafeb06 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x4bc4d5a5 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4bd204bf d_move +EXPORT_SYMBOL vmlinux 0x4bd4af7f inet6_ioctl +EXPORT_SYMBOL vmlinux 0x4bdb0f0d dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x4bdce86a kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x4bf79253 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x4bf7b27d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x4bfada3e submit_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c11ca9f efi +EXPORT_SYMBOL vmlinux 0x4c238583 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x4c2a9c35 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x4c3c24fa redraw_screen +EXPORT_SYMBOL vmlinux 0x4c471348 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c5a5862 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x4c5ea4e6 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x4c895b88 pci_save_state +EXPORT_SYMBOL vmlinux 0x4ca01952 input_set_keycode +EXPORT_SYMBOL vmlinux 0x4ca3220d sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x4cac03d3 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x4cb4f8c6 lock_rename +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4ccb9aac netdev_err +EXPORT_SYMBOL vmlinux 0x4cced2a5 try_to_release_page +EXPORT_SYMBOL vmlinux 0x4ceb2c2a pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x4d0b038d xfrm_input +EXPORT_SYMBOL vmlinux 0x4d1dd20a pci_select_bars +EXPORT_SYMBOL vmlinux 0x4d74c37c tcp_poll +EXPORT_SYMBOL vmlinux 0x4d7cf05d dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4da10f69 mddev_congested +EXPORT_SYMBOL vmlinux 0x4da7b48e tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dcdaccb ata_port_printk +EXPORT_SYMBOL vmlinux 0x4dd5856f lock_may_read +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e0dedf7 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x4e1db9d2 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e2401d5 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e43310a bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x4e4cd2cc scsi_register_interface +EXPORT_SYMBOL vmlinux 0x4e54af31 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x4e5bb30d input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x4e6834a8 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e84d1a9 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x4ea0ebff jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x4ecb67f9 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4edf2a04 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x4f0f7163 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2aef0c __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x4f3637b5 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f3939d2 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f547941 journal_ack_err +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f7845c3 invalidate_partition +EXPORT_SYMBOL vmlinux 0x4f882302 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4f90b90c dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x4fafea23 mmc_erase +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x4ff8d3f9 serio_rescan +EXPORT_SYMBOL vmlinux 0x5016e976 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5043638b tcf_em_register +EXPORT_SYMBOL vmlinux 0x5044529e tty_free_termios +EXPORT_SYMBOL vmlinux 0x5045c392 dev_addr_add +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505ce868 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x50720c5f snprintf +EXPORT_SYMBOL vmlinux 0x507cb6b1 input_get_keycode +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50b103cb thaw_process +EXPORT_SYMBOL vmlinux 0x50bf03a4 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x50d58b8a generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x50e5f574 dquot_release +EXPORT_SYMBOL vmlinux 0x50f0728c pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x5103f282 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x510c2535 xz_dec_run +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x511d7ade dentry_path_raw +EXPORT_SYMBOL vmlinux 0x5156fb2c file_update_time +EXPORT_SYMBOL vmlinux 0x516c8a9f seq_release +EXPORT_SYMBOL vmlinux 0x518267b8 stop_tty +EXPORT_SYMBOL vmlinux 0x51864686 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e76aae __napi_complete +EXPORT_SYMBOL vmlinux 0x51f46518 pci_dev_get +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x52201839 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x5240ef38 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x52437236 udp_disconnect +EXPORT_SYMBOL vmlinux 0x52451419 journal_create +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x5291bf00 journal_errno +EXPORT_SYMBOL vmlinux 0x5295f485 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x52a75a35 vfs_llseek +EXPORT_SYMBOL vmlinux 0x52c9bfe5 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52de37c0 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x52f04667 save_mount_options +EXPORT_SYMBOL vmlinux 0x52f49a98 bio_alloc +EXPORT_SYMBOL vmlinux 0x52f99842 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0x5305e3a9 key_put +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531a0497 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x532a2e8b scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533ff317 tty_devnum +EXPORT_SYMBOL vmlinux 0x536535a2 mdiobus_register +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5383f34b _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x538e5eb0 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x5397f2d3 posix_acl_init +EXPORT_SYMBOL vmlinux 0x53c170ff xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x53c597f5 console_start +EXPORT_SYMBOL vmlinux 0x53cf5aba flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x53f04062 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x53f2ef10 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x54152e04 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x542a076d inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x542e7ea4 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x5437f166 set_pages_wb +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544cf343 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x545494d3 lease_modify +EXPORT_SYMBOL vmlinux 0x545608b3 agp_copy_info +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x5477a8a1 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54b3ceda xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f4a935 padata_free +EXPORT_SYMBOL vmlinux 0x54f6eb98 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x551cefd3 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x55260f11 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x554f8630 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x554faf9a dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x5557a2f6 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x55678b4b bsearch +EXPORT_SYMBOL vmlinux 0x5585007e scsi_print_command +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a1bd6f compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x55bdfd85 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x55cd4b30 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x55da892f lookup_bdev +EXPORT_SYMBOL vmlinux 0x55ddca15 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x55e310ef devm_ioremap +EXPORT_SYMBOL vmlinux 0x55f59cf6 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x55fd5e49 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5614f9d0 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563de0fd dev_addr_flush +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x565ed8d6 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x5661ec63 _dev_info +EXPORT_SYMBOL vmlinux 0x56645e71 sock_wake_async +EXPORT_SYMBOL vmlinux 0x569dd2ce padata_start +EXPORT_SYMBOL vmlinux 0x569f1114 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56fb9af3 proc_mkdir +EXPORT_SYMBOL vmlinux 0x57129b59 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5739627a __ht_create_irq +EXPORT_SYMBOL vmlinux 0x57523e5b netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x575658fb tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57649d4d sock_i_uid +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5787de25 agp_create_memory +EXPORT_SYMBOL vmlinux 0x578a3b59 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x578cab1a unlock_rename +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57c2372a test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x57ccca90 journal_init_dev +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e36d01 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x57ec9e1c locks_init_lock +EXPORT_SYMBOL vmlinux 0x57f66477 register_cdrom +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583b433a pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x584bdb7a compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x5867024b generic_file_fsync +EXPORT_SYMBOL vmlinux 0x58853206 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x589a9b48 amd_northbridges +EXPORT_SYMBOL vmlinux 0x589b9b2b mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x58a44e0e tr_type_trans +EXPORT_SYMBOL vmlinux 0x58ce4e2c dev_uc_add +EXPORT_SYMBOL vmlinux 0x58d7321c scsi_finish_command +EXPORT_SYMBOL vmlinux 0x58eb73e4 skb_queue_head +EXPORT_SYMBOL vmlinux 0x59099895 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x592ef220 noop_qdisc +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x595eed24 fb_blank +EXPORT_SYMBOL vmlinux 0x597d85f1 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x598076d9 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x598c8eec mmc_resume_host +EXPORT_SYMBOL vmlinux 0x59a9131a dma_ops +EXPORT_SYMBOL vmlinux 0x59b5671c tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59bd8809 block_commit_write +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5a075503 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x5a2aa62e __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a36d6c3 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x5a3eb0e6 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x5a443672 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a58a9cb sk_reset_timer +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a7258fd __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7edeb1 single_open +EXPORT_SYMBOL vmlinux 0x5a83253f nf_log_unregister +EXPORT_SYMBOL vmlinux 0x5aac8e65 led_blink_set +EXPORT_SYMBOL vmlinux 0x5ab00f8e dev_get_by_index +EXPORT_SYMBOL vmlinux 0x5abf2e6f md_flush_request +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5af2be63 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b67d395 d_alloc_root +EXPORT_SYMBOL vmlinux 0x5b935090 key_link +EXPORT_SYMBOL vmlinux 0x5ba886d8 dquot_enable +EXPORT_SYMBOL vmlinux 0x5bbfadb2 datagram_poll +EXPORT_SYMBOL vmlinux 0x5bda45c4 misc_deregister +EXPORT_SYMBOL vmlinux 0x5c096a60 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x5c260ece dev_deactivate +EXPORT_SYMBOL vmlinux 0x5c3389c1 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x5c3d4a96 set_trace_device +EXPORT_SYMBOL vmlinux 0x5c3edd59 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x5c64429d ifla_policy +EXPORT_SYMBOL vmlinux 0x5c76698a bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x5c938962 ip_defrag +EXPORT_SYMBOL vmlinux 0x5ca3f043 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5cd853b1 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x5cdeac09 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x5cdee4b4 scsi_register +EXPORT_SYMBOL vmlinux 0x5d062e09 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x5d1f059f __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x5d2cc1a3 path_get +EXPORT_SYMBOL vmlinux 0x5d55308c kmem_cache_size +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6efd5f dqput +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5da06af2 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x5db45593 ip6_xmit +EXPORT_SYMBOL vmlinux 0x5dbf99ed input_open_device +EXPORT_SYMBOL vmlinux 0x5dc10aa0 deactivate_super +EXPORT_SYMBOL vmlinux 0x5dce6b75 complete_and_exit +EXPORT_SYMBOL vmlinux 0x5dcfdf1f setup_arg_pages +EXPORT_SYMBOL vmlinux 0x5dd70cb0 unregister_key_type +EXPORT_SYMBOL vmlinux 0x5dfede66 del_gendisk +EXPORT_SYMBOL vmlinux 0x5e05b189 key_type_keyring +EXPORT_SYMBOL vmlinux 0x5e3820d9 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x5e3c65ce blk_register_region +EXPORT_SYMBOL vmlinux 0x5e4ce92d tty_mutex +EXPORT_SYMBOL vmlinux 0x5e59d016 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e8e318c padata_do_parallel +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ea5040d padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ebf0cc3 iterate_mounts +EXPORT_SYMBOL vmlinux 0x5ecc411b may_umount +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed24918 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x5ed7fec3 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5effd679 pci_enable_device +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f240626 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x5f27544a mempool_destroy +EXPORT_SYMBOL vmlinux 0x5f493583 __inet6_hash +EXPORT_SYMBOL vmlinux 0x5f4953ea icmp_send +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f659019 llc_add_pack +EXPORT_SYMBOL vmlinux 0x5f8a65a4 dentry_unhash +EXPORT_SYMBOL vmlinux 0x5f99776f tty_shutdown +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fb9b6e8 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x5fc5ba78 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fe41fb6 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x5feaf515 I_BDEV +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x6048cb05 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x60509e13 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x6057d92d truncate_setsize +EXPORT_SYMBOL vmlinux 0x6060a576 __register_binfmt +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6078e0e0 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x60844346 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b2e38a rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x60c7c307 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61272e82 serio_close +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612b48db fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x6171ab05 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x617d0e46 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x619ae73e tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x619b187b add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x61b5ade0 down_write +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61bbbfbe blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x61c64dc1 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x61fe076b jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x620000b6 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x621c59e0 do_truncate +EXPORT_SYMBOL vmlinux 0x621d77a0 sleep_on +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622fa02a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x624ee673 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x629b3920 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x629f2b47 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0x62a41d50 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x62b21b6e generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x62c3f5b8 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x62c59887 get_fs_type +EXPORT_SYMBOL vmlinux 0x62cb4cee interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x62e69ac6 ppp_input +EXPORT_SYMBOL vmlinux 0x62fa4fde mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x6329ed94 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x6332cc1a audit_log_start +EXPORT_SYMBOL vmlinux 0x63371acc skb_copy_expand +EXPORT_SYMBOL vmlinux 0x6337dfce ab8500_gpadc_convert +EXPORT_SYMBOL vmlinux 0x6340bc71 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x6348b176 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x63608fb7 skb_trim +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63855ca4 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x639064a2 request_firmware +EXPORT_SYMBOL vmlinux 0x63b3406c gen_pool_free +EXPORT_SYMBOL vmlinux 0x63b92975 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x63b97703 simple_release_fs +EXPORT_SYMBOL vmlinux 0x63e1ba05 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x63e86dfe scsi_unregister +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64069a4b intel_gtt_map_memory +EXPORT_SYMBOL vmlinux 0x6433092d xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x643eaec8 param_get_string +EXPORT_SYMBOL vmlinux 0x644200c3 new_inode +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6455aa76 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64dd995c mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64eb3d5b unlock_super +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651dc55f md_write_start +EXPORT_SYMBOL vmlinux 0x65220759 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x65291cff timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0x65312bd3 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654e19bf scsi_host_put +EXPORT_SYMBOL vmlinux 0x6555bc38 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x656a477c __lru_cache_add +EXPORT_SYMBOL vmlinux 0x657879ce __init_rwsem +EXPORT_SYMBOL vmlinux 0x65799717 register_xen_selfballooning +EXPORT_SYMBOL vmlinux 0x65881c10 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x658d5735 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x659f7453 vm_insert_page +EXPORT_SYMBOL vmlinux 0x65adc26d netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x65c9fa79 skb_make_writable +EXPORT_SYMBOL vmlinux 0x65d2270b thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x65d6fc13 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65f28cac xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x661adfd1 sock_rfree +EXPORT_SYMBOL vmlinux 0x664f9b37 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x665f666d tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x66846ed3 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x668522b7 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66a6cfed ida_get_new_above +EXPORT_SYMBOL vmlinux 0x66af865a tcf_hash_check +EXPORT_SYMBOL vmlinux 0x66b0ab27 pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x66ce36fa write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66d35dad pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x66dc7389 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x66ed5e6a xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x6738db53 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x678d4a22 register_key_type +EXPORT_SYMBOL vmlinux 0x679f6fd6 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c48c39 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x67e28cf7 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x67f6c0a7 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x67f7403e _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x67fd906d nla_reserve +EXPORT_SYMBOL vmlinux 0x681be8d0 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x6829796b mb_cache_create +EXPORT_SYMBOL vmlinux 0x684c3e61 __cleancache_flush_page +EXPORT_SYMBOL vmlinux 0x6854d6e1 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x6858a49a sync_blockdev +EXPORT_SYMBOL vmlinux 0x6862f8f4 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x688b453a tty_unthrottle +EXPORT_SYMBOL vmlinux 0x689005af nf_hook_slow +EXPORT_SYMBOL vmlinux 0x68ae7db1 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x68b6fe12 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x68cec54f inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x6913e81b inode_add_bytes +EXPORT_SYMBOL vmlinux 0x6918f3db journal_get_write_access +EXPORT_SYMBOL vmlinux 0x69266afd security_task_getsecid +EXPORT_SYMBOL vmlinux 0x69284d16 pipe_to_file +EXPORT_SYMBOL vmlinux 0x692a46c0 pci_biosrom_size +EXPORT_SYMBOL vmlinux 0x692f84ea dev_activate +EXPORT_SYMBOL vmlinux 0x69382178 input_event +EXPORT_SYMBOL vmlinux 0x6957c326 send_sig_info +EXPORT_SYMBOL vmlinux 0x6960669e truncate_pagecache +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6983ddb0 key_revoke +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x6999c138 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a29431d i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x6a47cf20 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x6a48e16b percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a8d30de balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x6aa96b00 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6adc1fd1 km_policy_expired +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6b02f395 thaw_super +EXPORT_SYMBOL vmlinux 0x6b07e245 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b477408 sget +EXPORT_SYMBOL vmlinux 0x6b5b78d4 ihold +EXPORT_SYMBOL vmlinux 0x6b82b90e blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x6b90fca9 pci_enable_ido +EXPORT_SYMBOL vmlinux 0x6b9e7529 udp_prot +EXPORT_SYMBOL vmlinux 0x6ba1322c ps2_end_command +EXPORT_SYMBOL vmlinux 0x6bb428fe scsi_execute +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6beb50d9 unlock_buffer +EXPORT_SYMBOL vmlinux 0x6c245af1 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x6c2d398e vfs_unlink +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c51c453 ida_init +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c64b284 __dev_printk +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c7cf6ba scsi_free_command +EXPORT_SYMBOL vmlinux 0x6c7f2462 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x6ca27f64 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x6cde0e18 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x6ced40ed alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d0f2cc8 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x6d1b6503 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2dda7f netdev_state_change +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d8047e8 blk_run_queue +EXPORT_SYMBOL vmlinux 0x6d85fc8c security_path_rename +EXPORT_SYMBOL vmlinux 0x6d9c2f5e ilookup +EXPORT_SYMBOL vmlinux 0x6db0ab42 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x6dced3ee dcb_getapp +EXPORT_SYMBOL vmlinux 0x6ddd6efb jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x6deb54ac ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df57d59 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x6e0b99af ppp_input_error +EXPORT_SYMBOL vmlinux 0x6e51ac2e _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x6e54f364 mount_subtree +EXPORT_SYMBOL vmlinux 0x6e567d32 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x6e65f2dc rtc_lock +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea52926 __get_user_pages +EXPORT_SYMBOL vmlinux 0x6ea82895 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x6ea99cfb phy_stop +EXPORT_SYMBOL vmlinux 0x6eb8c143 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x6ec0d2ff bio_add_page +EXPORT_SYMBOL vmlinux 0x6ecb2086 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x6efb45b5 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x6f29a9b9 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x6f48d61c i2c_del_driver +EXPORT_SYMBOL vmlinux 0x6f4cb74b dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f5ef93d memchr_inv +EXPORT_SYMBOL vmlinux 0x6f93ff8b writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x6f9d45b3 mmc_free_host +EXPORT_SYMBOL vmlinux 0x6fb3bea7 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x6fc2d0a4 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fe786f1 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6fed5d99 vm_map_ram +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x700e099f bio_copy_kern +EXPORT_SYMBOL vmlinux 0x701ce453 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x702830f7 do_munmap +EXPORT_SYMBOL vmlinux 0x703b4352 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x70470021 d_alloc +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7053b932 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x707e00b9 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x707f35c1 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x70b36a01 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x70b3ad15 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70d99956 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x70da445b dquot_acquire +EXPORT_SYMBOL vmlinux 0x70e0d61f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x7114a71f bit_waitqueue +EXPORT_SYMBOL vmlinux 0x71182b0c netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x715a083f mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x7161a331 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x718c7694 padata_alloc +EXPORT_SYMBOL vmlinux 0x718d3832 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71b0ca18 bdget +EXPORT_SYMBOL vmlinux 0x71bb41e4 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x71c2eea3 vfs_readv +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x7234eafb otg_state_string +EXPORT_SYMBOL vmlinux 0x7239f347 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x7256469d blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x727198c0 __find_get_block +EXPORT_SYMBOL vmlinux 0x7274b041 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x729d512b vm_event_states +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72aa82c6 param_ops_charp +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72df2f2a up_read +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f009ce init_buffer +EXPORT_SYMBOL vmlinux 0x72f8d340 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x72faa8c9 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x730ff363 param_set_uint +EXPORT_SYMBOL vmlinux 0x731b9dfb acpi_bus_add +EXPORT_SYMBOL vmlinux 0x732b7833 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x733e0f4e pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x7345856a empty_aops +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x736c79dc param_get_byte +EXPORT_SYMBOL vmlinux 0x7373cd3c read_cache_page +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x73a873d5 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73bd2e90 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x73c4343a splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x73efed04 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x73f11212 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x73f5ddee mmc_can_trim +EXPORT_SYMBOL vmlinux 0x7404ee6f kill_litter_super +EXPORT_SYMBOL vmlinux 0x7405243f unregister_filesystem +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x743ef3ca tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x7467f9a3 genl_register_ops +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74bc756a proc_dostring +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74d4aa17 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x74f3b3b5 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x74fa338c vmap +EXPORT_SYMBOL vmlinux 0x750322b3 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x750c6c6c blk_recount_segments +EXPORT_SYMBOL vmlinux 0x751b2247 param_get_bool +EXPORT_SYMBOL vmlinux 0x752a7a54 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x752d1b55 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x755c9a7b mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x75731c7e xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x75772c07 mutex_lock +EXPORT_SYMBOL vmlinux 0x757b4e2b blk_make_request +EXPORT_SYMBOL vmlinux 0x75943e0d unregister_8022_client +EXPORT_SYMBOL vmlinux 0x759c826d jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x75ac0197 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x75b871bc elv_rb_add +EXPORT_SYMBOL vmlinux 0x75bb675a finish_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75c694e5 i2c_release_client +EXPORT_SYMBOL vmlinux 0x75d1c570 journal_flush +EXPORT_SYMBOL vmlinux 0x75e2c293 input_reset_device +EXPORT_SYMBOL vmlinux 0x75ee72cd pci_choose_state +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x7607ce20 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x7608f543 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x762c3ecd kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0x76368e1e inet_bind +EXPORT_SYMBOL vmlinux 0x763c89a6 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765f585e pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x767a86ed kern_unmount +EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x7684db85 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x769d1991 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c09311 dev_open +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x770cc8bf scsi_device_put +EXPORT_SYMBOL vmlinux 0x77170a74 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x772b3df9 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x772bff2c __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x772f9eec __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x77378f5d cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x775d8600 inet_addr_type +EXPORT_SYMBOL vmlinux 0x77857850 mount_nodev +EXPORT_SYMBOL vmlinux 0x77991d8e kernel_sendpage +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77acd3f3 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e7afaa dev_driver_string +EXPORT_SYMBOL vmlinux 0x77eab66b blk_execute_rq +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x77f63f7b skb_queue_tail +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x78019baa ilookup5 +EXPORT_SYMBOL vmlinux 0x78151832 sock_init_data +EXPORT_SYMBOL vmlinux 0x782ab47c sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x783bbb98 dns_query +EXPORT_SYMBOL vmlinux 0x78474d21 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x7888f16d console_stop +EXPORT_SYMBOL vmlinux 0x788d2a9a idr_remove +EXPORT_SYMBOL vmlinux 0x789e0ed6 uart_register_driver +EXPORT_SYMBOL vmlinux 0x78a7d9d4 arp_invalidate +EXPORT_SYMBOL vmlinux 0x78bb2011 dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x78c0d3f0 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x78dc6b04 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e1e138 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x78ed9160 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x79293c50 have_submounts +EXPORT_SYMBOL vmlinux 0x79444dc4 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x794df222 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x799206b1 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x79a4107a skb_checksum_help +EXPORT_SYMBOL vmlinux 0x79a63910 seq_path +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79ab10dc filemap_flush +EXPORT_SYMBOL vmlinux 0x79d3a261 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x79ea5be8 dump_seek +EXPORT_SYMBOL vmlinux 0x7a007ab8 skb_insert +EXPORT_SYMBOL vmlinux 0x7a0556da simple_write_begin +EXPORT_SYMBOL vmlinux 0x7a0dd8e7 inet6_getname +EXPORT_SYMBOL vmlinux 0x7a1390f7 param_set_bool +EXPORT_SYMBOL vmlinux 0x7a17513b xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a2bb850 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x7a3cb25c pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a5344e8 blk_get_queue +EXPORT_SYMBOL vmlinux 0x7a59e806 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x7a9bf88d udplite_table +EXPORT_SYMBOL vmlinux 0x7a9f0643 __scm_send +EXPORT_SYMBOL vmlinux 0x7aa81449 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x7aacb841 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x7ab87fbb dquot_quota_off +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b414a59 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7be8f40a blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x7bfde700 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c15eebd bmap +EXPORT_SYMBOL vmlinux 0x7c31aec6 arp_create +EXPORT_SYMBOL vmlinux 0x7c3dbaac kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5b9b53 input_free_device +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c80fe66 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x7c81d972 wake_up_process +EXPORT_SYMBOL vmlinux 0x7c84bc77 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9a2526 pci_map_biosrom +EXPORT_SYMBOL vmlinux 0x7c9cd82f inode_init_once +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb36a31 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x7ce0ae7c param_get_long +EXPORT_SYMBOL vmlinux 0x7cfbc920 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d2f32b8 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x7d4afaef inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x7d5387ed otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x7d54056e seq_puts +EXPORT_SYMBOL vmlinux 0x7d6bb587 cpu_online_mask +EXPORT_SYMBOL vmlinux 0x7d6d249a kernel_accept +EXPORT_SYMBOL vmlinux 0x7d7c0567 netdev_alert +EXPORT_SYMBOL vmlinux 0x7d872004 lock_may_write +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7dbc2e57 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x7dce057e jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7debbfea set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e59a446 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eacfb40 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x7eb19e18 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x7ebf23bb dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x7ec8f9a7 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7efde495 aio_put_req +EXPORT_SYMBOL vmlinux 0x7f16273c blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x7f18b194 kacpi_hotplug_wq +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f658e80 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7f696e21 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x7f776eca fput +EXPORT_SYMBOL vmlinux 0x7f9bcdb3 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x7fb636e9 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x80009c30 con_is_bound +EXPORT_SYMBOL vmlinux 0x801a9e5b bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x8028d442 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x8048136c ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x805485ab __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x806b2b56 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x8082ecc2 free_netdev +EXPORT_SYMBOL vmlinux 0x80b45138 __register_chrdev +EXPORT_SYMBOL vmlinux 0x80fa4d48 serio_open +EXPORT_SYMBOL vmlinux 0x810b3618 param_ops_string +EXPORT_SYMBOL vmlinux 0x81317012 tmem_enabled +EXPORT_SYMBOL vmlinux 0x8140796d nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8150c0ba mempool_resize +EXPORT_SYMBOL vmlinux 0x8150f506 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x8161b372 proc_dointvec +EXPORT_SYMBOL vmlinux 0x81730969 path_is_under +EXPORT_SYMBOL vmlinux 0x8176a17c lease_get_mtime +EXPORT_SYMBOL vmlinux 0x81bf23f4 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x81ce609f swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x81cebb59 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82056f21 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x825b3d59 md_done_sync +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82616543 account_page_writeback +EXPORT_SYMBOL vmlinux 0x82695508 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x82a517e1 poll_freewait +EXPORT_SYMBOL vmlinux 0x82ab3b1e security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82babb30 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x82cafb8e input_unregister_handler +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82e9e9f4 skb_dequeue +EXPORT_SYMBOL vmlinux 0x8300c756 generic_fillattr +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x83248ed6 register_gifconf +EXPORT_SYMBOL vmlinux 0x832f88f8 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x834d71e5 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x836400bb acpi_root_dir +EXPORT_SYMBOL vmlinux 0x837c2649 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83cd6d64 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x83d54024 iget_failed +EXPORT_SYMBOL vmlinux 0x83e50442 release_sock +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x8436f8e3 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x843fd8f5 kick_iocb +EXPORT_SYMBOL vmlinux 0x84516a34 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x846bcc01 dm_table_get +EXPORT_SYMBOL vmlinux 0x847a9b89 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x84b0460e jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x84be886f completion_done +EXPORT_SYMBOL vmlinux 0x84d4afd6 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x84eabacc __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x853859ce netdev_warn +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups +EXPORT_SYMBOL vmlinux 0x8571e246 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85d0e551 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x85d16790 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x8618d819 nf_log_register +EXPORT_SYMBOL vmlinux 0x8629964d vga_put +EXPORT_SYMBOL vmlinux 0x862a61fa agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x862ea2cb jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869a9b24 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x86adef13 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x86bfae20 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat +EXPORT_SYMBOL vmlinux 0x86d5255f _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x86dac773 create_proc_entry +EXPORT_SYMBOL vmlinux 0x86e0cfcc freeze_super +EXPORT_SYMBOL vmlinux 0x86f54200 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x871f1b13 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x8748f9b6 nobh_writepage +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x876f5598 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x8776c20a vfs_read +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8796fbdf skb_put +EXPORT_SYMBOL vmlinux 0x8798e92a sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87b148a9 find_lock_page +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88186031 key_unlink +EXPORT_SYMBOL vmlinux 0x88198f4d jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x8833bc7e __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x8836aaf1 fget +EXPORT_SYMBOL vmlinux 0x88437a25 md_check_recovery +EXPORT_SYMBOL vmlinux 0x885e1ca4 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x88834074 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x88c532b7 rtnl_notify +EXPORT_SYMBOL vmlinux 0x88ece4ca register_console +EXPORT_SYMBOL vmlinux 0x88f57437 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x8924289a mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x89429d29 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x8944e795 kthread_stop +EXPORT_SYMBOL vmlinux 0x894840e4 kern_path_create +EXPORT_SYMBOL vmlinux 0x894a3b45 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x894fc4f8 dev_alert +EXPORT_SYMBOL vmlinux 0x895dd297 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x8980082a no_llseek +EXPORT_SYMBOL vmlinux 0x89858c2a softnet_data +EXPORT_SYMBOL vmlinux 0x89904055 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x899a13c3 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x899cc233 security_path_symlink +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b966a6 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x89c08d3b pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x89cb975d mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a1615d6 mempool_create_node +EXPORT_SYMBOL vmlinux 0x8a165582 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4a5c3c crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x8a5e05b4 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a81b016 generic_write_end +EXPORT_SYMBOL vmlinux 0x8a8a58e3 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x8a9694a9 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9d64ff ida_pre_get +EXPORT_SYMBOL vmlinux 0x8acffcac agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x8b06ad8e phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b334e4d gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b4ff3c8 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x8b546674 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b63d542 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x8b6c7d9f blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b8805b8 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8b9cc19a vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x8bb004f9 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x8bb88a93 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x8bc20293 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x8be89c01 vfs_symlink +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c3433cc tcp_check_req +EXPORT_SYMBOL vmlinux 0x8c531941 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x8c5473d5 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x8c785332 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x8cae185e find_or_create_page +EXPORT_SYMBOL vmlinux 0x8caf472f neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x8cc4f7fd tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x8cc51c1c generic_listxattr +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8ceddf36 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6417c9 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x8d760026 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x8d760622 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8dec9080 dma_set_mask +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e04db5b compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e23fb1b __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x8e2981af bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x8e536884 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x8e555738 param_get_uint +EXPORT_SYMBOL vmlinux 0x8e8e7833 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ec4a398 mount_bdev +EXPORT_SYMBOL vmlinux 0x8ec65967 follow_pfn +EXPORT_SYMBOL vmlinux 0x8ed60415 arp_send +EXPORT_SYMBOL vmlinux 0x8eda5678 unregister_netdev +EXPORT_SYMBOL vmlinux 0x8edf044f pci_set_power_state +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ef06cf2 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x8efd72e1 unregister_nls +EXPORT_SYMBOL vmlinux 0x8f030f6d key_alloc +EXPORT_SYMBOL vmlinux 0x8f1ac2f0 send_sig +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f2d66f4 blkdev_get +EXPORT_SYMBOL vmlinux 0x8f34d988 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f636d23 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x8f67fb95 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x8f767d07 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x8f80d13a vfs_open +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fc7f839 param_set_charp +EXPORT_SYMBOL vmlinux 0x8fdda7de register_exec_domain +EXPORT_SYMBOL vmlinux 0x8fe64ba3 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x8ff66782 param_get_ushort +EXPORT_SYMBOL vmlinux 0x9018c6e5 iunique +EXPORT_SYMBOL vmlinux 0x9024f0b1 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x902667a9 iput +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x9051a4df uart_update_timeout +EXPORT_SYMBOL vmlinux 0x905a655b keyring_search +EXPORT_SYMBOL vmlinux 0x90a0fd47 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90ae2465 get_phy_device +EXPORT_SYMBOL vmlinux 0x91291cab sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x912a2da8 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9146518e dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x9148930c dev_emerg +EXPORT_SYMBOL vmlinux 0x914d3a62 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x914ec658 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91632dff skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x91868052 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x9186ad23 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x91936479 module_refcount +EXPORT_SYMBOL vmlinux 0x9194322b xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x91bcd8e9 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x9205a70c dput +EXPORT_SYMBOL vmlinux 0x922944d7 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x92328aa6 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x923773ea scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92618559 elevator_change +EXPORT_SYMBOL vmlinux 0x9264fdbb dquot_commit +EXPORT_SYMBOL vmlinux 0x92abb38f tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x92b2f7c5 security_file_permission +EXPORT_SYMBOL vmlinux 0x92cfe010 kfree_skb +EXPORT_SYMBOL vmlinux 0x92d71b47 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x92e96958 do_splice_direct +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93202abd skb_gso_segment +EXPORT_SYMBOL vmlinux 0x93214054 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x932dc9bd jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x93332f1e unregister_snap_client +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x935a3edd seq_release_private +EXPORT_SYMBOL vmlinux 0x93902532 uart_match_port +EXPORT_SYMBOL vmlinux 0x9399d40f iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93cea209 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x93e94d0d inet6_release +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x941ffb94 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x942eb440 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x9430e79b pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x94784f1c napi_complete +EXPORT_SYMBOL vmlinux 0x94864c7a wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949658af arp_find +EXPORT_SYMBOL vmlinux 0x949a419b swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x94a3bcaa task_nice +EXPORT_SYMBOL vmlinux 0x94df1fd4 blk_free_tags +EXPORT_SYMBOL vmlinux 0x94e19463 cdrom_open +EXPORT_SYMBOL vmlinux 0x94fc32b4 skb_split +EXPORT_SYMBOL vmlinux 0x9501e51b ppp_channel_index +EXPORT_SYMBOL vmlinux 0x9518b623 register_shrinker +EXPORT_SYMBOL vmlinux 0x951f1d02 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x9535278c abort_creds +EXPORT_SYMBOL vmlinux 0x953db383 free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x955583f9 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x95679e8a ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x957669e0 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x9576f273 revalidate_disk +EXPORT_SYMBOL vmlinux 0x9581ea62 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x958e7699 pci_set_master +EXPORT_SYMBOL vmlinux 0x959898d3 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x959f8dc4 release_firmware +EXPORT_SYMBOL vmlinux 0x95b2822b __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x95b2f745 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x95b465dc vfs_follow_link +EXPORT_SYMBOL vmlinux 0x95cba7e8 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95f89a33 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x95f9a8fa __cleancache_flush_inode +EXPORT_SYMBOL vmlinux 0x960e6ef1 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x9637feb2 kdb_current_task +EXPORT_SYMBOL vmlinux 0x963f552c follow_up +EXPORT_SYMBOL vmlinux 0x965221ae icmpv6_send +EXPORT_SYMBOL vmlinux 0x96639824 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x9696ac72 rename_lock +EXPORT_SYMBOL vmlinux 0x969b86c3 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x96ae11d8 start_tty +EXPORT_SYMBOL vmlinux 0x96b7ae2f neigh_update +EXPORT_SYMBOL vmlinux 0x96be8e93 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x96bff125 mutex_trylock +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96e7eaa1 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x96e82c8a __lock_buffer +EXPORT_SYMBOL vmlinux 0x96e8f9fc arp_tbl +EXPORT_SYMBOL vmlinux 0x96ee22af pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x96f0c11d __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x96f69c8e pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x9713a195 set_pages_uc +EXPORT_SYMBOL vmlinux 0x9728d964 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x9743a234 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x977185f4 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x977a5243 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x978cf470 backlight_device_register +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97beadba generic_getxattr +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x98130488 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x98233aa1 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x982846fa __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x9828b79f journal_abort +EXPORT_SYMBOL vmlinux 0x9831e9e4 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x98355e19 n_tty_compat_ioctl_helper +EXPORT_SYMBOL vmlinux 0x983fe33e udp_sendmsg +EXPORT_SYMBOL vmlinux 0x98665798 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9872314d mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x988c2b5e skb_copy_bits +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x98ad3e73 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x98e13006 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x98f613c8 neigh_for_each +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x992f9a8d framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x99319bc0 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x9934bde3 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x994d7097 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x995fbe61 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x99964077 d_clear_need_lookup +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a44b43 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x99b3e90c idr_destroy +EXPORT_SYMBOL vmlinux 0x99bb3ba3 key_task_permission +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d3a43c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x99da7a0a get_agp_version +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x99f54148 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x9a068c6c bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x9a0c32c7 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x9a17cead read_cache_pages +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a54a9c4 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x9a7d3a60 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x9aa1098f splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9ab7b830 inode_change_ok +EXPORT_SYMBOL vmlinux 0x9ab8808c param_get_charp +EXPORT_SYMBOL vmlinux 0x9ad0e946 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x9b05a48d vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x9b25af0a filp_close +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b4e1f30 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x9b566b6b simple_write_end +EXPORT_SYMBOL vmlinux 0x9b5f1c36 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x9b6ad310 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x9b75cb81 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x9b8d4fae gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb1e339 journal_wipe +EXPORT_SYMBOL vmlinux 0x9be718a9 vfs_statfs +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c1d73de dentry_open +EXPORT_SYMBOL vmlinux 0x9c2ad194 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4b6605 mntput +EXPORT_SYMBOL vmlinux 0x9c5bea0b textsearch_destroy +EXPORT_SYMBOL vmlinux 0x9c5f81da cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x9c6edcdb journal_clear_err +EXPORT_SYMBOL vmlinux 0x9c7164a9 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x9c8ecd26 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cbe8ef6 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x9cc619a7 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x9cc96e20 serio_interrupt +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9cf10481 pci_target_state +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d004d78 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x9d1ff1e3 journal_update_format +EXPORT_SYMBOL vmlinux 0x9d2617c6 __invalidate_device +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d4bdc90 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x9d7732a9 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x9da9adc0 kobject_init +EXPORT_SYMBOL vmlinux 0x9daa457e kthread_bind +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dc0e200 write_one_page +EXPORT_SYMBOL vmlinux 0x9dc471d7 fb_find_mode +EXPORT_SYMBOL vmlinux 0x9dce7667 put_tty_driver +EXPORT_SYMBOL vmlinux 0x9de41226 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e607910 audit_log +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e73dcfe scsi_remove_target +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e8a803b input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9eac071e __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ebdf059 x86_hyper +EXPORT_SYMBOL vmlinux 0x9ed2aa1f ping_prot +EXPORT_SYMBOL vmlinux 0x9ee6b9d0 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f290a25 sk_free +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f39339d tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f5b9581 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x9f67be17 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x9f6dd688 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fac21c6 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x9fb81235 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x9fc81deb netdev_change_features +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9feae1e1 seq_open_private +EXPORT_SYMBOL vmlinux 0x9ff3f284 mpage_writepage +EXPORT_SYMBOL vmlinux 0xa00bc9fe d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xa00dc868 tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0xa0145f72 fail_migrate_page +EXPORT_SYMBOL vmlinux 0xa036c4e0 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa0696cf8 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xa0794fef iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b730af xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa1037551 tcp_seq_open +EXPORT_SYMBOL vmlinux 0xa105d354 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1427221 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xa1470e1f __rta_fill +EXPORT_SYMBOL vmlinux 0xa14997b6 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa15d8695 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xa160e924 mutex_unlock +EXPORT_SYMBOL vmlinux 0xa1701145 eth_header_cache +EXPORT_SYMBOL vmlinux 0xa1ad01cc blk_start_queue +EXPORT_SYMBOL vmlinux 0xa1ae640f __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xa1b1ea3a security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c38223 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xa1c5a3b3 cleancache_enabled +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1ca93ef xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xa1ec8f1c __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa22e43be inet_shutdown +EXPORT_SYMBOL vmlinux 0xa27da3d9 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa2967d45 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xa296c541 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xa29ebdf4 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2a6b9ec tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xa2ab1243 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xa2c56c31 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xa2e68127 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f8e4f0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0xa320bdfa vga_tryget +EXPORT_SYMBOL vmlinux 0xa330c16d md_integrity_register +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa3504378 rwsem_wake +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa354f084 mapping_tagged +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa363dab4 udp_table +EXPORT_SYMBOL vmlinux 0xa36b7e3d netif_notify_peers +EXPORT_SYMBOL vmlinux 0xa389fc58 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xa3a3a762 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa3af1dca pci_restore_state +EXPORT_SYMBOL vmlinux 0xa3bdb98a blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xa3d3f59b dquot_operations +EXPORT_SYMBOL vmlinux 0xa3f95f23 kill_pgrp +EXPORT_SYMBOL vmlinux 0xa448b639 do_SAK +EXPORT_SYMBOL vmlinux 0xa477d5d8 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xa478d7c4 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xa481ada3 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xa48449e6 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xa496d189 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xa49f8668 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0xa4ace3ce input_set_abs_params +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c41694 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4d9d537 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xa4e2f3c1 dev_uc_del +EXPORT_SYMBOL vmlinux 0xa4eb4eff _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xa4fbaf4a ida_destroy +EXPORT_SYMBOL vmlinux 0xa4fd119e prepare_binprm +EXPORT_SYMBOL vmlinux 0xa50f480d generic_ro_fops +EXPORT_SYMBOL vmlinux 0xa5334c9d elevator_init +EXPORT_SYMBOL vmlinux 0xa55b454d ata_dev_printk +EXPORT_SYMBOL vmlinux 0xa5868ffe d_lookup +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa59dbfe2 generic_write_checks +EXPORT_SYMBOL vmlinux 0xa5b82b11 dma_find_channel +EXPORT_SYMBOL vmlinux 0xa5d24511 sock_no_poll +EXPORT_SYMBOL vmlinux 0xa5eb3260 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xa61aae80 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xa638a9b9 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa6440c7a poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xa6690b7a scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xa66be927 neigh_lookup +EXPORT_SYMBOL vmlinux 0xa672cdd7 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67da660 mempool_alloc +EXPORT_SYMBOL vmlinux 0xa67e2845 dq_data_lock +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6914a96 pci_get_slot +EXPORT_SYMBOL vmlinux 0xa6ac7ca1 tty_name +EXPORT_SYMBOL vmlinux 0xa6ada040 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xa6b13658 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6ea01df phy_print_status +EXPORT_SYMBOL vmlinux 0xa6fbaffa blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa755f539 serial8250_register_port +EXPORT_SYMBOL vmlinux 0xa75eebec security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xa761e636 dm_io +EXPORT_SYMBOL vmlinux 0xa76e75a1 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xa772e125 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xa79ea42f blk_stop_queue +EXPORT_SYMBOL vmlinux 0xa7ae1826 bio_integrity_split +EXPORT_SYMBOL vmlinux 0xa8087aea tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xa8156d94 inet_ioctl +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa81c247e jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa839f9ba complete_request_key +EXPORT_SYMBOL vmlinux 0xa871f2b1 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0xa87bd414 ata_print_version +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa89c5fa7 kill_bdev +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8b9f3ac aio_complete +EXPORT_SYMBOL vmlinux 0xa8d2fb1b phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8e456ed fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xa8e5c287 simple_rmdir +EXPORT_SYMBOL vmlinux 0xa8fdbc2e scsi_add_device +EXPORT_SYMBOL vmlinux 0xa8fdbcb9 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90a4ea5 ida_simple_remove +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa91e25f7 inode_init_always +EXPORT_SYMBOL vmlinux 0xa98866f5 idr_get_next +EXPORT_SYMBOL vmlinux 0xa9899068 input_inject_event +EXPORT_SYMBOL vmlinux 0xa99ea763 alloc_file +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c1b627 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xa9d930a8 register_quota_format +EXPORT_SYMBOL vmlinux 0xa9f40172 __netif_schedule +EXPORT_SYMBOL vmlinux 0xaa01ac6e genl_register_family +EXPORT_SYMBOL vmlinux 0xaa0bc625 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xaa29589b input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xaa40af21 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xaa59d032 skb_checksum +EXPORT_SYMBOL vmlinux 0xaa73d677 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaaa3478e journal_restart +EXPORT_SYMBOL vmlinux 0xaad16bb5 dm_get_device +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab28271c i8253_lock +EXPORT_SYMBOL vmlinux 0xab35846a dev_disable_lro +EXPORT_SYMBOL vmlinux 0xab4efce9 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xab5b7d3f follow_down_one +EXPORT_SYMBOL vmlinux 0xab5f9804 register_nls +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6918cc mmc_hw_reset +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xabb782bb scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xabbd1c93 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabdfea31 sock_update_classid +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac0e6b2c ppp_dev_name +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac5bb941 intel_gtt_insert_pages +EXPORT_SYMBOL vmlinux 0xac6121db ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac96ec0d clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacda9456 vc_resize +EXPORT_SYMBOL vmlinux 0xace16091 release_pages +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad07f027 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad174675 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy +EXPORT_SYMBOL vmlinux 0xad380621 llc_sap_open +EXPORT_SYMBOL vmlinux 0xad414fb9 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad479e69 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xad4cfd6b kset_unregister +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad9de21b scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xada44783 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadc374ed splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xadd97b7b fget_raw +EXPORT_SYMBOL vmlinux 0xadfdd55d set_blocksize +EXPORT_SYMBOL vmlinux 0xae0ba8f3 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xae11df2a udp_poll +EXPORT_SYMBOL vmlinux 0xae2a3fe4 kobject_put +EXPORT_SYMBOL vmlinux 0xae34f60e blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xae446016 backlight_force_update +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeaa8330 unload_nls +EXPORT_SYMBOL vmlinux 0xaebc51f9 scsi_device_get +EXPORT_SYMBOL vmlinux 0xaecdeaa2 agp_bind_memory +EXPORT_SYMBOL vmlinux 0xaecf0f48 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0xaeddce0c xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xaee17055 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0xaef85eba proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xaef96c1a __d_drop +EXPORT_SYMBOL vmlinux 0xaf01f52c filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xaf228098 dqget +EXPORT_SYMBOL vmlinux 0xaf243d2a journal_lock_updates +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf48d65e tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xaf4fb466 netlink_dump_start +EXPORT_SYMBOL vmlinux 0xaf568cc0 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xaf611eac amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0xaf63dedd scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xaf68646b i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xaf701ea6 scsi_print_result +EXPORT_SYMBOL vmlinux 0xaf853262 neigh_create +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafb4c31f call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafba1bac tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xafc3839c __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xafdab23b skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier +EXPORT_SYMBOL vmlinux 0xaff87152 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0xb0146c3a param_set_byte +EXPORT_SYMBOL vmlinux 0xb015137c generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xb0207ecf ___ratelimit +EXPORT_SYMBOL vmlinux 0xb02137ac dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0xb048e207 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xb05f56d5 file_open_root +EXPORT_SYMBOL vmlinux 0xb0735ea9 tc_classify +EXPORT_SYMBOL vmlinux 0xb0a8fd0a intel_gtt_unmap_memory +EXPORT_SYMBOL vmlinux 0xb0ac9273 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0ca3a5a mmc_do_release_host +EXPORT_SYMBOL vmlinux 0xb0d31da4 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f4a02a arp_xmit +EXPORT_SYMBOL vmlinux 0xb100006f nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xb117ae35 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb13ba604 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xb14932f1 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xb1572d0e mmc_host_disable +EXPORT_SYMBOL vmlinux 0xb15fbcee cdev_alloc +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb191a012 elv_register_queue +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1a46b8c bh_submit_read +EXPORT_SYMBOL vmlinux 0xb1bb4793 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xb1bdd880 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c7464a account_page_dirtied +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d9523e wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1e0204b netif_carrier_on +EXPORT_SYMBOL vmlinux 0xb2094efb inet_sendpage +EXPORT_SYMBOL vmlinux 0xb20b52c7 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xb20bcc7c lro_receive_skb +EXPORT_SYMBOL vmlinux 0xb20e7054 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb2146555 skb_push +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb2204f85 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xb233a6e3 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xb24dd176 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xb24ddf36 vga_client_register +EXPORT_SYMBOL vmlinux 0xb259c4ec dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2743865 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xb2744b36 down_write_trylock +EXPORT_SYMBOL vmlinux 0xb29cdccc lock_sock_fast +EXPORT_SYMBOL vmlinux 0xb2a15f40 proto_register +EXPORT_SYMBOL vmlinux 0xb2b0d772 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0xb2e55898 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb2f20674 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb330c35f mmc_start_req +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb35c21e2 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xb37f0373 journal_set_features +EXPORT_SYMBOL vmlinux 0xb38deefc pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3aa239b poll_initwait +EXPORT_SYMBOL vmlinux 0xb3cc2907 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb412edcd ab8500_gpadc_read_raw +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb451ccc0 sk_common_release +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb49c23fc ip_ct_attach +EXPORT_SYMBOL vmlinux 0xb4ae66fc dev_uc_flush +EXPORT_SYMBOL vmlinux 0xb4b7b067 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xb4d5acc4 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xb4dddcf0 flush_old_exec +EXPORT_SYMBOL vmlinux 0xb4de1991 kobject_add +EXPORT_SYMBOL vmlinux 0xb503dcec dev_get_by_name +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb537bcc7 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54821c6 pci_enable_obff +EXPORT_SYMBOL vmlinux 0xb55596c8 __devm_request_region +EXPORT_SYMBOL vmlinux 0xb5665f21 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xb5740460 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xb576da38 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xb578a03c pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xb5845487 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xb59bc62b try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5f28b5f __any_online_cpu +EXPORT_SYMBOL vmlinux 0xb610b676 find_get_page +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb64e8767 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xb66aa9ee mmc_release_host +EXPORT_SYMBOL vmlinux 0xb66b0a57 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb69470f9 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xb6a1d0a9 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6a8d0d2 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xb6b15a3f install_exec_creds +EXPORT_SYMBOL vmlinux 0xb6b1f0c5 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cb1a64 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d3a906 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xb6e449a9 dst_alloc +EXPORT_SYMBOL vmlinux 0xb70388a6 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xb706994d pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xb7172b27 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xb71a7fdf mpage_readpages +EXPORT_SYMBOL vmlinux 0xb7420042 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xb7517b1a security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb76edb4f nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xb78c61e8 param_ops_bool +EXPORT_SYMBOL vmlinux 0xb7996745 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xb7daa86b km_report +EXPORT_SYMBOL vmlinux 0xb8242b7b bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xb82762b3 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xb82a5d0b sock_i_ino +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb83ab094 __nla_put +EXPORT_SYMBOL vmlinux 0xb84b409d dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87a0ca0 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8b3315a __elv_add_request +EXPORT_SYMBOL vmlinux 0xb8c5b20a nf_getsockopt +EXPORT_SYMBOL vmlinux 0xb8e0d748 security_path_chmod +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8e93131 dquot_alloc +EXPORT_SYMBOL vmlinux 0xb9048ac1 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb908a6b4 dev_set_group +EXPORT_SYMBOL vmlinux 0xb9476db0 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb997e51e pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xb9df96da dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba3f46cc filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xba44108a pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba68d455 names_cachep +EXPORT_SYMBOL vmlinux 0xba8d0752 f_setown +EXPORT_SYMBOL vmlinux 0xba8ea6ad rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbace289a put_page +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1dd330 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xbb1dd65f input_register_handler +EXPORT_SYMBOL vmlinux 0xbb21f14d __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xbb25d99f pci_set_ltr +EXPORT_SYMBOL vmlinux 0xbb2ac055 pci_get_class +EXPORT_SYMBOL vmlinux 0xbb4aa2a2 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xbb5a0abb qdisc_reset +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb712d02 scsi_prep_return +EXPORT_SYMBOL vmlinux 0xbb886fd8 ata_link_printk +EXPORT_SYMBOL vmlinux 0xbb89c854 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbde0310 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xbbf8e4ac bio_map_kern +EXPORT_SYMBOL vmlinux 0xbc1327a8 inet6_bind +EXPORT_SYMBOL vmlinux 0xbc169ba6 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xbc1afedf up_write +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc3eaf95 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xbc79b18a pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xbc7bf95e mdiobus_free +EXPORT_SYMBOL vmlinux 0xbc86a014 dget_parent +EXPORT_SYMBOL vmlinux 0xbcc0f97d pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcc4df8f kill_pid +EXPORT_SYMBOL vmlinux 0xbcc6e3e7 udplite_prot +EXPORT_SYMBOL vmlinux 0xbcff1c7e pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xbd0db0e6 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xbd2c541b pci_get_subsys +EXPORT_SYMBOL vmlinux 0xbd3eefea dev_load +EXPORT_SYMBOL vmlinux 0xbd9e2723 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdb0d9c3 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc20c68 intel_gtt_get +EXPORT_SYMBOL vmlinux 0xbde459b9 sk_dst_check +EXPORT_SYMBOL vmlinux 0xbdef0d78 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe1a94c5 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe416ab9 skb_recycle +EXPORT_SYMBOL vmlinux 0xbe4b2b00 register_8022_client +EXPORT_SYMBOL vmlinux 0xbe52747a truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xbe5fc3d8 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xbe9b146a mii_check_media +EXPORT_SYMBOL vmlinux 0xbea2f23b pcim_iounmap +EXPORT_SYMBOL vmlinux 0xbeeacb2c thaw_bdev +EXPORT_SYMBOL vmlinux 0xbeeed7a4 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf15d746 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xbf1df82d ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xbf2323e9 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xbf39c06c pci_clear_master +EXPORT_SYMBOL vmlinux 0xbf5091f5 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0xbf545ac0 sk_filter +EXPORT_SYMBOL vmlinux 0xbf56627d ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xbf6ff3d3 ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0xbf7624bf dev_mc_del +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf96a318 setup_new_exec +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa6a01c pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfde60dd add_disk +EXPORT_SYMBOL vmlinux 0xbfde7365 put_disk +EXPORT_SYMBOL vmlinux 0xbfe63ba8 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc009b3a0 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xc01cf848 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xc043a16f generic_file_open +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0b37b0a pcim_iomap +EXPORT_SYMBOL vmlinux 0xc0e35309 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xc0e4f875 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xc1061e2f sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xc1077501 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0xc13e5554 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xc140fa20 blk_end_request +EXPORT_SYMBOL vmlinux 0xc14d8320 dquot_disable +EXPORT_SYMBOL vmlinux 0xc16a8c75 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xc1a153d0 pnp_is_active +EXPORT_SYMBOL vmlinux 0xc1b93865 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d7d179 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc1da279a proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xc20b2b91 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2582425 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xc2691219 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xc2a08336 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xc2a612c6 user_revoke +EXPORT_SYMBOL vmlinux 0xc2a93816 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xc2b43a83 tty_port_close_end +EXPORT_SYMBOL vmlinux 0xc2b8346f __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xc2bbc037 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc303cf3f file_sb_list_del +EXPORT_SYMBOL vmlinux 0xc316b98c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0xc32fc1c6 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xc35199d0 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xc390cd9c d_delete +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3c50d0b fb_get_mode +EXPORT_SYMBOL vmlinux 0xc3fe87c8 param_ops_uint +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc414cd80 module_layout +EXPORT_SYMBOL vmlinux 0xc41e8f7a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xc4554217 up +EXPORT_SYMBOL vmlinux 0xc49265ec tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xc4973669 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49b68d4 inet_release +EXPORT_SYMBOL vmlinux 0xc4b87f71 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xc4c5d970 dev_mc_init +EXPORT_SYMBOL vmlinux 0xc4d6f162 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xc4e6bffa blkdev_fsync +EXPORT_SYMBOL vmlinux 0xc4e9c01c cpu_active_mask +EXPORT_SYMBOL vmlinux 0xc50bab05 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xc511e820 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5522ca6 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc56c0c36 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0xc56e2217 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xc56f31e6 journal_check_used_features +EXPORT_SYMBOL vmlinux 0xc58293f2 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xc5953dfe pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xc5a37aa8 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0xc5ac7c55 register_snap_client +EXPORT_SYMBOL vmlinux 0xc5bb2162 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5ee70a9 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xc5f01313 tty_hangup +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc5f4cd6f inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc63cc125 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc66ac858 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xc67023e6 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xc675af4a input_register_handle +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6a66aa2 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xc6b755aa set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xc6bf546d load_nls_default +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6d96c4f follow_down +EXPORT_SYMBOL vmlinux 0xc6db5e55 journal_revoke +EXPORT_SYMBOL vmlinux 0xc6e7c98d filp_open +EXPORT_SYMBOL vmlinux 0xc705f598 irq_set_chip +EXPORT_SYMBOL vmlinux 0xc711d503 __lock_page +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc749f416 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xc7523b55 __netdev_printk +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc79c3fbc mmc_request_done +EXPORT_SYMBOL vmlinux 0xc79fd1e8 __bread +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7bc6390 sock_create +EXPORT_SYMBOL vmlinux 0xc7c09759 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xc7c557e6 nla_put +EXPORT_SYMBOL vmlinux 0xc7c65f99 generic_readlink +EXPORT_SYMBOL vmlinux 0xc7e6f2df inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xc8085ae4 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xc8189939 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc85f2f42 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xc869704a dst_destroy +EXPORT_SYMBOL vmlinux 0xc86a6174 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xc879e6ae tcp_connect +EXPORT_SYMBOL vmlinux 0xc888eda1 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a6c00f inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xc8a81418 sock_kmalloc +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8c6fe4c pnp_disable_dev +EXPORT_SYMBOL vmlinux 0xc8c9b7ee put_mnt_ns +EXPORT_SYMBOL vmlinux 0xc8d3662f kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xc8d3c4b3 misc_register +EXPORT_SYMBOL vmlinux 0xc90e0f15 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc93bd399 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xc94fa003 irq_stat +EXPORT_SYMBOL vmlinux 0xc95938e3 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xc95e0c27 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9b9a442 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xc9d63e10 register_netdevice +EXPORT_SYMBOL vmlinux 0xc9e34d82 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xc9e3c793 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xc9e8be43 serio_reconnect +EXPORT_SYMBOL vmlinux 0xca4c923d vscnprintf +EXPORT_SYMBOL vmlinux 0xca530475 spi_dv_device +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca65d3bd x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0xca7f58f3 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xca89d941 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca95cb13 fb_pan_display +EXPORT_SYMBOL vmlinux 0xca9b63ba cont_write_begin +EXPORT_SYMBOL vmlinux 0xcad5189e scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0xcb405c76 task_ns_capable +EXPORT_SYMBOL vmlinux 0xcb49dd4b jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xcb5977b6 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb7eac5a mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xcb8fa857 soft_cursor +EXPORT_SYMBOL vmlinux 0xcb96832f tcp_close +EXPORT_SYMBOL vmlinux 0xcb99edb0 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0xcbbd3832 init_special_inode +EXPORT_SYMBOL vmlinux 0xcbbf2b70 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xcbc8e4d1 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbe023fc bdi_register_dev +EXPORT_SYMBOL vmlinux 0xcbfc2cb7 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xcc0707d7 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc0d1dfd put_io_context +EXPORT_SYMBOL vmlinux 0xcc0f3b99 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xcc204a02 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc38a5e8 find_inode_number +EXPORT_SYMBOL vmlinux 0xcc3efc71 kobject_get +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc6b1aa5 security_path_unlink +EXPORT_SYMBOL vmlinux 0xcc71f6fa genphy_update_link +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc99e0df sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xcca316dd netdev_crit +EXPORT_SYMBOL vmlinux 0xcca94125 kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0xccbfd416 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xcd1dd872 __ps2_command +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd714520 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcdfe72b7 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xce0d97f7 dma_supported +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce1aa17d pnp_get_resource +EXPORT_SYMBOL vmlinux 0xce23a4bc submit_bio +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce2deacd blkdev_put +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce4b36f3 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce671144 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xce6d7027 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0xcec3a908 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xcedf5606 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf015f7b do_settimeofday +EXPORT_SYMBOL vmlinux 0xcf07828c fb_set_suspend +EXPORT_SYMBOL vmlinux 0xcf1465a2 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf570a0f scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xcf59c5b4 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf7b359a jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xcf9a5d96 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xcfa90a4c acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfd1515d genphy_read_status +EXPORT_SYMBOL vmlinux 0xcfd5965d notify_change +EXPORT_SYMBOL vmlinux 0xcfe759b3 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcff46940 elv_add_request +EXPORT_SYMBOL vmlinux 0xcffbd45b path_put +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0289b61 blk_insert_request +EXPORT_SYMBOL vmlinux 0xd04b809c cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xd04ed7ee set_bh_page +EXPORT_SYMBOL vmlinux 0xd04fe032 vfs_getattr +EXPORT_SYMBOL vmlinux 0xd0616a98 smp_call_function_many +EXPORT_SYMBOL vmlinux 0xd078def0 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0xd0799edd posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0825415 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xd0838bcd journal_stop +EXPORT_SYMBOL vmlinux 0xd09f080a simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0bc3549 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f0d945 down_read +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd11e592e cdrom_release +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd159f557 phy_find_first +EXPORT_SYMBOL vmlinux 0xd1629d11 sk_wait_data +EXPORT_SYMBOL vmlinux 0xd163b081 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0xd172cb8d netdev_increment_features +EXPORT_SYMBOL vmlinux 0xd17ee2de replace_mount_options +EXPORT_SYMBOL vmlinux 0xd1859d1c neigh_compat_output +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1ae1fe0 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xd1b85321 bdput +EXPORT_SYMBOL vmlinux 0xd1c8ee9c dquot_initialize +EXPORT_SYMBOL vmlinux 0xd1d299ef read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xd1d82294 max8998_update_reg +EXPORT_SYMBOL vmlinux 0xd1e4814d locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xd1f152ad kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd2267b52 generic_make_request +EXPORT_SYMBOL vmlinux 0xd2329de3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xd23a45b2 sock_no_listen +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd2577844 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd266efe7 mempool_create +EXPORT_SYMBOL vmlinux 0xd276f795 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xd29161dc d_drop +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29a47ba jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2c46387 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd3493ba5 pskb_copy +EXPORT_SYMBOL vmlinux 0xd35e249a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0xd36c82ef __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3a23745 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3b6d13f skb_unlink +EXPORT_SYMBOL vmlinux 0xd3ba7307 writeback_in_progress +EXPORT_SYMBOL vmlinux 0xd3c08471 gen_pool_create +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd41984a1 fasync_helper +EXPORT_SYMBOL vmlinux 0xd432c855 simple_setattr +EXPORT_SYMBOL vmlinux 0xd44ad4d4 vfs_link +EXPORT_SYMBOL vmlinux 0xd46517c8 mpage_readpage +EXPORT_SYMBOL vmlinux 0xd47e284c tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xd4e62696 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd5517d3d blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xd56fa0ea proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b487c4 fsync_bdev +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd5f24fe5 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xd5faa091 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xd6133e66 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd629316a llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd63722d9 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xd6386ca1 pci_get_device +EXPORT_SYMBOL vmlinux 0xd648cff8 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xd660d309 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xd68b07bb ip_check_defrag +EXPORT_SYMBOL vmlinux 0xd6b1b4a5 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6b5d54b iget5_locked +EXPORT_SYMBOL vmlinux 0xd6cb57e0 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f0534b genphy_resume +EXPORT_SYMBOL vmlinux 0xd712bcc6 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xd71e9cbc pci_find_bus +EXPORT_SYMBOL vmlinux 0xd72419d1 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xd73f0ff2 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xd73fd4ba dquot_free_inode +EXPORT_SYMBOL vmlinux 0xd7556931 sock_no_getname +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd769f16d kill_fasync +EXPORT_SYMBOL vmlinux 0xd76a0202 secpath_dup +EXPORT_SYMBOL vmlinux 0xd77466f0 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd7841eeb skb_copy +EXPORT_SYMBOL vmlinux 0xd7923bb7 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd79e302f generic_file_llseek +EXPORT_SYMBOL vmlinux 0xd7bd3af2 add_wait_queue +EXPORT_SYMBOL vmlinux 0xd7cdc715 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7eeb87d ps2_drain +EXPORT_SYMBOL vmlinux 0xd7f0d93e sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xd7f91a8c block_write_end +EXPORT_SYMBOL vmlinux 0xd808841a xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xd80cca7c __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xd80fcc03 d_set_d_op +EXPORT_SYMBOL vmlinux 0xd811fe1b pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xd82a9a5c tty_port_init +EXPORT_SYMBOL vmlinux 0xd849c2d5 __cleancache_flush_fs +EXPORT_SYMBOL vmlinux 0xd852e0d2 igrab +EXPORT_SYMBOL vmlinux 0xd8557f79 __mutex_init +EXPORT_SYMBOL vmlinux 0xd86946a1 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xd887e76f security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0xd888f9f0 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8af46d7 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xd8d21fe5 inet_getname +EXPORT_SYMBOL vmlinux 0xd8dff1b2 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9043494 first_ec +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd91ea38c x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd93111ab sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xd9342633 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xd937415f do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xd939f13a __scsi_put_command +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd94743ef node_states +EXPORT_SYMBOL vmlinux 0xd967c2ae sock_create_kern +EXPORT_SYMBOL vmlinux 0xd969b2c7 amd_e400_c1e_detected +EXPORT_SYMBOL vmlinux 0xd96b050f mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9b7bfaf udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xd9c5b42a vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0xd9ddcc07 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xd9f53796 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda0e2cb3 netdev_set_master +EXPORT_SYMBOL vmlinux 0xda25f608 locks_free_lock +EXPORT_SYMBOL vmlinux 0xda5dfda8 tcp_prot +EXPORT_SYMBOL vmlinux 0xda600da1 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda9a2e8f kernel_read +EXPORT_SYMBOL vmlinux 0xdae1dd91 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0xdae21dd6 kset_register +EXPORT_SYMBOL vmlinux 0xdb0c08d9 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xdb185e7b __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xdb370b1d mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xdb422eb8 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb70f459 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb9e2c22 posix_acl_create +EXPORT_SYMBOL vmlinux 0xdba228c2 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xdba23cec pci_disable_ido +EXPORT_SYMBOL vmlinux 0xdbb52d77 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xdbb5ad5c node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0xdbb70600 seq_open +EXPORT_SYMBOL vmlinux 0xdbba4fc5 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xdbbead20 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xdbc49da1 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe280d4 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xdbe63366 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2519e0 param_set_ulong +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc49a94f proc_symlink +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc6fb378 inode_init_owner +EXPORT_SYMBOL vmlinux 0xdc7d62db mpage_writepages +EXPORT_SYMBOL vmlinux 0xdc841dcc dquot_file_open +EXPORT_SYMBOL vmlinux 0xdc984e14 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdccef6b0 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xdcdabd83 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xdcde6a01 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xdd0357fa bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xdd1a2871 down +EXPORT_SYMBOL vmlinux 0xdd1c65f6 blk_finish_plug +EXPORT_SYMBOL vmlinux 0xdd3c9d3d tty_port_put +EXPORT_SYMBOL vmlinux 0xdd551ce1 ps2_init +EXPORT_SYMBOL vmlinux 0xdd69a2f3 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xdd81629a dev_remove_pack +EXPORT_SYMBOL vmlinux 0xdd8ea9f5 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde16dc16 tboot +EXPORT_SYMBOL vmlinux 0xde33495b key_validate +EXPORT_SYMBOL vmlinux 0xde3401be alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xde401a79 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xde4f01e5 lro_flush_all +EXPORT_SYMBOL vmlinux 0xde5cdeca __seq_open_private +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xded4e469 cad_pid +EXPORT_SYMBOL vmlinux 0xded956d8 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xdedcf990 compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xdef9a144 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xdf0aac2b scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf1259fe blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xdf20519f xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xdf2d0f27 make_bad_inode +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf66c97a mnt_unpin +EXPORT_SYMBOL vmlinux 0xdf7d88d3 vga_get +EXPORT_SYMBOL vmlinux 0xdf869735 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfd27815 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xdfe4e890 sock_no_connect +EXPORT_SYMBOL vmlinux 0xe03e4284 block_write_full_page +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe05280ef vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0774c41 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xe0a6070b pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xe0a63210 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b9f724 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0fc24aa param_set_int +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe161c215 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xe168c05c sg_miter_next +EXPORT_SYMBOL vmlinux 0xe16f8314 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xe173dfdd journal_start_commit +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe176aa95 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xe1801ad6 would_dump +EXPORT_SYMBOL vmlinux 0xe19dd4d0 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xe19fbe39 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xe1ab9af8 blk_integrity_register +EXPORT_SYMBOL vmlinux 0xe1c706fa blk_fetch_request +EXPORT_SYMBOL vmlinux 0xe1ca32d2 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe22a8f95 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xe22e3e17 abx500_register_ops +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2614ac8 seq_read +EXPORT_SYMBOL vmlinux 0xe26755fd tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xe2678d1c key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xe269e168 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xe2982658 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe2c8c35b inet_put_port +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2def71d intel_gmch_probe +EXPORT_SYMBOL vmlinux 0xe2e02f2f i2c_clients_command +EXPORT_SYMBOL vmlinux 0xe2e9f6cb remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xe30285b2 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe328d932 idr_remove_all +EXPORT_SYMBOL vmlinux 0xe346d295 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xe356ae29 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xe356c66a cpu_core_map +EXPORT_SYMBOL vmlinux 0xe364825a inet_sendmsg +EXPORT_SYMBOL vmlinux 0xe39063d6 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xe396a9f8 register_con_driver +EXPORT_SYMBOL vmlinux 0xe3a374ce bdev_read_only +EXPORT_SYMBOL vmlinux 0xe3a8239d cdrom_check_events +EXPORT_SYMBOL vmlinux 0xe3b1bcef netif_rx +EXPORT_SYMBOL vmlinux 0xe3b1fcf6 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xe3bfd946 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xe3d27f47 dev_trans_start +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3d78ca9 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xe3e29c9c __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe41632a8 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xe4174d8f pci_enable_msix +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe43dbc05 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xe4418eed km_query +EXPORT_SYMBOL vmlinux 0xe44918f8 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xe4575a90 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xe45e3edd __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xe45f60d8 __wake_up +EXPORT_SYMBOL vmlinux 0xe4619200 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xe4719db3 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe491c0f5 phy_start +EXPORT_SYMBOL vmlinux 0xe4a543cb delete_from_page_cache +EXPORT_SYMBOL vmlinux 0xe4b0a189 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xe4b24b8c __next_cpu +EXPORT_SYMBOL vmlinux 0xe4d44492 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xe4f1fb50 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe516e6ca agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xe51723c8 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe554fe7e pci_dev_put +EXPORT_SYMBOL vmlinux 0xe573e820 nf_log_packet +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe586d99e is_container_init +EXPORT_SYMBOL vmlinux 0xe594a624 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5cfba57 dcb_setapp +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f2c006 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xe60a3168 prepare_creds +EXPORT_SYMBOL vmlinux 0xe624246b vfs_rename +EXPORT_SYMBOL vmlinux 0xe64b2cc0 agp_backend_release +EXPORT_SYMBOL vmlinux 0xe6570b89 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xe6799bd3 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xe69666fd gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a3c28a set_pages_x +EXPORT_SYMBOL vmlinux 0xe6b2ba00 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xe6b3fe21 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xe6b41a41 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xe6b6f8ce agp_enable +EXPORT_SYMBOL vmlinux 0xe6c95195 agp_put_bridge +EXPORT_SYMBOL vmlinux 0xe6d4dc34 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xe6d55ee1 blk_init_tags +EXPORT_SYMBOL vmlinux 0xe6f7e0ee max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe70ec0f8 d_validate +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe729f510 generic_read_dir +EXPORT_SYMBOL vmlinux 0xe75dfd10 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe766f504 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe77f7271 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0xe78e6636 dquot_destroy +EXPORT_SYMBOL vmlinux 0xe79caa12 sock_no_accept +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7ac0718 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xe7bba05c eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e20e96 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8360d9d vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xe83776f3 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xe83eb53d netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xe842461e journal_get_create_access +EXPORT_SYMBOL vmlinux 0xe85c2b65 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xe85ca022 bdi_init +EXPORT_SYMBOL vmlinux 0xe860a5d2 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0xe8688644 ht_create_irq +EXPORT_SYMBOL vmlinux 0xe86c6c06 llc_sap_close +EXPORT_SYMBOL vmlinux 0xe8748ab2 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xe87933b3 lock_fb_info +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe88a0b5e blk_rq_init +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8c13605 i2c_transfer +EXPORT_SYMBOL vmlinux 0xe8cc5307 km_policy_notify +EXPORT_SYMBOL vmlinux 0xe8ebf346 ab8500_gpadc_ad_to_voltage +EXPORT_SYMBOL vmlinux 0xe90450c8 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xe9146d93 dev_change_flags +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe92ca0d5 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xe92d108c inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xe93b3840 page_put_link +EXPORT_SYMBOL vmlinux 0xe93c9a77 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe97f4c68 __nla_reserve +EXPORT_SYMBOL vmlinux 0xe9972313 d_rehash +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9980380 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xe9a6219e uart_get_divisor +EXPORT_SYMBOL vmlinux 0xe9b3d3b5 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xe9e7f7bd textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xe9f505b3 nf_reinject +EXPORT_SYMBOL vmlinux 0xe9fad26e bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xe9fc6930 set_user_nice +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea19bfa0 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xea293405 load_nls +EXPORT_SYMBOL vmlinux 0xea2c4437 set_page_dirty +EXPORT_SYMBOL vmlinux 0xea3a8781 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xea5123f3 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xea53f68d netdev_features_change +EXPORT_SYMBOL vmlinux 0xea5fe4b5 set_pages_nx +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea8a6c75 param_ops_long +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeac6a133 tcp_child_process +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeade61b4 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb067cf1 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xeb0dcec7 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb79c2f6 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xeb8cfd49 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0xeb8f9a0c inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xeb90af99 nonseekable_open +EXPORT_SYMBOL vmlinux 0xeba677bd posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xeba7a770 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xebb10eb0 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xebb5ecd4 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xec01981c swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec186219 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xec21e3a9 pci_release_regions +EXPORT_SYMBOL vmlinux 0xec27c4d1 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xec2fdfea pnp_possible_config +EXPORT_SYMBOL vmlinux 0xec36ed13 bio_copy_user +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec6fd890 current_task +EXPORT_SYMBOL vmlinux 0xec8769cb blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xeca05a4f compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0xeca9f2c5 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xecb65a8c pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xecb721f1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xecbd4511 kobject_del +EXPORT_SYMBOL vmlinux 0xecc3e33f con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xecd6867f sg_miter_stop +EXPORT_SYMBOL vmlinux 0xece7611c request_key_async +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed44a80c invalidate_bdev +EXPORT_SYMBOL vmlinux 0xed4b900e vfs_fstatat +EXPORT_SYMBOL vmlinux 0xed668c4b __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xed694bc0 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xed6aac71 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xed9609fc padata_stop +EXPORT_SYMBOL vmlinux 0xed98c57b pipe_lock +EXPORT_SYMBOL vmlinux 0xed99e5b2 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedb4db1f ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd81b24 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xee051bc8 wait_iff_congested +EXPORT_SYMBOL vmlinux 0xee1c4f36 current_fs_time +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee446ecc ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xee4d42b1 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xee6d03b5 __bforget +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee9816b0 free_task +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeecd750b blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xeecffdb3 ip_fragment +EXPORT_SYMBOL vmlinux 0xeeefa670 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xeeefe80e vmtruncate +EXPORT_SYMBOL vmlinux 0xeefe9b4d xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xef059c1d generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xef331a0b tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xef3dea2a inet_listen +EXPORT_SYMBOL vmlinux 0xef45d32c __kfifo_init +EXPORT_SYMBOL vmlinux 0xef6acf45 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xef72c0f8 kernel_bind +EXPORT_SYMBOL vmlinux 0xef7a011d netlink_ack +EXPORT_SYMBOL vmlinux 0xef814e03 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xef883f43 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefc3e948 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xefc8baf5 blk_get_request +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xeff688f5 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xeffb0a5d __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0040079 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf007f95e keyring_clear +EXPORT_SYMBOL vmlinux 0xf016b4b2 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xf0491f4d generic_delete_inode +EXPORT_SYMBOL vmlinux 0xf04b4b93 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xf057a1ff pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xf0607d19 set_security_override +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf079cb5a tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xf0960486 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xf0adc6ec journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10a0802 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf11f1e94 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf14c07f0 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xf159879c prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xf15d6df5 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xf16aa99b agp_free_page_array +EXPORT_SYMBOL vmlinux 0xf16ef48a agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0xf176d98f find_vma +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1973a3c seq_putc +EXPORT_SYMBOL vmlinux 0xf1a87823 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xf1b30728 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xf1b6b228 kernel_listen +EXPORT_SYMBOL vmlinux 0xf1bba4d4 agp_free_memory +EXPORT_SYMBOL vmlinux 0xf1bea6f1 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xf1ca97ec phy_register_fixup +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1dfbb1b md_write_end +EXPORT_SYMBOL vmlinux 0xf1e141c3 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1faac3a _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf2030e60 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xf20d0a5f pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf21797b6 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xf22bd235 page_symlink +EXPORT_SYMBOL vmlinux 0xf22c4f09 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xf230385a cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xf23cb434 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf258fcff create_mnt_ns +EXPORT_SYMBOL vmlinux 0xf2627b00 take_over_console +EXPORT_SYMBOL vmlinux 0xf28ed6e2 machine_to_phys_nr +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2aca324 skb_append +EXPORT_SYMBOL vmlinux 0xf2b6e235 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xf2c4ea15 bioset_free +EXPORT_SYMBOL vmlinux 0xf2c6b00e pci_set_mwi +EXPORT_SYMBOL vmlinux 0xf2ca556c blk_put_queue +EXPORT_SYMBOL vmlinux 0xf2eb7ef4 tty_port_open +EXPORT_SYMBOL vmlinux 0xf310f177 framebuffer_release +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31717e6 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xf32055e7 dev_base_lock +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf33c6bb8 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xf3412a7a jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf348a649 security_path_link +EXPORT_SYMBOL vmlinux 0xf35ff9c7 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xf37260ab _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf39a2d9a proto_unregister +EXPORT_SYMBOL vmlinux 0xf3ae0c0c scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xf3b11703 mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3cdbb7a genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xf3cf0cdf kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xf3d68ca2 inode_permission +EXPORT_SYMBOL vmlinux 0xf3de31b5 set_create_files_as +EXPORT_SYMBOL vmlinux 0xf425fdce pci_request_region +EXPORT_SYMBOL vmlinux 0xf42ddc05 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xf432347a qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf450eb08 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf4677458 eth_header +EXPORT_SYMBOL vmlinux 0xf47d7718 __quota_error +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4dd1ea8 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xf4f00a00 netdev_notice +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f19e51 downgrade_write +EXPORT_SYMBOL vmlinux 0xf4f1d73f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xf4f48f17 napi_get_frags +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf5201513 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xf5218a39 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xf530a5c9 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xf5365e00 noop_fsync +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf536e788 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf57e3bf9 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xf59cd265 get_super +EXPORT_SYMBOL vmlinux 0xf5b69b96 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xf5bc76eb dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cf326a param_ops_short +EXPORT_SYMBOL vmlinux 0xf5d6db3f acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xf5e7bfdb input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf605726c ip_setsockopt +EXPORT_SYMBOL vmlinux 0xf612809a param_get_int +EXPORT_SYMBOL vmlinux 0xf61f5bfa devm_free_irq +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf64f58bc xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xf68be2f7 tty_vhangup +EXPORT_SYMBOL vmlinux 0xf69cb575 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xf6a2a632 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xf6b733c3 kobject_set_name +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d7c640 __pagevec_release +EXPORT_SYMBOL vmlinux 0xf6e8c697 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf715cca1 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xf72c4068 force_sig +EXPORT_SYMBOL vmlinux 0xf747dd44 kstat +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7664059 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xf77e6ace md_unregister_thread +EXPORT_SYMBOL vmlinux 0xf78bed9b dm_register_target +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf797509b vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xf7d71918 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0xf7e37635 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xf7fb243c idr_for_each +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf82652a1 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf83ebae2 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8a0bc1f fd_install +EXPORT_SYMBOL vmlinux 0xf8b0d370 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xf8b35b57 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xf8bd0c2e tcf_exts_change +EXPORT_SYMBOL vmlinux 0xf8cd5eba inet_del_protocol +EXPORT_SYMBOL vmlinux 0xf8e83b2c i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xf8eb6958 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xf8f18e8c ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xf901de0d mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0xf9164abe bdgrab +EXPORT_SYMBOL vmlinux 0xf91eda8d dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xf931a705 init_task +EXPORT_SYMBOL vmlinux 0xf9335f83 dev_warn +EXPORT_SYMBOL vmlinux 0xf945a0fd redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xf95a8a5e sock_setsockopt +EXPORT_SYMBOL vmlinux 0xf97456ea _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xf98b8494 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xf98df707 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xf996e892 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c8aef9 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xfa02b933 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xfa131450 sk_alloc +EXPORT_SYMBOL vmlinux 0xfa30957c mempool_free +EXPORT_SYMBOL vmlinux 0xfa37e014 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xfa4fd95f skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xfa55e879 sock_wfree +EXPORT_SYMBOL vmlinux 0xfa61271a simple_unlink +EXPORT_SYMBOL vmlinux 0xfa67a0a9 scsi_init_io +EXPORT_SYMBOL vmlinux 0xfa8e9daa pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xfa979438 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xfac28f77 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xfad4cbcf input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xfada9e1e dquot_drop +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb49ff36 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xfb5f846a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb9d6a80 register_md_personality +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbae2c92 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xfbc26477 sg_miter_start +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbf9305c generic_setxattr +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0983dd jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xfc10f4db pci_claim_resource +EXPORT_SYMBOL vmlinux 0xfc2465fb alloc_trdev +EXPORT_SYMBOL vmlinux 0xfc25427d filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xfc375ba2 __page_symlink +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc5a0b01 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xfc5e936c log_start_commit +EXPORT_SYMBOL vmlinux 0xfc6e10d5 free_buffer_head +EXPORT_SYMBOL vmlinux 0xfc710809 posix_test_lock +EXPORT_SYMBOL vmlinux 0xfc7e81c8 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xfc842a1a skb_clone +EXPORT_SYMBOL vmlinux 0xfc858b39 netdev_printk +EXPORT_SYMBOL vmlinux 0xfc872fd1 get_ibs_caps +EXPORT_SYMBOL vmlinux 0xfc882045 kern_path +EXPORT_SYMBOL vmlinux 0xfc8b547e swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xfc8d2537 input_flush_device +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcb5d99c mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcd35789 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xfce40562 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd0b5706 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xfd185216 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xfd2c36bd ip6_route_output +EXPORT_SYMBOL vmlinux 0xfd3153b5 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xfd48c0ef journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xfd4d2979 bdevname +EXPORT_SYMBOL vmlinux 0xfd4ee10d dquot_commit_info +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6a20a6 flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfd6b3d0c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd845a39 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xfd947676 get_phy_id +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdae9c88 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdede1f2 phy_start_aneg +EXPORT_SYMBOL vmlinux 0xfdee7d42 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xfdf33486 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe285ab2 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe3f85bc tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe5f8e22 scsi_put_command +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe79d1c0 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe83841e pnp_device_detach +EXPORT_SYMBOL vmlinux 0xfe9bea8a md_register_thread +EXPORT_SYMBOL vmlinux 0xfea5f5fa security_file_mmap +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed778c1 get_disk +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef7f61e uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2e7fed qdisc_destroy +EXPORT_SYMBOL vmlinux 0xff4bbb8e pid_task +EXPORT_SYMBOL vmlinux 0xff4e9fbc mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff72b332 neigh_table_init +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff778292 dev_addr_init +EXPORT_SYMBOL vmlinux 0xff874eba check_disk_change +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffee8bdb __xfrm_decode_session +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x19dc7881 twofish_dec_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x5e752773 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x018ab809 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0233d287 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x047a0174 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0a322d43 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0c97ccb5 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0d980605 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0dfcec26 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0e1f9b81 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x10558e29 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x16302076 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1790476a kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1b980821 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1bab3df2 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2194fb12 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x253a347a load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x28949ae9 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x29ace0e4 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2cbfcf1f __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2d464b8b __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2d9db2a2 kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x315faeb5 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36c6abb0 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36ca6022 x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3d3b9cea kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x405f7ec2 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x40dbc002 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x414e149b kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x42e43000 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4343b54c kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x43ef7782 gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x447ba9ad kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x44fa9ea6 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4946f123 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4969e54f __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4aaea4ec handle_mmio_page_fault_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e1f6f8a kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x50a59c37 hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x520871df kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53cf94fd kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5464e582 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x55f42405 kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x58caca01 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b207df6 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5cce9acc kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e261528 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x65916217 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x65ea7dc1 __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67e0bc4e kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x698380c6 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a9dd45f kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b1275f7 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b1552f9 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6f8494ca kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x709cd8cb kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x73e6c679 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x78828d04 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7978cc06 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c510dd4 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c9b19a5 is_noslot_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8594f320 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x86ad26c5 kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ceec857 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8d4f95cd gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x910d8e46 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x942d6baa kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95a9f02f kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99c58de8 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9fa106c7 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa4021de1 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa6522738 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa796af6d kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa89b0318 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa91845be is_invalid_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xac057c39 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb18562a9 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb5a09a3d kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc0facf63 kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc32d856b kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc32e5bcd __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6ebe3e0 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc2d11da kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc33d62d __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcf2b2070 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcf6f6882 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd69a37ed __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdaadc0a5 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdab11b00 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf10820d kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe18cb4e6 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1f13aac kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4cc7549 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe7b35e4c kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe9513b03 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea404f34 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xebcfb853 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xecc3bed9 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef1043d9 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef651e7c gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf1f3f749 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf3736c88 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf613d4d8 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf7d37bed kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa3fb4d3 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc17a7da kvm_get_dr +EXPORT_SYMBOL_GPL crypto/af_alg 0x0d148dbf af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x24b56ef6 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x63aba7d7 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x6f96f79c af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x7e7cde9c af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x8d9981d3 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xa47f233a af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xb7f61094 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xe195dc23 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xd3a73330 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x3d0ddf11 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x4fbaa215 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x057e4e56 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xd1e29181 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1d076835 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x31366e95 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5c351d00 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9b685c75 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7bad444b async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xd8f22dda async_xor_val +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x58eac845 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cryptd 0x22ba22e0 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x2f90808f cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x3ad338a1 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x6c3b92dc cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xa6c483b7 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xbf68165e cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xc3212a33 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xe6c5619f cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xe7afdb5d cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xf980e98b cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x14770379 twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1c8984c7 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x87bd07bd acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xb9a141b0 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xe1372311 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x93a2fbea __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xbb5ad9d6 __pata_platform_remove +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/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/bcma/bcma 0x02e8ea4c bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0c75ee10 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1083094b bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2d6626c0 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4102b5bd __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7a397d1b bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7aa13210 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x85ed60ea bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x927f80d4 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x97a7da75 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbb846380 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xef475e33 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf549aba7 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0527b0bd btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2b36863c btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x42c6cd22 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x43b6030d btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4f4bb5f6 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6a861fec btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa6d396e2 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbf6b9b72 btmrvl_remove_card +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/dca/dca 0x240fec22 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2b473598 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x427a140e unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x574e8076 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x942721c6 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xacc66185 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xfeacbc4a dca_remove_requester +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x173fb9b6 amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0cd007e2 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x12c349cf edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1d6b3d64 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2fe6b3af edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x33ea0af6 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x34188f2d edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x37c34a5b edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x435971d6 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x43eba6c0 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x56c92962 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5a90af4c edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7510283a edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7ba7fd68 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7e2333bc edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8821136c edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x96be1963 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9700af2b edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x97f183f3 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa30f139d edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb09901da edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc846d067 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcc9c5cf8 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcff646b1 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xde5e8944 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe2bc0082 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0d38cee6 amd_decode_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0dc0b68c amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x6d4e6991 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2b73a3a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xc0bb404a cs5535_gpio_setup_event +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x2a1fbe22 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xb9b4854e bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x6ca6b956 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xca2c4c7c __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x128811b1 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x2f7b2068 drm_class_device_unregister +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/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0d641aea hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1348bca3 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x17d8a5cf __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1d5ac930 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x34c8f22e hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x35a58cef hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3fda6ebf hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x523123f5 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6eaf7b69 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x75f2d713 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7ee813b6 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b291462 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8be07eb5 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x91116b16 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x964a5216 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa5eb5bd1 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa74a0514 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb15828a0 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb2125335 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb3aebefb hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb524c568 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb69f4d65 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb919800d hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcb72d8ce hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdc537768 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf923b601 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x78f907ad roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x1fb3cdb6 roccat_common_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x8c3a6074 roccat_common_send +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x137ed520 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x446ed3fd usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x8bc90313 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe6289dca usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x04d9f1cf vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x05ef814c vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x0aa9d15c vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x284103c1 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x9fa8a771 vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xcad2ed66 vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xce199c2a __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd25859e1 vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xde8e785a vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xe9ab172d vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x216b0aa6 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x23135218 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x35bc0c68 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x37468e75 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6e65b3f5 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x9b84c0ce i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xc703d9c1 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xd3a81eb0 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf487d0a2 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xb0323f3a nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x46bde928 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x4e3aa2fd i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x35eecd0a i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xeb84f979 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xcb526bf8 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xfc3b22e3 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x225fa503 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x27060345 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x36d4a1e6 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4981c883 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x543fd5d9 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6678d0e0 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9895d547 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa97bd3d6 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf0dcb1c7 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf27bf698 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf3809ee4 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf6bec2d5 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x108762c2 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1acab528 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x25aba7dd gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3a08fc2c gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3e4daa66 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x422d47ed gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x43ea7b42 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4891ce0a gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5b3a1870 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6214de3f gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6d99f6e6 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x95558859 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa6d05de8 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xad14bbac gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb75d2c26 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdeaa8e35 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe5bcb296 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xff1e173e gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3292d36b dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aba7f5e dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +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 0x9310ba06 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9c256008 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa1d2413a dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xafbda3f3 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcbb1bae2 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +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-multipath 0x01de7884 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x51eed752 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 0x0712d34e dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x18152857 dm_rh_delay +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 0x4430764e dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45ab972a dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4af89fb1 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4e067f2b 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 0x843ae9c0 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa68e1f06 dm_rh_get_state +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 0xdbaa5b93 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfad9d53a dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc62ef4e dm_rh_get_region_key +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 0x009e200c dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x03ced457 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x08a936ca dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11f4ffac dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x28400536 dm_sm_checker_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x42727fbb dm_sm_checker_create_fresh +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x43293720 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x63b2ff62 dm_btree_insert +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 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x769a642e dm_tm_open_with_sm +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 0x80afbcf5 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x98925a60 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa6aae3ea dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa7e46220 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb967690a dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdb562135 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xefba9b23 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf99dc2cf dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/raid1 0x8a15eb60 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x1b7dc361 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x163ceb47 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x36ef6d90 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6c21164a saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6e18adbf saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x800b5ff9 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8701a47d saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8f08278e saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb88c1e44 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbdd1a474 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xee85ddc4 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xfeabb559 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0dc28904 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x37f12b8f saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4405b91d saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x62ee0eb0 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8f09c0b7 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xc73e9f6d saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xde124e34 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x9631a501 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xd15dac44 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x51b04df1 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xa1517c67 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x6afd2550 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xcf1660aa tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x29833127 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x4f71d72e tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x60f81fb2 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x45332761 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xfed37d3a tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x0349052e simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-demod 0xdc146ba3 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x17ccc588 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x7bdbea2d tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x019fd2ed mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x07a9bbfc mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x07b77741 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x086c9149 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2c2d9be9 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4aa3b8fc mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4dbf2ac2 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7152e0e8 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x91cf883e mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa1cc6671 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa6ae1a57 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb939ccd1 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd566705d mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdc59ebf0 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdc9533f9 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf8d43959 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf9a147dc mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x03a72556 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0493b3d8 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0783e775 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1cc83874 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1d4fb92e smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1e90c71f sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2b88b791 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x30b73710 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4ad2d3e2 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6f9b3e1e sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x76222253 sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x868362ed smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb5778695 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc16cee73 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc3c31f9a smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcc866efc smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcd66a217 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe45e95d6 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf163715c smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x09ddec33 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x57766232 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x6630cd43 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa93c40e8 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xad623eba ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xdde81ce5 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xffd73ea2 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x01a1f8b1 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1f7b45ca rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2e720c87 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4ae0a913 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x564d9510 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5c9ab256 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x60036b92 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6311a9ee rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x79fdef95 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb4fcb11b rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xba8323c0 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc57aeb71 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe4399e4c rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf3adb80c rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf9ed3334 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfa47c509 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfec8cf8e rc_map_get +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x048cbae4 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x12eb2d91 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1d321599 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x248b1635 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x35ae5e39 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4734ca2b cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5a573142 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5fbb4f05 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x7b9ee4bf cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x814c0dd8 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x93318ac5 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x95d86bc6 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9985d24d cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa1d1c899 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb901b60e cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd7f159c8 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xdee46286 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe89903c6 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xebfde2c7 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xe6de53b7 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x236c7416 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x370a43e7 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x5764b6e4 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x57fd2246 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x6d85dd36 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x8b5c3bbc em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x9796bdbc em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa4ff7a0a em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd13c66f9 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xea099421 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x0f3b7140 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x1f036777 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x42e26829 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x9d8ebc23 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb674b015 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x1ae89682 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x2c5022ab tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x5e8e48d0 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xe5fde735 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x0c49d2b4 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4020a9d1 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x92f8935a v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc103366d v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xd5a1f0e4 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xfd295084 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0x35ada75d v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x2823d8d3 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x52e11ec4 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x5d1157a2 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x941c85c8 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0429f26d v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x04f9ceae v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x070fc71c v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1cd1eeb0 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2962aecd v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x36d36b02 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3dd38c94 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x632f9a55 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x6ceba51f v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x896f4cea v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc9bc4779 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe4275ab6 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfc7e9414 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0364487a videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x12620c17 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1fffc3d5 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2191e34a videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x22817202 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x26b94637 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2fe30ec3 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x40a1a485 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x55403ab3 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5be750c0 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6785bb6b videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6935ce75 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7d26425e __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x88ac6e97 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x90c67a79 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x934cc968 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x93befa04 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9667fea7 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaec4f6db videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb3a4ad03 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd5f5adfc videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe654a977 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xef1ca06b videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf93419aa videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x4ee45116 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x5bacd80a videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xef980756 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3c039458 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7461312c videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7e59529e videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8166d973 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa2a12aa7 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xaf1ecd80 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xcecc81f9 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe595ed19 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf1108b9d videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x20213b59 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x2d6ce471 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xf040f1b7 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x01e3da41 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x06bc4c5b vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x17052949 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x1da42d67 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x259c3e75 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x29caf3bd vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x3261a307 vb2_write +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x587d0e57 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x717f34d1 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x8b10fc2e vb2_poll +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x8d6bcd2f vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x9a914468 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x9e362fbb vb2_read +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xafda8106 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xb4eed527 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xed4dba57 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xf2f97feb vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x49638b55 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xdf31e360 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x36cc472e vb2_mmap_pfn_range +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0xb7141996 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0xe842c40a vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0xf7e6bfc0 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-vmalloc 0x4f1fb231 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x020537d1 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x04dd1992 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2bcefbd9 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x37bcf4de v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x467dd1e9 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4b3b4111 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x51514357 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6708bc8b v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6ae336d6 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x71a0d264 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x74701e29 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x82aa9901 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x84f27d48 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8fef588b v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb0507927 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb3970cc1 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb86406b3 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbe33388e v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xecbf9d95 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xed5929b1 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xfa2264eb v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xfcb4a9df v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x002ea7b8 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x582199b1 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6f8df0c4 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa93fd507 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xcd8602e3 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xdc310124 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xee7bc848 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf53d015a i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x29d1d107 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x033dbae2 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0a4bf6eb pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x20e518b8 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3f953177 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x462593de pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7b9cead0 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x80986f1e pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8ea93370 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9705999b pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xadadd411 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdf432c7d pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x001bd386 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x80f5baa4 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x08564ace pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x8fd26937 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xaf001b74 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xbfc91e38 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xf3dc092e pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x0f45dca2 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x98f09136 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc5cd9cb0 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xed93e22f sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xfa9538a1 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x4e61bb06 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x44a7d963 wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x56656ad4 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6e37a6a3 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xa8df04f9 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x6f78276d cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xbbed0a37 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc50ebfe3 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xcb837915 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2e26b01e enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x656e7257 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x6fbea246 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8bc2a3b0 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbaea810b enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xc6a44600 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf05a9e55 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x192f91cb lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x517abb3c lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xa96d0f2d lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xae212bd0 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xdbebae09 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xeb574a5f lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf68c8db1 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/pti 0x19f09b98 pti_release_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x23bde487 pti_request_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x52a78e81 pti_writedata +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x7b530587 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xef23e84a st_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x063556cb sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x506b4035 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6f627ff6 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8f3c8aa8 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xac4c87b8 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb6fefe65 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb7ca4c44 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd1fae613 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe55588c8 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x35552278 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x42f1f457 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x43029be6 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x971ef593 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xb1506882 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xb5d38e59 sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xb69367f7 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc9f98f01 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xe0e374a2 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x30cc71f0 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x62f986b6 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x9dfeb2dd cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x562062fa cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x04c44192 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x82907af3 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x87edceb9 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xc2416ea7 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x373d2b52 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xd0d86910 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00e948ec mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0ba7bae5 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0d3a66c6 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1a3f7cbf put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1f9e121b mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2696fe78 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2bbdc57d __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x320f19cd get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x38709ca2 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3cf55028 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4bac8c18 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x69b73bbc __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x77665866 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x92895426 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x931c875c mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9e248cf2 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xabdceaff mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb6dd9611 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdcc5c569 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe2ed26c1 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfb00b7ac kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x11c8c7bf del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x4cb21410 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5720b027 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x62ab51eb add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xebf8d7b5 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x5c448b05 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x8e9bf086 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x38c17f12 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x75e1cc07 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x7a87a02f onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x20539604 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2a140b47 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6d160d9e ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7489d100 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7624bfa4 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9b1fe327 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9cea36bf ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa2a0891b ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa9069d6b ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbd3fcf23 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc1b8d0e5 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc9ae9f4c ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf6ffb7cf ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x01fe04f8 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x5275ecc4 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xc04e2512 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xc9580580 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x04875161 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x064bfe98 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x15e83874 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x47ff127e register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x60c5d88d close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7f1375d1 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x82d899c9 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8a94642f alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8bc2f9ae open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9c395b22 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc3bbb479 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xea7e7c52 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x04062c67 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2c054c13 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5a107368 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x752c8407 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x011ac35a mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0151a0f7 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04dd7743 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x085132f3 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0bbbbcce mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c4075d9 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d4346be mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0ed22bde mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x100f63d7 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16761087 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1706a654 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x199c8158 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e991696 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x287759ee mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x33b5b4d7 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3427d3ef mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39746834 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f5ab4a6 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x404703d0 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47f24d01 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49e825ea __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55777bd8 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x63a3efa5 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ce11eb1 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f71b9cf mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72d20242 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7379ed25 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73976a17 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7667d8f6 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7816b33d mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f88971c mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fcd4139 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86af9a4d mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8bde7762 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x945f8641 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x94ce5d75 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x94ecff4e mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x959c2990 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x96a0e4a6 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x981fda70 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x988c5c77 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9dca5fcc mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f1b6bde mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa052a1ba mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2a70421 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa41a89d0 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa3b99c0 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xabe43995 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb85c2e59 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbdcee482 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbdd5f722 mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9c59c57 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccb40ad0 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce9666ba mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd34ba50e mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd71dc185 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc3b5c69 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdff75018 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe3c32c20 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7045558 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe839142f mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb45b465 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0b08582 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2eec1a3 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3347b99 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf618169e mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf636abde mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfdc2a54f mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x08711186 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x474357a5 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x5ae7eb71 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa9324b14 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd1eba6e4 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvtap 0xf22e5328 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x2603c78a usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x44449559 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9d1903c3 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xb44625c2 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x162ffcb7 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x3862fc37 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5e2ddb86 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x841d386e rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x99cd78b5 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc62389c4 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00749831 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x011c6cc8 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0c942238 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x10a5e8fb usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x141581cb usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1f440f03 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2c2295b6 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2c3ea0d6 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6a13292b usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x81728c34 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x84f467bb usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x87046887 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaeffc6ed usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb0b7a4f8 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb136c65c usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb4396f50 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb64fab73 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc145bb73 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xce1fd438 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe9d66d09 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeb047d44 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfbcb5868 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfe7047f8 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xffefef8d usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x07d57ca6 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0c283491 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x47fd5930 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5d0c628d i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7a68d4e6 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7ac8ba49 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9821139a i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa8af1b5a i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb4a66991 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc3c38e82 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd583e948 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdb73eecc i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe6c66de4 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf751f2dc i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf907f2e7 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xffefd868 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x943d180a libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x4eeac02e iwl_legacy_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x86e750bb iwl_legacy_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xc97b2b73 iwl_legacy_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xd7270ede iwl_legacy_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0fe99e84 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2a657658 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x58aaa939 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x63bf4edf lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x793ca09a lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8322caff lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8ccbc711 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb43dad43 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbe58f7a2 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc2efa1f2 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc42f5c7f lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc64f2590 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd0ac47e0 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd5d1ccf2 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd8b36cc3 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x57ba4dc6 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x59c762fe __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7649aed0 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xacc397d1 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xba6b85e6 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc305aed7 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd129c178 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xfbd6fb4b lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x3ba2938c if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x74ac3651 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x10bb5fbf mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x67e8b2f7 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x69d979b3 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7baeea9d mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7f06d4f9 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x82797022 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x919aa334 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9ae296e3 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9dcefbb3 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc2d4b7d6 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd06b9a3b mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x21697591 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5236810b p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6f7bb762 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7c586d34 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x8ae57734 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x8c304aec p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xae08f528 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xca8ecd9f p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xcfe10e97 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x017f584f rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x01a93cda rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0436e6f7 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x06ae83cd rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0ccf6cfd rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x193e0d91 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2528dfe9 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x35ff0927 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3613bf89 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x368cc8e8 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x38b93f7e rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x398b7d56 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x421cf685 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x44c6821b rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x46dc7b60 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5bce8f6a rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6dcbca4a rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x717afa4b rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7846d7a2 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7a08b9e6 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7bfc7d04 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7e1871f7 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7e8ff986 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x882a91f0 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9c96ec55 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9e0eef40 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaafb8bf2 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb34b7a7f rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb39a5e31 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb7c2c698 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbd6205e5 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc617d081 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd84fe877 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdecdfe29 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe8f83604 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf14e7e60 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf490007f rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x027be5cb rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x06e898af rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0a9c3e24 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0e9526b1 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1a70ae31 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1c659275 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f960e68 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x20d43702 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x24c181a2 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x28483334 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2e9c1be6 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x38ba6c68 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x38cab6f0 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3e99fbad rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x42e3386d rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4391fbb0 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4738b0ec rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x56685dd2 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5c1b5eb0 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x650a1cfe rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6995557d rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6ad71f01 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6f67e34d rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6ff72e19 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7b4c0da8 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x885b7a2e rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8e2369dc rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x92855601 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9854ebae rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9adda99e rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9eb0ec86 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa083eb78 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa1bd5a99 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xac3e10c6 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba911356 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbd899493 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbec4c1fc rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc6e1bdf5 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd6856f4a rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd6fb11bb rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd9c579d3 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdd801811 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xde1557d1 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe3f11b3c rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xec7e4b6f rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfaea88c8 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2ff8aee4 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x33f56b57 rt2x00pci_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x55de37e0 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5ce66d60 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x72b22444 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xce5d4074 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd06a1872 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xde9c6dec rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe8979b98 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x187ef411 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x29664c01 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3a04f32e rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3b6a2340 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3e41fc9c rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x55487178 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x55e4eb0b rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8a8e17c0 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x960a4086 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xac3c4af7 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb1c41126 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb8403cca rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xca98effc rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe163398f rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe1b5b206 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xee4051ee rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x00243308 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x2c3db4b0 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xe8fabcea wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x175bdf3e wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x1b3526f1 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x361850d2 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x38cadeb1 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x626d8174 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x81ec11a6 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x9da0692c wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26 wl1271_irq +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x7a098f0f acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xf2f2d66b acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x3a683e22 asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x7e73b3ec asus_wmi_register_driver +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 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x1a7672a4 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x939a2281 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xfc101909 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x28d4b3c6 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x37f727bd mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x3fb5c890 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xa3346855 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb81f5ad6 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xba80ce7d mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe90b55c8 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x89407e9d wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb34364b6 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc0cf2dd3 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc239869f wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc3a212cf wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc7129810 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x4e958ed3 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0500246c cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0a00adbe cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1996f78f cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2c73fbb0 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x356716d8 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3f7c5f0e cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x48f9eb3f cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x498ed96d cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x49931b6f cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4d777c75 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5abb1518 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6e9dcd7c cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x72bbfca1 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7bcade02 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7bd66e83 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7e09a0d0 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7f2fe137 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x871729ed cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8b1e80df cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8bb9c350 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8ff9b9aa cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x91383986 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa6e360f7 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa913c85e cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaadbfd24 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xafdbc5d7 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb1a68861 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb1bbc3e9 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb37ad174 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbb8471f5 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbcfa7d67 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc8553e27 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd21957a0 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd498c2e4 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdacd7454 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xde2c6bc2 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe16fa6b8 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe2cb9d0a cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe575fe0f cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe7cede58 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe9d34a44 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xea3fe9be cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xebb8ef5a cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf4e88654 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf71b7312 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0e84fb81 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x12c62b8b fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4ccc36a0 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x76062a13 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x775285bc fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x77793b71 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xaf4b0d0e fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd56934dc fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf802e69c fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x18f6d108 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x5fc7621d iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x73e86564 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa96a5ff6 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xc0e821a7 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xc65c6d9f iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b63bb28 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0bb79d89 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x151c80cb __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x204e17c4 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x21ba6690 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x226609d2 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f2a6e37 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3340b9e1 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x35af8db1 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b5f1e46 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3efbe413 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x48631d0a iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4bee001a iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ef55856 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f96cc37 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x547b3d1f __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x56bb235a iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x57162034 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5996457d __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b1c45f5 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5c1a5bd8 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5dba11de iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66300eb6 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6f776df0 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x72af33fa iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7efd411a iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x91c9088b iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x931aaa9b iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9c77997c iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa1dd8724 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa42ac578 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa88c465c iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaf55225d iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb341e3cc iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcabff0ec iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd1d485cd iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd6285719 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0a25e75 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3f56036 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe59c6052 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf1094366 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf5873628 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfbd1a267 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0447708d iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x352f8424 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3b52aecb iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x450c3f2e iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5514c2a0 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5e7c0e7e iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x90603a42 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xac3ceb0f iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb3e9aa8d iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb993a836 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcb001d0c iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdfd7423d iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe7621980 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xecf251f8 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xecfd5c61 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf85b2cbc iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x22bdeb2d sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x24146184 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x285eb141 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x37063985 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x45026e74 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4c339539 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4e825db6 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7a1b81f8 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7be776d2 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x847794d8 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x84a1adf6 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8786037b sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x98135102 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa9c8f087 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xab3e3df7 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xabed76a6 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xae471e21 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xafee8417 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb111b662 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbef89b44 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xea1bc334 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf08682b5 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf5fe5e5f sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc533ba4 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc79026e sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0b527198 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2e955d2b srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x444bb9ce srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x704e7559 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xba065038 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfb3ce00c srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x19c0b788 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2f1d83b4 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4461b344 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4bf82a89 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x700c626d scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb2f74a39 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbd25bd83 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc68a3921 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd842a339 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x027f89d0 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0c9ab307 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0d1787f7 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36927b53 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x38be7a98 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4320b969 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49dfcbbd iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x56b09a2c iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5c28fc3d iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5fd202e6 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x621576e1 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6cc48362 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x71fc7ab3 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x76dfc42f iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7e948818 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x83868bbc iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8cb80bff iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x91aa304f iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x980c6bc6 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa18f2bec iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb9253e82 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbb6944df iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcb35bba4 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd01ae726 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd2e13a3a iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdac0b5b3 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfe8c7956 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x71542946 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7857c364 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x89754a9c sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd7869806 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1d522524 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2307862f srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x729c95e1 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xaa4cc121 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd6f69c8e srp_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x03683ec7 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x5c22444e spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xa4bb16b0 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xce261f4b spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xe8863378 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xff5df338 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x11bca1cb comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x170fa02e comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8bfb41f2 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfc29cacc comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xffaeb436 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x1f287c48 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xb6d0662a das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x42ae9ed4 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xcdf53e2d labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x06a5b1a5 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x0b00319a ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x1a8bc6e2 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x71a80767 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x7c30b2fb ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x9d6b92dc ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xb8c79225 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd6daa998 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x3250fe58 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x38398664 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x521d7fba ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa6784e47 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa72a4417 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xc46c27e4 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x4a63935b iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x6aa63069 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x77d77fdd iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xf3ed494f iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0x35b85807 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x3a747138 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x44718dab spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5f23a9c8 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6da21141 serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x7111c7fb spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x764d01a9 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbaa86d8 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xce56e8c5 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd3fef96f synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xea57f6f7 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf1a070be spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf88331d5 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x48f58514 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4af0e9f5 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x53428a10 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5b1220fd usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6c34caa9 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6f62f4d6 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x763e4eea usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x803ff289 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x90747cd0 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9bf861e2 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc44d51f2 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd69df634 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe4ac64d5 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x123ab6fe max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x1fbab46f max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x461d399f max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x678f9494 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x7ef1f980 max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xfd42835e max3107_suspend +EXPORT_SYMBOL_GPL drivers/uio/uio 0x55880570 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc20ef015 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xf67e9eef uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xa0049f56 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xc4811dc3 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xa51a6a2c usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xc0c53044 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xdd9f9873 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xe619efd5 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1a90b5ba usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x255466b4 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x588ba2f7 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5c0cf769 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6653071d usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x74becc1a usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x86ebe39f usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x88fdf35c ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9ac1304b usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x07404562 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x21154e4f usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2c5c4292 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3b303312 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3b73c57e usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x52cee9db usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5818c4e3 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7a1440be ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7d13962b usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7f1afcf9 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x90037024 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x961c452f usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x988912d9 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa546fe29 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xac2c6460 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xadf899df usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd1149808 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdd25e92d usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe4475750 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe59fed48 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe5aa7de6 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0d3a8985 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0e5023a1 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1737d0f1 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x31a02ce5 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x377c8f57 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x456eb1be usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x674a9bf0 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6e721b61 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6f6d44cf usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x71f232ea usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x83e2c511 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8e2f6c7f usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9ffc66a3 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaef5c114 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb8e7fa5e usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbbe2e351 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd15cb10e usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd6d35cd5 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe29c4448 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe4d786da usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe5d20a4c usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xeca04982 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x23288bf4 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x37f370f0 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x43584b00 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x4541da94 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5d8c1327 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x01150bdb wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x15aeb555 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3d1c5d4e wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3d729670 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x439fbb6c wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x589a7a77 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x58a18a4c wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x72f6b468 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8ddc38b6 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x94ed57af wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x99162d9d wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xac07be15 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb9acc2ef wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xdf450133 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf133d8cd wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf9fed4d0 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x1a835514 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa2dbf785 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xc58f590a i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x192608f0 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x1b2e0acf umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x27159d8d umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x4af23f29 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x5d1943ac umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x82c4aaa3 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa12e6ecb umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xef96ac72 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x077fd5aa uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0bd096af uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1758a77c uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x18102ed6 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x210c9a33 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x223ae3d8 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2a31c61e uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2c68f156 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2eac7d42 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3914ec97 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x39f64b21 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x42ff6bb9 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47ee02a1 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4c246f2d uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4ec3244e uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4ef788bb uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5642b261 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x576a376c uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x672539cf uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x80a35775 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x84e9b05f uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8b310301 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8e336060 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x99e7fcdd uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9e1452ce uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa22a7a57 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaba2f3e7 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xad78ce11 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb3e1b9c2 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb4daef53 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbac9fe17 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc7eb4c19 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc9efc908 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xced53b46 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf6e5a7ac uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf79d9f9d uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfb07f362 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x0fd06377 whci_wait_for +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 0x0363f1d9 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1f91d69b ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x23b17689 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2db3c0fb ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x495bd8fe ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8f09a81b ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xcfa8145d ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x68d1ed9f fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x02441af4 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x30250da8 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x9b7b43b7 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xe7670545 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xe7899187 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x1639aa02 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x409d0940 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x55005337 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7d878102 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x87211b71 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8aa70320 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8b72dbfb w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xbf7eb6e7 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xfda62390 w1_write_8 +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x462c1ef5 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xd571038e dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xe35c40b3 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/fat/fat 0x15b3c930 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x17d266fb fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x3666d369 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x3fc62877 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x5ebcc887 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x683a504b fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x6908342c fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x709adf97 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x7a05b04d fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x7e03f92e fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x81912a62 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x8bd82c85 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x8e249a15 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x96589732 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xa3875b60 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xc19f44da fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0xc8a7fbc4 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xf1665180 fat_add_entries +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0b4b2c09 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x652df868 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7f887743 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xee9e32fc nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xffedc821 nlmclnt_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x011bb990 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x027f7b76 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b044f64 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0c9c5c7f nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0e429f7d pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x123f8353 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15c7d6e5 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x18cdcfbe pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c806be4 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3b1c7cf3 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x41ad40e8 nfs4_reset_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x467cf893 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x46d18f76 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x52c11680 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5b5f8155 nfs4_reset_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5c9c898f nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61b48b11 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67b0f4ff nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6d7d6b58 nfs_commit_release_pages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f2d2061 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b3c787e put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96299e38 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xacdb18bc pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb101b733 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6ccfc5b nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbc9c25e5 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbfda6a70 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbfdd1c0d nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcc8e8bce nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xce46102d nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xceb894b6 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5e5a4bf nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd8eecad1 nfs_commit_clear_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xde0ad19a pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe8289619 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe8f95ca0 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf4a7f270 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc90b600 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xffe82b10 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x6e8fca76 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xbc67c339 nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x72395d5c o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7cf4ea18 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 0x84b6bef1 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x97b6fe2a o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb15d111b o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc45b5266 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xcc4d7c37 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +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/dlm/ocfs2_dlm 0x2a4ac33d dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7198388d 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 0x92cda279 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xaf5ce835 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc241faef dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfbf8ceee dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x195070d5 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x44200d94 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5ec011ee ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x24935f26 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xcdc24ab5 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xdbab0c01 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x02371fcb garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x7b69110f garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xacf4cd33 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xb70ba21d garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xcce3903f garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xf96dd0af garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x4e0c20ce stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0xd1d0a651 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x4d2d751c p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x959f8751 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x7efb7a02 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 0xf1da389c bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0bcbe3eb dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x21dfb684 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2216655d compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2442875c dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2bb6c6c8 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2eb1f5ff dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3dd365ba dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e78dc48 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x503d68e1 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x652e8a32 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x665c6aab dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x67499f19 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x68e11c8b dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6c13745b dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x700a1053 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x79290e72 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8474166a dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x893cb970 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eb68a86 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x928d7a53 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x982f6407 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9c2a2c66 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa04302c4 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa278fc0b dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa340fc43 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa82c1c6b dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa9fd8a40 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb0466c6e compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbaaddfc9 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbde837b4 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcd3cbc88 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd1927cbb dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2134d9d dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd6a04511 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xec6b2cc0 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xee6a8e5c inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf70e77a3 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x28bfb399 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x38592203 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x68ce3c3d dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8c233c90 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9f000b5a dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd67182bf dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7d9d1aa9 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xdeb8bb49 unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x8c15043b gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x932a91ef gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x2037facf inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xe5fe7a0c inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x3a4e8931 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x4b39a4a5 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xe5033995 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x84c2f311 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x84f26bdd nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8bcb6f9d nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x95321e45 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb0411dc1 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfcc3c53e nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x185fefc2 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5a17621b tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5e8f7076 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6e328faa tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6f7a479e tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x7dbcf018 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x440d77fb l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5310ac3c l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5d87ebe6 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6d478cfc l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6e26ad31 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6ee0be1a l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7f9d6ac1 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x86295d65 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc23a8e12 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd1a8a69c l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd54c76c1 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf18e05b6 l2tp_session_create +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x21aeeb47 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3a97755c ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x76e9f9a2 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x851f6a0e ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xaf82aedf ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xcef45b1c ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe05c502d ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf44ab9d4 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0b2310aa ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x127882dd ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x128a6c6f ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x15a70403 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3705b121 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3bd82539 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x54a67561 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x68ba9527 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6a7b1f32 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x794e73f0 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8aafdef9 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9ca6d85d ip_set_nfnl_get +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 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa7f5c049 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc5f9b62f ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xcd3220c7 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x23eb59fb register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x3829fdfa unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5149af50 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x8f745d37 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00a55e5e nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x044d21b2 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0728d4dc nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x08a667e5 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0cc2dd4a nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12e5aedb nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1fd63489 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x28647973 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x29cb1c19 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f749264 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x358f15d0 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x377de401 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b7382bc nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3cfaafce nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ef4bfc8 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5839423e nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d066c88 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65bf03f7 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65e14f37 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67f461dc nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x686e5b9f __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d9ede10 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fc46706 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x721583fb print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72455373 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a889be4 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7edb0eda nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ffbde1f nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85aed67e __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89044a31 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8d6578d7 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f402f66 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91af790f nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96cedae7 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9839e8bc __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x99d45c87 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa48cede3 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf1b458c nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb06f2725 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb43f145d nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb85a0539 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb9b7f9df nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb9db9d87 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf531a55 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc01b50ff nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xceb1b26e nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcffd253d nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0d53de4 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4aada0a nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4c0f3b7 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd53d8183 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd75642c0 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdcf49557 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde4ca1c3 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3a72f36 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xecee76d3 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfcfee57d nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfdc0ae36 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffcca1de seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xf554f1ae nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x806b933b nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xb1a545a3 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x08a7694c nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6be98ba4 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6d7bb307 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x75c17353 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7688ca51 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbd1ee54a nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd132a11f set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe28e0a0c set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe2e3321e nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf77e0609 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x91c28af0 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x09b5a3a8 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x328c223d nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3e913ad7 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xad8a1f8c nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x13dc3f55 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xce372060 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x005b17d7 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x30ce98e2 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3877a4e0 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3ca227c6 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4cf4e444 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x53a1c32c nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x71d6eff4 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8f088a96 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xadb8e6cf ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbecdf4a4 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd3a02c9b ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdcc05a17 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xee2fbd7e nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x1234adb4 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xb3a3bc8f nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x1a7be67c nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2246b54e nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x4df88b8c nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x50d66a1f nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5a0e6ba9 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x84e981af nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb4d2b2b7 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xbfa43a79 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0d9164ea xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x122f75ee xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x41ec0946 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x54cfd8b5 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x55e37ba2 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x56d49c72 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x598caabf xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5caccb5d xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x75c60b6b xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x76767a8c xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x87177f0e xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8e34e4df xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x925c102a xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa12f357e xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaef37782 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd415432c xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd57765c8 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe5ee273f xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xedb6528f xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x133e13b5 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf7b03908 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x010da604 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x0149842b rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x021d8f39 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x1cdaff5b rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x1f8e55e7 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x27fba665 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x36253ed5 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x40fea8b4 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x4c3d3b0b rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5f7f172e rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x64e0c9ce rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x909b3360 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x9dfed230 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xb1429e0d rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xb5c0fb01 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xbb9a1650 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xc21fbf2c rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc504bfee rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xcc8c1107 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xd58fe0e9 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xddd1602a rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xe4056ac3 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xf75e4357 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x1ecae41f rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x426b5978 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0c9df5a0 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x12a89704 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29 gss_mech_list_pseudoflavors +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3f16f5e7 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x494b12ac svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x573358c5 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5c770d00 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x82bae302 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x84e4e581 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x94f6a38e gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa9557c7e gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb352f948 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbd5df9b6 gss_mech_get_by_OID +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x024a51d3 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02c1a908 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x041a5fcb svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x060ed12b rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0682b314 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06cc4af1 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07050ed1 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07adc902 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x098dfc53 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09de182e bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bc37cd1 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0be03436 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0db64193 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0fab77b0 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1408832d xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1550e9b3 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17d606d2 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18cca9cf xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22ffbde5 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23a35352 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27508eaa rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29c7ecfa rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a75527b xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a8607ea svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b543230 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b7293c1 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d049812 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d66b9cf svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x313ae139 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3401c0d4 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ad9bccc xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fc03b59 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x415339b7 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x451670ea svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4541935b svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x475e416a xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x477103aa rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4980c6aa xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49eb2c8b rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c74462e write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e292474 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5106293b rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51ecdb15 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52d42837 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5410c6c5 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55cf91a9 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56cd0084 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5959ff90 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b095b65 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ca8e880 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e95a61d rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ef68b3c _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x608b7a3c xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x614d0eae rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x618bdbd6 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64d852dd cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6585d7c2 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67508cae cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b7c0b60 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cfa7c73 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e00fc4e xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e415a52 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70910b98 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71d2b1a1 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78512a9b svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79ae2c52 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c3fa8ee rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f441fed rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8020a1b9 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x815bea6b rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x831c054c svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84b10e44 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x859b2afb rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88ce7d2a svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x895c7004 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89dba3df xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89fd562c svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a1c9a7b svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b8d0076 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cb7d16b rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e496072 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x909ea420 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92827521 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92d77be4 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93af6842 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x942715a8 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x946cf1e6 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9472e08a rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x971a858b __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x992e114b xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x998d217b rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b6de1a2 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ba948b6 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e71927d xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f73c3ae svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4807ebb rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6f8c3f6 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7632e2b sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa910017e rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9b4b42a xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab102dab xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab13bd01 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab7260bc auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacb728d2 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaccc1819 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae254a6d rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2708d72 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2a44858 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3cf0875 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb89fbbe8 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8da1efb xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb906e524 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbae07065 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb3c3db6 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd91088c xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd9338bd rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe9479dc rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc01ccde9 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1cf13b8 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2f5817d svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc54795d0 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5fc05c5 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8557e2d rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8c45d55 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9db4ed0 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb02b6da rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce759cd4 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce9924ea svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf2bbfd6 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0bd266e svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0dbba06 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd29fe629 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd40dc463 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6469953 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd706677b cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8a145ff xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd92d1b68 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda472e8c rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdba25b6a rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde9c6a57 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3e74eed xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe461b185 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee057bc0 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeea47556 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf256af5e rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3fa020f rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7038098 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf74f743b rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa5272c7 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbbf81b5 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbc20eaa xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdb4a9a1 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe452caa svc_authenticate +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1d404249 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2d4c16a0 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3f374379 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4c392377 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4eb853f4 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x50617080 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x59d15b9b wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6e841972 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x70430ad7 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7e5ac1e1 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x847c7a5a wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa8addd1f wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf873e98b wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x014851b5 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1e3619d9 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3693e0d4 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4e287fc6 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6c6248ad cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x805c509c cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x841d564b cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x998f78aa cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb1930099 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc9265919 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfc3334c7 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x407653d6 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x70952a5c ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa154b408 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xecdaa7b3 ipcomp_output +EXPORT_SYMBOL_GPL sound/core/snd 0x0df8e296 snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0x7d49a534 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0xc9192a3e snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x08b6bf8b snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x1c4f0734 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x6899c665 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x77a9e498 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9f2cc158 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd1e776a9 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf7ac563b snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x012a1065 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05446903 snd_hda_jack_tbl_new +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 0x07c2d4ce snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x085f8505 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x087c37ea snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c79c7fd snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ee5d02a snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13047c7c snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14417c3c snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15407c9d snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a87316c snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c35e9fd snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1db9e5d2 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1dfe3b30 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1fa01c9c snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23bb699e snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24c64cde snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2aaf13e7 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2bf5371a snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x304b7786 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3264ec4d query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3570d6c3 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35e295f7 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x388331a9 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x393a2e3c snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b80020e snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c1a842c snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46e0268d snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b322135 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c1e35d6 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c4ed1d4 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c856e1f snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x519defb5 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bde9676 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f14d2b1 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f584dcd snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6804b38d snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6aeb611b snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x706ab449 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72aafacd snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x731a681c snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x739ffc0a snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75f52cdb snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77e16788 snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77e2783f snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c98c6b6 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d19f0e7 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81b2bf5a snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81f2bd66 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84440c59 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x854552b3 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86518279 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87ca8ac4 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x88956339 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c5d25c6 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8cac3c5b snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x973514a2 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97b9a28d snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa009d9a8 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2c235f0 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3750936 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4c2ffda hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa4054e4 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac0cb23f snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad26415b __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb27a40f2 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3001c3f snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb323a39f snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7b9bfcb snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba4eb912 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd3c1916 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7374cf snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2e5c76c snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc328ee91 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3e3b182 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc8ce1fc6 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9136a2e snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd5a5518 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2963082 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3576201 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6daebf7 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6f575ae snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd7b58efa snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdaef1bef snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb176586 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd7846ba snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf65d451 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf80e0ce snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2e98287 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe37d96b1 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3d66089 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7b94e96 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee18a833 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef922acc snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf104f429 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf56db6fb snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf717fa49 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8db0ec2 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf93b4e45 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa1c3502 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbaf9890 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbbd2aeb snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbc1f34c snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd1273e7 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x210216e1 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x7f4a8eda pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x8c069b0f v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xaf7fbc4c max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x1095388e aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x1b40651d aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3f1ab725 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb951ea2c aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xdbe54123 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xf34542b7 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xf92b675d tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x945622ff wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x2df1b833 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x34f0321a 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 0x721b5ede wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xb87fd2c6 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x61f0b605 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xa6ec7c14 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xc13b93da wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0xe8ac3630 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x65e0f661 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xe311765e wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0xcce1a129 wm8996_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05888002 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07976742 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b771918 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d63fd1e snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1060e1f1 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x139a7f4c snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13eca3a6 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16669ca6 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x17485fde snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ab98cc3 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ccacc60 snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ff2542e snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x203fd7ca snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2226ab4b snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25a8a79e snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26dfc634 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2717636a snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x273c9d26 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27965893 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x283cc410 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x288f7a85 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2924ce39 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b05634d snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d023f47 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x403ba00a snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4303f652 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x432393bf snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45916f27 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48aead94 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4bea3d5f snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c3368ef snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d4c7c8a snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f64fcf5 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50c64152 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5c732591 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d04a002 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d0b7e92 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5eb56026 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60b25094 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6103f464 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61b5e5d5 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61d82621 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6386d43e snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x66759ee8 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a20ee6a snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6aaeb263 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ac5c46c snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6d3b640f snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8412f41b snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x862f1f56 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x870088e2 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ab22e36 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ec1530e snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ef2180c snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9215e10d snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x952ff12c snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x95d96662 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x976c4609 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a94b27a snd_soc_default_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ac2af82 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b1f8275 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b664125 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa26a24f5 snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3d627ae snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa9247d8 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaad9e837 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaaec4c1a snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xad1648c0 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae65a08f snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4280ab6 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5980f2e snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb99b7e04 snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc208a22 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc3bfdd5 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe1cd312 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf2551a7 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0bae314 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc41ca44a snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc832e66d snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9b73e17 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd1c08f60 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd28d1c48 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5a525fe snd_soc_default_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd7acabf9 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9f22137 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe1eacdca dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2f5e491 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe59507c7 snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe70cf62e snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe90dc918 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed71da7b snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed8e7be4 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xedc15f1d snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xef20687d snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf081d044 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf10979dd snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf3fab222 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf4b21987 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfb5ceb01 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfbebf086 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff7fc503 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x0015164b __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x004e218b driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x0088a193 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x008e747d usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x0097d84a dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x00ac8433 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x00af8f8b platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00edee66 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x00f94fde register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x014fbc36 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x01570c34 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x018e300c sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01eef528 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x0255e0e3 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x0259eb0a ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x025a733e crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x026211e2 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x02804064 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x0293dc24 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x03091a72 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0x0321cf7a sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x034043dd tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x036a68a5 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x036b9639 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x03a21582 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x03babec8 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03ec21ee device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x03f1ce46 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x0402e657 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x0462fd7b fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0533cf57 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05561c65 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x058a8017 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x058ea6b6 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x05ae262e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x05f755c6 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x05fad630 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x060a0380 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x066fedf0 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x068195b5 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x06f402b5 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x06fdf775 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x074c27cf blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x07603173 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x07697989 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x07834b06 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x07a677d3 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07d19424 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x07e74f97 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x07fbf955 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x0863180c ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x087ee4e3 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x0886fd49 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x08898420 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x088b8423 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x08d02065 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x090d2906 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x091c4525 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09217ac2 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x0980e0c7 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x09915822 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x09c2ae9d rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x09c6b01b blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x0a288348 flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x0a64a39d ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x0a7793fa adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0a79b636 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x0a99c4e8 device_move +EXPORT_SYMBOL_GPL vmlinux 0x0b05ac62 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b2220f9 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x0b28defb kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b91c1fe sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x0b98b7f5 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0b9ff02b crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x0ba7a99a tps65910_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0x0bfd2a15 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x0bffa10a spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c25fa6b scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c5292b9 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x0c5a762d register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x0c7b4e38 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0cb16563 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cd09dd1 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x0cd10a4e work_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0ce3ea3d pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x0cfdcfd2 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0d1db07c swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x0d775e8d xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x0da3591c cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x0dc87609 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x0dcc1e7d ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e507de3 xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x0e68bd15 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x0eb1c0e9 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x0eb8e160 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ecc2e7c filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0fe4a77b driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0fe8a2cb bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10323b2f apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x10627872 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x107412bc input_class +EXPORT_SYMBOL_GPL vmlinux 0x1077ea66 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x108fc910 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x108fd080 ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0x10e56803 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x1115a570 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x112d88c9 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x1138379f crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x11434862 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x114f1a20 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0x116a858a tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x119687c0 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x11b637c8 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x11d27c21 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x11f8c4da modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x12045a9b rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x12317a83 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x1248622b usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1255e086 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x1268ec60 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x129a99c5 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x12cae8d7 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x12dec80a PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x12edd61c blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13227fc6 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x132c9395 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x1337d4a7 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x1371b737 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x1375e73a shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13a24102 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x13b298aa pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13bc8a1f xv_free +EXPORT_SYMBOL_GPL vmlinux 0x13f3e3fb klist_init +EXPORT_SYMBOL_GPL vmlinux 0x13f4bd3c tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x140bf6e0 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x1424bf65 ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x144c4114 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x144d7326 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x14754c13 xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x14a6cd5e kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x14e10313 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x14ebada4 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x14fbfcbf usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x152c534a __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x15351aef register_mce_write_callback +EXPORT_SYMBOL_GPL vmlinux 0x153a0c91 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x154b9e11 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x1556756b usermodehelper_is_disabled +EXPORT_SYMBOL_GPL vmlinux 0x15656580 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15c079d3 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x15e19f58 dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x162c6e12 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x163bc646 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x16446d46 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x16a24538 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x16cea7b7 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x16d9657d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x173cad0b pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x1765d503 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x17844d17 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x179fedd4 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x17a1343f inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x17bd6e23 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x17d4b141 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x17dd5302 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x189d51f2 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x18bc2257 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x18ca99a4 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x18e2c347 dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x191172a4 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x192b76e4 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x192cef22 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x192f9ac2 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x1930ab5a cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x19496284 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x194b7fa5 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x1980ad1c usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x198df8af pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x19938295 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a8548d rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x19bf6656 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x19c48fb0 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x19d73862 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x19ea5640 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1a0bbc48 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1a2035ba dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a364ed3 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x1a4fb99c mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x1a59b0a8 usb_is_intel_switchable_xhci +EXPORT_SYMBOL_GPL vmlinux 0x1a863ea6 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x1a8a9dc0 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x1a9aecaa ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x1ab00e84 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x1ab1a3e7 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1abf1091 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1ae0e135 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x1ae5c799 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x1af265b6 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x1b1f5ad0 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x1b245d71 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x1b35aef9 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x1b3d9a9e ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x1b4cda66 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c1cfbd7 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x1c205249 cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x1c2c624e init_fpu +EXPORT_SYMBOL_GPL vmlinux 0x1c31c818 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c9ff53f task_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d49b056 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1d503dfe ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x1d525b1b rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d741f5f ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x1d9ec2eb __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x1da50cd4 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x1db1abec usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x1db887a5 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x1dd80fac sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x1dee8fcf ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x1df82013 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x1dfdd8c9 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e0c5f3a bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x1e275d81 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e398929 ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e7050c3 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1ea3eb36 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec529b8 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1eca954d regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x1f339980 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x1f671c03 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1f9b22fb ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x1faaa856 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fe09c34 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x2097bffe tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d90404 dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x210042f0 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x2195419d inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x219be735 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x219c4658 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x21ae7ca6 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x21bfd47a inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x21d07b63 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x21dae0bb pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x2204fa14 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x226235f4 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x22869391 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x228d1ab4 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22ad8678 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x22d8d6e1 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x22e15948 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x22e1b648 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x22e85e41 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x2301c1ab kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x230bad15 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x23177edd skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x232e773c crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x23416b95 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23d72ce3 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x23d8442e usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x23dd2845 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x23e6f8fe adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x23f92ab7 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x241ecaf2 blkio_alloc_blkg_stats +EXPORT_SYMBOL_GPL vmlinux 0x24374dc6 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2453a081 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x246fe613 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24ce5ee2 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x24d9794b tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f2431b tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x24f2add4 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x24f93b31 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x250e8f30 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x252e43b4 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x2547833f usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x25649a47 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x257b3d43 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x25900ccc tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x25d62520 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x25fcc0eb transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x260b7df4 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x263f0dfc driver_find +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x26576139 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x26900b12 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26f39b8b __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x26fbc202 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x273aab74 xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0x274c2a3c hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x2762500c inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x281bf4e6 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x28428701 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x285d984f irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x286043aa platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x287e1e4b da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x28ad2556 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x28b4c444 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28dc7840 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x29059b53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x290b29c2 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x292976d9 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x293030e8 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x293a161f stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x294ebd5a sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x29a06b0b cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x29dec2e3 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x29ed9fd4 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a3cdc88 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a7154eb raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x2aa95c2a fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x2ab1f8b0 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x2ad2f161 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x2ae762f5 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x2b07da04 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x2b413a78 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x2b4a62f6 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2b9f6d66 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x2c067fc6 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x2c0dc18b filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c46ee38 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x2c5753e1 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x2c645820 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2c812a90 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2ce4df97 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d473666 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2da7ee58 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2df9076f regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x2e079615 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x2e20a92f platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e29e006 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e4e723c css_id +EXPORT_SYMBOL_GPL vmlinux 0x2e5f5449 __online_page_free +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2f17cc5a sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fc0284f ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fe1ea96 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x2fea4c29 trace_nowake_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x2fed3c31 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x2ff85b6b virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x30364afb inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x304e3846 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x307a14f6 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x307b7dc4 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30889953 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x30c1a142 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x30cda09a do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x3108ea46 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31190ba3 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31403851 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x31579fa3 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x315e774b relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31d288f1 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x31e5ae87 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x3206747a evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x3208a316 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x3212fd1a kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x321bc384 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x323ef93a tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x3250a52f dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x325597ee blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x32a7e218 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c4ac3d crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32efad97 device_add +EXPORT_SYMBOL_GPL vmlinux 0x32f189b3 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x32fd4b62 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x3314e457 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x334fe51e xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x335a591f unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x3393b354 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33ef313f usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x3414f08d xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x345d0913 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34ac5ab4 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x34ae4011 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x34b99996 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x34f79189 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x356118a1 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x356e290f sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x356f7ecd ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x357e0d8f ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x358f3d03 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x35954f22 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x35c40302 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x35df0d89 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36498eb2 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x36502ddc bsg_goose_queue +EXPORT_SYMBOL_GPL vmlinux 0x365f3b37 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x366a96b8 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x367182ae blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0x368429c1 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36a1cccf ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x36d63a6a iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x3713494a rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x374f38bd ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x3758bf88 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x37738ec2 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x37adbd89 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x3809020c blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x380aaa61 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x381fef71 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x386b341b pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x38d2e1ed __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x39089c80 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x390e7f8e ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x39238b48 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x398c329c rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x39b96952 ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a1cebf2 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a50297f restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a9672b8 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x3acc3a60 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b8c6570 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x3ba42f61 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x3bae27c5 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x3bb13e55 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x3bb70936 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x3bd45e7e platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3bf72a8b pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x3bf8aeed xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x3c1205a8 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x3c15dcf4 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x3c47890c xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0x3c5439f0 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x3c67b014 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x3c7ad53e __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3c7bd5b8 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x3c889c51 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x3c906a08 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cbb1cbd regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x3ccfd38b gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d3fb058 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d80c710 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x3d8a0705 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x3db2a82f use_mm +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3dec9f61 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x3df784d5 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x3e37a4d4 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3e3bfe19 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x3e708f8e crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x3e7f0dfc __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x3e80e7ee crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x3e910642 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x3e979e41 edac_class +EXPORT_SYMBOL_GPL vmlinux 0x3e9c1848 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3eb77831 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x3ebb2861 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x3ec4b860 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0395bb pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3f13f359 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x3f146707 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f2f77ab acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x3f54548c wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3faa5519 regcache_read +EXPORT_SYMBOL_GPL vmlinux 0x3fb0c3ea ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x3fbddc66 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x401776e1 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x403b78cb ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40634549 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x407cd20f gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x4084afa1 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40fee651 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x41138855 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x4142a2b9 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x415f5ed1 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x41709551 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x418d780c vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x41e4dfe8 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x422ab5eb usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x422d65ef mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x4237130f trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x4257fcbb fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x426d6c18 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42b0f773 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x42ecbc66 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x42eee679 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x434adb9e sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x435e6c6e crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x437842f4 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x437cb99a pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x439bbddd i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x43ae88b1 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x43ed7782 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4411e45a pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x4437b857 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x4456218b ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0x445c108b unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x4475e1cd stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x447900c1 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x447cd7f6 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448b5ddb virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x44bcfa6d system_nrt_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x44bda345 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x44cc9c55 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x44d571fd __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x4527d14c raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x4529557c inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x457da1c4 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45a4f4c4 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x45a97e2d eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x45abd7dd mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c1e9ea ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x45cf6867 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45d29a13 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x46144310 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x4615dda5 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x463a79b2 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x468cd5e0 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x46a76f19 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x46d80059 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x46dd3cda rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x46f732de queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x474359b6 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x477dbfb4 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x478afd13 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x47d533bf user_update +EXPORT_SYMBOL_GPL vmlinux 0x47ddfcab class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x481d5a9a register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x4853a4fe wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x4865f9b3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x48682db9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48c62e4a eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x492033d8 blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x4920ed4a usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x4945c2b0 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0x494e12eb __module_address +EXPORT_SYMBOL_GPL vmlinux 0x494fb4de __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x4988002b usb_usual_ignore_device +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49e3a774 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x4a0d97ca ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x4a2ad6f0 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x4a388e19 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4a78e350 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x4a7bc844 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x4a7ea0ad inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4b542897 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4b74888d devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4b840dfd probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x4b8a151d tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4b8c6fb3 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x4b90328f scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bd9b84a tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x4bfa80d3 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x4c2772a7 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c8f6bbc ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4c9a617d sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x4ce2a7bc devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x4cf9a3b2 x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0x4d1d1538 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4d2a55d4 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x4d3bbda5 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x4d564c16 __online_page_set_limits +EXPORT_SYMBOL_GPL vmlinux 0x4d6b8b29 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x4d9af05d sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x4dafa47f ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x4dc0683b crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x4dde3a40 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x4e09c9df devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x4e105376 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e120e9b ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0x4e133b02 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x4e556eb0 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x4ed6e906 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x4eebcec5 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f01570b sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4f1ccf7d dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f36f38b sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4f584a74 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x4f6a3cc7 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x4fbb1e55 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x4fd15cb4 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe71d30 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x5010184f pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x5013e6de pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x503a6930 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x509197f3 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50af5c91 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x50b319ce cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50c126c1 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x50c900cb blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x50cd9bf8 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50d5a1d6 __online_page_increment_counters +EXPORT_SYMBOL_GPL vmlinux 0x50d863b3 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x510e684d ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51a83b7f ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x51d32bba sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x51d82888 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x51e58952 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x51fb6eb1 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x520b0686 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x526a523a acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x526ff77d transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x52ed43fc cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x52f3d122 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5365248a srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x5365b101 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x536fdf1f acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5386ce15 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53db9796 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x541e0989 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x54365ec1 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x543d1b4f pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x5451fcc5 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54652517 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x5470cd3d vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x5494f5a2 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54aab4d5 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x54d1d0f7 rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x54e7c869 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x54f61082 ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0x552567c0 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x55aaf2e3 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x55b31823 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x55b37fc0 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x55d2dc87 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x5600199e cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5632af9c blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5654f836 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x565e3b85 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x566aab9b sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x567eb888 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x5695646f pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x56c07447 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x56d49f66 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x57370d27 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x573ec1c9 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x574604a8 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x576b329a usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x57708079 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x5778ce82 xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x578b90bd xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x578f5ccd xen_swiotlb_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57c4691b queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x57dda5b6 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x57e02751 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x57eaea2c blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x583c31b2 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x584ab7ad xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x58819e3f gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x58843e08 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x5885e07d ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x58cae5a0 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x59000956 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x590583d0 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5990053b fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x59b21b63 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a441ebd efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a48fba2 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5a6b2e32 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f7a1d rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x5a953c95 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x5ac0b9cf regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x5ae75a79 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x5aec863f regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b106e9b firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5b522b88 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x5b537f9d usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x5b9450f0 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x5bcca8bf xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x5bf991c6 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c07da74 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x5c125e83 apic +EXPORT_SYMBOL_GPL vmlinux 0x5c1559ea virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x5c20ec6b device_register +EXPORT_SYMBOL_GPL vmlinux 0x5c279ac7 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x5c2cb7e4 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x5c313c6a pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x5c392bff xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0x5c5cfbad sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x5c68b641 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x5cbf2856 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x5cbf6d4c rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x5cd89406 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x5cea9d37 user_read +EXPORT_SYMBOL_GPL vmlinux 0x5cfae7f0 tps65910_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x5d049b51 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x5d243ac6 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x5d25bf37 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d5a4ff1 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x5d5c53b3 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x5d5ff5a5 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5d60e761 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x5d614fe5 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d7d4b5b tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5db54ac7 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x5e33be03 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x5e74f050 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x5e7909b8 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5efbc400 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x5f2369da __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f614d9f stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x5f64ef5a posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x5f67b039 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x5f6f5d23 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5f9c0e91 __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fdebdad __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x601984e0 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x602599e3 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6026e667 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x609ed66f __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60c4a782 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60e2722e pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x60e35a30 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x60f6aa78 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x60f9e64a ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x61083da8 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x61165c0a get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x6157104e tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61881361 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x61c9a47d pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x61dc33ff rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x61f09aa0 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x621b7413 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x62377233 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x625e1156 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x62767c44 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x62d487af rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x62ebcdb4 xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x63133107 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x63278b2b ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x6347ee72 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x635fa2c7 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x6369680a crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x641677ab pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x641dc414 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x643178ba ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x644b7a81 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x647d6a14 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x64840614 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x64c522d0 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x64ccfe93 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x64ef9b4c device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x64f60971 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x651cbcb4 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x6528856e usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x6551ee3f iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6561941e dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0x657f0dd1 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6587e791 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x658fb35b pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x6592c5e7 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65c1fbc5 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x65c52afe ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65d86904 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x65fa533b usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x664527c4 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x666d75bd unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x667a55f5 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6693a0ca virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x66a59d37 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66c55862 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66f60b2d ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x6712db81 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x6740208d wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6757c5c6 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679bd127 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x67b4557f pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x67cd94cc exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x67ef6b69 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x680173f2 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x6827c2ff xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x683a37d8 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x6857c3e0 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6888586e spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68986c2e do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x689f1f58 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x68bae7a2 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x68ee80ef skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x690a0e49 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x6938efe7 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x693c90a6 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x69738f78 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x6978211c skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x697c5f6a disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69974b05 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x69c93f20 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x69d957b7 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69ecdba2 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x6a08a74f usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x6a179e15 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x6a18ffe8 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x6a299d12 xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x6a36cd19 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6aa43de9 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x6aa47e5a fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x6aa934eb pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x6aaec48b ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x6ab30889 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6ae286c9 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x6ae37591 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x6b113a88 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b380d18 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x6b3ca6a5 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6bb3b72a wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c47d5fa da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c56f1a8 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x6c8c9dca udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c9f0544 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x6ce2fa76 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x6ce40367 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x6cef40ae pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6cf56d60 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d334217 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x6d7bb045 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x6d86c2ac power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x6d9ebee8 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x6ddc2e6c ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x6de62cc5 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x6e0f62a7 blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x6e217555 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6ea98361 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x6ead7296 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x6eda9749 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6edc2abd ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f28f618 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x6f862651 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x6fce7839 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff245c4 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x702ad60d register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x702efc38 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x70325291 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x704c7b85 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x70511493 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707af6b4 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x709077ef driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x70ad3fc6 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x712a2e11 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x7151b8ae usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x7152a4c7 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x716f620b regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x720ca176 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x720d9973 xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x721b7ce5 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x72418d77 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x726078f2 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x729dbc33 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x72a9ebac scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x72e113e8 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x72f05e93 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x73247ac8 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x73300509 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x73663d38 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x738883a3 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73aa9225 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x73b4257d skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73ff5b6b regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x742cd015 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a137df get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x74a29849 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74c13f8b ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x750d07cf mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x756b33ab scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x7574bdfb wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x757ab2c3 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x75ae897d da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x75b20f59 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x75dc2288 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75ea5da6 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x76324137 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x76431a27 task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0x76446709 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x764d5e51 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x76be61d1 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x76ea7315 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x773cfedf watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x7745e8e3 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x7757ffcc __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x77941ce9 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x77e9b41f sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x78198245 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x781b4f82 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7844e54c transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x78452036 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x79322e4e debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x7935c1eb platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x79814013 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x79a9c557 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x79ab5c06 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x79b6cc59 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x7a001dda __put_net +EXPORT_SYMBOL_GPL vmlinux 0x7a2c104f debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x7a42341c usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175 amd_erratum_383 +EXPORT_SYMBOL_GPL vmlinux 0x7a811f6c __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x7a93ce2e hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7abe5d51 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7acf73b1 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x7ae097ea virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0a1cf0 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b11b8da spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b232130 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7bf247d1 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x7bf850ee sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x7c1309d2 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7c8514e4 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x7c896584 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7cac0b35 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x7cbde641 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x7ccf93bc wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d30c04d scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7df70d3c cred_real_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e1ecdc5 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e5e301f unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7eef462a ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x7f1d3efc pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x7f59b8bc usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x7f72097b blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x7f9205b4 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x7fac7105 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x7fc6035a pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x8037d1c7 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x803fd0c1 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x804eaa66 device_del +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80baa743 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x80bb1304 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x817922ea put_pid +EXPORT_SYMBOL_GPL vmlinux 0x819a73cf dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x819cbf7d ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x81f49174 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x81f4fbee wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x81f5126e blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x822a56cd ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x823bf366 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x8244d3b4 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x826b6310 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82da317b pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82eb357a __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x82ee209c page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x8342ffff __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83ba11c9 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x83bee935 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x83ce82eb get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x84133a8e pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8441b501 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x8497b7a2 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x84bb35f7 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x84d0215a sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x84ed7297 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x8544ac41 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8553f9e5 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x85550939 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x857486d5 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x859aea9a xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85f0240c pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x860923ab __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x860cbb18 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x862501ed bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x862f98a3 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0x864dc39e usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x86501b55 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x86526c04 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x866cd4ae dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x86767b72 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x867c1aac pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86aa16e6 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x86c18524 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8750ccc5 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x87659e30 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87773fbc iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x877e0f64 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x87c38aee rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x87cff03e get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x87d49c82 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8850a5f2 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x886ae949 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x889eaa79 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88be996b sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x89184290 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x892aee82 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x89ad010f device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x89ff43f6 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x8a2b01bd adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8a369ece platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x8a429a5a crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x8a4ddcce pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a63bf7a gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x8a6d927c shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x8a7406ac aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a9450a9 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8abc9703 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x8acb66ba ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x8adf7936 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x8ae99699 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b682598 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b869f0c __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x8b8b6edb rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8bdd6ad3 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8be0c38e crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c20eb18 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c3a6836 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x8c4db1b5 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8c81f2c1 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8d04ccee device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8d2adf11 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8d3acf25 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x8d4d1966 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x8dd4f057 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x8e040c33 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x8e1bc57c crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8e1cad4e cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x8e6ee816 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x8e7848d3 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x8eb34231 xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x8ed2778d dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f012dc0 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x8f073c47 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x8f1443c4 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8f1452f4 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x8f21f427 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x8f59bc1e put_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f79c84e set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x8f981178 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x8fb576b8 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8fc3abb4 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x8fc450f5 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x8fc9f0e7 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x903490bb rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90904cc9 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x90fb3895 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x9112a8e7 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x912eae2c raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x915fe8fd sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9168ea91 xenbus_dev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x917d9f23 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x91811b58 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91a40120 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x9236464e max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x925e27f2 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x929a11c2 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x92b9dff6 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fbaaed sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9358eed1 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93d94b2f device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x941b7a68 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x944a2e83 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x944c9b60 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x9482e075 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9490582c crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x949d3542 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94b44120 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94daaf71 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x94ed41f5 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x95111fa5 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0x951b9007 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9557891b ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x957530ef md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x9580457b fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x958069ec ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x959486ed iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x959ce471 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x95bc8116 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x95d2cf59 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x9613d492 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL vmlinux 0x9615e844 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x965593a3 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x9684aebb pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96e64364 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x96fea9a6 mmput +EXPORT_SYMBOL_GPL vmlinux 0x9749659d regcache_write +EXPORT_SYMBOL_GPL vmlinux 0x977bc30d n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x97a23a96 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x97a51d55 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x97a9f719 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x97aa8f6e nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x97d9c7d7 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x97f5b358 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9842f28e blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9865d5a8 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x986e1b04 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x98708fe5 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x988329cc driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x988b8c6b tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98ceef06 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x98e2706c ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x98ef359f power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x98fc0e19 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x991c0e34 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x992defd3 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x996cdd5e usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x999b464d ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x99ec7bca da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x99edec1e pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x99ef2662 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a1462b1 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x9a386c13 get_device +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9a57f8e4 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x9a788942 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x9a8e71c1 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x9a98d523 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9ab76811 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9adeac9b vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9affd990 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x9b7539e4 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x9b875eba blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x9b9d7284 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bad2c0b mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9bb0f299 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x9bc8cf05 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x9bdf0c79 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9c4c59d7 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x9c781c5e hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cc668b1 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d2ed6c6 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x9d35ebba led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x9d36feaf usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d9e155d pv_info +EXPORT_SYMBOL_GPL vmlinux 0x9ddaf75e bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9e108970 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x9e4f1cfb ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x9e502b73 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x9e6d4b5e tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL vmlinux 0x9e92f85e usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x9f25dd3f ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9f29601a atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f537715 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x9f6ded61 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x9f91d45e unregister_efivars +EXPORT_SYMBOL_GPL vmlinux 0x9f9fa197 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9ffb52fa md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xa0193b1f bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xa0331478 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xa046a165 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xa0596a66 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xa08caf33 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xa0b388e7 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0f4686d tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xa10bb39c sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xa1214677 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa1403a93 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa18fbff4 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xa1a2d760 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0xa1a5af3c pstore_write +EXPORT_SYMBOL_GPL vmlinux 0xa1ddf303 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xa1f36aad ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xa1f7ff2a usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xa27e3d2c ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xa2844adf mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xa2bff32d usb_enable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xa2c97402 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xa2d931e4 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa2f54924 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xa3120cdd sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xa32051d8 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xa34a9b34 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa38705b0 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xa39706db crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xa3d6040f usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa40d09f4 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xa4471e92 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa481c3f6 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4c3f7f4 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa4c43863 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xa4ca0d4e unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa51e4b45 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xa5726192 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xa59c1e53 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa5a72308 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa5b28fb6 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa5d73733 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5fa8f2a da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xa6066453 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xa62543ca dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xa6424d9a ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xa65695fb ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xa6abca6e fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xa6bee492 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa6fe48ff dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xa722a819 cpu_has_amd_erratum +EXPORT_SYMBOL_GPL vmlinux 0xa74f6a87 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xa7cef25a ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa7fdfd46 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa7ff7b4c dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xa8976358 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xa8a68e4e rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa968b63f spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xa97413fc console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9ea6583 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa3918e9 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xaa3f13f7 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa62e56f ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xaa7f0dfc usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xaa852c93 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8c2a50 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0xaaa83742 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaabbee87 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xaae5aca8 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab427f4f tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xab48cebd regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab7d134c device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xab86f27a bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0xab9f59a0 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xabb36f70 ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0xabb3a95e ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xabc47f60 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xabd0cf04 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xabe4454c gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xabfb6f86 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xac8c3ff3 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xac90fbd2 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xac9359cb crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xac964405 md_run +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xaca0322e usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xad06b2aa srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xad0da478 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xad0ef03b fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xad4adccd yield_to +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad937228 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xad9d6e78 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadde0cd0 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae3afc2a exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xaec45fb7 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0xaeea3073 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xaf14d5ec wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL vmlinux 0xaf8b18e5 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0xafa10ed0 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xafa2b7b9 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xafacc24b class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xafc3c6c2 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xafe1f546 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xb0365d19 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xb0396c67 __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0xb04950d4 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xb05f5855 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xb070e500 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xb0782d15 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0xb0a8268f pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xb0ae5977 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0c47fba debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xb0d03d60 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb0f1b43d sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xb1059292 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb1284b47 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xb12f10ca usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xb1314899 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xb13a5f52 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb13dcfa4 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb144c11c ref_module +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb189d3cf wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xb197be74 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1db558f ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xb1fc835c driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xb290a6b0 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xb2a5a762 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2e7eb5f md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0xb30c5790 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb332c821 blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb35d9d2d uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xb36c8076 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xb3742559 ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0xb38871aa driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb39b1460 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3faefe8 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb4043300 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xb41128ff __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xb43c50d7 register_efivars +EXPORT_SYMBOL_GPL vmlinux 0xb4552935 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xb4634cf3 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xb466f971 edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0xb48599af ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb4a6c390 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xb4c4048f input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xb4ce0e20 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb50294e5 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xb515988d tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb52f86a2 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb55211b3 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5aec657 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xb5d975f3 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5f67903 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xb5fb7ff0 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xb6118a54 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb62f4a42 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xb63cf38d scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xb66486fd pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xb66cc36b locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6f1c8a6 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xb6f92708 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb7228ab5 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xb75d662a hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb7634557 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0xb7655df0 tpm_continue_selftest +EXPORT_SYMBOL_GPL vmlinux 0xb76dd9cf watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xb7808d65 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0xb784cf6d swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xb7b3771f pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7e7eaf3 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0xb7f0d89a ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xb7f4e553 erst_read +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb80da632 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb82c7d32 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0xb8631a27 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xb869fab5 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xb86bcceb klist_next +EXPORT_SYMBOL_GPL vmlinux 0xb8746ffa usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xb88b896c stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xb902878d ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb95df8d6 register_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xb95e21ce kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0xb96f07d8 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xb9807f2d perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xb9826831 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9ed8fed usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xba222f0c tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xba27fada tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xba468549 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0xba561328 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xba69af66 get_driver +EXPORT_SYMBOL_GPL vmlinux 0xbab2a814 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbae96ced crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb20badb debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xbb2b04d2 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0xbb56fa17 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0xbb717b40 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbb89a4a0 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbfce101 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xbc0a11ce agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xbc2bf721 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xbc2dee44 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xbc456407 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xbc563d5c inode_dio_done +EXPORT_SYMBOL_GPL vmlinux 0xbc635d53 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xbc6f931b workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xbc88e9c3 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcd417b9 xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xbd3c2b1a css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbd47cb53 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd788824 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xbd814310 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0xbdcd9ce7 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xbdd0e413 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe608951 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xbeb88745 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xbf3ae0d0 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xbf400cd4 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xbf5210ee xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0xbf614935 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfd6af52 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xbfdad539 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xbfdde60c __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xbfdf7ef9 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbfe8dc71 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc01c9eb0 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xc03ab504 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xc04c4991 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0900fcf acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c954a2 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc0cdf878 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc0cefe91 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xc0dc511c blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc14c2824 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc190278e rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xc1acfc3c inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xc1d119c6 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc1ee85c3 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc253aa08 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc2633d2d blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc2646f3c pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xc27e71bf __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc28b5408 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc2c494f5 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2e7171d pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xc2f8a5d7 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xc3097e8a sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3566d5d xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc3785c34 xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xc38b8fd9 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xc38efc70 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3a3d077 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xc3e6d517 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0xc3ffe7bb pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc426f3a2 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc43aa291 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xc457c7f6 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4955847 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xc4bf8c57 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0xc4c7007b rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xc4cb689b tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc4d48ce3 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0xc4e3736d skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xc4e9ffa3 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc50c25d5 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc5149a11 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xc536783c ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc556bc26 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0xc55b02e5 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xc5636b37 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xc56ab8de rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xc56ebd61 iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xc58015c1 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xc5a9f3b4 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc5abb2fd xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xc5ac446c __add_pages +EXPORT_SYMBOL_GPL vmlinux 0xc5b58ef7 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xc5ba45b8 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5 amd_erratum_400 +EXPORT_SYMBOL_GPL vmlinux 0xc5f69cd6 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc62e0936 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xc63bcd62 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc6c3a309 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xc6cee11c xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0xc6e9fbc5 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc70adba8 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc746a44d rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xc74834ae debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xc75a985f wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xc75c10e5 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7b3b120 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xc7e85d59 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xc8305a04 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc851c07c set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xc873eb8b free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc87f47c0 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8bcba19 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xc8eecab1 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xc8f7c26a input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc8fd9f33 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc96f4e83 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xc9a6993b module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xc9a9fd16 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xc9b6d672 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9d932a8 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9f08e46 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xca1ec0cd tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xca2d74fa relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xca6d1fbe tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xca736ab0 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xca7d2674 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xca7d8b1a fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac97347 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xcb067720 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xcb0f64b1 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xcb15f195 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xcb34c4a0 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xcb4535ee queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xcb4e6765 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xcb5a7690 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xcb73b6b7 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0xcb7b48bf pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0xcb9be097 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc00074d shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0xcc170629 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc3c7afd ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xcc3da32d aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc76ac30 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xcc849daf cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xccb39086 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd7dde2 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xcce0b65c gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xccf65db2 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xcd006811 inode_dio_wait +EXPORT_SYMBOL_GPL vmlinux 0xcd0e6d34 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xcd23fbbe srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0xcd9b331e ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xcda01a64 xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce073605 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xce0e0423 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xce21749d sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xce37df59 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xce50ef31 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xce67b0e3 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce85afcf disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xce9e0051 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xcebc9776 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xced176eb blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0xcee0f900 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xcee112cb scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0xcfb3198d blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xcfb5871c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xcfc12863 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfd53d6a cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd01ee6ab ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd05a4bb3 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xd05dc2a3 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xd0a417d9 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0eb27f3 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd10f1fb0 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xd119c233 xen_swiotlb_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xd11bf847 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd12e65a3 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xd13a8c63 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1758001 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xd1a9d34c register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c5903d regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xd1fbaabd cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd2103aa5 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd2190d71 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xd23f5f59 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xd25481f6 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xd2643444 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27b768f ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xd29322c3 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2b42799 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2f94da7 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xd31310a0 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd32a91d1 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd399f00b ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xd3b12fb2 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xd3bddea1 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xd3c0317d tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xd3d49764 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd40fc436 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xd4168f9d get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xd432ff13 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4c2cb13 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xd4c4da7b ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xd4db36d0 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xd52f2441 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0xd5599ca4 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd608458a ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xd63ee292 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xd6543dae eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd68a27c2 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xd6a4c0e7 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xd6aee611 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xd6ca2045 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xd6d50977 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd6e6e544 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7bbd23e agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xd7c6fbbe sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7e7bd5f pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xd7fc94cc dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xd808989e usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd8ac3530 user_match +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd93e76a6 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0xd944262d inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xd949a524 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xd951ca04 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd96de075 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xd9703cc5 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xd9b1e1fa skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd9d1a557 m2p_add_override +EXPORT_SYMBOL_GPL vmlinux 0xd9e2d204 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9f8bba5 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xda18aa5f dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda1cf08b cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xda2faa2f dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xda73ca22 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0xda844634 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xdac1888a lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb34197c pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xdb768aa7 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xdb770a1f put_device +EXPORT_SYMBOL_GPL vmlinux 0xdbbc8e46 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xdbbe3ff1 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xdbc549fb tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xdbd70416 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdbe47132 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xdc0ce24f unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdc29a750 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc330a57 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xdc379a38 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xdc5573f8 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xdc5cda67 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc847e76 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xdc8a37b0 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9e36c9 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xdca53d67 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0xdcb150ee scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdce851cd sigset_from_compat +EXPORT_SYMBOL_GPL vmlinux 0xdcf69450 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd57d4c9 m2p_remove_override +EXPORT_SYMBOL_GPL vmlinux 0xdd78b3cd usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xdd8dbfb4 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0xdd90907a perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xde2496f0 device_create +EXPORT_SYMBOL_GPL vmlinux 0xde315bde __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde7c1b7b regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xdea5b31a wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xdea912d1 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xded4ca8d inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdfa1fd06 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xdfab34e4 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xdfd1a00d inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xdfd291e5 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01d81bf show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe055645b get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xe0758eb4 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xe088ec2b securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe09bc3f0 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0d5ed05 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xe10bcbed spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe125c4fe class_find_device +EXPORT_SYMBOL_GPL vmlinux 0xe1494819 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xe17e94e4 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xe1ecba68 virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0xe20b42fb rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0xe285590f pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a5d03c tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe30db2ff wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xe313ca0f device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xe332ab95 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xe349b741 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xe35c63e1 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xe37ab4df ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe39aa892 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3e872f8 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0xe3f4e31a crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xe40ba8ac dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe49a2217 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xe4e69f3d ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xe4fc43d0 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe504bf62 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xe506b42b ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xe586bc6c i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5a8e4ff seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xe5e14a2d aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe6329ea5 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xe640b32c debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe650523d kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe65c018b generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe6a4221d debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6fbbc98 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xe70abcf5 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xe70fe798 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xe721aa9f crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe725664e blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe75d8653 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xe7847e77 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7fc170a iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe80e5262 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8893c01 ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0xe89bd243 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe9120a2b ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9409467 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe99d57a4 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xe9ed7c9e blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea04f276 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xea06397f sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea1719f9 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xea1ba676 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea24d76d scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xea88988c crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xea905975 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xead0ac4f register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb0390ef remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xeb370805 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xeb40df9b locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xeb4a7004 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xeb729ad5 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xeb7351a4 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xeb82236f con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xeb8a39ec pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xeba809fe tpm_bios_log_setup +EXPORT_SYMBOL_GPL vmlinux 0xebacb42e virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec409609 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0xec5ec4ea mddev_check_plugged +EXPORT_SYMBOL_GPL vmlinux 0xec6f5720 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xec9b14eb iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0xeca4a537 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xecc794f7 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xecdaad79 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xece79da1 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xecf2e518 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xecf772dc __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xecfa4890 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xed483214 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0xed4eff66 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xede79223 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xede7d56a __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xee4e8571 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xee6057b7 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xee654824 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xeeb73a6e cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xeec24d31 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xeef6b8f7 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xef01daf2 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef23d470 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xef41e32b put_driver +EXPORT_SYMBOL_GPL vmlinux 0xef4a5f89 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xef5b725c __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef6cdaa9 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xef794e07 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xef9b4379 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xefa6985f sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xeff3732b ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xeffd2a49 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xf01a73ee usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xf037a066 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf09472fc inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xf0a4e9f8 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xf0b62dc1 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xf126d7ce fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1c0bb18 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0xf1d25eb2 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xf2021700 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf229df7a crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf245924e __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xf255c3b0 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xf256f79a wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xf25b6c48 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xf2a6aac3 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf2f82887 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30bc103 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf3436669 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf36d1c25 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xf37fb784 find_module +EXPORT_SYMBOL_GPL vmlinux 0xf38ac744 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0xf3a35d5c usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b6f087 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf40ed46e __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf49cbbbb key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5232fb3 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5b5f17d alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xf5f21eb2 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xf636066e ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xf65ab00a platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xf664b86b xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0xf680a28e cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf6b605b6 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e80060 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf720044d sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xf7322bc8 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0xf73a3b2d platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf796d1f9 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7c5ff11 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xf7c9593a platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf7d49bd3 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xf800d09a class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xf83040e5 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0xf85dd8a6 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xf8706bb0 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf885e00b __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xf88f3176 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf8b866c4 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xf8d4e358 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf919b921 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf940f24b tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0xf94aab66 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf98c8b83 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory +EXPORT_SYMBOL_GPL vmlinux 0xf997d715 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9acaec6 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xf9b09e4f scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xf9b51209 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9e745ec inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa2de42a ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xfa8ac542 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xfa8c5fe1 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xfab3306b __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xfafcda35 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfb24226e inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb3c909b usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfbd40e99 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xfbd92866 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc0009fc __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xfc179d5e dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc4c46bb posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xfc873f1d hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcad51a1 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcdada58 xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0xfcdca844 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xfcedf86a rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xfcef4286 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xfd05464b klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xfd1ef7bc xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd6b65ca stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfdbf3ec8 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfde42658 xv_malloc +EXPORT_SYMBOL_GPL vmlinux 0xfde43779 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xfdedb992 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xfe060fb2 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xfe5bec7d debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe884c67 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfe9e7622 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xfeac3c5c crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfeb4d542 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfedf0df9 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5f2b0e __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xff6b10ea crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xff6ff31f usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xff79a968 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xff7d6915 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffaf4c5f pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xffd38e7a sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xffd3ef92 disk_part_iter_init --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/amd64/generic +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/amd64/generic @@ -0,0 +1,12546 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x7c22d983 kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xf5f4b3ef kvm_cpu_has_pending_timer +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x7413132d acpi_video_get_edid +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/atm/suni 0xc50f012e suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xaa2c5a98 uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0xf3dc83d8 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x5c165453 drbd_set_st_err_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 0x12783f9c pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x1cca5c3a paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x2a5ba458 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x2ba6da0e paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x3df00f51 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x80496eaf pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x891fae7e pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x947e8f07 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xafce0c0a pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xbe8199b6 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xc52d1445 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xec5d0af2 pi_do_claimed +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x26e62919 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc8429cca ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd4ebef93 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd95d119f ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xda254ed9 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/edac/edac_core 0x83e5eddf edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xa7932a8d edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xd3e2ce50 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0a6d075b fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1622c0fd fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x199d732b fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1afabc40 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3e0c2414 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x49a29946 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x49c5e8fe fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4ce221ea fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e86dd83 fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6dd62dcb fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7255cbbe fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x774b66f4 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7ae72e2b fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8ab8eeb8 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa14c8b73 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa29e61c2 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb39e515b fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb88f4f46 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc43c6fa9 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc469ebf3 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc5675105 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xccb7d0cf fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd466e5ec fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd5ec3632 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xebddf219 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf57d582e fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xff95fba9 fw_iso_context_create +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01b11c1d drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026e8da4 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02e6f570 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03e64ba8 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0773be7f drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x088e6bfd drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08be1f89 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a901d76 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fe5808a drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fe850c2 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11602825 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17e9ff60 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20bc7883 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2335d085 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x235d9699 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25a05b17 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27b362e6 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x290bb97a drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c529e1c drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cd3b1fb drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cf7b979 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33e154ba drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3444933d drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3446c1c9 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3618b48b drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3888a5d5 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38c57978 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x393027d9 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c3f6e74 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e986069 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f1b3249 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x416e989a drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41b19bf6 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4324d889 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c9a91c drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x464743ad drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x474dd691 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48d23432 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bc09a98 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4cb1d290 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e24a335 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ed49cfa drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5066b908 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5148c2e0 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5524c331 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x552a4f9d drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5923892a drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5994a991 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59f02411 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b0118bb drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c8ce577 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d110453 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5da680da drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e99e97c drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f040d50 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f6cbc33 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6040ea02 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62f2f398 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x656f1c63 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6638942a drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66fa9dba drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67492927 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d54674c drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70e3d610 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7229c812 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7596c04c drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7603c921 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7636db21 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a66fd05 drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b47784e drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b80b8c9 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c859a67 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e437939 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x802ee6c9 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8108a130 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x810eced6 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81fb1679 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84cbe9da drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8888d1ce drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88b76588 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x896f15a1 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8aa6a10c drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b0c6506 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c4e37c7 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dac116b drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f97d4fe drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x920d5f00 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92f2d102 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x932df43d drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x943084e7 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9449dace drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9451a303 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96b945a6 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x976369f6 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b26f5de drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dc25a34 drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa03ef5b1 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0edc3af drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa126f158 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa140cbe9 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa237e931 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3258b94 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa450ccae drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa656ccdb drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6f087cd drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7115e00 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa72f57bf drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacb66931 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacee5c06 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadf28838 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae839889 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaede1ee8 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1538526 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1633c78 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2e522d8 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb31abfaf drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3276295 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3372131 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4172474 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb840f14c drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9dea83a drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc04345d drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd6f033b drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe1b11a0 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf2f8241 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfcf0718 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc2a11df0 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5e44a9a drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb28c0c7 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcca9dcdc drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce3048f4 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1a0bcdd drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1b609ad drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd326a3d7 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3b54a2f drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5061178 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd524a5f0 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd68d40a7 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7f1ab84 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd82ea2cf drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8aa3aa5 drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd91ec0ca drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde8e655a drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf7712ce drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe19a1902 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe256edfd drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3553657 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3e2404c drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe409d67d drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe51a95b8 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe66f0b18 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe74a7eda drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed256cae drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf01e4e0b drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0a0bf79 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2de7c0d drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2fcf9d6 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3476d90 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3b2bbb1 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6d95fc1 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf92db1fb drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9a4f0e2 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9d91d11 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa4fd2ac drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb671247 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc4f8599 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc852cf1 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x01373ff3 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0301a79a drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x059e64c6 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x152c6bbc drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e1e66b3 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x222fd185 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2cf99eff drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34130f91 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x38537376 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f75b18b drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x44223365 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4914c861 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x55b37337 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x560b7656 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x59c23f02 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a7b2956 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6610b9d2 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x685f39eb drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6f518775 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x734a3d3d drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77e843f4 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c170553 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8dbdb3d1 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa55287fc drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcee9fe25 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd06395c7 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4c394eb drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xec101b08 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xee4e6f1c drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xee6ced36 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf7fc8dcc drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x145e6a73 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x20b0e796 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25392771 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2551fe26 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x373e82f2 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x377020d3 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a0782fe ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3f6b4c1c ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4003a3b0 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4320cc3e ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x442abb62 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47ddd76c ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x498434a4 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4a01a866 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4df70818 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x516f93a1 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x58866c0b ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67cd4780 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6a63fefa ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x74803aaf ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x786e264a ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x791ad5d1 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7c07993e ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d84f632 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8349936f ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85477881 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8744f929 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8799a171 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x87ab533d ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8832162b ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e29981f ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x90839ee7 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x971b3577 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98885352 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9c193362 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9fb17158 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9f90bfa ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab312393 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xae198d70 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb0345cb3 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4a78d92 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbd4525bd ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbe4704b4 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc13b38b4 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd690ef85 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd50075c ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xddd3dea5 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4b2292f ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4e4300d ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeaa7a338 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xec123462 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf3fe46b6 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf4bd5d70 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfd0d3d55 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfff80105 ttm_bo_kunmap +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x64d01d18 vmbus_sendpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xddcd6055 vmbus_recvpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x955910ad i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xd4cba018 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x7d1310b0 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xbaecebfa i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xda03654c i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x74ca0481 amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x2107de5f rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x37838b44 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x3b35455b rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x6f6ee97c rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x8ef35bcc rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0117f23c ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0246a131 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x04224fdb cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x18e069fe ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1d197105 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x246a4c3e ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x28893d98 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4b501cbb ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4b6516c0 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x59df1d3d ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x624260ef ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x63147113 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8a0a1bbc ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8b0ff96d ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9d9a10d0 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbda11d19 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc3a2ea28 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x02fc512d rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x078d6dd8 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11731b00 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1180fb86 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15913a69 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ca3d925 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x223fdf7e ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x252b9b84 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26d34599 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26fd9190 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27a4b18d ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29b789c6 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2dacd037 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x301c58e4 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3188a3c4 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x35e0a8ee ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x35ee7379 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x369906be ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3764c2da ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a4ec394 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3c6ea337 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ec0d0f8 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ffea4f7 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x406dbeff ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x473b0530 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x491cbef4 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x524cf319 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54392be8 ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54afde8a ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x57ca7e77 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58d8753f ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ab29b01 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5be20215 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x604e8482 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60aa7adf ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x619edabb ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6344c264 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x63471373 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6410b653 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75969cdd ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79154185 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f5433a9 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x82f504d1 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86515b42 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86c5298e ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89a6610e ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89f88535 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b876c07 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x912e001e ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x952589a6 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d338566 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa1050fd2 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa408eee4 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa99d9707 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa4672a6 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa689a37 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf57a516 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf88fff2 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb24d4872 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb34be77a ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb8ec2bed ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xca88ca6d ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcad9d791 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd5b45f4 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcf708f4b ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd599a2e6 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1f9e69a ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2c7956c ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe35e554f ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec953d1d ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf374828d ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf994d09a ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf9c77d97 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0739b7bb ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0933b630 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x09c23d2b ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x469820dd ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5fe5b915 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x65005bef ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x89e7f905 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9aa944d1 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb486aa03 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe5586536 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe85a4ddc ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf28d23e9 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x27e80d59 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2fd0e42f ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x56ef6c06 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6ceb6b83 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7b20ee78 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb2e73f12 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc1955a3f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xeba17780 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x29a1d2cb iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x34165513 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x39dc8c99 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x449a37d6 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x79449ecd iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x998a133b iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb82c717e iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe76fe01a iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0aab9230 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1117413a rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x26e22d0f rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2a2e3bad rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x315b453d rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x42cfea10 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x520585f1 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x52068542 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x56ad04aa rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5aa2c775 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5d9c8211 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x619957db rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x85b25647 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8a68b7a7 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x992d1e49 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xad724b3a rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb49896aa rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd806a6ed rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf3cbd178 rdma_bind_addr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2f2fbdbd gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3ee45b0e __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x46d2231a gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x71f98c47 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7510833d gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7824375a __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7ae9fba7 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7b6983af gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xab0401d1 gameport_stop_polling +EXPORT_SYMBOL drivers/input/input-polldev 0x31a8bebd input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x6241b374 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb2039642 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf3f72d7a input_unregister_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x0bbd3cf6 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x2ff53b0a ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x8a55a18e ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf97acac5 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x4d7cd7cf 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/sparse-keymap 0x01bdef13 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x74f427c8 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa371769e sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xc29c7489 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xc60ceee8 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf72ab02b sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x5b6d8091 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbc9dc160 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf3bd1692 ad7879_resume +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x42ce0fc4 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4b194f50 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x77141318 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8787c0da capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9499c054 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa4b372df attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc6fb75c6 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd1b9b6a5 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd4b49809 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe3ee3787 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x14def353 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x17212246 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x51ee392f b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x57a5c157 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7fbc4b60 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x951987ed avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa24f40a7 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa467f6fb b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa89baf5f b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa95ad60b b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcad44185 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xda7d89bc avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfef6e3f b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xeef0f9b6 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf315ddaf b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2a8f9f64 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2c3205bc b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x34e5495a b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4dc0ae8b b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8da807c4 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc2ddef5e t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe10c5626 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xec5fea87 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xee599ab9 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x74829163 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x1939d05f mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x326281d5 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7a0bb243 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x9a1c5750 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x4fc96ae9 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x5b8e915d mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x67b794ee hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4b9cfb00 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x514a740d isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x59e9a8dd isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x7de62a32 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x8de4d2be isac_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x17ee7cb8 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa1b0656b isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xe3ed1454 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x01a0f8c2 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0e0585a8 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x19752284 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x35ce1ba0 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x45992a9b recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4614d276 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x48348d6a create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4a2cce81 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x53bb6ee1 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x53c79bbd bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x664193df queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x67294928 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6901dc5b recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x69f7968f mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6e581682 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x70af40e9 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x79c01a81 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7da9741a mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa15dac1e mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd44e30fe mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfbc65b9b recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x13232540 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x5d7b14af dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x7389ebac dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x85c28767 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x41b65b46 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x5a1fdb5d dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x66d93bd5 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x72315abe dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x8aa16696 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x8b752579 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/raid456 0x858d0a3f raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x7aeeaefc max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x4c9fdd6b mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xb8d24ad7 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x9ef67591 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x55920895 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x2fcdc95d mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xa9372d15 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18212 0xadedaeb0 tda18212_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0xdfb815a6 tda18218_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x2a66daec xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc4000 0xfbce9c8e xc4000_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x89c32743 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1a24acac flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2a3368b0 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3a65c7f7 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x47ca500a flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x49372f35 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x496faabe flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4b841bbc flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4df06e97 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x605c882b flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6362ad7f flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x643752cc flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6ba09311 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x712742c4 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7267f443 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7a9fefa3 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7e0a5445 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa46c3a6e flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xca4571a3 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xeb509351 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xedb99098 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x54efeecb bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xa5ab7f49 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xc6dd6841 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xe36eac14 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x205a0321 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6bde63e8 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x719fb018 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x895b9439 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xbfc45d2d rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc6d21bde dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xdeffe762 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf4d911ba dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf578c854 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x9f9c2596 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0dad9004 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0dd20f7f dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x27be7bb3 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x27fd8e29 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f029e79 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3906dcae dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3ff241fe dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4011cd43 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x42731887 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x62ec8a93 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x638aece3 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x69db5192 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6e8afab2 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x70101849 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7451274f dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7a54146a dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x81404e15 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88d066c4 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8d2ca9c1 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8e1035b7 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9eead229 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb567de3b dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbcf2a1a5 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc150d451 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc597201e dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc65e9c1f dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd942331a dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe7271e3e dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeb6f61e7 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xedb0bf0e dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeed8490a dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf5204e8a dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf663dbab dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfbd4b4a1 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x477761d7 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x7d261ace dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x85935fa5 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8c08ae4a dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xbaf29a25 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd47de9d5 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf1990117 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x644e396d af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x02d32945 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x039a4dda dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0800e4dc dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x175dcd8f dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x31edba27 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5100daa8 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6680bf15 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7a1fa8b6 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7cbf8ad6 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xef6f19d5 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfe5a2632 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/a8293 0x2bea7085 a8293_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xe310d575 af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x0de177a5 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x79028e08 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x70e7c33e bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x3c559117 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x2386703a cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x73fafc89 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xa50cf8fc cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xe8bdaaad cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xc01cae4c cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x34d823f6 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xec1d92b1 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cxd2820r 0xc78157cc cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x553b6e77 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x73a007fc dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x756675c5 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xc980c890 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xd71cff13 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x00eba4a9 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x37fd9f63 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x5430407d dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x5b38755e dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9632436c dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb563d2c0 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf1a290c6 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf5e640ec dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xfaf02fc0 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x5a3fe1e0 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x58c94ced dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd1cb3c04 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xdcd002eb dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xfce52d39 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xfdc2c6dc dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xff0f53c4 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x09745e19 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x23383b9a dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x473f7189 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xe9ad216e dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0c58b3a2 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x168b2a8c dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x301580db dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3d3516ec dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3f290bd8 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4922b148 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x696e07ef dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x86e195fc dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9aa9379f dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9e0da47a dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa195bc2a dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xaca41a52 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xba6b0527 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd189963b dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe464e433 dib7090_agc_restart +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x02a87e06 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x14d04920 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x21eca3e0 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x257ebd38 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2d55ab3c dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x42d9f10e dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x54194de7 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x669b39b2 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x6de42566 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc0201870 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcbf4e72f dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xce6068a9 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd78b740b dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe7c58bed dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x322fea94 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3bbcc171 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x50d0965b dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x79093009 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xf991c4dd dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x0f36ab26 drxd_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0xed21506a drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb/frontends/drxk 0xa0617a85 drxk_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xb26e4ae5 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x54afbc6f dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0x383b1607 ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xe8cddd63 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x1e70a9a1 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x5639e4b6 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/it913x-fe 0x141eb238 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x71e7680a itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0xe0278a0c ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x4d1ea12a l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xe6f2bf0d lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xbdee33f3 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x64e33fad lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x409499d8 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xae01d048 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp22 0x61f3ae0e lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xc3e004db mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0xa99ce9df mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xb5d8312d mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x3d6bbffd mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x8e8eba32 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x81bc1c3b nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x12c93fa7 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x135eb53e or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x51bbb58d s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xf92c9f5f s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x00cae24a s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x4f0ceea8 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x36fd39f6 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x01737182 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x40150556 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xe7b5ace3 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xb79d7abc stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xfd42c716 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xd848597c stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x1b872a11 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xed3c8424 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x6b27caf1 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x1d019a76 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x87cb0259 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xdd8f739a stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x0a64b7bb stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x92370845 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x5e103246 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xf5f97c1d stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xf094d02e tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x7fa78a2c tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x3b0b07cd tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x37a89f33 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x5791d6bc tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10071 0xf0e316bb tda10071_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x641a47b9 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x047b9915 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xb3ad2c53 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xd7c90da8 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x90395ec7 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xb58ed6d3 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xb777fa63 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x717d6543 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0xd3ecd248 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x57471333 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x9784976b zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x1b98b8f1 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x5c4b354f ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x778c3485 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x0480c495 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x11c87059 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x32e6593d lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x4b711844 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x85c480cc lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x96182962 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb3fc2968 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xef15b90a lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/rc-core 0x6e417e75 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xb9103056 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x10ab03bb bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x44e563ff bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x87a7e6e3 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xb1c59621 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xe6d8bb32 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x72720efd cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xb2355561 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xb25336c9 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xb68e838f cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xe1ed3404 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x595005f3 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x7ccc3b4d cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x43349462 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5e7192e7 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0x676ed443 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x704def77 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0x90928a07 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x4d579e4b altera_pid_feed_control +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xbb4802aa altera_hw_filt_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xf1d93500 altera_ci_init +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x05d65617 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x346690ca cx25821_devlist_mutex +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x647398f8 cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x940bfb01 cx25821_dev_get +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x9774605c cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xa8a04c7b cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xb758a595 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xe748e519 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xf202712c cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x07f0fb8a vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x3359f3ce vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x01ed6868 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x12efb5aa cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x134e8c16 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x808d9917 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xd535d591 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xd9b71390 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x4d92840b cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5fd19388 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x72b19b9f cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x7e20e361 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb490f4a9 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xe7bb234c cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x01cd2c8c cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0a5b0cbe cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x23b7f844 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x23f79c60 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x287a8f7d cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2ea8417d cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x36501f11 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x38ea1f6d cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4d27d4fc cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x511279e6 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x564936da cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x591c1e7a cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x645c778d cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6ae4120e cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x73566c20 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8dfffc64 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x91694e87 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x93257a46 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc6e41a20 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcfd65818 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd615edbc cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfba9808e cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x59ef67a7 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xfe7c19e9 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x4898989a gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x7cf4cd3a gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9e2547a0 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa088fdc2 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd4dbacc2 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xfd0a6836 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xffc8fffd gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x19e09634 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x213377d4 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3e3e7ae9 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x498f1f57 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x988d0c54 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9916c0a7 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xaee52eb8 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc25b6558 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe0274610 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe3f20c4f ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xec49d007 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xec830579 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x05f7dd8f saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0f14b670 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x28d8dddd saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4a8b4a84 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5417071a saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x679fabb1 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x851dcccf saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb0b25c6b saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbd903263 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc8c0a39b saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd574bd57 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf8721f79 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/soc_camera 0x5bd7ecd3 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x6941c40c soc_camera_unlock +EXPORT_SYMBOL drivers/media/video/soc_camera 0xa1edaa9d soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0xb7df2920 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0xc3a32e07 soc_camera_lock +EXPORT_SYMBOL drivers/media/video/soc_camera 0xfeff079c soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x433952ab soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6951757b soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x85d52182 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xcb4b96ae soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x58abbc0e tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x844c4645 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xaa3221fd tm6000_register_extension +EXPORT_SYMBOL drivers/media/video/tveeprom 0x226f1048 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0x254b999d tveeprom_read +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4f42c01e v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x791ab099 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc0699aac v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf052e6db v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf4cb524a v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x7e2181cd v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x839577ea v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xd5ff7628 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x0b1df8ac videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x2eb69b5f videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x8a205bce videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa004b970 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa0ff915c videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xca99037c videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf2-core 0xa8f61eae vb2_querybuf +EXPORT_SYMBOL drivers/media/video/videodev 0x058657b9 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x06388e6f v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x063c2cdb video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x08629ec3 v4l2_ctrl_add_event +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/videodev 0x17581d53 __video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/videodev 0x2359ddda v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x2b5cdfdb video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x2c2395e1 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x2c877cb1 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x3874c8a8 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/videodev 0x472904f9 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x48c44109 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x5804752e v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x5e824c43 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x6204754c v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0x6247454f v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0x6a6a8134 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x71478639 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x7418f4d2 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x7621fb96 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/videodev 0x8293eb3b video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x8dc01db0 v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x9195b3a5 v4l2_ctrl_del_event +EXPORT_SYMBOL drivers/media/video/videodev 0x926ed670 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x950d2e17 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x98eb373b v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xa115b9dc v4l2_subdev_init +EXPORT_SYMBOL drivers/media/video/videodev 0xa9d6dd2c v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xb03887b3 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xb087e899 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xb5dcdf1c v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0xb73c7ef7 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videodev 0xbfd0eac1 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xc1482aa0 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0xc829b6b6 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/videodev 0xcddc7bff v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0xce05bf15 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xdc3f42ab video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xdee96fad v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe3719f5c v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0xe7c5ef2c v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xfce34920 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x0144d646 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x53b2d97e videocodec_detach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x8a3bb2bf videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xc395de5a videocodec_register +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0fde17b2 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x15cb22d4 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1bd84b78 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2b1a5037 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x52067dab memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x599d1aa2 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x642654fd memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x672a7cea memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x93aa87fc memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x9b7f0c34 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb2c4dd52 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc281bcff memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0343b5e6 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x038b5e32 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x06a0cfd9 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0a22a747 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x13975790 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2cc60aea mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2e472fc9 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x30bc340f mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x330cceed mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x364def5c mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3ee8aad7 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6251440f mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x734441ac mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x79d1929a mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7a7ed091 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fd6475c mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x81496b2e mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8bd0c96e mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8d4b9b4d mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x929e2c21 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9771ffcb mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x99f1ce18 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa49067b8 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaeea77d8 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb4235835 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcedcb0bb mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xea8d7cc9 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf65c9527 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfbdbcdf5 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x110b1097 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1359fd39 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x149f9cf9 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x17cc2126 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2bde2f37 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2ff492cc mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4295485a mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4938b908 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x653cabe5 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6d6e63a5 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x72ebbfa5 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7be6f138 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7e5e00ba mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7ebee992 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9d47962f mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb362cded mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb7355e87 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc5ed690e mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd880e4e5 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd883f4e4 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xddbd5cbe mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe1de80de mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe45b6589 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xef99be4e mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf1b08b51 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf7c66cb8 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf87ff5b6 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0e3792a9 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0eedf659 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x11ecd904 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1a362d1c i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1ff93b2a i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x43cc1db3 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4680f1f0 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5666bbb3 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6415f255 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x64287ded i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7fb50d29 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x85e67776 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8679bc4b i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9318a2e4 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9c33df9a i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa0def761 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc0f08a0d i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc4567641 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd8f2797f i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdd7ae19f i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xed9d04d1 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xef1666f0 i2o_status_get +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0305d9ab pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x9d9818f2 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0a0f0fa1 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19f1f7a8 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x304d2b09 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x648f3e82 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7c8289a3 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x81e0f888 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x908760bc mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9bc42b70 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa83c26ee mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xad06449f mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb3dae053 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc60a9247 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfdc5799c mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/tps6105x 0x50cb8611 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0xa4e694cf tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xb8e9511f tps6105x_set +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/misc/ad525x_dpot 0x705e58b4 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xf0663f7e ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x918d2319 altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x7ae24626 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xf637cdf9 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x7aea6af2 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xa04a736f ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x4618eab3 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x5cccfab9 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x6e6df4d4 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x7ec19729 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x81dfa185 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x97c0c325 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xa551c543 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xafded938 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xb4cb85ed tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xcfb33d0c tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xd75f5ade tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xf733fd62 tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xd4a473d5 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x2829a707 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x68234b96 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x6cfedcdf cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x12026a0c do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x1fc65af7 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x69e89c41 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6e952540 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x0a3dd37f mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x543087c2 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x4c9c4c9c simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x57f1e884 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0xd1889f63 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x845f1e56 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x9160aa52 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x9b540aad nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0xa1255095 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb45cb332 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf1532f5a nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf30e43bd nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x21ad18f0 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x35863837 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x4d42bfef nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x1c69f95a nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x8be0fbd5 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x039f26e7 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x0be75987 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xdb857492 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xfd639c71 onenand_addr +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x07041bd5 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x306f9ceb arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5fd287a6 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7687998a arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8beafdf5 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb3f63c6c alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc1023c24 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc8acfbec arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe026db32 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfa124b9a arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x1e666f64 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x503b6fbd com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xbbf04f7f com20020_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1aec0009 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x37cbff99 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3e8340d7 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x402b2458 ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4357ec04 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x730f6be2 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7e41a563 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa1b701b0 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc94e83bc ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe635fea8 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0xa30e5439 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0x69312cf4 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x319ae3bf cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1cbfde27 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x42690b19 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x45b151db t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5540e9ea dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5863d08a cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5f445cd0 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x644dfcd8 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6484a8ce cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x64af7520 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x79e6d0b8 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7a0b45ff t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa8531aa8 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbfb4b450 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdeef88f6 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe2423ca0 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe385112c cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0bc192af cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x41ecc1b7 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x47cd9bf8 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b111df9 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x56207ec7 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x59b14259 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x618da1b3 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6b435ef3 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x73b35e8e cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x84cf61da cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8521c1a0 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x96f3194e cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb776b29b cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbc03ac3a cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf06e1c15 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfae66a38 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfde61631 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1dea143a mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3eb9f45f mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9aa77248 mlx4_release_eq +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x01dd1a7b hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x623cfafd hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x86cd99ad hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9052f9f6 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x936030b5 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1c8626a4 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x62fd3cca sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x74a370e7 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7be6eaaf sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x84e09cd1 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x99e59c9c sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xafb8b385 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcb1a244e irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdbe38479 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf61f195a sirdev_receive +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x1fad4347 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x75092455 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp/pppox 0x738ef669 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0e17a2a register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xf052b53e pppox_ioctl +EXPORT_SYMBOL drivers/net/sungem_phy 0x1294c689 sungem_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x46e2cd3d tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x5ba9d7c5 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x6957c602 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x75e2b1f6 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x9f7467ff tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793 tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x02817f30 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x34f27605 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x39ce2b09 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3fe9110e hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x445bc862 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5282461f unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8f439649 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa1bd8ce7 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb0062cee register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xda4585e5 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xee89d858 hdlc_close +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x27876eab i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x1550a75c init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x58074938 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x941b85a2 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x101cd84d ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1c0b8ecb ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa8a93d42 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xac93c06c ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb08c683d ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbc354f07 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc1b5c315 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc7e5d0e0 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf7dbc090 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3081abe3 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x605edfff ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x62a31125 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe092c9ac ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0733c3da ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09870171 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a0b6c08 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c753392 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d84801e ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e663810 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10ac96ef ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11f92560 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x135251a4 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1470fa91 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x158b4404 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x172d30a4 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17ccafdd ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22ff7fbe ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25a02536 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28bb3099 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29fa32db ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a0d1e81 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a23382c ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b3d71d6 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b88507d ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2edb664a ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2efaa9cd ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x301a68b5 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x355baec8 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36bf86d1 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4025cc25 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x41b1aa9c ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x44b84839 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x499f7f47 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4db31f7f ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x50c9e642 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51a2697f ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x530e7250 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x543ca14c ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59982b09 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5def848e ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e30bfa9 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61e3eeee ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64cafc36 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x67b51982 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c212d46 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ca665f4 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fd16162 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71645768 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72866001 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73b779a7 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76ce6b66 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76ef10c4 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78e50cb3 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a63d307 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c4b3e5d ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ca5b4a9 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7cdfbce0 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e67d378 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fd8e6e9 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8afc1354 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ebc5ab8 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97d805a3 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa16da6a7 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7eeff7d ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab85d752 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac0e1dcd ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac15abc4 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf273a4c ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb462a644 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8b0c225 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb92ab7a5 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbea9804c ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc457e21c ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc420c37 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0ffb2f7 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd393e1b1 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4d59c48 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf979b11 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0985b3f ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5d1b7c4 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8b47ca2 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xebd13b3d ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xecad3ab3 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xefe26887 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1ac6b7a ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3c3e7f6 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7c1e5b9 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfaf787b5 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd8328d1 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfde6ee61 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe57e261 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/atmel 0x3aafd8b7 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x4c82dfcd stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xc68079db init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x3ba0845e brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xf13c5761 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x097c4341 brcmu_pkttotlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x0eec1522 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x20197c40 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2e4ceaea brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4e7e326b brcmu_pktfrombuf +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x5eea7648 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x672cdcbf brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x950eb93f brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc1e505d9 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc4fc57e4 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd1bf413f brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe6ee3909 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe96d5c4c brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf04254db brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00367fcc hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x087df948 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1275df43 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1bb133c4 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1c3a1d97 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1fa18b85 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2acfb5f5 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2bec2dad hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2f1c5a9f hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3a6bf6d9 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x41880438 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x499fea5f hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4bb7f881 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x52007755 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6ef7d368 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8a1b391b hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9d1e54ce hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xab48675e hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbaab7932 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc49c2c75 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd914798e hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe4d15e70 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe91743a0 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfcbe7f53 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xff019795 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x01e90de2 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x02cb78e0 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x056e2427 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x069f57ce libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x06d70528 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x18e1ecdf libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x36e07b74 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3e2bcd3d libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4d6b1b36 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x526fb577 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5904a412 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7567537e libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x787e4492 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8b436b4f libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8da7ff40 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8ee4f45e libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa7ff9696 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc875800c libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd626d999 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xddceee1f libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xde0894ec alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x04692cfa iwl_legacy_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0835a51b iwl_legacy_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x08e316c7 iwl_legacy_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0a1ba180 iwl_legacy_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0d13a4ef iwl_legacy_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0e92acfb iwl_legacy_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x10004d12 iwl_legacy_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x100ff959 iwl_legacy_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x14deca60 iwl_legacy_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1740a5e9 iwl_legacy_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x19be79a1 iwl_legacy_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x20e55989 iwl_legacy_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x270e8be3 iwl_legacy_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x27602584 iwl_legacy_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x291f9646 iwl_legacy_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2cc53309 iwl_legacy_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2ddd99cd iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x333287a6 iwl_legacy_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x346c76e4 iwl_legacy_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x34bc2e81 iwl_legacy_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x37c2118a iwl_legacy_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x38443781 iwl_legacy_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3885680e iwl_legacy_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x39143a86 iwl_legacy_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3cba2e37 iwl_legacy_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3e455f8b iwl_legacy_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x44408be7 iwl_legacy_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x491757af iwl_legacy_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5147125c iwl_legacy_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x51f312a1 iwl_legacy_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x52c020bc iwl_legacy_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x53de5429 iwl_legacy_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x553818e6 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5710ca11 iwl_legacy_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5c87e372 iwl_legacy_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5fcdc06d iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x622231e6 iwl_legacy_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x62381ee0 iwl_legacy_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0 iwlegacy_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x65d4142d iwl_legacy_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x661f5bb8 iwl_legacy_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6d90f6db iwl_legacy_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x706a5988 iwl_legacy_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x71ecda92 iwl_legacy_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x74177efb iwl_legacy_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x758af9ca iwl_legacy_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x76b9635f iwl_legacy_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x78275d90 iwl_legacy_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7966cc40 iwl_legacy_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7ad49d0c iwl_legacy_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7b4eb5cc iwl_legacy_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7e9e0724 iwl_legacy_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x81c54036 iwl_legacy_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x853c1344 iwl_legacy_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x85544225 iwl_legacy_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x86fee154 iwl_legacy_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592 iwl_legacy_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a6c66ab iwl_legacy_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d624464 iwl_legacy_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d6f1d86 iwl_legacy_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x91150da6 iwl_legacy_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x96468e68 iwl_legacy_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x97d03dfc iwl_legacy_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x99dd8216 iwl_legacy_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa330b1c6 iwl_legacy_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa57627b5 iwl_legacy_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2 iwl_legacy_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xaa881849 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabe48768 iwl_legacy_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xae019207 iwlegacy_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xae5e9165 iwl_legacy_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb6e74944 iwl_legacy_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb76668b7 iwl_legacy_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb84e06c4 iwl_legacy_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbe3db0f2 iwl_legacy_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc8992ca5 iwl_legacy_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc91024e1 iwl_legacy_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcb1878ce iwl_legacy_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcb4b70d7 iwl_legacy_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcead6c7c iwl_legacy_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcf7dd1cb iwl_legacy_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd1854f7f iwl_legacy_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd1f703f5 iwl_legacy_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe17fd9c7 iwl_legacy_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe2b7dc42 iwl_legacy_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe9316a62 iwl_legacy_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe987629d iwl_legacy_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xeb3fa68a iwl_legacy_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf03634b0 iwl_legacy_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf6f93310 iwl_legacy_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf8f58216 iwl_legacy_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf9dd1042 iwl_legacy_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfae8db34 iwl_legacy_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x07849596 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x1a260580 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x373f37dd __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x482aecd3 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x58e9338a __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8daa79ba __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xbb7e5c47 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xbff320f5 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf6765781 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0bad9ea3 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x17b3ea66 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x18a76d58 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2ef1c324 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x406029ee orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4cd8a26a free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6aeb6431 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x82226a01 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x86405956 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9bcbec56 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc5b0142e orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd7bbd505 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xda67596c __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdb0cbd65 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe29ed683 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf1b805ab alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfcaba24a orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x01724442 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0234209a _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x02fce9ad rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0a6d856b rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0b443699 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0eaef0d4 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1907bf02 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x19332b63 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x247b8a1f rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x258fed4b rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x32cf5dd2 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x33a849a6 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x35d18f2d rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x38ff1cf3 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3ae584c7 rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x456cfffa rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x476c6590 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x522c8117 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5696de18 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5da7ef81 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8557b23f rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x87aa6a4f rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x88394cee rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8ab433e8 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8c6fceb5 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x962a02ad rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x998c91a5 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa02870bb _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa15d8c2d rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa27ebe3f rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa90c1658 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae2cf9bd rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaef1a284 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb930aeea _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcbd6c586 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdb71f94e rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdfae28d7 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe59ab899 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe6d42f29 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xec8924e3 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf2a74b64 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfe8530ac rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x00206b2d rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x06b77494 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x19de22ec rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1c611474 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x24306f07 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2bd0eeff rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3be258da rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x506f98bd rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x50cafb5e rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7bd0e83c rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x82177bc1 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x94522d25 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa3f4ef44 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xab90754c rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc7e9415e rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd493f39b rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd5d1e577 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xdb3506f9 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xea5cfc04 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xeb209d34 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf0f93bd5 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfb5b5e6c rtl_pci_disconnect +EXPORT_SYMBOL drivers/parport/parport 0x109f49c8 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x17a01f1b parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x1904b93b parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x229b82d2 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x2433aea3 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x30a2f46e parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x35e8a785 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x37dd6614 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x3a6a02c0 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x542754bb parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x5aecc29f parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x6000d84a parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x695fb7d2 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x6c9fcbea parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x7d22f8d2 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x825c9b62 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x861d8844 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x90ccdfa7 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xa71c0b3c parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xacd99d19 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xb4ae3c4c parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xc04bf9f7 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xcae170e5 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xd4f06f93 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xe51b55c1 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xe6bce9ba parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xeedb58b1 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xf420d10c parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xfb129f47 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xfd7cee6f parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport_pc 0x75ddcc70 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xaa812fd5 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0336ecfc pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0cd1636f pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3cfa3b65 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4bea2238 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5c542fee pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x729358a5 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x811bfd1c __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x88265f75 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x995b5d6e pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa6f104e1 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xaeb93c64 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb379f746 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc504ba47 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcad90e63 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcc18f988 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcd18a611 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe1e321f9 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf0f9c664 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf36304e0 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x011848b4 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x19c1c5bc pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x210f3b41 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x51658e92 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6c22b85a pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x758c43b9 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x93c3e7ef pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9a103067 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa073ce9c pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd31ab468 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf2e940de pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x7c2eb235 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x9ed85181 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x00184df7 pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xc0d69108 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xc6874603 pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xcdbb2693 pps_register_source +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0b077b1c fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1f155eff fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5da30f50 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5fdeaa0f fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x60a631fb fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x64e4df02 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x682e05b0 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa0e06377 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe04e923f fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x02336442 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0357bd2d _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03dc46b8 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07870869 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07d46994 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ab60eb4 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x133fd130 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x140bc234 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1843600a fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x214f8b5f fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21dabb8c fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x27054ba9 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a0079e4 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32b179d7 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3bcada69 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3bdf09d7 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4697e97d fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a61e8f7 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ae1b6bf fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4b04d8a8 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x52b43d41 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5a4543ce fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x60d3ea6d fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x63bf5395 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64d9297a libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a280e16 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6bb01b72 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x77d856e0 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x81e98448 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x82eb7d87 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8c365b02 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8c51a545 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8fac9012 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x93eee28c fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9920c358 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9997d9d6 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3c42699 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa8a2c4ce fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc0e53573 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7917589 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd2ea7fcf fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd38f6762 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6030365 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6b38e20 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe1c88e26 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe243cc38 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd56a481 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xff6f2b1b fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xff858fa1 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xffcda9d3 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xce413d2e mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0047f162 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0b8838cf osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x11428632 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x13ea0a89 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x162e84a2 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x210e1dc5 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x29a90835 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2df5b04a osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x307dee45 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x330465b0 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x33ea56da osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x35513eee osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x37d8d312 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3fd81dcc osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x412f2185 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x55f7720e osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x56daf661 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6133aa55 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x690afefc osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6d72b190 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x70970736 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7f59b735 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9da6ef1b osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9e613f5d osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9eda842a osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9f3ceba6 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa5b6d830 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb2839d57 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb30cf51d osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb41a5d04 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb6b39649 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc092c330 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc33bb7da osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdfa4faed osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf39e0648 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf5ae0550 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xa1fea5e2 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xaf7ed56a osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc22ab6f6 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xde95c974 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe5090286 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xfd8e139b osduld_device_same +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x68eaf287 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6af2dcf4 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa34ba291 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa6edca14 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc2d52172 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf9e30ddb qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/raid_class 0x2bda73a3 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x2dc68b50 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xa1389daf raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4111c0c8 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x68126437 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7223f1a8 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x73ac028d scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7b571bac scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x882e0ff4 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8e7fffeb fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9091e529 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xadf0ccfd fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbe347414 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe01263c2 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe30d39c0 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf28ca7ce fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0f0f62b2 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x143eb738 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x161a0d2d sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1e500866 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2be8c41e sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3dd05461 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x476a210c sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x485e55d4 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x55760e63 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5fa2f0ad sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x77c6f16c sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x77fd4db4 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x789ab4dd sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7dede327 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7e5b8d95 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8953dade scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x895d12ff sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x94222583 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa668c775 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xad184db3 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb6127fe8 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb6c0ef4a sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc8595ea6 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd845a033 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xef2d6865 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf8e7770d scsi_is_sas_rphy +EXPORT_SYMBOL drivers/ssb/ssb 0x04b21dc2 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x0d50ca57 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x1a0ad284 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x2a9d34f3 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x3941fe30 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x3a7776d3 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x47c53a38 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x605ad780 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x677d0d98 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x6a034119 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x6d3354b4 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x70a5bedc ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x761d569b ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x8106cd0f ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x89090dee ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xa463eea3 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xb124e7bd ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xb1ca9a74 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xb488997b ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc380b4af ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd2ecf9b1 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x058a7fb3 comedi_buf_write_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x08cf4ba8 comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x24dfbd61 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x28955d17 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x30ac6324 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x44456ff9 comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4f46fb17 comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x5bbe1f8b comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x6441d5f2 comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x75e3384e comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8ee28ada comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xa711b5e2 comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xaf317e82 comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xda0e7225 comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe4377e30 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x23ee61d7 subdev_8255_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x808d90ba subdev_8255_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xe5017059 subdev_8255_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xfedae288 subdev_8255_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x3cd07792 cfc_handle_events +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x3edd70cd cfc_write_array_to_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x433bef72 cfc_read_array_from_buffer +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x02cd87f2 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x0a015c2e mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x146a58d0 mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x24417ea5 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3f190321 mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x45028021 mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5a1e7626 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6dbfeaab mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6ec8f6c7 mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x71ffd6f8 mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7db73ec6 mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x8f5b747b mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa36b5a9d mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa54a60f7 mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xaea20fde mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xb3e586fa mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xb8fae8f6 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc2574ef2 mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xcac2bb39 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xeb235697 mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x4114d96a subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x438cf607 subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x5cde796a subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x6c1a6c24 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0xffb6cde4 comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x16e0b060 comedi_close +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x5766135d comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x88186aea comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xb8d761fa comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xddae69e8 comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xedfad05a comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x597d6754 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xad8bbce6 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xb9b8d604 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xbbcaec25 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0250fbf5 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0cef2319 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0f32b682 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x127d1fea iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x316f9abc iio_trigger_poll_chained +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3f30d436 iio_buffer_write_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4263ab6b iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4720908c iio_buffer_show_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x51dda6b5 iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x59327603 iio_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7990bcaf iio_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x95aeba98 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9b9220d2 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9cfa8a9c iio_buffer_read_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa0c3d956 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa4ae3c29 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa703f49e iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa90246fb iio_buffer_store_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xaa2e51ff iio_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc1faef28 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc6a95a7d iio_buffer_read_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd24991e9 iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd2ff4193 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdc679ec1 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf8aeaca3 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x75247c6a kfifo_access_funcs +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xb5539932 iio_kfifo_allocate +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xcce2bef5 iio_kfifo_free +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x6e710e85 ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xe26eccb5 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x31203849 ring_sw_access_funcs +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x99196cb6 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xdfe119e3 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x9b394fc1 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x400a6ebe go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x49e5d845 go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x84bc933e go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xabdd87cf go7007_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xbd0834ee go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xbf39a88c go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xcc418cd4 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xe8a81c62 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xf4229918 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00423e53 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1128c7ab ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x14285332 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x15631f44 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x171140df ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1932d439 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x23b05de2 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2db7a168 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x371240ba ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x38d14b41 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x39048b7b SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c00d6c0 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c3b0354 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c4874c4 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x405ed8a6 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4242add3 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x46409bd3 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x480be703 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a7b0217 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4bb1733f ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4e06c91a ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x58b4cfb6 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x66130e6a ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x69e4365c ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6bd52d77 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x77c2f3ec ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x797cd720 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7cea7725 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7dc700a4 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f55bee1 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f9e23bd ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x80cc575c ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8222a19d notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x85b25cf2 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9b76605a ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c233962 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa3395aff ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb4757a26 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb77167b4 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb78fae68 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7b64966 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb8d0b230 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc16d4a5f ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc25c8c6a IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd4c05d04 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd75a0fb2 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd931b5e8 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda41b57d ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb3fb5f1 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xddf70d27 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdf48f00a ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0bce0f4 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed2a0171 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf27a949e HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf6951867 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf746c1f8 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x05cb34a5 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x14718754 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x2e024bbb vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x3ab0e328 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154 vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x461bbfee vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x5462097c vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7754663b vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7e66223d vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x861a2659 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9d279035 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xbc098300 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0xbd053e80 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xc7322700 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0xc81ff1d2 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xc887ce33 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe14aae76 vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe977ced6 vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0xf53dab14 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xf6cd255f vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xf8d57001 vme_irq_generate +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0338ce75 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x0479e390 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x09a61278 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x09ebf317 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x0be1a0f0 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0x1277d0a0 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x195a3142 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c7e42f1 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x207a7add target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x2957fd30 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x2da333d7 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x2efa7b48 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x36a14099 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x390c048e core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x3ad188f4 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x3b9c6dd8 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x475652a5 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x49d2ed5d transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x4fdcdb69 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x53bbf508 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x595cde4d iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e230e49 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x601d58de core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x63c5c0ff target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x65dc094e transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x66342907 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x6ec935a8 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x73c7ebb1 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x7b8e7fd1 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7ee94cb8 transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x82b9678d iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x832c7f83 target_get_task_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x883cada7 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x904e3201 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0x99f866af __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x9af57394 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x9b0b2a55 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x9c21f5b9 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xa2b0acbd iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xa8a4dc74 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xb408af7f transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0xb4dcf8fc transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xb7bd61e3 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xbcc359a3 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0xbdd413e0 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xbf74736e target_splice_sess_cmd_list +EXPORT_SYMBOL drivers/target/target_core_mod 0xca1dadab core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xcd6aebac target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd13afc6b sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xd2bb49b7 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xd7adb38d core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xd8762c8a fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xdfd92647 transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0xe87fbf96 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xe9ae2177 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf0c0e632 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf229b974 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf2b0d191 transport_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf5d1d920 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf6052a81 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xfcd4ed74 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/telephony/ixj 0x871dcd2a ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x008ba496 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x81840cc1 phone_unregister_device +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xee8a65cb sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1c4ad2c8 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x26cb274f usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x27f3979c usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5b2f64e3 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x77b461b4 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7c76c424 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x93705acb usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9848fc0c usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x993316ab usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9b7a1489 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9b851a43 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa4107e19 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd6f5204e usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf49e0fb4 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfaf72722 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x145f26e0 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xf91a6409 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x8531589c lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xd0c5d6c8 lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x8b5443dd cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x30087aaa display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x31b2c06d display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x16173b10 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x269c7e27 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x61440881 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x9a1a39a7 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x11ec416e DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x1ffe91cc matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x711fd4ee DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xeec2c1c7 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xb39b0a2f matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x166b4479 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x3d7274d0 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x4a6859cf matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x78f80a15 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x9b6d6c31 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x1df2f966 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xd03ea94b matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x13383700 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x54b224e0 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x641e0144 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x82e70a10 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xbbc0c936 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x6e2f6218 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0xc557d9c7 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xdf431cb7 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x04955296 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x549b03a1 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x5f71bb1c svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x97b34973 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x9af699c6 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xa4e10da0 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xbd5c7a0c svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf0df8d7b svga_settile +EXPORT_SYMBOL drivers/video/syscopyarea 0x4c84f8e8 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xe5154115 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x5e9aaae9 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xd9869e71 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xf789e4a5 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x551751c3 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x7dbe1080 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x92644efa w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc095bda5 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x1e9bb172 w1_ds2780_io_nolock +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x50a92e4c w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x53d45b53 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/wire 0x0ab3d6ba w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x24919543 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x3799209f w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xd020c953 w1_register_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x00f2bbb6 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x1092da44 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x1b2314fa configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x4484f888 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x63a37559 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x75c92ab5 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x81c76a9c configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x87e2e32d config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x93d940a1 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xd786dd53 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xe155c534 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xf449dc1f config_item_set_name +EXPORT_SYMBOL fs/exofs/libore 0x011500ad ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x0cdeb216 ore_create +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x374960b3 ore_read +EXPORT_SYMBOL fs/exofs/libore 0x523db450 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x60d12ab7 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0x7e309d96 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x9aed1aa3 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xc1869a18 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0xc2feba25 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0xe56be595 ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0xe8403011 ore_write +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x17477343 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x18b4b6c7 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x1f456ee2 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x279fd24c __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x2b29a802 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x37b1df79 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x3f1ab7f2 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4244bb4f fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x4600975a fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4686e1e7 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x472b636b __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x78ef244c __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x7f1ca15b __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x7f713d1b __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x9b9fb9eb __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xa42d84d7 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xa81b9218 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xb00eb01f __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xbcaaf5de fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xc1b3ca0e fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xcceb3c43 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xd504bf98 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0xd6baf284 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xdbdc5302 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xe74bdba6 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xefd6dfc9 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xf6f803a6 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xfcea2daf fscache_init_cache +EXPORT_SYMBOL fs/nfsd/nfsd 0x01f7fba7 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x940bea20 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x123b6f6c qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x4878205b qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x665bbc8e qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x6f3995b3 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xcb490ef4 qtree_delete_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x3e77b340 crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0a3f82e1 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x31db9d9b lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x358c55f7 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x4731dea1 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x5008bdcc lc_put +EXPORT_SYMBOL lib/lru_cache 0x98f0a27d lc_set +EXPORT_SYMBOL lib/lru_cache 0x99356694 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x9cf5f00b lc_changed +EXPORT_SYMBOL lib/lru_cache 0xa5e2f154 lc_del +EXPORT_SYMBOL lib/lru_cache 0xd1ba63bb lc_get +EXPORT_SYMBOL lib/lru_cache 0xd427134f lc_index_of +EXPORT_SYMBOL lib/lru_cache 0xd9d868e5 lc_create +EXPORT_SYMBOL lib/lru_cache 0xeb257046 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xf133cd93 lc_find +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x695e9137 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xd400fa6a make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x07e9d587 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x0a5bf677 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x0e0f1c83 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x0e1c90cd p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x0edf20aa v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x10326d2a p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x18dd85e6 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1f4d650a p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x2d1e2e41 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x39228a1c p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x396f6d06 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x4dc0cbdd p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x4e4bd5e5 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x4eb4bcb9 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x52fbc512 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x63f21769 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x729f97e9 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x789fb6db p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x7df226e1 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x7e8be0ef p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x871cfeae p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x8bf362ca p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x936c4d1f p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9c8b3ff9 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9df6e606 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xa608a2e3 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xaa5c9065 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xaedb7ed8 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xb4785b8d p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xb4f5199f p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xc005f96c p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xcbd945cf p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xce062165 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xda0e8755 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xdb11e56e p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xdd8cc4ef p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xe06edf65 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe8a454f7 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xebad5121 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xed4f48e7 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xefe92df0 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf6098e42 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xf90936b3 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x178c23ca atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x446569a8 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x89ca7e76 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x9b72cc9a atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x05b39592 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x1a2395ef atm_charge +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x338928cd atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x4fc35dc2 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x51b97f59 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x5b5f1c87 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x93136f41 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x94ee5afe atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa7f9fa65 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xabd5becf atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xb8a76dc8 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xd0c86ff9 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xd0eb7470 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xfc47c42f vcc_release_async +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x257b8ff2 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x378d1398 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x38ea2fdb ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5872f97f ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x62774ede ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x93063220 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xa3898418 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc4e855b1 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xde80cd40 ax25_listen_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0d04527e hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f3ba635 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0fbfbc91 hci_le_conn_update +EXPORT_SYMBOL net/bluetooth/bluetooth 0x113ad687 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x19ea1107 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1ad4e958 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d863654 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1e791160 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x22c6c9ba hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2605d4ff hci_find_ltk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e25336c bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3117ece9 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x36f0e49e hci_le_ltk_reply +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3987f7c2 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3ab551f4 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3cfdd0fa hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289 bt_printk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4da7228c hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x50d51de0 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5f5d68ed hci_find_link_key_type +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6177a3f3 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x73fb9601 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x788639bf hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7a4f2929 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8047ea81 hci_le_start_enc +EXPORT_SYMBOL net/bluetooth/bluetooth 0x83c93a89 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x86752938 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8e5e78d5 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x943d8468 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9bf9033f bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa3b87881 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa9fb0e80 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xabe4a4e5 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb7b99e9b bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb92c2d8d hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbf614cfd bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd82388e9 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeecbf88c bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf7748237 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfecf0b9d hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0xffa09096 hci_register_cb +EXPORT_SYMBOL net/bridge/bridge 0xd139148d br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x220133a9 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x94a349df ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd7e8cd62 ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x07dd4c7a caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x1d57452c cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x35b49017 caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x504da5e8 cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x5807d88d caif_free_client +EXPORT_SYMBOL net/caif/caif 0x63e9812a cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x690ef180 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0xc8bb541e caif_connect_client +EXPORT_SYMBOL net/can/can 0x12a1057c can_rx_register +EXPORT_SYMBOL net/can/can 0x31d75a7f can_ioctl +EXPORT_SYMBOL net/can/can 0x39ef8ec9 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x71fc65c8 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x88559f09 can_send +EXPORT_SYMBOL net/can/can 0xfcf007e5 can_proto_register +EXPORT_SYMBOL net/ceph/libceph 0x047aad83 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x05ef6890 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x0695e779 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0c6093ac ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x0ceca88d ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x0d495c3e ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x0e3d0216 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x148baaa0 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x15c9cb09 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x20712d94 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x20a67215 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x284fb2f5 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x2b8c9171 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x2c1252c0 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x32a0faa3 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x354cb8a6 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x36689925 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3b051a2f ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x40a6a70e ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x410a9001 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x423d3946 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x4340ef46 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x4b609b63 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x4eaa6417 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x56fa7659 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5974690b ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x59bbd296 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5cd578cf ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x5d040508 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x678e05b6 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x711f2a11 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x7342eb22 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x74a1f5be ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x74daee66 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x7650ce5e ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x795d0b0d ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x7cf5b629 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x91742005 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x9b7ff0e1 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x9bc05aee __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x9e4aa5ef ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa1d3df99 ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0xa6dedbd5 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb3b777af ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb6100b23 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xb8312cca ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xba89ffc1 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xba95d3cb ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xbe90bbb4 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcfcbdcab ceph_osdc_wait_event +EXPORT_SYMBOL net/ceph/libceph 0xd01b645a ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd4afd289 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xd64bec4b ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0xdf83f58e ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0xe1f1acf0 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xe3064acb ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xe5023d10 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0xe66da465 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xe891b649 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xfcee6550 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3ea261bc ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x56ec244d ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x60af2a73 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x72d5a70f wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa59c0394 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xab5a2f19 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb429c730 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbb847d12 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbbe01e8a wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc3e7c762 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe5d7d14b ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe9275244 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xef9df85c ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x33850763 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x8e69d72e arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x93feaa84 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x910734c1 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x97e3040f ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xa4233d69 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0ab31760 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x20f6c955 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5817bf52 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8b0195e2 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xaeb39c55 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xcde1f9fd nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xdc8323a8 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/tunnel4 0xad1313bd xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xb89b18c7 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x627c0793 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9dce1731 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb6dfc4d1 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xed1795f6 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x4e52cb7a xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x981a4dca xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xa560b527 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xd01243dd xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2a8fa1b6 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3d5e788b ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x732b9baf ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x94109d2a ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa174026d ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb52e8583 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc4f25ae8 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf9f9a1bd ircomm_control_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x09f58a8b hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x12a80db3 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x25ebf633 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x26e6b539 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x292bd0cd irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x298e0dc1 proc_irda +EXPORT_SYMBOL net/irda/irda 0x2b2fbbd4 irlap_close +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3b6d5f65 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x3d362d09 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x3f04163c irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x42a9904d irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x446d941c iriap_open +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4d444246 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x4fbdc14d irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x51cec2ec async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x615ee918 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x6439f9d5 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x66ef7db3 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x6a939536 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x70aadacb async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x76ef9f52 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x790176d7 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7dabe31e hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x7f66a0b6 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x7fb81606 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x86b5f4ce hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x88a7a83f irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x8b69b459 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x983c7a2f irlap_open +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xa4548c32 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xad66e1db hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbde82804 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0e4903d irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xc310cf21 hashbin_new +EXPORT_SYMBOL net/irda/irda 0xc57f3f9c irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xd1ae6745 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xd57045a8 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd9b84784 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0xd9ce32a8 iriap_close +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe4959d0a irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xe9ab953e irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xff7da1fd irlmp_connect_response +EXPORT_SYMBOL net/l2tp/l2tp_core 0xa92797bd l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x02005525 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x192098b1 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x230cb0e4 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x2f0e36f7 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x3ab424e0 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x9c4fe067 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xb31cb768 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xeeb213a0 lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x0332b014 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x05247095 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x0e9ae127 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x0ea08ba0 ieee80211_get_operstate +EXPORT_SYMBOL net/mac80211/mac80211 0x198e8d3c ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x1e453140 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x1f390329 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1f92b2a4 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x2263172f ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x22730bf6 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x25aa7460 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x262323c9 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x264ea001 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x28d850f8 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x2c0967de ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x359cdc23 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x3a036195 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x3dab2e23 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x3ee1bf74 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x47c45dae ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x5046188c ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x57a0acf7 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x57f7d4d0 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x5bbfdf57 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5e672135 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x629d4b2e ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x62af327a __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x63915eba ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x639c2f0b wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71 ieee80211_sta_eosp_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x6b96e726 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x6cabbfbd ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x72111450 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x7a32f0f4 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8173a67e ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x84b3c8c3 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x998d4709 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x9bcc3914 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xa68801f7 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xabacef94 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xb65cf9b9 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xba0ccd80 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xba1ab0ac ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xbaeeeab7 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xbcc95189 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0xc0e97f64 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc2e9c744 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xc34c02cc ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xcea473ca ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd7448e82 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xd9bcbb93 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0xda14c5a4 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xdbe01809 ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe09462b9 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0xebe3c09a ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xec30dc0b ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf03d7532 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xf904a105 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xfd868b3e ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xfe2d68fb ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2146c0d7 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3ac77bdf ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x43d69b3c ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x47f4aa59 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4e485256 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x700aa778 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x71255fab register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x763b2f1d ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x83206acc ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x907fda9f ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb106c2b0 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcc0d9b51 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd8416f34 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe39f7c9c unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x18606aea __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3ae2419e nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb1063839 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xfad310fa nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x01af1540 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x0304a7f6 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x0fb190a9 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x1fb82a1e xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x24eaf9f1 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x3121b87a xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x36b5503a xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x8880312c xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x9818fe42 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xbe35a46e xt_unregister_target +EXPORT_SYMBOL net/nfc/nci/nci 0x0155cd4a nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x2667acb5 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x293957d5 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x40d29790 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x7ec7885d nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nfc 0x122cbae1 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e nfc_printk +EXPORT_SYMBOL net/nfc/nfc 0x4dd45cb5 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x612ac532 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x880dcbae nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0xa5837f2a nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0xad4cd512 nfc_alloc_skb +EXPORT_SYMBOL net/nfc/nfc 0xd42282dd nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xf6c814b0 nfc_allocate_device +EXPORT_SYMBOL net/phonet/phonet 0x0c4fdf18 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x39dd27df phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x41a1f7f8 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x6cf88799 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x700a4e17 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xd20ebe3d pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xe4f66181 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xfa6ffb43 phonet_stream_ops +EXPORT_SYMBOL net/rds/rds 0x1c9be661 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x15a0bcd4 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x21cbf8f6 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x275b5662 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x31724b88 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3bdc2fa3 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4cf89282 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x69e1cfb9 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x890523d2 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8d2b0a51 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x942558e6 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9c6da72e rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb373041d rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb4e31b90 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb7c41636 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd2955752 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x29e49afa svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x2a186ecb register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x73222c47 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0xda57022f wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x0039f0eb wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x07347846 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x09213e26 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0c2b68c3 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x103ffcc4 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x118e41e6 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x13350565 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x1836d0f1 cfg80211_testmode_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x1b054ae3 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x2210ca5a wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x23cdfd2d cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x25c30cf3 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x2bbefaf8 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x2d41270d cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x37cbfcf9 cfg80211_testmode_event +EXPORT_SYMBOL net/wireless/cfg80211 0x39976f98 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x45160585 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x45cf2555 ieee802_11_parse_elems_crc +EXPORT_SYMBOL net/wireless/cfg80211 0x4621f3db cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x478e676b ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x47dc1f66 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x48b8f74a cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x4d6a868c cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x4fef94c4 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x53755e3b cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x53cb0b80 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x577f01cb freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6c1a23a4 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x6fce9b6d cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7502592d cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x832f5afb ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x858dd812 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x8668ed07 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x96d3196b cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9b83e132 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x9d6b4d54 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xa1109edd cfg80211_testmode_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa62d82c0 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xa8526428 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xa8c96fa0 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xaa11140c __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xb6ef8285 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xb99fb89f wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc9c09286 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xcc283abd cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xccc8a5aa cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xcf2a152c cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xd77c6514 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xd8e4d381 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xdd6783df cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xdf411b8f cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xe6c0285c cfg80211_testmode_reply +EXPORT_SYMBOL net/wireless/cfg80211 0xe88fe293 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xe91b4b5d cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xeadc6d0f cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0xf003f03c cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xf0e20617 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0xfb98041d wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x07bcb2c9 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x18d7cbab lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x48e57544 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x6ceafbe3 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xd7dbc02d lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xdae92b35 lib80211_unregister_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x56af24ec ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x08809537 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 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 0x9e13e5c3 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x9e4716d5 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 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe2eeffe1 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xec963220 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x2b487609 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xbe1125ef snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x01b82065 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x0d2b74da snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2ceec35d snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x668570c0 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7f92860c snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb494afee snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xc7b2b6c2 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe0a50454 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xc861237e snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x056775a7 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x080e993d snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x0da5ded1 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x0dc9c801 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x0e6dc99b snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x101ac8bf snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x174e4f62 snd_card_disconnect +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 0x1fb30dc5 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x30e6562f snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x32ea388f snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x331fc2e6 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3f19ffdf snd_cards +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x5fa542c3 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x5fc2bedc snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x61e466ca _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x67f493c8 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x6b883a89 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x6cd58f9f snd_card_register +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x715555ce snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x721c803e snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x7282e6db snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x7393e5f1 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x792445f5 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x795060aa snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x7bb5fe07 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x80de56f1 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x8793ed27 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8e16a1df snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x8f8d041e snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x91ea1e5f snd_device_new +EXPORT_SYMBOL sound/core/snd 0x9b726575 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x9d1fb80b snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa2bd2f9c snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xa8841b8d snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0xa98582f7 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xaa3d9807 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xb1375c6d snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb74e2f51 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xc0d61a6d snd_card_free +EXPORT_SYMBOL sound/core/snd 0xc4502577 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xc5cd6cb9 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xcb54420d snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xcb5a4c36 snd_card_unref +EXPORT_SYMBOL sound/core/snd 0xd1deae26 snd_device_register +EXPORT_SYMBOL sound/core/snd 0xd592d5f5 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xd7b24c53 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xda3bfd3d snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xe522635a snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xfbdfd7c3 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xfe5d88a9 snd_device_free +EXPORT_SYMBOL sound/core/snd-hwdep 0xbb758511 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x176e1d70 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x20b4da5c snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x600d9fec snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x92539121 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc9bd1912 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0154d3ed snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0260078c snd_pcm_lib_preallocate_pages_for_all +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 0x051d424a snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x0656a9ce snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x0a10bf3b snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x0bb4bc26 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x1103bc9c _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x14884444 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x1598bd54 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1ff9c889 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x24a1ce0f snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x25db7cee snd_pcm_hw_param_last +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 0x46ae3734 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x49dce35f snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x4a988a88 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x4ade40de snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x4b885799 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52378bb7 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x56c0f6b5 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x5ac871d3 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x5ea53752 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x685d85d8 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6dcb4687 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x81cc706c snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x854a6a68 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x89093aae snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x89969cb6 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x8c00a127 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x8d3cc390 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x9a46cba8 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa9adc229 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xaa9ea5d8 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0xb43ce180 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc12e8631 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0xc4dc2b07 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xc888238a snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xc8c4db77 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xda7fc0e7 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xdc897630 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe6a0cc93 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf0d7e9fc snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xf155b3b4 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf3fbf423 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xf4fd4521 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-rawmidi 0x34cb76ed snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x35d83f4f snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x67959bad snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6b4fb725 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6ba5e878 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7b41d850 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x839d91df snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8c1fd23a snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x991d0546 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9bd07dfe snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9ed586e3 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xab5e20b6 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc089ce5a snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe4d91b1b snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf467b336 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf77db227 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfa28d1de snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-timer 0x180290b4 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x19cce284 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x22a0198a snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x2f19053e snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x3a667670 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x5c736277 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x61f0b2fd snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x68e8a52a snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x8b495200 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xc5cc3048 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xcb88b623 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xcfa52ca6 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xdc47d908 snd_timer_pause +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x548605bc 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 0x1cf9bc91 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2d62af1c snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x47c391ad snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x51c591e6 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5216d2ef snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6edecbb9 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x879c7160 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa13e3ae7 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb1d137a1 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4960d3b5 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4afb8b45 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5b196c03 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5ec190fc snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x68c21a4a snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6d4110c1 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7068bbc7 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc7e1eab4 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd9dc925c snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x046de0fd fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0784cf73 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x161d52f6 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1bbca918 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20e0c3b8 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x25c4e44b amdtp_out_stream_set_rate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x33a6eeb9 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x36cd31ff amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x403c97c3 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5055c589 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x51ba69ad amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x64511d54 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x696c3a25 amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7b3fd308 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9684677d iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9ecd2c60 amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa3dd6bfe amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbe1c172e fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc1a51a7b amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd3c6a498 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdd74bc7a rcode_string +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xded0735b cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe515c554 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe9f734e1 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xeba65e7b iso_packets_buffer_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x170a367c snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x879eb5b7 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8975fe88 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x9baccb0a snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb7817e12 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xff9410bb snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0361ddbe snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x1c32346e snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x9d6eecd7 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xc4f4ae96 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xec05bdee snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xef726e4a snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x2656eaa4 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x6cdf8b36 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x89364b34 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xc8c27513 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x22afed35 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xb01c6bdb snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x72e2fb66 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xc9fc66a9 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x56370a56 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x6f902b31 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7078ed47 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9c6e41ea snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xcf77c430 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x3737f8f2 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x85a344a4 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x87295d4a snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xb9136bfb snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc6d543c5 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xd042a5a8 snd_i2c_readbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x230b2328 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x361a7c0a snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x549860a3 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x57adeccb snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5c47fdd4 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x846d0939 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa1182499 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe2a9b9fc snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe91f0c70 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf0f9ee6c snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x1d8d727a snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x59a87b92 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc28c637d snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0baf2205 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x11c66b0f snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x296c7209 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x34efd910 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x457259f6 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5834d140 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8eb7b6a8 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x98b5a913 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9acf169a snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa7bd2451 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb8c57f80 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcb946c69 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd0efa88b snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd2f61d66 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdee5b72b snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe3fb1061 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe5f3ba04 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x689d6e48 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x015236a0 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x348d3f90 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4ad64588 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x72c687d7 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x747f4139 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x891bdc3e snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa2d42fe7 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xbfc47f08 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xce6cf3bb snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x7bc249db snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x8ffa2dbc snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x93a7ac23 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xcb3d86b3 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x054748e8 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x12513664 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1ea3d099 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1f031ef0 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x24676876 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2a281aa8 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2b67d285 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2e83d140 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x38e24fee oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3e69fd71 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5c71c1dd oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6d4498b5 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8e2dc7f5 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x90d36632 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbd8aca76 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc753f65a oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd466602c oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdc2c10b5 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe7c91079 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xeea54f56 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfc9ae5ea oxygen_reset_uart +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x46dba3be snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x943241e9 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xa1fc78cb snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xcafe3287 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xfc164e6f snd_trident_alloc_voice +EXPORT_SYMBOL sound/soundcore 0x02365599 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x28d9f2e0 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x3310f9c0 sound_class +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x810c17fc register_sound_special +EXPORT_SYMBOL sound/soundcore 0x988d24bf register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xc34c0a3d register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x31bd7bb4 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x5933e197 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x777095fa snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb4528ca4 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xbc8f8782 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe83d939c snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x141002fb __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x173699ed snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x239dd9a2 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x563c3f5a __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x8f33d249 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9cc2b091 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xcf868ff4 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf2693552 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 0x96eba7c6 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x35c95b1b dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x3b173ad4 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x8373172e dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x86e5acf9 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa43471b6 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd55b290c dm_mem_cache_client_destroy +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x001f2a30 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x00228da0 sk_dst_check +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x0033428b vfs_rmdir +EXPORT_SYMBOL vmlinux 0x003a8ab1 inet_addr_type +EXPORT_SYMBOL vmlinux 0x0046dabd tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x006d17c1 netdev_warn +EXPORT_SYMBOL vmlinux 0x00726cce pci_claim_resource +EXPORT_SYMBOL vmlinux 0x007cce1f vga_put +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00932fdc no_llseek +EXPORT_SYMBOL vmlinux 0x0099a753 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x00a67e8a mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x00dca601 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x00e2b881 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x00e55f45 file_update_time +EXPORT_SYMBOL vmlinux 0x00e6c9e5 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x00fceb08 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01015a6e wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x01093ca5 cpu_info +EXPORT_SYMBOL vmlinux 0x012d527e inode_get_bytes +EXPORT_SYMBOL vmlinux 0x015bde3e unregister_nls +EXPORT_SYMBOL vmlinux 0x015ddbdc wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x016e2b3e pci_enable_ido +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01ba2716 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x01bf7932 soft_cursor +EXPORT_SYMBOL vmlinux 0x01cefa6e blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01e29791 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x01f08e78 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x0204213c journal_clear_err +EXPORT_SYMBOL vmlinux 0x0207c022 dev_crit +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x0241670f generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x0244f96c __napi_complete +EXPORT_SYMBOL vmlinux 0x024b3b23 xfrm_input +EXPORT_SYMBOL vmlinux 0x024d1562 con_is_bound +EXPORT_SYMBOL vmlinux 0x0256412a mmc_detect_change +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0266ee27 journal_load +EXPORT_SYMBOL vmlinux 0x02891f3d elevator_exit +EXPORT_SYMBOL vmlinux 0x028ab8e5 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02c67df9 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e29549 block_read_full_page +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034f9e73 param_ops_byte +EXPORT_SYMBOL vmlinux 0x035155fd vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x035755ca __netif_schedule +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x036ffd08 vfs_writev +EXPORT_SYMBOL vmlinux 0x0376fe09 md_register_thread +EXPORT_SYMBOL vmlinux 0x037758f6 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0382ef67 km_state_notify +EXPORT_SYMBOL vmlinux 0x03928d16 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x03b555d6 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03d10150 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x03fd5f0c mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x041df79e acpi_root_dir +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x047e7ce6 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04927208 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x04ae2e06 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x04d18b5d scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04dc3308 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x04e68a75 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ec6022 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x04feed1e mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x054e9a89 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x056aaf9d alloc_fcdev +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x05a0e8b9 pci_bus_type +EXPORT_SYMBOL vmlinux 0x05c05958 md_integrity_register +EXPORT_SYMBOL vmlinux 0x05f18d5a sg_miter_stop +EXPORT_SYMBOL vmlinux 0x060b741f pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061f4039 acpi_get_table_with_size +EXPORT_SYMBOL vmlinux 0x0622d38d netif_device_detach +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x064783f8 proc_create_data +EXPORT_SYMBOL vmlinux 0x064fd379 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x0656c3df pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x0664a4d7 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x0676f666 idr_destroy +EXPORT_SYMBOL vmlinux 0x06772d60 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x067b35f5 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0680fbcf agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x0691894d xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x069b92c2 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x069c9016 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06c1f1c7 simple_rename +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x06ff506a mpage_writepage +EXPORT_SYMBOL vmlinux 0x07017ce6 sget +EXPORT_SYMBOL vmlinux 0x071dcc3f xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x07442a29 vga_tryget +EXPORT_SYMBOL vmlinux 0x07500628 ip_options_compile +EXPORT_SYMBOL vmlinux 0x077e5a49 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x079480be pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x07959e51 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07ce955e generic_show_options +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07e0293b pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x08085a3b tty_unthrottle +EXPORT_SYMBOL vmlinux 0x080c78aa scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082c90ed tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x0853ee0a __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x0863cf27 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x086dd516 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x087825a2 __register_binfmt +EXPORT_SYMBOL vmlinux 0x087ebc4a neigh_for_each +EXPORT_SYMBOL vmlinux 0x088e6392 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x08936583 mpage_readpages +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x08b2fed7 igrab +EXPORT_SYMBOL vmlinux 0x08b654ba jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x08c24b37 elv_register_queue +EXPORT_SYMBOL vmlinux 0x08c3a73c tcf_hash_release +EXPORT_SYMBOL vmlinux 0x08edd3ac kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x08f0449e should_remove_suid +EXPORT_SYMBOL vmlinux 0x08f1dcf2 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x08f64aa4 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x0900e20d scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x092d5421 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x092ebfa5 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x09308484 idr_get_new +EXPORT_SYMBOL vmlinux 0x0935e36e pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x09378cb3 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x095be6e5 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x0964bcb2 boot_cpu_data +EXPORT_SYMBOL vmlinux 0x097451b4 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x098fb9ee dev_mc_add +EXPORT_SYMBOL vmlinux 0x0992780d efi_enabled +EXPORT_SYMBOL vmlinux 0x099d9439 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x09a32b48 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x09adafb1 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x09b0ba97 dquot_release +EXPORT_SYMBOL vmlinux 0x09b6095a phy_start +EXPORT_SYMBOL vmlinux 0x09ba10c2 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09ce536b bdget +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09fac9af abort_creds +EXPORT_SYMBOL vmlinux 0x0a037190 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a4a1905 fb_pan_display +EXPORT_SYMBOL vmlinux 0x0a4e78a4 read_cache_pages +EXPORT_SYMBOL vmlinux 0x0a76d62c input_close_device +EXPORT_SYMBOL vmlinux 0x0a7ccac3 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x0a9e96bf phy_start_aneg +EXPORT_SYMBOL vmlinux 0x0aa41534 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x0aac5118 blk_init_tags +EXPORT_SYMBOL vmlinux 0x0aacd352 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad2be5e alloc_disk_node +EXPORT_SYMBOL vmlinux 0x0aed98ca noop_qdisc +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0f6912 serio_reconnect +EXPORT_SYMBOL vmlinux 0x0b129cda bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x0b1667de scsi_register_interface +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b1fdb91 find_vma +EXPORT_SYMBOL vmlinux 0x0b409bea key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x0b566ccb __scsi_put_command +EXPORT_SYMBOL vmlinux 0x0b7086d9 param_get_short +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b8e5078 security_path_chmod +EXPORT_SYMBOL vmlinux 0x0b913fbc page_put_link +EXPORT_SYMBOL vmlinux 0x0b95d720 nobh_write_end +EXPORT_SYMBOL vmlinux 0x0b9da97e wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0be2b239 scsi_add_device +EXPORT_SYMBOL vmlinux 0x0be7c845 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x0bf8c53c vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x0c17be8c scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x0c3449b7 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x0c3de510 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x0c474653 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x0c570d7a dev_get_flags +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c835f8b x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0x0c87b6d5 elevator_change +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c958a00 netdev_state_change +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc2f35a pcim_iounmap +EXPORT_SYMBOL vmlinux 0x0cd0e3b3 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x0cdf6247 da903x_query_status +EXPORT_SYMBOL vmlinux 0x0d038bfe call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x0d0bd878 seq_puts +EXPORT_SYMBOL vmlinux 0x0d1049d6 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x0d270e61 journal_stop +EXPORT_SYMBOL vmlinux 0x0d2968f8 ip6_xmit +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5eeeea skb_recycle_check +EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x0d6bdd38 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x0d7605cc scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da1b37c netif_napi_add +EXPORT_SYMBOL vmlinux 0x0dddec68 scsi_execute +EXPORT_SYMBOL vmlinux 0x0dfe6b10 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x0e1ecaa5 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x0e2fa1fb mmc_release_host +EXPORT_SYMBOL vmlinux 0x0e4fb4b0 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e6033df __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x0e965cd1 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x0eb56634 block_truncate_page +EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0ed9bef6 skb_push +EXPORT_SYMBOL vmlinux 0x0eec9e00 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x0ef60c35 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x0efd0f28 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x0f1631e4 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x0f2157ea ab3100_event_register +EXPORT_SYMBOL vmlinux 0x0f41ff02 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x0f43eef7 mii_check_link +EXPORT_SYMBOL vmlinux 0x0f59f197 param_array_ops +EXPORT_SYMBOL vmlinux 0x0f92d7d0 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb0e29f init_timer_key +EXPORT_SYMBOL vmlinux 0x0fca4cba scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x0fcf12ce sock_no_poll +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fd5b0a6 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x0fe5fd34 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff5451b ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x101c3932 mb_cache_create +EXPORT_SYMBOL vmlinux 0x10272c6d thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x1067723b mount_subtree +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x107305e7 unlock_page +EXPORT_SYMBOL vmlinux 0x1089421b serio_unregister_port +EXPORT_SYMBOL vmlinux 0x10936a38 nf_reinject +EXPORT_SYMBOL vmlinux 0x10b3b4da security_task_getsecid +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10e127ce writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x10ea33da end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2eb76 vsnprintf +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x111ed062 have_submounts +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1138edba create_empty_buffers +EXPORT_SYMBOL vmlinux 0x11537525 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x115af4e8 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x115c9326 user_revoke +EXPORT_SYMBOL vmlinux 0x11633870 param_set_ushort +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116fbf84 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x117686f1 del_gendisk +EXPORT_SYMBOL vmlinux 0x11856c05 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11930bf6 spi_dv_device +EXPORT_SYMBOL vmlinux 0x119b4a80 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x119f705c kthread_stop +EXPORT_SYMBOL vmlinux 0x11a11353 vfs_create +EXPORT_SYMBOL vmlinux 0x11cbca0c buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11e4f111 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x121f0d45 tty_port_put +EXPORT_SYMBOL vmlinux 0x12244c92 dcb_getapp +EXPORT_SYMBOL vmlinux 0x123a796b cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x125d6dc0 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x127154ba udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x1276969c abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x129de341 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12b72e64 mount_ns +EXPORT_SYMBOL vmlinux 0x12f5c779 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x1304ceb2 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x130db1fd vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x13100bc3 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x13253e33 dev_addr_add +EXPORT_SYMBOL vmlinux 0x1347fe6c kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x134a0fae key_validate +EXPORT_SYMBOL vmlinux 0x136816c0 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x137358dd ata_port_printk +EXPORT_SYMBOL vmlinux 0x137f7335 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x1384f971 seq_lseek +EXPORT_SYMBOL vmlinux 0x139390aa unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x13a4d16c dma_find_channel +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13ec80f3 param_set_short +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x141306b4 dev_uc_init +EXPORT_SYMBOL vmlinux 0x142b218f set_device_ro +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x143738da compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x144fcac8 seq_release_private +EXPORT_SYMBOL vmlinux 0x14525c1c __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x14567f0e xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x1479fb0f d_set_d_op +EXPORT_SYMBOL vmlinux 0x148058c7 nla_put +EXPORT_SYMBOL vmlinux 0x1483a0bc abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x149a0346 cdev_add +EXPORT_SYMBOL vmlinux 0x14a453ce end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x14e7ca7c alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x150058f7 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x1500ff89 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x153ae80c __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1554b8d6 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x1562706f generic_readlink +EXPORT_SYMBOL vmlinux 0x157411f5 seq_read +EXPORT_SYMBOL vmlinux 0x1578571e scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x15d74a18 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x15fb79c2 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x16026533 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1637ff0f _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x1642f318 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x164ad225 empty_aops +EXPORT_SYMBOL vmlinux 0x164f8144 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x166fe14d ppp_input_error +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x168e356a blk_get_request +EXPORT_SYMBOL vmlinux 0x168f1082 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x169240ba invalidate_bdev +EXPORT_SYMBOL vmlinux 0x16a65ff8 journal_revoke +EXPORT_SYMBOL vmlinux 0x16b8fbce genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x16c14453 sock_register +EXPORT_SYMBOL vmlinux 0x16c42197 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x1704e2fc pci_disable_ido +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x1711d818 register_snap_client +EXPORT_SYMBOL vmlinux 0x17124eae ht_create_irq +EXPORT_SYMBOL vmlinux 0x17159a2a arp_xmit +EXPORT_SYMBOL vmlinux 0x17203b43 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x172c89d7 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x1739d002 pipe_unlock +EXPORT_SYMBOL vmlinux 0x173c7c40 filp_open +EXPORT_SYMBOL vmlinux 0x173d59e1 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x174f0da6 agp_backend_release +EXPORT_SYMBOL vmlinux 0x176a4fea generic_getxattr +EXPORT_SYMBOL vmlinux 0x176b441f uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x17759d88 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x1790d76b _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x17b64d09 dqstats +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17f79451 journal_flush +EXPORT_SYMBOL vmlinux 0x180b4d43 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x1839723a skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18454cf3 alloc_disk +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x1890df77 unlock_buffer +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18c7e2a2 netdev_features_change +EXPORT_SYMBOL vmlinux 0x19012d79 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x19288fcb gen_pool_create +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x196c59f9 ida_remove +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b93ca7 filemap_fault +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c3cda9 sock_rfree +EXPORT_SYMBOL vmlinux 0x19c56540 setattr_copy +EXPORT_SYMBOL vmlinux 0x19e205ae d_genocide +EXPORT_SYMBOL vmlinux 0x1a084698 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a4c24a2 mmc_free_host +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a929706 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad78396 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x1adfa2a5 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x1ae14ef5 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x1ae74c38 phy_connect +EXPORT_SYMBOL vmlinux 0x1af0896b tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x1af67af3 genphy_resume +EXPORT_SYMBOL vmlinux 0x1afbe1de xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0a1d31 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x1b0f4d4c generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x1b13f30b udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x1b19af65 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x1b255795 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x1b386fbf kobject_init +EXPORT_SYMBOL vmlinux 0x1b4dd428 inet_ioctl +EXPORT_SYMBOL vmlinux 0x1b574668 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x1b5945fc vga_client_register +EXPORT_SYMBOL vmlinux 0x1b60da38 unregister_console +EXPORT_SYMBOL vmlinux 0x1b6301d2 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6e3b92 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x1b7cc0a4 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b8e19f5 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x1b9253c4 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba77b50 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x1bc87175 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x1be20961 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x1bebdae6 input_release_device +EXPORT_SYMBOL vmlinux 0x1c05167d alloc_trdev +EXPORT_SYMBOL vmlinux 0x1c053e49 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x1c14ab39 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c1d58dd abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x1c3b48be skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x1c3e512c input_free_device +EXPORT_SYMBOL vmlinux 0x1c578b69 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x1c64ed86 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c914174 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x1cb49d3f kernel_accept +EXPORT_SYMBOL vmlinux 0x1cb860e8 netdev_change_features +EXPORT_SYMBOL vmlinux 0x1cbad0e3 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd4264d nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x1cdccda9 bdi_unregister +EXPORT_SYMBOL vmlinux 0x1d0e7e0f init_buffer +EXPORT_SYMBOL vmlinux 0x1d12d02c eth_mac_addr +EXPORT_SYMBOL vmlinux 0x1d1c368d kernel_read +EXPORT_SYMBOL vmlinux 0x1d2b01ef netif_notify_peers +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3865da param_get_invbool +EXPORT_SYMBOL vmlinux 0x1d55b5f3 tty_kref_put +EXPORT_SYMBOL vmlinux 0x1d63c738 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x1d75f5fa netdev_alert +EXPORT_SYMBOL vmlinux 0x1d850c52 security_file_permission +EXPORT_SYMBOL vmlinux 0x1d8e1143 blk_register_region +EXPORT_SYMBOL vmlinux 0x1db44edb journal_release_buffer +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc2191f dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc81d87 netpoll_setup +EXPORT_SYMBOL vmlinux 0x1dca4f0f pci_pme_capable +EXPORT_SYMBOL vmlinux 0x1dcef50a mnt_unpin +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de96285 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e0f076f remap_pfn_range +EXPORT_SYMBOL vmlinux 0x1e16bf1e dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x1e1b6362 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e37e619 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x1e3b7878 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x1e3fcacb netlink_dump_start +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ec0174e netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ef1f75f posix_acl_valid +EXPORT_SYMBOL vmlinux 0x1efd7046 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x1f087d0d dm_register_target +EXPORT_SYMBOL vmlinux 0x1f14cb6b sk_common_release +EXPORT_SYMBOL vmlinux 0x1f18636d skb_append +EXPORT_SYMBOL vmlinux 0x1f2543f9 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x1f4dc3d4 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x1f702379 __blk_end_request +EXPORT_SYMBOL vmlinux 0x1f7576da inet6_release +EXPORT_SYMBOL vmlinux 0x1f8da9cc scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x1f91a9ef get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x1f92c266 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x1fc1dfdd pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x1fc4ec65 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x1fcde2df pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe14941 submit_bh +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x2016e54f md_flush_request +EXPORT_SYMBOL vmlinux 0x20300ee3 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x204f0c3d pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x205be135 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x20869484 ip6_route_output +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20a1d425 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20abc15b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x20af10f7 pci_find_capability +EXPORT_SYMBOL vmlinux 0x20b84a28 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x20c6bdc5 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20f36aaf blkdev_put +EXPORT_SYMBOL vmlinux 0x20f39520 ns_capable +EXPORT_SYMBOL vmlinux 0x21001691 dev_change_flags +EXPORT_SYMBOL vmlinux 0x210c2fef unload_nls +EXPORT_SYMBOL vmlinux 0x2116823a get_fs_type +EXPORT_SYMBOL vmlinux 0x211767c7 ida_destroy +EXPORT_SYMBOL vmlinux 0x21508724 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x2151e392 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x218091c1 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x218e9627 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x21a7d814 seq_printf +EXPORT_SYMBOL vmlinux 0x21b33dba sk_run_filter +EXPORT_SYMBOL vmlinux 0x21b8912a tty_register_device +EXPORT_SYMBOL vmlinux 0x21cd74c5 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x21ddd4b3 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21f9d321 dev_driver_string +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222ed0c2 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2235b89a jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x22381fa2 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x224ef58a skb_trim +EXPORT_SYMBOL vmlinux 0x22769da7 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228e8bd3 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22eb79a4 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x22f0d0d9 fd_install +EXPORT_SYMBOL vmlinux 0x22fd9ad0 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x23084bf9 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x2309f848 kobject_del +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x23526128 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x2376b360 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x237d7d0a jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x23989b69 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23c5f185 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23e950e2 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2402bca5 arp_invalidate +EXPORT_SYMBOL vmlinux 0x2402f0b4 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x24055ab3 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x24292b36 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x24351d26 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24779fc4 clocksource_register +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x24840046 bio_free +EXPORT_SYMBOL vmlinux 0x24a4dc00 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x24ad3705 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x24b13606 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x24b93dba __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x24f41ee7 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x24f934db register_nls +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x252c2e5a bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x2578079c load_nls +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x2587c1e1 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x25c2f3ef grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25eb8630 vmap +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x25f3cd7d uart_register_driver +EXPORT_SYMBOL vmlinux 0x26169a6c bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x2626b4d5 serio_rescan +EXPORT_SYMBOL vmlinux 0x263122f8 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x26579475 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x26b64321 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x26d6626a inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x26db285d dget_parent +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x27153596 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x27204690 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x2726b021 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x27277915 vm_stat +EXPORT_SYMBOL vmlinux 0x272a98c4 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x2739ce5a security_file_mmap +EXPORT_SYMBOL vmlinux 0x27416f89 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x275d5307 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2790f4db __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x279f4bb5 cdrom_open +EXPORT_SYMBOL vmlinux 0x27ae7d0c ec_transaction +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27cdcfd7 fput +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2820c39e scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x28343bad scnprintf +EXPORT_SYMBOL vmlinux 0x28459c14 do_splice_direct +EXPORT_SYMBOL vmlinux 0x285d6170 tty_port_close +EXPORT_SYMBOL vmlinux 0x287547d1 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x289112ad bdev_read_only +EXPORT_SYMBOL vmlinux 0x289238b3 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28f00f70 console_stop +EXPORT_SYMBOL vmlinux 0x28f1a453 dev_alert +EXPORT_SYMBOL vmlinux 0x290a0e1b __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295fda67 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x297e8a4a __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x29954642 elv_add_request +EXPORT_SYMBOL vmlinux 0x29adbb6e agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x29b96a8a inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x29e1b496 serio_close +EXPORT_SYMBOL vmlinux 0x29e31f36 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x2a2abf73 bio_clone +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a32c3f1 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a428646 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x2a6e6109 __init_rwsem +EXPORT_SYMBOL vmlinux 0x2a7e0b1d i2c_release_client +EXPORT_SYMBOL vmlinux 0x2a818106 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x2a9502d9 dev_addr_init +EXPORT_SYMBOL vmlinux 0x2aaed0f4 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x2ade2b1f genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b259023 phy_device_free +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b2f309b journal_set_features +EXPORT_SYMBOL vmlinux 0x2b40f602 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x2b43ce6f cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x2b552f2e user_path_at +EXPORT_SYMBOL vmlinux 0x2b63e31e kernel_sendpage +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba28053 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bd4c039 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x2bd9c1bc padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c0bc484 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x2c231c04 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c294a4c pskb_expand_head +EXPORT_SYMBOL vmlinux 0x2c457ec0 __netdev_printk +EXPORT_SYMBOL vmlinux 0x2cb6147c dev_get_stats +EXPORT_SYMBOL vmlinux 0x2cbe4701 generic_fillattr +EXPORT_SYMBOL vmlinux 0x2cc11720 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x2cd28ca2 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x2cf99e04 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d38e159 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d8f081e dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x2db4c99b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x2dbcd8e9 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x2dbe51a5 ida_get_new +EXPORT_SYMBOL vmlinux 0x2dbf8dc2 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x2dc09dee gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x2dc1982f bio_map_kern +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dddb79c poll_initwait +EXPORT_SYMBOL vmlinux 0x2dde7e1c pci_read_vpd +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e232677 mntput +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e59fc7a ab8500_gpadc_get +EXPORT_SYMBOL vmlinux 0x2e5a704c udp_table +EXPORT_SYMBOL vmlinux 0x2e62a278 take_over_console +EXPORT_SYMBOL vmlinux 0x2e677a28 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x2e7197c6 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x2e815ac5 kset_unregister +EXPORT_SYMBOL vmlinux 0x2e9811b0 aio_put_req +EXPORT_SYMBOL vmlinux 0x2ea74945 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x2eb1c0fb splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x2ee91b51 set_pages_wb +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f52c79d dev_uc_sync +EXPORT_SYMBOL vmlinux 0x2f548e50 journal_update_format +EXPORT_SYMBOL vmlinux 0x2f5cd5de pci_release_regions +EXPORT_SYMBOL vmlinux 0x2f84987d netlink_broadcast +EXPORT_SYMBOL vmlinux 0x2f84bac8 simple_setattr +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fce324a pci_dev_driver +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x300b5d02 ping_prot +EXPORT_SYMBOL vmlinux 0x301cf450 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x301d3061 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x3032758b __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x305f0ad5 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x3069b0c2 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x306bc77a simple_readpage +EXPORT_SYMBOL vmlinux 0x307b62ac idr_replace +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x309a1c3d mmc_register_driver +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30cd13f9 pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x30d12c2b xfrm_lookup +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310487ce cdrom_check_events +EXPORT_SYMBOL vmlinux 0x312093d1 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x3141db0d tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x317389fd generic_removexattr +EXPORT_SYMBOL vmlinux 0x31948a14 dma_ops +EXPORT_SYMBOL vmlinux 0x3194c7f8 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x319aa5aa elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31bc31e3 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x31db9dac __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc +EXPORT_SYMBOL vmlinux 0x31f82605 vm_map_ram +EXPORT_SYMBOL vmlinux 0x3204cbf3 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x3238dc77 user_path_create +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x32579ff8 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x325a3b66 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x325bc5f1 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x325c5628 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x327af8b8 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x329bcef4 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x32a8eb28 devm_iounmap +EXPORT_SYMBOL vmlinux 0x32b6af26 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x32c11789 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x32debb16 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x32eeaded _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x3326c684 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x334daafe netdev_printk +EXPORT_SYMBOL vmlinux 0x338b6dc0 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x33973215 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x339c802d register_exec_domain +EXPORT_SYMBOL vmlinux 0x339e2a8a d_drop +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33ba47a5 skb_find_text +EXPORT_SYMBOL vmlinux 0x33e6e6c8 pci_dev_put +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33f249ff xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x34076b85 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x341cbed2 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x34346635 unregister_key_type +EXPORT_SYMBOL vmlinux 0x344feb39 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34d2caad tty_unregister_device +EXPORT_SYMBOL vmlinux 0x34f8511b mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x34fc2d1d bioset_create +EXPORT_SYMBOL vmlinux 0x35148bb3 napi_frags_finish +EXPORT_SYMBOL vmlinux 0x35225ea3 down_write_trylock +EXPORT_SYMBOL vmlinux 0x3558bf72 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x355b345a i2c_use_client +EXPORT_SYMBOL vmlinux 0x356e5804 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x357c90d2 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x358e3171 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x359c5a64 scsi_print_result +EXPORT_SYMBOL vmlinux 0x35a56833 drop_super +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c8cc02 tty_free_termios +EXPORT_SYMBOL vmlinux 0x35ca8cfa dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x35f32ff3 padata_alloc +EXPORT_SYMBOL vmlinux 0x36083719 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x361969ba inode_needs_sync +EXPORT_SYMBOL vmlinux 0x3619bccb dqget +EXPORT_SYMBOL vmlinux 0x3643b254 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x368a52d5 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x36b16428 d_delete +EXPORT_SYMBOL vmlinux 0x36d746fc put_tty_driver +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36fd1f86 get_io_context +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x3702c950 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x370e5a74 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x37168f2d md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x372d8b78 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x372e1546 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x3737a065 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x3737d73b inet_add_protocol +EXPORT_SYMBOL vmlinux 0x373817eb genl_unregister_family +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374bcc2a genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x374e7cec xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x374e87c5 fsync_bdev +EXPORT_SYMBOL vmlinux 0x3756abe8 sock_create_lite +EXPORT_SYMBOL vmlinux 0x3763c724 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x376a7c5e pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x3791f648 dump_seek +EXPORT_SYMBOL vmlinux 0x379f5837 param_set_invbool +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e10055 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x37e74b97 __nla_put +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37fb8b0d journal_get_write_access +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x383c3b47 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x38626706 sg_miter_next +EXPORT_SYMBOL vmlinux 0x3863e9f3 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x387a323d blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x387b3aed proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x3886bd0b max8925_set_bits +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389bfe0d rtc_lock +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38bc6149 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0x38c306bf set_bh_page +EXPORT_SYMBOL vmlinux 0x38f14b26 d_validate +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x3928efe9 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x395cc3bc blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x396e828a locks_init_lock +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39bb372f dq_data_lock +EXPORT_SYMBOL vmlinux 0x39e684e8 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x39f57fb2 set_create_files_as +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a28637b pipe_to_file +EXPORT_SYMBOL vmlinux 0x3a2d5d29 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a3ecffa iget_failed +EXPORT_SYMBOL vmlinux 0x3a541b4a pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x3a5bddcd journal_destroy +EXPORT_SYMBOL vmlinux 0x3a613e8e neigh_ifdown +EXPORT_SYMBOL vmlinux 0x3a6273ab pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x3a66d55c arp_send +EXPORT_SYMBOL vmlinux 0x3a6e41f7 vfs_llseek +EXPORT_SYMBOL vmlinux 0x3a72b504 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9d97df scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x3a9e8d29 add_disk +EXPORT_SYMBOL vmlinux 0x3aaf6ca0 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x3ab3f56e key_put +EXPORT_SYMBOL vmlinux 0x3ac990db __pci_register_driver +EXPORT_SYMBOL vmlinux 0x3afef3f1 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x3b00559f mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b4ceb4a up_write +EXPORT_SYMBOL vmlinux 0x3b6e9b23 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x3b7c7206 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x3b7f9bbe input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x3b8062c3 blk_complete_request +EXPORT_SYMBOL vmlinux 0x3b897d2f pci_restore_state +EXPORT_SYMBOL vmlinux 0x3b929885 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x3ba54fe5 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x3bb6d4bf pci_clear_master +EXPORT_SYMBOL vmlinux 0x3bb794ce scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x3bc65ce9 blk_free_tags +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd3f22d netif_device_attach +EXPORT_SYMBOL vmlinux 0x3be16f6f blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x3be52b54 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x3c0b4eee __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x3c17c991 do_splice_to +EXPORT_SYMBOL vmlinux 0x3c30db03 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x3c78e159 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c8ba4b5 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca7b16f do_munmap +EXPORT_SYMBOL vmlinux 0x3ccac17f __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cfa16f8 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x3d00685a inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x3d5c02df dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x3d64e3cb i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x3d66107e proc_dostring +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d93ee61 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x3d9ba7c2 give_up_console +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da58c1a __scsi_add_device +EXPORT_SYMBOL vmlinux 0x3db38bed input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x3db91497 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x3dc144d0 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x3dc5af60 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dd7bb38 filemap_flush +EXPORT_SYMBOL vmlinux 0x3de344a7 skb_insert +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0e9023 param_set_long +EXPORT_SYMBOL vmlinux 0x3e186a32 __page_symlink +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e330e67 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e72c290 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x3e80652d d_path +EXPORT_SYMBOL vmlinux 0x3e81be4e input_unregister_device +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ec28389 gen_pool_free +EXPORT_SYMBOL vmlinux 0x3ec8886f param_ops_int +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f17fb16 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x3f301577 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f71faa1 mempool_create +EXPORT_SYMBOL vmlinux 0x3fa01132 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fb0c7da journal_create +EXPORT_SYMBOL vmlinux 0x3fc52f6c __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x3fcc878e inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x3fd70534 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x3fdc4955 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff870d0 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x4004a089 kernel_listen +EXPORT_SYMBOL vmlinux 0x4008bc56 generic_write_sync +EXPORT_SYMBOL vmlinux 0x40134eef get_user_pages +EXPORT_SYMBOL vmlinux 0x40256835 complete_all +EXPORT_SYMBOL vmlinux 0x4029d238 param_set_copystring +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x40421a36 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x408a3683 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c7fe54 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d62e69 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x40f11b28 pcim_iomap +EXPORT_SYMBOL vmlinux 0x40fa43de neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41249fbc netif_rx_ni +EXPORT_SYMBOL vmlinux 0x413262b9 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x41438eaf skb_checksum +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4162a206 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x416edf17 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x417f90d7 nla_reserve +EXPORT_SYMBOL vmlinux 0x4188619d tr_type_trans +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x4194a8ec genphy_update_link +EXPORT_SYMBOL vmlinux 0x41a56c39 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x41aed4ef agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421ee0bf dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x422698c8 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x42443e4f __dquot_transfer +EXPORT_SYMBOL vmlinux 0x4251293d tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x42554ec6 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42b0325e gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x42b5e9a3 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x42b7f274 is_bad_inode +EXPORT_SYMBOL vmlinux 0x42c85955 tcp_check_req +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42ff2205 I_BDEV +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430c6a86 vfs_stat +EXPORT_SYMBOL vmlinux 0x430e429a mdiobus_write +EXPORT_SYMBOL vmlinux 0x43261dca _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x438741bb dquot_quota_on +EXPORT_SYMBOL vmlinux 0x438a3694 elv_rb_add +EXPORT_SYMBOL vmlinux 0x4392d7a8 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x43a0458b blk_start_plug +EXPORT_SYMBOL vmlinux 0x43ac4f4f security_path_rename +EXPORT_SYMBOL vmlinux 0x43b50f56 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x43d760ce scsi_device_put +EXPORT_SYMBOL vmlinux 0x43e30dd3 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x43ed9f66 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x4429db25 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x4431210a __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x4438aa4f fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x443c32be journal_check_available_features +EXPORT_SYMBOL vmlinux 0x44402b6f param_get_ulong +EXPORT_SYMBOL vmlinux 0x444e4619 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x4450cc02 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x446a23a1 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x447dadd6 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44cfe900 security_path_truncate +EXPORT_SYMBOL vmlinux 0x44d355d5 generic_make_request +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x45044497 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x450b060d __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x452ebe86 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x45467206 blk_insert_request +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x458e2af1 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x45bd9efd dm_table_put +EXPORT_SYMBOL vmlinux 0x45c14ab3 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45d9d002 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x45f4d64c tcf_hash_create +EXPORT_SYMBOL vmlinux 0x4605a23d ida_simple_get +EXPORT_SYMBOL vmlinux 0x461baa3b security_inode_permission +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x46595c8a vfs_lstat +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46b67693 hex2bin +EXPORT_SYMBOL vmlinux 0x46b67a2b scsi_target_resume +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46f21656 posix_lock_file +EXPORT_SYMBOL vmlinux 0x46fce205 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x47108f6e dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x472d3b21 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x4743d98f dcb_setapp +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x477b734c elv_rb_del +EXPORT_SYMBOL vmlinux 0x477d56c9 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x4786444b xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47d404c0 blk_rq_init +EXPORT_SYMBOL vmlinux 0x47db36af skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x47e45008 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x47e4691d jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x47f1b74e unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x48078eec phy_attach +EXPORT_SYMBOL vmlinux 0x48114b4f blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x482014bd eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x4820eb04 n_tty_compat_ioctl_helper +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x487b2dd2 genl_register_family +EXPORT_SYMBOL vmlinux 0x48b280f4 agp_bridge +EXPORT_SYMBOL vmlinux 0x48bf6104 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x48d2141d misc_register +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x4957623a unregister_binfmt +EXPORT_SYMBOL vmlinux 0x495848d1 inet_shutdown +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4964787b mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x498e4be8 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x49977ff2 register_netdevice +EXPORT_SYMBOL vmlinux 0x499d1c7b vfs_read +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49c0111e cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x49e92677 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x4a00dd00 set_disk_ro +EXPORT_SYMBOL vmlinux 0x4a0584e9 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x4a1dd6e1 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a40377f gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x4a411abe bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x4a78bd19 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x4a93ad46 register_netdev +EXPORT_SYMBOL vmlinux 0x4a9609af tty_vhangup +EXPORT_SYMBOL vmlinux 0x4a97bcdd uart_resume_port +EXPORT_SYMBOL vmlinux 0x4aa1c2b4 agp_enable +EXPORT_SYMBOL vmlinux 0x4aad52d7 mempool_free +EXPORT_SYMBOL vmlinux 0x4ab7cc19 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad3fca5 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x4ae1d568 __destroy_inode +EXPORT_SYMBOL vmlinux 0x4aec9a92 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x4aef5f6f pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b06c324 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x4b06d2e7 complete +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b093ba5 dquot_commit +EXPORT_SYMBOL vmlinux 0x4b1b26fa jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x4b4cbaae bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x4b5814ef kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b62abdb xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x4b76845a mmc_can_discard +EXPORT_SYMBOL vmlinux 0x4b790fa7 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x4b8c0d69 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x4b91d80e __secpath_destroy +EXPORT_SYMBOL vmlinux 0x4b9daba5 write_inode_now +EXPORT_SYMBOL vmlinux 0x4b9e9e65 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x4bbacf1b wait_iff_congested +EXPORT_SYMBOL vmlinux 0x4bd49911 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x4c102017 thaw_process +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c11ca9f efi +EXPORT_SYMBOL vmlinux 0x4c16a0f9 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c683578 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cf6b249 inet6_bind +EXPORT_SYMBOL vmlinux 0x4cf6f784 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0x4d0f2a86 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x4d1023f8 mempool_resize +EXPORT_SYMBOL vmlinux 0x4d2e56a7 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x4d3075fa dev_load +EXPORT_SYMBOL vmlinux 0x4d47e891 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x4d5daddf kill_fasync +EXPORT_SYMBOL vmlinux 0x4d61c75a dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x4d95bde3 pci_map_rom +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4daa6803 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4deef536 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x4df00fa3 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e03db8e xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e122f07 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x4e1a803f sk_free +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e5ea21c scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e7c3e54 fb_set_var +EXPORT_SYMBOL vmlinux 0x4eb6e9f9 __block_write_begin +EXPORT_SYMBOL vmlinux 0x4ed2f809 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x4ed73e64 single_release +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4ee0c478 simple_empty +EXPORT_SYMBOL vmlinux 0x4f10507e fb_show_logo +EXPORT_SYMBOL vmlinux 0x4f12f3eb skb_clone +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f27f9f9 kill_litter_super +EXPORT_SYMBOL vmlinux 0x4f283db0 framebuffer_release +EXPORT_SYMBOL vmlinux 0x4f29a8c6 phy_detach +EXPORT_SYMBOL vmlinux 0x4f3073c9 __ht_create_irq +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4f9cd053 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x4fbaa16f __cleancache_flush_inode +EXPORT_SYMBOL vmlinux 0x4fca94d5 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe8160b agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x4ff3c0b7 _dev_info +EXPORT_SYMBOL vmlinux 0x4ff89959 fb_blank +EXPORT_SYMBOL vmlinux 0x4ffbc491 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x5017f1b3 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x50720c5f snprintf +EXPORT_SYMBOL vmlinux 0x507b5723 __d_drop +EXPORT_SYMBOL vmlinux 0x5080867b tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x5088a738 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x510c2535 xz_dec_run +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x511ab427 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x5130adb0 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x5160471f request_key +EXPORT_SYMBOL vmlinux 0x5166459a follow_pfn +EXPORT_SYMBOL vmlinux 0x516edd71 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x517c0405 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x519976d8 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x51c5ea19 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51fab9f5 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x52425751 pci_choose_state +EXPORT_SYMBOL vmlinux 0x5245ff03 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x524eab41 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x5295f485 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x52b3219b udp_proc_register +EXPORT_SYMBOL vmlinux 0x52cad500 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x52d4ec11 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52dd2dcf blk_stop_queue +EXPORT_SYMBOL vmlinux 0x52e77db2 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x52fbbe6e iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x5302a65c compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x5313b209 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x53174093 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x531c75b8 wireless_send_event +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x536cc511 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53956b8b ps2_command +EXPORT_SYMBOL vmlinux 0x5397f2d3 posix_acl_init +EXPORT_SYMBOL vmlinux 0x53a67361 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x53aa9cb8 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x53bd1504 uart_match_port +EXPORT_SYMBOL vmlinux 0x53f04062 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x53f14c54 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x53f6e04e acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x53f6ffbc wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x53ff0367 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x542e4bf1 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x542ef2e1 tcp_prot +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x54849355 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x54954347 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54ac9c97 blk_start_queue +EXPORT_SYMBOL vmlinux 0x54b4740c tcp_read_sock +EXPORT_SYMBOL vmlinux 0x54bae130 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x54c66364 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x54e617b4 mmc_add_host +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54edaa44 intel_gtt_map_memory +EXPORT_SYMBOL vmlinux 0x54fe6428 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x550d5e51 iget_locked +EXPORT_SYMBOL vmlinux 0x551182b7 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x552e5200 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5546289c input_register_handler +EXPORT_SYMBOL vmlinux 0x55678b4b bsearch +EXPORT_SYMBOL vmlinux 0x556bec8e ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x55772b70 softnet_data +EXPORT_SYMBOL vmlinux 0x5578b195 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x557b49df jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x557c0dab mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x558256c2 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x55909fbe tcp_seq_open +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a1620d kobject_get +EXPORT_SYMBOL vmlinux 0x55a745ec ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x55ad690d fifo_set_limit +EXPORT_SYMBOL vmlinux 0x55cb441d netdev_err +EXPORT_SYMBOL vmlinux 0x55dbdef6 ps2_drain +EXPORT_SYMBOL vmlinux 0x55e6909b fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5631ea63 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x5632e092 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56373007 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x56450f5f iterate_mounts +EXPORT_SYMBOL vmlinux 0x56845487 dev_set_group +EXPORT_SYMBOL vmlinux 0x56852793 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x56988f76 nonseekable_open +EXPORT_SYMBOL vmlinux 0x56b33f6b try_to_release_page +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56f32e40 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x57089f98 __register_chrdev +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x578f0752 dev_mc_del +EXPORT_SYMBOL vmlinux 0x57909ede pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x57a6ccd0 down_read +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x58235180 block_write_full_page +EXPORT_SYMBOL vmlinux 0x5826a723 lock_fb_info +EXPORT_SYMBOL vmlinux 0x58290f36 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5842e0c1 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5860aad4 add_wait_queue +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x588ee1ae check_disk_size_change +EXPORT_SYMBOL vmlinux 0x5892ef56 pci_select_bars +EXPORT_SYMBOL vmlinux 0x592fba78 kset_register +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5948d9a2 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59583f8f netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x5966d064 __seq_open_private +EXPORT_SYMBOL vmlinux 0x59687963 napi_get_frags +EXPORT_SYMBOL vmlinux 0x596ab9f7 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59c0e411 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x59c9bce8 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x59ca3dda seq_putc +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d7ea77 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x59df7c82 sock_create_kern +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5a277f74 path_put +EXPORT_SYMBOL vmlinux 0x5a2c7c08 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x5a315474 pci_dev_get +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a4f5ea4 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x5a5a371a jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a6e1a6e inet_select_addr +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a8d2b89 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x5a932bfd lro_receive_skb +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ac6ec14 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x5ad8c31b is_container_init +EXPORT_SYMBOL vmlinux 0x5aeb145f complete_and_exit +EXPORT_SYMBOL vmlinux 0x5b15b3fb filp_close +EXPORT_SYMBOL vmlinux 0x5b19ee99 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b6c8b9f posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x5bd0436e keyring_clear +EXPORT_SYMBOL vmlinux 0x5be681ad scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x5c176503 dma_set_mask +EXPORT_SYMBOL vmlinux 0x5c2213ba scsi_device_get +EXPORT_SYMBOL vmlinux 0x5c2b280f locks_remove_posix +EXPORT_SYMBOL vmlinux 0x5c301236 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x5c3edd59 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x5c42d9b1 sk_wait_data +EXPORT_SYMBOL vmlinux 0x5c571695 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x5c64429d ifla_policy +EXPORT_SYMBOL vmlinux 0x5c8b5ce8 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5ccfcc33 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x5cdef9a7 vfs_write +EXPORT_SYMBOL vmlinux 0x5d0202d8 netif_skb_features +EXPORT_SYMBOL vmlinux 0x5d080015 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x5d1dfe13 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d7a39cc compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x5d7a8eaf sk_alloc +EXPORT_SYMBOL vmlinux 0x5dac024b mnt_pin +EXPORT_SYMBOL vmlinux 0x5db3a32c udp_ioctl +EXPORT_SYMBOL vmlinux 0x5e0b9f9c path_is_under +EXPORT_SYMBOL vmlinux 0x5e266aca mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x5e3dde03 kill_pgrp +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e75b6a3 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x5e920590 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x5e94b1da __kfree_skb +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9692fd pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x5ea8fba4 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5eb81ef7 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x5eb8db22 ata_link_printk +EXPORT_SYMBOL vmlinux 0x5ebadb17 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee2e031 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f2a0641 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x5f2eb44d poll_freewait +EXPORT_SYMBOL vmlinux 0x5f40d556 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x5f42ab71 dump_trace +EXPORT_SYMBOL vmlinux 0x5f44e505 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f645282 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x5f660c20 prepare_creds +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fc25e8b dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x5fccf955 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x5fcde9b2 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fdefd09 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x60018f9a agp_copy_info +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600a4415 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x600d000b first_ec +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6020540b scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x6034f29e bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6079344f tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x6079824d dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x6079b100 journal_abort +EXPORT_SYMBOL vmlinux 0x607bfebe agp_free_page_array +EXPORT_SYMBOL vmlinux 0x6094fe09 prepare_binprm +EXPORT_SYMBOL vmlinux 0x609ea6b0 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a100aa tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60d195aa jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x60d27b5b key_revoke +EXPORT_SYMBOL vmlinux 0x60d60009 kick_iocb +EXPORT_SYMBOL vmlinux 0x60dfe254 pskb_copy +EXPORT_SYMBOL vmlinux 0x60f21583 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6139c9fc inet_sendmsg +EXPORT_SYMBOL vmlinux 0x6144a3aa mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x6174fdf6 unlock_rename +EXPORT_SYMBOL vmlinux 0x61770c2f fb_get_mode +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x619e82bd kobject_put +EXPORT_SYMBOL vmlinux 0x61a64480 tc_classify +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c5aa19 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x61d3dd22 md_check_recovery +EXPORT_SYMBOL vmlinux 0x61d665bf rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x61e68c82 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x61fbe64a ip_getsockopt +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6217d7da fb_class +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x62281148 block_write_begin +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622a3b60 security_path_link +EXPORT_SYMBOL vmlinux 0x623397ec block_write_end +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x6246abce kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0x6264c7bb __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x629b3920 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x62b5bbad mpage_readpage +EXPORT_SYMBOL vmlinux 0x6316525f zero_fill_bio +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x6326f9e1 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x6332cc1a audit_log_start +EXPORT_SYMBOL vmlinux 0x63358639 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x6337dfce ab8500_gpadc_convert +EXPORT_SYMBOL vmlinux 0x6353ad2b init_special_inode +EXPORT_SYMBOL vmlinux 0x6353b7e7 scsi_init_io +EXPORT_SYMBOL vmlinux 0x636701d4 sock_map_fd +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x6376a7c0 log_start_commit +EXPORT_SYMBOL vmlinux 0x6395be94 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x639af574 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x63aef7f2 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x63b16340 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x63ccf171 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x63e7beb8 mmc_erase +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f27433 set_pages_x +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6422a40f intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x643eaec8 param_get_string +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x644a839a check_disk_change +EXPORT_SYMBOL vmlinux 0x644f2232 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x647c3db5 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x6483b2a4 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x6492adf2 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64bc0582 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x650ead8e __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65201f98 dm_get_device +EXPORT_SYMBOL vmlinux 0x65263d96 migrate_page +EXPORT_SYMBOL vmlinux 0x65291cff timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0x653beab4 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x653de96f bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x65660cbb unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x656ea185 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x658f4403 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x659a64d0 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x65ca4616 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65efccc6 lro_flush_all +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x6612a771 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x663438e1 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x664d0f32 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x665e1e45 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x6674ce38 vc_resize +EXPORT_SYMBOL vmlinux 0x66795b2b pci_save_state +EXPORT_SYMBOL vmlinux 0x66851fc8 lock_rename +EXPORT_SYMBOL vmlinux 0x66882edf generic_file_open +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66a73c17 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x66abebb6 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x66c3df58 invalidate_partition +EXPORT_SYMBOL vmlinux 0x66cc0ebc mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670a7f23 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x67215559 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673b2b29 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x67507862 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x675a9f84 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x675d658b devm_ioremap +EXPORT_SYMBOL vmlinux 0x676e52cb journal_lock_updates +EXPORT_SYMBOL vmlinux 0x678896a4 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x678a14ae agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x67a0306a percpu_counter_set +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c4834f swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x67d396b0 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x67e791f8 flush_old_exec +EXPORT_SYMBOL vmlinux 0x67e90e2f set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x680551e9 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x6815c6da ppp_register_channel +EXPORT_SYMBOL vmlinux 0x682988b5 free_task +EXPORT_SYMBOL vmlinux 0x6842b4a3 iunique +EXPORT_SYMBOL vmlinux 0x684392b1 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x6845de28 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x6878f62a __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68aca4ad down +EXPORT_SYMBOL vmlinux 0x68e24c77 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x690c86ec security_path_mkdir +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x691a14ac fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x6921aa83 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x692bd118 agp_free_memory +EXPORT_SYMBOL vmlinux 0x692be294 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x6940ed2e mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x694aafe0 dentry_open +EXPORT_SYMBOL vmlinux 0x6968c1d8 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x696fc8db netlink_ack +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69771d82 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x699795cc dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a13ef9 tty_throttle +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69a51cf8 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69afd5d3 default_llseek +EXPORT_SYMBOL vmlinux 0x69cb1a8f put_io_context +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e56cd7 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a33fd3f i2c_master_send +EXPORT_SYMBOL vmlinux 0x6a5c57f2 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a682878 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a988861 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x6abfc1ac llc_sap_close +EXPORT_SYMBOL vmlinux 0x6ac27584 noop_fsync +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acfbeb4 seq_escape +EXPORT_SYMBOL vmlinux 0x6ad722d7 open_exec +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6aeee676 padata_stop +EXPORT_SYMBOL vmlinux 0x6b13f13d write_one_page +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b1f33e9 __ps2_command +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b460967 idr_get_next +EXPORT_SYMBOL vmlinux 0x6b4cdc8f dev_addr_flush +EXPORT_SYMBOL vmlinux 0x6b5d8013 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x6b806482 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x6b91fe07 km_query +EXPORT_SYMBOL vmlinux 0x6ba3e44e simple_transaction_release +EXPORT_SYMBOL vmlinux 0x6bbd3988 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bd040ff lock_super +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be11b8a register_con_driver +EXPORT_SYMBOL vmlinux 0x6beb73ad __devm_request_region +EXPORT_SYMBOL vmlinux 0x6c14d518 pci_match_id +EXPORT_SYMBOL vmlinux 0x6c277da6 pci_request_regions +EXPORT_SYMBOL vmlinux 0x6c2a3e44 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c40974d dev_err +EXPORT_SYMBOL vmlinux 0x6c47906f i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x6c5101d8 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6c0955 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x6c6cdb31 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c93cc0d journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x6ca4c811 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x6cb60b9b proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x6cbb5795 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x6ccffc75 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x6ce92823 __lock_buffer +EXPORT_SYMBOL vmlinux 0x6cfd7852 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x6d0aba34 wait_for_completion +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d0f69ff register_gifconf +EXPORT_SYMBOL vmlinux 0x6d232264 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +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 0x6d39196d sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d73ad19 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x6d9d63b4 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x6dd6774c tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x6dd75c7a d_move +EXPORT_SYMBOL vmlinux 0x6ddd1210 locks_free_lock +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e0420df rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x6e09a145 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x6e297a62 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x6e4cacf6 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eb312db sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x6f061c19 register_framebuffer +EXPORT_SYMBOL vmlinux 0x6f160a27 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x6f29a9b9 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x6f31c928 arp_tbl +EXPORT_SYMBOL vmlinux 0x6f4c812f __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f5ef93d memchr_inv +EXPORT_SYMBOL vmlinux 0x6f87a911 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd46844 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ffbaa16 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70073f66 __sock_create +EXPORT_SYMBOL vmlinux 0x700e8bc3 request_key_async +EXPORT_SYMBOL vmlinux 0x70107dc2 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x7018c9cf sock_sendmsg +EXPORT_SYMBOL vmlinux 0x7026f1bc kobject_set_name +EXPORT_SYMBOL vmlinux 0x702b6c54 udplite_table +EXPORT_SYMBOL vmlinux 0x703a0721 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x703b2ded register_filesystem +EXPORT_SYMBOL vmlinux 0x703b4352 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x703dbde9 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x70445c74 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x707ffd49 pci_set_master +EXPORT_SYMBOL vmlinux 0x7086c13b search_binary_handler +EXPORT_SYMBOL vmlinux 0x70927fca dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x70ab88b5 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x70b014bf blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x710cda50 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x71180f4b xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x711bc247 dqput +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x712ca456 account_page_writeback +EXPORT_SYMBOL vmlinux 0x716708d1 ata_print_version +EXPORT_SYMBOL vmlinux 0x7169c0c9 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71b1a33c module_put +EXPORT_SYMBOL vmlinux 0x71b1a3fc set_user_nice +EXPORT_SYMBOL vmlinux 0x71c75294 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0x71d74aac xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x71df3ac1 bmap +EXPORT_SYMBOL vmlinux 0x71e3cecb up +EXPORT_SYMBOL vmlinux 0x71f02765 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x7201a1b9 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x7234eafb otg_state_string +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x7249c141 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x724a360c skb_dequeue +EXPORT_SYMBOL vmlinux 0x72527dfc input_register_device +EXPORT_SYMBOL vmlinux 0x7279c637 end_page_writeback +EXPORT_SYMBOL vmlinux 0x729d512b vm_event_states +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72aa82c6 param_ops_charp +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72bf3de0 dev_deactivate +EXPORT_SYMBOL vmlinux 0x72e9cdb6 sock_no_connect +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ebeeab vfs_unlink +EXPORT_SYMBOL vmlinux 0x7300f0a6 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x730ff363 param_set_uint +EXPORT_SYMBOL vmlinux 0x731c74f8 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x732b2844 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x732b7833 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x7332bcf0 genphy_suspend +EXPORT_SYMBOL vmlinux 0x73372f8a d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x736bc764 tty_shutdown +EXPORT_SYMBOL vmlinux 0x736c79dc param_get_byte +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x73846fcd vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x73a78bc4 downgrade_write +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73c2be7f tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x73e93441 do_SAK +EXPORT_SYMBOL vmlinux 0x73eb0bc5 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x73ee6c18 seq_open +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x741e3106 module_refcount +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747897b5 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a1fa25 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x74b8fbd8 ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cd237f __f_setown +EXPORT_SYMBOL vmlinux 0x74dc11e3 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x74e4ce76 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x7513ab67 cad_pid +EXPORT_SYMBOL vmlinux 0x751b2247 param_get_bool +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x753e59ea acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x7549f1d8 bio_alloc +EXPORT_SYMBOL vmlinux 0x754cfd19 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x7550fd99 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x7551debc panic_notifier_list +EXPORT_SYMBOL vmlinux 0x75546f17 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x755512c1 locks_delete_block +EXPORT_SYMBOL vmlinux 0x7564e031 tcf_register_action +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x758e6e45 pci_set_ltr +EXPORT_SYMBOL vmlinux 0x75ab9f5b llc_sap_find +EXPORT_SYMBOL vmlinux 0x75ac0197 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x75b076d1 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x75b2c275 init_task +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75d48bbc compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7615c680 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x7620e3bf key_link +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x762d3d53 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x763df7b7 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x76441ae3 serio_open +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765168f8 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x76742a7f scsi_host_put +EXPORT_SYMBOL vmlinux 0x76752957 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x76869ac8 rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x76895941 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x768c2948 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x76a0ac3a xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x76bbca7a __serio_register_port +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c5d052 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d4c0eb __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x76d7c6b4 backlight_device_register +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77607d15 replace_mount_options +EXPORT_SYMBOL vmlinux 0x7779503c icmp_send +EXPORT_SYMBOL vmlinux 0x778be90f dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x779e011c agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x77a11dfb pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x77a4c91d bitmap_unplug +EXPORT_SYMBOL vmlinux 0x77b5cc35 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77bcc45d xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x77de5f01 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e60394 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77fa913a blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x783bbb98 dns_query +EXPORT_SYMBOL vmlinux 0x7852ce61 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x78758aad backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x78b448f6 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x78bb3e24 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x78dd8ba4 account_page_redirty +EXPORT_SYMBOL vmlinux 0x78deb1a4 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e33310 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x78f042d6 __dst_free +EXPORT_SYMBOL vmlinux 0x78f34416 vfs_symlink +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x7943ae7a xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x795180d1 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x795d003b xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x796c3638 udp_disconnect +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7988169a mark_info_dirty +EXPORT_SYMBOL vmlinux 0x799f2a87 write_cache_pages +EXPORT_SYMBOL vmlinux 0x79a38e61 ___ratelimit +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79c1c51e qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x79c7d978 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x7a133bff set_pages_uc +EXPORT_SYMBOL vmlinux 0x7a1390f7 param_set_bool +EXPORT_SYMBOL vmlinux 0x7a142f47 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a329b8a wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x7a391112 simple_release_fs +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a90d598 inode_init_always +EXPORT_SYMBOL vmlinux 0x7aaf76b1 km_policy_notify +EXPORT_SYMBOL vmlinux 0x7abf23f0 truncate_setsize +EXPORT_SYMBOL vmlinux 0x7ae0012c vfs_readlink +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b2f135f udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b5ee18d register_8022_client +EXPORT_SYMBOL vmlinux 0x7b6639ac xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x7b72b568 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7bb22654 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x7bb2697b __breadahead +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c11d152 ether_setup +EXPORT_SYMBOL vmlinux 0x7c1d27b7 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x7c211e2e free_buffer_head +EXPORT_SYMBOL vmlinux 0x7c34a884 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x7c3dbaac kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x7c3ef241 start_tty +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5d9f5d aio_complete +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c62e255 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9ef38b security_inode_init_security +EXPORT_SYMBOL vmlinux 0x7ca46555 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb1f2c3 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x7ce0ae7c param_get_long +EXPORT_SYMBOL vmlinux 0x7cedc658 idr_remove_all +EXPORT_SYMBOL vmlinux 0x7cf09a76 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d28c857 send_sig_info +EXPORT_SYMBOL vmlinux 0x7d38d766 netdev_set_bond_master +EXPORT_SYMBOL vmlinux 0x7d646311 key_task_permission +EXPORT_SYMBOL vmlinux 0x7d846fc3 save_mount_options +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7dbc2e57 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7dd763c2 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e11e053 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e3ac35b journal_init_dev +EXPORT_SYMBOL vmlinux 0x7e3f74a3 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x7e5e7a32 md_error +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ea14e72 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x7eaeb4d4 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x7ec8f9a7 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ee743f2 proto_unregister +EXPORT_SYMBOL vmlinux 0x7f04db6d qdisc_destroy +EXPORT_SYMBOL vmlinux 0x7f18b194 kacpi_hotplug_wq +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2ce793 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x7f53e3c0 find_inode_number +EXPORT_SYMBOL vmlinux 0x7f6585f3 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x7f658e80 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7f923024 eth_type_trans +EXPORT_SYMBOL vmlinux 0x7f993116 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x7f9d3fc2 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x7fb21d7f unregister_cdrom +EXPORT_SYMBOL vmlinux 0x7fbdcbd6 generic_setxattr +EXPORT_SYMBOL vmlinux 0x7fc7fb11 journal_force_commit +EXPORT_SYMBOL vmlinux 0x7fc9094b thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x7fe20afb gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x7fe4a3ee con_copy_unimap +EXPORT_SYMBOL vmlinux 0x7ff5e866 vm_insert_page +EXPORT_SYMBOL vmlinux 0x8008ef2c max8925_reg_read +EXPORT_SYMBOL vmlinux 0x80184053 create_proc_entry +EXPORT_SYMBOL vmlinux 0x801c2f56 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x80380510 simple_unlink +EXPORT_SYMBOL vmlinux 0x805485ab __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x805fd8a0 elevator_init +EXPORT_SYMBOL vmlinux 0x8088da57 journal_start +EXPORT_SYMBOL vmlinux 0x808ac42a fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x809c2684 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x80a1c409 get_gendisk +EXPORT_SYMBOL vmlinux 0x80cb83cc end_writeback +EXPORT_SYMBOL vmlinux 0x80db3ef7 pci_get_slot +EXPORT_SYMBOL vmlinux 0x80df94e4 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x80f5417e iput +EXPORT_SYMBOL vmlinux 0x80f56916 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x80fadfcc bio_endio +EXPORT_SYMBOL vmlinux 0x8108c960 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x810a50c5 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x810b3618 param_ops_string +EXPORT_SYMBOL vmlinux 0x81281d8f phy_find_first +EXPORT_SYMBOL vmlinux 0x81317012 tmem_enabled +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x8167e284 get_agp_version +EXPORT_SYMBOL vmlinux 0x818c2996 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x81b9dbef pci_get_class +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81e8923b vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820d3fb1 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8223a1af blk_end_request +EXPORT_SYMBOL vmlinux 0x8241737e d_rehash +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x825e927a dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8260cf6e pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x82789f61 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x8281ec63 blk_put_request +EXPORT_SYMBOL vmlinux 0x8285a76a neigh_compat_output +EXPORT_SYMBOL vmlinux 0x829d4e08 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82ad3f67 skb_make_writable +EXPORT_SYMBOL vmlinux 0x82ca44dd scsi_ioctl +EXPORT_SYMBOL vmlinux 0x82d4270e jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82edc6d2 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x82f0bb7e __free_pages +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x83101415 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x831e4c94 release_sock +EXPORT_SYMBOL vmlinux 0x832d6d3a abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x83333086 tty_register_driver +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x836dffea mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x839d558e agp_find_bridge +EXPORT_SYMBOL vmlinux 0x83a24b0d mmc_card_awake +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83a7df6c page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x83fe894f km_new_mapping +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8406a42a __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x84092795 d_instantiate +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x84279c83 ilookup5 +EXPORT_SYMBOL vmlinux 0x842e5507 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x8436f8e3 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x8442d16c ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x846bcc01 dm_table_get +EXPORT_SYMBOL vmlinux 0x848ee70c idr_remove +EXPORT_SYMBOL vmlinux 0x84a24861 tty_devnum +EXPORT_SYMBOL vmlinux 0x85173030 bd_set_size +EXPORT_SYMBOL vmlinux 0x852eda14 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x854b4a7f netlink_set_err +EXPORT_SYMBOL vmlinux 0x8556df7a gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x8557672e rtnl_create_link +EXPORT_SYMBOL vmlinux 0x85597049 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x855a6fa9 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856997e2 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x856cd943 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups +EXPORT_SYMBOL vmlinux 0x85710f8e skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x85763870 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x859f1fb4 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85ca94fa __find_get_block +EXPORT_SYMBOL vmlinux 0x85d564af request_firmware +EXPORT_SYMBOL vmlinux 0x85dd3732 dev_addr_del +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e228bd sk_reset_txq +EXPORT_SYMBOL vmlinux 0x860f161c qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x8620f903 misc_deregister +EXPORT_SYMBOL vmlinux 0x8625e0ce make_EII_client +EXPORT_SYMBOL vmlinux 0x8630637e __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f469 freeze_super +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x86725453 kern_unmount +EXPORT_SYMBOL vmlinux 0x8672d2e5 scsi_print_command +EXPORT_SYMBOL vmlinux 0x868427ce sk_stream_error +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86b7d903 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x86bfae20 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat +EXPORT_SYMBOL vmlinux 0x86d5255f _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x86fe4ca1 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x8710a3d1 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87790b7a dquot_scan_active +EXPORT_SYMBOL vmlinux 0x87888b88 inet_accept +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x879397b8 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87bdd628 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x87c58a96 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x87e143c9 netdev_crit +EXPORT_SYMBOL vmlinux 0x8800428e proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x880798df backlight_force_update +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8833bc7e __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88814389 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x888b5ab3 sock_no_accept +EXPORT_SYMBOL vmlinux 0x88904d02 ata_dev_printk +EXPORT_SYMBOL vmlinux 0x88bab960 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x88e97714 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x88eacbdf sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x8901e929 __get_user_pages +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x89666ff9 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x8997aecc datagram_poll +EXPORT_SYMBOL vmlinux 0x899f13a1 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x89ad0730 register_console +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89bfedca setup_new_exec +EXPORT_SYMBOL vmlinux 0x89c7589f pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89fc5b1f dm_put_device +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a5177f2 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x8a5b2e5b unbind_con_driver +EXPORT_SYMBOL vmlinux 0x8a6c6636 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x8a6ea7fd dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a86c097 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x8a92e81b notify_change +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa9d5fc pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x8ab8e18c kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8abccc5d dentry_unhash +EXPORT_SYMBOL vmlinux 0x8abe752f phy_print_status +EXPORT_SYMBOL vmlinux 0x8aecf67d tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b6005a2 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b817787 dev_printk +EXPORT_SYMBOL vmlinux 0x8b83be1e bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x8b8ea549 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bbe986f acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x8bd433ac serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x8bde8f57 inet_bind +EXPORT_SYMBOL vmlinux 0x8be59cb6 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x8be71352 pipe_lock +EXPORT_SYMBOL vmlinux 0x8c02e178 mdiobus_free +EXPORT_SYMBOL vmlinux 0x8c115760 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c40c1d5 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x8c57bc3b nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x8c5fdcc0 seq_release +EXPORT_SYMBOL vmlinux 0x8c757ae5 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x8c9981ff simple_statfs +EXPORT_SYMBOL vmlinux 0x8cb2adc3 idr_for_each +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8cfd2efa skb_queue_head +EXPORT_SYMBOL vmlinux 0x8d1b13f7 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x8d1ce265 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x8d2dc364 dump_write +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55af3a sock_i_uid +EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x8d70e71c __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d9bf4cb llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x8d9cbaae acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8db14346 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x8dc03d93 dst_discard +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e3a8371 dev_activate +EXPORT_SYMBOL vmlinux 0x8e555738 param_get_uint +EXPORT_SYMBOL vmlinux 0x8e6a1c81 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x8e6e114a blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x8e95d4cc bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb32871 __get_page_tail +EXPORT_SYMBOL vmlinux 0x8edf7a7c get_disk +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ef3117b dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x8eff6e54 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x8f044d73 tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0x8f1bdbc5 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f5bc61d compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x8f5d4f91 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x8f636d23 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x8f745529 seq_path +EXPORT_SYMBOL vmlinux 0x8f8a35a3 kthread_bind +EXPORT_SYMBOL vmlinux 0x8f99c299 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa8618e i2c_del_driver +EXPORT_SYMBOL vmlinux 0x8fc7f839 param_set_charp +EXPORT_SYMBOL vmlinux 0x8fcb30a4 netdev_info +EXPORT_SYMBOL vmlinux 0x8ff66782 param_get_ushort +EXPORT_SYMBOL vmlinux 0x9036d664 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x9054a3ff __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x905843a3 vfs_open +EXPORT_SYMBOL vmlinux 0x905a4427 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x907299b0 read_cache_page +EXPORT_SYMBOL vmlinux 0x907f375e bdi_init +EXPORT_SYMBOL vmlinux 0x90831c38 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x908a5e5c journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x908cee48 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x90923da1 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x90a0fe4c release_firmware +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90c6ebc7 tcp_close +EXPORT_SYMBOL vmlinux 0x90e349df dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x90f6a961 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x9103598b mdiobus_read +EXPORT_SYMBOL vmlinux 0x910a9c83 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x910b2544 task_ns_capable +EXPORT_SYMBOL vmlinux 0x911031a1 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x913e7af0 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x9140a63e scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x91820c29 may_umount +EXPORT_SYMBOL vmlinux 0x919a8b87 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x91a3cdf4 down_timeout +EXPORT_SYMBOL vmlinux 0x91a93782 set_trace_device +EXPORT_SYMBOL vmlinux 0x91b1c90e gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x91e8454a dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x920e7ded pid_task +EXPORT_SYMBOL vmlinux 0x9219e761 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x92237531 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x92399501 dev_emerg +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923ce847 put_disk +EXPORT_SYMBOL vmlinux 0x924422c3 free_netdev +EXPORT_SYMBOL vmlinux 0x9255bcf1 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x9268bf0c input_set_keycode +EXPORT_SYMBOL vmlinux 0x9276d7b9 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x9281e86b touch_atime +EXPORT_SYMBOL vmlinux 0x929835a8 node_data +EXPORT_SYMBOL vmlinux 0x92d4dcaa jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x92d7b45c filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x92fcda43 bio_add_page +EXPORT_SYMBOL vmlinux 0x93022759 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9327f5ce _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x93572814 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x93598a25 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x93694be3 vc_cons +EXPORT_SYMBOL vmlinux 0x9386040c would_dump +EXPORT_SYMBOL vmlinux 0x93932b10 sk_filter +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93be77b3 nf_register_hook +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93d301e9 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93f7e063 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x94116c4e ps2_init +EXPORT_SYMBOL vmlinux 0x941cc30f sk_reset_timer +EXPORT_SYMBOL vmlinux 0x9424012b llc_sap_open +EXPORT_SYMBOL vmlinux 0x9425e015 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x943c9639 tcf_em_register +EXPORT_SYMBOL vmlinux 0x94864c7a wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a6aaee page_follow_link_light +EXPORT_SYMBOL vmlinux 0x94b7b534 simple_rmdir +EXPORT_SYMBOL vmlinux 0x94ea2323 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x94f11365 dst_release +EXPORT_SYMBOL vmlinux 0x950179bc security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x950b5f8a n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x9518b623 register_shrinker +EXPORT_SYMBOL vmlinux 0x951b171b d_find_alias +EXPORT_SYMBOL vmlinux 0x95226b08 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x9525a2b6 generic_listxattr +EXPORT_SYMBOL vmlinux 0x9527d106 blk_init_queue +EXPORT_SYMBOL vmlinux 0x952bf7b4 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x95314f29 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x9535cc68 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x953db383 free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954828c7 tty_set_operations +EXPORT_SYMBOL vmlinux 0x95698825 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x9577668c dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x9581ea62 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x95823282 register_quota_format +EXPORT_SYMBOL vmlinux 0x95c8da13 vmtruncate +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95f89a33 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x95f992ad bdput +EXPORT_SYMBOL vmlinux 0x96306def journal_forget +EXPORT_SYMBOL vmlinux 0x964cc371 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x9661bb7b xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x9675d86a agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x9687b29c ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x96902cf7 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x96932cba blk_get_queue +EXPORT_SYMBOL vmlinux 0x969c0f35 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x969f0250 padata_start +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96f0c11d __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x96f6569d do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x96fd590e inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x97150e6e get_phy_id +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976cb04d ihold +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x979fc463 processors +EXPORT_SYMBOL vmlinux 0x97c143d5 input_inject_event +EXPORT_SYMBOL vmlinux 0x97d34096 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x97d47954 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x97dd68f7 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97e70eb5 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x980004d5 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x9803dcbf scsi_execute_req +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9831e9e4 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x9832cc10 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988107fa generic_write_end +EXPORT_SYMBOL vmlinux 0x98827bc2 dquot_alloc +EXPORT_SYMBOL vmlinux 0x988dbda5 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x98cce2e6 register_qdisc +EXPORT_SYMBOL vmlinux 0x98f51073 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x98f8dcda file_remove_suid +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x99109df3 ipv4_specific +EXPORT_SYMBOL vmlinux 0x991399f4 mmc_resume_host +EXPORT_SYMBOL vmlinux 0x99160629 thaw_bdev +EXPORT_SYMBOL vmlinux 0x992d0b94 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x9942cbe2 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x995ac5c0 inet_put_port +EXPORT_SYMBOL vmlinux 0x9967a053 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c6a0e6 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99cff3ff read_dev_sector +EXPORT_SYMBOL vmlinux 0x99d2a30e inet_csk_accept +EXPORT_SYMBOL vmlinux 0x99d3a43c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x9a1ae226 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a221978 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x9a274cd1 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x9a537c99 idr_pre_get +EXPORT_SYMBOL vmlinux 0x9a721979 eth_header_cache +EXPORT_SYMBOL vmlinux 0x9a91ed56 force_sig +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9ab8808c param_get_charp +EXPORT_SYMBOL vmlinux 0x9ad3a0b6 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x9ad8990b udplite_prot +EXPORT_SYMBOL vmlinux 0x9afbc3fb vfs_rename +EXPORT_SYMBOL vmlinux 0x9b119321 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x9b275797 noop_llseek +EXPORT_SYMBOL vmlinux 0x9b2b9417 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b444aa4 pci_iounmap +EXPORT_SYMBOL vmlinux 0x9b75cb81 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x9b79c2d7 blkdev_get +EXPORT_SYMBOL vmlinux 0x9b806d57 bdgrab +EXPORT_SYMBOL vmlinux 0x9b9e95f1 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bc0c824 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x9bda6e99 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c13bd54 input_event +EXPORT_SYMBOL vmlinux 0x9c1b8cc5 find_get_page +EXPORT_SYMBOL vmlinux 0x9c46d06b gen_new_estimator +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c55220b fasync_helper +EXPORT_SYMBOL vmlinux 0x9c5f81da cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x9c74c924 led_blink_set +EXPORT_SYMBOL vmlinux 0x9c8ada96 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x9c8e9776 security_path_unlink +EXPORT_SYMBOL vmlinux 0x9c9dc5a6 dquot_enable +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9caa6efe pcim_enable_device +EXPORT_SYMBOL vmlinux 0x9cb49b76 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x9cb5c5fe proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9cf685a0 d_lookup +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d0883f4 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x9d198561 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d396141 __getblk +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d416d64 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x9d468ce7 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x9d55f03f dev_add_pack +EXPORT_SYMBOL vmlinux 0x9d9b8631 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x9d9cd278 page_readlink +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dd0b9d9 submit_bio +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e4de477 key_alloc +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e607910 audit_log +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e73ce77 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x9e7d5d91 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9eae8820 pci_ltr_supported +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ebdf059 x86_hyper +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f0e924e register_cdrom +EXPORT_SYMBOL vmlinux 0x9f2b6f39 ll_rw_block +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f50f656 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f91f284 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa5247e netdev_set_master +EXPORT_SYMBOL vmlinux 0x9fb3248e napi_complete +EXPORT_SYMBOL vmlinux 0x9fbbe091 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x9fd17ca6 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0xa016d5ee blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xa02af5e5 acpi_device_hid +EXPORT_SYMBOL vmlinux 0xa0307b0b input_set_capability +EXPORT_SYMBOL vmlinux 0xa0350a2d do_splice_from +EXPORT_SYMBOL vmlinux 0xa03c0c5d ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xa03cf8a2 spi_attach_transport +EXPORT_SYMBOL vmlinux 0xa046af02 padata_add_cpu +EXPORT_SYMBOL vmlinux 0xa046cbae i2c_clients_command +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa074ecd2 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xa07eb0cb ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa084b175 dev_uc_add +EXPORT_SYMBOL vmlinux 0xa0888437 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xa0a58ac3 stop_tty +EXPORT_SYMBOL vmlinux 0xa0ade3aa serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0cb1319 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa155fb5b tty_name +EXPORT_SYMBOL vmlinux 0xa181e78e skb_seq_read +EXPORT_SYMBOL vmlinux 0xa19257eb acpi_is_video_device +EXPORT_SYMBOL vmlinux 0xa1b1ea3a security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1bb9609 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xa1c5a3b3 cleancache_enabled +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1dcf034 pci_map_biosrom +EXPORT_SYMBOL vmlinux 0xa1ec8f1c __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20d5c70 dma_supported +EXPORT_SYMBOL vmlinux 0xa23487b5 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xa24f35e0 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xa250b9f4 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xa2669cad security_path_rmdir +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b421b9 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xa2b8f2a1 mddev_congested +EXPORT_SYMBOL vmlinux 0xa2c56c31 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f6fbfe jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xa2f9e285 dquot_destroy +EXPORT_SYMBOL vmlinux 0xa2fe63fc __elv_add_request +EXPORT_SYMBOL vmlinux 0xa31d7185 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa3507a8d request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa3546630 pci_request_region +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa36b660f make_bad_inode +EXPORT_SYMBOL vmlinux 0xa39ac036 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xa3a1db4f sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa3a77c69 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa3aa11d6 set_blocksize +EXPORT_SYMBOL vmlinux 0xa3e512bc unregister_con_driver +EXPORT_SYMBOL vmlinux 0xa3ef6c50 module_layout +EXPORT_SYMBOL vmlinux 0xa3f37906 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xa3fc049b pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0xa4038371 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xa407d288 inet_frag_find +EXPORT_SYMBOL vmlinux 0xa412a8b1 alloc_file +EXPORT_SYMBOL vmlinux 0xa4223ddc deactivate_super +EXPORT_SYMBOL vmlinux 0xa465444a dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xa47af60a lookup_hash +EXPORT_SYMBOL vmlinux 0xa47e46d6 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xa4981e36 lease_modify +EXPORT_SYMBOL vmlinux 0xa49ca796 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xa4b0081d netif_rx +EXPORT_SYMBOL vmlinux 0xa4b45d74 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c41694 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4e08faf inet_register_protosw +EXPORT_SYMBOL vmlinux 0xa51893de mempool_create_node +EXPORT_SYMBOL vmlinux 0xa51df2b4 down_killable +EXPORT_SYMBOL vmlinux 0xa55c4b11 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5993185 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xa59ff33b vfs_follow_link +EXPORT_SYMBOL vmlinux 0xa5e4f65c __next_cpu_nr +EXPORT_SYMBOL vmlinux 0xa60090fb padata_free +EXPORT_SYMBOL vmlinux 0xa61005bb scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xa61540d3 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xa6264c7c set_page_dirty +EXPORT_SYMBOL vmlinux 0xa62b7944 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa658ceb7 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa6796dae bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68c3066 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xa68fe096 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xa6addbc6 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xa6d92e4c mdiobus_register +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6dddde9 mpage_writepages +EXPORT_SYMBOL vmlinux 0xa6e69ae8 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xa6fbc19b dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xa6fc3747 bio_map_user +EXPORT_SYMBOL vmlinux 0xa6fc3a3e xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xa7087e75 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa72eae3f skb_store_bits +EXPORT_SYMBOL vmlinux 0xa75d3f65 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xa7769c87 netdev_notice +EXPORT_SYMBOL vmlinux 0xa7ade515 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0xa7b29e9e wake_up_process +EXPORT_SYMBOL vmlinux 0xa7b4b4de blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xa7c91042 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xa7ca21df dquot_acquire +EXPORT_SYMBOL vmlinux 0xa7cd0645 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xa7da303b unregister_netdev +EXPORT_SYMBOL vmlinux 0xa7f5384a __quota_error +EXPORT_SYMBOL vmlinux 0xa7f6f440 mutex_unlock +EXPORT_SYMBOL vmlinux 0xa80af615 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa83680cf bh_submit_read +EXPORT_SYMBOL vmlinux 0xa837d844 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xa85a0ab7 dev_close +EXPORT_SYMBOL vmlinux 0xa884a98e pci_get_subsys +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa88b5e7e napi_gro_receive +EXPORT_SYMBOL vmlinux 0xa89550d0 freeze_bdev +EXPORT_SYMBOL vmlinux 0xa8a17ddf mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8fe7ca6 netif_napi_del +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9145e54 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa941e311 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xa944f41a jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xa9a072ae pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c1b627 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xa9d3c26e pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xa9e855c9 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xa9f5a57b __put_cred +EXPORT_SYMBOL vmlinux 0xa9f86088 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xaa170372 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xaa308698 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xaa6ee44a inode_init_owner +EXPORT_SYMBOL vmlinux 0xaa7142ef __rta_fill +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaaab0652 pnp_device_attach +EXPORT_SYMBOL vmlinux 0xaaacfed0 blk_put_queue +EXPORT_SYMBOL vmlinux 0xaac3fd6d pnp_get_resource +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab1fa1ed sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xab2abddf dma_spin_lock +EXPORT_SYMBOL vmlinux 0xab2cedf7 flush_signals +EXPORT_SYMBOL vmlinux 0xab39722b security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xab49299c md_done_sync +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabec7547 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac17173d dentry_path_raw +EXPORT_SYMBOL vmlinux 0xac41ea5c inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac5ab8c8 __brelse +EXPORT_SYMBOL vmlinux 0xac608055 idr_init +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac795291 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0xac7f3edb sock_setsockopt +EXPORT_SYMBOL vmlinux 0xac857041 journal_start_commit +EXPORT_SYMBOL vmlinux 0xac8ec614 phy_device_register +EXPORT_SYMBOL vmlinux 0xac96ec0d clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xac9727b6 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xacc720b9 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xaceb2b4c amd_northbridges +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad108e92 pci_biosrom_size +EXPORT_SYMBOL vmlinux 0xad12f36e ip_defrag +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad1b58ba kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy +EXPORT_SYMBOL vmlinux 0xad3eb0f0 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad697d63 mount_single +EXPORT_SYMBOL vmlinux 0xad816a88 mutex_trylock +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad91ca4a kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xad91ef36 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xadaa1416 __cleancache_flush_page +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadaabe1b pv_lock_ops +EXPORT_SYMBOL vmlinux 0xadbb1314 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xadc8e892 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xadf9c11e lock_may_write +EXPORT_SYMBOL vmlinux 0xae002b66 __devm_release_region +EXPORT_SYMBOL vmlinux 0xae00add2 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xae43a64a i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xae490776 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xae66bfd8 update_region +EXPORT_SYMBOL vmlinux 0xae7676c8 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaec7ae7e skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xaec96fe2 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xaed5f603 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xaeeb3ae5 blk_peek_request +EXPORT_SYMBOL vmlinux 0xaf223b77 textsearch_register +EXPORT_SYMBOL vmlinux 0xaf30af6b __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf3f7486 names_cachep +EXPORT_SYMBOL vmlinux 0xaf40317f dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xaf611eac amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0xaf631fcc register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xaf7842aa udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xaf803ced request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafcdb144 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xafda7428 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier +EXPORT_SYMBOL vmlinux 0xb0126a47 sock_i_ino +EXPORT_SYMBOL vmlinux 0xb0146c3a param_set_byte +EXPORT_SYMBOL vmlinux 0xb026cc02 mii_check_media +EXPORT_SYMBOL vmlinux 0xb02fdc3a cdev_init +EXPORT_SYMBOL vmlinux 0xb036bfc5 llc_add_pack +EXPORT_SYMBOL vmlinux 0xb0388bfb sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xb0491f9e sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xb0508b58 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xb061295b set_groups +EXPORT_SYMBOL vmlinux 0xb08c94f7 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xb0a8fd0a intel_gtt_unmap_memory +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb10d8062 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xb1113b81 sync_blockdev +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb123947d netlink_unicast +EXPORT_SYMBOL vmlinux 0xb13737d3 nf_afinfo +EXPORT_SYMBOL vmlinux 0xb138d0bf dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xb148b178 set_binfmt +EXPORT_SYMBOL vmlinux 0xb14cd917 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xb14e5625 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb17e3a77 pci_get_device +EXPORT_SYMBOL vmlinux 0xb183e04a xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xb185c526 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1b544fc tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cda313 irq_set_chip +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1f7a583 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb2111b16 __break_lease +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb226ba72 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2933d30 journal_get_create_access +EXPORT_SYMBOL vmlinux 0xb2b0d772 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0xb2d52597 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xb2e7404b qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb36b0616 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xb36d74ef __nla_reserve +EXPORT_SYMBOL vmlinux 0xb38ae078 qdisc_reset +EXPORT_SYMBOL vmlinux 0xb39cb6cb simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c80af8 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xb3e3d17c agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb412edcd ab8500_gpadc_read_raw +EXPORT_SYMBOL vmlinux 0xb4227272 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb435a2a1 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb46cd715 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xb46fc0d3 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4757678 single_open +EXPORT_SYMBOL vmlinux 0xb4b7b067 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb508ae5b follow_up +EXPORT_SYMBOL vmlinux 0xb50d7503 ip_route_input_common +EXPORT_SYMBOL vmlinux 0xb5142079 consume_skb +EXPORT_SYMBOL vmlinux 0xb521b2c8 skb_split +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb53d72b9 kill_block_super +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5599d88 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xb571045c __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0xb58b74e1 mount_bdev +EXPORT_SYMBOL vmlinux 0xb5948365 iget5_locked +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5dcab5b remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb5eea91b spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0xb5f023b8 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xb604e62a kfree_skb +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb63dcfd5 unregister_snap_client +EXPORT_SYMBOL vmlinux 0xb6641144 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xb66e22fc scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67f8139 do_truncate +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6ad7f59 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cab86e simple_write_end +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d88281 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xb6e76606 inode_change_ok +EXPORT_SYMBOL vmlinux 0xb6f23c14 inode_init_once +EXPORT_SYMBOL vmlinux 0xb70cef96 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb7697e15 d_splice_alias +EXPORT_SYMBOL vmlinux 0xb76f650c pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xb78c61e8 param_ops_bool +EXPORT_SYMBOL vmlinux 0xb7bac1cb bioset_free +EXPORT_SYMBOL vmlinux 0xb7c91aa8 commit_creds +EXPORT_SYMBOL vmlinux 0xb7e00230 __invalidate_device +EXPORT_SYMBOL vmlinux 0xb7f0446f pci_find_bus +EXPORT_SYMBOL vmlinux 0xb7f3d6ff dev_disable_lro +EXPORT_SYMBOL vmlinux 0xb7f47feb inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xb80531d7 journal_extend +EXPORT_SYMBOL vmlinux 0xb816fcc5 dquot_disable +EXPORT_SYMBOL vmlinux 0xb827aef8 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb835e812 __scm_destroy +EXPORT_SYMBOL vmlinux 0xb854858c set_bdi_congested +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8741185 follow_down +EXPORT_SYMBOL vmlinux 0xb878f73e __cleancache_flush_fs +EXPORT_SYMBOL vmlinux 0xb8878a2b mntget +EXPORT_SYMBOL vmlinux 0xb89110a6 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8b025c1 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8ffdec4 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xb9074cbf posix_test_lock +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb9209f08 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xb9228f17 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xb9249d16 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb942f19c jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xb965da20 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9be490f generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba142180 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xba1b55e4 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba339acb udp_prot +EXPORT_SYMBOL vmlinux 0xba33a292 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0xba3eceb6 tty_hangup +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba4b468e pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xba5d10a4 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xba63339c _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xba642079 dev_mc_init +EXPORT_SYMBOL vmlinux 0xba841213 mmc_host_disable +EXPORT_SYMBOL vmlinux 0xba93dc12 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaec021c mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xbaec6251 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xbaeca355 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xbaf65d7d qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xbb018a53 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xbb0a22ae phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xbb0dde70 seq_write +EXPORT_SYMBOL vmlinux 0xbb0ea8d0 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xbb130372 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb4b31c2 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb6143de ppp_input +EXPORT_SYMBOL vmlinux 0xbb622643 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xbb65a035 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xbb952ece tcp_connect +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbba23cb0 cpu_core_map +EXPORT_SYMBOL vmlinux 0xbbaacecd kobject_add +EXPORT_SYMBOL vmlinux 0xbbb9f7a0 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xbbc0fcd5 input_flush_device +EXPORT_SYMBOL vmlinux 0xbbc27203 kill_anon_super +EXPORT_SYMBOL vmlinux 0xbbd15b82 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xbbe2a9c2 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xbbfcaca5 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xbc0349ff scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xbc0b6018 __scm_send +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27dc8a inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xbc3e54c3 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xbc595986 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xbc682ed9 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xbc88ab9a ip_fragment +EXPORT_SYMBOL vmlinux 0xbc902b5f cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xbca5c82f generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xbcb78641 dquot_initialize +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd25013 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xbcdc75df sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xbceab8a4 follow_down_one +EXPORT_SYMBOL vmlinux 0xbd081eb5 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xbd100793 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xbd1381f8 blk_run_queue +EXPORT_SYMBOL vmlinux 0xbd18aa8c blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xbd20c880 register_md_personality +EXPORT_SYMBOL vmlinux 0xbd34a1c2 dm_io +EXPORT_SYMBOL vmlinux 0xbd516f45 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xbd624812 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xbd747eda led_brightness_set +EXPORT_SYMBOL vmlinux 0xbd7eb1e8 fget +EXPORT_SYMBOL vmlinux 0xbda24d38 wireless_spy_update +EXPORT_SYMBOL vmlinux 0xbda8167c generic_setlease +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc20c68 intel_gtt_get +EXPORT_SYMBOL vmlinux 0xbdd22571 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe18153d try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xbe2416b7 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe4c7df4 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0xbe5a4774 eth_header_parse +EXPORT_SYMBOL vmlinux 0xbe749e39 __inet6_hash +EXPORT_SYMBOL vmlinux 0xbea44f2a bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xbea98b5a i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf20cbd7 inet_frags_init +EXPORT_SYMBOL vmlinux 0xbf2fddad dmam_pool_create +EXPORT_SYMBOL vmlinux 0xbf3a5eeb acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0xbf4296ec fb_find_mode +EXPORT_SYMBOL vmlinux 0xbf5846a5 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xbf5f17a0 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xbf6e9d9b lock_may_read +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe63ba8 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbffce0bc dev_trans_start +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc0105740 sock_wake_async +EXPORT_SYMBOL vmlinux 0xc01cf848 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xc027e19d devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0873fc4 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0ad6bbb inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0be81e4 sock_update_classid +EXPORT_SYMBOL vmlinux 0xc0f5ab01 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xc10d7897 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xc1189d21 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xc11a1b47 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xc1201591 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xc13a5bdc d_alloc_root +EXPORT_SYMBOL vmlinux 0xc14024b1 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xc15741ce complete_request_key +EXPORT_SYMBOL vmlinux 0xc172cea3 scsi_free_command +EXPORT_SYMBOL vmlinux 0xc182b882 generic_write_checks +EXPORT_SYMBOL vmlinux 0xc192303e xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xc19bc363 nobh_writepage +EXPORT_SYMBOL vmlinux 0xc19eb85d page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xc1b8eb13 sock_init_data +EXPORT_SYMBOL vmlinux 0xc1be0500 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d7d179 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc1e2a21f security_path_symlink +EXPORT_SYMBOL vmlinux 0xc1e4a97a key_type_keyring +EXPORT_SYMBOL vmlinux 0xc1e89fa9 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xc2278c32 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24e0fcf i2c_verify_client +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2627175 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xc2728311 thaw_super +EXPORT_SYMBOL vmlinux 0xc2964851 input_grab_device +EXPORT_SYMBOL vmlinux 0xc296873a jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xc298c638 dcache_readdir +EXPORT_SYMBOL vmlinux 0xc2a20ee8 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xc2ac7405 d_alloc +EXPORT_SYMBOL vmlinux 0xc2c45ac0 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xc2c82dcc fail_migrate_page +EXPORT_SYMBOL vmlinux 0xc2d3b8de tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xc2dc228c ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc316b98c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0xc31fae16 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3c5eb95 journal_restart +EXPORT_SYMBOL vmlinux 0xc3fc35f5 idr_find +EXPORT_SYMBOL vmlinux 0xc3fe87c8 param_ops_uint +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc42bef66 do_sync_write +EXPORT_SYMBOL vmlinux 0xc4539fbd __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xc470b041 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4aca73a skb_recycle +EXPORT_SYMBOL vmlinux 0xc4db1cc3 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0xc505bc18 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xc50bab05 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xc5139231 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53ecea8 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xc5413da7 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xc54afc0d journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55544fb f_setown +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc573668b input_reset_device +EXPORT_SYMBOL vmlinux 0xc575f9f3 vfs_statfs +EXPORT_SYMBOL vmlinux 0xc5a07295 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xc5a37aa8 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0xc5b16d08 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5e27785 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc610d3f4 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xc6155c19 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0xc630771b sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc6394443 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc6634736 agp_bind_memory +EXPORT_SYMBOL vmlinux 0xc66f5395 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc69dd538 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xc6a66180 rwsem_wake +EXPORT_SYMBOL vmlinux 0xc6b86217 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6d08280 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xc6f68c8e __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc7313b32 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc742ff6e fb_set_cmap +EXPORT_SYMBOL vmlinux 0xc749cca1 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a0c208 sock_wfree +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7cdc9be bio_init +EXPORT_SYMBOL vmlinux 0xc7e41c6c gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0xc7e611e3 skb_pad +EXPORT_SYMBOL vmlinux 0xc7ed5247 pci_iomap +EXPORT_SYMBOL vmlinux 0xc7f03e07 ip_check_defrag +EXPORT_SYMBOL vmlinux 0xc81656a2 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xc81ed342 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xc827b19a mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc85dbdb5 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xc865420d vfs_fsync +EXPORT_SYMBOL vmlinux 0xc86a6174 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xc87e0f13 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xc87ee7b8 scsi_unregister +EXPORT_SYMBOL vmlinux 0xc888d7ee md_write_start +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc89ae85e sg_miter_start +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8bbd666 proc_dointvec +EXPORT_SYMBOL vmlinux 0xc8c32319 tty_check_change +EXPORT_SYMBOL vmlinux 0xc8e0c341 pci_enable_obff +EXPORT_SYMBOL vmlinux 0xc8e92bd4 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xc8fe5019 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xc92011f7 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xc927152b tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xc92c49d5 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xc932868b tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xc93608ac vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0xc948a425 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xc9496ef1 register_xen_selfballooning +EXPORT_SYMBOL vmlinux 0xc94fa003 irq_stat +EXPORT_SYMBOL vmlinux 0xc955da12 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xc958df70 get_phy_device +EXPORT_SYMBOL vmlinux 0xc96ec1ee kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xc970b94a bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xc98e27f6 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9f1a280 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xc9f792bd scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xca4c923d vscnprintf +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca767836 bio_pair_release +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xcab4dba9 spi_release_transport +EXPORT_SYMBOL vmlinux 0xcb341000 dev_notice +EXPORT_SYMBOL vmlinux 0xcb394250 proto_register +EXPORT_SYMBOL vmlinux 0xcb4098e5 may_umount_tree +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb775a5e blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xcb99edb0 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0xcb9e41c4 ppp_dev_name +EXPORT_SYMBOL vmlinux 0xcbaa26a8 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xcbb10d3f scsi_dma_map +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcc00ef1c ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc10c534 __bforget +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc586622 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xcc754de5 md_write_end +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc93761e set_pages_array_wc +EXPORT_SYMBOL vmlinux 0xcc9528f9 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xcca94125 kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2cefe8 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xcd3bc598 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xcd841fa2 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xcda8e7a8 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xcdad5521 set_security_override +EXPORT_SYMBOL vmlinux 0xcde00365 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde82c4f cdrom_release +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce2f8246 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce4b0185 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce6c8cfb cont_write_begin +EXPORT_SYMBOL vmlinux 0xce7a7440 new_inode +EXPORT_SYMBOL vmlinux 0xcec3a908 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xcecfaf8c phy_driver_register +EXPORT_SYMBOL vmlinux 0xced3ff83 mfd_add_devices +EXPORT_SYMBOL vmlinux 0xcef2fced path_get +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcef86b0a pnp_device_detach +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf015f7b do_settimeofday +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf21d241 __wake_up +EXPORT_SYMBOL vmlinux 0xcf38b966 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xcf4dee8d keyring_search +EXPORT_SYMBOL vmlinux 0xcf5b08d5 mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xcffaa82c skb_copy +EXPORT_SYMBOL vmlinux 0xd00314a4 bio_put +EXPORT_SYMBOL vmlinux 0xd0163d3b md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0205390 pnp_register_driver +EXPORT_SYMBOL vmlinux 0xd03466fa free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0xd0484a6b ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xd074b1ef add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xd0799edd posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0a5592c acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0d0aa72 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0d5e040 mmc_start_req +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f2cab3 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1064fe7 genl_register_ops +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd11ff78d swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xd1358a27 input_register_handle +EXPORT_SYMBOL vmlinux 0xd13732f2 sock_create +EXPORT_SYMBOL vmlinux 0xd144a399 __napi_schedule +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd163f6b0 kdb_current_task +EXPORT_SYMBOL vmlinux 0xd16940d8 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xd172cb8d netdev_increment_features +EXPORT_SYMBOL vmlinux 0xd179b984 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xd186bf24 get_write_access +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1ada40f mapping_tagged +EXPORT_SYMBOL vmlinux 0xd1be75b6 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xd1e5549d max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xd1e6b8c3 blk_start_request +EXPORT_SYMBOL vmlinux 0xd1f152ad kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1fa55c4 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xd227892e sleep_on +EXPORT_SYMBOL vmlinux 0xd23c4e30 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd25ed7c8 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xd26f3090 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xd274e301 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xd276f795 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a03431 arp_create +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2b41211 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xd2c0cb03 put_page +EXPORT_SYMBOL vmlinux 0xd2e0c3dd i2c_transfer +EXPORT_SYMBOL vmlinux 0xd2f1b260 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xd2f533a0 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xd3336e48 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xd342b01a sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd34e5a83 dquot_resume +EXPORT_SYMBOL vmlinux 0xd35e249a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd38eccd0 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd39eaec0 acpi_bus_add +EXPORT_SYMBOL vmlinux 0xd3a96fca tcp_disconnect +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3b124c6 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xd3c22f2f get_super +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3ec7bc3 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xd40dbb60 init_net +EXPORT_SYMBOL vmlinux 0xd4788b0b dma_pool_create +EXPORT_SYMBOL vmlinux 0xd497d8e1 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xd4a699b8 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xd4a94617 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xd4c95239 install_exec_creds +EXPORT_SYMBOL vmlinux 0xd4ce49b9 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xd4d5386f dput +EXPORT_SYMBOL vmlinux 0xd4e17fdc unregister_filesystem +EXPORT_SYMBOL vmlinux 0xd4f5e240 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xd50d6977 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd52bf1ce _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xd54581b4 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0xd58ee469 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5c2c623 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd5f3a1a5 find_lock_page +EXPORT_SYMBOL vmlinux 0xd60a8367 neigh_update +EXPORT_SYMBOL vmlinux 0xd611bca3 completion_done +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6525144 mii_link_ok +EXPORT_SYMBOL vmlinux 0xd6584c27 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0xd665ac96 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xd6728ab1 inet_sendpage +EXPORT_SYMBOL vmlinux 0xd6787cb9 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xd679984d secpath_dup +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6b5cc3e inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xd6d485ad serio_interrupt +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd72c0e2c inet_stream_connect +EXPORT_SYMBOL vmlinux 0xd7322918 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xd739f649 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xd754a2ab blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xd75808ff __dev_printk +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd7616362 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xd779cdd6 neigh_create +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd77f068b bio_integrity_split +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd79c7f54 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd80245f6 skb_put +EXPORT_SYMBOL vmlinux 0xd803da59 pci_release_region +EXPORT_SYMBOL vmlinux 0xd8049858 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xd804f22a elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xd813aee5 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xd858a052 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xd8754b57 address_space_init_once +EXPORT_SYMBOL vmlinux 0xd88098ea tcp_poll +EXPORT_SYMBOL vmlinux 0xd883fc00 simple_getattr +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd89f3326 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xd8a22a7a mmc_can_trim +EXPORT_SYMBOL vmlinux 0xd8d2fc86 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f22a30 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd913f4e6 simple_fill_super +EXPORT_SYMBOL vmlinux 0xd91ddaab tcp_shutdown +EXPORT_SYMBOL vmlinux 0xd91ea38c x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92ba88a mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0xd933fd93 bdi_destroy +EXPORT_SYMBOL vmlinux 0xd93f87d5 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd94743ef node_states +EXPORT_SYMBOL vmlinux 0xd962d4f2 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xd969b2c7 amd_e400_c1e_detected +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd996b7b8 revert_creds +EXPORT_SYMBOL vmlinux 0xd9a0b070 tty_port_hangup +EXPORT_SYMBOL vmlinux 0xd9c7f4fd pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xd9ce24fa input_allocate_device +EXPORT_SYMBOL vmlinux 0xd9dea795 rtnl_notify +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda0af252 security_path_chown +EXPORT_SYMBOL vmlinux 0xda106a48 eth_header +EXPORT_SYMBOL vmlinux 0xda1ae6b2 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xda4a6b74 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xda4bad04 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xda54f2fb netdev_update_features +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaad3968 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xdada6013 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdadc6c0e sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xdae3a1c7 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xdafa6180 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0xdb036e2c swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xdb185e7b __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xdb347c7a call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xdb3ffc68 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xdb4b769f bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xdb5aadcd nla_append +EXPORT_SYMBOL vmlinux 0xdb5ebffd skb_copy_bits +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb792dc0 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xdb9e2c22 posix_acl_create +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc042a2a bio_copy_user +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2519e0 param_set_ulong +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2d4864 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc5e1e70 d_alloc_name +EXPORT_SYMBOL vmlinux 0xdc76c050 d_add_ci +EXPORT_SYMBOL vmlinux 0xdc7ea247 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xdc8d1dde _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xdc9969b9 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcd8f64f pci_assign_resource +EXPORT_SYMBOL vmlinux 0xdcdf1367 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xdd1aa768 vfs_mknod +EXPORT_SYMBOL vmlinux 0xdd1c65f6 blk_finish_plug +EXPORT_SYMBOL vmlinux 0xdd1f0176 file_open_root +EXPORT_SYMBOL vmlinux 0xdd68800f generic_read_dir +EXPORT_SYMBOL vmlinux 0xdd916b89 inet_getname +EXPORT_SYMBOL vmlinux 0xdda68499 vga_get +EXPORT_SYMBOL vmlinux 0xddd85eb5 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xddee45b8 simple_link +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde16dc16 tboot +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde6ff8a8 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xde896a59 proc_mkdir +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde971693 neigh_lookup +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdeb5481d inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xdec7d269 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xded262e8 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xdeecd000 sock_kmalloc +EXPORT_SYMBOL vmlinux 0xdf0ac9a6 nf_log_register +EXPORT_SYMBOL vmlinux 0xdf0cf99a jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf0fa63f neigh_direct_output +EXPORT_SYMBOL vmlinux 0xdf1806bc simple_transaction_get +EXPORT_SYMBOL vmlinux 0xdf315a3e jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xdf37c8ad sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf9dc79c current_task +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfcbb974 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xdfecbf72 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xe0041394 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xe005d228 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xe0086907 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xe00a2cca journal_errno +EXPORT_SYMBOL vmlinux 0xe00b326b bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xe03a171f console_start +EXPORT_SYMBOL vmlinux 0xe04026ef intel_gtt_insert_pages +EXPORT_SYMBOL vmlinux 0xe0492b6e block_commit_write +EXPORT_SYMBOL vmlinux 0xe04b51c1 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe054f630 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xe0577376 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe06e4199 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe08f2f1f scsi_host_get +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0d406ae dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xe0faca50 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xe0fc24aa param_set_int +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11eb63f lookup_one_len +EXPORT_SYMBOL vmlinux 0xe13bb6af udp_poll +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe15de30e tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xe15f42bb _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xe172b4c3 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1a67ff3 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xe1ab6d4e tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xe1d0b54b override_creds +EXPORT_SYMBOL vmlinux 0xe1f315df neigh_table_init +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe223e6b1 blk_make_request +EXPORT_SYMBOL vmlinux 0xe229fa40 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xe238429e mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2636d0d vfs_getattr +EXPORT_SYMBOL vmlinux 0xe269e168 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xe287a868 arp_find +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe29cb1ca sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xe2a6c4eb elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xe2b6e5b9 kernel_getpeername +EXPORT_SYMBOL vmlinux 0xe2c8c83e key_payload_reserve +EXPORT_SYMBOL vmlinux 0xe2cfb038 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe30ea9e0 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe33dea65 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0xe355dada tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xe36b5699 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xe3865c57 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3e12008 __first_cpu +EXPORT_SYMBOL vmlinux 0xe3e29c9c __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xe3f38f95 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe4161741 page_symlink +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe43959ab neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xe439eef7 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xe43eec29 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xe456544b input_get_keycode +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49685e5 cdev_del +EXPORT_SYMBOL vmlinux 0xe4ae420b sock_no_bind +EXPORT_SYMBOL vmlinux 0xe4bc6174 rename_lock +EXPORT_SYMBOL vmlinux 0xe4bde001 pci_disable_device +EXPORT_SYMBOL vmlinux 0xe4d85c1d ida_pre_get +EXPORT_SYMBOL vmlinux 0xe4e8eb53 sync_inode +EXPORT_SYMBOL vmlinux 0xe4ed8aeb dst_alloc +EXPORT_SYMBOL vmlinux 0xe50726a6 dquot_drop +EXPORT_SYMBOL vmlinux 0xe50bb406 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe59a638f dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xe5b5f173 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xe5b7817f gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xe5bec95c i8253_lock +EXPORT_SYMBOL vmlinux 0xe5bf3288 vfs_readdir +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe608c13c cdev_alloc +EXPORT_SYMBOL vmlinux 0xe62ba79d pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xe68cdce0 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69b8be8 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0xe6ab8d8b __bread +EXPORT_SYMBOL vmlinux 0xe6bd544c scsi_print_sense +EXPORT_SYMBOL vmlinux 0xe6e3b875 down_write +EXPORT_SYMBOL vmlinux 0xe6fb675c node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe7214b00 proc_symlink +EXPORT_SYMBOL vmlinux 0xe7223bae proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xe74542b0 bdget_disk +EXPORT_SYMBOL vmlinux 0xe74cb292 dma_sync_wait +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe761aa1a phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe77e3b32 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xe7800e19 mmc_do_release_host +EXPORT_SYMBOL vmlinux 0xe795c9ce mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7de6f9f atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xe7e58d30 key_unlink +EXPORT_SYMBOL vmlinux 0xe7eae5d7 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xe7fc8dd7 journal_ack_err +EXPORT_SYMBOL vmlinux 0xe801a146 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8210d18 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xe84c8676 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xe8568cbf tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xe860b729 genphy_read_status +EXPORT_SYMBOL vmlinux 0xe876290f journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe8878d4a journal_init_inode +EXPORT_SYMBOL vmlinux 0xe888da2b cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xe89317f4 km_policy_expired +EXPORT_SYMBOL vmlinux 0xe89db1e7 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8ba21e3 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xe8d6c6a0 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xe8dbafef __next_cpu +EXPORT_SYMBOL vmlinux 0xe8def7c1 current_fs_time +EXPORT_SYMBOL vmlinux 0xe8e2a7f6 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xe8ebf346 ab8500_gpadc_ad_to_voltage +EXPORT_SYMBOL vmlinux 0xe8f31bfb cfb_fillrect +EXPORT_SYMBOL vmlinux 0xe8fc5052 register_key_type +EXPORT_SYMBOL vmlinux 0xe8fccbe2 inet6_getname +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe917abd8 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xe921d70e set_pages_nx +EXPORT_SYMBOL vmlinux 0xe9345143 ilookup +EXPORT_SYMBOL vmlinux 0xe942ea8b scsi_put_command +EXPORT_SYMBOL vmlinux 0xe947d067 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xe94e7b9e spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe96710f1 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0xe972e332 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xe97808b0 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xe9798fac dev_set_mtu +EXPORT_SYMBOL vmlinux 0xe97b777f __pagevec_release +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9adcd48 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xe9b54fda blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xe9bd0cde ida_init +EXPORT_SYMBOL vmlinux 0xe9c224f8 task_nice +EXPORT_SYMBOL vmlinux 0xe9cfcdc4 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xe9d18e15 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xe9dc9529 icmpv6_send +EXPORT_SYMBOL vmlinux 0xe9dff136 mempool_alloc +EXPORT_SYMBOL vmlinux 0xe9f12936 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1bae4b __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xea32cf35 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xea3896c3 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xea589d71 lookup_bdev +EXPORT_SYMBOL vmlinux 0xea639094 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea882361 journal_wipe +EXPORT_SYMBOL vmlinux 0xea8a6c75 param_ops_long +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xea9c27b8 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xeabfc510 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xead9a49c set_anon_super +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaf322ac log_wait_commit +EXPORT_SYMBOL vmlinux 0xeafbd11a call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xeb014adf mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xeb2281e4 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb46d5df vfs_readv +EXPORT_SYMBOL vmlinux 0xeb4fd4a1 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xeb7d8054 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0xeb89bfe7 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xeb900587 do_sync_read +EXPORT_SYMBOL vmlinux 0xeb9489c5 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xeb9c35b9 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xeba677bd posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xebaf5460 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebc86cf1 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xebcd8c8d ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xebd7998f unlock_super +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebeef6c1 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0xebf13714 release_pages +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec16308d tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xec27c4d1 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xec327cbd sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xec34bd4f i2c_master_recv +EXPORT_SYMBOL vmlinux 0xec494e43 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec5023a1 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xec5fc1f1 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xec6df2fd skb_pull +EXPORT_SYMBOL vmlinux 0xec730387 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xeca35b27 vfs_link +EXPORT_SYMBOL vmlinux 0xecbbd7e7 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xecd6eb8d kernel_bind +EXPORT_SYMBOL vmlinux 0xed08418c vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed49f856 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xed4b5a95 netdev_emerg +EXPORT_SYMBOL vmlinux 0xed4b900e vfs_fstatat +EXPORT_SYMBOL vmlinux 0xed668c4b __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xed6ba331 revalidate_disk +EXPORT_SYMBOL vmlinux 0xed72a943 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xed76f3a1 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xed978155 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda2803c md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xedb4ae42 kill_pid +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedcfb58e skb_unlink +EXPORT_SYMBOL vmlinux 0xee0a055c __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xee0b0ed4 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xee126a3b eth_validate_addr +EXPORT_SYMBOL vmlinux 0xee2632ff tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xee2cbc29 devm_free_irq +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3e74ab i2c_register_driver +EXPORT_SYMBOL vmlinux 0xee46885d add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xee4f1906 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xee533666 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xee618323 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xee747416 redraw_screen +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee814ae3 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xee9a0f6e bdevname +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb75f5b dquot_transfer +EXPORT_SYMBOL vmlinux 0xeeba9cb6 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xef1306d1 mount_pseudo +EXPORT_SYMBOL vmlinux 0xef161eb8 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xef300337 generic_writepages +EXPORT_SYMBOL vmlinux 0xef45d32c __kfifo_init +EXPORT_SYMBOL vmlinux 0xef4a865a dm_unregister_target +EXPORT_SYMBOL vmlinux 0xef4c6f5f elv_rb_find +EXPORT_SYMBOL vmlinux 0xef56707c dev_warn +EXPORT_SYMBOL vmlinux 0xef67e06f fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xef806229 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefa94d21 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xefb6b186 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xefba93e1 mempool_destroy +EXPORT_SYMBOL vmlinux 0xefd7f525 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xeff14fb3 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00c9624 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xf02798cd tty_mutex +EXPORT_SYMBOL vmlinux 0xf042683d ppp_unit_number +EXPORT_SYMBOL vmlinux 0xf04f7c90 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xf061e94d agp_create_memory +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0668483 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0xf06d53ae generic_permission +EXPORT_SYMBOL vmlinux 0xf073f505 dst_destroy +EXPORT_SYMBOL vmlinux 0xf07c4b39 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xf091e009 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xf096b7d4 bio_split +EXPORT_SYMBOL vmlinux 0xf09dc716 tty_port_init +EXPORT_SYMBOL vmlinux 0xf0b4cdf2 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xf0df18e5 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xf0ed6e87 find_or_create_page +EXPORT_SYMBOL vmlinux 0xf0eed885 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf1196485 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf147ecb1 down_trylock +EXPORT_SYMBOL vmlinux 0xf17899a8 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf196986f kill_bdev +EXPORT_SYMBOL vmlinux 0xf1a62691 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xf1bd73cc dquot_commit_info +EXPORT_SYMBOL vmlinux 0xf1bea6f1 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1d81e21 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0xf1dabcc4 pnp_is_active +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1fc38ef tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf22449ae down_interruptible +EXPORT_SYMBOL vmlinux 0xf22e2f2a ps2_end_command +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2487cea brioctl_set +EXPORT_SYMBOL vmlinux 0xf2516109 mutex_lock +EXPORT_SYMBOL vmlinux 0xf25b2328 pci_disable_ltr +EXPORT_SYMBOL vmlinux 0xf28ed6e2 machine_to_phys_nr +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2ab9358 pci_pme_active +EXPORT_SYMBOL vmlinux 0xf2b36225 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xf2f19f9f elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf315680a load_nls_default +EXPORT_SYMBOL vmlinux 0xf32055e7 dev_base_lock +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34faca3 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xf3653834 pci_target_state +EXPORT_SYMBOL vmlinux 0xf37260ab _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xf3728125 sock_no_getname +EXPORT_SYMBOL vmlinux 0xf37f5190 inet_listen +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf3b75447 tcp_child_process +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3dac553 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xf3e08d2b sock_release +EXPORT_SYMBOL vmlinux 0xf400a72a __alloc_skb +EXPORT_SYMBOL vmlinux 0xf40598a5 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xf40b6108 phy_disconnect +EXPORT_SYMBOL vmlinux 0xf42b4528 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf443a577 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xf4481800 d_clear_need_lookup +EXPORT_SYMBOL vmlinux 0xf4491940 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf46518cc compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0xf4662085 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xf46f00fd scsi_get_command +EXPORT_SYMBOL vmlinux 0xf48c845c inode_permission +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4aeb264 simple_write_begin +EXPORT_SYMBOL vmlinux 0xf4b1bae3 km_report +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4eefddf inode_add_bytes +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f1d73f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xf5132983 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf541b3ed pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xf543f502 kern_path +EXPORT_SYMBOL vmlinux 0xf578220c dquot_file_open +EXPORT_SYMBOL vmlinux 0xf57d21e1 security_path_mknod +EXPORT_SYMBOL vmlinux 0xf5893abf up_read +EXPORT_SYMBOL vmlinux 0xf598be6a rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf59a6a69 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xf59b9f1b seq_open_private +EXPORT_SYMBOL vmlinux 0xf59e07d2 max8998_write_reg +EXPORT_SYMBOL vmlinux 0xf5a42328 rt6_lookup +EXPORT_SYMBOL vmlinux 0xf5aad833 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cb1af7 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xf5cf326a param_ops_short +EXPORT_SYMBOL vmlinux 0xf5e2f80e bdi_register +EXPORT_SYMBOL vmlinux 0xf5e8b333 phy_stop +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5ec056c blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xf5ef41d9 nf_log_packet +EXPORT_SYMBOL vmlinux 0xf60273a3 scsi_register +EXPORT_SYMBOL vmlinux 0xf605a369 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xf612809a param_get_int +EXPORT_SYMBOL vmlinux 0xf61abf90 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf659748b skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xf668be81 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xf67edb15 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xf681d678 sock_no_listen +EXPORT_SYMBOL vmlinux 0xf6824f83 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6cff718 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xf6db33bf mmc_request_done +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf710df57 tty_write_room +EXPORT_SYMBOL vmlinux 0xf747dd44 kstat +EXPORT_SYMBOL vmlinux 0xf748ba7f __bio_clone +EXPORT_SYMBOL vmlinux 0xf7506c41 __any_online_cpu +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75b395d jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xf768f3a2 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7908b5a dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xf7d71918 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf80d781b __mutex_init +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf824ac83 pci_disable_obff +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf835ea3f skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xf83c72a7 mii_nway_restart +EXPORT_SYMBOL vmlinux 0xf85c5429 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xf886531a compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf8983de7 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8bd1158 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0xf8c7e0fd mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xf8ca3537 padata_do_serial +EXPORT_SYMBOL vmlinux 0xf8cdf463 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xf8d7663c pci_enable_device +EXPORT_SYMBOL vmlinux 0xf8e280c1 blk_delay_queue +EXPORT_SYMBOL vmlinux 0xf8eb2ef0 dev_open +EXPORT_SYMBOL vmlinux 0xf8f68012 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xf92c5ea4 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xf9300775 seq_bitmap +EXPORT_SYMBOL vmlinux 0xf93027ae genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xf93afce4 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xf9448827 registered_fb +EXPORT_SYMBOL vmlinux 0xf9604214 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xf971cd60 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xf99473b0 put_mnt_ns +EXPORT_SYMBOL vmlinux 0xf999da32 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0xf99f7871 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9b0a458 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xf9c2510e dquot_operations +EXPORT_SYMBOL vmlinux 0xf9de0d80 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xfa1fca6b bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xfa30159a __ip_dev_find +EXPORT_SYMBOL vmlinux 0xfa4e1136 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xfa66f77c finish_wait +EXPORT_SYMBOL vmlinux 0xfa67c245 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xfa94b071 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xfac18153 __lock_page +EXPORT_SYMBOL vmlinux 0xfaea96b5 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb567d58 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xfb5f846a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d18cc tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbfedde7 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc09ba10 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xfc215e85 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xfc2c8dbc udp_seq_open +EXPORT_SYMBOL vmlinux 0xfc371fb2 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4eb9cc inet_release +EXPORT_SYMBOL vmlinux 0xfc6b894e swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xfc872fd1 get_ibs_caps +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcd8a568 neigh_destroy +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf466d3 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xfcf542cf lease_get_mtime +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd16a61c kernel_connect +EXPORT_SYMBOL vmlinux 0xfd18f62e send_sig +EXPORT_SYMBOL vmlinux 0xfd436892 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xfd5d5e99 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6a20a6 flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfd6b3d0c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7c0f8f scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd833e86 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbf70bf blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xfdddd56f unregister_qdisc +EXPORT_SYMBOL vmlinux 0xfdee7d42 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xfdef9d2d llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xfdf27c42 tty_port_open +EXPORT_SYMBOL vmlinux 0xfdf33486 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0xfdf701ea acpi_bus_start +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe1a8b52 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe37a9b4 agp_put_bridge +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe5f97a5 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xfe638f96 simple_lookup +EXPORT_SYMBOL vmlinux 0xfe680d41 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe83be16 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xfe840fc9 dev_uc_del +EXPORT_SYMBOL vmlinux 0xfe8dbf2b km_state_expired +EXPORT_SYMBOL vmlinux 0xfe9044fa udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xfe92af7f mount_nodev +EXPORT_SYMBOL vmlinux 0xfe99c4e5 kern_path_create +EXPORT_SYMBOL vmlinux 0xfea82ed1 fget_raw +EXPORT_SYMBOL vmlinux 0xfeb93d4f d_invalidate +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfee3fcf5 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff056a1b generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xff0f7406 dev_get_by_index +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff3e2780 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xff4a2c88 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff72ccc0 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff803b26 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xff94b6ba pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffc586fc jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xffc9ae5a input_open_device +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x19dc7881 twofish_dec_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x5e752773 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0400c7a7 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x09114b57 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094125fd gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0d88326a is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0dd7ef9d kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x124082a2 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14cca98d kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x15658c5f kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x17297b64 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x172eae16 x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1829d421 handle_mmio_page_fault_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfa7c73 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e2f7282 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e5fd4bf kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x212d8ee5 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x25f74f1f kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x28934966 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x29dcc7c6 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2cbfcf1f __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2d043a28 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2d464b8b __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x32ab148d __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36c6abb0 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3757aec3 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x375d8fe9 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3af8a03a kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3b812bbd kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3c239d00 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3d2810dc kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e9178af kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x411dc596 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41952dd5 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41d63566 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48e061a4 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4969e54f __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4c4cba13 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4c6eabe3 kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4d522526 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4d573448 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x58fc8151 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x593f7c22 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59937b38 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c32cfbd kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e16197d kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6296b763 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63e56f4d gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x65ea7dc1 __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x66f95ca5 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67471223 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6904fb3f kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7027a2f3 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x709cd8cb kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a is_fault_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x78d875f5 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c3acac9 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c9b19a5 is_noslot_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8345f98d kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x83626eef kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x85c747e9 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88457992 kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x89852ce4 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90b348c3 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x910d8e46 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92d4cb8b gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9835cb53 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a50444b kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9c0e40c6 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9fa106c7 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa14b6c46 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa42b6426 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa60e3b29 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa89b0318 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa91845be is_invalid_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaa135a26 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaa5b9f91 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb368fbf1 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbb50464c kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d is_hwpoison_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbe546b56 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc1c9993b gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc201c4dd gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc32e5bcd __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3fcd964 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc57f5007 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc66e7b59 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc711b2a7 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xca89913b kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc33d62d __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc67f08c kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcf2b2070 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0373937 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd69a37ed __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd9c731bb kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xddb17d43 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1f13aac kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe8e85639 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe97db816 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf13ff83b kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf2f75d4d kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf374c59f hva_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf51ce37d kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf8e9f072 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa3fb4d3 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfb8c8ff1 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc26cf29 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfffe8600 fx_init +EXPORT_SYMBOL_GPL crypto/af_alg 0x0a09bdce af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x2ae0d596 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x58a10a35 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x63aba7d7 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x65eef7f4 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x66c6b621 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x6e2e5006 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x7d93f644 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xa0f459eb af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xf7052204 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x4a9f5599 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x7c17b926 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x2f0d54ba async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x7b70d127 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x0c09a555 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2c37266d async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6aaf5989 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa6952de2 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x0164ff8c async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x788da8ad async_xor_val +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x08fe6531 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cryptd 0x18be4f42 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x1ce0e494 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x24796053 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x35f1da2f cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x4ab1b6bf cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7e045ea8 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x94b70071 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xabf82324 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xcbe7fa75 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xe3555253 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x27dd847d twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1c8984c7 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x87bd07bd acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xb9a141b0 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xe1372311 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x31e31d0a __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xff3e07fb __pata_platform_remove +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/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/bcma/bcma 0x1242844e bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1f3f4e0a bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2681c42b bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x27a8ed7f bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x41e8227c bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4d3f7fd6 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5d3f038f bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7b94b109 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x99148fc2 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa9ac25e5 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa9de78ea bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xac3ba0b7 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbf77c1f9 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x16ac1f20 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1809a058 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x20baf460 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2f4a1b7f btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4206a431 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9869258f btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc0647ced btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd9d7b752 btmrvl_add_card +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/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8e5faf08 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x92f9a2ed dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x99701711 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xbf9b6a22 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xc761efb8 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xe558f25a dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xf8831611 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x3f34276d amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0aac0daa edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x10e53b59 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x12617875 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x12f30bd8 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x37ee72cc edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x41cb42c0 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4d4bc845 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4e3f1f19 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5e5b34d0 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6164d252 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x62c86f3e edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x677a8804 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x791ffd1f edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x824a73f2 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9106c732 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x92ec902f edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa4a71529 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa52b233a edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xacf0da85 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb12986be edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb808be23 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcbaa0d00 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd266924e edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf24b7657 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfbd5e206 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0d38cee6 amd_decode_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0dc0b68c amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x6d4e6991 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2b73a3a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xc0bb404a cs5535_gpio_setup_event +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x382e255f bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xe3fb5bd3 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x70bc6e71 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xc6ba086c __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xe6e871ca drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xe7cc3255 drm_class_device_register +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/hid/hid 0x04422bf8 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x147f0810 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x23b3f9f5 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x300b1c8c hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3b47047a hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x462e2dee hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x47c05866 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x653c1919 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x659a1745 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x73cfe6f3 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x74ba6d56 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7527baed hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x77926075 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x79501125 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x87c57adf hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9214f2a9 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa1a70ca1 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa6c8174a hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb8071149 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xba1d0110 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbdc58f61 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd9bbd9c0 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xed83d431 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfa1dd35f hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfead678a hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xff42b816 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xaf17c5a1 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x9b4fa918 roccat_common_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xc2fc61e1 roccat_common_receive +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x3411730d usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x667e3e8e usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x85a32a8b hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xbb8b77f9 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00ab644d __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x0aa9d15c vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x18bb71e7 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x2ba1eb97 vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa51bedb4 vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xaf0b6a16 vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xbb533188 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xc103a46b vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xe089b67a vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf8f9ebb9 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x22bcc0ba i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x458f060f i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x4fbedfcb i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x59f30d1c i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6c95957a i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6effbe58 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x7363cdf2 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x9558e588 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xe1dd102c i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x49b8f899 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x30ed96b8 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xff57e711 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x25052f57 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x4639a762 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xc064c1c3 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x6d974fcf adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x02decbb3 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x066a8930 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x233e5216 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4d07c08f wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa0a37128 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb792df07 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc71080be wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xdf168b80 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe4f17a33 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xef945288 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf22a4fd2 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf8dc9817 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1acab528 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1dfc2ace gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x20d7cf43 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x25370c22 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2f139c45 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5e630629 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x65a2ab52 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x70ddfdb5 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x770cd9d6 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9440d510 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9b524261 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9dee8720 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa2993e22 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa469e344 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd9cba928 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf26bced2 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf426ae92 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf900cc0e gigaset_stop +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0c458b64 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aba7f5e dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +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 0x9310ba06 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9c256008 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa1d2413a dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xafbda3f3 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcbb1bae2 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +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-multipath 0x58610276 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xc96a8ea6 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 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 0x4430764e dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45ab972a 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 0x944581a8 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa68e1f06 dm_rh_get_state +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 0xc4773505 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xca69a25e dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xdec2b6b1 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe2c02516 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf2df70db dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfad9d53a dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc62ef4e dm_rh_get_region_key +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 0x009e200c dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x03ced457 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x08a936ca dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x28400536 dm_sm_checker_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x42727fbb dm_sm_checker_create_fresh +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x43293720 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x63b2ff62 dm_btree_insert +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 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x769a642e dm_tm_open_with_sm +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 0x80afbcf5 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x98925a60 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa6aae3ea dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa7e46220 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb47673c4 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb967690a dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdb562135 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xefba9b23 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf99dc2cf dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/raid1 0xdf1f127e md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x5b8907e8 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x122d0c56 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1cbabdc8 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1d40fc18 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1f3db69e saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x5bc3663d saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x72aa3d80 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8df4cfcc saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xaa6a7a68 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdbd3824c saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf243720f saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf6c66db7 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0b50ef82 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x19555018 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x1aad5ca2 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x3a826c4f saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x52ca4520 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xb911462c saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xefd22126 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x5c11c988 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x44f65f95 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xab0a53d3 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x9b98d5d6 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x55809eed tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x7deec113 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x2ea8e8a0 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x71485833 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xb78f7c29 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x7dd3d7bd tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xef633abb tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x13e7c62b simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-demod 0x29715c00 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0xda78bb7c mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x6719ce8b tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x06eefb41 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1d443534 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2bba7284 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x30b66ba4 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x46303cb1 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x47f477f4 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x483c8af7 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6696720a mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6d82eac3 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x78244c86 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x94213272 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x98e129f8 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb19f5246 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcdebd311 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd8223fcb mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdaf343c4 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdefd6b44 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1a0ea30d smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1d4fb92e smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x484cce59 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5ce94c97 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x70b0250f sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x76222253 sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x767a57cd smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9519252a smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x96a5b7cc sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9aced5c1 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9fae3419 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb9dc952e sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc0da252a sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcc0fa884 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd52aafd0 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd97297c2 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd97d8675 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdf6e8013 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf3f88d56 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x37365931 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x3e03c1a7 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x48c6cada ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x66ca9ce5 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x706efef0 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x8ab9392f ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xae94ab43 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x04734907 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1b1dbf28 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1dbeff2a rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2b8a1ea6 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4bf27878 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x526fe5a1 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x52a80f83 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5729d0ac rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6f7e8434 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x758df74a ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7960b17a rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x999e1240 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9a92a97a rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9ada5c4a rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa67ef67f ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xca2e01dc rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf2296d68 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x02212539 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x22eaafff cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2b18b652 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x385bd9df cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x38b0062c cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4943ce5c cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x512ac6e7 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x61ea9b8a cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x79542cd5 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9451a5bd cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9c71c320 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa00d4ecc cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb2ce4950 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb48c4c00 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb4be4711 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc2be7c40 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcbda5b42 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe50e5699 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf6bbda31 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x2a8281b4 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x10812e41 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x32c930a7 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x450b57a5 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x57e7e69a em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7c777d68 em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa09c0015 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xcf332af3 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xcfa8a6ba em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd1f81aa8 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xeba95c42 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x3932e414 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x8003b681 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x962c773c saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xa5747167 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xbd839544 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x28f86ae9 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x45e53641 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xaae8cad4 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xcf88c877 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x14c578de v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x37c65fff v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x66aad51f v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc963a734 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf40374dc v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5893081 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0xfca122a6 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x16b1403c v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x62c97391 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x6c73862b v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x939ced29 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1466185f v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3d047fd6 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4c7d051e v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x6324af4e v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x82bb0683 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x96167d3f v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb7246427 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xda5d91bc v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe04581a0 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf443fcd7 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfc7e9414 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfde3de87 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfe81aa20 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0771d563 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x08f51c65 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x09c2be79 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x122a9b87 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x14e6b785 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3c8b0650 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4a55d777 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5053b7d1 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x51876978 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x658e5cad videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x698e3518 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6bc270c4 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6f922cd4 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x70f9374d videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7eced204 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x82175976 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb035474c videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb34c1a28 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xba1bf4b2 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc450011b videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc7b8a1b2 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd64341b7 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdd39559b videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xedab8c43 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x8f168d6c videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xc1e61773 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xd045ec43 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1014c670 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3f13eeed videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x53c69ae5 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x54528fd6 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5bb1cb25 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6e09bb51 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x89680eee videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc4ea98bf videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xef40ab68 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xac9c1755 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xd655cc16 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xe7ad7bf7 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x0d5678fd vb2_read +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x19f863ca vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x3038e58f vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x3d8a4894 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x43d36a5d vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x4c6ac90f vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x61588843 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x917846e2 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x97403c78 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x997241a1 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa128fa15 vb2_write +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xacf35235 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xaf415262 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xbec74b3f vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xe11633d6 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xfdbfc696 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xfdc7186a vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x7292e706 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x9e805288 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x0c338acd vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x1361ff3b vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x43bc233c vb2_mmap_pfn_range +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x9222263a vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-vmalloc 0x89ebbc23 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1d957289 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x271c130e v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2f352c1f v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x32ac9237 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x47719a6a v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x58f64ba6 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x59d14ba5 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x7bb0318b v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x863fb792 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9e9f8374 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9f3884f9 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9f48415f v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xabd982ec v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb1915c46 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbf623082 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xce6879b4 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd480eeba v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd5826c91 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdf27b62e v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe3720759 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf01ca04e v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf33acf79 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2572d1e0 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x373e4f92 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x4f1ffe9b i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6455564a i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x9e140c77 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xe400b7f7 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xec84b342 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfa0f5a9d i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x29d1d107 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x16cc077e pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2c0798a7 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5cb1bd84 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6df0190f pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7c9d9f90 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8f6f52b9 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa2f3c453 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb7c970eb pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcfc0d049 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdb86fe67 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf6d4b3b5 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xbac96dcc pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xbccc2931 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x46051e11 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x46a1229b pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5a5a6ba5 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb116b2b7 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc5416c96 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x03dc28b6 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x067fd766 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x4933ce1d sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7f88aa09 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xbdc9dde4 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x5d322c0e ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x0a4d84a8 wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x1384faa7 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xa7b48144 wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xf1470008 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x246b5784 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x51fde19c cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xb9c8ee7d cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xd43cd635 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x223fe2a0 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7247126a enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7a74212a enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xa449b9c3 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe8e9e327 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xefde1859 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf792ade8 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00eeb350 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x08e0bb3f lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x4b685f5f lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x4f44e965 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x50d7b30e lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x8e95cbf5 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xcf021f9c lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/pti 0x19f09b98 pti_release_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x23bde487 pti_request_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x52a78e81 pti_writedata +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x7b530587 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xef23e84a st_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x18b23cc4 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1c4a1d51 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x283950cd sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5f7f1997 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x97b97db3 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9c86fec2 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa3141dff sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc510a3f9 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xddff32c3 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x327e4522 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x43b0bf24 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x4d836974 sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x63d02bfa sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x73de0a09 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xbb41dcc9 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x9b5205ce cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xb248fe6d cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xe438ed38 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x30520c79 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x6267fb3f cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xcf553812 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x048be835 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x0595465c cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x07afcd16 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xc30f933b cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x5da19c9d DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x32dcc906 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x684123d8 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0955937a unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x16228344 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1a9ba843 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2b189ed9 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2e1cb35a __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3a0b9017 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3d02d233 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3e695ea8 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x430cb1d9 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x43310c97 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x486ac670 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x64e8c84d __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x656d3c3c put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa660055e mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa6f8c844 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaea58710 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbb9cdeda mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe616c27e register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe958befc mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf30c8751 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf6c0dc45 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x1174ce29 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x49c14960 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x98dc358c deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xa136b10e mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd6cf136b del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x374a5d4e nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xe033ecad nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xe5ef30e3 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x7e54aaf8 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xedc4c25a onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1bb3769d ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2940118e ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2c3761d6 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cf4616e ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x60375e81 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7c0ea74a ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xac3e6015 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc0821324 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xcab1ae43 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdda44e9b ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdf7dcac1 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe445a78f ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe7a7439d ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x031b6284 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x4ed82974 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x55da2af0 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xde3922ba register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x289cd59a alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2f369b86 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x30dd66d6 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x36715a7e alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x520112e9 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x69807f8f can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x74fdd83c register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7f21ec2a alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8eb4b40d free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa5137fcc can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc21deaee open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd56563b1 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x1d55196d free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x611917d1 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa0a5283a unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xb99143f1 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00419395 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x020e1580 mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03443cca mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08805fbf mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x097ea248 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d9b97bd mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10751255 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10e6d34d mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x141712c7 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14406225 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27288ec4 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29173a8a mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ac031e8 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e35c47d mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e75aa1e mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e776931 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31c9093c mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31e371a3 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x34460959 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x365bdecf mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x409e1568 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43a67589 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x44938974 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x46f603d7 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b3443f2 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c4376ca mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x534f81fd mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x538bd62a mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ac5fd2d mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6aed0b54 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b9254ce mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7c68d878 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x809f6241 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81a91e04 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86250daf mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8927bcef mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90c8b76d mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x93007820 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x96c0b2f6 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ce20196 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d96b46f mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f7f460b mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa68d4ae6 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa4c3120 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb45f94d1 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb9c3560e mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbb0b665 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbde261bc mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbf6b1e7b mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc216b3bb mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc57f0bd4 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6903e9a mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc95a060c mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xca153dcc mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcdc5748e mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd2a56626 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd710b1eb mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7ab48c3 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc0d6da3 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0d8d358 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe591e683 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7c043f7 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea7ab256 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1c8c352 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2311f72 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2caee54 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf79b8608 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc440abc mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x09b82b75 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x250954aa macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x797d8708 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc41a56ff macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd3200d0c macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x837ebe97 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4ddb2802 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x6c1af51f usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x86cdb5e1 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xf06961fd usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0ff78fc1 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9263aea8 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9889a0ea rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xa5510152 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb021dfce generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xda6216ea rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00789116 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00d821da usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x01045b6e usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2167b3e7 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x29f24ac8 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3235a40b usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3644a5fe usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3cd0d489 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3dc57560 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4488eeac usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x47e897f5 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x49e82af4 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7b06a7a5 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x88b9a5d6 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8b2f48fd usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb0965281 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb27e4ffa usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc85b257e usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcb6c7031 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdae9b3fd usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xded03979 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdfce66ef usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe99da561 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfe3bd072 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x07d37230 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0949c31b i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x14e092f7 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2b77086f i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3f0ab033 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4281c96c i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5415193d i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x64181ae7 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6569aa94 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6ca5e53f i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6e85f783 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb0c7445a i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcaf0817d i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd8796d63 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe0da7fec i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf81e9a16 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xa83daad6 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x04cc8256 iwl_legacy_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x69c51b5d iwl_legacy_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xcf4996c8 iwl_legacy_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xd38a9061 iwl_legacy_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12302eaa lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4ea229aa lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5099459a lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6f5fcd76 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x75cc3eff lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8394510b lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x94d41b26 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9e7271c8 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa5a1bd14 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xafef5415 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb2f492cf __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc021d345 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc6f87d04 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe2ce3a72 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe3b0af8b lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3f76bcc5 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5b17849f __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x68ad47b7 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7968df06 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9e05d3c2 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa574e8ad lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xef4f7f06 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xfe010151 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x649ed5d7 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xf6b476ec if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x25d5e154 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x446686ca mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4a78a673 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x5553566d mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x94218116 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa63f8e24 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xae8ea731 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd82b5250 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd8b34fd9 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xdd20f237 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe8aa6c20 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x066bde13 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4a341fd3 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x70197da2 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x85e884f9 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x8c1c1576 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbb11b876 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbb56b5d2 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd70c1be1 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe66374d8 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x00a6be1d rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1dfeb5ff rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1e281e19 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1f7e99cd rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2c2e5655 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3126d3a2 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3870d5a7 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3c371e4f rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x44fbf5dd rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x464a4bbd rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x466215e7 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x50862598 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x54eefdd7 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x55e86928 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x58e6e8ef rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5ac7315a rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5b19c2fd rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7932b3b4 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x943a0f04 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x94ffb076 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9f6112eb rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa174c79c rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa43727fc rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa8c30eee rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa9fc2010 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbcceeecb rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc1245644 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc6163f1d rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc84bc7b3 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcc76887c rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd0070f4c rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe17b9f31 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe3f72ded rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf19987eb rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf1b1de7a rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf789daef rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf8f3ead0 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x02c389fe rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x04ef881f rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x06ad6557 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0c25dc5c rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x12be9be5 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x199b599c rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x22cf704b rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x25315dfa rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2faf99b2 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35164dac rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3664c42a rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x37863c06 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x39d48ac9 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3f049cf2 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x45579d38 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x48c237c9 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5128808b rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5a04e322 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5ed4fb19 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x622caf1e rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6414ed8b rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6be5ff3a rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d1d5a01 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d89356d rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7d0be4a4 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7ec0210c rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7effd492 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8313b5df rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x89c9260a rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8aff0a57 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8b2ed21f rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8e57672e rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9ba14e4b rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa6d2e89c rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa97d2f94 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xac4469c0 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc178f025 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc55d9078 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc709de0f rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xceca86a8 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf52ab48 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd05dc894 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd5a1d3b0 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd79d39e3 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe4eb5323 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeb2fba7f rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3ce6f7cc rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5ffc399a rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x606d3838 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x656ddf9c rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7652ae52 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8dd2acfa rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe6e8c1e9 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xecc606cd rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xef2fef9d rt2x00pci_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x07cc3f3f rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2c02316a rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x464adc19 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4b5a48cd rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x52828cda rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6c87ba0d rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x75874991 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8752a0fd rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9d98710e rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb93525d0 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xce87e302 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdc56fc0f rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdecf5428 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe2c4716c rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe6332000 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe8e084d6 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xccf7bb1b wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xddb85c1a wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xe8830035 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x32bc8f9d wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x545870ff wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x559a4c02 wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x5c13e15a wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x884bc7ab wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x89290ed9 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xd3dfe248 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26 wl1271_irq +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xea7cca4f acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xf95a0547 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x4f948c49 asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x89e4cd0f asus_wmi_register_driver +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 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x2673534a pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xa5eb5bb5 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xfd6239b0 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x0852ed36 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x5ac4dd85 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x71f29882 mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xa14e2977 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xad2452f2 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xc9668c37 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe07d01d8 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x04d782e7 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0a00ec9b wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0e2e764c wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x2a74e99e wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x2c059b69 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x41220d6a wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x77585a4f wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0c56a8f0 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0d813d17 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x149ae785 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x160ac424 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x19484def cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1b5d12a6 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x23662161 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2514e161 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x27028f0a cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x31596191 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3636bd37 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x37954592 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x451cda73 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x46d0f570 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b56ce3c cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4e9b363e cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x520629aa cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x56b5d7cf cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x66a12aa3 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6704295b cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6a576e76 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x74d0cb6e cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7a411f76 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7f2fe137 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x89afeccb cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa0c1389d cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa5277c10 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa86da0d0 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xad6dd7ee cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaea53cdd cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb950f6ef cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbbff3330 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbdd54e82 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc09edc34 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc2cccb3f cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcbd2e4c4 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd8a6cf0f cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe0156e15 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe1a4c02f cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe1d21b39 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe586648b cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xed6fcea1 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf0e66f74 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf5d42b64 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfeec3958 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x174e2633 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1bb4968d fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6da3f361 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa2c59d7a __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb59d407b fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb6d02b47 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd5016190 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf2e770b4 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf7457a1a fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x2bd36c04 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7691f16d iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x8fcab69b iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xbc5bc767 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xd92a818a iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xf6489e13 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x003577aa iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08a5f52f iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0d2b63ba iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x166d4a5c iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1fc3bad4 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x24514dc8 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2b9fbf5a iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x32f15d95 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3cd76ee4 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47436cab iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4a35faaa iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x57a6a0b9 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5c7e9549 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x630fe858 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c5e532c iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c65f08a iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6dcf896f iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7518f6a0 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f49262f iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x80759304 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x808ccbf0 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x87a71d69 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8c6458c9 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d58e3c8 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9269f3e4 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa225e4ef iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa674a68c iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa97877c0 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xae4a8124 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb01bf178 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc3a8f351 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc413b65f iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcebdb1e0 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd505e880 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe09f7f35 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe4daf1fa iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe58c7dd1 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xef4ecb85 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf08bf28b iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf0f4134f iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf238e09c iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf3706e35 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc1c37b0 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x11680493 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1bd63d09 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2da3ec3d iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x347d62d4 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x40958f2d iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x40e90761 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x47c29e88 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x57b5ace0 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x61d818c3 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7c0cdad0 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7ce853a9 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7e1cc0a4 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x838f64b5 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb0713d80 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc2cb946a iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd824d709 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x008de465 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0630ef81 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x14924896 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1575ac36 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1890b912 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2399d6a2 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2b9e5252 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3cb1eb3b sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x40ef193c sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x416076a6 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4eedb6ae sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x50793b06 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5cbe8dab sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6dae743f sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7ecc9297 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x882a2895 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x96e9e84f sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9ab5a3a0 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9e8c2bd0 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf41301e sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc761a61e sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc8888d70 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd0517b52 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd5a20035 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xff29c641 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x400c5d8b srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x4c84cf5b srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6d99a2b3 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6ff633ae srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8d38e75f srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xcb238931 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x10ae1723 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x114e1a34 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1f1282df scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2628810d scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x77e78ab9 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8b969a6f scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xae4d805b scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc023f4b0 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd7e94317 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0c40267b iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0d931459 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e0e0814 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1469385e iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1484f44e iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x17da680a iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2072ecd8 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3489e64e iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3659a280 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36d093bd iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ea09f57 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3f384df3 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x46e28b26 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7947ea6b iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x86cb97a0 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x879cf475 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8e71accb iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x957d6767 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa3b677c4 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb7b7cefd iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb7e9ec5e iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc1d603c0 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc3810bab iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc58c3896 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc6fa7a68 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe322ec61 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeab3cbf2 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x37df2b19 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7bc041d4 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x98b3ce4f sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd0b26f5c sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x93cdfe60 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x99e736a4 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xca4265f5 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xcaa3c418 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf7483a8f srp_attach_transport +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x3706edec spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x60760e2e spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x60de4efd spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xa33d9c12 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xbb0cef92 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xdf288fc7 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0bcd857c comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6ff7e1e6 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x704284c5 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc454f570 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xde2211a4 comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x90a5daf0 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x9dae5779 das08_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x00e3afb0 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x03b1e782 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x08728ed8 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x2036e107 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x2594fa40 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x443bf2b3 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x6aa4628d ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x6c7ca818 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x865c6ee6 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x9ddfbcf5 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x288dbbd7 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x4595ce1b ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x61474fce ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x9cd3656b ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa52b20e9 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xdf8ea4e0 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x22adc0bd iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xa3aab552 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xebd08a90 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xf0390e39 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0x35b85807 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x01674183 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x07828a23 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2339c852 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2a1a8939 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x38ce4e1b spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x7af16d85 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8cc000f5 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xa3887f17 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbf3ba9ad serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xcda38867 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xde7ae2e8 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe8edc9d4 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x09312b57 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x277aaecf usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x31fa43e4 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x3c05eca6 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4c8d2ebc usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6106b7bc usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x831e7369 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8c7c33d3 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x95407e2a usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x971382e8 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa1f3470f usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xbbacef5a dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xcd644183 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x15494fd2 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x6cd45e69 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x7937eb8f max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x7ca4acf9 max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xcc66db82 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xd96f2f59 max3107_remove +EXPORT_SYMBOL_GPL drivers/uio/uio 0x06561d40 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x420f6c58 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa022a959 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x9f73cb21 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xeb7f03fe usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x7a6a3228 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x89b17a34 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xbb306d92 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xc7ec6340 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x15e4b205 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x300db966 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x32ddf94c usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7e4ba0bc usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x87c412ef usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x906f2eb2 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xc4338dfd usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xc61eff24 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe36bafa4 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x004b839a usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x04645e02 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0b43940a ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x11ab25b0 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5035b3cc usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x59fba8ed usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6edd557c usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x76dbdea0 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x86c26469 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8a335c11 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x905cd46f usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x92cca7ee usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xac84f229 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb1663dec usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb63e99ad usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb6b9cf55 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc5ad8254 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcaad537f usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcf447c8c usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe7d3d1e1 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfd24c5be usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0b44cf95 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1a120e6a usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x25d756de usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3dfc0bd0 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x48fd34b5 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4e004aba usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x58d83aeb usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5b332962 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x612aeb71 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x62a854c8 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa148efaf usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa91e0e3e usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xadd09436 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc24ff4fc usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcffbc02c usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd3041375 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd477727c usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd7ebbdb6 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe3521c90 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xecdaa6f0 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf8a77ec0 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfa2d316a usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5f570a5a wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xbf067d9a __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xd8f2a535 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf795fef0 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xfb27db75 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x19a3dd29 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x321894cb wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3db3e0d1 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x42049144 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4b571c66 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4bf24b40 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4e3a4e51 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x57b263d9 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x643d7bce wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6b8aa591 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7dcb80ec wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa8c7132d wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb75ff227 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc3fe4d4b wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcaa6f482 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf0df8ccd wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x3a900392 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x497f820a i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xf73a27a9 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0a0cc0dc umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x103a3f9b __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x132ff3a5 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x605c02b0 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x63841395 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x81ce56fe umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x83fe1096 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb1f046fe umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x01fa6c7d uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x15654718 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1823c666 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1bb1da64 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x20e3d64d uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x23791241 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e904902 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x36455361 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x383afb35 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3da8d640 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x44fd9c9c uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4b9dee1a uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4ce7f428 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5d3f318b uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x609cf51c uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7282da5f uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7bc9e457 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8a913626 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8daead0c uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9112adeb uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9476ceff uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9c73ebef uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9d9774ce uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9f3c1498 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa063e78d uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa5bdae92 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb05b742b uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbd6be255 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc9014d57 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcf1bd01f uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe3f6ef76 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe8fa9037 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe9dd349c uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf881b4a6 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfe56f7d3 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfe6c728d uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xff4916bb uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x210ee253 whci_wait_for +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 0x07fdcc10 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1bc81ce3 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1d968649 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x4e606cb0 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x883e95c2 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xeccac247 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xfb322505 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x7e5de7e0 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x1b35d7f1 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xe969bc24 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x1827b602 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x1bcc70f0 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x9e4b85fd viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x040dee90 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x043423ed w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x045f9dc6 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0cb0b43d w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x4af4d0a6 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x85d30799 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x994442ea w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xacefadab w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdf2c6ca9 w1_next_pullup +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x4a34a8cc dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc480357f dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xee70047f dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/fat/fat 0x03099bab fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x0c5ab8b9 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x1cc3e02a __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x3ed970b3 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x3fcfbaf9 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x48aedce4 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x49749f89 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x86b30ce4 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x95efb756 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x99c02f9c fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xbc93b2bb fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xcd40a5c6 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xe5206794 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xe7f6be48 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xea1c0bd4 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xf129a01b fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xfc7fb3a7 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xfdb385de fat_setattr +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x06b9ad81 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3051b61d nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4afa9ca6 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x95de2443 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xad53d1dd nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0cb7d2fe nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1106afb8 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x16eb609a pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x16ef98cd nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1eb6d07d pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3518b80d nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3c3f5562 nfs4_reset_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4fd3cbf1 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e5fe244 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x63347b43 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67cbd7f7 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67de5275 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x692f2e92 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f08f416 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x716a27e3 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8252efa9 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x872f57ce nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9245f09b nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9e9b3466 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa069dbec nfs_commit_clear_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb2fadcd4 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb833c94e nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbd525082 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc217f726 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc34f9a24 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc46b883c nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc6975af2 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd17bdc88 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4d50a40 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5e321b2 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd6271e10 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd8b15ccf nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe37a33b5 put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe9dfb00f nfs4_reset_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea33d2f6 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xee7dbb19 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf74195f1 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc5be0c5 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfcb0a8ae nfs_commit_release_pages +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x84ea20e8 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xb3e3b39a nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1492c6ab 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 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3bfa29a4 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x44e35da6 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x47b8c3bd o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8dd8dffb o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae3a2c59 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb8569583 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +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/dlm/ocfs2_dlm 0x0d1b8a7d dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1194219e dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x49de923f dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x621c706e dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x668490d4 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 0xfa65c889 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16e70e2c ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x17610f57 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x1ba565ac ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x24935f26 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xcdc24ab5 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xdbab0c01 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x0e78a130 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x3f8d71b3 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x5d3f6927 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xa0e2c664 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xb717a362 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xe2860aaf garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x43e86ed2 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xb1ea41ce stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x208aed0f p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0x9644f659 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x4633ba98 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 0x882f8101 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x10a9aeed dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x156877ac dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1c7943d4 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1cd8ded0 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d6a0880 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x23a9988e compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x26cb0c57 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x31bc2b1d dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3614fab7 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x44216b02 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x474c6617 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4c2f06d7 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4c32d9d7 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cd6aa88 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x695994ff dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7378910c dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75bd2517 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7a4e367d dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8096838d dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x813f9091 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8617394e dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x88111d43 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ad19d94 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x93794f59 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0xad27312c dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc78ca9cf dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc85469d7 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd10139da dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd5717aa7 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe1f7cf1b dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3691b9d dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xec395f21 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xef7deea7 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf12ba916 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8fc701f dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8fe9d9f dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfe0c2672 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2e45fc62 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x35ecda2b dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x576930e0 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x99295b4f dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa3e9b7c5 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xec7c3d44 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x550585c4 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xaaaa4673 unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x1daba92d gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x789ad1c2 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xe2a6df66 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xefc91d02 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xb7c75064 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x9d180b69 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xef393124 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0a94fc5d nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x319b45c7 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa22364ca nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa24f73af nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xaeb6ae2b nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xeeb713ba nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x272c01e9 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x604d34cd tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x80d52004 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xca2be49b tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xeb97947d tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xa7cf056e ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1414fdc9 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x357444aa l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x456e8f6e l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x56f7eccb l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7b5f8788 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8b325a34 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x94a85a00 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa54af0fc l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb1931380 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbefd613b l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbf155b7c l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe8ca51d9 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1c19fb76 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x21aeeb47 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7387e1f1 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa00c322e ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb4dfe8f5 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc401ed80 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xcef45b1c ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe05c502d ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0b2310aa ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1e43b7ed ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x204a8da4 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3b2a44ff ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3bd82539 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x49c84938 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6601416d ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7d85da9e ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8aafdef9 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9ca6d85d ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2284512 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 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa7f5c049 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc5f9b62f ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd1bab7ac ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xdf50a055 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x15e961c3 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x26936599 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2b97bd5b ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xee3328eb unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a57dd41 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0cffe44e __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12d6c2a9 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1933f527 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x19adc51a nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x216fc619 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x225e5697 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x229c7713 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26027dc7 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9ba798 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d2b76a2 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3385ae6f nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x338b15b3 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x380645a3 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f9f6219 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x426ca075 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49c92481 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49d48ae6 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f382b08 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x504f54a1 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50616688 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x565d105b nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57ecb06a __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58693fb9 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5923537d nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63cb7e26 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6dd5e7f5 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6f83733e nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7646ba96 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7dd9248e nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x86142c9a nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x88c76841 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89203420 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89aa67a2 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa14e5039 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa1c20e69 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa505e433 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1a56b93 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb4224e18 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb87b1d08 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba14474e nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0cd71bf nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc32de61a nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8ff30a6 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc93c2ee9 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc9cb3bec nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca6def43 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf1378e0 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd17d9033 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9c7b98a nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb1e21fd __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf0a31b02 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf28cbffc nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf42fce34 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf6f542f6 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf792b011 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe6750c9 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfee50597 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xff88a6f3 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x3c1e79cd nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x5e1ce056 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xd713c584 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1599d2d7 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x392795df set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8db24539 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8dbde83e set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbf943dcd nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc49bdb9d set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xca3c7e83 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd194494b nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf5a32cf5 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfcd44503 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x00f55b3d nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x88848e96 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x89f76065 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9acf4d55 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf9d56f6f nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x5df9cab2 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xaafbd5dc nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x07d7a5f5 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x17267c46 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x19efe817 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2a5507b0 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x31db2cac nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4a76b8ef nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4d071d19 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x633cb978 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa987b306 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb10f53fb ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xeeb3337f ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf00ff454 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf5d21437 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xe09f5bd0 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x676825b8 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xa7c500a2 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x068ed41c nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3d3bd38d nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8ea76727 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd0db3049 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf11873d8 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfec07865 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x6698aefb nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x075a87dc xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x088e2255 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0a8f2141 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x17fb1369 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b05297e xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1bcca395 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x299f1433 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x34ef412a xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x385231fe xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x392e420c xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3dcb1b34 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4a020194 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x719ddcbb xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7f4126f3 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x90370a3a xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x96a51689 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x96bdb2d8 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa64c8699 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb648da19 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x3bf0da4a xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xea127120 xt_rateest_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x03c9ff8c rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x11e39010 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x15552ee6 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x1e54c854 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2f9d74e7 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x360f3683 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x3ae5c5dd rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4d83df6e rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x50bdee2f rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x519adc36 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x60908f8f rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x634f34de rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x84a1f844 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x89c12a4c rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x9485283f rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x9868543f rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x9b83e981 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x9bc6be39 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x9c19bf34 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xaaa4df9a rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xb09909c0 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xd75379c3 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xd99eba0c rds_trans_unregister +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x5bac820c rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xc4c0ecfc rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2af77279 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x340d8b79 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29 gss_mech_list_pseudoflavors +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3ce99dff gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4e88f086 gss_mech_get_by_OID +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x69bc6e3b gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x95671e55 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9fa32e91 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5e6f879 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc002b413 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xca0eec4d gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xccf2612b gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe431ea13 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0155fa67 __rpc_wait_for_completion_task +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 0x06a90ab0 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x098abbc8 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bf29d82 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f25fe30 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f6d0789 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14909cfa rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15153946 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16e0d7e1 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18793d25 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19c776a6 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ab35563 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b6d3aa0 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b9c36ba xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c81b1a1 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c8e636d xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cc3e38c xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d0be4f2 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d4f6798 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25efa0b1 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2704ee6e rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27b95dcd sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27efe059 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b79e46f svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x306d64c0 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30b155f4 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31ef628c rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32c6869c svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33d442d6 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36413af0 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b4b3050 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d747c02 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e8e2ea7 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f54a8f6 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40b925d8 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44b8e378 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x451112fa rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b903253 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c162a2f xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4eadf66f svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50498e2b xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50ba8ed1 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52c905e6 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55a01e53 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a606fba rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b2f0ba2 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d7759e7 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d8e25e5 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5df8761a xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fdb5232 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fefc318 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6182c20e xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62d91887 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6314c988 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6465e69a xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65122f0c rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x687a11b4 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c0375c7 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c610621 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d80703d xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e9d337b svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70d79652 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71692ff7 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x721c5683 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73d0660c svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7579e335 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x757c31f3 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7872329c cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7aea6ac2 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b30bf86 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dc3e746 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f6777e4 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82b05f2c auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82e76d70 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85ea941d rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86a5e846 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8948f4dc sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b87b90e xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b9a725e xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cb7d16b rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8da9954d rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8df373e9 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e03d682 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x934b434d rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9472e08a rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x988f003a xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x997953ce csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9dbea698 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9de0456f svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9fedb9d6 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa090dc16 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0c7ce57 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1ff5152 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4eccab8 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4f15a7a svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7bc4a50 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7c9e5e4 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa82b95fa rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9a0bfd7 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac7b1a5f rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae254a6d rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf0ebf52 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf7c1600 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0507c7f rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0fc75eb put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2bc78f5 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4216af7 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb500ca75 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5aed214 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb74b06d7 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba5757a7 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbc3adb9 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc00bb334 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc05db43e xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0ce7605 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc31e1509 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5ff9f7d svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc62cd13a xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc81473f0 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8d3160b xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca302fef rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf5f98b0 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0b9130b xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd202f920 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3da5e3c svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3e38ec9 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd56ccccf sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd69c5e0e cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd70034b6 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd71032b6 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7954d54 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd81857ad rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda255605 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcb0013a xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde3ffd7e rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf0e1226 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf697d90 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe06fc810 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe17b5fa4 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3b114c6 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8417425 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe96fb2ae rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb7ea1ff xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecaf790c xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed6aa20a xdr_encode_pages +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 0xef8ef05e xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3d8b3f8 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf65b3228 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf699c7ac svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf76617cf xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfcca1891 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe64650e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff0d2b5f svc_create_xprt +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0396c06c wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0dac1e5f wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4d512339 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x544e1a81 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x61c3b474 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x89804fb1 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x96072814 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xaecedb80 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xce142f0a wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd1833629 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xda7831fd wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe4693020 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfe9a6be3 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x07c35076 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0b44b536 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x13e34498 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2226f29b cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2ccbd948 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x34f9b634 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ca790b3 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x91ed9886 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xad37ad47 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaf4a64c4 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xffd64b34 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x599c11a7 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x79b97073 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x90fce675 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xdbe37538 ipcomp_input +EXPORT_SYMBOL_GPL sound/core/snd 0x1a4d9666 snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0x7352b200 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0xc698f575 snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xfe0b7d36 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x127352c7 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x6612e2df snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x6a6abcdc snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x6ee29182 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbdfe9a13 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xdc629e1c snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0019142e snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00f44378 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x015961ca snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0434df04 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05b6ade7 snd_hda_bus_reboot_notify +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 0x086ebe72 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0cb94f45 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x115633b2 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x125dcae5 snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12f26983 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13665be1 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x156ebcc9 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a244efd snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a38d8e6 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ad8fa97 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f117aa2 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x25f7ba53 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d81496b snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x327abc95 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x349e80a8 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35ae7b43 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x37576291 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a2c3dcb snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b1166fd snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3dd6426b snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4059114d snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45092124 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x478a0a36 snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x478ac231 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4aeb195f snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x521540bb snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x53124e08 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5862db50 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62e82cb2 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63ec241b snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x64adc9ab snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67499857 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x69da65d9 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72213587 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75196f5c snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x765b49fb snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x780f37f0 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a189080 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c4de769 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d895606 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7ddb23cd snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7eb6e823 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8206d460 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x842ebcf0 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x858860f7 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x88b43712 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b497707 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91ac1d26 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9219020f snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95e6e876 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x99185d27 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b838555 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b8808b8 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9be3526d snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c168ca2 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa14e66b2 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa33d5b2f snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3b569f8 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xadd8f790 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae71dc68 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb34084be snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4e42687 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5bcdf37 snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9011922 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb1faec5 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb9e4cca snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc9d8b7a query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0b00efa snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc52a0196 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5c05677 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9001a99 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0a6eca1 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0f16306 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5e3604f snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd68a207a snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6dfd3db snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd76357fb snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd79630e3 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9499646 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9c7ecbb snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd25dd17 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe0d047ff snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2c129b6 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe43e0be9 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe46b3613 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe5827739 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe5e048f9 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe67f946d snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe9994147 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef76dec8 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf08766e7 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5941142 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf69f3d00 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf81e4fe3 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf90128d3 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9af9b0a snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa991884 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfedb2a24 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff6d62a8 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x1ce5ec6b pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xbb49c6ba pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x2576626c v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x1255bbce max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x1b332ce5 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x25a77d88 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x2a161f6f aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x647107bc aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x7845abe8 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x0544e0a7 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x9442e927 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x374e6f23 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1f260d66 wm_hubs_add_analogue_controls +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 0x5f4f1c29 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7513fe9e wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x2cfab521 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x463bd932 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xd534809f wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x2bc694c6 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x5293a394 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x6e1d86f1 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xc0deabb2 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0xac041b33 wm8996_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01e7bade snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x03e99338 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07ea2fac snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x09e84ff7 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d3f3616 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0da637fd snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f881b32 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0fbc3723 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1007c6ad snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11608ac0 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x122d759b snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12f388e8 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x132f367e dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1375d942 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x161567ef snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x17d78fe4 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x198d5bf2 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20a456c8 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21560867 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22694553 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26360771 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x268c52bc snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x28cfddd7 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2cf9188c snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2de2b016 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e848543 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f04e6bf snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34c13ad4 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38713a61 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e31340f snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41f5b942 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43cb5f9f snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43d02f62 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x479510d8 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4899d07b snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4bf3cc9e snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e7d0911 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5014f8ee snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x51f06647 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5615cb2d snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a98b48f snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b391cea snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d120e09 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e635577 snd_soc_default_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60f7224c snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62dcb60d snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6490ece2 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65e6b297 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x671dcef2 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x68776150 snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a59542b snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6afbf654 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6dac15bf snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f5409e7 dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6fe741ee snd_soc_default_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x730db55f snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7377971c snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7813a2d6 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x793f8878 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bc3ee20 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7eef220b snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f3583dd snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fc9a885 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8155d3da snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81bc96ff snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x82dda6eb snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8395156d snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85bd1119 snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x86ac2bd7 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x86f247e3 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87411df3 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0d27444 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1600303 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa274b265 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xafb84ce5 snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1a1df48 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb486f505 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb63aec70 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbbf841ad snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc7ba945c snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd07c7db3 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd30deb09 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd78f4afa snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd9b9dbe snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde66c63f snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde93f426 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe454e611 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe57ef45a snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6f2fec2 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe73bcf17 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7864fe6 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8a563f5 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe91d7514 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xebe661bf snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xedd344f2 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5ff9bd9 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf72dda30 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8ba3641 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfac42178 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc7b552f snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfec9f5b6 snd_soc_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x001cf771 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x002f9c16 device_move +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x0088a193 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f94fde register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x01330a06 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x014869a3 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x015975a0 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x0168ec35 mddev_check_plugged +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x017586e3 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x01774c85 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x018dc9a1 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01a5da3a ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x01dc491f xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0201221a pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x02327cca __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x02548bd7 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x026211e2 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x02a0615c xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x02c39a74 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x02d48e57 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x02d4d85c platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x034f37c5 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03f9b6d7 ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0x04041449 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x042ba29c i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x0474f3e3 __add_pages +EXPORT_SYMBOL_GPL vmlinux 0x047ee755 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x04928e8e debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x0530e5c2 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0557953a dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x058624a3 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x05ae262e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x05af976f platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x05c6470e rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x05ccedd6 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x05d8973b devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x05ef4982 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x0638f5d4 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x066a3721 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x06ab6105 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x06d02bb7 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07f78910 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x081c603f blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x081ec13a hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x0845ec0b skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x087ee4e3 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x08cb407a rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x08e2b8eb sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0902962e kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x09132bc2 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09288b6a rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x096ea3ca fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x09b3007d relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x09b63ed6 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x0a288348 flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x0a30b662 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x0a3c7b32 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x0aa16da1 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x0acc6bc2 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x0add0df3 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b28defb kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b513c5e ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x0b6c9b7f virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x0b7ba518 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b970c8a hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x0ba91772 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x0bb343d5 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c583cae perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x0c6c6828 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c9fc562 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cc2c973 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x0cd10a4e work_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0cdfcc9d ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x0cedb994 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x0d03b294 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x0d1db07c swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x0d225d34 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x0d23c95f acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x0d327aa7 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x0d387aac key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x0d550394 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x0d6af4f4 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0d88450c unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0de6c5d1 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x0e0c9683 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e2475ee driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0x0e38deda dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x0e55f6f2 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x0e7f8391 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ee04c70 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f00d714 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x0f205be1 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x0f2ca49b task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x0f337271 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x0f670b12 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0fefbad9 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x102a32a0 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x102c1848 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x10b04050 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x110aa6e8 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x110cc631 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x111e9d6c cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x113ea0cc cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x114f1a20 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0x114fc851 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x119af014 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x121f73bb usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251144c usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x1283f47f crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x129052ab relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x12bd7523 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x12d2137b sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x12edcacd shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x136262e9 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13c0a870 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x13e6c833 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x141bec56 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x14a0702c input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x14b7dd63 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x1501bf65 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x15049b42 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x150be110 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x151fcc02 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x154331fc tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x1556756b usermodehelper_is_disabled +EXPORT_SYMBOL_GPL vmlinux 0x15738fc1 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15a42932 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15b28b20 xv_free +EXPORT_SYMBOL_GPL vmlinux 0x15d1a42a mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x1604feaa debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x1608a16f fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x16247bd0 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x16374f24 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x1679316b inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x16bb7b09 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x16d5c5b5 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x170bf576 task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x176289be __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x17805b31 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x1808c2b8 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x181b9257 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x1837e804 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x185514e2 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18b18120 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x18e2c347 dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x18e94eb4 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x190d6c2e debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x192cef22 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1a02ca48 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x1a05984a raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x1a1d1ccd devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x1a2e5524 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a32d386 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x1a35570a md_stop +EXPORT_SYMBOL_GPL vmlinux 0x1a6370c3 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x1a863ea6 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x1a926fab ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x1ac2df31 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x1acc7eba __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x1ad16f44 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1ae0e135 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x1ae69a94 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1b127f03 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x1b1f5ad0 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x1b3c9291 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x1b4d2e71 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x1b8184b5 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x1b8873d4 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x1b97e1b2 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba160ba xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x1baf3ebe ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x1c08a56d ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c600ca5 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x1c6caf7c unregister_efivars +EXPORT_SYMBOL_GPL vmlinux 0x1c7324a4 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cbaa0e0 ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0x1cfb14d8 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1d17fd0f bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x1d1c0f35 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x1d27be44 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d678932 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d8552c4 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x1dd0bd8f virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e9eb9dc debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x1ea59b79 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed7602e pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x1edb78d0 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1ee0913b __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1ee790c9 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x1ef65553 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x1ef761da platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x1efa10c9 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x1f1fc39d nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x1f49182b rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x1f61b733 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x1f78176b driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1f9df83f xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd07e75 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x1fef62db kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x1ff621f2 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x1ffebae3 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x20331efc rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c20cfe watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x214564c3 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x215c6816 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x218a145d apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x21ba2d8d adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x21e9a20d ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x22163801 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x2221e610 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x223b29e0 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x22689f6e skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x226c021e class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x226e6b39 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x229cbd7b tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x22b8063b cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x22bc5d9c ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x22c6609e get_driver +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2398597d crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x23b6702a pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x23d1eb92 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x23f92ab7 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x2408cca9 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x240dc073 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x2411e395 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2459b551 pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24965f2d crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24ae4f4f ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x24b9352f platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24eb9753 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x250c7e06 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x252e43b4 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x25679eb6 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x258d0c4f rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x25f1d739 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x2624bcce usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26523fd0 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x26576139 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x268064b0 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x268658b7 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x26a7d4f2 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x26ae36ab sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x270d0ee2 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x273aab74 xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0x275ca092 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x27784128 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x27810796 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x27987b2c pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27aa784a cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x27bc67bd usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x280a3269 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x287866e1 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x287f9e42 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2890717a blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x28d28848 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28df2704 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x29398104 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x294afd55 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x295a0c7f x86_mce_decoder_chain +EXPORT_SYMBOL_GPL vmlinux 0x2974bbf1 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x29c9522e ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x29e6764e css_depth +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a1e30e2 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x2a2a0c93 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x2a45cd86 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aabea2e blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x2ac4de2d ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x2ae56f72 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x2afcfacd register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x2b219b09 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x2b43e9a7 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x2b5621ed usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x2bb6c063 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x2bc7e840 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x2bcfa2e7 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x2bd40ebc gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x2c022b2d __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x2c0dc18b filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c24f68d key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x2c546a74 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x2c7d961c ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2caa6453 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2ccb4d4b md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2cee4fa8 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x2d132756 wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2da15a49 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x2db16c3a rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x2db80759 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x2dd6bf3b wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x2ddf82ab tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x2e0077e3 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x2e1b2982 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e24a42a sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e426c72 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e5c2b65 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x2e6657e9 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x2e6eb5cd vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x2e74d38d tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0x2e8e34a4 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x2e94bb01 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x2e963bd8 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x2ea319ba raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2ed22449 dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x2ed431a1 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x2ef460d6 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x2ef7fdf8 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f4925bc evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x2f64204b securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f6a5630 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x2f6c1756 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2faef00e scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fea4c29 trace_nowake_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x30280d88 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x305b933d ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x307e1258 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x309f3cc2 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x30aa0a61 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x30bb9f52 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x30fdd306 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x3108ea46 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x310c38fe sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x31110005 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x31179b65 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3117e2aa init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x312a32c3 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x319a9350 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x31bd4aee tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x3271f42a cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x32739595 virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL vmlinux 0x328b7d3a usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x32912262 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x32a49620 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c27a72 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32cec681 xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x331fb661 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x334276c6 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x33567395 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33927f4a crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33f1c069 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x3400990f bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3459fcc2 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x345fceca tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0x346f66ff fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x348fb142 inode_dio_done +EXPORT_SYMBOL_GPL vmlinux 0x3490a1e9 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x34d23bf5 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x34e06591 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x34e384fd pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x3536c0fe md_run +EXPORT_SYMBOL_GPL vmlinux 0x35a7abcc regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x35df0d89 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x35e177df wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x361e568c usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x361fefe0 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x3633032c input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x3643b765 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36af036c inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x36ba81bb ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x36d2a0ff rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x36ded7c1 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x37284d26 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x372c37aa fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x3749ffc4 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x3786aec9 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x37920323 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x37952554 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x37a00b56 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x37d36afd hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x37f73ff3 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x38043bd9 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x382aa6de sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x383e0fae __css_put +EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x386b341b pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x38741fe7 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x388181cb xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x38c44d4d cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x38d7f20a anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x391a4810 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x393c44b5 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x39483f66 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x3969109a tpm_bios_log_setup +EXPORT_SYMBOL_GPL vmlinux 0x398c7b4f driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x39be511e platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x39c02682 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x39dee71d devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39e9a525 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x39fd1e33 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x3a134ae4 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x3a171a49 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a3ddfa6 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a98ea30 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x3acdd0b6 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x3ad6d6d3 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x3b1997b4 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x3b2215bd find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x3b2b3571 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b727767 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x3b83a696 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x3bd66bbf pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x3be04eca inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c013a58 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x3c4811e8 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x3c581eab tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x3c594f48 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x3c84a5ef bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3c8e9aee bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x3c8ffbcc edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c955903 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd13a6b get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d0df904 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d74e4eb ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x3de61962 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e28d214 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x3e359b0b cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x3e3bfe19 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x3e599570 xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ed2bf41 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x3eefe469 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3efe3f13 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f7c6e47 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f869015 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x3fdac21e scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x3ffaa6f1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40643fcc device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x406aa800 css_id +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c01513 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x40c350f0 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x40d191b7 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x410298c2 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x4118919e regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x4146f9a9 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x41c7d97e dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x41cb3ae2 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x41dc5b35 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x41f340db usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x420d3bac tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x421cd445 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x4240bb2a usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped +EXPORT_SYMBOL_GPL vmlinux 0x4271ba83 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42d26cd5 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x42e43d87 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x42fcce38 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x43247e9d tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x432e197d __class_register +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43b1f224 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x43db89d0 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x43f224ab get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43fb35ea __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x440a1d66 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x4417117a eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x4428ef3a scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x442f08d4 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x44394a9e xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x446b5839 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44bcfa6d system_nrt_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x44d77b61 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x44de552c sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x44f58a74 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x45024ed6 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x451c851d wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4526a61c spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x45291cc1 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x457d2eda power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460aa2cb ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x465cc243 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x466e22b7 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46aa77a0 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x46bca882 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x46f5fd8d __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x46f732de queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x474359b6 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x478baf49 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x47974f9b __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x47b53363 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x480b818b class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x480b9a4e scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x48133729 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x4826ef41 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x48302590 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x4865f9b3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x48682db9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x487f2f22 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48c62e4a eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x48daa280 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x48f6016e ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x49165925 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x491fe435 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x492a7359 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x492a8399 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4975b74b md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x4984a7cf __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x499c10e0 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x49b2bf44 xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x49b6aabc __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x49e3a774 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x49f73a2c xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x4a027138 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x4a04a28d ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0x4a0f8571 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x4a24731c regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x4a352d98 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x4a3b5b80 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x4a790e7f kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x4a8fdcd7 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ab2fc7d regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4b2b26e9 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x4b44eac9 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x4b4e8da0 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x4b840dfd probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x4b89a579 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x4ba9262a use_mm +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bca2411 __online_page_free +EXPORT_SYMBOL_GPL vmlinux 0x4bd92861 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x4bda8bac bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4c019ce2 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x4c1b145f dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x4c43c65a sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c8927c8 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4c8daaac evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x4cae8fec ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x4ce8a6c4 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x4ced32b3 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x4d07eff1 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x4d4f20ac crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x4d69bbdf wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x4d9e095b rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x4da02c56 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x4db7a811 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x4dc53d5d pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x4dff96e6 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x4e08ccc4 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x4e0c1723 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e6075f8 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x4e66180b bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x4e6693ef device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4e66bab3 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4e69a56b ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x4eb86825 blkio_alloc_blkg_stats +EXPORT_SYMBOL_GPL vmlinux 0x4ebbb7b7 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x4ecf4273 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f000d2b sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x4f1ccf7d dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f6d6fe0 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fa0897c pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe52621 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x5013e6de pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x50660c66 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x50821f4c led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x5098b121 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x51212c02 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x51428b4b mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x5198860e security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x51afb685 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x51d18303 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x52272089 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x5275e77c pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x528850ea restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x52ac9419 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x52d5e6d4 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x52d7b390 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x53041de8 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5361eb14 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x5365b101 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5374e0c3 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x53807e7a synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5399a5a8 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x539bd8d6 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53c8a8fe blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x53d62463 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x53eeb9aa usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x53fda239 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x54241b27 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x545b0ac5 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5463f273 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x54696cf6 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54c42371 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x54c9b2fa led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x54e359cc __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x54fc8c4c ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x5504e66d blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x550bb2ff nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x5510f2ef ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x552567c0 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x553746fe xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x554e06d3 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x55600dda fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x55cac4cd irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x55ccf489 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x55d834c7 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x55ec5139 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x560fbc8f gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5654f836 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56c5be50 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e7a5cf platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x574fb0fb xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x5755cfe5 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x5756c07c usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x57689dda tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x5799cc1f ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57c4691b queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x57ec2d0a unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x57f0d229 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x581051c7 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x582b9cad sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x58338c6e ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x586c2abf fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x587c917a rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x587d6744 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x58eba720 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x58f057d6 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5941d228 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x5955b892 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x5969dc72 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x59754ebc register_mce_write_callback +EXPORT_SYMBOL_GPL vmlinux 0x598ac721 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x59904463 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a441ebd efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a48fba2 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5ac2727f smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5b9353d5 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x5b978191 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x5bebb4bd crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x5bf33c80 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5bfe951f crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x5c1830af ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x5c1aeeed inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x5c49cf3a rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x5c738783 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x5cb52162 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x5cc1c9aa swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x5cdf346c cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x5d149aee __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x5d17d0b1 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5da55f91 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x5daab758 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x5e2ec635 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x5e35bde4 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x5e55dcbb unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x5e72420a sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5eaed1ca tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5ec6130d vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x5f0149e5 dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x5f06d4d8 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f64eeaf dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x5f7b5638 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x5f7bb8ae spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x5fdfdba7 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x602ed2e3 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x60454dba ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x60495226 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x605a5cca ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x606689e0 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x6066f633 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x60686e3f debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x609d963c m2p_add_override +EXPORT_SYMBOL_GPL vmlinux 0x609ed66f __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60cd9da3 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x60ce123d ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x60cebb3d rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x60e2722e pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x60efe476 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x613ab5af scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x61859f98 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x61954dd7 edac_class +EXPORT_SYMBOL_GPL vmlinux 0x61ce014b bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x62012a88 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x6212a4f2 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x624e0e9a shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x62bb508c locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x62c22e01 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x62df2c11 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x62f7a6ca sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x62f9bf6d netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x6300a90e ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x632aafe1 usb_is_intel_switchable_xhci +EXPORT_SYMBOL_GPL vmlinux 0x63438a9f ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x6347ee72 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x6349e7f0 ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0x6358af59 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63c3ff71 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x63c7d7c3 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x64129761 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x641f6797 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x64bec3a7 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x64cf2515 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x64de07d0 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x64e8da0a irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x650133c2 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x652b4eb6 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x652e481e inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x653c55b7 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x65859ed5 __online_page_set_limits +EXPORT_SYMBOL_GPL vmlinux 0x65af6abd anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x65b899e7 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65c600c6 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d17b00 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6637c043 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x6683cddb __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6688addb pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66b69080 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e79f46 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x6727da12 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x673a1863 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x673f1325 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x6746daef blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x674a6a26 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x6772239c inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x6772a6b1 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x677a08fd scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x678dbd09 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67b62d99 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x67cfeb8f ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x684c0ed0 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68a995bf udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x68f3bb3b __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x690699d3 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x69073a0d sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x690a4ff7 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x696a428c security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69c516dd stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x69c8524b bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x69ccad39 dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a351d0b ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x6a424d93 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x6a595427 inode_dio_wait +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6aa548e2 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x6ab578a6 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6ad2d082 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x6ad9a291 blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x6b06e0e5 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b56ccf7 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6ba8164e ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x6be5458f class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x6beacc23 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x6bee48f0 xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c2058bb pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c6caddd virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x6c7061b2 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x6c783b1e ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6cc6c1b7 xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x6cd178e0 tpm_continue_selftest +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3f3829 input_class +EXPORT_SYMBOL_GPL vmlinux 0x6d58c145 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x6dd3a878 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x6dd48328 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x6de885dc ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0x6df75940 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e7c357c rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x6e8ca4f4 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x6ea98361 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x6ebc129a usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x6ec10c26 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x6ecd2119 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x6eec6b49 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x6ef0086e dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0x6efa6e47 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x6f14c1c3 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f31f658 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x6f3a4126 __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x6f5d3a40 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x6f650391 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x6f747eb5 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x6fa4cf38 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x6fcd8d95 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ff70730 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x704c7b85 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x706bee9a tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70ad3fc6 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x70c4cadd __online_page_increment_counters +EXPORT_SYMBOL_GPL vmlinux 0x70c6060f shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70facdc6 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x712960fb debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7176ddae pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x7187627e __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x71b45626 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71e09670 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x71ee2a1e usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x71f9e382 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x722fcfeb crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x72454652 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72a35c2a wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x72b51c10 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x72ed9f07 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x7316f7db kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x736f023b led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x73a0d982 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c73656 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x74103d7e ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x742651c5 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x744383e1 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452549c register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x745eb129 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x747b08a8 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x747dcd70 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74ae0bcf inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74c87c76 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x74ce0757 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74e00c40 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x75056061 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x75292496 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x758fcda7 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x75b20f59 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x75e1d842 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x75e81273 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75f64b88 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x761282af usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x764d175d usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x76648f4d ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x76b31b03 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x76d40460 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x77e6f45a skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x77eb635e i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x77f42878 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x7812554e alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x78234432 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x7893ae4e adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x78aaace6 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x78b0252d cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x78f442b9 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x78fc1f12 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x78fdfee9 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79550551 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x7970cc78 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x797f0542 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x7997ff18 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x79ca8d4b do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x79d49732 device_add +EXPORT_SYMBOL_GPL vmlinux 0x79db9ada __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x7a0cd94a dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x7a705c8b __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175 amd_erratum_383 +EXPORT_SYMBOL_GPL vmlinux 0x7a88059b ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x7abfb6f7 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b372225 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x7b69acce dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x7b6ac3e9 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x7b7ec52e acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7b957bb8 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7bb7ae30 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x7bce10a7 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x7bd87cb3 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7c068713 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x7c0700a1 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x7c21233a debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x7c342867 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x7c77af0d xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x7c83715a transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x7cacbe9b __module_address +EXPORT_SYMBOL_GPL vmlinux 0x7cb6c23c mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x7cb81452 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x7cba0fb0 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x7ce91e9d init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ceeaea3 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x7d155f9a __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d96b3ff mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7db72cd7 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e03ded4 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e1ecdc5 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e5e301f unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7eb72710 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ef31808 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x7f05ad81 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x7f25c5a6 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x7f333969 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x7f8104fa sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x7f8ebd42 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x7fb79250 iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x7fbadd7e bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x805e7069 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x807fbe64 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x8083867b adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x809d7d19 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x80bba9fe ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x80c39fa8 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x80da1c1c xenbus_dev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x80e12a51 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x80e17d36 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x80ea02da tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x80f61e18 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x80f92692 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x810795f2 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x8121be9a device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x814326ee m2p_remove_override +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8152f466 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x817371d9 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x81c3b7df fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x822fca67 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x824db172 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8257862e crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x826dd862 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x827bc061 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82ba0bf1 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbb44f usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82ed901a shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x82f71944 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x8319b0c9 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83b424c3 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x83c39074 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x83ce82eb get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x84092a8f transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x84538131 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x84cffcb2 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850c1789 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x854dea97 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x8565420e blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x8575a844 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x85847cbc inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x8592befb blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x859aea9a xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x85ae83a7 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x85b20db2 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85f3df86 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x86004879 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x8628bcdc ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x862f98a3 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0x8636f80a preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86adc639 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x86c065a4 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x86dc5a5e devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x86f0283f xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x871aafeb usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x874e1cfc irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x8760fcc7 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87799a59 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x87bef57a pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x87fa61e1 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x88014e26 usb_enable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x882f9f33 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x882fd3b0 blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x88789e21 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x88900992 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x889e62c8 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x89044604 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89344170 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x89629aa3 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0x8974c1ac regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x899636c1 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x89d59e3d inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x89ff43f6 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x8a04e8a3 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x8a0a9449 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0x8a14e53a __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x8a175c07 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x8a240ad5 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8a298905 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x8a2dddc4 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x8a57e198 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a63bf7a gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x8a709738 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a7d5c87 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x8a855b74 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8aeea548 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x8afc737e max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x8b02277c free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8b3f065a bsg_goose_queue +EXPORT_SYMBOL_GPL vmlinux 0x8b598f50 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b68ce9f usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b7b9ea3 ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x8b869f0c __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8ba18c8b kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x8bc3a26d ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c9813d5 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8cf5934f cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x8d018a6e ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x8d7a8845 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x8da6b475 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x8db8aad0 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x8e164056 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x8e4d37e8 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x8e851029 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x8e9b0875 xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x8ebeda58 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x8ec3252b tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x8ed3c1ef usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x8eda2311 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f1452f4 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x8f153cba dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8f181c86 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x8f18d463 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f294417 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x8f29654a crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8f4bb00b rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x8f59bc1e put_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f9050e6 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x8feb9dbb ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0x8ffc8371 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x9003aa50 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x900a713e inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x90136741 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x906c15d7 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x908547bf sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a36b40 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x90a761fe relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x90affcfd set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x90b0a7de ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x90b85112 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x90d6ed44 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x90ddaa9e device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x90ecadf1 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x912ea78f ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9137956c da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x9138efa9 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9188744a usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91e207c2 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x91fa5c8b inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x920e8f2e __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x92121c10 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x921f1df8 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x922e89d3 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x92ccf1a5 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x93058e53 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x934bdf3e css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x93690952 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x937665a2 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x939c9593 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x93b7f984 xen_swiotlb_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x93bd4386 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e3d95b ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x93e74e3a con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x9417bb90 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94208f9b fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x94835279 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x94976d36 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x94986b0a proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x949b29d6 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94ac122c i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94cff549 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x94e1850f ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x95166817 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x9517f62c trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x954a8477 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x955fd5f6 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x957b9f89 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x9593fc73 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x959f371c fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x95df0bbf blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x963363d2 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x96566944 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x966d511b xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x966eaac9 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x969214e8 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x96b57398 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96ed198d led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x96f50860 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x96fbf651 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x9725370d pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x97628db9 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x97a23a96 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x97a8d11c xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x97e5a805 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x9819393c __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x98328ff4 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x984a8460 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9855deb4 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x98768e84 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x987fc9d3 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x989ee353 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98ceef06 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x98d7b138 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0x98ff6ad8 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x990335c7 usb_usual_ignore_device +EXPORT_SYMBOL_GPL vmlinux 0x99050680 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x9916cac8 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x992d0e1b usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x9957df75 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x99cdd488 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x99edbd02 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x9a073f3a platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9a5e0487 put_device +EXPORT_SYMBOL_GPL vmlinux 0x9a8305a7 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x9ab6f2f6 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b4936fa handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x9b624c07 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bb038a8 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x9bbca6ad xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x9bea1d78 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9c3c4175 xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x9c3d5b73 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x9c5d1b73 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x9c604360 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x9c81ffa6 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x9c97c66a sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x9ca9dd3a xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cd72220 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d9e155d pv_info +EXPORT_SYMBOL_GPL vmlinux 0x9e05557f device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x9e095313 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x9e328452 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x9e4a1823 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x9e4aaa5b input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x9e4f1cfb ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x9e7f1f5e tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x9e85fdb6 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x9ec2984d crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x9ed3143c leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9edea017 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x9f022d81 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f46259a vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x9f5dd3ad gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0x9f6ded61 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe50efa get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xa012b6e7 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xa053146d rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xa061985d perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xa073abf4 set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xa0762918 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xa09ee531 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xa0b0735a tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xa0b3c13d usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xa0ba4a64 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa14a5a9f led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa16b8248 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xa1832289 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xa18676fe wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa187eeb6 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa19ffe82 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xa1a5af3c pstore_write +EXPORT_SYMBOL_GPL vmlinux 0xa1b4eb92 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa1d290fe init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xa1ddf303 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xa2044b5c sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa20ab29b unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xa23352a0 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xa2a44582 user_read +EXPORT_SYMBOL_GPL vmlinux 0xa2b6cbbe crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa2e3d99b stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa377b316 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa3af2366 find_module +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3e8d50f adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xa406a500 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa4319d8a mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4ca0d4e unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa500254f stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xa5265fc8 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa5368229 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xa5468dce xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa548eae9 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xa55f612f pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xa59cbaf8 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xa5afdbc6 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xa5b28fb6 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa5cdeda8 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0xa5d24511 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5fd856a usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa60b2d08 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xa610ae22 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa649e293 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0xa67557fc sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xa69f80ae wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa6bdc16a sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xa71d8731 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa722a819 cpu_has_amd_erratum +EXPORT_SYMBOL_GPL vmlinux 0xa725abf3 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xa771eb70 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0xa77c2745 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xa7832cad rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xa783d9ce platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xa7ddc2b0 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa7fd51b3 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa8214fa4 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xa828ac48 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xa82d9a4c sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xa84140d6 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xa841b09a i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa88b42e6 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xa8a7df8b ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa8fc7dd7 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa9916cdd user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa99b50fe inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xa99e3fcb debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xa9a420e8 __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0xa9b10f83 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9cd61f7 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xa9d6bed6 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xa9fa4e01 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0xa9fa7c57 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xaa26c88a klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xaa3f13f7 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa5e60dd virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xaa6e9de6 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xaa7f70ab dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xaa852c93 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaae65d60 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xaaee05cf dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xaaef1464 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xaaf5a9ac ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab140c53 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0xab148d24 ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0xab50037e ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xab5fed73 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab8b8bf3 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xabc83a5f devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xabdfebe6 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xac4d2720 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0xac5c1ce9 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xaca379d5 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xacac2280 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacc7ebe0 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xaccaefa2 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xad0995fa uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xad2763c6 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xad5bd140 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad690425 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xad7b4c4c sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadafa61e rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadc881b8 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xadd82d28 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae0915d1 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xae0980e7 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae11a9d4 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xae2238be transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xae27b516 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xae4c45d9 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae8ad525 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xae988146 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xaebc006c regcache_read +EXPORT_SYMBOL_GPL vmlinux 0xaee42aa1 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xaeea3073 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xaeecc9c2 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xaef50bf2 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xaf01fa92 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xaf0fee7a xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0xaf1d35c6 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xaf2e178c clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL vmlinux 0xaf8e843b __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0xafcc6254 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xafd28db7 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xafdbe7b6 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xb00a8f58 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xb0198d12 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xb0480177 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb057ed1f ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xb06efb65 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xb091aa0b i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xb0ae5977 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0d08bad tpm_read +EXPORT_SYMBOL_GPL vmlinux 0xb0d56047 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xb0d9c2de xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb11cb2b0 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb129a82c blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xb13b1601 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb14d570f blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xb171a25a page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1d2888d pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xb20843ae spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xb239218f scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xb280d8eb platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xb29ee8d6 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xb2b009b4 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xb2ce6c1d ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb3026de3 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb307a73e relay_close +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3a0ee30 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xb3ba46e4 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3dcf4bf device_del +EXPORT_SYMBOL_GPL vmlinux 0xb3e8908f ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xb41128ff __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xb44b277c pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xb46ccd4e sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xb4759adc stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xb4bf4ef8 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xb4caf905 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb54df66c usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xb562f919 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb5762a50 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xb587d9b9 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb58e574f xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xb5992583 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xb5a14d8b usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xb5e219c7 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6143760 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xb617c315 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb64b0904 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xb66ef54f crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xb681f8a3 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xb6907f78 pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c01b5d tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0xb6cd43df screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xb6d3112f xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0xb6d9d6ea ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xb6fc51b0 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb72547af hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xb73818e9 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xb75f45c7 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xb7a73ac8 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xb7bbf38f relay_open +EXPORT_SYMBOL_GPL vmlinux 0xb7c81cab sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xb7ceaebf ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xb7d07a80 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7f4e553 erst_read +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb82efa8e usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xb84da6d1 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xb84f9893 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb86f879e __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xb8851b98 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xb89f16f1 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb8db9e2f rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xb8df97e6 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xb8f5c97e sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb95df8d6 register_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xb98c5c35 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b81361 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9ce3a1a usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9d4605c pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xb9edb2cb __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xba3b6d23 xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0xba865de5 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xba899d5c pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbab754dd device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xbaccfba7 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xbace04c7 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb06943c rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb128381 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xbb212337 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xbb23a6bd iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbc3a968 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xbc0dcddb cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xbc2d9d7c ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xbc456407 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xbc61d96e tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xbc6e9821 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xbc6f931b workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xbc7673d0 cred_real_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbccb7b79 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcefe204 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xbcf4c256 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd62f4c6 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xbd758a26 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xbdcf31a6 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbdd63a6f fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xbdfd0046 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xbe0ba869 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe0c0421 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe2876c9 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xbe5bf830 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xbed20d9a __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xbedc3a50 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xbef9f7f2 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xbf9a4161 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfc0361e inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbfc1d85a usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfd81722 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xbff11254 user_match +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc0157f9c pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xc02749f5 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xc03ab504 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xc046385f register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xc04d60f3 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0900fcf acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar +EXPORT_SYMBOL_GPL vmlinux 0xc14c2824 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1b0798c __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xc1d119c6 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc1d14716 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xc1f7d390 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc2326b86 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2830c7f blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc2897f26 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc294403f crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xc29dc7a2 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc2d65bbf hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc2d926e8 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc2dbb8b8 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2dfb2c4 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xc2e90f07 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xc2eb0345 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xc2fbf73d tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc352a1a6 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc3736db8 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xc38cd6e5 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc39df666 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xc3c5636f ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xc4027d23 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc4037d6a class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4c96f2d __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc4f3e889 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xc50d7a58 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc538fe82 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc541868c ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc556bc26 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0xc5a3c09a ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5 amd_erratum_400 +EXPORT_SYMBOL_GPL vmlinux 0xc5e23920 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc61a33f1 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xc63e731e virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc6b74763 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xc6cf575e md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0xc71606ad register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xc72a31fd pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc74f70f1 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xc7752f7e agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xc797d467 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc802ddfa da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc83022cb regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xc8692f99 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc898331d ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8adf089 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xc8b193a8 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc912931d pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xc919cb78 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xc91fc300 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xc92e3982 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xc934b001 xen_swiotlb_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0xc9369896 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xc93c94c3 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9578dc0 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xc9b6d672 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xc9b96339 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9c8de8f usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca1eaff4 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xca33288e inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca8338e6 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcaca869e ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xcb1f5210 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xcb3a3547 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0xcb4535ee queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xcb4cddb4 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xcb58ffd0 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xcb89ab24 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0xcbd0530f xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xcbec849d get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbee9ca0 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0xcbf67386 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xcbf9aa92 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcc02f1fd debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc2e2f7c kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xcc3da32d aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc832588 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0xcc8d9b84 get_device +EXPORT_SYMBOL_GPL vmlinux 0xccb0ea52 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xcccc1449 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd28e669 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xcd6b0b90 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xcd6f3053 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0xcd9b331e ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xcdae2251 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xcdb1e644 device_register +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce73ac7b ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xceab5920 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xcee22e72 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xcee61c2f proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xcefaa878 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xcf232501 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xcf3d9c7e cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xcf46799d dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xcfb5871c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfdcb9c5 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xcfdd63e2 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd04392d1 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd045b061 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xd05dc2a3 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xd06cde72 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xd073aa24 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd085b3ab blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0xd08ad900 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xd0a6e55a da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xd0a7c3a9 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0cb1b81 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd11e08a7 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xd13b10d2 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1a43678 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd278967a xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xd28654d9 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xd2964551 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2ca5995 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xd2dd9860 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xd2ea8fde crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xd2eafc7b bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xd2efd69c vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xd3061b72 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xd32b9ad0 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd350495a dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xd353ebbe root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd3566b1f save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xd36786a8 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd3c8f8d4 rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xd3cf3e62 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xd3d2903f rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd4022860 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd44f6123 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xd4bffecd dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4cd4e96 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xd4dc5537 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xd4f76ad3 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xd4f8d026 xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xd516f50c spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xd53bc067 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd5675f60 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xd58dcbd5 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5f28e72 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xd5fc75b3 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL vmlinux 0xd608fc0e pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xd62f804f rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xd6703a8c tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd678d8a0 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd67b4750 xv_malloc +EXPORT_SYMBOL_GPL vmlinux 0xd67b7791 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xd6aa9b27 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xd6b4504e ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xd6dc6866 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd71075bc anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xd719e232 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xd71ec81f virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd734f798 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xd748b8ef devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd79517d7 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL vmlinux 0xd7a6b38a __class_create +EXPORT_SYMBOL_GPL vmlinux 0xd7d705da usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7f3e4ca sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd82e3bff ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xd83667c8 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd8646264 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd8956eff sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd89bd21b inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xd8a238de hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd8f7ef3c n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd9370a1e pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xd93e76a6 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0xd9588282 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xd99121ea ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xd99f124c pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xd9a7ca96 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xd9db027d find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xd9e06835 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9ee7c9f uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda2771ff scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xda36589b pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xda4f3923 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xda5ccd32 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xda7bb8cd regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xdab8a8e1 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xdac09ef3 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb0f5e0b crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xdb2323e1 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb6c5bad blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xdb7bcdb8 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xdb9fa6f0 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xdba5676a perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdc71966c cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc8b84b6 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdcadcf28 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xdcce311a task_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdce851cd sigset_from_compat +EXPORT_SYMBOL_GPL vmlinux 0xdcedcf3d shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xdd2cb847 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd70b8ab attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xdd76d33a ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdddb8da0 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xde315bde __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde4e19ba klist_next +EXPORT_SYMBOL_GPL vmlinux 0xde689816 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0xde84a537 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xdea4adc6 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xdea738a4 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xdf194549 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xdf2616fb nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xdf2de7b4 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xdf67bc4b bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xdf982ce3 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xdfb63c54 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xdfcec82f vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe04f75bd sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0932bee watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe098c090 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0d5eb5b xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe1397a16 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe153a50c crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xe19c40d3 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xe19ccfef posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0xe1ad71db sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xe1b792fb device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe1fd2c8d bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xe21ed03f regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a0f5de tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe2ae3097 xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe2cee1ca dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe37567cc usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xe37ab4df ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3ae47d3 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xe3b93057 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3c2333b inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xe3c57948 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xe3d81128 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0xe3f73988 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xe3fa3acf tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0xe3fb5105 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe43678dd dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe44c386b usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xe4830a0f tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xe4975441 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xe4b56250 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xe4e2d9ed scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xe542aec0 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xe5530a6d regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xe5721798 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe588764e wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xe589576a sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5945d87 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xe5ad2b56 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xe5de347f rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xe5ea6ea3 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xe5f119cc ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe5f932aa hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xe60bc198 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe6269351 kick_process +EXPORT_SYMBOL_GPL vmlinux 0xe6348ae1 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe66b5eb9 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xe69dcd65 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0xe6c6dc0a tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6f06590 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0xe701ac0c debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe73dfe24 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xe73e54f4 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe73f163d inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xe745c483 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xe76abe08 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xe78c202d bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe79b2f22 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xe7cfb0e7 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xe7d3daa1 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xe7e69fa4 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe81cea21 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8858d84 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xe89bd243 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe8d26571 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9641159 md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0xe9654849 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe97bb54a find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xe994ae1c dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xe9f5d57b class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xea03284b ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xeaa71cd7 init_fpu +EXPORT_SYMBOL_GPL vmlinux 0xeaae7f4b __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xeacdaa8b i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xeadf816e klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb3390ca ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xeb370805 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xeba745e1 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xebf0d606 apic +EXPORT_SYMBOL_GPL vmlinux 0xec0996f7 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec33f493 user_update +EXPORT_SYMBOL_GPL vmlinux 0xec378a7f rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0xec5c98aa pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xec9c4a2a fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xecfd922e pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xed1df1ad ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xed808b9c xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xee16b0ab fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xee3478cd ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xee822c76 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xeea1b48d driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xeeef9d21 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xef1a762d regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef5b725c __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef713ab8 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xefce5e4e scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xeff0051d hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xeffb5804 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xf03a1aa1 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xf03a519b gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xf055ee5a gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0xf067907c usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf06f0002 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xf0920de9 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf0a18088 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xf0d718e8 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xf11e398c pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0xf1203636 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0xf121aa4c ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xf12779f9 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xf1649e22 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1897349 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1eb70dc crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xf232fddb __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xf23ab17b inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xf2862f86 blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0xf2bd6339 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xf2ceb888 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf2f7a08c usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf2ffe791 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xf3055414 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf3238d91 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf34d0131 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xf37c4132 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xf39a1d19 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xf3a68daf ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf3ec9688 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xf44ea3ca spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf497fb77 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4b04b16 tps65910_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xf4b6be82 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xf4c981e0 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xf4f4b421 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf51537f1 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xf51c2189 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5ba4003 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xf5c32270 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xf5eac914 regcache_write +EXPORT_SYMBOL_GPL vmlinux 0xf5eea80f filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xf6293d11 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xf644dd11 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xf64a9c00 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xf668da90 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xf6748423 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xf6c7f15f usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6fcd9a3 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf72528b6 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0xf72f8e3a ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xf7322bc8 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0xf735c56f hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xf75a7a62 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xf76219ca ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xf77f6c1d zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xf79965c5 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7aa6ae4 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xf8043f3b sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xf8706bb0 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8a38675 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xf8a83e29 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xf8a86620 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xf8c9f8d3 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf9619ca1 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xf9711f71 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf9873e95 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xf988da77 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory +EXPORT_SYMBOL_GPL vmlinux 0xf999ba61 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d25186 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa2a9c9b stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xfa3ffa5f part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xfa4509f5 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0xfa4a647e klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xfa6487b9 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xfa7d340d sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xfa82444c device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xfa880c54 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xfa9a81b2 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xfaa0ceed skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xfac6f3f1 tps65910_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfafe0694 device_create +EXPORT_SYMBOL_GPL vmlinux 0xfb17dec1 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb63da71 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb7884b5 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfbd2d8fe __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xfbe99224 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc019f98 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xfc1cfd1c tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc5ea807 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xfc7427d4 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xfc814964 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcc13e5b noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xfcc95e12 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfce57904 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xfce9044b dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xfceeb2af register_efivars +EXPORT_SYMBOL_GPL vmlinux 0xfd1989d9 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xfd40ecd6 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd56a7b1 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xfd66f0a4 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd8e218d shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xfdb107d7 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xfdcb27d5 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdf8aa72 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0xfe2af353 mmput +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfea48b5a __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfee7bef4 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff088f89 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0xff4d7784 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xff5560c0 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff9ac3eb ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xfff7f1e6 unregister_ftrace_event --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/amd64/generic.compiler +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/amd64/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/amd64/virtual.compiler +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/amd64/virtual.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/powerpc/powerpc-smp.compiler +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/powerpc/powerpc-smp.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/powerpc/powerpc64-smp.compiler +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/powerpc/powerpc64-smp.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/powerpc/powerpc-smp +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/powerpc/powerpc-smp @@ -0,0 +1,11809 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0xc16221e6 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x275405ce uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0xfcd67d2e bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x5c165453 drbd_set_st_err_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 0x10a2131b pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x29f1b1c2 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x37b56cba pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x5446d287 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x65039628 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x6cc971af pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x967f1396 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xa17625b8 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xa9e3fb23 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xc0d154cd pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xdfc0178f pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xe2eb9895 pi_release +EXPORT_SYMBOL drivers/char/apm-emulation 0x129e74f2 apm_get_power_status +EXPORT_SYMBOL drivers/char/apm-emulation 0xdf3329b8 apm_queue_event +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x07ee2c38 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x27337e85 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x51a9fab4 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x749ec752 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x94902d27 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL drivers/edac/edac_core 0x8d779669 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xa969789d edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xfb43890f edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04c8dd28 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04fe14ae fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x18caf272 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1bcc56f5 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1f1d1948 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x21f3dc6e fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x27a0917c fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x347f64ff fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x58ec8c66 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5a2fc613 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5bd6bfe2 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x60aced2b fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6a31e724 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6b4a9112 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x71b268b3 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x92fd02a7 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x972501b8 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa8b43585 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb517cbd8 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbb7fd572 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbe7c716b fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe155cd44 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe8cc5538 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfe2101c2 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfe9bc661 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00db8a8a drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01d0c568 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0271bc4a drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x035d6911 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04af1a05 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07498c7d drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x076bccf1 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0983aa93 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09ceab29 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a46c459 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x148bb5d4 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x164c9c6c drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1777487d drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a22aacd drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1bccdf4c drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dd21407 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e791a28 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20ed923e drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2204f7b6 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27838b0a drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28ea2fa4 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a483f55 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a8d844f drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ae0a119 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2aeb4a29 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b3b5dee drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2bf90d6a drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x301b8d1c drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x314b6493 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3231ea19 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33747834 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33e154ba drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3453f883 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3923555e drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39552544 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40e57843 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40f75ffd drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4197e469 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41e2a1bc drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c9a91c drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4477f65f drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46e2a583 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4881a99a drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x497d2b71 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b65545b drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c744492 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e96cedf drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ebd7823 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ec08b3a drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f0f034c drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x527481e2 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5375a396 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x555a010d drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x560d0ff1 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56ca8776 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5779467f drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58c29932 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59700f1b drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5adf834b drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f5091e3 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f6cbc33 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6044956f drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x612b1ac3 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62315281 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x672a77b4 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68fa6c94 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b325e4c drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b35a602 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b400f66 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b4042a7 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7008e07a drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71effac3 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75ddfa4b drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77a7052b drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a199d02 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7cb26d39 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d4cc294 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d8fe09a drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f21b749 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80dbdab6 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82ce4e60 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84926519 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86bebac9 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89618e32 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a2a14d7 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a3b183c drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b269666 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c5ace0e drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d63f015 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fd8f336 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90c1bbb5 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9125590e drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9294b6ae drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92f2d102 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x932df43d drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x954a17b1 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9612ac72 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99f91de4 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b402ae6 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b8b62a6 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dc25a34 drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ef6d633 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa01002c4 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa237e931 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4f5afdc drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa62c800b drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6a78f70 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa78e4372 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7984573 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7a802f0 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacafe6eb drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafbdcfe1 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb002a94a drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0ee06c1 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb60b3c9c drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb62b9795 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7b9d46c drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbd23b34 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc3731b5 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001e27 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1221a6a drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc228ff09 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3353dce drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6f5cb8d drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7ec1d70 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8b20db6 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc900d3d9 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9ca954a drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc4e5474 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc646173 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0e4ed12 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1528b50 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd18841b7 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd29ecb9d drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd431287e drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd542e8cc drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5da3463 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7f1ab84 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd85a1454 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda5837de drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd3f4864 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdef4ec98 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0dbdc4c drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1ab1736 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe256edfd drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2b879f8 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3553657 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3bb7cae drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3f2dbc3 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe50c795d drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6403777 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb1b7aec drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed256cae drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0xedc82887 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeec92d5e drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefd8ef04 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0a0bf79 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2c66f4b drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf45de73f drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf600dfe1 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8043dee drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8ee460b drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc4f8599 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfddbd91a drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x060a4207 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2027312e drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x29686315 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4794a36a drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4c1a9969 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4c939108 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x51603521 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5629092f drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x68479868 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75da7838 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7d085607 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f7a6ad1 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x800808ce drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x821a3db5 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x863eeb0b drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x864d24d4 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8e408bdf drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa5b65e4c drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb808fb94 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc1a274bd drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2079b18 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc4299749 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd730ba2a drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd77eacb9 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe7583669 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf35b9afc i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf768440f drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf7ab5983 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfbc94f11 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfea6aca5 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xffc736e4 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x05278cdb ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x145e6a73 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x16232591 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a7ee85d ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d7deb5d ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d89df73 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x20c42db8 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25392771 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2ad42168 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2d2e974b ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x30031964 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34c3ec9f ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x379119e0 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fd155ed ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4287bab7 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4532e7a3 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b23c937 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4c84afd3 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x58156ea9 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5e9bacbb ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66078c0d ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6697f687 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6b7102fd ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x73507d9e ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7dcb1e64 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85046a5a ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85477881 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8832162b ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8fa72aa7 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x940438e7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x955e718b ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98897203 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9a486870 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b2be07d ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d06ced6 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9f5f263e ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa068577d ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa1462f58 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa531d452 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab79a549 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac843717 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb280dc50 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb6d90881 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb70484eb ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb89a6829 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xba823943 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc81ab22d ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd2fa68e6 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd60e035d ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd6ee90a0 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdae05e12 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf1821674 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfba9ea51 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x72df5557 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xf34c98b3 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x76e2189a amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x37838b44 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xa8f6808f rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xf0e4faf8 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0341da47 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x035dc814 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0829f3c4 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0b0fc4cd ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0b349885 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x20d31605 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x20e18659 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x243ec02d ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x35e2178f ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x45c06e3e ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6c699d4a ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7320a8c7 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7c7d0f0a ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8c0d9411 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xad7f08de ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb4075b58 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcfd6da1d ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0254d474 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10c6cd15 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1180fb86 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x125d954f ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12a8b067 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14a454a2 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1755c7aa ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17b751ff ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20fa4655 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x284622bd ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e5b7bb4 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f94c5b5 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2fd548f0 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3066f6dc ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3cbe81b6 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ea7c07b ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ecb1d0a ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3edd5c67 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4070a62a ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4072aa9b ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40d1aaa4 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x41ac1387 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x43978796 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x43dc5bf1 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4698d48c ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46bd10b3 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4941dcdd ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53dcf8d0 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x544f6cf7 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x580d1318 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x597ee1cf ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b2c0074 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d424370 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x626d3129 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x63a85473 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x71a4cdeb ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74a6a47a ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7a718b56 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x825add1e ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8344d24d ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bc5a7a6 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8cfac145 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x93d0a053 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x986096e9 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9870497f ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa25204ba ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3768680 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa7a27aac ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa89736fe ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf0d5de8 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb2d0318b ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3419941 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7008da1 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb95398f5 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe9b6e38 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2823a13 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcafcf1f0 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcbe30fe9 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd80fa58 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4a98895 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd77ed550 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7dd1e52 ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdae399b5 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec96f3da ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xed62ba0d ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf211f3bc ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2553847 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf37e50e9 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf43ebb46 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6284d92 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa4007cc ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfeb71406 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfffe1fca ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x18372fc7 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2d6f254a ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x33a3c5fd ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x62fa15c2 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6936e9f4 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6a7d8c71 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6b2e9641 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7848dac6 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8b92443a ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9997d478 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa2cd590d ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf865136d ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2870bfb0 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5d703a24 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6e640f28 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa1526680 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xceb203b8 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe66028bf ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2e68bae3 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x33dd0f67 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x44572c34 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x52d991d0 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x52e39257 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x93f0a4ce iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xccb6289d iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xede18c76 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x15b0a264 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x197e5c01 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2f064ea7 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x35d1bad8 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4f146ba3 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5cd036e8 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5d29f022 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6b88adbc rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x70a0f428 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x79605012 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa1ada51e rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa8281ec0 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb951e034 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xba8124a2 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdeb87a85 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe0c0ad95 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xee90084e rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf9945349 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfa8246f1 rdma_set_ib_paths +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0c3c5880 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x24505f45 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x61f187f3 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x84b1e759 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x88aa16c5 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9227d36f gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa86ca640 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc1d79bd4 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc28c9d42 gameport_unregister_port +EXPORT_SYMBOL drivers/input/input-polldev 0x085e19d9 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x916cb5d9 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xcd97e651 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xe2be6da9 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x576b3990 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x591256ac ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xcd8a1359 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd9fedaa5 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x68a86bb5 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/sparse-keymap 0x451e1cf5 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4ed592f7 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x756decfa sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb30339a5 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xbe51b280 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xc76392b9 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbc9dc160 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xd7a3b821 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf3bd1692 ad7879_resume +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x39597a0c capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3d182865 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6f22896f capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x85b6ebeb capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8e3ddc41 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa156d893 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xadac8f89 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xcd86b04f capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe583b0b5 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf31c30a7 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x663d14fa b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x672f69dc b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6831dce6 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6a7da55a b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x809fc150 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x83154b92 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x850f4eac avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9c85def9 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xab28390a avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb6aefad9 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd876f417 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe281b292 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xebe051de b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf1289f8a b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf1aecf29 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x15947df4 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5381b53b b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x55f052db b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x60a98e7d b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8557984b b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb71aa9b0 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc2c2f040 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd2880d18 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xfaad5ac7 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x0a9872c2 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x34e3859e mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x391d4942 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xc0d59dc2 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xcaf918e3 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x5d4119bd mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xa2f8e04a mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf423dfb8 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x11a8542d isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x19003a81 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x35bce8e0 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xed9b2c75 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xfd1c76c0 isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x0084f8b9 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x43b863a2 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x541c133c register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0273f91f get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0b27283e queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0f06c474 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1d663bc0 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2369e00c confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x27be48a9 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x39c69c7d mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3d1437ec mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x44a79e27 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x512b39b6 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5cec68c7 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5fc196bb recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x67d7f9a2 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6c5b5546 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x752c1fd8 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7c4c0a64 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x88ff81e4 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xac22c663 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbba21a68 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd359dc48 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd718f680 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x2fb9f56a dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xa039bea5 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xa453c1ab dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xa6a46127 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x4a5d1574 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6e5a2b76 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x81d76aff dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xaab1529b dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xacb39b01 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe617837e dm_exception_store_create +EXPORT_SYMBOL drivers/md/raid456 0x9b512668 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xdf5dcd6b max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xa62454e7 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xb6571f4e mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x90732008 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0xc6e77d80 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xf66cd4ba mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x3a425800 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18212 0x5020c953 tda18212_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0x5fc58c4e tda18218_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x17cfa071 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc4000 0xcfc4885f xc4000_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x0288bf32 xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x17adc8bd flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1f7fd039 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2827e111 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3842c3b0 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x448d18b9 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4d9c6ae1 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5275bbe4 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x52d23ec7 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x64b0ccf7 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x685a2553 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x91655fc4 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9202aa68 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x92371c6b flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9829e3fd flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xafb5fad8 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbb842530 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcd902b4b flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe8b20276 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xef6e87b5 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfdacea94 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x0e065f8a bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x82eace97 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x89d85f31 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xc0f76ef8 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x26618596 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x32bca00c dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5a3f0027 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6fb42c37 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x74be4150 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x83061dff write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa1d7bb90 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb892f239 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf78beaf3 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x9256ae0e dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x077dc9f0 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x10c37df1 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x17f8dbf6 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x190ef884 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x19591134 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x22d6ce4a dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2441f609 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x28ee2ae8 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x351ebe72 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x35d11976 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x37d53739 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3b137a4c dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3f7224d5 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x40a75d88 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4d3b9a9c dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5518e570 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5df6b7bd dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x629d9992 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6d51f3fb dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x70be6009 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x78d62338 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7ba5d8bd dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8e47dce5 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9c17293b dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa096d5d8 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa6f110b2 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xaf30a2e9 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb157c781 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcb8f7492 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd6fc7ba2 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdb576668 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdeee9881 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe24ccafc dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf1894107 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0d1dfb3e dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x1a25b44e dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa1b653da dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa381dfcb dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa6c70afc dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xeda876ba usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf3d30038 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xe78f2959 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0c96e550 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2fa16706 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8fb6dc9a dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa289e92e dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc0e4a357 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc63243fe dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xcb62e3b8 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xda51fca7 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xddd773f9 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdf8656a5 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xef655c49 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/frontends/a8293 0x46a4e11b a8293_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x5e96df2a af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x331f4f24 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x67543335 au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x0f6ec204 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x6e9d3a76 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x4b4c1932 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x213257e8 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xb66001a5 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xd46c5f44 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x92b23f2a cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x05c6eb32 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x74960745 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cxd2820r 0x70d86538 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x04d9923e dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x1a024a80 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x34b430d0 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xa2337760 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xdedcae82 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x09d0bf72 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x20aab97f dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x35d728b5 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3fccdfa6 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x64172db6 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x668c6968 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8507f0ba dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc395994e dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe884b970 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xe0588ed7 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2562f1cd dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xbf88d319 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd96bf7bf dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xe0121b56 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf694a98c dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xff1c0dc3 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x0fe7d647 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x118140d4 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x608d7b68 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x847d86b6 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x05b6ed23 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2b9eb266 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x37a2640d dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3fd036b2 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x47fe011f dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7bc2f37a dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7cf01a14 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8804e1e6 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb187e9d3 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc11e4cdf dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc3c8b3a9 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc9c6e1ad dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xee3098d5 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf929389b dib7090_agc_restart +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xffe4cbc9 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1f623313 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x23be7cc1 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x380ec7b9 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x41e36b1b dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x41f5fbe2 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5085ec02 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5c396e46 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x862a5003 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb04eb817 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb25e59ee dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xbbe16dc4 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc3adb3ec dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdce0a82a dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xea30f5d8 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x085eb5d1 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x69f7c3ed dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x9fe9e523 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xc1b163bc dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xe9838c6a dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x427006e9 drxd_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0xefbc7467 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb/frontends/drxk 0x1de770da drxk_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x6431c8b9 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xa76b1196 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0xccbcb129 ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xa8a2dc15 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x5e1fa8d7 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x996eecd5 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/it913x-fe 0xfe59ec69 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x663d98d8 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0xc1905805 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x0eab6aca l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x57f4c06a lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x1abfc6d5 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x7305f0c6 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x1e0bc0a2 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xf5fdf834 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp22 0x83b43104 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x15bf8687 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0x552bd2e1 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x513c45af mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xbf92abd4 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x91fa684b nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x55460fe6 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x0dbdedde or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xda75e0f6 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x45533378 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xcd268b8e s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xbd032d97 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xd7877b5c s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x97111f04 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x69b9188a si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x2f9f5bde sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x883ff26b sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x3b2942e0 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x23a73124 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xd33b5a00 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xb79bd96e stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x436d93f7 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x7bb0bacd stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x100c63f7 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x8ac6fbd8 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x5b6a798f stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x83582180 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xc8ec0016 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xde6dabae stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x7e54f896 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x0c23eb10 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xbfb1fa72 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x4932d79e tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xaa0979d6 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xca303059 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10071 0x168e3b32 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x45ad95b0 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0xe693c6e1 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xe1658732 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x4bf115c9 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x7849f4ac tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x6b6b20e1 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x87062a5f ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x1fb3d0c7 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x9d7385b1 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x092fe4de zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xfd143921 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xb1ae42fe ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x0ef4f205 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x2533f3cf ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x094c608c lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x0faf78cc lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x3616a08a lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x7eded8b3 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x8d765024 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xcd24435f lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xea907e25 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf1167af2 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/rc-core 0x70e074bc ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xee9ea6be ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x498fd95c bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x517c995e bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbc45360c bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x3a04b8e6 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xf0762493 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x0f2df1b2 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9edda993 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xddb4311d cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xeab52d19 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xef716ef0 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xcec1cf5c cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xf89d58b2 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x55c6e786 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x676ed443 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x7028282c cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx2341x 0x9cf8f1f4 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0xa7acbe1b cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xbad43463 altera_ci_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xbbb6357a altera_pid_feed_control +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xcfd9306d altera_hw_filt_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x0eff6231 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x1278b851 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x609bee60 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x79c652ab cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xa12ce0f1 cx25821_devlist_mutex +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xcb1b4e05 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xe38ea104 cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xf0ec58f2 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xf8c7c2fe cx25821_dev_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x56e90ba9 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x7ba170da vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x17a0f68e cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1c4f95bc cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x6041f2fc cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x7765eb17 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x9e44821d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xe6220930 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x435c6b37 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x49fbd43c cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5db8bbc9 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x650e7f65 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x92fe28ca cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xdf861cd2 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0e094f80 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x18e12bbc cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x27c269fb cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x288c699b cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3b159c03 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3dc25de1 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4936144a cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4c2c045f cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5503dc3b cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5d8ed8bc cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x665b652f cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x72a5d7fb cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x81dbdf64 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8f654f24 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x94b5f177 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9decf6b6 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa4f2b99f cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbdc01da4 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc327e24c cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdab84d50 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xecf03da4 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfd421824 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x9a5f4015 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xc94b34db em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x4c8f9254 gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x60f45787 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x64f5e854 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9eec9696 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa5dc4eb3 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc3259352 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xc5af492f gspca_suspend +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x13e011a2 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x144d518a ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2a4b89a9 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x51d41f85 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5d2ac241 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6bbaba05 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x73aa6015 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x96bfdf3f ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xaf846547 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc046b812 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc088babc ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe8646b2f ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1a886162 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4588e5a3 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5eabf659 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7392941a saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7b62e5b8 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8410e9ae saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x97d9005c saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa3595ac3 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbb5a1859 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xcbda26fc saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe6182237 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf3ec2df8 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/soc_camera 0x1f767d97 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x46efa5cd soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x6209bded soc_camera_unlock +EXPORT_SYMBOL drivers/media/video/soc_camera 0xa4df911c soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0xa5897644 soc_camera_lock +EXPORT_SYMBOL drivers/media/video/soc_camera 0xf9e7b0c9 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x433952ab soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6951757b soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x85d52182 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xcb4b96ae soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x1e58508e tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xdadba07e tm6000_register_extension +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xf94f04df tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/video/tveeprom 0xe45159b9 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xfe1c0e87 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x489718f5 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x791ab099 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xaa07c874 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc0699aac v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf052e6db v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x02b23483 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x8c242b22 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xb75b4b85 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x08674cc2 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6cbfa019 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x7bc432ac videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x86e28cb8 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x97768bb6 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xbbe96c5b videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf2-core 0x8c036716 vb2_querybuf +EXPORT_SYMBOL drivers/media/video/videodev 0x019869de v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x0aca3122 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x0deb4a27 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/videodev 0x26533d7c v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0x277ac861 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x29ed5011 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x2baa8cb7 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x2f697d37 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x3345b930 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x3368f5a2 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x33ba2397 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x34dfdfd6 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x36aa190b v4l2_subdev_init +EXPORT_SYMBOL drivers/media/video/videodev 0x3913b086 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/videodev 0x44e6b1be v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x46cebc98 video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x56c99f39 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x5f460624 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x6aadfe92 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x6eda2eb5 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x7083fa96 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7fb16106 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/videodev 0x81ac0a21 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0x86a9131e video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x87989ed6 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x8b0cd70d v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x9b55a6ab v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0x9dc9cff1 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xa3949e7e v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0xb0f4306d v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videodev 0xbe3548ae __video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xc14f6fe6 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/videodev 0xcdd535a1 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0xd380d3a2 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0xda6bc7c7 v4l2_ctrl_add_event +EXPORT_SYMBOL drivers/media/video/videodev 0xe1385f29 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe32a7bb8 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xe3719f5c v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0xeff9d6e4 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/videodev 0xf677c11e v4l2_ctrl_del_event +EXPORT_SYMBOL drivers/media/video/videodev 0xf9ae9c24 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xfaa1faca v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1582083a videocodec_attach +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x16e203b7 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x8043af5a videocodec_register +EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x80d3a274 videocodec_detach +EXPORT_SYMBOL drivers/memstick/core/memstick 0x09e997fc memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x119a3ebc memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x14bcb4ac memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2ad270df memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x307ade0b memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b5c17c8 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5ce3d183 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x628d78f9 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x661d4e30 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8c9b5da4 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbde77008 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbf5602a9 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xea267609 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf720c463 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0687e28c mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1858d2bd mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x218a473c mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2756cdf9 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x29b4c3e5 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2ac32cf8 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2fa30fe7 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x42072a47 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x428532dc mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4730fb69 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7eb2e967 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8231579d mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x96600c6d mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9709deb8 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x986fe3b2 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9e2a4706 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa44a896d mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa4d05f18 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa78dd942 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xacca98b8 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb0bf056c mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb37fbdc1 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb478c88d mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb5fc682a mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb994c496 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbaf2d3e6 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd8daddea mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf11eaf05 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf9402676 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x05b88b67 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x08670174 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x09475fd1 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0a5cdb56 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x110ecf6e mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3203d4b5 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3364eae8 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3f9146f9 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x441fe55b mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x443d73f4 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x46a4aa82 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4db43a55 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5b69118b mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5fc264d9 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x619efaa8 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x85ba3b44 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x861f429f mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8fb1a554 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x96037e8b mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9b2af25f mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9e3d6285 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb1cc066e mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbe4bd2cc mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcfa4b547 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdbc7f879 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf2a868e5 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfb7c3db4 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0405679c i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0b1af51c i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2169dc6a i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x372cb99d i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4495d7fd i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5707daa3 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6b8b1600 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x73ae21b2 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7bfcbe6f i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8377d9f8 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9beb0a01 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xaa3d4ab7 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xae517c11 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4af2454 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xcdc531df i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd0c5f3c6 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe1101deb i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfcecc581 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x3ad3a8de pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xbfac406a pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0a0f0fa1 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19f1f7a8 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x304d2b09 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x648f3e82 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7c8289a3 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x81e0f888 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x908760bc mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9bc42b70 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa83c26ee mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xad06449f mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb3dae053 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc60a9247 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfdc5799c mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/tps6105x 0x02d37708 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0x61ca3ee7 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xb7169184 tps6105x_set +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x015ee601 pwm_free +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xa4ee3c79 pwm_disable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xaee34e3d pwm_request +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xd83c7949 pwm_enable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xdeebfb06 pwm_config +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x276a9b91 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xde14f860 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x45289567 altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x4494e909 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0x87815f37 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0xd34aa6ec ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xe5ddb2a4 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x08b37795 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x12d28589 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x17e07f3e tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x27deb1a6 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x4bd68cb2 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x595f2ce5 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x69bca0b4 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x72ce1139 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x8e7a19e1 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x961ca5ec tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9c613c88 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xd1273e3e tifm_alloc_device +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x570b0c16 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x12fa4fae cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x3725a062 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9fb91f6c cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x4a66ac8b register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7b852b5c unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xdc705a74 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xffa29cfa do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x12dd8ebf mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x483b5635 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xdd10de15 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x1bdfd484 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0x40fd416d mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x2de478e3 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x395667f0 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x65e38cbc nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x85048199 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x9de30eaa nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xa14db7a8 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc974cdd5 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x3cd3a014 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xb1a191dc nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xd136b42d nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x47921961 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x71bd5a4b nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1d0fb71b onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x4121babe onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x94a504a3 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xbe5b828c flexonenand_region +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2bb9ca59 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3d74caeb arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x872ae191 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x95759ed0 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa3a6e951 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xbceff51f arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc2830f48 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xeba7ffc0 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xefe2d758 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xff86a234 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x2b308f48 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x8347e276 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x9bd52c0c com20020_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x2f8d1349 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x31ae43da ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x48bcc6e0 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x765e80f6 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa3a1c3ed __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa4a4d1cf ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa591c985 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc10607e6 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcffce815 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xfc9c6bfe ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0x185c7759 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0x24381f8f bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x48b78182 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0fd49384 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x33b7ac18 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x441bb188 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5ac2f1da t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5b983a81 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x68125550 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x749f1d62 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x99b92a9c t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xac2405fb t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xafba2871 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb4abd50a cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc213f4ec cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdc2357f3 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdcaad76d cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf2f3b74a t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfa69750e cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x024d5c3f cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x26671966 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x27426ea7 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2b1f74e0 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3e5d3d29 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3f711c32 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x54de863c cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6978bb6f cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x71f1b837 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x762d1ad6 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x82c807e9 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9a598b86 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xce53d643 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcfbf137f cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe5c92b8e cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf3bcb97f cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf4f5754d cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x224f9aa7 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e0398d5 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1bbcf1c mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x34b843df hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x39fb7601 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x6279c95a hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa001901b hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe74ac080 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x10881844 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3ea4255f sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3fa568fb irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4e04e4f8 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x833db445 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x91f422f1 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb191ea38 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc1e7c619 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe22d1351 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf6bea7e8 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x03f02ae7 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xc3a87a91 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp/pppox 0x0135e25c pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xd13684ca pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xd6508c0d register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x9547daa3 sungem_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x43239aa0 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x4972a571 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x7f4625bf tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x95889bf9 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa45c8aea tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793 tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0412e744 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0ec4408d hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2ecf21f5 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x49e1aacb alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6293a5d5 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x785c07f2 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa40a24b4 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa7c5bb49 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcf5d2717 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe55f6a2e detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xed0c445d hdlc_close +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x2574dcc2 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x3e50e91d init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x660c0553 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x7b71f4c1 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x07a91d98 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5a448876 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7f6b4b51 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8fd36532 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x96040f73 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9b5ffeb6 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa857442f ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xdae9840f ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xdb99b28a ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7cb607d5 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8e865c21 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x96d620d9 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa00a0485 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0433ebd2 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05e41c3b ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09f402cc ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b125e97 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0fbb95d3 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14413b48 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1606f5c1 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x168def52 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x186220de ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x187efefa ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1be4df47 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1df7d9b5 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2413eb67 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2667b0f6 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29bee04b ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d66905d ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2eab5147 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f0cef57 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32620f4b ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35df08fd ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a68acfb ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b9e2ad3 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x447b9cac ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x474feaf8 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48e87ede ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4990fd3a ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a9a970b ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ca012a6 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d1bc1c1 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fb85daa ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x52274f5d ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5337b506 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55ead2ac ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c0c1577 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60406e78 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61165f86 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6493e5e9 ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71ada62c ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72865e95 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74412d67 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f400f31 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80b127b3 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8272c36e ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c2f68e8 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8daed69b ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8db375e6 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e117ec1 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8fd58b7e ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x96d275dc ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9dce83b2 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e9587c6 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa15600b6 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa420c9d2 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa855e75b ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad7dea8a ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xadc70f1c ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1732188 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb89ab53b ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb2a0992 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc410e26 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf44aac9 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1e61f8b ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7637310 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc88ca93d ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9509756 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xccfc9630 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcebd688d ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd222f48a ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7bcf846 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdba8b5e9 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc09ac26 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf901280 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe05e33b7 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1bf4177 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe774b892 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe81e521c ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe874db2e ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe91e4498 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeabb96bc ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed8c7a5d ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2621a67 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7a65df5 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8a4ec9f ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8d72848 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc4caa01 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd36ccaf ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe35bdd2 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfeaa54a7 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/atmel 0x82eed27e atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x896c053b init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xae4b3ca6 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x23be1c05 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x8f54c4c2 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x02c9d8d4 brcmu_pktfrombuf +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x17e08f08 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x305a90a3 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x5517c2e1 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x609a94bb brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7dbded89 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7e08cd53 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x97e7dd6c brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9e67d109 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa3ea4d20 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xbcce3bc8 brcmu_pkttotlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xcab7d61b brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe008bcb7 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe4def101 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x02c1eb25 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0f977cf9 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x25c6fa1e hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a115841 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x34fc4cfd hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3af7c127 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x469cd45e hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x582c9243 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x59e854bf hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5f4e6022 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x671a8978 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x68aeccd6 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6fb367be hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x88fdb72e hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9127526d hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x953c0331 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9c83f118 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbc87b2e2 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc8c4444e hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe216f7d3 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe58f22ad hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe5dac6f2 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe76a260a hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf05ff58e hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf8c093f9 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x08497492 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x170770c5 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2a0bb736 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2c590e82 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3421c19e libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x34f188c2 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3810dfd0 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6d27b22e libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6de6bcf6 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x74bb3b2d free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x76c2914e alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x841e37d4 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x89d95817 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9fb3006a libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa854b4bd libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc3b50aed libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc63dfd36 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xca83656b libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd242699a libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe8a09863 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf5f18e9e libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x01bfde2d iwl_legacy_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x02e16747 iwl_legacy_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x03261626 iwl_legacy_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x042470ba iwl_legacy_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x05f52543 iwl_legacy_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x07fd1437 iwl_legacy_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0b191367 iwl_legacy_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0d028423 iwl_legacy_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x18506e92 iwl_legacy_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1876729e iwl_legacy_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1c9a9140 iwl_legacy_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1d861da0 iwl_legacy_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x21c1f35f iwl_legacy_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x28015c6d iwl_legacy_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2ab15f72 iwl_legacy_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2d853398 iwl_legacy_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x303c46ff iwl_legacy_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x33a8790c iwl_legacy_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x350b4916 iwl_legacy_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x36210bf8 iwl_legacy_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3ac5e168 iwl_legacy_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3c59ad73 iwl_legacy_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x407e5c72 iwl_legacy_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x40958668 iwl_legacy_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4347a2a3 iwl_legacy_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4354438c iwl_legacy_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x44283d91 iwl_legacy_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4ae29bc6 iwl_legacy_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4befd5ea iwl_legacy_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4c39a815 iwl_legacy_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x51834997 iwl_legacy_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x527986a6 iwl_legacy_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x52a41812 iwl_legacy_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x52fef73e iwl_legacy_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x572895a0 iwl_legacy_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x59e54e9e iwl_legacy_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5ddba57d iwl_legacy_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6121cb31 iwl_legacy_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x617d9e5c iwl_legacy_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6280d076 iwl_legacy_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0 iwlegacy_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6a70820d iwl_legacy_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x740c12ca iwl_legacy_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x79c3a72a iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7b597806 iwl_legacy_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7c913eb7 iwl_legacy_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x810dd1f6 iwl_legacy_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8419a50e iwl_legacy_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x846dcc8e iwl_legacy_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8698ba74 iwl_legacy_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592 iwl_legacy_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x93718fa8 iwl_legacy_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9800ecf3 iwl_legacy_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x98371f37 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9cef8251 iwl_legacy_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9ff2dfc8 iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa04057e8 iwl_legacy_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa1c69d2d iwl_legacy_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa2bcf485 iwl_legacy_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa609fa03 iwl_legacy_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2 iwl_legacy_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa736eec4 iwl_legacy_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa75fe5cb iwl_legacy_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa9e0231c iwl_legacy_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabe48768 iwl_legacy_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xae019207 iwlegacy_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb0205817 iwl_legacy_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb1a804df iwl_legacy_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb5401f5c iwl_legacy_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb828551b iwl_legacy_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb8a1241f iwl_legacy_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbaf1b5e0 iwl_legacy_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc61c0002 iwl_legacy_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc8216e5a iwl_legacy_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xceba4b83 iwl_legacy_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcec7cc2c iwl_legacy_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcf253c7c iwl_legacy_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcfedcdb3 iwl_legacy_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd2577bad iwl_legacy_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd914c8d7 iwl_legacy_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdba865e1 iwl_legacy_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdc097db5 iwl_legacy_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe38602f9 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe6d7c3d0 iwl_legacy_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe91c09d3 iwl_legacy_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xeb3bddcc iwl_legacy_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf016bc67 iwl_legacy_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf64776f4 iwl_legacy_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfad6581b iwl_legacy_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfbc253eb iwl_legacy_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfc91de04 iwl_legacy_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfea6a10e iwl_legacy_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfecac2f6 iwl_legacy_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x60faee03 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x61c5e32e __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x65489f9c __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x726d9621 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xb6c345da __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xcc312d73 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xd1d62dbf __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xd915418d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf7769239 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x06f2336d orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0ac4d1aa orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x10f1158d orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2496925f orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2deaaa37 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x34cbf02c orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3c6baa47 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x465c6a69 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x493a8340 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5dea5bf1 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7aa31cfc orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7dac9eb6 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x85892255 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x999ac296 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9dba0117 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf385d8ea orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfd45e88d orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x028bff0f _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x150f3ed5 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1ce229c7 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2191c7e1 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2d219122 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x321e4989 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x329ff484 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x33fc8c8f rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3c976017 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3d0a9a3a rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x426e3203 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x50733dad rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x554504a5 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x58b7afe6 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5b238b8e rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x60079f82 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x69c8630c rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6c3bc2b8 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7119dcd6 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x733c6f36 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x755d7864 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x77f146aa rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7ad61cfc rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x86c9d2e3 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x944829bc rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x963f062e rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa2009c65 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaa318307 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaa7006ff _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xad8ac2fc rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xadf4cd75 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbd9a7b30 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbe355683 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc368684f rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc6391359 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc73c9c3c rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xda05cfc3 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdaa07ab2 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xde3075a8 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe9500ba2 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfc7e6b11 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfdd537aa rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1d8baa7d rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2cc02e77 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x312804d8 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3dd2e3a8 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5440580b rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x579593fc rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x66438de6 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7613c174 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7a6bb801 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7edac63c rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x89091f11 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8b4e5ebe rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x97c31894 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9928df15 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xafb135d5 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb2447ef5 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc1594427 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc24167ae rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xca5282c8 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd707c0a7 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf1bab49d rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf6bc67ca rtl_cam_del_entry +EXPORT_SYMBOL drivers/parport/parport 0x0514a825 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x1079ed1a parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x21f6403c parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x242ba8a3 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x26d91dff parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x2bc6756f parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x3a7c8479 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x42efee2c parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x54dd8c41 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x55e52e53 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x6f52c756 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x74496980 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x7b8fa925 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x7df00989 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x9bd49e4e parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xa3ffcd9e parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xa555a1d1 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xab1b2c13 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xae215053 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xbcded176 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xc6b9ea45 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xc7c15efb parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xd133888c parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xe00952f7 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xe2d1a46f parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xe594ab5e parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xec0d6a9f parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xf640e422 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xf6fe381e parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xf84f81ae parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport_pc 0x0113c561 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xc70c9d82 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x17baef81 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1818c1fb pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x22a5d3a5 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x305af2b3 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3313e89e pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3f65a42d pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x54eadc07 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x56df9025 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x60f804c0 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6f232aa1 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x740e01de pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x83ca43dc pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa08491ac pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb3a825b8 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb873f823 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb8f606e6 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xba039751 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc856254d pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc944a097 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x03312647 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x08ced9d8 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1eb16552 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2cf47790 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x565aa320 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x94300363 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x944e925f pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa93e86fa pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xabaafb74 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbaeb7d98 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd50ebfd4 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x5e31bfe2 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xc042003e pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x4e0cd1d3 pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x68b649dc pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xcf0406ae pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xf1164493 pps_register_source +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5af68a88 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6f7e7fa4 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8efe1928 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9d3fd4f7 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa1c5b2b1 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc238199a fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xccf198cb fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdd7c0f12 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe56f8372 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07ec015e fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x08a3245c fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0a6e8511 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e91229b fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0febd168 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x17ea497e fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x18095a2b fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1dc867c5 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26b7ff04 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2ad4c85a fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2b52adae fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3c879572 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3d482152 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x40a741b1 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x44b81a1f fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x462303a9 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x493630b2 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4be23b97 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4f78300c fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5286cfd0 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x550c695c fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x63c88f9a fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6699b904 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x671e8af7 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f7b0ab8 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72b38281 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7595c55b fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f124f67 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x81f71d3d fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a7aabf4 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ec5275d fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ff0fc41 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x99c49115 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9e97a707 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa08c7b6b fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa49fb2b5 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa8413621 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa869b160 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb2011d2b fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb46e878e fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbb03d8f1 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbb4cdbd6 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbdd5c64f fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc45ce04d fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6176416 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdd0a749a fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe3c9608a fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef72d88a fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf36ab531 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf8bbc682 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x531daa89 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x169f01cb osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x17435f2a osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1eb080d6 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x23739376 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2dfa6cee osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x316a0432 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3863612f osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x46fef913 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4dc8287f osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4e74d0fc osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x575aab1a osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x57cf33c7 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x590fb4d7 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5973acd6 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x612cc3df osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x616f58c1 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6428d3b4 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7248b325 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x87412504 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x898cdbd8 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8a027397 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9128f130 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x91ef6e58 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9bdc1c16 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9d921c83 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9dffcf4c osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa514e37d osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb623ff70 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc1213975 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc231f768 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdb688df0 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe23ef9c4 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe3958463 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe39eef25 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe4e635c5 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfb7a4a30 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/osd 0x067218af osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x578d6ee1 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x61331e53 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x74f9db6a osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xbb2f07a6 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf29a0a7f osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x2c6e0df0 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x50804906 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6c5c04da qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6e209f50 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x93580d0c qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xeaac28e2 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x804c5235 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xe260c1af raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xe39e6cf4 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x081c3f0a fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x18790933 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3470a583 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3539b22b fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x512d0058 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x771debbd scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x89bae460 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xaa84a8b1 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xac19ebce fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb3090997 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd443ea4e fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd4dbdc23 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdcc5b328 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x05e18a8b sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x21e43c7d scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x34ed107f sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x39a176c6 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3c9218f1 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x43c1e7a6 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x45f0773b sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4d1cd923 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4fe189d0 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5c229402 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x601d8529 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x612e4a5c sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x78b6f667 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7ad94354 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8359700f sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8f30a2ce sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x942b350c sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9b28ae2e sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9fc9757f scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb635eb93 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb998fcbd sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbb03880a sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbee01d5c sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdf9138a3 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe77bea30 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xefd8a0bf sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x20864468 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x42d57285 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x85eb9a9f spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xe39fd334 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xf3098c32 spi_dv_device +EXPORT_SYMBOL drivers/ssb/ssb 0x088a1b5b ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x0f44f797 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x1856ced9 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x22f23129 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x43fb3288 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x4a4c9a19 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x4f6ab07a ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x56ec1d10 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x5ce5016f __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x65a4e440 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x75054919 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x76469036 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x796afc0d ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x948c2f92 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x9e292811 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xb9499563 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xea31b5b0 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xea868c25 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xee822629 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xf02b09eb ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xf15d488a ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x0c679bae adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x35ac79cc adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x5cd4072f adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x97aa0cd1 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0f55de83 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x100b99f8 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x198d11af iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1e3b67a3 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x217cc8fc iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x310f811b iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x46651828 iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x47bd7779 iio_buffer_show_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5005676e iio_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x524ac247 iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6166cecd iio_buffer_write_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x657df21d iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x70995889 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x729fdf8a iio_buffer_read_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8815a9d8 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8b2d15c4 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9bf245e9 iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa9a30214 iio_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb3642d66 iio_buffer_read_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc70c4a10 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd5eb82ff iio_trigger_poll_chained +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdcd43d5e iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe43f8d52 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf53f9435 iio_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xffe47e25 iio_buffer_store_enable +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x0de52a66 iio_kfifo_allocate +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x2aa5ca75 iio_kfifo_free +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x795ea342 kfifo_access_funcs +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xc8f6d66c ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xe9aae75b ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x452fa4fb iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xba9b4243 ring_sw_access_funcs +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xc6913cf3 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0xbc5cf5c0 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x090c8688 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x342bd09a go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x3e756bd2 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x84834b97 go7007_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x8db02d01 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xb095a08f go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xb8c1998f go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc1dfe51d go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc77b05b3 go7007_alloc +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00f21be9 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x03b9e28d Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0b389f17 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0d4cf1e8 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0dca7914 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0eb3ace2 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x108d7c74 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17ee4ad8 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x190f82e7 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1e2b1a95 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x31f074bc ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x38d99f3b ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x39d5259c ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3ba29f29 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x432f3e47 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x45b6877e ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x51f94090 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x56f27414 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5a9b3ac7 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x610f6d65 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x647f5992 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6a4ad94b Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6bcfbded ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x75350839 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x770d0ad5 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x80afd801 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x889934f1 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8e4d341a ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8f5bf747 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x91bb3b29 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x920c30ec ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x955efc8c ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9ac8ef13 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c43b3ef Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa0d8e58e ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa850b8aa ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb1fbae2c ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb8585676 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc12d48f0 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc34aee5b ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc6b41dbc ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xce61b7f3 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd0b78e89 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd118ee21 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd271e64f ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd42ac068 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd7828a45 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda8ca689 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe191d627 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7ea8806 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf5b3c15b ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf94b1676 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfc62d7bb ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfd5e2d51 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x058ce389 target_splice_sess_cmd_list +EXPORT_SYMBOL drivers/target/target_core_mod 0x07235e73 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x09fffd76 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x0ed4e43c transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0x189a502f transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x1bc7c009 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x20321f94 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x23c2e699 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2999c912 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x2ea60dc3 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0x2f6a5440 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x31f3bf27 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x335dd9a2 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x4203383f iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x467b155d sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x4d16ecfc core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x519e9482 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x52a49144 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x5405165c transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x5b975512 target_get_task_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x5efd6dea core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x61866696 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x68010c95 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x6c8376ad iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x6caae853 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x6f018e8d transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x74213d96 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x78683723 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x786f326e transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x801a366c transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x80505f7f fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x82bb61fa iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x896b01d1 transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0x89e9c0f0 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x8a883394 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x8aab4f58 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x8b458b61 transport_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x912c3e4c fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x91e66e45 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x98618d2c transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x99f0c686 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9e061b7f target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xa0517c72 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xa686574c transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa37bf69 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0xacce4b32 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xbe4abaa9 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xc1061cda target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xc5be900e core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xd21a857e transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd3572b13 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0xd36b3c34 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xd8d6f651 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xdbef3779 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0xdf53285e transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xe31ab18f transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0xe70d4eb0 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xe7236664 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xe903b7dc transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0xe99c3b23 transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0xefda3c01 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/telephony/ixj 0x65b33fb7 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x2b553baf phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xb945a011 phone_unregister_device +EXPORT_SYMBOL drivers/tty/serial/8250 0x6cac64f4 serial8250_set_isa_configurator +EXPORT_SYMBOL drivers/tty/serial/8250 0x910ba6bf serial8250_do_set_termios +EXPORT_SYMBOL drivers/tty/serial/8250 0x934e29c9 serial8250_register_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xbd77e64e serial8250_do_pm +EXPORT_SYMBOL drivers/tty/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xd05a8f7a sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00940bb2 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1d838272 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x31fa3179 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x33cff520 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x546138ca usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x562910f7 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x625505c7 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x681cd0b6 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7206a6fe usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x803a5ea2 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x871b7405 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb9a9627a usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbcd51820 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xce92bf43 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd96f8bab usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x0d3d0395 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xf6f3f37c usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x5c46e62e lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xe78fa29d lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x37ba9035 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x4179b1da display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x41a9a1ea display_device_unregister +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x0d8eb38d matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x40a28f89 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x5b7cf1e9 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x1d0803f7 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x3d9b2c1c DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x685fb721 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xd7651d30 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x8a4675d2 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xa31d2b7c matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xad8a0ff8 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xbd0b90fe matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xe26b9896 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xe644da61 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xd817e879 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xe78b2b42 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x020ab701 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x0a8d84f3 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x100390bb matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x10f10290 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xc31d3938 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x80095be6 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x5e29fc9a video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xa730becb video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x2821417f svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x4a62dd3f svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x549b03a1 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x79caadc9 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0xa2c74098 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe1a039a5 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe3cc9e6b svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xeef55ecb svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0xe6260043 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xf9c7c84b sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x07c0809f sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x872692e3 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xd9092d41 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x07d58b71 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa5288887 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa5a56c90 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe2fa7b92 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x135141f9 w1_ds2780_io_nolock +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x5a408623 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xefdbc53e w1_ds2780_io +EXPORT_SYMBOL drivers/w1/wire 0x5dd6369c w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x72bed1b2 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xa6f67eab w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xac84c8cc w1_register_family +EXPORT_SYMBOL fs/configfs/configfs 0x1169bb4c configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x1ccbc773 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x42df3c9f config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x4fd11857 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x5f044433 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x68976f72 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x86bff33b config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x9646f30e config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xc9888398 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xcff2e2aa config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xf0ce129c configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xf2b2c63d config_item_put +EXPORT_SYMBOL fs/exofs/libore 0x011500ad ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x08d5978d ore_create +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x3111aa9d ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x4784252e ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x4f2c65b8 ore_read +EXPORT_SYMBOL fs/exofs/libore 0x7c646c84 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x9e43cc2f ore_write +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xc4564247 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0xefd60cdf extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0xf35397e0 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xfe2fa2e5 ore_remove +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x34619abe fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x3f1dd6cc fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x3fabfad9 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x5a8f1219 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x6159a2b9 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x68332963 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x72d533e6 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7864e520 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8a547d8e __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x93779a0f __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x93afb912 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x9572c3d1 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x9731835a __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x9afe67c5 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x9f8cdd9a __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xa082dc05 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xa2967a23 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xa4b87a95 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xa943ebbc fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xb60791fb __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xb9cb8786 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xbac51e90 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xcefd6822 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xd7d789fe __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xde4fc950 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xedc41916 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xfbfb1fc7 fscache_fsdef_index +EXPORT_SYMBOL fs/nfsd/nfsd 0x0c8d6829 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xcbb738be nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x311eaf00 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x6755438e qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x9c503221 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xc67653ed qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xcbfa8ecc qtree_delete_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x08924902 lc_get +EXPORT_SYMBOL lib/lru_cache 0x529eed80 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x5c13f3da lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x5d279f45 lc_changed +EXPORT_SYMBOL lib/lru_cache 0x645cf5fe lc_put +EXPORT_SYMBOL lib/lru_cache 0x725659ce lc_del +EXPORT_SYMBOL lib/lru_cache 0x7cccfb50 lc_create +EXPORT_SYMBOL lib/lru_cache 0x7f93d734 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x94eeff7e lc_try_get +EXPORT_SYMBOL lib/lru_cache 0xaff36e1c lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xb426467d lc_find +EXPORT_SYMBOL lib/lru_cache 0xbf4d1972 lc_set +EXPORT_SYMBOL lib/lru_cache 0xd379f8b4 lc_reset +EXPORT_SYMBOL lib/lru_cache 0xf14889db lc_element_by_index +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x0a3c0b3d destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x9c7462c4 make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0aab9c87 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x10b05b42 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x1c502816 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x23adad16 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x264db9bf p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x30e6175d v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x4d017ba9 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x4dd35983 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x58881fc7 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x60daf13b p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x6a10d6ec p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x6fd58da4 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x7168853a p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x72015c69 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x722e7777 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x7df2c54f p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x7f703d49 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x808287ff p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x8af40601 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x90925079 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x90e89b01 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x91192440 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x9661d4ac p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9f35b864 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xa4674959 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xa83692a3 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xab7283d0 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xac1601a5 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xbcbbbe5e p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xbdffaf93 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xc5b2e067 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc6578b28 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xc7e8ba55 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xca733228 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xcaf2031a v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xcc124b52 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0xcc84eac4 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xd67bfe93 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xdf060fed p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe77ea1a2 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xf92182ac p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xfb5dfe0f p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x54c8d0f0 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x55806836 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x9d1aee0d alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xff3bc0b0 aarp_send_ddp +EXPORT_SYMBOL net/atm/atm 0x2451127e register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3e558db7 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x54682f33 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x6aff94d9 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x815c941f atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x8b251034 atm_charge +EXPORT_SYMBOL net/atm/atm 0x945c22cd atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa4566256 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb30de222 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xb9879c3d atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xde091bd1 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xee19644d atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xfb1ea8b6 atm_dev_lookup +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x1f1c043c ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4d456860 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x657d52ca ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x6ef14c58 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x76de8f5f ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xb11279b3 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xbf440c13 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc6d53964 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe429ef03 ax25_listen_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x03349af8 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x09552c5f hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0c649c8a bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x18d5f754 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1c75287f bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x31b4ab73 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x322f5310 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3bc70a03 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3f13996d hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x40209040 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x473f010f hci_find_link_key_type +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4a8f04c8 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289 bt_printk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5471aac3 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5603aaa8 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5cfafb17 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x627ef0c4 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x64076146 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x700dea98 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x78273e37 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x79695878 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c0334aa hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8d45ee61 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa2076844 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa2544f3a bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa985b11d bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa9a1b44f hci_le_start_enc +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb83d3187 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbb576def hci_le_ltk_reply +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd300c357 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd8539a8b hci_find_ltk +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd881ee05 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdc674ab0 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe005ff1d bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe52f374e hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe6b02360 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xee6f87a7 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf602ab63 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf76b22b9 hci_le_conn_update +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfda05256 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xff021df4 hci_conn_switch_role +EXPORT_SYMBOL net/bridge/bridge 0x277cca0f br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x50af3c04 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x80e321ad ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x970c8e24 ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x186266d3 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x200fa47c caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x35b49017 caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x504da5e8 cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x5807d88d caif_free_client +EXPORT_SYMBOL net/caif/caif 0x63e9812a cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x8dbafcc3 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0xab3e80f5 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/can/can 0x1ee8b6fa can_proto_unregister +EXPORT_SYMBOL net/can/can 0x4683a18a can_rx_unregister +EXPORT_SYMBOL net/can/can 0x4f86b3b4 can_send +EXPORT_SYMBOL net/can/can 0x54970a46 can_proto_register +EXPORT_SYMBOL net/can/can 0xa7fb91a2 can_rx_register +EXPORT_SYMBOL net/can/can 0xd0fa4e6d can_ioctl +EXPORT_SYMBOL net/ceph/libceph 0x0159a4e4 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x03188cf4 ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x07edbb02 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x09063722 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x09b8a14d ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x0e3d0216 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1c292829 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x23bef41a ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0x292d7a65 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x2b516b7f ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x2bd2bf52 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x333235cc ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x386eb1fb ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x422f98de ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x46f2461d ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x4e1eddbb ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x58d43ae0 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x5948c06a ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x5a05a10e ceph_osdc_wait_event +EXPORT_SYMBOL net/ceph/libceph 0x5a118a2f ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x62b4b167 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x68643290 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x6905d523 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6da610d6 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x74daee66 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7dc6273a ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x91554279 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x91ee1961 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x9204187e ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x9308f9e6 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xaa0bc0f3 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xac2299b5 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb3f33ff1 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xba95d3cb ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xbb1b9528 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xbc8ece55 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc76217d6 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0xc9cf93f2 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcf60be6c ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xd01b645a ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xd0f862a0 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd4fe387f ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xd69f3aee ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xdca36752 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xdcea3d08 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xddfa007e ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0xe64bea0a ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xe952ad39 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xea5169bb ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xec73f922 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf58fff16 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xf9152a94 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xffd3f4ca __ceph_open_session +EXPORT_SYMBOL net/ieee802154/ieee802154 0x02cfbc3d wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x31d6ba34 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4c0657c1 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4db836f1 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x51b02de8 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5fcb43c9 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x756162b9 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7da06371 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x807734f1 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd5d87b79 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe165924a ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe9b90c98 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf7162676 wpan_phy_find +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x95404d0a arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xba81d867 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe2ae1086 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x254e35fe ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x737fc54d ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe43906b3 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2b74e002 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x3620dcb4 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x702552ec nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8e7f1fdd nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa3577255 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xbf733465 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf779ec8e nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/tunnel4 0x1cec6262 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xfcf65fcd xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8508532a ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xba455fe4 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcaa003da ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xd8b11a05 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x0647a9b5 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x678bd1ec xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x6e47094d xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xd6870703 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x28601657 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4fe9c43b ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5e3df8e2 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x98f4a408 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa7f6a650 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbd212c41 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcf8ce474 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfef369af ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0a6b3ea9 iriap_close +EXPORT_SYMBOL net/irda/irda 0x0b04d162 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x12968c97 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x138bdad8 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x14ce3856 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x20f77d12 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x25f52959 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x2f27364f iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x301d08ba alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4c984c94 proc_irda +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x78536477 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7c0dbda9 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x7edd6b57 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x98494db9 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xa158574f irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xa4d3f341 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xa5f472c4 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xa8d7e002 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xaeb3f822 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbe6b29ba async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xd6583994 irlap_open +EXPORT_SYMBOL net/irda/irda 0xda4ba733 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe2bd8410 iriap_open +EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xec6df866 irlap_close +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf10597a6 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0xfbabd435 async_wrap_skb +EXPORT_SYMBOL net/l2tp/l2tp_core 0x5927d865 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x007c52df lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x33c8642d lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x3dc579ce lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x6dd74534 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x80221397 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x8c9c59e6 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x961c0ddb lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xfc09445f lapb_setparms +EXPORT_SYMBOL net/mac80211/mac80211 0x0bb3b6ea ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x0fd25cb1 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x102dbfcb __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x10801454 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x17217a33 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x1c9992ab ieee80211_get_operstate +EXPORT_SYMBOL net/mac80211/mac80211 0x1f32fb53 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x210e3c36 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x223f9021 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x28738fb4 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x2e32264e ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x3a25341b ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x3b25068a ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x3b630af7 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89 ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x3ee0e120 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x4c96c0ee ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x4f32abfe ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5d64ede4 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x628e2bde ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x63caa554 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71 ieee80211_sta_eosp_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x69134d2b __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x69d9e4e6 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x6b3ba3ea ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x6b4b9f34 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x78a20771 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x7c7ac631 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x7f8d98bd ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x82297f2f ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x86563722 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x90b12cf8 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x9509093d ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x965fb8ca ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x97045131 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x9b4a59b3 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x9b4f34bc __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x9fb2049d ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xa6dbadcc ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaa2ab377 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xb2a2114a ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb6922062 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xb6ebe140 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xb9c4e676 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xc06602ac ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xccc5442d ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd6f13a86 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xd7be412e wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd9f06c4c ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xdd5795b3 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe09462b9 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xe1c0f6af ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0xe87343a6 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xeba14d72 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xfab49183 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xfe0b8fbc ieee80211_ap_probereq_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0dbe6489 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x100816f3 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x19055c33 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1b3032e2 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1c7640e8 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x37c3947a ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3fad18b6 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x68977806 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x70460613 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7207bd78 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7f697466 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9f6fa880 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd1d874b6 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf5461c9a register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x0e1d26e5 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8abea5b5 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xdb7a4164 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x42f8c648 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x0b3654bd xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x1f6a7256 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x34398505 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6eb4f0ae xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x883cf924 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x92febcb6 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xa532db60 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xad664482 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xba3fb2ea xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xc1045aec xt_unregister_target +EXPORT_SYMBOL net/nfc/nci/nci 0x1d01d40d nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x54503525 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x63e990f1 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x866f65b9 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xc288c39e nci_register_device +EXPORT_SYMBOL net/nfc/nfc 0x084b6c84 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x23b1826e nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e nfc_printk +EXPORT_SYMBOL net/nfc/nfc 0x34cc0fa1 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x39cbf742 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x3a49df2c nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x3ffd7444 nfc_alloc_skb +EXPORT_SYMBOL net/nfc/nfc 0x63908f55 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x96baf82e nfc_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x0769c775 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x30a8a1aa pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x3419019c pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x6bdf30a2 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x715771df pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xbed73bdc phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xd7454aec phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xfe72d31c phonet_proto_unregister +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x01cdb31c rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x236d7da1 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x37ea62f2 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3c9b1e7f rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5d2ca65c rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x69a00a8b rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x893b0f5f key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x939d4358 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9b8f5fb5 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa44ec870 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb8db0808 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xba543036 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdb308b89 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xddc213d7 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf6399efe rxrpc_kernel_abort_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x59b12ca5 svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x5bad92ff register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x54af1ea6 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x9e40fd3e wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x0853baf2 cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x09fb1a25 cfg80211_testmode_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86 ieee802_11_parse_elems_crc +EXPORT_SYMBOL net/wireless/cfg80211 0x108f3f8f cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x15b57fd2 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x178e5dc0 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x183401c7 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x1d02adbc cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x1ed08781 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x204f9a45 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x23e4f69a cfg80211_testmode_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x26de8449 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x26f5f712 cfg80211_testmode_reply +EXPORT_SYMBOL net/wireless/cfg80211 0x27400bb6 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x2cab6ec2 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x2f189262 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x30a609e3 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x32fcf016 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x3a2304f2 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x4bd8f912 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x4ccbc862 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x56268c56 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x57b6a013 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x58ede34d __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x59a53979 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x662f6246 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x66bf5442 cfg80211_testmode_event +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6b410a13 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0x78941c58 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x7bf63edb ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x7e033a29 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x80d7e4dc cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x81463bb9 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x83b68bb1 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x89030554 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa6f3d144 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xab5a2b4f wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xaf899a28 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xb7bbfcbf cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xb805ee0b cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xbae69330 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xc17ec33e cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc834adbd cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xcc8cd9cb wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xcdb5304c __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xd61ff3ca ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xdc816948 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xe2a38c00 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xe5a368bb wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xe75de4ed __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xe976b8d4 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xedcd982c cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xf56eee7f cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xfa1e44df wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xfb4ba864 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xfe68919f cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x12bbd864 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x24e40ad4 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x669899dc lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x9d153662 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xa44e763f lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xc020b88a lib80211_crypt_info_init +EXPORT_SYMBOL sound/ac97_bus 0xa09c7c3c ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x173e5b14 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 0x27cfbb73 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x283ded28 snd_seq_event_port_attach +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 0x5bc0fc46 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 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xfa18d165 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x7760ee5d snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xd715eb41 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x072d978b snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x13a17752 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2eed26bf snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x4d5ca523 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x592f6e9b snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd7c7afcc snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe60fb228 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xecbde43c snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x048406d9 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x03eac69b snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x075c698f snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x1135d940 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x119ff137 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL sound/core/snd 0x1db8e61d snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x237118d8 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x27ee1a1e snd_cards +EXPORT_SYMBOL sound/core/snd 0x32f961cb snd_info_register +EXPORT_SYMBOL sound/core/snd 0x340e5a49 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x370a8250 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3bf6bab5 snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x447ea1fb snd_card_free +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x4bbdd482 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x4bcc9622 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x4ccc1ab4 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x4ccf30e2 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x4ec3ec46 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x5b02c418 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x728a4f07 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x7b839a2a snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x86f79719 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x885fc1ce snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x88f77ce4 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x9133a0d9 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x93238fd1 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x94d732f9 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x982d263e snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x986b53f0 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0ac3bfe snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa10415c8 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xa2cdad18 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xa7e7b8d9 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xab932b59 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xaed4dbba snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb4d3dbc9 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xbadc8868 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xbeada96a snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xc70ac5ac snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0xc965d7d7 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xcf587037 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xdc751806 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xdf4c0232 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xeb5251e5 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0xef55e9b8 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xf0429f05 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xf4d7877f _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xf66c04d2 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xfb9b0403 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd-hwdep 0x8201b0e1 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x1a1d92a3 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2c1fc8da snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x773b02ab snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x96e984f9 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xd7d9ca50 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x02db1973 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x03723a6d snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x055c5b83 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x0e4e3399 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x1a22b74a snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1ea4473b snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x282054ff snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x2c0da5dd snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x2e826e73 snd_pcm_hw_constraint_pow2 +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 0x3a59efe9 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x48b0f738 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52938dcd snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x52ae464c snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5702f4af snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x5c0b159f snd_pcm_lib_free_pages +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 0x6732fc95 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x7339b733 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x74cf26de snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x7c7339ce snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x8f93867f snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x922882d9 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xad453210 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xb4049276 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xb5db334e snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0xb704b96d snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xb9f0b4eb snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xbe9914af snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xc2191491 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xc67f8aea snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xc6eb5165 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xcadfc89d snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xd7cce4cb snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xd7d0a69f snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xde9f4049 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xdfdd4682 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe89fb610 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xea142d2b snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xf2fe0803 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf40fd703 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0xf5c54075 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xf5dda827 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x01e49a84 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06c99b6b snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1ddc2a13 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2432f1c7 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2d836991 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x385bce54 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4b3992e3 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4e0ca2e8 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x54259ffd snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x68a775e3 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x771367f1 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x79101dbd snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x81dbe266 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x86c77673 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc1f8f6ed snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdb58c663 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xeebfa5b8 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-timer 0x017d123a snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x0acef385 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x2d38c07d snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x46f85729 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x4aac4ca1 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x4fe1bbe5 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x65aa26b8 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x75dcbd15 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x77b960cb snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x7d7527ce snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x85e8221d snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xf4bdf7f7 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xf5fa3a95 snd_timer_stop +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 0xd66ec44a snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x034f2832 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5057431e snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7aee042d snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8af484ab snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8b8fc2bf snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x95c05c5d snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xaec7c3cb snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbb58603f snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd2f9b2c3 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x27d065e4 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2e8db9d7 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6211b08c snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x83ea270f snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x85e45e87 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb306b428 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc84b87c1 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd6a2f0f3 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdd295250 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0837306d amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x127ba460 amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1412818c cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x231d569f amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2db6b96e snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3cae60a6 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4e2a3d01 amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x52f38552 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x56ef040c amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x58b85774 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x662b12eb iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6aed1e14 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6f7eb4be amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7e9630f3 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7ea2996f iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x92df50c4 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x994da967 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa28449a9 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc8ea782d fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcef539f2 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcfe1dc24 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdd74bc7a rcode_string +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe289fec1 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe9ab010f fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xee9dfac6 amdtp_out_stream_set_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x27bd4532 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x40aa8856 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x54a81f8d snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa3905abe snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xaf4e15a6 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xcdc7bfe4 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x027a128c snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x09bb973b snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6d413b8a snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x72f44b41 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x7c0d191d snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8cb08161 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x301186d7 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x66bb0876 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x6ac518ff snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xda1a633a snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x42fc3e4e snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xf35d32a8 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x0a1fd401 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x7477663e snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x3ede4059 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb8077ff6 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd27ac884 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd772495e snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xdd27dc0a snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-i2c 0x1224869d snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2ed45f01 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x65193e75 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa0639276 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc6e0c69c snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xd3902dfd snd_i2c_device_free +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0a150d4c snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1603bec6 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x687efe2b snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6d3c4723 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x721d5259 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x902867b1 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9764dffb snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa0a17c8a snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb3f7d2a4 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf5a7ccb3 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x255d6b9c snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x32b03d64 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xfa5b8bf8 snd_sb16dsp_configure +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00c13b8e snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0947daeb snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3ebfe26a snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3f1f3852 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x43a9d164 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x59e1de55 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6148fac2 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6978f006 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6c1854a1 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7f7e177e snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8ca22690 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc05ceba9 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc48f5c46 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xca3763c4 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdbaef921 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe2f58ffa snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfb579b47 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2a4b8a48 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2ad8fc92 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x6ce19c2f snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8b9c6e98 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa874a72c snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc69f20c9 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc8cb3ae1 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc8f453a1 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xff20de44 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xd9c3efbd snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x467e25d8 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xc4301219 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xfa7d7f54 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0b4cfba7 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x284aec79 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x40f102ab oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x59a5a6ac oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6cb36fca oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6e5abaf9 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7256bb87 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x75235e32 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x79c820a5 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8c319daa oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8fefc4f3 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x94838b28 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x971cd229 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb1a7952c oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xba4a7f20 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcc06c92f oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd6945b30 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xda843006 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xed2921b7 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf5a6237c oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf7a9b375 oxygen_write8 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1605b510 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x3d9ab85d snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4fb489d4 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6e526419 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xdcb0698a snd_trident_free_voice +EXPORT_SYMBOL sound/soundcore 0x1f6c9a5f register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x35900a92 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x38a2ef98 sound_class +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0x9e26d762 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xcf76a3d6 register_sound_special +EXPORT_SYMBOL sound/soundcore 0xea4860b9 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x17abd790 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x39c1966e snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4cc399fc snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x5e29ae91 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6928362d snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb781af49 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/snd-util-mem 0x25bedb41 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x39c80bda __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x814070ac snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x947962e7 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x94cd2b19 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbd2387fd snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe40ff287 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf9745d83 snd_util_mem_avail +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 0xbd28d3dd snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00086a32 vmtruncate +EXPORT_SYMBOL vmlinux 0x002c864d pskb_copy +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x00302d83 mac_find_mode +EXPORT_SYMBOL vmlinux 0x003ed69a __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0084e86d unregister_shrinker +EXPORT_SYMBOL vmlinux 0x008513ca i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x011aedbe vfs_rename +EXPORT_SYMBOL vmlinux 0x0147a1fc cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x01722c20 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x0186e2de smp_call_function_many +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x019e7765 __init_rwsem +EXPORT_SYMBOL vmlinux 0x01af00a4 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x01b45cb9 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x01bef72a gen_pool_free +EXPORT_SYMBOL vmlinux 0x0225b252 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x022b279c sk_reset_timer +EXPORT_SYMBOL vmlinux 0x0235e9a3 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x0245024e flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x02465a73 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x02637dd6 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02b754bd load_nls_default +EXPORT_SYMBOL vmlinux 0x02bd195c kmem_cache_free +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02dbc5d0 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x02ea9bb9 pci_iomap +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x03070930 elv_add_request +EXPORT_SYMBOL vmlinux 0x031f3930 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x0326fce9 do_splice_direct +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034f9e73 param_ops_byte +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x0360f9df skb_store_bits +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038a0569 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x039f03bb netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x03a19b60 blk_get_queue +EXPORT_SYMBOL vmlinux 0x03a210ce kfree_skb +EXPORT_SYMBOL vmlinux 0x03b0d758 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03cac4c1 mii_link_ok +EXPORT_SYMBOL vmlinux 0x03e90369 agp_free_memory +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0404bce9 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x040d1dbf fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043c4f22 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x0451b15b __f_setown +EXPORT_SYMBOL vmlinux 0x0455f6b3 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04d43b25 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ef80cc i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x04f25205 lock_fb_info +EXPORT_SYMBOL vmlinux 0x05134440 register_netdev +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x0522cbad elv_rb_find +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x054d450e max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x059882a7 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05b9c8bb scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x05c8462e bio_copy_kern +EXPORT_SYMBOL vmlinux 0x05d4e12a inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x05fd96cb cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0629d357 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x0632ab0e set_page_dirty +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x06418f6c pci_enable_msix +EXPORT_SYMBOL vmlinux 0x065fd936 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg +EXPORT_SYMBOL vmlinux 0x06788f68 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0697914c fb_set_suspend +EXPORT_SYMBOL vmlinux 0x069f97a3 bdi_register +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06bff365 blkdev_get +EXPORT_SYMBOL vmlinux 0x06d05679 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x06e04d35 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x06eaf471 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x06f062db tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x071adafc pcim_enable_device +EXPORT_SYMBOL vmlinux 0x0723530f __free_pages +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x072e3554 ps2_drain +EXPORT_SYMBOL vmlinux 0x07352c3c user_path_at +EXPORT_SYMBOL vmlinux 0x07397542 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x07493c9c scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x074989f8 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x074e9213 down_killable +EXPORT_SYMBOL vmlinux 0x0797b1ef swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a2420c tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07abf1ee blk_put_request +EXPORT_SYMBOL vmlinux 0x07ad53d0 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x07adc108 input_flush_device +EXPORT_SYMBOL vmlinux 0x07c23177 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x08059db2 deactivate_super +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0836dabc send_sig_info +EXPORT_SYMBOL vmlinux 0x083c5b7a genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x084c4c1c d_find_alias +EXPORT_SYMBOL vmlinux 0x0854f8ef scsi_print_result +EXPORT_SYMBOL vmlinux 0x08cf3101 bd_set_size +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x090d9840 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x0922b90a seq_bitmap +EXPORT_SYMBOL vmlinux 0x092a0e2a jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x0939358a bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x098faddb new_inode +EXPORT_SYMBOL vmlinux 0x09a79b47 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a30bf50 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a36c3e1 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a4f9cd2 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x0a5060e0 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x0a64175e ___pskb_trim +EXPORT_SYMBOL vmlinux 0x0a6cdc90 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x0a80b959 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x0a810359 secpath_dup +EXPORT_SYMBOL vmlinux 0x0ac29c74 default_llseek +EXPORT_SYMBOL vmlinux 0x0ac3ebb0 macio_request_resources +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acb7776 dev_close +EXPORT_SYMBOL vmlinux 0x0acbcca6 security_path_unlink +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0aeca566 path_get +EXPORT_SYMBOL vmlinux 0x0b09d532 pci_find_bus +EXPORT_SYMBOL vmlinux 0x0b0c2e40 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2d8590 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x0b3e9264 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b4d06cd max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x0b7086d9 param_get_short +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b763263 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bf54bd3 pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x0bfebc07 input_get_keycode +EXPORT_SYMBOL vmlinux 0x0c12e626 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x0c15b1f5 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x0c21fe3e gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x0c356050 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9384c1 vfs_readv +EXPORT_SYMBOL vmlinux 0x0c99579a set_bh_page +EXPORT_SYMBOL vmlinux 0x0c9b6089 nvram_get_size +EXPORT_SYMBOL vmlinux 0x0c9e7f6a may_umount +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cef9826 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x0cf0f3b5 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x0d0cdbee is_container_init +EXPORT_SYMBOL vmlinux 0x0d428916 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d946544 page_symlink +EXPORT_SYMBOL vmlinux 0x0da07a69 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline +EXPORT_SYMBOL vmlinux 0x0dcaad1f dquot_file_open +EXPORT_SYMBOL vmlinux 0x0df9c0e3 unregister_key_type +EXPORT_SYMBOL vmlinux 0x0e023b33 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x0e24b709 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x0e33edce tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5b3555 proto_unregister +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0ea58038 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x0ea998e9 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x0ec28412 journal_stop +EXPORT_SYMBOL vmlinux 0x0ec5a764 bio_split +EXPORT_SYMBOL vmlinux 0x0ed3cf67 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x0edb058d security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x0ef20db1 kernstart_addr +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f3f8b56 sock_i_uid +EXPORT_SYMBOL vmlinux 0x0f59f197 param_array_ops +EXPORT_SYMBOL vmlinux 0x0f9d91b3 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb0e29f init_timer_key +EXPORT_SYMBOL vmlinux 0x0fe508f6 dev_deactivate +EXPORT_SYMBOL vmlinux 0x0fff307a wake_up_process +EXPORT_SYMBOL vmlinux 0x1009708f splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x100d1a18 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x10328692 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x105a92b0 netif_device_detach +EXPORT_SYMBOL vmlinux 0x10662a3a splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x107b98a2 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x1081d789 kernel_read +EXPORT_SYMBOL vmlinux 0x10ca3b5a blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10dc8c77 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x10e0981d find_get_page +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11190b9e journal_get_write_access +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x113feef4 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x11633870 param_set_ushort +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11663cec adb_register +EXPORT_SYMBOL vmlinux 0x11682c04 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x116ccd8c vfs_fstatat +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1175457b sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x11886e11 kobject_del +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x119c9e62 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x119ccc39 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x11a4302c __brelse +EXPORT_SYMBOL vmlinux 0x11a6b07c pci_disable_msix +EXPORT_SYMBOL vmlinux 0x11a89570 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x11ab56f3 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x11b124c4 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x11ced87a set_groups +EXPORT_SYMBOL vmlinux 0x11cf27a9 idr_destroy +EXPORT_SYMBOL vmlinux 0x11d5d1e6 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x11e4d7ee blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1215d71c tty_free_termios +EXPORT_SYMBOL vmlinux 0x122b2348 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x123eb239 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x125154cc proc_create_data +EXPORT_SYMBOL vmlinux 0x125eb881 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x1262b8f1 dev_uc_init +EXPORT_SYMBOL vmlinux 0x127f1cf8 vfs_lstat +EXPORT_SYMBOL vmlinux 0x12819790 macio_release_resources +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12b151d9 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x12bc9407 sync_inode +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12da632f sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x12e081b7 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x12e45c8a dm_register_target +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x130d60b8 vfs_statfs +EXPORT_SYMBOL vmlinux 0x131a54cd xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x132d475d __scsi_add_device +EXPORT_SYMBOL vmlinux 0x133b4ee4 idr_get_next +EXPORT_SYMBOL vmlinux 0x1342a057 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x1342f2aa scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x1356b819 register_exec_domain +EXPORT_SYMBOL vmlinux 0x136542c0 mb_cache_create +EXPORT_SYMBOL vmlinux 0x1375ae83 __destroy_inode +EXPORT_SYMBOL vmlinux 0x13796da4 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x1386e0cd bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x1389f8fa mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x139ca02c scsi_device_put +EXPORT_SYMBOL vmlinux 0x13affbda percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d52715 __lock_page +EXPORT_SYMBOL vmlinux 0x13d6fc50 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x13e38f5c up_read +EXPORT_SYMBOL vmlinux 0x13ec80f3 param_set_short +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x140552fd jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x145ad930 open_exec +EXPORT_SYMBOL vmlinux 0x14811537 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x1488b0eb cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x149f8b6d __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x14c242d0 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x14cacba1 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x14d0f309 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x14d45c0b bio_add_page +EXPORT_SYMBOL vmlinux 0x14e7ca7c alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x14e837a0 idr_find +EXPORT_SYMBOL vmlinux 0x15090b8f devm_ioremap +EXPORT_SYMBOL vmlinux 0x1542b4d4 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x1549d5e2 ps2_end_command +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15864b03 flex_array_get +EXPORT_SYMBOL vmlinux 0x158ea24e icmp_send +EXPORT_SYMBOL vmlinux 0x159fcd6c writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x15e15e8c fifo_set_limit +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x1617ec33 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x163638f9 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x1650e18a scsi_host_get +EXPORT_SYMBOL vmlinux 0x165698a4 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x1666cf6e textsearch_destroy +EXPORT_SYMBOL vmlinux 0x168f9e80 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x1696e757 sk_stream_error +EXPORT_SYMBOL vmlinux 0x16c42197 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x16ca58c5 set_anon_super +EXPORT_SYMBOL vmlinux 0x16dca076 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x16f8fbe5 no_llseek +EXPORT_SYMBOL vmlinux 0x1708dad8 journal_abort +EXPORT_SYMBOL vmlinux 0x173b7aed __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x1761620c dev_addr_flush +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x17a9cac3 dump_seek +EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x17bb7c37 key_revoke +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e28473 fsl_upm_run_pattern +EXPORT_SYMBOL vmlinux 0x17e4ff27 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1822ccd3 napi_get_frags +EXPORT_SYMBOL vmlinux 0x182d7eb4 skb_trim +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184ba3f0 note_scsi_host +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x18522b94 eth_type_trans +EXPORT_SYMBOL vmlinux 0x1890bc10 kill_litter_super +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18af81e6 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x19014654 inet6_getname +EXPORT_SYMBOL vmlinux 0x190e2e5a call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x19119370 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x19193ffe setattr_copy +EXPORT_SYMBOL vmlinux 0x1960e87f mii_check_link +EXPORT_SYMBOL vmlinux 0x19610e1f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x19744f4a ata_print_version +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19cd59ca init_task +EXPORT_SYMBOL vmlinux 0x19ce8008 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x19cf7cef fsync_bdev +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a6729d6 dm_get_device +EXPORT_SYMBOL vmlinux 0x1aac04ad pci_set_master +EXPORT_SYMBOL vmlinux 0x1ac3362e dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1aef5f7d dquot_commit_info +EXPORT_SYMBOL vmlinux 0x1af3cbec serio_close +EXPORT_SYMBOL vmlinux 0x1afb3ba2 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x1aff9385 input_register_handler +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b5b7d9a swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b768d33 bio_map_kern +EXPORT_SYMBOL vmlinux 0x1b777f2e simple_getattr +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b95314c blk_rq_init +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb53b4b security_path_rename +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bd19f95 mount_pseudo +EXPORT_SYMBOL vmlinux 0x1bf0dd41 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x1bf5ff5d init_net +EXPORT_SYMBOL vmlinux 0x1c006e8f __pci_register_driver +EXPORT_SYMBOL vmlinux 0x1c03fab0 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x1c073836 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c6e9088 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c8b0f14 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x1c9b5e9c kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1d069dec dev_driver_string +EXPORT_SYMBOL vmlinux 0x1d1a74ab dev_uc_del +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3865da param_get_invbool +EXPORT_SYMBOL vmlinux 0x1d43d9c9 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x1d44a324 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x1d7d3fe7 pci_map_rom +EXPORT_SYMBOL vmlinux 0x1daee28a percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dcf2528 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd84b50 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x1dde4e51 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x1debd42e __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x1dfb436a mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e3a2d23 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x1e40ab36 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x1e4be876 journal_ack_err +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e79c45f log_start_commit +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea47070 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x1eac5791 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x1eb35c6c __elv_add_request +EXPORT_SYMBOL vmlinux 0x1ecb1d9c scsi_device_get +EXPORT_SYMBOL vmlinux 0x1ef1f75f posix_acl_valid +EXPORT_SYMBOL vmlinux 0x1f19c814 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x1f1d6f78 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x1f23a029 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x1f3082b6 journal_forget +EXPORT_SYMBOL vmlinux 0x1f4030ab km_state_notify +EXPORT_SYMBOL vmlinux 0x1f54bb1b d_alloc +EXPORT_SYMBOL vmlinux 0x1f603725 alloc_disk +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1f81567f d_clear_need_lookup +EXPORT_SYMBOL vmlinux 0x1fa12c06 journal_revoke +EXPORT_SYMBOL vmlinux 0x1fac8d95 pci_request_regions +EXPORT_SYMBOL vmlinux 0x1fc429f5 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x1fde6b74 do_truncate +EXPORT_SYMBOL vmlinux 0x1fea09e8 d_drop +EXPORT_SYMBOL vmlinux 0x1fecdabd agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x1ff006cc tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20030ecd ioremap +EXPORT_SYMBOL vmlinux 0x20369eae blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x204ca671 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x206e748e block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x20737fa0 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x207b70fe unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x207dd5ea udplite_prot +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20ba59b0 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x20f6a05b blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x2117229e f_setown +EXPORT_SYMBOL vmlinux 0x2120d121 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x21322c3c alloc_disk_node +EXPORT_SYMBOL vmlinux 0x214242e2 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x215debb9 tty_hangup +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x215efb6f simple_transaction_get +EXPORT_SYMBOL vmlinux 0x216dba1a d_rehash +EXPORT_SYMBOL vmlinux 0x218d88f0 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x21b71f49 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x21bbef34 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x21d6cf54 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x21f678b9 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x21f935a4 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x220ea251 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222ed0c2 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x225e909e schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2278e94b slhc_remember +EXPORT_SYMBOL vmlinux 0x2283493a llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22890797 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x2299c906 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x229b524c bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x22a3273d mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x22afef27 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22e222ec pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x22f01223 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x22f36686 arp_send +EXPORT_SYMBOL vmlinux 0x22f9bd2d abx500_register_ops +EXPORT_SYMBOL vmlinux 0x2313ff84 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x2319ce59 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x233a6bea key_payload_reserve +EXPORT_SYMBOL vmlinux 0x2349679e scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x236aead0 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x2398fa70 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23abf94d key_validate +EXPORT_SYMBOL vmlinux 0x23c69b2f ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x23d286ff kill_bdev +EXPORT_SYMBOL vmlinux 0x23d4b55f tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x23e4f6d3 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x23ee9635 genphy_suspend +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x241e6cc0 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x24341622 sock_create +EXPORT_SYMBOL vmlinux 0x24362611 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x24529ad3 nla_append +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2463c072 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x2485870f input_register_handle +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x2534c0cc of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x2544d20f pci_disable_ido +EXPORT_SYMBOL vmlinux 0x254ab773 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x2559f892 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x255c9250 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x256767ff alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x256a5250 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x257a28f5 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25df7819 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x25e07130 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg +EXPORT_SYMBOL vmlinux 0x25f78fa7 giveup_altivec +EXPORT_SYMBOL vmlinux 0x261600af mach_chrp +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x264fd268 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x268cc2e0 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x26966d83 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x269b689e pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x26abe9ed cdev_init +EXPORT_SYMBOL vmlinux 0x26b760c4 slhc_init +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26c37113 dev_mc_add +EXPORT_SYMBOL vmlinux 0x26ce6ddc input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x26d7a46e remove_arg_zero +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count +EXPORT_SYMBOL vmlinux 0x27406b13 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x275bcd8a tcp_check_req +EXPORT_SYMBOL vmlinux 0x27815150 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27a65b91 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bec0a7 block_read_full_page +EXPORT_SYMBOL vmlinux 0x27beda2b xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x2804d70a irq_set_chip +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x281e5a4a ip6_route_output +EXPORT_SYMBOL vmlinux 0x2821dc5d scsi_device_resume +EXPORT_SYMBOL vmlinux 0x28253a72 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x283f190b scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x287744b9 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x28781a28 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x28925820 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b14e4f kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x28b51a6d bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x28b65559 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x28f1104a file_remove_suid +EXPORT_SYMBOL vmlinux 0x28fa2493 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x2908934d unlock_super +EXPORT_SYMBOL vmlinux 0x29313734 dquot_enable +EXPORT_SYMBOL vmlinux 0x29323896 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x294b48ad __secpath_destroy +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2970deb3 dev_addr_init +EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x29b96a8a inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x29baa386 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x29bd0552 sk_run_filter +EXPORT_SYMBOL vmlinux 0x29dbab34 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x29f7de37 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x29fcabb5 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a2f9f87 netdev_alert +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a34854a replace_mount_options +EXPORT_SYMBOL vmlinux 0x2a3bf9b1 pipe_unlock +EXPORT_SYMBOL vmlinux 0x2a4c8c4c account_page_writeback +EXPORT_SYMBOL vmlinux 0x2a63b25f of_get_property +EXPORT_SYMBOL vmlinux 0x2a66a674 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x2a68afcb xfrm_input +EXPORT_SYMBOL vmlinux 0x2a69ac25 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x2a71b167 key_task_permission +EXPORT_SYMBOL vmlinux 0x2a7499af journal_check_used_features +EXPORT_SYMBOL vmlinux 0x2a7ebcd4 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x2a9200e9 aio_complete +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ac51264 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x2adc37c7 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b12925d cpumask_next_and +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b2e1108 tty_throttle +EXPORT_SYMBOL vmlinux 0x2b2feea3 phy_find_first +EXPORT_SYMBOL vmlinux 0x2b5a4bbf kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x2b7f85d7 tr_type_trans +EXPORT_SYMBOL vmlinux 0x2b923f91 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x2b9aceb7 dquot_drop +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba2dc41 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2ba7f0b0 kick_iocb +EXPORT_SYMBOL vmlinux 0x2bba48ea iunique +EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception +EXPORT_SYMBOL vmlinux 0x2bc695c0 set_create_files_as +EXPORT_SYMBOL vmlinux 0x2bd5117c revert_creds +EXPORT_SYMBOL vmlinux 0x2bf44924 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x2bf90fdc register_gifconf +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c21caa3 of_device_alloc +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c7b1fca down_timeout +EXPORT_SYMBOL vmlinux 0x2c905c3e mutex_lock +EXPORT_SYMBOL vmlinux 0x2c919c63 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2cc8c86a eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x2cd28e9f xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x2cfa8410 kill_pgrp +EXPORT_SYMBOL vmlinux 0x2d0e4ff3 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x2d12bdf2 try_to_release_page +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d2c99a5 register_key_type +EXPORT_SYMBOL vmlinux 0x2d6ee93d register_console +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2da60c0f serio_unregister_port +EXPORT_SYMBOL vmlinux 0x2db25936 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x2dce1d41 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x2de80018 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x2e164dc5 follow_pfn +EXPORT_SYMBOL vmlinux 0x2e1b5b16 pci_target_state +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e34c256 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x2e4925c3 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x2e4b0854 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2e59fc7a ab8500_gpadc_get +EXPORT_SYMBOL vmlinux 0x2e6d7a24 dma_direct_ops +EXPORT_SYMBOL vmlinux 0x2e77352a set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x2ead7542 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x2eb43a56 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ec8b94f netdev_change_features +EXPORT_SYMBOL vmlinux 0x2ee3a403 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f0757d1 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x2f0fd39d udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x2f242e3f tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x2f36898e of_find_matching_node +EXPORT_SYMBOL vmlinux 0x2f46e8c7 inet_shutdown +EXPORT_SYMBOL vmlinux 0x2f5e08a7 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0x2f7b9492 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x2f99f2ff read_cache_pages +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb4fe6d is_bad_inode +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fbdb58d datagram_poll +EXPORT_SYMBOL vmlinux 0x2fd725e4 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x2fd79ac5 genphy_update_link +EXPORT_SYMBOL vmlinux 0x2fe197f2 skb_clone +EXPORT_SYMBOL vmlinux 0x301891bf vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x30549b96 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x305732bd dev_disable_lro +EXPORT_SYMBOL vmlinux 0x3070dc24 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30bc079e udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30d3ded6 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x30d70fa9 of_get_pci_address +EXPORT_SYMBOL vmlinux 0x30dc4f16 km_new_mapping +EXPORT_SYMBOL vmlinux 0x30e71e2d phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x30eb9702 blk_put_queue +EXPORT_SYMBOL vmlinux 0x30f22715 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x312057b9 unregister_nls +EXPORT_SYMBOL vmlinux 0x3129a633 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x31403588 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x31415d7f __block_write_begin +EXPORT_SYMBOL vmlinux 0x314441ce mdio_bus_type +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315e35d3 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x317397ba tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x317e2a6f __break_lease +EXPORT_SYMBOL vmlinux 0x31814be3 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x3184660a pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x318e9d8e lease_get_mtime +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31938e0e skb_gso_segment +EXPORT_SYMBOL vmlinux 0x31a0fa93 skb_dequeue +EXPORT_SYMBOL vmlinux 0x31a8cf19 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x31f7ca6b cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x32019a35 journal_destroy +EXPORT_SYMBOL vmlinux 0x320c6144 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x321e5f72 ip_fragment +EXPORT_SYMBOL vmlinux 0x322b5ce8 devm_free_irq +EXPORT_SYMBOL vmlinux 0x32312596 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x323df93b blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x32474c5c inet_sendpage +EXPORT_SYMBOL vmlinux 0x3253bd2f inet_put_port +EXPORT_SYMBOL vmlinux 0x325d04dd dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x329dec06 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x32a4b165 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x32aae7da napi_complete +EXPORT_SYMBOL vmlinux 0x32de3bfb agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x3332ed3f mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x334e1cf5 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x3370f386 uart_match_port +EXPORT_SYMBOL vmlinux 0x337ae9dc simple_setattr +EXPORT_SYMBOL vmlinux 0x339cbd88 inode_init_owner +EXPORT_SYMBOL vmlinux 0x33aee389 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33bd038b alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x33cc793d release_sock +EXPORT_SYMBOL vmlinux 0x33cdc831 scsi_free_command +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x3400f3bb mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x343ee6d3 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x346c4ded rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x346cbf0c __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x349cc83f dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x34c4377b dquot_alloc +EXPORT_SYMBOL vmlinux 0x34c53fb5 agp_enable +EXPORT_SYMBOL vmlinux 0x34d4ccb1 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x34f6e089 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x34ffd6da inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x357c90d2 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x357f2c1b inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x35b4694c nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35ca8cfa dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x35dfb0e0 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x35e40f57 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x35fbd6a1 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x360fd18a mmc_request_done +EXPORT_SYMBOL vmlinux 0x36212201 write_inode_now +EXPORT_SYMBOL vmlinux 0x3632af6b dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x36495103 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x3657c3cf pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x3660ddc1 simple_rmdir +EXPORT_SYMBOL vmlinux 0x3690b7f1 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x369f0625 dev_crit +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36bd7987 block_write_end +EXPORT_SYMBOL vmlinux 0x36cd57fa fsl_lbc_ctrl_dev +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f824dc dev_get_flags +EXPORT_SYMBOL vmlinux 0x36ff80a2 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x370528ee phy_start +EXPORT_SYMBOL vmlinux 0x3710b880 md_check_recovery +EXPORT_SYMBOL vmlinux 0x37110740 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x3728298e dcb_getapp +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x373ba4bf sock_init_data +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374f1aa8 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x375ad990 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x3760185f genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x377b8142 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x379f5837 param_set_invbool +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c6a962 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x37e30d34 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x37e59662 ns_capable +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37f6fee5 fsl_lbc_find +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38206286 mntget +EXPORT_SYMBOL vmlinux 0x3856f880 inet6_release +EXPORT_SYMBOL vmlinux 0x387b1912 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x38817595 task_nice +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a1fac6 inet_addr_type +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38d54176 i2c_release_client +EXPORT_SYMBOL vmlinux 0x38e9637e add_disk +EXPORT_SYMBOL vmlinux 0x38f06d95 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x39026463 input_open_device +EXPORT_SYMBOL vmlinux 0x39040159 ilookup +EXPORT_SYMBOL vmlinux 0x3915c7ad pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x392da0cd of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x3955e3c6 kernel_listen +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3988b44a inet_register_protosw +EXPORT_SYMBOL vmlinux 0x39ab48f3 backlight_force_update +EXPORT_SYMBOL vmlinux 0x39ac84c6 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x39cb510c kset_unregister +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39ea7e8f otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x39fa5b4f sk_stop_timer +EXPORT_SYMBOL vmlinux 0x39fb447b of_dev_get +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a220e77 sk_free +EXPORT_SYMBOL vmlinux 0x3a35ab5f jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x3a3caf4e __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x3a5615a3 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x3a5c8f88 single_release +EXPORT_SYMBOL vmlinux 0x3a77155e __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x3a7a1e92 register_md_personality +EXPORT_SYMBOL vmlinux 0x3a8986c6 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x3a8c0d2d pci_enable_device +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9fe3dc tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x3aa2557b setup_new_exec +EXPORT_SYMBOL vmlinux 0x3aa2eb19 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x3ac923ab vfs_readlink +EXPORT_SYMBOL vmlinux 0x3ae76003 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b3c5842 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x3b522806 request_key +EXPORT_SYMBOL vmlinux 0x3b52cc0f save_mount_options +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b6ef1ab xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x3b7f6a2f gen_pool_create +EXPORT_SYMBOL vmlinux 0x3b8d859e max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bece68f do_splice_from +EXPORT_SYMBOL vmlinux 0x3c01f92b skb_pad +EXPORT_SYMBOL vmlinux 0x3c0fc830 register_filesystem +EXPORT_SYMBOL vmlinux 0x3c40a40b end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x3c5379ae scsi_scan_host +EXPORT_SYMBOL vmlinux 0x3c613c10 get_io_context +EXPORT_SYMBOL vmlinux 0x3c7c0538 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cc901f0 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x3cd10212 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ceeb6b4 bio_free +EXPORT_SYMBOL vmlinux 0x3d17e431 request_key_async +EXPORT_SYMBOL vmlinux 0x3d1f2f87 blk_insert_request +EXPORT_SYMBOL vmlinux 0x3d2126e6 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x3d2a0e6f tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x3d51f69c mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x3d5f6c1e framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x3d6a5c58 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x3d93ee61 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x3dc5353f blk_delay_queue +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dd40cf5 should_remove_suid +EXPORT_SYMBOL vmlinux 0x3dda28bf jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3dfca733 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x3e038c8b truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x3e0e9023 param_set_long +EXPORT_SYMBOL vmlinux 0x3e2bc66f inet_add_protocol +EXPORT_SYMBOL vmlinux 0x3e3498f7 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e5b7aa6 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x3e6c329d xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x3e6cfdda generic_removexattr +EXPORT_SYMBOL vmlinux 0x3e82e7d4 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e990c63 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x3ec8886f param_ops_int +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee07b39 sk_common_release +EXPORT_SYMBOL vmlinux 0x3ee89f8a tcp_ioctl +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5bafb4 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x3f9679a7 scsi_print_command +EXPORT_SYMBOL vmlinux 0x3fb18605 kobject_put +EXPORT_SYMBOL vmlinux 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ffcb278 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x4010d69f scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x4029d238 param_set_copystring +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x403a63e0 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x4043c659 bio_init +EXPORT_SYMBOL vmlinux 0x40480752 sget +EXPORT_SYMBOL vmlinux 0x404d4b57 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x406acbaf inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4085b715 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x408b0569 make_EII_client +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40ba43e7 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40e6a96e inet_frags_fini +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x40fcabf1 blk_init_tags +EXPORT_SYMBOL vmlinux 0x4106ebb0 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41370ba6 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x41779437 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41bb26c4 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x41d5b24a ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x41ea9536 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x41f0807f blk_init_queue +EXPORT_SYMBOL vmlinux 0x4207699f security_path_rmdir +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x422506d1 ip6_xmit +EXPORT_SYMBOL vmlinux 0x42295e6c mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x4229f8fa tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x424b3f8d pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x42501857 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x42554ebb splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x42566165 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x4265619b security_path_chmod +EXPORT_SYMBOL vmlinux 0x42677a82 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x4269a564 scsi_add_device +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a54611 dquot_transfer +EXPORT_SYMBOL vmlinux 0x42c3f6b0 follow_up +EXPORT_SYMBOL vmlinux 0x42d3aaa6 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x42f62cd9 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430da95c kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x43548da8 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x436a2562 phy_attach +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437ed0e1 unregister_8022_client +EXPORT_SYMBOL vmlinux 0x439254e5 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x4397e1f9 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x439d67de tty_check_change +EXPORT_SYMBOL vmlinux 0x439fd709 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43a0458b blk_start_plug +EXPORT_SYMBOL vmlinux 0x43b2e8db mmc_add_host +EXPORT_SYMBOL vmlinux 0x43bc7aa4 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x43df9213 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x43e21001 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x43f69a2e rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x4402226a task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x44098db6 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x441864ad kernel_accept +EXPORT_SYMBOL vmlinux 0x4430c75c ida_pre_get +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x443e794e mnt_unpin +EXPORT_SYMBOL vmlinux 0x44402b6f param_get_ulong +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x446a8bcb kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x446a9416 mdiobus_register +EXPORT_SYMBOL vmlinux 0x4475d29c skb_insert +EXPORT_SYMBOL vmlinux 0x4477be01 km_report +EXPORT_SYMBOL vmlinux 0x447c13c7 tcf_register_action +EXPORT_SYMBOL vmlinux 0x4481b37d pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x44b2dd08 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44d6b5e3 dma_find_channel +EXPORT_SYMBOL vmlinux 0x44d8b200 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x44da6e81 vfs_mknod +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x45140e86 kern_path_create +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x45532044 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x455a631c bdput +EXPORT_SYMBOL vmlinux 0x455cb2af fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x4562f113 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x4570bd59 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x4577505d tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45826f57 register_snap_client +EXPORT_SYMBOL vmlinux 0x4588153b tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x45b78368 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x45bd9efd dm_table_put +EXPORT_SYMBOL vmlinux 0x45c4311a __rta_fill +EXPORT_SYMBOL vmlinux 0x45c98d29 skb_pull +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45db72a8 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x45f62460 pci_release_region +EXPORT_SYMBOL vmlinux 0x4612c59d down_trylock +EXPORT_SYMBOL vmlinux 0x46135cfa iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x46263d56 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x463132c5 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x463985bf bio_endio +EXPORT_SYMBOL vmlinux 0x464fee9c put_disk +EXPORT_SYMBOL vmlinux 0x465757c3 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46775f73 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x468ae6b0 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x46b24f45 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x46d12956 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x46e8865e register_netdevice +EXPORT_SYMBOL vmlinux 0x46f19e25 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x4701f531 __get_user_pages +EXPORT_SYMBOL vmlinux 0x472b48d9 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x47505fca pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47e10e71 elevator_exit +EXPORT_SYMBOL vmlinux 0x47f55662 md_write_start +EXPORT_SYMBOL vmlinux 0x48000553 mempool_create_node +EXPORT_SYMBOL vmlinux 0x4806468e tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x481ce6ce cpu_active_mask +EXPORT_SYMBOL vmlinux 0x4839e0af flush_signals +EXPORT_SYMBOL vmlinux 0x483f4f67 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485b1aa8 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x48611d20 __register_chrdev +EXPORT_SYMBOL vmlinux 0x486fefa2 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x48ab7707 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x48b2e3fe inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x48bb6bb6 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x48d194e6 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x48e3f0b6 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x48e9c023 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x48ec619b skb_copy_expand +EXPORT_SYMBOL vmlinux 0x49106fd1 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x494a6886 cdev_add +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x496ca0b3 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x498114ef arp_invalidate +EXPORT_SYMBOL vmlinux 0x498167c4 sync_blockdev +EXPORT_SYMBOL vmlinux 0x498a3811 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x499c76cb ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b7681c clear_user_page +EXPORT_SYMBOL vmlinux 0x49b95614 genl_register_family +EXPORT_SYMBOL vmlinux 0x49b9b244 iget5_locked +EXPORT_SYMBOL vmlinux 0x49bb6197 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x49d7d0e1 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x49ddace4 misc_deregister +EXPORT_SYMBOL vmlinux 0x49e5bd45 __seq_open_private +EXPORT_SYMBOL vmlinux 0x49efaab1 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x4a0f3697 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x4a213ba9 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x4a290d4d cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a434122 simple_statfs +EXPORT_SYMBOL vmlinux 0x4a4c66c9 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x4a72f24c tty_devnum +EXPORT_SYMBOL vmlinux 0x4a981de5 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4abf7275 inet_accept +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b03d461 flush_old_exec +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b20c70e tcp_disconnect +EXPORT_SYMBOL vmlinux 0x4b341371 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b45821e i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b6003d6 key_alloc +EXPORT_SYMBOL vmlinux 0x4b7c1580 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4bd83049 key_unlink +EXPORT_SYMBOL vmlinux 0x4bdd043b copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x4bed99b3 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x4c05a00a __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c11638f unlock_new_inode +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c11c392 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x4c149c53 agp_free_page_array +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c2e4e5c ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x4c33b602 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x4c5025e2 nla_put +EXPORT_SYMBOL vmlinux 0x4c654b14 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x4c696023 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x4c6eed6f proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x4c705399 nf_afinfo +EXPORT_SYMBOL vmlinux 0x4c79811e xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x4c82b35a sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x4c8c7bb4 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cdfa466 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x4d025d04 vfs_stat +EXPORT_SYMBOL vmlinux 0x4d03ba89 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x4d2b7095 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d53a766 blk_run_queue +EXPORT_SYMBOL vmlinux 0x4d770b65 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x4d7c1c53 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4da7c931 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x4dac075b inode_set_bytes +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dceb980 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x4de4c0c9 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df8331b do_splice_to +EXPORT_SYMBOL vmlinux 0x4df93dad journal_start +EXPORT_SYMBOL vmlinux 0x4dfed71c flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x4e01e30e jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e1469aa jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e5232b7 kill_anon_super +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e713125 thaw_bdev +EXPORT_SYMBOL vmlinux 0x4e75e20f qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e853bc9 bio_map_user +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ead9873 __getblk +EXPORT_SYMBOL vmlinux 0x4eaf5b97 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x4eb2b593 notify_change +EXPORT_SYMBOL vmlinux 0x4ee8560d splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x4eef9e4c simple_link +EXPORT_SYMBOL vmlinux 0x4f00a7e0 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x4f037162 agp_backend_release +EXPORT_SYMBOL vmlinux 0x4f0371ca sk_reset_txq +EXPORT_SYMBOL vmlinux 0x4f04e87a bio_copy_user +EXPORT_SYMBOL vmlinux 0x4f0ab96d blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f321bb3 mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f4544a7 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x4f50ea38 pci_get_slot +EXPORT_SYMBOL vmlinux 0x4f590d0b mmc_can_erase +EXPORT_SYMBOL vmlinux 0x4f79af76 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x4fb3d795 log_wait_commit +EXPORT_SYMBOL vmlinux 0x4fbaadd6 register_8022_client +EXPORT_SYMBOL vmlinux 0x4fc9418d proc_dointvec +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe99583 atomic64_dec_if_positive +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x4ffdcff1 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x5001690c __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50262297 bdgrab +EXPORT_SYMBOL vmlinux 0x50384baf vgacon_remap_base +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5074c817 end_page_writeback +EXPORT_SYMBOL vmlinux 0x50818550 thaw_process +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50b5f657 generic_readlink +EXPORT_SYMBOL vmlinux 0x50e29080 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x50efb6dc blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x511c52ce contig_page_data +EXPORT_SYMBOL vmlinux 0x514583e0 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x51461273 ip_options_compile +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x515fbf20 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x5173d68f generic_make_request +EXPORT_SYMBOL vmlinux 0x5184de20 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x519eaf48 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e54a64 skb_push +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f4c168 input_grab_device +EXPORT_SYMBOL vmlinux 0x51fc52e8 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x51fd5a78 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x522d9090 twl6040_irq_exit +EXPORT_SYMBOL vmlinux 0x5248bab3 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x52678f37 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52bbd2a4 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x52d2fcbb locks_init_lock +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52eeaca6 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x52f1645a scm_fp_dup +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53112cee mmc_can_trim +EXPORT_SYMBOL vmlinux 0x531b64b5 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x5322d54f netdev_err +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x534f41d1 posix_test_lock +EXPORT_SYMBOL vmlinux 0x5357c619 do_SAK +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5397f2d3 posix_acl_init +EXPORT_SYMBOL vmlinux 0x53b9bf4c gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x53d9b7d5 devm_iounmap +EXPORT_SYMBOL vmlinux 0x53dffe37 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53ed97d8 scsi_unregister +EXPORT_SYMBOL vmlinux 0x53ee4362 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x53f0b8d4 scsi_execute +EXPORT_SYMBOL vmlinux 0x53f4853c kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x53fc001c generic_setxattr +EXPORT_SYMBOL vmlinux 0x53fd0bf3 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x5412c7c7 up +EXPORT_SYMBOL vmlinux 0x5414934b simple_rename +EXPORT_SYMBOL vmlinux 0x542213e8 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x542a27b2 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5455c21a nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x5458c2cc i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x545e920d pagevec_lookup +EXPORT_SYMBOL vmlinux 0x54779efe mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x54853616 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x54a59011 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54c9d31e devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x54dd64d2 write_one_page +EXPORT_SYMBOL vmlinux 0x54ddd39c dmam_pool_create +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f6db10 __napi_schedule +EXPORT_SYMBOL vmlinux 0x54faefcd pci_scan_slot +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x554350cf lro_receive_frags +EXPORT_SYMBOL vmlinux 0x55467ede fsl_upm_find +EXPORT_SYMBOL vmlinux 0x5549f8cd get_agp_version +EXPORT_SYMBOL vmlinux 0x5559a20c kern_unmount +EXPORT_SYMBOL vmlinux 0x555b5a18 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55b3ccb1 scsi_host_put +EXPORT_SYMBOL vmlinux 0x55c51bb8 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x55e17125 blk_start_request +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x56188748 kill_fasync +EXPORT_SYMBOL vmlinux 0x5620c4e6 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5640353d dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x5642af33 sock_wake_async +EXPORT_SYMBOL vmlinux 0x564de088 agp_put_bridge +EXPORT_SYMBOL vmlinux 0x5671b3b2 powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0x56903e8b aio_put_req +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56faa38b netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x5727bbd9 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5751b3df ppp_input +EXPORT_SYMBOL vmlinux 0x5753372f neigh_seq_next +EXPORT_SYMBOL vmlinux 0x57558a56 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57649b59 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5771b847 macio_dev_get +EXPORT_SYMBOL vmlinux 0x5785384a flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e3e457 get_disk +EXPORT_SYMBOL vmlinux 0x57fb990a devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x580fbc2e pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x58294477 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x589fe60e dev_mc_init +EXPORT_SYMBOL vmlinux 0x58ac528b flush_hash_entry +EXPORT_SYMBOL vmlinux 0x58c6a9f8 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x5901a4f2 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x59088c35 read_cache_page +EXPORT_SYMBOL vmlinux 0x5926b79e jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x595342f7 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x5969b3d0 set_disk_ro +EXPORT_SYMBOL vmlinux 0x5995f918 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59b9a4bc dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x59bc0811 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x59bf3ff5 journal_init_dev +EXPORT_SYMBOL vmlinux 0x59c951aa pneigh_lookup +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5a037733 netdev_update_features +EXPORT_SYMBOL vmlinux 0x5a077766 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x5a464e34 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x5a507419 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x5a61dad7 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x5a734609 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a761d93 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x5a86a430 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ +EXPORT_SYMBOL vmlinux 0x5ac340df tcp_parse_options +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b24ed7a dput +EXPORT_SYMBOL vmlinux 0x5b2b213f xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x5b2bc848 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b4868be get_phy_id +EXPORT_SYMBOL vmlinux 0x5b9675c0 find_or_create_page +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5baab8de journal_update_format +EXPORT_SYMBOL vmlinux 0x5bc7fa62 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x5bcc00b8 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x5bcce9e7 lro_flush_all +EXPORT_SYMBOL vmlinux 0x5c124732 mnt_pin +EXPORT_SYMBOL vmlinux 0x5c18df70 elv_register_queue +EXPORT_SYMBOL vmlinux 0x5c251875 pci_restore_state +EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c3d5c59 __quota_error +EXPORT_SYMBOL vmlinux 0x5c3dca9a skb_append +EXPORT_SYMBOL vmlinux 0x5c4e1dd4 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x5c5a2ba7 generic_fillattr +EXPORT_SYMBOL vmlinux 0x5c64429d ifla_policy +EXPORT_SYMBOL vmlinux 0x5c6c6a63 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x5c6d00db d_alloc_root +EXPORT_SYMBOL vmlinux 0x5c810f62 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x5c9988ee inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x5ca850c4 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x5cb05f1c __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x5cc9bb99 mmc_start_req +EXPORT_SYMBOL vmlinux 0x5ce69ee7 sock_no_connect +EXPORT_SYMBOL vmlinux 0x5d26b365 stop_tty +EXPORT_SYMBOL vmlinux 0x5d4af1f7 ppp_input_error +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6bdce1 flex_array_alloc +EXPORT_SYMBOL vmlinux 0x5d770057 find_lock_page +EXPORT_SYMBOL vmlinux 0x5d9fdff9 consume_skb +EXPORT_SYMBOL vmlinux 0x5df73517 proc_dostring +EXPORT_SYMBOL vmlinux 0x5e054ce4 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x5e0c23c5 kmap_to_page +EXPORT_SYMBOL vmlinux 0x5e0c6aa2 tty_port_close +EXPORT_SYMBOL vmlinux 0x5e38d611 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e529b19 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5eb5689c __nla_put +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed8beb8 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5eebd206 give_up_console +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f1a2fbe generic_read_dir +EXPORT_SYMBOL vmlinux 0x5f29db22 padata_do_serial +EXPORT_SYMBOL vmlinux 0x5f52894a wait_iff_congested +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f80233d iget_locked +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fac15b5 seq_open_private +EXPORT_SYMBOL vmlinux 0x5fb66688 ll_rw_block +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600946ef page_readlink +EXPORT_SYMBOL vmlinux 0x600b7d3a blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x604660a8 tty_vhangup +EXPORT_SYMBOL vmlinux 0x604d2627 d_alloc_name +EXPORT_SYMBOL vmlinux 0x6057911c bdev_read_only +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x606edb10 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x60743f43 kunmap_high +EXPORT_SYMBOL vmlinux 0x6086fae9 rwsem_wake +EXPORT_SYMBOL vmlinux 0x60892825 twl6040_power +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60e529b5 nla_reserve +EXPORT_SYMBOL vmlinux 0x60e6315f skb_queue_purge +EXPORT_SYMBOL vmlinux 0x60ff1708 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x610cf0af abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x616892fd scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x6187578b invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61bf8489 block_write_begin +EXPORT_SYMBOL vmlinux 0x61c41773 __put_cred +EXPORT_SYMBOL vmlinux 0x61d3597c unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x61d3a730 journal_wipe +EXPORT_SYMBOL vmlinux 0x61ddb759 unlock_page +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x61f5d4a7 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x61f6307e pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x6201ece9 free_buffer_head +EXPORT_SYMBOL vmlinux 0x62223951 filemap_flush +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x62354e8d dev_remove_pack +EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type +EXPORT_SYMBOL vmlinux 0x624142cd pci_iounmap +EXPORT_SYMBOL vmlinux 0x6251fc37 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x62538167 slhc_toss +EXPORT_SYMBOL vmlinux 0x6258ff7a panic_notifier_list +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628332e8 pmu_power_flags +EXPORT_SYMBOL vmlinux 0x628731ae blkdev_put +EXPORT_SYMBOL vmlinux 0x6292bd43 misc_register +EXPORT_SYMBOL vmlinux 0x62a1068b key_reject_and_link +EXPORT_SYMBOL vmlinux 0x62cd8754 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x62edc47d lock_may_read +EXPORT_SYMBOL vmlinux 0x63060f41 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x6332cc1a audit_log_start +EXPORT_SYMBOL vmlinux 0x6337dfce ab8500_gpadc_convert +EXPORT_SYMBOL vmlinux 0x634700b0 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x634ccd45 mount_subtree +EXPORT_SYMBOL vmlinux 0x6351337d netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x635dd48f backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x636cb80b call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x638edbaf blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x639c24af of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x63a89d24 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x63b5cd15 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x63baf77a scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x63c3b223 udp_seq_open +EXPORT_SYMBOL vmlinux 0x63d1645f elv_rb_del +EXPORT_SYMBOL vmlinux 0x63d69f63 elevator_change +EXPORT_SYMBOL vmlinux 0x63d8415d dst_alloc +EXPORT_SYMBOL vmlinux 0x63d9113c netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x63e00335 journal_create +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f80745 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64266a90 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x643eaec8 param_get_string +EXPORT_SYMBOL vmlinux 0x644b3007 iput +EXPORT_SYMBOL vmlinux 0x645f9fba sk_alloc +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x648f1a49 km_query +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64c28b8b pci_set_power_state +EXPORT_SYMBOL vmlinux 0x64c597a0 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65291cff timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x657504d3 sk_wait_data +EXPORT_SYMBOL vmlinux 0x6585d299 locks_free_lock +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x6589b079 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x65958dae inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65defbc7 request_firmware +EXPORT_SYMBOL vmlinux 0x65ed21fb inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x65f7be35 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x65fbf03d ip6_frag_match +EXPORT_SYMBOL vmlinux 0x666587a4 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x669dd28a posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x66a501cf zero_fill_bio +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66cffcd1 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66dd9857 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x66ddffea input_set_keycode +EXPORT_SYMBOL vmlinux 0x66df8035 input_free_device +EXPORT_SYMBOL vmlinux 0x66e3e399 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x66ffac40 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x67142ba2 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x67155d13 vfs_unlink +EXPORT_SYMBOL vmlinux 0x6723431c skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x673099ab abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x6737e067 register_con_driver +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x67569709 posix_lock_file +EXPORT_SYMBOL vmlinux 0x6764494e pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x676bd31b generic_setlease +EXPORT_SYMBOL vmlinux 0x6770699e d_instantiate +EXPORT_SYMBOL vmlinux 0x67720f49 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x67b3e93e of_get_mac_address +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67cfbec7 dcache_readdir +EXPORT_SYMBOL vmlinux 0x6849a15f flex_array_clear +EXPORT_SYMBOL vmlinux 0x685b3139 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x6862fdbd nonseekable_open +EXPORT_SYMBOL vmlinux 0x687b70e1 skb_checksum +EXPORT_SYMBOL vmlinux 0x687e9226 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x689546de mapping_tagged +EXPORT_SYMBOL vmlinux 0x689ee7ea phy_register_fixup +EXPORT_SYMBOL vmlinux 0x68a30b3d __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x68b19da1 blk_end_request +EXPORT_SYMBOL vmlinux 0x68e0e289 idr_remove +EXPORT_SYMBOL vmlinux 0x68f34313 d_splice_alias +EXPORT_SYMBOL vmlinux 0x68ffee1a xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x690a84ef i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x691eb55f ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x696df884 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6971c3df __any_online_cpu +EXPORT_SYMBOL vmlinux 0x6992c48d ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a44d02 pci_find_capability +EXPORT_SYMBOL vmlinux 0x69a6e61f block_truncate_page +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d7e5b8 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f527d1 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x69f9199c blk_end_request_all +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a055b60 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x6a0adc62 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x6a3faf3b mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a65d32d bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a886c94 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x6a915744 lease_modify +EXPORT_SYMBOL vmlinux 0x6a96611d cdrom_check_events +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ace3320 seq_write +EXPORT_SYMBOL vmlinux 0x6aff7059 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x6b0b0eac neigh_direct_output +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b9433cd vm_map_ram +EXPORT_SYMBOL vmlinux 0x6baae653 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc62c96 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x6bd5b75a blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be2bd3b seq_release_private +EXPORT_SYMBOL vmlinux 0x6c058637 input_register_device +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c1e57f6 vfs_open +EXPORT_SYMBOL vmlinux 0x6c2a5c73 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c665691 flex_array_shrink +EXPORT_SYMBOL vmlinux 0x6c6bf53a sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x6c6cc83f tty_port_close_start +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c99a300 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read +EXPORT_SYMBOL vmlinux 0x6cb9195a input_event +EXPORT_SYMBOL vmlinux 0x6cbc60b1 end_writeback +EXPORT_SYMBOL vmlinux 0x6cc7a63e simple_write_begin +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cddfa9e pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x6cde7bb9 dev_set_group +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d1e9a8b xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d6c2a94 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d73f252 cad_pid +EXPORT_SYMBOL vmlinux 0x6d7b4a99 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x6d838167 proto_register +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6daa4144 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x6dba5952 eth_header +EXPORT_SYMBOL vmlinux 0x6dd197e5 thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x6dd94aaa i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x6de517b6 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x6deaa11b scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfc9ac2 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x6e1ac7b2 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x6e2d394b sock_setsockopt +EXPORT_SYMBOL vmlinux 0x6e2f398f dma_sync_wait +EXPORT_SYMBOL vmlinux 0x6e6fb0e3 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e8e9313 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea32e93 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x6ec2171b scsi_block_requests +EXPORT_SYMBOL vmlinux 0x6eed416d filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x6f0a5dee unload_nls +EXPORT_SYMBOL vmlinux 0x6f126047 netdev_printk +EXPORT_SYMBOL vmlinux 0x6f35f6aa __scsi_put_command +EXPORT_SYMBOL vmlinux 0x6f47786d blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x6f72554d generic_file_mmap +EXPORT_SYMBOL vmlinux 0x6f95119f page_put_link +EXPORT_SYMBOL vmlinux 0x6f9e744a pcim_iounmap +EXPORT_SYMBOL vmlinux 0x6fa4576c tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x6fb557b1 journal_force_commit +EXPORT_SYMBOL vmlinux 0x6fc9bace journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fcc799a dev_get_by_name +EXPORT_SYMBOL vmlinux 0x6fdac40e scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x6fe470e1 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x6fe711ed swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x6fe9e24f tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x6ffdd2e4 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70049f29 journal_errno +EXPORT_SYMBOL vmlinux 0x7016bfb6 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x703a0c80 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x7043804c netif_device_attach +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x70db00f0 phy_detach +EXPORT_SYMBOL vmlinux 0x70e0f494 sock_no_getname +EXPORT_SYMBOL vmlinux 0x70ecc5eb bdevname +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x711b816c i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x7125b4f5 blk_peek_request +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x714ce3d7 serio_reconnect +EXPORT_SYMBOL vmlinux 0x71528178 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x7167e75b sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x71a445cc scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71c98614 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x71d3b197 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x71e488f6 dev_addr_add +EXPORT_SYMBOL vmlinux 0x720c9564 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x7225f4e9 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x7234eafb otg_state_string +EXPORT_SYMBOL vmlinux 0x7247e29e pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x724f1901 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x725c3c82 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x72600111 nf_register_hook +EXPORT_SYMBOL vmlinux 0x72aa82c6 param_ops_charp +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72d758e6 __netif_schedule +EXPORT_SYMBOL vmlinux 0x72dbb13c ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x72e50086 vm_stat +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72fedb1a xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x730ff363 param_set_uint +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x731d9cc5 pci_ltr_supported +EXPORT_SYMBOL vmlinux 0x731e6dad netdev_warn +EXPORT_SYMBOL vmlinux 0x73225da9 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x732b7833 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x732e0f40 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x733cdc22 pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0x734a6155 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x736c79dc param_get_byte +EXPORT_SYMBOL vmlinux 0x7370b429 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x73710a3e dqstats +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x7380b2f5 force_sig +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73d387d5 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73ea7baf mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x73f74c2f netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x74001f32 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x744542bb in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x74467eb8 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x74470963 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x74696b3f kmalloc_caches +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x746bdc36 dquot_disable +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74fbb5a1 fb_pan_display +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x750388a8 phy_device_register +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x751b2247 param_get_bool +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x753e891f dev_activate +EXPORT_SYMBOL vmlinux 0x75447bc9 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x75646e98 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +EXPORT_SYMBOL vmlinux 0x757dde33 __kfree_skb +EXPORT_SYMBOL vmlinux 0x758141bb mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x7597dcc0 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75bfd777 set_blocksize +EXPORT_SYMBOL vmlinux 0x75d60f76 neigh_for_each +EXPORT_SYMBOL vmlinux 0x75f9f192 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76177d1e ppp_unit_number +EXPORT_SYMBOL vmlinux 0x7622b837 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x7639cafe unregister_filesystem +EXPORT_SYMBOL vmlinux 0x763c648b inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764b94d8 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x764dd343 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x7661bdd3 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x7670646b __inet6_hash +EXPORT_SYMBOL vmlinux 0x768a98cc find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x768cde32 kmap_high +EXPORT_SYMBOL vmlinux 0x768cecc5 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x769d15f1 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x76bafcfc blk_get_request +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e07962 idr_get_new +EXPORT_SYMBOL vmlinux 0x76f1441d __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x77008a27 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77722611 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77b851c4 cacheable_memzero +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d65b2c mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77dfc0c8 netdev_state_change +EXPORT_SYMBOL vmlinux 0x77e4a594 tcp_prot +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77edf722 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x77f7cd7d ps2_init +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77fc778f input_unregister_handler +EXPORT_SYMBOL vmlinux 0x77fe1971 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x78533f8f kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x787fdd6c tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x7887b27b vga_put +EXPORT_SYMBOL vmlinux 0x788823d6 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x788e6151 __dev_printk +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x78a41fd9 get_user_pages +EXPORT_SYMBOL vmlinux 0x78a9f987 simple_lookup +EXPORT_SYMBOL vmlinux 0x78b03b1e submit_bio +EXPORT_SYMBOL vmlinux 0x78ca23c5 sock_create_lite +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e0e0e7 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x78ed3e5c __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x7914c68c proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x794cd6c1 cdrom_open +EXPORT_SYMBOL vmlinux 0x79578100 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x796d1e03 abort_creds +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7998400d pci_request_region +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79e6ac76 sock_no_poll +EXPORT_SYMBOL vmlinux 0x79f5634c of_platform_device_create +EXPORT_SYMBOL vmlinux 0x7a0960fe pci_pme_active +EXPORT_SYMBOL vmlinux 0x7a105819 inode_permission +EXPORT_SYMBOL vmlinux 0x7a1390f7 param_set_bool +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a28252d blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a4614ad of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x7a4c486e mark_page_accessed +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a739d51 ata_port_printk +EXPORT_SYMBOL vmlinux 0x7a8a1834 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x7a947509 tty_port_put +EXPORT_SYMBOL vmlinux 0x7a9a43bf scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x7abac097 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x7ac512e6 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x7ad82d35 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b078df1 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x7b0e9c69 thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x7b16fee9 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x7b633d4c jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x7b6fecf4 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x7b7220f2 d_genocide +EXPORT_SYMBOL vmlinux 0x7bc3be33 arp_find +EXPORT_SYMBOL vmlinux 0x7bd6ed2a mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c0650f1 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x7c0ebec4 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x7c40c0ff pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x7c43a8b1 vga_get +EXPORT_SYMBOL vmlinux 0x7c447f47 serio_open +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c8b64f5 phy_print_status +EXPORT_SYMBOL vmlinux 0x7c8c96c9 mmc_do_release_host +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cbb729a mmc_resume_host +EXPORT_SYMBOL vmlinux 0x7cc28f1a send_sig +EXPORT_SYMBOL vmlinux 0x7ce0ae7c param_get_long +EXPORT_SYMBOL vmlinux 0x7ce55c6b take_over_console +EXPORT_SYMBOL vmlinux 0x7d03071a pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x7d0ab79e udp_poll +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d1f9511 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x7d22e87d scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x7d370d2c load_nls +EXPORT_SYMBOL vmlinux 0x7d7f5fc6 ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x7d95c1c5 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x7d95df3c tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x7da78064 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x7db72bc3 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7de7959f grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7df2556f prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x7e0e353a vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x7e0f42fd neigh_update +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e4ebbae find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x7e64bd7c cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x7e7614f1 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x7e7b9c09 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x7e87227e slhc_compress +EXPORT_SYMBOL vmlinux 0x7eaf22d3 pci_clear_master +EXPORT_SYMBOL vmlinux 0x7ebb9dec iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x7ed84e69 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x7ee3df08 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x7eff10d6 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f430c2f inet_ioctl +EXPORT_SYMBOL vmlinux 0x7f8c7ede mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x7fea4136 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x80085512 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x803119a6 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x80384575 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x804afb45 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x804ce57c neigh_ifdown +EXPORT_SYMBOL vmlinux 0x8050d7de __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x806052e1 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x806d1390 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x806e0bba __mutex_init +EXPORT_SYMBOL vmlinux 0x807cb4b3 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x8085acf6 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x808af687 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x80a583fb module_put +EXPORT_SYMBOL vmlinux 0x80bbc42d unregister_quota_format +EXPORT_SYMBOL vmlinux 0x8108ba2c ppp_register_channel +EXPORT_SYMBOL vmlinux 0x810b3618 param_ops_string +EXPORT_SYMBOL vmlinux 0x8137400d max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x814923d9 block_write_full_page +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8152b2cf ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8172779c kmem_cache_create +EXPORT_SYMBOL vmlinux 0x81819480 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x818b6c6b unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x819f78d2 mdiobus_read +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81a38c36 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x81b1babe fb_show_logo +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81ce048a skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x81d4b693 do_sync_read +EXPORT_SYMBOL vmlinux 0x81d9f13e follow_down_one +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e05f5c sg_miter_start +EXPORT_SYMBOL vmlinux 0x81f15bf5 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x81fe75af journal_init_inode +EXPORT_SYMBOL vmlinux 0x82034bdc posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x82431012 bioset_free +EXPORT_SYMBOL vmlinux 0x82458981 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x8250dac4 filp_open +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8265e2b5 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x82976700 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x82a3572f input_release_device +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82cad3e3 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x82dfd706 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82e933dc blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x82f0fcfa mdiobus_free +EXPORT_SYMBOL vmlinux 0x83039cae dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x8305c36b dquot_operations +EXPORT_SYMBOL vmlinux 0x83098584 d_move +EXPORT_SYMBOL vmlinux 0x83149f08 register_nls +EXPORT_SYMBOL vmlinux 0x8316c666 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x831e372b dquot_scan_active +EXPORT_SYMBOL vmlinux 0x8334df68 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x8343cd74 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8355e3b4 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x835de343 journal_flush +EXPORT_SYMBOL vmlinux 0x83641da3 del_gendisk +EXPORT_SYMBOL vmlinux 0x837c2b83 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8380bf6c serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83a826e5 inode_change_ok +EXPORT_SYMBOL vmlinux 0x83b46947 unregister_console +EXPORT_SYMBOL vmlinux 0x83c7c825 arp_tbl +EXPORT_SYMBOL vmlinux 0x83dbaa84 __sock_create +EXPORT_SYMBOL vmlinux 0x83e246aa padata_do_parallel +EXPORT_SYMBOL vmlinux 0x8404eb95 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x840cb449 tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0x841ffa60 of_node_put +EXPORT_SYMBOL vmlinux 0x8436f8e3 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +EXPORT_SYMBOL vmlinux 0x8457f219 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x846bcc01 dm_table_get +EXPORT_SYMBOL vmlinux 0x84750c1a phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84cfcc67 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x84ec03a5 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x85007c0a con_is_bound +EXPORT_SYMBOL vmlinux 0x8505e09f input_set_capability +EXPORT_SYMBOL vmlinux 0x8516b172 __devm_request_region +EXPORT_SYMBOL vmlinux 0x85268514 flush_tlb_range +EXPORT_SYMBOL vmlinux 0x8541bccc intercept_table +EXPORT_SYMBOL vmlinux 0x854e0a93 get_super +EXPORT_SYMBOL vmlinux 0x855969af tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x858e5273 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85b973eb tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x85cdcc07 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x85dc5c99 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x85dd6388 machine_id +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85ebfcec km_state_expired +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x865abe79 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8682d04c generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86b803f8 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x86bfb23a migrate_page +EXPORT_SYMBOL vmlinux 0x86c1f7ae __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x86ce7568 elevator_init +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86e1ac12 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x86e3663a dquot_quota_off +EXPORT_SYMBOL vmlinux 0x86f3c320 security_inode_permission +EXPORT_SYMBOL vmlinux 0x86f3fcda blk_requeue_request +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x8711d315 phy_device_free +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x872ffc82 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x873e3623 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x8762d26a xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x877f1024 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x879c4503 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x87b13327 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x87c02e24 fb_class +EXPORT_SYMBOL vmlinux 0x87ef52b3 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x87f5f1db locks_delete_block +EXPORT_SYMBOL vmlinux 0x87fdbaac filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x880c9e40 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88233987 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x882df2c6 security_path_chown +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x885c4286 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x887e769d cdrom_release +EXPORT_SYMBOL vmlinux 0x887f386c ip_route_input_common +EXPORT_SYMBOL vmlinux 0x8884d4a3 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x889842d5 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x88b9f571 ipv4_specific +EXPORT_SYMBOL vmlinux 0x88daf827 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x88ed0505 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x89007483 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x89024e2f mem_map +EXPORT_SYMBOL vmlinux 0x891aa907 input_unregister_device +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x894b7175 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x89656b6f i2c_clients_command +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x897f061d downgrade_write +EXPORT_SYMBOL vmlinux 0x89a471b2 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x89ae357d release_firmware +EXPORT_SYMBOL vmlinux 0x89b3107b isa_mem_base +EXPORT_SYMBOL vmlinux 0x89b3273e pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x89b51614 user_path_create +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89da4432 of_iomap +EXPORT_SYMBOL vmlinux 0x89ea98f3 dev_trans_start +EXPORT_SYMBOL vmlinux 0x8a3a6a29 ihold +EXPORT_SYMBOL vmlinux 0x8a42b6c4 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a6ac417 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x8a79b4fa inet_listen +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aad8f1a pci_get_class +EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add +EXPORT_SYMBOL vmlinux 0x8ac96214 rtnl_notify +EXPORT_SYMBOL vmlinux 0x8ac9e85e dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x8ad8d21c soft_cursor +EXPORT_SYMBOL vmlinux 0x8adec6ba proc_symlink +EXPORT_SYMBOL vmlinux 0x8b05b6a0 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b1c6cb5 pci_dev_get +EXPORT_SYMBOL vmlinux 0x8b553597 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x8b6c6d6a swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x8b767ea9 udp_disconnect +EXPORT_SYMBOL vmlinux 0x8b8858d7 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x8b9df453 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x8bab290c generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x8bca0bd3 security_path_truncate +EXPORT_SYMBOL vmlinux 0x8bd73150 vc_cons +EXPORT_SYMBOL vmlinux 0x8be07232 eth_header_cache +EXPORT_SYMBOL vmlinux 0x8beb358a macio_request_resource +EXPORT_SYMBOL vmlinux 0x8bed30d1 poll_freewait +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c382ac4 ppc_md +EXPORT_SYMBOL vmlinux 0x8c5c89dd dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x8c6b3e0a dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x8c7a3757 of_get_named_gpio_flags +EXPORT_SYMBOL vmlinux 0x8c9fb602 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x8cb27179 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x8cb70c26 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd2570f mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x8cf1dd70 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x8cfe8766 inet_bind +EXPORT_SYMBOL vmlinux 0x8d0291ad generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x8d07015c sock_create_kern +EXPORT_SYMBOL vmlinux 0x8d0bb505 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x8d110e19 __serio_register_port +EXPORT_SYMBOL vmlinux 0x8d15ce77 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d9f1bea nf_register_hooks +EXPORT_SYMBOL vmlinux 0x8ddb10ae nf_reinject +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8df5da63 memstart_addr +EXPORT_SYMBOL vmlinux 0x8df793b7 input_allocate_device +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e18e0ff uart_update_timeout +EXPORT_SYMBOL vmlinux 0x8e2ae3c7 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x8e2b26ff neigh_table_clear +EXPORT_SYMBOL vmlinux 0x8e4b1069 kobject_get +EXPORT_SYMBOL vmlinux 0x8e4d9e0f security_task_getsecid +EXPORT_SYMBOL vmlinux 0x8e555738 param_get_uint +EXPORT_SYMBOL vmlinux 0x8e63350d idr_replace +EXPORT_SYMBOL vmlinux 0x8e827151 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x8e953603 lookup_one_len +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f0c9dd2 __blk_end_request +EXPORT_SYMBOL vmlinux 0x8f10225c phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x8f2c3984 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f4f9c53 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x8f79a9b4 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x8f805cde __cleancache_flush_inode +EXPORT_SYMBOL vmlinux 0x8f81da4b input_reset_device +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8f865552 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x8fbf37e0 profile_pc +EXPORT_SYMBOL vmlinux 0x8fc7f839 param_set_charp +EXPORT_SYMBOL vmlinux 0x8fd7d508 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x8ff66782 param_get_ushort +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x900c079b tcp_seq_open +EXPORT_SYMBOL vmlinux 0x9026fe4b md_done_sync +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x90597449 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x905bba18 vm_event_states +EXPORT_SYMBOL vmlinux 0x90712f67 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x90a95767 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x9117bb33 dev_err +EXPORT_SYMBOL vmlinux 0x91180433 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x91470597 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91ad9583 padata_free +EXPORT_SYMBOL vmlinux 0x91bd2ade unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x91d88e48 __debugger_dabr_match +EXPORT_SYMBOL vmlinux 0x91dcd689 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x91dff38d netpoll_print_options +EXPORT_SYMBOL vmlinux 0x922a6799 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92454773 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x9273a8cc udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x928dc8b5 rename_lock +EXPORT_SYMBOL vmlinux 0x9292a232 vfs_getattr +EXPORT_SYMBOL vmlinux 0x92a2c46d ida_get_new +EXPORT_SYMBOL vmlinux 0x92adaa2e scsi_register_driver +EXPORT_SYMBOL vmlinux 0x92c0a3b7 dump_write +EXPORT_SYMBOL vmlinux 0x92d7a546 nf_log_register +EXPORT_SYMBOL vmlinux 0x92fc00e5 noop_llseek +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request +EXPORT_SYMBOL vmlinux 0x931a4699 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x931a7fb7 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x9350b494 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x9372288c writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x93997a20 mpage_writepage +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b8510c netlink_set_err +EXPORT_SYMBOL vmlinux 0x93bf9195 bio_put +EXPORT_SYMBOL vmlinux 0x93c61997 dma_set_mask +EXPORT_SYMBOL vmlinux 0x93cfeee5 kthread_stop +EXPORT_SYMBOL vmlinux 0x93dc48f6 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x93e6edc1 sock_rfree +EXPORT_SYMBOL vmlinux 0x93f9fb3c sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940ff175 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x94112f98 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x94231694 mpage_readpage +EXPORT_SYMBOL vmlinux 0x942599e7 task_ns_capable +EXPORT_SYMBOL vmlinux 0x9445c923 dev_add_pack +EXPORT_SYMBOL vmlinux 0x94864c7a wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94c3be14 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x94e57730 inet_select_addr +EXPORT_SYMBOL vmlinux 0x94f29a40 padata_stop +EXPORT_SYMBOL vmlinux 0x950169ba rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x951c0fcc mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x951e0abd sock_no_listen +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x9528b8fb seq_open +EXPORT_SYMBOL vmlinux 0x953ae830 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x953db383 free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9543edae I_BDEV +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954fd42c ip_defrag +EXPORT_SYMBOL vmlinux 0x95995856 pci_disable_device +EXPORT_SYMBOL vmlinux 0x95b7146b blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x95cca5bc kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x95ef4aa9 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x95f567ea blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x95faa9f9 agp_create_memory +EXPORT_SYMBOL vmlinux 0x96392a9b freeze_bdev +EXPORT_SYMBOL vmlinux 0x9642e168 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x964df7a9 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x967bbc2f __napi_complete +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x969dc368 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x96b33c3e ether_setup +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96dbcca2 ioremap_prot +EXPORT_SYMBOL vmlinux 0x9704e93a ida_get_new_above +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x973f7074 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x97452aa2 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x977f9dee keyring_clear +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x979d3e12 backlight_device_register +EXPORT_SYMBOL vmlinux 0x97cc6d59 serio_interrupt +EXPORT_SYMBOL vmlinux 0x97e70d8d wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x97ed88a9 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x97f5e2c7 seq_release +EXPORT_SYMBOL vmlinux 0x97f5f1cf neigh_event_ns +EXPORT_SYMBOL vmlinux 0x982214c8 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x98305c0a scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x9847ef33 would_dump +EXPORT_SYMBOL vmlinux 0x9851ed65 llc_sap_close +EXPORT_SYMBOL vmlinux 0x985d0d73 i2c_master_send +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98733542 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x987c8661 touch_atime +EXPORT_SYMBOL vmlinux 0x98860e74 user_revoke +EXPORT_SYMBOL vmlinux 0x98874749 of_get_next_child +EXPORT_SYMBOL vmlinux 0x98887f4a neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x9889a56a scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x98a7c6a8 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x98bf7813 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x98cfe242 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x98df59b1 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x98f5f056 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x98f7ccbd set_binfmt +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x98faa5b8 bdi_init +EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ +EXPORT_SYMBOL vmlinux 0x9947d707 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x994b3f33 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x994f4de4 seq_putc +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x9959d317 vga_tryget +EXPORT_SYMBOL vmlinux 0x99614845 register_framebuffer +EXPORT_SYMBOL vmlinux 0x996a00c2 install_exec_creds +EXPORT_SYMBOL vmlinux 0x997fb87a __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x99812f98 drop_super +EXPORT_SYMBOL vmlinux 0x9985394a napi_frags_finish +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99b35cb4 mii_nway_restart +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99e9d6ec tcp_read_sock +EXPORT_SYMBOL vmlinux 0x99ef84d3 mmc_free_host +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a368f43 devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x9a3b356d pci_release_regions +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a65dde2 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x9a6aa83f ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x9ab8808c param_get_charp +EXPORT_SYMBOL vmlinux 0x9acdfd72 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b68e095 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b85bbc6 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x9b91c9fd blk_free_tags +EXPORT_SYMBOL vmlinux 0x9b98afa2 pcim_iomap +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bae3a42 flush_tlb_page +EXPORT_SYMBOL vmlinux 0x9bb4e45b check_disk_change +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9be836d1 pci_choose_state +EXPORT_SYMBOL vmlinux 0x9bec34bd md_integrity_register +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0af462 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x9c20c1ae qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x9c291e48 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x9c2b30ad netdev_emerg +EXPORT_SYMBOL vmlinux 0x9c2fa5c1 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x9c48cd64 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x9c5f81da cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x9c754b26 prepare_binprm +EXPORT_SYMBOL vmlinux 0x9c907f9a blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cd5888e __get_page_tail +EXPORT_SYMBOL vmlinux 0x9cdb0cbd account_page_dirtied +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cf2be22 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x9cf7f193 security_path_mknod +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d1256fd bio_integrity_free +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d38500e mii_check_media +EXPORT_SYMBOL vmlinux 0x9d396120 cont_write_begin +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d5347ca dquot_commit +EXPORT_SYMBOL vmlinux 0x9d5d8007 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x9d653275 tty_register_driver +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d786943 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d89142a d_obtain_alias +EXPORT_SYMBOL vmlinux 0x9d91c7c6 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x9d9c9597 idr_init +EXPORT_SYMBOL vmlinux 0x9da092bf __serio_register_driver +EXPORT_SYMBOL vmlinux 0x9ddccdac pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x9dded565 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x9decd5a3 ping_prot +EXPORT_SYMBOL vmlinux 0x9dff2f58 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x9e032595 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e1cfc90 ioremap_wc +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e3bb8b1 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x9e3c591c dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e5434e5 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x9e5e06c9 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x9e607910 audit_log +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9ee6c349 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef60f12 input_close_device +EXPORT_SYMBOL vmlinux 0x9ef9acfa iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x9f0220df update_region +EXPORT_SYMBOL vmlinux 0x9f046671 of_match_device +EXPORT_SYMBOL vmlinux 0x9f0a9d41 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x9f14b934 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x9f1d0e54 inet_frag_find +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f505963 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa010ab journal_clear_err +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff0bf7d tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x9ffa57e2 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xa000e97d alloc_fcdev +EXPORT_SYMBOL vmlinux 0xa035885b simple_fill_super +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06965f8 fget_raw +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa070809c __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xa0745e30 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xa077d3da skb_seq_read +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa08cae13 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xa0ae37c4 __cleancache_flush_fs +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b3dba2 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0fe9dad may_umount_tree +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa11af587 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13582fc netif_napi_del +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa172c1a7 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xa1884089 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0xa1b1ea3a security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1c4b6d2 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xa1c5a3b3 cleancache_enabled +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1da77f5 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xa1e3ae78 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xa1f8fe75 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20d9ef0 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xa215c48d of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0xa22f6848 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xa269223e pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xa26b3997 agp_bridge +EXPORT_SYMBOL vmlinux 0xa2711146 create_proc_entry +EXPORT_SYMBOL vmlinux 0xa2732e21 skb_put +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2a9be56 bh_submit_read +EXPORT_SYMBOL vmlinux 0xa2b0f4ca dev_addr_del +EXPORT_SYMBOL vmlinux 0xa2b29773 phy_driver_register +EXPORT_SYMBOL vmlinux 0xa2b9eca3 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2c56c31 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xa2dc5981 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2fe24cd pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xa303d1ff dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xa310e58c inode_init_once +EXPORT_SYMBOL vmlinux 0xa31a5b82 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xa32629f6 dns_query +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa368f5f6 of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0xa3851cc3 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3dd69cb blk_register_region +EXPORT_SYMBOL vmlinux 0xa3e0c627 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa3ffa8eb nobh_write_end +EXPORT_SYMBOL vmlinux 0xa40a41b8 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0xa41d6535 generic_show_options +EXPORT_SYMBOL vmlinux 0xa431dac2 unlock_buffer +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44b3519 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xa451d48f tcf_action_exec +EXPORT_SYMBOL vmlinux 0xa4571042 pipe_lock +EXPORT_SYMBOL vmlinux 0xa484f9d1 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xa48537a4 free_netdev +EXPORT_SYMBOL vmlinux 0xa4a644ec __bread +EXPORT_SYMBOL vmlinux 0xa4a94d26 find_next_bit_le +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4e5e8cb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xa4e7ffe2 kobject_add +EXPORT_SYMBOL vmlinux 0xa4f138a1 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xa5003aad tcp_proc_register +EXPORT_SYMBOL vmlinux 0xa50c4507 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xa51785bf udp_ioctl +EXPORT_SYMBOL vmlinux 0xa519d535 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xa51c6ef3 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0xa52bbf65 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xa570ff4a bio_alloc +EXPORT_SYMBOL vmlinux 0xa58eadab generic_write_end +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last +EXPORT_SYMBOL vmlinux 0xa5b46a12 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5d52b50 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0xa5d5e710 registered_fb +EXPORT_SYMBOL vmlinux 0xa624592f mdiobus_write +EXPORT_SYMBOL vmlinux 0xa64d4ce5 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xa652c4ef __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xa6590971 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa66fb60b dentry_path_raw +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6c13693 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xa6d0e802 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa7175fef bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xa719ad38 override_creds +EXPORT_SYMBOL vmlinux 0xa74f36ac pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xa74ffb24 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xa7783e45 __lock_buffer +EXPORT_SYMBOL vmlinux 0xa787b98a mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xa78ded4b bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xa7923e29 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xa7b68dfd blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xa7cffaf1 genphy_read_status +EXPORT_SYMBOL vmlinux 0xa7d359ef input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xa7e39101 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xa7e4ec83 follow_down +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa84682ff generic_listxattr +EXPORT_SYMBOL vmlinux 0xa861ab6e __ioremap +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa8996239 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xa8a7212a ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xa8ce6266 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xa8f7c36d d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa921c0fe tcf_hash_release +EXPORT_SYMBOL vmlinux 0xa94ff025 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa957287b simple_transaction_set +EXPORT_SYMBOL vmlinux 0xa98faca5 led_brightness_set +EXPORT_SYMBOL vmlinux 0xa992e815 vfs_link +EXPORT_SYMBOL vmlinux 0xa997bc7f bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xa9a3dc0a wireless_send_event +EXPORT_SYMBOL vmlinux 0xa9a7a50d __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xa9b99d87 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xa9c9aa60 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xa9d205e5 register_cdrom +EXPORT_SYMBOL vmlinux 0xa9e02883 mmc_can_reset +EXPORT_SYMBOL vmlinux 0xa9effda5 __first_cpu +EXPORT_SYMBOL vmlinux 0xaa07f5d2 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xaa2fcc6c journal_dirty_data +EXPORT_SYMBOL vmlinux 0xaa468b4a cfb_fillrect +EXPORT_SYMBOL vmlinux 0xaa4a2f78 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries +EXPORT_SYMBOL vmlinux 0xaa53df60 macio_enable_devres +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa697a7f elv_rb_add +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa829b53 md_flush_request +EXPORT_SYMBOL vmlinux 0xaaa286ec kobject_init +EXPORT_SYMBOL vmlinux 0xaab9f7e7 node_states +EXPORT_SYMBOL vmlinux 0xaac78d43 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xaace3e0a dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xaad11e49 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaafb4f08 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab27f5e9 mutex_trylock +EXPORT_SYMBOL vmlinux 0xab33b246 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xab41566b get_gendisk +EXPORT_SYMBOL vmlinux 0xab44fb8d generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab76e398 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xab849cea jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabcf44ba of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd2b912 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xabd2cd66 rt6_lookup +EXPORT_SYMBOL vmlinux 0xabe99790 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac3b5959 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac69345e dev_warn +EXPORT_SYMBOL vmlinux 0xac6f5509 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xac798cd4 account_page_redirty +EXPORT_SYMBOL vmlinux 0xac814a26 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xacbc64e2 fd_install +EXPORT_SYMBOL vmlinux 0xacbe7487 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacdae5f6 dcb_setapp +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0a6754 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xad0a6e0a flex_array_prealloc +EXPORT_SYMBOL vmlinux 0xad2f56dd dev_open +EXPORT_SYMBOL vmlinux 0xad3dea9c i8042_install_filter +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad50cebb i8253_lock +EXPORT_SYMBOL vmlinux 0xad539b8d n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xad5a8686 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xad7918b1 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad8c0d2d dev_change_flags +EXPORT_SYMBOL vmlinux 0xad8c66ec agp_bind_memory +EXPORT_SYMBOL vmlinux 0xad8ca5fa of_find_node_by_name +EXPORT_SYMBOL vmlinux 0xad92da40 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xada3343c __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadac61e9 sock_wfree +EXPORT_SYMBOL vmlinux 0xadc68d8c get_write_access +EXPORT_SYMBOL vmlinux 0xadc941ad seq_printf +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae07f744 kthread_bind +EXPORT_SYMBOL vmlinux 0xae1c75ff sock_map_fd +EXPORT_SYMBOL vmlinux 0xae1f1d6a submit_bh +EXPORT_SYMBOL vmlinux 0xae2fe7a0 bprm_change_interp +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae688f55 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xae798235 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xae8082c1 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xae9ef396 dst_release +EXPORT_SYMBOL vmlinux 0xaeb2d781 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaee2ca32 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xaeedc6ef input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xaef593af read_cache_page_async +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf19228e dcache_dir_close +EXPORT_SYMBOL vmlinux 0xaf26e7bd of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf38eb2e cdev_alloc +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf445a65 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xaf491853 sock_register +EXPORT_SYMBOL vmlinux 0xaf5be625 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf672301 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xaf6c1f29 lock_super +EXPORT_SYMBOL vmlinux 0xaf7e0cd5 bdi_unregister +EXPORT_SYMBOL vmlinux 0xaf839664 iterate_supers_type +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf97f38f swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xafa5c144 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xafb3f7d8 seq_read +EXPORT_SYMBOL vmlinux 0xafb7cedc macio_release_resource +EXPORT_SYMBOL vmlinux 0xafc2cd99 d_path +EXPORT_SYMBOL vmlinux 0xafd68c33 flex_array_free +EXPORT_SYMBOL vmlinux 0xafd6c4c3 do_munmap +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb0054556 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xb0146c3a param_set_byte +EXPORT_SYMBOL vmlinux 0xb016411e arp_xmit +EXPORT_SYMBOL vmlinux 0xb0205d3f generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xb02ae15d complete_request_key +EXPORT_SYMBOL vmlinux 0xb05257b1 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xb0673dea sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xb06ae4b6 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0xb072049f flush_tlb_mm +EXPORT_SYMBOL vmlinux 0xb08dbe8f ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xb0a65f8c bio_integrity_split +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0bcce16 journal_extend +EXPORT_SYMBOL vmlinux 0xb0bfabca keyring_search +EXPORT_SYMBOL vmlinux 0xb0c3ba6e blk_make_request +EXPORT_SYMBOL vmlinux 0xb0d9b150 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xb0da9a4d blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xb0dff4db of_create_pci_dev +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f7ab0f mmc_erase +EXPORT_SYMBOL vmlinux 0xb0fa499b request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xb10d7e99 have_submounts +EXPORT_SYMBOL vmlinux 0xb1107a16 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0xb125c2ad freeze_super +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb1799c98 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xb1926074 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1a9e2db unregister_netdev +EXPORT_SYMBOL vmlinux 0xb1c01b01 lookup_bdev +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c63a1c pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1edacbe bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xb233762c atomic64_set +EXPORT_SYMBOL vmlinux 0xb24c2db9 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xb258a731 ps2_command +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26b4c39 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xb26eba05 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xb27e5212 file_sb_list_del +EXPORT_SYMBOL vmlinux 0xb2951ab3 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xb297db22 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xb2a0da1e iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xb2b0e1d4 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xb2bc1c26 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xb2dd48dd __invalidate_device +EXPORT_SYMBOL vmlinux 0xb2ea4753 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xb303907c find_vma +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb316e4a1 dev_alert +EXPORT_SYMBOL vmlinux 0xb31f6e14 nobh_writepage +EXPORT_SYMBOL vmlinux 0xb32c6dfc __nla_reserve +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb34409ac pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xb351204d set_user_nice +EXPORT_SYMBOL vmlinux 0xb357869e devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xb369fffe tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xb379d039 generic_getxattr +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3d102ff mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xb3d6adfb mutex_unlock +EXPORT_SYMBOL vmlinux 0xb3e36d47 alloc_file +EXPORT_SYMBOL vmlinux 0xb405bc4e ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xb41082d5 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xb412edcd ab8500_gpadc_read_raw +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb434862c register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xb4405fd6 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xb4453658 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xb456d38b journal_check_available_features +EXPORT_SYMBOL vmlinux 0xb45c42ed textsearch_register +EXPORT_SYMBOL vmlinux 0xb45fda68 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xb467d6f0 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4ca8746 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xb4cd5b31 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xb4e3a11e __bforget +EXPORT_SYMBOL vmlinux 0xb4e9ab0c dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xb4ea6cd4 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xb4eab355 key_put +EXPORT_SYMBOL vmlinux 0xb4eadcf5 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb50c1455 agp_generic_enable +EXPORT_SYMBOL vmlinux 0xb50f0ab8 vfs_fsync +EXPORT_SYMBOL vmlinux 0xb537027f mpage_readpages +EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte +EXPORT_SYMBOL vmlinux 0xb53ebe9d giveup_fpu +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5523e77 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xb56fb58b i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xb583a512 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xb5930251 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0xb5992879 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a74342 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5c57741 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xb5d181c9 dev_notice +EXPORT_SYMBOL vmlinux 0xb60d3325 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb611cde1 page_address +EXPORT_SYMBOL vmlinux 0xb6175d94 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb62c08ab lookup_hash +EXPORT_SYMBOL vmlinux 0xb641ca0a vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xb64dd9a6 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xb6592654 bdget_disk +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb6638eae vfs_write +EXPORT_SYMBOL vmlinux 0xb66cb062 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb695d11b filp_close +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6f8f5ee mpage_writepages +EXPORT_SYMBOL vmlinux 0xb7332ff0 adb_client_list +EXPORT_SYMBOL vmlinux 0xb751c669 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb75d6b3f pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0xb7872211 dquot_acquire +EXPORT_SYMBOL vmlinux 0xb78c61e8 param_ops_bool +EXPORT_SYMBOL vmlinux 0xb79ba2ab dquot_free_inode +EXPORT_SYMBOL vmlinux 0xb7a99781 __irq_regs +EXPORT_SYMBOL vmlinux 0xb7b3524a skb_recycle +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7c9de39 vfs_writev +EXPORT_SYMBOL vmlinux 0xb7e0771c input_inject_event +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb8268cc5 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xb82a5795 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb84509c7 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xb8506628 tcp_close +EXPORT_SYMBOL vmlinux 0xb857da73 ida_destroy +EXPORT_SYMBOL vmlinux 0xb85a2866 module_layout +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8759454 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8a21b19 pci_read_irq_line +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8b8fd0b macio_dev_put +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb8f5322e unlock_rename +EXPORT_SYMBOL vmlinux 0xb9154723 kernel_getpeername +EXPORT_SYMBOL vmlinux 0xb93a02a4 __scm_destroy +EXPORT_SYMBOL vmlinux 0xb94374d3 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xb97d91d5 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xb984eade tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb993519c blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xb9a39643 pci_dev_put +EXPORT_SYMBOL vmlinux 0xb9b6441f bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xb9bcdf48 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xba3aaf3e ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xba3b0e62 netdev_set_bond_master +EXPORT_SYMBOL vmlinux 0xba3d2fd0 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xba466204 redraw_screen +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5fbac0 qdisc_reset +EXPORT_SYMBOL vmlinux 0xba7d0428 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xba8dac9f vfs_symlink +EXPORT_SYMBOL vmlinux 0xbaa01ce7 icmpv6_send +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbab525e3 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xbac3008c of_dev_put +EXPORT_SYMBOL vmlinux 0xbad29774 mount_ns +EXPORT_SYMBOL vmlinux 0xbaeaba43 skb_queue_head +EXPORT_SYMBOL vmlinux 0xbaee0ea1 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xbaf1a89e dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xbafd7cc0 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xbb01c4ac validate_sp +EXPORT_SYMBOL vmlinux 0xbb14dbe9 dm_io +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb1866d8 genl_register_ops +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb450e96 pipe_to_file +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb743025 generic_write_checks +EXPORT_SYMBOL vmlinux 0xbb74d7d0 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xbb7934b9 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xbb8c735a dget_parent +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbbdfa5c7 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xbbe5cb37 mddev_congested +EXPORT_SYMBOL vmlinux 0xbc19cbd5 file_update_time +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc3f6afa down_read +EXPORT_SYMBOL vmlinux 0xbc57e7b1 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xbc5f0bba abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xbc645da2 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xbc704fa4 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xbca9829d tty_mutex +EXPORT_SYMBOL vmlinux 0xbccdc2f6 flex_array_put +EXPORT_SYMBOL vmlinux 0xbcffe639 idr_pre_get +EXPORT_SYMBOL vmlinux 0xbd15de0f unregister_binfmt +EXPORT_SYMBOL vmlinux 0xbd16d5e1 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xbd17ca29 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xbd44087e sock_release +EXPORT_SYMBOL vmlinux 0xbd4d6cb7 max8998_write_reg +EXPORT_SYMBOL vmlinux 0xbd643fa0 netpoll_setup +EXPORT_SYMBOL vmlinux 0xbd6edd2f ata_dev_printk +EXPORT_SYMBOL vmlinux 0xbd7f067b write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xbd803510 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbdb737a9 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdc3dc59 bioset_create +EXPORT_SYMBOL vmlinux 0xbdc63817 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xbddb26a2 da903x_query_status +EXPORT_SYMBOL vmlinux 0xbded196f sock_no_accept +EXPORT_SYMBOL vmlinux 0xbdf41799 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe17640c security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe4ec86b jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xbe55ddfa tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe6f064d idr_for_each +EXPORT_SYMBOL vmlinux 0xbe77aebe down_write_trylock +EXPORT_SYMBOL vmlinux 0xbe820b84 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0xbe88d105 generic_permission +EXPORT_SYMBOL vmlinux 0xbea44d91 inode_init_always +EXPORT_SYMBOL vmlinux 0xbed5eb7b pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xbee2a816 eth_header_parse +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf0d1ca8 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xbf32a112 fb_get_mode +EXPORT_SYMBOL vmlinux 0xbf425e1b agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xbf6213e7 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xbf67409b xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xbf6abb58 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfad4db7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfb98199 blk_complete_request +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd40f67 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xbfd6be1b dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xbfdff814 of_get_address +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc011a384 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xc01eeaf8 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xc03407e2 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xc04a61df security_file_permission +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc07568a8 thaw_super +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc07d469c mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0d84ced cuda_poll +EXPORT_SYMBOL vmlinux 0xc0ff9fc2 igrab +EXPORT_SYMBOL vmlinux 0xc1047bea ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xc114dcd1 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc12efd2d truncate_setsize +EXPORT_SYMBOL vmlinux 0xc15f61f9 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xc1a72912 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1dd4a7f adb_request +EXPORT_SYMBOL vmlinux 0xc1eba8d9 of_register_spi_devices +EXPORT_SYMBOL vmlinux 0xc2321d8a of_device_register +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2804f31 d_delete +EXPORT_SYMBOL vmlinux 0xc2882ea4 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xc28f1484 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xc2a68ff3 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xc2bf691c i2c_transfer +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f09a4b __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xc2f3b778 __page_symlink +EXPORT_SYMBOL vmlinux 0xc316b98c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0xc32f4f11 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xc34c9aac md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xc34cf8e6 uart_resume_port +EXPORT_SYMBOL vmlinux 0xc34ff0bb clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc3ba1fcd __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d1d513 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xc3daf1c4 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xc3f252c4 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xc3fe87c8 param_ops_uint +EXPORT_SYMBOL vmlinux 0xc41b3f7b sg_miter_next +EXPORT_SYMBOL vmlinux 0xc4319ba5 skb_copy +EXPORT_SYMBOL vmlinux 0xc45755de find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0xc45fb6b3 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xc469146f of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xc472a3f9 security_file_mmap +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc49120a8 scsi_get_command +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4edc7e1 fget +EXPORT_SYMBOL vmlinux 0xc50a103a deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5305957 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xc53a1b07 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0xc53e2425 genphy_resume +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55c2a9d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xc55de23c percpu_counter_set +EXPORT_SYMBOL vmlinux 0xc55e92e4 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc5a37aa8 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0xc5b3fb79 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc60feede pci_disable_obff +EXPORT_SYMBOL vmlinux 0xc61571f7 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xc61b5bf1 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xc61be59c ida_remove +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc6421689 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xc647fe5d serio_rescan +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc6b22c71 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6da2898 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xc6e5d0ca invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xc7207ad5 tty_write_room +EXPORT_SYMBOL vmlinux 0xc7222064 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xc72ca57e put_io_context +EXPORT_SYMBOL vmlinux 0xc734dff6 i2c_use_client +EXPORT_SYMBOL vmlinux 0xc7531309 tcp_child_process +EXPORT_SYMBOL vmlinux 0xc777091a noop_fsync +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc795e23e cpu_core_map +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ab7c82 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xc7b3196f skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xc7be9f66 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xc7d4a892 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xc7d91da1 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xc7e21fe2 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xc7e59545 km_policy_notify +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7f5f32d pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xc80df17b nf_ct_attach +EXPORT_SYMBOL vmlinux 0xc817eecd ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xc81d71a3 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xc82372db mmc_host_enable +EXPORT_SYMBOL vmlinux 0xc82b19fa phy_connect +EXPORT_SYMBOL vmlinux 0xc83eb08b __ps2_command +EXPORT_SYMBOL vmlinux 0xc84a0334 tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84d84b1 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc88fc0a3 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8e9c13a ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xc90a13c2 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xc91ff664 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc92d4960 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xc9624289 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xc966a184 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xc98a6f21 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9b8c308 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xc9bada0f sock_i_ino +EXPORT_SYMBOL vmlinux 0xc9bcb604 d_lookup +EXPORT_SYMBOL vmlinux 0xc9d471d6 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xc9de222a jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xc9e7ba11 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xc9f7d40e generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xca158c88 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xca20095b dev_mc_del +EXPORT_SYMBOL vmlinux 0xca30730b unlink_framebuffer +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca61aec4 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xca637ab3 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xca73f76b inet_recvmsg +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xcab9c21a vfs_follow_link +EXPORT_SYMBOL vmlinux 0xcac28c47 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return +EXPORT_SYMBOL vmlinux 0xcad08e48 mmu_hash_lock +EXPORT_SYMBOL vmlinux 0xcae10223 led_blink_set +EXPORT_SYMBOL vmlinux 0xcaed6903 pci_enable_ido +EXPORT_SYMBOL vmlinux 0xcaf0142f pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0xcb0ca741 bio_pair_release +EXPORT_SYMBOL vmlinux 0xcb121932 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xcb19d111 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xcb23c6b3 dev_load +EXPORT_SYMBOL vmlinux 0xcb3ebb71 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb7bb1de dev_get_stats +EXPORT_SYMBOL vmlinux 0xcb8aa9b6 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xcb8eea1c inet_stream_ops +EXPORT_SYMBOL vmlinux 0xcb99edb0 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbff14ad kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xcc154b65 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc41028a security_inode_readlink +EXPORT_SYMBOL vmlinux 0xcc426bca vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xcc4f6bc2 twl6040_irq_init +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc61afef __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xcc6791e0 release_pages +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcca6883b generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xccc7c400 tty_shutdown +EXPORT_SYMBOL vmlinux 0xccf68d65 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xccfbedf3 revalidate_disk +EXPORT_SYMBOL vmlinux 0xccfef868 console_stop +EXPORT_SYMBOL vmlinux 0xcd02daf3 fb_blank +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd11935d skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2c7f2c starget_for_each_device +EXPORT_SYMBOL vmlinux 0xcd360b45 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xcd591d48 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xcd641f1f ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0xcd6838f3 skb_split +EXPORT_SYMBOL vmlinux 0xcd8495c3 tty_kref_put +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcd8972ea tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xcdc235e5 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xcdc5e4d9 register_quota_format +EXPORT_SYMBOL vmlinux 0xcdcaea57 md_write_end +EXPORT_SYMBOL vmlinux 0xcdd9b9ba sk_filter +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcdef97d4 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce1d8eb9 simple_readpage +EXPORT_SYMBOL vmlinux 0xce24e520 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce3c8d70 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce653c59 address_space_init_once +EXPORT_SYMBOL vmlinux 0xce7ce037 of_translate_address +EXPORT_SYMBOL vmlinux 0xceaabdc8 bdi_destroy +EXPORT_SYMBOL vmlinux 0xceae7b7a journal_load +EXPORT_SYMBOL vmlinux 0xcecbf0b2 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xcee0b49f xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcf015f7b do_settimeofday +EXPORT_SYMBOL vmlinux 0xcf188f74 tcf_em_register +EXPORT_SYMBOL vmlinux 0xcf287be7 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcfa5ed9c i2c_verify_client +EXPORT_SYMBOL vmlinux 0xcfb7254e dev_set_mtu +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfbf0311 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xcfccbdd8 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xcfdd3581 generic_write_sync +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xd008e174 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd03c0dab generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xd06ce1d8 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xd09cdacb jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xd09e89c4 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xd0a45fa5 pmu_enable_irled +EXPORT_SYMBOL vmlinux 0xd0a6e1a6 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xd0a7d26f read_dev_sector +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0bba6db fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xd0bd7d42 netif_rx +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0d81e04 kernel_bind +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd172cb8d netdev_increment_features +EXPORT_SYMBOL vmlinux 0xd187cac3 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1c35adf __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0xd1e10006 bdget +EXPORT_SYMBOL vmlinux 0xd203e151 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xd205407b pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xd206a72c journal_restart +EXPORT_SYMBOL vmlinux 0xd224b86f dm_put_device +EXPORT_SYMBOL vmlinux 0xd23e6b84 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xd24c1231 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd254c3ff tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2716a4b ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xd276f795 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xd28d1da5 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2ab53bd pci_set_mwi +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2ce7aa7 set_security_override +EXPORT_SYMBOL vmlinux 0xd2d51180 of_gpio_count +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31c00ba agp_copy_info +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3385418 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd36de61c blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd38a5dd4 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xd39230da proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xd3956418 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xd3ae1cfe noop_qdisc +EXPORT_SYMBOL vmlinux 0xd3c07d4d pci_match_id +EXPORT_SYMBOL vmlinux 0xd3d1811f scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xd3d9bc54 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xd3e6f60d cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xd3ecf733 put_page +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd418588c make_bad_inode +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd41fbf03 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xd43793be d_validate +EXPORT_SYMBOL vmlinux 0xd46682ec __alloc_skb +EXPORT_SYMBOL vmlinux 0xd47493fa dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xd483378b tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xd4852e54 dqput +EXPORT_SYMBOL vmlinux 0xd48e3409 pci_get_device +EXPORT_SYMBOL vmlinux 0xd491b682 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xd498b9fe __breadahead +EXPORT_SYMBOL vmlinux 0xd4f1a64b scsi_prep_return +EXPORT_SYMBOL vmlinux 0xd4f7805e netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xd54ddca3 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xd58f6657 ilookup5 +EXPORT_SYMBOL vmlinux 0xd5ada11f scsi_put_command +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b1376d register_shrinker +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5da3f41 vfs_readdir +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd5f42ab9 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xd5f59f1f netif_receive_skb +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd63b9cba do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xd6415db5 mach_powermac +EXPORT_SYMBOL vmlinux 0xd64d5669 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xd66594d3 free_task +EXPORT_SYMBOL vmlinux 0xd67e447c inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xd685b2aa sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xd689c977 neigh_lookup +EXPORT_SYMBOL vmlinux 0xd697d1b9 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xd69b30e0 atomic64_add_unless +EXPORT_SYMBOL vmlinux 0xd6a6cfa1 of_get_parent +EXPORT_SYMBOL vmlinux 0xd6e64779 of_device_unregister +EXPORT_SYMBOL vmlinux 0xd6e6ce75 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd73f5657 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd76c7c12 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd78a0f18 of_match_node +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd79dc6f4 seq_puts +EXPORT_SYMBOL vmlinux 0xd7d62ee4 vfs_read +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7eb432d skb_find_text +EXPORT_SYMBOL vmlinux 0xd7f29513 set_device_ro +EXPORT_SYMBOL vmlinux 0xd80f8b36 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xd843e86a skb_queue_tail +EXPORT_SYMBOL vmlinux 0xd84d956e __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xd85d2e09 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xd869709a locks_copy_lock +EXPORT_SYMBOL vmlinux 0xd87244c3 iterate_mounts +EXPORT_SYMBOL vmlinux 0xd891296e proc_mkdir +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8ce7e67 clocksource_register +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8fab6a9 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0xd8fba643 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xd9181844 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd969eb9a uart_register_driver +EXPORT_SYMBOL vmlinux 0xd97c5fbb netif_notify_peers +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9be41dd md_error +EXPORT_SYMBOL vmlinux 0xd9c9817f simple_release_fs +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9e66065 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xda1cc104 dentry_unhash +EXPORT_SYMBOL vmlinux 0xda45fcd9 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xda61207e neigh_destroy +EXPORT_SYMBOL vmlinux 0xda63bdfb cdev_del +EXPORT_SYMBOL vmlinux 0xda664cb3 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0xda76fe64 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xda77066c generic_block_bmap +EXPORT_SYMBOL vmlinux 0xda7c407f pci_device_from_OF_node +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda85873c bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda94dce9 padata_start +EXPORT_SYMBOL vmlinux 0xda98b5b6 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaad1276 journal_start_commit +EXPORT_SYMBOL vmlinux 0xdacf070b i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xdacf44db pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xdb01ab7a pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xdb091c5a pci_enable_ltr +EXPORT_SYMBOL vmlinux 0xdb170f1b check_disk_size_change +EXPORT_SYMBOL vmlinux 0xdb25be66 flush_dcache_page +EXPORT_SYMBOL vmlinux 0xdb306158 netdev_set_master +EXPORT_SYMBOL vmlinux 0xdb3e8179 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xdb3f715e pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb9e2c22 posix_acl_create +EXPORT_SYMBOL vmlinux 0xdba06e08 block_commit_write +EXPORT_SYMBOL vmlinux 0xdbab82f8 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xdbb06bc6 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xdbb24fc2 down_write +EXPORT_SYMBOL vmlinux 0xdbb9d0c6 module_refcount +EXPORT_SYMBOL vmlinux 0xdbbacdfe dev_get_by_index +EXPORT_SYMBOL vmlinux 0xdbc94de6 invalidate_partition +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbce6344 dev_printk +EXPORT_SYMBOL vmlinux 0xdbd44ad1 dquot_initialize +EXPORT_SYMBOL vmlinux 0xdbf93abd __lru_cache_add +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc17f2a1 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xdc1b6304 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0xdc2519e0 param_set_ulong +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4f6420 ip_check_defrag +EXPORT_SYMBOL vmlinux 0xdc518ec8 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xdc732024 irq_stat +EXPORT_SYMBOL vmlinux 0xdc9498dd down +EXPORT_SYMBOL vmlinux 0xdc98321e lock_sock_nested +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdccac0a8 sock_kmalloc +EXPORT_SYMBOL vmlinux 0xdce01af4 tcp_connect +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd0d1d99 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xdd0e0701 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xdd1c65f6 blk_finish_plug +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd56bda0 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xdd670f31 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xdd69f80f netif_napi_add +EXPORT_SYMBOL vmlinux 0xdd7ae12b netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xdd7f2975 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0xdd89fe9d __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xdd9f0230 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0xdda2e570 pci_bus_type +EXPORT_SYMBOL vmlinux 0xdde00daf arp_create +EXPORT_SYMBOL vmlinux 0xdde9b794 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xde0f7201 neigh_table_init +EXPORT_SYMBOL vmlinux 0xde2168a1 of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0xde223ea7 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xde317bee xfrm_state_add +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde63f54a inet_stream_connect +EXPORT_SYMBOL vmlinux 0xde8e38df generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdeb33931 mount_bdev +EXPORT_SYMBOL vmlinux 0xdecb4ccc dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xdeda26ca pci_domain_nr +EXPORT_SYMBOL vmlinux 0xdee199d9 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xdeeb18b7 key_link +EXPORT_SYMBOL vmlinux 0xdf0552ee __bio_clone +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf531740 find_inode_number +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf671232 neigh_create +EXPORT_SYMBOL vmlinux 0xdf90d219 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa06a6e clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xdfc40a53 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xdfe313bb tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xdfe3d25f netif_rx_ni +EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger +EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll +EXPORT_SYMBOL vmlinux 0xdff90fbb kern_path +EXPORT_SYMBOL vmlinux 0xe00a1aac i2c_del_driver +EXPORT_SYMBOL vmlinux 0xe01805b6 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xe039bf13 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe068a458 netdev_notice +EXPORT_SYMBOL vmlinux 0xe07084da d_invalidate +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe07766ff mmc_host_disable +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe09bf272 inet_getname +EXPORT_SYMBOL vmlinux 0xe09cd73d pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xe0aff423 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b6888c lock_may_write +EXPORT_SYMBOL vmlinux 0xe0bcb247 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xe0d3bbea i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xe0e14d11 _dev_info +EXPORT_SYMBOL vmlinux 0xe0eb25a7 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0xe0fc24aa param_set_int +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11d2ed2 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xe125b1ee brioctl_set +EXPORT_SYMBOL vmlinux 0xe12a9e03 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xe1331cc7 framebuffer_release +EXPORT_SYMBOL vmlinux 0xe1653a21 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17d44fe mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0xe186cca6 fb_set_var +EXPORT_SYMBOL vmlinux 0xe19725de skb_make_writable +EXPORT_SYMBOL vmlinux 0xe1a71450 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xe1af7565 md_register_thread +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe20e7af1 pci_save_state +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe25f19a0 vmap +EXPORT_SYMBOL vmlinux 0xe26eed74 mntput +EXPORT_SYMBOL vmlinux 0xe29320cd cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xe2ae4be3 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xe2b28266 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xe2c14830 put_tty_driver +EXPORT_SYMBOL vmlinux 0xe2c77ac3 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2ea1f9f netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xe2f511a9 path_put +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe305c0e1 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xe31163e8 scsi_register +EXPORT_SYMBOL vmlinux 0xe328ce11 tc_classify +EXPORT_SYMBOL vmlinux 0xe332babc kset_register +EXPORT_SYMBOL vmlinux 0xe33d9572 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xe35c12e4 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xe3b28331 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xe3c6fc9a poll_initwait +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3d7baca netdev_info +EXPORT_SYMBOL vmlinux 0xe419e1d9 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xe420765c search_binary_handler +EXPORT_SYMBOL vmlinux 0xe42ce5d0 __netdev_printk +EXPORT_SYMBOL vmlinux 0xe43b5705 padata_alloc +EXPORT_SYMBOL vmlinux 0xe44bdd05 inet_frags_init +EXPORT_SYMBOL vmlinux 0xe45a2f43 seq_lseek +EXPORT_SYMBOL vmlinux 0xe4688a03 start_tty +EXPORT_SYMBOL vmlinux 0xe47d64db tty_port_open +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49775f9 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xe49c40fb sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xe4a895fa up_write +EXPORT_SYMBOL vmlinux 0xe4af28ce tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xe4b91ed3 phy_disconnect +EXPORT_SYMBOL vmlinux 0xe4f245a0 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe502d86e test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xe50a3f7d sk_dst_check +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5176753 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xe5196f59 of_node_get +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5247a9a pci_fixup_device +EXPORT_SYMBOL vmlinux 0xe529821a pci_set_ltr +EXPORT_SYMBOL vmlinux 0xe5531cab netdev_crit +EXPORT_SYMBOL vmlinux 0xe554db4a neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xe5613692 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xe5691fb1 __dst_free +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe594e4eb __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xe59c1ed1 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xe5bc9a3f generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5e98c79 dqget +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6045824 tty_set_operations +EXPORT_SYMBOL vmlinux 0xe612e078 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xe61b5efe bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xe6513ee1 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xe68fd941 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a3a7ee blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xe6bce39c init_special_inode +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f4920b generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0xe6f63e70 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xe6f9aa78 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe72c8175 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xe731ad56 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xe7376102 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xe74adaf2 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xe74d36e1 netlink_unicast +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe7a3144c generic_writepages +EXPORT_SYMBOL vmlinux 0xe7a48670 __scm_send +EXPORT_SYMBOL vmlinux 0xe7a49451 switch_mmu_context +EXPORT_SYMBOL vmlinux 0xe7a61eff put_mnt_ns +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7bf317d fsl_lbc_addr +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e08257 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xe7fee91e kernel_connect +EXPORT_SYMBOL vmlinux 0xe80566d0 inet6_bind +EXPORT_SYMBOL vmlinux 0xe8062d99 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe82cc752 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xe835e2e7 of_device_is_available +EXPORT_SYMBOL vmlinux 0xe84319ef tcp_poll +EXPORT_SYMBOL vmlinux 0xe84ac3e3 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xe86cc138 writeback_in_progress +EXPORT_SYMBOL vmlinux 0xe8946b98 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xe8968c82 __d_drop +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8b81643 rtas +EXPORT_SYMBOL vmlinux 0xe8e88b83 skb_unlink +EXPORT_SYMBOL vmlinux 0xe8ebf346 ab8500_gpadc_ad_to_voltage +EXPORT_SYMBOL vmlinux 0xe90b218f textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9217df8 single_open +EXPORT_SYMBOL vmlinux 0xe9267513 journal_set_features +EXPORT_SYMBOL vmlinux 0xe932fbf6 tty_register_device +EXPORT_SYMBOL vmlinux 0xe9368dae md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xe9400877 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe96b9c26 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0xe98d4e0d simple_empty +EXPORT_SYMBOL vmlinux 0xe99bed62 write_cache_pages +EXPORT_SYMBOL vmlinux 0xe99fd170 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xe9ac60ab __cleancache_flush_page +EXPORT_SYMBOL vmlinux 0xe9bf4e42 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xe9cd72a6 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0ff253 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea58f9fe uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xea631c4c of_phy_find_device +EXPORT_SYMBOL vmlinux 0xea6b8c81 mount_nodev +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7aeff3 simple_write_end +EXPORT_SYMBOL vmlinux 0xea7d5430 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xea8a6c75 param_ops_long +EXPORT_SYMBOL vmlinux 0xea934e66 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xea968c96 ___ratelimit +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeab28477 init_buffer +EXPORT_SYMBOL vmlinux 0xeabf4422 current_fs_time +EXPORT_SYMBOL vmlinux 0xead756ef flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xeaf16558 ida_init +EXPORT_SYMBOL vmlinux 0xeb186e05 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb887b1f abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xeb99a288 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xeba677bd posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebdd71fe skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xebe2d02b llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xec0d24a8 of_phy_connect +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec3cfd13 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec5bf84d key_type_keyring +EXPORT_SYMBOL vmlinux 0xec6d20f9 dst_discard +EXPORT_SYMBOL vmlinux 0xec73caa1 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xec73fcdd dev_emerg +EXPORT_SYMBOL vmlinux 0xed04c1e7 __pagevec_release +EXPORT_SYMBOL vmlinux 0xed0e2f01 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed49e0f9 vfs_create +EXPORT_SYMBOL vmlinux 0xed5e55e6 names_cachep +EXPORT_SYMBOL vmlinux 0xed73fc32 filemap_fault +EXPORT_SYMBOL vmlinux 0xed7c1531 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xed8372cb empty_aops +EXPORT_SYMBOL vmlinux 0xed84c5b0 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbac2a0 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xedd2f26c jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xedd673f4 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xeddac04d padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xeddd4c07 d_add_ci +EXPORT_SYMBOL vmlinux 0xede2fcf9 __register_binfmt +EXPORT_SYMBOL vmlinux 0xee238ba5 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3496c3 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xee47d2ad pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xee4a734f sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xee4b6ac9 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change +EXPORT_SYMBOL vmlinux 0xee778aa3 netlink_ack +EXPORT_SYMBOL vmlinux 0xee800177 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb8daf0 bmap +EXPORT_SYMBOL vmlinux 0xeec61edd scsi_target_resume +EXPORT_SYMBOL vmlinux 0xeed1a73d vc_resize +EXPORT_SYMBOL vmlinux 0xeed6397e genl_unregister_family +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef147ee0 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xef29f022 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xef30b8fa scm_detach_fds +EXPORT_SYMBOL vmlinux 0xef4e2ac1 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xef53dd20 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xef695940 generic_file_open +EXPORT_SYMBOL vmlinux 0xef771aa9 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xef7a32cc __sk_dst_check +EXPORT_SYMBOL vmlinux 0xefcc52d9 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xefd3f16f bdi_register_dev +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefdd8104 __devm_release_region +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf000d775 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xf00452ef __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0xf00ad474 mfd_add_devices +EXPORT_SYMBOL vmlinux 0xf01bf9e0 scsi_init_io +EXPORT_SYMBOL vmlinux 0xf04ae1ba idr_remove_all +EXPORT_SYMBOL vmlinux 0xf0589f8d dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06709ac dquot_release +EXPORT_SYMBOL vmlinux 0xf0b7db05 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xf0bfe33f seq_escape +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f28d93 pci_select_bars +EXPORT_SYMBOL vmlinux 0xf0fd4e8f rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf0fed3d1 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1172b51 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xf11cd6ce down_interruptible +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf12287d5 netif_skb_features +EXPORT_SYMBOL vmlinux 0xf146eccc phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xf155ae2d dquot_destroy +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19e9355 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xf1a0b97d pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xf1c84336 km_policy_expired +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f79333 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xf1f90ce3 dev_uc_add +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2334557 kobject_set_name +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24ec85e path_is_under +EXPORT_SYMBOL vmlinux 0xf2ad5330 nf_log_packet +EXPORT_SYMBOL vmlinux 0xf2b86d2d security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xf2c6a92a vfs_llseek +EXPORT_SYMBOL vmlinux 0xf2cb81cc unregister_con_driver +EXPORT_SYMBOL vmlinux 0xf2d1e08c phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xf2d703f4 d_set_d_op +EXPORT_SYMBOL vmlinux 0xf2d7a10a dquot_resume +EXPORT_SYMBOL vmlinux 0xf2f6880c pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xf2f798ed lock_rename +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31786e3 agp_find_bridge +EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xf324deb4 inet_release +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf334e469 vm_insert_page +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf3605f62 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xf382ca11 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ea852d sock_update_classid +EXPORT_SYMBOL vmlinux 0xf405f0cd dquot_quota_on +EXPORT_SYMBOL vmlinux 0xf43e4381 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf45c1434 ida_simple_get +EXPORT_SYMBOL vmlinux 0xf48276fb vga_client_register +EXPORT_SYMBOL vmlinux 0xf48f2832 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4e0c729 pid_task +EXPORT_SYMBOL vmlinux 0xf4eecde8 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f4f074 pci_enable_obff +EXPORT_SYMBOL vmlinux 0xf5063c6f tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf52321e0 atomic64_sub +EXPORT_SYMBOL vmlinux 0xf5330685 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf54c51a2 dma_pool_free +EXPORT_SYMBOL vmlinux 0xf5502bc2 iget_failed +EXPORT_SYMBOL vmlinux 0xf59dcd00 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cf1b9f netdev_features_change +EXPORT_SYMBOL vmlinux 0xf5cf326a param_ops_short +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf612809a param_get_int +EXPORT_SYMBOL vmlinux 0xf619da41 udp_proc_register +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf64a9398 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xf65beae0 scsi_ioctl +EXPORT_SYMBOL vmlinux 0xf66e4a3c security_path_symlink +EXPORT_SYMBOL vmlinux 0xf687a60e kill_pid +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6c8bf26 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xf6e72a34 tty_name +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f0aa44 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xf70384d7 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return +EXPORT_SYMBOL vmlinux 0xf72e924b tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xf747dd44 kstat +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7785b5b mount_single +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7a5abcd dentry_open +EXPORT_SYMBOL vmlinux 0xf7b12aee __next_cpu +EXPORT_SYMBOL vmlinux 0xf7c8dab1 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xf7db2df1 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xf7f3cd5e llc_add_pack +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf807c125 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf812c514 get_fs_type +EXPORT_SYMBOL vmlinux 0xf827cb23 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf844a2d8 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xf875558e sock_no_bind +EXPORT_SYMBOL vmlinux 0xf8928652 softnet_data +EXPORT_SYMBOL vmlinux 0xf897d02b macio_register_driver +EXPORT_SYMBOL vmlinux 0xf8be54b4 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xf8c60107 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0xf9037c43 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xf92ac5d8 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf94caa80 mmc_release_host +EXPORT_SYMBOL vmlinux 0xf9595c13 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9b366d8 fb_find_mode +EXPORT_SYMBOL vmlinux 0xf9c225a7 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xf9e1aadb alloc_trdev +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xfa0cc040 prepare_creds +EXPORT_SYMBOL vmlinux 0xfa13b1e1 bio_clone +EXPORT_SYMBOL vmlinux 0xfa1e37a3 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xfa2e6a07 netlink_dump_start +EXPORT_SYMBOL vmlinux 0xfa3ff73b do_sync_write +EXPORT_SYMBOL vmlinux 0xfa4470af vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xfa8a7b21 register_qdisc +EXPORT_SYMBOL vmlinux 0xfa8e8a84 kill_block_super +EXPORT_SYMBOL vmlinux 0xfab0ac77 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xfaccd200 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfaf7bebb seq_path +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb051fd3 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xfb66ee2c __find_get_block +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfb9c3c66 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb456b0 security_path_link +EXPORT_SYMBOL vmlinux 0xfbddc7c1 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xfbe023d9 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbf2d1ea max8925_set_bits +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc11a70e llc_sap_open +EXPORT_SYMBOL vmlinux 0xfc326e6a __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc6567e8 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xfc89806a netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xfc8bd007 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcafe081 commit_creds +EXPORT_SYMBOL vmlinux 0xfcb8b446 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcd62b1e pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0xfce764b9 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf41b08 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister +EXPORT_SYMBOL vmlinux 0xfd13edca phy_stop +EXPORT_SYMBOL vmlinux 0xfd1559c7 fput +EXPORT_SYMBOL vmlinux 0xfd1eaf41 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xfd27ee4f udp_sendmsg +EXPORT_SYMBOL vmlinux 0xfd5cd6b2 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6a41de of_find_property +EXPORT_SYMBOL vmlinux 0xfd6b3d0c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xfd6dc290 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xfd7a1406 ata_link_printk +EXPORT_SYMBOL vmlinux 0xfd8cde3d tty_port_init +EXPORT_SYMBOL vmlinux 0xfd91bc0f simple_unlink +EXPORT_SYMBOL vmlinux 0xfd99f710 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0xfd9de23f fail_migrate_page +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdd11106 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdf9c320 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe20f9d9 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xfe546e57 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe6cef70 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xfe6e2304 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe781aa3 console_start +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe8ffa7a fasync_helper +EXPORT_SYMBOL vmlinux 0xfea7ea38 dst_destroy +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfeeb0c2e dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefc7cdc udp_prot +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2c3263 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xff4f9c49 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xff6172d2 blk_start_queue +EXPORT_SYMBOL vmlinux 0xff63da93 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6dea25 smp_hw_index +EXPORT_SYMBOL vmlinux 0xff97ed96 dma_pool_create +EXPORT_SYMBOL vmlinux 0xff9ad0bf get_phy_device +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffd45300 llc_sap_find +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL vmlinux 0xfff04384 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0xffff2a0a file_open_root +EXPORT_SYMBOL_GPL crypto/af_alg 0x1089075c af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x1c8048a7 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x255d0756 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x3fecf888 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x58716898 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x66956d4f af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x882b86b8 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xbe43b78b af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x3057b146 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x7ba4b436 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xc20453fa async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x367803b5 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x4f03b878 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x12ecc838 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9d0404e5 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe2ee7b62 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xefafd0a7 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x593b901a async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc81e21b4 async_xor +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x7c8fcc5f blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cryptd 0x00266301 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x0a45650c cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x3f15a05f cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x4209ef82 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x61b072fa cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xa77cb7fe cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xb2803626 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xd0ef0ed8 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xd8e44ff5 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xe96facdb cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x72069531 twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x74fd6de0 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x8c7b9fc7 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x6932a075 sis_info133_for_sata +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/bcma/bcma 0x0224dc82 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x459ae841 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x69db66b3 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6b948841 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6cdd0dec bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb05b1c2a bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb332daed bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb7cf21cd bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbff63d04 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xca9d4aa4 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe4254149 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf44e4d46 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfe85edc4 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0679ba6c btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7a37d955 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7b8b37b2 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8d12b995 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8d4146a7 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb4f74ea8 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb8e389ea btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe259d13e btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x074d9ef5 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x14b8bdbd edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1c8ebc77 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x37bec3f6 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3a839a89 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3c6a7457 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x401daad4 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x51bda03c edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x613c12af edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6176784e edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6243b396 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7baccb60 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7bcd4228 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8064e2b6 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x83f5cc24 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8c660b8e edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x928b70da edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x945a806c edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9a4e571e edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc84125e8 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xca8764fa find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd1263d30 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe86b5dd0 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xec909b76 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfe72d1cc edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x2bf3c9f7 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x7a6ea706 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x66a06a5a __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x980eb1f7 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x3fc31166 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc57b4f93 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/hid/hid 0x01cc21ce hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0d03b6f3 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19774749 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3101ac14 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x40849c2b hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4a9714aa hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x54d58f9e hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x676c73c6 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6d13e6f9 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e3e65a3 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f04ceea hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f3d40d4 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x871cc091 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9ba9c086 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9cd64c15 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa76f544c hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xab0a3603 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc1e27f81 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc7296a43 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd1319587 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd26bb08c hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe066dc1f hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe1465af7 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xea97960c hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xec5c2ba3 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xffc71d30 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x20c0dd28 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x4608e073 roccat_common_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x745c6b4a roccat_common_receive +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb85ba91d hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xc1d15fef usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xd853cf41 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xfcdf3e5d usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x3afdfa31 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x3c5f9718 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x46036e77 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5a765aa1 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5e0de4b8 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x80263900 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x921f7da6 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xc03f57ef i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xfd4b3c9e i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x0fa1c069 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x7156fd46 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x3046c25a i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x57c57f28 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x5c3da12e input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x45accd8b adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1f0337e6 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x32410931 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3a721e21 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3c6cc3fa wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5b65151c wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8a781afd wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb9172626 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbe1500a0 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc978d06a wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xed78de3e wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf0c6c364 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfdb25eb3 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x077d7bba gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0acc499d gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0ff47e70 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x11d5b073 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1c084b50 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x23413244 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2615ae0e gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2910b483 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5961701d gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8c51a089 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9d06f612 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbd36c4ba gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc9626e47 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd8448b78 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd86048c7 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdbea6d0c gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfec4e01f gigaset_freecs +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x4c7efb33 wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x5790d072 wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x61e77465 wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x6cc75e2d wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x82182e6c wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x89474c64 wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x9b2c3be1 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa9e1c505 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf1bc4766 wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xfb665ac5 wf_unregister_control +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x23c86af6 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +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 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +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-multipath 0x1dc8a946 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xd72f7ca8 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 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x21857503 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x331d9d41 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x341a86da dm_rh_dirty_log +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 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 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa70046ba dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe29795a5 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf5643721 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 0x03ced457 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x08a936ca dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1aabd7a9 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x61c7c085 dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x63b2ff62 dm_btree_insert +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 0x72289260 dm_block_manager_destroy +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 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa6aae3ea dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb967690a dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbaa513b0 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbc5fe7c1 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca2bde4d dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xccaeb9ae dm_sm_checker_create_fresh +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd32479bc dm_sm_checker_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdb562135 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf99dc2cf dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/raid1 0xc728e0b2 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x619577bf md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0365d672 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0f99e9d5 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x24033865 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x37d5387c saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x3cb5981c saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4fb14974 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x86e85e16 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xabf4161d saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc1638648 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe2bb9ea5 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf5e09d7e saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0f8db951 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x1c7135dd saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x21610da8 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5e5d0367 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7157b7a0 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x78595d81 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x9d2f20f7 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x94187dfe microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xab684f10 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x015b650f tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x0f3eb810 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x629a136a tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x8730e10f tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x2717cf66 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x2f20afde tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x8b49adad tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x420f622a tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xb10bcd56 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xef306487 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-demod 0x84a92db7 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x34d005d1 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0xce1009b9 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x11304f4c mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2f558134 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4bc3a9ff mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x55eaae40 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5969708b mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6141895a mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6ce2cedc mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x79aa513f mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8da1d548 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa657beef mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xac967077 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb47da812 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb9deef94 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd0b912a9 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf742fcaa mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf8daba4d mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfaa1125d mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x07c17d53 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0bf1c367 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0f3ee045 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x19b097d8 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5a67309d sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6487366e smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x76222253 sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x76d2bc3f smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7e695cf5 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x85d5884e smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x87852db7 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa2d30c7e smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xaf36da1e smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb95155ee smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbac1d173 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd4d4adda sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdd11982e sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfa209fcc smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x4975cd78 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa080ca45 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa77ea519 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb3634132 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd544e5d4 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd9b9bac9 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xec5d6415 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x18997467 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x19b00628 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x373e7ddf ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x521d21f0 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5403c489 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x56738831 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6bea26b2 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6dfe036b ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x71c2c5b2 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x72f94ab1 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x735b3c84 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7b9783c0 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7bddce4d rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9c6b6d89 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa6c9097d rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xdb0d9d0b rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfe337c95 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x02006e4b cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x160a0e57 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x29e6932d cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3a2579df cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x58da2e92 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x792a075b cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x8e8c9c77 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa024a870 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa1db0aa5 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xade15c9c cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xaf4828da cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc27a176e cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc3a2e227 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc571ac47 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd031de6d cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xea46ad60 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xeab7a44f is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf4df1d18 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf5dcfd40 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xecaf4d59 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x5e00df42 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x74321b00 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x796dcd96 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7d6b9d2d em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x9cc1f158 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xbc531ba3 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xbcb0444b em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd25c81f2 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd707608b em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd7acd79f em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x06f40fee saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x12028818 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x7c8d7c19 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xa7dd903a saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xe85a2807 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x393c92af tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x59ae7fa3 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xb2bd704d tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xd86b0d55 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x29aff981 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x2dce4e32 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x460b0c01 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4d5f6299 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xbac721c6 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xe3a557d1 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x118a699c v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x5a803d88 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x61cba3bf v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xd94a19c1 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1227ec60 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1a2485db v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4ea94088 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x55b2de60 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x6abcb4d7 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x6fabaa2c v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x91fae27d v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc00986a4 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc32d036a v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd0a19ba5 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xda11a9ae v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe719d394 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfc7e9414 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x004d9236 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1a8d56d1 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1bee0e80 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1edf3442 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x258d294d videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2a82495a videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x418bf2b2 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x676a657b videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8007af97 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8167560b videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8a6704da videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8ec52a02 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x932669f5 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x97f00bc3 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9bc3545e videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa43ea51e videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbc6dc7e7 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc4d5b0f0 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd78a1015 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe75bd1f8 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xeeaa9533 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf528a441 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf8852cd1 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfad8126e videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xd2abe5bb videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xd3ac5ad5 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xfd254da3 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x40d8f186 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x622dbae3 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x68b7cee9 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x84922c4a videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x878f7fea videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x989237a7 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc71f95ac videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe8ed8303 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf83aa1da videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x18dc760a videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x32a98f90 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x4f950256 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x1730739b vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x25bc0404 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x46775bc3 vb2_write +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x51a6fff8 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x57721275 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x5d7bbde7 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x626103d9 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x6927c907 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x698d2dd7 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x6d367a62 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x732d37f9 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x813257c4 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x8a19f428 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x8b5175d4 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa6c0b5ee vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xc717c027 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xd563dba8 vb2_read +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x25773963 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x978b9635 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x47466c06 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x76879f77 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x8cfbf031 vb2_mmap_pfn_range +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0xd73b94b8 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-vmalloc 0xc2067a3e vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x00829fa0 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1cd16781 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x27c6bcb8 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x29938a14 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3d47ccf2 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x532ac25a v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5a9e142a v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5e8f21b0 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x62104f34 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x69fadd52 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6d927eb9 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6e78ea06 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x73887beb v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x79a736b0 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x7ee04ce3 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x83480c4e v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x930e3e98 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa5659aac v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb38bdbf6 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbb5d7318 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbdf8714e v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xee689255 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x05a06465 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1377ec73 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1d809b5c i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x5f1b41c0 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6e665857 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7815069c i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8a648745 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xbb37ba52 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x29d1d107 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2aaa4fcc pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x57f8e54c pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5f3db9d8 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x84e1b575 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9cb6de62 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa7ac660c pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd5f65995 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xde008d32 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe031ec78 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe10b3468 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xef1da5f7 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x154e36f7 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x9f750c28 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x59aec332 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7e7800a2 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x83ca6d6c pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x94d26563 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xeb536c77 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x18369af2 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2f828cb7 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x73114015 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd68cbc58 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xde0a3ea7 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x08b8dd2e twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x6fca0ebc ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x7d0594b5 wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xa5f0881a wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xc67973f9 wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xeb8a647f wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x7a0365c3 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xaeaae872 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xcf4216a4 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe290a4c9 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x61e03047 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb058ba43 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb0fad714 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xc96b6b08 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd3789439 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xdd18e4f5 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe8b1a84d enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x14585f92 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x1488b38f lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x19ee56af lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x582f0f39 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x6206598b lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xa980dccf lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xb73250dc lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/pti 0x19f09b98 pti_release_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x23bde487 pti_request_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x52a78e81 pti_writedata +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x7520f2a6 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x9a0a1d51 st_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x15ee0943 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x34aaf2ce sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4972db17 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x992d007a sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xafdef200 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xba2df3d0 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc685c33c sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc6e95636 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdb01a9ce sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0226b539 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x33ab102b sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x42d1ad23 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x43660460 sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xd63f584e sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xee3ba300 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x02bab9af cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2ba0420c cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x7dd05159 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x56bd8473 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xa9bab018 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xfb8f475e cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x9d635454 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x318d0368 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x88bf86a9 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xfb64018f cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x615503bf DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x3fa125e2 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x37259b20 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x08892e1a mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0f83f580 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x30192da2 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x32842608 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x361fe390 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x47cc51ec get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4cc15746 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x55ca2588 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x565fea89 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6506ab17 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x738e355d default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x79cf878f __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7d7b6ac8 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x84566391 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x866d2706 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x923c2136 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa941d834 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc6876d96 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd0812e0f mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfcedb4b6 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfe9c5bb7 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x283945df register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x2f62e0f7 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x52b797dc deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x7b4bbfd2 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe050ab8e mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x143d929c nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x73485ace nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xfb736d2c sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x25fd3d53 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x2798928c onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0a8e57a8 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1c7985da ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3168ae50 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x32d4f3f1 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3a3540a8 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x43fae0ed ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6910854e ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa24eb71a ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xad85755b ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc4616128 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe1ce64df ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe9d6a427 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xffa581cb ubi_leb_read +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x72118e01 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x853e0804 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xb8c06d9f alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xdb9d86b0 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x20646fdf close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x25c7d9a5 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3cbc86bb can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3e38ae31 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x679f3653 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x852afaff alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x86304c4d open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa1f2eddd free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbc16b476 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc2c4913c register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe5142e21 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe94d216c unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x14cd5b80 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x548b049e alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa8025492 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd89f8f9b register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x09dbfebd mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b7f112b mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e504ded mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12b24265 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15e4ee9e mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b4dce23 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1cf07047 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d827771 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f7ccc4e mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x252e1fbb mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x254dec2c mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x25caa708 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29f061bb mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f3d788e mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3431b8a5 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3431e1e7 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3857eda1 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a7f2b00 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ba469f3 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3c9d89b9 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c6b5a94 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x529314a8 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52c24497 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x572311ae mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58696701 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58e2d141 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b63c15a mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5da5b3cf mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6131a7a7 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x65975582 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b8d69f8 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c712acb mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d40b856 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71f4d13e mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79d8d6b9 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ff27bb9 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80670bae mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x82e34fab mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x959ceb6d mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b0d2633 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa014d994 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa47abfa9 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb1ca2520 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb24f0ab4 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb506ed10 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc3b8161 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4a66abd mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcfe6644a mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0495b77 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd4be71e1 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd53f4420 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd586d81f mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5892202 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde7eb21e mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdeeccf21 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf6e6f59 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe099730b mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe365bd76 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe67fcb58 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe68eb503 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1ca1686 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf4d049ab mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf63e9fbf mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7c92a91 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc2607a0 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd7bceeb mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff77ff90 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xffd34fca mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x408c897e macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x414a8f47 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x95fdc415 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xbbe251e9 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd90aa1c7 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x2fc0e46d macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4aad8255 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x503693d7 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x653d6a65 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9c3b9af4 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x15eac7ef rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x43cecec0 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x475b18c2 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4b787eaf rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x505d4493 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7429b4ea rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x022f572e usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0915b430 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0dac146f usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0dc00f07 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x15256254 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x279d448e usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2e0b9c29 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x32c0297a usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5162bd73 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x52d6142a usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x55d1c706 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6aa4cab9 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x85bf3560 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x897d6690 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x89b82e29 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa7a4f080 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd387013e usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdd56818e usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdd74ce55 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xde5746f8 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdeed030c usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdf0f5c8a usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdf5d0e77 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf1015513 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0ca0eba5 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1ec1a1e0 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x45508a03 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5814bcaa i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x63e3eda4 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6d3333be i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6f964658 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x709533c9 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x853c2742 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9c821117 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb2235c78 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbe3e1652 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc279ad00 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcc645fb9 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xda0a0f47 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xda6751e1 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x4a7e5c63 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x5a1dd17f iwl_legacy_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x5bf43b65 iwl_legacy_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x5f1de079 iwl_legacy_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xc62d4a78 iwl_legacy_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x15396013 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1ff14ec8 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x23813f34 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x319ad0b8 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3f5d213b lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4bfb4535 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x750aeed3 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x77f307ce lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x96fe4106 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb234dd8d lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xba02ca2b lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbfaf5176 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc3b2fd88 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe47f6a29 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xedc01481 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x118388f3 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x146c0968 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x698c6d25 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7ded4870 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x91926bf8 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xcab7eaed lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd2694a27 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdea5ea1d lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x4985d133 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xfb2fb210 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1196fdd5 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x609a3d00 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x722620d5 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7a85f7da mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8f9df9f7 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x90871f66 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9bc3edc9 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9e9051e2 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc4e0eec3 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe1617ce7 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xeda75346 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x221bd8b7 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x47a02f0b p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x54e0d866 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x599e8f2d p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa0b9d274 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb9489550 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd4be7d0a p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe512acfc p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf126adfc p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x00e8b25c rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0e129e43 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x12a1d587 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x28f12049 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2a927f16 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x376115b3 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x410d2683 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x43814f8a rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x484d782b rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x49779a61 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4a82a2d1 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x543ef718 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5ebb6936 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5eca91a2 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x60e4b808 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x64629727 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6832d9e6 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6a249c0b rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6febc59d rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x82249743 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x91286e91 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9216ad6a rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x96865984 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x986b621c rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa3d0657c rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae164123 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaff5b550 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xba766eb8 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbcecde40 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc9100ce4 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcb897c4c rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd17fe159 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd33add2e rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd4f1e4a4 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe527be04 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf0ecc1fb rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf7a3b3de rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x005d921e rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0aa44330 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x156c4c22 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x16bd1590 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x21e0bb35 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x242bc967 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2b1760ac rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2bc05998 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x308936e4 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3246bf15 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x384bc796 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3b927d8e rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3fa0d82a rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x496acc33 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4c5ed4f0 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x54a9d284 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x58560e62 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6075e767 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x62b5afd1 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x66c8ee33 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7121457b rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x74e335de rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x74e5d700 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x75b792dd rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x82c9c730 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x84c0e390 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8c443be1 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8c5d7cae rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8fb5d8d6 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9f5b5f98 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa1551240 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaa003a90 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xab03b757 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xafe2f8de rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbb89825c rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbcb8b126 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc285eb9a rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcec4eb46 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xceced801 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd15d11f4 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xda8a9a76 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe463c533 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf22d6ed6 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf74c0172 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf9695607 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xffa5bc5f rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3bd19398 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x41c0e8fa rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x48e1bdeb rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x633f8118 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x85200ec1 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x989005b3 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa497abde rt2x00pci_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xafe8d072 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf3529dad rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x14012119 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x17081e90 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2428e890 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2592a5b2 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4f94e14f rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x578c9a6f rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x76f913e0 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7a0d01da rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x85ff2720 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa50681e0 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa76f6d6e rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa8eb51c4 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd0dd21d3 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd62045e8 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xddbde503 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf632da76 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x52a759d4 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xd31b5e93 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xe8f15c34 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x4ce283fa wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x67ae81a5 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x78d205cc wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa2e9c713 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xbb393608 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xdd5bb902 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe35d951f wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26 wl1271_irq +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x0c5ff766 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xf5279078 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xf97efd88 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x0f89a3fe mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x13ea1179 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x3e30206a mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xc38536dc mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xc850ea79 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xec61482d mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xfa6475e2 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4e009896 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x59248a55 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8c9ff0fa wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa5411ccd wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc12a70fe wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc4fb0954 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x270758e4 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x14ac4792 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1bb6d542 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x288f6b59 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2e964b2d cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2fcfbb32 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3208e3ba cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a222f9f cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3e4af6d7 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x48925458 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4ac13389 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b7db102 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5047afdd cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x68f921de cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6a98ca2e cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x700ffeff cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x755d8fff cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7f2fe137 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x825af0ac cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x884a1f88 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x90109e29 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x927dec73 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x967458f6 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9fe44f9a cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa23115ab cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa925905c cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xadafb29a cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xadcd1da5 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb35586de cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xba259f04 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbb1c2db6 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbb3719c7 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbd471cb9 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc1fd00d6 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xce989dfe cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd4265f1c cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd5d3605e cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd814a941 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe13fd7e2 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe590332d cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe6b70b98 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe9f9b789 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf4fabda6 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf5278188 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf52a660a cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf565a019 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x3456dbf5 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x410d4efa scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x69485052 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x6a1d5c6b scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xb20a89a3 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xcb7c7003 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0e76441d fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x2211a5e5 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3d7795cf fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3efb2799 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3fb12a9c fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x694d9fa2 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe0bbd190 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xedcdbcf1 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf95399c5 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x1704201a iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x26476cec iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x88106488 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xaf6af708 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xc27de3f2 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xddc7ce13 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0e9d0f6a iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x13481bc2 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x225247fe iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x238b556f iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28b38376 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28dd4d8c iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2bd07889 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2d9efb91 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x303c4e8e iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34c6eed7 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4080dffe iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x42cfe0a5 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x494bc96b iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4a825d37 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4bf286c2 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4e5c496a iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62e7d940 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6365184e iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x64bf1607 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x64c4aebb iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6546be8f iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x83a86dcd iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x856c80af iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x91f00383 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b1aefac iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4c895ad iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xac9b73e0 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb20dcd91 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb340a76e iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb8d2822a iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc0c3fccc __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc3395504 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcc569e95 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xccbafa39 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd7959d99 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd8c3ceab iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd94007ec iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe40cc18b iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe5f4fb20 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe89ee37d iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4427273 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf55733b0 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9ec5e5e iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0e75c77a iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1bb0dd63 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2e8bcd05 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x42aa6b7b iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4a83d5ae iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x58505e5a iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6ec6b673 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x772d2eeb iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x849f3109 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x87e3a664 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa56b4c9b iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc54fa987 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd64620c4 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe8d9729e iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xefc344b8 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf0e02a57 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x021dfdaf sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x13efa70e sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x22fd0f08 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2e06f90b sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3c0f6b2d __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3f54fa6d sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x468721a4 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5953f6e1 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x74327af9 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x74e83761 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7994c3f0 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7a6199a8 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7b0f5109 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x95869901 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa7d9c934 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xae9f1886 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbdacd00e sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbf4e5be0 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc8770a51 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd23273d7 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd293ecc1 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdf034ed5 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xea9781b5 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xeaa56ec9 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xefa72e6d sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1b9b556b srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8b6ea83f srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa94ef4a2 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xcd569f20 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd7df96f2 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf6d24a2b srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x02182387 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1882f04a scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2a727b07 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x70dcf48c scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x79577868 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9825f71a scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb0e99c13 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd5089e00 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe8aa4d27 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0c5d476c iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x10847801 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1976529a iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1fdc071e iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x313f95d7 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x46068309 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4861ff98 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49cd2ccc iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5b81d209 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84d4a443 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x86ed2606 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x89d6cb23 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8eb8be09 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x996ea3d4 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa3ab58a8 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa59f2def iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb68226f9 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbe5f5fae iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xce612031 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdd7c6b5d iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe3da577f iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe5ae90c9 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xef650aba iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf3aa777c iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf959987b iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfc62d40e iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfdeeedd9 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x1cea7f76 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x5b81a2ba sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xdd1b67c6 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf423d0e5 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x6bb1f84e srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa54e065b srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc023a3e7 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xed4ce2fe srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xff9f21a5 srp_release_transport +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x0c493f5f spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x19bfa49f spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x1d5d4619 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x30306c90 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xaf04a29f spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xb3ecf501 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x2439cc1e iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x9b4dd436 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xa47a7407 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xd73ea537 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0x35b85807 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0bef4dc2 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0ef1d765 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x20d5f86d spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x3827b587 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6f6768e8 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x95f5ab4c spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x96cdc780 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a009306 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb35aaab9 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc054e814 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc08961c0 serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7550f5d spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0259fd2e usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x26447353 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x380f0d6d dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x3a47d151 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8e88dc6d usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x942921b1 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xaf72fc8e usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc5afbe82 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd2701c5a usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xdfb968ce usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe115393a usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xed1aa20a sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf6452ecc usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/8250 0x68bbdfa2 serial8250_handle_irq +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x67b65b4a pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x13dd377a max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x38687e97 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x66195742 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xaddd9b98 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xdf9c8e1e max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xfb29b93f max3107_remove +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2af08258 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x4cfb5891 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xaec0ccc2 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x53045116 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdccf9250 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x5ad20aa6 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x82e76d8b usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xb9ccd9b9 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xedc3856c usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x02c7e9f8 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2c446a15 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3173b384 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x43f0d8c3 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x57b00ce3 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x78ae9686 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7fd184e6 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa25aa5d3 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe165076c usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x02a0186c usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x05d6c79a usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0c0208eb usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1aecb266 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ed36191 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4161d61f usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x45323737 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x696d6f39 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6bc557ab usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6d646efd usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7f85585d usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xab4c90cb usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb537e094 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbf929ec7 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc6d7da8a usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc83f20bd usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xec97f2e9 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf0c883ba usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf3a7c40f usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfc31be36 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfda964a5 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x013c2f74 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0a9840c2 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1ab6c725 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x378f9520 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x47944224 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4a615804 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4b038b54 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4d7057b9 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5376354c usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x673bf323 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6c112094 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x80b1526d usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x91ea524f usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xad496ec3 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb5de7da3 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcc1bf72a usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd78dbad8 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe188a57a usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xeae12611 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xec45fb8e usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf1d2d2c9 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf36febeb usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0f89b2ba wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x53b5139b __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8f56975f wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa8dfc244 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb3b56d62 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0e947618 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1eb2ea2a wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x20d71b0b wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x50038f8a wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x51bcd345 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x568fa3ef __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x69852ef8 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x76cf8146 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7ac749f1 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8adab99d wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9bc4676b wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xaf83176e wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb1dd48b6 wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd1e252c8 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xefa26e40 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf25d56aa wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x8678a681 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x91d7b99a i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xf5470350 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x1379f4d0 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x141c845e umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x2cb1e425 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6a730eaa umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6c3acbb5 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8254c16b umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x989e467b umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xdc0163dc umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x08af0b91 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1137cf4c uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x14365cb4 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x15df5301 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1638ab38 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x17800a55 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2313b3fe uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3a574665 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4428a12f uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x48d28e5a uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4981f14d uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4c728f00 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5732f29e uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x59693dbe uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5f150d95 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x66ab6b61 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6e6044dd uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f8bc80b uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x714add5d uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7322ebec uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x885e59fc uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x89e5647c uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8bc2ac76 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c3ce86e uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9f981cfc uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb13fe0c4 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb1d42222 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc44a601b uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcc9e25dc uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd4317c98 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd65cf62f uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd6a26d0c uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdac39d94 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe44682a6 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe67dafb5 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xed7f91bb uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfe9bc31c uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x8dd1559b whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x10aaf823 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x39c0fb8e ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6b79723d ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc4944e08 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd7e0fce2 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe241b08e ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xea55ce9c ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xc38bae67 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xd8dd3502 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xc253e2a5 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xfc44d35e sis_free_new +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x112f1fe5 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x1e1940e6 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xbd833a94 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xbf7971be register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xec4d19ee virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x01affc1a virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x3d5e13fc vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x4ebc2a12 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x528c3b7f virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5bd9970d virtqueue_get_vring_size +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5ffc352f virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x7b132020 virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x8a661fac vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xbbf05f5f vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xbe20cbd3 virtqueue_poll +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd45a263a virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xf0f0822d virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xf8f2de9c virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2d9fc99e w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x4174a86c w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5a4eb132 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6c7d1a56 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa547de01 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf3db6911 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xfa2c684d w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xfe1acee3 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xfe4f8fa7 w1_reset_bus +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x17eda985 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x1fb31774 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x87dc5897 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/fat/fat 0x039f051f fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x0e745cf2 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x2135c145 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x2ce9dffa fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x2f4c466e fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x38a86db2 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x5454f82a fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x5662528f fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x5b79c3b9 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x629e5303 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x647526cd __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x71c1a9b4 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x7be4ba91 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xaad04f88 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xd34f5924 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xeae9f0ab fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xf93339d3 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xfaf2bb0a fat_fill_super +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x18743fcf nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x5351f4be nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x595f7818 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x88ebaf46 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb137b82d nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x031798c1 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x06dafd12 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0816f484 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0a354db2 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x14992cba nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1912dfab nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x192de80d pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a330a9d pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1ddf8cb4 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1f3a1402 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24598777 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2557782b nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x29a44008 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2c4a8528 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x313583a4 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x327d7192 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x33a3be6c nfs4_reset_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3bbdf3e4 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3da490e3 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3e6afc40 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x418dea8f nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43665cfc nfs4_reset_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4e7d8677 nfs_commit_release_pages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x636bb028 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75fe7e83 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x871e5a81 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8fc4c98c nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x957fa0a1 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa426ce8a pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa6bc3ac4 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa7a19aaf nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaa82efea pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb41467ff pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbc151525 nfs_commit_clear_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbd32c6c1 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc933fc86 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc9905a42 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe67def00 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe751443c put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x5fb94cc5 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x654922d2 nfsacl_encode +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 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3a5f96ec o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x48ce8211 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8c22f1b2 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x96dfdacc o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x96ff3860 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x99bbacb5 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb50bce78 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +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/dlm/ocfs2_dlm 0x1347012c dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x418c9a27 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6f33af1a 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 0xc4e9daba 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 0xe61c6e4e dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xeb4ba36f dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x657b65f4 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7c2c1f0b ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xf74c9b51 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x15912dc8 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x5060c267 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xbd7af29c garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xc0982dfa garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xd585a4f6 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xe2839e39 garp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x171a8aa0 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xf00e6735 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x391decd2 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xf3e8e5b8 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0xa90e2c4a 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 0x3f99ba90 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00dbcf17 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09c93e8a dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1ac625de dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1c0f0e7d dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1df0a8ff dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1eaf7a63 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1ec5b4af dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x25fd33dc dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x27f95063 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2c3ba360 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3d247854 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4038cb5f dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x434a9034 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x522837d3 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x583f3dc8 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x60a28be5 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6c3235e0 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f576966 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7154d18a dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75b4618e dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7efde44c dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x862975b3 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x874665b4 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8755c8cc dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8c7f6661 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x90fc5fda inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb2085001 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb21a7f12 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb551a5ea dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf6dc84a dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0b7b890 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd6a11db1 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdd3d4ac0 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xed03abfb dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeef3dabf dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0d1067c8 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x164b4de8 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x57a67757 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x78f59dff dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xcbdc4930 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xdca9fbc1 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x2511f8dd register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x695c3df1 unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x3d5b8e87 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xba25af9f gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x5ff87c90 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xb2ea306c inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x4df6e8b1 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xb77a3fc7 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6fd5ade2 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1190517d nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x2bb4cab1 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb8b629b4 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbd6ff37f nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xeddb46bd nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf4e164dd nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x49be17d5 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6758d03c tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x819ed2f3 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd92b74cf tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xdb03148e tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x101856cc ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1b83cfdd l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2af41491 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x70059a46 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7073a6e9 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x88b3dec4 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc3d5deae l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd759d3db l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xded52025 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe6780a53 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xeed73d3c l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf47d7ce1 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xff9c5a88 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7c947d75 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8c4df4fa ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xae4d238e ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xec6dc70a ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xee2333a9 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf34267a0 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfb5f6064 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfed009e6 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0c4ca198 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x35153cf1 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3bd82539 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3e9c73d0 ip_set_get_ip6_port +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 0x7cee27b8 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 0x8aafdef9 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9c35e03d ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9ca6d85d ip_set_nfnl_get +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 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa7f5c049 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xaf64e076 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xbf651776 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc5f9b62f ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc64945ef ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf42b8724 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x1c449251 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x39c1cd44 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x6c9ca766 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xf50b5bf2 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x012a5be3 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01df9788 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x022670fa __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02926919 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x08789414 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x09395ecc nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0ba720ad nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x183b4bbc nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1b08329e nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20d0be34 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22211cd8 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27b96035 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2def11ae nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x329d1a64 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32b3b0bd nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3775834e nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4352b009 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x446401b2 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x46cff00b print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a366f4e nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4caac387 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f9b7a06 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x523db05e nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5284e657 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5682b1b3 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x580f0044 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60b284d5 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61024779 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x68090b1e nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a3962c6 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c88abc8 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x729faa57 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75a67eee nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x761ae7ab nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76542cc8 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b9b8137 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7dc9af93 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f97146a __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81ccd868 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8399fa95 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c12b970 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9584c678 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97c83e08 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a906afd nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3ebaae1 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa8314359 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae6d0a0a nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf023a0a nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb87bfeff nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6071547 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc9c52d85 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd172b23c __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd469f581 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6c8202c nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe85f0a74 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xefa266b1 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf03f44f0 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa7aa249 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xa08d693d nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x67cb0d89 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x4c2d2be7 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x24fb75ef set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x359f1c3f set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x41802ffd nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8d7cfef1 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8f925d0e set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbb0dd230 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbbcae9e8 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcc286fc7 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd341392d nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf5680175 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xc2ce5353 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x21cccf9d nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x979cff78 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb9646a46 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xe0218c80 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x4af349d6 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb259d3d4 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0190f839 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x10034223 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1cf6cb23 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3180bfc0 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3ec1fc47 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5ad88463 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x732f4c16 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x85489547 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9fbd9f1c ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb27fa40c nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc4409806 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdb23fb9f nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf883b92c nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xd30ec0a8 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xd1ffeda0 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x1a212f90 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0922f5ee nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3c232c8c nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x88ff9d1f nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbe59f402 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe4a3d3e5 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf162f6f3 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xfbd572ef nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3052f3fb xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3bff2e89 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x65f6fcf0 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6608c8cc xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9a9c69c5 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcca1adcc xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd59bd650 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe108c14c xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xecabf8be xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xef6a631e xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf3f88a74 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf52a4ae8 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfb93e078 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x3e1dd4ab xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x9a303feb xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x0f08ca12 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x15d3fa86 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x1e500296 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x2126038d rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x22234042 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x37ec1c63 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x424aeab8 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x4622b59b rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4a36764f rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x4e83a579 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x6e110683 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x70a2f5ba rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x74bdd9e8 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x854b039a rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x862fe160 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x97d04678 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x996ab556 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x9a757aca rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xa5b906e0 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xa7e03668 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xbecf3802 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc4dbaf51 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xc8d68f55 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xe71fdeee rds_message_put +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x0475f97d rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xd96f7441 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0578a51c gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x11aff12d gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2101ceed gss_mech_get_by_OID +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2108fb5b gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29 gss_mech_list_pseudoflavors +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6c439cb7 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x93cd825f gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb46ee7e2 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc3cd57f8 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xda08bd18 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe5341b29 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe5d005d3 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe70f1ef5 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x007b4e5c svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0256ba39 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0386a03c svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04fcb1b4 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05d0c365 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x063670c6 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08fe7c6a rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a8f214f xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ab935dc rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0df99a15 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ebca8f7 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0edee14e svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0eecab4e svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1272e5aa xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x143fc9c9 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14b42dfd sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14d3bd58 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1542658f xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x170c2fe6 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1874c3f6 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18b8cb5a rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c97b362 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1dc51a0b svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x206efab3 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x229513de rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x275db099 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x297d6b80 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f938a8c rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a6b025 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32b8aa67 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34d70956 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36519432 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37fd8a59 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3839d9df xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x383b0a6c rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38528426 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b8fc783 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3be10381 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c8305ca rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c8a7dfd svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d035a12 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3db71e88 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x402cbb68 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x417bad1c rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41b688b0 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x483f41a0 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49489f4e rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d57b298 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e506273 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x517cebf5 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51cf39ea rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57add6c7 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57cb0093 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5905bdb8 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x590c5a6c rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a453e1a rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b0655ae rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b89b908 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d5ebb70 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d65726b xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d658361 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5db40677 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e65c0ec xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5efc407e xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61c8bf6c rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67984cbb sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6850859d rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cb60d59 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d7f070a xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ddbe20b rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6fcecd15 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x762d3f81 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d01825f xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80e9d2fb xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82481bd9 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83709a40 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84340739 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84dd63a4 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8649ca4f xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87516775 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87a0753b rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a0549b2 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a7e4903 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b5eb4be xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f2eae75 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f4384e4 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f5648a3 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90f5cb2d xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91144242 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9350261b xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93b6f585 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94697dee rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96bf3d95 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96e22491 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ab4e7e0 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c4c3df1 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cf52f91 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e86e693 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa06be7d3 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0e59d30 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2bbc513 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa61c84d3 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7ceaaac sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa84c2ed2 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9a7ae03 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9e927d3 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab424b5e svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabcad3b3 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad4b3b32 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadf06317 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae9441fc xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb05f36c1 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb31e4396 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4cae643 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb86f4bd0 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba22b2eb rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc9d7cf0 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfe69254 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc215fd63 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4b655bb rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4b6ff63 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb03c180 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd09dbc28 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2a23d2d rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3bce1d3 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd664a365 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7591e59 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda9fac87 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb12f1fa svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc4bf386 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe05e7333 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1d189e8 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe24b6d65 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4347403 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ffad3a rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea977473 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeba3e464 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec9f8cd2 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec9fa6ee xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed0d32b6 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed2e87a3 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedce2adc svc_print_addr +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 0xef46d798 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf012576e sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2d8d888 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3acc704 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4ae801c svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9e21db7 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd91c2e5 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdea740a cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffa16a98 _copy_from_pages +EXPORT_SYMBOL_GPL net/wimax/wimax 0x45f87f40 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4cf4b6e0 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x594ea8ce wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x60762b52 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x652e2c5e wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6f225f88 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x75ed24f9 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7d34ad18 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7da9a0a1 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x9ccbcaf3 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xac6a0eba wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xca5d8b62 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xed8a3590 wimax_dev_add +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0364eefc cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4061afe4 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4a19b2da cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5d49a962 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x70460da5 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x82b4b884 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8392f539 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9e52c320 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc41affb7 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd8441a35 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe20f94f2 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x03df1a9f ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x4c3beacf ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xab72540c ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xdb7a3156 ipcomp_destroy +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x15c964a2 pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x187cdf3a aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x1e2a4531 aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x2c109402 aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x48794cea aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x8bd40da2 aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xb603fa4f aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xbf14244b aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xd2c3162e ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xdd1f03e1 aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x04403b9c soundbus_dev_put +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x5434351e soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x5cf5004c soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x5ed58a65 soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x675b1b71 soundbus_add_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xaaedc586 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/core/snd 0x2535279e snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x39dd1b56 snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0x9a679e41 snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x7b448550 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0f952698 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x23f189f5 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x4ea65bf9 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x92acf486 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xccedd108 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd49b114e snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00f02958 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0241de99 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x043f373a snd_hda_codec_prepare +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 0x098c273c snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0cb0c4ff snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ea62fdd snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f7465c0 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f7bd8b1 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x100427fd snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11484b10 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14198914 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14cfd6b5 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17c3da5c __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x194e9efc snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f655e7b snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x212830a2 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x220c5e88 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22b0f328 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24db889f snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b5c0638 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d8a89aa snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x323f6a8b snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33efe124 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x363df874 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3998f13b snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ab5543f snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d1b0c85 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3df5a872 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3fbea12d snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46b791a0 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47e83d7c snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x491b2f0b snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4af565c0 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fc1e54f snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x597a7e00 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bc34189 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x603d6055 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61796908 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63a8b440 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6525b98d snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6613aa07 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x717ab398 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74a6f6d9 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x756ecca4 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77f44cdd snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79ecbf20 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a63ac6c snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bd29ead snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83a1b3f5 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x845f5f50 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x869c139c snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871c2c9d snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x876144ea snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x89ecb248 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a48f00d snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8adcc1f2 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b7f9b81 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b8800c4 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d824670 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8df0a86a snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x90c0b57c snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x921ecca7 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x944401ab snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f6fc1bc snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa67fbc58 snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab98e24d snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xabb075f4 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac4deded snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xadbbff9b hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb38125de snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb434386b snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5d23ba5 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6fc927c snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf0e8d30 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf11af05 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc111d8f6 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc18ae34e snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5e11617 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6f0265b snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9ce1121 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb2302f3 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd06818e5 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6a57484 snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd827f225 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd83e67f6 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9401b8a snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9b64e66 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda601c8f snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdac08a35 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde10a66b snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe1b2e0a6 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe1d165ae snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe33b965e snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe404caa3 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe706b001 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8a0f5ee snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee50321f snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1f26df5 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5cc4429 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf884191a snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8f5cfd5 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb75162d snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe4a8dc9 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xffab102e snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x74848b25 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xe3417692 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x623a5ffd v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x0122dd91 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x93bac6c6 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x94f9be17 aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xa463ac87 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb9bbdea1 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xcd136b0d aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x1a4e79f5 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xc7239440 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x345e6429 twl6040_get_trim_value +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xb0d9e1a5 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xc7201a4a twl6040_get_clk_id +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x648975c7 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x0fe5d9e4 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 0x5ed6e9f1 wm_hubs_handle_analogue_pdata +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 0x7b05895a wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xd0596189 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x24a2d872 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xbd4e9ffb wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x7eea7385 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x172ae599 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x7b340425 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xbe3119a7 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0xe5d093b1 wm8996_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00c02bce snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01b98591 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x022bb9da snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05761835 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06d687ca snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x09dd42a6 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0aafe6ef snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c443f51 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c66a3de snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f3d82ab snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x105834bf snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12da8ca9 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f319d05 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f7691ef snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22ef2184 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23b83145 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23c7eded snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24d9119e snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2be8d19e snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ca814dc snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e061cba snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31a51134 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x355de08b snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x383d20a5 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39184663 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3bc9a006 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x414064b9 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4357e63a snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48365db9 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49544d65 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f115911 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f5131cf snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f73da3f snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fc941d5 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50354cd3 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52bb6231 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52bc51f6 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52f1e248 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x561ca9cf snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57c37d71 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ba81ce3 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6036f6f6 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x607dedfe snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x628a9f31 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65364ddb snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67e7af69 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69707a96 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73128dd3 snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x736096a1 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x759b7a1c snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7618d231 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bd84b49 snd_soc_default_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c38e16b snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8174dd2f snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x875c1a8e snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88d68586 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8916dca7 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8de8fb7d snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ff4901a snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x911985cc snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x916d452b snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97bdb380 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99a2d2ae snd_soc_default_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a8051bc snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c56b78c snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa015c0fa snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3a9ade1 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6a4e935 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6b6f2af snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa884048b snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac71bfe4 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac8c4c57 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae29b68a snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0c8b08b snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb30357ec snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5a5659e snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb959871a snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbccec8c3 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc26d16da snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc329e652 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc54897c1 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8420e39 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca32dc14 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd037e17d snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd280007c dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd2b7caca snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd2d7f967 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd39cb873 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5f22fa5 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd99f6300 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0b62dca snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe31d754c snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5be00b6 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf01cbcfd snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf10bf6a5 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf15bad21 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf485115b snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf73e9d84 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf80fa0a3 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf94f8967 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfdb729b0 snd_soc_cnew +EXPORT_SYMBOL_GPL vmlinux 0x001bef62 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x001d1913 blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x0039044f __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x00391008 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x0039395b isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00709195 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x0086e2a6 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x0088a193 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x008d4ee1 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x009cb5c5 ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00d0caf0 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x012a26dd crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01a54df7 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x01ce9595 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x02130ee5 usb_is_intel_switchable_xhci +EXPORT_SYMBOL_GPL vmlinux 0x0220273a fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x022825ff platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x026e75f2 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x02b3d625 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x02c21821 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x02d4dba9 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x02e8503a dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x02f11cc2 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0308a308 ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0x031e31a2 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x036d5220 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x038cbf57 pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0x039c3498 pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0x03ad647f pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x03e32c1d sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03f613dd usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x0422dd53 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044db565 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x0490a884 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x04a58db5 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x04d69598 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x04e91ece dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x059cbea3 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x05ae262e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0675d219 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x06833b69 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x06a4b286 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x073e5234 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x0740195e __class_create +EXPORT_SYMBOL_GPL vmlinux 0x0776a2a6 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x078e96ef get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x08246a03 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x087ee4e3 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x08c46347 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x090321fc ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x094ac6d1 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x0951252f usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x0962aee4 xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x097167d2 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x09b6459e __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a89c831 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x0acf2dc5 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x0b026f23 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b28defb kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b4669f2 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x0b809576 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x0bd3a40b irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c676c3e xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x0c6db7e5 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x0c7b08ff dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x0c98603c __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cc3c382 of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0x0cc6f261 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x0cf5646d usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x0cfcdb3f __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x0d0c109d of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x0d2562b8 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x0d2ad4a3 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x0d385349 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x0d49b01d mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x0d4b1de7 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0dca4f8a debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x0dda8700 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x0de06988 cpu_first_thread_of_core +EXPORT_SYMBOL_GPL vmlinux 0x0de12fd8 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0df7bfb7 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x0e67c07b trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x0e85ef33 ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0x0e8bb965 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x0ea94bd3 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0eebff38 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0f04a470 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x0f697e00 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x0fde06b5 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x0ff73b10 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10296111 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x1032bb6e ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x10343bed of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x10420d44 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x10584aa0 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x10657756 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x10911275 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x109e20bb cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x109fb3bf wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x10c913eb da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x10dfcd7f pmac_backlight_mutex +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10ef3232 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x11032427 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x1108a1cf devres_find +EXPORT_SYMBOL_GPL vmlinux 0x1114011d threads_shift +EXPORT_SYMBOL_GPL vmlinux 0x1130addb register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x119208dd sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x11e0d663 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x1230a314 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x12341b5d ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x125b0e1d usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12a0b939 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x12a6d1be crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x12af1362 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x12f5e71a hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x1334e20a device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x135e4b35 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x135ea7ba ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x13857450 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x13883df5 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13e5be8e rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x13f72cc0 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x1493984d max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x14a28d2b ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x14d5945d of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x1556756b usermodehelper_is_disabled +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x159abb63 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x15dc7308 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x161d310a rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x164c0943 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x1655bb05 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x16d24ad1 blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x16f45942 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x16fa4f8d device_create +EXPORT_SYMBOL_GPL vmlinux 0x16fbbf26 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x1700b8b8 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x17728c63 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x17ca1688 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x17f07752 ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x18570516 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18ae30fa spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x18cbf918 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x18e2c347 dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x18fd02ea led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x190b861c wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x190de476 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x192cef22 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x199ac85b crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b5fc47 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x19e0f66e wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x19e57f0c tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1a013e20 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x1a02ca02 blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1a142913 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a563fa3 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x1a7133ad swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x1aa2e668 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x1ab0f89e bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x1ae0e135 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x1b03a550 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b533281 css_depth +EXPORT_SYMBOL_GPL vmlinux 0x1b5af17c fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x1b67e9de wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba27c82 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x1ba45dd3 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x1bab249b rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x1bb23cf5 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x1bc2fe89 of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x1c4fbb1e tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cd27bd5 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x1ced384d ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x1cf82066 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x1cf9c5a6 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x1d31ee6c ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x1d58c291 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x1d7328a0 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x1d9496fc of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0x1dbd5d4f regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x1ddd5ab0 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x1decb55c ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e651118 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e9a1f68 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x1e9fa5d9 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1eba928f ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed73c2f shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1ee4758b netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1ee9814e irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x1f207291 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f85b6a4 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x204638d5 trace_nowake_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x2049bab8 __destroy_context +EXPORT_SYMBOL_GPL vmlinux 0x204e6097 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x20945aff pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c49296 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x20d08b99 ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0x20ed0bd6 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x213b9d81 lock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x213f4df2 find_module +EXPORT_SYMBOL_GPL vmlinux 0x2166d9ef check_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x21912438 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x2199b85c usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x21b73055 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x21d36a03 kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x220aad05 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x22254009 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x2231d114 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x224aacc4 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x224b9693 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x2285200f usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22a566ab sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x22d66c42 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x2304fdaa class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x230e0698 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x232233d2 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x235f7240 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23b25a60 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x23bba2fe part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x23be9291 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x23c36f75 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x2406dae3 pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0x241c6090 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x2425b46e dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x242c884a sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x2430f659 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x24377395 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x244e2c87 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x246f59e4 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x24a6f036 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24e1307e flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x2513f117 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x252e43b4 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x255e7f74 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x255f8142 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x25714988 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x25a1e91b stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x25c57155 cpu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x25d1de05 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x25d6ca0c ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x260217ec usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x264bf07d platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x266b1ba1 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x26757228 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x2691412e boot_cpuid_phys +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26ba4ffe page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26e0bc3a led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2716ea5a mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x2729d755 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x275d1e85 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x27607689 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27de3076 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x2830e89f blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0x283243ec __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x284ce614 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x288b105b inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x2899210a usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28bd2e42 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e1a8d7 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28ea5688 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x28ef1d13 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2901a718 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x293cbc0e rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x29f92233 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x2a4ae658 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x2a5958f4 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a882ca4 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x2a98e051 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x2a9a442d posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2accf929 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ad4a942 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x2afbe2a5 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2b5c303b smp_send_reschedule +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2b616e8b do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x2b8b606c rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x2bb83fd4 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x2c0dc18b filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c7abbed ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c892cc6 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x2c99e877 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x2ca3a86e device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2cb7e003 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x2cc3e675 pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x2ce01055 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d08e596 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2d16403a regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2d2d9e86 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d4173de dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x2d569ad7 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d8fbdd3 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x2da0f01a dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x2da91bbd crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x2dd22a31 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2ddb391d usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x2ddee4bb usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x2df14faf locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x2e104e11 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e6a5c06 unlock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x2e8e2944 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2e9ddd0a posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x2ea92c07 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x2eb39a57 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x2ecc2cfe usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x2ecee7fb sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ed7625d ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x2ef6b5bf smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x2f2aa116 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x2f2c9199 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f79f791 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x2f988e6c file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x2faf0c20 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0x2fb387c1 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x2fc37bd5 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x2fcbc818 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fe3b59f inode_dio_wait +EXPORT_SYMBOL_GPL vmlinux 0x302b5b6e crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x30301151 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x30575f85 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3058d71e tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL vmlinux 0x30653573 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x3098dd99 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x30a3994e sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30be8587 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x30f89177 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x3108ea46 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x316db187 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c3a104 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x31cae343 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x31daf279 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x31f48b70 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x327db900 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x329646d8 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x32b36da6 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c42700 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32f08411 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x330a9af5 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x332dd247 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x333f17fb __put_net +EXPORT_SYMBOL_GPL vmlinux 0x33543801 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x33575c25 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x335f226e get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33802b52 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x33c08bb3 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x33cce2a0 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x33d7d614 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x33fe24fa crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x34166548 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x34288901 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x3432d0d9 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34579761 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x347a1d36 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x349453ac device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x35eaf4c7 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x361f1282 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3623d8de generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36620a94 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3667a585 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x36889c08 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x36c94b3e dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0x36edff42 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x37345f8b rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x378e98b5 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x37aba161 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x37b7a5fb uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x37dcd06d sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x38069872 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x380b6a97 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x38531cae tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x386b341b pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x387ed5ee sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38d99bf7 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x38fabd22 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x3912ca39 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x392b64be usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x394fb01e blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x3953d17e ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x397ef9ad crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x398f28f0 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x39d7bb0a usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x39dc3383 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x39ddda3f tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x39de4ccb __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a3361fe ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3a49c575 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a845fef pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x3a9e6e78 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3b068b95 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x3b4596e0 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3b5d89e3 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x3b7ce597 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x3b9ec0d1 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x3bd0bb7e flush_fp_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c466343 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x3c7e8328 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x3c8c3f66 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca4e53d __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x3cabde19 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cdb9564 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d92f1f8 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x3d9eed91 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x3da8bc3a spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x3dc864da edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de4f91f blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e8f937d pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x3e97746d usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x3ea6444a sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x3eeda181 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f2bebfe register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x3f3e2aa5 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x3f629ad2 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3fb33c8b platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3fe3b055 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x40273c6d pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4052842f device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x408337e7 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x408f5a3a tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c30f0f udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x412df7ee bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x415930de blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x416a6f42 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x41755631 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x41a7f0d6 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x41ba30d5 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x41bf6893 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x424422fd wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x425c1c0b ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x428385d9 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42ba8c9e __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x42e1651c sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x430069ba ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x4315afc3 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x4343b06d ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x4355dc4d debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x43602d9f sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x43609b66 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x43aece64 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x43c01b68 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x43d4ffe9 of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x43dfbac1 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43fdd0de gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x441257b7 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x441b3e06 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x44300384 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x4453c477 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x44834a11 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448c1a97 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x44a19d1d bus_register +EXPORT_SYMBOL_GPL vmlinux 0x44bcfa6d system_nrt_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x44db921a pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x44e190d5 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4540dcff shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x4545efe5 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x454d5247 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x4557ccf6 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x458518d1 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x45889418 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x458c4c73 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x46031b06 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4624f612 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x4667aaf6 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46747f00 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x4688d691 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x46990daa tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x46e9acac pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x46faa049 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x46fd2392 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472c2810 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x474359b6 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x4761f95e driver_register +EXPORT_SYMBOL_GPL vmlinux 0x476c8735 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x476e8843 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x478b8704 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x47b4fc56 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x47c149ab queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x47df2a2d inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x47f27270 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4865f9b3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x486f87ab macio_find +EXPORT_SYMBOL_GPL vmlinux 0x48947338 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x48a3d03a register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48a5f5f8 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x4943a338 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x4970d10d securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x4981900b wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49dae089 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x49e743a9 blkio_alloc_blkg_stats +EXPORT_SYMBOL_GPL vmlinux 0x4a2547c2 threads_core_mask +EXPORT_SYMBOL_GPL vmlinux 0x4a576fae pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x4aaa9377 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4b19730a crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x4baa852d ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x4bb01a43 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x4bb2efa7 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bc9e5a4 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x4bcb3f49 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x4bf0420a cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4bf0ad1c ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4bfb56cb scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x4c27ae11 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x4c42beb7 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x4c43b23a rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c791916 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x4cc52d60 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x4ce9a3f3 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x4d172ccb ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x4d172f78 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x4d2469ff __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x4d39f4eb pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x4d451525 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x4d740053 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x4db4d638 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x4db4ea0c pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e379432 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x4e7df11b irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4eaf907d pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x4ebf144b swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x4ec4b821 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f1ccf7d dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f4610d5 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x4f881b16 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x5013e6de pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x507cb8f6 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50aca9a2 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x50c52fd9 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50cb909d md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x50d6b78e ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x510f339a hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x51846493 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x51866357 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x51916124 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x51a92bf1 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x51af7f83 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x521f5026 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x52215aaf fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x528bef0f rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x528bf069 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x52f357ee inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x530a97eb tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x533fbea7 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x534a92d7 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x535b43bf device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x535f6941 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5371aeb4 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53ef564e pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5434b2f1 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x543f811f pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x547dd9d0 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54974962 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x54b50dfb devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x552567c0 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x553c6104 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x555b6e4b ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x55ad7dfe class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x55da0153 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x55e74041 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x55ea053d pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x56196ece task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x56260b42 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5637a114 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x5641696b srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56676654 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x568c4fd3 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5699d1df get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56b8f565 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56fc7347 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x576682df platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x576f6cbf tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57d8b078 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x5804524e hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x58650d3a usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x588813a8 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x588b2412 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x590715e5 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x59210801 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x59904a2c ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x59d5a604 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x59eac38d pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59fc3a4b exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x59fe10aa rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x5a25626b hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x5a33f26c ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5a3a21fb bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a51fb69 user_read +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a9811bf pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0x5ac14b9b __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x5af2df6e usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5b07cc79 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x5b323547 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x5b3ee6b9 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x5b911ea5 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x5b94f02a fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x5b9b4cc1 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x5be1df6f ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x5be6db46 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c08d14d regcache_write +EXPORT_SYMBOL_GPL vmlinux 0x5c08da13 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x5c4260ae kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x5c66d796 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x5c73788b mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5cac3df9 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x5cc5c612 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x5cc91298 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x5cc9c630 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x5cef4a98 pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0x5d02582d bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x5d0842e2 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x5d0e0551 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5d468b69 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5d70bafe crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5da7c835 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x5dc0b1fa unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5df6c6c9 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x5dfc08f0 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x5e25dfcb led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x5e3c3fe9 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x5e4664f1 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x5e747aa8 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x5ea568b7 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5eaeefd2 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x5ec15b48 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5ecb5ca4 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2fa4a0 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x5f2fb962 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x5f46d244 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x5f7ce02e xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x5f93cc48 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x5f9d78e7 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x60118f12 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x6011b59d dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x602301f7 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x6042da14 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x604f3db4 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x6058e594 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x605da3bc ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60c954aa __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x60dc5019 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x60df67bd ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x60e2722e pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x611308f3 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x612bd02f __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x61336a3c device_add +EXPORT_SYMBOL_GPL vmlinux 0x613db082 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x618c87df ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x619f2e50 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61df703e pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x6218ba64 device_move +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x62525243 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x625b54db ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x62acef5d driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x62d13f69 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x62fb6825 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x63078a41 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x631830d5 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x63268234 edac_class +EXPORT_SYMBOL_GPL vmlinux 0x6347ee72 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x6374038e device_register +EXPORT_SYMBOL_GPL vmlinux 0x6377bdcb tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x642f5824 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x64433c8a power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x6453f77c pmac_has_backlight_type +EXPORT_SYMBOL_GPL vmlinux 0x64628535 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x64778f8e ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x64a6cc1b usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x64c8eac5 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x64fbb1e4 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x651d4d85 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x65236aaa ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x6526a998 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x656eecc7 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x657eae07 cpu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x658678e3 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x658e1367 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x65970658 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65fab34c tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x66101709 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6636d249 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x6680f7a0 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66da218c usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x66e3c25a debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x670144be blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0x6706181c skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x6721907f disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x67246b31 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x6738bd43 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x67665282 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x67844bbc get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x678a4e92 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679dc9c2 fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x67b726cc usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x67bc7947 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x67bce615 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x6824f2a8 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68e49a13 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x68e6ade5 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x690d9468 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x69196e4f md_run +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x697cbbb4 threads_per_core +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69e1e21a ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x69e5328d tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f33a32 xv_malloc +EXPORT_SYMBOL_GPL vmlinux 0x6a0073c6 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x6a4da799 ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6aa756a8 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6b06c89e tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x6b2495e4 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x6b2800aa ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b729828 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x6b7ea517 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x6babc9ce inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x6bb246a9 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x6be1e464 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x6bfd947b cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x6c21b741 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x6c4157d6 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c6b9e1d ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c9a178f pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x6cad207f bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x6ce6b0f0 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x6d1d9d07 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x6d21c1fa each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6db226ed usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x6dc99c0f ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x6dd76510 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x6de4e5a0 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x6df96f4d device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e7be59e blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x6eab78b8 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x6ecd2262 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x6f0d31ca device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6f0f8257 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x6f1919a5 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x6f48a8b4 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x6f608203 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x6f730c2f pmac_backlight +EXPORT_SYMBOL_GPL vmlinux 0x6f73896d inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x6f7fde3f sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x6f999357 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x6fbc719c pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x6fc2a39b pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70004745 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7032ce3b tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x703df26c usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x7063709f regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x7085ed9f device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x70a66ebe class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x711dfe2f device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x712ff883 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x71466b3f usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x71585650 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x717a924c platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x71a1b056 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x71db2595 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71dcf544 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x7238baad shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x723edb64 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x724d7358 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x728d0948 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x729c0f63 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x72be7ea9 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x732e9483 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x734aa384 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x73524b0c raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x73564277 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x73632aa8 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x738ede26 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x739aa1a1 pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0x739dd13c inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73a8e707 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x73c0f7e6 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x73c9a85e tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73ef5a6e crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x741614b0 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74825671 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x748d156d cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x749a5a54 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x750844a8 blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x753f069c xv_free +EXPORT_SYMBOL_GPL vmlinux 0x755ba2ee irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x758955aa inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x75b20f59 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75d17d0b pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x760f6467 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x761b4f77 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7622098d spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x7626b273 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x763c1558 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x763ca708 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x764cb5db clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x767f9b9a spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x76ad7f78 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x76b4f2f1 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x76c552f7 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x76e95fd4 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x76f7f221 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x77035f6f scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x77186dde pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x772e3309 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x7764cfc5 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x77747da3 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x77aace13 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x77c6df86 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x77db0d53 cred_real_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x77f06d72 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x77f54677 of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x782a7d32 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x7839ff2b gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x78671fd3 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x78846b31 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x789283f3 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x78fb0530 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x791575d6 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7932d215 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x794f3dcf fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x79c0e766 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x79e87970 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x79ec2675 dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x79fcbcfb wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x79ff377c blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x7a3173a8 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x7a599ee3 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x7a7d5b64 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x7a91760d aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x7a93f7f6 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b44f7c7 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x7b862e9f __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x7bd65a4a user_update +EXPORT_SYMBOL_GPL vmlinux 0x7bea0cae disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7bfd5aeb ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x7c6b8d30 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cf14181 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x7d389aa8 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d9130b4 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc4935e transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ddb1f7a mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e51b5b6 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x7e58a494 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6b82d1 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x7e8a5423 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x7f13b427 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x7f4de6c0 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7fd89854 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x7fdf3256 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x802774b9 tps65910_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x804caa61 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x80654f42 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80a63f69 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x80a79d57 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x80c6f98b rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x81094b9f usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x8121e896 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x81227411 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x814b6337 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x817e0e8d crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x81b4b850 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x81cbbc04 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x82123b5a sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x829c8be9 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x82a3db82 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x82a48f9e pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x8305bcce sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x8325999d uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x836083bf get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x8375fb83 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x8393ccb1 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x83a80da8 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x83ce82eb get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x83f231e5 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x83fbf2df __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x840880cb driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x84aee336 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x84c7f166 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x84ecb7cb timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x84fddab4 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850ad395 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x850b3b84 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8546e750 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85e32aec crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x8646292b tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x86664c86 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86c02d18 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x86cf6918 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x86d48687 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x871477d5 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x87148e21 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x874c80a1 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87945da8 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x87dec080 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8818a3de pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x88c69edf da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x88c75b0e inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x890ed87b sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x89141870 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8916f0d3 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x897cd30d ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x89ae80f6 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x89b66539 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x89e5d257 dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x89f0027a ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x89ff43f6 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x8a06cacd __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x8a16b797 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x8a20267c fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8a29cb76 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x8a2ce244 ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0x8a341a6b __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a5f3319 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x8a738d3c security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x8a87510d sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x8aa38db9 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ad3bc5f relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x8b15d251 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x8b43301e rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x8b5c52ca rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b72b02b ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b86857a xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x8bb1d96c device_rename +EXPORT_SYMBOL_GPL vmlinux 0x8bc1226b inode_dio_done +EXPORT_SYMBOL_GPL vmlinux 0x8bd92f63 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c417f10 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x8c682202 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8c7f4312 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0x8cce48a0 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x8d14f8ca pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0x8d191378 tps65910_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x8d6b4e31 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x8d793da3 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x8d7c976f sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x8d80529b virq_is_host +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8dad55e8 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x8e4efa14 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x8e5b1eef ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x8e5cad70 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x8eaadb98 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x8ec25d61 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x8ee2d4de usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x8eed2a69 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x8f4302d4 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x8f442776 md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8fb0ea2b usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x8fb6e029 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x8fbdc56d eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x9021a068 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9037508d gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x903fd8f3 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x9046f419 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90987b1f mmput +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a82aa1 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x90c3dca4 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x9131908a get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9168fd5b dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x917e7408 css_id +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91e3e20f bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x91ed304a key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x920876e6 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x92470540 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x925f1ce8 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x929716c2 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x92a6ff0b tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92bc7d2f led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x92c0b22f debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x9314042b xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x93467a58 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x939f4208 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x93adeee5 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x93b2fbb3 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e90a47 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94223cac queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x9434b838 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x943e4552 of_property_read_string_index +EXPORT_SYMBOL_GPL vmlinux 0x9455bbe1 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x94986fd0 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94d07b17 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x94d5ac55 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x95059e4d __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x9519233b tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9559a08e rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x958ba139 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x95a843b7 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x95c9fe4f pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x95f5405f fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x95fecb53 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9645a0e7 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x9685cc3f pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x968d69ea rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96d0e525 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x96d8ede4 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x97131d1c sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x97374bae usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x97391035 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x974362bb sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x978f24b1 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x979f13d9 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x97b13dad __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x97ee2fe9 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x981033e9 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x98217faa sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98844294 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x9899fed1 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x989a1143 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x98a0254b rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x98c7cee9 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98cf8d05 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x98e259fc ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x990a2d13 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9930ce5b pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x99530537 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9982ad40 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x99e6c871 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x99ed64b2 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a29c5bf cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x9a2c99ff dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x9a49d937 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x9a949f0a shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x9a9662c9 task_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x9a9b9681 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x9a9ecb80 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b35bf02 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x9b46db7a platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x9b595695 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x9b7eefa6 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x9b7fbf6d adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9b8a792d ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ba1b866 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x9c013203 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9c1a66a2 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x9c2bd5d2 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x9c30873f sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x9c3f626a ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x9ca2c862 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cbd2a6c init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x9cc6b3d2 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x9cd3b6ae __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x9d0d1851 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x9d2357d8 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x9d360d2c crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x9d365c8e tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x9d5ffadb cpu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x9d732408 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9da8160b blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e0321a9 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x9e472f35 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x9e4f1cfb ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x9e52c280 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x9e6fbb43 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9e76927b sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x9ea865cf blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x9ed13d6a input_class +EXPORT_SYMBOL_GPL vmlinux 0x9ef8f2df led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x9f2e4e55 dma_mmap_coherent +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f8a2c70 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9f91faf1 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0x9fb47edc crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd3399d sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x9fe9d8a7 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x9fedb268 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x9ff2eee7 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xa01222d7 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xa035dea9 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xa05407fb usb_usual_ignore_device +EXPORT_SYMBOL_GPL vmlinux 0xa058d482 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xa064846f __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xa08756ec sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xa0beda83 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xa0d1a668 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa0f8966d debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xa10a64dd of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0xa126b9d4 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xa14ba2c7 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xa14ee084 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa17e4b0a __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xa18faf95 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xa1cea397 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xa1cf2341 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xa1e6ae84 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xa2aeed64 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa3689f72 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa37135ef skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xa3831e04 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa39d9220 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3b6e6b7 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3fa5025 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa417fa83 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xa4362ba7 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xa43c4707 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xa452cf67 get_driver +EXPORT_SYMBOL_GPL vmlinux 0xa517443d posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xa5189478 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5d82f01 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa6157977 dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0xa630c14a generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xa64d66d1 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xa6712530 regcache_read +EXPORT_SYMBOL_GPL vmlinux 0xa691e4d5 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa6b5f059 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xa71bec4c pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xa75c4c5c sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa781986b inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xa78fa222 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xa7b999e1 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xa7d24976 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa807fdec scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xa8490a69 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xa873799e pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xa88c08b4 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xa8a45096 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xa8a90508 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa90cf4b0 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xa91d41b0 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa92c27b1 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa92c3b25 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xa947abd4 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xa95c303a crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xa981722a ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa9a28931 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9d068df disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xa9da665e scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xa9e3b425 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa2b9c77 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xaa8119bd crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xaa852c93 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaad16cec __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xaad9c99f ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xaaf03c71 tpm_continue_selftest +EXPORT_SYMBOL_GPL vmlinux 0xab01a6bd hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xab2946cd bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xab666933 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab752dc8 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xab797e91 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0xaba55b4a rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xabf540f1 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xabfbc63f irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xac2515a8 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xac3c4cfa console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xac8caae6 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xacc5478a pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0xaccd4dd2 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6 work_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad3bd580 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xad56f38a wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xad5b8a59 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad629d34 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xad7153ef pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xada06d0d __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xaddf4bec regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae13a712 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xae13f9b7 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xae17b699 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0xae1dc9e4 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xae335484 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xaea524b9 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xaed07e5f class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xaedca9c2 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xaeea3073 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xaef2c83c fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xaf1a5aa8 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xaf50a92b attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL vmlinux 0xafaeb9e4 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xafdeed07 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xb01687f4 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb01cbe4e crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb050037a da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xb0ae5977 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0eb55ad ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xb0f783ad ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb10ff9f6 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xb11b4eca crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xb12d16d9 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xb1332074 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xb13747c5 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb162ee71 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1bcec28 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xb1c00272 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xb1ce995e pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xb21978f6 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xb23ea382 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xb2670a1d rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xb2beec33 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xb2c090a2 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xb2c0f6fe blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xb2c56c17 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2f5f9e1 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb3172adc dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xb36181eb rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3bdf98d sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xb4930432 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xb496ae2a invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xb4a54bf8 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xb4b5725f usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xb4dcab17 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xb507eec6 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb56ed608 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5aa56c5 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5faf7f1 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb6015831 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb613f252 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xb64ea395 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xb6569a8f get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xb65de1b9 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xb688ca4d crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xb6acac14 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c237ef cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb6d008bc pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xb78fe78f cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb7b0f209 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xb815965f ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xb8392db1 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xb84b134d ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xb8572733 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xb85c2211 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xb87ff7ae inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xb8c5f079 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xb8dc0032 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb925e201 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xb93672bb sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb9822546 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xb98cb999 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xb9999bc7 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9bc10ba i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9e3ba69 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb9ef7f8e of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0xb9f78648 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xba2a08a0 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xba6fe65b pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0xba7ad21a device_del +EXPORT_SYMBOL_GPL vmlinux 0xba7baa10 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xba8168ab ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0xbab15192 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbab7eae6 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xbad26090 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbae88717 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb090714 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb0fb9a6 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xbb195c4b transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xbb3ab634 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xbb3d0b74 ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0xbb47cfcc class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xbb885753 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xbba3bdff ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xbbb22e7d i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xbbdf3ada md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xbc2b898d platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xbc2c24f0 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xbc301601 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xbc456407 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xbc59eab6 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xbc6f3c06 cpu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xbc6f931b workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xbc724c14 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbc89fdae anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xbc8d072b relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xbca4b578 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xbcb0e466 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xbcc65c27 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0xbcf81122 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xbd05a5b4 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xbd082222 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xbd1d9d2d __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xbd317515 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xbd945c84 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xbdb48e5b ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xbdc8e672 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd6375e pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0xbdef924a device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xbdf291fd ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe7a6ed0 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xbeecda8f dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf692e45 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xbf7f9ee3 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xbfe79ce8 ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0xbff79ae3 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0xc00df4f5 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xc03ab504 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xc0492e7d skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xc065a455 cpu_core_index_of_thread +EXPORT_SYMBOL_GPL vmlinux 0xc0796420 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xc081d655 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc095311a cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0xc0a2c12c fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c3be8e platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xc0e35bc1 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc154f8f2 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xc15999df key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1904808 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc1936337 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xc1aa1931 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc1d0d9b3 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xc1d80aab ref_module +EXPORT_SYMBOL_GPL vmlinux 0xc1ec8964 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xc2090e98 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xc20a6868 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc2397dd5 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xc2690397 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xc2937959 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xc2a5c1ba ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc2e24223 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xc2e75823 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xc334bb7a unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc340a98e usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3a623c3 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xc3d03698 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xc4118152 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xc412345a platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc4307b64 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xc43c1e7e debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc46d877e schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc47933f9 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4b0fd7d __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0xc4e93497 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xc534b3cb kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xc589bc88 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xc59dd627 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xc5a79fab unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0xc5f5b875 wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6360813 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc6ac6351 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xc6c2be95 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xc6cc137b con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xc6d1df5a device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xc6d87716 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xc6df09a4 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xc71564dd proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc737ef8c device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc73faac3 put_device +EXPORT_SYMBOL_GPL vmlinux 0xc74a0c83 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc77fd685 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7aba888 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xc7fb96c2 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xc80f6b69 __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc831749d platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xc8701c22 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xc89e91fb irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8bea232 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xc8ddc823 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xc8f266bc cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xc9179a3a tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xc941b63b platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc947ac5b unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc95d353f ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xc962f8f0 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xc9a39034 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xc9c2b143 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0xc9d5cd44 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fa7e01 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xca1006d5 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xca10b849 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xca35a062 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xca38afd4 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xca40d14e crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xca50c40c platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xca7f70bd seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcad8ec59 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xcadf1168 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xcb7025b1 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xcb993189 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xcbc2c8dd atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcbce45fc ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc02d31f xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xcc0e4d18 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xcc0fac60 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc28d8f4 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcc2cd8de blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccda562f tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0xccec7821 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xcd0aa850 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xcd6203ac perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xcd824bee skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde320df get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xcdfd7cad ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xce14e22a pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xce553d5f ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce899a4a regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xce969b35 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xceecbed0 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0xcf18107c spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xcf2384ad pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xcf3e21d9 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xcfa3a316 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xcfb5871c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd00004b9 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xd00652f3 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd05dc2a3 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xd07e3b5d rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd103bfca transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd127aa46 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xd14c9d8b fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd18a847c of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xd1a4d476 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1fb9e6e single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xd1fbbdb4 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd2218ba6 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xd2574d3a ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd29888c3 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0xd29f8560 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xd2a4f52c usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c64fa3 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xd2cf1274 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xd32b8051 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3556888 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd3e3399c pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xd3ec7596 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4663493 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xd4685132 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xd4b90134 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4c3188f led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xd4cdde38 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0xd4df321c pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0xd5727118 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xd582227a leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5ca583e pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0xd5d0f56e spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xd5e672b7 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd61e347c rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xd63a3df2 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd673f4ee class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd6cb33c5 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xd6f2ec17 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd8142d63 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd855bf35 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd86a87a3 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd89426e9 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xd89e7190 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xd8a5de86 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xd8ee6658 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xd91cf8b9 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xd9270fa3 irqd_to_hwirq +EXPORT_SYMBOL_GPL vmlinux 0xd931668c map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xd931a295 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xd93d09c2 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xd93e76a6 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0xd944d8f9 ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0xd9495141 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xd95cf485 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xd972895a pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xd9796dd3 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xd97f2739 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xd9af207a devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xd9d925e4 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xd9e7a9db net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xda4f1c31 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0xda646ee3 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xda7ff2e7 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xda9e45eb tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xdaca00bf __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xdace0c37 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb0c5c72 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb32dcd3 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xdb45b7be inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xdb7cbcf1 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdbbe6cde inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xdbd14b8d dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xdc461430 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xdc541b90 flush_altivec_to_thread +EXPORT_SYMBOL_GPL vmlinux 0xdc6df2c0 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc6ead5f tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdcb5508e ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xdcd6d5a3 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xdd0fb553 pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd6fe210 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xdda7e2df ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xddda7978 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0xddf7e3e2 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde4db428 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xde514d15 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xdef02a6f rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xdf276b64 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xdf27877b register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdf96d121 blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xdf99f877 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xdfa2d383 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xdfa34106 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0xdfe44a20 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xe00385d0 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02d14cb sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe06b7eb2 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xe0758b6e sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xe07ca631 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0b632dd free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xe0bf8a5a invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xe0db0f70 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xe0eb336f usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xe0f82e3d pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0xe11a3f4c register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xe1507bd7 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xe15bbb40 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xe16591ab stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xe1ee91f5 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xe212eda6 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xe21376c0 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xe22b62fa task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xe2457ef0 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xe24b2ed3 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe2934ae0 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xe2b6eeb2 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xe2bfa523 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe2ec60c0 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe36be658 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe37ab4df ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xe380c5f3 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xe3844fba transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3a73fdb sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe44d9f78 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xe45f6157 mddev_check_plugged +EXPORT_SYMBOL_GPL vmlinux 0xe49e4bab pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xe4e315be blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xe52b341d tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xe5353c7d mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xe5361923 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xe56e0ad5 pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0xe58251ba synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe64c66fb get_device +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe671f33c pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6fe60f9 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xe704ea46 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe7342a40 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xe7422046 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0xe751692a spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xe75f1c55 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xe7803a93 md_stop +EXPORT_SYMBOL_GPL vmlinux 0xe7b3865a crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xe7cd039f usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xe7d9d5fd replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe811db78 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe824d954 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xe828acaf __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xe84c6218 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8c8a054 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0xe8d6d5d3 bsg_goose_queue +EXPORT_SYMBOL_GPL vmlinux 0xe8ef2a05 pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe93e5da9 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe98acccd ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xe9a7b39f usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xe9ad60c5 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe9c339ef spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xea04ea3e pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea2a6a36 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xea695972 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0xea6f53c5 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xeabe58f8 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xeae39d65 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb0ef576 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xeb190342 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xeb4ddb17 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xec0577ef rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec300f64 blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xec38d5b9 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xec64b944 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xec88cae8 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xecea75d0 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xecfa995f cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xed01b2da sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xed2d164c blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0xed2d7958 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xed65ea72 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xed8b5f95 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xed9569fb crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xeda87f1b blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xede82975 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xedeea818 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xee515352 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xee6a799f sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xeea3bfb3 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xeee8a5a3 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xef268e83 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0xef280d88 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xef402c5d skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xef4e6daa pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xef597741 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef7a2141 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xef7d31cb wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xef89e6c2 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xef8d5820 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xefa9d69c led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xefa9d99c blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xefb72398 pstore_write +EXPORT_SYMBOL_GPL vmlinux 0xefba4427 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xefd99277 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf00784ad raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xf021c66f usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xf026af19 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xf03fc2b9 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xf0894ae2 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf090b058 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xf0ddaa29 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xf0dfa14f tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xf0fb2dc4 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf1700f64 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xf17bdde4 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1bf537b i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf21e1849 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xf23ccef3 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xf2579f7f of_property_count_strings +EXPORT_SYMBOL_GPL vmlinux 0xf28eb296 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xf2a11308 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xf2f01aae usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf303ab5a driver_find +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf317624b pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf35193ed ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xf35cbdcc da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xf35f33d2 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xf392fb54 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3db6364 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf3e1c902 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xf3f5fc7f sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf4635905 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0xf4833315 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4ae88b8 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xf4eb3fc0 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5119738 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xf542d16b wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf55511fe pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xf57ac159 pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5a866e0 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xf5c350c2 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xf5fd4324 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xf68f1e4c usb_enable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e2283b anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf722eb8f crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xf7420acb adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xf749b857 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf846506f irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8957b55 user_match +EXPORT_SYMBOL_GPL vmlinux 0xf8bcc15b ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf9091ce7 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0xf936a729 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xf9479f9c bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xf99be4d2 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9ddac38 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa36e1f5 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xfa784ffa ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa78952e blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xfa831595 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xfa87f69e spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xfa9dd504 timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xfaaff671 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfabcec17 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xfad2ba60 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfb06a640 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xfb2b8ecd scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb349a6a ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xfb392901 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xfb525dfc pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0xfb5530fe tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0xfb6a1937 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb795a81 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xfb8f6fa7 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc41059c ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xfc43efc7 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xfc4d68ca evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xfccd1ac2 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfce4abcd watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xfcff058c ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xfcffb4e1 pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xfd255686 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xfd65f028 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xfd773007 driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0xfd7d05d0 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xfd864e55 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xfd90fb81 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdf27567 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xfe5d928f regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfe8b8d62 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeab53b3 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xfec4cefa cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff062d5c blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xff36976a pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xff4e3aee wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff6019ea ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xff6689fe rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xff739e8c xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xff8ef643 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffad857a shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xffb3e34c fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xffc6f487 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xffcbb71b module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xffccfea3 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xffefb4a3 platform_driver_unregister --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/powerpc/powerpc-smp.modules +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/powerpc/powerpc-smp.modules @@ -0,0 +1,3048 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250 +8250_dw +8250_pci +8390 +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +abyss +ac97_bus +acard-ahci +acecad +acenic +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5398 +ad5446 +ad5504 +ad5624r_spi +ad5686 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7280a +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adummy +adutux +adv7170 +adv7175 +adv7180 +adv7343 +advansys +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +ak881x +ak8975 +alauda +algif_hash +algif_skcipher +ali-ircc +alim7101_wdt +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +ambassador +amc6821 +amd5536udc +amd8111e +ams +ams369fg06 +analog +ansi_cprng +ans-lcd +anubis +aoe +apds9802als +apds990x +apm_emu +apm-emulation +apm_power +apm-power +appledisplay +appletalk +appletouch +applicom +ar7part +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +asc7621 +asix +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +ata_generic +ata_piix +atbm8830 +aten +ath +ath3k +ath5k +ath6kl +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmtcp +atp870u +atxp1 +atyfb +au0828 +au8522 +aufs +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bmac +bmp085 +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +briq_panel +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +c_can +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +ci13xxx_pci +cifs +cirrusfb +clearpad_tm1217 +clip +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +configfs +cordic +core +cp210x +cpia2 +cpqarray +cpufreq_stats +cpu-notifier-error-inject +c-qcam +cramfs +crc7 +crc8 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +DAC960 +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +ddbridge +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +denali +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bufio +dm-crypt +dmfe +dm-log +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-thin-pool +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docg3 +docprobe +donauboe +dpt_i2o +drbd +drm +drm_kms_helper +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3155v4l +dtl1_cs +dummy +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-anysee +dvb-usb-au6610 +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-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-omap +dwc3-pci +dynapro +e100 +e1000 +e1000e +earth-pt1 +easycap +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +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_ulog +ebt_vlan +ec100 +echo +econet +edac_core +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +ehv_bytechan +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +emc6w201 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +eni +enic +epat +epia +epic100 +eql +esd_usb2 +esi-sir +esp4 +esp6 +et131x +et61x251 +ethoc +evbug +exofs +ext2 +f75375s +fakephp +farsync +fat +faulty +fb_sys_fops +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +fixed +floppy +fm801-gp +fm_drv +fmvj18x_cs +forcedeth +fore_200e +freevxfs +friq +frpw +fsa9480 +fscache +fsl_elbc_nand +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +fusb300_udc +g450_pll +g760a +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdth +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-usb +goku_udc +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-charger +gpio-fan +gpio-generic +gpio-i2cmux +gpio-it8761e +gpio-janz-ttl +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rdc321x +gpio-regulator +gpio-tps65912 +gpio-twl4030 +gpio_vbus +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +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_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hanwang +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-holtekff +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-kovaplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-speedlink +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hifn_795x +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpilo +hpsa +hptiop +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-designware-core +i2c-designware-pci +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hydra +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mpc +i2c-mux +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i5k_amb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmpex +ib_mthca +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio_dummy +iio-trig-gpio +iio-trig-periodic-rtc +iio-trig-sysfs +ili9320 +imm +imon +imx074 +industrialio +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +ioc4 +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it913x-fe +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwl-legacy +iwlwifi +iwmc3200top +iwmc3200wifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jsm +kafs +kalmia +kaweth +kbic +kbtab +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_ppp +l4f00242t03 +l64781 +lanai +langwell_udc +lanstreamer +lapb +lapbether +latch-addr-flash +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lt3593 +leds-mc13783 +leds-pca9532 +leds-pca955x +leds-regulator +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc2 +ll_temac +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lm95245 +lmc +lms283gf05 +lnbp21 +lnbp22 +lockd +lp +lp3971 +lp3972 +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lzo +m25p80 +m52790 +m66592-udc +ma600-sir +mac53c94 +mac80211 +mac80211_hwsim +mace +mac_hid +macvlan +macvtap +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max6639 +max6642 +max6650 +max6875 +max7359_keypad +max8649 +max8660 +max8903_charger +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +mdio-bitbang +mdio-gpio +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +mesh +metronomefb +mfd +mga +michael_mic +micrel +microtek +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mma8450 +mmc_block +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpr121_touchkey +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrst_max3110 +msdos +msp3400 +mspro_block +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +mv643xx_eth +mv88e6060 +mv88e6xxx_drv +mvsas +mvumi +mwifiex +mwifiex_pcie +mwifiex_sdio +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxser +myri10ge +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +nci +ncpfs +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netrom +netxen_nic +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nftl +nf_tproxy_core +ngene +n_hdlc +nicstar +nilfs2 +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +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 +nop-usb-xceiv +nosy +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +nsp32 +nsp_cs +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nvidiafb +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ofpart +of_serial +old_belkin-sir +olympic +omfs +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8023 +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +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_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300too +pca9541 +pca954x +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +pegasus +penmount +pf +pg +phantom +phison +phonedev +phonet +phram +physmap +physmap_of +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pmu_battery +pn533 +pn544 +pn_pep +pohmelfs +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +ps2mult +psmouse +pt +pti +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qt1010 +qt1070 +quatech_usb2 +quota_tree +quota_v1 +quota_v2 +r128 +r592 +r6040 +r8169 +r8187se +r8192e_pci +r8192u_usb +r852 +r8712u +r8a66597-hcd +r8a66597-udc +rack-meter +radeon +radio-i2c-si470x +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +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-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +renesas_usbhs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-regulator +ring_sw +rio500 +rionet +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm860x +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc_cmos_setup +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-generic +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl8150 +rtl8180 +rtl8187 +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtlwifi +rts5139 +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s5h1409 +s5h1411 +s5h1420 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7191 +saa7706h +safe_serial +salsa20_generic +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbe-2t3e3 +sc92031 +sca3000 +sch_atm +sch_cbq +sch_choke +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci +sdhci-of-esdhc +sdhci-of-hlwd +sdhci-pci +sdhci-pltfm +sdio_uart +sdricoh_cs +sedlbauer_cs +seed +seeq8005 +sep_driver +seqiv +ser_gigaset +serial_cs +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha512_generic +shpchp +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_of_platform +sja1000_platform +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xx +smc91c92_cs +sm_common +smm665 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-als4000 +snd-aoa +snd-aoa-codec-onyx +snd-aoa-codec-tas +snd-aoa-codec-toonie +snd-aoa-fabric-layout +snd-aoa-i2sbus +snd-aoa-soundbus +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +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-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-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-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-powermac +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-88pm860x +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-dfbmcs320 +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-max98088 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-sgtl5000 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm5100 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8782 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +softing_cs +solos-pci +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw-midpci +spi-gpio +spi-lm70llp +spi-oc-tiny +spi-tle62x0 +spi-topcliff-pch +squashfs +sr030pc30 +ssb +ssfdc +sst25l +ssu100 +st +st1232 +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste10Xp +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +swim3 +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tcm825x +tcm_fc +tcm_loop +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +tg3 +tgr192 +therm_windtunnel +thmc50 +ths7303 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlv320aic23b +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +touchit213 +touchright +touchwin +tpm_atmel +tpm_nsc +tps6105x +tps6105x-regulator +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +trancevibrator +tridentfb +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twl6030-pwm +twl6030-usb +twl6040-vibra +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +ub +ubi +ubifs +ucb1400_core +ucb1400_ts +udc-core +udf +udlfb +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +uninorth-agp +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usb_debug +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-ircc +via-rhine +via-sdmmc +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_mmio +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vmwgfx +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt8231 +vt8623fb +vub300 +vx855 +vxge +w1_bq27000 +w1_ds2408 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1-gpio +w1_smem +w1_therm +w6692 +w83781d +w83791d +w83792d +w83793 +w83795 +w83977af_ir +w83l785ts +w83l786ng +w9966 +wacom_w8001 +walkera0701 +wanrouter +wanxl +warrior +wbsd +wdrtas +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +windfarm_core +wire +wis-ov7640 +wis-saa7113 +wis-saa7115 +wis-sony-tuner +wis-tw2804 +wis-tw9903 +wis-uda1342 +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xilinx_emaclite +xilinx_ps2 +xilinx_uartps +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_addrtype +xt_AUDIT +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zcache +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/powerpc/powerpc64-smp.modules +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/powerpc/powerpc64-smp.modules @@ -0,0 +1,3046 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250 +8250_dw +8250_pci +8390 +88pm860x_bl +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ab8500-ponkey +ab8500-usb +abyss +ac97_bus +acard-ahci +acecad +acenic +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5398 +ad5446 +ad5504 +ad5624r_spi +ad5686 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7280a +ad7291 +ad7298 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad799x +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adfs +adi +adis16060 +adis16080 +adis16130 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adummy +adutux +adv7170 +adv7175 +adv7180 +adv7343 +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af9013 +af_alg +affs +af_key +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +ak881x +ak8975 +alauda +algif_hash +algif_skcipher +ali-ircc +alim7101_wdt +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +amc6821 +amd5536udc +amd8111e +amd8111_edac +amd8131_edac +amd-rng +ams369fg06 +analog +ansi_cprng +anubis +aoe +apds9802als +apds990x +appledisplay +appletalk +appletouch +applicom +ar7part +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as5011 +asc7621 +asix +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +ata_generic +ata_piix +atbm8830 +aten +ath +ath3k +ath5k +ath6kl +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmtcp +atp870u +atxp1 +atyfb +au0828 +au8522 +aufs +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bmp085 +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpqether +bq20z75 +bq24022 +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bsr +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +bw-qcam +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +camellia +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5 +cast6 +catc +cb710 +cb710-mmc +c_can +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +ci13xxx_pci +cifs +cirrusfb +clearpad_tm1217 +clip +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +configfs +cordic +core +cp210x +cpc925_edac +cpia2 +cpufreq_spudemand +cpufreq_stats +cpu-notifier-error-inject +c-qcam +cramfs +crc7 +crc8 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +ctr +cts +cuse +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +da9030_battery +da9034-ts +da903x +da903x_bl +DAC960 +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +ddbridge +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +denali +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bufio +dm-crypt +dmfe +dm-log +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-thin-pool +dmx3191d +dm-zero +dnet +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docg3 +docprobe +drbd +drm +drm_kms_helper +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3155v4l +dtl1_cs +dummy +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-anysee +dvb-usb-au6610 +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-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-omap +dwc3-pci +dynapro +e100 +e1000 +e1000e +earth-pt1 +easycap +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +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_ulog +ebt_vlan +ec100 +echo +econet +edac_core +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +ehv_bytechan +electra_cf +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +emc1403 +emc2103 +emc6w201 +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +eni +enic +epat +epia +epic100 +eql +esd_usb2 +esi-sir +esp4 +esp6 +et131x +et61x251 +ethoc +evbug +exofs +ext2 +f75375s +fakephp +farsync +fat +faulty +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +fixed +floppy +fm801-gp +fm_drv +fmvj18x_cs +forcedeth +fore_200e +freevxfs +friq +frpw +fsa9480 +fscache +fsl_elbc_nand +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +g450_pll +g760a +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdth +generic +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-usb +goku_udc +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-charger +gpio-fan +gpio-generic +gpio-i2cmux +gpio-it8761e +gpio-janz-ttl +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rdc321x +gpio-regulator +gpio-tps65912 +gpio-twl4030 +gpio_vbus +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +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_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-gyration +hid-holtekff +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-kovaplus +hid-roccat-pyra +hid-samsung +hid-sjoy +hid-sony +hid-speedlink +hid-sunplus +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpilo +hpsa +hptiop +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-sdio +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-designware-core +i2c-designware-pci +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-i801 +i2c-intel-mid +i2c-isch +i2c-matroxfb +i2c-mpc +i2c-mux +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pasemi +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-xiic +i2o_block +i2o_bus +i2o_core +i2o_proc +i2o_scsi +i5k_amb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmaem +ibmpex +ib_mthca +ibmtr_cs +ibmveth +ibmvfc +ibmvscsic +ib_qib +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio_dummy +iio-trig-gpio +iio-trig-periodic-rtc +iio-trig-sysfs +ili9320 +imm +imon +imx074 +industrialio +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +ioc4 +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ecn +ipt_ECN +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_REDIRECT +ipt_REJECT +ipt_ULOG +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it913x-fe +itd1000 +iuu_phoenix +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwl-legacy +iwlwifi +iwmc3200top +iwmc3200wifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +ixj +ixj_pcmcia +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jsm +kafs +kalmia +kaweth +kbic +kbtab +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_ppp +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-da903x +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lt3593 +leds-mc13783 +leds-pca9532 +leds-pca955x +leds-regulator +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_ttusbir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc2 +ll_temac +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95241 +lm95245 +lms283gf05 +lnbp21 +lnbp22 +lockd +lp +lp3971 +lp3972 +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lzo +m25p80 +m52790 +m66592-udc +ma600-sir +mac80211 +mac80211_hwsim +mac_hid +macvlan +macvtap +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max2165 +max3100 +max3107 +max6639 +max6642 +max6650 +max6875 +max7359_keypad +max8649 +max8660 +max8903_charger +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-regulator-core +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +mdio-bitbang +mdio-gpio +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +metronomefb +mfd +mga +michael_mic +micrel +microtek +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mma8450 +mmc_block +mmc_spi +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpr121_touchkey +mpt2sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrst_max3110 +msdos +msp3400 +mspro_block +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +mv88e6060 +mv88e6xxx_drv +mvsas +mvumi +mwifiex +mwifiex_pcie +mwifiex_sdio +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxser +myri10ge +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +nci +ncpfs +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netrom +netxen_nic +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nftl +nf_tproxy_core +ngene +n_hdlc +nicstar +nilfs2 +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +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 +nop-usb-xceiv +nosy +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nvidiafb +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +of_mmc_spi +ofpart +of_serial +old_belkin-sir +olympic +omfs +omninet +on20 +on26 +onenand +onenand_sim +opencores-kbd +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8023 +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pasemi_edac +pasemi_nand +pasemi-rng +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +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_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300too +pca9541 +pca954x +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +pegasus +penmount +pf +pg +phantom +phison +phonedev +phonet +phram +physmap +physmap_of +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm8001 +pmc551 +pmcraid +pn533 +pn544 +pn_pep +pohmelfs +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +prism54 +ps2mult +ps3disk +ps3flash +ps3_gelic +ps3-lpm +ps3rom +ps3stor_lib +ps3vram +pseries_energy +psmouse +pt +pti +pvrusb2 +pwc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qnx4 +qt1010 +qt1070 +quatech_usb2 +quota_tree +quota_v1 +quota_v2 +r128 +r592 +r6040 +r8169 +r8187se +r8192e_pci +r8192u_usb +r852 +r8712u +r8a66597-hcd +r8a66597-udc +rack-meter +radeon +radio-i2c-si470x +radio-maxiradio +radio-mr800 +radio-si4713 +radio-tea5764 +radio-timb +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-kaiomy +rc-kworld-315u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +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-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +renesas_usbhs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-regulator +ring_sw +rio500 +rionet +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rpadlpar_io +rpaphp +rpcsec_gss_krb5 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm860x +rtc-ab3100 +rtc-ab8500 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc_cmos_setup +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-generic +rtc-isl12022 +rtc-isl1208 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max8925 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-pcf2123 +rtc-pcf50633 +rtc-pcf8563 +rtc-pcf8583 +rtc-ps3 +rtc-r9701 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl8150 +rtl8180 +rtl8187 +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtlwifi +rts5139 +rxkad +s1d13xxxfb +s2250 +s2250-loader +s2255drv +s2io +s3fb +s5h1409 +s5h1411 +s5h1420 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7191 +saa7706h +safe_serial +salsa20_generic +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbe-2t3e3 +sc92031 +sca3000 +sch_atm +sch_cbq +sch_choke +sch_drr +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sctp_probe +sdhci +sdhci-of-esdhc +sdhci-of-hlwd +sdhci-pci +sdhci-pltfm +sdio_uart +sdricoh_cs +sedlbauer_cs +seed +seeq8005 +sep_driver +seqiv +ser_gigaset +serial_cs +serio_raw +sermouse +serpent +serport +serqt_usb2 +ses +sfc +sha512_generic +shpchp +sht15 +sht21 +si21xx +si4713-i2c +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_of_platform +sja1000_platform +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xx +smc91c92_cs +sm_common +smm665 +smsc47m192 +smsc75xx +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-als4000 +snd-aoa +snd-aoa-codec-onyx +snd-aoa-codec-tas +snd-aoa-codec-toonie +snd-aoa-fabric-layout +snd-aoa-i2sbus +snd-aoa-soundbus +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +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-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-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-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-powermac +snd_ps3 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-88pm860x +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-alc5623 +snd-soc-core +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-dfbmcs320 +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-max98088 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-sgtl5000 +snd-soc-spdif +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm5100 +snd-soc-wm8350 +snd-soc-wm8400 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8727 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8782 +snd-soc-wm8804 +snd-soc-wm8900 +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8940 +snd-soc-wm8955 +snd-soc-wm8960 +snd-soc-wm8961 +snd-soc-wm8962 +snd-soc-wm8971 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-hubs +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usbmidi-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +softdog +softing +softing_cs +solos-pci +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw-midpci +spi-gpio +spi-lm70llp +spi-oc-tiny +spi-tle62x0 +spi-topcliff-pch +spufs +squashfs +sr030pc30 +ssb +ssfdc +sst25l +ssu100 +st +st1232 +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste10Xp +stex +stinger +stir4200 +stkwebcam +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +streamzap +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synclink +synclink_cs +synclink_gt +synclinkmp +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tcm825x +tcm_fc +tcm_loop +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tdfx +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +tg3 +tgr192 +therm_pm72 +thmc50 +ths7303 +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlv320aic23b +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp102 +tmp401 +tmp421 +tms380tr +tmscsim +tmspci +toim3232-sir +touchit213 +touchright +touchwin +tpm_atmel +tpm_nsc +tps6105x +tps6105x-regulator +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +trancevibrator +tridentfb +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-usb +twl4030-vibra +twl4030_wdt +twl6030-pwm +twl6030-usb +twl6040-vibra +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +ub +ubi +ubifs +ucb1400_core +ucb1400_ts +udc-core +udf +udlfb +ueagle-atm +ufs +uio +uio_aec +uio_cif +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +uninorth-agp +upd64031a +upd64083 +usb8xxx +usbatm +usb_debug +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbvision +usb_wwan +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-compat-ioctl32 +v4l2-int-device +v4l2-mem2mem +vcan +ves1820 +ves1x93 +veth +vfat +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost_net +via +via686a +via-ircc +via-rhine +via-sdmmc +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videodev +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_mmio +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vmwgfx +vmxnet3 +vp27smpx +vpx3220 +vsxxxaa +vt8231 +vt8623fb +vub300 +vx855 +vxge +w1_bq27000 +w1_ds2408 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1-gpio +w1_smem +w1_therm +w6692 +w83781d +w83791d +w83792d +w83793 +w83795 +w83977af_ir +w83l785ts +w83l786ng +w9966 +wacom_w8001 +walkera0701 +wanrouter +wanxl +warrior +wbsd +wdrtas +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +windfarm_core +windfarm_cpufreq_clamp +windfarm_lm75_sensor +windfarm_max6690_sensor +windfarm_pid +windfarm_pm112 +windfarm_pm121 +windfarm_pm81 +windfarm_pm91 +windfarm_smu_controls +windfarm_smu_sat +windfarm_smu_sensors +wire +wis-ov7640 +wis-saa7113 +wis-saa7115 +wis-sony-tuner +wis-tw2804 +wis-tw9903 +wis-uda1342 +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl12xx_sdio +wl12xx_spi +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-core +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_ipcomp +xfrm_user +xfs +xgifb +xilinx_ps2 +xilinx_uartps +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_addrtype +xt_AUDIT +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zaurus +zcache +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zlib +znet +zr364xx +zram --- linux-3.2.0.orig/debian.master/abi/3.2.0-53.81/powerpc/powerpc64-smp +++ linux-3.2.0/debian.master/abi/3.2.0-53.81/powerpc/powerpc64-smp @@ -0,0 +1,12142 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x89236899 suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x644aaba2 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x5c165453 drbd_set_st_err_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 0x051e0999 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x076c1600 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x32a92f70 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x355cd1db pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x35b7a5b4 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x4d7b2014 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x5e3c1375 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x6930584e pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x7afd2da1 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xa519bbe2 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xb8721f3b pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xc1205c84 pi_disconnect +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4ee454dd ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7608a24b ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa9ae84f0 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbe22c2c6 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcee13ce2 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL drivers/edac/edac_core 0x060bc5e3 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0x892a0566 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xd7f00995 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0b762050 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x115f7c22 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x17c32140 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1d40604c fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x21f75bf0 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3103819b fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x33c35fc5 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x36fad284 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x47ce8a32 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x49a29946 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4c09b631 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e86dd83 fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4edf7a02 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x52d62c6a fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5e8b6368 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7321b588 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x748bc3dd fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7c3dc5fb fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8f4a2f47 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa0c48f61 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa5da5c61 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xafa36987 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xafa8d839 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb5801684 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcb8087ad fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xceec0b5e fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfd643072 fw_cancel_transaction +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00a95e1b drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00ee2340 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0493c816 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04af1a05 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0871bd38 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0964f527 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0991f3d7 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09f19b8d drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a7c0f64 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cd69bf5 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f236065 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f593235 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x102c44f4 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10c76da2 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12851109 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x148bb5d4 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17d7082d drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18c2ee6d drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18c75fb3 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1942b9e7 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1bccdf4c drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cbfa241 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21cf1f4e drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2204f7b6 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x222e0991 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22b0b38f drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2311298c drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28ea2fa4 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a8d844f drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2aafe60e drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2bb965db drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d8c5ee1 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f2ab1ac drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31816aa9 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x318ac49c drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32bafcd2 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33ccd2e8 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33e154ba drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x379c6f09 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38bca7df drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ce2d57e drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d60a818 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ed25374 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f3c1f52 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4078d1eb drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4197e469 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c9a91c drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45c81641 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46414f9b drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46e1e352 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47b663ad drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47d88dcc drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49831513 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b21e5e4 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b4362b6 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b65545b drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bc09a98 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c56ca31 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4eeec887 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5245ff7e drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x524889a9 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x555ac2dd drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x572faf4a drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b788f2 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x596e7898 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a096dc8 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b736489 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f210b09 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f6cbc33 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6044956f drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x623962ae drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67ab3131 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ea4e5a3 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ea84910 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f2fb09c drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7020a490 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72a8db57 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74e00de3 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x751b7aa0 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x758668bf drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7591ede7 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x759a9b07 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77916209 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7976132a drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c89fc37 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7cb26d39 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d8fe09a drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f2e1f0d drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f2f3ab2 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f4cfa5d drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fbad684 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fc36516 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80dbdab6 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x847eb3ac drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86aa5106 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a13cb9d drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a47b0b0 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c4f1729 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7e54cc drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9085acc6 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x915dda46 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x920abf8c drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92f2d102 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x932df43d drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9435a8ec drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95ad773c drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9612ac72 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99f91de4 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9abe1cb4 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b402ae6 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c5f627a drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dc25a34 drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0138a8c drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa174b7bd drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1d223a3 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa237e931 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3d960fb drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6cf093e drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7984573 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa52432f drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadbdb526 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb192788d drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2602212 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7e4605c drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba2af2f7 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd15bd34 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf2f8241 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0845819 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc311e4a6 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc67bcda4 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9095b14 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf65198 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0fe008a drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3d81761 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ee5dd1 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd431287e drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd536007d drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6c17989 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd727ce34 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7f1ab84 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd81709fb drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdac09c37 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb284f80 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb7b4370 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb7ff09c drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0abdbd6 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1a31b2f drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe255e7a0 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe256edfd drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ab5095 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3553657 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe36ce24c drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6403777 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe945db14 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecf7bf20 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed256cae drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee2c6eaf drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee648134 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0a0bf79 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0f03b9a drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2cdbe08 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3011d65 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3da5a99 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf44b12f3 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa1a2b7e drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfbd9a843 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc4f8599 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff5de5bd drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0230c548 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x121e4c03 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x16ac0f75 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x192984ac drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1a77d479 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x23d366c4 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2709515e drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x39605f66 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3c0c54cc drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x442ccb55 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x464fd1c4 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4982a3e5 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4a5b6e56 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4dbe13d4 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5adb1959 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6302ec69 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x792ed3c5 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7d0ef4cf drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8f70da48 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa4fbeb5a drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa898dac5 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa9eed1c1 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xab8513c2 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xafdff89b drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb2a17976 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb2b5448d drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc3a89a01 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcdcca06b drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdc68138e drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe3e6587a drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeee1929e drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0383c730 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x08943676 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0e31ceb5 ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x143f2d75 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x145e6a73 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x18a62c94 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d89df73 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25392771 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2c84c7dc ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36200d6e ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3b064c66 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3b0fd4d5 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fd155ed ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4fe2b386 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5966fd87 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x59db42c9 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x604aa57a ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6acc395c ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7125f5a0 ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7586fb3a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x77319aaa ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7bdbe93b ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7c6ce6ff ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d880504 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7dcb1e64 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7f28be65 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85477881 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8832162b ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e29981f ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x912f5dfd ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x940438e7 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998f3d77 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b2be07d ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b6b1786 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d06ced6 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa068577d ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa4a3fa18 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac843717 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb07a0805 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb13692d1 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4a78d92 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb70484eb ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb8b30fea ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbda0177c ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4c8405d ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcb9585c5 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc831306 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xccbb8af7 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd47dc0db ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd4f4ee1c ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde587405 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe2f0c6cd ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeef9798d ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf0166f86 ttm_bo_wait_unreserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa3d8494 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfb826577 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x7beae308 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xb80e4b06 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x16373d7a amd756_smbus +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x33f6700f rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x37838b44 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xa8f6808f rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x16d4f241 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x331b05f6 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3adf4fc5 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x57e2b109 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6bc1f45b ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8890ccfc ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8e7309e3 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa27c992d cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa41f6608 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb275c033 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbcf8fed0 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xde74f022 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe0efee1a ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe33157f2 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe9019d8d ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xeb797777 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf6ca6546 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x092151cc ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c95564f ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1180fb86 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1295d26b ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14e0ae3a ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c2a6244 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1caec222 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d6a0e6f ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d6bd046 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1fa563d8 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25780b16 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x264100c5 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28850504 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2cb43925 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d5bf31d ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x322deddd ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x374138fb ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x41439d94 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4768d762 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48fa8581 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x502b557b ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5748a882 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58f88785 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x59ed81f0 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a029997 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d995459 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5f34b255 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x610f969e ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x626ffd1f ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62b2f50c ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x66786c0b ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b606323 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6c2704b3 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x727d0804 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x727e8468 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7613c635 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77bd7b0c ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84512540 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8862021a ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92a5abbd ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x941c9752 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x95401121 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96562eb9 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9dc0a9f3 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa0d2a88b rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa63a4965 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa75c592c ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xade2816c ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf9af082 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb08a5a88 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb09d99d7 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5e11a64 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbfa3eea8 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc01e627d ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4835e24 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8ddf84e ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcf8e8c8e ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd46fd7d4 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd84e1384 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd89f445b ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1235cba ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe17bd33f ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4c53676 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe92b58ec ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xed5b4692 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeff77a54 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf236d1fa ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4982fdb ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7247d33 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa1ab6c1 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa1fe29b ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb5acf28 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdda66b4 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x052d77f7 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1ce3d61e ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x23e0245d ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x253888e8 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x570ff67e ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x93617f4b ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x999ae4dd ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa1a63636 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb908e462 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd09b5560 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xecab17b4 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xedda6120 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x21a670c0 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x4950ce54 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x53142217 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5b8b1caf ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe6d08804 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf8d9ff6b ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x19a7256f iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3fc22594 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3fe6dcdf iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x536a748c iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8858ca67 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa551ef4c iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc38d7182 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc50f357d iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0a469c79 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0af2cc00 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2628a084 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2d741343 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3a6f83d3 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4071769a rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x43ee111c rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x72df6cb3 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x81dba292 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa34024c0 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xabe8f8a3 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbbde8a7f rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbd475fbb rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc77128fc rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcb09338c rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd75e53f4 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd9c877f6 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe7f0f0e6 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf65011be rdma_reject +EXPORT_SYMBOL drivers/input/gameport/gameport 0x59cb9e0b gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x60106314 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x6721aeb6 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x714d1472 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x93a0aa43 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbb9920c8 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbd31ec6a __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd8efdb9e gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf34aa206 gameport_open +EXPORT_SYMBOL drivers/input/input-polldev 0x17566594 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x2ce0e8cb input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x308acb2e input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x7542a42d input_unregister_polled_device +EXPORT_SYMBOL drivers/input/misc/ad714x 0x1af3b2eb ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x905b2eae ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb9087e1e ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xfb29acdb ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xaea2dca8 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x5f382d3a sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb2c10e0f sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb6bed6dc sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xcbba341b sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe20bd70a sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe53b11f4 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xafa1c8aa ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbc9dc160 ad7879_suspend +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf3bd1692 ad7879_resume +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0064d60a capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0f6eb30a capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2692f1d2 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x35847738 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x66e6f08c capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x697ee7fa capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9a172910 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xdf13436b capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8c98036 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf6da555e detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0548cbfb b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x13f2d20b b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1dc00072 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x222bec57 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x26e1cc48 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2b8b1290 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36e949ae b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x54d496a0 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x57985f1a b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x602c459e b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x80f7fc71 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9b4718fb avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf53b6f2f b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf541030e b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfdd7c60e b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2532225e b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2e1b58bf b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2f9b25b3 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6cb3b5bc b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x789a6f66 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x93571196 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x9cfac2db b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb3c54ee6 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf14e002d b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x8a8088d2 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x2391e360 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x2c37debf mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x47c77b11 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x64e167b3 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x1dbede76 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x20c1d1c2 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb1eb7792 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4b0d83a2 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x67809df7 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa72fc46f isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xd74982e4 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xea8a3a1b isac_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x4b28ba5a isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x6bd52e94 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa1e7e16c register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x04db0bdd get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x157dabca confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2d3b143d dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x47bdad91 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x48ea59ba recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x51f011ab recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x53995d01 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x55a3b508 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x618974b6 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6aa5e3e3 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x75b6c6a9 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x88104d86 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8876a68a mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa8a7b167 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb2793a99 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xba1eab3f mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc19947cf mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcbae3e04 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd82588f5 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdff44aae bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xed92e46f create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x65c159b1 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xdd34bf84 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xef686d2e dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xf065e6f1 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x392ec51b dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x3ef148aa dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x9a135dfe dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x9b666efe dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xb37706f1 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xd862d7a5 dm_snap_cow +EXPORT_SYMBOL drivers/md/raid456 0xc6543d62 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xa825f9ca max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x308c5a82 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xcf8335e5 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xe9a70aa3 mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0xaf234578 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xf1b9cc75 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x538660f8 qt1010_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18212 0xa7dc3f7a tda18212_attach +EXPORT_SYMBOL drivers/media/common/tuners/tda18218 0xf5e3c1a0 tda18218_attach +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x4971da6d xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc4000 0x3867ae87 xc4000_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xd5d7b63f xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x13548602 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2132f536 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2c782fc0 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x403671db flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x42d495da flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4cdd6ee7 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4f974124 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x56593aeb flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x57c458c2 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x74257fa2 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x833e6e13 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8b515920 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x933553af flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa11a93a8 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb00da6eb flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbb669bf2 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc8db7e38 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe8257b1b flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xea44fe59 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfd0171ca flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x4d236380 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x4e0b9e52 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x8bc392e1 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd41b3d09 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0d06f752 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5ecbb228 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6f99c058 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x7981f606 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x7c82c061 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xbd1fdb3b dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd4c531db dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd7aa9e30 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe48dd814 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x7427ae86 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x04f36bc0 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x09868af3 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0b531d19 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1001f390 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x192c9982 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x263ea814 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2b889cf1 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2d6f3257 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31447adb dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x40662fc9 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x41d0dd60 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4741fb44 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x58641546 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6085f3da dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6e1626db dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7a447c64 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7d7028dc dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8128348c dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8ea0e2bf dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x95a0feba dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9f7e15a9 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xab2ab95a dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xabf53a50 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac872af5 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb8d622bc dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb95ee5b5 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbb763b18 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca0922e6 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd783a540 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe56f52e5 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfd9345df dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xff508106 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xff5671aa dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xff788ad4 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x21604974 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x809562d5 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8995157e dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe38cf974 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xed342a00 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xfd1e2175 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xfeca7372 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xb55d7703 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x060260de dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x17dedc1e dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x190828f1 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x1e326ac0 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x48a18e8e dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x490b6626 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6d97fca2 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x98d36dfc dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc510bac6 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe4a55042 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xea1dcccc dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/a8293 0xf5ab5f0d a8293_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x33952895 af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x94f29d15 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xcffee06a au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x5e7567a6 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x626e0b38 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x7b0d8161 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x2dc166a6 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x600a1817 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xbef20eac cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xa83fe73d cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x0ba715d7 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x0e3635c2 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/cxd2820r 0x62e3d16a cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x4da0042a dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xbbd2820d dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xd088f5df dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xdd26ee5b dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xdf5a6438 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3b039a4d dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x64ec56cb dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xa2f52d2c dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xaa7fc1fc dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc111bc4f dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe97f8a8f dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf2d79ac8 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xfc415400 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xfdadb5db dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x652f85bb dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x044103af dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x08671d49 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xb096cd85 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcf2e7ead dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xdd03c0e9 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xdd8af220 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x488992d0 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x6880627f dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x75dbf3b1 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x79772828 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0b6a1f22 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0fdae137 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x10fa8e46 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4e2ec794 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x519c8d28 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x54cab847 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5b8a85d7 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x61006b64 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6f33d9b7 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9d3f9b60 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc2e7f30d dib7090_agc_restart +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc84cb2fd dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcb9d10b3 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcfb197fa dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd5dc1b6d dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0734cb27 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x13587ee8 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x228369d1 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x40915948 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x413de0fc dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x47050df9 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8b8f2466 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xadc398b9 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc6926382 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc9137804 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcb5b9e96 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdb2b50c1 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe44f5a6d dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xedef5ad5 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x2a0ff7cc dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x9718ad88 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xac071d81 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xbcde8548 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xc05be729 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0x8ac582e9 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb/frontends/drxd 0xed3010be drxd_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/drxk 0x70e48765 drxk_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x4ed152d2 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xe5d2b27f dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0xd914469b ec100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xc8428dc4 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x3efff906 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xdacd4502 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/it913x-fe 0x83c5e299 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x925a2237 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ix2505v 0xe6874a49 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xfb81d4e7 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x925cc769 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xf1e38dfe lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xbfbc86d4 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x4ed4c43d lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xa9f9e0f5 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp22 0x82a93363 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x3f5f1cec mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a20s 0x3a69f741 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x6c727876 mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x247e969d mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x596a2122 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x37eda2d7 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xc52da4b7 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xfe47e340 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x2bba921e s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x3a85ad56 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x39623490 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xad2749db s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s921 0x4a8dc7c2 s921_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x59f880d9 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x303cd466 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x979c7dd3 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xd801703a stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x00b2d612 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xb006ceb1 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xab92576c stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x04757ac5 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x17e8b558 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0x7f2ac7f4 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0367 0xe5e05fdb stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x13d1c346 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x9398c953 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xe10b3909 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x744be640 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xd51c031d stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x6361ceb0 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x51a392d0 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x163c839c tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x128cf40d tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x72b5bd82 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10071 0x4d82828a tda10071_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x62ba87fc tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x37dda359 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xed96b67c tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x9b9f62c0 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x6d5254c7 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x487ec7d7 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xe0abb7a7 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xbe153b8d ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x20b391b4 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xc5af6d29 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x501b818c zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xb31c8fd7 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xcf2b0999 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xe4ec0853 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2870a307 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x530585ca lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5e7be485 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x7d1ab3c7 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x92ef35ec lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb082b9f4 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc5bb9408 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd8e0519a lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/rc-core 0x290cdfe1 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xf2f33f11 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x0eb16a73 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x5d6b54c2 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x94fa8549 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x1e6d0c39 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x761a246f btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x00ab2984 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x0301e598 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x5f799a55 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x68b39e7d cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xd67b1525 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x21583492 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x85c9f22a cx231xx_register_extension +EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x676ed443 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc38a1076 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/video/cx2341x 0xc6c44e22 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe3e2bad0 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe7dc6c00 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x59db9e9e altera_pid_feed_control +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x7df11fa9 altera_hw_filt_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0x93561b7d altera_ci_init +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/video/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x1f2b26c9 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x2e4dfa17 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xa072c087 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xa22b480c cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xa8838c5c cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xc8f1f2af cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xd93dc9a7 cx25821_dev_get +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xe80a9c2b cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/video/cx25821/cx25821 0xf59524bb cx25821_devlist_mutex +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x67e77309 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xc1b8f51c vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1ea9b03d cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x7a6a007f cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8b316f10 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8d4886d4 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb0d8e5fa cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xe4b1b406 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x1c2997d1 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x9c1f9899 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb1e444f4 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xcede4819 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf0b255ba cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xfb17804a cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x14c63074 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1a3241e5 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2fcbb6fe cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x304f6fc0 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x52b9a461 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5b3f530c cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5ce00174 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5d6f8ab5 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5f3a2d45 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6b9ede76 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x71a86042 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7204d517 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x74fb4a90 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x946f0726 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa2abc03b cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2134c2f cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbb4e30f2 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcfab4943 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdf84f2f1 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe552f53b cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xea65bfcd cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xebe0086d cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf5ed5aae cx88_reset +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x3f65a159 em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xecc2aea2 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x01255c10 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x10c7112e gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x39ac7e41 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6b3fceab gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x770a99dc gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x77117692 gspca_resume +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd3d37006 gspca_suspend +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x06b66dd7 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2517e0f4 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x282b730c ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2d6d7c60 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x311f3c2a ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4d282509 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x832990b1 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x87f420cd ivtv_firmware_check +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x8d8797c4 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa19ed663 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf4180fd7 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf57c8de4 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x000f3128 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x07541f86 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x21f02618 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x22149d36 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x221b8655 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2c07ed0a saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x363affcd saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4c1d3f4c saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x607b6165 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7b0f2505 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9202bdc9 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9f02968c saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x1397537a soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x2ccfbac6 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0x2ed0aa74 soc_camera_unlock +EXPORT_SYMBOL drivers/media/video/soc_camera 0x5ac422c3 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x69533e34 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/video/soc_camera 0x9edce753 soc_camera_lock +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x433952ab soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x6951757b soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x85d52182 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xcb4b96ae soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0x2b16371c tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xb9af83bb tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/video/tm6000/tm6000 0xebe5faca tm6000_register_extension +EXPORT_SYMBOL drivers/media/video/tveeprom 0x551e6efd tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0x8dc7f22e tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x290da21d v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x791ab099 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc0699aac v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf052e6db v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf8ed8abd v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x4352d519 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xd676145c v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xf43880f7 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x0fc3f0e0 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x30aebd45 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x4d1d18c6 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x65703e95 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe7f7168c videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xf2133595 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf2-core 0x3055861d vb2_querybuf +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x0783da72 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/video/videodev 0x0b620270 v4l2_ctrl_add_event +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x126fdef0 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/video/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/videodev 0x178af940 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/video/videodev 0x197e6a09 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x1c4cb79a __video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x1e1d22a0 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/videodev 0x299a3c6b v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x32ea1ab8 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/video/videodev 0x349cdfe0 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/videodev 0x3f12deaf v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/video/videodev 0x466a1193 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/video/videodev 0x4b39c543 v4l2_querymenu +EXPORT_SYMBOL drivers/media/video/videodev 0x55039c9c video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x5654c878 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0x5f53102b video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0x6f3ff7b5 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x7000d116 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x72e10a3b v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/video/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/videodev 0x7a73ff76 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/videodev 0x828f2ebd v4l2_subdev_init +EXPORT_SYMBOL drivers/media/video/videodev 0x8eb1ddfc v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x9798243d v4l2_queryctrl +EXPORT_SYMBOL drivers/media/video/videodev 0x9a0954b6 v4l2_ctrl_handler_init +EXPORT_SYMBOL drivers/media/video/videodev 0xa121b48e video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xa365dc2f v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/video/videodev 0xaf3c9531 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xb384b08d v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videodev 0xb8f9b807 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xbebafbd2 v4l2_ctrl_del_event +EXPORT_SYMBOL drivers/media/video/videodev 0xc5ec7e9f v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/videodev 0xd45b17de v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xd52f8c4e v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/video/videodev 0xdf9bb22c v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xe0823d51 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xe3719f5c v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/video/videodev 0xe418e46f v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/video/videodev 0xe42ddc79 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/video/videodev 0xe686296a v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/video/videodev 0xeb3eaf5b v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/video/videodev 0xefafea22 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xf22a50d6 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/memstick/core/memstick 0x09bece8a memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1645d177 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2b3b19ab memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x46cc5d8b memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4e0de759 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4f692c46 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b682771 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x644361ce memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x676d37f3 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb897634c memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc0caf667 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xeb94d355 memstick_add_host +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x041e0dd9 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x05a0788b mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x06a777cd mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x15d99e74 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1627cb62 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1c4da0fe mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e0a9c82 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x23cd17e7 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x284953bc mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x35787d23 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x464cf4d0 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x48349c21 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x488c1935 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b58f82a mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5dfad09f mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6c65e0b8 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x94a402f3 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9c89a101 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9fb055f9 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa0534249 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb2afbd33 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbc8239ef mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe78da090 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xed093f55 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xee337358 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf582239c mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfca62e70 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfe3f05c8 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfe82edd1 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x01b0b27e mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0f545432 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1489a56f mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x250c2e0a mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3c26f091 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3f91f360 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x45e40401 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4699882b mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x49a8a4d9 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x49aa3aab mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x50b5e0cb mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x52401a69 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x67a142c3 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6d0a95cf mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7bc907cc mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8409156d mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8abdfb06 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x949127a7 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x951360a0 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x96271422 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x981a3b65 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa9967949 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa9bee7cc mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xafa7d9fb mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdf8622d2 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe481935d mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe9feab49 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0be8ea2d i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x141a0896 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1b708d08 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3678ea00 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3a4d4f07 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x50d92d49 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x51d32152 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x601b8dc6 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x636a395a i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6d0870c6 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7e0cde50 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8427225d i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x86d5a559 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x893511e4 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9f3f8004 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xae4f99ee i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb3b4346e i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbef91b2a i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc8faef59 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe502c1cf i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xef093008 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf6190e1e i2o_cntxt_list_add +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x2f293949 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x4c490053 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0a0f0fa1 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19f1f7a8 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x304d2b09 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x648f3e82 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7c8289a3 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x81e0f888 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x908760bc mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9bc42b70 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa83c26ee mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xad06449f mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb3dae053 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc60a9247 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfdc5799c mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/tps6105x 0x3e9df12c tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x8ab9f829 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xefca58fc tps6105x_get +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0x015ee601 pwm_free +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xa4ee3c79 pwm_disable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xaee34e3d pwm_request +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xd83c7949 pwm_enable +EXPORT_SYMBOL drivers/mfd/twl6030-pwm 0xdeebfb06 pwm_config +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x6d53b5c3 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x8e4635f0 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x4eccc439 altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x91d34938 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xb2ec1996 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x75a881fb ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xa6832e17 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x098588dd tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x172a5aa0 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x590eed27 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x60ef076c tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x7647ec1c tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x93aacfbd tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x93f03bb1 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xa4b9b64e tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xcd872106 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xf01e89ad tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xf692fdaf tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xff6f3220 tifm_eject +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x008232dc mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x3729edbc mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xe367ed2f mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x05f9d65c cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x0d095c58 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xdce485e7 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x2c3971ba map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x3f9c64e0 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb89a9d11 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xc35df446 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xcf5d75ed mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x08636aed lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xd15eddb4 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x494f2189 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0x91333933 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x361f4019 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x5d76ffbd nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x60b6d746 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0xbb93b096 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xd6ed7c98 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe880807c nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe9099fb9 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x4d88cfdb nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x5dcf97f5 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xfabc1949 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb0a2c98c nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xd10354fc nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x19b7269c onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x31c70a3d onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x50968b28 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x94071430 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x08e09d4f arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0a0407b2 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1ec56c04 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x20babefb arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x313fc1f5 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3e36ee50 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4a834822 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8d59132e arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd6e674cc arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf5ffab30 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x4e01ad0f com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x5375a331 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x951f5b9e com20020_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1555e424 ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x169684b0 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1a011958 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x501da529 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x95fdbbe5 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xb7e540c8 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xb98ec6de ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd6ab31e5 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe863e7ed ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xfdeb949a __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0xfd39ac38 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0x1e682b9a bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x7ec87cfc cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x03df8269 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1b31b799 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x32fb5a3f dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x34ec6e03 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x35342655 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x37b11834 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3fb00d88 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x41ea424f cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x838cf935 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa20a3a16 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa23d2085 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb5ca2f4c t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb875d91e t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc42219e7 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfbe50061 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xffff2775 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x01bcfeaf cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x07fe7d39 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0daf63cf cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x22f52a66 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2bcb391a cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3afd5157 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3caa8148 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5264a7be cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5f03c2d3 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x74973193 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x80313675 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x86499742 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x86956310 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x90b50b5c cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x92fbf4c4 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa6979383 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xda32c617 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x632a19c7 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf2e2a52 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf5a2bc77 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7e8e24ed hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x8118ad19 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb96c8de2 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xcea52e8d hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd8bd18b4 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0bb454ad sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3a5f2608 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x40b75ace irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4d2163e0 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x62228344 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa5fdec34 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc6e71a33 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcf09d008 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdabf646a sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfab21b68 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x50d935df free_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xb117ff12 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/ppp/pppox 0xcb0ca788 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xde50b7ff pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xfb4533d4 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/sungem_phy 0x39437898 sungem_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x15dcf4d0 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x47b8d2e3 tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x6ab08245 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x8a0966dc tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793 tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf015458c tms380tr_open +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1fcd22ee hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x38e7f042 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x44f77546 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8c7f0307 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xbbdc50d1 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc26958a9 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd72ed278 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xdfb8cd40 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xeaaef061 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xee1b1808 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf4768a75 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x90fc044a i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x1d383f54 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x3ee268a1 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x58e6a431 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x04ce6b76 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1efd38d4 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x32d06a29 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x381bfaa0 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4015683a ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa0e2d5f5 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa224ded9 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb7feaf36 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbe04ba34 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x4f91dcec ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb56c4c09 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xeeb0793c ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf1ec24eb ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00bacf52 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0197ed22 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02f6a2ae ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07a1190f ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0aa9315e ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c932906 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f7b4d47 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11167785 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a70f55e ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2099a539 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20e9eebb ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2519a32e ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25fe973e ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x27b8b411 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a0f8a4f ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2be0326d ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3018780f ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x356531cb ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x382626d7 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d6eb365 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e19d814 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e561878 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43352bee ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x46eb3758 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49ef3a13 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bd2cbf9 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56c3d601 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56ec5fdd ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c79a58f ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e8f9bbb ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f730692 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x634e57c6 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x661871fc ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x69e6ed4c ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cfcc751 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6effa639 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71900adc ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71dcc34d ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x771cbe29 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b5c9f47 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7bcdee6d ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fa6b961 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x815ba76b ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83450003 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x848ca81a ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x854be0d9 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8871bdfb ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a83e69a ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8dc94283 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x923b8267 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92f1e498 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x963e2502 ath9k_hw_proc_mib_event +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x968d4884 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b4d2339 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2a0367e ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa95bc531 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xabf24b84 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb11964a4 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2bbe182 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9304de1 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd23f2ad ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbde1e6c2 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc05d37c1 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1636910 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf3622d8 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1481488 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5747191 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd6af7158 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdaaac4c5 ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc1512fb ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc5c9f31 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd724ab0 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdea1a795 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdee9ce35 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf50db3b ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe47b2e22 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe681d832 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe693b319 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe93f9cd1 ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeaadefba ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf163a2aa ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf174b8b7 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2596070 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf29abe4d ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf35e22be ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3b0a616 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa5a2c4a ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff32dd08 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/atmel 0xb962b9d8 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xbd7cc73f atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf8426338 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x3f760aac brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x77324582 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x39d3a939 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3c4e3060 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6177920b brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x690d56a1 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x69b62757 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x700d3458 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7d1b7bb5 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x8527d9de brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x92987f2c brcmu_pktfrombuf +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x94eddbe5 brcmu_pkttotlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb2d79aa2 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb4f3985f brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc7a27666 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xec55893f brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x02737e04 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x03b3b180 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x049f97db hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0d06b6d3 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x25156803 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2954dd12 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x41142959 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x466c06cc hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x50afc520 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x67f49bb4 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x74bbff97 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8beb2949 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x997f1c97 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa19a48a6 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa3a14671 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbc6a1a47 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc2c6dc09 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc689a681 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc813be05 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcd7262e7 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xde468dce hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xec9b4679 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xee2a73c1 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xeff2d716 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfdc1daf0 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0fb5ef2a libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1c22d972 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x339286d9 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x38361ba5 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3a799489 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3c58b3a8 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4ada1d3d libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4e3d0edd libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x514a79b9 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x63a2542d libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x65c1a68e libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x763f6805 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x79e7076e alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa2a72278 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa94c8df4 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa9ec8590 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb2d06e3b libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc111af20 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc16cf580 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xca87316a libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdac35347 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x00578bbb iwl_legacy_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x01483b98 iwl_legacy_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0395d520 iwl_legacy_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x069d4f8e iwl_legacy_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x06acd2b5 iwl_legacy_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x087f15e4 iwl_legacy_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x09784eb0 iwl_legacy_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0cd39917 iwl_legacy_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0ce3a019 iwl_legacy_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1248ee06 iwl_legacy_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1c49adeb iwl_legacy_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1e865c38 iwl_legacy_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2193b5a0 iwl_legacy_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x223b38d9 iwl_legacy_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x25268ff3 iwl_legacy_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x269db442 iwl_legacy_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2ce000f6 iwl_legacy_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3436e637 iwl_legacy_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x393bd72b iwl_legacy_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3ab725de iwl_legacy_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3abbc6f5 iwl_legacy_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3b8890e8 iwl_legacy_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3dea4d2c iwl_legacy_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x40dd3ae9 iwl_legacy_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x447dfec8 iwl_legacy_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x44e472a6 iwl_legacy_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4979c65d iwl_legacy_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4c5b2a30 iwl_legacy_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4ca7e3f9 iwl_legacy_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5029aa89 iwl_legacy_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x519f257a iwl_legacy_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5238f5ae iwl_legacy_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x52ebf54e iwl_legacy_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x577ecdbf iwl_legacy_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5f5c6799 iwl_legacy_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x630588fd iwl_legacy_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x63a361ff iwl_legacy_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0 iwlegacy_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6e45de85 iwl_legacy_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6f200a76 iwl_legacy_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6f5a92b5 iwl_legacy_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7b4eb5cc iwl_legacy_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7c942dbe iwl_legacy_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x81268aa7 iwl_legacy_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x82149076 iwl_legacy_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x832b77ef iwl_legacy_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x836b7b01 iwl_legacy_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8750069c iwl_legacy_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592 iwl_legacy_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8e759c47 iwl_legacy_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x910d5480 iwl_legacy_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9558829d iwl_legacy_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9f0e6ea4 iwl_legacy_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa100dddb iwl_legacy_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa43ac290 iwl_legacy_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2 iwl_legacy_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa7e29da9 iwl_legacy_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xaa347a49 iwl_legacy_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xaaf2b293 iwl_legacy_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabafbdbf iwl_legacy_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabe48768 iwl_legacy_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xac8f720f iwl_legacy_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xae019207 iwlegacy_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb46db4ee iwl_legacy_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbb0c5d09 iwl_legacy_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbecf5135 iwl_legacy_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc071e7b8 iwl_legacy_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc93f2d72 iwl_legacy_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcc1ee81e iwl_legacy_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xced704f7 iwl_legacy_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcefa4d04 iwl_legacy_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd027d1cb iwl_legacy_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd14e6670 iwl_legacy_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd19e31ff iwl_legacy_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd206cb78 iwl_legacy_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd208e27a iwl_legacy_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd93b4755 iwl_legacy_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd971d08d iwl_legacy_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdbf1f721 iwl_legacy_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe21b5e56 iwl_legacy_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe50eb647 iwl_legacy_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe7bc9527 iwl_legacy_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe86cc763 iwl_legacy_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe8742af5 iwl_legacy_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe8a7f530 iwl_legacy_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xedcb8674 iwl_legacy_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xef5e9b50 iwl_legacy_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf1705a39 iwl_legacy_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf5e9685a iwl_legacy_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf75dac1f iwl_legacy_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfa887a49 iwl_legacy_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfd015d96 iwl_legacy_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfdffb5fb iwl_legacy_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x07849596 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x1a260580 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x373f37dd __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x482aecd3 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x58e9338a __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8daa79ba __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xbb7e5c47 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xbff320f5 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf6765781 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0496d909 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1e65ef4d orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x20660d29 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2344c418 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x29c24fc2 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x33f2a369 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4e97a050 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5dea5bf1 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x67571868 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6d6cf5bb __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7f6549a8 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8f78ca9c orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa4b52345 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbd8b9a7d orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe5d7b17f orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf134f25e orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf9f15fb0 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0ea4d6cb rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0f33396e rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1c80b347 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x20d02592 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x20f47418 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x275903cb _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x39325f45 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3a200021 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3c45c0d2 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x402709fe rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x429962ce rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x467fa6a3 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4c662b0b rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4c732d3f _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4c738ff3 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5ff355f8 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x63af55f4 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6be0ad12 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x74372fca rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x82106f5d rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8582e123 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8c20970b rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8f4252c3 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x91a88a16 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa83417e5 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaa24c47d rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xacf643bc rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaec2bb83 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb1d9e1c0 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb2390a78 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc1bf80c8 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcae2339e rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcc91e14e _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xce86a084 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcee844e6 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd8694a0e rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdc018d20 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdc321e78 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdddbfa16 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe617fafa _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf0c8d15b _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf36e0644 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x192adb1a rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x29adc650 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x32ba4a16 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x41521428 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x48e43374 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4c4d31f5 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x52de1aba rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x597839a5 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6fbbbcbb rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x84174242 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8fd2251b rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9818c30b rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa3a3ca35 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa4f81269 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb2dc9649 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc180b00d rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc2f25b92 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc5c4bc65 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc5e4a8e5 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd1f6c1d2 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd28178bb rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf56e13a9 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/parport/parport 0x0c60f527 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x10cd8296 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x165ff29e parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x1cf215b0 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x1f81a11b parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x201810b9 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x207b1810 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x2213e8bc parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x342db582 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x440f113a parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x48b05fb2 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x523b0342 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x56d4d9e1 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x6054ce65 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x66ca2a57 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x6a7b1b6f parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x890327dc parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x91e9f80a parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x9cb5cfdf parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x9f2bc2cd parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x9feb2550 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xb3181c0c parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xbcb1ce64 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xbdf31317 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xbf1904d3 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xc08d9dc0 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xc0952795 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xc9df1915 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xf9402a0d parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xfc0640ff parport_get_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x6f519c1e parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xfd2f2547 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x03263743 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2d9d3cb4 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2f41985d pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x37cfcdb1 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x64f13e5d pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x69d9f28a pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7906e203 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7f487b7f pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x85eb2d49 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x94b0cb7d pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9e91d75d pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa8944f77 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb6b3fb78 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbe8363e3 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd2a10ffa pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xda8117a9 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe8b7ff7e pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xeba7d3f4 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf7d2fcbb pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x08ced9d8 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1afddbc4 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2a5cd602 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3a6bd1e8 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x74a982d2 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8121ab2d pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8d443fc4 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9a954872 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa5a9f939 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd2776969 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd3cef7f5 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xbae07e40 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xf970b9d9 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x089d8d2a pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xa1838161 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xac998fa7 pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xb7056eac pps_event +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2069b692 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x234ee8d0 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3615f190 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x64ced0a5 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7e9045fb fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x831e8e15 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8f4a6342 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd366a98b fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe9ec2e4d fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00db7a4a fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0357bd2d _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0bcd2af5 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x140bc234 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15c79cf8 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1b48c039 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1f1992a2 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x202d1252 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2054c4b1 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x20a7c5f3 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x222e1fc5 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x279b6561 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2ec15b96 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3bcada69 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4419da9f fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4b6a4727 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c6b7297 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x579978d2 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5840d4e3 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x695dd588 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7315ab03 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x77725bc8 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78e3f5fe fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7b3eb320 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d0833a6 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a7aabf4 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8c51a545 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8cd924bc fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8fac9012 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x901828ee fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x941ba8a5 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x988e2a78 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9997d9d6 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa1296b43 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaba81c05 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xad671157 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae227780 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaea70f89 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb12efc94 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb54b4a3b fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3f6893d fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5632e39 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcfbb1e94 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6030365 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6141839 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe30739d5 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xee96dbb3 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf0c810dd fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf18c218e fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf3d72493 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x0863c702 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x04be2f68 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0b686885 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0cc1768c osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0e6c47d8 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x129576a2 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x167f2c8c osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x20a78322 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x24a6e4f8 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x66cbfd07 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6ae2c962 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6c8110c1 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6e433a0b osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x713e9eaf osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x73730967 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x77c6826d osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x80e78f3a osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x84f0e069 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8c13e3fe osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8dd13ced osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9388b02c osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9bcdef87 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9fc08f60 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa9a4c92a osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xad22e014 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbd2539a4 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbfbad20c osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd05c5d0a osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd347b6e6 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd42805ab osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd6a11873 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xefae799c osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf098958b osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf422e806 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfa1c8ee2 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfccd6bdb osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfd63b4b7 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/osd 0x14acdc71 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x1e6d5f5f osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x711ed992 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x832cb52b osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xeb111db4 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf6e8f949 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x40319c9b qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5adcc4b6 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x744fa906 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa528b9d6 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa5e2fdbd qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf3824b29 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/raid_class 0x3ec3ddd8 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x778bf238 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xd76d0039 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x106c1811 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1e96ded7 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x20ee437c fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x27804ec4 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x54fe49d7 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x59502a87 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x83521ed3 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x94306744 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9cfbe850 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9e89a2db fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb6176d80 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd856bb68 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfb03b55d scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x051b9bd2 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0d2da237 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x21800e61 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2b89c457 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x33cab2a3 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x35a01451 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3b5a567b sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x583c6e4f sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6ed81bed sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7045726b sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7234015b sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x89dc97b2 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9438378a sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x947caca1 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa5ba2729 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa8733c70 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaca66a3d scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb546cff3 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc25aba17 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc4d2f3cb sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcbc9e1b9 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xced2bd5b sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd86a8bf9 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdb9b5190 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeb279232 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf5df4e5f sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x10f4690c spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x20ed47c2 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x6d64b0bc spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7fa53d72 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb8f44cf1 spi_schedule_dv_device +EXPORT_SYMBOL drivers/ssb/ssb 0x16c9ab7f __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x237ef4af ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x24ca2438 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x2747da7b ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x42cb0847 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x493a66ec ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x4d5f03c7 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x66deb1fa ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x75d14601 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x886b38a2 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x8b589444 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x96aba9e3 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xa247a999 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xa5daed2b ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xaa9f2394 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xce5ae582 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xd2be9c77 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd4cab700 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xd74e67c7 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xdf26779a ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xef0e6936 ssb_device_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x4b6a5ae3 adt7316_enable +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xaa1110bd adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xdb72958f adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xf94fcbb5 adt7316_disable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x088be1a6 iio_allocate_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x104b1f83 iio_trigger_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x14350c0a iio_buffer_show_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x18a7aeeb iio_free_trigger +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x195da6ec iio_trigger_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2d9450b5 iio_buffer_write_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4abd6451 iio_buffer_read_bytes_per_datum +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4b9644ea iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4e3c215b iio_buffer_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x528cb68b iio_read_const_attr +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x62628841 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x65dfb966 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6ae10412 iio_trigger_notify_done +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x76b6773f iio_buffer_store_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x848384fe iio_device_unregister +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa0280aad iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa858e5f1 iio_bus_type +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xba0347fe iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbb4985ab iio_allocate_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbcbd8e9d iio_buffer_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc535b74f iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc5564848 iio_buffer_read_length +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf80bf5d4 iio_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfaf49188 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfe5319fd iio_free_device +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0x3d7af537 kfifo_access_funcs +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xb115aae9 iio_kfifo_free +EXPORT_SYMBOL drivers/staging/iio/kfifo_buf 0xc3293e36 iio_kfifo_allocate +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x989908be ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xfed777ea ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x29072371 ring_sw_access_funcs +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x62c21632 iio_sw_rb_free +EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xf876b5c9 iio_sw_rb_allocate +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x0c1ad1e3 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x04fdb6ec go7007_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x375c7151 go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x73f269e3 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x9f74ac77 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xa25b669c go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xaf0c4dab go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xcde99439 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xd127574f go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xda97c705 go7007_read_addr +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x03e6561a ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x081b396e ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x13c7c7a3 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17037b1c ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x277f364d ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x29a94eaa ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2bc07642 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2e28eb62 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x31ddb2f5 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x355f362d ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x35b91b81 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3a441f2b ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3b6bb266 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3fc9fe56 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x44145060 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4490f7b5 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x45790523 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a7b0217 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5390efcb ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x629b6cb5 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x67048b77 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6edabdfb ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7321730c ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x77d435fd ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e0510a8 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f9e23bd ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8561ab3f ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x85e7a34d ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x93f859b3 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x94afb150 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9cfedf81 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9e7653ae ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f651b74 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa00a22f5 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa3bf62d6 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa3c871fd Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa49e655c ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa4c1e153 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa5070bcd ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa63bfeff Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xad0d7974 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb464f151 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc0c5f0f2 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc5f198d5 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc78a8d31 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcdc32f2a DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd4ca725c ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd760323b ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd8229756 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb448802 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde0ba602 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde840537 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe2642507 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xec97bee3 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf0817955 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfd019d76 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x09474a1a target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0a2635a5 transport_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0b3cb559 target_splice_sess_cmd_list +EXPORT_SYMBOL drivers/target/target_core_mod 0x0e7e6797 transport_complete_task +EXPORT_SYMBOL drivers/target/target_core_mod 0x12245227 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x144bd875 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x17d31b60 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x1bc7c009 transport_init_queue_obj +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c35568e fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x1dfa4839 transport_generic_allocate_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x27f91778 transport_do_task_sg_chain +EXPORT_SYMBOL drivers/target/target_core_mod 0x353b608b core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x36ddb418 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x3aa5f58c core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x40bafe0e transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x4f097d76 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x501a2112 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x5ab47326 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d6dcbfa target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x61ef91e9 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x662b7959 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x6779ef6a transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x6dfc23dc transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x6f1948d5 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x6f5c0762 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x700f4f9a transport_generic_handle_data +EXPORT_SYMBOL drivers/target/target_core_mod 0x7634f9f4 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x7c8849cd transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x7d1606eb fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x80485375 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x80f2be62 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8815efea transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x8e29ba01 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9708af86 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x97f3463c target_get_task_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x9b04b113 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x9b271e09 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0xa02caa24 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xa21c3636 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xa36c9bc4 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xa4d8a56f transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xa6c53afa transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xa7b58713 transport_generic_map_mem_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xa9b6082a __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xacc6b6cb sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xb47f776d transport_complete_sync_cache +EXPORT_SYMBOL drivers/target/target_core_mod 0xb9d01741 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xbe568974 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xc044e7a5 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xcefa2a9a transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xd2a229db transport_generic_process_write +EXPORT_SYMBOL drivers/target/target_core_mod 0xd609cbad iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xd9099b1f iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xd9302d48 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xdb5f0679 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xded1ec82 transport_add_device_to_core_hba +EXPORT_SYMBOL drivers/target/target_core_mod 0xe0a07df9 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe444e648 transport_generic_handle_cdb_map +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf3bce857 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xf3eb9b77 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xfd70d8bc target_fabric_configfs_register +EXPORT_SYMBOL drivers/telephony/ixj 0x6573cbda ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x54ddaf6c phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x99f57b63 phone_unregister_device +EXPORT_SYMBOL drivers/tty/serial/8250 0x2aa092f1 serial8250_register_port +EXPORT_SYMBOL drivers/tty/serial/8250 0x3612d45c serial8250_do_set_termios +EXPORT_SYMBOL drivers/tty/serial/8250 0x8a41649e serial8250_set_isa_configurator +EXPORT_SYMBOL drivers/tty/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/tty/serial/8250 0xefb541e4 serial8250_do_pm +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xa9d04542 sl811h_driver +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1016746f usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x23da7ad0 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x263ab73c usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2d2bffb5 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3491cada usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3b0a971f usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5ce4d453 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6d995b9d usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8a892335 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8ea6a79b usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8fa66554 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x906f11cf usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9e23e7a3 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xad46c2bc usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb3f1fb5b usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x7e72730e usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x92dee261 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x100148b9 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x1638b956 lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xc754b980 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/display/display 0x2602c236 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0xd80e60f2 display_device_unregister +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x41362704 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xd6ed48c7 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe8bf8391 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x22a4913c matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x73905c47 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x83506c60 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x924453cf DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x7225ebc5 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xe2c04f44 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x50aa51a5 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xb43c3115 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xe87c87e3 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xfaf0f32c matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x660cafa9 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xd8731ac1 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x0510ec4b matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x0966b0bd matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x12b36666 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x43fb2657 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xdb22fa90 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x3b7dfc8b mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x142e8590 video_output_register +EXPORT_SYMBOL drivers/video/output 0xc17170e6 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x1406034e svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x18221ae7 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x5204d18c svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x549b03a1 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x729d8507 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0xa8957620 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xacc07c2f svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xede4edf1 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x2435b4e6 w1_bq27000_write +EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x8396ac14 w1_bq27000_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x582c429e w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x74308eb6 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd011e5c5 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xfd833bcf w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x2c13ae38 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x3f114554 w1_ds2780_io_nolock +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x934a5e49 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x10e3dd69 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x169bbd44 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x1a0a29dc w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x30a1abb6 w1_remove_master_device +EXPORT_SYMBOL fs/configfs/configfs 0x19d18ad3 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x29f4c03a config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x313ecda5 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x3cb16576 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x54a2edc9 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x86310680 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x8e78d2bb configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xa751ec7b config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xe3e1d512 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xf233003e config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xf2f7c03e configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xf54de7ae configfs_unregister_subsystem +EXPORT_SYMBOL fs/exofs/libore 0x011500ad ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x01b61d8f ore_create +EXPORT_SYMBOL fs/exofs/libore 0x1211672f ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x3fb5301e ore_read +EXPORT_SYMBOL fs/exofs/libore 0x53173aff extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0x6a8d77a0 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x777c3d36 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xb1b74471 ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0xb7da502d ore_remove +EXPORT_SYMBOL fs/exofs/libore 0xb8f70c4e ore_write +EXPORT_SYMBOL fs/exofs/libore 0xeb079c92 ore_put_io_state +EXPORT_SYMBOL fs/fscache/fscache 0x02039325 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x0c8b833d __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x100c4abe __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x1f5fc500 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x34a7e36a __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x388cd686 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x3ac22b68 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x3db1011d fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x3dc3128a fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x4b2327d1 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4dfe781f __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x515a109b __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x5a633a29 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x5b2e647d fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x651dae96 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x6f6555e5 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x84369571 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x86031b2a __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0xa41463a4 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xa8b24e45 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xacfba9cb fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xbdbfc530 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xca16ffd4 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcb07d08c __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xcceb3c43 fscache_object_work_func +EXPORT_SYMBOL fs/fscache/fscache 0xd496954b fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xe91693cc fscache_add_cache +EXPORT_SYMBOL fs/nfsd/nfsd 0x0c8d6829 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xcbb738be nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x18a5b423 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x27319524 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x5d921085 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xe78ed2b8 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xedad9ff0 qtree_write_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x3e77b340 crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0518340f lc_find +EXPORT_SYMBOL lib/lru_cache 0x2ff95600 lc_changed +EXPORT_SYMBOL lib/lru_cache 0x5017d593 lc_del +EXPORT_SYMBOL lib/lru_cache 0x53b654b5 lc_create +EXPORT_SYMBOL lib/lru_cache 0x6d0b7e1b lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xb4784042 lc_set +EXPORT_SYMBOL lib/lru_cache 0xb4ad2fb0 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0xbd225dab lc_put +EXPORT_SYMBOL lib/lru_cache 0xc2978d4e lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xd4c4212c lc_index_of +EXPORT_SYMBOL lib/lru_cache 0xd861ce80 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0xf09852de lc_get +EXPORT_SYMBOL lib/lru_cache 0xf55bda51 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xf5c091d6 lc_reset +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL net/802/p8023 0xb8a17529 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xdcb89779 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0630f370 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x071b9b21 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x0d4f08fc p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x11d9a910 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x126e2504 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x1abef976 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x2e1ce02b p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x309731d1 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x320c4901 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x32e818a8 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3f907f97 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x40c10de9 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x4447819f p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x45d2e2d8 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x4b1a6faa p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x55d22e5b p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x5917a053 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x5f571cc7 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x653a1e17 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x681ff811 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x78bc2e2d p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x849f3ac8 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x88127182 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x88e21c78 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9b0c8124 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x9bd7ad97 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x9f0c3d83 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xa0a4eb97 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xa61b68d0 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xa6c43ffb p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xad5dc5cb p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xb7d02dfd p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xbfbcab54 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc2fb5371 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xc3f795a9 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xd87370e9 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xdcf93dbd v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xe06edf65 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe9537e4f p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xef873574 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf4b17a28 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xf9289a5d p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xfcd31027 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x3bc50009 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x52d14e53 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x8e24d05b atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x98f8c79e aarp_send_ddp +EXPORT_SYMBOL net/atm/atm 0x126d95bb atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x2e12baf2 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x30ca8373 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x385468cd atm_charge +EXPORT_SYMBOL net/atm/atm 0x4ebec85a register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x6fce33a3 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x9e2ae996 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x9fe04516 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa7ba0acd atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xa9f740a6 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xba4d7ef2 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xbd754167 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xda9607c2 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5812d76f ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x5d45a79c ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x5e1a8da8 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9c56ea21 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xaf314b1e ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xb04d123b ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd4989812 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xf6b51e44 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xfb7ad97a ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0364138c hci_le_conn_update +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0decea96 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x100712f2 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x12c61280 hci_find_link_key_type +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1409f5ce hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d812f69 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x24d82c08 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x24f73c91 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x288cd48b bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x29dd6531 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2a18299c hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3171753f hci_find_ltk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x34098db8 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3417fd4a hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x341d9127 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3796b536 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3ef77cf2 hci_le_ltk_reply +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4198f563 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x453538fc bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x49a5951a hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289 bt_printk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x50e8d92a hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x55f64542 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e50b38f hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x82775c93 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9104c561 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91e5fd85 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96eb1372 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9f0d90c7 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4599fe5 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa82173b9 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaa72c422 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb0e1e5f0 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb616a1f4 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbfa3c0b2 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc926d88f hci_le_start_enc +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd337c902 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd39859e7 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd3e638b6 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe1ed31ae bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe9436e95 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bridge/bridge 0x4e04d771 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xbc600a9a ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xca2bae9a ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf88fed09 ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x16264c9a cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x35b49017 caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x423a60f5 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x504da5e8 cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x5807d88d caif_free_client +EXPORT_SYMBOL net/caif/caif 0x63e9812a cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x933f3234 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0xc58c68d8 caif_disconnect_client +EXPORT_SYMBOL net/can/can 0x149010a2 can_send +EXPORT_SYMBOL net/can/can 0x1d0e956f can_proto_register +EXPORT_SYMBOL net/can/can 0x4d9041d5 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x84a2cc1d can_ioctl +EXPORT_SYMBOL net/can/can 0xac86e4c3 can_rx_register +EXPORT_SYMBOL net/can/can 0xf7707f73 can_rx_unregister +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0d495c3e ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x0e3d0216 ceph_calc_object_layout +EXPORT_SYMBOL net/ceph/libceph 0x1520bf69 ceph_osdc_wait_event +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1a9b3901 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x1ecb9ed5 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2037c367 ceph_osdc_stop +EXPORT_SYMBOL net/ceph/libceph 0x2cf6f1d9 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x30459201 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x32aa78a5 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x32bec3e5 ceph_calc_raw_layout +EXPORT_SYMBOL net/ceph/libceph 0x33f2d647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x37fe28fc ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x385893fd ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x3f4ea726 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x41d415c1 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x41d6df2a ceph_osdc_init +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x499a46ac ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x53f33e06 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5898cdbf ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x5cd578cf ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x5ed033fe ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x74daee66 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x76cfd3a2 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7ab52a30 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x7bb959c4 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x7d41bcf6 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x814bf18b ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x88c01dcb ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x8c48b5fd ceph_messenger_create +EXPORT_SYMBOL net/ceph/libceph 0x8f058ac8 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x9172dc03 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x91742005 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x9b061308 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa363b1cb ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xaf597456 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb6788462 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xb7af8655 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0xb7bff4dc __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xba95d3cb ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0xbe90bbb4 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0xbfdeebb7 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc9212327 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcfc64f3a ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xd01b645a ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xd16cb6ac ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd64bec4b ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0xd6fd338f ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xd711388e ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xdced20b9 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xe1613151 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xe66da465 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xe699f916 ceph_messenger_destroy +EXPORT_SYMBOL net/ceph/libceph 0xe891b649 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xef04ccfc ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xf26b8c27 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf3d34d74 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xf5a127a3 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xf953084d ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xf9b26ffe ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xf9b9d683 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xfaaa7a6d ceph_con_init +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1d407e50 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x21d9b966 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x22a7b6f1 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3c93a4bf ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4179474d wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5e662055 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8778444e wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x878f3d0a ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa32cbfc7 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa369c6f1 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xcd7ab7e1 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe2feb265 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xfdfb6055 wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5ba0f7c5 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x60daf900 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa5eeb9db arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb79eb5cf ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb7b0a61a ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb9127b25 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1bb77853 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1fe84c00 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6e0073b5 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7bce1485 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb76596c1 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xcb02805d nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xec214b33 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0x002da092 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xb0c3c474 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1d838012 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x43f62716 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa5ddc736 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc9bf0999 ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x5d2df6cc xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xc3ee2ac5 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x6ae835e5 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe7158eb2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x133aee38 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x165fa144 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x41bfeae5 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x79aed4a1 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x97a3fdd8 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9de010b0 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xba41d379 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd2e8e2fb ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x19fac24c irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x2221edd7 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x2e87c281 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x31603751 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3b4c3a01 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x5168f473 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x5596f59a irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x5b437a9e irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x689c770a irlap_close +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x73377f5b iriap_close +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x781eeea9 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x78592c73 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x826eae9c iriap_open +EXPORT_SYMBOL net/irda/irda 0x850e0462 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x893736df irttp_dup +EXPORT_SYMBOL net/irda/irda 0x8ec7a63e irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x8f5db8a6 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9b3349a7 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x9d31283b irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xac8d3e5c irlap_open +EXPORT_SYMBOL net/irda/irda 0xb536bc7c proc_irda +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xb99ffd01 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe23d9502 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xe5b63f93 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0xfbb82973 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xfc79bcf9 irlmp_disconnect_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0x7286ada5 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x16c6a6ae lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x76387bf0 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x8def6def lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x920621fd lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x998496b9 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xa1777046 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xc3d6679a lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xef43091f lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x0509d756 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x05247095 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x098bc1ca ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x0ea08ba0 ieee80211_get_operstate +EXPORT_SYMBOL net/mac80211/mac80211 0x1945dbff ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x198e8d3c ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x1aa94f38 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x1d86d60f ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x1f8ebdea ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x216d0405 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x25aa7460 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x2687c2ba ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x296fb81c ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x2dc723d8 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x412b2c71 ieee80211_napi_schedule +EXPORT_SYMBOL net/mac80211/mac80211 0x49897409 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x4a0c75b9 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x4d03bc98 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x5b8f3c5f rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x5ba9e40b ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x63915eba ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71 ieee80211_sta_eosp_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x6b3942f2 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x6cb3793d ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x70f7407f ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x71271261 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x74c0c39b ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x81591630 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8173a67e ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x81c7e9b2 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x84b3c8c3 ieee80211_disable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0x8e2f53b1 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x916e16e9 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x91be0f68 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x94c4e333 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x95aebf42 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xa9b6c7d4 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xb11e1866 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xb4dd091a __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xb570fef7 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xb894ece5 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xba0ccd80 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xbaf78e54 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xbd129cde ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbeb89843 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xc2e9c744 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xca29e38b ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xd7448e82 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xd9bcbb93 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0xda14c5a4 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xdbe01809 ieee80211_enable_dyn_ps +EXPORT_SYMBOL net/mac80211/mac80211 0xdc5d4ced ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe09462b9 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xe2f38a36 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xe589d2b9 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0xefbb5a27 ieee80211_napi_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xefcfa52e ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xf0d61ff8 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xfa8b28ae __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xfe2d68fb ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x18407df8 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1b3afddd unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x27283c42 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x31c216a1 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5c98c750 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7516d6f3 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x79fcf94a ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8580ddfe ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x925cec1a register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa6f40741 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb3101a63 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb53c16b7 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd3b0bc9b ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xeb946bbd register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x5ee9b73c nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7bd51974 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xd4af265d __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x436c9d4a nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x11001cb5 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x172efa5e xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x198796b9 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x1ea33b76 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x1f079e50 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x2524cb9e xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x45803d1d xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x9200c509 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x941a9e9f xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x9bbe0ea8 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/nfc/nci/nci 0x3363f82a nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x4cc2f6b0 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x7aec2933 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x9c99f7ad nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xa5ae4813 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e nfc_printk +EXPORT_SYMBOL net/nfc/nfc 0x2fae37fa nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x9317bae3 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x94ef99e5 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xa5653b32 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0xe2441eca nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0xf3bb416e nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0xfcb86c01 nfc_alloc_skb +EXPORT_SYMBOL net/nfc/nfc 0xfd4e20c6 nfc_allocate_device +EXPORT_SYMBOL net/phonet/phonet 0x0a25d274 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x334ca8e0 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x390c8557 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xb50d011f pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xba79289d pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xc7ef10d5 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xcaa8efb7 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xeec77e06 pn_skb_send +EXPORT_SYMBOL net/rds/rds 0x1c9be661 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x052022bc rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x29809cdf rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2acba718 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x500537ff key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x593a68c5 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7d91837f rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8dae9bd0 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x90d21a2e rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xaf1e332e rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc632d650 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdc118af8 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xde46b746 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf6b82550 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf8557be2 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf8dfa330 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/sunrpc/sunrpc 0x727c01f2 svc_pool_stats_open +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xfa8113d0 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0xc7927ab0 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xf0f882f4 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x04d2c7fc cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0de50837 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x11489c55 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x118e1ae1 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x14b9d5f3 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x1e5f9f62 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x1f522fc2 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x1f8bf4a7 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x25813011 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x290d55a3 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x2d0db976 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x2deec9e2 cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x35d0ea93 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x3c564dd1 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x45cf2555 ieee802_11_parse_elems_crc +EXPORT_SYMBOL net/wireless/cfg80211 0x4874d154 cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x4d6a868c cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x4d807f87 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x4e379ae9 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x53869788 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x591db998 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x5f58df2c __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6a1185ae cfg80211_testmode_reply +EXPORT_SYMBOL net/wireless/cfg80211 0x6b63663e wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x6e32ee9d cfg80211_testmode_event +EXPORT_SYMBOL net/wireless/cfg80211 0x6efede74 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7242b246 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0x7839fdd2 cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x797f0eaa cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x7b708857 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8c278cec cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0x93b0af1d __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9a4f6fc0 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x9ada8053 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa566b784 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xa80119e2 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xab17b53e cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xaec29172 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xb6eb57c2 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xba5b6d92 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xbef78e49 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xbf2dd2da wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xcef69922 cfg80211_testmode_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xcf0a5426 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0xd018db88 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xd128f18e cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xd4dae7b0 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xd59e24d7 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xd6087a03 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xd60a80c8 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xd947a134 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xdb5f5fb2 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xded26806 cfg80211_send_unprot_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xef4c4bc5 cfg80211_testmode_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xf0e20617 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0xf2192464 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf596bad7 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xf6f77005 cfg80211_send_unprot_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x4bf38291 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x63005bed lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x76583a6c lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xa04aeba0 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xf895bcbe lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xfc426f10 lib80211_unregister_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x063bbec2 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x9764f6f9 snd_mixer_oss_ioctl_card +EXPORT_SYMBOL sound/core/seq/snd-seq 0x0a68cf09 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1e7e86f9 snd_seq_create_kernel_client +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 0x49b80f9a 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 0xab7eb554 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x1707c214 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc1e5e815 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x072d978b snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x13a17752 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2eed26bf snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x4d5ca523 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x592f6e9b snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd7c7afcc snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe60fb228 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xecbde43c snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x804e1289 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x00ee6381 snd_cards +EXPORT_SYMBOL sound/core/snd 0x022e80f6 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x023504dc snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x02f01c56 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x0c27a575 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x1278fbb1 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x15d8981c snd_unregister_oss_device +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 0x1c8daf68 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x23aac036 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x298189cc snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x2a2d5373 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x314bb0e1 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x3806d768 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3b0bff45 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x3c5614e8 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x43442ea5 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x4b885b42 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x4c843031 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x54579525 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x5bde80aa snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x64eb6b4c snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x65f7382a snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x6c0d587b snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x6dfb2a8e snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x84edf8d3 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x94b32340 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x988e4a95 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x9a28ea77 snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x9df1e6d6 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa467a2f4 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xa5906c08 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xa7b89adb snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xacc7f719 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb34b1fe8 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xb3ee773d snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xb9b7b4aa snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xbf878a76 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xc828e12f snd_component_add +EXPORT_SYMBOL sound/core/snd 0xcbacadd3 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xcc1fa005 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xcf8c5168 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xd084bae0 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xd51abe02 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xd8ef7d5c snd_device_register +EXPORT_SYMBOL sound/core/snd 0xde877403 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xe4e17736 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xf7cdf0c0 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xf8431a4d snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xf9df6ee6 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xfac455d0 snd_seq_root +EXPORT_SYMBOL sound/core/snd-hwdep 0x1cf21f96 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2cb91fbc snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3814a35c snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x7422459b snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xd49fedbc snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf68d2e6e snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x002bad92 snd_pcm_lib_readv +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 0x0f884693 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x13a1c1a5 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x19ed3802 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x1cde8c2b snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x2ae1cd8e snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x2af72c9a snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x304dd7a8 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x34294dec snd_pcm_lib_get_vmalloc_page +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 0x3b5c1085 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x3c8981f1 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x41cb41ab snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x43db50fc snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x50ed98fa snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x55926b4a snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x5a6a3cfe snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x5f6a53ad snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x60dbf986 snd_pcm_open_substream +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 0x68d163ba snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x6c02dd80 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x72554da7 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x75e2de1f snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x7c3aa8ab snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x835bffdc snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x8a705fc4 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x8e56ef87 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x91dd0884 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x9461f150 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x9aac5f17 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xae29c5f6 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xaee6517c snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc20991f2 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xcb6f4e70 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd3dab580 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xd6ef0e6c snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xed07819e snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xf090d306 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf3a1f6a0 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xf95d95b9 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xf9725b62 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xfe44b213 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0d2ded99 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0e9c0305 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x17fee87d snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x225725d0 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3a34eab1 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3b06bd1e snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x690688fa snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x74d1c9a7 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x77971f30 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7ffa4a58 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x85f4ebf7 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa0672c39 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa682eac5 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa98fe7e4 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc28b1c79 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf22f70c7 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf6a51805 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-timer 0x0ec2f89f snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x18823e31 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x39f640c5 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x40b26af5 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x4187eb6b snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x679533cf snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x71ed797b snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x78cf4a9c snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xaa84c1cd snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xb1d1f542 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xd47575ec snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xe25e8e7f snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xf195e0f0 snd_timer_interrupt +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 0xfbfc6cae snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1835b41b snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2d4f0f65 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4b4c4da2 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5e8ba63e snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb156e164 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbfeea999 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdfbd8e5c snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe8cd2074 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe9c14a93 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0d0a584f snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x214a0edd snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x303326fb snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3856992d snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5854f20e snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9269af79 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99995eb1 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9e696850 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd02380e8 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1561f9c0 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x16e7139a amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x21adc4ff fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2203f5ce iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2f0b75d1 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3abde9d5 amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3fd01a4c fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x46746d62 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x47d1739e amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5523f392 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7abcfe73 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7b98994c cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x88045d09 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8e969051 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa38f2359 amdtp_out_stream_set_rate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb7ee3e03 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xba181423 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbf0f4bf2 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc824be93 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc82959da fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdb916055 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdd74bc7a rcode_string +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe87758e1 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf29578ee cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf5a7c623 cmp_connection_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x2c3d592c snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x49099e62 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x721f89c2 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x99a3f4ed snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xac3faee0 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc92fd9e3 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x44762d7c snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5a5fe2a0 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x7cd2061f snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x849dca19 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe31e4d4e snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf4b645d2 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x2bb7a5c4 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x452797e0 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x8c8fec86 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x9493417f snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x1511ff59 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x8ef9ee92 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xa6539166 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xad4d6914 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x2cd341f0 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x4ce36309 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x509e998f snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa706fb2f snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb375d6df snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x16408442 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x74ba4240 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x8d1f2db4 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x96b5964e snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa68f6925 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa7e9945e snd_i2c_bus_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3561f1e5 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x414272d7 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4a9191ac snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6cb42f5f snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6e5d9c3e snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x991f6f17 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa20d3658 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xadc1fbf6 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xdab6fedd snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe6e3c5c7 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x0ca24413 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x1f61100d snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc2116fae snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x04630841 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x486e3cca snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4b58e18b snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x54e5adad snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x54ff34cd snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x67512f3f snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x68250096 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7ee89250 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x82b71b23 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x84549530 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa0f5ab55 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaf23d32a snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb59f8db4 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb9bd7d57 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbb314f52 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xec575bc0 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf316a7ab snd_ac97_update_power +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0d5c44d6 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3f8642ba snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x68cddf76 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x68eae721 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd70718d1 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe04b0c6c snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe6901b49 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf348f359 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf814327b snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xa6ae4792 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x2eaf3340 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xd66d05fa snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xe50d8a13 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x144ed9e1 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x169b420d oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x21ec9c79 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2bf612f8 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2fe409a0 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x48bf25ce oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5068c369 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x515e452c oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5606fbfc oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5e976024 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6528c8b9 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6dad2b88 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7b3589ae oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7d1d4688 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8dac217d oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa94e125e oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xeb3ce354 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xed522123 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xed7e7501 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf38ff6f8 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf480c975 oxygen_write_uart +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4b055b63 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x79a8d810 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7d75eefd snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xbb56d8c4 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xc5400c08 snd_trident_stop_voice +EXPORT_SYMBOL sound/soundcore 0x147a7c11 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x4faea742 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x8028dedf register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0x9ec42848 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xe0efa474 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xed6443ec sound_class +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x5d3219fc snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa74c82b4 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xd4188b0a snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe6d319f4 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe75a76bd snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe90bb854 snd_emux_register +EXPORT_SYMBOL sound/synth/snd-util-mem 0x081988e2 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x412d44db __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x50947d90 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9d82da23 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xa8757455 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbcfb29fd __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe6d24fff __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xfb4b27e3 snd_util_memhdr_free +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xeb99a8cb snd_usbmidi_create +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x000fb663 file_sb_list_del +EXPORT_SYMBOL vmlinux 0x001b244b input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x002de09c vfsmount_lock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x003413f6 set_device_ro +EXPORT_SYMBOL vmlinux 0x004dd919 register_cdrom +EXPORT_SYMBOL vmlinux 0x005a4975 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x006b0943 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00a38474 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x00b03267 pci_request_regions +EXPORT_SYMBOL vmlinux 0x00cdfefc bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x00d7d221 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x00e79b93 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x00f2c823 input_release_device +EXPORT_SYMBOL vmlinux 0x00f42699 files_lglock_global_unlock +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101ed11 security_path_mknod +EXPORT_SYMBOL vmlinux 0x0117eb55 inet_release +EXPORT_SYMBOL vmlinux 0x0122f95e _lv1_get_spe_irq_outlet +EXPORT_SYMBOL vmlinux 0x01496b2e read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x0149df1f scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x014e9ee3 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x017c2222 search_binary_handler +EXPORT_SYMBOL vmlinux 0x017fc977 mddev_congested +EXPORT_SYMBOL vmlinux 0x01879bba neigh_create +EXPORT_SYMBOL vmlinux 0x018d9919 _lv1_set_lpm_interrupt_mask +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x019e7765 __init_rwsem +EXPORT_SYMBOL vmlinux 0x01cfc054 macio_release_resource +EXPORT_SYMBOL vmlinux 0x01d276cf of_find_property +EXPORT_SYMBOL vmlinux 0x01dfb91a blk_stop_queue +EXPORT_SYMBOL vmlinux 0x020d18d7 _lv1_set_lpm_debug_bus_control +EXPORT_SYMBOL vmlinux 0x023a074a hvc_get_chars +EXPORT_SYMBOL vmlinux 0x0242fb71 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x024b3994 scsi_host_put +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x02672fc8 get_disk +EXPORT_SYMBOL vmlinux 0x027d5499 _lv1_did_update_interrupt_mask +EXPORT_SYMBOL vmlinux 0x028200ab of_dev_put +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02bdc072 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e455ff padata_do_parallel +EXPORT_SYMBOL vmlinux 0x02f0de30 pskb_copy +EXPORT_SYMBOL vmlinux 0x03050d70 posix_lock_file +EXPORT_SYMBOL vmlinux 0x030aedfd xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x03132d35 nf_reinject +EXPORT_SYMBOL vmlinux 0x031cff5d tcp_poll +EXPORT_SYMBOL vmlinux 0x031dc65e pasemi_dma_free_chan +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034f9e73 param_ops_byte +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x03632912 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038c7658 force_sig +EXPORT_SYMBOL vmlinux 0x03975d68 idr_find +EXPORT_SYMBOL vmlinux 0x03a43531 sock_no_connect +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03c2f92d phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x03d03eaa rtnl_notify +EXPORT_SYMBOL vmlinux 0x03d0db8a mach_pseries +EXPORT_SYMBOL vmlinux 0x03e73766 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x03ecbd18 of_device_alloc +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04074f48 ioremap +EXPORT_SYMBOL vmlinux 0x040a8c93 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x0417aa9b genl_register_family +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0440a533 _lv1_net_remove_multicast_address +EXPORT_SYMBOL vmlinux 0x045452db tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x046ffac6 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x0479aad4 input_close_device +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048d27cc hvcs_register_connection +EXPORT_SYMBOL vmlinux 0x04a24c6b journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x04abf8e8 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x04af2a9c ip_check_defrag +EXPORT_SYMBOL vmlinux 0x04dd7fd3 devm_iounmap +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x0504c38b d_validate +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x0540b32a cpu_core_map +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x054976d1 tty_port_put +EXPORT_SYMBOL vmlinux 0x05564f21 do_splice_to +EXPORT_SYMBOL vmlinux 0x055f6284 generic_make_request +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x057d03a9 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x0599d25b sg_miter_next +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05bbe154 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x05c7fe79 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x06333d99 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x0663b181 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0682b86f generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06cdb9d4 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x06d7d6ab inode_change_ok +EXPORT_SYMBOL vmlinux 0x06dd6234 __scm_destroy +EXPORT_SYMBOL vmlinux 0x06e0a22c dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x06fb719d sock_create_lite +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070b9992 file_update_time +EXPORT_SYMBOL vmlinux 0x07245bd8 netdev_alert +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07340894 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x0743dc8f fb_class +EXPORT_SYMBOL vmlinux 0x074e9213 down_killable +EXPORT_SYMBOL vmlinux 0x0777f123 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a71440 ilookup5 +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07abe844 dma_find_channel +EXPORT_SYMBOL vmlinux 0x07b0f695 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x07bfd6cb dqget +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07ef213a pasemi_dma_free_fun +EXPORT_SYMBOL vmlinux 0x07f3f2a6 set_binfmt +EXPORT_SYMBOL vmlinux 0x07f79d92 input_allocate_device +EXPORT_SYMBOL vmlinux 0x07f8ee15 _lv1_unmap_device_dma_region +EXPORT_SYMBOL vmlinux 0x08012e32 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x08145e33 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x08315cee of_node_get +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x083eb356 dm_register_target +EXPORT_SYMBOL vmlinux 0x086940ff neigh_lookup +EXPORT_SYMBOL vmlinux 0x08754022 misc_deregister +EXPORT_SYMBOL vmlinux 0x0887bcf4 mdiobus_write +EXPORT_SYMBOL vmlinux 0x08abf127 sock_no_listen +EXPORT_SYMBOL vmlinux 0x08eab5de macio_release_resources +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x08f4107f dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x0902b34a proto_register +EXPORT_SYMBOL vmlinux 0x09192d99 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x092cf8d0 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x096341c2 _lv1_connect_irq_plug_ext +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a6d520 deactivate_super +EXPORT_SYMBOL vmlinux 0x09c09bf6 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d6b20d blk_end_request_all +EXPORT_SYMBOL vmlinux 0x09ef857a ppc_md +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a395200 udp_proc_register +EXPORT_SYMBOL vmlinux 0x0a3d0644 cpu_online_mask +EXPORT_SYMBOL vmlinux 0x0a475f49 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x0a56de95 get_write_access +EXPORT_SYMBOL vmlinux 0x0a69b05b aio_put_req +EXPORT_SYMBOL vmlinux 0x0a7805a5 __mutex_init +EXPORT_SYMBOL vmlinux 0x0a7c53b7 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x0a8d9265 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x0a8f96ac proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x0a9f9ee4 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x0aacd352 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x0ab324dd security_inode_init_security +EXPORT_SYMBOL vmlinux 0x0ac089a5 new_inode +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0aeaa824 proto_unregister +EXPORT_SYMBOL vmlinux 0x0b01ca4c km_report +EXPORT_SYMBOL vmlinux 0x0b0369fa skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b15c6be twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x0b174181 machine_id +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2e1ec7 h_get_mpp +EXPORT_SYMBOL vmlinux 0x0b3e1c0c i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x0b585eff ip_options_compile +EXPORT_SYMBOL vmlinux 0x0b6944c6 open_exec +EXPORT_SYMBOL vmlinux 0x0b6be678 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x0b7086d9 param_get_short +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b75ea0b journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x0b805321 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x0b89fc71 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x0b8aa033 dm_io +EXPORT_SYMBOL vmlinux 0x0ba4c7d4 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bc87b40 kick_iocb +EXPORT_SYMBOL vmlinux 0x0bd0414c blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x0bf706e5 tty_vhangup +EXPORT_SYMBOL vmlinux 0x0c10bd0b pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x0c15a598 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x0c1ad162 _lv1_net_start_rx_dma +EXPORT_SYMBOL vmlinux 0x0c2083fd put_mnt_ns +EXPORT_SYMBOL vmlinux 0x0c48b4dc uart_register_driver +EXPORT_SYMBOL vmlinux 0x0c4b5354 follow_pfn +EXPORT_SYMBOL vmlinux 0x0c629755 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c84e409 bmap +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c952e98 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x0c9ebb2e netlink_dump_start +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0caf58f9 blk_run_queue +EXPORT_SYMBOL vmlinux 0x0cbd9d2f pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0x0cf13867 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x0d1842f1 dev_mc_init +EXPORT_SYMBOL vmlinux 0x0d2ffd60 bdi_register +EXPORT_SYMBOL vmlinux 0x0d3f3c5b cdev_init +EXPORT_SYMBOL vmlinux 0x0d4b3526 kill_fasync +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5e0805 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0defd261 __napi_schedule +EXPORT_SYMBOL vmlinux 0x0df0a577 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x0df2c2e0 posix_acl_create +EXPORT_SYMBOL vmlinux 0x0e33820e misc_register +EXPORT_SYMBOL vmlinux 0x0e3f58df elevator_change +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0e9e16e3 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x0ebf12f1 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x0ec0dbc2 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x0ece94e4 mac_find_mode +EXPORT_SYMBOL vmlinux 0x0ee2ae3f security_path_link +EXPORT_SYMBOL vmlinux 0x0ef7b03f inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x0f1d5db1 llc_sap_open +EXPORT_SYMBOL vmlinux 0x0f59f197 param_array_ops +EXPORT_SYMBOL vmlinux 0x0f67a342 dev_mc_del +EXPORT_SYMBOL vmlinux 0x0f6c5c16 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x0f7713df fsl_lbc_ctrl_dev +EXPORT_SYMBOL vmlinux 0x0f827cf0 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x0f84dff9 i2c_use_client +EXPORT_SYMBOL vmlinux 0x0f8649d8 module_layout +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb0e29f init_timer_key +EXPORT_SYMBOL vmlinux 0x0fc2ef46 security_inode_permission +EXPORT_SYMBOL vmlinux 0x0fd432e3 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x0fdf431b mii_check_media +EXPORT_SYMBOL vmlinux 0x0fee1990 sock_i_uid +EXPORT_SYMBOL vmlinux 0x100673a0 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x10197bc1 arp_tbl +EXPORT_SYMBOL vmlinux 0x101ef069 tty_port_init +EXPORT_SYMBOL vmlinux 0x104393e4 __get_user_pages +EXPORT_SYMBOL vmlinux 0x106d33e3 tcp_child_process +EXPORT_SYMBOL vmlinux 0x10756535 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x107ada0c should_remove_suid +EXPORT_SYMBOL vmlinux 0x10bb2e58 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x10c8bf72 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x10ccce99 kobject_set_name +EXPORT_SYMBOL vmlinux 0x10cf5508 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10dd065f unregister_console +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2eb76 vsnprintf +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112a9a36 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x113a48e8 sock_no_getname +EXPORT_SYMBOL vmlinux 0x11633870 param_set_ushort +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x1167d41a __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1171b635 _lv1_delete_lpm_event_bookmark +EXPORT_SYMBOL vmlinux 0x117e0514 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a09d67 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x11c23b09 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x11ce38dd freeze_super +EXPORT_SYMBOL vmlinux 0x11d62f34 macio_dev_get +EXPORT_SYMBOL vmlinux 0x11de243c max8925_reg_write +EXPORT_SYMBOL vmlinux 0x11e31981 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x11ed19d9 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x121f1286 tty_shutdown +EXPORT_SYMBOL vmlinux 0x1236901e thaw_bdev +EXPORT_SYMBOL vmlinux 0x124fe762 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x12695d0b elv_register_queue +EXPORT_SYMBOL vmlinux 0x127e18dd pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12c1b552 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x12ca6601 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x12cb6622 _lv1_map_device_dma_region +EXPORT_SYMBOL vmlinux 0x12e0e920 sock_create_kern +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x132772c8 pipe_lock +EXPORT_SYMBOL vmlinux 0x137b4745 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x13affbda percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x13b053ae fget_raw +EXPORT_SYMBOL vmlinux 0x13b86fd7 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x13bb586f pci_save_state +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e38f5c up_read +EXPORT_SYMBOL vmlinux 0x13e4875e of_match_device +EXPORT_SYMBOL vmlinux 0x13ec80f3 param_set_short +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f53da6 CMO_PageSize +EXPORT_SYMBOL vmlinux 0x13ff897b __scm_send +EXPORT_SYMBOL vmlinux 0x1419e653 macio_request_resource +EXPORT_SYMBOL vmlinux 0x141fb624 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x141fe5fd pasemi_read_iob_reg +EXPORT_SYMBOL vmlinux 0x147fd629 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x148ae0f6 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x149b7cc4 bio_alloc +EXPORT_SYMBOL vmlinux 0x14bb5e86 d_move +EXPORT_SYMBOL vmlinux 0x14e11da3 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x14e7ca7c alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x14f40f53 dev_emerg +EXPORT_SYMBOL vmlinux 0x151592c4 _lv1_invalidate_htab_entries +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15864b03 flex_array_get +EXPORT_SYMBOL vmlinux 0x15a3052c serio_interrupt +EXPORT_SYMBOL vmlinux 0x15b392b0 journal_start_commit +EXPORT_SYMBOL vmlinux 0x15b7fc3f udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x15cc20af uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x15ef733c napi_complete +EXPORT_SYMBOL vmlinux 0x16007198 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x1627ed72 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x163b36f2 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x164f754c __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x165c2dea sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x1699ea33 dentry_open +EXPORT_SYMBOL vmlinux 0x16b9d114 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x16c42197 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x16c8f189 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x16e08c51 padata_start +EXPORT_SYMBOL vmlinux 0x16fd8495 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x17133c88 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x172520c1 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x1743414f __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x179a1533 journal_errno +EXPORT_SYMBOL vmlinux 0x179aff0d scsi_print_command +EXPORT_SYMBOL vmlinux 0x17a49292 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x17ae6bc4 nf_log_register +EXPORT_SYMBOL vmlinux 0x17c204c2 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x17cb8c79 _lv1_read_htab_entries +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e28473 fsl_upm_run_pattern +EXPORT_SYMBOL vmlinux 0x17e2c844 mutex_trylock +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x182f50af _lv1_open_device +EXPORT_SYMBOL vmlinux 0x18323c02 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x183917c0 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184ba3f0 note_scsi_host +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x184fa607 ata_port_printk +EXPORT_SYMBOL vmlinux 0x1854001b thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x185b7dd6 _lv1_modify_repository_node_value +EXPORT_SYMBOL vmlinux 0x187090ea fb_show_logo +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18bdcc1d inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x18c98205 _lv1_destruct_virtual_address_space +EXPORT_SYMBOL vmlinux 0x18cd8b51 register_netdev +EXPORT_SYMBOL vmlinux 0x18e32216 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x18efc46b bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x192813f6 I_BDEV +EXPORT_SYMBOL vmlinux 0x193292b5 mdiobus_register +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x19502554 mach_pasemi +EXPORT_SYMBOL vmlinux 0x19779aad prepare_binprm +EXPORT_SYMBOL vmlinux 0x197a0690 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x19933fc6 revert_creds +EXPORT_SYMBOL vmlinux 0x1998cf75 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x199ec4fb arch_spin_unlock_wait +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b32a10 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c968d1 pasemi_dma_start_chan +EXPORT_SYMBOL vmlinux 0x19da71bf napi_gro_frags +EXPORT_SYMBOL vmlinux 0x19e0f4bc filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x1a03dbd7 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x1a042d1f ida_simple_get +EXPORT_SYMBOL vmlinux 0x1a0f272d serio_open +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a2ba4c6 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x1a2f6945 __next_cpu +EXPORT_SYMBOL vmlinux 0x1a44611c netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x1a578511 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x1a865119 skb_unlink +EXPORT_SYMBOL vmlinux 0x1a88a030 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x1a898c3e write_inode_now +EXPORT_SYMBOL vmlinux 0x1a91663d pasemi_dma_free_buf +EXPORT_SYMBOL vmlinux 0x1aa49514 ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x1aa8c8ba dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x1ac153fb pci_get_class +EXPORT_SYMBOL vmlinux 0x1acb5d40 dscr_default +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1af22144 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x1afc56cc genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b23b2d3 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b873dbc udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1b9fd4dc tcf_hash_check +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bd38cab pci_enable_obff +EXPORT_SYMBOL vmlinux 0x1bdf5878 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x1be17adf sk_wait_data +EXPORT_SYMBOL vmlinux 0x1bfec830 __iounmap_at +EXPORT_SYMBOL vmlinux 0x1c08fc47 mb_cache_create +EXPORT_SYMBOL vmlinux 0x1c0ee817 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c1d9cbe rfkill_alloc +EXPORT_SYMBOL vmlinux 0x1c200a7d pasemi_dma_stop_chan +EXPORT_SYMBOL vmlinux 0x1c232b60 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x1c2903d5 netif_device_detach +EXPORT_SYMBOL vmlinux 0x1c4dab93 _lv1_connect_irq_plug +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1cb18fbb dev_uc_del +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd602b5 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x1ce1c87a compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x1ce6067b pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x1ceaa23a mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x1d04bd02 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x1d201d76 elevator_exit +EXPORT_SYMBOL vmlinux 0x1d2e1543 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d3865da param_get_invbool +EXPORT_SYMBOL vmlinux 0x1d40bf1e bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x1d4750bc _lv1_stop_lpm +EXPORT_SYMBOL vmlinux 0x1d531932 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x1daee28a percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x1dbf5446 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc4d647 dm_put_device +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1ddb9881 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x1ddc15f3 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x1df7c598 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e2d2430 udp_disconnect +EXPORT_SYMBOL vmlinux 0x1e33ad98 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x1e5ca28f __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x1e677242 of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6fe6f1 idr_init +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ead616d __serio_register_driver +EXPORT_SYMBOL vmlinux 0x1ec5650a __cleancache_flush_fs +EXPORT_SYMBOL vmlinux 0x1ede8333 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x1ef1f75f posix_acl_valid +EXPORT_SYMBOL vmlinux 0x1f1ba9f8 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x1f3ac9c7 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x1f7db3e9 fb_get_mode +EXPORT_SYMBOL vmlinux 0x1f88e729 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x1fbecff5 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fdd378d sock_no_poll +EXPORT_SYMBOL vmlinux 0x1fe7b4ab pasemi_write_dma_reg +EXPORT_SYMBOL vmlinux 0x1fec9705 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200d77e1 ll_rw_block +EXPORT_SYMBOL vmlinux 0x201494ee _lv1_net_set_interrupt_mask +EXPORT_SYMBOL vmlinux 0x201e30d1 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x2033fb87 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20c0c989 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x20c2ed19 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x20c81fae blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x20cddc7e kset_register +EXPORT_SYMBOL vmlinux 0x20f0af76 submit_bio +EXPORT_SYMBOL vmlinux 0x20f40467 thaw_super +EXPORT_SYMBOL vmlinux 0x21041013 journal_restart +EXPORT_SYMBOL vmlinux 0x2119ffcd security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x213603bf pasemi_dma_free_ring +EXPORT_SYMBOL vmlinux 0x21388f39 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x213aa059 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x213f4e9a make_EII_client +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2173e9c8 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x218f5913 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x21e47979 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x21e5d17c blk_requeue_request +EXPORT_SYMBOL vmlinux 0x21f678b9 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x220f05b5 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x221cbf2c ps2_command +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222ed0c2 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x2235c081 vio_unregister_driver +EXPORT_SYMBOL vmlinux 0x225d9f4a register_md_personality +EXPORT_SYMBOL vmlinux 0x225ebee6 _lv1_destruct_lpm +EXPORT_SYMBOL vmlinux 0x2274de2c of_create_pci_dev +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2278e94b slhc_remember +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x229275d8 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x2296c27e alloc_disk +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22bb432d i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x22d704d2 pci_iounmap +EXPORT_SYMBOL vmlinux 0x22d8782b dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x22dd2155 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x22eaefbb agp_copy_info +EXPORT_SYMBOL vmlinux 0x2300e70b seq_write +EXPORT_SYMBOL vmlinux 0x230c3722 idr_for_each +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x236b1456 sock_no_accept +EXPORT_SYMBOL vmlinux 0x236fc0a4 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x2383eadc compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x23887388 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x238e9408 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x238ef80c sk_receive_skb +EXPORT_SYMBOL vmlinux 0x239441c9 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23bf11fd generic_permission +EXPORT_SYMBOL vmlinux 0x23cfcfc5 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x23eccbdb kthread_stop +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x240c9802 inode_permission +EXPORT_SYMBOL vmlinux 0x241c45d4 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x24207605 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x2425b8f0 block_commit_write +EXPORT_SYMBOL vmlinux 0x2427531b fb_validate_mode +EXPORT_SYMBOL vmlinux 0x244a2411 __first_cpu +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x249cfeb8 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x24cc4ae8 do_sync_read +EXPORT_SYMBOL vmlinux 0x24cfd438 _lv1_copy_lpm_trace_buffer +EXPORT_SYMBOL vmlinux 0x24d49685 console_stop +EXPORT_SYMBOL vmlinux 0x24f23083 dquot_enable +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x2577bc5e ps3_dma_region_free +EXPORT_SYMBOL vmlinux 0x257bc636 dcache_readdir +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x2587ed99 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x259f042c tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x25ad9ca9 scsi_add_device +EXPORT_SYMBOL vmlinux 0x25b6b8f7 _lv1_set_spe_transition_notifier +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x26225153 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x262770a6 fsync_bdev +EXPORT_SYMBOL vmlinux 0x26337152 get_io_context +EXPORT_SYMBOL vmlinux 0x26383e64 sock_rfree +EXPORT_SYMBOL vmlinux 0x26399f90 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x26454da3 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x26b760c4 slhc_init +EXPORT_SYMBOL vmlinux 0x26c738b5 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x26e4ca44 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26e8083e init_net +EXPORT_SYMBOL vmlinux 0x26e9b2f1 bdgrab +EXPORT_SYMBOL vmlinux 0x27031577 generic_read_dir +EXPORT_SYMBOL vmlinux 0x270be22c free_task +EXPORT_SYMBOL vmlinux 0x271425a6 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x27153fb1 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x27277915 vm_stat +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x275c0bbd __pagevec_release +EXPORT_SYMBOL vmlinux 0x275c96d5 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x27646df3 start_thread +EXPORT_SYMBOL vmlinux 0x27708e38 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x27728ebf __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27a8fc5d d_splice_alias +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27db4e8c skb_put +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27e2ae50 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x280f58ed journal_wipe +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x282a53c1 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x28343bad scnprintf +EXPORT_SYMBOL vmlinux 0x284195ff security_d_instantiate +EXPORT_SYMBOL vmlinux 0x2845ba63 udplite_prot +EXPORT_SYMBOL vmlinux 0x2850c93b pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x285e09e0 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x287a0ae2 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x289f820e wireless_send_event +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28ae3d12 __put_cred +EXPORT_SYMBOL vmlinux 0x28ec6ba7 tcp_close +EXPORT_SYMBOL vmlinux 0x28f041c9 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x28f4e54f pci_get_device +EXPORT_SYMBOL vmlinux 0x28fcfb0c input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x2925a54a mmc_erase +EXPORT_SYMBOL vmlinux 0x2932040d may_umount +EXPORT_SYMBOL vmlinux 0x2945b9fe neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x294d904c simple_rmdir +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2960019b eeh_check_failure +EXPORT_SYMBOL vmlinux 0x297e8a4a __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x29a05400 vfs_write +EXPORT_SYMBOL vmlinux 0x29a17de6 lookup_one_len +EXPORT_SYMBOL vmlinux 0x29a1fdc7 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x29b96a8a inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x29d73d03 ida_init +EXPORT_SYMBOL vmlinux 0x29daeabf tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x29e698d3 posix_test_lock +EXPORT_SYMBOL vmlinux 0x29e96487 seq_putc +EXPORT_SYMBOL vmlinux 0x29f39381 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x29fea303 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x2a04e9db phy_start_aneg +EXPORT_SYMBOL vmlinux 0x2a11ed14 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x2a2a7f9a seq_escape +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a592ee1 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x2a651f93 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2a944ebb dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x2a997152 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x2b01b957 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b352540 empty_aops +EXPORT_SYMBOL vmlinux 0x2b4da566 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x2b52df4e scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x2b572bd1 take_over_console +EXPORT_SYMBOL vmlinux 0x2b59d32a wake_up_process +EXPORT_SYMBOL vmlinux 0x2b5e6c69 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x2b627030 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x2b7216c4 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x2b7e3ee8 mutex_lock +EXPORT_SYMBOL vmlinux 0x2b8b2cb8 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x2b8eb1af iterate_mounts +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2ba7863c sock_init_data +EXPORT_SYMBOL vmlinux 0x2bc686b2 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x2bdc06cb bio_split +EXPORT_SYMBOL vmlinux 0x2c0741f1 kfree_skb +EXPORT_SYMBOL vmlinux 0x2c1cd4a4 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2c209856 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x2c20ae42 soft_cursor +EXPORT_SYMBOL vmlinux 0x2c231c04 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c36318f nf_setsockopt +EXPORT_SYMBOL vmlinux 0x2c3e0397 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x2c4ab257 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x2c4c7997 _lv1_construct_lpm +EXPORT_SYMBOL vmlinux 0x2c5ea4d5 sk_free +EXPORT_SYMBOL vmlinux 0x2c78ec65 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x2c7b1fca down_timeout +EXPORT_SYMBOL vmlinux 0x2c8ffb5f input_flush_device +EXPORT_SYMBOL vmlinux 0x2c919c63 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2ca70fab pci_disable_msix +EXPORT_SYMBOL vmlinux 0x2cab97c2 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x2cfadf49 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x2d01be39 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0x2d06e62c input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d21ce97 generic_setxattr +EXPORT_SYMBOL vmlinux 0x2d2e56f6 eth_header_parse +EXPORT_SYMBOL vmlinux 0x2d3dcf8f skb_clone +EXPORT_SYMBOL vmlinux 0x2d3ef00f padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x2d431e50 phy_disconnect +EXPORT_SYMBOL vmlinux 0x2d4ae68a bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d799623 mmc_resume_host +EXPORT_SYMBOL vmlinux 0x2d7d2767 _lv1_set_lpm_group_control +EXPORT_SYMBOL vmlinux 0x2d8796cf path_is_under +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d8ca33e kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x2d92e3d0 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x2da4c9b0 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x2db4c99b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x2dc3438b jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x2e141a3c agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x2e1bef92 eeh_subsystem_enabled +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e4e2343 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x2e59fc7a ab8500_gpadc_get +EXPORT_SYMBOL vmlinux 0x2e93495e _lv1_write_htab_entry +EXPORT_SYMBOL vmlinux 0x2ea142da notify_change +EXPORT_SYMBOL vmlinux 0x2eb06c9f __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x2eb58fbb pci_write_vpd +EXPORT_SYMBOL vmlinux 0x2ebfc864 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x2edb622e __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x2ee1f956 idr_pre_get +EXPORT_SYMBOL vmlinux 0x2ee4337f smu_queue_cmd +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef4727d agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f080db0 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x2f0aaef8 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x2f0d5061 bdi_unregister +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f28b408 journal_init_inode +EXPORT_SYMBOL vmlinux 0x2f57a01f pci_claim_resource +EXPORT_SYMBOL vmlinux 0x2f635079 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x2f6f3f19 truncate_setsize +EXPORT_SYMBOL vmlinux 0x2f7c6748 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb61c97 neigh_table_init +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fcf740d idr_get_new_above +EXPORT_SYMBOL vmlinux 0x2fd5d310 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x2fe87d76 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x3012362e ata_dev_printk +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x302328bc scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x3032758b __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x303c78d3 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x3054167e dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x30599707 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x30706aa9 security_file_permission +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30810281 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30bf899e mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30d70fa9 of_get_pci_address +EXPORT_SYMBOL vmlinux 0x3129ae08 single_open +EXPORT_SYMBOL vmlinux 0x312cfaf2 _lv1_disable_logical_spe +EXPORT_SYMBOL vmlinux 0x312e8c61 input_grab_device +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3147ec3e mdiobus_free +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x315db1fc dentry_unhash +EXPORT_SYMBOL vmlinux 0x318bea4b pci_find_capability +EXPORT_SYMBOL vmlinux 0x318e66ea security_task_getsecid +EXPORT_SYMBOL vmlinux 0x31b7f300 _lv1_set_lpm_signal +EXPORT_SYMBOL vmlinux 0x31cd509a _lv1_net_control +EXPORT_SYMBOL vmlinux 0x31d4fe7d do_splice_from +EXPORT_SYMBOL vmlinux 0x31ecbe44 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x323a5443 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x3240c65b files_lglock_global_lock_online +EXPORT_SYMBOL vmlinux 0x324d0c40 cdrom_release +EXPORT_SYMBOL vmlinux 0x32647971 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x327c0e71 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x328df565 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x32987a53 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x32b910e0 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x32e2df5b i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x331227fa __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x3343d3c7 scsi_device_get +EXPORT_SYMBOL vmlinux 0x335d4bea tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x3365d0cc bdi_init +EXPORT_SYMBOL vmlinux 0x3389bf8b sock_wake_async +EXPORT_SYMBOL vmlinux 0x33936c1a noop_llseek +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33bf6f67 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x33ced35c vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x340ea46e inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x342816ff is_container_init +EXPORT_SYMBOL vmlinux 0x34295a8c thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0x343f26aa sock_map_fd +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x345643e7 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x346c4ded rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x346f7531 mmc_do_release_host +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x3472fb0d request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x34942172 set_security_override +EXPORT_SYMBOL vmlinux 0x349b60d2 blk_put_queue +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x350b7184 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x35420a3b abort_creds +EXPORT_SYMBOL vmlinux 0x355b4163 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x3567308e path_put +EXPORT_SYMBOL vmlinux 0x357c90d2 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x358e67f5 key_unlink +EXPORT_SYMBOL vmlinux 0x35906599 page_put_link +EXPORT_SYMBOL vmlinux 0x35a3db5a bdev_read_only +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35ca8cfa dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x35d08d73 find_inode_number +EXPORT_SYMBOL vmlinux 0x35e09649 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x361743b2 fput +EXPORT_SYMBOL vmlinux 0x364fae91 get_phy_id +EXPORT_SYMBOL vmlinux 0x3669344b km_policy_expired +EXPORT_SYMBOL vmlinux 0x36793af7 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x3684ddfa inet_register_protosw +EXPORT_SYMBOL vmlinux 0x3686e01c mmc_start_req +EXPORT_SYMBOL vmlinux 0x36947958 inet6_bind +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36d14797 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x36d96c10 netpoll_setup +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36e8a08e jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x37060eff dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x3706fba3 unload_nls +EXPORT_SYMBOL vmlinux 0x371902e9 _lv1_get_lpm_interrupt_status +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3756ead9 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x379949bb splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x379f2c7d textsearch_register +EXPORT_SYMBOL vmlinux 0x379f5837 param_set_invbool +EXPORT_SYMBOL vmlinux 0x37b60db5 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37ea921e vfsmount_lock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x3808e6de thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x38122de7 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x382777ab _lv1_gpu_context_allocate +EXPORT_SYMBOL vmlinux 0x383bb868 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x384d0059 serio_close +EXPORT_SYMBOL vmlinux 0x38571e07 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x38599702 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x386972d1 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x388959b5 _lv1_net_stop_tx_dma +EXPORT_SYMBOL vmlinux 0x3889d2e0 pci_set_master +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38ab8b43 tcp_prot +EXPORT_SYMBOL vmlinux 0x38aedee3 thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38bf5e20 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x38c5ab32 of_match_node +EXPORT_SYMBOL vmlinux 0x38f67d16 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x38fa4d5c jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x3934b71e dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x393aaa08 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x39529760 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x39734451 redraw_screen +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39c5d37f nla_append +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39ebabe3 dquot_operations +EXPORT_SYMBOL vmlinux 0x39fa6643 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x39faa81f pcim_iounmap +EXPORT_SYMBOL vmlinux 0x3a159f0f inet_addr_type +EXPORT_SYMBOL vmlinux 0x3a16494b of_dev_get +EXPORT_SYMBOL vmlinux 0x3a211b41 phy_device_free +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a296aaa of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x3a43ce89 __blk_end_request +EXPORT_SYMBOL vmlinux 0x3a4ad0a1 netdev_info +EXPORT_SYMBOL vmlinux 0x3a8da74d sock_update_classid +EXPORT_SYMBOL vmlinux 0x3a9887a1 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa95b28 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x3ae4dc3f filemap_fault +EXPORT_SYMBOL vmlinux 0x3aec4ec5 set_disk_ro +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b31dfe0 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x3b3ebd91 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x3b42494d blk_end_request +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b7149bf ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x3b7accfd do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x3b7f6a2f gen_pool_create +EXPORT_SYMBOL vmlinux 0x3b801070 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x3b878ddd skb_find_text +EXPORT_SYMBOL vmlinux 0x3b9d601d vio_find_node +EXPORT_SYMBOL vmlinux 0x3bbd1a9e blk_execute_rq +EXPORT_SYMBOL vmlinux 0x3bc01b49 bio_copy_user +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bf715bb dev_notice +EXPORT_SYMBOL vmlinux 0x3bfb6487 pci_match_id +EXPORT_SYMBOL vmlinux 0x3c0686c6 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x3c0b4eee __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x3c15a5fe __breadahead +EXPORT_SYMBOL vmlinux 0x3c341225 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x3c441caf vm_map_ram +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9c29e8 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb9489b __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x3cbf3d09 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x3cce8e90 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d205114 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x3d25814d tcp_disconnect +EXPORT_SYMBOL vmlinux 0x3d54ac01 _lv1_net_stop_rx_dma +EXPORT_SYMBOL vmlinux 0x3d57b456 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x3d5816c4 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d93ee61 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x3da8e42e dm_get_device +EXPORT_SYMBOL vmlinux 0x3db710c7 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3ddee688 __kfree_skb +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e06cb22 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x3e077581 mii_link_ok +EXPORT_SYMBOL vmlinux 0x3e08574e __lock_page +EXPORT_SYMBOL vmlinux 0x3e0e9023 param_set_long +EXPORT_SYMBOL vmlinux 0x3e18691e generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x3e286dca _lv1_get_rtc +EXPORT_SYMBOL vmlinux 0x3e3dad1b init_task +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e638825 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x3e723c50 __napi_complete +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e882bef journal_set_features +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ec8886f param_ops_int +EXPORT_SYMBOL vmlinux 0x3ed411f6 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee9a1c6 journal_forget +EXPORT_SYMBOL vmlinux 0x3eee6381 sk_run_filter +EXPORT_SYMBOL vmlinux 0x3eef7082 filemap_flush +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f06a656 _lv1_construct_event_receive_port +EXPORT_SYMBOL vmlinux 0x3f07d258 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x3f1a6729 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x3f2489e9 sock_create +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f6ba898 clear_user_page +EXPORT_SYMBOL vmlinux 0x3f6e4b61 netlink_set_err +EXPORT_SYMBOL vmlinux 0x3f7bea22 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x3f7e9301 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x3f81a2be proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x3f9058ba commit_creds +EXPORT_SYMBOL vmlinux 0x3f988bdf ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x3f98a00d generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x3f9e2bcf sock_sendmsg +EXPORT_SYMBOL vmlinux 0x3f9e46b2 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x3fa03a97 memset +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fbfd6ed _lv1_gpu_open +EXPORT_SYMBOL vmlinux 0x3fc6902e generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x3fd4bf75 ns_capable +EXPORT_SYMBOL vmlinux 0x3fd6d664 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x3fd8e609 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL vmlinux 0x3fe213df register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4029d238 param_set_copystring +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x4052f2f8 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4077e6d4 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x407c9e58 d_add_ci +EXPORT_SYMBOL vmlinux 0x408483fc tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x4087bd71 mutex_unlock +EXPORT_SYMBOL vmlinux 0x408b0540 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x40a0b3fe inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40a9b767 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x40b4eb78 __block_write_begin +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d07caa security_path_mkdir +EXPORT_SYMBOL vmlinux 0x40e084e0 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x40e52772 dev_close +EXPORT_SYMBOL vmlinux 0x40f9290e vfs_mkdir +EXPORT_SYMBOL vmlinux 0x410290a7 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4109ec02 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x410ec1f6 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x4120c506 padata_alloc +EXPORT_SYMBOL vmlinux 0x41232ad1 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x413459a2 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x41361807 _lv1_get_logical_ppe_id +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4159c38f ioremap_wc +EXPORT_SYMBOL vmlinux 0x416e5096 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x41779437 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41c046cb __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x41d79227 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x41dbf4de _lv1_start_lpm +EXPORT_SYMBOL vmlinux 0x41e2f6aa twl6040_irq_exit +EXPORT_SYMBOL vmlinux 0x41ef7095 km_state_expired +EXPORT_SYMBOL vmlinux 0x41f1dc99 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x42052724 udp_seq_open +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x4224e9b9 bio_map_user +EXPORT_SYMBOL vmlinux 0x424d8e7a pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x4274ba55 locks_init_lock +EXPORT_SYMBOL vmlinux 0x42836f2e cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x428ba35f tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x429ee881 register_filesystem +EXPORT_SYMBOL vmlinux 0x42c25df0 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x42e516d8 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43052704 paca +EXPORT_SYMBOL vmlinux 0x43126472 write_cache_pages +EXPORT_SYMBOL vmlinux 0x431536bd pci_enable_device +EXPORT_SYMBOL vmlinux 0x431f5f0b bio_map_kern +EXPORT_SYMBOL vmlinux 0x432034f8 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x4322a01d free_buffer_head +EXPORT_SYMBOL vmlinux 0x43355918 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x4361d16e user_path_create +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43720814 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x4373330d compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x437427f6 md_integrity_register +EXPORT_SYMBOL vmlinux 0x4377a60d of_platform_device_create +EXPORT_SYMBOL vmlinux 0x438cec40 journal_init_dev +EXPORT_SYMBOL vmlinux 0x439256e7 backlight_force_update +EXPORT_SYMBOL vmlinux 0x439a0602 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43a0458b blk_start_plug +EXPORT_SYMBOL vmlinux 0x43bb54d5 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x43c39fdb pcibus_to_node +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x43f491c7 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x43fb751b vfs_statfs +EXPORT_SYMBOL vmlinux 0x43fdbba0 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x44402b6f param_get_ulong +EXPORT_SYMBOL vmlinux 0x449f9598 blk_put_request +EXPORT_SYMBOL vmlinux 0x44b1765a scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x45011a85 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x452d13ed tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x452ebe86 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4564459b _lv1_set_virtual_uart_param +EXPORT_SYMBOL vmlinux 0x4568b0ca sk_common_release +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x458de1bf con_is_bound +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45a94229 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x45bd9efd dm_table_put +EXPORT_SYMBOL vmlinux 0x45cfe80b pasemi_dma_free_flag +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x4612c59d down_trylock +EXPORT_SYMBOL vmlinux 0x461b6b4c insert_inode_locked +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x46214106 files_lglock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x462d8f00 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x46548208 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x4660d853 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x466abf34 dump_write +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x466e0116 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x4685a5c2 of_parse_phandles_with_args +EXPORT_SYMBOL vmlinux 0x46b67693 hex2bin +EXPORT_SYMBOL vmlinux 0x46d12956 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x46d2f286 neigh_for_each +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x46ff3342 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x470d7c94 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x474087d2 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x476df900 phy_stop +EXPORT_SYMBOL vmlinux 0x47784eaa thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x477ecec6 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x47885c9e sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b15687 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47cdec66 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x47e9be46 rt6_lookup +EXPORT_SYMBOL vmlinux 0x48000553 mempool_create_node +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x480ab42a __next_cpu_nr +EXPORT_SYMBOL vmlinux 0x480ca74f save_mount_options +EXPORT_SYMBOL vmlinux 0x4815f22b _lv1_gpu_attribute +EXPORT_SYMBOL vmlinux 0x482972c0 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x483fedbc seq_puts +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x48468b21 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x487c2f1c i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x4882c250 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x488aff28 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x489ac7a3 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x48a0bfd5 netdev_emerg +EXPORT_SYMBOL vmlinux 0x48c09935 simple_write_end +EXPORT_SYMBOL vmlinux 0x48e49c66 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x48fea4a2 generic_write_sync +EXPORT_SYMBOL vmlinux 0x48ffc1e4 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x4908ce74 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x49397442 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x4939ff90 bdget_disk +EXPORT_SYMBOL vmlinux 0x494c19bd __sk_dst_check +EXPORT_SYMBOL vmlinux 0x495ec6eb pasemi_dma_alloc_buf +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49976481 pci_bus_type +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b88ce2 do_splice_direct +EXPORT_SYMBOL vmlinux 0x49fd4451 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x4a0dc52d iget5_locked +EXPORT_SYMBOL vmlinux 0x4a17901d agp_find_bridge +EXPORT_SYMBOL vmlinux 0x4a2542e5 pci_set_ltr +EXPORT_SYMBOL vmlinux 0x4a2d0956 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a75002d dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x4a7f40e9 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x4a8311ce jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x4a84b206 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x4a9da55a __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4ac1ab84 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x4ac64da4 _lv1_select_virtual_address_space +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4addf822 vmtruncate +EXPORT_SYMBOL vmlinux 0x4aeeb48b scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x4af126af ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b32e1cf of_register_spi_devices +EXPORT_SYMBOL vmlinux 0x4b3cb349 _lv1_destruct_io_irq_outlet +EXPORT_SYMBOL vmlinux 0x4b451375 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x4b541be5 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x4b5814ef kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b62e0c8 task_ns_capable +EXPORT_SYMBOL vmlinux 0x4b6e0e01 dquot_acquire +EXPORT_SYMBOL vmlinux 0x4b6fcddc _lv1_set_spe_interrupt_mask +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4bbbb9aa nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x4bbe3c97 kill_bdev +EXPORT_SYMBOL vmlinux 0x4bdac931 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x4bed99b3 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x4bee48a6 pci_restore_state +EXPORT_SYMBOL vmlinux 0x4bf8326f bio_clone +EXPORT_SYMBOL vmlinux 0x4c0ea849 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c295722 bio_endio +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4cb18038 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cc8634a agp_backend_release +EXPORT_SYMBOL vmlinux 0x4cd46bf4 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x4cfc95cd bio_pair_release +EXPORT_SYMBOL vmlinux 0x4cfd0c72 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x4d1d747d otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x4d3c1ce6 scsi_register +EXPORT_SYMBOL vmlinux 0x4d4ac18a generic_write_checks +EXPORT_SYMBOL vmlinux 0x4d6a4e14 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x4d840b02 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4da7c931 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x4db74b3e dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dd5c374 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfed71c flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x4e00900f elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e2b90b3 filp_close +EXPORT_SYMBOL vmlinux 0x4e3278ae skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ea5ec4a n_tty_compat_ioctl_helper +EXPORT_SYMBOL vmlinux 0x4eb30b67 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f1e394c dev_mc_flush +EXPORT_SYMBOL vmlinux 0x4f26b10f mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f4adf1e jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x4f4b65e9 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x4f664db6 _lv1_insert_htab_entry +EXPORT_SYMBOL vmlinux 0x4f6cfa6d agp_create_memory +EXPORT_SYMBOL vmlinux 0x4f72f478 key_put +EXPORT_SYMBOL vmlinux 0x4f86f807 skb_store_bits +EXPORT_SYMBOL vmlinux 0x4f9c9aa8 inode_init_owner +EXPORT_SYMBOL vmlinux 0x4fbc07c4 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x4fc5c226 vfs_stat +EXPORT_SYMBOL vmlinux 0x4fd3ef0d skb_queue_tail +EXPORT_SYMBOL vmlinux 0x4fdcd13e tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe1f765 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x4fe87898 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x503b5ac5 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x50446d9a phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x504945f6 load_nls_default +EXPORT_SYMBOL vmlinux 0x5062eb09 nobh_writepage +EXPORT_SYMBOL vmlinux 0x5064d770 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x50720c5f snprintf +EXPORT_SYMBOL vmlinux 0x50844e71 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x50988a6d vfs_rename +EXPORT_SYMBOL vmlinux 0x50ab4c6d files_lglock_global_lock +EXPORT_SYMBOL vmlinux 0x50db4840 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x50f9a103 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x510c2535 xz_dec_run +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x512ef83e xfrm_state_update +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51c62620 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x51c737a3 mpage_writepage +EXPORT_SYMBOL vmlinux 0x51ce5ad3 files_lglock_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e38d4c in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x523d3eb3 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x5248bab3 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x52679d57 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x52768bb8 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x52860120 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x5295f485 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x52adfc94 __destroy_inode +EXPORT_SYMBOL vmlinux 0x52b5d356 __bio_clone +EXPORT_SYMBOL vmlinux 0x52bd4e9b generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x52cb8395 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52dabb8d scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x52daf9e5 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x52db9687 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x52e3fa05 _lv1_allocate_memory +EXPORT_SYMBOL vmlinux 0x52f2f567 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x52ffaff3 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x53047c1e tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x5307ced5 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530ed6f3 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x531429f2 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5339f5f8 _lv1_read_virtual_uart +EXPORT_SYMBOL vmlinux 0x534bdf3e sg_miter_start +EXPORT_SYMBOL vmlinux 0x534c641f sys_copyarea +EXPORT_SYMBOL vmlinux 0x536d329b hvcs_get_partner_info +EXPORT_SYMBOL vmlinux 0x53751913 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5383e628 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x5397f2d3 posix_acl_init +EXPORT_SYMBOL vmlinux 0x53a345e2 fb_set_var +EXPORT_SYMBOL vmlinux 0x53c91c70 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x53e52993 do_SAK +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53ecb7d8 dquot_file_open +EXPORT_SYMBOL vmlinux 0x53f04062 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x540c2532 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x5412c7c7 up +EXPORT_SYMBOL vmlinux 0x541e8e3e clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x54225f8c __cleancache_flush_page +EXPORT_SYMBOL vmlinux 0x542508d3 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x549387ca get_phy_device +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54d06b0c __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x54d837a0 dst_discard +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54fd4365 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x5515f88e scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x55196a26 skb_checksum +EXPORT_SYMBOL vmlinux 0x551ab784 do_munmap +EXPORT_SYMBOL vmlinux 0x551efedb generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x5526e929 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x552a05ac dst_release +EXPORT_SYMBOL vmlinux 0x5535790f jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x553c340a mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x553f2884 km_new_mapping +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x554a4d11 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x55678b4b bsearch +EXPORT_SYMBOL vmlinux 0x5568027c pci_read_irq_line +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x556fb46e mnt_unpin +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x557b3dd8 _lv1_gpu_close +EXPORT_SYMBOL vmlinux 0x5583ab71 genphy_update_link +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55adffad simple_write_begin +EXPORT_SYMBOL vmlinux 0x55cfe76e pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x55f05b6a mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x55f43fac pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5602881e destroy_EII_client +EXPORT_SYMBOL vmlinux 0x5612ff09 __break_lease +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5637be8d eth_header_cache +EXPORT_SYMBOL vmlinux 0x5642410c bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x56424e2e sock_register +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x566b46ae pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x56700409 get_fs_type +EXPORT_SYMBOL vmlinux 0x56727ad8 generic_readlink +EXPORT_SYMBOL vmlinux 0x568804ee _lv1_destruct_event_receive_port +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56a70cd8 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x56bdb3e1 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56ddd997 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x5706b46b dev_uc_init +EXPORT_SYMBOL vmlinux 0x571a701a __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x5759289f mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5785384a flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x57901837 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x579bab50 _lv1_gpu_memory_free +EXPORT_SYMBOL vmlinux 0x57a137c7 register_gifconf +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57c4d664 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57de76c6 skb_recycle +EXPORT_SYMBOL vmlinux 0x57e3015f read_cache_pages +EXPORT_SYMBOL vmlinux 0x57fb3db1 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x5828bd83 pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0x5831e237 __seq_open_private +EXPORT_SYMBOL vmlinux 0x58375e09 try_to_release_page +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5846992d of_get_mac_address +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x58c5e71c iunique +EXPORT_SYMBOL vmlinux 0x58e2c820 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x58f4ea79 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x5908e75c security_file_mmap +EXPORT_SYMBOL vmlinux 0x592de841 dst_destroy +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x59362e1a end_page_writeback +EXPORT_SYMBOL vmlinux 0x593fffe3 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59536d6e dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x595af00a __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x597ff29a __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x5987b0cf cont_write_begin +EXPORT_SYMBOL vmlinux 0x5987bcb0 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x598c69c7 bio_put +EXPORT_SYMBOL vmlinux 0x598fcf6a i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x59936a91 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59b570c9 netdev_set_master +EXPORT_SYMBOL vmlinux 0x59d30829 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59da2b65 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x59e70f93 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x59eb08fd nf_register_hook +EXPORT_SYMBOL vmlinux 0x59fd255b of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x5a025f7b arch_local_irq_restore +EXPORT_SYMBOL vmlinux 0x5a1e2d72 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x5a1f8d6d blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a3ee0c0 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x5a468373 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a93f493 del_gendisk +EXPORT_SYMBOL vmlinux 0x5b04e642 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x5b07317c __register_chrdev +EXPORT_SYMBOL vmlinux 0x5b218384 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x5b29224e bio_copy_kern +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b40aa3e fb_pan_display +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b6f4b69 __elv_add_request +EXPORT_SYMBOL vmlinux 0x5b78218a block_truncate_page +EXPORT_SYMBOL vmlinux 0x5b809795 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5bb89435 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x5bb9a678 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x5bf6a88d mapping_tagged +EXPORT_SYMBOL vmlinux 0x5c0222a4 cdev_alloc +EXPORT_SYMBOL vmlinux 0x5c2a8d6b sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x5c35ea9f find_or_create_page +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c3db119 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x5c57750b nf_ct_attach +EXPORT_SYMBOL vmlinux 0x5c64429d ifla_policy +EXPORT_SYMBOL vmlinux 0x5c67bf74 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x5c74274b dev_activate +EXPORT_SYMBOL vmlinux 0x5c952f0d xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5ccc9045 _lv1_close_device +EXPORT_SYMBOL vmlinux 0x5cda80e6 __sock_create +EXPORT_SYMBOL vmlinux 0x5cf30e10 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x5d0ad5a1 __bforget +EXPORT_SYMBOL vmlinux 0x5d10e7b5 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x5d1f430d jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x5d2312bc pci_domain_nr +EXPORT_SYMBOL vmlinux 0x5d2a4656 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x5d2c4d76 seq_printf +EXPORT_SYMBOL vmlinux 0x5d331d47 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x5d386970 fb_find_mode +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6bdce1 flex_array_alloc +EXPORT_SYMBOL vmlinux 0x5d7473c7 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x5d7bd614 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove +EXPORT_SYMBOL vmlinux 0x5dd130e2 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x5dd51e6d jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x5de10c74 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x5ded5438 tcf_register_action +EXPORT_SYMBOL vmlinux 0x5e086820 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x5e227fa0 generic_fillattr +EXPORT_SYMBOL vmlinux 0x5e2b49a2 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e529b19 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x5e6947f7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x5e774b0c dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed17089 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee2adbc give_up_console +EXPORT_SYMBOL vmlinux 0x5ee96b12 simple_empty +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f14e83c __register_binfmt +EXPORT_SYMBOL vmlinux 0x5f22af48 tcp_seq_open +EXPORT_SYMBOL vmlinux 0x5f29d26a bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x5f2bf601 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x5f38ff21 vfs_create +EXPORT_SYMBOL vmlinux 0x5f49c60a bdi_destroy +EXPORT_SYMBOL vmlinux 0x5f72370c single_release +EXPORT_SYMBOL vmlinux 0x5f7a79d6 elv_add_request +EXPORT_SYMBOL vmlinux 0x5f811ff8 simple_release_fs +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5f9e5de0 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fb21c84 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x5fcb4055 account_page_writeback +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x60047305 neigh_update +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600d04eb swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6038e770 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x603f3756 inet6_release +EXPORT_SYMBOL vmlinux 0x6056a391 default_llseek +EXPORT_SYMBOL vmlinux 0x6067a146 memcpy +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x606e012c pci_iomap +EXPORT_SYMBOL vmlinux 0x60703eba uart_update_timeout +EXPORT_SYMBOL vmlinux 0x6086fae9 rwsem_wake +EXPORT_SYMBOL vmlinux 0x609d6edc dget_parent +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60ad6b0b register_exec_domain +EXPORT_SYMBOL vmlinux 0x60c93ebc lookup_hash +EXPORT_SYMBOL vmlinux 0x60da08c7 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x60e52b68 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x60f777cc scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x611311b9 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x6121b32a scsi_scan_target +EXPORT_SYMBOL vmlinux 0x61229b10 node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61319b65 journal_clear_err +EXPORT_SYMBOL vmlinux 0x61333677 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x613392f5 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x61423590 giveup_altivec +EXPORT_SYMBOL vmlinux 0x61a0cce9 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x61a1b924 dcb_setapp +EXPORT_SYMBOL vmlinux 0x61a4487c _lv1_gpu_device_unmap +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61dcdcd3 _lv1_pause +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x61f551f5 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x61f70a55 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x62404e8e __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x62538167 slhc_toss +EXPORT_SYMBOL vmlinux 0x6258ff7a panic_notifier_list +EXPORT_SYMBOL vmlinux 0x625ad891 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627f9c4b nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x629b3920 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x62c2c1e9 key_alloc +EXPORT_SYMBOL vmlinux 0x62d93fab d_alloc_name +EXPORT_SYMBOL vmlinux 0x630880cd netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x6332cc1a audit_log_start +EXPORT_SYMBOL vmlinux 0x6336744a __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x6337dfce ab8500_gpadc_convert +EXPORT_SYMBOL vmlinux 0x634d93a8 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x63534b3a unregister_8022_client +EXPORT_SYMBOL vmlinux 0x6360d639 cpu_all_bits +EXPORT_SYMBOL vmlinux 0x63874b70 iget_locked +EXPORT_SYMBOL vmlinux 0x638acb88 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x638c172e vfs_fstat +EXPORT_SYMBOL vmlinux 0x63a02234 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x63dd5e17 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x63e7bd12 __cputime_usec_factor +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f75920 _lv1_construct_virtual_address_space +EXPORT_SYMBOL vmlinux 0x63f9c93f ida_get_new_above +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x643eaec8 param_get_string +EXPORT_SYMBOL vmlinux 0x644e0eaf seq_bitmap +EXPORT_SYMBOL vmlinux 0x645b31db tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x64669b2b kdb_current_task +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64b90994 release_sock +EXPORT_SYMBOL vmlinux 0x64c6bb93 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x64ce53cb ppp_input +EXPORT_SYMBOL vmlinux 0x64db2f10 dev_set_group +EXPORT_SYMBOL vmlinux 0x64fc8ab8 phy_detach +EXPORT_SYMBOL vmlinux 0x650a12f9 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65291cff timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0x6538f9b1 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65c93101 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x66308d24 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x6632e5d7 blk_init_tags +EXPORT_SYMBOL vmlinux 0x663ccbdb generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x665620fd udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x6656c46f ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x666a1bcb llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x6697c59d genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x669f308c ps2_end_command +EXPORT_SYMBOL vmlinux 0x66a1c1d2 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x66a256b3 ida_pre_get +EXPORT_SYMBOL vmlinux 0x66a854fa do_truncate +EXPORT_SYMBOL vmlinux 0x66aa0a61 pci_dev_get +EXPORT_SYMBOL vmlinux 0x66ad1cb3 _lv1_set_lpm_general_control +EXPORT_SYMBOL vmlinux 0x66b41408 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x66b976fc sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x66c762ee bdget +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66d0ee54 vfsmount_lock_global_unlock +EXPORT_SYMBOL vmlinux 0x66dc386d fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x66e01367 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x66fe98e8 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x6705a631 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x6714028d task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x672717b3 dev_deactivate +EXPORT_SYMBOL vmlinux 0x672c8cf5 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6763e3fe wait_iff_congested +EXPORT_SYMBOL vmlinux 0x6780533c request_key +EXPORT_SYMBOL vmlinux 0x679fd91a pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x67a1eebe kern_unmount +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c8ad06 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x67f1b2fa xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x67f31298 block_write_end +EXPORT_SYMBOL vmlinux 0x6813e050 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x6849a15f flex_array_clear +EXPORT_SYMBOL vmlinux 0x6856e5b1 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x6857941a mmc_release_host +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68926394 input_inject_event +EXPORT_SYMBOL vmlinux 0x68bf2bf9 km_state_notify +EXPORT_SYMBOL vmlinux 0x68c89105 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x68ce3e10 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x68d2a22b vio_unregister_device +EXPORT_SYMBOL vmlinux 0x68dfec88 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x68e1aac0 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x68e1ef51 smu_present +EXPORT_SYMBOL vmlinux 0x68f875ea d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x68febfa5 lock_fb_info +EXPORT_SYMBOL vmlinux 0x690966ae dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x690e925e __free_pages +EXPORT_SYMBOL vmlinux 0x6964ed06 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x696e3f53 md_write_start +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69789023 netif_rx +EXPORT_SYMBOL vmlinux 0x698d53e4 mount_single +EXPORT_SYMBOL vmlinux 0x6994bf14 __quota_error +EXPORT_SYMBOL vmlinux 0x699cab37 security_path_truncate +EXPORT_SYMBOL vmlinux 0x699ccbf8 _lv1_deconfigure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0x69a02d90 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a27590 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69c55ce4 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f39d33 register_netdevice +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a282f1a abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x6a3017ac ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x6a5ab47c mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a64462f bdevname +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a9b6bf1 eth_header +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad020c9 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x6b0aefd0 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x6b122893 journal_ack_err +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b3773fd mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x6b387694 _lv1_end_of_interrupt_ext +EXPORT_SYMBOL vmlinux 0x6b44ac59 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x6b589a6e _lv1_net_add_multicast_address +EXPORT_SYMBOL vmlinux 0x6b5dfe73 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x6b6f0c4b _lv1_create_repository_node +EXPORT_SYMBOL vmlinux 0x6b71463f blk_fetch_request +EXPORT_SYMBOL vmlinux 0x6b89de12 send_sig +EXPORT_SYMBOL vmlinux 0x6b8d3979 seq_read +EXPORT_SYMBOL vmlinux 0x6ba9ab5c jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be89fc7 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x6c170076 of_parse_phandle +EXPORT_SYMBOL vmlinux 0x6c1964f0 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x6c252fba phy_attach +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c665691 flex_array_shrink +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c888615 inet_select_addr +EXPORT_SYMBOL vmlinux 0x6c8950f8 unlock_super +EXPORT_SYMBOL vmlinux 0x6c98ce62 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x6ca202e3 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x6cec0d8b tty_unregister_device +EXPORT_SYMBOL vmlinux 0x6cfffd0a truncate_pagecache +EXPORT_SYMBOL vmlinux 0x6d0abd0b ip6_xmit +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d1743eb _lv1_get_total_execution_time +EXPORT_SYMBOL vmlinux 0x6d19edc7 find_vma +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d3a9299 mach_powermac +EXPORT_SYMBOL vmlinux 0x6d3e8002 arp_find +EXPORT_SYMBOL vmlinux 0x6d5638bf loop_register_transfer +EXPORT_SYMBOL vmlinux 0x6d648e6e pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x6d653faa md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d763f93 proc_dostring +EXPORT_SYMBOL vmlinux 0x6d8199b7 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x6d8f3ec3 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x6d9c5f68 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x6da63659 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x6da8dc7f dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6db5c6aa skb_copy_bits +EXPORT_SYMBOL vmlinux 0x6db64382 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x6de74b49 proc_create_data +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df897db skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x6dfe9993 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x6e0614f8 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x6e06424a proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x6e1a9baa of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x6e1ad38b keyring_search +EXPORT_SYMBOL vmlinux 0x6e410b38 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x6e52a986 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x6e646df7 generic_setlease +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e8a5f77 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x6e92f37d setattr_copy +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6f0ee0d6 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x6f29a9b9 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x6f5ef93d memchr_inv +EXPORT_SYMBOL vmlinux 0x6f725a88 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x6f7fe93e ether_setup +EXPORT_SYMBOL vmlinux 0x6f8ef9ec bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x6f920e4e scsi_register_driver +EXPORT_SYMBOL vmlinux 0x6f9539ea inode_add_bytes +EXPORT_SYMBOL vmlinux 0x6fa331ed _lv1_construct_io_irq_outlet +EXPORT_SYMBOL vmlinux 0x6fad3dd9 vga_tryget +EXPORT_SYMBOL vmlinux 0x6fb48f14 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6ff13dbf mach_maple +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70037974 sget +EXPORT_SYMBOL vmlinux 0x700601c3 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x701699b2 _lv1_set_spe_privilege_state_area_1_register +EXPORT_SYMBOL vmlinux 0x702c6359 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x703b999e ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x7049b77d __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x704c4365 __cputime_sec_factor +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705b1872 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x707f66ec dev_warn +EXPORT_SYMBOL vmlinux 0x709a91eb ___pskb_trim +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c83123 proc_symlink +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70f0692b agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x70f0f7fa blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x70f43b71 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x7103c791 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x71085687 cad_pid +EXPORT_SYMBOL vmlinux 0x710f18fc dev_addr_init +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7137ecfc ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x7151b3f4 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x7164fa9d bio_free +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71b4cc46 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x71bd7492 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x71fe9fac inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x721563a5 scsi_device_put +EXPORT_SYMBOL vmlinux 0x721b5ef2 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x72207ee9 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x7234eafb otg_state_string +EXPORT_SYMBOL vmlinux 0x7241b481 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x72639059 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x7268f4ee inet_bind +EXPORT_SYMBOL vmlinux 0x727b3726 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x729b4a83 _lv1_get_spe_all_interrupt_statuses +EXPORT_SYMBOL vmlinux 0x72a69a05 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x72aa82c6 param_ops_charp +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72c98139 __arch_hweight64 +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f5f0d8 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x72f686aa kernel_read +EXPORT_SYMBOL vmlinux 0x72ff1d48 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x73051873 register_quota_format +EXPORT_SYMBOL vmlinux 0x730ff363 param_set_uint +EXPORT_SYMBOL vmlinux 0x7313c45e vfs_readdir +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x731a747a pci_io_base +EXPORT_SYMBOL vmlinux 0x732b7833 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x732e0f40 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x73376751 alloc_file +EXPORT_SYMBOL vmlinux 0x733822d9 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x734b6ad8 netdev_crit +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x7366db2d add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x736bc2f9 block_write_begin +EXPORT_SYMBOL vmlinux 0x736c79dc param_get_byte +EXPORT_SYMBOL vmlinux 0x73710a3e dqstats +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x73a903c4 vfsmount_lock_local_lock +EXPORT_SYMBOL vmlinux 0x73b992dc idr_remove_all +EXPORT_SYMBOL vmlinux 0x7404d061 dev_addr_del +EXPORT_SYMBOL vmlinux 0x74126633 skb_pad +EXPORT_SYMBOL vmlinux 0x742a7e0b xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x744b7b94 skb_split +EXPORT_SYMBOL vmlinux 0x745489fc unbind_con_driver +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x7478d86a dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x74833742 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74fc432d ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x74fddb04 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x74feb17b scsi_remove_device +EXPORT_SYMBOL vmlinux 0x751b2247 param_get_bool +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x75394ed0 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x754bbf20 unregister_nls +EXPORT_SYMBOL vmlinux 0x7556b8d6 set_blocksize +EXPORT_SYMBOL vmlinux 0x755e5ae2 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x756c786e _lv1_connect_interrupt_event_receive_port +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x75754995 _lv1_storage_check_async_status +EXPORT_SYMBOL vmlinux 0x7589e227 kern_path +EXPORT_SYMBOL vmlinux 0x75985854 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x759bd538 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x75ac0197 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75db7f70 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x75e4f5aa pasemi_read_mac_reg +EXPORT_SYMBOL vmlinux 0x75f00260 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x761cc8e7 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x76207fe3 dma_set_mask +EXPORT_SYMBOL vmlinux 0x7631319c ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x763b6d90 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x764c0bb4 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x764e2224 _lv1_disconnect_irq_plug_ext +EXPORT_SYMBOL vmlinux 0x7675be1e seq_open +EXPORT_SYMBOL vmlinux 0x769b25d2 _lv1_get_version_info +EXPORT_SYMBOL vmlinux 0x76a23b3c bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x76b6f8fc vio_enable_interrupts +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76db121a lro_receive_frags +EXPORT_SYMBOL vmlinux 0x76e0a654 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x77019224 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x77144936 _lv1_disconnect_irq_plug +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x77270ac9 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x772ca63b ipv4_specific +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77414ca3 pci_release_region +EXPORT_SYMBOL vmlinux 0x7743dbf4 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x776d7161 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x7796807a pci_disable_ido +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a4bd02 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x77a96a0b names_cachep +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c93119 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x77d78057 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x77dd9d23 register_snap_client +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e4302e put_page +EXPORT_SYMBOL vmlinux 0x77e64bee vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77eccd3d alloc_disk_node +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x7820afb7 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x7830b04f hvc_put_chars +EXPORT_SYMBOL vmlinux 0x783bbb98 dns_query +EXPORT_SYMBOL vmlinux 0x78691815 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x788e943d __ps2_command +EXPORT_SYMBOL vmlinux 0x78900ca3 llc_add_pack +EXPORT_SYMBOL vmlinux 0x78969750 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x789a17f7 _lv1_destruct_logical_spe +EXPORT_SYMBOL vmlinux 0x78aacf8f mark_info_dirty +EXPORT_SYMBOL vmlinux 0x78b921cc neigh_table_clear +EXPORT_SYMBOL vmlinux 0x78b9ed4e scsi_free_command +EXPORT_SYMBOL vmlinux 0x78dc2d3e swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x78dc7dea scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e909a6 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x78ed3e5c __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x79015100 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x7934d050 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x794bbb51 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x794da7cc blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79909f07 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x799f9644 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aeb2ea netdev_state_change +EXPORT_SYMBOL vmlinux 0x79b12a66 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x79d31e05 twl6040_power +EXPORT_SYMBOL vmlinux 0x79e2028e __nla_reserve +EXPORT_SYMBOL vmlinux 0x7a04f736 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x7a1390f7 param_set_bool +EXPORT_SYMBOL vmlinux 0x7a184f71 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a50a315 files_lglock_global_unlock_online +EXPORT_SYMBOL vmlinux 0x7a5458da mdiobus_read +EXPORT_SYMBOL vmlinux 0x7a9a6bdd __brelse +EXPORT_SYMBOL vmlinux 0x7a9afbbf md_error +EXPORT_SYMBOL vmlinux 0x7aa6890a pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x7aa9e259 _lv1_map_htab +EXPORT_SYMBOL vmlinux 0x7acef29c jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7afba5c9 input_unregister_device +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b0636ce bio_phys_segments +EXPORT_SYMBOL vmlinux 0x7b070e85 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x7b418f5b jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x7b49f2b7 dst_alloc +EXPORT_SYMBOL vmlinux 0x7b70f4ec datagram_poll +EXPORT_SYMBOL vmlinux 0x7b718228 ida_destroy +EXPORT_SYMBOL vmlinux 0x7b74906d journal_stop +EXPORT_SYMBOL vmlinux 0x7b836946 agp_enable +EXPORT_SYMBOL vmlinux 0x7b8c5e33 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7ba2051e inet_accept +EXPORT_SYMBOL vmlinux 0x7ba840dd input_register_handle +EXPORT_SYMBOL vmlinux 0x7bcab89a __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x7bd99490 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x7bdc89de pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x7be48e77 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x7bf69086 mount_nodev +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c004629 fb_blank +EXPORT_SYMBOL vmlinux 0x7c00746b i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7c27156c rtas_online_cpus_mask +EXPORT_SYMBOL vmlinux 0x7c37ebfa jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x7c3dbaac kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c700aa7 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c91048c pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7c947831 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x7c94c18e security_path_rmdir +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread +EXPORT_SYMBOL vmlinux 0x7ca825be xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7ccfba05 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x7cdaee2d inode_init_once +EXPORT_SYMBOL vmlinux 0x7ce0ae7c param_get_long +EXPORT_SYMBOL vmlinux 0x7ce2e45a alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x7d0db7f7 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d17e925 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x7d2f5981 kobject_del +EXPORT_SYMBOL vmlinux 0x7d3633b8 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x7d58b52d mmc_remove_host +EXPORT_SYMBOL vmlinux 0x7d5bba10 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x7d6f3640 skb_copy +EXPORT_SYMBOL vmlinux 0x7d771966 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x7d85d4c9 ata_print_version +EXPORT_SYMBOL vmlinux 0x7d87a19f ip_getsockopt +EXPORT_SYMBOL vmlinux 0x7d888ba7 __bread +EXPORT_SYMBOL vmlinux 0x7d9a46c7 kobject_get +EXPORT_SYMBOL vmlinux 0x7dbe7bbd proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dd4e88b ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e1f4a88 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x7e2f3c13 vmap +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e4d0d67 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x7e589a20 set_page_dirty +EXPORT_SYMBOL vmlinux 0x7e692dd4 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x7e7858c7 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x7e87227e slhc_compress +EXPORT_SYMBOL vmlinux 0x7e8df57e xfrm_register_type +EXPORT_SYMBOL vmlinux 0x7e8e2014 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x7eb412b4 elv_rb_find +EXPORT_SYMBOL vmlinux 0x7eb74208 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x7eb7dbec lock_rename +EXPORT_SYMBOL vmlinux 0x7ebe5a88 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ed83259 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x7ee98f81 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x7ef2be46 genphy_resume +EXPORT_SYMBOL vmlinux 0x7efe4b56 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2a21b6 mount_bdev +EXPORT_SYMBOL vmlinux 0x7f2a78a8 inet6_getname +EXPORT_SYMBOL vmlinux 0x7f2f933b swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x7f310aa3 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x7f3436e4 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x7f37ba49 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x7f6cea2d block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x7f6fbe23 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x7f7f3318 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x7f83856a unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x7f863149 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x7f9f8841 idr_remove +EXPORT_SYMBOL vmlinux 0x7ff34ced bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x7ff5d402 kill_anon_super +EXPORT_SYMBOL vmlinux 0x80038e98 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x805485ab __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x80606c69 page_symlink +EXPORT_SYMBOL vmlinux 0x806b8d50 skb_dequeue +EXPORT_SYMBOL vmlinux 0x80a2fecb tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x80cc0082 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x80f9809f scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x810b3618 param_ops_string +EXPORT_SYMBOL vmlinux 0x81147db5 blk_get_request +EXPORT_SYMBOL vmlinux 0x811cd96f scsi_register_interface +EXPORT_SYMBOL vmlinux 0x8132e5a2 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x816bf5dd tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x816d3531 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x818adb9e __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81aeffd1 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81ccd88e vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x81cff456 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x81d905bf tcp_splice_read +EXPORT_SYMBOL vmlinux 0x81d9f7f2 _lv1_put_iopte +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81f8596e vfs_lstat +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x82488614 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x824b3784 ip6_route_output +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b79a1f pci_read_vpd +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x83145bfd dev_driver_string +EXPORT_SYMBOL vmlinux 0x83245ab8 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x83301066 lookup_bdev +EXPORT_SYMBOL vmlinux 0x83613865 write_one_page +EXPORT_SYMBOL vmlinux 0x8363488d fb_set_suspend +EXPORT_SYMBOL vmlinux 0x836ef043 dev_err +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8380a5b0 dev_printk +EXPORT_SYMBOL vmlinux 0x8384a2c5 tty_unlock +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83acdbb1 security_path_unlink +EXPORT_SYMBOL vmlinux 0x83ca489a input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x83cd4942 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x83d3f5b0 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x84247448 gen_pool_free +EXPORT_SYMBOL vmlinux 0x84255ca7 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x8436f8e3 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x8443f6de unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x845124e0 ps3_mm_phys_to_lpar +EXPORT_SYMBOL vmlinux 0x846bcc01 dm_table_get +EXPORT_SYMBOL vmlinux 0x846d0556 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x8484e026 flush_old_exec +EXPORT_SYMBOL vmlinux 0x8495896a blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x84968a4b of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x849fe807 csum_and_copy_from_user +EXPORT_SYMBOL vmlinux 0x84a13ac4 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x84a7266a poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84f6fb2c udp_poll +EXPORT_SYMBOL vmlinux 0x8511f177 vm_event_states +EXPORT_SYMBOL vmlinux 0x851ddbb1 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x8533c997 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8571cb5c inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x8576f59d pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x8597eb47 plpar_hcall +EXPORT_SYMBOL vmlinux 0x85a714f9 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85b8e4be __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x85ba1b4f prepare_creds +EXPORT_SYMBOL vmlinux 0x85c106e8 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85f8029c mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x862267fc pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x8622c9cf inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8665f8db vio_register_device_node +EXPORT_SYMBOL vmlinux 0x866ce7e4 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x8682f200 console_start +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a12e46 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x86a1ddbb ps2_begin_command +EXPORT_SYMBOL vmlinux 0x86b61eee mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x86bc1c35 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x86c9d0f4 skb_push +EXPORT_SYMBOL vmlinux 0x86d3ac33 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x86d8f628 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86de8b6a key_revoke +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8707edb4 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x8731b1a5 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x873a53ea __arch_hweight8 +EXPORT_SYMBOL vmlinux 0x873c94b2 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x8752a694 pci_ltr_supported +EXPORT_SYMBOL vmlinux 0x8756e6eb kthread_bind +EXPORT_SYMBOL vmlinux 0x876ba3df find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x877c1d5d d_alloc_root +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87aecfdd pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x87b37ac4 journal_destroy +EXPORT_SYMBOL vmlinux 0x87da1d42 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x880da1b1 _lv1_get_logical_partition_id +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x882de49b proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x8833bc7e __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88381e90 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x88759ef4 journal_create +EXPORT_SYMBOL vmlinux 0x8875d572 vfs_llseek +EXPORT_SYMBOL vmlinux 0x88993460 skb_make_writable +EXPORT_SYMBOL vmlinux 0x889b621a dev_get_flags +EXPORT_SYMBOL vmlinux 0x88a118d2 writeback_inodes_sb_nr_if_idle +EXPORT_SYMBOL vmlinux 0x88aaddf4 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x88b44713 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x88c2dcfb mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x88e46164 journal_abort +EXPORT_SYMBOL vmlinux 0x88e84a4d backlight_device_register +EXPORT_SYMBOL vmlinux 0x88e941a6 set_create_files_as +EXPORT_SYMBOL vmlinux 0x88ef3200 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x89189219 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x8920f9f6 scsi_execute +EXPORT_SYMBOL vmlinux 0x89403093 tty_register_device +EXPORT_SYMBOL vmlinux 0x89408ed4 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x895577b0 numa_cpu_lookup_table +EXPORT_SYMBOL vmlinux 0x896f7819 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x897d2718 load_nls +EXPORT_SYMBOL vmlinux 0x897f061d downgrade_write +EXPORT_SYMBOL vmlinux 0x899d229f n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b65931 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x89c434f0 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x89c5a8be smu_get_sdb_partition +EXPORT_SYMBOL vmlinux 0x89d05119 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89d8ce74 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x89da4432 of_iomap +EXPORT_SYMBOL vmlinux 0x89e3c987 __netdev_printk +EXPORT_SYMBOL vmlinux 0x8a21a1b1 of_device_unregister +EXPORT_SYMBOL vmlinux 0x8a29b69d locks_copy_lock +EXPORT_SYMBOL vmlinux 0x8a35c9e8 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x8a364ff3 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x8a3bf8aa dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x8a456c8e key_validate +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a5357a6 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x8a71f94d eth_type_trans +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a98de3c netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9cef2a _lv1_allocate_device_dma_region +EXPORT_SYMBOL vmlinux 0x8ab65cd3 key_type_keyring +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b260bb0 journal_start +EXPORT_SYMBOL vmlinux 0x8b271750 macio_register_driver +EXPORT_SYMBOL vmlinux 0x8b299303 mount_pseudo +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b3d812c netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x8b6539c0 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b81a631 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x8b82a34b blk_rq_init +EXPORT_SYMBOL vmlinux 0x8b8589c7 pci_pme_active +EXPORT_SYMBOL vmlinux 0x8bac70f8 blk_init_queue +EXPORT_SYMBOL vmlinux 0x8bc3d5d1 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x8bd75510 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x8bf2ae1f fsl_lbc_addr +EXPORT_SYMBOL vmlinux 0x8bf36fec nf_getsockopt +EXPORT_SYMBOL vmlinux 0x8bfad72f twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x8bfcd4bf dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x8c00ba83 sk_alloc +EXPORT_SYMBOL vmlinux 0x8c10b765 giveup_vsx +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c7a3757 of_get_named_gpio_flags +EXPORT_SYMBOL vmlinux 0x8c8d79c0 _lv1_gpu_context_iomap +EXPORT_SYMBOL vmlinux 0x8cb206d9 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x8cb7310f jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8ce72c8d input_register_device +EXPORT_SYMBOL vmlinux 0x8d06f28b override_creds +EXPORT_SYMBOL vmlinux 0x8d0a1736 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x8d212f2f tty_port_hangup +EXPORT_SYMBOL vmlinux 0x8d246843 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x8d27b418 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x8d89edde pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x8d944cbb copy_in_user +EXPORT_SYMBOL vmlinux 0x8da4ce4b rtnl_unicast +EXPORT_SYMBOL vmlinux 0x8dad8f40 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x8dc47ad4 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8de23f2e tr_type_trans +EXPORT_SYMBOL vmlinux 0x8de2fbc5 _lv1_get_virtual_uart_param +EXPORT_SYMBOL vmlinux 0x8dedbaf0 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e152537 d_clear_need_lookup +EXPORT_SYMBOL vmlinux 0x8e2a8362 netlink_unicast +EXPORT_SYMBOL vmlinux 0x8e50c2fb follow_up +EXPORT_SYMBOL vmlinux 0x8e555738 param_get_uint +EXPORT_SYMBOL vmlinux 0x8e748eff rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x8e8b0208 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8eca3fab sock_no_mmap +EXPORT_SYMBOL vmlinux 0x8ecfa56f twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ee8472a sync_blockdev +EXPORT_SYMBOL vmlinux 0x8eea1bc9 smu_poll +EXPORT_SYMBOL vmlinux 0x8f100179 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x8f18aabd vfs_read +EXPORT_SYMBOL vmlinux 0x8f39d2f9 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x8f3f318e splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f636d23 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x8f775cc0 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8f86d621 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x8f896a5f inet_frag_kill +EXPORT_SYMBOL vmlinux 0x8f988f9b mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x8faf6a57 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x8fbb37ca ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x8fc0c9fc kern_path_create +EXPORT_SYMBOL vmlinux 0x8fc7f839 param_set_charp +EXPORT_SYMBOL vmlinux 0x8fcac780 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ff66782 param_get_ushort +EXPORT_SYMBOL vmlinux 0x90204b0b pci_dev_driver +EXPORT_SYMBOL vmlinux 0x902741a9 path_get +EXPORT_SYMBOL vmlinux 0x903299f2 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x9033585f current_fs_time +EXPORT_SYMBOL vmlinux 0x903a5087 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x9040d47e _dev_info +EXPORT_SYMBOL vmlinux 0x90477217 vfs_symlink +EXPORT_SYMBOL vmlinux 0x90927782 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x909e6363 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x90b91d55 dma_direct_ops +EXPORT_SYMBOL vmlinux 0x90ca5bcc simple_unlink +EXPORT_SYMBOL vmlinux 0x90d01147 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x90ef2b68 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x911c2701 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x91201cef _lv1_enable_logical_spe +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x912f4020 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x91524eba set_bh_page +EXPORT_SYMBOL vmlinux 0x9155f98f inode_init_always +EXPORT_SYMBOL vmlinux 0x9157e507 ps3_dma_region_create +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91606432 block_read_full_page +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x9194a284 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91c4feca _lv1_unmap_htab +EXPORT_SYMBOL vmlinux 0x9203f8e5 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x9210a381 padata_do_serial +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923c54cf idr_destroy +EXPORT_SYMBOL vmlinux 0x923cffa3 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x92439695 skb_trim +EXPORT_SYMBOL vmlinux 0x92512857 freeze_bdev +EXPORT_SYMBOL vmlinux 0x926d1f37 blkdev_get +EXPORT_SYMBOL vmlinux 0x927c1d05 stop_tty +EXPORT_SYMBOL vmlinux 0x928daf5d journal_release_buffer +EXPORT_SYMBOL vmlinux 0x928dc8b5 rename_lock +EXPORT_SYMBOL vmlinux 0x928fa948 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x929b3cac vio_register_driver +EXPORT_SYMBOL vmlinux 0x92e20709 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x92f0758e mmc_free_host +EXPORT_SYMBOL vmlinux 0x92fa4e99 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930dcf69 d_lookup +EXPORT_SYMBOL vmlinux 0x933868db md_unregister_thread +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x93507f1c _lv1_gpu_memory_allocate +EXPORT_SYMBOL vmlinux 0x93569c2f d_obtain_alias +EXPORT_SYMBOL vmlinux 0x93588945 phy_connect +EXPORT_SYMBOL vmlinux 0x936c9883 pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x9395b64f call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x93a6bb0f bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b3ee4b twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x93c96fd7 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x93e34092 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9422e4a6 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x943203a3 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x943dc80f csum_and_copy_to_user +EXPORT_SYMBOL vmlinux 0x9482940c __f_setown +EXPORT_SYMBOL vmlinux 0x94864c7a wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94ab2bf9 is_bad_inode +EXPORT_SYMBOL vmlinux 0x94afb69f skb_queue_purge +EXPORT_SYMBOL vmlinux 0x94c141c1 pci_choose_state +EXPORT_SYMBOL vmlinux 0x94ccf999 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x94e9d41d skb_append +EXPORT_SYMBOL vmlinux 0x9501e587 account_page_redirty +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x9518b623 register_shrinker +EXPORT_SYMBOL vmlinux 0x9519991a input_event +EXPORT_SYMBOL vmlinux 0x9520a724 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x953db383 free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9550cd04 d_genocide +EXPORT_SYMBOL vmlinux 0x9581ea62 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x95bc4de2 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d977a4 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x962732e8 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x965bb23a dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x967864af register_8022_client +EXPORT_SYMBOL vmlinux 0x96c594e5 __netif_schedule +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d1f2a7 mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x96defbbb blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x96f0c11d __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x96fdbaff kmem_cache_create +EXPORT_SYMBOL vmlinux 0x9716200d cap_file_mmap +EXPORT_SYMBOL vmlinux 0x973988a4 kobject_add +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x974e0951 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x974fcee2 alloc_trdev +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9767932d key_reject_and_link +EXPORT_SYMBOL vmlinux 0x976e014f _lv1_map_device_mmio_region +EXPORT_SYMBOL vmlinux 0x978238fb padata_free +EXPORT_SYMBOL vmlinux 0x978c2827 pci_map_rom +EXPORT_SYMBOL vmlinux 0x9792e703 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97abb684 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x97ad0068 may_umount_tree +EXPORT_SYMBOL vmlinux 0x97d483d9 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x97f190a2 sync_inode +EXPORT_SYMBOL vmlinux 0x98177648 _lv1_set_lpm_interval +EXPORT_SYMBOL vmlinux 0x982c15ca devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x982d55aa __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x9831e9e4 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x983e09f5 irq_stat +EXPORT_SYMBOL vmlinux 0x984439e2 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x9845fd71 start_tty +EXPORT_SYMBOL vmlinux 0x98504007 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x9850e69c vfs_readlink +EXPORT_SYMBOL vmlinux 0x986d2c61 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9887ad1d of_get_next_child +EXPORT_SYMBOL vmlinux 0x9887db8a xfrm_register_km +EXPORT_SYMBOL vmlinux 0x98b8e4f5 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x98c17ab7 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x98c60c90 vio_cmo_set_dev_desired +EXPORT_SYMBOL vmlinux 0x98f44f76 nf_afinfo +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x98ffff11 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x9938c95d dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x99525e3a vfsmount_lock_local_unlock +EXPORT_SYMBOL vmlinux 0x9982b5d7 unlock_page +EXPORT_SYMBOL vmlinux 0x998948ba migrate_page +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c24cfe _lv1_free_device_dma_region +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d3a43c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x99df0050 bdput +EXPORT_SYMBOL vmlinux 0x99e746ec pci_assign_resource +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1ffb92 _lv1_clear_spe_interrupt_status +EXPORT_SYMBOL vmlinux 0x9a3c22b1 set_user_nice +EXPORT_SYMBOL vmlinux 0x9a4fdbdf of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a698f2e llc_sap_find +EXPORT_SYMBOL vmlinux 0x9a6c2531 pasemi_dma_init +EXPORT_SYMBOL vmlinux 0x9a7da6c8 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x9a92264e gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x9aa87a89 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9ab1ad9c mmc_add_host +EXPORT_SYMBOL vmlinux 0x9ab8808c param_get_charp +EXPORT_SYMBOL vmlinux 0x9ac119c5 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x9acdfd72 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x9ad6e9d5 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x9af6c64a sock_no_bind +EXPORT_SYMBOL vmlinux 0x9afea872 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x9b09b78c vc_cons +EXPORT_SYMBOL vmlinux 0x9b2f1e81 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x9b3482a7 skb_insert +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b98e33f genl_register_ops +EXPORT_SYMBOL vmlinux 0x9b9df02f __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb4a838 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x9bbeea31 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x9bc8ab06 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x9bd18d79 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x9bd75fe3 ps2_init +EXPORT_SYMBOL vmlinux 0x9be10169 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x9bffb774 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c5f81da cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x9c685821 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x9c72d294 vio_get_attribute +EXPORT_SYMBOL vmlinux 0x9c919a37 pci_get_slot +EXPORT_SYMBOL vmlinux 0x9ca2fe1c simple_getattr +EXPORT_SYMBOL vmlinux 0x9ca53880 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc8e920 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x9cdf0ec5 vfsmount_lock_global_lock_online +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d181109 dma_iommu_ops +EXPORT_SYMBOL vmlinux 0x9d205ae7 tty_mutex +EXPORT_SYMBOL vmlinux 0x9d36cdd3 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3bb98f generic_writepages +EXPORT_SYMBOL vmlinux 0x9d3fef9f blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x9d4c1fbf tty_name +EXPORT_SYMBOL vmlinux 0x9d6dffd1 pid_task +EXPORT_SYMBOL vmlinux 0x9d786943 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9da22d4e netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x9dab478a blkdev_fsync +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dc14166 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x9dcab892 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x9dcdefa0 follow_down_one +EXPORT_SYMBOL vmlinux 0x9dcfc9bc kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0x9ddfbcb3 netdev_printk +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e258c7d pci_request_region +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e607910 audit_log +EXPORT_SYMBOL vmlinux 0x9e6d1a43 nf_log_packet +EXPORT_SYMBOL vmlinux 0x9e8b7bbd pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x9e90caa8 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x9e932cf0 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ec6eefb lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x9ecf0833 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x9ee78669 _lv1_write_virtual_uart +EXPORT_SYMBOL vmlinux 0x9eea207c blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x9eec85d3 journal_flush +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef33f3c gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x9f1df2f1 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x9f25557a simple_readpage +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f327a7e sock_wfree +EXPORT_SYMBOL vmlinux 0x9f340dd0 napi_get_frags +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f7a6f2a agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa996ce sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0xa0432393 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa056adc8 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xa0581acd dentry_path_raw +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa066ed6f dma_sync_wait +EXPORT_SYMBOL vmlinux 0xa073d709 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa08e6320 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xa094d308 vfs_follow_link +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0c6abec sock_kmalloc +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0ddeb98 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12431af tc_classify +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14b10cc qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa16a9dc7 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xa1875a46 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xa18ae642 kill_block_super +EXPORT_SYMBOL vmlinux 0xa1a0089f netdev_err +EXPORT_SYMBOL vmlinux 0xa1a5f2b4 ethtool_invalid_flags +EXPORT_SYMBOL vmlinux 0xa1b1ea3a security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba2fdb vfsmount_lock_global_lock +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c4b6d2 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xa1c5a3b3 cleancache_enabled +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1ec8f1c __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa1f04063 skb_recycle_check +EXPORT_SYMBOL vmlinux 0xa1f8fe75 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2127cdc pasemi_dma_alloc_flag +EXPORT_SYMBOL vmlinux 0xa235aa0e bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xa24c0306 genphy_suspend +EXPORT_SYMBOL vmlinux 0xa2542c85 vga_client_register +EXPORT_SYMBOL vmlinux 0xa259cb99 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xa273a83e tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa29af182 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xa29ca212 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2adb955 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2c56c31 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xa2dc5981 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa2dd8b9a inet_getname +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa303d1ff dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xa30e22f3 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xa327b389 __d_drop +EXPORT_SYMBOL vmlinux 0xa3300dad dev_load +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa34b509e copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3621ebe udp_sendmsg +EXPORT_SYMBOL vmlinux 0xa36b44b7 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a7b55f __devm_release_region +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3b0fe6f scsi_unregister +EXPORT_SYMBOL vmlinux 0xa3c54a65 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xa3c8d10c padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xa3cc7e95 uart_match_port +EXPORT_SYMBOL vmlinux 0xa3d4dc59 ip_route_input_common +EXPORT_SYMBOL vmlinux 0xa447a070 simple_statfs +EXPORT_SYMBOL vmlinux 0xa4572c7c kernel_bind +EXPORT_SYMBOL vmlinux 0xa457d528 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xa45e3c2e noop_fsync +EXPORT_SYMBOL vmlinux 0xa4804cab unregister_binfmt +EXPORT_SYMBOL vmlinux 0xa480c04b _lv1_gpu_context_attribute +EXPORT_SYMBOL vmlinux 0xa4923b62 mii_check_link +EXPORT_SYMBOL vmlinux 0xa49301ce ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xa4a94d26 find_next_bit_le +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bdd447 __cputime_clockt_factor +EXPORT_SYMBOL vmlinux 0xa4c41694 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xa4c90c00 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4ec97ed ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xa4ee61c7 input_set_capability +EXPORT_SYMBOL vmlinux 0xa4f55676 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xa4fa60ed tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xa560dc30 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xa58d6e76 pci_find_bus +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa59d93b1 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xa5e15c7b simple_dir_operations +EXPORT_SYMBOL vmlinux 0xa5e9f94c mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0xa5f34de8 seq_path +EXPORT_SYMBOL vmlinux 0xa6307835 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xa630a20b truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xa63316d4 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xa651d2d7 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xa6525d0e udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xa654ee97 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa665602f i2c_release_client +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67cdd37 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68342ad gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xa68eaa22 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xa698350a of_device_register +EXPORT_SYMBOL vmlinux 0xa6a2c4c8 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xa6b71198 register_key_type +EXPORT_SYMBOL vmlinux 0xa6bce96a nla_reserve +EXPORT_SYMBOL vmlinux 0xa6ca5bac md_check_recovery +EXPORT_SYMBOL vmlinux 0xa6cde5d0 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6fd33f5 dump_seek +EXPORT_SYMBOL vmlinux 0xa70aec80 icmp_send +EXPORT_SYMBOL vmlinux 0xa7228696 ppp_unit_number +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa77d1e5c address_space_init_once +EXPORT_SYMBOL vmlinux 0xa7805659 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xa793e1fc i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xa796dc95 scsi_get_command +EXPORT_SYMBOL vmlinux 0xa7b30479 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xa7b731e5 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xa7b9679d eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xa7ca5d4f sk_reset_timer +EXPORT_SYMBOL vmlinux 0xa7fdb922 of_find_matching_node +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa816ce0f do_sync_write +EXPORT_SYMBOL vmlinux 0xa8223905 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa849005c dquot_destroy +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa8962427 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xa89c9423 consume_skb +EXPORT_SYMBOL vmlinux 0xa8a52be5 of_get_parent +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8aedded simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xa8ccbf98 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xa8ced546 _lv1_net_set_interrupt_status_indicator +EXPORT_SYMBOL vmlinux 0xa8f462ae i2c_verify_client +EXPORT_SYMBOL vmlinux 0xa8f98dbe unregister_quota_format +EXPORT_SYMBOL vmlinux 0xa8fac437 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xa8feb5b2 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa910743b framebuffer_release +EXPORT_SYMBOL vmlinux 0xa91c77b6 _lv1_end_of_interrupt +EXPORT_SYMBOL vmlinux 0xa91f7bbb md_done_sync +EXPORT_SYMBOL vmlinux 0xa921c0fe tcf_hash_release +EXPORT_SYMBOL vmlinux 0xa9538ecd phy_register_fixup +EXPORT_SYMBOL vmlinux 0xa9707543 md_write_end +EXPORT_SYMBOL vmlinux 0xa98393d0 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xa990871e kernel_getpeername +EXPORT_SYMBOL vmlinux 0xa9ad9273 dev_get_stats +EXPORT_SYMBOL vmlinux 0xa9bc42ac mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0xa9d17e87 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xa9e1115b security_path_chown +EXPORT_SYMBOL vmlinux 0xa9e615a3 neigh_destroy +EXPORT_SYMBOL vmlinux 0xaa0edca8 pasemi_dma_alloc_fun +EXPORT_SYMBOL vmlinux 0xaa4c20ee inet_stream_connect +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa853edb ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xaabdb27c security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaaee71b4 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab1301e2 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xab154564 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xab3d4fd9 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xab66f611 _lv1_set_lpm_trigger_control +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab861b4a fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xab9f1683 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0xaba6739a vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xaba9581b inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xabc17c47 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabf4d448 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xabf5b4ad file_remove_suid +EXPORT_SYMBOL vmlinux 0xac01f8d7 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xac09bd8e tcp_connect +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac30d649 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xac3587c2 tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac8cc6ae vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xac9dca53 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xacb3412a inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd14ab8 _lv1_construct_logical_spe +EXPORT_SYMBOL vmlinux 0xacd4fb00 skb_queue_head +EXPORT_SYMBOL vmlinux 0xacd5611a tty_hangup +EXPORT_SYMBOL vmlinux 0xacea13d8 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad063a82 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xad0a6e0a flex_array_prealloc +EXPORT_SYMBOL vmlinux 0xad202f24 __dst_free +EXPORT_SYMBOL vmlinux 0xad2466db __nla_put +EXPORT_SYMBOL vmlinux 0xad255a67 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xad299edf journal_load +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad50cebb i8253_lock +EXPORT_SYMBOL vmlinux 0xad5b4df0 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xad612a91 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad88260a agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xad92cf25 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadcac4a3 vfsmount_lock_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xadda1f23 elevator_init +EXPORT_SYMBOL vmlinux 0xade0c29e register_nls +EXPORT_SYMBOL vmlinux 0xadeffe25 _lv1_gpu_context_intr +EXPORT_SYMBOL vmlinux 0xadfe74ac read_cache_page_async +EXPORT_SYMBOL vmlinux 0xadfe9768 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0xae175ee0 input_free_device +EXPORT_SYMBOL vmlinux 0xae1cb73a sys_imageblit +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae636f7c inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xae779854 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xae7843db serio_unregister_port +EXPORT_SYMBOL vmlinux 0xae801335 ps3_sb_event_receive_port_setup +EXPORT_SYMBOL vmlinux 0xae94294b __find_get_block +EXPORT_SYMBOL vmlinux 0xaeb17107 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xaeb8e867 vfs_getattr +EXPORT_SYMBOL vmlinux 0xaebab481 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf24cac0 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf3fb3e4 i2c_transfer +EXPORT_SYMBOL vmlinux 0xaf438d65 _lv1_get_repository_node_value +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf67d7fe scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xaf75864e vio_disable_interrupts +EXPORT_SYMBOL vmlinux 0xaf7a2ea4 __getblk +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafaa9638 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xafd68c33 flex_array_free +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier +EXPORT_SYMBOL vmlinux 0xaffbd678 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb0146c3a param_set_byte +EXPORT_SYMBOL vmlinux 0xb022887f ilookup +EXPORT_SYMBOL vmlinux 0xb055cf77 kobject_init +EXPORT_SYMBOL vmlinux 0xb07242f4 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0xb07a5e23 d_instantiate +EXPORT_SYMBOL vmlinux 0xb07f8395 locks_free_lock +EXPORT_SYMBOL vmlinux 0xb0819e4e max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xb0ac929c kthread_create_on_node +EXPORT_SYMBOL vmlinux 0xb0adc064 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0c66bfd ip_fragment +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb119d550 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xb11c3d2f qdisc_destroy +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb12e7056 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb15c2c04 block_write_full_page +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb165ef45 __irq_regs +EXPORT_SYMBOL vmlinux 0xb1661bf2 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xb170ec13 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1a04c33 follow_down +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1eab0ab of_device_is_compatible +EXPORT_SYMBOL vmlinux 0xb201eeed journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xb21665bc blk_insert_request +EXPORT_SYMBOL vmlinux 0xb22be75f tcp_make_synack +EXPORT_SYMBOL vmlinux 0xb22f0718 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26a2884 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xb2898333 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xb2a7fc7d uart_suspend_port +EXPORT_SYMBOL vmlinux 0xb2aee65c dev_addr_flush +EXPORT_SYMBOL vmlinux 0xb2b0d772 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0xb2df2528 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xb2ed1c97 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xb2f30ba8 unregister_key_type +EXPORT_SYMBOL vmlinux 0xb31950b3 genphy_read_status +EXPORT_SYMBOL vmlinux 0xb319e893 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xb3305d52 send_remote_softirq +EXPORT_SYMBOL vmlinux 0xb33cb022 no_llseek +EXPORT_SYMBOL vmlinux 0xb3753984 mpage_readpages +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3acd3ee tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xb3bf73df cpu_active_mask +EXPORT_SYMBOL vmlinux 0xb3c371de netdev_update_features +EXPORT_SYMBOL vmlinux 0xb3dd1029 kernel_connect +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb4043a95 locks_delete_block +EXPORT_SYMBOL vmlinux 0xb412edcd ab8500_gpadc_read_raw +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb43eb7b6 ps3_dma_region_init +EXPORT_SYMBOL vmlinux 0xb46bf69a scsi_put_command +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb471bc68 poll_initwait +EXPORT_SYMBOL vmlinux 0xb47a3de2 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xb481bfb5 security_path_symlink +EXPORT_SYMBOL vmlinux 0xb4a94d85 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xb4b8dda7 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xb4dcd476 submit_bh +EXPORT_SYMBOL vmlinux 0xb4de571c mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb53561eb journal_revoke +EXPORT_SYMBOL vmlinux 0xb5418d83 vfs_link +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb55ee575 nonseekable_open +EXPORT_SYMBOL vmlinux 0xb56bfd9e smu_spinwait_cmd +EXPORT_SYMBOL vmlinux 0xb577dc63 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xb57f78e6 netlink_ack +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5b0eec5 inet_sendpage +EXPORT_SYMBOL vmlinux 0xb5c6d537 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xb5e34e3b tty_check_change +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb628f715 files_lglock_local_lock +EXPORT_SYMBOL vmlinux 0xb62fdb37 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6839e23 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xb685a40a skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xb68bfa9d node_states +EXPORT_SYMBOL vmlinux 0xb696cc3e vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c3f6aa tty_register_driver +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6ceb5a6 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xb72be0d8 replace_mount_options +EXPORT_SYMBOL vmlinux 0xb74f67fc tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xb750ced6 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xb77ac799 pipe_unlock +EXPORT_SYMBOL vmlinux 0xb78c61e8 param_ops_bool +EXPORT_SYMBOL vmlinux 0xb79a717b ps3_sb_event_receive_port_destroy +EXPORT_SYMBOL vmlinux 0xb7a8ed68 get_user_pages +EXPORT_SYMBOL vmlinux 0xb7b7e9f7 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xb7bac3ab journal_extend +EXPORT_SYMBOL vmlinux 0xb7c97e44 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xb7dc0db2 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xb7f2799d inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xb8134fcd xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xb813784c __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb86111b8 journal_check_available_features +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb88e4c49 scsi_host_get +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8a30c7e _lv1_add_lpm_event_bookmark +EXPORT_SYMBOL vmlinux 0xb8c554cf init_buffer +EXPORT_SYMBOL vmlinux 0xb8ca029c vga_get +EXPORT_SYMBOL vmlinux 0xb919bf2f put_tty_driver +EXPORT_SYMBOL vmlinux 0xb91bd5be tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xb950dd55 eth_change_mtu +EXPORT_SYMBOL vmlinux 0xb953021b unlock_buffer +EXPORT_SYMBOL vmlinux 0xb95cd21e mntput +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb98e8289 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xb99afc15 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xb9a76c41 tty_free_termios +EXPORT_SYMBOL vmlinux 0xb9c6f5d7 scsi_init_io +EXPORT_SYMBOL vmlinux 0xb9ec9b87 mii_nway_restart +EXPORT_SYMBOL vmlinux 0xb9f6c9dc of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0xb9fac0dc dput +EXPORT_SYMBOL vmlinux 0xba122a2c smu_done_complete +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5e0663 pci_set_power_state +EXPORT_SYMBOL vmlinux 0xba6e9a40 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0xba9f41d7 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbae29c66 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb22e568 __rta_fill +EXPORT_SYMBOL vmlinux 0xbb42c603 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xbb46918f posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0xbb4ab892 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xbb55bf17 tty_port_close +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba159e0 files_lglock_local_unlock +EXPORT_SYMBOL vmlinux 0xbba91d45 ihold +EXPORT_SYMBOL vmlinux 0xbbbbeb58 create_proc_entry +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc3f6afa down_read +EXPORT_SYMBOL vmlinux 0xbc58ec85 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xbc849d0f blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xbc8de1f3 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xbc8df8b4 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xbc905403 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xbc95a3fb clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xbc9bfa1d inet_frag_find +EXPORT_SYMBOL vmlinux 0xbcc4028d install_exec_creds +EXPORT_SYMBOL vmlinux 0xbccdc2f6 flex_array_put +EXPORT_SYMBOL vmlinux 0xbceab492 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xbd2ff31b put_disk +EXPORT_SYMBOL vmlinux 0xbd38fe31 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xbd494c8a netif_device_attach +EXPORT_SYMBOL vmlinux 0xbd5c73e1 blk_make_request +EXPORT_SYMBOL vmlinux 0xbd66123b mmc_request_done +EXPORT_SYMBOL vmlinux 0xbd6838eb kernel_accept +EXPORT_SYMBOL vmlinux 0xbd7f8c9b idr_get_next +EXPORT_SYMBOL vmlinux 0xbd803510 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xbd82873a bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xbd8cfa15 pasemi_write_mac_reg +EXPORT_SYMBOL vmlinux 0xbd9ee0de fb_set_cmap +EXPORT_SYMBOL vmlinux 0xbdb50cc2 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xbdbe7378 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xbdbf7308 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xbdc54213 module_put +EXPORT_SYMBOL vmlinux 0xbdcc8070 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xbde5ace8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdf6a983 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xbe1024b5 f_setown +EXPORT_SYMBOL vmlinux 0xbe253fa8 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe3eefa7 blk_integrity_register +EXPORT_SYMBOL vmlinux 0xbe697c16 release_firmware +EXPORT_SYMBOL vmlinux 0xbe72e35b netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xbe77aebe down_write_trylock +EXPORT_SYMBOL vmlinux 0xbe814159 ida_remove +EXPORT_SYMBOL vmlinux 0xbe8e6d03 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xbea07f13 d_invalidate +EXPORT_SYMBOL vmlinux 0xbee0c11e free_netdev +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef9eca6 phy_start +EXPORT_SYMBOL vmlinux 0xbf0ccb68 input_get_keycode +EXPORT_SYMBOL vmlinux 0xbf18245d unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xbf1bb4ff nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xbf280a3d dquot_initialize +EXPORT_SYMBOL vmlinux 0xbf30bc31 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xbf3522e9 dev_get_by_index +EXPORT_SYMBOL vmlinux 0xbf48c722 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xbf57e314 of_phy_connect +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf848f60 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfabfe59 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xbfb6acce crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfdff814 of_get_address +EXPORT_SYMBOL vmlinux 0xbfe0d1ce iget_failed +EXPORT_SYMBOL vmlinux 0xbfe63ba8 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbfeae4b3 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff8182c plpar_hcall_norets +EXPORT_SYMBOL vmlinux 0xc02e8492 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xc03fc603 arp_send +EXPORT_SYMBOL vmlinux 0xc041786d vfs_writev +EXPORT_SYMBOL vmlinux 0xc0463bdd xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05d489d d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc07967fe backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc092df22 ppp_channel_index +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a10b86 dquot_alloc +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b1c3d2 send_sig_info +EXPORT_SYMBOL vmlinux 0xc0b2494c vfsmount_lock_lock_init +EXPORT_SYMBOL vmlinux 0xc0b7c108 pipe_to_file +EXPORT_SYMBOL vmlinux 0xc0d95dfc sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xc0f0ca6e tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xc0fdf86d abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xc11267d4 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xc114ed73 netdev_notice +EXPORT_SYMBOL vmlinux 0xc1344bc4 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xc13511d7 cpumask_next_and +EXPORT_SYMBOL vmlinux 0xc144ee7d otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d37f7f netdev_bonding_change +EXPORT_SYMBOL vmlinux 0xc1d7d179 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc1dad63f log_start_commit +EXPORT_SYMBOL vmlinux 0xc225d992 request_firmware +EXPORT_SYMBOL vmlinux 0xc2303e69 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc259b323 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xc28c5e5f vc_resize +EXPORT_SYMBOL vmlinux 0xc2c69a03 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fb9ee1 _lv1_shutdown_logical_partition +EXPORT_SYMBOL vmlinux 0xc3039001 nobh_write_end +EXPORT_SYMBOL vmlinux 0xc314c3d2 __cputime_jiffies_factor +EXPORT_SYMBOL vmlinux 0xc316b98c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0xc31fd53f end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xc324e35f padata_stop +EXPORT_SYMBOL vmlinux 0xc32500fe request_key_async +EXPORT_SYMBOL vmlinux 0xc326e618 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xc34ff0bb clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xc35cc7c5 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xc3655d8e genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0xc368d855 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xc36ad0c6 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xc37ba4b6 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xc380ca35 d_path +EXPORT_SYMBOL vmlinux 0xc39c3704 hvcs_free_partner_info +EXPORT_SYMBOL vmlinux 0xc3b7a8b2 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xc3c35898 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xc3c8588c aio_complete +EXPORT_SYMBOL vmlinux 0xc3cad7b7 input_open_device +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3dcf6b5 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xc3eb4ded sock_release +EXPORT_SYMBOL vmlinux 0xc3fd0502 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xc3fe87c8 param_ops_uint +EXPORT_SYMBOL vmlinux 0xc4026b02 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xc409146a dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xc4128370 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xc41f1696 _lv1_configure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0xc423d9cb invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xc43a63d0 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xc43e7194 devm_free_irq +EXPORT_SYMBOL vmlinux 0xc45755de find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0xc46947af elv_rb_del +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc489bdcf mpage_readpage +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4b062f0 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xc4c06b0b bio_sector_offset +EXPORT_SYMBOL vmlinux 0xc4c96ecf twl6040_irq_init +EXPORT_SYMBOL vmlinux 0xc4ca823e find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xc4cedd0a agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xc4e64d55 flush_dcache_page +EXPORT_SYMBOL vmlinux 0xc5089620 _lv1_stop_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0xc50bab05 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xc5211d21 skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xc52782a0 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xc528b9d6 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc533e37a __scsi_add_device +EXPORT_SYMBOL vmlinux 0xc53c4003 generic_show_options +EXPORT_SYMBOL vmlinux 0xc53f10da tty_throttle +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55c2a9d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xc55de23c percpu_counter_set +EXPORT_SYMBOL vmlinux 0xc56d8519 pci_dev_put +EXPORT_SYMBOL vmlinux 0xc571241d check_disk_change +EXPORT_SYMBOL vmlinux 0xc571ace3 giveup_fpu +EXPORT_SYMBOL vmlinux 0xc595312a qdisc_reset +EXPORT_SYMBOL vmlinux 0xc5987b24 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xc59a89da __page_cache_alloc +EXPORT_SYMBOL vmlinux 0xc5a37aa8 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0xc5b29445 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5f46566 rb_augment_insert +EXPORT_SYMBOL vmlinux 0xc6067e4b ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xc627e729 devm_ioremap +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc663b075 __ioremap +EXPORT_SYMBOL vmlinux 0xc66a6745 __inet6_hash +EXPORT_SYMBOL vmlinux 0xc67bddda generic_write_end +EXPORT_SYMBOL vmlinux 0xc6b22c71 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xc6b70f6f swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xc6c0017e inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6d9a390 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc74f1ea7 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xc77e93bc vfs_readv +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc797f226 icmpv6_send +EXPORT_SYMBOL vmlinux 0xc79b4129 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7e72b2a secpath_dup +EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp +EXPORT_SYMBOL vmlinux 0xc7fdee97 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xc816e32f complete_request_key +EXPORT_SYMBOL vmlinux 0xc834d916 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xc83661e3 end_writeback +EXPORT_SYMBOL vmlinux 0xc83a763c tcf_em_register +EXPORT_SYMBOL vmlinux 0xc83e0601 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc856489c km_policy_notify +EXPORT_SYMBOL vmlinux 0xc86a6174 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a4bacf idr_replace +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8bca71d tc_classify_compat +EXPORT_SYMBOL vmlinux 0xc8d4632b read_cache_page +EXPORT_SYMBOL vmlinux 0xc8e31d75 _lv1_configure_irq_state_bitmap +EXPORT_SYMBOL vmlinux 0xc8ed6e1a jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xc911fcc8 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0xc9136cda xfrm_input +EXPORT_SYMBOL vmlinux 0xc91ff664 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc9496939 blk_start_queue +EXPORT_SYMBOL vmlinux 0xc94fce91 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xc9531eb5 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xc95536e0 touch_atime +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9b143a7 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xc9fc598d pasemi_read_dma_reg +EXPORT_SYMBOL vmlinux 0xca033606 lease_modify +EXPORT_SYMBOL vmlinux 0xca0c229d pagevec_lookup +EXPORT_SYMBOL vmlinux 0xca4c923d vscnprintf +EXPORT_SYMBOL vmlinux 0xca4cbbe6 dquot_resume +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca5f1dfe ppp_input_error +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca929282 uart_resume_port +EXPORT_SYMBOL vmlinux 0xca99406b unregister_snap_client +EXPORT_SYMBOL vmlinux 0xcaabf3f9 pasemi_write_iob_reg +EXPORT_SYMBOL vmlinux 0xcacdadeb scsi_print_result +EXPORT_SYMBOL vmlinux 0xcaec6b99 security_path_chmod +EXPORT_SYMBOL vmlinux 0xcb6f1749 dev_crit +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb7e4bea agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0xcb7f084c neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xcbb66fd3 of_node_put +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbcf47c9 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xcbd1de8a skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xcbe8b038 _lv1_configure_execution_time_variable +EXPORT_SYMBOL vmlinux 0xcbec376a scsi_execute_req +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc2bd614 led_brightness_set +EXPORT_SYMBOL vmlinux 0xcc33b72c ppp_dev_name +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc6fca9d d_rehash +EXPORT_SYMBOL vmlinux 0xcc775254 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc89c246 pasemi_dma_alloc_chan +EXPORT_SYMBOL vmlinux 0xcca4ab85 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xcca94125 kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0xccb5dc30 dquot_release +EXPORT_SYMBOL vmlinux 0xccdef480 cdrom_open +EXPORT_SYMBOL vmlinux 0xcce4b151 netdev_set_bond_master +EXPORT_SYMBOL vmlinux 0xcce8e917 tcp_v4_tw_get_peer +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd256251 d_set_d_op +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd303514 journal_force_commit +EXPORT_SYMBOL vmlinux 0xcd769f62 _lv1_gpu_device_map +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcd890a43 serio_reconnect +EXPORT_SYMBOL vmlinux 0xcd9d89ca seq_open_private +EXPORT_SYMBOL vmlinux 0xcda480a8 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xcdad2c2f pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xcdc1cf0f mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde435b0 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce3b3f09 profile_pc +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce4add32 bh_submit_read +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce661d48 pci_release_regions +EXPORT_SYMBOL vmlinux 0xce68679e llc_sap_close +EXPORT_SYMBOL vmlinux 0xce7ce037 of_translate_address +EXPORT_SYMBOL vmlinux 0xce8de2ec scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0xce9a3ad4 i2c_master_send +EXPORT_SYMBOL vmlinux 0xceb0efbb keyring_clear +EXPORT_SYMBOL vmlinux 0xcec3a908 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcef7fb68 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xcf015f7b do_settimeofday +EXPORT_SYMBOL vmlinux 0xcf510a8f dev_addr_add +EXPORT_SYMBOL vmlinux 0xcf567a3a mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcf923cc2 page_readlink +EXPORT_SYMBOL vmlinux 0xcfb7d5a0 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfd8f689 mem_cgroup_update_page_stat +EXPORT_SYMBOL vmlinux 0xcfeb0be9 rb_augment_erase_begin +EXPORT_SYMBOL vmlinux 0xd0060380 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xd015ba73 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd023c9f0 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xd02c03d1 dquot_drop +EXPORT_SYMBOL vmlinux 0xd0354a58 register_qdisc +EXPORT_SYMBOL vmlinux 0xd043ae9b inet_put_port +EXPORT_SYMBOL vmlinux 0xd05931ec _lv1_set_lpm_counter_control +EXPORT_SYMBOL vmlinux 0xd07343fa elv_abort_queue +EXPORT_SYMBOL vmlinux 0xd0799edd posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0xd087f5f5 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xd0a02396 hvcs_free_connection +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0a9d26c kernel_listen +EXPORT_SYMBOL vmlinux 0xd0b9690a fd_install +EXPORT_SYMBOL vmlinux 0xd0cb88e4 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0e0449c dquot_commit +EXPORT_SYMBOL vmlinux 0xd0e6f095 journal_get_write_access +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1117311 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd134d479 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xd172cb8d netdev_increment_features +EXPORT_SYMBOL vmlinux 0xd1b01d80 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xd1e91093 pci_disable_device +EXPORT_SYMBOL vmlinux 0xd1ea2cd0 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xd1f152ad kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0xd1fe8ebb _lv1_get_spe_interrupt_status +EXPORT_SYMBOL vmlinux 0xd2128a77 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xd23652e6 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xd23cf758 vfs_unlink +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd276f795 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xd27a3ecd pci_set_mwi +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29abf1d scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xd2c0d9f9 simple_fill_super +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2d51180 of_gpio_count +EXPORT_SYMBOL vmlinux 0xd2e79531 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xd2eed109 kill_pgrp +EXPORT_SYMBOL vmlinux 0xd2ef2638 smu_cmdbuf_abs +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3434c3f kref_sub +EXPORT_SYMBOL vmlinux 0xd35d519a d_find_alias +EXPORT_SYMBOL vmlinux 0xd35eb379 elv_rb_add +EXPORT_SYMBOL vmlinux 0xd370f58e of_device_is_available +EXPORT_SYMBOL vmlinux 0xd3755230 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xd375c1e1 tcp_check_req +EXPORT_SYMBOL vmlinux 0xd37ce9c2 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xd38480a0 rb_augment_erase_end +EXPORT_SYMBOL vmlinux 0xd38693c8 proc_mkdir +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3e76dc2 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xd3f0c6c2 filp_open +EXPORT_SYMBOL vmlinux 0xd3f88460 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd409ee9f tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xd4311e90 lro_flush_all +EXPORT_SYMBOL vmlinux 0xd485a137 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0xd49268ec nla_put +EXPORT_SYMBOL vmlinux 0xd4c14a17 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xd4c44dce d_delete +EXPORT_SYMBOL vmlinux 0xd4e147fd neigh_parms_release +EXPORT_SYMBOL vmlinux 0xd4e3bd66 agp_free_memory +EXPORT_SYMBOL vmlinux 0xd4f32f45 register_con_driver +EXPORT_SYMBOL vmlinux 0xd513bb70 netif_skb_features +EXPORT_SYMBOL vmlinux 0xd52b8db7 dev_change_flags +EXPORT_SYMBOL vmlinux 0xd5384986 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xd55c3172 dquot_disable +EXPORT_SYMBOL vmlinux 0xd55f3209 _lv1_remove_repository_node +EXPORT_SYMBOL vmlinux 0xd569d522 of_n_size_cells +EXPORT_SYMBOL vmlinux 0xd58eb172 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xd597c5f1 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5e1d719 _lv1_set_ppe_periodic_tracer_frequency +EXPORT_SYMBOL vmlinux 0xd5e4f432 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xd5ef1726 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd614652e vfs_mknod +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd62129c7 set_groups +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd635578f arp_xmit +EXPORT_SYMBOL vmlinux 0xd6803d86 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xd69c31dc ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xd6a4f828 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xd6cc8518 netif_napi_add +EXPORT_SYMBOL vmlinux 0xd6deca0b blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xd6edf811 _lv1_release_memory +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6efb077 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xd6fbaa93 key_link +EXPORT_SYMBOL vmlinux 0xd6fd4053 __arch_hweight32 +EXPORT_SYMBOL vmlinux 0xd715bf62 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xd72e1cfc _lv1_set_lpm_spr_trigger +EXPORT_SYMBOL vmlinux 0xd736df75 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd761a383 ioremap_prot +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd786c0ea plpar_hcall9 +EXPORT_SYMBOL vmlinux 0xd78d444c bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd809f337 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xd84e12f0 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xd874d75e simple_link +EXPORT_SYMBOL vmlinux 0xd8761dd0 __alloc_skb +EXPORT_SYMBOL vmlinux 0xd8872008 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xd89244e8 mpage_writepages +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8b26857 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xd8ce7e67 clocksource_register +EXPORT_SYMBOL vmlinux 0xd8d9ca6d neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9188dfc generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd9484c13 register_console +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99dbbbf pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xd9b08e57 kill_pid +EXPORT_SYMBOL vmlinux 0xd9b8064a dev_mc_sync +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9c9fb99 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xd9d4d09d _lv1_release_io_segment +EXPORT_SYMBOL vmlinux 0xda0f5234 rtas_offline_cpus_mask +EXPORT_SYMBOL vmlinux 0xda2f6bb5 setup_new_exec +EXPORT_SYMBOL vmlinux 0xda707aff i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda83e3f6 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa8a568 bioset_free +EXPORT_SYMBOL vmlinux 0xdabc1ea8 fsl_lbc_find +EXPORT_SYMBOL vmlinux 0xdadbba24 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xdaffd726 blk_peek_request +EXPORT_SYMBOL vmlinux 0xdb01198e fsl_upm_find +EXPORT_SYMBOL vmlinux 0xdb01cd6f mnt_pin +EXPORT_SYMBOL vmlinux 0xdb08283d user_revoke +EXPORT_SYMBOL vmlinux 0xdb170ac5 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xdb185e7b __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb74a6c0 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb967f05 log_wait_commit +EXPORT_SYMBOL vmlinux 0xdb9849dc posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xdbad343f unregister_netdev +EXPORT_SYMBOL vmlinux 0xdbb24fc2 down_write +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd60096 vfs_fsync +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2519e0 param_set_ulong +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2f6fc1 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc93b975 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0xdc9498dd down +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb5671d strlen +EXPORT_SYMBOL vmlinux 0xdcbdaa47 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xdcd7ce8c __cleancache_flush_inode +EXPORT_SYMBOL vmlinux 0xdcdcdcc3 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xdcde4689 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xdcebce5f dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdd0dc4fc bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xdd10e6b3 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xdd1c65f6 blk_finish_plug +EXPORT_SYMBOL vmlinux 0xdd20eaa9 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xdd2794bc find_get_page +EXPORT_SYMBOL vmlinux 0xdd2797bf ping_prot +EXPORT_SYMBOL vmlinux 0xdd28bd22 netdev_warn +EXPORT_SYMBOL vmlinux 0xdd3e31d6 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xdd6625c7 km_query +EXPORT_SYMBOL vmlinux 0xdd6a80e5 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xdd8a6119 create_mnt_ns +EXPORT_SYMBOL vmlinux 0xdd9536af dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0xdd955144 __debugger +EXPORT_SYMBOL vmlinux 0xddbfc388 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xddcc17c8 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xddd39767 drop_super +EXPORT_SYMBOL vmlinux 0xddd645e4 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xde25e79b pci_target_state +EXPORT_SYMBOL vmlinux 0xde305166 netif_napi_del +EXPORT_SYMBOL vmlinux 0xde365ffa dev_open +EXPORT_SYMBOL vmlinux 0xde36fce5 tty_kref_put +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde5364aa da903x_query_status +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde7916db iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xde927126 invalidate_partition +EXPORT_SYMBOL vmlinux 0xde9334ce abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea6d749 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0xdebf8db9 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xdec5fa57 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xdede988c tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xdee6eb67 bio_add_page +EXPORT_SYMBOL vmlinux 0xdef61c42 i2c_del_driver +EXPORT_SYMBOL vmlinux 0xdf2e9d22 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xdf45eb3c inet_stream_ops +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf5e63a5 bd_set_size +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf60fc83 _lv1_net_start_tx_dma +EXPORT_SYMBOL vmlinux 0xdf6da4b4 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xdf7316b0 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xdf81d146 mount_subtree +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfc858cd dma_pool_create +EXPORT_SYMBOL vmlinux 0xdfeca030 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xdff0c662 user_path_at +EXPORT_SYMBOL vmlinux 0xe00ee28b blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xe014f812 sk_filter +EXPORT_SYMBOL vmlinux 0xe01d3d76 iterate_supers_type +EXPORT_SYMBOL vmlinux 0xe028f8b9 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xe044d92e abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe0514a3a ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe06b46dc dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xe0705f84 vm_insert_page +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0983568 dev_uc_add +EXPORT_SYMBOL vmlinux 0xe0a61ee7 generic_file_open +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0d9b996 __invalidate_device +EXPORT_SYMBOL vmlinux 0xe0e58a3b eth_validate_addr +EXPORT_SYMBOL vmlinux 0xe0e9afa7 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xe0fc24aa param_set_int +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1739427 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe176aae6 sk_stream_error +EXPORT_SYMBOL vmlinux 0xe1b2b5c2 read_dev_sector +EXPORT_SYMBOL vmlinux 0xe1b4c6cd scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xe1bc01bf scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xe1c84443 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xe1cb15ed get_super +EXPORT_SYMBOL vmlinux 0xe1eb387b agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xe1ef6c18 generic_getxattr +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe20c63e7 _lv1_unmap_device_mmio_region +EXPORT_SYMBOL vmlinux 0xe220ceb8 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xe22125be tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xe22769ba mach_powernv +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe238d48e pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2610033 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xe269e168 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xe2755950 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xe27da7a9 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xe2993c41 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xe2ae4be3 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xe2afd8f1 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0xe2c66354 padata_add_cpu +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe2fb0ca6 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xe30f9dff pci_select_bars +EXPORT_SYMBOL vmlinux 0xe310a73e __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xe316fa95 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xe318486c mmc_host_disable +EXPORT_SYMBOL vmlinux 0xe32711fd blk_register_region +EXPORT_SYMBOL vmlinux 0xe3546b15 arp_invalidate +EXPORT_SYMBOL vmlinux 0xe354d8d7 mach_ps3 +EXPORT_SYMBOL vmlinux 0xe3638705 mmc_can_trim +EXPORT_SYMBOL vmlinux 0xe37626de xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xe37c9eaa dev_trans_start +EXPORT_SYMBOL vmlinux 0xe38683da block_invalidatepage +EXPORT_SYMBOL vmlinux 0xe39068a5 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xe3aea1b6 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0xe3b55382 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3e29c9c __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xe3e9b815 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xe420ce2d mfd_cell_enable +EXPORT_SYMBOL vmlinux 0xe4520ee4 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4a895fa up_write +EXPORT_SYMBOL vmlinux 0xe4b55540 phy_driver_register +EXPORT_SYMBOL vmlinux 0xe4e33c74 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xe4e97687 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xe4eaae3d mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5230644 inet_listen +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe528811a __serio_register_port +EXPORT_SYMBOL vmlinux 0xe532dc97 input_register_handler +EXPORT_SYMBOL vmlinux 0xe560a3a0 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xe56231cf compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0xe569a0cf __page_symlink +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57d59e9 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xe585aca8 sk_reset_txq +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a7e4d0 skb_seq_read +EXPORT_SYMBOL vmlinux 0xe5b52221 fasync_helper +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6013c57 md_register_thread +EXPORT_SYMBOL vmlinux 0xe60988ac _lv1_query_logical_partition_address_region_info +EXPORT_SYMBOL vmlinux 0xe60d9c40 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xe63671c5 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xe65419f5 serio_rescan +EXPORT_SYMBOL vmlinux 0xe66e0e5e netdev_features_change +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a2840c netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xe6a7d3c7 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xe6a9c7ca node_data +EXPORT_SYMBOL vmlinux 0xe6d7d16c pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6ff03f7 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xe7488967 pci_clear_master +EXPORT_SYMBOL vmlinux 0xe74aa406 _lv1_set_dabr +EXPORT_SYMBOL vmlinux 0xe7609b0d generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe768330f __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0xe76db8be inet_shutdown +EXPORT_SYMBOL vmlinux 0xe7992701 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7ad2b19 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xe7b10077 of_phy_find_device +EXPORT_SYMBOL vmlinux 0xe7b95177 agp_bridge +EXPORT_SYMBOL vmlinux 0xe7cd99b7 smu_queue_simple +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7f5caf9 simple_lookup +EXPORT_SYMBOL vmlinux 0xe7ffd666 skb_pull +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8137d43 poll_freewait +EXPORT_SYMBOL vmlinux 0xe820a696 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xe82cc752 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xe895e713 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xe8b4b12f module_refcount +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8b6f2a5 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xe8b81643 rtas +EXPORT_SYMBOL vmlinux 0xe8b9ef37 unlock_rename +EXPORT_SYMBOL vmlinux 0xe8c2ba45 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xe8cbd792 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xe8ebf346 ab8500_gpadc_ad_to_voltage +EXPORT_SYMBOL vmlinux 0xe8fde5db remove_proc_entry +EXPORT_SYMBOL vmlinux 0xe9045812 phy_find_first +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe930898b flush_icache_user_range +EXPORT_SYMBOL vmlinux 0xe9412e17 phy_print_status +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe98429c8 would_dump +EXPORT_SYMBOL vmlinux 0xe9934038 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0a9208 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea174427 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xea2cecd3 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xea5944fd journal_update_format +EXPORT_SYMBOL vmlinux 0xea8a6c75 param_ops_long +EXPORT_SYMBOL vmlinux 0xea8bbf70 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xea968c96 ___ratelimit +EXPORT_SYMBOL vmlinux 0xea9855ae blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xeaad5506 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xeaaeb9a1 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeafd4451 dev_add_pack +EXPORT_SYMBOL vmlinux 0xeb047869 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xeb165b20 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xeb320b46 simple_rename +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb7bb5b1 put_io_context +EXPORT_SYMBOL vmlinux 0xeb9f6e68 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xebb0e984 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xebb2fb46 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebe59444 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xebe94142 revalidate_disk +EXPORT_SYMBOL vmlinux 0xebee1307 macio_dev_put +EXPORT_SYMBOL vmlinux 0xec09c608 d_alloc +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec1d5cab scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xec25c501 cdev_del +EXPORT_SYMBOL vmlinux 0xec27c4d1 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xec30765a _lv1_allocate_io_segment +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec570212 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xec6537a5 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xec734fe5 dcb_getapp +EXPORT_SYMBOL vmlinux 0xecbe8102 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xecc79128 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xecdc446b mmc_can_discard +EXPORT_SYMBOL vmlinux 0xecf7fee3 flush_signals +EXPORT_SYMBOL vmlinux 0xed0a7bd0 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xed0e8e15 __blk_run_queue +EXPORT_SYMBOL vmlinux 0xed302f0f tty_lock +EXPORT_SYMBOL vmlinux 0xed3cf962 agp_put_bridge +EXPORT_SYMBOL vmlinux 0xed44738a udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xed4858c7 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xed5c86f4 devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0xed652427 _lv1_set_interrupt_mask +EXPORT_SYMBOL vmlinux 0xed668c4b __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xed759a53 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0xed94ab46 powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0xed968ba3 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedbb60c7 security_path_rename +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xedc9b10b update_region +EXPORT_SYMBOL vmlinux 0xedcb23fc thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xedf0b48c _lv1_storage_get_async_status +EXPORT_SYMBOL vmlinux 0xedfbf6ec tty_write_room +EXPORT_SYMBOL vmlinux 0xee0de937 generic_removexattr +EXPORT_SYMBOL vmlinux 0xee1208d3 dev_gro_receive +EXPORT_SYMBOL vmlinux 0xee1a0318 iput +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee388b2c kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xee419563 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xee4a7e5d pci_enable_ido +EXPORT_SYMBOL vmlinux 0xee5bb20b _lv1_panic +EXPORT_SYMBOL vmlinux 0xee811ae0 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xee8b3182 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xee903086 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xee9174c5 _lv1_storage_read +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb0ebb3 phy_device_register +EXPORT_SYMBOL vmlinux 0xeeb34316 udp_ioctl +EXPORT_SYMBOL vmlinux 0xeeb4525d kernel_sendpage +EXPORT_SYMBOL vmlinux 0xeec4edfd tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xeefb6db9 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xef091445 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xef09e3e1 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef166cca i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xef1cc81a validate_sp +EXPORT_SYMBOL vmlinux 0xef45d32c __kfifo_init +EXPORT_SYMBOL vmlinux 0xef5fc9dc pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xef600918 __get_page_tail +EXPORT_SYMBOL vmlinux 0xef839213 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xef89fc3a tty_set_operations +EXPORT_SYMBOL vmlinux 0xefa3d9b5 vga_put +EXPORT_SYMBOL vmlinux 0xefc2e54d _lv1_storage_send_device_command +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xefde6e23 of_get_property +EXPORT_SYMBOL vmlinux 0xeff6405d skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xeff7c003 init_special_inode +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0024d17 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xf018d9bb __devm_request_region +EXPORT_SYMBOL vmlinux 0xf0271db7 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf067bb0a blk_get_queue +EXPORT_SYMBOL vmlinux 0xf06c9a91 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xf0912675 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xf0a0d603 set_anon_super +EXPORT_SYMBOL vmlinux 0xf0c50add vfs_open +EXPORT_SYMBOL vmlinux 0xf0cef2fd xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xf0d2f84a _lv1_gpu_context_free +EXPORT_SYMBOL vmlinux 0xf0e2694b inode_get_bytes +EXPORT_SYMBOL vmlinux 0xf0ebd630 seq_release_private +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f4f0de skb_free_datagram +EXPORT_SYMBOL vmlinux 0xf0fd4e8f rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11cd6ce down_interruptible +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf127cf59 irq_set_chip +EXPORT_SYMBOL vmlinux 0xf14b638d cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xf16657cd tty_devnum +EXPORT_SYMBOL vmlinux 0xf183189b __ioremap_at +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1bea6f1 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xf1cf3036 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf214dd97 led_blink_set +EXPORT_SYMBOL vmlinux 0xf219d481 macio_enable_devres +EXPORT_SYMBOL vmlinux 0xf21e6cf5 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xf22b14d8 idr_get_new +EXPORT_SYMBOL vmlinux 0xf22c020b input_reset_device +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2481d2c thaw_process +EXPORT_SYMBOL vmlinux 0xf258bdc8 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xf2774dd1 inet_ioctl +EXPORT_SYMBOL vmlinux 0xf27b1a7a input_unregister_handle +EXPORT_SYMBOL vmlinux 0xf27f7c9d i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xf2857e98 dqput +EXPORT_SYMBOL vmlinux 0xf286d612 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xf2a628d4 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xf2ab6149 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xf2e333cc blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xf2f08360 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xf2fa065f generic_delete_inode +EXPORT_SYMBOL vmlinux 0xf305ab4f dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xf309e9ee cur_cpu_spec +EXPORT_SYMBOL vmlinux 0xf30d1036 _lv1_start_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31e7c55 task_nice +EXPORT_SYMBOL vmlinux 0xf3218fa1 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xf322a123 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xf329a471 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xf32b7094 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xf33364a2 lock_may_write +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf34025ac mem_section +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34e1991 dev_mc_add +EXPORT_SYMBOL vmlinux 0xf3536eea dquot_transfer +EXPORT_SYMBOL vmlinux 0xf357db8d pasemi_dma_set_flag +EXPORT_SYMBOL vmlinux 0xf35c34a5 macio_request_resources +EXPORT_SYMBOL vmlinux 0xf35d4163 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xf36d2288 make_bad_inode +EXPORT_SYMBOL vmlinux 0xf37417e1 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xf375b76c request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf38a48ef udp_prot +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf399c07d generic_listxattr +EXPORT_SYMBOL vmlinux 0xf39a5222 _lv1_get_virtual_address_space_id_of_ppe +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d093cf kset_unregister +EXPORT_SYMBOL vmlinux 0xf3e92e52 simple_setattr +EXPORT_SYMBOL vmlinux 0xf3ed2e1b scsi_print_sense +EXPORT_SYMBOL vmlinux 0xf40c48eb get_agp_version +EXPORT_SYMBOL vmlinux 0xf424db31 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xf42f01c4 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xf43b665a xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xf441187f key_task_permission +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf480a13d nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4960276 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f1d73f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xf4f68980 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xf508ed7b blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf545439b seq_lseek +EXPORT_SYMBOL vmlinux 0xf5527048 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xf55b3b3d __arch_hweight16 +EXPORT_SYMBOL vmlinux 0xf58205b2 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xf594f80d ida_get_new +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5aa2710 blkdev_put +EXPORT_SYMBOL vmlinux 0xf5b0e98b __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0xf5bdc9ac tcp_v4_get_peer +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5cf326a param_ops_short +EXPORT_SYMBOL vmlinux 0xf5de8a09 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf60d597b fget +EXPORT_SYMBOL vmlinux 0xf612809a param_get_int +EXPORT_SYMBOL vmlinux 0xf6213e12 pasemi_dma_clear_flag +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf65b1465 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xf663af1e kmem_cache_size +EXPORT_SYMBOL vmlinux 0xf66a7b1a ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xf69627b3 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xf69cb2d1 md_flush_request +EXPORT_SYMBOL vmlinux 0xf6ac3dab register_framebuffer +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ca3f0a __lock_buffer +EXPORT_SYMBOL vmlinux 0xf6e6af11 sock_i_ino +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ecb763 _lv1_send_event_locally +EXPORT_SYMBOL vmlinux 0xf6f69109 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xf727555b mntget +EXPORT_SYMBOL vmlinux 0xf74108c7 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf747dd44 kstat +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf78787ba phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7b7a003 journal_check_used_features +EXPORT_SYMBOL vmlinux 0xf7bac0ec _lv1_set_lpm_counter +EXPORT_SYMBOL vmlinux 0xf7d3ad5f blk_free_tags +EXPORT_SYMBOL vmlinux 0xf7d71918 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0xf7e32f6e have_submounts +EXPORT_SYMBOL vmlinux 0xf7e5c2bd sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xf8004bfd _lv1_disconnect_interrupt_event_receive_port +EXPORT_SYMBOL vmlinux 0xf80246fb __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xf80341ab tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf8115b4d pci_get_subsys +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf81f21b1 d_drop +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf832904c input_set_abs_params +EXPORT_SYMBOL vmlinux 0xf8361df8 dev_alert +EXPORT_SYMBOL vmlinux 0xf83ec01c compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0xf8673a8c bio_init +EXPORT_SYMBOL vmlinux 0xf88e9b2e noop_qdisc +EXPORT_SYMBOL vmlinux 0xf8906870 vio_cmo_entitlement_update +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8b144f7 brioctl_set +EXPORT_SYMBOL vmlinux 0xf8cf8691 neigh_direct_output +EXPORT_SYMBOL vmlinux 0xf8d5513b file_open_root +EXPORT_SYMBOL vmlinux 0xf919b9e4 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xf91d9597 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xf93466ad mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xf97bc5d3 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0xf9914df7 tty_port_open +EXPORT_SYMBOL vmlinux 0xf9a3ab47 lock_may_read +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9aa5347 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xf9ba3313 seq_release +EXPORT_SYMBOL vmlinux 0xf9c844cb security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xf9d38d07 mount_ns +EXPORT_SYMBOL vmlinux 0xf9dbe61a inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xf9e0ca98 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf9f3b24f nf_register_hooks +EXPORT_SYMBOL vmlinux 0xf9fae254 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xfa0b9c04 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xfa0df824 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xfa2028a2 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xfa2cb601 cdev_add +EXPORT_SYMBOL vmlinux 0xfa43ca44 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xfa4eaa7f agp_free_page_array +EXPORT_SYMBOL vmlinux 0xfa74d8c6 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xfa75497d add_disk +EXPORT_SYMBOL vmlinux 0xfa7e1a82 kill_litter_super +EXPORT_SYMBOL vmlinux 0xfa8d243e __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xfab41fb6 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfae8e559 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb41cf34 ps2_drain +EXPORT_SYMBOL vmlinux 0xfb44f323 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xfb566934 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0xfb5f846a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfb5fb492 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xfb63f2c9 sys_fillrect +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb71f660 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0xfb7d26f4 files_lglock_lock_init +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb2ba1f dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xfbb8a4de inet_frags_init +EXPORT_SYMBOL vmlinux 0xfbda3c79 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xfbdfa44e igrab +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc0011fc neigh_connected_output +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc19d780 release_pages +EXPORT_SYMBOL vmlinux 0xfc204cff ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xfc2b6af3 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3c7d84 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xfc50a5f0 bioset_create +EXPORT_SYMBOL vmlinux 0xfc5b7ea8 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xfc64aa83 lock_super +EXPORT_SYMBOL vmlinux 0xfc6b5425 find_lock_page +EXPORT_SYMBOL vmlinux 0xfc86c117 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0xfc8f6b2c pcim_iomap +EXPORT_SYMBOL vmlinux 0xfc965552 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcada70a tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xfcb0ad4e xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xfcbce303 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xfcbdca26 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfccc4b75 arp_create +EXPORT_SYMBOL vmlinux 0xfcd0865e mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xfcd09dc1 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xfcd35070 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xfcd57666 sk_dst_check +EXPORT_SYMBOL vmlinux 0xfce12b0a filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf0cf3b inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xfcf99e06 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfc073a netdev_change_features +EXPORT_SYMBOL vmlinux 0xfd04b2ed dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xfd16e85c writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xfd2325b6 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xfd50caa7 kobject_put +EXPORT_SYMBOL vmlinux 0xfd56c140 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6a20a6 flush_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xfd85b85d input_set_keycode +EXPORT_SYMBOL vmlinux 0xfd9fb76a get_gendisk +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdceec36 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xfdd2eb7f xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xfdda6891 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xfde4dced mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdf33486 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe046f97 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xfe1aac63 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe31d335 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe4b82fb __dev_printk +EXPORT_SYMBOL vmlinux 0xfe4cb4b5 _lv1_storage_write +EXPORT_SYMBOL vmlinux 0xfe50f522 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xfe5cbdf0 blk_complete_request +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe6d2135 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe85e200 pci_disable_obff +EXPORT_SYMBOL vmlinux 0xfe92e053 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xfeac55a4 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed221d9 pasemi_dma_alloc_ring +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfee0cb4a bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xfef62ef4 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff0c235b ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xff11494e registered_fb +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff1fe12b ip_defrag +EXPORT_SYMBOL vmlinux 0xff3cfa56 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff68c0e6 softnet_data +EXPORT_SYMBOL vmlinux 0xff6d2a42 blk_start_request +EXPORT_SYMBOL vmlinux 0xff71440a ata_link_printk +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff81d2c5 __debugger_dabr_match +EXPORT_SYMBOL vmlinux 0xff871d77 blk_delay_queue +EXPORT_SYMBOL vmlinux 0xff8a3db9 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xff93eb1f xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa1b60d swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xffa47567 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xffafe07c tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x0d1e1bf1 spufs_context_fops +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x4d026472 spu_save +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x7a34874d spu_restore +EXPORT_SYMBOL_GPL crypto/af_alg 0x340980a7 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x58716898 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x63aba7d7 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x83cdc766 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0xc356e195 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xdb1fc71a af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xe87c22f5 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xf1ec4cf2 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xfeb9070b af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x290c2546 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x3ed88d82 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xab6f3ac0 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x07e580af async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc83cca02 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2c01ac24 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x461babbb __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7ebd8e11 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe647b7b5 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7e22977d async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc3e7d073 async_xor +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xd0a9693c blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cryptd 0x10684c9a cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x39a9bfed cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x676211d7 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7e6d20c0 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x8879ec3d cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xa6a4ddc3 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xc6c298e2 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xd7cd9d24 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xe78e55b3 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xf96fdc5f cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x028260c5 twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x530c0488 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x585e5292 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x66622495 sis_info133_for_sata +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/bcma/bcma 0x19511c73 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1ebe27da bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x224b995d bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6e9619d5 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x806f6afc bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x99f29ff9 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa60445d5 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb13567f0 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbdc8c382 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc430e191 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdc38229a bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xef2a2514 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfd0a8f10 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x06d62fc1 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2a9152c7 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x574e1b16 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5c629f0f btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5fc4705f btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x871089ba btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x93a3bfa5 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa0791531 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x07bd0303 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4247296d edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5607e7a1 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x56ef0aa3 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x58774697 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x61ddb456 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6325f937 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x64f4cfa3 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69e74130 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x71f07e2a edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7dfcb829 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7fa91153 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x93bed256 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x93fc1684 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9b5f44b4 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9ec830e7 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb6a262b7 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc7418655 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcdac8b41 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdd6cb4e6 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdf49f142 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xef3ab16c edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf6f15388 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfd288c4b edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfd85fb0b edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x400a7283 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xb784ca0f bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x1eb695b6 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x73de29f5 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x38643bf5 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x3b9a8a8a drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0504b59e hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x110a2126 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x16baa6c1 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19166e6e hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2c3f27c6 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2e92b9f1 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x300efb20 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4956a36f hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4a809126 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4de119d6 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x564b0ac5 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x63248c27 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x755de132 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x75da0f09 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f3bb899 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8c9ee994 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8fd23064 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x97e392d9 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa24200a6 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa6b5414e hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb929eef1 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbd34c5a0 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd3d36537 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf72af2bd hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf76d0d7e hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfa9d574b hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x1c78036b roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x5958f0f5 roccat_common_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x6bd25e6b roccat_common_receive +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x588fb058 usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6436fd0c usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x73606e58 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb0379940 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x79681dca i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x914e9371 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x97d96f14 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xaa43924c i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xd5f29d14 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xe89f4792 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xeacc35ec i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xeb217a96 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf859a5a3 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x643275e5 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xe900c7aa i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x05fda873 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x1ee6fedb i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x0210efab input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x726c432b adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x095f3d5b wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x14e12001 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x26e6b1f3 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x37260708 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x437e3d67 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4840516d wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4c9d20be wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7f749941 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9055be3b wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x97bc3cec wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc5f53dc5 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc812f885 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1acab528 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3ae8b16d gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x48f66f83 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x58a6de07 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5d05aa0c gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5deb2bc7 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x745558cb gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x757680f6 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7b498949 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x81d06e27 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x91d6a655 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xafe2992a gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xceb7df28 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe2d74991 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe86135dc gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf281670c gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfb2e75e9 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfedccbc7 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x02907ffd wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x40ebafb0 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x8e6437a1 wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x9376cc39 wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x93a8f96e wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa01a3862 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaba8243c wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xb18f881c wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xd8621c92 wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xe65aff28 wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0x9808f147 wf_pid_run +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xb8ed5b2c wf_cpu_pid_init +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xcd9a18ef wf_pid_init +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xceda69f1 wf_cpu_pid_run +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_smu_sat 0xe05851d5 smu_sat_get_sdb_partition +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aba7f5e dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +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 0x9310ba06 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9c256008 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa1d2413a dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xafbda3f3 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcbb1bae2 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe4a809f1 dm_bufio_client_create +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-multipath 0x19e18ea5 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xd1660bc0 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 0x308a0dec dm_rh_dirty_log +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 0x4430764e dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45ab972a dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4821e850 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x547f08aa dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5668b526 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x785679b4 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7eae97c1 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa68e1f06 dm_rh_get_state +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 0xfad9d53a dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc62ef4e dm_rh_get_region_key +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 0x009e200c dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x03ced457 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x08a936ca dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x28400536 dm_sm_checker_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x42727fbb dm_sm_checker_create_fresh +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x43293720 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x63b2ff62 dm_btree_insert +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 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x769a642e dm_tm_open_with_sm +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 0x80afbcf5 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x98925a60 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa25904bb dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa6aae3ea dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa7e46220 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb967690a dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdb562135 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xefba9b23 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf99dc2cf dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/raid1 0xd3e67ecf md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x6cf66cec md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0acc1c37 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1d8e38fb saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x28c2ef02 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2a1aa496 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x37d73403 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x48efffb8 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x54144c33 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xafaf5a61 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc5bd811d saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf3ecef3e saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xffc3c761 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x34154657 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x461b4b75 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x65cc5602 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7edf96dd saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xc278342f saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xeebbaaaa saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xfc1d7d96 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x5b81fd80 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xcf706ed4 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x0799122a tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xfe271732 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xa57b5ddd tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xaa0a5a03 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xd58cd0c1 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x1d86b226 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xe3a02629 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x2334a61c tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x7d8b44a1 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x58bf235c simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-demod 0x30db9f8f mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x80825734 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x222fff87 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x24d7a3d5 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2c1d76aa mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x37bac406 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x431c17d3 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x47df0458 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4d225c64 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x510d9ed1 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5da66aa5 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x604ae5c4 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6bfdd1ee mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa38e345b mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbdc7525c mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcb2c208b mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd55c4778 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdeeb7352 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xea1725ec mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf2c9a6e4 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x01d36d62 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0dee8140 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x149ac913 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1d4fb92e smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3fb63e76 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3fe87243 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4d8a72b2 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5b9e0982 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x68834963 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x748c9b12 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x76222253 sms_get_board +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x780cfbe9 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x78e94f32 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7b7a0b73 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x800af033 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x84c85d0f smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x98cea5ce smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa4e3f8c1 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb228a846 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x20ff1205 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x33487b15 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x61c16bf6 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x726a157f ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x90a1bb75 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd87310f1 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xfca3f9d8 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x16a4b3d0 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x19b00628 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2df667ca ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x468f9648 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4ce72706 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4d6b398a rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x58a4588d rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x72913638 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x735b3c84 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7b9783c0 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7ca479ac rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xad87c485 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb8ce5d4b ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc6e588bb rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc8b7fe9d rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf11a6558 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf9889e77 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0d75825d cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0e28b68c cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1e71583d cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2dc8bcca cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x38cb81db cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x519d9c48 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5fed0acf cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6cf6c4af cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x7a12c942 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x82d653fc is_fw_load +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x85ab44e4 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x892b73b1 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x898ae525 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x93f7a884 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9ab6f8b7 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa50825cb cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb90997be cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xbc6f1b46 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd45ca35f cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x76bf6132 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x021aed08 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x17dfde7c em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x2a478dab em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x4904b303 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x588fc805 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x5d004fe9 em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x655f0e67 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x91179d29 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa6fa82bc em28xx_isoc_dvb_max_packetsize +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xfd3532fb em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x26a2a906 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x655142e3 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x7eeab3e1 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xc661fc84 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xc933be5f saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x46f1138c tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xa21c45ca tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xee06a1e6 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/video/tm6000/tm6000 0xf0aa9e13 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x18e23eb2 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x3fb306ae v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x473c1067 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x9eca43fa v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xd8128d78 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xd81abb3b v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0xa4fb4fdb v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x03558e4a v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x10b15802 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x87b8cf25 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa56dd472 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0a7139dc v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2dce0516 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x428e06f3 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x553d15f2 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x70eacf85 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7d4f80c7 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9d018528 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb2b5597d v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd1da8917 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd51081eb v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe6efe01b v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfc7e9414 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfca740e0 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x01d9fcf5 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x04f37e31 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x068559c0 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x123f9fdd videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x16408f4b videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1c39548a videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x29de9963 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2a37a10a videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2c4ec4bc videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3bdc4743 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4e6f882a videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x511cc57a videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6218db6a videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x852baf3d videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8f630914 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa07cab19 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa1856374 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa88cea71 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xad99e6d8 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbea8c70f videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc4e87a0f videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe4cc5a16 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf0310686 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf2295079 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x488eac73 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x5b1ad499 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xefc3c22c videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x13696c3c videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2ab53d1f videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x301a581c videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x35f5cf94 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x56194f63 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7dec7ff1 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x920f6b2d videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xceb0ea14 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf1864d25 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x847db3a5 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x95f9e994 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xf613fa3b videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x3681095b vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x3872feda vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x4c368e6d vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x4f47ebfd vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x65a32170 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x76b727b5 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x8361f428 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0x9fbff581 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa30cd754 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa42acf56 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xa7cf44a9 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xbe154439 vb2_read +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xd1ce0a33 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xe138ed30 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xe150b337 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xe30c8c57 vb2_write +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-core 0xe67f3465 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0x7da19853 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xb0a8b6c2 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x3d4ddb7a vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x4e4e48ac vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x6c6b50f7 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-memops 0x78bb065a vb2_mmap_pfn_range +EXPORT_SYMBOL_GPL drivers/media/video/videobuf2-vmalloc 0x90770971 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0e97221a v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x132fcb37 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2c1a3ac9 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3290f452 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4c2bb0bf v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x50ceed4f v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6229d041 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x73a8e3db v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x83f157c5 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x95a12e37 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9e321413 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa0f17b52 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb0851aac v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb3feb23a v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc4904c2f v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc6adf774 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xceb4c867 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcf8b5892 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd44434bb v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xec3f5948 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xed140e91 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xfa79326a v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0b4dba23 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x5be26c5f i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x94fd6ec6 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc01bd171 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc1b7c467 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xeb0f3911 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf1017925 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf14bd37f i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x29d1d107 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0c10a712 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x23c337e8 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x73631ace pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7d9e13e6 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7f65cf7d pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8ebcb862 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x91e64917 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x92220cd3 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb854e512 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xbfe6efaf pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xeaa32417 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x1dafdf6b pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xc37a0b6e pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x08c063f8 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x42b2887e pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x45db005a pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7fd869c0 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc0a19eca pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x4bbf68aa sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5c7d47e0 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6b8111ca sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6c6a2466 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd5af2e0c sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x08b8dd2e twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x05dbc091 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x394f53cf wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x42a5aad1 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb68de9aa wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xcc41e4eb wm8400_block_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x12cde054 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x48ce35a5 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x6c6e48e0 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xdb00a930 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x0052cd94 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x0c8ea901 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x15b0e7cc enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x354ef029 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x92647fcd enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd034a94e enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd993a037 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x1327d5ce lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x351b4507 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x6f8ad4f2 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xcebc68b8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xd09dde81 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xda550b54 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xec10ac7e lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/pti 0x19f09b98 pti_release_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x23bde487 pti_request_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x52a78e81 pti_writedata +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x7b530587 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xef23e84a st_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0e49545e sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4bfd56ef sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5e3e640b sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x71377386 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7c07c02d sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8c2256a1 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xaf422929 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd0d97db9 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd767fc49 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x3430cd29 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x86b9a7a0 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x8acd3de6 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xe02961f8 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xf7d3729b sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xff1ea903 sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x8c2bd8fa cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xa5312359 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xda5bcbaf cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x0e312aee cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x5c04dda8 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xf1361e85 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x3ae8cea2 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x1924f360 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x54068d21 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xa769e61e cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x9c0dd35c DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xe1f601c8 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x05e1e4b2 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x001bb48d mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0fb3e2d6 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x115625a2 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2bff322c default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2d07a1eb deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4121392f mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x47fe952e mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5f7b2e26 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x627be4e3 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6e811863 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x71d56f7f mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x74b70e97 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x81261adc get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x84f072e1 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8f2f36ca register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x92e1e086 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x932a50cd mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x95f095f8 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa5e00360 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa7916d9e __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb47133bb __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x437ad246 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x47175155 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x7cee23c9 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x9881e2f0 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x9fab25bf add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x5ef4dae6 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x7bc20c82 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x46994567 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x42194f34 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x9c6abc6b onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x14774720 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1611f7ee ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1cdc1556 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1f9af9ca ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x49e1d9d2 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x570ea749 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x869a492d ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x872910a4 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x89a5de13 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xae60b442 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xae8c8902 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xcc8eb586 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf4360cb5 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x09ec02ef free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x2c6e14e7 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x37209007 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xa8b5e6d5 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x078ce0c3 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x32fcba5b free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3966e7b8 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4430067f unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5e1c9b21 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x62cca4f8 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6954327f alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6d26b75c can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x88a5d429 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x927e8d55 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbb468066 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf0da41e0 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x7527be47 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xb38a3e11 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc0257de6 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdbc8189f register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x047069a4 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a0d4dbb mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d5d93ce mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dbc73ff mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0ddc9f7e mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12d6f79f mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b9b174d mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c065ddd mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1fe3270f mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2311780d mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x25005063 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2549ef94 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x262410a8 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2893b8dd mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c26a609 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f9cb13a mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32afbc07 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x46b0d962 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x477009ea __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x493ee84d mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b6dbdeb mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d4fa1e5 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e289a4d mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x51cefbba mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5adad8b4 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d500c84 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6259d430 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x641f2839 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x691e92fa mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d7c9b3c mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6db39047 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ded1349 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x70565e4d mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x720f0f1b mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73cd4a9c mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x759ec4f9 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79e29a76 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a3b3d38 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7c617090 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8255a55d mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8429e243 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x853b5cb6 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90857780 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x91429482 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9fbc2b06 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9fdb4952 mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa408a9c mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac52cbed mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb1267700 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba3a9f3b mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbe05d9a mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc20e64a7 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc34ba49c mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc39e2967 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccb35a85 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf05658e mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd05bc582 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0b1c2f5 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0cd5a05 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0f15c0b mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd4c32a2a mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd566de67 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd74506a2 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc955014 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe76eaf93 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xebbb8715 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeec445c5 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf695aee8 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x41976eb0 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x49ee74a0 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x76cd9bf6 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x868851df macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf3419491 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x004f740e macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3752035e usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3ddfad55 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4711ac8f usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xc07980e6 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x25d77d6d rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x501216b8 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x65ad47f8 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9f5280ce rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xa8396216 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc8353a1b generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0fa60c38 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x18c1ab45 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1a3dc648 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2a083b2c usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3424b1bc usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x367abf1d usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x36b05e61 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4d6fc143 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5cbd7903 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5dd5c2ba usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x78d66044 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7b526b3f usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7d614e91 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaa82d026 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xad24a33d usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xae2ea487 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbacf0f0b usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc6fd1f74 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcb0f6edf usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcdce69e3 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd124095a usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdc9ab821 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeea0ed77 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf7113bba usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x224ec6f7 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x34c72b9b i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4ecc2a33 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5c47519b i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6a0b2d95 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x72ade749 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x773cecf4 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7acce9f3 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x801f7ba5 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x88e71525 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8c4628bb i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9320489c i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaba1689d i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd17d8eb6 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdfc99b70 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf2ec4389 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x8c3ebfdb libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x2c847713 iwl_legacy_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xa3ad5845 iwl_legacy_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xd4675843 iwl_legacy_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xe2865819 iwl_legacy_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x10c70564 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1fba001b lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x29b52bda lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x554629d8 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x75943e36 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x775c8453 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x78966540 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x83a88997 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8718ecb7 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8c29a4fa lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa5d42d2e lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xddeb1cbe lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe2045c55 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe383acb0 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe8dd376b lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x043c2ac7 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0e8ef96b __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x159f2e69 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x15c235de lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4a049ebe lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x75f29a9a lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x78369cf2 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf1b77d2e lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x4eeb1258 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x84cb2c31 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x03d826aa mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x099fd2f1 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x293cb1bb mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3ae584dc mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x636a7275 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8f8937a4 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x96f60af8 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa411253f mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd80fdaf4 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xfbad6959 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xfef5e9f9 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x12064596 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3de1ba9e p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4614f64e p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7fa338d0 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x8e9579c1 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa1c00498 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbad9fac7 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xecd7a06e p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfc950e4d p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0d44bb97 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0dc54d18 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x16841be7 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x198c9712 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1d38ae9d rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x202dad5d rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4257e29b rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4c45a2af rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4d2fa072 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x52e1f3d7 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6902a519 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x79581c74 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8282612b rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x84494c7d rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x84d4249e rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x89f8d905 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8c3b4cd5 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x93221bbf rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9469ece8 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x94a37a0b rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x97617a18 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9a92fbd3 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9bfa4b57 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa762e69d rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa9b9d30d rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb373fc48 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb46c1078 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc499a45 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc8dd3bea rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcc6cb7e4 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd34ca6d2 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd3ede0ac rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe05b6343 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe9941d6c rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xea5b77ad rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb8052af rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xecff0797 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x015da227 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f88994e rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x152e6765 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x19afa033 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x201c70f9 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x226810d3 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x285e1065 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2bfbdbce rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2e007b7e rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x36e9bb8b rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x372219a8 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x37fc938d rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x38c0a0ae rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46dd7f8b rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4f037d9a rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5ddc6504 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x69933e07 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6ccdecad rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x706acf8c rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83025aee rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x858fb820 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x87bc730e rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x890a6d39 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9c2e604f rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9d5fcd79 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9e6a40a3 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa0b0185e rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa7d95369 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa9d372aa rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xab752a3f rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xadf62e51 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb20c2a25 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3a6896a rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb51bfa4f rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbcc4558a rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbcd38e17 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbe8531f3 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xceae35c7 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdd4b5bd7 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe2e1c005 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeabd9224 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xef5a5096 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf33f43d0 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf3c79705 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfeea26d8 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xff8162cb rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x23a143ca rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x533af345 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5b20b52c rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5cafa029 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x68d2d601 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8e1549b4 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb24d3c68 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfa53024e rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfae7002b rt2x00pci_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x40822067 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x63de2007 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6db745ad rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6ef794b1 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x73399cf8 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x90562d43 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x91e244bf rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa0ee42ba rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbbe8282c rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc3ec8ba5 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc67b9c41 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc6b6a560 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc74cd531 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xefe94c09 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfaf2d2ff rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfe59a12b rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x1cb4df06 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xbed28160 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xe6e1a691 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x19c9e45e wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x54e5efc2 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x7c76e559 wl1271_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x85c93dbb wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xddcc26fe wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xde224ba8 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26 wl1271_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xf80f5057 wl1271_load_firmware +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x01cc7086 rpaphp_slot_head +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x7bf20aea rpaphp_add_slot +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x8f000cbc rpaphp_get_drc_props +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0xa9a72e48 rpaphp_deregister_slot +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x0a3e7022 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x1cac4473 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xcd493086 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x003998ab ps3_write_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x0bdf50c4 ps3_disable_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x0e622920 ps3_write_pm07_control +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x181e55ab ps3_read_phys_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x1bcb88c1 ps3_write_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x2abf1471 ps3_get_hw_thread_id +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x2b339635 ps3_disable_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x3c71a6b2 ps3_set_ctr_size +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x4a24996f ps3_lpm_copy_tb_to_user +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x50488f64 ps3_lpm_close +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x58e642c1 ps3_lpm_copy_tb +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x59c54782 ps3_set_bookmark +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x5eca6711 ps3_get_ctr_size +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x60e3f0d7 ps3_read_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x6702a28c ps3_get_and_clear_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x69010c19 ps3_set_signal +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x70177200 ps3_write_phys_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xa76ee01d ps3_read_pm07_control +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xaa190bc1 ps3_read_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xbb72a01c ps3_enable_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xce72c9c0 ps3_lpm_open +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xdddfc980 ps3_set_pm_bookmark +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xfae0ab68 ps3_enable_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x371c733c ps3stor_send_command +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x6172e5e1 ps3stor_setup +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x78bc60a9 ps3stor_read_write_sectors +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0xc412fd7b ps3stor_teardown +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x6da49727 mc13xxx_fixed_regulator_get_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x994ca80e mc13xxx_sw_regulator_is_enabled +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9c246313 mc13xxx_regulator_list_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb1d48353 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xbc43c9c2 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xbc8df814 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xef72ccf3 mc13xxx_get_best_voltage_index +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x726f9822 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x86a25a35 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8f1a35b1 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xcb31b2d9 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xdaf77992 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf28d659f wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x9f5b4886 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x083105ff cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0952ce43 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0e6fa754 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x18419252 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1998dad0 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1cb8baf2 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x31049472 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3957f616 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4140ce0f cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x44da5bf4 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5e71da86 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6d277f01 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x73df6c86 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x778a9ac5 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x77b46a37 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7ec32aaf cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7f2fe137 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8d87b9a2 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x949ead3e cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9679b04d cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9727bfa5 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9895afcc cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x98c7a191 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9a19fff1 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9dc845f0 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa1c0f0ec cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa53f6df5 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa7cddf66 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa839e86f cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb1b13fde cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb797dd89 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbbdb4adb cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbc8149a7 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbd519fc5 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc6d30ce1 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc8793937 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc9591710 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcc9ccceb cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd4292e98 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd53b049d cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd9d1f602 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe4930608 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf4215d33 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf82cb868 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xff437b35 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x2af00301 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x3873d79d scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x7b0a50db scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x98fd0f89 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xbe0bdb46 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xea6475ed scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x058aebe8 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1ccc64b7 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x31000b26 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3e2af3a3 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3e9b3628 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x41776f63 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9278ac45 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa476714c fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe29b0938 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x3cd70f04 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x5caf368c iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x6407b895 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7c5d6fa4 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa8d38c43 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xac7e529b iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0013ed1f iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0436f0a8 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x082efe28 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09cb5f2a iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09d0594c iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b3d8595 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x19c303c1 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x19c458b2 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ff0a2b1 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x267f6775 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28e1b5ff iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ca5479e iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3cf2f5b0 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d16845b iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d1441a4 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f722358 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x63c5dbe0 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x649ca0fd iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6bfcb98d iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6da29500 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6dcd7e88 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x753a42d3 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7dd960da iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7e4170fc iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f26b224 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x86abbb53 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96dc84d7 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96e676f7 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb391b2ff __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb5b3d540 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbcd846d8 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc70ea3ea iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcd8dbc89 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdd29f991 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe02da521 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe8d2600b iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec036a58 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec97035f __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf45b3378 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4a1361f iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf7f0c37c iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8460a5c iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfdec4070 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2739fe2a iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2ae92d65 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3c0f59d2 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x44d56e84 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7090e4e0 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7284fb27 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x744899ad iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x88bde98d iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8a95ac67 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa087df82 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbe4e2107 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdcfed78d iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe2846f20 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe6772e81 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe7e78aca iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xff040d8a iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0afbdd8d sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x178dad0a sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x25b7cd67 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x30a95973 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x361be7cc sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x36c559c2 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x40af2916 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x45210e2d sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4babdd2e sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4db42d20 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5990cbbe sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6df223d7 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x757510aa sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7d45fbdb sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x81ae0bd1 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x84aa53f2 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8501fe28 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x951fb850 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9d4e9522 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaa4d5cca sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xac60f091 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcc5306f8 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe34e6168 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf9a74e02 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfb9e0247 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x10c943a4 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1354fbe1 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x45b7fd31 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x52f6c28c srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x70d0ea9f srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xddf06a33 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x00502e8f scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x033bf1e1 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3419185a scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4368c5ae scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x88d2028e scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x99dc5eac scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb17fad45 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb69155a4 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbea10aa5 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x01fdab38 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0aa55e44 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x124fb167 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x19a56e8b iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1c3647e6 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x238d3b74 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x29a7c86b iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2f97e305 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4f91662b iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x51e065fc iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6bbaf3ac iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6c12d0c6 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x799e7e14 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x99bd9fc5 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9cd71fab iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xabbf379b iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb1b110d0 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb6892845 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbb19b102 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xceaf13fc iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd9ddf011 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdb309b0d iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe9aa03cb iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf73ea63d iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf90a1369 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfa76ddcc iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfb9edf94 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x59be7494 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x60199649 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe119abc9 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe4e6bd5d sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x20395fef srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2185b937 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7534dfa5 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x779011d0 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x77a8d936 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x451cbd56 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x80e6afb6 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x8e07db29 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xa307bbb8 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xa3e7b7f0 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xf1a70fec spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x0258352a iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x143ea32d iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0x2b106d69 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/iio/industrialio 0xe428ce86 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0x35b85807 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0ef1d765 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x21a88333 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x580e8758 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x639579d1 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x74f40a7e spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8081037b spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9f54a7ed spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb35aaab9 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb73a5748 get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xcae5254f spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd0e2ab0e spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xee649caf serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xee8a59a8 synth_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x00dee3db usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x23006267 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x36ca08d5 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x39bff112 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x854a5130 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8ad960ef usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9baf0037 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9bbfee8a usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa977fcf7 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xbc7849e9 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xbdfe2bb2 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe98888e9 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf88fdbb5 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/8250 0x8256e1ea serial8250_handle_irq +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0xbb23a3dc pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250_pci 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x01e564b6 max3107_probe +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x02259570 max3107_resume +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x2984fb37 max3107_suspend +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x5647c1f5 max3107_rw +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0x8b3aa990 max3107_remove +EXPORT_SYMBOL_GPL drivers/tty/serial/max3107 0xed003602 max3107_hw_susp +EXPORT_SYMBOL_GPL drivers/uio/uio 0x15258099 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1c30e2e5 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1e27c8c4 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x290e023f usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x9214e85f usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x03d3b889 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x9d467fb3 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xa7c1a6d3 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xb4bdae2e usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x18a013f2 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x439d23a9 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x796d6d82 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8c7a6ad7 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa59011fd usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd158511a usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd16976e7 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xde5aae11 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf811d249 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0383fca0 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x20bcc149 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2d2c6dd1 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5b4a4764 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5bafa872 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x637c4466 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7bd14a14 usb_serial_generic_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7cb1d02b usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fcb99f8 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8e538ce9 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x93b8a874 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb87ca98c usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb91679e4 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc51e1223 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdb4792ff usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe90efac0 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe9d7ac73 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf6f30583 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf8fd08fc usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfb8cdedd usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfb9a2b51 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0bfdcbfe fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1003df29 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1349ca49 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x161c3f89 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x201f173b usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x32757245 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x34822ed5 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4783e849 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4b1d925e usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6673ff53 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6bc2617b usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x74fafc66 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9960f5b4 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9be68f48 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9d5cc738 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc627cdf2 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcae1b4e5 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xccb6e57e usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd4b6806b usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe0e3ec13 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf9775392 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfd08b62c usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x03735438 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x15880b9b wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xaa820d00 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xaf517bdf wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb0cce138 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0d412aac wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x100f76de wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1bc4255a wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x27df18e0 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x460ae1cd wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4c804f78 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4dc57648 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x68d9434e wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6beff3ee wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x76170442 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9e4cc8ff wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9f95e8aa wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9ff20d3e wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa5489895 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xabc1b3c9 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe5305267 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x1ed8e298 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x803c1a4a i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xba727e74 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x1bb3313e umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x2a264a56 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x68415c90 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6d86f639 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6f0df323 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8dd7485d umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xbaf04a76 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xcc649d3f umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x08ddcd4d uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0abf48eb uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b2a3c6c uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0cb48da9 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1393b588 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x16d09882 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x16f8d627 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1a66899d uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1eaa93e4 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x31058c1f uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x31ba2fda uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x39cc2703 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4669e6f2 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4694d6ef uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47f6c244 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x49d44ce8 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x51183358 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x64e75d59 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x77698c0c uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7a618e4d uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8bf0aafa uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa23c9753 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa8a1626b uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaa55b745 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xad0112b0 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xae4e4266 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbc8377dd uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc5878895 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcfdf5d5c uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd0b0ebfe uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdf420176 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe21a10c2 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe49684c1 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe92c4c52 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xef913944 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf22446ba uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf8018c21 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xa08d32d4 whci_wait_for +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5947ec1e ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x771ec00d ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x81f1c16e ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x884a40f5 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8a790c57 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x9b288201 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xad5fd12b ili9320_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xb2d3b65d sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xec88d0b1 sis_free_new +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x1cf86b86 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x3d757ed0 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x56466dc4 register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xa1195ee4 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xb1188ee9 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x01632092 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0a6a3038 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x135df337 virtqueue_poll +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x27d01ed1 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x33f40750 virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x364bd71a virtqueue_add_buf_gfp +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x3cf5b36e vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x674f3c73 virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x7a023141 virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xae71ac7f virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc4c71dce vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd4ecad68 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xe6f85432 virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL drivers/w1/wire 0x23c39453 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x27194572 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x28b132a3 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x56d9ddd4 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5d5ec66f w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x70241bea w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x72571bcc w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x87671e23 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa263b286 w1_next_pullup +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0e45f90c dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x29201356 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9ba8a2dd dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/fat/fat 0x052d6a88 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x0c9edddb fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x15aade10 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x20bf0e5d fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x2188b419 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x2c93624d fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x3243dec1 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x408005fe fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x7ea7ac19 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x820ab8b5 fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x8768f67f __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0xa61d9031 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xc15beef9 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xc6abcbe5 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xd28a39b9 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xdb235b9a fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xe0cf7bb0 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xf21a0b74 fat_detach +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0408b0d0 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1dc58ff4 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x22826a58 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x52be58f2 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8ea5e837 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0267e0c7 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x076639f8 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0886b316 nfs4_reset_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0a23f3da nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x162c4423 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x23fe1979 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25b7fec3 nfs_commit_clear_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30868725 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30f7a05b pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3a34c23b nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ac9ea11 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3b7277b9 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ec46a59 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4eb10d34 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x515d6731 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51a273fa nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67e38f8d pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x71e47ac7 put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x72948cce nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x77c621b5 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x81bd40c6 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x877cadfe nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8fe69015 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98c7561b nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9d3aef07 nfs4_reset_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9f3991a3 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa39a4803 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa812fedd nfs_commit_release_pages +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaa8701ec nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb2448dbd pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb98cd1ed pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcbb8562a nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcee497c3 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd13a7a3f nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdaccee28 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdedfd48e nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf6872d35 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf7386431 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd520519 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x13bc38c1 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xd999629c nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x16c63b57 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4d8e9984 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6fe62920 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 0xa6d13765 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbda0ff0f o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xce9f26cf o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf03d1307 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/dlm/ocfs2_dlm 0x1f92b518 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x46233071 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4c02c506 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x782416a6 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 0xc4cbe750 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd93304c2 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb655129a ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe78b316c ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xf860401e ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x24935f26 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xcdc24ab5 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xdbab0c01 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x355e51ba garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x38eb7012 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x5c68ca7b garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x6f28c065 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x98a62e82 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xad2500c0 garp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0xa2b79c7f stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0xe4ff842b stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x0a83206b p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0x77197535 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0x50754510 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xe2c6bb26 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x3a3c2fde 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 0x0996aa28 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x21093b08 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x21d12942 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x27a6c298 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x30500400 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x37835dbd dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4302eebf dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x48bf3642 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e855686 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4fe34077 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x60a7e40d dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x70325934 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x74bc0426 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7eaf27d2 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x833949af dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x88bca10f dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x92c025e0 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x93b958ff dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9c66277b dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9da4f31c dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9ec543b7 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa02b79ec dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa31fa4fe dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3a72eaa dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa8a80f7d dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbbec2a59 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf647c5c dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0b7b890 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0bd11b5 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc6e8a9e4 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc74639a3 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc88b7f0e dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd44a75ce dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd470bce6 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe77058a2 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf34b2896 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf61c430a dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfca10934 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x480c9dff dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x514b387d dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x91b9c839 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9fcd8519 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe6fd246a dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xfb432130 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x95c92575 unregister_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x973e19ef register_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x16fd9f22 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x8a217985 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x65eb0ece inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xaf0396cf inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x7d6154c5 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x8383a907 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xf7df298f nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0b7fb224 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x13ab313e nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3d589de7 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x54687fce nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc804b2fc nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd4975051 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2b4de0bd tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x46de52eb tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa2e37d3e tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe7a58cf4 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfdebfcfd tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xfba940fc ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x06d22657 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x34e6fa50 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x34ebf3e7 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x551b5103 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x572dfa1c l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb7776869 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xca32c037 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xce894c19 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd4671562 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe272a67b l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf35a6e90 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf994586c l2tp_session_free +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1ac6f82a ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1f795a1f ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x21aeeb47 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6328afb5 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb4cbdcde ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xcef45b1c ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe05c502d ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebde69a8 ieee80211_key_removed +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf30ed8d3 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0b2310aa ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x16d7a581 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3bd82539 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6a9cd897 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6e186552 ip_set_test +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 0x8aafdef9 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9bf86ab5 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9c6a4fec ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9ca6d85d ip_set_nfnl_get +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 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa7f5c049 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xbbb50e91 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xbcee6a3d ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc5f9b62f ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd0b78fc3 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xea2d9c93 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x089cd60a ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x09a60bca ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x1c318307 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x9824597c unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00cc92a8 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0252d83f nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x03eb75b1 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05a92a3b __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x109722b5 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x196c3cbd nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21883c9f __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x219c4ef2 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2266e397 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3183617e nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3194cf15 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31dd1733 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31dd6ae8 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34b2b5fe nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34e62fe1 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37520a82 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x395152a9 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b448e78 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4144eea6 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4779b8aa nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a5a55ce print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4bc258b5 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d85b36d nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4e41950f __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ea39515 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x524a13ab nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d688a03 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65eb7463 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67ae60ce nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b815861 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d5f9b59 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81df4ab3 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x868a6bb5 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92c182ee nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93a367de nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93ed12d6 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x94404822 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x98f2520b __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd nf_ct_remove_userspace_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa4639427 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9b6b620 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac4ff64c nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb9ef6a64 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf3e64b6 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc50cf6a2 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7e03b24 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8c47221 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcba6f08d nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xccba1966 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd568e547 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9611b6c seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdcc1bc92 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6ab377e nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6fac334 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeb18e56e nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeb963036 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebd42275 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf990920f nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa4a2d81 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x3c0d99ad nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xd009f95c nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xac3fbaa7 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x04cc8b1c nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1225a13f set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x27dbef0c nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2a283b2d nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4340b821 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x76835954 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x810e5fe7 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9c501fdd set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xccef9fce set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xec3caaf3 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xfc8075cc nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x5cf2a553 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x5f40fb31 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x82b38722 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb4e7ba8e nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x921979f8 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb1124fa6 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x135ba0c6 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x190b6609 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x389a5dbb nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3a0b35e6 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3f7d86d3 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4eb0fceb ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7a82fa7f nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x83aab8b5 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8a07da98 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x93901fa4 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xad8c4dee nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc8e168c4 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfa48df21 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x5e3bee13 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x2670f177 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x51b37230 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x086effd0 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x171ace4d nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x22a5f9c2 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x46177871 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x88ef1ff3 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa964cf71 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x5f43c814 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x05742e48 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0f690675 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x110f6c60 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1d6b3f32 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x50c2e98f xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x58bccc21 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5bc21294 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6b58c7fc xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6b8d7f8d xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6d60e53a xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x77e20f96 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x91f7cfed xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbb4141df xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd490ff10 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdee3fa7b xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe74d4df0 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xeb7e09f8 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf710731f xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfbe1e5f5 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x3e1dd4ab xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x9a303feb xt_rateest_lookup +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x094fba75 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x194175d3 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x1ba71459 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x235111be rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x356e9b52 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x376204c6 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x388f3f11 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x47594ea2 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x4f61a588 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x6025a182 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x69328f73 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x6c1887b8 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x70a2f5ba rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7b5f7c85 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x8d96ce1e rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x9754d934 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x9e36018e rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x9ef1ce21 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x9ef3bbd1 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xa7bd7d1d rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xae98b8d1 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xe9865829 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xfb35c0f6 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x4dca6984 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xa682d13c rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29 gss_mech_list_pseudoflavors +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3c78fee6 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4faf22b0 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5a95706e gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x60cabd78 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7a514066 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x98cf119b gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9b82e8e5 gss_mech_get_by_OID +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9bb98d1a svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9d3a1c5e gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcc64fd7d gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd4e61054 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf041988d gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x031ad3e0 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x037f46f6 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05d5ed71 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05f73160 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07403a26 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08b14d74 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08d9ec2e xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a6fcbd7 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a776445 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0acbf657 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c401f86 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0eea3127 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10eb1245 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1166e458 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13343fb5 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x156fcee1 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1669af0e svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16caaa5a xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a28a267 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ad12879 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b81ef81 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e7bbc80 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22eeb250 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23daa23d xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26821fd2 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28e03f76 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28e7e01f xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2cb42d7b rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e75957e xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ff36d56 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x300c60b8 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x305bba67 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32ac4ee1 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32b8aa67 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36327e35 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e14f79d rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e56f080 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40209d4e rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4069ff86 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41c31480 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x422a9a3f rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43443c0d svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43e99e12 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4401b847 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44b9b73b rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4793af44 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x495876e8 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c33c01f rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ccddf3c bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4daf2444 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50ab7aae xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50b34e1d xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51159a76 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52bce442 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x535a36ee svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54a940cf xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58c95c44 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59b595dc svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c6e188b xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c857b98 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x605c1c6a svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61ee67e8 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x625877a4 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62d5796f xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6395051b xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64a9efe1 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64b93c33 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bd28a39 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c4198ec auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cb60d59 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ddbe20b rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6df96991 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x732d3427 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7364dceb svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x745d51c4 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74f13dfd svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78f3f7d6 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80ae6009 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81defdf8 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82043b53 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x853c7a3a xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87a0753b rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89815c32 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8aec7635 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c654886 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cb7d16b rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fe7515b xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x909f5a6d xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x934811c5 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9472e08a rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95140ce7 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97729560 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97a3ad25 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a6e31f6 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9af26741 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b1fd912 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c4c3df1 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1ecb14d svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2fc9630 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa37f471e rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7603b18 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa981856c rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab7422a8 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab8b4f8b rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad6500c2 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae254a6d rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae527e9d svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf92126e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0fe4853 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1dc0828 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb21c8fdd rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2519a59 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2b3c078 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3d1063e cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4b0e42a rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb688cbeb rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9c99937 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc8a072f rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd85f7b7 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2096ed0 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2b0edd7 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc30bba71 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc45ef7a7 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbc2c452 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcdbf177f svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0759717 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0d8019a rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd180422d xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd241d409 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd59a8e67 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5a55ec0 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7134e86 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9908ae2 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9a21ff1 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd658bc0 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe017771b rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0286fd9 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1286716 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ffad3a rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8fca3f5 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe95e21a4 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea1e0a20 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec42de4c xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeec22150 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeee00580 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf15ceb2f xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf19992d8 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf391adb0 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4ae87bb svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf59ea30b svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6f5af7b xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe0a005e rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfeeb144c read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/wimax/wimax 0x08dee03b wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1057e0ec wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x21b5a45c wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x23aee6e6 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x32670563 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x378e20ae wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x66e16ea0 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7f580f34 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa5dc693c wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbba5cdef wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xcb7402b3 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe57f0ad6 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xff4e3f1b wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0c05974f cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1814c0f8 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1a1cf08f cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2798a740 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x582e3466 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6f182e9b cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x78cfc529 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x81dfd06d cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x81f26131 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x87607f36 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc109e9f8 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3f282138 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x600d3706 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc61168d0 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf58cff0a ipcomp_init_state +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x1fb7ec96 aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x231b8539 aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x2ecfc924 aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x697eb760 pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x818d159a aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x96206091 ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xa289af7b aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xd18b37ce aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xe7243efa aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xf61eafde aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x16f08cb2 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x6cfb6a2f soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x72906f8c soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xb19e7ae1 soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xf08d660d soundbus_add_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xf2171d96 soundbus_dev_put +EXPORT_SYMBOL_GPL sound/core/snd 0x1ca11a3d snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0x970ce94c snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x99b00bef snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa0cd4775 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x18b9f480 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x1d590148 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x230d4325 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x32f75af4 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9551b3c0 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x99d845cd snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00e7db15 snd_hda_codec_read +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 0x06ef85a4 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07b81780 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c48a87d snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0cb2f16f snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x140615ba snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x160ea55d snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1707dae2 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x171e7afc snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1882fa7d snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x18f0daf6 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x196c4840 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1cfe8e6e snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x226573fa snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x29939c0f snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2bfdcefe snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d99eb20 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2dcb01e6 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x31e7a0ec snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32ba1b6f snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x360351a8 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x39434fe3 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a0a98af snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b43e167 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c4fa118 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41835931 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43a3b30b snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45616d6e snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45e72546 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4870e53d snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c422264 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x513a9815 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x51dc371a snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5611a728 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56d9afed snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58111e41 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a294cb8 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a3f6255 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c291845 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62cd7a1b snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x663e3440 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x672ad06a snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67a8cc6a snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a0f8402 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6fa05113 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71fa3ace snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7239bc5b snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74fc4494 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bbb9d5f snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e270db6 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x88abc441 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x893af94c snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a2d8357 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c928c7e snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9297a888 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9860a937 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c4e8eed snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d71757d snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9df823f5 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9e59449a snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa15f752d snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa36a4b5c snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7bc4eca snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8d0101a snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa902e9fb snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf8a517a snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb44efe2a snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb596e517 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe72e729 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbfb415e7 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0570a45 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc097e15e snd_hda_power_up +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1544f86 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5d23c53 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5f83c33 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc87d09fd snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcbc1ab4d snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd22c461e snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd509c912 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd551dcdd snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd613a1a3 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd67566fe snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd681bdcf snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd7da4013 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8cb7425 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd922f54b __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdabbc9aa snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe0667a9e snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe5911eb5 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe5caab25 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7bad9f2 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea2506c2 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xebbca932 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed202fe7 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed8281eb snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef4a8cb2 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0b6c842 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0f3dbad snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf272eeb5 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2a48f14 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf708b830 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb0a8f21 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe414513 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff27c865 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x25f7ce68 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x2f4661fe pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x1fb068f8 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x81d5e4dd max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x0644d3a2 aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x19245c3e aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x25871e0d aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x4bec84bc aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xac4203e7 aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xc11c6231 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xef067f23 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x0c98d146 twl6040_get_clk_id +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xa548e747 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xfb38139e twl6040_get_trim_value +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0xe96e8ab0 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x4262e758 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5cd7eb9b wm_hubs_dcs_done +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xcf3cf375 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xdd8b142b wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x4b990672 wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x032821f5 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x2d5d348c wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xbcf35cc8 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x001ae6ed wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x4f674012 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xfd1bdd03 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0xc71e05ab wm8996_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00d8bc95 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01eb4e6f snd_soc_default_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x040c9c64 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05085010 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x055105ec snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x092b301a snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a040520 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0efc12e8 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f96c729 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x116a1c06 snd_soc_info_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x124061f6 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15e29516 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x167f2886 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1841caca snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18eaa68b snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20c03390 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25b7ed17 snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27c9ff8e snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a0b425b snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d092907 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e49d157 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e5d20ed snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x302620f2 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x36f7c737 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37770135 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x378b5ea4 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x380ddce9 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3be25a29 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40a884d4 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41c27a6d snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x438b8330 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x450d53dd snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a480e63 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4df0f63d snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x533df965 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5c7c2891 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6375bc57 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63a57723 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x66d9f6a2 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x694deb0c snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a8372b4 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c5655ba snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6d90e4cf snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x725a5880 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73b1e4cc snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x742bbeaf snd_soc_put_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75c9af44 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x763d8a67 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x79fd68bd snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a785cad snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ef4d929 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x864961e1 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89993e2e snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c6479fd snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8d5ab118 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8fafd003 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9714ca90 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x986ebce2 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ae7fd79 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ba5c4a2 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9bad04ac snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9cb6c89c snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9cc97faa snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9e78eb07 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ec73cd6 snd_soc_get_volsw_2r_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa651331d snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7b0c94f snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa63a745 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabc4e530 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb12c274e snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3a421c2 snd_soc_default_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb68b2bc7 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc0c5c34 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc19cc45 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc70e383 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf1e897c snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc19d4340 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc24a2796 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcba22fee snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce26e978 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd041d324 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd2cecb7b snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd6e88163 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8f4bf0e snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9b1831d snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda1debc9 dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc1f3957 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc85604c snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfbd7614 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe3e458b1 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4dae2cd snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe91aaa63 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeabd3cdd snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed054d77 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0d11565 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0de983a snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5481a9e snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf7827a13 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8d6a798 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa51b77b snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa97012a snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x001a48d3 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x0024d001 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x00401b77 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x006e626f usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x0088a193 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x0099a82d __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00a5db11 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00ab311a agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00bf73a9 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00e919f1 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f79a62 xv_free +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x010f04c7 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x018c7ed8 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x01a30c1a rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01d548ef i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0203ad0f dw_spi_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x0207baf4 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x022fe009 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x023d36ad blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x025eb988 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x02b2efb4 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x02b9bf24 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x02b9ef16 drop_cop +EXPORT_SYMBOL_GPL vmlinux 0x030c6906 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x038cbf57 pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0x039c3498 pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03fe52f2 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x040c44b9 dw_spi_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x042acd53 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x043d3f53 ps3_system_bus_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04492dc1 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x044dae08 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x04c15e4d usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x04d20375 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x04e9e060 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x0529c600 ps3_free_mmio_region +EXPORT_SYMBOL_GPL vmlinux 0x052e78f6 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x053aa704 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05ae262e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x05b163ff wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x05bdfb0e blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x05c66224 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x05f0aefc tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x05f7bb4d register_spu_syscalls +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x063e9c26 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x06495afa posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0655fc13 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x06659dd1 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x06af9470 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x06b7c2cd pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x06f3becc tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x0706ad52 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x0707e38c blkio_root_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x070ad0bb dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x073cdd25 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x07ad3237 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b2475f driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x083c76a7 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x087ee4e3 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x089b77bd rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x08bf5383 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x08d5ec48 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x08dd1e8a rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x09126e11 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x094bde7a modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0951725c get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x0a0ae8f8 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x0a0d42de usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x0a1a4cae cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x0a288348 flush_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x0a32917d crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a81128d sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x0a9441ae class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0aac3413 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x0ae0c00b led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0af1e4ba css_id +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b0df7c3 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x0b28defb kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b65df88 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c1c5154 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c3cb22f sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x0c5cae8a ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x0ca70fb2 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x0cadd4bb rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cd10a4e work_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0cf5646d usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x0d1db07c swiotlb_bounce +EXPORT_SYMBOL_GPL vmlinux 0x0d297b37 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x0d35e90c ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x0d3b4954 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x0d4ae5e8 md_run +EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0d73d159 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x0db74fd1 init_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x0de06988 cpu_first_thread_of_core +EXPORT_SYMBOL_GPL vmlinux 0x0deec500 of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x0e071d4b wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0e80afad max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x0ea1f06d ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x0f73486d get_device +EXPORT_SYMBOL_GPL vmlinux 0x0f748ac5 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x0f933e48 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x0fa171a6 flush_fp_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x0fa437cd wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0fad6112 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x0fbe08f4 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1028d80f ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x102a6bdc net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x102cdb4c noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x102eb0b4 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x1036df35 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x103f1418 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x105d4b05 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x1098e0ac __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x10b98987 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x1114011d threads_shift +EXPORT_SYMBOL_GPL vmlinux 0x11567915 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11d3a5c6 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x11decc08 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x11f9bfca inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x11fdc12a sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x121604a4 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x12259baa rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12884c47 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x12d04df3 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12de993a crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x1333d8b3 ps3av_video_mode2res +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x13795cf6 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1392bebf ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x13998c83 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x139bae88 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x13f226eb class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x13fc7180 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x145fa14b usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x149313e6 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x14c1ed1e gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x14d5945d of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x1504db90 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x1515ec0f crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x1556756b usermodehelper_is_disabled +EXPORT_SYMBOL_GPL vmlinux 0x1574703d init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x157a8fa6 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x15824f88 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x159abb63 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x159b1fc2 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x1640150f transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x165900b5 use_cop +EXPORT_SYMBOL_GPL vmlinux 0x16731f1b locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x16be76b3 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x16dbc465 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x170c2854 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x1731a5c2 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x1741c3a3 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x1765c08e hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x179186a9 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL vmlinux 0x17b7290b __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x17c6d8b2 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x17ed4b8a pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x18203ae5 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x1850e3b2 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x18560cf2 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x18570516 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0x1861ab6c srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x18651797 pcibios_remove_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x18784066 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x187b9941 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x18ae3ff0 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x18af83b7 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x18b75fc9 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x18be6a3a usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x18e2c347 dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x192cef22 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x193125fc register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1931d97f transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x19367abc invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1947b840 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x1976ae6d con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x197ba271 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x198b444d dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x199c5d0c usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19debbc7 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a5f1368 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0x1a750054 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x1a863ea6 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x1ac717e3 ps3_os_area_get_rtc_diff +EXPORT_SYMBOL_GPL vmlinux 0x1adb7cbe crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x1ae0e135 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x1aef854d __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x1b0e1ccf mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x1b1f5ad0 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x1b29187c bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1b7a8c43 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1b83963b cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x1b83f3de power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x1b9664d1 __destroy_context +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bcf7435 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x1c0b9ebc pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c6201b1 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x1c66e34d init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cb9a90a crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x1cc2cca4 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x1cf82066 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x1cfde37f device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x1d1fda0e power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x1d2e2164 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x1d3d1a88 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x1d41f8f5 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x1d672127 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x1d9496fc of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0x1dbb8458 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x1df85c8b pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x1e134ba2 xv_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x1e2cebf1 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e7f475a ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x1e8f01ad __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ee9814e irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x1f11ea8f find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x1f2cceea ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x1f780ba2 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1f828c9d vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fcdd35c of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x1fcdfeb3 __online_page_set_limits +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fe970cb ps3_io_irq_setup +EXPORT_SYMBOL_GPL vmlinux 0x20233966 regcache_write +EXPORT_SYMBOL_GPL vmlinux 0x20806770 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x2082f002 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c154f3 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x211850f5 htab_hash_mask +EXPORT_SYMBOL_GPL vmlinux 0x21258769 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x21334bd3 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x215a78c8 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x21d36a03 kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x21e9b025 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x21ed2a5f ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x221e7426 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x222ca598 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x223f20cf dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x2240370a alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x22523a64 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x225a5fc9 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2277f44e crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x2285200f usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22d2395c irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x22d34396 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x230e0698 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x235a1530 xv_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x237e47d2 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x23818f25 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23897488 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x238b6273 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x23bcb105 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x23f92ab7 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x243744ae sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x246fa081 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x24743568 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24a02891 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24ad6c0a debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x24b67b27 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x24b81562 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x24bb9e7a __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x24c30173 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x24cd2a8a ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x24d49392 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f7ce9d ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x252e43b4 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x2538573a platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x2538ae50 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x254e310c ps3_os_area_flash_register +EXPORT_SYMBOL_GPL vmlinux 0x25832cfc device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x258a3418 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2593f654 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x25995e4b swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x25c043d3 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x260bde8a crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x26576139 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x2694f5b1 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26db5f4b cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x2712b106 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x274d1134 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x27a7ee4e __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27ccbeac crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x280c5cb6 pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x281bb55a scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x282d74c7 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x2850112a sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x28836ceb power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x28ad08fd ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x28af4b30 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x28ba109e wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x28cc43e8 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28fbe3cf remove_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x292427b7 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x295a58b2 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x296592fb pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x296902db __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x29b0ace3 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x29c92dd0 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x29fa49c1 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a5a92db blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a6d8859 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2a84241c crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x2a8be383 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x2ac96595 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x2ad05662 pcibios_unmap_io_space +EXPORT_SYMBOL_GPL vmlinux 0x2adf6e91 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x2afbe2a5 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2b3703d9 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x2b5c303b smp_send_reschedule +EXPORT_SYMBOL_GPL vmlinux 0x2b890b26 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x2bb66a6e ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x2bb6a2fd debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x2bcc8c31 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2bce99dd devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x2bea6906 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2c0dc18b filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x2c15978e put_driver +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3b77db wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x2c4ee98b stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2c68ac6d unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c800e19 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2cc3e675 pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2cf4483d kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x2d1149ff task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x2d2c18ae disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d41ff55 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d7ba23a ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x2d80f0f3 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x2da93c84 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0x2dcecc5d __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x2ddee4bb usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x2e07f4a2 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e4f06b3 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x2e5f666b ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x2e8e2944 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2ebdfe99 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x2ec84cb0 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2eded608 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x2edfce44 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x2ee171ae __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x2ef3944f usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x2efdc562 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f683d9f edac_put_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x2f75ef1b ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x2fa87144 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fd479a4 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x30301151 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x303ed269 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x30676a27 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30976cb2 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x30c1d0c4 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x3108ea46 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x311b78c2 ps3_get_spe_id +EXPORT_SYMBOL_GPL vmlinux 0x311cada4 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x3168b770 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x317ad52c inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31cba7df srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x31d6b936 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x31f9bd0a usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x323c929b dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x32685644 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x327fc92e pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c80d0d blkio_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32f08411 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3309ea64 ps3av_audio_mute +EXPORT_SYMBOL_GPL vmlinux 0x33190daf da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x331a1a73 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33b55fa9 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x33be072d swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x33e5897f __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x341ad791 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x3427bfc7 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x34364408 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3440bb93 wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x3484f764 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x34a233cd kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x34abe346 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x34eb56dd ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x35001c4c pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x3516468b vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3 system_nrt_wq +EXPORT_SYMBOL_GPL vmlinux 0x356d09da add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x35df0d89 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x35e8f5b4 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x35eeaa88 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x36027cd2 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x361c333c spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x364b4c27 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x364c2033 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x367b9081 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36c40804 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x36ecb698 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x36f8b7e3 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x37078452 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x372000b6 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x373fcaad each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x377628db fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x3779d67d swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x379f243a xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x37a54945 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x37bbb71f unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x37d7126e usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x3801b2df ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x382f038e inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x386b341b pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x38a976ed sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x38adff9a ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x38db535e ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x38f9d786 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x38fa2132 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x39019bff tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x3915db3e clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x3918a87e hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x395087d6 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x395e690a spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x3970b560 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x397ef9ad crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x39949007 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x39b133bc ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x39c234bb blkiocg_update_completion_stats +EXPORT_SYMBOL_GPL vmlinux 0x39d7bb0a usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39eb6f67 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x39f21bf3 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x3a25cc17 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a3b0c98 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a51e578 usb_usual_ignore_device +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a6ee67e sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3b1749ce inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x3b1c5afc ps3_vuart_irq_setup +EXPORT_SYMBOL_GPL vmlinux 0x3b338797 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3b3e0b1e cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x3b772b7d rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x3bd06759 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x3be0fc4c show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c8f77bc __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cdf85ed crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d193597 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x3d25ab34 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x3d2e089f ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d6727e5 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x3d74289d tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x3dab002f tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x3dbd002c ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd65df7 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3dfc0504 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x3dfea4ae tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x3e206fd7 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x3e4e13df nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x3e5345bf device_del +EXPORT_SYMBOL_GPL vmlinux 0x3e83ba7b skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x3ef0e46a blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f328d0b sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x3f629ad2 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3f7fc861 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x3f8e1fd6 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x3fdf8f6e pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x3fdfde0c usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x401111de tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x402334c4 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x404e73a7 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x405aa9b3 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x40ab709b skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c54fcd enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x412bf860 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x415aa16a tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x41670511 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x419d8805 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x420cb16e module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4237d38b ps3_system_bus_device_register +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x4282e43f usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x43229c11 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x43289c9b ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43379a23 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x433936b8 fb_sys_write +EXPORT_SYMBOL_GPL vmlinux 0x4344b9b3 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x4376807e user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x4390831d kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x43cc0951 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4425d925 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x4428d6fa wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x442baf6b inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x442d929b ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x44465405 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x445b3599 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x4461c5df usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x449256f9 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x44a87e26 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x44bcfa6d system_nrt_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x44be6050 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x44c6737b tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x44c8ef15 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x44fb2fd7 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x451a3691 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x451a5e6c spu_setup_kernel_slbs +EXPORT_SYMBOL_GPL vmlinux 0x454b749d usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x458072e8 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x458a26d5 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x45aef9b4 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45e9e635 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460ccaf4 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x466165a5 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x467e5e02 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x468ebc26 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x46952593 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x46b6832e device_rename +EXPORT_SYMBOL_GPL vmlinux 0x46d9f955 ps3_irq_plug_setup +EXPORT_SYMBOL_GPL vmlinux 0x46f732de queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x46fcbd38 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x47141c2f inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4741db42 ps3av_set_audio_mode +EXPORT_SYMBOL_GPL vmlinux 0x474359b6 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x47537faf usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x479e1c51 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x47ab3d52 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x47acddea ps3_sys_manager_set_wol +EXPORT_SYMBOL_GPL vmlinux 0x47c46e57 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x47c4bac1 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x47f0b6f5 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x4820e7a5 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x48336928 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x484238f1 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x484cefd9 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x4865f9b3 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48a7b45b tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x48ba75d7 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x48c62e4a eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x4942ca40 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x497c2202 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49b7694f sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x49c61b1f kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x49cb6558 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x4a12d7d2 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x4a143eb7 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x4a274d59 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x4a3710f9 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x4a3ce32e blkiocg_update_io_add_stats +EXPORT_SYMBOL_GPL vmlinux 0x4a892c07 spu_invalidate_slbs +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4abf2e20 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x4ac2ca2f ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x4aff2e5b rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x4b7a01fe spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x4b840dfd probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x4b9b885f led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x4bc61e63 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bc8c114 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x4c18f773 ps3_os_area_set_rtc_diff +EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c93624a usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x4cffd3ad do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x4d15e5e7 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x4d172ccb ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x4d233e8d stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x4d303574 cpu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x4d36b021 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x4d3848fc bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x4d3eeb6a __module_address +EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x4d50ad6b ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x4d60db34 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x4d6abde2 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4d779e72 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x4d9640b7 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x4db4ea0c pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0x4df40b23 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e11f681 spu_priv1_ops +EXPORT_SYMBOL_GPL vmlinux 0x4e24469b pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x4e4a391e init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x4e7df11b irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4e81584b scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x4e987764 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x4eaa7d3b bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x4eb00bcf pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x4eb15c13 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4eca06bd put_pid +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efe760d wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x4f1ccf7d dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f383999 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4f6bf7eb inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x4f74273e rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x4f7759cb kick_process +EXPORT_SYMBOL_GPL vmlinux 0x4f788606 pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x4fae1f2d of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x4fb000ea rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fdde2e2 fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x4ff3cdcf pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x5013e6de pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x502eca11 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x5053331b wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50893625 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50c4fb36 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x51084ece sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x510ca68a register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x512bc330 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x516afb32 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x51846493 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x51a19d3a pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x51d76583 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x520c2472 macio_find +EXPORT_SYMBOL_GPL vmlinux 0x52191d51 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x523afda8 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x526aee05 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x5288e1de regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x52915471 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x52a3fcd5 ps3_vuart_cancel_async +EXPORT_SYMBOL_GPL vmlinux 0x52ec8672 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x52f6c498 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x53032a70 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x53302d2d blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x534c1e46 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5365b101 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x53830648 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53b64533 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x53b78563 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x53de7c2b crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x540dc017 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x544b1fe7 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54682a92 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x5492723d ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x5524178e tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x552567c0 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x554dd61c ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x556d5166 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x557ae1ac usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x559a405a pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x560c7fe5 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5685c9f7 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x56a154b8 ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e84e47 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x57088d24 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x570d5864 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x57404b51 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x577fbb88 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a5855f smu_get_ofdev +EXPORT_SYMBOL_GPL vmlinux 0x57b9bab0 usb_enable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x57c4691b queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x57d87b1f sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x57e461c5 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x57fd9979 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x58131b0d __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x5820dcc5 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x583f007f class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x585f8203 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x5879a9d2 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x58a565f7 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x58b1654f pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x58b2a5fb __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x58b47835 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x58fbf05a queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x59040cbc fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5948205e i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x59689ba7 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5989f218 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59fb3c15 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x5a116050 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x5a2a45ab dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a7dc909 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x5a9811bf pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0x5aa86b38 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x5ac029ca ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0x5aef843a platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x5afc146e __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x5b45dd4f ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x5b517e37 ps3_vuart_read_async +EXPORT_SYMBOL_GPL vmlinux 0x5b634264 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x5b7b3723 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x5b815dcb ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x5bbc9137 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c17ed92 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x5c1e0fc7 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x5c2548b9 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x5c488bd3 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x5c5b9702 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5c8f6b30 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x5ccb6a62 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x5ce0ad60 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x5cef4a98 pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d9d5d3e pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x5e0b08f0 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x5e113d9a __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x5e1c0d33 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x5e28b723 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x5e6d0bd7 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x5e769986 ps3_os_area_get_av_multi_out +EXPORT_SYMBOL_GPL vmlinux 0x5e8e9a52 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5eb58979 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x5ecf8b52 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x5ee7542e reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f3746dc rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x5f46d244 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x5f6bc6ab sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x5f74f71f do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x5fb393b0 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fe2ca20 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x6002ae00 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x6021bbb7 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x609ed66f __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60a42015 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x60a4ca3e usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x60b30def __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x60e2722e pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x60f3dbb1 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x612f348a blkiocg_add_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0x6142eb28 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x6143938e root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x61572cc9 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x6161416d inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x61634f05 lock_flocks +EXPORT_SYMBOL_GPL vmlinux 0x6186f6d0 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61b35b60 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x61b45fe0 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x61b4b6b0 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x61bc34c2 spu_switch_notify +EXPORT_SYMBOL_GPL vmlinux 0x61f488f1 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x623dd193 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x62b59ca0 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x62c83313 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x62d528c0 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x632bffb5 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x6336b230 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x6347ee72 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x636c293e bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6377d40c register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x640729d6 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x643d133b ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x646c47a9 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x648e93e2 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x64ebf607 __giveup_vsx +EXPORT_SYMBOL_GPL vmlinux 0x64feb489 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x6529313a debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x6533ac3a ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6565514e ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x6576a493 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x65887cc8 find_module +EXPORT_SYMBOL_GPL vmlinux 0x65971751 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65dfe677 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6627baaf crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x6639384f hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x664afda3 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x667a812c ps3av_set_video_mode +EXPORT_SYMBOL_GPL vmlinux 0x6680ec8c bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66cdccef sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e0007c rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6743e681 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x67485883 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x677200cb ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x678c944f dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x67952db4 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67b8937c usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x67c587e3 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x67cefb8a ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x67e7dd59 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x680fd8b2 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x6823b93a dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x682c870f cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x6863289e crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68a5872e ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x68bd21fa adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x68d17702 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x68da20a8 isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6961439a da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x69790ef6 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x697cbbb4 threads_per_core +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69c36841 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69ec1b59 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x69edc998 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x6a023486 flush_altivec_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x6a15676e page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x6a22eedf md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x6a2f08bc inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x6a2f9a11 eeh_dn_check_failure +EXPORT_SYMBOL_GPL vmlinux 0x6a51d0df __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a610d8d spu_handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0x6a693401 user_update +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6aa97df8 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x6aaff54a udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6ac3468b ps3_vuart_read +EXPORT_SYMBOL_GPL vmlinux 0x6ac77b76 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x6acb8d84 ppc64_caches +EXPORT_SYMBOL_GPL vmlinux 0x6b1010c8 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b35dfdf fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x6b47e27b security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x6b6a5b93 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x6b6db8ec srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x6b8531fd max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6bfc8e6c __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x6c1d63c1 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c864d23 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6caf21ac event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x6cecbb1c tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x6d10241b pseries_ioei_notifier_list +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d42849c dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x6d951f99 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x6e2c5117 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x6e379526 kernstart_addr +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6ebfff41 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x6f0a4885 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x6f162664 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f5603c4 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x6f69f494 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x6f95304e ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x6f9ef1cb posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x6fbc719c pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x6fce8a72 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffb83c1 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x7020de36 spu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7033bd4f tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x704c7b85 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70a09d55 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x70ad3fc6 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70daca79 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x713bc02f pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x714cfc0f bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7152ff57 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71a0353c usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x71a7448a inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x71ac8109 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x71b01ced clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x71beaf12 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x71ca6c64 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7275f821 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72846304 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x728e7395 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7317c482 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x7326b05d dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x73412f26 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x7342e5a5 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x736537b2 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x739aa1a1 pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0x73a22fb0 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73ae89ce screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x73cf2f9b pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x7431814f ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x7450ff30 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x74809dc9 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x754bd517 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x7559a284 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x757f7036 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x75b20f59 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x75d17d0b pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0x75e6e037 hash_page +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7665e913 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x767aff5a pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x76806ac9 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x76e5c327 device_create +EXPORT_SYMBOL_GPL vmlinux 0x76e8a2a3 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x77102057 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7756ae10 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x7758cde9 blkio_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x775a93fd crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x775b858e debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x775c3476 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x779f8b30 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x7830f6cf shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x784903ae input_class +EXPORT_SYMBOL_GPL vmlinux 0x78600d8d ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0x7888d7ff sysfs_add_device_to_node +EXPORT_SYMBOL_GPL vmlinux 0x78d8393f sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x78dcc555 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x78e06383 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x78f8000a pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x78fcd647 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x791accbe securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x795c6f83 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x799ccfe3 spu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x79b4e8e9 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x79c45438 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x7a448053 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x7a8b8434 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x7ad39f6c ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b94936f perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x7bd13cde trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x7c6b8d30 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7c823a89 blkiocg_update_dispatch_stats +EXPORT_SYMBOL_GPL vmlinux 0x7c9d2397 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x7ca2f981 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d0662ea ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x7d2ee7f1 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x7d45c750 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d717315 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x7d78356a rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7db3ee6b fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ddce540 ps3_open_hv_device +EXPORT_SYMBOL_GPL vmlinux 0x7dfb3c35 blkcg_get_weight +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7eaf6f4d usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x7edd2de5 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x7f14fd92 pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x7f163cde platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7f52c522 ps3av_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7f9c5dfc rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fdc9a70 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff111e6 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x80276fbd input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x80507f72 ps3av_audio_mute_analog +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80911fde pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x80adf096 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x80ffa2c1 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x8121ecdd vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x812c00a4 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x819f9102 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x81b88838 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x81d98b6b usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x820f2d51 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x82170780 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x825dcf72 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x825f0828 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x825f6ef4 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82969fea ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x82a48f9e pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0x82b4e9ec i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x82cd69de uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82d8e3ec dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x82ea0f5f blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x82faab43 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x83116c90 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x83706d26 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x838e5096 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x83ce82eb get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x83eb0204 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x83fa438f rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x84084f5c cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x84433ea3 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x845d96c4 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x84608817 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x8480cf33 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850a30a5 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x851cc01d led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x85605652 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x8562a122 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x85919385 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x85a64f0d relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85e01acf ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x86243bfb dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x8636d65a sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x864acf40 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x8664234a raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86b72c51 of_property_count_strings +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x87235ceb raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x8726e475 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x872c5b8f css_depth +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8769eb3f cgroup_to_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8794c4c6 eeh_remove_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x87c9fd2a cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x87d64c49 task_blkio_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8816cb8f pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x8818e844 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x882e678f rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x884421af regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x8868572e platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8895b231 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x88961931 usb_is_intel_switchable_xhci +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88d0911d register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x896e047f ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x89a5411c device_attach +EXPORT_SYMBOL_GPL vmlinux 0x89b505b5 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x89d22e80 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x89e305da sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x89ff43f6 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x8a22bc14 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a63bf7a gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x8a87f2ed PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x8a91d876 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x8ab3f05c crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8af529fa dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x8af84199 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8b50d48d perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x8b6fc696 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b83e01f blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x8b869f0c __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x8b95cfe3 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x8ba8858d dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x8bf1a347 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c3281cb sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x8c659165 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x8cb545a0 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x8cc17dda sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x8d05da2b inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x8d14f8ca pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0x8d3cc909 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x8d53aa3e bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x8d80529b virq_is_host +EXPORT_SYMBOL_GPL vmlinux 0x8d85367f smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x8d92637c unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x8dbdb619 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x8dc2a37c __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x8dd510ba usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x8ddea264 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x8df2230c rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x8e0ee1fa crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x8e112489 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8e3a8f80 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8e3dfd10 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x8e58df6b usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x8e88a0ca tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x8ed903f1 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x8edb2f64 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x8f1452f4 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x8f2fdfeb regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x8f3533cf dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x8f3d99f6 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x8f59bc1e put_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8fc5223b xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x902d2ed1 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x90345be1 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90673390 spu_switch_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9094e1f5 eeh_add_device_tree_early +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90b6219e __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x912b0c4e tps65910_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x91300de9 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x9135d831 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x91883673 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91e1aa1f relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x91fb1321 ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0x922864b3 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x925c4efe ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x92aff6ff ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x92cc923b __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x930316c4 slice_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x9352800a dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x93857e54 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x93be7f50 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93f85dba xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x9425438f pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x942eec37 of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x944afe0c bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x944cb8c3 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x9488b9cf cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x94a5b67d __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94b75e85 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x94fe62c6 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x95117326 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x952d022f put_device +EXPORT_SYMBOL_GPL vmlinux 0x95437592 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x95544b5d sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x955be1e0 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x9562a2bb ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0x9563359b pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x956802b1 pcibios_find_pci_bus +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95a912ab usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x95b63838 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x95e1a353 __online_page_free +EXPORT_SYMBOL_GPL vmlinux 0x96107a4d ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x964b8153 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x965a78d5 threads_core_mask +EXPORT_SYMBOL_GPL vmlinux 0x967eb063 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x96bfe723 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x978f24b1 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x979adf91 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x97a1d507 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x97a23a96 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x97a44b62 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x97b13dad __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x97b869d2 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x97e983ed wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x97f4ef68 cpu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x97fbe670 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x98015aae tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x984b653c wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x985f17e4 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x987f9b1e irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98ceef06 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x98f89d35 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x9900a0f8 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x9909b8b7 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x99adb5ac ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x99af7b76 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x99bc9194 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x99e2573f user_read +EXPORT_SYMBOL_GPL vmlinux 0x99f04002 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x9a02df26 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a154be8 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x9a39f9ed transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x9a49d937 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x9a7d6919 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x9a828053 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ada15d7 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9af63a0f tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x9b00806d evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x9b0eb26e relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x9b1b2093 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x9b3b737f register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x9b874d8d crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ba8d1d1 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x9bb46202 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x9bc53d60 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x9bf2a173 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x9c06442a cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x9c47ca6f ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x9c6f1b36 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x9c84d558 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cc8669c device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x9ccb76fc get_driver +EXPORT_SYMBOL_GPL vmlinux 0x9cd5ad9a pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x9d38cb3e simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x9d58ed0a pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x9d7206ac ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9d8b9342 device_add +EXPORT_SYMBOL_GPL vmlinux 0x9d9eb245 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x9da8160b blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf5f6 edac_get_sysfs_class +EXPORT_SYMBOL_GPL vmlinux 0x9e4dda49 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9e4f1cfb ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x9e532c5a register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x9e84c998 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x9ea865cf blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x9ebf43c2 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x9ef03ef7 inode_dio_wait +EXPORT_SYMBOL_GPL vmlinux 0x9f277cbc spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f4b5d43 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x9f61f7ee device_register +EXPORT_SYMBOL_GPL vmlinux 0x9f6ded61 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x9f6e8cc9 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x9f880323 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x9f9201a7 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x9fcbd9f0 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd3a0bb tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x9fe4ef23 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9fedb268 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xa00bfcf1 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa05651b1 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xa08c379d file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xa091a9ca eeh_add_device_tree_late +EXPORT_SYMBOL_GPL vmlinux 0xa09c2c61 ps3_system_bus_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa0a27fff pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0xa0d26f7b ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xa0da7e28 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa0e4635a md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xa0fa5d4c pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xa1445a8f led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xa15ef96a relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xa17daf3d sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa1a5af3c pstore_write +EXPORT_SYMBOL_GPL vmlinux 0xa1bba2d1 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xa1e97269 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xa1f0e146 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xa27015f2 bsg_goose_queue +EXPORT_SYMBOL_GPL vmlinux 0xa276919e pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xa277e908 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xa293b816 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xa297453a pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xa2b8d1dc cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xa2d43f18 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa2f28416 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xa344a3c0 ps3_vuart_clear_rx_bytes +EXPORT_SYMBOL_GPL vmlinux 0xa3608238 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3b6e695 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa401830b crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa4323b8d usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xa44e77a2 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xa457a3f1 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa497a3db __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4d0545c i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xa4ee4020 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xa55ea7c7 account_system_vtime +EXPORT_SYMBOL_GPL vmlinux 0xa570a342 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5b28fb6 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa5dd30fe sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f2a898 force_sig_info +EXPORT_SYMBOL_GPL vmlinux 0xa679b11a sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xa67efe25 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xa69d2e1d usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xa6a9d35f power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xa6f629dd scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xa6f7203d crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xa70648ae ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xa710ab8d fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xa735ed80 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa7a6e535 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xa7c82c57 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xa7cc15e1 ps3_mmio_region_init +EXPORT_SYMBOL_GPL vmlinux 0xa7cc7dbc usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa862a157 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xa866df4b register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xa8941567 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xa8abffd4 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0xa8b305dc edac_class +EXPORT_SYMBOL_GPL vmlinux 0xa8cabe85 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xa8e96ead raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa97e77ef drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xa98cdb36 ps3_get_firmware_version +EXPORT_SYMBOL_GPL vmlinux 0xa9ada73b fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9d32f40 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xa9d8b769 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa0e5a48 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xaa55801e shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xaa5f86e8 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xaa852c93 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xab14110a stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xab262b28 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xab269d15 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xab2b243d ps3_irq_plug_destroy +EXPORT_SYMBOL_GPL vmlinux 0xab3be537 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xab44f509 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xab6586b3 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6c0f84 pcibios_add_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0xab7efcab inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xabb19449 cred_real_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xabefdc0d ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xabf48889 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xabf7ac49 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xabfbc63f irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xac160e21 pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xac21b42e of_node_to_nid +EXPORT_SYMBOL_GPL vmlinux 0xacb013df vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xacc2633c spu_switch_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xacc5478a pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0xacdf60ce debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace7c7a0 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xacf84df4 pcibios_map_io_space +EXPORT_SYMBOL_GPL vmlinux 0xacfe997e powerpc_firmware_features +EXPORT_SYMBOL_GPL vmlinux 0xad027f33 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xad07214d gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xad16f5bf usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xad1d1f85 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad99bc5b add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadb0a22b tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae094e6e power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae3dae84 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0xae5047fe bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xae573161 spu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xaea2d42d __css_put +EXPORT_SYMBOL_GPL vmlinux 0xaebd995c driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xaec4cda7 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xaec7faa8 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0xaeea3073 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xaef84399 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xaf00d75d sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xaf06a71c pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xaf0af6a0 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xaf1e8cd4 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xaf624eaa trace_nowake_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0xaf69699e xv_get_object_size +EXPORT_SYMBOL_GPL vmlinux 0xaf6d7d5e sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xafd66fc1 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xafe998b9 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb004a8ad synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xb032df3f fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xb080bed3 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xb080e656 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xb08b73b3 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xb0a5c376 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0xb0ae5977 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0c1eca5 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xb0da176b i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xb1055ff5 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb11b4eca crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xb1204e04 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb17cb952 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18daa1a driver_add_kobj +EXPORT_SYMBOL_GPL vmlinux 0xb19c0869 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1d51a17 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0xb2187a0a __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xb24d28ea debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xb2883f30 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xb2900451 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0xb2d5c134 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb3199e3e debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xb31d9e7c mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb38dee97 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3b52a84 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb3c18b77 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xb3d07c3b sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xb3f35732 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xb42c373b of_property_read_string_index +EXPORT_SYMBOL_GPL vmlinux 0xb4368f0a ps3_sys_manager_register_ops +EXPORT_SYMBOL_GPL vmlinux 0xb4804ef0 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xb48288dc pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xb4c6f32a eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xb4de2c37 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xb4e0d3b2 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb556b3a0 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5d6ab4f device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xb5de090a mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5fcdedd device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xb6041f55 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb625259d cbe_spu_info +EXPORT_SYMBOL_GPL vmlinux 0xb643c250 xics_wake_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb69aff4b transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6bc007a spu_sys_callback +EXPORT_SYMBOL_GPL vmlinux 0xb6c3fd70 get_slice_psize +EXPORT_SYMBOL_GPL vmlinux 0xb6dd3d04 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb6e276ee map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xb717b2d8 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb7218a0a crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xb7520449 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb7b53c52 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xb7c0aa80 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0xb7f240f5 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb7fa4a31 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xb8047a9f md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb82bf7a7 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb83363b7 spu_set_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0xb84b1aae ps3_event_receive_port_setup +EXPORT_SYMBOL_GPL vmlinux 0xb891e820 ps3_close_hv_device +EXPORT_SYMBOL_GPL vmlinux 0xb8cda475 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xb8d29c36 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb8e03497 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb8e62afa pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb91ab4c1 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xb9226a8b usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xb93b33ed __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xb95f5f7b scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb96485ae cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xb9a7ccf6 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9d767ea class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb9e6bf40 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xb9f13c7f crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xba24e09d swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xba27b736 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0xba9199b6 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xbaa87724 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xbad26090 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbad929ae xv_malloc +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb3eed99 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xbb49aafe spu_64k_pages_available +EXPORT_SYMBOL_GPL vmlinux 0xbb834a8b ps3_gpu_mutex +EXPORT_SYMBOL_GPL vmlinux 0xbb885753 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xbb963644 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xbc02a300 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xbc17a0a0 blkiocg_update_timeslice_used +EXPORT_SYMBOL_GPL vmlinux 0xbc456407 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xbc62c881 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xbc6aeb20 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xbc6f931b workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xbcaba0d1 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xbcc65c27 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbd020411 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbde88fb0 spu_associate_mm +EXPORT_SYMBOL_GPL vmlinux 0xbdec3e98 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xbe16d24f da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe2e8210 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xbe5809ad gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xbe71a948 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xbec15b5a irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf427291 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xbf5a8d0a inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xbfe469e5 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc0294303 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xc02f0a5c wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xc03a0e3e __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xc03ab504 setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0xc05ab1c3 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xc05e637f crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc065a455 cpu_core_index_of_thread +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc08f1540 use_mm +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c3ac70 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xc0c3ad95 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0d1535c tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xc0db1774 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xc0f62f58 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xc0f8c196 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc12f282c crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc154f8f2 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xc1659f86 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17dac14 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xc1b9adac regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1bef01d css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc1c03b59 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0xc1fa4dfb unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xc1fffa67 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc22125ab page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc23973a1 spu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xc23ee6ca scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xc2553a4f dw_spi_add_host +EXPORT_SYMBOL_GPL vmlinux 0xc278d349 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2957600 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xc2f9b4ad __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xc32dc8d2 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0xc34af17f ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35de7f8 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3f2e3ff pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xc3f563d6 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xc40ee137 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42f5ed7 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xc443563e wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc489ed7c mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4dc6f29 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xc502ee73 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xc5166d27 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc52eee14 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xc53646c7 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xc53650f3 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xc546d0f2 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xc556bc26 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0xc5db93ce pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc61dfa1d usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xc65847be sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc66c2311 ps3_vuart_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc672113b __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xc674ec77 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xc677b24c transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xc682f772 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xc6cd1474 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xc6e9dc9a ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xc6f844a3 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xc702f4c9 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xc71a45ea blkiocg_del_blkio_group +EXPORT_SYMBOL_GPL vmlinux 0xc727906a bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7d8b5b2 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xc866f3e7 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xc87a8d7a ps3_vuart_port_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc882e7c0 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xc8ab1417 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8c6f7b7 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc8d5bd1d set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xc8d624b6 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xc8da074b unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xc8e3b9a5 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc95e58e4 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xc96cf5d0 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xc970b787 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xc979d1e3 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0xc97c2898 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc9b6d672 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9ef914f kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc9f1b557 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xc9f5f557 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xc9f73a0f inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xca3da826 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xca3eaa23 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xca554b9f elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xca7d9c56 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcaa46c57 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xcb444af3 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xcb4535ee queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xcb4a41e8 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xcba31a85 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xcba5452f platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xcbc2c8dd atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc00f69c set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xcc0ae290 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xcc1ac429 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xcc1aed08 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc3a1e00 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xcc65f15c cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xcc81ff99 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd0afb4 blkiocg_update_io_remove_stats +EXPORT_SYMBOL_GPL vmlinux 0xcce675e3 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xcd51bcd2 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0xcd9b331e ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xcd9c5c1b scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xcdb856e3 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xcdc8b81d crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce60429b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xceecbed0 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0xcf145d24 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xcf5fa72e usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xcf9b92e9 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xcfb07b7d usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xcfb5871c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd00fb264 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xd03c5f0f da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd040c98f ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd05dc2a3 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xd07280ee console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xd0a102f1 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xd0be8a5b lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0dee8d9 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xd0fad707 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xd10281c8 regcache_read +EXPORT_SYMBOL_GPL vmlinux 0xd141bd15 device_move +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1b45ccf md_stop +EXPORT_SYMBOL_GPL vmlinux 0xd1b87cb8 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd1c45404 ps3_vuart_port_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd1e4bed4 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xd1f1bc01 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd205e25b bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd2219d9e usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xd270fd37 blkiocg_update_io_merged_stats +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd28ae36a da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xd28c6780 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xd28d7139 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd31f8dbb ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd35dfebb wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xd3757148 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xd3795a42 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd386893d tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0xd39fd0d8 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xd3a589a3 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xd3aac09a netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd40de2b9 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd471b6d6 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4cb9f64 cpu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xd4d946b9 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xd4f08047 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xd54376c3 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0xd559b1f6 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xd582227a leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd590147e adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xd59668e6 unlock_flocks +EXPORT_SYMBOL_GPL vmlinux 0xd5b4663c security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5d1e59e sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd5fe2117 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xd60dce4b blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0xd610715a inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xd6204ee1 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xd6348f83 blkio_alloc_blkg_stats +EXPORT_SYMBOL_GPL vmlinux 0xd664d6a0 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xd6687cea wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd67f08b7 cpu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xd6aff8a3 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xd6f64c74 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xd6fb3bf3 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd752302a power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xd754c505 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xd760990e blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd768f168 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7854cf1 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xd7896efd dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd7c6fc10 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7fd2ed1 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xd80b1a7c ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0xd810af7d zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8263870 mmu_slb_size +EXPORT_SYMBOL_GPL vmlinux 0xd826bf13 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd839bf98 of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0xd8498f4d ps3av_mode_cs_info +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd864741f __add_pages +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd886b913 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xd8b2cbe3 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd9265777 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd93ca259 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xd93e76a6 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0xd984442c i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xd99665b9 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd999de6b devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xd9b8ccfd fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xd9da35a3 dw_spi_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0xd9ec87d2 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda0ab3a1 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xda3f706c skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xda588620 proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xda5b4bea ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xdac16fa7 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xdae8a7ab pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb0ac13b ps3_compare_firmware_version +EXPORT_SYMBOL_GPL vmlinux 0xdb0e92f1 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdb13a128 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb7cbcf1 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdb91fffb perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xdba01e08 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xdba6a31c pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xdbb186a2 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xdbe77aa6 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdbe85854 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xdc214a98 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xdc4b91ed led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xdc6aca1b input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xdc6c3af9 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc860320 xv_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdcdb0d9a handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xdce851cd sigset_from_compat +EXPORT_SYMBOL_GPL vmlinux 0xdcea96ba pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xdd043eea ps3av_get_auto_mode +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xddadd63c usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xddcd75ed rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdde8d3ab skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xddf7a02d __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xde02d689 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0xde1e1c27 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xde1e2daa pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xde315bde __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde553203 blkiocg_lookup_group +EXPORT_SYMBOL_GPL vmlinux 0xde7e315d wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xdf2ed96a usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xdf369f81 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xdf89e187 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xdfa3e1f2 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xdfd801a6 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xdff1b5dc ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdff578e0 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe011f817 ps3flash_bounce_buffer +EXPORT_SYMBOL_GPL vmlinux 0xe01220c8 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe04bddf8 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xe057c8bf disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe05e136b usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xe05f1bf3 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe08b6810 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xe0c09a6f __online_page_increment_counters +EXPORT_SYMBOL_GPL vmlinux 0xe0e10226 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xe0f3fde0 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xe0fc4099 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xe119d434 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe14a1619 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xe189a72c hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xe19fc092 ps3fb_videomemory +EXPORT_SYMBOL_GPL vmlinux 0xe1a00efb pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe1bd9385 inode_dio_done +EXPORT_SYMBOL_GPL vmlinux 0xe1c22336 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xe1f4d8a3 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xe2123688 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xe240f309 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xe25e1a80 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xe26018f4 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xe2c8e025 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe32c0169 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xe33e36dc platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe37ab4df ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe4329ad6 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe467dec7 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe47a70c4 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xe5168c36 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xe51d405c ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xe5413f78 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xe56e0ad5 pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0xe57fadbd pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xe58695a3 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5de1876 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe671f33c pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0xe67375ee crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xe6825540 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xe6d2f19d mmput +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6f1a63a cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xe6f2e3a6 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xe72f3cab sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xe75ddaa6 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0xe78dd4d9 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xe78edbfb spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xe7ac1bf3 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe80765e8 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe83662e3 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8646a4b anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xe86a33cd debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xe86b0355 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xe89bd243 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe8b4f9f1 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xe9332e01 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9558e43 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xe95811e7 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9645374 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe9743535 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xe9a2a980 unregister_spu_syscalls +EXPORT_SYMBOL_GPL vmlinux 0xe9d93e82 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xe9e4a4d0 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xe9fddf32 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xea04ea3e pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea3182d9 restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xea593e27 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xea8463de ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xea96ab52 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xeaa556c1 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xeaacb61b rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb097f39 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xeb4ddb17 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0xeb52c384 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xeb5f375d fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xeb68c560 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xebe7c561 irqd_to_hwirq +EXPORT_SYMBOL_GPL vmlinux 0xebee408d rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec1c548e pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec38d5b9 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xec44fffc ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xec492cc9 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xec49d90e usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xec7669e1 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xecb1a9e3 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xecb5514d ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0xecbec78b ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0xecbfe72e tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xecee2919 tpm_continue_selftest +EXPORT_SYMBOL_GPL vmlinux 0xed0166a0 of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xed6ffced adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xed977cbc hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xed9b49ad scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xeda2d224 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xedc2c896 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xedf67ae3 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xee3c8670 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xee4d4cf7 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xee586adb fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xee98c424 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xeea20962 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0xeec53b45 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xeecf3230 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xef5b725c __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef71ad93 tps65910_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xefa8ec7b crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xefef3494 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xf00b07f2 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xf0460426 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xf0483ff8 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xf07c6a80 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xf098dd15 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xf09c2386 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xf0bd2e0d tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0xf0c56557 ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xf0db55dd rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf0fa2ed4 of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0xf1256c83 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xf1386a46 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xf14df009 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xf14e1d1f device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf18d22f1 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xf1a3723d sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1e5fe54 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xf21fc9c4 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xf265dbcb md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0xf2a06ea5 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xf2b29afc sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf348c2a0 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xf386c318 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xf3a6b243 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xf3ae105a dw_spi_xfer_done +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf3ddd652 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xf3edf1b7 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xf433e708 spu_init_channels +EXPORT_SYMBOL_GPL vmlinux 0xf469c705 ps3_io_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf48d8cdf rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xf48ebc93 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4bc3ce2 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xf4cf8a58 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf50c9535 ps3_mmio_region_create +EXPORT_SYMBOL_GPL vmlinux 0xf510dadb inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xf51df56b mddev_check_plugged +EXPORT_SYMBOL_GPL vmlinux 0xf53c96a6 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xf53d43af dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xf53e775b disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54f854f flush_vsx_to_thread +EXPORT_SYMBOL_GPL vmlinux 0xf558ad12 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xf58f1406 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xf591d68c tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xf5a502f5 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5ce981b sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xf5da4a55 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xf5f105ce sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xf61edb43 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xf656cde4 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xf675fe54 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xf68db35c rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0xf6a668ea ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xf6ad512e led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xf6bab48d ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e58d16 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf702eba3 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xf71d75e6 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xf76771d9 user_match +EXPORT_SYMBOL_GPL vmlinux 0xf76b205d generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xf76f3c11 pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0xf77e2338 ps3_vuart_write +EXPORT_SYMBOL_GPL vmlinux 0xf791b5ab sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xf79bd9d4 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0xf7b47695 spu_get_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0xf7bb85cf devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xf7c6aef0 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xf7df6ea0 spu_management_ops +EXPORT_SYMBOL_GPL vmlinux 0xf8255d6e usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xf83ee5ff led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf8405cbe usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xf8706bb0 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf888ef73 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xf8e398fc memstart_addr +EXPORT_SYMBOL_GPL vmlinux 0xf8e75b64 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf92f1b87 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xf9532cde rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xf974806d rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xf9939f97 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a39549 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0xf9b2de66 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9f77171 sysfs_remove_device_from_node +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa14ad29 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xfa19efc6 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa5ccff9 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xfaa56b36 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfaf0fe57 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfb00b1ef inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xfb0b9b25 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0xfb2b2f9a sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb525dfc pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0xfb64f35a class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb84c441 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xfbd110e1 fb_sys_read +EXPORT_SYMBOL_GPL vmlinux 0xfbdcc080 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xfbec4370 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xfbf76ebf posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfbfcdc2b ps3_sys_manager_get_wol +EXPORT_SYMBOL_GPL vmlinux 0xfc1272ae crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xfc1d6c1a kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xfc9faa07 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xfcbc6a0f usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xfcd0dabb crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcffb4e1 pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xfd174550 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xfd3342fd wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfd6b3cac sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xfdafde3e generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xfddb4f9f scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdfa2fbc nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xfe034d16 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xfe059f92 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xfe3dc035 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xfe4727e6 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xfe756168 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff040100 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xff0dacff ps3av_video_mute +EXPORT_SYMBOL_GPL vmlinux 0xff5369cc dma_mmap_coherent +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5b94a9 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffa6656b da903x_writes --- linux-3.2.0.orig/debian.master/control.d/vars.generic +++ linux-3.2.0/debian.master/control.d/vars.generic @@ -0,0 +1,6 @@ +arch="i386 amd64" +supported="Generic" +target="Geared toward desktop and server systems." +desc="=HUMAN= SMP" +bootloader="grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1)" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules" --- linux-3.2.0.orig/debian.master/control.d/vars.generic-pae +++ linux-3.2.0/debian.master/control.d/vars.generic-pae @@ -0,0 +1,6 @@ +arch="i386" +supported="Generic" +target="Geared toward 32 bit desktop or server systems with more than 4GB RAM." +desc="=HUMAN= SMP" +bootloader="grub-pc | grub | lilo (>= 19.1)" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules" --- linux-3.2.0.orig/debian.master/control.d/flavour-control.stub +++ linux-3.2.0/debian.master/control.d/flavour-control.stub @@ -0,0 +1,98 @@ +# 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-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, =PROVIDES= +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3), crda (>=1.1.1-1ubuntu2) | wireless-crda +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: BOOTLOADER +Suggests: fdutils, SRCPKGNAME-doc-PKGVER | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools +Description: Linux kernel image for version PKGVER on DESC + This package contains the Linux kernel image 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-image-extra-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-PKGVER-ABINUM-FLAVOUR +Description: Linux kernel image for version PKGVER on DESC + This package contains the Linux kernel image 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 +Architecture: ARCH +Section: devel +Priority: optional +Depends: ${misc:Depends}, SRCPKGNAME-headers-PKGVER-ABINUM, ${shlibs:Depends} +Provides: SRCPKGNAME-headers, SRCPKGNAME-headers-3.0 +Description: Linux kernel headers for version PKGVER on DESC + This package provides kernel header files for version PKGVER on + DESC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details. + +Package: linux-image-PKGVER-ABINUM-FLAVOUR-dbgsym +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 a 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. --- linux-3.2.0.orig/debian.master/control.d/vars.powerpc64-smp +++ linux-3.2.0/debian.master/control.d/vars.powerpc64-smp @@ -0,0 +1,6 @@ +supported="64-bit PowerPC SMP" +target="Geared toward desktop or server systems." +desc="64-bit PowerPC SMP" +bootloader="yaboot" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc ppc64" --- linux-3.2.0.orig/debian.master/control.d/vars.virtual +++ linux-3.2.0/debian.master/control.d/vars.virtual @@ -0,0 +1,6 @@ +arch="i386 amd64" +supported="Virtual" +target="Geared toward virtual appliances." +desc="=HUMAN= Virtual Guests" +bootloader="grub-pc | grub | lilo (>= 19.1)" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules" --- linux-3.2.0.orig/debian.master/control.d/vars.powerpc-smp +++ linux-3.2.0/debian.master/control.d/vars.powerpc-smp @@ -0,0 +1,6 @@ +supported="32-bit PowerPC SMP" +target="Geared toward desktop or server systems." +desc="32-bit PowerPC SMP" +bootloader="yaboot" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" --- linux-3.2.0.orig/debian.master/control.d/vars.omap +++ linux-3.2.0/debian.master/control.d/vars.omap @@ -0,0 +1,8 @@ +arch="armel armhf" +supported="TI OMAP3" +desc="TI OMAP3-based =HUMAN= systems" +target="Targeted towards boards such as Beagleboard, Gumstix, IGEPv2, etc." +bootloader="flash-kernel" +provides="" +section_image="universe/base" +do_debug="Yes" --- linux-3.2.0.orig/debian.master/control.d/virtual.inclusion-list +++ linux-3.2.0/debian.master/control.d/virtual.inclusion-list @@ -0,0 +1,160 @@ +arch/*/{crypto,kernel,oprofile} +arch/*/kvm/kvm.ko +crypto/* +drivers/acpi/* +drivers/block/nbd.ko +drivers/block/floppy.ko +drivers/block/cryptoloop.ko +drivers/block/rbd.ko +drivers/char/hangcheck-timer.ko +drivers/char/ipmi/ipmi_msghandler.ko +drivers/char/lp.ko +drivers/char/nvram.ko +drivers/char/ppdev.ko +drivers/char/raw.ko +drivers/hv/* +drivers/infiniband/core/ib_core.ko +drivers/infiniband/core/rdma_cm.ko +drivers/infiniband/core/ib_addr.ko +drivers/infiniband/core/ib_cm.ko +drivers/infiniband/core/ib_sa.ko +drivers/infiniband/core/iw_cm.ko +drivers/infiniband/core/ib_mad.ko +drivers/input/evbug.ko +drivers/input/gameport/gameport.ko +drivers/input/mouse/psmouse.ko +drivers/input/serio/serio_raw.ko +drivers/input/serio/serport.ko +drivers/input/joydev.ko +drivers/input/touchscreen/usbtouchscreen.ko +drivers/input/misc/xen-kbdfront.ko +drivers/md/* +drivers/message/fusion* +drivers/misc/vmw_balloon.ko +drivers/net/ethernet/8390/8390.ko +drivers/net/ethernet/realtek/8139too.ko +drivers/net/ethernet/realtek/8139cp.ko +drivers/net/appletalk/ipddp.ko +drivers/net/bonding/bonding.ko +drivers/net/ppp/bsd_comp.ko +drivers/net/dummy.ko +drivers/net/ethernet/intel/e1000/e1000.ko +drivers/net/ethernet/intel/e1000e/e1000e.ko +drivers/net/eql.ko +drivers/net/ifb.ko +drivers/net/ethernet/intel/igbvf/igbvf.ko +drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko +drivers/net/macvlan.ko +drivers/net/macvtap.ko +drivers/net/ethernet/8390/ne2k-pci.ko +drivers/net/netconsole.ko +drivers/net/ethernet/amd/pcnet32.ko +drivers/net/hyperv/hv_netvsc.ko +drivers/net/ppp/* +drivers/net/slip/* +drivers/net/veth.ko +drivers/net/vmxnet3/vmxnet3.ko +drivers/net/xen-netback/* +drivers/parport/parport.ko +drivers/parport/parport_pc.ko +drivers/pci/hotplug/acpiphp.ko +drivers/net/ethernet/dec/tulip/* +drivers/scsi/BusLogic.ko +drivers/scsi/iscsi_tcp.ko +drivers/scsi/libiscsi.ko +drivers/scsi/libiscsi_tcp.ko +drivers/scsi/libsas/* +drivers/scsi/osd/osd.ko +drivers/scsi/osd/libosd.ko +drivers/scsi/qla1280.ko +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_wait_scan.ko +drivers/scsi/scsi_tgt.ko +drivers/scsi/vmw_pvscsi.ko +drivers/scsi/hv_storvsc.ko +drivers/usb/storage/usb-storage.ko +drivers/video/cirrusfb.ko +drivers/video/output.ko +drivers/video/syscopyarea.ko +drivers/video/sysfillrect.ko +drivers/video/sysimgblt.ko +drivers/video/vesafb.ko +drivers/video/vga16fb.ko +drivers/video/vgastate.ko +drivers/video/xen-fbfront.ko +drivers/video/fb_sys_fops.ko +drivers/virtio/virtio_balloon.ko +drivers/watchdog/softdog.ko +drivers/xen/* +fs/9p/* +fs/binfmt_misc.ko +fs/btrfs/* +fs/cachefiles/cachefiles.ko +fs/ceph/* +fs/configfs/* +fs/ext*/* +fs/exofs/libore.ko +fs/fat/* +fs/nls/nls_cp437.ko +fs/nls/nls_iso8859-1.ko +fs/isofs/* +fs/cifs/* +fs/xfs/* +fs/ufs/* +fs/squashfs/* +fs/nfs/* +fs/nfsd/* +fs/nfs_common/* +fs/fscache/* +fs/lockd/* +fs/autofs4/autofs4.ko +fs/overlayfs/* +fs/udf/* +arch/x86/kvm/kvm-intel.ko +arch/x86/kvm/kvm-amd.ko +lib/libcrc32c.ko +net/ceph/libceph.ko +lib/* +net/802/* +net/8021q/* +net/9p/* +net/appletalk/* +net/atm/* +net/ax25/* +net/bridge/* +net/can/* +net/ceph/libceph.ko +net/core/* +net/dccp/* +net/decnet/* +net/econet/* +net/ieee802154/* +net/ipv4/* +net/ipv6/* +net/ipx/* +net/irda/* +net/key/* +net/lapb/* +net/llc/* +net/mac80211/* +net/netfilter/* +net/netrom/* +net/phonet/* +net/rose/* +net/rxrpc/* +net/sched/* +net/sctp/* +net/tipc/* +net/wanrouter/* +net/wireless/* +net/x25/* +net/xfrm/* +net/sunrpc/auth_gss/auth_rpcgss.ko +net/sunrpc/sunrpc.ko +sound/soundcore.ko +sound/core/* +sound/pci/snd-ens1370.ko +sound/drivers/pcsp/snd-pcsp.ko --- linux-3.2.0.orig/debian.master/control.d/vars.highbank +++ linux-3.2.0/debian.master/control.d/vars.highbank @@ -0,0 +1,8 @@ +arch="armhf" +supported="Calxeda highbank" +desc="Calxeda highbank ARM Server" +target="Targeted towards Calxeda highbank ARM Server" +bootloader="flash-kernel" +provides="" +section_image="universe/base" +do_debug="Yes" --- linux-3.2.0.orig/debian.master/d-i/exclude-firmware.armhf-highbank +++ linux-3.2.0/debian.master/d-i/exclude-firmware.armhf-highbank @@ -0,0 +1,2 @@ +nic-modules +scsi-modules --- linux-3.2.0.orig/debian.master/d-i/exclude-modules.sparc +++ linux-3.2.0/debian.master/d-i/exclude-modules.sparc @@ -0,0 +1,9 @@ +efi-modules +nic-pcmcia-modules +pcmcia-modules +pcmcia-storage-modules +irda-modules +floppy-modules +fb-modules +acpi-modules +virtio-modules --- linux-3.2.0.orig/debian.master/d-i/exclude-modules.armel-omap +++ linux-3.2.0/debian.master/d-i/exclude-modules.armel-omap @@ -0,0 +1,10 @@ +serial-modules +firewire-core-modules +floppy-modules +pcmcia-storage-modules +fb-modules +nic-pcmcia-modules +pcmcia-modules +pata-modules +message-modules +virtio-modules --- linux-3.2.0.orig/debian.master/d-i/exclude-firmware.armhf-omap +++ linux-3.2.0/debian.master/d-i/exclude-firmware.armhf-omap @@ -0,0 +1,2 @@ +nic-modules +scsi-modules --- linux-3.2.0.orig/debian.master/d-i/package-list +++ linux-3.2.0/debian.master/d-i/package-list @@ -0,0 +1,196 @@ +Package: kernel-image + +Package: fat-modules +Depends: kernel-image +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: fb-modules +Depends: kernel-image +Priority: standard +Description: Framebuffer modules + +Package: firewire-core-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: Firewire (IEEE-1394) Support + +Package: floppy-modules +Depends: kernel-image +Priority: standard +Description: Floppy driver support + +Package: fs-core-modules +Depends: kernel-image +Priority: standard +Provides: jfs-modules, reiserfs-modules, xfs-modules +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules +Depends: kernel-image, fat-modules +Priority: standard +Provides: ntfs-modules, hfs-modules +Description: Extra filesystem modules + This includes support for Windows NTFS and MacOS HFS/HFSPlus + +Package: input-modules +Depends: kernel-image, usb-modules +Priority: standard +Description: Support for various input methods + +Package: irda-modules +Depends: kernel-image, nic-shared-modules +Priority: standard +Description: Support for Infrared protocols + +Package: md-modules +Depends: kernel-image +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: nic-modules +Depends: kernel-image, nic-shared-modules, virtio-modules +Priority: standard +Description: Network interface support + +Package: nic-pcmcia-modules +Depends: kernel-image, nic-shared-modules, nic-modules +Priority: standard +Description: PCMCIA network interface support + +Package: nic-usb-modules +Depends: kernel-image, nic-shared-modules, usb-modules +Priority: standard +Description: USB network interface support + +Package: nic-shared-modules +Depends: kernel-image, crypto-modules +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: parport-modules +Depends: kernel-image +Priority: standard +Description: Parallel port support + +Package: pata-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: PATA support modules + +Package: pcmcia-modules +Depends: kernel-image +Priority: standard +Description: PCMCIA Modules + +Package: pcmcia-storage-modules +Depends: kernel-image, scsi-modules +Priority: standard +Description: PCMCIA storage support + +Package: plip-modules +Depends: kernel-image, nic-shared-modules, parport-modules +Priority: standard +Description: PLIP (parallel port) networking support + +Package: ppp-modules +Depends: kernel-image, nic-shared-modules, serial-modules +Priority: standard +Description: PPP (serial port) networking support + +Package: sata-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: SATA storage support + +Package: scsi-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: SCSI storage support + +Package: serial-modules +Depends: kernel-image +Priority: standard +Description: Serial port support + +Package: storage-core-modules +Depends: kernel-image +Priority: standard +Provides: loop-modules +Description: Core storage support + Includes core SCSI, LibATA, USB-Storage. Also includes related block + devices for CD, Disk and Tape medium (and IDE Floppy). + +Package: usb-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: Core USB support + +Package: nfs-modules +Priority: standard +Depends: kernel-image +Description: NFS filesystem drivers + Includes the NFS client driver, and supporting modules. + +Package: block-modules +Priority: standard +Depends: kernel-image, storage-core-modules, parport-modules, virtio-modules +Description: Block storage devices + This package contains the block storage devices, including DAC960 and + paraide. + +Package: message-modules +Priority: standard +Depends: kernel-image, storage-core-modules, scsi-modules +Description: Fusion and i2o storage modules + This package containes the fusion and i2o storage modules. + +Package: crypto-modules +Priority: extra +Depends: kernel-image +Description: crypto modules + This package contains crypto modules. + +Package: virtio-modules +Priority: standard +Depends: kernel-image +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: socket-modules +Depends: kernel-image +Priority: standard +Description: Unix socket support + +Package: mouse-modules +Depends: kernel-image, input-modules, usb-modules +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: squashfs-modules +Depends: kernel-image +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: vlan-modules +Depends: kernel-image +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. + +Package: ipmi-modules +Depends: kernel-image +Priority: standard +Description: ipmi modules + +Package: multipath-modules +Depends: kernel-image +Priority: extra +Description: DM-Multipath support + This package contains modules for device-mapper multipath support. + --- linux-3.2.0.orig/debian.master/d-i/exclude-modules.armhf-omap +++ linux-3.2.0/debian.master/d-i/exclude-modules.armhf-omap @@ -0,0 +1,10 @@ +serial-modules +firewire-core-modules +floppy-modules +pcmcia-storage-modules +fb-modules +nic-pcmcia-modules +pcmcia-modules +pata-modules +message-modules +virtio-modules --- linux-3.2.0.orig/debian.master/d-i/exclude-modules.armhf-highbank +++ linux-3.2.0/debian.master/d-i/exclude-modules.armhf-highbank @@ -0,0 +1,13 @@ +serial-modules +firewire-core-modules +floppy-modules +pcmcia-storage-modules +fb-modules +nic-pcmcia-modules +pcmcia-modules +pata-modules +message-modules +virtio-modules +multipath-modules +ipmi-modules +sata-modules --- linux-3.2.0.orig/debian.master/d-i/exclude-modules.amd64-virtual +++ linux-3.2.0/debian.master/d-i/exclude-modules.amd64-virtual @@ -0,0 +1,15 @@ +pata-modules +serial-modules +firewire-core-modules +plip-modules +usb-modules +pcmcia-storage-modules +input-modules +nic-pcmcia-modules +pcmcia-modules +nic-usb-modules +nfs-modules +speakup-modules +ppp-modules +sata-modules +ipmi-modules --- linux-3.2.0.orig/debian.master/d-i/exclude-modules.powerpc +++ linux-3.2.0/debian.master/d-i/exclude-modules.powerpc @@ -0,0 +1,4 @@ +efi-modules +fb-modules +acpi-modules +virtio-modules --- linux-3.2.0.orig/debian.master/d-i/exclude-modules.i386-virtual +++ linux-3.2.0/debian.master/d-i/exclude-modules.i386-virtual @@ -0,0 +1,15 @@ +pata-modules +serial-modules +firewire-core-modules +plip-modules +usb-modules +pcmcia-storage-modules +input-modules +nic-pcmcia-modules +pcmcia-modules +nic-usb-modules +nfs-modules +speakup-modules +ppp-modules +sata-modules +ipmi-modules --- linux-3.2.0.orig/debian.master/d-i/kernel-versions +++ linux-3.2.0/debian.master/d-i/kernel-versions @@ -0,0 +1,17 @@ +# arch version flavour installedname suffix bdep +amd64 3.2.0-54 generic 3.2.0-54-generic - +amd64 3.2.0-54 virtual 3.2.0-54-virtual - + +i386 3.2.0-54 generic 3.2.0-54-generic - +i386 3.2.0-54 generic-pae 3.2.0-54-generic-pae - +i386 3.2.0-54 virtual 3.2.0-54-virtual - + +armel 3.2.0-54 omap 3.2.0-54-omap - + +armhf 3.2.0-54 omap 3.2.0-54-omap - +armhf 3.2.0-54 highbank 3.2.0-54-highbank - + +# Ports +# arch version flavour installedname suffix bdep +powerpc 3.2.0-54 powerpc-smp 3.2.0-54-powerpc-smp - +powerpc 3.2.0-54 powerpc64-smp 3.2.0-54-powerpc64-smp - --- linux-3.2.0.orig/debian.master/d-i/kernel-versions.in +++ linux-3.2.0/debian.master/d-i/kernel-versions.in @@ -0,0 +1,17 @@ +# arch version flavour installedname suffix bdep +amd64 PKGVER-ABINUM generic PKGVER-ABINUM-generic - +amd64 PKGVER-ABINUM virtual PKGVER-ABINUM-virtual - + +i386 PKGVER-ABINUM generic PKGVER-ABINUM-generic - +i386 PKGVER-ABINUM generic-pae PKGVER-ABINUM-generic-pae - +i386 PKGVER-ABINUM virtual PKGVER-ABINUM-virtual - + +armel PKGVER-ABINUM omap PKGVER-ABINUM-omap - + +armhf PKGVER-ABINUM omap PKGVER-ABINUM-omap - +armhf PKGVER-ABINUM highbank PKGVER-ABINUM-highbank - + +# Ports +# arch version flavour installedname suffix bdep +powerpc PKGVER-ABINUM powerpc-smp PKGVER-ABINUM-powerpc-smp - +powerpc PKGVER-ABINUM powerpc64-smp PKGVER-ABINUM-powerpc64-smp - --- linux-3.2.0.orig/debian.master/d-i/exclude-modules.ia64 +++ linux-3.2.0/debian.master/d-i/exclude-modules.ia64 @@ -0,0 +1,4 @@ +irda-modules +floppy-modules +fb-modules +virtio-modules --- linux-3.2.0.orig/debian.master/d-i/exclude-firmware.armel-omap +++ linux-3.2.0/debian.master/d-i/exclude-firmware.armel-omap @@ -0,0 +1,2 @@ +nic-modules +scsi-modules --- linux-3.2.0.orig/debian.master/d-i/modules/crypto-modules +++ linux-3.2.0/debian.master/d-i/modules/crypto-modules @@ -0,0 +1,8 @@ +aes_generic ? +blowfish ? +twofish ? +serpent ? +sha256_generic ? +cbc ? +ecb ? +crc32c ? --- linux-3.2.0.orig/debian.master/d-i/modules/usb-modules +++ linux-3.2.0/debian.master/d-i/modules/usb-modules @@ -0,0 +1,10 @@ +ehci-hcd ? +isp116x-hcd ? +isp1760 ? +ohci-hcd ? +r8a66597-hcd ? +sl811_cs ? +sl811-hcd ? +u132-hcd ? +uhci-hcd ? +xhci-hcd ? --- linux-3.2.0.orig/debian.master/d-i/modules/fat-modules +++ linux-3.2.0/debian.master/d-i/modules/fat-modules @@ -0,0 +1,7 @@ +fat ? +vfat ? + +# Supporting modules ? +nls_cp437 ? +nls_iso8859-1 ? +nls_utf8 ? --- linux-3.2.0.orig/debian.master/d-i/modules/virtio-modules +++ linux-3.2.0/debian.master/d-i/modules/virtio-modules @@ -0,0 +1,8 @@ +virtio_balloon ? +virtio_pci ? +virtio_ring ? +virtio-rng ? +hv_vmbus ? +hv_utils ? +hv_netvsc ? +hv_storvsc ? --- linux-3.2.0.orig/debian.master/d-i/modules/nic-shared-modules +++ linux-3.2.0/debian.master/d-i/modules/nic-shared-modules @@ -0,0 +1,29 @@ +# PHY +8390 ? +mii ? + +# CRC modules +crc-ccitt ? +crc-itu-t ? +libcrc32c ? + +# mac80211 stuff +mac80211 ? +cfg80211 ? + +# rt2x00 lib (since rt2x00 is split across usb/pci/cb +rt2x00lib ? +rt2800lib ? + +# Atheros library (since drivers are split across nic-modules/nic-usb-modules) +ath ? + +# EEPROM driver used by rtl818x (both pci and usb versions) +eeprom_93cx6 ? + +# Wireless 802.11 modules +lib80211 ? +cfg80211 ? +lib80211_crypt_ccmp ? +lib80211_crypt_tkip ? +lib80211_crypt_wep ? --- linux-3.2.0.orig/debian.master/d-i/modules/squashfs-modules +++ linux-3.2.0/debian.master/d-i/modules/squashfs-modules @@ -0,0 +1 @@ +squashfs ? --- linux-3.2.0.orig/debian.master/d-i/modules/nfs-modules +++ linux-3.2.0/debian.master/d-i/modules/nfs-modules @@ -0,0 +1,5 @@ +nfs ? +nfs_acl ? +lockd ? +sunrpc ? +cifs ? --- linux-3.2.0.orig/debian.master/d-i/modules/speakup-modules +++ linux-3.2.0/debian.master/d-i/modules/speakup-modules @@ -0,0 +1,16 @@ +speakup ? +speakup_acntpc ? +speakup_acntsa ? +speakup_apollo ? +speakup_audptr ? +speakup_bns ? +speakup_decext ? +speakup_dectlk ? +speakup_dtlk ? +speakup_dummy ? +speakup_keypc ? +speakup_ltlk ? +speakup_soft ? +speakup_spkout ? +speakup_txprt ? +speakup_decpc ? --- linux-3.2.0.orig/debian.master/d-i/modules/fb-modules +++ linux-3.2.0/debian.master/d-i/modules/fb-modules @@ -0,0 +1,3 @@ +fbcon ? +vesafb ? +vga16fb ? --- linux-3.2.0.orig/debian.master/d-i/modules/parport-modules +++ linux-3.2.0/debian.master/d-i/modules/parport-modules @@ -0,0 +1,2 @@ +parport ? +parport_pc ? --- linux-3.2.0.orig/debian.master/d-i/modules/storage-core-modules +++ linux-3.2.0/debian.master/d-i/modules/storage-core-modules @@ -0,0 +1,10 @@ +# Core stacks +usb-storage ? + +# Block level + +# Loop modules +cryptoloop ? + +# Needs to be here for better cdrom initrd layout +isofs ? --- linux-3.2.0.orig/debian.master/d-i/modules/pcmcia-storage-modules +++ linux-3.2.0/debian.master/d-i/modules/pcmcia-storage-modules @@ -0,0 +1,6 @@ +pata_pcmcia ? +qlogic_cs ? +fdomain_cs ? +aha152x_cs ? +nsp_cs ? +sym53c500_cs ? --- linux-3.2.0.orig/debian.master/d-i/modules/scsi-modules +++ linux-3.2.0/debian.master/d-i/modules/scsi-modules @@ -0,0 +1,126 @@ +# SCSI +raid_class ? +scsi_transport_spi ? +scsi_transport_fc ? +scsi_transport_iscsi ? +scsi_transport_sas ? +iscsi_tcp ? +libiscsi ? +amiga7xx ? +a3000 ? +a2091 ? +gvp11 ? +mvme147 ? +sgiwd93 ? +cyberstorm ? +cyberstormII ? +blz2060 ? +blz1230 ? +fastlane ? +oktagon_esp_mod ? +atari_scsi ? +mac_scsi ? +mac_esp ? +sun3_scsi ? +mvme16x ? +bvme6000 ? +sim710 ? +advansys ? +psi240i ? +BusLogic ? +dpt_i2o ? +u14-34f ? +ultrastor ? +aha152x ? +aha1542 ? +aha1740 ? +aic7xxx_old ? +ips ? +fd_mcs ? +fdomain ? +fnic ? +in2000 ? +g_NCR5380 ? +g_NCR5380_mmio ? +NCR53c406a ? +NCR_D700 ? +NCR_Q720_mod ? +sym53c416 ? +qlogicfas408 ? +qla1280 ? +pas16 ? +seagate ? +seagate ? +t128 ? +dmx3191d ? +dtc ? +zalon7xx ? +eata_pio ? +wd7000 ? +mca_53c9x ? +ibmmca ? +eata ? +dc395x ? +tmscsim ? +megaraid ? +atp870u ? +esp ? +gdth ? +initio ? +a100u2w ? +qlogicpti ? +ide-scsi ? +mesh ? +mac53c94 ? +pluto ? +dec_esp ? +3w-xxxx ? +3w-9xxx ? +ppa ? +imm ? +jazz_esp ? +sun3x_esp ? +fcal ? +lasi700 ? +nsp32 ? +ipr ? +hptiop ? +stex ? +osst ? +sg ? +ch ? +scsi_debug ? +aacraid ? +aic7xxx ? +aic79xx ? +aic94xx ? +arcmsr ? +acornscsi_mod ? +arxescsi ? +cumana_1 ? +cumana_2 ? +ecoscsi ? +oak ? +powertec ? +eesox ? +ibmvscsic ? +libsas ? +lpfc ? +megaraid_mm ? +megaraid_mbox ? +megaraid_sas ? +qla2xxx ? +sym53c8xx ? +qla4xxx ? +mvsas ? +vmw_pvscsi ? +ums-cypress ? +be2iscsi ? +3w-sas ? +isci ? + +# device handlers +scsi_dh_alua ? +scsi_dh_emc ? +scsi_dh_rdac ? +scsi_dh_hp_sw ? --- linux-3.2.0.orig/debian.master/d-i/modules/plip-modules +++ linux-3.2.0/debian.master/d-i/modules/plip-modules @@ -0,0 +1 @@ +plip ? --- linux-3.2.0.orig/debian.master/d-i/modules/fs-secondary-modules +++ linux-3.2.0/debian.master/d-i/modules/fs-secondary-modules @@ -0,0 +1,5 @@ +btrfs ? +fuse ? +ntfs ? +hfs ? +hfsplus ? --- linux-3.2.0.orig/debian.master/d-i/modules/nic-modules +++ linux-3.2.0/debian.master/d-i/modules/nic-modules @@ -0,0 +1,169 @@ +3c359 ? +3c501 ? +3c503 ? +3c505 ? +3c507 ? +3c509 ? +3c515 ? +3c523 ? +3c527 ? +3c59x ? +8139cp ? +8139too ? +82596 ? +abyss ? +ac3200 ? +adm8211 ? +airo ? +airport ? +amd8111e ? +arc4 ? +arcnet ? +arc-rawmode ? +arc-rimi ? +arlan ? +at1700 ? +ath5k ? +ath9k ? +ath9k_htc ? +atl1 ? +atl1c ? +atl1e ? +atl2 ? +atmel ? +atmel_pci ? +b44 ? +be2net ? +bmac ? +bnx2 ? +bnx2x ? +bonding ? +brcmfmac ? +brcmsmac ? +cassini ? +com20020 ? +com20020-pci ? +com90io ? +com90xx ? +cs89x0 ? +de2104x ? +de4x5 ? +de600 ? +de620 ? +defxx ? +depca ? +dl2k ? +dmfe ? +dummy ? +e100 ? +e1000 ? +e1000e ? +e2100 ? +eepro ? +eepro100 ? +eexpress ? +enic ? +epic100 ? +eql ? +es3210 ? +eth16i ? +ewrk3 ? +fealnx ? +forcedeth ? +igb ? +ps3_gelic ? +hamachi ? +hermes ? +hp ? +hp100 ? +hp-plus ? +ibmtr ? +ipddp ? +ipw2100 ? +ipw2200 ? +iwl3945 ? +iwl4965 ? +iwl-legacy ? +iwlwifi ? +ixgb ? +ixgbe ? +lance ? +lanstreamer ? +lasi_82596 ? +lne390 ? +lp486e ? +mace ? +mlx4_core ? +mlx4_en ? +mv643xx_eth ? +myri_sbus ? +natsemi ? +ne ? +ne2 ? +ne2k-pci ? +ne3210 ? +netconsole ? +netxen_nic ? +ni5010 ? +ni52 ? +ni65 ? +niu ? +ns83820 ? +olympic ? +orinoco ? +orinoco_pci ? +orinoco_plx ? +orinoco_tmd ? +pcnet32 ? +prism54 ? +r8169 ? +rate_control ? +rfc1051 ? +rfc1201 ? +rrunner ? +rt2400 ? +rt2400pci ? +rt2500 ? +rt2500pci ? +rt2800pci ? +rt61pci ? +s2io ? +shaper ? +sis190 ? +sis900 ? +spidernet ? +skfp ? +skge ? +sk98lin ? +sky2 ? +smc9194 ? +smc-ultra ? +smc-ultra32 ? +starfire ? +strip ? +sunbmac ? +sundance ? +sungem ? +sungem_phy ? +sunhme ? +sunlance ? +sunqe ? +sunvnet ? +tg3 ? +tlan ? +tms380tr ? +tmspci ? +tulip ? +tun ? +typhoon ? +uli526x ? +via-rhine ? +via-velocity ? +virtio_net ? +wavelan ? +wd ? +winbond-840 ? +yellowfin ? +znet ? +vmxnet3 ? +xen-netfront ? --- linux-3.2.0.orig/debian.master/d-i/modules/nic-pcmcia-modules +++ linux-3.2.0/debian.master/d-i/modules/nic-pcmcia-modules @@ -0,0 +1,19 @@ +3c574_cs ? +3c589_cs ? +airo_cs ? +atmel_cs ? +axnet_cs ? +com20020_cs ? +fmvj18x_cs ? +ibmtr_cs ? +netwave_cs ? +nmclan_cs ? +orinoco_cs ? +pcnet_cs ? +ray_cs ? +smc91c92_cs ? +wavelan_cs ? +wl3501_cs ? +xirc2ps_cs ? +xircom_cb ? +xircom_tulip_cb ? --- linux-3.2.0.orig/debian.master/d-i/modules/message-modules +++ linux-3.2.0/debian.master/d-i/modules/message-modules @@ -0,0 +1,14 @@ +mptbase ? +mptctl ? +mptfc ? +mptlan ? +mptsas ? +mpt2sas ? +mptscsih ? +mptspi ? +i2o_block ? +i2o_bus ? +i2o_config ? +i2o_core ? +i2o_proc ? +i2o_scsi ? --- linux-3.2.0.orig/debian.master/d-i/modules/serial-modules +++ linux-3.2.0/debian.master/d-i/modules/serial-modules @@ -0,0 +1,3 @@ +generic_serial ? +serial_cs ? +synclink_cs ? --- linux-3.2.0.orig/debian.master/d-i/modules/sata-modules +++ linux-3.2.0/debian.master/d-i/modules/sata-modules @@ -0,0 +1,13 @@ +sata_inic162x.ko ? +sata_mv.ko ? +sata_nv.ko ? +sata_promise.ko ? +sata_qstor.ko ? +sata_sil24.ko ? +sata_sil.ko ? +sata_sis.ko ? +sata_svw.ko ? +sata_sx4.ko ? +sata_uli.ko ? +sata_via.ko ? +sata_vsc.ko ? --- linux-3.2.0.orig/debian.master/d-i/modules/vlan-modules +++ linux-3.2.0/debian.master/d-i/modules/vlan-modules @@ -0,0 +1,3 @@ +slp ? +garp ? +8021q ? --- linux-3.2.0.orig/debian.master/d-i/modules/md-modules +++ linux-3.2.0/debian.master/d-i/modules/md-modules @@ -0,0 +1,16 @@ +dm-crypt ? +dm-mirror ? +dm-raid ? +dm-snapshot ? +dm-zero ? +faulty ? +linear ? +multipath ? +raid0 ? +raid1 ? +raid10 ? +raid456 ? + +# Extras +dm-raid45 ? +dm-loop ? --- linux-3.2.0.orig/debian.master/d-i/modules/ipmi-modules +++ linux-3.2.0/debian.master/d-i/modules/ipmi-modules @@ -0,0 +1,5 @@ +ipmi_devintf ? +ipmi_msghandler ? +ipmi_poweroff ? +ipmi_si ? +ipmi_watchdog ? --- linux-3.2.0.orig/debian.master/d-i/modules/pcmcia-modules +++ linux-3.2.0/debian.master/d-i/modules/pcmcia-modules @@ -0,0 +1,8 @@ +i82092 ? +i82365 ? +pcmcia ? +pcmcia_core ? +pd6729 ? +rsrc_nonstatic ? +tcic ? +yenta_socket ? --- linux-3.2.0.orig/debian.master/d-i/modules/ppp-modules +++ linux-3.2.0/debian.master/d-i/modules/ppp-modules @@ -0,0 +1,6 @@ +ppp_async ? +ppp_deflate ? +ppp_mppe ? +pppoe ? +pppox ? +ppp_synctty ? --- linux-3.2.0.orig/debian.master/d-i/modules/firewire-core-modules +++ linux-3.2.0/debian.master/d-i/modules/firewire-core-modules @@ -0,0 +1,4 @@ +firewire-core ? +firewire-ohci ? +firewire-sbp2 ? +firewire-net ? --- linux-3.2.0.orig/debian.master/d-i/modules/multipath-modules +++ linux-3.2.0/debian.master/d-i/modules/multipath-modules @@ -0,0 +1,2 @@ +dm-multipath ? +dm-round-robin ? --- linux-3.2.0.orig/debian.master/d-i/modules/mouse-modules +++ linux-3.2.0/debian.master/d-i/modules/mouse-modules @@ -0,0 +1,2 @@ +psmouse ? +usbmouse ? --- linux-3.2.0.orig/debian.master/d-i/modules/irda-modules +++ linux-3.2.0/debian.master/d-i/modules/irda-modules @@ -0,0 +1,30 @@ +act200l-sir ? +actisys-sir ? +ali-ircc ? +donauboe ? +esi-sir ? +girbil-sir ? +ircomm ? +ircomm-tty ? +irda ? +irda-usb ? +irlan ? +irnet ? +irport ? +irtty-sir ? +kingsun-sir ? +ks959-sir ? +ksdazzle-sir ? +litelink-sir ? +ma600-sir ? +mcp2120-sir ? +mcs7780 ? +nsc-ircc ? +old_belkin-sir ? +sir-dev ? +smsc-ircc2 ? +stir4200 ? +tekram-sir ? +via-ircc ? +vlsi_ir ? +w83977af_ir ? --- linux-3.2.0.orig/debian.master/d-i/modules/pata-modules +++ linux-3.2.0/debian.master/d-i/modules/pata-modules @@ -0,0 +1,47 @@ +pata_ali.ko ? +pata_amd.ko ? +pata_artop.ko ? +pata_atiixp.ko ? +pata_atp867x.ko ? +pata_cmd640.ko ? +pata_cmd64x.ko ? +pata_cs5520.ko ? +pata_cs5530.ko ? +pata_cs5535.ko ? +pata_cs5536.ko ? +pata_cypress.ko ? +pata_efar.ko ? +pata_hpt366.ko ? +pata_hpt37x.ko ? +pata_hpt3x2n.ko ? +pata_hpt3x3.ko ? +pata_isapnp.ko ? +pata_it8213.ko ? +pata_it821x.ko ? +pata_jmicron.ko ? +pata_legacy.ko ? +pata_macio.ko ? +pata_marvell.ko ? +pata_mpiix.ko ? +pata_netcell.ko ? +pata_ninja32.ko ? +pata_ns87410.ko ? +pata_ns87415.ko ? +pata_oldpiix.ko ? +pata_optidma.ko ? +pata_opti.ko ? +pata_pcmcia.ko ? +pata_pdc2027x.ko ? +pata_pdc202xx_old.ko ? +pata_qdi.ko ? +pata_radisys.ko ? +pata_rdc.ko ? +pata_rz1000.ko ? +pata_sc1200.ko ? +pata_sch.ko ? +pata_serverworks.ko ? +pata_sil680.ko ? +pata_sl82c105.ko ? +pata_triflex.ko ? +pata_via.ko ? +pata_winbond.ko ? --- linux-3.2.0.orig/debian.master/d-i/modules/block-modules +++ linux-3.2.0/debian.master/d-i/modules/block-modules @@ -0,0 +1,32 @@ +aoe ? +aten ? +bpck ? +bpck6 ? +cciss ? +comm ? +cpqarray ? +DAC960 ? +dstr ? +epat ? +epia ? +fit2 ? +fit3 ? +friq ? +frpw ? +hpsa ? +kbic ? +ktti ? +nbd ? +on20 ? +on26 ? +paride ? +pcd ? +pd ? +pf ? +pg ? +pt ? +sx8 ? +umem ? +virtio_blk ? +xen-blkfront ? +mtip32xx ? --- linux-3.2.0.orig/debian.master/d-i/modules/floppy-modules +++ linux-3.2.0/debian.master/d-i/modules/floppy-modules @@ -0,0 +1 @@ +floppy ? --- linux-3.2.0.orig/debian.master/d-i/modules/fs-core-modules +++ linux-3.2.0/debian.master/d-i/modules/fs-core-modules @@ -0,0 +1,4 @@ +ext2 ? +jfs ? +reiserfs ? +xfs ? --- linux-3.2.0.orig/debian.master/d-i/modules/nic-usb-modules +++ linux-3.2.0/debian.master/d-i/modules/nic-usb-modules @@ -0,0 +1,33 @@ +catc ? +kaweth ? +pegasus ? +prism2_usb ? +rtl8150 ? +usbnet ? +zd1211rw ? +zd1201 ? +rt2500usb ? +rt73usb ? +rt2570 ? +rt2800usb ? +rt2x00usb ? +rtl8187 ? +cdc_ether ? +asix ? +cdc_eem ? +cdc_ether ? +cdc-phonet ? +cdc_subset ? +dm9601 ? +gl620a ? +hso ? +int51x1 ? +mcs7830 ? +net1080 ? +plusb ? +rndis_host ? +smsc95xx ? +zaurus ? +carl9170 ? +smsc75xx ? +smsc95xx ? --- linux-3.2.0.orig/debian.master/d-i/modules/input-modules +++ linux-3.2.0/debian.master/d-i/modules/input-modules @@ -0,0 +1,22 @@ +hid-a4tech ? +hid-apple ? +hid-belkin ? +hid-bright ? +hid-cherry ? +hid-chicony ? +hid-cypress ? +hid-dell ? +hid-ezkey ? +hid-gyration ? +hid-logitech ? +hid-logitech-dj ? +hid-microsoft ? +hid-monterey ? +hid-petalynx ? +hid-pl ? +hid-samsung ? +hid-sony ? +hid-sunplus ? +hid-tmff ? +hid-zpff ? +usbhid ? --- linux-3.2.0.orig/debian.master/d-i/modules-powerpc/storage-core-modules +++ linux-3.2.0/debian.master/d-i/modules-powerpc/storage-core-modules @@ -0,0 +1,13 @@ +# Core stacks +usb-storage ? + +# Block level + +# Loop modules +cryptoloop + +# Needs to be here for better cdrom initrd layout +isofs + +ps3stor_lib ? +ps3rom ? --- linux-3.2.0.orig/debian.master/d-i/modules-powerpc/scsi-modules +++ linux-3.2.0/debian.master/d-i/modules-powerpc/scsi-modules @@ -0,0 +1,118 @@ +# SCSI +raid_class ? +scsi_transport_spi ? +scsi_transport_fc ? +scsi_transport_iscsi ? +scsi_transport_sas ? +iscsi_tcp ? +libiscsi ? +amiga7xx ? +a3000 ? +a2091 ? +gvp11 ? +mvme147 ? +sgiwd93 ? +cyberstorm ? +cyberstormII ? +blz2060 ? +blz1230 ? +fastlane ? +oktagon_esp_mod ? +atari_scsi ? +mac_scsi ? +mac_esp ? +sun3_scsi ? +mvme16x ? +bvme6000 ? +sim710 ? +advansys ? +psi240i ? +BusLogic ? +dpt_i2o ? +u14-34f ? +ultrastor ? +aha152x ? +aha1542 ? +aha1740 ? +aic7xxx_old ? +ips ? +fd_mcs ? +fdomain ? +in2000 ? +g_NCR5380 ? +g_NCR5380_mmio ? +NCR53c406a ? +NCR_D700 ? +NCR_Q720_mod ? +sym53c416 ? +qlogicfas408 ? +qla1280 ? +pas16 ? +seagate ? +seagate ? +t128 ? +dmx3191d ? +dtc ? +zalon7xx ? +eata_pio ? +wd7000 ? +mca_53c9x ? +ibmmca ? +ibmvfc ? +ibmvscsic ? +eata ? +dc395x ? +tmscsim ? +megaraid ? +atp870u ? +esp ? +gdth ? +initio ? +a100u2w ? +qlogicpti ? +ide-scsi ? +mesh ? +mac53c94 ? +pluto ? +dec_esp ? +3w-xxxx ? +3w-9xxx ? +ppa ? +imm ? +jazz_esp ? +sun3x_esp ? +fcal ? +lasi700 ? +nsp32 ? +ipr ? +hptiop ? +stex ? +osst ? +sg ? +ch ? +scsi_debug ? +aacraid ? +aic7xxx ? +aic79xx ? +aic94xx ? +arcmsr ? +acornscsi_mod ? +arxescsi ? +cumana_1 ? +cumana_2 ? +ecoscsi ? +oak ? +powertec ? +eesox ? +ibmvscsic ? +libsas ? +lpfc ? +megaraid_mm ? +megaraid_mbox ? +megaraid_sas ? +qla2xxx ? +sym53c8xx ? +qla4xxx ? +mvsas ? +sr_mod ? +sd_mod ? --- linux-3.2.0.orig/debian.master/d-i/modules-powerpc/nic-modules +++ linux-3.2.0/debian.master/d-i/modules-powerpc/nic-modules @@ -0,0 +1,153 @@ +3c359 ? +3c501 ? +3c503 ? +3c505 ? +3c507 ? +3c509 ? +3c515 ? +3c523 ? +3c527 ? +3c59x ? +8139cp ? +8139too ? +82596 ? +abyss ? +ac3200 ? +adm8211 ? +airo ? +airport ? +amd8111e ? +arc4 ? +arcnet ? +arc-rawmode ? +arc-rimi ? +arlan ? +at1700 ? +atl1 ? +atl1e ? +atl2 ? +atmel ? +atmel_pci ? +b44 ? +bcm43xx ? +bcm43xx-mac80211 ? +bmac ? +bnx2 ? +bnx2x ? +bonding ? +cassini ? +com20020 ? +com20020-pci ? +com90io ? +com90xx ? +cs89x0 ? +de2104x ? +de4x5 ? +de600 ? +de620 ? +defxx ? +depca ? +dl2k ? +dmfe ? +dummy ? +e100 ? +e1000 ? +e1000e ? +e2100 ? +eepro ? +eepro100 ? +eexpress ? +epic100 ? +eql ? +es3210 ? +eth16i ? +ewrk3 ? +fealnx ? +forcedeth ? +igb ? +hamachi ? +hermes ? +hp ? +hp100 ? +hp-plus ? +ibmtr ? +ibmveth ? +ipddp ? +ipw2100 ? +ipw2200 ? +ipw3945 ? +ixgb ? +lance ? +lanstreamer ? +lasi_82596 ? +lne390 ? +lp486e ? +mace ? +mv643xx_eth ? +myri_sbus ? +natsemi ? +ne ? +ne2 ? +ne2k-pci ? +ne3210 ? +netconsole ? +netxen_nic ? +ni5010 ? +ni52 ? +ni65 ? +niu ? +ns83820 ? +olympic ? +orinoco ? +orinoco_pci ? +orinoco_plx ? +orinoco_tmd ? +pcnet32 ? +prism54 ? +ps3_gelic ? +r8169 ? +rate_control ? +rfc1051 ? +rfc1201 ? +rrunner ? +rt2400 ? +rt2500 ? +rt61pci ? +s2io ? +shaper ? +sis190 ? +sis900 ? +spidernet ? +skfp ? +skge ? +sk98lin ? +sky2 ? +smc9194 ? +smc-ultra ? +smc-ultra32 ? +starfire ? +strip ? +sunbmac ? +sundance ? +sungem ? +sungem_phy ? +sunhme ? +sunlance ? +sunqe ? +sunvnet ? +tg3 ? +tlan ? +tms380tr ? +tmspci ? +tulip ? +tun ? +typhoon ? +uli526x ? +via-rhine ? +via-velocity ? +virtio_net ? +wavelan ? +wd ? +winbond-840 ? +yellowfin ? +znet ? --- linux-3.2.0.orig/debian.master/d-i/modules-powerpc/message-modules +++ linux-3.2.0/debian.master/d-i/modules-powerpc/message-modules @@ -0,0 +1,13 @@ +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +i2o_block +i2o_bus +i2o_config ? +i2o_core +i2o_proc +i2o_scsi --- linux-3.2.0.orig/debian.master/d-i/modules-powerpc/block-modules +++ linux-3.2.0/debian.master/d-i/modules-powerpc/block-modules @@ -0,0 +1,31 @@ +aoe +aten +bpck +bpck6 ? +cciss +comm +cpqarray ? +DAC960 +dstr +epat +epia +fit2 +fit3 +friq +frpw +kbic +ktti +nbd +on20 +on26 +paride +pcd +pd +pf +pg +ps3disk ? +ps3vram ? +pt +sx8 +umem +virtio_blk ? --- linux-3.2.0.orig/debian.master/d-i/modules-sparc/message-modules +++ linux-3.2.0/debian.master/d-i/modules-sparc/message-modules @@ -0,0 +1,13 @@ +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +i2o_block +i2o_bus +i2o_config ? +i2o_core +i2o_proc +i2o_scsi --- linux-3.2.0.orig/debian.master/d-i/modules-sparc/block-modules +++ linux-3.2.0/debian.master/d-i/modules-sparc/block-modules @@ -0,0 +1,9 @@ +aoe +cciss +comm +cpqarray ? +DAC960 +nbd +sx8 +umem +virtio_blk ? --- linux-3.2.0.orig/debian.master/d-i/firmware/README.txt +++ linux-3.2.0/debian.master/d-i/firmware/README.txt @@ -0,0 +1,4 @@ +# +# Place the names of udeb modules into this directory that require +# runtime firmware. +# --- linux-3.2.0.orig/debian.master/d-i/firmware/scsi-modules +++ linux-3.2.0/debian.master/d-i/firmware/scsi-modules @@ -0,0 +1,3 @@ +qlogic/1040.bin +qlogic/12160.bin +qlogic/1280.bin --- linux-3.2.0.orig/debian.master/d-i/firmware/nic-modules +++ linux-3.2.0/debian.master/d-i/firmware/nic-modules @@ -0,0 +1,8 @@ +e100/d101m_ucode.bin +e100/d101s_ucode.bin +e100/d102e_ucode.bin +bnx2/bnx2-mips-06-6.2.1.fw +bnx2/bnx2-mips-09-6.2.1a.fw +bnx2/bnx2-rv2p-06-6.0.15.fw +bnx2/bnx2-rv2p-09-6.0.17.fw +bnx2/bnx2-rv2p-09ax-6.0.17.fw --- linux-3.2.0.orig/debian.master/config/config.common.ports +++ linux-3.2.0/debian.master/config/config.common.ports @@ -0,0 +1,3 @@ +# +# Common config options automatically generated by splitconfig.pl +# --- linux-3.2.0.orig/debian.master/config/config.common.ubuntu +++ linux-3.2.0/debian.master/config/config.common.ubuntu @@ -0,0 +1,6083 @@ +# +# Common config options automatically generated by splitconfig.pl +# +CONFIG_32BIT=y +CONFIG_3C359=m +CONFIG_3C515=m +# CONFIG_40x is not set +# CONFIG_44x is not set +CONFIG_60XX_WDT=m +CONFIG_6PACK=m +CONFIG_6xx=y +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_9P_FS=m +# CONFIG_9P_FSCACHE is not set +CONFIG_9P_FS_POSIX_ACL=y +CONFIG_AB3100_CORE=y +CONFIG_AB3100_OTP=m +CONFIG_AB8500_CORE=y +CONFIG_AB8500_DEBUG=y +CONFIG_AB8500_GPADC=y +CONFIG_AB8500_USB=m +CONFIG_ABYSS=m +CONFIG_AC3200=m +CONFIG_AC97_BUS=m +# CONFIG_ACCESSIBILITY is not set +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_ACERHDF=m +CONFIG_ACER_WMI=m +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_ACPI=y +CONFIG_ACPI_AC=y +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_EINJ=m +CONFIG_ACPI_APEI_ERST_DEBUG=m +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +CONFIG_ACPI_APEI_PCIEAER=y +# CONFIG_ACPI_ASUS is not set +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_CMPC=m +CONFIG_ACPI_CONTAINER=y +# CONFIG_ACPI_CUSTOM_DSDT is not set +CONFIG_ACPI_CUSTOM_DSDT_FILE="" +# CONFIG_ACPI_CUSTOM_METHOD is not set +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_EC_DEBUGFS=m +CONFIG_ACPI_FAN=y +CONFIG_ACPI_HED=y +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_HOTPLUG_MEMORY=m +CONFIG_ACPI_IPMI=m +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_PCI_SLOT=m +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_PROCESSOR_AGGREGATOR=m +# CONFIG_ACPI_PROCFS is not set +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_QUICKSTART=m +CONFIG_ACPI_SBS=m +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_THERMAL=y +CONFIG_ACPI_TOSHIBA=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_WMI=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ACT200L_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_AD2S1200=m +CONFIG_AD2S1210=m +CONFIG_AD2S90=m +CONFIG_AD5064=m +CONFIG_AD525X_DPOT=m +CONFIG_AD525X_DPOT_I2C=m +CONFIG_AD525X_DPOT_SPI=m +CONFIG_AD5360=m +CONFIG_AD5446=m +CONFIG_AD5504=m +CONFIG_AD5624R_SPI=m +CONFIG_AD5686=m +CONFIG_AD5791=m +CONFIG_AD5930=m +CONFIG_AD5933=m +CONFIG_AD7150=m +CONFIG_AD7152=m +CONFIG_AD7192=m +CONFIG_AD7280=m +CONFIG_AD7291=m +CONFIG_AD7298=m +CONFIG_AD7476=m +CONFIG_AD7606=m +CONFIG_AD7606_IFACE_PARALLEL=m +CONFIG_AD7606_IFACE_SPI=m +CONFIG_AD7746=m +CONFIG_AD7780=m +CONFIG_AD7793=m +CONFIG_AD7816=m +CONFIG_AD7887=m +CONFIG_AD799X=m +CONFIG_AD799X_RING_BUFFER=y +CONFIG_AD9832=m +CONFIG_AD9834=m +CONFIG_AD9850=m +CONFIG_AD9852=m +CONFIG_AD9910=m +CONFIG_AD9951=m +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_ADB=y +CONFIG_ADB_CUDA=y +CONFIG_ADB_MACIO=y +CONFIG_ADB_PMU=y +CONFIG_ADB_PMU_LED=y +# CONFIG_ADB_PMU_LED_IDE is not set +CONFIG_ADE7753=m +CONFIG_ADE7754=m +CONFIG_ADE7758=m +CONFIG_ADE7759=m +CONFIG_ADE7854=m +CONFIG_ADE7854_I2C=m +CONFIG_ADE7854_SPI=m +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_ADIS16060=m +CONFIG_ADIS16080=m +CONFIG_ADIS16130=m +CONFIG_ADIS16201=m +CONFIG_ADIS16203=m +CONFIG_ADIS16204=m +CONFIG_ADIS16209=m +CONFIG_ADIS16220=m +CONFIG_ADIS16240=m +CONFIG_ADIS16260=m +CONFIG_ADIS16400=m +CONFIG_ADM8211=m +CONFIG_ADT7310=m +CONFIG_ADT7316=m +CONFIG_ADT7316_I2C=m +CONFIG_ADT7316_SPI=m +CONFIG_ADT7410=m +# CONFIG_ADVANCED_OPTIONS is not set +CONFIG_ADVANTECH_WDT=m +CONFIG_ADXRS450=m +CONFIG_AEABI=y +CONFIG_AFFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_AFS_FS=m +# CONFIG_AFS_FSCACHE is not set +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_AGP=y +CONFIG_AGP_ALI=m +CONFIG_AGP_AMD=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_ATI=m +CONFIG_AGP_EFFICEON=m +CONFIG_AGP_INTEL=y +CONFIG_AGP_NVIDIA=y +CONFIG_AGP_SIS=m +CONFIG_AGP_SWORKS=m +CONFIG_AGP_UNINORTH=m +CONFIG_AGP_VIA=y +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_AIO=y +CONFIG_AIRO=m +CONFIG_AIRO_CS=m +CONFIG_ALIGNMENT_TRAP=y +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_ALIX=y +CONFIG_ALI_FIR=m +CONFIG_ALTERA_STAPL=m +CONFIG_ALTIVEC=y +CONFIG_AMD8111_ETH=m +CONFIG_AMD_IOMMU=y +CONFIG_AMD_IOMMU_STATS=y +CONFIG_AMD_NB=y +CONFIG_AMD_NUMA=y +CONFIG_ANON_INODES=y +CONFIG_ANSLCD=m +CONFIG_APDS9802ALS=m +CONFIG_APM=m +# CONFIG_APM_ALLOW_INTS is not set +# CONFIG_APM_CPU_IDLE is not set +# CONFIG_APM_DISPLAY_BLANK is not set +# CONFIG_APM_DO_ENABLE is not set +# CONFIG_APM_IGNORE_USER_SUSPEND is not set +CONFIG_APM_POWER=m +CONFIG_APPLE_AIRPORT=m +CONFIG_APPLE_GMUX=m +CONFIG_APPLICOM=m +CONFIG_APRICOT=m +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCMRING is not set +CONFIG_ARCH_CLOCKSOURCE_DATA=y +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CNS3XXX is not set +CONFIG_ARCH_CPU_PROBE_RELEASE=y +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_EBSA110 is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_EXYNOS is not set +CONFIG_ARCH_FLATMEM_ENABLE=y +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_H720X is not set +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_DEFAULT_IDLE=y +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +CONFIG_ARCH_HAS_ILOG2_U32=y +CONFIG_ARCH_HAS_ILOG2_U64=y +CONFIG_ARCH_HAS_OPP=y +CONFIG_ARCH_HAS_WALK_MEMORY=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_LPC32XX is not set +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_ARCH_MEMORY_PROBE=y +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_MXS is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_NOMADIK is not set +# CONFIG_ARCH_OMAP1 is not set +# CONFIG_ARCH_OMAP2 is not set +CONFIG_ARCH_OMAP2PLUS=y +CONFIG_ARCH_OMAP2PLUS_TYPICAL=y +CONFIG_ARCH_OMAP3=y +# CONFIG_ARCH_OMAP4 is not set +CONFIG_ARCH_OMAP_OTG=y +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_PICOXCELL is not set +# CONFIG_ARCH_PNX4008 is not set +CONFIG_ARCH_POPULATES_NODE_MAP=y +# CONFIG_ARCH_PRIMA2 is not set +CONFIG_ARCH_PROC_KCORE_TEXT=y +# CONFIG_ARCH_PXA is not set +CONFIG_ARCH_RANDOM=y +# CONFIG_ARCH_REALVIEW is not set +CONFIG_ARCH_REQUIRE_GPIOLIB=y +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_SHMOBILE is not set +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +# CONFIG_ARCH_TCC_926 is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_USES_GETTIMEOFFSET is not set +CONFIG_ARCH_USES_PG_UNCACHED=y +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_VT8500 is not set +# CONFIG_ARCH_W90X900 is not set +CONFIG_ARCH_WANTS_FREEZER_CONTROL=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +# CONFIG_ARCH_ZYNQ is not set +CONFIG_ARCNET=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_ARCNET_COM20020_ISA=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARM=y +CONFIG_ARM_AMBA=y +# CONFIG_ARM_APPENDED_DTB is not set +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARM_CPU_TOPOLOGY=y +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +# CONFIG_ARM_ERRATA_458693 is not set +# CONFIG_ARM_ERRATA_460075 is not set +# CONFIG_ARM_ERRATA_720789 is not set +# CONFIG_ARM_ERRATA_742230 is not set +# CONFIG_ARM_ERRATA_742231 is not set +# CONFIG_ARM_ERRATA_751472 is not set +CONFIG_ARM_ERRATA_754322=y +# CONFIG_ARM_ERRATA_754327 is not set +# CONFIG_ARM_ERRATA_764369 is not set +CONFIG_ARM_GIC=y +CONFIG_ARM_KPROBES_TEST=m +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_ARM_SP805_WATCHDOG=m +CONFIG_ARM_THUMB=y +# CONFIG_ARM_THUMBEE is not set +CONFIG_ARM_TIMER_SP804=y +CONFIG_ARM_UNWIND=y +# CONFIG_ARPD is not set +CONFIG_ASUS_LAPTOP=m +CONFIG_ASUS_NB_WMI=m +CONFIG_ASUS_OLED=m +CONFIG_ASUS_WMI=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_ASYNC_RAID6_TEST=m +CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y +CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y +CONFIG_ASYNC_XOR=m +CONFIG_AT1700=m +CONFIG_AT76C50X_USB=m +CONFIG_ATA=y +CONFIG_ATAGS_PROC=y +CONFIG_ATALK=m +CONFIG_ATA_ACPI=y +CONFIG_ATA_BMDMA=y +CONFIG_ATA_OVER_ETH=m +CONFIG_ATA_SFF=y +CONFIG_ATA_VERBOSE_ERROR=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_ATH9K=m +CONFIG_ATH9K_AHB=y +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_DEBUGFS=y +CONFIG_ATH9K_HTC=m +CONFIG_ATH9K_HTC_DEBUGFS=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_LEGACY_RATE_CONTROL=y +CONFIG_ATH9K_PCI=y +CONFIG_ATH_COMMON=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATL1=m +CONFIG_ATL1C=m +CONFIG_ATL1E=m +CONFIG_ATL2=m +CONFIG_ATM=m +CONFIG_ATMEL=m +CONFIG_ATMEL_PWM=m +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_BR2684=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_DUMMY=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_FORE200E_TX_RETRY=16 +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_LANAI=m +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +CONFIG_ATM_SOLOS=m +CONFIG_ATM_TCP=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ATP=m +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_GENERIC=y +CONFIG_AUDIT_TREE=y +CONFIG_AUDIT_WATCH=y +CONFIG_AUFS_BDEV_LOOP=y +# CONFIG_AUFS_BRANCH_MAX_1023 is not set +CONFIG_AUFS_BRANCH_MAX_127=y +# CONFIG_AUFS_BRANCH_MAX_32767 is not set +# CONFIG_AUFS_BRANCH_MAX_511 is not set +CONFIG_AUFS_BR_FUSE=y +CONFIG_AUFS_BR_HFSPLUS=y +CONFIG_AUFS_BR_RAMFS=y +# CONFIG_AUFS_DEBUG is not set +# CONFIG_AUFS_EXPORT is not set +CONFIG_AUFS_FS=m +# CONFIG_AUFS_HNOTIFY is not set +CONFIG_AUFS_POLL=y +# CONFIG_AUFS_PROC_MAP is not set +# CONFIG_AUFS_RDU is not set +CONFIG_AUFS_SBILIST=y +# CONFIG_AUFS_SHWH is not set +# CONFIG_AUFS_SP_IATTR is not set +CONFIG_AUTOFS4_FS=m +# CONFIG_AUTO_ZRELADDR is not set +CONFIG_AVERAGE=y +CONFIG_AVERATEC_5100P=m +CONFIG_AX25=m +# CONFIG_AX88796_93CX6 is not set +CONFIG_B43=m +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_DEBUG=y +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_DEBUG is not set +CONFIG_B43_HWRNG=y +CONFIG_B43_LEDS=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_PCI_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +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_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_ATMEL_PWM=m +CONFIG_BACKLIGHT_CARILLO_RANCH=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DA903X=m +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_MAX8925=m +CONFIG_BACKLIGHT_PCF50633=m +CONFIG_BACKLIGHT_PROGEAR=m +CONFIG_BACKLIGHT_PWM=m +CONFIG_BACKLIGHT_SAHARA=m +CONFIG_BACKLIGHT_WM831X=m +# CONFIG_BACKTRACE_SELF_TEST is not set +CONFIG_BASE_FULL=y +CONFIG_BASE_SMALL=0 +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_BATTERY_BQ20Z75=m +CONFIG_BATTERY_BQ27X00_I2C=y +CONFIG_BATTERY_BQ27X00_PLATFORM=y +CONFIG_BATTERY_BQ27x00=m +CONFIG_BATTERY_DA9030=m +CONFIG_BATTERY_DS2760=m +CONFIG_BATTERY_DS2780=m +CONFIG_BATTERY_DS2782=m +CONFIG_BATTERY_MAX17040=m +CONFIG_BATTERY_MAX17042=m +CONFIG_BATTERY_OLPC=m +CONFIG_BATTERY_PMU=m +CONFIG_BAYCOM_EPP=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BCMA=m +CONFIG_BCMA_BLOCKIO=y +# CONFIG_BCMA_DEBUG is not set +CONFIG_BCMA_HOST_PCI=y +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +CONFIG_BCMA_POSSIBLE=y +CONFIG_BCM_WIMAX=m +# CONFIG_BDI_SWITCH is not set +CONFIG_BE2ISCSI=m +CONFIG_BE2NET=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +CONFIG_BITREVERSE=y +CONFIG_BLK_CGROUP=y +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_3W_XXXX_RAID=m +# CONFIG_BLK_DEV_AEC62XX is not set +# CONFIG_BLK_DEV_ALI15X3 is not set +# CONFIG_BLK_DEV_AMD74XX is not set +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_CS5520 is not set +# CONFIG_BLK_DEV_CS5530 is not set +CONFIG_BLK_DEV_DAC960=m +# CONFIG_BLK_DEV_DELKIN is not set +CONFIG_BLK_DEV_DM=y +CONFIG_BLK_DEV_DRBD=m +CONFIG_BLK_DEV_FD=m +# CONFIG_BLK_DEV_GENERIC is not set +# CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_HPT366 is not set +CONFIG_BLK_DEV_IDECD=y +CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDEDMA=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_IDEDMA_SFF=y +CONFIG_BLK_DEV_IDEPCI=y +# CONFIG_BLK_DEV_IDETAPE is not set +CONFIG_BLK_DEV_IDE_PMAC=y +CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_BLK_DEV_IT8172 is not set +# CONFIG_BLK_DEV_IT8213 is not set +# CONFIG_BLK_DEV_IT821X is not set +# CONFIG_BLK_DEV_JMICRON is not set +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_NS87415 is not set +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_OSD=m +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_PDC202XX_OLD is not set +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_PLATFORM is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_RBD=m +# CONFIG_BLK_DEV_SC1200 is not set +CONFIG_BLK_DEV_SD=y +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SL82C105 is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +CONFIG_BLK_DEV_SR=y +# CONFIG_BLK_DEV_SVWKS is not set +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_TC86C001 is not set +CONFIG_BLK_DEV_THROTTLING=y +# CONFIG_BLK_DEV_TRIFLEX is not set +# CONFIG_BLK_DEV_TRM290 is not set +CONFIG_BLK_DEV_UB=m +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_BLK_DEV_XD is not set +CONFIG_BLOCK=y +CONFIG_BLOCK_COMPAT=y +CONFIG_BMAC=m +CONFIG_BMP085=m +CONFIG_BNA=m +CONFIG_BNX2=m +CONFIG_BNX2X=m +CONFIG_BONDING=m +# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_BOOTX_TEXT is not set +CONFIG_BOOT_PRINTK_DELAY=y +CONFIG_BOUNCE=y +CONFIG_BPF_JIT=y +CONFIG_BPQETHER=m +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_BRCMDBG is not set +CONFIG_BRCMFMAC=m +CONFIG_BRCMSMAC=m +CONFIG_BRCMUTIL=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_NFLOG=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIQ_PANEL=m +CONFIG_BROADCOM_PHY=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_BT=m +CONFIG_BTRFS_FS=m +CONFIG_BT_ATH3K=m +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +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_HCIBTUART=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIVHCI=m +CONFIG_BT_HIDP=m +CONFIG_BT_L2CAP=y +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_SCO=y +CONFIG_BT_WILINK=m +CONFIG_BUG=y +CONFIG_C101=m +CONFIG_C2PORT=m +CONFIG_C2PORT_DURAMAR_2150=m +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set +CONFIG_CACHE_L2X0=y +CONFIG_CACHE_PL310=y +CONFIG_CAIF=m +# CONFIG_CAIF_DEBUG is not set +CONFIG_CAIF_HSI=m +CONFIG_CAIF_NETDEV=m +CONFIG_CAIF_SPI_SLAVE=m +# CONFIG_CAIF_SPI_SYNC is not set +CONFIG_CAIF_TTY=m +CONFIG_CALGARY_IOMMU=y +CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y +CONFIG_CAN=m +CONFIG_CAN_BCM=m +CONFIG_CAN_CALC_BITTIMING=y +CONFIG_CAN_C_CAN=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_GW=m +CONFIG_CAN_JANZ_ICAN3=m +CONFIG_CAN_KVASER_PCI=m +CONFIG_CAN_MCP251X=m +CONFIG_CAN_MSCAN=m +CONFIG_CAN_PEAK_PCI=m +CONFIG_CAN_PLX_PCI=m +CONFIG_CAN_PM_TRACE=y +CONFIG_CAN_RAW=m +CONFIG_CAN_SJA1000=m +CONFIG_CAN_SJA1000_ISA=m +CONFIG_CAN_SJA1000_OF_PLATFORM=m +CONFIG_CAN_SJA1000_PLATFORM=m +CONFIG_CAN_SLCAN=m +CONFIG_CAN_SOFTING=m +CONFIG_CAN_SOFTING_CS=m +CONFIG_CAN_TI_HECC=m +CONFIG_CAN_TSCAN1=m +CONFIG_CAN_VCAN=m +CONFIG_CAPI_AVM=y +CONFIG_CAPI_EICON=y +CONFIG_CAPI_TRACE=y +CONFIG_CARDBUS=y +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_CARL9170=m +# CONFIG_CARL9170_DEBUGFS is not set +CONFIG_CARL9170_HWRNG=y +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARMINE_DRAM_CUSTOM is not set +CONFIG_CASSINI=m +CONFIG_CB710_CORE=m +# CONFIG_CB710_DEBUG is not set +CONFIG_CB710_DEBUG_ASSUMPTIONS=y +CONFIG_CBE_CPUFREQ_SPU_GOVERNOR=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CC_STACKPROTECTOR=y +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEPH_FS=m +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_DEBUGFS=y +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +CONFIG_CFQ_GROUP_IOSCHED=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_CPUACCT=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_MEM_RES_CTLR=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_CHARGER_GPIO=m +CONFIG_CHARGER_ISP1704=m +CONFIG_CHARGER_MAX8903=m +CONFIG_CHARGER_MAX8997=m +CONFIG_CHARGER_MAX8998=m +CONFIG_CHARGER_PCF50633=m +CONFIG_CHARGER_TWL4030=m +CONFIG_CHECK_SIGNATURE=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4VF=m +CONFIG_CHR_DEV_OSST=m +CONFIG_CHR_DEV_SCH=m +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_ST=m +CONFIG_CICADA_PHY=y +CONFIG_CIFS=m +# CONFIG_CIFS_ACL is not set +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CISS_SCSI_TAPE=y +CONFIG_CLKBLD_I8253=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CLKEVT_I8253=y +CONFIG_CLKSRC_I8253=y +CONFIG_CLKSRC_MMIO=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_CLS_U32_MARK=y +# CONFIG_CLS_U32_PERF is not set +CONFIG_CMDLINE="" +# CONFIG_CMDLINE_BOOL is not set +CONFIG_CMM=y +CONFIG_CMPXCHG_DOUBLE=y +CONFIG_CMPXCHG_LOCAL=y +CONFIG_CNIC=m +CONFIG_CODA_FS=m +# CONFIG_CODE_PATCHING_SELFTEST is not set +CONFIG_COMEDI_8255=m +CONFIG_COMEDI_ACL7225B=m +CONFIG_COMEDI_ADDI_APCI_035=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_2016=m +CONFIG_COMEDI_ADDI_APCI_2032=m +CONFIG_COMEDI_ADDI_APCI_2200=m +CONFIG_COMEDI_ADDI_APCI_3001=m +CONFIG_COMEDI_ADDI_APCI_3120=m +CONFIG_COMEDI_ADDI_APCI_3501=m +CONFIG_COMEDI_ADDI_APCI_3XXX=m +CONFIG_COMEDI_ADL_PCI6208=m +CONFIG_COMEDI_ADL_PCI7230=m +CONFIG_COMEDI_ADL_PCI7296=m +CONFIG_COMEDI_ADL_PCI7432=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_PCI1723=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_PC236=m +CONFIG_COMEDI_AMPLC_PC263=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_PCIDIO=m +CONFIG_COMEDI_CB_PCIMDAS=m +CONFIG_COMEDI_CB_PCIMDDA=m +CONFIG_COMEDI_CONTEC_PCI_DIO=m +CONFIG_COMEDI_DAQBOARD2000=m +CONFIG_COMEDI_DAS08=m +CONFIG_COMEDI_DAS08_CS=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_FC=m +CONFIG_COMEDI_FL512=m +CONFIG_COMEDI_GSC_HPDI=m +CONFIG_COMEDI_ICP_MULTI=m +CONFIG_COMEDI_II_PCI20KC=m +CONFIG_COMEDI_ISA_DRIVERS=m +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_MISC_DRIVERS=m +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_COMMON=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_MIO_CS=m +CONFIG_COMEDI_NI_PCIDIO=m +CONFIG_COMEDI_NI_PCIMIO=m +CONFIG_COMEDI_NI_TIO=m +CONFIG_COMEDI_PARPORT=m +CONFIG_COMEDI_PCI_DRIVERS=m +CONFIG_COMEDI_PCL711=m +CONFIG_COMEDI_PCL724=m +CONFIG_COMEDI_PCL725=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_PCM3730=m +CONFIG_COMEDI_PCMAD=m +CONFIG_COMEDI_PCMCIA_DRIVERS=m +CONFIG_COMEDI_PCMDA12=m +CONFIG_COMEDI_PCMMIO=m +CONFIG_COMEDI_PCMUIO=m +CONFIG_COMEDI_POC=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_SERIAL2002=m +CONFIG_COMEDI_SKEL=m +CONFIG_COMEDI_SSV_DNP=m +CONFIG_COMEDI_TEST=m +CONFIG_COMEDI_UNIOXX5=m +CONFIG_COMEDI_USBDUX=m +CONFIG_COMEDI_USBDUXFAST=m +CONFIG_COMEDI_USBDUXSIGMA=m +CONFIG_COMEDI_USB_DRIVERS=m +CONFIG_COMEDI_VMK80XX=m +CONFIG_COMPAL_LAPTOP=m +CONFIG_COMPAT=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_VDSO is not set +CONFIG_CONFIGFS_FS=m +CONFIG_CONNECTOR=y +CONFIG_CONSOLE_POLL=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_COPS=m +CONFIG_COPS_DAYNA=y +CONFIG_COPS_TANGENT=y +CONFIG_COSA=m +# CONFIG_CPA_DEBUG is not set +CONFIG_CPU5_WDT=m +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_DCACHE_DISABLE is not set +CONFIG_CPU_FREQ=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +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_USERSPACE=y +CONFIG_CPU_FREQ_MAPLE=y +CONFIG_CPU_FREQ_PMAC=y +CONFIG_CPU_FREQ_PMAC64=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_HAS_PMU=y +# CONFIG_CPU_ICACHE_DISABLE is not set +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_PM=y +CONFIG_CPU_RMAP=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR=y +CONFIG_CPU_SUP_CYRIX_32=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_TRANSMETA_32=y +CONFIG_CPU_SUP_UMC_32=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_V7=y +CONFIG_CRAMFS=m +CONFIG_CRC16=y +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_CRC8=m +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC_T10DIF=y +CONFIG_CROSS_COMPILE="" +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_AES_NI_INTEL=m +CONFIG_CRYPTO_AES_X86_64=m +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m +CONFIG_CRYPTO_BLOWFISH_X86_64=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=y +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_DEV_GEODE=m +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_CRYPTO_DEV_OMAP_AES=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_ECB=y +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_LZO=m +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_PCRYPT=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SALSA20_586=m +CONFIG_CRYPTO_SALSA20_X86_64=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_SSSE3=m +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_586=m +CONFIG_CRYPTO_TWOFISH_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_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_VMAC=m +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_ZLIB=m +CONFIG_CRYSTALHD=m +# CONFIG_CS5535_MFGPT is not set +CONFIG_CS89x0=m +CONFIG_CUSE=m +CONFIG_CXT1E1=m +CONFIG_CYCLADES=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +# CONFIG_CYZ_INTR is not set +CONFIG_DAVICOM_PHY=y +CONFIG_DCA=m +CONFIG_DCB=y +CONFIG_DCDBAS=m +CONFIG_DE2104X=m +CONFIG_DE2104X_DSL=0 +CONFIG_DE4X5=m +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_DEBUGGER=y +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_BLK_CGROUP is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_BOOT_PARAMS is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_CREDENTIALS is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_DEBUG_FS=y +# CONFIG_DEBUG_GPIO is not set +# CONFIG_DEBUG_HIGHMEM is not set +# CONFIG_DEBUG_ICEDCC is not set +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_LIST is not set +CONFIG_DEBUG_LL=y +CONFIG_DEBUG_LL_UART_NONE=y +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_NX_TEST is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_DEBUG_RODATA=y +# CONFIG_DEBUG_RODATA_TEST is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_SET_MODULE_RONX=y +# 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_STRICT_USER_COPY_CHECKS is not set +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +CONFIG_DECNET=m +CONFIG_DECNET_NF_GRABULATOR=m +# CONFIG_DECNET_ROUTER is not set +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DEFAULT_CUBIC=y +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +CONFIG_DEFAULT_IO_DELAY_TYPE=1 +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +# CONFIG_DEFAULT_NOOP is not set +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_SECURITY="apparmor" +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_SECURITY_YAMA is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_DEFAULT_UIMAGE is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_DELL_LAPTOP=m +CONFIG_DELL_RBU=m +CONFIG_DELL_WMI=m +CONFIG_DELL_WMI_AIO=m +CONFIG_DEPCA=m +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEVFREQ_GOV_PERFORMANCE=y +CONFIG_DEVFREQ_GOV_POWERSAVE=y +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +CONFIG_DEVFREQ_GOV_USERSPACE=y +# CONFIG_DEVKMEM is not set +CONFIG_DEVPORT=y +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DEV_APPLETALK=m +CONFIG_DE_AOC=y +CONFIG_DIRECT_GBPAGES=y +CONFIG_DISPLAY_SUPPORT=m +CONFIG_DL2K=m +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set +CONFIG_DM9102=m +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set +CONFIG_DMAR_TABLE=y +# CONFIG_DMATEST is not set +# CONFIG_DMA_API_DEBUG is not set +CONFIG_DMA_ENGINE=y +CONFIG_DMI=y +CONFIG_DMIID=y +CONFIG_DMI_SYSFS=m +CONFIG_DM_BUFIO=m +CONFIG_DM_CRYPT=m +# CONFIG_DM_DEBUG is not set +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set +# CONFIG_DM_DELAY is not set +# CONFIG_DM_FLAKEY is not set +# CONFIG_DM_LOG_USERSPACE is not set +CONFIG_DM_MIRROR=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_RAID=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +CONFIG_DM_UEVENT=y +CONFIG_DM_ZERO=m +CONFIG_DNET=m +CONFIG_DNOTIFY=y +CONFIG_DNS_RESOLVER=y +CONFIG_DONGLE=y +CONFIG_DOUBLEFAULT=y +CONFIG_DRAGONRISE_FF=y +# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_DRM=m +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I810=m +CONFIG_DRM_I915=m +CONFIG_DRM_I915_KMS=y +CONFIG_DRM_KMS_HELPER=m +CONFIG_DRM_LOAD_EDID_FIRMWARE=y +CONFIG_DRM_MGA=m +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_NOUVEAU_BACKLIGHT=y +CONFIG_DRM_NOUVEAU_DEBUG=y +# CONFIG_DRM_PSB_CDV is not set +CONFIG_DRM_PSB_MFLD=y +CONFIG_DRM_PSB_MRST=y +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_KMS=y +CONFIG_DRM_SAVAGE=m +CONFIG_DRM_SIS=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_TTM=m +CONFIG_DRM_VIA=m +CONFIG_DRM_VMWGFX=m +CONFIG_DS1682=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +# CONFIG_DT3155_CCIR is not set +CONFIG_DT3155_STREAMING=y +CONFIG_DTC=y +CONFIG_DTL=y +CONFIG_DTLK=m +CONFIG_DUMMY=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_DVB_A8293=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_AS102=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_B2C2_FLEXCOP=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +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_CAPTURE_DRIVERS=y +CONFIG_DVB_CORE=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_CXD2099=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_DDBRIDGE=m +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_DRXD=m +CONFIG_DVB_DRXK=m +CONFIG_DVB_DS3000=m +# CONFIG_DVB_DUMMY_FE is not set +CONFIG_DVB_DYNAMIC_MINORS=y +CONFIG_DVB_EC100=m +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_DVB_HOPPER=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_L64781=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGS8GL5=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_MB86A16=m +CONFIG_DVB_MB86A20S=m +CONFIG_DVB_MT312=m +CONFIG_DVB_MT352=m +CONFIG_DVB_NET=y +CONFIG_DVB_NGENE=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_PLL=m +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_PT1=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_S5H1411=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_S5H1432=m +CONFIG_DVB_S921=m +CONFIG_DVB_SI21XX=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_STV6110=m +CONFIG_DVB_STV6110x=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_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_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_ANYSEE=m +CONFIG_DVB_USB_AU6610=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_DEBUG is not set +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_IT913X=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_TECHNISAT_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_VES1820=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_ZL10353=m +CONFIG_DW_WATCHDOG=m +CONFIG_DX_SEP=m +# CONFIG_DYNAMIC_DEBUG is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +# CONFIG_E200 is not set +CONFIG_E2100=m +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +CONFIG_EASYCAP=m +# CONFIG_EASYCAP_DEBUG is not set +CONFIG_ECHO=m +CONFIG_ECONET=m +CONFIG_ECONET_AUNUDP=y +CONFIG_ECONET_NATIVE=y +CONFIG_ECRYPT_FS=y +CONFIG_EDAC=y +CONFIG_EDAC_AMD64=m +# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set +CONFIG_EDAC_AMD76X=m +CONFIG_EDAC_AMD8111=m +CONFIG_EDAC_AMD8131=m +CONFIG_EDAC_CPC925=m +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_E7XXX=m +CONFIG_EDAC_HIGHBANK_L2=y +CONFIG_EDAC_HIGHBANK_MC=y +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I3200=m +CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I7300=m +CONFIG_EDAC_I7CORE=m +CONFIG_EDAC_I82860=m +CONFIG_EDAC_I82875P=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_MCE_INJ=m +CONFIG_EDAC_PASEMI=m +CONFIG_EDAC_R82600=m +CONFIG_EDAC_SBRIDGE=m +CONFIG_EDAC_X38=m +CONFIG_EDD=y +CONFIG_EDD_OFF=y +CONFIG_EEEPC_LAPTOP=m +CONFIG_EEEPC_WMI=m +CONFIG_EEH=y +CONFIG_EEPROM_93CX6=m +CONFIG_EEPROM_93XX46=m +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EEXPRESS=m +CONFIG_EEXPRESS_PRO=m +CONFIG_EFI=y +CONFIG_EFI_PARTITION=y +CONFIG_EFI_VARS=y +# CONFIG_EFI_VARS_PSTORE is not set +CONFIG_EFS_FS=m +CONFIG_EHEA=m +CONFIG_EISA=y +CONFIG_EISA_NAMES=y +CONFIG_EISA_PCI_EISA=y +CONFIG_EISA_VIRTUAL_ROOT=y +CONFIG_EISA_VLB_PRIMING=y +CONFIG_EL1=m +CONFIG_EL16=m +CONFIG_EL2=m +CONFIG_EL3=m +CONFIG_ELECTRA_CF=m +CONFIG_ELF_CORE=y +CONFIG_ELMC=m +CONFIG_ELMC_II=m +CONFIG_ELPLUS=m +# CONFIG_EMBEDDED is not set +CONFIG_ENC28J60=m +# CONFIG_ENC28J60_WRITEVERIFY is not set +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_ENCRYPTED_KEYS=y +CONFIG_ENIC=m +# CONFIG_EPAPR_BOOT is not set +CONFIG_EPIC100=m +CONFIG_EPOLL=y +CONFIG_EQUALIZER=m +CONFIG_ES3210=m +CONFIG_ESI_DONGLE=m +CONFIG_ET131X=m +CONFIG_ETH16I=m +CONFIG_ETHERNET=y +CONFIG_ETHOC=m +CONFIG_EUROTECH_WDT=m +CONFIG_EVENTFD=y +CONFIG_EVENT_POWER_TRACING_DEPRECATED=y +CONFIG_EVENT_TRACING=y +CONFIG_EWRK3=m +# CONFIG_EXOFS_DEBUG is not set +CONFIG_EXOFS_FS=m +CONFIG_EXPERIMENTAL=y +CONFIG_EXPORTFS=y +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XATTR=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_DEFAULTS_TO_ORDERED=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT3_FS_XATTR=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXTRA_FIRMWARE="" +CONFIG_EXTRA_TARGETS="" +CONFIG_F71808E_WDT=m +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_FARSYNC=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAULT_INJECTION is not set +CONFIG_FB=y +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_3DFX_I2C=y +CONFIG_FB_ARC=m +CONFIG_FB_ARK=m +CONFIG_FB_ASILIANT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_BROADSHEET=m +CONFIG_FB_CARILLO_RANCH=m +CONFIG_FB_CARMINE=m +CONFIG_FB_CARMINE_DRAM_EVAL=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_CIRRUS=m +CONFIG_FB_CONTROL=y +CONFIG_FB_CT65550=y +CONFIG_FB_CYBER2000=m +CONFIG_FB_CYBER2000_DDC=y +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_EFI=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_GX=m +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_GEODE_LX=m +CONFIG_FB_HECUBA=m +CONFIG_FB_HGA=m +CONFIG_FB_I810=m +# CONFIG_FB_I810_GTF is not set +CONFIG_FB_IBM_GXT4500=m +CONFIG_FB_IMSTT=y +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_INTEL_I2C=y +CONFIG_FB_KYRO=m +CONFIG_FB_LE80578=m +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MB862XX=m +CONFIG_FB_MB862XX_I2C=y +# CONFIG_FB_MB862XX_LIME is not set +CONFIG_FB_MB862XX_PCI_GDC=y +CONFIG_FB_METRONOME=m +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_N411=m +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_BACKLIGHT=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_I2C=y +CONFIG_FB_OF=y +CONFIG_FB_OLPC_DCON=m +CONFIG_FB_OLPC_DCON_1=y +CONFIG_FB_OLPC_DCON_1_5=y +CONFIG_FB_OMAP2=y +CONFIG_FB_OMAP2_DEBUG_SUPPORT=y +CONFIG_FB_OMAP2_NUM_FBS=3 +# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set +CONFIG_FB_PLATINUM=y +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_PM3=m +CONFIG_FB_PS3=y +CONFIG_FB_PS3_DEFAULT_SIZE_M=9 +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_BACKLIGHT=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_I2C=y +CONFIG_FB_S1D13XXX=m +CONFIG_FB_S3=m +CONFIG_FB_S3_DDC=y +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_SM501=m +CONFIG_FB_SM7XX=m +CONFIG_FB_SMSCUFX=m +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +CONFIG_FB_TRIDENT=m +CONFIG_FB_UDL=m +CONFIG_FB_UVESA=m +CONFIG_FB_VALKYRIE=y +CONFIG_FB_VESA=m +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_VT8623=m +# CONFIG_FB_WMT_GE_ROPS is not set +CONFIG_FB_XGI=m +CONFIG_FCOE=m +CONFIG_FCOE_FNIC=m +CONFIG_FDDI=y +CONFIG_FEALNX=m +CONFIG_FHANDLE=y +CONFIG_FIB_RULES=y +CONFIG_FILE_LOCKING=y +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_NET=m +CONFIG_FIREWIRE_NOSY=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_OHCI_DEBUG=y +# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +CONFIG_FIREWIRE_SBP2=m +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_FIXED_PHY=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_FONT_10x18 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FONT_ACORN_8x8=y +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_SUN8x16 is not set +CONFIG_FORCEDETH=m +# CONFIG_FPE_FASTFPE is not set +# CONFIG_FPE_NWFPE_XP is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FRAME_POINTER=y +CONFIG_FRAME_WARN=1024 +CONFIG_FREEZER=y +CONFIG_FSCACHE=m +# CONFIG_FSCACHE_DEBUG is not set +CONFIG_FSCACHE_HISTOGRAM=y +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_FSCACHE_STATS=y +CONFIG_FSL_LBC=y +# CONFIG_FSL_ULI1575 is not set +CONFIG_FSNOTIFY=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FT1000=m +CONFIG_FT1000_PCMCIA=m +CONFIG_FT1000_USB=m +CONFIG_FTL=m +CONFIG_FTRACE_MCOUNT_RECORD=y +CONFIG_FTRACE_NMI_ENTER=y +# CONFIG_FTRACE_STARTUP_TEST is not set +CONFIG_FTRACE_SYSCALLS=y +# CONFIG_FTR_FIXUP_SELFTEST is not set +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_FUNCTION_GRAPH_TRACER=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FUSE_FS=y +CONFIG_FUSION=y +CONFIG_FUSION_CTL=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_LOGGING=y +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_SAS=m +CONFIG_FUSION_SPI=m +CONFIG_FUTEX=y +CONFIG_FW_LOADER=y +CONFIG_GACT_PROB=y +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GARP=m +CONFIG_GART_IOMMU=y +# CONFIG_GCOV_KERNEL is not set +CONFIG_GELIC_NET=m +CONFIG_GELIC_WIRELESS=y +CONFIG_GENERIC_ACL=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_ATOMIC64=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_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_LOCKBREAK=y +CONFIG_GENERIC_NVRAM=y +CONFIG_GENERIC_TBSYNC=y +CONFIG_GENERIC_TRACER=y +CONFIG_GFS2_FS=m +CONFIG_GIGASET_BASE=m +# CONFIG_GIGASET_CAPI is not set +# CONFIG_GIGASET_DEBUG is not set +# CONFIG_GIGASET_DUMMYLL is not set +CONFIG_GIGASET_I4L=y +CONFIG_GIGASET_M101=m +CONFIG_GIGASET_M105=m +CONFIG_GIRBIL_DONGLE=m +# CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GPIOLIB=y +CONFIG_GPIO_74X164=m +CONFIG_GPIO_ADP5520=m +CONFIG_GPIO_ADP5588=m +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_JANZ_TTL=m +CONFIG_GPIO_LANGWELL=y +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX7301=m +CONFIG_GPIO_MAX730X=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_MC33880=m +CONFIG_GPIO_MCP23S08=m +CONFIG_GPIO_ML_IOH=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_PCH=m +CONFIG_GPIO_PL061=y +CONFIG_GPIO_RDC321X=m +CONFIG_GPIO_SCH=m +CONFIG_GPIO_STMPE=y +CONFIG_GPIO_SX150X=y +CONFIG_GPIO_TC3589X=y +CONFIG_GPIO_TIMBERDALE=y +CONFIG_GPIO_TPS65910=y +CONFIG_GPIO_TPS65912=m +CONFIG_GPIO_UCB1400=y +CONFIG_GPIO_VX855=m +CONFIG_GPIO_WM831X=m +CONFIG_GPIO_WM8350=m +CONFIG_GPIO_WM8994=m +CONFIG_GPIO_XILINX=y +CONFIG_GREENASIA_FF=y +CONFIG_HAMACHI=m +CONFIG_HANGCHECK_TIMER=m +CONFIG_HAPPYMEAL=m +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +# CONFIG_HAS_RAPIDIO is not set +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_KMEMCHECK=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ARM_SCU=y +CONFIG_HAVE_ARM_TWD=y +CONFIG_HAVE_ATOMIC_IOMAP=y +CONFIG_HAVE_BPF_JIT=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FTRACE_NMI_ENTER=y +CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_GENERIC_HARDIRQS=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_IDE=y +CONFIG_HAVE_INTEL_TXT=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_IRQ_WORK=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_KVM=y +CONFIG_HAVE_KVM_EVENTFD=y +CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +CONFIG_HAVE_MTD_OTP=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_HAVE_PWM=y +CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_SCHED_CLOCK=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_SYSCALL_WRAPPERS=y +CONFIG_HAVE_TEXT_POKE_SMP=y +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +# CONFIG_HCALL_STATS is not set +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_HDQ_MASTER_OMAP=m +# CONFIG_HEADERS_CHECK is not set +CONFIG_HERMES=m +CONFIG_HERMES_CACHE_FW_ON_INIT=y +# CONFIG_HERMES_PRISM is not set +CONFIG_HFSPLUS_FS=m +CONFIG_HFS_FS=m +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_HID=m +CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +CONFIG_HID_ELECOM=m +CONFIG_HID_EMS_FF=m +CONFIG_HID_EZKEY=m +CONFIG_HID_GREENASIA=m +CONFIG_HID_GYRATION=m +CONFIG_HID_HOLTEK=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_LCPOWER=m +CONFIG_HID_LOGITECH=m +CONFIG_HID_LOGITECH_DJ=m +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PID=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_COMMON=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_KOVAPLUS=m +CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID_THRUSTMASTER=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WACOM=m +CONFIG_HID_WACOM_POWER_SUPPLY=y +CONFIG_HID_WALTOP=m +CONFIG_HID_WIIMOTE=m +CONFIG_HID_ZEROPLUS=m +CONFIG_HID_ZYDACRON=m +CONFIG_HIGHPTE=y +CONFIG_HIGH_RES_TIMERS=y +# CONFIG_HIPPI is not set +CONFIG_HISAX_16_0=y +CONFIG_HISAX_16_3=y +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_ASUSCOM=y +CONFIG_HISAX_AVM_A1=y +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_BKM_A4T=y +# CONFIG_HISAX_DEBUG is not set +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_ENTERNOW_PCI=y +CONFIG_HISAX_EURO=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_HFCS=y +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_HSTSAPHIR=y +CONFIG_HISAX_ISURF=y +CONFIG_HISAX_IX1MICROR2=y +CONFIG_HISAX_MAX_CARDS=8 +CONFIG_HISAX_MIC=y +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_NICCY=y +# CONFIG_HISAX_NO_KEYPAD is not set +# CONFIG_HISAX_NO_LLC is not set +# CONFIG_HISAX_NO_SENDCOMPLETE is not set +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_SPORTSTER=y +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_TELEINT=y +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_TELES_CS=m +CONFIG_HISAX_W6692=y +CONFIG_HMC6352=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_HOSTESS_SV11=m +CONFIG_HOTPLUG=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_COMPAQ=m +CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_IBM=m +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HOTPLUG_PCI_RPA=m +CONFIG_HOTPLUG_PCI_RPA_DLPAR=m +CONFIG_HOTPLUG_PCI_SHPC=m +CONFIG_HP100=m +CONFIG_HPET=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_HPET_MMAP=y +CONFIG_HPET_TIMER=y +CONFIG_HPFS_FS=m +CONFIG_HPLAN=m +CONFIG_HPLAN_PLUS=m +CONFIG_HPWDT_NMI_DECODING=y +CONFIG_HP_ACCEL=m +CONFIG_HP_ILO=m +CONFIG_HP_WATCHDOG=m +CONFIG_HP_WMI=m +CONFIG_HTC_PASIC3=m +CONFIG_HT_IRQ=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y +CONFIG_HVCS=y +CONFIG_HVC_CONSOLE=y +CONFIG_HVC_DRIVER=y +CONFIG_HVC_IRQ=y +CONFIG_HVC_OLD_HVSI=y +CONFIG_HVC_OPAL=y +CONFIG_HVC_RTAS=y +CONFIG_HVC_UDBG=y +CONFIG_HVC_XEN=y +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_HWMON_VID=m +# CONFIG_HWPOISON_INJECT is not set +CONFIG_HW_CONSOLE=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_PASEMI=m +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_VIA=m +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_HYPERV=m +CONFIG_HYPERV_MOUSE=m +CONFIG_HYPERV_NET=m +CONFIG_HYPERV_STORAGE=m +CONFIG_HYPERV_UTILS=m +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +# CONFIG_HZ_100 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +CONFIG_I2C=y +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_COMPAT=y +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CORE is not set +CONFIG_I2C_DESIGNWARE_PCI=m +CONFIG_I2C_DIOLAN_U2C=m +CONFIG_I2C_EG20T=m +CONFIG_I2C_GPIO=m +CONFIG_I2C_HYDRA=m +CONFIG_I2C_I801=m +CONFIG_I2C_INTEL_MID=m +CONFIG_I2C_ISCH=m +CONFIG_I2C_MPC=m +CONFIG_I2C_MUX=m +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_NFORCE2_S4985=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_OMAP=y +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PASEMI=m +CONFIG_I2C_PCA_ISA=m +CONFIG_I2C_PCA_PLATFORM=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_POWERMAC=y +CONFIG_I2C_PXA=m +CONFIG_I2C_SCMI=m +CONFIG_I2C_SI470X=m +CONFIG_I2C_SI4713=m +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_SMBUS=m +CONFIG_I2C_STUB=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_XILINX=m +CONFIG_I2O=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_BUS=m +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_PROC=m +CONFIG_I2O_SCSI=m +CONFIG_I6300ESB_WDT=m +CONFIG_I7300_IDLE=m +CONFIG_I7300_IDLE_IOAT_CHANNEL=y +CONFIG_I82092=m +CONFIG_I82365=m +CONFIG_I8253_LOCK=y +CONFIG_I8K=m +# CONFIG_IA32_AOUT is not set +CONFIG_IA32_EMULATION=y +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_IBMLANA=m +CONFIG_IBMLS=m +# CONFIG_IBMMCA_SCSI_DEV_RESET is not set +CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y +CONFIG_IBMOL=m +CONFIG_IBMTR=m +CONFIG_IBMVETH=m +CONFIG_IBMVIO=y +CONFIG_IBM_ASM=m +CONFIG_IBM_BSR=m +# CONFIG_IBM_EMAC_EMAC4 is not set +# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set +# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_EMAC_RGMII is not set +# CONFIG_IBM_EMAC_TAH is not set +# CONFIG_IBM_EMAC_ZMII is not set +CONFIG_IBM_RTL=m +CONFIG_ICPLUS_PHY=y +CONFIG_ICS932S401=m +CONFIG_IDEAPAD_LAPTOP=m +CONFIG_IDEPCI_PCIBUS_ORDER=y +CONFIG_IDE_ATAPI=y +CONFIG_IDE_GD=y +CONFIG_IDE_GD_ATA=y +# CONFIG_IDE_GD_ATAPI is not set +CONFIG_IDE_PHISON=m +CONFIG_IDE_PROC_FS=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_TIMINGS=y +CONFIG_IDE_XFER_MODE=y +CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m +CONFIG_IEEE802154_DRIVERS=m +# CONFIG_IEEE802154_FAKEHARD is not set +CONFIG_IFB=m +CONFIG_IGB=m +CONFIG_IGBVF=m +CONFIG_IGB_DCA=y +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 +CONFIG_IIO_GPIO_TRIGGER=m +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_PERIODIC_RTC_TRIGGER=m +CONFIG_IIO_SIMPLE_DUMMY=m +# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set +# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set +CONFIG_IIO_SW_RING=m +CONFIG_IIO_SYSFS_TRIGGER=m +CONFIG_IIO_TRIGGER=y +# CONFIG_IKCONFIG is not set +# CONFIG_IMA is not set +CONFIG_INET=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET_AH=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_INET_DIAG=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_LRO=y +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_AMSO1100=m +CONFIG_INFINIBAND_AMSO1100_DEBUG=y +CONFIG_INFINIBAND_CXGB3=m +# CONFIG_INFINIBAND_CXGB3_DEBUG is not set +CONFIG_INFINIBAND_CXGB4=m +CONFIG_INFINIBAND_EHCA=m +CONFIG_INFINIBAND_IPATH=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_ISER=m +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_NES=m +# CONFIG_INFINIBAND_NES_DEBUG is not set +CONFIG_INFINIBAND_QIB=m +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFTL=m +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_INIT_PASS_ALL_PARAMS=y +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_UNLOCK_BH is not set +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_INOTIFY_USER=y +CONFIG_INPUT=y +CONFIG_INPUT_88PM860X_ONKEY=m +CONFIG_INPUT_AB8500_PONKEY=m +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_AD714X_SPI=m +CONFIG_INPUT_ADBHID=y +CONFIG_INPUT_ADXL34X=m +CONFIG_INPUT_ADXL34X_I2C=m +CONFIG_INPUT_ADXL34X_SPI=m +CONFIG_INPUT_APANEL=m +CONFIG_INPUT_APMPOWER=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_BMA150=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_CMA3000=m +CONFIG_INPUT_CMA3000_I2C=m +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_KXTJ9=m +# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set +CONFIG_INPUT_MAX8925_ONKEY=m +CONFIG_INPUT_MC13783_PWRBUTTON=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MMA8450=m +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_MPU3050=m +CONFIG_INPUT_PCAP=m +CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_TWL6040_VIBRA=m +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_WISTRON_BTNS=m +CONFIG_INPUT_WM831X_ON=m +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m +CONFIG_INPUT_YEALINK=m +CONFIG_INSTRUCTION_DECODER=y +CONFIG_INTEGRITY=y +CONFIG_INTEL_IOATDMA=m +CONFIG_INTEL_IOMMU=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set +CONFIG_INTEL_IOMMU_FLOPPY_WA=y +CONFIG_INTEL_IPS=m +CONFIG_INTEL_MEI=m +CONFIG_INTEL_MENLOW=m +CONFIG_INTEL_MID_DMAC=m +CONFIG_INTEL_MID_PTI=m +CONFIG_INTEL_OAKTRAIL=m +CONFIG_IOMMU_API=y +# CONFIG_IOMMU_DEBUG is not set +# CONFIG_IOMMU_STRESS is not set +CONFIG_IOMMU_SUPPORT=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_NOOP=y +# CONFIG_IO_DELAY_0X80 is not set +CONFIG_IO_DELAY_0XED=y +# CONFIG_IO_DELAY_NONE is not set +CONFIG_IO_DELAY_TYPE_0X80=0 +CONFIG_IO_DELAY_TYPE_0XED=1 +CONFIG_IO_DELAY_TYPE_NONE=3 +CONFIG_IO_DELAY_TYPE_UDELAY=2 +# CONFIG_IO_DELAY_UDELAY is not set +CONFIG_IO_EVENT_IRQ=y +CONFIG_IP1000=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_RT=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IPC_NS=y +CONFIG_IPDDP=m +CONFIG_IPDDP_DECAP=y +CONFIG_IPDDP_ENCAP=y +# CONFIG_IPIC is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_POWEROFF=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPPP_FILTER=y +CONFIG_IPV6=y +CONFIG_IPV6_MIP6=m +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_IPV6_PIMSM_V2=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_TUNNEL=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_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +CONFIG_IP_DCCP_CCID3=y +# 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_MULTIPLE_TABLES is not set +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_TTL=m +CONFIG_IP_NF_QUEUE=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_LOG=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_TTL=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_IP_PNP_BOOTP is not set +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_RARP 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_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_HASH_NETPORT=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_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_NFCT=y +CONFIG_IP_VS_NQ=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_TAB_BITS=12 +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_WRR=m +CONFIG_IRCOMM=m +CONFIG_IRDA=m +CONFIG_IRLAN=m +CONFIG_IRNET=m +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_REMAP=y +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_IRQ_WORK=y +CONFIG_IRTTY_SIR=m +CONFIG_IR_ENE=m +CONFIG_IR_FINTEK=m +CONFIG_IR_IMON=m +CONFIG_IR_ITE_CIR=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_NUVOTON=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_WINBOND_CIR=m +CONFIG_ISAPNP=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_TCP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIDRV=m +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVERSION=m +CONFIG_ISDN_DRV_ACT2000=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_B1ISA=m +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_ISDN_DRV_AVMB1_T1ISA=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_ISDN_DRV_HISAX=m +CONFIG_ISDN_DRV_ICN=m +CONFIG_ISDN_DRV_LOOP=m +CONFIG_ISDN_DRV_PCBIT=m +CONFIG_ISDN_DRV_SC=m +CONFIG_ISDN_HDLC=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_MPP=y +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_TTY_FAX=y +CONFIG_ISDN_X25=y +CONFIG_ISI=m +CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_ISO9660_FS=m +CONFIG_ISP1301_OMAP=m +CONFIG_IT8712F_WDT=m +CONFIG_IT87_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_ITCO_WDT=m +CONFIG_IWL3945=m +CONFIG_IWL4965=m +CONFIG_IWLWIFI=m +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLWIFI_DEBUGFS=y +# CONFIG_IWLWIFI_DEVICE_SVTOOL is not set +CONFIG_IWLWIFI_DEVICE_TRACING=y +CONFIG_IWLWIFI_LEGACY=m +# CONFIG_IWLWIFI_LEGACY_DEBUG is not set +# CONFIG_IWLWIFI_LEGACY_DEBUGFS is not set +# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set +CONFIG_IWM=m +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWM_DEBUG is not set +CONFIG_IWM_TRACING=y +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBEVF=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGBE_DCB=y +CONFIG_JBD=y +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +# CONFIG_JBD_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_WBUF_VERIFY is not set +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_SUMMARY is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JME=m +CONFIG_JOLIET=y +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_AS5011=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_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=y +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_MAGELLAN=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_JUMP_LABEL=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KDB_KEYBOARD=y +# CONFIG_KERNEL_BZIP2 is not set +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_LZO is not set +# CONFIG_KERNEL_XZ is not set +CONFIG_KEXEC_JUMP=y +CONFIG_KEYBOARD_ADP5520=m +CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_GPIO_POLLED=m +CONFIG_KEYBOARD_HIGHBANK=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_MATRIX=m +CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_OPENCORES=m +CONFIG_KEYBOARD_QT1070=m +# CONFIG_KEYBOARD_QT2160 is not set +CONFIG_KEYBOARD_STMPE=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_TC3589X=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_TWL4030=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYS=y +CONFIG_KEYS_COMPAT=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +CONFIG_KGDB_KDB=y +CONFIG_KGDB_LOW_LEVEL_TRAP=y +CONFIG_KGDB_SERIAL_CONSOLE=y +# CONFIG_KGDB_TESTS is not set +CONFIG_KINGSUN_DONGLE=m +# CONFIG_KPROBES_SANITY_TEST is not set +CONFIG_KPROBE_EVENT=y +CONFIG_KRETPROBES=y +CONFIG_KS0108=m +CONFIG_KS0108_DELAY=2 +CONFIG_KS0108_PORT=0x378 +CONFIG_KS8842=m +CONFIG_KS8851=m +CONFIG_KS8851_MLL=m +CONFIG_KS959_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KSZ884X_PCI=m +CONFIG_KVM_AMD=m +CONFIG_KVM_APIC_ARCHITECTURE=y +CONFIG_KVM_ASYNC_PF=y +# CONFIG_KVM_BOOK3S_64 is not set +CONFIG_KVM_CLOCK=y +CONFIG_KVM_GUEST=y +CONFIG_KVM_INTEL=m +CONFIG_KVM_MMIO=y +# CONFIG_KVM_MMU_AUDIT is not set +CONFIG_KXSD9=m +CONFIG_L2TP=m +CONFIG_L2TP_DEBUGFS=m +# CONFIG_L2TP_V3 is not set +CONFIG_LANCE=m +CONFIG_LANMEDIA=m +CONFIG_LAPB=m +CONFIG_LAPBETHER=m +CONFIG_LBDAF=y +CONFIG_LCD_AMS369FG06=m +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_ILI9320=m +CONFIG_LCD_L4F00242T03=m +CONFIG_LCD_LD9040=m +CONFIG_LCD_LMS283GF05=m +CONFIG_LCD_LTV350QV=m +CONFIG_LCD_PLATFORM=m +CONFIG_LCD_S6E63M0=m +CONFIG_LCD_TDO24M=m +CONFIG_LCD_VGG2432A4=m +# CONFIG_LDM_DEBUG is not set +CONFIG_LEDS=y +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_ADP5520=m +CONFIG_LEDS_ASIC3=y +CONFIG_LEDS_ATMEL_PWM=m +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_CLEVO_MAIL=m +CONFIG_LEDS_DA903X=m +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_DELL_NETBOOKS=m +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_INTEL_SS4200=m +CONFIG_LEDS_LM3530=m +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_MC13783=m +CONFIG_LEDS_NET48XX=m +CONFIG_LEDS_NET5501=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_PWM=m +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_RENESAS_TPU=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +# CONFIG_LEDS_TRIGGER_IDE_DISK is not set +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_WM831X_STATUS=m +CONFIG_LEDS_WM8350=m +CONFIG_LEDS_WRAP=m +CONFIG_LEGACY_PTYS=y +# CONFIG_LGUEST is not set +# CONFIG_LGUEST_GUEST is not set +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_SDIO=m +CONFIG_LIBERTAS_SPI=m +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +CONFIG_LIBIPW=m +CONFIG_LINE6_USB=m +# CONFIG_LINE6_USB_DEBUG is not set +# CONFIG_LINE6_USB_DUMP_CTRL is not set +# CONFIG_LINE6_USB_DUMP_MIDI is not set +# CONFIG_LINE6_USB_DUMP_PCM is not set +# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set +# CONFIG_LINE6_USB_RAW is not set +CONFIG_LIRC=m +CONFIG_LIRC_BT829=m +CONFIG_LIRC_IGORPLUGUSB=m +CONFIG_LIRC_IMON=m +CONFIG_LIRC_PARALLEL=m +CONFIG_LIRC_SASEM=m +CONFIG_LIRC_SERIAL=m +CONFIG_LIRC_SERIAL_TRANSMITTER=y +CONFIG_LIRC_SIR=m +CONFIG_LIRC_STAGING=y +CONFIG_LIRC_TTUSBIR=m +CONFIG_LIRC_ZILOG=m +CONFIG_LIS3L02DQ_BUF_KFIFO=y +# CONFIG_LIS3L02DQ_BUF_RING_SW is not set +CONFIG_LITELINK_DONGLE=m +# CONFIG_LKDTM is not set +CONFIG_LLC2=m +CONFIG_LNE390=m +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCAL_TIMERS=y +CONFIG_LOCKD=m +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_LOCKD_V4=y +CONFIG_LOCKUP_DETECTOR=y +# CONFIG_LOCK_STAT is not set +# CONFIG_LOGFS is not set +# CONFIG_LOGO is not set +CONFIG_LOOPBACK_TARGET=m +CONFIG_LOWMEM_SIZE=0x30000000 +CONFIG_LP486E=m +CONFIG_LPC_SCH=m +# CONFIG_LP_CONSOLE is not set +CONFIG_LRU_CACHE=m +CONFIG_LSI_ET1011C_PHY=y +CONFIG_LSM_MMAP_MIN_ADDR=0 +CONFIG_LTPC=m +CONFIG_LXT_PHY=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_M25PXX_USE_FAST_READ=y +# CONFIG_M386 is not set +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586MMX is not set +# CONFIG_M586TSC is not set +CONFIG_MA600_DONGLE=m +CONFIG_MAC80211=m +CONFIG_MAC80211_DEBUGFS=y +# CONFIG_MAC80211_DEBUG_COUNTERS is not set +CONFIG_MAC80211_DRIVER_API_TRACER=y +CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_HT_DEBUG is not set +CONFIG_MAC80211_HWSIM=m +# CONFIG_MAC80211_IBSS_DEBUG is not set +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_NOINLINE is not set +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_PID=y +# CONFIG_MAC80211_TKIP_DEBUG is not set +# CONFIG_MAC80211_VERBOSE_DEBUG is not set +# CONFIG_MAC80211_VERBOSE_MHWMP_DEBUG is not set +# CONFIG_MAC80211_VERBOSE_MPATH_DEBUG is not set +# CONFIG_MAC80211_VERBOSE_MPL_DEBUG is not set +# CONFIG_MAC80211_VERBOSE_PS_DEBUG is not set +# CONFIG_MAC80211_VERBOSE_TDLS_DEBUG is not set +CONFIG_MACE=m +# CONFIG_MACE_AAUI_PORT is not set +CONFIG_MACHZ_WDT=m +# CONFIG_MACH_CM_T35 is not set +CONFIG_MACH_CM_T3517=y +# CONFIG_MACH_CRANEBOARD is not set +# CONFIG_MACH_DEVKIT8000 is not set +CONFIG_MACH_IGEP0020=y +CONFIG_MACH_IGEP0030=y +CONFIG_MACH_NOKIA_RM680=y +CONFIG_MACH_NOKIA_RX51=y +# CONFIG_MACH_OMAP3517EVM is not set +CONFIG_MACH_OMAP3530_LV_SOM=y +CONFIG_MACH_OMAP3EVM=y +CONFIG_MACH_OMAP3_BEAGLE=y +CONFIG_MACH_OMAP3_PANDORA=y +CONFIG_MACH_OMAP3_TORPEDO=y +CONFIG_MACH_OMAP3_TOUCHBOOK=y +CONFIG_MACH_OMAP_3430SDP=y +CONFIG_MACH_OMAP_3630SDP=y +CONFIG_MACH_OMAP_GENERIC=y +CONFIG_MACH_OMAP_LDP=y +CONFIG_MACH_OMAP_ZOOM2=y +CONFIG_MACH_OMAP_ZOOM3=y +CONFIG_MACH_OVERO=y +CONFIG_MACH_SBC3530=y +CONFIG_MACH_TI8168EVM=y +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_MAC_EMUMOUSEBTN=m +CONFIG_MAC_FLOPPY=m +CONFIG_MADGEMC=m +CONFIG_MANTIS_CORE=m +CONFIG_MARVELL_PHY=y +# CONFIG_MATH_EMULATION is not set +# CONFIG_MATOM is not set +CONFIG_MAX1363=m +CONFIG_MAX1363_RING_BUFFER=y +# CONFIG_MAX517 is not set +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_MAX8925_POWER=m +# CONFIG_MAXSMP is not set +CONFIG_MCA=y +CONFIG_MCA_LEGACY=y +# CONFIG_MCA_PROC_FS is not set +# CONFIG_MCORE2 is not set +CONFIG_MCP2120_DONGLE=m +# CONFIG_MCRUSOE is not set +CONFIG_MCS_FIR=m +# CONFIG_MCYRIXIII is not set +CONFIG_MD=y +CONFIG_MDA_CONSOLE=m +CONFIG_MDIO=m +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +CONFIG_MD_AUTODETECT=y +CONFIG_MD_FAULTY=m +CONFIG_MD_LINEAR=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_MEDIA_ATTACH=y +# CONFIG_MEDIA_CONTROLLER is not set +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_TUNER=m +# CONFIG_MEDIA_TUNER_CUSTOMISE is not set +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_TDA18218=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_XC2028=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_XC5000=m +# CONFIG_MEFFICEON is not set +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_SAS=m +# CONFIG_MELAN is not set +CONFIG_MEMORY_FAILURE=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTPLUG_SPARSE=y +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set +CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_TIFM_MS=m +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +# CONFIG_MEMTEST is not set +CONFIG_MFD_CORE=y +CONFIG_MFD_CS5535=m +CONFIG_MFD_JANZ_CMODIO=m +CONFIG_MFD_MC13783=m +CONFIG_MFD_MC13XXX=m +CONFIG_MFD_OMAP_USB_HOST=y +CONFIG_MFD_PCF50633=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set +CONFIG_MFD_TIMBERDALE=m +CONFIG_MFD_TPS65912=y +CONFIG_MFD_TWL4030_AUDIO=y +CONFIG_MFD_VX855=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_WM831X=y +CONFIG_MFD_WM8350=y +CONFIG_MFD_WM8400=m +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +CONFIG_MG_DISK=m +CONFIG_MG_DISK_RES=0 +CONFIG_MICREL_PHY=m +CONFIG_MICROCODE=m +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_MIGRATION=y +CONFIG_MII=y +CONFIG_MINIX_FS=m +CONFIG_MISC_FILESYSTEMS=y +CONFIG_MISDN=m +CONFIG_MISDN_AVMFRITZ=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_MISDN_INFINEON=m +CONFIG_MISDN_IPAC=m +CONFIG_MISDN_ISAR=m +CONFIG_MISDN_L1OIP=m +CONFIG_MISDN_NETJET=m +CONFIG_MISDN_SPEEDFAX=m +CONFIG_MISDN_W6692=m +CONFIG_MIXCOMWD=m +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +CONFIG_MKISS=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_INFINIBAND=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_CB710=m +# CONFIG_MMC_CLKGATE is not set +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_DW=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_OMAP=m +CONFIG_MMC_OMAP_HS=y +CONFIG_MMC_RICOH_MMC=y +CONFIG_MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_OF_ESDHC=m +CONFIG_MMC_SDHCI_OF_HLWD=m +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_SDRICOH_CS=m +CONFIG_MMC_SPI=m +# CONFIG_MMC_TEST is not set +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_TMIO=m +CONFIG_MMC_TMIO_CORE=m +# CONFIG_MMC_UNSAFE_RESUME is not set +CONFIG_MMC_USHC=m +CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_VUB300=m +CONFIG_MMC_WBSD=m +CONFIG_MMIOTRACE=y +# CONFIG_MMIOTRACE_TEST is not set +CONFIG_MMU=y +CONFIG_MMU_NOTIFIER=y +CONFIG_MM_OWNER=y +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_UNLOAD=y +CONFIG_MOUSE_APPLETOUCH=m +# CONFIG_MOUSE_ATIXL is not set +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_GPIO=m +CONFIG_MOUSE_INPORT=m +CONFIG_MOUSE_LOGIBM=m +CONFIG_MOUSE_PC110PAD=m +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_OLPC=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +# CONFIG_MPENTIUM4 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +CONFIG_MPIC=y +CONFIG_MPIC_BROKEN_REGREAD=y +# CONFIG_MPIC_WEIRD is not set +# CONFIG_MPSC is not set +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +# CONFIG_MSI_BITMAP_SELFTEST is not set +CONFIG_MSI_LAPTOP=m +CONFIG_MSI_WMI=m +CONFIG_MSPRO_BLOCK=m +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTD_ABSENT=m +CONFIG_MTD_AFS_PARTS=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_AR7_PARTS=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_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CK804XROM=m +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_DATAFLASH_OTP=y +# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCECC=m +CONFIG_MTD_DOCG3=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCPROBE_ADDRESS=0x0 +# CONFIG_MTD_DOCPROBE_ADVANCED is not set +CONFIG_MTD_ESB2ROM=m +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_GPIO_ADDR=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_LATCH_ADDR=m +CONFIG_MTD_LPDDR=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_MAP_BANK_WIDTH_1=y +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_CS553X=m +CONFIG_MTD_NAND_DENALI=m +CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018 +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_BCH=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND_FSL_ELBC=m +CONFIG_MTD_NAND_GPIO=m +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_OMAP2=y +CONFIG_MTD_NAND_PASEMI=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_NAND_RICOH=m +CONFIG_MTD_NAND_TMIO=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +CONFIG_MTD_NETSC520=m +CONFIG_MTD_NETtel=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_GENERIC=m +CONFIG_MTD_ONENAND_OMAP2=m +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_SIM=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_OOPS=m +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_OF=m +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_QINFO_PROBE=m +CONFIG_MTD_RAM=m +CONFIG_MTD_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_SC520CDP=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_SCx200_DOCFLASH=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_SST25L=m +CONFIG_MTD_SWAP=m +# CONFIG_MTD_TESTS is not set +CONFIG_MTD_TS5500=m +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_BEB_RESERVE=1 +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_MTD_UBI_GLUEBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +# CONFIG_MULTICORE_RAID456 is not set +# CONFIG_MUSB_PIO_ONLY is not set +CONFIG_MV643XX_ETH=m +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +CONFIG_MWAVE=m +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_SDIO=m +# CONFIG_MWINCHIP3D is not set +# CONFIG_MWINCHIPC6 is not set +CONFIG_MWL8K=m +CONFIG_MXM_WMI=m +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_N2=m +CONFIG_NAMESPACES=y +CONFIG_NATIONAL_PHY=y +CONFIG_NATSEMI=m +CONFIG_NCPFS_EXTRAS=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_PACKET_SIGNING=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_STRONG=y +CONFIG_NCP_FS=m +CONFIG_NE2000=m +CONFIG_NE2K_PCI=m +CONFIG_NE2_MCA=m +CONFIG_NE3210=m +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_NEED_PER_CPU_KM=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_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=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_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=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_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_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_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETLABEL=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NETROM=m +CONFIG_NETWORK_FILESYSTEMS=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETWORK_SECMARK=y +CONFIG_NETXEN_NIC=m +CONFIG_NET_9P=m +# CONFIG_NET_9P_DEBUG is not set +CONFIG_NET_9P_RDMA=m +CONFIG_NET_9P_VIRTIO=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_CLS=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_CGROUP=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_FW=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_U32=m +CONFIG_NET_CORE=y +CONFIG_NET_DCCPPROBE=m +# CONFIG_NET_DROP_MONITOR is not set +CONFIG_NET_DSA=m +CONFIG_NET_DSA_MV88E6060=m +CONFIG_NET_DSA_MV88E6123_61_65=m +CONFIG_NET_DSA_MV88E6131=m +CONFIG_NET_DSA_MV88E6XXX=m +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=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_FC=y +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IPIP=m +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_NET_NS=y +CONFIG_NET_PACKET_ENGINE=y +CONFIG_NET_PKTGEN=m +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NET_SB1000=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_FIFO=y +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_HFSC=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_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_TBF=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCTPPROBE=m +CONFIG_NET_TCPPROBE=m +CONFIG_NET_TULIP=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_NET_VENDOR_8390=y +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_NET_VENDOR_AMD=y +CONFIG_NET_VENDOR_APPLE=y +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_NET_VENDOR_CISCO=y +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_VENDOR_DLINK=y +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_NET_VENDOR_EXAR=y +CONFIG_NET_VENDOR_FARADAY=y +CONFIG_NET_VENDOR_FUJITSU=y +CONFIG_NET_VENDOR_HP=y +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_IBM=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_NET_VENDOR_MYRI=y +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_NET_VENDOR_OKI=y +CONFIG_NET_VENDOR_PASEMI=y +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_NET_VENDOR_RACAL=y +CONFIG_NET_VENDOR_RDC=y +CONFIG_NET_VENDOR_REALTEK=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_TOSHIBA=y +CONFIG_NET_VENDOR_VIA=y +CONFIG_NET_VENDOR_XILINX=y +CONFIG_NET_VENDOR_XIRCOM=y +CONFIG_NEW_LEDS=y +CONFIG_NFC=m +CONFIG_NFC_NCI=m +CONFIG_NFC_PN533=m +CONFIG_NFC_WILINK=m +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_NFS_FS=m +CONFIG_NFS_FSCACHE=y +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_LEGACY_DNS is not set +# CONFIG_NFS_USE_NEW_IDMAPPER is not set +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_NFS_V4_1=y +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +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_TIMESTAMP=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_DEFRAG_IPV6=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_NEEDED=y +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NI52=m +CONFIG_NI65=m +CONFIG_NILFS2_FS=m +CONFIG_NIU=m +CONFIG_NLATTR=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +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_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_UTF8=m +CONFIG_NODES_SPAN_OTHER_NODES=y +# CONFIG_NOHIGHMEM is not set +CONFIG_NOP_TRACER=y +CONFIG_NORTEL_HERMES=m +CONFIG_NOZOMI=m +CONFIG_NO_BOOTMEM=y +CONFIG_NO_HZ=y +CONFIG_NR_IRQS=512 +CONFIG_NS83820=m +CONFIG_NSC_FIR=m +CONFIG_NSC_GPIO=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS=m +# CONFIG_NTFS_RW is not set +CONFIG_NUMA=y +# CONFIG_NUMA_EMU is not set +CONFIG_NV_TCO=m +# CONFIG_N_GSM is not set +CONFIG_N_HDLC=m +CONFIG_OABI_COMPAT=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_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_DEVICE=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_I2C=y +CONFIG_OF_IRQ=y +CONFIG_OF_MDIO=y +CONFIG_OF_NET=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y +CONFIG_OF_PROMTREE=y +CONFIG_OF_SPI=y +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_OLPC=y +CONFIG_OLPC_XO15_SCI=y +CONFIG_OLPC_XO1_PM=y +CONFIG_OLPC_XO1_RTC=y +CONFIG_OLPC_XO1_SCI=y +CONFIG_OMAP2_DSS=y +# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set +CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y +CONFIG_OMAP2_DSS_DPI=y +# CONFIG_OMAP2_DSS_DSI is not set +# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0 +# CONFIG_OMAP2_DSS_RFBI is not set +CONFIG_OMAP2_DSS_SDI=y +CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y +CONFIG_OMAP2_DSS_VENC=y +CONFIG_OMAP2_VRAM=y +CONFIG_OMAP2_VRAM_SIZE=6 +CONFIG_OMAP2_VRFB=y +CONFIG_OMAP3_EMU=y +# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set +# CONFIG_OMAP3_SDRC_AC_TIMING is not set +CONFIG_OMAP_32K_TIMER=y +CONFIG_OMAP_32K_TIMER_HZ=128 +CONFIG_OMAP_DM_TIMER=y +CONFIG_OMAP_IOMMU=y +CONFIG_OMAP_IOMMU_DEBUG=m +CONFIG_OMAP_IOVMM=m +CONFIG_OMAP_MBOX_FWK=m +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_OMAP_MCBSP=y +CONFIG_OMAP_MUX=y +# CONFIG_OMAP_MUX_DEBUG is not set +CONFIG_OMAP_MUX_WARNINGS=y +CONFIG_OMAP_PACKAGE_CBB=y +CONFIG_OMAP_PACKAGE_CBP=y +CONFIG_OMAP_PACKAGE_CUS=y +CONFIG_OMAP_PM_NOOP=y +CONFIG_OMAP_RESET_CLOCKS=y +# CONFIG_OMAP_SMARTREFLEX is not set +CONFIG_OMAP_WATCHDOG=m +CONFIG_OMFS_FS=m +CONFIG_OMNIBOOK=m +CONFIG_OPROFILE=m +# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set +CONFIG_OPTIMIZE_INLINING=y +CONFIG_OPTPROBES=y +CONFIG_ORE=m +CONFIG_ORINOCO_USB=m +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_OVERLAYFS_FS=m +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_PACKARDBELL_E5=m +CONFIG_PACKET=y +CONFIG_PADATA=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_PANASONIC_LAPTOP=m +CONFIG_PANEL=m +CONFIG_PANEL_ACX565AKM=m +# CONFIG_PANEL_CHANGE_MESSAGE is not set +CONFIG_PANEL_LGPHILIPS_LB035Q02=m +CONFIG_PANEL_NEC_NL8048HL11_01B=m +CONFIG_PANEL_PARPORT=0 +CONFIG_PANEL_PICODLP=m +CONFIG_PANEL_PROFILE=5 +CONFIG_PANEL_SHARP_LS037V7DW01=y +CONFIG_PANEL_TPO_TD043MTEA1=y +CONFIG_PANTHERLORD_FF=y +CONFIG_PARAVIRT=y +CONFIG_PARAVIRT_CLOCK=y +# CONFIG_PARAVIRT_DEBUG is not set +CONFIG_PARAVIRT_GUEST=y +CONFIG_PARAVIRT_SPINLOCKS=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 is not set +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_PARPORT=m +CONFIG_PARPORT_AX88796=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_NOT_PC=y +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_PASEMI_MAC is not set +CONFIG_PATA_ACPI=y +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +CONFIG_PATA_ATP867X=m +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +CONFIG_PATA_CS5530=m +CONFIG_PATA_CS5535=m +CONFIG_PATA_CS5536=m +CONFIG_PATA_CYPRESS=m +CONFIG_PATA_EFAR=m +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m +CONFIG_PATA_HPT3X3=m +# CONFIG_PATA_HPT3X3_DMA is not set +CONFIG_PATA_ISAPNP=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_LEGACY=m +CONFIG_PATA_MACIO=y +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OF_PLATFORM=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_PLATFORM=m +CONFIG_PATA_QDI=m +CONFIG_PATA_RADISYS=m +CONFIG_PATA_RDC=m +CONFIG_PATA_RZ1000=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_SCH=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_WINBOND_VLB=m +CONFIG_PC300TOO=m +CONFIG_PC8736x_GPIO=m +CONFIG_PC87413_WDT=m +CONFIG_PCCARD_NONSTATIC=y +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +CONFIG_PCH_CAN=m +CONFIG_PCH_DMA=m +CONFIG_PCH_GBE=m +CONFIG_PCH_PHUB=m +CONFIG_PCI=y +CONFIG_PCI200SYN=m +CONFIG_PCIEAER=y +# CONFIG_PCIEAER_INJECT is not set +CONFIG_PCIEASPM=y +# CONFIG_PCIEASPM_DEBUG is not set +CONFIG_PCIEPORTBUS=y +# CONFIG_PCIE_ECRC is not set +CONFIG_PCIE_PME=y +CONFIG_PCIPCWATCHDOG=m +CONFIG_PCI_ATMEL=m +CONFIG_PCI_ATS=y +CONFIG_PCI_BIOS=y +# CONFIG_PCI_CNB20LE_QUIRK is not set +# CONFIG_PCI_DEBUG is not set +CONFIG_PCI_DIRECT=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_GOANY=y +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GODIRECT is not set +# CONFIG_PCI_GOMMCONFIG is not set +# CONFIG_PCI_GOOLPC is not set +CONFIG_PCI_IOAPIC=y +CONFIG_PCI_IOV=y +CONFIG_PCI_LABEL=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_MSI=y +CONFIG_PCI_OLPC=y +CONFIG_PCI_PASID=y +CONFIG_PCI_PRI=y +CONFIG_PCI_QUIRKS=y +CONFIG_PCI_STUB=m +CONFIG_PCI_XEN=y +CONFIG_PCMCIA=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_PCMCIA_AXNET=m +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_NINJA_SCSI=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_PROBE=y +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_PCNET32=m +CONFIG_PCSPKR_PLATFORM=y +CONFIG_PCWATCHDOG=m +CONFIG_PD6729=m +CONFIG_PDA_POWER=m +CONFIG_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PHANTOM=m +CONFIG_PHONE=m +CONFIG_PHONET=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m +CONFIG_PHYLIB=y +# CONFIG_PHYP_DUMP is not set +CONFIG_PID_NS=y +# CONFIG_PL310_ERRATA_588369 is not set +# CONFIG_PL310_ERRATA_727915 is not set +# CONFIG_PL310_ERRATA_753970 is not set +# CONFIG_PL310_ERRATA_769419 is not set +CONFIG_PL330=y +# CONFIG_PLAT_SPEAR is not set +CONFIG_PLIP=m +CONFIG_PLX_HERMES=m +CONFIG_PM=y +CONFIG_PMAC_APM_EMU=m +CONFIG_PMAC_BACKLIGHT=y +CONFIG_PMAC_BACKLIGHT_LEGACY=y +CONFIG_PMAC_MEDIABAY=y +CONFIG_PMAC_RACKMETER=m +CONFIG_PMAC_SMU=y +# CONFIG_PMBUS is not set +CONFIG_PM_ADVANCED_DEBUG=y +CONFIG_PM_CLK=y +CONFIG_PM_OPP=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_STD_PARTITION="" +CONFIG_PM_TEST_SUSPEND=y +CONFIG_PM_TRACE=y +CONFIG_PM_TRACE_RTC=y +CONFIG_PN544_NFC=m +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_OBJLAYOUT=m +CONFIG_PNP=y +CONFIG_PNPACPI=y +CONFIG_PNPBIOS=y +CONFIG_PNPBIOS_PROC_FS=y +CONFIG_PNP_DEBUG_MESSAGES=y +CONFIG_POHMELFS=m +# CONFIG_POHMELFS_DEBUG is not set +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_POWER3=y +CONFIG_POWER4=y +# CONFIG_POWER4_ONLY is not set +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PPC=y +CONFIG_PPC32=y +# CONFIG_PPC601_SYNC_FIX is not set +# CONFIG_PPC_82xx is not set +# CONFIG_PPC_83xx is not set +# CONFIG_PPC_85xx is not set +# CONFIG_PPC_86xx is not set +# CONFIG_PPC_8xx is not set +# CONFIG_PPC_BOOK3E_64 is not set +CONFIG_PPC_BOOK3S=y +CONFIG_PPC_BOOK3S_32=y +CONFIG_PPC_BOOK3S_64=y +# CONFIG_PPC_CELLEB is not set +# CONFIG_PPC_CELL_NATIVE is not set +# CONFIG_PPC_CELL_QPACE is not set +CONFIG_PPC_CHRP=y +# CONFIG_PPC_CLOCK is not set +# CONFIG_PPC_DCR_MMIO is not set +# CONFIG_PPC_DCR_NATIVE is not set +CONFIG_PPC_DISABLE_WERROR=y +# CONFIG_PPC_EARLY_DEBUG is not set +# CONFIG_PPC_EMULATED_STATS is not set +CONFIG_PPC_EPAPR_HV_BYTECHAN=m +# CONFIG_PPC_EPAPR_HV_PIC is not set +CONFIG_PPC_FPU=y +CONFIG_PPC_HAS_HASH_64K=y +CONFIG_PPC_HAVE_PMU_SUPPORT=y +CONFIG_PPC_I8259=y +# CONFIG_PPC_IBM_CELL_BLADE is not set +CONFIG_PPC_ICSWX=y +# CONFIG_PPC_ISERIES is not set +CONFIG_PPC_MAPLE=y +# CONFIG_PPC_MPC512x is not set +# CONFIG_PPC_MPC52xx is not set +CONFIG_PPC_MSI_BITMAP=y +CONFIG_PPC_NATIVE=y +CONFIG_PPC_OF=y +CONFIG_PPC_OF_BOOT_TRAMPOLINE=y +# CONFIG_PPC_OF_PLATFORM_PCI is not set +CONFIG_PPC_PASEMI=y +CONFIG_PPC_PASEMI_CPUFREQ=y +CONFIG_PPC_PASEMI_IOMMU=y +# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set +CONFIG_PPC_PASEMI_MDIO=y +CONFIG_PPC_PCI_CHOICE=y +CONFIG_PPC_PERF_CTRS=y +CONFIG_PPC_PMAC=y +CONFIG_PPC_PMAC32_PSURGE=y +CONFIG_PPC_PMAC64=y +CONFIG_PPC_POWERNV=y +CONFIG_PPC_POWERNV_RTAS=y +CONFIG_PPC_PS3=y +CONFIG_PPC_PSERIES=y +CONFIG_PPC_RTAS=y +CONFIG_PPC_RTAS_DAEMON=y +CONFIG_PPC_SMP_MUXED_IPI=y +CONFIG_PPC_STD_MMU=y +CONFIG_PPC_STD_MMU_32=y +CONFIG_PPC_STD_MMU_64=y +CONFIG_PPC_SUBPAGE_PROT=y +CONFIG_PPC_UDBG_16550=y +# CONFIG_PPC_WSP is not set +CONFIG_PPDEV=m +CONFIG_PPP=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_MPPE=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPS=m +CONFIG_PPS_CLIENT_GPIO=m +# CONFIG_PPS_CLIENT_KTIMER is not set +CONFIG_PPS_CLIENT_LDISC=m +CONFIG_PPS_CLIENT_PARPORT=m +# CONFIG_PPS_DEBUG is not set +CONFIG_PPTP=m +# CONFIG_PQ2ADS is not set +CONFIG_PREEMPT_COUNT=y +CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINT_STACK_DEPTH=64 +CONFIG_PRISM2_USB=m +CONFIG_PRISM54=m +CONFIG_PROCESSOR_SELECT=y +CONFIG_PROC_DEVICETREE=y +CONFIG_PROC_EVENTS=y +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_VMCORE=y +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +CONFIG_PROFILING=y +CONFIG_PROTEON=m +# CONFIG_PROVE_LOCKING is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_PS3GELIC_UDBG is not set +# CONFIG_PS3_ADVANCED is not set +CONFIG_PS3_DISK=m +# CONFIG_PS3_DYNAMIC_DMA is not set +CONFIG_PS3_FLASH=m +CONFIG_PS3_HTAB_SIZE=20 +CONFIG_PS3_LPM=m +CONFIG_PS3_PS3AV=y +CONFIG_PS3_ROM=m +CONFIG_PS3_STORAGE=m +CONFIG_PS3_SYS_MANAGER=y +CONFIG_PS3_VRAM=m +CONFIG_PS3_VUART=y +CONFIG_PSERIES_MSI=y +# CONFIG_PTP_1588_CLOCK is not set +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLGE=m +CONFIG_QNX4FS_FS=m +CONFIG_QSEMI_PHY=y +CONFIG_QUOTA=y +CONFIG_QUOTACTL=y +CONFIG_QUOTACTL_COMPAT=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=m +CONFIG_R6040=m +CONFIG_R8169=m +CONFIG_R8187SE=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_AZTECH=m +CONFIG_RADIO_CADET=m +CONFIG_RADIO_GEMTEK=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MIROPCM20=m +CONFIG_RADIO_RTRACK=m +CONFIG_RADIO_RTRACK2=m +CONFIG_RADIO_SAA7706H=m +CONFIG_RADIO_SF16FMI=m +CONFIG_RADIO_SF16FMR2=m +CONFIG_RADIO_SI470X=y +CONFIG_RADIO_SI4713=m +CONFIG_RADIO_TEA5764=m +CONFIG_RADIO_TEF6862=m +CONFIG_RADIO_TERRATEC=m +CONFIG_RADIO_TIMBERDALE=m +CONFIG_RADIO_TRUST=m +CONFIG_RADIO_TYPHOON=m +CONFIG_RADIO_WL1273=m +CONFIG_RADIO_WL128X=m +CONFIG_RADIO_ZOLTRIX=m +CONFIG_RAID6_PQ=m +CONFIG_RAPIDIO=y +CONFIG_RAPIDIO_CPS_GEN2=y +CONFIG_RAPIDIO_CPS_XX=y +# CONFIG_RAPIDIO_DEBUG is not set +CONFIG_RAPIDIO_DISC_TIMEOUT=30 +# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set +CONFIG_RAPIDIO_TSI500=y +CONFIG_RAPIDIO_TSI568=y +CONFIG_RAPIDIO_TSI57X=y +CONFIG_RAPIDIO_TSI721=y +# CONFIG_RCU_BOOST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_CPU_STALL_VERBOSE=y +# CONFIG_RCU_FANOUT_EXACT is not set +CONFIG_RCU_FAST_NO_HZ=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RC_ATI_REMOTE=m +CONFIG_RC_CORE=m +CONFIG_RC_LOOPBACK=m +CONFIG_RC_MAP=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_LZMA=y +CONFIG_RD_LZO=y +CONFIG_RD_XZ=y +CONFIG_REALTEK_AUTOPM=y +CONFIG_REALTEK_PHY=y +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_REGMAP=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_88PM8607=y +CONFIG_REGULATOR_AAT2870=m +CONFIG_REGULATOR_AB3100=m +CONFIG_REGULATOR_AB8500=y +CONFIG_REGULATOR_AD5398=m +CONFIG_REGULATOR_BQ24022=m +CONFIG_REGULATOR_DA903X=m +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_ISL6271A=m +CONFIG_REGULATOR_LP3971=m +CONFIG_REGULATOR_LP3972=m +CONFIG_REGULATOR_MAX1586=m +CONFIG_REGULATOR_MAX8649=m +CONFIG_REGULATOR_MAX8660=m +CONFIG_REGULATOR_MAX8925=m +CONFIG_REGULATOR_MAX8952=m +CONFIG_REGULATOR_MAX8997=m +CONFIG_REGULATOR_MAX8998=m +CONFIG_REGULATOR_MC13783=m +CONFIG_REGULATOR_MC13892=m +CONFIG_REGULATOR_MC13XXX_CORE=m +# CONFIG_REGULATOR_PCAP is not set +CONFIG_REGULATOR_PCF50633=m +CONFIG_REGULATOR_TPS6105X=m +CONFIG_REGULATOR_TPS65023=m +CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TPS6524X=m +CONFIG_REGULATOR_TPS6586X=m +CONFIG_REGULATOR_TPS65910=m +CONFIG_REGULATOR_TPS65912=m +CONFIG_REGULATOR_TWL4030=y +CONFIG_REGULATOR_USERSPACE_CONSUMER=m +CONFIG_REGULATOR_VIRTUAL_CONSUMER=m +CONFIG_REGULATOR_WM831X=m +CONFIG_REGULATOR_WM8350=m +CONFIG_REGULATOR_WM8400=m +CONFIG_REGULATOR_WM8994=m +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_FS=m +CONFIG_REISERFS_FS_XATTR=y +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_RELOCATABLE=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_RFD_FTL=m +CONFIG_RFKILL=y +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_REGULATOR=m +CONFIG_RFS_ACCEL=y +CONFIG_RING_BUFFER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +# CONFIG_RING_BUFFER_BENCHMARK is not set +CONFIG_RIONET=m +CONFIG_RIONET_RX_SIZE=128 +CONFIG_RIONET_TX_SIZE=128 +CONFIG_ROCKETPORT=m +CONFIG_ROMFS_BACKED_BY_BLOCK=y +# CONFIG_ROMFS_BACKED_BY_BOTH is not set +# CONFIG_ROMFS_BACKED_BY_MTD is not set +CONFIG_ROMFS_FS=m +CONFIG_ROMFS_ON_BLOCK=y +CONFIG_ROSE=m +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPS=y +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT2500USB=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800_LIB=m +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_LEDS=y +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT61PCI=m +CONFIG_RT73USB=m +CONFIG_RTAS_ERROR_LOGGING=y +CONFIG_RTAS_PROC=y +CONFIG_RTC_CLASS=y +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_DRV_88PM860X=m +CONFIG_RTC_DRV_AB3100=m +CONFIG_RTC_DRV_AB8500=m +CONFIG_RTC_DRV_BQ32K=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1305=m +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1390=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_DS3234=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_GENERIC=m +CONFIG_RTC_DRV_ISL12022=m +CONFIG_RTC_DRV_ISL1208=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_MAX8925=m +CONFIG_RTC_DRV_MAX8998=m +CONFIG_RTC_DRV_MC13XXX=m +CONFIG_RTC_DRV_MSM6242=m +CONFIG_RTC_DRV_PCAP=m +CONFIG_RTC_DRV_PCF2123=m +CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_PL030=m +CONFIG_RTC_DRV_PS3=m +CONFIG_RTC_DRV_R9701=m +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_RV3029C2=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_STK17TA8=m +# CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_WM831X=m +CONFIG_RTC_DRV_WM8350=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_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_RTL8180=m +CONFIG_RTL8187_LEDS=y +CONFIG_RTL8192CE=m +CONFIG_RTL8192C_COMMON=m +CONFIG_RTL8192DE=m +CONFIG_RTL8192E=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192U=m +CONFIG_RTLWIFI=m +# CONFIG_RTS5139_DEBUG is not set +# CONFIG_RTS_PSTOR_DEBUG is not set +CONFIG_RT_GROUP_SCHED=y +CONFIG_RT_MUTEXES=y +# CONFIG_RT_MUTEX_TESTER is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_RXKAD=m +CONFIG_S2IO=m +# CONFIG_SAMPLES is not set +CONFIG_SAMSUNG_LAPTOP=m +CONFIG_SAMSUNG_Q10=m +CONFIG_SATA_ACARD_AHCI=m +CONFIG_SATA_AHCI=y +CONFIG_SATA_INIC162X=m +CONFIG_SATA_NV=m +CONFIG_SATA_PMP=y +CONFIG_SATA_PROMISE=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SIL=m +CONFIG_SATA_SIL24=m +CONFIG_SATA_SIS=m +CONFIG_SATA_SX4=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m +CONFIG_SBC7240_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m +CONFIG_SBC_FITPC2_WATCHDOG=m +CONFIG_SBE_2T3E3=m +CONFIG_SBE_PMCC4_NCOMM=y +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_SC1200_WDT=m +CONFIG_SC520_WDT=m +CONFIG_SC92031=m +CONFIG_SCA3000=m +CONFIG_SCC=m +# CONFIG_SCC_DELAY is not set +# CONFIG_SCC_TRXECHO is not set +CONFIG_SCHED_DEBUG=y +CONFIG_SCHED_HRTICK=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_SCHED_TRACER=y +CONFIG_SCSI=y +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m +CONFIG_SCSI_7000FASST=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_AHA152X=m +CONFIG_SCSI_AHA1542=m +CONFIG_SCSI_AHA1740=m +CONFIG_SCSI_AIC79XX=m +CONFIG_SCSI_AIC7XXX=m +# CONFIG_SCSI_AIC7XXX_OLD is not set +CONFIG_SCSI_AIC94XX=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_BNX2X_FCOE=m +CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_CXGB4_ISCSI=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_DH_ALUA=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DMA=y +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_DTC3280=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_ENCLOSURE=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_FD_MCS=m +# CONFIG_SCSI_FLASHPOINT is not set +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_GENERIC_NCR5380=m +CONFIG_SCSI_GENERIC_NCR5380_MMIO=m +CONFIG_SCSI_GENERIC_NCR53C400=y +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_IBMMCA=m +CONFIG_SCSI_IBMVFC=m +CONFIG_SCSI_IBMVFC_TRACE=y +CONFIG_SCSI_IBMVSCSI=m +CONFIG_SCSI_IMM=m +CONFIG_SCSI_IN2000=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_IPR_TRACE is not set +CONFIG_SCSI_IPS=m +CONFIG_SCSI_ISCI=m +CONFIG_SCSI_ISCSI_ATTRS=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_LOWLEVEL=y +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +CONFIG_SCSI_MAC53C94=m +CONFIG_SCSI_MESH=m +CONFIG_SCSI_MESH_RESET_DELAY_MS=4000 +CONFIG_SCSI_MESH_SYNC_RATE=5 +CONFIG_SCSI_MOD=y +CONFIG_SCSI_MPT2SAS=m +# CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT2SAS_MAX_SGE=128 +CONFIG_SCSI_MVSAS=m +CONFIG_SCSI_MVSAS_DEBUG=y +# CONFIG_SCSI_MVSAS_TASKLET is not set +CONFIG_SCSI_MVUMI=m +CONFIG_SCSI_NCR53C406A=m +CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 +CONFIG_SCSI_NCR53C8XX_MAX_TAGS=4 +CONFIG_SCSI_NCR53C8XX_SYNC=5 +CONFIG_SCSI_NCR_D700=m +CONFIG_SCSI_NCR_Q720=m +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_NSP32=m +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_PAS16=m +CONFIG_SCSI_PM8001=m +CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_PROC_FS=y +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLOGIC_FAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SIM710=m +CONFIG_SCSI_SRP=m +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C416=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_T128=m +CONFIG_SCSI_TGT=m +CONFIG_SCSI_U14_34F=m +CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y +CONFIG_SCSI_U14_34F_MAX_TAGS=8 +CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y +CONFIG_SCSI_ULTRASTOR=m +CONFIG_SCSI_WAIT_SCAN=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +CONFIG_SCTP_HMAC_MD5=y +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCx200=m +CONFIG_SCx200HR_TIMER=m +CONFIG_SCx200_ACB=m +CONFIG_SCx200_GPIO=m +CONFIG_SCx200_I2C=m +CONFIG_SCx200_I2C_SCL=12 +CONFIG_SCx200_I2C_SDA=13 +CONFIG_SCx200_WDT=m +CONFIG_SDIO_UART=m +CONFIG_SDLA=m +CONFIG_SEALEVEL_4021=m +CONFIG_SECCOMP=y +CONFIG_SECCOMP_FILTER=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_APPARMOR=y +CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 +# CONFIG_SECURITY_DMESG_RESTRICT is not set +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +CONFIG_SECURITY_PATH=y +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_DEVELOP=y +# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set +CONFIG_SECURITY_SMACK=y +CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init" +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_SEEQ8005=m +CONFIG_SELECT_MEMORY_MODEL=y +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_ADCXX=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADS1015=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_ADS7871=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_AK8975=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_AMS=m +CONFIG_SENSORS_AMS_I2C=y +CONFIG_SENSORS_AMS_PMU=y +CONFIG_SENSORS_APDS990X=m +CONFIG_SENSORS_APPLESMC=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ATK0110=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FAM15H_POWER=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_HMC5843=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_ISL29018=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_LINEAGE=m +CONFIG_SENSORS_LIS3_I2C=m +CONFIG_SENSORS_LIS3_SPI=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_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MC13783_ADC=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMM665=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_TSL2563=m +CONFIG_SENSORS_TWL4030_MADC=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_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_SERIAL_8250_ACCENT=m +CONFIG_SERIAL_8250_BOCA=m +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_DW=m +CONFIG_SERIAL_8250_EXAR_ST16C554=m +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FOURPORT=m +CONFIG_SERIAL_8250_HUB6=m +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_MCA=m +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_RUNTIME_UARTS=32 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_ICOM is not set +# CONFIG_SERIAL_IFX6X60 is not set +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_MAX3100=m +CONFIG_SERIAL_MAX3107=m +CONFIG_SERIAL_MFD_HSU=m +CONFIG_SERIAL_MRST_MAX3110=m +CONFIG_SERIAL_OF_PLATFORM=m +CONFIG_SERIAL_OMAP=y +CONFIG_SERIAL_OMAP_CONSOLE=y +CONFIG_SERIAL_PCH_UART=m +CONFIG_SERIAL_PMACZILOG_CONSOLE=y +# CONFIG_SERIAL_PMACZILOG_TTYS is not set +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_UARTLITE=m +CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_SERIO=y +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_I8042=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_PS2MULT=m +CONFIG_SERIO_RAW=m +CONFIG_SERIO_XILINX_XPS_PS2=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_SFI=y +CONFIG_SGI_IOC4=m +CONFIG_SHMEM=y +# CONFIG_SIGMA is not set +CONFIG_SIGMATEL_FIR=m +CONFIG_SIGNALFD=y +CONFIG_SIMPLE_GPIO=y +CONFIG_SIS190=m +CONFIG_SIS900=m +CONFIG_SKFP=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKGE_GENESIS=y +CONFIG_SKISA=m +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +# CONFIG_SLAB is not set +CONFIG_SLABINFO=y +CONFIG_SLHC=y +CONFIG_SLICOSS=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_SLIP_SMART=y +# CONFIG_SLOB is not set +CONFIG_SLUB=y +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_SMC911X=m +CONFIG_SMC9194=m +CONFIG_SMC91X=m +CONFIG_SMCTR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_SMSC37B787_WDT=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_SMSC9420=m +CONFIG_SMSC_PHY=y +CONFIG_SMSC_SCH311X_WDT=m +CONFIG_SMS_SDIO_DRV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_USB_DRV=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_AD1889=m +CONFIG_SND_ADLIB=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ALOOP=m +CONFIG_SND_ALS100=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_AOA=m +CONFIG_SND_AOA_FABRIC_LAYOUT=m +CONFIG_SND_AOA_ONYX=m +CONFIG_SND_AOA_SOUNDBUS=m +CONFIG_SND_AOA_SOUNDBUS_I2S=m +CONFIG_SND_AOA_TAS=m +CONFIG_SND_AOA_TOONIE=m +CONFIG_SND_ARM=y +CONFIG_SND_ARMAACI=m +CONFIG_SND_ASIHPI=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT1605=m +CONFIG_SND_AZT2316=m +CONFIG_SND_AZT2320=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +CONFIG_SND_CA0106=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4236=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_DARLA24=m +# CONFIG_SND_DEBUG is not set +CONFIG_SND_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_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y +CONFIG_SND_FIREWIRE=y +CONFIG_SND_FIREWIRE_LIB=m +CONFIG_SND_FIREWIRE_SPEAKERS=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_GINA20=m +CONFIG_SND_GINA24=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y +CONFIG_SND_HDA_CODEC_CIRRUS=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_HDMI=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=0 +CONFIG_SND_HDA_INPUT_JACK=y +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HRTIMER=m +CONFIG_SND_HWDEP=m +CONFIG_SND_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_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_ISA=y +CONFIG_SND_ISIGHT=m +CONFIG_SND_JACK=y +CONFIG_SND_JAZZ16=m +CONFIG_SND_KCTL_JACK=y +CONFIG_SND_KORG1212=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_LOLA=m +CONFIG_SND_LX6464ES=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MIA=m +CONFIG_SND_MIRO=m +CONFIG_SND_MIXART=m +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_MONA=m +CONFIG_SND_MPU401=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_MSND_CLASSIC=m +CONFIG_SND_MSND_PINNACLE=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_NM256=m +CONFIG_SND_OMAP_SOC_IGEP0020=m +CONFIG_SND_OMAP_SOC_OMAP3EVM=m +CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m +CONFIG_SND_OMAP_SOC_OVERO=m +CONFIG_SND_OMAP_SOC_RX51=m +CONFIG_SND_OMAP_SOC_SDP3430=m +CONFIG_SND_OMAP_SOC_ZOOM2=m +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL4_LIB=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_OXYGEN=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_PCI=y +CONFIG_SND_PCMCIA=y +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCSP=m +CONFIG_SND_PCXHR=m +CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_POWERMAC=m +CONFIG_SND_POWERMAC_AUTO_DRC=y +CONFIG_SND_PPC=y +CONFIG_SND_PS3=m +CONFIG_SND_PS3_DEFAULT_START_DELAY=2000 +CONFIG_SND_RAWMIDI=m +CONFIG_SND_RAWMIDI_SEQ=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SB16=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SB16_DSP=m +CONFIG_SND_SB8=m +CONFIG_SND_SB8_DSP=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SC6000=m +CONFIG_SND_SEQUENCER=m +# CONFIG_SND_SEQUENCER_OSS is not set +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_SIS7019=m +CONFIG_SND_SOC_88PM860X=m +CONFIG_SND_SOC_AD1836=m +CONFIG_SND_SOC_AD193X=m +CONFIG_SND_SOC_AD73311=m +CONFIG_SND_SOC_ADAU1373=m +CONFIG_SND_SOC_ADAV80X=m +CONFIG_SND_SOC_ADS117X=m +CONFIG_SND_SOC_AK4104=m +CONFIG_SND_SOC_AK4535=m +CONFIG_SND_SOC_AK4641=m +CONFIG_SND_SOC_AK4642=m +CONFIG_SND_SOC_AK4671=m +CONFIG_SND_SOC_ALC5623=m +CONFIG_SND_SOC_ALL_CODECS=m +# CONFIG_SND_SOC_CACHE_LZO is not set +CONFIG_SND_SOC_CS4270=m +CONFIG_SND_SOC_CS4271=m +CONFIG_SND_SOC_CS42L51=m +CONFIG_SND_SOC_CX20442=m +CONFIG_SND_SOC_DA7210=m +CONFIG_SND_SOC_DFBMCS320=m +CONFIG_SND_SOC_JZ4740_CODEC=m +CONFIG_SND_SOC_L3=m +CONFIG_SND_SOC_LM4857=m +CONFIG_SND_SOC_MAX98088=m +CONFIG_SND_SOC_MAX98095=m +CONFIG_SND_SOC_MAX9850=m +CONFIG_SND_SOC_MAX9877=m +CONFIG_SND_SOC_PCM3008=m +CONFIG_SND_SOC_RT5631=m +CONFIG_SND_SOC_SGTL5000=m +CONFIG_SND_SOC_SPDIF=m +CONFIG_SND_SOC_SSM2602=m +CONFIG_SND_SOC_STA32X=m +CONFIG_SND_SOC_TLV320AIC23=m +CONFIG_SND_SOC_TLV320AIC26=m +CONFIG_SND_SOC_TLV320AIC32X4=m +CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TLV320DAC33=m +CONFIG_SND_SOC_TPA6130A2=m +CONFIG_SND_SOC_TWL6040=m +CONFIG_SND_SOC_UDA134X=m +CONFIG_SND_SOC_UDA1380=m +CONFIG_SND_SOC_WL1273=m +CONFIG_SND_SOC_WM1250_EV1=m +CONFIG_SND_SOC_WM2000=m +CONFIG_SND_SOC_WM5100=m +CONFIG_SND_SOC_WM8350=m +CONFIG_SND_SOC_WM8400=m +CONFIG_SND_SOC_WM8510=m +CONFIG_SND_SOC_WM8523=m +CONFIG_SND_SOC_WM8580=m +CONFIG_SND_SOC_WM8711=m +CONFIG_SND_SOC_WM8727=m +CONFIG_SND_SOC_WM8728=m +CONFIG_SND_SOC_WM8731=m +CONFIG_SND_SOC_WM8737=m +CONFIG_SND_SOC_WM8741=m +CONFIG_SND_SOC_WM8750=m +CONFIG_SND_SOC_WM8753=m +CONFIG_SND_SOC_WM8770=m +CONFIG_SND_SOC_WM8776=m +CONFIG_SND_SOC_WM8782=m +CONFIG_SND_SOC_WM8804=m +CONFIG_SND_SOC_WM8900=m +CONFIG_SND_SOC_WM8903=m +CONFIG_SND_SOC_WM8904=m +CONFIG_SND_SOC_WM8940=m +CONFIG_SND_SOC_WM8955=m +CONFIG_SND_SOC_WM8960=m +CONFIG_SND_SOC_WM8961=m +CONFIG_SND_SOC_WM8962=m +CONFIG_SND_SOC_WM8971=m +CONFIG_SND_SOC_WM8974=m +CONFIG_SND_SOC_WM8978=m +CONFIG_SND_SOC_WM8983=m +CONFIG_SND_SOC_WM8985=m +CONFIG_SND_SOC_WM8988=m +CONFIG_SND_SOC_WM8990=m +CONFIG_SND_SOC_WM8991=m +CONFIG_SND_SOC_WM8993=m +CONFIG_SND_SOC_WM8994=m +CONFIG_SND_SOC_WM8995=m +CONFIG_SND_SOC_WM8996=m +CONFIG_SND_SOC_WM9081=m +CONFIG_SND_SOC_WM9090=m +CONFIG_SND_SOC_WM_HUBS=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_SPI=y +CONFIG_SND_SSCAPE=m +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_TEA575X=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_USB=y +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_US122L=m +CONFIG_SND_USB_USX2Y=m +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VMASTER=y +CONFIG_SND_VX222=m +CONFIG_SND_VXPOCKET=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_WAVEFRONT=m +CONFIG_SND_WSS_LIB=m +CONFIG_SND_YMFPCI=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_SOC_OMAP3430=y +CONFIG_SOC_OMAPTI816X=y +CONFIG_SOFT_WATCHDOG=m +# CONFIG_SOLO6X10 is not set +CONFIG_SONYPI=m +CONFIG_SONYPI_COMPAT=y +CONFIG_SONY_LAPTOP=m +CONFIG_SOUND_OSS_CORE=y +# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set +# CONFIG_SOUND_PRIME is not set +CONFIG_SP5100_TCO=m +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_STATIC=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +# CONFIG_SPARSE_RCU_POINTER is not set +CONFIG_SPEAKUP=m +CONFIG_SPEAKUP_SYNTH_ACNTPC=m +CONFIG_SPEAKUP_SYNTH_ACNTSA=m +CONFIG_SPEAKUP_SYNTH_APOLLO=m +CONFIG_SPEAKUP_SYNTH_AUDPTR=m +CONFIG_SPEAKUP_SYNTH_BNS=m +CONFIG_SPEAKUP_SYNTH_DECEXT=m +CONFIG_SPEAKUP_SYNTH_DECPC=m +CONFIG_SPEAKUP_SYNTH_DECTLK=m +CONFIG_SPEAKUP_SYNTH_DTLK=m +CONFIG_SPEAKUP_SYNTH_DUMMY=m +CONFIG_SPEAKUP_SYNTH_KEYPC=m +CONFIG_SPEAKUP_SYNTH_LTLK=m +CONFIG_SPEAKUP_SYNTH_SOFT=m +CONFIG_SPEAKUP_SYNTH_SPKOUT=m +CONFIG_SPEAKUP_SYNTH_TXPRT=m +CONFIG_SPI=y +CONFIG_SPI_ALTERA=m +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_DW_MID_DMA=y +# CONFIG_SPI_DW_MMIO is not set +CONFIG_SPI_DW_PCI=m +CONFIG_SPI_GPIO=m +CONFIG_SPI_LM70_LLP=m +CONFIG_SPI_MASTER=y +CONFIG_SPI_OC_TINY=m +CONFIG_SPI_OMAP24XX=m +CONFIG_SPI_PXA2XX=m +CONFIG_SPI_TLE62X0=m +CONFIG_SPI_TOPCLIFF_PCH=m +# CONFIG_SPI_XILINX is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SPU_BASE=y +CONFIG_SPU_FS=m +CONFIG_SPU_FS_64K_LS=y +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_SQUASHFS_ZLIB=y +CONFIG_SR_REPORT_TIME_LIMIT=100 +CONFIG_SSB=m +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_BLOCKIO=y +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +CONFIG_SSB_SDIOHOST_POSSIBLE=y +# CONFIG_SSB_SILENT is not set +CONFIG_SSB_SPROM=y +CONFIG_SSFDC=m +CONFIG_STACKTRACE=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_STAGING=y +CONFIG_STALDRV=y +# CONFIG_STMMAC_CHAINED is not set +# CONFIG_STMMAC_DA is not set +# CONFIG_STMMAC_DEBUG_FS is not set +CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_RING=y +CONFIG_STOP_MACHINE=y +CONFIG_STP=m +CONFIG_STRICT_DEVMEM=y +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_STUB_POULSBO is not set +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_GSS=m +CONFIG_SUNRPC_XPRT_RDMA=m +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_SWAP=y +CONFIG_SWIOTLB=y +CONFIG_SWIOTLB_XEN=y +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_CS=m +CONFIG_SYNCLINK_GT=m +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSFS=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_SYSV_FS=m +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_HANWANG=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TARGET_CORE=m +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_TASK_SIZE=0xc0000000 +CONFIG_TASK_XACCT=y +CONFIG_TAU=y +# CONFIG_TAU_AVERAGE is not set +# CONFIG_TAU_INT is not set +CONFIG_TC1100_WMI=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TCG_NSC=m +CONFIG_TCIC=m +CONFIG_TCM_FC=m +CONFIG_TCM_FILEIO=m +CONFIG_TCM_IBLOCK=m +CONFIG_TCM_PSCSI=m +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +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_SCALABLE=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TEHUTI=m +CONFIG_TEKRAM_DONGLE=m +CONFIG_TELCLOCK=m +CONFIG_TEST_KSTRTOX=m +# CONFIG_TEST_LIST_SORT is not set +CONFIG_TEST_POWER=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=y +CONFIG_THERM_ADT746X=y +CONFIG_THERM_PM72=m +CONFIG_THERM_WINDTUNNEL=m +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_THRUSTMASTER_FF=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_TICK_ONESHOT=y +# CONFIG_TIDSPBRIDGE_BACKTRACE is not set +# CONFIG_TIDSPBRIDGE_CACHE_LINE_CHECK is not set +# CONFIG_TIDSPBRIDGE_DEBUG is not set +CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE=0x600000 +# CONFIG_TIDSPBRIDGE_NTFY_PWRERR is not set +CONFIG_TIDSPBRIDGE_RECOVERY=y +# CONFIG_TIDSPBRIDGE_WDT3 is not set +CONFIG_TIFM_7XX1=m +CONFIG_TIFM_CORE=m +CONFIG_TIGON3=m +CONFIG_TIMB_DMA=m +CONFIG_TIMERFD=y +CONFIG_TIMER_STATS=y +CONFIG_TINY_RCU=y +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_TI_DAC7512=m +CONFIG_TI_DAVINCI_CPDMA=m +# CONFIG_TI_DAVINCI_EMAC is not set +CONFIG_TI_DAVINCI_MDIO=m +CONFIG_TI_ST=m +CONFIG_TLAN=m +CONFIG_TMD_HERMES=m +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_TOIM3232_DONGLE=m +CONFIG_TOPSTAR_LAPTOP=m +# CONFIG_TOSHIBA is not set +CONFIG_TOSHIBA_BT_RFKILL=m +CONFIG_TOSHIBA_FIR=m +CONFIG_TOUCHSCREEN_88PM860X=m +CONFIG_TOUCHSCREEN_AD7877=m +CONFIG_TOUCHSCREEN_AD7879=m +CONFIG_TOUCHSCREEN_AD7879_I2C=m +CONFIG_TOUCHSCREEN_AD7879_SPI=m +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_ATMEL_MXT=m +CONFIG_TOUCHSCREEN_BU21013=m +CONFIG_TOUCHSCREEN_CY8CTMG110=m +CONFIG_TOUCHSCREEN_DA9034=m +CONFIG_TOUCHSCREEN_DYNAPRO=m +CONFIG_TOUCHSCREEN_EETI=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_HAMPSHIRE=m +CONFIG_TOUCHSCREEN_HTCPEN=m +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_MAX11801=m +CONFIG_TOUCHSCREEN_MC13783=m +CONFIG_TOUCHSCREEN_MCS5000=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_PCAP=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_ST1232=m +CONFIG_TOUCHSCREEN_STMPE=m +CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m +CONFIG_TOUCHSCREEN_TOUCHIT213=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_TPS6507X=m +CONFIG_TOUCHSCREEN_TSC2005=m +CONFIG_TOUCHSCREEN_TSC2007=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_EGALAX=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_W90X900=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_WM831X=m +CONFIG_TOUCHSCREEN_WM9705=y +CONFIG_TOUCHSCREEN_WM9712=y +CONFIG_TOUCHSCREEN_WM9713=y +CONFIG_TOUCHSCREEN_WM97XX=m +CONFIG_TPS6105X=m +CONFIG_TPS6507X=m +CONFIG_TR=y +CONFIG_TRACEPOINTS=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_ROUTER=m +CONFIG_TRACE_SINK=m +CONFIG_TRACING=y +CONFIG_TRACING_SUPPORT=y +CONFIG_TRANSPARENT_HUGEPAGE=y +# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_TREE_PREEMPT_RCU=y +CONFIG_TREE_RCU=y +# CONFIG_TREE_RCU_TRACE is not set +CONFIG_TRUSTED_KEYS=y +CONFIG_TSL2583=m +CONFIG_TTPCI_EEPROM=m +CONFIG_TTY_PRINTK=y +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_CELL is not set +CONFIG_TWL4030_MADC=m +CONFIG_TWL4030_WATCHDOG=m +CONFIG_TWL6030_PWM=m +CONFIG_TWL6030_USB=m +CONFIG_TWL6040_CORE=y +CONFIG_TYPHOON=m +CONFIG_U3_DART=y +# CONFIG_UACCESS_WITH_MEMCPY is not set +CONFIG_UBIFS_FS=m +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +# CONFIG_UBIFS_FS_DEBUG is not set +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_XATTR=y +CONFIG_UBIFS_FS_ZLIB=y +CONFIG_UCB1400_CORE=m +CONFIG_UDBG_RTAS_CONSOLE=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y +CONFIG_UEVENT_HELPER_PATH="" +# CONFIG_UFS_DEBUG is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +CONFIG_UID16=y +CONFIG_UIO=m +CONFIG_UIO_AEC=m +CONFIG_UIO_CIF=m +CONFIG_UIO_NETX=m +CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SERCOS3=m +CONFIG_ULI526X=m +CONFIG_ULTRA=m +CONFIG_ULTRA32=m +CONFIG_ULTRAMCA=m +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +CONFIG_USB=y +CONFIG_USBIP_CORE=m +# CONFIG_USBIP_DEBUG is not set +CONFIG_USBIP_HOST=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBPCWATCHDOG=m +CONFIG_USB_ACM=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AMD5536UDC=m +CONFIG_USB_AN2720=y +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_ATM=m +CONFIG_USB_AUDIO=m +CONFIG_USB_BELKIN=y +CONFIG_USB_C67X00_HCD=m +CONFIG_USB_CATC=m +CONFIG_USB_CDC_COMPOSITE=m +CONFIG_USB_CDC_PHONET=m +CONFIG_USB_CI13XXX_PCI=m +CONFIG_USB_COMMON=y +CONFIG_USB_CXACRU=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +# CONFIG_USB_DEBUG is not set +# CONFIG_USB_DEVICEFS is not set +# CONFIG_USB_DEVICE_CLASS is not set +CONFIG_USB_DSBR=m +# CONFIG_USB_DUMMY_HCD is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set +CONFIG_USB_EG20T=m +CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y +CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_OMAP=y +CONFIG_USB_EHCI_HCD_PPC_OF=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_ENESTORAGE=m +CONFIG_USB_EPSON2888=y +CONFIG_USB_ETH=m +# CONFIG_USB_ETH_EEM is not set +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_EZUSB=y +# CONFIG_USB_FILE_STORAGE is not set +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_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_DUALSPEED=y +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 +CONFIG_USB_GADGET_SUPERSPEED=y +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GL860=m +CONFIG_USB_GOKU=m +CONFIG_USB_GSPCA=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=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_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_G_ACM_MS=m +CONFIG_USB_G_DBGP=m +# CONFIG_USB_G_DBGP_PRINTK is not set +CONFIG_USB_G_DBGP_SERIAL=y +CONFIG_USB_G_HID=m +CONFIG_USB_G_MULTI_CDC=y +CONFIG_USB_G_MULTI_RNDIS=y +CONFIG_USB_G_NCM=m +CONFIG_USB_G_NOKIA=m +CONFIG_USB_G_PRINTER=m +CONFIG_USB_G_SERIAL=m +CONFIG_USB_G_WEBCAM=m +CONFIG_USB_HID=m +CONFIG_USB_HIDDEV=y +CONFIG_USB_HSO=m +CONFIG_USB_HWA_HCD=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_IPHETH=m +CONFIG_USB_IRDA=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1760_HCD=m +CONFIG_USB_KAWETH=m +CONFIG_USB_KBD=m +CONFIG_USB_LANGWELL=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LIBUSUAL=y +CONFIG_USB_M5602=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MIDI_GADGET=m +CONFIG_USB_MOUSE=m +CONFIG_USB_MR800=m +# CONFIG_USB_MUSB_AM35X is not set +CONFIG_USB_NET2272_DMA=y +CONFIG_USB_NET2280=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_GL620A=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_RNDIS_HOST=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_OMAP3=y +CONFIG_USB_OHCI_HCD_PCI=y +CONFIG_USB_OHCI_HCD_PPC_OF=y +CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_OMAP is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_OTG_UTILS=y +# CONFIG_USB_OTG_WHITELIST is not set +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PRINTER=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_USB_RENESAS_USBHS=m +CONFIG_USB_RENESAS_USBHS_HCD=m +CONFIG_USB_RIO500=m +CONFIG_USB_RTL8150=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_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_HP4X=m +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_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7715_PARPORT=y +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=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_QUALCOMM=m +CONFIG_USB_SERIAL_QUATECH2=m +CONFIG_USB_SERIAL_QUATECH_USB2=m +CONFIG_USB_SERIAL_SAFE=m +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_HCD_ISO=y +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_DATAFAB=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STV06XX=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_SUSPEND=y +CONFIG_USB_SWITCH_FSA9480=m +CONFIG_USB_TEST=m +# CONFIG_USB_TI_CPPI_DMA is not set +CONFIG_USB_TMC=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_U132_HCD=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_ULPI=y +CONFIG_USB_USBNET=m +CONFIG_USB_USS720=m +# CONFIG_USB_UX500_DMA is not set +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_VL600=m +CONFIG_USB_WDM=m +CONFIG_USB_WHCI_HCD=m +CONFIG_USB_WUSB=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set +CONFIG_USB_XHCI_HCD=y +# CONFIG_USB_XHCI_HCD_DEBUGGING is not set +CONFIG_USB_XUSBATM=m +CONFIG_USB_YUREX=m +CONFIG_USB_ZD1201=m +CONFIG_USB_ZERO=m +# CONFIG_USB_ZERO_HNPTEST is not set +CONFIG_USB_ZR364XX=m +CONFIG_USER_NS=y +CONFIG_USER_RETURN_NOTIFIER=y +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_USE_OF=y +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_UTS_NS=y +CONFIG_UWB=m +CONFIG_UWB_HWA=m +CONFIG_UWB_I1480U=m +CONFIG_UWB_WHCI=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_V4L_USB_DRIVERS=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_VETH=m +CONFIG_VFP=y +CONFIG_VFPv3=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VGA_ARB=y +CONFIG_VGA_CONSOLE=y +CONFIG_VGA_SWITCHEROO=y +CONFIG_VHOST_NET=m +CONFIG_VIA_FIR=m +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_VIA_VELOCITY=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_ADV7180=m +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_AK881X=m +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_CQCAM=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_MPEG=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DM6446_CCDC=m +CONFIG_VIDEO_DT3155=m +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=y +CONFIG_VIDEO_FB_IVTV=m +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_GO7007=m +CONFIG_VIDEO_GO7007_OV7640=m +CONFIG_VIDEO_GO7007_SAA7113=m +CONFIG_VIDEO_GO7007_SAA7115=m +CONFIG_VIDEO_GO7007_SONY_TUNER=m +CONFIG_VIDEO_GO7007_TW2804=m +CONFIG_VIDEO_GO7007_TW9903=m +CONFIG_VIDEO_GO7007_UDA1342=m +CONFIG_VIDEO_GO7007_USB=m +CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_IR_I2C=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_MEDIA=m +CONFIG_VIDEO_MEM2MEM_TESTDEV=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_MT9V011=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_OMAP2_VOUT=m +CONFIG_VIDEO_OMAP2_VOUT_VRFB=y +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_PMS=m +CONFIG_VIDEO_PVRUSB2=m +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_PVRUSB2_DVB=y +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_SAA6588=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_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_SH_MOBILE_CEU=m +CONFIG_VIDEO_SH_MOBILE_CSI2=m +CONFIG_VIDEO_SR030PC30=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_TIMBERDALE=m +CONFIG_VIDEO_TLG2300=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_TVP5150=m +CONFIG_VIDEO_TVP7002=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_VIA_CAMERA=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_VP27SMPX=m +CONFIG_VIDEO_VPFE_CAPTURE=m +CONFIG_VIDEO_VPSS_SYSTEM=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_ZR36060=m +# CONFIG_VIRQ_DEBUG is not set +CONFIG_VIRTIO_CONSOLE=m +CONFIG_VIRTUALIZATION=y +CONFIG_VIRT_CPU_ACCOUNTING=y +CONFIG_VIRT_TO_BUS=y +CONFIG_VITESSE_PHY=y +CONFIG_VLAN_8021Q=m +CONFIG_VLSI_FIR=m +CONFIG_VM86=y +CONFIG_VME_CA91CX42=m +CONFIG_VME_TSI148=m +CONFIG_VME_USER=m +CONFIG_VMIVME_7805=m +# CONFIG_VMSPLIT_1G is not set +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_2G_OPT is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_3G_OPT is not set +CONFIG_VMWARE_BALLOON=m +CONFIG_VMWARE_PVSCSI=m +CONFIG_VMXNET3=m +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VORTEX=m +CONFIG_VSX=y +CONFIG_VT=y +# CONFIG_VT6655 is not set +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_VXFS_FS=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_W1=m +CONFIG_W1_CON=y +CONFIG_W1_MASTER_DS1WM=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_GPIO=m +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2423=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_THERM=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83697UG_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_WAFER_WDT=m +CONFIG_WANXL=m +CONFIG_WAN_ROUTER=m +CONFIG_WAN_ROUTER_DRIVERS=m +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_RTAS=m +CONFIG_WD80x3=m +CONFIG_WDT=m +CONFIG_WDTPCI=m +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PRIV=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WIMAX=m +CONFIG_WIMAX_DEBUG_LEVEL=8 +CONFIG_WIMAX_I2400M=m +CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 +CONFIG_WIMAX_IWMC3200_SDIO=y +CONFIG_WINBOND_840=m +CONFIG_WINBOND_FIR=m +CONFIG_WINDFARM=m +CONFIG_WINDFARM_PM112=m +CONFIG_WINDFARM_PM121=m +CONFIG_WINDFARM_PM81=m +CONFIG_WINDFARM_PM91=m +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL1251_SPI=m +CONFIG_WL12XX=m +CONFIG_WL12XX_MENU=m +CONFIG_WL12XX_PLATFORM_DATA=y +CONFIG_WL12XX_SDIO=m +# CONFIG_WL12XX_SDIO_TEST is not set +CONFIG_WL12XX_SPI=m +CONFIG_WLAGS49_H2=m +CONFIG_WLAGS49_H25=m +CONFIG_WLAN=y +CONFIG_WM831X_BACKUP=m +CONFIG_WM831X_POWER=m +CONFIG_WM831X_WATCHDOG=m +CONFIG_WM8350_POWER=m +CONFIG_X25=m +CONFIG_X86=y +CONFIG_X86_32_IRIS=m +# CONFIG_X86_32_NON_STANDARD is not set +CONFIG_X86_32_SMP=y +CONFIG_X86_64_ACPI_NUMA=y +CONFIG_X86_64_SMP=y +CONFIG_X86_ACPI_CPUFREQ=y +# CONFIG_X86_ANCIENT_MCE is not set +CONFIG_X86_APM_BOOT=y +# CONFIG_X86_BIGSMP is not set +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +CONFIG_X86_BSWAP=y +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_CMOV=y +CONFIG_X86_CMPXCHG=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CPUFREQ_NFORCE2=y +CONFIG_X86_CPUID=m +CONFIG_X86_DEBUGCTLMSR=y +# CONFIG_X86_DECODER_SELFTEST is not set +CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_E_POWERSAVER is not set +CONFIG_X86_GENERIC=y +CONFIG_X86_GX_SUSPMOD=y +CONFIG_X86_HT=y +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_INVLPG=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_LONGHAUL=y +CONFIG_X86_LONGRUN=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_AMD=y +CONFIG_X86_MCE_INJECT=m +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_THRESHOLD=y +CONFIG_X86_MCE_XEON75XX=m +CONFIG_X86_MPPARSE=y +# CONFIG_X86_MRST is not set +CONFIG_X86_MSR=m +CONFIG_X86_NEED_RELOCS=y +CONFIG_X86_NUMACHIP=y +CONFIG_X86_P4_CLOCKMOD=m +CONFIG_X86_PAE=y +CONFIG_X86_PAT=y +CONFIG_X86_PCC_CPUFREQ=m +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_X86_PM_TIMER=y +CONFIG_X86_POPAD_OK=y +CONFIG_X86_POWERNOW_K6=y +CONFIG_X86_POWERNOW_K7=y +CONFIG_X86_POWERNOW_K7_ACPI=y +CONFIG_X86_POWERNOW_K8=y +CONFIG_X86_PPRO_FENCE=y +# CONFIG_X86_PTDUMP is not set +# CONFIG_X86_RDC321X is not set +CONFIG_X86_REBOOTFIXUPS=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_RESERVE_LOW=64 +CONFIG_X86_SPEEDSTEP_CENTRINO=y +CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y +CONFIG_X86_SPEEDSTEP_ICH=y +CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y +CONFIG_X86_SPEEDSTEP_SMI=y +CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +CONFIG_X86_THERMAL_VECTOR=y +CONFIG_X86_TSC=y +CONFIG_X86_USE_PPRO_CHECKSUM=y +# CONFIG_X86_UV is not set +# CONFIG_X86_VERBOSE_BOOTUP is not set +# CONFIG_X86_VSMP is not set +CONFIG_X86_WANT_INTEL_MID=y +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_XADD=y +CONFIG_XEN=y +CONFIG_XENFS=m +CONFIG_XEN_ACPI_PROCESSOR=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_FBDEV_FRONTEND=m +CONFIG_XEN_GNTDEV=m +CONFIG_XEN_GRANT_DEV_ALLOC=m +CONFIG_XEN_MAX_DOMAIN_MEMORY=128 +CONFIG_XEN_NETDEV_BACKEND=m +CONFIG_XEN_NETDEV_FRONTEND=y +CONFIG_XEN_PCIDEV_BACKEND=m +CONFIG_XEN_PCIDEV_FRONTEND=m +CONFIG_XEN_PVHVM=y +CONFIG_XEN_SAVE_RESTORE=y +CONFIG_XEN_SCRUB_PAGES=y +CONFIG_XEN_SELFBALLOONING=y +CONFIG_XEN_SYS_HYPERVISOR=y +CONFIG_XEN_TMEM=y +CONFIG_XEN_WDT=m +CONFIG_XEN_XENBUS_FRONTEND=y +CONFIG_XFRM=y +CONFIG_XFRM_IPCOMP=m +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_USER=m +# CONFIG_XFS_DEBUG is not set +CONFIG_XFS_FS=m +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_QUOTA=y +CONFIG_XILINX_EMACLITE=m +CONFIG_XILINX_LL_TEMAC=m +# CONFIG_XIP_KERNEL is not set +# CONFIG_XMON is not set +CONFIG_XO15_EBOOK=m +CONFIG_XO1_RFKILL=m +CONFIG_XOR_BLOCKS=m +CONFIG_XPS=y +CONFIG_XPS_USB_HCD_XILINX=y +CONFIG_XVMALLOC=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_BCJ=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_TEST=m +CONFIG_XZ_DEC_X86=y +CONFIG_YAM=m +CONFIG_YELLOWFIN=m +CONFIG_YENTA=m +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZCACHE=m +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_ZEROPLUS_FF=y +CONFIG_ZISOFS=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZNET=m +CONFIG_ZONE_DMA=y +CONFIG_ZRAM=m +# CONFIG_ZRAM_DEBUG is not set --- linux-3.2.0.orig/debian.master/config/enforce +++ linux-3.2.0/debian.master/config/enforce @@ -0,0 +1,111 @@ +# +# SECURITY items +# +# Ensure this option is enabled. +value CONFIG_COMPAT_BRK n +value CONFIG_DEVKMEM n +value CONFIG_LSM_MMAP_MIN_ADDR 0 +value CONFIG_SECURITY y +!exists CONFIG_SECURITY_FILE_CAPABILITIES | value CONFIG_SECURITY_FILE_CAPABILITIES y +value CONFIG_SECURITY_SELINUX y +value CONFIG_SECURITY_SMACK y +value CONFIG_SECURITY_YAMA y +value CONFIG_SYN_COOKIES y +value CONFIG_DEFAULT_SECURITY_APPARMOR y +# For architectures which support this option ensure it is enabled. +!exists CONFIG_SECCOMP | value CONFIG_SECCOMP y +!exists CONFIG_HAVE_ARCH_SECCOMP_FILTER | value CONFIG_SECCOMP_FILTER y +!exists CONFIG_CC_STACKPROTECTOR | value CONFIG_CC_STACKPROTECTOR y +!exists CONFIG_DEBUG_RODATA | value CONFIG_DEBUG_RODATA y +!exists CONFIG_DEBUG_SET_MODULE_RONX | value CONFIG_DEBUG_SET_MODULE_RONX y +!exists CONFIG_STRICT_DEVMEM | value CONFIG_STRICT_DEVMEM y +# For architectures which support this option ensure it is disabled. +!exists CONFIG_COMPAT_VDSO | value CONFIG_COMPAT_VDSO n +!exists CONFIG_ACPI_CUSTOM_METHOD | value CONFIG_ACPI_CUSTOM_METHOD n +# Default to 32768 on ARM, 65536 for everything else. +(arch armel armhf & value CONFIG_DEFAULT_MMAP_MIN_ADDR 32768) | \ + (!arch armel armhf & value CONFIG_DEFAULT_MMAP_MIN_ADDR 65536) + +# CONFIG_USB_DEVICE_FS breaks udev USB firmware loading and is deprecated +# ensure it is disabled. +value CONFIG_USB_DEVICEFS n + +# upstart requires DEVTMPFS be enabled and mounted by default. +value CONFIG_DEVTMPFS y +value CONFIG_DEVTMPFS_MOUNT y + +# some /dev nodes require POSIX ACLs, like /dev/dsp +value CONFIG_TMPFS_POSIX_ACL y + +# Ramdisk size should be a minimum of 64M +value CONFIG_BLK_DEV_RAM_SIZE 65536 + +# LVM requires dm_mod built in to activate correctly (LP: #560717) +value CONFIG_BLK_DEV_DM y + +# sysfs: ensure all DEPRECATED items are off +!exists CONFIG_SYSFS_DEPRECATED_V2 | value CONFIG_SYSFS_DEPRECATED_V2 n +!exists CONFIG_SYSFS_DEPRECATED | value CONFIG_SYSFS_DEPRECATED n + +# automatically add local version will cause packaging failure +value CONFIG_LOCALVERSION_AUTO n + +# provide framebuffer console form the start +# UbuntuSpec:foundations-m-grub2-boot-framebuffer +value CONFIG_FRAMEBUFFER_CONSOLE y + +# GRUB changes will rely on built in vesafb on x86, +# UbuntuSpec:foundations-m-grub2-boot-framebuffer +#(( arch i386 | arch amd64 ) & value CONFIG_FB_VESA y) | \ +# value CONFIG_FB_VESA m | !exists CONFIG_FB_VESA +value CONFIG_FB_VESA m | !exists CONFIG_FB_VESA + +# Build in uinput module so that it's always available (LP: 584812) +value CONFIG_INPUT_UINPUT y + +# upstart relies on getting all of the kernel arguments +value CONFIG_INIT_PASS_ALL_PARAMS y + +# Enabling CONFIG_IMA is vastly expensive, ensure it is off +value CONFIG_IMA n + +# Ensure CONFIG_INTEL_IDLE is turned off for -virtual. +!exists CONFIG_INTEL_IDLE | \ + (flavour virtual & value CONFIG_INTEL_IDLE n) | \ + (!flavour virtual & value CONFIG_INTEL_IDLE y) + +# Ensure CONFIG_IPV6 is y, if this is a module we get a module load for +# every ipv6 packet, bad. +value CONFIG_IPV6 y + +# Ensure ECRYPT_FS is y as it cannot be autoloaded and it has complex +# dependancies which can pull it =m at a whim. +value CONFIG_ECRYPT_FS y + +# Ensure CONFIG_EFI_VARS is y as debian-installer relies on having +# access to efivars when installing in EFI mode. See LP:837332 +value CONFIG_EFI_VARS y | !exists CONFIG_EFI_VARS + +# Ensure CONFIG_FAT_FS is y for arm, needed to ensure we able to replace +# a kernel with the same version. +(arch armel armhf & value CONFIG_FAT_FS y) | \ + (!arch armel armhf & value CONFIG_FAT_FS m) + +# Ensure CONFIG_GPIO_TWL4030 is y for arm, LP:921934 +(arch armel armhf & value CONFIG_GPIO_TWL4030 y) | \ + (!arch armel armhf & (value CONFIG_GPIO_TWL4030 m | !exists CONFIG_GPIO_TWL4030)) + +# Ensure CONFIG_THERM_ADT746X is y for powerpc and powerpc-smp flavours. +# See LP:923094 +!exists CONFIG_THERM_ADT746X | \ + (flavour powerpc powerpc-smp & value CONFIG_THERM_ADT746X y) + +# Ensure CONFIG_NVRAM is y for powerpc and powerpc-smp, LP:942193 +(flavour powerpc powerpc-smp & value CONFIG_NVRAM y) | \ + (value CONFIG_NVRAM m | !exists CONFIG_NVRAM) + +# Ensure CONFIG_STUB_POULSBO is disabled if CONFIG_DRM_PSB is enabled +# See LP:899244 +(!exists CONFIG_DRM_PSB | value CONFIG_DRM_PSB n) | \ +((value CONFIG_DRM_PSB y | value CONFIG_DRM_PSB m) & (value CONFIG_STUB_POULSBO n | !exists CONFIG_STUB_POULSBO)) + --- linux-3.2.0.orig/debian.master/config/armhf/config.flavour.omap +++ linux-3.2.0/debian.master/config/armhf/config.flavour.omap @@ -0,0 +1,239 @@ +# +# Config options for config.flavour.omap automatically generated by splitconfig.pl +# +CONFIG_ABX500_CORE=y +CONFIG_ACORN_PARTITION=y +CONFIG_AMBA_PL08X=y +CONFIG_AMIGA_PARTITION=y +# CONFIG_ARCH_HIGHBANK is not set +CONFIG_ARCH_OMAP=y +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_743622=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ASYNC_TX_DMA=y +CONFIG_ATARI_PARTITION=y +CONFIG_AUXDISPLAY=y +CONFIG_AX88796=m +CONFIG_BCH=y +CONFIG_BINARY_PRINTF=y +# CONFIG_BLK_DEV_XIP is not set +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_CAN_C_CAN_PLATFORM=m +CONFIG_CFG80211_REG_DEBUG=y +CONFIG_CLEANCACHE=y +CONFIG_CORDIC=m +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_CPU_IDLE=y +CONFIG_CRASH_DUMP=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_USER=y +CONFIG_DW_DMAC=m +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_EVM=y +CONFIG_EXPERT=y +CONFIG_EZX_PCAP=y +CONFIG_FANOTIFY=y +CONFIG_FB_ARMCLCD=m +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FONTS=y +CONFIG_FPE_NWFPE=y +CONFIG_FTRACE=y +CONFIG_GFS2_FS_LOCKING_DLM=y +CONFIG_GPIO_SYSFS=y +CONFIG_HAMRADIO=y +CONFIG_HIDRAW=y +# CONFIG_HIGHMEM is not set +CONFIG_HTC_EGPIO=y +CONFIG_HTC_I2CPLD=y +CONFIG_HVC_DCC=y +CONFIG_HZ=128 +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_SPIN_UNLOCK=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_SIT_6RD=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_PNP is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_DEBUG=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +CONFIG_ISDN=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_KARMA_PARTITION=y +CONFIG_KEXEC=y +CONFIG_KPROBES=y +CONFIG_LDM_PARTITION=y +CONFIG_LEGACY_PTY_COUNT=0 +CONFIG_LIS3L02DQ=m +CONFIG_LOGIG940_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIWHEELS_FF=y +CONFIG_MAC80211_DEBUG_MENU=y +CONFIG_MAC80211_MESH=y +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MFD_88PM860X=y +CONFIG_MFD_AAT2870_CORE=y +CONFIG_MFD_ASIC3=y +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MAX8997=y +CONFIG_MFD_MAX8998=y +CONFIG_MFD_STMPE=y +CONFIG_MFD_T7L66XB=y +CONFIG_MFD_TC3589X=y +CONFIG_MFD_TC6387XB=y +CONFIG_MFD_TC6393XB=y +CONFIG_MFD_TMIO=y +CONFIG_MFD_TPS6586X=y +CONFIG_MFD_TPS65910=y +CONFIG_MFD_TPS65912_I2C=y +CONFIG_MFD_TPS65912_SPI=y +CONFIG_MFD_WM831X_I2C=y +CONFIG_MFD_WM831X_SPI=y +CONFIG_MFD_WM8350_I2C=y +CONFIG_MFD_WM8994=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_DEVICES=y +CONFIG_MMC_ARMMMCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_PXAV2=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODVERSIONS=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MTD=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_BCH=y +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_NAND_IDS=y +CONFIG_MTD_OF_PARTS=y +# CONFIG_MUTEX_SPIN_ON_OWNER is not set +# CONFIG_NET_CALXEDA_XGMAC is not set +CONFIG_NET_DMA=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_OC_ETM=y +CONFIG_OSF_PARTITION=y +CONFIG_PARPORT_1284=y +CONFIG_PATA_ARASAN_CF=m +CONFIG_PERF_COUNTERS=y +CONFIG_PL330_DMA=m +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +CONFIG_PM_DEVFREQ=y +CONFIG_PM_RUNTIME=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MULTILINK=y +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PRINTK_TIME=y +CONFIG_PSTORE=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_R8712U=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMOOPS=m +CONFIG_RAW_DRIVER=m +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_RELAY=y +CONFIG_RFKILL_GPIO=m +CONFIG_RT2X00=m +CONFIG_RTC_DRV_PL031=m +CONFIG_RTC_DRV_TWL4030=y +CONFIG_RTL8187=m +CONFIG_RTL8192CU=m +CONFIG_RTS5139=m +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_MV=m +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_DH=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_SCAN_ASYNC=y +# CONFIG_SCSI_SPI_ATTRS is not set +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SECURITY_TOMOYO=y +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_AMBA_PL010=m +CONFIG_SERIAL_AMBA_PL011=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIO_AMBAKMI=m +CONFIG_SERIO_SERPORT=m +CONFIG_SGI_PARTITION=y +CONFIG_SND=y +CONFIG_SND_PCM=y +CONFIG_SND_SOC=y +CONFIG_SND_SOC_I2C_AND_SPI=y +CONFIG_SND_SOC_TWL4030=y +CONFIG_SND_TIMER=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=y +CONFIG_SPI_PL022=m +# CONFIG_SPI_SPIDEV is not set +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_XZ=y +CONFIG_STAGING_MEDIA=y +CONFIG_SUN_PARTITION=y +# CONFIG_SWP_EMULATE is not set +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_SYSV68_PARTITION=y +CONFIG_TASKSTATS=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_MD5SIG=y +CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m +CONFIG_TWL4030_POWER=y +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_UNUSED_SYMBOLS=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_FUSB300 is not set +CONFIG_USB_GPIO_VBUS=y +# CONFIG_USB_ISP1362_HCD is not set +CONFIG_USB_KC2190=y +CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_VERSION_SIGNATURE="" +CONFIG_VIRT_DRIVERS=y +CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VT6656 is not set +CONFIG_WAN=y +CONFIG_WATCHDOG=y +# CONFIG_WIMAX_I2400M_SDIO is not set +# CONFIG_WIMAX_I2400M_USB is not set +CONFIG_XFS_RT=y --- linux-3.2.0.orig/debian.master/config/armhf/config.common.armhf +++ linux-3.2.0/debian.master/config/armhf/config.common.armhf @@ -0,0 +1,156 @@ +# +# Config options for config.common.armhf automatically generated by splitconfig.pl +# +# CONFIG_APM_EMULATION is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATM_BR2684_IPFILTER=y +CONFIG_AX25_DAMA_SLAVE=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not set +CONFIG_CIFS_XATTR=y +# CONFIG_COMPACTION is not set +CONFIG_CPU_FREQ_STAT=y +CONFIG_DEBUG_INFO=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_DM9000=m +# CONFIG_DM_RAID45 is not set +CONFIG_DVB_FE_CUSTOMISE=y +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_EDAC_MM_EDAC=y +CONFIG_FAT_FS=y +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +# CONFIG_FB_DDC is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_SVGALIB is not set +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_TILEBLITTING is not set +# CONFIG_FIRMWARE_EDID is not set +CONFIG_FLATMEM_MANUAL=y +CONFIG_FORCE_MAX_ZONEORDER=11 +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FTGMAC100 is not set +# CONFIG_FTMAC100 is not set +# CONFIG_FUNCTION_TRACER is not set +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GPIO_TWL4030=y +CONFIG_HARDIRQS_SW_RESEND=y +# CONFIG_HARDLOCKUP_DETECTOR is not set +CONFIG_HAVE_AOUT=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_I2C_ALGOBIT=m +# CONFIG_I2C_HELPER_AUTO is not set +# CONFIG_I2C_PXA_PCI is not set +# CONFIG_IWMC3200TOP_DEBUGFS is not set +CONFIG_KGDB=y +# CONFIG_KSM is not set +CONFIG_KTIME_SCALAR=y +CONFIG_LATENCYTOP=y +# CONFIG_LIBERTAS_MESH is not set +CONFIG_LLC=m +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MMC_BLOCK=y +CONFIG_MMC_SDHCI=y +# CONFIG_MTD_SM_COMMON is not set +CONFIG_NEED_DMA_MAP_STATE=y +# CONFIG_NL80211_TESTMODE is not set +CONFIG_NOP_USB_XCEIV=y +CONFIG_NR_CPUS=4 +CONFIG_NVRAM=m +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PANEL_DVI=y +CONFIG_PANEL_GENERIC_DPI=y +# CONFIG_PCCARD is not set +# CONFIG_PCI_SYSCALL is not set +# CONFIG_PHYS_ADDR_T_64BIT is not set +# CONFIG_PM_DEBUG is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_R3964 is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=y +# CONFIG_RT2800USB_UNKNOWN is not set +CONFIG_RT2X00_LIB_DEBUGFS=y +CONFIG_RTC_DRV_CMOS=m +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_SCHEDSTATS=y +# CONFIG_SCHED_SMT is not set +# CONFIG_SCSI_OSD_INITIATOR is not set +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SM_FTL=m +# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_OMAP_SOC=y +CONFIG_SND_OMAP_SOC_MCBSP=y +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +CONFIG_SND_PCM_OSS=m +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SPARSE_IRQ is not set +CONFIG_SPI_DESIGNWARE=m +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_STACK_TRACER is not set +CONFIG_STANDALONE=y +CONFIG_STE10XP=y +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_TABLET_USB_WACOM=m +# CONFIG_TCG_TPM is not set +CONFIG_TIDSPBRIDGE=m +CONFIG_TPS65010=m +CONFIG_TRANZPORT=m +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_USB=y +# CONFIG_USB_ARCH_HAS_XHCI is not set +# CONFIG_USB_EHCI_TT_NEWSCHED is not set +# CONFIG_USB_ET61X251 is not set +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DWC3 is not set +CONFIG_USB_GADGET_MUSB_HDRC=y +CONFIG_USB_G_MULTI=m +CONFIG_USB_INVENTRA_DMA=y +# CONFIG_USB_M66592 is not set +CONFIG_USB_MON=m +CONFIG_USB_MUSB_OMAP2PLUS=y +# CONFIG_USB_MUSB_TUSB6010 is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OTG=y +# CONFIG_USB_R8A66597 is not set +CONFIG_USB_SI470X=m +# CONFIG_USB_SN9C102 is not set +CONFIG_VFAT_FS=y +# CONFIG_VGASTATE is not set +CONFIG_VIDEO_ADV7343=m +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_THS7303=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_TVP514X=m +# CONFIG_VIRTIO is not set +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_BLK is not set +# CONFIG_VIRTIO_MMIO is not set +# CONFIG_VIRTIO_NET is not set +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_RING is not set +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_W35UND=m +# CONFIG_WM8350_WATCHDOG is not set +# CONFIG_X25_ASY is not set +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZONE_DMA_FLAG=0 --- linux-3.2.0.orig/debian.master/config/armhf/config.flavour.highbank +++ linux-3.2.0/debian.master/config/armhf/config.flavour.highbank @@ -0,0 +1,239 @@ +# +# Config options for config.flavour.highbank automatically generated by splitconfig.pl +# +# CONFIG_ABX500_CORE is not set +# CONFIG_ACORN_PARTITION is not set +# CONFIG_AMBA_PL08X is not set +# CONFIG_AMIGA_PARTITION is not set +CONFIG_ARCH_HIGHBANK=y +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARM_ERRATA_430973 is not set +# CONFIG_ARM_ERRATA_743622 is not set +CONFIG_ARM_L1_CACHE_SHIFT=5 +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_AX88796 is not set +CONFIG_BCH=m +# CONFIG_BINARY_PRINTF is not set +CONFIG_BLK_DEV_XIP=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_BTRFS_FS_POSIX_ACL is not set +# CONFIG_CAN_C_CAN_PLATFORM is not set +# CONFIG_CFG80211_REG_DEBUG is not set +# CONFIG_CLEANCACHE is not set +# CONFIG_CORDIC is not set +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +# CONFIG_CPU_IDLE is not set +# CONFIG_CRASH_DUMP is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_DEBUG_USER is not set +# CONFIG_DW_DMAC is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_ENABLE_WARN_DEPRECATED=y +# CONFIG_EVM is not set +# CONFIG_EXPERT is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_FANOTIFY is not set +# CONFIG_FB_ARMCLCD is not set +CONFIG_FB_CFB_COPYAREA=m +CONFIG_FB_CFB_FILLRECT=m +CONFIG_FB_CFB_IMAGEBLIT=m +# CONFIG_FONTS is not set +# CONFIG_FPE_NWFPE is not set +# CONFIG_FTRACE is not set +# CONFIG_GFS2_FS_LOCKING_DLM is not set +# CONFIG_GPIO_SYSFS is not set +# CONFIG_HAMRADIO is not set +# CONFIG_HIDRAW is not set +CONFIG_HIGHMEM=y +# CONFIG_HTC_EGPIO is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_HVC_DCC is not set +CONFIG_HZ=100 +CONFIG_I2C_DESIGNWARE_CORE=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +# CONFIG_INLINE_READ_UNLOCK is not set +# CONFIG_INLINE_READ_UNLOCK_IRQ is not set +# CONFIG_INLINE_SPIN_UNLOCK is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set +# CONFIG_INLINE_WRITE_UNLOCK is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_SIT_6RD is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +# CONFIG_IP_MULTICAST is not set +CONFIG_IP_PNP=y +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_DEBUG is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_ULTRA is not set +# CONFIG_ISDN is not set +# CONFIG_JFS_SECURITY is not set +# CONFIG_JFS_STATISTICS is not set +# CONFIG_KARMA_PARTITION is not set +# CONFIG_KEXEC is not set +# CONFIG_KPROBES is not set +# CONFIG_LDM_PARTITION is not set +CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_LIS3L02DQ is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +# CONFIG_MAC80211_MESH is not set +# CONFIG_MAC_PARTITION is not set +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_MISC_DEVICES is not set +# CONFIG_MMC_ARMMMCI is not set +CONFIG_MMC_SDHCI_PLTFM=y +# CONFIG_MMC_SDHCI_PXAV2 is not set +# CONFIG_MMC_SDHCI_PXAV3 is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODVERSIONS is not set +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CHAR=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_OF_PARTS=m +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NET_CALXEDA_XGMAC=y +# CONFIG_NET_DMA is not set +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_DEFAULT="iso8859-1" +# CONFIG_OC_ETM is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_PARPORT_1284 is not set +# CONFIG_PATA_ARASAN_CF is not set +# CONFIG_PERF_COUNTERS is not set +CONFIG_PL330_DMA=y +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PM_DEVFREQ is not set +# CONFIG_PM_RUNTIME is not set +# CONFIG_PPP_FILTER is not set +# CONFIG_PPP_MULTILINK is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPT_RCU=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PRINTK_TIME is not set +# CONFIG_PSTORE is not set +# CONFIG_QFMT_V1 is not set +# CONFIG_QFMT_V2 is not set +# CONFIG_QUOTA_NETLINK_INTERFACE is not set +# CONFIG_R8712U is not set +# CONFIG_RAID_ATTRS is not set +# CONFIG_RAMOOPS is not set +# CONFIG_RAW_DRIVER is not set +CONFIG_REGMAP_I2C=m +CONFIG_REGMAP_SPI=m +# CONFIG_REISERFS_FS_POSIX_ACL is not set +# CONFIG_REISERFS_FS_SECURITY is not set +# CONFIG_RELAY is not set +# CONFIG_RFKILL_GPIO is not set +# CONFIG_RT2X00 is not set +CONFIG_RTC_DRV_PL031=y +CONFIG_RTC_DRV_TWL4030=m +# CONFIG_RTL8187 is not set +# CONFIG_RTL8192CU is not set +# CONFIG_RTS5139 is not set +CONFIG_SATA_AHCI_PLATFORM=y +# CONFIG_SATA_MV is not set +# CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_SCSI_CONSTANTS is not set +CONFIG_SCSI_DH=m +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_SPI_ATTRS=m +# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set +# CONFIG_SECURITY_SELINUX_DISABLE is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SENSORS_LIS3LV02D is not set +CONFIG_SERIAL_8250=m +# CONFIG_SERIAL_AMBA_PL010 is not set +CONFIG_SERIAL_AMBA_PL011=y +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_SERIO_AMBAKMI is not set +CONFIG_SERIO_SERPORT=y +# CONFIG_SGI_PARTITION is not set +CONFIG_SND=m +CONFIG_SND_PCM=m +CONFIG_SND_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_TIMER=m +# CONFIG_SOLARIS_X86_PARTITION is not set +CONFIG_SOUND=m +CONFIG_SPI_PL022=y +CONFIG_SPI_SPIDEV=m +# CONFIG_SQUASHFS_LZO is not set +# CONFIG_SQUASHFS_XATTR is not set +# CONFIG_SQUASHFS_XZ is not set +# CONFIG_STAGING_MEDIA is not set +# CONFIG_SUN_PARTITION is not set +CONFIG_SWP_EMULATE=y +# CONFIG_SYSCTL_SYSCALL is not set +# CONFIG_SYSCTL_SYSCALL_CHECK is not set +# CONFIG_SYSV68_PARTITION is not set +# CONFIG_TASKSTATS is not set +# CONFIG_TCP_CONG_ADVANCED is not set +# CONFIG_TCP_MD5SIG is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TWL4030_POWER is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +# CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB_ARCH_HAS_OHCI is not set +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_FUSB300=y +CONFIG_USB_GPIO_VBUS=m +CONFIG_USB_ISP1362_HCD=m +# CONFIG_USB_KC2190 is not set +# CONFIG_USB_MUSB_HDRC is not set +# CONFIG_USB_R8A66597_HCD is not set +CONFIG_USB_SERIAL_SAFE_PADDED=y +CONFIG_VERSION_SIGNATURE="Ubuntu 3.2.0-1800.1-highbank 3.2.9" +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_VLAN_8021Q_GVRP is not set +CONFIG_VT6656=m +# CONFIG_WAN is not set +# CONFIG_WATCHDOG is not set +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_USB=m +# CONFIG_XFS_RT is not set --- linux-3.2.0.orig/debian.master/config/armel/config.flavour.omap +++ linux-3.2.0/debian.master/config/armel/config.flavour.omap @@ -0,0 +1,3 @@ +# +# Config options for config.flavour.omap automatically generated by splitconfig.pl +# --- linux-3.2.0.orig/debian.master/config/armel/config.common.armel +++ linux-3.2.0/debian.master/config/armel/config.common.armel @@ -0,0 +1,389 @@ +# +# Config options for config.common.armel automatically generated by splitconfig.pl +# +CONFIG_ABX500_CORE=y +CONFIG_ACORN_PARTITION=y +CONFIG_AMBA_PL08X=y +CONFIG_AMIGA_PARTITION=y +# CONFIG_APM_EMULATION is not set +# CONFIG_ARCH_HIGHBANK is not set +CONFIG_ARCH_OMAP=y +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_743622=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ASYNC_TX_DMA=y +CONFIG_ATARI_PARTITION=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATM_BR2684_IPFILTER=y +CONFIG_AUXDISPLAY=y +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_AX88796=m +CONFIG_BCH=y +CONFIG_BINARY_PRINTF=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_BLK_DEV_XIP is not set +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_CAN_C_CAN_PLATFORM=m +CONFIG_CFG80211_REG_DEBUG=y +# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not set +CONFIG_CIFS_XATTR=y +CONFIG_CLEANCACHE=y +# CONFIG_COMPACTION is not set +CONFIG_CORDIC=m +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_IDLE=y +CONFIG_CRASH_DUMP=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_USER=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_DM9000=m +# CONFIG_DM_RAID45 is not set +CONFIG_DVB_FE_CUSTOMISE=y +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DW_DMAC=m +CONFIG_EDAC_MM_EDAC=m +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_EVM=y +CONFIG_EXPERT=y +CONFIG_EZX_PCAP=y +CONFIG_FANOTIFY=y +CONFIG_FAT_FS=y +CONFIG_FB_ARMCLCD=m +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_DDC is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_SVGALIB is not set +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_TILEBLITTING is not set +# CONFIG_FIRMWARE_EDID is not set +CONFIG_FLATMEM_MANUAL=y +CONFIG_FONTS=y +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_FPE_NWFPE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FTGMAC100 is not set +# CONFIG_FTMAC100 is not set +CONFIG_FTRACE=y +# CONFIG_FUNCTION_TRACER is not set +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GFS2_FS_LOCKING_DLM=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_TWL4030=y +CONFIG_HAMRADIO=y +CONFIG_HARDIRQS_SW_RESEND=y +# CONFIG_HARDLOCKUP_DETECTOR is not set +CONFIG_HAVE_AOUT=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HIDRAW=y +# CONFIG_HIGHMEM is not set +CONFIG_HTC_EGPIO=y +CONFIG_HTC_I2CPLD=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_HVC_DCC=y +CONFIG_HZ=128 +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m +# CONFIG_I2C_HELPER_AUTO is not set +# CONFIG_I2C_PXA_PCI is not set +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_SPIN_UNLOCK=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_SIT_6RD=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_PNP is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_DEBUG=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +CONFIG_ISDN=y +# CONFIG_IWMC3200TOP_DEBUGFS is not set +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_KARMA_PARTITION=y +CONFIG_KEXEC=y +CONFIG_KGDB=y +CONFIG_KPROBES=y +# CONFIG_KSM is not set +CONFIG_KTIME_SCALAR=y +CONFIG_LATENCYTOP=y +CONFIG_LDM_PARTITION=y +CONFIG_LEGACY_PTY_COUNT=0 +# CONFIG_LIBERTAS_MESH is not set +CONFIG_LIS3L02DQ=m +CONFIG_LLC=m +CONFIG_LOGIG940_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIWHEELS_FF=y +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_MAC80211_DEBUG_MENU=y +CONFIG_MAC80211_MESH=y +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MFD_88PM860X=y +CONFIG_MFD_AAT2870_CORE=y +CONFIG_MFD_ASIC3=y +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MAX8997=y +CONFIG_MFD_MAX8998=y +CONFIG_MFD_STMPE=y +CONFIG_MFD_T7L66XB=y +CONFIG_MFD_TC3589X=y +CONFIG_MFD_TC6387XB=y +CONFIG_MFD_TC6393XB=y +CONFIG_MFD_TMIO=y +CONFIG_MFD_TPS6586X=y +CONFIG_MFD_TPS65910=y +CONFIG_MFD_TPS65912_I2C=y +CONFIG_MFD_TPS65912_SPI=y +CONFIG_MFD_WM831X_I2C=y +CONFIG_MFD_WM831X_SPI=y +CONFIG_MFD_WM8350_I2C=y +CONFIG_MFD_WM8994=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_DEVICES=y +CONFIG_MMC_ARMMMCI=m +CONFIG_MMC_BLOCK=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_PXAV2=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODVERSIONS=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MTD=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_BCH=y +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_NAND_IDS=y +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MUTEX_SPIN_ON_OWNER is not set +CONFIG_NEED_DMA_MAP_STATE=y +# CONFIG_NET_CALXEDA_XGMAC is not set +CONFIG_NET_DMA=y +# CONFIG_NL80211_TESTMODE is not set +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NOP_USB_XCEIV=y +CONFIG_NVRAM=m +CONFIG_OC_ETM=y +CONFIG_OSF_PARTITION=y +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PANEL_DVI=y +CONFIG_PANEL_GENERIC_DPI=y +CONFIG_PARPORT_1284=y +CONFIG_PATA_ARASAN_CF=m +# CONFIG_PCCARD is not set +# CONFIG_PCI_SYSCALL is not set +CONFIG_PERF_COUNTERS=y +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_PL330_DMA=m +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_DEVFREQ=y +CONFIG_PM_RUNTIME=y +CONFIG_POWER_SUPPLY=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MULTILINK=y +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PRINTK_TIME=y +CONFIG_PRINT_QUOTA_WARNING=y +CONFIG_PSTORE=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_R3964 is not set +CONFIG_R8712U=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMOOPS=m +CONFIG_RAW_DRIVER=m +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_RELAY=y +CONFIG_RFKILL_GPIO=m +# CONFIG_RT2800USB_UNKNOWN is not set +CONFIG_RT2X00=m +CONFIG_RT2X00_LIB_DEBUGFS=y +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_PL031=m +CONFIG_RTC_DRV_TWL4030=y +CONFIG_RTL8187=m +CONFIG_RTL8192CU=m +CONFIG_RTS5139=m +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_MV=m +CONFIG_SCHEDSTATS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_DH=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_OSD_INITIATOR is not set +CONFIG_SCSI_SCAN_ASYNC=y +# CONFIG_SCSI_SPI_ATTRS is not set +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SECURITY_TOMOYO=y +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_AMBA_PL010=m +CONFIG_SERIAL_AMBA_PL011=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIO_AMBAKMI=m +CONFIG_SERIO_SERPORT=m +CONFIG_SGI_PARTITION=y +CONFIG_SM_FTL=m +CONFIG_SND=y +# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_OMAP_SOC=y +CONFIG_SND_OMAP_SOC_MCBSP=y +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +CONFIG_SND_PCM=y +CONFIG_SND_PCM_OSS=m +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_SOC=y +CONFIG_SND_SOC_I2C_AND_SPI=y +CONFIG_SND_SOC_TWL4030=y +CONFIG_SND_TIMER=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=y +# CONFIG_SPARSE_IRQ is not set +CONFIG_SPI_DESIGNWARE=m +CONFIG_SPI_PL022=m +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_SPI_SPIDEV is not set +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_XZ=y +# CONFIG_STACK_TRACER is not set +CONFIG_STAGING_MEDIA=y +CONFIG_STANDALONE=y +CONFIG_STE10XP=y +CONFIG_SUN_PARTITION=y +# CONFIG_SWP_EMULATE is not set +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_SYSV68_PARTITION=y +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_TABLET_USB_WACOM=m +CONFIG_TASKSTATS=y +# CONFIG_TCG_TPM is not set +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_MD5SIG=y +CONFIG_TIDSPBRIDGE=m +CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m +CONFIG_TPS65010=m +CONFIG_TRANZPORT=m +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_POWER=y +CONFIG_TWL4030_USB=y +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_UNUSED_SYMBOLS=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_XHCI is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_EHCI_TT_NEWSCHED is not set +# CONFIG_USB_ET61X251 is not set +# CONFIG_USB_FUSB300 is not set +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DWC3 is not set +CONFIG_USB_GADGET_MUSB_HDRC=y +CONFIG_USB_GPIO_VBUS=y +CONFIG_USB_G_MULTI=m +CONFIG_USB_INVENTRA_DMA=y +# CONFIG_USB_ISP1362_HCD is not set +CONFIG_USB_KC2190=y +# CONFIG_USB_M66592 is not set +CONFIG_USB_MON=m +CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_MUSB_OMAP2PLUS=y +# CONFIG_USB_MUSB_TUSB6010 is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OTG=y +# CONFIG_USB_R8A66597 is not set +CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SI470X=m +# CONFIG_USB_SN9C102 is not set +CONFIG_VERSION_SIGNATURE="" +CONFIG_VFAT_FS=y +# CONFIG_VGASTATE is not set +CONFIG_VIDEO_ADV7343=m +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_THS7303=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_TVP514X=m +# CONFIG_VIRTIO is not set +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_BLK is not set +# CONFIG_VIRTIO_MMIO is not set +# CONFIG_VIRTIO_NET is not set +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_RING is not set +CONFIG_VIRT_DRIVERS=y +CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VT6656 is not set +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_W35UND=m +CONFIG_WAN=y +CONFIG_WATCHDOG=y +# CONFIG_WIMAX_I2400M_SDIO is not set +# CONFIG_WIMAX_I2400M_USB is not set +# CONFIG_WM8350_WATCHDOG is not set +# CONFIG_X25_ASY is not set +CONFIG_XFS_RT=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZONE_DMA_FLAG=0 --- linux-3.2.0.orig/debian.master/config/i386/config.flavour.generic-pae +++ linux-3.2.0/debian.master/config/i386/config.flavour.generic-pae @@ -0,0 +1,18 @@ +# +# Config options for config.flavour.generic-pae automatically generated by splitconfig.pl +# +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_GPIO_CS5535=m +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +# CONFIG_I2C_PXA_PCI is not set +CONFIG_INTEL_IDLE=y +CONFIG_IOMMU_HELPER=y +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SYS_HYPERVISOR=y +CONFIG_XEN_PRIVILEGED_GUEST=y --- linux-3.2.0.orig/debian.master/config/i386/config.flavour.generic +++ linux-3.2.0/debian.master/config/i386/config.flavour.generic @@ -0,0 +1,18 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# +# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_GPIO_CS5535=y +CONFIG_HIGHMEM4G=y +# CONFIG_HIGHMEM64G is not set +CONFIG_I2C_PXA_PCI=y +CONFIG_INTEL_IDLE=y +# CONFIG_IOMMU_HELPER is not set +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_PHYSICAL_START=0x1000000 +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_XEN_PRIVILEGED_GUEST is not set --- linux-3.2.0.orig/debian.master/config/i386/config.flavour.virtual +++ linux-3.2.0/debian.master/config/i386/config.flavour.virtual @@ -0,0 +1,18 @@ +# +# Config options for config.flavour.virtual automatically generated by splitconfig.pl +# +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_GPIO_CS5535=m +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +# CONFIG_I2C_PXA_PCI is not set +# CONFIG_INTEL_IDLE is not set +CONFIG_IOMMU_HELPER=y +CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_PHYSICAL_START=0x100000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SYS_HYPERVISOR=y +CONFIG_XEN_PRIVILEGED_GUEST=y --- linux-3.2.0.orig/debian.master/config/i386/config.common.i386 +++ linux-3.2.0/debian.master/config/i386/config.common.i386 @@ -0,0 +1,415 @@ +# +# Config options for config.common.i386 automatically generated by splitconfig.pl +# +# CONFIG_64BIT is not set +CONFIG_ABX500_CORE=y +CONFIG_ACORN_PARTITION=y +CONFIG_ACPI_BLACKLIST_YEAR=2000 +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +CONFIG_AMIGA_PARTITION=y +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_ASYNC_TX_DMA=y +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_GENERIC=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_PIIX=y +# CONFIG_ATM_BR2684_IPFILTER is not set +# CONFIG_AUDIT_ARCH is not set +CONFIG_AUXDISPLAY=y +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_BCH=m +CONFIG_BINARY_PRINTF=y +# CONFIG_BLK_DEV_CMD64X is not set +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_BLK_DEV_XIP is not set +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_CAN_C_CAN_PLATFORM=m +CONFIG_CFG80211_REG_DEBUG=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_CIFS_XATTR=y +CONFIG_CLEANCACHE=y +CONFIG_COMEDI=m +CONFIG_COMPACTION=y +CONFIG_CORDIC=m +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_IDLE=y +CONFIG_CRASH_DUMP=y +CONFIG_DAB=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_PINCTRL is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +# CONFIG_DM9000 is not set +CONFIG_DM_RAID45=m +CONFIG_DRM_PSB=m +# CONFIG_DVB_FE_CUSTOMISE is not set +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_EDAC_MM_EDAC=m +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_EVM=y +CONFIG_EXPERT=y +# CONFIG_EZX_PCAP is not set +CONFIG_FANOTIFY=y +CONFIG_FAT_FS=m +CONFIG_FB_3DFX=m +CONFIG_FB_ATY128=m +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_DDC=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_RADEON=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_VOODOO1=m +CONFIG_FIRMWARE_EDID=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_FONTS is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_FSAM7400=m +CONFIG_FTGMAC100=m +CONFIG_FTMAC100=m +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +# CONFIG_GENERIC_CPU is not set +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +# CONFIG_GENERIC_TIME_VSYSCALL is not set +CONFIG_GFS2_FS_LOCKING_DLM=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_TWL4030=m +CONFIG_HAMRADIO=y +# CONFIG_HARDIRQS_SW_RESEND is not set +CONFIG_HARDLOCKUP_DETECTOR=y +CONFIG_HAVE_AOUT=y +# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HIDRAW=y +CONFIG_HIGHMEM=y +CONFIG_HTC_I2CPLD=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HZ=250 +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_DESIGNWARE_CORE=m +# CONFIG_I2C_HELPER_AUTO is not set +# CONFIG_IDE is not set +CONFIG_ILLEGAL_POINTER_VALUE=0 +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_SPIN_UNLOCK=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_INTEL_TXT is not set +# CONFIG_INTR_REMAP is not set +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_SIT_6RD=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_PNP is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_DEBUG=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +# CONFIG_IRQ_PER_CPU is not set +CONFIG_ISA=y +CONFIG_ISDN=y +CONFIG_IWMC3200TOP_DEBUGFS=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_KARMA_PARTITION=y +CONFIG_KEXEC=y +CONFIG_KGDB=y +CONFIG_KPROBES=y +CONFIG_KSM=y +CONFIG_KTIME_SCALAR=y +CONFIG_KVM=m +CONFIG_KVM_BOOK3S_32=m +CONFIG_LATENCYTOP=y +CONFIG_LDM_PARTITION=y +CONFIG_LEGACY_PTY_COUNT=0 +CONFIG_LIBERTAS_MESH=y +CONFIG_LIBIPW_DEBUG=y +CONFIG_LIS3L02DQ=m +CONFIG_LLC=y +CONFIG_LOGIG940_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIWHEELS_FF=y +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_M686=y +CONFIG_MAC80211_DEBUG_MENU=y +CONFIG_MAC80211_MESH=y +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MFD_88PM860X=y +CONFIG_MFD_AAT2870_CORE=y +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MAX8997=y +CONFIG_MFD_MAX8998=y +CONFIG_MFD_STMPE=y +CONFIG_MFD_TC3589X=y +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_TPS6586X=y +CONFIG_MFD_TPS65910=y +CONFIG_MFD_TPS65912_I2C=y +CONFIG_MFD_TPS65912_SPI=y +CONFIG_MFD_WM831X_I2C=y +CONFIG_MFD_WM831X_SPI=y +CONFIG_MFD_WM8350_I2C=y +CONFIG_MFD_WM8994=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_DEVICES=y +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODVERSIONS=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CHAR=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +# CONFIG_NET_CALXEDA_XGMAC is not set +CONFIG_NET_DMA=y +CONFIG_NL80211_TESTMODE=y +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NOP_USB_XCEIV=m +CONFIG_NR_CPUS=8 +CONFIG_NVRAM=m +CONFIG_OSF_PARTITION=y +CONFIG_OUTPUT_FORMAT="elf32-i386" +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PANEL_DVI=m +CONFIG_PANEL_GENERIC_DPI=m +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_PARPORT_1284=y +CONFIG_PATA_ARASAN_CF=m +CONFIG_PATA_SIS=y +CONFIG_PCCARD=m +CONFIG_PDC_ADMA=y +CONFIG_PERF_COUNTERS=y +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +CONFIG_PM_DEBUG=y +CONFIG_PM_DEVFREQ=y +CONFIG_PM_RUNTIME=y +CONFIG_POWER_SUPPLY=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MULTILINK=y +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PRINTK_TIME=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PSTORE=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_R3964=m +CONFIG_R8712U=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMOOPS=m +CONFIG_RAW_DRIVER=m +CONFIG_RCU_FANOUT=32 +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +CONFIG_REGULATOR_DEBUG=y +CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_RELAY=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2X00=m +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTL8187=m +CONFIG_RTL8192CU=m +CONFIG_RTS5139=m +CONFIG_RTS_PSTOR=m +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_MV=m +CONFIG_SATA_SVW=m +CONFIG_SCHEDSTATS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCHED_SMT=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_DH=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SECURITY_TOMOYO=y +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_SERIAL_PMACZILOG is not set +CONFIG_SERIO_SERPORT=m +CONFIG_SGI_PARTITION=y +CONFIG_SM_FTL=m +CONFIG_SND=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_HIFIER=m +CONFIG_SND_OMAP_SOC=m +CONFIG_SND_OMAP_SOC_MCBSP=m +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_OPL4_LIB_SEQ=m +CONFIG_SND_PCM=m +# CONFIG_SND_PCM_OSS is not set +CONFIG_SND_SBAWE_SEQ=m +CONFIG_SND_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_TIMER=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=m +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_SPARSE_IRQ=y +CONFIG_SPI_DESIGNWARE=y +CONFIG_SPI_PXA2XX_PCI=y +CONFIG_SPI_SPIDEV=m +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_XZ=y +# CONFIG_SSB_PCMCIAHOST is not set +CONFIG_STACK_TRACER=y +CONFIG_STAGING_MEDIA=y +# CONFIG_STANDALONE is not set +CONFIG_STE10XP=y +CONFIG_SUN_PARTITION=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_SYSV68_PARTITION=y +CONFIG_TABLET_USB_WACOM=m +CONFIG_TASKSTATS=y +CONFIG_TCG_TIS=m +CONFIG_TCG_TPM=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_MD5SIG=y +# CONFIG_TIDSPBRIDGE is not set +CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m +CONFIG_TPS65010=m +CONFIG_TRANZPORT=m +# CONFIG_TWL4030_CORE is not set +CONFIG_TWL4030_USB=m +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_UNUSED_SYMBOLS=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_XHCI=y +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_ET61X251=m +CONFIG_USB_FUSB300=m +CONFIG_USB_GADGET=m +CONFIG_USB_GADGET_DUMMY_HCD=y +CONFIG_USB_GADGET_DWC3=m +# CONFIG_USB_GADGET_MUSB_HDRC is not set +# CONFIG_USB_GADGET_NET2280 is not set +CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_INVENTRA_DMA is not set +CONFIG_USB_IP_COMMON=m +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_KC2190=y +CONFIG_USB_M66592=m +CONFIG_USB_MON=y +# CONFIG_USB_MUSB_OMAP2PLUS is not set +CONFIG_USB_MUSB_TUSB6010=y +CONFIG_USB_NET2272=m +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +# CONFIG_USB_OTG is not set +CONFIG_USB_R8A66597=m +CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SI470X=m +CONFIG_USB_SN9C102=m +CONFIG_VERSION_SIGNATURE="" +CONFIG_VFAT_FS=m +CONFIG_VGASTATE=m +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_VIDEO_ADV7343 is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +# CONFIG_VIDEO_SAA7191 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_TDA9875 is not set +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_TVP514X is not set +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_MMIO=m +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_RING=y +CONFIG_VIRT_DRIVERS=y +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VME_BUS=m +CONFIG_VT6656=m +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_W35UND=m +CONFIG_WAN=y +CONFIG_WATCHDOG=y +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_X25_ASY=m +CONFIG_X86_32=y +# CONFIG_X86_64 is not set +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_MINIMUM_CPU_FAMILY=5 +CONFIG_X86_SPEEDSTEP_LIB=y +# CONFIG_X86_X2APIC is not set +CONFIG_XFS_RT=y +CONFIG_ZLIB_DEFLATE=m +# CONFIG_ZONE_DMA32 is not set +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.2.0.orig/debian.master/config/amd64/config.common.amd64 +++ linux-3.2.0/debian.master/config/amd64/config.common.amd64 @@ -0,0 +1,419 @@ +# +# Config options for config.common.amd64 automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +CONFIG_ABX500_CORE=y +CONFIG_ACORN_PARTITION=y +CONFIG_ACPI_BLACKLIST_YEAR=0 +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +CONFIG_AMIGA_PARTITION=y +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SUPPORTS_MSI=y +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_GENERIC=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_PIIX=y +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_AUDIT_ARCH=y +CONFIG_AUXDISPLAY=y +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_BCH=m +CONFIG_BINARY_PRINTF=y +# CONFIG_BLK_DEV_CMD64X is not set +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_BLK_DEV_XIP is not set +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_CAN_C_CAN_PLATFORM=m +CONFIG_CFG80211_REG_DEBUG=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_CIFS_XATTR=y +CONFIG_CLEANCACHE=y +CONFIG_COMEDI=m +CONFIG_COMPACTION=y +CONFIG_CORDIC=m +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_IDLE=y +CONFIG_CRASH_DUMP=y +CONFIG_DAB=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_PINCTRL is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +# CONFIG_DM9000 is not set +CONFIG_DM_RAID45=m +CONFIG_DRM_PSB=m +# CONFIG_DVB_FE_CUSTOMISE is not set +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_EDAC_MM_EDAC=m +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_EVM=y +CONFIG_EXPERT=y +# CONFIG_EZX_PCAP is not set +CONFIG_FANOTIFY=y +CONFIG_FAT_FS=m +CONFIG_FB_3DFX=m +CONFIG_FB_ATY128=m +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_DDC=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_RADEON=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_VOODOO1=m +CONFIG_FIRMWARE_EDID=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_FONTS is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_FSAM7400=m +CONFIG_FTGMAC100=m +CONFIG_FTMAC100=m +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_GENERIC_CPU=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GFS2_FS_LOCKING_DLM=y +CONFIG_GPIO_CS5535=m +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_TWL4030=m +CONFIG_HAMRADIO=y +# CONFIG_HARDIRQS_SW_RESEND is not set +CONFIG_HARDLOCKUP_DETECTOR=y +# CONFIG_HAVE_AOUT is not set +CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HIDRAW=y +CONFIG_HTC_I2CPLD=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HZ=250 +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_DESIGNWARE_CORE=m +# CONFIG_I2C_HELPER_AUTO is not set +# CONFIG_I2C_PXA_PCI is not set +# CONFIG_IDE is not set +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_SPIN_UNLOCK=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INTEL_TXT=y +CONFIG_INTR_REMAP=y +CONFIG_IOMMU_HELPER=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_SIT_6RD=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_PNP is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_DEBUG=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +# CONFIG_IRQ_PER_CPU is not set +CONFIG_ISDN=y +CONFIG_IWMC3200TOP_DEBUGFS=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_KARMA_PARTITION=y +CONFIG_KEXEC=y +CONFIG_KGDB=y +CONFIG_KPROBES=y +CONFIG_KSM=y +# CONFIG_KTIME_SCALAR is not set +CONFIG_KVM=m +CONFIG_KVM_BOOK3S_32=m +CONFIG_LATENCYTOP=y +CONFIG_LDM_PARTITION=y +CONFIG_LEGACY_PTY_COUNT=0 +CONFIG_LIBERTAS_MESH=y +CONFIG_LIBIPW_DEBUG=y +CONFIG_LIS3L02DQ=m +CONFIG_LLC=y +CONFIG_LOGIG940_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIWHEELS_FF=y +CONFIG_LOG_BUF_SHIFT=18 +# CONFIG_M686 is not set +CONFIG_MAC80211_DEBUG_MENU=y +CONFIG_MAC80211_MESH=y +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_MFD_88PM860X=y +CONFIG_MFD_AAT2870_CORE=y +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MAX8997=y +CONFIG_MFD_MAX8998=y +CONFIG_MFD_STMPE=y +CONFIG_MFD_TC3589X=y +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_TPS6586X=y +CONFIG_MFD_TPS65910=y +CONFIG_MFD_TPS65912_I2C=y +CONFIG_MFD_TPS65912_SPI=y +CONFIG_MFD_WM831X_I2C=y +CONFIG_MFD_WM831X_SPI=y +CONFIG_MFD_WM8350_I2C=y +CONFIG_MFD_WM8994=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_DEVICES=y +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODVERSIONS=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CHAR=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +# CONFIG_NET_CALXEDA_XGMAC is not set +CONFIG_NET_DMA=y +CONFIG_NL80211_TESTMODE=y +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NODES_SHIFT=6 +CONFIG_NOP_USB_XCEIV=m +CONFIG_NVRAM=m +CONFIG_OSF_PARTITION=y +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_PANEL_DVI=m +CONFIG_PANEL_GENERIC_DPI=m +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_PARPORT_1284=y +CONFIG_PATA_ARASAN_CF=m +CONFIG_PATA_SIS=y +CONFIG_PCCARD=m +CONFIG_PDC_ADMA=y +CONFIG_PERF_COUNTERS=y +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +CONFIG_PM_DEBUG=y +CONFIG_PM_DEVFREQ=y +CONFIG_PM_RUNTIME=y +CONFIG_POWER_SUPPLY=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MULTILINK=y +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PRINTK_TIME=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PSTORE=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_R3964=m +CONFIG_R8712U=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMOOPS=m +CONFIG_RAW_DRIVER=m +CONFIG_RCU_FANOUT=64 +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_RELAY=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2X00=m +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTL8187=m +CONFIG_RTL8192CU=m +CONFIG_RTS5139=m +CONFIG_RTS_PSTOR=m +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_MV=m +CONFIG_SATA_SVW=m +CONFIG_SCHEDSTATS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCHED_SMT=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_DH=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SECURITY_TOMOYO=y +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_SERIAL_PMACZILOG is not set +CONFIG_SERIO_SERPORT=m +CONFIG_SGI_PARTITION=y +CONFIG_SM_FTL=m +CONFIG_SND=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_HIFIER=m +CONFIG_SND_OMAP_SOC=m +CONFIG_SND_OMAP_SOC_MCBSP=m +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m +CONFIG_SND_OPL3_LIB_SEQ=m +# CONFIG_SND_OPL4_LIB_SEQ is not set +CONFIG_SND_PCM=m +# CONFIG_SND_PCM_OSS is not set +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_TIMER=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=m +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSE_IRQ=y +CONFIG_SPI_DESIGNWARE=y +# CONFIG_SPI_PXA2XX_PCI is not set +CONFIG_SPI_SPIDEV=m +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_XZ=y +# CONFIG_SSB_PCMCIAHOST is not set +CONFIG_STACK_TRACER=y +CONFIG_STAGING_MEDIA=y +# CONFIG_STANDALONE is not set +CONFIG_STE10XP=y +CONFIG_SUN_PARTITION=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_SYSV68_PARTITION=y +CONFIG_SYS_HYPERVISOR=y +CONFIG_TABLET_USB_WACOM=m +CONFIG_TASKSTATS=y +CONFIG_TCG_TIS=m +CONFIG_TCG_TPM=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_MD5SIG=y +# CONFIG_TIDSPBRIDGE is not set +CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m +CONFIG_TPS65010=m +CONFIG_TRANZPORT=m +# CONFIG_TWL4030_CORE is not set +CONFIG_TWL4030_USB=m +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_UNUSED_SYMBOLS=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_XHCI=y +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_ET61X251=m +CONFIG_USB_GADGET=m +CONFIG_USB_GADGET_DUMMY_HCD=y +CONFIG_USB_GADGET_DWC3=m +# CONFIG_USB_GADGET_MUSB_HDRC is not set +# CONFIG_USB_GADGET_NET2280 is not set +CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_INVENTRA_DMA is not set +CONFIG_USB_IP_COMMON=m +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_KC2190=y +CONFIG_USB_M66592=m +CONFIG_USB_MON=y +# CONFIG_USB_MUSB_OMAP2PLUS is not set +CONFIG_USB_MUSB_TUSB6010=y +CONFIG_USB_NET2272=m +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +# CONFIG_USB_OTG is not set +CONFIG_USB_R8A66597=m +CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SI470X=m +CONFIG_USB_SN9C102=m +CONFIG_VERSION_SIGNATURE="" +CONFIG_VFAT_FS=m +CONFIG_VGASTATE=m +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_VIDEO_ADV7343 is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +# CONFIG_VIDEO_SAA7191 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_TDA9875 is not set +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_TVP514X is not set +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_MMIO=m +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_RING=y +CONFIG_VIRT_DRIVERS=y +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VME_BUS=m +CONFIG_VT6656=m +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_W35UND=m +CONFIG_WAN=y +CONFIG_WATCHDOG=y +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_X25_ASY=m +# CONFIG_X86_32 is not set +CONFIG_X86_64=y +CONFIG_X86_INTERNODE_CACHE_SHIFT=7 +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_X86_X2APIC=y +CONFIG_XEN_PRIVILEGED_GUEST=y +CONFIG_XFS_RT=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZONE_DMA32=y +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.2.0.orig/debian.master/config/amd64/config.flavour.generic +++ linux-3.2.0/debian.master/config/amd64/config.flavour.generic @@ -0,0 +1,10 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_INTEL_IDLE=y +CONFIG_NR_CPUS=256 +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y --- linux-3.2.0.orig/debian.master/config/amd64/config.flavour.virtual +++ linux-3.2.0/debian.master/config/amd64/config.flavour.virtual @@ -0,0 +1,10 @@ +# +# Config options for config.flavour.virtual automatically generated by splitconfig.pl +# +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_IOSCHED="deadline" +# CONFIG_INTEL_IDLE is not set +CONFIG_NR_CPUS=64 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set --- linux-3.2.0.orig/debian.master/config/ppc64/config.common.ppc64 +++ linux-3.2.0/debian.master/config/ppc64/config.common.ppc64 @@ -0,0 +1,431 @@ +# +# Config options for config.common.ppc64 automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +CONFIG_ABX500_CORE=y +CONFIG_ACORN_PARTITION=y +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AMIGA_PARTITION=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_NO_VIRT_TO_BUS=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SUPPORTS_MSI=y +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_GENERIC=m +CONFIG_ATA_NONSTANDARD=y +CONFIG_ATA_PIIX=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_AUDIT_ARCH=y +CONFIG_AUXDISPLAY=y +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_BCH=m +CONFIG_BINARY_PRINTF=y +CONFIG_BLK_DEV_CMD64X=m +CONFIG_BLK_DEV_SR_VENDOR=y +# CONFIG_BLK_DEV_XIP is not set +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_CAN_C_CAN_PLATFORM=m +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_XATTR is not set +CONFIG_CLEANCACHE=y +# CONFIG_COMEDI is not set +CONFIG_COMPACTION=y +CONFIG_CORDIC=m +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_CPU_FREQ_STAT=m +CONFIG_CRASH_DUMP=y +# CONFIG_DAB is not set +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_PINCTRL=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +# CONFIG_DM9000 is not set +# CONFIG_DM_RAID45 is not set +# CONFIG_DRM_PSB is not set +# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_EDAC_MM_EDAC=m +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_EVM=y +CONFIG_EXPERT=y +# CONFIG_EZX_PCAP is not set +CONFIG_FANOTIFY=y +CONFIG_FAT_FS=m +CONFIG_FB_3DFX=y +CONFIG_FB_ATY128=y +CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_DDC=y +CONFIG_FB_MACMODES=y +CONFIG_FB_RADEON=y +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_SYS_IMAGEBLIT=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_VOODOO1=y +CONFIG_FIRMWARE_EDID=y +# CONFIG_FONTS is not set +CONFIG_FORCE_MAX_ZONEORDER=9 +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FSAM7400 is not set +CONFIG_FTGMAC100=m +CONFIG_FTMAC100=m +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +# CONFIG_GENERIC_IOMAP is not set +# CONFIG_GENERIC_IRQ_PROBE is not set +# CONFIG_GENERIC_PENDING_IRQ is not set +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GFS2_FS_LOCKING_DLM=y +# CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_TWL4030=m +CONFIG_HAMRADIO=y +# CONFIG_HARDIRQS_SW_RESEND is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_HAVE_AOUT is not set +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HIDRAW=y +CONFIG_HTC_I2CPLD=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HZ=250 +CONFIG_I2C_ALGOBIT=y +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_HELPER_AUTO=y +# CONFIG_I2C_PXA_PCI is not set +CONFIG_IBMEBUS=y +CONFIG_IDE=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_SPIN_UNLOCK=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_IOMMU_HELPER=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_SIT_6RD=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_PNP is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_DEBUG=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +CONFIG_IRQ_ALL_CPUS=y +CONFIG_IRQ_PER_CPU=y +CONFIG_ISDN=y +CONFIG_IWMC3200TOP_DEBUGFS=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_KARMA_PARTITION=y +CONFIG_KERNEL_START=0xc000000000000000 +CONFIG_KEXEC=y +CONFIG_KGDB=y +CONFIG_KPROBES=y +CONFIG_KSM=y +CONFIG_KVM=y +CONFIG_KVM_BOOK3S_32=m +CONFIG_LATENCYTOP=y +CONFIG_LDM_PARTITION=y +CONFIG_LEGACY_PTY_COUNT=0 +CONFIG_LIBERTAS_MESH=y +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_LIS3L02DQ=m +CONFIG_LLC=y +CONFIG_LOGIG940_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIWHEELS_FF=y +CONFIG_LOG_BUF_SHIFT=19 +CONFIG_LPARCFG=y +CONFIG_MAC80211_DEBUG_MENU=y +CONFIG_MAC80211_MESH=y +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAX_ACTIVE_REGIONS=256 +CONFIG_MAX_RAW_DEVS=8192 +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_MFD_88PM860X=y +CONFIG_MFD_AAT2870_CORE=y +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MAX8997=y +CONFIG_MFD_MAX8998=y +CONFIG_MFD_STMPE=y +CONFIG_MFD_TC3589X=y +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_TPS6586X=y +CONFIG_MFD_TPS65910=y +CONFIG_MFD_TPS65912_I2C=y +CONFIG_MFD_TPS65912_SPI=y +CONFIG_MFD_WM831X_I2C=y +CONFIG_MFD_WM831X_SPI=y +CONFIG_MFD_WM8350_I2C=y +CONFIG_MFD_WM8994=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_DEVICES=y +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMIO_NVRAM=y +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODVERSIONS=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MPIC_U3_HT_IRQS=y +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CHAR=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +# CONFIG_NET_CALXEDA_XGMAC is not set +CONFIG_NET_DMA=y +CONFIG_NL80211_TESTMODE=y +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NODES_SHIFT=8 +CONFIG_NOP_USB_XCEIV=m +CONFIG_NR_CPUS=1024 +CONFIG_OSF_PARTITION=y +CONFIG_PAGE_OFFSET=0xc000000000000000 +CONFIG_PANEL_DVI=m +CONFIG_PARAVIRT_TIME_ACCOUNTING=n +CONFIG_PARPORT_1284=y +CONFIG_PATA_ARASAN_CF=m +CONFIG_PATA_SIS=m +CONFIG_PCCARD=m +CONFIG_PCI_SYSCALL=y +CONFIG_PDC_ADMA=m +CONFIG_PERF_COUNTERS=y +CONFIG_PHYSICAL_START=0x00000000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_DEVFREQ=y +CONFIG_PM_RUNTIME=y +CONFIG_POWER_SUPPLY=m +CONFIG_PPC64=y +# CONFIG_PPC_4K_PAGES is not set +CONFIG_PPC_64K_PAGES=y +CONFIG_PPC_970_NAP=y +CONFIG_PPC_CELL=y +CONFIG_PPC_ICP_HV=y +CONFIG_PPC_ICP_NATIVE=y +CONFIG_PPC_ICS_RTAS=y +# CONFIG_PPC_INDIRECT_PCI is not set +CONFIG_PPC_MM_SLICES=y +# CONFIG_PPC_MPC106 is not set +CONFIG_PPC_P7_NAP=y +CONFIG_PPC_SMLPAR=y +CONFIG_PPC_SPLPAR=y +CONFIG_PPC_XICS=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MULTILINK=y +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PRINTK_TIME=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PSERIES_ENERGY=y +CONFIG_PSTORE=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_R3964=m +CONFIG_R8712U=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMOOPS=m +CONFIG_RAW_DRIVER=m +CONFIG_RCU_FANOUT=64 +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_RELAY=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2X00=m +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTAS_FLASH=y +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTL8187=m +CONFIG_RTL8192CU=m +CONFIG_RTS5139=m +# CONFIG_RTS_PSTOR is not set +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_MV=m +CONFIG_SATA_SVW=y +CONFIG_SCANLOG=y +CONFIG_SCHEDSTATS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCHED_SMT=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_DH=m +CONFIG_SCSI_IBMVSCSIS=m +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SECURITY_TOMOYO=y +CONFIG_SENSORS_LIS3LV02D=m +# CONFIG_SENSORS_SCH56XX_COMMON is not set +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_PCI=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIAL_PMACZILOG=y +CONFIG_SERIO_SERPORT=m +CONFIG_SGI_PARTITION=y +# CONFIG_SM_FTL is not set +CONFIG_SND=m +CONFIG_SND_BT87X_OVERCLOCK=y +CONFIG_SND_EMU10K1_SEQ=m +# CONFIG_SND_HIFIER is not set +CONFIG_SND_OMAP_SOC=m +CONFIG_SND_OMAP_SOC_MCBSP=m +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m +CONFIG_SND_OPL3_LIB_SEQ=m +# CONFIG_SND_OPL4_LIB_SEQ is not set +CONFIG_SND_PCM=m +# CONFIG_SND_PCM_OSS is not set +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_TIMER=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=m +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSE_IRQ=y +CONFIG_SPI_DESIGNWARE=y +# CONFIG_SPI_PXA2XX_PCI is not set +CONFIG_SPI_SPIDEV=m +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_XZ=y +CONFIG_SSB_PCMCIAHOST=y +# CONFIG_STACK_TRACER is not set +CONFIG_STAGING_MEDIA=y +CONFIG_STANDALONE=y +CONFIG_STE10XP=m +CONFIG_SUN_PARTITION=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_SYSV68_PARTITION=y +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_TABLET_USB_WACOM is not set +CONFIG_TASKSTATS=y +# CONFIG_TCG_TIS is not set +CONFIG_TCG_TPM=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_MD5SIG=y +# CONFIG_TIDSPBRIDGE is not set +CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m +# CONFIG_TPS65010 is not set +# CONFIG_TRANZPORT is not set +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_USB=m +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_UNUSED_SYMBOLS=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_XHCI=y +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_ET61X251=m +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DWC3=m +CONFIG_USB_GADGET_NET2280=y +CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_INVENTRA_DMA is not set +# CONFIG_USB_IP_COMMON is not set +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_KC2190=y +CONFIG_USB_M66592=m +CONFIG_USB_MON=y +# CONFIG_USB_MUSB_OMAP2PLUS is not set +CONFIG_USB_MUSB_TUSB6010=y +CONFIG_USB_NET2272=m +CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y +CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y +CONFIG_USB_OHCI_HCD_PPC_OF_LE=y +# CONFIG_USB_OTG is not set +CONFIG_USB_R8A66597=m +CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SI470X is not set +CONFIG_USB_SN9C102=m +CONFIG_VERSION_SIGNATURE="" +CONFIG_VFAT_FS=m +CONFIG_VGASTATE=m +CONFIG_VGA_ARB_MAX_GPUS=64 +CONFIG_VIDEO_ADV7343=m +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_THS7303=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_TVP514X=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_MMIO=m +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_RING=m +CONFIG_VIRT_DRIVERS=y +CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VME_BUS is not set +# CONFIG_VT6656 is not set +CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_W35UND is not set +CONFIG_WAN=y +CONFIG_WATCHDOG=y +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_WORD_SIZE=64 +CONFIG_X25_ASY=m +CONFIG_XFS_RT=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.2.0.orig/debian.master/config/ppc64/config.flavour.powerpc64-smp +++ linux-3.2.0/debian.master/config/ppc64/config.flavour.powerpc64-smp @@ -0,0 +1,3 @@ +# +# Config options for config.flavour.powerpc64-smp automatically generated by splitconfig.pl +# --- linux-3.2.0.orig/debian.master/config/powerpc/config.flavour.powerpc-smp +++ linux-3.2.0/debian.master/config/powerpc/config.flavour.powerpc-smp @@ -0,0 +1,43 @@ +# +# Config options for config.flavour.powerpc-smp automatically generated by splitconfig.pl +# +# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set +# CONFIG_ARCH_NO_VIRT_TO_BUS is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_CFG80211_REG_DEBUG=y +# CONFIG_CRASH_DUMP is not set +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FORCE_MAX_ZONEORDER=11 +# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_KERNEL_START=0xc0000000 +# CONFIG_KGDB is not set +# CONFIG_LATENCYTOP is not set +CONFIG_MAX_ACTIVE_REGIONS=32 +# CONFIG_MMIO_NVRAM is not set +# CONFIG_MPIC_U3_HT_IRQS is not set +# CONFIG_NEED_DMA_MAP_STATE is not set +# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set +CONFIG_NR_CPUS=4 +CONFIG_PAGE_OFFSET=0xc0000000 +# CONFIG_PHYS_ADDR_T_64BIT is not set +# CONFIG_PPC64 is not set +# CONFIG_PPC_970_NAP is not set +# CONFIG_PPC_CELL is not set +# CONFIG_PPC_ICP_HV is not set +# CONFIG_PPC_ICP_NATIVE is not set +# CONFIG_PPC_ICS_RTAS is not set +CONFIG_PPC_INDIRECT_PCI=y +# CONFIG_PPC_MM_SLICES is not set +CONFIG_PPC_MPC106=y +# CONFIG_PPC_P7_NAP is not set +# CONFIG_PPC_XICS is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_SCHEDSTATS is not set +# CONFIG_SCSI_QLA_ISCSI is not set +CONFIG_WORD_SIZE=32 +CONFIG_ZLIB_DEFLATE=m --- linux-3.2.0.orig/debian.master/config/powerpc/config.flavour.powerpc64-smp +++ linux-3.2.0/debian.master/config/powerpc/config.flavour.powerpc64-smp @@ -0,0 +1,43 @@ +# +# Config options for config.flavour.powerpc64-smp automatically generated by splitconfig.pl +# +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_NO_VIRT_TO_BUS=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ATA_NONSTANDARD=y +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CRASH_DUMP=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_SYS_IMAGEBLIT=y +CONFIG_FORCE_MAX_ZONEORDER=13 +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HUGETLB_PAGE=y +CONFIG_KERNEL_START=0xc000000000000000 +CONFIG_KGDB=y +CONFIG_LATENCYTOP=y +CONFIG_MAX_ACTIVE_REGIONS=256 +CONFIG_MMIO_NVRAM=y +CONFIG_MPIC_U3_HT_IRQS=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NR_CPUS=1024 +CONFIG_PAGE_OFFSET=0xc000000000000000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PPC64=y +CONFIG_PPC_970_NAP=y +CONFIG_PPC_CELL=y +CONFIG_PPC_ICP_HV=y +CONFIG_PPC_ICP_NATIVE=y +CONFIG_PPC_ICS_RTAS=y +# CONFIG_PPC_INDIRECT_PCI is not set +CONFIG_PPC_MM_SLICES=y +# CONFIG_PPC_MPC106 is not set +CONFIG_PPC_P7_NAP=y +CONFIG_PPC_XICS=y +CONFIG_RCU_FANOUT=64 +CONFIG_SCHEDSTATS=y +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_WORD_SIZE=64 +CONFIG_ZLIB_DEFLATE=y --- linux-3.2.0.orig/debian.master/config/powerpc/config.common.powerpc +++ linux-3.2.0/debian.master/config/powerpc/config.common.powerpc @@ -0,0 +1,396 @@ +# +# Config options for config.common.powerpc automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +CONFIG_ABX500_CORE=y +CONFIG_ACORN_PARTITION=y +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AMIGA_PARTITION=y +CONFIG_APM_EMULATION=m +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SUPPORTS_MSI=y +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_GENERIC=m +CONFIG_ATA_PIIX=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_AUDIT_ARCH=y +CONFIG_AUXDISPLAY=y +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_BCH=m +CONFIG_BINARY_PRINTF=y +CONFIG_BLK_DEV_CMD64X=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_BLK_DEV_XIP is not set +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_CAN_C_CAN_PLATFORM=m +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_XATTR is not set +CONFIG_CLEANCACHE=y +# CONFIG_COMEDI is not set +# CONFIG_COMPACTION is not set +CONFIG_CORDIC=m +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_CPU_FREQ_STAT=m +# CONFIG_DAB is not set +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_KERNEL=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +# CONFIG_DM9000 is not set +# CONFIG_DM_RAID45 is not set +# CONFIG_DRM_PSB is not set +# CONFIG_DVB_FE_CUSTOMISE is not set +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_EDAC_MM_EDAC=m +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_EVM=y +CONFIG_EXPERT=y +# CONFIG_EZX_PCAP is not set +CONFIG_FANOTIFY=y +CONFIG_FAT_FS=m +CONFIG_FB_3DFX=y +CONFIG_FB_ATY128=y +CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_DDC=y +CONFIG_FB_MACMODES=y +CONFIG_FB_RADEON=y +CONFIG_FB_SVGALIB=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_VOODOO1=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_FONTS is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FSAM7400 is not set +CONFIG_FTGMAC100=m +CONFIG_FTMAC100=m +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +# CONFIG_GENERIC_IOMAP is not set +# CONFIG_GENERIC_IRQ_PROBE is not set +# CONFIG_GENERIC_PENDING_IRQ is not set +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GFS2_FS_LOCKING_DLM=y +# CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_TWL4030=m +CONFIG_HAMRADIO=y +# CONFIG_HARDIRQS_SW_RESEND is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_HAVE_AOUT is not set +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HIDRAW=y +CONFIG_HIGHMEM=y +CONFIG_HTC_I2CPLD=y +CONFIG_HZ=250 +CONFIG_I2C_ALGOBIT=y +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_HELPER_AUTO=y +# CONFIG_I2C_PXA_PCI is not set +# CONFIG_IBMEBUS is not set +# CONFIG_IDE is not set +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_SPIN_UNLOCK=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_IOMMU_HELPER=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_SIT_6RD=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_PNP is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_DEBUG=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +# CONFIG_IRQ_ALL_CPUS is not set +CONFIG_IRQ_PER_CPU=y +# CONFIG_ISA is not set +CONFIG_ISDN=y +CONFIG_IWMC3200TOP_DEBUGFS=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_KARMA_PARTITION=y +CONFIG_KEXEC=y +CONFIG_KPROBES=y +CONFIG_KSM=y +CONFIG_KVM=y +# CONFIG_KVM_BOOK3S_32 is not set +CONFIG_LDM_PARTITION=y +CONFIG_LEGACY_PTY_COUNT=0 +CONFIG_LIBERTAS_MESH=y +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_LIS3L02DQ=m +CONFIG_LLC=y +CONFIG_LOGIG940_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIWHEELS_FF=y +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_LPARCFG is not set +CONFIG_MAC80211_DEBUG_MENU=y +CONFIG_MAC80211_MESH=y +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAX_RAW_DEVS=256 +# CONFIG_MEMORY_HOTREMOVE is not set +CONFIG_MFD_88PM860X=y +CONFIG_MFD_AAT2870_CORE=y +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MAX8997=y +CONFIG_MFD_MAX8998=y +CONFIG_MFD_STMPE=y +CONFIG_MFD_TC3589X=y +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_TPS6586X=y +CONFIG_MFD_TPS65910=y +CONFIG_MFD_TPS65912_I2C=y +CONFIG_MFD_TPS65912_SPI=y +CONFIG_MFD_WM831X_I2C=y +CONFIG_MFD_WM831X_SPI=y +CONFIG_MFD_WM8350_I2C=y +CONFIG_MFD_WM8994=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_DEVICES=y +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODVERSIONS=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CHAR=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MUTEX_SPIN_ON_OWNER=y +# CONFIG_NET_CALXEDA_XGMAC is not set +CONFIG_NET_DMA=y +CONFIG_NL80211_TESTMODE=y +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NODES_SHIFT=8 +CONFIG_NOP_USB_XCEIV=m +CONFIG_NVRAM=y +CONFIG_OSF_PARTITION=y +CONFIG_PANEL_DVI=m +CONFIG_PANEL_GENERIC_DPI=m +CONFIG_PARAVIRT_TIME_ACCOUNTING=n +CONFIG_PARPORT_1284=y +CONFIG_PATA_ARASAN_CF=m +CONFIG_PATA_SIS=m +CONFIG_PCCARD=m +CONFIG_PCI_SYSCALL=y +CONFIG_PDC_ADMA=m +CONFIG_PERF_COUNTERS=y +CONFIG_PHYSICAL_START=0x00000000 +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_DEVFREQ=y +CONFIG_PM_RUNTIME=y +CONFIG_POWER_SUPPLY=y +CONFIG_PPC_4K_PAGES=y +# CONFIG_PPC_64K_PAGES is not set +# CONFIG_PPC_SMLPAR is not set +# CONFIG_PPC_SPLPAR is not set +CONFIG_PPP_FILTER=y +CONFIG_PPP_MULTILINK=y +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PRINTK_TIME=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PSERIES_ENERGY=m +CONFIG_PSTORE=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_R3964=m +CONFIG_R8712U=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMOOPS=m +CONFIG_RAW_DRIVER=m +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_RELAY=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2X00=m +# CONFIG_RT2X00_LIB_DEBUGFS is not set +# CONFIG_RTAS_FLASH is not set +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTL8187=m +CONFIG_RTL8192CU=m +CONFIG_RTS5139=m +# CONFIG_RTS_PSTOR is not set +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_MV=m +CONFIG_SATA_SVW=y +# CONFIG_SCANLOG is not set +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCHED_SMT=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_DH=m +# CONFIG_SCSI_IBMVSCSIS is not set +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SECURITY_TOMOYO=y +CONFIG_SENSORS_LIS3LV02D=m +# CONFIG_SENSORS_SCH56XX_COMMON is not set +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_PCI=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIAL_PMACZILOG=y +CONFIG_SERIO_SERPORT=m +CONFIG_SGI_PARTITION=y +# CONFIG_SM_FTL is not set +CONFIG_SND=m +CONFIG_SND_BT87X_OVERCLOCK=y +CONFIG_SND_EMU10K1_SEQ=m +# CONFIG_SND_HIFIER is not set +CONFIG_SND_OMAP_SOC=m +CONFIG_SND_OMAP_SOC_MCBSP=m +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m +CONFIG_SND_OPL3_LIB_SEQ=m +# CONFIG_SND_OPL4_LIB_SEQ is not set +CONFIG_SND_PCM=m +# CONFIG_SND_PCM_OSS is not set +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_TIMER=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=m +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSE_IRQ=y +CONFIG_SPI_DESIGNWARE=y +# CONFIG_SPI_PXA2XX_PCI is not set +CONFIG_SPI_SPIDEV=m +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_XZ=y +# CONFIG_SSB_PCMCIAHOST is not set +# CONFIG_STACK_TRACER is not set +CONFIG_STAGING_MEDIA=y +CONFIG_STANDALONE=y +CONFIG_STE10XP=m +CONFIG_SUN_PARTITION=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_SYSV68_PARTITION=y +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_TABLET_USB_WACOM is not set +CONFIG_TASKSTATS=y +# CONFIG_TCG_TIS is not set +CONFIG_TCG_TPM=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_MD5SIG=y +# CONFIG_TIDSPBRIDGE is not set +CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m +# CONFIG_TPS65010 is not set +# CONFIG_TRANZPORT is not set +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_USB=m +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_UNUSED_SYMBOLS=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_XHCI=y +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_ET61X251=m +CONFIG_USB_FUSB300=m +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DWC3=m +CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_INVENTRA_DMA is not set +# CONFIG_USB_IP_COMMON is not set +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_KC2190=y +CONFIG_USB_M66592=m +CONFIG_USB_MON=y +# CONFIG_USB_MUSB_OMAP2PLUS is not set +CONFIG_USB_MUSB_TUSB6010=y +CONFIG_USB_NET2272=m +CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y +CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y +# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set +# CONFIG_USB_OTG is not set +CONFIG_USB_R8A66597=m +CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SI470X is not set +CONFIG_USB_SN9C102=m +CONFIG_VERSION_SIGNATURE="" +CONFIG_VFAT_FS=m +CONFIG_VGASTATE=m +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_VIDEO_ADV7343=m +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_THS7303=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_TVP514X=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_MMIO=m +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_RING=m +CONFIG_VIRT_DRIVERS=y +CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_VME_BUS is not set +# CONFIG_VT6656 is not set +CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_W35UND is not set +CONFIG_WAN=y +CONFIG_WATCHDOG=y +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_X25_ASY=m +CONFIG_XFS_RT=y +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.2.0.orig/debian.master/rules.d/ppc64.mk +++ linux-3.2.0/debian.master/rules.d/ppc64.mk @@ -0,0 +1,19 @@ +human_arch = PowerPC (64 bit userspace) +build_arch = powerpc +header_arch = $(build_arch) +defconfig = ppc64_defconfig +flavours = powerpc64-smp +build_image = vmlinux +kernel_file = $(build_image) +install_file = $(build_image) + +loader = yaboot + +custom_flavours = + +no_dumpfile = true +skipdbg = true +skipabi = true +skipmodule = true + +family=ubuntu --- linux-3.2.0.orig/debian.master/rules.d/armhf.mk +++ linux-3.2.0/debian.master/rules.d/armhf.mk @@ -0,0 +1,14 @@ +human_arch = ARM (hard float) +build_arch = arm +header_arch = arm +defconfig = defconfig +flavours = omap highbank +build_image = zImage +kernel_file = arch/$(build_arch)/boot/zImage +install_file = vmlinuz +no_dumpfile = true + +loader = grub + +# Flavour specific configuration. +dtb_file_highbank = arch/$(build_arch)/boot/highbank.dtb --- linux-3.2.0.orig/debian.master/rules.d/amd64.mk +++ linux-3.2.0/debian.master/rules.d/amd64.mk @@ -0,0 +1,10 @@ +human_arch = 64 bit x86 +build_arch = x86_64 +header_arch = $(build_arch) +defconfig = defconfig +flavours = generic virtual +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz +loader = grub +no_dumpfile = true --- linux-3.2.0.orig/debian.master/rules.d/i386.mk +++ linux-3.2.0/debian.master/rules.d/i386.mk @@ -0,0 +1,10 @@ +human_arch = 32 bit x86 +build_arch = i386 +header_arch = x86_64 +defconfig = defconfig +flavours = generic generic-pae virtual +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz +loader = grub +no_dumpfile = true --- linux-3.2.0.orig/debian.master/rules.d/armel.mk +++ linux-3.2.0/debian.master/rules.d/armel.mk @@ -0,0 +1,11 @@ +human_arch = ARM (soft float) +build_arch = arm +header_arch = arm +defconfig = defconfig +flavours = omap +build_image = zImage +kernel_file = arch/$(build_arch)/boot/zImage +install_file = vmlinuz +no_dumpfile = true + +loader = grub --- linux-3.2.0.orig/debian.master/rules.d/powerpc.mk +++ linux-3.2.0/debian.master/rules.d/powerpc.mk @@ -0,0 +1,19 @@ +human_arch = PowerPC (32 bit userspace) +build_arch = powerpc +header_arch = $(build_arch) +defconfig = pmac32_defconfig +flavours = powerpc-smp powerpc64-smp +build_image = vmlinux +kernel_file = $(build_image) +install_file = $(build_image) + +loader = yaboot + +custom_flavours = + +no_dumpfile = true +skipdbg = true +skipabi = true +skipmodule = true + +family=ubuntu --- linux-3.2.0.orig/usr/gen_init_cpio.c +++ linux-3.2.0/usr/gen_init_cpio.c @@ -303,7 +303,7 @@ int retval; int rc = -1; int namesize; - int i; + unsigned int i; mode |= S_IFREG; @@ -381,25 +381,28 @@ static char *cpio_replace_env(char *new_location) { - char expanded[PATH_MAX + 1]; - char env_var[PATH_MAX + 1]; - char *start; - char *end; - - for (start = NULL; (start = strstr(new_location, "${")); ) { - end = strchr(start, '}'); - if (start < end) { - *env_var = *expanded = '\0'; - strncat(env_var, start + 2, end - start - 2); - strncat(expanded, new_location, start - new_location); - strncat(expanded, getenv(env_var), PATH_MAX); - strncat(expanded, end + 1, PATH_MAX); - strncpy(new_location, expanded, PATH_MAX); - } else - break; - } + char expanded[PATH_MAX + 1]; + char env_var[PATH_MAX + 1]; + char *start; + char *end; + + for (start = NULL; (start = strstr(new_location, "${")); ) { + end = strchr(start, '}'); + if (start < end) { + *env_var = *expanded = '\0'; + strncat(env_var, start + 2, end - start - 2); + strncat(expanded, new_location, start - new_location); + strncat(expanded, getenv(env_var), + PATH_MAX - strlen(expanded)); + strncat(expanded, end + 1, + PATH_MAX - strlen(expanded)); + strncpy(new_location, expanded, PATH_MAX); + new_location[PATH_MAX] = 0; + } else + break; + } - return new_location; + return new_location; } --- linux-3.2.0.orig/samples/Makefile +++ linux-3.2.0/samples/Makefile @@ -1,4 +1,4 @@ # Makefile for Linux samples code obj-$(CONFIG_SAMPLES) += kobject/ kprobes/ tracepoints/ trace_events/ \ - hw_breakpoint/ kfifo/ kdb/ hidraw/ + hw_breakpoint/ kfifo/ kdb/ hidraw/ seccomp/ --- linux-3.2.0.orig/samples/seccomp/bpf-fancy.c +++ linux-3.2.0/samples/seccomp/bpf-fancy.c @@ -0,0 +1,102 @@ +/* + * Seccomp BPF example using a macro-based generator. + * + * Copyright (c) 2012 The Chromium OS Authors + * Author: Will Drewry + * + * The code may be used by anyone for any purpose, + * and can serve as a starting point for developing + * applications using prctl(PR_ATTACH_SECCOMP_FILTER). + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "bpf-helper.h" + +#ifndef PR_SET_NO_NEW_PRIVS +#define PR_SET_NO_NEW_PRIVS 36 +#endif + +int main(int argc, char **argv) +{ + struct bpf_labels l; + static const char msg1[] = "Please type something: "; + static const char msg2[] = "You typed: "; + char buf[256]; + struct sock_filter filter[] = { + /* TODO: LOAD_SYSCALL_NR(arch) and enforce an arch */ + LOAD_SYSCALL_NR, + SYSCALL(__NR_exit, ALLOW), + SYSCALL(__NR_exit_group, ALLOW), + SYSCALL(__NR_write, JUMP(&l, write_fd)), + SYSCALL(__NR_read, JUMP(&l, read)), + DENY, /* Don't passthrough into a label */ + + LABEL(&l, read), + ARG(0), + JNE(STDIN_FILENO, DENY), + ARG(1), + JNE((unsigned long)buf, DENY), + ARG(2), + JGE(sizeof(buf), DENY), + ALLOW, + + LABEL(&l, write_fd), + ARG(0), + JEQ(STDOUT_FILENO, JUMP(&l, write_buf)), + JEQ(STDERR_FILENO, JUMP(&l, write_buf)), + DENY, + + LABEL(&l, write_buf), + ARG(1), + JEQ((unsigned long)msg1, JUMP(&l, msg1_len)), + JEQ((unsigned long)msg2, JUMP(&l, msg2_len)), + JEQ((unsigned long)buf, JUMP(&l, buf_len)), + DENY, + + LABEL(&l, msg1_len), + ARG(2), + JLT(sizeof(msg1), ALLOW), + DENY, + + LABEL(&l, msg2_len), + ARG(2), + JLT(sizeof(msg2), ALLOW), + DENY, + + LABEL(&l, buf_len), + ARG(2), + JLT(sizeof(buf), ALLOW), + DENY, + }; + struct sock_fprog prog = { + .filter = filter, + .len = (unsigned short)(sizeof(filter)/sizeof(filter[0])), + }; + ssize_t bytes; + bpf_resolve_jumps(&l, filter, sizeof(filter)/sizeof(*filter)); + + if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) { + perror("prctl(NO_NEW_PRIVS)"); + return 1; + } + + if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &prog)) { + perror("prctl(SECCOMP)"); + return 1; + } + syscall(__NR_write, STDOUT_FILENO, msg1, strlen(msg1)); + bytes = syscall(__NR_read, STDIN_FILENO, buf, sizeof(buf)-1); + bytes = (bytes > 0 ? bytes : 0); + syscall(__NR_write, STDERR_FILENO, msg2, strlen(msg2)); + syscall(__NR_write, STDERR_FILENO, buf, bytes); + /* Now get killed */ + syscall(__NR_write, STDERR_FILENO, msg2, strlen(msg2)+2); + return 0; +} --- linux-3.2.0.orig/samples/seccomp/bpf-helper.h +++ linux-3.2.0/samples/seccomp/bpf-helper.h @@ -0,0 +1,238 @@ +/* + * Example wrapper around BPF macros. + * + * Copyright (c) 2012 The Chromium OS Authors + * Author: Will Drewry + * + * The code may be used by anyone for any purpose, + * and can serve as a starting point for developing + * applications using prctl(PR_SET_SECCOMP, 2, ...). + * + * No guarantees are provided with respect to the correctness + * or functionality of this code. + */ +#ifndef __BPF_HELPER_H__ +#define __BPF_HELPER_H__ + +#include /* for __BITS_PER_LONG */ +#include +#include +#include /* for seccomp_data */ +#include +#include +#include + +#define BPF_LABELS_MAX 256 +struct bpf_labels { + int count; + struct __bpf_label { + const char *label; + __u32 location; + } labels[BPF_LABELS_MAX]; +}; + +int bpf_resolve_jumps(struct bpf_labels *labels, + struct sock_filter *filter, size_t count); +__u32 seccomp_bpf_label(struct bpf_labels *labels, const char *label); +void seccomp_bpf_print(struct sock_filter *filter, size_t count); + +#define JUMP_JT 0xff +#define JUMP_JF 0xff +#define LABEL_JT 0xfe +#define LABEL_JF 0xfe + +#define ALLOW \ + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW) +#define DENY \ + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_KILL) +#define JUMP(labels, label) \ + BPF_JUMP(BPF_JMP+BPF_JA, FIND_LABEL((labels), (label)), \ + JUMP_JT, JUMP_JF) +#define LABEL(labels, label) \ + BPF_JUMP(BPF_JMP+BPF_JA, FIND_LABEL((labels), (label)), \ + LABEL_JT, LABEL_JF) +#define SYSCALL(nr, jt) \ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (nr), 0, 1), \ + jt + +/* Lame, but just an example */ +#define FIND_LABEL(labels, label) seccomp_bpf_label((labels), #label) + +#define EXPAND(...) __VA_ARGS__ +/* Map all width-sensitive operations */ +#if __BITS_PER_LONG == 32 + +#define JEQ(x, jt) JEQ32(x, EXPAND(jt)) +#define JNE(x, jt) JNE32(x, EXPAND(jt)) +#define JGT(x, jt) JGT32(x, EXPAND(jt)) +#define JLT(x, jt) JLT32(x, EXPAND(jt)) +#define JGE(x, jt) JGE32(x, EXPAND(jt)) +#define JLE(x, jt) JLE32(x, EXPAND(jt)) +#define JA(x, jt) JA32(x, EXPAND(jt)) +#define ARG(i) ARG_32(i) +#define LO_ARG(idx) offsetof(struct seccomp_data, args[(idx)]) + +#elif __BITS_PER_LONG == 64 + +/* Ensure that we load the logically correct offset. */ +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define ENDIAN(_lo, _hi) _lo, _hi +#define LO_ARG(idx) offsetof(struct seccomp_data, args[(idx)]) +#define HI_ARG(idx) offsetof(struct seccomp_data, args[(idx)]) + sizeof(__u32) +#elif __BYTE_ORDER == __BIG_ENDIAN +#define ENDIAN(_lo, _hi) _hi, _lo +#define LO_ARG(idx) offsetof(struct seccomp_data, args[(idx)]) + sizeof(__u32) +#define HI_ARG(idx) offsetof(struct seccomp_data, args[(idx)]) +#else +#error "Unknown endianness" +#endif + +union arg64 { + struct { + __u32 ENDIAN(lo32, hi32); + }; + __u64 u64; +}; + +#define JEQ(x, jt) \ + JEQ64(((union arg64){.u64 = (x)}).lo32, \ + ((union arg64){.u64 = (x)}).hi32, \ + EXPAND(jt)) +#define JGT(x, jt) \ + JGT64(((union arg64){.u64 = (x)}).lo32, \ + ((union arg64){.u64 = (x)}).hi32, \ + EXPAND(jt)) +#define JGE(x, jt) \ + JGE64(((union arg64){.u64 = (x)}).lo32, \ + ((union arg64){.u64 = (x)}).hi32, \ + EXPAND(jt)) +#define JNE(x, jt) \ + JNE64(((union arg64){.u64 = (x)}).lo32, \ + ((union arg64){.u64 = (x)}).hi32, \ + EXPAND(jt)) +#define JLT(x, jt) \ + JLT64(((union arg64){.u64 = (x)}).lo32, \ + ((union arg64){.u64 = (x)}).hi32, \ + EXPAND(jt)) +#define JLE(x, jt) \ + JLE64(((union arg64){.u64 = (x)}).lo32, \ + ((union arg64){.u64 = (x)}).hi32, \ + EXPAND(jt)) + +#define JA(x, jt) \ + JA64(((union arg64){.u64 = (x)}).lo32, \ + ((union arg64){.u64 = (x)}).hi32, \ + EXPAND(jt)) +#define ARG(i) ARG_64(i) + +#else +#error __BITS_PER_LONG value unusable. +#endif + +/* Loads the arg into A */ +#define ARG_32(idx) \ + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, LO_ARG(idx)) + +/* Loads hi into A and lo in X */ +#define ARG_64(idx) \ + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, LO_ARG(idx)), \ + BPF_STMT(BPF_ST, 0), /* lo -> M[0] */ \ + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, HI_ARG(idx)), \ + BPF_STMT(BPF_ST, 1) /* hi -> M[1] */ + +#define JEQ32(value, jt) \ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (value), 0, 1), \ + jt + +#define JNE32(value, jt) \ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (value), 1, 0), \ + jt + +/* Checks the lo, then swaps to check the hi. A=lo,X=hi */ +#define JEQ64(lo, hi, jt) \ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (hi), 0, 5), \ + BPF_STMT(BPF_LD+BPF_MEM, 0), /* swap in lo */ \ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (lo), 0, 2), \ + BPF_STMT(BPF_LD+BPF_MEM, 1), /* passed: swap hi back in */ \ + jt, \ + BPF_STMT(BPF_LD+BPF_MEM, 1) /* failed: swap hi back in */ + +#define JNE64(lo, hi, jt) \ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (hi), 5, 0), \ + BPF_STMT(BPF_LD+BPF_MEM, 0), /* swap in lo */ \ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (lo), 2, 0), \ + BPF_STMT(BPF_LD+BPF_MEM, 1), /* passed: swap hi back in */ \ + jt, \ + BPF_STMT(BPF_LD+BPF_MEM, 1) /* failed: swap hi back in */ + +#define JA32(value, jt) \ + BPF_JUMP(BPF_JMP+BPF_JSET+BPF_K, (value), 0, 1), \ + jt + +#define JA64(lo, hi, jt) \ + BPF_JUMP(BPF_JMP+BPF_JSET+BPF_K, (hi), 3, 0), \ + BPF_STMT(BPF_LD+BPF_MEM, 0), /* swap in lo */ \ + BPF_JUMP(BPF_JMP+BPF_JSET+BPF_K, (lo), 0, 2), \ + BPF_STMT(BPF_LD+BPF_MEM, 1), /* passed: swap hi back in */ \ + jt, \ + BPF_STMT(BPF_LD+BPF_MEM, 1) /* failed: swap hi back in */ + +#define JGE32(value, jt) \ + BPF_JUMP(BPF_JMP+BPF_JGE+BPF_K, (value), 0, 1), \ + jt + +#define JLT32(value, jt) \ + BPF_JUMP(BPF_JMP+BPF_JGE+BPF_K, (value), 1, 0), \ + jt + +/* Shortcut checking if hi > arg.hi. */ +#define JGE64(lo, hi, jt) \ + BPF_JUMP(BPF_JMP+BPF_JGT+BPF_K, (hi), 4, 0), \ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (hi), 0, 5), \ + BPF_STMT(BPF_LD+BPF_MEM, 0), /* swap in lo */ \ + BPF_JUMP(BPF_JMP+BPF_JGE+BPF_K, (lo), 0, 2), \ + BPF_STMT(BPF_LD+BPF_MEM, 1), /* passed: swap hi back in */ \ + jt, \ + BPF_STMT(BPF_LD+BPF_MEM, 1) /* failed: swap hi back in */ + +#define JLT64(lo, hi, jt) \ + BPF_JUMP(BPF_JMP+BPF_JGE+BPF_K, (hi), 0, 4), \ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (hi), 0, 5), \ + BPF_STMT(BPF_LD+BPF_MEM, 0), /* swap in lo */ \ + BPF_JUMP(BPF_JMP+BPF_JGT+BPF_K, (lo), 2, 0), \ + BPF_STMT(BPF_LD+BPF_MEM, 1), /* passed: swap hi back in */ \ + jt, \ + BPF_STMT(BPF_LD+BPF_MEM, 1) /* failed: swap hi back in */ + +#define JGT32(value, jt) \ + BPF_JUMP(BPF_JMP+BPF_JGT+BPF_K, (value), 0, 1), \ + jt + +#define JLE32(value, jt) \ + BPF_JUMP(BPF_JMP+BPF_JGT+BPF_K, (value), 1, 0), \ + jt + +/* Check hi > args.hi first, then do the GE checking */ +#define JGT64(lo, hi, jt) \ + BPF_JUMP(BPF_JMP+BPF_JGT+BPF_K, (hi), 4, 0), \ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (hi), 0, 5), \ + BPF_STMT(BPF_LD+BPF_MEM, 0), /* swap in lo */ \ + BPF_JUMP(BPF_JMP+BPF_JGT+BPF_K, (lo), 0, 2), \ + BPF_STMT(BPF_LD+BPF_MEM, 1), /* passed: swap hi back in */ \ + jt, \ + BPF_STMT(BPF_LD+BPF_MEM, 1) /* failed: swap hi back in */ + +#define JLE64(lo, hi, jt) \ + BPF_JUMP(BPF_JMP+BPF_JGT+BPF_K, (hi), 6, 0), \ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (hi), 0, 3), \ + BPF_STMT(BPF_LD+BPF_MEM, 0), /* swap in lo */ \ + BPF_JUMP(BPF_JMP+BPF_JGT+BPF_K, (lo), 2, 0), \ + BPF_STMT(BPF_LD+BPF_MEM, 1), /* passed: swap hi back in */ \ + jt, \ + BPF_STMT(BPF_LD+BPF_MEM, 1) /* failed: swap hi back in */ + +#define LOAD_SYSCALL_NR \ + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, \ + offsetof(struct seccomp_data, nr)) + +#endif /* __BPF_HELPER_H__ */ --- linux-3.2.0.orig/samples/seccomp/Makefile +++ linux-3.2.0/samples/seccomp/Makefile @@ -0,0 +1,38 @@ +# kbuild trick to avoid linker error. Can be omitted if a module is built. +obj- := dummy.o + +hostprogs-$(CONFIG_SECCOMP) := bpf-fancy dropper +bpf-fancy-objs := bpf-fancy.o bpf-helper.o + +HOSTCFLAGS_bpf-fancy.o += -I$(objtree)/usr/include +HOSTCFLAGS_bpf-fancy.o += -idirafter $(objtree)/include +HOSTCFLAGS_bpf-helper.o += -I$(objtree)/usr/include +HOSTCFLAGS_bpf-helper.o += -idirafter $(objtree)/include + +HOSTCFLAGS_dropper.o += -I$(objtree)/usr/include +HOSTCFLAGS_dropper.o += -idirafter $(objtree)/include +dropper-objs := dropper.o + +# bpf-direct.c is x86-only. +ifeq ($(SRCARCH),x86) +# List of programs to build +hostprogs-$(CONFIG_SECCOMP) += bpf-direct +bpf-direct-objs := bpf-direct.o +endif + +HOSTCFLAGS_bpf-direct.o += -I$(objtree)/usr/include +HOSTCFLAGS_bpf-direct.o += -idirafter $(objtree)/include + +# Try to match the kernel target. +ifeq ($(CONFIG_64BIT),) +HOSTCFLAGS_bpf-direct.o += -m32 +HOSTCFLAGS_dropper.o += -m32 +HOSTCFLAGS_bpf-helper.o += -m32 +HOSTCFLAGS_bpf-fancy.o += -m32 +HOSTLOADLIBES_bpf-direct += -m32 +HOSTLOADLIBES_bpf-fancy += -m32 +HOSTLOADLIBES_dropper += -m32 +endif + +# Tell kbuild to always build the programs +always := $(hostprogs-y) --- linux-3.2.0.orig/samples/seccomp/dropper.c +++ linux-3.2.0/samples/seccomp/dropper.c @@ -0,0 +1,68 @@ +/* + * Naive system call dropper built on seccomp_filter. + * + * Copyright (c) 2012 The Chromium OS Authors + * Author: Will Drewry + * + * The code may be used by anyone for any purpose, + * and can serve as a starting point for developing + * applications using prctl(PR_SET_SECCOMP, 2, ...). + * + * When run, returns the specified errno for the specified + * system call number against the given architecture. + * + * Run this one as root as PR_SET_NO_NEW_PRIVS is not called. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int install_filter(int nr, int arch, int error) +{ + struct sock_filter filter[] = { + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, + (offsetof(struct seccomp_data, arch))), + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, arch, 0, 3), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, + (offsetof(struct seccomp_data, nr))), + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, nr, 0, 1), + BPF_STMT(BPF_RET+BPF_K, + SECCOMP_RET_ERRNO|(error & SECCOMP_RET_DATA)), + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW), + }; + struct sock_fprog prog = { + .len = (unsigned short)(sizeof(filter)/sizeof(filter[0])), + .filter = filter, + }; + if (prctl(PR_SET_SECCOMP, 2, &prog)) { + perror("prctl"); + return 1; + } + return 0; +} + +int main(int argc, char **argv) +{ + if (argc < 5) { + fprintf(stderr, "Usage:\n" + "dropper []\n" + "Hint: AUDIT_ARCH_I386: 0x%X\n" + " AUDIT_ARCH_X86_64: 0x%X\n" + "\n", AUDIT_ARCH_I386, AUDIT_ARCH_X86_64); + return 1; + } + if (install_filter(strtol(argv[1], NULL, 0), strtol(argv[2], NULL, 0), + strtol(argv[3], NULL, 0))) + return 1; + execv(argv[4], &argv[4]); + printf("Failed to execv\n"); + return 255; +} --- linux-3.2.0.orig/samples/seccomp/bpf-helper.c +++ linux-3.2.0/samples/seccomp/bpf-helper.c @@ -0,0 +1,89 @@ +/* + * Seccomp BPF helper functions + * + * Copyright (c) 2012 The Chromium OS Authors + * Author: Will Drewry + * + * The code may be used by anyone for any purpose, + * and can serve as a starting point for developing + * applications using prctl(PR_ATTACH_SECCOMP_FILTER). + */ + +#include +#include + +#include "bpf-helper.h" + +int bpf_resolve_jumps(struct bpf_labels *labels, + struct sock_filter *filter, size_t count) +{ + struct sock_filter *begin = filter; + __u8 insn = count - 1; + + if (count < 1) + return -1; + /* + * Walk it once, backwards, to build the label table and do fixups. + * Since backward jumps are disallowed by BPF, this is easy. + */ + filter += insn; + for (; filter >= begin; --insn, --filter) { + if (filter->code != (BPF_JMP+BPF_JA)) + continue; + switch ((filter->jt<<8)|filter->jf) { + case (JUMP_JT<<8)|JUMP_JF: + if (labels->labels[filter->k].location == 0xffffffff) { + fprintf(stderr, "Unresolved label: '%s'\n", + labels->labels[filter->k].label); + return 1; + } + filter->k = labels->labels[filter->k].location - + (insn + 1); + filter->jt = 0; + filter->jf = 0; + continue; + case (LABEL_JT<<8)|LABEL_JF: + if (labels->labels[filter->k].location != 0xffffffff) { + fprintf(stderr, "Duplicate label use: '%s'\n", + labels->labels[filter->k].label); + return 1; + } + labels->labels[filter->k].location = insn; + filter->k = 0; /* fall through */ + filter->jt = 0; + filter->jf = 0; + continue; + } + } + return 0; +} + +/* Simple lookup table for labels. */ +__u32 seccomp_bpf_label(struct bpf_labels *labels, const char *label) +{ + struct __bpf_label *begin = labels->labels, *end; + int id; + if (labels->count == 0) { + begin->label = label; + begin->location = 0xffffffff; + labels->count++; + return 0; + } + end = begin + labels->count; + for (id = 0; begin < end; ++begin, ++id) { + if (!strcmp(label, begin->label)) + return id; + } + begin->label = label; + begin->location = 0xffffffff; + labels->count++; + return id; +} + +void seccomp_bpf_print(struct sock_filter *filter, size_t count) +{ + struct sock_filter *end = filter + count; + for ( ; filter < end; ++filter) + printf("{ code=%u,jt=%u,jf=%u,k=%u },\n", + filter->code, filter->jt, filter->jf, filter->k); +} --- linux-3.2.0.orig/samples/seccomp/bpf-direct.c +++ linux-3.2.0/samples/seccomp/bpf-direct.c @@ -0,0 +1,176 @@ +/* + * Seccomp filter example for x86 (32-bit and 64-bit) with BPF macros + * + * Copyright (c) 2012 The Chromium OS Authors + * Author: Will Drewry + * + * The code may be used by anyone for any purpose, + * and can serve as a starting point for developing + * applications using prctl(PR_SET_SECCOMP, 2, ...). + */ +#define __USE_GNU 1 +#define _GNU_SOURCE 1 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define syscall_arg(_n) (offsetof(struct seccomp_data, args[_n])) +#define syscall_nr (offsetof(struct seccomp_data, nr)) + +#if defined(__i386__) +#define REG_RESULT REG_EAX +#define REG_SYSCALL REG_EAX +#define REG_ARG0 REG_EBX +#define REG_ARG1 REG_ECX +#define REG_ARG2 REG_EDX +#define REG_ARG3 REG_ESI +#define REG_ARG4 REG_EDI +#define REG_ARG5 REG_EBP +#elif defined(__x86_64__) +#define REG_RESULT REG_RAX +#define REG_SYSCALL REG_RAX +#define REG_ARG0 REG_RDI +#define REG_ARG1 REG_RSI +#define REG_ARG2 REG_RDX +#define REG_ARG3 REG_R10 +#define REG_ARG4 REG_R8 +#define REG_ARG5 REG_R9 +#else +#error Unsupported platform +#endif + +#ifndef PR_SET_NO_NEW_PRIVS +#define PR_SET_NO_NEW_PRIVS 36 +#endif + +#ifndef SYS_SECCOMP +#define SYS_SECCOMP 1 +#endif + +static void emulator(int nr, siginfo_t *info, void *void_context) +{ + ucontext_t *ctx = (ucontext_t *)(void_context); + int syscall; + char *buf; + ssize_t bytes; + size_t len; + if (info->si_code != SYS_SECCOMP) + return; + if (!ctx) + return; + syscall = ctx->uc_mcontext.gregs[REG_SYSCALL]; + buf = (char *) ctx->uc_mcontext.gregs[REG_ARG1]; + len = (size_t) ctx->uc_mcontext.gregs[REG_ARG2]; + + if (syscall != __NR_write) + return; + if (ctx->uc_mcontext.gregs[REG_ARG0] != STDERR_FILENO) + return; + /* Redirect stderr messages to stdout. Doesn't handle EINTR, etc */ + ctx->uc_mcontext.gregs[REG_RESULT] = -1; + if (write(STDOUT_FILENO, "[ERR] ", 6) > 0) { + bytes = write(STDOUT_FILENO, buf, len); + ctx->uc_mcontext.gregs[REG_RESULT] = bytes; + } + return; +} + +static int install_emulator(void) +{ + struct sigaction act; + sigset_t mask; + memset(&act, 0, sizeof(act)); + sigemptyset(&mask); + sigaddset(&mask, SIGSYS); + + act.sa_sigaction = &emulator; + act.sa_flags = SA_SIGINFO; + if (sigaction(SIGSYS, &act, NULL) < 0) { + perror("sigaction"); + return -1; + } + if (sigprocmask(SIG_UNBLOCK, &mask, NULL)) { + perror("sigprocmask"); + return -1; + } + return 0; +} + +static int install_filter(void) +{ + struct sock_filter filter[] = { + /* Grab the system call number */ + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, syscall_nr), + /* Jump table for the allowed syscalls */ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, __NR_rt_sigreturn, 0, 1), + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW), +#ifdef __NR_sigreturn + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, __NR_sigreturn, 0, 1), + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW), +#endif + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, __NR_exit_group, 0, 1), + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW), + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, __NR_exit, 0, 1), + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW), + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, __NR_read, 1, 0), + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, __NR_write, 3, 2), + + /* Check that read is only using stdin. */ + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, syscall_arg(0)), + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, STDIN_FILENO, 4, 0), + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_KILL), + + /* Check that write is only using stdout */ + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, syscall_arg(0)), + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, STDOUT_FILENO, 1, 0), + /* Trap attempts to write to stderr */ + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, STDERR_FILENO, 1, 2), + + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW), + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_TRAP), + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_KILL), + }; + struct sock_fprog prog = { + .len = (unsigned short)(sizeof(filter)/sizeof(filter[0])), + .filter = filter, + }; + + if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) { + perror("prctl(NO_NEW_PRIVS)"); + return 1; + } + + + if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &prog)) { + perror("prctl"); + return 1; + } + return 0; +} + +#define payload(_c) (_c), sizeof((_c)) +int main(int argc, char **argv) +{ + char buf[4096]; + ssize_t bytes = 0; + if (install_emulator()) + return 1; + if (install_filter()) + return 1; + syscall(__NR_write, STDOUT_FILENO, + payload("OHAI! WHAT IS YOUR NAME? ")); + bytes = syscall(__NR_read, STDIN_FILENO, buf, sizeof(buf)); + syscall(__NR_write, STDOUT_FILENO, payload("HELLO, ")); + syscall(__NR_write, STDOUT_FILENO, buf, bytes); + syscall(__NR_write, STDERR_FILENO, + payload("Error message going to STDERR\n")); + return 0; +} --- linux-3.2.0.orig/scripts/Kbuild.include +++ linux-3.2.0/scripts/Kbuild.include @@ -98,24 +98,24 @@ # Usage: cflags-y += $(call as-option,-Wa$(comma)-isa=foo,) as-option = $(call try-run,\ - $(CC) $(KBUILD_CFLAGS) $(1) -c -xassembler /dev/null -o "$$TMP",$(1),$(2)) + $(CC) $(KBUILD_CFLAGS) $(1) -c -x assembler /dev/null -o "$$TMP",$(1),$(2)) # as-instr # Usage: cflags-y += $(call as-instr,instr,option1,option2) as-instr = $(call try-run,\ - /bin/echo -e "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" -,$(2),$(3)) + printf "%b\n" "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -x assembler -o "$$TMP" -,$(2),$(3)) # cc-option # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586) cc-option = $(call try-run,\ - $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -xc /dev/null -o "$$TMP",$(1),$(2)) + $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2)) # cc-option-yn # Usage: flag := $(call cc-option-yn,-march=winchip-c6) cc-option-yn = $(call try-run,\ - $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -xc /dev/null -o "$$TMP",y,n) + $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n) # cc-option-align # Prefix align with either -falign or -malign @@ -125,7 +125,7 @@ # cc-disable-warning # Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable) cc-disable-warning = $(call try-run,\ - $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -xc /dev/null -o "$$TMP",-Wno-$(strip $(1))) + $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) # cc-version # Usage gcc-ver := $(call cc-version) @@ -143,7 +143,7 @@ # cc-ldoption # Usage: ldflags += $(call cc-ldoption, -Wl$(comma)--hash-style=both) cc-ldoption = $(call try-run,\ - $(CC) $(1) -nostdlib -xc /dev/null -o "$$TMP",$(1),$(2)) + $(CC) $(1) -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2)) # ld-option # Usage: LDFLAGS += $(call ld-option, -X) @@ -209,7 +209,7 @@ # >$< substitution to preserve $ when reloading .cmd file # note: when using inline perl scripts [perl -e '...$$t=1;...'] # in $(cmd_xxx) double $$ your perl vars -make-cmd = $(subst \#,\\\#,$(subst $$,$$$$,$(call escsq,$(cmd_$(1))))) +make-cmd = $(subst \\,\\\\,$(subst \#,\\\#,$(subst $$,$$$$,$(call escsq,$(cmd_$(1)))))) # Find any prerequisites that is newer than target or that does not exist. # PHONY targets skipped in both cases. --- linux-3.2.0.orig/scripts/gcc-x86_64-has-stack-protector.sh +++ linux-3.2.0/scripts/gcc-x86_64-has-stack-protector.sh @@ -1,6 +1,6 @@ #!/bin/sh -echo "int foo(void) { char X[200]; return 3; }" | $* -S -xc -c -O0 -mcmodel=kernel -fstack-protector - -o - 2> /dev/null | grep -q "%gs" +echo "int foo(void) { char X[200]; return 3; }" | $* -S -x c -c -O0 -mcmodel=kernel -fstack-protector - -o - 2> /dev/null | grep -q "%gs" if [ "$?" -eq "0" ] ; then echo y else --- linux-3.2.0.orig/scripts/gcc-version.sh +++ linux-3.2.0/scripts/gcc-version.sh @@ -22,10 +22,10 @@ exit 1 fi -MAJOR=$(echo __GNUC__ | $compiler -E -xc - | tail -n 1) -MINOR=$(echo __GNUC_MINOR__ | $compiler -E -xc - | tail -n 1) +MAJOR=$(echo __GNUC__ | $compiler -E -x c - | tail -n 1) +MINOR=$(echo __GNUC_MINOR__ | $compiler -E -x c - | tail -n 1) if [ "x$with_patchlevel" != "x" ] ; then - PATCHLEVEL=$(echo __GNUC_PATCHLEVEL__ | $compiler -E -xc - | tail -n 1) + PATCHLEVEL=$(echo __GNUC_PATCHLEVEL__ | $compiler -E -x c - | tail -n 1) printf "%02d%02d%02d\\n" $MAJOR $MINOR $PATCHLEVEL else printf "%02d%02d\\n" $MAJOR $MINOR --- linux-3.2.0.orig/scripts/Makefile +++ linux-3.2.0/scripts/Makefile @@ -8,6 +8,8 @@ # conmakehash: Create arrays for initializing the kernel console tables # docproc: Used in Documentation/DocBook +HOST_EXTRACFLAGS += -I$(srctree)/tools/include + hostprogs-$(CONFIG_KALLSYMS) += kallsyms hostprogs-$(CONFIG_LOGO) += pnmtologo hostprogs-$(CONFIG_VT) += conmakehash --- linux-3.2.0.orig/scripts/depmod.sh +++ linux-3.2.0/scripts/depmod.sh @@ -9,12 +9,6 @@ DEPMOD=$1 KERNELRELEASE=$2 -if ! "$DEPMOD" -V 2>/dev/null | grep -q module-init-tools; then - echo "Warning: you may need to install module-init-tools" >&2 - echo "See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt" >&2 - sleep 1 -fi - if ! test -r System.map -a -x "$DEPMOD"; then exit 0 fi --- linux-3.2.0.orig/scripts/headers_install.pl +++ linux-3.2.0/scripts/headers_install.pl @@ -18,7 +18,9 @@ use strict; -my ($readdir, $installdir, $arch, @files) = @ARGV; +my ($readdir, $installdir, $arch, $printdir, @files) = @ARGV; + +$printdir =~ s@^include/@@; my $unifdef = "scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__"; @@ -30,6 +32,10 @@ open(my $out, '>', $tmpfile) or die "$tmpfile: $!\n"; while (my $line = <$in>) { + # Any #include which uses "" and does not have a path needs + # rewriting so that the resultant user space headers are + # safe against the use of -I-. + $line =~ s/^(\s*#\s*include\s+)"([^\/]*?)"/$1<$printdir\/$2>/; $line =~ s/([\s(])__user\s/$1/g; $line =~ s/([\s(])__force\s/$1/g; $line =~ s/([\s(])__iomem\s/$1/g; --- linux-3.2.0.orig/scripts/Makefile.headersinst +++ linux-3.2.0/scripts/Makefile.headersinst @@ -50,8 +50,8 @@ quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\ file$(if $(word 2, $(all-files)),s)) cmd_install = \ - $(PERL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \ - $(PERL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \ + $(PERL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(printdir) $(header-y); \ + $(PERL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(printdir) $(objhdr-y); \ for F in $(wrapper-files); do \ echo "\#include " > $(install)/$$F; \ done; \ --- linux-3.2.0.orig/scripts/recordmcount.h +++ linux-3.2.0/scripts/recordmcount.h @@ -462,7 +462,7 @@ succeed_file(); } if (w(txthdr->sh_type) != SHT_PROGBITS || - !(w(txthdr->sh_flags) & SHF_EXECINSTR)) + !(_w(txthdr->sh_flags) & SHF_EXECINSTR)) return NULL; return txtname; } --- linux-3.2.0.orig/scripts/gcc-x86_32-has-stack-protector.sh +++ linux-3.2.0/scripts/gcc-x86_32-has-stack-protector.sh @@ -1,6 +1,6 @@ #!/bin/sh -echo "int foo(void) { char X[200]; return 3; }" | $* -S -xc -c -O0 -fstack-protector - -o - 2> /dev/null | grep -q "%gs" +echo "int foo(void) { char X[200]; return 3; }" | $* -S -x c -c -O0 -fstack-protector - -o - 2> /dev/null | grep -q "%gs" if [ "$?" -eq "0" ] ; then echo y else --- linux-3.2.0.orig/scripts/package/buildtar +++ linux-3.2.0/scripts/package/buildtar @@ -109,7 +109,7 @@ if tar --owner=root --group=root --help >/dev/null 2>&1; then opts="--owner=root --group=root" fi - tar cf - . $opts | ${compress} > "${tarball}${file_ext}" + tar cf - boot/* lib/* $opts | ${compress} > "${tarball}${file_ext}" ) echo "Tarball successfully created in ${tarball}${file_ext}" --- linux-3.2.0.orig/scripts/package/builddeb +++ linux-3.2.0/scripts/package/builddeb @@ -238,14 +238,14 @@ fi # Build header package -(cd $srctree; find . -name Makefile -o -name Kconfig\* -o -name \*.pl > /tmp/files$$) -(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> /tmp/files$$) -(cd $objtree; find .config Module.symvers include scripts -type f >> /tmp/objfiles$$) +(cd $srctree; find . -name Makefile -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles") +(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles") +(cd $objtree; find .config Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles") destdir=$kernel_headers_dir/usr/src/linux-headers-$version mkdir -p "$destdir" -(cd $srctree; tar -c -f - -T /tmp/files$$) | (cd $destdir; tar -xf -) -(cd $objtree; tar -c -f - -T /tmp/objfiles$$) | (cd $destdir; tar -xf -) -rm -f /tmp/files$$ /tmp/objfiles$$ +(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -) +(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -) +rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles" arch=$(dpkg --print-architecture) cat <> debian/control --- linux-3.2.0.orig/scripts/kconfig/check.sh +++ linux-3.2.0/scripts/kconfig/check.sh @@ -1,6 +1,6 @@ #!/bin/sh # Needed for systems without gettext -$* -xc -o /dev/null - > /dev/null 2>&1 << EOF +$* -x c -o /dev/null - > /dev/null 2>&1 << EOF #include int main() { --- linux-3.2.0.orig/scripts/kconfig/streamline_config.pl +++ linux-3.2.0/scripts/kconfig/streamline_config.pl @@ -250,33 +250,61 @@ read_kconfig($kconfig); } +sub convert_vars { + my ($line, %vars) = @_; + + my $process = ""; + + while ($line =~ s/^(.*?)(\$\((.*?)\))//) { + my $start = $1; + my $variable = $2; + my $var = $3; + + if (defined($vars{$var})) { + $process .= $start . $vars{$var}; + } else { + $process .= $start . $variable; + } + } + + $process .= $line; + + return $process; +} + # Read all Makefiles to map the configs to the objects foreach my $makefile (@makefiles) { - my $cont = 0; + my $line = ""; + my %make_vars; open(MIN,$makefile) || die "Can't open $makefile"; while () { + # if this line ends with a backslash, continue + chomp; + if (/^(.*)\\$/) { + $line .= $1; + next; + } + + $line .= $_; + $_ = $line; + $line = ""; + my $objs; - # is this a line after a line with a backslash? - if ($cont && /(\S.*)$/) { - $objs = $1; - } - $cont = 0; + $_ = convert_vars($_, %make_vars); # collect objects after obj-$(CONFIG_FOO_BAR) if (/obj-\$\((CONFIG_[^\)]*)\)\s*[+:]?=\s*(.*)/) { $var = $1; $objs = $2; + + # check if variables are set + } elsif (/^\s*(\S+)\s*[:]?=\s*(.*\S)/) { + $make_vars{$1} = $2; } if (defined($objs)) { - # test if the line ends with a backslash - if ($objs =~ m,(.*)\\$,) { - $objs = $1; - $cont = 1; - } - foreach my $obj (split /\s+/,$objs) { $obj =~ s/-/_/g; if ($obj =~ /(.*)\.o$/) { @@ -435,6 +463,8 @@ if (defined($configs{$1})) { if ($localyesconfig) { $setconfigs{$1} = 'y'; + print "$1=y\n"; + next; } else { $setconfigs{$1} = $2; } --- linux-3.2.0.orig/scripts/kconfig/lxdialog/check-lxdialog.sh +++ linux-3.2.0/scripts/kconfig/lxdialog/check-lxdialog.sh @@ -38,7 +38,7 @@ # Check if we can link to ncurses check() { - $cc -xc - -o $tmp 2>/dev/null <<'EOF' + $cc -x c - -o $tmp 2>/dev/null <<'EOF' #include CURSES_LOC main() {} EOF --- linux-3.2.0.orig/scripts/mod/modpost.c +++ linux-3.2.0/scripts/mod/modpost.c @@ -132,8 +132,10 @@ /* strip trailing .o */ s = strrchr(p, '.'); if (s != NULL) - if (strcmp(s, ".o") == 0) + if (strcmp(s, ".o") == 0) { *s = '\0'; + mod->is_dot_o = 1; + } /* add to list */ mod->name = p; @@ -587,7 +589,8 @@ unsigned int crc; enum export export; - if (!is_vmlinux(mod->name) && strncmp(symname, "__ksymtab", 9) == 0) + if ((!is_vmlinux(mod->name) || mod->is_dot_o) && + strncmp(symname, "__ksymtab", 9) == 0) export = export_from_secname(info, get_secindex(info, sym)); else export = export_from_sec(info, get_secindex(info, sym)); @@ -849,7 +852,7 @@ #define ALL_INIT_DATA_SECTIONS \ ".init.setup$", ".init.rodata$", \ - ".devinit.rodata$", ".cpuinit.rodata$", ".meminit.rodata$" \ + ".devinit.rodata$", ".cpuinit.rodata$", ".meminit.rodata$", \ ".init.data$", ".devinit.data$", ".cpuinit.data$", ".meminit.data$" #define ALL_EXIT_DATA_SECTIONS \ ".exit.data$", ".devexit.data$", ".cpuexit.data$", ".memexit.data$" --- linux-3.2.0.orig/scripts/mod/modpost.h +++ linux-3.2.0/scripts/mod/modpost.h @@ -113,6 +113,7 @@ int has_cleanup; struct buffer dev_table_buf; char srcversion[25]; + int is_dot_o; }; struct elf_info { --- linux-3.2.0.orig/scripts/mod/file2alias.c +++ linux-3.2.0/scripts/mod/file2alias.c @@ -880,6 +880,74 @@ return 1; } +/* + * Append a match expression for a single masked hex digit. + * outp points to a pointer to the character at which to append. + * *outp is updated on return to point just after the appended text, + * to facilitate further appending. + */ +static void append_nibble_mask(char **outp, + unsigned int nibble, unsigned int mask) +{ + char *p = *outp; + unsigned int i; + + switch (mask) { + case 0: + *p++ = '?'; + break; + + case 0xf: + p += sprintf(p, "%X", nibble); + break; + + default: + /* + * Dumbly emit a match pattern for all possible matching + * digits. This could be improved in some cases using ranges, + * but it has the advantage of being trivially correct, and is + * often optimal. + */ + *p++ = '['; + for (i = 0; i < 0x10; i++) + if ((i & mask) == nibble) + p += sprintf(p, "%X", i); + *p++ = ']'; + } + + /* Ensure that the string remains NUL-terminated: */ + *p = '\0'; + + /* Advance the caller's end-of-string pointer: */ + *outp = p; +} + +/* + * looks like: "amba:dN" + * + * N is exactly 8 digits, where each is an upper-case hex digit, or + * a ? or [] pattern matching exactly one digit. + */ +static int do_amba_entry(const char *filename, + struct amba_id *id, char *alias) +{ + unsigned int digit; + char *p = alias; + + if ((id->id & id->mask) != id->id) + fatal("%s: Masked-off bit(s) of AMBA device ID are non-zero: " + "id=0x%08X, mask=0x%08X. Please fix this driver.\n", + filename, id->id, id->mask); + + p += sprintf(alias, "amba:d"); + for (digit = 0; digit < 8; digit++) + append_nibble_mask(&p, + (id->id >> (4 * (7 - digit))) & 0xf, + (id->mask >> (4 * (7 - digit))) & 0xf); + + return 1; +} + /* Ignore any prefix, eg. some architectures prepend _ */ static inline int sym_is(const char *symbol, const char *name) { @@ -926,6 +994,10 @@ if (!sym->st_shndx || get_secindex(info, sym) >= info->num_sections) return; + /* We're looking for an object */ + if (ELF_ST_TYPE(sym->st_info) != STT_OBJECT) + return; + /* Handle all-NULL symbols allocated into .bss */ if (info->sechdrs[get_secindex(info, sym)].sh_type & SHT_NOBITS) { zeros = calloc(1, sym->st_size); @@ -1047,6 +1119,10 @@ do_table(symval, sym->st_size, sizeof(struct isapnp_device_id), "isa", do_isapnp_entry, mod); + else if (sym_is(symname, "__mod_amba_device_table")) + do_table(symval, sym->st_size, + sizeof(struct amba_id), "amba", + do_amba_entry, mod); free(zeros); } --- linux-3.2.0.orig/include/Kbuild +++ linux-3.2.0/include/Kbuild @@ -9,4 +9,3 @@ header-y += video/ header-y += drm/ header-y += xen/ -header-y += scsi/ --- linux-3.2.0.orig/include/xen/events.h +++ linux-3.2.0/include/xen/events.h @@ -96,6 +96,9 @@ /* Return the pirq allocated to the irq. */ int xen_pirq_from_irq(unsigned irq); +/* Return the irq allocated to the gsi */ +int xen_irq_from_gsi(unsigned gsi); + /* Determine whether to ignore this IRQ if it is passed to a guest. */ int xen_test_irq_shared(int irq); --- linux-3.2.0.orig/include/xen/interface/platform.h +++ linux-3.2.0/include/xen/interface/platform.h @@ -297,6 +297,22 @@ }; DEFINE_GUEST_HANDLE_STRUCT(xenpf_set_processor_pminfo); +#define XENPF_get_cpuinfo 55 +struct xenpf_pcpuinfo { + /* IN */ + uint32_t xen_cpuid; + /* OUT */ + /* The maxium cpu_id that is present */ + uint32_t max_present; +#define XEN_PCPU_FLAGS_ONLINE 1 + /* Correponding xen_cpuid is not present*/ +#define XEN_PCPU_FLAGS_INVALID 2 + uint32_t flags; + uint32_t apic_id; + uint32_t acpi_id; +}; +DEFINE_GUEST_HANDLE_STRUCT(xenpf_pcpuinfo); + struct xen_platform_op { uint32_t cmd; uint32_t interface_version; /* XENPF_INTERFACE_VERSION */ @@ -312,6 +328,7 @@ struct xenpf_change_freq change_freq; struct xenpf_getidletime getidletime; struct xenpf_set_processor_pminfo set_pminfo; + struct xenpf_pcpuinfo pcpu_info; uint8_t pad[128]; } u; }; --- linux-3.2.0.orig/include/xen/interface/io/netif.h +++ linux-3.2.0/include/xen/interface/io/netif.h @@ -13,6 +13,24 @@ #include "../grant_table.h" /* + * Older implementation of Xen network frontend / backend has an + * implicit dependency on the MAX_SKB_FRAGS as the maximum number of + * ring slots a skb can use. Netfront / netback may not work as + * expected when frontend and backend have different MAX_SKB_FRAGS. + * + * A better approach is to add mechanism for netfront / netback to + * negotiate this value. However we cannot fix all possible + * frontends, so we need to define a value which states the minimum + * slots backend must support. + * + * The minimum value derives from older Linux kernel's MAX_SKB_FRAGS + * (18), which is proved to work with most frontends. Any new backend + * which doesn't negotiate with frontend should expect frontend to + * send a valid packet using slots up to this value. + */ +#define XEN_NETIF_NR_SLOTS_MIN 18 + +/* * Notifications after enqueuing any type of message should be conditional on * the appropriate req_event or rsp_event field in the shared ring. * If the client sends notification for rx requests then it should specify @@ -47,6 +65,7 @@ #define _XEN_NETTXF_extra_info (3) #define XEN_NETTXF_extra_info (1U<<_XEN_NETTXF_extra_info) +#define XEN_NETIF_MAX_TX_SIZE 0xFFFF struct xen_netif_tx_request { grant_ref_t gref; /* Reference to buffer page */ uint16_t offset; /* Offset within buffer page */ --- linux-3.2.0.orig/include/xen/interface/io/ring.h +++ linux-3.2.0/include/xen/interface/io/ring.h @@ -188,6 +188,11 @@ #define RING_REQUEST_CONS_OVERFLOW(_r, _cons) \ (((_cons) - (_r)->rsp_prod_pvt) >= RING_SIZE(_r)) +/* Ill-behaved frontend determination: Can there be this many requests? */ +#define RING_REQUEST_PROD_OVERFLOW(_r, _prod) \ + (((_prod) - (_r)->rsp_prod_pvt) > RING_SIZE(_r)) + + #define RING_PUSH_REQUESTS(_r) do { \ wmb(); /* back sees requests /before/ updated producer index */ \ (_r)->sring->req_prod = (_r)->req_prod_pvt; \ --- linux-3.2.0.orig/include/xen/interface/io/blkif.h +++ linux-3.2.0/include/xen/interface/io/blkif.h @@ -142,6 +142,18 @@ DEFINE_RING_TYPES(blkif, struct blkif_request, struct blkif_response); +/* + * Maximum number of pages used for a blkif ring + * max-ring-pages advertised by blkback to blkfront may be lowered at blkback + * mod load time. Load time param set to default. + */ +#define BLKIF_MAX_NUM_RING_PAGES 16 +#define BLKIF_MAX_NUM_RING_PAGES_DFLT 4 +#if BLKIF_MAX_NUM_RING_PAGES < BLKIF_MAX_NUM_RING_PAGES_DFLT +#undef BLKIF_MAX_NUM_RING_PAGES_DFLT +#define BLKIF_MAX_NUM_RING_PAGES_DFLT BLKIF_MAX_NUM_RING_PAGES +#endif + #define VDISK_CDROM 0x1 #define VDISK_REMOVABLE 0x2 #define VDISK_READONLY 0x4 --- linux-3.2.0.orig/include/xen/interface/io/xs_wire.h +++ linux-3.2.0/include/xen/interface/io/xs_wire.h @@ -87,4 +87,7 @@ XENSTORE_RING_IDX rsp_cons, rsp_prod; }; +/* Violating this is very bad. See docs/misc/xenstore.txt. */ +#define XENSTORE_PAYLOAD_MAX 4096 + #endif /* _XS_WIRE_H */ --- linux-3.2.0.orig/include/acpi/acpi_numa.h +++ linux-3.2.0/include/acpi/acpi_numa.h @@ -15,6 +15,7 @@ extern int node_to_pxm(int); extern void __acpi_map_pxm_to_node(int, int); extern int acpi_map_pxm_to_node(int); +extern unsigned char acpi_srat_revision; #endif /* CONFIG_ACPI_NUMA */ #endif /* __ACP_NUMA_H */ --- linux-3.2.0.orig/include/net/sock.h +++ linux-3.2.0/include/net/sock.h @@ -194,6 +194,7 @@ * @sk_route_nocaps: forbidden route capabilities (e.g NETIF_F_GSO_MASK) * @sk_gso_type: GSO type (e.g. %SKB_GSO_TCPV4) * @sk_gso_max_size: Maximum GSO segment size to build + * @sk_gso_max_segs: Maximum number of GSO segments * @sk_lingertime: %SO_LINGER l_linger setting * @sk_backlog: always used with the per-socket spinlock held * @sk_callback_lock: used with the callbacks in the end of this struct @@ -310,6 +311,7 @@ int sk_route_nocaps; int sk_gso_type; unsigned int sk_gso_max_size; + u16 sk_gso_max_segs; int sk_rcvlowat; unsigned long sk_lingertime; struct sk_buff_head sk_error_queue; @@ -732,6 +734,18 @@ struct raw_hashinfo; struct module; +/* + * caches using SLAB_DESTROY_BY_RCU should let .next pointer from nulls nodes + * un-modified. Special care is taken when initializing object to zero. + */ +static inline void sk_prot_clear_nulls(struct sock *sk, int size) +{ + if (offsetof(struct sock, sk_node.next) != 0) + memset(sk, 0, offsetof(struct sock, sk_node.next)); + memset(&sk->sk_node.pprev, 0, + size - offsetof(struct sock, sk_node.pprev)); +} + /* Networking protocol blocks we attach to sockets. * socket layer -> transport layer interface * transport -> network interface is defined by struct inet_proto --- linux-3.2.0.orig/include/net/sch_generic.h +++ linux-3.2.0/include/net/sch_generic.h @@ -220,9 +220,19 @@ struct qdisc_skb_cb { unsigned int pkt_len; - long data[]; + u16 bond_queue_mapping; + u16 _pad; + unsigned char data[20]; }; +static inline void qdisc_cb_private_validate(const struct sk_buff *skb, int sz) +{ + struct qdisc_skb_cb *qcb; + + BUILD_BUG_ON(sizeof(skb->cb) < offsetof(struct qdisc_skb_cb, data) + sz); + BUILD_BUG_ON(sizeof(qcb->data) < sz); +} + static inline int qdisc_qlen(const struct Qdisc *q) { return q->q.qlen; --- linux-3.2.0.orig/include/net/route.h +++ linux-3.2.0/include/net/route.h @@ -270,6 +270,7 @@ if (IS_ERR(rt)) return rt; ip_rt_put(rt); + flowi4_update_output(fl4, oif, tos, fl4->daddr, fl4->saddr); } security_sk_classify_flow(sk, flowi4_to_flowi(fl4)); return ip_route_output_flow(net, fl4, sk); @@ -284,6 +285,9 @@ fl4->fl4_dport = dport; fl4->fl4_sport = sport; ip_rt_put(rt); + flowi4_update_output(fl4, sk->sk_bound_dev_if, + RT_CONN_FLAGS(sk), fl4->daddr, + fl4->saddr); security_sk_classify_flow(sk, flowi4_to_flowi(fl4)); return ip_route_output_flow(sock_net(sk), fl4, sk); } --- linux-3.2.0.orig/include/net/scm.h +++ linux-3.2.0/include/net/scm.h @@ -50,7 +50,7 @@ { scm->pid = get_pid(pid); scm->cred = cred ? get_cred(cred) : NULL; - cred_to_ucred(pid, cred, &scm->creds); + cred_real_to_ucred(pid, cred, &scm->creds); } static __inline__ void scm_destroy_cred(struct scm_cookie *scm) @@ -71,9 +71,11 @@ } static __inline__ int scm_send(struct socket *sock, struct msghdr *msg, - struct scm_cookie *scm) + struct scm_cookie *scm, bool forcecreds) { memset(scm, 0, sizeof(*scm)); + if (forcecreds) + scm_set_cred(scm, task_tgid(current), current_cred()); unix_get_peersec_dgram(sock, scm); if (msg->msg_controllen <= 0) return 0; --- linux-3.2.0.orig/include/net/ipv6.h +++ linux-3.2.0/include/net/ipv6.h @@ -15,6 +15,7 @@ #include #include +#include #include #include #include @@ -386,6 +387,17 @@ void ip6_frag_init(struct inet_frag_queue *q, void *a); int ip6_frag_match(struct inet_frag_queue *q, void *a); +/* more secured version of ipv6_addr_hash() */ +static inline u32 ipv6_addr_jhash(const struct in6_addr *a) +{ + u32 v = (__force u32)a->s6_addr32[0] ^ (__force u32)a->s6_addr32[1]; + + return jhash_3words(v, + (__force u32)a->s6_addr32[2], + (__force u32)a->s6_addr32[3], + ipv6_hash_secret); +} + static inline int ipv6_addr_any(const struct in6_addr *a) { return (a->s6_addr32[0] | a->s6_addr32[1] | --- linux-3.2.0.orig/include/net/mac80211.h +++ linux-3.2.0/include/net/mac80211.h @@ -1128,6 +1128,10 @@ * @IEEE80211_HW_TX_AMPDU_SETUP_IN_HW: The device handles TX A-MPDU session * setup strictly in HW. mac80211 should not attempt to do this in * software. + * + * @IEEE80211_HW_TEARDOWN_AGGR_ON_BAR_FAIL: On this hardware TX BA session + * should be tear down once BAR frame will not be acked. + * */ enum ieee80211_hw_flags { IEEE80211_HW_HAS_RATE_CONTROL = 1<<0, @@ -1154,6 +1158,7 @@ IEEE80211_HW_SUPPORTS_PER_STA_GTK = 1<<21, IEEE80211_HW_AP_LINK_PS = 1<<22, IEEE80211_HW_TX_AMPDU_SETUP_IN_HW = 1<<23, + IEEE80211_HW_TEARDOWN_AGGR_ON_BAR_FAIL = 1<<26, }; /** --- linux-3.2.0.orig/include/net/cipso_ipv4.h +++ linux-3.2.0/include/net/cipso_ipv4.h @@ -42,6 +42,7 @@ #include #include #include +#include /* known doi values */ #define CIPSO_V4_DOI_UNKNOWN 0x00000000 @@ -285,7 +286,33 @@ static inline int cipso_v4_validate(const struct sk_buff *skb, unsigned char **option) { - return -ENOSYS; + unsigned char *opt = *option; + unsigned char err_offset = 0; + u8 opt_len = opt[1]; + u8 opt_iter; + + if (opt_len < 8) { + err_offset = 1; + goto out; + } + + if (get_unaligned_be32(&opt[2]) == 0) { + err_offset = 2; + goto out; + } + + for (opt_iter = 6; opt_iter < opt_len;) { + if (opt[opt_iter + 1] > (opt_len - opt_iter)) { + err_offset = opt_iter + 1; + goto out; + } + opt_iter += opt[opt_iter + 1]; + } + +out: + *option = opt + err_offset; + return err_offset; + } #endif /* CONFIG_NETLABEL */ --- linux-3.2.0.orig/include/net/inet_frag.h +++ linux-3.2.0/include/net/inet_frag.h @@ -33,6 +33,13 @@ #define INETFRAGS_HASHSZ 64 +/* averaged: + * max_depth = default ipfrag_high_thresh / INETFRAGS_HASHSZ / + * rounded up (SKB_TRUELEN(0) + sizeof(struct ipq or + * struct frag_queue)) + */ +#define INETFRAGS_MAXDEPTH 128 + struct inet_frags { struct hlist_head hash[INETFRAGS_HASHSZ]; rwlock_t lock; @@ -64,6 +71,8 @@ struct inet_frag_queue *inet_frag_find(struct netns_frags *nf, struct inet_frags *f, void *key, unsigned int hash) __releases(&f->lock); +void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q, + const char *prefix); static inline void inet_frag_put(struct inet_frag_queue *q, struct inet_frags *f) { --- linux-3.2.0.orig/include/net/rtnetlink.h +++ linux-3.2.0/include/net/rtnetlink.h @@ -6,7 +6,7 @@ typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, void *); typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); -typedef u16 (*rtnl_calcit_func)(struct sk_buff *); +typedef u16 (*rtnl_calcit_func)(struct sk_buff *, struct nlmsghdr *); extern int __rtnl_register(int protocol, int msgtype, rtnl_doit_func, rtnl_dumpit_func, --- linux-3.2.0.orig/include/net/ip_vs.h +++ linux-3.2.0/include/net/ip_vs.h @@ -1353,7 +1353,7 @@ struct nf_conn *ct = nf_ct_get(skb, &ctinfo); if (!ct || !nf_ct_is_untracked(ct)) { - nf_reset(skb); + nf_conntrack_put(skb->nfct); skb->nfct = &nf_ct_untracked_get()->ct_general; skb->nfctinfo = IP_CT_NEW; nf_conntrack_get(skb->nfct); --- linux-3.2.0.orig/include/net/xfrm.h +++ linux-3.2.0/include/net/xfrm.h @@ -269,6 +269,9 @@ int (*check)(struct xfrm_state *x, struct sk_buff *skb, __be32 net_seq); + int (*recheck)(struct xfrm_state *x, + struct sk_buff *skb, + __be32 net_seq); void (*notify)(struct xfrm_state *x, int event); int (*overflow)(struct xfrm_state *x, struct sk_buff *skb); }; --- linux-3.2.0.orig/include/net/cfg80211.h +++ linux-3.2.0/include/net/cfg80211.h @@ -2431,6 +2431,15 @@ unsigned int __attribute_const__ ieee80211_hdrlen(__le16 fc); /** + * ieee80211_get_mesh_hdrlen - get mesh extension header length + * @meshhdr: the mesh extension header, only the flags field + * (first byte) will be accessed + * Returns the length of the extension header, which is always at + * least 6 bytes and at most 18 if address 5 and 6 are present. + */ +unsigned int ieee80211_get_mesh_hdrlen(struct ieee80211s_hdr *meshhdr); + +/** * DOC: Data path helpers * * In addition to generic utilities, cfg80211 also offers --- linux-3.2.0.orig/include/net/udp.h +++ linux-3.2.0/include/net/udp.h @@ -180,6 +180,7 @@ extern void udp_err(struct sk_buff *, u32); extern int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, size_t len); +extern int udp_push_pending_frames(struct sock *sk); extern void udp_flush_pending_frames(struct sock *sk); extern int udp_rcv(struct sk_buff *skb); extern int udp_ioctl(struct sock *sk, int cmd, unsigned long arg); --- linux-3.2.0.orig/include/net/inet_sock.h +++ linux-3.2.0/include/net/inet_sock.h @@ -199,6 +199,7 @@ extern int inet_sk_rebuild_header(struct sock *sk); extern u32 inet_ehash_secret; +extern u32 ipv6_hash_secret; extern void build_ehash_secret(void); static inline unsigned int inet_ehashfn(struct net *net, --- linux-3.2.0.orig/include/net/inet6_hashtables.h +++ linux-3.2.0/include/net/inet6_hashtables.h @@ -28,16 +28,16 @@ struct inet_hashinfo; -/* I have no idea if this is a good hash for v6 or not. -DaveM */ static inline unsigned int inet6_ehashfn(struct net *net, const struct in6_addr *laddr, const u16 lport, const struct in6_addr *faddr, const __be16 fport) { - u32 ports = (lport ^ (__force u16)fport); + u32 ports = (((u32)lport) << 16) | (__force u32)fport; return jhash_3words((__force u32)laddr->s6_addr32[3], - (__force u32)faddr->s6_addr32[3], - ports, inet_ehash_secret + net_hash_mix(net)); + ipv6_addr_jhash(faddr), + ports, + inet_ehash_secret + net_hash_mix(net)); } static inline int inet6_sk_ehashfn(const struct sock *sk) --- linux-3.2.0.orig/include/net/dsa.h +++ linux-3.2.0/include/net/dsa.h @@ -11,6 +11,10 @@ #ifndef __LINUX_NET_DSA_H #define __LINUX_NET_DSA_H +#include +#include +#include + #define DSA_MAX_SWITCHES 4 #define DSA_MAX_PORTS 12 @@ -54,8 +58,143 @@ struct dsa_chip_data *chip; }; -extern bool dsa_uses_dsa_tags(void *dsa_ptr); -extern bool dsa_uses_trailer_tags(void *dsa_ptr); +struct dsa_switch_tree { + /* + * Configuration data for the platform device that owns + * this dsa switch tree instance. + */ + struct dsa_platform_data *pd; + + /* + * Reference to network device to use, and which tagging + * protocol to use. + */ + struct net_device *master_netdev; + __be16 tag_protocol; + + /* + * The switch and port to which the CPU is attached. + */ + s8 cpu_switch; + s8 cpu_port; + + /* + * Link state polling. + */ + int link_poll_needed; + struct work_struct link_poll_work; + struct timer_list link_poll_timer; + + /* + * Data for the individual switch chips. + */ + struct dsa_switch *ds[DSA_MAX_SWITCHES]; +}; + +struct dsa_switch { + /* + * Parent switch tree, and switch index. + */ + struct dsa_switch_tree *dst; + int index; + + /* + * Configuration data for this switch. + */ + struct dsa_chip_data *pd; + + /* + * The used switch driver. + */ + struct dsa_switch_driver *drv; + + /* + * Reference to mii bus to use. + */ + struct mii_bus *master_mii_bus; + + /* + * Slave mii_bus and devices for the individual ports. + */ + u32 dsa_port_mask; + u32 phys_port_mask; + struct mii_bus *slave_mii_bus; + struct net_device *ports[DSA_MAX_PORTS]; +}; + +static inline bool dsa_is_cpu_port(struct dsa_switch *ds, int p) +{ + return !!(ds->index == ds->dst->cpu_switch && p == ds->dst->cpu_port); +} + +static inline u8 dsa_upstream_port(struct dsa_switch *ds) +{ + struct dsa_switch_tree *dst = ds->dst; + + /* + * If this is the root switch (i.e. the switch that connects + * to the CPU), return the cpu port number on this switch. + * Else return the (DSA) port number that connects to the + * switch that is one hop closer to the cpu. + */ + if (dst->cpu_switch == ds->index) + return dst->cpu_port; + else + return ds->pd->rtable[dst->cpu_switch]; +} + +struct dsa_switch_driver { + struct list_head list; + + __be16 tag_protocol; + int priv_size; + + /* + * Probing and setup. + */ + char *(*probe)(struct mii_bus *bus, int sw_addr); + int (*setup)(struct dsa_switch *ds); + int (*set_addr)(struct dsa_switch *ds, u8 *addr); + + /* + * Access to the switch's PHY registers. + */ + int (*phy_read)(struct dsa_switch *ds, int port, int regnum); + int (*phy_write)(struct dsa_switch *ds, int port, + int regnum, u16 val); + + /* + * Link state polling and IRQ handling. + */ + void (*poll_link)(struct dsa_switch *ds); + + /* + * ethtool hardware statistics. + */ + void (*get_strings)(struct dsa_switch *ds, int port, uint8_t *data); + void (*get_ethtool_stats)(struct dsa_switch *ds, + int port, uint64_t *data); + int (*get_sset_count)(struct dsa_switch *ds); +}; + +void register_switch_driver(struct dsa_switch_driver *type); +void unregister_switch_driver(struct dsa_switch_driver *type); +/* + * The original DSA tag format and some other tag formats have no + * ethertype, which means that we need to add a little hack to the + * networking receive path to make sure that received frames get + * the right ->protocol assigned to them when one of those tag + * formats is in use. + */ +static inline bool dsa_uses_dsa_tags(struct dsa_switch_tree *dst) +{ + return !!(dst->tag_protocol == htons(ETH_P_DSA)); +} + +static inline bool dsa_uses_trailer_tags(struct dsa_switch_tree *dst) +{ + return !!(dst->tag_protocol == htons(ETH_P_TRAILER)); +} #endif --- linux-3.2.0.orig/include/net/dst.h +++ linux-3.2.0/include/net/dst.h @@ -54,6 +54,8 @@ #define DST_NOCACHE 0x0010 #define DST_NOCOUNT 0x0020 #define DST_NOPEER 0x0040 +#define DST_FAKE_RTABLE 0x0080 +#define DST_XFRM_TUNNEL 0x0100 short error; short obsolete; --- linux-3.2.0.orig/include/net/inet_connection_sock.h +++ linux-3.2.0/include/net/inet_connection_sock.h @@ -317,6 +317,7 @@ const unsigned long max_rto); extern void inet_csk_destroy_sock(struct sock *sk); +extern void inet_csk_prepare_forced_close(struct sock *sk); /* * LISTEN is a special case for poll.. --- linux-3.2.0.orig/include/net/tcp.h +++ linux-3.2.0/include/net/tcp.h @@ -251,6 +251,7 @@ extern int sysctl_tcp_cookie_size; extern int sysctl_tcp_thin_linear_timeouts; extern int sysctl_tcp_thin_dupack; +extern int sysctl_tcp_challenge_ack_limit; extern atomic_long_t tcp_memory_allocated; extern struct percpu_counter tcp_sockets_allocated; @@ -834,6 +835,14 @@ extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh); extern __u32 tcp_init_cwnd(const struct tcp_sock *tp, const struct dst_entry *dst); +/* The maximum number of MSS of available cwnd for which TSO defers + * sending if not using sysctl_tcp_tso_win_divisor. + */ +static inline __u32 tcp_max_tso_deferred_mss(const struct tcp_sock *tp) +{ + return 3; +} + /* Slow start with delack produces 3 packets of burst, so that * it is safe "de facto". This will be the default - same as * the default reordering threshold - but if reordering increases, @@ -930,6 +939,7 @@ if (sysctl_tcp_low_latency || !tp->ucopy.task) return 0; + skb_dst_force(skb); __skb_queue_tail(&tp->ucopy.prequeue, skb); tp->ucopy.memory += skb->truesize; if (tp->ucopy.memory > sk->sk_rcvbuf) { --- linux-3.2.0.orig/include/net/flow.h +++ linux-3.2.0/include/net/flow.h @@ -90,6 +90,16 @@ fl4->fl4_dport = dport; fl4->fl4_sport = sport; } + +/* Reset some input parameters after previous lookup */ +static inline void flowi4_update_output(struct flowi4 *fl4, int oif, __u8 tos, + __be32 daddr, __be32 saddr) +{ + fl4->flowi4_oif = oif; + fl4->flowi4_tos = tos; + fl4->daddr = daddr; + fl4->saddr = saddr; +} struct flowi6 { --- linux-3.2.0.orig/include/net/ip_fib.h +++ linux-3.2.0/include/net/ip_fib.h @@ -129,18 +129,16 @@ }; #ifdef CONFIG_IP_ROUTE_MULTIPATH - #define FIB_RES_NH(res) ((res).fi->fib_nh[(res).nh_sel]) - -#define FIB_TABLE_HASHSZ 2 - #else /* CONFIG_IP_ROUTE_MULTIPATH */ - #define FIB_RES_NH(res) ((res).fi->fib_nh[0]) +#endif /* CONFIG_IP_ROUTE_MULTIPATH */ +#ifdef CONFIG_IP_MULTIPLE_TABLES #define FIB_TABLE_HASHSZ 256 - -#endif /* CONFIG_IP_ROUTE_MULTIPATH */ +#else +#define FIB_TABLE_HASHSZ 2 +#endif extern __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh); --- linux-3.2.0.orig/include/net/addrconf.h +++ linux-3.2.0/include/net/addrconf.h @@ -81,6 +81,9 @@ const struct in6_addr *daddr, unsigned int srcprefs, struct in6_addr *saddr); +extern int __ipv6_get_lladdr(struct inet6_dev *idev, + struct in6_addr *addr, + unsigned char banned_flags); extern int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr, unsigned char banned_flags); --- linux-3.2.0.orig/include/net/netfilter/nf_conntrack_ecache.h +++ linux-3.2.0/include/net/netfilter/nf_conntrack_ecache.h @@ -18,6 +18,7 @@ u16 ctmask; /* bitmask of ct events to be delivered */ u16 expmask; /* bitmask of expect events to be delivered */ u32 pid; /* netlink pid of destroyer */ + struct timer_list timeout; }; static inline struct nf_conntrack_ecache * --- linux-3.2.0.orig/include/net/bluetooth/hci.h +++ linux-3.2.0/include/net/bluetooth/hci.h @@ -84,6 +84,7 @@ HCI_SERVICE_CACHE, HCI_LINK_KEYS, HCI_DEBUG_KEYS, + HCI_UNREGISTER, HCI_RESET, }; --- linux-3.2.0.orig/include/net/bluetooth/hci_core.h +++ linux-3.2.0/include/net/bluetooth/hci_core.h @@ -233,6 +233,7 @@ void (*destruct)(struct hci_dev *hdev); void (*notify)(struct hci_dev *hdev, unsigned int evt); int (*ioctl)(struct hci_dev *hdev, unsigned int cmd, unsigned long arg); + void (*load_firmware)(struct hci_dev *hdev); }; struct hci_conn { --- linux-3.2.0.orig/include/net/bluetooth/smp.h +++ linux-3.2.0/include/net/bluetooth/smp.h @@ -131,7 +131,7 @@ }; /* SMP Commands */ -int smp_conn_security(struct l2cap_conn *conn, __u8 sec_level); +int smp_conn_security(struct hci_conn *hcon, __u8 sec_level); int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb); int smp_distribute_keys(struct l2cap_conn *conn, __u8 force); --- linux-3.2.0.orig/include/net/sctp/sctp.h +++ linux-3.2.0/include/net/sctp/sctp.h @@ -703,4 +703,17 @@ addr->v6.sin6_addr.s6_addr32[2] = htonl(0x0000ffff); } +/* The cookie is always 0 since this is how it's used in the + * pmtu code. + */ +static inline struct dst_entry *sctp_transport_dst_check(struct sctp_transport *t) +{ + if (t->dst && !dst_check(t->dst, 0)) { + dst_release(t->dst); + t->dst = NULL; + } + + return t->dst; +} + #endif /* __net_sctp_h__ */ --- linux-3.2.0.orig/include/net/netns/generic.h +++ linux-3.2.0/include/net/netns/generic.h @@ -41,6 +41,7 @@ ptr = ng->ptr[id - 1]; rcu_read_unlock(); + BUG_ON(!ptr); return ptr; } #endif --- linux-3.2.0.orig/include/target/target_core_transport.h +++ linux-3.2.0/include/target/target_core_transport.h @@ -129,8 +129,8 @@ struct target_core_fabric_ops *, struct se_session *, u32, int, int, unsigned char *); -void *transport_kmap_first_data_page(struct se_cmd *cmd); -void transport_kunmap_first_data_page(struct se_cmd *cmd); +void *transport_kmap_data_sg(struct se_cmd *); +void transport_kunmap_data_sg(struct se_cmd *); extern int transport_generic_allocate_tasks(struct se_cmd *, unsigned char *); extern int transport_handle_cdb_direct(struct se_cmd *); extern int transport_generic_handle_cdb_map(struct se_cmd *); --- linux-3.2.0.orig/include/target/target_core_device.h +++ linux-3.2.0/include/target/target_core_device.h @@ -50,7 +50,7 @@ extern int core_dev_del_lun(struct se_portal_group *, u32); extern struct se_lun *core_get_lun_from_tpg(struct se_portal_group *, u32); extern struct se_lun_acl *core_dev_init_initiator_node_lun_acl(struct se_portal_group *, - u32, char *, int *); + struct se_node_acl *, u32, int *); extern int core_dev_add_initiator_node_lun_acl(struct se_portal_group *, struct se_lun_acl *, u32, u32); extern int core_dev_del_initiator_node_lun_acl(struct se_portal_group *, --- linux-3.2.0.orig/include/target/target_core_base.h +++ linux-3.2.0/include/target/target_core_base.h @@ -34,6 +34,7 @@ #define TRANSPORT_SENSE_BUFFER SCSI_SENSE_BUFFERSIZE /* Used by transport_send_check_condition_and_sense() */ #define SPC_SENSE_KEY_OFFSET 2 +#define SPC_ADD_SENSE_LEN_OFFSET 7 #define SPC_ASC_KEY_OFFSET 12 #define SPC_ASCQ_KEY_OFFSET 13 #define TRANSPORT_IQN_LEN 224 @@ -156,6 +157,7 @@ TCM_CHECK_CONDITION_UNIT_ATTENTION = 0x0e, TCM_CHECK_CONDITION_NOT_READY = 0x0f, TCM_RESERVATION_CONFLICT = 0x10, + TCM_ADDRESS_OUT_OF_RANGE = 0x11, }; struct se_obj { @@ -485,6 +487,7 @@ struct scatterlist *t_data_sg; unsigned int t_data_nents; + void *t_data_vmap; struct scatterlist *t_bidi_data_sg; unsigned int t_bidi_data_nents; --- linux-3.2.0.orig/include/linux/acpi.h +++ linux-3.2.0/include/linux/acpi.h @@ -151,6 +151,7 @@ extern int ec_transaction(u8 command, const u8 *wdata, unsigned wdata_len, u8 *rdata, unsigned rdata_len); +extern acpi_handle ec_get_handle(void); #if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE) --- linux-3.2.0.orig/include/linux/connector.h +++ linux-3.2.0/include/linux/connector.h @@ -43,6 +43,7 @@ #define CN_IDX_DRBD 0x8 #define CN_VAL_DRBD 0x1 #define CN_KVP_IDX 0x9 /* HyperV KVP */ +#define CN_KVP_VAL 0x1 /* queries from the kernel */ #define CN_NETLINK_USERS 10 /* Highest index + 1 */ --- linux-3.2.0.orig/include/linux/kd.h +++ linux-3.2.0/include/linux/kd.h @@ -45,6 +45,7 @@ #define KD_GRAPHICS 0x01 #define KD_TEXT0 0x02 /* obsolete */ #define KD_TEXT1 0x03 /* obsolete */ +#define KD_TRANSPARENT 0x04 #define KDGETMODE 0x4B3B /* get current mode */ #define KDMAPDISP 0x4B3C /* map display into address space */ --- linux-3.2.0.orig/include/linux/memory.h +++ linux-3.2.0/include/linux/memory.h @@ -20,7 +20,7 @@ #include #include -#define MIN_MEMORY_BLOCK_SIZE (1 << SECTION_SIZE_BITS) +#define MIN_MEMORY_BLOCK_SIZE (1UL << SECTION_SIZE_BITS) struct memory_block { unsigned long start_section_nr; --- linux-3.2.0.orig/include/linux/pps_kernel.h +++ linux-3.2.0/include/linux/pps_kernel.h @@ -43,7 +43,7 @@ int event, void *data); /* PPS echo function */ struct module *owner; - struct device *dev; + struct device *dev; /* Parent device for device_create */ }; struct pps_event_time { @@ -69,6 +69,7 @@ wait_queue_head_t queue; /* PPS event queue */ unsigned int id; /* PPS source unique ID */ + void const *lookup_cookie; /* pps_lookup_dev only */ struct cdev cdev; struct device *dev; struct fasync_struct *async_queue; /* fasync method */ @@ -82,16 +83,26 @@ extern struct device_attribute pps_attrs[]; /* + * Internal functions. + * + * These are not actually part of the exported API, but this is a + * convenient header file to put them in. + */ + +extern int pps_register_cdev(struct pps_device *pps); +extern void pps_unregister_cdev(struct pps_device *pps); + +/* * Exported functions */ extern struct pps_device *pps_register_source( struct pps_source_info *info, int default_params); extern void pps_unregister_source(struct pps_device *pps); -extern int pps_register_cdev(struct pps_device *pps); -extern void pps_unregister_cdev(struct pps_device *pps); extern void pps_event(struct pps_device *pps, struct pps_event_time *ts, int event, void *data); +/* Look up a pps device by magic cookie */ +struct pps_device *pps_lookup_dev(void const *cookie); static inline void timespec_to_pps_ktime(struct pps_ktime *kt, struct timespec ts) --- linux-3.2.0.orig/include/linux/pci-aspm.h +++ linux-3.2.0/include/linux/pci-aspm.h @@ -29,7 +29,7 @@ extern void pcie_aspm_powersave_config_link(struct pci_dev *pdev); extern void pci_disable_link_state(struct pci_dev *pdev, int state); extern void pci_disable_link_state_locked(struct pci_dev *pdev, int state); -extern void pcie_clear_aspm(void); +extern void pcie_clear_aspm(struct pci_bus *bus); extern void pcie_no_aspm(void); #else static inline void pcie_aspm_init_link_state(struct pci_dev *pdev) @@ -47,7 +47,7 @@ static inline void pci_disable_link_state(struct pci_dev *pdev, int state) { } -static inline void pcie_clear_aspm(void) +static inline void pcie_clear_aspm(struct pci_bus *bus) { } static inline void pcie_no_aspm(void) --- linux-3.2.0.orig/include/linux/time.h +++ linux-3.2.0/include/linux/time.h @@ -107,11 +107,36 @@ return ts_delta; } +#define KTIME_MAX ((s64)~((u64)1 << 63)) +#if (BITS_PER_LONG == 64) +# define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC) +#else +# define KTIME_SEC_MAX LONG_MAX +#endif + /* * Returns true if the timespec is norm, false if denorm: */ -#define timespec_valid(ts) \ - (((ts)->tv_sec >= 0) && (((unsigned long) (ts)->tv_nsec) < NSEC_PER_SEC)) +static inline bool timespec_valid(const struct timespec *ts) +{ + /* Dates before 1970 are bogus */ + if (ts->tv_sec < 0) + return false; + /* Can't have more nanoseconds then a second */ + if ((unsigned long)ts->tv_nsec >= NSEC_PER_SEC) + return false; + return true; +} + +static inline bool timespec_valid_strict(const struct timespec *ts) +{ + if (!timespec_valid(ts)) + return false; + /* Disallow values that could overflow ktime_t */ + if ((unsigned long long)ts->tv_sec >= KTIME_SEC_MAX) + return false; + return true; +} extern void read_persistent_clock(struct timespec *ts); extern void read_boot_clock(struct timespec *ts); --- linux-3.2.0.orig/include/linux/audit.h +++ linux-3.2.0/include/linux/audit.h @@ -430,6 +430,7 @@ extern void __audit_inode(const char *name, const struct dentry *dentry); extern void __audit_inode_child(const struct dentry *dentry, const struct inode *parent); +extern void __audit_seccomp(unsigned long syscall, long signr, int code); extern void __audit_ptrace(struct task_struct *t); static inline int audit_dummy_context(void) @@ -453,6 +454,12 @@ } void audit_core_dumps(long signr); +static inline void audit_seccomp(unsigned long syscall, long signr, int code) +{ + if (unlikely(!audit_dummy_context())) + __audit_seccomp(syscall, signr, code); +} + static inline void audit_ptrace(struct task_struct *t) { if (unlikely(!audit_dummy_context())) @@ -558,6 +565,8 @@ #define audit_inode(n,d) do { (void)(d); } while (0) #define audit_inode_child(i,p) do { ; } while (0) #define audit_core_dumps(i) do { ; } while (0) +#define audit_seccomp(i,s,c) do { ; } while (0) +#define __audit_seccomp(i,s,c) do { ; } while (0) #define auditsc_get_stamp(c,t,s) (0) #define audit_get_loginuid(t) (-1) #define audit_get_sessionid(t) (-1) --- linux-3.2.0.orig/include/linux/nfs_fs.h +++ linux-3.2.0/include/linux/nfs_fs.h @@ -261,11 +261,6 @@ return NFS_SERVER(inode)->nfs_client->rpc_ops; } -static inline __be32 *NFS_COOKIEVERF(const struct inode *inode) -{ - return NFS_I(inode)->cookieverf; -} - static inline unsigned NFS_MINATTRTIMEO(const struct inode *inode) { struct nfs_server *nfss = NFS_SERVER(inode); --- linux-3.2.0.orig/include/linux/mm_types.h +++ linux-3.2.0/include/linux/mm_types.h @@ -294,6 +294,9 @@ unsigned long (*get_unmapped_area) (struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags); + unsigned long (*get_unmapped_exec_area) (struct file *filp, + unsigned long addr, unsigned long len, + unsigned long pgoff, unsigned long flags); void (*unmap_area) (struct mm_struct *mm, unsigned long addr); #endif unsigned long mmap_base; /* base of mmap area */ --- linux-3.2.0.orig/include/linux/security.h +++ linux-3.2.0/include/linux/security.h @@ -54,8 +54,8 @@ * These functions are in security/capability.c and are used * as the default capabilities functions */ -extern int cap_capable(struct task_struct *tsk, const struct cred *cred, - struct user_namespace *ns, int cap, int audit); +extern int cap_capable(const struct cred *cred, struct user_namespace *ns, + int cap, int audit); extern int cap_settime(const struct timespec *ts, const struct timezone *tz); extern int cap_ptrace_access_check(struct task_struct *child, unsigned int mode); extern int cap_ptrace_traceme(struct task_struct *parent); @@ -130,6 +130,7 @@ #define LSM_UNSAFE_SHARE 1 #define LSM_UNSAFE_PTRACE 2 #define LSM_UNSAFE_PTRACE_CAP 4 +#define LSM_UNSAFE_NO_NEW_PRIVS 8 #ifdef CONFIG_MMU /* @@ -650,6 +651,10 @@ * manual page for definitions of the @clone_flags. * @clone_flags contains the flags indicating what should be shared. * Return 0 if permission is granted. + * @task_free: + * @task task being freed + * Handle release of task-related resources. (Note that this can be called + * from interrupt context.) * @cred_alloc_blank: * @cred points to the credentials. * @gfp indicates the atomicity of any memory allocations. @@ -1266,7 +1271,6 @@ * @capable: * Check whether the @tsk process has the @cap capability in the indicated * credentials. - * @tsk contains the task_struct for the process. * @cred contains the credentials to use. * @ns contains the user namespace we want the capability in * @cap contains the capability . @@ -1390,8 +1394,8 @@ const kernel_cap_t *effective, const kernel_cap_t *inheritable, const kernel_cap_t *permitted); - int (*capable) (struct task_struct *tsk, const struct cred *cred, - struct user_namespace *ns, int cap, int audit); + int (*capable) (const struct cred *cred, struct user_namespace *ns, + int cap, int audit); int (*quotactl) (int cmds, int type, int id, struct super_block *sb); int (*quota_on) (struct dentry *dentry); int (*syslog) (int type); @@ -1424,9 +1428,9 @@ #ifdef CONFIG_SECURITY_PATH int (*path_unlink) (struct path *dir, struct dentry *dentry); - int (*path_mkdir) (struct path *dir, struct dentry *dentry, int mode); + int (*path_mkdir) (struct path *dir, struct dentry *dentry, umode_t mode); int (*path_rmdir) (struct path *dir, struct dentry *dentry); - int (*path_mknod) (struct path *dir, struct dentry *dentry, int mode, + int (*path_mknod) (struct path *dir, struct dentry *dentry, umode_t mode, unsigned int dev); int (*path_truncate) (struct path *path); int (*path_symlink) (struct path *dir, struct dentry *dentry, @@ -1435,8 +1439,7 @@ struct dentry *new_dentry); int (*path_rename) (struct path *old_dir, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry); - int (*path_chmod) (struct dentry *dentry, struct vfsmount *mnt, - mode_t mode); + int (*path_chmod) (struct path *path, umode_t mode); int (*path_chown) (struct path *path, uid_t uid, gid_t gid); int (*path_chroot) (struct path *path); #endif @@ -1500,6 +1503,7 @@ int (*dentry_open) (struct file *file, const struct cred *cred); int (*task_create) (unsigned long clone_flags); + void (*task_free) (struct task_struct *task); int (*cred_alloc_blank) (struct cred *cred, gfp_t gfp); void (*cred_free) (struct cred *cred); int (*cred_prepare)(struct cred *new, const struct cred *old, @@ -1762,6 +1766,7 @@ int security_file_receive(struct file *file); int security_dentry_open(struct file *file, const struct cred *cred); int security_task_create(unsigned long clone_flags); +void security_task_free(struct task_struct *task); int security_cred_alloc_blank(struct cred *cred, gfp_t gfp); void security_cred_free(struct cred *cred); int security_prepare_creds(struct cred *new, const struct cred *old, gfp_t gfp); @@ -1877,7 +1882,7 @@ static inline int security_capable(struct user_namespace *ns, const struct cred *cred, int cap) { - return cap_capable(current, cred, ns, cap, SECURITY_CAP_AUDIT); + return cap_capable(cred, ns, cap, SECURITY_CAP_AUDIT); } static inline int security_real_capable(struct task_struct *tsk, struct user_namespace *ns, int cap) @@ -1885,7 +1890,7 @@ int ret; rcu_read_lock(); - ret = cap_capable(tsk, __task_cred(tsk), ns, cap, SECURITY_CAP_AUDIT); + ret = cap_capable(__task_cred(tsk), ns, cap, SECURITY_CAP_AUDIT); rcu_read_unlock(); return ret; } @@ -1896,8 +1901,7 @@ int ret; rcu_read_lock(); - ret = cap_capable(tsk, __task_cred(tsk), ns, cap, - SECURITY_CAP_NOAUDIT); + ret = cap_capable(__task_cred(tsk), ns, cap, SECURITY_CAP_NOAUDIT); rcu_read_unlock(); return ret; } @@ -2273,6 +2277,9 @@ return 0; } +static inline void security_task_free(struct task_struct *task) +{ } + static inline int security_cred_alloc_blank(struct cred *cred, gfp_t gfp) { return 0; @@ -2855,9 +2862,9 @@ #ifdef CONFIG_SECURITY_PATH int security_path_unlink(struct path *dir, struct dentry *dentry); -int security_path_mkdir(struct path *dir, struct dentry *dentry, int mode); +int security_path_mkdir(struct path *dir, struct dentry *dentry, umode_t mode); int security_path_rmdir(struct path *dir, struct dentry *dentry); -int security_path_mknod(struct path *dir, struct dentry *dentry, int mode, +int security_path_mknod(struct path *dir, struct dentry *dentry, umode_t mode, unsigned int dev); int security_path_truncate(struct path *path); int security_path_symlink(struct path *dir, struct dentry *dentry, @@ -2866,8 +2873,7 @@ struct dentry *new_dentry); int security_path_rename(struct path *old_dir, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry); -int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt, - mode_t mode); +int security_path_chmod(struct path *path, umode_t mode); int security_path_chown(struct path *path, uid_t uid, gid_t gid); int security_path_chroot(struct path *path); #else /* CONFIG_SECURITY_PATH */ @@ -2877,7 +2883,7 @@ } static inline int security_path_mkdir(struct path *dir, struct dentry *dentry, - int mode) + umode_t mode) { return 0; } @@ -2888,7 +2894,7 @@ } static inline int security_path_mknod(struct path *dir, struct dentry *dentry, - int mode, unsigned int dev) + umode_t mode, unsigned int dev) { return 0; } @@ -2919,9 +2925,7 @@ return 0; } -static inline int security_path_chmod(struct dentry *dentry, - struct vfsmount *mnt, - mode_t mode) +static inline int security_path_chmod(struct path *path, umode_t mode) { return 0; } @@ -3010,7 +3014,7 @@ #ifdef CONFIG_SECURITYFS -extern struct dentry *securityfs_create_file(const char *name, mode_t mode, +extern struct dentry *securityfs_create_file(const char *name, umode_t mode, struct dentry *parent, void *data, const struct file_operations *fops); extern struct dentry *securityfs_create_dir(const char *name, struct dentry *parent); @@ -3025,7 +3029,7 @@ } static inline struct dentry *securityfs_create_file(const char *name, - mode_t mode, + umode_t mode, struct dentry *parent, void *data, const struct file_operations *fops) @@ -3061,5 +3065,47 @@ { } #endif /* CONFIG_SECURITY */ +#ifdef CONFIG_SECURITY_YAMA +extern int yama_ptrace_access_check(struct task_struct *child, + unsigned int mode); +extern int yama_path_link(struct dentry *old_dentry, struct path *new_dir, + struct dentry *new_dentry); +extern int yama_inode_follow_link(struct dentry *dentry, + struct nameidata *nameidata); +extern void yama_task_free(struct task_struct *task); +extern int yama_task_prctl(int option, unsigned long arg2, unsigned long arg3, + unsigned long arg4, unsigned long arg5); +#else +static inline int yama_ptrace_access_check(struct task_struct *child, + unsigned int mode) +{ + return 0; +} + +static inline int yama_path_link(struct dentry *old_dentry, + struct path *new_dir, + struct dentry *new_dentry) +{ + return 0; +} + +static inline int yama_inode_follow_link(struct dentry *dentry, + struct nameidata *nameidata) +{ + return 0; +} + +static inline void yama_task_free(struct task_struct *task) +{ +} + +static inline int yama_task_prctl(int option, unsigned long arg2, + unsigned long arg3, unsigned long arg4, + unsigned long arg5) +{ + return -ENOSYS; +} +#endif /* CONFIG_SECURITY_YAMA */ + #endif /* ! __LINUX_SECURITY_H */ --- linux-3.2.0.orig/include/linux/namei.h +++ linux-3.2.0/include/linux/namei.h @@ -85,6 +85,7 @@ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry, int (*open)(struct inode *, struct file *)); +extern struct dentry *lookup_hash(struct nameidata *nd); extern struct dentry *lookup_one_len(const char *, struct dentry *, int); extern int follow_down_one(struct path *); --- linux-3.2.0.orig/include/linux/blkdev.h +++ linux-3.2.0/include/linux/blkdev.h @@ -481,6 +481,7 @@ #define blk_queue_tagged(q) test_bit(QUEUE_FLAG_QUEUED, &(q)->queue_flags) #define blk_queue_stopped(q) test_bit(QUEUE_FLAG_STOPPED, &(q)->queue_flags) +#define blk_queue_dead(q) test_bit(QUEUE_FLAG_DEAD, &(q)->queue_flags) #define blk_queue_nomerges(q) test_bit(QUEUE_FLAG_NOMERGES, &(q)->queue_flags) #define blk_queue_noxmerges(q) \ test_bit(QUEUE_FLAG_NOXMERGES, &(q)->queue_flags) @@ -675,6 +676,9 @@ struct request *rq); extern void blk_delay_queue(struct request_queue *, unsigned long); extern void blk_recount_segments(struct request_queue *, struct bio *); +extern int scsi_verify_blk_ioctl(struct block_device *, unsigned int); +extern int scsi_cmd_blk_ioctl(struct block_device *, fmode_t, + unsigned int, void __user *); extern int scsi_cmd_ioctl(struct request_queue *, struct gendisk *, fmode_t, unsigned int, void __user *); extern int sg_scsi_ioctl(struct request_queue *, struct gendisk *, fmode_t, --- linux-3.2.0.orig/include/linux/math64.h +++ linux-3.2.0/include/linux/math64.h @@ -6,6 +6,8 @@ #if BITS_PER_LONG == 64 +#define div64_long(x,y) div64_s64((x),(y)) + /** * div_u64_rem - unsigned 64bit divide with 32bit divisor with remainder * @@ -45,6 +47,8 @@ #elif BITS_PER_LONG == 32 +#define div64_long(x,y) div_s64((x),(y)) + #ifndef div_u64_rem static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) { --- linux-3.2.0.orig/include/linux/genhd.h +++ linux-3.2.0/include/linux/genhd.h @@ -222,12 +222,6 @@ } } -static inline char *part_unpack_uuid(const u8 *uuid, char *out) -{ - sprintf(out, "%pU", uuid); - return out; -} - static inline int disk_max_parts(struct gendisk *disk) { if (disk->flags & GENHD_FL_EXT_DEVT) @@ -596,6 +590,7 @@ extern int disk_expand_part_tbl(struct gendisk *disk, int target); extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev); +extern int invalidate_partitions(struct gendisk *disk, struct block_device *bdev); extern struct hd_struct * __must_check add_partition(struct gendisk *disk, int partno, sector_t start, sector_t len, int flags, --- linux-3.2.0.orig/include/linux/hid.h +++ linux-3.2.0/include/linux/hid.h @@ -198,6 +198,7 @@ #define HID_UP_DIGITIZER 0x000d0000 #define HID_UP_PID 0x000f0000 #define HID_UP_HPVENDOR 0xff7f0000 +#define HID_UP_HPVENDOR2 0xff010000 #define HID_UP_MSVENDOR 0xff000000 #define HID_UP_CUSTOM 0x00ff0000 #define HID_UP_LOGIVENDOR 0xffbc0000 @@ -875,7 +876,7 @@ return hdev->ll_driver->power ? hdev->ll_driver->power(hdev, level) : 0; } -void hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size, +int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size, int interrupt); extern int hid_generic_init(void); --- linux-3.2.0.orig/include/linux/spinlock_up.h +++ linux-3.2.0/include/linux/spinlock_up.h @@ -16,7 +16,10 @@ * In the debug case, 1 means unlocked, 0 means locked. (the values * are inverted, to catch initialization bugs) * - * No atomicity anywhere, we are on UP. + * No atomicity anywhere, we are on UP. However, we still need + * the compiler barriers, because we do not want the compiler to + * move potentially faulting instructions (notably user accesses) + * into the locked sequence, resulting in non-atomic execution. */ #ifdef CONFIG_DEBUG_SPINLOCK @@ -25,6 +28,7 @@ static inline void arch_spin_lock(arch_spinlock_t *lock) { lock->slock = 0; + barrier(); } static inline void @@ -32,6 +36,7 @@ { local_irq_save(flags); lock->slock = 0; + barrier(); } static inline int arch_spin_trylock(arch_spinlock_t *lock) @@ -39,32 +44,34 @@ char oldval = lock->slock; lock->slock = 0; + barrier(); return oldval > 0; } static inline void arch_spin_unlock(arch_spinlock_t *lock) { + barrier(); lock->slock = 1; } /* * Read-write spinlocks. No debug version. */ -#define arch_read_lock(lock) do { (void)(lock); } while (0) -#define arch_write_lock(lock) do { (void)(lock); } while (0) -#define arch_read_trylock(lock) ({ (void)(lock); 1; }) -#define arch_write_trylock(lock) ({ (void)(lock); 1; }) -#define arch_read_unlock(lock) do { (void)(lock); } while (0) -#define arch_write_unlock(lock) do { (void)(lock); } while (0) +#define arch_read_lock(lock) do { barrier(); (void)(lock); } while (0) +#define arch_write_lock(lock) do { barrier(); (void)(lock); } while (0) +#define arch_read_trylock(lock) ({ barrier(); (void)(lock); 1; }) +#define arch_write_trylock(lock) ({ barrier(); (void)(lock); 1; }) +#define arch_read_unlock(lock) do { barrier(); (void)(lock); } while (0) +#define arch_write_unlock(lock) do { barrier(); (void)(lock); } while (0) #else /* DEBUG_SPINLOCK */ #define arch_spin_is_locked(lock) ((void)(lock), 0) /* for sched.c and kernel_lock.c: */ -# define arch_spin_lock(lock) do { (void)(lock); } while (0) -# define arch_spin_lock_flags(lock, flags) do { (void)(lock); } while (0) -# define arch_spin_unlock(lock) do { (void)(lock); } while (0) -# define arch_spin_trylock(lock) ({ (void)(lock); 1; }) +# define arch_spin_lock(lock) do { barrier(); (void)(lock); } while (0) +# define arch_spin_lock_flags(lock, flags) do { barrier(); (void)(lock); } while (0) +# define arch_spin_unlock(lock) do { barrier(); (void)(lock); } while (0) +# define arch_spin_trylock(lock) ({ barrier(); (void)(lock); 1; }) #endif /* DEBUG_SPINLOCK */ #define arch_spin_is_contended(lock) (((void)(lock), 0)) --- linux-3.2.0.orig/include/linux/videodev2.h +++ linux-3.2.0/include/linux/videodev2.h @@ -1131,6 +1131,7 @@ #define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 /* User-class control IDs defined by V4L2 */ +#define V4L2_CID_MAX_CTRLS 1024 #define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900) #define V4L2_CID_USER_BASE V4L2_CID_BASE /* IDs reserved for driver specific controls */ --- linux-3.2.0.orig/include/linux/efi.h +++ linux-3.2.0/include/linux/efi.h @@ -30,7 +30,12 @@ #define EFI_UNSUPPORTED ( 3 | (1UL << (BITS_PER_LONG-1))) #define EFI_BAD_BUFFER_SIZE ( 4 | (1UL << (BITS_PER_LONG-1))) #define EFI_BUFFER_TOO_SMALL ( 5 | (1UL << (BITS_PER_LONG-1))) +#define EFI_NOT_READY ( 6 | (1UL << (BITS_PER_LONG-1))) +#define EFI_DEVICE_ERROR ( 7 | (1UL << (BITS_PER_LONG-1))) +#define EFI_WRITE_PROTECTED ( 8 | (1UL << (BITS_PER_LONG-1))) +#define EFI_OUT_OF_RESOURCES ( 9 | (1UL << (BITS_PER_LONG-1))) #define EFI_NOT_FOUND (14 | (1UL << (BITS_PER_LONG-1))) +#define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1))) typedef unsigned long efi_status_t; typedef u8 efi_bool_t; @@ -199,6 +204,7 @@ unsigned long count, u64 *max_size, int *reset_type); +typedef efi_status_t efi_query_variable_store_t(u32 attributes, unsigned long size); /* * EFI Configuration Table and GUID definitions @@ -326,6 +332,14 @@ extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg); extern void efi_gettimeofday (struct timespec *ts); extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */ +#ifdef CONFIG_X86 +extern efi_status_t efi_query_variable_store(u32 attributes, unsigned long size); +#else +static inline efi_status_t efi_query_variable_store(u32 attributes, unsigned long size) +{ + return EFI_SUCCESS; +} +#endif extern u64 efi_get_iobase (void); extern u32 efi_mem_type (unsigned long phys_addr); extern u64 efi_mem_attributes (unsigned long phys_addr); @@ -364,17 +378,30 @@ #endif /* - * We play games with efi_enabled so that the compiler will, if possible, remove - * EFI-related code altogether. + * We play games with efi_enabled so that the compiler will, if + * possible, remove EFI-related code altogether. */ +#define EFI_BOOT 0 /* Were we booted from EFI? */ +#define EFI_SYSTEM_TABLES 1 /* Can we use EFI system tables? */ +#define EFI_CONFIG_TABLES 2 /* Can we use EFI config tables? */ +#define EFI_RUNTIME_SERVICES 3 /* Can we use runtime services? */ +#define EFI_MEMMAP 4 /* Can we use EFI memory map? */ +#define EFI_64BIT 5 /* Is the firmware 64-bit? */ + #ifdef CONFIG_EFI # ifdef CONFIG_X86 - extern int efi_enabled; +extern int efi_enabled(int facility); # else -# define efi_enabled 1 +static inline int efi_enabled(int facility) +{ + return 1; +} # endif #else -# define efi_enabled 0 +static inline int efi_enabled(int facility) +{ + return 0; +} #endif /* @@ -383,7 +410,18 @@ #define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 #define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 - +#define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x0000000000000008 +#define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x0000000000000010 +#define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x0000000000000020 +#define EFI_VARIABLE_APPEND_WRITE 0x0000000000000040 + +#define EFI_VARIABLE_MASK (EFI_VARIABLE_NON_VOLATILE | \ + EFI_VARIABLE_BOOTSERVICE_ACCESS | \ + EFI_VARIABLE_RUNTIME_ACCESS | \ + EFI_VARIABLE_HARDWARE_ERROR_RECORD | \ + EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS | \ + EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS | \ + EFI_VARIABLE_APPEND_WRITE) /* * EFI Device Path information */ @@ -446,6 +484,7 @@ efi_get_variable_t *get_variable; efi_get_next_variable_t *get_next_variable; efi_set_variable_t *set_variable; + efi_query_variable_store_t *query_variable_store; }; struct efivars { @@ -454,7 +493,8 @@ * 1) ->list - adds, removals, reads, writes * 2) ops.[gs]et_variable() calls. * It must not be held when creating sysfs entries or calling kmalloc. - * ops.get_next_variable() is only called from register_efivars(), + * ops.get_next_variable() is only called from register_efivars() + * or efivar_update_sysfs_entries(), * which is protected by the BKL, so that path is safe. */ spinlock_t lock; --- linux-3.2.0.orig/include/linux/virtio_console.h +++ linux-3.2.0/include/linux/virtio_console.h @@ -39,7 +39,7 @@ #define VIRTIO_CONSOLE_F_SIZE 0 /* Does host provide console size? */ #define VIRTIO_CONSOLE_F_MULTIPORT 1 /* Does host provide multiple ports? */ -#define VIRTIO_CONSOLE_BAD_ID (~(u32)0) +#define VIRTIO_CONSOLE_BAD_ID (~(__u32)0) struct virtio_console_config { /* colums of the screens */ --- linux-3.2.0.orig/include/linux/libata.h +++ linux-3.2.0/include/linux/libata.h @@ -247,6 +247,7 @@ ATA_HOST_SIMPLEX = (1 << 0), /* Host is simplex, one DMA channel per host only */ ATA_HOST_STARTED = (1 << 1), /* Host started */ ATA_HOST_PARALLEL_SCAN = (1 << 2), /* Ports on this host can be scanned in parallel */ + ATA_HOST_IGNORE_ATA = (1 << 3), /* Ignore ATA devices on this host. */ /* bits 24:31 of host->flags are reserved for LLD specific flags */ @@ -392,6 +393,7 @@ ATA_HORKAGE_NOSETXFER = (1 << 14), /* skip SETXFER, SATA only */ ATA_HORKAGE_BROKEN_FPDMA_AA = (1 << 15), /* skip AA */ ATA_HORKAGE_DUMP_ID = (1 << 16), /* dump IDENTIFY data */ + ATA_HORKAGE_MAX_SEC_LBA48 = (1 << 17), /* Set max sects to 65535 */ /* DMA mask for user DMA control: User visible values; DO NOT renumber */ --- linux-3.2.0.orig/include/linux/virtio.h +++ linux-3.2.0/include/linux/virtio.h @@ -96,6 +96,10 @@ bool virtqueue_enable_cb(struct virtqueue *vq); +unsigned virtqueue_enable_cb_prepare(struct virtqueue *vq); + +bool virtqueue_poll(struct virtqueue *vq, unsigned); + bool virtqueue_enable_cb_delayed(struct virtqueue *vq); void *virtqueue_detach_unused_buf(struct virtqueue *vq); --- linux-3.2.0.orig/include/linux/fs.h +++ linux-3.2.0/include/linux/fs.h @@ -482,6 +482,12 @@ */ #include +/* + * Maximum number of layers of fs stack. Needs to be limited to + * prevent kernel stack overflow + */ +#define FILESYSTEM_MAX_STACK_DEPTH 2 + /** * enum positive_aop_returns - aop return codes with specific semantics * @@ -525,6 +531,7 @@ struct page; struct address_space; struct writeback_control; +enum migrate_mode; struct iov_iter { const struct iovec *iov; @@ -609,9 +616,12 @@ loff_t offset, unsigned long nr_segs); int (*get_xip_mem)(struct address_space *, pgoff_t, int, void **, unsigned long *); - /* migrate the contents of a page to the specified target */ + /* + * migrate the contents of a page to the specified target. If sync + * is false, it must not block. + */ int (*migratepage) (struct address_space *, - struct page *, struct page *); + struct page *, struct page *, enum migrate_mode); int (*launder_page) (struct page *); int (*is_partially_uptodate) (struct page *, read_descriptor_t *, unsigned long); @@ -1001,6 +1011,7 @@ #ifdef CONFIG_EPOLL /* Used by fs/eventpoll.c to link all the hooks to this file */ struct list_head f_ep_links; + struct list_head f_tfile_llink; #endif /* #ifdef CONFIG_EPOLL */ struct address_space *f_mapping; #ifdef CONFIG_DEBUG_WRITECOUNT @@ -1202,6 +1213,7 @@ extern int lease_modify(struct file_lock **, int); extern int lock_may_read(struct inode *, loff_t start, unsigned long count); extern int lock_may_write(struct inode *, loff_t start, unsigned long count); +extern void locks_delete_block(struct file_lock *waiter); extern void lock_flocks(void); extern void unlock_flocks(void); #else /* !CONFIG_FILE_LOCKING */ @@ -1346,6 +1358,10 @@ return 1; } +static inline void locks_delete_block(struct file_lock *waiter) +{ +} + static inline void lock_flocks(void) { } @@ -1481,6 +1497,11 @@ int cleancache_poolid; struct shrinker s_shrink; /* per-sb shrinker handle */ + + /* + * Indicates how deep in a filesystem stack this SB is + */ + int s_stack_depth; }; /* superblock cache pruning functions */ @@ -1638,6 +1659,8 @@ void (*truncate_range)(struct inode *, loff_t, loff_t); int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, u64 len); + struct file *(*open) (struct dentry *, struct file *, + const struct cred *); } ____cacheline_aligned; struct seq_file; @@ -2058,6 +2081,7 @@ extern struct file *filp_open(const char *, int, int); extern struct file *file_open_root(struct dentry *, struct vfsmount *, const char *, int); +extern struct file *vfs_open(struct path *, struct file *, const struct cred *); extern struct file * dentry_open(struct dentry *, struct vfsmount *, int, const struct cred *); extern int filp_close(struct file *, fl_owner_t id); @@ -2088,10 +2112,12 @@ extern struct block_device *bdget(dev_t); extern struct block_device *bdgrab(struct block_device *bdev); extern void bd_set_size(struct block_device *, loff_t size); +extern sector_t blkdev_max_block(struct block_device *bdev); extern void bd_forget(struct inode *inode); extern void bdput(struct block_device *); extern void invalidate_bdev(struct block_device *); extern int sync_blockdev(struct block_device *bdev); +extern void kill_bdev(struct block_device *); extern struct super_block *freeze_bdev(struct block_device *); extern void emergency_thaw_all(void); extern int thaw_bdev(struct block_device *bdev, struct super_block *sb); @@ -2099,6 +2125,7 @@ #else static inline void bd_forget(struct inode *inode) {} static inline int sync_blockdev(struct block_device *bdev) { return 0; } +static inline void kill_bdev(struct block_device *bdev) {} static inline void invalidate_bdev(struct block_device *bdev) {} static inline struct super_block *freeze_bdev(struct block_device *sb) @@ -2579,7 +2606,8 @@ #ifdef CONFIG_MIGRATION extern int buffer_migrate_page(struct address_space *, - struct page *, struct page *); + struct page *, struct page *, + enum migrate_mode); #else #define buffer_migrate_page NULL #endif --- linux-3.2.0.orig/include/linux/if_cablemodem.h +++ linux-3.2.0/include/linux/if_cablemodem.h @@ -12,11 +12,11 @@ */ /* some useful defines for sb1000.c e cmconfig.c - fv */ -#define SIOCGCMSTATS SIOCDEVPRIVATE+0 /* get cable modem stats */ -#define SIOCGCMFIRMWARE SIOCDEVPRIVATE+1 /* get cm firmware version */ -#define SIOCGCMFREQUENCY SIOCDEVPRIVATE+2 /* get cable modem frequency */ -#define SIOCSCMFREQUENCY SIOCDEVPRIVATE+3 /* set cable modem frequency */ -#define SIOCGCMPIDS SIOCDEVPRIVATE+4 /* get cable modem PIDs */ -#define SIOCSCMPIDS SIOCDEVPRIVATE+5 /* set cable modem PIDs */ +#define SIOCGCMSTATS (SIOCDEVPRIVATE+0) /* get cable modem stats */ +#define SIOCGCMFIRMWARE (SIOCDEVPRIVATE+1) /* get cm firmware version */ +#define SIOCGCMFREQUENCY (SIOCDEVPRIVATE+2) /* get cable modem frequency */ +#define SIOCSCMFREQUENCY (SIOCDEVPRIVATE+3) /* set cable modem frequency */ +#define SIOCGCMPIDS (SIOCDEVPRIVATE+4) /* get cable modem PIDs */ +#define SIOCSCMPIDS (SIOCDEVPRIVATE+5) /* set cable modem PIDs */ #endif --- linux-3.2.0.orig/include/linux/pipe_fs_i.h +++ linux-3.2.0/include/linux/pipe_fs_i.h @@ -8,6 +8,7 @@ #define PIPE_BUF_FLAG_LRU 0x01 /* page is on the LRU */ #define PIPE_BUF_FLAG_ATOMIC 0x02 /* was atomically mapped */ #define PIPE_BUF_FLAG_GIFT 0x04 /* page is a gift */ +#define PIPE_BUF_FLAG_PACKET 0x08 /* read() as a packet */ /** * struct pipe_buffer - a linux kernel pipe buffer --- linux-3.2.0.orig/include/linux/quota.h +++ linux-3.2.0/include/linux/quota.h @@ -413,6 +413,7 @@ #define INIT_QUOTA_MODULE_NAMES {\ {QFMT_VFS_OLD, "quota_v1"},\ {QFMT_VFS_V0, "quota_v2"},\ + {QFMT_VFS_V1, "quota_v2"},\ {0, NULL}} #endif /* __KERNEL__ */ --- linux-3.2.0.orig/include/linux/nls.h +++ linux-3.2.0/include/linux/nls.h @@ -43,7 +43,7 @@ UTF16_BIG_ENDIAN }; -/* nls.c */ +/* nls_base.c */ extern int register_nls(struct nls_table *); extern int unregister_nls(struct nls_table *); extern struct nls_table *load_nls(char *); @@ -52,7 +52,8 @@ extern int utf8_to_utf32(const u8 *s, int len, unicode_t *pu); extern int utf32_to_utf8(unicode_t u, u8 *s, int maxlen); -extern int utf8s_to_utf16s(const u8 *s, int len, wchar_t *pwcs); +extern int utf8s_to_utf16s(const u8 *s, int len, + enum utf16_endian endian, wchar_t *pwcs, int maxlen); extern int utf16s_to_utf8s(const wchar_t *pwcs, int len, enum utf16_endian endian, u8 *s, int maxlen); --- linux-3.2.0.orig/include/linux/snmp.h +++ linux-3.2.0/include/linux/snmp.h @@ -209,7 +209,6 @@ LINUX_MIB_TCPDSACKOFOSENT, /* TCPDSACKOfoSent */ LINUX_MIB_TCPDSACKRECV, /* TCPDSACKRecv */ LINUX_MIB_TCPDSACKOFORECV, /* TCPDSACKOfoRecv */ - LINUX_MIB_TCPABORTONSYN, /* TCPAbortOnSyn */ LINUX_MIB_TCPABORTONDATA, /* TCPAbortOnData */ LINUX_MIB_TCPABORTONCLOSE, /* TCPAbortOnClose */ LINUX_MIB_TCPABORTONMEMORY, /* TCPAbortOnMemory */ @@ -233,6 +232,8 @@ LINUX_MIB_TCPTIMEWAITOVERFLOW, /* TCPTimeWaitOverflow */ LINUX_MIB_TCPREQQFULLDOCOOKIES, /* TCPReqQFullDoCookies */ LINUX_MIB_TCPREQQFULLDROP, /* TCPReqQFullDrop */ + LINUX_MIB_TCPCHALLENGEACK, /* TCPChallengeACK */ + LINUX_MIB_TCPSYNCHALLENGE, /* TCPSYNChallenge */ __LINUX_MIB_MAX }; --- linux-3.2.0.orig/include/linux/preempt.h +++ linux-3.2.0/include/linux/preempt.h @@ -91,13 +91,19 @@ #else /* !CONFIG_PREEMPT_COUNT */ -#define preempt_disable() do { } while (0) -#define preempt_enable_no_resched() do { } while (0) -#define preempt_enable() do { } while (0) +/* + * Even if we don't have any preemption, we need preempt disable/enable + * to be barriers, so that we don't have things like get_user/put_user + * that can cause faults and scheduling migrate into our preempt-protected + * region. + */ +#define preempt_disable() barrier() +#define preempt_enable_no_resched() barrier() +#define preempt_enable() barrier() -#define preempt_disable_notrace() do { } while (0) -#define preempt_enable_no_resched_notrace() do { } while (0) -#define preempt_enable_notrace() do { } while (0) +#define preempt_disable_notrace() barrier() +#define preempt_enable_no_resched_notrace() barrier() +#define preempt_enable_notrace() barrier() #endif /* CONFIG_PREEMPT_COUNT */ --- linux-3.2.0.orig/include/linux/kvm_host.h +++ linux-3.2.0/include/linux/kvm_host.h @@ -396,7 +396,7 @@ int kvm_write_guest_cached(struct kvm *kvm, struct gfn_to_hva_cache *ghc, void *data, unsigned long len); int kvm_gfn_to_hva_cache_init(struct kvm *kvm, struct gfn_to_hva_cache *ghc, - gpa_t gpa); + gpa_t gpa, unsigned long len); int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len); int kvm_clear_guest(struct kvm *kvm, gpa_t gpa, unsigned long len); struct kvm_memory_slot *gfn_to_memslot(struct kvm *kvm, gfn_t gfn); @@ -562,6 +562,7 @@ #ifdef CONFIG_IOMMU_API int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot); +void kvm_iommu_unmap_pages(struct kvm *kvm, struct kvm_memory_slot *slot); int kvm_iommu_map_guest(struct kvm *kvm); int kvm_iommu_unmap_guest(struct kvm *kvm); int kvm_assign_device(struct kvm *kvm, @@ -575,6 +576,11 @@ return 0; } +static inline void kvm_iommu_unmap_pages(struct kvm *kvm, + struct kvm_memory_slot *slot) +{ +} + static inline int kvm_iommu_map_guest(struct kvm *kvm) { return -ENODEV; @@ -738,6 +744,13 @@ { return vcpu->kvm->bsp_vcpu_id == vcpu->vcpu_id; } + +bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu); + +#else + +static inline bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu) { return true; } + #endif #ifdef __KVM_HAVE_DEVICE_ASSIGNMENT --- linux-3.2.0.orig/include/linux/dcache.h +++ linux-3.2.0/include/linux/dcache.h @@ -203,6 +203,7 @@ #define DCACHE_CANT_MOUNT 0x0100 #define DCACHE_GENOCIDE 0x0200 +#define DCACHE_SHRINK_LIST 0x0400 #define DCACHE_NFSFS_RENAMED 0x1000 /* this dentry has been "silly renamed" and has to be deleted on the last @@ -218,6 +219,8 @@ #define DCACHE_MANAGED_DENTRY \ (DCACHE_MOUNTED|DCACHE_NEED_AUTOMOUNT|DCACHE_MANAGE_TRANSIT) +#define DCACHE_DENTRY_KILLED 0x100000 + extern seqlock_t rename_lock; static inline int dname_external(struct dentry *dentry) --- linux-3.2.0.orig/include/linux/rtc.h +++ linux-3.2.0/include/linux/rtc.h @@ -202,7 +202,8 @@ struct hrtimer pie_timer; /* sub second exp, so needs hrtimer */ int pie_enabled; struct work_struct irqwork; - + /* Some hardware can't support UIE mode */ + int uie_unsupported; #ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL struct work_struct uie_task; --- linux-3.2.0.orig/include/linux/ktime.h +++ linux-3.2.0/include/linux/ktime.h @@ -58,13 +58,6 @@ typedef union ktime ktime_t; /* Kill this */ -#define KTIME_MAX ((s64)~((u64)1 << 63)) -#if (BITS_PER_LONG == 64) -# define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC) -#else -# define KTIME_SEC_MAX LONG_MAX -#endif - /* * ktime_t definitions when using the 64-bit scalar representation: */ --- linux-3.2.0.orig/include/linux/workqueue.h +++ linux-3.2.0/include/linux/workqueue.h @@ -289,12 +289,16 @@ * * system_freezable_wq is equivalent to system_wq except that it's * freezable. + * + * system_nrt_freezable_wq is equivalent to system_nrt_wq except that + * it's freezable. */ extern struct workqueue_struct *system_wq; extern struct workqueue_struct *system_long_wq; extern struct workqueue_struct *system_nrt_wq; extern struct workqueue_struct *system_unbound_wq; extern struct workqueue_struct *system_freezable_wq; +extern struct workqueue_struct *system_nrt_freezable_wq; extern struct workqueue_struct * __alloc_workqueue_key(const char *name, unsigned int flags, int max_active, --- linux-3.2.0.orig/include/linux/moduleparam.h +++ linux-3.2.0/include/linux/moduleparam.h @@ -292,7 +292,7 @@ char *args, const struct kernel_param *params, unsigned num, - int (*unknown)(char *param, char *val)); + int (*handle)(char *param, char *val, int known)); /* Called by module remove. */ #ifdef CONFIG_SYSFS --- linux-3.2.0.orig/include/linux/seccomp.h +++ linux-3.2.0/include/linux/seccomp.h @@ -1,25 +1,89 @@ #ifndef _LINUX_SECCOMP_H #define _LINUX_SECCOMP_H +#include +#include + +/* Valid values for seccomp.mode and prctl(PR_SET_SECCOMP, ) */ +#define SECCOMP_MODE_DISABLED 0 /* seccomp is not in use. */ +#define SECCOMP_MODE_STRICT 1 /* uses hard-coded filter. */ +#define SECCOMP_MODE_FILTER 2 /* uses user-supplied filter. */ + +/* + * All BPF programs must return a 32-bit value. + * The bottom 16-bits are for optional return data. + * The upper 16-bits are ordered from least permissive values to most. + * + * The ordering ensures that a min_t() over composed return values always + * selects the least permissive choice. + */ +#define SECCOMP_RET_KILL 0x00000000U /* kill the task immediately */ +#define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */ +#define SECCOMP_RET_ERRNO 0x00050000U /* returns an errno */ +#define SECCOMP_RET_TRACE 0x7ff00000U /* pass to a tracer or disallow */ +#define SECCOMP_RET_ALLOW 0x7fff0000U /* allow */ + +/* Masks for the return value sections. */ +#define SECCOMP_RET_ACTION 0xffff0000U +#define SECCOMP_RET_DATA 0x0000ffffU + +/** + * struct seccomp_data - the format the BPF program executes over. + * @nr: the system call number + * @arch: indicates system call convention as an AUDIT_ARCH_* value + * as defined in . + * @instruction_pointer: at the time of the system call. + * @args: up to 6 system call arguments always stored as 64-bit values + * regardless of the architecture. + */ +struct seccomp_data { + int nr; + __u32 arch; + __u64 instruction_pointer; + __u64 args[6]; +}; + +#ifdef __KERNEL__ #ifdef CONFIG_SECCOMP #include #include -typedef struct { int mode; } seccomp_t; - -extern void __secure_computing(int); -static inline void secure_computing(int this_syscall) +struct seccomp_filter; +/** + * struct seccomp - the state of a seccomp'ed process + * + * @mode: indicates one of the valid values above for controlled + * system calls available to a process. + * @filter: The metadata and ruleset for determining what system calls + * are allowed for a task. + * + * @filter must only be accessed from the context of current as there + * is no locking. + */ +struct seccomp { + int mode; + struct seccomp_filter *filter; +}; + +/* + * Direct callers to __secure_computing should be updated as + * CONFIG_HAVE_ARCH_SECCOMP_FILTER propagates. + */ +extern void __secure_computing(int) __deprecated; +extern int __secure_computing_int(int); +static inline int secure_computing(int this_syscall) { if (unlikely(test_thread_flag(TIF_SECCOMP))) - __secure_computing(this_syscall); + return __secure_computing_int(this_syscall); + return 0; } extern long prctl_get_seccomp(void); -extern long prctl_set_seccomp(unsigned long); +extern long prctl_set_seccomp(unsigned long, char __user *); -static inline int seccomp_mode(seccomp_t *s) +static inline int seccomp_mode(struct seccomp *s) { return s->mode; } @@ -28,25 +92,40 @@ #include -typedef struct { } seccomp_t; +struct seccomp { }; +struct seccomp_filter { }; -#define secure_computing(x) do { } while (0) +#define secure_computing(x) 0 static inline long prctl_get_seccomp(void) { return -EINVAL; } -static inline long prctl_set_seccomp(unsigned long arg2) +static inline long prctl_set_seccomp(unsigned long arg2, char __user *arg3) { return -EINVAL; } -static inline int seccomp_mode(seccomp_t *s) +static inline int seccomp_mode(struct seccomp *s) { return 0; } - #endif /* CONFIG_SECCOMP */ +#ifdef CONFIG_SECCOMP_FILTER +extern void put_seccomp_filter(struct task_struct *tsk); +extern void get_seccomp_filter(struct task_struct *tsk); +extern u32 seccomp_bpf_load(int off); +#else /* CONFIG_SECCOMP_FILTER */ +static inline void put_seccomp_filter(struct task_struct *tsk) +{ + return; +} +static inline void get_seccomp_filter(struct task_struct *tsk) +{ + return; +} +#endif /* CONFIG_SECCOMP_FILTER */ +#endif /* __KERNEL__ */ #endif /* _LINUX_SECCOMP_H */ --- linux-3.2.0.orig/include/linux/power_supply.h +++ linux-3.2.0/include/linux/power_supply.h @@ -211,6 +211,7 @@ extern int power_supply_register(struct device *parent, struct power_supply *psy); extern void power_supply_unregister(struct power_supply *psy); +extern int power_supply_powers(struct power_supply *psy, struct device *dev); /* For APM emulation, think legacy userspace. */ extern struct class *power_supply_class; --- linux-3.2.0.orig/include/linux/crash_dump.h +++ linux-3.2.0/include/linux/crash_dump.h @@ -5,6 +5,7 @@ #include #include #include +#include #define ELFCORE_ADDR_MAX (-1ULL) #define ELFCORE_ADDR_ERR (-2ULL) --- linux-3.2.0.orig/include/linux/kmod.h +++ linux-3.2.0/include/linux/kmod.h @@ -48,11 +48,10 @@ struct cred; struct file; -enum umh_wait { - UMH_NO_WAIT = -1, /* don't wait at all */ - UMH_WAIT_EXEC = 0, /* wait for the exec, but not the process */ - UMH_WAIT_PROC = 1, /* wait for the process to complete */ -}; +#define UMH_NO_WAIT 0 /* don't wait at all */ +#define UMH_WAIT_EXEC 1 /* wait for the exec, but not the process */ +#define UMH_WAIT_PROC 2 /* wait for the process to complete */ +#define UMH_KILLABLE 4 /* wait for EXEC/PROC killable */ struct subprocess_info { struct work_struct work; @@ -60,7 +59,7 @@ char *path; char **argv; char **envp; - enum umh_wait wait; + int wait; int retval; int (*init)(struct subprocess_info *info, struct cred *new); void (*cleanup)(struct subprocess_info *info); @@ -78,21 +77,24 @@ void *data); /* Actually execute the sub-process */ -int call_usermodehelper_exec(struct subprocess_info *info, enum umh_wait wait); +int call_usermodehelper_exec(struct subprocess_info *info, int wait); /* Free the subprocess_info. This is only needed if you're not going to call call_usermodehelper_exec */ void call_usermodehelper_freeinfo(struct subprocess_info *info); +void populate_rootfs_wait(void); + static inline int -call_usermodehelper_fns(char *path, char **argv, char **envp, - enum umh_wait wait, +call_usermodehelper_fns(char *path, char **argv, char **envp, int wait, int (*init)(struct subprocess_info *info, struct cred *new), void (*cleanup)(struct subprocess_info *), void *data) { struct subprocess_info *info; gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? GFP_ATOMIC : GFP_KERNEL; + populate_rootfs_wait(); + info = call_usermodehelper_setup(path, argv, envp, gfp_mask); if (info == NULL) @@ -104,7 +106,7 @@ } static inline int -call_usermodehelper(char *path, char **argv, char **envp, enum umh_wait wait) +call_usermodehelper(char *path, char **argv, char **envp, int wait) { return call_usermodehelper_fns(path, argv, envp, wait, NULL, NULL, NULL); --- linux-3.2.0.orig/include/linux/page-flags.h +++ linux-3.2.0/include/linux/page-flags.h @@ -107,6 +107,7 @@ #ifdef CONFIG_TRANSPARENT_HUGEPAGE PG_compound_lock, #endif + PG_readaheadunused, /* user oriented readahead as yet unused*/ __NR_PAGEFLAGS, /* Filesystems */ @@ -230,6 +231,8 @@ PAGEFLAG(Reclaim, reclaim) TESTCLEARFLAG(Reclaim, reclaim) PAGEFLAG(Readahead, reclaim) /* Reminder to do async read-ahead */ +PAGEFLAG(ReadaheadUnused, readaheadunused) + #ifdef CONFIG_HIGHMEM /* * Must use a macro here due to header dependency issues. page_zone() is not @@ -360,7 +363,7 @@ * pages on the LRU and/or pagecache. */ TESTPAGEFLAG(Compound, compound) -__PAGEFLAG(Head, compound) +__SETPAGEFLAG(Head, compound) __CLEARPAGEFLAG(Head, compound) /* * PG_reclaim is used in combination with PG_compound to mark the @@ -372,8 +375,14 @@ * PG_compound & PG_reclaim => Tail page * PG_compound & ~PG_reclaim => Head page */ +#define PG_head_mask ((1L << PG_compound)) #define PG_head_tail_mask ((1L << PG_compound) | (1L << PG_reclaim)) +static inline int PageHead(struct page *page) +{ + return ((page->flags & PG_head_tail_mask) == PG_head_mask); +} + static inline int PageTail(struct page *page) { return ((page->flags & PG_head_tail_mask) == PG_head_tail_mask); --- linux-3.2.0.orig/include/linux/ptp_clock_kernel.h +++ linux-3.2.0/include/linux/ptp_clock_kernel.h @@ -50,7 +50,8 @@ * clock operations * * @adjfreq: Adjusts the frequency of the hardware clock. - * parameter delta: Desired period change in parts per billion. + * parameter delta: Desired frequency offset from nominal frequency + * in parts per billion * * @adjtime: Shifts the time of the hardware clock. * parameter delta: Desired change in nanoseconds. --- linux-3.2.0.orig/include/linux/mmu_notifier.h +++ linux-3.2.0/include/linux/mmu_notifier.h @@ -4,6 +4,7 @@ #include #include #include +#include struct mmu_notifier; struct mmu_notifier_ops; --- linux-3.2.0.orig/include/linux/kgdb.h +++ linux-3.2.0/include/linux/kgdb.h @@ -63,7 +63,8 @@ BP_HARDWARE_BREAKPOINT, BP_WRITE_WATCHPOINT, BP_READ_WATCHPOINT, - BP_ACCESS_WATCHPOINT + BP_ACCESS_WATCHPOINT, + BP_POKE_BREAKPOINT, }; enum kgdb_bpstate { @@ -207,8 +208,8 @@ /* Optional functions. */ extern int kgdb_validate_break_address(unsigned long addr); -extern int kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr); -extern int kgdb_arch_remove_breakpoint(unsigned long addr, char *bundle); +extern int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt); +extern int kgdb_arch_remove_breakpoint(struct kgdb_bkpt *bpt); /** * kgdb_arch_late - Perform any architecture specific initalization. --- linux-3.2.0.orig/include/linux/cpu.h +++ linux-3.2.0/include/linux/cpu.h @@ -66,8 +66,9 @@ /* migration should happen before other stuff but after perf */ CPU_PRI_PERF = 20, CPU_PRI_MIGRATION = 10, - /* prepare workqueues for other notifiers */ - CPU_PRI_WORKQUEUE = 5, + /* bring up workqueues before normal notifiers and down after */ + CPU_PRI_WORKQUEUE_UP = 5, + CPU_PRI_WORKQUEUE_DOWN = -5, }; #define CPU_ONLINE 0x0002 /* CPU (unsigned)v is up */ @@ -167,6 +168,8 @@ extern void get_online_cpus(void); extern void put_online_cpus(void); +extern void cpu_hotplug_disable(void); +extern void cpu_hotplug_enable(void); #define hotcpu_notifier(fn, pri) cpu_notifier(fn, pri) #define register_hotcpu_notifier(nb) register_cpu_notifier(nb) #define unregister_hotcpu_notifier(nb) unregister_cpu_notifier(nb) @@ -189,6 +192,8 @@ #define get_online_cpus() do { } while (0) #define put_online_cpus() do { } while (0) +#define cpu_hotplug_disable() do { } while (0) +#define cpu_hotplug_enable() do { } while (0) #define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0) /* These aren't inline functions due to a GCC bug. */ #define register_hotcpu_notifier(nb) ({ (void)(nb); 0; }) --- linux-3.2.0.orig/include/linux/ata.h +++ linux-3.2.0/include/linux/ata.h @@ -937,7 +937,7 @@ } } -static inline bool atapi_command_packet_set(const u16 *dev_id) +static inline int atapi_command_packet_set(const u16 *dev_id) { return (dev_id[ATA_ID_CONFIG] >> 8) & 0x1f; } --- linux-3.2.0.orig/include/linux/filter.h +++ linux-3.2.0/include/linux/filter.h @@ -10,6 +10,7 @@ #ifdef __KERNEL__ #include +#include #endif /* @@ -132,6 +133,16 @@ #ifdef __KERNEL__ +#ifdef CONFIG_COMPAT +/* + * A struct sock_filter is architecture independent. + */ +struct compat_sock_fprog { + u16 len; + compat_uptr_t filter; /* struct sock_filter * */ +}; +#endif + struct sk_buff; struct sock; @@ -228,6 +239,7 @@ BPF_S_ANC_HATYPE, BPF_S_ANC_RXHASH, BPF_S_ANC_CPU, + BPF_S_ANC_SECCOMP_LD_W, }; #endif /* __KERNEL__ */ --- linux-3.2.0.orig/include/linux/net.h +++ linux-3.2.0/include/linux/net.h @@ -249,6 +249,29 @@ #define sockfd_put(sock) fput(sock->file) extern int net_ratelimit(void); +#define net_ratelimited_function(function, ...) \ +do { \ + if (net_ratelimit()) \ + function(__VA_ARGS__); \ +} while (0) + +#define net_emerg_ratelimited(fmt, ...) \ + net_ratelimited_function(pr_emerg, fmt, ##__VA_ARGS__) +#define net_alert_ratelimited(fmt, ...) \ + net_ratelimited_function(pr_alert, fmt, ##__VA_ARGS__) +#define net_crit_ratelimited(fmt, ...) \ + net_ratelimited_function(pr_crit, fmt, ##__VA_ARGS__) +#define net_err_ratelimited(fmt, ...) \ + net_ratelimited_function(pr_err, fmt, ##__VA_ARGS__) +#define net_notice_ratelimited(fmt, ...) \ + net_ratelimited_function(pr_notice, fmt, ##__VA_ARGS__) +#define net_warn_ratelimited(fmt, ...) \ + net_ratelimited_function(pr_warn, fmt, ##__VA_ARGS__) +#define net_info_ratelimited(fmt, ...) \ + net_ratelimited_function(pr_info, fmt, ##__VA_ARGS__) +#define net_dbg_ratelimited(fmt, ...) \ + net_ratelimited_function(pr_debug, fmt, ##__VA_ARGS__) + #define net_random() random32() #define net_srandom(seed) srandom32((__force u32)seed) --- linux-3.2.0.orig/include/linux/mempolicy.h +++ linux-3.2.0/include/linux/mempolicy.h @@ -137,16 +137,6 @@ __mpol_put(pol); } -extern struct mempolicy *__mpol_cond_copy(struct mempolicy *tompol, - struct mempolicy *frompol); -static inline struct mempolicy *mpol_cond_copy(struct mempolicy *tompol, - struct mempolicy *frompol) -{ - if (!frompol) - return frompol; - return __mpol_cond_copy(tompol, frompol); -} - extern struct mempolicy *__mpol_dup(struct mempolicy *pol); static inline struct mempolicy *mpol_dup(struct mempolicy *pol) { @@ -188,7 +178,7 @@ struct shared_policy { struct rb_root root; - spinlock_t lock; + struct mutex mutex; }; void mpol_shared_policy_init(struct shared_policy *sp, struct mempolicy *mpol); @@ -270,12 +260,6 @@ { } -static inline struct mempolicy *mpol_cond_copy(struct mempolicy *to, - struct mempolicy *from) -{ - return from; -} - static inline void mpol_get(struct mempolicy *pol) { } --- linux-3.2.0.orig/include/linux/swapops.h +++ linux-3.2.0/include/linux/swapops.h @@ -8,13 +8,15 @@ * get good packing density in that tree, so the index should be dense in * the low-order bits. * - * We arrange the `type' and `offset' fields so that `type' is at the five + * We arrange the `type' and `offset' fields so that `type' is at the seven * high-order bits of the swp_entry_t and `offset' is right-aligned in the - * remaining bits. + * remaining bits. Although `type' itself needs only five bits, we allow for + * shmem/tmpfs to shift it all up a further two bits: see swp_to_radix_entry(). * * swp_entry_t's are *never* stored anywhere in their arch-dependent format. */ -#define SWP_TYPE_SHIFT(e) (sizeof(e.val) * 8 - MAX_SWAPFILES_SHIFT) +#define SWP_TYPE_SHIFT(e) ((sizeof(e.val) * 8) - \ + (MAX_SWAPFILES_SHIFT + RADIX_TREE_EXCEPTIONAL_SHIFT)) #define SWP_OFFSET_MASK(e) ((1UL << SWP_TYPE_SHIFT(e)) - 1) /* @@ -134,6 +136,7 @@ extern void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, unsigned long address); +extern void migration_entry_wait_huge(struct mm_struct *mm, pte_t *pte); #else #define make_migration_entry(page, write) swp_entry(0, 0) @@ -145,6 +148,8 @@ static inline void make_migration_entry_read(swp_entry_t *entryp) { } static inline void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, unsigned long address) { } +static inline void migration_entry_wait_huge(struct mm_struct *mm, + pte_t *pte) { } static inline int is_write_migration_entry(swp_entry_t entry) { return 0; --- linux-3.2.0.orig/include/linux/skbuff.h +++ linux-3.2.0/include/linux/skbuff.h @@ -213,11 +213,8 @@ /* device driver is going to provide hardware time stamp */ SKBTX_IN_PROGRESS = 1 << 2, - /* ensure the originating sk reference is available on driver level */ - SKBTX_DRV_NEEDS_SK_REF = 1 << 3, - /* device driver supports TX zero-copy buffers */ - SKBTX_DEV_ZEROCOPY = 1 << 4, + SKBTX_DEV_ZEROCOPY = 1 << 3, }; /* @@ -458,6 +455,7 @@ union { __u32 mark; __u32 dropcount; + __u32 reserved_tailroom; }; __u16 vlan_tci; @@ -1326,6 +1324,21 @@ } /** + * skb_availroom - bytes at buffer end + * @skb: buffer to check + * + * Return the number of bytes of free space at the tail of an sk_buff + * allocated by sk_stream_alloc() + */ +static inline int skb_availroom(const struct sk_buff *skb) +{ + if (skb_is_nonlinear(skb)) + return 0; + + return skb->end - skb->tail - skb->reserved_tailroom; +} + +/** * skb_reserve - adjust headroom * @skb: buffer to alter * @len: bytes to move @@ -1453,6 +1466,16 @@ } #endif /* NET_SKBUFF_DATA_USES_OFFSET */ +static inline void skb_mac_header_rebuild(struct sk_buff *skb) +{ + if (skb_mac_header_was_set(skb)) { + const unsigned char *old_mac = skb_mac_header(skb); + + skb_set_mac_header(skb, -skb->mac_len); + memmove(skb_mac_header(skb), old_mac, skb->mac_len); + } +} + static inline int skb_checksum_start_offset(const struct sk_buff *skb) { return skb->csum_start - skb_headroom(skb); @@ -1843,8 +1866,6 @@ { int delta = 0; - if (headroom < NET_SKB_PAD) - headroom = NET_SKB_PAD; if (headroom > skb_headroom(skb)) delta = headroom - skb_headroom(skb); @@ -2346,6 +2367,13 @@ #endif } +static inline void nf_reset_trace(struct sk_buff *skb) +{ +#if IS_ENABLED(CONFIG_NETFILTER_XT_TARGET_TRACE) + skb->nf_trace = 0; +#endif +} + /* Note: This doesn't put any conntrack and bridge info in dst. */ static inline void __nf_copy(struct sk_buff *dst, const struct sk_buff *src) { --- linux-3.2.0.orig/include/linux/ptrace.h +++ linux-3.2.0/include/linux/ptrace.h @@ -62,8 +62,9 @@ #define PTRACE_O_TRACEEXEC 0x00000010 #define PTRACE_O_TRACEVFORKDONE 0x00000020 #define PTRACE_O_TRACEEXIT 0x00000040 +#define PTRACE_O_TRACESECCOMP 0x00000080 -#define PTRACE_O_MASK 0x0000007f +#define PTRACE_O_MASK 0x000000ff /* Wait extended result codes for the above trace options. */ #define PTRACE_EVENT_FORK 1 @@ -73,6 +74,7 @@ #define PTRACE_EVENT_VFORK_DONE 5 #define PTRACE_EVENT_EXIT 6 #define PTRACE_EVENT_STOP 7 +#define PTRACE_EVENT_SECCOMP 8 #include @@ -101,8 +103,9 @@ #define PT_TRACE_EXEC PT_EVENT_FLAG(PTRACE_EVENT_EXEC) #define PT_TRACE_VFORK_DONE PT_EVENT_FLAG(PTRACE_EVENT_VFORK_DONE) #define PT_TRACE_EXIT PT_EVENT_FLAG(PTRACE_EVENT_EXIT) +#define PT_TRACE_SECCOMP PT_EVENT_FLAG(PTRACE_EVENT_SECCOMP) -#define PT_TRACE_MASK 0x000003f4 +#define PT_TRACE_MASK 0x00000bf4 /* single stepping state bits (used on ARM and PA-RISC) */ #define PT_SINGLESTEP_BIT 31 --- linux-3.2.0.orig/include/linux/fsnotify_backend.h +++ linux-3.2.0/include/linux/fsnotify_backend.h @@ -88,9 +88,10 @@ * if the group is interested in this event. * handle_event - main call for a group to handle an fs event * free_group_priv - called when a group refcnt hits 0 to clean up the private union - * freeing-mark - this means that a mark has been flagged to die when everything - * finishes using it. The function is supplied with what must be a - * valid group and inode to use to clean up. + * freeing_mark - called when a mark is being destroyed for some reason. The group + * MUST be holding a reference on each mark and that reference must be + * dropped in this function. inotify uses this function to send + * userspace messages that marks have been removed. */ struct fsnotify_ops { bool (*should_send_event)(struct fsnotify_group *group, struct inode *inode, @@ -141,7 +142,7 @@ unsigned int priority; /* stores all fastpath marks assoc with this group so they can be cleaned on unregister */ - spinlock_t mark_lock; /* protect marks_list */ + struct mutex mark_mutex; /* protect marks_list */ atomic_t num_marks; /* 1 for each mark and 1 for not being * past the point of no return when freeing * a group */ @@ -287,7 +288,6 @@ struct fsnotify_inode_mark i; struct fsnotify_vfsmount_mark m; }; - struct list_head free_g_list; /* tmp list used when freeing this mark */ __u32 ignored_mask; /* events types to ignore */ #define FSNOTIFY_MARK_FLAG_INODE 0x01 #define FSNOTIFY_MARK_FLAG_VFSMOUNT 0x02 @@ -360,11 +360,14 @@ /* called from fsnotify listeners, such as fanotify or dnotify */ -/* get a reference to an existing or create a new group */ +/* create a new group */ extern struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops); +/* get reference to a group */ +extern void fsnotify_get_group(struct fsnotify_group *group); /* drop reference on a group from fsnotify_alloc_group */ extern void fsnotify_put_group(struct fsnotify_group *group); - +/* destroy group */ +extern void fsnotify_destroy_group(struct fsnotify_group *group); /* take a reference to an event */ extern void fsnotify_get_event(struct fsnotify_event *event); extern void fsnotify_put_event(struct fsnotify_event *event); @@ -405,8 +408,13 @@ /* attach the mark to both the group and the inode */ extern int fsnotify_add_mark(struct fsnotify_mark *mark, struct fsnotify_group *group, struct inode *inode, struct vfsmount *mnt, int allow_dups); -/* given a mark, flag it to be freed when all references are dropped */ -extern void fsnotify_destroy_mark(struct fsnotify_mark *mark); +extern int fsnotify_add_mark_locked(struct fsnotify_mark *mark, struct fsnotify_group *group, + struct inode *inode, struct vfsmount *mnt, int allow_dups); +/* given a group and a mark, flag mark to be freed when all references are dropped */ +extern void fsnotify_destroy_mark(struct fsnotify_mark *mark, + struct fsnotify_group *group); +extern void fsnotify_destroy_mark_locked(struct fsnotify_mark *mark, + struct fsnotify_group *group); /* run all the marks in a group, and clear all of the vfsmount marks */ extern void fsnotify_clear_vfsmount_marks_by_group(struct fsnotify_group *group); /* run all the marks in a group, and clear all of the inode marks */ --- linux-3.2.0.orig/include/linux/rtnetlink.h +++ linux-3.2.0/include/linux/rtnetlink.h @@ -602,6 +602,9 @@ #define TCA_ACT_TAB 1 /* attr type must be >=1 */ #define TCAA_MAX 1 +/* New extended info filters for IFLA_EXT_MASK */ +#define RTEXT_FILTER_VF (1 << 0) + /* End of information exported to user level */ #ifdef __KERNEL__ --- linux-3.2.0.orig/include/linux/memcontrol.h +++ linux-3.2.0/include/linux/memcontrol.h @@ -119,6 +119,8 @@ mem_cgroup_get_reclaim_stat_from_page(struct page *page); extern void mem_cgroup_print_oom_info(struct mem_cgroup *memcg, struct task_struct *p); +extern void mem_cgroup_replace_page_cache(struct page *oldpage, + struct page *newpage); #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP extern int do_swap_account; @@ -366,6 +368,10 @@ void mem_cgroup_count_vm_event(struct mm_struct *mm, enum vm_event_item idx) { } +static inline void mem_cgroup_replace_page_cache(struct page *oldpage, + struct page *newpage) +{ +} #endif /* CONFIG_CGROUP_MEM_CONT */ #if !defined(CONFIG_CGROUP_MEM_RES_CTLR) || !defined(CONFIG_DEBUG_VM) --- linux-3.2.0.orig/include/linux/init.h +++ linux-3.2.0/include/linux/init.h @@ -195,6 +195,7 @@ #define core_initcall(fn) __define_initcall("1",fn,1) #define core_initcall_sync(fn) __define_initcall("1s",fn,1s) +#define earlyrootfs_initcall(fn) __define_initcall("earlyrootfs",fn,rootfs) #define postcore_initcall(fn) __define_initcall("2",fn,2) #define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s) #define arch_initcall(fn) __define_initcall("3",fn,3) --- linux-3.2.0.orig/include/linux/mount.h +++ linux-3.2.0/include/linux/mount.h @@ -103,6 +103,9 @@ extern struct vfsmount *do_kern_mount(const char *fstype, int flags, const char *name, void *data); +struct path; +extern struct vfsmount *clone_private_mount(struct path *path); + struct file_system_type; extern struct vfsmount *vfs_kern_mount(struct file_system_type *type, int flags, const char *name, --- linux-3.2.0.orig/include/linux/kernel.h +++ linux-3.2.0/include/linux/kernel.h @@ -85,6 +85,19 @@ } \ ) +/* + * Multiplies an integer by a fraction, while avoiding unnecessary + * overflow or loss of precision. + */ +#define mult_frac(x, numer, denom)( \ +{ \ + typeof(x) quot = (x) / (denom); \ + typeof(x) rem = (x) % (denom); \ + (quot * (numer)) + ((rem * (numer)) / (denom)); \ +} \ +) + + #define _RET_IP_ (unsigned long)__builtin_return_address(0) #define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; }) --- linux-3.2.0.orig/include/linux/if_vlan.h +++ linux-3.2.0/include/linux/if_vlan.h @@ -97,6 +97,8 @@ } #define vlan_tx_tag_present(__skb) ((__skb)->vlan_tci & VLAN_TAG_PRESENT) +#define vlan_tx_nonzero_tag_present(__skb) \ + (vlan_tx_tag_present(__skb) && ((__skb)->vlan_tci & VLAN_VID_MASK)) #define vlan_tx_tag_get(__skb) ((__skb)->vlan_tci & ~VLAN_TAG_PRESENT) #if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE) @@ -106,7 +108,7 @@ extern struct net_device *vlan_dev_real_dev(const struct net_device *dev); extern u16 vlan_dev_vlan_id(const struct net_device *dev); -extern bool vlan_do_receive(struct sk_buff **skb, bool last_handler); +extern bool vlan_do_receive(struct sk_buff **skb); extern struct sk_buff *vlan_untag(struct sk_buff *skb); #else @@ -128,10 +130,8 @@ return 0; } -static inline bool vlan_do_receive(struct sk_buff **skb, bool last_handler) +static inline bool vlan_do_receive(struct sk_buff **skb) { - if (((*skb)->vlan_tci & VLAN_VID_MASK) && last_handler) - (*skb)->pkt_type = PACKET_OTHERHOST; return false; } --- linux-3.2.0.orig/include/linux/mv643xx_eth.h +++ linux-3.2.0/include/linux/mv643xx_eth.h @@ -15,6 +15,8 @@ #define MV643XX_ETH_SIZE_REG_4 0x2224 #define MV643XX_ETH_BASE_ADDR_ENABLE_REG 0x2290 +#define MV643XX_TX_CSUM_DEFAULT_LIMIT 0 + struct mv643xx_eth_shared_platform_data { struct mbus_dram_target_info *dram; struct platform_device *shared_smi; --- linux-3.2.0.orig/include/linux/idr.h +++ linux-3.2.0/include/linux/idr.h @@ -152,4 +152,15 @@ void __init idr_init_cache(void); +/** + * idr_for_each_entry - iterate over an idr's elements of a given type + * @idp: idr handle + * @entry: the type * to use as cursor + * @id: id entry's key + */ +#define idr_for_each_entry(idp, entry, id) \ + for (id = 0, entry = (typeof(entry))idr_get_next((idp), &(id)); \ + entry != NULL; \ + ++id, entry = (typeof(entry))idr_get_next((idp), &(id))) + #endif /* __IDR_H__ */ --- linux-3.2.0.orig/include/linux/hyperv.h +++ linux-3.2.0/include/linux/hyperv.h @@ -25,6 +25,173 @@ #ifndef _HYPERV_H #define _HYPERV_H +#include + +/* + * An implementation of HyperV key value pair (KVP) functionality for Linux. + * + * + * Copyright (C) 2010, Novell, Inc. + * Author : K. Y. Srinivasan + * + */ + +/* + * Maximum value size - used for both key names and value data, and includes + * any applicable NULL terminators. + * + * Note: This limit is somewhat arbitrary, but falls easily within what is + * supported for all native guests (back to Win 2000) and what is reasonable + * for the IC KVP exchange functionality. Note that Windows Me/98/95 are + * limited to 255 character key names. + * + * MSDN recommends not storing data values larger than 2048 bytes in the + * registry. + * + * Note: This value is used in defining the KVP exchange message - this value + * cannot be modified without affecting the message size and compatibility. + */ + +/* + * bytes, including any null terminators + */ +#define HV_KVP_EXCHANGE_MAX_VALUE_SIZE (2048) + + +/* + * Maximum key size - the registry limit for the length of an entry name + * is 256 characters, including the null terminator + */ + +#define HV_KVP_EXCHANGE_MAX_KEY_SIZE (512) + +/* + * In Linux, we implement the KVP functionality in two components: + * 1) The kernel component which is packaged as part of the hv_utils driver + * is responsible for communicating with the host and responsible for + * implementing the host/guest protocol. 2) A user level daemon that is + * responsible for data gathering. + * + * Host/Guest Protocol: The host iterates over an index and expects the guest + * to assign a key name to the index and also return the value corresponding to + * the key. The host will have atmost one KVP transaction outstanding at any + * given point in time. The host side iteration stops when the guest returns + * an error. Microsoft has specified the following mapping of key names to + * host specified index: + * + * Index Key Name + * 0 FullyQualifiedDomainName + * 1 IntegrationServicesVersion + * 2 NetworkAddressIPv4 + * 3 NetworkAddressIPv6 + * 4 OSBuildNumber + * 5 OSName + * 6 OSMajorVersion + * 7 OSMinorVersion + * 8 OSVersion + * 9 ProcessorArchitecture + * + * The Windows host expects the Key Name and Key Value to be encoded in utf16. + * + * Guest Kernel/KVP Daemon Protocol: As noted earlier, we implement all of the + * data gathering functionality in a user mode daemon. The user level daemon + * is also responsible for binding the key name to the index as well. The + * kernel and user-level daemon communicate using a connector channel. + * + * The user mode component first registers with the + * the kernel component. Subsequently, the kernel component requests, data + * for the specified keys. In response to this message the user mode component + * fills in the value corresponding to the specified key. We overload the + * sequence field in the cn_msg header to define our KVP message types. + * + * + * The kernel component simply acts as a conduit for communication between the + * Windows host and the user-level daemon. The kernel component passes up the + * index received from the Host to the user-level daemon. If the index is + * valid (supported), the corresponding key as well as its + * value (both are strings) is returned. If the index is invalid + * (not supported), a NULL key string is returned. + */ + + +/* + * Registry value types. + */ + +#define REG_SZ 1 +#define REG_U32 4 +#define REG_U64 8 + +enum hv_kvp_exchg_op { + KVP_OP_GET = 0, + KVP_OP_SET, + KVP_OP_DELETE, + KVP_OP_ENUMERATE, + KVP_OP_REGISTER, + KVP_OP_COUNT /* Number of operations, must be last. */ +}; + +enum hv_kvp_exchg_pool { + KVP_POOL_EXTERNAL = 0, + KVP_POOL_GUEST, + KVP_POOL_AUTO, + KVP_POOL_AUTO_EXTERNAL, + KVP_POOL_AUTO_INTERNAL, + KVP_POOL_COUNT /* Number of pools, must be last. */ +}; + +struct hv_kvp_hdr { + __u8 operation; + __u8 pool; + __u16 pad; +} __attribute__((packed)); + +struct hv_kvp_exchg_msg_value { + __u32 value_type; + __u32 key_size; + __u32 value_size; + __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; + union { + __u8 value[HV_KVP_EXCHANGE_MAX_VALUE_SIZE]; + __u32 value_u32; + __u64 value_u64; + }; +} __attribute__((packed)); + +struct hv_kvp_msg_enumerate { + __u32 index; + struct hv_kvp_exchg_msg_value data; +} __attribute__((packed)); + +struct hv_kvp_msg_get { + struct hv_kvp_exchg_msg_value data; +}; + +struct hv_kvp_msg_set { + struct hv_kvp_exchg_msg_value data; +}; + +struct hv_kvp_msg_delete { + __u32 key_size; + __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; +}; + +struct hv_kvp_register { + __u8 version[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; +}; + +struct hv_kvp_msg { + struct hv_kvp_hdr kvp_hdr; + union { + struct hv_kvp_msg_get kvp_get; + struct hv_kvp_msg_set kvp_set; + struct hv_kvp_msg_delete kvp_delete; + struct hv_kvp_msg_enumerate kvp_enum_data; + struct hv_kvp_register kvp_register; + } body; +} __attribute__((packed)); + +#ifdef __KERNEL__ #include #include #include @@ -35,7 +202,7 @@ #include -#define MAX_PAGE_BUFFER_COUNT 16 +#define MAX_PAGE_BUFFER_COUNT 19 #define MAX_MULTIPAGE_BUFFER_COUNT 32 /* 128K */ #pragma pack(push, 1) @@ -785,6 +952,7 @@ #define HV_S_OK 0x00000000 #define HV_E_FAIL 0x80004005 +#define HV_S_CONT 0x80070103 #define HV_ERROR_NOT_SUPPORTED 0x80070032 #define HV_ERROR_MACHINE_LOCKED 0x800704F7 @@ -870,4 +1038,9 @@ extern void vmbus_prep_negotiate_resp(struct icmsg_hdr *, struct icmsg_negotiate *, u8 *); +int hv_kvp_init(struct hv_util_service *); +void hv_kvp_deinit(void); +void hv_kvp_onchannelcallback(void *); + +#endif /* __KERNEL__ */ #endif /* _HYPERV_H */ --- linux-3.2.0.orig/include/linux/ipc_namespace.h +++ linux-3.2.0/include/linux/ipc_namespace.h @@ -42,8 +42,8 @@ size_t shm_ctlmax; size_t shm_ctlall; + unsigned long shm_tot; int shm_ctlmni; - int shm_tot; /* * Defines whether IPC_RMID is forced for _all_ shm segments regardless * of shmctl() --- linux-3.2.0.orig/include/linux/binfmts.h +++ linux-3.2.0/include/linux/binfmts.h @@ -67,8 +67,6 @@ #define BINPRM_FLAGS_EXECFD_BIT 1 #define BINPRM_FLAGS_EXECFD (1 << BINPRM_FLAGS_EXECFD_BIT) -#define BINPRM_MAX_RECURSION 4 - /* Function parameter for binfmt->coredump */ struct coredump_params { long signr; @@ -127,6 +125,7 @@ unsigned long stack_top, int executable_stack); extern int bprm_mm_init(struct linux_binprm *bprm); +extern int bprm_change_interp(char *interp, struct linux_binprm *bprm); extern int copy_strings_kernel(int argc, const char *const *argv, struct linux_binprm *bprm); extern int prepare_bprm_creds(struct linux_binprm *bprm); --- linux-3.2.0.orig/include/linux/signalfd.h +++ linux-3.2.0/include/linux/signalfd.h @@ -61,13 +61,16 @@ wake_up(&tsk->sighand->signalfd_wqh); } +extern void signalfd_cleanup(struct sighand_struct *sighand); + #else /* CONFIG_SIGNALFD */ static inline void signalfd_notify(struct task_struct *tsk, int sig) { } +static inline void signalfd_cleanup(struct sighand_struct *sighand) { } + #endif /* CONFIG_SIGNALFD */ #endif /* __KERNEL__ */ #endif /* _LINUX_SIGNALFD_H */ - --- linux-3.2.0.orig/include/linux/nfs_xdr.h +++ linux-3.2.0/include/linux/nfs_xdr.h @@ -605,8 +605,13 @@ struct nfs4_sequence_args seq_args; }; +/* getxattr ACL interface flags */ +#define NFS4_ACL_LEN_REQUEST 0x0001 /* zero length getxattr buffer */ struct nfs_getaclres { size_t acl_len; + size_t acl_data_offset; + int acl_flags; + struct page * acl_scratch; struct nfs4_sequence_res seq_res; }; --- linux-3.2.0.orig/include/linux/freezer.h +++ linux-3.2.0/include/linux/freezer.h @@ -51,6 +51,7 @@ extern int freeze_processes(void); extern int freeze_kernel_threads(void); extern void thaw_processes(void); +extern void thaw_kernel_threads(void); static inline int try_to_freeze(void) { @@ -87,9 +88,16 @@ * parent. */ -/* - * If the current task is a user space one, tell the freezer not to count it as - * freezable. +/** + * freezer_do_not_count - tell freezer to ignore %current if a user space task + * + * Tell freezers to ignore the current task when determining whether the + * target frozen state is reached. IOW, the current task will be + * considered frozen enough by freezers. + * + * The caller shouldn't do anything which isn't allowed for a frozen task + * until freezer_cont() is called. Usually, freezer[_do_not]_count() pair + * wrap a scheduling operation and nothing much else. */ static inline void freezer_do_not_count(void) { @@ -97,24 +105,48 @@ current->flags |= PF_FREEZER_SKIP; } -/* - * If the current task is a user space one, tell the freezer to count it as - * freezable again and try to freeze it. +/** + * freezer_count - tell freezer to stop ignoring %current if a user space task + * + * Undo freezer_do_not_count(). It tells freezers that %current should be + * considered again and tries to freeze if freezing condition is already in + * effect. */ static inline void freezer_count(void) { if (current->mm) { current->flags &= ~PF_FREEZER_SKIP; + /* + * If freezing is in progress, the following paired with smp_mb() + * in freezer_should_skip() ensures that either we see %true + * freezing() or freezer_should_skip() sees !PF_FREEZER_SKIP. + */ + smp_mb(); try_to_freeze(); } } -/* - * Check if the task should be counted as freezable by the freezer - */ -static inline int freezer_should_skip(struct task_struct *p) -{ - return !!(p->flags & PF_FREEZER_SKIP); +/** + * freezer_should_skip - whether to skip a task when determining frozen + * state is reached + * @p: task in quesion + * + * This function is used by freezers after establishing %true freezing() to + * test whether a task should be skipped when determining the target frozen + * state is reached. IOW, if this function returns %true, @p is considered + * frozen enough. + */ +static inline bool freezer_should_skip(struct task_struct *p) +{ + /* + * The following smp_mb() paired with the one in freezer_count() + * ensures that either freezer_count() sees %true freezing() or we + * see cleared %PF_FREEZER_SKIP and return %false. This makes it + * impossible for a task to slip frozen state testing after + * clearing %PF_FREEZER_SKIP. + */ + smp_mb(); + return p->flags & PF_FREEZER_SKIP; } /* @@ -185,6 +217,7 @@ static inline int freeze_processes(void) { return -ENOSYS; } static inline int freeze_kernel_threads(void) { return -ENOSYS; } static inline void thaw_processes(void) {} +static inline void thaw_kernel_threads(void) {} static inline int try_to_freeze(void) { return 0; } --- linux-3.2.0.orig/include/linux/hrtimer.h +++ linux-3.2.0/include/linux/hrtimer.h @@ -165,6 +165,7 @@ * @lock: lock protecting the base and associated clock bases * and timers * @active_bases: Bitfield to mark bases with active timers + * @clock_was_set: Indicates that clock was set from irq context. * @expires_next: absolute time of the next event which was scheduled * via clock_set_next_event() * @hres_active: State of high resolution mode @@ -177,7 +178,8 @@ */ struct hrtimer_cpu_base { raw_spinlock_t lock; - unsigned long active_bases; + unsigned int active_bases; + unsigned int clock_was_set; #ifdef CONFIG_HIGH_RES_TIMERS ktime_t expires_next; int hres_active; @@ -286,6 +288,8 @@ # define MONOTONIC_RES_NSEC HIGH_RES_NSEC # define KTIME_MONOTONIC_RES KTIME_HIGH_RES +extern void clock_was_set_delayed(void); + #else # define MONOTONIC_RES_NSEC LOW_RES_NSEC @@ -306,6 +310,9 @@ { return 0; } + +static inline void clock_was_set_delayed(void) { } + #endif extern void clock_was_set(void); @@ -320,6 +327,7 @@ extern ktime_t ktime_get_real(void); extern ktime_t ktime_get_boottime(void); extern ktime_t ktime_get_monotonic_offset(void); +extern ktime_t ktime_get_update_offsets(ktime_t *offs_real, ktime_t *offs_boot); DECLARE_PER_CPU(struct tick_device, tick_cpu_device); --- linux-3.2.0.orig/include/linux/auto_fs.h +++ linux-3.2.0/include/linux/auto_fs.h @@ -31,25 +31,16 @@ #define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION /* - * Architectures where both 32- and 64-bit binaries can be executed - * on 64-bit kernels need this. This keeps the structure format - * uniform, and makes sure the wait_queue_token isn't too big to be - * passed back down to the kernel. - * - * This assumes that on these architectures: - * mode 32 bit 64 bit - * ------------------------- - * int 32 bit 32 bit - * long 32 bit 64 bit - * - * If so, 32-bit user-space code should be backwards compatible. + * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed + * back to the kernel via ioctl from userspace. On architectures where 32- and + * 64-bit userspace binaries can be executed it's important that the size of + * autofs_wqt_t stays constant between 32- and 64-bit Linux kernels so that we + * do not break the binary ABI interface by changing the structure size. */ - -#if defined(__sparc__) || defined(__mips__) || defined(__x86_64__) \ - || defined(__powerpc__) || defined(__s390__) -typedef unsigned int autofs_wqt_t; -#else +#if defined(__ia64__) || defined(__alpha__) /* pure 64bit architectures */ typedef unsigned long autofs_wqt_t; +#else +typedef unsigned int autofs_wqt_t; #endif /* Packet types */ --- linux-3.2.0.orig/include/linux/kernel-page-flags.h +++ linux-3.2.0/include/linux/kernel-page-flags.h @@ -31,6 +31,8 @@ #define KPF_KSM 21 +#ifdef __KERNEL__ + /* kernel hacking assistances * WARNING: subject to change, never rely on them! */ @@ -43,4 +45,6 @@ #define KPF_ARCH 38 #define KPF_UNCACHED 39 +#endif /* __KERNEL__ */ + #endif /* LINUX_KERNEL_PAGE_FLAGS_H */ --- linux-3.2.0.orig/include/linux/xfrm.h +++ linux-3.2.0/include/linux/xfrm.h @@ -84,6 +84,8 @@ __u32 bitmap; }; +#define XFRMA_REPLAY_ESN_MAX 4096 + struct xfrm_replay_state_esn { unsigned int bmp_len; __u32 oseq; --- linux-3.2.0.orig/include/linux/mod_devicetable.h +++ linux-3.2.0/include/linux/mod_devicetable.h @@ -542,4 +542,22 @@ kernel_ulong_t driver_data; /* data private to the driver */ }; +/** + * struct amba_id - identifies a device on an AMBA bus + * @id: The significant bits if the hardware device ID + * @mask: Bitmask specifying which bits of the id field are significant when + * matching. A driver binds to a device when ((hardware device ID) & mask) + * == id. + * @data: Private data used by the driver. + */ +struct amba_id { + unsigned int id; + unsigned int mask; +#ifndef __KERNEL__ + kernel_ulong_t data; +#else + void *data; +#endif +}; + #endif /* LINUX_MOD_DEVICETABLE_H */ --- linux-3.2.0.orig/include/linux/highmem.h +++ linux-3.2.0/include/linux/highmem.h @@ -38,10 +38,17 @@ void kmap_flush_unused(void); +struct page *kmap_to_page(void *addr); + #else /* CONFIG_HIGHMEM */ static inline unsigned int nr_free_highpages(void) { return 0; } +static inline struct page *kmap_to_page(void *addr) +{ + return virt_to_page(addr); +} + #define totalhigh_pages 0UL #ifndef ARCH_HAS_KMAP --- linux-3.2.0.orig/include/linux/cgroup.h +++ linux-3.2.0/include/linux/cgroup.h @@ -32,7 +32,6 @@ extern bool cgroup_lock_live_group(struct cgroup *cgrp); extern void cgroup_unlock(void); extern void cgroup_fork(struct task_struct *p); -extern void cgroup_fork_callbacks(struct task_struct *p); extern void cgroup_post_fork(struct task_struct *p); extern void cgroup_exit(struct task_struct *p, int run_callbacks); extern int cgroupstats_build(struct cgroupstats *stats, @@ -532,16 +531,54 @@ return cgrp->subsys[subsys_id]; } -/* - * function to get the cgroup_subsys_state which allows for extra - * rcu_dereference_check() conditions, such as locks used during the - * cgroup_subsys::attach() methods. +/** + * task_css_set_check - obtain a task's css_set with extra access conditions + * @task: the task to obtain css_set for + * @__c: extra condition expression to be passed to rcu_dereference_check() + * + * A task's css_set is RCU protected, initialized and exited while holding + * task_lock(), and can only be modified while holding both cgroup_mutex + * and task_lock() while the task is alive. This macro verifies that the + * caller is inside proper critical section and returns @task's css_set. + * + * The caller can also specify additional allowed conditions via @__c, such + * as locks used during the cgroup_subsys::attach() methods. + */ +#define task_css_set_check(task, __c) \ + rcu_dereference_check((task)->cgroups, \ + lockdep_is_held(&(task)->alloc_lock) || \ + cgroup_lock_is_held() || (__c)) + +/** + * task_subsys_state_check - obtain css for (task, subsys) w/ extra access conds + * @task: the target task + * @subsys_id: the target subsystem ID + * @__c: extra condition expression to be passed to rcu_dereference_check() + * + * Return the cgroup_subsys_state for the (@task, @subsys_id) pair. The + * synchronization rules are the same as task_css_set_check(). */ #define task_subsys_state_check(task, subsys_id, __c) \ - rcu_dereference_check(task->cgroups->subsys[subsys_id], \ - lockdep_is_held(&task->alloc_lock) || \ - cgroup_lock_is_held() || (__c)) + task_css_set_check((task), (__c))->subsys[(subsys_id)] + +/** + * task_css_set - obtain a task's css_set + * @task: the task to obtain css_set for + * + * See task_css_set_check(). + */ +static inline struct css_set *task_css_set(struct task_struct *task) +{ + return task_css_set_check(task, false); +} +/** + * task_subsys_state - obtain css for (task, subsys) + * @task: the target task + * @subsys_id: the target subsystem ID + * + * See task_subsys_state_check(). + */ static inline struct cgroup_subsys_state * task_subsys_state(struct task_struct *task, int subsys_id) { --- linux-3.2.0.orig/include/linux/kvm_types.h +++ linux-3.2.0/include/linux/kvm_types.h @@ -71,6 +71,7 @@ u64 generation; gpa_t gpa; unsigned long hva; + unsigned long len; struct kvm_memory_slot *memslot; }; --- linux-3.2.0.orig/include/linux/syslog.h +++ linux-3.2.0/include/linux/syslog.h @@ -47,6 +47,12 @@ #define SYSLOG_FROM_CALL 0 #define SYSLOG_FROM_FILE 1 +/* + * Syslog priority (PRI) maximum length in char : '<[0-9]{1,3}>' + * See RFC5424 for details +*/ +#define SYSLOG_PRI_MAX_LENGTH 5 + int do_syslog(int type, char __user *buf, int count, bool from_file); #endif /* _LINUX_SYSLOG_H */ --- linux-3.2.0.orig/include/linux/proportions.h +++ linux-3.2.0/include/linux/proportions.h @@ -81,7 +81,11 @@ * Limit the time part in order to ensure there are some bits left for the * cycle counter and fraction multiply. */ +#if BITS_PER_LONG == 32 #define PROP_MAX_SHIFT (3*BITS_PER_LONG/4) +#else +#define PROP_MAX_SHIFT (BITS_PER_LONG/2) +#endif #define PROP_FRAC_SHIFT (BITS_PER_LONG - PROP_MAX_SHIFT - 1) #define PROP_FRAC_BASE (1UL << PROP_FRAC_SHIFT) --- linux-3.2.0.orig/include/linux/rculist.h +++ linux-3.2.0/include/linux/rculist.h @@ -242,6 +242,23 @@ list_entry_rcu((ptr)->next, type, member) /** + * list_first_or_null_rcu - get the first element from a list + * @ptr: the list head to take the element from. + * @type: the type of the struct this is embedded in. + * @member: the name of the list_struct within the struct. + * + * Note that if the list is empty, it returns NULL. + * + * This primitive 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_first_or_null_rcu(ptr, type, member) \ + ({struct list_head *__ptr = (ptr); \ + struct list_head __rcu *__next = list_next_rcu(__ptr); \ + likely(__ptr != __next) ? container_of(__next, type, member) : NULL; \ + }) + +/** * list_for_each_entry_rcu - iterate over rcu list of given type * @pos: the type * to use as a loop cursor. * @head: the head for your list. --- linux-3.2.0.orig/include/linux/screen_info.h +++ linux-3.2.0/include/linux/screen_info.h @@ -67,6 +67,7 @@ #define VIDEO_TYPE_EFI 0x70 /* EFI graphic mode */ #define VIDEO_FLAGS_NOCURSOR (1 << 0) /* The video mode has no cursor set */ +#define VIDEO_FLAGS_HANDOFF (1 << 1) /* Video buffer is alredy painted */ #ifdef __KERNEL__ extern struct screen_info screen_info; --- linux-3.2.0.orig/include/linux/pci_ids.h +++ linux-3.2.0/include/linux/pci_ids.h @@ -752,6 +752,7 @@ #define PCI_DEVICE_ID_HP_CISSD 0x3238 #define PCI_DEVICE_ID_HP_CISSE 0x323a #define PCI_DEVICE_ID_HP_CISSF 0x323b +#define PCI_DEVICE_ID_HP_CISSH 0x323c #define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031 #define PCI_VENDOR_ID_PCTECH 0x1042 @@ -1542,6 +1543,7 @@ #define PCI_DEVICE_ID_RICOH_RL5C476 0x0476 #define PCI_DEVICE_ID_RICOH_RL5C478 0x0478 #define PCI_DEVICE_ID_RICOH_R5C822 0x0822 +#define PCI_DEVICE_ID_RICOH_R5CE822 0xe822 #define PCI_DEVICE_ID_RICOH_R5CE823 0xe823 #define PCI_DEVICE_ID_RICOH_R5C832 0x0832 #define PCI_DEVICE_ID_RICOH_R5C843 0x0843 @@ -1577,6 +1579,7 @@ #define PCI_SUBDEVICE_ID_KEYSPAN_SX2 0x5334 #define PCI_VENDOR_ID_MARVELL 0x11ab +#define PCI_VENDOR_ID_MARVELL_EXT 0x1b4b #define PCI_DEVICE_ID_MARVELL_GT64111 0x4146 #define PCI_DEVICE_ID_MARVELL_GT64260 0x6430 #define PCI_DEVICE_ID_MARVELL_MV64360 0x6460 @@ -1823,7 +1826,6 @@ #define PCI_DEVICE_ID_SIIG_8S_20x_650 0x2081 #define PCI_DEVICE_ID_SIIG_8S_20x_850 0x2082 #define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050 -#define PCI_SUBDEVICE_ID_SIIG_DUAL_SERIAL 0x2530 #define PCI_VENDOR_ID_RADISYS 0x1331 @@ -2082,6 +2084,7 @@ #define PCI_DEVICE_ID_NX2_57711E 0x1650 #define PCI_DEVICE_ID_TIGON3_5705 0x1653 #define PCI_DEVICE_ID_TIGON3_5705_2 0x1654 +#define PCI_DEVICE_ID_TIGON3_5719 0x1657 #define PCI_DEVICE_ID_TIGON3_5721 0x1659 #define PCI_DEVICE_ID_TIGON3_5722 0x165a #define PCI_DEVICE_ID_TIGON3_5723 0x165b @@ -2124,7 +2127,7 @@ #define PCI_DEVICE_ID_TIGON3_5704S 0x16a8 #define PCI_DEVICE_ID_NX2_57800_VF 0x16a9 #define PCI_DEVICE_ID_NX2_5706S 0x16aa -#define PCI_DEVICE_ID_NX2_57840_MF 0x16ab +#define PCI_DEVICE_ID_NX2_57840_MF 0x16a4 #define PCI_DEVICE_ID_NX2_5708S 0x16ac #define PCI_DEVICE_ID_NX2_57840_VF 0x16ad #define PCI_DEVICE_ID_NX2_57810_MF 0x16ae --- linux-3.2.0.orig/include/linux/Kbuild +++ linux-3.2.0/include/linux/Kbuild @@ -224,6 +224,7 @@ header-y += kdev_t.h header-y += kernel.h header-y += kernelcapi.h +header-y += kernel-page-flags.h header-y += keyboard.h header-y += keyctl.h header-y += l2tp.h @@ -267,6 +268,7 @@ header-y += netfilter_ipv6.h header-y += netlink.h header-y += netrom.h +header-y += nfc.h header-y += nfs.h header-y += nfs2.h header-y += nfs3.h @@ -327,6 +329,7 @@ header-y += sched.h header-y += screen_info.h header-y += sdla.h +header-y += seccomp.h header-y += securebits.h header-y += selinux_netlink.h header-y += sem.h --- linux-3.2.0.orig/include/linux/pstore.h +++ linux-3.2.0/include/linux/pstore.h @@ -22,6 +22,8 @@ #ifndef _LINUX_PSTORE_H #define _LINUX_PSTORE_H +#include + /* types */ enum pstore_type_id { PSTORE_TYPE_DMESG = 0, @@ -50,6 +52,7 @@ #ifdef CONFIG_PSTORE extern int pstore_register(struct pstore_info *); +extern bool pstore_cannot_block_path(enum kmsg_dump_reason reason); extern int pstore_write(enum pstore_type_id type, char *buf, size_t size); #else static inline int @@ -57,6 +60,11 @@ { return -ENODEV; } +static inline bool +pstore_cannot_block_path(enum kmsg_dump_reason reason) +{ + return false; +} static inline int pstore_write(enum pstore_type_id type, char *buf, size_t size) { --- linux-3.2.0.orig/include/linux/migrate.h +++ linux-3.2.0/include/linux/migrate.h @@ -6,18 +6,31 @@ typedef struct page *new_page_t(struct page *, unsigned long private, int **); +/* + * MIGRATE_ASYNC means never block + * MIGRATE_SYNC_LIGHT in the current implementation means to allow blocking + * on most operations but not ->writepage as the potential stall time + * is too significant + * MIGRATE_SYNC will block when migrating pages + */ +enum migrate_mode { + MIGRATE_ASYNC, + MIGRATE_SYNC_LIGHT, + MIGRATE_SYNC, +}; + #ifdef CONFIG_MIGRATION #define PAGE_MIGRATION 1 extern void putback_lru_pages(struct list_head *l); extern int migrate_page(struct address_space *, - struct page *, struct page *); + struct page *, struct page *, enum migrate_mode); extern int migrate_pages(struct list_head *l, new_page_t x, unsigned long private, bool offlining, - bool sync); + enum migrate_mode mode); extern int migrate_huge_pages(struct list_head *l, new_page_t x, unsigned long private, bool offlining, - bool sync); + enum migrate_mode mode); extern int fail_migrate_page(struct address_space *, struct page *, struct page *); @@ -36,10 +49,10 @@ static inline void putback_lru_pages(struct list_head *l) {} static inline int migrate_pages(struct list_head *l, new_page_t x, unsigned long private, bool offlining, - bool sync) { return -ENOSYS; } + enum migrate_mode mode) { return -ENOSYS; } static inline int migrate_huge_pages(struct list_head *l, new_page_t x, unsigned long private, bool offlining, - bool sync) { return -ENOSYS; } + enum migrate_mode mode) { return -ENOSYS; } static inline int migrate_prep(void) { return -ENOSYS; } static inline int migrate_prep_local(void) { return -ENOSYS; } --- linux-3.2.0.orig/include/linux/lsm_audit.h +++ linux-3.2.0/include/linux/lsm_audit.h @@ -119,11 +119,22 @@ unsigned long max; } rlim; struct { + const char *src_name; + const char *type; + const char *trans; + const char *data; + unsigned long flags; + } mnt; + struct { const char *target; u32 request; u32 denied; uid_t ouid; } fs; + struct { + int type, protocol; + struct sock *sk; + } net; }; } apparmor_audit_data; #endif --- linux-3.2.0.orig/include/linux/pid_namespace.h +++ linux-3.2.0/include/linux/pid_namespace.h @@ -30,6 +30,9 @@ #ifdef CONFIG_BSD_PROCESS_ACCT struct bsd_acct_struct *bacct; #endif + gid_t pid_gid; + int hide_pid; + int reboot; }; extern struct pid_namespace init_pid_ns; @@ -45,6 +48,7 @@ extern struct pid_namespace *copy_pid_ns(unsigned long flags, struct pid_namespace *ns); extern void free_pid_ns(struct kref *kref); extern void zap_pid_ns_processes(struct pid_namespace *pid_ns); +extern int reboot_pid_ns(struct pid_namespace *pid_ns, int cmd); static inline void put_pid_ns(struct pid_namespace *ns) { @@ -72,11 +76,15 @@ { } - static inline void zap_pid_ns_processes(struct pid_namespace *ns) { BUG(); } + +static inline int reboot_pid_ns(struct pid_namespace *pid_ns, int cmd) +{ + return 0; +} #endif /* CONFIG_PID_NS */ extern struct pid_namespace *task_active_pid_ns(struct task_struct *tsk); --- linux-3.2.0.orig/include/linux/compiler-gcc.h +++ linux-3.2.0/include/linux/compiler-gcc.h @@ -50,6 +50,11 @@ # define inline inline __attribute__((always_inline)) # define __inline__ __inline__ __attribute__((always_inline)) # define __inline __inline __attribute__((always_inline)) +#else +/* A lot of inline functions can cause havoc with function tracing */ +# define inline inline notrace +# define __inline__ __inline__ notrace +# define __inline __inline notrace #endif #define __deprecated __attribute__((deprecated)) --- linux-3.2.0.orig/include/linux/thermal.h +++ linux-3.2.0/include/linux/thermal.h @@ -108,7 +108,7 @@ /* Adding event notification support elements */ #define THERMAL_GENL_FAMILY_NAME "thermal_event" #define THERMAL_GENL_VERSION 0x01 -#define THERMAL_GENL_MCAST_GROUP_NAME "thermal_mc_group" +#define THERMAL_GENL_MCAST_GROUP_NAME "thermal_mc_grp" enum events { THERMAL_AUX0, --- linux-3.2.0.orig/include/linux/usb.h +++ linux-3.2.0/include/linux/usb.h @@ -775,6 +775,27 @@ .bInterfaceSubClass = (sc), \ .bInterfaceProtocol = (pr) +/** + * USB_VENDOR_AND_INTERFACE_INFO - describe a specific usb vendor with a class of usb interfaces + * @vend: the 16 bit USB Vendor ID + * @cl: bInterfaceClass value + * @sc: bInterfaceSubClass value + * @pr: bInterfaceProtocol value + * + * This macro is used to create a struct usb_device_id that matches a + * specific vendor with a specific class of interfaces. + * + * This is especially useful when explicitly matching devices that have + * vendor specific bDeviceClass values, but standards-compliant interfaces. + */ +#define USB_VENDOR_AND_INTERFACE_INFO(vend, cl, sc, pr) \ + .match_flags = USB_DEVICE_ID_MATCH_INT_INFO \ + | USB_DEVICE_ID_MATCH_VENDOR, \ + .idVendor = (vend), \ + .bInterfaceClass = (cl), \ + .bInterfaceSubClass = (sc), \ + .bInterfaceProtocol = (pr) + /* ----------------------------------------------------------------------- */ /* Stuff for dynamic usb ids */ @@ -1221,6 +1242,7 @@ void *transfer_buffer; /* (in) associated data buffer */ dma_addr_t transfer_dma; /* (in) dma addr for transfer_buffer */ struct scatterlist *sg; /* (in) scatter gather buffer list */ + int num_mapped_sgs; /* (internal) mapped sg entries */ int num_sgs; /* (in) number of entries in the sg list */ u32 transfer_buffer_length; /* (in) data buffer length */ u32 actual_length; /* (return) actual transfer length */ @@ -1598,6 +1620,19 @@ /* ----------------------------------------------------------------------- */ +/* translate USB error codes to codes user space understands */ +static inline int usb_translate_errors(int error_code) +{ + switch (error_code) { + case 0: + case -ENOMEM: + case -ENODEV: + return error_code; + default: + return -EIO; + } +} + /* Events from the usb core */ #define USB_DEVICE_ADD 0x0001 #define USB_DEVICE_REMOVE 0x0002 --- linux-3.2.0.orig/include/linux/rculist_nulls.h +++ linux-3.2.0/include/linux/rculist_nulls.h @@ -105,9 +105,14 @@ * @head: the head for your list. * @member: the name of the hlist_nulls_node within the struct. * + * The barrier() is needed to make sure compiler doesn't cache first element [1], + * as this loop can be restarted [2] + * [1] Documentation/atomic_ops.txt around line 114 + * [2] Documentation/RCU/rculist_nulls.txt around line 146 */ #define hlist_nulls_for_each_entry_rcu(tpos, pos, head, member) \ - for (pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \ + for (({barrier();}), \ + pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \ (!is_a_nulls(pos)) && \ ({ tpos = hlist_nulls_entry(pos, typeof(*tpos), member); 1; }); \ pos = rcu_dereference_raw(hlist_nulls_next_rcu(pos))) --- linux-3.2.0.orig/include/linux/splice.h +++ linux-3.2.0/include/linux/splice.h @@ -51,7 +51,8 @@ struct splice_pipe_desc { struct page **pages; /* page map */ struct partial_page *partial; /* pages[] may not be contig */ - int nr_pages; /* number of pages in map */ + int nr_pages; /* number of populated pages in map */ + unsigned int nr_pages_max; /* pages[] & partial[] arrays size */ unsigned int flags; /* splice flags */ const struct pipe_buf_operations *ops;/* ops associated with output pipe */ void (*spd_release)(struct splice_pipe_desc *, unsigned int); @@ -85,10 +86,15 @@ /* * for dynamic pipe sizing */ -extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *); -extern void splice_shrink_spd(struct pipe_inode_info *, - struct splice_pipe_desc *); +extern int splice_grow_spd(const struct pipe_inode_info *, struct splice_pipe_desc *); +extern void splice_shrink_spd(struct splice_pipe_desc *); extern void spd_release_page(struct splice_pipe_desc *, unsigned int); extern const struct pipe_buf_operations page_cache_pipe_buf_ops; + +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags); +extern long do_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags); #endif --- linux-3.2.0.orig/include/linux/nbd.h +++ linux-3.2.0/include/linux/nbd.h @@ -68,6 +68,7 @@ u64 bytesize; pid_t pid; /* pid of nbd-client, if attached */ int xmit_timeout; + int disconnect; /* a disconnect has been requested by user */ }; #endif --- linux-3.2.0.orig/include/linux/fb.h +++ linux-3.2.0/include/linux/fb.h @@ -997,6 +997,7 @@ /* drivers/video/fbmem.c */ extern int register_framebuffer(struct fb_info *fb_info); extern int unregister_framebuffer(struct fb_info *fb_info); +extern int unlink_framebuffer(struct fb_info *fb_info); extern void remove_conflicting_framebuffers(struct apertures_struct *a, const char *name, bool primary); extern int fb_prepare_logo(struct fb_info *fb_info, int rotate); --- linux-3.2.0.orig/include/linux/perf_event.h +++ linux-3.2.0/include/linux/perf_event.h @@ -794,7 +794,7 @@ struct hw_perf_event hw; struct perf_event_context *ctx; - struct file *filp; + atomic_long_t refcount; /* * These accumulate total time (in nanoseconds) that children @@ -819,8 +819,7 @@ /* mmap bits */ struct mutex mmap_mutex; atomic_t mmap_count; - int mmap_locked; - struct user_struct *mmap_user; + struct ring_buffer *rb; struct list_head rb_entry; @@ -1186,6 +1185,12 @@ static inline void perf_event_task_tick(void) { } #endif +#if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_INTEL) +extern void perf_restore_debug_store(void); +#else +static inline void perf_restore_debug_store(void) { } +#endif + #define perf_output_put(handle, x) perf_output_copy((handle), &(x), sizeof(x)) /* --- linux-3.2.0.orig/include/linux/mm.h +++ linux-3.2.0/include/linux/mm.h @@ -1396,7 +1396,13 @@ unsigned long addr, unsigned long len, unsigned long flags, struct page **pages); -extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); +extern unsigned long get_unmapped_area_prot(struct file *, unsigned long, unsigned long, unsigned long, unsigned long, int); + +static inline unsigned long get_unmapped_area(struct file *file, unsigned long addr, + unsigned long len, unsigned long pgoff, unsigned long flags) +{ + return get_unmapped_area_prot(file, addr, len, pgoff, flags, 0); +} extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, unsigned long len, unsigned long prot, @@ -1509,6 +1515,8 @@ unsigned long pfn); int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn); +int vm_iomap_memory(struct vm_area_struct *vma, phys_addr_t start, unsigned long len); + struct page *follow_page(struct vm_area_struct *, unsigned long address, unsigned int foll_flags); --- linux-3.2.0.orig/include/linux/writeback.h +++ linux-3.2.0/include/linux/writeback.h @@ -195,6 +195,8 @@ void tag_pages_for_writeback(struct address_space *mapping, pgoff_t start, pgoff_t end); +void account_page_redirty(struct page *page); + /* pdflush.c */ extern int nr_pdflush_threads; /* Global so it can be exported to sysctl read-only. */ --- linux-3.2.0.orig/include/linux/cpuset.h +++ linux-3.2.0/include/linux/cpuset.h @@ -89,42 +89,33 @@ extern void cpuset_print_task_mems_allowed(struct task_struct *p); /* - * reading current mems_allowed and mempolicy in the fastpath must protected - * by get_mems_allowed() + * get_mems_allowed is required when making decisions involving mems_allowed + * such as during page allocation. mems_allowed can be updated in parallel + * and depending on the new value an operation can fail potentially causing + * process failure. A retry loop with get_mems_allowed and put_mems_allowed + * prevents these artificial failures. */ -static inline void get_mems_allowed(void) +static inline unsigned int get_mems_allowed(void) { - current->mems_allowed_change_disable++; + return read_seqcount_begin(¤t->mems_allowed_seq); +} - /* - * ensure that reading mems_allowed and mempolicy happens after the - * update of ->mems_allowed_change_disable. - * - * the write-side task finds ->mems_allowed_change_disable is not 0, - * and knows the read-side task is reading mems_allowed or mempolicy, - * so it will clear old bits lazily. - */ - smp_mb(); -} - -static inline void put_mems_allowed(void) -{ - /* - * ensure that reading mems_allowed and mempolicy before reducing - * mems_allowed_change_disable. - * - * the write-side task will know that the read-side task is still - * reading mems_allowed or mempolicy, don't clears old bits in the - * nodemask. - */ - smp_mb(); - --ACCESS_ONCE(current->mems_allowed_change_disable); +/* + * If this returns false, the operation that took place after get_mems_allowed + * may have failed. It is up to the caller to retry the operation if + * appropriate. + */ +static inline bool put_mems_allowed(unsigned int seq) +{ + return !read_seqcount_retry(¤t->mems_allowed_seq, seq); } static inline void set_mems_allowed(nodemask_t nodemask) { task_lock(current); + write_seqcount_begin(¤t->mems_allowed_seq); current->mems_allowed = nodemask; + write_seqcount_end(¤t->mems_allowed_seq); task_unlock(current); } @@ -234,12 +225,14 @@ { } -static inline void get_mems_allowed(void) +static inline unsigned int get_mems_allowed(void) { + return 0; } -static inline void put_mems_allowed(void) +static inline bool put_mems_allowed(unsigned int seq) { + return true; } #endif /* !CONFIG_CPUSETS */ --- linux-3.2.0.orig/include/linux/jbd2.h +++ linux-3.2.0/include/linux/jbd2.h @@ -470,6 +470,7 @@ T_COMMIT, T_COMMIT_DFLUSH, T_COMMIT_JFLUSH, + T_COMMIT_CALLBACK, T_FINISHED } t_state; @@ -1165,6 +1166,7 @@ int jbd2_journal_start_commit(journal_t *journal, tid_t *tid); int jbd2_journal_force_commit_nested(journal_t *journal); int jbd2_log_wait_commit(journal_t *journal, tid_t tid); +int jbd2_complete_transaction(journal_t *journal, tid_t tid); int jbd2_log_do_checkpoint(journal_t *journal); int jbd2_trans_will_send_data_barrier(journal_t *journal, tid_t tid); --- linux-3.2.0.orig/include/linux/wait.h +++ linux-3.2.0/include/linux/wait.h @@ -233,6 +233,8 @@ if (!ret) \ break; \ } \ + if (!ret && (condition)) \ + ret = 1; \ finish_wait(&wq, &__wait); \ } while (0) @@ -249,8 +251,9 @@ * wake_up() has to be called after changing any variable that could * change the result of the wait condition. * - * The function returns 0 if the @timeout elapsed, and the remaining - * jiffies if the condition evaluated to true before the timeout elapsed. + * The function returns 0 if the @timeout elapsed, or the remaining + * jiffies (at least 1) if the @condition evaluated to %true before + * the @timeout elapsed. */ #define wait_event_timeout(wq, condition, timeout) \ ({ \ @@ -318,6 +321,8 @@ ret = -ERESTARTSYS; \ break; \ } \ + if (!ret && (condition)) \ + ret = 1; \ finish_wait(&wq, &__wait); \ } while (0) @@ -334,9 +339,10 @@ * wake_up() has to be called after changing any variable that could * change the result of the wait condition. * - * The function returns 0 if the @timeout elapsed, -ERESTARTSYS if it - * was interrupted by a signal, and the remaining jiffies otherwise - * if the condition evaluated to true before the timeout elapsed. + * Returns: + * 0 if the @timeout elapsed, -%ERESTARTSYS if it was interrupted by + * a signal, or the remaining jiffies (at least 1) if the @condition + * evaluated to %true before the @timeout elapsed. */ #define wait_event_interruptible_timeout(wq, condition, timeout) \ ({ \ --- linux-3.2.0.orig/include/linux/netfilter_bridge.h +++ linux-3.2.0/include/linux/netfilter_bridge.h @@ -104,9 +104,18 @@ } daddr; }; +static inline void br_drop_fake_rtable(struct sk_buff *skb) +{ + struct dst_entry *dst = skb_dst(skb); + + if (dst && (dst->flags & DST_FAKE_RTABLE)) + skb_dst_drop(skb); +} + #else #define nf_bridge_maybe_copy_header(skb) (0) #define nf_bridge_pad(skb) (0) +#define br_drop_fake_rtable(skb) do { } while (0) #endif /* CONFIG_BRIDGE_NETFILTER */ #endif /* __KERNEL__ */ --- linux-3.2.0.orig/include/linux/swap.h +++ linux-3.2.0/include/linux/swap.h @@ -194,6 +194,7 @@ struct block_device *bdev; /* swap device or bdev of swap file */ struct file *swap_file; /* seldom referenced */ unsigned int old_block_size; /* seldom referenced */ + void (*notify_swap_entry_free_fn) (unsigned long); }; struct swap_list_t { @@ -272,7 +273,7 @@ #endif extern int page_evictable(struct page *page, struct vm_area_struct *vma); -extern void scan_mapping_unevictable_pages(struct address_space *); +extern void check_move_unevictable_pages(struct page **, int nr_pages); extern unsigned long scan_unevictable_pages; extern int scan_unevictable_handler(struct ctl_table *, int, @@ -343,6 +344,7 @@ extern int reuse_swap_page(struct page *); extern int try_to_free_swap(struct page *); struct backing_dev_info; +extern void set_notify_swap_entry_free(unsigned, void (*) (unsigned long)); /* linux/mm/thrash.c */ extern struct mm_struct *swap_token_mm; --- linux-3.2.0.orig/include/linux/shmem_fs.h +++ linux-3.2.0/include/linux/shmem_fs.h @@ -48,6 +48,7 @@ loff_t size, unsigned long flags); extern int shmem_zero_setup(struct vm_area_struct *); extern int shmem_lock(struct file *file, int lock, struct user_struct *user); +extern void shmem_unlock_mapping(struct address_space *mapping); extern struct page *shmem_read_mapping_page_gfp(struct address_space *mapping, pgoff_t index, gfp_t gfp_mask); extern void shmem_truncate_range(struct inode *inode, loff_t start, loff_t end); --- linux-3.2.0.orig/include/linux/netdevice.h +++ linux-3.2.0/include/linux/netdevice.h @@ -225,9 +225,9 @@ #define NETDEV_HW_ADDR_T_SLAVE 3 #define NETDEV_HW_ADDR_T_UNICAST 4 #define NETDEV_HW_ADDR_T_MULTICAST 5 - bool synced; bool global_use; int refcount; + int synced; struct rcu_head rcu_head; }; @@ -1147,8 +1147,8 @@ #if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE) struct vlan_group __rcu *vlgrp; /* VLAN group */ #endif -#ifdef CONFIG_NET_DSA - void *dsa_ptr; /* dsa specific data */ +#if IS_ENABLED(CONFIG_NET_DSA) + struct dsa_switch_tree *dsa_ptr; /* dsa specific data */ #endif void *atalk_ptr; /* AppleTalk link */ struct in_device __rcu *ip_ptr; /* IPv4 specific data */ @@ -1299,6 +1299,8 @@ /* for setting kernel sock attribute on TCP connection setup */ #define GSO_MAX_SIZE 65536 unsigned int gso_max_size; +#define GSO_MAX_SEGS 65535 + u16 gso_max_segs; #ifdef CONFIG_DCB /* Data Center Bridging netlink ops */ @@ -1420,15 +1422,6 @@ return 0; } -#ifndef CONFIG_NET_NS -static inline void skb_set_dev(struct sk_buff *skb, struct net_device *dev) -{ - skb->dev = dev; -} -#else /* CONFIG_NET_NS */ -void skb_set_dev(struct sk_buff *skb, struct net_device *dev); -#endif - static inline bool netdev_uses_trailer_tags(struct net_device *dev) { #ifdef CONFIG_NET_DSA_TAG_TRAILER @@ -1520,6 +1513,8 @@ struct sk_buff **(*gro_receive)(struct sk_buff **head, struct sk_buff *skb); int (*gro_complete)(struct sk_buff *skb); + bool (*id_match)(struct packet_type *ptype, + struct sock *sk); void *af_packet_priv; struct list_head list; }; @@ -2536,8 +2531,6 @@ extern void *dev_seq_start(struct seq_file *seq, loff_t *pos); extern void *dev_seq_next(struct seq_file *seq, void *v, loff_t *pos); extern void dev_seq_stop(struct seq_file *seq, void *v); -extern int dev_seq_open_ops(struct inode *inode, struct file *file, - const struct seq_operations *ops); #endif extern int netdev_class_create_file(struct class_attribute *class_attr); --- linux-3.2.0.orig/include/linux/mmzone.h +++ linux-3.2.0/include/linux/mmzone.h @@ -173,6 +173,8 @@ #define ISOLATE_CLEAN ((__force isolate_mode_t)0x4) /* Isolate unmapped file */ #define ISOLATE_UNMAPPED ((__force isolate_mode_t)0x8) +/* Isolate for asynchronous migration */ +#define ISOLATE_ASYNC_MIGRATE ((__force isolate_mode_t)0x10) /* LRU Isolation modes. */ typedef unsigned __bitwise__ isolate_mode_t; @@ -652,7 +654,7 @@ range, including holes */ int node_id; wait_queue_head_t kswapd_wait; - struct task_struct *kswapd; + struct task_struct *kswapd; /* Protected by lock_memory_hotplug() */ int kswapd_max_order; enum zone_type classzone_idx; } pg_data_t; --- linux-3.2.0.orig/include/linux/kref.h +++ linux-3.2.0/include/linux/kref.h @@ -16,6 +16,7 @@ #define _KREF_H_ #include +#include struct kref { atomic_t refcount; @@ -27,4 +28,24 @@ int kref_sub(struct kref *kref, unsigned int count, void (*release) (struct kref *kref)); +/** + * kref_get_unless_zero - Increment refcount for object unless it is zero. + * @kref: object. + * + * Return non-zero if the increment succeeded. Otherwise return 0. + * + * This function is intended to simplify locking around refcounting for + * objects that can be looked up from a lookup structure, and which are + * removed from that lookup structure in the object destructor. + * Operations on such objects require at least a read lock around + * lookup + kref_get, and a write lock around kref_put + remove from lookup + * structure. Furthermore, RCU implementations become extremely tricky. + * With a lookup followed by a kref_get_unless_zero *with return value check* + * locking in the kref_put path can be deferred to the actual removal from + * the lookup structure and RCU lookups become trivial. + */ +static inline int __must_check kref_get_unless_zero(struct kref *kref) +{ + return atomic_add_unless(&kref->refcount, 1, 0); +} #endif /* _KREF_H_ */ --- linux-3.2.0.orig/include/linux/pm_qos.h +++ linux-3.2.0/include/linux/pm_qos.h @@ -107,7 +107,19 @@ { return; } static inline int pm_qos_request(int pm_qos_class) - { return 0; } +{ + switch (pm_qos_class) { + case PM_QOS_CPU_DMA_LATENCY: + return PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE; + case PM_QOS_NETWORK_LATENCY: + return PM_QOS_NETWORK_LAT_DEFAULT_VALUE; + case PM_QOS_NETWORK_THROUGHPUT: + return PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE; + default: + return PM_QOS_DEFAULT_VALUE; + } +} + static inline int pm_qos_add_notifier(int pm_qos_class, struct notifier_block *notifier) { return 0; } --- linux-3.2.0.orig/include/linux/random.h +++ linux-3.2.0/include/linux/random.h @@ -50,11 +50,13 @@ extern void rand_initialize_irq(int irq); +extern void add_device_randomness(const void *, unsigned int); extern void add_input_randomness(unsigned int type, unsigned int code, unsigned int value); -extern void add_interrupt_randomness(int irq); +extern void add_interrupt_randomness(int irq, int irq_flags); extern void get_random_bytes(void *buf, int nbytes); +extern void get_random_bytes_arch(void *buf, int nbytes); void generate_random_uuid(unsigned char uuid_out[16]); #ifndef MODULE --- linux-3.2.0.orig/include/linux/compat.h +++ linux-3.2.0/include/linux/compat.h @@ -561,5 +561,9 @@ unsigned long liovcnt, const struct compat_iovec __user *rvec, unsigned long riovcnt, unsigned long flags); +#else + +#define is_compat_task() (0) + #endif /* CONFIG_COMPAT */ #endif /* _LINUX_COMPAT_H */ --- linux-3.2.0.orig/include/linux/device-mapper.h +++ linux-3.2.0/include/linux/device-mapper.h @@ -72,8 +72,8 @@ typedef int (*dm_preresume_fn) (struct dm_target *ti); typedef void (*dm_resume_fn) (struct dm_target *ti); -typedef int (*dm_status_fn) (struct dm_target *ti, status_type_t status_type, - char *result, unsigned int maxlen); +typedef void (*dm_status_fn) (struct dm_target *ti, status_type_t status_type, + char *result, unsigned maxlen); typedef int (*dm_message_fn) (struct dm_target *ti, unsigned argc, char **argv); --- linux-3.2.0.orig/include/linux/prctl.h +++ linux-3.2.0/include/linux/prctl.h @@ -102,4 +102,38 @@ #define PR_MCE_KILL_GET 34 +/* + * Tune up process memory map specifics. + */ +#define PR_SET_MM 35 +# define PR_SET_MM_START_CODE 1 +# define PR_SET_MM_END_CODE 2 +# define PR_SET_MM_START_DATA 3 +# define PR_SET_MM_END_DATA 4 +# define PR_SET_MM_START_STACK 5 +# define PR_SET_MM_START_BRK 6 +# define PR_SET_MM_BRK 7 + +/* + * Set specific pid that is allowed to ptrace the current task. + * A value of 0 mean "no process". + */ +#define PR_SET_PTRACER 0x59616d61 +# define PR_SET_PTRACER_ANY ((unsigned long)-1) + +/* + * If no_new_privs is set, then operations that grant new privileges (i.e. + * execve) will either fail or not grant them. This affects suid/sgid, + * file capabilities, and LSMs. + * + * Operations that merely manipulate or drop existing privileges (setresuid, + * capset, etc.) will still work. Drop those privileges if you want them gone. + * + * Changing LSM security domain is considered a new privilege. So, for example, + * asking selinux for a specific new context (e.g. with runcon) will result + * in execve returning -EPERM. + */ +#define PR_SET_NO_NEW_PRIVS 38 +#define PR_GET_NO_NEW_PRIVS 39 + #endif /* _LINUX_PRCTL_H */ --- linux-3.2.0.orig/include/linux/kobject.h +++ linux-3.2.0/include/linux/kobject.h @@ -226,7 +226,7 @@ static inline __printf(2, 3) int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...) -{ return 0; } +{ return -ENOMEM; } static inline int kobject_action_type(const char *buf, size_t count, enum kobject_action *type) --- linux-3.2.0.orig/include/linux/console.h +++ linux-3.2.0/include/linux/console.h @@ -77,7 +77,9 @@ int con_is_bound(const struct consw *csw); int register_con_driver(const struct consw *csw, int first, int last); int unregister_con_driver(const struct consw *csw); +int do_unregister_con_driver(const struct consw *csw); int take_over_console(const struct consw *sw, int first, int last, int deflt); +int do_take_over_console(const struct consw *sw, int first, int last, int deflt); void give_up_console(const struct consw *sw); #ifdef CONFIG_HW_CONSOLE int con_debug_enter(struct vc_data *vc); --- linux-3.2.0.orig/include/linux/serial_core.h +++ linux-3.2.0/include/linux/serial_core.h @@ -47,7 +47,11 @@ #define PORT_U6_16550A 19 /* ST-Ericsson U6xxx internal UART */ #define PORT_TEGRA 20 /* NVIDIA Tegra internal UART */ #define PORT_XR17D15X 21 /* Exar XR17D15x UART */ -#define PORT_MAX_8250 21 /* max port ID */ +#define PORT_BRCM_TRUMANAGE 25 +#define PORT_ALTR_16550_F32 26 /* Altera 16550 UART with 32 FIFOs */ +#define PORT_ALTR_16550_F64 27 /* Altera 16550 UART with 64 FIFOs */ +#define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ +#define PORT_MAX_8250 28 /* max port ID */ /* * ARM specific type numbers. These are not currently guaranteed --- linux-3.2.0.orig/include/linux/seqlock.h +++ linux-3.2.0/include/linux/seqlock.h @@ -141,7 +141,7 @@ unsigned ret; repeat: - ret = s->sequence; + ret = ACCESS_ONCE(s->sequence); if (unlikely(ret & 1)) { cpu_relax(); goto repeat; --- linux-3.2.0.orig/include/linux/eventpoll.h +++ linux-3.2.0/include/linux/eventpoll.h @@ -61,6 +61,7 @@ static inline void eventpoll_init_file(struct file *file) { INIT_LIST_HEAD(&file->f_ep_links); + INIT_LIST_HEAD(&file->f_tfile_llink); } --- linux-3.2.0.orig/include/linux/of.h +++ linux-3.2.0/include/linux/of.h @@ -336,6 +336,22 @@ #define of_match_node(_matches, _node) NULL #endif /* CONFIG_OF */ +/** + * of_property_read_bool - Findfrom a property + * @np: device node from which the property value is to be read. + * @propname: name of the property to be searched. + * + * Search for a property in a device node. + * Returns true if the property exist false otherwise. + */ +static inline bool of_property_read_bool(const struct device_node *np, + const char *propname) +{ + struct property *prop = of_find_property(np, propname, NULL); + + return prop ? true : false; +} + static inline int of_property_read_u32(const struct device_node *np, const char *propname, u32 *out_value) --- linux-3.2.0.orig/include/linux/bitops.h +++ linux-3.2.0/include/linux/bitops.h @@ -50,6 +50,26 @@ } /** + * rol64 - rotate a 64-bit value left + * @word: value to rotate + * @shift: bits to roll + */ +static inline __u64 rol64(__u64 word, unsigned int shift) +{ + return (word << shift) | (word >> (64 - shift)); +} + +/** + * ror64 - rotate a 64-bit value right + * @word: value to rotate + * @shift: bits to roll + */ +static inline __u64 ror64(__u64 word, unsigned int shift) +{ + return (word >> shift) | (word << (64 - shift)); +} + +/** * rol32 - rotate a 32-bit value left * @word: value to rotate * @shift: bits to roll --- linux-3.2.0.orig/include/linux/sched.h +++ linux-3.2.0/include/linux/sched.h @@ -102,6 +102,9 @@ struct perf_event_context; struct blk_plug; +extern int disable_nx; +extern int print_fatal_signals; + /* * List of flags we want to share for kernel threads, * if only because they are not used by them anyway. @@ -145,6 +148,7 @@ extern void calc_global_load(unsigned long ticks); +extern void update_cpu_load_nohz(void); extern unsigned long get_parent_ip(unsigned long addr); @@ -388,6 +392,10 @@ extern unsigned long arch_get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); + +extern unsigned long +arch_get_unmapped_exec_area(struct file *, unsigned long, unsigned long, + unsigned long, unsigned long); extern unsigned long arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, @@ -1235,6 +1243,9 @@ const struct sched_class *sched_class; struct sched_entity se; struct sched_rt_entity rt; +#ifdef CONFIG_CGROUP_SCHED + struct task_group *sched_task_group; +#endif #ifdef CONFIG_PREEMPT_NOTIFIERS /* list of struct preempt_notifier: */ @@ -1297,6 +1308,8 @@ * execve */ unsigned in_iowait:1; + /* task may not gain privileges */ + unsigned no_new_privs:1; /* Revert to default priority/policy when forking */ unsigned sched_reset_on_fork:1; @@ -1401,7 +1414,7 @@ uid_t loginuid; unsigned int sessionid; #endif - seccomp_t seccomp; + struct seccomp seccomp; /* Thread group tracking */ u32 parent_exec_id; @@ -1481,7 +1494,7 @@ #endif #ifdef CONFIG_CPUSETS nodemask_t mems_allowed; /* Protected by alloc_lock */ - int mems_allowed_change_disable; + seqcount_t mems_allowed_seq; /* Seqence no to catch updates */ int cpuset_mem_spread_rotor; int cpuset_slab_spread_rotor; #endif @@ -1892,6 +1905,14 @@ } #endif +#ifdef CONFIG_NO_HZ +void calc_load_enter_idle(void); +void calc_load_exit_idle(void); +#else +static inline void calc_load_enter_idle(void) { } +static inline void calc_load_exit_idle(void) { } +#endif /* CONFIG_NO_HZ */ + #ifndef CONFIG_CPUMASK_OFFSTACK static inline int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask) { @@ -2585,7 +2606,16 @@ extern void recalc_sigpending_and_wake(struct task_struct *t); extern void recalc_sigpending(void); -extern void signal_wake_up(struct task_struct *t, int resume_stopped); +extern void signal_wake_up_state(struct task_struct *t, unsigned int state); + +static inline void signal_wake_up(struct task_struct *t, bool resume) +{ + signal_wake_up_state(t, resume ? TASK_WAKEKILL : 0); +} +static inline void ptrace_signal_wake_up(struct task_struct *t, bool resume) +{ + signal_wake_up_state(t, resume ? __TASK_TRACED : 0); +} /* * Wrappers for p->thread_info->cpu access. No-op on UP. @@ -2637,7 +2667,7 @@ extern long sched_group_rt_period(struct task_group *tg); extern int sched_rt_can_attach(struct task_group *tg, struct task_struct *tsk); #endif -#endif +#endif /* CONFIG_CGROUP_SCHED */ extern int task_can_switch_user(struct user_struct *up, struct task_struct *tsk); --- linux-3.2.0.orig/include/linux/hugetlb.h +++ linux-3.2.0/include/linux/hugetlb.h @@ -14,6 +14,15 @@ #include #include +struct hugepage_subpool { + spinlock_t lock; + long count; + long max_hpages, used_hpages; +}; + +struct hugepage_subpool *hugepage_new_subpool(long nr_blocks); +void hugepage_put_subpool(struct hugepage_subpool *spool); + int PageHuge(struct page *page); void reset_vma_resv_huge_pages(struct vm_area_struct *vma); @@ -32,6 +41,9 @@ unsigned long *, int *, int, unsigned int flags); void unmap_hugepage_range(struct vm_area_struct *, unsigned long, unsigned long, struct page *); +void __unmap_hugepage_range_final(struct vm_area_struct *vma, + unsigned long start, unsigned long end, + struct page *ref_page); void __unmap_hugepage_range(struct vm_area_struct *, unsigned long, unsigned long, struct page *); int hugetlb_prefault(struct address_space *, struct vm_area_struct *); @@ -90,6 +102,13 @@ #define copy_hugetlb_page_range(src, dst, vma) ({ BUG(); 0; }) #define hugetlb_prefault(mapping, vma) ({ BUG(); 0; }) #define unmap_hugepage_range(vma, start, end, page) BUG() +static inline void __unmap_hugepage_range_final(struct vm_area_struct *vma, + unsigned long start, unsigned long end, + struct page *ref_page) +{ + BUG(); +} + static inline void hugetlb_report_meminfo(struct seq_file *m) { } @@ -138,12 +157,11 @@ }; struct hugetlbfs_sb_info { - long max_blocks; /* blocks allowed */ - long free_blocks; /* blocks free */ long max_inodes; /* inodes allowed */ long free_inodes; /* inodes free */ spinlock_t stat_lock; struct hstate *hstate; + struct hugepage_subpool *spool; }; @@ -166,8 +184,6 @@ extern const struct vm_operations_struct hugetlb_vm_ops; struct file *hugetlb_file_setup(const char *name, size_t size, vm_flags_t acct, struct user_struct **user, int creat_flags); -int hugetlb_get_quota(struct address_space *mapping, long delta); -void hugetlb_put_quota(struct address_space *mapping, long delta); static inline int is_file_hugepages(struct file *file) { @@ -311,6 +327,17 @@ return hstates[index].order + PAGE_SHIFT; } +pgoff_t __basepage_index(struct page *page); + +/* Return page->index in PAGE_SIZE units */ +static inline pgoff_t basepage_index(struct page *page) +{ + if (!PageCompound(page)) + return page->index; + + return __basepage_index(page); +} + #else struct hstate {}; #define alloc_huge_page_node(h, nid) NULL @@ -329,6 +356,11 @@ return 1; } #define hstate_index_to_shift(index) 0 + +static inline pgoff_t basepage_index(struct page *page) +{ + return page->index; +} #endif #endif /* _LINUX_HUGETLB_H */ --- linux-3.2.0.orig/include/linux/pci_regs.h +++ linux-3.2.0/include/linux/pci_regs.h @@ -392,7 +392,7 @@ #define PCI_EXP_TYPE_DOWNSTREAM 0x6 /* Downstream Port */ #define PCI_EXP_TYPE_PCI_BRIDGE 0x7 /* PCI/PCI-X Bridge */ #define PCI_EXP_TYPE_RC_END 0x9 /* Root Complex Integrated Endpoint */ -#define PCI_EXP_TYPE_RC_EC 0x10 /* Root Complex Event Collector */ +#define PCI_EXP_TYPE_RC_EC 0xa /* Root Complex Event Collector */ #define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */ #define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */ #define PCI_EXP_DEVCAP 4 /* Device capabilities */ --- linux-3.2.0.orig/include/linux/if_link.h +++ linux-3.2.0/include/linux/if_link.h @@ -137,6 +137,7 @@ IFLA_AF_SPEC, IFLA_GROUP, /* Group the device belongs to */ IFLA_NET_NS_FD, + IFLA_EXT_MASK, /* Extended info mask, VFs, etc */ __IFLA_MAX }; --- linux-3.2.0.orig/include/linux/if_pppox.h +++ linux-3.2.0/include/linux/if_pppox.h @@ -128,11 +128,11 @@ struct pppoe_hdr { #if defined(__LITTLE_ENDIAN_BITFIELD) - __u8 ver : 4; __u8 type : 4; + __u8 ver : 4; #elif defined(__BIG_ENDIAN_BITFIELD) - __u8 type : 4; __u8 ver : 4; + __u8 type : 4; #else #error "Please fix " #endif --- linux-3.2.0.orig/include/linux/aio.h +++ linux-3.2.0/include/linux/aio.h @@ -140,6 +140,7 @@ (x)->ki_dtor = NULL; \ (x)->ki_obj.tsk = tsk; \ (x)->ki_user_data = 0; \ + (x)->private = NULL; \ } while (0) #define AIO_RING_MAGIC 0xa10a10a1 --- linux-3.2.0.orig/include/linux/regset.h +++ linux-3.2.0/include/linux/regset.h @@ -335,8 +335,11 @@ { const struct user_regset *regset = &view->regsets[setno]; + if (!regset->get) + return -EOPNOTSUPP; + if (!access_ok(VERIFY_WRITE, data, size)) - return -EIO; + return -EFAULT; return regset->get(target, regset, offset, size, NULL, data); } @@ -358,8 +361,11 @@ { const struct user_regset *regset = &view->regsets[setno]; + if (!regset->set) + return -EOPNOTSUPP; + if (!access_ok(VERIFY_READ, data, size)) - return -EIO; + return -EFAULT; return regset->set(target, regset, offset, size, NULL, data); } --- linux-3.2.0.orig/include/linux/kmsg_dump.h +++ linux-3.2.0/include/linux/kmsg_dump.h @@ -15,14 +15,18 @@ #include #include +/* + * Keep this list arranged in rough order of priority. Anything listed after + * KMSG_DUMP_OOPS will not be logged by default unless printk.always_kmsg_dump + * is passed to the kernel. + */ enum kmsg_dump_reason { - KMSG_DUMP_OOPS, KMSG_DUMP_PANIC, - KMSG_DUMP_KEXEC, + KMSG_DUMP_OOPS, + KMSG_DUMP_EMERG, KMSG_DUMP_RESTART, KMSG_DUMP_HALT, KMSG_DUMP_POWEROFF, - KMSG_DUMP_EMERG, }; /** --- linux-3.2.0.orig/include/linux/init_task.h +++ linux-3.2.0/include/linux/init_task.h @@ -30,6 +30,13 @@ #define INIT_THREADGROUP_FORK_LOCK(sig) #endif +#ifdef CONFIG_CPUSETS +#define INIT_CPUSET_SEQ \ + .mems_allowed_seq = SEQCNT_ZERO, +#else +#define INIT_CPUSET_SEQ +#endif + #define INIT_SIGNALS(sig) { \ .nr_threads = 1, \ .wait_chldexit = __WAIT_QUEUE_HEAD_INITIALIZER(sig.wait_chldexit),\ @@ -117,8 +124,17 @@ extern struct cred init_cred; +extern struct task_group root_task_group; + +#ifdef CONFIG_CGROUP_SCHED +# define INIT_CGROUP_SCHED(tsk) \ + .sched_task_group = &root_task_group, +#else +# define INIT_CGROUP_SCHED(tsk) +#endif + #ifdef CONFIG_PERF_EVENTS -# define INIT_PERF_EVENTS(tsk) \ +# define INIT_PERF_EVENTS(tsk) \ .perf_event_mutex = \ __MUTEX_INITIALIZER(tsk.perf_event_mutex), \ .perf_event_list = LIST_HEAD_INIT(tsk.perf_event_list), @@ -155,6 +171,7 @@ }, \ .tasks = LIST_HEAD_INIT(tsk.tasks), \ INIT_PUSHABLE_TASKS(tsk) \ + INIT_CGROUP_SCHED(tsk) \ .ptraced = LIST_HEAD_INIT(tsk.ptraced), \ .ptrace_entry = LIST_HEAD_INIT(tsk.ptrace_entry), \ .real_parent = &tsk, \ @@ -193,6 +210,7 @@ INIT_FTRACE_GRAPH \ INIT_TRACE_RECURSION \ INIT_TASK_RCU_PREEMPT(tsk) \ + INIT_CPUSET_SEQ \ } --- linux-3.2.0.orig/include/linux/cpufreq.h +++ linux-3.2.0/include/linux/cpufreq.h @@ -35,6 +35,7 @@ #ifdef CONFIG_CPU_FREQ int cpufreq_register_notifier(struct notifier_block *nb, unsigned int list); int cpufreq_unregister_notifier(struct notifier_block *nb, unsigned int list); +extern void disable_cpufreq(void); #else /* CONFIG_CPU_FREQ */ static inline int cpufreq_register_notifier(struct notifier_block *nb, unsigned int list) @@ -46,6 +47,7 @@ { return 0; } +static inline void disable_cpufreq(void) { } #endif /* CONFIG_CPU_FREQ */ /* if (cpufreq_driver->target) exists, the ->governor decides what frequency --- linux-3.2.0.orig/include/linux/hidraw.h +++ linux-3.2.0/include/linux/hidraw.h @@ -76,13 +76,13 @@ #ifdef CONFIG_HIDRAW int hidraw_init(void); void hidraw_exit(void); -void hidraw_report_event(struct hid_device *, u8 *, int); +int hidraw_report_event(struct hid_device *, u8 *, int); int hidraw_connect(struct hid_device *); void hidraw_disconnect(struct hid_device *); #else static inline int hidraw_init(void) { return 0; } static inline void hidraw_exit(void) { } -static inline void hidraw_report_event(struct hid_device *hid, u8 *data, int len) { } +static inline int hidraw_report_event(struct hid_device *hid, u8 *data, int len) { return 0; } static inline int hidraw_connect(struct hid_device *hid) { return -1; } static inline void hidraw_disconnect(struct hid_device *hid) { } #endif --- linux-3.2.0.orig/include/linux/socket.h +++ linux-3.2.0/include/linux/socket.h @@ -265,7 +265,7 @@ #define MSG_NOSIGNAL 0x4000 /* Do not generate SIGPIPE */ #define MSG_MORE 0x8000 /* Sender will send more */ #define MSG_WAITFORONE 0x10000 /* recvmmsg(): block until 1+ packets avail */ - +#define MSG_SENDPAGE_NOTLAST 0x20000 /* sendpage() internal : not the last page */ #define MSG_EOF MSG_FIN #define MSG_CMSG_CLOEXEC 0x40000000 /* Set close_on_exit for file @@ -317,6 +317,7 @@ #define IPX_TYPE 1 extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred); +extern void cred_real_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred); extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov, @@ -335,6 +336,9 @@ struct timespec; +/* The __sys_...msg variants allow MSG_CMSG_COMPAT */ +extern long __sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags); +extern long __sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags); extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); extern int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg, --- linux-3.2.0.orig/include/linux/apple_bl.h +++ linux-3.2.0/include/linux/apple_bl.h @@ -0,0 +1,26 @@ +/* + * apple_bl exported symbols + */ + +#ifndef _LINUX_APPLE_BL_H +#define _LINUX_APPLE_BL_H + +#ifdef CONFIG_BACKLIGHT_APPLE + +extern int apple_bl_register(void); +extern void apple_bl_unregister(void); + +#else /* !CONFIG_BACKLIGHT_APPLE */ + +static inline int apple_bl_register(void) +{ + return 0; +} + +static inline void apple_bl_unregister(void) +{ +} + +#endif /* !CONFIG_BACKLIGHT_APPLE */ + +#endif /* _LINUX_APPLE_BL_H */ --- linux-3.2.0.orig/include/linux/vt_kern.h +++ linux-3.2.0/include/linux/vt_kern.h @@ -47,6 +47,7 @@ int con_get_cmap(unsigned char __user *cmap); void scrollback(struct vc_data *vc, int lines); void scrollfront(struct vc_data *vc, int lines); +void clear_buffer_attributes(struct vc_data *vc); void update_region(struct vc_data *vc, unsigned long start, int count); void redraw_screen(struct vc_data *vc, int is_switch); #define update_screen(x) redraw_screen(x, 0) @@ -130,7 +131,9 @@ void vt_event_post(unsigned int event, unsigned int old, unsigned int new); int vt_waitactive(int n); void change_console(struct vc_data *new_vc); -void reset_vc(struct vc_data *vc); +void reset_vc(struct vc_data *vc, int mode); +extern int do_unbind_con_driver(const struct consw *csw, int first, int last, + int deflt); extern int unbind_con_driver(const struct consw *csw, int first, int last, int deflt); int vty_init(const struct file_operations *console_fops); --- linux-3.2.0.orig/include/linux/timex.h +++ linux-3.2.0/include/linux/timex.h @@ -266,7 +266,7 @@ /* Returns how long ticks are at present, in ns / 2^NTP_SCALE_SHIFT. */ extern u64 tick_length; -extern void second_overflow(void); +extern int second_overflow(unsigned long secs); extern void update_ntp_one_tick(void); extern int do_adjtimex(struct timex *); extern void hardpps(const struct timespec *, const struct timespec *); --- linux-3.2.0.orig/include/linux/mmc/dw_mmc.h +++ linux-3.2.0/include/linux/mmc/dw_mmc.h @@ -14,6 +14,8 @@ #ifndef LINUX_MMC_DW_MMC_H #define LINUX_MMC_DW_MMC_H +#include + #define MAX_MCI_SLOTS 2 enum dw_mci_state { @@ -40,7 +42,7 @@ * @lock: Spinlock protecting the queue and associated data. * @regs: Pointer to MMIO registers. * @sg: Scatterlist entry currently being processed by PIO code, if any. - * @pio_offset: Offset into the current scatterlist entry. + * @sg_miter: PIO mapping scatterlist iterator. * @cur_slot: The slot which is currently using the controller. * @mrq: The request currently being processed on @cur_slot, * or NULL if the controller is idle. @@ -115,7 +117,7 @@ void __iomem *regs; struct scatterlist *sg; - unsigned int pio_offset; + struct sg_mapping_iter sg_miter; struct dw_mci_slot *cur_slot; struct mmc_request *mrq; --- linux-3.2.0.orig/include/linux/mmc/card.h +++ linux-3.2.0/include/linux/mmc/card.h @@ -219,6 +219,7 @@ #define MMC_QUIRK_BLK_NO_CMD23 (1<<7) /* Avoid CMD23 for regular multiblock */ #define MMC_QUIRK_BROKEN_BYTE_MODE_512 (1<<8) /* Avoid sending 512 bytes in */ #define MMC_QUIRK_LONG_READ_TIME (1<<9) /* Data read time > CSD says */ +#define MMC_QUIRK_SEC_ERASE_TRIM_BROKEN (1<<10) /* Skip secure for erase/trim */ /* byte mode */ unsigned int poweroff_notify_state; /* eMMC4.5 notify feature */ #define MMC_NO_POWER_NOTIFICATION 0 --- linux-3.2.0.orig/include/linux/mmc/host.h +++ linux-3.2.0/include/linux/mmc/host.h @@ -303,6 +303,7 @@ unsigned int sdio_irqs; struct task_struct *sdio_irq_thread; + bool sdio_irq_pending; atomic_t sdio_irq_thread_abort; mmc_pm_flag_t pm_flags; /* requested pm features */ @@ -356,6 +357,7 @@ static inline void mmc_signal_sdio_irq(struct mmc_host *host) { host->ops->enable_sdio_irq(host, 0); + host->sdio_irq_pending = true; wake_up_process(host->sdio_irq_thread); } --- linux-3.2.0.orig/include/linux/netfilter/xt_set.h +++ linux-3.2.0/include/linux/netfilter/xt_set.h @@ -58,8 +58,8 @@ struct xt_set_info_target_v2 { struct xt_set_info add_set; struct xt_set_info del_set; - u32 flags; - u32 timeout; + __u32 flags; + __u32 timeout; }; #endif /*_XT_SET_H*/ --- linux-3.2.0.orig/include/linux/usb/ch9.h +++ linux-3.2.0/include/linux/usb/ch9.h @@ -589,7 +589,7 @@ */ static inline int usb_endpoint_maxp(const struct usb_endpoint_descriptor *epd) { - return le16_to_cpu(epd->wMaxPacketSize); + return __le16_to_cpu(epd->wMaxPacketSize); } /*-------------------------------------------------------------------------*/ @@ -605,8 +605,26 @@ } __attribute__ ((packed)); #define USB_DT_SS_EP_COMP_SIZE 6 + /* Bits 4:0 of bmAttributes if this is a bulk endpoint */ -#define USB_SS_MAX_STREAMS(p) (1 << ((p) & 0x1f)) +static inline int +usb_ss_max_streams(const struct usb_ss_ep_comp_descriptor *comp) +{ + int max_streams; + + if (!comp) + return 0; + + max_streams = comp->bmAttributes & 0x1f; + + if (!max_streams) + return 0; + + max_streams = 1 << max_streams; + + return max_streams; +} + /* Bits 1:0 of bmAttributes if this is an isoc endpoint */ #define USB_SS_MULT(p) (1 + ((p) & 0x3)) --- linux-3.2.0.orig/include/linux/usb/audio.h +++ linux-3.2.0/include/linux/usb/audio.h @@ -384,14 +384,16 @@ int protocol) { __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); - return desc->baSourceID[desc->bNrInPins + control_size]; + return *(uac_processing_unit_bmControls(desc, protocol) + + control_size); } static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc, int protocol) { __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); - return &desc->baSourceID[desc->bNrInPins + control_size + 1]; + return uac_processing_unit_bmControls(desc, protocol) + + control_size + 1; } /* 4.5.2 Class-Specific AS Interface Descriptor */ --- linux-3.2.0.orig/include/linux/usb/serial.h +++ linux-3.2.0/include/linux/usb/serial.h @@ -71,6 +71,7 @@ * port. * @flags: usb serial port flags * @write_wait: a wait_queue_head_t used by the port. + * @delta_msr_wait: modem-status-change wait queue * @work: work queue entry for the line discipline waking up. * @throttled: nonzero if the read urb is inactive to throttle the device * @throttle_req: nonzero if the tty wants to throttle us @@ -114,6 +115,7 @@ unsigned long flags; wait_queue_head_t write_wait; + wait_queue_head_t delta_msr_wait; struct work_struct work; char throttled; char throttle_req; --- linux-3.2.0.orig/include/linux/usb/usbnet.h +++ linux-3.2.0/include/linux/usb/usbnet.h @@ -191,7 +191,8 @@ enum skb_state { illegal = 0, tx_start, tx_done, - rx_start, rx_done, rx_cleanup + rx_start, rx_done, rx_cleanup, + unlink_start }; struct skb_data { /* skb->cb is one of these */ --- linux-3.2.0.orig/include/linux/usb/uas.h +++ linux-3.2.0/include/linux/usb/uas.h @@ -0,0 +1,69 @@ +#ifndef __USB_UAS_H__ +#define __USB_UAS_H__ + +#include +#include + +/* Common header for all IUs */ +struct iu { + __u8 iu_id; + __u8 rsvd1; + __be16 tag; +}; + +enum { + IU_ID_COMMAND = 0x01, + IU_ID_STATUS = 0x03, + IU_ID_RESPONSE = 0x04, + IU_ID_TASK_MGMT = 0x05, + IU_ID_READ_READY = 0x06, + IU_ID_WRITE_READY = 0x07, +}; + +struct command_iu { + __u8 iu_id; + __u8 rsvd1; + __be16 tag; + __u8 prio_attr; + __u8 rsvd5; + __u8 len; + __u8 rsvd7; + struct scsi_lun lun; + __u8 cdb[16]; /* XXX: Overflow-checking tools may misunderstand */ +}; + +/* + * Also used for the Read Ready and Write Ready IUs since they have the + * same first four bytes + */ +struct sense_iu { + __u8 iu_id; + __u8 rsvd1; + __be16 tag; + __be16 status_qual; + __u8 status; + __u8 rsvd7[7]; + __be16 len; + __u8 sense[SCSI_SENSE_BUFFERSIZE]; +}; + +struct usb_pipe_usage_descriptor { + __u8 bLength; + __u8 bDescriptorType; + + __u8 bPipeID; + __u8 Reserved; +} __attribute__((__packed__)); + +enum { + CMD_PIPE_ID = 1, + STATUS_PIPE_ID = 2, + DATA_IN_PIPE_ID = 3, + DATA_OUT_PIPE_ID = 4, + + UAS_SIMPLE_TAG = 0, + UAS_HEAD_TAG = 1, + UAS_ORDERED_TAG = 2, + UAS_ACA = 4, +}; +#endif --- linux-3.2.0.orig/include/linux/usb/ch11.h +++ linux-3.2.0/include/linux/usb/ch11.h @@ -62,12 +62,6 @@ #define USB_PORT_FEAT_TEST 21 #define USB_PORT_FEAT_INDICATOR 22 #define USB_PORT_FEAT_C_PORT_L1 23 -#define USB_PORT_FEAT_C_PORT_LINK_STATE 25 -#define USB_PORT_FEAT_C_PORT_CONFIG_ERROR 26 -#define USB_PORT_FEAT_PORT_REMOTE_WAKE_MASK 27 -#define USB_PORT_FEAT_BH_PORT_RESET 28 -#define USB_PORT_FEAT_C_BH_PORT_RESET 29 -#define USB_PORT_FEAT_FORCE_LINKPM_ACCEPT 30 /* * Port feature selectors added by USB 3.0 spec. @@ -76,8 +70,8 @@ #define USB_PORT_FEAT_LINK_STATE 5 #define USB_PORT_FEAT_U1_TIMEOUT 23 #define USB_PORT_FEAT_U2_TIMEOUT 24 -#define USB_PORT_FEAT_C_LINK_STATE 25 -#define USB_PORT_FEAT_C_CONFIG_ERR 26 +#define USB_PORT_FEAT_C_PORT_LINK_STATE 25 +#define USB_PORT_FEAT_C_PORT_CONFIG_ERROR 26 #define USB_PORT_FEAT_REMOTE_WAKE_MASK 27 #define USB_PORT_FEAT_BH_PORT_RESET 28 #define USB_PORT_FEAT_C_BH_PORT_RESET 29 --- linux-3.2.0.orig/include/linux/mfd/ezx-pcap.h +++ linux-3.2.0/include/linux/mfd/ezx-pcap.h @@ -16,6 +16,7 @@ struct pcap_platform_data { unsigned int irq_base; unsigned int config; + int gpio; void (*init) (void *); /* board specific init */ int num_subdevs; struct pcap_subdev *subdevs; --- linux-3.2.0.orig/include/linux/sunrpc/cache.h +++ linux-3.2.0/include/linux/sunrpc/cache.h @@ -224,6 +224,22 @@ return 0; } +static inline int get_uint(char **bpp, unsigned int *anint) +{ + char buf[50]; + int len = qword_get(bpp, buf, sizeof(buf)); + + if (len < 0) + return -EINVAL; + if (len == 0) + return -ENOENT; + + if (kstrtouint(buf, 0, anint)) + return -EINVAL; + + return 0; +} + /* * timestamps kept in the cache are expressed in seconds * since boot. This is the best for measuring differences in --- linux-3.2.0.orig/include/linux/sunrpc/xprt.h +++ linux-3.2.0/include/linux/sunrpc/xprt.h @@ -114,6 +114,7 @@ void (*set_buffer_size)(struct rpc_xprt *xprt, size_t sndsize, size_t rcvsize); int (*reserve_xprt)(struct rpc_xprt *xprt, struct rpc_task *task); void (*release_xprt)(struct rpc_xprt *xprt, struct rpc_task *task); + void (*alloc_slot)(struct rpc_xprt *xprt, struct rpc_task *task); void (*rpcbind)(struct rpc_task *task); void (*set_port)(struct rpc_xprt *xprt, unsigned short port); void (*connect)(struct rpc_task *task); @@ -274,6 +275,8 @@ void xprt_reserve(struct rpc_task *task); int xprt_reserve_xprt(struct rpc_xprt *xprt, struct rpc_task *task); int xprt_reserve_xprt_cong(struct rpc_xprt *xprt, struct rpc_task *task); +void xprt_alloc_slot(struct rpc_xprt *xprt, struct rpc_task *task); +void xprt_lock_and_alloc_slot(struct rpc_xprt *xprt, struct rpc_task *task); int xprt_prepare_transmit(struct rpc_task *task); void xprt_transmit(struct rpc_task *task); void xprt_end_transmit(struct rpc_task *task); --- linux-3.2.0.orig/include/linux/sunrpc/svcsock.h +++ linux-3.2.0/include/linux/sunrpc/svcsock.h @@ -34,7 +34,7 @@ /* * Function prototypes. */ -void svc_close_all(struct list_head *); +void svc_close_all(struct svc_serv *); int svc_recv(struct svc_rqst *, long); int svc_send(struct svc_rqst *); void svc_drop(struct svc_rqst *); --- linux-3.2.0.orig/include/linux/sunrpc/xdr.h +++ linux-3.2.0/include/linux/sunrpc/xdr.h @@ -191,6 +191,8 @@ struct xdr_array2_desc *desc); extern int xdr_encode_array2(struct xdr_buf *buf, unsigned int base, struct xdr_array2_desc *desc); +extern void _copy_from_pages(char *p, struct page **pages, size_t pgbase, + size_t len); /* * Provide some simple tools for XDR buffer overflow-checking etc. --- linux-3.2.0.orig/include/linux/mtd/nand.h +++ linux-3.2.0/include/linux/mtd/nand.h @@ -215,9 +215,6 @@ #define NAND_SUBPAGE_READ(chip) ((chip->ecc.mode == NAND_ECC_SOFT) \ && (chip->page_shift > 9)) -/* Mask to zero out the chip options, which come from the id table */ -#define NAND_CHIPOPTIONS_MSK (0x0000ffff & ~NAND_NO_AUTOINCR) - /* Non chip related options */ /* This option skips the bbt scan during initialization. */ #define NAND_SKIP_BBTSCAN 0x00010000 --- linux-3.2.0.orig/include/linux/mtd/map.h +++ linux-3.2.0/include/linux/mtd/map.h @@ -26,7 +26,7 @@ #include #include #include - +#include #include #include --- linux-3.2.0.orig/include/linux/input/eeti_ts.h +++ linux-3.2.0/include/linux/input/eeti_ts.h @@ -2,6 +2,7 @@ #define LINUX_INPUT_EETI_TS_H struct eeti_ts_platform_data { + int irq_gpio; unsigned int irq_active_high; }; --- linux-3.2.0.orig/include/linux/amba/bus.h +++ linux-3.2.0/include/linux/amba/bus.h @@ -16,6 +16,7 @@ #include #include +#include #include #include #include @@ -35,12 +36,6 @@ unsigned int irq[AMBA_NR_IRQS]; }; -struct amba_id { - unsigned int id; - unsigned int mask; - void *data; -}; - struct amba_driver { struct device_driver drv; int (*probe)(struct amba_device *, const struct amba_id *); --- linux-3.2.0.orig/include/sound/control.h +++ linux-3.2.0/include/sound/control.h @@ -227,4 +227,12 @@ return _snd_ctl_add_slave(master, slave, SND_CTL_SLAVE_NEED_UPDATE); } +/* + * Helper functions for jack-detection controls + */ +struct snd_kcontrol * +snd_kctl_jack_new(const char *name, int idx, void *private_data); +void snd_kctl_jack_report(struct snd_card *card, + struct snd_kcontrol *kctl, bool status); + #endif /* __SOUND_CONTROL_H */ --- linux-3.2.0.orig/include/sound/core.h +++ linux-3.2.0/include/sound/core.h @@ -132,6 +132,7 @@ int shutdown; /* this card is going down */ int free_on_last_close; /* free in context of file_release */ wait_queue_head_t shutdown_sleep; + atomic_t refcount; /* refcount for disconnection */ struct device *dev; /* device assigned to this card */ struct device *card_dev; /* cardX object for sysfs */ @@ -189,6 +190,7 @@ const struct file_operations *f_ops; /* file operations */ void *private_data; /* private data for f_ops->open */ struct device *dev; /* device for sysfs */ + struct snd_card *card_ptr; /* assigned card instance */ }; /* return a device pointer linked to each sound device as a parent */ @@ -295,6 +297,7 @@ int snd_component_add(struct snd_card *card, const char *component); int snd_card_file_add(struct snd_card *card, struct file *file); int snd_card_file_remove(struct snd_card *card, struct file *file); +void snd_card_unref(struct snd_card *card); #define snd_card_set_dev(card, devptr) ((card)->dev = (devptr)) --- linux-3.2.0.orig/include/video/omapdss.h +++ linux-3.2.0/include/video/omapdss.h @@ -575,6 +575,11 @@ int (*get_backlight)(struct omap_dss_device *dssdev); }; +struct omap_dss_hdmi_data +{ + int hpd_gpio; +}; + struct omap_dss_driver { struct device_driver driver; --- linux-3.2.0.orig/include/scsi/libsas.h +++ linux-3.2.0/include/scsi/libsas.h @@ -159,6 +159,8 @@ ATAPI_COMMAND_SET = 1, }; +#define ATA_RESP_FIS_SIZE 24 + struct sata_device { enum ata_command_set command_set; struct smp_resp rps_resp; /* report_phy_sata_resp */ @@ -170,7 +172,7 @@ struct ata_port *ap; struct ata_host ata_host; - struct ata_taskfile tf; + u8 fis[ATA_RESP_FIS_SIZE]; u32 sstatus; u32 serror; u32 scontrol; @@ -486,7 +488,7 @@ */ struct ata_task_resp { u16 frame_len; - u8 ending_fis[24]; /* dev to host or data-in */ + u8 ending_fis[ATA_RESP_FIS_SIZE]; /* dev to host or data-in */ u32 sstatus; u32 serror; u32 scontrol; --- linux-3.2.0.orig/include/media/tuner.h +++ linux-3.2.0/include/media/tuner.h @@ -127,7 +127,6 @@ #define TUNER_PHILIPS_FMD1216MEX_MK3 78 #define TUNER_PHILIPS_FM1216MK5 79 #define TUNER_PHILIPS_FQ1216LME_MK3 80 /* Active loopthrough, no FM */ -#define TUNER_XC4000 81 /* Xceive Silicon Tuner */ #define TUNER_PARTSNIC_PTI_5NF05 81 #define TUNER_PHILIPS_CU1216L 82 @@ -136,6 +135,8 @@ #define TUNER_PHILIPS_FQ1236_MK5 85 /* NTSC, TDA9885, no FM radio */ #define TUNER_TENA_TNF_5337 86 +#define TUNER_XC4000 87 /* Xceive Silicon Tuner */ + /* tv card specific */ #define TDA9887_PRESENT (1<<0) #define TDA9887_PORT1_INACTIVE (1<<1) --- linux-3.2.0.orig/include/trace/events/xen.h +++ linux-3.2.0/include/trace/events/xen.h @@ -377,6 +377,14 @@ DEFINE_XEN_MMU_PGD_EVENT(xen_mmu_pgd_pin); DEFINE_XEN_MMU_PGD_EVENT(xen_mmu_pgd_unpin); +TRACE_EVENT(xen_mmu_flush_tlb_all, + TP_PROTO(int x), + TP_ARGS(x), + TP_STRUCT__entry(__array(char, x, 0)), + TP_fast_assign((void)x), + TP_printk("%s", "") + ); + TRACE_EVENT(xen_mmu_flush_tlb, TP_PROTO(int x), TP_ARGS(x), --- linux-3.2.0.orig/include/trace/events/fs.h +++ linux-3.2.0/include/trace/events/fs.h @@ -0,0 +1,53 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM fs + +#if !defined(_TRACE_FS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_FS_H + +#include +#include + +TRACE_EVENT(do_sys_open, + + TP_PROTO(char *filename, int flags, int mode), + + TP_ARGS(filename, flags, mode), + + TP_STRUCT__entry( + __string( filename, filename ) + __field( int, flags ) + __field( int, mode ) + ), + + TP_fast_assign( + __assign_str(filename, filename); + __entry->flags = flags; + __entry->mode = mode; + ), + + TP_printk("\"%s\" %x %o", + __get_str(filename), __entry->flags, __entry->mode) +); + +TRACE_EVENT(open_exec, + + TP_PROTO(char *filename), + + TP_ARGS(filename), + + TP_STRUCT__entry( + __string( filename, filename ) + ), + + TP_fast_assign( + __assign_str(filename, filename); + ), + + TP_printk("\"%s\"", + __get_str(filename)) +); + +#endif /* _TRACE_FS_H */ + +/* This part must be outside protection */ +#include --- linux-3.2.0.orig/include/trace/events/vfs.h +++ linux-3.2.0/include/trace/events/vfs.h @@ -0,0 +1,53 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM vfs + +#if !defined(_TRACE_VFS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_VFS_H + +/* + * Tracepoint for dirtying an inode: + */ +TRACE_EVENT(dirty_inode, + + TP_PROTO(struct inode *inode, struct task_struct *task), + + TP_ARGS(inode, task), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __array( char, dev, 16 ) + __array( char, file, 32 ) + ), + + TP_fast_assign( + if (inode->i_ino || strcmp(inode->i_sb->s_id, "bdev")) { + struct dentry *dentry; + const char *name = "?"; + + dentry = d_find_alias(inode); + if (dentry) { + spin_lock(&dentry->d_lock); + name = (const char *) dentry->d_name.name; + } + + memcpy(__entry->comm, task->comm, TASK_COMM_LEN); + __entry->pid = task->pid; + strlcpy(__entry->file, name, 32); + strlcpy(__entry->dev, inode->i_sb->s_id, 16); + + if (dentry) { + spin_unlock(&dentry->d_lock); + dput(dentry); + } + } + ), + + TP_printk("task=%i (%s) file=%s dev=%s", + __entry->pid, __entry->comm, __entry->file, __entry->dev) +); + +#endif /* _TRACE_VFS_H */ + +/* This part must be outside protection */ +#include --- linux-3.2.0.orig/include/trace/events/writeback.h +++ linux-3.2.0/include/trace/events/writeback.h @@ -47,7 +47,10 @@ __field(int, reason) ), TP_fast_assign( - strncpy(__entry->name, dev_name(bdi->dev), 32); + struct device *dev = bdi->dev; + if (!dev) + dev = default_backing_dev_info.dev; + strncpy(__entry->name, dev_name(dev), 32); __entry->nr_pages = work->nr_pages; __entry->sb_dev = work->sb ? work->sb->s_dev : 0; __entry->sync_mode = work->sync_mode; @@ -418,7 +421,7 @@ TP_fast_assign( strncpy(__entry->name, - dev_name(inode->i_mapping->backing_dev_info->dev), 32); + dev_name(inode_to_bdi(inode)->dev), 32); __entry->ino = inode->i_ino; __entry->state = inode->i_state; __entry->dirtied_when = inode->dirtied_when; --- linux-3.2.0.orig/include/trace/events/kmem.h +++ linux-3.2.0/include/trace/events/kmem.h @@ -214,7 +214,7 @@ TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s", __entry->page, - page_to_pfn(__entry->page), + __entry->page ? page_to_pfn(__entry->page) : 0, __entry->order, __entry->migratetype, show_gfp_flags(__entry->gfp_flags)) @@ -240,7 +240,7 @@ TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d", __entry->page, - page_to_pfn(__entry->page), + __entry->page ? page_to_pfn(__entry->page) : 0, __entry->order, __entry->migratetype, __entry->order == 0) --- linux-3.2.0.orig/include/drm/drm_pciids.h +++ linux-3.2.0/include/drm/drm_pciids.h @@ -181,6 +181,7 @@ {0x1002, 0x6747, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6748, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \ + {0x1002, 0x674A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6750, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6751, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6758, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \ @@ -198,6 +199,7 @@ {0x1002, 0x6767, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6768, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6770, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \ + {0x1002, 0x6771, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6772, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6778, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6779, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \ @@ -493,6 +495,7 @@ {0x1002, 0x9645, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO2|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ {0x1002, 0x9647, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\ {0x1002, 0x9648, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\ + {0x1002, 0x9649, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\ {0x1002, 0x964a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ {0x1002, 0x964b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ {0x1002, 0x964c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ @@ -512,6 +515,7 @@ {0x1002, 0x9807, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ {0x1002, 0x9808, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ {0x1002, 0x9809, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x980A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ {0, 0, 0} #define r128_PCI_IDS \ --- linux-3.2.0.orig/include/drm/drmP.h +++ linux-3.2.0/include/drm/drmP.h @@ -1328,6 +1328,7 @@ struct drm_file *file_priv); extern int drm_authmagic(struct drm_device *dev, void *data, struct drm_file *file_priv); +extern int drm_remove_magic(struct drm_master *master, drm_magic_t magic); /* Cache management (drm_cache.c) */ void drm_clflush_pages(struct page *pages[], unsigned long num_pages); --- linux-3.2.0.orig/include/drm/i915_drm.h +++ linux-3.2.0/include/drm/i915_drm.h @@ -291,6 +291,7 @@ #define I915_PARAM_HAS_COHERENT_RINGS 13 #define I915_PARAM_HAS_EXEC_CONSTANTS 14 #define I915_PARAM_HAS_RELAXED_DELTA 15 +#define I915_PARAM_HAS_GEN7_SOL_RESET 16 typedef struct drm_i915_getparam { int param; @@ -653,6 +654,9 @@ __u64 rsvd2; }; +/** Resets the SO write offset registers for transform feedback on gen7. */ +#define I915_EXEC_GEN7_SOL_RESET (1<<8) + struct drm_i915_gem_pin { /** Handle of the buffer to be pinned. */ __u32 handle; --- linux-3.2.0.orig/include/drm/drm_mode.h +++ linux-3.2.0/include/drm/drm_mode.h @@ -277,8 +277,9 @@ struct drm_mode_modeinfo mode; }; -#define DRM_MODE_CURSOR_BO (1<<0) -#define DRM_MODE_CURSOR_MOVE (1<<1) +#define DRM_MODE_CURSOR_BO 0x01 +#define DRM_MODE_CURSOR_MOVE 0x02 +#define DRM_MODE_CURSOR_FLAGS 0x03 /* * depending on the value in flags different members are used. --- linux-3.2.0.orig/include/drm/drm_edid.h +++ linux-3.2.0/include/drm/drm_edid.h @@ -238,5 +238,6 @@ struct drm_display_mode *mode); struct drm_connector *drm_select_eld(struct drm_encoder *encoder, struct drm_display_mode *mode); +int drm_load_edid_firmware(struct drm_connector *connector); #endif /* __DRM_EDID_H__ */ --- linux-3.2.0.orig/include/drm/drm_crtc.h +++ linux-3.2.0/include/drm/drm_crtc.h @@ -814,6 +814,7 @@ int hdisplay, int vdisplay); extern int drm_edid_header_is_valid(const u8 *raw_edid); +extern bool drm_edid_block_valid(u8 *raw_edid); extern bool drm_edid_is_valid(struct edid *edid); struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev, int hsize, int vsize, int fresh); --- linux-3.2.0.orig/include/asm-generic/syscall.h +++ linux-3.2.0/include/asm-generic/syscall.h @@ -142,4 +142,18 @@ unsigned int i, unsigned int n, const unsigned long *args); +/** + * syscall_get_arch - return the AUDIT_ARCH for the current system call + * @task: task of interest, must be in system call entry tracing + * @regs: task_pt_regs() of @task + * + * Returns the AUDIT_ARCH_* based on the system call convention in use. + * + * It's only valid to call this when @task is stopped on entry to a system + * call, due to %TIF_SYSCALL_TRACE, %TIF_SYSCALL_AUDIT, or %TIF_SECCOMP. + * + * Note, at present this function is only required with + * CONFIG_HAVE_ARCH_SECCOMP_FILTER. + */ +int syscall_get_arch(struct task_struct *task, struct pt_regs *regs); #endif /* _ASM_SYSCALL_H */ --- linux-3.2.0.orig/include/asm-generic/siginfo.h +++ linux-3.2.0/include/asm-generic/siginfo.h @@ -90,9 +90,18 @@ __ARCH_SI_BAND_T _band; /* POLL_IN, POLL_OUT, POLL_MSG */ int _fd; } _sigpoll; + + /* SIGSYS */ + struct { + void __user *_call_addr; /* calling user insn */ + int _syscall; /* triggering system call number */ + unsigned int _arch; /* AUDIT_ARCH_* of syscall */ + } _sigsys; } _sifields; } siginfo_t; +/* If the arch shares siginfo, then it has SIGSYS. */ +#define __ARCH_SIGSYS #endif /* @@ -116,6 +125,11 @@ #define si_addr_lsb _sifields._sigfault._addr_lsb #define si_band _sifields._sigpoll._band #define si_fd _sifields._sigpoll._fd +#ifdef __ARCH_SIGSYS +#define si_call_addr _sifields._sigsys._call_addr +#define si_syscall _sifields._sigsys._syscall +#define si_arch _sifields._sigsys._arch +#endif #ifdef __KERNEL__ #define __SI_MASK 0xffff0000u @@ -126,6 +140,7 @@ #define __SI_CHLD (4 << 16) #define __SI_RT (5 << 16) #define __SI_MESGQ (6 << 16) +#define __SI_SYS (7 << 16) #define __SI_CODE(T,N) ((T) | ((N) & 0xffff)) #else #define __SI_KILL 0 @@ -135,6 +150,7 @@ #define __SI_CHLD 0 #define __SI_RT 0 #define __SI_MESGQ 0 +#define __SI_SYS 0 #define __SI_CODE(T,N) (N) #endif @@ -232,6 +248,12 @@ #define NSIGPOLL 6 /* + * SIGSYS si_codes + */ +#define SYS_SECCOMP (__SI_SYS|1) /* seccomp triggered */ +#define NSIGSYS 1 + +/* * sigevent definitions * * It seems likely that SIGEV_THREAD will have to be handled from --- linux-3.2.0.orig/include/asm-generic/tlb.h +++ linux-3.2.0/include/asm-generic/tlb.h @@ -78,6 +78,14 @@ #define MAX_GATHER_BATCH \ ((PAGE_SIZE - sizeof(struct mmu_gather_batch)) / sizeof(void *)) +/* + * Limit the maximum number of mmu_gather batches to reduce a risk of soft + * lockups for non-preemptible kernels on huge machines when a lot of memory + * is zapped during unmapping. + * 10K pages freed at once should be safe even without a preemption point. + */ +#define MAX_GATHER_BATCH_COUNT (10000UL/MAX_GATHER_BATCH) + /* struct mmu_gather is an opaque type used by the mm code for passing around * any data needed by arch specific code for tlb_remove_page. */ @@ -94,6 +102,7 @@ struct mmu_gather_batch *active; struct mmu_gather_batch local; struct page *__pages[MMU_GATHER_BUNDLE]; + unsigned int batch_count; }; #define HAVE_GENERIC_MMU_GATHER --- linux-3.2.0.orig/include/asm-generic/signal.h +++ linux-3.2.0/include/asm-generic/signal.h @@ -99,6 +99,10 @@ #include +#ifdef SA_RESTORER +#define __ARCH_HAS_SA_RESTORER +#endif + struct sigaction { __sighandler_t sa_handler; unsigned long sa_flags; --- linux-3.2.0.orig/include/asm-generic/statfs.h +++ linux-3.2.0/include/asm-generic/statfs.h @@ -15,7 +15,7 @@ * with a 10' pole. */ #ifndef __statfs_word -#if BITS_PER_LONG == 64 +#if __BITS_PER_LONG == 64 #define __statfs_word long #else #define __statfs_word __u32 --- linux-3.2.0.orig/include/asm-generic/poll.h +++ linux-3.2.0/include/asm-generic/poll.h @@ -28,6 +28,8 @@ #define POLLRDHUP 0x2000 #endif +#define POLLFREE 0x4000 /* currently only for epoll */ + struct pollfd { int fd; short events; --- linux-3.2.0.orig/include/asm-generic/mutex-xchg.h +++ linux-3.2.0/include/asm-generic/mutex-xchg.h @@ -26,7 +26,13 @@ __mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *)) { if (unlikely(atomic_xchg(count, 0) != 1)) - fail_fn(count); + /* + * We failed to acquire the lock, so mark it contended + * to ensure that any waiting tasks are woken up by the + * unlock slow path. + */ + if (likely(atomic_xchg(count, -1) != 1)) + fail_fn(count); } /** @@ -43,7 +49,8 @@ __mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *)) { if (unlikely(atomic_xchg(count, 0) != 1)) - return fail_fn(count); + if (likely(atomic_xchg(count, -1) != 1)) + return fail_fn(count); return 0; } --- linux-3.2.0.orig/include/asm-generic/vmlinux.lds.h +++ linux-3.2.0/include/asm-generic/vmlinux.lds.h @@ -622,6 +622,7 @@ *(.initcall0s.init) \ *(.initcall1.init) \ *(.initcall1s.init) \ + *(.initcallearlyrootfs.init) \ *(.initcall2.init) \ *(.initcall2s.init) \ *(.initcall3.init) \ --- linux-3.2.0.orig/include/asm-generic/pgtable.h +++ linux-3.2.0/include/asm-generic/pgtable.h @@ -425,6 +425,8 @@ unsigned long size); #endif +#ifdef CONFIG_MMU + #ifndef CONFIG_TRANSPARENT_HUGEPAGE static inline int pmd_trans_huge(pmd_t pmd) { @@ -441,8 +443,95 @@ return 0; } #endif /* __HAVE_ARCH_PMD_WRITE */ +#endif /* CONFIG_TRANSPARENT_HUGEPAGE */ + +#ifndef pmd_read_atomic +static inline pmd_t pmd_read_atomic(pmd_t *pmdp) +{ + /* + * Depend on compiler for an atomic pmd read. NOTE: this is + * only going to work, if the pmdval_t isn't larger than + * an unsigned long. + */ + return *pmdp; +} #endif +/* + * This function is meant to be used by sites walking pagetables with + * the mmap_sem hold in read mode to protect against MADV_DONTNEED and + * transhuge page faults. MADV_DONTNEED can convert a transhuge pmd + * into a null pmd and the transhuge page fault can convert a null pmd + * into an hugepmd or into a regular pmd (if the hugepage allocation + * fails). While holding the mmap_sem in read mode the pmd becomes + * stable and stops changing under us only if it's not null and not a + * transhuge pmd. When those races occurs and this function makes a + * difference vs the standard pmd_none_or_clear_bad, the result is + * undefined so behaving like if the pmd was none is safe (because it + * can return none anyway). The compiler level barrier() is critically + * important to compute the two checks atomically on the same pmdval. + * + * For 32bit kernels with a 64bit large pmd_t this automatically takes + * care of reading the pmd atomically to avoid SMP race conditions + * against pmd_populate() when the mmap_sem is hold for reading by the + * caller (a special atomic read not done by "gcc" as in the generic + * version above, is also needed when THP is disabled because the page + * fault can populate the pmd from under us). + */ +static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd) +{ + pmd_t pmdval = pmd_read_atomic(pmd); + /* + * The barrier will stabilize the pmdval in a register or on + * the stack so that it will stop changing under the code. + * + * When CONFIG_TRANSPARENT_HUGEPAGE=y on x86 32bit PAE, + * pmd_read_atomic is allowed to return a not atomic pmdval + * (for example pointing to an hugepage that has never been + * mapped in the pmd). The below checks will only care about + * the low part of the pmd with 32bit PAE x86 anyway, with the + * exception of pmd_none(). So the important thing is that if + * the low part of the pmd is found null, the high part will + * be also null or the pmd_none() check below would be + * confused. + */ +#ifdef CONFIG_TRANSPARENT_HUGEPAGE + barrier(); +#endif + if (pmd_none(pmdval)) + return 1; + if (unlikely(pmd_bad(pmdval))) { + if (!pmd_trans_huge(pmdval)) + pmd_clear_bad(pmd); + return 1; + } + return 0; +} + +/* + * This is a noop if Transparent Hugepage Support is not built into + * the kernel. Otherwise it is equivalent to + * pmd_none_or_trans_huge_or_clear_bad(), and shall only be called in + * places that already verified the pmd is not none and they want to + * walk ptes while holding the mmap sem in read mode (write mode don't + * need this). If THP is not enabled, the pmd can't go away under the + * code even if MADV_DONTNEED runs, but if THP is enabled we need to + * run a pmd_trans_unstable before walking the ptes after + * split_huge_page_pmd returns (because it may have run when the pmd + * become null, but then a page fault can map in a THP and not a + * regular page). + */ +static inline int pmd_trans_unstable(pmd_t *pmd) +{ +#ifdef CONFIG_TRANSPARENT_HUGEPAGE + return pmd_none_or_trans_huge_or_clear_bad(pmd); +#else + return 0; +#endif +} + +#endif /* CONFIG_MMU */ + #endif /* !__ASSEMBLY__ */ #endif /* _ASM_GENERIC_PGTABLE_H */ --- linux-3.2.0.orig/include/asm-generic/unistd.h +++ linux-3.2.0/include/asm-generic/unistd.h @@ -218,7 +218,7 @@ /* fs/sendfile.c */ #define __NR3264_sendfile 71 -__SC_3264(__NR3264_sendfile, sys_sendfile64, sys_sendfile) +__SYSCALL(__NR3264_sendfile, sys_sendfile64) /* fs/select.c */ #define __NR_pselect6 72 --- linux-3.2.0.orig/mm/mremap.c +++ linux-3.2.0/mm/mremap.c @@ -512,10 +512,10 @@ if (vma->vm_flags & VM_MAYSHARE) map_flags |= MAP_SHARED; - new_addr = get_unmapped_area(vma->vm_file, 0, new_len, + new_addr = get_unmapped_area_prot(vma->vm_file, 0, new_len, vma->vm_pgoff + ((addr - vma->vm_start) >> PAGE_SHIFT), - map_flags); + map_flags, vma->vm_flags & VM_EXEC); if (new_addr & ~PAGE_MASK) { ret = new_addr; goto out; --- linux-3.2.0.orig/mm/mempolicy.c +++ linux-3.2.0/mm/mempolicy.c @@ -512,7 +512,7 @@ do { next = pmd_addr_end(addr, end); split_huge_page_pmd(vma->vm_mm, pmd); - if (pmd_none_or_clear_bad(pmd)) + if (pmd_none_or_trans_huge_or_clear_bad(pmd)) continue; if (check_pte_range(vma, pmd, addr, next, nodes, flags, private)) @@ -607,24 +607,39 @@ return first; } -/* Apply policy to a single VMA */ -static int policy_vma(struct vm_area_struct *vma, struct mempolicy *new) +/* + * Apply policy to a single VMA + * This must be called with the mmap_sem held for writing. + */ +static int vma_replace_policy(struct vm_area_struct *vma, + struct mempolicy *pol) { - int err = 0; - struct mempolicy *old = vma->vm_policy; + int err; + struct mempolicy *old; + struct mempolicy *new; pr_debug("vma %lx-%lx/%lx vm_ops %p vm_file %p set_policy %p\n", vma->vm_start, vma->vm_end, vma->vm_pgoff, vma->vm_ops, vma->vm_file, vma->vm_ops ? vma->vm_ops->set_policy : NULL); - if (vma->vm_ops && vma->vm_ops->set_policy) + new = mpol_dup(pol); + if (IS_ERR(new)) + return PTR_ERR(new); + + if (vma->vm_ops && vma->vm_ops->set_policy) { err = vma->vm_ops->set_policy(vma, new); - if (!err) { - mpol_get(new); - vma->vm_policy = new; - mpol_put(old); + if (err) + goto err_out; } + + old = vma->vm_policy; + vma->vm_policy = new; /* protected by mmap_sem */ + mpol_put(old); + + return 0; + err_out: + mpol_put(new); return err; } @@ -675,7 +690,7 @@ if (err) goto out; } - err = policy_vma(vma, new_pol); + err = vma_replace_policy(vma, new_pol); if (err) goto out; } @@ -942,7 +957,7 @@ if (!list_empty(&pagelist)) { err = migrate_pages(&pagelist, new_node_page, dest, - false, true); + false, MIGRATE_SYNC); if (err) putback_lru_pages(&pagelist); } @@ -1507,8 +1522,18 @@ addr); if (vpol) pol = vpol; - } else if (vma->vm_policy) + } else if (vma->vm_policy) { pol = vma->vm_policy; + + /* + * shmem_alloc_page() passes MPOL_F_SHARED policy with + * a pseudo vma whose vma->vm_ops=NULL. Take a reference + * count on these policies which will be dropped by + * mpol_cond_put() later + */ + if (mpol_needs_cond_ref(pol)) + mpol_get(pol); + } } if (!pol) pol = &default_policy; @@ -1843,18 +1868,24 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, unsigned long addr, int node) { - struct mempolicy *pol = get_vma_policy(current, vma, addr); + struct mempolicy *pol; struct zonelist *zl; struct page *page; + unsigned int cpuset_mems_cookie; + +retry_cpuset: + pol = get_vma_policy(current, vma, addr); + cpuset_mems_cookie = get_mems_allowed(); - get_mems_allowed(); if (unlikely(pol->mode == MPOL_INTERLEAVE)) { unsigned nid; nid = interleave_nid(pol, vma, addr, PAGE_SHIFT + order); mpol_cond_put(pol); page = alloc_page_interleave(gfp, order, nid); - put_mems_allowed(); + if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page)) + goto retry_cpuset; + return page; } zl = policy_zonelist(gfp, pol, node); @@ -1865,7 +1896,8 @@ struct page *page = __alloc_pages_nodemask(gfp, order, zl, policy_nodemask(gfp, pol)); __mpol_put(pol); - put_mems_allowed(); + if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page)) + goto retry_cpuset; return page; } /* @@ -1873,7 +1905,8 @@ */ page = __alloc_pages_nodemask(gfp, order, zl, policy_nodemask(gfp, pol)); - put_mems_allowed(); + if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page)) + goto retry_cpuset; return page; } @@ -1900,11 +1933,14 @@ { struct mempolicy *pol = current->mempolicy; struct page *page; + unsigned int cpuset_mems_cookie; if (!pol || in_interrupt() || (gfp & __GFP_THISNODE)) pol = &default_policy; - get_mems_allowed(); +retry_cpuset: + cpuset_mems_cookie = get_mems_allowed(); + /* * No reference counting needed for current->mempolicy * nor system default_policy @@ -1915,7 +1951,10 @@ page = __alloc_pages_nodemask(gfp, order, policy_zonelist(gfp, pol, numa_node_id()), policy_nodemask(gfp, pol)); - put_mems_allowed(); + + if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page)) + goto retry_cpuset; + return page; } EXPORT_SYMBOL(alloc_pages_current); @@ -1960,28 +1999,6 @@ return new; } -/* - * If *frompol needs [has] an extra ref, copy *frompol to *tompol , - * eliminate the * MPOL_F_* flags that require conditional ref and - * [NOTE!!!] drop the extra ref. Not safe to reference *frompol directly - * after return. Use the returned value. - * - * Allows use of a mempolicy for, e.g., multiple allocations with a single - * policy lookup, even if the policy needs/has extra ref on lookup. - * shmem_readahead needs this. - */ -struct mempolicy *__mpol_cond_copy(struct mempolicy *tompol, - struct mempolicy *frompol) -{ - if (!mpol_needs_cond_ref(frompol)) - return frompol; - - *tompol = *frompol; - tompol->flags &= ~MPOL_F_SHARED; /* copy doesn't need unref */ - __mpol_put(frompol); - return tompol; -} - /* Slow path of a mempolicy comparison */ int __mpol_equal(struct mempolicy *a, struct mempolicy *b) { @@ -2018,7 +2035,7 @@ */ /* lookup first element intersecting start-end */ -/* Caller holds sp->lock */ +/* Caller holds sp->mutex */ static struct sp_node * sp_lookup(struct shared_policy *sp, unsigned long start, unsigned long end) { @@ -2082,36 +2099,50 @@ if (!sp->root.rb_node) return NULL; - spin_lock(&sp->lock); + mutex_lock(&sp->mutex); sn = sp_lookup(sp, idx, idx+1); if (sn) { mpol_get(sn->policy); pol = sn->policy; } - spin_unlock(&sp->lock); + mutex_unlock(&sp->mutex); return pol; } +static void sp_free(struct sp_node *n) +{ + mpol_put(n->policy); + kmem_cache_free(sn_cache, n); +} + static void sp_delete(struct shared_policy *sp, struct sp_node *n) { pr_debug("deleting %lx-l%lx\n", n->start, n->end); rb_erase(&n->nd, &sp->root); - mpol_put(n->policy); - kmem_cache_free(sn_cache, n); + sp_free(n); } static struct sp_node *sp_alloc(unsigned long start, unsigned long end, struct mempolicy *pol) { - struct sp_node *n = kmem_cache_alloc(sn_cache, GFP_KERNEL); + struct sp_node *n; + struct mempolicy *newpol; + n = kmem_cache_alloc(sn_cache, GFP_KERNEL); if (!n) return NULL; + + newpol = mpol_dup(pol); + if (IS_ERR(newpol)) { + kmem_cache_free(sn_cache, n); + return NULL; + } + newpol->flags |= MPOL_F_SHARED; + n->start = start; n->end = end; - mpol_get(pol); - pol->flags |= MPOL_F_SHARED; /* for unref */ - n->policy = pol; + n->policy = newpol; + return n; } @@ -2119,10 +2150,10 @@ static int shared_policy_replace(struct shared_policy *sp, unsigned long start, unsigned long end, struct sp_node *new) { - struct sp_node *n, *new2 = NULL; + struct sp_node *n; + int ret = 0; -restart: - spin_lock(&sp->lock); + mutex_lock(&sp->mutex); n = sp_lookup(sp, start, end); /* Take care of old policies in the same range. */ while (n && n->start < end) { @@ -2135,16 +2166,14 @@ } else { /* Old policy spanning whole new range. */ if (n->end > end) { + struct sp_node *new2; + new2 = sp_alloc(end, n->end, n->policy); if (!new2) { - spin_unlock(&sp->lock); - new2 = sp_alloc(end, n->end, n->policy); - if (!new2) - return -ENOMEM; - goto restart; + ret = -ENOMEM; + goto out; } n->end = start; sp_insert(sp, new2); - new2 = NULL; break; } else n->end = start; @@ -2155,12 +2184,9 @@ } if (new) sp_insert(sp, new); - spin_unlock(&sp->lock); - if (new2) { - mpol_put(new2->policy); - kmem_cache_free(sn_cache, new2); - } - return 0; +out: + mutex_unlock(&sp->mutex); + return ret; } /** @@ -2178,7 +2204,7 @@ int ret; sp->root = RB_ROOT; /* empty tree == default mempolicy */ - spin_lock_init(&sp->lock); + mutex_init(&sp->mutex); if (mpol) { struct vm_area_struct pvma; @@ -2232,7 +2258,7 @@ } err = shared_policy_replace(info, vma->vm_pgoff, vma->vm_pgoff+sz, new); if (err && new) - kmem_cache_free(sn_cache, new); + sp_free(new); return err; } @@ -2244,16 +2270,14 @@ if (!p->root.rb_node) return; - spin_lock(&p->lock); + mutex_lock(&p->mutex); next = rb_first(&p->root); while (next) { n = rb_entry(next, struct sp_node, nd); next = rb_next(&n->nd); - rb_erase(&n->nd, &p->root); - mpol_put(n->policy); - kmem_cache_free(sn_cache, n); + sp_delete(p, n); } - spin_unlock(&p->lock); + mutex_unlock(&p->mutex); } /* assumes fs == KERNEL_DS */ @@ -2310,8 +2334,7 @@ */ /* - * "local" is pseudo-policy: MPOL_PREFERRED with MPOL_F_LOCAL flag - * Used only for mpol_parse_str() and mpol_to_str() + * "local" is implemented internally by MPOL_PREFERRED with MPOL_F_LOCAL flag. */ #define MPOL_LOCAL MPOL_MAX static const char * const policy_modes[] = @@ -2326,28 +2349,21 @@ #ifdef CONFIG_TMPFS /** - * mpol_parse_str - parse string to mempolicy + * mpol_parse_str - parse string to mempolicy, for tmpfs mpol mount option. * @str: string containing mempolicy to parse * @mpol: pointer to struct mempolicy pointer, returned on success. - * @no_context: flag whether to "contextualize" the mempolicy + * @unused: redundant argument, to be removed later. * * Format of input: * [=][:] * - * if @no_context is true, save the input nodemask in w.user_nodemask in - * the returned mempolicy. This will be used to "clone" the mempolicy in - * a specific context [cpuset] at a later time. Used to parse tmpfs mpol - * mount option. Note that if 'static' or 'relative' mode flags were - * specified, the input nodemask will already have been saved. Saving - * it again is redundant, but safe. - * * On success, returns 0, else 1 */ -int mpol_parse_str(char *str, struct mempolicy **mpol, int no_context) +int mpol_parse_str(char *str, struct mempolicy **mpol, int unused) { struct mempolicy *new = NULL; unsigned short mode; - unsigned short uninitialized_var(mode_flags); + unsigned short mode_flags; nodemask_t nodes; char *nodelist = strchr(str, ':'); char *flags = strchr(str, '='); @@ -2435,24 +2451,23 @@ if (IS_ERR(new)) goto out; - if (no_context) { - /* save for contextualization */ - new->w.user_nodemask = nodes; - } else { - int ret; - NODEMASK_SCRATCH(scratch); - if (scratch) { - task_lock(current); - ret = mpol_set_nodemask(new, &nodes, scratch); - task_unlock(current); - } else - ret = -ENOMEM; - NODEMASK_SCRATCH_FREE(scratch); - if (ret) { - mpol_put(new); - goto out; - } - } + /* + * Save nodes for mpol_to_str() to show the tmpfs mount options + * for /proc/mounts, /proc/pid/mounts and /proc/pid/mountinfo. + */ + if (mode != MPOL_PREFERRED) + new->v.nodes = nodes; + else if (nodelist) + new->v.preferred_node = first_node(nodes); + else + new->flags |= MPOL_F_LOCAL; + + /* + * Save nodes for contextualization: this will be used to "clone" + * the mempolicy in a specific context [cpuset] at a later time. + */ + new->w.user_nodemask = nodes; + err = 0; out: @@ -2472,13 +2487,13 @@ * @buffer: to contain formatted mempolicy string * @maxlen: length of @buffer * @pol: pointer to mempolicy to be formatted - * @no_context: "context free" mempolicy - use nodemask in w.user_nodemask + * @unused: redundant argument, to be removed later. * * Convert a mempolicy into a string. * Returns the number of characters in buffer (if positive) * or an error (negative) */ -int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol, int no_context) +int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol, int unused) { char *p = buffer; int l; @@ -2504,7 +2519,7 @@ case MPOL_PREFERRED: nodes_clear(nodes); if (flags & MPOL_F_LOCAL) - mode = MPOL_LOCAL; /* pseudo-policy */ + mode = MPOL_LOCAL; else node_set(pol->v.preferred_node, nodes); break; @@ -2512,14 +2527,11 @@ case MPOL_BIND: /* Fall through */ case MPOL_INTERLEAVE: - if (no_context) - nodes = pol->w.user_nodemask; - else - nodes = pol->v.nodes; + nodes = pol->v.nodes; break; default: - BUG(); + return -EINVAL; } l = strlen(policy_modes[mode]); --- linux-3.2.0.orig/mm/slab.c +++ linux-3.2.0/mm/slab.c @@ -1669,9 +1669,6 @@ g_cpucache_up = LATE; - /* Annotate slab for lockdep -- annotate the malloc caches */ - init_lock_keys(); - /* 6) resize the head arrays to their final sizes */ mutex_lock(&cache_chain_mutex); list_for_each_entry(cachep, &cache_chain, next) @@ -1679,6 +1676,9 @@ BUG(); mutex_unlock(&cache_chain_mutex); + /* Annotate slab for lockdep -- annotate the malloc caches */ + init_lock_keys(); + /* Done! */ g_cpucache_up = FULL; @@ -3267,12 +3267,10 @@ if (in_interrupt() || (flags & __GFP_THISNODE)) return NULL; nid_alloc = nid_here = numa_mem_id(); - get_mems_allowed(); if (cpuset_do_slab_mem_spread() && (cachep->flags & SLAB_MEM_SPREAD)) nid_alloc = cpuset_slab_spread_node(); else if (current->mempolicy) nid_alloc = slab_node(current->mempolicy); - put_mems_allowed(); if (nid_alloc != nid_here) return ____cache_alloc_node(cachep, flags, nid_alloc); return NULL; @@ -3295,14 +3293,17 @@ enum zone_type high_zoneidx = gfp_zone(flags); void *obj = NULL; int nid; + unsigned int cpuset_mems_cookie; if (flags & __GFP_THISNODE) return NULL; - get_mems_allowed(); - zonelist = node_zonelist(slab_node(current->mempolicy), flags); local_flags = flags & (GFP_CONSTRAINT_MASK|GFP_RECLAIM_MASK); +retry_cpuset: + cpuset_mems_cookie = get_mems_allowed(); + zonelist = node_zonelist(slab_node(current->mempolicy), flags); + retry: /* * Look through allowed nodes for objects available @@ -3355,7 +3356,9 @@ } } } - put_mems_allowed(); + + if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !obj)) + goto retry_cpuset; return obj; } --- linux-3.2.0.orig/mm/nobootmem.c +++ linux-3.2.0/mm/nobootmem.c @@ -83,8 +83,7 @@ static void __init __free_pages_memory(unsigned long start, unsigned long end) { - int i; - unsigned long start_aligned, end_aligned; + unsigned long i, start_aligned, end_aligned; int order = ilog2(BITS_PER_LONG); start_aligned = (start + (BITS_PER_LONG - 1)) & ~(BITS_PER_LONG - 1); --- linux-3.2.0.orig/mm/bootmem.c +++ linux-3.2.0/mm/bootmem.c @@ -768,14 +768,13 @@ unsigned long section_nr) { bootmem_data_t *bdata; - unsigned long pfn, goal, limit; + unsigned long pfn, goal; pfn = section_nr_to_pfn(section_nr); goal = pfn << PAGE_SHIFT; - limit = section_nr_to_pfn(section_nr + 1) << PAGE_SHIFT; bdata = &bootmem_node_data[early_pfn_to_nid(pfn)]; - return alloc_bootmem_core(bdata, size, SMP_CACHE_BYTES, goal, limit); + return alloc_bootmem_core(bdata, size, SMP_CACHE_BYTES, goal, 0); } #endif --- linux-3.2.0.orig/mm/madvise.c +++ linux-3.2.0/mm/madvise.c @@ -13,6 +13,7 @@ #include #include #include +#include /* * Any behaviour which results in changes to the vma->vm_flags needs to @@ -197,14 +198,16 @@ struct address_space *mapping; loff_t offset, endoff; int error; + struct file *f; *prev = NULL; /* tell sys_madvise we drop mmap_sem */ if (vma->vm_flags & (VM_LOCKED|VM_NONLINEAR|VM_HUGETLB)) return -EINVAL; - if (!vma->vm_file || !vma->vm_file->f_mapping - || !vma->vm_file->f_mapping->host) { + f = vma->vm_file; + + if (!f || !f->f_mapping || !f->f_mapping->host) { return -EINVAL; } @@ -218,9 +221,16 @@ endoff = (loff_t)(end - vma->vm_start - 1) + ((loff_t)vma->vm_pgoff << PAGE_SHIFT); - /* vmtruncate_range needs to take i_mutex */ + /* + * vmtruncate_range may need to take i_mutex. We need to + * explicitly grab a reference because the vma (and hence the + * vma's reference to the file) can go away as soon as we drop + * mmap_sem. + */ + get_file(f); up_read(¤t->mm->mmap_sem); error = vmtruncate_range(mapping->host, offset, endoff); + fput(f); down_read(¤t->mm->mmap_sem); return error; } --- linux-3.2.0.orig/mm/filemap_xip.c +++ linux-3.2.0/mm/filemap_xip.c @@ -263,7 +263,12 @@ xip_pfn); if (err == -ENOMEM) return VM_FAULT_OOM; - BUG_ON(err); + /* + * err == -EBUSY is fine, we've raced against another thread + * that faulted-in the same page + */ + if (err != -EBUSY) + BUG_ON(err); return VM_FAULT_NOPAGE; } else { int err, ret = VM_FAULT_OOM; --- linux-3.2.0.orig/mm/mmu_notifier.c +++ linux-3.2.0/mm/mmu_notifier.c @@ -14,10 +14,14 @@ #include #include #include +#include #include #include #include +/* global SRCU for all MMs */ +static struct srcu_struct srcu; + /* * This function can't run concurrently against mmu_notifier_register * because mm->mm_users > 0 during mmu_notifier_register and exit_mmap @@ -25,14 +29,32 @@ * in parallel despite there being no task using this mm any more, * through the vmas outside of the exit_mmap context, such as with * vmtruncate. This serializes against mmu_notifier_unregister with - * the mmu_notifier_mm->lock in addition to RCU and it serializes - * against the other mmu notifiers with RCU. struct mmu_notifier_mm + * the mmu_notifier_mm->lock in addition to SRCU and it serializes + * against the other mmu notifiers with SRCU. struct mmu_notifier_mm * can't go away from under us as exit_mmap holds an mm_count pin * itself. */ void __mmu_notifier_release(struct mm_struct *mm) { struct mmu_notifier *mn; + struct hlist_node *n; + int id; + + /* + * SRCU here will block mmu_notifier_unregister until + * ->release returns. + */ + id = srcu_read_lock(&srcu); + hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, hlist) + /* + * If ->release runs before mmu_notifier_unregister it must be + * handled, as it's the only way for the driver to flush all + * existing sptes and stop the driver from establishing any more + * sptes before all the pages in the mm are freed. + */ + if (mn->ops->release) + mn->ops->release(mn, mm); + srcu_read_unlock(&srcu, id); spin_lock(&mm->mmu_notifier_mm->lock); while (unlikely(!hlist_empty(&mm->mmu_notifier_mm->list))) { @@ -41,41 +63,24 @@ hlist); /* * We arrived before mmu_notifier_unregister so - * mmu_notifier_unregister will do nothing other than - * to wait ->release to finish and - * mmu_notifier_unregister to return. + * mmu_notifier_unregister will do nothing other than to wait + * for ->release to finish and for mmu_notifier_unregister to + * return. */ hlist_del_init_rcu(&mn->hlist); - /* - * RCU here will block mmu_notifier_unregister until - * ->release returns. - */ - rcu_read_lock(); - spin_unlock(&mm->mmu_notifier_mm->lock); - /* - * if ->release runs before mmu_notifier_unregister it - * must be handled as it's the only way for the driver - * to flush all existing sptes and stop the driver - * from establishing any more sptes before all the - * pages in the mm are freed. - */ - if (mn->ops->release) - mn->ops->release(mn, mm); - rcu_read_unlock(); - spin_lock(&mm->mmu_notifier_mm->lock); } spin_unlock(&mm->mmu_notifier_mm->lock); /* - * synchronize_rcu here prevents mmu_notifier_release to - * return to exit_mmap (which would proceed freeing all pages - * in the mm) until the ->release method returns, if it was - * invoked by mmu_notifier_unregister. + * synchronize_srcu here prevents mmu_notifier_release from returning to + * exit_mmap (which would proceed with freeing all pages in the mm) + * until the ->release method returns, if it was invoked by + * mmu_notifier_unregister. * - * The mmu_notifier_mm can't go away from under us because one - * mm_count is hold by exit_mmap. + * The mmu_notifier_mm can't go away from under us because one mm_count + * is held by exit_mmap. */ - synchronize_rcu(); + synchronize_srcu(&srcu); } /* @@ -88,14 +93,14 @@ { struct mmu_notifier *mn; struct hlist_node *n; - int young = 0; + int young = 0, id; - rcu_read_lock(); + id = srcu_read_lock(&srcu); hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, hlist) { if (mn->ops->clear_flush_young) young |= mn->ops->clear_flush_young(mn, mm, address); } - rcu_read_unlock(); + srcu_read_unlock(&srcu, id); return young; } @@ -105,9 +110,9 @@ { struct mmu_notifier *mn; struct hlist_node *n; - int young = 0; + int young = 0, id; - rcu_read_lock(); + id = srcu_read_lock(&srcu); hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, hlist) { if (mn->ops->test_young) { young = mn->ops->test_young(mn, mm, address); @@ -115,7 +120,7 @@ break; } } - rcu_read_unlock(); + srcu_read_unlock(&srcu, id); return young; } @@ -125,8 +130,9 @@ { struct mmu_notifier *mn; struct hlist_node *n; + int id; - rcu_read_lock(); + id = srcu_read_lock(&srcu); hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, hlist) { if (mn->ops->change_pte) mn->ops->change_pte(mn, mm, address, pte); @@ -137,7 +143,7 @@ else if (mn->ops->invalidate_page) mn->ops->invalidate_page(mn, mm, address); } - rcu_read_unlock(); + srcu_read_unlock(&srcu, id); } void __mmu_notifier_invalidate_page(struct mm_struct *mm, @@ -145,13 +151,14 @@ { struct mmu_notifier *mn; struct hlist_node *n; + int id; - rcu_read_lock(); + id = srcu_read_lock(&srcu); hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, hlist) { if (mn->ops->invalidate_page) mn->ops->invalidate_page(mn, mm, address); } - rcu_read_unlock(); + srcu_read_unlock(&srcu, id); } void __mmu_notifier_invalidate_range_start(struct mm_struct *mm, @@ -159,13 +166,14 @@ { struct mmu_notifier *mn; struct hlist_node *n; + int id; - rcu_read_lock(); + id = srcu_read_lock(&srcu); hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, hlist) { if (mn->ops->invalidate_range_start) mn->ops->invalidate_range_start(mn, mm, start, end); } - rcu_read_unlock(); + srcu_read_unlock(&srcu, id); } void __mmu_notifier_invalidate_range_end(struct mm_struct *mm, @@ -173,13 +181,14 @@ { struct mmu_notifier *mn; struct hlist_node *n; + int id; - rcu_read_lock(); + id = srcu_read_lock(&srcu); hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, hlist) { if (mn->ops->invalidate_range_end) mn->ops->invalidate_range_end(mn, mm, start, end); } - rcu_read_unlock(); + srcu_read_unlock(&srcu, id); } static int do_mmu_notifier_register(struct mmu_notifier *mn, @@ -191,6 +200,12 @@ BUG_ON(atomic_read(&mm->mm_users) <= 0); + /* + * Verify that mmu_notifier_init() already run and the global srcu is + * initialized. + */ + BUG_ON(!srcu.per_cpu_ref); + ret = -ENOMEM; mmu_notifier_mm = kmalloc(sizeof(struct mmu_notifier_mm), GFP_KERNEL); if (unlikely(!mmu_notifier_mm)) @@ -273,8 +288,8 @@ /* * This releases the mm_count pin automatically and frees the mm * structure if it was the last user of it. It serializes against - * running mmu notifiers with RCU and against mmu_notifier_unregister - * with the unregister lock + RCU. All sptes must be dropped before + * running mmu notifiers with SRCU and against mmu_notifier_unregister + * with the unregister lock + SRCU. All sptes must be dropped before * calling mmu_notifier_unregister. ->release or any other notifier * method may be invoked concurrently with mmu_notifier_unregister, * and only after mmu_notifier_unregister returned we're guaranteed @@ -284,35 +299,46 @@ { BUG_ON(atomic_read(&mm->mm_count) <= 0); - spin_lock(&mm->mmu_notifier_mm->lock); if (!hlist_unhashed(&mn->hlist)) { - hlist_del_rcu(&mn->hlist); - /* - * RCU here will force exit_mmap to wait ->release to finish - * before freeing the pages. + * SRCU here will force exit_mmap to wait for ->release to + * finish before freeing the pages. */ - rcu_read_lock(); - spin_unlock(&mm->mmu_notifier_mm->lock); + int id; + + id = srcu_read_lock(&srcu); /* - * exit_mmap will block in mmu_notifier_release to - * guarantee ->release is called before freeing the - * pages. + * exit_mmap will block in mmu_notifier_release to guarantee + * that ->release is called before freeing the pages. */ if (mn->ops->release) mn->ops->release(mn, mm); - rcu_read_unlock(); - } else + srcu_read_unlock(&srcu, id); + + spin_lock(&mm->mmu_notifier_mm->lock); + /* + * Can not use list_del_rcu() since __mmu_notifier_release + * can delete it before we hold the lock. + */ + hlist_del_init_rcu(&mn->hlist); spin_unlock(&mm->mmu_notifier_mm->lock); + } /* - * Wait any running method to finish, of course including + * Wait for any running method to finish, of course including * ->release if it was run by mmu_notifier_relase instead of us. */ - synchronize_rcu(); + synchronize_srcu(&srcu); BUG_ON(atomic_read(&mm->mm_count) <= 0); mmdrop(mm); } EXPORT_SYMBOL_GPL(mmu_notifier_unregister); + +static int __init mmu_notifier_init(void) +{ + return init_srcu_struct(&srcu); +} + +module_init(mmu_notifier_init); --- linux-3.2.0.orig/mm/dmapool.c +++ linux-3.2.0/mm/dmapool.c @@ -50,7 +50,6 @@ size_t allocation; size_t boundary; char name[32]; - wait_queue_head_t waitq; struct list_head pools; }; @@ -62,8 +61,6 @@ unsigned int offset; }; -#define POOL_TIMEOUT_JIFFIES ((100 /* msec */ * HZ) / 1000) - static DEFINE_MUTEX(pools_lock); static ssize_t @@ -172,7 +169,6 @@ retval->size = size; retval->boundary = boundary; retval->allocation = allocation; - init_waitqueue_head(&retval->waitq); if (dev) { int ret; @@ -227,7 +223,6 @@ memset(page->vaddr, POOL_POISON_FREED, pool->allocation); #endif pool_initialise_page(pool, page); - list_add(&page->page_list, &pool->page_list); page->in_use = 0; page->offset = 0; } else { @@ -315,30 +310,21 @@ might_sleep_if(mem_flags & __GFP_WAIT); spin_lock_irqsave(&pool->lock, flags); - restart: list_for_each_entry(page, &pool->page_list, page_list) { if (page->offset < pool->allocation) goto ready; } - page = pool_alloc_page(pool, GFP_ATOMIC); - if (!page) { - if (mem_flags & __GFP_WAIT) { - DECLARE_WAITQUEUE(wait, current); - __set_current_state(TASK_UNINTERRUPTIBLE); - __add_wait_queue(&pool->waitq, &wait); - spin_unlock_irqrestore(&pool->lock, flags); + /* pool_alloc_page() might sleep, so temporarily drop &pool->lock */ + spin_unlock_irqrestore(&pool->lock, flags); - schedule_timeout(POOL_TIMEOUT_JIFFIES); + page = pool_alloc_page(pool, mem_flags); + if (!page) + return NULL; - spin_lock_irqsave(&pool->lock, flags); - __remove_wait_queue(&pool->waitq, &wait); - goto restart; - } - retval = NULL; - goto done; - } + spin_lock_irqsave(&pool->lock, flags); + list_add(&page->page_list, &pool->page_list); ready: page->in_use++; offset = page->offset; @@ -348,7 +334,6 @@ #ifdef DMAPOOL_DEBUG memset(retval, POOL_POISON_ALLOCATED, pool->size); #endif - done: spin_unlock_irqrestore(&pool->lock, flags); return retval; } @@ -435,8 +420,6 @@ page->in_use--; *(int *)vaddr = page->offset; page->offset = offset; - if (waitqueue_active(&pool->waitq)) - wake_up_locked(&pool->waitq); /* * Resist a temptation to do * if (!is_page_busy(page)) pool_free_page(pool, page); --- linux-3.2.0.orig/mm/rmap.c +++ linux-3.2.0/mm/rmap.c @@ -56,6 +56,7 @@ #include #include #include +#include #include @@ -935,11 +936,8 @@ if (page_mapped(page)) { struct address_space *mapping = page_mapping(page); - if (mapping) { + if (mapping) ret = page_mkclean_file(mapping, page); - if (page_test_and_clear_dirty(page_to_pfn(page), 1)) - ret = 1; - } } return ret; @@ -1120,6 +1118,8 @@ */ void page_remove_rmap(struct page *page) { + struct address_space *mapping = page_mapping(page); + /* page still mapped by someone else? */ if (!atomic_add_negative(-1, &page->_mapcount)) return; @@ -1130,8 +1130,19 @@ * this if the page is anon, so about to be freed; but perhaps * not if it's in swapcache - there might be another pte slot * containing the swap entry, but page not yet written to swap. + * + * And we can skip it on file pages, so long as the filesystem + * participates in dirty tracking; but need to catch shm and tmpfs + * and ramfs pages which have been modified since creation by read + * fault. + * + * Note that mapping must be decided above, before decrementing + * mapcount (which luckily provides a barrier): once page is unmapped, + * it could be truncated and page->mapping reset to NULL at any moment. + * Note also that we are relying on page_mapping(page) to set mapping + * to &swapper_space when PageSwapCache(page). */ - if ((!PageAnon(page) || PageSwapCache(page)) && + if (mapping && !mapping_cap_account_dirty(mapping) && page_test_and_clear_dirty(page_to_pfn(page), 1)) set_page_dirty(page); /* --- linux-3.2.0.orig/mm/sparse.c +++ linux-3.2.0/mm/sparse.c @@ -353,29 +353,21 @@ usemap = sparse_early_usemaps_alloc_pgdat_section(NODE_DATA(nodeid), usemap_count); - if (usemap) { - for (pnum = pnum_begin; pnum < pnum_end; pnum++) { - if (!present_section_nr(pnum)) - continue; - usemap_map[pnum] = usemap; - usemap += size; + if (!usemap) { + usemap = alloc_bootmem_node(NODE_DATA(nodeid), size * usemap_count); + if (!usemap) { + printk(KERN_WARNING "%s: allocation failed\n", __func__); + return; } - return; } - usemap = alloc_bootmem_node(NODE_DATA(nodeid), size * usemap_count); - if (usemap) { - for (pnum = pnum_begin; pnum < pnum_end; pnum++) { - if (!present_section_nr(pnum)) - continue; - usemap_map[pnum] = usemap; - usemap += size; - check_usemap_section_nr(nodeid, usemap_map[pnum]); - } - return; + for (pnum = pnum_begin; pnum < pnum_end; pnum++) { + if (!present_section_nr(pnum)) + continue; + usemap_map[pnum] = usemap; + usemap += size; + check_usemap_section_nr(nodeid, usemap_map[pnum]); } - - printk(KERN_WARNING "%s: allocation failed\n", __func__); } #ifndef CONFIG_SPARSEMEM_VMEMMAP @@ -494,6 +486,9 @@ struct page **map_map; #endif + /* Setup pageblock_order for HUGETLB_PAGE_SIZE_VARIABLE */ + set_pageblock_order(); + /* * map is using big page (aka 2M in x86 64 bit) * usemap is less one page (aka 24 bytes) @@ -627,7 +622,7 @@ { return; /* XXX: Not implemented yet */ } -static void free_map_bootmem(struct page *page, unsigned long nr_pages) +static void free_map_bootmem(struct page *memmap, unsigned long nr_pages) { } #else @@ -668,10 +663,11 @@ get_order(sizeof(struct page) * nr_pages)); } -static void free_map_bootmem(struct page *page, unsigned long nr_pages) +static void free_map_bootmem(struct page *memmap, unsigned long nr_pages) { unsigned long maps_section_nr, removing_section_nr, i; unsigned long magic; + struct page *page = virt_to_page(memmap); for (i = 0; i < nr_pages; i++, page++) { magic = (unsigned long) page->lru.next; @@ -720,13 +716,10 @@ */ if (memmap) { - struct page *memmap_page; - memmap_page = virt_to_page(memmap); - nr_pages = PAGE_ALIGN(PAGES_PER_SECTION * sizeof(struct page)) >> PAGE_SHIFT; - free_map_bootmem(memmap_page, nr_pages); + free_map_bootmem(memmap, nr_pages); } } --- linux-3.2.0.orig/mm/page_alloc.c +++ linux-3.2.0/mm/page_alloc.c @@ -541,7 +541,7 @@ combined_idx = buddy_idx & page_idx; higher_page = page + (combined_idx - page_idx); buddy_idx = __find_buddy_index(combined_idx, order + 1); - higher_buddy = page + (buddy_idx - combined_idx); + higher_buddy = higher_page + (buddy_idx - combined_idx); if (page_is_buddy(higher_page, higher_buddy, order + 1)) { list_add_tail(&page->lru, &zone->free_area[order].free_list[migratetype]); @@ -1886,14 +1886,20 @@ __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order, struct zonelist *zonelist, enum zone_type high_zoneidx, nodemask_t *nodemask, int alloc_flags, struct zone *preferred_zone, - int migratetype, unsigned long *did_some_progress, - bool sync_migration) + int migratetype, bool sync_migration, + bool *deferred_compaction, + unsigned long *did_some_progress) { struct page *page; - if (!order || compaction_deferred(preferred_zone)) + if (!order) return NULL; + if (compaction_deferred(preferred_zone)) { + *deferred_compaction = true; + return NULL; + } + current->flags |= PF_MEMALLOC; *did_some_progress = try_to_compact_pages(zonelist, order, gfp_mask, nodemask, sync_migration); @@ -1921,7 +1927,13 @@ * but not enough to satisfy watermarks. */ count_vm_event(COMPACTFAIL); - defer_compaction(preferred_zone); + + /* + * As async compaction considers a subset of pageblocks, only + * defer if the failure was a sync compaction failure. + */ + if (sync_migration) + defer_compaction(preferred_zone); cond_resched(); } @@ -1933,8 +1945,9 @@ __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order, struct zonelist *zonelist, enum zone_type high_zoneidx, nodemask_t *nodemask, int alloc_flags, struct zone *preferred_zone, - int migratetype, unsigned long *did_some_progress, - bool sync_migration) + int migratetype, bool sync_migration, + bool *deferred_compaction, + unsigned long *did_some_progress) { return NULL; } @@ -2084,6 +2097,7 @@ unsigned long pages_reclaimed = 0; unsigned long did_some_progress; bool sync_migration = false; + bool deferred_compaction = false; /* * In the slowpath, we sanity check order to avoid ever trying to @@ -2164,12 +2178,22 @@ zonelist, high_zoneidx, nodemask, alloc_flags, preferred_zone, - migratetype, &did_some_progress, - sync_migration); + migratetype, sync_migration, + &deferred_compaction, + &did_some_progress); if (page) goto got_pg; sync_migration = true; + /* + * If compaction is deferred for high-order allocations, it is because + * sync compaction recently failed. In this is the case and the caller + * has requested the system not be heavily disrupted, fail the + * allocation now instead of entering direct reclaim + */ + if (deferred_compaction && (gfp_mask & __GFP_NO_KSWAPD)) + goto nopage; + /* Try direct reclaim and then allocating */ page = __alloc_pages_direct_reclaim(gfp_mask, order, zonelist, high_zoneidx, @@ -2232,8 +2256,9 @@ zonelist, high_zoneidx, nodemask, alloc_flags, preferred_zone, - migratetype, &did_some_progress, - sync_migration); + migratetype, sync_migration, + &deferred_compaction, + &did_some_progress); if (page) goto got_pg; } @@ -2257,8 +2282,9 @@ { enum zone_type high_zoneidx = gfp_zone(gfp_mask); struct zone *preferred_zone; - struct page *page; + struct page *page = NULL; int migratetype = allocflags_to_migratetype(gfp_mask); + unsigned int cpuset_mems_cookie; gfp_mask &= gfp_allowed_mask; @@ -2277,15 +2303,15 @@ if (unlikely(!zonelist->_zonerefs->zone)) return NULL; - get_mems_allowed(); +retry_cpuset: + cpuset_mems_cookie = get_mems_allowed(); + /* The preferred zone is used for statistics later */ first_zones_zonelist(zonelist, high_zoneidx, nodemask ? : &cpuset_current_mems_allowed, &preferred_zone); - if (!preferred_zone) { - put_mems_allowed(); - return NULL; - } + if (!preferred_zone) + goto out; /* First allocation attempt */ page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, nodemask, order, @@ -2295,9 +2321,19 @@ page = __alloc_pages_slowpath(gfp_mask, order, zonelist, high_zoneidx, nodemask, preferred_zone, migratetype); - put_mems_allowed(); trace_mm_page_alloc(page, order, gfp_mask, migratetype); + +out: + /* + * When updating a task's mems_allowed, it is possible to race with + * parallel threads in such a way that an allocation can fail while + * the mask is being updated. If a page allocation is about to fail, + * check if the cpuset changed during allocation and if so, retry. + */ + if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page)) + goto retry_cpuset; + return page; } EXPORT_SYMBOL(__alloc_pages_nodemask); @@ -2521,13 +2557,15 @@ bool skip_free_areas_node(unsigned int flags, int nid) { bool ret = false; + unsigned int cpuset_mems_cookie; if (!(flags & SHOW_MEM_FILTER_NODES)) goto out; - get_mems_allowed(); - ret = !node_isset(nid, cpuset_current_mems_allowed); - put_mems_allowed(); + do { + cpuset_mems_cookie = get_mems_allowed(); + ret = !node_isset(nid, cpuset_current_mems_allowed); + } while (!put_mems_allowed(cpuset_mems_cookie)); out: return ret; } @@ -3407,25 +3445,33 @@ if (page_to_nid(page) != zone_to_nid(zone)) continue; - /* Blocks with reserved pages will never free, skip them. */ - block_end_pfn = min(pfn + pageblock_nr_pages, end_pfn); - if (pageblock_is_reserved(pfn, block_end_pfn)) - continue; - block_migratetype = get_pageblock_migratetype(page); - /* If this block is reserved, account for it */ - if (reserve > 0 && block_migratetype == MIGRATE_RESERVE) { - reserve--; - continue; - } + /* Only test what is necessary when the reserves are not met */ + if (reserve > 0) { + /* + * Blocks with reserved pages will never free, skip + * them. + */ + block_end_pfn = min(pfn + pageblock_nr_pages, end_pfn); + if (pageblock_is_reserved(pfn, block_end_pfn)) + continue; - /* Suitable for reserving if this block is movable */ - if (reserve > 0 && block_migratetype == MIGRATE_MOVABLE) { - set_pageblock_migratetype(page, MIGRATE_RESERVE); - move_freepages_block(zone, page, MIGRATE_RESERVE); - reserve--; - continue; + /* If this block is reserved, account for it */ + if (block_migratetype == MIGRATE_RESERVE) { + reserve--; + continue; + } + + /* Suitable for reserving if this block is movable */ + if (block_migratetype == MIGRATE_MOVABLE) { + set_pageblock_migratetype(page, + MIGRATE_RESERVE); + move_freepages_block(zone, page, + MIGRATE_RESERVE); + reserve--; + continue; + } } /* @@ -4207,10 +4253,11 @@ * round what is now in bits to nearest long in bits, then return it in * bytes. */ -static unsigned long __init usemap_size(unsigned long zonesize) +static unsigned long __init usemap_size(unsigned long zone_start_pfn, unsigned long zonesize) { unsigned long usemapsize; + zonesize += zone_start_pfn & (pageblock_nr_pages-1); usemapsize = roundup(zonesize, pageblock_nr_pages); usemapsize = usemapsize >> pageblock_order; usemapsize *= NR_PAGEBLOCK_BITS; @@ -4220,40 +4267,41 @@ } static void __init setup_usemap(struct pglist_data *pgdat, - struct zone *zone, unsigned long zonesize) + struct zone *zone, + unsigned long zone_start_pfn, + unsigned long zonesize) { - unsigned long usemapsize = usemap_size(zonesize); + unsigned long usemapsize = usemap_size(zone_start_pfn, zonesize); zone->pageblock_flags = NULL; if (usemapsize) zone->pageblock_flags = alloc_bootmem_node_nopanic(pgdat, usemapsize); } #else -static inline void setup_usemap(struct pglist_data *pgdat, - struct zone *zone, unsigned long zonesize) {} +static inline void setup_usemap(struct pglist_data *pgdat, struct zone *zone, + unsigned long zone_start_pfn, unsigned long zonesize) {} #endif /* CONFIG_SPARSEMEM */ #ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE -/* Return a sensible default order for the pageblock size. */ -static inline int pageblock_default_order(void) -{ - if (HPAGE_SHIFT > PAGE_SHIFT) - return HUGETLB_PAGE_ORDER; - - return MAX_ORDER-1; -} - /* Initialise the number of pages represented by NR_PAGEBLOCK_BITS */ -static inline void __init set_pageblock_order(unsigned int order) +void __init set_pageblock_order(void) { + unsigned int order; + /* Check that pageblock_nr_pages has not already been setup */ if (pageblock_order) return; + if (HPAGE_SHIFT > PAGE_SHIFT) + order = HUGETLB_PAGE_ORDER; + else + order = MAX_ORDER - 1; + /* * Assume the largest contiguous order of interest is a huge page. - * This value may be variable depending on boot parameters on IA64 + * This value may be variable depending on boot parameters on IA64 and + * powerpc. */ pageblock_order = order; } @@ -4261,15 +4309,13 @@ /* * When CONFIG_HUGETLB_PAGE_SIZE_VARIABLE is not set, set_pageblock_order() - * and pageblock_default_order() are unused as pageblock_order is set - * at compile-time. See include/linux/pageblock-flags.h for the values of - * pageblock_order based on the kernel config + * is unused as pageblock_order is set at compile-time. See + * include/linux/pageblock-flags.h for the values of pageblock_order based on + * the kernel config */ -static inline int pageblock_default_order(unsigned int order) +void __init set_pageblock_order(void) { - return MAX_ORDER-1; } -#define set_pageblock_order(x) do {} while (0) #endif /* CONFIG_HUGETLB_PAGE_SIZE_VARIABLE */ @@ -4357,8 +4403,8 @@ if (!size) continue; - set_pageblock_order(pageblock_default_order()); - setup_usemap(pgdat, zone, size); + set_pageblock_order(); + setup_usemap(pgdat, zone, zone_start_pfn, size); ret = init_currently_empty_zone(zone, zone_start_pfn, size, MEMMAP_EARLY); BUG_ON(ret); @@ -5489,7 +5535,7 @@ pfn &= (PAGES_PER_SECTION-1); return (pfn >> pageblock_order) * NR_PAGEBLOCK_BITS; #else - pfn = pfn - zone->zone_start_pfn; + pfn = pfn - round_down(zone->zone_start_pfn, pageblock_nr_pages); return (pfn >> pageblock_order) * NR_PAGEBLOCK_BITS; #endif /* CONFIG_SPARSEMEM */ } @@ -5608,6 +5654,17 @@ bool is_pageblock_removable_nolock(struct page *page) { struct zone *zone = page_zone(page); + unsigned long pfn = page_to_pfn(page); + + /* + * We have to be careful here because we are iterating over memory + * sections which are not zone aware so we might end up outside of + * the zone but still within the section. + */ + if (!zone || zone->zone_start_pfn > pfn || + zone->zone_start_pfn + zone->spanned_pages <= pfn) + return false; + return __count_immobile_pages(zone, page, 0); } --- linux-3.2.0.orig/mm/migrate.c +++ linux-3.2.0/mm/migrate.c @@ -147,7 +147,7 @@ if (PageHuge(new)) pte = pte_mkhuge(pte); #endif - flush_cache_page(vma, addr, pte_pfn(pte)); + flush_dcache_page(new); set_pte_at(mm, addr, ptep, pte); if (PageHuge(new)) { @@ -184,15 +184,14 @@ * * This function is called from do_swap_page(). */ -void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, - unsigned long address) +static void __migration_entry_wait(struct mm_struct *mm, pte_t *ptep, + spinlock_t *ptl) { - pte_t *ptep, pte; - spinlock_t *ptl; + pte_t pte; swp_entry_t entry; struct page *page; - ptep = pte_offset_map_lock(mm, pmd, address, &ptl); + spin_lock(ptl); pte = *ptep; if (!is_swap_pte(pte)) goto out; @@ -220,6 +219,70 @@ pte_unmap_unlock(ptep, ptl); } +void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, + unsigned long address) +{ + spinlock_t *ptl = pte_lockptr(mm, pmd); + pte_t *ptep = pte_offset_map(pmd, address); + __migration_entry_wait(mm, ptep, ptl); +} + +void migration_entry_wait_huge(struct mm_struct *mm, pte_t *pte) +{ + spinlock_t *ptl = &(mm)->page_table_lock; + __migration_entry_wait(mm, pte, ptl); +} + +#ifdef CONFIG_BLOCK +/* Returns true if all buffers are successfully locked */ +static bool buffer_migrate_lock_buffers(struct buffer_head *head, + enum migrate_mode mode) +{ + struct buffer_head *bh = head; + + /* Simple case, sync compaction */ + if (mode != MIGRATE_ASYNC) { + do { + get_bh(bh); + lock_buffer(bh); + bh = bh->b_this_page; + + } while (bh != head); + + return true; + } + + /* async case, we cannot block on lock_buffer so use trylock_buffer */ + do { + get_bh(bh); + if (!trylock_buffer(bh)) { + /* + * We failed to lock the buffer and cannot stall in + * async migration. Release the taken locks + */ + struct buffer_head *failed_bh = bh; + put_bh(failed_bh); + bh = head; + while (bh != failed_bh) { + unlock_buffer(bh); + put_bh(bh); + bh = bh->b_this_page; + } + return false; + } + + bh = bh->b_this_page; + } while (bh != head); + return true; +} +#else +static inline bool buffer_migrate_lock_buffers(struct buffer_head *head, + enum migrate_mode mode) +{ + return true; +} +#endif /* CONFIG_BLOCK */ + /* * Replace the page in the mapping. * @@ -229,7 +292,8 @@ * 3 for pages with a mapping and PagePrivate/PagePrivate2 set. */ static int migrate_page_move_mapping(struct address_space *mapping, - struct page *newpage, struct page *page) + struct page *newpage, struct page *page, + struct buffer_head *head, enum migrate_mode mode) { int expected_count; void **pslot; @@ -259,6 +323,20 @@ } /* + * In the async migration case of moving a page with buffers, lock the + * buffers using trylock before the mapping is moved. If the mapping + * was moved, we later failed to lock the buffers and could not move + * the mapping back due to an elevated page count, we would have to + * block waiting on other references to be dropped. + */ + if (mode == MIGRATE_ASYNC && head && + !buffer_migrate_lock_buffers(head, mode)) { + page_unfreeze_refs(page, expected_count); + spin_unlock_irq(&mapping->tree_lock); + return -EAGAIN; + } + + /* * Now we know that no one else is looking at the page. */ get_page(newpage); /* add cache reference */ @@ -415,13 +493,14 @@ * Pages are locked upon entry and exit. */ int migrate_page(struct address_space *mapping, - struct page *newpage, struct page *page) + struct page *newpage, struct page *page, + enum migrate_mode mode) { int rc; BUG_ON(PageWriteback(page)); /* Writeback must be complete */ - rc = migrate_page_move_mapping(mapping, newpage, page); + rc = migrate_page_move_mapping(mapping, newpage, page, NULL, mode); if (rc) return rc; @@ -438,28 +517,28 @@ * exist. */ int buffer_migrate_page(struct address_space *mapping, - struct page *newpage, struct page *page) + struct page *newpage, struct page *page, enum migrate_mode mode) { struct buffer_head *bh, *head; int rc; if (!page_has_buffers(page)) - return migrate_page(mapping, newpage, page); + return migrate_page(mapping, newpage, page, mode); head = page_buffers(page); - rc = migrate_page_move_mapping(mapping, newpage, page); + rc = migrate_page_move_mapping(mapping, newpage, page, head, mode); if (rc) return rc; - bh = head; - do { - get_bh(bh); - lock_buffer(bh); - bh = bh->b_this_page; - - } while (bh != head); + /* + * In the async case, migrate_page_move_mapping locked the buffers + * with an IRQ-safe spinlock held. In the sync case, the buffers + * need to be locked now + */ + if (mode != MIGRATE_ASYNC) + BUG_ON(!buffer_migrate_lock_buffers(head, mode)); ClearPagePrivate(page); set_page_private(newpage, page_private(page)); @@ -536,10 +615,14 @@ * Default handling if a filesystem does not provide a migration function. */ static int fallback_migrate_page(struct address_space *mapping, - struct page *newpage, struct page *page) + struct page *newpage, struct page *page, enum migrate_mode mode) { - if (PageDirty(page)) + if (PageDirty(page)) { + /* Only writeback pages in full synchronous migration */ + if (mode != MIGRATE_SYNC) + return -EBUSY; return writeout(mapping, page); + } /* * Buffers may be managed in a filesystem specific way. @@ -549,7 +632,7 @@ !try_to_release_page(page, GFP_KERNEL)) return -EAGAIN; - return migrate_page(mapping, newpage, page); + return migrate_page(mapping, newpage, page, mode); } /* @@ -564,7 +647,7 @@ * == 0 - success */ static int move_to_new_page(struct page *newpage, struct page *page, - int remap_swapcache, bool sync) + int remap_swapcache, enum migrate_mode mode) { struct address_space *mapping; int rc; @@ -585,29 +668,18 @@ mapping = page_mapping(page); if (!mapping) - rc = migrate_page(mapping, newpage, page); - else { + rc = migrate_page(mapping, newpage, page, mode); + else if (mapping->a_ops->migratepage) /* - * Do not writeback pages if !sync and migratepage is - * not pointing to migrate_page() which is nonblocking - * (swapcache/tmpfs uses migratepage = migrate_page). + * Most pages have a mapping and most filesystems provide a + * migratepage callback. Anonymous pages are part of swap + * space which also has its own migratepage callback. This + * is the most common path for page migration. */ - if (PageDirty(page) && !sync && - mapping->a_ops->migratepage != migrate_page) - rc = -EBUSY; - else if (mapping->a_ops->migratepage) - /* - * Most pages have a mapping and most filesystems - * should provide a migration function. Anonymous - * pages are part of swap space which also has its - * own migration function. This is the most common - * path for page migration. - */ - rc = mapping->a_ops->migratepage(mapping, - newpage, page); - else - rc = fallback_migrate_page(mapping, newpage, page); - } + rc = mapping->a_ops->migratepage(mapping, + newpage, page, mode); + else + rc = fallback_migrate_page(mapping, newpage, page, mode); if (rc) { newpage->mapping = NULL; @@ -622,7 +694,7 @@ } static int __unmap_and_move(struct page *page, struct page *newpage, - int force, bool offlining, bool sync) + int force, bool offlining, enum migrate_mode mode) { int rc = -EAGAIN; int remap_swapcache = 1; @@ -631,7 +703,7 @@ struct anon_vma *anon_vma = NULL; if (!trylock_page(page)) { - if (!force || !sync) + if (!force || mode == MIGRATE_ASYNC) goto out; /* @@ -677,10 +749,12 @@ if (PageWriteback(page)) { /* - * For !sync, there is no point retrying as the retry loop - * is expected to be too short for PageWriteback to be cleared + * Only in the case of a full syncronous migration is it + * necessary to wait for PageWriteback. In the async case, + * the retry loop is too short and in the sync-light case, + * the overhead of stalling is too much */ - if (!sync) { + if (mode != MIGRATE_SYNC) { rc = -EBUSY; goto uncharge; } @@ -751,7 +825,7 @@ skip_unmap: if (!page_mapped(page)) - rc = move_to_new_page(newpage, page, remap_swapcache, sync); + rc = move_to_new_page(newpage, page, remap_swapcache, mode); if (rc && remap_swapcache) remove_migration_ptes(page, page); @@ -774,7 +848,8 @@ * to the newly allocated page in newpage. */ static int unmap_and_move(new_page_t get_new_page, unsigned long private, - struct page *page, int force, bool offlining, bool sync) + struct page *page, int force, bool offlining, + enum migrate_mode mode) { int rc = 0; int *result = NULL; @@ -792,7 +867,7 @@ if (unlikely(split_huge_page(page))) goto out; - rc = __unmap_and_move(page, newpage, force, offlining, sync); + rc = __unmap_and_move(page, newpage, force, offlining, mode); out: if (rc != -EAGAIN) { /* @@ -840,7 +915,8 @@ */ static int unmap_and_move_huge_page(new_page_t get_new_page, unsigned long private, struct page *hpage, - int force, bool offlining, bool sync) + int force, bool offlining, + enum migrate_mode mode) { int rc = 0; int *result = NULL; @@ -853,7 +929,7 @@ rc = -EAGAIN; if (!trylock_page(hpage)) { - if (!force || !sync) + if (!force || mode != MIGRATE_SYNC) goto out; lock_page(hpage); } @@ -864,7 +940,7 @@ try_to_unmap(hpage, TTU_MIGRATION|TTU_IGNORE_MLOCK|TTU_IGNORE_ACCESS); if (!page_mapped(hpage)) - rc = move_to_new_page(new_hpage, hpage, 1, sync); + rc = move_to_new_page(new_hpage, hpage, 1, mode); if (rc) remove_migration_ptes(hpage, hpage); @@ -907,7 +983,7 @@ */ int migrate_pages(struct list_head *from, new_page_t get_new_page, unsigned long private, bool offlining, - bool sync) + enum migrate_mode mode) { int retry = 1; int nr_failed = 0; @@ -928,7 +1004,7 @@ rc = unmap_and_move(get_new_page, private, page, pass > 2, offlining, - sync); + mode); switch(rc) { case -ENOMEM: @@ -958,7 +1034,7 @@ int migrate_huge_pages(struct list_head *from, new_page_t get_new_page, unsigned long private, bool offlining, - bool sync) + enum migrate_mode mode) { int retry = 1; int nr_failed = 0; @@ -975,7 +1051,7 @@ rc = unmap_and_move_huge_page(get_new_page, private, page, pass > 2, offlining, - sync); + mode); switch(rc) { case -ENOMEM: @@ -1104,7 +1180,7 @@ err = 0; if (!list_empty(&pagelist)) { err = migrate_pages(&pagelist, new_page_node, - (unsigned long)pm, 0, true); + (unsigned long)pm, 0, MIGRATE_SYNC); if (err) putback_lru_pages(&pagelist); } --- linux-3.2.0.orig/mm/util.c +++ linux-3.2.0/mm/util.c @@ -11,6 +11,11 @@ #define CREATE_TRACE_POINTS #include +/* No sane architecture will #define these to anything else */ +#ifndef arch_add_exec_range +#define arch_add_exec_range(mm, limit) do { ; } while (0) +#endif + /** * kstrdup - allocate space for and copy an existing string * @s: the string to duplicate @@ -237,6 +242,9 @@ vma->vm_next = next; if (next) next->vm_prev = vma; + + if (vma->vm_flags & VM_EXEC) + arch_add_exec_range(mm, vma->vm_end); } #if defined(CONFIG_MMU) && !defined(HAVE_ARCH_PICK_MMAP_LAYOUT) --- linux-3.2.0.orig/mm/fadvise.c +++ linux-3.2.0/mm/fadvise.c @@ -17,6 +17,7 @@ #include #include #include +#include #include @@ -123,9 +124,22 @@ start_index = (offset+(PAGE_CACHE_SIZE-1)) >> PAGE_CACHE_SHIFT; end_index = (endbyte >> PAGE_CACHE_SHIFT); - if (end_index >= start_index) - invalidate_mapping_pages(mapping, start_index, + if (end_index >= start_index) { + unsigned long count = invalidate_mapping_pages(mapping, + start_index, end_index); + + /* + * If fewer pages were invalidated than expected then + * it is possible that some of the pages were on + * a per-cpu pagevec for a remote CPU. Drain all + * pagevecs and try again. + */ + if (count < (end_index - start_index + 1)) { + lru_add_drain_all(); + invalidate_mapping_pages(mapping, start_index, end_index); + } + } break; default: ret = -EINVAL; --- linux-3.2.0.orig/mm/swap.c +++ linux-3.2.0/mm/swap.c @@ -667,7 +667,7 @@ VM_BUG_ON(!PageHead(page)); VM_BUG_ON(PageCompound(page_tail)); VM_BUG_ON(PageLRU(page_tail)); - VM_BUG_ON(!spin_is_locked(&zone->lru_lock)); + VM_BUG_ON(NR_CPUS != 1 && !spin_is_locked(&zone->lru_lock)); SetPageLRU(page_tail); --- linux-3.2.0.orig/mm/highmem.c +++ linux-3.2.0/mm/highmem.c @@ -94,6 +94,19 @@ do { spin_unlock(&kmap_lock); (void)(flags); } while (0) #endif +struct page *kmap_to_page(void *vaddr) +{ + unsigned long addr = (unsigned long)vaddr; + + if (addr >= PKMAP_ADDR(0) && addr <= PKMAP_ADDR(LAST_PKMAP)) { + int i = (addr - PKMAP_ADDR(0)) >> PAGE_SHIFT; + return pte_page(pkmap_page_table[i]); + } + + return virt_to_page(addr); +} +EXPORT_SYMBOL(kmap_to_page); + static void flush_all_zero_pkmaps(void) { int i; --- linux-3.2.0.orig/mm/page-writeback.c +++ linux-3.2.0/mm/page-writeback.c @@ -1801,6 +1801,24 @@ EXPORT_SYMBOL(__set_page_dirty_nobuffers); /* + * Call this whenever redirtying a page, to de-account the dirty counters + * (NR_DIRTIED, BDI_DIRTIED, tsk->nr_dirtied), so that they match the written + * counters (NR_WRITTEN, BDI_WRITTEN) in long term. The mismatches will lead to + * systematic errors in balanced_dirty_ratelimit and the dirty pages position + * control. + */ +void account_page_redirty(struct page *page) +{ + struct address_space *mapping = page->mapping; + if (mapping && mapping_cap_account_dirty(mapping)) { + current->nr_dirtied--; + dec_zone_page_state(page, NR_DIRTIED); + dec_bdi_stat(mapping->backing_dev_info, BDI_DIRTIED); + } +} +EXPORT_SYMBOL(account_page_redirty); + +/* * When a writepage implementation decides that it doesn't want to write this * page for some reason, it should redirty the locked page via * redirty_page_for_writepage() and it should then unlock the page and return 0 @@ -1808,6 +1826,7 @@ int redirty_page_for_writepage(struct writeback_control *wbc, struct page *page) { wbc->pages_skipped++; + account_page_redirty(page); return __set_page_dirty_nobuffers(page); } EXPORT_SYMBOL(redirty_page_for_writepage); --- linux-3.2.0.orig/mm/slub.c +++ linux-3.2.0/mm/slub.c @@ -1506,15 +1506,19 @@ freelist = page->freelist; counters = page->counters; new.counters = counters; - if (mode) + if (mode) { new.inuse = page->objects; + new.freelist = NULL; + } else { + new.freelist = freelist; + } VM_BUG_ON(new.frozen); new.frozen = 1; } while (!__cmpxchg_double_slab(s, page, freelist, counters, - NULL, new.counters, + new.freelist, new.counters, "lock and freeze")); remove_partial(n, page); @@ -1556,7 +1560,6 @@ object = t; available = page->objects - page->inuse; } else { - page->freelist = t; available = put_cpu_partial(s, page, 0); } if (kmem_cache_debug(s) || available > s->cpu_partial / 2) @@ -1579,6 +1582,7 @@ struct zone *zone; enum zone_type high_zoneidx = gfp_zone(flags); void *object; + unsigned int cpuset_mems_cookie; /* * The defrag ratio allows a configuration of the tradeoffs between @@ -1602,23 +1606,32 @@ get_cycles() % 1024 > s->remote_node_defrag_ratio) return NULL; - get_mems_allowed(); - zonelist = node_zonelist(slab_node(current->mempolicy), flags); - for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) { - struct kmem_cache_node *n; - - n = get_node(s, zone_to_nid(zone)); - - if (n && cpuset_zone_allowed_hardwall(zone, flags) && - n->nr_partial > s->min_partial) { - object = get_partial_node(s, n, c); - if (object) { - put_mems_allowed(); - return object; + do { + cpuset_mems_cookie = get_mems_allowed(); + zonelist = node_zonelist(slab_node(current->mempolicy), flags); + for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) { + struct kmem_cache_node *n; + + n = get_node(s, zone_to_nid(zone)); + + if (n && cpuset_zone_allowed_hardwall(zone, flags) && + n->nr_partial > s->min_partial) { + object = get_partial_node(s, n, c); + if (object) { + /* + * Return the object even if + * put_mems_allowed indicated that + * the cpuset mems_allowed was + * updated in parallel. It's a + * harmless race between the alloc + * and the cpuset update. + */ + put_mems_allowed(cpuset_mems_cookie); + return object; + } } } - } - put_mems_allowed(); + } while (!put_mems_allowed(cpuset_mems_cookie)); #endif return NULL; } @@ -2166,6 +2179,11 @@ goto new_slab; } + /* must check again c->freelist in case of cpu migration or IRQ */ + object = c->freelist; + if (object) + goto load_freelist; + stat(s, ALLOC_SLOWPATH); do { @@ -3906,13 +3924,14 @@ if (kmem_cache_open(s, n, size, align, flags, ctor)) { list_add(&s->list, &slab_caches); + up_write(&slub_lock); if (sysfs_slab_add(s)) { + down_write(&slub_lock); list_del(&s->list); kfree(n); kfree(s); goto err; } - up_write(&slub_lock); return s; } kfree(n); --- linux-3.2.0.orig/mm/readahead.c +++ linux-3.2.0/mm/readahead.c @@ -187,6 +187,7 @@ list_add(&page->lru, &page_pool); if (page_idx == nr_to_read - lookahead_size) SetPageReadahead(page); + SetPageReadaheadUnused(page); ret++; } --- linux-3.2.0.orig/mm/percpu.c +++ linux-3.2.0/mm/percpu.c @@ -1642,6 +1642,16 @@ areas[group] = ptr; base = min(ptr, base); + } + + /* + * Copy data and free unused parts. This should happen after all + * allocations are complete; otherwise, we may end up with + * overlapping groups. + */ + for (group = 0; group < ai->nr_groups; group++) { + struct pcpu_group_info *gi = &ai->groups[group]; + void *ptr = areas[group]; for (i = 0; i < gi->nr_units; i++, ptr += ai->unit_size) { if (gi->cpu_map[i] == NR_CPUS) { --- linux-3.2.0.orig/mm/vmalloc.c +++ linux-3.2.0/mm/vmalloc.c @@ -256,7 +256,7 @@ struct rb_node rb_node; /* address sorted rbtree */ struct list_head list; /* address sorted list */ struct list_head purge_list; /* "lazy purge" list */ - void *private; + struct vm_struct *vm; struct rcu_head rcu_head; }; @@ -1160,9 +1160,10 @@ /* Import existing vmlist entries. */ for (tmp = vmlist; tmp; tmp = tmp->next) { va = kzalloc(sizeof(struct vmap_area), GFP_NOWAIT); - va->flags = tmp->flags | VM_VM_AREA; + va->flags = VM_VM_AREA; va->va_start = (unsigned long)tmp->addr; va->va_end = va->va_start + tmp->size; + va->vm = tmp; __insert_vmap_area(va); } @@ -1260,7 +1261,7 @@ vm->addr = (void *)va->va_start; vm->size = va->va_end - va->va_start; vm->caller = caller; - va->private = vm; + va->vm = vm; va->flags |= VM_VM_AREA; } @@ -1383,7 +1384,7 @@ va = find_vmap_area((unsigned long)addr); if (va && va->flags & VM_VM_AREA) - return va->private; + return va->vm; return NULL; } @@ -1402,7 +1403,7 @@ va = find_vmap_area((unsigned long)addr); if (va && va->flags & VM_VM_AREA) { - struct vm_struct *vm = va->private; + struct vm_struct *vm = va->vm; if (!(vm->flags & VM_UNLIST)) { struct vm_struct *tmp, **p; --- linux-3.2.0.orig/mm/hugetlb.c +++ linux-3.2.0/mm/hugetlb.c @@ -53,6 +53,84 @@ */ static DEFINE_SPINLOCK(hugetlb_lock); +static inline void unlock_or_release_subpool(struct hugepage_subpool *spool) +{ + bool free = (spool->count == 0) && (spool->used_hpages == 0); + + spin_unlock(&spool->lock); + + /* If no pages are used, and no other handles to the subpool + * remain, free the subpool the subpool remain */ + if (free) + kfree(spool); +} + +struct hugepage_subpool *hugepage_new_subpool(long nr_blocks) +{ + struct hugepage_subpool *spool; + + spool = kmalloc(sizeof(*spool), GFP_KERNEL); + if (!spool) + return NULL; + + spin_lock_init(&spool->lock); + spool->count = 1; + spool->max_hpages = nr_blocks; + spool->used_hpages = 0; + + return spool; +} + +void hugepage_put_subpool(struct hugepage_subpool *spool) +{ + spin_lock(&spool->lock); + BUG_ON(!spool->count); + spool->count--; + unlock_or_release_subpool(spool); +} + +static int hugepage_subpool_get_pages(struct hugepage_subpool *spool, + long delta) +{ + int ret = 0; + + if (!spool) + return 0; + + spin_lock(&spool->lock); + if ((spool->used_hpages + delta) <= spool->max_hpages) { + spool->used_hpages += delta; + } else { + ret = -ENOMEM; + } + spin_unlock(&spool->lock); + + return ret; +} + +static void hugepage_subpool_put_pages(struct hugepage_subpool *spool, + long delta) +{ + if (!spool) + return; + + spin_lock(&spool->lock); + spool->used_hpages -= delta; + /* If hugetlbfs_put_super couldn't free spool due to + * an outstanding quota reference, free it now. */ + unlock_or_release_subpool(spool); +} + +static inline struct hugepage_subpool *subpool_inode(struct inode *inode) +{ + return HUGETLBFS_SB(inode->i_sb)->spool; +} + +static inline struct hugepage_subpool *subpool_vma(struct vm_area_struct *vma) +{ + return subpool_inode(vma->vm_file->f_dentry->d_inode); +} + /* * Region tracking -- allows tracking of reservations and instantiated pages * across the pages in a mapping. @@ -460,8 +538,10 @@ struct zonelist *zonelist; struct zone *zone; struct zoneref *z; + unsigned int cpuset_mems_cookie; - get_mems_allowed(); +retry_cpuset: + cpuset_mems_cookie = get_mems_allowed(); zonelist = huge_zonelist(vma, address, htlb_alloc_mask, &mpol, &nodemask); /* @@ -488,10 +568,15 @@ } } } -err: + mpol_cond_put(mpol); - put_mems_allowed(); + if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page)) + goto retry_cpuset; return page; + +err: + mpol_cond_put(mpol); + return NULL; } static void update_and_free_page(struct hstate *h, struct page *page) @@ -533,9 +618,9 @@ */ struct hstate *h = page_hstate(page); int nid = page_to_nid(page); - struct address_space *mapping; + struct hugepage_subpool *spool = + (struct hugepage_subpool *)page_private(page); - mapping = (struct address_space *) page_private(page); set_page_private(page, 0); page->mapping = NULL; BUG_ON(page_count(page)); @@ -551,8 +636,7 @@ enqueue_huge_page(h, page); } spin_unlock(&hugetlb_lock); - if (mapping) - hugetlb_put_quota(mapping, 1); + hugepage_subpool_put_pages(spool, 1); } static void prep_new_huge_page(struct hstate *h, struct page *page, int nid) @@ -595,6 +679,23 @@ } EXPORT_SYMBOL_GPL(PageHuge); +pgoff_t __basepage_index(struct page *page) +{ + struct page *page_head = compound_head(page); + pgoff_t index = page_index(page_head); + unsigned long compound_idx; + + if (!PageHuge(page_head)) + return page_index(page); + + if (compound_order(page_head) >= MAX_ORDER) + compound_idx = page_to_pfn(page) - page_to_pfn(page_head); + else + compound_idx = page - page_head; + + return (index << compound_order(page_head)) + compound_idx; +} + static struct page *alloc_fresh_huge_page_node(struct hstate *h, int nid) { struct page *page; @@ -966,11 +1067,12 @@ /* * Determine if the huge page at addr within the vma has an associated * reservation. Where it does not we will need to logically increase - * reservation and actually increase quota before an allocation can occur. - * Where any new reservation would be required the reservation change is - * prepared, but not committed. Once the page has been quota'd allocated - * an instantiated the change should be committed via vma_commit_reservation. - * No action is required on failure. + * reservation and actually increase subpool usage before an allocation + * can occur. Where any new reservation would be required the + * reservation change is prepared, but not committed. Once the page + * has been allocated from the subpool and instantiated the change should + * be committed via vma_commit_reservation. No action is required on + * failure. */ static long vma_needs_reservation(struct hstate *h, struct vm_area_struct *vma, unsigned long addr) @@ -1019,24 +1121,24 @@ static struct page *alloc_huge_page(struct vm_area_struct *vma, unsigned long addr, int avoid_reserve) { + struct hugepage_subpool *spool = subpool_vma(vma); struct hstate *h = hstate_vma(vma); struct page *page; - struct address_space *mapping = vma->vm_file->f_mapping; - struct inode *inode = mapping->host; long chg; /* - * Processes that did not create the mapping will have no reserves and - * will not have accounted against quota. Check that the quota can be - * made before satisfying the allocation - * MAP_NORESERVE mappings may also need pages and quota allocated - * if no reserve mapping overlaps. + * Processes that did not create the mapping will have no + * reserves and will not have accounted against subpool + * limit. Check that the subpool limit can be made before + * satisfying the allocation MAP_NORESERVE mappings may also + * need pages and subpool limit allocated allocated if no reserve + * mapping overlaps. */ chg = vma_needs_reservation(h, vma, addr); if (chg < 0) return ERR_PTR(-VM_FAULT_OOM); if (chg) - if (hugetlb_get_quota(inode->i_mapping, chg)) + if (hugepage_subpool_get_pages(spool, chg)) return ERR_PTR(-VM_FAULT_SIGBUS); spin_lock(&hugetlb_lock); @@ -1046,12 +1148,12 @@ if (!page) { page = alloc_buddy_huge_page(h, NUMA_NO_NODE); if (!page) { - hugetlb_put_quota(inode->i_mapping, chg); + hugepage_subpool_put_pages(spool, chg); return ERR_PTR(-VM_FAULT_SIGBUS); } } - set_page_private(page, (unsigned long) mapping); + set_page_private(page, (unsigned long)spool); vma_commit_reservation(h, vma, addr); @@ -2007,8 +2109,12 @@ /* Return the number pages of memory we physically have, in PAGE_SIZE units. */ unsigned long hugetlb_total_pages(void) { - struct hstate *h = &default_hstate; - return h->nr_huge_pages * pages_per_huge_page(h); + struct hstate *h; + unsigned long nr_total_pages = 0; + + for_each_hstate(h) + nr_total_pages += h->nr_huge_pages * pages_per_huge_page(h); + return nr_total_pages; } static int hugetlb_acct_memory(struct hstate *h, long delta) @@ -2068,10 +2174,20 @@ kref_get(&reservations->refs); } +static void resv_map_put(struct vm_area_struct *vma) +{ + struct resv_map *reservations = vma_resv_map(vma); + + if (!reservations) + return; + kref_put(&reservations->refs, resv_map_release); +} + static void hugetlb_vm_op_close(struct vm_area_struct *vma) { struct hstate *h = hstate_vma(vma); struct resv_map *reservations = vma_resv_map(vma); + struct hugepage_subpool *spool = subpool_vma(vma); unsigned long reserve; unsigned long start; unsigned long end; @@ -2083,11 +2199,11 @@ reserve = (end - start) - region_count(&reservations->regions, start, end); - kref_put(&reservations->refs, resv_map_release); + resv_map_put(vma); if (reserve) { hugetlb_acct_memory(h, -reserve); - hugetlb_put_quota(vma->vm_file->f_mapping, reserve); + hugepage_subpool_put_pages(spool, reserve); } } } @@ -2287,6 +2403,25 @@ } } +void __unmap_hugepage_range_final(struct vm_area_struct *vma, + unsigned long start, unsigned long end, + struct page *ref_page) +{ + __unmap_hugepage_range(vma, start, end, ref_page); + + /* + * 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_mutex. This works + * because in the context this is called, the VMA is about to be + * destroyed and the i_mmap_mutex is held. + */ + vma->vm_flags &= ~VM_MAYSHARE; +} + void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, unsigned long end, struct page *ref_page) { @@ -2315,9 +2450,9 @@ * from page cache lookup which is in HPAGE_SIZE units. */ address = address & huge_page_mask(h); - pgoff = ((address - vma->vm_start) >> PAGE_SHIFT) - + (vma->vm_pgoff >> PAGE_SHIFT); - mapping = (struct address_space *)page_private(page); + pgoff = ((address - vma->vm_start) >> PAGE_SHIFT) + + vma->vm_pgoff; + mapping = vma->vm_file->f_dentry->d_inode->i_mapping; /* * Take the mapping lock for the duration of the table walk. As @@ -2405,7 +2540,6 @@ if (outside_reserve) { BUG_ON(huge_pte_none(pte)); if (unmap_ref_private(mm, vma, old_page, address)) { - BUG_ON(page_count(old_page) != 1); BUG_ON(huge_pte_none(pte)); spin_lock(&mm->page_table_lock); goto retry_avoidcopy; @@ -2634,7 +2768,7 @@ if (ptep) { entry = huge_ptep_get(ptep); if (unlikely(is_hugetlb_entry_migration(entry))) { - migration_entry_wait(mm, (pmd_t *)ptep, address); + migration_entry_wait_huge(mm, ptep); return 0; } else if (unlikely(is_hugetlb_entry_hwpoisoned(entry))) return VM_FAULT_HWPOISON_LARGE | @@ -2686,6 +2820,7 @@ * so no worry about deadlock. */ page = pte_page(entry); + get_page(page); if (page != pagecache_page) lock_page(page); @@ -2717,6 +2852,7 @@ } if (page != pagecache_page) unlock_page(page); + put_page(page); out_mutex: mutex_unlock(&hugetlb_instantiation_mutex); @@ -2770,7 +2906,17 @@ break; } - if (absent || + /* + * We need call hugetlb_fault for both hugepages under migration + * (in which case hugetlb_fault waits for the migration,) and + * hwpoisoned hugepages (in which case we need to prevent the + * caller from accessing to them.) In order to do this, we use + * here is_swap_pte instead of is_hugetlb_entry_migration and + * is_hugetlb_entry_hwpoisoned. This is because it simply covers + * both cases, and because we can't follow correct pages + * directly from any kind of swap entries. + */ + if (absent || is_swap_pte(huge_ptep_get(pte)) || ((flags & FOLL_WRITE) && !pte_write(huge_ptep_get(pte)))) { int ret; @@ -2843,9 +2989,14 @@ } } spin_unlock(&mm->page_table_lock); - mutex_unlock(&vma->vm_file->f_mapping->i_mmap_mutex); - + /* + * Must flush TLB before releasing i_mmap_mutex: x86's huge_pmd_unshare + * may have cleared our pud entry and done put_page on the page table: + * once we release i_mmap_mutex, another task can do the final put_page + * and that page table be reused and filled with junk. + */ flush_tlb_range(vma, start, end); + mutex_unlock(&vma->vm_file->f_mapping->i_mmap_mutex); } int hugetlb_reserve_pages(struct inode *inode, @@ -2855,11 +3006,12 @@ { long ret, chg; struct hstate *h = hstate_inode(inode); + struct hugepage_subpool *spool = subpool_inode(inode); /* * Only apply hugepage reservation if asked. At fault time, an * attempt will be made for VM_NORESERVE to allocate a page - * and filesystem quota without using reserves + * without using reserves */ if (vm_flags & VM_NORESERVE) return 0; @@ -2883,21 +3035,25 @@ set_vma_resv_flags(vma, HPAGE_RESV_OWNER); } - if (chg < 0) - return chg; + if (chg < 0) { + ret = chg; + goto out_err; + } - /* There must be enough filesystem quota for the mapping */ - if (hugetlb_get_quota(inode->i_mapping, chg)) - return -ENOSPC; + /* There must be enough pages in the subpool for the mapping */ + if (hugepage_subpool_get_pages(spool, chg)) { + ret = -ENOSPC; + goto out_err; + } /* * Check enough hugepages are available for the reservation. - * Hand back the quota if there are not + * Hand the pages back to the subpool if there are not */ ret = hugetlb_acct_memory(h, chg); if (ret < 0) { - hugetlb_put_quota(inode->i_mapping, chg); - return ret; + hugepage_subpool_put_pages(spool, chg); + goto out_err; } /* @@ -2914,18 +3070,23 @@ if (!vma || vma->vm_flags & VM_MAYSHARE) region_add(&inode->i_mapping->private_list, from, to); return 0; +out_err: + if (vma) + resv_map_put(vma); + return ret; } void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed) { struct hstate *h = hstate_inode(inode); long chg = region_truncate(&inode->i_mapping->private_list, offset); + struct hugepage_subpool *spool = subpool_inode(inode); spin_lock(&inode->i_lock); inode->i_blocks -= (blocks_per_huge_page(h) * freed); spin_unlock(&inode->i_lock); - hugetlb_put_quota(inode->i_mapping, (chg - freed)); + hugepage_subpool_put_pages(spool, (chg - freed)); hugetlb_acct_memory(h, -(chg - freed)); } --- linux-3.2.0.orig/mm/memory.c +++ linux-3.2.0/mm/memory.c @@ -205,10 +205,14 @@ return 1; } + if (tlb->batch_count == MAX_GATHER_BATCH_COUNT) + return 0; + batch = (void *)__get_free_pages(GFP_NOWAIT | __GFP_NOWARN, 0); if (!batch) return 0; + tlb->batch_count++; batch->next = NULL; batch->nr = 0; batch->max = MAX_GATHER_BATCH; @@ -235,6 +239,7 @@ tlb->local.nr = 0; tlb->local.max = ARRAY_SIZE(tlb->__pages); tlb->active = &tlb->local; + tlb->batch_count = 0; #ifdef CONFIG_HAVE_RCU_TABLE_FREE tlb->batch = NULL; @@ -1228,16 +1233,24 @@ do { next = pmd_addr_end(addr, end); if (pmd_trans_huge(*pmd)) { - if (next-addr != HPAGE_PMD_SIZE) { + if (next - addr != HPAGE_PMD_SIZE) { VM_BUG_ON(!rwsem_is_locked(&tlb->mm->mmap_sem)); split_huge_page_pmd(vma->vm_mm, pmd); } else if (zap_huge_pmd(tlb, vma, pmd)) - continue; + goto next; /* fall through */ } - if (pmd_none_or_clear_bad(pmd)) - continue; + /* + * Here there can be other concurrent MADV_DONTNEED or + * trans huge page faults running, and if the pmd is + * none or trans huge it can change under us. This is + * because MADV_DONTNEED holds the mmap_sem in read + * mode. + */ + if (pmd_none_or_trans_huge_or_clear_bad(pmd)) + goto next; next = zap_pte_range(tlb, vma, pmd, addr, next, details); +next: cond_resched(); } while (pmd++, addr = next, addr != end); @@ -1350,8 +1363,11 @@ * Since no pte has actually been setup, it is * safe to do nothing in this case. */ - if (vma->vm_file) - unmap_hugepage_range(vma, start, end, NULL); + if (vma->vm_file) { + mutex_lock(&vma->vm_file->f_mapping->i_mmap_mutex); + __unmap_hugepage_range_final(vma, start, end, NULL); + mutex_unlock(&vma->vm_file->f_mapping->i_mmap_mutex); + } start = end; } else @@ -2293,6 +2309,53 @@ } EXPORT_SYMBOL(remap_pfn_range); +/** + * vm_iomap_memory - remap memory to userspace + * @vma: user vma to map to + * @start: start of area + * @len: size of area + * + * This is a simplified io_remap_pfn_range() for common driver use. The + * driver just needs to give us the physical memory range to be mapped, + * we'll figure out the rest from the vma information. + * + * NOTE! Some drivers might want to tweak vma->vm_page_prot first to get + * whatever write-combining details or similar. + */ +int vm_iomap_memory(struct vm_area_struct *vma, phys_addr_t start, unsigned long len) +{ + unsigned long vm_len, pfn, pages; + + /* Check that the physical memory area passed in looks valid */ + if (start + len < start) + return -EINVAL; + /* + * You *really* shouldn't map things that aren't page-aligned, + * but we've historically allowed it because IO memory might + * just have smaller alignment. + */ + len += start & ~PAGE_MASK; + pfn = start >> PAGE_SHIFT; + pages = (len + ~PAGE_MASK) >> PAGE_SHIFT; + if (pfn + pages < pfn) + return -EINVAL; + + /* We start the mapping 'vm_pgoff' pages into the area */ + if (vma->vm_pgoff > pages) + return -EINVAL; + pfn += vma->vm_pgoff; + pages -= vma->vm_pgoff; + + /* Can we fit all of the mapping? */ + vm_len = vma->vm_end - vma->vm_start; + if (vm_len >> PAGE_SHIFT > pages) + return -EINVAL; + + /* Ok, let it rip */ + return io_remap_pfn_range(vma, vma->vm_start, pfn, vm_len, vma->vm_page_prot); +} +EXPORT_SYMBOL(vm_iomap_memory); + static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd, unsigned long addr, unsigned long end, pte_fn_t fn, void *data) @@ -3203,10 +3266,15 @@ else VM_BUG_ON(!PageLocked(vmf.page)); + page = vmf.page; + + /* Mark the page as used on fault. */ + if (PageReadaheadUnused(page)) + ClearPageReadaheadUnused(page); + /* * Should we do an early C-O-W break? */ - page = vmf.page; if (flags & FAULT_FLAG_WRITE) { if (!(vma->vm_flags & VM_SHARED)) { page = cow_page; @@ -3458,6 +3526,7 @@ if (unlikely(is_vm_hugetlb_page(vma))) return hugetlb_fault(mm, vma, address, flags); +retry: pgd = pgd_offset(mm, address); pud = pud_alloc(mm, pgd, address); if (!pud) @@ -3471,13 +3540,24 @@ pmd, flags); } else { pmd_t orig_pmd = *pmd; + int ret; + barrier(); if (pmd_trans_huge(orig_pmd)) { if (flags & FAULT_FLAG_WRITE && !pmd_write(orig_pmd) && - !pmd_trans_splitting(orig_pmd)) - return do_huge_pmd_wp_page(mm, vma, address, - pmd, orig_pmd); + !pmd_trans_splitting(orig_pmd)) { + ret = do_huge_pmd_wp_page(mm, vma, address, pmd, + orig_pmd); + /* + * If COW results in an oom, the huge pmd will + * have been split, so retry the fault on the + * pte for a smaller charge. + */ + if (unlikely(ret & VM_FAULT_OOM)) + goto retry; + return ret; + } return 0; } } --- linux-3.2.0.orig/mm/compaction.c +++ linux-3.2.0/mm/compaction.c @@ -313,12 +313,34 @@ } else if (!locked) spin_lock_irq(&zone->lru_lock); + /* + * migrate_pfn does not necessarily start aligned to a + * pageblock. Ensure that pfn_valid is called when moving + * into a new MAX_ORDER_NR_PAGES range in case of large + * memory holes within the zone + */ + if ((low_pfn & (MAX_ORDER_NR_PAGES - 1)) == 0) { + if (!pfn_valid(low_pfn)) { + low_pfn += MAX_ORDER_NR_PAGES - 1; + continue; + } + } + if (!pfn_valid_within(low_pfn)) continue; nr_scanned++; - /* Get the page and skip if free */ + /* + * Get the page and ensure the page is within the same zone. + * See the comment in isolate_freepages about overlapping + * nodes. It is deliberate that the new zone lock is not taken + * as memory compaction should not move pages between nodes. + */ page = pfn_to_page(low_pfn); + if (page_zone(page) != zone) + continue; + + /* Skip if free */ if (PageBuddy(page)) continue; @@ -350,7 +372,7 @@ } if (!cc->sync) - mode |= ISOLATE_CLEAN; + mode |= ISOLATE_ASYNC_MIGRATE; /* Try isolate the page */ if (__isolate_lru_page(page, mode, 0) != 0) @@ -555,7 +577,7 @@ nr_migrate = cc->nr_migratepages; err = migrate_pages(&cc->migratepages, compaction_alloc, (unsigned long)cc, false, - cc->sync); + cc->sync ? MIGRATE_SYNC_LIGHT : MIGRATE_ASYNC); update_nr_listpages(cc); nr_remaining = cc->nr_migratepages; @@ -570,8 +592,11 @@ if (err) { putback_lru_pages(&cc->migratepages); cc->nr_migratepages = 0; + if (err == -ENOMEM) { + ret = COMPACT_PARTIAL; + goto out; + } } - } out: @@ -689,14 +714,12 @@ } /* Compact all nodes in the system */ -static int compact_nodes(void) +static void compact_nodes(void) { int nid; for_each_online_node(nid) compact_node(nid); - - return COMPACT_COMPLETE; } /* The written value is actually unused, all memory is compacted */ @@ -707,7 +730,7 @@ void __user *buffer, size_t *length, loff_t *ppos) { if (write) - return compact_nodes(); + compact_nodes(); return 0; } --- linux-3.2.0.orig/mm/memory-failure.c +++ linux-3.2.0/mm/memory-failure.c @@ -1427,8 +1427,8 @@ /* Keep page count to indicate a given hugepage is isolated. */ list_add(&hpage->lru, &pagelist); - ret = migrate_huge_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, 0, - true); + ret = migrate_huge_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, false, + MIGRATE_SYNC); if (ret) { struct page *page1, *page2; list_for_each_entry_safe(page1, page2, &pagelist, lru) @@ -1475,9 +1475,17 @@ { int ret; unsigned long pfn = page_to_pfn(page); + struct page *hpage = compound_trans_head(page); if (PageHuge(page)) return soft_offline_huge_page(page, flags); + if (PageTransHuge(hpage)) { + if (PageAnon(hpage) && unlikely(split_huge_page(hpage))) { + pr_info("soft offline: %#lx: failed to split THP\n", + pfn); + return -EBUSY; + } + } ret = get_any_page(page, pfn, flags); if (ret < 0) @@ -1557,7 +1565,7 @@ page_is_file_cache(page)); list_add(&page->lru, &pagelist); ret = migrate_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, - 0, true); + false, MIGRATE_SYNC); if (ret) { putback_lru_pages(&pagelist); pr_info("soft offline: %#lx: migration failed %d, type %lx\n", --- linux-3.2.0.orig/mm/mprotect.c +++ linux-3.2.0/mm/mprotect.c @@ -25,9 +25,14 @@ #include #include #include +#include #include #include +#ifndef arch_remove_exec_range +#define arch_remove_exec_range(mm, limit) do { ; } while (0) +#endif + #ifndef pgprot_modify static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot) { @@ -148,7 +153,7 @@ struct mm_struct *mm = vma->vm_mm; unsigned long oldflags = vma->vm_flags; long nrpages = (end - start) >> PAGE_SHIFT; - unsigned long charged = 0; + unsigned long charged = 0, old_end = vma->vm_end; pgoff_t pgoff; int error; int dirty_accountable = 0; @@ -213,6 +218,9 @@ dirty_accountable = 1; } + if (oldflags & VM_EXEC) + arch_remove_exec_range(current->mm, old_end); + mmu_notifier_invalidate_range_start(mm, start, end); if (is_vm_hugetlb_page(vma)) hugetlb_change_protection(vma, start, end, vma->vm_page_prot); --- linux-3.2.0.orig/mm/vmscan.c +++ linux-3.2.0/mm/vmscan.c @@ -636,7 +636,7 @@ * When racing with an mlock or AS_UNEVICTABLE clearing * (page is unlocked) make sure that if the other thread * does not observe our setting of PG_lru and fails - * isolation/check_move_unevictable_page, + * isolation/check_move_unevictable_pages, * we see PG_mlocked/AS_UNEVICTABLE cleared below and move * the page back to the evictable list. * @@ -697,7 +697,7 @@ return PAGEREF_RECLAIM; if (referenced_ptes) { - if (PageAnon(page)) + if (PageSwapBacked(page)) return PAGEREF_ACTIVATE; /* * All mapped pages start out with page table @@ -715,7 +715,13 @@ */ SetPageReferenced(page); - if (referenced_page) + if (referenced_page || referenced_ptes > 1) + return PAGEREF_ACTIVATE; + + /* + * Activate file-backed executable pages after first usage. + */ + if (vm_flags & VM_EXEC) return PAGEREF_ACTIVATE; return PAGEREF_KEEP; @@ -1061,8 +1067,39 @@ ret = -EBUSY; - if ((mode & ISOLATE_CLEAN) && (PageDirty(page) || PageWriteback(page))) - return ret; + /* + * To minimise LRU disruption, the caller can indicate that it only + * wants to isolate pages it will be able to operate on without + * blocking - clean pages for the most part. + * + * ISOLATE_CLEAN means that only clean pages should be isolated. This + * is used by reclaim when it is cannot write to backing storage + * + * ISOLATE_ASYNC_MIGRATE is used to indicate that it only wants to pages + * that it is possible to migrate without blocking + */ + if (mode & (ISOLATE_CLEAN|ISOLATE_ASYNC_MIGRATE)) { + /* All the caller can do on PageWriteback is block */ + if (PageWriteback(page)) + return ret; + + if (PageDirty(page)) { + struct address_space *mapping; + + /* ISOLATE_CLEAN means only clean pages */ + if (mode & ISOLATE_CLEAN) + return ret; + + /* + * Only pages without mappings or that have a + * ->migratepage callback are possible to migrate + * without blocking + */ + mapping = page_mapping(page); + if (mapping && !mapping->a_ops->migratepage) + return ret; + } + } if ((mode & ISOLATE_UNMAPPED) && page_mapped(page)) return ret; @@ -1178,7 +1215,7 @@ * anon page which don't already have a swap slot is * pointless. */ - if (nr_swap_pages <= 0 && PageAnon(cursor_page) && + if (nr_swap_pages <= 0 && PageSwapBacked(cursor_page) && !PageSwapCache(cursor_page)) break; @@ -1874,7 +1911,8 @@ * latencies, so it's better to scan a minimum amount there as * well. */ - if (scanning_global_lru(sc) && current_is_kswapd()) + if (scanning_global_lru(sc) && current_is_kswapd() && + zone->all_unreclaimable) force_scan = true; if (!scanning_global_lru(sc)) force_scan = true; @@ -1939,10 +1977,10 @@ * proportional to the fraction of recently scanned pages on * each list that were recently referenced and in active use. */ - ap = (anon_prio + 1) * (reclaim_stat->recent_scanned[0] + 1); + ap = anon_prio * (reclaim_stat->recent_scanned[0] + 1); ap /= reclaim_stat->recent_rotated[0] + 1; - fp = (file_prio + 1) * (reclaim_stat->recent_scanned[1] + 1); + fp = file_prio * (reclaim_stat->recent_scanned[1] + 1); fp /= reclaim_stat->recent_rotated[1] + 1; spin_unlock_irq(&zone->lru_lock); @@ -1955,7 +1993,7 @@ unsigned long scan; scan = zone_nr_lru_pages(zone, sc, l); - if (priority || noswap) { + if (priority || noswap || !vmscan_swappiness(sc)) { scan >>= priority; if (!scan && force_scan) scan = SWAP_CLUSTER_MAX; @@ -2012,8 +2050,9 @@ * inactive lists are large enough, continue reclaiming */ pages_for_compaction = (2UL << sc->order); - inactive_lru_pages = zone_nr_lru_pages(zone, sc, LRU_INACTIVE_ANON) + - zone_nr_lru_pages(zone, sc, LRU_INACTIVE_FILE); + inactive_lru_pages = zone_nr_lru_pages(zone, sc, LRU_INACTIVE_FILE); + if (nr_swap_pages > 0) + inactive_lru_pages += zone_nr_lru_pages(zone, sc, LRU_INACTIVE_ANON); if (sc->nr_reclaimed < pages_for_compaction && inactive_lru_pages > pages_for_compaction) return true; @@ -2088,6 +2127,42 @@ throttle_vm_writeout(sc->gfp_mask); } +/* Returns true if compaction should go ahead for a high-order request */ +static inline bool compaction_ready(struct zone *zone, struct scan_control *sc) +{ + unsigned long balance_gap, watermark; + bool watermark_ok; + + /* Do not consider compaction for orders reclaim is meant to satisfy */ + if (sc->order <= PAGE_ALLOC_COSTLY_ORDER) + return false; + + /* + * Compaction takes time to run and there are potentially other + * callers using the pages just freed. Continue reclaiming until + * there is a buffer of free pages available to give compaction + * a reasonable chance of completing and allocating the page + */ + balance_gap = min(low_wmark_pages(zone), + (zone->present_pages + KSWAPD_ZONE_BALANCE_GAP_RATIO-1) / + KSWAPD_ZONE_BALANCE_GAP_RATIO); + watermark = high_wmark_pages(zone) + balance_gap + (2UL << sc->order); + watermark_ok = zone_watermark_ok_safe(zone, 0, watermark, 0, 0); + + /* + * If compaction is deferred, reclaim up to a point where + * compaction will have a chance of success when re-enabled + */ + if (compaction_deferred(zone)) + return watermark_ok; + + /* If compaction is not ready to start, keep reclaiming */ + if (!compaction_suitable(zone, sc->order)) + return false; + + return watermark_ok; +} + /* * This is the direct reclaim path, for page-allocating processes. We only * try to reclaim pages from zones which will satisfy the caller's allocation @@ -2105,8 +2180,9 @@ * scan then give up on it. * * This function returns true if a zone is being reclaimed for a costly - * high-order allocation and compaction is either ready to begin or deferred. - * This indicates to the caller that it should retry the allocation or fail. + * high-order allocation and compaction is ready to begin. This indicates to + * the caller that it should consider retrying the allocation instead of + * further reclaim. */ static bool shrink_zones(int priority, struct zonelist *zonelist, struct scan_control *sc) @@ -2115,7 +2191,7 @@ struct zone *zone; unsigned long nr_soft_reclaimed; unsigned long nr_soft_scanned; - bool should_abort_reclaim = false; + bool aborted_reclaim = false; for_each_zone_zonelist_nodemask(zone, z, zonelist, gfp_zone(sc->gfp_mask), sc->nodemask) { @@ -2140,10 +2216,8 @@ * noticable problem, like transparent huge page * allocations. */ - if (sc->order > PAGE_ALLOC_COSTLY_ORDER && - (compaction_suitable(zone, sc->order) || - compaction_deferred(zone))) { - should_abort_reclaim = true; + if (compaction_ready(zone, sc)) { + aborted_reclaim = true; continue; } } @@ -2165,7 +2239,7 @@ shrink_zone(priority, zone, sc); } - return should_abort_reclaim; + return aborted_reclaim; } static bool zone_reclaimable(struct zone *zone) @@ -2219,8 +2293,8 @@ struct zoneref *z; struct zone *zone; unsigned long writeback_threshold; + bool aborted_reclaim; - get_mems_allowed(); delayacct_freepages_start(); if (scanning_global_lru(sc)) @@ -2230,8 +2304,7 @@ sc->nr_scanned = 0; if (!priority) disable_swap_token(sc->mem_cgroup); - if (shrink_zones(priority, zonelist, sc)) - break; + aborted_reclaim = shrink_zones(priority, zonelist, sc); /* * Don't shrink slabs when reclaiming memory from @@ -2285,7 +2358,6 @@ out: delayacct_freepages_end(); - put_mems_allowed(); if (sc->nr_reclaimed) return sc->nr_reclaimed; @@ -2298,6 +2370,10 @@ if (oom_killer_disabled) return 0; + /* Aborted reclaim to try compaction? don't OOM, then */ + if (aborted_reclaim) + return 1; + /* top priority shrink_zones still had more to do? don't OOM, then */ if (scanning_global_lru(sc) && !all_unreclaimable(zonelist, sc)) return 1; @@ -2824,7 +2900,10 @@ * them before going back to sleep. */ set_pgdat_percpu_threshold(pgdat, calculate_normal_threshold); - schedule(); + + if (!kthread_should_stop()) + schedule(); + set_pgdat_percpu_threshold(pgdat, calculate_pressure_threshold); } else { if (remaining) @@ -2936,6 +3015,8 @@ &balanced_classzone_idx); } } + + current->reclaim_state = NULL; return 0; } @@ -3090,14 +3171,17 @@ } /* - * Called by memory hotplug when all memory in a node is offlined. + * Called by memory hotplug when all memory in a node is offlined. Caller must + * hold lock_memory_hotplug(). */ void kswapd_stop(int nid) { struct task_struct *kswapd = NODE_DATA(nid)->kswapd; - if (kswapd) + if (kswapd) { kthread_stop(kswapd); + NODE_DATA(nid)->kswapd = NULL; + } } static int __init kswapd_init(void) @@ -3353,97 +3437,59 @@ return 1; } +#ifdef CONFIG_SHMEM /** - * check_move_unevictable_page - check page for evictability and move to appropriate zone lru list - * @page: page to check evictability and move to appropriate lru list - * @zone: zone page is in - * - * Checks a page for evictability and moves the page to the appropriate - * zone lru list. - * - * Restrictions: zone->lru_lock must be held, page must be on LRU and must - * have PageUnevictable set. - */ -static void check_move_unevictable_page(struct page *page, struct zone *zone) -{ - VM_BUG_ON(PageActive(page)); - -retry: - ClearPageUnevictable(page); - if (page_evictable(page, NULL)) { - enum lru_list l = page_lru_base_type(page); - - __dec_zone_state(zone, NR_UNEVICTABLE); - list_move(&page->lru, &zone->lru[l].list); - mem_cgroup_move_lists(page, LRU_UNEVICTABLE, l); - __inc_zone_state(zone, NR_INACTIVE_ANON + l); - __count_vm_event(UNEVICTABLE_PGRESCUED); - } else { - /* - * rotate unevictable list - */ - SetPageUnevictable(page); - list_move(&page->lru, &zone->lru[LRU_UNEVICTABLE].list); - mem_cgroup_rotate_lru_list(page, LRU_UNEVICTABLE); - if (page_evictable(page, NULL)) - goto retry; - } -} - -/** - * scan_mapping_unevictable_pages - scan an address space for evictable pages - * @mapping: struct address_space to scan for evictable pages + * check_move_unevictable_pages - check pages for evictability and move to appropriate zone lru list + * @pages: array of pages to check + * @nr_pages: number of pages to check * - * Scan all pages in mapping. Check unevictable pages for - * evictability and move them to the appropriate zone lru list. + * Checks pages for evictability and moves them to the appropriate lru list. + * + * This function is only used for SysV IPC SHM_UNLOCK. */ -void scan_mapping_unevictable_pages(struct address_space *mapping) +void check_move_unevictable_pages(struct page **pages, int nr_pages) { - pgoff_t next = 0; - pgoff_t end = (i_size_read(mapping->host) + PAGE_CACHE_SIZE - 1) >> - PAGE_CACHE_SHIFT; - struct zone *zone; - struct pagevec pvec; + struct zone *zone = NULL; + int pgscanned = 0; + int pgrescued = 0; + int i; - if (mapping->nrpages == 0) - return; + for (i = 0; i < nr_pages; i++) { + struct page *page = pages[i]; + struct zone *pagezone; + + pgscanned++; + pagezone = page_zone(page); + if (pagezone != zone) { + if (zone) + spin_unlock_irq(&zone->lru_lock); + zone = pagezone; + spin_lock_irq(&zone->lru_lock); + } - pagevec_init(&pvec, 0); - while (next < end && - pagevec_lookup(&pvec, mapping, next, PAGEVEC_SIZE)) { - int i; - int pg_scanned = 0; - - zone = NULL; - - for (i = 0; i < pagevec_count(&pvec); i++) { - struct page *page = pvec.pages[i]; - pgoff_t page_index = page->index; - struct zone *pagezone = page_zone(page); - - pg_scanned++; - if (page_index > next) - next = page_index; - next++; - - if (pagezone != zone) { - if (zone) - spin_unlock_irq(&zone->lru_lock); - zone = pagezone; - spin_lock_irq(&zone->lru_lock); - } + if (!PageLRU(page) || !PageUnevictable(page)) + continue; - if (PageLRU(page) && PageUnevictable(page)) - check_move_unevictable_page(page, zone); - } - if (zone) - spin_unlock_irq(&zone->lru_lock); - pagevec_release(&pvec); + if (page_evictable(page, NULL)) { + enum lru_list lru = page_lru_base_type(page); - count_vm_events(UNEVICTABLE_PGSCANNED, pg_scanned); + VM_BUG_ON(PageActive(page)); + ClearPageUnevictable(page); + __dec_zone_state(zone, NR_UNEVICTABLE); + list_move(&page->lru, &zone->lru[lru].list); + mem_cgroup_move_lists(page, LRU_UNEVICTABLE, lru); + __inc_zone_state(zone, NR_INACTIVE_ANON + lru); + pgrescued++; + } } + if (zone) { + __count_vm_events(UNEVICTABLE_PGRESCUED, pgrescued); + __count_vm_events(UNEVICTABLE_PGSCANNED, pgscanned); + spin_unlock_irq(&zone->lru_lock); + } } +#endif /* CONFIG_SHMEM */ static void warn_scan_unevictable_pages(void) { --- linux-3.2.0.orig/mm/process_vm_access.c +++ linux-3.2.0/mm/process_vm_access.c @@ -434,12 +434,6 @@ if (flags != 0) return -EINVAL; - if (!access_ok(VERIFY_READ, lvec, liovcnt * sizeof(*lvec))) - goto out; - - if (!access_ok(VERIFY_READ, rvec, riovcnt * sizeof(*rvec))) - goto out; - if (vm_write) rc = compat_rw_copy_check_uvector(WRITE, lvec, liovcnt, UIO_FASTIOV, iovstack_l, @@ -464,8 +458,6 @@ kfree(iov_r); if (iov_l != iovstack_l) kfree(iov_l); - -out: return rc; } --- linux-3.2.0.orig/mm/memory_hotplug.c +++ linux-3.2.0/mm/memory_hotplug.c @@ -127,9 +127,6 @@ struct mem_section *ms; struct page *page, *memmap; - if (!pfn_valid(start_pfn)) - return; - section_nr = pfn_to_section_nr(start_pfn); ms = __nr_to_section(section_nr); @@ -188,9 +185,16 @@ end_pfn = pfn + pgdat->node_spanned_pages; /* register_section info */ - for (; pfn < end_pfn; pfn += PAGES_PER_SECTION) - register_page_bootmem_info_section(pfn); - + for (; pfn < end_pfn; pfn += PAGES_PER_SECTION) { + /* + * Some platforms can assign the same pfn to multiple nodes - on + * node0 as well as nodeN. To avoid registering a pfn against + * multiple nodes we check that this pfn does not already + * reside in some other node. + */ + if (pfn_valid(pfn) && (pfn_to_nid(pfn) == node)) + register_page_bootmem_info_section(pfn); + } } #endif /* !CONFIG_SPARSEMEM_VMEMMAP */ @@ -511,19 +515,20 @@ zone->present_pages += onlined_pages; zone->zone_pgdat->node_present_pages += onlined_pages; - if (need_zonelists_rebuild) - build_all_zonelists(zone); - else - zone_pcp_update(zone); + if (onlined_pages) { + node_set_state(zone_to_nid(zone), N_HIGH_MEMORY); + if (need_zonelists_rebuild) + build_all_zonelists(zone); + else + zone_pcp_update(zone); + } mutex_unlock(&zonelists_mutex); init_per_zone_wmark_min(); - if (onlined_pages) { + if (onlined_pages) kswapd_run(zone_to_nid(zone)); - node_set_state(zone_to_nid(zone), N_HIGH_MEMORY); - } vm_total_pages = nr_free_pagecache_pages(); @@ -809,7 +814,7 @@ } /* this function returns # of failed pages */ ret = migrate_pages(&source, hotremove_migrate_alloc, 0, - true, true); + true, MIGRATE_SYNC); if (ret) putback_lru_pages(&source); } --- linux-3.2.0.orig/mm/filemap.c +++ linux-3.2.0/mm/filemap.c @@ -393,24 +393,11 @@ int replace_page_cache_page(struct page *old, struct page *new, gfp_t gfp_mask) { int error; - struct mem_cgroup *memcg = NULL; VM_BUG_ON(!PageLocked(old)); VM_BUG_ON(!PageLocked(new)); VM_BUG_ON(new->mapping); - /* - * This is not page migration, but prepare_migration and - * end_migration does enough work for charge replacement. - * - * In the longer term we probably want a specialized function - * for moving the charge from old to new in a more efficient - * manner. - */ - error = mem_cgroup_prepare_migration(old, new, &memcg, gfp_mask); - if (error) - return error; - error = radix_tree_preload(gfp_mask & ~__GFP_HIGHMEM); if (!error) { struct address_space *mapping = old->mapping; @@ -432,13 +419,12 @@ if (PageSwapBacked(new)) __inc_zone_page_state(new, NR_SHMEM); spin_unlock_irq(&mapping->tree_lock); + /* mem_cgroup codes must not be called under tree_lock */ + mem_cgroup_replace_page_cache(old, new); radix_tree_preload_end(); if (freepage) freepage(old); page_cache_release(old); - mem_cgroup_end_migration(memcg, old, new, true); - } else { - mem_cgroup_end_migration(memcg, old, new, false); } return error; @@ -514,10 +500,13 @@ struct page *page; if (cpuset_do_page_mem_spread()) { - get_mems_allowed(); - n = cpuset_mem_spread_node(); - page = alloc_pages_exact_node(n, gfp, 0); - put_mems_allowed(); + unsigned int cpuset_mems_cookie; + do { + cpuset_mems_cookie = get_mems_allowed(); + n = cpuset_mem_spread_node(); + page = alloc_pages_exact_node(n, gfp, 0); + } while (!put_mems_allowed(cpuset_mems_cookie) && !page); + return page; } return alloc_pages(gfp, 0); @@ -1327,6 +1316,9 @@ if (size > count) size = count; + if (PageReadaheadUnused(page)) + ClearPageReadaheadUnused(page); + /* * Faults on the destination of a read are common, so do it before * taking the kmap. @@ -1414,15 +1406,12 @@ unsigned long seg = 0; size_t count; loff_t *ppos = &iocb->ki_pos; - struct blk_plug plug; count = 0; retval = generic_segment_checks(iov, &nr_segs, &count, VERIFY_WRITE); if (retval) return retval; - blk_start_plug(&plug); - /* coalesce the iovecs and go direct-to-BIO for O_DIRECT */ if (filp->f_flags & O_DIRECT) { loff_t size; @@ -1438,8 +1427,12 @@ retval = filemap_write_and_wait_range(mapping, pos, pos + iov_length(iov, nr_segs) - 1); if (!retval) { + struct blk_plug plug; + + blk_start_plug(&plug); retval = mapping->a_ops->direct_IO(READ, iocb, iov, pos, nr_segs); + blk_finish_plug(&plug); } if (retval > 0) { *ppos = pos + retval; @@ -1495,7 +1488,6 @@ break; } out: - blk_finish_plug(&plug); return retval; } EXPORT_SYMBOL(generic_file_aio_read); --- linux-3.2.0.orig/mm/huge_memory.c +++ linux-3.2.0/mm/huge_memory.c @@ -642,6 +642,7 @@ set_pmd_at(mm, haddr, pmd, entry); prepare_pmd_huge_pte(pgtable, mm); add_mm_counter(mm, MM_ANONPAGES, HPAGE_PMD_NR); + mm->nr_ptes++; spin_unlock(&mm->page_table_lock); } @@ -760,6 +761,7 @@ pmd = pmd_mkold(pmd_wrprotect(pmd)); set_pmd_at(dst_mm, addr, dst_pmd, pmd); prepare_pmd_huge_pte(pgtable, dst_mm); + dst_mm->nr_ptes++; ret = 0; out_unlock: @@ -858,7 +860,6 @@ } kfree(pages); - mm->nr_ptes++; smp_wmb(); /* make pte visible before pmd */ pmd_populate(mm, pmd, pgtable); page_remove_rmap(page); @@ -920,6 +921,8 @@ count_vm_event(THP_FAULT_FALLBACK); ret = do_huge_pmd_wp_page_fallback(mm, vma, address, pmd, orig_pmd, page, haddr); + if (ret & VM_FAULT_OOM) + split_huge_page(page); put_page(page); goto out; } @@ -927,6 +930,7 @@ if (unlikely(mem_cgroup_newpage_charge(new_page, mm, GFP_KERNEL))) { put_page(new_page); + split_huge_page(page); put_page(page); ret |= VM_FAULT_OOM; goto out; @@ -1017,6 +1021,7 @@ VM_BUG_ON(page_mapcount(page) < 0); add_mm_counter(tlb->mm, MM_ANONPAGES, -HPAGE_PMD_NR); VM_BUG_ON(!PageHead(page)); + tlb->mm->nr_ptes--; spin_unlock(&tlb->mm->page_table_lock); tlb_remove_page(tlb, page); pte_free(tlb->mm, pgtable); @@ -1356,7 +1361,6 @@ pte_unmap(pte); } - mm->nr_ptes++; smp_wmb(); /* make pte visible before pmd */ /* * Up to this point the pmd is present and huge and @@ -1933,7 +1937,12 @@ pte_unmap(pte); spin_lock(&mm->page_table_lock); BUG_ON(!pmd_none(*pmd)); - set_pmd_at(mm, address, pmd, _pmd); + /* + * We can only use set_pmd_at when establishing + * hugepmds and never for establishing regular pmds that + * points to regular pagetables. Use pmd_populate for that + */ + pmd_populate(mm, pmd, pmd_pgtable(_pmd)); spin_unlock(&mm->page_table_lock); anon_vma_unlock(vma->anon_vma); goto out; @@ -1969,7 +1978,6 @@ set_pmd_at(mm, address, pmd, _pmd); update_mmu_cache(vma, address, _pmd); prepare_pmd_huge_pte(pgtable, mm); - mm->nr_ptes--; spin_unlock(&mm->page_table_lock); #ifndef CONFIG_NUMA @@ -2064,7 +2072,7 @@ { struct mm_struct *mm = mm_slot->mm; - VM_BUG_ON(!spin_is_locked(&khugepaged_mm_lock)); + VM_BUG_ON(NR_CPUS != 1 && !spin_is_locked(&khugepaged_mm_lock)); if (khugepaged_test_exit(mm)) { /* free mm_slot */ @@ -2094,7 +2102,7 @@ int progress = 0; VM_BUG_ON(!pages); - VM_BUG_ON(!spin_is_locked(&khugepaged_mm_lock)); + VM_BUG_ON(NR_CPUS != 1 && !spin_is_locked(&khugepaged_mm_lock)); if (khugepaged_scan.mm_slot) mm_slot = khugepaged_scan.mm_slot; --- linux-3.2.0.orig/mm/memcontrol.c +++ linux-3.2.0/mm/memcontrol.c @@ -1457,17 +1457,26 @@ u64 mem_cgroup_get_limit(struct mem_cgroup *memcg) { u64 limit; - u64 memsw; limit = res_counter_read_u64(&memcg->res, RES_LIMIT); - limit += total_swap_pages << PAGE_SHIFT; - memsw = res_counter_read_u64(&memcg->memsw, RES_LIMIT); /* - * If memsw is finite and limits the amount of swap space available - * to this memcg, return that limit. + * Do not consider swap space if we cannot swap due to swappiness */ - return min(limit, memsw); + if (mem_cgroup_swappiness(memcg)) { + u64 memsw; + + limit += total_swap_pages << PAGE_SHIFT; + memsw = res_counter_read_u64(&memcg->memsw, RES_LIMIT); + + /* + * If memsw is finite and limits the amount of swap space + * available to this memcg, return that limit. + */ + limit = min(limit, memsw); + } + + return limit; } /* @@ -3366,6 +3375,50 @@ cgroup_release_and_wakeup_rmdir(&memcg->css); } +/* + * At replace page cache, newpage is not under any memcg but it's on + * LRU. So, this function doesn't touch res_counter but handles LRU + * in correct way. Both pages are locked so we cannot race with uncharge. + */ +void mem_cgroup_replace_page_cache(struct page *oldpage, + struct page *newpage) +{ + struct mem_cgroup *memcg; + struct page_cgroup *pc; + struct zone *zone; + enum charge_type type = MEM_CGROUP_CHARGE_TYPE_CACHE; + unsigned long flags; + + if (mem_cgroup_disabled()) + return; + + pc = lookup_page_cgroup(oldpage); + /* fix accounting on old pages */ + lock_page_cgroup(pc); + memcg = pc->mem_cgroup; + mem_cgroup_charge_statistics(memcg, PageCgroupCache(pc), -1); + ClearPageCgroupUsed(pc); + unlock_page_cgroup(pc); + + if (PageSwapBacked(oldpage)) + type = MEM_CGROUP_CHARGE_TYPE_SHMEM; + + zone = page_zone(newpage); + pc = lookup_page_cgroup(newpage); + /* + * Even if newpage->mapping was NULL before starting replacement, + * the newpage may be on LRU(or pagevec for LRU) already. We lock + * LRU while we overwrite pc->mem_cgroup. + */ + spin_lock_irqsave(&zone->lru_lock, flags); + if (PageLRU(newpage)) + del_page_from_lru_list(zone, newpage, page_lru(newpage)); + __mem_cgroup_commit_charge(memcg, newpage, 1, pc, type); + if (PageLRU(newpage)) + add_page_to_lru_list(zone, newpage, page_lru(newpage)); + spin_unlock_irqrestore(&zone->lru_lock, flags); +} + #ifdef CONFIG_DEBUG_VM static struct page_cgroup *lookup_page_cgroup_used(struct page *page) { @@ -4458,6 +4511,9 @@ */ BUG_ON(!thresholds); + if (!thresholds->primary) + goto unlock; + usage = mem_cgroup_usage(memcg, type == _MEMSWAP); /* Check if a threshold crossed before removing */ @@ -4502,11 +4558,17 @@ swap_buffers: /* Swap primary and spare array */ thresholds->spare = thresholds->primary; + /* If all events are unregistered, free the spare array */ + if (!new) { + kfree(thresholds->spare); + thresholds->spare = NULL; + } + rcu_assign_pointer(thresholds->primary, new); /* To be sure that nobody uses thresholds */ synchronize_rcu(); - +unlock: mutex_unlock(&memcg->thresholds_lock); } @@ -5190,6 +5252,8 @@ spinlock_t *ptl; split_huge_page_pmd(walk->mm, pmd); + if (pmd_trans_unstable(pmd)) + return 0; pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); for (; addr != end; pte++, addr += PAGE_SIZE) @@ -5351,6 +5415,8 @@ spinlock_t *ptl; split_huge_page_pmd(walk->mm, pmd); + if (pmd_trans_unstable(pmd)) + return 0; retry: pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); for (; addr != end; addr += PAGE_SIZE) { --- linux-3.2.0.orig/mm/mmap.c +++ linux-3.2.0/mm/mmap.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -46,6 +47,18 @@ #define arch_rebalance_pgtables(addr, len) (addr) #endif +/* No sane architecture will #define these to anything else */ +#ifndef arch_add_exec_range +#define arch_add_exec_range(mm, limit) do { ; } while (0) +#endif +#ifndef arch_flush_exec_range +#define arch_flush_exec_range(mm) do { ; } while (0) +#endif +#ifndef arch_remove_exec_range +#define arch_remove_exec_range(mm, limit) do { ; } while (0) +#endif + + static void unmap_region(struct mm_struct *mm, struct vm_area_struct *vma, struct vm_area_struct *prev, unsigned long start, unsigned long end); @@ -478,6 +491,8 @@ rb_erase(&vma->vm_rb, &mm->mm_rb); if (mm->mmap_cache == vma) mm->mmap_cache = prev; + if (vma->vm_flags & VM_EXEC) + arch_remove_exec_range(mm, vma->vm_end); } /* @@ -794,6 +809,8 @@ } else /* cases 2, 5, 7 */ err = vma_adjust(prev, prev->vm_start, end, prev->vm_pgoff, NULL); + if (prev->vm_flags & VM_EXEC) + arch_add_exec_range(mm, prev->vm_end); if (err) return NULL; khugepaged_enter_vma_merge(prev); @@ -981,7 +998,8 @@ /* Obtain the address to map to. we verify (or select) it and ensure * that it represents a valid section of the address space. */ - addr = get_unmapped_area(file, addr, len, pgoff, flags); + addr = get_unmapped_area_prot(file, addr, len, pgoff, flags, + prot & PROT_EXEC); if (addr & ~PAGE_MASK) return addr; @@ -1534,8 +1552,8 @@ } unsigned long -get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, - unsigned long pgoff, unsigned long flags) +get_unmapped_area_prot(struct file *file, unsigned long addr, unsigned long len, + unsigned long pgoff, unsigned long flags, int exec) { unsigned long (*get_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); @@ -1548,7 +1566,11 @@ if (len > TASK_SIZE) return -ENOMEM; - get_area = current->mm->get_unmapped_area; + if (exec && current->mm->get_unmapped_exec_area) + get_area = current->mm->get_unmapped_exec_area; + else + get_area = current->mm->get_unmapped_area; + if (file && file->f_op && file->f_op->get_unmapped_area) get_area = file->f_op->get_unmapped_area; addr = get_area(file, addr, len, pgoff, flags); @@ -1562,8 +1584,83 @@ return arch_rebalance_pgtables(addr, len); } +EXPORT_SYMBOL(get_unmapped_area_prot); + +static bool should_randomize(void) +{ + return (current->flags & PF_RANDOMIZE) && + !(current->personality & ADDR_NO_RANDOMIZE); +} + +#define SHLIB_BASE 0x00110000 + +unsigned long +arch_get_unmapped_exec_area(struct file *filp, unsigned long addr0, + unsigned long len0, unsigned long pgoff, unsigned long flags) +{ + unsigned long addr = addr0, len = len0; + struct mm_struct *mm = current->mm; + struct vm_area_struct *vma; + unsigned long tmp; + + if (len > TASK_SIZE) + return -ENOMEM; + + if (flags & MAP_FIXED) + return addr; + + if (!addr) + addr = !should_randomize() ? SHLIB_BASE : + randomize_range(SHLIB_BASE, 0x01000000, len); + + if (addr) { + addr = PAGE_ALIGN(addr); + vma = find_vma(mm, addr); + if (TASK_SIZE - len >= addr && + (!vma || addr + len <= vma->vm_start)) + return addr; + } + + addr = SHLIB_BASE; + for (vma = find_vma(mm, addr); ; vma = vma->vm_next) { + /* At this point: (!vma || addr < vma->vm_end). */ + if (TASK_SIZE - len < addr) + return -ENOMEM; + + if (!vma || addr + len <= vma->vm_start) { + /* + * Must not let a PROT_EXEC mapping get into the + * brk area: + */ + if (addr + len > mm->brk) + goto failed; + + /* + * Up until the brk area we randomize addresses + * as much as possible: + */ + if (addr >= 0x01000000 && should_randomize()) { + tmp = randomize_range(0x01000000, + PAGE_ALIGN(max(mm->start_brk, + (unsigned long)0x08000000)), len); + vma = find_vma(mm, tmp); + if (TASK_SIZE - len >= tmp && + (!vma || tmp + len <= vma->vm_start)) + return tmp; + } + /* + * Ok, randomization didnt work out - return + * the result of the linear search: + */ + return addr; + } + addr = vma->vm_end; + } + +failed: + return current->mm->get_unmapped_area(filp, addr0, len0, pgoff, flags); +} -EXPORT_SYMBOL(get_unmapped_area); /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) @@ -1573,7 +1670,7 @@ if (mm) { /* Check the cache first. */ /* (Cache hit rate is typically around 35%.) */ - vma = mm->mmap_cache; + vma = ACCESS_ONCE(mm->mmap_cache); if (!(vma && vma->vm_end > addr && vma->vm_start <= addr)) { struct rb_node * rb_node; @@ -1972,10 +2069,14 @@ if (new->vm_ops && new->vm_ops->open) new->vm_ops->open(new); - if (new_below) + if (new_below) { + unsigned long old_end = vma->vm_end; + err = vma_adjust(vma, addr, vma->vm_end, vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), new); - else + if (vma->vm_flags & VM_EXEC) + arch_remove_exec_range(mm, old_end); + } else err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new); /* Success. */ @@ -2263,6 +2364,7 @@ free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, 0); tlb_finish_mmu(&tlb, 0, end); + arch_flush_exec_range(mm); /* * Walk the list again, actually closing and freeing it, --- linux-3.2.0.orig/mm/backing-dev.c +++ linux-3.2.0/mm/backing-dev.c @@ -318,7 +318,7 @@ if (bdi->wb.task) { trace_writeback_wake_thread(bdi); wake_up_process(bdi->wb.task); - } else { + } else if (bdi->dev) { /* * When bdi tasks are inactive for long time, they are killed. * In this case we have to wake-up the forker thread which @@ -584,6 +584,8 @@ */ static void bdi_wb_shutdown(struct backing_dev_info *bdi) { + struct task_struct *task; + if (!bdi_cap_writeback_dirty(bdi)) return; @@ -604,9 +606,14 @@ * unfreeze of the thread before calling kthread_stop(), otherwise * it would never exet if it is currently stuck in the refrigerator. */ - if (bdi->wb.task) { - thaw_process(bdi->wb.task); - kthread_stop(bdi->wb.task); + spin_lock_bh(&bdi->wb_lock); + task = bdi->wb.task; + bdi->wb.task = NULL; + spin_unlock_bh(&bdi->wb_lock); + + if (task) { + thaw_process(task); + kthread_stop(task); } } @@ -627,7 +634,9 @@ void bdi_unregister(struct backing_dev_info *bdi) { - if (bdi->dev) { + struct device *dev = bdi->dev; + + if (dev) { bdi_set_min_ratio(bdi, 0); trace_writeback_bdi_unregister(bdi); bdi_prune_sb(bdi); @@ -636,8 +645,12 @@ if (!bdi_cap_flush_forker(bdi)) bdi_wb_shutdown(bdi); bdi_debug_unregister(bdi); - device_unregister(bdi->dev); + + spin_lock_bh(&bdi->wb_lock); bdi->dev = NULL; + spin_unlock_bh(&bdi->wb_lock); + + device_unregister(dev); } } EXPORT_SYMBOL(bdi_unregister); --- linux-3.2.0.orig/mm/shmem.c +++ linux-3.2.0/mm/shmem.c @@ -379,7 +379,7 @@ /* * Pagevec may contain swap entries, so shuffle up pages before releasing. */ -static void shmem_pagevec_release(struct pagevec *pvec) +static void shmem_deswap_pagevec(struct pagevec *pvec) { int i, j; @@ -389,7 +389,36 @@ pvec->pages[j++] = page; } pvec->nr = j; - pagevec_release(pvec); +} + +/* + * SysV IPC SHM_UNLOCK restore Unevictable pages to their evictable lists. + */ +void shmem_unlock_mapping(struct address_space *mapping) +{ + struct pagevec pvec; + pgoff_t indices[PAGEVEC_SIZE]; + pgoff_t index = 0; + + pagevec_init(&pvec, 0); + /* + * Minor point, but we might as well stop if someone else SHM_LOCKs it. + */ + while (!mapping_unevictable(mapping)) { + /* + * Avoid pagevec_lookup(): find_get_pages() returns 0 as if it + * has finished, if it hits a row of PAGEVEC_SIZE swap entries. + */ + pvec.nr = shmem_find_get_pages_and_swap(mapping, index, + PAGEVEC_SIZE, pvec.pages, indices); + if (!pvec.nr) + break; + index = indices[pvec.nr - 1] + 1; + shmem_deswap_pagevec(&pvec); + check_move_unevictable_pages(pvec.pages, pvec.nr); + pagevec_release(&pvec); + cond_resched(); + } } /* @@ -440,7 +469,8 @@ } unlock_page(page); } - shmem_pagevec_release(&pvec); + shmem_deswap_pagevec(&pvec); + pagevec_release(&pvec); mem_cgroup_uncharge_end(); cond_resched(); index++; @@ -470,7 +500,8 @@ continue; } if (index == start && indices[0] > end) { - shmem_pagevec_release(&pvec); + shmem_deswap_pagevec(&pvec); + pagevec_release(&pvec); break; } mem_cgroup_uncharge_start(); @@ -494,7 +525,8 @@ } unlock_page(page); } - shmem_pagevec_release(&pvec); + shmem_deswap_pagevec(&pvec); + pagevec_release(&pvec); mem_cgroup_uncharge_end(); index++; } @@ -563,7 +595,7 @@ kfree(xattr->name); kfree(xattr); } - BUG_ON(inode->i_blocks); + WARN_ON(inode->i_blocks); shmem_free_inode(inode->i_sb); end_writeback(inode); } @@ -766,24 +798,28 @@ static struct page *shmem_swapin(swp_entry_t swap, gfp_t gfp, struct shmem_inode_info *info, pgoff_t index) { - struct mempolicy mpol, *spol; struct vm_area_struct pvma; - - spol = mpol_cond_copy(&mpol, - mpol_shared_policy_lookup(&info->policy, index)); + struct page *page; /* Create a pseudo vma that just contains the policy */ pvma.vm_start = 0; pvma.vm_pgoff = index; pvma.vm_ops = NULL; - pvma.vm_policy = spol; - return swapin_readahead(swap, gfp, &pvma, 0); + pvma.vm_policy = mpol_shared_policy_lookup(&info->policy, index); + + page = swapin_readahead(swap, gfp, &pvma, 0); + + /* Drop reference taken by mpol_shared_policy_lookup() */ + mpol_cond_put(pvma.vm_policy); + + return page; } static struct page *shmem_alloc_page(gfp_t gfp, struct shmem_inode_info *info, pgoff_t index) { struct vm_area_struct pvma; + struct page *page; /* Create a pseudo vma that just contains the policy */ pvma.vm_start = 0; @@ -791,10 +827,12 @@ pvma.vm_ops = NULL; pvma.vm_policy = mpol_shared_policy_lookup(&info->policy, index); - /* - * alloc_page_vma() will drop the shared policy reference - */ - return alloc_page_vma(gfp, &pvma, 0); + page = alloc_page_vma(gfp, &pvma, 0); + + /* Drop reference taken by mpol_shared_policy_lookup() */ + mpol_cond_put(pvma.vm_policy); + + return page; } #else /* !CONFIG_NUMA */ #ifdef CONFIG_TMPFS @@ -1068,13 +1106,6 @@ user_shm_unlock(inode->i_size, user); info->flags &= ~VM_LOCKED; mapping_clear_unevictable(file->f_mapping); - /* - * Ensure that a racing putback_lru_page() can see - * the pages of this mapping are evictable when we - * skip them due to !PageLRU during the scan. - */ - smp_mb__after_clear_bit(); - scan_mapping_unevictable_pages(file->f_mapping); } retval = 0; @@ -1334,6 +1365,7 @@ struct splice_pipe_desc spd = { .pages = pages, .partial = partial, + .nr_pages_max = PIPE_DEF_BUFFERS, .flags = flags, .ops = &page_cache_pipe_buf_ops, .spd_release = spd_release_page, @@ -1422,7 +1454,7 @@ if (spd.nr_pages) error = splice_to_pipe(pipe, &spd); - splice_shrink_spd(pipe, &spd); + splice_shrink_spd(&spd); if (error > 0) { *ppos += error; @@ -1936,12 +1968,14 @@ { struct inode *inode; struct dentry *dentry = NULL; - u64 inum = fid->raw[2]; - inum = (inum << 32) | fid->raw[1]; + u64 inum; if (fh_len < 3) return NULL; + inum = fid->raw[2]; + inum = (inum << 32) | fid->raw[1]; + inode = ilookup5(sb, (unsigned long)(inum + fid->raw[0]), shmem_match, fid->raw); if (inode) { @@ -2087,6 +2121,7 @@ unsigned long inodes; int error = -EINVAL; + config.mpol = NULL; if (shmem_parse_options(data, &config, true)) return error; @@ -2111,8 +2146,13 @@ sbinfo->max_inodes = config.max_inodes; sbinfo->free_inodes = config.max_inodes - inodes; - mpol_put(sbinfo->mpol); - sbinfo->mpol = config.mpol; /* transfers initial ref */ + /* + * Preserve previous mempolicy unless mpol remount option was specified. + */ + if (config.mpol) { + mpol_put(sbinfo->mpol); + sbinfo->mpol = config.mpol; /* transfers initial ref */ + } out: spin_unlock(&sbinfo->stat_lock); return error; @@ -2446,6 +2486,10 @@ return 0; } +void shmem_unlock_mapping(struct address_space *mapping) +{ +} + void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend) { truncate_inode_pages_range(inode->i_mapping, lstart, lend); --- linux-3.2.0.orig/mm/swap_state.c +++ linux-3.2.0/mm/swap_state.c @@ -27,7 +27,7 @@ */ static const struct address_space_operations swap_aops = { .writepage = swap_writepage, - .set_page_dirty = __set_page_dirty_nobuffers, + .set_page_dirty = __set_page_dirty_no_writeback, .migratepage = migrate_page, }; @@ -314,8 +314,24 @@ * Swap entry may have been freed since our caller observed it. */ err = swapcache_prepare(entry); - if (err == -EEXIST) { /* seems racy */ + if (err == -EEXIST) { radix_tree_preload_end(); + /* + * We might race against get_swap_page() and stumble + * across a SWAP_HAS_CACHE swap_map entry whose page + * has not been brought into the swapcache yet, while + * the other end is scheduled away waiting on discard + * I/O completion at scan_swap_map(). + * + * In order to avoid turning this transitory state + * into a permanent loop around this -EEXIST case + * if !CONFIG_PREEMPT and the I/O completion happens + * to be waiting on the CPU waitqueue where we are now + * busy looping, we just conditionally invoke the + * scheduler here, if there are some more important + * tasks to run. + */ + cond_resched(); continue; } if (err) { /* swp entry is obsolete ? */ --- linux-3.2.0.orig/mm/pagewalk.c +++ linux-3.2.0/mm/pagewalk.c @@ -59,7 +59,7 @@ continue; split_huge_page_pmd(walk->mm, pmd); - if (pmd_none_or_clear_bad(pmd)) + if (pmd_none_or_trans_huge_or_clear_bad(pmd)) goto again; err = walk_pte_range(pmd, addr, next, walk); if (err) @@ -127,28 +127,7 @@ return 0; } -static struct vm_area_struct* hugetlb_vma(unsigned long addr, struct mm_walk *walk) -{ - struct vm_area_struct *vma; - - /* We don't need vma lookup at all. */ - if (!walk->hugetlb_entry) - return NULL; - - VM_BUG_ON(!rwsem_is_locked(&walk->mm->mmap_sem)); - vma = find_vma(walk->mm, addr); - if (vma && vma->vm_start <= addr && is_vm_hugetlb_page(vma)) - return vma; - - return NULL; -} - #else /* CONFIG_HUGETLB_PAGE */ -static struct vm_area_struct* hugetlb_vma(unsigned long addr, struct mm_walk *walk) -{ - return NULL; -} - static int walk_hugetlb_range(struct vm_area_struct *vma, unsigned long addr, unsigned long end, struct mm_walk *walk) @@ -199,30 +178,53 @@ if (!walk->mm) return -EINVAL; + VM_BUG_ON(!rwsem_is_locked(&walk->mm->mmap_sem)); + pgd = pgd_offset(walk->mm, addr); do { - struct vm_area_struct *vma; + struct vm_area_struct *vma = NULL; next = pgd_addr_end(addr, end); /* - * handle hugetlb vma individually because pagetable walk for - * the hugetlb page is dependent on the architecture and - * we can't handled it in the same manner as non-huge pages. + * This function was not intended to be vma based. + * But there are vma special cases to be handled: + * - hugetlb vma's + * - VM_PFNMAP vma's */ - vma = hugetlb_vma(addr, walk); + vma = find_vma(walk->mm, addr); if (vma) { - if (vma->vm_end < next) + /* + * There are no page structures backing a VM_PFNMAP + * range, so do not allow split_huge_page_pmd(). + */ + if ((vma->vm_start <= addr) && + (vma->vm_flags & VM_PFNMAP)) { next = vma->vm_end; + pgd = pgd_offset(walk->mm, next); + continue; + } /* - * Hugepage is very tightly coupled with vma, so - * walk through hugetlb entries within a given vma. + * Handle hugetlb vma individually because pagetable + * walk for the hugetlb page is dependent on the + * architecture and we can't handled it in the same + * manner as non-huge pages. */ - err = walk_hugetlb_range(vma, addr, next, walk); - if (err) - break; - pgd = pgd_offset(walk->mm, next); - continue; + if (walk->hugetlb_entry && (vma->vm_start <= addr) && + is_vm_hugetlb_page(vma)) { + if (vma->vm_end < next) + next = vma->vm_end; + /* + * Hugepage is very tightly coupled with vma, + * so walk through hugetlb entries within a + * given vma. + */ + err = walk_hugetlb_range(vma, addr, next, walk); + if (err) + break; + pgd = pgd_offset(walk->mm, next); + continue; + } } if (pgd_none_or_clear_bad(pgd)) { --- linux-3.2.0.orig/mm/nommu.c +++ linux-3.2.0/mm/nommu.c @@ -696,9 +696,11 @@ if (vma->vm_file) { mapping = vma->vm_file->f_mapping; + mutex_lock(&mapping->i_mmap_mutex); flush_dcache_mmap_lock(mapping); vma_prio_tree_insert(vma, &mapping->i_mmap); flush_dcache_mmap_unlock(mapping); + mutex_unlock(&mapping->i_mmap_mutex); } /* add the VMA to the tree */ @@ -760,9 +762,11 @@ if (vma->vm_file) { mapping = vma->vm_file->f_mapping; + mutex_lock(&mapping->i_mmap_mutex); flush_dcache_mmap_lock(mapping); vma_prio_tree_remove(vma, &mapping->i_mmap); flush_dcache_mmap_unlock(mapping); + mutex_unlock(&mapping->i_mmap_mutex); } /* remove from the MM's tree and list */ @@ -775,8 +779,6 @@ if (vma->vm_next) vma->vm_next->vm_prev = vma->vm_prev; - - vma->vm_mm = NULL; } /* @@ -805,7 +807,7 @@ struct vm_area_struct *vma; /* check the cache first */ - vma = mm->mmap_cache; + vma = ACCESS_ONCE(mm->mmap_cache); if (vma && vma->vm_start <= addr && vma->vm_end > addr) return vma; @@ -2052,6 +2054,7 @@ high = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; down_write(&nommu_region_sem); + mutex_lock(&inode->i_mapping->i_mmap_mutex); /* search for VMAs that fall within the dead zone */ vma_prio_tree_foreach(vma, &iter, &inode->i_mapping->i_mmap, @@ -2059,6 +2062,7 @@ /* found one - only interested if it's shared out of the page * cache */ if (vma->vm_flags & VM_SHARED) { + mutex_unlock(&inode->i_mapping->i_mmap_mutex); up_write(&nommu_region_sem); return -ETXTBSY; /* not quite true, but near enough */ } @@ -2086,6 +2090,7 @@ } } + mutex_unlock(&inode->i_mapping->i_mmap_mutex); up_write(&nommu_region_sem); return 0; } --- linux-3.2.0.orig/mm/truncate.c +++ linux-3.2.0/mm/truncate.c @@ -394,11 +394,12 @@ if (page_has_private(page) && !try_to_release_page(page, GFP_KERNEL)) return 0; + clear_page_mlock(page); + spin_lock_irq(&mapping->tree_lock); if (PageDirty(page)) goto failed; - clear_page_mlock(page); BUG_ON(page_has_private(page)); __delete_from_page_cache(page); spin_unlock_irq(&mapping->tree_lock); --- linux-3.2.0.orig/mm/swapfile.c +++ linux-3.2.0/mm/swapfile.c @@ -561,6 +561,12 @@ disk->fops->swap_slot_free_notify(p->bdev, offset); } + if (!swap_count(count)) { + mem_cgroup_uncharge_swap(entry); + if (p->notify_swap_entry_free_fn) + p->notify_swap_entry_free_fn(offset); + } + return usage; } @@ -931,9 +937,7 @@ pmd = pmd_offset(pud, addr); do { next = pmd_addr_end(addr, end); - if (unlikely(pmd_trans_huge(*pmd))) - continue; - if (pmd_none_or_clear_bad(pmd)) + if (pmd_none_or_trans_huge_or_clear_bad(pmd)) continue; ret = unuse_pte_range(vma, pmd, addr, next, entry, page); if (ret) @@ -1923,24 +1927,20 @@ /* * Find out how many pages are allowed for a single swap - * device. There are three limiting factors: 1) the number + * device. There are two limiting factors: 1) the number * of bits for the swap offset in the swp_entry_t type, and * 2) the number of bits in the swap pte as defined by the - * the different architectures, and 3) the number of free bits - * in an exceptional radix_tree entry. In order to find the + * different architectures. In order to find the * largest possible bit mask, a swap entry with swap type 0 * and swap offset ~0UL is created, encoded to a swap pte, * decoded to a swp_entry_t again, and finally the swap * offset is extracted. This will mask all the bits from * the initial ~0UL mask that can't be encoded in either * the swp_entry_t or the architecture definition of a - * swap pte. Then the same is done for a radix_tree entry. + * swap pte. */ maxpages = swp_offset(pte_to_swp_entry( - swp_entry_to_pte(swp_entry(0, ~0UL)))); - maxpages = swp_offset(radix_to_swp_entry( - swp_to_radix_entry(swp_entry(0, maxpages)))) + 1; - + swp_entry_to_pte(swp_entry(0, ~0UL)))) + 1; if (maxpages > swap_header->info.last_page) { maxpages = swap_header->info.last_page + 1; /* p->max is an unsigned int: don't overflow it */ @@ -2104,7 +2104,7 @@ p->flags |= SWP_SOLIDSTATE; p->cluster_next = 1 + (random32() % p->highest_bit); } - if (discard_swap(p) == 0 && (swap_flags & SWAP_FLAG_DISCARD)) + if ((swap_flags & SWAP_FLAG_DISCARD) && discard_swap(p) == 0) p->flags |= SWP_DISCARDABLE; } @@ -2289,6 +2289,23 @@ } /* + * Sets callback for event when swap_map[offset] == 0 + * i.e. page at this swap offset is not longer used. + * + * type: identifies swap file + * fn: callback function + */ +void set_notify_swap_entry_free(unsigned type, void (*fn) (unsigned long)) +{ + struct swap_info_struct *sis; + sis = swap_info[type]; + BUG_ON(!sis); + sis->notify_swap_entry_free_fn = fn; + return; +} +EXPORT_SYMBOL(set_notify_swap_entry_free); + +/* * swap_lock prevents swap_map being freed. Don't grab an extra * reference on the swaphandle, it doesn't matter if it becomes unused. */ --- linux-3.2.0.orig/mm/internal.h +++ linux-3.2.0/mm/internal.h @@ -309,3 +309,5 @@ extern u64 hwpoison_filter_flags_value; extern u64 hwpoison_filter_memcg; extern u32 hwpoison_filter_enable; + +extern void set_pageblock_order(void); --- linux-3.2.0.orig/mm/mincore.c +++ linux-3.2.0/mm/mincore.c @@ -80,6 +80,8 @@ #endif if (page) { present = PageUptodate(page); + if (present) + present |= (PageReadaheadUnused(page) << 7); page_cache_release(page); } @@ -164,7 +166,7 @@ } /* fall through */ } - if (pmd_none_or_clear_bad(pmd)) + if (pmd_none_or_trans_huge_or_clear_bad(pmd)) mincore_unmapped_range(vma, addr, next, vec); else mincore_pte_range(vma, pmd, addr, next, vec); --- linux-3.2.0.orig/kernel/relay.c +++ linux-3.2.0/kernel/relay.c @@ -164,10 +164,14 @@ */ static struct rchan_buf *relay_create_buf(struct rchan *chan) { - struct rchan_buf *buf = kzalloc(sizeof(struct rchan_buf), GFP_KERNEL); - if (!buf) + struct rchan_buf *buf; + + if (chan->n_subbufs > UINT_MAX / sizeof(size_t *)) return NULL; + buf = kzalloc(sizeof(struct rchan_buf), GFP_KERNEL); + if (!buf) + return NULL; buf->padding = kmalloc(chan->n_subbufs * sizeof(size_t *), GFP_KERNEL); if (!buf->padding) goto free_buf; @@ -574,6 +578,8 @@ if (!(subbuf_size && n_subbufs)) return NULL; + if (subbuf_size > UINT_MAX / n_subbufs) + return NULL; chan = kzalloc(sizeof(struct rchan), GFP_KERNEL); if (!chan) @@ -1229,6 +1235,7 @@ struct splice_pipe_desc spd = { .pages = pages, .nr_pages = 0, + .nr_pages_max = PIPE_DEF_BUFFERS, .partial = partial, .flags = flags, .ops = &relay_pipe_buf_ops, @@ -1296,8 +1303,8 @@ ret += padding; out: - splice_shrink_spd(pipe, &spd); - return ret; + splice_shrink_spd(&spd); + return ret; } static ssize_t relay_file_splice_read(struct file *in, --- linux-3.2.0.orig/kernel/printk.c +++ linux-3.2.0/kernel/printk.c @@ -633,8 +633,19 @@ start_print = start; while (cur_index != end) { if (msg_level < 0 && ((end - cur_index) > 2)) { + /* + * prepare buf_prefix, as a contiguous array, + * to be processed by log_prefix function + */ + char buf_prefix[SYSLOG_PRI_MAX_LENGTH+1]; + unsigned i; + for (i = 0; i < ((end - cur_index)) && (i < SYSLOG_PRI_MAX_LENGTH); i++) { + buf_prefix[i] = LOG_BUF(cur_index + i); + } + buf_prefix[i] = '\0'; /* force '\0' as last string character */ + /* strip log prefix */ - cur_index += log_prefix(&LOG_BUF(cur_index), &msg_level, NULL); + cur_index += log_prefix((const char *)&buf_prefix, &msg_level, NULL); start_print = cur_index; } while (cur_index != end) { @@ -701,6 +712,9 @@ #endif module_param_named(time, printk_time, bool, S_IRUGO | S_IWUSR); +static bool always_kmsg_dump; +module_param_named(always_kmsg_dump, always_kmsg_dump, bool, S_IRUGO | S_IWUSR); + /* Check if we have any console registered that can be called early in boot. */ static int have_callable_console(void) { @@ -802,9 +816,9 @@ } } printk_cpu = UINT_MAX; + raw_spin_unlock(&logbuf_lock); if (wake) up(&console_sem); - raw_spin_unlock(&logbuf_lock); return retval; } static const char recursion_bug_msg [] = @@ -1733,6 +1747,9 @@ unsigned long l1, l2; unsigned long flags; + if ((reason > KMSG_DUMP_OOPS) && !always_kmsg_dump) + return; + /* Theoretically, the log could move on after we do this, but there's not a lot we can do about that. The new messages will overwrite the start of what we dump. */ --- linux-3.2.0.orig/kernel/sys.c +++ linux-3.2.0/kernel/sys.c @@ -320,7 +320,6 @@ system_state = SYSTEM_RESTART; usermodehelper_disable(); device_shutdown(); - syscore_shutdown(); } /** @@ -354,6 +353,29 @@ } EXPORT_SYMBOL(unregister_reboot_notifier); +/* Add backwards compatibility for stable trees. */ +#ifndef PF_NO_SETAFFINITY +#define PF_NO_SETAFFINITY PF_THREAD_BOUND +#endif + +static void migrate_to_reboot_cpu(void) +{ + /* The boot cpu is always logical cpu 0 */ + int cpu = 0; + + cpu_hotplug_disable(); + + /* Make certain the cpu I'm about to reboot on is online */ + if (!cpu_online(cpu)) + cpu = cpumask_first(cpu_online_mask); + + /* Prevent races with other tasks migrating this task */ + current->flags |= PF_NO_SETAFFINITY; + + /* Make certain I only run on the appropriate processor */ + set_cpus_allowed_ptr(current, cpumask_of(cpu)); +} + /** * kernel_restart - reboot the system * @cmd: pointer to buffer containing command to execute for restart @@ -365,6 +387,8 @@ void kernel_restart(char *cmd) { kernel_restart_prepare(cmd); + migrate_to_reboot_cpu(); + syscore_shutdown(); if (!cmd) printk(KERN_EMERG "Restarting system.\n"); else @@ -390,6 +414,7 @@ void kernel_halt(void) { kernel_shutdown_prepare(SYSTEM_HALT); + migrate_to_reboot_cpu(); syscore_shutdown(); printk(KERN_EMERG "System halted.\n"); kmsg_dump(KMSG_DUMP_HALT); @@ -408,7 +433,7 @@ kernel_shutdown_prepare(SYSTEM_POWER_OFF); if (pm_power_off_prepare) pm_power_off_prepare(); - disable_nonboot_cpus(); + migrate_to_reboot_cpu(); syscore_shutdown(); printk(KERN_EMERG "Power down.\n"); kmsg_dump(KMSG_DUMP_POWEROFF); @@ -444,6 +469,14 @@ magic2 != LINUX_REBOOT_MAGIC2C)) return -EINVAL; + /* In case the pid namespaces are enabled, the current task is in a + * child pid_namespace and the command is handled by 'reboot_pid_ns', + * this one will invoke 'do_exit'. + */ + ret = reboot_pid_ns(task_active_pid_ns(current), cmd); + if (ret) + return ret; + /* Instead of trying to make the power_off code look like * halt when pm_power_off is not set do it the easy way. */ @@ -1170,15 +1203,16 @@ * Work around broken programs that cannot handle "Linux 3.0". * Instead we map 3.x to 2.6.40+x, so e.g. 3.0 would be 2.6.40 */ -static int override_release(char __user *release, int len) +static int override_release(char __user *release, size_t len) { int ret = 0; - char buf[65]; if (current->personality & UNAME26) { - char *rest = UTS_RELEASE; + const char *rest = UTS_RELEASE; + char buf[65] = { 0 }; int ndots = 0; unsigned v; + size_t copy; while (*rest) { if (*rest == '.' && ++ndots >= 3) @@ -1188,8 +1222,9 @@ rest++; } v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 40; - snprintf(buf, len, "2.6.%u%s", v, rest); - ret = copy_to_user(release, buf, len); + copy = clamp_t(size_t, len, 1, sizeof(buf)); + copy = scnprintf(buf, copy, "2.6.%u%s", v, rest); + ret = copy_to_user(release, buf, copy + 1); } return ret; } @@ -1781,7 +1816,7 @@ error = prctl_get_seccomp(); break; case PR_SET_SECCOMP: - error = prctl_set_seccomp(arg2); + error = prctl_set_seccomp(arg2, (char __user *)arg3); break; case PR_GET_TSC: error = GET_TSC_CTL(arg2); @@ -1841,6 +1876,16 @@ else error = PR_MCE_KILL_DEFAULT; break; + case PR_SET_NO_NEW_PRIVS: + if (arg2 != 1 || arg3 || arg4 || arg5) + return -EINVAL; + + current->no_new_privs = 1; + break; + case PR_GET_NO_NEW_PRIVS: + if (arg2 || arg3 || arg4 || arg5) + return -EINVAL; + return current->no_new_privs ? 1 : 0; default: error = -EINVAL; break; --- linux-3.2.0.orig/kernel/panic.c +++ linux-3.2.0/kernel/panic.c @@ -237,11 +237,20 @@ * Can't trust the integrity of the kernel anymore. * We don't call directly debug_locks_off() because the issue * is not necessarily serious enough to set oops_in_progress to 1 - * Also we want to keep up lockdep for staging development and - * post-warning case. + * Also we want to keep up lockdep for staging/out-of-tree + * development and post-warning case. */ - if (flag != TAINT_CRAP && flag != TAINT_WARN && __debug_locks_off()) - printk(KERN_WARNING "Disabling lock debugging due to kernel taint\n"); + switch (flag) { + case TAINT_CRAP: + case TAINT_OOT_MODULE: + case TAINT_WARN: + case TAINT_FIRMWARE_WORKAROUND: + break; + + default: + if (__debug_locks_off()) + printk(KERN_WARNING "Disabling lock debugging due to kernel taint\n"); + } set_bit(flag, &tainted_mask); } --- linux-3.2.0.orig/kernel/cgroup.c +++ linux-3.2.0/kernel/cgroup.c @@ -361,12 +361,20 @@ struct cgroup *cgrp = link->cgrp; list_del(&link->cg_link_list); list_del(&link->cgrp_link_list); + + /* + * We may not be holding cgroup_mutex, and if cgrp->count is + * dropped to 0 the cgroup can be destroyed at any time, hence + * rcu_read_lock is used to keep it alive. + */ + rcu_read_lock(); if (atomic_dec_and_test(&cgrp->count) && notify_on_release(cgrp)) { if (taskexit) set_bit(CGRP_RELEASABLE, &cgrp->flags); check_for_release(cgrp); } + rcu_read_unlock(); kfree(link); } @@ -1175,10 +1183,10 @@ /* * If the 'all' option was specified select all the subsystems, - * otherwise 'all, 'none' and a subsystem name options were not - * specified, let's default to 'all' + * otherwise if 'none', 'name=' and a subsystem name options + * were not specified, let's default to 'all' */ - if (all_ss || (!all_ss && !one_ss && !opts->none)) { + if (all_ss || (!one_ss && !opts->none && !opts->name)) { for (i = 0; i < CGROUP_SUBSYS_COUNT; i++) { struct cgroup_subsys *ss = subsys[i]; if (ss == NULL) @@ -1803,9 +1811,8 @@ * trading it for newcg is protected by cgroup_mutex, we're safe to drop * it here; it will be freed under RCU. */ - put_css_set(oldcg); - set_bit(CGRP_RELEASABLE, &oldcgrp->flags); + put_css_set(oldcg); return 0; } @@ -2022,7 +2029,7 @@ if (!group) return -ENOMEM; /* pre-allocate to guarantee space while iterating in rcu read-side. */ - retval = flex_array_prealloc(group, 0, group_size - 1, GFP_KERNEL); + retval = flex_array_prealloc(group, 0, group_size, GFP_KERNEL); if (retval) goto out_free_group_list; @@ -2637,9 +2644,7 @@ dentry->d_fsdata = cgrp; inc_nlink(parent->d_inode); rcu_assign_pointer(cgrp->dentry, dentry); - dget(dentry); } - dput(dentry); return error; } @@ -4509,41 +4514,19 @@ } /** - * cgroup_fork_callbacks - run fork callbacks - * @child: the new task - * - * Called on a new task very soon before adding it to the - * tasklist. No need to take any locks since no-one can - * be operating on this task. - */ -void cgroup_fork_callbacks(struct task_struct *child) -{ - if (need_forkexit_callback) { - int i; - /* - * forkexit callbacks are only supported for builtin - * subsystems, and the builtin section of the subsys array is - * immutable, so we don't need to lock the subsys array here. - */ - for (i = 0; i < CGROUP_BUILTIN_SUBSYS_COUNT; i++) { - struct cgroup_subsys *ss = subsys[i]; - if (ss->fork) - ss->fork(ss, child); - } - } -} - -/** * cgroup_post_fork - called on a new task after adding it to the task list * @child: the task in question * - * Adds the task to the list running through its css_set if necessary. - * Has to be after the task is visible on the task list in case we race - * with the first call to cgroup_iter_start() - to guarantee that the - * new task ends up on its list. + * Adds the task to the list running through its css_set if necessary and + * call the subsystem fork() callbacks. Has to be after the task is + * visible on the task list in case we race with the first call to + * cgroup_iter_start() - to guarantee that the new task ends up on its + * list. */ void cgroup_post_fork(struct task_struct *child) { + int i; + if (use_task_css_set_links) { write_lock(&css_set_lock); task_lock(child); @@ -4552,7 +4535,21 @@ task_unlock(child); write_unlock(&css_set_lock); } + + /* + * Call ss->fork(). This must happen after @child is linked on + * css_set; otherwise, @child might change state between ->fork() + * and addition to css_set. + */ + if (need_forkexit_callback) { + for (i = 0; i < CGROUP_BUILTIN_SUBSYS_COUNT; i++) { + struct cgroup_subsys *ss = subsys[i]; + if (ss->fork) + ss->fork(ss, child); + } + } } + /** * cgroup_exit - detach cgroup from exiting task * @tsk: pointer to task_struct of exiting process --- linux-3.2.0.orig/kernel/watchdog.c +++ linux-3.2.0/kernel/watchdog.c @@ -113,7 +113,7 @@ return cpu_clock(this_cpu) >> 30LL; /* 2^30 ~= 10^9 */ } -static unsigned long get_sample_period(void) +static u64 get_sample_period(void) { /* * convert watchdog_thresh from seconds to ns @@ -121,7 +121,7 @@ * increment before the hardlockup detector generates * a warning */ - return get_softlockup_thresh() * (NSEC_PER_SEC / 5); + return get_softlockup_thresh() * ((u64)NSEC_PER_SEC / 5); } /* Commands for resetting the watchdog */ --- linux-3.2.0.orig/kernel/smp.c +++ linux-3.2.0/kernel/smp.c @@ -31,6 +31,7 @@ struct call_single_data csd; atomic_t refs; cpumask_var_t cpumask; + cpumask_var_t cpumask_ipi; }; static DEFINE_PER_CPU_SHARED_ALIGNED(struct call_function_data, cfd_data); @@ -54,6 +55,9 @@ if (!zalloc_cpumask_var_node(&cfd->cpumask, GFP_KERNEL, cpu_to_node(cpu))) return notifier_from_errno(-ENOMEM); + if (!zalloc_cpumask_var_node(&cfd->cpumask_ipi, GFP_KERNEL, + cpu_to_node(cpu))) + return notifier_from_errno(-ENOMEM); break; #ifdef CONFIG_HOTPLUG_CPU @@ -63,6 +67,7 @@ case CPU_DEAD: case CPU_DEAD_FROZEN: free_cpumask_var(cfd->cpumask); + free_cpumask_var(cfd->cpumask_ipi); break; #endif }; @@ -524,6 +529,12 @@ return; } + /* + * After we put an entry into the list, data->cpumask + * may be cleared again when another CPU sends another IPI for + * a SMP function call, so data->cpumask will be zero. + */ + cpumask_copy(data->cpumask_ipi, data->cpumask); raw_spin_lock_irqsave(&call_function.lock, flags); /* * Place entry at the _HEAD_ of the list, so that any cpu still @@ -547,7 +558,7 @@ smp_mb(); /* Send a message to all CPUs in the map */ - arch_send_call_function_ipi_mask(data->cpumask); + arch_send_call_function_ipi_mask(data->cpumask_ipi); /* Optionally wait for the CPUs to complete */ if (wait) --- linux-3.2.0.orig/kernel/sched_autogroup.h +++ linux-3.2.0/kernel/sched_autogroup.h @@ -1,11 +1,6 @@ #ifdef CONFIG_SCHED_AUTOGROUP struct autogroup { - /* - * reference doesn't mean how many thread attach to this - * autogroup now. It just stands for the number of task - * could use this autogroup. - */ struct kref kref; struct task_group *tg; struct rw_semaphore lock; --- linux-3.2.0.orig/kernel/sysctl_binary.c +++ linux-3.2.0/kernel/sysctl_binary.c @@ -1194,9 +1194,10 @@ /* Convert the decnet address to binary */ result = -EIO; - nodep = strchr(buf, '.') + 1; + nodep = strchr(buf, '.'); if (!nodep) goto out; + ++nodep; area = simple_strtoul(buf, NULL, 10); node = simple_strtoul(nodep, NULL, 10); --- linux-3.2.0.orig/kernel/seccomp.c +++ linux-3.2.0/kernel/seccomp.c @@ -3,15 +3,353 @@ * * Copyright 2004-2005 Andrea Arcangeli * - * This defines a simple but solid secure-computing mode. + * Copyright (C) 2012 Google, Inc. + * Will Drewry + * + * This defines a simple but solid secure-computing facility. + * + * Mode 1 uses a fixed list of allowed system calls. + * Mode 2 allows user-defined system call filters in the form + * of Berkeley Packet Filters/Linux Socket Filters. */ -#include -#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include + +#ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER +#include +#endif /* #define SECCOMP_DEBUG 1 */ -#define NR_SECCOMP_MODES 1 + +#ifdef CONFIG_SECCOMP_FILTER +/** + * struct seccomp_filter - container for seccomp BPF programs + * + * @usage: reference count to manage the object liftime. + * get/put helpers should be used when accessing an instance + * outside of a lifetime-guarded section. In general, this + * is only needed for handling filters shared across tasks. + * @prev: points to a previously installed, or inherited, filter + * @len: the number of instructions in the program + * @insns: the BPF program instructions to evaluate + * + * seccomp_filter objects are organized in a tree linked via the @prev + * pointer. For any task, it appears to be a singly-linked list starting + * with current->seccomp.filter, the most recently attached or inherited filter. + * However, multiple filters may share a @prev node, by way of fork(), which + * results in a unidirectional tree existing in memory. This is similar to + * how namespaces work. + * + * seccomp_filter objects should never be modified after being attached + * to a task_struct (other than @usage). + */ +struct seccomp_filter { + atomic_t usage; + struct seccomp_filter *prev; + unsigned short len; /* Instruction count */ + struct sock_filter insns[]; +}; + +/* Limit any path through the tree to 256KB worth of instructions. */ +#define MAX_INSNS_PER_PATH ((1 << 18) / sizeof(struct sock_filter)) + +/** + * get_u32 - returns a u32 offset into data + * @data: a unsigned 64 bit value + * @index: 0 or 1 to return the first or second 32-bits + * + * This inline exists to hide the length of unsigned long. + * If a 32-bit unsigned long is passed in, it will be extended + * and the top 32-bits will be 0. If it is a 64-bit unsigned + * long, then whatever data is resident will be properly returned. + */ +static inline u32 get_u32(u64 data, int index) +{ + return ((u32 *)&data)[index]; +} + +/* Helper for bpf_load below. */ +#define BPF_DATA(_name) offsetof(struct seccomp_data, _name) +/** + * bpf_load: checks and returns a pointer to the requested offset + * @off: offset into struct seccomp_data to load from + * + * Returns the requested 32-bits of data. + * seccomp_chk_filter() should assure that @off is 32-bit aligned + * and not out of bounds. Failure to do so is a BUG. + */ +u32 seccomp_bpf_load(int off) +{ + struct pt_regs *regs = task_pt_regs(current); + if (off == BPF_DATA(nr)) + return syscall_get_nr(current, regs); + if (off == BPF_DATA(arch)) + return syscall_get_arch(current, regs); + if (off >= BPF_DATA(args[0]) && off < BPF_DATA(args[6])) { + unsigned long value; + int arg = (off - BPF_DATA(args[0])) / sizeof(u64); + int index = !!(off % sizeof(u64)); + syscall_get_arguments(current, regs, arg, 1, &value); + return get_u32(value, index); + } + if (off == BPF_DATA(instruction_pointer)) + return get_u32(KSTK_EIP(current), 0); + if (off == BPF_DATA(instruction_pointer) + sizeof(u32)) + return get_u32(KSTK_EIP(current), 1); + /* seccomp_chk_filter should make this impossible. */ + BUG(); +} + +/** + * seccomp_chk_filter - verify seccomp filter code + * @filter: filter to verify + * @flen: length of filter + * + * Takes a previously checked filter (by sk_chk_filter) and + * redirects all filter code that loads struct sk_buff data + * and related data through seccomp_bpf_load. It also + * enforces length and alignment checking of those loads. + * + * Returns 0 if the rule set is legal or -EINVAL if not. + */ +static int seccomp_chk_filter(struct sock_filter *filter, unsigned int flen) +{ + int pc; + for (pc = 0; pc < flen; pc++) { + struct sock_filter *ftest = &filter[pc]; + u16 code = ftest->code; + u32 k = ftest->k; + switch (code) { + case BPF_S_LD_W_ABS: + ftest->code = BPF_S_ANC_SECCOMP_LD_W; + /* 32-bit aligned and not out of bounds. */ + if (k >= sizeof(struct seccomp_data) || k & 3) + return -EINVAL; + continue; + case BPF_S_LD_W_LEN: + ftest->code = BPF_S_LD_IMM; + ftest->k = sizeof(struct seccomp_data); + continue; + case BPF_S_LDX_W_LEN: + ftest->code = BPF_S_LDX_IMM; + ftest->k = sizeof(struct seccomp_data); + continue; + /* Explicitly include allowed calls. */ + case BPF_S_RET_K: + case BPF_S_RET_A: + case BPF_S_ALU_ADD_K: + case BPF_S_ALU_ADD_X: + case BPF_S_ALU_SUB_K: + case BPF_S_ALU_SUB_X: + case BPF_S_ALU_MUL_K: + case BPF_S_ALU_MUL_X: + case BPF_S_ALU_DIV_X: + case BPF_S_ALU_AND_K: + case BPF_S_ALU_AND_X: + case BPF_S_ALU_OR_K: + case BPF_S_ALU_OR_X: + case BPF_S_ALU_LSH_K: + case BPF_S_ALU_LSH_X: + case BPF_S_ALU_RSH_K: + case BPF_S_ALU_RSH_X: + case BPF_S_ALU_NEG: + case BPF_S_LD_IMM: + case BPF_S_LDX_IMM: + case BPF_S_MISC_TAX: + case BPF_S_MISC_TXA: + case BPF_S_ALU_DIV_K: + case BPF_S_LD_MEM: + case BPF_S_LDX_MEM: + case BPF_S_ST: + case BPF_S_STX: + case BPF_S_JMP_JA: + case BPF_S_JMP_JEQ_K: + case BPF_S_JMP_JEQ_X: + case BPF_S_JMP_JGE_K: + case BPF_S_JMP_JGE_X: + case BPF_S_JMP_JGT_K: + case BPF_S_JMP_JGT_X: + case BPF_S_JMP_JSET_K: + case BPF_S_JMP_JSET_X: + continue; + default: + return -EINVAL; + } + } + return 0; +} + +/** + * seccomp_run_filters - evaluates all seccomp filters against @syscall + * @syscall: number of the current system call + * + * Returns valid seccomp BPF response codes. + */ +static u32 seccomp_run_filters(int syscall) +{ + struct seccomp_filter *f; + u32 ret = SECCOMP_RET_ALLOW; + + /* Ensure unexpected behavior doesn't result in failing open. */ + if (WARN_ON(current->seccomp.filter == NULL)) + return SECCOMP_RET_KILL; + + /* + * All filters are evaluated in order of youngest to oldest. The lowest + * BPF return value (ignoring the DATA) always takes priority. + */ + for (f = current->seccomp.filter; f; f = f->prev) { + u32 cur_ret = sk_run_filter(NULL, f->insns); + if ((cur_ret & SECCOMP_RET_ACTION) < (ret & SECCOMP_RET_ACTION)) + ret = cur_ret; + } + return ret; +} + +/** + * seccomp_attach_filter: Attaches a seccomp filter to current. + * @fprog: BPF program to install + * + * Returns 0 on success or an errno on failure. + */ +static long seccomp_attach_filter(struct sock_fprog *fprog) +{ + struct seccomp_filter *filter; + unsigned long fp_size = fprog->len * sizeof(struct sock_filter); + unsigned long total_insns = fprog->len; + long ret; + + if (fprog->len == 0 || fprog->len > BPF_MAXINSNS) + return -EINVAL; + + for (filter = current->seccomp.filter; filter; filter = filter->prev) + total_insns += filter->len + 4; /* include a 4 instr penalty */ + if (total_insns > MAX_INSNS_PER_PATH) + return -ENOMEM; + + /* + * Installing a seccomp filter requires that the task have + * CAP_SYS_ADMIN in its namespace or be running with no_new_privs. + * This avoids scenarios where unprivileged tasks can affect the + * behavior of privileged children. + */ + if (!current->no_new_privs && + security_real_capable_noaudit(current, current_user_ns(), + CAP_SYS_ADMIN) != 0) + return -EACCES; + + /* Allocate a new seccomp_filter */ + filter = kzalloc(sizeof(struct seccomp_filter) + fp_size, GFP_KERNEL); + if (!filter) + return -ENOMEM; + atomic_set(&filter->usage, 1); + filter->len = fprog->len; + + /* Copy the instructions from fprog. */ + ret = -EFAULT; + if (copy_from_user(filter->insns, fprog->filter, fp_size)) + goto fail; + + /* Check and rewrite the fprog via the skb checker */ + ret = sk_chk_filter(filter->insns, filter->len); + if (ret) + goto fail; + + /* Check and rewrite the fprog for seccomp use */ + ret = seccomp_chk_filter(filter->insns, filter->len); + if (ret) + goto fail; + + /* + * If there is an existing filter, make it the prev and don't drop its + * task reference. + */ + filter->prev = current->seccomp.filter; + current->seccomp.filter = filter; + return 0; +fail: + kfree(filter); + return ret; +} + +/** + * seccomp_attach_user_filter - attaches a user-supplied sock_fprog + * @user_filter: pointer to the user data containing a sock_fprog. + * + * Returns 0 on success and non-zero otherwise. + */ +long seccomp_attach_user_filter(char __user *user_filter) +{ + struct sock_fprog fprog; + long ret = -EFAULT; + +#ifdef CONFIG_COMPAT + if (is_compat_task()) { + struct compat_sock_fprog fprog32; + if (copy_from_user(&fprog32, user_filter, sizeof(fprog32))) + goto out; + fprog.len = fprog32.len; + fprog.filter = compat_ptr(fprog32.filter); + } else /* falls through to the if below. */ +#endif + if (copy_from_user(&fprog, user_filter, sizeof(fprog))) + goto out; + ret = seccomp_attach_filter(&fprog); +out: + return ret; +} + +/* get_seccomp_filter - increments the reference count of the filter on @tsk */ +void get_seccomp_filter(struct task_struct *tsk) +{ + struct seccomp_filter *orig = tsk->seccomp.filter; + if (!orig) + return; + /* Reference count is bounded by the number of total processes. */ + atomic_inc(&orig->usage); +} + +/* put_seccomp_filter - decrements the ref count of tsk->seccomp.filter */ +void put_seccomp_filter(struct task_struct *tsk) +{ + struct seccomp_filter *orig = tsk->seccomp.filter; + /* Clean up single-reference branches iteratively. */ + while (orig && atomic_dec_and_test(&orig->usage)) { + struct seccomp_filter *freeme = orig; + orig = orig->prev; + kfree(freeme); + } +} + +/** + * seccomp_send_sigsys - signals the task to allow in-process syscall emulation + * @syscall: syscall number to send to userland + * @reason: filter-supplied reason code to send to userland (via si_errno) + * + * Forces a SIGSYS with a code of SYS_SECCOMP and related sigsys info. + */ +static void seccomp_send_sigsys(int syscall, int reason) +{ + struct siginfo info; + memset(&info, 0, sizeof(info)); + info.si_signo = SIGSYS; + info.si_code = SYS_SECCOMP; + info.si_call_addr = (void __user *)KSTK_EIP(current); + info.si_errno = reason; + info.si_arch = syscall_get_arch(current, task_pt_regs(current)); + info.si_syscall = syscall; + force_sig_info(SIGSYS, &info, current); +} +#endif /* CONFIG_SECCOMP_FILTER */ /* * Secure computing mode 1 allows only read/write/exit/sigreturn. @@ -32,11 +370,21 @@ void __secure_computing(int this_syscall) { + /* Filter calls should never use this function. */ + BUG_ON(current->seccomp.mode == SECCOMP_MODE_FILTER); + __secure_computing_int(this_syscall); +} + +int __secure_computing_int(int this_syscall) +{ int mode = current->seccomp.mode; - int * syscall; + int exit_sig = 0; + int *syscall; + u32 ret = SECCOMP_RET_KILL; + int data; switch (mode) { - case 1: + case SECCOMP_MODE_STRICT: syscall = mode1_syscalls; #ifdef CONFIG_COMPAT if (is_compat_task()) @@ -44,9 +392,44 @@ #endif do { if (*syscall == this_syscall) - return; + return 0; } while (*++syscall); + exit_sig = SIGKILL; + break; +#ifdef CONFIG_SECCOMP_FILTER + case SECCOMP_MODE_FILTER: + ret = seccomp_run_filters(this_syscall); + data = ret & SECCOMP_RET_DATA; + switch (ret & SECCOMP_RET_ACTION) { + case SECCOMP_RET_ERRNO: + /* Set the low-order 16-bits as a errno. */ + syscall_set_return_value(current, task_pt_regs(current), + -data, 0); + goto skip; + case SECCOMP_RET_TRAP: + /* Show the handler the original registers. */ + syscall_rollback(current, task_pt_regs(current)); + /* Let the filter pass back 16 bits of data. */ + seccomp_send_sigsys(this_syscall, data); + goto skip; + case SECCOMP_RET_TRACE: + /* Skip these calls if there is no tracer. */ + if (!ptrace_event_enabled(current, PTRACE_EVENT_SECCOMP)) + goto skip; + /* Allow the BPF to provide the event message */ + ptrace_event(PTRACE_EVENT_SECCOMP, data); + if (fatal_signal_pending(current)) + break; + return 0; + case SECCOMP_RET_ALLOW: + return 0; + case SECCOMP_RET_KILL: + default: + break; + } + exit_sig = SIGSYS; break; +#endif default: BUG(); } @@ -54,7 +437,11 @@ #ifdef SECCOMP_DEBUG dump_stack(); #endif - do_exit(SIGKILL); + __audit_seccomp(this_syscall, exit_sig, ret); + do_exit(exit_sig); +skip: + audit_seccomp(this_syscall, exit_sig, ret); + return -1; } long prctl_get_seccomp(void) @@ -62,25 +449,48 @@ return current->seccomp.mode; } -long prctl_set_seccomp(unsigned long seccomp_mode) +/** + * prctl_set_seccomp: configures current->seccomp.mode + * @seccomp_mode: requested mode to use + * @filter: optional struct sock_fprog for use with SECCOMP_MODE_FILTER + * + * This function may be called repeatedly with a @seccomp_mode of + * SECCOMP_MODE_FILTER to install additional filters. Every filter + * successfully installed will be evaluated (in reverse order) for each system + * call the task makes. + * + * Once current->seccomp.mode is non-zero, it may not be changed. + * + * Returns 0 on success or -EINVAL on failure. + */ +long prctl_set_seccomp(unsigned long seccomp_mode, char __user *filter) { - long ret; + long ret = -EINVAL; - /* can set it only once to be even more secure */ - ret = -EPERM; - if (unlikely(current->seccomp.mode)) + if (current->seccomp.mode && + current->seccomp.mode != seccomp_mode) goto out; - ret = -EINVAL; - if (seccomp_mode && seccomp_mode <= NR_SECCOMP_MODES) { - current->seccomp.mode = seccomp_mode; - set_thread_flag(TIF_SECCOMP); + switch (seccomp_mode) { + case SECCOMP_MODE_STRICT: + ret = 0; #ifdef TIF_NOTSC disable_TSC(); #endif - ret = 0; + break; +#ifdef CONFIG_SECCOMP_FILTER + case SECCOMP_MODE_FILTER: + ret = seccomp_attach_user_filter(filter); + if (ret) + goto out; + break; +#endif + default: + goto out; } - out: + current->seccomp.mode = seccomp_mode; + set_thread_flag(TIF_SECCOMP); +out: return ret; } --- linux-3.2.0.orig/kernel/posix-cpu-timers.c +++ linux-3.2.0/kernel/posix-cpu-timers.c @@ -1450,8 +1450,10 @@ while (!signal_pending(current)) { if (timer.it.cpu.expires.sched == 0) { /* - * Our timer fired and was reset. + * Our timer fired and was reset, below + * deletion can not fail. */ + posix_cpu_timer_del(&timer); spin_unlock_irq(&timer.it_lock); return 0; } @@ -1469,9 +1471,26 @@ * We were interrupted by a signal. */ sample_to_timespec(which_clock, timer.it.cpu.expires, rqtp); - posix_cpu_timer_set(&timer, 0, &zero_it, it); + error = posix_cpu_timer_set(&timer, 0, &zero_it, it); + if (!error) { + /* + * Timer is now unarmed, deletion can not fail. + */ + posix_cpu_timer_del(&timer); + } spin_unlock_irq(&timer.it_lock); + while (error == TIMER_RETRY) { + /* + * We need to handle case when timer was or is in the + * middle of firing. In other cases we already freed + * resources. + */ + spin_lock_irq(&timer.it_lock); + error = posix_cpu_timer_del(&timer); + spin_unlock_irq(&timer.it_lock); + } + if ((it->it_value.tv_sec | it->it_value.tv_nsec) == 0) { /* * It actually did fire already. --- linux-3.2.0.orig/kernel/kmod.c +++ linux-3.2.0/kernel/kmod.c @@ -58,6 +58,43 @@ */ char modprobe_path[KMOD_PATH_LEN] = "/sbin/modprobe"; +static void free_modprobe_argv(struct subprocess_info *info) +{ + kfree(info->argv[3]); /* check call_modprobe() */ + kfree(info->argv); +} + +static int call_modprobe(char *module_name, int wait) +{ + static char *envp[] = { + "HOME=/", + "TERM=linux", + "PATH=/sbin:/usr/sbin:/bin:/usr/bin", + NULL + }; + + char **argv = kmalloc(sizeof(char *[5]), GFP_KERNEL); + if (!argv) + goto out; + + module_name = kstrdup(module_name, GFP_KERNEL); + if (!module_name) + goto free_argv; + + argv[0] = modprobe_path; + argv[1] = "-q"; + argv[2] = "--"; + argv[3] = module_name; /* check free_modprobe_argv() */ + argv[4] = NULL; + + return call_usermodehelper_fns(modprobe_path, argv, envp, + wait | UMH_KILLABLE, NULL, free_modprobe_argv, NULL); +free_argv: + kfree(argv); +out: + return -ENOMEM; +} + /** * __request_module - try to load a kernel module * @wait: wait (or not) for the operation to complete @@ -79,11 +116,6 @@ char module_name[MODULE_NAME_LEN]; unsigned int max_modprobes; int ret; - char *argv[] = { modprobe_path, "-q", "--", module_name, NULL }; - static char *envp[] = { "HOME=/", - "TERM=linux", - "PATH=/sbin:/usr/sbin:/bin:/usr/bin", - NULL }; static atomic_t kmod_concurrent = ATOMIC_INIT(0); #define MAX_KMOD_CONCURRENT 50 /* Completely arbitrary value - KAO */ static int kmod_loop_msg; @@ -126,9 +158,7 @@ trace_module_request(module_name, wait, _RET_IP_); - ret = call_usermodehelper_fns(modprobe_path, argv, envp, - wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC, - NULL, NULL, NULL); + ret = call_modprobe(module_name, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC); atomic_dec(&kmod_concurrent); return ret; @@ -186,7 +216,7 @@ /* Exec failed? */ fail: sub_info->retval = retval; - do_exit(0); + return 0; } void call_usermodehelper_freeinfo(struct subprocess_info *info) @@ -197,6 +227,19 @@ } EXPORT_SYMBOL(call_usermodehelper_freeinfo); +static void umh_complete(struct subprocess_info *sub_info) +{ + struct completion *comp = xchg(&sub_info->complete, NULL); + /* + * See call_usermodehelper_exec(). If xchg() returns NULL + * we own sub_info, the UMH_KILLABLE caller has gone away. + */ + if (comp) + complete(comp); + else + call_usermodehelper_freeinfo(sub_info); +} + /* Keventd can't block, but this (a child) can. */ static int wait_for_helper(void *data) { @@ -233,7 +276,7 @@ sub_info->retval = ret; } - complete(sub_info->complete); + umh_complete(sub_info); return 0; } @@ -242,7 +285,7 @@ { struct subprocess_info *sub_info = container_of(work, struct subprocess_info, work); - enum umh_wait wait = sub_info->wait; + int wait = sub_info->wait & ~UMH_KILLABLE; pid_t pid; /* CLONE_VFORK: wait until the usermode helper has execve'd @@ -267,7 +310,7 @@ case UMH_WAIT_EXEC: if (pid < 0) sub_info->retval = pid; - complete(sub_info->complete); + umh_complete(sub_info); } } @@ -414,13 +457,17 @@ * asynchronously if wait is not set, and runs as a child of keventd. * (ie. it runs with full root capabilities). */ -int call_usermodehelper_exec(struct subprocess_info *sub_info, - enum umh_wait wait) +int call_usermodehelper_exec(struct subprocess_info *sub_info, int wait) { DECLARE_COMPLETION_ONSTACK(done); int retval = 0; helper_lock(); + if (!sub_info->path) { + retval = -EINVAL; + goto out; + } + if (sub_info->path[0] == '\0') goto out; @@ -435,9 +482,21 @@ queue_work(khelper_wq, &sub_info->work); if (wait == UMH_NO_WAIT) /* task has freed sub_info */ goto unlock; + + if (wait & UMH_KILLABLE) { + retval = wait_for_completion_killable(&done); + if (!retval) + goto wait_done; + + /* umh_complete() will see NULL and free sub_info */ + if (xchg(&sub_info->complete, NULL)) + goto unlock; + /* fallthrough, umh_complete() was already called */ + } + wait_for_completion(&done); +wait_done: retval = sub_info->retval; - out: call_usermodehelper_freeinfo(sub_info); unlock: --- linux-3.2.0.orig/kernel/posix-timers.c +++ linux-3.2.0/kernel/posix-timers.c @@ -639,6 +639,13 @@ { struct k_itimer *timr; + /* + * timer_t could be any type >= int and we want to make sure any + * @timer_id outside positive int range fails lookup. + */ + if ((unsigned long long)timer_id > INT_MAX) + return NULL; + rcu_read_lock(); timr = idr_find(&posix_timers_id, (int)timer_id); if (timr) { --- linux-3.2.0.orig/kernel/workqueue.c +++ linux-3.2.0/kernel/workqueue.c @@ -128,6 +128,7 @@ }; struct work_struct *current_work; /* L: work being processed */ + work_func_t current_func; /* L: current_work's fn */ struct cpu_workqueue_struct *current_cwq; /* L: current_work's cwq */ struct list_head scheduled; /* L: scheduled works */ struct task_struct *task; /* I: worker task */ @@ -253,11 +254,13 @@ struct workqueue_struct *system_nrt_wq __read_mostly; struct workqueue_struct *system_unbound_wq __read_mostly; struct workqueue_struct *system_freezable_wq __read_mostly; +struct workqueue_struct *system_nrt_freezable_wq __read_mostly; EXPORT_SYMBOL_GPL(system_wq); EXPORT_SYMBOL_GPL(system_long_wq); EXPORT_SYMBOL_GPL(system_nrt_wq); EXPORT_SYMBOL_GPL(system_unbound_wq); EXPORT_SYMBOL_GPL(system_freezable_wq); +EXPORT_SYMBOL_GPL(system_nrt_freezable_wq); #define CREATE_TRACE_POINTS #include @@ -841,7 +844,8 @@ struct hlist_node *tmp; hlist_for_each_entry(worker, tmp, bwh, hentry) - if (worker->current_work == work) + if (worker->current_work == work && + worker->current_func == work->func) return worker; return NULL; } @@ -851,9 +855,27 @@ * @gcwq: gcwq of interest * @work: work to find worker for * - * Find a worker which is executing @work on @gcwq. This function is - * identical to __find_worker_executing_work() except that this - * function calculates @bwh itself. + * Find a worker which is executing @work on @gcwq by searching + * @gcwq->busy_hash which is keyed by the address of @work. For a worker + * to match, its current execution should match the address of @work and + * its work function. This is to avoid unwanted dependency between + * unrelated work executions through a work item being recycled while still + * being executed. + * + * This is a bit tricky. A work item may be freed once its execution + * starts and nothing prevents the freed area from being recycled for + * another work item. If the same work item address ends up being reused + * before the original execution finishes, workqueue will identify the + * recycled work item as currently executing and make it wait until the + * current execution finishes, introducing an unwanted dependency. + * + * This function checks the work item address, work function and workqueue + * to avoid false positives. Note that this isn't complete as one may + * construct a work function which can introduce dependency onto itself + * through a recycled work item. Well, if somebody wants to shoot oneself + * in the foot that badly, there's only so much we can do, and if such + * deadlock actually occurs, it should be easy to locate the culprit work + * function. * * CONTEXT: * spin_lock_irq(gcwq->lock). @@ -1144,8 +1166,8 @@ if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) { unsigned int lcpu; - BUG_ON(timer_pending(timer)); - BUG_ON(!list_empty(&work->entry)); + WARN_ON_ONCE(timer_pending(timer)); + WARN_ON_ONCE(!list_empty(&work->entry)); timer_stats_timer_set_start_info(&dwork->timer); @@ -1213,8 +1235,13 @@ } else wake_up_all(&gcwq->trustee_wait); - /* sanity check nr_running */ - WARN_ON_ONCE(gcwq->nr_workers == gcwq->nr_idle && + /* + * Sanity check nr_running. Because trustee releases gcwq->lock + * between setting %WORKER_ROGUE and zapping nr_running, the + * warning may trigger spuriously. Check iff trustee is idle. + */ + WARN_ON_ONCE(gcwq->trustee_state == TRUSTEE_DONE && + gcwq->nr_workers == gcwq->nr_idle && atomic_read(get_gcwq_nr_running(gcwq->cpu))); } @@ -1719,10 +1746,9 @@ *nextp = n; } -static void cwq_activate_first_delayed(struct cpu_workqueue_struct *cwq) +static void cwq_activate_delayed_work(struct work_struct *work) { - struct work_struct *work = list_first_entry(&cwq->delayed_works, - struct work_struct, entry); + struct cpu_workqueue_struct *cwq = get_work_cwq(work); struct list_head *pos = gcwq_determine_ins_pos(cwq->gcwq, cwq); trace_workqueue_activate_work(work); @@ -1731,6 +1757,14 @@ cwq->nr_active++; } +static void cwq_activate_first_delayed(struct cpu_workqueue_struct *cwq) +{ + struct work_struct *work = list_first_entry(&cwq->delayed_works, + struct work_struct, entry); + + cwq_activate_delayed_work(work); +} + /** * cwq_dec_nr_in_flight - decrement cwq's nr_in_flight * @cwq: cwq of interest @@ -1802,7 +1836,6 @@ struct global_cwq *gcwq = cwq->gcwq; struct hlist_head *bwh = busy_worker_head(gcwq, work); bool cpu_intensive = cwq->wq->flags & WQ_CPU_INTENSIVE; - work_func_t f = work->func; int work_color; struct worker *collision; #ifdef CONFIG_LOCKDEP @@ -1831,6 +1864,7 @@ debug_work_deactivate(work); hlist_add_head(&worker->hentry, bwh); worker->current_work = work; + worker->current_func = work->func; worker->current_cwq = cwq; work_color = get_work_color(work); @@ -1862,11 +1896,13 @@ spin_unlock_irq(&gcwq->lock); + smp_wmb(); /* paired with test_and_set_bit(PENDING) */ work_clear_pending(work); + lock_map_acquire_read(&cwq->wq->lockdep_map); lock_map_acquire(&lockdep_map); trace_workqueue_execute_start(work); - f(work); + worker->current_func(work); /* * While we must be careful to not use "work" after this, the trace * point will only record its address. @@ -1876,11 +1912,10 @@ lock_map_release(&cwq->wq->lockdep_map); if (unlikely(in_atomic() || lockdep_depth(current) > 0)) { - printk(KERN_ERR "BUG: workqueue leaked lock or atomic: " - "%s/0x%08x/%d\n", - current->comm, preempt_count(), task_pid_nr(current)); - printk(KERN_ERR " last function: "); - print_symbol("%s\n", (unsigned long)f); + pr_err("BUG: workqueue leaked lock or atomic: %s/0x%08x/%d\n" + " last function: %pf\n", + current->comm, preempt_count(), task_pid_nr(current), + worker->current_func); debug_show_held_locks(current); dump_stack(); } @@ -1894,6 +1929,7 @@ /* we're done with it, release */ hlist_del_init(&worker->hentry); worker->current_work = NULL; + worker->current_func = NULL; worker->current_cwq = NULL; cwq_dec_nr_in_flight(cwq, work_color, false); } @@ -2036,8 +2072,10 @@ repeat: set_current_state(TASK_INTERRUPTIBLE); - if (kthread_should_stop()) + if (kthread_should_stop()) { + __set_current_state(TASK_RUNNING); return 0; + } /* * See whether any cpu is asking for help. Unbounded @@ -2619,6 +2657,18 @@ smp_rmb(); if (gcwq == get_work_gcwq(work)) { debug_work_deactivate(work); + + /* + * A delayed work item cannot be grabbed directly + * because it might have linked NO_COLOR work items + * which, if left on the delayed_list, will confuse + * cwq->nr_active management later on and cause + * stall. Make sure the work item is activated + * before grabbing. + */ + if (*work_data_bits(work) & WORK_STRUCT_DELAYED) + cwq_activate_delayed_work(work); + list_del_init(&work->entry); cwq_dec_nr_in_flight(get_work_cwq(work), get_work_color(work), @@ -3430,14 +3480,17 @@ for_each_busy_worker(worker, i, pos, gcwq) { struct work_struct *rebind_work = &worker->rebind_work; + unsigned long worker_flags = worker->flags; /* * Rebind_work may race with future cpu hotplug * operations. Use a separate flag to mark that - * rebinding is scheduled. + * rebinding is scheduled. The morphing should + * be atomic. */ - worker->flags |= WORKER_REBIND; - worker->flags &= ~WORKER_ROGUE; + worker_flags |= WORKER_REBIND; + worker_flags &= ~WORKER_ROGUE; + ACCESS_ONCE(worker->flags) = worker_flags; /* queue rebind_work, wq doesn't matter, use the default one */ if (test_and_set_bit(WORK_STRUCT_PENDING_BIT, @@ -3579,21 +3632,55 @@ return notifier_from_errno(0); } +/* + * Workqueues should be brought up before normal priority CPU notifiers. + * This will be registered high priority CPU notifier. + */ +static int __devinit workqueue_cpu_up_callback(struct notifier_block *nfb, + unsigned long action, + void *hcpu) +{ + switch (action & ~CPU_TASKS_FROZEN) { + case CPU_UP_PREPARE: + case CPU_UP_CANCELED: + case CPU_DOWN_FAILED: + case CPU_ONLINE: + return workqueue_cpu_callback(nfb, action, hcpu); + } + return NOTIFY_OK; +} + +/* + * Workqueues should be brought down after normal priority CPU notifiers. + * This will be registered as low priority CPU notifier. + */ +static int __devinit workqueue_cpu_down_callback(struct notifier_block *nfb, + unsigned long action, + void *hcpu) +{ + switch (action & ~CPU_TASKS_FROZEN) { + case CPU_DOWN_PREPARE: + case CPU_DYING: + case CPU_POST_DEAD: + return workqueue_cpu_callback(nfb, action, hcpu); + } + return NOTIFY_OK; +} + #ifdef CONFIG_SMP struct work_for_cpu { - struct completion completion; + struct work_struct work; long (*fn)(void *); void *arg; long ret; }; -static int do_work_for_cpu(void *_wfc) +static void work_for_cpu_fn(struct work_struct *work) { - struct work_for_cpu *wfc = _wfc; + struct work_for_cpu *wfc = container_of(work, struct work_for_cpu, work); + wfc->ret = wfc->fn(wfc->arg); - complete(&wfc->completion); - return 0; } /** @@ -3608,19 +3695,11 @@ */ long work_on_cpu(unsigned int cpu, long (*fn)(void *), void *arg) { - struct task_struct *sub_thread; - struct work_for_cpu wfc = { - .completion = COMPLETION_INITIALIZER_ONSTACK(wfc.completion), - .fn = fn, - .arg = arg, - }; + struct work_for_cpu wfc = { .fn = fn, .arg = arg }; - sub_thread = kthread_create(do_work_for_cpu, &wfc, "work_for_cpu"); - if (IS_ERR(sub_thread)) - return PTR_ERR(sub_thread); - kthread_bind(sub_thread, cpu); - wake_up_process(sub_thread); - wait_for_completion(&wfc.completion); + INIT_WORK_ONSTACK(&wfc.work, work_for_cpu_fn); + schedule_work_on(cpu, &wfc.work); + flush_work(&wfc.work); return wfc.ret; } EXPORT_SYMBOL_GPL(work_on_cpu); @@ -3772,7 +3851,8 @@ unsigned int cpu; int i; - cpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE); + cpu_notifier(workqueue_cpu_up_callback, CPU_PRI_WORKQUEUE_UP); + cpu_notifier(workqueue_cpu_down_callback, CPU_PRI_WORKQUEUE_DOWN); /* initialize gcwqs */ for_each_gcwq_cpu(cpu) { @@ -3821,8 +3901,11 @@ WQ_UNBOUND_MAX_ACTIVE); system_freezable_wq = alloc_workqueue("events_freezable", WQ_FREEZABLE, 0); + system_nrt_freezable_wq = alloc_workqueue("events_nrt_freezable", + WQ_NON_REENTRANT | WQ_FREEZABLE, 0); BUG_ON(!system_wq || !system_long_wq || !system_nrt_wq || - !system_unbound_wq || !system_freezable_wq); + !system_unbound_wq || !system_freezable_wq || + !system_nrt_freezable_wq); return 0; } early_initcall(init_workqueues); --- linux-3.2.0.orig/kernel/rcutree.c +++ linux-3.2.0/kernel/rcutree.c @@ -202,13 +202,13 @@ }; #endif /* #ifdef CONFIG_NO_HZ */ -static int blimit = 10; /* Maximum callbacks per rcu_do_batch. */ -static int qhimark = 10000; /* If this many pending, ignore blimit. */ -static int qlowmark = 100; /* Once only this many pending, use blimit. */ - -module_param(blimit, int, 0); -module_param(qhimark, int, 0); -module_param(qlowmark, int, 0); +static long blimit = 10; /* Maximum callbacks per rcu_do_batch. */ +static long qhimark = 10000; /* If this many pending, ignore blimit. */ +static long qlowmark = 100; /* Once only this many pending, use blimit. */ + +module_param(blimit, long, 0); +module_param(qhimark, long, 0); +module_param(qlowmark, long, 0); int rcu_cpu_stall_suppress __read_mostly; module_param(rcu_cpu_stall_suppress, int, 0644); @@ -292,7 +292,9 @@ static int cpu_needs_another_gp(struct rcu_state *rsp, struct rcu_data *rdp) { - return *rdp->nxttail[RCU_DONE_TAIL] && !rcu_gp_in_progress(rsp); + return *rdp->nxttail[RCU_DONE_TAIL + + ACCESS_ONCE(rsp->completed) != rdp->completed] && + !rcu_gp_in_progress(rsp); } /* @@ -1258,7 +1260,7 @@ { unsigned long flags; struct rcu_head *next, *list, **tail; - int bl, count; + long bl, count; /* If no callbacks are ready, just return.*/ if (!cpu_has_callbacks_ready_to_invoke(rdp)) { --- linux-3.2.0.orig/kernel/compat.c +++ linux-3.2.0/kernel/compat.c @@ -320,25 +320,54 @@ #ifdef __ARCH_WANT_SYS_SIGPROCMASK -asmlinkage long compat_sys_sigprocmask(int how, compat_old_sigset_t __user *set, - compat_old_sigset_t __user *oset) +/* + * sys_sigprocmask SIG_SETMASK sets the first (compat) word of the + * blocked set of signals to the supplied signal set + */ +static inline void compat_sig_setmask(sigset_t *blocked, compat_sigset_word set) { - old_sigset_t s; - long ret; - mm_segment_t old_fs; - - if (set && get_user(s, set)) - return -EFAULT; - old_fs = get_fs(); - set_fs(KERNEL_DS); - ret = sys_sigprocmask(how, - set ? (old_sigset_t __user *) &s : NULL, - oset ? (old_sigset_t __user *) &s : NULL); - set_fs(old_fs); - if (ret == 0) - if (oset) - ret = put_user(s, oset); - return ret; + memcpy(blocked->sig, &set, sizeof(set)); +} + +asmlinkage long compat_sys_sigprocmask(int how, + compat_old_sigset_t __user *nset, + compat_old_sigset_t __user *oset) +{ + old_sigset_t old_set, new_set; + sigset_t new_blocked; + + old_set = current->blocked.sig[0]; + + if (nset) { + if (get_user(new_set, nset)) + return -EFAULT; + new_set &= ~(sigmask(SIGKILL) | sigmask(SIGSTOP)); + + new_blocked = current->blocked; + + switch (how) { + case SIG_BLOCK: + sigaddsetmask(&new_blocked, new_set); + break; + case SIG_UNBLOCK: + sigdelsetmask(&new_blocked, new_set); + break; + case SIG_SETMASK: + compat_sig_setmask(&new_blocked, new_set); + break; + default: + return -EINVAL; + } + + set_current_blocked(&new_blocked); + } + + if (oset) { + if (put_user(old_set, oset)) + return -EFAULT; + } + + return 0; } #endif --- linux-3.2.0.orig/kernel/module.c +++ linux-3.2.0/kernel/module.c @@ -2193,15 +2193,17 @@ src = (void *)info->hdr + symsect->sh_offset; nsrc = symsect->sh_size / sizeof(*src); - for (ndst = i = 1; i < nsrc; ++i, ++src) - if (is_core_symbol(src, info->sechdrs, info->hdr->e_shnum)) { - unsigned int j = src->st_name; + for (ndst = i = 0; i < nsrc; i++) { + if (i == 0 || + is_core_symbol(src+i, info->sechdrs, info->hdr->e_shnum)) { + unsigned int j = src[i].st_name; while (!__test_and_set_bit(j, info->strmap) && info->strtab[j]) ++j; ++ndst; } + } /* Append room for core symbols at end of core part. */ info->symoffs = ALIGN(mod->core_size, symsect->sh_addralign ?: 1); @@ -2238,14 +2240,14 @@ mod->core_symtab = dst = mod->module_core + info->symoffs; src = mod->symtab; - *dst = *src; - for (ndst = i = 1; i < mod->num_symtab; ++i, ++src) { - if (!is_core_symbol(src, info->sechdrs, info->hdr->e_shnum)) - continue; - dst[ndst] = *src; - dst[ndst].st_name = bitmap_weight(info->strmap, - dst[ndst].st_name); - ++ndst; + for (ndst = i = 0; i < mod->num_symtab; i++) { + if (i == 0 || + is_core_symbol(src+i, info->sechdrs, info->hdr->e_shnum)) { + dst[ndst] = src[i]; + dst[ndst].st_name = bitmap_weight(info->strmap, + dst[ndst].st_name); + ++ndst; + } } mod->core_num_syms = ndst; @@ -2341,8 +2343,7 @@ return -ENOEXEC; /* Suck in entire file: we'll want most of it. */ - /* vmalloc barfs on "unusual" numbers. Check here */ - if (len > 64 * 1024 * 1024 || (hdr = vmalloc(len)) == NULL) + if ((hdr = vmalloc(len)) == NULL) return -ENOMEM; if (copy_from_user(hdr, umod, len) != 0) { @@ -2660,6 +2661,10 @@ if (strcmp(mod->name, "driverloader") == 0) add_taint_module(mod, TAINT_PROPRIETARY_MODULE); + /* lve claims to be GPL but upstream won't provide source */ + if (strcmp(mod->name, "lve") == 0) + add_taint_module(mod, TAINT_PROPRIETARY_MODULE); + #ifdef CONFIG_MODVERSIONS if ((mod->num_syms && !mod->crcs) || (mod->num_gpl_syms && !mod->gpl_crcs) --- linux-3.2.0.orig/kernel/sched_rt.c +++ linux-3.2.0/kernel/sched_rt.c @@ -384,7 +384,7 @@ static int do_balance_runtime(struct rt_rq *rt_rq) { struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq); - struct root_domain *rd = cpu_rq(smp_processor_id())->rd; + struct root_domain *rd = rq_of_rt_rq(rt_rq)->rd; int i, weight, more = 0; u64 rt_period; @@ -1388,6 +1388,11 @@ if (!next_task) return 0; +#ifdef __ARCH_WANT_INTERRUPTS_ON_CTXSW + if (unlikely(task_running(rq, next_task))) + return 0; +#endif + retry: if (unlikely(next_task == rq->curr)) { WARN_ON(1); --- linux-3.2.0.orig/kernel/audit_watch.c +++ linux-3.2.0/kernel/audit_watch.c @@ -349,7 +349,7 @@ } mutex_unlock(&audit_filter_mutex); - fsnotify_destroy_mark(&parent->mark); + fsnotify_destroy_mark(&parent->mark, audit_watch_group); } /* Get path information necessary for adding watches. */ @@ -475,7 +475,7 @@ if (list_empty(&parent->watches)) { audit_get_parent(parent); - fsnotify_destroy_mark(&parent->mark); + fsnotify_destroy_mark(&parent->mark, audit_watch_group); audit_put_parent(parent); } } --- linux-3.2.0.orig/kernel/signal.c +++ linux-3.2.0/kernel/signal.c @@ -159,7 +159,7 @@ #define SYNCHRONOUS_MASK \ (sigmask(SIGSEGV) | sigmask(SIGBUS) | sigmask(SIGILL) | \ - sigmask(SIGTRAP) | sigmask(SIGFPE)) + sigmask(SIGTRAP) | sigmask(SIGFPE) | sigmask(SIGSYS)) int next_signal(struct sigpending *pending, sigset_t *mask) { @@ -481,6 +481,9 @@ if (force_default || ka->sa.sa_handler != SIG_IGN) ka->sa.sa_handler = SIG_DFL; ka->sa.sa_flags = 0; +#ifdef __ARCH_HAS_SA_RESTORER + ka->sa.sa_restorer = NULL; +#endif sigemptyset(&ka->sa.sa_mask); ka++; } @@ -676,23 +679,17 @@ * No need to set need_resched since signal event passing * goes through ->blocked */ -void signal_wake_up(struct task_struct *t, int resume) +void signal_wake_up_state(struct task_struct *t, unsigned int state) { - unsigned int mask; - set_tsk_thread_flag(t, TIF_SIGPENDING); - /* - * For SIGKILL, we want to wake it up in the stopped/traced/killable + * TASK_WAKEKILL also means wake it up in the stopped/traced/killable * case. We don't check t->state here because there is a race with it * executing another processor and just now entering stopped state. * By using wake_up_state, we ensure the process will wake up and * handle its death signal. */ - mask = TASK_INTERRUPTIBLE; - if (resume) - mask |= TASK_WAKEKILL; - if (!wake_up_state(t, mask)) + if (!wake_up_state(t, state | TASK_INTERRUPTIBLE)) kick_process(t); } @@ -841,7 +838,7 @@ assert_spin_locked(&t->sighand->siglock); task_set_jobctl_pending(t, JOBCTL_TRAP_NOTIFY); - signal_wake_up(t, t->jobctl & JOBCTL_LISTENING); + ptrace_signal_wake_up(t, t->jobctl & JOBCTL_LISTENING); } /* @@ -1610,6 +1607,15 @@ BUG_ON(!tsk->ptrace && (tsk->group_leader != tsk || !thread_group_empty(tsk))); + if (sig != SIGCHLD) { + /* + * This is only possible if parent == real_parent. + * Check if it has changed security domain. + */ + if (tsk->parent_exec_id != tsk->parent->self_exec_id) + sig = SIGCHLD; + } + info.si_signo = sig; info.si_errno = 0; /* @@ -1756,6 +1762,10 @@ * If SIGKILL was already sent before the caller unlocked * ->siglock we must see ->core_state != NULL. Otherwise it * is safe to enter schedule(). + * + * This is almost outdated, a task with the pending SIGKILL can't + * block in TASK_TRACED. But PTRACE_EVENT_EXIT can be reported + * after SIGKILL was already dequeued. */ if (unlikely(current->mm->core_state) && unlikely(current->mm == current->parent->mm)) @@ -1881,6 +1891,7 @@ if (gstop_done) do_notify_parent_cldstop(current, false, why); + /* tasklist protects us from ptrace_freeze_traced() */ __set_current_state(TASK_RUNNING); if (clear_code) current->exit_code = 0; @@ -2620,6 +2631,13 @@ err |= __put_user(from->si_uid, &to->si_uid); err |= __put_user(from->si_ptr, &to->si_ptr); break; +#ifdef __ARCH_SIGSYS + case __SI_SYS: + err |= __put_user(from->si_call_addr, &to->si_call_addr); + err |= __put_user(from->si_syscall, &to->si_syscall); + err |= __put_user(from->si_arch, &to->si_arch); + break; +#endif default: /* this is just in case for now ... */ err |= __put_user(from->si_pid, &to->si_pid); err |= __put_user(from->si_uid, &to->si_uid); @@ -2779,7 +2797,7 @@ static int do_tkill(pid_t tgid, pid_t pid, int sig) { - struct siginfo info; + struct siginfo info = {}; info.si_signo = sig; info.si_errno = 0; --- linux-3.2.0.orig/kernel/futex_compat.c +++ linux-3.2.0/kernel/futex_compat.c @@ -10,6 +10,7 @@ #include #include #include +#include #include @@ -136,40 +137,29 @@ { struct compat_robust_list_head __user *head; unsigned long ret; - const struct cred *cred = current_cred(), *pcred; + struct task_struct *p; if (!futex_cmpxchg_enabled) return -ENOSYS; + rcu_read_lock(); + + ret = -ESRCH; if (!pid) - head = current->compat_robust_list; + p = current; else { - struct task_struct *p; - - ret = -ESRCH; - rcu_read_lock(); p = find_task_by_vpid(pid); if (!p) goto err_unlock; - ret = -EPERM; - pcred = __task_cred(p); - /* If victim is in different user_ns, then uids are not - comparable, so we must have CAP_SYS_PTRACE */ - if (cred->user->user_ns != pcred->user->user_ns) { - if (!ns_capable(pcred->user->user_ns, CAP_SYS_PTRACE)) - goto err_unlock; - goto ok; - } - /* If victim is in same user_ns, then uids are comparable */ - if (cred->euid != pcred->euid && - cred->euid != pcred->uid && - !ns_capable(pcred->user->user_ns, CAP_SYS_PTRACE)) - goto err_unlock; -ok: - head = p->compat_robust_list; - rcu_read_unlock(); } + ret = -EPERM; + if (!ptrace_may_access(p, PTRACE_MODE_READ)) + goto err_unlock; + + head = p->compat_robust_list; + rcu_read_unlock(); + if (put_user(sizeof(*head), len_ptr)) return -EFAULT; return put_user(ptr_to_compat(head), head_ptr); --- linux-3.2.0.orig/kernel/sysctl.c +++ linux-3.2.0/kernel/sysctl.c @@ -166,7 +166,7 @@ #endif #ifdef CONFIG_PRINTK -static int proc_dmesg_restrict(struct ctl_table *table, int write, +static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos); #endif @@ -713,7 +713,7 @@ .data = &dmesg_restrict, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = proc_dointvec_minmax, + .proc_handler = proc_dointvec_minmax_sysadmin, .extra1 = &zero, .extra2 = &one, }, @@ -722,7 +722,7 @@ .data = &kptr_restrict, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = proc_dmesg_restrict, + .proc_handler = proc_dointvec_minmax_sysadmin, .extra1 = &zero, .extra2 = &two, }, @@ -2422,7 +2422,7 @@ } #ifdef CONFIG_PRINTK -static int proc_dmesg_restrict(struct ctl_table *table, int write, +static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos) { if (write && !capable(CAP_SYS_ADMIN)) --- linux-3.2.0.orig/kernel/sched_idletask.c +++ linux-3.2.0/kernel/sched_idletask.c @@ -23,7 +23,6 @@ static struct task_struct *pick_next_task_idle(struct rq *rq) { schedstat_inc(rq, sched_goidle); - calc_load_account_idle(rq); return rq->idle; } --- linux-3.2.0.orig/kernel/cpuset.c +++ linux-3.2.0/kernel/cpuset.c @@ -964,7 +964,6 @@ { bool need_loop; -repeat: /* * Allow tasks that have access to memory reserves because they have * been OOM killed to get memory anywhere. @@ -983,45 +982,19 @@ */ need_loop = task_has_mempolicy(tsk) || !nodes_intersects(*newmems, tsk->mems_allowed); - nodes_or(tsk->mems_allowed, tsk->mems_allowed, *newmems); - mpol_rebind_task(tsk, newmems, MPOL_REBIND_STEP1); - /* - * ensure checking ->mems_allowed_change_disable after setting all new - * allowed nodes. - * - * the read-side task can see an nodemask with new allowed nodes and - * old allowed nodes. and if it allocates page when cpuset clears newly - * disallowed ones continuous, it can see the new allowed bits. - * - * And if setting all new allowed nodes is after the checking, setting - * all new allowed nodes and clearing newly disallowed ones will be done - * continuous, and the read-side task may find no node to alloc page. - */ - smp_mb(); + if (need_loop) + write_seqcount_begin(&tsk->mems_allowed_seq); - /* - * Allocation of memory is very fast, we needn't sleep when waiting - * for the read-side. - */ - while (need_loop && ACCESS_ONCE(tsk->mems_allowed_change_disable)) { - task_unlock(tsk); - if (!task_curr(tsk)) - yield(); - goto repeat; - } - - /* - * ensure checking ->mems_allowed_change_disable before clearing all new - * disallowed nodes. - * - * if clearing newly disallowed bits before the checking, the read-side - * task may find no node to alloc page. - */ - smp_mb(); + nodes_or(tsk->mems_allowed, tsk->mems_allowed, *newmems); + mpol_rebind_task(tsk, newmems, MPOL_REBIND_STEP1); mpol_rebind_task(tsk, newmems, MPOL_REBIND_STEP2); tsk->mems_allowed = *newmems; + + if (need_loop) + write_seqcount_end(&tsk->mems_allowed_seq); + task_unlock(tsk); } @@ -2107,6 +2080,9 @@ * (of no affect) on systems that are actively using CPU hotplug * but making no active use of cpusets. * + * The only exception to this is suspend/resume, where we don't + * modify cpusets at all. + * * This routine ensures that top_cpuset.cpus_allowed tracks * cpu_active_mask on each CPU hotplug (cpuhp) event. * @@ -2531,8 +2507,16 @@ dentry = task_cs(tsk)->css.cgroup->dentry; spin_lock(&cpuset_buffer_lock); - snprintf(cpuset_name, CPUSET_NAME_LEN, - dentry ? (const char *)dentry->d_name.name : "/"); + + if (!dentry) { + strcpy(cpuset_name, "/"); + } else { + spin_lock(&dentry->d_lock); + strlcpy(cpuset_name, (const char *)dentry->d_name.name, + CPUSET_NAME_LEN); + spin_unlock(&dentry->d_lock); + } + nodelist_scnprintf(cpuset_nodelist, CPUSET_NODELIST_LEN, tsk->mems_allowed); printk(KERN_INFO "%s cpuset=%s mems_allowed=%s\n", --- linux-3.2.0.orig/kernel/resource.c +++ linux-3.2.0/kernel/resource.c @@ -757,6 +757,7 @@ struct resource *parent = root; struct resource *conflict; struct resource *res = kzalloc(sizeof(*res), GFP_ATOMIC); + struct resource *next_res = NULL; if (!res) return; @@ -766,21 +767,46 @@ res->end = end; res->flags = IORESOURCE_BUSY; - conflict = __request_resource(parent, res); - if (!conflict) - return; - - /* failed, split and try again */ - kfree(res); + while (1) { - /* conflict covered whole area */ - if (conflict->start <= start && conflict->end >= end) - return; + conflict = __request_resource(parent, res); + if (!conflict) { + if (!next_res) + break; + res = next_res; + next_res = NULL; + continue; + } + + /* conflict covered whole area */ + if (conflict->start <= res->start && + conflict->end >= res->end) { + kfree(res); + WARN_ON(next_res); + break; + } + + /* failed, split and try again */ + if (conflict->start > res->start) { + end = res->end; + res->end = conflict->start - 1; + if (conflict->end < end) { + next_res = kzalloc(sizeof(*next_res), + GFP_ATOMIC); + if (!next_res) { + kfree(res); + break; + } + next_res->name = name; + next_res->start = conflict->end + 1; + next_res->end = end; + next_res->flags = IORESOURCE_BUSY; + } + } else { + res->start = conflict->end + 1; + } + } - if (conflict->start > start) - __reserve_region_with_split(root, start, conflict->start-1, name); - if (conflict->end < end) - __reserve_region_with_split(root, conflict->end+1, end, name); } void __init reserve_region_with_split(struct resource *root, --- linux-3.2.0.orig/kernel/exit.c +++ linux-3.2.0/kernel/exit.c @@ -819,25 +819,6 @@ if (group_dead) kill_orphaned_pgrp(tsk->group_leader, NULL); - /* Let father know we died - * - * Thread signals are configurable, but you aren't going to use - * that to send signals to arbitrary processes. - * That stops right now. - * - * If the parent exec id doesn't match the exec id we saved - * when we started then we know the parent has changed security - * domain. - * - * If our self_exec id doesn't match our parent_exec_id then - * we have changed execution domain as these two values started - * the same after a fork. - */ - if (thread_group_leader(tsk) && tsk->exit_signal != SIGCHLD && - (tsk->parent_exec_id != tsk->real_parent->self_exec_id || - tsk->self_exec_id != tsk->parent_exec_id)) - tsk->exit_signal = SIGCHLD; - if (unlikely(tsk->ptrace)) { int sig = thread_group_leader(tsk) && thread_group_empty(tsk) && @@ -1038,6 +1019,22 @@ preempt_disable(); exit_rcu(); + + /* + * The setting of TASK_RUNNING by try_to_wake_up() may be delayed + * when the following two conditions become true. + * - There is race condition of mmap_sem (It is acquired by + * exit_mm()), and + * - SMI occurs before setting TASK_RUNINNG. + * (or hypervisor of virtual machine switches to other guest) + * As a result, we may become TASK_RUNNING after becoming TASK_DEAD + * + * To avoid it, we have to wait for releasing tsk->pi_lock which + * is held by try_to_wake_up() + */ + smp_mb(); + raw_spin_unlock_wait(&tsk->pi_lock); + /* causes final put_task_struct in finish_task_switch(). */ tsk->state = TASK_DEAD; schedule(); --- linux-3.2.0.orig/kernel/cred.c +++ linux-3.2.0/kernel/cred.c @@ -385,6 +385,8 @@ struct cred *new; int ret; + p->replacement_session_keyring = NULL; + if ( #ifdef CONFIG_KEYS !p->cred->thread_keyring && --- linux-3.2.0.orig/kernel/timer.c +++ linux-3.2.0/kernel/timer.c @@ -63,6 +63,7 @@ #define TVR_SIZE (1 << TVR_BITS) #define TVN_MASK (TVN_SIZE - 1) #define TVR_MASK (TVR_SIZE - 1) +#define MAX_TVAL ((unsigned long)((1ULL << (TVR_BITS + 4*TVN_BITS)) - 1)) struct tvec { struct list_head vec[TVN_SIZE]; @@ -144,9 +145,11 @@ /* now that we have rounded, subtract the extra skew again */ j -= cpu * 3; - if (j <= jiffies) /* rounding ate our timeout entirely; */ - return original; - return j; + /* + * Make sure j is still in the future. Otherwise return the + * unmodified value. + */ + return time_is_after_jiffies(j) ? j : original; } /** @@ -356,11 +359,12 @@ vec = base->tv1.vec + (base->timer_jiffies & TVR_MASK); } else { int i; - /* If the timeout is larger than 0xffffffff on 64-bit - * architectures then we use the maximum timeout: + /* If the timeout is larger than MAX_TVAL (on 64-bit + * architectures or with CONFIG_BASE_SMALL=1) then we + * use the maximum timeout. */ - if (idx > 0xffffffffUL) { - idx = 0xffffffffUL; + if (idx > MAX_TVAL) { + idx = MAX_TVAL; expires = idx + base->timer_jiffies; } i = (expires >> (TVR_BITS + 3 * TVN_BITS)) & TVN_MASK; @@ -1628,12 +1632,12 @@ boot_done = 1; base = &boot_tvec_bases; } + spin_lock_init(&base->lock); tvec_base_done[cpu] = 1; } else { base = per_cpu(tvec_bases, cpu); } - spin_lock_init(&base->lock); for (j = 0; j < TVN_SIZE; j++) { INIT_LIST_HEAD(base->tv5.vec + j); --- linux-3.2.0.orig/kernel/kexec.c +++ linux-3.2.0/kernel/kexec.c @@ -32,7 +32,6 @@ #include #include #include -#include #include #include @@ -949,6 +948,11 @@ if (!capable(CAP_SYS_BOOT)) return -EPERM; + /* Processes in containers must not be allowed to load a new + * kernel, even if they have CAP_SYS_BOOT */ + if (task_active_pid_ns(current) != &init_pid_ns) + return -EPERM; + /* * Verify we have a legal set of flags * This leaves us room for future extensions. @@ -1094,8 +1098,6 @@ if (kexec_crash_image) { struct pt_regs fixed_regs; - kmsg_dump(KMSG_DUMP_KEXEC); - crash_setup_regs(&fixed_regs, regs); crash_save_vmcoreinfo(); machine_crash_shutdown(&fixed_regs); --- linux-3.2.0.orig/kernel/sched_stoptask.c +++ linux-3.2.0/kernel/sched_stoptask.c @@ -25,8 +25,10 @@ { struct task_struct *stop = rq->stop; - if (stop && stop->on_rq) + if (stop && stop->on_rq) { + stop->se.exec_start = rq->clock_task; return stop; + } return NULL; } @@ -50,6 +52,21 @@ static void put_prev_task_stop(struct rq *rq, struct task_struct *prev) { + struct task_struct *curr = rq->curr; + u64 delta_exec; + + delta_exec = rq->clock_task - curr->se.exec_start; + if (unlikely((s64)delta_exec < 0)) + delta_exec = 0; + + schedstat_set(curr->se.statistics.exec_max, + max(curr->se.statistics.exec_max, delta_exec)); + + curr->se.sum_exec_runtime += delta_exec; + account_group_exec_runtime(curr, delta_exec); + + curr->se.exec_start = rq->clock_task; + cpuacct_charge(curr, delta_exec); } static void task_tick_stop(struct rq *rq, struct task_struct *curr, int queued) @@ -58,6 +75,9 @@ static void set_curr_task_stop(struct rq *rq) { + struct task_struct *stop = rq->stop; + + stop->se.exec_start = rq->clock_task; } static void switched_to_stop(struct rq *rq, struct task_struct *p) --- linux-3.2.0.orig/kernel/async.c +++ linux-3.2.0/kernel/async.c @@ -88,6 +88,13 @@ { struct async_entry *entry; + if (!running) { /* just check the entry count */ + if (atomic_read(&entry_count)) + return 0; /* smaller than any cookie */ + else + return next_cookie; + } + if (!list_empty(running)) { entry = list_first_entry(running, struct async_entry, list); @@ -238,9 +245,7 @@ */ void async_synchronize_full(void) { - do { - async_synchronize_cookie(next_cookie); - } while (!list_empty(&async_running) || !list_empty(&async_pending)); + async_synchronize_cookie_domain(next_cookie, NULL); } EXPORT_SYMBOL_GPL(async_synchronize_full); @@ -260,7 +265,7 @@ /** * async_synchronize_cookie_domain - synchronize asynchronous function calls within a certain domain with cookie checkpointing * @cookie: async_cookie_t to use as checkpoint - * @running: running list to synchronize on + * @running: running list to synchronize on, NULL indicates all lists * * This function waits until all asynchronous function calls for the * synchronization domain specified by the running list @list submitted --- linux-3.2.0.orig/kernel/sched_fair.c +++ linux-3.2.0/kernel/sched_fair.c @@ -4735,7 +4735,7 @@ raw_spin_lock_irq(&this_rq->lock); update_rq_clock(this_rq); - update_cpu_load(this_rq); + update_idle_cpu_load(this_rq); raw_spin_unlock_irq(&this_rq->lock); rebalance_domains(balance_cpu, CPU_IDLE); --- linux-3.2.0.orig/kernel/ptrace.c +++ linux-3.2.0/kernel/ptrace.c @@ -117,11 +117,45 @@ * TASK_KILLABLE sleeps. */ if (child->jobctl & JOBCTL_STOP_PENDING || task_is_traced(child)) - signal_wake_up(child, task_is_traced(child)); + ptrace_signal_wake_up(child, true); spin_unlock(&child->sighand->siglock); } +/* Ensure that nothing can wake it up, even SIGKILL */ +static bool ptrace_freeze_traced(struct task_struct *task) +{ + bool ret = false; + + /* Lockless, nobody but us can set this flag */ + if (task->jobctl & JOBCTL_LISTENING) + return ret; + + spin_lock_irq(&task->sighand->siglock); + if (task_is_traced(task) && !__fatal_signal_pending(task)) { + task->state = __TASK_TRACED; + ret = true; + } + spin_unlock_irq(&task->sighand->siglock); + + return ret; +} + +static void ptrace_unfreeze_traced(struct task_struct *task) +{ + if (task->state != __TASK_TRACED) + return; + + WARN_ON(!task->ptrace || task->parent != current); + + spin_lock_irq(&task->sighand->siglock); + if (__fatal_signal_pending(task)) + wake_up_state(task, __TASK_TRACED); + else + task->state = TASK_TRACED; + spin_unlock_irq(&task->sighand->siglock); +} + /** * ptrace_check_attach - check whether ptracee is ready for ptrace operation * @child: ptracee to check for @@ -151,24 +185,29 @@ * be changed by us so it's not changing right after this. */ read_lock(&tasklist_lock); - if ((child->ptrace & PT_PTRACED) && child->parent == current) { + if (child->ptrace && child->parent == current) { + WARN_ON(child->state == __TASK_TRACED); /* * child->sighand can't be NULL, release_task() * does ptrace_unlink() before __exit_signal(). */ - spin_lock_irq(&child->sighand->siglock); - WARN_ON_ONCE(task_is_stopped(child)); - if (ignore_state || (task_is_traced(child) && - !(child->jobctl & JOBCTL_LISTENING))) + if (ignore_state || ptrace_freeze_traced(child)) ret = 0; - spin_unlock_irq(&child->sighand->siglock); } read_unlock(&tasklist_lock); - if (!ret && !ignore_state) - ret = wait_task_inactive(child, TASK_TRACED) ? 0 : -ESRCH; + if (!ret && !ignore_state) { + if (!wait_task_inactive(child, __TASK_TRACED)) { + /* + * This can only happen if may_ptrace_stop() fails and + * ptrace_stop() changes ->state back to TASK_RUNNING, + * so we should not worry about leaking __TASK_TRACED. + */ + WARN_ON(child->state == __TASK_TRACED); + ret = -ESRCH; + } + } - /* All systems go.. */ return ret; } @@ -307,7 +346,7 @@ */ if (task_is_stopped(task) && task_set_jobctl_pending(task, JOBCTL_TRAP_STOP | JOBCTL_TRAPPING)) - signal_wake_up(task, 1); + signal_wake_up_state(task, __TASK_STOPPED); spin_unlock(&task->sighand->siglock); @@ -543,6 +582,9 @@ if (data & PTRACE_O_TRACEEXIT) child->ptrace |= PT_TRACE_EXIT; + if (data & PTRACE_O_TRACESECCOMP) + child->ptrace |= PT_TRACE_SECCOMP; + return (data & ~PTRACE_O_MASK) ? -EINVAL : 0; } @@ -736,7 +778,7 @@ * tracee into STOP. */ if (likely(task_set_jobctl_pending(child, JOBCTL_TRAP_STOP))) - signal_wake_up(child, child->jobctl & JOBCTL_LISTENING); + ptrace_signal_wake_up(child, child->jobctl & JOBCTL_LISTENING); unlock_task_sighand(child, &flags); ret = 0; @@ -762,7 +804,7 @@ * start of this trap and now. Trigger re-trap. */ if (child->jobctl & JOBCTL_TRAP_NOTIFY) - signal_wake_up(child, true); + ptrace_signal_wake_up(child, true); ret = 0; } unlock_task_sighand(child, &flags); @@ -899,6 +941,8 @@ goto out_put_task_struct; ret = arch_ptrace(child, request, addr, data); + if (ret || request != PTRACE_DETACH) + ptrace_unfreeze_traced(child); out_put_task_struct: put_task_struct(child); @@ -1038,8 +1082,11 @@ ret = ptrace_check_attach(child, request == PTRACE_KILL || request == PTRACE_INTERRUPT); - if (!ret) + if (!ret) { ret = compat_arch_ptrace(child, request, addr, data); + if (ret || request != PTRACE_DETACH) + ptrace_unfreeze_traced(child); + } out_put_task_struct: put_task_struct(child); --- linux-3.2.0.orig/kernel/kprobes.c +++ linux-3.2.0/kernel/kprobes.c @@ -1077,6 +1077,7 @@ /* Early boot. kretprobe_table_locks not yet initialized. */ return; + INIT_HLIST_HEAD(&empty_rp); hash = hash_ptr(tk, KPROBE_HASH_BITS); head = &kretprobe_inst_table[hash]; kretprobe_table_lock(hash, &flags); @@ -1085,7 +1086,6 @@ recycle_rp_inst(ri, &empty_rp); } kretprobe_table_unlock(hash, &flags); - INIT_HLIST_HEAD(&empty_rp); hlist_for_each_entry_safe(ri, node, tmp, &empty_rp, hlist) { hlist_del(&ri->hlist); kfree(ri); @@ -1334,8 +1334,10 @@ if (!kernel_text_address((unsigned long) p->addr) || in_kprobes_functions((unsigned long) p->addr) || ftrace_text_reserved(p->addr, p->addr) || - jump_label_text_reserved(p->addr, p->addr)) - goto fail_with_jump_label; + jump_label_text_reserved(p->addr, p->addr)) { + ret = -EINVAL; + goto cannot_probe; + } /* User can pass only KPROBE_FLAG_DISABLED to register_kprobe */ p->flags &= KPROBE_FLAG_DISABLED; @@ -1352,7 +1354,7 @@ * its code to prohibit unexpected unloading. */ if (unlikely(!try_module_get(probed_mod))) - goto fail_with_jump_label; + goto cannot_probe; /* * If the module freed .init.text, we couldn't insert @@ -1361,7 +1363,7 @@ if (within_module_init((unsigned long)p->addr, probed_mod) && probed_mod->state != MODULE_STATE_COMING) { module_put(probed_mod); - goto fail_with_jump_label; + goto cannot_probe; } /* ret will be updated by following code */ } @@ -1409,7 +1411,7 @@ return ret; -fail_with_jump_label: +cannot_probe: preempt_enable(); jump_label_unlock(); return ret; @@ -1673,8 +1675,12 @@ ri->rp = rp; ri->task = current; - if (rp->entry_handler && rp->entry_handler(ri, regs)) + if (rp->entry_handler && rp->entry_handler(ri, regs)) { + raw_spin_lock_irqsave(&rp->lock, flags); + hlist_add_head(&ri->hlist, &rp->free_instances); + raw_spin_unlock_irqrestore(&rp->lock, flags); return 0; + } arch_prepare_kretprobe(ri, regs); --- linux-3.2.0.orig/kernel/tracepoint.c +++ linux-3.2.0/kernel/tracepoint.c @@ -634,10 +634,11 @@ int ret = 0; /* - * We skip modules that tain the kernel, especially those with different - * module header (for forced load), to make sure we don't cause a crash. + * We skip modules that taint the kernel, especially those with different + * module headers (for forced load), to make sure we don't cause a crash. + * Staging and out-of-tree GPL modules are fine. */ - if (mod->taints) + if (mod->taints & ~((1 << TAINT_OOT_MODULE) | (1 << TAINT_CRAP))) return 0; mutex_lock(&tracepoints_mutex); tp_mod = kmalloc(sizeof(struct tp_module), GFP_KERNEL); --- linux-3.2.0.orig/kernel/audit_tree.c +++ linux-3.2.0/kernel/audit_tree.c @@ -249,8 +249,7 @@ list_del_rcu(&chunk->hash); spin_unlock(&hash_lock); spin_unlock(&entry->lock); - fsnotify_destroy_mark(entry); - fsnotify_put_mark(entry); + fsnotify_destroy_mark(entry, audit_tree_group); goto out; } @@ -259,7 +258,7 @@ fsnotify_duplicate_mark(&new->mark, entry); if (fsnotify_add_mark(&new->mark, new->mark.group, new->mark.i.inode, NULL, 1)) { - free_chunk(new); + fsnotify_put_mark(&new->mark); goto Fallback; } @@ -292,8 +291,8 @@ owner->root = new; spin_unlock(&hash_lock); spin_unlock(&entry->lock); - fsnotify_destroy_mark(entry); - fsnotify_put_mark(entry); + fsnotify_destroy_mark(entry, audit_tree_group); + fsnotify_put_mark(&new->mark); /* drop initial reference */ goto out; Fallback: @@ -322,7 +321,7 @@ entry = &chunk->mark; if (fsnotify_add_mark(entry, audit_tree_group, inode, NULL, 0)) { - free_chunk(chunk); + fsnotify_put_mark(entry); return -ENOSPC; } @@ -332,7 +331,7 @@ spin_unlock(&hash_lock); chunk->dead = 1; spin_unlock(&entry->lock); - fsnotify_destroy_mark(entry); + fsnotify_destroy_mark(entry, audit_tree_group); fsnotify_put_mark(entry); return 0; } @@ -347,6 +346,7 @@ insert_hash(chunk); spin_unlock(&hash_lock); spin_unlock(&entry->lock); + fsnotify_put_mark(entry); /* drop initial reference */ return 0; } @@ -396,7 +396,7 @@ fsnotify_duplicate_mark(chunk_entry, old_entry); if (fsnotify_add_mark(chunk_entry, chunk_entry->group, chunk_entry->i.inode, NULL, 1)) { spin_unlock(&old_entry->lock); - free_chunk(chunk); + fsnotify_put_mark(chunk_entry); fsnotify_put_mark(old_entry); return -ENOSPC; } @@ -412,7 +412,7 @@ spin_unlock(&chunk_entry->lock); spin_unlock(&old_entry->lock); - fsnotify_destroy_mark(chunk_entry); + fsnotify_destroy_mark(chunk_entry, audit_tree_group); fsnotify_put_mark(chunk_entry); fsnotify_put_mark(old_entry); @@ -443,9 +443,9 @@ spin_unlock(&hash_lock); spin_unlock(&chunk_entry->lock); spin_unlock(&old_entry->lock); - fsnotify_destroy_mark(old_entry); + fsnotify_destroy_mark(old_entry, audit_tree_group); + fsnotify_put_mark(chunk_entry); /* drop initial reference */ fsnotify_put_mark(old_entry); /* pair to fsnotify_find mark_entry */ - fsnotify_put_mark(old_entry); /* and kill it */ return 0; } @@ -609,9 +609,9 @@ } spin_unlock(&hash_lock); trim_marked(tree); - put_tree(tree); drop_collected_mounts(root_mnt); skip_it: + put_tree(tree); mutex_lock(&audit_filter_mutex); } list_del(&cursor); @@ -916,7 +916,12 @@ struct audit_chunk *chunk = container_of(entry, struct audit_chunk, mark); evict_chunk(chunk); - fsnotify_put_mark(entry); + + /* + * We are guaranteed to have at least one reference to the mark from + * either the inode or the caller of fsnotify_destroy_mark(). + */ + BUG_ON(atomic_read(&entry->refcnt) < 1); } static bool audit_tree_send_event(struct fsnotify_group *group, struct inode *inode, --- linux-3.2.0.orig/kernel/timeconst.pl +++ linux-3.2.0/kernel/timeconst.pl @@ -369,10 +369,8 @@ die "Usage: $0 HZ\n"; } - @val = @{$canned_values{$hz}}; - if (!defined(@val)) { - @val = compute_values($hz); - } + $cv = $canned_values{$hz}; + @val = defined($cv) ? @$cv : compute_values($hz); output($hz, @val); } exit 0; --- linux-3.2.0.orig/kernel/pid_namespace.c +++ linux-3.2.0/kernel/pid_namespace.c @@ -15,6 +15,7 @@ #include #include #include +#include #define BITS_PER_PAGE (PAGE_SIZE*8) @@ -187,10 +188,42 @@ rc = sys_wait4(-1, NULL, __WALL, NULL); } while (rc != -ECHILD); + if (pid_ns->reboot) + current->signal->group_exit_code = pid_ns->reboot; + acct_exit_ns(pid_ns); return; } +int reboot_pid_ns(struct pid_namespace *pid_ns, int cmd) +{ + if (pid_ns == &init_pid_ns) + return 0; + + switch(cmd) { + case LINUX_REBOOT_CMD_RESTART2: + case LINUX_REBOOT_CMD_RESTART: + pid_ns->reboot = SIGHUP; + break; + + case LINUX_REBOOT_CMD_POWER_OFF: + case LINUX_REBOOT_CMD_HALT: + pid_ns->reboot = SIGINT; + break; + default: + return -EINVAL; + } + + read_lock(&tasklist_lock); + force_sig(SIGKILL, pid_ns->child_reaper); + read_unlock(&tasklist_lock); + + do_exit(0); + + /* Not reached */ + return 0; +} + static __init int pid_namespaces_init(void) { pid_ns_cachep = KMEM_CACHE(pid_namespace, SLAB_PANIC); --- linux-3.2.0.orig/kernel/cgroup_freezer.c +++ linux-3.2.0/kernel/cgroup_freezer.c @@ -197,23 +197,15 @@ { struct freezer *freezer; - /* - * No lock is needed, since the task isn't on tasklist yet, - * so it can't be moved to another cgroup, which means the - * freezer won't be removed and will be valid during this - * function call. Nevertheless, apply RCU read-side critical - * section to suppress RCU lockdep false positives. - */ rcu_read_lock(); freezer = task_freezer(task); - rcu_read_unlock(); /* * The root cgroup is non-freezable, so we can skip the * following check. */ if (!freezer->css.cgroup->parent) - return; + goto out; spin_lock_irq(&freezer->lock); BUG_ON(freezer->state == CGROUP_FROZEN); @@ -221,7 +213,10 @@ /* Locking avoids race with FREEZING -> THAWED transitions. */ if (freezer->state == CGROUP_FREEZING) freeze_task(task, true); + spin_unlock_irq(&freezer->lock); +out: + rcu_read_unlock(); } /* --- linux-3.2.0.orig/kernel/futex.c +++ linux-3.2.0/kernel/futex.c @@ -59,6 +59,8 @@ #include #include #include +#include +#include #include @@ -362,7 +364,7 @@ } else { key->both.offset |= FUT_OFF_INODE; /* inode-based key */ key->shared.inode = page_head->mapping->host; - key->shared.pgoff = page_head->index; + key->shared.pgoff = basepage_index(page); } get_futex_key_refs(key); @@ -715,7 +717,7 @@ struct futex_pi_state **ps, struct task_struct *task, int set_waiters) { - int lock_taken, ret, ownerdied = 0; + int lock_taken, ret, force_take = 0; u32 uval, newval, curval, vpid = task_pid_vnr(task); retry: @@ -754,17 +756,15 @@ newval = curval | FUTEX_WAITERS; /* - * There are two cases, where a futex might have no owner (the - * owner TID is 0): OWNER_DIED. We take over the futex in this - * case. We also do an unconditional take over, when the owner - * of the futex died. - * - * This is safe as we are protected by the hash bucket lock ! + * Should we force take the futex? See below. */ - if (unlikely(ownerdied || !(curval & FUTEX_TID_MASK))) { - /* Keep the OWNER_DIED bit */ + if (unlikely(force_take)) { + /* + * Keep the OWNER_DIED and the WAITERS bit and set the + * new TID value. + */ newval = (curval & ~FUTEX_TID_MASK) | vpid; - ownerdied = 0; + force_take = 0; lock_taken = 1; } @@ -774,7 +774,7 @@ goto retry; /* - * We took the lock due to owner died take over. + * We took the lock due to forced take over. */ if (unlikely(lock_taken)) return 1; @@ -789,20 +789,25 @@ switch (ret) { case -ESRCH: /* - * No owner found for this futex. Check if the - * OWNER_DIED bit is set to figure out whether - * this is a robust futex or not. + * We failed to find an owner for this + * futex. So we have no pi_state to block + * on. This can happen in two cases: + * + * 1) The owner died + * 2) A stale FUTEX_WAITERS bit + * + * Re-read the futex value. */ if (get_futex_value_locked(&curval, uaddr)) return -EFAULT; /* - * We simply start over in case of a robust - * futex. The code above will take the futex - * and return happy. + * If the owner died or we have a stale + * WAITERS bit the owner TID in the user space + * futex is 0. */ - if (curval & FUTEX_OWNER_DIED) { - ownerdied = 1; + if (!(curval & FUTEX_TID_MASK)) { + force_take = 1; goto retry; } default: @@ -839,6 +844,9 @@ { struct task_struct *p = q->task; + if (WARN(q->pi_state || q->rt_waiter, "refusing to wake PI futex\n")) + return; + /* * We set q->lock_ptr = NULL _before_ we wake up the task. If * a non-futex wake up happens on another CPU then the task @@ -1074,6 +1082,10 @@ plist_for_each_entry_safe(this, next, head, list) { if (match_futex (&this->key, &key1)) { + if (this->pi_state || this->rt_waiter) { + ret = -EINVAL; + goto out_unlock; + } wake_futex(this); if (++ret >= nr_wake) break; @@ -1086,6 +1098,10 @@ op_ret = 0; plist_for_each_entry_safe(this, next, head, list) { if (match_futex (&this->key, &key2)) { + if (this->pi_state || this->rt_waiter) { + ret = -EINVAL; + goto out_unlock; + } wake_futex(this); if (++op_ret >= nr_wake2) break; @@ -1094,6 +1110,7 @@ ret += op_ret; } +out_unlock: double_unlock_hb(hb1, hb2); out_put_keys: put_futex_key(&key2); @@ -1383,9 +1400,13 @@ /* * FUTEX_WAIT_REQEUE_PI and FUTEX_CMP_REQUEUE_PI should always * be paired with each other and no other futex ops. + * + * We should never be requeueing a futex_q with a pi_state, + * which is awaiting a futex_unlock_pi(). */ if ((requeue_pi && !this->rt_waiter) || - (!requeue_pi && this->rt_waiter)) { + (!requeue_pi && this->rt_waiter) || + this->pi_state) { ret = -EINVAL; break; } @@ -2230,11 +2251,11 @@ * @uaddr2: the pi futex we will take prior to returning to user-space * * The caller will wait on uaddr and will be requeued by futex_requeue() to - * uaddr2 which must be PI aware. Normal wakeup will wake on uaddr2 and - * complete the acquisition of the rt_mutex prior to returning to userspace. - * This ensures the rt_mutex maintains an owner when it has waiters; without - * one, the pi logic wouldn't know which task to boost/deboost, if there was a - * need to. + * uaddr2 which must be PI aware and unique from uaddr. Normal wakeup will wake + * on uaddr2 and complete the acquisition of the rt_mutex prior to returning to + * userspace. This ensures the rt_mutex maintains an owner when it has waiters; + * without one, the pi logic would not know which task to boost/deboost, if + * there was a need to. * * We call schedule in futex_wait_queue_me() when we enqueue and return there * via the following: @@ -2271,6 +2292,9 @@ struct futex_q q = futex_q_init; int res, ret; + if (uaddr == uaddr2) + return -EINVAL; + if (!bitset) return -EINVAL; @@ -2342,7 +2366,7 @@ * signal. futex_unlock_pi() will not destroy the lock_ptr nor * the pi_state. */ - WARN_ON(!&q.pi_state); + WARN_ON(!q.pi_state); pi_mutex = &q.pi_state->pi_mutex; ret = rt_mutex_finish_proxy_lock(pi_mutex, to, &rt_waiter, 1); debug_rt_mutex_free_waiter(&rt_waiter); @@ -2369,7 +2393,7 @@ * fault, unlock the rt_mutex and return the fault to userspace. */ if (ret == -EFAULT) { - if (rt_mutex_owner(pi_mutex) == current) + if (pi_mutex && rt_mutex_owner(pi_mutex) == current) rt_mutex_unlock(pi_mutex); } else if (ret == -EINTR) { /* @@ -2443,40 +2467,29 @@ { struct robust_list_head __user *head; unsigned long ret; - const struct cred *cred = current_cred(), *pcred; + struct task_struct *p; if (!futex_cmpxchg_enabled) return -ENOSYS; + rcu_read_lock(); + + ret = -ESRCH; if (!pid) - head = current->robust_list; + p = current; else { - struct task_struct *p; - - ret = -ESRCH; - rcu_read_lock(); p = find_task_by_vpid(pid); if (!p) goto err_unlock; - ret = -EPERM; - pcred = __task_cred(p); - /* If victim is in different user_ns, then uids are not - comparable, so we must have CAP_SYS_PTRACE */ - if (cred->user->user_ns != pcred->user->user_ns) { - if (!ns_capable(pcred->user->user_ns, CAP_SYS_PTRACE)) - goto err_unlock; - goto ok; - } - /* If victim is in same user_ns, then uids are comparable */ - if (cred->euid != pcred->euid && - cred->euid != pcred->uid && - !ns_capable(pcred->user->user_ns, CAP_SYS_PTRACE)) - goto err_unlock; -ok: - head = p->robust_list; - rcu_read_unlock(); } + ret = -EPERM; + if (!ptrace_may_access(p, PTRACE_MODE_READ)) + goto err_unlock; + + head = p->robust_list; + rcu_read_unlock(); + if (put_user(sizeof(*head), len_ptr)) return -EFAULT; return put_user(head, head_ptr); @@ -2641,6 +2654,16 @@ } switch (cmd) { + case FUTEX_LOCK_PI: + case FUTEX_UNLOCK_PI: + case FUTEX_TRYLOCK_PI: + case FUTEX_WAIT_REQUEUE_PI: + case FUTEX_CMP_REQUEUE_PI: + if (!futex_cmpxchg_enabled) + return -ENOSYS; + } + + switch (cmd) { case FUTEX_WAIT: val3 = FUTEX_BITSET_MATCH_ANY; case FUTEX_WAIT_BITSET: @@ -2661,16 +2684,13 @@ ret = futex_wake_op(uaddr, flags, uaddr2, val, val2, val3); break; case FUTEX_LOCK_PI: - if (futex_cmpxchg_enabled) - ret = futex_lock_pi(uaddr, flags, val, timeout, 0); + ret = futex_lock_pi(uaddr, flags, val, timeout, 0); break; case FUTEX_UNLOCK_PI: - if (futex_cmpxchg_enabled) - ret = futex_unlock_pi(uaddr, flags); + ret = futex_unlock_pi(uaddr, flags); break; case FUTEX_TRYLOCK_PI: - if (futex_cmpxchg_enabled) - ret = futex_lock_pi(uaddr, flags, 0, timeout, 1); + ret = futex_lock_pi(uaddr, flags, 0, timeout, 1); break; case FUTEX_WAIT_REQUEUE_PI: val3 = FUTEX_BITSET_MATCH_ANY; --- linux-3.2.0.orig/kernel/cpu.c +++ linux-3.2.0/kernel/cpu.c @@ -124,6 +124,27 @@ mutex_unlock(&cpu_hotplug.lock); } +/* + * Wait for currently running CPU hotplug operations to complete (if any) and + * disable future CPU hotplug (from sysfs). The 'cpu_add_remove_lock' protects + * the 'cpu_hotplug_disabled' flag. The same lock is also acquired by the + * hotplug path before performing hotplug operations. So acquiring that lock + * guarantees mutual exclusion from any currently running hotplug operations. + */ +void cpu_hotplug_disable(void) +{ + cpu_maps_update_begin(); + cpu_hotplug_disabled = 1; + cpu_maps_update_done(); +} + +void cpu_hotplug_enable(void) +{ + cpu_maps_update_begin(); + cpu_hotplug_disabled = 0; + cpu_maps_update_done(); +} + #else /* #if CONFIG_HOTPLUG_CPU */ static void cpu_hotplug_begin(void) {} static void cpu_hotplug_done(void) {} @@ -479,36 +500,6 @@ core_initcall(alloc_frozen_cpus); /* - * Prevent regular CPU hotplug from racing with the freezer, by disabling CPU - * hotplug when tasks are about to be frozen. Also, don't allow the freezer - * to continue until any currently running CPU hotplug operation gets - * completed. - * To modify the 'cpu_hotplug_disabled' flag, we need to acquire the - * 'cpu_add_remove_lock'. And this same lock is also taken by the regular - * CPU hotplug path and released only after it is complete. Thus, we - * (and hence the freezer) will block here until any currently running CPU - * hotplug operation gets completed. - */ -void cpu_hotplug_disable_before_freeze(void) -{ - cpu_maps_update_begin(); - cpu_hotplug_disabled = 1; - cpu_maps_update_done(); -} - - -/* - * When tasks have been thawed, re-enable regular CPU hotplug (which had been - * disabled while beginning to freeze tasks). - */ -void cpu_hotplug_enable_after_thaw(void) -{ - cpu_maps_update_begin(); - cpu_hotplug_disabled = 0; - cpu_maps_update_done(); -} - -/* * When callbacks for CPU hotplug notifications are being executed, we must * ensure that the state of the system with respect to the tasks being frozen * or not, as reported by the notification, remains unchanged *throughout the @@ -527,12 +518,12 @@ case PM_SUSPEND_PREPARE: case PM_HIBERNATION_PREPARE: - cpu_hotplug_disable_before_freeze(); + cpu_hotplug_disable(); break; case PM_POST_SUSPEND: case PM_POST_HIBERNATION: - cpu_hotplug_enable_after_thaw(); + cpu_hotplug_enable(); break; default: --- linux-3.2.0.orig/kernel/auditsc.c +++ linux-3.2.0/kernel/auditsc.c @@ -67,6 +67,7 @@ #include #include #include +#include #include "audit.h" @@ -2499,6 +2500,25 @@ context->type = AUDIT_MMAP; } +static void audit_log_abend(struct audit_buffer *ab, char *reason, long signr) +{ + uid_t auid, uid; + gid_t gid; + unsigned int sessionid; + + auid = audit_get_loginuid(current); + sessionid = audit_get_sessionid(current); + current_uid_gid(&uid, &gid); + + audit_log_format(ab, "auid=%u uid=%u gid=%u ses=%u", + auid, uid, gid, sessionid); + audit_log_task_context(ab); + audit_log_format(ab, " pid=%d comm=", current->pid); + audit_log_untrustedstring(ab, current->comm); + audit_log_format(ab, " reason="); + audit_log_string(ab, reason); + audit_log_format(ab, " sig=%ld", signr); +} /** * audit_core_dumps - record information about processes that end abnormally * @signr: signal value @@ -2509,10 +2529,6 @@ void audit_core_dumps(long signr) { struct audit_buffer *ab; - u32 sid; - uid_t auid = audit_get_loginuid(current), uid; - gid_t gid; - unsigned int sessionid = audit_get_sessionid(current); if (!audit_enabled) return; @@ -2521,24 +2537,22 @@ return; ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_ANOM_ABEND); - current_uid_gid(&uid, &gid); - audit_log_format(ab, "auid=%u uid=%u gid=%u ses=%u", - auid, uid, gid, sessionid); - security_task_getsecid(current, &sid); - if (sid) { - char *ctx = NULL; - u32 len; - - if (security_secid_to_secctx(sid, &ctx, &len)) - audit_log_format(ab, " ssid=%u", sid); - else { - audit_log_format(ab, " subj=%s", ctx); - security_release_secctx(ctx, len); - } - } - audit_log_format(ab, " pid=%d comm=", current->pid); - audit_log_untrustedstring(ab, current->comm); - audit_log_format(ab, " sig=%ld", signr); + audit_log_abend(ab, "memory violation", signr); + audit_log_end(ab); +} + +void __audit_seccomp(unsigned long syscall, long signr, int code) +{ + struct audit_buffer *ab; + + ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_ANOM_ABEND); + audit_log_abend(ab, "seccomp", signr); + audit_log_format(ab, " syscall=%ld", syscall); +#ifdef CONFIG_COMPAT + audit_log_format(ab, " compat=%d", is_compat_task()); +#endif + audit_log_format(ab, " ip=0x%lx", KSTK_EIP(current)); + audit_log_format(ab, " code=0x%x", code); audit_log_end(ab); } --- linux-3.2.0.orig/kernel/params.c +++ linux-3.2.0/kernel/params.c @@ -94,7 +94,7 @@ char *val, const struct kernel_param *params, unsigned num_params, - int (*handle_unknown)(char *param, char *val)) + int (*handle_arg)(char *param, char *val, int known)) { unsigned int i; int err; @@ -105,6 +105,14 @@ /* No one handled NULL, so do it here. */ if (!val && params[i].ops->set != param_set_bool) return -EINVAL; + if (handle_arg) { + int ret; + DEBUGP("Valid argument: calling %p\n", + handle_arg); + ret = handle_arg(param, val, 1); + if (ret) + return ret; + } DEBUGP("They are equal! Calling %p\n", params[i].ops->set); mutex_lock(¶m_lock); @@ -114,9 +122,9 @@ } } - if (handle_unknown) { - DEBUGP("Unknown argument: calling %p\n", handle_unknown); - return handle_unknown(param, val); + if (handle_arg) { + DEBUGP("Unknown argument: calling %p\n", handle_arg); + return handle_arg(param, val, 0); } DEBUGP("Unknown argument `%s'\n", param); @@ -180,7 +188,7 @@ char *args, const struct kernel_param *params, unsigned num, - int (*unknown)(char *param, char *val)) + int (*handle_arg)(char *param, char *val, int arg)) { char *param, *val; @@ -195,7 +203,7 @@ args = next_arg(args, ¶m, &val); irq_was_disabled = irqs_disabled(); - ret = parse_one(param, val, params, num, unknown); + ret = parse_one(param, val, params, num, handle_arg); if (irq_was_disabled && !irqs_disabled()) { printk(KERN_WARNING "parse_args(): option '%s' enabled " "irq's!\n", param); --- linux-3.2.0.orig/kernel/audit.c +++ linux-3.2.0/kernel/audit.c @@ -1167,7 +1167,7 @@ /* Wait for auditd to drain the queue a little */ DECLARE_WAITQUEUE(wait, current); - set_current_state(TASK_INTERRUPTIBLE); + set_current_state(TASK_UNINTERRUPTIBLE); add_wait_queue(&audit_backlog_wait, &wait); if (audit_backlog_limit && --- linux-3.2.0.orig/kernel/sched.c +++ linux-3.2.0/kernel/sched.c @@ -746,22 +746,19 @@ /* * Return the group to which this tasks belongs. * - * We use task_subsys_state_check() and extend the RCU verification with - * pi->lock and rq->lock because cpu_cgroup_attach() holds those locks for each - * task it moves into the cgroup. Therefore by holding either of those locks, - * we pin the task to the current cgroup. + * We cannot use task_subsys_state() and friends because the cgroup + * subsystem changes that value before the cgroup_subsys::attach() method + * is called, therefore we cannot pin it and might observe the wrong value. + * + * The same is true for autogroup's p->signal->autogroup->tg, the autogroup + * core changes this before calling sched_move_task(). + * + * Instead we use a 'copy' which is updated from sched_move_task() while + * holding both task_struct::pi_lock and rq::lock. */ static inline struct task_group *task_group(struct task_struct *p) { - struct task_group *tg; - struct cgroup_subsys_state *css; - - css = task_subsys_state_check(p, cpu_cgroup_subsys_id, - lockdep_is_held(&p->pi_lock) || - lockdep_is_held(&task_rq(p)->lock)); - tg = container_of(css, struct task_group, css); - - return autogroup_task_group(p, tg); + return p->sched_task_group; } /* Change a task's cfs_rq and parent entity if it moves across CPUs/groups */ @@ -1885,10 +1882,9 @@ #endif -static void calc_load_account_idle(struct rq *this_rq); static void update_sysctl(void); static int get_update_sysctl_factor(void); -static void update_cpu_load(struct rq *this_rq); +static void update_idle_cpu_load(struct rq *this_rq); static inline void __set_task_cpu(struct task_struct *p, unsigned int cpu) { @@ -2373,7 +2369,7 @@ * a task's CPU. ->pi_lock for waking tasks, rq->lock for runnable tasks. * * sched_move_task() holds both and thus holding either pins the cgroup, - * see set_task_rq(). + * see task_group(). * * Furthermore, all task_rq users should acquire both locks, see * task_rq_lock(). @@ -2893,8 +2889,10 @@ { struct rq *rq = task_rq(p); - BUG_ON(rq != this_rq()); - BUG_ON(p == current); + if (WARN_ON_ONCE(rq != this_rq()) || + WARN_ON_ONCE(p == current)) + return; + lockdep_assert_held(&rq->lock); if (!raw_spin_trylock(&p->pi_lock)) { @@ -2928,7 +2926,8 @@ */ int wake_up_process(struct task_struct *p) { - return try_to_wake_up(p, TASK_ALL, 0); + WARN_ON(task_is_stopped_or_traced(p)); + return try_to_wake_up(p, TASK_NORMAL, 0); } EXPORT_SYMBOL(wake_up_process); @@ -3401,11 +3400,73 @@ } +/* + * Global load-average calculations + * + * We take a distributed and async approach to calculating the global load-avg + * in order to minimize overhead. + * + * The global load average is an exponentially decaying average of nr_running + + * nr_uninterruptible. + * + * Once every LOAD_FREQ: + * + * nr_active = 0; + * for_each_possible_cpu(cpu) + * nr_active += cpu_of(cpu)->nr_running + cpu_of(cpu)->nr_uninterruptible; + * + * avenrun[n] = avenrun[0] * exp_n + nr_active * (1 - exp_n) + * + * Due to a number of reasons the above turns in the mess below: + * + * - for_each_possible_cpu() is prohibitively expensive on machines with + * serious number of cpus, therefore we need to take a distributed approach + * to calculating nr_active. + * + * \Sum_i x_i(t) = \Sum_i x_i(t) - x_i(t_0) | x_i(t_0) := 0 + * = \Sum_i { \Sum_j=1 x_i(t_j) - x_i(t_j-1) } + * + * So assuming nr_active := 0 when we start out -- true per definition, we + * can simply take per-cpu deltas and fold those into a global accumulate + * to obtain the same result. See calc_load_fold_active(). + * + * Furthermore, in order to avoid synchronizing all per-cpu delta folding + * across the machine, we assume 10 ticks is sufficient time for every + * cpu to have completed this task. + * + * This places an upper-bound on the IRQ-off latency of the machine. Then + * again, being late doesn't loose the delta, just wrecks the sample. + * + * - cpu_rq()->nr_uninterruptible isn't accurately tracked per-cpu because + * this would add another cross-cpu cacheline miss and atomic operation + * to the wakeup path. Instead we increment on whatever cpu the task ran + * when it went into uninterruptible state and decrement on whatever cpu + * did the wakeup. This means that only the sum of nr_uninterruptible over + * all cpus yields the correct result. + * + * This covers the NO_HZ=n code, for extra head-aches, see the comment below. + */ + /* Variables and functions for calc_load */ static atomic_long_t calc_load_tasks; static unsigned long calc_load_update; unsigned long avenrun[3]; -EXPORT_SYMBOL(avenrun); +EXPORT_SYMBOL(avenrun); /* should be removed */ + +/** + * get_avenrun - get the load average array + * @loads: pointer to dest load array + * @offset: offset to add + * @shift: shift count to shift the result left + * + * These values are estimates at best, so no need for locking. + */ +void get_avenrun(unsigned long *loads, unsigned long offset, int shift) +{ + loads[0] = (avenrun[0] + offset) << shift; + loads[1] = (avenrun[1] + offset) << shift; + loads[2] = (avenrun[2] + offset) << shift; +} static long calc_load_fold_active(struct rq *this_rq) { @@ -3422,6 +3483,9 @@ return delta; } +/* + * a1 = a0 * e + a * (1 - e) + */ static unsigned long calc_load(unsigned long load, unsigned long exp, unsigned long active) { @@ -3433,30 +3497,118 @@ #ifdef CONFIG_NO_HZ /* - * For NO_HZ we delay the active fold to the next LOAD_FREQ update. + * Handle NO_HZ for the global load-average. + * + * Since the above described distributed algorithm to compute the global + * load-average relies on per-cpu sampling from the tick, it is affected by + * NO_HZ. + * + * The basic idea is to fold the nr_active delta into a global idle-delta upon + * entering NO_HZ state such that we can include this as an 'extra' cpu delta + * when we read the global state. + * + * Obviously reality has to ruin such a delightfully simple scheme: + * + * - When we go NO_HZ idle during the window, we can negate our sample + * contribution, causing under-accounting. + * + * We avoid this by keeping two idle-delta counters and flipping them + * when the window starts, thus separating old and new NO_HZ load. + * + * The only trick is the slight shift in index flip for read vs write. + * + * 0s 5s 10s 15s + * +10 +10 +10 +10 + * |-|-----------|-|-----------|-|-----------|-| + * r:0 0 1 1 0 0 1 1 0 + * w:0 1 1 0 0 1 1 0 0 + * + * This ensures we'll fold the old idle contribution in this window while + * accumlating the new one. + * + * - When we wake up from NO_HZ idle during the window, we push up our + * contribution, since we effectively move our sample point to a known + * busy state. + * + * This is solved by pushing the window forward, and thus skipping the + * sample, for this cpu (effectively using the idle-delta for this cpu which + * was in effect at the time the window opened). This also solves the issue + * of having to deal with a cpu having been in NOHZ idle for multiple + * LOAD_FREQ intervals. * * When making the ILB scale, we should try to pull this in as well. */ -static atomic_long_t calc_load_tasks_idle; +static atomic_long_t calc_load_idle[2]; +static int calc_load_idx; -static void calc_load_account_idle(struct rq *this_rq) +static inline int calc_load_write_idx(void) { + int idx = calc_load_idx; + + /* + * See calc_global_nohz(), if we observe the new index, we also + * need to observe the new update time. + */ + smp_rmb(); + + /* + * If the folding window started, make sure we start writing in the + * next idle-delta. + */ + if (!time_before(jiffies, calc_load_update)) + idx++; + + return idx & 1; +} + +static inline int calc_load_read_idx(void) +{ + return calc_load_idx & 1; +} + +void calc_load_enter_idle(void) +{ + struct rq *this_rq = this_rq(); long delta; + /* + * We're going into NOHZ mode, if there's any pending delta, fold it + * into the pending idle delta. + */ delta = calc_load_fold_active(this_rq); - if (delta) - atomic_long_add(delta, &calc_load_tasks_idle); + if (delta) { + int idx = calc_load_write_idx(); + atomic_long_add(delta, &calc_load_idle[idx]); + } } -static long calc_load_fold_idle(void) +void calc_load_exit_idle(void) { - long delta = 0; + struct rq *this_rq = this_rq(); /* - * Its got a race, we don't care... + * If we're still before the sample window, we're done. */ - if (atomic_long_read(&calc_load_tasks_idle)) - delta = atomic_long_xchg(&calc_load_tasks_idle, 0); + if (time_before(jiffies, this_rq->calc_load_update)) + return; + + /* + * We woke inside or after the sample window, this means we're already + * accounted through the nohz accounting, so skip the entire deal and + * sync up for the next window. + */ + this_rq->calc_load_update = calc_load_update; + if (time_before(jiffies, this_rq->calc_load_update + 10)) + this_rq->calc_load_update += LOAD_FREQ; +} + +static long calc_load_fold_idle(void) +{ + int idx = calc_load_read_idx(); + long delta = 0; + + if (atomic_long_read(&calc_load_idle[idx])) + delta = atomic_long_xchg(&calc_load_idle[idx], 0); return delta; } @@ -3538,28 +3690,16 @@ * Once we've updated the global active value, we need to apply the exponential * weights adjusted to the number of cycles missed. */ -static void calc_global_nohz(unsigned long ticks) +static void calc_global_nohz(void) { long delta, active, n; - if (time_before(jiffies, calc_load_update)) - return; - - /* - * If we crossed a calc_load_update boundary, make sure to fold - * any pending idle changes, the respective CPUs might have - * missed the tick driven calc_load_account_active() update - * due to NO_HZ. - */ - delta = calc_load_fold_idle(); - if (delta) - atomic_long_add(delta, &calc_load_tasks); - - /* - * If we were idle for multiple load cycles, apply them. - */ - if (ticks >= LOAD_FREQ) { - n = ticks / LOAD_FREQ; + if (!time_before(jiffies, calc_load_update + 10)) { + /* + * Catch-up, fold however many we are behind still + */ + delta = jiffies - calc_load_update - 10; + n = 1 + (delta / LOAD_FREQ); active = atomic_long_read(&calc_load_tasks); active = active > 0 ? active * FIXED_1 : 0; @@ -3572,45 +3712,21 @@ } /* - * Its possible the remainder of the above division also crosses - * a LOAD_FREQ period, the regular check in calc_global_load() - * which comes after this will take care of that. + * Flip the idle index... * - * Consider us being 11 ticks before a cycle completion, and us - * sleeping for 4*LOAD_FREQ + 22 ticks, then the above code will - * age us 4 cycles, and the test in calc_global_load() will - * pick up the final one. + * Make sure we first write the new time then flip the index, so that + * calc_load_write_idx() will see the new time when it reads the new + * index, this avoids a double flip messing things up. */ + smp_wmb(); + calc_load_idx++; } -#else -static void calc_load_account_idle(struct rq *this_rq) -{ -} - -static inline long calc_load_fold_idle(void) -{ - return 0; -} +#else /* !CONFIG_NO_HZ */ -static void calc_global_nohz(unsigned long ticks) -{ -} -#endif +static inline long calc_load_fold_idle(void) { return 0; } +static inline void calc_global_nohz(void) { } -/** - * get_avenrun - get the load average array - * @loads: pointer to dest load array - * @offset: offset to add - * @shift: shift count to shift the result left - * - * These values are estimates at best, so no need for locking. - */ -void get_avenrun(unsigned long *loads, unsigned long offset, int shift) -{ - loads[0] = (avenrun[0] + offset) << shift; - loads[1] = (avenrun[1] + offset) << shift; - loads[2] = (avenrun[2] + offset) << shift; -} +#endif /* CONFIG_NO_HZ */ /* * calc_load - update the avenrun load estimates 10 ticks after the @@ -3618,13 +3734,18 @@ */ void calc_global_load(unsigned long ticks) { - long active; - - calc_global_nohz(ticks); + long active, delta; if (time_before(jiffies, calc_load_update + 10)) return; + /* + * Fold the 'old' idle-delta to include all NO_HZ cpus. + */ + delta = calc_load_fold_idle(); + if (delta) + atomic_long_add(delta, &calc_load_tasks); + active = atomic_long_read(&calc_load_tasks); active = active > 0 ? active * FIXED_1 : 0; @@ -3633,6 +3754,11 @@ avenrun[2] = calc_load(avenrun[2], EXP_15, active); calc_load_update += LOAD_FREQ; + + /* + * In case we idled for multiple LOAD_FREQ intervals, catch up in bulk. + */ + calc_global_nohz(); } /* @@ -3647,7 +3773,6 @@ return; delta = calc_load_fold_active(this_rq); - delta += calc_load_fold_idle(); if (delta) atomic_long_add(delta, &calc_load_tasks); @@ -3655,6 +3780,10 @@ } /* + * End of global load-average stuff + */ + +/* * The exact cpuload at various idx values, calculated at every tick would be * load = (2^idx - 1) / 2^idx * load + 1 / 2^idx * cur_load * @@ -3726,22 +3855,13 @@ * scheduler tick (TICK_NSEC). With tickless idle this will not be called * every tick. We fix it up based on jiffies. */ -static void update_cpu_load(struct rq *this_rq) +static void __update_cpu_load(struct rq *this_rq, unsigned long this_load, + unsigned long pending_updates) { - unsigned long this_load = this_rq->load.weight; - unsigned long curr_jiffies = jiffies; - unsigned long pending_updates; int i, scale; this_rq->nr_load_updates++; - /* Avoid repeated calls on same jiffy, when moving in and out of idle */ - if (curr_jiffies == this_rq->last_load_update_tick) - return; - - pending_updates = curr_jiffies - this_rq->last_load_update_tick; - this_rq->last_load_update_tick = curr_jiffies; - /* Update our load: */ this_rq->cpu_load[0] = this_load; /* Fasttrack for idx 0 */ for (i = 1, scale = 2; i < CPU_LOAD_IDX_MAX; i++, scale += scale) { @@ -3766,9 +3886,78 @@ sched_avg_update(this_rq); } +#ifdef CONFIG_NO_HZ +/* + * There is no sane way to deal with nohz on smp when using jiffies because the + * cpu doing the jiffies update might drift wrt the cpu doing the jiffy reading + * causing off-by-one errors in observed deltas; {0,2} instead of {1,1}. + * + * Therefore we cannot use the delta approach from the regular tick since that + * would seriously skew the load calculation. However we'll make do for those + * updates happening while idle (nohz_idle_balance) or coming out of idle + * (tick_nohz_idle_exit). + * + * This means we might still be one tick off for nohz periods. + */ + +/* + * Called from nohz_idle_balance() to update the load ratings before doing the + * idle balance. + */ +static void update_idle_cpu_load(struct rq *this_rq) +{ + unsigned long curr_jiffies = ACCESS_ONCE(jiffies); + unsigned long load = this_rq->load.weight; + unsigned long pending_updates; + + /* + * bail if there's load or we're actually up-to-date. + */ + if (load || curr_jiffies == this_rq->last_load_update_tick) + return; + + pending_updates = curr_jiffies - this_rq->last_load_update_tick; + this_rq->last_load_update_tick = curr_jiffies; + + __update_cpu_load(this_rq, load, pending_updates); +} + +/* + * Called from tick_nohz_idle_exit() -- try and fix up the ticks we missed. + */ +void update_cpu_load_nohz(void) +{ + struct rq *this_rq = this_rq(); + unsigned long curr_jiffies = ACCESS_ONCE(jiffies); + unsigned long pending_updates; + + if (curr_jiffies == this_rq->last_load_update_tick) + return; + + raw_spin_lock(&this_rq->lock); + pending_updates = curr_jiffies - this_rq->last_load_update_tick; + if (pending_updates) { + this_rq->last_load_update_tick = curr_jiffies; + /* + * We were idle, this means load 0, the current load might be + * !0 due to remote wakeups and the sort. + */ + __update_cpu_load(this_rq, 0, pending_updates); + } + raw_spin_unlock(&this_rq->lock); +} +#endif /* CONFIG_NO_HZ */ + +/* + * Called from scheduler_tick() + */ static void update_cpu_load_active(struct rq *this_rq) { - update_cpu_load(this_rq); + /* + * See the mess around update_idle_cpu_load() / update_cpu_load_nohz(). + */ + this_rq->last_load_update_tick = jiffies; + __update_cpu_load(this_rq, this_rq->load.weight, 1); calc_load_account_active(this_rq); } @@ -4169,6 +4358,20 @@ # define nsecs_to_cputime(__nsecs) nsecs_to_jiffies(__nsecs) #endif +static cputime_t scale_utime(cputime_t utime, cputime_t rtime, cputime_t total) +{ + u64 temp = (__force u64) rtime; + + temp *= (__force u64) utime; + + if (sizeof(cputime_t) == 4) + temp = div_u64(temp, (__force u32) total); + else + temp = div64_u64(temp, (__force u64) total); + + return (__force cputime_t) temp; +} + void task_times(struct task_struct *p, cputime_t *ut, cputime_t *st) { cputime_t rtime, utime = p->utime, total = cputime_add(utime, p->stime); @@ -4178,13 +4381,9 @@ */ rtime = nsecs_to_cputime(p->se.sum_exec_runtime); - if (total) { - u64 temp = rtime; - - temp *= utime; - do_div(temp, total); - utime = (cputime_t)temp; - } else + if (total) + utime = scale_utime(utime, rtime, total); + else utime = rtime; /* @@ -4211,13 +4410,9 @@ total = cputime_add(cputime.utime, cputime.stime); rtime = nsecs_to_cputime(cputime.sum_exec_runtime); - if (total) { - u64 temp = rtime; - - temp *= cputime.utime; - do_div(temp, total); - utime = (cputime_t)temp; - } else + if (total) + utime = scale_utime(cputime.utime, rtime, total); + else utime = rtime; sig->prev_utime = max(sig->prev_utime, utime); @@ -6477,16 +6672,25 @@ *tablep = NULL; } +static int min_load_idx = 0; +static int max_load_idx = CPU_LOAD_IDX_MAX-1; + static void set_table_entry(struct ctl_table *entry, const char *procname, void *data, int maxlen, - mode_t mode, proc_handler *proc_handler) + mode_t mode, proc_handler *proc_handler, + bool load_idx) { entry->procname = procname; entry->data = data; entry->maxlen = maxlen; entry->mode = mode; entry->proc_handler = proc_handler; + + if (load_idx) { + entry->extra1 = &min_load_idx; + entry->extra2 = &max_load_idx; + } } static struct ctl_table * @@ -6498,30 +6702,30 @@ return NULL; set_table_entry(&table[0], "min_interval", &sd->min_interval, - sizeof(long), 0644, proc_doulongvec_minmax); + sizeof(long), 0644, proc_doulongvec_minmax, false); set_table_entry(&table[1], "max_interval", &sd->max_interval, - sizeof(long), 0644, proc_doulongvec_minmax); + sizeof(long), 0644, proc_doulongvec_minmax, false); set_table_entry(&table[2], "busy_idx", &sd->busy_idx, - sizeof(int), 0644, proc_dointvec_minmax); + sizeof(int), 0644, proc_dointvec_minmax, true); set_table_entry(&table[3], "idle_idx", &sd->idle_idx, - sizeof(int), 0644, proc_dointvec_minmax); + sizeof(int), 0644, proc_dointvec_minmax, true); set_table_entry(&table[4], "newidle_idx", &sd->newidle_idx, - sizeof(int), 0644, proc_dointvec_minmax); + sizeof(int), 0644, proc_dointvec_minmax, true); set_table_entry(&table[5], "wake_idx", &sd->wake_idx, - sizeof(int), 0644, proc_dointvec_minmax); + sizeof(int), 0644, proc_dointvec_minmax, true); set_table_entry(&table[6], "forkexec_idx", &sd->forkexec_idx, - sizeof(int), 0644, proc_dointvec_minmax); + sizeof(int), 0644, proc_dointvec_minmax, true); set_table_entry(&table[7], "busy_factor", &sd->busy_factor, - sizeof(int), 0644, proc_dointvec_minmax); + sizeof(int), 0644, proc_dointvec_minmax, false); set_table_entry(&table[8], "imbalance_pct", &sd->imbalance_pct, - sizeof(int), 0644, proc_dointvec_minmax); + sizeof(int), 0644, proc_dointvec_minmax, false); set_table_entry(&table[9], "cache_nice_tries", &sd->cache_nice_tries, - sizeof(int), 0644, proc_dointvec_minmax); + sizeof(int), 0644, proc_dointvec_minmax, false); set_table_entry(&table[10], "flags", &sd->flags, - sizeof(int), 0644, proc_dointvec_minmax); + sizeof(int), 0644, proc_dointvec_minmax, false); set_table_entry(&table[11], "name", sd->name, - CORENAME_MAX_SIZE, 0444, proc_dostring); + CORENAME_MAX_SIZE, 0444, proc_dostring, false); /* &table[12] is terminator */ return table; @@ -7430,11 +7634,8 @@ static int __init setup_relax_domain_level(char *str) { - unsigned long val; - - val = simple_strtoul(str, NULL, 0); - if (val < sched_domain_level_max) - default_relax_domain_level = val; + if (kstrtoint(str, 0, &default_relax_domain_level)) + pr_warn("Unable to set relax_domain_level\n"); return 1; } @@ -7605,16 +7806,26 @@ struct sd_data *sdd = &tl->data; for_each_cpu(j, cpu_map) { - struct sched_domain *sd = *per_cpu_ptr(sdd->sd, j); - if (sd && (sd->flags & SD_OVERLAP)) - free_sched_groups(sd->groups, 0); - kfree(*per_cpu_ptr(sdd->sd, j)); - kfree(*per_cpu_ptr(sdd->sg, j)); - kfree(*per_cpu_ptr(sdd->sgp, j)); + struct sched_domain *sd; + + if (sdd->sd) { + sd = *per_cpu_ptr(sdd->sd, j); + if (sd && (sd->flags & SD_OVERLAP)) + free_sched_groups(sd->groups, 0); + kfree(*per_cpu_ptr(sdd->sd, j)); + } + + if (sdd->sg) + kfree(*per_cpu_ptr(sdd->sg, j)); + if (sdd->sgp) + kfree(*per_cpu_ptr(sdd->sgp, j)); } free_percpu(sdd->sd); + sdd->sd = NULL; free_percpu(sdd->sg); + sdd->sg = NULL; free_percpu(sdd->sgp); + sdd->sgp = NULL; } } @@ -7627,7 +7838,6 @@ if (!sd) return child; - set_domain_attribute(sd, attr); cpumask_and(sched_domain_span(sd), cpu_map, tl->mask(cpu)); if (child) { sd->level = child->level + 1; @@ -7635,6 +7845,7 @@ child->parent = sd; } sd->child = child; + set_domain_attribute(sd, attr); return sd; } @@ -7993,34 +8204,66 @@ } #endif /* CONFIG_SCHED_MC || CONFIG_SCHED_SMT */ +static int num_cpus_frozen; /* used to mark begin/end of suspend/resume */ + /* * Update cpusets according to cpu_active mask. If cpusets are * disabled, cpuset_update_active_cpus() becomes a simple wrapper * around partition_sched_domains(). + * + * If we come here as part of a suspend/resume, don't touch cpusets because we + * want to restore it back to its original state upon resume anyway. */ static int cpuset_cpu_active(struct notifier_block *nfb, unsigned long action, void *hcpu) { - switch (action & ~CPU_TASKS_FROZEN) { + switch (action) { + case CPU_ONLINE_FROZEN: + case CPU_DOWN_FAILED_FROZEN: + + /* + * num_cpus_frozen tracks how many CPUs are involved in suspend + * resume sequence. As long as this is not the last online + * operation in the resume sequence, just build a single sched + * domain, ignoring cpusets. + */ + num_cpus_frozen--; + if (likely(num_cpus_frozen)) { + partition_sched_domains(1, NULL, NULL); + break; + } + + /* + * This is the last CPU online operation. So fall through and + * restore the original sched domains by considering the + * cpuset configurations. + */ + case CPU_ONLINE: case CPU_DOWN_FAILED: cpuset_update_active_cpus(); - return NOTIFY_OK; + break; default: return NOTIFY_DONE; } + return NOTIFY_OK; } static int cpuset_cpu_inactive(struct notifier_block *nfb, unsigned long action, void *hcpu) { - switch (action & ~CPU_TASKS_FROZEN) { + switch (action) { case CPU_DOWN_PREPARE: cpuset_update_active_cpus(); - return NOTIFY_OK; + break; + case CPU_DOWN_PREPARE_FROZEN: + num_cpus_frozen++; + partition_sched_domains(1, NULL, NULL); + break; default: return NOTIFY_DONE; } + return NOTIFY_OK; } static int update_runtime(struct notifier_block *nfb, @@ -8756,6 +8999,7 @@ */ void sched_move_task(struct task_struct *tsk) { + struct task_group *tg; int on_rq, running; unsigned long flags; struct rq *rq; @@ -8770,6 +9014,12 @@ if (unlikely(running)) tsk->sched_class->put_prev_task(rq, tsk); + tg = container_of(task_subsys_state_check(tsk, cpu_cgroup_subsys_id, + lockdep_is_held(&tsk->sighand->siglock)), + struct task_group, css); + tg = autogroup_task_group(tsk, tg); + tsk->sched_task_group = tg; + #ifdef CONFIG_FAIR_GROUP_SCHED if (tsk->sched_class->task_move_group) tsk->sched_class->task_move_group(tsk, on_rq); --- linux-3.2.0.orig/kernel/sched_autogroup.c +++ linux-3.2.0/kernel/sched_autogroup.c @@ -160,15 +160,11 @@ p->signal->autogroup = autogroup_kref_get(ag); - if (!ACCESS_ONCE(sysctl_sched_autogroup_enabled)) - goto out; - t = p; do { sched_move_task(t); } while_each_thread(p, t); -out: unlock_task_sighand(p, &flags); autogroup_kref_put(prev); } --- linux-3.2.0.orig/kernel/hrtimer.c +++ linux-3.2.0/kernel/hrtimer.c @@ -61,6 +61,7 @@ DEFINE_PER_CPU(struct hrtimer_cpu_base, hrtimer_bases) = { + .lock = __RAW_SPIN_LOCK_UNLOCKED(hrtimer_bases.lock), .clock_base = { { @@ -297,6 +298,10 @@ } else { unsigned long rem = do_div(nsec, NSEC_PER_SEC); + /* Make sure nsec fits into long */ + if (unlikely(nsec > KTIME_SEC_MAX)) + return (ktime_t){ .tv64 = KTIME_MAX }; + tmp = ktime_set((long)nsec, rem); } @@ -640,21 +645,17 @@ * and expiry check is done in the hrtimer_interrupt or in the softirq. */ static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer, - struct hrtimer_clock_base *base, - int wakeup) + struct hrtimer_clock_base *base) { - if (base->cpu_base->hres_active && hrtimer_reprogram(timer, base)) { - if (wakeup) { - raw_spin_unlock(&base->cpu_base->lock); - raise_softirq_irqoff(HRTIMER_SOFTIRQ); - raw_spin_lock(&base->cpu_base->lock); - } else - __raise_softirq_irqoff(HRTIMER_SOFTIRQ); + return base->cpu_base->hres_active && hrtimer_reprogram(timer, base); +} - return 1; - } +static inline ktime_t hrtimer_update_base(struct hrtimer_cpu_base *base) +{ + ktime_t *offs_real = &base->clock_base[HRTIMER_BASE_REALTIME].offset; + ktime_t *offs_boot = &base->clock_base[HRTIMER_BASE_BOOTTIME].offset; - return 0; + return ktime_get_update_offsets(offs_real, offs_boot); } /* @@ -665,22 +666,12 @@ static void retrigger_next_event(void *arg) { struct hrtimer_cpu_base *base = &__get_cpu_var(hrtimer_bases); - struct timespec realtime_offset, xtim, wtm, sleep; if (!hrtimer_hres_active()) return; - /* Optimized out for !HIGH_RES */ - get_xtime_and_monotonic_and_sleep_offset(&xtim, &wtm, &sleep); - set_normalized_timespec(&realtime_offset, -wtm.tv_sec, -wtm.tv_nsec); - - /* Adjust CLOCK_REALTIME offset */ raw_spin_lock(&base->lock); - base->clock_base[HRTIMER_BASE_REALTIME].offset = - timespec_to_ktime(realtime_offset); - base->clock_base[HRTIMER_BASE_BOOTTIME].offset = - timespec_to_ktime(sleep); - + hrtimer_update_base(base); hrtimer_force_reprogram(base, 0); raw_spin_unlock(&base->lock); } @@ -710,13 +701,25 @@ base->clock_base[i].resolution = KTIME_HIGH_RES; tick_setup_sched_timer(); - /* "Retrigger" the interrupt to get things going */ retrigger_next_event(NULL); local_irq_restore(flags); return 1; } +/* + * Called from timekeeping code to reprogramm the hrtimer interrupt + * device. If called from the timer interrupt context we defer it to + * softirq context. + */ +void clock_was_set_delayed(void) +{ + struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases); + + cpu_base->clock_was_set = 1; + __raise_softirq_irqoff(HRTIMER_SOFTIRQ); +} + #else static inline int hrtimer_hres_active(void) { return 0; } @@ -725,8 +728,7 @@ static inline void hrtimer_force_reprogram(struct hrtimer_cpu_base *base, int skip_equal) { } static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer, - struct hrtimer_clock_base *base, - int wakeup) + struct hrtimer_clock_base *base) { return 0; } @@ -985,8 +987,21 @@ * * XXX send_remote_softirq() ? */ - if (leftmost && new_base->cpu_base == &__get_cpu_var(hrtimer_bases)) - hrtimer_enqueue_reprogram(timer, new_base, wakeup); + if (leftmost && new_base->cpu_base == &__get_cpu_var(hrtimer_bases) + && hrtimer_enqueue_reprogram(timer, new_base)) { + if (wakeup) { + /* + * We need to drop cpu_base->lock to avoid a + * lock ordering issue vs. rq->lock. + */ + raw_spin_unlock(&new_base->cpu_base->lock); + raise_softirq_irqoff(HRTIMER_SOFTIRQ); + local_irq_restore(flags); + return ret; + } else { + __raise_softirq_irqoff(HRTIMER_SOFTIRQ); + } + } unlock_hrtimer_base(timer, &flags); @@ -1250,11 +1265,10 @@ cpu_base->nr_events++; dev->next_event.tv64 = KTIME_MAX; - entry_time = now = ktime_get(); + raw_spin_lock(&cpu_base->lock); + entry_time = now = hrtimer_update_base(cpu_base); retry: expires_next.tv64 = KTIME_MAX; - - raw_spin_lock(&cpu_base->lock); /* * We set expires_next to KTIME_MAX here with cpu_base->lock * held to prevent that a timer is enqueued in our queue via @@ -1298,6 +1312,8 @@ expires = ktime_sub(hrtimer_get_expires(timer), base->offset); + if (expires.tv64 < 0) + expires.tv64 = KTIME_MAX; if (expires.tv64 < expires_next.tv64) expires_next = expires; break; @@ -1330,8 +1346,12 @@ * We need to prevent that we loop forever in the hrtimer * interrupt routine. We give it 3 attempts to avoid * overreacting on some spurious event. + * + * Acquire base lock for updating the offsets and retrieving + * the current time. */ - now = ktime_get(); + raw_spin_lock(&cpu_base->lock); + now = hrtimer_update_base(cpu_base); cpu_base->nr_retries++; if (++retries < 3) goto retry; @@ -1343,6 +1363,7 @@ */ cpu_base->nr_hangs++; cpu_base->hang_detected = 1; + raw_spin_unlock(&cpu_base->lock); delta = ktime_sub(now, entry_time); if (delta.tv64 > cpu_base->max_hang_time.tv64) cpu_base->max_hang_time = delta; @@ -1395,6 +1416,13 @@ static void run_hrtimer_softirq(struct softirq_action *h) { + struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases); + + if (cpu_base->clock_was_set) { + cpu_base->clock_was_set = 0; + clock_was_set(); + } + hrtimer_peek_ahead_timers(); } @@ -1619,8 +1647,6 @@ struct hrtimer_cpu_base *cpu_base = &per_cpu(hrtimer_bases, cpu); int i; - raw_spin_lock_init(&cpu_base->lock); - for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) { cpu_base->clock_base[i].cpu_base = cpu_base; timerqueue_init_head(&cpu_base->clock_base[i].active); --- linux-3.2.0.orig/kernel/fork.c +++ linux-3.2.0/kernel/fork.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -47,6 +48,7 @@ #include #include #include +#include #include #include #include @@ -66,6 +68,7 @@ #include #include #include +#include #include #include @@ -166,6 +169,7 @@ free_thread_info(tsk->stack); rt_mutex_debug_task_free(tsk); ftrace_graph_exit_task(tsk); + put_seccomp_filter(tsk); free_task_struct(tsk); } EXPORT_SYMBOL(free_task); @@ -189,6 +193,7 @@ WARN_ON(atomic_read(&tsk->usage)); WARN_ON(tsk == current); + security_task_free(tsk); exit_creds(tsk); delayacct_tsk_free(tsk); put_signal_struct(tsk->signal); @@ -350,7 +355,8 @@ } charge = 0; if (mpnt->vm_flags & VM_ACCOUNT) { - unsigned int len = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT; + unsigned long len; + len = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT; if (security_vm_enough_memory(len)) goto fail_nomem; charge = len; @@ -910,8 +916,10 @@ void __cleanup_sighand(struct sighand_struct *sighand) { - if (atomic_dec_and_test(&sighand->count)) + if (atomic_dec_and_test(&sighand->count)) { + signalfd_cleanup(sighand); kmem_cache_free(sighand_cachep, sighand); + } } @@ -974,6 +982,9 @@ #ifdef CONFIG_CGROUPS init_rwsem(&sig->threadgroup_fork_lock); #endif +#ifdef CONFIG_CPUSETS + seqcount_init(&tsk->mems_allowed_seq); +#endif sig->oom_adj = current->signal->oom_adj; sig->oom_score_adj = current->signal->oom_score_adj; @@ -1049,7 +1060,6 @@ { int retval; struct task_struct *p; - int cgroup_callbacks_done = 0; if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS)) return ERR_PTR(-EINVAL); @@ -1089,6 +1099,7 @@ goto fork_out; ftrace_graph_init_task(p); + get_seccomp_filter(p); rt_mutex_init_task(p); @@ -1304,12 +1315,6 @@ p->group_leader = p; INIT_LIST_HEAD(&p->thread_group); - /* Now that the task is set up, run cgroup callbacks if - * necessary. We need to run them before the task is visible - * on the tasklist. */ - cgroup_fork_callbacks(p); - cgroup_callbacks_done = 1; - /* Need tasklist lock for parent etc handling! */ write_lock_irq(&tasklist_lock); @@ -1384,6 +1389,8 @@ if (p->io_context) exit_io_context(p); bad_fork_cleanup_namespaces: + if (unlikely(clone_flags & CLONE_NEWPID)) + pid_ns_release_proc(p->nsproxy->pid_ns); exit_task_namespaces(p); bad_fork_cleanup_mm: if (p->mm) @@ -1409,7 +1416,7 @@ #endif if (clone_flags & CLONE_THREAD) threadgroup_fork_read_unlock(current); - cgroup_exit(p, cgroup_callbacks_done); + cgroup_exit(p, 0); delayacct_tsk_free(p); module_put(task_thread_info(p)->exec_domain->module); bad_fork_cleanup_count: --- linux-3.2.0.orig/kernel/sched_clock.c +++ linux-3.2.0/kernel/sched_clock.c @@ -176,10 +176,36 @@ u64 this_clock, remote_clock; u64 *ptr, old_val, val; +#if BITS_PER_LONG != 64 +again: + /* + * Careful here: The local and the remote clock values need to + * be read out atomic as we need to compare the values and + * then update either the local or the remote side. So the + * cmpxchg64 below only protects one readout. + * + * We must reread via sched_clock_local() in the retry case on + * 32bit as an NMI could use sched_clock_local() via the + * tracer and hit between the readout of + * the low32bit and the high 32bit portion. + */ + this_clock = sched_clock_local(my_scd); + /* + * We must enforce atomic readout on 32bit, otherwise the + * update on the remote cpu can hit inbetween the readout of + * the low32bit and the high 32bit portion. + */ + remote_clock = cmpxchg64(&scd->clock, 0, 0); +#else + /* + * On 64bit the read of [my]scd->clock is atomic versus the + * update, so we can avoid the above 32bit dance. + */ sched_clock_local(my_scd); again: this_clock = my_scd->clock; remote_clock = scd->clock; +#endif /* * Use the opportunity that we have both locks --- linux-3.2.0.orig/kernel/power/process.c +++ linux-3.2.0/kernel/power/process.c @@ -203,3 +203,12 @@ printk("done.\n"); } +void thaw_kernel_threads(void) +{ + printk("Restarting kernel threads ... "); + thaw_workqueues(); + thaw_tasks(true); + schedule(); + printk("done.\n"); +} + --- linux-3.2.0.orig/kernel/power/user.c +++ linux-3.2.0/kernel/power/user.c @@ -283,10 +283,17 @@ } pm_restore_gfp_mask(); error = hibernation_snapshot(data->platform_support); - if (!error) + if (error) { + thaw_kernel_threads(); + } else { error = put_user(in_suspend, (int __user *)arg); - if (!error) - data->ready = 1; + if (!error && !freezer_test_done) + data->ready = 1; + if (freezer_test_done) { + freezer_test_done = false; + thaw_kernel_threads(); + } + } break; case SNAPSHOT_ATOMIC_RESTORE: @@ -303,6 +310,15 @@ swsusp_free(); memset(&data->handle, 0, sizeof(struct snapshot_handle)); data->ready = 0; + /* + * It is necessary to thaw kernel threads here, because + * SNAPSHOT_CREATE_IMAGE may be invoked directly after + * SNAPSHOT_FREE. In that case, if kernel threads were not + * thawed, the preallocation of memory carried out by + * hibernation_snapshot() might run into problems (i.e. it + * might fail or even deadlock). + */ + thaw_kernel_threads(); break; case SNAPSHOT_SET_IMAGE_SIZE: --- linux-3.2.0.orig/kernel/power/swap.c +++ linux-3.2.0/kernel/power/swap.c @@ -6,7 +6,7 @@ * * Copyright (C) 1998,2001-2005 Pavel Machek * Copyright (C) 2006 Rafael J. Wysocki - * Copyright (C) 2010 Bojan Smojver + * Copyright (C) 2010-2012 Bojan Smojver * * This file is released under the GPLv2. * @@ -52,6 +52,23 @@ #define MAP_PAGE_ENTRIES (PAGE_SIZE / sizeof(sector_t) - 1) +/* + * Number of free pages that are not high. + */ +static inline unsigned long low_free_pages(void) +{ + return nr_free_pages() - nr_free_highpages(); +} + +/* + * Number of pages required to be kept free while writing the image. Always + * half of all available low pages before the writing starts. + */ +static inline unsigned long reqd_free_pages(void) +{ + return low_free_pages() / 2; +} + struct swap_map_page { sector_t entries[MAP_PAGE_ENTRIES]; sector_t next_swap; @@ -73,7 +90,7 @@ sector_t cur_swap; sector_t first_sector; unsigned int k; - unsigned long nr_free_pages, written; + unsigned long reqd_free_pages; u32 crc32; }; @@ -266,14 +283,17 @@ return -ENOSPC; if (bio_chain) { - src = (void *)__get_free_page(__GFP_WAIT | __GFP_HIGH); + src = (void *)__get_free_page(__GFP_WAIT | __GFP_NOWARN | + __GFP_NORETRY); if (src) { copy_page(src, buf); } else { ret = hib_wait_on_bio_chain(bio_chain); /* Free pages */ if (ret) return ret; - src = (void *)__get_free_page(__GFP_WAIT | __GFP_HIGH); + src = (void *)__get_free_page(__GFP_WAIT | + __GFP_NOWARN | + __GFP_NORETRY); if (src) { copy_page(src, buf); } else { @@ -317,8 +337,7 @@ goto err_rel; } handle->k = 0; - handle->nr_free_pages = nr_free_pages() >> 1; - handle->written = 0; + handle->reqd_free_pages = reqd_free_pages(); handle->first_sector = handle->cur_swap; return 0; err_rel: @@ -352,12 +371,17 @@ clear_page(handle->cur); handle->cur_swap = offset; handle->k = 0; - } - if (bio_chain && ++handle->written > handle->nr_free_pages) { - error = hib_wait_on_bio_chain(bio_chain); - if (error) - goto out; - handle->written = 0; + + if (bio_chain && low_free_pages() <= handle->reqd_free_pages) { + error = hib_wait_on_bio_chain(bio_chain); + if (error) + goto out; + /* + * Recalculate the number of required free pages, to + * make sure we never take more than half. + */ + handle->reqd_free_pages = reqd_free_pages(); + } } out: return error; @@ -404,8 +428,9 @@ /* Maximum number of threads for compression/decompression. */ #define LZO_THREADS 3 -/* Maximum number of pages for read buffering. */ -#define LZO_READ_PAGES (MAP_PAGE_ENTRIES * 8) +/* Minimum/maximum number of pages for read buffering. */ +#define LZO_MIN_RD_PAGES 1024 +#define LZO_MAX_RD_PAGES 8192 /** @@ -616,12 +641,6 @@ } /* - * Adjust number of free pages after all allocations have been done. - * We don't want to run out of pages when writing. - */ - handle->nr_free_pages = nr_free_pages() >> 1; - - /* * Start the CRC32 thread. */ init_waitqueue_head(&crc->go); @@ -642,6 +661,12 @@ goto out_clean; } + /* + * Adjust the number of required free pages after all allocations have + * been done. We don't want to run out of pages when writing. + */ + handle->reqd_free_pages = reqd_free_pages(); + printk(KERN_INFO "PM: Using %u thread(s) for compression.\n" "PM: Compressing and saving image data (%u pages) ... ", @@ -1051,7 +1076,7 @@ unsigned i, thr, run_threads, nr_threads; unsigned ring = 0, pg = 0, ring_size = 0, have = 0, want, need, asked = 0; - unsigned long read_pages; + unsigned long read_pages = 0; unsigned char **page = NULL; struct dec_data *data = NULL; struct crc_data *crc = NULL; @@ -1063,7 +1088,7 @@ nr_threads = num_online_cpus() - 1; nr_threads = clamp_val(nr_threads, 1, LZO_THREADS); - page = vmalloc(sizeof(*page) * LZO_READ_PAGES); + page = vmalloc(sizeof(*page) * LZO_MAX_RD_PAGES); if (!page) { printk(KERN_ERR "PM: Failed to allocate LZO page\n"); ret = -ENOMEM; @@ -1128,15 +1153,22 @@ } /* - * Adjust number of pages for read buffering, in case we are short. + * Set the number of pages for read buffering. + * This is complete guesswork, because we'll only know the real + * picture once prepare_image() is called, which is much later on + * during the image load phase. We'll assume the worst case and + * say that none of the image pages are from high memory. */ - read_pages = (nr_free_pages() - snapshot_get_image_size()) >> 1; - read_pages = clamp_val(read_pages, LZO_CMP_PAGES, LZO_READ_PAGES); + if (low_free_pages() > snapshot_get_image_size()) + read_pages = (low_free_pages() - snapshot_get_image_size()) / 2; + read_pages = clamp_val(read_pages, LZO_MIN_RD_PAGES, LZO_MAX_RD_PAGES); for (i = 0; i < read_pages; i++) { page[i] = (void *)__get_free_page(i < LZO_CMP_PAGES ? __GFP_WAIT | __GFP_HIGH : - __GFP_WAIT); + __GFP_WAIT | __GFP_NOWARN | + __GFP_NORETRY); + if (!page[i]) { if (i < LZO_CMP_PAGES) { ring_size = i; --- linux-3.2.0.orig/kernel/power/hibernate.c +++ linux-3.2.0/kernel/power/hibernate.c @@ -55,7 +55,7 @@ static int hibernation_mode = HIBERNATION_SHUTDOWN; -static bool freezer_test_done; +bool freezer_test_done; static const struct platform_hibernation_ops *hibernation_ops; @@ -367,6 +367,7 @@ } suspend_console(); + ftrace_stop(); pm_restrict_gfp_mask(); error = dpm_suspend(PMSG_FREEZE); if (error) @@ -392,6 +393,7 @@ if (error || !in_suspend) pm_restore_gfp_mask(); + ftrace_start(); resume_console(); dpm_complete(msg); @@ -496,6 +498,7 @@ pm_prepare_console(); suspend_console(); + ftrace_stop(); pm_restrict_gfp_mask(); error = dpm_suspend_start(PMSG_QUIESCE); if (!error) { @@ -503,6 +506,7 @@ dpm_resume_end(PMSG_RECOVER); } pm_restore_gfp_mask(); + ftrace_start(); resume_console(); pm_restore_console(); return error; @@ -529,6 +533,7 @@ entering_platform_hibernation = true; suspend_console(); + ftrace_stop(); error = dpm_suspend_start(PMSG_HIBERNATE); if (error) { if (hibernation_ops->recover) @@ -572,6 +577,7 @@ Resume_devices: entering_platform_hibernation = false; dpm_resume_end(PMSG_RESTORE); + ftrace_start(); resume_console(); Close: @@ -648,7 +654,7 @@ /* Allocate memory management structures */ error = create_basic_memory_bitmaps(); if (error) - goto Exit; + goto Enable_umh; printk(KERN_INFO "PM: Syncing filesystems ... "); sys_sync(); @@ -656,7 +662,7 @@ error = prepare_processes(); if (error) - goto Finish; + goto Free_bitmaps; error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM); if (error) @@ -689,8 +695,9 @@ Thaw: thaw_processes(); - Finish: + Free_bitmaps: free_basic_memory_bitmaps(); + Enable_umh: usermodehelper_enable(); Exit: pm_notifier_call_chain(PM_POST_HIBERNATION); --- linux-3.2.0.orig/kernel/power/power.h +++ linux-3.2.0/kernel/power/power.h @@ -50,6 +50,8 @@ #define SPARE_PAGES ((1024 * 1024) >> PAGE_SHIFT) /* kernel/power/hibernate.c */ +extern bool freezer_test_done; + extern int hibernation_snapshot(int platform_mode); extern int hibernation_restore(int platform_mode); extern int hibernation_platform_enter(void); --- linux-3.2.0.orig/kernel/power/suspend.c +++ linux-3.2.0/kernel/power/suspend.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include "power.h" @@ -220,6 +221,7 @@ goto Close; } suspend_console(); + ftrace_stop(); suspend_test_start(); error = dpm_suspend_start(PMSG_SUSPEND); if (error) { @@ -239,6 +241,7 @@ suspend_test_start(); dpm_resume_end(PMSG_RESUME); suspend_test_finish("resume devices"); + ftrace_start(); resume_console(); Close: if (suspend_ops->end) --- linux-3.2.0.orig/kernel/events/core.c +++ linux-3.2.0/kernel/events/core.c @@ -185,9 +185,6 @@ static void update_context_time(struct perf_event_context *ctx); static u64 perf_event_time(struct perf_event *event); -static void ring_buffer_attach(struct perf_event *event, - struct ring_buffer *rb); - void __weak perf_event_print_debug(void) { } extern __weak const char *perf_pmu_name(void) @@ -714,8 +711,18 @@ { struct perf_event_context *ctx; - rcu_read_lock(); retry: + /* + * One of the few rules of preemptible RCU is that one cannot do + * rcu_read_unlock() while holding a scheduler (or nested) lock when + * part of the read side critical section was preemptible -- see + * rcu_read_unlock_special(). + * + * Since ctx->lock nests under rq->lock we must ensure the entire read + * side critical section is non-preemptible. + */ + preempt_disable(); + rcu_read_lock(); ctx = rcu_dereference(task->perf_event_ctxp[ctxn]); if (ctx) { /* @@ -731,6 +738,8 @@ raw_spin_lock_irqsave(&ctx->lock, *flags); if (ctx != rcu_dereference(task->perf_event_ctxp[ctxn])) { raw_spin_unlock_irqrestore(&ctx->lock, *flags); + rcu_read_unlock(); + preempt_enable(); goto retry; } @@ -740,6 +749,7 @@ } } rcu_read_unlock(); + preempt_enable(); return ctx; } @@ -1687,7 +1697,16 @@ struct perf_cpu_context *cpuctx = __get_cpu_context(ctx); int err; - if (WARN_ON_ONCE(!ctx->is_active)) + /* + * There's a time window between 'ctx->is_active' check + * in perf_event_enable function and this place having: + * - IRQs on + * - ctx->lock unlocked + * + * where the task could be killed and 'ctx' deactivated + * by perf_event_exit_task. + */ + if (!ctx->is_active) return -EINVAL; raw_spin_lock(&ctx->lock); @@ -2939,6 +2958,7 @@ } static void ring_buffer_put(struct ring_buffer *rb); +static void ring_buffer_detach(struct perf_event *event, struct ring_buffer *rb); static void free_event(struct perf_event *event) { @@ -2962,8 +2982,22 @@ } if (event->rb) { - ring_buffer_put(event->rb); - event->rb = NULL; + struct ring_buffer *rb; + + /* + * Can happen when we close an event with re-directed output. + * + * Since we have a 0 refcount, perf_mmap_close() will skip + * over us; possibly making our ring_buffer_put() the last. + */ + mutex_lock(&event->mmap_mutex); + rb = event->rb; + if (rb) { + rcu_assign_pointer(event->rb, NULL); + ring_buffer_detach(event, rb); + ring_buffer_put(rb); /* could be last */ + } + mutex_unlock(&event->mmap_mutex); } if (is_cgroup_event(event)) @@ -3011,12 +3045,12 @@ /* * Called when the last reference to the file is gone. */ -static int perf_release(struct inode *inode, struct file *file) +static void put_event(struct perf_event *event) { - struct perf_event *event = file->private_data; struct task_struct *owner; - file->private_data = NULL; + if (!atomic_long_dec_and_test(&event->refcount)) + return; rcu_read_lock(); owner = ACCESS_ONCE(event->owner); @@ -3051,7 +3085,13 @@ put_task_struct(owner); } - return perf_event_release_kernel(event); + perf_event_release_kernel(event); +} + +static int perf_release(struct inode *inode, struct file *file) +{ + put_event(file->private_data); + return 0; } u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running) @@ -3195,30 +3235,13 @@ unsigned int events = POLL_HUP; /* - * Race between perf_event_set_output() and perf_poll(): perf_poll() - * grabs the rb reference but perf_event_set_output() overrides it. - * Here is the timeline for two threads T1, T2: - * t0: T1, rb = rcu_dereference(event->rb) - * t1: T2, old_rb = event->rb - * t2: T2, event->rb = new rb - * t3: T2, ring_buffer_detach(old_rb) - * t4: T1, ring_buffer_attach(rb1) - * t5: T1, poll_wait(event->waitq) - * - * To avoid this problem, we grab mmap_mutex in perf_poll() - * thereby ensuring that the assignment of the new ring buffer - * and the detachment of the old buffer appear atomic to perf_poll() + * Pin the event->rb by taking event->mmap_mutex; otherwise + * perf_event_set_output() can swizzle our rb and make us miss wakeups. */ mutex_lock(&event->mmap_mutex); - - rcu_read_lock(); - rb = rcu_dereference(event->rb); - if (rb) { - ring_buffer_attach(event, rb); + rb = event->rb; + if (rb) events = atomic_xchg(&rb->poll, 0); - } - rcu_read_unlock(); - mutex_unlock(&event->mmap_mutex); poll_wait(file, &event->waitq, wait); @@ -3304,7 +3327,7 @@ static const struct file_operations perf_fops; -static struct perf_event *perf_fget_light(int fd, int *fput_needed) +static struct file *perf_fget_light(int fd, int *fput_needed) { struct file *file; @@ -3318,7 +3341,7 @@ return ERR_PTR(-EBADF); } - return file->private_data; + return file; } static int perf_event_set_output(struct perf_event *event, @@ -3350,19 +3373,21 @@ case PERF_EVENT_IOC_SET_OUTPUT: { + struct file *output_file = NULL; struct perf_event *output_event = NULL; int fput_needed = 0; int ret; if (arg != -1) { - output_event = perf_fget_light(arg, &fput_needed); - if (IS_ERR(output_event)) - return PTR_ERR(output_event); + output_file = perf_fget_light(arg, &fput_needed); + if (IS_ERR(output_file)) + return PTR_ERR(output_file); + output_event = output_file->private_data; } ret = perf_event_set_output(event, output_event); if (output_event) - fput_light(output_event->filp, fput_needed); + fput_light(output_file, fput_needed); return ret; } @@ -3530,16 +3555,12 @@ return; spin_lock_irqsave(&rb->event_lock, flags); - if (!list_empty(&event->rb_entry)) - goto unlock; - - list_add(&event->rb_entry, &rb->event_list); -unlock: + if (list_empty(&event->rb_entry)) + list_add(&event->rb_entry, &rb->event_list); spin_unlock_irqrestore(&rb->event_lock, flags); } -static void ring_buffer_detach(struct perf_event *event, - struct ring_buffer *rb) +static void ring_buffer_detach(struct perf_event *event, struct ring_buffer *rb) { unsigned long flags; @@ -3558,13 +3579,10 @@ rcu_read_lock(); rb = rcu_dereference(event->rb); - if (!rb) - goto unlock; - - list_for_each_entry_rcu(event, &rb->event_list, rb_entry) - wake_up_all(&event->waitq); - -unlock: + if (rb) { + list_for_each_entry_rcu(event, &rb->event_list, rb_entry) + wake_up_all(&event->waitq); + } rcu_read_unlock(); } @@ -3593,18 +3611,10 @@ static void ring_buffer_put(struct ring_buffer *rb) { - struct perf_event *event, *n; - unsigned long flags; - if (!atomic_dec_and_test(&rb->refcount)) return; - spin_lock_irqsave(&rb->event_lock, flags); - list_for_each_entry_safe(event, n, &rb->event_list, rb_entry) { - list_del_init(&event->rb_entry); - wake_up_all(&event->waitq); - } - spin_unlock_irqrestore(&rb->event_lock, flags); + WARN_ON_ONCE(!list_empty(&rb->event_list)); call_rcu(&rb->rcu_head, rb_free_rcu); } @@ -3614,26 +3624,100 @@ struct perf_event *event = vma->vm_file->private_data; atomic_inc(&event->mmap_count); + atomic_inc(&event->rb->mmap_count); } +/* + * A buffer can be mmap()ed multiple times; either directly through the same + * event, or through other events by use of perf_event_set_output(). + * + * In order to undo the VM accounting done by perf_mmap() we need to destroy + * the buffer here, where we still have a VM context. This means we need + * to detach all events redirecting to us. + */ static void perf_mmap_close(struct vm_area_struct *vma) { struct perf_event *event = vma->vm_file->private_data; - if (atomic_dec_and_mutex_lock(&event->mmap_count, &event->mmap_mutex)) { - unsigned long size = perf_data_size(event->rb); - struct user_struct *user = event->mmap_user; - struct ring_buffer *rb = event->rb; - - atomic_long_sub((size >> PAGE_SHIFT) + 1, &user->locked_vm); - vma->vm_mm->pinned_vm -= event->mmap_locked; - rcu_assign_pointer(event->rb, NULL); - ring_buffer_detach(event, rb); + struct ring_buffer *rb = event->rb; + struct user_struct *mmap_user = rb->mmap_user; + int mmap_locked = rb->mmap_locked; + unsigned long size = perf_data_size(rb); + + atomic_dec(&rb->mmap_count); + + if (!atomic_dec_and_mutex_lock(&event->mmap_count, &event->mmap_mutex)) + return; + + /* Detach current event from the buffer. */ + rcu_assign_pointer(event->rb, NULL); + ring_buffer_detach(event, rb); + mutex_unlock(&event->mmap_mutex); + + /* If there's still other mmap()s of this buffer, we're done. */ + if (atomic_read(&rb->mmap_count)) { + ring_buffer_put(rb); /* can't be last */ + return; + } + + /* + * No other mmap()s, detach from all other events that might redirect + * into the now unreachable buffer. Somewhat complicated by the + * fact that rb::event_lock otherwise nests inside mmap_mutex. + */ +again: + rcu_read_lock(); + list_for_each_entry_rcu(event, &rb->event_list, rb_entry) { + if (!atomic_long_inc_not_zero(&event->refcount)) { + /* + * This event is en-route to free_event() which will + * detach it and remove it from the list. + */ + continue; + } + rcu_read_unlock(); + + mutex_lock(&event->mmap_mutex); + /* + * Check we didn't race with perf_event_set_output() which can + * swizzle the rb from under us while we were waiting to + * acquire mmap_mutex. + * + * If we find a different rb; ignore this event, a next + * iteration will no longer find it on the list. We have to + * still restart the iteration to make sure we're not now + * iterating the wrong list. + */ + if (event->rb == rb) { + rcu_assign_pointer(event->rb, NULL); + ring_buffer_detach(event, rb); + ring_buffer_put(rb); /* can't be last, we still have one */ + } mutex_unlock(&event->mmap_mutex); + put_event(event); - ring_buffer_put(rb); - free_uid(user); + /* + * Restart the iteration; either we're on the wrong list or + * destroyed its integrity by doing a deletion. + */ + goto again; } + rcu_read_unlock(); + + /* + * It could be there's still a few 0-ref events on the list; they'll + * get cleaned up by free_event() -- they'll also still have their + * ref on the rb and will free it whenever they are done with it. + * + * Aside from that, this buffer is 'fully' detached and unmapped, + * undo the VM accounting. + */ + + atomic_long_sub((size >> PAGE_SHIFT) + 1, &mmap_user->locked_vm); + vma->vm_mm->pinned_vm -= mmap_locked; + free_uid(mmap_user); + + ring_buffer_put(rb); /* could be last */ } static const struct vm_operations_struct perf_mmap_vmops = { @@ -3683,12 +3767,24 @@ return -EINVAL; WARN_ON_ONCE(event->ctx->parent_ctx); +again: mutex_lock(&event->mmap_mutex); if (event->rb) { - if (event->rb->nr_pages == nr_pages) - atomic_inc(&event->rb->refcount); - else + if (event->rb->nr_pages != nr_pages) { ret = -EINVAL; + goto unlock; + } + + if (!atomic_inc_not_zero(&event->rb->mmap_count)) { + /* + * Raced against perf_mmap_close() through + * perf_event_set_output(). Try again, hope for better + * luck. + */ + mutex_unlock(&event->mmap_mutex); + goto again; + } + goto unlock; } @@ -3729,19 +3825,27 @@ ret = -ENOMEM; goto unlock; } - rcu_assign_pointer(event->rb, rb); + + atomic_set(&rb->mmap_count, 1); + rb->mmap_locked = extra; + rb->mmap_user = get_current_user(); atomic_long_add(user_extra, &user->locked_vm); - event->mmap_locked = extra; - event->mmap_user = get_current_user(); - vma->vm_mm->pinned_vm += event->mmap_locked; + vma->vm_mm->pinned_vm += extra; + + ring_buffer_attach(event, rb); + rcu_assign_pointer(event->rb, rb); unlock: if (!ret) atomic_inc(&event->mmap_count); mutex_unlock(&event->mmap_mutex); - vma->vm_flags |= VM_RESERVED; + /* + * Since pinned accounting is per vm we cannot allow fork() to copy our + * vma. + */ + vma->vm_flags |= VM_DONTCOPY | VM_RESERVED; vma->vm_ops = &perf_mmap_vmops; return ret; @@ -5156,7 +5260,7 @@ static int perf_swevent_init(struct perf_event *event) { - int event_id = event->attr.config; + u64 event_id = event->attr.config; if (event->attr.type != PERF_TYPE_SOFTWARE) return -ENOENT; @@ -5748,6 +5852,7 @@ if (pmu->pmu_cpu_context) goto got_cpu_context; + ret = -ENOMEM; pmu->pmu_cpu_context = alloc_percpu(struct perf_cpu_context); if (!pmu->pmu_cpu_context) goto free_dev; @@ -5912,6 +6017,7 @@ mutex_init(&event->mmap_mutex); + atomic_long_set(&event->refcount, 1); event->cpu = cpu; event->attr = *attr; event->group_leader = group_leader; @@ -6104,6 +6210,8 @@ if (atomic_read(&event->mmap_count)) goto unlock; + old_rb = event->rb; + if (output_event) { /* get the rb we want to redirect to */ rb = ring_buffer_get(output_event); @@ -6111,16 +6219,28 @@ goto unlock; } - old_rb = event->rb; - rcu_assign_pointer(event->rb, rb); if (old_rb) ring_buffer_detach(event, old_rb); + + if (rb) + ring_buffer_attach(event, rb); + + rcu_assign_pointer(event->rb, rb); + + if (old_rb) { + ring_buffer_put(old_rb); + /* + * Since we detached before setting the new rb, so that we + * could attach the new rb, we could have missed a wakeup. + * Provide it now. + */ + wake_up_all(&event->waitq); + } + ret = 0; unlock: mutex_unlock(&event->mmap_mutex); - if (old_rb) - ring_buffer_put(old_rb); out: return ret; } @@ -6182,12 +6302,12 @@ return event_fd; if (group_fd != -1) { - group_leader = perf_fget_light(group_fd, &fput_needed); - if (IS_ERR(group_leader)) { - err = PTR_ERR(group_leader); + group_file = perf_fget_light(group_fd, &fput_needed); + if (IS_ERR(group_file)) { + err = PTR_ERR(group_file); goto err_fd; } - group_file = group_leader->filp; + group_leader = group_file->private_data; if (flags & PERF_FLAG_FD_OUTPUT) output_event = group_leader; if (flags & PERF_FLAG_FD_NO_GROUP) @@ -6322,7 +6442,6 @@ put_ctx(gctx); } - event->filp = event_file; WARN_ON_ONCE(ctx->parent_ctx); mutex_lock(&ctx->mutex); @@ -6412,7 +6531,6 @@ goto err_free; } - event->filp = NULL; WARN_ON_ONCE(ctx->parent_ctx); mutex_lock(&ctx->mutex); perf_install_in_context(ctx, event, cpu); @@ -6461,7 +6579,7 @@ * Release the parent event, if this was the last * reference to it. */ - fput(parent_event->filp); + put_event(parent_event); } static void @@ -6537,9 +6655,8 @@ * * __perf_event_exit_task() * sync_child_event() - * fput(parent_event->filp) - * perf_release() - * mutex_lock(&ctx->mutex) + * put_event() + * mutex_lock(&ctx->mutex) * * But since its the parent context it won't be the same instance. */ @@ -6607,7 +6724,7 @@ list_del_init(&event->child_list); mutex_unlock(&parent->child_mutex); - fput(parent->filp); + put_event(parent); perf_group_detach(event); list_del_event(event, ctx); @@ -6687,6 +6804,12 @@ NULL, NULL); if (IS_ERR(child_event)) return child_event; + + if (!atomic_long_inc_not_zero(&parent_event->refcount)) { + free_event(child_event); + return NULL; + } + get_ctx(child_ctx); /* @@ -6728,14 +6851,6 @@ raw_spin_unlock_irqrestore(&child_ctx->lock, flags); /* - * Get a reference to the parent filp - we will fput it - * when the child event exits. This is safe to do because - * we are in the parent and we know that the filp still - * exists and has a nonzero count: - */ - atomic_long_inc(&parent_event->filp->f_count); - - /* * Link this into the parent event's child list */ WARN_ON_ONCE(parent_event->ctx->parent_ctx); @@ -6792,7 +6907,7 @@ * child. */ - child_ctx = alloc_perf_context(event->pmu, child); + child_ctx = alloc_perf_context(parent_ctx->pmu, child); if (!child_ctx) return -ENOMEM; --- linux-3.2.0.orig/kernel/events/hw_breakpoint.c +++ linux-3.2.0/kernel/events/hw_breakpoint.c @@ -147,7 +147,7 @@ return; } - for_each_online_cpu(cpu) { + for_each_possible_cpu(cpu) { unsigned int nr; nr = per_cpu(nr_cpu_bp_pinned[type], cpu); @@ -233,7 +233,7 @@ if (cpu >= 0) { toggle_bp_task_slot(bp, cpu, enable, type, weight); } else { - for_each_online_cpu(cpu) + for_each_possible_cpu(cpu) toggle_bp_task_slot(bp, cpu, enable, type, weight); } --- linux-3.2.0.orig/kernel/events/internal.h +++ linux-3.2.0/kernel/events/internal.h @@ -26,6 +26,10 @@ spinlock_t event_lock; struct list_head event_list; + atomic_t mmap_count; + unsigned long mmap_locked; + struct user_struct *mmap_user; + struct perf_event_mmap_page *user_page; void *data_pages[0]; }; --- linux-3.2.0.orig/kernel/debug/debug_core.c +++ linux-3.2.0/kernel/debug/debug_core.c @@ -157,37 +157,39 @@ * Weak aliases for breakpoint management, * can be overriden by architectures when needed: */ -int __weak kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr) +int __weak kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt) { int err; - err = probe_kernel_read(saved_instr, (char *)addr, BREAK_INSTR_SIZE); + err = probe_kernel_read(bpt->saved_instr, (char *)bpt->bpt_addr, + BREAK_INSTR_SIZE); if (err) return err; - - return probe_kernel_write((char *)addr, arch_kgdb_ops.gdb_bpt_instr, - BREAK_INSTR_SIZE); + err = probe_kernel_write((char *)bpt->bpt_addr, + arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE); + return err; } -int __weak kgdb_arch_remove_breakpoint(unsigned long addr, char *bundle) +int __weak kgdb_arch_remove_breakpoint(struct kgdb_bkpt *bpt) { - return probe_kernel_write((char *)addr, - (char *)bundle, BREAK_INSTR_SIZE); + return probe_kernel_write((char *)bpt->bpt_addr, + (char *)bpt->saved_instr, BREAK_INSTR_SIZE); } int __weak kgdb_validate_break_address(unsigned long addr) { - char tmp_variable[BREAK_INSTR_SIZE]; + struct kgdb_bkpt tmp; int err; - /* Validate setting the breakpoint and then removing it. In the + /* Validate setting the breakpoint and then removing it. If the * remove fails, the kernel needs to emit a bad message because we * are deep trouble not being able to put things back the way we * found them. */ - err = kgdb_arch_set_breakpoint(addr, tmp_variable); + tmp.bpt_addr = addr; + err = kgdb_arch_set_breakpoint(&tmp); if (err) return err; - err = kgdb_arch_remove_breakpoint(addr, tmp_variable); + err = kgdb_arch_remove_breakpoint(&tmp); if (err) printk(KERN_ERR "KGDB: Critical breakpoint error, kernel " "memory destroyed at: %lx", addr); @@ -231,7 +233,6 @@ */ int dbg_activate_sw_breakpoints(void) { - unsigned long addr; int error; int ret = 0; int i; @@ -240,16 +241,15 @@ if (kgdb_break[i].state != BP_SET) continue; - addr = kgdb_break[i].bpt_addr; - error = kgdb_arch_set_breakpoint(addr, - kgdb_break[i].saved_instr); + error = kgdb_arch_set_breakpoint(&kgdb_break[i]); if (error) { ret = error; - printk(KERN_INFO "KGDB: BP install failed: %lx", addr); + printk(KERN_INFO "KGDB: BP install failed: %lx", + kgdb_break[i].bpt_addr); continue; } - kgdb_flush_swbreak_addr(addr); + kgdb_flush_swbreak_addr(kgdb_break[i].bpt_addr); kgdb_break[i].state = BP_ACTIVE; } return ret; @@ -298,7 +298,6 @@ int dbg_deactivate_sw_breakpoints(void) { - unsigned long addr; int error; int ret = 0; int i; @@ -306,15 +305,14 @@ for (i = 0; i < KGDB_MAX_BREAKPOINTS; i++) { if (kgdb_break[i].state != BP_ACTIVE) continue; - addr = kgdb_break[i].bpt_addr; - error = kgdb_arch_remove_breakpoint(addr, - kgdb_break[i].saved_instr); + error = kgdb_arch_remove_breakpoint(&kgdb_break[i]); if (error) { - printk(KERN_INFO "KGDB: BP remove failed: %lx\n", addr); + printk(KERN_INFO "KGDB: BP remove failed: %lx\n", + kgdb_break[i].bpt_addr); ret = error; } - kgdb_flush_swbreak_addr(addr); + kgdb_flush_swbreak_addr(kgdb_break[i].bpt_addr); kgdb_break[i].state = BP_SET; } return ret; @@ -348,7 +346,6 @@ int dbg_remove_all_break(void) { - unsigned long addr; int error; int i; @@ -356,12 +353,10 @@ for (i = 0; i < KGDB_MAX_BREAKPOINTS; i++) { if (kgdb_break[i].state != BP_ACTIVE) goto setundefined; - addr = kgdb_break[i].bpt_addr; - error = kgdb_arch_remove_breakpoint(addr, - kgdb_break[i].saved_instr); + error = kgdb_arch_remove_breakpoint(&kgdb_break[i]); if (error) printk(KERN_ERR "KGDB: breakpoint remove failed: %lx\n", - addr); + kgdb_break[i].bpt_addr); setundefined: kgdb_break[i].state = BP_UNDEFINED; } --- linux-3.2.0.orig/kernel/trace/trace_sched_wakeup.c +++ linux-3.2.0/kernel/trace/trace_sched_wakeup.c @@ -36,7 +36,7 @@ static int wakeup_graph_entry(struct ftrace_graph_ent *trace); static void wakeup_graph_return(struct ftrace_graph_ret *trace); -static int save_lat_flag; +static int save_flags; #define TRACE_DISPLAY_GRAPH 1 @@ -528,8 +528,11 @@ static int __wakeup_tracer_init(struct trace_array *tr) { - save_lat_flag = trace_flags & TRACE_ITER_LATENCY_FMT; - trace_flags |= TRACE_ITER_LATENCY_FMT; + save_flags = trace_flags; + + /* non overwrite screws up the latency tracers */ + set_tracer_flag(TRACE_ITER_OVERWRITE, 1); + set_tracer_flag(TRACE_ITER_LATENCY_FMT, 1); tracing_max_latency = 0; wakeup_trace = tr; @@ -551,12 +554,15 @@ static void wakeup_tracer_reset(struct trace_array *tr) { + int lat_flag = save_flags & TRACE_ITER_LATENCY_FMT; + int overwrite_flag = save_flags & TRACE_ITER_OVERWRITE; + stop_wakeup_tracer(tr); /* make sure we put back any tasks we are tracing */ wakeup_reset(tr); - if (!save_lat_flag) - trace_flags &= ~TRACE_ITER_LATENCY_FMT; + set_tracer_flag(TRACE_ITER_LATENCY_FMT, lat_flag); + set_tracer_flag(TRACE_ITER_OVERWRITE, overwrite_flag); } static void wakeup_tracer_start(struct trace_array *tr) @@ -582,6 +588,7 @@ .print_line = wakeup_print_line, .flags = &tracer_flags, .set_flag = wakeup_set_flag, + .flag_changed = trace_keep_overwrite, #ifdef CONFIG_FTRACE_SELFTEST .selftest = trace_selftest_startup_wakeup, #endif @@ -603,6 +610,7 @@ .print_line = wakeup_print_line, .flags = &tracer_flags, .set_flag = wakeup_set_flag, + .flag_changed = trace_keep_overwrite, #ifdef CONFIG_FTRACE_SELFTEST .selftest = trace_selftest_startup_wakeup, #endif --- linux-3.2.0.orig/kernel/trace/Kconfig +++ linux-3.2.0/kernel/trace/Kconfig @@ -386,24 +386,28 @@ If you want to use perf tools, this option is strongly recommended. config DYNAMIC_FTRACE - bool "enable/disable ftrace tracepoints dynamically" + bool "enable/disable function tracing dynamically" depends on FUNCTION_TRACER depends on HAVE_DYNAMIC_FTRACE default y help - This option will modify all the calls to ftrace dynamically - (will patch them out of the binary image and replace them - with a No-Op instruction) as they are called. A table is - created to dynamically enable them again. + This option will modify all the calls to function tracing + dynamically (will patch them out of the binary image and + replace them with a No-Op instruction) on boot up. During + compile time, a table is made of all the locations that ftrace + can function trace, and this table is linked into the kernel + image. When this is enabled, functions can be individually + enabled, and the functions not enabled will not affect + performance of the system. + + See the files in /sys/kernel/debug/tracing: + available_filter_functions + set_ftrace_filter + set_ftrace_notrace This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but otherwise has native performance as long as no tracing is active. - The changes to the code are done by a kernel thread that - wakes up once a second and checks to see if any ftrace calls - were made. If so, it runs stop_machine (stops all CPUS) - and modifies the code to jump over the call to ftrace. - config FUNCTION_PROFILER bool "Kernel function profiler" depends on FUNCTION_TRACER --- linux-3.2.0.orig/kernel/trace/trace_export.c +++ linux-3.2.0/kernel/trace/trace_export.c @@ -150,7 +150,7 @@ #define __dynamic_array(type, item) #undef F_printk -#define F_printk(fmt, args...) #fmt ", " __stringify(args) +#define F_printk(fmt, args...) __stringify(fmt) ", " __stringify(args) #undef FTRACE_ENTRY #define FTRACE_ENTRY(call, struct_name, etype, tstruct, print) \ --- linux-3.2.0.orig/kernel/trace/trace_events_filter.c +++ linux-3.2.0/kernel/trace/trace_events_filter.c @@ -769,7 +769,11 @@ static void __free_preds(struct event_filter *filter) { + int i; + if (filter->preds) { + for (i = 0; i < filter->n_preds; i++) + kfree(filter->preds[i].ops); kfree(filter->preds); filter->preds = NULL; } --- linux-3.2.0.orig/kernel/trace/trace.c +++ linux-3.2.0/kernel/trace/trace.c @@ -631,7 +631,15 @@ memcpy(max_data->comm, tsk->comm, TASK_COMM_LEN); max_data->pid = tsk->pid; - max_data->uid = task_uid(tsk); + /* + * If tsk == current, then use current_uid(), as that does not use + * RCU. The irq tracer can be called out of RCU scope. + */ + if (tsk == current) + max_data->uid = current_uid(); + else + max_data->uid = task_uid(tsk); + max_data->nice = tsk->static_prio - 20 - MAX_RT_PRIO; max_data->policy = tsk->policy; max_data->rt_priority = tsk->rt_priority; @@ -652,7 +660,7 @@ void update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) { - struct ring_buffer *buf = tr->buffer; + struct ring_buffer *buf; if (trace_stop_count) return; @@ -664,6 +672,7 @@ } arch_spin_lock(&ftrace_max_lock); + buf = tr->buffer; tr->buffer = max_tr.buffer; max_tr.buffer = buf; @@ -1642,6 +1651,7 @@ int cpu_file = iter->cpu_file; u64 next_ts = 0, ts; int next_cpu = -1; + int next_size = 0; int cpu; /* @@ -1673,9 +1683,12 @@ next_cpu = cpu; next_ts = ts; next_lost = lost_events; + next_size = iter->ent_size; } } + iter->ent_size = next_size; + if (ent_cpu) *ent_cpu = next_cpu; @@ -2537,10 +2550,12 @@ if (cpumask_test_cpu(cpu, tracing_cpumask) && !cpumask_test_cpu(cpu, tracing_cpumask_new)) { atomic_inc(&global_trace.data[cpu]->disabled); + ring_buffer_record_disable_cpu(global_trace.buffer, cpu); } if (!cpumask_test_cpu(cpu, tracing_cpumask) && cpumask_test_cpu(cpu, tracing_cpumask_new)) { atomic_dec(&global_trace.data[cpu]->disabled); + ring_buffer_record_enable_cpu(global_trace.buffer, cpu); } } arch_spin_unlock(&ftrace_max_lock); @@ -2629,11 +2644,25 @@ return -EINVAL; } -static void set_tracer_flags(unsigned int mask, int enabled) +/* Some tracers require overwrite to stay enabled */ +int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set) +{ + if (tracer->enabled && (mask & TRACE_ITER_OVERWRITE) && !set) + return -1; + + return 0; +} + +int set_tracer_flag(unsigned int mask, int enabled) { /* do nothing if flag is already set */ if (!!(trace_flags & mask) == !!enabled) - return; + return 0; + + /* Give the tracer a chance to approve the change */ + if (current_trace->flag_changed) + if (current_trace->flag_changed(current_trace, mask, !!enabled)) + return -EINVAL; if (enabled) trace_flags |= mask; @@ -2643,8 +2672,14 @@ if (mask == TRACE_ITER_RECORD_CMD) trace_event_enable_cmd_record(enabled); - if (mask == TRACE_ITER_OVERWRITE) + if (mask == TRACE_ITER_OVERWRITE) { ring_buffer_change_overwrite(global_trace.buffer, enabled); +#ifdef CONFIG_TRACER_MAX_TRACE + ring_buffer_change_overwrite(max_tr.buffer, enabled); +#endif + } + + return 0; } static ssize_t @@ -2654,7 +2689,7 @@ char buf[64]; char *cmp; int neg = 0; - int ret; + int ret = 0; int i; if (cnt >= sizeof(buf)) @@ -2671,21 +2706,23 @@ cmp += 2; } + mutex_lock(&trace_types_lock); + for (i = 0; trace_options[i]; i++) { if (strcmp(cmp, trace_options[i]) == 0) { - set_tracer_flags(1 << i, !neg); + ret = set_tracer_flag(1 << i, !neg); break; } } /* If no option could be set, test the specific tracer options */ - if (!trace_options[i]) { - mutex_lock(&trace_types_lock); + if (!trace_options[i]) ret = set_tracer_option(current_trace, cmp, neg); - mutex_unlock(&trace_types_lock); - if (ret) - return ret; - } + + mutex_unlock(&trace_types_lock); + + if (ret) + return ret; *ppos += cnt; @@ -3009,6 +3046,9 @@ goto out; trace_branch_disable(); + + current_trace->enabled = false; + if (current_trace && current_trace->reset) current_trace->reset(tr); if (current_trace && current_trace->use_max_tr) { @@ -3038,6 +3078,7 @@ goto out; } + current_trace->enabled = true; trace_branch_enable(tr); out: mutex_unlock(&trace_types_lock); @@ -3452,6 +3493,7 @@ .pages = pages_def, .partial = partial_def, .nr_pages = 0, /* This gets updated below. */ + .nr_pages_max = PIPE_DEF_BUFFERS, .flags = flags, .ops = &tracing_pipe_buf_ops, .spd_release = tracing_spd_release_pipe, @@ -3523,7 +3565,7 @@ ret = splice_to_pipe(pipe, &spd); out: - splice_shrink_spd(pipe, &spd); + splice_shrink_spd(&spd); return ret; out_err: @@ -4013,6 +4055,7 @@ struct splice_pipe_desc spd = { .pages = pages_def, .partial = partial_def, + .nr_pages_max = PIPE_DEF_BUFFERS, .flags = flags, .ops = &buffer_pipe_buf_ops, .spd_release = buffer_spd_release, @@ -4100,7 +4143,7 @@ } ret = splice_to_pipe(pipe, &spd); - splice_shrink_spd(pipe, &spd); + splice_shrink_spd(&spd); out: return ret; } @@ -4370,7 +4413,13 @@ if (val != 0 && val != 1) return -EINVAL; - set_tracer_flags(1 << index, val); + + mutex_lock(&trace_types_lock); + ret = set_tracer_flag(1 << index, val); + mutex_unlock(&trace_types_lock); + + if (ret < 0) + return ret; *ppos += cnt; @@ -4522,6 +4571,8 @@ trace_access_lock_init(); d_tracer = tracing_init_dentry(); + if (!d_tracer) + return 0; trace_create_file("tracing_enabled", 0644, d_tracer, &global_trace, &tracing_ctrl_fops); @@ -4655,36 +4706,32 @@ iter->cpu_file = TRACE_PIPE_ALL_CPU; } -static void -__ftrace_dump(bool disable_tracing, enum ftrace_dump_mode oops_dump_mode) +void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { - static arch_spinlock_t ftrace_dump_lock = - (arch_spinlock_t)__ARCH_SPIN_LOCK_UNLOCKED; /* use static because iter can be a bit big for the stack */ static struct trace_iterator iter; + static atomic_t dump_running; unsigned int old_userobj; - static int dump_ran; unsigned long flags; int cnt = 0, cpu; - /* only one dump */ - local_irq_save(flags); - arch_spin_lock(&ftrace_dump_lock); - if (dump_ran) - goto out; - - dump_ran = 1; + /* Only allow one dump user at a time. */ + if (atomic_inc_return(&dump_running) != 1) { + atomic_dec(&dump_running); + return; + } + /* + * Always turn off tracing when we dump. + * We don't need to show trace output of what happens + * between multiple crashes. + * + * If the user does a sysrq-z, then they can re-enable + * tracing with echo 1 > tracing_on. + */ tracing_off(); - /* Did function tracer already get disabled? */ - if (ftrace_is_dead()) { - printk("# WARNING: FUNCTION TRACING IS CORRUPTED\n"); - printk("# MAY BE MISSING FUNCTION EVENTS\n"); - } - - if (disable_tracing) - ftrace_kill(); + local_irq_save(flags); trace_init_global_iter(&iter); @@ -4717,6 +4764,12 @@ printk(KERN_TRACE "Dumping ftrace buffer:\n"); + /* Did function tracer already get disabled? */ + if (ftrace_is_dead()) { + printk("# WARNING: FUNCTION TRACING IS CORRUPTED\n"); + printk("# MAY BE MISSING FUNCTION EVENTS\n"); + } + /* * We need to stop all tracing on all CPUS to read the * the next buffer. This is a bit expensive, but is @@ -4755,26 +4808,15 @@ printk(KERN_TRACE "---------------------------------\n"); out_enable: - /* Re-enable tracing if requested */ - if (!disable_tracing) { - trace_flags |= old_userobj; + trace_flags |= old_userobj; - for_each_tracing_cpu(cpu) { - atomic_dec(&iter.tr->data[cpu]->disabled); - } - tracing_on(); + for_each_tracing_cpu(cpu) { + atomic_dec(&iter.tr->data[cpu]->disabled); } - - out: - arch_spin_unlock(&ftrace_dump_lock); + atomic_dec(&dump_running); local_irq_restore(flags); } - -/* By default: disable tracing after the dump */ -void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) -{ - __ftrace_dump(true, oops_dump_mode); -} +EXPORT_SYMBOL_GPL(ftrace_dump); __init static int tracer_alloc_buffers(void) { --- linux-3.2.0.orig/kernel/trace/trace_entries.h +++ linux-3.2.0/kernel/trace/trace_entries.h @@ -156,6 +156,12 @@ #define FTRACE_STACK_ENTRIES 8 +#ifndef CONFIG_64BIT +# define IP_FMT "%08lx" +#else +# define IP_FMT "%016lx" +#endif + FTRACE_ENTRY(kernel_stack, stack_entry, TRACE_STACK, @@ -165,8 +171,9 @@ __dynamic_array(unsigned long, caller ) ), - F_printk("\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n" - "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n", + F_printk("\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n" + "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n" + "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n", __entry->caller[0], __entry->caller[1], __entry->caller[2], __entry->caller[3], __entry->caller[4], __entry->caller[5], __entry->caller[6], __entry->caller[7]) @@ -181,8 +188,9 @@ __array( unsigned long, caller, FTRACE_STACK_ENTRIES ) ), - F_printk("\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n" - "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n", + F_printk("\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n" + "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n" + "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n", __entry->caller[0], __entry->caller[1], __entry->caller[2], __entry->caller[3], __entry->caller[4], __entry->caller[5], __entry->caller[6], __entry->caller[7]) --- linux-3.2.0.orig/kernel/trace/ftrace.c +++ linux-3.2.0/kernel/trace/ftrace.c @@ -554,7 +554,7 @@ pages = DIV_ROUND_UP(functions, PROFILES_PER_PAGE); - for (i = 0; i < pages; i++) { + for (i = 1; i < pages; i++) { pg->next = (void *)get_zeroed_page(GFP_KERNEL); if (!pg->next) goto out_free; @@ -572,7 +572,6 @@ free_page(tmp); } - free_page((unsigned long)stat->pages); stat->pages = NULL; stat->start = NULL; @@ -930,6 +929,19 @@ static struct pid * const ftrace_swapper_pid = &init_struct_pid; +static loff_t +ftrace_filter_lseek(struct file *file, loff_t offset, int whence) +{ + loff_t ret; + + if (file->f_mode & FMODE_READ) + ret = seq_lseek(file, offset, whence); + else + file->f_pos = ret = 1; + + return ret; +} + #ifdef CONFIG_DYNAMIC_FTRACE #ifndef CONFIG_FTRACE_MCOUNT_RECORD @@ -948,7 +960,7 @@ }; enum { - FTRACE_ENABLE_CALLS = (1 << 0), + FTRACE_UPDATE_CALLS = (1 << 0), FTRACE_DISABLE_CALLS = (1 << 1), FTRACE_UPDATE_TRACE_FUNC = (1 << 2), FTRACE_START_FUNC_RET = (1 << 3), @@ -1519,7 +1531,7 @@ static int -__ftrace_replace_code(struct dyn_ftrace *rec, int enable) +__ftrace_replace_code(struct dyn_ftrace *rec, int update) { unsigned long ftrace_addr; unsigned long flag = 0UL; @@ -1527,17 +1539,17 @@ ftrace_addr = (unsigned long)FTRACE_ADDR; /* - * If we are enabling tracing: + * If we are updating calls: * * If the record has a ref count, then we need to enable it * because someone is using it. * * Otherwise we make sure its disabled. * - * If we are disabling tracing, then disable all records that + * If we are disabling calls, then disable all records that * are enabled. */ - if (enable && (rec->flags & ~FTRACE_FL_MASK)) + if (update && (rec->flags & ~FTRACE_FL_MASK)) flag = FTRACE_FL_ENABLED; /* If the state of this record hasn't changed, then do nothing */ @@ -1553,7 +1565,7 @@ return ftrace_make_nop(NULL, rec, ftrace_addr); } -static void ftrace_replace_code(int enable) +static void ftrace_replace_code(int update) { struct dyn_ftrace *rec; struct ftrace_page *pg; @@ -1567,7 +1579,7 @@ if (rec->flags & FTRACE_FL_FREE) continue; - failed = __ftrace_replace_code(rec, enable); + failed = __ftrace_replace_code(rec, update); if (failed) { ftrace_bug(failed, rec->ip); /* Stop processing */ @@ -1623,7 +1635,7 @@ */ function_trace_stop++; - if (*command & FTRACE_ENABLE_CALLS) + if (*command & FTRACE_UPDATE_CALLS) ftrace_replace_code(1); else if (*command & FTRACE_DISABLE_CALLS) ftrace_replace_code(0); @@ -1691,7 +1703,7 @@ return -ENODEV; ftrace_start_up++; - command |= FTRACE_ENABLE_CALLS; + command |= FTRACE_UPDATE_CALLS; /* ops marked global share the filter hashes */ if (ops->flags & FTRACE_OPS_FL_GLOBAL) { @@ -1743,8 +1755,7 @@ if (ops != &global_ops || !global_start_up) ops->flags &= ~FTRACE_OPS_FL_ENABLED; - if (!ftrace_start_up) - command |= FTRACE_DISABLE_CALLS; + command |= FTRACE_UPDATE_CALLS; if (saved_ftrace_func != ftrace_trace_function) { saved_ftrace_func = ftrace_trace_function; @@ -1766,7 +1777,7 @@ saved_ftrace_func = NULL; /* ftrace_start_up is true if we want ftrace running */ if (ftrace_start_up) - ftrace_run_update_code(FTRACE_ENABLE_CALLS); + ftrace_run_update_code(FTRACE_UPDATE_CALLS); } static void ftrace_shutdown_sysctl(void) @@ -2075,7 +2086,7 @@ { iter->pos = 0; iter->func_pos = 0; - iter->flags &= ~(FTRACE_ITER_PRINTALL & FTRACE_ITER_HASH); + iter->flags &= ~(FTRACE_ITER_PRINTALL | FTRACE_ITER_HASH); } static void *t_start(struct seq_file *m, loff_t *pos) @@ -2317,19 +2328,6 @@ inode, file); } -static loff_t -ftrace_regex_lseek(struct file *file, loff_t offset, int origin) -{ - loff_t ret; - - if (file->f_mode & FMODE_READ) - ret = seq_lseek(file, offset, origin); - else - file->f_pos = ret = 1; - - return ret; -} - static int ftrace_match(char *str, char *regex, int len, int type) { int matched = 0; @@ -2726,8 +2724,8 @@ continue; } - hlist_del(&entry->node); - call_rcu(&entry->rcu, ftrace_free_entry_rcu); + hlist_del_rcu(&entry->node); + call_rcu_sched(&entry->rcu, ftrace_free_entry_rcu); } } __disable_ftrace_function_probe(); @@ -2919,7 +2917,7 @@ ret = ftrace_hash_move(ops, enable, orig_hash, hash); if (!ret && ops->flags & FTRACE_OPS_FL_ENABLED && ftrace_enabled) - ftrace_run_update_code(FTRACE_ENABLE_CALLS); + ftrace_run_update_code(FTRACE_UPDATE_CALLS); mutex_unlock(&ftrace_lock); @@ -3107,7 +3105,7 @@ orig_hash, iter->hash); if (!ret && (iter->ops->flags & FTRACE_OPS_FL_ENABLED) && ftrace_enabled) - ftrace_run_update_code(FTRACE_ENABLE_CALLS); + ftrace_run_update_code(FTRACE_UPDATE_CALLS); mutex_unlock(&ftrace_lock); } @@ -3136,7 +3134,7 @@ .open = ftrace_filter_open, .read = seq_read, .write = ftrace_filter_write, - .llseek = ftrace_regex_lseek, + .llseek = ftrace_filter_lseek, .release = ftrace_regex_release, }; @@ -3144,7 +3142,7 @@ .open = ftrace_notrace_open, .read = seq_read, .write = ftrace_notrace_write, - .llseek = ftrace_regex_lseek, + .llseek = ftrace_filter_lseek, .release = ftrace_regex_release, }; @@ -3305,7 +3303,8 @@ if (fail) return -EINVAL; - ftrace_graph_filter_enabled = 1; + ftrace_graph_filter_enabled = !!(*idx); + return 0; } @@ -3352,8 +3351,8 @@ .open = ftrace_graph_open, .read = seq_read, .write = ftrace_graph_write, + .llseek = ftrace_filter_lseek, .release = ftrace_graph_release, - .llseek = seq_lseek, }; #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ @@ -3455,35 +3454,49 @@ ftrace_process_locs(mod, start, end); } -static int ftrace_module_notify(struct notifier_block *self, - unsigned long val, void *data) +static int ftrace_module_notify_enter(struct notifier_block *self, + unsigned long val, void *data) { struct module *mod = data; - switch (val) { - case MODULE_STATE_COMING: + if (val == MODULE_STATE_COMING) ftrace_init_module(mod, mod->ftrace_callsites, mod->ftrace_callsites + mod->num_ftrace_callsites); - break; - case MODULE_STATE_GOING: + return 0; +} + +static int ftrace_module_notify_exit(struct notifier_block *self, + unsigned long val, void *data) +{ + struct module *mod = data; + + if (val == MODULE_STATE_GOING) ftrace_release_mod(mod); - break; - } return 0; } #else -static int ftrace_module_notify(struct notifier_block *self, - unsigned long val, void *data) +static int ftrace_module_notify_enter(struct notifier_block *self, + unsigned long val, void *data) +{ + return 0; +} +static int ftrace_module_notify_exit(struct notifier_block *self, + unsigned long val, void *data) { return 0; } #endif /* CONFIG_MODULES */ -struct notifier_block ftrace_module_nb = { - .notifier_call = ftrace_module_notify, - .priority = 0, +struct notifier_block ftrace_module_enter_nb = { + .notifier_call = ftrace_module_notify_enter, + .priority = INT_MAX, /* Run before anything that can use kprobes */ +}; + +struct notifier_block ftrace_module_exit_nb = { + .notifier_call = ftrace_module_notify_exit, + .priority = INT_MIN, /* Run after anything that can remove kprobes */ }; extern unsigned long __start_mcount_loc[]; @@ -3517,9 +3530,13 @@ __start_mcount_loc, __stop_mcount_loc); - ret = register_module_notifier(&ftrace_module_nb); + ret = register_module_notifier(&ftrace_module_enter_nb); + if (ret) + pr_warning("Failed to register trace ftrace module enter notifier\n"); + + ret = register_module_notifier(&ftrace_module_exit_nb); if (ret) - pr_warning("Failed to register trace ftrace module notifier\n"); + pr_warning("Failed to register trace ftrace module exit notifier\n"); set_ftrace_early_filters(); @@ -3827,7 +3844,7 @@ .open = ftrace_pid_open, .write = ftrace_pid_write, .read = seq_read, - .llseek = seq_lseek, + .llseek = ftrace_filter_lseek, .release = ftrace_pid_release, }; @@ -3947,12 +3964,8 @@ ftrace_startup_sysctl(); /* we are starting ftrace again */ - if (ftrace_ops_list != &ftrace_list_end) { - if (ftrace_ops_list->next == &ftrace_list_end) - ftrace_trace_function = ftrace_ops_list->func; - else - ftrace_trace_function = ftrace_ops_list_func; - } + if (ftrace_ops_list != &ftrace_list_end) + update_ftrace_function(); } else { /* stopping ftrace calls (just send to ftrace_stub) */ --- linux-3.2.0.orig/kernel/trace/trace_output.c +++ linux-3.2.0/kernel/trace/trace_output.c @@ -638,6 +638,8 @@ { u64 next_ts; int ret; + /* trace_find_next_entry will reset ent_size */ + int ent_size = iter->ent_size; struct trace_seq *s = &iter->seq; struct trace_entry *entry = iter->ent, *next_entry = trace_find_next_entry(iter, NULL, @@ -646,6 +648,9 @@ unsigned long abs_usecs = ns2usecs(iter->ts - iter->tr->time_start); unsigned long rel_usecs; + /* Restore the original ent_size */ + iter->ent_size = ent_size; + if (!next_entry) next_ts = iter->ts; rel_usecs = ns2usecs(next_ts - iter->ts); --- linux-3.2.0.orig/kernel/trace/trace_irqsoff.c +++ linux-3.2.0/kernel/trace/trace_irqsoff.c @@ -32,7 +32,7 @@ static int trace_type __read_mostly; -static int save_lat_flag; +static int save_flags; static void stop_irqsoff_tracer(struct trace_array *tr, int graph); static int start_irqsoff_tracer(struct trace_array *tr, int graph); @@ -546,8 +546,11 @@ static void __irqsoff_tracer_init(struct trace_array *tr) { - save_lat_flag = trace_flags & TRACE_ITER_LATENCY_FMT; - trace_flags |= TRACE_ITER_LATENCY_FMT; + save_flags = trace_flags; + + /* non overwrite screws up the latency tracers */ + set_tracer_flag(TRACE_ITER_OVERWRITE, 1); + set_tracer_flag(TRACE_ITER_LATENCY_FMT, 1); tracing_max_latency = 0; irqsoff_trace = tr; @@ -561,10 +564,13 @@ static void irqsoff_tracer_reset(struct trace_array *tr) { + int lat_flag = save_flags & TRACE_ITER_LATENCY_FMT; + int overwrite_flag = save_flags & TRACE_ITER_OVERWRITE; + stop_irqsoff_tracer(tr, is_graph()); - if (!save_lat_flag) - trace_flags &= ~TRACE_ITER_LATENCY_FMT; + set_tracer_flag(TRACE_ITER_LATENCY_FMT, lat_flag); + set_tracer_flag(TRACE_ITER_OVERWRITE, overwrite_flag); } static void irqsoff_tracer_start(struct trace_array *tr) @@ -597,6 +603,7 @@ .print_line = irqsoff_print_line, .flags = &tracer_flags, .set_flag = irqsoff_set_flag, + .flag_changed = trace_keep_overwrite, #ifdef CONFIG_FTRACE_SELFTEST .selftest = trace_selftest_startup_irqsoff, #endif @@ -630,6 +637,7 @@ .print_line = irqsoff_print_line, .flags = &tracer_flags, .set_flag = irqsoff_set_flag, + .flag_changed = trace_keep_overwrite, #ifdef CONFIG_FTRACE_SELFTEST .selftest = trace_selftest_startup_preemptoff, #endif @@ -665,6 +673,7 @@ .print_line = irqsoff_print_line, .flags = &tracer_flags, .set_flag = irqsoff_set_flag, + .flag_changed = trace_keep_overwrite, #ifdef CONFIG_FTRACE_SELFTEST .selftest = trace_selftest_startup_preemptirqsoff, #endif --- linux-3.2.0.orig/kernel/trace/trace_stack.c +++ linux-3.2.0/kernel/trace/trace_stack.c @@ -17,13 +17,24 @@ #define STACK_TRACE_ENTRIES 500 +#ifdef CC_USING_FENTRY +# define fentry 1 +#else +# define fentry 0 +#endif + static unsigned long stack_dump_trace[STACK_TRACE_ENTRIES+1] = { [0 ... (STACK_TRACE_ENTRIES)] = ULONG_MAX }; static unsigned stack_dump_index[STACK_TRACE_ENTRIES]; +/* + * Reserve one entry for the passed in ip. This will allow + * us to remove most or all of the stack size overhead + * added by the stack tracer itself. + */ static struct stack_trace max_stack_trace = { - .max_entries = STACK_TRACE_ENTRIES, - .entries = stack_dump_trace, + .max_entries = STACK_TRACE_ENTRIES - 1, + .entries = &stack_dump_trace[1], }; static unsigned long max_stack_size; @@ -37,25 +48,34 @@ int stack_tracer_enabled; static int last_stack_tracer_enabled; -static inline void check_stack(void) +static inline void +check_stack(unsigned long ip, unsigned long *stack) { unsigned long this_size, flags; unsigned long *p, *top, *start; + static int tracer_frame; + int frame_size = ACCESS_ONCE(tracer_frame); int i; - this_size = ((unsigned long)&this_size) & (THREAD_SIZE-1); + this_size = ((unsigned long)stack) & (THREAD_SIZE-1); this_size = THREAD_SIZE - this_size; + /* Remove the frame of the tracer */ + this_size -= frame_size; if (this_size <= max_stack_size) return; /* we do not handle interrupt stacks yet */ - if (!object_is_on_stack(&this_size)) + if (!object_is_on_stack(stack)) return; local_irq_save(flags); arch_spin_lock(&max_stack_lock); + /* In case another CPU set the tracer_frame on us */ + if (unlikely(!frame_size)) + this_size -= tracer_frame; + /* a race could have already updated it */ if (this_size <= max_stack_size) goto out; @@ -68,10 +88,18 @@ save_stack_trace(&max_stack_trace); /* + * Add the passed in ip from the function tracer. + * Searching for this on the stack will skip over + * most of the overhead from the stack tracer itself. + */ + stack_dump_trace[0] = ip; + max_stack_trace.nr_entries++; + + /* * Now find where in the stack these are. */ i = 0; - start = &this_size; + start = stack; top = (unsigned long *) (((unsigned long)start & ~(THREAD_SIZE-1)) + THREAD_SIZE); @@ -95,6 +123,18 @@ found = 1; /* Start the search from here */ start = p + 1; + /* + * We do not want to show the overhead + * of the stack tracer stack in the + * max stack. If we haven't figured + * out what that is, then figure it out + * now. + */ + if (unlikely(!tracer_frame) && i == 1) { + tracer_frame = (p - stack) * + sizeof(unsigned long); + max_stack_size -= tracer_frame; + } } } @@ -110,6 +150,7 @@ static void stack_trace_call(unsigned long ip, unsigned long parent_ip) { + unsigned long stack; int cpu; if (unlikely(!ftrace_enabled || stack_trace_disabled)) @@ -122,7 +163,26 @@ if (per_cpu(trace_active, cpu)++ != 0) goto out; - check_stack(); + /* + * When fentry is used, the traced function does not get + * its stack frame set up, and we lose the parent. + * The ip is pretty useless because the function tracer + * was called before that function set up its stack frame. + * In this case, we use the parent ip. + * + * By adding the return address of either the parent ip + * or the current ip we can disregard most of the stack usage + * caused by the stack tracer itself. + * + * The function tracer always reports the address of where the + * mcount call was, but the stack will hold the return address. + */ + if (fentry) + ip = parent_ip; + else + ip += MCOUNT_INSN_SIZE; + + check_stack(ip, &stack); out: per_cpu(trace_active, cpu)--; @@ -351,6 +411,8 @@ struct dentry *d_tracer; d_tracer = tracing_init_dentry(); + if (!d_tracer) + return 0; trace_create_file("stack_max_size", 0644, d_tracer, &max_stack_size, &stack_max_size_fops); --- linux-3.2.0.orig/kernel/trace/trace_selftest.c +++ linux-3.2.0/kernel/trace/trace_selftest.c @@ -461,8 +461,6 @@ /* Maximum number of functions to trace before diagnosing a hang */ #define GRAPH_MAX_FUNC_TEST 100000000 -static void -__ftrace_dump(bool disable_tracing, enum ftrace_dump_mode oops_dump_mode); static unsigned int graph_hang_thresh; /* Wrap the real function entry probe to avoid possible hanging */ @@ -472,8 +470,11 @@ if (unlikely(++graph_hang_thresh > GRAPH_MAX_FUNC_TEST)) { ftrace_graph_stop(); printk(KERN_WARNING "BUG: Function graph tracer hang!\n"); - if (ftrace_dump_on_oops) - __ftrace_dump(false, DUMP_ALL); + if (ftrace_dump_on_oops) { + ftrace_dump(DUMP_ALL); + /* ftrace_dump() disables tracing */ + tracing_on(); + } return 0; } --- linux-3.2.0.orig/kernel/trace/ring_buffer.c +++ linux-3.2.0/kernel/trace/ring_buffer.c @@ -2683,7 +2683,7 @@ unsigned long flags; struct ring_buffer_per_cpu *cpu_buffer; struct buffer_page *bpage; - unsigned long ret; + unsigned long ret = 0; if (!cpumask_test_cpu(cpu, buffer->cpumask)) return 0; @@ -2698,7 +2698,8 @@ bpage = cpu_buffer->reader_page; else bpage = rb_set_head_page(cpu_buffer); - ret = bpage->page->time_stamp; + if (bpage) + ret = bpage->page->time_stamp; raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); return ret; @@ -3005,6 +3006,8 @@ * Splice the empty reader page into the list around the head. */ reader = rb_set_head_page(cpu_buffer); + if (!reader) + goto out; cpu_buffer->reader_page->list.next = rb_list_head(reader->list.next); cpu_buffer->reader_page->list.prev = reader->list.prev; --- linux-3.2.0.orig/kernel/trace/trace_stat.c +++ linux-3.2.0/kernel/trace/trace_stat.c @@ -307,6 +307,8 @@ struct dentry *d_tracing; d_tracing = tracing_init_dentry(); + if (!d_tracing) + return 0; stat_dir = debugfs_create_dir("trace_stat", d_tracing); if (!stat_dir) --- linux-3.2.0.orig/kernel/trace/trace_syscalls.c +++ linux-3.2.0/kernel/trace/trace_syscalls.c @@ -303,6 +303,8 @@ struct syscall_metadata *sys_data; struct ring_buffer_event *event; struct ring_buffer *buffer; + unsigned long irq_flags; + int pc; int size; int syscall_nr; @@ -318,8 +320,11 @@ size = sizeof(*entry) + sizeof(unsigned long) * sys_data->nb_args; + local_save_flags(irq_flags); + pc = preempt_count(); + event = trace_current_buffer_lock_reserve(&buffer, - sys_data->enter_event->event.type, size, 0, 0); + sys_data->enter_event->event.type, size, irq_flags, pc); if (!event) return; @@ -329,7 +334,8 @@ if (!filter_current_check_discard(buffer, sys_data->enter_event, entry, event)) - trace_current_buffer_unlock_commit(buffer, event, 0, 0); + trace_current_buffer_unlock_commit(buffer, event, + irq_flags, pc); } void ftrace_syscall_exit(void *ignore, struct pt_regs *regs, long ret) @@ -338,6 +344,8 @@ struct syscall_metadata *sys_data; struct ring_buffer_event *event; struct ring_buffer *buffer; + unsigned long irq_flags; + int pc; int syscall_nr; syscall_nr = syscall_get_nr(current, regs); @@ -350,8 +358,12 @@ if (!sys_data) return; + local_save_flags(irq_flags); + pc = preempt_count(); + event = trace_current_buffer_lock_reserve(&buffer, - sys_data->exit_event->event.type, sizeof(*entry), 0, 0); + sys_data->exit_event->event.type, sizeof(*entry), + irq_flags, pc); if (!event) return; @@ -361,7 +373,8 @@ if (!filter_current_check_discard(buffer, sys_data->exit_event, entry, event)) - trace_current_buffer_unlock_commit(buffer, event, 0, 0); + trace_current_buffer_unlock_commit(buffer, event, + irq_flags, pc); } int reg_event_syscall_enter(struct ftrace_event_call *call) --- linux-3.2.0.orig/kernel/trace/trace.h +++ linux-3.2.0/kernel/trace/trace.h @@ -271,10 +271,14 @@ enum print_line_t (*print_line)(struct trace_iterator *iter); /* If you handled the flag setting, return 0 */ int (*set_flag)(u32 old_flags, u32 bit, int set); + /* Return 0 if OK with change, else return non-zero */ + int (*flag_changed)(struct tracer *tracer, + u32 mask, int set); struct tracer *next; struct tracer_flags *flags; int print_max; int use_max_tr; + bool enabled; }; @@ -815,6 +819,9 @@ extern const char *__start___trace_bprintk_fmt[]; extern const char *__stop___trace_bprintk_fmt[]; +int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set); +int set_tracer_flag(unsigned int mask, int enabled); + #undef FTRACE_ENTRY #define FTRACE_ENTRY(call, struct_name, id, tstruct, print) \ extern struct ftrace_event_call \ --- linux-3.2.0.orig/kernel/irq/chip.c +++ linux-3.2.0/kernel/irq/chip.c @@ -61,8 +61,7 @@ return -EINVAL; type &= IRQ_TYPE_SENSE_MASK; - if (type != IRQ_TYPE_NONE) - ret = __irq_set_trigger(desc, irq, type); + ret = __irq_set_trigger(desc, irq, type); irq_put_desc_busunlock(desc, flags); return ret; } @@ -157,19 +156,22 @@ irqd_set(&desc->irq_data, IRQD_IRQ_MASKED); } -int irq_startup(struct irq_desc *desc) +int irq_startup(struct irq_desc *desc, bool resend) { + int ret = 0; + irq_state_clr_disabled(desc); desc->depth = 0; if (desc->irq_data.chip->irq_startup) { - int ret = desc->irq_data.chip->irq_startup(&desc->irq_data); + ret = desc->irq_data.chip->irq_startup(&desc->irq_data); irq_state_clr_masked(desc); - return ret; + } else { + irq_enable(desc); } - - irq_enable(desc); - return 0; + if (resend) + check_irq_resend(desc, desc->irq_data.irq); + return ret; } void irq_shutdown(struct irq_desc *desc) @@ -330,6 +332,24 @@ } EXPORT_SYMBOL_GPL(handle_simple_irq); +/* + * Called unconditionally from handle_level_irq() and only for oneshot + * interrupts from handle_fasteoi_irq() + */ +static void cond_unmask_irq(struct irq_desc *desc) +{ + /* + * We need to unmask in the following cases: + * - Standard level irq (IRQF_ONESHOT is not set) + * - Oneshot irq which did not wake the thread (caused by a + * spurious interrupt or a primary handler handling it + * completely). + */ + if (!irqd_irq_disabled(&desc->irq_data) && + irqd_irq_masked(&desc->irq_data) && !desc->threads_oneshot) + unmask_irq(desc); +} + /** * handle_level_irq - Level type irq handler * @irq: the interrupt number @@ -362,8 +382,8 @@ handle_irq_event(desc); - if (!irqd_irq_disabled(&desc->irq_data) && !(desc->istate & IRQS_ONESHOT)) - unmask_irq(desc); + cond_unmask_irq(desc); + out_unlock: raw_spin_unlock(&desc->lock); } @@ -417,6 +437,9 @@ preflow_handler(desc); handle_irq_event(desc); + if (desc->istate & IRQS_ONESHOT) + cond_unmask_irq(desc); + out_eoi: desc->irq_data.chip->irq_eoi(&desc->irq_data); out_unlock: @@ -625,7 +648,7 @@ irq_settings_set_noprobe(desc); irq_settings_set_norequest(desc); irq_settings_set_nothread(desc); - irq_startup(desc); + irq_startup(desc, true); } out: irq_put_desc_busunlock(desc, flags); --- linux-3.2.0.orig/kernel/irq/autoprobe.c +++ linux-3.2.0/kernel/irq/autoprobe.c @@ -53,7 +53,7 @@ if (desc->irq_data.chip->irq_set_type) desc->irq_data.chip->irq_set_type(&desc->irq_data, IRQ_TYPE_PROBE); - irq_startup(desc); + irq_startup(desc, false); } raw_spin_unlock_irq(&desc->lock); } @@ -70,7 +70,7 @@ raw_spin_lock_irq(&desc->lock); if (!desc->action && irq_settings_can_probe(desc)) { desc->istate |= IRQS_AUTODETECT | IRQS_WAITING; - if (irq_startup(desc)) + if (irq_startup(desc, false)) desc->istate |= IRQS_PENDING; } raw_spin_unlock_irq(&desc->lock); --- linux-3.2.0.orig/kernel/irq/manage.c +++ linux-3.2.0/kernel/irq/manage.c @@ -539,9 +539,9 @@ return 0; if (irq_settings_can_request(desc)) { - if (desc->action) - if (irqflags & desc->action->flags & IRQF_SHARED) - canrequest =1; + if (!desc->action || + irqflags & desc->action->flags & IRQF_SHARED) + canrequest = 1; } irq_put_desc_unlock(desc, flags); return canrequest; @@ -701,6 +701,7 @@ irq_thread_check_affinity(struct irq_desc *desc, struct irqaction *action) { cpumask_var_t mask; + bool valid = true; if (!test_and_clear_bit(IRQTF_AFFINITY, &action->thread_flags)) return; @@ -715,10 +716,18 @@ } raw_spin_lock_irq(&desc->lock); - cpumask_copy(mask, desc->irq_data.affinity); + /* + * This code is triggered unconditionally. Check the affinity + * mask pointer. For CPU_MASK_OFFSTACK=n this is optimized out. + */ + if (desc->irq_data.affinity) + cpumask_copy(mask, desc->irq_data.affinity); + else + valid = false; raw_spin_unlock_irq(&desc->lock); - set_cpus_allowed_ptr(current, mask); + if (valid) + set_cpus_allowed_ptr(current, mask); free_cpumask_var(mask); } #else @@ -773,7 +782,7 @@ struct irqaction *action); int wake; - if (force_irqthreads & test_bit(IRQTF_FORCED_THREAD, + if (force_irqthreads && test_bit(IRQTF_FORCED_THREAD, &action->thread_flags)) handler_fn = irq_forced_thread_fn; else @@ -950,6 +959,16 @@ */ get_task_struct(t); new->thread = t; + /* + * Tell the thread to set its affinity. This is + * important for shared interrupt handlers as we do + * not invoke setup_affinity() for the secondary + * handlers as everything is already set up. Even for + * interrupts marked with IRQF_NO_BALANCE this is + * correct as we want the thread to move to the cpu(s) + * on which the requesting code placed the interrupt. + */ + set_bit(IRQTF_AFFINITY, &new->thread_flags); } if (!alloc_cpumask_var(&mask, GFP_KERNEL)) { @@ -985,6 +1004,11 @@ /* add new interrupt at end of irq queue */ do { + /* + * Or all existing action->thread_mask bits, + * so we can find the next zero bit for this + * new action. + */ thread_mask |= old->thread_mask; old_ptr = &old->next; old = *old_ptr; @@ -993,14 +1017,41 @@ } /* - * Setup the thread mask for this irqaction. Unlikely to have - * 32 resp 64 irqs sharing one line, but who knows. + * Setup the thread mask for this irqaction for ONESHOT. For + * !ONESHOT irqs the thread mask is 0 so we can avoid a + * conditional in irq_wake_thread(). */ - if (new->flags & IRQF_ONESHOT && thread_mask == ~0UL) { - ret = -EBUSY; - goto out_mask; + if (new->flags & IRQF_ONESHOT) { + /* + * Unlikely to have 32 resp 64 irqs sharing one line, + * but who knows. + */ + if (thread_mask == ~0UL) { + ret = -EBUSY; + goto out_mask; + } + /* + * The thread_mask for the action is or'ed to + * desc->thread_active to indicate that the + * IRQF_ONESHOT thread handler has been woken, but not + * yet finished. The bit is cleared when a thread + * completes. When all threads of a shared interrupt + * line have completed desc->threads_active becomes + * zero and the interrupt line is unmasked. See + * handle.c:irq_wake_thread() for further information. + * + * If no thread is woken by primary (hard irq context) + * interrupt handlers, then desc->threads_active is + * also checked for zero to unmask the irq line in the + * affected hard irq flow handlers + * (handle_[fasteoi|level]_irq). + * + * The new action gets the first zero bit of + * thread_mask assigned. See the loop above which or's + * all existing action->thread_mask bits. + */ + new->thread_mask = 1 << ffz(thread_mask); } - new->thread_mask = 1 << ffz(thread_mask); if (!shared) { init_waitqueue_head(&desc->wait_for_threads); @@ -1027,7 +1078,7 @@ desc->istate |= IRQS_ONESHOT; if (irq_settings_can_autoenable(desc)) - irq_startup(desc); + irq_startup(desc, true); else /* Undo nested disables: */ desc->depth = 1; --- linux-3.2.0.orig/kernel/irq/internals.h +++ linux-3.2.0/kernel/irq/internals.h @@ -67,7 +67,7 @@ extern void __disable_irq(struct irq_desc *desc, unsigned int irq, bool susp); extern void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume); -extern int irq_startup(struct irq_desc *desc); +extern int irq_startup(struct irq_desc *desc, bool resend); extern void irq_shutdown(struct irq_desc *desc); extern void irq_enable(struct irq_desc *desc); extern void irq_disable(struct irq_desc *desc); --- linux-3.2.0.orig/kernel/irq/migration.c +++ linux-3.2.0/kernel/irq/migration.c @@ -43,12 +43,16 @@ * masking the irqs. */ if (likely(cpumask_any_and(desc->pending_mask, cpu_online_mask) - < nr_cpu_ids)) - if (!chip->irq_set_affinity(&desc->irq_data, - desc->pending_mask, false)) { + < nr_cpu_ids)) { + int ret = chip->irq_set_affinity(&desc->irq_data, + desc->pending_mask, false); + switch (ret) { + case IRQ_SET_MASK_OK: cpumask_copy(desc->irq_data.affinity, desc->pending_mask); + case IRQ_SET_MASK_OK_NOCOPY: irq_set_thread_affinity(desc); } + } cpumask_clear(desc->pending_mask); } --- linux-3.2.0.orig/kernel/irq/spurious.c +++ linux-3.2.0/kernel/irq/spurious.c @@ -80,13 +80,11 @@ /* * All handlers must agree on IRQF_SHARED, so we test just the - * first. Check for action->next as well. + * first. */ action = desc->action; if (!action || !(action->flags & IRQF_SHARED) || - (action->flags & __IRQF_TIMER) || - (action->handler(irq, action->dev_id) == IRQ_HANDLED) || - !action->next) + (action->flags & __IRQF_TIMER)) goto out; /* Already running on another processor */ @@ -104,6 +102,7 @@ do { if (handle_irq_event(desc) == IRQ_HANDLED) ret = IRQ_HANDLED; + /* Make sure that there is still a valid action */ action = desc->action; } while ((desc->istate & IRQS_PENDING) && action); desc->istate &= ~IRQS_POLL_INPROGRESS; --- linux-3.2.0.orig/kernel/irq/handle.c +++ linux-3.2.0/kernel/irq/handle.c @@ -117,7 +117,7 @@ handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action) { irqreturn_t retval = IRQ_NONE; - unsigned int random = 0, irq = desc->irq_data.irq; + unsigned int flags = 0, irq = desc->irq_data.irq; do { irqreturn_t res; @@ -145,7 +145,7 @@ /* Fall through to add to randomness */ case IRQ_HANDLED: - random |= action->flags; + flags |= action->flags; break; default: @@ -156,8 +156,7 @@ action = action->next; } while (action); - if (random & IRQF_SAMPLE_RANDOM) - add_interrupt_randomness(irq); + add_interrupt_randomness(irq, flags); if (!noirqdebug) note_interrupt(irq, desc, retval); --- linux-3.2.0.orig/kernel/time/ntp.c +++ linux-3.2.0/kernel/time/ntp.c @@ -31,8 +31,6 @@ u64 tick_length; static u64 tick_length_base; -static struct hrtimer leap_timer; - #define MAX_TICKADJ 500LL /* usecs */ #define MAX_TICKADJ_SCALED \ (((MAX_TICKADJ * NSEC_PER_USEC) << NTP_SCALE_SHIFT) / NTP_INTERVAL_FREQ) @@ -275,7 +273,7 @@ time_status |= STA_MODE; - return div_s64(offset64 << (NTP_SCALE_SHIFT - SHIFT_FLL), secs); + return div64_long(offset64 << (NTP_SCALE_SHIFT - SHIFT_FLL), secs); } static void ntp_update_offset(long offset) @@ -350,60 +348,60 @@ } /* - * Leap second processing. If in leap-insert state at the end of the - * day, the system clock is set back one second; if in leap-delete - * state, the system clock is set ahead one second. + * this routine handles the overflow of the microsecond field + * + * The tricky bits of code to handle the accurate clock support + * were provided by Dave Mills (Mills@UDEL.EDU) of NTP fame. + * They were originally developed for SUN and DEC kernels. + * All the kudos should go to Dave for this stuff. + * + * Also handles leap second processing, and returns leap offset */ -static enum hrtimer_restart ntp_leap_second(struct hrtimer *timer) +int second_overflow(unsigned long secs) { - enum hrtimer_restart res = HRTIMER_NORESTART; - - write_seqlock(&xtime_lock); + int leap = 0; + s64 delta; + /* + * Leap second processing. If in leap-insert state at the end of the + * day, the system clock is set back one second; if in leap-delete + * state, the system clock is set ahead one second. + */ switch (time_state) { case TIME_OK: + if (time_status & STA_INS) + time_state = TIME_INS; + else if (time_status & STA_DEL) + time_state = TIME_DEL; break; case TIME_INS: - timekeeping_leap_insert(-1); - time_state = TIME_OOP; - printk(KERN_NOTICE - "Clock: inserting leap second 23:59:60 UTC\n"); - hrtimer_add_expires_ns(&leap_timer, NSEC_PER_SEC); - res = HRTIMER_RESTART; + if (secs % 86400 == 0) { + leap = -1; + time_state = TIME_OOP; + time_tai++; + printk(KERN_NOTICE + "Clock: inserting leap second 23:59:60 UTC\n"); + } break; case TIME_DEL: - timekeeping_leap_insert(1); - time_tai--; - time_state = TIME_WAIT; - printk(KERN_NOTICE - "Clock: deleting leap second 23:59:59 UTC\n"); + if ((secs + 1) % 86400 == 0) { + leap = 1; + time_tai--; + time_state = TIME_WAIT; + printk(KERN_NOTICE + "Clock: deleting leap second 23:59:59 UTC\n"); + } break; case TIME_OOP: - time_tai++; time_state = TIME_WAIT; - /* fall through */ + break; + case TIME_WAIT: if (!(time_status & (STA_INS | STA_DEL))) time_state = TIME_OK; break; } - write_sequnlock(&xtime_lock); - - return res; -} - -/* - * this routine handles the overflow of the microsecond field - * - * The tricky bits of code to handle the accurate clock support - * were provided by Dave Mills (Mills@UDEL.EDU) of NTP fame. - * They were originally developed for SUN and DEC kernels. - * All the kudos should go to Dave for this stuff. - */ -void second_overflow(void) -{ - s64 delta; /* Bump the maxerror field */ time_maxerror += MAXFREQ / NSEC_PER_USEC; @@ -423,23 +421,25 @@ pps_dec_valid(); if (!time_adjust) - return; + goto out; if (time_adjust > MAX_TICKADJ) { time_adjust -= MAX_TICKADJ; tick_length += MAX_TICKADJ_SCALED; - return; + goto out; } if (time_adjust < -MAX_TICKADJ) { time_adjust += MAX_TICKADJ; tick_length -= MAX_TICKADJ_SCALED; - return; + goto out; } tick_length += (s64)(time_adjust * NSEC_PER_USEC / NTP_INTERVAL_FREQ) << NTP_SCALE_SHIFT; time_adjust = 0; +out: + return leap; } #ifdef CONFIG_GENERIC_CMOS_UPDATE @@ -501,27 +501,6 @@ static inline void notify_cmos_timer(void) { } #endif -/* - * Start the leap seconds timer: - */ -static inline void ntp_start_leap_timer(struct timespec *ts) -{ - long now = ts->tv_sec; - - if (time_status & STA_INS) { - time_state = TIME_INS; - now += 86400 - now % 86400; - hrtimer_start(&leap_timer, ktime_set(now, 0), HRTIMER_MODE_ABS); - - return; - } - - if (time_status & STA_DEL) { - time_state = TIME_DEL; - now += 86400 - (now + 1) % 86400; - hrtimer_start(&leap_timer, ktime_set(now, 0), HRTIMER_MODE_ABS); - } -} /* * Propagate a new txc->status value into the NTP state: @@ -546,22 +525,6 @@ time_status &= STA_RONLY; time_status |= txc->status & ~STA_RONLY; - switch (time_state) { - case TIME_OK: - ntp_start_leap_timer(ts); - break; - case TIME_INS: - case TIME_DEL: - time_state = TIME_OK; - ntp_start_leap_timer(ts); - case TIME_WAIT: - if (!(time_status & (STA_INS | STA_DEL))) - time_state = TIME_OK; - break; - case TIME_OOP: - hrtimer_restart(&leap_timer); - break; - } } /* * Called with the xtime lock held, so we can access and modify @@ -643,9 +606,6 @@ (txc->tick < 900000/USER_HZ || txc->tick > 1100000/USER_HZ)) return -EINVAL; - - if (txc->modes & ADJ_STATUS && time_state != TIME_OK) - hrtimer_cancel(&leap_timer); } if (txc->modes & ADJ_SETOFFSET) { @@ -967,6 +927,4 @@ void __init ntp_init(void) { ntp_clear(); - hrtimer_init(&leap_timer, CLOCK_REALTIME, HRTIMER_MODE_ABS); - leap_timer.function = ntp_leap_second; } --- linux-3.2.0.orig/kernel/time/tick-sched.c +++ linux-3.2.0/kernel/time/tick-sched.c @@ -430,6 +430,7 @@ */ if (!ts->tick_stopped) { select_nohz_load_balancer(1); + calc_load_enter_idle(); ts->idle_tick = hrtimer_get_expires(&ts->sched_timer); ts->tick_stopped = 1; @@ -508,9 +509,9 @@ hrtimer_get_expires(&ts->sched_timer), 0)) break; } - /* Update jiffies and reread time */ - tick_do_update_jiffies64(now); + /* Reread time and update jiffies */ now = ktime_get(); + tick_do_update_jiffies64(now); } } @@ -548,6 +549,7 @@ /* Update jiffies first */ select_nohz_load_balancer(0); tick_do_update_jiffies64(now); + update_cpu_load_nohz(); #ifndef CONFIG_VIRT_CPU_ACCOUNTING /* @@ -563,6 +565,7 @@ account_idle_ticks(ticks); #endif + calc_load_exit_idle(); touch_softlockup_watchdog(); /* * Cancel the scheduled timer and restore the tick @@ -830,7 +833,7 @@ hrtimer_cancel(&ts->sched_timer); # endif - ts->nohz_mode = NOHZ_MODE_INACTIVE; + memset(ts, 0, sizeof(*ts)); } #endif --- linux-3.2.0.orig/kernel/time/timekeeping.c +++ linux-3.2.0/kernel/time/timekeeping.c @@ -161,23 +161,43 @@ static struct timespec wall_to_monotonic __attribute__ ((aligned (16))); static struct timespec total_sleep_time; +/* Offset clock monotonic -> clock realtime */ +static ktime_t offs_real; + +/* Offset clock monotonic -> clock boottime */ +static ktime_t offs_boot; + /* * The raw monotonic time for the CLOCK_MONOTONIC_RAW posix clock. */ static struct timespec raw_time; -/* flag for if timekeeping is suspended */ -int __read_mostly timekeeping_suspended; +/* must hold write on xtime_lock */ +static void update_rt_offset(void) +{ + struct timespec tmp, *wtm = &wall_to_monotonic; + + set_normalized_timespec(&tmp, -wtm->tv_sec, -wtm->tv_nsec); + offs_real = timespec_to_ktime(tmp); +} -/* must hold xtime_lock */ -void timekeeping_leap_insert(int leapsecond) +/* must hold write on xtime_lock */ +static void timekeeping_update(bool clearntp) { - xtime.tv_sec += leapsecond; - wall_to_monotonic.tv_sec -= leapsecond; - update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock, - timekeeper.mult); + if (clearntp) { + timekeeper.ntp_error = 0; + ntp_clear(); + } + update_rt_offset(); + update_vsyscall(&xtime, &wall_to_monotonic, + timekeeper.clock, timekeeper.mult); } + + +/* flag for if timekeeping is suspended */ +int __read_mostly timekeeping_suspended; + /** * timekeeping_forward_now - update clock to the current time * @@ -362,7 +382,7 @@ struct timespec ts_delta; unsigned long flags; - if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC) + if (!timespec_valid_strict(tv)) return -EINVAL; write_seqlock_irqsave(&xtime_lock, flags); @@ -375,11 +395,7 @@ xtime = *tv; - timekeeper.ntp_error = 0; - ntp_clear(); - - update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock, - timekeeper.mult); + timekeeping_update(true); write_sequnlock_irqrestore(&xtime_lock, flags); @@ -401,6 +417,8 @@ int timekeeping_inject_offset(struct timespec *ts) { unsigned long flags; + struct timespec tmp; + int ret = 0; if ((unsigned long)ts->tv_nsec >= NSEC_PER_SEC) return -EINVAL; @@ -409,21 +427,24 @@ timekeeping_forward_now(); + tmp = timespec_add(xtime, *ts); + if (!timespec_valid_strict(&tmp)) { + ret = -EINVAL; + goto error; + } + xtime = timespec_add(xtime, *ts); wall_to_monotonic = timespec_sub(wall_to_monotonic, *ts); - timekeeper.ntp_error = 0; - ntp_clear(); - - update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock, - timekeeper.mult); +error: /* even if we error out, we forwarded the time, so call update */ + timekeeping_update(true); write_sequnlock_irqrestore(&xtime_lock, flags); /* signal hrtimers about time change */ clock_was_set(); - return 0; + return ret; } EXPORT_SYMBOL(timekeeping_inject_offset); @@ -570,7 +591,20 @@ struct timespec now, boot; read_persistent_clock(&now); + if (!timespec_valid_strict(&now)) { + pr_warn("WARNING: Persistent clock returned invalid value!\n" + " Check your CMOS/BIOS settings.\n"); + now.tv_sec = 0; + now.tv_nsec = 0; + } + read_boot_clock(&boot); + if (!timespec_valid_strict(&boot)) { + pr_warn("WARNING: Boot clock returned invalid value!\n" + " Check your CMOS/BIOS settings.\n"); + boot.tv_sec = 0; + boot.tv_nsec = 0; + } write_seqlock_irqsave(&xtime_lock, flags); @@ -591,6 +625,7 @@ } set_normalized_timespec(&wall_to_monotonic, -boot.tv_sec, -boot.tv_nsec); + update_rt_offset(); total_sleep_time.tv_sec = 0; total_sleep_time.tv_nsec = 0; write_sequnlock_irqrestore(&xtime_lock, flags); @@ -599,6 +634,12 @@ /* time in seconds when suspend began */ static struct timespec timekeeping_suspend_time; +static void update_sleep_time(struct timespec t) +{ + total_sleep_time = t; + offs_boot = timespec_to_ktime(t); +} + /** * __timekeeping_inject_sleeptime - Internal function to add sleep interval * @delta: pointer to a timespec delta value @@ -608,7 +649,7 @@ */ static void __timekeeping_inject_sleeptime(struct timespec *delta) { - if (!timespec_valid(delta)) { + if (!timespec_valid_strict(delta)) { printk(KERN_WARNING "__timekeeping_inject_sleeptime: Invalid " "sleep delta value!\n"); return; @@ -616,7 +657,7 @@ xtime = timespec_add(xtime, *delta); wall_to_monotonic = timespec_sub(wall_to_monotonic, *delta); - total_sleep_time = timespec_add(total_sleep_time, *delta); + update_sleep_time(timespec_add(total_sleep_time, *delta)); } @@ -645,10 +686,7 @@ __timekeeping_inject_sleeptime(delta); - timekeeper.ntp_error = 0; - ntp_clear(); - update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock, - timekeeper.mult); + timekeeping_update(true); write_sequnlock_irqrestore(&xtime_lock, flags); @@ -683,6 +721,7 @@ timekeeper.clock->cycle_last = timekeeper.clock->read(timekeeper.clock); timekeeper.ntp_error = 0; timekeeping_suspended = 0; + timekeeping_update(false); write_sequnlock_irqrestore(&xtime_lock, flags); touch_softlockup_watchdog(); @@ -942,13 +981,18 @@ timekeeper.xtime_nsec += timekeeper.xtime_interval << shift; while (timekeeper.xtime_nsec >= nsecps) { + int leap; timekeeper.xtime_nsec -= nsecps; xtime.tv_sec++; - second_overflow(); + leap = second_overflow(xtime.tv_sec); + xtime.tv_sec += leap; + wall_to_monotonic.tv_sec -= leap; + if (leap) + clock_was_set_delayed(); } /* Accumulate raw time */ - raw_nsecs = timekeeper.raw_interval << shift; + raw_nsecs = (u64)timekeeper.raw_interval << shift; raw_nsecs += raw_time.tv_nsec; if (raw_nsecs >= NSEC_PER_SEC) { u64 raw_secs = raw_nsecs; @@ -989,6 +1033,10 @@ #else offset = (clock->read(clock) - clock->cycle_last) & clock->mask; #endif + /* Check if there's really nothing to do */ + if (offset < timekeeper.cycle_interval) + return; + timekeeper.xtime_nsec = (s64)xtime.tv_nsec << timekeeper.shift; /* @@ -1050,14 +1098,17 @@ * xtime.tv_nsec isn't larger then NSEC_PER_SEC */ if (unlikely(xtime.tv_nsec >= NSEC_PER_SEC)) { + int leap; xtime.tv_nsec -= NSEC_PER_SEC; xtime.tv_sec++; - second_overflow(); + leap = second_overflow(xtime.tv_sec); + xtime.tv_sec += leap; + wall_to_monotonic.tv_sec -= leap; + if (leap) + clock_was_set_delayed(); } - /* check to see if there is a new clocksource to use */ - update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock, - timekeeper.mult); + timekeeping_update(false); } /** @@ -1216,6 +1267,40 @@ } while (read_seqretry(&xtime_lock, seq)); } +#ifdef CONFIG_HIGH_RES_TIMERS +/** + * ktime_get_update_offsets - hrtimer helper + * @real: pointer to storage for monotonic -> realtime offset + * @_boot: pointer to storage for monotonic -> boottime offset + * + * Returns current monotonic time and updates the offsets + * Called from hrtimer_interupt() or retrigger_next_event() + */ +ktime_t ktime_get_update_offsets(ktime_t *real, ktime_t *boot) +{ + ktime_t now; + unsigned int seq; + u64 secs, nsecs; + + do { + seq = read_seqbegin(&xtime_lock); + + secs = xtime.tv_sec; + nsecs = xtime.tv_nsec; + nsecs += timekeeping_get_ns(); + /* If arch requires, add in gettimeoffset() */ + nsecs += arch_gettimeoffset(); + + *real = offs_real; + *boot = offs_boot; + } while (read_seqretry(&xtime_lock, seq)); + + now = ktime_add_ns(ktime_set(secs, 0), nsecs); + now = ktime_sub(now, *real); + return now; +} +#endif + /** * ktime_get_monotonic_offset() - get wall_to_monotonic in ktime_t format */ --- linux-3.2.0.orig/kernel/time/tick-common.c +++ linux-3.2.0/kernel/time/tick-common.c @@ -323,6 +323,7 @@ */ dev->mode = CLOCK_EVT_MODE_UNUSED; clockevents_exchange_device(dev, NULL); + dev->event_handler = clockevents_handle_noop; td->evtdev = NULL; } raw_spin_unlock_irqrestore(&tick_device_lock, flags); --- linux-3.2.0.orig/kernel/time/tick-broadcast.c +++ linux-3.2.0/kernel/time/tick-broadcast.c @@ -66,12 +66,17 @@ */ int tick_check_broadcast_device(struct clock_event_device *dev) { - if ((tick_broadcast_device.evtdev && + struct clock_event_device *cur = tick_broadcast_device.evtdev; + + if ((dev->features & CLOCK_EVT_FEAT_DUMMY) || + (tick_broadcast_device.evtdev && tick_broadcast_device.evtdev->rating >= dev->rating) || (dev->features & CLOCK_EVT_FEAT_C3STOP)) return 0; clockevents_exchange_device(tick_broadcast_device.evtdev, dev); + if (cur) + cur->event_handler = clockevents_handle_noop; tick_broadcast_device.evtdev = dev; if (!cpumask_empty(tick_get_broadcast_mask())) tick_broadcast_start_periodic(dev); --- linux-3.2.0.orig/arch/Kconfig +++ linux-3.2.0/arch/Kconfig @@ -181,4 +181,28 @@ config ARCH_HAVE_NMI_SAFE_CMPXCHG bool +config HAVE_ARCH_SECCOMP_FILTER + bool + help + An arch should select this symbol if it provides all of these things: + - syscall_get_arch() + - syscall_get_arguments() + - syscall_rollback() + - syscall_set_return_value() + - SIGSYS siginfo_t support + - uses __secure_computing_int() or secure_computing() + - secure_computing is called from a ptrace_event()-safe context + - secure_computing return value is checked and a return value of -1 + results in the system call being skipped immediately. + +config SECCOMP_FILTER + def_bool y + depends on HAVE_ARCH_SECCOMP_FILTER && SECCOMP && NET + help + Enable tasks to build secure computing environments defined + in terms of Berkeley Packet Filter programs which implement + task-defined system call filtering polices. + + See Documentation/prctl/seccomp_filter.txt for details. + source "kernel/gcov/Kconfig" --- linux-3.2.0.orig/arch/alpha/include/asm/atomic.h +++ linux-3.2.0/arch/alpha/include/asm/atomic.h @@ -14,8 +14,8 @@ */ -#define ATOMIC_INIT(i) ( (atomic_t) { (i) } ) -#define ATOMIC64_INIT(i) ( (atomic64_t) { (i) } ) +#define ATOMIC_INIT(i) { (i) } +#define ATOMIC64_INIT(i) { (i) } #define atomic_read(v) (*(volatile int *)&(v)->counter) #define atomic64_read(v) (*(volatile long *)&(v)->counter) --- linux-3.2.0.orig/arch/alpha/include/asm/futex.h +++ linux-3.2.0/arch/alpha/include/asm/futex.h @@ -108,7 +108,7 @@ " lda $31,3b-2b(%0)\n" " .previous\n" : "+r"(ret), "=&r"(prev), "=&r"(cmp) - : "r"(uaddr), "r"((long)oldval), "r"(newval) + : "r"(uaddr), "r"((long)(int)oldval), "r"(newval) : "memory"); *uval = prev; --- linux-3.2.0.orig/arch/alpha/include/asm/socket.h +++ linux-3.2.0/arch/alpha/include/asm/socket.h @@ -69,9 +69,11 @@ #define SO_RXQ_OVFL 40 +#ifdef __KERNEL__ /* O_NONBLOCK clashes with the bits used for socket types. Therefore we * have to define SOCK_NONBLOCK to a different value here. */ #define SOCK_NONBLOCK 0x40000000 +#endif /* __KERNEL__ */ #endif /* _ASM_SOCKET_H */ --- linux-3.2.0.orig/arch/alpha/kernel/sys_nautilus.c +++ linux-3.2.0/arch/alpha/kernel/sys_nautilus.c @@ -189,6 +189,10 @@ extern void free_reserved_mem(void *, void *); extern void pcibios_claim_one_bus(struct pci_bus *); +static struct resource irongate_io = { + .name = "Irongate PCI IO", + .flags = IORESOURCE_IO, +}; static struct resource irongate_mem = { .name = "Irongate PCI MEM", .flags = IORESOURCE_MEM, @@ -210,6 +214,7 @@ irongate = pci_get_bus_and_slot(0, 0); bus->self = irongate; + bus->resource[0] = &irongate_io; bus->resource[1] = &irongate_mem; pci_bus_size_bridges(bus); --- linux-3.2.0.orig/arch/sparc/Kconfig +++ linux-3.2.0/arch/sparc/Kconfig @@ -583,6 +583,9 @@ depends on COMPAT && SYSVIPC default y +config KEYS_COMPAT + def_bool y if COMPAT && KEYS + endmenu source "net/Kconfig" --- linux-3.2.0.orig/arch/sparc/Makefile +++ linux-3.2.0/arch/sparc/Makefile @@ -31,7 +31,7 @@ #KBUILD_CFLAGS += -g -pipe -fcall-used-g5 -fcall-used-g7 KBUILD_CFLAGS += -m32 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 -KBUILD_AFLAGS += -m32 +KBUILD_AFLAGS += -m32 -Wa,-Av8 #LDFLAGS_vmlinux = -N -Ttext 0xf0004000 # Since 2.5.40, the first stage is left not btfix-ed. --- linux-3.2.0.orig/arch/sparc/include/asm/signal.h +++ linux-3.2.0/arch/sparc/include/asm/signal.h @@ -191,6 +191,7 @@ unsigned long sa_flags; void (*sa_restorer)(void); /* not used by Linux/SPARC yet */ }; +#define __ARCH_HAS_SA_RESTORER typedef struct sigaltstack { void __user *ss_sp; --- linux-3.2.0.orig/arch/sparc/include/asm/tlbflush_64.h +++ linux-3.2.0/arch/sparc/include/asm/tlbflush_64.h @@ -11,24 +11,40 @@ struct tlb_batch { struct mm_struct *mm; unsigned long tlb_nr; + unsigned long active; unsigned long vaddrs[TLB_BATCH_NR]; }; extern void flush_tsb_kernel_range(unsigned long start, unsigned long end); extern void flush_tsb_user(struct tlb_batch *tb); +extern void flush_tsb_user_page(struct mm_struct *mm, unsigned long vaddr); /* TLB flush operations. */ -extern void flush_tlb_pending(void); +static inline void flush_tlb_mm(struct mm_struct *mm) +{ +} + +static inline void flush_tlb_page(struct vm_area_struct *vma, + unsigned long vmaddr) +{ +} + +static inline void flush_tlb_range(struct vm_area_struct *vma, + unsigned long start, unsigned long end) +{ +} + +#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE -#define flush_tlb_range(vma,start,end) \ - do { (void)(start); flush_tlb_pending(); } while (0) -#define flush_tlb_page(vma,addr) flush_tlb_pending() -#define flush_tlb_mm(mm) flush_tlb_pending() +extern void flush_tlb_pending(void); +extern void arch_enter_lazy_mmu_mode(void); +extern void arch_leave_lazy_mmu_mode(void); +#define arch_flush_lazy_mmu_mode() do {} while (0) /* Local cpu only. */ extern void __flush_tlb_all(void); - +extern void __flush_tlb_page(unsigned long context, unsigned long vaddr); extern void __flush_tlb_kernel_range(unsigned long start, unsigned long end); #ifndef CONFIG_SMP @@ -38,15 +54,24 @@ __flush_tlb_kernel_range(start,end); \ } while (0) +static inline void global_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr) +{ + __flush_tlb_page(CTX_HWBITS(mm->context), vaddr); +} + #else /* CONFIG_SMP */ extern void smp_flush_tlb_kernel_range(unsigned long start, unsigned long end); +extern void smp_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr); #define flush_tlb_kernel_range(start, end) \ do { flush_tsb_kernel_range(start,end); \ smp_flush_tlb_kernel_range(start, end); \ } while (0) +#define global_flush_tlb_page(mm, vaddr) \ + smp_flush_tlb_page(mm, vaddr) + #endif /* ! CONFIG_SMP */ #endif /* _SPARC64_TLBFLUSH_H */ --- linux-3.2.0.orig/arch/sparc/include/asm/pgtable_64.h +++ linux-3.2.0/arch/sparc/include/asm/pgtable_64.h @@ -781,6 +781,7 @@ return remap_pfn_range(vma, from, phys_base >> PAGE_SHIFT, size, prot); } +#include #include /* We provide our own get_unmapped_area to cope with VA holes and --- linux-3.2.0.orig/arch/sparc/include/asm/system_64.h +++ linux-3.2.0/arch/sparc/include/asm/system_64.h @@ -140,8 +140,7 @@ * and 2 stores in this critical code path. -DaveM */ #define switch_to(prev, next, last) \ -do { flush_tlb_pending(); \ - save_and_clear_fpu(); \ +do { save_and_clear_fpu(); \ /* If you are tempted to conditionalize the following */ \ /* so that ASI is only written if it changes, think again. */ \ __asm__ __volatile__("wr %%g0, %0, %%asi" \ --- linux-3.2.0.orig/arch/sparc/include/asm/hugetlb.h +++ linux-3.2.0/arch/sparc/include/asm/hugetlb.h @@ -58,14 +58,20 @@ static inline void huge_ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep) { - ptep_set_wrprotect(mm, addr, ptep); + pte_t old_pte = *ptep; + set_huge_pte_at(mm, addr, ptep, pte_wrprotect(old_pte)); } static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty) { - return ptep_set_access_flags(vma, addr, ptep, pte, dirty); + int changed = !pte_same(*ptep, pte); + if (changed) { + set_huge_pte_at(vma->vm_mm, addr, ptep, pte); + flush_tlb_page(vma, addr); + } + return changed; } static inline pte_t huge_ptep_get(pte_t *ptep) --- linux-3.2.0.orig/arch/sparc/mm/swift.S +++ linux-3.2.0/arch/sparc/mm/swift.S @@ -105,7 +105,7 @@ .globl swift_flush_cache_range swift_flush_cache_range: - ld [%o0 + 0x0], %o0 /* XXX vma->vm_mm, GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 sub %o2, %o1, %o2 sethi %hi(4096), %o3 cmp %o2, %o3 @@ -116,7 +116,7 @@ .globl swift_flush_cache_page swift_flush_cache_page: - ld [%o0 + 0x0], %o0 /* XXX vma->vm_mm, GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 70: ld [%o0 + AOFF_mm_context], %g2 cmp %g2, -1 @@ -219,7 +219,7 @@ .globl swift_flush_tlb_range .globl swift_flush_tlb_all swift_flush_tlb_range: - ld [%o0 + 0x00], %o0 /* XXX vma->vm_mm GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 swift_flush_tlb_mm: ld [%o0 + AOFF_mm_context], %g2 cmp %g2, -1 @@ -233,7 +233,7 @@ .globl swift_flush_tlb_page swift_flush_tlb_page: - ld [%o0 + 0x00], %o0 /* XXX vma->vm_mm GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 mov SRMMU_CTX_REG, %g1 ld [%o0 + AOFF_mm_context], %o3 andn %o1, (PAGE_SIZE - 1), %o1 --- linux-3.2.0.orig/arch/sparc/mm/tlb.c +++ linux-3.2.0/arch/sparc/mm/tlb.c @@ -24,11 +24,17 @@ void flush_tlb_pending(void) { struct tlb_batch *tb = &get_cpu_var(tlb_batch); + struct mm_struct *mm = tb->mm; - if (tb->tlb_nr) { - flush_tsb_user(tb); + if (!tb->tlb_nr) + goto out; - if (CTX_VALID(tb->mm->context)) { + flush_tsb_user(tb); + + if (CTX_VALID(mm->context)) { + if (tb->tlb_nr == 1) { + global_flush_tlb_page(mm, tb->vaddrs[0]); + } else { #ifdef CONFIG_SMP smp_flush_tlb_pending(tb->mm, tb->tlb_nr, &tb->vaddrs[0]); @@ -37,12 +43,30 @@ tb->tlb_nr, &tb->vaddrs[0]); #endif } - tb->tlb_nr = 0; } + tb->tlb_nr = 0; + +out: put_cpu_var(tlb_batch); } +void arch_enter_lazy_mmu_mode(void) +{ + struct tlb_batch *tb = &__get_cpu_var(tlb_batch); + + tb->active = 1; +} + +void arch_leave_lazy_mmu_mode(void) +{ + struct tlb_batch *tb = &__get_cpu_var(tlb_batch); + + if (tb->tlb_nr) + flush_tlb_pending(); + tb->active = 0; +} + void tlb_batch_add(struct mm_struct *mm, unsigned long vaddr, pte_t *ptep, pte_t orig, int fullmm) { @@ -90,6 +114,12 @@ nr = 0; } + if (!tb->active) { + flush_tsb_user_page(mm, vaddr); + global_flush_tlb_page(mm, vaddr); + goto out; + } + if (nr == 0) tb->mm = mm; @@ -98,5 +128,6 @@ if (nr >= TLB_BATCH_NR) flush_tlb_pending(); +out: put_cpu_var(tlb_batch); } --- linux-3.2.0.orig/arch/sparc/mm/hypersparc.S +++ linux-3.2.0/arch/sparc/mm/hypersparc.S @@ -74,7 +74,7 @@ /* The things we do for performance... */ hypersparc_flush_cache_range: - ld [%o0 + 0x0], %o0 /* XXX vma->vm_mm, GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 #ifndef CONFIG_SMP ld [%o0 + AOFF_mm_context], %g1 cmp %g1, -1 @@ -163,7 +163,7 @@ */ /* Verified, my ass... */ hypersparc_flush_cache_page: - ld [%o0 + 0x0], %o0 /* XXX vma->vm_mm, GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 ld [%o0 + AOFF_mm_context], %g2 #ifndef CONFIG_SMP cmp %g2, -1 @@ -284,7 +284,7 @@ sta %g5, [%g1] ASI_M_MMUREGS hypersparc_flush_tlb_range: - ld [%o0 + 0x00], %o0 /* XXX vma->vm_mm GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 mov SRMMU_CTX_REG, %g1 ld [%o0 + AOFF_mm_context], %o3 lda [%g1] ASI_M_MMUREGS, %g5 @@ -307,7 +307,7 @@ sta %g5, [%g1] ASI_M_MMUREGS hypersparc_flush_tlb_page: - ld [%o0 + 0x00], %o0 /* XXX vma->vm_mm GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 mov SRMMU_CTX_REG, %g1 ld [%o0 + AOFF_mm_context], %o3 andn %o1, (PAGE_SIZE - 1), %o1 --- linux-3.2.0.orig/arch/sparc/mm/tsunami.S +++ linux-3.2.0/arch/sparc/mm/tsunami.S @@ -24,7 +24,7 @@ /* Sliiick... */ tsunami_flush_cache_page: tsunami_flush_cache_range: - ld [%o0 + 0x0], %o0 /* XXX vma->vm_mm, GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 tsunami_flush_cache_mm: ld [%o0 + AOFF_mm_context], %g2 cmp %g2, -1 @@ -46,7 +46,7 @@ /* More slick stuff... */ tsunami_flush_tlb_range: - ld [%o0 + 0x00], %o0 /* XXX vma->vm_mm GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 tsunami_flush_tlb_mm: ld [%o0 + AOFF_mm_context], %g2 cmp %g2, -1 @@ -65,7 +65,7 @@ /* This one can be done in a fine grained manner... */ tsunami_flush_tlb_page: - ld [%o0 + 0x00], %o0 /* XXX vma->vm_mm GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 mov SRMMU_CTX_REG, %g1 ld [%o0 + AOFF_mm_context], %o3 andn %o1, (PAGE_SIZE - 1), %o1 --- linux-3.2.0.orig/arch/sparc/mm/init_64.c +++ linux-3.2.0/arch/sparc/mm/init_64.c @@ -1071,7 +1071,14 @@ m->size = *val; val = mdesc_get_property(md, node, "address-congruence-offset", NULL); - m->offset = *val; + + /* The address-congruence-offset property is optional. + * Explicity zero it be identifty this. + */ + if (val) + m->offset = *val; + else + m->offset = 0UL; numadbg("MBLOCK[%d]: base[%llx] size[%llx] offset[%llx]\n", count - 1, m->base, m->size, m->offset); @@ -2118,6 +2125,9 @@ #ifdef CONFIG_SPARSEMEM_VMEMMAP unsigned long vmemmap_table[VMEMMAP_SIZE]; +static long __meminitdata addr_start, addr_end; +static int __meminitdata node_start; + int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node) { unsigned long vstart = (unsigned long) start; @@ -2148,15 +2158,30 @@ *vmem_pp = pte_base | __pa(block); - printk(KERN_INFO "[%p-%p] page_structs=%lu " - "node=%d entry=%lu/%lu\n", start, block, nr, - node, - addr >> VMEMMAP_CHUNK_SHIFT, - VMEMMAP_SIZE); + /* check to see if we have contiguous blocks */ + if (addr_end != addr || node_start != node) { + if (addr_start) + printk(KERN_DEBUG " [%lx-%lx] on node %d\n", + addr_start, addr_end-1, node_start); + addr_start = addr; + node_start = node; + } + addr_end = addr + VMEMMAP_CHUNK; } } return 0; } + +void __meminit vmemmap_populate_print_last(void) +{ + if (addr_start) { + printk(KERN_DEBUG " [%lx-%lx] on node %d\n", + addr_start, addr_end-1, node_start); + addr_start = 0; + addr_end = 0; + node_start = 0; + } +} #endif /* CONFIG_SPARSEMEM_VMEMMAP */ static void prot_init_common(unsigned long page_none, --- linux-3.2.0.orig/arch/sparc/mm/viking.S +++ linux-3.2.0/arch/sparc/mm/viking.S @@ -109,7 +109,7 @@ viking_flush_cache_page: viking_flush_cache_range: #ifndef CONFIG_SMP - ld [%o0 + 0x0], %o0 /* XXX vma->vm_mm, GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 #endif viking_flush_cache_mm: #ifndef CONFIG_SMP @@ -149,7 +149,7 @@ #endif viking_flush_tlb_range: - ld [%o0 + 0x00], %o0 /* XXX vma->vm_mm GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 mov SRMMU_CTX_REG, %g1 ld [%o0 + AOFF_mm_context], %o3 lda [%g1] ASI_M_MMUREGS, %g5 @@ -174,7 +174,7 @@ #endif viking_flush_tlb_page: - ld [%o0 + 0x00], %o0 /* XXX vma->vm_mm GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 mov SRMMU_CTX_REG, %g1 ld [%o0 + AOFF_mm_context], %o3 lda [%g1] ASI_M_MMUREGS, %g5 @@ -240,7 +240,7 @@ tst %g5 bne 3f mov SRMMU_CTX_REG, %g1 - ld [%o0 + 0x00], %o0 /* XXX vma->vm_mm GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 ld [%o0 + AOFF_mm_context], %o3 lda [%g1] ASI_M_MMUREGS, %g5 sethi %hi(~((1 << SRMMU_PGDIR_SHIFT) - 1)), %o4 @@ -266,7 +266,7 @@ tst %g5 bne 2f mov SRMMU_CTX_REG, %g1 - ld [%o0 + 0x00], %o0 /* XXX vma->vm_mm GROSS XXX */ + ld [%o0 + VMA_VM_MM], %o0 ld [%o0 + AOFF_mm_context], %o3 lda [%g1] ASI_M_MMUREGS, %g5 and %o1, PAGE_MASK, %o1 --- linux-3.2.0.orig/arch/sparc/mm/tsb.c +++ linux-3.2.0/arch/sparc/mm/tsb.c @@ -8,11 +8,10 @@ #include #include #include -#include -#include -#include #include +#include #include +#include #include extern struct tsb swapper_tsb[KERNEL_TSB_NENTRIES]; @@ -47,23 +46,27 @@ } } -static void __flush_tsb_one(struct tlb_batch *tb, unsigned long hash_shift, - unsigned long tsb, unsigned long nentries) +static void __flush_tsb_one_entry(unsigned long tsb, unsigned long v, + unsigned long hash_shift, + unsigned long nentries) { - unsigned long i; + unsigned long tag, ent, hash; - for (i = 0; i < tb->tlb_nr; i++) { - unsigned long v = tb->vaddrs[i]; - unsigned long tag, ent, hash; + v &= ~0x1UL; + hash = tsb_hash(v, hash_shift, nentries); + ent = tsb + (hash * sizeof(struct tsb)); + tag = (v >> 22UL); - v &= ~0x1UL; + tsb_flush(ent, tag); +} - hash = tsb_hash(v, hash_shift, nentries); - ent = tsb + (hash * sizeof(struct tsb)); - tag = (v >> 22UL); +static void __flush_tsb_one(struct tlb_batch *tb, unsigned long hash_shift, + unsigned long tsb, unsigned long nentries) +{ + unsigned long i; - tsb_flush(ent, tag); - } + for (i = 0; i < tb->tlb_nr; i++) + __flush_tsb_one_entry(tsb, tb->vaddrs[i], hash_shift, nentries); } void flush_tsb_user(struct tlb_batch *tb) @@ -89,6 +92,30 @@ } #endif spin_unlock_irqrestore(&mm->context.lock, flags); +} + +void flush_tsb_user_page(struct mm_struct *mm, unsigned long vaddr) +{ + unsigned long nentries, base, flags; + + spin_lock_irqsave(&mm->context.lock, flags); + + base = (unsigned long) mm->context.tsb_block[MM_TSB_BASE].tsb; + nentries = mm->context.tsb_block[MM_TSB_BASE].tsb_nentries; + if (tlb_type == cheetah_plus || tlb_type == hypervisor) + base = __pa(base); + __flush_tsb_one_entry(base, vaddr, PAGE_SHIFT, nentries); + +#if defined(CONFIG_HUGETLB_PAGE) || defined(CONFIG_TRANSPARENT_HUGEPAGE) + if (mm->context.tsb_block[MM_TSB_HUGE].tsb) { + base = (unsigned long) mm->context.tsb_block[MM_TSB_HUGE].tsb; + nentries = mm->context.tsb_block[MM_TSB_HUGE].tsb_nentries; + if (tlb_type == cheetah_plus || tlb_type == hypervisor) + base = __pa(base); + __flush_tsb_one_entry(base, vaddr, HPAGE_SHIFT, nentries); + } +#endif + spin_unlock_irqrestore(&mm->context.lock, flags); } #if defined(CONFIG_SPARC64_PAGE_SIZE_8KB) --- linux-3.2.0.orig/arch/sparc/mm/ultra.S +++ linux-3.2.0/arch/sparc/mm/ultra.S @@ -53,6 +53,33 @@ nop .align 32 + .globl __flush_tlb_page +__flush_tlb_page: /* 22 insns */ + /* %o0 = context, %o1 = vaddr */ + rdpr %pstate, %g7 + andn %g7, PSTATE_IE, %g2 + wrpr %g2, %pstate + mov SECONDARY_CONTEXT, %o4 + ldxa [%o4] ASI_DMMU, %g2 + stxa %o0, [%o4] ASI_DMMU + andcc %o1, 1, %g0 + andn %o1, 1, %o3 + be,pn %icc, 1f + or %o3, 0x10, %o3 + stxa %g0, [%o3] ASI_IMMU_DEMAP +1: stxa %g0, [%o3] ASI_DMMU_DEMAP + membar #Sync + stxa %g2, [%o4] ASI_DMMU + sethi %hi(KERNBASE), %o4 + flush %o4 + retl + wrpr %g7, 0x0, %pstate + nop + nop + nop + nop + + .align 32 .globl __flush_tlb_pending __flush_tlb_pending: /* 26 insns */ /* %o0 = context, %o1 = nr, %o2 = vaddrs[] */ @@ -203,6 +230,31 @@ retl wrpr %g7, 0x0, %pstate +__cheetah_flush_tlb_page: /* 22 insns */ + /* %o0 = context, %o1 = vaddr */ + rdpr %pstate, %g7 + andn %g7, PSTATE_IE, %g2 + wrpr %g2, 0x0, %pstate + wrpr %g0, 1, %tl + mov PRIMARY_CONTEXT, %o4 + ldxa [%o4] ASI_DMMU, %g2 + srlx %g2, CTX_PGSZ1_NUC_SHIFT, %o3 + sllx %o3, CTX_PGSZ1_NUC_SHIFT, %o3 + or %o0, %o3, %o0 /* Preserve nucleus page size fields */ + stxa %o0, [%o4] ASI_DMMU + andcc %o1, 1, %g0 + be,pn %icc, 1f + andn %o1, 1, %o3 + stxa %g0, [%o3] ASI_IMMU_DEMAP +1: stxa %g0, [%o3] ASI_DMMU_DEMAP + membar #Sync + stxa %g2, [%o4] ASI_DMMU + sethi %hi(KERNBASE), %o4 + flush %o4 + wrpr %g0, 0, %tl + retl + wrpr %g7, 0x0, %pstate + __cheetah_flush_tlb_pending: /* 27 insns */ /* %o0 = context, %o1 = nr, %o2 = vaddrs[] */ rdpr %pstate, %g7 @@ -269,6 +321,20 @@ retl nop +__hypervisor_flush_tlb_page: /* 11 insns */ + /* %o0 = context, %o1 = vaddr */ + mov %o0, %g2 + mov %o1, %o0 /* ARG0: vaddr + IMMU-bit */ + mov %g2, %o1 /* ARG1: mmu context */ + mov HV_MMU_ALL, %o2 /* ARG2: flags */ + srlx %o0, PAGE_SHIFT, %o0 + sllx %o0, PAGE_SHIFT, %o0 + ta HV_MMU_UNMAP_ADDR_TRAP + brnz,pn %o0, __hypervisor_tlb_tl0_error + mov HV_MMU_UNMAP_ADDR_TRAP, %o1 + retl + nop + __hypervisor_flush_tlb_pending: /* 16 insns */ /* %o0 = context, %o1 = nr, %o2 = vaddrs[] */ sllx %o1, 3, %g1 @@ -339,6 +405,13 @@ call tlb_patch_one mov 19, %o2 + sethi %hi(__flush_tlb_page), %o0 + or %o0, %lo(__flush_tlb_page), %o0 + sethi %hi(__cheetah_flush_tlb_page), %o1 + or %o1, %lo(__cheetah_flush_tlb_page), %o1 + call tlb_patch_one + mov 22, %o2 + sethi %hi(__flush_tlb_pending), %o0 or %o0, %lo(__flush_tlb_pending), %o0 sethi %hi(__cheetah_flush_tlb_pending), %o1 @@ -397,10 +470,9 @@ nop nop - .globl xcall_flush_tlb_pending -xcall_flush_tlb_pending: /* 21 insns */ - /* %g5=context, %g1=nr, %g7=vaddrs[] */ - sllx %g1, 3, %g1 + .globl xcall_flush_tlb_page +xcall_flush_tlb_page: /* 17 insns */ + /* %g5=context, %g1=vaddr */ mov PRIMARY_CONTEXT, %g4 ldxa [%g4] ASI_DMMU, %g2 srlx %g2, CTX_PGSZ1_NUC_SHIFT, %g4 @@ -408,20 +480,16 @@ or %g5, %g4, %g5 mov PRIMARY_CONTEXT, %g4 stxa %g5, [%g4] ASI_DMMU -1: sub %g1, (1 << 3), %g1 - ldx [%g7 + %g1], %g5 - andcc %g5, 0x1, %g0 + andcc %g1, 0x1, %g0 be,pn %icc, 2f - - andn %g5, 0x1, %g5 + andn %g1, 0x1, %g5 stxa %g0, [%g5] ASI_IMMU_DEMAP 2: stxa %g0, [%g5] ASI_DMMU_DEMAP membar #Sync - brnz,pt %g1, 1b - nop stxa %g2, [%g4] ASI_DMMU retry nop + nop .globl xcall_flush_tlb_kernel_range xcall_flush_tlb_kernel_range: /* 25 insns */ @@ -495,11 +563,11 @@ stx %o7, [%g1 + GR_SNAP_O7] stx %i7, [%g1 + GR_SNAP_I7] /* Don't try this at home kids... */ - rdpr %cwp, %g2 - sub %g2, 1, %g7 + rdpr %cwp, %g3 + sub %g3, 1, %g7 wrpr %g7, %cwp mov %i7, %g7 - wrpr %g2, %cwp + wrpr %g3, %cwp stx %g7, [%g1 + GR_SNAP_RPC] sethi %hi(trap_block), %g7 or %g7, %lo(trap_block), %g7 @@ -596,15 +664,13 @@ membar #Sync retry - .globl __hypervisor_xcall_flush_tlb_pending -__hypervisor_xcall_flush_tlb_pending: /* 21 insns */ - /* %g5=ctx, %g1=nr, %g7=vaddrs[], %g2,%g3,%g4,g6=scratch */ - sllx %g1, 3, %g1 + .globl __hypervisor_xcall_flush_tlb_page +__hypervisor_xcall_flush_tlb_page: /* 17 insns */ + /* %g5=ctx, %g1=vaddr */ mov %o0, %g2 mov %o1, %g3 mov %o2, %g4 -1: sub %g1, (1 << 3), %g1 - ldx [%g7 + %g1], %o0 /* ARG0: virtual address */ + mov %g1, %o0 /* ARG0: virtual address */ mov %g5, %o1 /* ARG1: mmu context */ mov HV_MMU_ALL, %o2 /* ARG2: flags */ srlx %o0, PAGE_SHIFT, %o0 @@ -613,8 +679,6 @@ mov HV_MMU_UNMAP_ADDR_TRAP, %g6 brnz,a,pn %o0, __hypervisor_tlb_xcall_error mov %o0, %g5 - brnz,pt %g1, 1b - nop mov %g2, %o0 mov %g3, %o1 mov %g4, %o2 @@ -697,6 +761,13 @@ call tlb_patch_one mov 10, %o2 + sethi %hi(__flush_tlb_page), %o0 + or %o0, %lo(__flush_tlb_page), %o0 + sethi %hi(__hypervisor_flush_tlb_page), %o1 + or %o1, %lo(__hypervisor_flush_tlb_page), %o1 + call tlb_patch_one + mov 11, %o2 + sethi %hi(__flush_tlb_pending), %o0 or %o0, %lo(__flush_tlb_pending), %o0 sethi %hi(__hypervisor_flush_tlb_pending), %o1 @@ -728,12 +799,12 @@ call tlb_patch_one mov 21, %o2 - sethi %hi(xcall_flush_tlb_pending), %o0 - or %o0, %lo(xcall_flush_tlb_pending), %o0 - sethi %hi(__hypervisor_xcall_flush_tlb_pending), %o1 - or %o1, %lo(__hypervisor_xcall_flush_tlb_pending), %o1 + sethi %hi(xcall_flush_tlb_page), %o0 + or %o0, %lo(xcall_flush_tlb_page), %o0 + sethi %hi(__hypervisor_xcall_flush_tlb_page), %o1 + or %o1, %lo(__hypervisor_xcall_flush_tlb_page), %o1 call tlb_patch_one - mov 21, %o2 + mov 17, %o2 sethi %hi(xcall_flush_tlb_kernel_range), %o0 or %o0, %lo(xcall_flush_tlb_kernel_range), %o0 --- linux-3.2.0.orig/arch/sparc/kernel/systbls_64.S +++ linux-3.2.0/arch/sparc/kernel/systbls_64.S @@ -74,7 +74,7 @@ .word sys_timer_delete, compat_sys_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy /*270*/ .word sys32_io_submit, sys_io_cancel, compat_sys_io_getevents, sys32_mq_open, sys_mq_unlink .word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid -/*280*/ .word sys32_tee, sys_add_key, sys_request_key, sys_keyctl, compat_sys_openat +/*280*/ .word sys32_tee, sys_add_key, sys_request_key, compat_sys_keyctl, compat_sys_openat .word sys_mkdirat, sys_mknodat, sys_fchownat, compat_sys_futimesat, compat_sys_fstatat64 /*290*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat .word sys_fchmodat, sys_faccessat, compat_sys_pselect6, compat_sys_ppoll, sys_unshare --- linux-3.2.0.orig/arch/sparc/kernel/central.c +++ linux-3.2.0/arch/sparc/kernel/central.c @@ -269,4 +269,4 @@ return 0; } -subsys_initcall(sunfire_init); +fs_initcall(sunfire_init); --- linux-3.2.0.orig/arch/sparc/kernel/smp_64.c +++ linux-3.2.0/arch/sparc/kernel/smp_64.c @@ -856,7 +856,7 @@ } extern unsigned long xcall_flush_tlb_mm; -extern unsigned long xcall_flush_tlb_pending; +extern unsigned long xcall_flush_tlb_page; extern unsigned long xcall_flush_tlb_kernel_range; extern unsigned long xcall_fetch_glob_regs; extern unsigned long xcall_receive_signal; @@ -1070,22 +1070,55 @@ put_cpu(); } +struct tlb_pending_info { + unsigned long ctx; + unsigned long nr; + unsigned long *vaddrs; +}; + +static void tlb_pending_func(void *info) +{ + struct tlb_pending_info *t = info; + + __flush_tlb_pending(t->ctx, t->nr, t->vaddrs); +} + void smp_flush_tlb_pending(struct mm_struct *mm, unsigned long nr, unsigned long *vaddrs) { u32 ctx = CTX_HWBITS(mm->context); + struct tlb_pending_info info; int cpu = get_cpu(); + info.ctx = ctx; + info.nr = nr; + info.vaddrs = vaddrs; + if (mm == current->mm && atomic_read(&mm->mm_users) == 1) cpumask_copy(mm_cpumask(mm), cpumask_of(cpu)); else - smp_cross_call_masked(&xcall_flush_tlb_pending, - ctx, nr, (unsigned long) vaddrs, - mm_cpumask(mm)); + smp_call_function_many(mm_cpumask(mm), tlb_pending_func, + &info, 1); __flush_tlb_pending(ctx, nr, vaddrs); put_cpu(); } + +void smp_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr) +{ + unsigned long context = CTX_HWBITS(mm->context); + int cpu = get_cpu(); + + if (mm == current->mm && atomic_read(&mm->mm_users) == 1) + cpumask_copy(mm_cpumask(mm), cpumask_of(cpu)); + else + smp_cross_call_masked(&xcall_flush_tlb_page, + context, vaddr, 0, + mm_cpumask(mm)); + __flush_tlb_page(context, vaddr); + + put_cpu(); +} void smp_flush_tlb_kernel_range(unsigned long start, unsigned long end) { --- linux-3.2.0.orig/arch/sparc/kernel/syscalls.S +++ linux-3.2.0/arch/sparc/kernel/syscalls.S @@ -212,24 +212,20 @@ 3: stx %o0, [%sp + PTREGS_OFF + PT_V9_I0] ret_sys_call: ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %g3 - ldx [%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc sra %o0, 0, %o0 mov %ulo(TSTATE_XCARRY | TSTATE_ICARRY), %g2 sllx %g2, 32, %g2 - /* Check if force_successful_syscall_return() - * was invoked. - */ - ldub [%g6 + TI_SYS_NOERROR], %l2 - brnz,a,pn %l2, 80f - stb %g0, [%g6 + TI_SYS_NOERROR] - cmp %o0, -ERESTART_RESTARTBLOCK bgeu,pn %xcc, 1f - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %l6 -80: + andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0 + ldx [%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc + +2: + stb %g0, [%g6 + TI_SYS_NOERROR] /* System call success, clear Carry condition code. */ andn %g3, %g2, %g3 +3: stx %g3, [%sp + PTREGS_OFF + PT_V9_TSTATE] bne,pn %icc, linux_syscall_trace2 add %l1, 0x4, %l2 ! npc = npc+4 @@ -238,20 +234,20 @@ stx %l2, [%sp + PTREGS_OFF + PT_V9_TNPC] 1: + /* Check if force_successful_syscall_return() + * was invoked. + */ + ldub [%g6 + TI_SYS_NOERROR], %l2 + brnz,pn %l2, 2b + ldx [%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc /* System call failure, set Carry condition code. * Also, get abs(errno) to return to the process. */ - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %l6 sub %g0, %o0, %o0 - or %g3, %g2, %g3 stx %o0, [%sp + PTREGS_OFF + PT_V9_I0] - stx %g3, [%sp + PTREGS_OFF + PT_V9_TSTATE] - bne,pn %icc, linux_syscall_trace2 - add %l1, 0x4, %l2 ! npc = npc+4 - stx %l1, [%sp + PTREGS_OFF + PT_V9_TPC] + ba,pt %xcc, 3b + or %g3, %g2, %g3 - b,pt %xcc, rtrap - stx %l2, [%sp + PTREGS_OFF + PT_V9_TNPC] linux_syscall_trace2: call syscall_trace_leave add %sp, PTREGS_OFF, %o0 --- linux-3.2.0.orig/arch/sparc/kernel/sys_sparc_64.c +++ linux-3.2.0/arch/sparc/kernel/sys_sparc_64.c @@ -519,12 +519,12 @@ { int ret; - if (current->personality == PER_LINUX32 && - personality == PER_LINUX) - personality = PER_LINUX32; + if (personality(current->personality) == PER_LINUX32 && + personality(personality) == PER_LINUX) + personality |= PER_LINUX32; ret = sys_personality(personality); - if (ret == PER_LINUX32) - ret = PER_LINUX; + if (personality(ret) == PER_LINUX32) + ret &= ~PER_LINUX32; return ret; } --- linux-3.2.0.orig/arch/sparc/kernel/asm-offsets.c +++ linux-3.2.0/arch/sparc/kernel/asm-offsets.c @@ -34,6 +34,8 @@ DEFINE(AOFF_task_thread, offsetof(struct task_struct, thread)); BLANK(); DEFINE(AOFF_mm_context, offsetof(struct mm_struct, context)); + BLANK(); + DEFINE(VMA_VM_MM, offsetof(struct vm_area_struct, vm_mm)); /* DEFINE(NUM_USER_SEGMENTS, TASK_SIZE>>28); */ return 0; --- linux-3.2.0.orig/arch/sparc/kernel/rtrap_64.S +++ linux-3.2.0/arch/sparc/kernel/rtrap_64.S @@ -20,11 +20,6 @@ .text .align 32 -__handle_softirq: - call do_softirq - nop - ba,a,pt %xcc, __handle_softirq_continue - nop __handle_preemption: call schedule wrpr %g0, RTRAP_PSTATE, %pstate @@ -89,9 +84,7 @@ cmp %l1, 0 /* mm/ultra.S:xcall_report_regs KNOWS about this load. */ - bne,pn %icc, __handle_softirq ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1 -__handle_softirq_continue: rtrap_xcall: sethi %hi(0xf << 20), %l4 and %l1, %l4, %l4 --- linux-3.2.0.orig/arch/sparc/kernel/perf_event.c +++ linux-3.2.0/arch/sparc/kernel/perf_event.c @@ -555,11 +555,13 @@ static inline void sparc_pmu_enable_event(struct cpu_hw_events *cpuc, struct hw_perf_event *hwc, int idx) { - u64 val, mask = mask_for_index(idx); + u64 enc, val, mask = mask_for_index(idx); + + enc = perf_event_get_enc(cpuc->events[idx]); val = cpuc->pcr; val &= ~mask; - val |= hwc->config; + val |= event_encoding(enc, idx); cpuc->pcr = val; pcr_ops->write(cpuc->pcr); @@ -1422,8 +1424,6 @@ { unsigned long ufp; - perf_callchain_store(entry, regs->tpc); - ufp = regs->u_regs[UREG_I6] + STACK_BIAS; do { struct sparc_stackf *usf, sf; @@ -1444,8 +1444,6 @@ { unsigned long ufp; - perf_callchain_store(entry, regs->tpc); - ufp = regs->u_regs[UREG_I6] & 0xffffffffUL; do { struct sparc_stackf32 *usf, sf; @@ -1464,6 +1462,11 @@ void perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs) { + perf_callchain_store(entry, regs->tpc); + + if (!current->mm) + return; + flushw_user(); if (test_thread_flag(TIF_32BIT)) perf_callchain_user_32(entry, regs); --- linux-3.2.0.orig/arch/sparc/kernel/ds.c +++ linux-3.2.0/arch/sparc/kernel/ds.c @@ -1267,4 +1267,4 @@ return vio_register_driver(&ds_driver); } -subsys_initcall(ds_init); +fs_initcall(ds_init); --- linux-3.2.0.orig/arch/sparc/kernel/signal_64.c +++ linux-3.2.0/arch/sparc/kernel/signal_64.c @@ -307,9 +307,7 @@ err |= restore_fpu_state(regs, fpu_save); err |= __copy_from_user(&set, &sf->mask, sizeof(sigset_t)); - err |= do_sigaltstack(&sf->stack, NULL, (unsigned long)sf); - - if (err) + if (err || do_sigaltstack(&sf->stack, NULL, (unsigned long)sf) == -EFAULT) goto segv; err |= __get_user(rwin_save, &sf->rwin_save); --- linux-3.2.0.orig/arch/h8300/include/asm/signal.h +++ linux-3.2.0/arch/h8300/include/asm/signal.h @@ -121,6 +121,7 @@ void (*sa_restorer)(void); sigset_t sa_mask; /* mask last for extensibility */ }; +#define __ARCH_HAS_SA_RESTORER struct k_sigaction { struct sigaction sa; --- linux-3.2.0.orig/arch/mips/Makefile +++ linux-3.2.0/arch/mips/Makefile @@ -224,7 +224,7 @@ LDFLAGS += -m $(ld-emul) ifdef CONFIG_MIPS -CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -xc /dev/null | \ +CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \ egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \ sed -e "s/^\#define /-D'/" -e "s/ /'='/" -e "s/$$/'/") ifdef CONFIG_64BIT --- linux-3.2.0.orig/arch/mips/include/asm/thread_info.h +++ linux-3.2.0/arch/mips/include/asm/thread_info.h @@ -60,6 +60,8 @@ register struct thread_info *__current_thread_info __asm__("$28"); #define current_thread_info() __current_thread_info +#endif /* !__ASSEMBLY__ */ + /* thread information allocation */ #if defined(CONFIG_PAGE_SIZE_4KB) && defined(CONFIG_32BIT) #define THREAD_SIZE_ORDER (1) @@ -97,8 +99,6 @@ #define free_thread_info(info) kfree(info) -#endif /* !__ASSEMBLY__ */ - #define PREEMPT_ACTIVE 0x10000000 /* --- linux-3.2.0.orig/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h +++ linux-3.2.0/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h @@ -2,6 +2,7 @@ #define BCM63XX_GPIO_H #include +#include int __init bcm63xx_gpio_init(void); --- linux-3.2.0.orig/arch/mips/kernel/kgdb.c +++ linux-3.2.0/arch/mips/kernel/kgdb.c @@ -283,6 +283,15 @@ struct pt_regs *regs = args->regs; int trap = (regs->cp0_cause & 0x7c) >> 2; +#ifdef CONFIG_KPROBES + /* + * Return immediately if the kprobes fault notifier has set + * DIE_PAGE_FAULT. + */ + if (cmd == DIE_PAGE_FAULT) + return NOTIFY_DONE; +#endif /* CONFIG_KPROBES */ + /* Userspace events, ignore. */ if (user_mode(regs)) return NOTIFY_DONE; --- linux-3.2.0.orig/arch/mips/kernel/vmlinux.lds.S +++ linux-3.2.0/arch/mips/kernel/vmlinux.lds.S @@ -1,5 +1,6 @@ #include #include +#include #include #undef mips @@ -73,7 +74,7 @@ .data : { /* Data */ . = . + DATAOFFSET; /* for CONFIG_MAPPED_KERNEL */ - INIT_TASK_DATA(PAGE_SIZE) + INIT_TASK_DATA(THREAD_SIZE) NOSAVE_DATA CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT) READ_MOSTLY_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT) --- linux-3.2.0.orig/arch/mips/kernel/process.c +++ linux-3.2.0/arch/mips/kernel/process.c @@ -72,9 +72,7 @@ } } #ifdef CONFIG_HOTPLUG_CPU - if (!cpu_online(cpu) && !cpu_isset(cpu, cpu_callin_map) && - (system_state == SYSTEM_RUNNING || - system_state == SYSTEM_BOOTING)) + if (!cpu_online(cpu) && !cpu_isset(cpu, cpu_callin_map)) play_dead(); #endif tick_nohz_restart_sched_tick(); --- linux-3.2.0.orig/arch/mips/kernel/Makefile +++ linux-3.2.0/arch/mips/kernel/Makefile @@ -102,7 +102,7 @@ obj-$(CONFIG_OF) += prom.o -CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(KBUILD_CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi) +CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(KBUILD_CFLAGS) -Wa,-mdaddi -c -o /dev/null -x c /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi) obj-$(CONFIG_HAVE_STD_PC_SERIAL_PORT) += 8250-platform.o --- linux-3.2.0.orig/arch/sh/include/asm/elf.h +++ linux-3.2.0/arch/sh/include/asm/elf.h @@ -202,9 +202,9 @@ if (vdso_enabled) \ NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_BASE); \ else \ - NEW_AUX_ENT(AT_IGNORE, 0); + NEW_AUX_ENT(AT_IGNORE, 0) #else -#define VSYSCALL_AUX_ENT +#define VSYSCALL_AUX_ENT NEW_AUX_ENT(AT_IGNORE, 0) #endif /* CONFIG_VSYSCALL */ #ifdef CONFIG_SH_FPU --- linux-3.2.0.orig/arch/cris/include/asm/signal.h +++ linux-3.2.0/arch/cris/include/asm/signal.h @@ -122,6 +122,7 @@ void (*sa_restorer)(void); sigset_t sa_mask; /* mask last for extensibility */ }; +#define __ARCH_HAS_SA_RESTORER struct k_sigaction { struct sigaction sa; --- linux-3.2.0.orig/arch/cris/include/asm/io.h +++ linux-3.2.0/arch/cris/include/asm/io.h @@ -133,12 +133,39 @@ #define insb(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,1,count) : 0) #define insw(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,2,count) : 0) #define insl(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,4,count) : 0) -#define outb(data,port) if (cris_iops) cris_iops->write_io(port,(void*)(unsigned)data,1,1) -#define outw(data,port) if (cris_iops) cris_iops->write_io(port,(void*)(unsigned)data,2,1) -#define outl(data,port) if (cris_iops) cris_iops->write_io(port,(void*)(unsigned)data,4,1) -#define outsb(port,addr,count) if(cris_iops) cris_iops->write_io(port,(void*)addr,1,count) -#define outsw(port,addr,count) if(cris_iops) cris_iops->write_io(port,(void*)addr,2,count) -#define outsl(port,addr,count) if(cris_iops) cris_iops->write_io(port,(void*)addr,3,count) +static inline void outb(unsigned char data, unsigned int port) +{ + if (cris_iops) + cris_iops->write_io(port, (void *) &data, 1, 1); +} +static inline void outw(unsigned short data, unsigned int port) +{ + if (cris_iops) + cris_iops->write_io(port, (void *) &data, 2, 1); +} +static inline void outl(unsigned int data, unsigned int port) +{ + if (cris_iops) + cris_iops->write_io(port, (void *) &data, 4, 1); +} +static inline void outsb(unsigned int port, const void *addr, + unsigned long count) +{ + if (cris_iops) + cris_iops->write_io(port, (void *)addr, 1, count); +} +static inline void outsw(unsigned int port, const void *addr, + unsigned long count) +{ + if (cris_iops) + cris_iops->write_io(port, (void *)addr, 2, count); +} +static inline void outsl(unsigned int port, const void *addr, + unsigned long count) +{ + if (cris_iops) + cris_iops->write_io(port, (void *)addr, 4, count); +} /* * Convert a physical pointer to a virtual kernel pointer for /dev/mem --- linux-3.2.0.orig/arch/m68k/include/asm/signal.h +++ linux-3.2.0/arch/m68k/include/asm/signal.h @@ -119,6 +119,7 @@ __sigrestore_t sa_restorer; sigset_t sa_mask; /* mask last for extensibility */ }; +#define __ARCH_HAS_SA_RESTORER struct k_sigaction { struct sigaction sa; @@ -156,7 +157,7 @@ static inline void sigaddset(sigset_t *set, int _sig) { asm ("bfset %0{%1,#1}" - : "+od" (*set) + : "+o" (*set) : "id" ((_sig - 1) ^ 31) : "cc"); } @@ -164,7 +165,7 @@ static inline void sigdelset(sigset_t *set, int _sig) { asm ("bfclr %0{%1,#1}" - : "+od" (*set) + : "+o" (*set) : "id" ((_sig - 1) ^ 31) : "cc"); } @@ -180,7 +181,7 @@ int ret; asm ("bfextu %1{%2,#1},%0" : "=d" (ret) - : "od" (*set), "id" ((_sig-1) ^ 31) + : "o" (*set), "id" ((_sig-1) ^ 31) : "cc"); return ret; } --- linux-3.2.0.orig/arch/m68k/include/asm/entry.h +++ linux-3.2.0/arch/m68k/include/asm/entry.h @@ -33,8 +33,8 @@ /* the following macro is used when enabling interrupts */ #if defined(MACH_ATARI_ONLY) - /* block out HSYNC on the atari */ -#define ALLOWINT (~0x400) + /* block out HSYNC = ipl 2 on the atari */ +#define ALLOWINT (~0x500) #define MAX_NOINT_IPL 3 #else /* portable version */ --- linux-3.2.0.orig/arch/m68k/mm/cache.c +++ linux-3.2.0/arch/m68k/mm/cache.c @@ -52,9 +52,9 @@ unsigned long *descaddr; asm volatile ("ptestr %3,%2@,#7,%0\n\t" - "pmove %%psr,%1@" - : "=a&" (descaddr) - : "a" (&mmusr), "a" (vaddr), "d" (get_fs().seg)); + "pmove %%psr,%1" + : "=a&" (descaddr), "=m" (mmusr) + : "a" (vaddr), "d" (get_fs().seg)); if (mmusr & (MMU_I|MMU_B|MMU_L)) return 0; descaddr = phys_to_virt((unsigned long)descaddr); --- linux-3.2.0.orig/arch/m68k/kernel/process_mm.c +++ linux-3.2.0/arch/m68k/kernel/process_mm.c @@ -189,8 +189,8 @@ current->thread.fs = __USER_DS; if (!FPU_IS_EMU) asm volatile (".chip 68k/68881\n\t" - "frestore %0@\n\t" - ".chip 68k" : : "a" (&zero)); + "frestore %0\n\t" + ".chip 68k" : : "m" (zero)); } /* --- linux-3.2.0.orig/arch/m68k/kernel/sys_m68k.c +++ linux-3.2.0/arch/m68k/kernel/sys_m68k.c @@ -479,9 +479,13 @@ goto bad_access; } - mem_value = *mem; + /* + * No need to check for EFAULT; we know that the page is + * present and writable. + */ + __get_user(mem_value, mem); if (mem_value == oldval) - *mem = newval; + __put_user(newval, mem); pte_unmap_unlock(pte, ptl); up_read(&mm->mmap_sem); --- linux-3.2.0.orig/arch/m68k/kernel/process_no.c +++ linux-3.2.0/arch/m68k/kernel/process_no.c @@ -163,8 +163,8 @@ #ifdef CONFIG_FPU if (!FPU_IS_EMU) asm volatile (".chip 68k/68881\n\t" - "frestore %0@\n\t" - ".chip 68k" : : "a" (&zero)); + "frestore %0\n\t" + ".chip 68k" : : "m" (zero)); #endif } --- linux-3.2.0.orig/arch/m68k/kernel/traps.c +++ linux-3.2.0/arch/m68k/kernel/traps.c @@ -552,13 +552,13 @@ #ifdef DEBUG asm volatile ("ptestr %3,%2@,#7,%0\n\t" - "pmove %%psr,%1@" - : "=a&" (desc) - : "a" (&temp), "a" (addr), "d" (ssw)); + "pmove %%psr,%1" + : "=a&" (desc), "=m" (temp) + : "a" (addr), "d" (ssw)); #else asm volatile ("ptestr %2,%1@,#7\n\t" - "pmove %%psr,%0@" - : : "a" (&temp), "a" (addr), "d" (ssw)); + "pmove %%psr,%0" + : "=m" (temp) : "a" (addr), "d" (ssw)); #endif mmusr = temp; @@ -605,20 +605,18 @@ !(ssw & RW) ? "write" : "read", addr, fp->ptregs.pc, ssw); asm volatile ("ptestr #1,%1@,#0\n\t" - "pmove %%psr,%0@" - : /* no outputs */ - : "a" (&temp), "a" (addr)); + "pmove %%psr,%0" + : "=m" (temp) + : "a" (addr)); mmusr = temp; printk ("level 0 mmusr is %#x\n", mmusr); #if 0 - asm volatile ("pmove %%tt0,%0@" - : /* no outputs */ - : "a" (&tlong)); + asm volatile ("pmove %%tt0,%0" + : "=m" (tlong)); printk("tt0 is %#lx, ", tlong); - asm volatile ("pmove %%tt1,%0@" - : /* no outputs */ - : "a" (&tlong)); + asm volatile ("pmove %%tt1,%0" + : "=m" (tlong)); printk("tt1 is %#lx\n", tlong); #endif #ifdef DEBUG @@ -668,13 +666,13 @@ #ifdef DEBUG asm volatile ("ptestr #1,%2@,#7,%0\n\t" - "pmove %%psr,%1@" - : "=a&" (desc) - : "a" (&temp), "a" (addr)); + "pmove %%psr,%1" + : "=a&" (desc), "=m" (temp) + : "a" (addr)); #else asm volatile ("ptestr #1,%1@,#7\n\t" - "pmove %%psr,%0@" - : : "a" (&temp), "a" (addr)); + "pmove %%psr,%0" + : "=m" (temp) : "a" (addr)); #endif mmusr = temp; --- linux-3.2.0.orig/arch/m68k/mac/config.c +++ linux-3.2.0/arch/m68k/mac/config.c @@ -950,6 +950,9 @@ { u8 *swim_base; + if (!MACH_IS_MAC) + return -ENODEV; + /* * Serial devices */ --- linux-3.2.0.orig/arch/m68k/atari/config.c +++ linux-3.2.0/arch/m68k/atari/config.c @@ -414,9 +414,9 @@ * FDC val = 4 -> Supervisor only */ asm volatile ("\n" " .chip 68030\n" - " pmove %0@,%/tt1\n" + " pmove %0,%/tt1\n" " .chip 68k" - : : "a" (&tt1_val)); + : : "m" (tt1_val)); } else { asm volatile ("\n" " .chip 68040\n" @@ -569,10 +569,10 @@ : "d0"); } else asm volatile ("\n" - " pmove %0@,%%tc\n" + " pmove %0,%%tc\n" " jmp %1@" : /* no outputs */ - : "a" (&tc_val), "a" (reset_addr)); + : "m" (tc_val), "a" (reset_addr)); } --- linux-3.2.0.orig/arch/avr32/Kconfig +++ linux-3.2.0/arch/avr32/Kconfig @@ -8,6 +8,7 @@ select HAVE_KPROBES select HAVE_GENERIC_HARDIRQS select GENERIC_IRQ_PROBE + select GENERIC_ATOMIC64 select HARDIRQS_SW_RESEND select GENERIC_IRQ_SHOW select ARCH_HAVE_NMI_SAFE_CMPXCHG --- linux-3.2.0.orig/arch/avr32/configs/favr-32_defconfig +++ linux-3.2.0/arch/avr32/configs/favr-32_defconfig @@ -122,7 +122,6 @@ CONFIG_USB_CDC_COMPOSITE=m CONFIG_MMC=y CONFIG_MMC_ATMELMCI=y -CONFIG_MMC_ATMELMCI_DMA=y CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_ATMEL_PWM=m --- linux-3.2.0.orig/arch/avr32/configs/merisc_defconfig +++ linux-3.2.0/arch/avr32/configs/merisc_defconfig @@ -102,7 +102,6 @@ CONFIG_LOGO=y CONFIG_MMC=y CONFIG_MMC_ATMELMCI=y -CONFIG_MMC_ATMELMCI_DMA=y CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_ATMEL_PWM=y --- linux-3.2.0.orig/arch/avr32/include/asm/signal.h +++ linux-3.2.0/arch/avr32/include/asm/signal.h @@ -128,6 +128,7 @@ __sigrestore_t sa_restorer; sigset_t sa_mask; /* mask last for extensibility */ }; +#define __ARCH_HAS_SA_RESTORER struct k_sigaction { struct sigaction sa; --- linux-3.2.0.orig/arch/avr32/kernel/module.c +++ linux-3.2.0/arch/avr32/kernel/module.c @@ -264,7 +264,7 @@ break; case R_AVR32_GOT18SW: if ((relocation & 0xfffe0003) != 0 - && (relocation & 0xfffc0003) != 0xffff0000) + && (relocation & 0xfffc0000) != 0xfffc0000) return reloc_overflow(module, "R_AVR32_GOT18SW", relocation); relocation >>= 2; --- linux-3.2.0.orig/arch/x86/Kconfig +++ linux-3.2.0/arch/x86/Kconfig @@ -75,6 +75,7 @@ select HAVE_BPF_JIT if (X86_64 && NET) select CLKEVT_I8253 select ARCH_HAVE_NMI_SAFE_CMPXCHG + select HAVE_ARCH_SECCOMP_FILTER config INSTRUCTION_DECODER def_bool (KPROBES || PERF_EVENTS) @@ -343,6 +344,7 @@ If you enable this option then you'll be able to select support for the following (non-PC) 64 bit x86 platforms: + Numascale NumaChip ScaleMP vSMP SGI Ultraviolet @@ -351,6 +353,17 @@ endif # This is an alphabetically sorted list of 64 bit extended platforms # Please maintain the alphabetic order if and when there are additions +config X86_NUMACHIP + bool "Numascale NumaChip" + depends on X86_64 + depends on X86_EXTENDED_PLATFORM + depends on NUMA + depends on SMP + depends on X86_X2APIC + ---help--- + Adds support for Numascale NumaChip large-SMP systems. Needed to + enable more than ~168 cores. + If you don't have one of these, you should say N here. config X86_VSMP bool "ScaleMP vSMP" @@ -376,6 +389,12 @@ # Following is an alphabetically sorted list of 32 bit extended platforms # Please maintain the alphabetic order if and when there are additions +config X86_LPIA + bool "LPIA-compatible" + depends on X86_32 && X86_PC + help + Choose this option if your computer is an LPIA platform. + config X86_INTEL_CE bool "CE4100 TV platform" depends on PCI @@ -858,6 +877,14 @@ Additional support for intel specific MCE features such as the thermal monitor. +config X86_MCE_XEON75XX + tristate "Intel Xeon 7500 series corrected memory error driver" + depends on X86_MCE_INTEL && PCI + ---help--- + Add support for a Intel Xeon 7500 series specific memory error driver. + This allows to report the DIMM and physical address on a corrected + memory error machine check event. + config X86_MCE_AMD def_bool y prompt "AMD MCE features" @@ -1150,7 +1177,7 @@ config NUMA bool "Numa Memory Allocation and Scheduler Support" depends on SMP - depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) + depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && BROKEN) default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) ---help--- Enable NUMA (Non Uniform Memory Access) support. @@ -2120,6 +2147,7 @@ config IA32_EMULATION bool "IA32 Emulation" depends on X86_64 + select BINFMT_ELF select COMPAT_BINFMT_ELF ---help--- Include code to run 32-bit programs under a 64-bit kernel. You should @@ -2164,6 +2192,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "drivers/firmware/Kconfig" source "fs/Kconfig" --- linux-3.2.0.orig/arch/x86/Makefile +++ linux-3.2.0/arch/x86/Makefile @@ -117,6 +117,9 @@ KBUILD_CFLAGS += $(mflags-y) KBUILD_AFLAGS += $(mflags-y) +archscripts: + $(Q)$(MAKE) $(build)=arch/x86/tools relocs + ### # Kernel objects @@ -180,6 +183,7 @@ $(Q)rm -rf $(objtree)/arch/i386 $(Q)rm -rf $(objtree)/arch/x86_64 $(Q)$(MAKE) $(clean)=$(boot) + $(Q)$(MAKE) $(clean)=arch/x86/tools define archhelp echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)' --- linux-3.2.0.orig/arch/x86/lguest/boot.c +++ linux-3.2.0/arch/x86/lguest/boot.c @@ -1328,6 +1328,7 @@ pv_mmu_ops.read_cr3 = lguest_read_cr3; pv_mmu_ops.lazy_mode.enter = paravirt_enter_lazy_mmu; pv_mmu_ops.lazy_mode.leave = lguest_leave_lazy_mmu_mode; + pv_mmu_ops.lazy_mode.flush = paravirt_flush_lazy_mmu; pv_mmu_ops.pte_update = lguest_pte_update; pv_mmu_ops.pte_update_defer = lguest_pte_update; --- linux-3.2.0.orig/arch/x86/xen/time.c +++ linux-3.2.0/arch/x86/xen/time.c @@ -36,9 +36,8 @@ /* snapshots of runstate info */ static DEFINE_PER_CPU(struct vcpu_runstate_info, xen_runstate_snapshot); -/* unused ns of stolen and blocked time */ +/* unused ns of stolen time */ static DEFINE_PER_CPU(u64, xen_residual_stolen); -static DEFINE_PER_CPU(u64, xen_residual_blocked); /* return an consistent snapshot of 64-bit time/counter value */ static u64 get64(const u64 *p) @@ -115,7 +114,7 @@ { struct vcpu_runstate_info state; struct vcpu_runstate_info *snap; - s64 blocked, runnable, offline, stolen; + s64 runnable, offline, stolen; cputime_t ticks; get_runstate_snapshot(&state); @@ -125,7 +124,6 @@ snap = &__get_cpu_var(xen_runstate_snapshot); /* work out how much time the VCPU has not been runn*ing* */ - blocked = state.time[RUNSTATE_blocked] - snap->time[RUNSTATE_blocked]; runnable = state.time[RUNSTATE_runnable] - snap->time[RUNSTATE_runnable]; offline = state.time[RUNSTATE_offline] - snap->time[RUNSTATE_offline]; @@ -141,17 +139,6 @@ ticks = iter_div_u64_rem(stolen, NS_PER_TICK, &stolen); __this_cpu_write(xen_residual_stolen, stolen); account_steal_ticks(ticks); - - /* Add the appropriate number of ticks of blocked time, - including any left-overs from last time. */ - blocked += __this_cpu_read(xen_residual_blocked); - - if (blocked < 0) - blocked = 0; - - ticks = iter_div_u64_rem(blocked, NS_PER_TICK, &blocked); - __this_cpu_write(xen_residual_blocked, blocked); - account_idle_ticks(ticks); } /* Get the TSC speed from Xen */ @@ -497,7 +484,11 @@ { int cpu = smp_processor_id(); xen_setup_runstate_info(cpu); - xen_setup_timer(cpu); + /* + * xen_setup_timer(cpu) - snprintf is bad in atomic context. Hence + * doing it xen_hvm_cpu_notify (which gets called by smp_init during + * early bootup and also during CPU hotplug events). + */ xen_setup_cpu_clockevents(); } --- linux-3.2.0.orig/arch/x86/xen/p2m.c +++ linux-3.2.0/arch/x86/xen/p2m.c @@ -686,6 +686,7 @@ unsigned long uninitialized_var(address); unsigned level; pte_t *ptep = NULL; + int ret = 0; pfn = page_to_pfn(page); if (!PageHighMem(page)) { @@ -721,6 +722,24 @@ list_add(&page->lru, &m2p_overrides[mfn_hash(mfn)]); spin_unlock_irqrestore(&m2p_override_lock, flags); + /* p2m(m2p(mfn)) == mfn: the mfn is already present somewhere in + * this domain. Set the FOREIGN_FRAME_BIT in the p2m for the other + * pfn so that the following mfn_to_pfn(mfn) calls will return the + * pfn from the m2p_override (the backend pfn) instead. + * We need to do this because the pages shared by the frontend + * (xen-blkfront) can be already locked (lock_page, called by + * do_read_cache_page); when the userspace backend tries to use them + * with direct_IO, mfn_to_pfn returns the pfn of the frontend, so + * do_blockdev_direct_IO is going to try to lock the same pages + * again resulting in a deadlock. + * As a side effect get_user_pages_fast might not be safe on the + * frontend pages while they are being shared with the backend, + * because mfn_to_pfn (that ends up being called by GUPF) will + * return the backend pfn rather than the frontend pfn. */ + ret = __get_user(pfn, &machine_to_phys_mapping[mfn]); + if (ret == 0 && get_phys_to_machine(pfn) == mfn) + set_phys_to_machine(pfn, FOREIGN_FRAME(mfn)); + return 0; } EXPORT_SYMBOL_GPL(m2p_add_override); @@ -732,6 +751,7 @@ unsigned long uninitialized_var(address); unsigned level; pte_t *ptep = NULL; + int ret = 0; pfn = page_to_pfn(page); mfn = get_phys_to_machine(pfn); @@ -801,6 +821,22 @@ } else set_phys_to_machine(pfn, page->index); + /* p2m(m2p(mfn)) == FOREIGN_FRAME(mfn): the mfn is already present + * somewhere in this domain, even before being added to the + * m2p_override (see comment above in m2p_add_override). + * If there are no other entries in the m2p_override corresponding + * to this mfn, then remove the FOREIGN_FRAME_BIT from the p2m for + * the original pfn (the one shared by the frontend): the backend + * cannot do any IO on this page anymore because it has been + * unshared. Removing the FOREIGN_FRAME_BIT from the p2m entry of + * the original pfn causes mfn_to_pfn(mfn) to return the frontend + * pfn again. */ + mfn &= ~FOREIGN_FRAME_BIT; + ret = __get_user(pfn, &machine_to_phys_mapping[mfn]); + if (ret == 0 && get_phys_to_machine(pfn) == FOREIGN_FRAME(mfn) && + m2p_find_override(mfn) == NULL) + set_phys_to_machine(pfn, mfn); + return 0; } EXPORT_SYMBOL_GPL(m2p_remove_override); --- linux-3.2.0.orig/arch/x86/xen/spinlock.c +++ linux-3.2.0/arch/x86/xen/spinlock.c @@ -116,9 +116,26 @@ } #endif /* CONFIG_XEN_DEBUG_FS */ +/* + * Size struct xen_spinlock so it's the same as arch_spinlock_t. + */ +#if NR_CPUS < 256 +typedef u8 xen_spinners_t; +# define inc_spinners(xl) \ + asm(LOCK_PREFIX " incb %0" : "+m" ((xl)->spinners) : : "memory"); +# define dec_spinners(xl) \ + asm(LOCK_PREFIX " decb %0" : "+m" ((xl)->spinners) : : "memory"); +#else +typedef u16 xen_spinners_t; +# define inc_spinners(xl) \ + asm(LOCK_PREFIX " incw %0" : "+m" ((xl)->spinners) : : "memory"); +# define dec_spinners(xl) \ + asm(LOCK_PREFIX " decw %0" : "+m" ((xl)->spinners) : : "memory"); +#endif + struct xen_spinlock { unsigned char lock; /* 0 -> free; 1 -> locked */ - unsigned short spinners; /* count of waiting cpus */ + xen_spinners_t spinners; /* count of waiting cpus */ }; static int xen_spin_is_locked(struct arch_spinlock *lock) @@ -164,8 +181,7 @@ wmb(); /* set lock of interest before count */ - asm(LOCK_PREFIX " incw %0" - : "+m" (xl->spinners) : : "memory"); + inc_spinners(xl); return prev; } @@ -176,8 +192,7 @@ */ static inline void unspinning_lock(struct xen_spinlock *xl, struct xen_spinlock *prev) { - asm(LOCK_PREFIX " decw %0" - : "+m" (xl->spinners) : : "memory"); + dec_spinners(xl); wmb(); /* decrement count before restoring lock */ __this_cpu_write(lock_spinners, prev); } @@ -313,7 +328,6 @@ if (per_cpu(lock_spinners, cpu) == xl) { ADD_STATS(released_slow_kicked, 1); xen_send_IPI_one(cpu, XEN_SPIN_UNLOCK_VECTOR); - break; } } } @@ -373,6 +387,8 @@ void __init xen_init_spinlocks(void) { + BUILD_BUG_ON(sizeof(struct xen_spinlock) > sizeof(arch_spinlock_t)); + pv_lock_ops.spin_is_locked = xen_spin_is_locked; pv_lock_ops.spin_is_contended = xen_spin_is_contended; pv_lock_ops.spin_lock = xen_spin_lock; --- linux-3.2.0.orig/arch/x86/xen/smp.c +++ linux-3.2.0/arch/x86/xen/smp.c @@ -172,6 +172,7 @@ static void __init xen_filter_cpu_maps(void) { int i, rc; + unsigned int subtract = 0; if (!xen_initial_domain()) return; @@ -186,8 +187,22 @@ } else { set_cpu_possible(i, false); set_cpu_present(i, false); + subtract++; } } +#ifdef CONFIG_HOTPLUG_CPU + /* This is akin to using 'nr_cpus' on the Linux command line. + * Which is OK as when we use 'dom0_max_vcpus=X' we can only + * have up to X, while nr_cpu_ids is greater than X. This + * normally is not a problem, except when CPU hotplugging + * is involved and then there might be more than X CPUs + * in the guest - which will not work as there is no + * hypercall to expand the max number of VCPUs an already + * running guest has. So cap it up to X. */ + if (subtract) + nr_cpu_ids = nr_cpu_ids - subtract; +#endif + } static void __init xen_smp_prepare_boot_cpu(void) @@ -452,8 +467,8 @@ xen_send_IPI_one(cpu, XEN_RESCHEDULE_VECTOR); } -static void xen_send_IPI_mask(const struct cpumask *mask, - enum ipi_vector vector) +static void __xen_send_IPI_mask(const struct cpumask *mask, + int vector) { unsigned cpu; @@ -465,7 +480,7 @@ { int cpu; - xen_send_IPI_mask(mask, XEN_CALL_FUNCTION_VECTOR); + __xen_send_IPI_mask(mask, XEN_CALL_FUNCTION_VECTOR); /* Make sure other vcpus get a chance to run if they need to. */ for_each_cpu(cpu, mask) { @@ -478,10 +493,83 @@ static void xen_smp_send_call_function_single_ipi(int cpu) { - xen_send_IPI_mask(cpumask_of(cpu), + __xen_send_IPI_mask(cpumask_of(cpu), XEN_CALL_FUNCTION_SINGLE_VECTOR); } +static inline int xen_map_vector(int vector) +{ + int xen_vector; + + switch (vector) { + case RESCHEDULE_VECTOR: + xen_vector = XEN_RESCHEDULE_VECTOR; + break; + case CALL_FUNCTION_VECTOR: + xen_vector = XEN_CALL_FUNCTION_VECTOR; + break; + case CALL_FUNCTION_SINGLE_VECTOR: + xen_vector = XEN_CALL_FUNCTION_SINGLE_VECTOR; + break; + default: + xen_vector = -1; + printk(KERN_ERR "xen: vector 0x%x is not implemented\n", + vector); + } + + return xen_vector; +} + +void xen_send_IPI_mask(const struct cpumask *mask, + int vector) +{ + int xen_vector = xen_map_vector(vector); + + if (xen_vector >= 0) + __xen_send_IPI_mask(mask, xen_vector); +} + +void xen_send_IPI_all(int vector) +{ + int xen_vector = xen_map_vector(vector); + + if (xen_vector >= 0) + __xen_send_IPI_mask(cpu_online_mask, xen_vector); +} + +void xen_send_IPI_self(int vector) +{ + int xen_vector = xen_map_vector(vector); + + if (xen_vector >= 0) + xen_send_IPI_one(smp_processor_id(), xen_vector); +} + +void xen_send_IPI_mask_allbutself(const struct cpumask *mask, + int vector) +{ + unsigned cpu; + unsigned int this_cpu = smp_processor_id(); + + if (!(num_online_cpus() > 1)) + return; + + for_each_cpu_and(cpu, mask, cpu_online_mask) { + if (this_cpu == cpu) + continue; + + xen_smp_send_call_function_single_ipi(cpu); + } +} + +void xen_send_IPI_allbutself(int vector) +{ + int xen_vector = xen_map_vector(vector); + + if (xen_vector >= 0) + xen_send_IPI_mask_allbutself(cpu_online_mask, xen_vector); +} + static irqreturn_t xen_call_function_interrupt(int irq, void *dev_id) { irq_enter(); @@ -548,6 +636,8 @@ unbind_from_irqhandler(per_cpu(xen_callfunc_irq, cpu), NULL); unbind_from_irqhandler(per_cpu(xen_debug_irq, cpu), NULL); unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu), NULL); + xen_uninit_lock_cpu(cpu); + xen_teardown_timer(cpu); native_cpu_die(cpu); } --- linux-3.2.0.orig/arch/x86/xen/enlighten.c +++ linux-3.2.0/arch/x86/xen/enlighten.c @@ -53,6 +53,9 @@ #include #include #include +#ifdef CONFIG_NUMA +#include +#endif #include #include #include @@ -62,9 +65,11 @@ #include #include #include +#include #include "xen-ops.h" #include "mmu.h" +#include "smp.h" #include "multicalls.h" EXPORT_SYMBOL_GPL(hypercall_page); @@ -128,6 +133,21 @@ BUG_ON(HYPERVISOR_shared_info == &xen_dummy_shared_info); + /* + * This path is called twice on PVHVM - first during bootup via + * smp_init -> xen_hvm_cpu_notify, and then if the VCPU is being + * hotplugged: cpu_up -> xen_hvm_cpu_notify. + * As we can only do the VCPUOP_register_vcpu_info once lets + * not over-write its result. + * + * For PV it is called during restore (xen_vcpu_restore) and bootup + * (xen_setup_vcpu_info_placement). The hotplug mechanism does not + * use this function. + */ + if (xen_hvm_domain()) { + if (per_cpu(xen_vcpu, cpu) == &per_cpu(xen_vcpu_info, cpu)) + return; + } if (cpu < MAX_VIRT_CPUS) per_cpu(xen_vcpu,cpu) = &HYPERVISOR_shared_info->vcpu_info[cpu]; @@ -197,6 +217,9 @@ xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : ""); } +#define CPUID_THERM_POWER_LEAF 6 +#define APERFMPERF_PRESENT 0 + static __read_mostly unsigned int cpuid_leaf1_edx_mask = ~0; static __read_mostly unsigned int cpuid_leaf1_ecx_mask = ~0; @@ -217,6 +240,11 @@ maskedx = cpuid_leaf1_edx_mask; break; + case CPUID_THERM_POWER_LEAF: + /* Disabling APERFMPERF for kernel usage */ + maskecx = ~(1 << APERFMPERF_PRESENT); + break; + case 0xb: /* Suppress extended topology stuff */ maskebx = 0; @@ -354,6 +382,24 @@ xen_mc_issue(PARAVIRT_LAZY_CPU); } +#ifdef CONFIG_X86_32 +static void xen_load_user_cs_desc(int cpu, struct mm_struct *mm) +{ + void *gdt; + xmaddr_t mgdt; + u64 descriptor; + struct desc_struct user_cs; + + gdt = &get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS]; + mgdt = virt_to_machine(gdt); + + user_cs = mm->context.user_cs; + descriptor = (u64) user_cs.a | ((u64) user_cs.b) << 32; + + HYPERVISOR_update_descriptor(mgdt.maddr, descriptor); +} +#endif /*CONFIG_X86_32*/ + static void xen_load_gdt(const struct desc_ptr *dtr) { unsigned long va = dtr->address; @@ -718,9 +764,40 @@ } #ifdef CONFIG_X86_LOCAL_APIC +static unsigned long xen_set_apic_id(unsigned int x) +{ + WARN_ON(1); + return x; +} +static unsigned int xen_get_apic_id(unsigned long x) +{ + return (((x)>>24) & 0xFFu); +} static u32 xen_apic_read(u32 reg) { - return 0; + struct xen_platform_op op = { + .cmd = XENPF_get_cpuinfo, + .interface_version = XENPF_INTERFACE_VERSION, + .u.pcpu_info.xen_cpuid = 0, + }; + int ret = 0; + + /* Shouldn't need this as APIC is turned off for PV, and we only + * get called on the bootup processor. But just in case. */ + if (!xen_initial_domain() || smp_processor_id()) + return 0; + + if (reg == APIC_LVR) + return 0x10; + + if (reg != APIC_ID) + return 0; + + ret = HYPERVISOR_dom0_op(&op); + if (ret) + return 0; + + return op.u.pcpu_info.apic_id << 24; } static void xen_apic_write(u32 reg, u32 val) @@ -758,6 +835,16 @@ apic->icr_write = xen_apic_icr_write; apic->wait_icr_idle = xen_apic_wait_icr_idle; apic->safe_wait_icr_idle = xen_safe_apic_wait_icr_idle; + apic->set_apic_id = xen_set_apic_id; + apic->get_apic_id = xen_get_apic_id; + +#ifdef CONFIG_SMP + apic->send_IPI_allbutself = xen_send_IPI_allbutself; + apic->send_IPI_mask_allbutself = xen_send_IPI_mask_allbutself; + apic->send_IPI_mask = xen_send_IPI_mask; + apic->send_IPI_all = xen_send_IPI_all; + apic->send_IPI_self = xen_send_IPI_self; +#endif } #endif @@ -809,7 +896,16 @@ native_write_cr4(cr4); } - +#ifdef CONFIG_X86_64 +static inline unsigned long xen_read_cr8(void) +{ + return 0; +} +static inline void xen_write_cr8(unsigned long val) +{ + BUG_ON(val); +} +#endif static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high) { int ret; @@ -978,13 +1074,23 @@ .read_cr4_safe = native_read_cr4_safe, .write_cr4 = xen_write_cr4, +#ifdef CONFIG_X86_64 + .read_cr8 = xen_read_cr8, + .write_cr8 = xen_write_cr8, +#endif + .wbinvd = native_wbinvd, .read_msr = native_read_msr_safe, + .rdmsr_regs = native_rdmsr_safe_regs, .write_msr = xen_write_msr_safe, + .wrmsr_regs = native_wrmsr_safe_regs, + .read_tsc = native_read_tsc, .read_pmc = native_read_pmc, + .read_tscp = native_read_tscp, + .iret = xen_iret, .irq_enable_sysexit = xen_sysexit, #ifdef CONFIG_X86_64 @@ -994,6 +1100,9 @@ .load_tr_desc = paravirt_nop, .set_ldt = xen_set_ldt, +#ifdef CONFIG_X86_32 + .load_user_cs_desc = xen_load_user_cs_desc, +#endif /*CONFIG_X86_32*/ .load_gdt = xen_load_gdt, .load_idt = xen_load_idt, .load_tls = xen_load_tls, @@ -1201,6 +1310,9 @@ */ acpi_numa = -1; #endif +#if defined(CONFIG_NUMA) && defined(CONFIG_X86_32) + numa_off = 1; +#endif pgd = (pgd_t *)xen_start_info->pt_base; @@ -1277,9 +1389,15 @@ /* Make sure ACS will be enabled */ pci_request_acs(); - } - + /* Avoid searching for BIOS MP tables */ + x86_init.mpparse.find_smp_config = x86_init_noop; + x86_init.mpparse.get_smp_config = x86_init_uint_noop; + } +#ifdef CONFIG_PCI + /* PCI BIOS service won't work from a PV guest. */ + pci_probe &= ~PCI_PROBE_BIOS; +#endif xen_raw_console_write("about to get started...\n"); xen_setup_runstate_info(0); @@ -1357,8 +1475,11 @@ switch (action) { case CPU_UP_PREPARE: xen_vcpu_setup(cpu); - if (xen_have_vector_callback) + if (xen_have_vector_callback) { xen_init_lock_cpu(cpu); + if (xen_feature(XENFEAT_hvm_safe_pvclock)) + xen_setup_timer(cpu); + } break; default: break; --- linux-3.2.0.orig/arch/x86/xen/xen-asm.S +++ linux-3.2.0/arch/x86/xen/xen-asm.S @@ -96,7 +96,7 @@ /* check for unmasked and pending */ cmpw $0x0001, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_pending - jz 1f + jnz 1f 2: call check_events 1: ENDPATCH(xen_restore_fl_direct) --- linux-3.2.0.orig/arch/x86/xen/setup.c +++ linux-3.2.0/arch/x86/xen/setup.c @@ -10,12 +10,14 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include @@ -78,9 +80,16 @@ memblock_x86_reserve_range(start, start + size, "XEN EXTRA"); xen_max_p2m_pfn = PFN_DOWN(start + size); + for (pfn = PFN_DOWN(start); pfn < xen_max_p2m_pfn; pfn++) { + unsigned long mfn = pfn_to_mfn(pfn); + + if (WARN(mfn == pfn, "Trying to over-write 1-1 mapping (pfn: %lx)\n", pfn)) + continue; + WARN(mfn != INVALID_P2M_ENTRY, "Trying to remove %lx which has %lx mfn!\n", + pfn, mfn); - for (pfn = PFN_DOWN(start); pfn <= xen_max_p2m_pfn; pfn++) __set_phys_to_machine(pfn, INVALID_P2M_ENTRY); + } } static unsigned long __init xen_release_chunk(unsigned long start, @@ -422,6 +431,10 @@ #endif disable_cpuidle(); boot_option_idle_override = IDLE_HALT; + disable_cpufreq(); WARN_ON(set_pm_idle_to_default()); fiddle_vdso(); +#ifdef CONFIG_NUMA + numa_off = 1; +#endif } --- linux-3.2.0.orig/arch/x86/xen/mmu.c +++ linux-3.2.0/arch/x86/xen/mmu.c @@ -353,8 +353,13 @@ { if (val & _PAGE_PRESENT) { unsigned long mfn = (val & PTE_PFN_MASK) >> PAGE_SHIFT; + unsigned long pfn = mfn_to_pfn(mfn); + pteval_t flags = val & PTE_FLAGS_MASK; - val = ((pteval_t)mfn_to_pfn(mfn) << PAGE_SHIFT) | flags; + if (unlikely(pfn == ~0)) + val = flags & ~_PAGE_PRESENT; + else + val = ((pteval_t)pfn << PAGE_SHIFT) | flags; } return val; @@ -1198,6 +1203,25 @@ return percpu_read(xen_vcpu_info.arch.cr2); } +void xen_flush_tlb_all(void) +{ + struct mmuext_op *op; + struct multicall_space mcs; + + trace_xen_mmu_flush_tlb_all(0); + + preempt_disable(); + + mcs = xen_mc_entry(sizeof(*op)); + + op = mcs.args; + op->cmd = MMUEXT_TLB_FLUSH_ALL; + MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF); + + xen_mc_issue(PARAVIRT_LAZY_MMU); + + preempt_enable(); +} static void xen_flush_tlb(void) { struct mmuext_op *op; @@ -2055,6 +2079,7 @@ .lazy_mode = { .enter = paravirt_enter_lazy_mmu, .leave = xen_leave_lazy_mmu, + .flush = paravirt_flush_lazy_mmu, }, .set_fixmap = xen_set_fixmap, @@ -2361,7 +2386,7 @@ err = 0; out: - flush_tlb_all(); + xen_flush_tlb_all(); return err; } --- linux-3.2.0.orig/arch/x86/xen/smp.h +++ linux-3.2.0/arch/x86/xen/smp.h @@ -0,0 +1,11 @@ +#ifndef _XEN_SMP_H + +extern void xen_send_IPI_mask(const struct cpumask *mask, + int vector); +extern void xen_send_IPI_mask_allbutself(const struct cpumask *mask, + int vector); +extern void xen_send_IPI_allbutself(int vector); +extern void xen_send_IPI_all(int vector); +extern void xen_send_IPI_self(int vector); + +#endif --- linux-3.2.0.orig/arch/x86/xen/xen-asm_32.S +++ linux-3.2.0/arch/x86/xen/xen-asm_32.S @@ -88,11 +88,11 @@ */ #ifdef CONFIG_SMP GET_THREAD_INFO(%eax) - movl TI_cpu(%eax), %eax - movl __per_cpu_offset(,%eax,4), %eax - mov xen_vcpu(%eax), %eax + movl %ss:TI_cpu(%eax), %eax + movl %ss:__per_cpu_offset(,%eax,4), %eax + mov %ss:xen_vcpu(%eax), %eax #else - movl xen_vcpu, %eax + movl %ss:xen_vcpu, %eax #endif /* check IF state we're restoring */ @@ -105,11 +105,11 @@ * resuming the code, so we don't have to be worried about * being preempted to another CPU. */ - setz XEN_vcpu_info_mask(%eax) + setz %ss:XEN_vcpu_info_mask(%eax) xen_iret_start_crit: /* check for unmasked and pending */ - cmpw $0x0001, XEN_vcpu_info_pending(%eax) + cmpw $0x0001, %ss:XEN_vcpu_info_pending(%eax) /* * If there's something pending, mask events again so we can @@ -117,7 +117,7 @@ * touch XEN_vcpu_info_mask. */ jne 1f - movb $1, XEN_vcpu_info_mask(%eax) + movb $1, %ss:XEN_vcpu_info_mask(%eax) 1: popl %eax --- linux-3.2.0.orig/arch/x86/power/cpu.c +++ linux-3.2.0/arch/x86/power/cpu.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -225,6 +226,7 @@ do_fpu_end(); mtrr_bp_restore(); + perf_restore_debug_store(); } /* Needed by apm.c */ --- linux-3.2.0.orig/arch/x86/tools/Makefile +++ linux-3.2.0/arch/x86/tools/Makefile @@ -29,3 +29,6 @@ # Dependencies are also needed. $(obj)/test_get_len.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c $(srctree)/arch/x86/include/asm/inat_types.h $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c +HOST_EXTRACFLAGS += -I$(srctree)/tools/include +hostprogs-y += relocs +relocs: $(obj)/relocs --- linux-3.2.0.orig/arch/x86/tools/relocs.c +++ linux-3.2.0/arch/x86/tools/relocs.c @@ -0,0 +1,820 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define USE_BSD +#include +#include + +static void die(char *fmt, ...); + +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +static Elf32_Ehdr ehdr; +static unsigned long reloc_count, reloc_idx; +static unsigned long *relocs; +static unsigned long reloc16_count, reloc16_idx; +static unsigned long *relocs16; + +struct section { + Elf32_Shdr shdr; + struct section *link; + Elf32_Sym *symtab; + Elf32_Rel *reltab; + char *strtab; +}; +static struct section *secs; + +enum symtype { + S_ABS, + S_REL, + S_SEG, + S_LIN, + S_NSYMTYPES +}; + +static const char * const sym_regex_kernel[S_NSYMTYPES] = { +/* + * Following symbols have been audited. There values are constant and do + * not change if bzImage is loaded at a different physical address than + * the address for which it has been compiled. Don't warn user about + * absolute relocations present w.r.t these symbols. + */ + [S_ABS] = + "^(xen_irq_disable_direct_reloc$|" + "xen_save_fl_direct_reloc$|" + "VDSO|" + "__crc_)", + +/* + * These symbols are known to be relative, even if the linker marks them + * as absolute (typically defined outside any section in the linker script.) + */ + [S_REL] = + "^(__init_(begin|end)|" + "__x86_cpu_dev_(start|end)|" + "(__parainstructions|__alt_instructions)(|_end)|" + "(__iommu_table|__apicdrivers|__smp_locks)(|_end)|" + "__(start|end)_pci_.*|" + "__(start|end)_builtin_fw|" + "__(start|stop)___ksymtab(|_gpl|_unused|_unused_gpl|_gpl_future)|" + "__(start|stop)___kcrctab(|_gpl|_unused|_unused_gpl|_gpl_future)|" + "__(start|stop)___param|" + "__(start|stop)___modver|" + "__(start|stop)___bug_table|" + "__tracedata_(start|end)|" + "__(start|stop)_notes|" + "__end_rodata|" + "__initramfs_start|" + "(jiffies|jiffies_64)|" + "_end)$" +}; + + +static const char * const sym_regex_realmode[S_NSYMTYPES] = { +/* + * These are 16-bit segment symbols when compiling 16-bit code. + */ + [S_SEG] = + "^real_mode_seg$", + +/* + * These are offsets belonging to segments, as opposed to linear addresses, + * when compiling 16-bit code. + */ + [S_LIN] = + "^pa_", +}; + +static const char * const *sym_regex; + +static regex_t sym_regex_c[S_NSYMTYPES]; +static int is_reloc(enum symtype type, const char *sym_name) +{ + return sym_regex[type] && + !regexec(&sym_regex_c[type], sym_name, 0, NULL, 0); +} + +static void regex_init(int use_real_mode) +{ + char errbuf[128]; + int err; + int i; + + if (use_real_mode) + sym_regex = sym_regex_realmode; + else + sym_regex = sym_regex_kernel; + + for (i = 0; i < S_NSYMTYPES; i++) { + if (!sym_regex[i]) + continue; + + err = regcomp(&sym_regex_c[i], sym_regex[i], + REG_EXTENDED|REG_NOSUB); + + if (err) { + regerror(err, &sym_regex_c[i], errbuf, sizeof errbuf); + die("%s", errbuf); + } + } +} + +static void die(char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + exit(1); +} + +static const char *sym_type(unsigned type) +{ + static const char *type_name[] = { +#define SYM_TYPE(X) [X] = #X + SYM_TYPE(STT_NOTYPE), + SYM_TYPE(STT_OBJECT), + SYM_TYPE(STT_FUNC), + SYM_TYPE(STT_SECTION), + SYM_TYPE(STT_FILE), + SYM_TYPE(STT_COMMON), + SYM_TYPE(STT_TLS), +#undef SYM_TYPE + }; + const char *name = "unknown sym type name"; + if (type < ARRAY_SIZE(type_name)) { + name = type_name[type]; + } + return name; +} + +static const char *sym_bind(unsigned bind) +{ + static const char *bind_name[] = { +#define SYM_BIND(X) [X] = #X + SYM_BIND(STB_LOCAL), + SYM_BIND(STB_GLOBAL), + SYM_BIND(STB_WEAK), +#undef SYM_BIND + }; + const char *name = "unknown sym bind name"; + if (bind < ARRAY_SIZE(bind_name)) { + name = bind_name[bind]; + } + return name; +} + +static const char *sym_visibility(unsigned visibility) +{ + static const char *visibility_name[] = { +#define SYM_VISIBILITY(X) [X] = #X + SYM_VISIBILITY(STV_DEFAULT), + SYM_VISIBILITY(STV_INTERNAL), + SYM_VISIBILITY(STV_HIDDEN), + SYM_VISIBILITY(STV_PROTECTED), +#undef SYM_VISIBILITY + }; + const char *name = "unknown sym visibility name"; + if (visibility < ARRAY_SIZE(visibility_name)) { + name = visibility_name[visibility]; + } + return name; +} + +static const char *rel_type(unsigned type) +{ + static const char *type_name[] = { +#define REL_TYPE(X) [X] = #X + REL_TYPE(R_386_NONE), + REL_TYPE(R_386_32), + REL_TYPE(R_386_PC32), + REL_TYPE(R_386_GOT32), + REL_TYPE(R_386_PLT32), + REL_TYPE(R_386_COPY), + REL_TYPE(R_386_GLOB_DAT), + REL_TYPE(R_386_JMP_SLOT), + REL_TYPE(R_386_RELATIVE), + REL_TYPE(R_386_GOTOFF), + REL_TYPE(R_386_GOTPC), + REL_TYPE(R_386_8), + REL_TYPE(R_386_PC8), + REL_TYPE(R_386_16), + REL_TYPE(R_386_PC16), +#undef REL_TYPE + }; + const char *name = "unknown type rel type name"; + if (type < ARRAY_SIZE(type_name) && type_name[type]) { + name = type_name[type]; + } + return name; +} + +static const char *sec_name(unsigned shndx) +{ + const char *sec_strtab; + const char *name; + sec_strtab = secs[ehdr.e_shstrndx].strtab; + name = ""; + if (shndx < ehdr.e_shnum) { + name = sec_strtab + secs[shndx].shdr.sh_name; + } + else if (shndx == SHN_ABS) { + name = "ABSOLUTE"; + } + else if (shndx == SHN_COMMON) { + name = "COMMON"; + } + return name; +} + +static const char *sym_name(const char *sym_strtab, Elf32_Sym *sym) +{ + const char *name; + name = ""; + if (sym->st_name) { + name = sym_strtab + sym->st_name; + } + else { + name = sec_name(sym->st_shndx); + } + return name; +} + + + +#if BYTE_ORDER == LITTLE_ENDIAN +#define le16_to_cpu(val) (val) +#define le32_to_cpu(val) (val) +#endif +#if BYTE_ORDER == BIG_ENDIAN +#define le16_to_cpu(val) bswap_16(val) +#define le32_to_cpu(val) bswap_32(val) +#endif + +static uint16_t elf16_to_cpu(uint16_t val) +{ + return le16_to_cpu(val); +} + +static uint32_t elf32_to_cpu(uint32_t val) +{ + return le32_to_cpu(val); +} + +static void read_ehdr(FILE *fp) +{ + if (fread(&ehdr, sizeof(ehdr), 1, fp) != 1) { + die("Cannot read ELF header: %s\n", + strerror(errno)); + } + if (memcmp(ehdr.e_ident, ELFMAG, SELFMAG) != 0) { + die("No ELF magic\n"); + } + if (ehdr.e_ident[EI_CLASS] != ELFCLASS32) { + die("Not a 32 bit executable\n"); + } + if (ehdr.e_ident[EI_DATA] != ELFDATA2LSB) { + die("Not a LSB ELF executable\n"); + } + if (ehdr.e_ident[EI_VERSION] != EV_CURRENT) { + die("Unknown ELF version\n"); + } + /* Convert the fields to native endian */ + ehdr.e_type = elf16_to_cpu(ehdr.e_type); + ehdr.e_machine = elf16_to_cpu(ehdr.e_machine); + ehdr.e_version = elf32_to_cpu(ehdr.e_version); + ehdr.e_entry = elf32_to_cpu(ehdr.e_entry); + ehdr.e_phoff = elf32_to_cpu(ehdr.e_phoff); + ehdr.e_shoff = elf32_to_cpu(ehdr.e_shoff); + ehdr.e_flags = elf32_to_cpu(ehdr.e_flags); + ehdr.e_ehsize = elf16_to_cpu(ehdr.e_ehsize); + ehdr.e_phentsize = elf16_to_cpu(ehdr.e_phentsize); + ehdr.e_phnum = elf16_to_cpu(ehdr.e_phnum); + ehdr.e_shentsize = elf16_to_cpu(ehdr.e_shentsize); + ehdr.e_shnum = elf16_to_cpu(ehdr.e_shnum); + ehdr.e_shstrndx = elf16_to_cpu(ehdr.e_shstrndx); + + if ((ehdr.e_type != ET_EXEC) && (ehdr.e_type != ET_DYN)) { + die("Unsupported ELF header type\n"); + } + if (ehdr.e_machine != EM_386) { + die("Not for x86\n"); + } + if (ehdr.e_version != EV_CURRENT) { + die("Unknown ELF version\n"); + } + if (ehdr.e_ehsize != sizeof(Elf32_Ehdr)) { + die("Bad Elf header size\n"); + } + if (ehdr.e_phentsize != sizeof(Elf32_Phdr)) { + die("Bad program header entry\n"); + } + if (ehdr.e_shentsize != sizeof(Elf32_Shdr)) { + die("Bad section header entry\n"); + } + if (ehdr.e_shstrndx >= ehdr.e_shnum) { + die("String table index out of bounds\n"); + } +} + +static void read_shdrs(FILE *fp) +{ + int i; + Elf32_Shdr shdr; + + secs = calloc(ehdr.e_shnum, sizeof(struct section)); + if (!secs) { + die("Unable to allocate %d section headers\n", + ehdr.e_shnum); + } + if (fseek(fp, ehdr.e_shoff, SEEK_SET) < 0) { + die("Seek to %d failed: %s\n", + ehdr.e_shoff, strerror(errno)); + } + for (i = 0; i < ehdr.e_shnum; i++) { + struct section *sec = &secs[i]; + if (fread(&shdr, sizeof shdr, 1, fp) != 1) + die("Cannot read ELF section headers %d/%d: %s\n", + i, ehdr.e_shnum, strerror(errno)); + sec->shdr.sh_name = elf32_to_cpu(shdr.sh_name); + sec->shdr.sh_type = elf32_to_cpu(shdr.sh_type); + sec->shdr.sh_flags = elf32_to_cpu(shdr.sh_flags); + sec->shdr.sh_addr = elf32_to_cpu(shdr.sh_addr); + sec->shdr.sh_offset = elf32_to_cpu(shdr.sh_offset); + sec->shdr.sh_size = elf32_to_cpu(shdr.sh_size); + sec->shdr.sh_link = elf32_to_cpu(shdr.sh_link); + sec->shdr.sh_info = elf32_to_cpu(shdr.sh_info); + sec->shdr.sh_addralign = elf32_to_cpu(shdr.sh_addralign); + sec->shdr.sh_entsize = elf32_to_cpu(shdr.sh_entsize); + if (sec->shdr.sh_link < ehdr.e_shnum) + sec->link = &secs[sec->shdr.sh_link]; + } + +} + +static void read_strtabs(FILE *fp) +{ + int i; + for (i = 0; i < ehdr.e_shnum; i++) { + struct section *sec = &secs[i]; + if (sec->shdr.sh_type != SHT_STRTAB) { + continue; + } + sec->strtab = malloc(sec->shdr.sh_size); + if (!sec->strtab) { + die("malloc of %d bytes for strtab failed\n", + sec->shdr.sh_size); + } + if (fseek(fp, sec->shdr.sh_offset, SEEK_SET) < 0) { + die("Seek to %d failed: %s\n", + sec->shdr.sh_offset, strerror(errno)); + } + if (fread(sec->strtab, 1, sec->shdr.sh_size, fp) + != sec->shdr.sh_size) { + die("Cannot read symbol table: %s\n", + strerror(errno)); + } + } +} + +static void read_symtabs(FILE *fp) +{ + int i,j; + for (i = 0; i < ehdr.e_shnum; i++) { + struct section *sec = &secs[i]; + if (sec->shdr.sh_type != SHT_SYMTAB) { + continue; + } + sec->symtab = malloc(sec->shdr.sh_size); + if (!sec->symtab) { + die("malloc of %d bytes for symtab failed\n", + sec->shdr.sh_size); + } + if (fseek(fp, sec->shdr.sh_offset, SEEK_SET) < 0) { + die("Seek to %d failed: %s\n", + sec->shdr.sh_offset, strerror(errno)); + } + if (fread(sec->symtab, 1, sec->shdr.sh_size, fp) + != sec->shdr.sh_size) { + die("Cannot read symbol table: %s\n", + strerror(errno)); + } + for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Sym); j++) { + Elf32_Sym *sym = &sec->symtab[j]; + sym->st_name = elf32_to_cpu(sym->st_name); + sym->st_value = elf32_to_cpu(sym->st_value); + sym->st_size = elf32_to_cpu(sym->st_size); + sym->st_shndx = elf16_to_cpu(sym->st_shndx); + } + } +} + + +static void read_relocs(FILE *fp) +{ + int i,j; + for (i = 0; i < ehdr.e_shnum; i++) { + struct section *sec = &secs[i]; + if (sec->shdr.sh_type != SHT_REL) { + continue; + } + sec->reltab = malloc(sec->shdr.sh_size); + if (!sec->reltab) { + die("malloc of %d bytes for relocs failed\n", + sec->shdr.sh_size); + } + if (fseek(fp, sec->shdr.sh_offset, SEEK_SET) < 0) { + die("Seek to %d failed: %s\n", + sec->shdr.sh_offset, strerror(errno)); + } + if (fread(sec->reltab, 1, sec->shdr.sh_size, fp) + != sec->shdr.sh_size) { + die("Cannot read symbol table: %s\n", + strerror(errno)); + } + for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) { + Elf32_Rel *rel = &sec->reltab[j]; + rel->r_offset = elf32_to_cpu(rel->r_offset); + rel->r_info = elf32_to_cpu(rel->r_info); + } + } +} + + +static void print_absolute_symbols(void) +{ + int i; + printf("Absolute symbols\n"); + printf(" Num: Value Size Type Bind Visibility Name\n"); + for (i = 0; i < ehdr.e_shnum; i++) { + struct section *sec = &secs[i]; + char *sym_strtab; + int j; + + if (sec->shdr.sh_type != SHT_SYMTAB) { + continue; + } + sym_strtab = sec->link->strtab; + for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Sym); j++) { + Elf32_Sym *sym; + const char *name; + sym = &sec->symtab[j]; + name = sym_name(sym_strtab, sym); + if (sym->st_shndx != SHN_ABS) { + continue; + } + printf("%5d %08x %5d %10s %10s %12s %s\n", + j, sym->st_value, sym->st_size, + sym_type(ELF32_ST_TYPE(sym->st_info)), + sym_bind(ELF32_ST_BIND(sym->st_info)), + sym_visibility(ELF32_ST_VISIBILITY(sym->st_other)), + name); + } + } + printf("\n"); +} + +static void print_absolute_relocs(void) +{ + int i, printed = 0; + + for (i = 0; i < ehdr.e_shnum; i++) { + struct section *sec = &secs[i]; + struct section *sec_applies, *sec_symtab; + char *sym_strtab; + Elf32_Sym *sh_symtab; + int j; + if (sec->shdr.sh_type != SHT_REL) { + continue; + } + sec_symtab = sec->link; + sec_applies = &secs[sec->shdr.sh_info]; + if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) { + continue; + } + sh_symtab = sec_symtab->symtab; + sym_strtab = sec_symtab->link->strtab; + for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) { + Elf32_Rel *rel; + Elf32_Sym *sym; + const char *name; + rel = &sec->reltab[j]; + sym = &sh_symtab[ELF32_R_SYM(rel->r_info)]; + name = sym_name(sym_strtab, sym); + if (sym->st_shndx != SHN_ABS) { + continue; + } + + /* Absolute symbols are not relocated if bzImage is + * loaded at a non-compiled address. Display a warning + * to user at compile time about the absolute + * relocations present. + * + * User need to audit the code to make sure + * some symbols which should have been section + * relative have not become absolute because of some + * linker optimization or wrong programming usage. + * + * Before warning check if this absolute symbol + * relocation is harmless. + */ + if (is_reloc(S_ABS, name) || is_reloc(S_REL, name)) + continue; + + if (!printed) { + printf("WARNING: Absolute relocations" + " present\n"); + printf("Offset Info Type Sym.Value " + "Sym.Name\n"); + printed = 1; + } + + printf("%08x %08x %10s %08x %s\n", + rel->r_offset, + rel->r_info, + rel_type(ELF32_R_TYPE(rel->r_info)), + sym->st_value, + name); + } + } + + if (printed) + printf("\n"); +} + +static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym), + int use_real_mode) +{ + int i; + /* Walk through the relocations */ + for (i = 0; i < ehdr.e_shnum; i++) { + char *sym_strtab; + Elf32_Sym *sh_symtab; + struct section *sec_applies, *sec_symtab; + int j; + struct section *sec = &secs[i]; + + if (sec->shdr.sh_type != SHT_REL) { + continue; + } + sec_symtab = sec->link; + sec_applies = &secs[sec->shdr.sh_info]; + if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) { + continue; + } + sh_symtab = sec_symtab->symtab; + sym_strtab = sec_symtab->link->strtab; + for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) { + Elf32_Rel *rel; + Elf32_Sym *sym; + unsigned r_type; + const char *symname; + int shn_abs; + + rel = &sec->reltab[j]; + sym = &sh_symtab[ELF32_R_SYM(rel->r_info)]; + r_type = ELF32_R_TYPE(rel->r_info); + + shn_abs = sym->st_shndx == SHN_ABS; + + switch (r_type) { + case R_386_NONE: + case R_386_PC32: + case R_386_PC16: + case R_386_PC8: + /* + * NONE can be ignored and and PC relative + * relocations don't need to be adjusted. + */ + break; + + case R_386_16: + symname = sym_name(sym_strtab, sym); + if (!use_real_mode) + goto bad; + if (shn_abs) { + if (is_reloc(S_ABS, symname)) + break; + else if (!is_reloc(S_SEG, symname)) + goto bad; + } else { + if (is_reloc(S_LIN, symname)) + goto bad; + else + break; + } + visit(rel, sym); + break; + + case R_386_32: + symname = sym_name(sym_strtab, sym); + if (shn_abs) { + if (is_reloc(S_ABS, symname)) + break; + else if (!is_reloc(S_REL, symname)) + goto bad; + } else { + if (use_real_mode && + !is_reloc(S_LIN, symname)) + break; + } + visit(rel, sym); + break; + default: + die("Unsupported relocation type: %s (%d)\n", + rel_type(r_type), r_type); + break; + bad: + symname = sym_name(sym_strtab, sym); + die("Invalid %s %s relocation: %s\n", + shn_abs ? "absolute" : "relative", + rel_type(r_type), symname); + } + } + } +} + +static void count_reloc(Elf32_Rel *rel, Elf32_Sym *sym) +{ + if (ELF32_R_TYPE(rel->r_info) == R_386_16) + reloc16_count++; + else + reloc_count++; +} + +static void collect_reloc(Elf32_Rel *rel, Elf32_Sym *sym) +{ + /* Remember the address that needs to be adjusted. */ + if (ELF32_R_TYPE(rel->r_info) == R_386_16) + relocs16[reloc16_idx++] = rel->r_offset; + else + relocs[reloc_idx++] = rel->r_offset; +} + +static int cmp_relocs(const void *va, const void *vb) +{ + const unsigned long *a, *b; + a = va; b = vb; + return (*a == *b)? 0 : (*a > *b)? 1 : -1; +} + +static int write32(unsigned int v, FILE *f) +{ + unsigned char buf[4]; + + buf[0] = (v >> 0) & 0xff; + buf[1] = (v >> 8) & 0xff; + buf[2] = (v >> 16) & 0xff; + buf[3] = (v >> 24) & 0xff; + return fwrite(buf, 1, 4, f) == 4 ? 0 : -1; +} + +static void emit_relocs(int as_text, int use_real_mode) +{ + int i; + /* Count how many relocations I have and allocate space for them. */ + reloc_count = 0; + walk_relocs(count_reloc, use_real_mode); + relocs = malloc(reloc_count * sizeof(relocs[0])); + if (!relocs) { + die("malloc of %d entries for relocs failed\n", + reloc_count); + } + + relocs16 = malloc(reloc16_count * sizeof(relocs[0])); + if (!relocs16) { + die("malloc of %d entries for relocs16 failed\n", + reloc16_count); + } + /* Collect up the relocations */ + reloc_idx = 0; + walk_relocs(collect_reloc, use_real_mode); + + if (reloc16_count && !use_real_mode) + die("Segment relocations found but --realmode not specified\n"); + + /* Order the relocations for more efficient processing */ + qsort(relocs, reloc_count, sizeof(relocs[0]), cmp_relocs); + qsort(relocs16, reloc16_count, sizeof(relocs16[0]), cmp_relocs); + + /* Print the relocations */ + if (as_text) { + /* Print the relocations in a form suitable that + * gas will like. + */ + printf(".section \".data.reloc\",\"a\"\n"); + printf(".balign 4\n"); + if (use_real_mode) { + printf("\t.long %lu\n", reloc16_count); + for (i = 0; i < reloc16_count; i++) + printf("\t.long 0x%08lx\n", relocs16[i]); + printf("\t.long %lu\n", reloc_count); + for (i = 0; i < reloc_count; i++) { + printf("\t.long 0x%08lx\n", relocs[i]); + } + } else { + /* Print a stop */ + printf("\t.long 0x%08lx\n", (unsigned long)0); + for (i = 0; i < reloc_count; i++) { + printf("\t.long 0x%08lx\n", relocs[i]); + } + } + + printf("\n"); + } + else { + if (use_real_mode) { + write32(reloc16_count, stdout); + for (i = 0; i < reloc16_count; i++) + write32(relocs16[i], stdout); + write32(reloc_count, stdout); + + /* Now print each relocation */ + for (i = 0; i < reloc_count; i++) + write32(relocs[i], stdout); + } else { + /* Print a stop */ + write32(0, stdout); + + /* Now print each relocation */ + for (i = 0; i < reloc_count; i++) { + write32(relocs[i], stdout); + } + } + } +} + +static void usage(void) +{ + die("relocs [--abs-syms|--abs-relocs|--text|--realmode] vmlinux\n"); +} + +int main(int argc, char **argv) +{ + int show_absolute_syms, show_absolute_relocs; + int as_text, use_real_mode; + const char *fname; + FILE *fp; + int i; + + show_absolute_syms = 0; + show_absolute_relocs = 0; + as_text = 0; + use_real_mode = 0; + fname = NULL; + for (i = 1; i < argc; i++) { + char *arg = argv[i]; + if (*arg == '-') { + if (strcmp(arg, "--abs-syms") == 0) { + show_absolute_syms = 1; + continue; + } + if (strcmp(arg, "--abs-relocs") == 0) { + show_absolute_relocs = 1; + continue; + } + if (strcmp(arg, "--text") == 0) { + as_text = 1; + continue; + } + if (strcmp(arg, "--realmode") == 0) { + use_real_mode = 1; + continue; + } + } + else if (!fname) { + fname = arg; + continue; + } + usage(); + } + if (!fname) { + usage(); + } + regex_init(use_real_mode); + fp = fopen(fname, "r"); + if (!fp) { + die("Cannot open %s: %s\n", + fname, strerror(errno)); + } + read_ehdr(fp); + read_shdrs(fp); + read_strtabs(fp); + read_symtabs(fp); + read_relocs(fp); + if (show_absolute_syms) { + print_absolute_symbols(); + return 0; + } + if (show_absolute_relocs) { + print_absolute_relocs(); + return 0; + } + emit_relocs(as_text, use_real_mode); + return 0; +} --- linux-3.2.0.orig/arch/x86/lib/usercopy_64.c +++ linux-3.2.0/arch/x86/lib/usercopy_64.c @@ -169,10 +169,10 @@ char c; unsigned zero_len; - for (; len; --len) { + for (; len; --len, to++) { if (__get_user_nocheck(c, from++, sizeof(char))) break; - if (__put_user_nocheck(c, to++, sizeof(char))) + if (__put_user_nocheck(c, to, sizeof(char))) break; } --- linux-3.2.0.orig/arch/x86/lib/delay.c +++ linux-3.2.0/arch/x86/lib/delay.c @@ -48,9 +48,9 @@ } /* TSC based delay: */ -static void delay_tsc(unsigned long loops) +static void delay_tsc(unsigned long __loops) { - unsigned long bclock, now; + u32 bclock, now, loops = __loops; int cpu; preempt_disable(); --- linux-3.2.0.orig/arch/x86/net/bpf_jit_comp.c +++ linux-3.2.0/arch/x86/net/bpf_jit_comp.c @@ -151,17 +151,18 @@ cleanup_addr = proglen; /* epilogue address */ for (pass = 0; pass < 10; pass++) { + u8 seen_or_pass0 = (pass == 0) ? (SEEN_XREG | SEEN_DATAREF | SEEN_MEM) : seen; /* no prologue/epilogue for trivial filters (RET something) */ proglen = 0; prog = temp; - if (seen) { + if (seen_or_pass0) { EMIT4(0x55, 0x48, 0x89, 0xe5); /* push %rbp; mov %rsp,%rbp */ EMIT4(0x48, 0x83, 0xec, 96); /* subq $96,%rsp */ /* note : must save %rbx in case bpf_error is hit */ - if (seen & (SEEN_XREG | SEEN_DATAREF)) + if (seen_or_pass0 & (SEEN_XREG | SEEN_DATAREF)) EMIT4(0x48, 0x89, 0x5d, 0xf8); /* mov %rbx, -8(%rbp) */ - if (seen & SEEN_XREG) + if (seen_or_pass0 & SEEN_XREG) CLEAR_X(); /* make sure we dont leek kernel memory */ /* @@ -170,7 +171,7 @@ * r9 = skb->len - skb->data_len * r8 = skb->data */ - if (seen & SEEN_DATAREF) { + if (seen_or_pass0 & SEEN_DATAREF) { if (offsetof(struct sk_buff, len) <= 127) /* mov off8(%rdi),%r9d */ EMIT4(0x44, 0x8b, 0x4f, offsetof(struct sk_buff, len)); @@ -260,9 +261,14 @@ case BPF_S_ALU_DIV_X: /* A /= X; */ seen |= SEEN_XREG; EMIT2(0x85, 0xdb); /* test %ebx,%ebx */ - if (pc_ret0 != -1) - EMIT_COND_JMP(X86_JE, addrs[pc_ret0] - (addrs[i] - 4)); - else { + if (pc_ret0 > 0) { + /* addrs[pc_ret0 - 1] is start address of target + * (addrs[i] - 4) is the address following this jmp + * ("xor %edx,%edx; div %ebx" being 4 bytes long) + */ + EMIT_COND_JMP(X86_JE, addrs[pc_ret0 - 1] - + (addrs[i] - 4)); + } else { EMIT_COND_JMP(X86_JNE, 2 + 5); CLEAR_A(); EMIT1_off32(0xe9, cleanup_addr - (addrs[i] - 4)); /* jmp .+off32 */ @@ -283,7 +289,7 @@ EMIT2(0x24, K & 0xFF); /* and imm8,%al */ } else if (K >= 0xFFFF0000) { EMIT2(0x66, 0x25); /* and imm16,%ax */ - EMIT2(K, 2); + EMIT(K, 2); } else { EMIT1_off32(0x25, K); /* and imm32,%eax */ } @@ -335,12 +341,12 @@ } /* fallinto */ case BPF_S_RET_A: - if (seen) { + if (seen_or_pass0) { if (i != flen - 1) { EMIT_JMP(cleanup_addr - addrs[i]); break; } - if (seen & SEEN_XREG) + if (seen_or_pass0 & SEEN_XREG) EMIT4(0x48, 0x8b, 0x5d, 0xf8); /* mov -8(%rbp),%rbx */ EMIT1(0xc9); /* leaveq */ } @@ -469,8 +475,10 @@ case BPF_S_LD_W_ABS: func = sk_load_word; common_load: seen |= SEEN_DATAREF; - if ((int)K < 0) + if ((int)K < 0) { + /* Abort the JIT because __load_pointer() is needed. */ goto out; + } t_offset = func - (image + addrs[i]); EMIT1_off32(0xbe, K); /* mov imm32,%esi */ EMIT1_off32(0xe8, t_offset); /* call */ @@ -483,13 +491,8 @@ goto common_load; case BPF_S_LDX_B_MSH: if ((int)K < 0) { - if (pc_ret0 != -1) { - EMIT_JMP(addrs[pc_ret0] - addrs[i]); - break; - } - CLEAR_A(); - EMIT_JMP(cleanup_addr - addrs[i]); - break; + /* Abort the JIT because __load_pointer() is needed. */ + goto out; } seen |= SEEN_DATAREF | SEEN_XREG; t_offset = sk_load_byte_msh - (image + addrs[i]); @@ -599,13 +602,14 @@ * use it to give the cleanup instruction(s) addr */ cleanup_addr = proglen - 1; /* ret */ - if (seen) + if (seen_or_pass0) cleanup_addr -= 1; /* leaveq */ - if (seen & SEEN_XREG) + if (seen_or_pass0 & SEEN_XREG) cleanup_addr -= 4; /* mov -8(%rbp),%rbx */ if (image) { - WARN_ON(proglen != oldproglen); + if (proglen != oldproglen) + pr_err("bpb_jit_compile proglen=%u != oldproglen=%u\n", proglen, oldproglen); break; } if (proglen == oldproglen) { --- linux-3.2.0.orig/arch/x86/kvm/cpuid.h +++ linux-3.2.0/arch/x86/kvm/cpuid.h @@ -0,0 +1,49 @@ +#ifndef ARCH_X86_KVM_CPUID_H +#define ARCH_X86_KVM_CPUID_H + +#include "x86.h" + +void kvm_update_cpuid(struct kvm_vcpu *vcpu); +struct kvm_cpuid_entry2 *kvm_find_cpuid_entry(struct kvm_vcpu *vcpu, + u32 function, u32 index); +int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, + struct kvm_cpuid_entry2 __user *entries); +int kvm_vcpu_ioctl_set_cpuid(struct kvm_vcpu *vcpu, + struct kvm_cpuid *cpuid, + struct kvm_cpuid_entry __user *entries); +int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu, + struct kvm_cpuid2 *cpuid, + struct kvm_cpuid_entry2 __user *entries); +int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu, + struct kvm_cpuid2 *cpuid, + struct kvm_cpuid_entry2 __user *entries); + + +static inline bool guest_cpuid_has_xsave(struct kvm_vcpu *vcpu) +{ + struct kvm_cpuid_entry2 *best; + + if (!static_cpu_has(X86_FEATURE_XSAVE)) + return 0; + + best = kvm_find_cpuid_entry(vcpu, 1, 0); + return best && (best->ecx & bit(X86_FEATURE_XSAVE)); +} + +static inline bool guest_cpuid_has_smep(struct kvm_vcpu *vcpu) +{ + struct kvm_cpuid_entry2 *best; + + best = kvm_find_cpuid_entry(vcpu, 7, 0); + return best && (best->ebx & bit(X86_FEATURE_SMEP)); +} + +static inline bool guest_cpuid_has_fsgsbase(struct kvm_vcpu *vcpu) +{ + struct kvm_cpuid_entry2 *best; + + best = kvm_find_cpuid_entry(vcpu, 7, 0); + return best && (best->ebx & bit(X86_FEATURE_FSGSBASE)); +} + +#endif --- linux-3.2.0.orig/arch/x86/kvm/x86.c +++ linux-3.2.0/arch/x86/kvm/x86.c @@ -26,6 +26,7 @@ #include "tss.h" #include "kvm_cache_regs.h" #include "x86.h" +#include "cpuid.h" #include #include @@ -82,8 +83,6 @@ #define VCPU_STAT(x) offsetof(struct kvm_vcpu, stat.x), KVM_STAT_VCPU static void update_cr8_intercept(struct kvm_vcpu *vcpu); -static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, - struct kvm_cpuid_entry2 __user *entries); static void process_nmi(struct kvm_vcpu *vcpu); struct kvm_x86_ops *kvm_x86_ops; @@ -551,8 +550,6 @@ if (index != XCR_XFEATURE_ENABLED_MASK) return 1; xcr0 = xcr; - if (kvm_x86_ops->get_cpl(vcpu) != 0) - return 1; if (!(xcr0 & XSTATE_FP)) return 1; if ((xcr0 & XSTATE_YMM) && !(xcr0 & XSTATE_SSE)) @@ -566,7 +563,8 @@ int kvm_set_xcr(struct kvm_vcpu *vcpu, u32 index, u64 xcr) { - if (__kvm_set_xcr(vcpu, index, xcr)) { + if (kvm_x86_ops->get_cpl(vcpu) != 0 || + __kvm_set_xcr(vcpu, index, xcr)) { kvm_inject_gp(vcpu, 0); return 1; } @@ -574,54 +572,6 @@ } EXPORT_SYMBOL_GPL(kvm_set_xcr); -static bool guest_cpuid_has_xsave(struct kvm_vcpu *vcpu) -{ - struct kvm_cpuid_entry2 *best; - - best = kvm_find_cpuid_entry(vcpu, 1, 0); - return best && (best->ecx & bit(X86_FEATURE_XSAVE)); -} - -static bool guest_cpuid_has_smep(struct kvm_vcpu *vcpu) -{ - struct kvm_cpuid_entry2 *best; - - best = kvm_find_cpuid_entry(vcpu, 7, 0); - return best && (best->ebx & bit(X86_FEATURE_SMEP)); -} - -static bool guest_cpuid_has_fsgsbase(struct kvm_vcpu *vcpu) -{ - struct kvm_cpuid_entry2 *best; - - best = kvm_find_cpuid_entry(vcpu, 7, 0); - return best && (best->ebx & bit(X86_FEATURE_FSGSBASE)); -} - -static void update_cpuid(struct kvm_vcpu *vcpu) -{ - struct kvm_cpuid_entry2 *best; - struct kvm_lapic *apic = vcpu->arch.apic; - - best = kvm_find_cpuid_entry(vcpu, 1, 0); - if (!best) - return; - - /* Update OSXSAVE bit */ - if (cpu_has_xsave && best->function == 0x1) { - best->ecx &= ~(bit(X86_FEATURE_OSXSAVE)); - if (kvm_read_cr4_bits(vcpu, X86_CR4_OSXSAVE)) - best->ecx |= bit(X86_FEATURE_OSXSAVE); - } - - if (apic) { - if (best->ecx & bit(X86_FEATURE_TSC_DEADLINE_TIMER)) - apic->lapic_timer.timer_mode_mask = 3 << 17; - else - apic->lapic_timer.timer_mode_mask = 1 << 17; - } -} - int kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) { unsigned long old_cr4 = kvm_read_cr4(vcpu); @@ -655,7 +605,7 @@ kvm_mmu_reset_context(vcpu); if ((cr4 ^ old_cr4) & X86_CR4_OSXSAVE) - update_cpuid(vcpu); + kvm_update_cpuid(vcpu); return 0; } @@ -1102,7 +1052,6 @@ { unsigned long flags; struct kvm_vcpu_arch *vcpu = &v->arch; - void *shared_kaddr; unsigned long this_tsc_khz; s64 kernel_ns, max_kernel_ns; u64 tsc_timestamp; @@ -1138,7 +1087,7 @@ local_irq_restore(flags); - if (!vcpu->time_page) + if (!vcpu->pv_time_enabled) return 0; /* @@ -1196,14 +1145,9 @@ */ vcpu->hv_clock.version += 2; - shared_kaddr = kmap_atomic(vcpu->time_page, KM_USER0); - - memcpy(shared_kaddr + vcpu->time_offset, &vcpu->hv_clock, - sizeof(vcpu->hv_clock)); - - kunmap_atomic(shared_kaddr, KM_USER0); - - mark_page_dirty(v->kvm, vcpu->time >> PAGE_SHIFT); + kvm_write_guest_cached(v->kvm, &vcpu->pv_time, + &vcpu->hv_clock, + sizeof(vcpu->hv_clock)); return 0; } @@ -1483,7 +1427,8 @@ return 0; } - if (kvm_gfn_to_hva_cache_init(vcpu->kvm, &vcpu->arch.apf.data, gpa)) + if (kvm_gfn_to_hva_cache_init(vcpu->kvm, &vcpu->arch.apf.data, gpa, + sizeof(u32))) return 1; vcpu->arch.apf.send_user_only = !(data & KVM_ASYNC_PF_SEND_ALWAYS); @@ -1493,10 +1438,7 @@ static void kvmclock_reset(struct kvm_vcpu *vcpu) { - if (vcpu->arch.time_page) { - kvm_release_page_dirty(vcpu->arch.time_page); - vcpu->arch.time_page = NULL; - } + vcpu->arch.pv_time_enabled = false; } static void accumulate_steal_time(struct kvm_vcpu *vcpu) @@ -1588,6 +1530,7 @@ break; case MSR_KVM_SYSTEM_TIME_NEW: case MSR_KVM_SYSTEM_TIME: { + u64 gpa_offset; kvmclock_reset(vcpu); vcpu->arch.time = data; @@ -1597,16 +1540,15 @@ if (!(data & 1)) break; - /* ...but clean it before doing the actual write */ - vcpu->arch.time_offset = data & ~(PAGE_MASK | 1); + gpa_offset = data & ~(PAGE_MASK | 1); - vcpu->arch.time_page = - gfn_to_page(vcpu->kvm, data >> PAGE_SHIFT); + if (kvm_gfn_to_hva_cache_init(vcpu->kvm, + &vcpu->arch.pv_time, data & ~1ULL, + sizeof(struct pvclock_vcpu_time_info))) + vcpu->arch.pv_time_enabled = false; + else + vcpu->arch.pv_time_enabled = true; - if (is_error_page(vcpu->arch.time_page)) { - kvm_release_page_clean(vcpu->arch.time_page); - vcpu->arch.time_page = NULL; - } break; } case MSR_KVM_ASYNC_PF_EN: @@ -1622,7 +1564,8 @@ return 1; if (kvm_gfn_to_hva_cache_init(vcpu->kvm, &vcpu->arch.st.stime, - data & KVM_STEAL_VALID_BITS)) + data & KVM_STEAL_VALID_BITS, + sizeof(struct kvm_steal_time))) return 1; vcpu->arch.st.msr_val = data; @@ -2265,466 +2208,6 @@ vcpu->arch.last_guest_tsc = kvm_x86_ops->read_l1_tsc(vcpu); } -static int is_efer_nx(void) -{ - unsigned long long efer = 0; - - rdmsrl_safe(MSR_EFER, &efer); - return efer & EFER_NX; -} - -static void cpuid_fix_nx_cap(struct kvm_vcpu *vcpu) -{ - int i; - struct kvm_cpuid_entry2 *e, *entry; - - entry = NULL; - for (i = 0; i < vcpu->arch.cpuid_nent; ++i) { - e = &vcpu->arch.cpuid_entries[i]; - if (e->function == 0x80000001) { - entry = e; - break; - } - } - if (entry && (entry->edx & (1 << 20)) && !is_efer_nx()) { - entry->edx &= ~(1 << 20); - printk(KERN_INFO "kvm: guest NX capability removed\n"); - } -} - -/* when an old userspace process fills a new kernel module */ -static int kvm_vcpu_ioctl_set_cpuid(struct kvm_vcpu *vcpu, - struct kvm_cpuid *cpuid, - struct kvm_cpuid_entry __user *entries) -{ - int r, i; - struct kvm_cpuid_entry *cpuid_entries; - - r = -E2BIG; - if (cpuid->nent > KVM_MAX_CPUID_ENTRIES) - goto out; - r = -ENOMEM; - cpuid_entries = vmalloc(sizeof(struct kvm_cpuid_entry) * cpuid->nent); - if (!cpuid_entries) - goto out; - r = -EFAULT; - if (copy_from_user(cpuid_entries, entries, - cpuid->nent * sizeof(struct kvm_cpuid_entry))) - goto out_free; - for (i = 0; i < cpuid->nent; i++) { - vcpu->arch.cpuid_entries[i].function = cpuid_entries[i].function; - vcpu->arch.cpuid_entries[i].eax = cpuid_entries[i].eax; - vcpu->arch.cpuid_entries[i].ebx = cpuid_entries[i].ebx; - vcpu->arch.cpuid_entries[i].ecx = cpuid_entries[i].ecx; - vcpu->arch.cpuid_entries[i].edx = cpuid_entries[i].edx; - vcpu->arch.cpuid_entries[i].index = 0; - vcpu->arch.cpuid_entries[i].flags = 0; - vcpu->arch.cpuid_entries[i].padding[0] = 0; - vcpu->arch.cpuid_entries[i].padding[1] = 0; - vcpu->arch.cpuid_entries[i].padding[2] = 0; - } - vcpu->arch.cpuid_nent = cpuid->nent; - cpuid_fix_nx_cap(vcpu); - r = 0; - kvm_apic_set_version(vcpu); - kvm_x86_ops->cpuid_update(vcpu); - update_cpuid(vcpu); - -out_free: - vfree(cpuid_entries); -out: - return r; -} - -static int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu, - struct kvm_cpuid2 *cpuid, - struct kvm_cpuid_entry2 __user *entries) -{ - int r; - - r = -E2BIG; - if (cpuid->nent > KVM_MAX_CPUID_ENTRIES) - goto out; - r = -EFAULT; - if (copy_from_user(&vcpu->arch.cpuid_entries, entries, - cpuid->nent * sizeof(struct kvm_cpuid_entry2))) - goto out; - vcpu->arch.cpuid_nent = cpuid->nent; - kvm_apic_set_version(vcpu); - kvm_x86_ops->cpuid_update(vcpu); - update_cpuid(vcpu); - return 0; - -out: - return r; -} - -static int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu, - struct kvm_cpuid2 *cpuid, - struct kvm_cpuid_entry2 __user *entries) -{ - int r; - - r = -E2BIG; - if (cpuid->nent < vcpu->arch.cpuid_nent) - goto out; - r = -EFAULT; - if (copy_to_user(entries, &vcpu->arch.cpuid_entries, - vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2))) - goto out; - return 0; - -out: - cpuid->nent = vcpu->arch.cpuid_nent; - return r; -} - -static void cpuid_mask(u32 *word, int wordnum) -{ - *word &= boot_cpu_data.x86_capability[wordnum]; -} - -static void do_cpuid_1_ent(struct kvm_cpuid_entry2 *entry, u32 function, - u32 index) -{ - entry->function = function; - entry->index = index; - cpuid_count(entry->function, entry->index, - &entry->eax, &entry->ebx, &entry->ecx, &entry->edx); - entry->flags = 0; -} - -static bool supported_xcr0_bit(unsigned bit) -{ - u64 mask = ((u64)1 << bit); - - return mask & (XSTATE_FP | XSTATE_SSE | XSTATE_YMM) & host_xcr0; -} - -#define F(x) bit(X86_FEATURE_##x) - -static void do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function, - u32 index, int *nent, int maxnent) -{ - unsigned f_nx = is_efer_nx() ? F(NX) : 0; -#ifdef CONFIG_X86_64 - unsigned f_gbpages = (kvm_x86_ops->get_lpage_level() == PT_PDPE_LEVEL) - ? F(GBPAGES) : 0; - unsigned f_lm = F(LM); -#else - unsigned f_gbpages = 0; - unsigned f_lm = 0; -#endif - unsigned f_rdtscp = kvm_x86_ops->rdtscp_supported() ? F(RDTSCP) : 0; - - /* cpuid 1.edx */ - const u32 kvm_supported_word0_x86_features = - F(FPU) | F(VME) | F(DE) | F(PSE) | - F(TSC) | F(MSR) | F(PAE) | F(MCE) | - F(CX8) | F(APIC) | 0 /* Reserved */ | F(SEP) | - F(MTRR) | F(PGE) | F(MCA) | F(CMOV) | - F(PAT) | F(PSE36) | 0 /* PSN */ | F(CLFLSH) | - 0 /* Reserved, DS, ACPI */ | F(MMX) | - F(FXSR) | F(XMM) | F(XMM2) | F(SELFSNOOP) | - 0 /* HTT, TM, Reserved, PBE */; - /* cpuid 0x80000001.edx */ - const u32 kvm_supported_word1_x86_features = - F(FPU) | F(VME) | F(DE) | F(PSE) | - F(TSC) | F(MSR) | F(PAE) | F(MCE) | - F(CX8) | F(APIC) | 0 /* Reserved */ | F(SYSCALL) | - F(MTRR) | F(PGE) | F(MCA) | F(CMOV) | - F(PAT) | F(PSE36) | 0 /* Reserved */ | - f_nx | 0 /* Reserved */ | F(MMXEXT) | F(MMX) | - F(FXSR) | F(FXSR_OPT) | f_gbpages | f_rdtscp | - 0 /* Reserved */ | f_lm | F(3DNOWEXT) | F(3DNOW); - /* cpuid 1.ecx */ - const u32 kvm_supported_word4_x86_features = - F(XMM3) | F(PCLMULQDQ) | 0 /* DTES64, MONITOR */ | - 0 /* DS-CPL, VMX, SMX, EST */ | - 0 /* TM2 */ | F(SSSE3) | 0 /* CNXT-ID */ | 0 /* Reserved */ | - 0 /* Reserved */ | F(CX16) | 0 /* xTPR Update, PDCM */ | - 0 /* Reserved, DCA */ | F(XMM4_1) | - F(XMM4_2) | F(X2APIC) | F(MOVBE) | F(POPCNT) | - 0 /* Reserved*/ | F(AES) | F(XSAVE) | 0 /* OSXSAVE */ | F(AVX) | - F(F16C) | F(RDRAND); - /* cpuid 0x80000001.ecx */ - const u32 kvm_supported_word6_x86_features = - F(LAHF_LM) | F(CMP_LEGACY) | 0 /*SVM*/ | 0 /* ExtApicSpace */ | - F(CR8_LEGACY) | F(ABM) | F(SSE4A) | F(MISALIGNSSE) | - F(3DNOWPREFETCH) | 0 /* OSVW */ | 0 /* IBS */ | F(XOP) | - 0 /* SKINIT, WDT, LWP */ | F(FMA4) | F(TBM); - - /* cpuid 0xC0000001.edx */ - const u32 kvm_supported_word5_x86_features = - F(XSTORE) | F(XSTORE_EN) | F(XCRYPT) | F(XCRYPT_EN) | - F(ACE2) | F(ACE2_EN) | F(PHE) | F(PHE_EN) | - F(PMM) | F(PMM_EN); - - /* cpuid 7.0.ebx */ - const u32 kvm_supported_word9_x86_features = - F(SMEP) | F(FSGSBASE) | F(ERMS); - - /* all calls to cpuid_count() should be made on the same cpu */ - get_cpu(); - do_cpuid_1_ent(entry, function, index); - ++*nent; - - switch (function) { - case 0: - entry->eax = min(entry->eax, (u32)0xd); - break; - case 1: - entry->edx &= kvm_supported_word0_x86_features; - cpuid_mask(&entry->edx, 0); - entry->ecx &= kvm_supported_word4_x86_features; - cpuid_mask(&entry->ecx, 4); - /* we support x2apic emulation even if host does not support - * it since we emulate x2apic in software */ - entry->ecx |= F(X2APIC); - break; - /* function 2 entries are STATEFUL. That is, repeated cpuid commands - * may return different values. This forces us to get_cpu() before - * issuing the first command, and also to emulate this annoying behavior - * in kvm_emulate_cpuid() using KVM_CPUID_FLAG_STATE_READ_NEXT */ - case 2: { - int t, times = entry->eax & 0xff; - - entry->flags |= KVM_CPUID_FLAG_STATEFUL_FUNC; - entry->flags |= KVM_CPUID_FLAG_STATE_READ_NEXT; - for (t = 1; t < times && *nent < maxnent; ++t) { - do_cpuid_1_ent(&entry[t], function, 0); - entry[t].flags |= KVM_CPUID_FLAG_STATEFUL_FUNC; - ++*nent; - } - break; - } - /* function 4 has additional index. */ - case 4: { - int i, cache_type; - - entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; - /* read more entries until cache_type is zero */ - for (i = 1; *nent < maxnent; ++i) { - cache_type = entry[i - 1].eax & 0x1f; - if (!cache_type) - break; - do_cpuid_1_ent(&entry[i], function, i); - entry[i].flags |= - KVM_CPUID_FLAG_SIGNIFCANT_INDEX; - ++*nent; - } - break; - } - case 7: { - entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; - /* Mask ebx against host capbability word 9 */ - if (index == 0) { - entry->ebx &= kvm_supported_word9_x86_features; - cpuid_mask(&entry->ebx, 9); - } else - entry->ebx = 0; - entry->eax = 0; - entry->ecx = 0; - entry->edx = 0; - break; - } - case 9: - break; - /* function 0xb has additional index. */ - case 0xb: { - int i, level_type; - - entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; - /* read more entries until level_type is zero */ - for (i = 1; *nent < maxnent; ++i) { - level_type = entry[i - 1].ecx & 0xff00; - if (!level_type) - break; - do_cpuid_1_ent(&entry[i], function, i); - entry[i].flags |= - KVM_CPUID_FLAG_SIGNIFCANT_INDEX; - ++*nent; - } - break; - } - case 0xd: { - int idx, i; - - entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; - for (idx = 1, i = 1; *nent < maxnent && idx < 64; ++idx) { - do_cpuid_1_ent(&entry[i], function, idx); - if (entry[i].eax == 0 || !supported_xcr0_bit(idx)) - continue; - entry[i].flags |= - KVM_CPUID_FLAG_SIGNIFCANT_INDEX; - ++*nent; - ++i; - } - break; - } - case KVM_CPUID_SIGNATURE: { - char signature[12] = "KVMKVMKVM\0\0"; - u32 *sigptr = (u32 *)signature; - entry->eax = 0; - entry->ebx = sigptr[0]; - entry->ecx = sigptr[1]; - entry->edx = sigptr[2]; - break; - } - case KVM_CPUID_FEATURES: - entry->eax = (1 << KVM_FEATURE_CLOCKSOURCE) | - (1 << KVM_FEATURE_NOP_IO_DELAY) | - (1 << KVM_FEATURE_CLOCKSOURCE2) | - (1 << KVM_FEATURE_ASYNC_PF) | - (1 << KVM_FEATURE_CLOCKSOURCE_STABLE_BIT); - - if (sched_info_on()) - entry->eax |= (1 << KVM_FEATURE_STEAL_TIME); - - entry->ebx = 0; - entry->ecx = 0; - entry->edx = 0; - break; - case 0x80000000: - entry->eax = min(entry->eax, 0x8000001a); - break; - case 0x80000001: - entry->edx &= kvm_supported_word1_x86_features; - cpuid_mask(&entry->edx, 1); - entry->ecx &= kvm_supported_word6_x86_features; - cpuid_mask(&entry->ecx, 6); - break; - case 0x80000008: { - unsigned g_phys_as = (entry->eax >> 16) & 0xff; - unsigned virt_as = max((entry->eax >> 8) & 0xff, 48U); - unsigned phys_as = entry->eax & 0xff; - - if (!g_phys_as) - g_phys_as = phys_as; - entry->eax = g_phys_as | (virt_as << 8); - entry->ebx = entry->edx = 0; - break; - } - case 0x80000019: - entry->ecx = entry->edx = 0; - break; - case 0x8000001a: - break; - case 0x8000001d: - break; - /*Add support for Centaur's CPUID instruction*/ - case 0xC0000000: - /*Just support up to 0xC0000004 now*/ - entry->eax = min(entry->eax, 0xC0000004); - break; - case 0xC0000001: - entry->edx &= kvm_supported_word5_x86_features; - cpuid_mask(&entry->edx, 5); - break; - case 3: /* Processor serial number */ - case 5: /* MONITOR/MWAIT */ - case 6: /* Thermal management */ - case 0xA: /* Architectural Performance Monitoring */ - case 0x80000007: /* Advanced power management */ - case 0xC0000002: - case 0xC0000003: - case 0xC0000004: - default: - entry->eax = entry->ebx = entry->ecx = entry->edx = 0; - break; - } - - kvm_x86_ops->set_supported_cpuid(function, entry); - - put_cpu(); -} - -#undef F - -static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, - struct kvm_cpuid_entry2 __user *entries) -{ - struct kvm_cpuid_entry2 *cpuid_entries; - int limit, nent = 0, r = -E2BIG; - u32 func; - - if (cpuid->nent < 1) - goto out; - if (cpuid->nent > KVM_MAX_CPUID_ENTRIES) - cpuid->nent = KVM_MAX_CPUID_ENTRIES; - r = -ENOMEM; - cpuid_entries = vmalloc(sizeof(struct kvm_cpuid_entry2) * cpuid->nent); - if (!cpuid_entries) - goto out; - - do_cpuid_ent(&cpuid_entries[0], 0, 0, &nent, cpuid->nent); - limit = cpuid_entries[0].eax; - for (func = 1; func <= limit && nent < cpuid->nent; ++func) - do_cpuid_ent(&cpuid_entries[nent], func, 0, - &nent, cpuid->nent); - r = -E2BIG; - if (nent >= cpuid->nent) - goto out_free; - - do_cpuid_ent(&cpuid_entries[nent], 0x80000000, 0, &nent, cpuid->nent); - limit = cpuid_entries[nent - 1].eax; - for (func = 0x80000001; func <= limit && nent < cpuid->nent; ++func) - do_cpuid_ent(&cpuid_entries[nent], func, 0, - &nent, cpuid->nent); - - - - r = -E2BIG; - if (nent >= cpuid->nent) - goto out_free; - - /* Add support for Centaur's CPUID instruction. */ - if (boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR) { - do_cpuid_ent(&cpuid_entries[nent], 0xC0000000, 0, - &nent, cpuid->nent); - - r = -E2BIG; - if (nent >= cpuid->nent) - goto out_free; - - limit = cpuid_entries[nent - 1].eax; - for (func = 0xC0000001; - func <= limit && nent < cpuid->nent; ++func) - do_cpuid_ent(&cpuid_entries[nent], func, 0, - &nent, cpuid->nent); - - r = -E2BIG; - if (nent >= cpuid->nent) - goto out_free; - } - - do_cpuid_ent(&cpuid_entries[nent], KVM_CPUID_SIGNATURE, 0, &nent, - cpuid->nent); - - r = -E2BIG; - if (nent >= cpuid->nent) - goto out_free; - - do_cpuid_ent(&cpuid_entries[nent], KVM_CPUID_FEATURES, 0, &nent, - cpuid->nent); - - r = -E2BIG; - if (nent >= cpuid->nent) - goto out_free; - - r = -EFAULT; - if (copy_to_user(entries, cpuid_entries, - nent * sizeof(struct kvm_cpuid_entry2))) - goto out_free; - cpuid->nent = nent; - r = 0; - -out_free: - vfree(cpuid_entries); -out: - return r; -} - static int kvm_vcpu_ioctl_get_lapic(struct kvm_vcpu *vcpu, struct kvm_lapic_state *s) { @@ -3579,6 +3062,9 @@ r = -EEXIST; if (kvm->arch.vpic) goto create_irqchip_unlock; + r = -EINVAL; + if (atomic_read(&kvm->online_vcpus)) + goto create_irqchip_unlock; r = -ENOMEM; vpic = kvm_create_pic(kvm); if (vpic) { @@ -4655,6 +4141,28 @@ return kvm_x86_ops->check_intercept(emul_to_vcpu(ctxt), info, stage); } +static bool emulator_get_cpuid(struct x86_emulate_ctxt *ctxt, + u32 *eax, u32 *ebx, u32 *ecx, u32 *edx) +{ + struct kvm_cpuid_entry2 *cpuid = NULL; + + if (eax && ecx) + cpuid = kvm_find_cpuid_entry(emul_to_vcpu(ctxt), + *eax, *ecx); + + if (cpuid) { + *eax = cpuid->eax; + *ecx = cpuid->ecx; + if (ebx) + *ebx = cpuid->ebx; + if (edx) + *edx = cpuid->edx; + return true; + } + + return false; +} + static struct x86_emulate_ops emulate_ops = { .read_std = kvm_read_guest_virt_system, .write_std = kvm_write_guest_virt_system, @@ -4685,6 +4193,7 @@ .get_fpu = emulator_get_fpu, .put_fpu = emulator_put_fpu, .intercept = emulator_intercept, + .get_cpuid = emulator_get_cpuid, }; static void cache_all_regs(struct kvm_vcpu *vcpu) @@ -5369,125 +4878,6 @@ return emulator_write_emulated(ctxt, rip, instruction, 3, NULL); } -static int move_to_next_stateful_cpuid_entry(struct kvm_vcpu *vcpu, int i) -{ - struct kvm_cpuid_entry2 *e = &vcpu->arch.cpuid_entries[i]; - int j, nent = vcpu->arch.cpuid_nent; - - e->flags &= ~KVM_CPUID_FLAG_STATE_READ_NEXT; - /* when no next entry is found, the current entry[i] is reselected */ - for (j = i + 1; ; j = (j + 1) % nent) { - struct kvm_cpuid_entry2 *ej = &vcpu->arch.cpuid_entries[j]; - if (ej->function == e->function) { - ej->flags |= KVM_CPUID_FLAG_STATE_READ_NEXT; - return j; - } - } - return 0; /* silence gcc, even though control never reaches here */ -} - -/* find an entry with matching function, matching index (if needed), and that - * should be read next (if it's stateful) */ -static int is_matching_cpuid_entry(struct kvm_cpuid_entry2 *e, - u32 function, u32 index) -{ - if (e->function != function) - return 0; - if ((e->flags & KVM_CPUID_FLAG_SIGNIFCANT_INDEX) && e->index != index) - return 0; - if ((e->flags & KVM_CPUID_FLAG_STATEFUL_FUNC) && - !(e->flags & KVM_CPUID_FLAG_STATE_READ_NEXT)) - return 0; - return 1; -} - -struct kvm_cpuid_entry2 *kvm_find_cpuid_entry(struct kvm_vcpu *vcpu, - u32 function, u32 index) -{ - int i; - struct kvm_cpuid_entry2 *best = NULL; - - for (i = 0; i < vcpu->arch.cpuid_nent; ++i) { - struct kvm_cpuid_entry2 *e; - - e = &vcpu->arch.cpuid_entries[i]; - if (is_matching_cpuid_entry(e, function, index)) { - if (e->flags & KVM_CPUID_FLAG_STATEFUL_FUNC) - move_to_next_stateful_cpuid_entry(vcpu, i); - best = e; - break; - } - } - return best; -} -EXPORT_SYMBOL_GPL(kvm_find_cpuid_entry); - -int cpuid_maxphyaddr(struct kvm_vcpu *vcpu) -{ - struct kvm_cpuid_entry2 *best; - - best = kvm_find_cpuid_entry(vcpu, 0x80000000, 0); - if (!best || best->eax < 0x80000008) - goto not_found; - best = kvm_find_cpuid_entry(vcpu, 0x80000008, 0); - if (best) - return best->eax & 0xff; -not_found: - return 36; -} - -/* - * If no match is found, check whether we exceed the vCPU's limit - * and return the content of the highest valid _standard_ leaf instead. - * This is to satisfy the CPUID specification. - */ -static struct kvm_cpuid_entry2* check_cpuid_limit(struct kvm_vcpu *vcpu, - u32 function, u32 index) -{ - struct kvm_cpuid_entry2 *maxlevel; - - maxlevel = kvm_find_cpuid_entry(vcpu, function & 0x80000000, 0); - if (!maxlevel || maxlevel->eax >= function) - return NULL; - if (function & 0x80000000) { - maxlevel = kvm_find_cpuid_entry(vcpu, 0, 0); - if (!maxlevel) - return NULL; - } - return kvm_find_cpuid_entry(vcpu, maxlevel->eax, index); -} - -void kvm_emulate_cpuid(struct kvm_vcpu *vcpu) -{ - u32 function, index; - struct kvm_cpuid_entry2 *best; - - function = kvm_register_read(vcpu, VCPU_REGS_RAX); - index = kvm_register_read(vcpu, VCPU_REGS_RCX); - kvm_register_write(vcpu, VCPU_REGS_RAX, 0); - kvm_register_write(vcpu, VCPU_REGS_RBX, 0); - kvm_register_write(vcpu, VCPU_REGS_RCX, 0); - kvm_register_write(vcpu, VCPU_REGS_RDX, 0); - best = kvm_find_cpuid_entry(vcpu, function, index); - - if (!best) - best = check_cpuid_limit(vcpu, function, index); - - if (best) { - kvm_register_write(vcpu, VCPU_REGS_RAX, best->eax); - kvm_register_write(vcpu, VCPU_REGS_RBX, best->ebx); - kvm_register_write(vcpu, VCPU_REGS_RCX, best->ecx); - kvm_register_write(vcpu, VCPU_REGS_RDX, best->edx); - } - kvm_x86_ops->skip_emulated_instruction(vcpu); - trace_kvm_cpuid(function, - kvm_register_read(vcpu, VCPU_REGS_RAX), - kvm_register_read(vcpu, VCPU_REGS_RBX), - kvm_register_read(vcpu, VCPU_REGS_RCX), - kvm_register_read(vcpu, VCPU_REGS_RDX)); -} -EXPORT_SYMBOL_GPL(kvm_emulate_cpuid); - /* * Check if userspace requested an interrupt window, and that the * interrupt window is open. @@ -6123,6 +5513,9 @@ int pending_vec, max_bits, idx; struct desc_ptr dt; + if (!guest_cpuid_has_xsave(vcpu) && (sregs->cr4 & X86_CR4_OSXSAVE)) + return -EINVAL; + dt.size = sregs->idt.limit; dt.address = sregs->idt.base; kvm_x86_ops->set_idt(vcpu, &dt); @@ -6148,7 +5541,7 @@ mmu_reset_needed |= kvm_read_cr4(vcpu) != sregs->cr4; kvm_x86_ops->set_cr4(vcpu, sregs->cr4); if (sregs->cr4 & X86_CR4_OSXSAVE) - update_cpuid(vcpu); + kvm_update_cpuid(vcpu); idx = srcu_read_lock(&vcpu->kvm->srcu); if (!is_long_mode(vcpu) && is_pae(vcpu)) { @@ -6463,6 +5856,11 @@ kvm_x86_ops->check_processor_compatibility(rtn); } +bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu) +{ + return irqchip_in_kernel(vcpu->kvm) == (vcpu->arch.apic != NULL); +} + int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu) { struct page *page; @@ -6512,6 +5910,7 @@ if (!zalloc_cpumask_var(&vcpu->arch.wbinvd_dirty_mask, GFP_KERNEL)) goto fail_free_mce_banks; + vcpu->arch.pv_time_enabled = false; kvm_async_pf_hash_reset(vcpu); return 0; --- linux-3.2.0.orig/arch/x86/kvm/x86.h +++ linux-3.2.0/arch/x86/kvm/x86.h @@ -33,9 +33,6 @@ return (nr == BP_VECTOR) || (nr == OF_VECTOR); } -struct kvm_cpuid_entry2 *kvm_find_cpuid_entry(struct kvm_vcpu *vcpu, - u32 function, u32 index); - static inline bool is_protmode(struct kvm_vcpu *vcpu) { return kvm_read_cr0_bits(vcpu, X86_CR0_PE); @@ -125,4 +122,6 @@ gva_t addr, void *val, unsigned int bytes, struct x86_exception *exception); +extern u64 host_xcr0; + #endif --- linux-3.2.0.orig/arch/x86/kvm/Makefile +++ linux-3.2.0/arch/x86/kvm/Makefile @@ -12,7 +12,7 @@ kvm-$(CONFIG_KVM_ASYNC_PF) += $(addprefix ../../../virt/kvm/, async_pf.o) kvm-y += x86.o mmu.o emulate.o i8259.o irq.o lapic.o \ - i8254.o timer.o + i8254.o timer.o cpuid.o kvm-intel-y += vmx.o kvm-amd-y += svm.o --- linux-3.2.0.orig/arch/x86/kvm/vmx.c +++ linux-3.2.0/arch/x86/kvm/vmx.c @@ -18,6 +18,7 @@ #include "irq.h" #include "mmu.h" +#include "cpuid.h" #include #include @@ -1456,7 +1457,7 @@ #ifdef CONFIG_X86_64 wrmsrl(MSR_KERNEL_GS_BASE, vmx->msr_host_kernel_gs_base); #endif - if (current_thread_info()->status & TS_USEDFPU) + if (__thread_has_fpu(current)) clts(); load_gdt(&__get_cpu_var(host_gdt)); } @@ -1677,7 +1678,7 @@ struct vmcs12 *vmcs12 = get_vmcs12(vcpu); /* TODO: also check PFEC_MATCH/MASK, not just EB.PF. */ - if (!(vmcs12->exception_bitmap & PF_VECTOR)) + if (!(vmcs12->exception_bitmap & (1u << PF_VECTOR))) return 0; nested_vmx_vmexit(vcpu); @@ -1956,6 +1957,7 @@ #endif CPU_BASED_MOV_DR_EXITING | CPU_BASED_UNCOND_IO_EXITING | CPU_BASED_USE_IO_BITMAPS | CPU_BASED_MONITOR_EXITING | + CPU_BASED_RDPMC_EXITING | CPU_BASED_ACTIVATE_SECONDARY_CONTROLS; /* * We can allow some features even when not supported by the @@ -3915,7 +3917,9 @@ vmcs_write16(VIRTUAL_PROCESSOR_ID, vmx->vpid); vmx->vcpu.arch.cr0 = X86_CR0_NW | X86_CR0_CD | X86_CR0_ET; + vcpu->srcu_idx = srcu_read_lock(&vcpu->kvm->srcu); vmx_set_cr0(&vmx->vcpu, kvm_read_cr0(vcpu)); /* enter rmode */ + srcu_read_unlock(&vcpu->kvm->srcu, vcpu->srcu_idx); vmx_set_cr4(&vmx->vcpu, 0); vmx_set_efer(&vmx->vcpu, 0); vmx_fpu_activate(&vmx->vcpu); @@ -4879,6 +4883,12 @@ if (err != EMULATE_DONE) return 0; + if (vcpu->arch.halt_request) { + vcpu->arch.halt_request = 0; + ret = kvm_emulate_halt(vcpu); + goto out; + } + if (signal_pending(current)) goto out; if (need_resched()) --- linux-3.2.0.orig/arch/x86/kvm/cpuid.c +++ linux-3.2.0/arch/x86/kvm/cpuid.c @@ -0,0 +1,625 @@ +/* + * Kernel-based Virtual Machine driver for Linux + * cpuid support routines + * + * derived from arch/x86/kvm/x86.c + * + * Copyright 2011 Red Hat, Inc. and/or its affiliates. + * Copyright IBM Corporation, 2008 + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + */ + +#include +#include +#include +#include +#include "cpuid.h" +#include "lapic.h" +#include "mmu.h" +#include "trace.h" + +void kvm_update_cpuid(struct kvm_vcpu *vcpu) +{ + struct kvm_cpuid_entry2 *best; + struct kvm_lapic *apic = vcpu->arch.apic; + + best = kvm_find_cpuid_entry(vcpu, 1, 0); + if (!best) + return; + + /* Update OSXSAVE bit */ + if (cpu_has_xsave && best->function == 0x1) { + best->ecx &= ~(bit(X86_FEATURE_OSXSAVE)); + if (kvm_read_cr4_bits(vcpu, X86_CR4_OSXSAVE)) + best->ecx |= bit(X86_FEATURE_OSXSAVE); + } + + if (apic) { + if (best->ecx & bit(X86_FEATURE_TSC_DEADLINE_TIMER)) + apic->lapic_timer.timer_mode_mask = 3 << 17; + else + apic->lapic_timer.timer_mode_mask = 1 << 17; + } +} + +static int is_efer_nx(void) +{ + unsigned long long efer = 0; + + rdmsrl_safe(MSR_EFER, &efer); + return efer & EFER_NX; +} + +static void cpuid_fix_nx_cap(struct kvm_vcpu *vcpu) +{ + int i; + struct kvm_cpuid_entry2 *e, *entry; + + entry = NULL; + for (i = 0; i < vcpu->arch.cpuid_nent; ++i) { + e = &vcpu->arch.cpuid_entries[i]; + if (e->function == 0x80000001) { + entry = e; + break; + } + } + if (entry && (entry->edx & (1 << 20)) && !is_efer_nx()) { + entry->edx &= ~(1 << 20); + printk(KERN_INFO "kvm: guest NX capability removed\n"); + } +} + +/* when an old userspace process fills a new kernel module */ +int kvm_vcpu_ioctl_set_cpuid(struct kvm_vcpu *vcpu, + struct kvm_cpuid *cpuid, + struct kvm_cpuid_entry __user *entries) +{ + int r, i; + struct kvm_cpuid_entry *cpuid_entries; + + r = -E2BIG; + if (cpuid->nent > KVM_MAX_CPUID_ENTRIES) + goto out; + r = -ENOMEM; + cpuid_entries = vmalloc(sizeof(struct kvm_cpuid_entry) * cpuid->nent); + if (!cpuid_entries) + goto out; + r = -EFAULT; + if (copy_from_user(cpuid_entries, entries, + cpuid->nent * sizeof(struct kvm_cpuid_entry))) + goto out_free; + for (i = 0; i < cpuid->nent; i++) { + vcpu->arch.cpuid_entries[i].function = cpuid_entries[i].function; + vcpu->arch.cpuid_entries[i].eax = cpuid_entries[i].eax; + vcpu->arch.cpuid_entries[i].ebx = cpuid_entries[i].ebx; + vcpu->arch.cpuid_entries[i].ecx = cpuid_entries[i].ecx; + vcpu->arch.cpuid_entries[i].edx = cpuid_entries[i].edx; + vcpu->arch.cpuid_entries[i].index = 0; + vcpu->arch.cpuid_entries[i].flags = 0; + vcpu->arch.cpuid_entries[i].padding[0] = 0; + vcpu->arch.cpuid_entries[i].padding[1] = 0; + vcpu->arch.cpuid_entries[i].padding[2] = 0; + } + vcpu->arch.cpuid_nent = cpuid->nent; + cpuid_fix_nx_cap(vcpu); + r = 0; + kvm_apic_set_version(vcpu); + kvm_x86_ops->cpuid_update(vcpu); + kvm_update_cpuid(vcpu); + +out_free: + vfree(cpuid_entries); +out: + return r; +} + +int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu, + struct kvm_cpuid2 *cpuid, + struct kvm_cpuid_entry2 __user *entries) +{ + int r; + + r = -E2BIG; + if (cpuid->nent > KVM_MAX_CPUID_ENTRIES) + goto out; + r = -EFAULT; + if (copy_from_user(&vcpu->arch.cpuid_entries, entries, + cpuid->nent * sizeof(struct kvm_cpuid_entry2))) + goto out; + vcpu->arch.cpuid_nent = cpuid->nent; + kvm_apic_set_version(vcpu); + kvm_x86_ops->cpuid_update(vcpu); + kvm_update_cpuid(vcpu); + return 0; + +out: + return r; +} + +int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu, + struct kvm_cpuid2 *cpuid, + struct kvm_cpuid_entry2 __user *entries) +{ + int r; + + r = -E2BIG; + if (cpuid->nent < vcpu->arch.cpuid_nent) + goto out; + r = -EFAULT; + if (copy_to_user(entries, &vcpu->arch.cpuid_entries, + vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2))) + goto out; + return 0; + +out: + cpuid->nent = vcpu->arch.cpuid_nent; + return r; +} + +static void cpuid_mask(u32 *word, int wordnum) +{ + *word &= boot_cpu_data.x86_capability[wordnum]; +} + +static void do_cpuid_1_ent(struct kvm_cpuid_entry2 *entry, u32 function, + u32 index) +{ + entry->function = function; + entry->index = index; + cpuid_count(entry->function, entry->index, + &entry->eax, &entry->ebx, &entry->ecx, &entry->edx); + entry->flags = 0; +} + +static bool supported_xcr0_bit(unsigned bit) +{ + u64 mask = ((u64)1 << bit); + + return mask & (XSTATE_FP | XSTATE_SSE | XSTATE_YMM) & host_xcr0; +} + +#define F(x) bit(X86_FEATURE_##x) + +static void do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function, + u32 index, int *nent, int maxnent) +{ + unsigned f_nx = is_efer_nx() ? F(NX) : 0; +#ifdef CONFIG_X86_64 + unsigned f_gbpages = (kvm_x86_ops->get_lpage_level() == PT_PDPE_LEVEL) + ? F(GBPAGES) : 0; + unsigned f_lm = F(LM); +#else + unsigned f_gbpages = 0; + unsigned f_lm = 0; +#endif + unsigned f_rdtscp = kvm_x86_ops->rdtscp_supported() ? F(RDTSCP) : 0; + + /* cpuid 1.edx */ + const u32 kvm_supported_word0_x86_features = + F(FPU) | F(VME) | F(DE) | F(PSE) | + F(TSC) | F(MSR) | F(PAE) | F(MCE) | + F(CX8) | F(APIC) | 0 /* Reserved */ | F(SEP) | + F(MTRR) | F(PGE) | F(MCA) | F(CMOV) | + F(PAT) | F(PSE36) | 0 /* PSN */ | F(CLFLSH) | + 0 /* Reserved, DS, ACPI */ | F(MMX) | + F(FXSR) | F(XMM) | F(XMM2) | F(SELFSNOOP) | + 0 /* HTT, TM, Reserved, PBE */; + /* cpuid 0x80000001.edx */ + const u32 kvm_supported_word1_x86_features = + F(FPU) | F(VME) | F(DE) | F(PSE) | + F(TSC) | F(MSR) | F(PAE) | F(MCE) | + F(CX8) | F(APIC) | 0 /* Reserved */ | F(SYSCALL) | + F(MTRR) | F(PGE) | F(MCA) | F(CMOV) | + F(PAT) | F(PSE36) | 0 /* Reserved */ | + f_nx | 0 /* Reserved */ | F(MMXEXT) | F(MMX) | + F(FXSR) | F(FXSR_OPT) | f_gbpages | f_rdtscp | + 0 /* Reserved */ | f_lm | F(3DNOWEXT) | F(3DNOW); + /* cpuid 1.ecx */ + const u32 kvm_supported_word4_x86_features = + F(XMM3) | F(PCLMULQDQ) | 0 /* DTES64, MONITOR */ | + 0 /* DS-CPL, VMX, SMX, EST */ | + 0 /* TM2 */ | F(SSSE3) | 0 /* CNXT-ID */ | 0 /* Reserved */ | + F(FMA) | F(CX16) | 0 /* xTPR Update, PDCM */ | + 0 /* Reserved, DCA */ | F(XMM4_1) | + F(XMM4_2) | F(X2APIC) | F(MOVBE) | F(POPCNT) | + 0 /* Reserved*/ | F(AES) | F(XSAVE) | 0 /* OSXSAVE */ | F(AVX) | + F(F16C) | F(RDRAND); + /* cpuid 0x80000001.ecx */ + const u32 kvm_supported_word6_x86_features = + F(LAHF_LM) | F(CMP_LEGACY) | 0 /*SVM*/ | 0 /* ExtApicSpace */ | + F(CR8_LEGACY) | F(ABM) | F(SSE4A) | F(MISALIGNSSE) | + F(3DNOWPREFETCH) | 0 /* OSVW */ | 0 /* IBS */ | F(XOP) | + 0 /* SKINIT, WDT, LWP */ | F(FMA4) | F(TBM); + + /* cpuid 0xC0000001.edx */ + const u32 kvm_supported_word5_x86_features = + F(XSTORE) | F(XSTORE_EN) | F(XCRYPT) | F(XCRYPT_EN) | + F(ACE2) | F(ACE2_EN) | F(PHE) | F(PHE_EN) | + F(PMM) | F(PMM_EN); + + /* cpuid 7.0.ebx */ + const u32 kvm_supported_word9_x86_features = + F(FSGSBASE) | F(BMI1) | F(AVX2) | F(SMEP) | F(BMI2) | F(ERMS); + + /* all calls to cpuid_count() should be made on the same cpu */ + get_cpu(); + do_cpuid_1_ent(entry, function, index); + ++*nent; + + switch (function) { + case 0: + entry->eax = min(entry->eax, (u32)0xd); + break; + case 1: + entry->edx &= kvm_supported_word0_x86_features; + cpuid_mask(&entry->edx, 0); + entry->ecx &= kvm_supported_word4_x86_features; + cpuid_mask(&entry->ecx, 4); + /* we support x2apic emulation even if host does not support + * it since we emulate x2apic in software */ + entry->ecx |= F(X2APIC); + break; + /* function 2 entries are STATEFUL. That is, repeated cpuid commands + * may return different values. This forces us to get_cpu() before + * issuing the first command, and also to emulate this annoying behavior + * in kvm_emulate_cpuid() using KVM_CPUID_FLAG_STATE_READ_NEXT */ + case 2: { + int t, times = entry->eax & 0xff; + + entry->flags |= KVM_CPUID_FLAG_STATEFUL_FUNC; + entry->flags |= KVM_CPUID_FLAG_STATE_READ_NEXT; + for (t = 1; t < times && *nent < maxnent; ++t) { + do_cpuid_1_ent(&entry[t], function, 0); + entry[t].flags |= KVM_CPUID_FLAG_STATEFUL_FUNC; + ++*nent; + } + break; + } + /* function 4 has additional index. */ + case 4: { + int i, cache_type; + + entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + /* read more entries until cache_type is zero */ + for (i = 1; *nent < maxnent; ++i) { + cache_type = entry[i - 1].eax & 0x1f; + if (!cache_type) + break; + do_cpuid_1_ent(&entry[i], function, i); + entry[i].flags |= + KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + ++*nent; + } + break; + } + case 7: { + entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + /* Mask ebx against host capbability word 9 */ + if (index == 0) { + entry->ebx &= kvm_supported_word9_x86_features; + cpuid_mask(&entry->ebx, 9); + } else + entry->ebx = 0; + entry->eax = 0; + entry->ecx = 0; + entry->edx = 0; + break; + } + case 9: + break; + /* function 0xb has additional index. */ + case 0xb: { + int i, level_type; + + entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + /* read more entries until level_type is zero */ + for (i = 1; *nent < maxnent; ++i) { + level_type = entry[i - 1].ecx & 0xff00; + if (!level_type) + break; + do_cpuid_1_ent(&entry[i], function, i); + entry[i].flags |= + KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + ++*nent; + } + break; + } + case 0xd: { + int idx, i; + + entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + for (idx = 1, i = 1; *nent < maxnent && idx < 64; ++idx) { + do_cpuid_1_ent(&entry[i], function, idx); + if (entry[i].eax == 0 || !supported_xcr0_bit(idx)) + continue; + entry[i].flags |= + KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + ++*nent; + ++i; + } + break; + } + case KVM_CPUID_SIGNATURE: { + char signature[12] = "KVMKVMKVM\0\0"; + u32 *sigptr = (u32 *)signature; + entry->eax = 0; + entry->ebx = sigptr[0]; + entry->ecx = sigptr[1]; + entry->edx = sigptr[2]; + break; + } + case KVM_CPUID_FEATURES: + entry->eax = (1 << KVM_FEATURE_CLOCKSOURCE) | + (1 << KVM_FEATURE_NOP_IO_DELAY) | + (1 << KVM_FEATURE_CLOCKSOURCE2) | + (1 << KVM_FEATURE_ASYNC_PF) | + (1 << KVM_FEATURE_CLOCKSOURCE_STABLE_BIT); + + if (sched_info_on()) + entry->eax |= (1 << KVM_FEATURE_STEAL_TIME); + + entry->ebx = 0; + entry->ecx = 0; + entry->edx = 0; + break; + case 0x80000000: + entry->eax = min(entry->eax, 0x8000001a); + break; + case 0x80000001: + entry->edx &= kvm_supported_word1_x86_features; + cpuid_mask(&entry->edx, 1); + entry->ecx &= kvm_supported_word6_x86_features; + cpuid_mask(&entry->ecx, 6); + break; + case 0x80000008: { + unsigned g_phys_as = (entry->eax >> 16) & 0xff; + unsigned virt_as = max((entry->eax >> 8) & 0xff, 48U); + unsigned phys_as = entry->eax & 0xff; + + if (!g_phys_as) + g_phys_as = phys_as; + entry->eax = g_phys_as | (virt_as << 8); + entry->ebx = entry->edx = 0; + break; + } + case 0x80000019: + entry->ecx = entry->edx = 0; + break; + case 0x8000001a: + break; + case 0x8000001d: + break; + /*Add support for Centaur's CPUID instruction*/ + case 0xC0000000: + /*Just support up to 0xC0000004 now*/ + entry->eax = min(entry->eax, 0xC0000004); + break; + case 0xC0000001: + entry->edx &= kvm_supported_word5_x86_features; + cpuid_mask(&entry->edx, 5); + break; + case 3: /* Processor serial number */ + case 5: /* MONITOR/MWAIT */ + case 6: /* Thermal management */ + case 0xA: /* Architectural Performance Monitoring */ + case 0x80000007: /* Advanced power management */ + case 0xC0000002: + case 0xC0000003: + case 0xC0000004: + default: + entry->eax = entry->ebx = entry->ecx = entry->edx = 0; + break; + } + + kvm_x86_ops->set_supported_cpuid(function, entry); + + put_cpu(); +} + +#undef F + +int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, + struct kvm_cpuid_entry2 __user *entries) +{ + struct kvm_cpuid_entry2 *cpuid_entries; + int limit, nent = 0, r = -E2BIG; + u32 func; + + if (cpuid->nent < 1) + goto out; + if (cpuid->nent > KVM_MAX_CPUID_ENTRIES) + cpuid->nent = KVM_MAX_CPUID_ENTRIES; + r = -ENOMEM; + cpuid_entries = vmalloc(sizeof(struct kvm_cpuid_entry2) * cpuid->nent); + if (!cpuid_entries) + goto out; + + do_cpuid_ent(&cpuid_entries[0], 0, 0, &nent, cpuid->nent); + limit = cpuid_entries[0].eax; + for (func = 1; func <= limit && nent < cpuid->nent; ++func) + do_cpuid_ent(&cpuid_entries[nent], func, 0, + &nent, cpuid->nent); + r = -E2BIG; + if (nent >= cpuid->nent) + goto out_free; + + do_cpuid_ent(&cpuid_entries[nent], 0x80000000, 0, &nent, cpuid->nent); + limit = cpuid_entries[nent - 1].eax; + for (func = 0x80000001; func <= limit && nent < cpuid->nent; ++func) + do_cpuid_ent(&cpuid_entries[nent], func, 0, + &nent, cpuid->nent); + + + + r = -E2BIG; + if (nent >= cpuid->nent) + goto out_free; + + /* Add support for Centaur's CPUID instruction. */ + if (boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR) { + do_cpuid_ent(&cpuid_entries[nent], 0xC0000000, 0, + &nent, cpuid->nent); + + r = -E2BIG; + if (nent >= cpuid->nent) + goto out_free; + + limit = cpuid_entries[nent - 1].eax; + for (func = 0xC0000001; + func <= limit && nent < cpuid->nent; ++func) + do_cpuid_ent(&cpuid_entries[nent], func, 0, + &nent, cpuid->nent); + + r = -E2BIG; + if (nent >= cpuid->nent) + goto out_free; + } + + do_cpuid_ent(&cpuid_entries[nent], KVM_CPUID_SIGNATURE, 0, &nent, + cpuid->nent); + + r = -E2BIG; + if (nent >= cpuid->nent) + goto out_free; + + do_cpuid_ent(&cpuid_entries[nent], KVM_CPUID_FEATURES, 0, &nent, + cpuid->nent); + + r = -E2BIG; + if (nent >= cpuid->nent) + goto out_free; + + r = -EFAULT; + if (copy_to_user(entries, cpuid_entries, + nent * sizeof(struct kvm_cpuid_entry2))) + goto out_free; + cpuid->nent = nent; + r = 0; + +out_free: + vfree(cpuid_entries); +out: + return r; +} + +static int move_to_next_stateful_cpuid_entry(struct kvm_vcpu *vcpu, int i) +{ + struct kvm_cpuid_entry2 *e = &vcpu->arch.cpuid_entries[i]; + int j, nent = vcpu->arch.cpuid_nent; + + e->flags &= ~KVM_CPUID_FLAG_STATE_READ_NEXT; + /* when no next entry is found, the current entry[i] is reselected */ + for (j = i + 1; ; j = (j + 1) % nent) { + struct kvm_cpuid_entry2 *ej = &vcpu->arch.cpuid_entries[j]; + if (ej->function == e->function) { + ej->flags |= KVM_CPUID_FLAG_STATE_READ_NEXT; + return j; + } + } + return 0; /* silence gcc, even though control never reaches here */ +} + +/* find an entry with matching function, matching index (if needed), and that + * should be read next (if it's stateful) */ +static int is_matching_cpuid_entry(struct kvm_cpuid_entry2 *e, + u32 function, u32 index) +{ + if (e->function != function) + return 0; + if ((e->flags & KVM_CPUID_FLAG_SIGNIFCANT_INDEX) && e->index != index) + return 0; + if ((e->flags & KVM_CPUID_FLAG_STATEFUL_FUNC) && + !(e->flags & KVM_CPUID_FLAG_STATE_READ_NEXT)) + return 0; + return 1; +} + +struct kvm_cpuid_entry2 *kvm_find_cpuid_entry(struct kvm_vcpu *vcpu, + u32 function, u32 index) +{ + int i; + struct kvm_cpuid_entry2 *best = NULL; + + for (i = 0; i < vcpu->arch.cpuid_nent; ++i) { + struct kvm_cpuid_entry2 *e; + + e = &vcpu->arch.cpuid_entries[i]; + if (is_matching_cpuid_entry(e, function, index)) { + if (e->flags & KVM_CPUID_FLAG_STATEFUL_FUNC) + move_to_next_stateful_cpuid_entry(vcpu, i); + best = e; + break; + } + } + return best; +} +EXPORT_SYMBOL_GPL(kvm_find_cpuid_entry); + +int cpuid_maxphyaddr(struct kvm_vcpu *vcpu) +{ + struct kvm_cpuid_entry2 *best; + + best = kvm_find_cpuid_entry(vcpu, 0x80000000, 0); + if (!best || best->eax < 0x80000008) + goto not_found; + best = kvm_find_cpuid_entry(vcpu, 0x80000008, 0); + if (best) + return best->eax & 0xff; +not_found: + return 36; +} + +/* + * If no match is found, check whether we exceed the vCPU's limit + * and return the content of the highest valid _standard_ leaf instead. + * This is to satisfy the CPUID specification. + */ +static struct kvm_cpuid_entry2* check_cpuid_limit(struct kvm_vcpu *vcpu, + u32 function, u32 index) +{ + struct kvm_cpuid_entry2 *maxlevel; + + maxlevel = kvm_find_cpuid_entry(vcpu, function & 0x80000000, 0); + if (!maxlevel || maxlevel->eax >= function) + return NULL; + if (function & 0x80000000) { + maxlevel = kvm_find_cpuid_entry(vcpu, 0, 0); + if (!maxlevel) + return NULL; + } + return kvm_find_cpuid_entry(vcpu, maxlevel->eax, index); +} + +void kvm_emulate_cpuid(struct kvm_vcpu *vcpu) +{ + u32 function, index; + struct kvm_cpuid_entry2 *best; + + function = kvm_register_read(vcpu, VCPU_REGS_RAX); + index = kvm_register_read(vcpu, VCPU_REGS_RCX); + kvm_register_write(vcpu, VCPU_REGS_RAX, 0); + kvm_register_write(vcpu, VCPU_REGS_RBX, 0); + kvm_register_write(vcpu, VCPU_REGS_RCX, 0); + kvm_register_write(vcpu, VCPU_REGS_RDX, 0); + best = kvm_find_cpuid_entry(vcpu, function, index); + + if (!best) + best = check_cpuid_limit(vcpu, function, index); + + if (best) { + kvm_register_write(vcpu, VCPU_REGS_RAX, best->eax); + kvm_register_write(vcpu, VCPU_REGS_RBX, best->ebx); + kvm_register_write(vcpu, VCPU_REGS_RCX, best->ecx); + kvm_register_write(vcpu, VCPU_REGS_RDX, best->edx); + } + kvm_x86_ops->skip_emulated_instruction(vcpu); + trace_kvm_cpuid(function, + kvm_register_read(vcpu, VCPU_REGS_RAX), + kvm_register_read(vcpu, VCPU_REGS_RBX), + kvm_register_read(vcpu, VCPU_REGS_RCX), + kvm_register_read(vcpu, VCPU_REGS_RDX)); +} +EXPORT_SYMBOL_GPL(kvm_emulate_cpuid); --- linux-3.2.0.orig/arch/x86/kvm/lapic.c +++ linux-3.2.0/arch/x86/kvm/lapic.c @@ -38,6 +38,7 @@ #include "irq.h" #include "trace.h" #include "x86.h" +#include "cpuid.h" #ifndef CONFIG_X86_64 #define mod_64(x, y) ((x) - (y) * div64_u64(x, y)) --- linux-3.2.0.orig/arch/x86/kvm/svm.c +++ linux-3.2.0/arch/x86/kvm/svm.c @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -575,6 +576,8 @@ wrmsrl(MSR_AMD64_TSC_RATIO, TSC_RATIO_DEFAULT); cpu_svm_disable(); + + amd_pmu_disable_virt(); } static int svm_hardware_enable(void *garbage) @@ -622,6 +625,8 @@ svm_init_erratum_383(); + amd_pmu_enable_virt(); + return 0; } --- linux-3.2.0.orig/arch/x86/kvm/emulate.c +++ linux-3.2.0/arch/x86/kvm/emulate.c @@ -1877,6 +1877,51 @@ ss->p = 1; } +static bool em_syscall_is_enabled(struct x86_emulate_ctxt *ctxt) +{ + struct x86_emulate_ops *ops = ctxt->ops; + u32 eax, ebx, ecx, edx; + + /* + * syscall should always be enabled in longmode - so only become + * vendor specific (cpuid) if other modes are active... + */ + if (ctxt->mode == X86EMUL_MODE_PROT64) + return true; + + eax = 0x00000000; + ecx = 0x00000000; + if (ops->get_cpuid(ctxt, &eax, &ebx, &ecx, &edx)) { + /* + * Intel ("GenuineIntel") + * remark: Intel CPUs only support "syscall" in 64bit + * longmode. Also an 64bit guest with a + * 32bit compat-app running will #UD !! While this + * behaviour can be fixed (by emulating) into AMD + * response - CPUs of AMD can't behave like Intel. + */ + if (ebx == X86EMUL_CPUID_VENDOR_GenuineIntel_ebx && + ecx == X86EMUL_CPUID_VENDOR_GenuineIntel_ecx && + edx == X86EMUL_CPUID_VENDOR_GenuineIntel_edx) + return false; + + /* AMD ("AuthenticAMD") */ + if (ebx == X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx && + ecx == X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx && + edx == X86EMUL_CPUID_VENDOR_AuthenticAMD_edx) + return true; + + /* AMD ("AMDisbetter!") */ + if (ebx == X86EMUL_CPUID_VENDOR_AMDisbetterI_ebx && + ecx == X86EMUL_CPUID_VENDOR_AMDisbetterI_ecx && + edx == X86EMUL_CPUID_VENDOR_AMDisbetterI_edx) + return true; + } + + /* default: (not Intel, not AMD), apply Intel's stricter rules... */ + return false; +} + static int em_syscall(struct x86_emulate_ctxt *ctxt) { struct x86_emulate_ops *ops = ctxt->ops; @@ -1890,9 +1935,15 @@ ctxt->mode == X86EMUL_MODE_VM86) return emulate_ud(ctxt); + if (!(em_syscall_is_enabled(ctxt))) + return emulate_ud(ctxt); + ops->get_msr(ctxt, MSR_EFER, &efer); setup_syscalls_segments(ctxt, &cs, &ss); + if (!(efer & EFER_SCE)) + return emulate_ud(ctxt); + ops->get_msr(ctxt, MSR_STAR, &msr_data); msr_data >>= 32; cs_sel = (u16)(msr_data & 0xfffc); --- linux-3.2.0.orig/arch/x86/ia32/ia32_signal.c +++ linux-3.2.0/arch/x86/ia32/ia32_signal.c @@ -73,6 +73,10 @@ switch (from->si_code >> 16) { case __SI_FAULT >> 16: break; + case __SI_SYS >> 16: + put_user_ex(from->si_syscall, &to->si_syscall); + put_user_ex(from->si_arch, &to->si_arch); + break; case __SI_CHLD >> 16: put_user_ex(from->si_utime, &to->si_utime); put_user_ex(from->si_stime, &to->si_stime); --- linux-3.2.0.orig/arch/x86/ia32/ia32entry.S +++ linux-3.2.0/arch/x86/ia32/ia32entry.S @@ -208,7 +208,7 @@ testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),TI_flags(%r10) jnz ia32_ret_from_sys_call TRACE_IRQS_ON - sti + ENABLE_INTERRUPTS(CLBR_NONE) movl %eax,%esi /* second arg, syscall return value */ cmpl $0,%eax /* is it < 0? */ setl %al /* 1 if so, 0 if not */ @@ -218,7 +218,7 @@ GET_THREAD_INFO(%r10) movl RAX-ARGOFFSET(%rsp),%eax /* reload syscall return value */ movl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),%edi - cli + DISABLE_INTERRUPTS(CLBR_NONE) TRACE_IRQS_OFF testl %edi,TI_flags(%r10) jz \exit --- linux-3.2.0.orig/arch/x86/pci/fixup.c +++ linux-3.2.0/arch/x86/pci/fixup.c @@ -521,3 +521,20 @@ } } DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x4385, sb600_disable_hpet_bar); + +/* + * Twinhead H12Y needs us to block out a region otherwise we map devices + * there and any access kills the box. + * + * See: https://bugzilla.kernel.org/show_bug.cgi?id=10231 + * + * Match off the LPC and svid/sdid (older kernels lose the bridge subvendor) + */ +static void __devinit twinhead_reserve_killing_zone(struct pci_dev *dev) +{ + if (dev->subsystem_vendor == 0x14FF && dev->subsystem_device == 0xA003) { + pr_info("Reserving memory on Twinhead H12Y\n"); + request_mem_region(0xFFB00000, 0x100000, "twinhead"); + } +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x27B9, twinhead_reserve_killing_zone); --- linux-3.2.0.orig/arch/x86/pci/Makefile +++ linux-3.2.0/arch/x86/pci/Makefile @@ -18,8 +18,9 @@ obj-$(CONFIG_X86_MRST) += mrst.o obj-y += common.o early.o -obj-y += amd_bus.o bus_numa.o +obj-y += bus_numa.o +obj-$(CONFIG_AMD_NB) += amd_bus.o obj-$(CONFIG_PCI_CNB20LE_QUIRK) += broadcom_bus.o ifeq ($(CONFIG_PCI_DEBUG),y) --- linux-3.2.0.orig/arch/x86/pci/amd_bus.c +++ linux-3.2.0/arch/x86/pci/amd_bus.c @@ -30,34 +30,6 @@ { 0, 0x18, PCI_VENDOR_ID_AMD, 0x1300 }, }; -static u64 __initdata fam10h_mmconf_start; -static u64 __initdata fam10h_mmconf_end; -static void __init get_pci_mmcfg_amd_fam10h_range(void) -{ - u32 address; - u64 base, msr; - unsigned segn_busn_bits; - - /* assume all cpus from fam10h have mmconf */ - if (boot_cpu_data.x86 < 0x10) - return; - - address = MSR_FAM10H_MMIO_CONF_BASE; - rdmsrl(address, msr); - - /* mmconfig is not enable */ - if (!(msr & FAM10H_MMIO_CONF_ENABLE)) - return; - - base = msr & (FAM10H_MMIO_CONF_BASE_MASK<> FAM10H_MMIO_CONF_BUSRANGE_SHIFT) & - FAM10H_MMIO_CONF_BUSRANGE_MASK; - - fam10h_mmconf_start = base; - fam10h_mmconf_end = base + (1ULL<<(segn_busn_bits + 20)) - 1; -} - #define RANGE_NUM 16 /** @@ -85,6 +57,9 @@ u64 val; u32 address; bool found; + struct resource fam10h_mmconf_res, *fam10h_mmconf; + u64 fam10h_mmconf_start; + u64 fam10h_mmconf_end; if (!early_pci_allowed()) return -1; @@ -211,12 +186,17 @@ subtract_range(range, RANGE_NUM, 0, end); /* get mmconfig */ - get_pci_mmcfg_amd_fam10h_range(); + fam10h_mmconf = amd_get_mmconfig_range(&fam10h_mmconf_res); /* need to take out mmconf range */ - if (fam10h_mmconf_end) { - printk(KERN_DEBUG "Fam 10h mmconf [%llx, %llx]\n", fam10h_mmconf_start, fam10h_mmconf_end); + if (fam10h_mmconf) { + printk(KERN_DEBUG "Fam 10h mmconf %pR\n", fam10h_mmconf); + fam10h_mmconf_start = fam10h_mmconf->start; + fam10h_mmconf_end = fam10h_mmconf->end; subtract_range(range, RANGE_NUM, fam10h_mmconf_start, fam10h_mmconf_end + 1); + } else { + fam10h_mmconf_start = 0; + fam10h_mmconf_end = 0; } /* mmio resource */ --- linux-3.2.0.orig/arch/x86/pci/xen.c +++ linux-3.2.0/arch/x86/pci/xen.c @@ -64,6 +64,10 @@ int shareable = 0; char *name; + irq = xen_irq_from_gsi(gsi); + if (irq > 0) + return irq; + if (set_pirq) pirq = gsi; @@ -158,6 +162,9 @@ struct msi_desc *msidesc; int *v; + if (type == PCI_CAP_ID_MSI && nvec > 1) + return 1; + v = kzalloc(sizeof(int) * max(1, nvec), GFP_KERNEL); if (!v) return -ENOMEM; @@ -216,6 +223,9 @@ struct msi_desc *msidesc; struct msi_msg msg; + if (type == PCI_CAP_ID_MSI && nvec > 1) + return 1; + list_for_each_entry(msidesc, &dev->msi_list, list) { __read_msi_msg(msidesc, &msg); pirq = MSI_ADDR_EXT_DEST_ID(msg.address_hi) | @@ -259,6 +269,9 @@ int ret = 0; struct msi_desc *msidesc; + if (type == PCI_CAP_ID_MSI && nvec > 1) + return 1; + list_for_each_entry(msidesc, &dev->msi_list, list) { struct physdev_map_pirq map_irq; domid_t domid; @@ -374,7 +387,7 @@ int __init pci_xen_hvm_init(void) { - if (!xen_feature(XENFEAT_hvm_pirqs)) + if (!xen_have_vector_callback || !xen_feature(XENFEAT_hvm_pirqs)) return 0; #ifdef CONFIG_ACPI --- linux-3.2.0.orig/arch/x86/pci/acpi.c +++ linux-3.2.0/arch/x86/pci/acpi.c @@ -54,6 +54,16 @@ DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."), }, }, + /* https://bugzilla.kernel.org/show_bug.cgi?id=42619 */ + { + .callback = set_use_crs, + .ident = "MSI MS-7253", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), + DMI_MATCH(DMI_BOARD_NAME, "MS-7253"), + DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies, LTD"), + }, + }, {} }; @@ -149,7 +159,7 @@ struct acpi_resource_address64 addr; acpi_status status; unsigned long flags; - u64 start, end; + u64 start, orig_end, end; status = resource_to_addr(acpi_res, &addr); if (!ACPI_SUCCESS(status)) @@ -165,7 +175,21 @@ return AE_OK; start = addr.minimum + addr.translation_offset; - end = addr.maximum + addr.translation_offset; + orig_end = end = addr.maximum + addr.translation_offset; + + /* Exclude non-addressable range or non-addressable portion of range */ + end = min(end, (u64)iomem_resource.end); + if (end <= start) { + dev_info(&info->bridge->dev, + "host bridge window [%#llx-%#llx] " + "(ignored, not CPU addressable)\n", start, orig_end); + return AE_OK; + } else if (orig_end != end) { + dev_info(&info->bridge->dev, + "host bridge window [%#llx-%#llx] " + "([%#llx-%#llx] ignored, not CPU addressable)\n", + start, orig_end, end + 1, orig_end); + } res = &info->res[info->res_num]; res->name = info->name; --- linux-3.2.0.orig/arch/x86/include/asm/apic_flat_64.h +++ linux-3.2.0/arch/x86/include/asm/apic_flat_64.h @@ -0,0 +1,7 @@ +#ifndef _ASM_X86_APIC_FLAT_64_H +#define _ASM_X86_APIC_FLAT_64_H + +extern void flat_init_apic_ldr(void); + +#endif + --- linux-3.2.0.orig/arch/x86/include/asm/paravirt.h +++ linux-3.2.0/arch/x86/include/asm/paravirt.h @@ -298,6 +298,12 @@ { PVOP_VCALL2(pv_cpu_ops.set_ldt, addr, entries); } +#ifdef CONFIG_X86_32 +static inline void load_user_cs_desc(unsigned int cpu, struct mm_struct *mm) +{ + PVOP_VCALL2(pv_cpu_ops.load_user_cs_desc, cpu, mm); +} +#endif /*CONFIG_X86_32*/ static inline void store_gdt(struct desc_ptr *dtr) { PVOP_VCALL1(pv_cpu_ops.store_gdt, dtr); @@ -740,7 +746,10 @@ PVOP_VCALL0(pv_mmu_ops.lazy_mode.leave); } -void arch_flush_lazy_mmu_mode(void); +static inline void arch_flush_lazy_mmu_mode(void) +{ + PVOP_VCALL0(pv_mmu_ops.lazy_mode.flush); +} static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx, phys_addr_t phys, pgprot_t flags) --- linux-3.2.0.orig/arch/x86/include/asm/syscall.h +++ linux-3.2.0/arch/x86/include/asm/syscall.h @@ -13,6 +13,7 @@ #ifndef _ASM_X86_SYSCALL_H #define _ASM_X86_SYSCALL_H +#include #include #include @@ -86,6 +87,12 @@ memcpy(®s->bx + i, args, n * sizeof(args[0])); } +static inline int syscall_get_arch(struct task_struct *task, + struct pt_regs *regs) +{ + return AUDIT_ARCH_I386; +} + #else /* CONFIG_X86_64 */ static inline void syscall_get_arguments(struct task_struct *task, @@ -210,6 +217,22 @@ } } +static inline int syscall_get_arch(struct task_struct *task, + struct pt_regs *regs) +{ +#ifdef CONFIG_IA32_EMULATION + /* + * TS_COMPAT is set for 32-bit syscall entries and then + * remains set until we return to user mode. + * + * TIF_IA32 tasks should always have TS_COMPAT set at + * system call time. + */ + if (task_thread_info(task)->status & TS_COMPAT) + return AUDIT_ARCH_I386; +#endif + return AUDIT_ARCH_X86_64; +} #endif /* CONFIG_X86_32 */ #endif /* _ASM_X86_SYSCALL_H */ --- linux-3.2.0.orig/arch/x86/include/asm/efi.h +++ linux-3.2.0/arch/x86/include/asm/efi.h @@ -90,6 +90,7 @@ #endif /* CONFIG_X86_32 */ extern int add_efi_memmap; +extern unsigned long x86_efi_facility; extern void efi_set_executable(efi_memory_desc_t *md, bool executable); extern void efi_memblock_x86_reserve_range(void); extern void efi_call_phys_prelog(void); --- linux-3.2.0.orig/arch/x86/include/asm/kvm_host.h +++ linux-3.2.0/arch/x86/include/asm/kvm_host.h @@ -393,8 +393,8 @@ gpa_t time; struct pvclock_vcpu_time_info hv_clock; unsigned int hw_tsc_khz; - unsigned int time_offset; - struct page *time_page; + struct gfn_to_hva_cache pv_time; + bool pv_time_enabled; struct { u64 msr_val; --- linux-3.2.0.orig/arch/x86/include/asm/desc.h +++ linux-3.2.0/arch/x86/include/asm/desc.h @@ -6,6 +6,7 @@ #include #include +#include static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *info) { @@ -98,6 +99,10 @@ #define load_TLS(t, cpu) native_load_tls(t, cpu) #define set_ldt native_set_ldt +#ifdef CONFIG_X86_32 +#define load_user_cs_desc native_load_user_cs_desc +#endif /*CONFIG_X86_32*/ + #define write_ldt_entry(dt, entry, desc) native_write_ldt_entry(dt, entry, desc) #define write_gdt_entry(dt, entry, desc, type) native_write_gdt_entry(dt, entry, desc, type) #define write_idt_entry(dt, entry, g) native_write_idt_entry(dt, entry, g) @@ -392,4 +397,25 @@ _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS); } +#ifdef CONFIG_X86_32 +static inline void set_user_cs(struct desc_struct *desc, unsigned long limit) +{ + limit = (limit - 1) / PAGE_SIZE; + desc->a = limit & 0xffff; + desc->b = (limit & 0xf0000) | 0x00c0fb00; +} + +static inline void native_load_user_cs_desc(int cpu, struct mm_struct *mm) +{ + get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs; +} + +#define arch_add_exec_range arch_add_exec_range +#define arch_remove_exec_range arch_remove_exec_range +#define arch_flush_exec_range arch_flush_exec_range +extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit); +extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit); +extern void arch_flush_exec_range(struct mm_struct *mm); +#endif /* CONFIG_X86_32 */ + #endif /* _ASM_X86_DESC_H */ --- linux-3.2.0.orig/arch/x86/include/asm/ia32.h +++ linux-3.2.0/arch/x86/include/asm/ia32.h @@ -126,6 +126,12 @@ int _band; /* POLL_IN, POLL_OUT, POLL_MSG */ int _fd; } _sigpoll; + + struct { + unsigned int _call_addr; /* calling insn */ + int _syscall; /* triggering system call number */ + unsigned int _arch; /* AUDIT_ARCH_* of syscall */ + } _sigsys; } _sifields; } compat_siginfo_t; --- linux-3.2.0.orig/arch/x86/include/asm/thread_info.h +++ linux-3.2.0/arch/x86/include/asm/thread_info.h @@ -242,8 +242,6 @@ * ever touches our thread-synchronous status, so we don't * have to worry about atomic accesses. */ -#define TS_USEDFPU 0x0001 /* FPU was used by this task - this quantum (SMP) */ #define TS_COMPAT 0x0002 /* 32bit syscall active (64BIT)*/ #define TS_POLLING 0x0004 /* idle task polling need_resched, skip sending interrupt */ --- linux-3.2.0.orig/arch/x86/include/asm/ptrace.h +++ linux-3.2.0/arch/x86/include/asm/ptrace.h @@ -206,21 +206,14 @@ } #endif -/* - * X86_32 CPUs don't save ss and esp if the CPU is already in kernel mode - * when it traps. The previous stack will be directly underneath the saved - * registers, and 'sp/ss' won't even have been saved. Thus the '®s->sp'. - * - * This is valid only for kernel mode traps. - */ -static inline unsigned long kernel_stack_pointer(struct pt_regs *regs) -{ #ifdef CONFIG_X86_32 - return (unsigned long)(®s->sp); +extern unsigned long kernel_stack_pointer(struct pt_regs *regs); #else +static inline unsigned long kernel_stack_pointer(struct pt_regs *regs) +{ return regs->sp; -#endif } +#endif #define GET_IP(regs) ((regs)->ip) #define GET_FP(regs) ((regs)->bp) --- linux-3.2.0.orig/arch/x86/include/asm/signal.h +++ linux-3.2.0/arch/x86/include/asm/signal.h @@ -125,6 +125,8 @@ extern void do_notify_resume(struct pt_regs *, void *, __u32); # endif /* __KERNEL__ */ +#define __ARCH_HAS_SA_RESTORER + #ifdef __i386__ # ifdef __KERNEL__ struct old_sigaction { --- linux-3.2.0.orig/arch/x86/include/asm/pgtable-3level.h +++ linux-3.2.0/arch/x86/include/asm/pgtable-3level.h @@ -31,6 +31,60 @@ ptep->pte_low = pte.pte_low; } +#define pmd_read_atomic pmd_read_atomic +/* + * pte_offset_map_lock on 32bit PAE kernels was reading the pmd_t with + * a "*pmdp" dereference done by gcc. Problem is, in certain places + * where pte_offset_map_lock is called, concurrent page faults are + * allowed, if the mmap_sem is hold for reading. An example is mincore + * vs page faults vs MADV_DONTNEED. On the page fault side + * pmd_populate rightfully does a set_64bit, but if we're reading the + * pmd_t with a "*pmdp" on the mincore side, a SMP race can happen + * because gcc will not read the 64bit of the pmd atomically. To fix + * this all places running pmd_offset_map_lock() while holding the + * mmap_sem in read mode, shall read the pmdp pointer using this + * function to know if the pmd is null nor not, and in turn to know if + * they can run pmd_offset_map_lock or pmd_trans_huge or other pmd + * operations. + * + * Without THP if the mmap_sem is hold for reading, the pmd can only + * transition from null to not null while pmd_read_atomic runs. So + * we can always return atomic pmd values with this function. + * + * With THP if the mmap_sem is hold for reading, the pmd can become + * trans_huge or none or point to a pte (and in turn become "stable") + * at any time under pmd_read_atomic. We could read it really + * atomically here with a atomic64_read for the THP enabled case (and + * it would be a whole lot simpler), but to avoid using cmpxchg8b we + * only return an atomic pmdval if the low part of the pmdval is later + * found stable (i.e. pointing to a pte). And we're returning a none + * pmdval if the low part of the pmd is none. In some cases the high + * and low part of the pmdval returned may not be consistent if THP is + * enabled (the low part may point to previously mapped hugepage, + * while the high part may point to a more recently mapped hugepage), + * but pmd_none_or_trans_huge_or_clear_bad() only needs the low part + * of the pmd to be read atomically to decide if the pmd is unstable + * or not, with the only exception of when the low part of the pmd is + * zero in which case we return a none pmd. + */ +static inline pmd_t pmd_read_atomic(pmd_t *pmdp) +{ + pmdval_t ret; + u32 *tmp = (u32 *)pmdp; + + ret = (pmdval_t) (*tmp); + if (ret) { + /* + * If the low part is null, we must not read the high part + * or we can end up with a partial pmd. + */ + smp_rmb(); + ret |= ((pmdval_t)*(tmp + 1)) << 32; + } + + return (pmd_t) { ret }; +} + static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte) { set_64bit((unsigned long long *)(ptep), native_pte_val(pte)); --- linux-3.2.0.orig/arch/x86/include/asm/system.h +++ linux-3.2.0/arch/x86/include/asm/system.h @@ -93,10 +93,6 @@ "memory"); \ } while (0) -/* - * disable hlt during certain critical i/o operations - */ -#define HAVE_DISABLE_HLT #else /* frame pointer must be last for get_wchan */ @@ -392,9 +388,6 @@ #define nop() asm volatile ("nop") -void disable_hlt(void); -void enable_hlt(void); - void cpu_idle_wait(void); extern unsigned long arch_align_stack(unsigned long sp); --- linux-3.2.0.orig/arch/x86/include/asm/mce.h +++ linux-3.2.0/arch/x86/include/asm/mce.h @@ -76,6 +76,8 @@ __u32 socketid; /* CPU socket ID */ __u32 apicid; /* CPU initial apic ID */ __u64 mcgcap; /* MCGCAP MSR: machine check capabilities of CPU */ + __u64 aux0; /* model specific */ + __u64 aux1; /* model specific */ }; /* --- linux-3.2.0.orig/arch/x86/include/asm/timer.h +++ linux-3.2.0/arch/x86/include/asm/timer.h @@ -57,14 +57,10 @@ static inline unsigned long long __cycles_2_ns(unsigned long long cyc) { - unsigned long long quot; - unsigned long long rem; int cpu = smp_processor_id(); unsigned long long ns = per_cpu(cyc2ns_offset, cpu); - quot = (cyc >> CYC2NS_SCALE_FACTOR); - rem = cyc & ((1ULL << CYC2NS_SCALE_FACTOR) - 1); - ns += quot * per_cpu(cyc2ns, cpu) + - ((rem * per_cpu(cyc2ns, cpu)) >> CYC2NS_SCALE_FACTOR); + ns += mult_frac(cyc, per_cpu(cyc2ns, cpu), + (1UL << CYC2NS_SCALE_FACTOR)); return ns; } --- linux-3.2.0.orig/arch/x86/include/asm/paravirt_types.h +++ linux-3.2.0/arch/x86/include/asm/paravirt_types.h @@ -91,6 +91,7 @@ /* Set deferred update mode, used for batching operations. */ void (*enter)(void); void (*leave)(void); + void (*flush)(void); }; struct pv_time_ops { @@ -125,6 +126,9 @@ void (*store_gdt)(struct desc_ptr *); void (*store_idt)(struct desc_ptr *); void (*set_ldt)(const void *desc, unsigned entries); +#ifdef CONFIG_X86_32 + void (*load_user_cs_desc)(int cpu, struct mm_struct *mm); +#endif unsigned long (*store_tr)(void); void (*load_tls)(struct thread_struct *t, unsigned int cpu); #ifdef CONFIG_X86_64 @@ -680,6 +684,7 @@ void paravirt_enter_lazy_mmu(void); void paravirt_leave_lazy_mmu(void); +void paravirt_flush_lazy_mmu(void); void _paravirt_nop(void); u32 _paravirt_ident_32(u32); --- linux-3.2.0.orig/arch/x86/include/asm/cpufeature.h +++ linux-3.2.0/arch/x86/include/asm/cpufeature.h @@ -159,6 +159,7 @@ #define X86_FEATURE_WDT (6*32+13) /* Watchdog timer */ #define X86_FEATURE_LWP (6*32+15) /* Light Weight Profiling */ #define X86_FEATURE_FMA4 (6*32+16) /* 4 operands MAC instructions */ +#define X86_FEATURE_TCE (6*32+17) /* translation cache extension */ #define X86_FEATURE_NODEID_MSR (6*32+19) /* NodeId MSR */ #define X86_FEATURE_TBM (6*32+21) /* trailing bit manipulations */ #define X86_FEATURE_TOPOEXT (6*32+22) /* topology extensions CPUID leafs */ @@ -175,7 +176,7 @@ #define X86_FEATURE_XSAVEOPT (7*32+ 4) /* Optimized Xsave */ #define X86_FEATURE_PLN (7*32+ 5) /* Intel Power Limit Notification */ #define X86_FEATURE_PTS (7*32+ 6) /* Intel Package Thermal Status */ -#define X86_FEATURE_DTS (7*32+ 7) /* Digital Thermal Sensor */ +#define X86_FEATURE_DTHERM (7*32+ 7) /* Digital Thermal Sensor */ /* Virtualization flags: Linux defined, word 8 */ #define X86_FEATURE_TPR_SHADOW (8*32+ 0) /* Intel TPR Shadow */ @@ -197,7 +198,10 @@ /* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */ #define X86_FEATURE_FSGSBASE (9*32+ 0) /* {RD/WR}{FS/GS}BASE instructions*/ +#define X86_FEATURE_BMI1 (9*32+ 3) /* 1st group bit manipulation extensions */ +#define X86_FEATURE_AVX2 (9*32+ 5) /* AVX2 instructions */ #define X86_FEATURE_SMEP (9*32+ 7) /* Supervisor Mode Execution Protection */ +#define X86_FEATURE_BMI2 (9*32+ 8) /* 2nd group bit manipulation extensions */ #define X86_FEATURE_ERMS (9*32+ 9) /* Enhanced REP MOVSB/STOSB */ #if defined(__KERNEL__) && !defined(__ASSEMBLY__) --- linux-3.2.0.orig/arch/x86/include/asm/dma-mapping.h +++ linux-3.2.0/arch/x86/include/asm/dma-mapping.h @@ -144,8 +144,6 @@ { struct dma_map_ops *ops = get_dma_ops(dev); - WARN_ON(irqs_disabled()); /* for portability */ - if (dma_release_from_coherent(dev, get_order(size), vaddr)) return; --- linux-3.2.0.orig/arch/x86/include/asm/perf_event.h +++ linux-3.2.0/arch/x86/include/asm/perf_event.h @@ -212,4 +212,12 @@ static inline void perf_events_lapic_init(void) { } #endif +#if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_AMD) + extern void amd_pmu_enable_virt(void); + extern void amd_pmu_disable_virt(void); +#else + static inline void amd_pmu_enable_virt(void) { } + static inline void amd_pmu_disable_virt(void) { } +#endif + #endif /* _ASM_X86_PERF_EVENT_H */ --- linux-3.2.0.orig/arch/x86/include/asm/pgtable.h +++ linux-3.2.0/arch/x86/include/asm/pgtable.h @@ -142,12 +142,16 @@ return (pmd_val(pmd) & PTE_PFN_MASK) >> PAGE_SHIFT; } +static inline unsigned long pud_pfn(pud_t pud) +{ + return (pud_val(pud) & PTE_PFN_MASK) >> PAGE_SHIFT; +} + #define pte_page(pte) pfn_to_page(pte_pfn(pte)) static inline int pmd_large(pmd_t pte) { - return (pmd_flags(pte) & (_PAGE_PSE | _PAGE_PRESENT)) == - (_PAGE_PSE | _PAGE_PRESENT); + return pmd_flags(pte) & _PAGE_PSE; } #ifdef CONFIG_TRANSPARENT_HUGEPAGE @@ -415,7 +419,13 @@ static inline int pmd_present(pmd_t pmd) { - return pmd_flags(pmd) & _PAGE_PRESENT; + /* + * Checking for _PAGE_PSE is needed too because + * split_huge_page will temporarily clear the present bit (but + * the _PAGE_PSE flag will remain set at all times while the + * _PAGE_PRESENT bit is clear). + */ + return pmd_flags(pmd) & (_PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_PSE); } static inline int pmd_none(pmd_t pmd) --- linux-3.2.0.orig/arch/x86/include/asm/processor.h +++ linux-3.2.0/arch/x86/include/asm/processor.h @@ -99,7 +99,6 @@ u16 apicid; u16 initial_apicid; u16 x86_clflush_size; -#ifdef CONFIG_SMP /* number of cores as seen by the OS: */ u16 booted_cores; /* Physical processor id: */ @@ -110,7 +109,6 @@ u8 compute_unit_id; /* Index into per_cpu list: */ u16 cpu_index; -#endif u32 microcode; } __attribute__((__aligned__(SMP_CACHE_BYTES))); @@ -456,6 +454,7 @@ unsigned long trap_no; unsigned long error_code; /* floating point and extended processor state */ + unsigned long has_fpu; struct fpu fpu; #ifdef CONFIG_X86_32 /* Virtual 86 mode info */ --- linux-3.2.0.orig/arch/x86/include/asm/mmu.h +++ linux-3.2.0/arch/x86/include/asm/mmu.h @@ -7,6 +7,9 @@ /* * The x86 doesn't have a mmu context, but * we put the segment information here. + * + * exec_limit is used to track the range PROT_EXEC + * mappings span. */ typedef struct { void *ldt; @@ -19,6 +22,11 @@ struct mutex lock; void *vdso; + +#ifdef CONFIG_X86_32 + struct desc_struct user_cs; + unsigned long exec_limit; +#endif } mm_context_t; #ifdef CONFIG_SMP --- linux-3.2.0.orig/arch/x86/include/asm/x86_init.h +++ linux-3.2.0/arch/x86/include/asm/x86_init.h @@ -7,6 +7,7 @@ struct mpc_bus; struct mpc_cpu; struct mpc_table; +struct cpuinfo_x86; /** * struct x86_init_mpparse - platform specific mpparse ops @@ -147,6 +148,7 @@ */ struct x86_cpuinit_ops { void (*setup_percpu_clockev)(void); + void (*fixup_cpu_id)(struct cpuinfo_x86 *c, int node); }; /** @@ -186,5 +188,6 @@ extern void x86_init_noop(void); extern void x86_init_uint_noop(unsigned int unused); +extern void x86_default_fixup_cpu_id(struct cpuinfo_x86 *c, int node); #endif --- linux-3.2.0.orig/arch/x86/include/asm/traps.h +++ linux-3.2.0/arch/x86/include/asm/traps.h @@ -89,4 +89,29 @@ asmlinkage void mce_threshold_interrupt(void); #endif +/* Interrupts/Exceptions */ +enum { + X86_TRAP_DE = 0, /* 0, Divide-by-zero */ + X86_TRAP_DB, /* 1, Debug */ + X86_TRAP_NMI, /* 2, Non-maskable Interrupt */ + X86_TRAP_BP, /* 3, Breakpoint */ + X86_TRAP_OF, /* 4, Overflow */ + X86_TRAP_BR, /* 5, Bound Range Exceeded */ + X86_TRAP_UD, /* 6, Invalid Opcode */ + X86_TRAP_NM, /* 7, Device Not Available */ + X86_TRAP_DF, /* 8, Double Fault */ + X86_TRAP_OLD_MF, /* 9, Coprocessor Segment Overrun */ + X86_TRAP_TS, /* 10, Invalid TSS */ + X86_TRAP_NP, /* 11, Segment Not Present */ + X86_TRAP_SS, /* 12, Stack Segment Fault */ + X86_TRAP_GP, /* 13, General Protection Fault */ + X86_TRAP_PF, /* 14, Page Fault */ + X86_TRAP_SPURIOUS, /* 15, Spurious Interrupt */ + X86_TRAP_MF, /* 16, x87 Floating-Point Exception */ + X86_TRAP_AC, /* 17, Alignment Check */ + X86_TRAP_MC, /* 18, Machine Check */ + X86_TRAP_XF, /* 19, SIMD Floating-Point Exception */ + X86_TRAP_IRET = 32, /* 32, IRET Exception */ +}; + #endif /* _ASM_X86_TRAPS_H */ --- linux-3.2.0.orig/arch/x86/include/asm/i387.h +++ linux-3.2.0/arch/x86/include/asm/i387.h @@ -29,8 +29,8 @@ extern void fpu_init(void); extern void mxcsr_feature_mask_init(void); extern int init_fpu(struct task_struct *child); -extern asmlinkage void math_state_restore(void); -extern void __math_state_restore(void); +extern void __math_state_restore(struct task_struct *); +extern void math_state_restore(void); extern int dump_fpu(struct pt_regs *, struct user_i387_struct *); extern user_regset_active_fn fpregs_active, xfpregs_active; @@ -212,19 +212,11 @@ #endif /* CONFIG_X86_64 */ -/* We need a safe address that is cheap to find and that is already - in L1 during context switch. The best choices are unfortunately - different for UP and SMP */ -#ifdef CONFIG_SMP -#define safe_address (__per_cpu_offset[0]) -#else -#define safe_address (kstat_cpu(0).cpustat.user) -#endif - /* - * These must be called with preempt disabled + * These must be called with preempt disabled. Returns + * 'true' if the FPU state is still intact. */ -static inline void fpu_save_init(struct fpu *fpu) +static inline int fpu_save_init(struct fpu *fpu) { if (use_xsave()) { fpu_xsave(fpu); @@ -233,33 +225,33 @@ * xsave header may indicate the init state of the FP. */ if (!(fpu->state->xsave.xsave_hdr.xstate_bv & XSTATE_FP)) - return; + return 1; } else if (use_fxsr()) { fpu_fxsave(fpu); } else { asm volatile("fnsave %[fx]; fwait" : [fx] "=m" (fpu->state->fsave)); - return; + return 0; } - if (unlikely(fpu->state->fxsave.swd & X87_FSW_ES)) + /* + * If exceptions are pending, we need to clear them so + * that we don't randomly get exceptions later. + * + * FIXME! Is this perhaps only true for the old-style + * irq13 case? Maybe we could leave the x87 state + * intact otherwise? + */ + if (unlikely(fpu->state->fxsave.swd & X87_FSW_ES)) { asm volatile("fnclex"); - - /* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception - is pending. Clear the x87 state here by setting it to fixed - values. safe_address is a random variable that should be in L1 */ - alternative_input( - ASM_NOP8 ASM_NOP2, - "emms\n\t" /* clear stack tags */ - "fildl %P[addr]", /* set F?P to defined value */ - X86_FEATURE_FXSAVE_LEAK, - [addr] "m" (safe_address)); + return 0; + } + return 1; } -static inline void __save_init_fpu(struct task_struct *tsk) +static inline int __save_init_fpu(struct task_struct *tsk) { - fpu_save_init(&tsk->thread.fpu); - task_thread_info(tsk)->status &= ~TS_USEDFPU; + return fpu_save_init(&tsk->thread.fpu); } static inline int fpu_fxrstor_checking(struct fpu *fpu) @@ -281,39 +273,185 @@ } /* - * Signal frame handlers... + * Software FPU state helpers. Careful: these need to + * be preemption protection *and* they need to be + * properly paired with the CR0.TS changes! */ -extern int save_i387_xstate(void __user *buf); -extern int restore_i387_xstate(void __user *buf); +static inline int __thread_has_fpu(struct task_struct *tsk) +{ + return tsk->thread.has_fpu; +} -static inline void __unlazy_fpu(struct task_struct *tsk) +/* Must be paired with an 'stts' after! */ +static inline void __thread_clear_has_fpu(struct task_struct *tsk) { - if (task_thread_info(tsk)->status & TS_USEDFPU) { - __save_init_fpu(tsk); - stts(); - } else - tsk->fpu_counter = 0; + tsk->thread.has_fpu = 0; +} + +/* Must be paired with a 'clts' before! */ +static inline void __thread_set_has_fpu(struct task_struct *tsk) +{ + tsk->thread.has_fpu = 1; +} + +/* + * Encapsulate the CR0.TS handling together with the + * software flag. + * + * These generally need preemption protection to work, + * do try to avoid using these on their own. + */ +static inline void __thread_fpu_end(struct task_struct *tsk) +{ + __thread_clear_has_fpu(tsk); + stts(); +} + +static inline void __thread_fpu_begin(struct task_struct *tsk) +{ + clts(); + __thread_set_has_fpu(tsk); } +/* + * FPU state switching for scheduling. + * + * This is a two-stage process: + * + * - switch_fpu_prepare() saves the old state and + * sets the new state of the CR0.TS bit. This is + * done within the context of the old process. + * + * - switch_fpu_finish() restores the new state as + * necessary. + */ +typedef struct { int preload; } fpu_switch_t; + +/* + * FIXME! We could do a totally lazy restore, but we need to + * add a per-cpu "this was the task that last touched the FPU + * on this CPU" variable, and the task needs to have a "I last + * touched the FPU on this CPU" and check them. + * + * We don't do that yet, so "fpu_lazy_restore()" always returns + * false, but some day.. + */ +#define fpu_lazy_restore(tsk) (0) +#define fpu_lazy_state_intact(tsk) do { } while (0) + +static inline fpu_switch_t switch_fpu_prepare(struct task_struct *old, struct task_struct *new) +{ + fpu_switch_t fpu; + + fpu.preload = tsk_used_math(new) && new->fpu_counter > 5; + if (__thread_has_fpu(old)) { + if (__save_init_fpu(old)) + fpu_lazy_state_intact(old); + __thread_clear_has_fpu(old); + old->fpu_counter++; + + /* Don't change CR0.TS if we just switch! */ + if (fpu.preload) { + __thread_set_has_fpu(new); + prefetch(new->thread.fpu.state); + } else + stts(); + } else { + old->fpu_counter = 0; + if (fpu.preload) { + if (fpu_lazy_restore(new)) + fpu.preload = 0; + else + prefetch(new->thread.fpu.state); + __thread_fpu_begin(new); + } + } + return fpu; +} + +/* + * By the time this gets called, we've already cleared CR0.TS and + * given the process the FPU if we are going to preload the FPU + * state - all we need to do is to conditionally restore the register + * state itself. + */ +static inline void switch_fpu_finish(struct task_struct *new, fpu_switch_t fpu) +{ + if (fpu.preload) + __math_state_restore(new); +} + +/* + * Signal frame handlers... + */ +extern int save_i387_xstate(void __user *buf); +extern int restore_i387_xstate(void __user *buf); + static inline void __clear_fpu(struct task_struct *tsk) { - if (task_thread_info(tsk)->status & TS_USEDFPU) { + if (__thread_has_fpu(tsk)) { /* Ignore delayed exceptions from user space */ asm volatile("1: fwait\n" "2:\n" _ASM_EXTABLE(1b, 2b)); - task_thread_info(tsk)->status &= ~TS_USEDFPU; - stts(); + __thread_fpu_end(tsk); } } +/* + * Were we in an interrupt that interrupted kernel mode? + * + * We can do a kernel_fpu_begin/end() pair *ONLY* if that + * pair does nothing at all: the thread must not have fpu (so + * that we don't try to save the FPU state), and TS must + * be set (so that the clts/stts pair does nothing that is + * visible in the interrupted kernel thread). + */ +static inline bool interrupted_kernel_fpu_idle(void) +{ + return !__thread_has_fpu(current) && + (read_cr0() & X86_CR0_TS); +} + +/* + * Were we in user mode (or vm86 mode) when we were + * interrupted? + * + * Doing kernel_fpu_begin/end() is ok if we are running + * in an interrupt context from user mode - we'll just + * save the FPU state as required. + */ +static inline bool interrupted_user_mode(void) +{ + struct pt_regs *regs = get_irq_regs(); + return regs && user_mode_vm(regs); +} + +/* + * Can we use the FPU in kernel mode with the + * whole "kernel_fpu_begin/end()" sequence? + * + * It's always ok in process context (ie "not interrupt") + * but it is sometimes ok even from an irq. + */ +static inline bool irq_fpu_usable(void) +{ + return !in_interrupt() || + interrupted_user_mode() || + interrupted_kernel_fpu_idle(); +} + static inline void kernel_fpu_begin(void) { - struct thread_info *me = current_thread_info(); + struct task_struct *me = current; + + WARN_ON_ONCE(!irq_fpu_usable()); preempt_disable(); - if (me->status & TS_USEDFPU) - __save_init_fpu(me->task); - else + if (__thread_has_fpu(me)) { + __save_init_fpu(me); + __thread_clear_has_fpu(me); + /* We do 'stts()' in kernel_fpu_end() */ + } else clts(); } @@ -323,14 +461,6 @@ preempt_enable(); } -static inline bool irq_fpu_usable(void) -{ - struct pt_regs *regs; - - return !in_interrupt() || !(regs = get_irq_regs()) || \ - user_mode(regs) || (read_cr0() & X86_CR0_TS); -} - /* * Some instructions like VIA's padlock instructions generate a spurious * DNA fault but don't modify SSE registers. And these instructions @@ -363,20 +493,64 @@ } /* + * The question "does this thread have fpu access?" + * is slightly racy, since preemption could come in + * and revoke it immediately after the test. + * + * However, even in that very unlikely scenario, + * we can just assume we have FPU access - typically + * to save the FP state - we'll just take a #NM + * fault and get the FPU access back. + * + * The actual user_fpu_begin/end() functions + * need to be preemption-safe, though. + * + * NOTE! user_fpu_end() must be used only after you + * have saved the FP state, and user_fpu_begin() must + * be used only immediately before restoring it. + * These functions do not do any save/restore on + * their own. + */ +static inline int user_has_fpu(void) +{ + return __thread_has_fpu(current); +} + +static inline void user_fpu_end(void) +{ + preempt_disable(); + __thread_fpu_end(current); + preempt_enable(); +} + +static inline void user_fpu_begin(void) +{ + preempt_disable(); + if (!user_has_fpu()) + __thread_fpu_begin(current); + preempt_enable(); +} + +/* * These disable preemption on their own and are safe */ static inline void save_init_fpu(struct task_struct *tsk) { + WARN_ON_ONCE(!__thread_has_fpu(tsk)); preempt_disable(); __save_init_fpu(tsk); - stts(); + __thread_fpu_end(tsk); preempt_enable(); } static inline void unlazy_fpu(struct task_struct *tsk) { preempt_disable(); - __unlazy_fpu(tsk); + if (__thread_has_fpu(tsk)) { + __save_init_fpu(tsk); + __thread_fpu_end(tsk); + } else + tsk->fpu_counter = 0; preempt_enable(); } --- linux-3.2.0.orig/arch/x86/include/asm/kvm_emulate.h +++ linux-3.2.0/arch/x86/include/asm/kvm_emulate.h @@ -189,6 +189,9 @@ int (*intercept)(struct x86_emulate_ctxt *ctxt, struct x86_instruction_info *info, enum x86_intercept_stage stage); + + bool (*get_cpuid)(struct x86_emulate_ctxt *ctxt, + u32 *eax, u32 *ebx, u32 *ecx, u32 *edx); }; typedef u32 __attribute__((vector_size(16))) sse128_t; @@ -297,6 +300,19 @@ #define X86EMUL_MODE_PROT (X86EMUL_MODE_PROT16|X86EMUL_MODE_PROT32| \ X86EMUL_MODE_PROT64) +/* CPUID vendors */ +#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx 0x68747541 +#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx 0x444d4163 +#define X86EMUL_CPUID_VENDOR_AuthenticAMD_edx 0x69746e65 + +#define X86EMUL_CPUID_VENDOR_AMDisbetterI_ebx 0x69444d41 +#define X86EMUL_CPUID_VENDOR_AMDisbetterI_ecx 0x21726574 +#define X86EMUL_CPUID_VENDOR_AMDisbetterI_edx 0x74656273 + +#define X86EMUL_CPUID_VENDOR_GenuineIntel_ebx 0x756e6547 +#define X86EMUL_CPUID_VENDOR_GenuineIntel_ecx 0x6c65746e +#define X86EMUL_CPUID_VENDOR_GenuineIntel_edx 0x49656e69 + enum x86_intercept_stage { X86_ICTP_NONE = 0, /* Allow zero-init to not match anything */ X86_ICPT_PRE_EXCEPT, --- linux-3.2.0.orig/arch/x86/include/asm/amd_nb.h +++ linux-3.2.0/arch/x86/include/asm/amd_nb.h @@ -1,6 +1,7 @@ #ifndef _ASM_X86_AMD_NB_H #define _ASM_X86_AMD_NB_H +#include #include struct amd_nb_bus_dev_range { @@ -13,6 +14,7 @@ extern const struct amd_nb_bus_dev_range amd_nb_bus_dev_ranges[]; extern bool early_is_amd_nb(u32 value); +extern struct resource *amd_get_mmconfig_range(struct resource *res); extern int amd_cache_northbridges(void); extern void amd_flush_garts(void); extern int amd_numa_init(void); --- linux-3.2.0.orig/arch/x86/include/asm/numachip/numachip_csr.h +++ linux-3.2.0/arch/x86/include/asm/numachip/numachip_csr.h @@ -0,0 +1,167 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Numascale NumaConnect-Specific Header file + * + * Copyright (C) 2011 Numascale AS. All rights reserved. + * + * Send feedback to + * + */ + +#ifndef _ASM_X86_NUMACHIP_NUMACHIP_CSR_H +#define _ASM_X86_NUMACHIP_NUMACHIP_CSR_H + +#include +#include +#include +#include +#include +#include + +#define CSR_NODE_SHIFT 16 +#define CSR_NODE_BITS(p) (((unsigned long)(p)) << CSR_NODE_SHIFT) +#define CSR_NODE_MASK 0x0fff /* 4K nodes */ + +/* 32K CSR space, b15 indicates geo/non-geo */ +#define CSR_OFFSET_MASK 0x7fffUL + +/* Global CSR space covers all 4K possible nodes with 64K CSR space per node */ +#define NUMACHIP_GCSR_BASE 0x3fff00000000ULL +#define NUMACHIP_GCSR_LIM 0x3fff0fffffffULL +#define NUMACHIP_GCSR_SIZE (NUMACHIP_GCSR_LIM - NUMACHIP_GCSR_BASE + 1) + +/* + * Local CSR space starts in global CSR space with "nodeid" = 0xfff0, however + * when using the direct mapping on x86_64, both start and size needs to be + * aligned with PMD_SIZE which is 2M + */ +#define NUMACHIP_LCSR_BASE 0x3ffffe000000ULL +#define NUMACHIP_LCSR_LIM 0x3fffffffffffULL +#define NUMACHIP_LCSR_SIZE (NUMACHIP_LCSR_LIM - NUMACHIP_LCSR_BASE + 1) + +static inline void *gcsr_address(int node, unsigned long offset) +{ + return __va(NUMACHIP_GCSR_BASE | (1UL << 15) | + CSR_NODE_BITS(node & CSR_NODE_MASK) | (offset & CSR_OFFSET_MASK)); +} + +static inline void *lcsr_address(unsigned long offset) +{ + return __va(NUMACHIP_LCSR_BASE | (1UL << 15) | + CSR_NODE_BITS(0xfff0) | (offset & CSR_OFFSET_MASK)); +} + +static inline unsigned int read_gcsr(int node, unsigned long offset) +{ + return swab32(readl(gcsr_address(node, offset))); +} + +static inline void write_gcsr(int node, unsigned long offset, unsigned int val) +{ + writel(swab32(val), gcsr_address(node, offset)); +} + +static inline unsigned int read_lcsr(unsigned long offset) +{ + return swab32(readl(lcsr_address(offset))); +} + +static inline void write_lcsr(unsigned long offset, unsigned int val) +{ + writel(swab32(val), lcsr_address(offset)); +} + +/* ========================================================================= */ +/* CSR_G0_STATE_CLEAR */ +/* ========================================================================= */ + +#define CSR_G0_STATE_CLEAR (0x000 + (0 << 12)) +union numachip_csr_g0_state_clear { + unsigned int v; + struct numachip_csr_g0_state_clear_s { + unsigned int _state:2; + unsigned int _rsvd_2_6:5; + unsigned int _lost:1; + unsigned int _rsvd_8_31:24; + } s; +}; + +/* ========================================================================= */ +/* CSR_G0_NODE_IDS */ +/* ========================================================================= */ + +#define CSR_G0_NODE_IDS (0x008 + (0 << 12)) +union numachip_csr_g0_node_ids { + unsigned int v; + struct numachip_csr_g0_node_ids_s { + unsigned int _initialid:16; + unsigned int _nodeid:12; + unsigned int _rsvd_28_31:4; + } s; +}; + +/* ========================================================================= */ +/* CSR_G3_EXT_IRQ_GEN */ +/* ========================================================================= */ + +#define CSR_G3_EXT_IRQ_GEN (0x030 + (3 << 12)) +union numachip_csr_g3_ext_irq_gen { + unsigned int v; + struct numachip_csr_g3_ext_irq_gen_s { + unsigned int _vector:8; + unsigned int _msgtype:3; + unsigned int _index:5; + unsigned int _destination_apic_id:16; + } s; +}; + +/* ========================================================================= */ +/* CSR_G3_EXT_IRQ_STATUS */ +/* ========================================================================= */ + +#define CSR_G3_EXT_IRQ_STATUS (0x034 + (3 << 12)) +union numachip_csr_g3_ext_irq_status { + unsigned int v; + struct numachip_csr_g3_ext_irq_status_s { + unsigned int _result:32; + } s; +}; + +/* ========================================================================= */ +/* CSR_G3_EXT_IRQ_DEST */ +/* ========================================================================= */ + +#define CSR_G3_EXT_IRQ_DEST (0x038 + (3 << 12)) +union numachip_csr_g3_ext_irq_dest { + unsigned int v; + struct numachip_csr_g3_ext_irq_dest_s { + unsigned int _irq:8; + unsigned int _rsvd_8_31:24; + } s; +}; + +/* ========================================================================= */ +/* CSR_G3_NC_ATT_MAP_SELECT */ +/* ========================================================================= */ + +#define CSR_G3_NC_ATT_MAP_SELECT (0x7fc + (3 << 12)) +union numachip_csr_g3_nc_att_map_select { + unsigned int v; + struct numachip_csr_g3_nc_att_map_select_s { + unsigned int _upper_address_bits:4; + unsigned int _select_ram:4; + unsigned int _rsvd_8_31:24; + } s; +}; + +/* ========================================================================= */ +/* CSR_G3_NC_ATT_MAP_SELECT_0-255 */ +/* ========================================================================= */ + +#define CSR_G3_NC_ATT_MAP_SELECT_0 (0x800 + (3 << 12)) + +#endif /* _ASM_X86_NUMACHIP_NUMACHIP_CSR_H */ + --- linux-3.2.0.orig/arch/x86/include/asm/uv/uv_hub.h +++ linux-3.2.0/arch/x86/include/asm/uv/uv_hub.h @@ -318,13 +318,13 @@ /* UV global physical address --> socket phys RAM */ static inline unsigned long uv_gpa_to_soc_phys_ram(unsigned long gpa) { - unsigned long paddr = gpa & uv_hub_info->gpa_mask; + unsigned long paddr; unsigned long remap_base = uv_hub_info->lowmem_remap_base; unsigned long remap_top = uv_hub_info->lowmem_remap_top; gpa = ((gpa << uv_hub_info->m_shift) >> uv_hub_info->m_shift) | ((gpa >> uv_hub_info->n_lshift) << uv_hub_info->m_val); - gpa = gpa & uv_hub_info->gpa_mask; + paddr = gpa & uv_hub_info->gpa_mask; if (paddr >= remap_base && paddr < remap_base + remap_top) paddr -= remap_base; return paddr; --- linux-3.2.0.orig/arch/x86/include/asm/uv/uv_bau.h +++ linux-3.2.0/arch/x86/include/asm/uv/uv_bau.h @@ -65,7 +65,7 @@ * UV2: Bit 19 selects between * (0): 10 microsecond timebase and * (1): 80 microseconds - * we're using 655us, similar to UV1: 65 units of 10us + * we're using 560us, similar to UV1: 65 units of 10us */ #define UV1_INTD_SOFT_ACK_TIMEOUT_PERIOD (9UL) #define UV2_INTD_SOFT_ACK_TIMEOUT_PERIOD (15UL) @@ -149,7 +149,6 @@ /* 4 bits of software ack period */ #define UV2_ACK_MASK 0x7UL #define UV2_ACK_UNITS_SHFT 3 -#define UV2_LEG_SHFT UV2H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT #define UV2_EXT_SHFT UV2H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT /* @@ -167,6 +166,7 @@ #define FLUSH_RETRY_TIMEOUT 2 #define FLUSH_GIVEUP 3 #define FLUSH_COMPLETE 4 +#define FLUSH_RETRY_BUSYBUG 5 /* * tuning the action when the numalink network is extremely delayed @@ -235,10 +235,10 @@ /* - * Message header: 16 bytes (128 bits) (bytes 0x30-0x3f of descriptor) + * UV1 Message header: 16 bytes (128 bits) (bytes 0x30-0x3f of descriptor) * see table 4.2.3.0.1 in broacast_assist spec. */ -struct bau_msg_header { +struct uv1_bau_msg_header { unsigned int dest_subnodeid:6; /* must be 0x10, for the LB */ /* bits 5:0 */ unsigned int base_dest_nasid:15; /* nasid of the first bit */ @@ -318,19 +318,87 @@ }; /* + * UV2 Message header: 16 bytes (128 bits) (bytes 0x30-0x3f of descriptor) + * see figure 9-2 of harp_sys.pdf + */ +struct uv2_bau_msg_header { + unsigned int base_dest_nasid:15; /* nasid of the first bit */ + /* bits 14:0 */ /* in uvhub map */ + unsigned int dest_subnodeid:5; /* must be 0x10, for the LB */ + /* bits 19:15 */ + unsigned int rsvd_1:1; /* must be zero */ + /* bit 20 */ + /* Address bits 59:21 */ + /* bits 25:2 of address (44:21) are payload */ + /* these next 24 bits become bytes 12-14 of msg */ + /* bits 28:21 land in byte 12 */ + unsigned int replied_to:1; /* sent as 0 by the source to + byte 12 */ + /* bit 21 */ + unsigned int msg_type:3; /* software type of the + message */ + /* bits 24:22 */ + unsigned int canceled:1; /* message canceled, resource + is to be freed*/ + /* bit 25 */ + unsigned int payload_1:3; /* not currently used */ + /* bits 28:26 */ + + /* bits 36:29 land in byte 13 */ + unsigned int payload_2a:3; /* not currently used */ + unsigned int payload_2b:5; /* not currently used */ + /* bits 36:29 */ + + /* bits 44:37 land in byte 14 */ + unsigned int payload_3:8; /* not currently used */ + /* bits 44:37 */ + + unsigned int rsvd_2:7; /* reserved */ + /* bits 51:45 */ + unsigned int swack_flag:1; /* software acknowledge flag */ + /* bit 52 */ + unsigned int rsvd_3a:3; /* must be zero */ + unsigned int rsvd_3b:8; /* must be zero */ + unsigned int rsvd_3c:8; /* must be zero */ + unsigned int rsvd_3d:3; /* must be zero */ + /* bits 74:53 */ + unsigned int fairness:3; /* usually zero */ + /* bits 77:75 */ + + unsigned int sequence:16; /* message sequence number */ + /* bits 93:78 Suppl_A */ + unsigned int chaining:1; /* next descriptor is part of + this activation*/ + /* bit 94 */ + unsigned int multilevel:1; /* multi-level multicast + format */ + /* bit 95 */ + unsigned int rsvd_4:24; /* ordered / source node / + source subnode / aging + must be zero */ + /* bits 119:96 */ + unsigned int command:8; /* message type */ + /* bits 127:120 */ +}; + +/* * The activation descriptor: * The format of the message to send, plus all accompanying control * Should be 64 bytes */ struct bau_desc { - struct pnmask distribution; + struct pnmask distribution; /* * message template, consisting of header and payload: */ - struct bau_msg_header header; - struct bau_msg_payload payload; + union bau_msg_header { + struct uv1_bau_msg_header uv1_hdr; + struct uv2_bau_msg_header uv2_hdr; + } header; + + struct bau_msg_payload payload; }; -/* +/* UV1: * -payload-- ---------header------ * bytes 0-11 bits 41-56 bits 58-81 * A B (2) C (3) @@ -340,6 +408,16 @@ * bytes 0-11 bytes 12-14 bytes 16-17 (byte 15 filled in by hw as vector) * ------------payload queue----------- */ +/* UV2: + * -payload-- ---------header------ + * bytes 0-11 bits 70-78 bits 21-44 + * A B (2) C (3) + * + * A/B/C are moved to: + * A C B + * bytes 0-11 bytes 12-14 bytes 16-17 (byte 15 filled in by hw as vector) + * ------------payload queue----------- + */ /* * The payload queue on the destination side is an array of these. @@ -385,7 +463,6 @@ struct msg_desc { struct bau_pq_entry *msg; int msg_slot; - int swack_slot; struct bau_pq_entry *queue_first; struct bau_pq_entry *queue_last; }; @@ -439,6 +516,9 @@ unsigned long s_retry_messages; /* retry broadcasts */ unsigned long s_bau_reenabled; /* for bau enable/disable */ unsigned long s_bau_disabled; /* for bau enable/disable */ + unsigned long s_uv2_wars; /* uv2 workaround, perm. busy */ + unsigned long s_uv2_wars_hw; /* uv2 workaround, hiwater */ + unsigned long s_uv2_war_waits; /* uv2 workaround, long waits */ /* destination statistics */ unsigned long d_alltlb; /* times all tlb's on this cpu were flushed */ @@ -511,9 +591,12 @@ short osnode; short uvhub_cpu; short uvhub; + short uvhub_version; short cpus_in_socket; short cpus_in_uvhub; short partition_base_pnode; + short using_desc; /* an index, like uvhub_cpu */ + unsigned int inuse_map; unsigned short message_number; unsigned short uvhub_quiesce; short socket_acknowledge_count[DEST_Q_SIZE]; @@ -531,6 +614,7 @@ int cong_response_us; int cong_reps; int cong_period; + unsigned long clocks_per_100_usec; cycles_t period_time; long period_requests; struct hub_and_pnode *thp; @@ -591,6 +675,11 @@ uv_write_local_mmr(UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS, mr); } +static inline void write_gmmr_sw_ack(int pnode, unsigned long mr) +{ + write_gmmr(pnode, UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS, mr); +} + static inline unsigned long read_mmr_sw_ack(void) { return read_lmmr(UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE); --- linux-3.2.0.orig/arch/x86/mm/setup_nx.c +++ linux-3.2.0/arch/x86/mm/setup_nx.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -5,7 +6,11 @@ #include #include -static int disable_nx __cpuinitdata; +#ifdef CONFIG_X86_32 +int disable_nx; /* referenced by load_elf_binary() */ +#else +int disable_nx __cpuinitdata; +#endif /* * noexec = on|off @@ -39,9 +44,12 @@ void __init x86_report_nx(void) { + int nx_emulation = 0; + if (!cpu_has_nx) { printk(KERN_NOTICE "Notice: NX (Execute Disable) protection " "missing in CPU!\n"); + nx_emulation = 1; } else { #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) if (disable_nx) { @@ -54,7 +62,20 @@ #else /* 32bit non-PAE kernel, NX cannot be used */ printk(KERN_NOTICE "Notice: NX (Execute Disable) protection " - "cannot be enabled: non-PAE kernel!\n"); + "cannot be enabled in hardware: non-PAE kernel!\n"); + nx_emulation = 1; +#endif + } + + if (nx_emulation) { +#ifdef CONFIG_X86_32 + if (!disable_nx) + printk(KERN_INFO "NX (Execute Disable) protection: " + "approximated by x86 segment limits\n"); + else + printk(KERN_INFO "NX (Execute Disable) protection: " + "approximation disabled by kernel command " + "line option\n"); #endif } } --- linux-3.2.0.orig/arch/x86/mm/tlb.c +++ linux-3.2.0/arch/x86/mm/tlb.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -134,6 +135,12 @@ union smp_flush_state *f; cpu = smp_processor_id(); + +#ifdef CONFIG_X86_32 + if (current->active_mm) + load_user_cs_desc(cpu, current->active_mm); +#endif + /* * orig_rax contains the negated interrupt vector. * Use that to determine where the sender put the data. --- linux-3.2.0.orig/arch/x86/mm/srat.c +++ linux-3.2.0/arch/x86/mm/srat.c @@ -104,6 +104,8 @@ if ((pa->flags & ACPI_SRAT_CPU_ENABLED) == 0) return; pxm = pa->proximity_domain_lo; + if (acpi_srat_revision >= 2) + pxm |= *((unsigned int*)pa->proximity_domain_hi) << 8; node = setup_node(pxm); if (node < 0) { printk(KERN_ERR "SRAT: Too many proximity domains %x\n", pxm); @@ -155,6 +157,8 @@ start = ma->base_address; end = start + ma->length; pxm = ma->proximity_domain; + if (acpi_srat_revision <= 1) + pxm &= 0xff; node = setup_node(pxm); if (node < 0) { printk(KERN_ERR "SRAT: Too many proximity domains.\n"); --- linux-3.2.0.orig/arch/x86/mm/hugetlbpage.c +++ linux-3.2.0/arch/x86/mm/hugetlbpage.c @@ -56,9 +56,16 @@ } /* - * search for a shareable pmd page for hugetlb. + * Search for a shareable pmd page for hugetlb. In any case calls pmd_alloc() + * and returns the corresponding pte. While this is not necessary for the + * !shared pmd case because we can allocate the pmd later as well, it makes the + * code much cleaner. pmd allocation is essential for the shared case because + * pud has to be populated inside the same i_mmap_mutex section - otherwise + * racing tasks could either miss the sharing (see huge_pte_offset) or select a + * bad pmd for sharing. */ -static void huge_pmd_share(struct mm_struct *mm, unsigned long addr, pud_t *pud) +static pte_t * +huge_pmd_share(struct mm_struct *mm, unsigned long addr, pud_t *pud) { struct vm_area_struct *vma = find_vma(mm, addr); struct address_space *mapping = vma->vm_file->f_mapping; @@ -68,9 +75,10 @@ struct vm_area_struct *svma; unsigned long saddr; pte_t *spte = NULL; + pte_t *pte; if (!vma_shareable(vma, addr)) - return; + return (pte_t *)pmd_alloc(mm, pud, addr); mutex_lock(&mapping->i_mmap_mutex); vma_prio_tree_foreach(svma, &iter, &mapping->i_mmap, idx, idx) { @@ -97,7 +105,9 @@ put_page(virt_to_page(spte)); spin_unlock(&mm->page_table_lock); out: + pte = (pte_t *)pmd_alloc(mm, pud, addr); mutex_unlock(&mapping->i_mmap_mutex); + return pte; } /* @@ -142,8 +152,9 @@ } else { BUG_ON(sz != PMD_SIZE); if (pud_none(*pud)) - huge_pmd_share(mm, addr, pud); - pte = (pte_t *) pmd_alloc(mm, pud, addr); + pte = huge_pmd_share(mm, addr, pud); + else + pte = (pte_t *)pmd_alloc(mm, pud, addr); } } BUG_ON(pte && !pte_none(*pte) && !pte_huge(*pte)); --- linux-3.2.0.orig/arch/x86/mm/init.c +++ linux-3.2.0/arch/x86/mm/init.c @@ -28,37 +28,56 @@ #endif ; -static void __init find_early_table_space(unsigned long end, int use_pse, - int use_gbpages) +struct map_range { + unsigned long start; + unsigned long end; + unsigned page_size_mask; +}; + +/* + * First calculate space needed for kernel direct mapping page tables to cover + * mr[0].start to mr[nr_range - 1].end, while accounting for possible 2M and 1GB + * pages. Then find enough contiguous space for those page tables. + */ +static void __init find_early_table_space(struct map_range *mr, int nr_range) { - unsigned long puds, pmds, ptes, tables, start = 0, good_end = end; + int i; + unsigned long puds = 0, pmds = 0, ptes = 0, tables; + unsigned long start = 0, good_end; + unsigned long pgd_extra = 0; phys_addr_t base; - puds = (end + PUD_SIZE - 1) >> PUD_SHIFT; - tables = roundup(puds * sizeof(pud_t), PAGE_SIZE); - - if (use_gbpages) { - unsigned long extra; + for (i = 0; i < nr_range; i++) { + unsigned long range, extra; - extra = end - ((end>>PUD_SHIFT) << PUD_SHIFT); - pmds = (extra + PMD_SIZE - 1) >> PMD_SHIFT; - } else - pmds = (end + PMD_SIZE - 1) >> PMD_SHIFT; + if ((mr[i].end >> PGDIR_SHIFT) - (mr[i].start >> PGDIR_SHIFT)) + pgd_extra++; - tables += roundup(pmds * sizeof(pmd_t), PAGE_SIZE); + range = mr[i].end - mr[i].start; + puds += (range + PUD_SIZE - 1) >> PUD_SHIFT; - if (use_pse) { - unsigned long extra; + if (mr[i].page_size_mask & (1 << PG_LEVEL_1G)) { + extra = range - ((range >> PUD_SHIFT) << PUD_SHIFT); + pmds += (extra + PMD_SIZE - 1) >> PMD_SHIFT; + } else { + pmds += (range + PMD_SIZE - 1) >> PMD_SHIFT; + } - extra = end - ((end>>PMD_SHIFT) << PMD_SHIFT); + if (mr[i].page_size_mask & (1 << PG_LEVEL_2M)) { + extra = range - ((range >> PMD_SHIFT) << PMD_SHIFT); #ifdef CONFIG_X86_32 - extra += PMD_SIZE; + extra += PMD_SIZE; #endif - ptes = (extra + PAGE_SIZE - 1) >> PAGE_SHIFT; - } else - ptes = (end + PAGE_SIZE - 1) >> PAGE_SHIFT; + ptes += (extra + PAGE_SIZE - 1) >> PAGE_SHIFT; + } else { + ptes += (range + PAGE_SIZE - 1) >> PAGE_SHIFT; + } + } + tables = roundup(puds * sizeof(pud_t), PAGE_SIZE); + tables += roundup(pmds * sizeof(pmd_t), PAGE_SIZE); tables += roundup(ptes * sizeof(pte_t), PAGE_SIZE); + tables += (pgd_extra * PAGE_SIZE); #ifdef CONFIG_X86_32 /* for fixmap */ @@ -75,7 +94,8 @@ pgt_buf_top = pgt_buf_start + (tables >> PAGE_SHIFT); printk(KERN_DEBUG "kernel direct mapping tables up to %lx @ %lx-%lx\n", - end, pgt_buf_start << PAGE_SHIFT, pgt_buf_top << PAGE_SHIFT); + mr[nr_range - 1].end, pgt_buf_start << PAGE_SHIFT, + pgt_buf_top << PAGE_SHIFT); } void __init native_pagetable_reserve(u64 start, u64 end) @@ -83,12 +103,6 @@ memblock_x86_reserve_range(start, end, "PGTABLE"); } -struct map_range { - unsigned long start; - unsigned long end; - unsigned page_size_mask; -}; - #ifdef CONFIG_X86_32 #define NR_RANGE_MR 3 #else /* CONFIG_X86_64 */ @@ -260,7 +274,7 @@ * nodes are discovered. */ if (!after_bootmem) - find_early_table_space(end, use_pse, use_gbpages); + find_early_table_space(mr, nr_range); for (i = 0; i < nr_range; i++) ret = kernel_physical_mapping_init(mr[i].start, mr[i].end, --- linux-3.2.0.orig/arch/x86/mm/init_64.c +++ linux-3.2.0/arch/x86/mm/init_64.c @@ -831,6 +831,9 @@ if (pud_none(*pud)) return 0; + if (pud_large(*pud)) + return pfn_valid(pud_pfn(*pud)); + pmd = pmd_offset(pud, addr); if (pmd_none(*pmd)) return 0; --- linux-3.2.0.orig/arch/x86/mm/mmap.c +++ linux-3.2.0/arch/x86/mm/mmap.c @@ -75,9 +75,9 @@ */ if (current->flags & PF_RANDOMIZE) { if (mmap_is_ia32()) - rnd = (long)get_random_int() % (1<<8); + rnd = get_random_int() % (1<<8); else - rnd = (long)(get_random_int() % (1<<28)); + rnd = get_random_int() % (1<<28); } return rnd << PAGE_SHIFT; } @@ -119,6 +119,12 @@ } else { mm->mmap_base = mmap_base(); mm->get_unmapped_area = arch_get_unmapped_area_topdown; +#ifdef CONFIG_X86_32 + if (!(current->personality & READ_IMPLIES_EXEC) + && !(__supported_pte_mask & _PAGE_NX) + && mmap_is_ia32()) + mm->get_unmapped_exec_area = arch_get_unmapped_exec_area; +#endif mm->unmap_area = arch_unmap_area_topdown; } } --- linux-3.2.0.orig/arch/x86/mm/fault.c +++ linux-3.2.0/arch/x86/mm/fault.c @@ -377,10 +377,12 @@ if (pgd_none(*pgd_ref)) return -1; - if (pgd_none(*pgd)) + if (pgd_none(*pgd)) { set_pgd(pgd, *pgd_ref); - else + arch_flush_lazy_mmu_mode(); + } else { BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref)); + } /* * Below here mismatches are bugs because these lower tables @@ -738,13 +740,15 @@ return; } #endif + /* Kernel addresses are always protection faults: */ + if (address >= TASK_SIZE) + error_code |= PF_PROT; - if (unlikely(show_unhandled_signals)) + if (likely(show_unhandled_signals)) show_signal_msg(regs, error_code, address, tsk); - /* Kernel addresses are always protection faults: */ tsk->thread.cr2 = address; - tsk->thread.error_code = error_code | (address >= TASK_SIZE); + tsk->thread.error_code = error_code; tsk->thread.trap_no = 14; force_sig_info_fault(SIGSEGV, si_code, address, tsk, 0); --- linux-3.2.0.orig/arch/x86/boot/compressed/Makefile +++ linux-3.2.0/arch/x86/boot/compressed/Makefile @@ -31,13 +31,12 @@ $(obj)/vmlinux.bin: vmlinux FORCE $(call if_changed,objcopy) +targets += vmlinux.bin.all vmlinux.relocs -targets += vmlinux.bin.all vmlinux.relocs relocs -hostprogs-$(CONFIG_X86_NEED_RELOCS) += relocs - +CMD_RELOCS = arch/x86/tools/relocs quiet_cmd_relocs = RELOCS $@ - cmd_relocs = $(obj)/relocs $< > $@;$(obj)/relocs --abs-relocs $< -$(obj)/vmlinux.relocs: vmlinux $(obj)/relocs FORCE + cmd_relocs = $(CMD_RELOCS) $< > $@;$(CMD_RELOCS) --abs-relocs $< +$(obj)/vmlinux.relocs: vmlinux FORCE $(call if_changed,relocs) vmlinux.bin.all-y := $(obj)/vmlinux.bin --- linux-3.2.0.orig/arch/x86/kernel/vm86_32.c +++ linux-3.2.0/arch/x86/kernel/vm86_32.c @@ -172,6 +172,7 @@ spinlock_t *ptl; int i; + down_write(&mm->mmap_sem); pgd = pgd_offset(mm, 0xA0000); if (pgd_none_or_clear_bad(pgd)) goto out; @@ -190,6 +191,7 @@ } pte_unmap_unlock(pte, ptl); out: + up_write(&mm->mmap_sem); flush_tlb(); } --- linux-3.2.0.orig/arch/x86/kernel/kgdb.c +++ linux-3.2.0/arch/x86/kernel/kgdb.c @@ -43,6 +43,8 @@ #include #include #include +#include +#include #include #include @@ -740,6 +742,64 @@ regs->ip = ip; } +int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt) +{ + int err; + char opc[BREAK_INSTR_SIZE]; + + bpt->type = BP_BREAKPOINT; + err = probe_kernel_read(bpt->saved_instr, (char *)bpt->bpt_addr, + BREAK_INSTR_SIZE); + if (err) + return err; + err = probe_kernel_write((char *)bpt->bpt_addr, + arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE); +#ifdef CONFIG_DEBUG_RODATA + if (!err) + return err; + /* + * It is safe to call text_poke() because normal kernel execution + * is stopped on all cores, so long as the text_mutex is not locked. + */ + if (mutex_is_locked(&text_mutex)) + return -EBUSY; + text_poke((void *)bpt->bpt_addr, arch_kgdb_ops.gdb_bpt_instr, + BREAK_INSTR_SIZE); + err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE); + if (err) + return err; + if (memcmp(opc, arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE)) + return -EINVAL; + bpt->type = BP_POKE_BREAKPOINT; +#endif /* CONFIG_DEBUG_RODATA */ + return err; +} + +int kgdb_arch_remove_breakpoint(struct kgdb_bkpt *bpt) +{ +#ifdef CONFIG_DEBUG_RODATA + int err; + char opc[BREAK_INSTR_SIZE]; + + if (bpt->type != BP_POKE_BREAKPOINT) + goto knl_write; + /* + * It is safe to call text_poke() because normal kernel execution + * is stopped on all cores, so long as the text_mutex is not locked. + */ + if (mutex_is_locked(&text_mutex)) + goto knl_write; + text_poke((void *)bpt->bpt_addr, bpt->saved_instr, BREAK_INSTR_SIZE); + err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE); + if (err || memcmp(opc, bpt->saved_instr, BREAK_INSTR_SIZE)) + goto knl_write; + return err; +knl_write: +#endif /* CONFIG_DEBUG_RODATA */ + return probe_kernel_write((char *)bpt->bpt_addr, + (char *)bpt->saved_instr, BREAK_INSTR_SIZE); +} + struct kgdb_arch arch_kgdb_ops = { /* Breakpoint instruction: */ .gdb_bpt_instr = { 0xcc }, --- linux-3.2.0.orig/arch/x86/kernel/amd_nb.c +++ linux-3.2.0/arch/x86/kernel/amd_nb.c @@ -119,20 +119,49 @@ return false; } +struct resource *amd_get_mmconfig_range(struct resource *res) +{ + u32 address; + u64 base, msr; + unsigned segn_busn_bits; + + if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD) + return NULL; + + /* assume all cpus from fam10h have mmconfig */ + if (boot_cpu_data.x86 < 0x10) + return NULL; + + address = MSR_FAM10H_MMIO_CONF_BASE; + rdmsrl(address, msr); + + /* mmconfig is not enabled */ + if (!(msr & FAM10H_MMIO_CONF_ENABLE)) + return NULL; + + base = msr & (FAM10H_MMIO_CONF_BASE_MASK<> FAM10H_MMIO_CONF_BUSRANGE_SHIFT) & + FAM10H_MMIO_CONF_BUSRANGE_MASK; + + res->flags = IORESOURCE_MEM; + res->start = base; + res->end = base + (1ULL<<(segn_busn_bits + 20)) - 1; + return res; +} + int amd_get_subcaches(int cpu) { struct pci_dev *link = node_to_amd_nb(amd_get_nb_id(cpu))->link; unsigned int mask; - int cuid = 0; + int cuid; if (!amd_nb_has_feature(AMD_NB_L3_PARTITIONING)) return 0; pci_read_config_dword(link, 0x1d4, &mask); -#ifdef CONFIG_SMP cuid = cpu_data(cpu).compute_unit_id; -#endif return (mask >> (4 * cuid)) & 0xf; } @@ -141,7 +170,7 @@ static unsigned int reset, ban; struct amd_northbridge *nb = node_to_amd_nb(amd_get_nb_id(cpu)); unsigned int reg; - int cuid = 0; + int cuid; if (!amd_nb_has_feature(AMD_NB_L3_PARTITIONING) || mask > 0xf) return -EINVAL; @@ -159,9 +188,7 @@ pci_write_config_dword(nb->misc, 0x1b8, reg & ~0x180000); } -#ifdef CONFIG_SMP cuid = cpu_data(cpu).compute_unit_id; -#endif mask <<= 4 * cuid; mask |= (0xf ^ (1 << cuid)) << 26; --- linux-3.2.0.orig/arch/x86/kernel/process.c +++ linux-3.2.0/arch/x86/kernel/process.c @@ -341,34 +341,10 @@ EXPORT_SYMBOL(pm_idle); #endif -#ifdef CONFIG_X86_32 -/* - * This halt magic was a workaround for ancient floppy DMA - * wreckage. It should be safe to remove. - */ -static int hlt_counter; -void disable_hlt(void) -{ - hlt_counter++; -} -EXPORT_SYMBOL(disable_hlt); - -void enable_hlt(void) -{ - hlt_counter--; -} -EXPORT_SYMBOL(enable_hlt); - -static inline int hlt_use_halt(void) -{ - return (!hlt_counter && boot_cpu_data.hlt_works_ok); -} -#else static inline int hlt_use_halt(void) { return 1; } -#endif /* * We use this if we don't have any better @@ -663,6 +639,16 @@ unsigned long arch_randomize_brk(struct mm_struct *mm) { unsigned long range_end = mm->brk + 0x02000000; - return randomize_range(mm->brk, range_end, 0) ? : mm->brk; + unsigned long bump = 0; +#ifdef CONFIG_X86_32 + /* when using ASLR in arch_get_unmapped_exec_area, we must shove + the brk segment way out of the way of the exec area, since it + can collide with future allocations if not. */ + if ( (mm->get_unmapped_exec_area == arch_get_unmapped_exec_area) && + (mm->brk < 0x08000000) ) { + bump = (TASK_SIZE/6); + } +#endif + return bump + (randomize_range(mm->brk, range_end, 0) ? : mm->brk); } --- linux-3.2.0.orig/arch/x86/kernel/x86_init.c +++ linux-3.2.0/arch/x86/kernel/x86_init.c @@ -92,6 +92,7 @@ struct x86_cpuinit_ops x86_cpuinit __cpuinitdata = { .setup_percpu_clockev = setup_secondary_APIC_clock, + .fixup_cpu_id = x86_default_fixup_cpu_id, }; static void default_nmi_init(void) { }; --- linux-3.2.0.orig/arch/x86/kernel/entry_64.S +++ linux-3.2.0/arch/x86/kernel/entry_64.S @@ -1303,7 +1303,7 @@ CFI_RESTORE r11 addq $0x30,%rsp CFI_ADJUST_CFA_OFFSET -0x30 - pushq_cfi $0 + pushq_cfi $-1 /* orig_ax = -1 => not a system call */ SAVE_ALL jmp error_exit CFI_ENDPROC --- linux-3.2.0.orig/arch/x86/kernel/microcode_core.c +++ linux-3.2.0/arch/x86/kernel/microcode_core.c @@ -297,20 +297,31 @@ const char *buf, size_t size) { unsigned long val; - int cpu = dev->id; - int ret = 0; - char *end; + int cpu; + ssize_t ret = 0, tmp_ret; - val = simple_strtoul(buf, &end, 0); - if (end == buf) + /* allow reload only from the BSP */ + if (boot_cpu_data.cpu_index != dev->id) return -EINVAL; - if (val == 1) { - get_online_cpus(); - if (cpu_online(cpu)) - ret = reload_for_cpu(cpu); - put_online_cpus(); + ret = kstrtoul(buf, 0, &val); + if (ret) + return ret; + + if (val != 1) + return size; + + get_online_cpus(); + for_each_online_cpu(cpu) { + tmp_ret = reload_for_cpu(cpu); + if (tmp_ret != 0) + pr_warn("Error reloading microcode on CPU %d\n", cpu); + + /* save retval of the first encountered reload error */ + if (!ret) + ret = tmp_ret; } + put_online_cpus(); if (!ret) ret = size; @@ -418,10 +429,8 @@ if (err) return err; - if (microcode_init_cpu(cpu) == UCODE_ERROR) { - sysfs_remove_group(&sys_dev->kobj, &mc_attr_group); + if (microcode_init_cpu(cpu) == UCODE_ERROR) return -EINVAL; - } return err; } --- linux-3.2.0.orig/arch/x86/kernel/xsave.c +++ linux-3.2.0/arch/x86/kernel/xsave.c @@ -47,7 +47,7 @@ if (!fx) return; - BUG_ON(task_thread_info(tsk)->status & TS_USEDFPU); + BUG_ON(__thread_has_fpu(tsk)); xstate_bv = tsk->thread.fpu.state->xsave.xsave_hdr.xstate_bv; @@ -168,7 +168,7 @@ if (!used_math()) return 0; - if (task_thread_info(tsk)->status & TS_USEDFPU) { + if (user_has_fpu()) { if (use_xsave()) err = xsave_user(buf); else @@ -176,8 +176,7 @@ if (err) return err; - task_thread_info(tsk)->status &= ~TS_USEDFPU; - stts(); + user_fpu_end(); } else { sanitize_i387_state(tsk); if (__copy_to_user(buf, &tsk->thread.fpu.state->fxsave, @@ -292,10 +291,7 @@ return err; } - if (!(task_thread_info(current)->status & TS_USEDFPU)) { - clts(); - task_thread_info(current)->status |= TS_USEDFPU; - } + user_fpu_begin(); if (use_xsave()) err = restore_user_xstate(buf); else --- linux-3.2.0.orig/arch/x86/kernel/tsc.c +++ linux-3.2.0/arch/x86/kernel/tsc.c @@ -290,14 +290,15 @@ static inline int pit_expect_msb(unsigned char val, u64 *tscp, unsigned long *deltap) { int count; - u64 tsc = 0; + u64 tsc = 0, prev_tsc = 0; for (count = 0; count < 50000; count++) { if (!pit_verify_msb(val)) break; + prev_tsc = tsc; tsc = get_cycles(); } - *deltap = get_cycles() - tsc; + *deltap = get_cycles() - prev_tsc; *tscp = tsc; /* @@ -311,9 +312,9 @@ * How many MSB values do we want to see? We aim for * a maximum error rate of 500ppm (in practice the * real error is much smaller), but refuse to spend - * more than 25ms on it. + * more than 50ms on it. */ -#define MAX_QUICK_PIT_MS 25 +#define MAX_QUICK_PIT_MS 50 #define MAX_QUICK_PIT_ITERATIONS (MAX_QUICK_PIT_MS * PIT_TICK_RATE / 1000 / 256) static unsigned long quick_pit_calibrate(void) @@ -383,15 +384,12 @@ * * As a result, we can depend on there not being * any odd delays anywhere, and the TSC reads are - * reliable (within the error). We also adjust the - * delta to the middle of the error bars, just - * because it looks nicer. + * reliable (within the error). * * kHz = ticks / time-in-seconds / 1000; * kHz = (t2 - t1) / (I * 256 / PIT_TICK_RATE) / 1000 * kHz = ((t2 - t1) * PIT_TICK_RATE) / (I * 256 * 1000) */ - delta += (long)(d2 - d1)/2; delta *= PIT_TICK_RATE; do_div(delta, i*256*1000); printk("Fast TSC calibration using PIT\n"); @@ -622,7 +620,8 @@ if (cpu_khz) { *scale = (NSEC_PER_MSEC << CYC2NS_SCALE_FACTOR)/cpu_khz; - *offset = ns_now - (tsc_now * *scale >> CYC2NS_SCALE_FACTOR); + *offset = ns_now - mult_frac(tsc_now, *scale, + (1UL << CYC2NS_SCALE_FACTOR)); } sched_clock_idle_wakeup_event(0); @@ -934,6 +933,16 @@ clocksource_tsc.rating = 0; clocksource_tsc.flags &= ~CLOCK_SOURCE_IS_CONTINUOUS; } + + /* + * Trust the results of the earlier calibration on systems + * exporting a reliable TSC. + */ + if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE)) { + clocksource_register_khz(&clocksource_tsc, tsc_khz); + return 0; + } + schedule_delayed_work(&tsc_irqwork, 0); return 0; } --- linux-3.2.0.orig/arch/x86/kernel/hpet.c +++ linux-3.2.0/arch/x86/kernel/hpet.c @@ -429,7 +429,7 @@ /* unmask it */ cfg = hpet_readl(HPET_Tn_CFG(hdev->num)); - cfg |= HPET_TN_FSB; + cfg |= HPET_TN_ENABLE | HPET_TN_FSB; hpet_writel(cfg, HPET_Tn_CFG(hdev->num)); } @@ -440,7 +440,7 @@ /* mask it */ cfg = hpet_readl(HPET_Tn_CFG(hdev->num)); - cfg &= ~HPET_TN_FSB; + cfg &= ~(HPET_TN_ENABLE | HPET_TN_FSB); hpet_writel(cfg, HPET_Tn_CFG(hdev->num)); } --- linux-3.2.0.orig/arch/x86/kernel/irq.c +++ linux-3.2.0/arch/x86/kernel/irq.c @@ -160,10 +160,6 @@ u64 arch_irq_stat(void) { u64 sum = atomic_read(&irq_err_count); - -#ifdef CONFIG_X86_IO_APIC - sum += atomic_read(&irq_mis_count); -#endif return sum; } --- linux-3.2.0.orig/arch/x86/kernel/setup.c +++ linux-3.2.0/arch/x86/kernel/setup.c @@ -631,6 +631,83 @@ static unsigned reserve_low = CONFIG_X86_RESERVE_LOW << 10; +static bool __init snb_gfx_workaround_needed(void) +{ +#ifdef CONFIG_PCI + int i; + u16 vendor, devid; + static const __initconst u16 snb_ids[] = { + 0x0102, + 0x0112, + 0x0122, + 0x0106, + 0x0116, + 0x0126, + 0x010a, + }; + + /* Assume no if something weird is going on with PCI */ + if (!early_pci_allowed()) + return false; + + vendor = read_pci_config_16(0, 2, 0, PCI_VENDOR_ID); + if (vendor != 0x8086) + return false; + + devid = read_pci_config_16(0, 2, 0, PCI_DEVICE_ID); + for (i = 0; i < ARRAY_SIZE(snb_ids); i++) + if (devid == snb_ids[i]) + return true; +#endif + + return false; +} + +/* + * Sandy Bridge graphics has trouble with certain ranges, exclude + * them from allocation. + */ +static void __init trim_snb_memory(void) +{ + static const __initconst unsigned long bad_pages[] = { + 0x20050000, + 0x20110000, + 0x20130000, + 0x20138000, + 0x40004000, + }; + int i; + + if (!snb_gfx_workaround_needed()) + return; + + printk(KERN_DEBUG "reserving inaccessible SNB gfx pages\n"); + + /* + * Reserve all memory below the 1 MB mark that has not + * already been reserved. + */ + memblock_reserve(0, 1<<20); + + for (i = 0; i < ARRAY_SIZE(bad_pages); i++) { + if (memblock_reserve(bad_pages[i], PAGE_SIZE)) + printk(KERN_WARNING "failed to reserve 0x%08lx\n", + bad_pages[i]); + } +} + +/* + * Here we put platform-specific memory range workarounds, i.e. + * memory known to be corrupt or otherwise in need to be reserved on + * specific platforms. + * + * If this gets used more widely it could use a real dispatch mechanism. + */ +static void __init trim_platform_memory_ranges(void) +{ + trim_snb_memory(); +} + static void __init trim_bios_range(void) { /* @@ -651,6 +728,7 @@ * take them out. */ e820_remove_range(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_RAM, 1); + sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); } @@ -750,15 +828,16 @@ #endif #ifdef CONFIG_EFI if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature, -#ifdef CONFIG_X86_32 - "EL32", -#else - "EL64", -#endif - 4)) { - efi_enabled = 1; - efi_memblock_x86_reserve_range(); + "EL32", 4)) { + set_bit(EFI_BOOT, &x86_efi_facility); + } else if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature, + "EL64", 4)) { + set_bit(EFI_BOOT, &x86_efi_facility); + set_bit(EFI_64BIT, &x86_efi_facility); } + + if (efi_enabled(EFI_BOOT)) + efi_memblock_x86_reserve_range(); #endif x86_init.oem.arch_setup(); @@ -831,7 +910,7 @@ finish_e820_parsing(); - if (efi_enabled) + if (efi_enabled(EFI_BOOT)) efi_init(); dmi_scan_machine(); @@ -914,7 +993,7 @@ * The EFI specification says that boot service code won't be called * after ExitBootServices(). This is, in fact, a lie. */ - if (efi_enabled) + if (efi_enabled(EFI_MEMMAP)) efi_reserve_boot_services(); /* preallocate 4k for mptable mpc */ @@ -929,6 +1008,8 @@ setup_trampolines(); + trim_platform_memory_ranges(); + init_gbpages(); /* max_pfn_mapped is updated here */ @@ -937,8 +1018,21 @@ #ifdef CONFIG_X86_64 if (max_pfn > max_low_pfn) { - max_pfn_mapped = init_memory_mapping(1UL<<32, - max_pfn<addr + ei->size <= 1UL << 32) + continue; + + if (ei->type == E820_RESERVED) + continue; + + max_pfn_mapped = init_memory_mapping( + ei->addr < 1UL << 32 ? 1UL << 32 : ei->addr, + ei->addr + ei->size); + } + /* can we preseve max_low_pfn ?*/ max_low_pfn = max_pfn; } @@ -1035,7 +1129,7 @@ #ifdef CONFIG_VT #if defined(CONFIG_VGA_CONSOLE) - if (!efi_enabled || (efi_mem_type(0xa0000) != EFI_CONVENTIONAL_MEMORY)) + if (!efi_enabled(EFI_BOOT) || (efi_mem_type(0xa0000) != EFI_CONVENTIONAL_MEMORY)) conswitchp = &vga_con; #elif defined(CONFIG_DUMMY_CONSOLE) conswitchp = &dummy_con; --- linux-3.2.0.orig/arch/x86/kernel/microcode_amd.c +++ linux-3.2.0/arch/x86/kernel/microcode_amd.c @@ -163,6 +163,7 @@ #define F1XH_MPB_MAX_SIZE 2048 #define F14H_MPB_MAX_SIZE 1824 #define F15H_MPB_MAX_SIZE 4096 +#define F16H_MPB_MAX_SIZE 3458 switch (c->x86) { case 0x14: @@ -171,6 +172,9 @@ case 0x15: max_size = F15H_MPB_MAX_SIZE; break; + case 0x16: + max_size = F16H_MPB_MAX_SIZE; + break; default: max_size = F1XH_MPB_MAX_SIZE; break; @@ -300,13 +304,33 @@ return state; } +/* + * AMD microcode firmware naming convention, up to family 15h they are in + * the legacy file: + * + * amd-ucode/microcode_amd.bin + * + * This legacy file is always smaller than 2K in size. + * + * Starting at family 15h they are in family specific firmware files: + * + * amd-ucode/microcode_amd_fam15h.bin + * amd-ucode/microcode_amd_fam16h.bin + * ... + * + * These might be larger than 2K. + */ static enum ucode_state request_microcode_amd(int cpu, struct device *device) { - const char *fw_name = "amd-ucode/microcode_amd.bin"; + char fw_name[36] = "amd-ucode/microcode_amd.bin"; const struct firmware *fw; enum ucode_state ret = UCODE_NFOUND; + struct cpuinfo_x86 *c = &cpu_data(cpu); + + if (c->x86 >= 0x15) + snprintf(fw_name, sizeof(fw_name), "amd-ucode/microcode_amd_fam%.2xh.bin", c->x86); - if (request_firmware(&fw, fw_name, device)) { + if (request_firmware(&fw, (const char *)fw_name, device)) { pr_err("failed to load file %s\n", fw_name); goto out; } --- linux-3.2.0.orig/arch/x86/kernel/head.c +++ linux-3.2.0/arch/x86/kernel/head.c @@ -5,8 +5,6 @@ #include #include -#define BIOS_LOWMEM_KILOBYTES 0x413 - /* * The BIOS places the EBDA/XBDA at the top of conventional * memory, and usually decreases the reported amount of @@ -16,17 +14,30 @@ * chipset: reserve a page before VGA to prevent PCI prefetch * into it (errata #56). Usually the page is reserved anyways, * unless you have no PS/2 mouse plugged in. + * + * This functions is deliberately very conservative. Losing + * memory in the bottom megabyte is rarely a problem, as long + * as we have enough memory to install the trampoline. Using + * memory that is in use by the BIOS or by some DMA device + * the BIOS didn't shut down *is* a big problem. */ + +#define BIOS_LOWMEM_KILOBYTES 0x413 +#define LOWMEM_CAP 0x9f000U /* Absolute maximum */ +#define INSANE_CUTOFF 0x20000U /* Less than this = insane */ + void __init reserve_ebda_region(void) { unsigned int lowmem, ebda_addr; - /* To determine the position of the EBDA and the */ - /* end of conventional memory, we need to look at */ - /* the BIOS data area. In a paravirtual environment */ - /* that area is absent. We'll just have to assume */ - /* that the paravirt case can handle memory setup */ - /* correctly, without our help. */ + /* + * To determine the position of the EBDA and the + * end of conventional memory, we need to look at + * the BIOS data area. In a paravirtual environment + * that area is absent. We'll just have to assume + * that the paravirt case can handle memory setup + * correctly, without our help. + */ if (paravirt_enabled()) return; @@ -37,19 +48,23 @@ /* start of EBDA area */ ebda_addr = get_bios_ebda(); - /* Fixup: bios puts an EBDA in the top 64K segment */ - /* of conventional memory, but does not adjust lowmem. */ - if ((lowmem - ebda_addr) <= 0x10000) - lowmem = ebda_addr; - - /* Fixup: bios does not report an EBDA at all. */ - /* Some old Dells seem to need 4k anyhow (bugzilla 2990) */ - if ((ebda_addr == 0) && (lowmem >= 0x9f000)) - lowmem = 0x9f000; - - /* Paranoia: should never happen, but... */ - if ((lowmem == 0) || (lowmem >= 0x100000)) - lowmem = 0x9f000; + /* + * Note: some old Dells seem to need 4k EBDA without + * reporting so, so just consider the memory above 0x9f000 + * to be off limits (bugzilla 2990). + */ + + /* If the EBDA address is below 128K, assume it is bogus */ + if (ebda_addr < INSANE_CUTOFF) + ebda_addr = LOWMEM_CAP; + + /* If lowmem is less than 128K, assume it is bogus */ + if (lowmem < INSANE_CUTOFF) + lowmem = LOWMEM_CAP; + + /* Use the lower of the lowmem and EBDA markers as the cutoff */ + lowmem = min(lowmem, ebda_addr); + lowmem = min(lowmem, LOWMEM_CAP); /* Absolute cap */ /* reserve all memory between lowmem and the 1MB mark */ memblock_x86_reserve_range(lowmem, 0x100000, "* BIOS reserved"); --- linux-3.2.0.orig/arch/x86/kernel/alternative.c +++ linux-3.2.0/arch/x86/kernel/alternative.c @@ -160,7 +160,7 @@ #endif #ifdef P6_NOP1 -static const unsigned char __initconst_or_module p6nops[] = +static const unsigned char p6nops[] = { P6_NOP1, P6_NOP2, @@ -219,7 +219,7 @@ ideal_nops = intel_nops; #endif } - + break; default: #ifdef CONFIG_X86_64 ideal_nops = k8_nops; --- linux-3.2.0.orig/arch/x86/kernel/ptrace.c +++ linux-3.2.0/arch/x86/kernel/ptrace.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -164,6 +165,35 @@ #define FLAG_MASK FLAG_MASK_32 +/* + * X86_32 CPUs don't save ss and esp if the CPU is already in kernel mode + * when it traps. The previous stack will be directly underneath the saved + * registers, and 'sp/ss' won't even have been saved. Thus the '®s->sp'. + * + * Now, if the stack is empty, '®s->sp' is out of range. In this + * case we try to take the previous stack. To always return a non-null + * stack pointer we fall back to regs as stack if no previous stack + * exists. + * + * This is valid only for kernel mode traps. + */ +unsigned long kernel_stack_pointer(struct pt_regs *regs) +{ + unsigned long context = (unsigned long)regs & ~(THREAD_SIZE - 1); + unsigned long sp = (unsigned long)®s->sp; + struct thread_info *tinfo; + + if (context == (sp & ~(THREAD_SIZE - 1))) + return sp; + + tinfo = (struct thread_info *)context; + if (tinfo->previous_esp) + return tinfo->previous_esp; + + return (unsigned long)regs; +} +EXPORT_SYMBOL_GPL(kernel_stack_pointer); + static unsigned long *pt_regs_access(struct pt_regs *regs, unsigned long regno) { BUILD_BUG_ON(offsetof(struct pt_regs, bx) != 0); @@ -1379,7 +1409,11 @@ regs->flags |= X86_EFLAGS_TF; /* do the secure computing check first */ - secure_computing(regs->orig_ax); + if (secure_computing(regs->orig_ax)) { + /* seccomp failures shouldn't expose any additional code. */ + ret = -1L; + goto out; + } if (unlikely(test_thread_flag(TIF_SYSCALL_EMU))) ret = -1L; @@ -1406,6 +1440,7 @@ #endif } +out: return ret ?: regs->orig_ax; } --- linux-3.2.0.orig/arch/x86/kernel/process_32.c +++ linux-3.2.0/arch/x86/kernel/process_32.c @@ -247,7 +247,10 @@ void start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp) { + int cpu; + set_user_gs(regs, 0); + regs->fs = 0; regs->ds = __USER_DS; regs->es = __USER_DS; @@ -255,6 +258,11 @@ regs->cs = __USER_CS; regs->ip = new_ip; regs->sp = new_sp; + + cpu = get_cpu(); + load_user_cs_desc(cpu, current->mm); + put_cpu(); + /* * Free the old FP and other extended state */ @@ -297,22 +305,14 @@ *next = &next_p->thread; int cpu = smp_processor_id(); struct tss_struct *tss = &per_cpu(init_tss, cpu); - bool preload_fpu; + fpu_switch_t fpu; /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */ - /* - * If the task has used fpu the last 5 timeslices, just do a full - * restore of the math state immediately to avoid the trap; the - * chances of needing FPU soon are obviously high now - */ - preload_fpu = tsk_used_math(next_p) && next_p->fpu_counter > 5; + fpu = switch_fpu_prepare(prev_p, next_p); - __unlazy_fpu(prev_p); - - /* we're going to use this soon, after a few expensive things */ - if (preload_fpu) - prefetch(next->fpu.state); + if (next_p->mm) + load_user_cs_desc(cpu, next_p->mm); /* * Reload esp0. @@ -352,11 +352,6 @@ task_thread_info(next_p)->flags & _TIF_WORK_CTXSW_NEXT)) __switch_to_xtra(prev_p, next_p, tss); - /* If we're going to preload the fpu context, make sure clts - is run while we're batching the cpu state updates. */ - if (preload_fpu) - clts(); - /* * Leave lazy mode, flushing any hypercalls made here. * This must be done before restoring TLS segments so @@ -366,15 +361,14 @@ */ arch_end_context_switch(next_p); - if (preload_fpu) - __math_state_restore(); - /* * Restore %gs if needed (which is common) */ if (prev->gs | next->gs) lazy_load_gs(next->gs); + switch_fpu_finish(next_p, fpu); + percpu_write(current_task, next_p); return prev_p; @@ -407,3 +401,40 @@ return 0; } +static void modify_cs(struct mm_struct *mm, unsigned long limit) +{ + mm->context.exec_limit = limit; + set_user_cs(&mm->context.user_cs, limit); + if (mm == current->mm) { + int cpu; + + cpu = get_cpu(); + load_user_cs_desc(cpu, mm); + put_cpu(); + } +} + +void arch_add_exec_range(struct mm_struct *mm, unsigned long limit) +{ + if (limit > mm->context.exec_limit) + modify_cs(mm, limit); +} + +void arch_remove_exec_range(struct mm_struct *mm, unsigned long old_end) +{ + struct vm_area_struct *vma; + unsigned long limit = PAGE_SIZE; + + if (old_end == mm->context.exec_limit) { + for (vma = mm->mmap; vma; vma = vma->vm_next) + if ((vma->vm_flags & VM_EXEC) && (vma->vm_end > limit)) + limit = vma->vm_end; + modify_cs(mm, limit); + } +} + +void arch_flush_exec_range(struct mm_struct *mm) +{ + mm->context.exec_limit = 0; + set_user_cs(&mm->context.user_cs, 0); +} --- linux-3.2.0.orig/arch/x86/kernel/e820.c +++ linux-3.2.0/arch/x86/kernel/e820.c @@ -75,7 +75,7 @@ * Note: this function only works correct if the e820 table is sorted and * not-overlapping, which is the case */ -int __init e820_all_mapped(u64 start, u64 end, unsigned type) +int e820_all_mapped(u64 start, u64 end, unsigned type) { int i; @@ -102,6 +102,7 @@ } return 0; } +EXPORT_SYMBOL_GPL(e820_all_mapped); /* * Add a memory region to the kernel e820 map. --- linux-3.2.0.orig/arch/x86/kernel/relocate_kernel_64.S +++ linux-3.2.0/arch/x86/kernel/relocate_kernel_64.S @@ -160,7 +160,7 @@ xorq %rbp, %rbp xorq %r8, %r8 xorq %r9, %r9 - xorq %r10, %r9 + xorq %r10, %r10 xorq %r11, %r11 xorq %r12, %r12 xorq %r13, %r13 --- linux-3.2.0.orig/arch/x86/kernel/msr.c +++ linux-3.2.0/arch/x86/kernel/msr.c @@ -175,6 +175,9 @@ unsigned int cpu; struct cpuinfo_x86 *c; + if (!capable(CAP_SYS_RAWIO)) + return -EPERM; + cpu = iminor(file->f_path.dentry->d_inode); if (cpu >= nr_cpu_ids || !cpu_online(cpu)) return -ENXIO; /* No such CPU */ --- linux-3.2.0.orig/arch/x86/kernel/setup_percpu.c +++ linux-3.2.0/arch/x86/kernel/setup_percpu.c @@ -185,10 +185,22 @@ #endif rc = -EINVAL; if (pcpu_chosen_fc != PCPU_FC_PAGE) { - const size_t atom_size = cpu_has_pse ? PMD_SIZE : PAGE_SIZE; const size_t dyn_size = PERCPU_MODULE_RESERVE + PERCPU_DYNAMIC_RESERVE - PERCPU_FIRST_CHUNK_RESERVE; + size_t atom_size; + /* + * On 64bit, use PMD_SIZE for atom_size so that embedded + * percpu areas are aligned to PMD. This, in the future, + * can also allow using PMD mappings in vmalloc area. Use + * PAGE_SIZE on 32bit as vmalloc space is highly contended + * and large vmalloc area allocs can easily fail. + */ +#ifdef CONFIG_X86_64 + atom_size = PMD_SIZE; +#else + atom_size = PAGE_SIZE; +#endif rc = pcpu_embed_first_chunk(PERCPU_FIRST_CHUNK_RESERVE, dyn_size, atom_size, pcpu_cpu_distance, --- linux-3.2.0.orig/arch/x86/kernel/step.c +++ linux-3.2.0/arch/x86/kernel/step.c @@ -157,6 +157,34 @@ return 1; } +static void set_task_blockstep(struct task_struct *task, bool on) +{ + unsigned long debugctl; + + /* + * Ensure irq/preemption can't change debugctl in between. + * Note also that both TIF_BLOCKSTEP and debugctl should + * be changed atomically wrt preemption. + * + * NOTE: this means that set/clear TIF_BLOCKSTEP is only safe if + * task is current or it can't be running, otherwise we can race + * with __switch_to_xtra(). We rely on ptrace_freeze_traced() but + * PTRACE_KILL is not safe. + */ + local_irq_disable(); + debugctl = get_debugctlmsr(); + if (on) { + debugctl |= DEBUGCTLMSR_BTF; + set_tsk_thread_flag(task, TIF_BLOCKSTEP); + } else { + debugctl &= ~DEBUGCTLMSR_BTF; + clear_tsk_thread_flag(task, TIF_BLOCKSTEP); + } + if (task == current) + update_debugctlmsr(debugctl); + local_irq_enable(); +} + /* * Enable single or block step. */ @@ -169,19 +197,10 @@ * So no one should try to use debugger block stepping in a program * that uses user-mode single stepping itself. */ - if (enable_single_step(child) && block) { - unsigned long debugctl = get_debugctlmsr(); - - debugctl |= DEBUGCTLMSR_BTF; - update_debugctlmsr(debugctl); - set_tsk_thread_flag(child, TIF_BLOCKSTEP); - } else if (test_tsk_thread_flag(child, TIF_BLOCKSTEP)) { - unsigned long debugctl = get_debugctlmsr(); - - debugctl &= ~DEBUGCTLMSR_BTF; - update_debugctlmsr(debugctl); - clear_tsk_thread_flag(child, TIF_BLOCKSTEP); - } + if (enable_single_step(child) && block) + set_task_blockstep(child, true); + else if (test_tsk_thread_flag(child, TIF_BLOCKSTEP)) + set_task_blockstep(child, false); } void user_enable_single_step(struct task_struct *child) @@ -199,13 +218,8 @@ /* * Make sure block stepping (BTF) is disabled. */ - if (test_tsk_thread_flag(child, TIF_BLOCKSTEP)) { - unsigned long debugctl = get_debugctlmsr(); - - debugctl &= ~DEBUGCTLMSR_BTF; - update_debugctlmsr(debugctl); - clear_tsk_thread_flag(child, TIF_BLOCKSTEP); - } + if (test_tsk_thread_flag(child, TIF_BLOCKSTEP)) + set_task_blockstep(child, false); /* Always clear TIF_SINGLESTEP... */ clear_tsk_thread_flag(child, TIF_SINGLESTEP); --- linux-3.2.0.orig/arch/x86/kernel/entry_32.S +++ linux-3.2.0/arch/x86/kernel/entry_32.S @@ -99,12 +99,6 @@ #endif .endm -#ifdef CONFIG_VM86 -#define resume_userspace_sig check_userspace -#else -#define resume_userspace_sig resume_userspace -#endif - /* * User gs save/restore * @@ -328,10 +322,19 @@ preempt_stop(CLBR_ANY) ret_from_intr: GET_THREAD_INFO(%ebp) -check_userspace: +resume_userspace_sig: +#ifdef CONFIG_VM86 movl PT_EFLAGS(%esp), %eax # mix EFLAGS and CS movb PT_CS(%esp), %al andl $(X86_EFLAGS_VM | SEGMENT_RPL_MASK), %eax +#else + /* + * We can be coming here from a syscall done in the kernel space, + * e.g. a failed kernel_execve(). + */ + movl PT_CS(%esp), %eax + andl $SEGMENT_RPL_MASK, %eax +#endif cmpl $USER_RPL, %eax jb resume_kernel # not returning to v8086 or userspace @@ -1022,7 +1025,7 @@ ENTRY(xen_hypervisor_callback) CFI_STARTPROC - pushl_cfi $0 + pushl_cfi $-1 /* orig_ax = -1 => not a system call */ SAVE_ALL TRACE_IRQS_OFF @@ -1064,14 +1067,15 @@ 2: mov 8(%esp),%es 3: mov 12(%esp),%fs 4: mov 16(%esp),%gs + /* EAX == 0 => Category 1 (Bad segment) + EAX != 0 => Category 2 (Bad IRET) */ testl %eax,%eax popl_cfi %eax lea 16(%esp),%esp CFI_ADJUST_CFA_OFFSET -16 jz 5f - addl $16,%esp - jmp iret_exc # EAX != 0 => Category 2 (Bad IRET) -5: pushl_cfi $0 # EAX == 0 => Category 1 (Bad segment) + jmp iret_exc +5: pushl_cfi $-1 /* orig_ax = -1 => not a system call */ SAVE_ALL jmp ret_from_exception CFI_ENDPROC --- linux-3.2.0.orig/arch/x86/kernel/reboot.c +++ linux-3.2.0/arch/x86/kernel/reboot.c @@ -444,6 +444,14 @@ DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E5420"), }, }, + { /* 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 Latitude E6420. */ .callback = set_pci_reboot, .ident = "Dell Latitude E6420", @@ -460,6 +468,46 @@ DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"), }, }, + { /* 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 Precision M6600. */ + .callback = set_pci_reboot, + .ident = "Dell OptiPlex 990", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Precision M6600"), + }, + }, + { /* 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"), + }, + }, { } }; @@ -595,7 +643,7 @@ break; case BOOT_EFI: - if (efi_enabled) + if (efi_enabled(EFI_RUNTIME_SERVICES)) efi.reset_system(reboot_mode ? EFI_RESET_WARM : EFI_RESET_COLD, --- linux-3.2.0.orig/arch/x86/kernel/tls.c +++ linux-3.2.0/arch/x86/kernel/tls.c @@ -163,7 +163,7 @@ { const struct desc_struct *tls; - if (pos > GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) || + if (pos >= GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) || (pos % sizeof(struct user_desc)) != 0 || (count % sizeof(struct user_desc)) != 0) return -EINVAL; @@ -198,7 +198,7 @@ struct user_desc infobuf[GDT_ENTRY_TLS_ENTRIES]; const struct user_desc *info; - if (pos > GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) || + if (pos >= GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) || (pos % sizeof(struct user_desc)) != 0 || (count % sizeof(struct user_desc)) != 0) return -EINVAL; --- linux-3.2.0.orig/arch/x86/kernel/paravirt.c +++ linux-3.2.0/arch/x86/kernel/paravirt.c @@ -261,6 +261,18 @@ leave_lazy(PARAVIRT_LAZY_MMU); } +void paravirt_flush_lazy_mmu(void) +{ + preempt_disable(); + + if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) { + arch_leave_lazy_mmu_mode(); + arch_enter_lazy_mmu_mode(); + } + + preempt_enable(); +} + void paravirt_start_context_switch(struct task_struct *prev) { BUG_ON(preemptible()); @@ -290,18 +302,6 @@ return percpu_read(paravirt_lazy_mode); } -void arch_flush_lazy_mmu_mode(void) -{ - preempt_disable(); - - if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) { - arch_leave_lazy_mmu_mode(); - arch_enter_lazy_mmu_mode(); - } - - preempt_enable(); -} - struct pv_info pv_info = { .name = "bare hardware", .paravirt_enabled = 0, @@ -358,6 +358,9 @@ .read_tscp = native_read_tscp, .load_tr_desc = native_load_tr_desc, .set_ldt = native_set_ldt, +#ifdef CONFIG_X86_32 + .load_user_cs_desc = native_load_user_cs_desc, +#endif /*CONFIG_X86_32*/ .load_gdt = native_load_gdt, .load_idt = native_load_idt, .store_gdt = native_store_gdt, @@ -475,6 +478,7 @@ .lazy_mode = { .enter = paravirt_nop, .leave = paravirt_nop, + .flush = paravirt_nop, }, .set_fixmap = native_set_fixmap, --- linux-3.2.0.orig/arch/x86/kernel/traps.c +++ linux-3.2.0/arch/x86/kernel/traps.c @@ -107,6 +107,78 @@ dec_preempt_count(); } +#ifdef CONFIG_X86_32 +static inline int +__compare_user_cs_desc(const struct desc_struct *desc1, + const struct desc_struct *desc2) +{ + return ((desc1->limit0 != desc2->limit0) || + (desc1->limit != desc2->limit) || + (desc1->base0 != desc2->base0) || + (desc1->base1 != desc2->base1) || + (desc1->base2 != desc2->base2)); +} + +/* + * lazy-check for CS validity on exec-shield binaries: + * + * the original non-exec stack patch was written by + * Solar Designer . Thanks! + */ +static int +check_lazy_exec_limit(int cpu, struct pt_regs *regs, long error_code) +{ + struct desc_struct *desc1, *desc2; + struct vm_area_struct *vma; + unsigned long limit; + + if (current->mm == NULL) + return 0; + + limit = -1UL; + if (current->mm->context.exec_limit != -1UL) { + limit = PAGE_SIZE; + spin_lock(¤t->mm->page_table_lock); + for (vma = current->mm->mmap; vma; vma = vma->vm_next) + if ((vma->vm_flags & VM_EXEC) && (vma->vm_end > limit)) + limit = vma->vm_end; + vma = get_gate_vma(current->mm); + if (vma && (vma->vm_flags & VM_EXEC) && (vma->vm_end > limit)) + limit = vma->vm_end; + spin_unlock(¤t->mm->page_table_lock); + if (limit >= TASK_SIZE) + limit = -1UL; + current->mm->context.exec_limit = limit; + } + set_user_cs(¤t->mm->context.user_cs, limit); + + desc1 = ¤t->mm->context.user_cs; + desc2 = get_cpu_gdt_table(cpu) + GDT_ENTRY_DEFAULT_USER_CS; + + if (__compare_user_cs_desc(desc1, desc2)) { + /* + * The CS was not in sync - reload it and retry the + * instruction. If the instruction still faults then + * we won't hit this branch next time around. + */ + if (print_fatal_signals >= 2) { + printk(KERN_ERR "#GPF fixup (%ld[seg:%lx]) at %08lx, CPU#%d.\n", + error_code, error_code/8, regs->ip, + smp_processor_id()); + printk(KERN_ERR "exec_limit: %08lx, user_cs: %08x/%08x, CPU_cs: %08x/%08x.\n", + current->mm->context.exec_limit, + desc1->a, desc1->b, desc2->a, desc2->b); + } + + load_user_cs_desc(cpu, current->mm); + + return 1; + } + + return 0; +} +#endif + static void __kprobes do_trap(int trapnr, int signr, char *str, struct pt_regs *regs, long error_code, siginfo_t *info) @@ -119,7 +191,7 @@ * traps 0, 1, 3, 4, and 5 should be forwarded to vm86. * On nmi (interrupt 2), do_trap should not be called. */ - if (trapnr < 6) + if (trapnr < X86_TRAP_UD) goto vm86_trap; goto trap_signal; } @@ -203,27 +275,31 @@ do_trap(trapnr, signr, str, regs, error_code, &info); \ } -DO_ERROR_INFO(0, SIGFPE, "divide error", divide_error, FPE_INTDIV, regs->ip) -DO_ERROR(4, SIGSEGV, "overflow", overflow) -DO_ERROR(5, SIGSEGV, "bounds", bounds) -DO_ERROR_INFO(6, SIGILL, "invalid opcode", invalid_op, ILL_ILLOPN, regs->ip) -DO_ERROR(9, SIGFPE, "coprocessor segment overrun", coprocessor_segment_overrun) -DO_ERROR(10, SIGSEGV, "invalid TSS", invalid_TSS) -DO_ERROR(11, SIGBUS, "segment not present", segment_not_present) +DO_ERROR_INFO(X86_TRAP_DE, SIGFPE, "divide error", divide_error, FPE_INTDIV, + regs->ip) +DO_ERROR(X86_TRAP_OF, SIGSEGV, "overflow", overflow) +DO_ERROR(X86_TRAP_BR, SIGSEGV, "bounds", bounds) +DO_ERROR_INFO(X86_TRAP_UD, SIGILL, "invalid opcode", invalid_op, ILL_ILLOPN, + regs->ip) +DO_ERROR(X86_TRAP_OLD_MF, SIGFPE, "coprocessor segment overrun", + coprocessor_segment_overrun) +DO_ERROR(X86_TRAP_TS, SIGSEGV, "invalid TSS", invalid_TSS) +DO_ERROR(X86_TRAP_NP, SIGBUS, "segment not present", segment_not_present) #ifdef CONFIG_X86_32 -DO_ERROR(12, SIGBUS, "stack segment", stack_segment) +DO_ERROR(X86_TRAP_SS, SIGBUS, "stack segment", stack_segment) #endif -DO_ERROR_INFO(17, SIGBUS, "alignment check", alignment_check, BUS_ADRALN, 0) +DO_ERROR_INFO(X86_TRAP_AC, SIGBUS, "alignment check", alignment_check, + BUS_ADRALN, 0) #ifdef CONFIG_X86_64 /* Runs on IST stack */ dotraplinkage void do_stack_segment(struct pt_regs *regs, long error_code) { if (notify_die(DIE_TRAP, "stack segment", regs, error_code, - 12, SIGBUS) == NOTIFY_STOP) + X86_TRAP_SS, SIGBUS) == NOTIFY_STOP) return; preempt_conditional_sti(regs); - do_trap(12, SIGBUS, "stack segment", regs, error_code, NULL); + do_trap(X86_TRAP_SS, SIGBUS, "stack segment", regs, error_code, NULL); preempt_conditional_cli(regs); } @@ -233,10 +309,10 @@ struct task_struct *tsk = current; /* Return not checked because double check cannot be ignored */ - notify_die(DIE_TRAP, str, regs, error_code, 8, SIGSEGV); + notify_die(DIE_TRAP, str, regs, error_code, X86_TRAP_DF, SIGSEGV); tsk->thread.error_code = error_code; - tsk->thread.trap_no = 8; + tsk->thread.trap_no = X86_TRAP_DF; /* * This is always a kernel trap and never fixable (and thus must @@ -263,8 +339,31 @@ if (!user_mode(regs)) goto gp_in_kernel; +#ifdef CONFIG_X86_32 +{ + int cpu; + int ok; + + cpu = get_cpu(); + ok = check_lazy_exec_limit(cpu, regs, error_code); + put_cpu(); + + if (ok) + return; + + if (print_fatal_signals) { + printk(KERN_ERR "#GPF(%ld[seg:%lx]) at %08lx, CPU#%d.\n", + error_code, error_code/8, regs->ip, smp_processor_id()); + printk(KERN_ERR "exec_limit: %08lx, user_cs: %08x/%08x.\n", + current->mm->context.exec_limit, + current->mm->context.user_cs.a, + current->mm->context.user_cs.b); + } +} +#endif /*CONFIG_X86_32*/ + tsk->thread.error_code = error_code; - tsk->thread.trap_no = 13; + tsk->thread.trap_no = X86_TRAP_GP; if (show_unhandled_signals && unhandled_signal(tsk, SIGSEGV) && printk_ratelimit()) { @@ -291,9 +390,9 @@ return; tsk->thread.error_code = error_code; - tsk->thread.trap_no = 13; - if (notify_die(DIE_GPF, "general protection fault", regs, - error_code, 13, SIGSEGV) == NOTIFY_STOP) + tsk->thread.trap_no = X86_TRAP_GP; + if (notify_die(DIE_GPF, "general protection fault", regs, error_code, + X86_TRAP_GP, SIGSEGV) == NOTIFY_STOP) return; die("general protection fault", regs, error_code); } @@ -302,13 +401,14 @@ dotraplinkage void __kprobes do_int3(struct pt_regs *regs, long error_code) { #ifdef CONFIG_KGDB_LOW_LEVEL_TRAP - if (kgdb_ll_trap(DIE_INT3, "int3", regs, error_code, 3, SIGTRAP) - == NOTIFY_STOP) + if (kgdb_ll_trap(DIE_INT3, "int3", regs, error_code, X86_TRAP_BP, + SIGTRAP) == NOTIFY_STOP) return; #endif /* CONFIG_KGDB_LOW_LEVEL_TRAP */ #ifdef CONFIG_KPROBES - if (notify_die(DIE_INT3, "int3", regs, error_code, 3, SIGTRAP) - == NOTIFY_STOP) + + if (notify_die(DIE_INT3, "int3", regs, error_code, X86_TRAP_BP, + SIGTRAP) == NOTIFY_STOP) return; #else if (notify_die(DIE_TRAP, "int3", regs, error_code, 3, SIGTRAP) @@ -317,7 +417,7 @@ #endif preempt_conditional_sti(regs); - do_trap(3, SIGTRAP, "int3", regs, error_code, NULL); + do_trap(X86_TRAP_BP, SIGTRAP, "int3", regs, error_code, NULL); preempt_conditional_cli(regs); } @@ -415,8 +515,8 @@ preempt_conditional_sti(regs); if (regs->flags & X86_VM_MASK) { - handle_vm86_trap((struct kernel_vm86_regs *) regs, - error_code, 1); + handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code, + X86_TRAP_DB); preempt_conditional_cli(regs); return; } @@ -451,7 +551,8 @@ struct task_struct *task = current; siginfo_t info; unsigned short err; - char *str = (trapnr == 16) ? "fpu exception" : "simd exception"; + char *str = (trapnr == X86_TRAP_MF) ? "fpu exception" : + "simd exception"; if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, SIGFPE) == NOTIFY_STOP) return; @@ -476,7 +577,7 @@ info.si_signo = SIGFPE; info.si_errno = 0; info.si_addr = (void __user *)regs->ip; - if (trapnr == 16) { + if (trapnr == X86_TRAP_MF) { unsigned short cwd, swd; /* * (~cwd & swd) will mask out exceptions that are not set to unmasked @@ -520,10 +621,11 @@ info.si_code = FPE_FLTRES; } else { /* - * If we're using IRQ 13, or supposedly even some trap 16 - * implementations, it's possible we get a spurious trap... + * If we're using IRQ 13, or supposedly even some trap + * X86_TRAP_MF implementations, it's possible + * we get a spurious trap, which is not an error. */ - return; /* Spurious trap, no error */ + return; } force_sig_info(SIGFPE, &info, task); } @@ -534,13 +636,13 @@ ignore_fpu_irq = 1; #endif - math_error(regs, error_code, 16); + math_error(regs, error_code, X86_TRAP_MF); } dotraplinkage void do_simd_coprocessor_error(struct pt_regs *regs, long error_code) { - math_error(regs, error_code, 19); + math_error(regs, error_code, X86_TRAP_XF); } dotraplinkage void @@ -562,25 +664,34 @@ } /* - * __math_state_restore assumes that cr0.TS is already clear and the - * fpu state is all ready for use. Used during context switch. + * This gets called with the process already owning the + * FPU state, and with CR0.TS cleared. It just needs to + * restore the FPU register state. */ -void __math_state_restore(void) +void __math_state_restore(struct task_struct *tsk) { - struct thread_info *thread = current_thread_info(); - struct task_struct *tsk = thread->task; + /* We need a safe address that is cheap to find and that is already + in L1. We've just brought in "tsk->thread.has_fpu", so use that */ +#define safe_address (tsk->thread.has_fpu) + + /* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception + is pending. Clear the x87 state here by setting it to fixed + values. safe_address is a random variable that should be in L1 */ + alternative_input( + ASM_NOP8 ASM_NOP2, + "emms\n\t" /* clear stack tags */ + "fildl %P[addr]", /* set F?P to defined value */ + X86_FEATURE_FXSAVE_LEAK, + [addr] "m" (safe_address)); /* * Paranoid restore. send a SIGSEGV if we fail to restore the state. */ if (unlikely(restore_fpu_checking(tsk))) { - stts(); + __thread_fpu_end(tsk); force_sig(SIGSEGV, tsk); return; } - - thread->status |= TS_USEDFPU; /* So we fnsave on switch_to() */ - tsk->fpu_counter++; } /* @@ -590,13 +701,12 @@ * Careful.. There are problems with IBM-designed IRQ13 behaviour. * Don't touch unless you *really* know how it works. * - * Must be called with kernel preemption disabled (in this case, - * local interrupts are disabled at the call-site in entry.S). + * Must be called with kernel preemption disabled (eg with local + * local interrupts as in the case of do_device_not_available). */ -asmlinkage void math_state_restore(void) +void math_state_restore(void) { - struct thread_info *thread = current_thread_info(); - struct task_struct *tsk = thread->task; + struct task_struct *tsk = current; if (!tsk_used_math(tsk)) { local_irq_enable(); @@ -613,9 +723,10 @@ local_irq_disable(); } - clts(); /* Allow maths ops (or we recurse) */ + __thread_fpu_begin(tsk); + __math_state_restore(tsk); - __math_state_restore(); + tsk->fpu_counter++; } EXPORT_SYMBOL_GPL(math_state_restore); @@ -640,29 +751,48 @@ } #ifdef CONFIG_X86_32 +/* + * The fixup code for errors in iret jumps to here (iret_exc). It loses + * the original trap number and erorr code. The bogus trap 32 and error + * code 0 are what the vanilla kernel delivers via: + * DO_ERROR_INFO(32, SIGSEGV, "iret exception", iret_error, ILL_BADSTK, 0, 1) + * + * NOTE: Because of the final "1" in the macro we need to enable interrupts. + * + * In case of a general protection fault in the iret instruction, we + * need to check for a lazy CS update for exec-shield. + */ dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code) { - siginfo_t info; + int ok; + int cpu; + local_irq_enable(); - info.si_signo = SIGILL; - info.si_errno = 0; - info.si_code = ILL_BADSTK; - info.si_addr = NULL; - if (notify_die(DIE_TRAP, "iret exception", - regs, error_code, 32, SIGILL) == NOTIFY_STOP) - return; - do_trap(32, SIGILL, "iret exception", regs, error_code, &info); + cpu = get_cpu(); + ok = check_lazy_exec_limit(cpu, regs, error_code); + put_cpu(); + + if (!ok && notify_die(DIE_TRAP, "iret exception", regs, + error_code, X86_TRAP_IRET, SIGSEGV) != NOTIFY_STOP) { + siginfo_t info; + info.si_signo = SIGSEGV; + info.si_errno = 0; + info.si_code = ILL_BADSTK; + info.si_addr = 0; + do_trap(X86_TRAP_IRET, SIGSEGV, "iret exception", + regs, error_code, &info); + } } #endif /* Set of traps needed for early debugging. */ void __init early_trap_init(void) { - set_intr_gate_ist(1, &debug, DEBUG_STACK); + set_intr_gate_ist(X86_TRAP_DB, &debug, DEBUG_STACK); /* int3 can be called from all */ - set_system_intr_gate_ist(3, &int3, DEBUG_STACK); - set_intr_gate(14, &page_fault); + set_system_intr_gate_ist(X86_TRAP_BP, &int3, DEBUG_STACK); + set_intr_gate(X86_TRAP_PF, &page_fault); load_idt(&idt_descr); } @@ -678,30 +808,30 @@ early_iounmap(p, 4); #endif - set_intr_gate(0, ÷_error); - set_intr_gate_ist(2, &nmi, NMI_STACK); + set_intr_gate(X86_TRAP_DE, ÷_error); + set_intr_gate_ist(X86_TRAP_NMI, &nmi, NMI_STACK); /* int4 can be called from all */ - set_system_intr_gate(4, &overflow); - set_intr_gate(5, &bounds); - set_intr_gate(6, &invalid_op); - set_intr_gate(7, &device_not_available); + set_system_intr_gate(X86_TRAP_OF, &overflow); + set_intr_gate(X86_TRAP_BR, &bounds); + set_intr_gate(X86_TRAP_UD, &invalid_op); + set_intr_gate(X86_TRAP_NM, &device_not_available); #ifdef CONFIG_X86_32 - set_task_gate(8, GDT_ENTRY_DOUBLEFAULT_TSS); + set_task_gate(X86_TRAP_DF, GDT_ENTRY_DOUBLEFAULT_TSS); #else - set_intr_gate_ist(8, &double_fault, DOUBLEFAULT_STACK); + set_intr_gate_ist(X86_TRAP_DF, &double_fault, DOUBLEFAULT_STACK); #endif - set_intr_gate(9, &coprocessor_segment_overrun); - set_intr_gate(10, &invalid_TSS); - set_intr_gate(11, &segment_not_present); - set_intr_gate_ist(12, &stack_segment, STACKFAULT_STACK); - set_intr_gate(13, &general_protection); - set_intr_gate(15, &spurious_interrupt_bug); - set_intr_gate(16, &coprocessor_error); - set_intr_gate(17, &alignment_check); + set_intr_gate(X86_TRAP_OLD_MF, &coprocessor_segment_overrun); + set_intr_gate(X86_TRAP_TS, &invalid_TSS); + set_intr_gate(X86_TRAP_NP, &segment_not_present); + set_intr_gate_ist(X86_TRAP_SS, &stack_segment, STACKFAULT_STACK); + set_intr_gate(X86_TRAP_GP, &general_protection); + set_intr_gate(X86_TRAP_SPURIOUS, &spurious_interrupt_bug); + set_intr_gate(X86_TRAP_MF, &coprocessor_error); + set_intr_gate(X86_TRAP_AC, &alignment_check); #ifdef CONFIG_X86_MCE - set_intr_gate_ist(18, &machine_check, MCE_STACK); + set_intr_gate_ist(X86_TRAP_MC, &machine_check, MCE_STACK); #endif - set_intr_gate(19, &simd_coprocessor_error); + set_intr_gate(X86_TRAP_XF, &simd_coprocessor_error); /* Reserve all the builtin and the syscall vector: */ for (i = 0; i < FIRST_EXTERNAL_VECTOR; i++) --- linux-3.2.0.orig/arch/x86/kernel/process_64.c +++ linux-3.2.0/arch/x86/kernel/process_64.c @@ -381,18 +381,9 @@ int cpu = smp_processor_id(); struct tss_struct *tss = &per_cpu(init_tss, cpu); unsigned fsindex, gsindex; - bool preload_fpu; + fpu_switch_t fpu; - /* - * If the task has used fpu the last 5 timeslices, just do a full - * restore of the math state immediately to avoid the trap; the - * chances of needing FPU soon are obviously high now - */ - preload_fpu = tsk_used_math(next_p) && next_p->fpu_counter > 5; - - /* we're going to use this soon, after a few expensive things */ - if (preload_fpu) - prefetch(next->fpu.state); + fpu = switch_fpu_prepare(prev_p, next_p); /* * Reload esp0, LDT and the page table pointer: @@ -422,13 +413,6 @@ load_TLS(next, cpu); - /* Must be after DS reload */ - __unlazy_fpu(prev_p); - - /* Make sure cpu is ready for new context */ - if (preload_fpu) - clts(); - /* * Leave lazy mode, flushing any hypercalls made here. * This must be done before restoring TLS segments so @@ -469,6 +453,8 @@ wrmsrl(MSR_KERNEL_GS_BASE, next->gs); prev->gsindex = gsindex; + switch_fpu_finish(next_p, fpu); + /* * Switch the PDA and FPU contexts. */ @@ -487,13 +473,6 @@ task_thread_info(prev_p)->flags & _TIF_WORK_CTXSW_PREV)) __switch_to_xtra(prev_p, next_p, tss); - /* - * Preload the FPU context, now that we've determined that the - * task is likely to be using it. - */ - if (preload_fpu) - __math_state_restore(); - return prev_p; } --- linux-3.2.0.orig/arch/x86/kernel/irqinit.c +++ linux-3.2.0/arch/x86/kernel/irqinit.c @@ -61,7 +61,7 @@ outb(0, 0xF0); if (ignore_fpu_irq || !boot_cpu_data.hard_math) return IRQ_NONE; - math_error(get_irq_regs(), 0, 16); + math_error(get_irq_regs(), 0, X86_TRAP_MF); return IRQ_HANDLED; } --- linux-3.2.0.orig/arch/x86/kernel/acpi/boot.c +++ linux-3.2.0/arch/x86/kernel/acpi/boot.c @@ -416,12 +416,14 @@ return 0; } - if (intsrc->source_irq == 0 && intsrc->global_irq == 2) { + if (intsrc->source_irq == 0) { if (acpi_skip_timer_override) { - printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n"); + printk(PREFIX "BIOS IRQ0 override ignored.\n"); return 0; } - if (acpi_fix_pin2_polarity && (intsrc->inti_flags & ACPI_MADT_POLARITY_MASK)) { + + if ((intsrc->global_irq == 2) && acpi_fix_pin2_polarity + && (intsrc->inti_flags & ACPI_MADT_POLARITY_MASK)) { intsrc->inti_flags &= ~ACPI_MADT_POLARITY_MASK; printk(PREFIX "BIOS IRQ0 pin2 override: forcing polarity to high active.\n"); } @@ -1327,17 +1329,12 @@ } /* - * Force ignoring BIOS IRQ0 pin2 override + * Force ignoring BIOS IRQ0 override */ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d) { - /* - * The ati_ixp4x0_rev() early PCI quirk should have set - * the acpi_skip_timer_override flag already: - */ if (!acpi_skip_timer_override) { - WARN(1, KERN_ERR "ati_ixp4x0 quirk not complete.\n"); - pr_notice("%s detected: Ignoring BIOS IRQ0 pin2 override\n", + pr_notice("%s detected: Ignoring BIOS IRQ0 override\n", d->ident); acpi_skip_timer_override = 1; } @@ -1431,7 +1428,7 @@ * is enabled. This input is incorrectly designated the * ISA IRQ 0 via an interrupt source override even though * it is wired to the output of the master 8259A and INTIN0 - * is not connected at all. Force ignoring BIOS IRQ0 pin2 + * is not connected at all. Force ignoring BIOS IRQ0 * override in that cases. */ { @@ -1466,6 +1463,14 @@ DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"), }, }, + { + .callback = dmi_ignore_irq0_timer_override, + .ident = "FUJITSU SIEMENS", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), + DMI_MATCH(DMI_PRODUCT_NAME, "AMILO PRO V2030"), + }, + }, {} }; --- linux-3.2.0.orig/arch/x86/kernel/acpi/sleep.c +++ linux-3.2.0/arch/x86/kernel/acpi/sleep.c @@ -115,6 +115,8 @@ acpi_realmode_flags |= 2; if (strncmp(str, "s3_beep", 7) == 0) acpi_realmode_flags |= 4; + if (strncmp(str, "s3_leds", 7) == 0) + acpi_realmode_flags |= 8; #ifdef CONFIG_HIBERNATION if (strncmp(str, "s4_nohwsig", 10) == 0) acpi_no_s4_hw_signature(); --- linux-3.2.0.orig/arch/x86/kernel/acpi/realmode/wakemain.c +++ linux-3.2.0/arch/x86/kernel/acpi/realmode/wakemain.c @@ -61,6 +61,30 @@ } } +#define I8042_STATUS_REG 0x64 +#define I8042_DATA_REG 0x60 +#define I8042_SET_LED_BITS 0xed +#define I8042_STR_IBF 0x02 + +static void flash_keyboard_leds(void) +{ + int i; + unsigned char leds = 7; + + /* Flash keyboard LEDs 3 times */ + for (i = 0; i < 6; i++) { + while (inb(I8042_STATUS_REG) & I8042_STR_IBF) + ; + outb(I8042_SET_LED_BITS, I8042_DATA_REG); + while (inb(I8042_STATUS_REG) & I8042_STR_IBF) + ; + outb(leds, I8042_DATA_REG); + leds ^= 7; + udelay(500000); + } +} + + void main(void) { /* Kill machine if structures are wrong */ @@ -78,4 +102,7 @@ probe_cards(0); set_mode(wakeup_header.video_mode); } + + if (wakeup_header.realmode_flags & 8) + flash_keyboard_leds(); } --- linux-3.2.0.orig/arch/x86/kernel/cpu/intel_cacheinfo.c +++ linux-3.2.0/arch/x86/kernel/cpu/intel_cacheinfo.c @@ -326,8 +326,7 @@ l3->indices = (max(max3(sc0, sc1, sc2), sc3) << 10) - 1; } -static void __cpuinit amd_init_l3_cache(struct _cpuid4_info_regs *this_leaf, - int index) +static void __cpuinit amd_init_l3_cache(struct _cpuid4_info_regs *this_leaf, int index) { int node; @@ -725,14 +724,16 @@ #define CPUID4_INFO_IDX(x, y) (&((per_cpu(ici_cpuid4_info, x))[y])) #ifdef CONFIG_SMP -static void __cpuinit cache_shared_cpu_map_setup(unsigned int cpu, int index) + +static int __cpuinit cache_shared_amd_cpu_map_setup(unsigned int cpu, int index) { - struct _cpuid4_info *this_leaf, *sibling_leaf; - unsigned long num_threads_sharing; - int index_msb, i, sibling; + struct _cpuid4_info *this_leaf; + int ret, i, sibling; struct cpuinfo_x86 *c = &cpu_data(cpu); - if ((index == 3) && (c->x86_vendor == X86_VENDOR_AMD)) { + ret = 0; + if (index == 3) { + ret = 1; for_each_cpu(i, cpu_llc_shared_mask(cpu)) { if (!per_cpu(ici_cpuid4_info, i)) continue; @@ -743,8 +744,35 @@ set_bit(sibling, this_leaf->shared_cpu_map); } } - return; + } else if ((c->x86 == 0x15) && ((index == 1) || (index == 2))) { + ret = 1; + for_each_cpu(i, cpu_sibling_mask(cpu)) { + if (!per_cpu(ici_cpuid4_info, i)) + continue; + this_leaf = CPUID4_INFO_IDX(i, index); + for_each_cpu(sibling, cpu_sibling_mask(cpu)) { + if (!cpu_online(sibling)) + continue; + set_bit(sibling, this_leaf->shared_cpu_map); + } + } } + + return ret; +} + +static void __cpuinit cache_shared_cpu_map_setup(unsigned int cpu, int index) +{ + struct _cpuid4_info *this_leaf, *sibling_leaf; + unsigned long num_threads_sharing; + int index_msb, i; + struct cpuinfo_x86 *c = &cpu_data(cpu); + + if (c->x86_vendor == X86_VENDOR_AMD) { + if (cache_shared_amd_cpu_map_setup(cpu, index)) + return; + } + this_leaf = CPUID4_INFO_IDX(cpu, index); num_threads_sharing = 1 + this_leaf->base.eax.split.num_threads_sharing; --- linux-3.2.0.orig/arch/x86/kernel/cpu/perf_event_intel_ds.c +++ linux-3.2.0/arch/x86/kernel/cpu/perf_event_intel_ds.c @@ -736,3 +736,13 @@ } } } + +void perf_restore_debug_store(void) +{ + struct debug_store *ds = __this_cpu_read(cpu_hw_events.ds); + + if (!x86_pmu.bts && !x86_pmu.pebs) + return; + + wrmsrl(MSR_IA32_DS_AREA, (unsigned long)ds); +} --- linux-3.2.0.orig/arch/x86/kernel/cpu/proc.c +++ linux-3.2.0/arch/x86/kernel/cpu/proc.c @@ -64,12 +64,10 @@ static int show_cpuinfo(struct seq_file *m, void *v) { struct cpuinfo_x86 *c = v; - unsigned int cpu = 0; + unsigned int cpu; int i; -#ifdef CONFIG_SMP cpu = c->cpu_index; -#endif seq_printf(m, "processor\t: %u\n" "vendor_id\t: %s\n" "cpu family\t: %d\n" --- linux-3.2.0.orig/arch/x86/kernel/cpu/perf_event_amd.c +++ linux-3.2.0/arch/x86/kernel/cpu/perf_event_amd.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -357,7 +358,9 @@ struct amd_nb *nb; int i, nb_id; - if (boot_cpu_data.x86_max_cores < 2) + cpuc->perf_ctr_virt_mask = AMD_PERFMON_EVENTSEL_HOSTONLY; + + if (boot_cpu_data.x86_max_cores < 2 || boot_cpu_data.x86 == 0x15) return; nb_id = amd_get_nb_id(cpu); @@ -470,6 +473,7 @@ * 0x023 DE PERF_CTL[2:0] * 0x02D LS PERF_CTL[3] * 0x02E LS PERF_CTL[3,0] + * 0x031 LS PERF_CTL[2:0] (**) * 0x043 CU PERF_CTL[2:0] * 0x045 CU PERF_CTL[2:0] * 0x046 CU PERF_CTL[2:0] @@ -483,10 +487,12 @@ * 0x0DD LS PERF_CTL[5:0] * 0x0DE LS PERF_CTL[5:0] * 0x0DF LS PERF_CTL[5:0] + * 0x1C0 EX PERF_CTL[5:3] * 0x1D6 EX PERF_CTL[5:0] * 0x1D8 EX PERF_CTL[5:0] * - * (*) depending on the umask all FPU counters may be used + * (*) depending on the umask all FPU counters may be used + * (**) only one unitmask enabled at a time */ static struct event_constraint amd_f15_PMC0 = EVENT_CONSTRAINT(0, 0x01, 0); @@ -536,6 +542,12 @@ return &amd_f15_PMC3; case 0x02E: return &amd_f15_PMC30; + case 0x031: + if (hweight_long(hwc->config & ARCH_PERFMON_EVENTSEL_UMASK) <= 1) + return &amd_f15_PMC20; + return &emptyconstraint; + case 0x1C0: + return &amd_f15_PMC53; default: return &amd_f15_PMC50; } @@ -587,9 +599,9 @@ .put_event_constraints = amd_put_event_constraints, .cpu_prepare = amd_pmu_cpu_prepare, - .cpu_starting = amd_pmu_cpu_starting, .cpu_dead = amd_pmu_cpu_dead, #endif + .cpu_starting = amd_pmu_cpu_starting, }; __init int amd_pmu_init(void) @@ -621,3 +633,33 @@ return 0; } + +void amd_pmu_enable_virt(void) +{ + struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); + + cpuc->perf_ctr_virt_mask = 0; + + /* Reload all events */ + x86_pmu_disable_all(); + x86_pmu_enable_all(0); +} +EXPORT_SYMBOL_GPL(amd_pmu_enable_virt); + +void amd_pmu_disable_virt(void) +{ + struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); + + /* + * We only mask out the Host-only bit so that host-only counting works + * when SVM is disabled. If someone sets up a guest-only counter when + * SVM is disabled the Guest-only bits still gets set and the counter + * will not count anything. + */ + cpuc->perf_ctr_virt_mask = AMD_PERFMON_EVENTSEL_HOSTONLY; + + /* Reload all events */ + x86_pmu_disable_all(); + x86_pmu_enable_all(0); +} +EXPORT_SYMBOL_GPL(amd_pmu_disable_virt); --- linux-3.2.0.orig/arch/x86/kernel/cpu/scattered.c +++ linux-3.2.0/arch/x86/kernel/cpu/scattered.c @@ -31,7 +31,7 @@ const struct cpuid_bit *cb; static const struct cpuid_bit __cpuinitconst cpuid_bits[] = { - { X86_FEATURE_DTS, CR_EAX, 0, 0x00000006, 0 }, + { X86_FEATURE_DTHERM, CR_EAX, 0, 0x00000006, 0 }, { X86_FEATURE_IDA, CR_EAX, 1, 0x00000006, 0 }, { X86_FEATURE_ARAT, CR_EAX, 2, 0x00000006, 0 }, { X86_FEATURE_PLN, CR_EAX, 4, 0x00000006, 0 }, --- linux-3.2.0.orig/arch/x86/kernel/cpu/perf_event_intel.c +++ linux-3.2.0/arch/x86/kernel/cpu/perf_event_intel.c @@ -130,8 +130,14 @@ }; static struct extra_reg intel_snb_extra_regs[] __read_mostly = { - INTEL_EVENT_EXTRA_REG(0xb7, MSR_OFFCORE_RSP_0, 0x3fffffffffull, RSP_0), - INTEL_EVENT_EXTRA_REG(0xbb, MSR_OFFCORE_RSP_1, 0x3fffffffffull, RSP_1), + INTEL_EVENT_EXTRA_REG(0xb7, MSR_OFFCORE_RSP_0, 0x3f807f8fffull, RSP_0), + INTEL_EVENT_EXTRA_REG(0xbb, MSR_OFFCORE_RSP_1, 0x3f807f8fffull, RSP_1), + EVENT_EXTRA_END +}; + +static struct extra_reg intel_snbep_extra_regs[] __read_mostly = { + INTEL_EVENT_EXTRA_REG(0xb7, MSR_OFFCORE_RSP_0, 0x3fffff8fffull, RSP_0), + INTEL_EVENT_EXTRA_REG(0xbb, MSR_OFFCORE_RSP_1, 0x3fffff8fffull, RSP_1), EVENT_EXTRA_END }; @@ -389,14 +395,15 @@ #define NHM_LOCAL_DRAM (1 << 14) #define NHM_NON_DRAM (1 << 15) -#define NHM_ALL_DRAM (NHM_REMOTE_DRAM|NHM_LOCAL_DRAM) +#define NHM_LOCAL (NHM_LOCAL_DRAM|NHM_REMOTE_CACHE_FWD) +#define NHM_REMOTE (NHM_REMOTE_DRAM) #define NHM_DMND_READ (NHM_DMND_DATA_RD) #define NHM_DMND_WRITE (NHM_DMND_RFO|NHM_DMND_WB) #define NHM_DMND_PREFETCH (NHM_PF_DATA_RD|NHM_PF_DATA_RFO) #define NHM_L3_HIT (NHM_UNCORE_HIT|NHM_OTHER_CORE_HIT_SNP|NHM_OTHER_CORE_HITM) -#define NHM_L3_MISS (NHM_NON_DRAM|NHM_ALL_DRAM|NHM_REMOTE_CACHE_FWD) +#define NHM_L3_MISS (NHM_NON_DRAM|NHM_LOCAL_DRAM|NHM_REMOTE_DRAM|NHM_REMOTE_CACHE_FWD) #define NHM_L3_ACCESS (NHM_L3_HIT|NHM_L3_MISS) static __initconst const u64 nehalem_hw_cache_extra_regs @@ -420,16 +427,16 @@ }, [ C(NODE) ] = { [ C(OP_READ) ] = { - [ C(RESULT_ACCESS) ] = NHM_DMND_READ|NHM_ALL_DRAM, - [ C(RESULT_MISS) ] = NHM_DMND_READ|NHM_REMOTE_DRAM, + [ C(RESULT_ACCESS) ] = NHM_DMND_READ|NHM_LOCAL|NHM_REMOTE, + [ C(RESULT_MISS) ] = NHM_DMND_READ|NHM_REMOTE, }, [ C(OP_WRITE) ] = { - [ C(RESULT_ACCESS) ] = NHM_DMND_WRITE|NHM_ALL_DRAM, - [ C(RESULT_MISS) ] = NHM_DMND_WRITE|NHM_REMOTE_DRAM, + [ C(RESULT_ACCESS) ] = NHM_DMND_WRITE|NHM_LOCAL|NHM_REMOTE, + [ C(RESULT_MISS) ] = NHM_DMND_WRITE|NHM_REMOTE, }, [ C(OP_PREFETCH) ] = { - [ C(RESULT_ACCESS) ] = NHM_DMND_PREFETCH|NHM_ALL_DRAM, - [ C(RESULT_MISS) ] = NHM_DMND_PREFETCH|NHM_REMOTE_DRAM, + [ C(RESULT_ACCESS) ] = NHM_DMND_PREFETCH|NHM_LOCAL|NHM_REMOTE, + [ C(RESULT_MISS) ] = NHM_DMND_PREFETCH|NHM_REMOTE, }, }, }; @@ -1710,7 +1717,10 @@ x86_pmu.event_constraints = intel_snb_event_constraints; x86_pmu.pebs_constraints = intel_snb_pebs_event_constraints; - x86_pmu.extra_regs = intel_snb_extra_regs; + if (boot_cpu_data.x86_model == 45) + x86_pmu.extra_regs = intel_snbep_extra_regs; + else + x86_pmu.extra_regs = intel_snb_extra_regs; /* all extra regs are per-cpu when HT is on */ x86_pmu.er_flags |= ERF_HAS_RSP_1; x86_pmu.er_flags |= ERF_NO_HT_SHARING; --- linux-3.2.0.orig/arch/x86/kernel/cpu/common.c +++ linux-3.2.0/arch/x86/kernel/cpu/common.c @@ -676,9 +676,7 @@ if (this_cpu->c_early_init) this_cpu->c_early_init(c); -#ifdef CONFIG_SMP c->cpu_index = 0; -#endif filter_cpuid_features(c, false); setup_smep(c); @@ -764,10 +762,7 @@ c->apicid = c->initial_apicid; # endif #endif - -#ifdef CONFIG_X86_HT c->phys_proc_id = c->initial_apicid; -#endif } setup_smep(c); @@ -844,6 +839,22 @@ /* Filter out anything that depends on CPUID levels we don't have */ filter_cpuid_features(c, true); +#ifdef CONFIG_X86_32 + /* + * emulation of NX with segment limits unfortunately means + * we have to disable the fast system calls, due to the way that + * sysexit clears the segment limits on return. + * If we have either disabled exec-shield on the boot command line, + * or we have NX, then we don't need to do this. + */ + if (!disable_nx) { +#ifdef CONFIG_X86_PAE + if (!test_cpu_cap(c, X86_FEATURE_NX)) +#endif + clear_cpu_cap(c, X86_FEATURE_SEP); + } +#endif + /* If the model name is still unset, do table lookup. */ if (!c->x86_model_id[0]) { const char *p; @@ -1141,6 +1152,15 @@ #endif /* ! CONFIG_KGDB */ /* + * Prints an error where the NUMA and configured core-number mismatch and the + * platform didn't override this to fix it up + */ +void __cpuinit x86_default_fixup_cpu_id(struct cpuinfo_x86 *c, int node) +{ + pr_err("NUMA core number %d differs from configured core number %d\n", node, c->phys_proc_id); +} + +/* * cpu_init() initializes state that is per-CPU. Some data is already * initialized (naturally) in the bootstrap process, such as the GDT * and IDT. We reload them nevertheless, this function acts as a --- linux-3.2.0.orig/arch/x86/kernel/cpu/mshyperv.c +++ linux-3.2.0/arch/x86/kernel/cpu/mshyperv.c @@ -68,7 +68,8 @@ printk(KERN_INFO "HyperV: features 0x%x, hints 0x%x\n", ms_hyperv.features, ms_hyperv.hints); - clocksource_register_hz(&hyperv_cs, NSEC_PER_SEC/100); + if (ms_hyperv.features & HV_X64_MSR_TIME_REF_COUNT_AVAILABLE) + clocksource_register_hz(&hyperv_cs, NSEC_PER_SEC/100); } const __refconst struct hypervisor_x86 x86_hyper_ms_hyperv = { --- linux-3.2.0.orig/arch/x86/kernel/cpu/perf_event.h +++ linux-3.2.0/arch/x86/kernel/cpu/perf_event.h @@ -146,7 +146,9 @@ /* * AMD specific bits */ - struct amd_nb *amd_nb; + struct amd_nb *amd_nb; + /* Inverted mask of bits to clear in the perf_ctr ctrl registers */ + u64 perf_ctr_virt_mask; void *kfree_on_online; }; @@ -372,9 +374,11 @@ static inline void __x86_pmu_enable_event(struct hw_perf_event *hwc, u64 enable_mask) { + u64 disable_mask = __this_cpu_read(cpu_hw_events.perf_ctr_virt_mask); + if (hwc->extra_reg.reg) wrmsrl(hwc->extra_reg.reg, hwc->extra_reg.config); - wrmsrl(hwc->config_base, hwc->config | enable_mask); + wrmsrl(hwc->config_base, (hwc->config | enable_mask) & ~disable_mask); } void x86_pmu_enable_all(int added); --- linux-3.2.0.orig/arch/x86/kernel/cpu/intel.c +++ linux-3.2.0/arch/x86/kernel/cpu/intel.c @@ -181,7 +181,6 @@ static void __cpuinit intel_smp_check(struct cpuinfo_x86 *c) { -#ifdef CONFIG_SMP /* calling is from identify_secondary_cpu() ? */ if (!c->cpu_index) return; @@ -198,7 +197,6 @@ WARN_ONCE(1, "WARNING: SMP operation may be unreliable" "with B stepping processors.\n"); } -#endif } static void __cpuinit intel_workarounds(struct cpuinfo_x86 *c) --- linux-3.2.0.orig/arch/x86/kernel/cpu/amd.c +++ linux-3.2.0/arch/x86/kernel/cpu/amd.c @@ -148,7 +148,6 @@ static void __cpuinit amd_k7_smp_check(struct cpuinfo_x86 *c) { -#ifdef CONFIG_SMP /* calling is from identify_secondary_cpu() ? */ if (!c->cpu_index) return; @@ -192,7 +191,6 @@ valid_k7: ; -#endif } static void __cpuinit init_amd_k7(struct cpuinfo_x86 *c) @@ -353,6 +351,13 @@ if (node == NUMA_NO_NODE) node = per_cpu(cpu_llc_id, cpu); + /* + * If core numbers are inconsistent, it's likely a multi-fabric platform, + * so invoke platform-specific handler + */ + if (c->phys_proc_id != node) + x86_cpuinit.fixup_cpu_id(c, node); + if (!node_online(node)) { /* * Two possibilities here: @@ -571,6 +576,56 @@ } } + /* re-enable TopologyExtensions if switched off by BIOS */ + if ((c->x86 == 0x15) && + (c->x86_model >= 0x10) && (c->x86_model <= 0x1f) && + !cpu_has(c, X86_FEATURE_TOPOEXT)) { + u64 val; + + if (!rdmsrl_amd_safe(0xc0011005, &val)) { + val |= 1ULL << 54; + wrmsrl_amd_safe(0xc0011005, val); + rdmsrl(0xc0011005, val); + if (val & (1ULL << 54)) { + set_cpu_cap(c, X86_FEATURE_TOPOEXT); + printk(KERN_INFO FW_INFO "CPU: Re-enabling " + "disabled Topology Extensions Support\n"); + } + } + } + + /* re-enable TopologyExtensions if switched off by BIOS */ + if ((c->x86 == 0x15) && + (c->x86_model >= 0x10) && (c->x86_model <= 0x1f) && + !cpu_has(c, X86_FEATURE_TOPOEXT)) { + u64 val; + + if (!rdmsrl_amd_safe(0xc0011005, &val)) { + val |= 1ULL << 54; + wrmsrl_amd_safe(0xc0011005, val); + rdmsrl(0xc0011005, val); + if (val & (1ULL << 54)) { + set_cpu_cap(c, X86_FEATURE_TOPOEXT); + printk(KERN_INFO FW_INFO "CPU: Re-enabling " + "disabled Topology Extensions Support\n"); + } + } + } + + /* + * The way access filter has a performance penalty on some workloads. + * Disable it on the affected CPUs. + */ + if ((c->x86 == 0x15) && + (c->x86_model >= 0x02) && (c->x86_model < 0x20)) { + u64 val; + + if (!rdmsrl_safe(0xc0011021, &val) && !(val & 0x1E)) { + val |= 0x1E; + checking_wrmsrl(0xc0011021, val); + } + } + cpu_detect_cache_sizes(c); /* Multi core CPU? */ --- linux-3.2.0.orig/arch/x86/kernel/cpu/powerflags.c +++ linux-3.2.0/arch/x86/kernel/cpu/powerflags.c @@ -16,5 +16,6 @@ "100mhzsteps", "hwpstate", "", /* tsc invariant mapped to constant_tsc */ - /* nothing */ + "cpb", /* core performance boost */ + "eff_freq_ro", /* Readonly aperf/mperf */ }; --- linux-3.2.0.orig/arch/x86/kernel/cpu/mcheck/therm_throt.c +++ linux-3.2.0/arch/x86/kernel/cpu/mcheck/therm_throt.c @@ -183,11 +183,6 @@ this_cpu, level == CORE_LEVEL ? "Core" : "Package", state->count); - else - printk(KERN_CRIT "CPU%d: %s power limit notification (total events = %lu)\n", - this_cpu, - level == CORE_LEVEL ? "Core" : "Package", - state->count); return 1; } if (old_event) { @@ -195,10 +190,6 @@ printk(KERN_INFO "CPU%d: %s temperature/speed normal\n", this_cpu, level == CORE_LEVEL ? "Core" : "Package"); - else - printk(KERN_INFO "CPU%d: %s power limit normal\n", - this_cpu, - level == CORE_LEVEL ? "Core" : "Package"); return 1; } @@ -221,6 +212,15 @@ return 1; } +static bool int_pln_enable; +static int __init int_pln_enable_setup(char *s) +{ + int_pln_enable = true; + + return 1; +} +__setup("int_pln_enable", int_pln_enable_setup); + #ifdef CONFIG_SYSFS /* Add/Remove thermal_throttle interface for CPU device: */ static __cpuinit int thermal_throttle_add_dev(struct sys_device *sys_dev, @@ -233,7 +233,7 @@ if (err) return err; - if (cpu_has(c, X86_FEATURE_PLN)) + if (cpu_has(c, X86_FEATURE_PLN) && int_pln_enable) err = sysfs_add_file_to_group(&sys_dev->kobj, &attr_core_power_limit_count.attr, thermal_attr_group.name); @@ -241,7 +241,7 @@ err = sysfs_add_file_to_group(&sys_dev->kobj, &attr_package_throttle_count.attr, thermal_attr_group.name); - if (cpu_has(c, X86_FEATURE_PLN)) + if (cpu_has(c, X86_FEATURE_PLN) && int_pln_enable) err = sysfs_add_file_to_group(&sys_dev->kobj, &attr_package_power_limit_count.attr, thermal_attr_group.name); @@ -323,17 +323,6 @@ #endif /* CONFIG_SYSFS */ -/* - * Set up the most two significant bit to notify mce log that this thermal - * event type. - * This is a temp solution. May be changed in the future with mce log - * infrasture. - */ -#define CORE_THROTTLED (0) -#define CORE_POWER_LIMIT ((__u64)1 << 62) -#define PACKAGE_THROTTLED ((__u64)2 << 62) -#define PACKAGE_POWER_LIMIT ((__u64)3 << 62) - static void notify_thresholds(__u64 msr_val) { /* check whether the interrupt handler is defined; @@ -363,27 +352,23 @@ if (therm_throt_process(msr_val & THERM_STATUS_PROCHOT, THERMAL_THROTTLING_EVENT, CORE_LEVEL) != 0) - mce_log_therm_throt_event(CORE_THROTTLED | msr_val); + mce_log_therm_throt_event(msr_val); - if (this_cpu_has(X86_FEATURE_PLN)) - if (therm_throt_process(msr_val & THERM_STATUS_POWER_LIMIT, + if (this_cpu_has(X86_FEATURE_PLN) && int_pln_enable) + therm_throt_process(msr_val & THERM_STATUS_POWER_LIMIT, POWER_LIMIT_EVENT, - CORE_LEVEL) != 0) - mce_log_therm_throt_event(CORE_POWER_LIMIT | msr_val); + CORE_LEVEL); if (this_cpu_has(X86_FEATURE_PTS)) { rdmsrl(MSR_IA32_PACKAGE_THERM_STATUS, msr_val); - if (therm_throt_process(msr_val & PACKAGE_THERM_STATUS_PROCHOT, + therm_throt_process(msr_val & PACKAGE_THERM_STATUS_PROCHOT, THERMAL_THROTTLING_EVENT, - PACKAGE_LEVEL) != 0) - mce_log_therm_throt_event(PACKAGE_THROTTLED | msr_val); - if (this_cpu_has(X86_FEATURE_PLN)) - if (therm_throt_process(msr_val & + PACKAGE_LEVEL); + if (this_cpu_has(X86_FEATURE_PLN) && int_pln_enable) + therm_throt_process(msr_val & PACKAGE_THERM_STATUS_POWER_LIMIT, POWER_LIMIT_EVENT, - PACKAGE_LEVEL) != 0) - mce_log_therm_throt_event(PACKAGE_POWER_LIMIT - | msr_val); + PACKAGE_LEVEL); } } @@ -487,9 +472,13 @@ apic_write(APIC_LVTTHMR, h); rdmsr(MSR_IA32_THERM_INTERRUPT, l, h); - if (cpu_has(c, X86_FEATURE_PLN)) + if (cpu_has(c, X86_FEATURE_PLN) && !int_pln_enable) + wrmsr(MSR_IA32_THERM_INTERRUPT, + (l | (THERM_INT_LOW_ENABLE + | THERM_INT_HIGH_ENABLE)) & ~THERM_INT_PLN_ENABLE, h); + else if (cpu_has(c, X86_FEATURE_PLN) && int_pln_enable) wrmsr(MSR_IA32_THERM_INTERRUPT, - l | (THERM_INT_LOW_ENABLE + l | (THERM_INT_LOW_ENABLE | THERM_INT_HIGH_ENABLE | THERM_INT_PLN_ENABLE), h); else wrmsr(MSR_IA32_THERM_INTERRUPT, @@ -497,9 +486,14 @@ if (cpu_has(c, X86_FEATURE_PTS)) { rdmsr(MSR_IA32_PACKAGE_THERM_INTERRUPT, l, h); - if (cpu_has(c, X86_FEATURE_PLN)) + if (cpu_has(c, X86_FEATURE_PLN) && !int_pln_enable) + wrmsr(MSR_IA32_PACKAGE_THERM_INTERRUPT, + (l | (PACKAGE_THERM_INT_LOW_ENABLE + | PACKAGE_THERM_INT_HIGH_ENABLE)) + & ~PACKAGE_THERM_INT_PLN_ENABLE, h); + else if (cpu_has(c, X86_FEATURE_PLN) && int_pln_enable) wrmsr(MSR_IA32_PACKAGE_THERM_INTERRUPT, - l | (PACKAGE_THERM_INT_LOW_ENABLE + l | (PACKAGE_THERM_INT_LOW_ENABLE | PACKAGE_THERM_INT_HIGH_ENABLE | PACKAGE_THERM_INT_PLN_ENABLE), h); else --- linux-3.2.0.orig/arch/x86/kernel/cpu/mcheck/mce_amd.c +++ linux-3.2.0/arch/x86/kernel/cpu/mcheck/mce_amd.c @@ -52,6 +52,7 @@ unsigned int cpu; u32 address; u16 interrupt_enable; + bool interrupt_capable; u16 threshold_limit; struct kobject kobj; struct list_head miscj; @@ -64,11 +65,9 @@ }; static DEFINE_PER_CPU(struct threshold_bank * [NR_BANKS], threshold_banks); -#ifdef CONFIG_SMP static unsigned char shared_bank[NR_BANKS] = { 0, 0, 0, 0, 1 }; -#endif static DEFINE_PER_CPU(unsigned char, bank_map); /* see which banks are on */ @@ -86,6 +85,21 @@ u16 old_limit; }; +static bool lvt_interrupt_supported(unsigned int bank, u32 msr_high_bits) +{ + /* + * bank 4 supports APIC LVT interrupts implicitly since forever. + */ + if (bank == 4) + return true; + + /* + * IntP: interrupt present; if this bit is set, the thresholding + * bank can generate APIC LVT interrupts + */ + return msr_high_bits & BIT(28); +} + static int lvt_off_valid(struct threshold_block *b, int apic, u32 lo, u32 hi) { int msr = (hi & MASK_LVTOFF_HI) >> 20; @@ -107,8 +121,10 @@ return 1; }; -/* must be called with correct cpu affinity */ -/* Called via smp_call_function_single() */ +/* + * Called via smp_call_function_single(), must be called with correct + * cpu affinity. + */ static void threshold_restart_bank(void *_tr) { struct thresh_restart *tr = _tr; @@ -131,6 +147,12 @@ (new_count & THRESHOLD_MAX); } + /* clear IntType */ + hi &= ~MASK_INT_TYPE_HI; + + if (!tr->b->interrupt_capable) + goto done; + if (tr->set_lvt_off) { if (lvt_off_valid(tr->b, tr->lvt_off, lo, hi)) { /* set new lvt offset */ @@ -139,9 +161,10 @@ } } - tr->b->interrupt_enable ? - (hi = (hi & ~MASK_INT_TYPE_HI) | INT_TYPE_APIC) : - (hi &= ~MASK_INT_TYPE_HI); + if (tr->b->interrupt_enable) + hi |= INT_TYPE_APIC; + + done: hi |= MASK_COUNT_EN_HI; wrmsr(tr->b->address, lo, hi); @@ -202,18 +225,21 @@ if (!block) per_cpu(bank_map, cpu) |= (1 << bank); -#ifdef CONFIG_SMP + if (shared_bank[bank] && c->cpu_core_id) break; -#endif - offset = setup_APIC_mce(offset, - (high & MASK_LVTOFF_HI) >> 20); memset(&b, 0, sizeof(b)); - b.cpu = cpu; - b.bank = bank; - b.block = block; - b.address = address; + b.cpu = cpu; + b.bank = bank; + b.block = block; + b.address = address; + b.interrupt_capable = lvt_interrupt_supported(bank, high); + + if (b.interrupt_capable) { + int new = (high & MASK_LVTOFF_HI) >> 20; + offset = setup_APIC_mce(offset, new); + } mce_threshold_block_init(&b, offset); mce_threshold_vector = amd_threshold_interrupt; @@ -313,6 +339,9 @@ struct thresh_restart tr; unsigned long new; + if (!b->interrupt_capable) + return -EINVAL; + if (strict_strtoul(buf, 0, &new) < 0) return -EINVAL; @@ -471,6 +500,7 @@ b->cpu = cpu; b->address = address; b->interrupt_enable = 0; + b->interrupt_capable = lvt_interrupt_supported(bank, high); b->threshold_limit = THRESHOLD_MAX; INIT_LIST_HEAD(&b->miscj); --- linux-3.2.0.orig/arch/x86/kernel/cpu/mcheck/Makefile +++ linux-3.2.0/arch/x86/kernel/cpu/mcheck/Makefile @@ -2,6 +2,7 @@ obj-$(CONFIG_X86_ANCIENT_MCE) += winchip.o p5.o obj-$(CONFIG_X86_MCE_INTEL) += mce_intel.o +obj-$(CONFIG_X86_MCE_XEON75XX) += mce-xeon75xx.o obj-$(CONFIG_X86_MCE_AMD) += mce_amd.o obj-$(CONFIG_X86_MCE_THRESHOLD) += threshold.o obj-$(CONFIG_X86_MCE_INJECT) += mce-inject.o --- linux-3.2.0.orig/arch/x86/kernel/cpu/mcheck/mce-xeon75xx.c +++ linux-3.2.0/arch/x86/kernel/cpu/mcheck/mce-xeon75xx.c @@ -0,0 +1,427 @@ +/* + * Xeon 7500 series specific machine check support code. + * Copyright 2009, 2010 Intel Corporation + * Author: Andi Kleen + * + * 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. + * + * Implement Xeon 7500 series specific code to retrieve the physical address + * and DIMM information for corrected memory errors. + * + * Interface: mce->aux0/aux1 is mapped to a struct pfa_dimm with pad + * redefined to DIMM valid bits. Consumers check CPUID and bank and + * then interpret aux0/aux1 + */ + +/* #define DEBUG 1 */ /* disable for production */ +#define pr_fmt(x) "MCE: " x + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "mce-internal.h" + +#define PFA_SIG "$PFA" +#define PFA_SIG_LEN 4 + +/* DIMM description */ +struct aux_pfa_dimm { + u8 fbd_channel_id; + u8 ddr_channel_id; + u8 ddr_dimm_id; + u8 ddr_rank_id; + u8 ddr_dimm_bank_id; + u8 ddr_dimm_row_id; + u8 ddr_dimm_column_id; + u8 valid; +} __attribute__((packed)); + +struct pfa_dimm { + u8 fbd_channel_id; + u8 ddr_channel_id; + u8 ddr_dimm_id; + u8 ddr_rank_id; + u8 ddr_dimm_bank_id; + u32 ddr_dimm_row_id; + u32 ddr_dimm_column_id; +} __attribute__((packed)); + +/* Memory translation table in memory. */ +struct pfa_table { + u8 sig[PFA_SIG_LEN]; /* Signature: '$PFA' */ + u16 len; /* total length */ + u16 revision; /* 0x11 */ + u8 checksum; /* 8bit sum to zero */ + u8 db_value; /* mailbox port command value */ + u8 db_port; /* mailbox port */ + /* end of header; end of checksum */ + u8 command; /* input command */ + u32 valid; /* valid input/output bits */ + u16 status; /* output status */ + u8 socket_id; /* input socket id*/ + u8 bank_id; /* input MCE bank id */ + u32 pad1; + u64 mbox_address; + u64 physical_addr; /* physical address */ + struct pfa_dimm dimm[2]; + /* + * topology information follows: not used for now. + */ +} __attribute__((packed)); + +/* DIMM valid bits in valid: DIMM0: 8..12; DIMM1 16..20 */ +#define DIMM_VALID_BITS(val, num) (((val) >> (4 + (num) * 8)) & DIMM_VALID_ALL) +#define DIMM_SET_VALID(val, num) ((val) << (4 + (num) * 8)) + +enum { + MCE_BANK_MBOX0 = 8, + MCE_BANK_MBOX1 = 9, + + PFA_REVISION = 0x11, /* v1.1 */ + + /* Status bits for valid field */ + PFA_VALID_MA = (1 << 0), + PFA_VALID_SOCKETID = (1 << 1), + PFA_VALID_BANKID = (1 << 2), + PFA_VALID_PA = (1 << 3), + + /* DIMM valid bits in valid */ + /* use with DIMM_VALID_BITS/DIMM_SET_VALID for pfa->valid */ + DIMM_VALID_FBD_CHAN = (1 << 0), + DIMM_VALID_DDR_CHAN = (1 << 1), + DIMM_VALID_DDR_DIMM = (1 << 2), + DIMM_VALID_DDR_RANK = (1 << 3), + DIMM_VALID_DIMM_BANK = (1 << 4), + DIMM_VALID_DIMM_ROW = (1 << 5), + DIMM_VALID_DIMM_COLUMN = (1 << 6), + DIMM_VALID_ALL = 0x7f, + + PFA_DIMM_VALID_MASK = DIMM_SET_VALID(DIMM_VALID_ALL, 0) + | DIMM_SET_VALID(DIMM_VALID_ALL, 1), + + /* Values for status field */ + PFA_STATUS_SUCCESS = 0, + PFA_STATUS_SOCKET_INVALID = (1 << 1), + PFA_STATUS_MBOX_INVALID = (1 << 2), + PFA_STATUS_MA_INVALID = (1 << 3), + PFA_STATUS_PA_INVALID = (1 << 4), + + /* Values for command field */ + PFA_CMD_GET_MEM_CORR_ERR_PA = 0, + PFA_CMD_PA_TO_DIMM_ADDR = 1, + PFA_CMD_DIMM_TO_PA = 2, + PFA_CMD_GET_TOPOLOGY = 3, + + /* PCI device IDs and the base register */ + ICH_PFA_CFG = 0x8c, /* SCRATCH4 */ + PCI_DEVICE_ID_BXB_ICH_LEGACY0 = 0x3422, +}; + +static struct pfa_table *pfa_table __read_mostly; +static int memerr_max_conv_rate __read_mostly = 100; +static int memerr_min_interval __read_mostly = 500; +static int pfa_lost; /* for diagnosis */ + +enum { + RATE_LIMIT_PERIOD = USEC_PER_SEC, /* in us; period of rate limit */ +}; + +module_param(memerr_max_conv_rate, int, 0644); +MODULE_PARM_DESC(memerr_max_conv_rate, + "Maximum number of memory error conversions each second; 0 to disable"); +module_param(memerr_min_interval, int, 0644); +MODULE_PARM_DESC(memerr_min_interval, + "Minimum time delta between two memory conversions; in us; default 500"); + +static int notest; +static int nocsum; +module_param(notest, int, 0); +module_param(nocsum, int, 0); + +static u64 encode_dimm(struct pfa_dimm *d, u8 valid) +{ + union { + struct aux_pfa_dimm d; + u64 v; + } p; + + BUILD_BUG_ON(sizeof(struct aux_pfa_dimm) != sizeof(u64)); + p.d.fbd_channel_id = d->fbd_channel_id; + p.d.ddr_channel_id = d->ddr_channel_id; + p.d.ddr_dimm_id = d->ddr_dimm_id; + p.d.ddr_rank_id = d->ddr_rank_id; + p.d.ddr_dimm_bank_id = d->ddr_dimm_bank_id; + p.d.ddr_dimm_row_id = d->ddr_dimm_row_id; + if (p.d.ddr_dimm_row_id != d->ddr_dimm_row_id) /* truncated? */ + valid &= ~DIMM_VALID_DIMM_ROW; + p.d.ddr_dimm_column_id = d->ddr_dimm_column_id; + if (p.d.ddr_dimm_column_id != d->ddr_dimm_column_id) + valid &= ~DIMM_VALID_DIMM_COLUMN; + p.d.valid = valid; + pr_debug("PFA fbd_ch %u ddr_ch %u dimm %u rank %u bank %u valid %x\n", + d->fbd_channel_id, + d->ddr_channel_id, + d->ddr_dimm_id, + d->ddr_rank_id, + d->ddr_dimm_bank_id, + valid); + return p.v; +} + +static u8 csum(u8 *table, u16 len) +{ + u8 sum = 0; + int i; + for (i = 0; i < len; i++) + sum += *table++; + return sum; +} + +/* + * Execute a command through the mailbox interface. + */ +static int +pfa_command(unsigned bank, unsigned socketid, unsigned command, unsigned valid) +{ + pfa_table->bank_id = bank; + pfa_table->socket_id = socketid; + pfa_table->valid = valid | PFA_VALID_SOCKETID; + pfa_table->command = command; + + outb(pfa_table->db_value, pfa_table->db_port); + + mb(); /* Reread fields after they got changed */ + + if (pfa_table->status != PFA_STATUS_SUCCESS) { + pr_debug("Memory PFA command %d failed: socket:%d bank:%d status:%x\n", + command, socketid, bank, pfa_table->status); + return -pfa_table->status; + } + return 0; +} + +/* + * Retrieve physical address and DIMMs. + */ +static int translate_memory_error(struct mce *m) +{ + struct pfa_table *pfa = pfa_table; + u64 status; + int ret; + u32 valid; + int cpu = smp_processor_id(); + + /* Make sure our structures match the specification */ + BUILD_BUG_ON(offsetof(struct pfa_table, physical_addr) != 0x20); + BUILD_BUG_ON(offsetof(struct pfa_table, status) != 0x10); + BUILD_BUG_ON(offsetof(struct pfa_table, physical_addr) != 0x20); + BUILD_BUG_ON(offsetof(struct pfa_table, dimm[1].ddr_dimm_column_id) != + 0x3e); + + /* Ask for PA/DIMMs of last error */ + if (pfa_command(m->bank, m->socketid, + PFA_CMD_GET_MEM_CORR_ERR_PA, PFA_VALID_BANKID) < 0) + return -1; + + /* + * Recheck machine check bank. If the overflow bit was set + * there was a race. Don't use the information in this case. + */ + rdmsrl(MSR_IA32_MCx_STATUS(m->bank), status); + if (status & MCI_STATUS_OVER) { + pr_debug("%d: overflow race on bank %d\n", cpu, m->bank); + return -1; + } + + ret = -1; + valid = pfa->valid; + if (valid & PFA_VALID_PA) { + m->status |= MCI_STATUS_ADDRV; + m->addr = pfa_table->physical_addr; + pr_debug("%d: got physical address %llx valid %x\n", + cpu, m->addr, valid); + ret = 0; + } + + /* When DIMM information was supplied pass it out */ + if (valid & PFA_DIMM_VALID_MASK) { + m->aux0 = encode_dimm(&pfa->dimm[0], DIMM_VALID_BITS(valid, 0)); + m->aux1 = encode_dimm(&pfa->dimm[1], DIMM_VALID_BITS(valid, 1)); + ret = 0; + } + + return ret; +} + +/* + * Xeon 75xx specific mce poll method to retrieve the physical address + * and DIMM information. + */ +static void xeon75xx_mce_poll(struct mce *m) +{ + static DEFINE_SPINLOCK(convert_lock); /* Protect table and static */ + static unsigned long cperm; + static ktime_t last, last_int; + unsigned long flags; + ktime_t now; + s64 delta; + + /* Memory error? */ + if (m->bank != MCE_BANK_MBOX0 && m->bank != MCE_BANK_MBOX1) + return; + if (m->status & MCI_STATUS_OVER) + return; + if (memerr_max_conv_rate == 0) + return; + + spin_lock_irqsave(&convert_lock, flags); + /* + * Rate limit conversions. The conversion takes some time, + * but it's not good to use all the CPU time during a error + * flood. + * Enforce maximum number per second and minimum interval. + * The ktime call should use TSC on this machine and be fast. + */ + now = ktime_get(); + delta = ktime_us_delta(now, last); + if (delta >= RATE_LIMIT_PERIOD) { + cperm = 0; + last = now; + } + if (ktime_us_delta(now, last_int) >= memerr_min_interval && + ++cperm <= memerr_max_conv_rate) { + if (translate_memory_error(m) < 0) { + /* On error stop converting for the next second */ + cperm = memerr_max_conv_rate; + pr_debug("PFA translation failed\n"); + } + } else + pfa_lost++; + last_int = now; + spin_unlock_irqrestore(&convert_lock, flags); +} + +static struct pci_device_id bxb_mce_pciids[] = { + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_BXB_ICH_LEGACY0) }, + {} +}; + +static int __init xeon75xx_mce_init(void) +{ + u32 addr = 0; + struct pci_dev *dev; + + if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL || + boot_cpu_data.x86 != 6 || + boot_cpu_data.x86_model != 0x2e) + return -ENODEV; + + /* + * Get table address from register in IOH. + * This just looks up the device, because we don't want to "own" it. + */ + dev = NULL; + while ((dev = pci_get_device(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, dev)) + != NULL) { + if (!pci_match_id(bxb_mce_pciids, dev)) + continue; + pci_read_config_dword(dev, ICH_PFA_CFG, &addr); + if (addr) + break; + } + pci_dev_put(dev); + if (!addr) + return -ENODEV; + + if (!e820_all_mapped(addr, addr + PAGE_SIZE, E820_RESERVED)) { + pr_info("PFA table at %x not e820 reserved\n", addr); + return -ENODEV; + } + + pfa_table = (__force struct pfa_table *)ioremap_cache(addr, PAGE_SIZE); + if (!pfa_table) { + pr_err("Cannot map PFA table at %x\n", addr); + return -EIO; + } + + if (memcmp(&pfa_table->sig, PFA_SIG, PFA_SIG_LEN) || + pfa_table->len < sizeof(struct pfa_table) || + /* assume newer versions are compatible */ + pfa_table->revision < PFA_REVISION) { + pr_info("PFA table at %x invalid\n", addr); + goto error_unmap; + } + + if (!nocsum && csum((u8 *)pfa_table, + offsetof(struct pfa_table, command))) { + pr_info("PFA table at %x length %u has invalid checksum\n", + addr, pfa_table->len); + goto error_unmap; + } + + /* Not strictly needed today */ + if (pfa_table->len > PAGE_SIZE) { + unsigned len = roundup(pfa_table->len, PAGE_SIZE); + iounmap(pfa_table); + pfa_table = (__force void *)ioremap_cache(addr, len); + if (!pfa_table) { + pr_err("Cannot remap %u bytes PFA table at %x\n", + len, addr); + return -EIO; + } + } + + if (!notest) { + int status = pfa_command(0, 0, PFA_CMD_GET_TOPOLOGY, 0); + if (status < 0) { + pr_err("Test of PFA table failed: %x\n", -status); + goto error_unmap; + } + } + + pr_info("Found Xeon75xx PFA memory error translation table at %x\n", + addr); + mb(); + mce_cpu_specific_poll = xeon75xx_mce_poll; + return 0; + +error_unmap: + iounmap(pfa_table); + return -ENODEV; +} + +MODULE_DEVICE_TABLE(pci, bxb_mce_pciids); +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Andi Kleen"); +MODULE_DESCRIPTION("Intel Xeon 75xx specific DIMM error reporting"); + +#ifdef CONFIG_MODULE +static void __exit xeon75xx_mce_exit(void) +{ + mce_cpu_specific_poll = NULL; + wmb(); + /* Wait for all machine checks to finish before really unloading */ + synchronize_rcu(); + iounmap(pfa_table); +} + +module_init(xeon75xx_mce_init); +module_exit(xeon75xx_mce_exit); +#else +/* When built-in run as soon as the PCI subsystem is up */ +fs_initcall(xeon75xx_mce_init); +#endif --- linux-3.2.0.orig/arch/x86/kernel/cpu/mcheck/mce-severity.c +++ linux-3.2.0/arch/x86/kernel/cpu/mcheck/mce-severity.c @@ -145,15 +145,19 @@ }; /* - * If the EIPV bit is set, it means the saved IP is the - * instruction which caused the MCE. + * If mcgstatus indicated that ip/cs on the stack were + * no good, then "m->cs" will be zero and we will have + * to assume the worst case (IN_KERNEL) as we actually + * have no idea what we were executing when the machine + * check hit. + * If we do have a good "m->cs" (or a faked one in the + * case we were executing in VM86 mode) we can use it to + * distinguish an exception taken in user from from one + * taken in the kernel. */ static int error_context(struct mce *m) { - if (m->mcgstatus & MCG_STATUS_EIPV) - return (m->ip && (m->cs & 3) == 3) ? IN_USER : IN_KERNEL; - /* Unknown, assume kernel */ - return IN_KERNEL; + return ((m->cs & 3) == 3) ? IN_USER : IN_KERNEL; } int mce_severity(struct mce *m, int tolerant, char **msg) --- linux-3.2.0.orig/arch/x86/kernel/cpu/mcheck/mce-internal.h +++ linux-3.2.0/arch/x86/kernel/cpu/mcheck/mce-internal.h @@ -28,6 +28,8 @@ extern struct mce_bank *mce_banks; +extern void (*mce_cpu_specific_poll)(struct mce *); + #ifdef CONFIG_ACPI_APEI int apei_write_mce(struct mce *m); ssize_t apei_read_mce(struct mce *m, u64 *record_id); --- linux-3.2.0.orig/arch/x86/kernel/cpu/mcheck/mce.c +++ linux-3.2.0/arch/x86/kernel/cpu/mcheck/mce.c @@ -102,6 +102,9 @@ ATOMIC_NOTIFIER_HEAD(x86_mce_decoder_chain); EXPORT_SYMBOL_GPL(x86_mce_decoder_chain); +void (*mce_cpu_specific_poll)(struct mce *); +EXPORT_SYMBOL_GPL(mce_cpu_specific_poll); + /* MCA banks polled by the period polling timer for corrected events */ DEFINE_PER_CPU(mce_banks_t, mce_poll_banks) = { [0 ... BITS_TO_LONGS(MAX_NR_BANKS)-1] = ~0UL @@ -119,9 +122,7 @@ m->time = get_seconds(); m->cpuvendor = boot_cpu_data.x86_vendor; m->cpuid = cpuid_eax(1); -#ifdef CONFIG_SMP m->socketid = cpu_data(m->extcpu).phys_proc_id; -#endif m->apicid = cpu_data(m->extcpu).initial_apicid; rdmsrl(MSR_IA32_MCG_CAP, m->mcgcap); } @@ -371,6 +372,11 @@ wrmsrl(msr, v); } +static int under_injection(void) +{ + return __get_cpu_var(injectm).finished; +} + /* * Collect all global (w.r.t. this processor) status about this machine * check into our "mce" struct so that we can use it later to assess @@ -389,6 +395,14 @@ if (m->mcgstatus & (MCG_STATUS_RIPV|MCG_STATUS_EIPV)) { m->ip = regs->ip; m->cs = regs->cs; + + /* + * When in VM86 mode make the cs look like ring 3 + * always. This is a lie, but it's better than passing + * the additional vm86 bit around everywhere. + */ + if (v8086_mode(regs)) + m->cs |= 3; } /* Use accurate RIP reporting if available. */ if (rip_msr) @@ -549,6 +563,10 @@ if (!(flags & MCP_TIMESTAMP)) m.tsc = 0; + + if (mce_cpu_specific_poll && !under_injection() && !mce_dont_log_ce) + mce_cpu_specific_poll(&m); + /* * Don't get the IP here because it's unlikely to * have anything to do with the actual error location. --- linux-3.2.0.orig/arch/x86/kernel/apic/apic.c +++ linux-3.2.0/arch/x86/kernel/apic/apic.c @@ -1577,9 +1577,11 @@ mp_lapic_addr = APIC_DEFAULT_PHYS_BASE; /* The BIOS may have set up the APIC at some other address */ - rdmsr(MSR_IA32_APICBASE, l, h); - if (l & MSR_IA32_APICBASE_ENABLE) - mp_lapic_addr = l & MSR_IA32_APICBASE_BASE; + if (boot_cpu_data.x86 >= 6) { + rdmsr(MSR_IA32_APICBASE, l, h); + if (l & MSR_IA32_APICBASE_ENABLE) + mp_lapic_addr = l & MSR_IA32_APICBASE_BASE; + } pr_info("Found and enabled local APIC!\n"); return 0; @@ -1597,13 +1599,15 @@ * MSR. This can only be done in software for Intel P6 or later * and AMD K7 (Model > 1) or later. */ - rdmsr(MSR_IA32_APICBASE, l, h); - if (!(l & MSR_IA32_APICBASE_ENABLE)) { - pr_info("Local APIC disabled by BIOS -- reenabling.\n"); - l &= ~MSR_IA32_APICBASE_BASE; - l |= MSR_IA32_APICBASE_ENABLE | addr; - wrmsr(MSR_IA32_APICBASE, l, h); - enabled_via_apicbase = 1; + if (boot_cpu_data.x86 >= 6) { + rdmsr(MSR_IA32_APICBASE, l, h); + if (!(l & MSR_IA32_APICBASE_ENABLE)) { + pr_info("Local APIC disabled by BIOS -- reenabling.\n"); + l &= ~MSR_IA32_APICBASE_BASE; + l |= MSR_IA32_APICBASE_ENABLE | addr; + wrmsr(MSR_IA32_APICBASE, l, h); + enabled_via_apicbase = 1; + } } return apic_verify(); } @@ -2149,10 +2153,12 @@ * FIXME! This will be wrong if we ever support suspend on * SMP! We'll need to do this as part of the CPU restore! */ - rdmsr(MSR_IA32_APICBASE, l, h); - l &= ~MSR_IA32_APICBASE_BASE; - l |= MSR_IA32_APICBASE_ENABLE | mp_lapic_addr; - wrmsr(MSR_IA32_APICBASE, l, h); + if (boot_cpu_data.x86 >= 6) { + rdmsr(MSR_IA32_APICBASE, l, h); + l &= ~MSR_IA32_APICBASE_BASE; + l |= MSR_IA32_APICBASE_ENABLE | mp_lapic_addr; + wrmsr(MSR_IA32_APICBASE, l, h); + } } maxlvt = lapic_get_maxlvt(); --- linux-3.2.0.orig/arch/x86/kernel/apic/apic_flat_64.c +++ linux-3.2.0/arch/x86/kernel/apic/apic_flat_64.c @@ -62,7 +62,7 @@ * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel * document number 292116). So here it goes... */ -static void flat_init_apic_ldr(void) +void flat_init_apic_ldr(void) { unsigned long val; unsigned long num, id; --- linux-3.2.0.orig/arch/x86/kernel/apic/Makefile +++ linux-3.2.0/arch/x86/kernel/apic/Makefile @@ -10,6 +10,7 @@ ifeq ($(CONFIG_X86_64),y) # APIC probe will depend on the listing order here +obj-$(CONFIG_X86_NUMACHIP) += apic_numachip.o obj-$(CONFIG_X86_UV) += x2apic_uv_x.o obj-$(CONFIG_X86_X2APIC) += x2apic_phys.o obj-$(CONFIG_X86_X2APIC) += x2apic_cluster.o --- linux-3.2.0.orig/arch/x86/kernel/apic/apic_numachip.c +++ linux-3.2.0/arch/x86/kernel/apic/apic_numachip.c @@ -0,0 +1,294 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Numascale NumaConnect-Specific APIC Code + * + * Copyright (C) 2011 Numascale AS. All rights reserved. + * + * Send feedback to + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +static int numachip_system __read_mostly; + +static struct apic apic_numachip __read_mostly; + +static unsigned int get_apic_id(unsigned long x) +{ + unsigned long value; + unsigned int id; + + rdmsrl(MSR_FAM10H_NODE_ID, value); + id = ((x >> 24) & 0xffU) | ((value << 2) & 0x3f00U); + + return id; +} + +static unsigned long set_apic_id(unsigned int id) +{ + unsigned long x; + + x = ((id & 0xffU) << 24); + return x; +} + +static unsigned int read_xapic_id(void) +{ + return get_apic_id(apic_read(APIC_ID)); +} + +static int numachip_apic_id_registered(void) +{ + return physid_isset(read_xapic_id(), phys_cpu_present_map); +} + +static int numachip_phys_pkg_id(int initial_apic_id, int index_msb) +{ + return initial_apic_id >> index_msb; +} + +static const struct cpumask *numachip_target_cpus(void) +{ + return cpu_online_mask; +} + +static void numachip_vector_allocation_domain(int cpu, struct cpumask *retmask) +{ + cpumask_clear(retmask); + cpumask_set_cpu(cpu, retmask); +} + +static int __cpuinit numachip_wakeup_secondary(int phys_apicid, unsigned long start_rip) +{ + union numachip_csr_g3_ext_irq_gen int_gen; + + int_gen.s._destination_apic_id = phys_apicid; + int_gen.s._vector = 0; + int_gen.s._msgtype = APIC_DM_INIT >> 8; + int_gen.s._index = 0; + + write_lcsr(CSR_G3_EXT_IRQ_GEN, int_gen.v); + + int_gen.s._msgtype = APIC_DM_STARTUP >> 8; + int_gen.s._vector = start_rip >> 12; + + write_lcsr(CSR_G3_EXT_IRQ_GEN, int_gen.v); + + atomic_set(&init_deasserted, 1); + return 0; +} + +static void numachip_send_IPI_one(int cpu, int vector) +{ + union numachip_csr_g3_ext_irq_gen int_gen; + int apicid = per_cpu(x86_cpu_to_apicid, cpu); + + int_gen.s._destination_apic_id = apicid; + int_gen.s._vector = vector; + int_gen.s._msgtype = (vector == NMI_VECTOR ? APIC_DM_NMI : APIC_DM_FIXED) >> 8; + int_gen.s._index = 0; + + write_lcsr(CSR_G3_EXT_IRQ_GEN, int_gen.v); +} + +static void numachip_send_IPI_mask(const struct cpumask *mask, int vector) +{ + unsigned int cpu; + + for_each_cpu(cpu, mask) + numachip_send_IPI_one(cpu, vector); +} + +static void numachip_send_IPI_mask_allbutself(const struct cpumask *mask, + int vector) +{ + unsigned int this_cpu = smp_processor_id(); + unsigned int cpu; + + for_each_cpu(cpu, mask) { + if (cpu != this_cpu) + numachip_send_IPI_one(cpu, vector); + } +} + +static void numachip_send_IPI_allbutself(int vector) +{ + unsigned int this_cpu = smp_processor_id(); + unsigned int cpu; + + for_each_online_cpu(cpu) { + if (cpu != this_cpu) + numachip_send_IPI_one(cpu, vector); + } +} + +static void numachip_send_IPI_all(int vector) +{ + numachip_send_IPI_mask(cpu_online_mask, vector); +} + +static void numachip_send_IPI_self(int vector) +{ + __default_send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL); +} + +static unsigned int numachip_cpu_mask_to_apicid(const struct cpumask *cpumask) +{ + int cpu; + + /* + * We're using fixed IRQ delivery, can only return one phys APIC ID. + * May as well be the first. + */ + cpu = cpumask_first(cpumask); + if (likely((unsigned)cpu < nr_cpu_ids)) + return per_cpu(x86_cpu_to_apicid, cpu); + + return BAD_APICID; +} + +static unsigned int +numachip_cpu_mask_to_apicid_and(const struct cpumask *cpumask, + const struct cpumask *andmask) +{ + int cpu; + + /* + * We're using fixed IRQ delivery, can only return one phys APIC ID. + * May as well be the first. + */ + for_each_cpu_and(cpu, cpumask, andmask) { + if (cpumask_test_cpu(cpu, cpu_online_mask)) + break; + } + return per_cpu(x86_cpu_to_apicid, cpu); +} + +static int __init numachip_probe(void) +{ + return apic == &apic_numachip; +} + +static void __init map_csrs(void) +{ + printk(KERN_INFO "NumaChip: Mapping local CSR space (%016llx - %016llx)\n", + NUMACHIP_LCSR_BASE, NUMACHIP_LCSR_BASE + NUMACHIP_LCSR_SIZE - 1); + init_extra_mapping_uc(NUMACHIP_LCSR_BASE, NUMACHIP_LCSR_SIZE); + + printk(KERN_INFO "NumaChip: Mapping global CSR space (%016llx - %016llx)\n", + NUMACHIP_GCSR_BASE, NUMACHIP_GCSR_BASE + NUMACHIP_GCSR_SIZE - 1); + init_extra_mapping_uc(NUMACHIP_GCSR_BASE, NUMACHIP_GCSR_SIZE); +} + +static void fixup_cpu_id(struct cpuinfo_x86 *c, int node) +{ + c->phys_proc_id = node; + per_cpu(cpu_llc_id, smp_processor_id()) = node; +} + +static int __init numachip_system_init(void) +{ + unsigned int val; + + if (!numachip_system) + return 0; + + x86_cpuinit.fixup_cpu_id = fixup_cpu_id; + + map_csrs(); + + val = read_lcsr(CSR_G0_NODE_IDS); + printk(KERN_INFO "NumaChip: Local NodeID = %08x\n", val); + + return 0; +} +early_initcall(numachip_system_init); + +static int numachip_acpi_madt_oem_check(char *oem_id, char *oem_table_id) +{ + if (!strncmp(oem_id, "NUMASC", 6)) { + numachip_system = 1; + return 1; + } + + return 0; +} + +static struct apic apic_numachip __refconst = { + + .name = "NumaConnect system", + .probe = numachip_probe, + .acpi_madt_oem_check = numachip_acpi_madt_oem_check, + .apic_id_registered = numachip_apic_id_registered, + + .irq_delivery_mode = dest_Fixed, + .irq_dest_mode = 0, /* physical */ + + .target_cpus = numachip_target_cpus, + .disable_esr = 0, + .dest_logical = 0, + .check_apicid_used = NULL, + .check_apicid_present = NULL, + + .vector_allocation_domain = numachip_vector_allocation_domain, + .init_apic_ldr = flat_init_apic_ldr, + + .ioapic_phys_id_map = NULL, + .setup_apic_routing = NULL, + .multi_timer_check = NULL, + .cpu_present_to_apicid = default_cpu_present_to_apicid, + .apicid_to_cpu_present = NULL, + .setup_portio_remap = NULL, + .check_phys_apicid_present = default_check_phys_apicid_present, + .enable_apic_mode = NULL, + .phys_pkg_id = numachip_phys_pkg_id, + .mps_oem_check = NULL, + + .get_apic_id = get_apic_id, + .set_apic_id = set_apic_id, + .apic_id_mask = 0xffU << 24, + + .cpu_mask_to_apicid = numachip_cpu_mask_to_apicid, + .cpu_mask_to_apicid_and = numachip_cpu_mask_to_apicid_and, + + .send_IPI_mask = numachip_send_IPI_mask, + .send_IPI_mask_allbutself = numachip_send_IPI_mask_allbutself, + .send_IPI_allbutself = numachip_send_IPI_allbutself, + .send_IPI_all = numachip_send_IPI_all, + .send_IPI_self = numachip_send_IPI_self, + + .wakeup_secondary_cpu = numachip_wakeup_secondary, + .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, + .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, + .wait_for_init_deassert = NULL, + .smp_callin_clear_local_apic = NULL, + .inquire_remote_apic = NULL, /* REMRD not supported */ + + .read = native_apic_mem_read, + .write = native_apic_mem_write, + .icr_read = native_apic_icr_read, + .icr_write = native_apic_icr_write, + .wait_icr_idle = native_apic_wait_icr_idle, + .safe_wait_icr_idle = native_safe_apic_wait_icr_idle, +}; +apic_driver(apic_numachip); + --- linux-3.2.0.orig/arch/x86/kernel/apic/x2apic_phys.c +++ linux-3.2.0/arch/x86/kernel/apic/x2apic_phys.c @@ -20,12 +20,19 @@ } early_param("x2apic_phys", set_x2apic_phys_mode); +static bool x2apic_fadt_phys(void) +{ + if ((acpi_gbl_FADT.header.revision >= FADT2_REVISION_ID) && + (acpi_gbl_FADT.flags & ACPI_FADT_APIC_PHYSICAL)) { + printk(KERN_DEBUG "System requires x2apic physical mode\n"); + return true; + } + return false; +} + static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) { - if (x2apic_phys) - return x2apic_enabled(); - else - return 0; + return x2apic_enabled() && (x2apic_phys || x2apic_fadt_phys()); } static void @@ -108,7 +115,7 @@ static int x2apic_phys_probe(void) { - if (x2apic_mode && x2apic_phys) + if (x2apic_mode && (x2apic_phys || x2apic_fadt_phys())) return 1; return apic == &apic_x2apic_phys; --- linux-3.2.0.orig/arch/x86/kernel/apic/x2apic_uv_x.c +++ linux-3.2.0/arch/x86/kernel/apic/x2apic_uv_x.c @@ -769,7 +769,12 @@ for(i = 0; i < UVH_NODE_PRESENT_TABLE_DEPTH; i++) uv_possible_blades += hweight64(uv_read_local_mmr( UVH_NODE_PRESENT_TABLE + i * 8)); - printk(KERN_DEBUG "UV: Found %d blades\n", uv_num_possible_blades()); + + /* uv_num_possible_blades() is really the hub count */ + printk(KERN_INFO "UV: Found %d blades, %d hubs\n", + is_uv1_hub() ? uv_num_possible_blades() : + (uv_num_possible_blades() + 1) / 2, + uv_num_possible_blades()); bytes = sizeof(struct uv_blade_info) * uv_num_possible_blades(); uv_blade_info = kzalloc(bytes, GFP_KERNEL); --- linux-3.2.0.orig/arch/x86/oprofile/nmi_int.c +++ linux-3.2.0/arch/x86/oprofile/nmi_int.c @@ -55,7 +55,7 @@ val |= counter_config->extra; event &= model->event_mask ? model->event_mask : 0xFF; val |= event & 0xFF; - val |= (event & 0x0F00) << 24; + val |= (u64)(event & 0x0F00) << 24; return val; } --- linux-3.2.0.orig/arch/x86/vdso/vdso32-setup.c +++ linux-3.2.0/arch/x86/vdso/vdso32-setup.c @@ -331,7 +331,7 @@ if (compat) addr = VDSO_HIGH_BASE; else { - addr = get_unmapped_area(NULL, 0, PAGE_SIZE, 0, 0); + addr = get_unmapped_area_prot(NULL, 0, PAGE_SIZE, 0, 0, 1); if (IS_ERR_VALUE(addr)) { ret = addr; goto up_fail; --- linux-3.2.0.orig/arch/x86/platform/uv/uv_irq.c +++ linux-3.2.0/arch/x86/platform/uv/uv_irq.c @@ -25,7 +25,7 @@ int irq; }; -static spinlock_t uv_irq_lock; +static DEFINE_SPINLOCK(uv_irq_lock); static struct rb_root uv_irq_root; static int uv_set_irq_affinity(struct irq_data *, const struct cpumask *, bool); --- linux-3.2.0.orig/arch/x86/platform/uv/tlb_uv.c +++ linux-3.2.0/arch/x86/platform/uv/tlb_uv.c @@ -157,13 +157,14 @@ * clear of the Timeout bit (as well) will free the resource. No reply will * be sent (the hardware will only do one reply per message). */ -static void reply_to_message(struct msg_desc *mdp, struct bau_control *bcp) +static void reply_to_message(struct msg_desc *mdp, struct bau_control *bcp, + int do_acknowledge) { unsigned long dw; struct bau_pq_entry *msg; msg = mdp->msg; - if (!msg->canceled) { + if (!msg->canceled && do_acknowledge) { dw = (msg->swack_vec << UV_SW_ACK_NPENDING) | msg->swack_vec; write_mmr_sw_ack(dw); } @@ -212,8 +213,8 @@ if (mmr & (msg_res << UV_SW_ACK_NPENDING)) { unsigned long mr; /* - * is the resource timed out? - * make everyone ignore the cancelled message. + * Is the resource timed out? + * Make everyone ignore the cancelled message. */ msg2->canceled = 1; stat->d_canceled++; @@ -231,8 +232,8 @@ * Do all the things a cpu should do for a TLB shootdown message. * Other cpu's may come here at the same time for this message. */ -static void bau_process_message(struct msg_desc *mdp, - struct bau_control *bcp) +static void bau_process_message(struct msg_desc *mdp, struct bau_control *bcp, + int do_acknowledge) { short socket_ack_count = 0; short *sp; @@ -284,8 +285,9 @@ if (msg_ack_count == bcp->cpus_in_uvhub) { /* * All cpus in uvhub saw it; reply + * (unless we are in the UV2 workaround) */ - reply_to_message(mdp, bcp); + reply_to_message(mdp, bcp, do_acknowledge); } } @@ -491,27 +493,138 @@ /* * UV2 has an extra bit of status in the ACTIVATION_STATUS_2 register. */ -static unsigned long uv2_read_status(unsigned long offset, int rshft, int cpu) +static unsigned long uv2_read_status(unsigned long offset, int rshft, int desc) { unsigned long descriptor_status; unsigned long descriptor_status2; descriptor_status = ((read_lmmr(offset) >> rshft) & UV_ACT_STATUS_MASK); - descriptor_status2 = (read_mmr_uv2_status() >> cpu) & 0x1UL; + descriptor_status2 = (read_mmr_uv2_status() >> desc) & 0x1UL; descriptor_status = (descriptor_status << 1) | descriptor_status2; return descriptor_status; } +/* + * Return whether the status of the descriptor that is normally used for this + * cpu (the one indexed by its hub-relative cpu number) is busy. + * The status of the original 32 descriptors is always reflected in the 64 + * bits of UVH_LB_BAU_SB_ACTIVATION_STATUS_0. + * The bit provided by the activation_status_2 register is irrelevant to + * the status if it is only being tested for busy or not busy. + */ +int normal_busy(struct bau_control *bcp) +{ + int cpu = bcp->uvhub_cpu; + int mmr_offset; + int right_shift; + + mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_0; + right_shift = cpu * UV_ACT_STATUS_SIZE; + return (((((read_lmmr(mmr_offset) >> right_shift) & + UV_ACT_STATUS_MASK)) << 1) == UV2H_DESC_BUSY); +} + +/* + * Entered when a bau descriptor has gone into a permanent busy wait because + * of a hardware bug. + * Workaround the bug. + */ +int handle_uv2_busy(struct bau_control *bcp) +{ + int busy_one = bcp->using_desc; + int normal = bcp->uvhub_cpu; + int selected = -1; + int i; + unsigned long descriptor_status; + unsigned long status; + int mmr_offset; + struct bau_desc *bau_desc_old; + struct bau_desc *bau_desc_new; + struct bau_control *hmaster = bcp->uvhub_master; + struct ptc_stats *stat = bcp->statp; + cycles_t ttm; + + stat->s_uv2_wars++; + spin_lock(&hmaster->uvhub_lock); + /* try for the original first */ + if (busy_one != normal) { + if (!normal_busy(bcp)) + selected = normal; + } + if (selected < 0) { + /* can't use the normal, select an alternate */ + mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_1; + descriptor_status = read_lmmr(mmr_offset); + + /* scan available descriptors 32-63 */ + for (i = 0; i < UV_CPUS_PER_AS; i++) { + if ((hmaster->inuse_map & (1 << i)) == 0) { + status = ((descriptor_status >> + (i * UV_ACT_STATUS_SIZE)) & + UV_ACT_STATUS_MASK) << 1; + if (status != UV2H_DESC_BUSY) { + selected = i + UV_CPUS_PER_AS; + break; + } + } + } + } + + if (busy_one != normal) + /* mark the busy alternate as not in-use */ + hmaster->inuse_map &= ~(1 << (busy_one - UV_CPUS_PER_AS)); + + if (selected >= 0) { + /* switch to the selected descriptor */ + if (selected != normal) { + /* set the selected alternate as in-use */ + hmaster->inuse_map |= + (1 << (selected - UV_CPUS_PER_AS)); + if (selected > stat->s_uv2_wars_hw) + stat->s_uv2_wars_hw = selected; + } + bau_desc_old = bcp->descriptor_base; + bau_desc_old += (ITEMS_PER_DESC * busy_one); + bcp->using_desc = selected; + bau_desc_new = bcp->descriptor_base; + bau_desc_new += (ITEMS_PER_DESC * selected); + *bau_desc_new = *bau_desc_old; + } else { + /* + * All are busy. Wait for the normal one for this cpu to + * free up. + */ + stat->s_uv2_war_waits++; + spin_unlock(&hmaster->uvhub_lock); + ttm = get_cycles(); + do { + cpu_relax(); + } while (normal_busy(bcp)); + spin_lock(&hmaster->uvhub_lock); + /* switch to the original descriptor */ + bcp->using_desc = normal; + bau_desc_old = bcp->descriptor_base; + bau_desc_old += (ITEMS_PER_DESC * bcp->using_desc); + bcp->using_desc = (ITEMS_PER_DESC * normal); + bau_desc_new = bcp->descriptor_base; + bau_desc_new += (ITEMS_PER_DESC * normal); + *bau_desc_new = *bau_desc_old; /* copy the entire descriptor */ + } + spin_unlock(&hmaster->uvhub_lock); + return FLUSH_RETRY_BUSYBUG; +} + static int uv2_wait_completion(struct bau_desc *bau_desc, unsigned long mmr_offset, int right_shift, struct bau_control *bcp, long try) { unsigned long descriptor_stat; cycles_t ttm; - int cpu = bcp->uvhub_cpu; + int desc = bcp->using_desc; + long busy_reps = 0; struct ptc_stats *stat = bcp->statp; - descriptor_stat = uv2_read_status(mmr_offset, right_shift, cpu); + descriptor_stat = uv2_read_status(mmr_offset, right_shift, desc); /* spin on the status MMR, waiting for it to go idle */ while (descriptor_stat != UV2H_DESC_IDLE) { @@ -542,12 +655,23 @@ bcp->conseccompletes = 0; return FLUSH_RETRY_TIMEOUT; } else { + busy_reps++; + if (busy_reps > 1000000) { + /* not to hammer on the clock */ + busy_reps = 0; + ttm = get_cycles(); + if ((ttm - bcp->send_message) > + (bcp->clocks_per_100_usec)) { + return handle_uv2_busy(bcp); + } + } /* * descriptor_stat is still BUSY */ cpu_relax(); } - descriptor_stat = uv2_read_status(mmr_offset, right_shift, cpu); + descriptor_stat = uv2_read_status(mmr_offset, right_shift, + desc); } bcp->conseccompletes++; return FLUSH_COMPLETE; @@ -563,17 +687,17 @@ { int right_shift; unsigned long mmr_offset; - int cpu = bcp->uvhub_cpu; + int desc = bcp->using_desc; - if (cpu < UV_CPUS_PER_AS) { + if (desc < UV_CPUS_PER_AS) { mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_0; - right_shift = cpu * UV_ACT_STATUS_SIZE; + right_shift = desc * UV_ACT_STATUS_SIZE; } else { mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_1; - right_shift = ((cpu - UV_CPUS_PER_AS) * UV_ACT_STATUS_SIZE); + right_shift = ((desc - UV_CPUS_PER_AS) * UV_ACT_STATUS_SIZE); } - if (is_uv1_hub()) + if (bcp->uvhub_version == 1) return uv1_wait_completion(bau_desc, mmr_offset, right_shift, bcp, try); else @@ -752,19 +876,22 @@ * Returns 1 if it gives up entirely and the original cpu mask is to be * returned to the kernel. */ -int uv_flush_send_and_wait(struct bau_desc *bau_desc, - struct cpumask *flush_mask, struct bau_control *bcp) +int uv_flush_send_and_wait(struct cpumask *flush_mask, struct bau_control *bcp) { int seq_number = 0; int completion_stat = 0; + int uv1 = 0; long try = 0; unsigned long index; cycles_t time1; cycles_t time2; struct ptc_stats *stat = bcp->statp; struct bau_control *hmaster = bcp->uvhub_master; + struct uv1_bau_msg_header *uv1_hdr = NULL; + struct uv2_bau_msg_header *uv2_hdr = NULL; + struct bau_desc *bau_desc; - if (is_uv1_hub()) + if (bcp->uvhub_version == 1) uv1_throttle(hmaster, stat); while (hmaster->uvhub_quiesce) @@ -772,22 +899,39 @@ time1 = get_cycles(); do { - if (try == 0) { - bau_desc->header.msg_type = MSG_REGULAR; + bau_desc = bcp->descriptor_base; + bau_desc += (ITEMS_PER_DESC * bcp->using_desc); + if (bcp->uvhub_version == 1) { + uv1 = 1; + uv1_hdr = &bau_desc->header.uv1_hdr; + } else + uv2_hdr = &bau_desc->header.uv2_hdr; + if ((try == 0) || (completion_stat == FLUSH_RETRY_BUSYBUG)) { + if (uv1) + uv1_hdr->msg_type = MSG_REGULAR; + else + uv2_hdr->msg_type = MSG_REGULAR; seq_number = bcp->message_number++; } else { - bau_desc->header.msg_type = MSG_RETRY; + if (uv1) + uv1_hdr->msg_type = MSG_RETRY; + else + uv2_hdr->msg_type = MSG_RETRY; stat->s_retry_messages++; } - bau_desc->header.sequence = seq_number; - index = (1UL << AS_PUSH_SHIFT) | bcp->uvhub_cpu; + if (uv1) + uv1_hdr->sequence = seq_number; + else + uv2_hdr->sequence = seq_number; + index = (1UL << AS_PUSH_SHIFT) | bcp->using_desc; bcp->send_message = get_cycles(); write_mmr_activation(index); try++; completion_stat = wait_completion(bau_desc, bcp, try); + /* UV2: wait_completion() may change the bcp->using_desc */ handle_cmplt(completion_stat, bau_desc, bcp, hmaster, stat); @@ -798,6 +942,7 @@ } cpu_relax(); } while ((completion_stat == FLUSH_RETRY_PLUGGED) || + (completion_stat == FLUSH_RETRY_BUSYBUG) || (completion_stat == FLUSH_RETRY_TIMEOUT)); time2 = get_cycles(); @@ -812,6 +957,7 @@ record_send_stats(time1, time2, bcp, stat, completion_stat, try); if (completion_stat == FLUSH_GIVEUP) + /* FLUSH_GIVEUP will fall back to using IPI's for tlb flush */ return 1; return 0; } @@ -967,7 +1113,7 @@ stat->s_ntargself++; bau_desc = bcp->descriptor_base; - bau_desc += ITEMS_PER_DESC * bcp->uvhub_cpu; + bau_desc += (ITEMS_PER_DESC * bcp->using_desc); bau_uvhubs_clear(&bau_desc->distribution, UV_DISTRIBUTION_SIZE); if (set_distrib_bits(flush_mask, bcp, bau_desc, &locals, &remotes)) return NULL; @@ -980,13 +1126,86 @@ * uv_flush_send_and_wait returns 0 if all cpu's were messaged, * or 1 if it gave up and the original cpumask should be returned. */ - if (!uv_flush_send_and_wait(bau_desc, flush_mask, bcp)) + if (!uv_flush_send_and_wait(flush_mask, bcp)) return NULL; else return cpumask; } /* + * Search the message queue for any 'other' message with the same software + * acknowledge resource bit vector. + */ +struct bau_pq_entry *find_another_by_swack(struct bau_pq_entry *msg, + struct bau_control *bcp, unsigned char swack_vec) +{ + struct bau_pq_entry *msg_next = msg + 1; + + if (msg_next > bcp->queue_last) + msg_next = bcp->queue_first; + while ((msg_next->swack_vec != 0) && (msg_next != msg)) { + if (msg_next->swack_vec == swack_vec) + return msg_next; + msg_next++; + if (msg_next > bcp->queue_last) + msg_next = bcp->queue_first; + } + return NULL; +} + +/* + * UV2 needs to work around a bug in which an arriving message has not + * set a bit in the UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE register. + * Such a message must be ignored. + */ +void process_uv2_message(struct msg_desc *mdp, struct bau_control *bcp) +{ + unsigned long mmr_image; + unsigned char swack_vec; + struct bau_pq_entry *msg = mdp->msg; + struct bau_pq_entry *other_msg; + + mmr_image = read_mmr_sw_ack(); + swack_vec = msg->swack_vec; + + if ((swack_vec & mmr_image) == 0) { + /* + * This message was assigned a swack resource, but no + * reserved acknowlegment is pending. + * The bug has prevented this message from setting the MMR. + * And no other message has used the same sw_ack resource. + * Do the requested shootdown but do not reply to the msg. + * (the 0 means make no acknowledge) + */ + bau_process_message(mdp, bcp, 0); + return; + } + + /* + * Some message has set the MMR 'pending' bit; it might have been + * another message. Look for that message. + */ + other_msg = find_another_by_swack(msg, bcp, msg->swack_vec); + if (other_msg) { + /* There is another. Do not ack the current one. */ + bau_process_message(mdp, bcp, 0); + /* + * Let the natural processing of that message acknowledge + * it. Don't get the processing of sw_ack's out of order. + */ + return; + } + + /* + * There is no other message using this sw_ack, so it is safe to + * acknowledge it. + */ + bau_process_message(mdp, bcp, 1); + + return; +} + +/* * The BAU message interrupt comes here. (registered by set_intr_gate) * See entry_64.S * @@ -1022,9 +1241,11 @@ count++; msgdesc.msg_slot = msg - msgdesc.queue_first; - msgdesc.swack_slot = ffs(msg->swack_vec) - 1; msgdesc.msg = msg; - bau_process_message(&msgdesc, bcp); + if (bcp->uvhub_version == 2) + process_uv2_message(&msgdesc, bcp); + else + bau_process_message(&msgdesc, bcp, 1); msg++; if (msg > msgdesc.queue_last) @@ -1083,7 +1304,6 @@ */ mmr_image |= (1L << SOFTACK_MSHIFT); if (is_uv2_hub()) { - mmr_image |= (1L << UV2_LEG_SHFT); mmr_image |= (1L << UV2_EXT_SHFT); } write_mmr_misc_control(pnode, mmr_image); @@ -1142,7 +1362,7 @@ seq_printf(file, "all one mult none retry canc nocan reset rcan "); seq_printf(file, - "disable enable\n"); + "disable enable wars warshw warwaits\n"); } if (cpu < num_possible_cpus() && cpu_online(cpu)) { stat = &per_cpu(ptcstats, cpu); @@ -1173,8 +1393,10 @@ stat->d_nomsg, stat->d_retries, stat->d_canceled, stat->d_nocanceled, stat->d_resets, stat->d_rcanceled); - seq_printf(file, "%ld %ld\n", - stat->s_bau_disabled, stat->s_bau_reenabled); + seq_printf(file, "%ld %ld %ld %ld %ld\n", + stat->s_bau_disabled, stat->s_bau_reenabled, + stat->s_uv2_wars, stat->s_uv2_wars_hw, + stat->s_uv2_war_waits); } return 0; } @@ -1432,12 +1654,15 @@ { int i; int cpu; + int uv1 = 0; unsigned long gpa; unsigned long m; unsigned long n; size_t dsize; struct bau_desc *bau_desc; struct bau_desc *bd2; + struct uv1_bau_msg_header *uv1_hdr; + struct uv2_bau_msg_header *uv2_hdr; struct bau_control *bcp; /* @@ -1451,6 +1676,8 @@ gpa = uv_gpa(bau_desc); n = uv_gpa_to_gnode(gpa); m = uv_gpa_to_offset(gpa); + if (is_uv1_hub()) + uv1 = 1; /* the 14-bit pnode */ write_mmr_descriptor_base(pnode, (n << UV_DESC_PSHIFT | m)); @@ -1461,21 +1688,33 @@ */ for (i = 0, bd2 = bau_desc; i < (ADP_SZ * ITEMS_PER_DESC); i++, bd2++) { memset(bd2, 0, sizeof(struct bau_desc)); - bd2->header.swack_flag = 1; - /* - * The base_dest_nasid set in the message header is the nasid - * of the first uvhub in the partition. The bit map will - * indicate destination pnode numbers relative to that base. - * They may not be consecutive if nasid striding is being used. - */ - bd2->header.base_dest_nasid = UV_PNODE_TO_NASID(base_pnode); - bd2->header.dest_subnodeid = UV_LB_SUBNODEID; - bd2->header.command = UV_NET_ENDPOINT_INTD; - bd2->header.int_both = 1; - /* - * all others need to be set to zero: - * fairness chaining multilevel count replied_to - */ + if (uv1) { + uv1_hdr = &bd2->header.uv1_hdr; + uv1_hdr->swack_flag = 1; + /* + * The base_dest_nasid set in the message header + * is the nasid of the first uvhub in the partition. + * The bit map will indicate destination pnode numbers + * relative to that base. They may not be consecutive + * if nasid striding is being used. + */ + uv1_hdr->base_dest_nasid = + UV_PNODE_TO_NASID(base_pnode); + uv1_hdr->dest_subnodeid = UV_LB_SUBNODEID; + uv1_hdr->command = UV_NET_ENDPOINT_INTD; + uv1_hdr->int_both = 1; + /* + * all others need to be set to zero: + * fairness chaining multilevel count replied_to + */ + } else { + uv2_hdr = &bd2->header.uv2_hdr; + uv2_hdr->swack_flag = 1; + uv2_hdr->base_dest_nasid = + UV_PNODE_TO_NASID(base_pnode); + uv2_hdr->dest_subnodeid = UV_LB_SUBNODEID; + uv2_hdr->command = UV_NET_ENDPOINT_INTD; + } } for_each_present_cpu(cpu) { if (pnode != uv_blade_to_pnode(uv_cpu_to_blade_id(cpu))) @@ -1531,6 +1770,7 @@ write_mmr_payload_first(pnode, pn_first); write_mmr_payload_tail(pnode, first); write_mmr_payload_last(pnode, last); + write_gmmr_sw_ack(pnode, 0xffffUL); /* in effect, all msg_type's are set to MSG_NOOP */ memset(pqp, 0, sizeof(struct bau_pq_entry) * DEST_Q_SIZE); @@ -1584,14 +1824,14 @@ ts_ns = base * mult1 * mult2; ret = ts_ns / 1000; } else { - /* 4 bits 0/1 for 10/80us, 3 bits of multiplier */ - mmr_image = uv_read_local_mmr(UVH_AGING_PRESCALE_SEL); + /* 4 bits 0/1 for 10/80us base, 3 bits of multiplier */ + mmr_image = uv_read_local_mmr(UVH_LB_BAU_MISC_CONTROL); mmr_image = (mmr_image & UV_SA_MASK) >> UV_SA_SHFT; if (mmr_image & (1L << UV2_ACK_UNITS_SHFT)) - mult1 = 80; + base = 80; else - mult1 = 10; - base = mmr_image & UV2_ACK_MASK; + base = 10; + mult1 = mmr_image & UV2_ACK_MASK; ret = mult1 * base; } return ret; @@ -1618,6 +1858,9 @@ bcp->cong_response_us = congested_respns_us; bcp->cong_reps = congested_reps; bcp->cong_period = congested_period; + bcp->clocks_per_100_usec = usec_2_cycles(100); + spin_lock_init(&bcp->queue_lock); + spin_lock_init(&bcp->uvhub_lock); } } @@ -1728,8 +1971,17 @@ bcp->cpus_in_socket = sdp->num_cpus; bcp->socket_master = *smasterp; bcp->uvhub = bdp->uvhub; + if (is_uv1_hub()) + bcp->uvhub_version = 1; + else if (is_uv2_hub()) + bcp->uvhub_version = 2; + else { + printk(KERN_EMERG "uvhub version not 1 or 2\n"); + return 1; + } bcp->uvhub_master = *hmasterp; bcp->uvhub_cpu = uv_cpu_hub_info(cpu)->blade_processor_id; + bcp->using_desc = bcp->uvhub_cpu; if (bcp->uvhub_cpu >= MAX_CPUS_PER_UVHUB) { printk(KERN_EMERG "%d cpus per uvhub invalid\n", bcp->uvhub_cpu); @@ -1845,6 +2097,8 @@ uv_base_pnode = uv_blade_to_pnode(uvhub); } + enable_timeouts(); + if (init_per_cpu(nuvhubs, uv_base_pnode)) { nobau = 1; return 0; @@ -1855,7 +2109,6 @@ if (uv_blade_nr_possible_cpus(uvhub)) init_uvhub(uvhub, vector, uv_base_pnode); - enable_timeouts(); alloc_intr_gate(vector, uv_bau_message_intr1); for_each_possible_blade(uvhub) { @@ -1867,7 +2120,8 @@ val = 1L << 63; write_gmmr_activation(pnode, val); mmr = 1; /* should be 1 to broadcast to both sockets */ - write_mmr_data_broadcast(pnode, mmr); + if (!is_uv1_hub()) + write_mmr_data_broadcast(pnode, mmr); } } --- linux-3.2.0.orig/arch/x86/platform/efi/efi.c +++ linux-3.2.0/arch/x86/platform/efi/efi.c @@ -49,8 +49,12 @@ #define EFI_DEBUG 1 #define PFX "EFI: " -int efi_enabled; -EXPORT_SYMBOL(efi_enabled); +#define EFI_MIN_RESERVE 5120 + +#define EFI_DUMMY_GUID \ + EFI_GUID(0x4424ac57, 0xbe4b, 0x47dd, 0x9e, 0x97, 0xed, 0x50, 0xf0, 0x9f, 0x92, 0xa9) + +static efi_char16_t efi_dummy_name[6] = { 'D', 'U', 'M', 'M', 'Y', 0 }; struct efi __read_mostly efi = { .mps = EFI_INVALID_TABLE_ADDR, @@ -70,9 +74,26 @@ static struct efi efi_phys __initdata; static efi_system_table_t efi_systab __initdata; +static inline bool efi_is_native(void) +{ + return IS_ENABLED(CONFIG_X86_64) == efi_enabled(EFI_64BIT); +} + +unsigned long x86_efi_facility; + +/* + * Returns 1 if 'facility' is enabled, 0 otherwise. + */ +int efi_enabled(int facility) +{ + return test_bit(facility, &x86_efi_facility) != 0; +} +EXPORT_SYMBOL(efi_enabled); + +static bool disable_runtime = false; static int __init setup_noefi(char *arg) { - efi_enabled = 0; + disable_runtime = true; return 0; } early_param("noefi", setup_noefi); @@ -87,6 +108,15 @@ } early_param("add_efi_memmap", setup_add_efi_memmap); +static bool efi_no_storage_paranoia; + +static int __init setup_storage_paranoia(char *arg) +{ + efi_no_storage_paranoia = true; + return 0; +} +early_param("efi_no_storage_paranoia", setup_storage_paranoia); + static efi_status_t virt_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc) { @@ -440,6 +470,9 @@ int i = 0; void *tmp; + if (!efi_is_native()) + return; + #ifdef CONFIG_X86_32 efi_phys.systab = (efi_system_table_t *)boot_params.efi_info.efi_systab; #else @@ -467,6 +500,8 @@ efi.systab->hdr.revision >> 16, efi.systab->hdr.revision & 0xffff); + set_bit(EFI_SYSTEM_TABLES, &x86_efi_facility); + /* * Show what we know for posterity */ @@ -529,33 +564,39 @@ early_iounmap(config_tables, efi.systab->nr_tables * sizeof(efi_config_table_t)); - /* - * Check out the runtime services table. We need to map - * the runtime services table so that we can grab the physical - * address of several of the EFI runtime functions, needed to - * set the firmware into virtual mode. - */ - runtime = early_ioremap((unsigned long)efi.systab->runtime, - sizeof(efi_runtime_services_t)); - if (runtime != NULL) { - /* - * We will only need *early* access to the following - * two EFI runtime services before set_virtual_address_map - * is invoked. - */ - efi_phys.get_time = (efi_get_time_t *)runtime->get_time; - efi_phys.set_virtual_address_map = - (efi_set_virtual_address_map_t *) - runtime->set_virtual_address_map; + set_bit(EFI_CONFIG_TABLES, &x86_efi_facility); + + if (!disable_runtime) { /* - * Make efi_get_time can be called before entering - * virtual mode. + * Check out the runtime services table. We need to map + * the runtime services table so that we can grab the physical + * address of several of the EFI runtime functions, needed to + * set the firmware into virtual mode. */ - efi.get_time = phys_efi_get_time; - } else - printk(KERN_ERR "Could not map the EFI runtime service " - "table!\n"); - early_iounmap(runtime, sizeof(efi_runtime_services_t)); + runtime = early_ioremap((unsigned long)efi.systab->runtime, + sizeof(efi_runtime_services_t)); + if (runtime != NULL) { + /* + * We will only need *early* access to the following + * two EFI runtime services before set_virtual_address_map + * is invoked. + */ + efi_phys.get_time = (efi_get_time_t *)runtime->get_time; + efi_phys.set_virtual_address_map = + (efi_set_virtual_address_map_t *) + runtime->set_virtual_address_map; + /* + * Make efi_get_time can be called before entering + * virtual mode. + */ + efi.get_time = phys_efi_get_time; + + set_bit(EFI_RUNTIME_SERVICES, &x86_efi_facility); + } else + printk(KERN_ERR "Could not map the EFI runtime service " + "table!\n"); + early_iounmap(runtime, sizeof(efi_runtime_services_t)); + } /* Map the EFI memory map */ memmap.map = early_ioremap((unsigned long)memmap.phys_map, @@ -571,6 +612,8 @@ if (add_efi_memmap) do_add_efi_memmap(); + set_bit(EFI_MEMMAP, &x86_efi_facility); + #ifdef CONFIG_X86_32 x86_platform.get_wallclock = efi_get_time; x86_platform.set_wallclock = efi_set_rtc_mmss; @@ -731,6 +774,7 @@ * * Call EFI services through wrapper functions. */ + efi.runtime_version = efi_systab.hdr.revision; efi.get_time = virt_efi_get_time; efi.set_time = virt_efi_set_time; efi.get_wakeup_time = virt_efi_get_wakeup_time; @@ -746,9 +790,17 @@ efi.query_capsule_caps = virt_efi_query_capsule_caps; if (__supported_pte_mask & _PAGE_NX) runtime_code_page_mkexec(); + clear_bit(EFI_MEMMAP, &x86_efi_facility); early_iounmap(memmap.map, memmap.nr_map * memmap.desc_size); memmap.map = NULL; kfree(new_memmap); + + /* clean DUMMY object */ + efi.set_variable(efi_dummy_name, &EFI_DUMMY_GUID, + EFI_VARIABLE_NON_VOLATILE | + EFI_VARIABLE_BOOTSERVICE_ACCESS | + EFI_VARIABLE_RUNTIME_ACCESS, + 0, NULL); } /* @@ -759,6 +811,9 @@ efi_memory_desc_t *md; void *p; + if (!efi_enabled(EFI_MEMMAP)) + return 0; + for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) { md = p; if ((md->phys_addr <= phys_addr) && @@ -783,3 +838,85 @@ } return 0; } + +/* + * Some firmware has serious problems when using more than 50% of the EFI + * variable store, i.e. it triggers bugs that can brick machines. Ensure that + * we never use more than this safe limit. + * + * Return EFI_SUCCESS if it is safe to write 'size' bytes to the variable + * store. + */ +efi_status_t efi_query_variable_store(u32 attributes, unsigned long size) +{ + efi_status_t status; + u64 storage_size, remaining_size, max_size; + + if (!(attributes & EFI_VARIABLE_NON_VOLATILE)) + return 0; + + status = efi.query_variable_info(attributes, &storage_size, + &remaining_size, &max_size); + if (status != EFI_SUCCESS) + return status; + + /* + * Some firmware implementations refuse to boot if there's insufficient + * space in the variable store. We account for that by refusing the + * write if permitting it would reduce the available space to under + * 5KB. This figure was provided by Samsung, so should be safe. + */ + if ((remaining_size - size < EFI_MIN_RESERVE) && + !efi_no_storage_paranoia) { + + /* + * Triggering garbage collection may require that the firmware + * generate a real EFI_OUT_OF_RESOURCES error. We can force + * that by attempting to use more space than is available. + */ + unsigned long dummy_size = remaining_size + 1024; + void *dummy = kzalloc(dummy_size, GFP_ATOMIC); + + if (!dummy) + return EFI_OUT_OF_RESOURCES; + + status = efi.set_variable(efi_dummy_name, &EFI_DUMMY_GUID, + EFI_VARIABLE_NON_VOLATILE | + EFI_VARIABLE_BOOTSERVICE_ACCESS | + EFI_VARIABLE_RUNTIME_ACCESS, + dummy_size, dummy); + + if (status == EFI_SUCCESS) { + /* + * This should have failed, so if it didn't make sure + * that we delete it... + */ + efi.set_variable(efi_dummy_name, &EFI_DUMMY_GUID, + EFI_VARIABLE_NON_VOLATILE | + EFI_VARIABLE_BOOTSERVICE_ACCESS | + EFI_VARIABLE_RUNTIME_ACCESS, + 0, dummy); + } + + kfree(dummy); + + /* + * The runtime code may now have triggered a garbage collection + * run, so check the variable info again + */ + status = efi.query_variable_info(attributes, &storage_size, + &remaining_size, &max_size); + + if (status != EFI_SUCCESS) + return status; + + /* + * There still isn't enough room, so return an error + */ + if (remaining_size - size < EFI_MIN_RESERVE) + return EFI_OUT_OF_RESOURCES; + } + + return EFI_SUCCESS; +} +EXPORT_SYMBOL_GPL(efi_query_variable_store); --- linux-3.2.0.orig/arch/x86/platform/efi/efi_64.c +++ linux-3.2.0/arch/x86/platform/efi/efi_64.c @@ -38,7 +38,7 @@ #include #include -static pgd_t save_pgd __initdata; +static pgd_t *save_pgd __initdata; static unsigned long efi_flags __initdata; static void __init early_code_mapping_set_exec(int executable) @@ -61,12 +61,20 @@ void __init efi_call_phys_prelog(void) { unsigned long vaddress; + int pgd; + int n_pgds; early_code_mapping_set_exec(1); local_irq_save(efi_flags); - vaddress = (unsigned long)__va(0x0UL); - save_pgd = *pgd_offset_k(0x0UL); - set_pgd(pgd_offset_k(0x0UL), *pgd_offset_k(vaddress)); + + n_pgds = DIV_ROUND_UP((max_pfn << PAGE_SHIFT), PGDIR_SIZE); + save_pgd = kmalloc(n_pgds * sizeof(pgd_t), GFP_KERNEL); + + for (pgd = 0; pgd < n_pgds; pgd++) { + save_pgd[pgd] = *pgd_offset_k(pgd * PGDIR_SIZE); + vaddress = (unsigned long)__va(pgd * PGDIR_SIZE); + set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), *pgd_offset_k(vaddress)); + } __flush_tlb_all(); } @@ -75,7 +83,11 @@ /* * After the lock is released, the original page table is restored. */ - set_pgd(pgd_offset_k(0x0UL), save_pgd); + int pgd; + int n_pgds = DIV_ROUND_UP((max_pfn << PAGE_SHIFT) , PGDIR_SIZE); + for (pgd = 0; pgd < n_pgds; pgd++) + set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), save_pgd[pgd]); + kfree(save_pgd); __flush_tlb_all(); local_irq_restore(efi_flags); early_code_mapping_set_exec(0); --- linux-3.2.0.orig/arch/x86/crypto/aesni-intel_asm.S +++ linux-3.2.0/arch/x86/crypto/aesni-intel_asm.S @@ -2460,10 +2460,12 @@ pxor IN3, STATE4 movaps IN4, IV #else - pxor (INP), STATE2 - pxor 0x10(INP), STATE3 pxor IN1, STATE4 movaps IN2, IV + movups (INP), IN1 + pxor IN1, STATE2 + movups 0x10(INP), IN2 + pxor IN2, STATE3 #endif movups STATE1, (OUTP) movups STATE2, 0x10(OUTP) --- linux-3.2.0.orig/arch/arm/Kconfig +++ linux-3.2.0/arch/arm/Kconfig @@ -520,7 +520,7 @@ depends on MMU select CLKSRC_MMIO select CPU_XSCALE - select GENERIC_GPIO + select ARCH_REQUIRE_GPIOLIB select GENERIC_CLOCKEVENTS select HAVE_SCHED_CLOCK select MIGHT_HAVE_PCI @@ -542,6 +542,7 @@ bool "Marvell Kirkwood" select CPU_FEROCEON select PCI + select PCI_QUIRKS select ARCH_REQUIRE_GPIOLIB select GENERIC_CLOCKEVENTS select PLAT_ORION @@ -1123,6 +1124,7 @@ config ARM_TIMER_SP804 bool select CLKSRC_MMIO + select HAVE_SCHED_CLOCK source arch/arm/mm/Kconfig @@ -1155,6 +1157,15 @@ source "arch/arm/Kconfig-nommu" endif +config ARM_ERRATA_326103 + bool "ARM errata: FSR write bit incorrect on a SWP to read-only memory" + depends on CPU_V6 + help + Executing a SWP instruction to read-only memory does not set bit 11 + of the FSR on the ARM 1136 prior to r1p0. This causes the kernel to + treat the access as a read, preventing a COW from occurring and + causing the faulting task to livelock. + config ARM_ERRATA_411920 bool "ARM errata: Invalidation of the Instruction Cache operation can fail" depends on CPU_V6 || CPU_V6K @@ -1272,7 +1283,7 @@ depends on CPU_V7 help This option enables the workaround for the 743622 Cortex-A9 - (r2p0..r2p2) erratum. Under very rare conditions, a faulty + (r2p*) erratum. Under very rare conditions, a faulty optimisation in the Cortex-A9 Store Buffer may lead to data corruption. This workaround sets a specific bit in the diagnostic register of the Cortex-A9 which disables the Store Buffer @@ -2002,7 +2013,7 @@ config KEXEC bool "Kexec system call (EXPERIMENTAL)" - depends on EXPERIMENTAL + depends on EXPERIMENTAL && (!SMP || HOTPLUG_CPU) help kexec is a system call that implements the ability to shutdown your current kernel, and to start another kernel. It is like a reboot @@ -2056,6 +2067,7 @@ config CPU_FREQ_IMX tristate "CPUfreq driver for i.MX CPUs" depends on ARCH_MXC && CPU_FREQ + select CPU_FREQ_TABLE help This enables the CPUfreq driver for i.MX CPUs. @@ -2238,6 +2250,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "fs/Kconfig" source "arch/arm/Kconfig.debug" --- linux-3.2.0.orig/arch/arm/Makefile +++ linux-3.2.0/arch/arm/Makefile @@ -284,10 +284,10 @@ zinstall uinstall install: vmlinux $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $@ -%.dtb: +%.dtb: scripts $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@ -dtbs: +dtbs: scripts $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@ # We use MRPROPER_FILES and CLEAN_FILES now --- linux-3.2.0.orig/arch/arm/plat-iop/time.c +++ linux-3.2.0/arch/arm/plat-iop/time.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -52,21 +51,12 @@ .flags = CLOCK_SOURCE_IS_CONTINUOUS, }; -static DEFINE_CLOCK_DATA(cd); - /* * IOP sched_clock() implementation via its clocksource. */ -unsigned long long notrace sched_clock(void) +static u32 notrace iop_read_sched_clock(void) { - u32 cyc = 0xffffffffu - read_tcr1(); - return cyc_to_sched_clock(&cd, cyc, (u32)~0); -} - -static void notrace iop_update_sched_clock(void) -{ - u32 cyc = 0xffffffffu - read_tcr1(); - update_sched_clock(&cd, cyc, (u32)~0); + return 0xffffffffu - read_tcr1(); } /* @@ -152,7 +142,7 @@ { u32 timer_ctl; - init_sched_clock(&cd, iop_update_sched_clock, 32, tick_rate); + setup_sched_clock(iop_read_sched_clock, 32, tick_rate); ticks_per_jiffy = DIV_ROUND_CLOSEST(tick_rate, HZ); iop_tick_rate = tick_rate; --- linux-3.2.0.orig/arch/arm/mach-shmobile/include/mach/system.h +++ linux-3.2.0/arch/arm/mach-shmobile/include/mach/system.h @@ -8,7 +8,7 @@ static inline void arch_reset(char mode, const char *cmd) { - cpu_reset(0); + soft_restart(0); } #endif --- linux-3.2.0.orig/arch/arm/mach-w90x900/include/mach/system.h +++ linux-3.2.0/arch/arm/mach-w90x900/include/mach/system.h @@ -33,7 +33,7 @@ { if (mode == 's') { /* Jump into ROM at address 0 */ - cpu_reset(0); + soft_restart(0); } else { __raw_writel(WTE | WTRE | WTCLK, WTCR); } --- linux-3.2.0.orig/arch/arm/mach-w90x900/include/mach/entry-macro.S +++ linux-3.2.0/arch/arm/mach-w90x900/include/mach/entry-macro.S @@ -22,8 +22,8 @@ mov \base, #AIC_BA - ldr \irqnr, [ \base, #AIC_IPER] - ldr \irqnr, [ \base, #AIC_ISNR] + ldr \irqnr, [\base, #AIC_IPER] + ldr \irqnr, [\base, #AIC_ISNR] cmp \irqnr, #0 .endm --- linux-3.2.0.orig/arch/arm/mach-rpc/include/mach/system.h +++ linux-3.2.0/arch/arm/mach-rpc/include/mach/system.h @@ -23,5 +23,5 @@ /* * Jump into the ROM */ - cpu_reset(0); + soft_restart(0); } --- linux-3.2.0.orig/arch/arm/mach-iop33x/include/mach/system.h +++ linux-3.2.0/arch/arm/mach-iop33x/include/mach/system.h @@ -19,5 +19,5 @@ *IOP3XX_PCSR = 0x30; /* Jump into ROM at address 0 */ - cpu_reset(0); + soft_restart(0); } --- linux-3.2.0.orig/arch/arm/mach-tegra/Kconfig +++ linux-3.2.0/arch/arm/mach-tegra/Kconfig @@ -13,6 +13,13 @@ select USB_ARCH_HAS_EHCI if USB_SUPPORT select USB_ULPI if USB_SUPPORT select USB_ULPI_VIEWPORT if USB_SUPPORT + select ARM_ERRATA_720789 + select ARM_ERRATA_742230 + select ARM_ERRATA_751472 + select ARM_ERRATA_754327 + select ARM_ERRATA_764369 + select PL310_ERRATA_727915 if CACHE_L2X0 + select PL310_ERRATA_769419 if CACHE_L2X0 help Support for NVIDIA Tegra AP20 and T20 processors, based on the ARM CortexA9MP CPU and the ARM PL310 L2 cache controller --- linux-3.2.0.orig/arch/arm/mach-tegra/timer.c +++ linux-3.2.0/arch/arm/mach-tegra/timer.c @@ -19,7 +19,6 @@ #include #include -#include #include #include #include @@ -106,25 +105,9 @@ .set_mode = tegra_timer_set_mode, }; -static DEFINE_CLOCK_DATA(cd); - -/* - * Constants generated by clocks_calc_mult_shift(m, s, 1MHz, NSEC_PER_SEC, 60). - * This gives a resolution of about 1us and a wrap period of about 1h11min. - */ -#define SC_MULT 4194304000u -#define SC_SHIFT 22 - -unsigned long long notrace sched_clock(void) -{ - u32 cyc = timer_readl(TIMERUS_CNTR_1US); - return cyc_to_fixed_sched_clock(&cd, cyc, (u32)~0, SC_MULT, SC_SHIFT); -} - -static void notrace tegra_update_sched_clock(void) +static u32 notrace tegra_read_sched_clock(void) { - u32 cyc = timer_readl(TIMERUS_CNTR_1US); - update_sched_clock(&cd, cyc, (u32)~0); + return timer_readl(TIMERUS_CNTR_1US); } /* @@ -218,8 +201,7 @@ WARN(1, "Unknown clock rate"); } - init_fixed_sched_clock(&cd, tegra_update_sched_clock, 32, - 1000000, SC_MULT, SC_SHIFT); + setup_sched_clock(tegra_read_sched_clock, 32, 1000000); if (clocksource_mmio_init(timer_reg_base + TIMERUS_CNTR_1US, "timer_us", 1000000, 300, 32, clocksource_mmio_readl_up)) { --- linux-3.2.0.orig/arch/arm/configs/at91sam9g45_defconfig +++ linux-3.2.0/arch/arm/configs/at91sam9g45_defconfig @@ -173,7 +173,6 @@ # CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_SDIO_UART=m CONFIG_MMC_ATMELMCI=y -CONFIG_MMC_ATMELMCI_DMA=y CONFIG_LEDS_ATMEL_PWM=y CONFIG_LEDS_GPIO=y CONFIG_LEDS_TRIGGER_TIMER=y --- linux-3.2.0.orig/arch/arm/configs/mxs_defconfig +++ linux-3.2.0/arch/arm/configs/mxs_defconfig @@ -32,7 +32,6 @@ CONFIG_HIGH_RES_TIMERS=y CONFIG_PREEMPT_VOLUNTARY=y CONFIG_AEABI=y -CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 CONFIG_AUTO_ZRELADDR=y CONFIG_FPE_NWFPE=y CONFIG_NET=y --- linux-3.2.0.orig/arch/arm/mach-sa1100/time.c +++ linux-3.2.0/arch/arm/mach-sa1100/time.c @@ -12,7 +12,6 @@ #include #include #include -#include /* just for sched_clock() - funny that */ #include #include @@ -20,29 +19,9 @@ #include #include -/* - * This is the SA11x0 sched_clock implementation. - */ -static DEFINE_CLOCK_DATA(cd); - -/* - * Constants generated by clocks_calc_mult_shift(m, s, 3.6864MHz, - * NSEC_PER_SEC, 60). - * This gives a resolution of about 271ns and a wrap period of about 19min. - */ -#define SC_MULT 2275555556u -#define SC_SHIFT 23 - -unsigned long long notrace sched_clock(void) -{ - u32 cyc = OSCR; - return cyc_to_fixed_sched_clock(&cd, cyc, (u32)~0, SC_MULT, SC_SHIFT); -} - -static void notrace sa1100_update_sched_clock(void) +static u32 notrace sa100_read_sched_clock(void) { - u32 cyc = OSCR; - update_sched_clock(&cd, cyc, (u32)~0); + return OSCR; } #define MIN_OSCR_DELTA 2 @@ -109,8 +88,7 @@ OIER = 0; OSSR = OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3; - init_fixed_sched_clock(&cd, sa1100_update_sched_clock, 32, - 3686400, SC_MULT, SC_SHIFT); + setup_sched_clock(sa1100_read_sched_clock, 32, 3686400); clockevents_calc_mult_shift(&ckevt_sa1100_osmr0, 3686400, 4); ckevt_sa1100_osmr0.max_delta_ns = --- linux-3.2.0.orig/arch/arm/mach-sa1100/include/mach/system.h +++ linux-3.2.0/arch/arm/mach-sa1100/include/mach/system.h @@ -14,7 +14,7 @@ { if (mode == 's') { /* Jump into ROM at address 0 */ - cpu_reset(0); + soft_restart(0); } else { /* Use on-chip reset capability */ RSRR = RSRR_SWR; --- linux-3.2.0.orig/arch/arm/mach-msm/headsmp.S +++ linux-3.2.0/arch/arm/mach-msm/headsmp.S @@ -34,6 +34,7 @@ * should now contain the SVC stack for this core */ b secondary_startup +ENDPROC(msm_secondary_startup) .align 1: .long . --- linux-3.2.0.orig/arch/arm/mach-exynos/headsmp.S +++ linux-3.2.0/arch/arm/mach-exynos/headsmp.S @@ -36,6 +36,8 @@ * should now contain the SVC stack for this core */ b secondary_startup +ENDPROC(exynos4_secondary_startup) + .align 2 1: .long . .long pen_release --- linux-3.2.0.orig/arch/arm/mach-exynos/platsmp.c +++ linux-3.2.0/arch/arm/mach-exynos/platsmp.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include @@ -163,7 +162,7 @@ while (time_before(jiffies, timeout)) { smp_rmb(); - __raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)), + __raw_writel(virt_to_phys(exynos4_secondary_startup), CPU1_BOOT_REG); gic_raise_softirq(cpumask_of(cpu), 1); @@ -218,6 +217,6 @@ * until it receives a soft interrupt, and then the * secondary CPU branches to this address. */ - __raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)), + __raw_writel(virt_to_phys(exynos4_secondary_startup), CPU1_BOOT_REG); } --- linux-3.2.0.orig/arch/arm/plat-mxc/time.c +++ linux-3.2.0/arch/arm/plat-mxc/time.c @@ -108,18 +108,9 @@ static void __iomem *sched_clock_reg; -static DEFINE_CLOCK_DATA(cd); -unsigned long long notrace sched_clock(void) +static u32 notrace mxc_read_sched_clock(void) { - cycle_t cyc = sched_clock_reg ? __raw_readl(sched_clock_reg) : 0; - - return cyc_to_sched_clock(&cd, cyc, (u32)~0); -} - -static void notrace mxc_update_sched_clock(void) -{ - cycle_t cyc = sched_clock_reg ? __raw_readl(sched_clock_reg) : 0; - update_sched_clock(&cd, cyc, (u32)~0); + return sched_clock_reg ? __raw_readl(sched_clock_reg) : 0; } static int __init mxc_clocksource_init(struct clk *timer_clk) @@ -129,7 +120,7 @@ sched_clock_reg = reg; - init_sched_clock(&cd, mxc_update_sched_clock, 32, c); + setup_sched_clock(mxc_read_sched_clock, 32, c); return clocksource_mmio_init(reg, "mxc_timer1", c, 200, 32, clocksource_mmio_readl_up); } --- linux-3.2.0.orig/arch/arm/plat-mxc/system.c +++ linux-3.2.0/arch/arm/plat-mxc/system.c @@ -71,7 +71,7 @@ mdelay(50); /* we'll take a jump through zero as a poor second */ - cpu_reset(0); + soft_restart(0); } void mxc_arch_reset_init(void __iomem *base) --- linux-3.2.0.orig/arch/arm/plat-omap/counter_32k.c +++ linux-3.2.0/arch/arm/plat-omap/counter_32k.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include @@ -37,41 +36,9 @@ #define OMAP16XX_TIMER_32K_SYNCHRONIZED 0xfffbc410 -/* - * Returns current time from boot in nsecs. It's OK for this to wrap - * around for now, as it's just a relative time stamp. - */ -static DEFINE_CLOCK_DATA(cd); - -/* - * Constants generated by clocks_calc_mult_shift(m, s, 32768, NSEC_PER_SEC, 60). - * This gives a resolution of about 30us and a wrap period of about 36hrs. - */ -#define SC_MULT 4000000000u -#define SC_SHIFT 17 - -static inline unsigned long long notrace _omap_32k_sched_clock(void) -{ - u32 cyc = timer_32k_base ? __raw_readl(timer_32k_base) : 0; - return cyc_to_fixed_sched_clock(&cd, cyc, (u32)~0, SC_MULT, SC_SHIFT); -} - -#if defined(CONFIG_OMAP_32K_TIMER) && !defined(CONFIG_OMAP_MPU_TIMER) -unsigned long long notrace sched_clock(void) +static u32 notrace omap_32k_read_sched_clock(void) { - return _omap_32k_sched_clock(); -} -#else -unsigned long long notrace omap_32k_sched_clock(void) -{ - return _omap_32k_sched_clock(); -} -#endif - -static void notrace omap_update_sched_clock(void) -{ - u32 cyc = timer_32k_base ? __raw_readl(timer_32k_base) : 0; - update_sched_clock(&cd, cyc, (u32)~0); + return timer_32k_base ? __raw_readl(timer_32k_base) : 0; } /** @@ -82,22 +49,29 @@ * nsecs and adds to a monotonically increasing timespec. */ static struct timespec persistent_ts; -static cycles_t cycles, last_cycles; +static cycles_t cycles; static unsigned int persistent_mult, persistent_shift; +static DEFINE_SPINLOCK(read_persistent_clock_lock); + void read_persistent_clock(struct timespec *ts) { unsigned long long nsecs; - cycles_t delta; - struct timespec *tsp = &persistent_ts; + cycles_t last_cycles; + unsigned long flags; + + spin_lock_irqsave(&read_persistent_clock_lock, flags); last_cycles = cycles; cycles = timer_32k_base ? __raw_readl(timer_32k_base) : 0; - delta = cycles - last_cycles; - nsecs = clocksource_cyc2ns(delta, persistent_mult, persistent_shift); + nsecs = clocksource_cyc2ns(cycles - last_cycles, + persistent_mult, persistent_shift); + + timespec_add_ns(&persistent_ts, nsecs); + + *ts = persistent_ts; - timespec_add_ns(tsp, nsecs); - *ts = *tsp; + spin_unlock_irqrestore(&read_persistent_clock_lock, flags); } int __init omap_init_clocksource_32k(void) @@ -147,8 +121,7 @@ clocksource_mmio_readl_up)) printk(err, "32k_counter"); - init_fixed_sched_clock(&cd, omap_update_sched_clock, 32, - 32768, SC_MULT, SC_SHIFT); + setup_sched_clock(omap_32k_read_sched_clock, 32, 32768); } return 0; } --- linux-3.2.0.orig/arch/arm/plat-omap/dmtimer.c +++ linux-3.2.0/arch/arm/plat-omap/dmtimer.c @@ -236,7 +236,7 @@ void omap_dm_timer_disable(struct omap_dm_timer *timer) { - pm_runtime_put(&timer->pdev->dev); + pm_runtime_put_sync(&timer->pdev->dev); } EXPORT_SYMBOL_GPL(omap_dm_timer_disable); --- linux-3.2.0.orig/arch/arm/plat-omap/include/plat/system.h +++ linux-3.2.0/arch/arm/plat-omap/include/plat/system.h @@ -12,6 +12,8 @@ cpu_do_idle(); } -extern void (*arch_reset)(char, const char *); +static inline void arch_reset(char mode, const char *cmd) +{ +} #endif --- linux-3.2.0.orig/arch/arm/plat-omap/include/plat/irqs.h +++ linux-3.2.0/arch/arm/plat-omap/include/plat/irqs.h @@ -438,16 +438,6 @@ #ifndef __ASSEMBLY__ extern void __iomem *omap_irq_base; -void omap1_init_irq(void); -void omap2_init_irq(void); -void omap3_init_irq(void); -void ti816x_init_irq(void); -extern int omap_irq_pending(void); -void omap_intc_save_context(void); -void omap_intc_restore_context(void); -void omap3_intc_suspend(void); -void omap3_intc_prepare_idle(void); -void omap3_intc_resume_idle(void); #endif #include --- linux-3.2.0.orig/arch/arm/plat-omap/include/plat/common.h +++ linux-3.2.0/arch/arm/plat-omap/include/plat/common.h @@ -27,97 +27,15 @@ #ifndef __ARCH_ARM_MACH_OMAP_COMMON_H #define __ARCH_ARM_MACH_OMAP_COMMON_H -#include - #include #include -struct sys_timer; - -extern void omap_map_common_io(void); -extern struct sys_timer omap1_timer; -extern struct sys_timer omap2_timer; -extern struct sys_timer omap3_timer; -extern struct sys_timer omap3_secure_timer; -extern struct sys_timer omap4_timer; -extern bool omap_32k_timer_init(void); extern int __init omap_init_clocksource_32k(void); -extern unsigned long long notrace omap_32k_sched_clock(void); extern void omap_reserve(void); -void omap2420_init_early(void); -void omap2430_init_early(void); -void omap3430_init_early(void); -void omap35xx_init_early(void); -void omap3630_init_early(void); -void omap3_init_early(void); /* Do not use this one */ -void am35xx_init_early(void); -void ti816x_init_early(void); -void omap4430_init_early(void); - extern int omap_dss_reset(struct omap_hwmod *); void omap_sram_init(void); -/* - * IO bases for various OMAP processors - * Except the tap base, rest all the io bases - * listed are physical addresses. - */ -struct omap_globals { - u32 class; /* OMAP class to detect */ - void __iomem *tap; /* Control module ID code */ - void __iomem *sdrc; /* SDRAM Controller */ - void __iomem *sms; /* SDRAM Memory Scheduler */ - void __iomem *ctrl; /* System Control Module */ - void __iomem *ctrl_pad; /* PAD Control Module */ - void __iomem *prm; /* Power and Reset Management */ - void __iomem *cm; /* Clock Management */ - void __iomem *cm2; -}; - -void omap2_set_globals_242x(void); -void omap2_set_globals_243x(void); -void omap2_set_globals_3xxx(void); -void omap2_set_globals_443x(void); -void omap2_set_globals_ti816x(void); - -/* These get called from omap2_set_globals_xxxx(), do not call these */ -void omap2_set_globals_tap(struct omap_globals *); -void omap2_set_globals_sdrc(struct omap_globals *); -void omap2_set_globals_control(struct omap_globals *); -void omap2_set_globals_prcm(struct omap_globals *); - -void omap242x_map_io(void); -void omap243x_map_io(void); -void omap3_map_io(void); -void omap4_map_io(void); - - -/** - * omap_test_timeout - busy-loop, testing a condition - * @cond: condition to test until it evaluates to true - * @timeout: maximum number of microseconds in the timeout - * @index: loop index (integer) - * - * Loop waiting for @cond to become true or until at least @timeout - * microseconds have passed. To use, define some integer @index in the - * calling code. After running, if @index == @timeout, then the loop has - * timed out. - */ -#define omap_test_timeout(cond, timeout, index) \ -({ \ - for (index = 0; index < timeout; index++) { \ - if (cond) \ - break; \ - udelay(1); \ - } \ -}) - -extern struct device *omap2_get_mpuss_device(void); -extern struct device *omap2_get_iva_device(void); -extern struct device *omap2_get_l3_device(void); -extern struct device *omap4_get_dsp_device(void); - #endif /* __ARCH_ARM_MACH_OMAP_COMMON_H */ --- linux-3.2.0.orig/arch/arm/plat-omap/include/plat/io.h +++ linux-3.2.0/arch/arm/plat-omap/include/plat/io.h @@ -257,74 +257,6 @@ extern void omap_writel(u32 v, u32 pa); struct omap_sdrc_params; - -#if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) -void omap7xx_map_io(void); -#else -static inline void omap_map_io(void) -{ -} -#endif - -#ifdef CONFIG_ARCH_OMAP15XX -void omap15xx_map_io(void); -#else -static inline void omap15xx_map_io(void) -{ -} -#endif - -#ifdef CONFIG_ARCH_OMAP16XX -void omap16xx_map_io(void); -#else -static inline void omap16xx_map_io(void) -{ -} -#endif - -void omap1_init_early(void); - -#ifdef CONFIG_SOC_OMAP2420 -extern void omap242x_map_common_io(void); -#else -static inline void omap242x_map_common_io(void) -{ -} -#endif - -#ifdef CONFIG_SOC_OMAP2430 -extern void omap243x_map_common_io(void); -#else -static inline void omap243x_map_common_io(void) -{ -} -#endif - -#ifdef CONFIG_ARCH_OMAP3 -extern void omap34xx_map_common_io(void); -#else -static inline void omap34xx_map_common_io(void) -{ -} -#endif - -#ifdef CONFIG_SOC_OMAPTI816X -extern void omapti816x_map_common_io(void); -#else -static inline void omapti816x_map_common_io(void) -{ -} -#endif - -#ifdef CONFIG_ARCH_OMAP4 -extern void omap44xx_map_common_io(void); -#else -static inline void omap44xx_map_common_io(void) -{ -} -#endif - -extern void omap2_init_common_infrastructure(void); extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, struct omap_sdrc_params *sdrc_cs1); --- linux-3.2.0.orig/arch/arm/lib/call_with_stack.S +++ linux-3.2.0/arch/arm/lib/call_with_stack.S @@ -0,0 +1,44 @@ +/* + * arch/arm/lib/call_with_stack.S + * + * Copyright (C) 2011 ARM Ltd. + * Written by Will Deacon + * + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include + +/* + * void call_with_stack(void (*fn)(void *), void *arg, void *sp) + * + * Change the stack to that pointed at by sp, then invoke fn(arg) with + * the new stack. + */ +ENTRY(call_with_stack) + str sp, [r2, #-4]! + str lr, [r2, #-4]! + + mov sp, r2 + mov r2, r0 + mov r0, r1 + + adr lr, BSYM(1f) + mov pc, r2 + +1: ldr lr, [sp] + ldr sp, [sp, #4] + mov pc, lr +ENDPROC(call_with_stack) --- linux-3.2.0.orig/arch/arm/lib/Makefile +++ linux-3.2.0/arch/arm/lib/Makefile @@ -13,7 +13,8 @@ testchangebit.o testclearbit.o testsetbit.o \ ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \ ucmpdi2.o lib1funcs.o div64.o \ - io-readsb.o io-writesb.o io-readsl.o io-writesl.o + io-readsb.o io-writesb.o io-readsl.o io-writesl.o \ + call_with_stack.o mmu-y := clear_user.o copy_page.o getuser.o putuser.o --- linux-3.2.0.orig/arch/arm/plat-s5p/s5p-time.c +++ linux-3.2.0/arch/arm/plat-s5p/s5p-time.c @@ -10,7 +10,6 @@ * published by the Free Software Foundation. */ -#include #include #include #include @@ -321,26 +320,14 @@ * this wraps around for now, since it is just a relative time * stamp. (Inspired by U300 implementation.) */ -static DEFINE_CLOCK_DATA(cd); - -unsigned long long notrace sched_clock(void) +static u32 notrace s5p_read_sched_clock(void) { void __iomem *reg = s5p_timer_reg(); if (!reg) return 0; - return cyc_to_sched_clock(&cd, ~__raw_readl(reg), (u32)~0); -} - -static void notrace s5p_update_sched_clock(void) -{ - void __iomem *reg = s5p_timer_reg(); - - if (!reg) - return; - - update_sched_clock(&cd, ~__raw_readl(reg), (u32)~0); + return ~__raw_readl(reg); } static void __init s5p_clocksource_init(void) @@ -358,7 +345,7 @@ s5p_time_setup(timer_source.source_id, TCNT_MAX); s5p_time_start(timer_source.source_id, PERIODIC); - init_sched_clock(&cd, s5p_update_sched_clock, 32, clock_rate); + setup_sched_clock(s5p_read_sched_clock, 32, clock_rate); if (clocksource_mmio_init(s5p_timer_reg(), "s5p_clocksource_timer", clock_rate, 250, 32, clocksource_mmio_readl_down)) --- linux-3.2.0.orig/arch/arm/mach-ixp4xx/common.c +++ linux-3.2.0/arch/arm/mach-ixp4xx/common.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include #include @@ -29,6 +28,7 @@ #include #include #include +#include #include #include @@ -106,7 +106,7 @@ 7, 8, 9, 10, 11, 12, -1, -1, }; -int gpio_to_irq(int gpio) +static int ixp4xx_gpio_to_irq(struct gpio_chip *chip, unsigned gpio) { int irq; @@ -116,7 +116,6 @@ } return -EINVAL; } -EXPORT_SYMBOL(gpio_to_irq); int irq_to_gpio(unsigned int irq) { @@ -376,12 +375,56 @@ unsigned long ixp4xx_exp_bus_size; EXPORT_SYMBOL(ixp4xx_exp_bus_size); +static int ixp4xx_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) +{ + gpio_line_config(gpio, IXP4XX_GPIO_IN); + + return 0; +} + +static int ixp4xx_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, + int level) +{ + gpio_line_set(gpio, level); + gpio_line_config(gpio, IXP4XX_GPIO_OUT); + + return 0; +} + +static int ixp4xx_gpio_get_value(struct gpio_chip *chip, unsigned gpio) +{ + int value; + + gpio_line_get(gpio, &value); + + return value; +} + +static void ixp4xx_gpio_set_value(struct gpio_chip *chip, unsigned gpio, + int value) +{ + gpio_line_set(gpio, value); +} + +static struct gpio_chip ixp4xx_gpio_chip = { + .label = "IXP4XX_GPIO_CHIP", + .direction_input = ixp4xx_gpio_direction_input, + .direction_output = ixp4xx_gpio_direction_output, + .get = ixp4xx_gpio_get_value, + .set = ixp4xx_gpio_set_value, + .to_irq = ixp4xx_gpio_to_irq, + .base = 0, + .ngpio = 16, +}; + void __init ixp4xx_sys_init(void) { ixp4xx_exp_bus_size = SZ_16M; platform_add_devices(ixp4xx_devices, ARRAY_SIZE(ixp4xx_devices)); + gpiochip_add(&ixp4xx_gpio_chip); + if (cpu_is_ixp46x()) { int region; @@ -403,18 +446,9 @@ /* * sched_clock() */ -static DEFINE_CLOCK_DATA(cd); - -unsigned long long notrace sched_clock(void) -{ - u32 cyc = *IXP4XX_OSTS; - return cyc_to_sched_clock(&cd, cyc, (u32)~0); -} - -static void notrace ixp4xx_update_sched_clock(void) +static u32 notrace ixp4xx_read_sched_clock(void) { - u32 cyc = *IXP4XX_OSTS; - update_sched_clock(&cd, cyc, (u32)~0); + return *IXP4XX_OSTS; } /* @@ -430,7 +464,7 @@ EXPORT_SYMBOL(ixp4xx_timer_freq); static void __init ixp4xx_clocksource_init(void) { - init_sched_clock(&cd, ixp4xx_update_sched_clock, 32, ixp4xx_timer_freq); + setup_sched_clock(ixp4xx_read_sched_clock, 32, ixp4xx_timer_freq); clocksource_mmio_init(NULL, "OSTS", ixp4xx_timer_freq, 200, 32, ixp4xx_clocksource_read); --- linux-3.2.0.orig/arch/arm/mach-ixp4xx/include/mach/system.h +++ linux-3.2.0/arch/arm/mach-ixp4xx/include/mach/system.h @@ -26,7 +26,7 @@ { if ( 1 && mode == 's') { /* Jump into ROM at address 0 */ - cpu_reset(0); + soft_restart(0); } else { /* Use on-chip reset capability */ --- linux-3.2.0.orig/arch/arm/mach-ixp4xx/include/mach/gpio.h +++ linux-3.2.0/arch/arm/mach-ixp4xx/include/mach/gpio.h @@ -1,79 +1,2 @@ -/* - * arch/arm/mach-ixp4xx/include/mach/gpio.h - * - * IXP4XX GPIO wrappers for arch-neutral GPIO calls - * - * Written by Milan Svoboda - * Based on PXA implementation by Philipp Zabel - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ASM_ARCH_IXP4XX_GPIO_H -#define __ASM_ARCH_IXP4XX_GPIO_H - -#include -#include - -#define __ARM_GPIOLIB_COMPLEX - -static inline int gpio_request(unsigned gpio, const char *label) -{ - return 0; -} - -static inline void gpio_free(unsigned gpio) -{ - might_sleep(); - - return; -} - -static inline int gpio_direction_input(unsigned gpio) -{ - gpio_line_config(gpio, IXP4XX_GPIO_IN); - return 0; -} - -static inline int gpio_direction_output(unsigned gpio, int level) -{ - gpio_line_set(gpio, level); - gpio_line_config(gpio, IXP4XX_GPIO_OUT); - return 0; -} - -static inline int gpio_get_value(unsigned gpio) -{ - int value; - - gpio_line_get(gpio, &value); - - return value; -} - -static inline void gpio_set_value(unsigned gpio, int value) -{ - gpio_line_set(gpio, value); -} - -#include /* cansleep wrappers */ - -extern int gpio_to_irq(int gpio); -#define gpio_to_irq gpio_to_irq -extern int irq_to_gpio(unsigned int irq); - -#endif +/* empty */ --- linux-3.2.0.orig/arch/arm/mach-u300/timer.c +++ linux-3.2.0/arch/arm/mach-u300/timer.c @@ -9,7 +9,6 @@ * Author: Linus Walleij */ #include -#include #include #include #include @@ -337,18 +336,10 @@ * this wraps around for now, since it is just a relative time * stamp. (Inspired by OMAP implementation.) */ -static DEFINE_CLOCK_DATA(cd); -unsigned long long notrace sched_clock(void) +static u32 notrace u300_read_sched_clock(void) { - u32 cyc = readl(U300_TIMER_APP_VBASE + U300_TIMER_APP_GPT2CC); - return cyc_to_sched_clock(&cd, cyc, (u32)~0); -} - -static void notrace u300_update_sched_clock(void) -{ - u32 cyc = readl(U300_TIMER_APP_VBASE + U300_TIMER_APP_GPT2CC); - update_sched_clock(&cd, cyc, (u32)~0); + return readl(U300_TIMER_APP_VBASE + U300_TIMER_APP_GPT2CC); } @@ -366,7 +357,7 @@ clk_enable(clk); rate = clk_get_rate(clk); - init_sched_clock(&cd, u300_update_sched_clock, 32, rate); + setup_sched_clock(u300_read_sched_clock, 32, rate); /* * Disable the "OS" and "DD" timers - these are designed for Symbian! --- linux-3.2.0.orig/arch/arm/mach-u300/include/mach/u300-regs.h +++ linux-3.2.0/arch/arm/mach-u300/include/mach/u300-regs.h @@ -102,7 +102,7 @@ #ifdef CONFIG_MACH_U300_BS335 /* Fast UART1 on U335 only */ -#define U300_UART1_BASE (U300_SLOW_PER_PHYS_BASE+0x7000) +#define U300_UART1_BASE (U300_FAST_PER_PHYS_BASE+0x7000) #endif /* --- linux-3.2.0.orig/arch/arm/mach-imx/src.c +++ linux-3.2.0/arch/arm/mach-imx/src.c @@ -15,7 +15,6 @@ #include #include #include -#include #define SRC_SCR 0x000 #define SRC_GPR1 0x020 @@ -42,7 +41,7 @@ void imx_set_cpu_jump(int cpu, void *jump_addr) { cpu = cpu_logical_map(cpu); - writel_relaxed(BSYM(virt_to_phys(jump_addr)), + writel_relaxed(virt_to_phys(jump_addr), src_base + SRC_GPR1 + cpu * 8); } --- linux-3.2.0.orig/arch/arm/mach-imx/hotplug.c +++ linux-3.2.0/arch/arm/mach-imx/hotplug.c @@ -12,6 +12,7 @@ #include #include +#include #include int platform_cpu_kill(unsigned int cpu) @@ -19,6 +20,28 @@ return 1; } +static inline void cpu_enter_lowpower(void) +{ + unsigned int v; + + flush_cache_all(); + asm volatile( + "mcr p15, 0, %1, c7, c5, 0\n" + " mcr p15, 0, %1, c7, c10, 4\n" + /* + * Turn off coherency + */ + " mrc p15, 0, %0, c1, c0, 1\n" + " bic %0, %0, %3\n" + " mcr p15, 0, %0, c1, c0, 1\n" + " mrc p15, 0, %0, c1, c0, 0\n" + " bic %0, %0, %2\n" + " mcr p15, 0, %0, c1, c0, 0\n" + : "=&r" (v) + : "r" (0), "Ir" (CR_C), "Ir" (0x40) + : "cc"); +} + /* * platform-specific code to shutdown a CPU * @@ -26,12 +49,12 @@ */ void platform_cpu_die(unsigned int cpu) { - flush_cache_all(); + cpu_enter_lowpower(); imx_enable_cpu(cpu, false); - cpu_do_idle(); - /* We should never return from idle */ - panic("cpu %d unexpectedly exit from shutdown\n", cpu); + /* spin here until hardware takes it down */ + while (1) + ; } int platform_cpu_disable(unsigned int cpu) --- linux-3.2.0.orig/arch/arm/mach-imx/mach-mx21ads.c +++ linux-3.2.0/arch/arm/mach-imx/mach-mx21ads.c @@ -32,7 +32,7 @@ * Memory-mapped I/O on MX21ADS base board */ #define MX21ADS_MMIO_BASE_ADDR 0xf5000000 -#define MX21ADS_MMIO_SIZE SZ_16M +#define MX21ADS_MMIO_SIZE 0xc00000 #define MX21ADS_REG_ADDR(offset) (void __force __iomem *) \ (MX21ADS_MMIO_BASE_ADDR + (offset)) --- linux-3.2.0.orig/arch/arm/common/timer-sp.c +++ linux-3.2.0/arch/arm/common/timer-sp.c @@ -26,6 +26,7 @@ #include #include +#include #include static long __init sp804_get_clock_rate(const char *name) @@ -67,7 +68,16 @@ return rate; } -void __init sp804_clocksource_init(void __iomem *base, const char *name) +static void __iomem *sched_clock_base; + +static u32 sp804_read(void) +{ + return ~readl_relaxed(sched_clock_base + TIMER_VALUE); +} + +void __init __sp804_clocksource_and_sched_clock_init(void __iomem *base, + const char *name, + int use_sched_clock) { long rate = sp804_get_clock_rate(name); @@ -83,6 +93,11 @@ clocksource_mmio_init(base + TIMER_VALUE, name, rate, 200, 32, clocksource_mmio_readl_down); + + if (use_sched_clock) { + sched_clock_base = base; + setup_sched_clock(sp804_read, 32, rate); + } } --- linux-3.2.0.orig/arch/arm/common/pl330.c +++ linux-3.2.0/arch/arm/common/pl330.c @@ -1496,12 +1496,13 @@ struct pl330_thread *thrd = ch_id; struct pl330_dmac *pl330; unsigned long flags; - int ret = 0, active = thrd->req_running; + int ret = 0, active; if (!thrd || thrd->free || thrd->dmac->state == DYING) return -EINVAL; pl330 = thrd->dmac; + active = thrd->req_running; spin_lock_irqsave(&pl330->lock, flags); --- linux-3.2.0.orig/arch/arm/plat-nomadik/timer.c +++ linux-3.2.0/arch/arm/plat-nomadik/timer.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include @@ -79,23 +78,12 @@ * local implementation which uses the clocksource to get some * better resolution when scheduling the kernel. */ -static DEFINE_CLOCK_DATA(cd); - -unsigned long long notrace sched_clock(void) +static u32 notrace nomadik_read_sched_clock(void) { - u32 cyc; - if (unlikely(!mtu_base)) return 0; - cyc = -readl(mtu_base + MTU_VAL(0)); - return cyc_to_sched_clock(&cd, cyc, (u32)~0); -} - -static void notrace nomadik_update_sched_clock(void) -{ - u32 cyc = -readl(mtu_base + MTU_VAL(0)); - update_sched_clock(&cd, cyc, (u32)~0); + return -readl(mtu_base + MTU_VAL(0)); } #endif @@ -231,9 +219,11 @@ rate, 200, 32, clocksource_mmio_readl_down)) pr_err("timer: failed to initialize clock source %s\n", "mtu_0"); + #ifdef CONFIG_NOMADIK_MTU_SCHED_CLOCK - init_sched_clock(&cd, nomadik_update_sched_clock, 32, rate); + setup_sched_clock(nomadik_read_sched_clock, 32, rate); #endif + /* Timer 1 is used for events */ clockevents_calc_mult_shift(&nmdk_clkevt, rate, MTU_MIN_RANGE); --- linux-3.2.0.orig/arch/arm/mach-clps711x/include/mach/system.h +++ linux-3.2.0/arch/arm/mach-clps711x/include/mach/system.h @@ -34,7 +34,7 @@ static inline void arch_reset(char mode, const char *cmd) { - cpu_reset(0); + soft_restart(0); } #endif --- linux-3.2.0.orig/arch/arm/mach-pnx4008/include/mach/system.h +++ linux-3.2.0/arch/arm/mach-pnx4008/include/mach/system.h @@ -32,7 +32,7 @@ static inline void arch_reset(char mode, const char *cmd) { - cpu_reset(0); + soft_restart(0); } #endif --- linux-3.2.0.orig/arch/arm/plat-spear/include/plat/system.h +++ linux-3.2.0/arch/arm/plat-spear/include/plat/system.h @@ -31,7 +31,7 @@ { if (mode == 's') { /* software reset, Jump into ROM at address 0 */ - cpu_reset(0); + soft_restart(0); } else { /* hardware reset, Use on-chip reset capability */ sysctl_soft_reset((void __iomem *)VA_SPEAR_SYS_CTRL_BASE); --- linux-3.2.0.orig/arch/arm/mach-omap1/time.c +++ linux-3.2.0/arch/arm/mach-omap1/time.c @@ -37,7 +37,6 @@ #include #include #include -#include #include #include #include @@ -54,7 +53,7 @@ #include #include -#include +#include "common.h" #ifdef CONFIG_OMAP_MPU_TIMER @@ -190,30 +189,9 @@ * --------------------------------------------------------------------------- */ -static DEFINE_CLOCK_DATA(cd); - -static inline unsigned long long notrace _omap_mpu_sched_clock(void) -{ - u32 cyc = ~omap_mpu_timer_read(1); - return cyc_to_sched_clock(&cd, cyc, (u32)~0); -} - -#ifndef CONFIG_OMAP_32K_TIMER -unsigned long long notrace sched_clock(void) -{ - return _omap_mpu_sched_clock(); -} -#else -static unsigned long long notrace omap_mpu_sched_clock(void) -{ - return _omap_mpu_sched_clock(); -} -#endif - -static void notrace mpu_update_sched_clock(void) +static u32 notrace omap_mpu_read_sched_clock(void) { - u32 cyc = ~omap_mpu_timer_read(1); - update_sched_clock(&cd, cyc, (u32)~0); + return ~omap_mpu_timer_read(1); } static void __init omap_init_clocksource(unsigned long rate) @@ -223,7 +201,7 @@ "%s: can't register clocksource!\n"; omap_mpu_timer_start(1, ~0, 1); - init_sched_clock(&cd, mpu_update_sched_clock, 32, rate); + setup_sched_clock(omap_mpu_read_sched_clock, 32, rate); if (clocksource_mmio_init(&timer->read_tim, "mpu_timer2", rate, 300, 32, clocksource_mmio_readl_down)) @@ -254,30 +232,6 @@ } #endif /* CONFIG_OMAP_MPU_TIMER */ -#if defined(CONFIG_OMAP_MPU_TIMER) && defined(CONFIG_OMAP_32K_TIMER) -static unsigned long long (*preferred_sched_clock)(void); - -unsigned long long notrace sched_clock(void) -{ - if (!preferred_sched_clock) - return 0; - - return preferred_sched_clock(); -} - -static inline void preferred_sched_clock_init(bool use_32k_sched_clock) -{ - if (use_32k_sched_clock) - preferred_sched_clock = omap_32k_sched_clock; - else - preferred_sched_clock = omap_mpu_sched_clock; -} -#else -static inline void preferred_sched_clock_init(bool use_32k_sched_clcok) -{ -} -#endif - static inline int omap_32k_timer_usable(void) { int res = false; @@ -299,12 +253,8 @@ */ static void __init omap1_timer_init(void) { - if (omap_32k_timer_usable()) { - preferred_sched_clock_init(1); - } else { + if (!omap_32k_timer_usable()) omap_mpu_timer_init(); - preferred_sched_clock_init(0); - } } struct sys_timer omap1_timer = { --- linux-3.2.0.orig/arch/arm/mach-omap1/board-palmte.c +++ linux-3.2.0/arch/arm/mach-omap1/board-palmte.c @@ -41,7 +41,7 @@ #include #include #include -#include +#include "common.h" #define PALMTE_USBDETECT_GPIO 0 #define PALMTE_USB_OR_DC_GPIO 1 @@ -270,4 +270,5 @@ .init_irq = omap1_init_irq, .init_machine = omap_palmte_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/board-palmtt.c +++ linux-3.2.0/arch/arm/mach-omap1/board-palmtt.c @@ -39,7 +39,7 @@ #include #include #include -#include +#include "common.h" #include #include @@ -317,4 +317,5 @@ .init_irq = omap1_init_irq, .init_machine = omap_palmtt_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/timer32k.c +++ linux-3.2.0/arch/arm/mach-omap1/timer32k.c @@ -52,7 +52,7 @@ #include #include #include -#include +#include "common.h" #include /* --- linux-3.2.0.orig/arch/arm/mach-omap1/board-generic.c +++ linux-3.2.0/arch/arm/mach-omap1/board-generic.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include "common.h" /* assume no Mini-AB port */ @@ -89,4 +89,5 @@ .init_irq = omap1_init_irq, .init_machine = omap_generic_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/board-innovator.c +++ linux-3.2.0/arch/arm/mach-omap1/board-innovator.c @@ -37,7 +37,7 @@ #include #include #include -#include +#include "common.h" #include /* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */ @@ -460,4 +460,5 @@ .init_irq = omap1_init_irq, .init_machine = innovator_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/board-h3.c +++ linux-3.2.0/arch/arm/mach-omap1/board-h3.c @@ -45,7 +45,7 @@ #include #include #include -#include +#include "common.h" #include #include "board-h3.h" @@ -444,4 +444,5 @@ .init_irq = omap1_init_irq, .init_machine = h3_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/board-ams-delta.c +++ linux-3.2.0/arch/arm/mach-omap1/board-ams-delta.c @@ -35,7 +35,7 @@ #include #include #include -#include +#include "common.h" #include #include @@ -386,6 +386,7 @@ .init_irq = omap1_init_irq, .init_machine = ams_delta_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END EXPORT_SYMBOL(ams_delta_latch1_write); --- linux-3.2.0.orig/arch/arm/mach-omap1/board-fsample.c +++ linux-3.2.0/arch/arm/mach-omap1/board-fsample.c @@ -32,7 +32,7 @@ #include #include #include -#include +#include "common.h" #include /* fsample is pretty close to p2-sample */ @@ -390,4 +390,5 @@ .init_irq = omap1_init_irq, .init_machine = omap_fsample_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/board-palmz71.c +++ linux-3.2.0/arch/arm/mach-omap1/board-palmz71.c @@ -41,7 +41,7 @@ #include #include #include -#include +#include "common.h" #include #include @@ -334,4 +334,5 @@ .init_irq = omap1_init_irq, .init_machine = omap_palmz71_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/board-nokia770.c +++ linux-3.2.0/arch/arm/mach-omap1/board-nokia770.c @@ -30,7 +30,7 @@ #include #include #include -#include +#include "common.h" #include #include #include @@ -259,4 +259,5 @@ .init_irq = omap1_init_irq, .init_machine = omap_nokia770_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/timer.c +++ linux-3.2.0/arch/arm/mach-omap1/timer.c @@ -47,9 +47,9 @@ int n = (pdev->id - 1) << 1; u32 l; - l = __raw_readl(MOD_CONF_CTRL_1) & ~(0x03 << n); + l = omap_readl(MOD_CONF_CTRL_1) & ~(0x03 << n); l |= source << n; - __raw_writel(l, MOD_CONF_CTRL_1); + omap_writel(l, MOD_CONF_CTRL_1); return 0; } --- linux-3.2.0.orig/arch/arm/mach-omap1/board-osk.c +++ linux-3.2.0/arch/arm/mach-omap1/board-osk.c @@ -51,7 +51,7 @@ #include #include #include -#include +#include "common.h" /* At OMAP5912 OSK the Ethernet is directly connected to CS1 */ #define OMAP_OSK_ETHR_START 0x04800300 @@ -578,4 +578,5 @@ .init_irq = omap1_init_irq, .init_machine = osk_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/board-h2.c +++ linux-3.2.0/arch/arm/mach-omap1/board-h2.c @@ -43,7 +43,7 @@ #include #include #include -#include +#include "common.h" #include #include "board-h2.h" @@ -456,4 +456,5 @@ .init_irq = omap1_init_irq, .init_machine = h2_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/common.h +++ linux-3.2.0/arch/arm/mach-omap1/common.h @@ -0,0 +1,62 @@ +/* + * + * Header for code common to all OMAP1 machines. + * + * 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 SOFTWARE IS PROVIDED ``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 THE AUTHOR 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. + * + * 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., + * 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef __ARCH_ARM_MACH_OMAP1_COMMON_H +#define __ARCH_ARM_MACH_OMAP1_COMMON_H + +#include + +#if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) +void omap7xx_map_io(void); +#else +static inline void omap7xx_map_io(void) +{ +} +#endif + +#ifdef CONFIG_ARCH_OMAP15XX +void omap15xx_map_io(void); +#else +static inline void omap15xx_map_io(void) +{ +} +#endif + +#ifdef CONFIG_ARCH_OMAP16XX +void omap16xx_map_io(void); +#else +static inline void omap16xx_map_io(void) +{ +} +#endif + +void omap1_init_early(void); +void omap1_init_irq(void); +void omap1_restart(char, const char *); + +extern struct sys_timer omap1_timer; +extern bool omap_32k_timer_init(void); + +#endif /* __ARCH_ARM_MACH_OMAP1_COMMON_H */ --- linux-3.2.0.orig/arch/arm/mach-omap1/board-voiceblue.c +++ linux-3.2.0/arch/arm/mach-omap1/board-voiceblue.c @@ -28,13 +28,12 @@ #include #include -#include #include #include #include #include -#include +#include "common.h" #include #include #include @@ -221,7 +220,7 @@ gpio_set_value(0, wdt_gpio_state); } -static void voiceblue_reset(char mode, const char *cmd) +static void voiceblue_restart(char mode, const char *cmd) { /* * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28 @@ -285,8 +284,6 @@ * (it is connected through invertor) */ omap_writeb(0x00, OMAP_LPG1_LCR); omap_writeb(0x00, OMAP_LPG1_PMR); /* Disable clock */ - - arch_reset = voiceblue_reset; } MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910") @@ -298,4 +295,5 @@ .init_irq = omap1_init_irq, .init_machine = voiceblue_init, .timer = &omap1_timer, + .restart = voiceblue_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/board-perseus2.c +++ linux-3.2.0/arch/arm/mach-omap1/board-perseus2.c @@ -32,7 +32,7 @@ #include #include #include -#include +#include "common.h" #include static const unsigned int p2_keymap[] = { @@ -352,4 +352,5 @@ .init_irq = omap1_init_irq, .init_machine = omap_perseus2_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/board-htcherald.c +++ linux-3.2.0/arch/arm/mach-omap1/board-htcherald.c @@ -41,7 +41,7 @@ #include #include -#include +#include "common.h" #include #include #include @@ -610,4 +610,5 @@ .init_irq = omap1_init_irq, .init_machine = htcherald_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/board-sx1.c +++ linux-3.2.0/arch/arm/mach-omap1/board-sx1.c @@ -40,7 +40,7 @@ #include #include #include -#include +#include "common.h" #include #include @@ -416,4 +416,5 @@ .init_irq = omap1_init_irq, .init_machine = omap_sx1_init, .timer = &omap1_timer, + .restart = omap1_restart, MACHINE_END --- linux-3.2.0.orig/arch/arm/mach-omap1/reset.c +++ linux-3.2.0/arch/arm/mach-omap1/reset.c @@ -5,10 +5,9 @@ #include #include -#include #include -void omap1_arch_reset(char mode, const char *cmd) +void omap1_restart(char mode, const char *cmd) { /* * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28 @@ -21,5 +20,3 @@ omap_writew(1, ARM_RSTCT1); } - -void (*arch_reset)(char, const char *) = omap1_arch_reset; --- linux-3.2.0.orig/arch/arm/mach-omap1/devices.c +++ linux-3.2.0/arch/arm/mach-omap1/devices.c @@ -22,7 +22,7 @@ #include #include -#include +#include "common.h" #include #include #include --- linux-3.2.0.orig/arch/arm/mach-mx5/crm_regs.h +++ linux-3.2.0/arch/arm/mach-mx5/crm_regs.h @@ -23,7 +23,7 @@ #define MX53_DPLL1_BASE MX53_IO_ADDRESS(MX53_PLL1_BASE_ADDR) #define MX53_DPLL2_BASE MX53_IO_ADDRESS(MX53_PLL2_BASE_ADDR) #define MX53_DPLL3_BASE MX53_IO_ADDRESS(MX53_PLL3_BASE_ADDR) -#define MX53_DPLL4_BASE MX53_IO_ADDRESS(MX53_PLL3_BASE_ADDR) +#define MX53_DPLL4_BASE MX53_IO_ADDRESS(MX53_PLL4_BASE_ADDR) /* PLL Register Offsets */ #define MXC_PLL_DP_CTL 0x00 --- linux-3.2.0.orig/arch/arm/mach-footbridge/cats-hw.c +++ linux-3.2.0/arch/arm/mach-footbridge/cats-hw.c @@ -86,7 +86,7 @@ MACHINE_START(CATS, "Chalice-CATS") /* Maintainer: Philip Blundell */ .atag_offset = 0x100, - .soft_reboot = 1, + .restart_mode = 's', .fixup = fixup_cats, .map_io = footbridge_map_io, .init_irq = footbridge_init_irq, --- linux-3.2.0.orig/arch/arm/mach-footbridge/include/mach/system.h +++ linux-3.2.0/arch/arm/mach-footbridge/include/mach/system.h @@ -24,7 +24,7 @@ /* * Jump into the ROM */ - cpu_reset(0x41000000); + soft_restart(0x41000000); } else { if (machine_is_netwinder()) { /* open up the SuperIO chip --- linux-3.2.0.orig/arch/arm/mach-at91/at91sam9260_devices.c +++ linux-3.2.0/arch/arm/mach-at91/at91sam9260_devices.c @@ -84,7 +84,7 @@ * USB Device (Gadget) * -------------------------------------------------------------------- */ -#ifdef CONFIG_USB_AT91 +#if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE) static struct at91_udc_data udc_data; static struct resource udc_resources[] = { @@ -467,7 +467,7 @@ static struct platform_device at91sam9260_twi_device = { .name = "i2c-gpio", - .id = -1, + .id = 0, .dev.platform_data = &pdata, }; --- linux-3.2.0.orig/arch/arm/mach-at91/setup.c +++ linux-3.2.0/arch/arm/mach-at91/setup.c @@ -27,9 +27,12 @@ void __init at91rm9200_set_type(int type) { if (type == ARCH_REVISON_9200_PQFP) - at91_soc_initdata.subtype = AT91_SOC_RM9200_BGA; - else at91_soc_initdata.subtype = AT91_SOC_RM9200_PQFP; + else + at91_soc_initdata.subtype = AT91_SOC_RM9200_BGA; + + pr_info("AT91: filled in soc subtype: %s\n", + at91_get_soc_subtype(&at91_soc_initdata)); } void __init at91_init_irq_default(void) @@ -160,7 +163,7 @@ } /* at91sam9g10 */ - if ((cidr & ~AT91_CIDR_EXT) == ARCH_ID_AT91SAM9G10) { + if ((socid & ~AT91_CIDR_EXT) == ARCH_ID_AT91SAM9G10) { at91_soc_initdata.type = AT91_SOC_SAM9G10; at91_boot_soc = at91sam9261_soc; } --- linux-3.2.0.orig/arch/arm/mach-at91/at91rm9200_devices.c +++ linux-3.2.0/arch/arm/mach-at91/at91rm9200_devices.c @@ -83,7 +83,7 @@ * USB Device (Gadget) * -------------------------------------------------------------------- */ -#ifdef CONFIG_USB_AT91 +#if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE) static struct at91_udc_data udc_data; static struct resource udc_resources[] = { @@ -462,7 +462,7 @@ static struct platform_device at91rm9200_twi_device = { .name = "i2c-gpio", - .id = -1, + .id = 0, .dev.platform_data = &pdata, }; --- linux-3.2.0.orig/arch/arm/mach-at91/at91sam9rl_devices.c +++ linux-3.2.0/arch/arm/mach-at91/at91sam9rl_devices.c @@ -319,7 +319,7 @@ static struct platform_device at91sam9rl_twi_device = { .name = "i2c-gpio", - .id = -1, + .id = 0, .dev.platform_data = &pdata, }; --- linux-3.2.0.orig/arch/arm/mach-at91/at91sam9261_devices.c +++ linux-3.2.0/arch/arm/mach-at91/at91sam9261_devices.c @@ -87,7 +87,7 @@ * USB Device (Gadget) * -------------------------------------------------------------------- */ -#ifdef CONFIG_USB_AT91 +#if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE) static struct at91_udc_data udc_data; static struct resource udc_resources[] = { @@ -284,7 +284,7 @@ static struct platform_device at91sam9261_twi_device = { .name = "i2c-gpio", - .id = -1, + .id = 0, .dev.platform_data = &pdata, }; --- linux-3.2.0.orig/arch/arm/mach-at91/at91sam9263_devices.c +++ linux-3.2.0/arch/arm/mach-at91/at91sam9263_devices.c @@ -92,7 +92,7 @@ * USB Device (Gadget) * -------------------------------------------------------------------- */ -#ifdef CONFIG_USB_AT91 +#if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE) static struct at91_udc_data udc_data; static struct resource udc_resources[] = { @@ -540,7 +540,7 @@ static struct platform_device at91sam9263_twi_device = { .name = "i2c-gpio", - .id = -1, + .id = 0, .dev.platform_data = &pdata, }; --- linux-3.2.0.orig/arch/arm/mach-s3c64xx/include/mach/system.h +++ linux-3.2.0/arch/arm/mach-s3c64xx/include/mach/system.h @@ -24,7 +24,7 @@ arch_wdt_reset(); /* if all else fails, or mode was for soft, jump to 0 */ - cpu_reset(0); + soft_restart(0); } #endif /* __ASM_ARCH_IRQ_H */ --- linux-3.2.0.orig/arch/arm/mach-lpc32xx/serial.c +++ linux-3.2.0/arch/arm/mach-lpc32xx/serial.c @@ -88,6 +88,7 @@ char *uart_ck_name; u32 ck_mode_mask; void __iomem *pdiv_clk_reg; + resource_size_t mapbase; }; static struct uartinit uartinit_data[] __initdata = { @@ -97,6 +98,7 @@ .ck_mode_mask = LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 5), .pdiv_clk_reg = LPC32XX_CLKPWR_UART5_CLK_CTRL, + .mapbase = LPC32XX_UART5_BASE, }, #endif #ifdef CONFIG_ARCH_LPC32XX_UART3_SELECT @@ -105,6 +107,7 @@ .ck_mode_mask = LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 3), .pdiv_clk_reg = LPC32XX_CLKPWR_UART3_CLK_CTRL, + .mapbase = LPC32XX_UART3_BASE, }, #endif #ifdef CONFIG_ARCH_LPC32XX_UART4_SELECT @@ -113,6 +116,7 @@ .ck_mode_mask = LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 4), .pdiv_clk_reg = LPC32XX_CLKPWR_UART4_CLK_CTRL, + .mapbase = LPC32XX_UART4_BASE, }, #endif #ifdef CONFIG_ARCH_LPC32XX_UART6_SELECT @@ -121,6 +125,7 @@ .ck_mode_mask = LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 6), .pdiv_clk_reg = LPC32XX_CLKPWR_UART6_CLK_CTRL, + .mapbase = LPC32XX_UART6_BASE, }, #endif }; @@ -165,11 +170,24 @@ /* pre-UART clock divider set to 1 */ __raw_writel(0x0101, uartinit_data[i].pdiv_clk_reg); + + /* + * Force a flush of the RX FIFOs to work around a + * HW bug + */ + puart = uartinit_data[i].mapbase; + __raw_writel(0xC1, LPC32XX_UART_IIR_FCR(puart)); + __raw_writel(0x00, LPC32XX_UART_DLL_FIFO(puart)); + j = LPC32XX_SUART_FIFO_SIZE; + while (j--) + tmp = __raw_readl( + LPC32XX_UART_DLL_FIFO(puart)); + __raw_writel(0, LPC32XX_UART_IIR_FCR(puart)); } /* This needs to be done after all UART clocks are setup */ __raw_writel(clkmodes, LPC32XX_UARTCTL_CLKMODE); - for (i = 0; i < ARRAY_SIZE(uartinit_data) - 1; i++) { + for (i = 0; i < ARRAY_SIZE(uartinit_data); i++) { /* Force a flush of the RX FIFOs to work around a HW bug */ puart = serial_std_platform_data[i].mapbase; __raw_writel(0xC1, LPC32XX_UART_IIR_FCR(puart)); --- linux-3.2.0.orig/arch/arm/mach-lpc32xx/irq.c +++ linux-3.2.0/arch/arm/mach-lpc32xx/irq.c @@ -118,6 +118,10 @@ .event_group = &lpc32xx_event_pin_regs, .mask = LPC32XX_CLKPWR_EXTSRC_GPI_06_BIT, }, + [IRQ_LPC32XX_GPI_28] = { + .event_group = &lpc32xx_event_pin_regs, + .mask = LPC32XX_CLKPWR_EXTSRC_GPI_28_BIT, + }, [IRQ_LPC32XX_GPIO_00] = { .event_group = &lpc32xx_event_int_regs, .mask = LPC32XX_CLKPWR_INTSRC_GPIO_00_BIT, @@ -305,9 +309,18 @@ if (state) eventreg |= lpc32xx_events[d->irq].mask; - else + else { eventreg &= ~lpc32xx_events[d->irq].mask; + /* + * When disabling the wakeup, clear the latched + * event + */ + __raw_writel(lpc32xx_events[d->irq].mask, + lpc32xx_events[d->irq]. + event_group->rawstat_reg); + } + __raw_writel(eventreg, lpc32xx_events[d->irq].event_group->enab_reg); @@ -380,13 +393,15 @@ /* Setup SIC1 */ __raw_writel(0, LPC32XX_INTC_MASK(LPC32XX_SIC1_BASE)); - __raw_writel(MIC_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC1_BASE)); - __raw_writel(MIC_ATR_DEFAULT, LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC1_BASE)); + __raw_writel(SIC1_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC1_BASE)); + __raw_writel(SIC1_ATR_DEFAULT, + LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC1_BASE)); /* Setup SIC2 */ __raw_writel(0, LPC32XX_INTC_MASK(LPC32XX_SIC2_BASE)); - __raw_writel(MIC_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC2_BASE)); - __raw_writel(MIC_ATR_DEFAULT, LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC2_BASE)); + __raw_writel(SIC2_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC2_BASE)); + __raw_writel(SIC2_ATR_DEFAULT, + LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC2_BASE)); /* Configure supported IRQ's */ for (i = 0; i < NR_IRQS; i++) { --- linux-3.2.0.orig/arch/arm/mach-lpc32xx/include/mach/irqs.h +++ linux-3.2.0/arch/arm/mach-lpc32xx/include/mach/irqs.h @@ -61,7 +61,7 @@ */ #define IRQ_LPC32XX_JTAG_COMM_TX LPC32XX_SIC1_IRQ(1) #define IRQ_LPC32XX_JTAG_COMM_RX LPC32XX_SIC1_IRQ(2) -#define IRQ_LPC32XX_GPI_11 LPC32XX_SIC1_IRQ(4) +#define IRQ_LPC32XX_GPI_28 LPC32XX_SIC1_IRQ(4) #define IRQ_LPC32XX_TS_P LPC32XX_SIC1_IRQ(6) #define IRQ_LPC32XX_TS_IRQ LPC32XX_SIC1_IRQ(7) #define IRQ_LPC32XX_TS_AUX LPC32XX_SIC1_IRQ(8) --- linux-3.2.0.orig/arch/arm/mach-highbank/highbank.c +++ linux-3.2.0/arch/arm/mach-highbank/highbank.c @@ -15,6 +15,7 @@ */ #include #include +#include #include #include #include @@ -22,10 +23,10 @@ #include #include #include +#include #include #include -#include #include #include #include @@ -35,6 +36,7 @@ #include #include #include +#include #include "core.h" #include "sysregs.h" @@ -76,7 +78,7 @@ #ifdef CONFIG_SMP cpu = cpu_logical_map(cpu); #endif - writel(BSYM(virt_to_phys(jump_addr)), HB_JUMP_TABLE_VIRT(cpu)); + writel(virt_to_phys(jump_addr), HB_JUMP_TABLE_VIRT(cpu)); __cpuc_flush_dcache_area(HB_JUMP_TABLE_VIRT(cpu), 16); outer_clean_range(HB_JUMP_TABLE_PHYS(cpu), HB_JUMP_TABLE_PHYS(cpu) + 15); @@ -87,10 +89,25 @@ {} }; +#ifdef CONFIG_CACHE_L2X0 +static void highbank_l2x0_disable(void) +{ + /* Disable PL310 L2 Cache controller */ + highbank_smc1(0x102, 0x0); +} +#endif + + static void __init highbank_init_irq(void) { of_irq_init(irq_match); + +#ifdef CONFIG_CACHE_L2X0 + /* Enable PL310 L2 Cache controller */ + highbank_smc1(0x102, 0x1); l2x0_of_init(0, ~0UL); + outer_cache.disable = highbank_l2x0_disable; +#endif } static void __init highbank_timer_init(void) @@ -111,7 +128,7 @@ highbank_clocks_init(); - sp804_clocksource_init(timer_base + 0x20, "timer1"); + sp804_clocksource_and_sched_clock_init(timer_base + 0x20, "timer1"); sp804_clockevents_init(timer_base, irq, "timer0"); } @@ -128,9 +145,28 @@ cpu_do_idle(); } +static int hb_keys_notifier(struct notifier_block *nb, unsigned long event, void *data) +{ + u32 key = *(u32 *)data; + + if (event != 0x1000) + return 0; + + if (key == KEY_POWER) + orderly_poweroff(false); + else if (key == 0xffff) + ctrl_alt_del(); + + return 0; +} +static struct notifier_block hb_keys_nb = { + .notifier_call = hb_keys_notifier, +}; + static void __init highbank_init(void) { pm_power_off = highbank_power_off; + pl320_ipc_register_notifier(&hb_keys_nb); of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); } --- linux-3.2.0.orig/arch/arm/mach-highbank/core.h +++ linux-3.2.0/arch/arm/mach-highbank/core.h @@ -7,3 +7,4 @@ static inline void highbank_lluart_map_io(void) {} #endif +extern void highbank_smc1(int fn, int arg); --- linux-3.2.0.orig/arch/arm/mach-highbank/pl320-ipc.c +++ linux-3.2.0/arch/arm/mach-highbank/pl320-ipc.c @@ -0,0 +1,308 @@ +/* + * Copyright 2010 Calxeda, Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#define IPCMxSOURCE(m) ((m) * 0x40) +#define IPCMxDSET(m) (((m) * 0x40) + 0x004) +#define IPCMxDCLEAR(m) (((m) * 0x40) + 0x008) +#define IPCMxDSTATUS(m) (((m) * 0x40) + 0x00C) +#define IPCMxMODE(m) (((m) * 0x40) + 0x010) +#define IPCMxMSET(m) (((m) * 0x40) + 0x014) +#define IPCMxMCLEAR(m) (((m) * 0x40) + 0x018) +#define IPCMxMSTATUS(m) (((m) * 0x40) + 0x01C) +#define IPCMxSEND(m) (((m) * 0x40) + 0x020) +#define IPCMxDR(m, dr) (((m) * 0x40) + ((dr) * 4) + 0x024) + +#define IPCMMIS(irq) (((irq) * 8) + 0x800) +#define IPCMRIS(irq) (((irq) * 8) + 0x804) + +#define MBOX_MASK(n) (1 << (n)) +#define IPC_FAST_MBOX 0 +#define IPC_SLOW_MBOX 1 +#define IPC_RX_MBOX 2 + +#define CHAN_MASK(n) (1 << (n)) +#define A9_SOURCE 1 +#define M3_SOURCE 0 + +static void __iomem *ipc_base; +static int ipc_irq; +static DEFINE_SPINLOCK(ipc_m0_lock); +static DEFINE_MUTEX(ipc_m1_lock); +static DECLARE_COMPLETION(ipc_completion); +static ATOMIC_NOTIFIER_HEAD(ipc_notifier); + +static inline void set_destination(int source, int mbox) +{ + __raw_writel(CHAN_MASK(source), ipc_base + IPCMxDSET(mbox)); + __raw_writel(CHAN_MASK(source), ipc_base + IPCMxMSET(mbox)); +} + +static inline void clear_destination(int source, int mbox) +{ + __raw_writel(CHAN_MASK(source), ipc_base + IPCMxDCLEAR(mbox)); + __raw_writel(CHAN_MASK(source), ipc_base + IPCMxMCLEAR(mbox)); +} + +static void __ipc_send(int mbox, u32 *data) +{ + int i; + for (i = 0; i < 7; i++) + __raw_writel(data[i], ipc_base + IPCMxDR(mbox, i)); + __raw_writel(0x1, ipc_base + IPCMxSEND(mbox)); +} + +static u32 __ipc_rcv(int mbox, u32 *data) +{ + int i; + for (i = 0; i < 7; i++) + data[i] = __raw_readl(ipc_base + IPCMxDR(mbox, i)); + return data[1]; +} + +/* non-blocking implementation from the A9 side, interrupt safe in theory */ +int ipc_call_fast(u32 *data) +{ + int timeout, ret; + + spin_lock(&ipc_m0_lock); + + __ipc_send(IPC_FAST_MBOX, data); + + for (timeout = 5000; timeout > 0; timeout--) { + if (__raw_readl(ipc_base + IPCMxSEND(IPC_FAST_MBOX)) == 0x2) + break; + udelay(100); + } + if (timeout == 0) { + ret = -ETIMEDOUT; + goto out; + } + + ret = __ipc_rcv(IPC_FAST_MBOX, data); +out: + __raw_writel(0, ipc_base + IPCMxSEND(IPC_FAST_MBOX)); + spin_unlock(&ipc_m0_lock); + return ret; +} +EXPORT_SYMBOL(ipc_call_fast); + +/* blocking implmentation from the A9 side, not usuable in interrupts! */ +int ipc_call_slow(u32 *data) +{ + int ret; + + mutex_lock(&ipc_m1_lock); + + init_completion(&ipc_completion); + __ipc_send(IPC_SLOW_MBOX, data); + ret = wait_for_completion_timeout(&ipc_completion, + msecs_to_jiffies(1000)); + if (ret == 0) + goto out; + + ret = __ipc_rcv(IPC_SLOW_MBOX, data); +out: + mutex_unlock(&ipc_m1_lock); + return ret; +} +EXPORT_SYMBOL(ipc_call_slow); + +irqreturn_t ipc_handler(int irq, void *dev) +{ + u32 irq_stat; + u32 data[7]; + + irq_stat = __raw_readl(ipc_base + IPCMMIS(1)); + if (irq_stat & MBOX_MASK(IPC_SLOW_MBOX)) { + __raw_writel(0, ipc_base + IPCMxSEND(IPC_SLOW_MBOX)); + complete(&ipc_completion); + } + if (irq_stat & MBOX_MASK(IPC_RX_MBOX)) { + __ipc_rcv(IPC_RX_MBOX, data); + atomic_notifier_call_chain(&ipc_notifier, data[0], data + 1); + __raw_writel(2, ipc_base + IPCMxSEND(IPC_RX_MBOX)); + } + + return IRQ_HANDLED; +} + +int pl320_ipc_register_notifier(struct notifier_block *nb) +{ + return atomic_notifier_chain_register(&ipc_notifier, nb); +} + +int pl320_ipc_unregister_notifier(struct notifier_block *nb) +{ + return atomic_notifier_chain_unregister(&ipc_notifier, nb); +} + +static int __devinit pl320_probe(struct amba_device *adev, const struct amba_id *id) +{ + int ret; + + ipc_base = ioremap(adev->res.start, resource_size(&adev->res)); + if (ipc_base == NULL) + return -ENOMEM; + + __raw_writel(0, ipc_base + IPCMxSEND(IPC_FAST_MBOX)); + __raw_writel(0, ipc_base + IPCMxSEND(IPC_SLOW_MBOX)); + + ipc_irq = adev->irq[0]; + ret = request_irq(ipc_irq, ipc_handler, 0, dev_name(&adev->dev), NULL); + if (ret < 0) + goto err; + + /* Init fast mailbox */ + __raw_writel(CHAN_MASK(A9_SOURCE), ipc_base + IPCMxSOURCE(IPC_FAST_MBOX)); + set_destination(M3_SOURCE, IPC_FAST_MBOX); + + /* Init slow mailbox */ + __raw_writel(CHAN_MASK(A9_SOURCE), ipc_base + IPCMxSOURCE(IPC_SLOW_MBOX)); + __raw_writel(CHAN_MASK(M3_SOURCE), ipc_base + IPCMxDSET(IPC_SLOW_MBOX)); + __raw_writel(CHAN_MASK(M3_SOURCE) | CHAN_MASK(A9_SOURCE), + ipc_base + IPCMxMSET(IPC_SLOW_MBOX)); + + /* Init receive mailbox */ + __raw_writel(CHAN_MASK(M3_SOURCE), ipc_base + IPCMxSOURCE(IPC_RX_MBOX)); + __raw_writel(CHAN_MASK(A9_SOURCE), ipc_base + IPCMxDSET(IPC_RX_MBOX)); + __raw_writel(CHAN_MASK(M3_SOURCE) | CHAN_MASK(A9_SOURCE), + ipc_base + IPCMxMSET(IPC_RX_MBOX)); + + return 0; +err: + iounmap(ipc_base); + return ret; +} + +static struct amba_id pl320_ids[] = { + { + .id = 0x00041320, + .mask = 0x000fffff, + }, + { 0, 0 }, +}; + +static struct amba_driver pl320_driver = { + .drv = { + .name = "pl320", + }, + .id_table = pl320_ids, + .probe = pl320_probe, +}; + +static int __init ipc_init(void) +{ + return amba_driver_register(&pl320_driver); +} +module_init(ipc_init); + +irqreturn_t ipc_test_handler(int irq, void *dev) +{ + u32 irq_stat; + + irq_stat = __raw_readl(ipc_base + IPCMMIS(irq - (ipc_irq - 1))); + if (irq_stat & MBOX_MASK(IPC_FAST_MBOX)) { + if ((__raw_readl(ipc_base + IPCMxDR(IPC_FAST_MBOX, 0)) == 0x900dbeef) && + (__raw_readl(ipc_base + IPCMxDR(IPC_FAST_MBOX, 1)) == 1) && + (__raw_readl(ipc_base + IPCMxDR(IPC_FAST_MBOX, 2)) == 2) && + (__raw_readl(ipc_base + IPCMxDR(IPC_FAST_MBOX, 3)) == 3) && + (__raw_readl(ipc_base + IPCMxDR(IPC_FAST_MBOX, 4)) == 4) && + (__raw_readl(ipc_base + IPCMxDR(IPC_FAST_MBOX, 5)) == 5) && + (__raw_readl(ipc_base + IPCMxDR(IPC_FAST_MBOX, 6)) == 6)) { + printk(KERN_ERR "ipc fast mbox message %X received\n", __raw_readl(ipc_base + IPCMxDR(IPC_FAST_MBOX, 0))); + __raw_writel(0xBADBEEF, ipc_base + IPCMxDR(IPC_FAST_MBOX, 1)); + } + __raw_writel(0x2, ipc_base + IPCMxSEND(IPC_FAST_MBOX)); + } + if (irq_stat & MBOX_MASK(IPC_SLOW_MBOX)) { + if ((__raw_readl(ipc_base + IPCMxDR(IPC_SLOW_MBOX, 0)) == 0x12345678) && + (__raw_readl(ipc_base + IPCMxDR(IPC_SLOW_MBOX, 1)) == 6) && + (__raw_readl(ipc_base + IPCMxDR(IPC_SLOW_MBOX, 2)) == 5) && + (__raw_readl(ipc_base + IPCMxDR(IPC_SLOW_MBOX, 3)) == 4) && + (__raw_readl(ipc_base + IPCMxDR(IPC_SLOW_MBOX, 4)) == 3) && + (__raw_readl(ipc_base + IPCMxDR(IPC_SLOW_MBOX, 5)) == 2) && + (__raw_readl(ipc_base + IPCMxDR(IPC_SLOW_MBOX, 6)) == 1)) { + printk("slow mbox message %X received\n", __raw_readl(ipc_base + IPCMxDR(IPC_SLOW_MBOX, 0))); + __raw_writel(0x87654321, ipc_base + IPCMxDR(IPC_SLOW_MBOX, 1)); + } + __raw_writel(0x2, ipc_base + IPCMxSEND(IPC_SLOW_MBOX)); + } + if (irq_stat & MBOX_MASK(IPC_RX_MBOX)) { + __raw_writel(0, ipc_base + IPCMxSEND(IPC_RX_MBOX)); + // handle events + } + + return IRQ_HANDLED; +} + +static void __init ipc_test(void) +{ + int ret, i; + + printk("ipc test start\n"); + + for (i = 0; i < 8; i++) { + u32 data[7]; + int j; + if (i == 1) continue; + + if (request_irq(ipc_irq - 1 + i, ipc_test_handler, 0, "ipc", NULL) < 0) { + printk("ipc - request_irq failed - FAIL\n"); + return; + } + + set_destination(i, IPC_FAST_MBOX); + set_destination(i, IPC_SLOW_MBOX); + + for (j = 1; j < 7; j++) + data[j] = j; + data[0] = 0x900dbeef; + ret = ipc_call_fast(data); + if (ret == 0xbadbeef) + printk(KERN_ERR "ipc %d fast call - PASS\n", i); + else + printk(KERN_ERR "ipc %d fast call fail %d\n", i, ret); + for (j = 1; j < 7; j++) + data[j] = 7 - j; + data[0] = 0x12345678; + ret = ipc_call_slow(data); + if (ret == 0x87654321) + printk("ipc %d slow call - PASS\n", i); + + clear_destination(i, IPC_FAST_MBOX); + clear_destination(i, IPC_SLOW_MBOX); + + free_irq(ipc_irq - 1 + i, NULL); + } + set_destination(M3_SOURCE, IPC_FAST_MBOX); + set_destination(M3_SOURCE, IPC_SLOW_MBOX); +} +//late_initcall(ipc_test); + --- linux-3.2.0.orig/arch/arm/mach-highbank/Makefile +++ linux-3.2.0/arch/arm/mach-highbank/Makefile @@ -1,6 +1,12 @@ -obj-y := clock.o highbank.o system.o +obj-y := clock.o highbank.o system.o smc.o + +plus_sec := $(call as-instr,.arch_extension sec,+sec) +AFLAGS_smc.o :=-Wa,-march=armv7-a$(plus_sec) + obj-$(CONFIG_DEBUG_HIGHBANK_UART) += lluart.o obj-$(CONFIG_SMP) += platsmp.o obj-$(CONFIG_LOCAL_TIMERS) += localtimer.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o obj-$(CONFIG_PM_SLEEP) += pm.o + +obj-y += pl320-ipc.o --- linux-3.2.0.orig/arch/arm/mach-highbank/sysregs.h +++ linux-3.2.0/arch/arm/mach-highbank/sysregs.h @@ -31,22 +31,22 @@ static inline void hignbank_set_pwr_suspend(void) { - writel(HB_PWR_SUSPEND, sregs_base + HB_SREG_A9_PWR_REQ); + writel_relaxed(HB_PWR_SUSPEND, sregs_base + HB_SREG_A9_PWR_REQ); } static inline void hignbank_set_pwr_shutdown(void) { - writel(HB_PWR_SHUTDOWN, sregs_base + HB_SREG_A9_PWR_REQ); + writel_relaxed(HB_PWR_SHUTDOWN, sregs_base + HB_SREG_A9_PWR_REQ); } static inline void hignbank_set_pwr_soft_reset(void) { - writel(HB_PWR_SOFT_RESET, sregs_base + HB_SREG_A9_PWR_REQ); + writel_relaxed(HB_PWR_SOFT_RESET, sregs_base + HB_SREG_A9_PWR_REQ); } static inline void hignbank_set_pwr_hard_reset(void) { - writel(HB_PWR_HARD_RESET, sregs_base + HB_SREG_A9_PWR_REQ); + writel_relaxed(HB_PWR_HARD_RESET, sregs_base + HB_SREG_A9_PWR_REQ); } #endif --- linux-3.2.0.orig/arch/arm/mach-highbank/smc.S +++ linux-3.2.0/arch/arm/mach-highbank/smc.S @@ -0,0 +1,31 @@ +/* + * Copied from omap44xx-smc.S + * Copyright (C) 2010 Texas Instruments, Inc. + * Written by Santosh Shilimkar + * + * + * 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 + +/* + * This is common routine to manage secure monitor API + * used to modify the PL310 secure registers. + * 'r0' contains the value to be modified and 'r12' contains + * the monitor API number. It uses few CPU registers + * internally and hence they need be backed up including + * link register "lr". + * Function signature : void omap_smc1(u32 fn, u32 arg) + */ + +ENTRY(highbank_smc1) + stmfd sp!, {r2-r12, lr} + mov r12, r0 + mov r0, r1 + dsb + smc #0 + ldmfd sp!, {r2-r12, pc} +ENDPROC(highbank_smc1) --- linux-3.2.0.orig/arch/arm/mach-highbank/include/mach/pl320-ipc.h +++ linux-3.2.0/arch/arm/mach-highbank/include/mach/pl320-ipc.h @@ -0,0 +1,20 @@ +/* + * Copyright 2010 Calxeda, Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +int ipc_call_fast(u32 *data); +int ipc_call_slow(u32 *data); + +extern int pl320_ipc_register_notifier(struct notifier_block *nb); +extern int pl320_ipc_unregister_notifier(struct notifier_block *nb); --- linux-3.2.0.orig/arch/arm/mach-omap2/board-zoom-peripherals.c +++ linux-3.2.0/arch/arm/mach-omap2/board-zoom-peripherals.c @@ -24,7 +24,7 @@ #include #include -#include +#include "common.h" #include #include --- linux-3.2.0.orig/arch/arm/mach-omap2/serial.c +++ linux-3.2.0/arch/arm/mach-omap2/serial.c @@ -33,7 +33,7 @@ #include #endif -#include +#include "common.h" #include #include #include --- linux-3.2.0.orig/arch/arm/mach-omap2/vp3xxx_data.c +++ linux-3.2.0/arch/arm/mach-omap2/vp3xxx_data.c @@ -19,7 +19,7 @@ #include #include -#include +#include "common.h" #include "prm-regbits-34xx.h" #include "voltage.h" --- linux-3.2.0.orig/arch/arm/mach-omap2/io.c +++ linux-3.2.0/arch/arm/mach-omap2/io.c @@ -35,7 +35,7 @@ #include "clock3xxx.h" #include "clock44xx.h" -#include +#include "common.h" #include #include "voltage.h" #include "powerdomain.h" @@ -43,7 +43,7 @@ #include "clockdomain.h" #include #include -#include +#include "common.h" /* * The machine specific code may provide the extra mapping besides the --- linux-3.2.0.orig/arch/arm/mach-omap2/board-omap4panda.c +++ linux-3.2.0/arch/arm/mach-omap2/board-omap4panda.c @@ -30,14 +30,13 @@ #include #include -#include #include #include #include #include